Como crear un RAID por software en linux con mdadm

Hoy hemos querido extendernos con este artículo sobre como crear un RAID por software en linux con mdadm. Empezamos con la teoría.

¿Qué es un RAID?

Podemos definir un raid de discos como un grupo o matriz de discos independientes de hecho RAID es un acrónimo de Redundant Array of Indepent Disks. Los discos se unifican mediante software o hardware para redundar datos y/o utilizar toda la capacidad de cada disco en conjunto. Esto será más fácil de entender cuando definamos cada tipo de RAID más adelante.

Diferencia entre RAID por hardware y RAID por software

¿Qué es el RAID por software?

El RAID por software es como dice el nombre una aplicación que permite la creación de RAIDs a nivel lógico a partir de discos conectados a nuestro equipo. Este software crea un sistema de ficheros en el cual trabaja comportándose según el tipo de RAID configurado

¿Qué es el RAID por Hardware?

Un raid por hardware es un dispositivo físico que permite la creación de un RAID de discos.  Puede ser una tarjeta de expansión PCI o PCIE o bien esté integrada en la placa base, este hardware integra todo lo necesario para realizar un RAID sin utilizar el procesador ni la memoria RAM del sistema (como norma general), además puede integrar una caché. Esta caché puede agilizar las operaciones de lectura/escritura.

Cuales son sus principales diferencia y las ventajas de cada uno

  •  El RAID por hardware requiere hardware el cual conlleva un coste
  • Con el RAID por hardware en caso de fallar un disco, solo debemos insertar el disco nuevo y el normalmente se encarga de reconstruir el RAID sin ningún paso adicional (como norma general)
  • El RAID por software evita el el punto de fallo de una única tarjeta RAID. Si falla esta tarjeta el RAID no funcionará.
  • En los sistemas actuales ya no se nota tanto la diferencia de rendimiento respecto a los RAID por hardware ya que los procesadores son más potentes.
  • El RAID por hardware no utiliza recursos del procesador de la máquina anfitrión.

Niveles RAID más usados

· RAID 0 (Data Striping, Striped Volume)

Este raid toma la capacidad de los discos añadidos y la suma. Por ejemplo si tenemos 2 discos de 1TB con este RAID conseguiremos un volumen de 2TB. Si los discos son de distintas capacidades, siempre toma la más baja para utilizarla, al igual que las RPM (revoluciones por minuto) del disco. Es decir, si tenemos un disco de 2TB a 7200RPM y otro de 1TB a 5400RPM tendremos un volumen de 2TB a 5400RPM, es decir, volvemos a tener un volumen de 2TB pero más lento. Por eso es importante que los discos sean similares.

Por otro lado en este tipo de RAIDs prima el rendimiento pero no la seguridad, no hay redundancia de datos por lo que si un disco se rompe se corromperá el volumen.

raid-0

· RAID 1 (espejo)

Este RAID al igual que en el RAID anterior y en todos los RAID, los discos deben tener la misma capacidad para evitar desaprovechar discos. En esta modalidad de RAID se configura los dos discos en espejo, esto quiere decir que se replica todo el contenido del disco en otro disco por cada 2 discos 1 disco se dedica a redundar datos. Está recomendado para 2 discos. Este RAID tiene una ventaja añadida y son mayores velocidad de lectura multiusuario ya que pueden leerse datos de los dos discos. Sin embargo las escrituras se ralentizan ya que tienen que hacerse en ambos discos.

raid-1

· RAID 5

Este RAID es el más popular debido a su bajo coste. Con 3 discos se dispone del 75% de la capacidad de los discos aproximadamente. Requiere solamente un mínimo de 3 discos y soporta la pérdida por completo de un disco. La información se sirve en bloques distribuidos por el total de los discos por lo que a mas discos mas rendimiento también influye el tamaño de los discos cuanto mas grandes sean mas tiempo tarda en reconstruirse el RAID en caso de fallo de un disco. Este RAID protege contra los fallos distribuyendo el cálculo de paridad por el conjunto de los discos y así protegiendo contra posibles errores de hardware.

El punto flaco de este tipo de RAID está en que si falla un disco, hasta reponerlo el volumen queda desprotegido contra algún fallo de otro disco. Aquí es donde entran los discos Spare. Un disco spare es un disco de reserva para que entre “a formar parte del juego” cuando uno de los discos falle, de esta forma el numero de discos que pueden fallar es dos (mientras que el RAID no esté en procedo de reconstrucción cuando falle el segundo disco) De esta forma evitamos el punto de fallo mencionado antes. Cuando se añade el disco spare este tipo de RAID también se conoce como RAID 5E. Hay dos tipos de spare: “Standby spare” y “hot spare”.

Si es un standby spare conlleva un proceso de reconstrucción durante la incorporación del disco spare sustituyendo al disco fallido sin embargo si es un hot spare este tiempo se minimiza.

raids-RAID-5

· RAID 6

Digamos que es la evolución del RAID 5, necesita como mínimo 4 discos. Funciona como RAID 5 pero con doble banda de paridad que también se reparte por todos los discos. Este tipo de RAID soporta el fallo total de hasta dos discos hasta durante la reconstrucción del RAID. Es menos utilizado debido a que cuando se utilizan pocos discos se desaprovecha capacidad de dos discos ya que no llegan al máximo teórico, con 4 discos el RAID tendrá cerca de la mitad de la capacidad de los discos. Cuantos más discos se utilicen en el RAID más capacidad de cada disco es utilizada.

