F2FS文件系统简介
背景
F2FS (Flash Friendly File System) 是专门为基于 NAND 的存储设备设计的新型开源 flash 文件系统。
特别针对 NAND 闪存存储介质做了友好设计。F2FS 于2012年12月进入 Linux 3.8 内核。目前,F2FS仅支
持Linux操作系统。
解决的问题
LFS(Long-strctured File System)
为管理磁盘上的大的连续的空间以便快速写入数据,将log切分成Segments,使用Segment Cleaner从重度碎片化的Segment中转移出有效的信息,然后该Segment清理干净后用于后续写入数据。
wander tree的滚雪球效应
在LFS中,当文件的数据块快被更新的时候是写到log的末尾,该数据块的直接指针也因为数据位置的改变而更改,然后间接指针块也因为直接指针块的更新而更新。按照这种方式,上层的索引结构买入inode、inode map以及checkpoint block也会递归地更新。这就是所谓的wandering tree问题。为了提高性能,数据块更新的时候应该尽可能地消除或减少wandering tree的更新节点传播。
