204.1 - Comandos clave: Configuracion de RAID

Comandos principales de mdadm

ComandoFuncionEjemplo
mdadm --createCrear un nuevo array RAIDmdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1
mdadm --detailMostrar informacion detallada del arraymdadm --detail /dev/md0
mdadm --detail --scanGenerar lineas de configuracionmdadm --detail --scan >> /etc/mdadm.conf
mdadm --examineExaminar superbloque de un dispositivomdadm --examine /dev/sdb1
mdadm --queryConsulta rapida sobre un dispositivomdadm --query /dev/md0
mdadm --assembleReensamblar un array existentemdadm --assemble /dev/md0 /dev/sdb1 /dev/sdc1
mdadm --assemble --scanReensamblar todos los arraysmdadm --assemble --scan
mdadm --stopDetener un arraymdadm --stop /dev/md0
mdadm --addAgregar un disco a un arraymdadm --add /dev/md0 /dev/sdd1
mdadm --failMarcar un disco como fallidomdadm --fail /dev/md0 /dev/sdb1
mdadm --removeRetirar un disco del arraymdadm --remove /dev/md0 /dev/sdb1
mdadm --growExpandir o modificar un arraymdadm --grow /dev/md1 --raid-devices=4
mdadm --monitorMonitorizar arraysmdadm --monitor --scan --daemonise
mdadm --zero-superblockBorrar metadatos RAID de un discomdadm --zero-superblock /dev/sdb1

Opciones de creacion (—create)

OpcionFuncionEjemplo
--level=NNivel RAID (0,1,5,6,10)--level=5
--raid-devices=NNumero de discos activos--raid-devices=3
--spare-devices=NNumero de discos spare--spare-devices=1
--chunk=NTamano de chunk en KB--chunk=256
--bitmap=internalActivar bitmap interno--bitmap=internal
--name=XNombre del array--name=datos
--assume-cleanOmitir inicializacion--assume-clean

Archivos y rutas importantes

Archivo/RutaFuncion
/proc/mdstatEstado en tiempo real de todos los arrays RAID
/etc/mdadm.confConfiguracion persistente de arrays (Debian: /etc/mdadm/mdadm.conf)
/dev/mdXDispositivos de bloque RAID (md0, md1, etc.)
/sys/block/mdX/md/sync_actionControl de verificacion/reparacion
/sys/block/mdX/md/mismatch_cntContador de inconsistencias tras check
/sys/block/mdX/md/degradedEstado degradado (0=OK, 1=degradado)
/sys/block/mdX/md/array_stateEstado del array (clean, active, etc.)

Comparacion de niveles RAID

NivelMin. discosCapacidad utilTolerancia fallosTipo
RAID 02NNingunaStriping
RAID 121N-1Mirroring
RAID 53N-11 discoParidad distribuida
RAID 64N-22 discosDoble paridad
RAID 104N/21 por subarrayMirror + Stripe

Flujo de trabajo tipico

# 1. Crear particiones tipo fd (Linux RAID) en cada disco
fdisk /dev/sdb   # Tipo: fd
 
# 2. Crear el array
mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1
 
# 3. Verificar construccion
watch cat /proc/mdstat
 
# 4. Crear sistema de archivos
mkfs.ext4 /dev/md0
 
# 5. Montar
mount /dev/md0 /mnt/raid
 
# 6. Guardar configuracion
mdadm --detail --scan >> /etc/mdadm.conf
 
# 7. Actualizar initramfs
update-initramfs -u   # Debian
dracut -f             # RHEL

Procedimiento de recuperacion ante fallo

# 1. Identificar disco fallido
cat /proc/mdstat            # Buscar [U_] o [_U]
mdadm --detail /dev/md0     # Ver disco con estado "faulty"
 
# 2. Retirar disco fallido
mdadm --fail /dev/md0 /dev/sdb1
mdadm --remove /dev/md0 /dev/sdb1
 
# 3. Reemplazar fisicamente el disco y particionar
fdisk /dev/sdX              # Crear particion tipo fd
 
# 4. Agregar nuevo disco
mdadm --add /dev/md0 /dev/sdX1
 
# 5. Monitorizar reconstruccion
watch cat /proc/mdstat