Por Félix Molinuevo, AXR Global ::: Fecha creación: 20200322
El RAID por software con mdadm es excelente en Linux, tiene un altísima confiabilidad a la vez que es más versátil que un RAID por hardware. Hoy se consiguen discos de más de 2TB relativamente baratos, con lo que se pueden armar unidades MD confiables y grandes.
Sin embargo, hay que tener en cuenta que el particionamiento de esos discos ya no puede ser MBR, y tendrá que ser GPT. Asimismo, no se puede utilizar el método habitual de inicio de las BIOS, ahora legacy, sino que se debe utilizar UEFI, y realizar la instalación adecuándola a ello.
UEFI es complicado, y entre otros inconvenientes graves, lo peor es que no soporta RAID. Entonces, para que esa instalación de Linux sea resiliente a fallas de disco, se debe tener en cuenta una serie de procesos simples, pero imprescindibles.
Se ejemplificará la instalación de un Debian Buster utilizando dos discos de 4TB, con particiones separadas según recomendaciones estándares para varios directorios específicos, en RAID1 cada una.
Se debe seguir los pasos habituales hasta llegar al particionado. Allí realizar el particionamiento teniendo en cuenta de dejar como primer partición, una para GRUB, formato BIOS boot partition (EF02, GRUB bootloader) de 1MB de tamaño. Con eso es suficiente.
Luego particionar el resto del primer disco según se necesite para la utilidad que se le dará al servidor. Por ejemplo, si será servidor de archivos, quizá convenga dejar el mayor espacio para /srv; mientras que si se dedica a correo electrónico, será necesario ese espacio destinarlo a /var.
Cada partición debe ser de tipo Linux RAID (FD00). Por ejemplo, podría ser algo como:
Number Start (sector) End (sector) Size Code Name 1 2048 4095 1024.0 KiB EF02 2 4096 8392703 4.0 GiB FD00 Linux RAID 3 8392704 16781311 4.0 GiB FD00 Linux RAID 4 16781312 25169919 4.0 GiB FD00 Linux RAID 5 25169920 33558527 4.0 GiB FD00 Linux RAID 6 33558528 8589934558 4.0 TiB FD00 Linux RAID
Luego repetir exactamente el mismo particionado para el segundo disco.
Terminado eso, se debe ir a Configurar RAID por software, creando las unidades utilizando las particiones desde la 2, de ambos discos.
Quedarán así cinco unidades MD, nombradas desde la md0 a la md4. Terminar la configuración de RAID por software, lo cual llevará otra vez al menú de selección de puntos de montaje.
Se debe elegir la primer unidad para la raíz (/); la segunda para /tmp; la tercera para /usr; la siguiente para /var, y la más grande para /srv. Por supuesto que la última tardará varias horas en sincronizar, dependiendo de la velocidad de los discos y de la calidad de la controladora de discos.
Se puede continuar la instalación del sistema operativo, aunque la sincronización de discos no haya terminado. Incluso se puede reiniciarlo sin inconvenientes. Sí se recomienda esperar a que termine la sincronización antes de ponerlo en producción, por obvias razones de confiabilidad y rendimiento.
El último paso es instalar GRUB en la unidad de disco primaria, por ejemplo /dev/sda.
Luego de reiniciado el equipo, instalar GRUB en la unidad secundaria, por ejemplo /dev/sdb.
El último paso es copiar la partición que contiene los datos de inicio de la BIOS, la primera, al disco secundario, pues no están en RAID:
dd if=/dev/vda1 of=/dev/vdb1
Con esto se tendrá en ambos discos la información necesaria para que arranque el sistema operativo.
Se lo puede probar en ambiente de pruebas antes de colocar el servidor en producción, simplemente desconectando el primer disco, y probando si inicia sólo con el segundo.
Comprobado que inicie, reconectar el primer disco, y agregar las correspondientes particiones a cada una de las unidades RAID:
mdadm /dev/md0 --add /dev/sda2 mdadm /dev/md1 --add /dev/sda3 mdadm /dev/md2 --add /dev/sda4 mdadm /dev/md3 --add /dev/sda5 mdadm /dev/md4 --add /dev/sda6
Se tendrá que aguardar a que termine la sincronización de las cinco unidades MD, pero ya se habrá confirmado que todo el sistema funciona adecuadamente, y se podrá establecer un procedimiento en caso de falla real de alguno de los discos.