Cet article fait partie d’une série :
- #1 − Introduction
- #2 − Configuration du système de fichier avec ZFS
- #3 − Partage de fichier avec Samba
- #4 − Relais mail
- #5 − Surveillance des disques
- #6 − Services avec Docker & Compose
Introduction
Il est également intéressant de surveiller la santé des disques afin de prévenir une défaillance de l’un d’eux et ainsi empêcher une perte de donnée.
Pour cela nous allons utiliser Smartmontools qui peut être exécuté de manière unitaire ou en mode service pour réaliser les tests de manière automatique périodiquement.
Installation
- Installer les paquets nécessaires :
$ sudo apt install smartmontools - Vérifier si SMART est actif pour chacun des disques :
$ sudo smartctl -i /dev/sda - Si ce n’est pas le cas, l’activer avec la commande suivante :
$ sudo smartctl -s on /dev/sda
Tests manuels avec smartctl
Plusieurs tests sont disponibles. Les plus courants sont les tests rapides ou complets (plus de détail dans la documentation).
Pour lancer un test rapide (qq. minutes) :
$ sudo smartctl -t short /dev/sda
Pour lancer un test plus complet (qq. heures) :
$ sudo smartctl -t long /dev/sda
Les tests sont réalisés en tâche de fond et chacune des commandes retourne le temps indicatif que prendra le test, et donc à partir duquel il sera possible d’en voir les résultats.
Ces résultats sont consultables en affichant le détail des informations SMART du disque :
$ sudo smartctl -a /dev/sda
Il est également possible d’obtenir une estimation du temps de chaque test avant de les lancer avec la commande suivante :
$ smartctl -c /dev/sda
Tests automatiques avec smartd
-
Éditer le fichier de configuration
/etc/smartd.conf -
Commenter la seule ligne active. Par défaut sous Debian il s’agit de celle-ci :
DEVICESCAN -d removable -n standby -m root -M exec /usr/share/smartmontools/smartd-runner -
Vous pouvez vérifier que smartd fonctionne correctement et peut bien envoyer ses notifications en ajoutant la ligne de test suivante:
/dev/sda -a -m b+mosesley@gued.in -M testEt redémarrer le service
$ sudo systemctl restart smartdVous devriez recevoir un mail de test à l’adresse indiquée.
-
Pour la configuration définitive, supprimer la ligne de test, et ajouter une ligne par disque à surveiller :
/dev/sda -a -o on -S on -s (S/../.././02|L/../../6/03) -m b+mosesley@gued.in -M exec /usr/share/smartmontools/smartd-runner /dev/sdb -a -o on -S on -s (S/../.././02|L/../../6/03) -m b+mosesley@gued.in -M exec /usr/share/smartmontools/smartd-runner /dev/sdc -a -o on -S on -s (S/../.././02|L/../../6/03) -m b+mosesley@gued.in -M exec /usr/share/smartmontools/smartd-runner /dev/sdd -a -o on -S on -s (S/../.././02|L/../../6/03) -m b+mosesley@gued.in -M exec /usr/share/smartmontools/smartd-runner /dev/sde -a -o on -S on -s (S/../.././02|L/../../6/03) -m b+mosesley@gued.in -M exec /usr/share/smartmontools/smartd-runnerVoici les détails de la configuration :
/dev/sda: Chemin du disque à surveiller.-a: Raccourcis pour les options suivantes :-Hpour vérifier le statut de santé SMART,-fpour notifier d’erreurs dans Usage Attributes,-tpour suivre les changements dans les Prefailure et Usage Attributes,-l errorpour notifier l’augmentation du nombre d’erreurs ATA,-l selftestpour notifier l’augmentation du nombre d’erreurs dans les Self-Test Log,-l selfteststspour notifier les changements de statut d’exécution des Self-Test,-C 197pour notifier les valeurs non nulles du nombre de current pending sector,-U 198pour notifier les valeurs non nulles du nombre de offline pending sector.
-o on: [pour ATA seulement] Active le SMART Automatic Offline Testing quandsmartddémarre.-S on: Active Attribute Autosave quandsmartddémarre.-s (S/../.././02|L/../../6/03): Cette partie sert à planifier les self-tests rapides (ou courts) & complets (ou longs). Dans cet exemple, les self-tests rapides seront lancés tous les jours à 2h du matin. Les tests complets seront lancés les samedi à 3h du matin. Voici le format complet :T/MM/DD/d/HHT: Type de test (LpourLong,SpourShort,CpourConveyance, etOpourOffline Immediate),MM: Le mois,DD: Le jour du mois,d: Le jour de la semaine,HH: L’heure.
-m b+mosesley@gued.in: Si une erreur est détectée,smartdenverra un e-mail à cette adresse.-M exec /usr/share/smartmontools/smartd-runner: Au lieu d’envoyer l’e-mail directement,-M execpermet àsmartdde lancer une commande différente. En l’occurrence sous Debian,smartd-runnerexecute chaque script présent dans/etc/smartmontools/run.d/dont l’un enverra l’e-mail à l’adresse spécifiée précédemment.
Sources :
- https://linux.die.net/man/5/smartd.conf
- https://www.maketecheasier.com/monitor-hard-disk-health-linux/
- https://linuxconfig.org/how-to-check-an-hard-drive-health-from-the-command-line-using-smartctl
- https://linuxconfig.org/how-to-configure-smartd-and-be-notified-of-hard-disk-problems-via-email
- https://blog.shadypixel.com/monitoring-hard-drive-health-on-linux-with-smartmontools/
Vous pouvez aller à l’article suivant pour poursuivre la construction du NAS : #6 − Services avec Docker & Compose.