Cómo crear matrices RAID con mdadm en Ubuntu 22.04

Introducción

La utilidad mdadm se puede utilizar para crear y gestionar matrices de almacenamiento utilizando las capacidades de RAID por software de Linux. Los administradores tienen una gran flexibilidad para coordinar sus dispositivos de almacenamiento individuales y crear dispositivos de almacenamiento lógico que tengan características de rendimiento o redundancia superiores.

En esta guía, realizarás diferentes configuraciones de RAID que se pueden establecer utilizando un servidor Ubuntu 22.04.

Prerrequisitos

Para seguir los pasos de esta guía, necesitarás:

  • A non-root user with sudo privileges on an Ubuntu 22.04 server. To learn how to set up an account with these privileges, follow our Ubuntu 22.04 initial server setup guide.
  • A basic understanding of RAID terminology and concepts. To learn more about RAID and what RAID level is right for you, read our introduction to RAID article.
  • Múltiples dispositivos de almacenamiento en bruto disponibles en tu servidor. Los ejemplos en este tutorial demuestran cómo configurar varios tipos de matrices en el servidor. Como tal, necesitarás algunos discos para configurarlos.
  • Dependiendo del tipo de matriz, necesitarás dos a cuatro dispositivos de almacenamiento. Estos discos no necesitan estar formateados antes de seguir esta guía.

Información: Debido a la ineficiencia de las configuraciones de RAID en servidores virtuales privados, no recomendamos implementar una configuración de RAID en instancias de DigitalOcean. La eficiencia de la replicación de discos en el centro de datos hace que los beneficios de un RAID sean insignificantes, en comparación con una configuración en hardware baremetal. Este tutorial tiene como objetivo ser una referencia para una configuración de RAID convencional.

Restablecimiento de Dispositivos RAID Existentes (Opcional)

Puedes saltarte esta sección por ahora si aún no has configurado ningún conjunto. Esta guía presentará varios niveles de RAID diferentes. Si deseas seguir y completar cada nivel de RAID para tus dispositivos, probablemente querrás reutilizar tus dispositivos de almacenamiento después de cada sección. Esta sección específica Restablecimiento de Dispositivos RAID Existentes puede ser consultada para restablecer tus dispositivos de almacenamiento de componentes antes de probar un nuevo nivel de RAID.

Advertencia: Este proceso destruirá completamente el conjunto y cualquier dato escrito en él. Asegúrate de que estás trabajando en el conjunto correcto y de que has copiado cualquier dato que necesites conservar antes de destruir el conjunto.

Comienza encontrando los conjuntos activos en el archivo /proc/mdstat:

  1. cat /proc/mdstat
Output
Personalities : [raid0] [linear] [multipath] [raid1] [raid6] [raid5] [raid4] [raid10] md0 : active raid0 sdc[1] sdd[0] 209584128 blocks super 1.2 512k chunks unused devices: <none>

Luego desmonta el conjunto del sistema de archivos:

  1. sudo umount /dev/md0

Ahora detén y elimina el conjunto:

  1. sudo mdadm --stop /dev/md0

Encuentra los dispositivos que se utilizaron para construir el conjunto con el siguiente comando:

Advertencia:Ten en cuenta que los nombres /dev/sd* pueden cambiar en cualquier momento que reinicies. Verifícalos cada vez para asegurarte de que estás trabajando en los dispositivos correctos.

  1. lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
Output
NAME SIZE FSTYPE TYPE MOUNTPOINT sda 100G linux_raid_member disk sdb 100G linux_raid_member disk sdc 100G disk sdd 100G disk vda 25G disk ├─vda1 24.9G ext4 part / ├─vda14 4M part └─vda15 106M vfat part /boot/efi vdb 466K iso9660 disk

Después de descubrir los dispositivos utilizados para crear un conjunto, pon a cero su superbloque que contiene metadatos para la configuración de RAID. Poner a cero esto elimina los metadatos de RAID y los restablece a la normalidad:

  1. sudo mdadm --zero-superblock /dev/sda
  2. sudo mdadm --zero-superblock /dev/sdb