Al igual que en el RAID 5, en RAID 6 se pueden añadir discos spare (se suele llamar RAID 6E) para soportar un tercer disco fallido (este ultimo puede fallar sin corromper el volumen siempre y cuando el raid no se esté reconstruyendo ).

raids-RAID-6

Niveles RAID anidados

Los niveles anidados de RAID es “RAID sobre RAID”. Es decir un RAID de un tipo montado sobre otro/s RAID de otro tipo. Así se pueden aprovechar las ventajas de cada RAID. Por ejemplo:

  • RAID 0+1 : Es un espejo de RAIDs 0, es decir si tenemos 4 discos, se crean 2 raids 0 con cada pareja de discos y con los 2 volúmenes RAID creados se crea un raid 1. De esta forma añadimos redundancia al RAID 0.
  • RAID 1+0: Es un RAID 0 de dos espejos (RAID 1). Se crean 2 RAID 1 con cada pareja de discos y con la pareja de RAID 1 creados, se crea un RAID 0.
  • RAID 50 (5+0): Para este RAID son necesarios un mínimo de 6 discos. Se crean con cada trío de discos un RAID 5. Después con cada RAID creado se crea un raid 0 con los RAID 5 creados. Con 6 discos se alcanza un total de aproximadamente el 65% de la capacidad de los discos.

Tipos de RAID más habituales son:

  • RAID 0: Para almacenamiento de datos no críticos de los cuales no importa su pérdida.
  • RAID 1: Para sistemas operativos, por ejemplo en servidores. Se instala normalmente el sistema Operativo sobre un RAID 1.
  • RAID 5: Almacenamiento en general por su bajo coste y buena fiabilidad.

Como montar en linux cada tipo de RAID con “mdadm”:

Un raid en linux es muy fácil de configurar utilizando los pasos que vamos a describir:

Paso1: Instalar mdadm: por defecto no suele estar instalado en Linux.

En debian y derivados:

apt-get install mdadm

En RedHat / CentOS y derivados:

yum install mdadm

install-mdadmPaso2: Hay que llenar de ceros los discos que se van a incluir en el RAID para evitar problemas con sistemas de ficheros existentes:

root@localhost:~# mdadm --zero-superblock /dev/hdb /dev/hdc

(Y tantos otros discos a utilizar) o con DD:

dd

Paso 3: Lo siguiente sería crear el RAID, básicamente sería con:

mdadm -C /dev/NOMBRERAID --level=raid[NUMERO] --raid-devices=NUMERO_DE_DISCOS /dev/DISCO1 /dev/DISCO2
  • RAID 0: Se seleccionan un mínimo de dos discos (como ejemplo vdc y vdd):
mdadm -C /dev/md0 --level=raid0 --raid-devices=2 /dev/vdc /dev/vdd

 

RAID-0-terminal

Como crear un RAID por software en linux con mdadm

  • RAID 1: EN el caso de RAID 1 lo mejor es seleccionar un máximo de 2 discos / volúmenes (ponemos como ejemplo igualmente vdc y vdd):

 

mdadm -C /dev/md0 --level=raid1 --raid-devices=2 /dev/vdc /dev/vdd

 

raid1

  • RAID 5: Como mínimo tres discos:

 

mdadm -C /dev/md0 --level=raid5 --raid-devices=3 /dev/vdb /dev/vdc /dev/vdd

 

raid5

Si queremos un disco spare (tenemos que añadir todos los discos incluso el spare al RAID desde el principio):

 

mdadm -C /dev/md0 --level=raid5 --raid-devices=3 --spare-devices=1 /dev/vdb /dev/vdc /dev/vdd /dev/vde

 

 

  • RAID 6: Como mínimo 4 discos

 

mdadm -C /dev/md0 --level=raid5 --raid-devices=4 /dev/vdb /dev/vdc /dev/vdd /dev/vde

 

Y con spares:

 

mdadm -C /dev/md0 --level=raid5 --raid-devices=4 --spare-devices=1 /dev/vdb /dev/vdc /dev/vdd /dev/vde /dev/vdf

 

 

En caso de fallar un disco de un RAID solo debemos extraerlo e insertar el nuevo disco y cuando introduzcamos el nuevo disco  (mirando el log del sistema de /var/log/messages) ejecutamos:

 

mdadm --add /dev/RAID /dev/NUEVO_DISCO

 

En caso de querer parar un RAID:

 

mdadm --stop /dev/md0 && mdadm --remove /dev/md0
Y para consultar el estado:

cat /proc/mdstat

Y esto ha sido todo sobre como crear un RAID por software en linux con mdadm.

Si te ha gustado el artículo deja tu comentario y/o comparte en tus redes sociales.

¡Nos vemos!

6 thoughts on “Como crear un RAID por software en linux con mdadm

  1. JORGE HUMBERTO FAJARDO

    Que sucede si ya hay un disco 1 TB montado y esta en CENTOS 8 con aplicaciones y plataformas lista para entrar a produccion. Se puede colocar el otro disco para RAID1 y se inicia o toca realizar primero duplicacion de disco y luego montar el RAID…. de antemano gracias por su respuesta

    • Gerardo G. Urtiaga

      ¿Ese disco de 1TB es parte de un RAID por software ya? Si es así y el RAID está configurado con 2 discos o mas no hay problema se puede añadir. Si no es parte de un RAID todavía o el RAID no estaba configurado para dos dispositivos, se debe crear un RAID 1 para dos dispositivos en el otro disco (solo añadiendo el disco vacio). Lo siguiente sería montar y transferir los datos a disco del RAID, borrar particiones del disco que no esta en el RAID (el que tenia originalmente los datos) y añadir ese disco al RAID.

Deja una respuesta