知识卡片

MissingLoc分离缺失对象清单与其位置索引

专业/工作 · 515.d.4

内容

MissingLoc 用两张独立的表分别回答两个问题:needs_recovery_map 回答”哪些对象缺失、缺的是哪个版本”,missing_loc 回答”每个缺失对象能去哪个 OSD 上找到正确数据”。先汇总所有副本上报的缺失情况得到第一张表,再逐个副本检查它是否持有某个缺失对象的正确版本来填充第二张表——”知道自己缺什么”和”知道去哪补”被建模成两个独立步骤,而不是一步到位。这让 Recovery 阶段可以先确定修复的全集范围,再单独为每个对象寻找可用数据源,即使某个对象的数据源信息还没查清楚,也不妨碍先统计出完整的待修复对象清单。

参考来源

《Ceph源码分析》第10章《Ceph Peering机制》