本文主要是介绍ZNS SSD+F2FS文件系统|如何降低GC开销?--2,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在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过程仍可能导致显著的性能下降。为解决这一问题,研究者提出了以下优化措施:
-
改进的空闲段查找策略:针对低OP配置空间配置下系统易崩溃的问题,研究者在LFS模式中新增了空闲段搜索机制。当常规的向前搜索无法找到可用的空闲段时,系统会从主数据区的起始位置开始,通过位图遍历整个设备,直至找到空闲段为止。这一改动显著降低了在多写应用高利用率场景下系统崩溃的风险。
在LFS模式下,F2FS采用向前(右方向)搜索的方式寻找空闲段。当接收到新的写请求时,F2FS首先检查当前段是否有足够的空间处理这些写入。如果没有,它会尝试在当前段右侧使用位图搜索下一个空闲段。若向前搜索无法找到可用的空闲段,则会触发警报并向用户侧发送通知,最终导致应用程序崩溃。
相比之下,在传统的SSD上,由于采取一对一的段与section映射,即使在高硬盘利用率下,也较容易在右侧找到空闲段。然而,ZNS SSD的特性决定了其section数量与zone数量相匹配,这意味着在高利用率下,尤其是在存在多个并发写入者的情况下,ZNS SSD上很难找到可用的空闲section。
上图显示,采用新搜索策略的ZNS-OP-SS配置能够在整个设计空间(包括高利用率区域)内保持稳定运行,而未采用新策略的ZNS-OP配置在磁盘利用率增高时性能明显下降,甚至可能导致应用崩溃。
-
并行垃圾回收(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
如果您看完有所受益,欢迎点击文章底部左下角“关注”并点击“分享”、“在看”,非常感谢!
精彩推荐:
-
漫谈HAMR硬盘的可靠性
-
万物皆可计算|下一个风口:近内存计算
-
SSD数据错误如何修复?
-
CXL与PCIe世界的尽头|你相信光吗?
-
全景剖析SSD SLC Cache缓存设计原理
-
存储革新:下一代低功耗PCM相变存储器
-
3D DRAM虽困难重重,最快明年到来
-
字节跳动入局存储内存SCM
-
解读“CFMS中国闪存市场峰会”存储技术看点
-
首个业内DNA存储技术规范发布
-
如何突破SSD容量提升的瓶颈?
-
固态存储是未来|浅析SSD架构的演进与创新技术
-
论文解读:NAND闪存中读电压和LDPC纠错码的高效设计
-
华为新发布磁电存储“王炸”,到底是什么?
-
SSD LDPC软错误探测方案解读
-
关于SSD LDPC纠错能力的基础探究
-
存储系统如何规避数据静默错误?
-
PCIe P2P DMA全景解读
-
深度解读NVMe计算存储协议
-
对于超低延迟SSD,IO调度器已经过时了吗?
-
浅析CXL P2P DMA加速数据传输的原理
-
NVMe over CXL技术如何加速Host与SSD数据传输?
-
浅析LDPC软解码对SSD延迟的影响
-
为什么QLC NAND才是ZNS SSD最大的赢家?
-
SSD在AI发展中的关键作用:从高速缓存到数据湖
-
浅析不同NAND架构的差异与影响
-
SSD基础架构与NAND IO并发问题探讨
-
字节跳动ZNS SSD应用案例解析
-
CXL崛起:2024启航,2025年开启新时代
-
NVMe SSD:ZNS与FDP对决,你选谁?
-
浅析PCI配置空间
-
浅析PCIe系统性能
-
存储随笔《NVMe专题》大合集及PDF版正式发布!
如果您也想针对存储行业分享自己的想法和经验,诚挚欢迎您的大作。
投稿邮箱:Memory_logger@163.com (投稿就有惊喜哦~)
《存储随笔》自媒体矩阵
更多存储随笔科普视频讲解,请移步B站账号:
如您有任何的建议与指正,敬请在文章底部留言,感谢您不吝指教!如有相关合作意向,请后台私信,小编会尽快给您取得联系,谢谢!
这篇关于ZNS SSD+F2FS文件系统|如何降低GC开销?--2的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!