Ampliar un array degradado
Objetivo y variantes de intención
- Objetivo principal: ampliar un array RAID degradado y redimensionar LVM en Linux.
- Variantes relacionadas: extender RAID degradado, mdadm grow, redimensionar volúmenes LVM, pvresize y lvextend, pasos de recuperación en modo rescue.
Preparación y conceptos breves
- mdadm: herramienta para gestionar arrays RAID en Linux.
- LVM (Logical Volume Manager): capa de abstracción para volúmenes lógicos.
- PV/PE/VG/LV: PV = Physical Volume; PE = Physical Extents; VG = Volume Group; LV = Logical Volume.
Importante: si omites sobrescribir (zero) el superblock del disco que quitas, el sistema podría no arrancar tras la operación. Hacerlo evita que el kernel vuelva a detectar y montar el disco como miembro del array.
1) Quitar el miembro degradado y borrar el superblock
Ejecute estas órdenes en el sistema en vivo antes de arrancar en rescue:
mdadm --manage /dev/md1 --fail /dev/sda5
mdadm --manage /dev/md1 --remove /dev/sda5
A continuación, sobrescriba el superblock del dispositivo removido. Esto es crítico:
mdadm --zero-superblock /dev/sda5
Importante: Si olvidas este paso, el sistema puede volver a tratar el disco como miembro del array y causar incoherencias.
2) Arrancar en el sistema de rescate y activar módulos necesarios
Arranca con tu LiveCD/USB o entorno de rescue (por ejemplo Knoppix). Activa los módulos kernel que pueden ser necesarios para detectar arrays y dispositivos:
modprobe md
modprobe linear
modprobe multipath
modprobe raid0
modprobe raid1
modprobe raid5
modprobe raid6
modprobe raid10
3) Detectar y activar arrays y LVM
Haga una copia de seguridad del fichero de configuración mdadm y regenérelo si procede:
cp /etc/mdadm/mdadm.conf /etc/mdadm/mdadm.conf_orig
mdadm --examine --scan >> /etc/mdadm/mdadm.conf
Active los arrays y LVM:
mdadm -A --scan
/etc/init.d/lvm start
4) Extender el array RAID
Para ampliar el array md1 al máximo espacio disponible use:
mdadm --grow /dev/md1 --size=max
Nota: “–size=max” elige el tamaño máximo posible. También puede especificar un tamaño en KiB (KiB = Kibibytes) si prefiere un valor concreto.
5) Extender el PV (Physical Volume)
A continuación expanda el PV contenido en /dev/md1:
pvresize /dev/md1
Compruebe el estado del grupo de volúmenes para ver los PE (Physical Extents) libres:
vgdisplay
Ejemplo de salida:
root@Knoppix:~# vgdisplay
--- Volume group ---
VG Name server1
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 29
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 0
Max PV 0
Cur PV 1
Act PV 1
VG Size 4.75 GB
PE Size 4.00 MB
Total PE 1217
Alloc PE / Size 1023 / 4.00 GB
Free PE / Size 194 / 776.00 MB
VG UUID X3ZYTy-39yq-20k7-GCGk-vKVU-Xe0i-REdEu0
root@Knoppix:~#
En este ejemplo hay 194 PE libres (≈776 MB). Use esa cantidad para extender el LV.
6) Extender el LV y el sistema de ficheros
Extienda el LV asignándole los PE libres:
lvextend -l +194 /dev/server1/root
Después ejecute comprobaciones y redimensionado del sistema de ficheros (ext4 en este ejemplo):
e2fsck -f /dev/server1/root
resize2fs /dev/server1/root
e2fsck -f /dev/server1/root
Nota: si usa XFS debe usar xfs_growfs en vez de resize2fs y ejecutar la operación desde el sistema montado cuando corresponda.
7) Volver al sistema normal y reincorporar el disco
Una vez que el LV y el sistema de ficheros han crecido correctamente, reinicie en el sistema habitual. Para añadir /dev/sda5 de nuevo al array /dev/md1:
mdadm --zero-superblock /dev/sda5
mdadm -a /dev/md1 /dev/sda5
Compruebe el estado de sincronización:
cat /proc/mdstat
Debería ver que /dev/sdb5 y /dev/sda5 se están sincronizando.
Problemas comunes y soluciones
- El dispositivo vuelve al array inmediatamente: asegúrese de haber ejecutado mdadm –zero-superblock antes de reiniciar.
- pvresize no detecta espacio nuevo: confirme que mdadm –grow aplicó el cambio y que /dev/md1 refleja el nuevo tamaño.
- resize2fs falla por estar montado: desmonte el sistema o use la opción online adecuada para el FS (p. ej. xfs_growfs para XFS).
Criterios de aceptación
- El volumen lógico (/dev/server1/root) muestra el nuevo tamaño esperado (vgdisplay/lvdisplay).
- El sistema de ficheros se ha redimensionado sin errores y está montado correctamente.
- /proc/mdstat muestra sincronización en curso o completada con el disco reincorporado.
Chequeos rápidos (role-based checklist)
Administrador:
- Hacer snapshot o backup de datos críticos antes de operar.
- Confirmar estado de RAID (/proc/mdstat).
- Ejecutar mdadm –zero-superblock en el disco que se quita.
Operador en rescue:
- Cargar módulos necesarios (modprobe).
- Activar arrays (mdadm -A –scan) y LVM (/etc/init.d/lvm start).
- Ejecutar pvresize y comprobar vgdisplay.
QA/Devops:
- Verificar que el LV y FS fueron extendidos.
- Revisar logs (/var/log/syslog/journal) por errores de discos o md.
Mini-metodología paso a paso
- Preparar respaldo.
- Fallar y remover el miembro degradado.
- Zero superblock del disco removido.
- Arrancar rescue, cargar módulos y activar arrays.
- mdadm –grow sobre el array.
- pvresize, lvextend y resize del sistema de ficheros.
- Reiniciar en sistema normal y reincorporar disco.
- Verificar sincronización y logs.
Casos de prueba y aceptación
- Caso: disco removido se marca como failed y removed; expectativa: mdadm –manage reporta éxito.
- Caso: pvresize detecta PE adicionales; expectativa: vgdisplay muestra incremento en Free PE.
- Caso: resize2fs completa sin errores; expectativa: df -h muestra mayor capacidad en /.
Glosario rápido
- mdadm: utilidad para gestionar arrays RAID.
- PV/PE/VG/LV: capas físicas y lógicas de LVM.
- pvresize: ajusta el PV al tamaño del dispositivo físico.
Enlaces
- Knoppix: http://www.knoppix.net/
Resumen final
Si sigues los pasos en orden —quitar el disco, zero-superblock, arrancar en rescue, crecer el array, pvresize, lvextend y resize del FS— podrás ampliar un array degradado y recuperar capacidad sin pérdida de datos cuando se haga correctamente. Siempre realiza backups y verifica logs y estado del RAID durante y después de la operación.
Materiales similares

Quitar protección escritura USB y SD

Capturar datos de red en Android (URL sniffing)

Prueba 'No Life Test' en iPhone — ¿Tienes vida?

Editar RAW en Chromebook con Darktable
Ampliar un array RAID degradado
