RAID con mdadm luego de reboot

Recientemente he colaborado para realizar un arreglo de discos redundante (RAID) y existía el problema que el arreglo se perdía luego de reiniciar (reboot) la computadora. Con cada reinicio había que ensamblarlo nuevamente a mano y no permitía un uso fluido del sistema. Si bien aclaro que el S.O. era Debian, creo que el mismo efecto puede producirse sobre Ubuntu.

El hardware usado, y hago solamente referencia a los discos por ser el tema de este artículo, consiste de 1 discos pata (antes ide) y 2 discos sata de igual tamaño. Sobre el disco pata hda se instaló el sistema operativo Debian con una partición ext3 y una swap. Es decir una instalación clásica.

Los discos sata sda1 y sdb1 se desean utilizar en raid 1, es decir haciendo espejado o mirroring. El control del arreglo raid es basado en software con mdadm, que además de simple es muy potente. Hay una muy buena página con un resumen de uso de mdadm en http://www.linuxdevcenter.com/pub/a/linux/2002/12/05/RAID.html?page=1 (en inglés).

Para crear por primera vez el arreglo se usa:

mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sda1 /dev/sdb1

Luego de sincronizar los discos sda1 y sdb1, el arreglo está armado y funcionando como md0. Se puede comprobar su estado con lo siguiente:

/proc/mdstat
mdadm -D /dev/md0

Para completar la configuración del arreglo, se definen los parámetros del raid en el archivo /etc/mdadm/mdadm.conf:

DEVICE /dev/sda1 /dev/sdb1
ARRAY /dev/md0 level=raid1 num-devices=2 /dev/sda1 /dev/sdb1

Para finalizar, se agrega el raid md0 en /etc/fstab y luego en el sistema de archivos:

mount -a

Todo esto funciona correctamente hasta que se produce el reinicio del sistema, en este caso forzado para verificar el correcto funcionamiento del sistema.

Luego del reinicio, se comprueba que el raid no es ensamblado y montado automáticamente, y se puede hacer manualmente con:

mdadm -As /dev/md0

... para ensamblar el raid ya creado y:

mount -a

... para montar el raid en /raid, ya creado en fstab.

Es importante destacar que una vez creado el raid no es necesario volver a crearlo luego del reinicio, sino que se debe ensamblar, manteniendo toda la integridad de los datos dentro de los discos.

Analizando los mensajes del sistema se encuentra que, aparentemente, el sistema monta el disco pata hda y luego intenta montar en forma automática el raid, pero todavía no ha incorporado los discos sata sda y sdb a la lista de dispositivos /dev, con lo cual el raid falla.

Para solucionar este inconveniente y permitir que el sistema sea completamente automático, se debe habilitar el script de inicio mdadm-raid para que se ejecute de acuerdo al nivel que se utilice. En este caso particular se utiliza el runlevel 3, por lo que se hizo un link desde /etc/init.d/mdadm-raid a /etc/rc3.d/S23mdadm-raid.

Con esta operación luego de cada reinicio, el script leía lo definido en el archivo /etc/mdadm/mdadm.conf para ensamblar nuevamente el raid. Pero no se montaba automáticamente.

Para solucionar ésto se hizo el script /etc/init.d/mdadm-raid-mount que contiene:

#!/bin/sh -e
#
# Monta los raid que estuvieran especificados en /etc/fstab
#
# Distribuir bajo los términos de GNU GPL versión 2.

mount -a

Luego queda por hacer un link entre /etc/init.d/mdadm-raid-mount y /etc/rc3.d/S27mdadm-raid-mount

Cabe destacar que si se utiliza otro nivel de ejecución (runlevel) se deben crear los links que correspondan. Por ejemplo, si se utiliza el modo gráfico, seguramente el runlevel es el 5 y los links se deben hacer a /etc/rc5.d/...

Para probar todo se realizaron varios reinicios y se comprobó que el raid se ensambla y monta automáticamente.

-----
parq!

0
Su voto: Ninguno

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

Consulta

Estimado, estuve mirando tu articulo y muy bueno, la verdad que no he conseguido mucha cosa sobre RAID1 con Ubuntu, y en este momento estoy tratando de instalar la versión Beta 7.10, nunca hice un Raid con Linux y me está complicando, son los costos de cambiar de SO....jejeje

Me queda una duda con respecto a tu publicación ya que no fue el caso de lo que planteas, yo estoy tratando de hacer el raid1 con el disco donde está instalado Ubuntu o sea tengo 2 discos sata y quiero que uno sea el espejo del otro, completo, y no se como queda el tema de al swap, porque en tu ejemplo solo es con discos extras, y no en el que está el SO.

Me podés dar una mano con eso?

Desde ya muchas gracias por tu tiempo.

Saludos

Darío. 

Gracias.

Macho, estaba loco con este tema.

Muchas gracias por el comentario, en cuanto llegue al laboratorio lo pruebo y comento.

Decir que estoy trabajando en ubuntu 9.10 y cada vez que reiniciaba se iba. Había probado todo excepto chequear el orden de ejecución de los scripts.

Gracias.

PD: No obstante, antes de estos intentos (fallidos), probé crear el array en otro equipo con ubuntu-server 9.10 y funcionó sin problemas. No entiendo como puede ser así.

Un saludo.

Inicio de sesión

Encuesta

¿Qué entorno gráfico prefieres usar? ¿Por qué?
Unity
25%
Gnome 3
23%
Gnome classic
36%
Kde
6%
Xfce
4%
Enligthenment
1%
Lxde
2%
Otro - Especificar
2%
¿Entorno gráfico? Ninguno, ¡solo uso la consola!
2%
Total de votos: 2367