Imprimir

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.

Recursos

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:

    Particionamos los dos discos

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

    Seleccionamos RAID

  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):

    Crear dispositivos RAID

  4. seleccionamos el tipo de RAID, RAID1:

    Tipo de RAID

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

    Formado por dos particiones

  6. sin discos de reserva:

    Sin discos de reserva

  7. seleccionamos la pareja de particiones correspondientes:

    Seleccionamos particiones

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

    Dispositivos RAID

  9. les asignamos punto de montaje y formato:

    Punto de montaje y formato

  10. comprobamos que todo esté correcto:

    Todo correcto

  11. grabamos los cambios y listo:

    Grabamos los cambios

  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'

5 Comentarios en “RAID (discos redundantes) en Linux”

  • gato dice:

    Hola, muy interesante voy a probarlo en un server dell por que tengo problemas de boot con el GRUB. gracias

  • bigwind dice:

    Deberias de usar RAID 5 o RAIFD 10. Son mejores que RAID 1 y RAID 0.

    Mi experiencia con un RAID 1 de 3 discos fue negativa. Tuve falla fisica en dos de los tres discos y perdi el acceso a los datos…

    No fue hasta que llame a una empresa de recuperaciones experta en RAID llamada ONRETRIEVAL en donde me recuperaron la informacion, no sin antes tener que haber desembosado una plata importante por el servicio. Pero no tenia opcion ya que si estas empresas no pueden recuperar, nadie podra. Y mi informacion lo valia.

    De ahora en mas uso un RAID 10 desde hace 4 años. Y tengo implementado un BACKUP externo a traves de una caja de discos externa de 5 discos, la Lian-Li EX-50 en donde llevo el respaldo casi diario…

    Saludos.

  • Yamel Senih dice:

    Hola, trato de hacer lo que indicas sobre instalar el grub en el segundo disco y cuando coloco el comando “device (hd0) /dev/hdd” dice error 15 File not Found

  • Dennis dice:

    Excelente guia, me ha servidor mucho, gracias.

  • Yamel Senih dice:

    Esta muy bueno, ya lo he probado en varios equipos… Gracias..

Deja un comentario