NVME_HEALTH_INFO_LOG 结构 (nvme.h)

包含指定 SMART/Health Information Log 页中包含的信息的字段。

SMART/Health Information Log 页面提供跨电源周期保留的控制器生命周期中的 SMART 和常规运行状况信息。 全局支持日志页。 若要请求全局日志页,请指定命名空间 FFFFFFFFh

还可以按命名空间支持 SMART/Health Information Log 页,如 标识控制器 数据结构中所示。 如果每个命名空间不支持日志页,则指定除 命名空间以外的 FFFFFFFFh 任何命名空间都应中止命令,状态为 NVME_STATUS_INVALID_FIELD_IN_COMMAND。 在 NVMe 版本 1.3 中,SMART/Health 日志页中没有定义特定于命名空间的信息,因此全局日志页和特定于命名空间的日志页包含相同的信息。

有关 NVM 子系统运行状况的关键警告通过向主机发送异步事件通知来指示。 使用 “设置功能”命令配置导致向主机发出异步事件通知的警告。

可以使用作为 SMART/Health Information 日志的一部分返回的参数来计算性能。 具体而言,读取或写入命令的数量、读取或写入的数据量以及控制器繁忙时间允许计算每秒 I/O 和带宽。

NVME_HEALTH_INFO_LOG结构由“获取日志页”命令返回。 有关详细信息,请参阅 NVME_CDW10_GET_LOG_PAGE

语法

typedef struct {
  union {
    struct {
      UCHAR AvailableSpaceLow : 1;
      UCHAR TemperatureThreshold : 1;
      UCHAR ReliabilityDegraded : 1;
      UCHAR ReadOnly : 1;
      UCHAR VolatileMemoryBackupDeviceFailed : 1;
      UCHAR Reserved : 3;
    } DUMMYSTRUCTNAME;
    UCHAR AsUchar;
  } CriticalWarning;
  UCHAR  Temperature[2];
  UCHAR  AvailableSpare;
  UCHAR  AvailableSpareThreshold;
  UCHAR  PercentageUsed;
  UCHAR  Reserved0[26];
  UCHAR  DataUnitRead[16];
  UCHAR  DataUnitWritten[16];
  UCHAR  HostReadCommands[16];
  UCHAR  HostWrittenCommands[16];
  UCHAR  ControllerBusyTime[16];
  UCHAR  PowerCycle[16];
  UCHAR  PowerOnHours[16];
  UCHAR  UnsafeShutdowns[16];
  UCHAR  MediaErrors[16];
  UCHAR  ErrorInfoLogEntryCount[16];
  ULONG  WarningCompositeTemperatureTime;
  ULONG  CriticalCompositeTemperatureTime;
  USHORT TemperatureSensor1;
  USHORT TemperatureSensor2;
  USHORT TemperatureSensor3;
  USHORT TemperatureSensor4;
  USHORT TemperatureSensor5;
  USHORT TemperatureSensor6;
  USHORT TemperatureSensor7;
  USHORT TemperatureSensor8;
  UCHAR  Reserved1[296];
} NVME_HEALTH_INFO_LOG, *PNVME_HEALTH_INFO_LOG;

成员

CriticalWarning

严重警告 (CriticalWarning) 结构,其中包含指示控制器状态严重警告的字段。

CriticalWarning 结构的每个字段都是对应于严重警告类型的位;可以设置多个位。 如果将位清除为 0,则该严重警告不适用。 此字段中的位表示当前关联状态,并且不是永久性的。

严重警告可能会导致向主机发出异步事件通知。

CriticalWarning.DUMMYSTRUCTNAME

CriticalWarning.DUMMYSTRUCTNAME.AvailableSpaceLow

指示可用备用空间是否低于阈值。

当此值设置为 1时,可用备用空间已降至阈值以下。

CriticalWarning.DUMMYSTRUCTNAME.TemperatureThreshold

指示温度是高于温度阈值还是低于温度阈值。

当此值设置为 1时,温度高于温度阈值或低于温度阈值。 有关温度阈值的详细信息,请参阅 NVME_CDW11_FEATURE_TEMPERATURE_THRESHOLD

CriticalWarning.DUMMYSTRUCTNAME.ReliabilityDegraded

指示 NVM 子系统可靠性是否已降级。

当此值设置为 1时,NVM 子系统可靠性已降级,因为与媒体相关的重大错误或任何降低 NVM 子系统可靠性的内部错误。

CriticalWarning.DUMMYSTRUCTNAME.ReadOnly

指示媒体是否已置于只读模式。

当此值设置为 1时,媒体已置于只读模式。

CriticalWarning.DUMMYSTRUCTNAME.VolatileMemoryBackupDeviceFailed

指示易失性内存备份设备是否已发生故障。

当此值设置为 1时,易失性内存备份设备已失败。 仅当控制器具有易失性内存备份解决方案时,此字段才有效。

CriticalWarning.DUMMYSTRUCTNAME.Reserved

保留 CriticalWarning 结构的位 05:07。

CriticalWarning.AsUchar

Temperature[2]

指示整个设备(包括控制器和 NVM 子系统)的复合温度(以开氏度为单位)。

