2.5. Ceph CRUSH 规则集
Ceph 将 CRUSH 规则集分配到池。当 Ceph 客户端在池中存储或检索数据时,Ceph 会识别 CRUSH 规则集、规则集中的规则,以及用于存储和检索数据的规则中的顶级 bucket。在 Ceph 处理 CRUSH 规则时,它会标识包含对象的 PG 的 Primary OSD。这使得客户端能够直接连接 OSD,访问 PG,以及读取或写入对象数据。
若要 map PG 到 OSD,CRUSH map 定义 bucket 类型层次结构列表。bucket 类型列表位于所生成的 CRUSH map 的 types
下。创建 bucket 层次结构的目的是通过其故障域和/或性能域(如驱动器类型、主机、机箱、机架、机架、电源分配单元、pod、行、室和数据中心)隔离 laf 节点。
除了代表 OSD 的 leaf 节点外,其他层次结构是任意的。如果默认类型不符合其要求,管理员可以根据自己的需求对其进行定义。CRUSH 支持为 Ceph OSD 节点建模的有向无环图,通常采用层次结构。因此,Ceph 管理员可以在单个 CRUSH map 中支持包含多个根节点的多个层次结构。例如,管理员可以创建表示较高成本 SSD 的层次结构,以获得高性能,并使用 SSD 日志创建成本更低的硬盘驱动器,以获得中等性能。