lunes , 26 julio 2021
Inicio / Blog / ¿Como crear RAID por software en Linux?

¿Como crear RAID por software en Linux?

Sin importar el nivel de RAID que hayamos elegido ni cuán confiable sea la tecnología de almacenamiento que usemos para implementarlo, un arreglo RAID no reemplaza la necesidad de una estrategia de backup apropiada – por más que provea redundancia de datos.

La herramienta para crear RAID por software

En Linux, la herramienta para crear RAIDs por software se llama mdadm (abreviación de multiple disks admin).

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:

[shell]mdadm –create /dev/md0 –level=1 –raid-devices=2 /dev/sda1 /dev/sdb1[/shell]

Tambien podemos usar la forma abreviada:

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

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:

[shell]mdadm –detail –scan[/shell]

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

[shell]mdadm –detail –scan >> /etc/mdadm.conf[/shell]

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.

[shell]mdadm –faill /dev/md0 /dev/sdb1[/shell]

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

[shell]mdadm –remove /dev/md0 /dev/sdb1[/shell]

Tambien podemos hacerlo en un solo paso:

[shell]mdadm /dev/md0 –fail /dev/sdb1 –remove /dev/sdb1[/shell]

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.

[shell]mdadm –add /dev/md0 /dev/sdb1[/shell]

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

[shell]cat /proc/mdstat[/shell]

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

[shell]watch -n 3 cat /proc/mdstat[/shell]

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

[shell] 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] [/shell]

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:

[shell]mdadm –stop /dev/md0[/shell]

Luego de detenerlo podemos eliminarlo:

[shell]mdadm –remove /dev/md0[/shell]

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

[shell]mdadm –zero-superblock /dev/sda[/shell]

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:

[shell]sfdisk -d /dev/sda | sfdisk /dev/sdb[/shell]

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)

[shell]man mdadm[/shell] [shell]mdadm –help[/shell]

Cómo simular una falla

Para simular una falla del disco /dev/sdc1, utilizaremos el siguiente comando, prestando atención a la opción --fail:

mdadm /dev/md0 --fail /dev/sdc1

A continuación, lo quitaremos del arreglo con --remove:

mdadm /dev/md0 --remove /dev/sdc1

Agregar un disco de reemplazo

Luego de haber conectado el disco físicamente a nuestro sistema y habiendo creado la partición correspondiente identificada como /dev/sdg1, esto es lo que debemos hacer para agregar el disco al arreglo a fin de reemplazar el dañado:

mdadm /dev/md0 --add /dev/sdg1

Reciclar uno o varios discos para utilizarlos en otro arreglo

Luego de haber
1) tomado las precauciones necesarias,
2) resguardado los datos importantes,
3) removido un disco en particular del arreglo, procederemos a eliminar la información del superbloque

mdadm --zero-superblock /dev/sdc1

Acerca de Isaac Lemus

15 años de experiencia como consultor en implementación de soluciones en open source (software libre). En la actualidad estoy a cargo de la gestión de proyectos para la capacitación y servicios de implementación open source de la empresa Conocimiento Libre. Asi como sustento el cargo de la administración y editor en jefe del portal y medios sociales https://conocimientolibre.mx

Compruebe también

¿Iptables?, el firewall preferido en Linux