Supervisión y comprobación del estado de SSD en Linux

Hola de nuevo Se ha preparado una traducción del siguiente artículo especialmente para estudiantes en el curso de Administrador de Linux . Vamos!



¿Qué es inteligente?


SMART (siglas en inglés de Tecnología de autocontrol, análisis e informes) es una tecnología integrada en unidades como discos duros o SSD. Su tarea principal es controlar la condición.

De hecho, SMART controla varios parámetros durante las operaciones normales del disco. Supervisa parámetros tales como la cantidad de errores de lectura, el tiempo de inicio del disco e incluso el estado del entorno. Además, SMART también puede ejecutar pruebas con la unidad.

Idealmente, SMART predecirá fallas predecibles, como fallas causadas por desgaste mecánico o deterioro de la superficie del disco, así como fallas impredecibles causadas por cualquier defecto inesperado. Dado que los discos generalmente no fallan repentinamente, SMART ayuda al sistema operativo o al administrador del sistema a identificar esos discos que pronto fallarán para poder reemplazarlos y evitar la pérdida de datos.

¿Qué no se aplica a SMART?


Todo esto, por supuesto, es genial. Sin embargo, SMART no es una bola de cristal. No puede predecir el fallo con probabilidad absoluta y no puede garantizar que la unidad no falle sin previo aviso. En el mejor de los casos, SMART debe usarse para evaluar la probabilidad de un colapso.

Dada la naturaleza estadística del pronóstico de fallas, la tecnología SMART está particularmente interesada en compañías que usan una gran cantidad de dispositivos de almacenamiento. Para saber con qué precisión SMART puede predecir fallas e informar la necesidad de reemplazar discos en centros de datos o mainframes de servidores, incluso se han realizado estudios especiales.

En 2016, Microsoft y la Universidad de Pensilvania realizaron un estudio relacionado con los SSD .

Según este estudio, algunos atributos SMART se consideran buenos indicadores de la inevitabilidad del fracaso. En particular, el artículo menciona:

Contador de sectores de Realloc :

A pesar de que las tecnologías subyacentes son radicalmente diferentes, este indicador sigue siendo solicitado tanto en el mundo de los SSD como en el mundo de los discos duros. Vale la pena señalar que, debido a las características de los algoritmos de equilibrio de desgaste utilizados en los SSD, cuando varios sectores fallan, con alta probabilidad podemos suponer que aún más fallarán pronto.

Errores en el ciclo Programa / Borrar (P / E):

Esta es una señal de problemas con el equipo principal de memoria flash relacionados con el hecho de que el disco no puede eliminar datos del bloque o guardarlos allí. El hecho es que el proceso de producción es imperfecto, por lo que se puede esperar la aparición de tales errores. Sin embargo, la memoria flash tiene un número limitado de ciclos de escritura / eliminación. Por esta razón, un aumento repentino en el número de eventos puede indicar que el disco está llegando a su límite, y se espera que otras celdas de memoria también comiencen a fallar.

CRC y errores fatales ("Error de datos"):

Los eventos de este tipo pueden ser causados ​​por errores de almacenamiento o problemas con el canal de comunicación interno de la unidad. Este indicador tiene en cuenta tanto los errores corregidos (informados al sistema host sin problemas) como los errores no corregidos (debido a que la unidad se bloquea, lo que informó al sistema host que no se podía leer). En otras palabras, los errores corregidos son invisibles para el sistema operativo, sin embargo, afectan el rendimiento del disco, lo que aumenta la probabilidad de reasignar el sector.

Recuento de cambios descendentes SATA:

Debido a interferencias temporales, problemas con el canal de comunicación entre la unidad y el host, o debido a problemas internos con la unidad, la interfaz SATA puede cambiar a una velocidad de transmisión de señal más baja. Bajar la velocidad de conexión por debajo del nivel nominal tiene un efecto obvio en el rendimiento del disco. Por lo tanto, este indicador es más significativo, especialmente cuando se correlaciona con la presencia de uno o más indicadores anteriores.

Según el estudio, el 62% de los SSD fallidos mostraron la presencia de al menos uno de los síntomas anteriores. Por otro lado, podemos decir que el 38% de las unidades estudiadas fallaron sin una indicación de estos síntomas. Los estudios no mencionaron si hubo otros informes de rechazo de SMART por otros "síntomas". Por esta razón, no puede correlacionar directamente estos valores con la falla sin previo aviso en el 36% de los casos de un artículo de Google.

Un estudio realizado por Microsoft y la Universidad de Pennsylvania no reveló el modelo del disco de prueba, sin embargo, según los autores, la mayoría de los discos han venido del mismo proveedor durante varias generaciones.

