知识卡片

past_interval追踪acting与up set的历史稳定区间

专业/工作 · 515.c.4

内容

Ceph 不只关心 PG 当前的 [[acting set与up set分离应对新OSD无法立即服务|acting/up set]] 是什么,还把 OSDMap 变化的历史切成一段段”acting/up set 没有变化”的区间(past interval),每段记录起止 epoch、期间是否发生过读写。这份历史的意义在于:判断一次故障恢复是否可行,不能只看”现在缺了谁”,还要回溯每一段历史区间——只要有任意一段区间内该 PG 完全不可用(可用副本数不足以恢复),就说明这段时间的数据可能已经不可挽回地丢失,必须往前追溯足够远才能准确判断当前能不能安全地重新提供服务。这提醒了一个常被忽视的点:判定”当前状态是否安全”有时必须依赖完整的历史区间,而不能只看快照式的当前状态。

参考来源

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