====== SMARTMONTOOLS ======
* Objet : smartmontools.
* Niveau requis : {{tag>débutant avisé}}
* Commentaires : //Surveillance des disques. //
* Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-)
* Suivi : {{tag>à-tester}}
* Création par [[user>smolski]] le 17-08-2010
* Testé par <...> le <...> FIXME
* Commentaires sur le forum : [[http://debian-facile.org/viewtopic.php?id=2888 | Lien vers le forum concernant ce tuto]]((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !))
== Remarque ==
Il est indispensable de vérifier si les disques supportent les fonctions S.M.A.R.T. (Self-Monitoring, Analysis and Reporting Technology).
**Nota :**
Contributeurs, les FIXME sont là pour vous aider, supprimez-les une fois le problème corrigé ou le champ rempli !
===== Installation =====
apt-get update && apt-get install smartmontools
===== Préambule =====
Le paquet ''smartmontools'' contient deux utilitaires (smartctl et smartd) pour la surveillance et le contrôle de l'état des disques.\\
Le démon enverra un mail à **root** s'il détecte le moindre problème (un seul mail par problème, pas de SPAM).\\
En dehors du démon, Smartmontools peut être utilisé par exemple par **phpSysInfo** pour afficher l'état des disques.
===== Utilisation =====
==== Vérification ====
Avant de poursuivre, il est indispensable de vérifier si les disques supportent les fonctions S.M.A.R.T.
Par exemple pour le disque sda:
smartctl -i /dev/sda
Ce qui renverra quelque chose comme (en bleu les infos les plus utiles) :
START OF INFORMATION SECTION
Model Family: SAMSUNG SpinPoint M5 series
Device Model: SAMSUNG HM160HI
Serial Number: S10UJD0P872034
Firmware Version: HH100-08
User Capacity: 160 041 885 696 bytes
Device is: In smartctl database [for details use: -P show]
ATA Version is: 7
ATA Standard is: ATA/ATAPI-7 T13 1532D revision 0
Local Time is: Thu Aug 19 08:41:44 2010 CEST
SMART support is: Available - device has SMART capability.
SMART support is: Disabled
SMART Disabled. Use option -s with argument 'on' to enable it.
les infos les plus utiles :
Device is: In smartctl database [for details use: -P show]
...
SMART support is: Available - device has SMART capability.
SMART support is: Disabled
==== TP - Activer Smart ====
Activer ensuite les capacités S.M.A.R.T. pour chaque disque (à faire une fois pour toutes, théoriquement si l'OS est réinstallé il sera inutile de recommencer) :
smartctl --smart=on --offlineauto=on --saveauto=on /dev/sda
==== Afficher un disque ====
Pour afficher l'état d'un disque :
smartctl --all /dev/sda
smartctl 5.40 2010-07-12 r3124 [i686-pc-linux-gnu] (local build)
Copyright (C) 2002-10 by Bruce Allen, http://smartmontools.sourceforge.net
=== START OF INFORMATION SECTION ===
Model Family: SAMSUNG SpinPoint M5 series
Device Model: SAMSUNG HM160HI
Serial Number: S10UJD0P872034
Firmware Version: HH100-08
User Capacity: 160 041 885 696 bytes
Device is: In smartctl database [for details use: -P show]
ATA Version is: 7
ATA Standard is: ATA/ATAPI-7 T13 1532D revision 0
Local Time is: Thu Aug 19 08:48:49 2010 CEST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED
General SMART Values:
Offline data collection status: (0x82) Offline data collection activity
was completed without error.
Auto Offline Data Collection: Enabled.
Self-test execution status: ( 0) The previous self-test routine completed
without error or no self-test has ever
been run.
Total time to complete Offline
data collection: ( 54) seconds.
Offline data collection
capabilities: (0x5b) SMART execute Offline immediate.
Auto Offline data collection on/off support.
Suspend Offline collection upon new
command.
Offline surface scan supported.
Self-test supported.
No Conveyance Self-test supported.
Selective Self-test supported.
SMART capabilities: (0x0003) Saves SMART data before entering
power-saving mode.
Supports SMART auto save timer.
Error logging capability: (0x01) Error logging supported.
General Purpose Logging supported.
Short self-test routine
recommended polling time: ( 2) minutes.
Extended self-test routine
recommended polling time: ( 54) minutes.
SCT capabilities: (0x003f) SCT Status supported.
SCT Error Recovery Control supported.
SCT Feature Control supported.
SCT Data Table supported.
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 0x000f 100 100 051 Pre-fail Always - 0
3 Spin_Up_Time 0x0007 252 252 025 Pre-fail Always - 1812
4 Start_Stop_Count 0x0032 100 100 000 Old_age Always - 121
5 Reallocated_Sector_Ct 0x0033 252 252 010 Pre-fail Always - 0
7 Seek_Error_Rate 0x000e 252 252 051 Old_age Always - 0
8 Seek_Time_Performance 0x0024 252 252 015 Old_age Offline - 0
9 Power_On_Hours 0x0032 099 099 000 Old_age Always - 686
10 Spin_Retry_Count 0x0032 252 252 051 Old_age Always - 0
12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always - 78
191 G-Sense_Error_Rate 0x0032 100 100 000 Old_age Always - 361
192 Power-Off_Retract_Count 0x0032 100 100 000 Old_age Always - 34
194 Temperature_Celsius 0x0022 142 109 000 Old_age Always - 32 (Lifetime Min/Max 25/43)
195 Hardware_ECC_Recovered 0x001a 100 100 000 Old_age Always - 0
196 Reallocated_Event_Count 0x0032 252 252 000 Old_age Always - 0
197 Current_Pending_Sector 0x0012 252 252 000 Old_age Always - 0
198 Offline_Uncorrectable 0x0030 252 252 000 Old_age Offline - 0
199 UDMA_CRC_Error_Count 0x0036 200 200 000 Old_age Always - 0
200 Multi_Zone_Error_Rate 0x000a 100 100 000 Old_age Always - 0
201 Soft_Read_Error_Rate 0x0032 252 252 000 Old_age Always - 0
223 Load_Retry_Count 0x0032 100 100 000 Old_age Always - 28
225 Load_Cycle_Count 0x0032 100 100 000 Old_age Always - 64
SMART Error Log Version: 1
No Errors Logged
SMART Self-test log structure revision number 1
No self-tests have been logged. [To run self-tests, use: smartctl -t]
Note: selective self-test log revision number (0) not 1 implies that no selective self-test has ever been run
SMART Selective self-test log data structure revision number 0
Note: revision number not 1 implies that no selective self-test has ever been run
SPAN MIN_LBA MAX_LBA CURRENT_TEST_STATUS
1 0 0 Not_testing
2 0 0 Not_testing
3 0 0 Not_testing
4 0 0 Not_testing
5 0 0 Not_testing
Selective self-test flags (0x0):
After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.
Notez la colonne "ID#" qui indique les valeurs à utiliser éventuellement dans les directives du fichier du configuration ''/etc/smartd.conf''.
==== Les attributs SMART ====
Voici la liste des attributs habituels que l'on trouve sur un disque dur :
^Nom de l'attribut ^Rôle |
|Raw_Read_Error_Rate |Fréquence d'apparition d'erreurs pendant la lecture de données brutes |
|Spin_Up_Time |Temps de mise en rotation du disque |
|Start_Stop_Count |Nombre de cycles arrêt/démarrage de l'axe de rotation |
|Reallocated_Sector_Ct |Nombre de secteurs ré-alloués |
|Seek_Error_Rate |Fréquence d'erreurs pendant le positionnement de la tête magnétique |
|Power_On_Hours |Nombre d'heures de fonctionnement |
|Spin_Retry_Count |Nombre de mises en rotation forcée du disque |
|Power_Cycle_Count |Nombre de cycles de mise sous tension |
|Temperature_Celsius |Température interne du disque en degrés Celsius |
|Hardware_ECC_Recovered |Nombre de corrections ECC réalisées |
|Current_Pending_Sector |Nombre de secteurs en attente de ré-allocation |
|Offline_Uncorrectable |Nombre de secteurs non ré-allouables |
|UDMA_CRC_Error_Count |Nombre d'erreurs de CRC pendant un accès Ultra DMA |
Une liste plus exhaustive des attributs est disponible (en anglais) sur ce site : http://smartlinux.sourceforge.net/smart/attributes.php \\
Chaque constructeur de disque dur implémente un composant électronique responsable de la surveillance de ces valeurs et de les rendre accessibles via le protocole SMART.
==== Analyse des valeurs ====
A chaque attribut est associé :
* un type **TYPE**
* un mode de mise à jour **UPDATED**
* une valeur brute **RAW_VALUE** (La valeur brute représente la valeur mesurée de l'attribut. Dans le cas de l'attribut « Temperature », elle représente la température du disque dur.)
* une valeur **WORST**, (représente la plus petite valeur de VALUE enregistrée.)
* une valeur **THRESH** (représente la valeur limite avant une dégradation des performances et un risque de panne élevé :
* si l'indice VALUE est inférieur ou égal à l'indice THRESH alors le disque risque de tomber en panne. WORST représente la plus petite valeur de VALUE enregistrée.)
* une valeur **VALUE** (représente un indice de fiabilité actuelle de cet attribut.)
Les valeurs de **THRESH** sont décidées par le constructeur du disque dur pour un modèle donné. Ces valeurs peuvent donc changer en fonction des configurations.
* Le type d'attribut **Old-age** indique que :
* si l'indice **VALUE** est //inférieur// à **THRESH** alors cela indique que le produit est en fin de vie du fait d'une usure normale.
* L'attribut **Pre-Fail** indique que :
* si l'indice **VALUE** est //inférieur// à **THRESH** alors une panne est imminente, il faut prévoir un remplacement.
Il existe deux méthodes pour mettre à jour les valeurs des attributs.
- La première dite **always** est la plus commune. Le composant électronique observe en permanence cet attribut. A chaque consultation de l'attribut, on peut y lire la valeur en cours. Ainsi, la température, le nombre d'erreurs ECC sont à jour en permanence.
- Les attributs dits **offline** ne seront remis à jour que lors d'un test du disque avec l'un des quatre modes :
- offline,
- short,
- long,
- conveyance.
Le champ **WHEN_FAILED** indique la probabilité de panne :
* //FAILING_NOW// indique une panne imminente,
* //In_the_past// indique que l'indice **VALUE** est déjà passé une fois sous la valeur **THRESH** : il faudra surveiller ce disque de près.
L'absence de valeur indique que le disque fonctionne normalement.
=== Activer le démon ===
Pour activer le démon, il faut dé-commenter avec un éditeur de texte comme [[:doc:editeurs:nano]] par exemple une ligne de son fichier de configuration :
nano /etc/default/smartmontools
...
start_smartd=yes
...
==== Configurer smartmontools ====
Par défaut, ''Smartmontools'' insère dans **/var/log/daemon.log** des informations à propos des changements de températures au format normalisé mais tous les fabricants ne respectent pas les mêmes normes (!) ce qui peut donner des résultats aberrants :
.../... Device: /dev/sda [SAT], SMART Usage Attribute: 194 Temperature_Celsius changed from 145 to 142
A priori un disque est incapable de fonctionner à une température de 145°C ! ;-)
Il faut configurer Smartmontools pour utiliser les températures au format brut ainsi :
nano /etc/smartd.conf
DEVICESCAN -R 194 -d removable -n standby -m root -M exec /usr/share/smartmontools/smartd-runner
**Le principe :** \\
La directive ''-R'' indique d'utiliser le format brut ( //raw// ) pour le paramètre **194** la température, voir la fameuse colonne "ID#" plus haut.
Il y a de nombreuses autres directives intéressantes comme par exemple ''-I'' qui permet d'ignorer un paramètre.
Pour appliquer la même directive à différents paramètres, il faut multiplier les directives :
DEVICESCAN -I 194 -I 231 -I 9 .../...
Puis relancer le démon:
/etc/init.d/smartmontools start
==== Test manuel ====
Pour lancer manuellement un test complet immédiat sur un disque :
smartctl --test=long /dev/sda
Ou pour un test rapide :
smartctl --test=short /dev/sda
==== Disques exotiques ====
Pour les disques exotiques ou très récents qui ne figurent pas dans la base de données de **smartmontools**, il est probablement possible déjà de récupérer la base depuis les dernières sources du paquet pour mettre à jour celle du paquet installé par Debian mais la méthode reste à déterminer...
Bon monitoring :-)
===== Liens utiles sur le forum =====
* https://debian-facile.org/viewtopic.php?pid=247255#p247255 (Comprendre les erreurs sur le disque dur)
//Merci à// **calixtus06**// &// **Micp** //pour cette participation éclairante.// :-D
===== Liens et Remerciements =====
//Ah merci //**Fatimon**// pour ce belle éclairage sur cette commande //smartmontools//, beaucoup en feront leur profit, sûr ! (à commencer par moi.)// ;-)
//Et merci au tuto de //**lea-linux**// ici ://
* [[http://www.lea-linux.org/documentations/index.php/Hardware-hard_plus-smart]]
* [[https://fr.wikipedia.org/wiki/Self-Monitoring,_Analysis_and_Reporting_Technology#Attributs_S.M.A.R.T._connus]] \\ De Y316 sur le forum df là : [[https://debian-facile.org/viewtopic.php?pid=165831#p165831]] =)