Un servidor de producción sin RAID es una apuesta. Los discos duros fallan — no es cuestión de si, es cuestión de cuándo. Un disco mecánico típico tiene una vida útil de 3-5 años; los SSD, 5-10 años. Cuando ese disco falla y tu base de datos, tu ERP o tus archivos están ahí, todo se detiene. RAID te da tiempo: cuando un disco falla, los datos siguen disponibles mientras reemplazas el disco y reconstruyes el array.
En esta guía vas a configurar RAID 1 (espejo) y RAID 5 por software con mdadm en Ubuntu — los dos niveles más comunes en servidores de producción.
Requisitos previos
Un servidor Ubuntu 24.04 con al menos 2 discos adicionales (además del disco del sistema operativo). En esta guía usamos:
/dev/sda— Disco del sistema operativo (no lo tocamos)/dev/sdb— Disco 1 para RAID/dev/sdc— Disco 2 para RAID/dev/sdd— Disco 3 para RAID (solo para RAID 5)
Datos existentes
Todo lo que esté en los discos que uses para RAID se borrará. Asegúrate de usar discos vacíos o datos que puedas perder. Nunca incluyas el disco del sistema operativo en el array RAID de datos.
Verifica tus discos:
lsblk
Instalar mdadm
sudo apt update
sudo apt install mdadm -y
Opción A: RAID 1 (Espejo — 2 discos)
RAID 1 mantiene una copia idéntica de los datos en ambos discos. Si uno falla, el otro tiene toda la información. Es la configuración más simple y confiable para servidores con 2 discos.
┌─────────┐ ┌─────────┐
│ /dev/sdb │ │ /dev/sdc │
│ │ │ │
│ Datos │◄──►│ Copia │
│ 100% │ │ 100% │
│ │ │ │
└─────────┘ └─────────┘
↕ ↕
Disco 1 Disco 2
1 TB útil de 2 TB total
Crear el array RAID 1
# Crear particiones en ambos discos
sudo parted /dev/sdb mklabel gpt
sudo parted /dev/sdb mkpart primary 0% 100%
sudo parted /dev/sdc mklabel gpt
sudo parted /dev/sdc mkpart primary 0% 100%
# Crear el array RAID 1
sudo mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1
mdadm te pregunta si quieres continuar — confirma con y. El array comienza a sincronizarse inmediatamente. Puedes usarlo mientras se sincroniza, pero con rendimiento reducido.
Verifica el estado:
sudo mdadm --detail /dev/md0
cat /proc/mdstat
Formatear y montar
# Formatear con ext4
sudo mkfs.ext4 /dev/md0
# Crear punto de montaje
sudo mkdir -p /datos
# Montar
sudo mount /dev/md0 /datos
# Verificar
df -h /datos
Montaje automático al reiniciar
# Obtener UUID del array
sudo blkid /dev/md0
# Agregar al fstab
echo "UUID=tu-uuid-aqui /datos ext4 defaults 0 2" | sudo tee -a /etc/fstab
# Guardar configuración de mdadm
sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
sudo update-initramfs -u
Opción B: RAID 5 (Paridad distribuida — 3+ discos)
RAID 5 distribuye los datos y la paridad entre todos los discos. Tolera la falla de un disco y ofrece mejor aprovechamiento del espacio que RAID 1 con 3+ discos.
┌─────────┐ ┌─────────┐ ┌─────────┐
│ /dev/sdb │ │ /dev/sdc │ │ /dev/sdd │
│ │ │ │ │ │
│ Datos A │ │ Datos B │ │Paridad AB│
│Paridad CD│ │ Datos C │ │ Datos D │
│ Datos E │ │Paridad EF│ │ Datos F │
└─────────┘ └─────────┘ └─────────┘
Disco 1 Disco 2 Disco 3
2 TB útiles de 3 TB total
Crear el array RAID 5
# Crear particiones en los 3 discos
for disk in sdb sdc sdd; do
sudo parted /dev/$disk mklabel gpt
sudo parted /dev/$disk mkpart primary 0% 100%
done
# Crear el array RAID 5
sudo mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1
La sincronización inicial de RAID 5 toma más tiempo que RAID 1 porque necesita calcular la paridad. Para discos de 1 TB puede tomar 2-4 horas:
# Monitorear progreso
watch cat /proc/mdstat
# Formatear y montar (igual que RAID 1)
sudo mkfs.ext4 /dev/md0
sudo mkdir -p /datos
sudo mount /dev/md0 /datos
Monitoreo del RAID
Un RAID sin monitoreo es tan peligroso como no tener RAID. Si un disco falla y no te enteras, el segundo disco puede fallar y pierdes todo.
Configurar alertas por correo
# Configurar email en mdadm.conf
sudo nano /etc/mdadm/mdadm.conf
Agrega o modifica:
MAILADDR admin@tuempresa.com
mdadm envía un correo automáticamente si detecta un disco degradado o fallido.
Monitoreo con Zabbix o Prometheus
Para integrar con Grafana y Prometheus, node_exporter ya incluye métricas de mdadm:
# Discos activos en el array
node_md_disks{state="active"}
# Array degradado (menos discos activos que esperados)
node_md_disks{state="active"} < node_md_disks_required
Crea una alerta en Grafana cuando el array esté degradado.
Verificación manual
# Estado del array
sudo mdadm --detail /dev/md0
# Estado rápido
cat /proc/mdstat
# Salud de cada disco con SMART
sudo apt install smartmontools -y
sudo smartctl -a /dev/sdb
sudo smartctl -a /dev/sdc
Programa un check semanal de SMART para detectar discos que están por fallar antes de que fallen:
# Crontab semanal
0 3 * * 0 /usr/sbin/smartctl -t short /dev/sdb && /usr/sbin/smartctl -t short /dev/sdc
Simulación de fallo y recuperación
Saber cómo recuperarse de un fallo es tan importante como configurar el RAID. Practica esto en un ambiente de pruebas:
Simular fallo de disco
# Marcar un disco como fallido
sudo mdadm --manage /dev/md0 --fail /dev/sdc1
# Verificar estado — debería mostrar "degraded"
sudo mdadm --detail /dev/md0
El array sigue funcionando pero degradado — sin protección contra un segundo fallo.
Remover disco fallido
sudo mdadm --manage /dev/md0 --remove /dev/sdc1
Agregar disco de reemplazo
En producción, reemplazas físicamente el disco muerto. Aquí simulamos con el mismo disco:
# Crear partición en el disco nuevo
sudo parted /dev/sdc mklabel gpt
sudo parted /dev/sdc mkpart primary 0% 100%
# Agregar al array
sudo mdadm --manage /dev/md0 --add /dev/sdc1
El array comienza la reconstrucción automáticamente:
# Monitorear reconstrucción
watch cat /proc/mdstat
Disco spare (reserva caliente)
Si tienes un disco extra, configúralo como spare — un disco de reserva que entra automáticamente cuando uno falla, sin intervención humana:
# Agregar spare al array RAID 5
sudo mdadm --manage /dev/md0 --add /dev/sde1
# Verificar — debería mostrar "spare"
sudo mdadm --detail /dev/md0 | grep spare
Cuando un disco falla, mdadm automáticamente remueve el disco fallido e inicia la reconstrucción con el spare. El tiempo entre fallo y recuperación se reduce de "hasta que alguien lo note y lo arregle" a "inmediato y automático".
Buenas prácticas
Usa discos del mismo tamaño y modelo — mezclar discos de diferente capacidad desperdicia espacio. Mezclar modelos diferentes aumenta el riesgo de fallos simultáneos (mismo lote de fabricación).
RAID no es backup — protege contra fallo de disco, no contra borrado accidental, ransomware o corrupción. Siempre configura backup automatizado además de RAID.
Monitorea SMART — los discos no fallan de golpe; dan señales antes. SMART te avisa cuando un disco está deteriorándose para que lo reemplaces antes de que falle.
Prueba la recuperación — al menos una vez al año, simula un fallo y practica el reemplazo de disco. En una emergencia real no quieres estar leyendo documentación.
Documenta la configuración — anota qué discos forman el array, qué nivel de RAID, el UUID y la configuración de montaje. Guarda esta documentación fuera del servidor.
Siguientes pasos
Con RAID configurado, tu almacenamiento tiene la primera capa de protección. Para completar la estrategia:
- LVM sobre RAID — Logical Volume Manager para redimensionar particiones sin downtime
- ZFS — sistema de archivos con RAID integrado, snapshots y checksums (alternativa a mdadm + ext4)
- Proxmox + Ceph — almacenamiento distribuido con redundancia para clusters de virtualización
- Backup automatizado — la segunda capa de protección que RAID no reemplaza
- Infraestructura profesional — diseño completo de almacenamiento con RAID, LVM, backup y monitoreo
Almacenamiento empresarial
¿Necesitas diseñar el almacenamiento de tu servidor?
Evaluamos tu carga de trabajo y diseñamos la configuración de RAID, particiones, backup y monitoreo óptima para tu operación.



