====== 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). S.M.A.R.T. **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 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]] =)