Entradas populares

martes, 22 de marzo de 2011

RAID (discos redundantes) en Linux

RAID (Redundant Array of Inexpensive Disks) por software es una forma barata de obtener discos duros grandes, rápidos y seguros. Aprovechamos la potencia de la CPU para tareas que necesitarían circuitería especializada y cara.
Vamos a ver cómo instalar un RAID-1 (mirror) con dos discos que contienen exactamente lo mismo, un sistema que nos proporciona tolerancia a fallos de disco duro. Aunque falle un disco:
  1. no perderemos datos, ya que tenemos redundancia.
  2. el sistema seguirá funcionando. Mientras sobreviva un disco el sistema no se cae.
  3. el sistema podrá bootear, ya que arranca desde el RAID y desde cualquiera de los discos.

La manera más sencilla y eficaz de instalar RAID-1 es durante la instalación del Sistema Operativo. Lo haremos en el particionado:
  1. particionamos los dos discos con el mismo esquema de particiones, marcadas todas ellas como particiones RAID:

  2. seleccionamos Configurar RAID software (antes de pasar a configurar el RAID el instalador particionará los discos):

  3. tenemos que crear un dispositivo RAID para cada partición, incluyendo la swap (incluimos la swap para intentar evitar un cuelgue si falla un disco):

  4. seleccionamos el tipo de RAID, RAID1:

  5. le decimos que estará formado por 2 particiones:

  6. sin discos de reserva:

  7. seleccionamos la pareja de particiones correspondientes:

  8. y repetimos este proceso con todas las particiones. Una vez definidos todos los dispositivos RAID:

  9. les asignamos punto de montaje y formato:

  10. comprobamos que todo esté correcto:

  11. grabamos los cambios y listo:

  12. el gestor de arranque GRUB lo instalaremos en el MBR.

Nota: Error 22, Error 15
En ocasiones GRUB no se instala bien y da problemas al reiniciar. El equipo no arranca y tira un Error 22 o un Error 15. En ese caso, reiniciaremos desde el CD en Graphical Rescue Mode y probaremos la opción Reinstalar GRUB pero esta vez en:
(hd0,0)
Si esto no resuelve el problema, volveremos a reiniciar desde el CD en Graphical Rescue Mode, abriremos una terminal y editaremos con nano el archivo/boot/grub/menu.lst:
# nano /boot/grub/menu.lst
... donde reemplazaremos la línea:
root          (hd1,0)
... por:
root          (hd0,0)
Si esto no resuelve el problema, a googlear...
Veremos los RAIDs como si fuesen particiones normales:
# df
S.archivos 1K-blocks Used Available Use% Mount
/dev/md0 2885664 121800 2617280 5% /
/dev/md2 2885664 32872 2706208 2% /home
/dev/md3 1829037 887074 844376 52% /usr
/dev/md4 918229 47973 821264 6% /var
/dev/md5 1309703 8245 1231583 1% /tmp
Para consultar el estado de los RAID ejecutaremos:
# cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 hda5[0] hdd5[1]
289024 blocks [2/2] [UU]
md2 : active raid1 hda6[0] hdd6[1]
2931712 blocks [2/2] [UU]
md3 : active raid1 hda7[0] hdd7[1]
1951744 blocks [2/2] [UU]
md4 : active raid1 hda8[0] hdd8[1]
979840 blocks [2/2] [UU]
md5 : active raid1 hda9[0] hdd9[1]
1397504 blocks [2/2] [UU]
md0 : active raid1 hda1[0] hdd1[1]
2931712 blocks [2/2] [UU]
unused devices: none
Todavía no hemos terminado, nos falta configurar el sistema para que sea capaz de bootear desde ambos discos. Si simulamos un fallo del segundo disco desconectándolo (con el ordenador apagado), comprobaremos que la máquina arranca. Pero si desconectamos el primer disco veremos que no arranca, porque en el MBR del segundo disco no hay nada. Por tanto, para que la máquina pueda bootear desde cualquiera de los discos tenemos que instalar GRUB también en el MBR del segundo disco. Para ello:
# grub
grub> device (hd0) /dev/hdd
grub> root (hd0,0)
grub> setup (hd0)
grub> quit
Por último, veamos cómo actuar cuando un disco del RAID falle (no lo dudes, tarde o temprano fallará). Utilizaremos las herramientas mdadm (multiple device administer,paquete mdadm), que han reemplazado a las clásicas raidtools.
  1. detectaremos que un disco RAID ha fallado mirando en /proc/mdstat:
    # cat /proc/mdstat
    md3 : active raid1 hda7[0]
    1951744 blocks [2/1] [U_]
  2. apagaremos el ordenador, reemplazaremos el disco averiado y arrancaremos de nuevo.
  3. formatearemos el nuevo disco con fdisk, marcando las particiones como fd (Linux RAID autodetect).
  4. el nuevo disco no se inserta automáticamente en el RAID, ya que está marcado como erróneo. Lo insertaremos ejecutando:
    # mdadm /dev/md3 -a /dev/hdd7
    mdadm: hot added /dev/hdd7
    Y comenzará la reconstrucción del RAID. Lo comprobaremos con:
    # cat /proc/mdstat
    md3 : active raid1 hda7[0] hdb7[1]
    1951744 blocks [2/1] [U_]
    [====>.....] resync = 33.1% finish=34.3min speed=59895K/sec
    Podemos monitorizar el proceso de reconstrucción con:
    # watch -n1 'cat /proc/mdstat'

No hay comentarios:

Publicar un comentario