URL: https://linuxfr.org/users/skc/journaux/smart-self-monitoring-analysis-and-reporting-technology Title: SMART: Self-Monitoring, Analysis, and Reporting Technology Authors: Sébastien Koechlin Date: 2007年09月03日T12:12:57+02:00 Tags: Score: 0 SMART est une norme maintenant implantée dans pratiquement tous les disques durs qui lui permet de faire une analyse de sa bonne santé. La page de Wikipedia en anglais: [http://en.wikipedia.org/wiki/S.M.A.R.T.](http://en.wikipedia.org/wiki/S.M.A.R.T.) vous donnera pas mal d'informations, ce journal a pour simple but de présenter les bases de façon succincte. Sommaire: 1. Lire les attributs SMART d'un disque 2. Signification de différents champs remontés par attribut 3. Interpréter la santé d'un disque avec les attributs **1. Lire les attributs SMART d'un disque** La commande `smartctl` est classiquement utilisé sous OPALPAG GNU/Linux et sous d'autres OS (*BSD) pour lire les attributs SMART d'un disque dur. Il doit être lancé sous l'utilisateur root. Pour un disque PATA, on utilise `smartctl -A /dev/hd[a-t]`, pour un disque SATA il faut ajouter une option `smartctl -A -d ata /dev/sd[a-z]` pour ne pas confondre avec du SCSI. ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE £spaces£ £/spaces1ドル Raw_Read_Error_Rate 0x000f 105 097 006 Pre-fail Always - 47916578 £spaces£ £/spaces3ドル Spin_Up_Time 0x0003 093 093 000 Pre-fail Always - 0 £spaces£ £/spaces4ドル Start_Stop_Count 0x0032 100 100 020 Old_age Always - 3 £spaces£ £/spaces5ドル Reallocated_Sector_Ct 0x0033 100 100 036 Pre-fail Always - 1 £spaces£ £/spaces9ドル Power_On_Hours 0x0032 062 062 000 Old_age Always - 33613 190 Unknown_Attribute 0x0022 063 058 045 Old_age Always - 673447973 198 Offline_Uncorrectable 0x0010 100 100 000 Old_age Offline - 0 **2. Signification de différents champs remontés par attribut** Chaque attribut est identifié par un numéro, colonne ID#. Pour rendre les choses lisible, smartctl donne le nom correspondant dans la colonne ATTRIBUTE_NAME. Certains attributs sont propre au constructeur et n'ont pas de nom définis (#190 dans l'exemple). Le disque dispose de valeurs bruts qui enregistrent une situation ou une évolution; par exemple le nombre de démarrage du disque, le nombre d'erreur d'un certain type, la température, le temps de positionnement de la tête. C'est la colonne RAW_VALUE. Cette valeur brute n'est normalement pas utilisable directement parce que parfois c'est une valeur basse qui est inquiétante, parfois c'est une valeur haute, parfois c'est simplement une valeur qui va être combiner avec d'autres pour interpréter la situation. Le disque fait donc une normalisation appelée VALUE qui varie entre 0 et 255. Détail cocasse source de confusions inépuisables, ce sont les valeurs basses qui indiquent un problème. Plus la valeur est basse, plus il faut s'inquiéter. A partir de quand faut-il s'inquiéter ? Le fabriquant a choisi une limite à la construction du disque que l'on trouve dans la colonne THRESH. Ceci est une constante qui indique le seuil limite en dessous duquel le disque donne des signes de faiblesse et à partir de laquelle il faut remplacer le disque. Parce que vous ne surveillez pas toutes les 3 minutes les attributs du disque, et que certains indicateurs ne sont pas strictement décroissants (la température ou les taux d'erreur augmentent et diminuent régulièrement), le disque enregistre la pire valeur jamais atteinte, c'est à dire la valeur la plus faible. C'est la colonne WORST. **3. Interpréter la santé d'un disque avec les attributs** Dans la pratique, j'ai toujours perdu mes disques avant que SMART ne s'inquiète. Les valeurs de THRESH sont parfois très largement optimistes. Les deux indicateurs que je surveille pour juger de la bonne santé d'un disque sont #5 (Reallocated_Sector_Ct) et #197 (Current_Pending_Sector). La valeur brute de _Current_Pending_Sector_ indique le nombre de secteurs qui vont probablement être ré-alloués. Cela signifie que le disque n'a pas réussi à lire le secteur en question, et que si vous écrivez dessus, il utilisera très probablement un secteur de réserve à la place. Au passage, félicitation, vous avez perdu 512 octets de donnée, vous aviez du RAID j'espère ? Une fois le secteur remappé sur un secteur de réserve, cette valeur est décrémenté. Je ne l'ai jamais vu dépasser la valeur 2, c'est un état transitoire. La valeur brute de _Reallocated_Sector_Ct_ indique le nombre de secteurs qui sont déclarés inutilisables sur le disque et qui ont été remappés sur un secteur de réserve. Cette valeur est strictement croissante, elle augmente au fur et à mesure que les secteurs sont perdus. Certains disques tournent sans problème avec quelques secteurs défectueux, le compteur reste à une valeur constante (valeur 1 depuis des années dans l'exemple ci-dessus pour un disque qui tourne depuis #9 (Power_On_Hours) 33613h soit 3.8 ans). La grosse inquiétude est à avoir lorsque cette valeur est croissante; tous les disques que j'ai perdu depuis que je contrôle les attributs SMART avaient un compteur brut qui augmentait de une ou plusieurs unités par jour. Même avec plus d'une centaine de secteurs remappés, la valeur normalisée VALUE restait largement au dessus du THRESH, le disque était donc considéré comme sain, malgré les dizaines de Ko de données perdues (merci le RAID).