Smart : Analyser et évaluer l'état de son disque dur

De Wiki de la communauté Mandriva.


Un disque dur qui fonctionne est un disque dur qui meurt à petit feu. Tout matériel vit, puis meurt, inéluctablement. Il est donc utile, voire nécessaire de faire un état des lieux de son ou ses disques durs, surtout lorsqu'il s'agit de vendre un ancien disque dur en occasion ou si l'on en a récupéré un. Le logiciel SMART ou "Self-Monitoring, Analysis and Reporting Technology system" est un logiciel ultra performant permettant d'obtenir de nombreuses informations sur les disques durs ATA et SCSI. Smart permet ainsi de prévoir et d'anticiper les défaillances de disques durs.
Attention !
Smart n'est compatible qu'avec les disques durs supportant la norme S.M.A.R.T., incluse dans la plupart des disques durs depuis 2001. Il faut également que le mode S.M.A.R.T. soit activé. Si le disque dur n'a pas été enlevé ou déplacé dans un ordinateur pré-monté, alors les chances sont fortes qu'il soit déjà activé. Dans les autres cas, vous pouvez vérifier et l'activer depuis le BIOS de l'ordinateur.


Les connaissances nécessaires :
  • savoir ouvrir une console et passer en mode super-utilisateur
  • savoir taper des commandes et des options courantes
  • avoir des notions d'anglais (très recommandé)
  • connaître un minimum de notions sur le fonctionnement d'un disque dur


Sommaire

Installation

Smart peut être installé de façon très simple depuis le Image:Drakrpm-icon.png Gestionnaire de logiciels de Mandriva. Vous aurez en revanche peut être besoin de changer le filtre de "Applications graphiques" à "Tous" pour afficher et installer le paquet smartmontools.

Une fois smart installé, un nouveau service fera son apparition : le service Smart. Ce service est nécessaire car il se charge du suivi du/des disque(s) dur(s) au quotidien. Vous pourrez également configurer Smart en éditant le fichier /etc/smartd.conf.

Utilisation

Afficher les informations

Pour afficher les détails sur un disque dur choisi, tapez dans une console en tant que super-utilisateur :

Image:Konsole.png
[root@ordi ~]# smartctl -a /dev/sda

en supposant que /dev/sda est le nom du disque dur que vous avez choisi. Plus bas dans cet article, nous le remplaçons par <DISQUE>.

Pour connaître le nom du/des disque(s) de votre ordinateur, vous pouvez lancer l'assistant Image:Drakdisk-icon.png Gérer les partitions de votre disques durs, disponible dans le Image:Drakconf-icon.png Centre de Contrôle, dans onglet Disques locaux. L'assistant chargé, observez les noms des partitions et de disque : si vos partitions se nomment sda1, sda2, sda7, etc... alors le nom de ce disque est sda. Si les partitions se nomment sdb1, sdb2, sdb3, etc... alors le nom de ce disque est sdb. Si les partitions se nomment hda1, hda2, etc... alors le nom de ce disque est hda.

Les commandes

  • smartctl <DISQUE> : permet d'activer/désactiver smart sur le disque dur choisi.
  • smartctl -a <DISQUE> : affiche de nombreuses informations sur le disque choisi (voir la section suivante pour plus de détails).
  • man smartctl et man smartd : Ces commandes peuvent donner plus d'informations plus précises et détaillées.

Comprendre un rapport rendu par Smart

Informations sur le disque

Les données concernant le constructeur, le modèle et le type du disque dur se trouvent dans cette partie du rapport.

smartctl version 5.38 [i586-mandriva-linux-gnu] Copyright (C) 2002-8 Bruce Allen
Home page is http://smartmontools.sourceforge.net/

=== START OF INFORMATION SECTION ===
Model Family:     Seagate Barracuda 7200.7 and 7200.7 Plus family
Device Model:     ST3160023AS
Serial Number:    3MT030X1
Firmware Version: 3.00
User Capacity:    160 041 885 696 bytes
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   6
ATA Standard is:  ATA/ATAPI-6 T13 1410D revision 2
Local Time is:    Tue Sep 16 17:30:41 2008 CEST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

Les données constructeur

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

General SMART Values:
[...]

La toute première ligne en dessous du titre du rapport est la ligne indiquant si le disque a passé le test de santé SMART. Si le mot "PASSED" s'affiche à la fin de la ligne, celà signifie que votre disque dur est en bonne santé. Si le mot "FAILED" s'affiche à la fin de la ligne, une anomalie a été vraisemblablement détectée par SMART et une action est éventuellement nécessaire pour résoudre le problème.

