RAID1 es el resultado de utilizar dos o mas particiones del mismo tamaño como si fuera un espejo. Los datos que se generen en un disco automáticamente se replicarán al segundo disco. El resultado que obtendremos es que todas las particiones tendrán la misma información y logramos así un sistema tolerante a fallos (soporta el fallo de todos los dispositivos menos 1).
En el presente documento trabajaremos con dos discos del mismo tamaño.
El resultado será el siguiente:
/dev/sda2 + /dev/sdb2 = /mnt/md0
/dev/sda1 + /dev/sdb1 = /mnt/md1
md0 y md1 son los nombres que se asignan al RAID.
En nuestro caso md0 corresponde al punto de montaje "/" y md1 corresponde a la memoria swap.
1.- Cargamos módulos en el arranque:
# vi /etc/modules
md
raid1
2.- Copio la tabla de particiones del primer disco al segundo
# sfdisk -d /dev/sda | sfdisk /dev/sdb
3.- Modificamos el tipo de partición del segundo disco:
# cfdisk /dev/sdb
Type fd
Write yes
Quit
4.- Creamos el RAID1 y añadimos el segundo disco:
# mdadm --create /dev/md0 --level=1 --raid-disks=2 missing /dev/sdb2
5.- Lo formateamos (usamos el mismo formato del primer disco /dev/sda2):
# mkfs -t ext3 /dev/md0
6.- Copiamos el sistema de ficheros al nuevo disco:
# mkdir /mnt/md0
# mount /dev/md0 /mnt/md0
# cp -axu / /mnt/md0
7.- Creamos un nuevo RAID initrd:
# vi /etc/mkinitrd/modules
md
raid1
8.- Definimos el directorio principal:
# vi /etc/mkinitrd/mkinitrd.conf
ROOT=/dev/md0
9.- Generamos un nuevo initrd:
# mkinitrd -o /boot/initrd.img-2.4.26-1-386-raid
10.- Actualizamos GRUB para que esto tenga efecto en el arranque:
# vi /boot/grub/menu.lst
title RAID Debian GNU/Linux, kernel 2.4.26-1-386
root (hd0,1)
kernel /boot/vmlinuz-2.4.26-1-386 root=/dev/md0 ro
initrd /boot/initrd.img-2.4.26-1-386-raid
savedefault
boot
11.- Editamos el /mnt/md0/etc/fstab:
# vi /mnt/md0/etc/fstab
/dev/md0 / ext3 defaults,errors=remount-ro 0 1
12.- Rebotamos:
# reboot
13.- Ahora modificaremos el tipo de particion del primer disco:
# cfdisk /dev/sda
Type fd
Bootable
Write yes
Quit
14.- Añadimos el primer disco al RAID md0:
# mdadm --add /dev/md0 /dev/sda2
15.- Para ver el estado ejecutar el comando:
# cat /proc/mdstat
Nota: para que la sincronización vaya más rápida ejecutar el siguiente comando:
# echo -n 500000 > /proc/sys/dev/raid/speed_limit_max
16.- Volvemos a generar el initrd:
# mkinitrd -o /boot/initrd.img-2.4.26-1-386-raid
17.- Volvemos a modificar el GRUB:
# vi /boot/grub/menu.lst
title RAID Debian GNU/Linux, kernel 2.4.26-1-386
root (hd0,1)
kernel /boot/vmlinuz-2.4.26-1-386 root=/dev/md0 ro
initrd /boot/initrd.img-2.4.26-1-386-raid
savedefault
boot
18.- Instalamos GRUB en el segundo disco:
grub
grub> device (hd0) /dev/sdb
grub> root (hd0,1)
grub> setup (hd0)
grub> quit
Haremos lo mismo que el apartado anterior pero con la memoria swap.
1.- Apagamos la swap:
# swapoff /dev/sda1
2.- Modificamos la swap de los discos y los ponemos en tipo de archivos "fd"
# cfdisk /dev/sda
# cfdisk /dev/sdb
3.- Creamos el RAID1:
# mdadm --create /dev/md1 --level=1 --raid-disks=2 missing /dev/sdb1
4.- Y añadimos el primer disco:
# mdadm --add /dev/md1 /dev/sda1
5.- Modificamos el /etc/fstab:
# vi /etc/fstab
/dev/md1 none swap
6.- Formateamos la swap y la activamos:
# mkswap /dev/md1
# swapon /dev/md1
7.- Generamos por ultima vez el initrd:
# mkinitrd -o /boot/initrd.img-2.4.26-1-386-raid
8.- Rebotamos y ya tiene que estar todo funcionando:
# reboot
Supongamos que el disco /dev/sda ha fallado y tenemos que reemplazarlo.
Nota: para poder ver el estado del array y sus discos ejecutar:
# cat /etc/mdstat
El procedimiento funciona también en Ubuntu???
Raul :-)
El procedimiento es igual para Ubuntu.
Lo único que cambia es el comando "mkinitrd" que en Ubuntu es "mkinitramfs".
Comentarios recientes
42 weeks 3 days ago
42 weeks 3 days ago