Comprobar funcionamiento de los discos en linux

Para empezar debes saber que la tecnología SMART (siglas de Self Monitoring Analysis and Reporting Technology) es la encargada de detectar fallos y degradación en los discos, para hacer esto, la BIOS del equipo debe ser compactible con esta tecnología y debe estar activada, además el disco también debe ser compatible.

En Linux existe un paquete llamado smartmontools que contiene dos programas de utilidad para controlar y monitorear los sistemas de almacenamiento, los cuales se valen del sistema de Tecnología de Auto-Monitoreo, Análisis e Informes (SMART) integrado en la mayoría de los discos ATA/SATA, SCSI/SAS y NVMe modernos, dicha información será necesaria para diagnosticar el funcionamiento de los discos.

Instalación de smartmontools en sistemas basados en RHEL

yum install smartmontools

ahora vamos a escanear los discos con el comando smartctl del paquete smartmontools.

smartctl --scan
#output
/dev/sda -d scsi # /dev/sda, SCSI device
/dev/sdb -d scsi # /dev/sdb, SCSI device

El término sd significa disco SCSI (small computer system interface) disco de interfaz de sistema informático pequeño.

  • sda la letra a indica que es el primer disco duro SCSI.
  • sdb la letra b indica que es el segundo disco duro SCSI.

se sigue el orden alfabético para enumerar los diferentes discos.

También puedes usar el comando fdisk si deseas ver además el tamaño de los discos.

fdisk -l  
#output
Disk /dev/sda: 500.1 GB
Disk /dev/sdb: 500.1 GB

Comprobar si su unidad de disco utiliza la tecnología SMART

smartctl -i /dev/sda
#output
smartctl 7.0 2018-12-30 r4883 [x86_64-linux-3.10.0-1062.12.1.el7.x86_64] (local build)
Copyright (C) 2002-18, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Device Model:     MB0500EBNCR
Serial Number:    WMAYP3239532
LU WWN Device Id: 5 0014ee 0add62d3a
Firmware Version: HPG2
User Capacity:    500.107.862.016 bytes [500 GB]
Sector Size:      512 bytes logical/physical
Rotation Rate:    7200 rpm
Form Factor:      3.5 inches
Device is:        Not in smartctl database [for details use: -P showall]
ATA Version is:   ATA8-ACS T13/1699-D revision 6
SATA Version is:  SATA 2.6, 3.0 Gb/s
Local Time is:    Mon Mar 28 11:49:09 2022 -05
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

En las dos últimas líneas podemos ver que nuestro disco duro tiene soporte para SMART y que el soporte está habilitado, en el caso de que el soporte esté deshabilitado, aparecerá SMART support is: Unavailable.

Habilitar el soporte SMART

sudo smartctl -s on /dev/sda
#output
smartctl 7.0 2018-12-30 r4883 [x86_64-linux-3.10.0-1062.12.1.el7.x86_64] (local build)
Copyright (C) 2002-18, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF ENABLE/DISABLE COMMANDS SECTION ===
SMART Enabled.

Consultar tipos de pruebas que podemos hacer sobre el disco

smartctl -c /dev/sda
#output
smartctl 7.0 2018-12-30 r4883 [x86_64-linux-3.10.0-1062.12.1.el7.x86_64] (local                                                                                                                                                              build)
Copyright (C) 2002-18, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF READ SMART DATA SECTION ===
General SMART Values:
Offline data collection status:  (0x84) Offline data collection activity
                                        was suspended by an interrupting command                                                                                                                                                              from host.
                                        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:                ( 7980) seconds.
Offline data collection
capabilities:                    (0x7b) SMART execute Offline immediate.
                                        Auto Offline data collection on/off supp                                                                                                                                                             ort.
                                        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:        (  85) minutes.
Conveyance self-test routine
recommended polling time:        (   5) minutes.
SCT capabilities:              (0x303d) SCT Status supported.
                                        SCT Error Recovery Control supported.
                                        SCT Feature Control supported.
                                        SCT Data Table supported.

En este caso las que siguientes pruebas son soportadas y nos indican el tiempo estimado de realización:

Breve rutina de autoevaluación (Short self-testroutine) con un tiempo estimado de 2 minutos se comprueba el rendimiento eléctrico y mecánico, así como el rendimiento de lectura del disco.

Rutina de autoevaluación extendida (Extended self-testroutine) con un tiempo estimado de 85 minutes, realiza la misma comprobación que una rutina de autoevaluación breve pero de forma mas exhaustiva, con lo cual consigue ser mas fiable.

