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。
警告和严重过热复合温度阈值由标识控制器数据结构中的 WCTEMP 和 CCTEMP 字段报告。
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) 字段 (的“临界复合温度阈值”字段的时间(以分钟为单位)。
如果 WCTEMP 或 CCTEMP 字段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 |