lunes, 6 de mayo de 2013

Configuración de Raid 5 mediante software en Máquina Virtual

Vamos a ver como configuramos un Raid 5 con la ayuda de una máquina virtual.





  • Necesitaremos  1 sistema operativo Linux (En mi caso Ubuntu Server)
  • Añadiremos 4 discos independientes del mismo tamaño a la máquina virtual. 
Instalación de Linux y configuración de máquina virtual han sido vistas en anteriores entradas.


Vemos el controlador SATA.
Con el SO Ubuntu
Y los 4 discos vacíos del mismo    tamaño











Vamos a iniciar el sistema operativo para proceder a la configuración.


  • Abrimos el terminal, como consejo realizaremos todo el proceso como root para más comodidad.
    • Para cambiar a root: $ su root

  • Para crear nuestro RAID hay que instalar el programa "mdadm". Para ello ejecutamos el siguiente comando:
    • $ sudo apt-get install mdadm

OJO! nos pedirá que instalemos el servidor de correo postfix. seleccionamos la opción sin configuración .


  • Vamos a comprobar el disco que contiene los datos con el comando:
    • $ fdisk -l /dev/sda

  • Comprobamos que los discos han sido reconocidos por el sistema con el comando:
    • $ fdisk /dev/sd  (mis discos son SATA)
    • $ fdisk /dev/hd (en caso de ue vuestros discos sean IDE)
      • NOTA: No den INTRO despues de TECLEAR, utilicen tabulador y saldran los discos. De lo contrario no se mostrará nada en consola.



Vemos que: sdb, sdc, sdd y sde son los 4 discos que insertamos y están reconocidos por el sistema.

  • Ahora cogemos cada 1 de nuestros discos (sdb, sdc, sdd, sde) y le creamos una partición sin formato. Para ello utilizaremos el comando:
    • $ fdisk /dev/sdb
      • Esta vez si pulsamos INTRO para que entre en el programa.


Tecleamos m para entrar en la ayuda
INTRO








Tecleamos n para añadirlo como partición
INTRO












Tecleamos p para elegirlo como partición primaria
INTRO



Tecleamos "1" INTRO


 Siguen dos pasos que debemos teclear INTRO.
Despues "m" INTRO




Tecleamos
INTRO
Tecleamos "l" INTRO


Tecleamos da
INTRO











Tecleamos "m" INTRO



Tecleamos w para guardar y salir
INTRO










    • NOTA: Este comando y proceso habrá que efectuarlo para cada 1 de los discos.
      • $ fdisk /dev/sdc 
      • $ fdisk /dev/sdd 
      • $ fdisk /dev/sde 

  • Vamos a comprobar los discos y las particiones, así nos aseguramos que hemos hecho bien los pasos anteriores. Para eso utilizamos de nuevo el comando:
    • $ fdisk /deb/sda  (NO intro, varias tabulaciones)

  • Vamos a crear por fin el Raid, antes de indicaros la línea de comando, os voy a mostrar las opciones que vamos a utilizar en el:
    • -- verbose  (Muestra información sobre la creación del Raid)
    • --create  (Indica el punto de montaje de nuestro Raid)
    • --level=  (Indica el nivel de Raid, 0, 1, 5...)
    • --raid-devices=  (Numero de discos que usará el Raid y el punto de montaje de cada uno)     
  • Ahora si la línea de comando a introducir es:
    • sudo mdadm --verbose --create /dev/md0 --level=5 --raid-devices=4 /dev/sdc1 /dev/sdd1 /dev/sde1 










  • Ya nos ha creado un nuevo volumen con el nombre "md0". Ahora crearemos su tabla de particiones con el comando fdisk de la misma manera que hizimos al principio. La diferencia que tiene es que en esta debemos seleccionar el nº83 para dar formato de Linux.Comando:
    • fdisk /dev/md0



Vamos a saltar los pasos de la ayuda, tecleando directamente "n"






seleccionamos partición primaria
con valor prdetermiando 1, igual que en el anterior paso.

tecleamos "t" y elegimos el 83


Seguidamente tecleamos "W" para guardar

  • Ahora daremos formato ext4 a la partición con el comando.
    • mkfs.ext4 /dev/md0p1
  • Lo siguiente es realizar una operación para indicarle a nuestro sistema que cuando arranque siga reconociendo al volumen como "md0" de lo contrario reconocerá el volumen por defecto. Esto ocurre sólo e versiones de Ubuntu 12. Lo solucionamos con el comando:
    • mdadm --detail --scan >> /etc/mdadm/mdadm.conf

  • Vamos a avisar al núcleo, dicho en resumen, de la existencia de "mdadm.conf" con el comando:
    • update/initramfs -u

  • Para hacer uso de nuestro Raid 5 hay que indicarle un punto de montaje.
