Smartmontools
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)