Installation et configuration de smartctl pour la surveillance proactive de l'état des disques | INTROSERV
EUR
european

EUR

usa

USD

French Fr
Ex. VAT Ex. VAT 0%

Installation et configuration de smartctl pour la surveillance proactive de l'état des disques

Introduction

smartctl est un utilitaire en ligne de commande issu du paquet smartmontools, conçu pour fonctionner avec la technologie S.M.A.R.T. (Self-Monitoring, Analysis and Reporting Technology) implémentée dans les disques de stockage modernes.

Cas d'utilisation :

  • serveurs d'hébergeurs ;
  • nœuds VPS/VDS ;
  • serveurs dédiés ;
  • serveurs de fichiers ;
  • systèmes de sauvegarde ;
  • infrastructures d'entreprise.

Tâches prises en charge :

  • détection précoce de la dégradation des disques ;
  • prévision des pannes de disques ;
  • réduction du risque de perte de données ;
  • automatisation de la surveillance de l'état des disques durs (HDD), SSD et NVMe ;
  • analyse des problèmes physiques au niveau du sous-système de disques.

La surveillance SMART proactive vous permet d’identifier un problème avant qu’une panne de disque ne se produise, ce qui est d’une importance cruciale pour les environnements de production.

Configuration requise et conditions préalables

Systèmes d’exploitation et versions pris en charge

Linux :

  • Debian 10 et versions ultérieures
  • Ubuntu 18.04 et versions ultérieures
  • RHEL / AlmaLinux / Rocky Linux 8 et versions ultérieures
  • CentOS 7 (pris en charge, mais obsolète)
  • FreeBSD 12 et versions ultérieures

Windows (via smartmontools, utilisation limitée)

Les exemples ci-dessous concernent Linux.

Logiciels et paquets requis :

  • paquet smartmontools
  • accès à /dev/sdX, /dev/nvmeX
  • systemd installé (pour smartd)

Droits d'accès :

  • privilèges root requis
  • ou accès via sudo

Vérifications préliminaires

Affichage de la liste des disques du système :

lsblk -d -o NAME,MODEL

Présentation et concepts de base

Termes clés

  • SMART - système intégré d'autodiagnostic des disques
  • Attributs - attributs d'état (Reallocated_Sector_Ct, Pending_Sectors, etc.)
  • Autotest - tests intégrés du disque
  • smartctl - utilitaire en ligne de commande pour la gestion SMART
  • smartd - démon de surveillance automatique

Fonctionnement

  1. Le disque collecte lui-même des statistiques
  2. smartctl lit ces données
  3. smartd analyse les valeurs seuils et les événements
  4. Des notifications sont envoyées en cas de problème

Logique du flux de travail

Disque > Attributs SMART > smartctl > smartd > journal / e-mail / surveillance

Configuration de base et utilisation de smartctl

Installation de l'utilitaire smartmontools

Il est impossible d'utiliser SMART sans avoir installé le paquet smartmontools, qui comprend les utilitaires smartctl (gestion manuelle des disques) et smartd (démon de surveillance en arrière-plan).

L'installation s'effectue à l'aide des outils standard de gestion des paquets de la distribution.

Debian / Ubuntu

sudo apt update sudo apt install smartmontools

RHEL / AlmaLinux / Rocky Linux

sudo dnf install smartmontools

Une fois installés, les utilitaires sont disponibles dans le système et prêts à l'emploi sans initialisation supplémentaire.

Vérification de la version et de la disponibilité de smartctl

Dans un premier temps, il est recommandé de vérifier que l'utilitaire est correctement installé et disponible dans le système :

smartctl --version

La commande affiche la version du paquet et la liste des technologies prises en charge.

Cela vous permet de :

  • de vous assurer que vous utilisez une version à jour ;
  • de vérifier la prise en charge des périphériques NVMe, RAID et d’autres types de périphériques.

Vérification de la prise en charge de la technologie SMART sur un disque spécifique

Il faut ensuite vérifier si le disque lui-même prend en charge la technologie SMART et si celle-ci est activée au niveau du périphérique.

sudo smartctl -i /dev/sda

Exemple de résultat correct :

