Crear arreglos RAID y mover datos a RAID en Linux
4 Crear nuestros arreglos RAID
Ahora vamos a crear los arreglos RAID /dev/md0 y /dev/md1. /dev/sdb1 se añadirá a /dev/md0 y /dev/sdb2 a /dev/md1. /dev/sda1 y /dev/sda2 no pueden añadirse ahora (porque el sistema se está ejecutando sobre ellas), por lo que usamos el placeholder missing en los siguientes dos 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
El comando
cat /proc/mdstat
debería mostrar ahora que tiene dos arreglos RAID degradados ([U] o [U] significa que un arreglo está degradado mientras que [UU] significa que el arreglo está OK):
[root@server1 ~]# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md1 : active raid1 sdb2[1]
5036288 blocks [2/1] [_U]
md0 : active raid1 sdb1[1]
200704 blocks [2/1] [_U]
unused devices:
[root@server1 ~]#
A continuación creamos un sistema de ficheros (ext3) en nuestro arreglo RAID no LVM /dev/md0:
mkfs.ext3 /dev/md0
Ahora pasamos a nuestro arreglo RAID para LVM: /dev/md1. Para prepararlo para LVM ejecutamos:
pvcreate /dev/md1
Luego añadimos /dev/md1 al grupo de volúmenes VolGroup00:
vgextend VolGroup00 /dev/md1
La salida de
pvdisplay
debería ser similar a esta:
[root@server1 ~]# pvdisplay
--- Physical volume ---
PV Name /dev/sda2
VG Name VolGroup00
PV Size 4.80 GB / not usable 22.34 MB
Allocatable yes
PE Size (KByte) 32768
Total PE 153
Free PE 1
Allocated PE 152
PV UUID op2n3N-rck1-Pywc-9wTY-EUxQ-KUcr-2YeRJ0
--- Physical volume ---
PV Name /dev/md1
VG Name VolGroup00
PV Size 4.80 GB / not usable 22.25 MB
Allocatable yes
PE Size (KByte) 32768
Total PE 153
Free PE 153
Allocated PE 0
PV UUID pS3xiy-AEnZ-p3Wf-qY2D-cGus-eyGl-03mWyg
[root@server1 ~]#
La salida de
vgdisplay
debe ser similar a la siguiente:
[root@server1 ~]# vgdisplay
--- Volume group ---
VG Name VolGroup00
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 4
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 2
Act PV 2
VG Size 9.56 GB
PE Size 32.00 MB
Total PE 306
Alloc PE / Size 152 / 4.75 GB
Free PE / Size 154 / 4.81 GB
VG UUID jJj1DQ-SvKY-6hdr-3MMS-8NOd-pb3l-lS7TA1
[root@server1 ~]#
A continuación creamos /etc/mdadm.conf así:
mdadm --examine --scan > /etc/mdadm.conf
Mostramos el contenido del fichero:
cat /etc/mdadm.conf
En el archivo ahora debe ver detalles sobre nuestros dos arreglos RAID (degradados):
| ARRAY /dev/md0 level=raid1 num-devices=2 UUID=7d2bf9c3:7cd9df21:f782dab8:9212d7cb ARRAY /dev/md1 level=raid1 num-devices=2 UUID=d93a2387:6355b5c5:25ed3e50:2a0e4f96
|
A continuación modificamos /etc/fstab. Reemplazar LABEL=/boot por /dev/md0 para que el archivo quede así:
vi /etc/fstab
| /dev/VolGroup00/LogVol00 / 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/VolGroup00/LogVol01 swap swap defaults 0 0
|
A continuación reemplace /dev/sda1 por /dev/md0 en /etc/mtab:
vi /etc/mtab
| /dev/mapper/VolGroup00-LogVol00 / 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
|
Ahora llegamos al cargador de arranque GRUB. Abra /boot/grub/menu.lst y añada fallback=1 justo después de default=0:
vi /boot/grub/menu.lst
| [...] default=0 fallback=1 [...]
|
Esto hace que si el primer kernel falla en arrancar, se intente arrancar el kernel #2.
En el mismo fichero, vaya al final, donde encontrará entradas de kernel (stanzas). Copie la primera y péguela antes de la primera entrada existente; reemplace root (hd0,0) por root (hd1,0):
| [...] title Fedora (2.6.23.1-42.fc8) root (hd1,0) kernel /vmlinuz-2.6.23.1-42.fc8 ro root=/dev/VolGroup00/LogVol00 initrd /initrd-2.6.23.1-42.fc8.img title Fedora (2.6.23.1-42.fc8) root (hd0,0) kernel /vmlinuz-2.6.23.1-42.fc8 ro root=/dev/VolGroup00/LogVol00 initrd /initrd-2.6.23.1-42.fc8.img
|
El archivo completo debería parecerse a esto:
| # 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/VolGroup00/LogVol00 # initrd /initrd-version.img #boot=/dev/sda default=0 fallback=1 timeout=5 splashimage=(hd0,0)/grub/splash.xpm.gz hiddenmenu title Fedora (2.6.23.1-42.fc8) root (hd1,0) kernel /vmlinuz-2.6.23.1-42.fc8 ro root=/dev/VolGroup00/LogVol00 initrd /initrd-2.6.23.1-42.fc8.img title Fedora (2.6.23.1-42.fc8) root (hd0,0) kernel /vmlinuz-2.6.23.1-42.fc8 ro root=/dev/VolGroup00/LogVol00 initrd /initrd-2.6.23.1-42.fc8.img
|
root (hd1,0) se refiere a /dev/sdb, que ya forma parte de nuestros arreglos RAID. Reiniciaremos el sistema en unos minutos; el sistema intentará arrancar desde los arreglos RAID (aun degradados); si falla, arrancará desde /dev/sda gracias a fallback=1.
A continuación ajustamos el ramdisk a la nueva situación:
mv /boot/initrd-`uname -r`.img /boot/initrd-`uname -r`.img_orig
mkinitrd /boot/initrd-`uname -r`.img `uname -r`
5 Mover nuestros datos a los arreglos RAID
Ahora que hemos modificado todos los ficheros de configuración, podemos copiar el contenido de /dev/sda a /dev/sdb (incluyendo los cambios de configuración realizados).
Para mover el contenido de la partición LVM /dev/sda2 a nuestro arreglo LVM /dev/md1 usamos el comando pvmove:
pvmove /dev/sda2 /dev/md1
Esto puede tardar; tenga paciencia.
Después eliminamos /dev/sda2 del grupo de volúmenes VolGroup00…
vgreduce VolGroup00 /dev/sda2
… y decimos al sistema que no use /dev/sda2 más para LVM:
pvremove /dev/sda2
La salida de
pvdisplay
debería ahora ser la siguiente:
[root@server1 ~]# pvdisplay
--- Physical volume ---
PV Name /dev/md1
VG Name VolGroup00
PV Size 4.80 GB / not usable 22.25 MB
Allocatable yes
PE Size (KByte) 32768
Total PE 153
Free PE 1
Allocated PE 152
PV UUID pS3xiy-AEnZ-p3Wf-qY2D-cGus-eyGl-03mWyg
[root@server1 ~]#
A continuación cambiamos el tipo de partición de /dev/sda2 a Linux raid autodetect y añadimos /dev/sda2 al arreglo /dev/md1:
fdisk /dev/sda
[root@server1 ~]# fdisk /dev/sda
Command (m for help): <- t
Partition number (1-4): <- 2
Hex code (type L to list codes): <- fd
Changed system type of partition 2 to fd (Linux raid autodetect)
Command (m for help): <- w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table.
The new table will be used at the next reboot.
Syncing disks.
[root@server1 ~]#
mdadm --add /dev/md1 /dev/sda2
Ahora mire
cat /proc/mdstat
… y debería ver que el arreglo RAID /dev/md1 se está sincronizando:
[root@server1 ~]# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md1 : active raid1 sda2[2] sdb2[1]
5036288 blocks [2/1] [_U]
[=====>...............] recovery = 28.8% (1454272/5036288) finish=2.8min speed=21132K/sec
md0 : active raid1 sdb1[1]
200704 blocks [2/1] [_U]
unused devices:
[root@server1 ~]#
(Puede ejecutar
watch cat /proc/mdstat
para obtener una salida continua del proceso. Para salir de watch, pulse CTRL+C.)
Espere hasta que la sincronización haya terminado (la salida debería entonces ser así):
[root@server1 ~]# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md1 : active raid1 sda2[0] sdb2[1]
5036288 blocks [2/2] [UU]
md0 : active raid1 sdb1[1]
200704 blocks [2/1] [_U]
unused devices:
[root@server1 ~]#
Ahora montemos /dev/md0:
mkdir /mnt/md0
mount /dev/md0 /mnt/md0
Ahora debería encontrar el arreglo en la salida de
mount
[root@server1 ~]# mount
/dev/mapper/VolGroup00-LogVol00 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/md0 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)
[root@server1 ~]#
Ahora copiamos el contenido de /dev/sda1 a /dev/md0 (montado en /mnt/md0):
cd /boot
cp -dpRx . /mnt/md0
Verificación y comprobaciones (rápidas)
- Compruebe /proc/mdstat para ver el estado de sincronización: cat /proc/mdstat.
- Asegúrese de que /etc/fstab y /etc/mtab apunten a /dev/md0 para /boot.
- Confirme que /etc/mdadm.conf contiene las entradas ARRAY para /dev/md0 y /dev/md1.
- Verifique vgdisplay y pvdisplay para confirmar que el PV /dev/md1 está en VolGroup00.
Important: haga copia de seguridad de /boot y de la configuración del LVM antes de cambiar tablas de partición o mover PVs.
Lista de verificación antes del reinicio (playbook mínimo)
Para el administrador: siga estos pasos en orden y verifique cada punto:
- Confirmar que /dev/md1 muestra [UU] o está sincronizándose correctamente.
- /etc/fstab contiene /dev/md0 para /boot.
- /etc/mtab contiene /dev/md0 para /boot.
- /boot/grub/menu.lst contiene fallback=1 y una entrada con root (hd1,0).
- El initrd nuevo fue creado: /boot/initrd-
uname -r
.img existe. - Backup: copiar /boot a /root/boot-backup antes del reinicio.
- Plan de rollback: acceso físico o consola remota disponible si el sistema no arranca.
Criterios de aceptación
- El sistema arranca correctamente desde el RAID cuando se reinicia (o, en caso de fallo, desde el fallback).
- /boot está montado desde /dev/md0 y contiene todos los kernels e initrds necesarios.
- Los volúmenes lógicos y puntos de montaje del LVM están intactos y accesibles.
- pvdisplay y vgdisplay muestran /dev/md1 como parte del grupo de volúmenes con espacio esperado.
Escenarios en los que este procedimiento puede fallar (y soluciones rápidas)
- Error al relectura de la tabla de particiones (error 16): el kernel usa la tabla antigua hasta el reinicio. Solución: planifique un reinicio fuera de horas, o use partprobe si el sistema lo soporta.
- GRUB no encuentra /boot en RAID tras reiniciar: arranque desde el CD/USB de rescate, monte /boot y compare los ficheros; reinstale grub si es necesario en ambos discos.
- Sincronización lenta: compruebe la carga I/O y la prioridad de rescate (mdadm admite ajustar speed_limit_min/max).
Alternativas y consideraciones
- Alternativa a RAID1: RAID10 si dispone de más discos y necesita mejor rendimiento. Requiere reorganizar particiones.
- Si no desea LVM, puede mantener todo en particiones RAID sin PV/VG/LV.
- Para sistemas más nuevos considere usar GRUB2 y device-mapper de forma nativa.
Lista de verificación por roles
- Administrador de sistemas: validar sincronización RAID, actualizar GRUB, reiniciar y verificar arranque.
- Responsable de backups: garantizar copia de seguridad de /boot y snapshots del LVM antes del pvmove.
- Soporte en sitio: disponibilidad para acceso físico si el sistema no arranca.
Pequeña guía de recuperación rápida
- Si el sistema no arranca, usar consola remota o media de rescate.
- Compruebe /boot en ambas unidades: mount /dev/sdb1 /mnt y verifique ficheros.
- Reinstale GRUB en ambos discos: grub-install /dev/sda && grub-install /dev/sdb.
- Arranque y verifique /proc/mdstat y vgdisplay.
Mini-diagrama de decisión (mermaid)
graph TD
A[¿Tiene 2 discos?] -->|Sí| B[Usar RAID1]
A -->|No| C[Usar backup + disco único]
B --> D[Crear mdadm y pvcreate]
D --> E[vgextend + pvmove]
E --> F[Actualizar GRUB y initrd]
F --> G[Reiniciar y verificar]
G --> H{Arranca correctamente?}
H -->|Sí| I[Fin]
H -->|No| J[Recuperación desde rescate]
Resumen
- Cree los arreglos RAID con mdadm usando missing para los discos en uso.
- Prepare /dev/md1 para LVM y treslade las PVs con pvmove.
- Actualice /etc/mdadm.conf, /etc/fstab, /etc/mtab y GRUB para que apunten al RAID.
- Copie /boot a /dev/md0, regenere initrd y pruebe el reinicio con fallback.
Notas: planifique ventanas de mantenimiento, haga respaldos y tenga acceso físico como plan de contingencia.
Materiales similares

Desactivar notificaciones de macOS High Sierra

Crear pósters impactantes: 6 pasos prácticos

Ver contador de 'No me gusta' en YouTube

Convertir Spotify a MP3 sin premium — TuneFab
Configurar RAID y migrar datos en Linux
