ZNS SSD+F2FS文件系统|如何降低GC开销?--2

本文讨论了F2FS在ZNSSSD中通过OP配置策略来优化性能和耐用性。重点介绍了section-basedOP配置、动态调整、与垃圾回收的关系,以及针对高磁盘利用率和写密集型应用的优化措施,如改进的空闲段查找策略和并行垃圾回收(P-GC)方案。实验结果显示P-GC显著提升了文件系统性能,特别是在写密集型工作负载中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在F2FS(Flash-Friendly File System)中,Over-provisioning,OP配置是一种优化策略,旨在通过预留一部分存储空间不分配给用户使用,以提升文件系统的性能、耐用性和可靠性。在F2FS与ZNS SSD的结合中,OP策略得到了进一步优化。由于ZNS SSD具有固定的区域(zone)大小和顺序写入特性,F2FS能够更加精确地管理OP配置空间,以适应ZNS特有的存储管理需求。:

  • 基于section的OP配置:F2FS在ZNS SSD上按照section(一组连续segment)进行OP配置。section的设计与ZNS SSD的zone大小相对应,确保在section内部按顺序使用segment,以符合ZNS的顺序写入要求。通过预留一定数量的section作为OP配置空间,F2FS可以更有效地控制垃圾收集活动,尤其是在高利用率情况下。

  • 动态调整OP配置:根据实际工作负载和性能需求,F2FS允许系统管理员或自动调整算法动态改变OP配置的数量。例如,对于写密集型应用,可能需要增加OP配置以减少垃圾回收的压力;反之,对于读取为主的应用,可以适当减少OP配置以提高存储利用率。

  • 平衡磁盘利用率与性能:在F2FS中,OP配置的大小是一个关键的权衡因素。过高的OP配置虽然可以显著减少垃圾收集,但会降低硬盘的实际可用容量。相反,过低的OP配置可能导致频繁的垃圾收集和性能下降。因此,F2FS通过实验和数据分析,寻找最优的OP配置比例,以在硬盘利用率和性能之间找到最佳平衡点。

在F2FS与ZNS SSD的环境中,OP配置与垃圾回收过程密切相关。当OP配置充足时,文件系统可以在清理无效数据(即执行垃圾回收)时,有更多的空间可供移动有效数据,从而避免因空间不足导致的性能瓶颈。此外,OP配置还能为文件系统提供额外的缓冲空间,使其在处理突发写入请求时有足够的余地,进一步降低垃圾回收的触发频率。

图片

比如,上图中在给定条件下(45个zone的ZNS SSD、95%文件系统利用率)最适宜的F2FS预留section数量。选择这些配置可以最大限度地减少垃圾收集(GC)开销,提高I/O密集型应用的执行效率。

在OP配置空间较低的配置下,当运行I/O密集型应用时,系统会出现崩溃现象。究其原因,LFS模式下的空闲段搜索机制在面对高硬盘利用率时,尤其是在ZNS SSD(分区域命名空间固态硬盘)上,无法有效地找到可用的空闲段进行数据写入

F2FS具备两种垃圾回收GC模式:前台(FG)模式和后台(BG)模式。其中,FG模式在可用空闲段不足时触发,负责紧急的垃圾回收任务;而BG模式则周期性地在文件系统空闲时进行,即使在无I/O操作时也会运行,侧重于预防性的空间清理和整理。

针对ZNS SSD的特性,研究者发现尽管F2FS利用大比例的OP配置空间在一定程度上降低了GC开销,但在高磁盘利用率下,特别是在写密集型工作负载中,GC过程仍可能导致显著的性能下降。为解决这一问题,研究者提出了以下优化措施:

  1. 改进的空闲段查找策略:针对低OP配置空间配置下系统易崩溃的问题,研究者在LFS模式中新增了空闲段搜索机制。当常规的向前搜索无法找到可用的空闲段时,系统会从主数据区的起始位置开始,通过位图遍历整个设备,直至找到空闲段为止。这一改动显著降低了在多写应用高利用率场景下系统崩溃的风险。

