知识卡片

writeahead与parallel日志模式依赖文件系统快照能力

专业/工作 · 514.b.4

内容

FileStore 提交 [[日志与事务实现磁盘写入的原子性|日志]]有两种时序:writeahead 严格要求日志先完整落盘、再开始应用到实际对象数据,适用于 XFS/EXT4 这类不支持文件系统级快照的文件系统;parallel 让日志提交和数据应用同时进行、不分先后,只适用于 BTRFS/ZFS 这类支持快照的文件系统——因为一旦应用过程中途出错,可以直接把文件系统回滚到上一次快照再重放日志,不需要依赖”日志必须先于数据落盘”这个前提来保证可恢复性。选哪种协议不是纯软件层面的偏好,而是由底层文件系统提供的能力决定的:能兜底(快照回滚)就能放松时序换性能,不能兜底就必须严格排序保正确性。

参考来源

《Ceph源码分析》第7章《本地对象存储》