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
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
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
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
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
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
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
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
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
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 !
, !