]> git.proxmox.com Git - ceph.git/blob - ceph/doc/rados/operations/data-placement.rst
bump version to 18.2.2-pve1
[ceph.git] / ceph / doc / rados / operations / data-placement.rst
1 =========================
2 Data Placement Overview
3 =========================
4
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:
10
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`_.
16
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`.
24
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`_.
32
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.
38
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.
44
45 .. _Pools: ../pools
46 .. _CRUSH Maps: ../crush-map
47 .. _Balancer: ../balancer