Monitoreo de la Salud del Disco con smartctl y smartd | INTROSERV
EUR
european

EUR

usa

USD

Spanish Es
Ex. VAT Ex. VAT 0%

Monitoreo de la Salud del Disco con smartctl y smartd

Introducción

smartctl es una utilidad de consola del paquete smartmontools, diseñada para trabajar con la tecnología S.M.A.R.T. (Self-Monitoring, Analysis and Reporting Technology) implementada en las unidades de almacenamiento modernas.

Casos de uso:

  • servidores de empresas de hosting;
  • nodos VPS/VDS;
  • servidores dedicados;
  • servidores de archivos;
  • sistemas de respaldo;
  • infraestructuras corporativas.

Qué tareas resuelve:

  • detección temprana de degradación del disco;
  • predicción de fallos en las unidades;
  • reducción del riesgo de pérdida de datos;
  • automatización del monitoreo de salud de HDD, SSD, NVMe;
  • análisis de problemas físicos en el subsistema de discos.

Info

El monitoreo proactivo de SMART permite identificar un problema antes de que ocurra una falla real del disco, lo cual es críticamente importante para entornos de producción.

Requisitos y prerrequisitos

Sistemas operativos y versiones compatibles:

Linux:

  • Debian 10+
  • Ubuntu 18.04+
  • RHEL / AlmaLinux / Rocky Linux 8+
  • CentOS 7 (compatible, pero obsoleto)
  • FreeBSD 12+

Windows (a través de smartmontools, uso limitado)

Los ejemplos a continuación se proporcionan para Linux.

Software y paquetes requeridos:

  • paquete smartmontools
  • acceso a /dev/sdX, /dev/nvmeX
  • sistema instalado systemd (para smartd)

Derechos de acceso:

  • se requieren privilegios de root
  • o acceso a través de sudo

Comprobaciones preliminares

Visualización de la lista de discos en el sistema:

lsblk -d -o NAME,MODEL

Visión general y conceptos básicos

Términos clave

  • SMART – sistema de autodiagnóstico integrado del disco
  • Atributos – atributos de estado (Reallocated_Sector_Ct, Pending_Sectors, etc.)
  • Autoprueba – pruebas integradas de la unidad
  • smartctl – utilidad CLI para la gestión de SMART
  • smartd – demonio de monitoreo automático

Cómo funciona

  1. El disco recopila estadísticas de forma independiente
  2. smartctl lee estos datos
  3. smartd analiza los valores umbral y los eventos
  4. Se envían notificaciones cuando ocurren problemas

Lógica del flujo de trabajo

Disco > Atributos SMART > smartctl > smartd > registro / correo electrónico / monitoreo

Configuración básica y uso de smartctl

Instalación de la utilidad smartmontools

Trabajar con SMART es imposible sin el paquete smartmontools instalado, que incluye las utilidades smartctl (trabajo manual con discos) y smartd (demonio de monitoreo en segundo plano).

La instalación se realiza utilizando las herramientas estándar del gestor de paquetes de la distribución.

Debian / Ubuntu

sudo apt update

sudo apt install smartmontools

RHEL / AlmaLinux / Rocky Linux

sudo dnf install smartmontools

Después de la instalación, las utilidades están disponibles en el sistema y listas para su uso sin inicialización adicional.

Verificación de la versión y disponibilidad de smartctl

Como primer paso, se recomienda verificar que la utilidad esté correctamente instalada y disponible en el sistema:

smartctl --version

El comando muestra la versión del paquete y una lista de tecnologías compatibles.

Esto permite:

  • asegurarse de que se está utilizando una versión actualizada;
  • verificar la compatibilidad con NVMe, RAID y otros tipos de dispositivos.

Verificación de la compatibilidad de SMART en un disco específico

A continuación, es necesario verificar si la unidad en sí admite la tecnología SMART y si está habilitada a nivel del dispositivo.

sudo smartctl -i /dev/sda

Ejemplo de salida correcta:

