Gravatar de Armonth

S.M.A.R.T y las horas de un disco duro

Una discusión: equipo fallando, yo digo que es el disco duro y el colega que la placa base (si tan seguro está ¿por qué me consulta? }:P). El caso es que ya tengo tema que desarrollar…

Un disco duro tiene una vida útil estimada por el fabricante, al igual que el resto de componentes (incluso algunas memorias RAM han tenido — o siguen teniendo — garantía “de por vida”).

El caso es que tanto en ventiladores como en discos duros es fácil saberlo, los primeros empiezan a hacer más ruido y atascarse por lo que si no se soluciona con una limpieza a fondo ya están en las últimas. En cambio los discos duros pueden ser más puñeteros.

Una forma sencilla de hacerse una idea sin llegar a tener que buscar sectores defectuosos en todo el disco y que además nos permite prevenir y no tener que cambiar piezas cuando ya está fallando es el uso de S.M.A.R.T.

S.M.A.R.T (Self Monitoring Analysis And Reporting Technology) es una tecnología expresamente hecha para la detección de problemas en los discos duros.

[…] La detección de los fallos con la suficiente anticipación permite al usuario el poder realizar una copia de su contenido, o reemplazar el disco, antes de que se produzca una pérdida de datos irrecuperable.

Este tipo de tecnología tiene que ser compatible con la BIOS del equipo, estar activada y además que el propio disco duro la soporte.

En realidad, S.M.A.R.T es bastante viejo, es de esas cosas que llevan ahí años pero si no eres técnico rara vez usas (los usuarios avanzados tampoco creo que lo usemos mucho: muchos terminan cambiando los discos duros por nuevos antes de que empiecen a fallar o siquiera a hacerse viejos).

Teniendo S.M.A.R.T activado en la BIOS y un disco duro que lo soporte, podemos tirar en GNU/Linux de las smart monitoring tools. Tanto en Ubuntu como en Debian están bajo el mismo paquete: smartmontools.

The smartmontools package contains two utility programs (smartctl and smartd) to control and monitor storage systems using the Self-Monitoring, Analysis and Reporting Technology System (S.M.A.R.T.) built into most modern ATA and SCSI hard disks. It is derived from the smartsuite package, and includes support for ATA/ATAPI-5 disks. It should run on any modern Linux system.

La verdad es que yo nunca he usado el smartd pero sí el smartctl. Aunque toda la información la tenéis en el “man” lo único realmente necesario son dos cosas: lanzar el test y visualizarlo.

smartctl -t short /dev/hda

... (mucho texto irrelevante).

Testing has begun.
Please wait 1 minutes for test to complete.
Test will complete after Tue Oct 16 07:43:06 2007

Ok, el test ha empezado en la unidad /dev/hda. Tardará 1 minuto en terminar pero de mientras podemos seguir trabajando como siempre. Ahora vamos a pedirle la información obtenida:

smartctl -l selftest -i /dev/hda
smartctl version 5.37 [i686-pc-linux-gnu] Copyright (C) 2002-6 Bruce Allen
Home page is http://smartmontools.sourceforge.net/

=== START OF INFORMATION SECTION ===
Model Family:     Seagate Barracuda 7200.7 and 7200.7 Plus family
Device Model:     ST340014A
Serial Number:    5JX09GR2
Firmware Version: 3.04
User Capacity:    40,020,664,320 bytes
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   6
ATA Standard is:  ATA/ATAPI-6 T13 1410D revision 2
Local Time is:    Tue Oct 16 07:42:26 2007 CEST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

=== 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%     12210         -

Mucha información aquí:

  • “Familia” del disco duro (Seagate Barracuda 7200).
  • Modelo especifico, serial y firmware.
  • Capacidad del mismo (40GB).
  • Versión del ATA usado.
  • Soporta SMART… y además lo tiene activado.

Y el primer punto interesante: el LifeTime o horas que el disco duro ha estado encendido junto a posibles errores.

El disco duro tiene 12210 horas de marcha o lo que es lo mismo 508 días / 1 año y 4 meses. Curiosamente es casi tanto tiempo como lleva SigT en pie sólo que el blog las lleva “seguidas” y mi PC a lo largo de cuatro años +/- (tendría que revisar facturas para estar seguro).

