S.M.A.R.T: control total sobre los discos.


Disco Rigido

A cuantos de los que leen estas lineas les gustaría saber cuando se esta por romper un disco?. Cuanto tiempo y problemas nos hubiera ahorrado, amen de la información perdida por no haberlo sabido antes, horas de trabajo.
Por suerte a los fabricantes de discos se les ocurrió introducir en estos dispositivos la tecnología Self-Monitoring, Analysis and Reporting Technology systems (S.M.A.R.T.). Mediante esta tecnología los propios discos tienen la capacidad de autodiagnosticarse y poner sobre aviso al usuario sobre los problemas encontrados. La mayoría de las implementaciones de SMART le permiten al usuario realiza self-tests sobre el disco y monitorear una serie de atributos de este.
Lo que les voy a mostrar es como utilizar una de las herramientas tan famosa como confiable en el mundo del software libre. Las Smartmon Tools, compuesto por smartcl y smartd daemon para controlar la salud de nuestro disco.
Para instalarlo no tienen mas que buscar en los repositorios de su distro GNU/Linux favorita o dirigirse al la pagina del proyecto www.smartmontools.sourceforge.net para bajar la ultima versión.
Veamos un poco como utilizar la herramienta smartctl:
Empezemos chequeando el disco con la opción -i
Supongamos que tenemos un disco IDE primario instalado en la controladora primaria:
smartctl -i /dev/hda
Con esta opción veremos información del disco como marca, modelo, versión del firmware, y si esta activo SMART en el disco. Caso contrario para activarlo hacemos un:

smartctl -s on /dev/hda

Ahora vamos a hacer un Health-test del disco:

smartctl -Hc /dev/hda

Obtendremos una salida como la siguiente:

SMART overall-health self-assessment test result: PASSED

General SMART Values:
Off-line data collection status: (0×82) Offline data collection activity
was completed without error.
Auto Off-line 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 off-line
data collection: (2855) seconds.
Offline data collection
capabilities: (0x1b) SMART execute Offline immediate.
Automatic timer ON/OFF support.
Suspend Offline collection upon new
command.
Offline surface scan supported.
Self-test supported.
No Conveyance Self-test supported.
No Selective Self-test supported.
SMART capabilities: (0×0003) Saves SMART data before entering
power-saving mode.
Supports SMART auto save timer.
Error logging capability: (0×01) Error logging supported.
General Purpose Logging supported.
Short self-test routine
recommended polling time: ( 1) minutes.
Extended self-test routine
recommended polling time: ( 48) minutes.

Como podran ver este disco paso la prueba, resultado: PASSED

Lo próximo que vamos a hacer es listar los atributos internos del disco y sus estados:

smartctl -A /dev/hda

Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate 0x000b 100 100 060 Pre-fail Always – 0
2 Throughput_Performance 0×0005 155 155 050 Pre-fail Offline – 225
3 Spin_Up_Time 0×0007 097 097 024 Pre-fail Always – 293 (Average 270)
4 Start_Stop_Count 0×0012 100 100 000 Old_age Always 10
5 Reallocated_Sector_Ct 0×0033 100 100 005 Pre-fail Always – 0
7 Seek_Error_Rate 0x000b 100 100 067 Pre-fail Always – 0
8 Seek_Time_Performance 0×0005 125 125 020 Pre-fail Offline – 36
9 Power_On_Hours 0×0012 100 100 000 Old_age Always – 3548
10 Spin_Retry_Count 0×0013 100 100 060 Pre-fail Always – 0
12 Power_Cycle_Count 0×0032 100 100 000 Old_age Always – 10
192 Power-Off_Retract_Count 0×0032 100 100 050 Old_age Always – 158
193 Load_Cycle_Count 0×0012 100 100 050 Old_age Always – 158
194 Temperature_Celsius 0×0002 189 189 000 Old_age Always – 29 (Lifetime Min/Max 23/33)
196 Reallocated_Event_Count 0×0032 100 100 000 Old_age Always – 0
197 Current_Pending_Sector 0×0022 100 100 000 Old_age Always – 0
198 Offline_Uncorrectable 0×0008 100 100 000 Old_age Offline – 0
199 UDMA_CRC_Error_Count 0x000a 200 200 000 Old_age Always – 0