在LFS模式下,F2FS采用向前(右方向)搜索的方式寻找空闲段。当接收到新的写请求时,F2FS首先检查当前段是否有足够的空间处理这些写入。如果没有,它会尝试在当前段右侧使用位图搜索下一个空闲段。若向前搜索无法找到可用的空闲段,则会触发警报并向用户侧发送通知,最终导致应用程序崩溃。

相比之下,在传统的SSD上,由于采取一对一的段与section映射,即使在高硬盘利用率下,也较容易在右侧找到空闲段。然而,ZNS SSD的特性决定了其section数量与zone数量相匹配,这意味着在高利用率下,尤其是在存在多个并发写入者的情况下,ZNS SSD上很难找到可用的空闲section。

图片

上图显示,采用新搜索策略的ZNS-OP-SS配置能够在整个设计空间(包括高利用率区域)内保持稳定运行,而未采用新策略的ZNS-OP配置在磁盘利用率增高时性能明显下降,甚至可能导致应用崩溃。

  1. 并行垃圾回收(P-GC)方案鉴于ZNS SSD的顺序写入特性使得LFS模式无法重用无效块,必须先清理整个section才能重用其中的脏块,这加速了空闲段的消耗并触发GC。为应对这一挑战,研究者提出了P-GC方案。当FG GC模式触发时,P-GC策略会根据victim section中有效块数量与总块数之比决定是否采用并行方式执行GC。若有效块数量大于或等于总块数的一半,则采用并行GC,否则采用单线程处理。通过并行化处理,P-GC能够加速GC过程,从而减少由GC导致的性能下降。

图片

为了验证上述优化措施的有效性,研究者进行了详细的实验评估。实验结果表明,采用P-GC方案后,F2FS在各种工作负载下,包括写密集型工作负载,平均性能提升可达42%。这充分证明了P-GC方案在降低GC开销、提升文件系统性能方面的显著效果。

图片

在FG GC(前台垃圾回收)期间,由于GC线程的工作,应用程序会被暂停,直到整个section被完全释放。这突显出FG GC的延迟对于决定应用程序性能至关重要。

图片

根据实验室数据显示,有力地证实了P-GC方案能够有效地管理慢速的GC请求,显著缩短GC过程中的延迟,从而提升应用程序的性能,有效地解决了由于FG GC延迟导致的性能瓶颈问题。

  • 对于YCSB-A workload:P-GC的平均速度比Vanilla(原始或基线方案)高出29%,并且在最慢的情况下,P-GC的表现比Vanilla快超过2.03倍。

  • 对于YCSB-F workload:P-GC的平均速度比Vanilla快7%。而在最慢的情形下,P-GC的速度更是达到了Vanilla的2.98倍。


 

参考文献:

  • Dongjoo Seo, Ping-Xiang Chen, Huaicheng Li, Matias Bjørling, and Nikil Dutt. 2023. Is Garbage Collection Overhead Gone? Case study of F2FS on ZNS SSDs. In 15th ACM Workshop on Hot Topics in Storage and File Systems (HotStorage ’23), July 9, 2023, Boston, MA, USA. ACM, New York, NY, USA, 7 pages.

  • https://www.kernel.org/doc/html/latest/filesystems/f2fs.html


如果您看完有所受益,欢迎点击文章底部左下角“关注”并点击“分享”、“在看”,非常感谢!

精彩推荐:

图片

如果您也想针对存储行业分享自己的想法和经验,诚挚欢迎您的大作。
投稿邮箱:Memory_logger@163.com (投稿就有惊喜哦~)

《存储随笔》自媒体矩阵

图片

更多存储随笔科普视频讲解,请移步B站账号

图片

如您有任何的建议与指正,敬请在文章底部留言,感谢您不吝指教!如有相关合作意向,请后台私信,小编会尽快给您取得联系,谢谢!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

古猫先生

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

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

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

打赏作者

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

抵扣说明:

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

余额充值