Vous êtes sur la page 1sur 5

RAID mediante software en Linux.

mdadm: Una nueva herramienta para la gestin de RAID mediante software en Linux
Traduccin del artculo "mdadm: A New Tool For Linux Software RAID Management" escrito por Derek Vadala y publicado originalmente en http://www.linuxdevcenter.com/pub/a/linux/2002/12/05/RAID.html por Derek Vadala, autor de Managing RAID on Linux.
12/05/2002

Lectura relacionada:

Managing RAID on Linux By Derek Vadala raidtools ha sido el paquete de gestin de RAID por software estandard en Linux desde la inclusin del driver RAID por software. Con los aos, raidtools ha demostrado un uso pesado, principalmente porque depende de un fichero de configuracin (/etc/raidtab) que es difcil de mantener, y parcialmente por sus limitadas caractersticas. En agosto de 2001, Neil Brown, un ingeniero de software en la Unviersity of New South Wales y un desarrollador del kernel, lanz una alternativa. Su paquete mdadm (multiple devices admin) proporciona una forma simple y robusta de gestin de arrays software. mdadm v por la versin 1.0.1 y ha demostrado ser muy estable durante su primer ao de desarrollo. En la lista de correo Linux-raid ha recibido una clida acogida y muy probablemente consiga una mayor difusin en el futuro1. Este artculo asume que usted tiene cierta familiaridad con el RAID por software en Linux y que ha tenido cierto contacto con el paquete raidtools.

Instalacin2
Descargue la versin ms reciente del tarball mdadm, ejecute make install para compilarlo e instalar mdadm con su documentacin. Adems del binario se instalan algunas pginas de manual y ficheros de ejemplo. # tar xvf ./mdadm-1.0.1.tgz # cd mdadm-1.0.1.tgz # make install De forma alternativa usted puede descargar e instalar el ifchero del paquete que se encuentra bajo el directorio RPM en la misma URL (http://www.cse.unsw.edu.au/~neilb/source/mdadm/). # rpm -ihv mdadm-1.0.1-1.i386.rpm mdadm tiene cinco modos de funcionamiento. Los primeros dos modos, Create y Assemble, se utilizan para configurar y activar arrays. Manage se utiliza para manipular dispositivos en un array activo. Follow o Monitor permite a los administradores configurar la notificacin de eventos y acciones para los arrays. El modo Build se utiliza cuando se trabaja con arrays heredados que utilizan una versin antigua del driver md. No cubrir el modo build en este artculo. Las opciones restantes se utilizan para varias tareas domsticas y no estn asociadas a un modo de operacin especfico, aunque la documentacin de mdadm llama a estas opciones el modo Misc.

Creando un Array
El modo Create (mdadm --create) se utiliza para crear un nuevo array. En este ejemplo utilizar mdadm para crear un RAID-0 en/dev/md0 construido con /dev/sdb1 y /dev/sdc1: # mdadm --create --verbose /dev/md0 --level=0 --raid-devices=2 /dev/sdb1 /dev/sdc1 mdadm: chunk size defaults to 64K mdadm: array /dev/md0 started. La opcin --level especifica el tipo de RAID a crear, de la misma manera que lo hace la opcin raid-level de raidtools. Es posible indicar 0, 1, 4 y 5 para RAID-0, RAID-1, RAID-4 y RAID-5. Tambin es posible utilizar el modo lineal (--level=linear). La opcin --raid-devices funciona de la misma manera que la opcin nr-raid-disks cuando se utiliza /etc/raidtab y raidtools. En general, los comandos mdadm tienen el siguiente formato: mdadm [mode] <raiddevice> [options] <component disks> Cada opcin de mdadm tambin cuenta con una forma corta que es menos descriptiva pero ms breve de teclear. Por ejemplo, el siguiente comando utiliza la forma corta de cada opcin pero es identico al ejemplo que he mostrado antes. # mdadm -Cv /dev/md0 -l0 -n2 -c128 /dev/sdb1 /dev/sdc1 -C selecciona el modo Create, he incluido la opcin -v para activar la salida verbosa. -l y n especifican el nivel RAID y el nmero de discos. Los usuarios de raidtools y /etc/raidtab pueden comprobar los fcil que es crear arrays utilizando mdadm. Usted puede cambiar el tamao del pedazo (chunk size) por defecto (64KB) utilizando la opcin --chunk o -c. En el ejemplo anterior he fijado el chunk size a 128KB. mdadm tambin soporta la expansin del shell, de modo que no tiene que teclear el nombre de dispositivo para cada componente si se est creando un gran array. En este ejemplo crear un RAID-5 con cinco discos y un tamao de chunk de 128KB: # mdadm -Cv /dev/md0 -l5 -n5 -c128 /dev/sd{a,b,c,d,e}1 mdadm: layout defaults to left-symmetric mdadm: array /dev/md0 started. El ejemplo crea el array /dev/md0 utilizando las particiones de disco SCSI /dev/sda1, /dev/sdb1, /dev/sdc1, /dev/sdd1 y /dev/sde1. Observe que tambin he fijado el tamao del chunk a 128KB utilizando la opcin -c128. Cuando se crea un RAID5, mdadm selecciona de forma automtica el algoritmo de paridad left-symmetric, que es la mejor opcin. Utilice el comando --stop o -S para detener un array en marcha: # mdadm -S /dev/md0

