Ceph 数据放置概述
Ceph 在 RADOS 集群中动态存储、复制和重新平衡数据对象。由于许多不同的用户在无数 OSD 上出于不同目的将对象存储在不同的池中,因此 Ceph 操作需要一些数据放置规划。Ceph 中主要的数据放置规划概念包括:
-
Pools(池): Ceph 将数据存储在池中,池是用于存储对象的逻辑组。池管理归置组的数量、副本的数量和池的 CRUSH 规则。要将数据存储在池中,您必须有一个经过身份验证的用户,该用户具有该池的权限。Ceph 可以对池进行快照。有关其他详细信息,请参阅:https://docs.ceph.com/en/pacific/rados/operations/pools。
-
Placement Groups(归置组): Ceph 将对象映射到归置组 (PG)。放置组 (PG) 是逻辑对象池的分片或片段,它们将对象作为一个组放置到 OSD 中。当 Ceph 将数据存储在 OSD 中时,放置组会减少每个对象的元数据量。更大数量的归置组(例如,每个 OSD 100 个)会带来更好的平衡。有关更多详细信息,请参阅:https://docs.ceph.com/en/pacific/rados/operations/placement-groups。
-
CRUSH Maps(CRUSH 映射): CRUSH 是让 Ceph 在没有性能瓶颈、没有可伸缩性限制和没有单点故障的情况下进行扩展的重要部分。CRUSH 映射为 CRUSH 算法提供集群的物理拓扑,以确定对象及其副本的数据应该存储在哪里,以及如何跨故障域以增加数据安全等。更多详情请参见:https://docs.ceph.com/en/pacific/rados/operations/crush-map。
-
Balancer:平衡器是一个功能,它会自动优化PG跨设备的分布,以实现数据的均衡分布,最大化集群中可以存储的数据量,并在OSD之间平均分配工作负载。
最初设置测试集群时,可以使用默认值。开始规划大型 Ceph 集群后,请参阅池、归置组和 CRUSH 进行数据放置操作。