Smartmontools

De Le Wiki de debian-fr.xyz
Aller à : navigation, rechercher

smartmontools est une collection d'utilitaires qui utilisent le protocole SMART pour récupérer des informations sur les disques durs pourvus de cette technologie (tous les disques récents).

S.M.A.R.T. pour (Self-Monitoring, Analysis and Reporting Technology)...

Installation

# apt-get install smartmontools

Vérification des capacités S.M.A.R.T.

Vérifiez les capacités SMART de vos disques (remplacez /dev/sda par... votre disque):

# smartctl -i /dev/sda
smartctl 5.40 2010-07-12 r3124 [x86_64-unknown-linux-gnu] (local build)
Copyright (C) 2002-10 by Bruce Allen, http://smartmontools.sourceforge.net

=== START OF INFORMATION SECTION ===
Device Model:     SAMSUNG HD204UI
Serial Number:    S2H7J9AB505399
Firmware Version: 1AQ10001
User Capacity:    2 000 398 934 016 bytes
Device is:        Not in smartctl database [for details use: -P showall]
ATA Version is:   8
ATA Standard is:  ATA-8-ACS revision 6
Local Time is:    Sat Aug 13 01:12:47 2011 EAT
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

Si la commande ci-dessus échoue, vous pouvez essayer d'indiquer manuellement à smartctl le type de votre disque dur: Voir le man:

-d TYPE, --device=TYPE
  Specifies  the  type  of  the  device.   The  valid arguments to this option are ata, scsi, sat, marvell, 3ware,N,
  areca,N, usbcypress, usbjmicron, usbsunplus, cciss,N, hpt,L/M (or hpt,L/M/N), and test.
# smartctl -d TYPE -i /dev/sda

Options

Maintenant que nous avons vérifié (avec succès) que nos disques supportent les commandes smart, activons quelques options:

