摘要
- NVM Express, Inc. 是管理 NVMe 协议家族的非营利联盟;它不生产 SSD、控制器、交换机或存储系统。
- NVMe 用内存中的多条提交队列和完成队列取代了机械硬盘时代遗留的假设,这些队列更贴合并行闪存和多核 CPU。
- 相同的控制器、子系统和命名空间模型既可在本地通过 PCIe 运行,也可通过 NVMe over Fabrics 远程运行,并支持 TCP 和 RDMA 等运行特性不同的传输方式。
- NVMe 2.x 采用模块化设计。2026 年 8 月 4 日发布的 2.4 版本协调了 Base、PCIe/RDMA/TCP 传输、NVMe-MI、Boot 以及多个专用命令集。
- 该协议让容量访问更具可组合性。它不定义文件系统、持久性、RAID、纠删码、网络设计、运维安全或应用一致性。
存储命令可以在不改变底层语言的情况下离开服务器
读取操作可以通过 PCIe 指向本地 NVMe 命名空间,也可以通过网络架构指向远程子系统。介质、控制器和路径都变了,但命令模型保持不变。
这种连续性使解耦成为可能。容量可以按需聚合并分配给主机,而不必将每个设备安装在消费它的机箱中。
解耦带来了新的依赖:发现机制、网络、多路径、身份验证、重连以及新的故障域。NVMe 将存储变成可编程的服务,而不是没有拓扑的资源。
闪存需要为并行而设计的协议
传统接口反映了机械延迟和狭窄的队列。闪存可以并行处理大量操作,而现代服务器拥有众多核心。
NVMe 使用内存中的提交队列和完成队列对。主机放置命令、更新 doorbell,并通过中断或轮询接收完成通知。多条队列可以减少共享锁,并可与特定核心关联。
实际效果取决于固件、PCIe、NUMA、队列深度、中断和工作负载。协议的名称并不能保证统一的性能水平。
该联盟将协议治理与产品竞争分开
这项工作始于 2000 年代末;NVMe 1.0 于 2011 年问世,NVM Express, Inc. 于 2014 年成立。参与者包括 CPU、存储介质、控制器、网络、系统和云领域的公司。
截至本文撰写时,Google 的 Amber Huffman 担任总裁,AMD 的 Curtis Ballard 担任财务主管,Microchip 的 David Allen 担任秘书。对外公开的董事会包括十三名发起人代表。
该联盟定义规范与合规计划。成员在芯片、固件、系统、支持和性能方面展开竞争。成为联盟成员并不能证明某款产品实现所有功能。
NVMe 2.0 将一个日益庞大的文档转变为模块化家族
随着多种传输和新数据模型的出现,单一规范变得难以维护。2021 年的 2.0 重构将 Base、命令集和传输层分开。
这样一来,TCP 可以在不重写每条命令的情况下演进,ZNS 也可以在不改变所有传统控制器的情况下推进。代价是版本矩阵更加复杂。
2026 年 8 月 4 日发布的 NVMe 2.4 协调了 Base 2.4、PCIe 1.4、RDMA 1.3、TCP 1.3、NVMe-MI 2.2、Boot 1.4,以及 NVM、Key Value、Zoned Namespace、Computational Programs 和 Simple Log Memory 等命令集。它不是一个单一文件。
提交队列和完成队列将工作贴近核心
主机在提交队列中写入命令;控制器在完成队列中返回状态。不同的核心或进程可以使用不同的队列对,从而减少争用。
Doorbell 用于通知有新工作。轮询可以降低延迟,但会消耗 CPU;中断合并可以节省周期,但会增加等待。队列深度会改变利用率和尾部延迟。
更深的队列并不总是更好。它可能掩盖饱和并增加等待时间。配置必须随工作负载而定。
控制器、子系统和命名空间将逻辑端点与物理介质分开
控制器暴露队列和命令。子系统可以聚合多个控制器。命名空间表示逻辑容量,并可通过多条路径呈现。
主机可见的身份不再必然对应单个 SSD。一个阵列可以聚合许多介质并提供稳定的命名空间。
NVMe 不决定数据的放置、复制或保护。RAID、纠删码、精简配置和一致性属于更上层的系统。
管理命令控制 I/O 环境
管理队列负责处理标识、队列创建、特性、日志、固件、命名空间和安全。它是让日常操作得以进行的层级。
一条管理命令可以删除命名空间、激活错误的固件或更改电源状态。这需要权限、审计和变更控制。
将管理和 I/O 分开可改善架构,但并不会降低控制平面的重要性。在网络架构中,两者可能依赖同一条网络。
PCIe 让本地路径贴近内存和硬件
基于 PCIe 的 NVMe 在本地总线上使用共享内存和控制器寄存器。这是在服务器内部连接 SSD 或扩展卡最直接的方式。
拓扑仍然重要。设备可能位于 PCIe 交换机之后、另一个 NUMA 插槽上或共享通道。CPU、内存和设备必须妥善布局。
因此,仅清点“驱动器数量”是不够的。部分延迟可能源自服务器本身,在到达介质之前就已产生。
NVMe over Fabrics 将本地关系转变为网络服务
NVMe-oF 1.0 和 NVMe-MI 1.0 于 2016 年 6 月 9 日发布。NVMe-oF 将 capsules 和数据传送到远程子系统,主机在其中创建队列并通过网络查看命名空间。
该架构支持共享资源池以及计算与存储的分离。主机可以更换而无需迁移数据。
同时,NIC、交换机、路由、发现、控制器、身份验证和多路径也被加入数据路径。网络架构成为完整性系统的一部分。
发现控制器带来动态性,也制造关键依赖
主机查询发现控制器以了解子系统、地址和服务。这样可以避免手动配置每个目标端。
错误信息或服务不可用可能阻止新连接,或将主机引向错误位置。因此需要冗余、缓存、验证和身份保护。
发现并不等于数据路径可用。既有连接可能继续工作,而新主机却什么都发现不了。
NVMe/TCP 将网络架构带到普通 IP 网络
NVMe/TCP 于 2019 年标准化,将命令和数据映射到 TCP 之上。运营商可以使用可路由的以太网、IP 工具、防火墙和成熟实践,而无需构建 RDMA。
这种便利会带来额外开销。TCP、数据拷贝、中断和 CPU 都会影响尾部延迟。内核、卸载、传输大小和调优至关重要。
该传输包括特定的成帧和摘要(digest),并且可以使用 TLS。具备 TLS 能力并不意味着它已启用或运维良好。
NVMe/RDMA 以更严格的网络架构纪律换取低延迟
RDMA 使用队列对、注册内存和 NIC 的能力,以更少的 CPU 干预移动数据。这对 HPC 和 AI 很有吸引力。
RDMA 并不是单一网络。RoCE、iWARP 和其他绑定在拥塞、丢包、PFC、ECN 和内存方面有着不同的要求。
快速基准测试并不能证明运维简单。网络问题可能表现为存储超时,并要求综合的技能。
多路径将冗余变成主机决策
一个命名空间可以通过多个控制器和路径可见。主机选择负载均衡或故障转移。非对称命名空间访问(ANA)会指示优化、非优化或不可用路径。
两条链路可能共享交换机、控制器、电源或路由。独立性必须通过真实故障来验证。
错误策略可能让 I/O 走慢速路径,或迟迟不放弃已失效的路径。冗余是观测到的行为,而不是端口数量。
NVMe 预留协调共享访问,但不取代共识机制
NVMe 预留允许注册主机并预留命名空间,以防止未授权的写入者。这在集群和故障转移中很有用。
它不能替代集群共识或应用一致性。宕机的主机可能留下需要清理的状态,而隔离机制必须防止旧节点继续写入。
恢复不当的预留可能导致服务不可用或数据损坏。
当存储离开 PCIe 时,身份验证和 TLS 变得重要
本地设备曾天然拥有一定的物理边界。在网络上,发起端和目标端必须验证身份并保护通道。
NVMe 定义了身份验证机制,TCP 可以使用 TLS。实际效果取决于密钥、证书、轮换、算法和策略。支持并不等于安全配置。
发现、管理和数据平面必须一起分析。一个经过身份验证的身份仍可能拥有过高的权限。
NVMe-MI 创建与 I/O 分离的管理平面
NVMe 管理接口(NVMe-MI)允许对子系统进行盘点、读取健康状态,并在应用路径不活跃时执行操作。
这有助于维护和恢复,但也增加了一个特权接口。管理平台可以读取敏感信息或大规模更改设备。
NVMe-MI 可与 Redfish 和其他系统集成。集成并不会合并各标准的职责。
分区命名空间将介质的限制暴露给软件
ZNS 将容量划分为按顺序写入的区域。通过向主机提供可见性,它可以减少内部垃圾回收,并改善耐用性或可预测性。
要实现这种收益,需要文件系统、数据库或存储层能感知区域。为传统块设备设计的应用程序不会自动获得该收益。
ZNS 体现了权衡:对介质了解越多可以提高效率,但也会提高软件的可移植性成本。
Key Value、Simple Log Memory 和 Computational Programs 扩展了命名空间的概念
专门的命令集支持键/值、简单日志或在存储附近执行程序。它们旨在减少数据转换和数据移动。
其使用取决于控制器、驱动程序、库和应用程序。出现在规范中并不意味着它们成为通用功能。
选项越多,能力发现和回退机制就越重要。模块化带来了灵活性,也带来了一套新的商业矩阵。
合规提供证据,但不证明端到端性能
互操作性计划和研讨会测试主机与控制器之间的具体行为。它们能发现文本未显现的差异。
合规清单并不衡量所有拓扑下的延迟、耐用性、恢复或安全性。驱动-固件的选项和矩阵会变化。
购买方应将合规视为底线,并测试自己的工作负载、故障和升级。
解耦将容量与服务器分离,并重新分配责任
本地存储将设备、主机和系统团队绑定在一起。远程资源池可以为许多消费者服务,并通过软件更改分配。
现在,网络、存储、平台、安全和应用团队共同面对事故。网络架构的劣化可能看起来像数据库问题;固件问题可能看起来像网络中断。
经济性取决于利用率和运营能力,而不仅仅是每 TB 的价格。
AI 将存储延迟转化为计算成本
训练和推理会加载数据集、写入检查点并大规模移动状态。如果数千个加速器在等待,存储浪费就会变成高昂成本。
TCP、RDMA、多路径和共享命名空间提供了多种选择,但必须结合拥塞、恢复、元数据和队列行为进行评估。
目标不仅仅是峰值吞吐量,而是在同步负载下可预测的队列延迟和恢复。
NVMe 2.4 展现了广度与版本化压力
该版本集合协调了 Base、传输、Boot、管理接口和命令集。NVMe 已经是一个协议栈,而不再只是 SSD 的接口。
主机可以支持 Base 2.4 而不必支持每个命令集;TCP 控制器可能与 RDMA 控制器不同。支持声明需要具体说明。
驱动、操作系统、固件、传输和管理工具共同构成一个矩阵,而这一矩阵在实践中就是协议的一部分。
NVMe 让存储变得可组合,但并未让它变简单
该契约降低了一种切换成本:命令和命名空间可以在从 PCIe 到网络架构、或从一家供应商到另一家供应商的过程中存续。但数据迁移、安全、可观测性、网络和支持仍然存在。
优势在于协议与产品分离。风险则是在同一个 NVMe 品牌下掩盖截然不同的架构。
存储变得可编程、可分发,但它仍然是一个完整性系统,必须在故障发生时被理解。
会员简报
档案背景详情
使用相应会员等级登录,即可解锁完整简报与来源注释。
仅限 Strategic Circle
Strategic Circle
所有读者均可浏览。加入并登录后可解锁档案简报。
加入 Strategic Circle仅限 Leadership Alliance
Leadership Alliance
符合条件的 IP 资产所有者和管理层可登录查看 Leadership Alliance 简报。
加入 Leadership Alliance
