Crear arreglos RAID y ajustar el sistema a RAID1
Qué cubre este documento
- Crear /dev/md0, /dev/md1 y /dev/md2 usando discos existentes y marcadores “missing”.
- Formatear y montar los arreglos RAID.
- Actualizar /etc/mdadm.conf, /etc/fstab y /etc/mtab.
- Ajustar GRUB para arrancar desde RAID y regenerar el initramfs.
- Instalar GRUB en ambos discos y comprobar arranque.
Importante: trabaja con privilegios de root y haz una copia de seguridad antes de tocar particiones o el gestor de arranque.
4 Crear nuestros arreglos RAID
Vamos a crear los arreglos RAID /dev/md0, /dev/md1 y /dev/md2. Se añadirá /dev/sdb1 a /dev/md0, /dev/sdb2 a /dev/md1 y /dev/sdb3 a /dev/md2. Las particiones /dev/sda1, /dev/sda2 y /dev/sda3 no se pueden añadir ahora (el sistema está arrancado desde ellas), por ello usamos el marcador missing en los siguientes tres comandos:
mdadm --create /dev/md0 --level=1 --raid-disks=2 missing /dev/sdb1
mdadm --create /dev/md1 --level=1 --raid-disks=2 missing /dev/sdb2
mdadm --create /dev/md2 --level=1 --raid-disks=2 missing /dev/sdb3
El comando
cat /proc/mdstat
debe mostrar ahora que tiene tres arreglos RAID degradados ([U] o [U] significa que un arreglo está degradado, mientras que [UU] significa que el arreglo está correcto):
[root@server1 ~]# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md2 : active raid1 sdb3[1]
9759360 blocks [2/1] [_U]
md1 : active raid1 sdb2[1]
522048 blocks [2/1] [_U]
md0 : active raid1 sdb1[1]
200704 blocks [2/1] [_U]
unused devices:
[root@server1 ~]#
Nota: los arreglos están degradados porque faltan uno de los dos miembros (el que está en sda). Esto es esperado en esta fase.
Crear sistemas de archivos
A continuación creamos sistemas de archivos en los arreglos RAID (ext3 en /dev/md0 y /dev/md2 y swap en /dev/md1):
mkfs.ext3 /dev/md0
mkswap /dev/md1
mkfs.ext3 /dev/md2
Guardar la configuración de mdadm
Creamos /etc/mdadm.conf para que el sistema recuerde los arreglos en el arranque:
mdadm --examine --scan > /etc/mdadm.conf
Mostrar el contenido del archivo:
cat /etc/mdadm.conf
En el archivo debería verse ahora información sobre nuestros tres arreglos RAID (todavía degradados):
| ARRAY /dev/md0 level=raid1 num-devices=2 UUID=78d582f0:940fabb5:f1c1092a:04a55452 ARRAY /dev/md1 level=raid1 num-devices=2 UUID=8db8f7e1:f2a64674:d22afece:4a539aa7 ARRAY /dev/md2 level=raid1 num-devices=2 UUID=1baf282d:17c58efd:a8de6947:b0af9792
|
5 Ajustar el sistema a RAID1
Ahora montamos /dev/md0 y /dev/md2 (no es necesario montar el swap /dev/md1):
mkdir /mnt/md0
mkdir /mnt/md2
mount /dev/md0 /mnt/md0
mount /dev/md2 /mnt/md2
Debería ver ambos arreglos en la salida de:
mount
Ejemplo de salida:
[root@server1 ~]# mount
/dev/sda3 on / type ext3 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/sda1 on /boot type ext3 (rw)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
/dev/md0 on /mnt/md0 type ext3 (rw)
/dev/md2 on /mnt/md2 type ext3 (rw)
[root@server1 ~]#
Actualizar /etc/fstab
Sustituya LABEL=/boot por /dev/md0, LABEL=SWAP-sda2 por /dev/md1 y LABEL=/ por /dev/md2 en /etc/fstab. El archivo debe quedar así:
vi /etc/fstab
| /dev/md2 / ext3 defaults 1 1 /dev/md0 /boot ext3 defaults 1 2 tmpfs /dev/shm tmpfs defaults 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0 sysfs /sys sysfs defaults 0 0 proc /proc proc defaults 0 0 /dev/md1 swap swap defaults 0 0
|
Guarde y cierre el editor.
Actualizar /etc/mtab
Reemplace /dev/sda1 por /dev/md0 y /dev/sda3 por /dev/md2 en /etc/mtab:
vi /etc/mtab
| /dev/md2 / ext3 rw 0 0 proc /proc proc rw 0 0 sysfs /sys sysfs rw 0 0 devpts /dev/pts devpts rw,gid=5,mode=620 0 0 /dev/md0 /boot ext3 rw 0 0 tmpfs /dev/shm tmpfs rw 0 0 none /proc/sys/fs/binfmt_misc binfmt_misc rw 0 0 sunrpc /var/lib/nfs/rpc_pipefs rpc_pipefs rw 0 0
|
Ajustar GRUB para intentar arrancar desde RAID
Edite /boot/grub/menu.lst y agregue fallback=1 justo después de default=0:
vi /boot/grub/menu.lst
| [...] default=0 fallback=1 [...]
|
Esto hace que si el primer kernel (índice 0) falla al arrancar, se intente arrancar con la opción fallback (índice 1), normalmente desde el otro disco sin RAID.
En el mismo archivo, copie el primer bloque de kernel y péguele antes del primer bloque existente; reemplace root=LABEL=/ por root=/dev/md2 y root (hd0,0) por root (hd1,0):
| [...] title CentOS (2.6.18-128.el5) root (hd1,0) kernel /vmlinuz-2.6.18-128.el5 ro root=/dev/md2 initrd /initrd-2.6.18-128.el5.img title CentOS (2.6.18-128.el5) root (hd0,0) kernel /vmlinuz-2.6.18-128.el5 ro root=LABEL=/ initrd /initrd-2.6.18-128.el5.img
|
Un ejemplo completo del archivo podría ser:
| # grub.conf generated by anaconda # # Note that you do not have to rerun grub after making changes to this file # NOTICE: You have a /boot partition. This means that # all kernel and initrd paths are relative to /boot/, eg. # root (hd0,0) # kernel /vmlinuz-version ro root=/dev/sda3 # initrd /initrd-version.img #boot=/dev/sda default=0 fallback=1 timeout=5 splashimage=(hd0,0)/grub/splash.xpm.gz hiddenmenu title CentOS (2.6.18-128.el5) root (hd1,0) kernel /vmlinuz-2.6.18-128.el5 ro root=/dev/md2 initrd /initrd-2.6.18-128.el5.img title CentOS (2.6.18-128.el5) root (hd0,0) kernel /vmlinuz-2.6.18-128.el5 ro root=LABEL=/ initrd /initrd-2.6.18-128.el5.img
|
root (hd1,0) hace referencia a /dev/sdb, que ya forma parte de nuestros arreglos RAID. Reiniciaremos en breve; el sistema intentará arrancar desde los arreglos RAID degradados y, si falla, usará el fallback (el disco original /dev/sda).
Regenerar el initramfs para la nueva configuración
Antes de reiniciar, ajuste el ramdisk (initrd):
mv /boot/initrd-`uname -r`.img /boot/initrd-`uname -r`.img_orig
mkinitrd /boot/initrd-`uname -r`.img `uname -r`
Esto crea un nuevo initramfs que conoce el mdadm y la configuración de RAID.
Copiar datos al RAID
Copie el contenido de /dev/sda3 y /dev/sda1 a /dev/md2 y /dev/md0 (montados en /mnt/md2 y /mnt/md0):
cp -dpRx / /mnt/md2
Luego:
cd /boot
cp -dpRx . /mnt/md0
Estas operaciones preservan permisos, enlaces y atributos (-a/alternativas) y copian todo el sistema de archivos al RAID.
6 Preparar GRUB (Parte 1)
Hay que instalar el gestor de arranque GRUB en el segundo disco /dev/sdb (además de en /dev/sda) para lograr redundancia del arranque:
grub
En la shell de GRUB, ejecute:
root (hd0,0)
Salida esperada:
grub> root (hd0,0)
Filesystem type is ext2fs, partition type 0x83
grub>
A continuación instale GRUB en el primer disco (hd0):
setup (hd0)
Salida ejemplo:
grub> setup (hd0)
Checking if "/boot/grub/stage1" exists... no
Checking if "/grub/stage1" exists... yes
Checking if "/grub/stage2" exists... yes
Checking if "/grub/e2fs_stage1_5" exists... yes
Running "embed /grub/e2fs_stage1_5 (hd0)"... 15 sectors are embedded.
succeeded
Running "install /grub/stage1 (hd0) (hd0)1+15 p (hd0,0)/grub/stage2 /grub/grub.conf"... succeeded
Done.
grub>
Ahora repita el proceso para el otro disco (/dev/sdb corresponde a hd1 en GRUB):
root (hd1,0)
setup (hd1)
quit
Ejemplo de salida:
grub> root (hd1,0)
Filesystem type is ext2fs, partition type 0xfd
grub> setup (hd1)
Checking if "/boot/grub/stage1" exists... no
Checking if "/grub/stage1" exists... yes
Checking if "/grub/stage2" exists... yes
Checking if "/grub/e2fs_stage1_5" exists... yes
Running "embed /grub/e2fs_stage1_5 (hd1)"... 15 sectors are embedded.
succeeded
Running "install /grub/stage1 (hd1) (hd1)1+15 p (hd1,0)/grub/stage2 /grub/grub.conf"... succeeded
Done.
grub> quit
Vuelva a la shell normal y reinicie el sistema:
reboot
Si todo va bien, el sistema arrancará desde los arreglos RAID1. Si falla el arranque desde RAID, gracias a fallback=1 GRUB intentará arrancar desde el disco original.
Listas de verificación y pasos previos al reinicio
- Verifique que /etc/mdadm.conf contiene las entradas ARRAY para md0, md1 y md2.
- Confirme que /etc/fstab usa /dev/md2, /dev/md0 y /dev/md1 según corresponda.
- Asegúrese de tener una copia de /boot y del grub.conf en otro medio (USB, NFS, etc.).
- Regenerar initramfs y confirmar que el archivo nuevo existe en /boot.
- Instalar GRUB en ambos discos.
- Tener una consola o acceso de recuperación (KVM/IPMI) por si el equipo no arranca.
Importante: sin la instalación de GRUB en ambos discos, el segundo disco podría no ser arrancable después de un fallo del primero.
Criterios de aceptación
- El equipo arranca correctamente con las entradas de kernel que apuntan a /dev/md2.
- /dev/md0 y /dev/md2 montados como /boot y / respectivamente tras el arranque.
- /dev/md1 activado como swap (swapon -s lo muestra).
- /etc/mdadm.conf contiene las UUID de los tres arreglos.
- GRUB instalado en ambos discos y fallback configurado.
Cuándo puede fallar (contrajemplos) y cómo detectarlo
- Error: el initramfs no contiene mdadm o módulos RAID. Detección: mensaje de kernel durante el arranque que busca discos o fallo al encontrar /dev/md2. Mitigación: regenerar initramfs con mkinitrd incluyendo mdadm.
- Error: /etc/fstab incorrecto. Detección: el sistema montará particiones erróneas o fallará en iniciar servicios. Mitigación: arrancar en modo de rescate y corregir fstab.
- Error: GRUB sólo instalado en un disco. Detección: al fallar el primer disco el sistema no arranca. Mitigación: instalar GRUB en ambos discos.
- Error: UUIDs en mdadm.conf no coinciden con dispositivos. Detección: mdadm no monta arreglos en el arranque. Mitigación: actualizar /etc/mdadm.conf con mdadm –examine –scan.
Enfoques alternativos
- Usar LVM sobre RAID: crear arreglos RAID y luego volúmenes LVM encima para mayor flexibilidad.
- RAID por hardware: usar un controlador RAID dedicado y su BIOS para la administración; la migración difiere y a veces simplifica el arranque.
- Usar RAID0/5/6/10 según necesidades de rendimiento y redundancia (este documento usa RAID1 por espejo simple).
Matriz de riesgos y mitigaciones (resumen)
- Pérdida de datos al modificar particiones -> Hacer backup completo antes.
- No arranque tras cambios -> Plan de recuperación con medio de rescate o KVM remoto.
- Sin redundancia del gestor de arranque -> Instalar GRUB en todos los discos.
- Arreglos degradados inesperados -> Verificar cabeceras de RAID con mdadm –examine.
Lista de comprobación por rol
Administrador de sistemas:
- Verificar UUIDs y mdadm.conf.
- Regenerar initramfs.
- Instalar GRUB en ambos discos.
Operaciones/Soporte:
- Preparar medios de recuperación (USB, ISO).
- Confirmar acceso remoto a consola.
Seguridad:
- Asegurar backups cifrados antes de operaciones en disco.
Mini-metodología (resumen rápido)
- Crear RAID con miembro missing para permitir migración en caliente.
- Formatear los arreglos y montar en /mnt.
- Copiar sistema y /boot al RAID.
- Actualizar fstab/mtab y mdadm.conf.
- Regenerar initramfs.
- Instalar GRUB en todos los discos.
- Reiniciar y verificar.
Casos de prueba y criterios de aceptación básicos
- Prueba: Reinicio normal -> Resultado esperado: arranque desde /dev/md2.
- Prueba: Sacar el disco primario (/dev/sda) en frío -> Resultado esperado: arranque desde /dev/sdb gracias a GRUB instalado.
- Prueba: mdadm –detail /dev/md0 -> Resultado esperado: arreglo activo y un miembro ausente hasta que se añada.
Glosario (una línea cada término)
- RAID1: Espejo de dos discos que duplica datos para tolerancia a fallos.
- mdadm: Herramienta de Linux para administrar arreglos RAID por software.
- initramfs/initrd: Imagen inicial usada por el kernel para preparar el sistema antes de montar la raíz.
- GRUB: Gestor de arranque utilizado para iniciar sistemas Linux.
Resumen final: Cree primero los arreglos RAID en modo degradado, formatee y copie los datos al RAID, actualice mdadm.conf, fstab y mtab, regenere el initramfs e instale GRUB en ambos discos. Verifique arranque y tenga un plan de recuperación. Si algo falla, use la consola de rescate para restaurar fstab, mdadm.conf o reinstalar GRUB.
Materiales similares

Copia de seguridad de correos en Office 365

Encontrar mensajes ocultos en Facebook
Instalar Ubuntu 8.04 con RAID1 por software
Crear arreglos RAID y ajustar sistema RAID1

Beeftext: ahorrar tiempo con snippets de texto