/etc/mdadm.conf

/etc/mdadm.conf es el principal fichero de configuracin de mdadm. A diferencia de /etc/raidtab, mdadm no depende de/etc/mdadm.conf para crear o gestionar arrays. En su lugar, mdadm.conf es simplemente una manera adicional de seguir la pista a los dispositivos RAID software. Utilizar un fichero de configuracin con mdadm es til pero no necesario. Tener uno significa que usted puede gestionar los arrays de forma gil sin invertir tiempo en descubrir qu propiedades tienen y dnde estn los discos. Por ejemplo, si un array no est en marcha y no existe el fichero mdadm.conf describindolo, entonces el administrador del sistema debe invertir tiempo en examinar cada disco para determinar sus propiedades y miembros. A diferencia del fichero de configuracin para raidtools, mdadm.conf es conciso y smplemente lista los discos y arrays. El fichero de configuracin puede contener dos tipos de lneas, cada una comenzando con la palabra reservada DEVICE o ARRAY. Los espacios en blanco separan las palabras reservadas de la informacin de configuracin. Las lneas que comienzan con DEVICE especifican una lista de dispositivos que son candidatos a formar parte del array. La lneas que comienzan con ARRAY especifican dispositivos array adems de informacin de identificacin. Esta informacin puede incluir listas de uno o ms UUIDs, nmeros menores de dispositivos md, o una lista de dispositivos miembro. Un fichero de configuracin mdadm.conf sencillo puede parecerse a: DEVICE /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1 ARRAY /dev/md0 devices=/dev/sda1,/dev/sdb1 ARRAY /dev/md1 devices=/dev/sdc1,/dev/sdd1 En general, es mejor crear el fichero /etc/mdadm.conf despus de haber creado un array y actualizar el fichero cuando se crean nuevos arrays. Sin un fichero /etc/mdadm.conf se necesita especificar informacin ms detallada sobre un array en el comando para activarlo. Esto significa que se tendr que recordar que dispositivos pertenecen a cada array, y esto puede convertirse fcilmente en un embrollo en sistemas con muchos discos. mdadm incluso proporciona una

manera fcil de generar las lneas ARRAY . La salida es una sola lnea continua, pero aqu est troceada para encajar en la pgina: # mdadm --detail --scan ARRAY /dev/md0 level=raid0 num-devices=2 \ UUID=410a299e:4cdd535e:169d3df4:48b7144a Si hubiera mltipes arrays ejecutndose en el sistema, entonces mdadm generara una linea array para cada uno. As que, una vez que haya construido sus arrays, puede redirigir la salida de mdadm --detail --scan a /etc/mdadm.conf. Slo tiene que asegurarse de crear manualmente una entrada DEVICE. Utilizando el ejemplo anterior podemos tener un /etc/mdadm.conf con el siguiente aspecto: DEVICE /dev/sdb1 /dev/sdc1 ARRAY /dev/md0 level=raid0 num-devices=2 \ UUID=410a299e:4cdd535e:169d3df4:48b7144a