Se recomienda también eliminar cualquier referencia persistente al conjunto. Edite el archivo `/etc/fstab` y comente o elimine la referencia a su conjunto. Puede comentarlo insertando un símbolo de numeral `#` al principio de la línea, utilizando `nano` o su editor de texto preferido:

  1. sudo nano /etc/fstab
/etc/fstab
. . .
# /dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0

También, comente o elimine la definición del conjunto del archivo `/etc/mdadm/mdadm.conf`:

  1. sudo nano /etc/mdadm/mdadm.conf
/etc/mdadm/mdadm.conf
. . .
# ARRAY /dev/md0 metadata=1.2 name=mdadmwrite:0 UUID=7261fb9c:976d0d97:30bc63ce:85e76e91

Finalmente, actualice el `initramfs` nuevamente para que el proceso de arranque temprano no intente poner en línea un conjunto no disponible:

  1. sudo update-initramfs -u

A partir de aquí, debería estar listo para reutilizar los dispositivos de almacenamiento individualmente, o como componentes de un conjunto diferente.

Creación de un conjunto RAID 0

El conjunto RAID 0 funciona dividiendo los datos en trozos y distribuyéndolos entre los discos disponibles. Esto significa que cada disco contiene una parte de los datos y que varios discos se referenciarán al recuperar información.

  • Requisitos: Mínimo de 2 dispositivos de almacenamiento.
  • Beneficio principal: Rendimiento en términos de lectura/escritura y capacidad.
  • Cosas a tener en cuenta: Asegúrese de tener copias de seguridad funcionales. La falla de un solo dispositivo destruirá todos los datos en el conjunto.

Identificación de los Dispositivos Componentes

Para comenzar, encuentra los identificadores de los discos sin procesar que vas a utilizar:

  1. lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
Output
NAME SIZE FSTYPE TYPE MOUNTPOINT sda 100G disk sdb 100G disk vda 25G disk ├─vda1 24.9G ext4 part / ├─vda14 4M part └─vda15 106M vfat part /boot/efi vdb 466K iso9660 disk

En este ejemplo, tienes dos discos sin sistema de archivos, cada uno de 100 GB de tamaño. A estos dispositivos se les ha asignado los identificadores /dev/sda y /dev/sdb para esta sesión y serán los componentes sin procesar utilizados para construir el conjunto.

Creación del Conjunto

Para crear un conjunto RAID 0 con estos componentes, pásalos al comando mdadm --create. Deberás especificar el nombre del dispositivo que deseas crear, el nivel de RAID y el número de dispositivos. En este ejemplo de comando, nombrarás el dispositivo como /dev/md0 e incluirás los dos discos que formarán el conjunto:

  1. sudo mdadm --create --verbose /dev/md0 --level=0 --raid-devices=2 /dev/sda /dev/sdb

Confirma que el RAID se creó correctamente revisando el archivo /proc/mdstat:

  1. cat /proc/mdstat
Output
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] md0 : active raid0 sdb[1] sda[0] 209584128 blocks super 1.2 512k chunks unused devices: <none>

Esta salida revela que el dispositivo /dev/md0 fue creado en la configuración RAID 0 utilizando los dispositivos /dev/sda y /dev/sdb.

Creación y Montaje del Sistema de Archivos

A continuación, crea un sistema de archivos en el conjunto:

  1. sudo mkfs.ext4 -F /dev/md0

Luego, crea un punto de montaje para adjuntar el nuevo sistema de archivos:

  1. sudo mkdir -p /mnt/md0

Puedes montar el sistema de archivos con el siguiente comando:

  1. sudo mount /dev/md0 /mnt/md0

Después, verifica si el nuevo espacio está disponible:

  1. df -h -x devtmpfs -x tmpfs
Output
Filesystem Size Used Avail Use% Mounted on /dev/vda1 25G 1.4G 23G 6% / /dev/vda15 105M 3.4M 102M 4% /boot/efi /dev/md0 196G 61M 186G 1% /mnt/md0

