Software-RAID1-Debian-Lenny-x64

INSTALACION

1. Instalar los paquetes necesarios :
apt-get install initramfs-tools mdadm
Ensembles MD requis par le système de fichiers racine : all

2. Cargar los modulos necesarios en el kernel :
modprobe md
modprobe linear
modprobe multipath
modprobe raid0
modprobe raid1
modprobe raid5
modprobe raid6
modprobe raid10

3. Particionar el segundo disco duro (sdb) con las mismas particiones de sda :
sfdisk -d /dev/sda | sfdisk /dev/sdb

3.1 Cambiar el tipo de particiones de sdb por "Linux raid autodetect" :
fdisk /dev/sdb

Command (m for help): t
Partition number (1-4): 1
Hex code (type L to list codes): fd

Command (m for help): t
Partition number (1-4): 2
Hex code (type L to list codes): fd

Command (m for help): t
Partition number (1-4): 3
Hex code (type L to list codes): fd

Command (m for help): w

4. Asegurese que no existen restos de otros RAID en el disco duro :
mdadm --zero-superblock /dev/sdb1
mdadm --zero-superblock /dev/sdb2
mdadm --zero-superblock /dev/sdb3

5. Crear el arreglo de discos (md) y agregar cada particion de sdb (sdb1 -> md0, sdb2 -> md1 y sdb3 -> md2):
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

Continue creating array? y

6. Crear los systemas de archivos del arreglo de discos (md) :
mkswap /dev/md0
mkfs.ext3 /dev/md1
mkfs.ext3 /dev/md2

7. Reconfigurar el archivo mdadm.conf :
cp /etc/mdadm/mdadm.conf /etc/mdadm/mdadm.conf_orig
mdadm --examine --scan >> /etc/mdadm/mdadm.conf

8. Montar el arreglo de disco md1 y md2 :
mkdir /mnt/md1
mkdir /mnt/md2
mount /dev/md1 /mnt/md1
mount /dev/md2 /mnt/md2

9. Modificar el fstab y mtab para que arranque desde el RAID :
sed -i 's:/dev/sda2:/dev/md1:g' /etc/fstab
sed -i 's:/dev/sda3:/dev/md2:g' /etc/fstab
sed -i 's:/dev/sda1:/dev/md0:g' /etc/fstab

sed -i 's:/dev/sda3:/dev/md2:g' /etc/mtab
sed -i 's:/dev/sda2:/dev/md1:g' /etc/mtab

10. Modificar el grub para que, si el arranque falla con uno de los discos, intente con el otro :
nano /boot/grub/menu.lst

Debajo de la linea default 0 agregar : fallback 1

11. Modificar el grub para que arranque desde el arreglo de discos, la lista de arranque debe quedar asi :
## ## End Default Options ##

title Debian GNU/Linux, kernel 2.6.26-2-amd64 (RAID1 HD1)
root (hd1,1)
kernel /boot/vmlinuz-2.6.26-2-amd64 root=/dev/md1 ro quiet
initrd /boot/initrd.img-2.6.26-2-amd64

title Debian GNU/Linux, kernel 2.6.26-2-amd64 (NO RAID)
root (hd0,1)
kernel /boot/vmlinuz-2.6.26-2-amd64 root=/dev/sda2 ro quiet
initrd /boot/initrd.img-2.6.26-2-amd64

title Debian GNU/Linux, kernel 2.6.26-2-amd64 (single-user mode)
root (hd0,1)
kernel /boot/vmlinuz-2.6.26-2-amd64 root=/dev/sda2 ro single
initrd /boot/initrd.img-2.6.26-2-amd64

### END DEBIAN AUTOMAGIC KERNELS LIST

12. Actualizar el ramdisk :
update-initramfs -u

13. Copiar el contenido de / en /mnt/md1 :
cp -dpRxv / /mnt/md1/

14. Preparar grub :
grub

root (hd0,1)
setup (hd0)
root (hd1,1)
setup (hd1)
quit

15. Reiniciar el sistema para que arranque desde el nuevo arreglo RAID 1 :
reboot

16. Cambiar el tipo de particiones de sda por "Linux raid autodetect" :
fdisk /dev/sda