SMART support is: Available - device has SMART capability. SMART support is: Enabled

Available – el disco admite físicamente SMART;
Enabled – la recopilación de datos SMART está activada y disponible para lectura.

Si SMART es compatible pero está deshabilitado, esto se ve a menudo en discos nuevos o previamente no utilizados. En tal caso, debe habilitarse manualmente:

sudo smartctl -s on /dev/sda

Después de esto, se recomienda volver a ejecutar el comando smartctl -i para asegurarse de que SMART esté activado.

Visualización de atributos SMART y evaluación inicial de salud

El valor práctico principal de SMART radica en sus atributos: valores numéricos que reflejan el estado de la superficie, mecánica y electrónica del disco.

Para ver los atributos, use el comando:

sudo smartctl -A /dev/sda

La salida contiene una tabla de atributos con sus valores actuales e historial. En primer lugar, se debe prestar atención a los siguientes indicadores:

Campos clave en la salida:

  • VALUE (Valor Actual): El valor normalizado del atributo (generalmente de 1 a 100, siendo 100 ideal). El disco se considera defectuoso si VALUE ≤ THRESH.
  • WORST (Peor Valor): El peor valor que se ha alcanzado durante el funcionamiento del disco.
  • THRESH (Umbral): El valor mínimo permitido para VALUE. Superar el umbral (VALUE ≤ THRESH) es un signo de una condición crítica.
  • RAW_VALUE: El valor "crudo", no normalizado del atributo. Esto es lo que se debe analizar para evaluar el desgaste y contar eventos.

Atributos clave para HDD (discos duros tradicionales):

  • Reallocated_Sector_Ct: Un aumento indica degradación de la superficie física.
  • Current_Pending_Sector (Sectores pendientes de reasignación): Sectores inestables. Incluso un solo valor distinto de cero es una señal de advertencia.
  • Offline_Uncorrectable (Errores no corregibles): Sectores que no se pudieron leer.
  • Power_On_Hours: El tiempo total de funcionamiento del disco.

Atributos clave para SSDs:

  • Retired_Block_Count: El equivalente de Reallocated_Sector_Ct para HDDs. Muestra el número de bloques fuera de servicio. Incluso un valor bajo con VALUE=100 puede ser normal.
  • Reallocated_Event_Count: El número de eventos de reasignación.
  • SSD_Life_Left o Percentage Used/Media Wearout Indicator: El porcentaje de vida útil restante (o desgaste). Un valor bajo (por ejemplo, <10%) es un signo de falla inminente.
  • Wear_Range_Delta: Un indicador de la uniformidad del desgaste en las celdas de memoria.
  • Power_On_Hours_and_Msec: El tiempo total de funcionamiento.
  • Lifetime_Writes_GiB / Lifetime_Reads_GiB (Atributos 241, 242): El volumen total de datos escritos/leídos.

Atributos clave para NVMe (a través de smartctl -a /dev/nvme0):

  • Percentage Used: El porcentaje de la resistencia de escritura consumida. El indicador principal de desgaste.
  • Media and Data Integrity Errors: Errores de integridad de datos.
  • Critical Warning: Banderas de advertencia crítica.
  • Temperature: Temperatura actual.

En esta etapa, el administrador obtiene una comprensión general del estado del disco y puede identificar signos evidentes de problemas.

Configuración avanzada y escenarios prácticos

SMART admite autopruebas integradas, que son realizadas por la unidad misma sin la intervención del sistema operativo.

La prueba corta está diseñada para una verificación rápida de los componentes clave:

sudo smartctl -t short /dev/sda

La prueba larga realiza un escaneo completo de la superficie y toma significativamente más tiempo:

sudo smartctl -t long /dev/sda

Después de completar la prueba, se deben verificar los resultados:

sudo smartctl -l selftest /dev/sda

La salida indica:

  • el tipo de prueba;
  • el estado de finalización;
  • la presencia o ausencia de errores.

Una prueba fallida es una razón directa para prepararse para el reemplazo del disco.

