知识卡片
PG日志只记元数据作为修复依据
内容
PG 日志记录的是整个 PG 内所有对象更新操作的元数据(谁、哪个版本、什么操作类型),完全不含实际数据内容,且要求版本号连续不间断——一旦版本连续性断裂(比如某 OSD 离线太久,日志尾部已经被 [[环形日志用多个序号指针管理生命周期|trim]] 掉需要的区间),就无法再靠日志做增量修复,只能退化到 [[Recovery与Backfill的适用场景区别|Backfill]] 全量比对。这份纯元数据、要求连续性的日志,本质是把”判断哪些对象需要修复”这件事从”扫描比对全部数据”简化成”比对一份轻量的操作序号清单”——只要这份清单的连续性还在,就能用很小的开销算出精确的差异集合,一旦断裂,轻量清单就失去意义,必须退回最笨但保底的全量比对。
参考来源
《Ceph源码分析》第10章《Ceph Peering机制》