RAID (Español)

Redundant Array of Independent Disks (Matriz Redundante de Discos Independientes, siglas en inglés RAID) es una tecnología de almacenamiento que combina varios componentes de unidades de disco —normalmente unidades de disco o particiones de los mismos— en una unidad lógica. Dependiendo de la implementación de RAID, la unidad lógica puede ser un sistema de archivos o una capa transparente adicional que puede contener varias particiones. Los datos se distribuyen a través de las unidades de una las muchas maneras que hay, llamadas #Niveles RAID, dependiendo del nivel de redundancia y del rendimiento requeridos. El nivel RAID elegido, por lo tanto, va a depender de si lo que se quiere es prevenir la pérdida de datos en caso de un fallo del disco duro, aumentar el rendimiento o una combinación de ambos.

Esta traducción de RAID fue revisada el 2019-09-30. Si existen cambios puede actualizarla o avisar al equipo de traducción.

En este artículo se explica qué es RAID y cómo crear/administrar una matriz RAID por software utilizando mdadm.

Niveles RAID

A pesar de la redundancia implícita en la mayoría de los niveles de RAID, RAID no garantiza que los datos estén seguros. Un RAID no protegerá los datos si el equipo se quema, es robado o fallan varios discos duros a la vez. Además, instalar un sistema con RAID es un proceso complejo que puede destruir datos.

Niveles RAID estándar

Hay muchos niveles de RAID, sírvase encontrar a continuación los más comúnmente usados.

RAID 0
Utiliza striping para combinar discos. A pesar de que no proporciona redundancia (es decir, la posibilidad de recuperar o reconstruir los datos almacenados), todavía se considera RAID. Lo que si hace, sin embargo, es proporcionar un gran beneficio de velocidad. Si el aumento de la velocidad vale la pena ante la posibilidad de pérdida de datos (para la partición swap, por ejemplo), elija este nivel de RAID. En un servidor, las matrices RAID 1 y RAID 5 son las más apropiadas. El tamaño de un dispositivo de bloques de una matriz RAID 0 equivale al tamaño de la partición más pequeña que la compone de entre el número de particiones integrantes.
RAID 1
Es el nivel RAID más simple: replicación pura. Al igual que con otros niveles de RAID, solo tiene sentido si las particiones están en diferentes unidades de discos físicos. Si una de esas unidades falla, el dispositivo de bloque proporcionado por la matriz RAID va a seguir funcionando con normalidad. El ejemplo que se utiliza es RAID 1 para todo, excepto swap y los datos temporales. Tenga en cuenta que con una implementación por software, el nivel de RAID 1 es la única opción para la partición de arranque, porque los gestores de arranque, que leen la partición de arranque, no entienden de RAID, pero una partición integrante de RAID 1 puede ser leída como una partición normal. El tamaño de un sistema RAID 1 equivale a la dimensión de la partición más pequeña que lo compone.
RAID 5
Requiere 3 o más unidades físicas, y proporciona la redundancia de RAID 1 en combinación con la velocidad y los beneficios del tamaño de RAID 0. RAID 5 utiliza striping, como RAID 0, pero también bloques de paridad de almacenaje distribuidos entre cada disco miembro. En el caso de que un disco falle, estos bloques de paridad se utilizan para reconstruir los datos en un disco de reemplazo. RAID 5 puede soportar la pérdida de uno de los discos miembros.
RAID 6
Requiere 4 o más unidades físicas, y proporciona los beneficios de RAID 5 pero con seguridad contra el fallo de dos unidades. RAID 6 también usa striping, como RAID 5, pero almacena dos bloques de paridad distintos distribuidos en cada disco miembro. En el caso de que falle un disco, estos bloques de paridad se utilizan para reconstruir los datos en un disco de reemplazo. RAID 6 puede soportar la pérdida de dos discos miembros. La robustez frente a errores de lectura irrecuperables es algo mejor, porque la matriz todavía tiene bloques de paridad cuando se reconstruye desde una sola unidad fallida. Sin embargo, dada la sobrecarga, RAID 6 es costoso y en la mayoría de las configuraciones RAID 10 en el diseño far2 (ver más abajo) proporciona mejores beneficios de velocidad y robustez, y por lo tanto es preferible.

