Raid por Software Utilizando ‘mdadm’

25 05 2010

Lo primero de lo que hemos de disponer es de dos discos, a poder ser iguales (en caso de no ser así deberiamos particionarlos para que tengan la misma capacidad). Una vez conectados comprobamos que el sistema los haya detectado:
# ls /dev
Y vemos que los ha detectado correctamente en /dev/sdb y /dev/sdc y además están montados en /media como usb-disk1 y usb-disk2. Los desmontamos para poder crear la unidad raid.

# umount /media/usb-disk1
# umount /media/usb-disk2

Creamos la unidad raid (en este caso raid1).

# mdadm --create --verbose /dev/md0 --level=raid1 --raid-devices=2 /dev/sdb1 /dev/sdc1

La unidad raid1 se crea en segundo plano, para ver el estado en que se encuentra la unidad podemos hacer:

# cat /proc/mdstat

y se nos mostrará una barra de estado, con el porcentaje que lleva completada la operación de sincronización del dispositivo raid.

Cuando la sincronización sea completa y el dispositivo raid esté listo para ser utilizado, formateamos la unidad a un sistema de ficheros que nuestro sistema pueda interpretar sin problemas. En mi caso formateo la unidad a ext3.

# mkfs.ext3 /dev/md0

Creamos una carpeta “raid1” donde montaremos la unidad y le damos permisos para que todos los usuarios del sistema puedan escribir y leer en él.

# mkdir /media/raid1
# mount /dev/md0 /media/raid1
# chmod -R 777 /media/raid1

Añadimos la parte correspondiente en /etc/fstab para que se monte de forma automática cada vez que reiniciemos el equipo.

# echo "/dev/md0 /media/raid1 ext3 defaults 0 1" >> /etc/fstab

También es necesario indicarle al sistema como acceder al sistema raid. Para ello hemos de modificar el archivo mdadm.conf de la siguiente forma:

# echo "DEVICE partitions" > mdadm.conf
# mdadm --detail --scan >> mdadm.conf

Comprobamos que la unidad raid funciona sin problemas, y probamos a reiniciar y quitar uno de los discos para simular un fallo en el hardware.

Antes de hacerlo hacemos un checksum de los datos contenido en la unidad raid, para después comprobar que la sincronización se ha realizado correctamente. Al reiniciar vemos que que el sistema detecta que uno de los discos ha fallado, pero levanta igualmente el raid con un único disco.

md: bind
md: ide/host0/bus1/target0/lun0/part1's event counter: 00000006
md0: former device sdb1 is unavailable, removing from array!
md: raid1 personality registered as nr 3
md0: max total readahead window set to 124k
md0: 1 data-disks, max readahead per data-disk: 124k
raid1: device ide/host0/bus1/target0/lun0/part1 operational as mirror 1
raid1: md0, not all disks are operational -- trying to recover array
raid1: raid set md0 active with 1 out of 2 mirrors
md: updating md0 RAID superblock on device
md: ide/host0/bus1/target0/lun0/part1 [events: 00000007](write) ide/host0/bus1/target0/lun0/part1's sb offset: 1048192
md: recovery thread got woken up ...
md0: no spare disk to reconstruct array! -- continuing in degraded mode
md: recovery thread finished ...

Marcamos el disco /dev/sdb1 como fallo para proceder a su cambio utilizando la siguiente orden:

# mdadm --manage /dev/md0 --fail /dev/sdb1
mdadm: set /dev/sdb1 faulty in /dev/md0

Añadimos un nuevo disco externo, que deberá tener la misma capacidad que el que está funcionando. En caso de no ser así (si tiene más capacidad) deberemos crear una partición con la capacidad exacta del disco sdc1. Ahora sólo queda agregar el disco al raid y esperar a que sincronice.

# mdadm /dev/md1 --manage --add /dev/sdd1

Y eso es todo!

Anuncios

Acciones

Información

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s




A %d blogueros les gusta esto: