查看原文
其他

【忆芯技术分享】ZNS赋能数据中心新应用

携手共赢 北京忆芯科技有限公司 2023-10-25


ZNS背景以及发展历程

当今社会在大数据和云计算不断发展下,时延(Latency) 和QoS(Quality of Service)逐渐成为评价SSD性能好坏最为重要的标准。传统基于NAND的SSD由于其颗粒物理特性在使用后期不可避免的会出现性能下降,QoS变差等情况,但上层业务的爆发式增长对存储性能提出了更加苛刻的要求,产生了对高IOPS、低读写延时、高寿命,同时保证产品可靠性的存储介质需求,为了改善这一棘手问题,ZNS应运而生。ZNS全称为(Zone Namespace),中文译为分区命名空间,在NVMe 2.0协议中正式标准化提出,成为几个Memory Base IO协议(NVM Set、KV、ZNS)中的一员。

图1. NVMe 2.0支持标准化ZNS (引自NVMe 2.0 Specification)


ZNS由最初的OC(Open Channel)发展而来,经历OC1.2、OC2.0到现在的ZNS版本。相比OC版本,ZNS更适合标准化和产品化,生态环境更加友好,简化了软件架构,用户可以更加容易地根据自身场景需求进行特定软件开发。整个系统分“Host FTL”和“Zoned FTL”两大部分,其中“Host FTL”主要做IO调度、数据摆放等,“Zoned FTL”主要做盘上介质管理、错误处理等。NVMe ZNS提供了分区存储设备接口,该接口允许SSD和主机在数据放置方面进行协作,根据数据类型的不同选择单独的存放位置,从而可以将数据与SSD的物理介质对齐,提高了总体性能并实现了I/O隔离。


图2. ZNS经OC演变历程


ZNS现有生态状况

系统支持情况

ZNS历经发展,目前已经有一些生态配套和支持了,Linux®内核版本4.10开始支持ZBD(Zone Block Device “分区存储块设备”),并在Linux内核版本5.9开始全面支持ZNS。


图3. Linux内核支持ZNS路线图 (引自zonedstorage.io)


图4. Linux协议栈支持ZNS (引自zonedstorage.io)


工具支持情况

QEMU®开源仿真平台也从QEMU 6.0版本开始全面支持ZNS,便于开发者无硬件环境开发和仿真ZNS。灵活的Zone配置和错误注入,加速ZNS方案的开发和落地。


图5. QEMU对ZNS的支持 (引自zonedstorage.io)


“blk-zone”和“nvme-cli”开源工具也开始支持ZNS的管理,包括:

a) ZNS Management: send / receive, descriptors

b) ZNS Report: Zone Information & Log pages

c) ZNS I/O (zone append)


图6. BLK-ZONE和NVME-CLI对ZNS的支持


“fio”作为存储设备的主要性能测试工具,在3.9版本开始全面支持ZNS,可以对ZNS SSD进行性能分析和测试。

图7. FIO对ZNS的支持

文件系统支持情况

目前主流支持ZNS的文件系统有:zonefs,f2fs,btrfs,xfs,ext4,其中前3者应用较多,可以看到市场上有明显应用案例。



ZNS技术特点

传统标准SSD通过FTL模块将收的用户数据按接收的先后顺序依次写入NAND介质中,没有按逻辑块地址LBA进行有序排列,久而久之,FTL为了不让介质空间耗尽,就必须起后台叫GC的任务来回收无效的用户数据,导致SSD用户性能降低和额外的写放大,从而影响SSD寿命。ZNS作为一种特殊的namespace,其要求单个zone内必须顺序写,不同种类的用户数据可以分配到不同的zone,从而消除了GC所带来的问题。


图8. 标准SSD vs ZNS SSD 数据摆放 (引自SDC 2020)


ZNS的特点:

· 盘上没真正的GC 操作,需要应用层自己控制空间的回收;

· 总的 Active Zone有上限,并不能并行打开超多 zone 同时写入;

· 单个Zone常规写操作只能支持QD=1的访问模式,因此每次写入需要尽量大才能打满带宽;

· 单个Zone只能支持顺序写,写完后只能一次性reset,不能部分reset;

· 单个ZNS下面的所有zone size必须大小一样;

· 单个zone size必须是LBA数量的2次幂;

· 单个zone的可用容量(zone capacity)可以比zone的总大小(zone size)小。


ZNS规范中,将SSD namespace的整个LBA(Logical Block Address,逻辑区块地址)范围划分为若干个等长的区间,等长的LBA区间成为一个zone,每个zone内必须以顺序的方式进行写入,每个zone有其独立的状态机进行管理。

图9. ZNS总体示意图 (引自snia.org)


Zone的状态机:ZNS中每个zone有独立的状态机进行控制,每个状态机按照固定规律进行转换。

图10. ZONE状态机示意图 (引自snia.org)


Zone内部LBA分布情况:由于zone只支持LBA顺序写,所以单个zone内LBA呈现连续分布,写指针(WP)始终指向下一个顺序写的LBA位置,如果单zone内需要重复写,需要先进行zone reset操作。

图11. ZONE内部LBA示意图 (引自snia.org)


Zone的两种写入方式:write和zone append。

· Write命令为ZNS兼容标准IO命令,要求必须为QD=1;

· Append命令为ZNS独有IO命令,支持多QD模式,但QD不能超过zone内LBA数目。


其中write命令需要Host指定LBA,而append命令则由SSD自动分配并通过CQE回给Host。

图12. ZONE WRITE示意图 (引自snia.org)


