Estos días Linux se está poniendo de moda de nuevo. No sé por qué realmente, tal vez el proyecto Raspberry PI, para la automatización y orquestación de Linux es muy útil, o muchas otras razones. El hecho es que todo el mundo quiere aprender y dominar Linux. También me pareció interesante cómo la gente está compartiendo una amplia documentación sobre cómo crear un NAS DYI utilizando hardware de bajo costo + Linux. El punto aquí es que el 99% de ellos sólo comparten la parte de compartir medios, no importa si es usando Samba o NFS, y a menudo se olvidan de los bloques de construcción de cualquier almacenamiento. Por supuesto, si el usuario final se preocupa un poco por los datos que almacena, le encantaría tener al menos una configuración RAID por software barata.

Para aquellos que no sepan lo que es RAID, aquí. ¿Qué significa todo esto? Pues que tendremos múltiples copias de nuestros trozos de datos repartidos por muchos discos, con lo que conseguiremos redundancia de datos en caso de fallo. Por supuesto, hay que profundizar en el tema RAID. No todas las configuraciones funcionan igual, se comportan igual y protegen igual. No digas que no te lo advertí.

Para este post. Esto quiere ser una rápida y sucia hoja de trucos sobre RAID por software con Linux. Vamos desde la conexión y detección de discos, hasta el punto de montaje y el mantenimiento del estado a través de reinicios. Para los medios de comunicación o el intercambio de archivos, buscar alrededor de Internet, habrá un montón de información.

Así que, vamos a conectar un montón de discos a nuestro sistema Linux y ver qué pasa:

1

Lo que significa que conectamos 3 HDDs a esta máquina. Los detecta como sdb, sdc y sdd. Por supuesto que los usaremos. El siguiente paso es crear particiones primarias en ellos:

2

Usando la herramienta fdisk, creamos una partición primaria en /dev/sdb , por lo que nos referiremos a ella como /dev/sdb1 de ahora en adelante. A continuación, repite la operación para las otras 2:

3

Nuestros tres discos están listos. Ahora necesitamos crear el dispositivo virtual que unirá estos 3 discos, junto con el modo RAID de nuestra elección. Así:

4

Ahora tenemos nuestro RAID 5 configurado usando estos discos. Ahora, por supuesto, lo que tenemos es sólo un dispositivo de bloque. Necesitamos un sistema de archivos en él:

5

¿Un punto de montaje tal vez? Buena idea si queremos usarlo, ¿no?

6

Ya hemos terminado. Tras un reinicio, tendremos nuestro RAID montado de nuevo en el directorio elegido y listo para usar. Fijaos en una cosa: he cambiado /dev/md0 por /dev/md127. Resulta que tras el reinicio el kernel de Linux cambia el identificador /dev/md para liberar los números inferiores y lo mueve a los valores superiores. Suele ir con numeración correlativa pero por si quieres comprobar el número dado tras el reinicio:

7

Este fichero resumen del sistema de ficheros proc te dará el número /dev/md asociado a los discos duros que incluiste como miembros RAID. Aquí vemos todavía /dev/md0 porque no reinicié esta caja.

Si queremos comprobar el estado del RAID:

8

Aquí tenemos toda la información relacionada con esta configuración RAID. Fijaos en la línea de Estado y el resumen de discos de abajo, estos cambiarán dependiendo del estado real. Digamos que un disco está roto, veremos algo como:

9

¿Veis la diferencia? Después de que el dmesg diga que falta un disco, podemos ver en los detalles del mdadm el nuevo estado de nuestro RAID. Por supuesto, reemplazar el disco lo antes posible es el mejor curso de acción. Así que digamos que necesitamos reemplazarlo. Por supuesto necesitaremos pasar por la conexión y creación de particiones:

10

Y, el HDD se une a la configuración RAID:

11

Podemos ver que después de añadir este nuevo disco a la matriz, se iniciará automáticamente la recuperación de la matriz. Es decir, calculará las sumas de comprobación y copiará los trozos de datos donde sea necesario para recuperar completamente la redundancia que teníamos antes del fallo.

Una última nota. En caso de desmantelamiento, lo que significa que ya no utilizaremos la matriz, los datos o los discos, se recomienda una buena política y procedimiento de eliminación. Necesitaremos al menos retirar el RAID y borrar el superbloque de esta forma:

mdadm --stop /dev/md0
mdadm --zero-superblock /dev/sdb
mdadm --zero-superblock /dev/sdc
mdadm --zero-superblock /dev/sdd

El procedimiento de eliminación del hardware depende de ti. Hasta la vista.