SchInFS: A File System Integrating Functions of the Block I/O Scheduler for ZNS SSDs——泛读笔记

ICCD 2024 Paper 分布式元数据论文阅读笔记整理

问题

分区命名空间(ZNS)SSD将地址空间划分为顺序写入的区域,并将垃圾回收(GC)转移到主机,从而提供更稳定的性能、更大的容量和更长的设备寿命。

然而,顺序写入约束给ZNS设备上的文件系统设计带来了一些问题,例如:依赖覆盖操作的文件系统(例如,Ext4[10]和XFS[11])不能直接在ZNS SSD上运行;如果不采取额外措施(例如,zone Append命令[12]或合并写入请求),多个写入请求不能同时写入单个区域。这些问题给提高文件系统的多线程写入吞吐量带来了困难。

现有方法局限性

为了适应NVMe ZNS SSD并缓解上述问题,F2FS[13]和BTRFS[14]引入了额外的设计。

F2FS需要额外的块接口设备来存储元数据,需要在块层使用块I/O调度器mq-deadline[15]-[17]。合并来自不同线程的数据块和节点块,将它们提交给块层的mq-deadline调度器进行进一步合并[16],最后将合并后的请求写入ZNS SSD。

BTRFS可以直接在ZNS SSD上运行,而无需额外的设备,需要在块层使用块I/O调度器mq-deadline[15]-[17]。采用了Zone Append命令[12],允许将多个数据块并发写入单个区域[18]。

通过全面的实验,两种文件系统在NVMe ZNS SSD上可扩展性很差,且写入吞吐量远低于ZNS SSD的最大写入带宽,其根本原因在于:

  • 当前文件系统通常无法同时利用多个区域的吞吐量。

  • 当前文件系统在单个区域内并发写入的方法效率低下。

本文方法

本文提出了SchInFS,集成了块I/O调度器功能的多头日志ZNS SSD文件系统。

  • 采用多头日志设计,同时利用多个区域的吞吐量。

  • 为每个日志提供了一个独立的合并队列,促进了高效的跨线程写入块。

  • 使用块I/O提交控制器(BSC)来确保在单个区域内及时提交请求和有序写入。

真实设备的评估证明了SchInFS的有效性,与当前的ZNS SSD文件系统相比,ZNS SSD的并发性能提高了71.94%。

总结

针对ZNS SSD上文件系统写入性能问题,现有文件系统:无法同时利用多个区域的吞吐量;在单个区域内并发写入的方法效率低下。本文提出SchInFS,集成了块I/O调度器功能的多头日志ZNS SSD文件系统。包括3个技术:(1)多头日志设计,同时利用多个区域的吞吐量。(2)每个日志单独一个合并队列,促进了高效的跨线程写入块。(3)使用块I/O提交控制器(BSC)确保在单个区域内及时提交请求和有序写入。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

妙BOOK言

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值