El nuevo sistema de archivos está ahora montado y accesible.

Guardando el Diseño del Conjunto

Para asegurarte de que el conjunto se reensamble automáticamente al inicio, tendrás que ajustar el archivo /etc/mdadm/mdadm.conf. Puedes escanear automáticamente el conjunto activo y añadir el archivo con lo siguiente:

  1. sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf

Posteriormente, puedes actualizar el initramfs, o sistema de archivos RAM inicial, para que el conjunto esté disponible durante el proceso de inicio temprano:

  1. sudo update-initramfs -u

Agrega las nuevas opciones de montaje del sistema de archivos al archivo /etc/fstab para el montaje automático en el inicio:

  1. echo '/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab

Tu conjunto de RAID 0 ahora se ensamblará y montará automáticamente en cada inicio.

Ahora has terminado con la configuración de tu conjunto RAID. Si deseas probar un RAID diferente, sigue las instrucciones de reinicio al principio de este tutorial para proceder con la creación de un nuevo tipo de conjunto RAID.

Creando un conjunto RAID 1

El tipo de conjunto RAID 1 se implementa mediante la duplicación de datos en todos los discos disponibles. Cada disco en un conjunto RAID 1 recibe una copia completa de los datos, lo que proporciona redundancia en caso de fallo de un dispositivo.

  • Requisitos: Un mínimo de 2 dispositivos de almacenamiento.
  • Beneficio principal: Redundancia entre dos dispositivos de almacenamiento.
  • Aspectos a tener en cuenta: Dado que se mantienen dos copias de los datos, solo la mitad del espacio en disco será utilizable.

Identificación de los dispositivos componentes

Para empezar, encuentra los identificadores de los discos en bruto que vas a utilizar:

  1. lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
Output
NAME SIZE FSTYPE TYPE MOUNTPOINT sda 100G disk sdb 100G disk vda 25G disk ├─vda1 24.9G ext4 part / ├─vda14 4M part └─vda15 106M vfat part /boot/efi vdb 466K iso9660 disk

En este ejemplo, tienes dos discos sin sistema de archivos, cada uno de 100 GB de tamaño. Estos dispositivos han sido asignados con los identificadores /dev/sda y /dev/sdb para esta sesión y serán los componentes en bruto que utilizarás para construir el conjunto.

Creando el conjunto

Para crear un conjunto RAID 1 con estos componentes, pásalos al comando mdadm --create. Deberás especificar el nombre del dispositivo que deseas crear, el nivel de RAID y el número de dispositivos. En este ejemplo de comando, nombrarás el dispositivo como /dev/md0 e incluirás los discos que formarán el conjunto:

  1. sudo mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sda /dev/sdb

Si los dispositivos que estás utilizando no son particiones con la bandera boot habilitada, es probable que recibas la siguiente advertencia. Puedes responder con seguridad con y y continuar:

Output
mdadm: Note: this array has metadata at the start and may not be suitable as a boot device. If you plan to store '/boot' on this device please ensure that your boot-loader understands md/v1.x metadata, or use --metadata=0.90 mdadm: size set to 104792064K Continue creating array? y

La herramienta mdadm comenzará a duplicar los discos. Esto puede llevar algún tiempo, pero el conjunto se puede usar durante este proceso. Puedes supervisar el progreso de la duplicación revisando el archivo /proc/mdstat:

  1. cat /proc/mdstat
Output
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] md0 : active raid1 sdb[1] sda[0] 104792064 blocks super 1.2 [2/2] [UU] [====>................] resync = 20.2% (21233216/104792064) finish=6.9min speed=199507K/sec unused devices: <none>

En la primera línea resaltada, se creó el dispositivo /dev/md0 en la configuración RAID 1 utilizando los dispositivos /dev/sda y /dev/sdb. La segunda línea resaltada muestra el progreso de la duplicación. Puedes pasar al siguiente paso mientras se completa este proceso.