Trabajando con controladores RAID

Los controladores RAID de hardware a menudo ocultan los datos SMART del sistema. En tales casos, se debe especificar explícitamente el tipo de dispositivo.

Ejemplo para un controlador LSI:

smartctl -a -d megaraid,0 /dev/sda

Dónde:

  • -a – clave para mostrar toda la información SMART disponible (atributos, registros, errores, evaluación general de salud).
  • -d – clave para especificar el tipo de dispositivo.
  • megaraid – indica al controlador SMART que el disco está detrás de un controlador LSI/Broadcom (comúnmente utilizado en servidores).
  • 0 – el número de disco físico (PD, Physical Drive) en el arreglo RAID. Esto no es sda, sino un ID único asignado por el controlador. Se puede encontrar utilizando la utilidad de gestión del controlador (por ejemplo, storcli o MegaCLI).
  • /dev/sda – en este contexto, este no es el disco real, sino un pseudo-dispositivo que representa al controlador RAID en sí en el sistema. Normalmente, esto es /dev/sgX (SCSI Generic) o simplemente /dev/sda si el controlador ha creado un disco virtual.

Error típico cuando no se especifica el tipo de dispositivo:

SMART support is: Unavailable

Esto no significa que SMART no esté disponible, solo que smartctl no pudo determinar automáticamente la ruta al disco físico. La solución es especificar correctamente el parámetro -d.

Diagnóstico y resolución de problemas

Signos de posibles fallos:

  • aumento en el valor de Reallocated_Sector_Ct;
  • Current_Pending_Sector distinto de cero;
  • errores de programación/borrado (Program_Fail_Count, Erase_Fail_Count);
  • errores de autoprueba;
  • aumento en la latencia de I/O;
  • mensajes de error en los registros del sistema.

Análisis de registros:

journalctl -u smartd

dmesg | grep -i error

Explicación:
Pending Sectors > 0 – alto riesgo de falla;
Reallocated Sectors están aumentando – degradación progresiva;
Autoprueba FALLIDA – el disco debe ser reemplazado.

Identificación de fuentes de problemas

Para descartar falsos positivos, es importante correlacionar los datos SMART con la carga real.

iostat -x 1

iotop

Verificación de dónde está montado el disco:

lsblk -o NAME,SERIAL,MOUNTPOINT

Identificación de controladores:

lspci | grep -i raid

Métricas adicionales:

  • temperatura por encima de 50 °C;
  • aumento en errores CRC;
  • valores SMART inestables.

Configuración de notificaciones al administrador cuando las métricas SMART se acercan a valores umbral

La mera presencia de datos SMART no garantiza la seguridad de la infraestructura. Un elemento clave del monitoreo es la notificación oportuna al administrador en el momento en que el estado del disco comienza a deteriorarse, pero aún no ha ocurrido una falla.

El mecanismo de notificación permite:

  • detectar la degradación de la unidad en una etapa temprana;
  • planificar el reemplazo del disco con anticipación;
  • evitar tiempos de inactividad de emergencia y pérdida de datos;
  • operar dentro de ventanas de mantenimiento programadas.

En smartmontools, el demonio smartd es responsable de enviar notificaciones. Rastrea automáticamente los cambios en los atributos SMART y responde a las desviaciones de la norma.

Principio de funcionamiento de las notificaciones de smartd

El demonio smartd funciona como un servicio en segundo plano y realiza las siguientes tareas:

  1. Sondea periódicamente los atributos SMART del disco.
  2. Compara los valores actuales con: umbrales de fábrica, valores anteriores (dinámica de cambio).
  3. Detecta: crecimiento de atributos críticos, aparición de nuevos errores, fallos en autopruebas.
  4. Genera una notificación y la envía al administrador.

Requisitos para que las notificaciones funcionen

Antes de la configuración, es necesario asegurarse de lo siguiente:

  • un MTA (Postfix, Exim, Sendmail, ssmtp) está instalado y configurado correctamente en el sistema;
  • el servidor es capaz de enviar correo saliente;
  • la dirección de correo electrónico del administrador para recibir notificaciones está definida.

