Placement groups
In the previous section, we described what objects in Ceph are and how we can access them. Ceph distributes objects pseudo-randomly to storage devices based on predefined data assignment policies. The assignment policy uses a novel placement algorithm called CRUSH to choose a probabilistically balanced distribution of objects throughout the cluster. This ensures that devices are presented with a nearly uniform storage and workload distribution for most use-cases. When a cluster is expanded by adding new storage or old/failed devices are removed, it is necessary to restore balance by migrating data to restore the configured replication policies. Since this data movement is kept a minimum, augmenting an existing cluster is significantly less cumbersome compared to the use of other, less-sophisticated placement algorithms. CRUSH will be explored in detail in the next section.
When Ceph receives requests to store data, it needs to determine the set designated objects the requests...