文件系统如何在断电或内核崩溃后维持结构一致性
简答题困难991 次浏览
参考答案与解析
# 核心结论
文件系统要在断电或内核崩溃后维持一致性,必须控制数据块、元数据和目录项的持久化顺序,并提供可恢复的提交边界。日志、写时复制、校验和与显式同步分别解决不同问题:日志主要帮助恢复结构一致性,写时复制避免直接覆盖旧结构,校验和用于发现损坏,同步操作用于让应用明确要求数据推进到持久层。写入系统调用成功只表示数据已被内核接受,通常不等于已经写入非易失介质;原子重命名也只保证名字切换不存在可见中间态,不自动提供断电后的持久性。
# 底层机制
应用写入文件时,数据一般先进入页缓存,系统调用可在实际设备写入完成前返回。创建文件、扩展长度、分配数据块和更新目录项又涉及多处元数据。如果设备只持久化其中一部分,可能出现目录指向
