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.
ÍNDICE:
¿Qué es RAID?
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