Rutina de autoevaluación de transporte (Conveyance self-testroutine) con un tiempo estimado de 5 minutes, evalúa el número de veces que nuestro disco duro ha recibido impactos por movimientos bruscos en el transporte o durante su funcionamiento del disco, dichos impactos superan el límite establecido por el fabricante.

Ejecutar pruebas sobre la unidad

Las pruebas sobre la unidad pueden ser hechas sin necesidad de desmontar el disco, debemos tener en cuenta que esto conlleva un coste del rendimiento en el sistema mientras se lleva a acabo.

Los siguientes comandos sirven para ejecutar las diferente rutinas de autoevaluacion del disco.

smartctl -t short /dev/sda  
smartctl -t long /dev/sda  
smartctl -t conveyance /dev/sda   

Los resultados de nuestros test serán volcados en un fichero de texto llamado smartctl_sda_.txt.

smartctl -x /dev/sda > smartctl_sda.txt

Ejecutamos de nuevo el siguiente comando:

smartctl -c /dev/sda

Nos ubicamos en la siguiente sección.

Self-test execution status: ( 241) Self-test routine in progress…
10% of test remaining

Como podemos apreciar, nos indica que se esta ejecutando una prueba y que se encuentra en un 10%.

También podemos ver que el atributo SMART overall-health self-assessment test el cual indica el estado global del disco duro es correcto si se indica la palabra PASSED, mientras que al ver palabra FAILED se aconseja realizar una copia de seguridad.

Par ver las pruebas realizadas y el estado de las mismas, utiliza el siguiente comando.

smartctl -l selftest /dev/sda
#output
smartctl 7.0 2018-12-30 r4883 [x86_64-linux-3.10.0-1062.12.1.el7.x86_64] (local build)
Copyright (C) 2002-18, 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       80%     49089         120642289
# 2  Short offline       Completed without error       00%     49014         -
# 3  Short offline       Completed without error       00%     49014         -
# 4  Short offline       Completed without error       00%     49014         -
# 5  Short offline       Completed without error       00%     49013         -

Examinar los atributos de los discos

smartctl -A /dev/sdb
smartctl 7.0 2018-12-30 r4883 [x86_64-linux-3.10.0-1062.12.1.el7.x86_64] (local build)
Copyright (C) 2002-18, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF READ SMART DATA SECTION ===
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   098   006    Pre-fail  Always       -       36085317
  3 Spin_Up_Time            0x0003   097   097   000    Pre-fail  Always       -       0
  4 Start_Stop_Count        0x0032   100   100   020    Old_age   Always       -       318
  5 Reallocated_Sector_Ct   0x0033   100   100   036    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x000f   088   060   030    Pre-fail  Always       -       761244977
  9 Power_On_Hours          0x0032   083   070   000    Old_age   Always       -       15294
 10 Spin_Retry_Count        0x0013   100   100   097    Pre-fail  Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   020    Old_age   Always       -       155
184 End-to-End_Error        0x0032   100   100   099    Old_age   Always       -       0
187 Reported_Uncorrect      0x0032   090   090   000    Old_age   Always       -       10
188 Command_Timeout         0x0032   100   099   000    Old_age   Always       -       1
189 High_Fly_Writes         0x003a   081   081   000    Old_age   Always       -       19
190 Airflow_Temperature_Cel 0x0022   069   063   045    Old_age   Always       -       31 (Min/Max 27/35)
194 Temperature_Celsius     0x0022   031   040   000    Old_age   Always       -       31 (0 20 0 0 0)
195 Hardware_ECC_Recovered  0x001a   026   015   000    Old_age   Always       -       36085317
197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0010   100   100   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x003e   200   200   000    Old_age   Always       -       0

Cada atributo tiene:

  • Un valor crudo «RAW_VALUE»
  • Un valor Normalizado «VALUE»
  • Un valor de umbral «THRESH» (cuyo rango es de 0 a 255).
  • Un valor tipo «TYPE» . que puede tener dos valores posibles: Pre-failure o Old_age.

Como se interpreta la tabla de atributos de disco?

Los atributos con valores previos a la falla «Pre-failure» son aquellos valores normalizados que son menores o iguales a sus valores de umbral, lo cual indica una falla de disco pendiente. Tenga en cuenta: ¡el hecho de que un atributo sea del tipo ‘Pre-fail’ no significa que su disco esté a punto de fallar! Sólo tiene este significado si el valor normalizado actual del atributo es menor o igual que el valor umbral.

