管理命令集 - 我们现在继续深入中文解读 NVMe 2.0b 基础规范第 151 页 的内容,主要聚焦在: (第162页)
NVME2.0协议解读 1 min read

管理命令集 - 我们现在继续深入中文解读 NVMe 2.0b 基础规范第 151 页 的内容,主要聚焦在: (第162页)

Blog Author

我们现在继续深入中文解读 NVMe 2.0b 基础规范第 151 页 的内容,主要聚焦在:

  • 异步事件信息(Asynchronous Event Information)的 Notice 类型补充项
  • I/O 命令特定状态(I/O Command Specific Status)
  • Immediate 类型事件
  • 并简要引入 Capacity Management 命令的背景

📌 一、Notice 类型异步事件(Figure 146 补充项)

事件值与描述:

描述
04h Predictable Latency Event Aggregate Log 变更:表示一个或多个 NVM Set 的延迟事件已记录进对应日志页(见 §5.16.1.12)。
05h LBA 状态信息警报I/O Command Set 特定定义,具体含义请参考 NVM Command Set 规范。
06h Endurance Group Event Aggregate Log Page 变更:表示一个或多个 Endurance Group 的事件条目已添加到相关日志中(见 §5.16.1.10)。
✔ 清除方法:主机发出 Get Log Page 命令读取该日志页,并设置 Retain AER = 0
07h–EEh 保留
EFh Zone Descriptor Changed分区命名空间命令集(ZNS)专用事件,请参考 Zoned Namespace Command Set。
F0h Discovery Log Page 变更:一个或多个 Discovery 日志页发生了变更,主机需使用 Get Log Page 命令获取更新内容。
F1h–FFh 保留供未来 NVMe over Fabrics 异步事件使用

📌 二、I/O Command Specific Status 类型事件(Figure 147)

该类型的异步事件与特定的 I/O 命令行为有关,以下是当前已定义的事件值:

描述
00h Reservation Log Page Available:表示一个或多个 Reservation Notification 日志页已添加(§5.16.1.24)。
01h Sanitize 操作完成:擦除操作已完成,且未出现异常释放用户数据。其详细状态存于 Sanitize Status 日志页(§5.16.1.25)。
02h Sanitize 操作异常释放完成:虽然请求了 No-Deallocate After Sanitize,但仍发生了用户数据被释放的情况。
✔ 主机可通过 Sanitize Status 日志页 获取相关信息。
03h–FFh 保留

💡 这类事件的典型使用场景包括:多主机协调(Reservation)、数据销毁合规(Sanitize)等场景。


📌 三、Immediate 类型事件(Figure 148)

Immediate(即时)事件只会在事件发生时控制器检测到有挂起的 AER 命令时被报告,不保存、不排队、不生成日志页

描述
00h 正常 NVM 子系统关机(Normal Shutdown):控制器正在进行正常的关机流程,可能是由于:
- 向 NSS.NCCR(NVM Subsystem Normal Shutdown Control Register) 写入 "Nrml"(十六进制:4E726D6Ch);
- 收到 NVMe-MI Shutdown 命令(详见 NVMe-MI 规范)。
🔍 详见第 §3.6.3
01h–FFh 保留

📢 即时事件的重要特征

  • 必须有挂起的异步事件请求命令;
  • 无法通过读取日志页获取;
  • 通常用于“状态信号”类事件,例如关机提示。

📌 四、容量管理命令简介(引入 §5.3)

容量管理命令(Capacity Management Command) 是用于配置 Endurance GroupNVM Set 的关键机制,其两种模式如下:

  1. 固定容量管理(Fixed Capacity Management):从控制器支持的固定配置中选择;
  2. 可变容量管理(Variable Capacity Management):主机指定要创建的容量参数。

该命令结构与操作定义见后续 Figure 149(§8.3.2 和 §8.3.3)。

👉 该命令常用于对存储设备做细粒度配置,例如控制特定用户的耐久组、容量分配、优化写入寿命等。


🧠 学习总结与结构梳理

类型 值范围 事件内容 日志页 清除方法
Notice 00h–F0h 命名空间、固件、遥测、ANA、ZNS、发现日志 通过 Get Log Page,Retain AER = 0
I/O Command Specific 00h–02h Reservation、Sanitize 通过相关日志页
Immediate 00h 正常关机提示 不可保存,仅在 AER 挂起时上报
Reserved 其余 保留用于将来扩展 - -

如果你对其中某一个具体日志页结构、Sanitize 状态字节、AER 配置机制(Set Features)、或 NVMe-MI 的关机事件配合机制感兴趣,我可以继续带你深入挖掘。需要我解析哪个部分?