ZNS SSD是不是持久缓存的理想选择?

news2024/11/16 1:29:32

随着数据量的增加和技术的进步,对于高效、可靠的存储解决方案的需求日益增长。传统的基于块的SSD虽然具有成本效益和持久性的优点,但在处理写密集型和更新密集型工作负载时存在局限性。

NAND闪存的特点是数据只能按页(例如4KiB)写入,不支持原地更新,必须以块为单位进行擦除。然而,块接口的局限性在于需要通过垃圾收集(GC)来支持4KiB的原地更新,而且无法感知擦除行为,导致不可控的垃圾收集引发不稳定延迟。这些问题在缓存工作负载中尤为突出,因为它们通常是写密集型和更新密集型的,并倾向于高容量利用率。

图片

持久缓存(Persistent Cache)是指一种用于存储频繁访问的数据,并能在系统重启后仍然保留这些数据的缓存机制。持久缓存结合了缓存的快速访问特性和非易失性存储的持久性,使得数据能够在系统断电后仍然得以保存,从而提高了数据的可靠性和系统的整体性能。随着固态存储技术的进步,特别是ZNS SSDs等新型存储技术的发展,持久缓存的应用范围将进一步扩大,为各种高性能计算场景提供支持。

扩展阅读:

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

  • 为什么QLC NAND才是ZNS SSD最大的赢家?

  • 字节跳动ZNS SSD应用案例解析

  • NVMe SSD:ZNS与FDP对决,你选谁?

Zoned Namespace SSDs(ZNS SSDs)作为一种新兴技术,旨在克服传统SSD在某些场景下的局限性,特别是在持久缓存系统中的应用。ZNS SSDs通过提供一种新接口来克服传统SSD的一些限制,尤其是在某些应用场景下。具体来说,ZNS SSDs能够减少内部垃圾收集过程中的写放大(WA),这有助于延长SSD的寿命并避免因额外的数据移动而导致的吞吐量降低和不稳定延迟。此外,与相同成本的传统SSD相比,ZNS SSDs可以提供更大的存储容量。

图片

闪存缓存被广泛应用于各种场景,例如Meta的CacheLib就是一个典型的例子。闪存缓存通常将缓存项组织成大的段(例如Region),并通过文件或直接使用原始设备来减少I/O开销和降低写放大(Write Amplification, WA),缓存空间几乎总是被充分利用。此外,使用缓存时,大量的随机更新会加剧写放大现象,进而影响性能。ZNS SSDs为持久缓存系统提供了许多潜在的好处,包括更大的存储空间、更低的尾部延迟和更少的写放大。这些特点使得ZNS SSDs成为持久缓存系统的一个极具吸引力的选择。

当前持久缓存引擎的局限性
  • 基于文件系统的持久缓存:这类引擎通常使用文件系统作为底层存储,这在很大程度上简化了缓存管理,但文件系统的设计并不适合ZNS SSDs的要求。文件系统中的原地更新会导致写放大,增加垃圾回收的频率,从而影响SSD的性能和寿命。

  • 基于标准SSD的持久缓存:这类引擎直接使用标准SSD作为存储介质,虽然可以减少文件系统的开销,但仍然存在不兼容ZNS SSDs的问题。标准SSD通常不支持ZNS SSDs的Zone管理功能,导致无法充分利用ZNS SSDs的优势。

设计垃圾回收机制的挑战
  • 写放大:传统SSD中的垃圾回收过程往往导致写放大,即为了更新一小部分数据,需要写入更多数据。在ZNS SSDs中,由于只支持顺序写入,需要重新考虑如何在不增加写放大的情况下执行更新操作。

  • 缓存性能:在设计垃圾回收机制时,需要考虑如何不影响缓存的读写性能。高效的垃圾回收策略应该尽可能减少对缓存操作的影响,确保缓存服务的快速响应。

  • 缓存命中率:缓存命中率是衡量缓存系统性能的关键指标之一。设计垃圾回收机制时需要考虑如何通过合理的缓存替换策略来提高缓存命中率。

一、ZNS SSD作为持久缓存技术分析

面对ZNS SSDs作为持久缓存后端的挑战,需要对现有的缓存引擎进行改进和优化,以充分发挥ZNS SSDs的优势。这涉及到重新设计垃圾回收机制、磨损均衡策略等关键组件,以实现更好的性能和更长的SSD寿命。通过这些改进,ZNS SSDs可以为持久缓存系统提供更加高效、可靠和持久的存储解决方案。