SMART support is: Available - device has SMART capability. SMART support is: Enabled

  • Disponible: le disque prend physiquement en charge la technologie SMART ;
  • Activé: la collecte des données SMART est activée et accessible en lecture.

Si la technologie SMART est prise en charge mais désactivée, cela se produit souvent sur des disques neufs ou n'ayant jamais été utilisés auparavant. Dans ce cas, il faut l'activer manuellement :

sudo smartctl -s on /dev/sda

Il est ensuite recommandé de réexécuter la commande smartctl -i pour s'assurer que SMART est bien activé.

Affichage des attributs SMART et évaluation initiale de l'état de santé

L'intérêt pratique principal de SMART réside dans ses attributs : des valeurs numériques reflétant l'état de la surface, des composants mécaniques et électroniques du disque.

Pour afficher les attributs, utilisez la commande :

sudo smartctl -A /dev/sda

La sortie contient un tableau des attributs avec leurs valeurs actuelles et leur historique. Il convient avant tout de prêter attention aux indicateurs suivants :

Champs clés du résultat :

  • VALUE (valeur actuelle) : valeur normalisée de l’attribut (généralement comprise entre 1 et 100, 100 étant la valeur idéale). Le disque est considéré comme défectueux si VALUE ≤ THRESH.
  • WORST (valeur la plus défavorable) : la valeur la plus défavorable atteinte pendant le fonctionnement du disque.
  • THRESH (Seuil) : la valeur minimale admissible pour VALUE. Le dépassement du seuil (VALUE ≤ THRESH) est le signe d’une situation critique.
  • RAW_VALUE : la valeur « brute », non normalisée, de l’attribut. C’est cette valeur qui doit être analysée pour évaluer l’usure et compter les événements.

Attributs clés pour les disques durs (HDD) :

  • Reallocated_Sector_Ct : une augmentation indique une dégradation physique de la surface.
  • Current_Pending_Sector (Secteurs en attente de réallocation) : Secteurs instables. Même une seule valeur non nulle constitue un signe d’alerte.
  • Offline_Uncorrectable (Erreurs incorrigibles) : Secteurs qui n’ont pas pu être lus.
  • Power_On_Hours : durée totale de fonctionnement du disque.

Attributs clés pour les SSD :

  • Retired_Block_Count : l'équivalent de Reallocated_Sector_Ct pour les disques durs. Indique le nombre de blocs mis hors service. Même une valeur faible, telle que VALUE=100, peut être normale.
  • Reallocated_Event_Count : Nombre d’événements de réaffectation.
  • SSD_Life_Left ou Pourcentage utilisé/Indicateur d'usure du support : pourcentage de durée de vie restante (ou d'usure). Une valeur faible (par exemple, < 10 %) est le signe d'une défaillance imminente.
  • Wear_Range_Delta : indicateur de l’uniformité de l’usure entre les cellules de mémoire.
  • Power_On_Hours_and_Msec : la durée totale de fonctionnement.
  • Lifetime_Writes_GiB / Lifetime_Reads_GiB (attributs 241, 242) : volume total de données écrites/lues.

Attributs clés pour NVMe (via smartctl -a /dev/nvme0) :

  • Percentage Used : pourcentage de l'endurance d'écriture consommée. Principal indicateur d'usure.
  • Erreurs d’intégrité du support et des données : erreurs d’intégrité des données.
  • Avertissement critique : indicateurs d’avertissement critiques.
  • Température : température actuelle.

À ce stade, l’administrateur acquiert une compréhension générale de l’état du disque et peut identifier les signes évidents de problèmes.

Configuration avancée et scénarios pratiques

La technologie SMART prend en charge des autotests intégrés, qui sont effectués par le disque lui-même sans intervention du système d’exploitation.

Le test court est conçu pour une vérification rapide des composants clés :

sudo smartctl -t short /dev/sda

Le test long effectue un balayage complet de la surface et prend nettement plus de temps :

sudo smartctl -t long /dev/sda

Une fois le test terminé, il convient de vérifier les résultats :

sudo smartctl -l selftest /dev/sda

Le résultat indique :

  • le type de test ;
  • l'état d'achèvement ;
  • la présence ou l'absence d'erreurs.

