管理命令集 - 📌 一、命令概述(Capacity Management Command) (第163页)
NVME2.0协议解读 1 min read

管理命令集 - 📌 一、命令概述(Capacity Management Command) (第163页)

Blog Author

我们现在来深入解析 NVMe 2.0b 基础规范第 152 页的重点内容——Capacity Management(容量管理)命令,它是高级 NVMe 管理机制中非常关键的一部分,允许主机对 Endurance GroupsNVM Sets 进行配置与动态管理。


📌 一、命令概述(Capacity Management Command)

🧠 目的:

主机使用该命令来实现以下功能: - 选择预定义的容量配置(固定容量管理) - 创建 / 删除 Endurance Group(耐久组) - 创建 / 删除 NVM Set(NVM 子集合)

这在企业级 SSD 中非常有用,尤其是 对存储分区进行性能隔离、寿命管理或虚拟分区化部署 时。


🧩 二、命令结构解析

该命令使用:

  • CDW10(Command Dword 10)
  • CDW11(Command Dword 11)
  • CDW12(Command Dword 12)

所有其他命令特定字段均保留。


🔹 CDW10(见 Figure 149)

Bit 区间 字段 描述
31:16 Element Identifier 此字段根据 Operation 类型而异:可能是某个配置 ID、域 ID、组 ID、Set ID 等(详见下方各操作定义)。
15:04 Reserved 保留
03:00 Operation 要执行的操作类型,共支持 5 种操作(值 0h~4h)。

🔀 三、Operation 操作类型详解

操作类型 功能 Element Identifier 含义
0h Select Capacity Configuration 主机选择一个已有的配置来配置 Endurance Groups 和 NVM Sets(适用于固定容量管理)。 Capacity Configuration Identifier(见 Figure 251)
1h Create Endurance Group 在某个 Domain 中创建一个新的 Endurance Group,容量通过 CDW11 和 CDW12 指定。 Domain Identifier(如果为 0h,则由控制器决定创建在哪个域)
2h Delete Endurance Group 删除指定的 Endurance Group,及其包含的所有 NVM Sets 和命名空间。 Endurance Group Identifier
3h Create NVM Set 在某个 Endurance Group 中创建 NVM Set,容量也由 CDW11、CDW12 指定。 Endurance Group Identifier(0h = 控制器选择)
4h Delete NVM Set 删除指定的 NVM Set,以及其中所有命名空间。 NVM Set Identifier
5h–Fh 保留 - -

异常处理提示:
如果 Element Identifier 为非 0 且找不到对应对象,控制器将返回 Invalid Field in Command 错误码。


🔹 CDW11(见 Figure 150)

Bit 区间 字段 描述
31:00 Capacity Lower 容量值的 低 32 位,单位为字节(byte)。

🔹 CDW12(见 Figure 151)

Bit 区间 字段 描述
31:00 Capacity Upper 容量值的 高 32 位,和 Capacity Lower 组合为 64 位字节数。

⚠ 仅当 OperationCreate Endurance GroupCreate NVM Set 时,此字段有效。


🎯 实际应用场景

场景 实现方法 相关字段
在特定 Domain 中创建一个容量为 1TB 的 Endurance Group Operation = 1hElement Identifier = Domain ID,CDW11/12 = 1TB CDW10–12
删除某个 NVM Set(比如 ID = 3) Operation = 4hElement Identifier = 3 CDW10
应用一套预定义的容量分配配置 Operation = 0hElement Identifier = 预设配置 ID CDW10

✅ 小结与学习建议

维度 内容
📌 命令目的 管理 Endurance Group / NVM Set 的配置、创建与删除
🔧 核心字段 CDW10(操作码 + ID),CDW11/CDW12(容量值)
🔄 支持操作 固定配置选择、创建 / 删除 EG 或 NVM Set
💥 注意事项 元素 ID 无效会导致 Invalid Field 错误
🧩 延伸内容 与 Section 8.3 配合使用,涉及物理域划分、Set 分配机制

如果你希望我带你深入讲解: - Endurance Group / NVM Set 的底层结构原理? - 可变容量 vs 固定容量管理区别? - 示例命令封包结构(例如 NVMe-MI 或 MCTP 封装)?

欢迎继续发问,我可以从应用到协议细节再到命令格式,一步步带你透彻掌握。你想看哪一部分?