Ejemplo de configuración de ssmtp – un MTA ligero y simple para enviar correo desde el sistema.

Instalación:

Debian/Ubuntu:

sudo apt update && sudo apt install ssmtp mailutils -y

RHEL:

sudo dnf install ssmtp mailx

Crear el archivo de configuración:

sudo nano /etc/ssmtp/ssmtp.conf

y editar el contenido:

# Dirección de remitente predeterminada [email protected] # Servidor SMTP y puerto de su proveedor de correo electrónico mailhub=smtp.your-domain.com:587 # Ejemplo alternativo: # mailhub=smtp.gmail.com:587 # Para Gmail # Credenciales de autenticación [email protected] AuthPass=your-password # Configuración de cifrado UseSTARTTLS=YES # Usar STARTTLS UseTLS=YES # Usar TLS FromLineOverride=YES # Permitir sobrescribir la dirección del remitente # Nombre del host (especifique el nombre de su servidor) hostname=server1.your-domain.com # puede usar hostname=localhost o especificar el nombre real del sistema

Guarde el archivo y configure los permisos de acceso:

sudo chmod 640 /etc/ssmtp/ssmtp.conf

sudo chown root:mail /etc/ssmtp/ssmtp.conf

Configurar remitentes (revaliases):

sudo nano /etc/ssmtp/revaliases

root:[email protected]:smtp.your-domain.com:587 www-data:[email protected]:smtp.your-domain.com:587

Para el envío exitoso de mensajes, los siguientes puertos deben estar abiertos en el servidor: 587 (principal para el envío con cifrado STARTTLS), o 25 (SMTP estándar), 465 (SMTP seguro con SSL), si están proporcionados por la configuración.

Prueba básica de envío de correo:

echo "Mensaje de prueba SMART" | mail -s "Prueba de notificación SMART" [email protected]

Puede especificar explícitamente el remitente:

echo "Mensaje de prueba SMART" | mail -s "Prueba de notificación SMART" -a "From: [email protected]" [email protected]

O a través de ssmtp directamente:

echo "Mensaje de prueba SMART" | ssmtp [email protected]

[email protected] – la dirección del destinatario a la que se enviará el mensaje.

Info

Si el correo electrónico no se entrega, la configuración adicional de smartd es inútil hasta que se resuelvan los problemas de entrega de correo.

La configuración de notificaciones SMART se realiza en el archivo:

/etc/smartd.conf

Ejemplo de una configuración simple y funcional:

/dev/sda -a -o on -S on -m [email protected]

Parámetros:

  • /dev/sda – el disco que se está monitoreando;
  • -a – conjunto completo de comprobaciones;
  • -S on – el guardado de atributos entre reinicios está habilitado;
  • -o on – la recopilación automática de datos fuera de línea está activada;
  • -m – las notificaciones se envían al correo electrónico especificado.

A partir de este punto, smartd comenzará a monitorear el estado del disco en segundo plano.

Notificaciones al acercarse a valores umbral

Una característica clave de smartd es que monitorea los cambios en los valores de los atributos, no solo su superación crítica.

En la práctica, esto significa que se puede enviar una notificación:

  • al aparecer por primera vez Current_Pending_Sector;
  • al aumentar Reallocated_Sector_Ct, incluso si aún no se ha alcanzado el umbral;
  • al detectar errores en autopruebas;
  • al degradarse los parámetros NVMe.

Los atributos más significativos de fallos tempranos:

  • Reallocated_Sector_Ct
  • Current_Pending_Sector
  • Offline_Uncorrectable
  • Media and Data Integrity Errors (NVMe)
  • Percentage Used (SSD/NVMe)

Incluso cambios mínimos en estos parámetros deben considerarse una razón para prestar atención.

Uso de autopruebas como fuente de notificaciones

Para aumentar la informatividad, se recomienda combinar el monitoreo de atributos con autopruebas regulares.