Iniciando un array
El modo Assemble se utiliza para iniciar un array que ya existe. Si usted ha creado el fichero /etc/mdadm.conf, entoces puede comenzar el array listado all con el siguiente comando: # mdadm -As /dev/md0 mdadm: /dev/md0 has been started with 2 drives. La opcin -A se refiere al modo Assemble, tambin puede utilizar --assemble. La opcin -s o -scan indican a mdadm que mire en/etc/mdadm.conf para informarse sobre los arrays y los dispositivos. Si usted quiere iniciar todos los arrays listados en/etc/mdadm.conf, no especifique un dispositivo md en la lnea de comandos. Si usted no cre el fichero /etc/mdadm.conf, necesitar especificar informacin adicional en la lnea de comandos para poder iniciar un array. Por ejemplo, este comando intenta iniciar /dev/md0 utilizando los dispositivos listados en la lnea de comandos: # mdadm -A /dev/md0 /dev/sdb1 /dev/sdc1 Como utilizar mdadm -A de este modo supone que usted conoce cmo estn organizados los arrays, puede que no sea til en sistemas que tienen arrays que fueron creados por otra persona. De manera que usted puede querer examinar algunos dispositivos para hacerse una idea de cmo estn organizados los arrays. La opcin de examinar (-E o --examine) permite imprimir el superbloque md(si est presente) de un dispositivo de bloques que puede formar parte de un array. # mdadm -E /dev/sdc1 /dev/sdc1: Magic : a92b4efc Version : 00.90.00 UUID : 84788b68:1bb79088:9a73ebcc:2ab430da Creation Time : Mon Sep 23 16:02:33 2002 Raid Level : raid0 Device Size : 17920384 (17.09 GiB 18.40 GB) Raid Devices : 4 Total Devices : 4 Preferred Minor : 0 Update Time : Mon Sep 23 16:14:52 2002 State : clean, no-errors Active Devices : 4 Working Devices : 4 Failed Devices : 0 Spare Devices : 0 Checksum : 8ab5e437 - correct Events : 0.10 Chunk Size : 128K Number Major Minor RaidDevice State this 1 8 33 1 active sync /dev/sdc1 0 0 8 17 0 active sync /dev/sdb1 1 1 8 33 1 active sync /dev/sdc1 2 2 8 49 2 active sync /dev/sdd1 3 3 8 65 3 active sync /dev/sde1 La opcin de examinar muestra informacin til sobre los discos que componen el array. En este caso podemos decir que /dev/sdc1pertenece a un RAID-0 formado por cuatro discos miembro. Lo

que quiero resaltar de forma especfica es la lnea de salida que contiene el UUID. Un UUID es un nmero de 128 bits que se supone razonablemente nico tanto en el sistema local como en el resto. Se genera de forma aleatoria utilizando hardware y marcas temporales como parte de su semilla. Los UUIDs se tutilizan en varios programas para etiquetar de forma nica los dispositivos. Puede obtener ms informacin leyendo las pginas de manual de uuidgen y libuuid. Cuando se crea un array, el driver md genera un UUID para el array y lo guarda en el superbloque md. Puede utilizar el UUID como criterio para la construccin de arrays. En el prximo ejemplo activar el array al que pertenece /dev/sdc1 utilizando su UUID. # mdadm -Av /dev/md0 --uuid=84788b68:1bb79088:9a73ebcc:2ab430da /dev/sd* Este comando escanea cada disco SCSI (/dev/sd*) para ver si es miembro del array con UUID84788b68:1bb79088:9a73ebcc:2ab430da y entonces inicia el array, suponiendo que se encuentre cada uno de los dispositivos que lo componen. mdadm producir un montn de salida cada vez que intente escanear un dispositivo que no existe. Puede ignorar tales advertencias con seguridad.

