Mdadm es la herramienta que utilizamos para la administración de sistemas de arreglos de discos (RAID) en Linux, muchos de los proveedores de servicios de hosting utilizan esta herramienta para mantener los datos protegidos con redundancia de datos.
En esta publicación veremos algunos comandos esenciales para la administración y monitoreo de una sistema en RAID1 o mirroring.

1.- Crear un nuevo arreglo de discos en RAID1

Creando el nuevo arreglo de discos con mdadm –create /dev/md0 utlizaremos las particiones de los discos sda1, sdb1 y nuestro arreglo RAID se llama md0:

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

Tambien podemos usar la forma abreviada:

mdadm -C /dev/md0 -l 1 -n 2 /dev/sd[ab]1

2.- /etc/mdadm.conf

/etc/mdadm.conf es el archivo de configuración de mdadm, podemos gestionar nuestros arreglos de discos desde el archivo de configuración, aunque no es obligatorio y es una alternativa adicional para la administración de arreglos RAID.
El cuerpo del archivo de configuración puede contener 2 tipos de lineas: DEVICE o ARRAY

Podemos ver la información de nuestro archivo de configuración con el siguiente comando:

mdadm --detail --scan

Una vez que creamos un RAID, podemos tambien guardar la información en el archivo de configuración con:

mdadm --detail --scan >> /etc/mdadm.conf

3.- Eliminar un disco del arreglo RAID

Primero marcamos el disco como faulty o “fallido” en este caso /dev/sdb1 del arreglo /dev/md0 que creamos anteriormente.

mdadm --faill /dev/md0 /dev/sdb1

Luego podemos remover sin problemas el disco o la unidad que está marcada como fallida.

mdadm --remove /dev/md0 /dev/sdb1

Tambien podemos hacerlo en un solo paso:

mdadm /dev/md0 --fail /dev/sdb1 --remove /dev/sdb1

4.- Agregar un nuevo disco al sistema RAID

Este comando es el salvador de los administradores de sistemas RAID, nos permite cambiar un disco dañado o en mal estado por uno nuevo.

mdadm --add /dev/md0 /dev/sdb1

Podemos verificar en cualquier momento el estado de nuestros arreglos RAID con el comando:

cat /proc/mdstat

Tambien podemos hacer un loop infinito para ir viendo el progreso de una sincronización:

watch -n 3 cat /proc/mdstat

La salida de información del comando es algo similar a esto:

cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 sdb1[1] sda1[0]
104320 blocks [2/2] [UU]

md1 : active raid1 sdb3[1] sda3[0]
19542976 blocks [2/2] [UU]

md2 : active raid1 sdb4[1] sda4[0]
223504192 blocks [2/2] [UU]

Este comando nos entrega la información de estado de nuestro arreglo de discos, nos mostrará [UU] cuando los dos discos estén arriba y sincronizados, o mostratrá un símbolo como [U_] cuando alguno de los 2 discos esté expulsado del RAID.

5.- Detener y eliminar un arreglo de discos en RAID

Si queremos terminar con un arreglo de discos primero tenemos que detener el RAID para luego removerlo:

mdadm --stop /dev/md0

Luego de detenerlo podemos eliminarlo:

mdadm --remove /dev/md0

Finalmente podemos eliminar la información de RAID de cada uno de los discos pertenecientes al arreglo con el comando mdadm –zero-superblock

mdadm --zero-superblock /dev/sda

Otra buena herramienta para el manejo de discos en RAID es la copia de las particiones, ya que al agregar un nuevo disco es necesario que ambos discos contengan la misma tabla de particiones.

Para esto utilizamos el siguiente comando asumiendo que queremos copiar la tabla de particiones desde /dev/sda a /dev/sdb:

sfdisk -d /dev/sda | sfdisk /dev/sdb

Este comando copiará la tabla de particiones de /dev/sda a /dev/sdb, recomiendo que sólo utilicen este comando si están conscientes de lo que implica copiar la tabla de particiones de un disco a otro, ya que se eliminará toda la información contenida en /dev/sdb.

Hay muchas formas distintas y opciónes que se pueden agregar a la creación y administración de sistemas RAID en Linux, en esta publicación vemos sólo lo mas general que nos permita controlar un arreglo de discos.
Para mas información sobre mdadm puedes siempre consultar el manual de Linux con (man mdadm) o la ayuda de mdadm con (mdadm –help)

man mdadm

 

mdadm --help

También hay articulos relacionados bastante interesantes en Internet como:

http://en.wikipedia.org/wiki/Mdadm

http://elpuig.xeill.net/Members/vcarceler/articulos/mdadm-una-nueva-herramienta-para-la-gestion-de-raid-mediante-software-en-linux

http://www.ducea.com/2009/03/08/mdadm-cheat-sheet/

Espero les haya ayudado esta guia de mdadm para el funcionamiento y respaldo de sus servidores, recuerden que lo mas importante es mantener la seguridad de la información.