注意

本文档适用于 Ceph 开发版本。

数据放置概述

Ceph 动态地在 RADOS 集群中存储、复制和重新平衡数据对象。由于不同的用户在许多 OSD 上以不同的目的将对象存储在不同的池中,Ceph 操作需要一定量的数据放置规划。Ceph 中的主要数据放置规划概念包括:

  • 池:Ceph 在池中存储数据,池是用于存储对象的逻辑组。池管理放置组的数量、副本的数量以及池的 CRUSH 规则。要在池中存储数据,必须是具有池权限的经过身份验证的用户。Ceph 能够对池进行快照。有关详细信息,请参阅Pools.

  • 放置组:Ceph 将对象映射到放置组。放置组(PGs)是逻辑对象池的碎片或片段,将对象作为一个组放置到 OSD 中。放置组减少了 Ceph 在 OSD 中存储数据所需的每个对象的元数据量。更多的放置组(例如,与每个 OSD 50 个 PG 相比,每个 OSD 100 个 PG)会导致更好的平衡。有关详细信息,请参阅放置组.

  • CRUSH 映射:CRUSH 在允许 Ceph 扩展的同时,避免了某些陷阱,例如性能瓶颈、可扩展性限制和单点故障。CRUSH 映射将集群的物理拓扑提供给 CRUSH 算法,以便它能够确定 (1) 对象及其副本的数据应该存储在哪里,以及 (2) 如何在故障域中存储这些数据以提高数据安全性。有关详细信息,请参阅CRUSH 地图.

  • 平衡器:平衡器是一个功能,它自动优化放置组在设备之间的分布,以实现平衡的数据分布,以最大限度地提高集群中可以存储的数据量,并在 OSD 之间均匀分配工作负载。

可以使用上述每个组件的默认值。建议为测试集群的初始设置使用默认值。但是,在规划大型 Ceph 集群时,应根据池、放置组和 CRUSH 扮演的不同角色,为数据放置操作自定义值。

由 Ceph 基金会带给您

Ceph 文档是一个社区资源,由非盈利的 Ceph 基金会资助和托管Ceph Foundation. 如果您想支持这一点和我们的其他工作,请考虑加入现在加入.