NVM子系统架构 - 📌 管理控制器(Administrative Controller)的其他能力 (第47页)
我们现在继续深入讲解《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 28
:Administrative Controller 所需的 Admin 命令支持清单。如果你想,我们也可以开始动手用 Identify Controller
的结构来看如何从设备端判断一个控制器是 Admin 类型还是 I/O 类型。你想继续吗?😊