Les valeurs SMART

Voici un exemple de liste obtenue par une analyse. Les lignes qui y figurent peuvent dépendre selon le modèle, la génération et le constructeur du disque dur.

SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
 1 Raw_Read_Error_Rate      0x000b   100   100   062    Pre-fail  Always       -       0
 2 Throughput_Performance   0x0005   114   114   040    Pre-fail  Offline      -       3473
 3 Spin_Up_Time             0x0007   205   205   033    Pre-fail  Always       -       2
 4 Start_Stop_Count         0x0012   068   068   000    Old_age   Always       -       51168
 5 Reallocated_Sector_Ct    0x0033   100   100   005    Pre-fail  Always       -       0
 7 Seek_Error_Rate          0x000b   100   100   067    Pre-fail  Always       -       0
 8 Seek_Time_Performance    0x0005   116   116   040    Pre-fail  Offline      -       38
 9 Power_On_Hours           0x0012   071   071   000    Old_age   Always       -       12851
10 Spin_Retry_Count         0x0013   100   100   060    Pre-fail  Always       -       0
12 Power_Cycle_Count        0x0032   098   098   000    Old_age   Always       -       3541
191 G-Sense_Error_Rate      0x000a   096   096   000    Old_age   Always       -       458753
192 Power-Off_Retract_Count 0x0032   098   098   000    Old_age   Always       -       431
193 Load_Cycle_Count        0x0012   060   060   000    Old_age   Always       -       402477
194 Temperature_Celsius     0x0002   141   141   000    Old_age   Always       -       39 (Lifetime Min/Max 10/2286)
196 Reallocated_Event_Count 0x0032   100   100   000    Old_age   Always       -       4
197 Current_Pending_Sector  0x0022   100   100   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0008   100   100   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x000a   200   200   000    Old_age   Always       -       0 	 

La liste ci-dessus donne de nombreuses informations sur différents facteurs pouvant influencer l'état du disque dur. La colonne donnant les résultats recherchés est celle intitulée RAW_VALUE. Les lignes ci-dessous sont les plus importantes :

  • 9 : Power_On_Hours : Il s'agit du nombre d'heures de service total durant lesquels le disque dur était allumé. Plus cette valeur est élevée, plus le disque dur est âgé et plus le risque de panne ou de défaillance est élevé.
  • 12 : Power_Cycle_Count : Il s'agit du nombre de démarrages du disque dur lors d'une mise sous tension de l'ordinateur.
  • 193 : Load_Cycle_Count : Il s'agit de la fréquence du parcage des têtes de lecture du disque. Réalisé en plusieurs fois, ce test permet de déterminer d'éventuelles faiblesses qui accéléreraient le vieillissement du disque (voir plus bas).
  • 194 : Temperature_Celsius : Il s'agit de la température à laquelle fonctionne le disque dur. Il est impératif pour sa survie qu'il soit dans une unité centrale bien ventilée et/ou refroidie. Le disque dur ne doit pas non plus être en surchauffe. Habituellement, un disque dur fonctionne dans une température proche de 38°C. Vous pouvez trouver des informations sur la température recommandée par le constructeur sur le haut du disque dur.
Attention !
Le nombre d'heures pendant lesquels le disque dur à été allumé et mis en service est fondamental pour estimer l'âge et le taux d'usure de ce disque dur. Plus un disque dur est âgé, moins il sera fiable et plus il aura de chances de rendre l'âme. Gardez ceci en tête : un disque dur qui fonctionne est un disque dur qui meurt.

Anticiper le vieillissement prématuré d'un disque dur

Sans que vous ne le sachiez, il se peut que votre disque dur se détraque d'une façon ou d'une autre. Une anomalie courante mais terrible a été rapportée dans les forums de diverses distributions au sujet de disques durs d'ordinateurs portables tout particulièrement.

Ce problème est redoutable car votre disque dur va alors se mettre à accélérer/décélérer et/ou se bloquer/débloquer très souvent. Ceci est exactement ce qu'un disque dur ne doit pas subir car cela peut sérieusement user voire endommager les mécanismes du disque dont la durée de vie sera considérablement réduite.