Fijense que pueden obtener hasta los datos de la temperatura interna del disco. Presten atención al campo WHEN_FAILED que indica cuando se produjo una falla de algún atributo. En este caso el disco esta perfecto, nunca tuvo fallas.
Si queremos ver un listado de errores hacemos lo siguiente:

smartctl -l error /dev/hda

SMART Error Log Version: 1
No Errors Logged

Podemos hacer dos tipos de self-test sobre el disco
Largo que puede demoras hasta varias horas:
smartctl -t long /dev/hda
o corto que lo realiza en minutos:
smartctl -t short /dev/hda

Para ver el listado de los resultados del self-test:

smartctl -l selftest /dev/hda


SMART Self-test log, version number 1
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
# 1 Extended off-line Completed 00% 3525 -
# 2 Extended off-line Completed 00% 3357 -
# 3 Short off-line Completed 00% 3059 -

El log no dio ninguna anomalía. Tengan en cuenta el campo LBA_of_First_error por si aparece algun valor.

Lo mejor de todo es que podemos automatizar los test y hacer que nos envie una alerta a nuestro mail en caso de presentar algún problema.Para ello esta el demonio smartmond
El archivo de configuración de este demonio se encuentra en /etc/smartd.conf
Por ejemplo introducimos lo siguiente:
/dev/hda -a -I 194 -m sebastian@Xunilda.com
Luego arrancamos el demonio de la siguiente manera: /etc/init.d/smartd start o /etc/rc.d/init.d/smartd start, segun la distro, para que quede activo en segundo plano.
Con -a indica que chequee todos los atributos, -I ignora el atributo 194 que es la temperatura para evitar que loguee a cada rato y -m nos envía un mail a la casilla que le indiquemos con un reporte de errores.
De esta manera podemos tener un control predictivo del disco de nuestra pc de escritorio o notebook hasta arreglos de discos de un servidor.

Bibliografia:
Este texto esta basada en el siguiente documento original en ingles de lectura altamente recomendable:
http://www.linuxjournal.com/article/6983

ESTE TEXTO SE PUBLICA BAJO LICENCIA CREATIVE COMMONS BY-NC-SA 2.5 AR.

Por lo tanto, usted es libre de: 1) Copiarlo, distribuirlo y exhibirlo. 2) Hacer obras derivadas. Bajo las siguientes condiciones: 1) Debe dar atribución mencionando el nombre del autor y del LUG Zona Norte. En caso de las notas que no llevan firma, mencionar sólo el nombre del LUG.
2) Usted no puede usar esta obra con fines comerciales. 3) Si usted altera, transforma, o crea sobre este texto, sólo podrá distribuir la obra derivada resultante bajo una licencia idéntica a ésta.

