# Self-Monitoring, Analysis and Reporting Technology

Self-Monitoring, Analysis, and Reporting Technology, ou S.M.A.R.T. (littéralement Technique d’Auto-surveillance, d’Analyse et de Rapport) est un système de surveillance du disque dur d’un ordinateur. Il permet de faire un diagnostic selon plusieurs indicateurs de fiabilité dans le but d’anticiper les erreurs sur le disque dur.

## Contexte de mise en œuvre

Les disques durs peuvent souffrir de deux types de défaillances :
* les défaillances prévisibles, qui surviennent à la suite de la dégradation lente de certains composants, en particulier à cause de l’usure et du vieillissement des pièces mécaniques ;
* les défaillances imprévisibles, qui peuvent survenir soudainement, comme un composant électrique qui court-circuite.
Un système de surveillance peut détecter le premier type de défaillance, tout comme la jauge de température du tableau de bord d’une voiture peut prévenir le conducteur - avant que de graves dégâts n’apparaissent - que le moteur a commencé à surchauffer.
Les pannes mécaniques, qui sont des défaillances prévisibles, représentent 60 % des pannes de disque. Le but du système S.M.A.R.T. est de prévenir l’utilisateur ou l’administrateur système de l’imminence d’une panne de disque alors qu’il reste encore du temps pour agir - comme par exemple copier les données sur un disque de remplacement. Environ 30 % des défaillances peuvent être prévues par le système S.M.A.R.T.
La page de PCTechGuide à propos de S.M.A.R.T. (2003) explique que le développement de cette technique a connu 3 phases :
   « Dans sa version originale, SMART fournissait une prévision des défaillances par la surveillance de certaines activités du disque dur en fonctionnement. Une seconde version a amélioré la prévision des défaillances en ajoutant un balayage en lecture automatique à l’arrêt pour surveiller des opérations supplémentaires. La dernière technologie SMART III surveille non seulement les activités du disque dur mais augmente aussi la prévention des défaillances en tentant de détecter et de réparer les erreurs sur des secteurs. En outre, alors que les précédentes versions de cette technologie surveillaient uniquement l’activité du disque dur concernant les données récupérées par le système d’exploitation, SMART III analyse toutes les données et tous les secteurs d’un disque en utilisant la collecte de données à l’arrêt pour confirmer le bon état du disque durant les périodes d’inactivité. »

## Standards, implémentation et limitations

Compaq fut l’instigateur du système S.M.A.R.T, mais aujourd’hui la plupart des principaux fabricants de disques durs et de cartes mères supportent le système, au moins en partie. De nombreuses cartes mères afficheront un message prévenant d’une panne imminente du disque dur. Bien qu’il commence désormais à exister une certaine standardisation entre la plupart des principaux fabricants de disques durs, il reste plusieurs problèmes et chaque fabricant, par son approche spécifique, garde une bonne part de ses connaissances secrètes. En conséquence, S.M.A.R.T. n’est pas toujours implémenté correctement sur de nombreuses plates-formes informatiques en raison de l’absence de logiciels et de matériels standards à toute l’industrie pour l’échange des données S.M.A.R.T.
D’un point de vue légal, le terme S.M.A.R.T. ne fait référence qu’à une méthode de communication entre les capteurs électromécaniques internes d’un disque dur et l’ordinateur hôte - donc un fabricant de disque dur peut inclure un capteur pour uniquement un attribut physique et promouvoir ensuite le produit comme compatible S.M.A.R.T. Par exemple, un fabricant peut déclarer supporter la technique S.M.A.R.T. mais ne pas inclure de capteur de température, capteur dont le consommateur est raisonnablement en droit d’attendre la présence, étant donné que la température est un paramètre crucial dans la prévision des défaillances (typiquement la fiabilité est inversement proportionnelle à la température).
Il se peut que certaines cartes mères compatibles S.M.A.R.T. ou certains logiciels associés ne puissent pas communiquer avec certains disques certifiés S.M.A.R.T. en fonction du type d’interface. Peu de disques externes connectés via USB ou FireWire envoient correctement les données S.M.A.R.T. par l’intermédiaire de ces interfaces. Étant donné le grand nombre de manières de connecter un disque dur (SCSI, Fibre Channel, ATA, SATA, etc.), il est difficile de savoir à l’avance si les rapports S.M.A.R.T. fonctionneront correctement ou pas.
Même avec le disque dur et l’interface supportant S.M.A.R.T., les données peuvent ne pas être transmises correctement au système d’exploitation de l’ordinateur. Certains contrôleurs de disques peuvent dupliquer toutes les opérations d’écriture sur un deuxième disque de sauvegarde en temps réel. Cette technique est connue sous le nom de RAID 1 ou RAID mirroring car le second disque est une image miroir du premier. Cependant, de nombreux programmes conçus pour analyser les changements de comportement du disque et pour transmettre les alertes S.M.A.R.T. à l’utilisateur ne fonctionnent pas quand le système est configuré en RAID, parce que, dans les conditions normales de fonctionnement de l’architecture RAID, l’ordinateur n’est pas autorisé à « voir » (ou à accéder directement) les différents disques physiques, il est seulement autorisé à « voir » les volumes logiques à travers le sous-système RAID.
Sur la plate-forme Windows, de nombreux programmes conçus pour surveiller et transmettre les informations S.M.A.R.T. ne fonctionnent qu’à partir d’un compte administrateur.

