
Monitorización de estado de discos RAID mediante herramientas de línea de comandos
En servidores dedicados, la disponibilidad y la integridad del almacenamiento son críticos. Monitorizar el estado de los discos que forman un RAID permite detectar degradaciones, predecir fallos y automatizar respuestas antes de que un incidente provoque pérdida de servicio. Esta guía práctica, orientada a administradores y responsables de infraestructura, repasa las herramientas de línea de comandos más fiables (mdadm, smartctl y utilidades de fabricantes), muestra ejemplos reales y propone una configuración de alertas y buenas prácticas.
Por qué monitorizar RAID desde la línea de comandos
Las soluciones de monitorización integradas o basadas en agentes aportan visibilidad, pero la línea de comandos es imprescindible por varias razones:
- Permite diagnósticos rápidos y reproducibles en entornos sin interfaz gráfica.
- Facilita la automatización mediante scripts y systemd/cron.
- Acceso a información detallada no siempre expuesta por interfaces web.
- Es indispensable para debugging cuando la red o servicios de monitorización están caídos.
Conceptos básicos
Antes de ejecutar comandos conviene recordar dos capas distintas:
- Capa de software RAID (p. ej. mdadm en Linux): gestiona arrays a nivel de kernel.
- Capa física / hardware RAID: controladoras que exponen arrays a nivel de firmware o mediante utilidades propietarias.
Para una explicación técnica del concepto RAID, consulta la entrada en Wikipedia.
Herramientas para RAID software (mdadm)
En Linux, mdadm es la herramienta estándar para crear, gestionar y monitorizar arrays software. Algunas operaciones y comprobaciones útiles:
- Ver el estado del array:
mdadm --detail /dev/md0 - Listar arrays activos:
cat /proc/mdstat - Monitor en tiempo real (daemon): configurar
mdadm --monitorpara enviar emails o ejecutar scripts ante eventos.
Ejemplo: comprobar /dev/md0 y extraer disco degradado
# Ver estado
mdadm --detail /dev/md0
# Si detectas un disco fallado, marcarlo faulty y remover
mdadm --manage /dev/md0 --fail /dev/sdb1
mdadm --manage /dev/md0 --remove /dev/sdb1
# Añadir reemplazo y reconstruir
mdadm --manage /dev/md0 --add /dev/sdb1
Automatizar notificaciones con mdadm: en /etc/mdadm/mdadm.conf puedes definir MAILADDR para recibir avisos y lanzar el daemon mdadm --monitor --scan --daemonise --syslog.
Comprobación S.M.A.R.T. con smartctl
S.M.A.R.T. (Self-Monitoring, Analysis and Reporting Technology) es la fuente principal de telemetría de salud de discos. smartctl (del paquete smartmontools) permite leer valores, lanzar tests y obtener registros:
- Estado rápido:
smartctl -H /dev/sda - Atributos SMART:
smartctl -A /dev/sda - Logs de errores:
smartctl -l error /dev/sda - Test corto y verificación:
smartctl -t short /dev/sday luegosmartctl -a /dev/sda
Ejemplo de script básico que devuelve fallo si alguno de los discos tiene un umbral crítico:
#!/bin/bash
for d in /dev/sd[a-z]; do
if smartctl -H "$d" | grep -q 'FAILED'; then
echo "SMART FAIL on $d" 1>&2
exit 1
fi
done
exit 0
Atención: en arrays hardware la interfaz a los discos físicos puede no estar directamente expuesta como /dev/sdX; en esos casos hay que usar las utilidades del fabricante o consultar cómo exponer S.M.A.R.T. desde la controladora.
Herramientas para hardware RAID
Controladoras populares (LSI/Avago/Broadcom, HPE, Adaptec, Dell PERC) ofrecen utilidades en línea de comandos con información sobre baterías, cachés y estado de discos. Ejemplos frecuentes:
- LSI/Avago: storcli, megacli (o su reemplazo storcli64)
- HPE: hpacucli / hpssacli
- Adaptec: arcconf
- Dell: omreport / omconfig (OpenManage) en sistemas Dell
Comandos típicos (ejemplos genéricos):
# LSI storcli: mostrar controladora y estado de los discos
storcli /c0 show
storcli /c0 /eall /sall show
# Megacli (antiguo): estado de adaptador
megacli -AdpAllInfo -aALL
Cada herramienta tiene su salida y códigos; automatiza parsing con scripts o usa herramientas de integración con sistemas de monitoring (Nagios, Zabbix, Prometheus exporters).
Alertas, automatización y pruebas
La monitorización eficaz no es solo comprobar manualmente: hay que automatizar alertas y simular fallos para validar procedimientos.
Tipos de alertas recomendadas
- SMART: atributos críticos (Reallocated_Sector_Ct, Current_Pending_Sector, UDMA_CRC_Error_Count)
- Estado RAID: disco marcado como failed, array en degraded, reconstrucción incompleta
- Controladora: batería del cache baja, pérdida de batería, temperatura elevada
Integración con sistemas de monitorización
Integrar scripts en Nagios/Zabbix/Prometheus ofrece centralización. Un enfoque sencillo es:
- Script de chequeo que retorne código de estado y mensaje legible.
- Comprobaciones periódicas desde el servidor o un agente central.
- Escalar a alertas por email/SMS/Slack cuando el estado sea crítico.
Para gestión de logs y retención, sigínate buenas prácticas de gestión de logs recomendadas por NIST en su guía sobre gestión de logs: NIST SP 800-92.
Pruebas y validación
- Simula la remoción de un disco en un entorno de ensayo y valida que las alertas y la reconstrución funcionan.
- Programa tests S.M.A.R.T. cortos semanalmente y tests largos mensuales en horarios de baja carga.
- Documenta pasos y plazos de RTO/RPO para reemplazo de discos en producción.
Buenas prácticas operativas
- Monitorea tanto la capa RAID como la salud SMART de cada disco; ambas aportan señales distintas.
- Evita dependencias únicas: replicas, backups regulares y pruebas de restauración.
- Controla temperatura y ventilación: la termal es un factor clave en fallo de discos.
- Registra todos los eventos de mantenimiento y cambios de discos en un CMDB o ticketing.
- Usa scripts idempotentes y versionados en Git; documenta alertas y umbrales.
Ejemplo práctico: script combinado
Un script simple que combina smartctl y mdadm puede ejecutarse por cron y devolver código 2 si hay fallo crítico:
#!/bin/bash
# check-raid.sh
# 1) Revisar mdadm
if mdadm --detail --scan | grep -q 'degraded'; then
echo 'RAID DEGRADED' && exit 2
fi
# 2) Revisar SMART
for d in /dev/sd[a-z]; do
if smartctl -H "$d" | grep -q FAILED; then
echo "SMART FAIL on $d" && exit 2
fi
done
echo 'OK' && exit 0
Añádelo en cron o como service con systemd. En caso de fallo, envía notificación por mail o webhook a tu sistema de incidentes.
Consideraciones finales
La monitorización de discos RAID desde la línea de comandos es una práctica imprescindible en servidores dedicados: ofrece control fino, permite actuar rápidamente y se integra fácilmente con sistemas de monitorización y automatización. Combina mdadm para software RAID, smartctl para telemetría S.M.A.R.T. y las utilidades del fabricante para controladoras hardware. Automatiza alertas, prueba procedimientos y documenta todo el proceso de gestión de fallos.
Conclusión
Implementar una estrategia sólida de monitorización RAID reduce el riesgo de incidentes y mejora los tiempos de recuperación. Empieza por auditar las herramientas disponibles en tu infraestructura, configura checks regulares (SMART + RAID), automatiza notificaciones y realiza pruebas periódicas de sustitución. Con estos pasos minimizarás la probabilidad de pérdida de datos y asegurarás una alta disponibilidad en tus servidores dedicados.
Lecturas recomendadas: documentación técnica sobre RAID en Wikipedia y la guía de gestión de logs de NIST SP 800-92 para integrar registros y alertas de forma segura y auditable.