首页/系统与基础设施/存储速查/Ceph 故障域设计与机架感知
分布式与对象存储70 条

Ceph 故障域设计与机架感知

故障域是一条「可能同时失效」的边界,机架感知要求同一份数据的副本或编码块不落在同一边界内。域设得比真实拓扑窄会丢冗余,宽度不足则会触发选点回退,隔离名存实亡。

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌​​‌​‌‌‌‌​‌‌‌​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​‌‌‌​​‌​​‌‌​​​​‌​‌‌​​‌‌‌​‌‌​​‌​‌​​‌​‌‌‌‌​‌‌​​​‌‌​‌‌​​‌​‌​‌‌‌​​​​​‌‌​‌​​​​​‌​‌‌​‌​‌‌​​‌‌​​‌‌​​​​‌​‌‌​‌​​‌​‌‌​‌‌​​​‌‌‌​‌​‌​‌‌‌​​‌​​‌‌​​‌​‌​​‌​‌‌​‌​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​‌‌​‌​‌‌​​​​‌​‌‌​‌​​‌​‌‌​‌‌‌​​​‌​‌‌​‌​‌‌‌​​‌​​‌‌​​​​‌​‌‌​​​‌‌​‌‌​‌​‌‌​​‌​‌‌​‌​‌‌​​​​‌​‌‌‌​‌‌‌​‌‌​​​​‌​‌‌‌​​‌​​‌‌​​‌​‌​​‌​‌‌‌​​‌‌​‌​​​​‌‌‌​‌​​​‌‌​‌‌​‌​‌‌​‌‌​​

故障域是什么

故障域描述的是「会一起坏掉的范围」:同一台服务器、同一个机架、同一路供电、同一个机房。机架感知的意思是,同一份数据的多份副本或编码块不能被放进同一个故障域。集群本身并不知道物理布局,它完全依赖运维人员填写的层级信息判断隔离,因此拓扑填错时隔离也就跟着失效。

选择机制怎么工作

设备在层级树中被逐个分组,逐级向上直到根节点。写入时按规则自上而下选择路径,并在规则指定的层级上做出唯一选择,这一层就是副本之间不会重复的边界。由此得到一条硬约束:层级树的每一层宽度都必须能够容纳所需的副本份数或编码块总数,否则选择过程无法满足规则。

基本信息

适用平台跨机架或跨机房部署的集群
边界单元主机、机架、房间、机房等层级
隔离目标同一份数据的副本不在同一域内
关键约束每层宽度不小于副本数或块总数
表达方式层级树结构与分布规则中的选择层级
验证方法查看层级树与单个归置组的实际选点

典型使用场景

  • 多机架机房:把主机挂到机架分组下,选择层级提升到机架
  • 跨机房部署:先评估网络时延与带宽是否满足重建与写入
  • 双机房高可用:配合额外仲裁机制,避免网络分区导致两侧同时写入
  • 介质分离:高速介质单独建组,与故障域维度叠加使用
  • 变更前验证:确认同一份数据的多个副本确实落在不同域内

层级查看与调整

层级查看与调整
ceph osd crush tree                        # 检查设备在层级树中的实际归属
ceph osd crush rule dump                   # 查看规则中指定的选择层级
ceph osd crush add-bucket rack02 rack      # 新建一个机架分组
ceph osd crush move host03 rack=rack02     # 把主机挂到该机架之下
ceph osd getcrushmap -o /tmp/map.bin       # 变更前导出备份便于回退
ceph pg map 1.0                            # 查看该归置组的实际选点是否跨域

层级与宽度要求

选择层级最小宽度适用场景
主机级不少于副本数的可用主机单机架或小规模集群
机架级不少于副本数或块总数的机架多机架机房
机房级满足宽度且网络条件允许跨机房或跨楼层部署
介质维度与故障域维度正交介质混装时叠加筛选
设备级没有隔离效果仅限测试环境
宽度不足时选择会悄悄回退:某一层的分组数量少于需要选出的数量,选择过程便退到更细的层级,结果看起来一切正常,实际却出现同一故障域内存在多个副本的情况。设计层级前先数清每层的宽度。
同一机架的设备被挂到不同机架分组下,是隐蔽而危险的错配:隔离看似生效,物理上仍共用供电与交换机,一处故障依然会同时带走多份数据。拓扑填写必须与真实机房布局一致。

提升故障域的代价

故障域越宽,跨域流量越多:写入与重建都可能跨机架甚至跨机房传输,对带宽与时延提出更高要求。跨机房部署还要考虑网络分区场景,需要额外的仲裁机制避免两侧同时写入同一份数据。隔离程度与成本必须一起权衡,并非越宽越好。

易错点

  • 故障域比真实拓扑窄:整机架或整机房故障会同时带走多份数据
  • 故障域比真实拓扑宽而宽度不足:选点回退,副本仍可能集中在一处
  • 拓扑填写与实际机架归属不一致:隔离只是名义上的
  • 跨机房故障域却不评估带宽:重建与写入缓慢,恢复时间远超预期
  • 调整分布规则不留迁移窗口:大规模数据搬动与业务高峰期重叠

数据来源与参考

  • Ceph 官方文档:CRUSH Map 与故障域层级说明
  • Ceph 官方文档:跨机房部署与仲裁相关章节

整理校对:其其网ICT文档中心 · 本页地址:docs.qiqicto.com/storage/ceph-failure-domain-rack-aware.html

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌​​‌​‌‌‌‌​‌‌‌​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​‌‌‌​​‌​​‌‌​​​​‌​‌‌​​‌‌‌​‌‌​​‌​‌​​‌​‌‌‌‌​‌‌​​​‌‌​‌‌​​‌​‌​‌‌‌​​​​​‌‌​‌​​​​​‌​‌‌​‌​‌‌​​‌‌​​‌‌​​​​‌​‌‌​‌​​‌​‌‌​‌‌​​​‌‌‌​‌​‌​‌‌‌​​‌​​‌‌​​‌​‌​​‌​‌‌​‌​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​‌‌​‌​‌‌​​​​‌​‌‌​‌​​‌​‌‌​‌‌‌​​​‌​‌‌​‌​‌‌‌​​‌​​‌‌​​​​‌​‌‌​​​‌‌​‌‌​‌​‌‌​​‌​‌‌​‌​‌‌​​​​‌​‌‌‌​‌‌‌​‌‌​​​​‌​‌‌‌​​‌​​‌‌​​‌​‌​​‌​‌‌‌​​‌‌​‌​​​​‌‌‌​‌​​​‌‌​‌‌​‌​‌‌​‌‌​​