ArchiTecnologia

Aprendizaje abierto. Conocimiento libre.

ArchiTecnologia
CertificacionesLinuxLPITutorial

LPIC-2 Tema 204.1: Configuración RAID en Linux

Nueva entrada sobre las certificaciones LPIC-2. Comenzamos el tema 204 sobre administración avanzada de medios de almacenamiento. El tema 204.1 se centra en la configuración RAID en Linux, es decir, en la redundancia de los medios de almacenamiento.

Concretamente, se evaluará los conocimientos sobre la configuración e implementación del RAID (0, 1 y 5) por software. Para ello, se debe conocer las herramientas necesarias y todos los ficheros de configuración.

¿Qué es RAID?

Disco duro

RAID (Redundant Array of Independent Disks), o conjunto redundante de discos independientes, hace referencia a un grupo de medios de almacenamiento que se configuran de tal forma que se puede mejorar ciertas prestaciones y/o la fiabilidad.

Linux identifica con el código 0xfd a la partición RAID con autodetección usando persistent superblock.

Gracias a esta técnica se pueden agrupar espacios de almacenamiento para crear un único espacio virtual (constelación) para replicar o distribuir los datos, mejorar el funcionamiento del espacio de almacenamiento masivo, o para respaldo para prevenir pérdidas de datos por fallos eléctricos o mecánicos.

Tipos

Según el nivel de RAID, se pueden encontrar varios tipos:

  • Estándar: son los más comunes y básicos, como RAID0, RAID1, RAID5, etc. Estos son los que realmente nos interesan para las certificaciones.
  • Anidados: son niveles híbridos, pudiendo usar un conjunto RAID como subconjunto o elemento básico para otro sistema RAID. Algunos casos de anidados son RAID0+1 (RAID 10), RAID30, RAID50, etc. Por ejemplo, el RAID1+0 no es más que dos subconjuntos RAID1 que serían tratados como unidades de almacenamiento unitarias y enlazadas entre sí mediante un RAID0.
  • Propietarios: creados por algunas compañías como RAID1.5, RAID7, RAI S, Linux MD RAID 10, IBM ServerRAID 1E, Matrix RAID, RAIDZ, etc.

Los que nos interesan son los estándar, concretamente tres de ellos:

  • RAID0 o Stripped: es una distribución por bandas (bloques). En este caso, se combinan todos los medios de almacenamiento para crear una sola superficie de almacenamiento. Es decir, la capacidad total es la suma de las capacidades individuales de cada disco. Pero las lecturas y escrituras de datos se realizan en paralelo para mejorar el rendimiento en general. No se llenará primero el primer disco, luego el segundo, y así… sino que llena los discos por igual bloque a bloque. Pero, al no haber redundancia, si un disco duro se daña o se retira, se pierden los datos que contenía.
  • RAID1 o Mirrored: el modo espejo sí tiene redundancia. Se emplea para dos o más discos de igual capacidad (si se usan discos con distinta capacidad se iguala a la capacidad del menor de ellos). Es decir, no se suman las capacidades, sino que todo lo que se almacene en un disco duro se escribirá también en el segundo, haciéndose una copia de seguridad automáticamente. Por tanto, si uno de los dos discos falla, siempre tendrás los datos copiados en el otro. En cuanto al rendimiento, el de lectura es el rendimiento de lectura de ambos discos, mientras que el de escritura es el de solo un disco.
  • RAID5: es el método más empleado en servidores. Permite usar varios discos duros con redundancia. En este caso, se van almacenando datos de paridad que se van guardando en los distintos discos de la constelación. En caso de que un disco duro fallase, se podría salvar toda la información gracias a la paridad. Si fallan más no se podría recuperar.

Importante, estas configuraciones RAID sirven tanto para HDDs como para SSDs. Lo que no se aconseja es mezclar ambos en la misma constelación, ya que podría haber problemas.

Ficheros de configuración importantes

Para poder hacer una configuración RAID en Linux, sea el tipo que sea, deberías conocer los ficheros más importantes que se suelen emplear:

  • /etc/mdadm.conf o /etc/mdadm/mdadm.conf: su nombre proviene de Multiple Device Administrator, y es el fichero donde está la configuración RAID.
  • /proc/mdstat: es un fichero donde se puede comprobar el estado del sistema RAID. Puedes usar el concatenador para obtener dicha información.
  • /dev/mdn: siendo n un número, es como llama Linux al dispositivo RAID resultante de la configuración. Es decir, la agrupación de los dispositivos de almacenamiento serán designados así. Por ejemplo, /dev/md0.

Herramientas para la configuración RAID

Para poder configurar RAID en Linux, debes conocer la herramienta mdadm (no suele estar preinstalada en la distro). Aquí mostraré un ejemplo práctico de configuración para RAID1, pero sería igual para otros niveles:

Partiré del caso en el que tengas una distro instalada en /dev/sda y quieras usar dos discos /dev/sdb y /dev/sdc para la configuración RAID1. Ambos discos no están particionados y no tienen formato. Si ya estuvieran, podrías saltar algunos pasos.