Más detalles y texto legal de la licencia en: http://creativecommons.org/licenses/by-nc-sa/2.5/ar

  1. #1 by Andrew on 30/01/2007 - 9:30

    hola.
    Buen documento.
    pero una vez diagnosticado el problema, es posible solucionarlos?
    por ejemplo, tengo un disco asi:

    === START OF INFORMATION SECTION ===
    Model Family: Western Digital Caviar WDxxxAB series
    Device Model: WDC WD300AB-34BVA0
    Serial Number: WD-WMA7H1379812
    Firmware Version: 21.01H21
    User Capacity: 30,020,272,128 bytes
    Device is: In smartctl database [for details use: -P show]
    ATA Version is: 5
    ATA Standard is: Exact ATA specification draft version not indicated
    Local Time is: Mon Jan 29 22:23:00 2007 CLST
    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: FAILED!
    Drive failure expected in less than 24 hours. SAVE ALL DATA.
    See vendor-specific Attribute list for failed Attributes.

    ———————————————-
    ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
    1 Raw_Read_Error_Rate 0x000b 001 001 051 Pre-fail Always FAILING_NOW 2334
    3 Spin_Up_Time 0×0007 124 111 021 Pre-fail Always – 2183
    4 Start_Stop_Count 0×0032 098 098 040 Old_age Always – 2059
    5 Reallocated_Sector_Ct 0×0032 111 111 112 Old_age Always FAILING_NOW 354
    7 Seek_Error_Rate 0x000b 200 200 051 Pre-fail Always – 2
    9 Power_On_Hours 0×0032 098 098 000 Old_age Always – 2101
    10 Spin_Retry_Count 0×0013 100 100 051 Pre-fail Always – 0
    11 Calibration_Retry_Count 0×0013 100 100 051 Pre-fail Always – 0
    12 Power_Cycle_Count 0×0032 099 099 000 Old_age Always – 1798
    196 Reallocated_Event_Count 0×0032 001 001 000 Old_age Always – 332
    197 Current_Pending_Sector 0×0012 171 160 000 Old_age Always – 144
    198 Offline_Uncorrectable 0×0012 192 192 000 Old_age Always – 41
    199 UDMA_CRC_Error_Count 0x000a 200 253 000 Old_age Always – 0
    200 Multi_Zone_Error_Rate 0×0009 001 001 051 Pre-fail Offline FAILING_NOW 20088

    ——————————————————-
    reconosco que el disco esta bastante podrido
    tendra solucion algun registro ??

    gracias

  2. #2 by sechole on 30/01/2007 - 13:39

    Lamentablemente no se puede hacer nada con él.
    Si el disco es parte de un equipo de marca reconocida (HP, Compaq, etc) y esta en garantía.
    Debes concurrir con el reporte impreso y el disco, en algunos casos lo cambian automaticamente. Ojo, el unico caso que conozco que sí hicieron el cambio fue con un equipo en contrato.

  3. #3 by Sultanovich on 04/02/2007 - 10:26

    Esto la verdad que no lo sabia, es muy interesante para tenerlo en cuenta ademas de los obvios back-up que se deben realizar periodicamente.

    Saludos.

  4. #4 by nacho on 05/02/2007 - 16:21

    hola, tengo un disco en el siguiente estado, se puede reparar??

    === START OF INFORMATION SECTION ===
    Model Family: Toshiba 2.5″ HDD series (30-60 GB)
    Device Model: TOSHIBA MK4025GAS
    Serial Number: 34Q50095S
    Firmware Version: KA100A
    User Capacity: 40.007.761.920 bytes
    Device is: In smartctl database [for details use: -P show]
    ATA Version is: 6
    ATA Standard is: Exact ATA specification draft version not indicated
    Local Time is: Mon Feb 05 20:02:11 2007
    SMART support is: Available – device has SMART capability.
    Enabled status cached by OS, trying SMART RETURN STATUS cmd.
    SMART support is: Enabled

    === START OF READ SMART DATA SECTION ===
    SMART overall-health self-assessment test result: FAILED!
    Drive failure expected in less than 24 hours. SAVE ALL DATA.
    See vendor-specific Attribute list for failed Attributes.

    General SMART Values:
    Offline data collection status: (0×00) 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: ( 189) seconds.
    Offline data collection
    capabilities: (0x1b) 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.
    No Conveyance Self-test supported.
    No Selective Self-test supported.
    SMART capabilities: (0×0003) Saves SMART data before entering
    power-saving mode.
    Supports SMART auto save timer.
    Error logging capability: (0×01) Error logging supported.
    No General Purpose Logging support.
    Short self-test routine
    recommended polling time: ( 2) minutes.
    Extended self-test routine
    recommended polling time: ( 37) minutes.

    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 0x000b 100 100 050 Pre-fail Always -
    0
    2 Throughput_Performance 0×0005 100 100 050 Pre-fail Offline -
    0
    3 Spin_Up_Time 0×0027 100 100 001 Pre-fail Always -
    745
    4 Start_Stop_Count 0×0032 100 100 000 Old_age Always -
    44382
    5 Reallocated_Sector_Ct 0×0033 001 001 050 Pre-fail Always FAILI
    NG_NOW 1023
    7 Seek_Error_Rate 0x000b 100 100 050 Pre-fail Always -
    0
    8 Seek_Time_Performance 0×0005 100 100 050 Pre-fail Offline -
    0
    9 Power_On_Hours 0×0032 081 081 000 Old_age Always -
    7757
    10 Spin_Retry_Count 0×0033 253 100 030 Pre-fail Always -
    0
    12 Power_Cycle_Count 0×0032 100 100 000 Old_age Always -
    1678
    192 Power-Off_Retract_Count 0×0032 100 100 000 Old_age Always -
    123
    193 Load_Cycle_Count 0×0032 083 083 000 Old_age Always -
    177730
    194 Temperature_Celsius 0×0022 100 100 000 Old_age Always -
    40 (Lifetime Min/Max 16/52)
    196 Reallocated_Event_Count 0×0032 100 100 000 Old_age Always -
    214
    197 Current_Pending_Sector 0×0032 100 100 000 Old_age Always -
    0
    198 Offline_Uncorrectable 0×0030 100 100 000 Old_age Offline -
    0
    199 UDMA_CRC_Error_Count 0×0032 200 200 000 Old_age Always -
    0
    220 Disk_Shift 0×0002 100 100 000 Old_age Always -
    77
    222 Loaded_Hours 0×0032 084 084 000 Old_age Always -
    6626
    223 Load_Retry_Count 0×0032 100 100 000 Old_age Always -
    0
    224 Load_Friction 0×0022 100 100 000 Old_age Always -
    0
    226 Load-in_Time 0×0026 100 100 000 Old_age Always -
    216
    240 Head_Flying_Hours 0×0001 100 100 001 Pre-fail Offline -
    0

  5. #5 by sechole on 05/02/2007 - 23:45

    Nacho, cuando aparecen fallos hay que cambiar el disco.
    Si esta en garantía esta es la oportunidad. Te imprimis el reporte y vas al que te lo vendió para que lo cambie.
    NO se reparan, salvo:
    a) si tenes un disco igual para intercambiar partes.
    b) si tenes una camara al vacio para cuando lo abras no le entre polvo y suciedad
    c) instrumental de precisión para que no se desalineen las cabezas y los platos por si alguna de estas es la parte dañada a intercambiar.
    Por el gasto de guita que seria…mejor cambialo.

  6. #6 by mondarino on 16/01/2008 - 8:41

    buen articulo, a mi smart me ha salvado todas las veces de desastre.

    si quereis hacer una monitorización completa y tener vuestros discos controlados poner esto en smartd.conf

    /dev/sda -a -d ata -s (S/../.././02|L/../../6/01) -H -l error -l selftest -t -I 194 -m micorreo@micorreo.com
    /dev/sdb -a -d ata -s (S/../.././02|L/../../6/01) -H -l error -l selftest -t -I 194 -m micorreo@micorreo.com

    Esto testeara cada 2 dias un test corto y cada 6 uno largo y te enviara un correo en caso de fallos.

    Recordar comentar
    #DEVICESCAN -m root -M exec /usr/share/smartmontools/smartd-runner

  7. #7 by chen on 18/01/2008 - 21:03

    tengo problema con mi portatil Nec con toshiba M4025GAS-(PM)

    mi tel 47835628 1556556544

    Pablo CHEN

(will not be published)
IMPORTANT! To be able to proceed, you need to solve the following simple math (so we know that you are a human) :-)

What is 8 + 7 ?
Please leave these two fields as-is: