NVM子系统架构 - 📌 管理控制器(Administrative Controller)的其他能力 (第47页)
NVME2.0协议解读 1 min read

NVM子系统架构 - 📌 管理控制器(Administrative Controller)的其他能力 (第47页)

Blog Author

我们现在继续深入讲解《NVM Express® Base Specification, Revision 2.0b》中 第 3.1.2.2 节关于 Administrative Controller(管理控制器) 的最后部分内容,并配合图示讲解两个实际架构案例。


📌 管理控制器(Administrative Controller)的其他能力

前面提到,管理型控制器不能读写命名空间中的用户数据,功能主要用于子系统的控制与状态管理。此外它还支持以下能力:

✅ 补充的子系统管理能力:

功能 描述
NVM Subsystem Reset(NSSR 寄存器) 可用于重置整个 NVM 子系统,前提是控制器支持此寄存器
NVM Subsystem Shutdown(NSSD 属性) 可用于关闭整个子系统的电源/操作状态,用于维护或热插拔等场景

❗ 限制

限制项 描述
❌ 不支持 I/O 队列 管理控制器没有 I/O Submission/Completion Queue
❌ 不附加 Namespace 因此没有 NSID 可用,无法访问任何命名空间的数据
❌ 不执行普通 I/O 命令 只能执行 Admin Command(如 NVMe-MI、虚拟化、管理命名空间等)

✅ 命令支持说明

虽然 Admin Controller 不能执行 I/O 命令,但它仍需支持一组强制性的管理命令(Admin Commands),详见后续的 Figure 28

若 Admin Controller 实现了某个 I/O Command Set(例如支持 Zoned 或 Key-Value 的管理指令),则它 仅支持该 Command Set 对应的“管理类命令”,因为它没有 I/O 队列,无法执行实际的数据操作命令。


🖼️ 图示架构说明

🧩 图 26:具有一个管理控制器和两个 I/O 控制器的 NVM 子系统

NVM Subsystem
 ├── Admin Controller (无 Namespace)
 ├── I/O Controller 1:
 │    ├── Private Namespace A
 │    └── Shared Namespace B
 └── I/O Controller 2:
      ├── Private Namespace C
      └── Shared Namespace B

场景说明: - I/O 控制器 1 和 2 可以同时访问 共享命名空间 B - 管理控制器用于执行: - Namespace Attachment 管理 - 虚拟化命令(Virtualization Management) - 健康轮询(Health Status Poll via NVMe-MI)


🧩 图 27:一个管理控制器 + 无存储介质的 NVM 子系统(如:仅 NVMe Enclosure)

NVM Subsystem
 └── Admin Controller
     ├── ❌ No namespaces
     ├── ❌ No non-volatile memory
     └── ✅ 用于 NVMe-MI 管理(如热插拔、温度等监控)

场景说明: - 此类 Admin Controller 常用于 NVMe Enclosure 管理,不承担数据通道任务 - 可只实现 NVMe-MI Send/Receive 命令,并满足 Figure 28 中最小命令集要求


🧠 总结建议

控制器类型 主要用途 是否支持 I/O 是否需 Namespace 示例场景
I/O Controller 读写用户数据 ✅ 是 ✅ 是 主数据路径(SSD)
Admin Controller 管理功能 ❌ 否 ❌ 否 NVMe-MI、Namespace 管理、虚拟化控制器等
Discovery Controller 连接前发现服务 ❌ 否 ❌ 否 NVMe over Fabrics 中路径发现阶段

下一节我们将看到 Figure 28Administrative Controller 所需的 Admin 命令支持清单。如果你想,我们也可以开始动手用 Identify Controller 的结构来看如何从设备端判断一个控制器是 Admin 类型还是 I/O 类型。你想继续吗?😊