Ir al contenido

5.5 RAID por Software (mdadm)

RAID (Redundant Array of Independent Disks) agrupa varios discos físicos para comportarse como uno solo, combinando redundancia y/o rendimiento. En Linux, mdadm (Multiple Device Admin) implementa RAID completamente en software, sin necesidad de hardware especial.


NivelMínimo discosRedundanciaRendimientoEspacio útilUso típico
RAID 02❌ Ninguna⚡ Doble lectura/escritura100%Scratch/tmp (si el disco muere, pierdes todo)
RAID 12✅ 1 disco✅ Lectura paralela50%Boot, sistema operativo, BD pequeñas
RAID 53✅ 1 disco✅ Buena lectura~67-93%Almacenamiento de datos, NAS
RAID 64✅ 2 discosBuena lectura~50-88%Archivos críticos (aguanta 2 fallos)
RAID 104✅ 50%⚡ Excelente50%Bases de datos de alto rendimiento

ventana terminal
sudo apt install mdadm
# Verificar discos disponibles
lsblk
# Identifica los discos que usarás (sin particiones montadas)

ventana terminal
# Crear el array RAID 1 con /dev/sdb y /dev/sdc
sudo mdadm --create /dev/md0 \
--level=1 \
--raid-devices=2 \
/dev/sdb /dev/sdc
# Seguir la sincronización inicial (puede tardar minutos en discos grandes)
watch cat /proc/mdstat
# Verificar el array creado
sudo mdadm --detail /dev/md0

ventana terminal
# Formatear el array como ext4
sudo mkfs.ext4 /dev/md0
# Crear punto de montaje y montar
sudo mkdir -p /mnt/raid
sudo mount /dev/md0 /mnt/raid
# Verificar
df -h /mnt/raid

ventana terminal
# Guardar la configuración en /etc/mdadm/mdadm.conf
sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
# Actualizar initramfs para que reconozca el array al arrancar
sudo update-initramfs -u
ventana terminal
# Obtener el UUID del array
sudo blkid /dev/md0
# Añadir a /etc/fstab
sudo nano /etc/fstab
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /mnt/raid ext4 defaults 0 2

ventana terminal
# Estado resumido de todos los arrays
cat /proc/mdstat
# Personalities : [raid1] [raid5]
# md0 : active raid1 sdb[0] sdc[1]
# 2096640 blocks super 1.2 [2/2] [UU]
# (U = activo, _ = fallo)
# Estado detallado de un array
sudo mdadm --detail /dev/md0
# Ver estado de todos los arrays
sudo mdadm --detail --scan

La columna [UU] indica el estado de cada disco: U = activo, _ = fallo.


7. Simular fallo y recuperación (LFCS escenario clave)

Sección titulada “7. Simular fallo y recuperación (LFCS escenario clave)"

Este es uno de los escenarios más frecuentes en el examen LFCS:

ventana terminal
# 1. SIMULAR fallo de un disco (marcarlo como defectuoso)
sudo mdadm /dev/md0 --fail /dev/sdc
# 2. Ver el estado del array degradado
cat /proc/mdstat
# md0 : active raid1 sdb[0] sdc[1](F)
# [2/1] [U_] ← un disco falla
# 3. Eliminar el disco defectuoso del array
sudo mdadm /dev/md0 --remove /dev/sdc
# 4. (En producción: apagar, sustituir el disco físico, arrancar)
# En lab: el disco /dev/sdc sigue disponible, simula el reemplazo
# 5. Añadir el disco de reemplazo al array
sudo mdadm /dev/md0 --add /dev/sdc
# 6. Seguir la reconstrucción automática
watch cat /proc/mdstat
# md0 : active raid1 sdb[0] sdc[1]
# [2/1] [U_]
# [=====>..............] recovery = 25.3%

ventana terminal
# Detener un array (desmontarlo antes)
sudo umount /mnt/raid
sudo mdadm --stop /dev/md0
# Ensamblar un array existente (tras reiniciar o mover discos)
sudo mdadm --assemble /dev/md0 /dev/sdb /dev/sdc
# Ensamblar automáticamente todos los arrays en mdadm.conf
sudo mdadm --assemble --scan