#Primero hay que conocer los nombres de los medios que vas a usar
sudo fdisk -l

#Comprobamos que realmente son /dev/sdb y /dev/sdc y ahora creas la tabla de particiones MBR (msdos) o GPT (gpt)
sudo parted /dev/sdb mklabel msdos
sudo parted /dev/sdc mklabel msdos

#Crea una nueva partición en los medios
sudo fdisk /dev/sdb

---->Pulsa n para crear una nueva partición
---->Pulsa p para seleccionar partición primaria
---->Pulsa 1 para crear /dev/sdb1
---->Persiona INTRO para seleccionar el primer sector por defecto
---->Presiona INTRO para elegir el último sector por defecto y ocupar todo el disco
---->Pulsa p para imprimir info de la partición
---->Pulsa t para cambiar el tipo de partición (generalmente será Linux)
---->Introduce fd para configurar la partición OxFD (RAID autodetección)
---->Pulsa p otra vez para volver a comprobar el tipo de partición
---->Pulsa w para aplicar los cambios

#Repite los pasos para el otro dispositivo... 
sudo fdisk /dev/sdc

#Instala en tu distro mdadm. Para Debian/Ubuntu y derivados, Fedora/CentOS/RHEL y derivados, openSUSE/SUSE y derivados, y Arch respectivamente
sudo apt install mdadm
sudo yum install mdadm
sudo zypper install mdadm
sudo pacman -S mdadm

#Examina los dos medios que vas a usar (veás que son 0xFD pero que no tienen configuración RAID aún)
sudo mdadm --examine /dev/sdb /dev/sdc
sudo mdadm --examine /dev/sdb1 /dev/sdc1

#Crear el RAID1. Puedes usar tanto --level=mirror o --level=1. Si necesitas otro tipo de RAID solo cambia esto
sudo mdadm --create /dev/md0 --level=mirror --raid-devices=2 /dev/sdb1 /dev/sdc1

#Ahora se ha creado el dispositivo RAID /dev/md0 con ambas particiones. Puedes comprobar su estado
cat /proc/mdstat
sudo mdadm --detail /dev/md0
sudo mdadm --examine /dev/sdb1 /dev/sdc1

#Es el momento de formatear con e FS que quieras. En este caso ext4
sudo mkfs.ext4 /dev/md0

#Crear un punto de montaje para el sistema RAID
sudo mkdir /mnt/raid1
sudo mount /dev/md0 /mnt/raid1

#Es importante que guardes tu configuración RAID1 en /etc/mdadm.conf o /etc/mdadm/mdadm.conf
sudo mdadm --detail --scan --verbose | sudo tee -a /etc/mdadm/mdadm.conf

#Puedes probar a crear un fichero dentro y ver cómo se copiará en ambos discos
cd /mnt/raid1
touch prueba

#Podrías retirar el disco duro /dev/sdb y ver que sigue estando disponible
cat /mnt/raid1/prueba

#Es importante también generar una nueva imagen initramfs
sudo update-initramfs -u

#Si quieres que se monte automáticamente, puedes agregar esta línea en /etc/fstab
/dev/md0   /mnt/raid1   ext4   defaults   0   0

#Imagina que un disco duro falla, y que es sdb. Puedes ejecutar lo siguiente para poder proceder a retirar el medio físico y sustituirlo
sudo mdadm /dev/md0 –-fail /dev/sdb1 –-remove /dev/sdb1

#Si quieres volver a agregar un nuevo disco duro para sustituir el retirado (que ha fallado supuestamente)
sudo mdadm --manage /dev/md0 --add /dev/sdb1

#Puedes parar temporalmente el sistema RAID
sudo mdadm -S /dev/md0

#Para volverlo a poner en marcha puedes probar con
sudo mdadm -As /dev/md0

#En caso de que lo anterior no funcione porque falta algún disco prueba
sudo mdadm -R /dev/md0

#También puedes crear un disco de reemplazo por si alguno falla, que se seleccione automáticamente otro. En este caso /dev/sde1
sudo mdadm --create /dev/md0 --raid-devices=2 /dev/sdb1 /dev/sdc1 –x /dev/sde1 --level=1 --spare-group=grupo_reemplazo

#Para eliminar la configuración RAID
sudo mdadm --remove /dev/md0

#Una vez eliminada, también deberías eliminar la configuración de mdadm.conf y de fstab

Isaac

Apasionado de la computación y la tecnología en general. Siempre intentando desaprender para apreHender.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Si continuas utilizando este sitio aceptas el uso de cookies. más información

Los ajustes de cookies de esta web están configurados para "permitir cookies" y así ofrecerte la mejor experiencia de navegación posible. Si sigues utilizando esta web sin cambiar tus ajustes de cookies o haces clic en "Aceptar" estarás dando tu consentimiento a esto.

Cerrar