知识卡片
OSD与PG的状态模型
内容
Ceph 用两组正交的状态描述集群健康度。OSD 有四种组合状态:up+in(正常承载数据)、up+out(进程正常但未分配任何 PG)、down+in(故障但仍标记为承载着数据,即异常态)、down+out(彻底出局,不再承载任何 PG)——in/out 描述”是否该被分配数据”,up/down 描述”进程是否存活”,两个维度互相独立。PG 的状态机则围绕数据一致性展开:Peering(多副本协商同步到一致状态的过程)、Active/Clean(协商完成、可正常读写,最健康状态)、Degraded(因 OSD 下线而副本不全)、Recovering/Backfilling(分别对应老副本追赶最新版本、新 OSD 加入后拷贝数据)、Remapped(映射已变但数据未搬完)、Stale(Monitor 拿不到该 PG 的最新状态)。发散:把”节点是否存活”和”节点是否该服务”拆成两个独立维度,是很多分布式系统健康检查设计的共同套路——存活探针和就绪探针分离,道理相同。
参考来源
《Ceph分布式存储实战》第13章《Ceph运维与排错》