知识卡片

clone_overlap记录增量重叠优化数据恢复

专业/工作 · 236.e.5.a

内容

SnapSet 里的 clone_overlap 记录了每次新产生的克隆对象和上一个克隆对象(或 head 对象)之间数据重叠的区间,这份信息在数据恢复阶段被用来做优化——如果某个克隆对象需要从副本恢复,且它和相邻版本的重叠区间很大,恢复流程可以利用重叠信息缩小实际需要传输的数据范围,而不是每次都整块对象全量拷贝。这是给写时复制机制额外挂了一份”版本间差异地图”:COW 本身解决的是省空间的问题,clone_overlap 进一步利用了 COW 产生的版本关系去省恢复时的网络和 IO 开销,两者服务于不同阶段但共享同一份版本演化的元数据。

参考来源

《Ceph源码分析》第9章《Ceph快照和克隆》