Creación y Montaje del Sistema de Archivos

A continuación, crea un sistema de archivos en el conjunto:

  1. sudo mkfs.ext4 -F /dev/md0

Luego, crea un punto de montaje para adjuntar el nuevo sistema de archivos:

  1. sudo mkdir -p /mnt/md0

Puedes montar el sistema de archivos ejecutando lo siguiente:

  1. sudo mount /dev/md0 /mnt/md0

Verifica si el nuevo espacio está disponible:

  1. df -h -x devtmpfs -x tmpfs
Output
Filesystem Size Used Avail Use% Mounted on /dev/vda1 25G 1.4G 23G 6% / /dev/vda15 105M 3.4M 102M 4% /boot/efi /dev/md0 99G 60M 94G 1% /mnt/md0

El nuevo sistema de archivos está montado y accesible.

Guardando el Diseño del Conjunto

Para asegurarte de que el conjunto se reensamble automáticamente al arrancar, debes ajustar el archivo /etc/mdadm/mdadm.conf. Puedes escanear automáticamente el conjunto activo y añadir el archivo con lo siguiente:

  1. sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf

Después, puedes actualizar el initramfs, o sistema de archivos RAM inicial, para que el conjunto esté disponible durante el proceso de arranque temprano:

  1. sudo update-initramfs -u

Añade las nuevas opciones de montaje del sistema de archivos al archivo /etc/fstab para montaje automático al arrancar:

  1. echo '/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab

Ahora tu conjunto RAID 1 se ensamblará y montará automáticamente en cada arranque.

Has terminado de configurar tu conjunto RAID. Si deseas probar un RAID diferente, sigue las instrucciones de reinicio al principio de este tutorial para proceder con la creación de un nuevo tipo de conjunto RAID.

Creando un Conjunto RAID 5

El tipo de arreglo RAID 5 se implementa mediante la distribución de datos entre los dispositivos disponibles. Un componente de cada banda es un bloque de paridad calculado. Si un dispositivo falla, el bloque de paridad y los bloques restantes se pueden utilizar para calcular los datos faltantes. El dispositivo que recibe el bloque de paridad se rota para que cada dispositivo tenga una cantidad equilibrada de información de paridad.

  • Requisitos: Un mínimo de 3 dispositivos de almacenamiento.
  • Beneficio principal: Redundancia con mayor capacidad utilizable.
  • Aspectos a tener en cuenta: Aunque la información de paridad se distribuye, se utilizará la capacidad de un disco completo para la paridad. RAID 5 puede experimentar un rendimiento muy pobre en un estado degradado.

Identificación de los Dispositivos Componentes

Para comenzar, encuentra los identificadores de los discos sin formato que vas a usar:

  1. lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
Output
NAME SIZE FSTYPE TYPE MOUNTPOINT sda 100G disk sdb 100G disk sdc 100G disk vda 25G disk ├─vda1 24.9G ext4 part / ├─vda14 4M part └─vda15 106M vfat part /boot/efi vdb 466K iso9660 disk

Tienes tres discos sin sistema de archivos, cada uno de 100 GB. Estos dispositivos han sido asignados con los identificadores /dev/sda, /dev/sdb, y /dev/sdc para esta sesión y serán los componentes crudos que utilizarás para construir el conjunto.

Creación del Conjunto

Para crear un conjunto RAID 5 con estos componentes, pásalos al comando mdadm --create. Tendrás que especificar el nombre del dispositivo que deseas crear, el nivel de RAID y el número de dispositivos. En este ejemplo de comando, nombrarás el dispositivo /dev/md0, e incluirás los discos que construirán el conjunto:

  1. sudo mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sda /dev/sdb /dev/sdc

La herramienta mdadm comenzará a configurar el conjunto. Utiliza el proceso de recuperación para construir el conjunto por razones de rendimiento. Esto puede llevar algún tiempo en completarse, pero el conjunto se puede usar durante este tiempo. Puedes monitorear el progreso de la sincronización revisando el archivo /proc/mdstat:

  1. cat /proc/mdstat