Un test échoué est une raison directe de se préparer au remplacement du disque.

Utilisation des contrôleurs RAID

Les contrôleurs RAID matériels masquent souvent les données SMART au système. Dans ce cas, le type de périphérique doit être explicitement spécifié.

Exemple pour un contrôleur LSI :

smartctl -a -d megaraid,0 /dev/sda

Où :

  • -a - clé permettant d'afficher toutes les informations SMART disponibles (attributs, journaux, erreurs, évaluation globale de l'état de santé).
  • -d - option permettant de spécifier le type de périphérique.
  • megaraid - indique au pilote SMART que le disque est géré par un contrôleur LSI/Broadcom (couramment utilisé dans les serveurs).
  • 0 - numéro du disque physique (PD, Physical Drive) dans la matrice RAID. Il ne s'agit pas de sda, mais d'un identifiant unique attribué par le contrôleur. Il peut être trouvé à l'aide de l'utilitaire de gestion du contrôleur (par exemple, storcli ou MegaCLI).
  • /dev/sda - dans ce contexte, il ne s’agit pas du disque réel, mais d’un pseudo-périphérique représentant le contrôleur RAID lui-même dans le système. En général, il s’agit de /dev/sgX (SCSI Generic) ou simplement de /dev/sda si le contrôleur a créé un disque virtuel.

Erreur courante lorsque le type de périphérique n’est pas spécifié :

SMART support is: Unavailable

Cela ne signifie pas que SMART n’est pas disponible, mais simplement que smartctl n’a pas pu déterminer automatiquement le chemin d’accès au disque physique. La solution consiste à spécifier correctement le paramètre -d.

Diagnostics et dépannage

Signes de dysfonctionnements possibles :

  • augmentation de la valeur Reallocated_Sector_Ct ;
  • valeur non nulle de Current_Pending_Sector ;
  • erreurs de programmation/effacement (Program_Fail_Count, Erase_Fail_Count) ;
  • erreurs d'autotest ;
  • augmentation de la latence d'E/S ;
  • messages d'erreur dans les journaux système.

Analyse des journaux

journalctl -u smartd

dmesg | grep -i error

Explication :

  • Secteurs en attente > 0 – risque élevé de défaillance ;
  • Nombre croissant de secteurs réaffectés: dégradation progressive ;
  • Autotest ÉCHOUÉ – le disque doit être remplacé.

Identification des sources de problèmes

Pour exclure les faux positifs, il est important de mettre en corrélation les données SMART avec la charge réelle.

iostat -x 1 iotop

Vérification de l'emplacement de montage du disque :

lsblk -o NAME,SERIAL,MOUNTPOINT

Identification des contrôleurs :

lspci | grep -i raid

Indicateurs supplémentaires :

  • température supérieure à 50 °C ;
  • augmentation des erreurs CRC ;
  • valeurs SMART instables.

Configuration des notifications à l'administrateur lorsque les indicateurs SMART approchent des valeurs seuils

La simple présence de données SMART ne garantit pas encore la sécurité de l'infrastructure. Un élément clé de la surveillance consiste à avertir l'administrateur en temps opportun dès que l'état du disque commence à se détériorer, mais avant qu'une panne ne se produise.

Le mécanisme de notification vous permet de :

  • de détecter la dégradation d’un disque à un stade précoce ;
  • de planifier le remplacement du disque à l’avance ;
  • d'éviter les temps d'arrêt d'urgence et la perte de données ;
  • d'intervenir pendant les fenêtres de maintenance programmées.

Dans smartmontools, le démon smartd est chargé d'envoyer les notifications. Il suit automatiquement les changements des attributs SMART et réagit en cas d'écarts par rapport à la norme.

Principe de fonctionnement des notifications smartd

Le démon smartd fonctionne comme un service en arrière-plan et effectue les tâches suivantes :

  1. Il interroge périodiquement les attributs SMART des disques.
  2. Il compare les valeurs actuelles aux seuils d'usine et aux valeurs précédentes (évolution des changements).
  3. Détecte : l'augmentation des attributs critiques, l'apparition de nouvelles erreurs, les échecs d'autotest.
  4. Génère une notification et l'envoie à l'administrateur.

