Book Image

Mastering Ceph - Second Edition

By : Nick Fisk
Book Image

Mastering Ceph - Second Edition

By: Nick Fisk

Overview of this book

Ceph is an open source distributed storage system that is scalable to Exabyte deployments. This second edition of Mastering Ceph takes you a step closer to becoming an expert on Ceph. You’ll get started by understanding the design goals and planning steps that should be undertaken to ensure successful deployments. In the next sections, you’ll be guided through setting up and deploying the Ceph cluster with the help of orchestration tools. This will allow you to witness Ceph’s scalability, erasure coding (data protective) mechanism, and automated data backup features on multiple servers. You’ll then discover more about the key areas of Ceph including BlueStore, erasure coding and cache tiering with the help of examples. Next, you’ll also learn some of the ways to export Ceph into non-native environments and understand some of the pitfalls that you may encounter. The book features a section on tuning that will take you through the process of optimizing both Ceph and its supporting infrastructure. You’ll also learn to develop applications, which use Librados and distributed computations with shared object classes. Toward the concluding chapters, you’ll learn to troubleshoot issues and handle various scenarios where Ceph is not likely to recover on its own. By the end of this book, you’ll be able to master storage management with Ceph and generate solutions for managing your infrastructure.
Table of Contents (18 chapters)
Free Chapter
1
Section 1: Planning And Deployment
6
Section 2: Operating and Tuning
13
Section 3: Troubleshooting and Recovery

Repairing inconsistent objects

With BlueStore, all data is checksumed by default, so the steps in this section to safely determine the correct copy of the object no longer apply.

We will now see how we can correctly repair inconsistent objects:

  1. To be able to recreate an inconsistent scenario, create an RBD, and later we'll make a filesystem on it:
  1. Check to see which objects have been created by formatting the RBD with a filesystem:
  1. Pick one object at random and use the osd map command to find out which PG the object is stored in:
  1. Find this object on the disk on one of the OSD nodes; in this case, it is OSD.0 on OSD1:

  1. Corrupt it by echoing garbage over the top of it:
  1. Tell Ceph to do a scrub on the PG that contains the object we corrupted:
  1. If you check the Ceph status, you will see that Ceph has detected the corrupted object and marked the PG as inconsistent...