Ejemplo de configuración con un horario:

/dev/sda -a -o on -S on \ -s (S/../.././02|L/../../6/03) \ -m [email protected]

Lógica de operación:

  • se realiza una prueba corta diariamente;
  • se realiza una prueba completa una vez a la semana;
  • ante cualquier fallo en la prueba, el administrador recibe una notificación.

Gestión de la frecuencia y volumen de notificaciones

Para evitar alertas excesivas, se utiliza el parámetro -M once:

/dev/sda -a -m [email protected] -M once

En este modo:

  • se envía una notificación al detectar por primera vez un problema;
  • los mensajes posteriores no se duplican hasta que se resuelva la causa.

Para probar el sistema de notificaciones, puede usar -M test. Esto le permite verificar que smartd es capaz de enviar mensajes sin esperar un error real.

Conclusión

Dentro del alcance de este manual, se ha revisado sistemáticamente el ciclo completo de implementación y operación de smartctl y el demonio smartd como herramienta para el monitoreo proactivo de la salud de los discos. Se han cubierto los principios básicos de funcionamiento de SMART, métodos prácticos para el análisis de atributos, lanzamiento e interpretación de autopruebas, especificidades de trabajar con unidades NVMe y controladores RAID, así como métodos de diagnóstico y técnicas para identificar las causas raíz de los problemas. Se ha prestado especial atención a la configuración de notificaciones, que permiten detectar la degradación de la unidad en etapas tempranas, incluso antes de que ocurra una falla crítica.

El monitoreo SMART correctamente configurado es una parte integral de una infraestructura de servidor confiable y debe considerarse un estándar operativo obligatorio. El uso de smartctl y smartd permite al administrador del sistema pasar de la resolución reactiva de incidentes a un mantenimiento consciente y gestionable del subsistema de discos, reduciendo los riesgos de tiempo de inactividad, pérdida de datos e incidentes no planificados, al tiempo que crea una base sólida para una mayor automatización e integración con sistemas de monitoreo centralizados.

VAT

  • Other

    Ex. VAT

    0%
  • austria

    Austria

    20%
  • Belgium

    Belgium

    21%
  • Bulgaria

    Bulgaria

    20%
  • Croatia

    Croatia

    25%
  • Cyprus

    Cyprus

    19%
  • Czech Republic

    Czech Republic

    21%
  • Denmark

    Denmark

    25%
  • Estonia

    Estonia

    22%
  • France

    France

    20%
  • Finland

    Finland

    24%
  • Germany

    Germany

    19%
  • Greece

    Greece

    24%
  • Hungary

    Hungary

    27%
  • Ireland

    Ireland

    23%
  • Italy

    Italy

    22%
  • Latvia

    Latvia

    21%
  • Lithuania

    Lithuania

    21%
  • Luxembourg

    Luxembourg

    17%
  • Malta

    Malta

    18%
  • Netherlands

    Netherlands

    21%
  • Poland

    Poland

    23%
  • Portugal

    Portugal

    23%
  • Romania

    Romania

    19%
  • Slovakia

    Slovakia

    20%
  • Slovenia

    Slovenia

    22%
  • Spain

    Spain

    21%
  • Sweden

    Sweden

    25%
  • USA

    USA

    0%
european
states
  • germany
  • Español
  • Italiano
  • Poland
  • Русский
  • Slovenski
  • Türkçe
  • ukraine
  • kingdom
  • French
  • Hrvatska
  • Other
  • Austria
  • Belgium
  • Bulgaria
  • Croatia
  • Cyprus
  • Czech Republic
  • Denmark
  • Estonia
  • Finland
  • France
  • Germany
  • Greece
  • Hungary
  • Ireland
  • Italy
  • Latvia
  • Lithuania
  • Luxembourg
  • Malta
  • Netherlands
  • Poland
  • Portugal
  • Romania
  • Slovakia
  • Slovenia
  • Spain
  • Sweden
  • USA