什么是LFS和F2FS

(待续)原始LFS设计

F2FS理论

F2FS的优点以及与LFS的区别

日志结构文件系统的固有优点

f2fs 采用顺序写,因此具有适合闪存介质特性的特点。

解决了wandering tree问题

在 LFS 中,修改一个文件的数据块会导致其位置发生变化,即追加到尾部。这就导致指向该数据块的直接指针需要修改。然而修改其指针会导致指向直接指针的间接指针也需要修改。因此 inode、inode map 和 cp block 都需要递归修改。

在F2FS中,增加了一个随机写的元数据区域。其中,引入 NAT 表记录 node 位置,切断递归更新。

image.png

解决了LFS的高GC开销问题

采用multi-head logging实现冷热数据分离

F2FS中存在6个log,即{Hot, Warm, Cold}*{Node, Data}。

image.png

LFS中只有一个全局的大log,而F2FS中通过将空间划分为6个log实现了冷热数据分离。冷热数据分离就是为了减少GC开销。

自适应切换写入方式