Niveles RAID anidados

RAID 1+0
RAID1+0 es un RAID anidado que combina dos de los niveles estándar de RAID para obtener rendimiento y redundancia adicional. Se le conoce comúnmente como RAID10 , sin embargo, Linux MD RAID10 es ligeramente diferente de las capas RAID simples, ver más abajo.
RAID 10
RAID10 bajo Linux se basa en los conceptos de RAID1+0, sin embargo, implementa esto como una sola capa, con múltiples diseños posibles.
El diseño near X en los discos Y repite cada trozo X veces en franjas Y/2, pero no necesita X para dividir Y de manera uniforme. Los fragmentos se colocan en casi la misma ubicación en cada disco en el que se replican, de ahí el nombre. Puede funcionar con cualquier cantidad de discos, comenzando con 2. Near de 2 en 2 discos es equivalente a RAID1, near de 2 en 4 discos a RAID1+0.
El diseño far X en los discos Y está diseñado para ofrecer un rendimiento de lectura striped en una matriz replicada. Esto se logra dividiendo cada disco en dos secciones, por ejemplo, adelante y atrás, y lo que está escrito al principio del disco 1 se refleja al final del disco 2, y viceversa. Esto tiene el efecto de poder dividir las lecturas secuenciales, que es de donde RAID0 y RAID5 obtienen su rendimiento. El inconveniente es que la escritura secuencial tiene una penalización de rendimiento muy leve debido a la distancia que el disco necesita alcanzar hasta la otra sección del disco para almacenar la réplica. Sin embargo, RAID10 en el diseño de far 2 es preferible a RAID1+0 y RAID5 en capas siempre que las velocidades de lectura sean preocupantes y la disponibilidad/redundancia sea crucial. Sin embargo, todavía no es un sustituto de las copias de seguridad. Vea la página de wikipedia para más información.
Advertencia: mdadm no puede cambiar la forma de las matrices en diseños de far X, lo que significa que una vez que se haya creado la matriz, no podrá realizar mdadm --grow. Por ejemplo, si tiene una matriz RAID10 de 4x1 TB y desea cambiar a discos de 2 TB, su capacidad utilizable seguirá siendo de 2 TB. Para tales casos de uso, adhiérase al diseño near X.

Comparación de niveles RAID

Nivel RAIDRedundancia de datosUtilización de la unidad físicaRendimiento de lecturaRendimiento de escrituraUnidades mínimas
0100%nX

Máxima

nX

Máxima

2
150%Hasta nX si se leen múltiples procesos, de lo contrario 1X 1X2
567% - 94%(n−1)X

Superior

(n−1)X

Superior

3
650% - 88%(n−2)X(n−2)X4
10,far250%nX

Superior; a la par con RAID0 pero redundante

(n/2)X2
10,near250%Hasta nX si se leen múltiples procesos, de lo contrario 1X(n/2)X2

* Donde n es el standing multiplicado por el número de discos dedicados.

Implementación

Los dispositivos RAID pueden gestionarse de diferentes maneras:

RAID por software
Esta es la implementación más fácil, ya que no se basa en firmware y software propietarios para ser utilizado. La matriz es administrada por el sistema operativo, ya sea:
  • por una capa de abstracción (por ejemplo, mdadm);
  • por un gestor de volúmenes lógicos (por ejemplo, LVM);
  • por un componente de un sistema de archivos (por ejemplo, ZFS, Btrfs).
RAID por hardware
La matriz está gestionada directamente por una tarjeta de hardware dedicada instalada en el PC al que los discos se conectan directamente. La lógica RAID se ejecuta en un procesador de la placa base independientemente del procesador del equipo (CPU). Aunque esta solución es independiente de cualquier sistema operativo, este último requiere un controlador para poder funcionar correctamente con la controladora de RAID por hardware. La matriz RAID, o bien se puede configurar a través de una opción de la interfaz rom o, según el fabricante, con una aplicación dedicada, cuando se ha instalado el sistema operativo. La configuración es transparente para el kernel de Linux: no ve los discos por separado.
FakeRAID
Este tipo de RAID es llamado propiamente BIOS o RAID integrado en la placa base, pero es falsamente anunciado como RAID por hardware. La matriz está gestionada por controladoras pseudoRAID donde la lógica RAID se implementa en una opción de rom o en el propio firmware con un EFI SataDriver (en el caso de Unified Extensible Firmware Interface (Español)), pero no son completas controladoras de RAID por hardware con todas las funciones RAID implementadas. Por lo tanto, este tipo de RAID a veces se llama fakeRAID. disponible en los repositorios oficiales, se utilizará para suplir a estas controladoras. Algunos ejemplos de controladoras FakeRAID son: Intel Rapid Storage, JMicron JMB36x RAID ROM, AMD RAID, ASMedia 106x y NVIDIA MediaShield.

