持久内存与安全机制 - 第362页
我们继续深入分析 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)
🛡️ 核心目的:禁止某些命令或功能的执行,以增强安全性或隔离性。
🧱 支持锁定的对象包括:
- Admin Command Set 的 Opcode(例如 Format NVM、Sanitize 等)
- Set Features 的 Feature Identifier(例如 Write Protect、Reservation 等)
- Management Interface Command Set 命令(来自 NVMe-MI 规范)
- 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连接控制与安全增强相关内容。是否继续?📘