ctFS: Replacing File Indexing with Hardware Memory Translation through Contiguous File Allo...——泛读笔记

FAST 2022 Paper 分布式元数据论文汇总

问题

持久的字节寻址内存(PM)有望在未来的计算机系统中变得普遍。与磁盘存储相比,PM的速度显着更快,并且对PM的访问受到内存管理单元(MMU)的控制,就像对易失性RAM的访问一样。这些独特的特性将性能瓶颈从I/O转移到了块地址查找的操作上,例如,在写入工作负载中,ext4-DAX中高达45%的开销是由于构建和搜索范围树以将文件偏移转换为持久内存上的地址。

Intel Optane DC PM的顺序读取、随机读取和写入延迟分别为169ns、305ns和94ns,与DRAM(86ns)的数量级相同[19]。

现有方法局限性

Linux引入了对某些文件系统(ext4、xfs、ext2)的直接访问支持(DAX),消除了对页面缓存的使用。其他设计将不同的文件系统数据结构映射到用户空间,以减少切换到内核的开销[7, 8, 21, 25, 37]。SplitFS,使用内存映射I/O[21]以显著提高性能。

但这些系统都使用传统的基于树的索引结构将文件偏移转换为设备地址。随着PM的出现,内存和持久存储的速度速度差异已经显著缩小,几乎可以忽略不计。这反过来将瓶颈从I/O转移到了文件索引开销。

ctFS: Replacing File Indexing with Hardware Memory Translation through Contiguous File Allo...——泛读笔记_第1张图片

本文方法

我们提出了一种新颖的连续文件系统,ctFS,消除了与文件系统中的范围树等索引结构相关的大部分开销。

  • 将每个文件(和目录)连续分配在64位虚拟内存空间中。虚拟地址空间由分层布局精心管理,类似于伙伴存储器分配[23],其中每个分区被细分为8个大小相等的子分区。这种设计加快了分配速度,避免了外部碎片,并最大限度地减少了内部碎片。

  • 使用持久页面表(PPT)管理文件虚拟地址到物理地址的映射。PPT的结构与DRAM中的页表类似,只是PPT持久存储在PM上。当ctFS内存区域内的地址出现页故障时,操作系统会查找PPT,并在基于DRAM的页表中创建相同的映射。因此,子序列访问由基于DRAM的页表的硬件MMU提供服务,避免了索引成本。

  • 文件创建时在一个分区内分配,该分区的大小刚好足够该文件使用。当文件超出其分区时,会移动到虚拟内存中更大的分区,而不会复制任何物理持久内存。ctFS通过原子交换或pswap将文件的物理页面重新映射到新分区,pswap是一种新的操作系统调用,可以原子交换虚拟到物理的映射。原子交换还可以实现多块写入的高效崩溃一致性,而无需重复写入数据。ctFS中的原子写入只需将数据写入新空间,然后用旧数据对其进行pswap。

ctFS: Replacing File Indexing with Hardware Memory Translation through Contiguous File Allo...——泛读笔记_第2张图片

开源代码:https://github.com/robinslee09201/ctFS

在LevelDB等实际工作负载上评估ctFS,结果显示其性能优于ext4-DAX和SplitFS,分别提高了3.6倍和1.8倍。

实验

实验环境:两个128GB Intel Optane DC PM、一个2.5 GHz的8核Intel Xeon 4215 CPU、96 GB DRAM的服务器、Linux版本v.7.0-rc7+。

数据集:micro-benchmark,LevelDB上的YCSB,RocksDB上的db_bench

实验对比:运行时间,吞吐量,资源使用,可扩展性

总结

针对PM文件系统中,文件偏移转换为设备地址的性能。现有方法使用基于树的索引结构,但文件索引开销过高。本文提出ctFS,将每个文件分配在连续的虚拟内存中,使用持久页面表(PPT)管理文件虚拟地址到物理地址的映射,文件索引由硬件MMU高效执行。文件大小修改时,通过原子交换或pswap将文件的物理页面重新映射到新分区,只需将数据写入新空间,然后用旧数据对其进行pswap。

你可能感兴趣的:(论文阅读,论文阅读,文件系统)