NVMe协议从结构上颠覆了传统的存储协议栈,它不仅是固态存储的绝对主流标准,更是在AI时代突破算力瓶颈的关键基础设施。本文将系统性地梳理NVMe的发展历程、核心性能机制以及其向网络扩展的NVMe over Fabric技术。
NVMe的发展历程
NVMe的前身是NVMHCI。NVMHCI工作组成立于2007年,由Intel主导,Dell和Microsoft核心参与。
Intel此举的背景是什么?让我们回顾一下当时的历史环境。
1. Intel的战略转向
进入21世纪后,消费电子设备需要GB级别的存储空间来存放音乐、照片和应用数据。NAND闪存因其存储密度高、单位成本低、读写速度快,完美匹配了这一巨大的市场需求。同时,基于闪存将替代机械硬盘的技术预判,可以预见NAND将被大规模应用于数据中心。出于对市场和技术趋势的考量,Intel决定将战略重心从NOR闪存转向NAND闪存。
然而,当Intel在2005年决定进入NAND市场时,三星、东芝等厂商已占据了约70%的市场份额。作为后来者,Intel如何破局?当时,各家NAND厂商的芯片在引脚定义、通信协议上并不统一,导致上游主控设计商需要为不同厂商的芯片单独开发方案,下游的主板、SSD设备厂商则面临研发成本高、周期长的困境。
这给了Intel一个以标准化实现破局的机会:通过主导制定统一的接口标准,快速切入并整合NAND生态。
2. ONFI标准的诞生
2006年,Intel联合美光、海力士、索尼等同样受制于三星和东芝两大巨头的厂商,牵头成立了ONFI(开放NAND闪存接口)工作组。
ONFI旨在制定开放、统一的闪存芯片与主控之间的接口标准,从而简化设计、降低成本,构建一个能与三星/东芝阵营相抗衡的生态系统。
自2006年12月发布首个协议以来,ONFI已发布数十个更新版本,最新版本为2022年的5.1。

3. NVMe标准的成型
ONFI标准化了闪存控制器与NAND颗粒之间的接口,下一步自然就是标准化闪存控制器与操作系统驱动之间的寄存器级接口。
于是,NVMHCI工作组应运而生。其目标是为操作系统驱动程序访问非易失性存储子系统提供标准的软件编程接口。2008年4月,工作组完成了NVMHCI 1.0规范并在Intel官网公开。该规范首次明确了寄存器编程接口、低延迟数据传输等核心定义,但它仅聚焦于主机控制器与存储介质的底层交互,功能较为单一,尚未覆盖企业级场景的需求。
2009年,NVMHCI工作组吸纳了三星、戴尔、EMC等更多厂商,启动了规范的全面升级工作。
升级后的规范不再沿用NVMHCI的名称,而是以NVMe 1.0的名义在2011年3月公开。
这一版本不仅继承了NVMHCI基于PCIe的原生设计、低延迟特性,还新增了多核架构支持、64K命令队列、企业级数据保护等功能,标志着技术体系从单一的控制器接口升级为可适配全场景的存储协议标准。
同时,“NVMe”这个新名称也摆脱了Intel专属标准的标签,强化了其开放、中立的生态属性。
如今,NVMe规范已发展成为一个包含基础规范、命令集规范、传输规范、启动规范、管理接口规范在内的庞大规范集。其基础规范的最新版本已于2025年8月发布。


4. 三个值得关注的细节
(1) 三星与东芝对ONFI和NVMe的“一拒一迎”
ONFI旨在打破这两大巨头对NAND市场的垄断,因此三星和东芝结成了Toggle-Mode联盟与之对抗,以守护自身的技术壁垒和核心利润。
而NVMe标准旨在解决PCIe SSD协议碎片化问题,是全行业的共同需求,能推动整个市场增长。这种不削弱自身优势却能扩大市场的标准,三星和东芝自然乐于参与。
(2) Amber Huffman的双重角色
作为存储行业的权威专家与核心领导者,Amber Huffman同时肩负着推动NVMe和ONFI两大关键标准发展的重任。她不仅是两大工作组的创始主席与长期领导者,更是核心规范的主导编写者与编辑,同时推动这两项标准持续迭代,并拓展至数据中心、汽车、云计算等多个场景。
(3) NVMe为何保持高度活跃
NVMe标准非常活跃,根据其路线图,这个已有15年历史的标准在2026年仍计划添加新特性,这相当罕见。其背后的驱动力在于:
- 新兴场景的刚性性能需求:在消费电子领域,NVMe的队列调度机制可能无法完全匹配游戏场景,导致加载卡顿。在汽车领域,其电源管理仅支持基础休眠模式,且缺乏车规级错误冗余机制。在数据中心,协议缺乏智能的分层存储调度能力,无法自动将热数据分配至高性能SSD、冷数据迁移至低成本QLC存储,造成资源浪费。
- 存储介质与计算架构的持续演进:PLC(5bit/cell)、相变存储器(PCM)、STT-MRAM等新型存储介质需要协议层进行适配。现有的NVMe-oF协议在以太网环境下的延迟仍比本地连接高10-20微秒,需要进一步降低网络延迟以满足AI训练、高频交易等极致低延迟场景,这涉及到对底层网络协议和系统调优的深入理解。
- NVMe组织的高效运作:生态系统内任何参与者提出的新痛点都会被快速反馈,而NVMe组织具备高度的敏捷性,能够保证“需求提出-规范制定-芯片实现”的同步快速迭代。