¿Qué tipo de RAID tengo?

Dado que el RAID por software se implementa por el usuario, este tipo de RAID es fácilmente conocido por el usuario.

Sin embargo, discernir entre fakeRAID y RAID por hardware verdadero puede ser más difícil. Los fabricantes no suelen distinguir correctamente estos dos tipos de RAID y siempre es posible falsear la publicidad. La mejor solución, en estos casos, es ejecutar la orden y mirar la salida para encontrar la controladora RAID. A continuación, realice una búsqueda para ver qué información puede definir dicha controladora RAID. Los controladores RAID por hardware aparecen en esta lista, pero las implementaciones de FakeRAID no. Además, los verdaderos controladores de RAID por hardware a menudo son bastante caros, por lo que si alguien personaliza el sistema, es muy probable que al elegir una configuración RAID por hardware haya un cambio muy notable en el precio del equipo.

Instalación

Instale disponible en los repositorios oficiales. mdadm se utiliza para la administración de RAID por software puro usando dispositivos de bloque plano: el hardware subyacente no ofrece ninguna lógica RAID, solo un suministro de discos. mdadm funcionará con cualquier colección de dispositivos de bloques. Incluso si son inusuales. Por ejemplo, se puede, pues, hacer un matriz RAID de una colección de memorias USB.

Preparar los dispositivos

Si el dispositivo está siendo reutilizado o repuesto de una matriz existente, borre cualquier información de configuración RAID antigua:

# mdadm --misc --zero-superblock /dev/<unidad>

o, si se va a eliminar una partición particular de una unidad:

# mdadm --misc --zero-superblock /dev/<partición>

Particionar los dispositivos

