管理命令集 - 📌 一、SMART / Health Status 事件信息(见 Figure 145) (第161页)
NVME2.0协议解读 1 min read

管理命令集 - 📌 一、SMART / Health Status 事件信息(见 Figure 145) (第161页)

Blog Author

我们继续深入分析 NVM Express® Base Specification, revision 2.0b 中的第150页,特别是关于 SMART / Health StatusNotice 类型的异步事件信息。


📌 一、SMART / Health Status 事件信息(见 Figure 145)

SMART(自我监控、分析与报告技术)和健康状态事件是 NVM 子系统 状态的指示,通常由硬件级故障、温度变化或空间不足等因素引发。

1. 事件值及描述

描述
00h NVM 子系统可靠性受损:表示 NVM 子系统的可靠性受损,可能由以下原因导致:
- 重大介质错误;
- 内部错误;
- 介质进入只读模式;
- 易失性内存备份设备失败。
01h 温度阈值:表示温度达到了过温或低温阈值。详细阈值见第5.27.1.3节。
02h 备用容量低于阈值:表示可用的备用容量低于设定的阈值。
03h 到 FFh 保留:未来可能使用。

2. 如何清除该事件

  • 主机需要通过 Get Log Page 命令读取相关的日志页,以清除这些事件。例如,如果事件是由于温度阈值触发的,主机需要读取 SMART / Health 信息日志页。

📌 二、Notice 事件信息(见 Figure 146)

Notice 类型事件通常用于指示配置或状态变化。具体来说,这些事件表示命名空间或固件状态的变化等。

1. 事件值及描述

描述
00h 命名空间属性更改:表示命名空间的某些属性发生了变化,例如:
- Identify Namespace 数据结构(详见 NVMe I/O Command Set 规范)发生更改;
- I/O Command Set Independent Identify Namespace 数据结构发生更改;
- Identify 命令返回的命名空间列表发生更改;
- 或其他相关的命名空间数据结构更改。
01h 固件激活开始:表示固件激活过程开始,期间命令处理会暂停。主机软件可以通过 CSTS.PP 字段来检测何时命令处理恢复。
02h 遥测日志更改:表示控制器将内部状态保存到 Telemetry Controller-Initiated log 中,并设置 Telemetry Controller-Initiated Data Available 字段为 1。
03h 非对称命名空间访问更改:表示与 ANA(Asymmetric Namespace Access)组 相关的命名空间访问状态发生了变化,例如 ANA 状态变化或 ANAGRPID 变化。

2. 如何清除该事件

对于每个事件类型,主机可以通过发起相应的 Get Log Page 命令来清除事件。例如:

  • 命名空间属性更改:主机通过读取 Changed Namespace List log 来清除此事件。
  • 固件激活开始:主机通过读取 Firmware Slot Information log page 来清除此事件。
  • 遥测日志更改:主机通过读取 Telemetry Controller-Initiated log 来清除此事件。
  • 非对称命名空间访问更改:主机通过读取 Asymmetric Namespace Access log 来清除此事件。

📌 三、Notice 事件清除的限制

控制器仅在特定条件下发送 Notice 事件,例如:

  • 命名空间状态更改 时,只有在命名空间格式化进度发生变化时才发送 命名空间属性更改 事件。
  • 控制器 不会在命名空间关闭处理期间(即 CSTS.SHST 设置为 01b10b)发送该事件。

此外,控制器在以下情况下不应发送此类事件:

  • 命名空间的附件、删除或分离(例如命名空间被挂载或卸载时);
  • 命名空间格式化进度指示符 发生变化时,只有在指示符的位 6-0 从非零值变为 0 或从 0 变为非零时才触发该事件。

📌 四、总结

  1. SMART / Health 状态事件:与设备的健康状态相关,包括 NVM 子系统可靠性温度阈值、和 备用容量 等,主机需要根据事件类型读取相应的日志页以清除事件。

  2. Notice 事件:与配置或状态变化相关,涉及命名空间、固件、遥测日志、非对称命名空间访问等。主机也需要通过读取相应的日志页来清除这些事件。

  3. 事件清除方法:清除事件通常需要主机通过 Get Log Page 命令读取日志页,并且控制器会根据事件类型的不同提供不同的清除方式。

  4. 事件触发条件:控制器会根据命名空间状态、固件处理、以及遥测日志等条件来决定是否触发这些事件,主机可以通过日志页查看详细信息并清除事件。


如果你对特定的事件类型、日志页结构或事件清除方式有更深入的兴趣,或者希望看实际的命令例子,欢迎继续提问!