lunes, 7 de marzo de 2011

Raid 1 en debian

Raid 1 en debian, versión 5 hacia atrás.

Disco original - /dev/sda
Disco nuevo - /dev/sdb

Tendréis que sustituir la nomenclatura de vuestros discos donde yo tengo sda y sdb, por los vuestros.

Partimos de un disco /dev/sda particionado en tres, y unos discos, en este caso virtuales, de 12 gb de capacidad, repartidos de la siguiente manera:

(swap de 1 gb)
/dev/sda1 swap
(partición raiz / de 8 gb)
/dev/sda2 /
(partición de datos /datos de aproximadamente 4 gb)
/dev/sda3 /datos

Hay que tener en mente el orden del particionado, para poder formatear y montar bien las raid

Primero hay que instalar las herramientas de administración.

# apt-get install mdadm

Copiamos al disco nuevo la información del particionado.

# sfdisk -d /dev/sda | sfdisk /dev/sdb

Comprobamos que estén iguales los discos.

# fdisk -l

Disco /dev/sda: 1566 cilindros, 255 cabezas, 63 sectores/pista
Unidades = cilindros de 8225280 bytes, bloques de 1024 bytes, contando desde 0

Disp. Inic. Princ. Fin Nºcil Nºbloq. Id Sistema
/dev/sda1 0+ 121 122- 979933+ fd swap
/dev/sda2 * 122 1094 973 7815622+ fd /
/dev/sda3 1095 1565 471 3783307+ fd /datos

Disco /dev/sdb: 1566 cilindros, 255 cabezas, 63 sectores/pista
Unidades = cilindros de 8225280 bytes, bloques de 1024 bytes, contando desde 0

Disp. Inic. Princ. Fin Nºcil Nºbloq. Id Sistema
/dev/sdb1 0+ 121 122- 979933+ fd swap
/dev/sdb2 * 122 1094 973 7815622+ fd /
/dev/sdb3 1095 1565 471 3783307+ fd /datos

Cambiamos el tipo de particiones del disco original a raid autodetected.

# fdisk /dev/sdb

Orden (m para obtener ayuda): t
Número de partición (1-4): 1
Código hexadecimal (escriba L para ver los códigos): fd

Orden (m para obtener ayuda): t
Número de partición (1-4): 2
Código hexadecimal (escriba L para ver los códigos): fd

Orden (m para obtener ayuda): t
Número de partición (1-4): 3
Código hexadecimal (escriba L para ver los códigos): fd

Orden (m para obtener ayuda): w (para finalizar y grabar)

Comprobamos.

# fdisk -l

Disco /dev/sda: 12.8 GB, 12884901888 bytes
255 heads, 63 sectors/track, 1566 cylinders
Units = cilindros of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00097ef1

Disposit. Inicio Comienzo Fin Bloques Id Sistema
/dev/sda1 1 122 979933+ 82 Linux swap / Solaris
/dev/sda2 * 123 1095 7815622+ 83 Linux
/dev/sda3 1096 1566 3783307+ 83 Linux

Disco /dev/sdb: 12.8 GB, 12884901888 bytes
255 heads, 63 sectors/track, 1566 cylinders
Units = cilindros of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00000000

Disposit. Inicio Comienzo Fin Bloques Id Sistema
/dev/sdb1 1 122 979933+ fd Linux raid autodetect
/dev/sdb2 * 123 1095 7815622+ fd Linux raid autodetect
/dev/sdb3 1096 1566 3783307+ fd Linux raid autodetect


Ahora creamos las raid.

# mdadm --create /dev/md0 --level 1 --raid-devices=2 missing /dev/sdb1
mdadm: array /dev/md0 started.
# mdadm --create /dev/md1 --level 1 --raid-devices=2 missing /dev/sdb2
mdadm: array /dev/md1 started.
# mdadm --create /dev/md2 --level 1 --raid-devices=2 missing /dev/sdb3
mdadm: array /dev/md2 started.

formateamos las particiones.
# mkswap /dev/md0 (esta es la swap)
# mkfs.ext3 /dev/md1
# mkfs.ext3 /dev/md2

Copiamos el contenido de nuestra partición / en /mnt/
# mount /dev/md1 /mnt
# cp -dpRx / /mnt

