• 炙手可热的ZNS SSD将会为数据中心带来什么?


    在讲述ZNS(Zoned Namespace) SSD之前,小编其实更想再展开说说ZNS SSD出现的背景和前世故事。

    1.ZNS SSD前世故事

    大数据时代迎来数据指数级的增长,未来5年内我们创造的数据,将超过以往总数据量的2倍。IDC预测,在2025年,全球数据总量将达到163ZB,存储容量超过19ZB,其中60-70%容量还是由HDD机械硬盘来承担。

    在这个大背景下,硬盘厂商WD和Seagate研发了SMR(Shingled Magnetic Recording,叠瓦式磁盘)技术,在介质上采用了特殊的记录方式,以达到提升容量的效果。

    简而言之,SMR磁盘在磁道层叠方面,采用类似屋顶瓦片一层层的叠加,以增加磁道数和存储密度(如上图)。由于写入需要的磁场强度高于读取所需要的磁场强度,写磁头的宽度大于读磁头的宽度,因此写磁头的宽度决定着每英寸磁盘的磁道数。多个相邻层叠的磁道合成一个zone,在这里我们就第一次有了zone的概念。一个zone的区域内存储空间只允许顺序读写,不允许随机读写。

    所以,这也决定了用于zone配置的SMR HDD需要软件配合完成只有顺序读写的场景。

    随着zone概念在SMR的成熟应用,WD凭借此次的技术亮点,又亲手把zone的概念推进了nvme spec规范,用于推广ZNS(zoned namespaces)ssd. 

    ZNS在nvme spec规范1.4a版本开始成型,也联合了多家互联网厂商和硬盘厂商一起推广。终于在nvme spec规范2.0正式成为行业标准。

    2.ZNS SSD的急速发展

    ZNS SSD能够迅速成为行业标准,也是有一定的历史必然。数据中心的workload非常的复杂,多种的应用需求,要满足不同的场景,又要极高的性价比。

    对于传统的SSD来说,本身满足多种需求就是一件很不容易的事情。因为基于NAND介质的SSD,在读写过程中,还需要涉及到复杂的FTL算法管理、Wear-Leveling磨损均衡、Garbage Collection垃圾回收、Bad Block Management坏块管理、Media介质异常处理等等,同时还要与数十个NAND die进行并发通道读写请求。而这一切,对于host而言,SSD就是一个黑匣子,完全无法控制也无法清晰了解SSD内部FW在做什么

    在ZNS SSD形成气候之前,为了解决SSD黑匣子的问题,业内此前一直在推广Open Channel SSD,简称OC SSD。

    OC SSD最大的特点就是Host拿到了SSD的FTL控制权,可以结合业务场景和文件系统,选择合适的时间执行QoS优化,以达到最优的性能。

    同时,访问实行IO隔离,根据不同的业务场景,适配不同的管理算法,配合特定的物理存储空间,实现IO互不干扰。

    由于OC SSD需要大量的host软件驱动的开发工作,普及难度较大,导致OC生态一直未完全建立,仅有两个大厂付诸了行动,一个北美微软,一个中国阿里。

    OC SSD生态的建设缓慢,也给了ZNS蓬勃发展的契机。ZNS也算是在OC基础上衍生出来的一个标准协议,目的也是适配不同的业务场景,以最大的性价比完成性能/寿命/成本等多个因素的统一。

    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高2.5倍,在随机混合读写比普通SSD高18倍。

    ZNS SSD目前已经成为炙手可热的明星,各大硬盘厂商和控制器厂商都在全力争夺这个大蛋糕,由于ZNS SSD的使用场景和成本优势,基于QLC NAND的ZNS SSD将是最大的赢家。

  • 相关阅读:
    源代码安全管理
    SpringBoot文件上传
    动态规划之子序列
    Linux基础——软件安装
    SpringCloud Alibaba微服务实战二 - 服务注册
    不看后悔!第一本全面详解Transformer的综合性书籍!284页pdf下载
    C++:添加头文件时出错C3646和C4430
    Static关键字
    GD32F470引脚外部中断测试
    C学生数据库_将链表保存进数据库
  • 原文地址:https://blog.csdn.net/zhuzongpeng/article/details/126855658