Output
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] md0 : active raid5 sdc[3] sdb[1] sda[0] 209582080 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [UU_] [>....................] recovery = 0.9% (957244/104791040) finish=18.0min speed=95724K/sec unused devices: <none>

En la primera línea resaltada, se creó el dispositivo /dev/md0 en la configuración RAID 5 usando los dispositivos /dev/sda, /dev/sdb y /dev/sdc. La segunda línea resaltada muestra el progreso de la construcción.

Advertencia: Debido a la forma en que mdadm construye los conjuntos RAID 5, mientras el conjunto aún se está construyendo, el número de repuestos en el conjunto se informará de manera inexacta. Esto significa que debes esperar a que el conjunto termine de ensamblarse antes de actualizar el archivo /etc/mdadm/mdadm.conf. Si actualizas el archivo de configuración mientras el conjunto aún se está construyendo, el sistema tendrá información incorrecta sobre el estado del conjunto y no podrá ensamblarlo automáticamente al arrancar con el nombre correcto.

Puedes continuar con la guía mientras este proceso se completa.

Creación y Montaje del Sistema de Archivos

A continuación, cree un sistema de archivos en el conjunto:

  1. sudo mkfs.ext4 -F /dev/md0

Cree un punto de montaje para adjuntar el nuevo sistema de archivos:

  1. sudo mkdir -p /mnt/md0

Puede montar el sistema de archivos con lo siguiente:

  1. sudo mount /dev/md0 /mnt/md0

Compruebe si el nuevo espacio está disponible:

  1. df -h -x devtmpfs -x tmpfs
Output
Filesystem Size Used Avail Use% Mounted on /dev/vda1 25G 1.4G 23G 6% / /dev/vda15 105M 3.4M 102M 4% /boot/efi /dev/md0 197G 60M 187G 1% /mnt/md0

El nuevo sistema de archivos está montado y accesible.

Guardando la Disposición del Conjunto

Para asegurarse de que el conjunto se reensambla automáticamente al arrancar, debe ajustar el archivo /etc/mdadm/mdadm.conf.

Advertencia: Como se mencionó anteriormente, antes de ajustar la configuración, verifique nuevamente que el conjunto haya terminado de ensamblarse. Completar los siguientes pasos antes de que se construya el conjunto evitará que el sistema ensamble correctamente el conjunto al reiniciar.

Puede monitorear el progreso del reflejo revisando el archivo /proc/mdstat:

  1. cat /proc/mdstat
Output
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10] md0 : active raid5 sdc[3] sdb[1] sda[0] 209584128 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU] unused devices: <none>

Esta salida revela que la reconstrucción está completa. Ahora, puede escanear automáticamente el conjunto activo y agregar el archivo:

  1. sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf

Después, puede actualizar el initramfs, o sistema de archivos RAM inicial, para que el conjunto esté disponible durante el proceso de arranque temprano.

  1. sudo update-initramfs -u

Agrega las nuevas opciones de montaje del sistema de archivos al archivo /etc/fstab para el montaje automático durante el arranque:

  1. echo '/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab

Ahora tu conjunto RAID 5 se ensamblará y montará automáticamente en cada arranque.

Ahora has terminado con la configuración de tu conjunto RAID. Si deseas probar un RAID diferente, sigue las instrucciones de reinicio al principio de este tutorial para proceder con la creación de un nuevo tipo de conjunto RAID.

Creando un Conjunto RAID 6

El tipo de conjunto RAID 6 se implementa mediante la distribución de datos a través de los dispositivos disponibles. Se calculan bloques de paridad para dos componentes de cada franja. Si uno o dos dispositivos fallan, los bloques de paridad y los bloques restantes se pueden utilizar para calcular los datos faltantes. Los dispositivos que reciben los bloques de paridad se rotan para que cada dispositivo tenga una cantidad equilibrada de información de paridad. Esto es similar a un conjunto RAID 5, pero permite la falla de dos unidades.

  • Requisitos: Un mínimo de 4 dispositivos de almacenamiento.
  • Beneficio principal: Redundancia doble con mayor capacidad utilizable.
  • Aspectos a tener en cuenta: Aunque la información de paridad se distribuye, se utilizará la capacidad de dos discos para la paridad. RAID 6 puede experimentar un rendimiento muy pobre cuando está en un estado degradado.

