Cómo crear una configuración RAID1 en un sistema CentOS/RedHat 6.0 existente
By: Maurice Hilarius - Hard Data Ltd. - 12 de octubre de 2011
Objetivo y contexto
Esta guía está pensada para convertir un sistema CentOS/RedHat 6 que actualmente usa un único disco en un sistema con RAID1 de dos discos. El objetivo es mantener la capacidad de arranque aunque falle cualquiera de las unidades. Se asume acceso root permanente y conocimiento básico de particionamiento y comandos de Linux.
Importante: realiza y verifica una copia de seguridad completa antes de empezar. No procedas sin respaldo.
Requisitos previos
- Acceso como root (su - o sudo -i)
- Un segundo disco con al menos el mismo tamaño o ligeramente mayor que el disco original
- Paquetes: mdadm, dracut, cpio (normalmente disponibles en CentOS/RedHat 6)
- Conocimiento básico de particiones y GRUB (legacy, 0.97)
Comando para convertirse en root:
su -
# introducir contraseña de root
Disposición de ejemplo (origen y destino)
En este ejemplo el disco original con sistema instalado es /dev/sdb y tiene la siguiente disposición inicial:
Device Mountpoint Size
/dev/sdb ~1002GB
/dev/sdb1 /boot 256MB
/dev/sdb2 / 24GB
/dev/sdb3 swap 4GB
/dev/sdb5 /var 4GB
/dev/sdb6 /home ~900GB
Añadiremos otro disco: /dev/sda (~1002GB) como disco objetivo.
Resumen del método
- Hacer y verificar copias de seguridad.
- Duplicar la tabla de particiones del disco original al disco objetivo.
- Crear arreglos RAID1 en estado degradado apuntando al disco nuevo (el original permanece activo).
- Rebuild initramfs y crear sistemas de archivos en los nuevos /dev/md*.
- Copiar datos a los md devices.
- Ajustar /etc/fstab y GRUB, instalar GRUB en ambos discos.
- Probar y añadir los miembros faltantes al RAID.
Paso 1 — Copia de seguridad
- Backup completo (imagen o backups de datos). Opciones: rsync a host externo, dd a fichero o snapshot LVM.
- Verifica la integridad del backup antes de continuar.
Paso 2 — Clonar la tabla de particiones
Ejecuta (cuidado con los nombres de dispositivos):
sfdisk -d /dev/sdb | sfdisk /dev/sda
Esto replica la tabla de particiones de /dev/sdb a /dev/sda.
Paso 3 — Cargar módulos del kernel (evita reiniciar)
Cargamos módulos necesarios para manejar arreglos software:
modprobe linear
modprobe raid0
modprobe raid1
Verifica el estado de md con:
cat /proc/mdstat
Ejemplo de salida cuando los módulos están cargados pero no hay arreglos:
root@server:~# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1]
unused devices:
Paso 4 — Crear los arreglos RAID (degradados)
Creamos los dispositivos RAID en estado degradado (el segundo miembro falta):
mdadm --create /dev/md0 --level=1 --raid-disks=2 /dev/sda1 missing
mdadm --create /dev/md1 --level=1 --raid-disks=2 /dev/sda2 missing
mdadm --create /dev/md2 --level=1 --raid-disks=2 /dev/sda5 missing
mdadm --create /dev/md3 --level=1 --raid-disks=2 /dev/sda6 missing
Estos comandos crean /dev/md0…/dev/md3 como RAID1 con un miembro ausente, lo que permite crear sistemas de archivos y copiar datos sin desmontar el disco original.
Nota sobre metadata y GRUB legacy
Si vas a seguir usando GRUB 0.97 (el predeterminado en CentOS 5/6), especifica un formato de metadata compatible para que GRUB reconozca la partición RAID1:
mdadm --create /dev/md0 --metadata=0.90 --level=1 --raid-devices=2 /dev/sda1 missing
Si no usas –metadata=0.90, la instalación de GRUB puede fallar con mensajes tipo “Filesystem type unknown, partition type 0xfd”. GRUB 2 no tiene esta limitación en la misma medida.
Paso 5 — Verificar arreglos
Vuelve a comprobar /proc/mdstat:
cat /proc/mdstat
Ejemplo (salida típica tras crear los md devices en modo degradado, donde sdb aparece como miembro activo):
#cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 sdb2[1]
473792 blocks [2/2] [U_]
md2 : active raid1 sdb5[1]
4980032 blocks [2/2] [U_]
md3 : active raid1 sdb6[1]
3349440 blocks [2/2] [U_]
md0 : active raid1 sdb1[1]
80192 blocks [2/2] [U_]
unused devices:
El indicador [U_] muestra que uno de los miembros está ausente (degradado), mientras que [UU] indica ambos miembros presentes.
Paso 6 — Generar mdadm.conf
Guarda la configuración actual para que arranque y mdadm pueda reconocer los arreglos:
mdadm --detail --scan > /etc/mdadm.conf
Verifica su contenido:
cat /etc/mdadm.conf
Asegúrate de que contiene las líneas ARRAY con los UUIDs de los md devices.
Paso 7 — Reconstruir initramfs con la nueva configuración
Renombra la imagen actual y genera una nueva que incluya /etc/mdadm.conf:
mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.old
dracut --mdadmconf --force /boot/initramfs-$(uname -r).img $(uname -r)
Esto asegura que el initramfs pueda ensamblar los arreglos RAID en el arranque.
Paso 8 — Crear sistemas de archivos en /dev/md*
Formatea los md devices acorde a tus necesidades:
mkfs.ext2 /dev/md0 # /boot: ext2 es suficiente y compatible con GRUB
mkfs.ext4 /dev/md1 # /
mkfs.ext4 /dev/md2 # /var
mkfs.ext4 /dev/md3 # /home
mkswap -c /dev/sda2 # Preparar la partición swap del disco nuevo (comprobar también swap del original)
Nota: mkswap -c comprueba bloques defectuosos; ajusta según tus políticas.
Paso 9 — Copiar datos al RAID
Copiamos los datos desde las particiones en uso hacia los md devices. Monta cada md y usa cpio para preservar permisos y enlaces.
mkdir /mnt/raid
mount /dev/md0 /mnt/raid
cd /boot; find . -depth | cpio -pmd /mnt/raid
# Si SELinux está en uso:
# touch /mnt/raid/.autorelabel
sync
umount /mnt/raid
mount /dev/md1 /mnt/raid
cd / ; find . -depth -xdev | grep -v '^\./tmp/' | cpio -pmd /mnt/raid
sync
umount /mnt/raid
# NOTA: evita copiar /tmp y /var/tmp. El comando anterior crea puntos de montaje vacíos como 'proc' o 'dev'.
mount /dev/md2 /mnt/raid
cd /var; find . -depth | cpio -pmd /mnt/raid
sync
umount /mnt/raid
mount /dev/md3 /mnt/raid
cd /home; find . -depth | cpio -pmd /mnt/raid
sync
umount /mnt/raid
Después de estos pasos, los datos están en los md devices. Mantén el sistema original en línea hasta confirmar el arranque desde RAID.
Paso 10 — Actualizar /etc/fstab y GRUB
- Edita /etc/fstab para que las entradas apunten a los dispositivos /dev/md* (o mejor, a UUIDs de los md devices).
- Actualiza /boot/grub/menu.lst: si usabas dispositivos directos en las entradas de kernel (root=/dev/sdb2), cámbialo por /dev/md1 o por UUID.
Ejemplo de línea en fstab (usar blkid para obtener UUIDs):
# /dev/md1 / ext4 defaults 1 1
Paso 11 — Instalar GRUB en ambos discos
Para asegurar que el sistema arranque si falla uno de los discos, instala GRUB legacy en el MBR de los dos discos (/dev/sda y /dev/sdb):
Arranca un shell de grub o ejecuta:
grub
> root (hd0,0) # ajusta según tu mapa de particiones si es necesario
> setup (hd0)
> root (hd1,0)
> setup (hd1)
> quit
Alternativamente instala desde la línea de comandos:
grub-install /dev/sda
grub-install /dev/sdb
Verifica que GRUB se instaló correctamente en ambos MBRs.
Paso 12 — Comprobaciones finales y añadir miembros faltantes
- Reinicia y prueba el arranque con ambos discos conectados.
- Simula la falla desconectando un disco (si es posible) y verifica que el sistema arranca desde el otro.
- Una vez que todo arranque correctamente, añade las particiones originales como miembros del RAID para completar la sincronización:
mdadm --add /dev/md0 /dev/sdb1
mdadm --add /dev/md1 /dev/sdb2
mdadm --add /dev/md2 /dev/sdb5
mdadm --add /dev/md3 /dev/sdb6
Verifica el progreso de sincronización con:
watch -n 5 cat /proc/mdstat
Cuando termine, las líneas deberían mostrar [UU] indicando ambos discos activos.
Posibles fallos y contraejemplos
- Si usas metadata por defecto (1.2) en GRUB legacy, puede no instalarse en una partición RAID1; por eso se recomienda metadata=0.90 para /boot.
- Si /dev/sda tiene un tamaño menor que /dev/sdb, sfdisk fallará o las particiones no encajarán exactamente.
- En sistemas con LVM sobre RAID u otras capas, el orden de pasos cambia: normalmente configuras RAID primero y luego LVM encima.
Alternativas
- Usar herramientas de clonación en vivo (dd o ddrescue) para copiar disco a disco antes de convertir a RAID.
- Implementar RAID a nivel de hardware (controladora) si la redundancia debe ser transparente al sistema.
- Modernizar a GRUB2 y metadata 1.2 si planeas migrar a distribuciones más recientes.
Lista de verificación por rol
Administrador de sistemas:
- Backup verificado
- Tabla de particiones clonada
- mdadm.conf generado
- initramfs reconstruido
- GRUB instalado en ambos MBR
Ingeniería de operaciones:
- Pruebas de arranque con disco desconectado
- Monitorización de resync de md con alertas
Soporte/QA:
- Pruebas de integridad de datos después de copiar
- Verificar permisos y SELinux labels
Plan de reversión (runbook corto)
- Si algo falla y no arranca: restaurar /boot/initramfs-$(uname -r).img.old y el /boot/menu.lst anterior desde la copia en /boot.
- Si el kernel no encuentra RAID: arrancar desde live-CD o rescue, montar /dev/sdb* y revertir /etc/fstab y /etc/mdadm.conf según copia.
- Si hay pérdida de datos, restaurar desde la copia de seguridad verificada.
Glosario (1 línea cada término)
- mdadm: utilidad para administrar arreglos RAID software en Linux.
- initramfs: imagen inicial que el kernel usa para montar el sistema raíz en el arranque.
- GRUB legacy: versión 0.97 del gestor de arranque GRUB ampliamente usado en CentOS 6.
Criterios de aceptación
- El sistema arranca con ambos discos conectados.
- El sistema arranca con cualquiera de los discos desconectados (simulación de fallo).
- /proc/mdstat muestra todos los arreglos en estado [UU] tras la sincronización.
- /etc/fstab y /boot/grub/menu.lst apuntan correctamente a /dev/md* o a UUIDs de los md devices.
Resumen final
Este procedimiento permite migrar un sistema CentOS/RedHat 6 de un único disco a un arreglo RAID1 sin reinstalar el sistema. Requiere atención a la metadata de mdadm para compatibilidad con GRUB legacy y una verificación exhaustiva de backups y del proceso de arranque. Después de añadir el disco original al arreglo y completar la sincronización, el sistema tendrá redundancia para tolerar la falla de una unidad.
Importante: aunque este procedimiento evita reinstalar, prueba siempre el arranque y la recuperación en un entorno controlado antes de aplicarlo en producción.
Materiales similares
Sincronizar contactos del iPhone con iCloud

Trabajar desde el iPhone: guía práctica

Anotar PDFs gratis sin marcas de agua

Foto de perfil personalizada en Netflix

Eliminar tu cuenta de eBay y borrar tus datos
