ZNS SSD是否真的前途一片光明?
引言
在上次存储随笔更新了一篇ZNS相关的文章“炙手可热的ZNS SSD将会为数据中心带来什么?”以后,在存储圈也一度引发关注。某公司相关同学也在朋友圈疯狂转发,让一些朋友误以为是存储随笔专为某公司写的技术推广软文。
借这个机会在这里再次声明,存储随笔没有接受任何技术软文广告推广的合作,是个人运营账号,文章内容基本为个人独立创作(除了个别来自其他作者授权的原创内容)。
如上图,借用一位粉丝的留言,非常感谢各位存储随笔粉丝的认可与支持。存储随笔始终坚持业界良心,原创分享,共同成长!
前情回顾:
言归正传,此前文章(炙手可热的ZNS SSD将会为数据中心带来什么?)我们介绍了ZNS(Zoned Namespace) SSD的一些背景和原理。
ZNS SSD的原理是把namespace空间划分多个zone空间,zone空间内部执行顺序读写。这样做的优势:
降低SSD内部的写放大,提升SSD的寿命
降低OP空间,host可以获得更大的使用空间
降低SSD内部DRAM的容量,降低整体的SSD成本
降低SSD读写延迟
ZNS写入了标准NVME协议,更易于打造软件生态,利于普及
与SMR架构类似,ZNS SSD的zone空间内部,也是只允许顺序读写,不允许随机读写。每次顺序写完成后,有一个标记位“Write Pointer”来记录已经写过数据所在的LBA位置。
Zone的状态有以下几个:
Full:zone写满的状态
Empty:zone数据空的状态
Explicitly Opened:对zone执行open zone命令成功后的状态
Implicitly Opened:对处于Empty或者Closed状态的zone完成写数据后的状态
Closed:还未写满的zone,在close zone命令成功后的状态
Read Only:处于只读状态的zone
Offline:zone处于异常状态,可能是介质异常或者其他的问题
在Linux内核适配方面,针对zoned设备,之前针对SMR已经有ZAC/ZBC命令规范,并在4.10内核已经支持。针对ZNS SSD,在内核5.10以后也支持了ZNS SSD,软件生态已经基本完善。
ZNS的竞争优势?前途如何?
在传统的SSD中,SSD控制器会搭配10-100个NAND Die存储介质,管理这些NAND介质就需要一个强大的算法,这里就有一个FTL管理层。
如果在文件系统层删除一个文件,比如下图文件C,在没有GC搬迁的情况下,无效数据C会占用大量的存储空间。
GC搬迁有效数据到空的block后,之前无效文件C所在数据块block就可以被整个block擦除了。
整个GC的过程最终导致写放大WAF的增加。写放大的增加相应对SSD带来的负面效应就是写带宽下降、读延迟升高、使用寿命下降等问题。
扩展阅读:SSD写放大的优化策略要统一标准了吗?
在ZNS的场景下,不同应用按照Zone配置信息,相应存放业务数据。主要集中在顺序读写的workload场景。由于是Host管理数据的摆放和存取位置,会最大程度减少GC垃圾回收。
减少SSD的DRAM空间和去掉OP冗余空间,提升用户可用的容量。
二者具体的优劣对比:
ZNS SSD可以使用的场景主要有几个:
1.数据归档存储场景
在归档场景,需要有大量的数据存储,归档存储主力当前主要是SMR HDD和Tape磁带库。在SMR HDD和Tape磁带库可以增加一层不是特别cold数据存储层,使用ZNS搭配QLC,后续可能还有ZNS搭配PLC的产品。核心诉求是降成本、降低写放大/OP/DRAM容量。这个场景就需要zone的空间要大一点,需要一些大QD的写入。
2.Log日志场景
日志场景主要依赖当前基于flash友好的文件格式。这个场景可能需要zone的空间需要可配置变化。小容量的zone配置数据分配和切割,大容量zone配置数据放置和管理。每个zone的数据保持不变。
3.可预期IO场景
解决多租户的IO干扰问题,获得优异的QoS性能。该场景需要有多租户的需求且有严格QoS需求。zone id需要分配不同的管理域。
ZNS SSD的写模型也有多种:
1.单QD写入
最传统的写入方式,每个Zone限制一个IO的写入。
2.Append写入
在一个zone空间,队列Append写入多个数据。在队列CQ完成LBA映射刷新。适用大容量的写入场景。
3.跨zone的写入
每个zone的写入依然是要求QD1,主机有通过小容量zone管理数据放置的能力。主机可以看到zone id和zone group,主动权在host,对host的管理能力要求较高。
4.zone随机写区域
在最初的zone定义过程中,zone内部要求是顺序写入。随着应用需求的不断刷新,zns还新增了Zone随机写区域的功能。就是在Zone前面一个区域,设置可以随机写的区域,允许乱序写入,in-place刷新数据。相当于zone的一个缓存区。
从上面的应用场景和写入模型来看,不同场景下的ZNS SSD的配置完全不一样,市面上目前看到的ZNS SSD设置也是百花齐放,没有形成统一的格式。虽然都叫ZNS SSD,但是实际内部的NAND die的配置和管理方式都大相径庭。没有办法同一套软件适配所有的ZNS SSD,这样会让ZNS SSD生态建设受到限制。
ZNS SSD虽然有很大的优势,想要闯一片天地,依然需要多方面的努力。期待ZNS SSD可以早日实现美好的愿景。
精彩推荐:
Backblaze 2022 Q3 硬盘故障质量报告解读
漫谈云数据中心的前世今生
多维度深入剖析QLC SSD硬件延迟的来源
漫谈固态硬盘SSD全生命周期的质量管理
如何快速debug定位SSD延迟问题?
汽车存储SSD面临的挑战与机遇
超大规模云数据中心对存储的诉求有哪些?
SSD写放大的优化策略要统一标准了吗?
阿里云Optane+QLC存储实践案例分享
“后Optane时代”的替代存储方案有哪些?
浅析数据中心存储发展趋势
浅析PCIe链路LTSSM状态机
浅析Relaxed Ordering对PCIe系统稳定性的影响
实战篇|浅析MPS对PCIe系统稳定性的影响
浅析PCI配置空间
浅析PCIe系统性能
PLC SSD虽来但远,QLC SSD火力全开
Backblaze2022中期SSD故障质量报告解读
最全电脑固态硬盘SSD入门级白皮书
存储随笔《NVMe专题》大合集及PDF版正式发布!
加权循环仲裁WRR特性对NVME SSD性能有什么影响?
Linux NVMe Driver学习笔记之9: nvme_reset_work压轴大戏
ZNS SSD是否真的前途一片光明?相关推荐
- 为什么虚拟助手的前途一片光明
by Steve 史蒂夫(Steve) 为什么虚拟助手的前途一片光明 (Why the future is bright for Virtual Assistants) I purchased my ...
- 二本学计算机好还是金融好,二本院校最好就业的5大专业,“含金量”很高,前途一片光明...
原标题:二本院校最好就业的5大专业,"含金量"很高,前途一片光明 计算机科学与技术 这个专业目前在就业市场上非常受欢迎,人工智能产业的发展更是需要大量的计算机专业人才,学习这个专业 ...
- HR产品市场前途一片光明
非官方最新消息,Kingdee K/3eHR产品2005年销售回款达到1975万.真是可喜可贺. 虽然离公司预期的还差25万,但我想这不重要.重要的是HR市场前途一片光明,Kingdee HR同行业绝 ...
- 前途一片光明的移动开发
在计算机发展的早期,摩尔提出了自己的定律:每隔18个月芯片的处理能力会翻一番:进入到网络时代以后,以太网的发明者Metcalfe对网络的价值提出了自己的Metcalfe定律:网络的价值等于相关连接的平 ...
- 阿里高级架构师的这个规划你必不可错过! 看完前途一片光明
是这样的,一片灰暗,超级灰暗,伸手不见五指,抬头不见苍天的那种. 但是,这里的程序员是指那些随便学了一两个月技术,项目都没做过一个就想来拿高薪的人,结果拿着跟学之前差不多的工资,每天敲写老代码上网搬轮 ...
- 优质项目坚实支撑 BIM技术前途一片光明
"BIM不仅是一项技术,更是一种模式,一定会带来工程建设行业的全面变革,这是毫无疑问的.但是这个过程面临的障碍和困难也不少,道路是曲折的,前途是光明的."北京建筑设计研究院信息部部 ...
- 巴比特 | 元宇宙每日必读:3个月销售额近3个亿,虚拟偶像的“钱途”真的是一片光明吗?...
摘要:虚拟艺人究竟能有多赚钱,我们可以从全球知名虚拟艺人公司彩虹社的母公司ANYCOLOR的财报中看到比较直观的数据:其在2022年5月1日到2022年7月31日之间,整体销售额为59.3亿日元(折合 ...
- 奇瑞鲍思语畅谈奇瑞未来发展,前途一片光明
2022年9月16日奇瑞2025瑶光科技日正式举办,奇瑞集团展示出多项技术与科技.在此,奇瑞鲍思语沟通了有关奇瑞新能源接下来的发展规划.我作为奇瑞的粉丝,对奇瑞新能源的发展比较关注.根据奇瑞鲍思语介绍 ...
- NPU的前途一片光明
<谈音频算法的工程化(移植与优化)>谈到音频开发的一大趋势是深度学习算法.以前主要是基于英伟达的GPU实现深度学习算法,或者是专用芯片支持NPU功能,但外人不容易获得开发环境.比如华为Ki ...
最新文章
- 如何将Twitter的内容导入到SAP CRM和C4C
- 插件化知识储备-Binder和AIDL原理
- 马斯克躺枪得州最严堕胎法案,因拒绝表态遭炮轰!“不站女权就抵制特斯拉”...
- Java Web HelloWorld!
- 解决 - java.lang.OutOfMemoryError: unable to create new native thread
- c语言微信备份文件,文件保存后自动刷新微信小程序
- qt5 交叉编译webkit_Qtwebkit配置,设置交叉编译环境 - croop520的专栏 - 博客频道 - CSDN.NET...
- linux拨号上网icp,如何用 Linux 拨号上网
- mysql运维基础_mysql基础运维
- Node.js目录操作
- intersection-over-union(IoU: 交并比)
- HTML页面跳转及参数传递
- 步进电机的计算机控制系统设计,步进电机控制系统的设计与实现
- 【人工智能】AI竞赛,到底有什么价值?
- 基于阿里云的安全组介绍
- 工厂如何选择一款合适的工业平板电脑?
- 什么是嵌入式?你眼中的嵌入式是怎么样的?怎么学嵌入式?教你五分钟看懂嵌入式。
- H5浏览器下无插件、低延时、RTSP视频流直播
- 雷柏V500机械键盘——重复按键故障原因之一
- Android处子Demo—简易的UC首页动画
热门文章
- 计算机二级能统考免考吗,关于2019年4月统考免考办理的通知
- tightvnc,tightvnc软件介绍,详细介绍
- cocos creator实现浏览星球的功能,附源码
- 成都扬帆志远教育咨询有限公司——跨境电商选品雷区
- c语言restrict和const,C语言中const、volatile、restrict等类型限定符的区别
- Unix、Gnu、Windows与明王朝、李自成、满清的相似性分析
- 获取全组合算法,比如输入A,B,C 得到A、B、C、AB、AC、BC、ABC
- Kubernetes TLS bootstrapping
- TinyP2P如何运行 How tinyp2p works!
- 阿里淘系优质开源项目推荐