Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
doc:systeme:smartmontools [19/08/2010 12:14] smolski |
doc:systeme:smartmontools [22/09/2013 23:31] 127.0.0.1 modification externe |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ====== SMARTMONTOOLS ====== | ||
+ | * Objet : commande smartmontools - Surveillance des disques. | ||
+ | * Niveau requis : DÉBUTANT AVISÉ | ||
+ | * Commentaires : //il est indispensable de vérifier si les disques supportent les fonctions S.M.A.R.T.// | ||
+ | * Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) et [[:doc:editeurs:nano|nano]]. | ||
+ | |||
+ | ===== Installation ===== | ||
+ | |||
+ | <code bash> | ||
+ | # apt-get install smartmontools</code> | ||
+ | |||
+ | ===== Remarque ===== | ||
+ | |||
+ | ''Smartmontools'' est un outil de surveillance 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: | ||
+ | <code bash> | ||
+ | # smartctl -i /dev/sda</code> | ||
+ | |||
+ | Ce qui renverra quelque chose comme (en bleu les infos les plus utiles) : | ||
+ | |||
+ | <code> | ||
+ | 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.</code> | ||
+ | |||
+ | les infos les plus utiles : | ||
+ | <code> | ||
+ | Device is: In smartctl database [for details use: -P show] | ||
+ | |||
+ | ... | ||
+ | |||
+ | SMART support is: Available - device has SMART capability. | ||
+ | SMART support is: Disabled</code> | ||
+ | |||
+ | ==== 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) : | ||
+ | <code bash> | ||
+ | # smartctl --smart=on --offlineauto=on --saveauto=on /dev/sda</code> | ||
+ | |||
+ | ==== Afficher un disque ==== | ||
+ | |||
+ | Pour afficher l'état d'un disque : | ||
+ | <code bash> | ||
+ | # smartctl --all /dev/sda</code> | ||
+ | <code> | ||
+ | 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.</code> | ||
+ | |||
+ | <note tip>Notez la colonne "ID#" qui indique les valeurs à utiliser éventuellement dans les directives du fichier du configuration ''/etc/smartd.conf''.</note> | ||
+ | |||
+ | ==== 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 \\ | ||
+ | <note>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.</note> | ||
+ | |||
+ | ==== 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.) | ||
+ | |||
+ | <note>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.</note> | ||
+ | |||
+ | * 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. | ||
+ | |||
+ | <note tip>L'absence de valeur indique que le disque fonctionne normalement.</note> | ||
+ | === 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 : | ||
+ | <code bash> | ||
+ | # nano /etc/default/smartmontools | ||
+ | ... | ||
+ | start_smartd=yes | ||
+ | ...</code> | ||
+ | |||
+ | ==== 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 : | ||
+ | <code> | ||
+ | .../... Device: /dev/sda [SAT], SMART Usage Attribute: 194 Temperature_Celsius changed from 145 to 142</code> | ||
+ | |||
+ | 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 : | ||
+ | <code bash> | ||
+ | # vi /etc/smartd.conf | ||
+ | DEVICESCAN -R 194 -d removable -n standby -m root -M exec /usr/share/smartmontools/smartd-runner</code> | ||
+ | |||
+ | **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: | ||
+ | <code bash> | ||
+ | # /etc/init.d/smartmontools start</code> | ||
+ | |||
+ | ==== Test manuel ==== | ||
+ | |||
+ | Pour lancer manuellement un test complet immédiat sur un disque : | ||
+ | <code bash> | ||
+ | # smartctl --test=long /dev/sda</code> | ||
+ | |||
+ | Ou pour un test rapide : | ||
+ | <code bash> | ||
+ | # smartctl --test=short /dev/sda</code> | ||
+ | |||
+ | ==== 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 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 |