Tabla de Contenidos
204.1 Configuring RAID
Pertenece a LPI Topic 204: Advanced Storage Device Administration
- Weight: 3
- Description: Candidates should be able to configure and implement software RAID. This objective includes using and configuring RAID 0, 1 and 5.
- Key Knowledge Areas:
- Software raid configuration files and utilities
- Terms and Utilities:
mdadm.confmdadm/proc/mdstat- partition type
0xFD
RAID
RAID (Redundant Array of Independent Disks) es una solución de bajo coste que nos permite utilizar un conjunto de discos, que pueden ser de diferentes tipos y tamaños, para crear volúmenes más grandes o más rápidos, en función de nuestras necesidades.
Se dice de bajo coste porque sale más barato coger varias unidades de menor tamaño que una muy grande.
En algunos casos usaremos el concepto de paridad, que es la posibilidad de usar discos para almacenar información de comprobación que evitará la pérdida de datos.
Generalmente tenemos 2 tipos de RAID:
- RAID por Software
- RAID por Hardware
En entornos de producción lo normal es utilizar cabinas de almacenamiento con configuraciones RAID por Hardware. Es decir, toda la gestión del RAID la realiza una controladora (hardware) RAID.
En función del nivel o tipo de RAID conseguiremos más velocidad de lectura/escritura o seguridad.
RAID 0
También llamado Striping.
Distribuye datos entre dos o más discos sin paridad (no hay redundancia) creando un volumen único.
Mejora el rendimiento, pero no aporta seguridad (no hay paridad).
Lo podemos crear con discos de diferentes tamaños. Pero la cantidad de espacio utilizado será la del disco más pequeño.
Espacio disponible: suma de los discos.
Problema: si se estropea uno de los discos, perdemos toda la información porque perdemos el acceso a la estructura de ficheros.
RAID 1
También conocido como Mirroring. Es de los más utilizados.
Se crea una copia exacta de un conjunto de datos en dos o más discos.
- Bajo rendimiento (la información se tiene que escribir en dos discos).
- Con tolerancia a fallos, que garantiza la seguridad de los datos.
- Espacio disponible: mitad del espacio total.
RAID 4
Tiene los beneficios de un RAID 0 (velocidad de acceso a los datos) y RAID 1 (redundancia).
Se necesitan mínimo tres discos con uno de paridad, más un disco opcional de spare (reserva).
Los discos spare son discos que podemos conectar al RAID, pero no está en uso. Si algún disco falla, podemos activarlo y que se convierta en un nuevo disco del RAID. De esta manera no tendríamos que parar la máquina para añadir un nuevo disco. Esto nos daría tiempo para más adelante sí añadir otro disco que sería el nuevo de spare.
Si un disco falla, con el disco de paridad podemos reconstruir el RAID.
Espacio disponible: total – disco paridad – (spare)
RAID 5
A diferencia del RAID 4, la paridad es distribuida en todos los discos.
Necesitamos mínimo 3 discos para construir un RAID 5 más un disco opcional de spare.
Si un disco falla, con el disco de paridad podemos reconstruir el RAID.
Espacio disponible: total – 1 – (spare)
Linear RAID
Equivalente al RAID 0, pero no distibuye la info entre todos los discos, sino que los llena secuencialmente y no pasa al siguiente hasta haber llenado el anterior.
Tiene la ventaja del RAID 0 de hacer volúmenes más grandes con varios discos pero sin la mejora de rendimiento.
- Espacio disponible: suma de los discos.
RAID 10
La combinación entre RAID 0 (rendimiento) y RAID 1 (seguridad)
RAID 10 es una buena elección para cuando buscamos rendimiento y seguridad.
Si queremos un volumen total de 2 TB, necesitaríamos al menos 4 discos de 1 TB porque tendríamos cada disco de 1 TB formando RAID 1 (mirror) y entre esos dos RAID 1 (que dan 1 TB de almacenamiento cada uno), se montaría un RAID 0 final de 2 TB
- Espacio disponible: mitad del tamaño real de discos (4 TB en discos físicos para lograr 2 TB de volumen de almacenamiento).
Uso de RAID
El RAID por hardware precisa una controladora instalada en la máquina que se encarga de gestionar los volúmenes, presentándolos al sistema como si fuesen discos sencillos, de modo que es transparente para el sistema. El sistema no se encarga de la gestión del RAID.
El RAID por software gestiona los volúmenes a nivel de kernel y a través de la herramienta mdadm, por lo que el sistema si que tiene que ver con la gestión de los volúmenes. Esta opción es bastante popular porque es rápido de implementar y sistemas como Linux lo llevan de forma nativa.
mdadm
Herramienta para la gestión de volúmenes RAID por software. Funciona como un servicio (mdadm-raid.service en systemd)
Se instala mediante el paquete mdadm
mdadm --acción volumen –l nivel –n numero_discos dispositivos
Acciones:
create: monta un nuevo RAIDassemble: reconstriuir un RAID preexistentebuild: monta un RAID sin escribir los superbloques con la información del array. Se usa para recuperargrow: modifica un RAID, añadiendo o quitando discosmisc: operaciones vais sobre el RAiD
Para listar los dispositivos de bloques (almacenamientos) detectados por el sistema podemos utilizar el comando lsblk
- nivel: nivel o tipo de RAID
- volumen: nombre del volumen RAID.
- dispositivos: dispositivos de almacenamiento separados por espacios que se van a usar een el RAID
Para crear un nuevo array, primero hay que crear particiones y formatear cada uno de los discos que formarán parte de él con el sistema de ficheros correspondiente al RAID mediante fdisk, comando t (cambiar el tipo de partición) y el código fd (Linux raid autodetect)
Suponiendo que tenemos 3 discos, vamos a crear un RAID 5:
Los dispositivos configurados como RAID en Linux son detectados por el Kernel como /dev/mdX
Ejemplo:
mdadm –-create /dev/md0 –l 5 –n 3 /dev/sdc1 /dev/sdd1 /dev/sde1
En el fichero /proc/mdstat podemos ver informacion sobre el estado del RAID.
mdadm –D /dev/mdX nos permite conocer el estado y la naturaleza de un RAID desconocido. Si acabamos de usar mdadm para crear un nuevo RAID, ahí podremos ver el progreso de la construcción del RAID.
Una vez que tenemos el dispositivo, procedemos a formatearlo y a montarlo:
# mkfs -t ext4 /dev/md0 # mount /dev/md0 /mnt
También podemos particionar el volumen y luego formatear las particiones. Los nombres de las particiones serán del tipo md0p1, md0p2, etc.
Si queremos que la unidad RAID se monte al inicio, habrá que incluirla en /etc/fstab
Configurar RAID (modo alternativo)
En vez de utilizar la herramienta mdadm, podemos especificar toda la configuración en el archivo /etc/raidtab y usar las herramientas mkraid, raidstart y raidstop
Ejemplo de /etc/raidtab:
raiddev /dev/md0
raid-level 0
nr-raid-disks 2
persistent-superblock0
chunk-size 8
device /dev/sdd1
raid-disk 0
device /dev/sde1
raid-disk 1
Tests
Un servidor tiene 3 discos de 80GB cada uno y debe gestionar una base de datos con 4 millones de registros de 30KB cada uno. La mejor configuración para este servidor, en cuanto a rendimiento, configurabilidad y flexibilidad sería:
- LVM sobre un RAID5
LVM da la flexibilidad para gestionar los volúmenes, pero no seguridad.
¿Cuál es espacio utilizable en un RAID 5 de 5 unidades de 18GB con uno dedicado a spare?
- 90 GB - 36 GB = 54 GB
Suma total de los discos (90 GB) - tamaño de la unidad de paridad (18 GB) - tamaño de la unidad de spare (18 GB)
¿Qué pasaría si dos discos de un RAID fallan a la vez en un RAID4 o RAID5?
- RAID4 o RAID5 nos permiten que falle 1 disco ya que con el de paridad y un nuevo disco (o usando el de spare) podríamos recuperar la información, pero si falla más de uno no tenemos esa información para poder recuperarnos. Perderíamos el acceso a la información.