Luego podemos añadirle -H antes de -i /dev/hda el cual nos dice si “a ojos de SMART” el disco “está sano”:

  • -H, –health: Check: Ask the device to report its SMART health status or pending TapeAlert messages.

    smartctl -l selftest -i -H /dev/hda

    … (misma información de antes)…

    SMART overall-health self-assessment test result: PASSED

Hay mucha más información, que puede ser útil o simplemente “curiosa”, dependiendo de lo que a uno le interese, por ejemplo los atributos (-A). Dos ejemplos al vuelo de lo que se puede extraer:

  • 12 Power_Cycle_Count. RAW_Value: 1255. O en cristiano: este disco duro se ha encendido 1255 veces.
  • 192 Temperature Celsius. RAW_Value: 27. Es decir, 27 grados de temperatura en el disco lo cual no es nada alto.

O también según la propia Wikipedia:

Los parámetros más característicos a controlar son los siguientes:

  • Temperatura del disco
  • Velocidad de lectura
  • Tiempo de partida spin-up
  • Contador de sectores reasignados
  • Velocidad de búsqueda Seek time
  • Tasa de errores de búsqueda Seek

Los valores de los atributos S.M.A.R.T van del número 1 al 253, siendo 1 el peor valor. Los valores normales son entre 100 y 200. Estos valores son guardados en un espacio reservado del disco duro.

Eso significa que en los atributos debemos tener en cuenta el campo “VALUE”, en el ejemplo de arriba el “VALUE” obtenido para el campo “Temperature Celsius” (los 27 grados) es de 100 por lo que está bien (entre 100 y 200).

Sin embargo el valor para el número de encendidos (1255) es de 99 por lo que ya está por debajo de los 100-200 que es “lo normal”: nada grave pero a tener en cuenta.

Lo que sí que es más preocupante en mi caso son los Raw_Read_Error_Rate que ya andan por menos de 70 (Pre-Fail: no creo que tarde mucho en empezar a fallar).

PD: ¿Recordáis el sujeto mencionado al principio? Tenía la mitad de los atributos a menos de 40, la temperatura a 35ºC, 30 y pico mil horas y errores a mansalva…