Conditions requises pour le bon fonctionnement des notifications

Avant la configuration, il est nécessaire de s'assurer que :

  • un MTA (Postfix, Exim, Sendmail, ssmtp) est installé et correctement configuré sur le système ;
  • le serveur est capable d'envoyer des e-mails sortants ;
  • l'adresse e-mail de l'administrateur destinée à recevoir les notifications est définie.

Exemple de configuration de ssmtp – un MTA léger et simple permettant d’envoyer des e-mails depuis le système

Installation :

# For Debian/Ubuntu sudo apt update && sudo apt install ssmtp mailutils -y # For RHEL sudo dnf install ssmtp mailx

Créez le fichier de configuration

sudo nano /etc/ssmtp/ssmtp.conf

et modifiez son contenu :

# Default sender address [email protected] # SMTP server and port of your email provider mailhub=smtp.your-domain.com:587 # Alternative example: # mailhub=smtp.gmail.com:587 # For Gmail # Authentication credentials [email protected] AuthPass=your-password # Encryption settings UseSTARTTLS=YES # Use STARTTLS UseTLS=YES # Use TLS FromLineOverride=YES # Allow overriding the sender address # Hostname (specify your server's name) hostname=server1.your-domain.com # you can use hostname=localhost or specify the system's actual hostname

Enregistrez le fichier et configurez les droits d'accès :

sudo chmod 640 /etc/ssmtp/ssmtp.conf sudo chown root:mail /etc/ssmtp/ssmtp.conf

Configurer les expéditeurs (alias) :

sudo nano /etc/ssmtp/revaliases

root:[email protected]:smtp.your-domain.com:587 www-data:[email protected]:smtp.your-domain.com:587

