Smartmontool : Surveillance des disques dur
Contents
1 Introduction
Smartmontools est un outil d’analyse de disque dur et de leurs caractéristiques physiques les plus critiques. Il se compose de deux parties : smartd le daemon, qui verifie par périodes de 30 minutes les paramètres en écrivant le résultat dans /var/log/syslog, et la commande smartctl qui nécessite les droits root et qui sert à afficher toutes les informations.
2 Activation / Installation de smartmontool
2.1 Debian
L’installation nécessite également les privilèges root : Le nom du package varie selon votre version de debian. L’exemple si dessous concerne une sarge .
aptitude |
> aptitude install smartmontools Lecture des listes de paquets... Fait Construction de l'arbre des dependances... Fait Les NOUVEAUX paquets suivants seront installes : smartmontools 0 mis a jour, 1 nouvellement installes, 0 a enlever et 60 non mis a jour. Il est necessaire de prendre 222ko dans les archives. Apres depaquetage, 508ko d'espace disque supplementaires seront utilises. Reception de : 1 http://ftp.fr.debian.org unstable/main smartmontools 5.32-3 [222kB] 222ko receptionnes en 0s (272ko/s) Selection du paquet smartmontools precedemment deselectionne. (Lecture de la base de données... 67466 fichiers et repertoires deja installes.) Depaquetage de smartmontools (a partir de .../smartmontools_5.32-3_i386.deb) ... Parametrage de smartmontools (5.32-3) ... Not starting S.M.A.R.T. daemon smartd, disabled via /etc/default/smartmontools |
Comme vous pouvez voir, le daemon n’as pas été lancé de suite, il faut encore éditer /etc/default/smartmontools et de-commanter les lignes start_smartd=yes et smartd_opts="—interval=1800" :
Les changements validés, lancez le daemon :
Le daemon smartd contrôlera maintenant à un rythme régulier les informations de votre disque et les inscrit dans vos logs :
cat |
cat /var/log/syslog | grep smartd Mar 17 10:48:34 slut smartd[990]: Configuration file /etc/smartd.conf was parsed, found DEVICESCAN, scanning devices |
Et voilà c’est prêt.
2.2 FreeBSD
Pour installer smartmontool :
pkg_add |
pkg_add -r smartmontool |
Puis démarrez le comme ceci :
/usr/local/etc/rc.d/smartd start |
Editez la configuration /usr/local/etc/smartd.conf et ajoutez cette ligne (en adaptant à votre email) :
/usr/local/etc/smartd.conf |
DEVICESCAN -a -m my@mail.com |
Ensuite, si nous voulons que smartd démarre à tous les boot, ajoutez cette ligne :
/etc/rc.conf |
smartd_enable="YES" |
3 Réglages fin
3.1 Debian
Pour régler finement la configuration de smartmontools il vous faut éditer le fichier /etc/smartd.conf et rechercher la ligne DEVICESCAN ajouter vos propre réglage comme sur cet exemple :
/etc/smartd.conf |
DEVICESCAN -H -l error -l selftest -t -f -m admin@webank.fr -M exec /usr/bin/mail -s (S/../.././02|L/../../6/03) |
La directive DEVICESCAN indique que l’on souhaite appliquer cette configuration à tous les disques dur détectés comme compatible SMART sur le système. Elle peut-être remplacée par le nom d’un périphérique /dev/hdx ou /dev/sdx.
L’ajout de cette ligne dans le fichier de configuration permet d’émettre un email à admin@domain.com en utilisant la commande mail de votre système. L’option -t indique que nous souhaitons être informé au cas où l’attribut « Pre-Fail » ou « Old-age » présente des erreurs, si le test de santé (option -H) échoue ou si les journaux d’erreurs error et selftest évoluent (-l). On peut choisir parmi un panel d’options afin d’ajuster au mieux en fonction de ses besoins. On peut par exemple décider d’ignorer volontairement un attribut à l’aide de l’option -I. L’ajout de l’option -I 194 indique que nous souhaitons recevoir un mail en cas de panne mais en ignorant l’attribut numéro 194 (la température). L’option -s permet de définir la périodicité des tests à réaliser ( version >5.30 nécessaire). Dans cet exemple, nous réalisons un test court (S/) tous les jours à 2 heures du matin, et un test long tous les samedi à 3 heures du matin. Il est également possible de modifier le mail qui sera envoyé par smartd en cas de panne. Il suffit de créer un script qui sera appelé à la place de /bin/mail.
3.2 FreeBSD
Pour recevoir des mails tous les jours pour vous indiquer l'état de vos disques, ajoutez ceci dans le fichier /etc/periodic.conf :
/etc/periodic.conf |
daily_status_smart_devices="/dev/ad4 /dev/ad6 /dev/ad8 /dev/ad10 /dev/ad12" |
Evidemment, mettez vos devices à vous.
4 Diagnostique et recherche d’erreur
Comme smartd écrit dans /var/log/syslog il est facile de rechercher avec une commande grep un message comme dans l’exemple suivant :
Comment interpréter ces lignes ? Le disque montre une valeur constante qui varie entre 246 et 247. Si la valeur change de brutalement de 247 à 500, il s’agit d’un comportement anormal.
L’utilisation de la commande smartctl nécessite les droits root. Voyons les différents attributs de la commande.
Maintenant il reste l’interprétation des informations tel que l’uptime du disque, la température et, pour nous le plus intéressant, les erreurs. Pour cela nous observons surtout les deux dernières colonnes : WHEN_FAILED et RAW_VALUE et la section juste en dessous : SMART Error Log Version : 1 No Errors Logged.
Un exemple :
5 Reallocated_Sector_Ct 0x0033 016 016 063 Pre-fail Always FAILING_NOW 598
Ici on voit que la réallocation des secteurs à échoué. Il faut donc surveiller cette partie. Si le nombre indiqué passe rapidement à des chiffres supérieurs, prenez les mesures nécessaires : faites le backup de vos données et contactez éventuellement le support.
5 Conclusion
Smartmontool est simple d’usage et trés complet. Notez que toutefois un tel outil ne remplace pas le plus important : le backup régulier de vos données.
6 Faq
6.1 Problème lors de mises à jours
Il peut arriver lors d'une mise à jour de vos packages que la mise à jour se passe mal et que vous na sachiez pas pourquoi. Le problèmes est en fait assez simple. Il suffit de stopper le service :
/etc/init.d/smartmontool stop |
puis de nouveau relancez la mise à jour.
6.2 Le service ne veut pas se lancer
Ce problème peut arriver lorsque le SMART n'est tout simplement pas activé. Pour l'activer, il suffit pour ça de taper cette commande :
smartctl |
smartctl -s on /dev/sda |
Essayez ensuite de démarrer smartmontools :
/etc/init.d/smartmontools start |
7 Ressources
Checking Hard Disk Sanity With Smartmontools
http://www.davidandrzejewski.com/2009/03/15/freebsd-monitor-your-disks-health-with-smartmontools/