分享自:

ByteFS:基于CXL的内存语义固态硬盘系统支持

期刊:Proceedings of the 30th ACM International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS ’25)DOI:https://doi.org/10.1145/3669940.3707250

作者与研究发表信息

这项研究题为《ByteFS: System Support for (CXL-based) Memory-Semantic Solid-State Drives》,由 Shaobo Li、Yirui Eric Zhou、Hao Ren 和 Jian Huang 等学者完成,隶属于 University of Illinois Urbana-Champaign。本研究发表于2025年3月30日至4月3日在荷兰鹿特丹召开的 ASPLOS ‘25 会议。这是一项关于存储领域的原创性研究,提出了一种名为 ByteFS 的新文件系统,以支持基于 CXL(Compute Express Link)的内存语义固态驱动器(Memory-Semantic Solid-State Drives, 简称 M-SSD)。


研究背景与动机

主要科学领域: 这项研究属于现代计算机存储系统领域,尤其是关于存储类内存(Storage-Class Memory, SCM)和新型 M-SSD 设备的优化与支持。

研究背景与挑战:

现代计算机系统对存储类内存(SCM)的需求日益增加,这类存储具有可扩展的容量、字节寻址(Byte-Addressable)数据访问能力以及数据持久性(Durability)的优点。如非易失性内存(NVM)和 Intel Optane 等产品是这一领域的典型代表。然而由于市场上缺乏成熟的 NVM 产品,研究人员逐渐转向基于 NAND 闪存技术的 M-SSD,这具有更低成本、更高容量的优势,同时通过 PCIe 或 CXL 双界面实现块(Block)和字节(Byte)两种访问粒度。然而,现有的系统软件(如传统文件系统)主要为块接口设计,无法充分利用 M-SSD 的双接口特性,且导致高 I/O 放大率(I/O Amplification)。现有针对 NVM 的文件系统,例如 PMFS 和 NOVA,偏重字节接口设计,但与 M-SSD 的硬件特性并不匹配。

研究目标:
该研究的目标是在文件系统和固态硬盘固件中重新设计关键逻辑,提出一种能够充分利用双接口、降低 I/O 放大率、优化性能与数据一致性的新型文件系统——ByteFS。


研究方法与完整工作流程

研究整体分为以下步骤:

1. 数据访问模式特性研究

研究团队首先针对现有的 Linux 文件系统(例如 ext4 和 f2fs)的核心数据结构和操作模式进行了全面的分析。他们具体观察了文件系统在使用块接口时的 I/O 放大问题,统计了不同工作负载下的元数据和数据访问习惯,为设计 ByteFS 提供了参考依据。

  • 工作负载:文件创建、删除、目录操作等常见任务,以及 Varmail、FileServer、WebServer 等宏基准测试。
  • 数据收集:通过分离文件系统数据结构如 inode、superblock 和 page cache 的访问量,分析适合块接口和字节接口的使用场景。

2. ByteFS 的设计与实现

(1) 设计挑战: ByteFS 的设计有以下主要挑战: - 字节接口与闪存颗粒度(page-granular)的物理限制之间的矛盾。 - 如何动态选择合适的数据访问粒度(字节/块)。 - 系统在性能与一致性保证之间的权衡。

(2) 体系结构: ByteFS 包括软件(主机文件系统)和硬件(SSD 固件)的协同设计,具有以下关键组件: - SSD 内部日志结构化内存(Log-Structured Memory): 将 SSD 内部的 DRAM 缓存管理为一个日志结构,以支持字节粒度的写操作,并通过数据合并减少不必要的 I/O。 - 日志索引机制(Log Indexing): 使用三层 Skip List(跳表)管理日志数据,提供高效的日志查找和清理。 - 数据访问的动态策略(Dual Interface Adaptation): 根据数据访问模式选择块或字节界面处理不同的数据结构,如 inode、bitmap、page cache 等。 - 事务支持(Transactionality): 利用 SSD 固件级别的写日志(Write Log)构建低开销事务机制。

3. 系统功能开发与实验平台搭建

(1) 文件系统实现:
团队以 ext4 为基础开发了 ByteFS 文件系统,新增 3.9k 行代码,重新设计了重要的元数据管理逻辑。

(2) 硬件平台开发:
团队使用 OpenSSD FPGA 板搭建了真实 M-SSD 原型,同时开发了一个基于 FEMU 的 M-SSD 模拟器,分别验证了 ByteFS 的可用性和效率。

4. 数据分析与实验

研究者选择了多种基准工作负载(如 FileBench 和 YCSB)并比较了 ByteFS 与其他文件系统(如 ext4、f2fs、NOVA 和 PMFS)的性能。性能指标包括吞吐量、I/O 放大率、闪存访问流量等。


研究主要结果

(1) 性能提升: - ByteFS 在微基准测试中比 ext4 和 f2fs 性能分别提升 2.5× 和 1.48×。 - 在文件创建、目录创建等元数据密集型操作中,ByteFS 减少了 11.4× 的元数据写流量。 - 在宏基准测试中(如 Varmail 和 FileServer),ByteFS 比 ext4 和 f2fs 提升了多达 2.2× 的吞吐量。 - 在 YCSB 操作中,ByteFS 在读写延迟(特别是尾延迟)方面表现显著优于其他文件系统。

(2) I/O 流量优化: - ByteFS 凭借日志缓冲和动态数据粒度选择,将主机到设备的流量减少了最多 5.1×。 - 在 SSD 内部,字节写操作被日志结构化的缓存简化,同步到闪存的流量被显著降低。

(3) 崩溃一致性与恢复: - ByteFS 的 SSD 固件级写日志作为重做日志(Redo Log),支持原子事务存储。在实验中,其系统重启后的恢复时间平均为 4.2 秒。


研究结论与意义

1. 科学意义: ByteFS 为内存语义 SSD 提供了系统软件支持,首次证明了通过协同设计文件系统和 SSD 固件能够显著改善 I/O 性能和一致性问题。这在存储类内存无法满足需求时,为整个存储领域提供了一个实用、低成本的替代方案。

2. 应用价值: 通过支持 CXL 的 M-SSD,ByteFS 可以广泛应用于需要高频随机写入、高吞吐与较高数据一致性要求的现代存储负载中,例如数据库系统(如 RocksDB)与企业存储服务。


研究亮点

(1) 创新的方法: - 提出了独特的日志结构化缓存机制与三层索引结构,优化了固件性能。 - 实现了针对双界面(字节/块)的动态数据访问机制。

(2) 显著的性能提升: - 在多种现代存储负载中验证了其较现有文件系统的优越性能。

(3) 高效的崩溃恢复: - 在保证系统一致性的同时提供了快速恢复能力。


总结

这项研究成功探索并验证了内存语义 SSD 上的高效文件系统设计,为未来存储技术的发展提供了新思路,也为存储系统的研究与应用提供了参考实例。研究者的工作展现了软件和硬件协同设计在存储领域的潜力。

上述解读依据用户上传的学术文献,如有不准确或可能侵权之处请联系本站站长:admin@fmread.com