为了探索利用ZNS SSDs作为持久缓存后端的可能性和权衡,研究者提出了三种可能的设计方案:

  • 文件缓存:使用兼容ZNS的文件系统,实现完全透明化。

  • Zone缓存:直接将缓存的SSD管理单元映射到固定大小的区域。

  • 中间层缓存:使用一个简单的中间层将区域接口转换为缓存管理单元的接口。

1.文件缓存

在考虑使用ZNS SSDs作为持久缓存后端时,一种可能的方案是使用兼容ZNS的文件系统。这种方案旨在通过提供通用的文件接口来实现缓存功能,但同时也带来了一些额外的开销和挑战。

图片

文件系统缓存方案 (File-Cache)
  • 文件系统:使用兼容ZNS的文件系统(例如F2FS)来提供通用的文件接口。

  • 缓存管理:缓存项按照Region进行组织,每个Region对应ZNS SSDs的一个或多个Zone。

  • 数据组织:每个Region包含多个Zone,每个Zone大小固定,例如16MiB。

  • I/O单位:文件系统以4KiB为单位进行I/O操作。

  • 元数据与数据分离:文件系统将元数据和数据分开存储,以减少写放大。

  • 重用机制:文件系统支持Zone的重用(reclaim),以便释放不再使用的空间。

技术细节与挑战
  • 额外开销:使用文件系统会引入额外的开销,包括元数据管理、索引结构维护等。

  • 文件系统构建:需要额外的SSD来构建文件系统,例如使用F2FS作为底层文件系统。

  • 全透明性:文件系统提供的全透明接口使得优化垃圾收集变得困难。

  • 性能影响:文件系统的额外开销可能会对缓存性能产生负面影响。

  • 空间利用率:文件系统的特性可能会导致空间利用率不如直接管理ZNS SSDs的方式高。

使用兼容ZNS的文件系统作为持久缓存的方案虽然简单且易于集成,但对于追求高性能和低延迟的应用来说,它可能不是最佳选择。额外的文件系统开销和限制的优化能力可能会影响缓存系统的整体性能。因此,在选择使用兼容ZNS的文件系统之前,应仔细考虑其适用性和潜在的性能影响。

2.Zone缓存

在考虑使用ZNS SSDs作为持久缓存后端时,另一种可能的方案是直接使用ZNS SSDs的Zone接口,并将缓存管理单元(Region)与Zone大小相匹配。这种方案旨在减少映射开销,实现无垃圾回收的设计,并消除写放大现象。

图片

直接使用Zone接口 (Zone-Cache)
  • 直接使用Zone接口:直接使用ZNS SSDs的Zone接口进行缓存管理,而不是通过文件系统或其他中间层,可以减少映射缓存管理单元到物理存储的开销。

  • 缓存管理单元与Zone匹配:将缓存中的Region映射到ZNS SSDs的Zone上,使得每个Region对应一个或多个Zone。

  • 无垃圾回收设计:由于ZNS SSDs的特性,可以实现零写放大,不需要进行内部垃圾回收。

  • 无OP空间:由于Zone的管理直接由应用程序控制,不需要额外的预留空间OP来支持垃圾回收过程。

在考虑使用ZNS SSDs作为持久缓存后端时,直接使用Zone接口,并将缓存管理单元(Region)与Zone大小相匹配是一种可行的方案。然而,较大的Region大小可能会导致更长的Region插入时间和更大的内存消耗。

  • 更长的Region插入时间:较大的Region大小意味着在插入新数据时需要更多的时间来完成整个Region的填充。这可能会影响缓存的响应时间。

  • 更大的内存消耗:较大的Region大小需要更多的内存来维护Region的状态信息,例如Region的使用情况、位置信息等。这可能会增加缓存系统的内存负担。

图片

直接使用ZNS SSDs的Zone接口作为持久缓存后端的方案减少了映射开销,实现了无垃圾回收的设计,并消除了写放大现象。这种方案对于追求高性能和低延迟的应用来说是一个很好的选择。然而,需要注意的是较大的Region大小可能会导致更长的Region插入时间和更大的内存消耗,这可能需要在实际应用中通过适当的Region大小选择来平衡性能和资源消耗。

3.中间层缓存

在考虑使用ZNS SSDs作为持久缓存后端时,使用一个简单的中间层来提供区域接口是一种可行的方案。这种方案旨在通过中间层提供缓存管理单元(Region)与ZNS SSDs的Zone之间的适配,同时允许Region具有合适的大小。

图片

