O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Learning Ceph

Book Description

A practical guide to designing, implementing, and managing your software-defined, massively scalable Ceph storage system

In Detail

Ceph is an open source, software-defined storage solution, which runs on commodity hardware to provide exabyte-level scalability. It is well known to be a highly reliable storage system that has no single point of failure.

This book will give you all the skills you need to plan, deploy, and effectively manage your Ceph cluster, guiding you through an overview of Ceph's technology, architecture, and components. With a step-by-step, tutorial-style explanation of the deployment of each Ceph component, the book will take you through Ceph storage provisioning and integration with OpenStack.

You will then discover how to deploy and set up your Ceph cluster, discovering the various components and why we need them. This book takes you from a basic level of knowledge in Ceph to an expert understanding of its most advanced features.

What You Will Learn

  • Understand the limitations of existing systems and the need to use Ceph as a storage solution
  • Get to grips with Ceph's architecture and discover the different components of Ceph
  • Perform instant deployment and testing of Ceph within a VirtualBox environment
  • Familiarize yourself with Ceph operations such as maintenance, monitoring, and troubleshooting
  • Implement storage provisioning in the form of Ceph's block, object, and filesystem
  • Integrate Ceph with OpenStack Cinder and Glance components
  • Discover advance topics in Ceph, including erasure coding, CRUSH map, and performance tuning, and learn best practices for your Ceph cluster

Downloading the example code for this book. You can download the example code files for all Packt books you have purchased from your account at http://www.PacktPub.com. If you purchased this book elsewhere, you can visit http://www.PacktPub.com/support and register to have the files e-mailed directly to you.

