Base de conocimientos · Servidores dedicados y VPS

Administración de RAID por software en Linux (Parte I)

Última actualización: 2019-02-03

Administración de RAID por software en Linux (Parte I)

RAID (Redundant Array of Independent Disks, matriz redundante de discos independientes) es una tecnología de almacenamiento y virtualización que comenzó a popularizarse a finales de la década de 1980. Combina varias unidades de disco físicas en una única unidad virtual lógica para mejorar el rendimiento y facilitar la redundancia. Los datos se distribuyen entre las unidades según el nivel de RAID. Aunque no sustituyen a las copias de seguridad, los niveles de RAID pueden ayudar a mantener su sistema en funcionamiento ante problemas habituales de hardware, como la pérdida de datos por fallos de disco o errores de lectura (de sector) irrecuperables.

RAID puede implementarse y administrarse mediante dispositivos de “bloques”, que pueden ser RAID por software (p. ej., mdadm de RAID por software de Linux), RAID por hardware (es decir, una tarjeta de hardware dedicada) o FakeRAID (también llamado RAID de BIOS o integrado en placa). Este artículo se centrará en el procedimiento para usar el RAID por software de Linux y su herramienta de administración, mdadm.
 
El RAID por software de Linux es un dispositivo de bloques que puede funcionar sobre la mayoría de los demás dispositivos: SATA, USB, IDE, SCSI o una combinación de ellos. Tenga en cuenta que la capa RAID no interviene en absoluto en la capa del sistema de archivos . Puede colocar un sistema de archivos en un dispositivo RAID, igual que en cualquier otro dispositivo de bloques.

 

Cómo funcionan los dispositivos de RAID por software

Los dispositivos de RAID por software deben considerarse discos o particiones de disco normales. Pueden "construirse" a partir de varios otros dispositivos de bloques.

En una implementación de RAID existen discos de repuesto o hot spares que no forman parte del conjunto RAID hasta que falla uno de los discos activos. Cuando se detecta el fallo de un dispositivo, este se marca como ‘faulty’ (defectuoso) y el conjunto comienza de inmediato la reconstrucción en el primer disco de repuesto disponible. Su sistema puede seguir funcionando durante un tiempo incluso con un disco defectuoso, ya que el repuesto ocupa su lugar. Si no hay ningún disco de repuesto disponible, la matriz funciona en modo 'degraded' (degradado).

Tenga en cuenta que los discos defectuosos siguen apareciendo y comportándose como miembros de la matriz. La capa RAID simplemente evita leerlos y escribir en ellos. Además, si necesita quitar un dispositivo de la matriz, recuerde marcarlo primero como ‘faulty’ (defectuoso) antes de retirarlo.

 

Creación de un dispositivo RAID basado en unidades SATA

Puede utilizar unidades completas como parte de una matriz RAID, pero conviene evitarlo si desea que las unidades sean de arranque. Lo que debe hacer es crear una partición en las unidades (mediante fdisk o Parted) con el tipo de partición establecido en ‘fd,’ la detección automática de RAID por software de Linux.

Después de crear una partición en cada unidad correspondiente (sda1, sdb1), ya puede crear el arreglo:

mdadm --create /dev/md0 -n 2 --level=1 /dev/sda1 /dev/sdb1

                Donde:

    • /dev/md0 - la ruta del dispositivo de su nuevo arreglo
    • -n 2  - el número total de unidades, que pueden clasificarse como de repuesto, activas o ausentes; una unidad ‘ausente’ requiere la opción adicional -f para funcionar
    • --level=<RAID level>- puede contener cualquiera de los siguientes valores:
      • uno de linear
      • raid0  O 0
      • stripe
      • raid1  O 1
      • mirror
      • raid4 OR 4
      • raid5 OR 5 
      • raid6 OR 6
      • raid10 OR 10
      • multipath OR mp
      • faulty
      • container
    • /dev/sda1, /dev/sdb1 - ruta de cada dispositivo componente

