ZNS SSD是否真的前途一片光明?

news2024/11/15 9:31:28

引言

在上次存储随笔更新了一篇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压轴大戏

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

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

相关文章

【算法100天 | 20】有环/无环链表的相交问题(Java实现)

若两个链表相交,请返回相交的第一个节点。 给定两个有可能有环也有可能无环的单链表,头节点head1和head2。 实现一个函数,如果两个链表相交,请返回相交的第一个节点(从这个节点开始,后续结构都一样&#…

Leetcode-每日一题792. 匹配子序列的单词数(分桶)

题目链接:https://leetcode.cn/problems/number-of-matching-subsequences/description/ 思路 方法一、分桶 题目意思:给你一个字符串 s 和字符串数组 words, 可以对字符串 s 某些位置上的字符进行删除,并不改变原来的字符顺序…

什么是SIMD?

为了提高 CPU 指令处理数据的能力,半导体厂商在 CPU 中推出了一些可以同时并行处理多个数据的指令 ——SIMD指令。 百度百科定义为: SIMD全称Single Instruction Multiple Data,单指令多数据流,能够复制多个操作数,并…

新库上线 | CnOpenData中国核酸检测机构及采样点数据

中国核酸检测机构及采样点数据 一、数据简介 2020年1月21日,国家卫健委发布1号公告,将新型冠状病毒感染的肺炎纳入《中华人民共和国传染病防治法》规定的乙类传染病,并采取甲类传染病的预防、控制措施。目前,新型冠状病毒肺炎防控…

Ubuntu20.04安装c++版本的OpenCV

文章目录参考资料1. 安装步骤1.1 仅构建核心模块1.2 构建含有opencv_contrib的版本2. 安装过程碰到的问题2.1 编译opencv时,卡在IPPICV参考资料 https://www.jianshu.com/p/3c2fc0da7398https://docs.opencv.org/4.5.3/d7/d9f/tutorial_linux_install.htmlhttps://…

SpringBoot+Vue实现前后端分离的社区疫情防控管理系统

文末获取源码 开发语言:Java 使用框架:spring boot 前端技术:JavaScript、Vue.js 、css3 开发工具:IDEA/MyEclipse/Eclipse、Visual Studio Code 数据库:MySQL 5.7/8.0 数据库管理工具:phpstudy/Navicat JD…

[附源码]java毕业设计昆明市人民医院血库管理系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

vim的基本操作

文章目录vim是什么vim的模式命令/普通模式(Normal mode)移动光标上下左右其余移动光标文本操作**进入替换模式:shiftrR**插入模式(insert mode)底行模式(last list mode)vim的配置vim一键配置vim是什么 简单理解&…

【附源码】计算机毕业设计JAVA仁爱公益网站

项目运行 环境配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: Springboot mybatis Maven Vue 等等组成,B/…

plt.plot

画点: 1,加一个参数 o,即画点。会根据列表自动设置为x坐标 plt.plot([1,5,3,4,5],"o")2,也可设置多个坐标

985 博士真的会舍弃华为年薪接近 100 万 offer,去选择年薪 20 万的公务员吗?

第一:从某脉软件上来看,大部分会选择进入事业单位,这是大部分人内心想法的真实写照,还仅仅只是口嗨呢? 第二:按道理来说,能读完博士应该是在某一个领悟有自己独特的见解,以个人发展…

JavaSE之注解

目录注解的属性类型元注解注解解析模拟junit最后注解的属性类型 注解只能存放简单的数据 如: 基本数据类型 String Class 注解 枚举 以上类型的一维数组 格式: public interface 注解名称 { public 属性类型 属性名(); } public interface MyAn1 {…

拼搏半个月,刷了 571道Java高频面试题喜提阿里 offer

今年较往年相比面试要难的多,大环境也是对于程序员的要求越来越高,环境是我们无法改变的,我们能改变的只有自己,月初我一好友,努力拼搏一周,刷完了这份阿里 P8 大牛整理的这 571 道 Java 高频面试题笔记&am…

Node.js | Express+MongoDB 实现简易用户管理系统(三)(登录验证之CookieSession)

🧑‍💼 个人简介:一个不甘平庸的平凡人🍬 🖥️ 本系列专栏:Node.js从入门到精通 🖥️ TS知识总结:十万字TS知识点总结 👉 你的一键三连是我更新的最大动力❤️&#xff0…

STM32 cubeMX配置串口重定向

文章目录前言一、工程配置二、串口重定向的原因三、实现串口重定向1.如何实现重定向2.具体步骤总结前言 这篇文章主要讲解什么是串口重定向,为什么要串口串口重定向。 一、工程配置 1.芯片选型 我这里使用的是STM32 103ZET6大家可以根据自己板子的型号进行芯片的…

【HCIE考试喜报】2022年11月11日考试通过

网络工程师认证:HCIE(华为ICT专家认证)_微思xmws的博客-CSDN博客_hcie证书华为HCIE课程介绍HCIE认证概述HCIE-R&S认证定位于大中型复杂网络的构建、优化和管理。HCIE-R&S认证包括但不限于:不同网络和各种路由器交换机之间…

Windows环境下使用命令行在达梦数据库导入dmp文件

注意: 1.创建的用户要跟dmp文件中的一致 2.为什么使用命令行?因为这样可以不用关心由于字符编码不一致导致导入不成功。 3.一定要给权限,我这里全部都给了,自己用的本地库,具体还没总结 4.如何查看已经安装的达梦数据库…

20K+ SRE面试题分享

今天群里有位老哥面试20K的SRE顺手拍了3张面试题,和大家分享一下.第三张实在太模糊就没放了. 第三张实在拍的太模糊 1. 选择题 没发 2. 填空题(共20题,每题2分,总分40分,请在括号里填入最合适的答案) 某文件的权限为drw-r–r–用数值形…

python基础语法>>基本数据类型

一个喜欢算法的大三在校学生,每周都会将学到的知识贡献给大家。☁️💡🎈 开始之前,不妨休息一下,先看个小动画🍵,才能激情地去学习! 用python的一个小turtle画了一个简易版的图书馆 python语法大…

概述机器学习算法(机器学习)

目录 机器学习的一般步骤 分类算法 决策树 支持向量机 最近邻算法 贝叶斯网络 神经网络 聚类算法 K—均值算法 BIRCH算法 CURE算法 OPTICS算法 关联分析算法 Apriori算法 FP-growth算法 回归分析算法 线性回归 逻辑回归 多项式回归 邻回归 LASSO回归 深度…