注意

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

数据放置概述

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

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

  • 放置组 (Placement Groups): Ceph 将对象映射到放置组。放置组 (PG) 是逻辑对象存储池的分片或片段,它将对象作为一个组放置到 OSD 中。放置组减少了 Ceph 存储 OSD 中数据所需的对象元数据量。更多的放置组数量(例如,每个 OSD 100 个 PG,而不是每个 OSD 50 个 PG)可以带来更好的平衡。有关更多详细信息,请参阅 放置组

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

  • 平衡器 (Balancer): 平衡器是一种功能,可自动优化放置组在设备上的分布,以实现均衡的数据分布,从而最大化集群中可存储的数据量,并均匀分布 OSD 上的工作负载。

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

由 Ceph 基金会为您呈现

Ceph 文档是由非营利性 Ceph 基金会 资助和托管的社区资源。如果您希望支持这项工作和我们的其他努力,请考虑 立即加入