摘要
- NVM Express, Inc.是管理NVMe规范家族的非营利行业联盟,并不制造SSD、控制器、交换机或存储阵列。
- NVMe把机械硬盘时代较窄、较串行的队列模型,换成内存中的多组submission queue与completion queue,更适合并行闪存和多核处理器。
- 同一套controller、subsystem和namespace语义既可在服务器内部通过PCIe运行,也可借助NVMe over Fabrics跨TCP或RDMA网络提供服务。
- NVMe 2.x采用模块化架构。2026年8月4日公开的2.4规范集合包括Base、PCIe/RDMA/TCP transport、NVMe-MI、Boot以及多种专用command set。
- 协议提高容量的可组合性,却不定义filesystem、持久性、RAID、erasure coding、网络设计、运营安全或应用一致性。
存储命令可以离开服务器,而不改变基本语言
一个读请求可以发往本地PCIe SSD上的namespace,也可以通过fabric发往远端subsystem。媒体、controller和路径发生变化,命令、queue和namespace模型却大体保持一致。
这正是存储解耦的基础。容量可集中到共享池中,再按需求分配给host,而不必把每个drive都装进使用它的机箱。
但离开服务器会增加discovery、网络、multipath、authentication、reconnect和新的failure domain。NVMe让存储成为可编程服务,并没有让拓扑消失。
闪存需要为并行性而设计的协议
传统存储接口受到机械寻道和较少并发操作的影响。闪存可以同时处理大量请求,现代服务器也拥有众多CPU core。
NVMe使用位于内存中的submission queue与completion queue。Host写入command,通过doorbell通知controller,再通过interrupt或polling读取completion。多组queue可分配给不同core或进程,减少共享锁和竞争。
实际结果仍取决于controller firmware、PCIe topology、NUMA、queue depth、interrupt策略和workload。采用NVMe并不自动获得某个固定性能水平。
联盟把协议治理与产品竞争分开
NVMe工作始于2000年代末,1.0规范在2011年发布,NVM Express, Inc.于2014年成立。联盟成员来自处理器、闪存、controller、网络、系统和云计算行业。
研究截止时,Google的Amber Huffman担任President,AMD的Curtis Ballard担任Treasurer,Microchip的David Allen担任Secretary;公开董事会列有十三名promoter代表。
联盟负责合同、变更和compliance框架,成员继续在芯片、firmware、系统设计、支持和性能上竞争。参与标准工作,并不等于某产品实现了所有功能。
NVMe 2.0把不断膨胀的单一文档拆成模块化家族
随着PCIe以外的transport和新数据模型出现,所有内容放在一份规范中越来越难维护。2021年的NVMe 2.0重构把Base、command set和transport分离。
这样,TCP transport可独立演进,Zoned Namespace也能扩展而不必修改所有传统controller。代价是采购者需要管理更复杂的版本组合。
2026年8月4日公开的NVMe 2.4集合包括Base 2.4、PCIe Transport 1.4、RDMA Transport 1.3、TCP Transport 1.3、NVMe-MI 2.2、Boot 1.4,以及NVM、Key Value、Zoned Namespace、Computational Programs和Simple Log Memory等command set。“NVMe 2.4”不是单一文件。
Submission与completion queue把存储工作靠近CPU core
Host把command写入submission queue,controller把结果写入completion queue。不同core或应用可使用独立queue pair,从而减少全局锁和上下文切换。
Doorbell用于通知新工作。Polling可降低某些延迟,却持续占用CPU;interrupt coalescing节省CPU,也可能增加等待。Queue depth影响利用率和tail latency。
更深的queue并不总是更好。它可能掩盖饱和、延长排队时间。正确配置必须从workload和SLA出发。
Controller、subsystem与namespace把逻辑端点同物理介质分开
Controller暴露queue与command。一个subsystem可以包含多个controller。Namespace表示逻辑容量,可通过不同controller和path提供给host。
Host看到的身份因此不必对应一块物理SSD。阵列可组合多种media并提供稳定namespace。
NVMe不决定数据如何放置、复制或保护。RAID、erasure coding、thin provisioning、snapshot和应用一致性仍由上层系统负责。
Admin command与普通I/O一样关键
Admin queue用于识别设备、创建I/O queue、设置feature、读取log、管理firmware、namespace和security。它控制普通读写得以发生的环境。
一条错误admin command可能删除namespace、激活错误firmware或改变power state。权限、审计与change control必须覆盖这一层。
Admin与I/O分开有利于架构,却不意味着control plane次要。在fabric中,两者有时依赖相同网络和身份体系。
PCIe让本地路径靠近内存和硬件
NVMe over PCIe通过本地总线上的共享内存结构与controller register通信,是服务器内SSD和卡的直接路径。
物理接近不等于拓扑简单。Device可能位于PCIe switch之后、连接到另一NUMA socket或共享lane。CPU、memory和device的位置影响性能。
因此不能只统计drive数量。异常延迟可能在到达media之前,就来自主机内部PCIe路径。
NVMe over Fabrics把本地controller关系变成网络服务
NVMe-oF 1.0与NVMe-MI 1.0在2016年6月9日发布。NVMe-oF把command capsule和数据传送到远端subsystem,host通过fabric建立queue并访问namespace。
这让容量池化和compute/storage分离成为可能。Host可以更换,而数据留在共享系统中。
同时,NIC、switch、route、discovery、controller、authentication和multipath进入data path。网络不再只是“连接”,而是存储完整性的组成部分。
Discovery controller简化动态接入,也形成关键依赖
Host可查询discovery controller,获得可用subsystem、地址和服务。这样无需为每个target手工配置路径,也便于动态增删资源。
错误信息或discovery服务中断,会阻止新连接或把host引向错误target。需要冗余、缓存、身份保护和内容验证。
Discovery可用性与data path可用性不同。已有session可能继续工作,而新host无法发现服务。
NVMe/TCP把fabric存储带到普通IP网络
2019年标准化的NVMe/TCP把command与data映射到TCP连接。运营者可以使用可路由Ethernet、IP工具、防火墙和熟悉的网络实践,而不必建设RDMA fabric。
便利伴随overhead。TCP stack、copy、interrupt和CPU可能影响tail latency。Kernel实现、offload、传输大小和tuning都很重要。
Transport还定义storage特定framing与digest,并可使用TLS。支持TLS不等于已经启用或安全运营。
NVMe/RDMA追求低延迟,同时要求更严格的fabric工程
RDMA通过queue pair、registered memory和NIC offload减少CPU介入,适合HPC和AI中重视微秒与CPU周期的场景。
RDMA不是一种统一网络。RoCE、iWARP等binding在拥塞、丢包、PFC、ECN和内存管理上要求不同。
低延迟benchmark不意味着简单运营。网络故障可能表现为storage timeout,需要网络与系统团队共同诊断。
Multipath把冗余变成host的策略选择
一个namespace可以通过多个controller与path访问。Host决定load balance与failover。Asymmetric Namespace Access标示optimized、non-optimized或unavailable路径。
两条链路可能仍共享switch、controller、电源或route。真正独立必须通过故障测试验证。
错误policy可能长期保留坏路径,或把I/O发往较慢路径。冗余应由实际行为衡量,而不是端口数量。
Reservation协调共享访问,却不能替代集群共识
NVMe reservation允许host注册并保留namespace,防止未授权writer访问,常用于cluster和failover。
它不替代共识协议或应用一致性。故障host可能留下reservation state,恢复过程必须fence旧节点,避免它重新写入。
错误恢复会把保护机制变成不可用或数据损坏来源。
存储离开PCIe后,认证与TLS成为必要条件
本地设备往往继承物理边界。通过网络连接后,initiator与target需要证明身份,并保护适当的control与data channel。
NVMe定义authentication机制,NVMe/TCP可使用TLS。实际保障取决于密钥、证书、轮换、算法、访问策略和实现质量。功能存在不代表安全配置完成。
Discovery、admin与data plane必须一起评估。身份真实,也可能拥有过宽权限。
NVMe-MI提供独立于应用I/O的管理路径
NVMe Management Interface允许工具发现subsystem、读取健康状态、清点device并执行某些管理动作,即使主I/O path未被应用使用。
这有利于维护和恢复,却增加另一个高权限接口。集中管理平台可读取敏感信息或批量改变设备。
NVMe-MI可以与Redfish等管理体系集成。集成不代表不同标准组织和供应商责任合并。
Zoned Namespace把介质约束暴露给host software
ZNS把容量分为顺序写入的zone。软件了解media布局后,可能减少controller内部garbage collection,提高endurance或可预测性。
收益要求filesystem、database或storage layer理解zone。按传统block device设计的应用不会自动获得优势。
ZNS体现了NVMe的取舍:暴露更多介质行为可以提高效率,也提高软件可移植成本。
Key Value、Simple Log Memory与Computational Programs扩展namespace含义
专用command set支持key/value访问、简单日志内存或在存储附近执行程序,目标是减少转换和数据移动。
采用依赖controller、driver、library和application。写入规范不意味着所有SSD和array都提供该功能。
功能越多,capability discovery和fallback越重要。模块化带来灵活性,也形成新的商业兼容矩阵。
Compliance提供有用证据,却不认证端到端性能
Compliance program与interoperability workshop测试具体host-controller行为,能发现仅阅读规范看不出的分歧。
列入清单不代表在每种拓扑下拥有某个latency、endurance、recovery或security水平。Optional feature与driver-firmware matrix会不断变化。
买家应把compliance当作底线,并测试自己的workload、故障和upgrade流程。
存储解耦把容量与服务器分开,也重新分配责任
本地存储往往把device、host和系统团队绑定在一起。远端pool可服务多个消费者,并通过软件调整分配。
Network、storage、platform、security和application团队因此共享同一incident。Fabric degradation可能看起来像database问题,controller firmware问题也可能像网络丢失。
经济收益取决于容量利用率和运营能力,而不只是每TB价格。
AI把存储延迟直接变成计算成本
训练任务要加载dataset、写checkpoint、交换大规模状态。当成千上万accelerator等待时,存储尾延迟会浪费昂贵计算资源。
TCP、RDMA、multipath和shared namespace提供不同架构。选择需考虑拥塞、metadata、queue behavior、故障与恢复。
目标不应只是峰值throughput,而应是在同步负载下保持可预测的排队与恢复时间。
NVMe 2.4展示协议范围,也加大版本压力
2.4集合协调Base、transport、Boot、Management Interface与专用command set。NVMe已成为完整stack,而非单纯SSD接口。
Host可以支持Base 2.4却不支持所有command set;TCP controller也可能与RDMA产品功能不同。支持声明必须具体。
Driver、OS、firmware、transport和management tool形成的矩阵,在实践中就是协议的一部分。
NVMe让存储可组合,却没有让服务变简单
共同协议降低一种切换成本:command与namespace可以从PCIe转向fabric,或从一家供应商转向另一家。数据迁移、身份、安全、网络、可观测性与支持成本仍然存在。
优势是协议与产品更清楚地分离。风险是“NVMe”这一名称掩盖高度不同的架构。
存储因此更可编程、更可分布,但仍是必须在故障中解释清楚的数据完整性系统。
会员简报
档案背景详情
使用相应会员等级登录,即可解锁完整简报与来源注释。
仅限 Strategic Circle
Strategic Circle
所有读者均可浏览。加入并登录后可解锁档案简报。
加入 Strategic Circle仅限 Leadership Alliance
Leadership Alliance
符合条件的 IP 资产所有者和管理层可登录查看 Leadership Alliance 简报。
加入 Leadership Alliance