使用中间层提供区域接口 (Region-Cache)
  • 使用中间层:使用一个简单的中间层来提供区域接口,该中间层专为缓存系统(如CacheLib)设计。通过中间层,可以为Region设定一个合适的大小,这样可以更好地适应缓存系统的需求。

  • 缓存管理单元与Zone适配:中间层负责将缓存中的Region映射到ZNS SSDs的Zone上,使得每个Region可以具有一个合适的大小,而不是严格匹配Zone的大小。

  • 需要预留空间和垃圾收集:尽管中间层提供了一个更灵活的接口,但它仍然需要预留空间OP来支持垃圾回收过程,并且需要实现垃圾回收机制来优化写放大。

中间层的存在可以提供更灵活的Region大小选择,但同时也引入了额外的映射开销。此外,预留空间和垃圾收集过程可能会对性能产生一定影响,需要在设计时予以考虑。

二、实验结果分析

1.根据微观评估结果,可以看出每种解决方案都有其独特的优势:
  • Block-Cache:这是一种使用常规SSD的传统缓存解决方案。它可以提供稳定的性能,但由于需要进行垃圾回收,可能会遇到写放大问题,影响命中率。适用于需要稳定性能和不需要特别关注写放大问题的应用场景。

  • Zone-Cache:由于其无垃圾回收的设计,Zone-Cache能够获得最高的命中率。由于ZNS SSDs的特性,一旦数据写入Zone后,需要重置整个Zone才能再次使用,这消除了内部垃圾回收的需要,从而避免了写放大。适用于追求最高命中率的应用场景,特别是那些对延迟敏感且希望避免垃圾收集带来的性能下降的应用。

  • Region-Cache:Region-Cache可以通过中间层提供缓存管理单元与ZNS SSDs之间的适配,使得Region可以具有一个合适的大小。它可以提供与Block-Cache相似的高吞吐量,但在命中率方面可能略逊于Zone-Cache。适用于需要高吞吐量和具有一定灵活性的应用场景,通过中间层提供的适配可以在性能和资源消耗之间取得良好的平衡。

图片

2.对RocksDB的评估:作为二级缓存的不同设计方案

在RocksDB中作为二级缓存的不同设计方案的评估结果。这些评估重点关注了Region-Cache、Block-Cache以及Zone-Cache在吞吐量、延迟等方面的性能表现。

图片

  • Region-Cache:

    • 延迟:由于Region-Cache通过中间层提供缓存管理单元与ZNS SSDs之间的适配,它可以有效地管理和调度数据,从而实现较低的延迟。

    • 吞吐量:Region-Cache通过中间层提供的适配,使得Region可以具有一个合适的大小,这有助于提高数据的读写效率,从而实现较高的吞吐量。

    • 优势:Region-Cache方案通过中间层提供的缓存管理单元与ZNS SSDs之间的适配,不仅提供了较低的延迟,还保持了较高的吞吐量。

  • Block-Cache:

    • 尾部延迟:Block-Cache方案使用常规SSD作为缓存后端,由于需要进行垃圾回收,可能会遇到写放大问题,导致较高的尾部延迟。

    • 劣势:Block-Cache方案在尾部延迟方面表现不佳,特别是在p99的延迟上最高,这可能是由于垃圾收集导致的写放大问题所引起的。

  • Zone-Cache:

    • 命中率:Zone-Cache方案由于其无垃圾回收的设计,可以实现最高的命中率。这有助于减少访问延迟并提高整体性能。

图片

根据这些评估结果,如果目标是在RocksDB中实现最低的延迟和最高的吞吐量,则Region-Cache是最优的选择。然而,如果应用程序对命中率有较高要求,则Zone-Cache可能是一个更好的选择。

在本文中,研究人员提出了三种可能的方案,旨在使用ZNS SSDs作为持久缓存,并对其进行了详细的分析与评估。与常规SSD相比,ZNS SSDs可以作为更优秀的存储设备用于持久缓存。这一结论也在将ZNS SSD用作RocksDB的二级缓存时得到了验证。

  • Region-Cache:在作为RocksDB的二级缓存时,Region-Cache方案展现出了最低的延迟和最高的吞吐量。

  • Block-Cache:相比之下,Block-Cache方案虽然提供了稳定的性能,但由于垃圾回收导致的写放大问题,它的尾部延迟表现不佳。

  • Zone-Cache:Zone-Cache方案由于其无垃圾回收的设计,可以实现最高的命中率,这对于减少访问延迟和提高性能至关重要。

