数据结构 - 持久事件日志的事件支持与事件格式 (第215页)
NVME2.0协议解读 1 min read

数据结构 - 持久事件日志的事件支持与事件格式 (第215页)

Blog Author

持久事件日志的事件支持与事件格式

NVM Express® Base Specification, revision 2.0b 中,持久事件日志(Persistent Event Log)是一个非常重要的功能,用于记录设备运行过程中发生的关键事件。这些事件对于设备状态的追踪和管理非常重要,尤其是在设备发生故障或需要诊断时。

持久事件日志支持的事件类型

支持的事件位图(Supported Events Bitmap) 是一个 32 字节的字段,用于表示哪些持久事件日志事件被当前控制器支持。每个位对应一个特定的事件类型,设置为 1 表示该事件类型被支持,设置为 0 则表示该事件类型不被支持。

以下是一些关键事件的支持标志:

  • 223: TCG Defined TCG Storage Interface Interactions Specification:是否支持 TCG(可信计算组)定义的存储接口交互事件。
  • 222: Vendor Specific Event Supported:是否支持供应商特定的事件。
  • 13: Thermal Excursion Event Support:是否支持温度变化事件。
  • 12: Telemetry Log Create Event Support:是否支持遥测日志创建事件。
  • 11: Set Feature Event Support:是否支持设置特性事件。
  • 10: Sanitize Completion Event Support:是否支持清除完成事件。
  • 09: Sanitize Start Event Support:是否支持清除开始事件。
  • 08: Format NVM Completion Event Support:是否支持格式化 NVM 完成事件。
  • 07: Format NVM Start Event Support:是否支持格式化 NVM 开始事件。
  • 06: Change Namespace Event Support:是否支持命名空间变更事件。
  • 05: NVM Subsystem Hardware Error Event Support:是否支持 NVM 子系统硬件错误事件。
  • 04: Power-on or Reset Event Supported:是否支持开机或重置事件。
  • 03: Timestamp Change Event Supported:是否支持时间戳变更事件。
  • 02: Firmware Commit Event Supported:是否支持固件提交事件。
  • 01: SMART/Health Log Snapshot Event Supported:是否支持 SMART/健康日志快照事件。

持久事件日志条目格式

每个持久事件条目都遵循一个固定的格式,具体包括事件类型、事件类型版本、事件头长度等信息。

事件头格式:

  1. Event Type (事件类型)
  2. 该字段指示该事件条目的类型。每种事件类型在协议的第 5.16.1.14.1 节中都有定义。

  3. Event Type Revision (事件类型版本)

  4. 该字段包含一个数字,表示此事件数据结构遵循的事件类型修订版。

  5. Event Header Length (EHL) (事件头长度)

  6. 该字段指示事件头信息的字节长度,计算方法是该字段的值加上 3。主机可以使用此值来计算指向 Vendor Specific Information 字段的偏移量。

持久事件日志条目:

持久事件条目包含在 Persistent Event 0Persistent Event N 的字段中,其中 M 是事件的长度。这些事件存储了设备状态变更或重要操作的历史记录。

  • Persistent Event 0 (第一个事件):指代持久事件日志中的第一个事件条目。
  • Persistent Event N (最后一个事件):指代持久事件日志中的最后一个事件条目。

这些事件格式的详细信息如 Figure 225 所示,并且根据具体的事件类型会包含不同的字段。对于每种类型的事件,其数据结构都有详细的定义,允许设备或系统管理员了解设备运行过程中的关键变更。

总结

  1. 支持的事件位图:通过支持的事件位图,控制器可以标识支持的各种事件,这对于故障诊断、性能监控等非常重要。
  2. 持久事件日志条目格式:每个事件条目都通过一个标准的头部结构来标识,确保日志数据的一致性和易于解析。
  3. 事件记录和上下文管理:持久事件日志中的事件可以跨多个控制器和事件发生周期进行跟踪,确保在设备故障或重置后仍然能够追溯重要事件。

这一机制增强了 NVM Express 系统在运行时对关键事件的追踪能力,提升了故障排除的效率和设备管理的透明度。