NVMe标准更新定义了一个软件接口

描述

今年6月,NVMe标准更新定义了一个软件接口,以帮助SSD和NAND闪存实际工作时读写到硬盘的方式。

区别于模仿从硬盘和早期存储技术继承的传统块设备模型,新的NVMe ZNS (NVMe Zoned Namespaces)可选特性允许SSD在闪存上实现不同的存储抽象。这与SAS和SATA为适应SMR硬盘而添加的扩展非常相似,还有一些为SSD做的额外扩展。带有这个新特性的“分区”SSD可以提供比普通SSD更好的性能,同时需要的配置更加精简,所需DRAM更少。缺点是应用程序和操作系统必须更新以支持分区存储,目前这项工作正在顺利进行。

NVMe ZNS规范构建在当前的NVMe 1.4规范之上,为NVMe2.0做准备,已经作为一项技术提案得到批准和发布。即将到来的NVMe 2.0规范将包含所有获批准的技术提议,ZNS的标准化为NVMe 2.0更广泛的商业化和应用扫清了道路,目前NVMe 2.0一直受到特定于供应商的分区存储接口和有限硬件选择的阻碍。

SSD

分区存储概述

使用闪存作为固态硬盘的根本挑战是:我们所有的计算机都是围绕着硬盘如何工作的概念构建的,而闪存的行为与硬盘不同。闪存的组织方式与机械硬盘非常不同,为了提升闪存的性能,对计算机进行优化变成一项值得投入的工作。

机械硬盘是一种类似的存储介质,没有固有的结构来规定扇区大小等特性。长期选择512字节扇区标准只是为了方便,现在当我们达到多TB范围的硬盘容量时,企业硬盘支持4K字节扇区。相比之下,闪存芯片的设计中包含了好几层结构,最重要的指标是页面大小和擦除块大小。可以使用页大小粒度(通常是几个KB)读取数据、写入空页,擦除操作可以清除整个块(多MB)。读/程序操作和擦除操作之间的实际大小不匹配是一个普通机械硬盘不必处理的复杂问题。闪存有限的编程/擦除周期也增加了挑战,因为写入次数越少,寿命就越长。

如今,几乎所有的SSD都是作为具有512字节或4kB扇区的简单类HDD块存储设备的抽象呈现给软件的。这隐藏了SSD的所有复杂性,如页面和擦除块大小、磨损均衡和垃圾回收等。这种抽象也是SSD控制器和固件比硬盘控制器更大、更复杂(更容易出错)的部分原因。大多数情况下,块设备抽象仍然是最优的折衷方法,它允许软件无需修改就可以享受闪存的大部分性能优势,而对于写入扩展等缺点也在可管理范围内。

多年来,存储行业一直在探索块存储抽象的替代方法。有几个关于Open Channel SSD的建议,它们将闪存的许多细节直接暴露给主机系统,将SSD固件的许多职责转移到运行在主机CPU上的软件上。已经推广的各种Open Channel SSD标准在各个领域取得了不同的平衡(在具有完全驱动管理的FTL(flash translation layer)的典型SSD和完全软件管理的解决方案之间平衡)。业界一致认为,最早的一些标准,如LightNVM 1.x规范,暴露了太多的细节,需要软件处理不同供应商闪存之间的差异,或SLC, MLC, TLC等之间的差异。较新的标准寻求更好的平衡和抽象级别,以便更容易大规模推广应用,同时允许软件绕过典型SSD的低效率特性。

为了从另一个方向解决这个问题,NVMe标准已经获得了一些特性,允许SSD与主机共享更多关于数据访问和布局的最佳模式信息。在很大程度上,这些都是软件可以利用的可选特性,没有意识到这些特性的软件仍然可以正常工作。NVMe规范的过去几次修订中添加了指令和流、NVM集、可预测的延迟模式等,以使软件和SSD能够更好地协作。

最近,受硬盘市场的影响,第三种方法的势头正在增强。SMR是一种技术,部分重叠的轨道机械硬盘盘片可以增加存储密度。这种方法的缺点是,直接修改任意字节的数据而不破坏相邻重叠的磁道是不可能的,因此SMR硬盘将磁道分组到区域中,只允许在区域内顺序写操作。这对包括随机写操作的工作负载具有严重的性能影响,也是SMR硬盘在市场上受到褒贬不一的部分原因。然而,在服务器存储市场中,主机管理的SMR也是一个可行的选择:它要求操作系统、文件系统和应用程序软件能够直接感知区域,但在使用环境受控时,进行必要的软件更改并不是不可克服的挑战。

用于SMR硬盘的分区存储模型也非常适合与FLASH一起使用,它是NVMe ZNS的前身。SMR硬盘的类区域结构反映了SSD的页和擦除块结构。对写的限制不是完全匹配的,但已经足够接近了。

SSD

后面我们将介绍什么是NVMe ZNS,以及它的重要性。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分