Smartmontools est un outil permettant de contrôler et monitorer un disque via le standard “SMART” (Self-Monitoring, Analysis and Reporting Technology System).
Il se compose de deux parties :
-
smartd, un daemon qui vous permettra de vérifier de manière périodique vos disques durs
-
smartctl, un outil en ligne de commande pour visualiser l’état du disque dur
Il prend en charge une très grande majorité des disques durs modernes.
Vérifier un serveur mono-disque
Rien de très compliqué ici, il vous suffira de renseigner la commande suivante depuis un accès root (ou en la précédant de sudo) :
smartctl -a /dev/sda
sda faisant donc référence à votre disque dur.
Vérifier un serveur Dell multi-disques
H200
Sur ces serveurs, les disques physiques se trouveront sur les devices sg*
Il vous faudra donc taper la commande suivante :
smartctl -a -T permissive /dev/sg0 smartctl -a -T permissive /dev/sg1 smartctl -a -T permissive /dev/sg2
Parfois les devices sont positionnés un peu plus loin.
N’hésitez pas à tester jusqu’à sg5 si vous n’avez pas de résultats concluants.
H310
Il y a deux possibilités :
-
megaclisas-status
-
megacli
Le premier vous permettra d’afficher l’état du volume RAID, le second vous permettra d’afficher les SMART des disques.
aptitude update aptitude install megaclisas-status megacli megaclisas-status
Pour les SMART il vous faudra utiliser le petit script suivant :
DEVICE=/dev/sda for i in $(megacli -pdlist -a0 | grep Id | cut -d":" -f2); do echo "============================== $i ==============================" smartctl -s on -a -d megaraid,${i} ${DEVICE} -T permissive done
Vérifier un serveur HP multi-disques
Pour diagnostiquer les problèmes sur les serveurs HP, je vous invite à regarder les commandes ssacli
Utiliser SMARTD pour monitorer ses disques
Comme nous l’avons vu précédemment SMARTD vous permettra de monitorer vos disques et d’être alerté (selon la configuration) par mail en cas de défaillance.
Il n’y a aucune garantie quant au résultat du SMART et du temps restant avant que le disque ne soit complètement en défaut. Cependant, il y a de grandes chances pour que vous ayez le temps de faire un backup et pour demander le remplacement du disque.
Nous prendrons ici l’exemple d’un serveur mono-disque installé sur un Debian-like.
Les commandes suivantes sont à exécuter en root ou via sudo
On commence donc par activer quelques options SMART de base :
smartctl -s on -o on -S on /dev/sda
Puis on vérifie que notre disque n’a aucun problème :
smartctl -H /dev/sda
.
Pour mettre en place des tests automatisés, voici la procédure :
Éditez le fichier
/etc/smartd.conf
Commencez par commenter la ligne suivante :
DEVICESCAN -d removable -n standby -m root -M exec /usr/share/smartmontools/smartd-runner
Puis ajoutez quelque chose comme :
/dev/sda -a -d sat -o on -S on -s (S/../.././01|L/../../1/03) -m root -M exec /usr/share/smartmontools/smartd-runner
L’exemple ci-dessus vous permettra de faire un test de votre disque dur comme suit :
-
Un test court (S) tous les jours à 1h (01) du matin
-
Un test long (L), tous les lundis (1) à 3h (03) du matin
Il faudra ensuite activer le daemon. Pour cela, décommentez la ligne :
start_smartd=yes
Dans le fichier
/etc/default/smartmontools
Pour finir, démarrez le daemon :
service smartmontools start
Si un problème est détecté, cela enverra un mail par défaut à root (-m root). Je vous invite à rediriger les mails de root sur votre boîte personnelle ou à envoyer ce mail directement sur une autre adresse.
Lancer des tests manuellement
Pour lancer des tests SMART manuellement, voici les commandes :
smartctl -t short /dev/sda
smartctl -t long /dev/sda
Une fois les tests terminés, vous pouvez vérifier les résultats avec la commande suivante :
smartctl -l selftest /dev/sda
Si vous constatez des erreurs
Ouvrez un ticket et demandez le remplacement du disque en indiquant le numéro de série avec le résultat de la commande smartctl:
=== START OF INFORMATION SECTION === Device Model: SAMSUNG HD103UJ Serial Number: S13PJ1KQ513170 <----------------------- Numéro de série Firmware Version: 1AA01113 User Capacity: 1 000 204 886 016 bytes Device is: In smartctl database [for details use: -P show] ATA Version is: 8 ATA Standard is: ATA-8-ACS revision 3b Local Time is: Fri Oct 29 11:20:27 2010 CEST