El estudio también observó diferencias significativas en la confiabilidad entre los diferentes modelos. Por ejemplo, el "peor" modelo estudiado muestra una tasa de falla del veinte por ciento 9 meses después del primer error de reasignación y hasta el 36 por ciento de las fallas dentro de los 9 meses posteriores a la primera aparición de errores de datos. El "peor" modelo se llamó la generación anterior de discos considerada en el artículo.

Por otro lado, con los mismos síntomas que antes, las unidades de nueva generación fallaron en 3% y 20% de acuerdo con los mismos errores. Es difícil decir si estas cifras pueden explicarse por una mejora en el diseño de la unidad y el proceso de producción, o si el efecto de la obsolescencia juega un papel aquí.

Lo más interesante que se menciona en el artículo (escribí sobre esto anteriormente) es que un aumento en el número de errores registrados puede ocurrir como un indicador alarmante:

"Hay una alta probabilidad de síntomas que preceden a la falla de los SSD, que se manifiestan activamente y progresan rápidamente, reduciendo en gran medida la vida útil de la unidad a varios meses".

En otras palabras, un error aleatorio informado por SMART definitivamente no debe considerarse una señal de falla inminente. Sin embargo, cuando un SSD saludable comienza a informar más y más errores, debe esperar una falla a corto o mediano plazo.

Pero, ¿cómo sabes en qué estado está tu SSD ahora? Para satisfacer su curiosidad, o por deseo de comenzar a monitorear de cerca sus unidades, puede usar la smartctl monitoreo smartctl .

Usando smartctl para monitorear el estado de su SSD en Linux


Para monitorear el estado SMART de su disco, sugiero usar la herramienta smartctl , que es parte del paquete smartmontool (al menos en Debian / Ubuntu).

 sudo apt install smartmontools 

smartctl es una herramienta de línea de comandos , pero es especialmente útil en casos en los que necesita automatizar la recopilación de datos, por ejemplo, desde sus servidores.

El primer paso para usar smartctl es verificar si su unidad tiene SMART y es compatible con la herramienta:

 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 

Como puede ver, el disco duro interno de mi computadora portátil realmente es compatible con SMART y está encendido. Entonces, ¿cómo obtener el estado SMART ahora? ¿Hay algún error fijo?

Informar "sobre toda la información del disco SMART" es la opción -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. 

Comprender la salida de los comandos de smartctl


El resultado es una gran cantidad de información que no siempre es fácil de entender. La parte más interesante es probablemente la parte denominada "Atributos SMART específicos del proveedor con umbrales". Informa varias estadísticas recopiladas por el dispositivo SMART y le permite comparar estos valores (actuales o peores de todos los tiempos) con un cierto umbral definido por el proveedor.

Por ejemplo, aquí están mis informes sobre sectores reasignados en disco:

 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 

Puede notar el atributo "Pre-falla" . Significa que el valor es anormal. Por lo tanto, si el valor excede el umbral, la probabilidad de falla es alta. Otra categoría de "Old_age" se utiliza para los atributos que corresponden a los valores de "desgaste normal".

El último campo (aquí con un valor de "3") corresponde al valor del atributo original que informa la unidad. Por lo general, este número tiene un significado físico. Aquí está el número real de sectores reasignados. Para otros atributos, esta puede ser la temperatura en grados Celsius, el tiempo en horas o minutos, o la cantidad de veces que se cumple una determinada condición para un disco.

Además del valor inicial, una unidad habilitada para SMART debe informar "valores normalizados" (valores de campo, peor y umbral). Estos valores están normalizados en el rango de 1-254 (0-255 para valores umbral). El firmware del disco realiza esta normalización utilizando algún algoritmo interno. Además, diferentes fabricantes pueden normalizar el mismo atributo de diferentes maneras. La mayoría de los valores se presentan como un porcentaje, y cuanto mayor sea, mejor, pero este no es siempre el caso. Cuando el parámetro es inferior o igual al valor umbral especificado por el fabricante, el disco se considera defectuoso en términos de este atributo. Teniendo en cuenta todas las instrucciones de la primera parte del artículo, cuando el atributo que muestra el valor "pre-falla" todavía falla, es muy probable que el disco falle pronto.

Como segundo ejemplo, tome la "tasa de error de búsqueda" :

 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 

De hecho (y este es el principal problema con los informes SMART), solo el proveedor comprende el valor exacto de los campos de cada atributo. En mi caso, Seagate utiliza una escala logarítmica para normalizar el valor. Por lo tanto, "71" significa aproximadamente un error por cada 10 millones de solicitudes (10 a la potencia de 7.1). Es curioso que el peor indicador de todos los tiempos fue un error por 1 millón de solicitudes (10 a 6to grado).