Table of Contents

  1. Learning Ceph
    1. Table of Contents
    2. Learning Ceph
    3. Credits
    4. Foreword
    5. About the Author
    6. About the Reviewers
    7. www.PacktPub.com
      1. Support files, eBooks, discount offers, and more
        1. Why subscribe?
        2. Free access for Packt account holders
    8. Preface
      1. What this book covers
      2. What you need for this book
      3. Who this book is for
      4. Conventions
      5. Reader feedback
      6. Customer support
        1. Downloading the example code
        2. Errata
        3. Piracy
        4. Questions
    9. 1. Introducing Ceph Storage
      1. An overview of Ceph
      2. The history and evolution of Ceph
        1. Ceph releases
      3. Ceph and the future of storage
        1. Ceph as a cloud storage solution
        2. Ceph as a software-defined solution
        3. Ceph as a unified storage solution
        4. The next generation architecture
        5. Raid – end of an era
      4. The compatibility portfolio
      5. Ceph block storage
      6. The Ceph filesystem
      7. Ceph object storage
      8. Ceph versus others
      9. GPFS
      10. iRODS
      11. HDFS
      12. Lustre
      13. Gluster
      14. Ceph
      15. Summary
    10. 2. Ceph Instant Deployment
      1. Creating a sandbox environment with VirtualBox
      2. From zero to Ceph – deploying your first Ceph cluster
      3. Scaling up your Ceph cluster – monitor and OSD addition
        1. Adding the Ceph monitor
        2. Adding the Ceph OSD
      4. Summary
    11. 3. Ceph Architecture and Components
      1. Ceph storage architecture
      2. Ceph RADOS
        1. Ceph Object Storage Device
          1. The Ceph OSD filesystem
          2. The Ceph OSD journal
          3. OSD commands
        2. Ceph monitors
          1. Monitor commands
        3. librados
        4. The Ceph block storage
        5. Ceph Object Gateway
      3. Ceph MDS
      4. Deploying MDS for your Ceph cluster
      5. The Ceph filesystem
      6. Summary
    12. 4. Ceph Internals
      1. Ceph under the hood
      2. Object
        1. Locating objects
      3. CRUSH
        1. The CRUSH lookup
        2. The CRUSH hierarchy
        3. Recovery and rebalancing
        4. Editing a CRUSH map
        5. Customizing a cluster layout
      4. Placement groups
        1. Calculating PG numbers
        2. Modifying PG and PGP
        3. PG peering, up and acting sets
      5. Ceph pools
        1. Pool operations
          1. Creating and listing pools
      6. Ceph data management
      7. Summary
    13. 5. Deploying Ceph – the Way You Should Know
      1. Hardware planning for a Ceph cluster
        1. Monitor requirements
        2. OSD requirements
        3. Network requirements
        4. MDS requirements
      2. Setting up your VirtualBox environment – again
      3. Preparing your Ceph installation
        1. Getting the software
          1. Getting packages
          2. Getting Ceph tarballs
          3. Getting Ceph from GitHub
      4. Ceph cluster manual deployment
        1. Installing perquisites
        2. Deploying the Ceph cluster
        3. Deploying monitors
        4. Creating OSDs
      5. Scaling up your cluster
        1. Adding monitors
        2. Adding OSDs
      6. Ceph cluster deployment using the ceph-deploy tool
      7. Upgrading your Ceph cluster
        1. Upgrading a monitor
        2. Upgrading OSDs
      8. Summary
    14. 6. Storage Provisioning with Ceph
      1. The RADOS block device
        1. Setting up your first Ceph client
        2. Mapping the RADOS block device
        3. Resizing Ceph RBD
        4. Ceph RBD snapshots
        5. Ceph RBD clones
      2. The Ceph filesystem
        1. Mounting CephFS with a kernel driver
        2. Mounting CephFS as FUSE
      3. Object storage using the Ceph RADOS gateway
        1. Setting up a virtual machine
        2. Installing the RADOS gateway
        3. Configuring the RADOS gateway
        4. Creating a radosgw user
        5. Accessing the Ceph object storage
      4. S3 API-compatible Ceph object storage
        1. Swift API-compatible Ceph object storage
      5. Summary
    15. 7. Ceph Operations and Maintenance
      1. Ceph service management
        1. Running Ceph with sysvinit
        2. Starting daemons by type
        3. Stopping daemons by type
        4. Starting and stopping all daemons
        5. Starting and stopping a specific daemon
      2. Running Ceph as a service
        1. Starting and stopping all daemons
        2. Starting and stopping a specific daemon
      3. Scaling out a Ceph cluster
      4. Adding OSD nodes to a Ceph cluster
      5. Scaling down a Ceph cluster
      6. Bringing an OSD out and down from a Ceph cluster
      7. Removing the OSD from a Ceph cluster
      8. Replacing a failed disk drive
      9. Manipulating CRUSH maps
      10. Identifying CRUSH locations
      11. CRUSH map internals
      12. Different pools on different OSDs
      13. Summary
    16. 8. Monitoring Your Ceph Cluster
      1. Monitoring a Ceph cluster
        1. Checking cluster health
        2. Watching cluster events
        3. Cluster utilization statistics
        4. Checking the cluster status
        5. Cluster authentication keys
      2. Monitoring Ceph MON
        1. The MON status
        2. The MON quorum status
      3. Monitoring Ceph OSD
        1. OSD tree view
        2. OSD statistics
        3. Checking the CRUSH map
        4. Monitoring placement groups
      4. Monitoring MDS
      5. Monitoring Ceph using open source dashboards
        1. Kraken
          1. Deploying Kraken
        2. The ceph-dash tool
          1. Deploying ceph-dash
        3. Calamari
      6. Summary
    17. 9. Integrating Ceph with OpenStack
      1. Introduction to OpenStack
      2. Ceph – the best match for OpenStack
      3. Creating an OpenStack test environment
        1. Setting up an OpenStack machine
        2. Installing OpenStack
        3. Ceph with OpenStack
        4. Installing Ceph on an OpenStack node
        5. Configuring Ceph for OpenStack
          1. Configuring OpenStack Cinder
          2. Configuring OpenStack Nova
          3. Configuring OpenStack Glance
          4. Restarting OpenStack services
          5. Testing OpenStack Cinder
            1. Using Cinder CLI
            2. Using Horizon GUI
          6. Testing OpenStack Glance
      4. Summary
    18. 10. Ceph Performance Tuning and Benchmarking
      1. Ceph performance overview
      2. Ceph performance consideration – hardware level
        1. Processor
        2. Memory
        3. Network
        4. Disk
      3. Ceph performance tuning – software level
        1. Cluster configuration file
        2. Config sections
          1. The global section
          2. The MON section
          3. The OSD section
          4. The MDS section
          5. The client section
      4. Ceph cluster performance tuning
        1. Global tuning parameters
          1. Network
          2. Max open files
        2. OSD tuning parameters
        3. Client tuning parameters
        4. General performance tuning
      5. Ceph erasure coding
        1. Low-cost cold storage
        2. Implementing erasure coding
      6. Ceph cache tiering
        1. The writeback mode
        2. The read-only mode
        3. Implementing cache tiering
          1. Creating a pool
          2. Creating a cache tier
          3. Configuring a cache tier
          4. Testing the cache tier
      7. Ceph benchmarking using RADOS bench
      8. Summary
    19. Index