Creamos una carpeta en home.


Con el comando de la imagen lo montamos en la carpeta creada.


  • Vamos a comprobar que nuestro Raid esta funcionando con los discos sincronizados.
    • mdadm --detail /dev/md0p1





















  • Para obtener información detallada (Fabricante, Serial Number, etc) sobre los discos físicos que se ocultan detrás del RAID es necesario usar las smartmontools.
    • sudo apt-get install smartmontools
  • Una vez instalado el paquete necesitaremos acceder al sistema como Root y ejecutar en terminal el siguiente comando:
    #smartctl -parametro
    Donde parametro seria, por ejemplo:
    #smartctl -i Nos muestra la informacion SMART de nuestro disco duro.
    #smartctl -A Nos muestra los diferentes parametros en el Disco.
    #smartctl -t Ejecuta un test al disco duro, necesita un parametro adicional como puede ser long. (Lease #smartctl -t long) Esto nos hara el analisis , aunque no mostrara el progreso en pantalla, sino que nos mostrara el tiempo estimado de duracion del analisis en minutos.
    Si necesitas detener el analisis por alguna razon solo teclea:
    #smartctl -X
    Existen mas parametros de ejecucion de la herramienta, aunque aqui solo expongo las mas utilizadas.

Dicho esto  vamos a proceder a "curarnos en salud" introduciendo un disco duro digamos de recambio en caso de que se rompa algún disco inesperadamente, a este disco de recambio se le llama "spare"(disco duro de espera).

El procedimiento a seguir dicho esto, será insertar el "spare", con el comando mdadm.


  • Guardaremos algun dato con el raid 5 ya funcionando
  • Simularemos la rotura de un disco
  • Recuperaremos el disco con el "spare"
  • Comprobaremos que los datos están bien
  1. Para insertar un nuevo disco lo agregamos a la máquina virtual,(recordamos que tiene que tener el mismo tamaño que los demas)

























  •  Observamos como ha reconocido el disco



  •  Pasamos a darle la particion igual que a los demas discos













  • Comprobamos que el particionado sea el correcto


  •  Añadimos el disco spare a md0p1 con el comando:


  •  Comprobamos el Raid para asegurarnos de la incorporación del spare


  •  Creamos un archivo para ver como es recuperado proximamente.


  •  Apagamos el pc y quitamos un disco

Vemos como he quitado el 3.vdi














  • Iniciamos y ya nos comunican que un disco del Raid esta roto, marcamos yes y INTRO




  •  Con este comando miramos la situación del Raid




Vemos la rotura de disco y el spare funcionando

















  • Comprobamos el fichero que hicimos antes..

 Y esto es todo amigos. Dudas, preguntas y demás..dejen comentario
Hasta la próxima

Edito..

En caso de rotura de disco:

  • sudo mdadm --stop /dev/md0 (con esto dejamos inactivo el raid )

  • Agregamos un disco de sustitución.
  • sudo mdadm --assemble --scan (para activar de nuevo el raid)


Hay que decir que podemos probar que pasaría con nuestro raid si hubira un fallo sin necesidad de retirar el disco o en nuestro caso eliminando un vdi de nuestra máquina virtual.
Esto lo conseguimos simulando un error de hardware en el raid con el siguiente comando:


  • sudo mdadm --manage md0 --fail sdb1 (Por ejemplo)

3 comentarios:

  1. Buenas, Jose.
    En tu ejemplo, al tener aún 3 discos duros sincronizados para el Raid 5, no te hace falta "activar" el spare. Pero si hubiese otro error de otro disco ... habría que activarlo. He encontrado cómo hacerlo en
    http://ubuntuforums.org/showthread.php?t=1805944

    Lo vemos en la clase con el resto de compañeros. Recuérdamelo, ok?

    Un saludo

    Un saludo

    ResponderEliminar
    Respuestas
    1. Gracias Fran, lo miro lo antes posible para editar la entrada.

      Eliminar
  2. Ehh, no lo ví, ya te lo recuerdo! Perfecto descubrimiento que nos trajo de cabeza, :D

    ResponderEliminar