En esta última entrega, voy a poner un ejemplo real de la utilización de varios discos en RAID 1. Para ello voy a usar un ordenador con un disco duro donde tengo el SO instalado, en este caso Ubuntu 12.04 y a parte le he añadido 2 discos duros de 500GB que utilizaré para los ejemplos.
El disco del sistema esta en /dev/sda y los discos que utilizaré para el raid están en /dev/sdb y /dev/sdc
En primer lugar, debemos instalar mdadm si no lo tenemos en el sistema:
apt-get install mdadm
y crear un raid 1 con los dos discos:
mdadm –create /dev/md0 –level=1 –raid-devices=2 /dev/sdb /dev/sdc
Nos va a advertir que ya hay datos en los discos y que si planeamos utilizarlos como discos de arranque nos aseguremos que nuestro bootloader «entienda» los metadatos del disco. Le decimos que si
A partir de este momento, ya tenemos nuestro raid 1 montado, pero no podremos escribir datos en el hasta que no creemos un sistema de ficheros y lo montemos en nuestro sistema:
mkfs /dev/md0 para crear el sistema de ficheros
mount /dev/md0 /media/raid para montarlo. (En mi caso, para las pruebas he escogido esa)
Para comprobar que el array funciona, voy a copiar una gran cantidad de datos, unos 100 GB y esperar a que sincronicen los discos.
Ahora vamos a simular que uno de los discos ha fallado, puedo hacerlo mediante software, pero en este caso, voy a apagar el equipo y voy a desconectarlo físicamente del equipo
Al arrancar el equipo, es posible que no encontréis vuestro array como /dev/md0, no os preocupéis, esto es porque no hemos editado el fichero encargado de asignarle nombre al array y ubuntu por defecto lo llama de otra forma. Lo normal es que os lo encontréis como /dev/md127. Lo volvemos a montar con mount
mdadm –stop /dev/md127
mdadm -A –scan >> /etc/mdadm/mdadm.conf
mount /dev/md0 /media/raid (al añadir la linea al fichero anterior vuelve a cambiar md0)
y comprobamos que nuestros datos sigan encontrándose allí. Si hacemos un fdisk, podremos comprobar como se encuentra solo uno de los discos. También es interesante comprobar la salida que nos devuelve…
mdadm –detail /dev/md0 y
cat /proc/mdstat
donde podremos ver mas información sobre nuestro array.
Como el array ha arrancado en modo degradado y uno de los discos no se encuentra o está defectuoso, debemos indicarle que elimine ese disco con la siguiente orden (si el disco está presente pero defectuoso, en caso contrario se puede omitir):
mdadm –manage /dev/md0 –remove /dev/sdc (en mi caso ha sido el /dev/sdc)
y nuevamente apagamos el ordenador para añadir otro disco, en este caso un disco de 1TB. Tengo que recordar que en un sistema que posea la característica de poder cambiar los discos duros en caliente, no hace falta apagar el ordenador, pero en mi caso, como no es así, lo hago para evitar males mayores.
En este punto, con un RAID 1, nuestros datos corren un gran peligro porque solo están almacenados en un disco físico y la rotura de este disco, podría provocar la pérdida de la valiosa información que guardamos en nuestro sistema. En la vida real, cuando un disco falla es muy probable que a los demás les quede poca vida, debido a que normalmente se compran al mismo tiempo, tienen la misma edad, las mismas horas, carga y condiciones de trabajo y por lo tanto, estadísticamente tenemos muchas posibilidades de que falle, por lo tanto, es muy importante no tener nuestro sistema en estado degradado si no queremos perder nuestros datos.
Ahora vamos a añadir el disco de 1TB a nuestro array. Recordad que al ser de nivel 1, la capacidad total será igual al disco (o partición) mas pequeño.
Como el nuevo disco está en /dev/sdc…
mdadm /dev/md127 –add /dev/sdc (nuevamente el md127)
y esperamos a que se reconstruya el array. Este es un proceso que puede durar mucho tiempo dependiendo de la velocidad de los discos. Podemos ver el estado en todo momento con la orden:
mdadm –detail /dev/md127
Una vez que se haya reconstruido totalmente el array, lo tendremos funcionando a pleno rendimiento. Pero, vamos a seguir haciendo pruebas en nuestro raid. Ahora vamos a eliminar el disco de 500GB que teníamos y vamos a poner otro de 1TB.
Seguimos todos los pasos descritos arriba y nos encontraremos con un RAID 1 de 500GB compuesto por 2 discos de 1TB. El último paso que nos queda es aumentar el tamaño del raid y el tamaño de ficheros de la siguiente manera:
mdadm –grow /dev/md0 -z max
resize2fs /dev/md0
Cuando termine, estaremos utilizando todo el espacio disponible de nuestros discos (o particiones).
No hace falta que os advierta que cuando trabajamos con discos y particiones, podemos aunque hagamos una manipulación correcta de los discos. Tened mucho cuidado y como siempre haced copias de seguridad.
No responses yet