Pour que l'envoi des messages s'effectue correctement, les ports suivants doivent être ouverts sur le serveur : 587 (port principal pour l'envoi avec cryptage STARTTLS), ou 25 (SMTP standard), 465 (SMTP sécurisé avec SSL), s'ils sont prévus par la configuration.

Test de base d'envoi d'e-mail :

echo "SMART test message" | mail -s "SMART notification test" [email protected] # You can explicitly specify the sender echo "SMART test message" | mail -s "SMART notification test" -a "From: [email protected]" [email protected] # Via ssmtp directly echo "SMART test message" | ssmtp [email protected]

[email protected] – l'adresse du destinataire à laquelle le message sera envoyé.

Si l'e-mail n'est pas remis, il est inutile de poursuivre la configuration de smartd tant que les problèmes de remise du courrier ne sont pas résolus.

La configuration des notifications SMART s’effectue dans le fichier :

/etc/smartd.conf

Exemple de configuration simple et fonctionnelle :

/dev/sda -a -o on -S on -m [email protected]

Paramètres :

  • /dev/sda – le disque surveillé ;
  • -a: ensemble complet de vérifications ;
  • -S on : la sauvegarde des attributs entre les redémarrages est activée ;
  • -o on : la collecte automatique des données hors ligne est activée ;
  • -m: les notifications sont envoyées à l'adresse e-mail indiquée.

À partir de ce moment, smartd commencera à surveiller l'état du disque en arrière-plan.

Notifications en cas d’approche des valeurs seuils

L'une des principales fonctionnalités de smartd est qu'il surveille les variations des valeurs des attributs, et pas seulement leur dépassement critique.

  • Concrètement, cela signifie qu’une notification peut être envoyée :
  • dès la première apparition de Current_Pending_Sector ;
  • lorsqu’une augmentation de Reallocated_Sector_Ct est constatée, même si le seuil n’a pas encore été atteint ;
  • lors de la détection d’erreurs d’autotest ;
  • lors d’une dégradation des paramètres NVMe.

Les attributs les plus significatifs d’une défaillance précoce :

  • Reallocated_Sector_Ct
  • Current_Pending_Sector
  • Offline_Uncorrectable
  • Erreurs d’intégrité des supports et des données (NVMe)
  • Pourcentage utilisé (SSD/NVMe)

Même des variations minimes de ces paramètres doivent être considérées comme un motif de vigilance.

Utilisation des autotests comme source de notification

Pour améliorer la pertinence des informations, il est recommandé de combiner la surveillance des attributs avec des autotests réguliers.

Exemple de configuration avec un calendrier :

/dev/sda -a -o on -S on \ -s (S/../.././02|L/../../6/03) \ -m [email protected]

Principe de fonctionnement :

  • un test rapide est effectué quotidiennement ;
  • un test complet est effectué une fois par semaine ;
  • en cas d'échec d'un test, l'administrateur reçoit une notification.

Gestion de la fréquence et du volume des notifications

Pour éviter un nombre excessif d'alertes, on utilise le paramètre -M once

Exemple :

/dev/sda -a -m [email protected] -M once

Dans ce mode :

  • une notification est envoyée dès la première détection d’un problème ;
  • les messages suivants ne sont pas dupliqués tant que la cause n’est pas résolue.

Pour tester le système de notification, vous pouvez utiliser -M test

Cela vous permet de vérifier que smartd est capable d'envoyer des messages sans attendre qu'une erreur réelle se produise.

Conclusion

Dans le cadre de ce manuel, le cycle complet de mise en œuvre et d’exploitation de smartctl et du démon smartd en tant qu’outils de surveillance proactive de l’état de santé des disques a été passé en revue de manière systématique. Les principes de base du fonctionnement de la technologie SMART, les méthodes pratiques d’analyse des attributs, le lancement et l’interprétation des autotests, les spécificités de l’utilisation des disques NVMe et des contrôleurs RAID, ainsi que les méthodes et techniques de diagnostic permettant d’identifier les causes profondes des problèmes ont été abordés. Une attention particulière a été accordée à la configuration des notifications, qui permettent de détecter la dégradation d’un disque à un stade précoce, avant même qu’une panne critique ne se produise.

Une surveillance SMART correctement configurée fait partie intégrante d’une infrastructure serveur fiable et doit être considérée comme une norme opérationnelle obligatoire. L’utilisation de smartctl et de smartd permet à l’administrateur système de passer d’une résolution réactive des incidents à une maintenance réfléchie et maîtrisée du sous-système de disques, réduisant ainsi les risques d’indisponibilité, de perte de données et d’incidents imprévus, tout en créant une base solide pour une automatisation plus poussée et une intégration avec des systèmes de surveillance centralisés.

VAT

  • Other

    Ex. VAT

    0%
  • austria

    Austria

    20%
  • Belgium

    Belgium

    21%
  • Bulgaria

    Bulgaria

    20%
  • Croatia

    Croatia

    25%
  • Cyprus

    Cyprus

    19%
  • Czech Republic

    Czech Republic

    21%
  • Denmark

    Denmark

    25%
  • Estonia

    Estonia

    22%
  • France

    France

    20%
  • Finland

    Finland

    24%
  • Germany

    Germany

    19%
  • Greece

    Greece

    24%
  • Hungary

    Hungary

    27%
  • Ireland

    Ireland

    23%
  • Italy

    Italy

    22%
  • Latvia

    Latvia

    21%
  • Lithuania

    Lithuania

    21%
  • Luxembourg

    Luxembourg

    17%
  • Malta

    Malta

    18%
  • Netherlands

    Netherlands

    21%
  • Poland

    Poland

    23%
  • Portugal

    Portugal

    23%
  • Romania

    Romania

    19%
  • Slovakia

    Slovakia

    20%
  • Slovenia

    Slovenia

    22%
  • Spain

    Spain

    21%
  • Sweden

    Sweden

    25%
  • USA

    USA

    0%
european
states
  • germany
  • Español
  • Italiano
  • Poland
  • Русский
  • Slovenski
  • Türkçe
  • ukraine
  • kingdom
  • French
  • Hrvatska
  • Other
  • Austria
  • Belgium
  • Bulgaria
  • Croatia
  • Cyprus
  • Czech Republic
  • Denmark
  • Estonia
  • Finland
  • France
  • Germany
  • Greece
  • Hungary
  • Ireland
  • Italy
  • Latvia
  • Lithuania
  • Luxembourg
  • Malta
  • Netherlands
  • Poland
  • Portugal
  • Romania
  • Slovakia
  • Slovenia
  • Spain
  • Sweden
  • USA