NVME_HEALTH_INFO_LOG structure (nvme.h)
Contient des champs qui spécifient les informations contenues dans la page SMART /Journal des informations d’intégrité.
La page SMART / Journal d’informations d’intégrité fournit des informations smart et générales sur l’intégrité tout au long de la durée de vie du contrôleur, qui sont conservées tout au long des cycles d’alimentation. La page de journal est prise en charge à l’échelle mondiale. Pour demander la page du journal global, spécifiez l’espace de noms FFFFFFFFh
.
La page SMART/Health Information Log peut également être prise en charge par espace de noms, comme indiqué dans la structure de données Identifier le contrôleur . Si la page de journal n’est pas prise en charge par espace de noms, la spécification d’un espace de noms autre que FFFFFFFFh
doit abandonner la commande avec une status de NVME_STATUS_INVALID_FIELD_IN_COMMAND. Dans NVMe version 1.3, il n’existe aucune information spécifique à l’espace de noms définie dans la page du journal SMART/Health. Par conséquent, la page de journal globale et la page de journal spécifique aux espaces de noms contiennent des informations identiques.
Les avertissements critiques concernant l’intégrité du sous-système NVM sont indiqués via une notification d’événement asynchrone à l’hôte. Les avertissements qui entraînent une notification d’événement asynchrone à l’hôte sont configurés à l’aide de la commande Définir les fonctionnalités.
Les performances peuvent être calculées à l’aide de paramètres retournés dans le journal SMART/Health Information. Plus précisément, le nombre de commandes de lecture ou d’écriture, la quantité de données lues ou écrites et la quantité de temps de travail du contrôleur permettent de calculer à la fois les E/S par seconde et la bande passante.
La structure NVME_HEALTH_INFO_LOG est retournée par la commande Obtenir la page du journal. Pour plus d’informations, consultez NVME_CDW10_GET_LOG_PAGE.
Syntaxe
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;
Membres
CriticalWarning
Structure d’avertissement critique (CriticalWarning) contenant des champs qui indiquent des avertissements critiques pour l’état du contrôleur.
Chaque champ de la structure CriticalWarning est un bit qui correspond à un type d’avertissement critique ; plusieurs bits peuvent être définis. Si un bit est effacé sur 0
, cet avertissement critique ne s’applique pas. Les bits de ce champ représentent l’état associé actuel et ne sont pas persistants.
Les avertissements critiques peuvent entraîner une notification d’événement asynchrone à l’hôte.
CriticalWarning.DUMMYSTRUCTNAME
CriticalWarning.DUMMYSTRUCTNAME.AvailableSpaceLow
Indique si l’espace de rechange disponible est passé sous le seuil.
Lorsque cette valeur est définie sur 1
, l’espace disponible est passé sous le seuil.
CriticalWarning.DUMMYSTRUCTNAME.TemperatureThreshold
Indique si une température est supérieure à un seuil de température supérieure ou inférieure à un seuil de température inférieure.
Lorsque cette valeur est définie sur , une température est supérieure à un seuil de température supérieure ou inférieure à un seuil inférieur à 1
la température. Pour plus d’informations sur les seuils de température, consultez NVME_CDW11_FEATURE_TEMPERATURE_THRESHOLD.
CriticalWarning.DUMMYSTRUCTNAME.ReliabilityDegraded
Indique si la fiabilité du sous-système NVM a été dégradée.
Lorsque cette valeur est définie sur 1
, la fiabilité du sous-système NVM a été dégradée en raison d’erreurs importantes liées au média ou de toute erreur interne qui dégrade la fiabilité du sous-système NVM.
CriticalWarning.DUMMYSTRUCTNAME.ReadOnly
Indique si le média a été placé en mode lecture seule.
Lorsque cette valeur est définie sur 1
, le média a été placé en mode lecture seule.
CriticalWarning.DUMMYSTRUCTNAME.VolatileMemoryBackupDeviceFailed
Indique si l’unité de sauvegarde de mémoire volatile a échoué.
Lorsque cette valeur est définie sur 1
, l’unité de sauvegarde de mémoire volatile a échoué. Ce champ n’est valide que si le contrôleur dispose d’une solution de sauvegarde de mémoire volatile.
CriticalWarning.DUMMYSTRUCTNAME.Reserved
Les bits 05 :07 de la structure CriticalWarning sont réservés.
CriticalWarning.AsUchar
Temperature[2]
Indique la température composite, en degrés Kelvin, de l’ensemble de l’appareil, y compris le contrôleur et le sous-système NVM.
Si la température dans ce champ dépasse le seuil de température, un achèvement d’événement asynchrone peut se produire. Pour plus d’informations, consultez NVME_CDW11_FEATURE_TEMPERATURE_THRESHOLD.
Les valeurs de seuil de température composite d’avertissement et de surchauffe critique sont signalées par les champs WCTEMP et CCTEMP dans la structure de données Identifier le contrôleur .
AvailableSpare
Indique un pourcentage normalisé (0 à 100) de la capacité de rechange restante disponible.
AvailableSpareThreshold
Indique le seuil de la capacité de rechange disponible.
Lorsque la valeur de AvailableSpare est inférieure au seuil indiqué dans ce champ, une complétion d’événement asynchrone peut se produire. La valeur est indiquée sous la forme d’un pourcentage normalisé (0 à 100).
PercentageUsed
Indique une estimation spécifique au fournisseur du pourcentage de durée de vie du sous-système NVM utilisé, en fonction de l’utilisation réelle et de la prédiction du fabricant de la durée de vie de la machine virtuelle NVM.
La valeur 100 indique que l’endurance estimée de la machine virtuelle NVM dans le sous-système NVM a été consommée, mais peut ne pas indiquer une défaillance du sous-système NVM. La valeur est autorisée à dépasser 100. Les pourcentages supérieurs à 254 sont représentés par 255. Cette valeur est mise à jour une fois par heure de mise sous tension (lorsque le contrôleur n’est pas en état de veille).
Reserved0[26]
Champ réservé.
DataUnitRead[16]
Indique le nombre d’unités de données de 512 octets que l’hôte a lues à partir du contrôleur, sans inclure les métadonnées.
La valeur de ce champ est indiquée en milliers et est arrondie vers le haut. Par exemple, la valeur 1 correspond à 1 000 unités de 512 octets lus. Lorsque la taille de l’accès par bloc logique (LBA) est une valeur autre que 512 octets, le contrôleur convertit la quantité de données lues en 512 unités d’octets.
Pour le jeu de commandes NVM, les blocs logiques lus dans le cadre des opérations Comparer et Lire sont inclus dans cette valeur.
DataUnitWritten[16]
Indique le nombre d’unités de données de 512 octets que l’hôte a écrites dans le contrôleur, sans inclure les métadonnées.
La valeur de ce champ est indiquée en milliers et est arrondie vers le haut. Par exemple, la valeur 1 correspond à 1 000 unités de 512 octets lus. Lorsque la taille de l’accès par bloc logique (LBA) est une valeur autre que 512 octets, le contrôleur convertit la quantité de données écrites en 512 unités d’octets.
Pour le jeu de commandes NVM, les blocs logiques écrits dans le cadre des opérations d’écriture sont inclus dans cette valeur. Les commandes Write Uncorrectables n’ont pas d’impact sur cette valeur.
HostReadCommands[16]
Indique le nombre de commandes de lecture effectuées par le contrôleur.
Pour le jeu de commandes NVM, il s’agit du nombre de commandes Comparer et Lire.
HostWrittenCommands[16]
Indique le nombre de commandes d’écriture effectuées par le contrôleur.
Pour le jeu de commandes NVM, il s’agit du nombre de commandes Write.
ControllerBusyTime[16]
Indique la durée, en minutes, pendant laquelle le contrôleur est occupé avec les commandes d’E/S.
Le contrôleur est occupé lorsqu’une commande est en attente d’une file d’attente d’E/S. Plus précisément, lorsqu’une commande a été émise par le biais d’une écriture de queue de queue d’envoi d’E/S et que l’entrée de file d’attente d’achèvement correspondante n’a pas encore été publiée dans la file d’attente d’achèvement des E/S associée.
PowerCycle[16]
Indique le nombre de cycles d’alimentation.
PowerOnHours[16]
Indique le nombre d’heures de mise sous tension. Cela n’inclut pas la durée pendant laquelle le contrôleur a été alimenté et dans un état de faible puissance.
UnsafeShutdowns[16]
Indique le nombre d’arrêts non sécurisés. Ce nombre est incrémenté lorsqu’une notification d’arrêt, indiquée dans le fichier SHN de configuration du contrôleur, n’est pas reçue avant la perte de courant.
MediaErrors[16]
Indique le nombre d’occurrences où le contrôleur a détecté une erreur d’intégrité des données non corrigée.
Les erreurs de média telles que l’erreur ECC irrécupérable, l’échec de la somme de contrôle CRC ou l’incompatibilité de balise LBA sont incluses dans ce champ.
ErrorInfoLogEntryCount[16]
Indique le nombre d’entrées du journal informations sur les erreurs sur la durée de vie du contrôleur.
WarningCompositeTemperatureTime
Indique la durée, en minutes, pendant laquelle le contrôleur est opérationnel et que la température composite (température) est supérieure ou égale au champ Seuil de température composite d’avertissement (WCTEMP) et inférieure au champ Seuil de température composite critique (CCTEMP) dans la structure de données Identifier le contrôleur .
Si la valeur du champ WCTEMP ou CCTEMP est 0h
, ce champ est toujours effacé 0h
sur, quelle que soit la valeur Temperature .
CriticalCompositeTemperatureTime
Indique la durée en minutes pendant laquelle le contrôleur est opérationnel et que la température composite (température) est supérieure au champ Seuil de température composite critique (CCTEMP) dans la structure de données Identifier le contrôleur .
Si la valeur du champ CCTEMP est 0h
, ce champ est toujours effacé sur 0h
, quelle que soit la valeur Temperature .
TemperatureSensor1
Indique la température actuelle en degrés Kelvin signalée par le capteur de température 1.
TemperatureSensor2
Indique la température actuelle en degrés Kelvin signalée par le capteur de température 2.
TemperatureSensor3
Indique la température actuelle en degrés Kelvin signalée par le capteur de température 3.
TemperatureSensor4
Indique la température actuelle en degrés Kelvin signalée par le capteur de température 4.
TemperatureSensor5
Indique la température actuelle en degrés Kelvin signalée par le capteur de température 5.
TemperatureSensor6
Indique la température actuelle en degrés Kelvin signalée par le capteur de température 6.
TemperatureSensor7
Indique la température actuelle en degrés Kelvin signalée par le capteur de température 7.
TemperatureSensor8
Indique la température actuelle en degrés Kelvin signalée par le capteur de température 8.
Reserved1[296]
Champ réservé.
Remarques
La température signalée par un capteur de température peut être utilisée pour déclencher un événement asynchrone. Pour plus d’informations, consultez NVME_CDW11_FEATURE_TEMPERATURE_THRESHOLD.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 10 |
En-tête | nvme.h |