新兴的分区命名空间(Zoned Namespace,ZNS)为主机提供细粒度的、性能可预测的存储管理。ZNS将地址空间组织成由固定大小、顺序写入、不可覆盖的块组成的Zone,使其适用于日志结构文件系统。然而,实验分析表明,ZNS的写约束带来了文件同步开销。首先,数据块的异地更新需要对文件元数据块进行频繁的小修改,以记录最新的逻辑块地址。其次,一些文件(如数据库的WAL文件)经常执行小的同步写操作,其I/O大小通常小于逻辑块。这些文件元数据和文件数据的持久化需要回写整个块,即使只是部分更新。这将显著增加I/O延迟,并可能缩短设备寿命。本文提出了exZNS,它是ZNS的一种创新扩展,旨在提供常规Zone和Byte-loggable Zone。通过向应用程序公开设备上打开区域的持久写缓冲区,Byte-loggable Zone允许通过一组新的API以字节粒度追加。

图1 exZNS架构
为了减少上述持久化开销,构建了一种用于exZNS的新型高性能文件系统exBlzFS。exBlzFS选择性地将元数据块的部分更新记录到Byte-loggable Zone,以确保元数据的持久性,并以字节粒度将文件数据保存到Byte-loggable Zone,以吸收频繁的同步小写操作。评估结果表明,与F2FS相比,exBlzFS可使数据库的IOPS提高76.3%,设备写流量降低94%。

图2 exBlzFS架构
该研究工作题为“exZNS: Extending Zoned Namespace to Support Byte-loggable Zones”,已在《ACM Transactions on Architecture and Code Optimization》(CCF A类)上发表,并得到了国家重点研发计划项目(2023YFB4502801)等资助。