Linux··15 min de lectura

Cómo crear un RAID desde cero en Linux con mdadm

Guía práctica para configurar RAID 1, 5, 6 y 10 con mdadm en Ubuntu/Debian: preparación de discos, creación del array, monitorización y qué hacer cuando falla.

Qué es RAID y qué NO es

RAID (Redundant Array of Independent Disks) combina varios discos físicos en un único volumen lógico con distintos compromisos entre capacidad, rendimiento y tolerancia a fallos. RAID protege ante fallo de hardware, no ante borrado accidental, ransomware ni corrupción a nivel de aplicación. RAID no es backup.

Regla 3-2-1: 3 copias, 2 medios distintos, 1 offsite. Herramientas: restic, borgbackup, snapshots ZFS replicados fuera del site.

Niveles RAID en producción

Para un servidor típico, estos son los niveles que verás:

  • RAID 0 (striping): capacidad = N × tamaño, rendimiento máximo, cero tolerancia. Solo para cache o scratch.
  • RAID 1 (mirroring): capacidad = N/2, tolera N/2 discos si son de mirrors distintos. Ideal para el disco de sistema.
  • RAID 5 (paridad distribuida): capacidad = (N−1) × tamaño, tolera 1 disco. Peligroso con discos >4 TB por el tiempo de reconstrucción.
  • RAID 6: capacidad = (N−2) × tamaño, tolera 2 discos. La opción segura para arrays grandes.
  • RAID 10: combinación de 1+0. Capacidad = N/2, tolera múltiples fallos si no son en el mismo mirror. Mejor rendimiento que RAID 6.

Puedes visualizar cualquier combinación en nuestra calculadora RAID antes de comprar discos.

Preparación de discos

Empezamos con 4 discos de 4 TB idénticos: /dev/sdb, /dev/sdc, /dev/sdd, /dev/sde. Antes de nada, limpia posibles metadatos previos:


sudo wipefs -a /dev/sdb /dev/sdc /dev/sdd /dev/sde

Crea una tabla GPT y una partición del tipo Linux RAID en cada uno:


for d in /dev/sd{b,c,d,e}; do
  sudo parted -s $d mklabel gpt
  sudo parted -s $d mkpart primary 0% 100%
  sudo parted -s $d set 1 raid on
done

Crear un RAID 6 con mdadm

Para 4 discos, RAID 6 nos da 8 TB útiles y tolera 2 fallos:


sudo mdadm --create /dev/md0 \
  --level=6 \
  --raid-devices=4 \
  /dev/sd{b,c,d,e}1

Verifica el progreso de sincronización inicial (puede tardar horas):


cat /proc/mdstat

Cuando termine, formatea con ext4 o XFS:


sudo mkfs.xfs -L datos /dev/md0
sudo mkdir /mnt/datos
sudo mount /dev/md0 /mnt/datos

Persiste la configuración:


sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
sudo update-initramfs -u
echo 'LABEL=datos /mnt/datos xfs defaults,noatime 0 2' | sudo tee -a /etc/fstab

Monitorización proactiva

Nunca dejes un RAID sin monitorización. Un disco puede llevar meses degradado sin que te enteres, y el segundo fallo llegará. Configura alertas por email en /etc/mdadm/mdadm.conf:


MAILADDR sysadmin@example.com

Añade un scrubbing periódico para detectar bit rot silencioso (ya viene configurado en Debian/Ubuntu vía cron mensual):


echo check | sudo tee /sys/block/md0/md/sync_action

Integra con Prometheus con node_exporter, que expone node_md_disks. Alerta en Alertmanager cuando node_md_disks{state="failed"} > 0.

Monitorización de discos con SMART:


sudo apt install smartmontools
sudo smartctl -a /dev/sdb  # ver estado
sudo systemctl enable --now smartd  # daemon con alertas

Qué hacer cuando falla un disco


cat /proc/mdstat
# Personalities : [raid6] [raid5] [raid4]
# md0 : active raid6 sdc1[1] sdd1[2] sde1[3] sdb1[0](F)

Marca el disco fallado (por si acaso), retíralo y añade el reemplazo:


sudo mdadm --manage /dev/md0 --fail /dev/sdb1
sudo mdadm --manage /dev/md0 --remove /dev/sdb1

# Cambia el disco físicamente. Prepara el nuevo:
sudo wipefs -a /dev/sdb
sudo parted -s /dev/sdb mklabel gpt mkpart primary 0% 100% set 1 raid on

sudo mdadm --manage /dev/md0 --add /dev/sdb1

La reconstrucción empieza automáticamente. Vigila /proc/mdstat.

RAID por software vs hardware

En 2026, salvo requisitos concretos, RAID por software (mdadm o ZFS) supera al hardware:

  • Sobrevive al cambio de servidor (no depende de un controlador específico)
  • Métricas y logs mejores
  • Cero coste de licencia
  • ZFS y Btrfs añaden checksums end-to-end que detectan bit rot que mdadm no ve

ZFS: el paso siguiente

Si empiezas un servidor nuevo, considera ZFS en lugar de mdadm + XFS:

  • Checksums SHA-256 por bloque, detecta corrupción silenciosa
  • Snapshots atómicos instantáneos
  • Compresión transparente (zstd es casi gratis en CPU)
  • Envío/recepción incremental para replicación
  • Encriptación nativa

Un zpool create tank raidz2 sdb sdc sdd sde te da algo equivalente al RAID 6 anterior con todas esas ventajas encima.

Checklist final

1. RAID 6 o Z2 para arrays con discos >4 TB 2. Hot spare configurado 3. Scrubbing mensual automatizado 4. Alertas por email y a Prometheus 5. SMART daemon activo 6. Backups externos (¡RAID no es backup!) 7. Documenta qué disco está en qué bahía física — cuando falle uno a las 3 am lo agradecerás

Un RAID bien montado y monitorizado es una de esas piezas que trabajan en silencio durante años. Merece la pena hacerlo bien desde el principio.

Herramientas relacionadas

Sigue leyendo