Instalación y configuración de smartctl para la supervisión proactiva del estado de los discos
Introducción
smartctl es una utilidad de consola del paquete smartmontools, diseñada para funcionar 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 alojamiento web;
- nodos VPS/VDS;
- servidores dedicados;
- servidores de archivos;
- sistemas de copia de seguridad;
- infraestructuras corporativas.
Qué tareas resuelve:
- detección precoz del deterioro de los discos;
- predicción de fallos en las unidades;
- reducción del riesgo de pérdida de datos;
- automatización de la supervisión del estado de los discos duros (HDD), SSD y NVMe;
- análisis de problemas físicos en el subsistema de discos.
La supervisión proactiva mediante SMART permite identificar un problema antes de que se produzca un fallo real del disco, lo cual es de vital importancia para los entornos de producción.
Requisitos y condiciones previas
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 que se muestran a continuación corresponden a Linux.
Software y paquetes necesarios:
- paquete smartmontools
- acceso a /dev/sdX, /dev/nvmeX
- systemd instalado (para smartd)
Derechos de acceso:
- se requieren privilegios de root
- o acceso mediante sudo
Comprobaciones preliminares
Visualización de la lista de discos del sistema:
lsblk -d -o NAME,MODEL
Visión general y conceptos básicos
Términos clave
- SMART: sistema integrado de autodiagnóstico de discos
- Atributos: atributos de estado (Reallocated_Sector_Ct, Pending_Sectors, etc.)
- Autoprueba: pruebas integradas de la unidad
- smartctl: utilidad de línea de comandos para la gestión de SMART
- smartd: demonio de supervisión automática
Cómo funciona
- El disco recopila estadísticas de forma independiente
- smartctl lee estos datos
- smartd analiza los valores umbral y los eventos
- Se envían notificaciones cuando surgen problemas
Lógica del flujo de trabajo
Disco > Atributos SMART > smartctl > smartd > registro / correo electrónico / supervisión
Configuración básica y uso de smartctl
Instalación de la utilidad smartmontools
No es posible trabajar con SMART sin tener instalado el paquete smartmontools, que incluye las utilidades smartctl (gestión manual de discos) y smartd (demonio de supervisión en segundo plano).
La instalación se realiza mediante 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
Tras la instalación, las utilidades quedan disponibles en el sistema y están listas para su uso sin necesidad de inicialización adicional.
Comprobación de la versión y la disponibilidad de smartctl
Como primer paso, se recomienda comprobar 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 las tecnologías compatibles.
Esto te permite:
- asegurarte de que se está utilizando una versión actualizada;
- comprobar si es compatible con NVMe, RAID y otros tipos de dispositivos.
Comprobación de la compatibilidad con SMART en un disco concreto
A continuación, es necesario comprobar si la propia unidad es compatible con la tecnología SMART y si está habilitada a nivel de dispositivo.
sudo smartctl -i /dev/sda
Ejemplo de resultado correcto:
SMART support is: Available - device has SMART capability. SMART support is: Enabled
- Disponible: el disco es físicamente compatible con SMART;
- Habilitado: la recopilación de datos SMART está activada y disponible para su lectura.
Si SMART es compatible pero está desactivado, esto suele ocurrir en discos nuevos o que no se han utilizado anteriormente. En tal caso, hay que activarlo manualmente:
sudo smartctl -s on /dev/sda
A continuación, se recomienda volver a ejecutar el comando `smartctl -i` para asegurarse de que SMART está activado.
Visualización de los atributos SMART y evaluación inicial del estado
El principal valor práctico de SMART reside en sus atributos: valores numéricos que reflejan el estado de la superficie, los componentes mecánicos y los electrónicos del disco.
Para ver los atributos, utiliza el comando:
sudo smartctl -A /dev/sda
La salida contiene una tabla de atributos con sus valores actuales y su historial. En primer lugar, hay que prestar atención a los siguientes indicadores:
Campos clave de la salida:
- VALUE (valor actual): el valor normalizado del atributo (normalmente de 1 a 100, siendo 100 el valor ideal). El disco se considera defectuoso si VALUE ≤ THRESH.
- WORST (valor peor): el peor valor alcanzado durante el funcionamiento del disco.
- THRESH (Umbral): El valor mínimo permitido para VALUE. Superar el umbral (VALUE ≤ THRESH) es señal de una situación crítica.
- RAW_VALUE: El valor «bruto», no normalizado, del atributo. Este es el valor que hay que analizar para evaluar el desgaste y contabilizar los eventos.
Atributos clave para los HDD (discos duros tradicionales):
- Reallocated_Sector_Ct: un aumento indica degradación física de la superficie.
- Current_Pending_Sector (Sectores pendientes de reasignación): Sectores inestables. Incluso un único valor distinto de cero es una señal de advertencia.
- Offline_Uncorrectable (Errores incorregibles): Sectores que no se han podido leer.
- Power_On_Hours: El tiempo total de funcionamiento del disco.
Atributos clave para los SSD:
- Retired_Block_Count: El equivalente a Reallocated_Sector_Ct para los discos duros (HDD). Muestra el número de bloques retirados del servicio. Incluso un valor bajo, como VALUE=100, puede ser normal.
- Reallocated_Event_Count: El número de eventos de reasignación.
- SSD_Life_Left o Porcentaje utilizado/Indicador de desgaste del soporte: El porcentaje de vida útil restante (o desgaste). Un valor bajo (p. ej., <10 %) es señal de un fallo inminente.
- Wear_Range_Delta: Un indicador de la uniformidad del desgaste entre las celdas de memoria.
- Power_On_Hours_and_Msec: El tiempo total de funcionamiento.
- Lifetime_Writes_GiB / Lifetime_Reads_GiB (atributos 241, 242): volumen total de datos escritos/leídos.
Atributos clave para NVMe (mediante smartctl -a /dev/nvme0):
- Porcentaje utilizado: El porcentaje de la resistencia a la escritura consumido. El principal indicador de desgaste.
- Errores de integridad de los soportes y de los datos: Errores de integridad de los datos.
- Advertencia crítica: Indicadores de advertencia crítica.
- Temperatura: Temperatura actual.
En esta fase, el administrador obtiene una visión general del estado del disco y puede identificar signos evidentes de problemas.
Configuración avanzada y situaciones prácticas
SMART admite autopruebas integradas, que lleva a cabo la propia unidad sin intervención del sistema operativo.
La prueba corta está diseñada para una comprobación rápida de los componentes clave:
sudo smartctl -t short /dev/sda
La prueba larga realiza un escaneo completo de la superficie y lleva bastante más tiempo:
sudo smartctl -t long /dev/sda
Una vez finalizada la prueba, es necesario comprobar los resultados:
sudo smartctl -l selftest /dev/sda
El resultado indica:
- el tipo de prueba;
- el estado de finalización;
- la presencia o ausencia de errores.
Una prueba fallida es motivo directo para prepararse para la sustitución del disco.
Trabajo con controladores RAID
Los controladores RAID de hardware suelen ocultar los datos SMART al sistema. En tales casos, es necesario especificar explícitamente el tipo de dispositivo.
Ejemplo para un controlador LSI:
smartctl -a -d megaraid,0 /dev/sda
Donde:
- -a: opción para mostrar toda la información SMART disponible (atributos, registros, errores, evaluación general del estado).
- -d: clave para especificar el tipo de dispositivo.
- megaraid: indica al controlador SMART que el disco está conectado a un controlador LSI/Broadcom (de uso habitual en servidores).
- 0: el número de disco físico (PD, Physical Drive) en la matriz RAID. No se trata de sda, sino de un identificador ú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, no se trata del disco real, sino de un pseudodispositivo que representa al propio controlador RAID en el sistema. Normalmente, es /dev/sgX (SCSI Generic) o simplemente /dev/sda si el controlador ha creado un disco virtual.
Error habitual cuando no se especifica el tipo de dispositivo:
SMART support is: Unavailable
Esto no significa que SMART no esté disponible, sino únicamente que smartctl no ha podido determinar automáticamente la ruta al disco físico. La solución consiste en especificar correctamente el parámetro -d.
Diagnóstico y resolución de problemas
Indicios de posibles fallos de funcionamiento:
- aumento del valor de Reallocated_Sector_Ct;
- valor de Current_Pending_Sector distinto de cero;
- errores de programación/borrado (Program_Fail_Count, Erase_Fail_Count);
- errores en la autocomprobación;
- aumento de la latencia de E/S;
- mensajes de error en los registros del sistema.
Análisis de registros
journalctl -u smartd
dmesg | grep -i error
Explicación:
- Sectores pendientes > 0: alto riesgo de fallo;
- Los sectores reasignados están aumentando: degradación progresiva;
- Autocomprobación FALLIDA: hay que sustituir el disco.
Identificación de las fuentes de los problemas
Para descartar falsos positivos, es importante correlacionar los datos SMART con la carga real.
iostat -x 1 iotop
Comprobació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 superior a 50 °C;
- aumento de los errores CRC;
- valores SMART inestables.
Configuración de notificaciones al administrador cuando las métricas SMART se acercan a los valores umbral
La mera presencia de datos SMART no garantiza por sí sola la seguridad de la infraestructura. Un elemento clave de la supervisión es la notificación oportuna al administrador en el momento en que el estado del disco comienza a deteriorarse, pero aún no se ha producido ningún fallo.
El mecanismo de notificación permite:
- detectar la degradación de la unidad en una fase temprana;
- planificar la sustitución del disco con antelación;
- evitar el tiempo de inactividad de emergencia y la pérdida de datos;
- operar dentro de las ventanas de mantenimiento programadas.
En smartmontools, el demonio smartd se encarga de enviar las notificaciones. Realiza un seguimiento automático de los cambios en los atributos SMART y responde ante cualquier desviación 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:
- Sondea periódicamente los atributos SMART del disco.
- Compara los valores actuales con: los umbrales de fábrica y los valores anteriores (dinámica de cambios).
- Detecta: el aumento de los atributos críticos, la aparición de nuevos errores y los fallos en las autocomprobaciones.
- Genera una notificación y la envía al administrador.
Requisitos para que funcionen las notificaciones
Antes de la configuración, es necesario asegurarse de lo siguiente:
- que haya un MTA (Postfix, Exim, Sendmail, ssmtp) instalado y correctamente configurado en el sistema;
- que el servidor sea capaz de enviar correo saliente;
- se ha definido la dirección de correo electrónico del administrador para recibir notificaciones.
Ejemplo de configuración de ssmtp: un MTA ligero y sencillo para enviar correo desde el sistema
Instalación:
# For Debian/Ubuntu sudo apt update && sudo apt install ssmtp mailutils -y # For RHEL sudo dnf install ssmtp mailx
Crea el archivo de configuración
sudo nano /etc/ssmtp/ssmtp.conf
y edita el contenido:
# Default sender address [email protected] # SMTP server and port of your email provider mailhub=smtp.your-domain.com:587 # Alternative example: # mailhub=smtp.gmail.com:587 # For Gmail # Authentication credentials [email protected] AuthPass=your-password # Encryption settings UseSTARTTLS=YES # Use STARTTLS UseTLS=YES # Use TLS FromLineOverride=YES # Allow overriding the sender address # Hostname (specify your server's name) hostname=server1.your-domain.com # you can use hostname=localhost or specify the system's actual hostname
Guarda el archivo y configura los permisos de acceso:
sudo chmod 640 /etc/ssmtp/ssmtp.conf sudo chown root:mail /etc/ssmtp/ssmtp.conf
Configurar los remitentes (alias):
sudo nano /etc/ssmtp/revaliases
root:[email protected]:smtp.your-domain.com:587 www-data:[email protected]:smtp.your-domain.com:587
Para que el envío de mensajes se realice correctamente, deben estar abiertos los siguientes puertos en el servidor: 587 (principal para el envío con cifrado STARTTLS), o 25 (SMTP estándar), 465 (SMTP seguro con SSL), si así lo prevé la configuración.
Prueba básica de envío de correo:
echo "SMART test message" | mail -s "SMART notification test" [email protected] # You can explicitly specify the sender echo "SMART test message" | mail -s "SMART notification test" -a "From: [email protected]" [email protected] # Via ssmtp directly echo "SMART test message" | ssmtp [email protected]
[email protected]: la dirección del destinatario a la que se enviará el mensaje.
Si el correo electrónico no se entrega, no tiene sentido seguir configurando smartd hasta que se resuelvan los problemas de entrega del correo.
La configuración de las notificaciones de SMART se realiza en el archivo:
/etc/smartd.conf
Ejemplo de una configuración sencilla que funciona:
/dev/sda -a -o on -S on -m [email protected]
Parámetros:
- /dev/sda: el disco que se supervisa;
- -a: conjunto completo de comprobaciones;
- -S on: se habilita el guardado de atributos entre reinicios;
- -o on: se activa la recopilación automática de datos sin conexión;
- -m: se envían notificaciones a la dirección de correo electrónico especificada.
A partir de este momento, smartd comenzará a supervisar el estado del disco en segundo plano.
Notificaciones al acercarse a los valores umbral
Una característica clave de smartd es que supervisa 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 el valor de «Reallocated_Sector_Ct», aunque aún no se haya alcanzado el umbral;
- al detectar errores en la autocomprobación;
- ante el deterioro de los parámetros NVMe.
Los atributos más significativos de un fallo precoz:
- Reallocated_Sector_Ct
- Current_Pending_Sector
- Offline_Uncorrectable
- Errores de integridad de los soportes y los datos (NVMe)
- Porcentaje utilizado (SSD/NVMe)
Incluso los cambios mínimos en estos parámetros deben considerarse motivo de atención.
Uso de las autocomprobaciones como fuente de notificación
Para aumentar el nivel de información, se recomienda combinar la supervisión de atributos con autocomprobaciones periódicas.
Ejemplo de configuración con una programación:
/dev/sda -a -o on -S on \ -s (S/../.././02|L/../../6/03) \ -m [email protected]
Lógica de funcionamiento:
- se realiza una prueba breve a diario;
- una vez a la semana se realiza una prueba completa;
- ante cualquier fallo en la prueba, el administrador recibe una notificación.
Gestión de la frecuencia y el volumen de las notificaciones
Para evitar un exceso de alertas, se utiliza el parámetro -M once
Ejemplo:
/dev/sda -a -m [email protected] -M once
En este modo:
- se envía una notificación en cuanto se detecta un problema por primera vez;
- los mensajes posteriores no se repiten hasta que se resuelva la causa.
Para probar el sistema de notificaciones, puedes utilizar -M test
Esto le permite comprobar que smartd es capaz de enviar mensajes sin esperar a que se produzca un error real.
Conclusión
En el marco de este manual, se ha revisado de forma sistemática el ciclo completo de implementación y funcionamiento de smartctl y del demonio smartd como herramienta para la supervisión proactiva del estado de los discos. Se han abordado los principios básicos del funcionamiento de SMART, los métodos prácticos para el análisis de atributos, la ejecución e interpretación de autopruebas, los aspectos específicos del trabajo con unidades NVMe y controladores RAID, así como los métodos y técnicas de diagnóstico para identificar las causas raíz de los problemas. Se ha prestado especial atención a la configuración de las notificaciones, que permiten detectar el deterioro de las unidades en fases tempranas, incluso antes de que se produzca un fallo crítico.
Una supervisión SMART correctamente configurada es parte integral de una infraestructura de servidores fiable 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 incidencias a un mantenimiento consciente y gestionable del subsistema de discos, lo que reduce los riesgos de tiempo de inactividad, pérdida de datos e incidencias no planificadas, al tiempo que crea una base sólida para una mayor automatización e integración con sistemas de supervisión centralizados.