Tutoriales 9 min de lectura

Configurar RAID por software en un servidor Linux

Guía paso a paso para configurar RAID 1 y RAID 5 por software con mdadm en Ubuntu, incluyendo creación, montaje, monitoreo y recuperación ante fallo de disco.

Servidor abierto mostrando bahías de disco duro con indicadores LED de actividad en configuración RAID
Servidor abierto mostrando bahías de disco duro con indicadores LED de actividad en configuración RAID

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.

Solicitar evaluación

Preguntas frecuentes

Temas relacionados

#raid#linux#servidores#almacenamiento#mdadm#tutorial

¿Te fue útil? Compártelo

Artículos relacionados

Ver todos

Consultoría gratuita

¿Necesitas diseñar el almacenamiento de tu servidor?

Evaluamos tu carga de trabajo y diseñamos la configuración de discos, RAID y almacenamiento óptima para tu operación.

Solicitar evaluación