]>
Commit | Line | Data |
---|---|---|
7c673cae FG |
1 | ========================= |
2 | Data Placement Overview | |
3 | ========================= | |
4 | ||
1e59de90 TL |
5 | Ceph stores, replicates, and rebalances data objects across a RADOS cluster |
6 | dynamically. Because different users store objects in different pools for | |
7 | different purposes on many OSDs, Ceph operations require a certain amount of | |
8 | data- placement planning. The main data-placement planning concepts in Ceph | |
9 | include: | |
7c673cae | 10 | |
1e59de90 TL |
11 | - **Pools:** Ceph stores data within pools, which are logical groups used for |
12 | storing objects. Pools manage the number of placement groups, the number of | |
13 | replicas, and the CRUSH rule for the pool. To store data in a pool, it is | |
14 | necessary to be an authenticated user with permissions for the pool. Ceph is | |
15 | able to make snapshots of pools. For additional details, see `Pools`_. | |
7c673cae | 16 | |
1e59de90 TL |
17 | - **Placement Groups:** Ceph maps objects to placement groups. Placement |
18 | groups (PGs) are shards or fragments of a logical object pool that place | |
19 | objects as a group into OSDs. Placement groups reduce the amount of | |
20 | per-object metadata that is necessary for Ceph to store the data in OSDs. A | |
21 | greater number of placement groups (for example, 100 PGs per OSD as compared | |
22 | with 50 PGs per OSD) leads to better balancing. For additional details, see | |
23 | :ref:`placement groups`. | |
7c673cae | 24 | |
1e59de90 TL |
25 | - **CRUSH Maps:** CRUSH plays a major role in allowing Ceph to scale while |
26 | avoiding certain pitfalls, such as performance bottlenecks, limitations to | |
27 | scalability, and single points of failure. CRUSH maps provide the physical | |
28 | topology of the cluster to the CRUSH algorithm, so that it can determine both | |
29 | (1) where the data for an object and its replicas should be stored and (2) | |
30 | how to store that data across failure domains so as to improve data safety. | |
31 | For additional details, see `CRUSH Maps`_. | |
7c673cae | 32 | |
1e59de90 TL |
33 | - **Balancer:** The balancer is a feature that automatically optimizes the |
34 | distribution of placement groups across devices in order to achieve a | |
35 | balanced data distribution, in order to maximize the amount of data that can | |
36 | be stored in the cluster, and in order to evenly distribute the workload | |
37 | across OSDs. | |
11fdf7f2 | 38 | |
1e59de90 TL |
39 | It is possible to use the default values for each of the above components. |
40 | Default values are recommended for a test cluster's initial setup. However, | |
41 | when planning a large Ceph cluster, values should be customized for | |
42 | data-placement operations with reference to the different roles played by | |
43 | pools, placement groups, and CRUSH. | |
7c673cae FG |
44 | |
45 | .. _Pools: ../pools | |
7c673cae | 46 | .. _CRUSH Maps: ../crush-map |
11fdf7f2 | 47 | .. _Balancer: ../balancer |