Identificación de los Dispositivos Componentes

Para empezar, encuentra los identificadores de los discos crudos que vas a utilizar:

  1. lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
Output
NAME SIZE FSTYPE TYPE MOUNTPOINT sda 100G disk sdb 100G disk sdc 100G disk sdd 100G disk vda 25G disk ├─vda1 24.9G ext4 part / ├─vda14 4M part └─vda15 106M vfat part /boot/efi vdb 466K iso9660 disk

En este ejemplo, tienes cuatro discos sin sistema de archivos, cada uno de 100 GB de tamaño. Estos dispositivos han sido identificados como /dev/sda, /dev/sdb, /dev/sdc y /dev/sdd para esta sesión y serán los componentes crudos utilizados para construir el conjunto.

Creación del Conjunto

Para crear un conjunto RAID 6 con estos componentes, pásalos al comando mdadm --create. Debes especificar el nombre del dispositivo que deseas crear, el nivel de RAID y el número de dispositivos. En el siguiente ejemplo de comando, nombrarás el dispositivo como /dev/md0 e incluirás los discos que construirán el conjunto:

  1. sudo mdadm --create --verbose /dev/md0 --level=6 --raid-devices=4 /dev/sda /dev/sdb /dev/sdc /dev/sdd

La herramienta mdadm comenzará a configurar el conjunto. Utiliza el proceso de recuperación para construir el conjunto por razones de rendimiento. Esto puede llevar algún tiempo en completarse, pero el conjunto se puede utilizar durante este tiempo. Puedes monitorear el progreso del espejeo revisando el archivo /proc/mdstat:

  1. cat /proc/mdstat
Output
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] md0 : active raid6 sdd[3] sdc[2] sdb[1] sda[0] 209584128 blocks super 1.2 level 6, 512k chunk, algorithm 2 [4/4] [UUUU] [>....................] resync = 0.6% (668572/104792064) finish=10.3min speed=167143K/sec unused devices: <none>

En la primera línea destacada, se ha creado el dispositivo /dev/md0 en la configuración RAID 6 utilizando los dispositivos /dev/sda, /dev/sdb, /dev/sdc y /dev/sdd. La segunda línea destacada muestra el progreso de la construcción. Puedes continuar con la guía mientras este proceso se completa.

Creación y Montaje del Sistema de Archivos

A continuación, crea un sistema de archivos en el conjunto:

  1. sudo mkfs.ext4 -F /dev/md0

Crea un punto de montaje para adjuntar el nuevo sistema de archivos:

  1. sudo mkdir -p /mnt/md0

Puedes montar el sistema de archivos con lo siguiente:

  1. sudo mount /dev/md0 /mnt/md0

Verifica si el nuevo espacio está disponible:

  1. df -h -x devtmpfs -x tmpfs
Output
Filesystem Size Used Avail Use% Mounted on /dev/vda1 25G 1.4G 23G 6% / /dev/vda15 105M 3.4M 102M 4% /boot/efi /dev/md0 197G 60M 187G 1% /mnt/md0

El nuevo sistema de archivos está montado y accesible.

Guardando la Disposición del Conjunto

Para asegurarte de que el conjunto se reensamble automáticamente al inicio, tendrás que ajustar el archivo /etc/mdadm/mdadm.conf. Puedes escanear automáticamente el conjunto activo y agregar el archivo escribiendo:

  1. sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf

Después, puedes actualizar el initramfs, o sistema de archivos RAM inicial, para que el conjunto esté disponible durante el proceso de inicio temprano:

  1. sudo update-initramfs -u

