NVMe 2.0规范发布:重大重组

存储 存储软件
NVM Express(NVMe) 规范系列定义了主机软件如何通过 PCI Express (PCIe)、RDMA、TCP 等多种传输方式与非易失性存储器进行通信。它是所有外形规格(U.2、M.2、AIC、EDSFF)的固态硬盘 (SSD) 的行业标准。

[[403717]]

本文转载自微信公众号「存储加速器」,作者加速狗 。转载本文请联系存储加速器公众号。

NVM Express(NVMe) 规范系列定义了主机软件如何通过 PCI Express (PCIe)、RDMA、TCP 等多种传输方式与非易失性存储器进行通信。它是所有外形规格(U.2、M.2、AIC、EDSFF)的固态硬盘 (SSD) 的行业标准。NVM Express 是由定义、管理和营销 NVMe 技术的技术行业领导者组成的非营利联盟。该系列规范的最新版本 NVMe 2.0 规范已于 2021 年 6 月 3 日发布。

NVM Express 规范的 2.0 版现在已经有十年历史了。与其他 NVMe 规范更新一样,2.0 版带有各种新特性和功能供驱动器实现(通常作为可选特性)。但最重要的变化也就是将其称为 2.0 版而不是 1.5 版的原因,是规范已经通过并彻底重组,以更好地适应 NVMe 现在包含的广泛功能。从最初不起眼的作为基于 PCI Express 运行的块存储协议的开始,NVMe 已经发展成为最重要的网络存储协议之一,现在还支持与 NVMe 最初提供的类似硬盘的块存储抽象完全不同的存储范式。

2.0 版不是典型 PCIe SSD 的基本规范和单独的 NVMe over Fabrics 规范,而是被设计为更加模块化的规范,并已拆分为多个文档。基本规范现在涵盖了本地连接的设备和 NVMeoF,但更抽象地 — 已经从基本规范中移出了足够多的内容,以至于它不再足以定义实现简单 SSD 所需的所有功能。真实设备还需要参考至少一个传输规范和至少一个命令集规范. 对于典型的消费类 SSD,这意味着使用 PCIe 传输规范和块存储命令集。其他传输选项目前包括使用 TCP 或 RDMA 的网络 NVMe over Fabrics。

其他命令集选项包括 Zoned Namespace 和 Key-Value 命令集。去年批准纳入时,我们已经深入介绍了Zoned Namespaces。三个标准化命令集(块、分区、键值)涵盖了从简单的 SSD 到底层闪存上的简单抽象,到相对复杂的智能驱动器,这些驱动器承担了一些传统上可能需要的存储管理任务。由主机系统上的软件处理。

NVMe 2.0 中的许多新功能是对现有功能的次要扩展,使这些功能更有用和更广泛使用。例如,NVMe 1.4 中引入了将设备的存储划分为NVM 集和耐久性组,但规范没有说明如何创建这些划分;该配置要么需要由驱动器的固件硬编码,要么使用供应商特定的命令处理。

NVMe 2.0 为要分配的耐力组和 NVM 集添加了标准容量管理机制,并且还添加了另一层分区(域),以便需要更多工具来分割可用存储池的海量 NVMeoF 存储设备,或隔离不同用户对共享驱动器或阵列的性能影响。

NVMe 规范最初预测了基本块存储命令集之外的多个命令集的可能性。但是用于支持多个命令集的原始机制不足以满足当今的用例:控制器功能数据结构中的少量保留位不足以涵盖当今 SSD 可能实现的所有可能性。特别是,处理多个命令集的新系统现在可以让同一控制器后面的不同命名空间支持不同的命令集,而不是要求所有命名空间都支持其父控制器支持的所有命令集。

当 NVMe 1.4 完成时,分区和键值命令集已经在雷达上,现在这些技术已被纳入 2.0,与原始块存储命令集具有同等地位。未来的命令集(例如用于计算存储驱动器)仍在进行中,尚未准备好标准化,但 NVMe 规范现在能够更轻松地整合此类新开发。NVMe 原则上还可以添加一个开放通道命令集,以公开管理 NAND 闪存(页面、擦除块、缺陷管理等)的大部分或全部原始细节,但普遍的行业共识是分区存储范式达到了更合理的平衡,并且对开放通道 SSD 的兴趣正在减弱,有利于分区命名空间。

对于企业用例,NVMe 继承了 SCSI/SAS 的保护信息支持,将一些额外信息与每个逻辑块相关联,用于验证端到端数据完整性。NVMe 2.0 将现有的保护信息支持从支持 16 位 CRC 扩展到还支持 32 位和 64 位 CRC,从而为大规模存储系统提供更强大的数据保护。

NVMe 2.0 引入了一项重要的新安全功能:命令组控制,使用新的 Lockdown 命令进行配置。NVMe 1.4 添加了命名空间写保护功能,允许主机系统将命名空间置于写保护模式,直到明确解锁或驱动器重新启动。NVMe 2.0 的 Lockdown 允许类似的控制来禁止其他命令。这可用于将驱动器置于允许普通读取和写入的状态,但各种管理命令被锁定,因此无法重新配置驱动器的其他功能。与之前的写保护功能一样,此命令组控制支持设置这些限制,直到它们被明确删除,或者直到重新启动。

对于 NVMe over Fabrics 用例,NVMe 2.0 阐明了如何在可通过多个控制器访问共享存储的情况下处理固件更新和安全设备关机。现在还明确支持硬盘驱动器。尽管硬盘驱动器不太可能很快切换到本地使用 PCIe 连接而不是 SAS 或 SATA,但支持多种旋转介质意味着企业可以使用 NVMe over Fabrics 统一他们的存储网络,并放弃像 iSCSI 这样的旧协议。

总的来说,NVMe 2.0 并没有像之前的一些更新那样带来那么多的新功能。特别是,此更新中没有任何内容与客户端/消费者 SSD 相关。但是规范重组应该使迭代和试验新功能变得更加容易,并且在接下来的几年里,有望看到更频繁的更新和更小的更改,而不是将两三年的工作捆绑在大的规范更新上。

 

参考链接:https://www.anandtech.com/show/16702/nvme-20-specification-released

 

责任编辑:武晓燕 来源: 存储加速器
相关推荐

2018-03-30 09:02:48

微软云计算Windows

2009-04-01 18:01:10

LinuxMonoDevelop

2021-06-08 14:57:09

SATA机械硬盘

2011-05-14 12:41:16

2010-11-05 13:44:55

移动支付平台Facebook

2015-10-20 09:25:41

数据库mysql

2024-02-28 15:12:40

网络安全NIST

2013-10-11 15:53:25

LinuxLinuxMintCinnamon

2021-04-26 18:12:50

戴尔

2009-12-11 09:31:27

谷歌Web Toolkit

2013-03-11 10:21:45

jQueryjQuery 2.0

2012-03-14 09:29:00

Play framewJava

2012-05-28 09:23:40

JavaHadoopApache

2022-08-21 10:39:04

开源Consul

2015-11-23 17:29:26

存储华为ES3000 V3 N

2012-02-08 09:17:50

JActorJava

2011-12-16 09:12:16

java

2024-02-06 10:38:10

昆仑万维大模型

2022-06-16 10:53:22

SUSELinuxopenEuler

2011-10-09 14:13:31

JavaFX
点赞
收藏

51CTO技术栈公众号