Sistema de discos RAID en Linux

RAID o “Redundant Array of Indetendet Drives” es un sistema que permite el almacenamiento de datos distribuido entre múltiples disco duros, este sistema proporciona mayor fiabilidad de datos, mayor transferencia y protección frente a fallos.

Existen varios tipos de RAID, los más usados son:

  • RAID nivel 0: También llamado “Striping”, está orientado a mejorar el rendimiento I/O repartiendo la información entre los discos que pertenecen al RAID. La capacidad del RAID es la suma total de los discos y no proporciona tolerancia a fallos.
  • RAID nivel 1: También llamado “Mirroring”, proporciona tolerancia a fallos escribiendo la misma información en ambos discos. Mejora la lectura de información. La capacidad del RAID es igual a la capacidad del menor de los discos.
  • RAID nivel 4: Utiliza un disco como disco de paridad para evitar la pérdida de datos, el resto de información se reparte entre todos los discos. La capacidad es la suma de todos los discos menos la de uno de ellos.
  • RAID nivel 5: A diferencia del RAID nivel 4 la paridad esta repartida entre los discos por lo que mejora la tolerancia a fallos permitiendo el fallo de uno de los discos. La capacidad es la suma de todos los discos menos la de uno de ellos.
  • RAID nivel 10: Es un conjunto de discos RAID 1+0. Como mínimo hace falta 4 discos. Mejora el rendimiento I/O y dispone de protección a fallos. Utilizado para altas tasas de transferencia de datos.
  • RAID Lineal: Es un conjunto de discos que forman un disco virtual. Los datos son escritos en el primer miembro y hasta que no está lleno no empieza por el segundo. Los procesos de lectura se benefician al estar la información en varios discos.

Los RAID pueden ser por Hardware o por Software y cada uno de ellos tiene un mínimo de discos para poder crearlo.

En la implementación por Hardware el sistema operativo visualiza el RAID como un disco por lo que se simplifica la configuración a nivel de sistema.

Para la implementación de un RAID por Software en Linux se utiliza el software mdadm

Implementación RAID a través de mdadm

En primera instancia deberemos instalar el software mdadm a través de yum en RedHat o get en Debian. El software de RAID además de las utilidades carga el módulo en el Kernel md_mod. Una vez instalado podremos verificarlo con el siguiente comando:

# mdadm -V

mdadm

Los pasos a seguir para la creación de un RAID son:

  • Conectar los discos y comprobar que el sistema los detecta
  • Crear un raid con mdadm
  • Actualizar la configuración del RAID /etc/mdadm/mdadm.conf
  • Actualizar el disco RAM initrd
  • Formatear la unidad y montarla
  • Actualizar el fichero que monta automáticamente las unidades /etc/fstab

Conectamos los disco y comprobamos que el equipo los detacta:

# lsblk

lsblk

Creamos el raid con el comando mdadm y lo comprobamos:

# mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sda /dev/sdb /dev/sdc

mdadm

# cat /proc/mdstat

mdstat

Guardamos la configuración del RAID en el fichero de configuración:

# mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf

Actualizamos el disco ram inicial initrd

# update-initramfs -u

En este punto ya tenemos el raid creado, ahora los utilizaremos como si fuese un disco duro normal que hemos conectado. Creamos un sistema de ficheros para la unidad creada, por ejemplo ext4:

# mkfs.ext4 -F /dev/md0

mkfs

Montamos la unidad en un directorio previamente creado:

# mount /dev/md0 /mnt/md0

Y agregamos la siguiente línea al fichero /etc/fstab:

/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0

Finalmente, si mostramos la información de los discos se deberia ver de la siguiente forma:

lsblk