图13. ZONE APPEND示意图 (引自snia.org)


Zone的映射方式:根据不同的应用场景将不同的Zone与不同的物理位置进行映射。目前主流的映射方式有2种:

1) 横向映射方式,即一个zone横跨所有Die,其优点为zone连续写入时可以并发打满整个NAND带宽,峰值带宽很高;缺点为多zone同时操作时存在NAND资源竞争情况,会影响QoS;

2) 纵向映射方式,即一个zone独享一个Die,实现物理上的IO隔离,其优点为多zone并发操作时不互相影响,实现真正的独立操作,能保证良好的QoS,缺点为只能单Die并发,峰值带宽较低。


图14. ZONE的映射方式示意图 (引自snia.org)


ZNS带来的改变和优势

得益于ZNS的顺序写特点,ZNS SSD具有以下几点优势:

图15. ZNS的优势示意图

性能优势:

· 稳态性能好:由于ZNS SSD只有顺序写,所以对盘来说没有真正意义上GC操作,在满盘持续写入情况下,性能如初;

· 峰值带宽高:ZNS SSD的IO颗粒度更友好,能充分利用NAND多Die并发操作,总带宽很高;

· QoS优势:由于ZNS具有IO隔离的特点,支持不同IO类型单独处理,相比传统SSD QoS更好;

· 可预测的Latency:传统SSD由于GC的存在,当GC任务启动后,会增加盘内IO latency,从而导致系统IO latency不可控,而ZNS SSD由于没有GC的存在,从根本上消除了盘内IO latency的影响。


寿命优势:

· 寿命更长:NAND有PE(擦写)寿命限制,ZNS SSD由于没有GC,消除了GC所带来的额外写放大(WA),相比传统SSD具有更长的使用寿命。


成本优势:

· 颗粒成本更低:ZNS解决了写放大问题,相同使用寿命周期内,相比传统SSD可以选择PE较少的颗粒,比如QLC,物料成本更低;

· OP(预留空间)更小:由于没有GC的存在,FTL不需要额外的预留容量来支持GC的运转,理论上来说ZNS SSD可以做到0%的OP,相同用户容量下可以贴更少的颗粒;

· DRAM容量需求更少:传统SSD一般选择4KB来进行逻辑地址和物理地址相互映射,所使用的DRAM用量约为SSD总容量的千分之一,ZNS SSD由于具有LBA全顺序写入特点,支持以zone为粒度的大容量映射,通常可以做到GB级别的映射关系,从而大幅减少DRAM用量。


图16. ZNS vs 不同OP标盘持续写性能对比 (引自SDC 2020)


ZNS应用场景

目前ZNS最为典型的应用莫过于“RocksDB + ZenFS”这对黄金组合,RocksDB是Facebook开发以Key-value导向的日志型数据库,能将用户冷热数据分开存储,其数据写入特点是以append only方式,同ZNS的严格顺序写有异曲同工之妙,配合全面适配ZNS的ZenFS文件系统,将最大化发挥ZNS SSD的优势。

图17. RocksDB + ZENFS的典型应用 (引自zonedstorage.io)


忆芯ZNS状况

忆芯科技作为国内较早布局高性能固态硬盘主控芯片研发的企业,一直致力于赋能高性能存储解决方案,时刻保持着新技术和方案的洞察力,今年下半年即将推出的基于高端企业级主控STAR2000的企业级方案STAR2000E全面支持NVMe 2.0协议,为固件全面支持ZNS提供了强大基础,配合忆芯强大的固件开发能力,快速完成ZNS的适配,最大化发挥ZNS的优势,赋能数据中心新应用。

忆芯科技在企业级固件架构设计之初就考虑到兼容多种固件模型,包括KV、标盘、OC/ZNS/QEMU仿真等,所以在固件设计上对ZNS的适配有得天独厚的优势。

图18. 忆芯企业级方案架构图

未来云计算、人工智能、物联网等技术加速发展,企业级存储方案将保持高速增长态势,忆芯科技将始终坚持“为海量数据提供最优存储方案“的初心,持续推进eSSD和ZNS SSD在统一存储、分布式存储中的应用,以更优的解决方案满足多数应用对QoS及Latency需求,释放数据价值加速数字化转型。





忆芯科技

核心职位火热招聘中

扫描二维码了解更多信息


END

推荐阅读

【忆芯技术分享】大数据时代,安全不可或缺

7-20

Arm:赋能智能高性能存储的未来

7-14

【忆芯技术分享】SSD 变砖怎么办?Administrative Controller来帮忙

7-6


忆芯科技


北京忆芯科技有限公司成立于2015年底,作为国内较早从事高性能固态硬盘主控芯片研发的企业,致力于成为赋能大数据应用的芯片全球领导者。经过7年的发展,公司已成长为国内领先的高端PCIe SSD主控芯片和成品盘供应商,为各行业的信息化发展提供高质量芯片级底层保障业务方向覆盖消费级、工业级和企业级主控芯片及解决方案。


忆芯科技核心成员具有多年研发经验和多项研发成果,拥有从底层算法到芯片设计,再到解决方案设计等多方面的丰富经验。坚持自主研发基础上,研发芯片产品拥有250余项自主知识产权,创新性地将处理器架构首次引入存储领域;现已成功完成3款高端消费级企业级SSD主控芯片流片,所研发的高性能低功耗NVMe SSD主控已量产出货。公司总部位于北京,在上海成都合肥厦门、深圳分别设有研发中心和客户技术支持中心。

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存