27 Comentarios (feed)

  1. Gravatar de tkd tkd nos comenta:

    Buenas buenas…

    nada, solo agradecerte este post!
    realmente es muy interesante.

    En mi caso, administro en casa un pequeño y viejito (PII) server para tareas especificas.
    En el siempre cae el “old hard” que encuentro, aunque generalmente como una de sus actividades es bajar contenidos p2p, lo que mas recive son HD ^^ que por algun motivo deseche xD

    Lo cual esta herramienta me viene al re pelo, y mas la info que publicaste

    Abrazos

    Martes, 16 de Octubre/2007 @ 21:23

  2. Gravatar de corocota corocota nos comenta:

    heee bueno por hacer la gracia probe y estos son los resultado copy&paste:
    corocota@enanucobigarista-i386:~$ sudo smartctl -A /dev/hda
    smartctl version 5.36 [i686-pc-linux-gnu] Copyright (C) 2002-6 Bruce Allen
    Home page is http://smartmontools.sourceforge.net/

    === START OF READ SMART DATA SECTION ===
    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
    3 Spin_Up_Time 0×0027 224 224 063 Pre-fail Always - 7977
    4 Start_Stop_Count 0×0032 253 253 000 Old_age Always - 867
    5 Reallocated_Sector_Ct 0×0033 253 253 063 Pre-fail Always - 3
    6 Read_Channel_Margin 0×0001 253 253 100 Pre-fail Offline - 0
    7 Seek_Error_Rate 0×000a 253 251 000 Old_age Always - 0
    8 Seek_Time_Performance 0×0027 250 248 187 Pre-fail Always - 43841
    9 Power_On_Minutes 0×0032 221 221 000 Old_age Always - 264h+00m
    10 Spin_Retry_Count 0×002b 253 252 157 Pre-fail Always - 0
    11 Calibration_Retry_Count 0×002b 253 252 223 Pre-fail Always - 0
    12 Power_Cycle_Count 0×0032 251 251 000 Old_age Always - 1049
    192 Power-Off_Retract_Count 0×0032 253 253 000 Old_age Always - 0
    193 Load_Cycle_Count 0×0032 253 253 000 Old_age Always - 0
    194 Temperature_Celsius 0×0032 253 253 000 Old_age Always - 46
    195 Hardware_ECC_Recovered 0×000a 253 252 000 Old_age Always - 6576
    196 Reallocated_Event_Count 0×0008 253 253 000 Old_age Offline - 0
    197 Current_Pending_Sector 0×0008 253 253 000 Old_age Offline - 0
    198 Offline_Uncorrectable 0×0008 253 253 000 Old_age Offline - 0
    199 UDMA_CRC_Error_Count 0×0008 001 001 000 Old_age Offline - 4471
    200 Multi_Zone_Error_Rate 0×000a 253 252 000 Old_age Always - 0
    201 Soft_Read_Error_Rate 0×000a 253 244 000 Old_age Always - 0
    202 TA_Increase_Count 0×000a 252 229 000 Old_age Always - 3
    203 Run_Out_Cancel 0×000b 253 252 180 Pre-fail Always - 70
    204 Shock_Count_Write_Opern 0×000a 253 251 000 Old_age Always - 0
    205 Shock_Rate_Write_Opern 0×000a 253 252 000 Old_age Always - 0
    207 Spin_High_Current 0×002a 253 252 000 Old_age Always - 0
    208 Spin_Buzz 0×002a 253 252 000 Old_age Always - 0
    209 Offline_Seek_Performnce 0×0024 191 190 000 Old_age Offline - 0
    99 Unknown_Attribute 0×0004 253 253 000 Old_age Offline - 0
    100 Unknown_Attribute 0×0004 253 253 000 Old_age Offline - 0
    101 Unknown_Attribute 0×0004 253 253 000 Old_age Offline - 0

    Martes, 16 de Octubre/2007 @ 22:37

  3. Gravatar de WenasNoches WenasNoches nos comenta:

    Muchas gracias, realmente interesante!

    Martes, 16 de Octubre/2007 @ 23:07

  4. Gravatar de Xisco Xisco nos comenta:

    Por desgracia esta herramienta es cada vez menos útil ya que, a pesar de que todas las BIOS y discos duros ATA modernos soportan SMART, todavía no me he encontrado ningún disco duro SATA que lo haga… :-(

    Miércoles, 17 de Octubre/2007 @ 7:10

  5. Gravatar de vicm3 vicm3 nos comenta:

    @Xisco: Los SATA si soportan SMART y de hecho Smartmontools tambien… solo hay que leer la documentación mas a fondo:

    sagan:~#smartctl -d ata -a /dev/sda
    smartctl version 5.36 [i686-pc-linux-gnu] Copyright (C) 2002-6 Bruce Allen
    Home page is http://smartmontools.sourceforge.net/
    
    === START OF INFORMATION SECTION ===
    Model Family:     Seagate Barracuda 7200.7 and 7200.7 Plus family
    Device Model:     ST3160023AS
    Serial Number:    5MT03NCT
    Firmware Version: 8.12
    User Capacity:    160,000,000,000 bytes
    Device is:        In smartctl database [for details use: -P show]
    ATA Version is:   6
    ATA Standard is:  ATA/ATAPI-6 T13 1410D revision 2
    Local Time is:    Wed Oct 17 01:40:18 2007 CDT
    SMART support is: Available - device has SMART capability.
    SMART support is: Enabled
    ...
    sagan:~# smartctl -a /dev/sda
    smartctl version 5.36 [i686-pc-linux-gnu] Copyright (C) 2002-6 Bruce Allen
    Home page is http://smartmontools.sourceforge.net/
    
    Device: ATA      ST3160023AS      Version: 8.12
    
    In Linux, SATA disks accessed via libata are only supported by smartmontools
    for kernel versions 2.6.15 and above. Try an additional '-d ata' argument.
    

    Por cierto Hector yo recomiendo totalmente el uso de smartd sobre todo en servidores… para ejemplo: Crónica de una muerte anunciada.

    O simplemente buscar smartd en mi blog, para las 3 entradas relacionadas smart si tambien quieres leer sobre munin, hdparm y otros juguetes… mhh.. ya parece comercial, por cierto, muy buen post.

    Saludos.

    Miércoles, 17 de Octubre/2007 @ 8:50

  6. Gravatar de MG MG nos comenta:

    Buenas, yo tengo unos servidores con discos SATA y les estoy haciendo ahora mismo los tests, una herramienta trementamente útil, gracias por la info

    Miércoles, 17 de Octubre/2007 @ 9:00

  7. Gravatar de MG MG nos comenta:

    En esta dirección se explica el significado de todos los atributos:
    http://smartlinux.sourceforge.net/smart/attributes.php

    Miércoles, 17 de Octubre/2007 @ 9:13

  8. Gravatar de Armonth Armonth nos comenta:

    Por cierto, que leo en la entrada de menéame al respecto del meneo este que Blackshell recomienda el aviso por mail. Ideal para (múltiples) servidores, c&p:

    Ponemos en /etc/smartd.conf algo como:

    # -S on para que grabe los atributos auto
    # -o on para activar los test offline auto
    # -a para monitorizar todos los atributos
    # -I 194 para ignorar la temperatura (que cambia con frecuencia)
    # -m dirección_de_correo para que nos mande un mail si pasa algo
    /dev/hda -S on -o on -a -I 194 -m admin@nuestro.host.dom

    Ahora en Ubuntu Linux he tenido que tocar /etc/default/smartmontools para poner start_smartd=yes, y he hecho un /etc/init.d/smartmontools start, como es habitual. Ojo que el uso de smartd activa el soporte S.M.A.R.T. en los discos monitorizados, pero no sé si se trata de una característica de Ubuntu ;).

    Con esto admin@nuestro.host.dom recibirá un mail cuando las cosas estén a punto de ir mal :-)

    Miércoles, 17 de Octubre/2007 @ 9:31

  9. Gravatar de Arnau Arnau nos comenta:

    Hace algún tiempo escribí un tutorial en inglés sobre el smartmontools y cómo hacer que en caso de fallo el servidor se pare o nos envíe un e-mail. Si a alguien le interesa está en la wiki de documentación de Ubuntu: https://help.ubuntu.com/community/Smartmontools

    Miércoles, 17 de Octubre/2007 @ 10:03

  10. Gravatar de Raiden Raiden nos comenta:

    Muy interesante, habrá que probarlo sin falta.

    Un saludo.

    Miércoles, 17 de Octubre/2007 @ 10:04

  11. Gravatar de dani dani nos comenta:

    esta aplicacion esta muy bien pero, ¿no se puede lanzar desde xp?? ¿solo con Linux?? vaya…

    Miércoles, 17 de Octubre/2007 @ 11:29

  12. Gravatar de corsaria corsaria nos comenta:

    Más cosas…

    http://www.linuxjournal.com/article/6983

    ;)

    Miércoles, 17 de Octubre/2007 @ 11:57

  13. Gravatar de JarFil JarFil nos comenta:

    Todos estos datos son curiosos… pero solo eso, rara vez suponen un peligro para el disco. Incluso el Raw_Read_Error_Rate no es problema de por sí; he visto discos con un raw error rate altísimo funcionando durante años.

    El realmente importante es Reallocated_Sector_Ct, o en cristiano: número de sectores de repuesto que ha usado el disco para sustituir sectores dañados. Dañados irreparablemente, se entiende.

    Día en que el Reallocated_Sector_Ct empieza a subir, semana en que el disco falla, independientemente de que haya o no alertas de SMART.

    Que esa es otra, muchas veces entre la alerta de SMART y “disco a la basura” pueden pasar menos de unas horas, ni siquiera un día entero.

    Miércoles, 17 de Octubre/2007 @ 12:22

  14. Gravatar de Leonaro Leonaro nos comenta:

    Muy buen post.
    Gracias

    Miércoles, 17 de Octubre/2007 @ 16:20

  15. Gravatar de Nasón Nasón nos comenta:

    Hola:
    Estoy intentando testear mi disco duro externo del portátil y me devuelve el siguiente mensaje:

    Short offline self test failed [unsupported scsi opcode]

    Pero el disco duro no es scasi. ¿Alguna sugerencia?

    Miércoles, 17 de Octubre/2007 @ 19:51

  16. Gravatar de Armonth Armonth nos comenta:

    Nasón vamos a ver… los discos internos son IDE (realmente ATA si nos ponemos tiquismiquis, SATA o SCSI. Con IDE/ATA se debe usar /dev/hd[a-z] normal y con los SCSI o SATA (los SATA se comportan = que SCSI a efectos de rutas) /dev/sd[a-z].

    En los SATA eso sí a veces hay que “tratarlos” como ATA/IDE añadiendo “-d ata” al comando smartctl.

    Los USB externos son tratados como SCSI así que con lo segundo debería… sin embargo simplemente no funcionan: supongo que al tratarse de una tecnología “mixta” BIOS/HD no se puede acceder directamente desde la BIOS al HD… es como las impresoras que no son Postscript que no se les puede mandar el fichero vía Postscript directamente y hay que usar un “driver” (un “traductor” postscript al “idioma” de la impresora).

    Resumiendo: no lo he mirado a fondo pero si no es interno dudo que rule de alguna manera…

    Jueves, 18 de Octubre/2007 @ 2:36

  17. Gravatar de Xisco Xisco nos comenta:

    @vicm3
    Los SATA si soportan SMART y de hecho Smartmontools tambien… solo hay que leer la documentación mas a fondo.

    ¡Ver para creer! :-O

    Gracias, vicm3. :-)

    Domingo, 21 de Octubre/2007 @ 10:22

  18. Gravatar de daniel daniel nos comenta:

    Como puedo desactivar el S.M.A.R.T. del bios y del disco duro. que no me de mas la alerta. y de ser posible borrarle el log del smart.
    gracias

    Lunes, 12 de Noviembre/2007 @ 11:23

  19. Gravatar de Armonth Armonth nos comenta:

    Daniel muchas placas no permiten desactivar S.MA.R.T, otras tienen la opción en la propia configuración de discos duros ya sean IDE/ATA o SATA…

    Por otro lado, no se puede “desactivar” el SMART del disco duro ya que es algo que hace sólo.

    Lunes, 12 de Noviembre/2007 @ 14:33

  20. Gravatar de dark_architect dark_architect nos comenta:

    Daniel: en el sitio de soporte de symantec, comentan que se puede desactivar el SMART a con una utileria llamada CPUCool… no lo he probado personalmente, la utileria es shareware, espero te sirva este dato. Saludos a todos!!!

    Sábado, 1 de Diciembre/2007 @ 7:58

  21. Gravatar de hugo hugo nos comenta:

    Hola, yo tengo servidores con redhat 8 y solo me muestra la informacion comercial como se cuanto tiempo lleva en uso mi disco duro la version de smartctl es la 2.1 y no puedo actualizarla.

    Miércoles, 5 de Diciembre/2007 @ 17:37

  22. Gravatar de marcmesa marcmesa nos comenta:

    dani, para ver dicha información desde windows puedes usar algún programa como HDD Health (Freeware) que se puede descargar desde http://www.panterasoft.com/

    Miércoles, 5 de Diciembre/2007 @ 23:50

  23. Gravatar de Anny Anny nos comenta:

    quiero saber como puedo desactivar el SMART del bios si este no me da opcion ha hacerlo, mi pregunta es si se puede desactivar desed la placa madre quitando un jamper o algo asi.
    gracias

    Miércoles, 9 de Enero/2008 @ 16:53

  24. Gravatar de Armonth Armonth nos comenta:

    Anny dependerá de la placa pero normalmente (diría 99% de los casos) no se puede. De todas formas no es algo que moleste ya que sólo sirve para informar del estado del disco duro.

    Miércoles, 9 de Enero/2008 @ 17:17

  25. Gravatar de Samuel Samuel nos comenta:

    Hola cada vez que trato de hacer el test me arroja la siguiente linea:

    ….. Use smartctl -X to abort test.

    Qué tipo de error es éste?
    Muchas gracias por la ayuda

    Miércoles, 13 de Febrero/2008 @ 1:05

  26. Gravatar de Armonth Armonth nos comenta:

    Samuel no es un error, el test se ejecuta mientras te devuelve la consola y luego tienes que ejecutar el siguiente comando para que te dé los resultados…

    Miércoles, 13 de Febrero/2008 @ 10:25

  27. Gravatar de GaSpAcH0/JaM0N GaSpAcH0/JaM0N nos comenta:

    Hola, la verdad que me ayudo mucho a determinar algo que queria saver… cuantas horas estubo la pc encendida:

    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% 13159 -

    13159 :) lo cual es casi exactamente 1 año 6 meses… el disco lo compre hace casi exactamente 1 año y 6 meses xDxD con lo cual puedo demostrar lo que poca gente me cree… que desde que la compre que solo se reinicio; nunca se apago :D gracias jajajajaja

    Martes, 18 de Marzo/2008 @ 4:09

No seas tímido, da tu opinión

Sé respetuoso con los demás, la diferencia de opiniones enriquece la discusión, los comentarios bajo ciertas circunstancias pueden ser moderados y requerir aprobación.