知识卡片
Recovery与Backfill的适用场景区别
内容
数据修复分两种机制:Recovery 依据 [[Peering建立PG级数据一致性窗口|Peering]] 过程中 PG 日志推算出的不一致对象列表做精确修复,代价小但要求日志还”记得住”这段差异;当某 OSD 离线时间过长、日志已经追不上时,就只能退化为 Backfill——逐一比对两个 PG 的完整对象列表来找出差异并回填,代价高但不依赖日志的连续性。新加入 OSD 引发的数据迁移同样只能走 Backfill。二者的取舍本质是”有没有增量信息可用”:有就用日志做增量修复,没有就退化成全量比对。
参考来源
《Ceph源码分析》第1章《Ceph整体架构》