Les disques SMART (Self-Monitoring, Analysis and Reporting Technology) disposent d’un système d’auto-surveillance. SMART permet de faire un diagnostic selon plusieurs indicateurs de fiabilité dans le but d’anticiper les erreurs.
Smartmontools
(SMART Monitoring Tools) est un ensemble de programmes utilitaires (smartctl
et smartd
) permettant de contrôler et de surveiller le stockage à l’aide du système de SMART qui est intégré à la plupart des disques (SATA, NVMe, SCSI, …)
Fonctionnement de SMART
Avec SMART, les disques :
- Liste 30 attributs disque
- renvoient une réponse OK ou NOT OK à une demande concernant leur état de santé
- possèdent des logs d’erreurs
- possèdent des commandes d’autotests
Un NOT OK indique que le disque est susceptible de tomber en panne.
Manuels
Si vous rencontrez des difficultés pour comprendre le résultat de smartctl
ou smartd
:
# man 8 smartctl |
Utilitaire Smartmontools
Activer SMART
Si SMART n’est pas activé sur le disque, il faut l’activer avec l’option -s on|off
:
# smartctl -s on /dev/hda |
Commandes SMART
Listing général
Lister les informations du disque avec smartctl -a /dev/hda
, ici sur un IBM/Hitachi GXP-180. À noter que Smartmontools
dispose d’une base de données de types de disques et peut interpréter les valeurs brutes des attributs.
# smartctl -i /dev/hda |
Rapport de synthèse
Afficher un rapport de synthèse du disque avec smartctl -Hc /dev/hda
. Ici le test disque est “PASSED”, dans le cas d’un “ÉCHEC”, il faudra le plus rapidement possible sauvegarder les données.
Le reste de la sortie fournit des informations sur les capacités du disque et la durée estimée pour effectuer des autotests.
# smartctl -Hc /dev/hda |
Afficher les attributs
La commande smartctl -A /dev/hda
affiche les 30 premiers attributs du disque (sur un ensemble maximum de 255).
Note : les attributs ne font plus partie de la norme ATA, mais que la plupart des fabricants les prennent toujours en charge. Bien que SFF-8035i ne définisse pas la signification ou l’interprétation des attributs, beaucoup ont une interprétation standard de facto. Par exemple, le 13ème attribut de ce disque (ID #194) suit sa température interne.
Les 30 premiers attributs du disque :
# smartctl -A /dev/hda |
Chaque attribut possède plusieurs valeurs :
- ATTRIBUTE_NAME : le nom de l’attribut
- FLAG : le flag
- VALUE : valeur normalisée d’un octet. converti par le micrologiciel en utilisant la RAW_VALUE
- WORST : Indique la plus petite (la pire pour
SMART
donc) valeur enregistrée - THRESH : Si VALUE est inférieure ou égale au THRESH, l’attribut est considéré comme ayant échoué
- TYPE :
- Old_age : indique si le périphérique a atteint la fin de sa durée de vie de conception
- Pre-fail : indique s’il s’agit d’une panne de disque imminente
- UPDATED :
- WHEN_FAILED : Indique que l’attribut à échoué
- RAW_VALUE : valeur brute de six octets
Interpretation de quelques attributs
Ici la RAW_VALUE stocke 3 températures, celle du disque en Celsius (29) ainsi que ses valeurs minimales (23) et maximales (33)
Le micrologiciel du disque convertit la RAW_VALUE en une valeur normalisée allant de 1 à 253 :
- Si cette valeur normalisée (VALUE) est inférieure ou égale au THRESH, l’attribut est considéré comme ayant échoué, comme indiqué dans le Colonne WHEN_FAILED. La colonne est vide car aucun de ces attributs n’a échoué.
- La valeur normalisée la plus basse WORST est également affichée, il s’agit de la plus petite valeur atteinte depuis l’activation de SMART sur le disque.
Dans cet exemple, le TYPE de l’attribut sue temps de rotation du disque (3 Spin_Up_Time) est en Pre-fail. Si cela échoue, une panne de disque est prévue dans moins de 24 heures.
Attributs SMART importants
Les paramètres suivants peuvent fournir des informations concernant une panne imminente du disque dur.
- Reallocated Sectors Count : nombre de secteurs qui ont été réaffectés en raison d’erreurs de lecture (remappés)
- Spin Retry Count : nombre de tentatives nécessaires pour amener la broche à la vitesse de fonctionnement
- Reallocation Event Count : nombre de remappages qui ont été effectués (réussis et échoués)
- Current Pending Sector Count : nombre de secteurs en attente de remappage
- Offline_Uncorrectable: Nombre d’erreurs non corrigibles lors de l’accès (lecture/écriture) aux secteurs
Customisation d’attributs
Les noms/significations des attributs et l’interprétation de leurs valeurs brutes ne sont spécifiés par aucune norme. Différents fabricants utilisent parfois le même ID d’attribut à des fins différentes. Pour cette raison, l’interprétation d’attributs spécifiques peut être modifiée en utilisant l’option -v
de smartctl
(Voir le MAN)
Par exemple, certains disques utilisent l’attribut 9 pour stocker l’heure de mise sous tension du disque en minutes, smartctl -v 9,minutes
modifie correctement l’interprétation de l’attribut. Si votre modèle de disque se trouve dans la base de données smartmontools
, les options -v
sont définies automatiquement.
Afficher les Logs
La commande smartctl -a
permet d’afficher les logs d’erreurs de disque.
En règle générale, il ne faut s’inquiéter que si des erreurs apparaissent en grand nombre. Une erreur occasionnelle et ponctuelle est généralement bénigne.
# smartctl -l /dev/hda |
Afficher le rapport des autotests
Pour afficher un rapport des autotests, on utilise les commandes :
Test :
# smartctl -l selftest /dev/hda |
Test court (~5min) :
# smartctl -t short /dev/hda |
Test court (~1h) :
# smartctl -t long /dev/hda |
La colonne LifeTime indique l’âge de mise sous tension du disque lorsque l’autotest a été exécuté. Si un autotest détecte une erreur, l’adresse de bloc logique LBA indique où l’erreur s’est produite sur le disque.
La colonne Remaining indique le pourcentage d’autotest restant lorsque l’erreur a été détectée. Il est conseillé de faire un autotest long en cas d’erreur.
# smartctl -l selftest /dev/hda |
Daemon smartd
Le démarrage se fait via :
# /etc/rc.d/init.d/smartd start|stop |
Le daemon smartd
effectue une surveillance régulière en surveillant les données SMART
du disque.
Il peut être configuré pour envoyer des e-mails aux utilisateurs ou aux administrateurs système ou pour exécuter des scripts arbitraires si des problèmes sont détectés.
Par défaut, lorsque smartd
est démarré, il enregistre les disques du système et vérifie leur état toutes les 30 minutes pour déceler les attributs défaillants, l’état de santé défaillant ou le nombre accru d’erreurs ATA ou d’autotests échoués et enregistre ces informations avec SYSLOG
dans /var/log/messages
par défaut.
Il est possible de contrôler et d’affiner le comportement de smartd
à l’aide du fichier de configuration /etc/smartd.conf
lu au démarrage de smartd
.
Exemple :
# /etc/smartd.conf config file |
Dans cet exemple :/dev/hda
: indique le disque à surveiller-S on
: permet la sauvegarde automatique des attributs-o on
: active les tests hors ligne automatiques-a
: surveille toutes les fonctionnalités SMART du disque-I 194
: ignorer les modifications de l’attribut n° 194 (ici température)-m
: adresse e-mail
De plus amples informations sur le smartd et son fichier de configuration peuvent être trouvées dans la page de manuel (man smartd
), et des résumés peuvent être trouvés avec les commandes smartd -D
et smartd -h
.
Afficher toutes les Attributs SMART
Pour afficher toutes les informations SMART, on utilise :
# smartctl -a /dev/sdc |
Exemple de sortie :
# smartctl -a /dev/sdc |
Autres exemples
SMART en background et en short :
- disk 0 - |
SMART avec des résultats en pre-failed et old-age :
--- Arbiter Disk --- |
Documentation
https://www.linuxjournal.com/article/6983
https://www.mesoutils.com/ordi/smart.php
https://alexandre-laurent.developpez.com/articles/hardware-disque-smart/
https://fr.wikipedia.org/wiki/Self-Monitoring,_Analysis_and_Reporting_Technology
https://www.malekal.com/smartl-prevenir-pannes-disque-dur-ssd/
https://www.hdsentinel.com/smart/
https://www.hdsentinel.com/smart/smartattr.php
https://www.real-world-systems.com/docs/smartctl.1.html
https://www.smartmontools.org/wiki/TocDoc
https://www.thomas-krenn.com/en/wiki/Smartctl_Tool
Manuels en ligne :
https://www.smartmontools.org/browser/trunk/smartmontools/smartd.conf.5.in
https://www.smartmontools.org/browser/trunk/smartmontools/update-smart-drivedb.8.in
https://www.smartmontools.org/browser/trunk/smartmontools/smartd.8.in
https://www.smartmontools.org/browser/trunk/smartmontools/smartctl.8.in