NOTA IMPORTANTE: Si desea arrancar desde un dispositivo RAID, coloque el código delcargador de arranque al inicio de la unidad física que se utilizará como componente subyacente del dispositivo RAID. Esto significa que, si utiliza/dev/sda1 como miembro de la matriz /dev/md0 y su unidad principal HDD/SSD está configurada como opción de arranque de la BIOS, debe elegir /dev/sda para el código del cargador de arranque . Una forma de hacerlo es ejecutando grub-install /dev/sda.

Después de crear un dispositivo RAID, puede utilizarlo como lo haría con una unidad local normal. Por ejemplo, puede usarlo como volumen físico del administrador de volúmenes lógicos (LVM) del kernel de Linux o crear un sistema de archivos en él.

Aunque los metadatos de RAID se almacenan en cada unidad componente, conviene guardar igualmente la configuración de su RAID para uso futuro. Esto le ayudará a supervisar y corregir los nombres de los dispositivos md; de lo contrario, obtendrá nombres como md126 y md127. Puede guardar el archivo de configuración ejecutando el siguiente comando: 


mdadm --detail --scan >> /etc/mdadm.conf

Para Ubuntu:
/etc/mdadm/mdadm.conf

 

Supervisión de un dispositivo RAID

Puede supervisar de forma proactiva el estado de un dispositivo RAID mediante --monitor en la herramienta mdadm. Si mdadm detecta un problema en el estado de una matriz, puede realizar numerosas acciones que usted especifique en la línea de comandos. Puede enviar un correo electrónico, ejecutar un programa determinado o enviar un mensaje al registro del sistema, entre otras. Consulte el manual en man mdadm (sección Monitor) para ver una lista de opciones.

La mayoría de las distribuciones de Linux incluyen scripts envoltorio para mdadm –monitor. CentOS / RHEL, por ejemplo, proporciona un servicio mdmonitor que puede configurar para que se inicie automáticamente con el sistema ejecutando chkconfig mdmonitor on.

Otra forma de comprobar el estado del dispositivo es consultar el archivo de texto /proc/mdstat para ver qué matrices reconoce el kernel y cuál es el estado de cada una.

 

Sustitución de una unidad componente de un dispositivo RAID

Para sustituir una unidad (p. ej., (/dev/sdb1) en una matriz RAID activa, primero el kernel debe marcarla como ‘faulty’ (defectuosa), es decir, marcada como (F) en el archivo /proc/mdstat. Si aún no está marcada como defectuosa, usted mismo deberá marcarla antes de extraerla. Para ello, ejecute mdadm /dev/md0 -f /dev/sdb1.

Una vez extraída la unidad, puede añadir otra como sustituta mediante mdadm /dev/md0 -a /dev/sdc1. Tenga en cuenta que puede realizar varias operaciones con este único comando, por ejemplo mdadm /dev/md0 -f /dev/sdb1 -r /dev/sdb1 -a /dev/sdc1.

Compruebe el contenido del /proc/mdstat archivo posteriormente para verificar que todo haya salido como se esperaba. La operación se realizó correctamente si mdadm no generó ningún mensaje de error durante la sustitución.

 

Destrucción de un dispositivo RAID

Puede haber ocasiones en las que necesite destruir por completo un dispositivo RAID para que los dispositivos subyacentes puedan ser utilizados por el sistema. Una situación en la que esto es posible es cuando dispone de un disco duro de repuesto con metadatos RAID preconfigurados y el kernel reconoce la matriz. En este caso, la matriz solo tiene un miembro y no es posible simplemente retirar la unidad individual.

Para destruir el dispositivo RAID, primero debe detener la matriz con mdadm -S /dev/md0. El siguiente paso es eliminar los metadatos de la partición sda1 ejecutando el comando mdadm --zero-superblock /dev/sda1. Recuerde poner a cero los metadatos de/dev/sda1 (no /dev/sda) a cero (0) si forma parte de una matriz.

 

Referencias:

← Todos los artículos de base de conocimientos

Tell us what you need

Compare available plans or describe your workload so we can discuss a suitable starting point.