Surveillance et vérification de l'état SSD sous Linux

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# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE 1 Raw_Read_Error_Rate 0x000f 111 099 006 Pre-fail Always - 29694249 3 Spin_Up_Time 0x0003 100 098 085 Pre-fail Always - 0 4 Start_Stop_Count 0x0032 095 095 020 Old_age Always - 5413 5 Reallocated_Sector_Ct 0x0033 100 100 036 Pre-fail Always - 3 7 Seek_Error_Rate 0x000f 071 060 030 Pre-fail Always - 51710773327 9 Power_On_Hours 0x0032 070 070 000 Old_age Always - 26423 10 Spin_Retry_Count 0x0013 100 100 097 Pre-fail Always - 0 12 Power_Cycle_Count 0x0032 096 037 020 Old_age Always - 4836 184 End-to-End_Error 0x0032 100 100 099 Old_age Always - 0 187 Reported_Uncorrect 0x0032 072 072 000 Old_age Always - 28 188 Command_Timeout 0x0032 100 096 000 Old_age Always - 4295033738 189 High_Fly_Writes 0x003a 100 100 000 Old_age Always - 0 190 Airflow_Temperature_Cel 0x0022 056 042 045 Old_age Always In_the_past 44 (Min/Max 21/44 #22) 191 G-Sense_Error_Rate 0x0032 100 100 000 Old_age Always - 184 192 Power-Off_Retract_Count 0x0032 100 100 000 Old_age Always - 104 193 Load_Cycle_Count 0x0032 001 001 000 Old_age Always - 395415 194 Temperature_Celsius 0x0022 044 058 000 Old_age Always - 44 (0 13 0 0 0) 195 Hardware_ECC_Recovered 0x001a 050 045 000 Old_age Always - 29694249 197 Current_Pending_Sector 0x0012 100 100 000 Old_age Always - 1 198 Offline_Uncorrectable 0x0010 100 100 000 Old_age Offline - 1 199 UDMA_CRC_Error_Count 0x003e 200 200 000 Old_age Always - 0 240 Head_Flying_Hours 0x0000 100 253 000 Old_age Offline - 25131 (246 202 0) 241 Total_LBAs_Written 0x0000 100 253 000 Old_age Offline - 3028413736 242 Total_LBAs_Read 0x0000 100 253 000 Old_age Offline - 1613088055 254 Free_Fall_Sensor 0x0032 100 100 000 Old_age Always - 0 SMART Error Log Version: 1 ATA Error Count: 3 CR = Command Register [HEX] FR = Features Register [HEX] SC = Sector Count Register [HEX] SN = Sector Number Register [HEX] CL = Cylinder Low Register [HEX] CH = Cylinder High Register [HEX] DH = Device/Head Register [HEX] DC = Device Command Register [HEX] ER = Error register [HEX] ST = Status register [HEX] Powered_Up_Time is measured from power on, and printed as DDd+hh:mm:SS.sss where DD=days, hh=hours, mm=minutes, SS=sec, and sss=millisec. It "wraps" after 49.710 days. Error 3 occurred at disk power-on lifetime: 21171 hours (882 days + 3 hours) When the command that caused the error occurred, the device was active or idle. After command completion occurred, registers were: ER ST SC SN CL CH DH -- -- -- -- -- -- -- 40 51 00 ff ff ff 0f Error: UNC at LBA = 0x0fffffff = 268435455 Commands leading to the command that caused the error were: CR FR SC SN CL CH DH DC Powered_Up_Time Command/Feature_Name -- -- -- -- -- -- -- -- ---------------- -------------------- 60 00 08 ff ff ff 4f 00 00:45:12.580 READ FPDMA QUEUED 60 00 08 ff ff ff 4f 00 00:45:12.580 READ FPDMA QUEUED 60 00 08 ff ff ff 4f 00 00:45:12.579 READ FPDMA QUEUED 60 00 08 ff ff ff 4f 00 00:45:12.571 READ FPDMA QUEUED 60 00 20 ff ff ff 4f 00 00:45:12.543 READ FPDMA QUEUED Error 2 occurred at disk power-on lifetime: 21171 hours (882 days + 3 hours) When the command that caused the error occurred, the device was active or idle. After command completion occurred, registers were: ER ST SC SN CL CH DH -- -- -- -- -- -- -- 40 51 00 ff ff ff 0f Error: UNC at LBA = 0x0fffffff = 268435455 Commands leading to the command that caused the error were: CR FR SC SN CL CH DH DC Powered_Up_Time Command/Feature_Name -- -- -- -- -- -- -- -- ---------------- -------------------- 60 00 00 ff ff ff 4f 00 00:45:09.456 READ FPDMA QUEUED 60 00 00 ff ff ff 4f 00 00:45:09.451 READ FPDMA QUEUED 61 00 08 ff ff ff 4f 00 00:45:09.450 WRITE FPDMA QUEUED 60 00 00 ff ff ff 4f 00 00:45:08.878 READ FPDMA QUEUED 60 00 00 ff ff ff 4f 00 00:45:08.856 READ FPDMA QUEUED Error 1 occurred at disk power-on lifetime: 21131 hours (880 days + 11 hours) When the command that caused the error occurred, the device was active or idle. After command completion occurred, registers were: ER ST SC SN CL CH DH -- -- -- -- -- -- -- 40 51 00 ff ff ff 0f Error: UNC at LBA = 0x0fffffff = 268435455 Commands leading to the command that caused the error were: CR FR SC SN CL CH DH DC Powered_Up_Time Command/Feature_Name -- -- -- -- -- -- -- -- ---------------- -------------------- 60 00 00 ff ff ff 4f 00 05:52:18.809 READ FPDMA QUEUED 61 00 00 7e fb 31 45 00 05:52:18.806 WRITE FPDMA QUEUED 60 00 00 ff ff ff 4f 00 05:52:18.571 READ FPDMA QUEUED ea 00 00 00 00 00 a0 00 05:52:18.529 FLUSH CACHE EXT 61 00 08 ff ff ff 4f 00 05:52:18.527 WRITE FPDMA QUEUED SMART Self-test log structure revision number 1 Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error # 1 Short offline Completed without error 00% 10904 - # 2 Short offline Completed without error 00% 12 - # 3 Short offline Completed without error 00% 0 - SMART Selective self-test log data structure revision number 1 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. 

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# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE 5 Reallocated_Sector_Ct 0x0033 100 100 036 Pre-fail Always - 3 

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# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE 7 Seek_Error_Rate 0x000f 071 060 030 Pre-fail Always - 51710773327 

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# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE 9 Power_On_Hours 0x0032 070 070 000 Old_age Always - 26423 

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# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE 1 Raw_Read_Error_Rate 0x000a 100 100 000 Old_age Always - 0 2 Throughput_Performance 0x0005 100 100 050 Pre-fail Offline - 0 3 Spin_Up_Time 0x0007 100 100 050 Pre-fail Always - 0 5 Reallocated_Sector_Ct 0x0013 100 100 050 Pre-fail Always - 0 7 Unknown_SSD_Attribute 0x000b 100 100 050 Pre-fail Always - 0 8 Unknown_SSD_Attribute 0x0005 100 100 050 Pre-fail Offline - 0 9 Power_On_Hours 0x0012 100 100 000 Old_age Always - 171 10 Unknown_SSD_Attribute 0x0013 100 100 050 Pre-fail Always - 0 12 Power_Cycle_Count 0x0012 100 100 000 Old_age Always - 105 166 Unknown_Attribute 0x0012 100 100 000 Old_age Always - 0 167 Unknown_Attribute 0x0022 100 100 000 Old_age Always - 0 168 Unknown_Attribute 0x0012 100 100 000 Old_age Always - 0 169 Unknown_Attribute 0x0013 100 100 010 Pre-fail Always - 100 170 Unknown_Attribute 0x0013 100 100 010 Pre-fail Always - 0 173 Unknown_Attribute 0x0012 200 200 000 Old_age Always - 0 175 Program_Fail_Count_Chip 0x0013 100 100 010 Pre-fail Always - 0 192 Power-Off_Retract_Count 0x0012 100 100 000 Old_age Always - 18 194 Temperature_Celsius 0x0023 063 032 020 Pre-fail Always - 37 (Min/Max 11/68) 197 Current_Pending_Sector 0x0012 100 100 000 Old_age Always - 0 240 Unknown_SSD_Attribute 0x0013 100 100 050 Pre-fail Always - 0 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] SMART Selective self-test log data structure revision number 1 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. 

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 # 1 Short offline Completed without error 00% 171 - 

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 # 1 Short offline Completed without error 00% 26429 - # 2 Short offline Completed without error 00% 10904 - # 3 Short offline Completed without error 00% 12 - # 4 Short offline Completed without error 00% 0 - 

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 # 1 Extended offline Completed: read failure 20% 26430 810665229 # 2 Short offline Completed without error 00% 26429 - # 3 Short offline Completed without error 00% 10904 - # 4 Short offline Completed without error 00% 12 - # 5 Short offline Completed without error 00% 0 - 

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 # 1 Selective offline Completed without error 00% 26432 - # 2 Extended offline Completed: read failure 20% 26430 810665229 # 3 Short offline Completed without error 00% 26429 - # 4 Short offline Completed without error 00% 10904 - # 5 Short offline Completed without error 00% 12 - # 6 Short offline Completed without error 00% 0 - 

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 !

, !

Source: https://habr.com/ru/post/fr461929/


All Articles