Los atributos que tienen el valor de vejez «Old_age», o atributos de uso, son aquellos que indican la vida útil al final del producto debido a la vejez o al envejecimiento y desgaste normales, si y solo si el valor del atributo normalizado es menor o igual al umbral. 

Si el valor normalizado actual del atributo es menor o igual que el valor umbral, la columna «WHEN_FAILED» mostrará «FAILING_NOW». Si no es así, pero el peor valor registrado es menor o igual que el valor umbral, esta columna mostrará «In_the_past». Si la columna «WHEN_FAILED» no tiene ninguna entrada (indicada por un guión: ‘-‘), entonces este atributo está bien ahora (no falla) y tampoco ha fallado nunca en el pasado.

Atributos smart críticos

ID 1, Tasa de error de lectura sin procesar «Raw Read Error Rate» Se han producido errores al leer datos sin procesar de un disco, lo cual indica problema con la superficie del disco o los cabezales de lectura/escritura, Con VALUE igual a 100, todo perfecto cualquier otro valor indica una falla.

ID 3, Tiempo de giro «Spin Up Time» Tiempo que necesita el husillo para girar hasta las RPM completas indica un problema con el motor o los rodamientos.

ID 5, Recuento de sectores reasignados «Reallocated Sectors Count» Cuando el disco encuentra un error de lectura/escritura/verificación, marca este sector como «reasignado» y transfiere datos a un área reservada especial (área de repuesto), indica el problema con la superficie del disco o los cabezales de lectura/escritura.

ID 7, Buscar tasa de error «Seek Error Rate» Tasa de errores de posicionamiento de los cabezales de lectura/escritura indica problema con servo, cabezal. La alta temperatura también puede causar este problema.

ID 8, Buscar el rendimiento del tiempo «Seek Time Performance» Tiempo promedio de las operaciones de búsqueda de las cabezas indica problema con servo.

ID 10, Recuento de reintentos de giro «Spin Retry Count» Intentos fallidos de arranque del disco duro. Con RAW_VALUE igual a 0, nunca habrán existido intentos fallidos de arranque. El nivel de salud de este parámetro lo indica VALUE, y si es 253, todo estará perfecto. indica el problema con el motor, los rodamientos o la fuente de alimentación.

ID 184 End-to-End_Error «Error de extremo a extremo» es parte de la tecnología SMART IV de HP y significa que después de transferir a través del búfer de datos de la memoria RAM de caché, los datos de paridad entre el host y el disco duro no coincidían.

ID 196, Recuento de eventos de reasignación «Reallocation Event Count» Recuento de operaciones de reasignación de sectores número de reasignación de todas las operaciones (correctas y fallidas).

ID 197, Recuento actual de sectores pendientes «Current Pending Sector Count» Recuento de sectores inestables, estos sectores pendientes pueden reasignarse a la zona de repuesto, si el valor de RAW_VALUE es mayor a cero se considera que tiene un funcionamiento anormal debe reemplazarse el disco o formatear el disco a cero, para ver si se corrigen estos sectores.

ID 198, Recuento de sectores no corregibles fuera de línea «Uncorrectable Sector Count / Offline Uncorrectable / Off-Line Scan Uncorrectable Sector» Sectores defectuosos imposibles de corregir en el disco duro. Con RAW_VALUE igual a 0, no existen sectores que no puedan corregirse. Con valores distintos de cero, es muy posible que la superficie mecánica del disco duro o alguna parte mecánica esté dañada.

otros atributos smart a tener en cuenta

ID 9, Horas encendido «Power_On_Hours» en la columna «RAW_VALUE» las horas en las que estuvo encendido.

ID 194 Temperatura en grados centígrados «Temperature_Celsius» en la columna «RAW_VALUE» podemos ver la temperatura.

calcular la probavilidad de fallo segun las horas de vida del disco

Cada fabricante en las especificaciones técnicas nos indica el tiempo medio entre fallas o MTBF «Mean Time Between Failures», con este dato podemos utilizar la siguiente fórmula para calcular la Probabilidad de fallo:

Probabilidad de fallo % = 100 * (horas de funcionamiento)/(MTBF)

Entra mas alto sea el valor de la probabilidad de fallo existe mayor riesgo y es aconsejable realizar una copia de seguridad.

Deja un comentario