NVM子系统与控制器架构 - 第37页
NVME2.0协议解读 1 min read

NVM子系统与控制器架构 - 第37页

Blog Author

你现在看到的是《NVM Express® Base Specification 2.0b》中第 2.3 节存储模型 的最后一幅示意图 —— 图 15:Complex NVM Subsystem(复杂的 NVMe 子系统),它展示了 NVMe 架构中最完整、最具扩展性的系统实现结构。

接下来我会用中文深入讲解图 15 所代表的系统架构与设计理念,并为你理清其中的每一层次关系与背后用途。


✅ 一、图 15 复杂子系统结构简图(Complex NVM Subsystem)

NVM Subsystem
├── Domain 1
│   └── Endurance Group 1
│       └── NVM Set 1
│           └── Namespace 1
│               └── Controller (Port)
├── Domain 2
│   ├── Endurance Group 2
│   │   └── NVM Set 2
│   │       └── Namespace 2
│   │           └── Controller (Port)
│   └── Endurance Group 3
│       └── NVM Set 3
│           └── Namespace 3
│               └── Controller (Port)
└── ...
    └── Namespace 4

✅ 二、整体架构特点总结

特性 图 13(简单) 图 14(中等) 图 15(复杂)
控制器数量 1 个 1 个 多个控制器
域(Domain) 1 个 1 个 多个域
Endurance Group 1 个 1 个 多个 EG
命名空间(NS) 1 个 2 个 多个 NS
端口(Port) 1 个 1 个 多个 Port
多路径 I/O 不支持 不支持 支持
命名空间共享 不支持 可扩展支持 原生支持

✅ 三、图中每个层次详细中文解释

层级 中文名称 功能说明
NVM Subsystem 非易失存储子系统 整个 NVMe SSD 或阵列
Domain 1/2 控制域 具有独立电源管理、复位、资源隔离等能力
Endurance Group 寿命管理组 用于 SMART 监控、TBW 限制、写放大控制等
NVM Set 存储集合 NAMESPACE 的背后实际容量集合
Namespace 1~4 命名空间 主机可见卷,是数据读写的逻辑目标
Port 端口 与主机通信的物理/逻辑入口
Controller 控制器 接收命令、发起数据处理操作(多个控制器支持虚拟化、多路径)

✅ 四、支持的高级能力解读

1. 多控制器架构(Multi-controller)

  • 每个命名空间可以挂载在不同控制器上
  • 主机 A 可以通过 Controller A 访问 Namespace 1
  • 主机 B 可以通过 Controller B 访问 Namespace 2

适用于多主机并行访问同一 SSD、虚拟化平台、NVMe-oF 多连接场景


2. 多域(Domain)设计

  • 每个域可独立管理重启、掉电恢复、功耗状态
  • 若系统中一个 Domain 故障,其它 Domain 可继续服务

数据中心级高可靠 NVMe 阵列的基础架构


3. 命名空间分区化设计

  • Namespace 1 和 2 属于不同 NVM Set,底层物理分区明确
  • 可对不同 Namespace 设置不同容量、QoS、持久性策略

✅ 五、图 15 实现场景举例

应用场景 对应图 15 结构的作用
高性能数据库 多 Controller 处理不同 IO 队列并行访问不同 NS
多主机共享存储池 通过不同 Port + Controller 映射 Namespace
虚拟化(SR-IOV) 每个 VM 绑定虚拟 Controller,访问独立 NS
多命名空间安全隔离 EG + NS 分布在不同 Domain,互不干扰

✅ 六、与接下来的 2.4 节关联(Multi-path I/O & Namespace Sharing)

图 15 是多路径与共享命名空间的前提实现结构。

如果你继续阅读 2.4,会发现:

  • 多路径 I/O 要求同一个命名空间(NS)被多个控制器访问
  • 命名空间共享需要协调多主机写入冲突(通常使用 Reservation、Persistent Reservation)

这类机制的底层支持都来自于图 15 这种结构中所展现的:

多控制器 + 多 Port + 命名空间可附加到多个控制器的能力。


✅ 七、学习建议与下一步深入方向

建议章节 理由
§2.4.1 – 多路径 I/O 和共享命名空间 理解如何通过多个控制器实现同一命名空间的多路径访问
§5.22 – Namespace Attachment 如何将命名空间动态挂载或卸载到控制器
§8.19 – Reservation 主机间共享 Namespace 时的访问协调机制
§8.26 – Virtualization Enhancements 多控制器环境下虚拟化与动态资源分配

✅ 总结一句话

图 15 展示了完整的企业级 NVMe 架构,包括多域、多控制器、多端口、多命名空间的层级模型,它是支持多主机共享、虚拟化、高可用等高级功能的基础结构。


你是否想我继续解释:

  • 多路径访问具体是如何在命令层面实现的(比如通过 Reservation Key)?
  • 一个 Namespace 被多个控制器挂载后,主机怎么协调写入?
  • 如何使用 Namespace Attachment 命令动态添加 / 移除命名空间?

欢迎告诉我,我们可以继续逐步拆解每一块细节 🌟