Buenas,
Hoy vamos a aprender a crear un sistema "Raid" mediante software, lo haremos en "VirtualBox".
Para ello vamos a utilizar el comando "mdamd"
Lo primero sería usar una máquina con "Ubuntu" ya instalada previamente, donde añadiremos "4 discos", con esos "4 discos" montaremos un "Raid 5".
Listo esto iniciamos la máquina, en mi caso "Ubuntu 11.04".
En el caso de que se use "Ubuntu Server" y no se disponga de internet pasamos a añadirlo.
Dentro del terminal (Ctrl+Alt+T), agregamos las siguientes secuencias:
- $ sudo su
- # lshw -c network | more
- *-network
- description: Ethernet interface
- product: VT6102 [Rhine-II]
- vendor: VIA Technologies, Inc.
- physical id: 12
- bus info: pci@0000:00:12.0
- logical name: eth0
Buscamos el apartado "logical name", ethx ("x" igual a número, no tiene porque ser igual en todas las interfaz), memorizamos ese número y escribimos:
- # dhclient eth0
Pasamos a instalar el comando "mdadm", ponemos:
- $ sudo apt-get install "mdamd"
Nos aparecerá una ventana de configuración, le damos a "Sin configuración".
Listo todo esto pasamos a configurar el sistema "Raid 5".
Lo primero sería identificar nuestros discos, para ello ponemos:
- $ sudo fdisk -l | more
Hecho esto observamos los discos y vamos fijándonos en las líneas.
- Disco /dev/sdx ("x" igual a letra), importante apuntar los "4 discos" que posteriormente usaremos para montar el "Raid 5".
Pasamos a crear la tabla de particiones de los "4 discos", este paso habrá que repetirlo con los "4 discos", en mi caso sería: /dev/sdb /dev/sdc /dev/sdd /dev/sde.
Comenzamos por el primero:
- $ sudo fdisk /dev/sdb
Seguido nos pedirá una serie de parámetros a elegir, los clasificare por puntos para facilitar un poco el entendimiento.
- Nos dirá que no contiene una tabla de particiones, nos pedirá una orden, ponemos "n" para crear la tabla de particiones.
- Luego nos preguntará si queremos crear una partición extendida o una partición primaria, ponemos una "p" para crear una partición primaria.
- Nos preguntará el número de particiones a crear, ponemos "1".
- En "Primer cilindro" ponemos "1" que es el valor predeterminado.
- En "Último cilindro" ponemos nuestro valor predeterminado, en mi caso el "1044" (No tiene porque ser el mismo número).
- Por último nos pedirá otra orden, esta vez pondremos "w" para terminar.
Una vez acabado con los "4 discos" comprobamos que efectivamente están listos los discos.
Ponemos:
- $ sudo fdisk -l | more
Como veremos ahora si nos aparecerá una nueva línea (Dispositivo Inicio), donde nos aparecerá la partición creada.
Pasamos a crear el "Raid 5" (Importante recordad que discos queremos incluir en el Raid y no confundirse).
Ponemos la siguiente secuencia ("v" no es necesario, pero nosotros lo añadiremos para un mejor orden de los pasos):
- $ sudo mdadm -Cv /dev/md0 -l5 -n4 /dev/sd{b,c,d,e}1
Si todo ha salido correctamente debería aparecer algo así.
Ahora vamos a pasar a ver el estado del disco (Recordad que ya los "4 discos" pasan a ser "1")
Ponemos:
- $ sudo mdadm -D /dev/md0
Nos aparecerá una serie de parámetros y los discos que lo componen, como vemos esta listo para ser formateado.
Pasamos a formatear el disco, le daremos el formato "ext3".
- $ sudo mke2fs -t ext3 /dev/md0
Cuando termine el proceso quedará algo así:
Hecho todo esto, solo nos queda montar la unidad, para ello primero crearemos el directorio donde posteriormente montaremos nuestra unidad, en mi caso lo montaré en "media" y se llamará "Datos", para ello ponemos:
- $ sudo mkdir /media/Datos
- $ sudo mount /dev/md0 /media/Datos
Listo, ya tenemos nuestra unidad montada y lista para ser usada.
¿Cómo controlar los errores?
Podemos comprobar el estado con el siguiente comando:
- cat /proc/mdstat
Un comando muy interesante a tener en cuenta es el comando "manage" el cual nos brinda la posibilidad de añadir un disco duro a la "espera" (spare), el cual se activará en el caso de que otro falle. Estos procesos se harían en caliente por lo que todo seguiría funcionando con normalidad.
Vamos a apagar la máquina, agregarle un nuevo disco del mismo tamaño de los demás, arrancamos nuevamente la máquina y pasamos a crearle la tabla de particiones como ya hemos visto. Hecho todo esto pasamos a añadir el disco, ponemos:
- $ sudo mdadm --manage /dev/md127 --add /dev/(y el disco nuevo a agregar)
Hecho esto ya tenemos un disco en "spare" vamos a comprobar que efectivamente esta ahí.
- sudo mdamd -D /dev/md127
Si un disco falla lo podemos marcar como "fail".
Ponemos:
- $ sudo mdadm --manage /dev/md127 --fail /dev/(y el disco que a fallado)
Para eliminarlo ponemos:
- $ sudo mdadm --manage /dev/md127 --remove /dev/(y el disco que queremos eliminar)
Configurar el fichero "mdadm.conf"
Un paso importante es configurar el fichero "mdadm.conf", en este caso vamos a intentar simplificarlo de la forma más simple,
- 1 - Agregamos la configuración.
- $ sudo mdadm -Dsv >> /etc/mdadm/mdadm.conf
- 2 - Comprobamos la configuración.
- $ sudo cat /etc/mdadm/mdadm.conf
Comprobación marcando un disco como "fail"
Pasamos a comprobar que todo funciona correctamente, para ello vamos a añadir algún dato, cosa que luego provocaremos un error en un disco del sistema, comprobaremos si los datos siguen dentro.
Creamos un archivo con el texto que queramos:
- $ cat > /media/Datos/Fichero_de_prueba_raid.txt (Dentro introducimos algún texto y pulsamos "Ctrol+d" para terminar)
Ahora pasamos a marcar un disco como "fail" (Visto anteriormente).
- $ sudo mdadm --manage /dev/md0 --fail /dev/sde1 (Podemos marcar cualquier otro disco)
Pasamos a comprobar la sincronización de los disco, como podemos ver se ha añadido el disco en "Spare" y se están sincronizando correctamente.
- $ sudo cat /proc/mdstart
Una vez acabado pasamos a ver el estado de nuestros discos. Veremos como pasa el disco marcado como "fail" a "spare", y el disco que antes estaba en "spare" pasa a "active sync".
Por último comprobamos que el fichero "Fichero_de_prueba_raid.txt" no está dañado.
- $ cat /media/Datos/Fichero_de_prueba_raid.txt
Comprobación desconectando un "Disco"
Vamos a pasar a ver que ocurriría si desconectamos un disco y como podemos solucionarlo.
Apagamos la máquina, desconectamos un disco al azar.
- $ cat /proc/mdstart
Para volver a activar el raid lo primero que tenemos que hacer es pararlo.
- $ sudo mdadm --stop /dev/md0
Hecho esto pasamos a reactivar el raid. (Al reactivarlo se sincronizaran los discos disponibles, en nuestro caso solo nos quedarían "3", suficiente para que un "raid 5" funcione correctamente)
- $ sudo mdadm --assamble --scan
Comprobamos el estado de nuestro discos una vez reactivado el raid.
- $ sudo mdadm -D /dev/md0
Por último comprobamos que el fichero "Fichero_de_prueba_raid.txt" no está dañado.
- $ cat /media/Datos/Fichero_de_prueba_raid.txt
Espero que os sea de utilidad, comenten cualquier duda y opinión.
Saludos.
Perfecto como siempre, y el primero como es habitual.
ResponderEliminarMuchas gracias Jose, me alegro que te guste.
ResponderEliminarUn saludo
Perfecto, una pregunta, como podrías mandar las alertas de fallo de raid por correo? ( a una cuenta de correo :S), te dejo mi correos por si tienes la solución, gracias de antemano. (ruben.camarero.92@gmail.com)
ResponderEliminarExelente, de los pocas isntalaciones de raid5 paso a paso, muy buen trabajo
ResponderEliminar