总之,ZNS SSDs作为一种新型的存储设备,具有独特的性能优势,可以作为持久缓存的理想选择。未来的研究方向应该集中在改进Zone管理机制、开发更多优化的驱逐策略以及设计新型策略来实现设备-缓存-应用协同设计。这些研究将进一步提高ZNS SSDs在持久缓存应用场景中的性能和效率。

参考文献:Yang, Chongzhuo, Zhang Cao, Chang Guo, Ming Zhao and Zhichao Cao. “Can ZNS SSDs be Better Storage Devices for Persistent Cache?” Proceedings of the 16th ACM Workshop on Hot Topics in Storage and File Systems (2024): n. pag.


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

精彩推荐:

  • 太上老君的“三味真火”也可以提升3D NAND可靠性!

  • FMS 2024:多家厂商CXL技术方案总览

  • 存储正式迈入超大容量SSD时代!

  • FMS 2024: 带来哪些存储技术亮点?

  • IEEE报告解读:存储技术发展趋势分析

  • 什么?陶瓷也可以用来存储数据了?

  • 都说固态硬盘寿命短,那么谁把使用寿命用完了吗?

  • 内存原生CRAM技术将会颠覆计算存储的未来?

  • 浅析SSD性能与NAND速率的关联

  • MCR DIMM如何解决内存带宽瓶颈?

  • 浅析MPS对PCIe系统稳定性的影响

  • CXL-GPU: 全球首款实现百ns以内的低延迟CXL解决方案

  • 万字长文|下一代系统内存数据加速接口SDXI解读

  • 数据中心:AI范式下的内存挑战与机遇

  • WDC西部数据闪存业务救赎之路,会成功吗?

  • 属于PCIe 7.0的那道光来了~

  • 深度剖析:AI存储架构的挑战与解决方案

  • CXL崛起:2024启航,2025年开启新时代

  • NVMe SSD:ZNS与FDP对决,你选谁?

  • 浅析PCI配置空间

  • 浅析PCIe系统性能

  • 存储随笔《NVMe专题》大合集及PDF版正式发布!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2068190.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【国赛】【美赛】【五一杯】【电工杯】【华数杯】【亚太杯】······各赛事历年优秀论文+真题分享

今天继续给大家分享十分重磅的资料哦,数学建模各大竞赛的资料汇总,可能很多小伙伴平时进行某个比赛的资料搜索的时候会发现,我们想要的这个比赛的资料有时候非常难搜索到,搜索23年,显示21年的,搜索小美赛&a…

Prometheus 监控指标采集

原文链接:https://www.hezebin.com/article/66b3b1fb4379b36dec11a1a1 前言 在现代分布式系统和云原生环境中,为了确保复杂的分布式系统和服务的高可用性、可靠性和性能,通常采用实时可视化监控和分析,实现故障快速响应、资源优…

单片机驱动彩屏最简方案:单片机_RA8889最小开发板驱动控制TFT彩屏介绍(二)硬件电路设计

本文介绍使用单片机RA8889来驱动和控制彩屏的最小方案。文章从RA8889的架构功能、硬件电路设计及软件设计三个方面来说明。 小编已发布多篇文章介绍了单片机RA8889来驱动控制彩屏,但是仍有不少单片机玩家可能对驱动彩屏还不算熟悉,在此加推一个短篇介绍…

机器学习-随机森林(全网最详解)

文章目录 一、简介1.定义2.基本原理3.优缺点4.应用场景 二、代码运用1.数据预处理2.模型训练3.模型评估4.绘制特征排名 三、总结 一、简介 1.定义 随机森林(Random Forest)是一种集成学习方法,它通过构建多个决策树并将它们的预测结果进行汇…

公司电脑被监控有什么表现?电脑监控VS员工隐私,员工合理摸鱼需知!职场小贴士为您解答!

公司电脑被监控有什么表现? 数字化办公日益普及,许多企业为了保障信息安全、提升工作效率,会选择在公司电脑上安装监控软件。这一举措在提升企业管理效能的同时,也引发了关于员工隐私与合理工作界限的讨论。本文将为您解析公司电…

k8s教程

1. k8s框架 - kubernetes的架构- Control Plane: 控制K8S集群的组件。- Api Server: 集群的访问入口。- etcd: 存储集群的数据。一般情况下,只有API-SERVER会访问.- Control Manager: 维护集群的状态。- Scheduler: 负责Pod的调度功能。- Wor…

防止拷贝电脑资料?【三种数据拷贝的详细方法分享!】

