Cet article fait partie d’une série :

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

  1. Installer les paquets nécessaires :
    $ sudo apt install smartmontools
    
  2. Vérifier si SMART est actif pour chacun des disques :
    $ sudo smartctl -i /dev/sda
    
  3. 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

  1. Éditer le fichier de configuration /etc/smartd.conf

  2. 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
    
  3. 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 test
    

    Et redémarrer le service

    $ sudo systemctl restart smartd
    

    Vous devriez recevoir un mail de test à l’adresse indiquée.

  4. 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-runner
    

    Voici les détails de la configuration :

    • /dev/sda : Chemin du disque à surveiller.
    • -a : Raccourcis pour les options suivantes :
      • -H pour vérifier le statut de santé SMART,
      • -f pour notifier d’erreurs dans Usage Attributes,
      • -t pour suivre les changements dans les Prefailure et Usage Attributes,
      • -l error pour notifier l’augmentation du nombre d’erreurs ATA,
      • -l selftest pour notifier l’augmentation du nombre d’erreurs dans les Self-Test Log,
      • -l selfteststs pour notifier les changements de statut d’exécution des Self-Test,
      • -C 197 pour notifier les valeurs non nulles du nombre de current pending sector,
      • -U 198 pour notifier les valeurs non nulles du nombre de offline pending sector.
    • -o on : [pour ATA seulement] Active le SMART Automatic Offline Testing quand smartd démarre.
    • -S on : Active Attribute Autosave quand smartd dé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/HH
      • T : Type de test (L pour Long, S pour Short, C pour Conveyance, et O pour Offline 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, smartd enverra un e-mail à cette adresse.
    • -M exec /usr/share/smartmontools/smartd-runner : Au lieu d’envoyer l’e-mail directement, -M exec permet à smartd de lancer une commande différente. En l’occurrence sous Debian, smartd-runner execute 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 :


Vous pouvez aller à l’article suivant pour poursuivre la construction du NAS : #6 − Services avec Docker & Compose.