En el caso de que nuestra partición /datos tuviera algo lo copiaríamos de la misma manera.
# umount /dev/mnt
# mount /dev/md2 /mnt
# cp -dpRx / /mnt/datos

Ahora editamos el fstab para configurar los dispositivos, pero usaremos el que acabamos de montar en /mnt/ para mayor seguridad.

# vim /mnt/etc/fstab

¡¡¡¡original!!!!
# /etc/fstab: static file system information.
#
#
proc /proc proc defaults 0 0
/dev/sda2 / ext3 errors=remount-ro 0 1
/dev/sda3 /datos ext3 defaults 0 2
/dev/sda1 none swap sw 0 0
/dev/hdc /media/cdrom0 udf,iso9660 user,noauto 0 0


¡¡¡¡así tendrá que quedar!!!!
# /etc/fstab: static file system information.
#
#
proc /proc proc defaults 0 0
/dev/md1 / ext3 errors=remount-ro 0 1
/dev/md2 /datos ext3 defaults 0 2
/dev/md0 none swap sw 0 0
/dev/hdc /media/cdrom0 udf,iso9660 user,noauto 0 0

Ahora editaremos el menu.lst para usar el raid a la hora de arrancar, también modificaremos de momento el que acabamos de montar en /mnt para mayor seguridad.

# vim /mnt/boot/grub/menu.lst

¡¡¡¡original!!!!
## ## End Default Options ##

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

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

¡¡¡¡asi tendra que quedar!!!!

## ## End Default Options ##

title Debian GNU/Linux, kernel 2.6.26-2-686
root (hd0,1)
kernel /boot/vmlinuz-2.6.26-2-686 root=/dev/md1 md=1,/dev/sda2,/dev/sdb2 ro
initrd /boot/initrd.img-2.6.26-2-686

title Debian GNU/Linux, kernel 2.6.26-2-686 (single-user mode)
root (hd1,1)
kernel /boot/vmlinuz-2.6.26-2-686 root=/dev/md1 md=1,/dev/sdb2 ro
initrd /boot/initrd.img-2.6.26-2-686

Configuramos el grub.

# grub-install /dev/sda
Searching for GRUB installation directory ... found: /boot/grub
Installation finished. No error reported.
This is the contents of the device map /boot/grub/device.map.
Check if this is correct or not. If any of the lines is incorrect,
fix it and re-run the script `grub-install'.

(hd0) /dev/sda
(hd1) /dev/sdb

grub
grub> device (hd0) /dev/sdb
grub> root (hd0,1)
Filesystem type is ext2fs, partition type 0xfd
grub> setup (hd0)
Checking if "/boot/grub/stage1" exists... yes
Checking if "/boot/grub/stage2" exists... yes
Checking if "/boot/grub/e2fs_stage1_5" exists... yes
Running "embed /boot/grub/e2fs_stage1_5 (hd0)"... 17 sectors are embedded.
succeeded
Running "install /boot/grub/stage1 (hd0) (hd0)1+17 p (hd0,1)/boot/grub/stage2 /boot/grub/menu.lst"... succeeded
Done.
grub> quit

Ahora pasaremos la informacion del GRUB y del fstab al disco original /dev/sda.
# cp -dp /mnt/etc/fstab /etc/fstab

una vez copiado el fstab comprobar si estan los cambios realizados ¡¡¡SUPER IMPORTANTE!!!
# cat /etc/fstab

# cp -dp /mnt/boot/grub/menu.lst /boot/grub

Una vez llegados a este punto, rebotaremos la maquina y no tendria que haber ningun problema.

Montamos las particiones.
# mdadm --add /dev/md0 /dev/sda1
# mdadm --add /dev/md1 /dev/sda2
# mdadm --add /dev/md2 /dev/sda3

Monitorizamos la sincronizacion.

# cat /proc/mdstat

El resultado final sera este.
# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid1 sda1[0] sdb1[1]
979840 blocks [2/2] [UU]
md1 : active raid1 sda2[0] sdb2[1]
7815552 blocks [2/2] [UU]
md2 : active raid1 sda3[0] sdb3[1]
3783232 blocks [2/2] [UU]
unused devices:

Ya tenemos nuestros discos montados en RAID1



Registrado en Safe Creative

No hay comentarios:

Publicar un comentario