Agregue las nuevas opciones de montaje del sistema de archivos al archivo /etc/fstab para montar automáticamente en el arranque:

  1. echo '/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab

Su matriz RAID 6 ahora se ensamblará y montará automáticamente en cada arranque.

Ahora ha terminado de configurar su RAID. Si desea probar un RAID diferente, siga las instrucciones de reinicio al principio de este tutorial para proceder con la creación de un nuevo tipo de matriz RAID.

Creando una matriz RAID 10 compleja

El tipo de matriz RAID 10 se implementa tradicionalmente creando una matriz RAID 0 con rayas compuesta por conjuntos de matrices RAID 1. Este tipo de matriz anidada brinda redundancia y alto rendimiento, a expensas de grandes cantidades de espacio en disco. La utilidad mdadm tiene su propio tipo de RAID 10 que proporciona el mismo tipo de beneficios con una mayor flexibilidad. No se crea anidando matrices, pero tiene muchas de las mismas características y garantías. Aquí utilizará el RAID 10 de mdadm.

  • Requisitos: Mínimo de 3 dispositivos de almacenamiento.
  • Beneficio principal: Rendimiento y redundancia.
  • Aspectos a tener en cuenta: La cantidad de reducción de capacidad para la matriz está definida por el número de copias de datos que elija mantener. El número de copias que se almacenan con el estilo RAID 10 de mdadm es configurable.

Por defecto, dos copias de cada bloque de datos se almacenarán en lo que se llama el diseño near. Los posibles diseños que dictan cómo se almacena cada bloque de datos son los siguientes:

  • near: El arreglo predeterminado. Las copias de cada fragmento se escriben consecutivamente al realizar el entrelazado, lo que significa que las copias de los bloques de datos se escribirán alrededor de la misma parte de varios discos.
  • far: La primera y las copias subsiguientes se escriben en diferentes partes de los dispositivos de almacenamiento en la matriz. Por ejemplo, el primer fragmento podría escribirse cerca del principio de un disco, mientras que el segundo fragmento se escribiría a la mitad en un disco diferente. Esto puede proporcionar algunas ganancias de rendimiento de lectura para discos giratorios tradicionales a expensas del rendimiento de escritura.
  • offset: Cada raya se copia y se desplaza en una unidad. Esto significa que las copias están desplazadas entre sí, pero aún están cerca una de la otra en el disco. Esto ayuda a minimizar la búsqueda excesiva durante algunas cargas de trabajo.

Puede obtener más información sobre estos diseños consultando la sección RAID10 de esta página de man:

  1. man 4 md

También puede encontrar esta página de man en línea.

Identificación de los Dispositivos Componentes

Para empezar, encuentra los identificadores de los discos en bruto que vas a utilizar.

  1. lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
Output
NAME SIZE FSTYPE TYPE MOUNTPOINT sda 100G disk sdb 100G disk sdc 100G disk sdd 100G disk vda 25G disk ├─vda1 24.9G ext4 part / ├─vda14 4M part └─vda15 106M vfat part /boot/efi vdb 466K iso9660 disk

En este ejemplo, tienes cuatro discos sin un sistema de archivos, cada uno de tamaño 100G. A estos dispositivos se les ha asignado los identificadores /dev/sda, /dev/sdb, /dev/sdc y /dev/sdd para esta sesión y serán los componentes sin formato utilizados para construir el conjunto.

Creando el Conjunto

Para crear un conjunto RAID 10 con estos componentes, pásalos al comando mdadm --create. Debes especificar el nombre del dispositivo que deseas crear, el nivel de RAID y el número de dispositivos. En el siguiente ejemplo de comando, nombrarás el dispositivo como /dev/md0 e incluirás los discos que construirán el conjunto:

Puedes configurar dos copias usando el diseño cercano al no especificar un diseño y número de copias:

  1. sudo mdadm --create --verbose /dev/md0 --level=10 --raid-devices=4 /dev/sda /dev/sdb /dev/sdc /dev/sdd