Les raisons suivantes peuvent provoquer ce comportement du disque :

  • le firmware du disque dur peut avoir des réglages agressifs (indépendants du système d'exploitation)
  • le BIOS peut configurer le disque dur pour avoir une gestion agressive (indépendant du système d'exploitation)
  • le laptop-mode est activé dans /etc/default/acpi-support (désactivé par défaut), ce qui à pour effet de configurer votre disque dur pour une gestion agressive de l'alimentation.

Le problème se localise au niveau de l'entrée n°193 intitulée Load_Cycle_Count. Cette entrée indique la vitesse de rotation du disque. Vous devez effectuer un premier test, puis un second quelques heures plus tard et comparer les résultats obtenus pour déceler l'anomalie éventuelle. Si vous remarquez que le Load_Cycle_Count augmente trop rapidement et d'une façon soudaine, votre disque dur est possiblement affecté par ce problème. Suivez les recommandations ci-dessous pour plus de précision.

Voici les manipulations à effectuer pour déterminer si votre disque est affecté

Lancez une console et passer en mode super-utilisateur. Ensuite, tapez la commande suivante :

Image:Konsole.png
[root@ordi ~]# smartctl -a /dev/<DISQUE> | grep Load_Cycle_Count

Si le dernier nombre retourné augmente rapidement (relancez la commande au bout de quelques heures), qu'il est en moyenne de plus de 90 par jour, alors votre disque souffre peut-être de ce problème.

Le chiffre de 90/jour est arbitraire, mais celui-ci garantit un Load_Cycle_Count inférieur à 100.000 en 3 ans. Il est possible qu'un nombre inférieur à 180 soit encore acceptable (cela dépend de votre disque dur).

Les fabriquants de disques donnent des performances d'au moins 600.000 Load_Cycles, mais c'est probablement une moyenne dans des circonstances optimales.

Une façon d'influer sur ce comportement est d'ajuster les paramètres de /etc/laptop-mode/laptop-mode.conf

On peut notamment modifier la directive servant à ajuster la gestion de l'énergie des disques (hdparm -B valeur):

 BATT_HD_POWERMGMT=valeur 

valeur peut varier de 1 à 255 . Cela correspond à un délai avant suspension de la rotation allant de très court (1) à très long (255). Une valeur de 0 désactive la suspension. Les valeurs 1 à 240 correspondent normalement à des multiples de 5 secondes (voir la page de manuel de hdparm pour plus de précisions). Une valeur de 12 à 30 peut être un bon compromis entre économie d'énergie et usure du disque.


La page suivante (en anglais) donne des indications sur comment bien configurer son laptop-mode afin d'éviter ce genre de problème. Bien configurer le laptop-mode (en)


Si vous n'utilisez pas d'ordinateur portable, ou que vous avez des raisons de penser que le laptop-mode n'y est pour rien ou alors qu'il est désactivé, vérifiez les paramètres concernant les disques durs dans le BIOS de votre ordinateur.

Plus loin avec smartd : être informé par courrier de l'état des disques

Le paquetage smartmontools contient en fait un démon smartd capable d'exécuter une vérification périodique des disques. Chaque disque compatible "smart" définit un tableau de variables (nommées attributs) reflétant son état de santé.


On peut ajuster ces vérifications via le fichier de configuration /etc/smartd.conf


À l'installation, c'est la directive :

DEVICESCAN -a -o on -S on -s L/../../6/03

qui est active. Explication des paramètres (voir man smartd) :

  • DEVICESCAN : tous les disques sont traités et le reste du fichier de configuration est ignoré
  • -a : équivalent à un ensemble de paramètres (H, f, t, -l selftest, l error, C 197, U 198) signalant des changements critiques dans l'état de différents attibuts
  • -o on : autorise le test automatique hors-ligne
  • -S on : active l'attribut sauvegarde automatique
  • -s L/../../6/03 : effectue une vérification longue (L) tous les samedis (6) à trois heures (03)


On peut vouloir traiter les disques différemment et surtout être averti automatiquement en cas de problèmes.

Pour cela, il existe une option -m <addresse(s)> qui aura pour effet d'envoyer un courriel d'avertissement à un ou plusieurs destinataires.

Par exemple, on pourra commenter (faire précéder d'un dièse #) la ligne commençant par DEVICESCAN et ajouter une ligne comme celle-ci (à adapter à votre cas) juste en-dessous :

/dev/sda -d sat -s L/../.././18 -m jcl

ce qui enverra un rapport après un test long chaque jour à l'utilisateur local jcl (si un serveur de messagerie locale est installé).


Au moment de la configuration, on peut vérifier que l'envoi de courriel s'effectue correctement avec l'option -M test :

/dev/sda -d sat -s L/../.././18 -m jcl -M test

Lors du prochain démarrage de smartd, un courriel sera envoyé. Pour redémarrer le service smartd :

Image:Konsole.png
[root@ordi ~]# service smartd restart

Après la vérification on peut naturellement supprimer l'option -M test .

Liens externes