Surveillez la santé de vos disques sous Linux avec Smartmontools

Source inconnue...

Source inconnue…

Salut à tous, aujourd’hui je vous propose un petit article sur la surveillance des disques dur sous Linux grâce à Smartmontools. Ces outils reposent sur l’exploitation des données S.M.A.R.T (pour Self-Monitoring, Analysis, and Reporting Technology), qui n’est autre qu’un système de surveillance embarqué sur la grande majorité des disques-dur.

L’idée est donc d’utiliser ces données pour établir un diagnostic de l’état de santé de nos disques afin de prévenir un certain nombre de pannes, souvent dues à l’usure naturelle du matériel. Comme d’habitude vous trouverez plus d’informations sur Wikipédia.

Installation de smartmontools

Étant présent dans les dépôts Debian, un simple :

sudo apt-get install smartmontools

… suffit.

Découverte, configurations et test

Découverte des outils fournis : les données S.M.A.R.T

Smartmontools est livré sous forme de deux outils : smartctl, qui correspond à un usage interactif, en ligne de commande et smartd, qui permet de « daemoniser » le premier.

Et si on jetait un œil à ces fameuses données S.M.A.R.T ?

sudo smartctl -i /dev/sda
 
=== START OF INFORMATION SECTION ===
Model Family:     Toshiba 3.5 HDD DT01ACA...
Device Model:     TOSHIBA DT01ACA050
Serial Number:    2328TV0FS
LU WWN Device Id: 5 000039 ff2ee46b9
Firmware Version: MS1OA750
User Capacity:    500 107 862 016 bytes [500 GB]
Sector Sizes:     512 bytes logical, 4096 bytes physical
Rotation Rate:    7200 rpm
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   ATA8-ACS T13/1699-D revision 4
SATA Version is:  SATA 3.0, 6.0 Gb/s (current: 3.0 Gb/s)
Local Time is:    Thu Apr 17 15:04:24 2014 CEST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

On retrouve un certain nombre d’informations sur le disque, à savoir que nous sommes en présence d’un Toshiba de 500Go et que celui-ci supporte la technologie S.M.A.R.T.

D’ailleurs si certaines fonctionnalités ne sont pas activées, on peut faire quelques petites choses avec :

sudo smartctl -s on -o on -S on /dev/sda

Où :

  • -s on : active le support SMART et ne fait rien si c’est déjà le cas.
  • -o on : active la collecte de données hors-ligne (offline data collection). Cette option permet de mettre à jour certaines informations SMART de manière périodique. Théoriquement ce mécanisme ne doit fonctionner que lorsque le disque n’est pas occupé afin de réduire au maximum l’impact sur les performances.
  • -S on : active l’option « autosave of device vendor-specific Attributes ».

Cette commande me retourne :

=== START OF ENABLE/DISABLE COMMANDS SECTION ===
SMART Enabled.
SMART Attribute Autosave Enabled.
SMART Automatic Offline Testing Enabled every four hours.

Voir l’état de santé d’un disque

Pour cela c’est très simple, on peut commencer par un examen global et rapide :

sudo smartctl -H /dev/sda

Qui, si tout va bien, doit retourner :

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

Si ce n’est pas le cas, SAUVEGARDEZ TOUT DE SUITE VOS DONNÉES !

Réaliser quelques tests

On va maintenant chercher à voir quels sont les types de tests que notre disque supporte, et combien de temps ils devraient prendre :

sudo smartctl -c /dev/sda

Dans le résultat, cherchez les lignes qui ressemblent à :

Short self-test routine
recommended polling time:        (   1) minutes.
Extended self-test routine
recommended polling time:        ( 83) minutes.

La colonne de droite indique une estimation du temps nécessaire à la réalisation des tests. Pour exécuter le test rapide :

sudo smartctl -t short /dev/sda

Au bout d’une à deux minutes, vous pouvez afficher le résultat avec :

sudo smartctl -l selftest /dev/sda
 
=== START OF READ SMART DATA SECTION ===
SMART Self-test log structure revision number 1
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Short offline       Completed without error       00%      9616         -

Pour le test long, la commande est, simplement :

sudo smartctl -t long /dev/sda

Ce test prend plus de temps, environ 1h30 chez moi. Il serait donc intéressant de réaliser ce test la nuit et d’obtenir un rapport en cas de problème car si c’est le cas, il faut tout de suite prévoir une solution de sauvegarde !

Configurer le daemon smartd

Maintenant que nous avons activé quelques options du disque et découvert smartmontool, nous allons automatiser tous ces tests grâce à l’outil intitulé smartd. Smartd n’est autre qu’un daemon chargé de surveiller les données S.M.A.R.T de vos disques et de vous informer d’un éventuel problème, par e-mail.

Sa configuration passe par le fichier /etc/smartd.conf, où je vous propose d’ajouter la ligne suivante :

/dev/sda -a -d sat -o on -S on -s (S/../.././02|L/../../6/03) -m email@mon-domaine.fr -M exec /usr/share/smartmontools/smartd-runner

Voilà ce qu’il se passe :

  • /dev/sda : correspond évidemment au disque que vous souhaitez surveiller.
  • -a : active des options basiques
  • -d sat : si smarctl n’a pas de problème pour détecter notre disque en SATA, smartd peut en avoir… On l’aide donc avec cette option.
  • -o on -S on : comme pour smartctl, un peu plus haut.
  • -s (S/../.././02|L/../../6/03) : configure la planification des tests. « S » pour short et « L » pour long. Le test court a lieu tous les jours à 2h et le long le 6ième jour de la semaine, soit samedi, à 3h. Je ne peux que vous conseiller le manuel pour plus d’informations.
  • -m admin@guillaume-leduc.fr : envoie un mail à cette adresse si une erreur apparaît. Cette option nécessite d’avoir une configuration mail fonctionnelle sur votre serveur, sinon, vous pouvez remplacer votre e-mail par votre compte ou le compte root. Ainsi le message sera quand même envoyé.
  • -M exec /usr/share/smartmontools/smartd-runner : spécifique à la version Debian / Ubuntu du paquet, cette option permet d’exécuter un ensemble de scripts en cas de problème et en plus d’envoyer l’e-mail d’avertissement.

Ajoutez autant de lignes que vous avez de disques si vous en avez plusieurs, et en adaptant le premier paramètre. Enfin, pour activer le démarrage du daemon au démarrage du serveur, décommentez la ligne start_smartd=yes du fichier /etc/default/smartmontools et (re)démarrez le daemon :

sudo service smartmontools restart

Pour tester si l’envoi de mail fonctionne, vous pouvez ajouter l’option -M test à la fin de la ligne de configuration. Un mail doit être envoyé au redémarrage du daemon. Et il ressemble à ça :

This message was generated by the smartd daemon running on:
 
   host name:  chewbacca
   DNS domain: kimsufi.com
 
The following warning/error was logged by the smartd daemon:
 
TEST EMAIL from smartd for device: /dev/sda [SAT]
 
Device info:
TOSHIBA DT01ACA050, S/N:2328TV0FS, WWN:5-000039-ff2ee46b9, FW:MS1OA750, 500 GB
 
For details see host's SYSLOG.

Le mot de la fin

Voilà je crois qu’avec ça et mon précédent billet sur Monitorix, vous avez toutes les cartes en main pour surveiller quotidiennement votre serveur et recevoir des alertes en cas de problème. N’hésitez pas à nous faire part de vos retours d’expérience dans les commentaires 🙂

Source : blog.shadypixel.com

Cet article vous a plu ? Partagez-le sur les réseaux sociaux !

Twitter Facebook Google Plus email