如果此字段中的温度超过温度阈值,则可能会发生异步事件完成。 有关详细信息,请参阅 NVME_CDW11_FEATURE_TEMPERATURE_THRESHOLD

警告和严重过热复合温度阈值由标识控制器数据结构中的 WCTEMPCCTEMP 字段报告。

AvailableSpare

指示剩余可用备用容量的规范化百分比 (0 到 100) 。

AvailableSpareThreshold

指示可用备用容量的阈值。

AvailableSpare 的值低于此字段中指示的阈值时,可能会发生异步事件完成。 该值以规范化百分比 (0 到 100) 表示。

PercentageUsed

指示供应商根据实际使用情况和制造商对 NVM 寿命的预测,对已使用的 NVM 子系统寿命百分比进行特定估计。

值为 100 表示已消耗 NVM 子系统中 NVM 的估计耐力,但可能并不表示 NVM 子系统发生故障。 允许值超过 100。 大于 254 的百分比表示为 255。 当控制器) 未处于睡眠状态时,此值在每个开机小时更新一次 (。

Reserved0[26]

保留字段。

DataUnitRead[16]

指示主机已从控制器读取的 512 字节数据单位的数目,不包括元数据。

此字段的值以千为单位进行报告,并向上舍入。 例如,值 1 对应于读取 512 字节的 1000 个单位。 当逻辑块访问 (LBA) 大小为 512 字节以外的值时,控制器会将读取的数据量转换为 512 字节单位。

对于 NVM 命令集,作为 Compare 和 Read 操作的一部分读取的逻辑块包含在此值中。

DataUnitWritten[16]

指示主机已写入控制器的 512 字节数据单位数,不包括元数据。

此字段的值以千为单位进行报告,并向上舍入。 例如,值 1 对应于读取 512 字节的 1000 个单位。 当逻辑块访问 (LBA) size 为 512 字节以外的值时,控制器会将写入的数据量转换为 512 字节单位。

对于 NVM 命令集,作为写入操作的一部分写入的逻辑块包含在此值中。 写入不可更正命令不会影响此值。

HostReadCommands[16]

指示控制器完成的 Read 命令数。

对于 NVM 命令集,这是 Compare 和 Read 命令的数目。

HostWrittenCommands[16]

指示控制器完成的 Write 命令数。

对于 NVM 命令集,这是写入命令的数目。

ControllerBusyTime[16]

指示控制器忙于 I/O 命令的时间(以分钟为单位)。

当 I/O 队列存在未完成的命令时,控制器正忙。 具体而言,通过 I/O 提交队列结尾门铃 写入发出命令时,相应的完成队列条目尚未发布到关联的 I/O 完成队列。

PowerCycle[16]

指示电源周期数。

PowerOnHours[16]

指示开机小时数。 这不包括控制器通电的时间和处于低功率状态的时间。

UnsafeShutdowns[16]

指示不安全关闭次数。 当在断电之前未收到控制器配置的SHN 文件中指示的关闭通知时,此计数将递增。

MediaErrors[16]

指示控制器检测到未恢复的数据完整性错误的发生次数。

此字段中包含无法更正 ECC、CRC 校验和失败或 LBA 标记不匹配等媒体错误

ErrorInfoLogEntryCount[16]

指示控制器生存期中的 错误信息 日志条目数。

WarningCompositeTemperatureTime

指示控制器正常运行且复合温度 (温度 ) 大于或等于“警告复合温度阈值” (WCTEMP) 字段,并且小于“识别控制器”数据结构中 CCTEMP) 字段 (的“临界复合温度阈值”字段的时间(以分钟为单位)。

如果 WCTEMPCCTEMP 字段0h的值为 ,则无论温度值如何,此字段始终清除为 0h

CriticalCompositeTemperatureTime

指示控制器运行的时间(以分钟为单位)和复合温度 (温度) 大于“识别控制器”数据结构中的“临界复合温度阈值” (CCTEMP) 字段。

如果 CCTEMP 字段0h的值为 ,则无论温度值如何,此字段始终清除为 0h

TemperatureSensor1

指示温度传感器 1 报告的当前温度(以开氏度为单位)。

TemperatureSensor2

指示温度传感器 2 报告的当前温度(以开氏度为单位)。

TemperatureSensor3

指示温度传感器 3 报告的当前温度(以开氏度为单位)。

TemperatureSensor4

指示温度传感器 4 报告的当前温度(以开氏度为单位)。

TemperatureSensor5

指示温度传感器 5 报告的当前温度(以开氏度为单位)。

TemperatureSensor6

指示温度传感器 6 报告的当前温度(以开氏度为单位)。

TemperatureSensor7

指示温度传感器 7 报告的当前温度(以开氏度为单位)。

TemperatureSensor8

指示温度传感器 8 报告的当前温度(以开氏度为单位)。

Reserved1[296]

保留字段。

注解

温度传感器报告的温度可用于触发异步事件。 有关详细信息,请参阅 NVME_CDW11_FEATURE_TEMPERATURE_THRESHOLD

要求

要求
最低受支持的客户端 Windows 10
标头 nvme.h

另请参阅