SplitFS

Design of SplitFS

Ext4-DAX的索引路

SplitFS 将文件系统在逻辑上拆分为用户空间部分(U-Split)和内核空间部分(K-Split),其中 K-Split 使用 ext4-DAX。通过 U-Split 将一个文件拆分为多个 2MB 区域,其中每个区域映射到一个 ext4-DAX 文件。 USplit 和 K-Split 都参与索引:U-Split 将一个逻辑文件偏移映射到对应的 ext4-DAX 文件,K-Split 中的 ext4-DAX 进一步搜索其extent index 以获取实际物理地址。

SplitFS还提出了一种名为relink的新操作,以提高文件扩展的性能,并在没有双重写入数据的情况下在文件写入时提供崩溃一致性。在其同步模式下,文件增加首先添加到一个暂存文件,然后在调用fsync()或暂存文件达到其大小限制时重新链接到目标文件;文件覆盖已应用。在严格模式下,每个文件写入,无论是覆盖还是附加数据,都会应用于暂存文件,并在每次写入结束时重新链接。因此,SplitFS 的索引时间包括内核和用户组件中的重新链接、mmap 和索引。