Si entiendo correctamente, esto significa que las cabezas de mi disco ahora están ubicadas con mayor precisión que antes. No supervisé de cerca este disco, por lo que analizo los datos obtenidos de manera muy subjetiva. ¿Quizás la unidad simplemente tuvo que "funcionar" un poco desde que se puso en funcionamiento? ¿O tal vez esto es una consecuencia del desgaste mecánico de las piezas y, por lo tanto, ahora hay menos fricción? En cualquier caso, sea cual sea el motivo, este valor es más una medida del rendimiento que una advertencia temprana de un error. Entonces no me molesta mucho.

Además de los anteriores y tres errores extremadamente sospechosos registrados hace aproximadamente seis meses, este disco está en condiciones sorprendentemente buenas (según SMART) para el disco de almacenamiento de la computadora portátil, que funcionó durante más de 1100 días (26423 horas).

 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 

Por curiosidad, realicé la misma prueba en una computadora portátil mucho más nueva equipada con 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 

Lo primero que llama la atención es que, a pesar de la presencia de SMART, el dispositivo no está en la base de datos de smartctl . Pero esto no impide que la herramienta recopile datos del SSD, sin embargo, no podrá informar los valores exactos de varios atributos específicos del proveedor:

 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. 

Arriba puede ver la salida de un nuevo SSD. Los datos son comprensibles incluso en ausencia de normalización o metainformación para los datos de un proveedor en particular, como en mi caso con "Unknown_SSD_Attribute". Solo puedo esperar que las futuras versiones de smartctl tengan datos sobre este modelo de unidad en la base de datos, y puedo identificar mejor los posibles problemas.

Pruebe su SSD en Linux con smartctl


Hasta ahora, hemos revisado los datos recopilados durante el funcionamiento normal del disco. Sin embargo, el protocolo SMART también admite varios comandos para pruebas fuera de línea para ejecutar diagnósticos a pedido.

Las pruebas sin conexión se pueden realizar durante las operaciones normales del disco, a menos que se especifique lo contrario. Debido a que las solicitudes de E / S de prueba y host competirán, el rendimiento del disco disminuirá durante la prueba. La especificación SMART define varios tipos de pruebas independientes:

Pruebas cortas e independientes ( -t short )
Dicha prueba verificará el rendimiento eléctrico y mecánico, así como el rendimiento de lectura del disco. Las pruebas autónomas cortas generalmente demoran solo unos minutos (generalmente de 2 a 10).

Pruebas independientes extendidas ( -t long )
Esta prueba lleva casi el doble de tiempo. Esto generalmente es solo una versión más detallada de una prueba independiente corta. Además, esta prueba escaneará toda la superficie del disco en busca de errores de datos sin límite de tiempo. La duración de la prueba será proporcional al tamaño del disco.

Prueba de envío independiente ( -t conveyance )
Este kit de prueba se propone como una forma relativamente rápida de verificar posibles daños que ocurrieron durante el transporte del dispositivo.

Aquí hay ejemplos tomados de las mismas unidades que estaban arriba. Te sugiero que adivines dónde:

 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. 

Un cheque está en progreso. Esperemos a que se complete para ver el resultado:

 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 - 

Ejecutemos la misma prueba en otra unidad:

 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. 

Y nuevamente, lo enviaremos a dormir por dos minutos y veremos el resultado:

 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 - 

Curiosamente, en este caso, vemos que los fabricantes del disco y la computadora parecen haber probado el disco (con un tiempo de vida de 0 horas y 12 horas). Definitivamente, yo estaba mucho menos preocupado por la condición del disco que ellos. Entonces, como ya mostré pruebas rápidas, también ejecutaré la prueba avanzada para ver cómo sucede.

 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. 

Aparentemente, esta vez tomará mucho más tiempo esperar que durante una prueba corta. Entonces veamos:

 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 - 

En la última prueba, preste atención a la diferencia en los resultados obtenidos usando las pruebas cortas y extendidas, incluso si se realizaron una tras otra. Bueno, tal vez esta unidad no esté en tan buenas condiciones. Observo que la prueba se detuvo después del primer error de lectura. Por lo tanto, si desea obtener información completa sobre todos los errores de lectura, deberá continuar con la prueba después de cada error. Le recomiendo que eche un vistazo a una página de manual de smartctl (8) muy bien escrita para obtener más información sobre las -t select -t select , N-max y -t select para poder hacer esto:

 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 - 

Conclusión


Definitivamente, SMART es exactamente la tecnología que debe agregarse a su kit de herramientas para monitorear el estado de las unidades de su servidor. SMART Disk Monitoring Daemon smartd(8) , .

, , SMART . , , – , , . , RAID !

, !

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


All Articles