防止电脑资料被拷贝通常是指采取措施来保护敏感或专有信息不被未经授权的用户复制或传播。 这里我理解您可能想要了解的是如何防止数据被拷贝的方法,而不是进行数据拷贝的方法。 下面是一些常见的防止数据拷贝的策略和技术: 1. 物理安全控制 锁屏或密…

一篇讲完自动化基础-Python【万字详细讲解】

​ ​ 您好,我是程序员小羊! 前言 这篇文章主要学习Python的语法,为后续的自动化打基础 Python requests 接口自动化 Python selenium web 自动化 Python appium移动端自动化(手机 app) 这篇文章分六个阶段百分比进行划分,到时…

Elasticsearch:使用 semantic_text 进行语义搜索

警告:截止 8.15 版本,此功能处于测试阶段,可能会发生变化。设计和代码不如官方 GA 功能成熟,并且按原样提供,不提供任何保证。测试版功能不受官方 GA 功能的支持 SLA 约束。 本教程向你展示如何使用 semantic text 功能…

硬件检测工具箱 | 入梦工具箱 v8.8

入梦工具箱(RM Toolbox)是一款专为硬件检测、评分和测试设计的免费开源软件。它以其小巧的体积和简洁的界面,迅速成为DIY玩家和硬件爱好者的首选工具。 功能特点 集成常用硬件检测工具:包括CPUZ、GPUZ、AIDA64等,全面…

3种将4K视频转换成1080P格式的无损方法

用户总是倾向于将 4k 视频转换为 1080p,以便缩小它们并在兼容设备上观看。这种 4k 到 1080p 的转换被称为降频或降级,因为视频分辨率降低了。如果你想知道如何在不损失质量的情况下将 4k 缩小到 1080p,那么这是你找到答案的正确地方。阅读以下…

在idea中的git选择某一次记录拉出一个新分支

一 创建新分支 1.1 操作步骤 需求:需要在图中标红的历史记录,从此记录拉出一个分支 1.右键【new branch】 2.起一个新的名字: 3.新分支代码

HTTP协议相关知识

1 HTTP协议的解读 1.1 HTTP和HTTPS区别 HTTP协议:超文本传输协议是互联网上应用最为广泛的一种网络协议。所有的HTML文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法 HTTPS协议:HTTP协议的安全版,在HT…

快9月了才开始强化,刷张宇1000还是李林880?

如果你现在才开始强化,并且在张宇1000和李林880中间纠结,可以花5分钟看看这篇文章! 张宇1000题,今年进行了改版,去掉了一些「偏难怪」的题目,这类题目,对于大家的友好度明显上升。但是难度和综合…

springboot admin监控

服务端搭建 maven的依赖&#xff0c;包括服务端和客户端&#xff0c;以及注册到nacos上面 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XML…

游戏服务器租用多少钱一年?

游戏服务器租用多少钱一年&#xff1f;游戏服务器租用的价格范围非常广泛&#xff0c;从几百元到数万元不等。对于入门级或小型游戏服务器&#xff0c;一年的租用费用可能在几百到几千元之间&#xff1b;而对于高级或大型游戏服务器&#xff0c;一年的费用可能会超过数万元。 …

宽压宽频(35V/45V/65V)50KHZ-3MHZ双向同步降压升压LED驱动器QFP32封装

概述&#xff1a; PC9248 是一款双向降压-升压控制器&#xff0c;适用于驱动高效功率转换器中的硅&#xff08; Si&#xff09; MOSFET 或氮化镓&#xff08;GaN&#xff09;功率晶体管。它支持高达 45V 的宽输入和输出范围&#xff0c;可在降压、降压-升压和升压模式之间无缝…

XSS-复现dom破坏案例和靶场

目录 xss注入原理&#xff1a; xss是什么&#xff1f; xss原理&#xff1a; DOM&#xff1a; 闯关&#xff1a; 第一关&#xff1a;Ma Spaghet! 源码&#xff1a; 要求&#xff1a; 分析&#xff1a; 第二关&#xff1a; Jefff 源码&#xff1a; 要求&#xff1a; …

QT读取数据库中文显示乱码

QT读取数据库中文显示乱码 使用ODBC连接数据库时&#xff0c;选择Character Set为gbk格式

springboot中interceptor拦截器匹配URL源码

上一篇文章我们找到了filter过滤器的匹配源码&#xff0c;这次我们来找一下interceptor的匹配源码 同样先打断点看一下调用链 接着翻调用链&#xff0c;看看从哪里开始出现拦截器的 看到在这里出现了拦截器&#xff0c;那么就在这个类里面往上找&#xff0c;打断点慢慢找&…