Gestionando arrays
Utilizando el modo Manage puede aadir y eliminar discos de un array en funcionamiento. Esto es necesario para eliminar los discos que han fallado, aadir discos de repuesto, o aadir los discos de reemplazo. El modo Manage tambin se puede utilizar para marcar un disco como averiado. El modo Manage replica las funciones de los programas raidsetfaulty, raidhotremove y raidhotadd de raidtools. Por ejemplo, para aadir un disco a un array activo, replicando el comando raidhotadd: # mdadm /dev/md0 --add /dev/sdc1 O para eliminar /dev/sdc1 de /dev/md0 intente: # mdadm /dev/md0 --fail /dev/sdc1 --remove /dev/sdc1 Observe que primero he marcado /dev/sdc1 como averiado y despus lo hemos eliminado. Es equivalente a utilizar los comandosraidsetfaulty y raidhotremove de las raidtools. Es posible combinar las opciones de aadir, marcar como averiado y eleminar en una sola lnea de comandos siempre que tenga sentido en trminos de gestin del array. Por ejemplo, debe marcar un disco como averiado antes de eliminarlo.

Monitorizando arrays

El modo Follow, o Monitor, proporciona algunas de las mejores caractersticas de mdadm. Utilizando el modo Follow/Monitor puede utilizar mdadm como un demonio y configurarlo para enviar alertas por correo a los administradores cuando en los arrays se producen errores o fallos. Tambin puede utilizar el modo Follow para ejecutar comandos arbitrarios cuando un disco se averie. Por ejemplo, puede querer intentar eliminar el disco y reinstarlo en un intento de corregir un fallo no-fatal sin intervencin del usuario. El siguiente comando monitorizar /dev/md0 (consultando su estado cada 300 segundos) en busca de eventos crticos. Cuando ocurre un error faltal, mdadm enviar un correo al sysadmin. Puede ajustar el intrvalo de consulta y la direccin de correo de acuerdo a sus necesidades. # mdadm --monitor --mail=sysadmin --delay=300 /dev/md0 Cuando se utiliza el modo monitor, mdadm no termina, as que tal vez quiera envolverlo con un nohup y un &. # nohup mdadm --monitor --mail=sysadmin --delay=300 /dev/md0 & El modo Follow/Monitor tambin permite que los arrays compartan discos de repuesto, una caracteristica que ha faltado en el software RAID de Linux desde el principio. Esto significa que usted slo tiene que proporcionar un disco de repuesto para cada grupo de arrays o para todos los asrrays. Tambin significa que el administrador del sistema no tiene que intervenir de forma manual para mover los discos de repuesto cuando se produce un fallo en un array. Cuando se detecta una avera en un disco de un array sin un disco de repuesto,mdadm quitar un disco de repuesto disponible en otro array y lo insertar en el array con el disco averiado. Para facilitar este proceso, cada lnea ARRAY de /etc/mdadm.conf necesita tener un grupo de repuesto definido. DEVICE /dev/sd* ARRAY /dev/md0 level=raid1 num-devices=3 spare-group=database \ UUID=410a299e:4cdd535e:169d3df4:48b7144a ARRAY /dev/md1 level=raid1 num-device=2 spare-group=database \ UUID=59b6e564:739d4d28:ae0aa308:71147fe7 En este ejemplo, tanto /dev/md0 como /dev/md1 son parte del grupo de repuesto database. Suponiendo que /dev/md0 es un RAID-1 de dos discos con un solo disco de repuesto. Si mdadm est funcionando en modo monitor (como he mostrado antes), y un disco

de/dev/md1 falla, mdadm quitar el disco de repuesto de /dev/md0 y lo insertar en /dev/md1. mdadm tiene muchas otras opciones que no he descrito aqu. Recomiendo de forma encarecida la lectura de su pgina de manual para ms detalles. Recuerde, no es necesario cambiar a mdadm. Las raidtools todava mantienen su desarrollo y son el fruto de muchos aos de desarrollo. Pero encuentro que mdadm es un buen reemplazo. Tiene muchas caracteristicas y es intuitivo, no pierde nada al probar alternativas.

Notas:
1. NT: En el momento de realizar esta traduccin (octubre de 2007), Mandriva 2008 incluye la versin de mdadm xxx. 2. NT: La mayora de las distribuciones cuentan con un paquete mdadm en su repositorio, as que la instalacin se reduce a utilizar el gestor de paquetes adecuado. ltima modificacin: Monday, 3 de June de 2013, 15:42

Vous aimerez peut-être aussi