Si deseas utilizar un diseño diferente o cambiar el número de copias, tendrás que usar la opción --layout=, que toma un identificador de diseño y copia. Los diseños son n para cercano, f para lejano y o para desplazado. El número de copias a almacenar se agrega después.

Por ejemplo, para crear un conjunto que tenga tres copias en el diseño desplazado, el comando incluiría lo siguiente:

  1. sudo mdadm --create --verbose /dev/md0 --level=10 --layout=o3 --raid-devices=4 /dev/sda /dev/sdb /dev/sdc /dev/sdd

La herramienta mdadm comenzará a configurar el conjunto. Utiliza el proceso de recuperación para construir el conjunto por razones de rendimiento. Esto puede llevar algún tiempo en completarse, pero el conjunto se puede usar durante este tiempo. Puede monitorear el progreso de la duplicación revisando el archivo /proc/mdstat:

  1. cat /proc/mdstat
Output
Personalities : [raid6] [raid5] [raid4] [linear] [multipath] [raid0] [raid1] [raid10] md0 : active raid10 sdd[3] sdc[2] sdb[1] sda[0] 209584128 blocks super 1.2 512K chunks 2 near-copies [4/4] [UUUU] [===>.................] resync = 18.1% (37959424/209584128) finish=13.8min speed=206120K/sec unused devices: <none>

En la primera línea resaltada, el dispositivo /dev/md0 ha sido creado en la configuración RAID 10 usando los dispositivos /dev/sda, /dev/sdb, /dev/sdc y /dev/sdd. El segundo área resaltada muestra el diseño que se usó para este ejemplo (dos copias en la configuración cercana). El tercer área resaltada muestra el progreso en la construcción. Puede continuar la guía mientras este proceso se completa.

Creación y Montaje del Sistema de Archivos

A continuación, cree un sistema de archivos en el conjunto:

  1. sudo mkfs.ext4 -F /dev/md0

Cree un punto de montaje para adjuntar el nuevo sistema de archivos:

  1. sudo mkdir -p /mnt/md0

Puede montar el sistema de archivos con lo siguiente:

  1. sudo mount /dev/md0 /mnt/md0

Verifique si el nuevo espacio está disponible:

  1. df -h -x devtmpfs -x tmpfs
Output
Filesystem Size Used Avail Use% Mounted on /dev/vda1 25G 1.4G 23G 6% / /dev/vda15 105M 3.4M 102M 4% /boot/efi /dev/md0 197G 60M 187G 1% /mnt/md0

El nuevo sistema de archivos está montado y accesible.

Guardando el Diseño del Conjunto

Para asegurarte de que el conjunto se reensamble automáticamente al arrancar, deberás ajustar el archivo /etc/mdadm/mdadm.conf. Puedes escanear automáticamente el conjunto activo y añadir el archivo ejecutando lo siguiente:

  1. sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf

Después, puedes actualizar el initramfs, o sistema de archivos RAM inicial, para que el conjunto esté disponible durante el proceso de arranque temprano:

  1. sudo update-initramfs -u

Añade las nuevas opciones de montaje del sistema de archivos al archivo /etc/fstab para montar automáticamente al arrancar:

  1. echo '/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab

Con esto, tu conjunto RAID 10 se ensamblará y montará automáticamente en cada arranque.

Conclusión

En esta guía, aprendiste cómo crear varios tipos de conjuntos usando la utilidad de RAID de software mdadm de Linux. Los conjuntos RAID ofrecen algunas mejoras de redundancia y rendimiento interesantes sobre el uso de múltiples discos individualmente.

Una vez que hayas decidido el tipo de conjunto necesario para tu entorno y creado el dispositivo, puedes aprender cómo realizar la gestión diaria con mdadm. Nuestra guía sobre cómo gestionar conjuntos RAID con mdadm en Ubuntu puede ayudarte a empezar.

Source:
https://www.digitalocean.com/community/tutorials/how-to-create-raid-arrays-with-mdadm-on-ubuntu-22-04