# smartctl -s on -o on -S on /dev/sda
  • -s on: Active le support SMART (ou pas s'il est déjà activé...)
  • -o on: Active la collecte des données hors connexion.
  • -S on: Active la sauvegarde automatique des attributs.

La commande ci-dessus devrait retourner:

smartctl 5.40 2010-07-12 r3124 [x86_64-unknown-linux-gnu] (local build)
Copyright (C) 2002-10 by Bruce Allen, http://smartmontools.sourceforge.net

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

Testons

Maintenant faisons quelques petits tests...

# smartctl -H /dev/sda

La commande doit retourner:

smartctl 5.40 2010-07-12 r3124 [x86_64-unknown-linux-gnu] (local build)
Copyright (C) 2002-10 by Bruce Allen, http://smartmontools.sourceforge.net

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

Si la commande ne retourne pas "PASSED" ça n'est pas bon... Vous devriez immédiatement sauvegarder les données importantes de votre disque... Votre disque dur est en train de rendre l'âme!

Assurez-vous maintenant que le disque supporte les tests automatiques. Passez la commande suivante: (La commande permet aussi de se faire une idée de la durée des tests)

# smartctl -c /dev/sda

Assurez vous que “Self-test supported” apparaisse dans la section “Offline data collection capabilities”

capabilities:
                                        Self-test supported.

Les autres informations intéressantes sont:

Short self-test routine 
recommended polling time:        (   2) minutes.
Extended self-test routine
recommended polling time:        ( 255) minutes.

Ce sont les durées estimées des tests... 255 minutes pour un disque de 2To


Lançons maintenant un test rapide:

# smartctl -t short /dev/sda
...
Testing has begun.
Please wait 2 minutes for test to complete.
Test will complete after Sat Aug 13 16:27:52 2011

Patientons donc deux minutes...

# smartctl -l selftest /dev/sda
smartctl -l selftest /dev/sda
smartctl 5.40 2010-07-12 r3124 [x86_64-unknown-linux-gnu] (local build)
Copyright (C) 2002-10 by Bruce Allen, http://smartmontools.sourceforge.net

=== 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%         7         -

"Completed without error", tout va bien!


Maintenant lançons un test long...

# smartctl -t long /dev/sda
...
Testing has begun.
Please wait 255 minutes for test to complete.
Test will complete after Sat Aug 13 20:49:03 2011

C'est looooong...

Configuration de smartd

Maintenant que nous avons vérifié les capacités SMART de nos disque, nous pouvons passer à l'étape de l'automatisation.

Il suffit d'éditer le fichier /etc/smartd.conf et d'y ajouter les commandes dont vous avez besoin. Voici à quoi ça ressemble chez moi:

Commentez le scan par défaut (faute de quoi vos tests personnels seraient ignorés)

#DEVICESCAN -d removable -n standby -m root -M exec /usr/share/smartmontools/smartd-runner

Ajoutez vos disques:

/dev/sda -a -d sat -o on -S on -s (S/../.././01|L/../../1/03) -m root -M exec /usr/share/smartmontools/smartd-runner
/dev/sdb -a -d sat -o on -S on -s (S/../.././02|L/../../2/03) -m root -M exec /usr/share/smartmontools/smartd-runner
/dev/sdc -a -d sat -o on -S on -s (S/../.././03|L/../../3/03) -m root -M exec /usr/share/smartmontools/smartd-runner
/dev/sdd -a -d sat -o on -S on -s (S/../.././04|L/../../4/03) -m root -M exec /usr/share/smartmontools/smartd-runner
/dev/sde -a -d sat -o on -S on -s (S/../.././05|L/../../5/03) -m root -M exec /usr/share/smartmontools/smartd-runner
/dev/sdf -a -d sat -o on -S on -s (S/../.././06|L/../../6/03) -m root -M exec /usr/share/smartmontools/smartd-runner

Explication:

  • /dev/sdx: le disque
  • -a: quelques options communes
-a     Equivalent to turning on all of the following Directives: ´-H´ to check the SMART health status,  ´-f´  to  report
       failures of Usage (rather than Prefail) Attributes, ´-t´ to track changes in both Prefailure and Usage Attributes,
       ´-l selftest´ to report increases in the number of Self-Test Log errors, ´-l error´ to  report  increases  in  the
       number  of  ATA  errors,  ´-C  197´  to report nonzero values of the current pending sector count, and ´-U 198´ to
       report nonzero values of the offline pending sector count.
  • -d sat: Cette option n'est pas obligatoire si le type de votre disque est bien reconnue
  • -o on, -S on: (Automatic Offline Testing et Autosave)
  • -s (S/../.././01|L/../../1/03): La programmation horaire Ici, un test court tous les jours à 1 heure du matin et un test long tous les lundi à 3 heures du matin
  • -m root: Envoie d'un mail à root si un test échoue (vous pouvez mettre une adresse mail classique "moi@bal.xx")
  • -M exec /usr/share/smartmontools/smartd-runner : exécute smartd-runner au lieu de la commande mail. Sous debian, smartd-runner lance les scripts situés dans /etc/smartmontools/run.d/ (dont l'un d'eux envoie un mail à l'utilisateur défini par -m, vous pouvez ajouter les scripts que vous souhaitez pour vous alerter).

Redémarrez le "daemon" smartd:

# /etc/init.d/smartmontools restart

Si la commande échoue, vérifiez vos logs (/var/log/daemon.log)

Test de l'email de notification

Evidemment, vous devez avoir un service de mail opérationnel (ne serait-ce qu'en local).

Pour vous en assurer:

$ echo "Ceci est un test" | mail -s test root

Les logs de Exim:

2011-08-13 16:04:16 1QsDsu-0001P1-A5 <= laurent@nas.zehome.org U=laurent P=local S=367
2011-08-13 16:04:16 1QsDsu-0001P1-A5 => laurent <root@nas.zehome.org> R=local_user T=mail_spool
2011-08-13 16:04:16 1QsDsu-0001P1-A5 Completed

Par défaut, vous ne serez alerté que des erreurs, mais vous avez peut-être envie de tester la fonction...

Remplacez "-M exec /usr/share/smartmontools/smartd-runner" par “-M test” à la fin de vos lignes de configuration

Redémarrez smartd

# /etc/init.d/smartmontools restart

Vous pouvez vérifier les logs:

...
Aug 13 19:03:12 nas2 smartd[16956]: Executing test of mail to root ...
Aug 13 19:03:12 nas2 smartd[16956]: Test of mail to root: successful
Aug 13 19:03:13 nas2 smartd[16956]: Device: /dev/sda [SAT], SMART Usage Attribute: 194 Temperature_Celsius changed from 63 to 62
...
Aug 13 19:03:19 nas2 smartd[16956]: Device: /dev/sda [SAT], state written to /var/lib/smartmontools/smartd.SAMSUNG_HD204UI-S2H7J9AB505399.ata.state

Vous devriez alors recevoir un mail pour root (ou quoi que vous ayez mis comme destinataire):

This email was generated by the smartd daemon running on:

  host name: nas
  DNS domain: zehome.org
  NIS domain: (none)

The following warning/error was logged by the smartd daemon:

TEST EMAIL from smartd for device: /dev/sda [SAT]

For details see host's SYSLOG (default: /var/log/syslog).

C'est un faux mail d'alerte...

Uns fois certain que vous recevrez les mail d'alerte, enlevez “-M test” et remettez "-M exec /usr/share/smartmontools/smartd-runner" dans votre fichier /etc/smartd.conf

Que faire en cas d'erreur

Vous cenez de recevoir un mail avec une erreur smartd de ce genre ?

The following warning/error was logged by the smartd daemon:

Device: /dev/sda [SAT], 16 Currently unreadable (pending) sectors

Ici vous trouverez un début de réponse: Erreur SMART

Automatison le lancement du "daemon"

# editor /etc/default/smartmontools
# uncomment to start smartd on system startup
start_smartd=yes

Que faire si smartd détecte des erreurs

Tout d'abord faite une sauvegarde de vos données IMMEDIATEMENT! Votre disque risque de rendre l'âme d'un moment à l'autre...

Consultez la FAQ de smartmontools N'hésitez pas à consulter et/ou demander de l'aide ou des précisions sur la liste smartmontools-support-list

Liens externes

Lol 13 août 2011 à 08:21 (CDT)