持久内存与安全机制 - 第362页
NVME2.0协议解读 1 min read

持久内存与安全机制 - 第362页

Blog Author

我们继续深入分析 NVMe Base Specification 2.0b 的第 351 页内容,涵盖两部分:


8.3 容量分配与回收操作流程总结

🔐 8.4 指令与功能锁定机制(Command and Feature Lockdown)


一、容量分配与回收流程(Variable Capacity Allocation/Deallocation)

此部分总结了主机在使用 Variable Capacity Management 时,常见的操作步骤和应对策略。


🚀 常规的“创建流程”如下:

步骤 操作 说明
1️⃣ 确定各域的可用容量 每个 domain 可用空间见 §3.2.4
2️⃣ 创建 Endurance Group 见 §5.3 Capacity Management 命令
3️⃣ 在 EG 中创建 NVM Set 也是 §5.3 的子操作
4️⃣ 在 NVM Set 中创建 Namespace 见 §5.23 Namespace Management 命令

♻️ 常规的“删除流程”如下:

步骤 操作 说明
1️⃣ 删除 Namespace 使用 Delete Namespace
2️⃣ 删除 NVM Set(如存在) 见 §5.3
3️⃣ 删除 Endurance Group 释放资源回 domain

📉 容量不足时应对策略:

场景 1:EG 内部容量不足,无法创建新的 NVM Set

👉 删除已有的 NVM Set,释放空间再重建。

场景 2:整个 domain 容量不足,无法创建新的 EG

👉 删除旧的 EG,释放空间再分配。


📌 CTRATT 标志位(来自 Identify Controller):

说明
Delete EG Bit 控制器支持删除 Endurance Group(设置为 1)
Delete NVM Set Bit 控制器支持删除 NVM Set(设置为 1)

🔐 二、命令与功能锁定机制(Command and Feature Lockdown)


🛡️ 核心目的:禁止某些命令或功能的执行,以增强安全性或隔离性。


🧱 支持锁定的对象包括:

  1. Admin Command Set 的 Opcode(例如 Format NVM、Sanitize 等)
  2. Set Features 的 Feature Identifier(例如 Write Protect、Reservation 等)
  3. Management Interface Command Set 命令(来自 NVMe-MI 规范)
  4. PCIe Command Set 命令

💡 控制器厂商可以自定义哪些命令和功能可被 Lockdown 限制。


🧩 指令行为细节:

条件 行为
指令已被 Lockdown 控制器应拒绝执行该指令
返回状态码 Command Prohibited by Command and Feature Lockdown
失效时机 Power cycle(断电重启) 或 主机再次发出 Lockdown 命令明确解除
接口适用范围 Lockdown 命令的 Interface 字段决定适用在哪些控制器/接口上

🧠 实战应用场景示例:

场景 操作
防止恶意修改控制器配置 锁定 Format、Sanitize、Set Features 中的写保护等命令
安全启动流程中限制敏感操作 禁止 Firmware Download、Namespace Create
远程 NVMe 管理中锁定命令通道 限制 NVMe-MI 接口中的命令权限

如你需要我讲解 Lockdown 命令的结构定义、字段详情、与安全策略的配合机制,或更深入了解 §5.19,欢迎继续提问!我们也可以马上进入 8.5 Fabric连接控制与安全增强相关内容。是否继续?📘