Es recomendable particionar los discos que se utilizarán en la matriz. Como la mayoría de los usuarios RAID seleccionan discos duros de >2 TB, es preferible y recomendable utilizar tablas de particionado GPT. Consulte Partitioning (Español) para obtener más información sobre la partición y las [[[Partitioning (Español)#Herramientas de particionado]] disposibles.

Tabla de particiones GUID

  • Después de crear las particiones, su GUID de tipo de partición debe ser A19D880F-05FC-4D3B-A006-743F0F84911E (puede asignarse seleccionando el tipo de partición en fdisk o en gdisk).
  • Si se emplea una matriz de discos más grande, considere asignar etiquetas de sistemas de archivos o etiquetas de particiones para que sea más fácil identificar un disco individual más tarde.
  • Se recomienda crear particiones que sean del mismo tamaño en cada uno de los dispositivos.

Master Boot Record

Para aquellos que creen particiones en discos duros con una tabla de particiones MBR, los ID de tipos de particiones disponibles para su uso son:

  • 0xFD para matrices raid autodetectadas ( en fdisk)
  • para datos sin sistema de archivos ( en fdisk)

Consulte Linux Raid Wiki:Partition Types para obtener más información.

Compilar la matriz

Utilice para compilar la matriz. Varios ejemplos se dan a continuación.

El siguiente ejemplo muestra la compilación de una matriz RAID 1 en el dispositivo 2:

# mdadm --create --verbose --level=1 --metadata=1.2 --raid-devices=2 /dev/md/MyRAID1Array /dev/sdb1 /dev/sdc1

El siguiente ejemplo muestra la compilación de una matriz RAID 5 con 4 dispositivos activos y 1 dispositivo de repuesto:

# mdadm --create --verbose --level=5 --metadata=1.2 --chunk=256 --raid-devices=4 /dev/md/MyRAID5Array /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 --spare-devices=1 /dev/sdf1
Sugerencia: --chunk se usa para cambiar el valor predeterminado del tamaño del fragmento. Consulte Chunks: la clave oculta para el rendimiento RAID para obtener más información sobre la optimización del tamaño del fragmento.

El siguiente ejemplo muestra la construcción de una matriz RAID10,far2 con 2 dispositivos:

# mdadm --create --verbose --level=10 --metadata=1.2 --chunk=512 --raid-devices=2 --layout=f2 /dev/md/MyRAID10Array /dev/sdb1 /dev/sdc1

La matriz se crea en el dispositivo virtual , ensamblada y lista para usar (en modo degradado). Se puede comenzar a usarla directamente al tiempo que mdadm resincroniza la matriz en segundo plano. Restaurar la paridad puede llevar mucho tiempo. Verifique el progreso con:

$ cat /proc/mdstat

Actualizar archivo de configuración

Por defecto, la mayoría de está comentada y contiene solo lo siguiente:

Esta directiva le dice a mdadm que examine los dispositivos a los que hace referencia y que ensamble tantas matrices como sea posible. Esto está bien si realmente desea iniciar todos las matrices disponibles y está seguro de que no se encontrarán superbloques inesperados (como después de instalar un nuevo dispositivo de almacenamiento). Un enfoque más preciso es agregar explícitamente las matrices a :

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

Esto resulta en algo como lo siguiente:

/etc/mdadm.conf
...
DEVICE partitions
...
ARRAY /dev/md/MyRAID1Array metadata=1.2 name=pine:MyRAID1Array UUID=27664f0d:111e493d:4d810213:9f291abe

Esto también hace que mdadm examine los dispositivos a los que hace referencia . Sin embargo, solo los dispositivos que tienen superbloques con un UUID de se ensamblan en matrices activas.

Consulte para obtener más información.

Ensamblar la matriz

Una vez que el archivo de configuración se ha actualizado, la matriz puede ser ensamblada usando mdadm:

# mdadm --assemble --scan

Formatear RAID con un sistema de archivos

La matriz ahora se puede formatear con un sistema de archivos como cualquier otro disco, basta tener en cuenta que:

Calcular el stride y stripe-width

Se requieren dos parámetros para optimizar la estructura del sistema de archivos para que se ajuste de manera óptima dentro de la estructura RAID subyacente: el «stride» y «stripe-width». Estos se derivan del tamaño del fragmentochunk») de RAID , el tamaño del bloque del sistema de archivos, y el número de «discos de datos».

El tamaño del fragmento (chunk) es una propiedad de la matriz RAID, decidida en el momento de su creación. El valor predeterminado actual de es 512 KiB. Se puede encontrar con :

# mdadm --detail /dev/mdX | grep 'tamaño del fragmento (chunk)'

El tamaño del bloque es una propiedad del sistema de archivos, decidido en su creación. El valor predeterminado para muchos sistemas de archivos, incluido ext4, es 4 KiB. Consulte para obtener detalles sobre ext4.

El número de «discos de datos» es el número mínimo de dispositivos necesarios en la matriz para reconstruirlo completamente sin pérdida de datos. Por ejemplo, este es N para una matriz raid0 de N dispositivos y N-1 para raid5.

Una vez que tenga estas tres cantidades, el «stride» y el «stripe-width» se pueden calcular utilizando las siguientes fórmulas:

stride = tamaño del fragmento / tamaño del bloque
stripe width = número de discos físicos de datos * stride
Ejemplo 1. RAID0

Ejemplo formateando con sistema de archivos ext4 con «stride» y «stripe-width» correctas:

  • Hipotética matriz RAID0 que se compone de 2 discos físicos.
  • El tamaño del fragmento es 64 KiB.
  • El tamaño del bloque es 4 KiB.

Stride = (tamaño fragmento (chunk)/tamaño bloque). En este ejemplo, la matemática es (64/4) por lo que stride = 16.

Stripe-width = (número de discos físicos de datos * stride). En este ejemplo, la matemática es (2*16) por lo que stripe-width = 32.

# mkfs.ext4 -v -L myarray -m 0.5 -b 4096 -E stride=16,stripe-width=32 /dev/md0
Ejemplo 2. RAID5

Ejemplo formateando con sistema de archivos ext4 con «stride» y «stripe-width» correctas:

  • Hipotética matriz RAID5 que se compone de 4 discos físicos; 3 discos de datos y 1 disco de paridad.
  • El tamaño fragmento (chunk) es 512 KiB.
  • El tamaño de bloque es 4 KiB.

Stride = (tamaño fragmento (chunk)/tamaño de bloque). En este ejemplo, la matemática es (256/4) por lo que stride = 64.

Stripe-width = (número de discos físicos de datos * stride). En este ejemplo, la matemática es (3*128) de modo que stripe-width = 384.

# mkfs.ext4 -v -L myarray -m 0.01 -b 4096 -E stride=128,stripe-width=384 /dev/md0

Para más información sobre «stride» y stripe-width, ver: Matemáticas RAID.

Nota: [del traductor]
  • Stride: es el número de posicionamiento en la memoria entre los comienzos de uno y otro de los sucesivos elementos de la matriz, se puede traducir por «banda», «tira» o «zancada».
  • Stride-width: es el tamaño o ancho de la zancada.
  • Chunk: es la masa «atómica» más pequeña de datos que puede ser escrita en los dispositivos, lo podríamos traducir por «porción», «trozo» o «fragmento».
Example 3. RAID10,far2

Ejemplo de formato a ext4 con el «stripe-width» y «stride» correctos:

  • La matriz hipotética RAID10 se compone de 2 discos físicos. Debido a las propiedades de RAID10 con el diseño far2, ambos cuentan como discos de datos.
  • El tamaño del fragmento es de 512 KiB.
  • El tamaño del bloque es de 4 KiB.

stride = tamaño de fragmento / tamaño de bloque. En este ejemplo, la matemática es 512/4, por lo que stride = 128.

stripe width = número de discos físicos de datos * stride. En este ejemplo, la matemática es 2*128, por lo que el «stripe-width» = 256.

# mkfs.ext4 -v -L myarray -m 0.01 -b 4096 -E stride=128,stripe-width=256 /dev/md0

Montar desde un CD live

Los usuarios que quieran montar la partición RAID desde un CD live, escriban:

# mdadm --assemble /dev/md<number> /dev/<disk1> /dev/<disk2> /dev/<disk3> /dev/<disk4>

Si su RAID 1, al que le falta una matriz de discos, se autodetectó erróneamente como RAID 1 (según ) y se informó como inactivo (según ), detenga primero la matriz:

# mdadm --stop /dev/md<number>

Instalar Arch Linux en RAID

Se debe crear la matriz RAID entre los pasos de particionar y formatear del proceso de instalación. En lugar de formatear directamente una partición para que sea su sistema de archivos raíz, ello se hará sobre la matriz RAID. Siga la sección #Instalación para crear la matriz RAID. Luego, continúe con el procedimiento de instalación hasta que se complete el paso pacstrap. Al usar arranque UEFI, consulte también EFI system partition (Español)#Partición ESP sobre RAID.

Actualizar archivo de configuración

Después de que el sistema base se haya instalado, el archivo de configuración por defecto, , debe ser actualizado, así:

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

Continuar con el proceso de instalación hasta que llegue al paso crear un entorno inicial ramdisk y, a continuación, siga en sección siguiente.

Configurar mkinitcpio

Nota: Esto debe hacerse en entorno chroot.

Añada a la sección HOOKS de para añadir soporte para mdadm directamente en la imagen initramfs inicial:

/etc/mkinitcpio.conf
...
 HOOKS=(base udev autodetect keyboard modconf block '''mdadm_udev''' filesystems fsck)
...

Si usa el hook con una matriz FakeRAID, se recomienda incluir mdmon en la matriz BINARIES:

Después regenere la imagen initramfs.

Configurar el gestor de arranque

Apunte el parámetro al dispositivo asignado. Por ejemplo:

root=/dev/md/MyRAIDArray

Si el arranque desde una partición RAID por software falla usando el método anterior de nodo de dispositivo del kernel, una forma alternativa es usar uno de los métodos de Persistent block device naming (Español), por ejemplo:

root=LABEL=Root_Label

Véase también GRUB (Español)#RAID.

Mantenimiento de RAID

Depuración

Es una buena práctica para que los datos funcionen con normalidad hacer una depuración para comprobar y corregir los errores. Dependiendo del tamaño/configuración de la matriz, una depuración puede durar varias horas en completarse.

Para iniciar una depuración de datos:

# echo check > /sys/block/md0/md/sync_action

La operación de verificación escanea las unidades para los sectores defectuosos y los repara automáticamente. Si encuentra sectores no defectuosos que contienen datos erróneos (los datos de un sector no concuerdan con los datos que otro disco nos indica que debería tener, por ejemplo, el bloque de paridad + los demás bloques de datos, nos haría pensar que este bloque de datos es incorrecto), entonces no se toma ninguna acción, pero el evento se registra (ver más abajo). Este «no hacer nada», permite a los administradores inspeccionar los datos en el sector y los datos que se producirían mediante la reconstrucción de los sectores con la información redundante, y escoger los datos correctos a mantener.

Como con muchas tareas/artículos relativos a mdadm, el estado de la limpieza se puede consultar mediante la lectura de.

Ejemplo:

Para detener con seguridad una depuración de datos cuya ejecución está en curso:

# echo idle > /sys/block/md0/md/sync_action

Cuando la depuración se ha completado, los administradores pueden comprobar cuántos bloques (si los hay) se han marcado como erróneos:

# cat /sys/block/md0/md/mismatch_cnt

Notas generales sobre la depuración

Es una buena idea configurar un trabajo cron como root para programar una limpieza periódica. Vea que puede ayudar con esto. Para realizar una limpieza periódica utilizando temporizadores systemd en lugar de cron. Consulte raid-check-systemdAUR que contiene el mismo script junto con los archivos de unidad de temporizador systemd asociados.

Notas sobre la depuración de RAID1 y RAID10

Debido al hecho de que RAID1 y RAID10 escriben en el kernel sin búfer, una matriz puede tener cuentas desajustadas sin 0 incluso cuando la matriz es saludable. Estos recuentos sin 0 solo existirán en áreas de datos transitorios en los que no suponen un problema. Sin embargo, no podemos discernir la diferencia entre una cuenta sin 0 respecto de datos transitorios, con un recuento sin 0 que signifique un verdadero problema. Este hecho es una fuente de falsos positivos en matrices RAID1 y RAID10. Sin embargo, a pesar de ello se recomienda realizar depuraciones regularmente con el fin de detectar y corregir los sectores erróneos que pueden estar presentes en los dispositivos.

Extracción de dispositivos de una matriz

Se puede eliminar un dispositivo de la matriz después de marcarlo como defectuoso:

# mdadm --fail /dev/md0 /dev/sdxx

Ahora quítelo de la matriz:

# mdadm -r /dev/md0 /dev/sdxx

Retire el dispositivo de forma permanente (por ejemplo, para utilizarlo de forma individual a partir de ahora). Emita las dos órdenes descritas anteriormente, y luego:

# mdadm --zero-superblock /dev/sdxx

Para dejar de usar una matriz:

  1. desmontar la matriz de destino;
  2. detener la matriz con: mdadm --stop /dev/md0;
  3. repetir las tres órdenes descritas al principio de esta sección en cada dispositivo;
  4. quitar la línea correspondiente de .

Adición de un nuevo dispositivo a una matriz

La adición de nuevos dispositivos con mdadm se puede hacer en un sistema en funcionamiento con los dispositivos montados. Particione el nuevo dispositivo usando el mismo diseño de uno de los que ya están en la matriz, como se mencionó anteriormente.

Ensamble la matriz RAID si no está ya ensamblada:

# mdadm --assemble /dev/md0 /dev/sda1 /dev/sdb1

Añada el nuevo dispositivo de la matriz:

# mdadm --add /dev/md0 /dev/sdc1

Esto no debería tomar mucho tiempo para que mdadm lo haga.

Dependiendo del tipo de RAID (por ejemplo, con RAID1), mdadm puede agregar el dispositivo como repuesto sin sincronizar los datos. Puede aumentar la cantidad de discos que utiliza RAID utilizando con la opción . Por ejemplo, para aumentar una matriz a cuatro discos:

# mdadm --grow /dev/md0 --raid-devices=4

Esto no debe llevarle mucho tiempo a mdadm. Una vez más, compruebe el progreso con:

# cat /proc/mdstat

Compruebe que el dispositivo se ha añadido, con la orden:

# mdadm --misc --detail /dev/md0

Incrementar tamaño de un volumen RAID

Si se instalan discos más grandes en una matriz RAID o se ha aumentado el tamaño de la partición, puede ser conveniente aumentar el tamaño del volumen RAID para llenar el espacio más grande disponible. Este proceso puede comenzar siguiendo primero las secciones anteriores relacionadas con el reemplazo de discos. Una vez que el volumen RAID se ha reconstruido en los discos más grandes, debe «agrandar» para llenar el espacio.

# mdadm --grow /dev/md0 --size=max

A continuación, las particiones presentes en el volumen RAID puede que necesiten ser redimensionadas. Consulte Partitioning (Español) para más detalles. Finalmente, será necesario cambiar el tamaño del sistema de archivos en la partición mencionada anteriormente. Si la partición se realizó con , esto se hará automáticamente. Si se utilizaron otras herramientas, desmonte y cambie el tamaño del sistema de archivos manualmente.

# umount /storage
# fsck.ext4 -f /dev/md0p1
# resize2fs /dev/md0p1

Cambiar los límites de velocidad de sincronización

La sincronización puede llevar un tiempo. Si la máquina no es necesaria para otras tareas, se puede aumentar el límite de velocidad.

Verifique el límite de velocidad actual.

# cat /proc/sys/dev/raid/speed_limit_max
200000

Aumente los límites.

# echo 400000 >/proc/sys/dev/raid/speed_limit_min
# echo 400000 >/proc/sys/dev/raid/speed_limit_max

Luego revise la velocidad de sincronización y el tiempo estimado de finalización.

# cat /proc/mdstat
 Personalities : [raid1]
 md0 : active raid1 sda3[2] sdb3[1]
       155042219 blocks super 1.2 [2/1] [_U]
       [>....................]  recovery =  1.3% (2136640/155042219) finish=158.2min speed=16102K/sec

 unused devices: <none>

Véase también sysctl#MDADM.

Monitorización

Una simple orden de una sola línea imprime el estado de los dispositivos RAID:

Observar estado con mdstat

# watch -t 'cat /proc/mdstat'

O preferiblemente usando

# tmux split-window -l 12 "watch -t 'cat /proc/mdstat'"

Seguimiento Entrada/Salida con iotop

El paquete muestra las estadísticas de entrada/salida para los procesos. Utilice esta orden para ver la Entrada/Salida para los hilos de raid.

# iotop -a -p $(sed 's, , -p ,g' <<<`pgrep "_raid|_resync|jbd2"`)

Seguimiento Entrada/Salida con iostat

La utilidad iostat del paquete muestra las estadísticas de entrada/salida para los dispositivos y las particiones.

 iostat -dmy 1 /dev/md0
 iostat -dmy 1 # todo

Correos sobre eventos

Un servidor de correo SMTP (sendmail) o al menos un agente de correo electrónico (sSMTP/msmtp) es necesario para lograr esto. Tal vez la solución más simple es utilizar que es muy pequeño (instala 0,08 MiB) y no requiere instalación.

Editar para definir la dirección de correo electrónico en la que se recibirán notificaciones.

Para probar la configuración:

# mdadm --monitor --scan --oneshot --test

mdadm incluye un servicio de systemd para llevar a cabo la tarea de control, por lo que en este punto, no tiene nada más que hacer. Si no configura un correo electrónico en , dicho servicio fallará. Si no desea recibir correos sobre eventos mdadm, el fallo puede ser ignorado; si no desea recibir las notificaciones ni los mensajes acerca del error, puede enmascarar la unidad.

Método alternativo

Para evitar la instalación de un servidor de correo SMTP o un expedidor de correo electrónico, puede utilizar la herramienta S-nail (no se olvide de configurarla) ya presente en el sistema.

Cree un archivo llamado con:

Y dele permisos de ejecución: chmod +x /etc/mdadm_warning.sh

A continuación, agregue esto a mdadm.conf

PROGRAM /etc/mdadm_warning.sh

Puede probar y activar el uso de la misma como en el método anterior.

Solución de problemas

Error: «invalid raid superblock magic»

Si está obteniendo el error «invalid raid superblock magic» al reiniciar y tiene otros discos duros adicionales que sean los componentes de la matriz, verifique que el orden de los discos duros es el correcto. Durante la instalación, los dispositivos RAID pueden ser HDD, HDE y HDF, pero durante el arranque pueden ser hda, hdb y hdc. Ajuste su línea del kernel en consecuencia.

Error: «kernel: ataX.00: revalidation failed»

Si de repente (después del reinicio, al cambiar la configuración del BIOS) experimenta mensajes de error como:

Feb  9 08:15:46 hostserver kernel: ata8.00: revalidation failed (errno=-5)

no significa necesariamente que una unidad esté rota. A menudo se encuentran enlaces de pánico en la web que indican lo peor. En una palabra, No Panic (que no cunda el pánico). Tal vez acaba de cambiar la configuración de APIC o ACPI en la BIOS o los parámetros del kernel de algún modo. Cámbielos de nuevo y debería funcionar bien. Generalmente, cambiar ACPI y/o apagar ACPI debe ayudar.

Iniciar matrices en solo lectura

Cuando se inicia una matriz md, el superbloque será escrito, y puede iniciarse la resincronización. Para comenzar en solo lectura, establecer el módulo del kernel con el parámetro start_ro. Cuando se establece, las nuevas matrices vendrán activadas un modo «auto-ro», que desactiva todas las entradas/salidas internas (actualizaciones de superbloque, resincronización, recuperación) y se pone automáticamente en «rw» cuando llega la primera solicitud de escritura.

Para establecer el parámetro en el arranque, añadir a la línea del kernel.

O establezca el parámetro al tiempo de cargar el módulo desde el archivo o directamente desde :

# echo 1 > /sys/module/md_mod/parameters/start_ro

Recuperación de una unidad rota o ausente en el raid

Se puede obtener el error mencionado anteriormente también cuando una de las unidades se rompe por cualquier razón. En ese caso, tendrá que forzar a raid a encender con un disco más corto. Escriba esta orden (modificar cuando sea necesario):

# mdadm --manage /dev/md0 --run

Ahora debería ser capaz de montarla de nuevo con algo como esto (si es que lo tenía en fstab):

# mount /dev/md0

Ahora el raid debería estar funcionando de nuevo y disponible para su uso, sin embargo, con un disco corto. Después, debe particionar el disco de la manera como se ha descrito anteriormente en la sección para preparar los dispositivos. Una vez hecho esto puede agregar el nuevo disco a la matriz escribiendo:

# mdadm --manage --add /dev/md0 /dev/sdd1

Si escribe:

# cat /proc/mdstat

es probable que vea que el raid ya está activo y en reconstrucción.

También puede actualizar su configuración (ver: #Actualizar archivo de configuración).

Benchmarking

Vea Wikipedia:es:Benchmark (informática).

Hay varias herramientas para la evaluación comparativa de un RAID. La mejora más notable es el aumento de la velocidad cuando varios subprocesos están leyendo desde el mismo volumen RAID.

Tiobench es un programa que mide las mejoras de rendimiento mediante la medición completa de Entrada/Salida de los hilos del disco.

analiza el tipo de acceso a la base de datos para uno o más archivos, y la creación, lectura y borrado de archivos pequeños que puede simular el uso de programas como Squid, INN, o el formato de e-mail Maildir. El programa ZCAV pone a prueba el rendimiento de diferentes zonas de un disco duro sin necesidad de escribir ningún dato en el disco.
NO debería ser utilizado para comparar un RAID, ya que proporciona resultados muy inconsistentes.

Véase también

mdadm

Hilos del foro

RAID con encriptación

gollark: I agree completely, andrew is isomorphic to the set ℂ.
gollark: Imagine boosting this instead of the [REDACTED].
gollark: I don't think I ever go around *manually* fiddling with tree structures (unless you count source code, which could be represented various different ways).
gollark: It's basically an infinite 2D grid of bad computers with 256B of RAM.
gollark: I made a "usable" esolang, for certain definitions of "usable".
This article is issued from Archlinux. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.