RomeFS: A CXL-SSD Aware File System Exploiting Synergy of Memory-Block Dual Paths——论文泛读

SoCC 2024 Paper CXL论文阅读笔记整理

问题

基于Compute eXpress Link(CXL)的固态硬盘(CXL-SSD),集成了前端内置DRAM和后端大容量闪存,利用CXL.mem接口提供类似于持久内存的内存扩展,但连接到PCIe总线而不是传统的内存总线[7,11,15,20,39,55]。当DRAM/闪存容量比较低时,由于DRAM和闪存之间巨大的延迟差距和粒度不匹配,以及不可知的应用行为,完全隐藏后端闪存(例如2TB)的长延迟是具有挑战性的[55]。

三星CMM-H[7,39]等CXL-SSD承诺提供CXL.mem和CXL.io的双模接口,并在内部将后端大容量闪存划分为存储区和SSD区,分别存储这两个接口的数据。因此CXL-SSD可以同时支持基于内存和块的数据路径。但CXL-SSD仅以概念协议的形式存在,没有双方同意的规范和实现细节。

通过对比CXL和SSD的带宽(表1)和延迟,CXL内存并不具有压倒性的带宽优势,但CXL延迟明显低于SSD的访问延迟。

因此提供了两个关键的见解:

  • CXL.io数据路径可以有效地处理大型数据访问,直接利用SSD的高内部并行性,避免通过小型但昂贵的内置DRAM缓存。

  • CXL.mem数据路径可以快速处理缓存中的小规模数据访问。

因此,协同使用双模式的两条数据路径有望充分发挥CXL-SSD的性能,但现有的存储系统不能以协同和互补的方式同时利用基于内存和块的数据路径。

本文方法

本文提出了RomeFS,一个支持CXL-SSD的文件系统,通过协同但优先利用互补的CXL.mem和CXL.io数据路径来处理文件操作。

  • 双路径数据布局,将元数据存储在CXL.mem数据区,将文件数据存储在CXL.mem和CXL.io数据区,进一步将大块对齐的文件分配给CXL.io数据路径,将小块或剩余的未对齐文件分配给CXL.mem数据路径。在运行时协同使用两个数据路径对文件数据进行双路径访问。

  • 混合并行文件索引,以高效定位两条数据路径上的文件数据。进一步设计了写时合并(MOW)和按块数据日志回写(LWB)机制,以减轻文件数据碎片并及时释放CXL-SSD的内存区域。

  • 元数据日志记录和协同双路径事务写入,以低开销确保写入原子性和崩溃一致性。

在两个仿真硬件平台上实现并评估了RomeFS。实验表明,RomeFS的表现优于基于块的文件系统和基于PM的文件系统,分别提高了14.24倍和4.89倍。

总结

针对CXL-SSD硬件下的文件系统,CXL-SSD提供CXL.mem和CXL.io双模接口,分别连接内存区和SSD区,但现有文件系统无法适应这种新架构。本文提出RomeFS,协同利用CXL.mem和CXL.io数据路径来处理文件操作,包括3个技术:(1)双路径数据布局,将元数据存储在CXL.mem数据区,将文件数据存储在CXL.mem和CXL.io数据区,运行时协同使用两个数据路径对文件数据进行双路径访问。(2)混合并行文件索引,定位两条数据路径上的文件数据。设计了写时合并(MOW)和按块数据日志回写(LWB)机制,以减轻文件数据碎片。(3)元数据日志记录和协同双路径事务写入,以低开销确保写入原子性和崩溃一致性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

妙BOOK言

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

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

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

打赏作者

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

抵扣说明:

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

余额充值