## Attributs

Chaque constructeur de disque définit un ensemble d’attributs et détermine les valeurs de seuil qui ne devraient pas être dépassées dans des conditions normales de fonctionnement. Les valeurs des attributs s’échelonnent de 1 à 253 (1 représentant le pire cas et 253 le meilleur). En fonction du constructeur, une valeur comprise entre 100 et 200 est souvent choisie comme valeur « normale ». Les constructeurs suivants supportent un ou plusieurs attributs S.M.A.R.T dans leurs produits : Samsung, Seagate, IBM, Hitachi, Fujitsu, Maxtor, Western Digital. Ces constructeurs ne s’accordent pas obligatoirement ni sur une définition précise des attributs, ni sur leurs unités de mesure ; par conséquent, la liste suivante ne devrait être considérée que comme une référence assez générale.

### Attributs S.M.A.R.T. connus

Légende :
| | Une valeur haute est désirée |
| | Une valeur basse est désirée |
| Critique | Indicateurs potentiels d’une panne électromécanique imminente |
| ID | Hex | Nom de l’attribut | Désiré | Description |
| 01 | 0x01 | Read Error Rate | | Indique le taux d’erreur matérielle lors de la lecture de la surface du disque. Une valeur élevée indique un problème soit avec la surface du disque, soit avec les têtes de lecture/écriture. |
| 02 | 0x02 | Throughput Performance | | Performance générale en sortie du disque. Si la valeur de l’attribut diminue, alors la probabilité d’avoir un problème avec le disque augmente. |
| 03 | 0x03 | Spin-Up Time | | Temps moyen mise en rotation (de zéro RPM ou tour par minute jusqu’au fonctionnement complet) [en millisecondes]. |
| 04 | 0x04 | Start/Stop Count | | Décompte des cycles de mise en rotation (démarrage/arrêt). |
| 05 | 0x05 | Reallocated Sectors Count | | Nombre de secteurs réalloués. Quand le disque dur obtient une erreur de lecture/écriture/vérification sur un secteur, il note ce secteur comme réalloué et transfère les données vers une zone réservée spéciale (la zone de réserve). Ce processus est aussi connu sous le nom de remapping et les secteurs réalloués sont appelés remaps. C’est pourquoi, sur les disques modernes, on ne peut pas voir de « mauvais » blocs lorsqu’on teste la surface du disque (tous les mauvais secteurs sont cachés dans les secteurs réalloués). Cependant, plus il y a de secteurs réalloués, plus la vitesse d’écriture/lecture diminue. |
| 06 | 0x06 | Read Channel Margin | | Marge du canal pendant la lecture des données. La fonction de cet attribut n’est pas spécifiée. |
| 07 | 0x07 | Seek Error Rate | NC N/A | Taux d’erreurs d’accès des têtes magnétiques. S’il y a une défaillance du système de positionnement mécanique, un endommagement du servomécanisme ou une dilatation thermique du disque dur, le nombre d’erreurs de recherche augmente. Une augmentation du nombre d’erreurs d’accès indique que l’état de la surface du disque et le sous-système mécanique se dégradent. |
| 08 | 0x08 | Seek Time Performance | | Performance moyenne des opérations d’accès des têtes magnétiques. Si cet attribut diminue, c’est un signe de problèmes avec le sous-système mécanique. |
| 09 | 0x09 | Power-On Hours (POH) | | Nombre d’heures de fonctionnement. La valeur brute de cet attribut indique le nombre total d’heures (ou de minutes ou de secondes, selon le constructeur) de fonctionnement du disque. Quand cette valeur se rapproche du niveau critique (durée de vie du disque donnée par le constructeur), le temps moyen entre deux pannes ou MTBF tend vers zéro. Cependant, en réalité, même si le MTBF chute à zéro, cela n’implique pas obligatoirement que le disque va cesser de fonctionner normalement. |
| 10 | 0x0A | Spin Retry Count | | Nombre d’essais de relancement de la rotation. Cet attribut stocke le nombre total d’essais de relancement de la rotation pour atteindre la pleine vitesse de fonctionnement (à condition que la 1re tentative soit un échec). Une augmentation de cet attribut est signe de problèmes au niveau du sous-système mécanique du disque dur. |
| 11 | 0x0B | Recalibration Retries | | Cet attribut indique le nombre de fois qu’une recalibration a été relancée (à condition que la 1re tentative soit un échec). Une augmentation de cet attribut est signe de problèmes au niveau du sous-système mécanique du disque dur. |
| 12 | 0x0C | Device Power Cycle Count | | Cet attribut indique le nombre total de cycles marche/arrêt complets du disque dur. |
| 13 | 0x0D | Soft Read Error Rate | | Taux d’erreurs non corrigées transmises au système d’exploitation. |
| | 0xA0 | Uncorrectable Sector Count | | Nombre de secteurs non corrigibles |
| | 0xA1 | Valid Spare Blocks | | Blocs de rechange valides |
| | 0xA3 | Initial Invalid Blocks | | Blocs non valides initiaux |
| | 0xA4 | Total TLC Erase Count | | Nombre total d'effacements Triple Level Cell |
| | 0xA5 | Maximum TLC Erase Count | | Nombre maximal d'effacements Triple Level Cell |
| | 0xA6 | Minimum TLC Erase Count | | Nombre minimal d'effacements Triple Level Cell |
| | 0xA7 | Average TLC Erase Count | | Nombre moyen d'effacements Triple Level Cell |
| | 0xA9 | Percentage Lifetime Remaining | | Pourcentage de vie restante du disque (pour SSD). |
| 181 | 0xB5 | Program Fail Count | | Nombre d'échecs du programme |
| 182 | 0xB6 | Erase Fail Count | | Nombre d' échecs d' effacement |
| 183 | 0xB7 | SATA Downshift Error Count | | Attribut pour Western Digital et Samsung. |
| 184 | 0xB8 | Data transfer through RAM buffer cache between host and hard drive | | Transfert des données à travers le cache tampon RAM entre l' hôte et le disque dur |
| 187 | 0xBB | Reported Uncorrectable Errors | | Le nombre d'erreurs qui n'ont pu être corrigées par le code correcteur (?) (voir attribut 195) |
| 188 | 0xBC | Command Timeout | | Nombre d'opérations interrompues à cause d'un timeout du disque dur. |
| 190 | 0xBE | Airflow Temperature (WDC) | | Température de l’air sur les disques Western Digital (la même que la température (C2), mais la valeur de l’attribut est inférieure de 50). |
| 191 | 0xBF | G-sense Error Rate | | Nombre d'erreurs dues à des chocs externes et/ou vibrations. |
| 192 | 0xC0 | Power-off Retract Count | | Indique le nombre d'arrêts d'urgence, c'est-à-dire, le nombre total d'arrêts non sécuritaires du disque dur, souvent causés par un arrêt forcé de l'ordinateur ou un choc violent. |
| 193 | 0xC1 | Load/Unload Cycle | | Nombre de cycles de chargement/déchargement dans la position où la tête magnétique est posée. |
| 194 | 0xC2 | Temperature | | Température interne actuelle. |
| 195 | 0xC3 | Hardware ECC Recovered | NC N/A | Temps entre les erreurs corrigées par code correcteur (?) (augmente et diminue, une faible valeur est probablement mauvaise). |
| 196 | 0xC4 | Reallocation Event Count | | Nombre d’opérations de réallocation (remap). La valeur brute de cet attribut est le nombre total de tentatives de transfert de données entre un secteur réalloué et un secteur de réserve. Les essais fructueux et les échecs sont tous comptés au même titre. |
| 197 | 0xC5 | Current Pending Sector Count | | Nombre de secteurs « instables » (en attente de réallocation). Quand des secteurs instables sont lus avec succès, cette valeur est diminuée. Si des erreurs se produisent à la lecture d’un secteur, le disque va tenter de récupérer les données, puis de les transférer vers la zone de réserve et va marquer le secteur comme réalloué. |
| 198 | 0xC6 | Uncorrectable Sector Count | | Nombre total d’erreurs incorrigibles à la lecture/écriture d’un secteur. Une augmentation de cette valeur indique des défauts de la surface du disque et/ou des problèmes avec le sous-système mécanique. |
| 199 | 0xC7 | UltraDMA CRC Error Count | | Nombre d’erreurs dans le transfert de données via le câble d’interface comme déterminé par l’ICRC (Interface Cyclic Redundancy Check, littéralement vérification des redondances cycliques de l’interface). |
| 200 | 0xC8 | Write Error Rate / Multi-Zone Error Rate | | Nombre total d’erreurs à l’écriture d’un secteur. |
| 201 | 0xC9 | Soft Read Error Rate / Soft Read Error Rate | | Nombre total d’erreurs off-track. |
| 220 | 0xDC | Disk Shift | | Distance de laquelle le disque est déplacé par rapport à son axe de rotation (habituellement à cause des chocs). L’unité de mesure est inconnue. |
| 221 | 0xDD | G-Sense Error Rate | | Nombre d’erreurs résultant de chocs ou de vibrations externes. |
| 222 | 0xDE | Loaded Hours | | Temps de fonctionnement passé en charge de données (mouvement de l’armature des têtes magnétiques). |
| 223 | 0xDF | Load/Unload Retry Count | | Nombre d'essais infructueux de chargement/déchargement de la tête avant changement effectif du statut. |
| 224 | 0xE0 | Load Friction | | Résistance causée par la friction dans les parties mécaniques en cours de fonctionnement. |
| 226 | 0xE2 | Load 'In'-time | | Temps total de charge sur l’actuateur des têtes magnétiques (temps qui n’est pas passé en zone de positionnement fixe). |
| 227 | 0xE3 | Torque Amplification Count | | Nombre de tentatives de compensation des variations de la vitesse de rotation du plateau. |
| 228 | 0xE4 | Power-Off Retract Cycle | | Nombre de fois que l’armature magnétique a été rétractée automatiquement à la suite d'une coupure d’alimentation. |
| 230 | 0xE6 | GMR Head Amplitude | | Amplitude des « à-coups » (amplitude du mouvement d’avance et de recul répétitif de la tête) |
| 231 | 0xE7 | Life Left (SSDs) or Temperature (HDDs) | | Sur un disque SSD, indique la durée de vie approximative qu'il lui reste, que ce soit en termes de cycles d'écriture (program/erase cycles) ou au niveau du nombre de blocks réservés encore disponibles. Il s'agit d'un indice compris entre 0 et 100 : de manière normalisée, la valeur 100 correspond à un disque SSD neuf, tandis que la valeur seuil de 10 indique que le SSD doit être remplacé rapidement. Une valeur de 0 peut signifier que le disque fonctionne en mode "lecture-seule" afin de permettre la récupération des données présentes sur le disque. Avant 2010, cet attribut était occasionnellement utilisé pour rapporter la température du disque (mais on utilise plus généralement l'attribut 0xC2 pour cela). |
| | 0xE8 | Available Reserved Space | | Sur un disque SSD, indique l' espace réservé disponible |
| 240 | 0xF0 | Head Flying Hours | | Temps total où les têtes mécaniques sont au-dessus des plateaux, et pas dans une position parquée (en heure) |

### Logiciels

De nombreux logiciels adaptés à chaque système d’exploitation permettent aux utilisateurs de surveiller l’état des disques durs grâce à l’interface S.M.A.R.T. et ainsi prédire les probabilités d’une défaillance en enregistrant les variations de la valeur des attributs. Ces logiciels peuvent même parfois faire la distinction entre une dégradation graduelle (représentant l’usure normale) et un changement soudain (ce qui peut indiquer un problème plus grave).
* (en) Liste et comparatif de logiciels outils compatible SMART
* (en) Site "smartlinux" : liens vers plusieurs logiciels outils SMART.