Command (m for help): t
Partition number (1-4): 1
Hex code (type L to list codes): fd

Command (m for help): t
Partition number (1-4): 2
Hex code (type L to list codes): fd

Command (m for help): t
Partition number (1-4): 3
Hex code (type L to list codes): fd

Command (m for help): w

17. Agregar el disco sda al arreglo RAID 1 :
mdadm --add /dev/md0 /dev/sda1
mdadm --add /dev/md1 /dev/sda2
mdadm --add /dev/md2 /dev/sda3

18. Espere a que el nuevo disco sea duplicado :
watch cat /proc/mdstat

Una vez terminado el proceso presione Ctrl + C

19. Reconfigurar el archivo mdadm.conf :
cp /etc/mdadm/mdadm.conf /etc/mdadm/mdadm.conf_orig
mdadm --examine --scan >> /etc/mdadm/mdadm.conf

20. Modificar el grub para que arranque desde el arreglo de discos, la lista de arranque debe quedar asi :
nano /boot/grub/menu.lst

## ## End Default Options ##

title Debian GNU/Linux, kernel 2.6.26-2-amd64 (RAID1 HD0)
root (hd0,1)
kernel /boot/vmlinuz-2.6.26-2-amd64 root=/dev/md1 ro quiet
initrd /boot/initrd.img-2.6.26-2-amd64

title Debian GNU/Linux, kernel 2.6.26-2-amd64 (RAID1 HD1)
root (hd1,1)
kernel /boot/vmlinuz-2.6.26-2-amd64 root=/dev/md1 ro quiet
initrd /boot/initrd.img-2.6.26-2-amd64

#title Debian GNU/Linux, kernel 2.6.26-2-amd64 (NO RAID)
#root (hd0,1)
#kernel /boot/vmlinuz-2.6.26-2-amd64 root=/dev/sda2 ro quiet
#initrd /boot/initrd.img-2.6.26-2-amd64

#title Debian GNU/Linux, kernel 2.6.26-2-amd64 (single-user mode)
#root (hd0,1)
#kernel /boot/vmlinuz-2.6.26-2-amd64 root=/dev/sda2 ro single
#initrd /boot/initrd.img-2.6.26-2-amd64

### END DEBIAN AUTOMAGIC KERNELS LIST

21. Modificar la linea kopt :
sed -i '63s:/dev/sda2:/dev/md1:g' /boot/grub/menu.lst

22. Actualizar el ramdisk :
update-initramfs -u

23. Edite el archivo /etc/mdadm/mdadm.conf y configure la opcion MAILADDR para el envio de alertas :
MAILADDR user@mail.com

24. Reiniciar :
reboot

TESTS

1. Simular la perdida de uno de los discos duros, en neste caso hdb :
mdadm --manage /dev/md0 --fail /dev/sdb1
mdadm --manage /dev/md1 --fail /dev/sdb2
mdadm --manage /dev/md2 --fail /dev/sdb3

mdadm --manage /dev/md0 --remove /dev/sdb1
mdadm --manage /dev/md1 --remove /dev/sdb2
mdadm --manage /dev/md2 --remove /dev/sdb3

2. Ahora puede apagar el sistema y reemplazar el disco duro sdb.

3. Ahora puede ver el estado del raid y vera que falta uno de los discos :
cat /proc/mdstat

RECONSTRUIR UN DISCO

1. Despues reemplazar el disco hdb por uno nuevo, creamos la tabla de particiones en el nuevo disco :
sfdisk -d /dev/sda | sfdisk --force /dev/sdb

2. Asegurese que no existen restos de otros RAID en el disco duro :
mdadm --zero-superblock /dev/sdb1
mdadm --zero-superblock /dev/sdb2
mdadm --zero-superblock /dev/sdb3

3. Agregar el nuevo disco al arreglo :
mdadm -a /dev/md0 /dev/sdb1
mdadm -a /dev/md1 /dev/sdb2
mdadm -a /dev/md2 /dev/sdb3

4. Espere a que el nuevo disco sea duplicado :
watch cat /proc/mdstat

Una vez terminado el proceso presione Ctrl + C

5. Reinstalar grub en ambos discos :
grub

root (hd0,1)
setup (hd0)
root (hd1,1)
setup (hd1)
quit