NVMe如何释放极致性能
首先,了解NVMe的命令处理流程:
- 主机将命令(单条或多条)写入提交队列(SQ)。
- 主机更新该队列对应的门铃寄存器(Doorbell)。
- 控制器从SQ中取走命令。
- 控制器处理命令。
- 控制器将完成状态写入完成队列(CQ)。
- 控制器产生中断通知主机。
- 主机处理CQ中的完成条目。
- 主机更新CQ门铃寄存器。

在此过程中,命令的读取和结果的写入均通过DMA直接在主机内存与控制器之间传输,无需CPU干预;命令下发仅需1次SQ Tail Doorbell寄存器写入;命令完成也无需读取寄存器。这种高效的处理方式极大地降低了软件开销,提升了性能。
其次,NVMe设计了超大规模的并行队列机制:
NVMe最多支持64K个独立队列,每个队列可容纳64K条命令,可以直接为每个CPU核心分配专属队列。因此,NVMe能够通过“无锁并行”的方式,让多核心的I/O请求直接下发至不同的队列。
提交队列(SQ)与完成队列(CQ)的解耦设计,分离了命令下发与结果反馈的流程。主机将命令写入SQ后,无需等待执行结果即可继续下发新命令;控制器执行完成后,将结果独立写入对应的CQ。这种设计,结合控制器内部命令的乱序执行能力,可以大幅提升闪存芯片多通道的利用率。
此外,NVMe支持高达2048个MSI-X中断向量。这使得不同CQ产生的中断可以动态绑定到对应的CPU核心上,显著提升了中断处理的效率,这也是现代操作系统和驱动优化的重要方向。


在软件实现层面,工程师们还提出了在用户空间实现NVMe驱动(如SPDK)的方案,进一步绕过了内核上下文切换的开销。下图展示了内核态驱动与用户态驱动在I/O路径上的对比:

NVMe over Fabric:从本地到全域
NVMe协议解决了本地存储的性能瓶颈后,却带来了新的“幸福的烦恼”:单台服务器内的NVMe SSD性能过于强大,以至于本地CPU无法完全消耗,造成了资源浪费。
一个自然的解决方案便是将NVMe SSD“拉远”,将其存储能力释放给网络上的其他服务器使用。

那么,如何实现“拉远”呢?
原生的NVMe协议是为PCIe总线设计的本地存储协议,其核心机制与PCIe深度耦合,无法直接用于网络传输。如果直接复用iSCSI、FC-SCSI等传统网络存储协议来承载NVMe流量,又会引入协议转换开销,丧失NVMe的低延迟、高效率优势。
因此,NVMe组织在2016年制定了NVMe over Fabric (NVMe-oF) 规范。该规范定义了一个通用架构,在保留NVMe高性能语义的前提下,支持通过FC、RDMA、TCP/IP等不同的传输网络访问远端的NVMe块存储设备,从而将本地存储协议扩展为网络存储协议:
- 连接与会话管理:新增Discover、Connect、Disconnect等命令,支持多主机与存储目标(Target)之间动态建立和断开连接,适应网络拓扑的变化。
- 命名与发现机制:引入NQN(NVMe Qualified Name)作为存储目标的全局唯一标识符,配合Discovery服务实现跨网络的存储资源自动发现,解决多节点寻址问题。
- 传输层适配:定义了统一的Capsule封装格式,支持通过RDMA(RoCE/InfiniBand)、FC、TCP等多种网络承载NVMe命令,同时屏蔽不同传输层的差异,保证NVMe命令语义的一致性。
- 安全与可靠性:新增Authentication Send/Receive等命令,支持TLS加密、访问控制等安全机制,弥补网络传输中潜在的数据泄露与篡改风险。

需要注意的是,如今已不存在独立的NVMe over Fabric规范,其内容已被整合进NVMe基础规范之中。

如今,NVMe over Fabric技术已成为现代高性能数据中心,特别是AI/GPU计算集群和公有云原生存储服务的标准配置与核心基础设施。例如:在NVIDIA DGX SuperPOD参考架构中,存储节点通过NVMe-oF向DGX计算节点提供数据;Meta在其数据中心内部使用该技术支撑其社交图谱数据库和消息服务;公有云提供商通过它将高性能存储资源池化,并以云服务的形式出售;传统及新兴的企业存储厂商,也已将其作为全闪存阵列的标准前端接口。
总结
NVMe协议从一片荒芜中开拓,建立起统一高效的存储标准;经过十五年的深耕与演进,衍生出十多项子规范,涵盖了主流的传输协议和多套命令集,实现了存储领域多维度的标准化。这不仅得益于闪存技术的迭代,更源于行业场景持续演进的强力推动。在AI与高性能计算的浪潮下,NVMe的创新之路永无止境。它将继续突破存储的性能边界,成为连接数据与算力的关键纽带,引领下一代存储生态的变革。