Bonjour encore. Une traduction de l'article suivant a été préparée spécialement pour les étudiants du cours
Administrateur Linux . C'est parti!

Qu'est-ce que SMART?
SMART
(pour Self-Monitoring, Analysis, and Reporting Technology) est une technologie intégrée aux disques tels que les disques durs ou les SSD. Sa tâche principale est de surveiller l'état.
En fait, SMART contrôle plusieurs paramètres pendant les opérations normales du disque. Il surveille des paramètres tels que le nombre d'erreurs de lecture, le temps de démarrage du disque et même l'état de l'environnement. En outre, SMART peut également exécuter des tests à l'aide du lecteur.
Idéalement, SMART prédira les défaillances prévisibles, telles que les défaillances causées par l'usure mécanique ou la détérioration de la surface du disque, ainsi que les défaillances imprévisibles causées par tout défaut inattendu. Étant donné que les disques ne tombent généralement pas en panne soudainement, SMART aide le système d'exploitation ou l'administrateur système à identifier les disques qui tomberont bientôt en panne afin qu'ils puissent être remplacés et éviter la perte de données.
Qu'est-ce qui ne s'applique pas à SMART?
Tout cela, bien sûr, est cool. Cependant, SMART n'est pas une boule de cristal. Il ne peut pas prédire la panne avec une probabilité absolue et ne peut garantir que le variateur ne tombera pas en panne sans avertissement. Dans le meilleur des cas, SMART devrait être utilisé pour évaluer la probabilité d'une panne.
Compte tenu de la nature statistique de la prévision des pannes, la technologie SMART est particulièrement intéressée par les entreprises qui utilisent un grand nombre de périphériques de stockage. Afin de savoir avec quelle précision SMART peut prédire les pannes et signaler la nécessité de remplacer les disques dans les centres de données ou les mainframes de serveur, même des études spéciales ont été menées.
En 2016, Microsoft et l'Université de Pennsylvanie ont mené une étude sur les
SSD .
Selon cette étude, certains attributs SMART sont considérés comme de bons indicateurs de l'inévitabilité de l'échec. En particulier, l'article mentionne:
Compteur de secteurs de réallocation :
Malgré le fait que les technologies sous-jacentes soient radicalement différentes, cet indicateur reste en demande tant dans le monde des SSD que dans celui des disques durs. Il convient de noter qu'en raison des caractéristiques des algorithmes d'équilibrage de l'usure utilisés dans les SSD, lorsque plusieurs secteurs échouent, alors avec une forte probabilité, nous pouvons supposer que d'autres échoueront bientôt.
Erreurs dans la boucle Program / Erase (P / E):Ceci est un signe de problèmes avec l'équipement de mémoire flash principal lié au fait que le disque ne peut pas supprimer les données du bloc ou les y sauvegarder. Le fait est que le processus de production est imparfait, de sorte que l'apparition de telles erreurs peut être attendue. Cependant, la mémoire flash a un nombre limité de cycles d'écriture / suppression. Pour cette raison, une augmentation soudaine du nombre d'événements peut indiquer que le disque atteint sa limite et il est prévu que d'autres cellules de mémoire commencent également à échouer.
CRC et erreurs fatales («Erreur de données»):Des événements de ce type peuvent être causés par des erreurs de stockage ou des problèmes avec le canal de communication interne du lecteur. Cet indicateur prend en compte à la fois les erreurs corrigées (signalées sans problème au système hôte) et les erreurs non corrigées (à cause desquelles le lecteur se verrouille, ce qui a informé le système hôte qu'il ne pouvait pas être lu). En d'autres termes, les erreurs corrigées sont invisibles pour le système d'exploitation, mais elles affectent les performances du lecteur, augmentant la probabilité de réaffectation du secteur.
Nombre de rétrogradations SATA:En raison d'interférences temporaires, de problèmes avec le canal de communication entre le lecteur et l'hôte, ou en raison de problèmes internes avec le lecteur, l'interface SATA peut passer à une vitesse de transmission de signal inférieure. Une diminution de la vitesse de connexion en dessous du niveau nominal a un effet évident sur les performances du disque. Ainsi, cet indicateur est le plus significatif, surtout lorsqu'il est en corrélation avec la présence d'un ou plusieurs indicateurs précédents.
Selon l'étude, 62% des SSD défaillants ont montré la présence d'au moins un des symptômes ci-dessus. En revanche, on peut dire que 38% des lecteurs étudiés ont échoué sans indication de ces symptômes. Les études n'ont pas mentionné s'il y avait d'autres rapports de rejet de SMART pour d'autres "symptômes". Pour cette raison, vous ne pouvez pas corréler directement ces valeurs avec un échec sans avertissement dans 36% des cas à partir d'un article de Google.
Une étude de Microsoft et de l'Université de Pennsylvanie n'a pas révélé le modèle du disque de test, cependant, selon les auteurs, la plupart des disques proviennent du même fournisseur depuis plusieurs générations.
L'étude a également noté des différences significatives de fiabilité entre les différents modèles. Par exemple, le «pire» modèle étudié montre un taux d'échec de 20% 9 mois après la première erreur de réaffectation et jusqu'à 36% d'échecs dans les 9 mois suivant la première occurrence d'erreurs de données. Le "pire" modèle a été appelé l'ancienne génération de disques considérée dans l'article.
En revanche, avec les mêmes symptômes que ci-dessus, les disques de nouvelle génération sont tombés en panne à 3% et 20% selon les mêmes erreurs. Il est difficile de dire si ces chiffres peuvent s'expliquer par une amélioration de la conception de l'entraînement et du processus de production, ou si l'effet d'obsolescence joue ici un rôle.
La chose la plus intéressante qui est mentionnée dans l'article (j'ai écrit à ce sujet plus tôt) est qu'une augmentation du nombre d'erreurs enregistrées peut se produire comme indicateur alarmant:
"Il y a une forte probabilité de symptômes précédant la défaillance des SSD, qui se manifestent activement et progressent rapidement, réduisant considérablement la durée de vie du lecteur à plusieurs mois."
En d'autres termes, une erreur aléatoire signalée par SMART ne devrait certainement pas être considérée comme un signal d'échec imminent. Cependant, lorsqu'un SSD sain commence à signaler de plus en plus d'erreurs, vous devez vous attendre à une défaillance à court ou moyen terme.Mais comment savez-vous dans quel état se trouve votre SSD maintenant? Pour satisfaire votre curiosité, ou par envie de commencer à surveiller de près vos disques, vous pouvez utiliser l'
smartctl
surveillance
smartctl
.
Utilisation de smartctl
pour surveiller l'état de votre SSD sous Linux
Pour surveiller l'état SMART de votre disque, je suggère d'utiliser l'outil
smartctl
, qui fait partie du paquet
smartmontool
(au moins sur Debian / Ubuntu).
sudo apt install smartmontools
smartctl
est un
outil en ligne de commande , mais il est particulièrement utile lorsque vous devez automatiser la collecte de données, par exemple, à partir de vos serveurs.
La première étape de l'utilisation de
smartctl
consiste à vérifier si votre lecteur est SMART et est pris en charge par l'outil:
sh$ sudo smartctl -i /dev/sdb smartctl 6.6 2016-05-31 r4324 [x86_64-linux-4.9.0-6-amd64] (local build) Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org === START OF INFORMATION SECTION === Model Family: Seagate Momentus 7200.4 Device Model: ST9500420AS Serial Number: 5VJAS7FL LU WWN Device Id: 5 000c50 02fa0b800 Firmware Version: D005SDM1 User Capacity: 500,107,862,016 bytes [500 GB] Sector Size: 512 bytes logical/physical Rotation Rate: 7200 rpm Device is: In smartctl database [for details use: -P show] ATA Version is: ATA8-ACS T13/1699-D revision 4 SATA Version is: SATA 2.6, 3.0 Gb/s Local Time is: Mon Mar 12 15:54:43 2018 CET SMART support is: Available - device has SMART capability. SMART support is: Enabled
Comme vous pouvez le voir, le disque dur interne de mon ordinateur portable prend vraiment en charge SMART et il est allumé. Alors, comment obtenir le statut SMART maintenant? Y a-t-il des erreurs corrigées?
Signaler «sur toutes les informations du disque SMART» est l'option
-a
:
sh$ sudo smartctl -i -a /dev/sdb smartctl 6.6 2016-05-31 r4324 [x86_64-linux-4.9.0-6-amd64] (local build) Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org === START OF INFORMATION SECTION === Model Family: Seagate Momentus 7200.4 Device Model: ST9500420AS Serial Number: 5VJAS7FL LU WWN Device Id: 5 000c50 02fa0b800 Firmware Version: D005SDM1 User Capacity: 500,107,862,016 bytes [500 GB] Sector Size: 512 bytes logical/physical Rotation Rate: 7200 rpm Device is: In smartctl database [for details use: -P show] ATA Version is: ATA8-ACS T13/1699-D revision 4 SATA Version is: SATA 2.6, 3.0 Gb/s Local Time is: Mon Mar 12 15:56:58 2018 CET 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 See vendor-specific Attribute list for marginal Attributes. 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: ( 0) seconds. Offline data collection capabilities: (0x7b) SMART execute Offline immediate. Auto Offline data collection on/off support. Suspend Offline collection upon new command. Offline surface scan supported. Self-test supported. 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: ( 110) minutes. Conveyance self-test routine recommended polling time: ( 3) minutes. SCT capabilities: (0x103f) SCT Status supported. SCT Error Recovery Control supported. SCT Feature Control supported. SCT Data Table supported. SMART Attributes Data Structure revision number: 10 Vendor Specific SMART Attributes with Thresholds: ID
Comprendre la sortie des commandes smartctl
Le résultat est beaucoup d'informations qui ne sont pas toujours faciles à comprendre. La partie la plus intéressante est probablement la partie intitulée «Attributs SMART spécifiques au fournisseur avec seuils». Il rapporte diverses statistiques collectées par l'appareil SMART et vous permet de comparer ces valeurs (actuelles ou pires pour tous les temps) avec un certain seuil défini par le fournisseur.
Par exemple, voici mes rapports sur les secteurs réaffectés sur disque:
ID
Vous remarquerez peut-être l'attribut
«Pre-fail» . Cela signifie que la valeur est anormale. Ainsi, si la valeur dépasse le seuil, la probabilité de défaillance est élevée. Une autre catégorie de
"Old_age" est utilisée pour les attributs qui correspondent aux valeurs de "l'usure normale".
Le dernier champ (ici avec une valeur "3") correspond à la valeur d'attribut d'origine signalée par le variateur. Habituellement, ce nombre a une signification physique. Voici le nombre réel de secteurs réaffectés. Pour d'autres attributs, il peut s'agir de la température en degrés Celsius, du temps en heures ou en minutes ou du nombre de fois qu'une certaine condition a été remplie pour un disque.
En plus de la valeur initiale, un lecteur compatible SMART doit signaler des «valeurs normalisées» (valeurs de champ, pire et seuil). Ces valeurs sont normalisées dans la plage de 1 à 255 (0 à 255 pour les valeurs de seuil). Le firmware du disque effectue cette normalisation en utilisant un algorithme interne. De plus, différents fabricants peuvent normaliser le même attribut de différentes manières. La plupart des valeurs sont présentées en pourcentage et plus elles sont élevées, mieux c'est, mais ce n'est pas toujours le cas. Lorsque le paramètre est inférieur ou égal à la valeur de seuil spécifiée par le fabricant, le disque est considéré comme défectueux en termes de cet attribut. En se souvenant de toutes les instructions de la première partie de l'article, lorsque l'attribut affichant la valeur
«pré-échec» échouait toujours, il est très probable que le disque échoue bientôt.
Comme deuxième exemple, prenez le
«taux d'erreur de recherche» :
ID
En fait (et c'est le principal problème avec les rapports SMART), seul le fournisseur comprend la valeur exacte des champs de chaque attribut. Dans mon cas, Seagate utilise une échelle logarithmique pour normaliser la valeur. Ainsi, «71» signifie environ une erreur pour 10 millions de demandes (10 pour une puissance de 7,1). C'est drôle que le pire indicateur de tous les temps soit une erreur pour 1 million de demandes (10 au 6e degré).
Si je comprends bien, cela signifie que les têtes de mon disque sont désormais localisées avec plus de précision qu'auparavant. Je n'ai pas surveillé de près ce disque, donc j'analyse les données obtenues de manière très subjective. Peut-être que le lecteur a juste dû «roder» un peu depuis sa mise en service? Ou peut-être est-ce une conséquence de l'usure mécanique des pièces et, par conséquent, il y a maintenant moins de friction? Dans tous les cas, quelle qu'en soit la raison, cette valeur est plus une mesure de performance qu'un avertissement précoce d'une erreur. Donc ça ne me dérange pas beaucoup.
En plus des erreurs ci-dessus et de trois erreurs extrêmement suspectes enregistrées il y a environ six mois, ce disque est dans un état étonnamment bon (selon SMART) pour le disque de stock de l'ordinateur portable, qui a fonctionné pendant plus de 1100 jours (26423 heures).
ID
Par curiosité, j'ai effectué le même test sur un ordinateur portable beaucoup plus récent équipé d'un SSD:
sh$ sudo smartctl -i /dev/sdb smartctl 6.5 2016-01-24 r4214 [x86_64-linux-4.10.0-32-generic] (local build) Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org === START OF INFORMATION SECTION === Device Model: TOSHIBA THNSNK256GVN8 Serial Number: 17FS131LTNLV LU WWN Device Id: 5 00080d 9109b2ceb Firmware Version: K8XA4103 User Capacity: 256 060 514 304 bytes [256 GB] Sector Sizes: 512 bytes logical, 4096 bytes physical Rotation Rate: Solid State Device Form Factor: M.2 Device is: Not in smartctl database [for details use: -P showall] ATA Version is: ACS-3 (minor revision not indicated) SATA Version is: SATA 3.2, 6.0 Gb/s (current: 6.0 Gb/s) Local Time is: Tue Mar 13 01:03:23 2018 CET SMART support is: Available - device has SMART capability. SMART support is: Enabled
La première chose qui attire votre attention est que malgré la présence de SMART, l'appareil n'est pas dans la base de données
smartctl
. Mais cela n'empêchera pas l'outil de collecter des données à partir du SSD, cependant, il ne pourra pas rapporter les valeurs exactes des différents attributs spécifiques au fournisseur:
sh$ sudo smartctl -a /dev/sdb smartctl 6.5 2016-01-24 r4214 [x86_64-linux-4.10.0-32-generic] (local build) Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org === START OF READ SMART DATA SECTION === SMART overall-health self-assessment test result: PASSED General SMART Values: Offline data collection status: (0x00) Offline data collection activity was never started. Auto Offline Data Collection: Disabled. 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: ( 120) 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: ( 11) minutes. SCT capabilities: (0x003d) 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
Ci-dessus, vous voyez la sortie d'un tout nouveau SSD. Les données sont compréhensibles même en l'absence de normalisation ou de méta-informations pour les données d'un fournisseur particulier, comme dans mon cas avec
«Unknown_SSD_Attribute». Je ne peux qu'espérer que les futures versions de
smartctl
auront des données sur ce modèle de lecteur dans la base de données, et je peux mieux identifier les problèmes potentiels.
Testez votre SSD sur Linux avec smartctl
Jusqu'à présent, nous avons examiné les données collectées pendant le fonctionnement normal du lecteur. Cependant, le protocole SMART prend également en charge plusieurs commandes pour les tests hors ligne afin d'exécuter des diagnostics à la demande.
Les tests hors ligne peuvent être effectués pendant les opérations normales du disque, sauf indication contraire. Étant donné que les demandes d'E / S de test et d'hôte seront en concurrence, les performances du disque chuteront pendant le test. La spécification SMART définit plusieurs types de tests autonomes:
Test autonome -t short
( -t short
)Un tel test vérifiera les performances électriques et mécaniques, ainsi que les performances de lecture du disque. De courts tests autonomes ne prennent généralement que quelques minutes (généralement de 2 à 10).
Test autonome étendu ( -t long
)Ce test prend presque deux fois plus de temps. Il s'agit généralement d'une version plus détaillée d'un court test autonome. De plus, ce test analysera la totalité de la surface du disque à la recherche d'erreurs de données sans limite de temps. La durée du test sera proportionnelle à la taille du disque.
Test d'expédition autonome ( -t conveyance
)Ce kit de test est proposé comme un moyen relativement rapide de vérifier les éventuels dommages survenus lors du transport de l'appareil.
Voici des exemples tirés des mêmes lecteurs que ci-dessus. Je vous suggère de deviner où:
sh$ sudo smartctl -t short /dev/sdb smartctl 6.5 2016-01-24 r4214 [x86_64-linux-4.10.0-32-generic] (local build) Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org === START OF OFFLINE IMMEDIATE AND SELF-TEST SECTION === Sending command: "Execute SMART Short self-test routine immediately in off-line mode". Drive command "Execute SMART Short self-test routine immediately in off-line mode" successful. Testing has begun. Please wait 2 minutes for test to complete. Test will complete after Mon Mar 12 18:06:17 2018 Use smartctl -X to abort test.
Une vérification est en cours. Attendons la fin pour voir le résultat:
sh$ sudo sh -c 'sleep 120 && smartctl -l selftest /dev/sdb' smartctl 6.5 2016-01-24 r4214 [x86_64-linux-4.10.0-32-generic] (local build) Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org === START OF READ SMART DATA SECTION === SMART Self-test log structure revision number 1 Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
Exécutons le même test sur un autre lecteur:
sh$ sudo smartctl -t short /dev/sdb smartctl 6.6 2016-05-31 r4324 [x86_64-linux-4.9.0-6-amd64] (local build) Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org === START OF OFFLINE IMMEDIATE AND SELF-TEST SECTION === Sending command: "Execute SMART Short self-test routine immediately in off-line mode". Drive command "Execute SMART Short self-test routine immediately in off-line mode" successful. Testing has begun. Please wait 2 minutes for test to complete. Test will complete after Mon Mar 12 21:59:39 2018 Use smartctl -X to abort test.
Et encore une fois, nous allons l'endormir pendant deux minutes et voir le résultat:
sh$ sudo sh -c 'sleep 120 && smartctl -l selftest /dev/sdb' smartctl 6.6 2016-05-31 r4324 [x86_64-linux-4.9.0-6-amd64] (local build) Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org === START OF READ SMART DATA SECTION === SMART Self-test log structure revision number 1 Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
Fait intéressant, dans ce cas, nous voyons que les fabricants du disque et de l'ordinateur semblent avoir déjà testé le disque (à une durée de vie de 0 heure et 12 heures). J'étais moi-même beaucoup moins préoccupé par l'état du lecteur qu'eux. Donc, comme j'ai déjà montré des tests rapides, je vais également exécuter le test avancé pour voir comment cela se produit.
sh$ sudo smartctl -t long /dev/sdb smartctl 6.6 2016-05-31 r4324 [x86_64-linux-4.9.0-6-amd64] (local build) Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org === START OF OFFLINE IMMEDIATE AND SELF-TEST SECTION === Sending command: "Execute SMART Extended self-test routine immediately in off-line mode". Drive command "Execute SMART Extended self-test routine immediately in off-line mode" successful. Testing has begun. Please wait 110 minutes for test to complete. Test will complete after Tue Mar 13 00:09:08 2018 Use smartctl -X to abort test.
Apparemment, cette fois, il faudra beaucoup plus de temps que lors d'un court test. Voyons donc:
sh$ sudo bash -c 'sleep $((110*60)) && smartctl -l selftest /dev/sdb' [sudo] password for sylvain: smartctl 6.6 2016-05-31 r4324 [x86_64-linux-4.9.0-6-amd64] (local build) Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org === START OF READ SMART DATA SECTION === SMART Self-test log structure revision number 1 Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
Dans le dernier test, notez la différence dans les résultats obtenus avec les tests courts et prolongés, même s'ils ont été effectués l'un après l'autre. Eh bien, ce lecteur n'est peut-être pas en si bon état! Je note que le test s'est arrêté après la première erreur de lecture. Par conséquent, si vous souhaitez obtenir des informations complètes sur toutes les erreurs de lecture, vous devrez continuer le test après chaque erreur. Je vous exhorte à jeter un œil à une page de manuel smartctl (8) très bien écrite pour plus d'informations sur les
-t select
-t select
,
N-max
et
-t select
pour pouvoir faire ceci:
sh$ sudo smartctl -t select,810665230-max /dev/sdb smartctl 6.6 2016-05-31 r4324 [x86_64-linux-4.9.0-6-amd64] (local build) Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org === START OF OFFLINE IMMEDIATE AND SELF-TEST SECTION === Sending command: "Execute SMART Selective self-test routine immediately in off-line mode". SPAN STARTING_LBA ENDING_LBA 0 810665230 976773167 Drive command "Execute SMART Selective self-test routine immediately in off-line mode" successful. Testing has begun.
smartctl 6.6 2016-05-31 r4324 [x86_64-linux-4.9.0-6-amd64] (local build) Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org === START OF READ SMART DATA SECTION === SMART Self-test log structure revision number 1 Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
Conclusion
Certainement, SMART est exactement la technologie qui devrait être ajoutée à votre boîte à outils pour surveiller la santé de vos lecteurs de serveur.
SMART Disk Monitoring Daemon smartd(8) ,
.
, , SMART . , , – , , . , RAID !
, !