Arreglos RAID en NVMe

Arreglos RAID en NVMe
En este artículo, hablaremos sobre las diferentes formas de organizar arreglos RAID y también mostraremos uno de los primeros controladores RAID de hardware que admite NVMe.

La diversidad de aplicaciones de la tecnología RAID se encuentra en el segmento de servidores. En el segmento de clientes, generalmente se utiliza exclusivamente RAID0 o RAID1 en dos discos.

En este artículo se ofrecerá un breve resumen de la tecnología RAID, una pequeña guía para crear arreglos RAID utilizando tres herramientas diferentes y una comparación del rendimiento de los discos virtuales al usar cada uno de los métodos.

¿Qué es RAID?

Wikipedia da una definición exhaustiva de la tecnología RAID:

RAID (en inglés. Conjunto Redundante de Discos Independientes — es una tecnología de virtualización de datos que combina varios dispositivos de almacenamiento físico en un módulo lógico para aumentar la resistencia a fallos y el rendimiento.

La configuración de los arreglos de discos y las tecnologías utilizadas dependen del nivel RAID. Los niveles de RAID están estandarizados en la especificación Formato Común de Datos de Disco RAID. Esta especificación describe muchos niveles de RAID, pero los más comunes son RAID0, RAID1, RAID5 y RAID6.

RAID0, o Rayas, es un nivel de RAID que combina dos o más discos físicos en uno lógico. El tamaño del disco lógico es igual a la suma de los tamaños de los discos físicos que componen el arreglo. En este nivel de RAID no hay redundancia, y la falla de un disco puede resultar en la pérdida de todos los datos en el disco virtual.

Nivel RAID1, o Espejo, crea copias idénticas de los datos en dos o más discos. El tamaño del disco virtual no excede el tamaño del disco físico más pequeño. Los datos en el disco virtual RAID1 estarán disponibles mientras al menos uno de los discos físicos del arreglo esté funcionando. El uso de RAID1 agrega redundancia, pero es una solución bastante costosa, ya que en arreglos de dos o más discos solo se dispone de la capacidad de uno.

Nivel RAID5 resuelve el problema del costo. Para crear un arreglo con nivel RAID 5 se necesitan al menos 3 discos, y este arreglo es resistente a la falla de un disco. Los datos en RAID 5 se almacenan en bloques con sumas de verificación. No hay una división estricta entre discos de datos y discos de sumas de verificación. Las sumas de verificación en RAID 5 son el resultado de la operación XOR aplicada a N-1 bloques, cada uno tomado de su propio disco.

Aunque los arreglos RAID aumentan la redundancia y proporcionan respaldo, no son adecuados para el almacenamiento de copias de seguridad.

Después de un breve recorrido por los tipos de arreglos RAID, podemos pasar a los dispositivos y programas que permiten recopilar y utilizar arreglos de discos.

Tipos de controladores RAID

Existen dos maneras de crear y usar arreglos RAID: hardware y software. Vamos a considerar las siguientes soluciones:

  • RAID de software de Linux.
  • Intel® Virtual RAID On CPU.
  • LSI MegaRAID 9460-8i.

Cabe destacar que la solución de Intel® funciona en chipset, lo que plantea la cuestión de si se trata de una solución de hardware o de software. Por ejemplo, el hipervisor VMWare ESXi considera VROC como software y no lo admite oficialmente.

RAID de software de Linux

Los arreglos RAID de software en la familia de sistemas operativos Linux son una solución bastante común tanto en el segmento cliente como en el servidor. Todo lo que se necesita para crear el arreglo es la utilidad mdadm y varios dispositivos de bloque. El único requisito que RAID de software de Linux impone a los dispositivos utilizados es que deben ser dispositivos de bloque accesibles para el sistema.

La ausencia de costos en hardware y software es una ventaja evidente de este enfoque. RAID de software de Linux organiza arreglos de discos utilizando el tiempo del procesador. La lista de niveles RAID soportados y el estado de los arreglos de discos actuales se puede ver en el archivo mdstat, que se encuentra en la raíz de procfs:

root@grindelwald:~# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid10]
unused devices:

El soporte para niveles RAID se agrega conectando el módulo de núcleo correspondiente, por ejemplo:

root@grindelwald:~# modprobe raid456
root@grindelwald:~# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4]
unused devices:

Todas las operaciones con arreglos de discos se realizan a través de la utilidad de línea de comandos mdadm. La construcción del arreglo de discos se realiza en un solo comando:

mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/nvme1n1 /dev/nvme2n1

Después de ejecutar este comando, el sistema tendrá un dispositivo de bloque /dev/md0, que representa un disco virtual.

Intel® Virtual RAID On CPU

Arreglos RAID en NVMeIntel® VROC Standard Hardware Key
Intel® Virtual RAID On CPU (VROC) es una tecnología de software y hardware para crear arreglos RAID basados en chipsets de Intel®. Esta tecnología está disponible principalmente para placas base que soportan procesadores Intel® Xeon® Scalable. VROC no está disponible por defecto. Para activarlo, es necesario instalar una clave de licencia de hardware VROC.

La licencia estándar de VROC permite crear arreglos de disco con niveles RAID 0, 1 y 10. La versión premium amplía esta lista al admitir RAID5.

La tecnología Intel® VROC en placas base modernas funciona junto con Intel® Volume Management Device (VMD), que proporciona la posibilidad de reemplazo en caliente para unidades con interfaz NVMe.

Arreglos RAID en NVMeIntel® VROC con licencia estándar La configuración de los arreglos se realiza a través de Setup Utility al iniciar el servidor. En la pestaña Avanzado se añade la opción Intel® Virtual RAID on CPU, donde se pueden configurar los arreglos de disco.

Arreglos RAID en NVMeCreación de un arreglo RAID1 en dos unidades
La tecnología Intel® VROC tiene sus «ases bajo la manga». Los arreglos de disco creados con VROC son compatibles con Linux Software RAID. Esto significa que el estado de los arreglos puede monitorearse en /proc/mdstat y administrarse a través de mdadm. Esta «característica» está oficialmente soportada por Intel. Después de construir RAID1 en el Setup Utility, se puede observar la sincronización de las unidades en el SO:

root@grindelwald:~# cat /proc/mdstat
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10]
md126 : active raid1 nvme2n1[1] nvme1n1[0]
      1855832064 blocks super external:/md127/0 [2/2] [UU]
      [>....................]  resync =  1.3% (24207232/1855832064) finish=148.2min speed=205933K/sec
      
md127 : inactive nvme1n1[1](S) nvme2n1[0](S)
      10402 blocks super external:imsm
       
unused devices: <none>

Cabe mencionar que no se pueden construir arreglos en VROC a través de mdadm (los arreglos creados serán Linux SW RAID), pero se pueden cambiar los discos en ellos y desmantelar los arreglos.

LSI MegaRAID 9460-8i

Arreglos RAID en NVMeAspecto del controlador LSI MegaRAID 9460-8i
El controlador RAID es una solución de hardware independiente. El controlador solo funciona con unidades conectadas directamente a él. Este controlador RAID admite hasta 24 unidades con interfaz NVMe. La compatibilidad con NVMe es lo que distingue a este controlador de muchos otros.

Arreglos RAID en NVMeMenú principal del controlador de hardware
Al utilizar el modo UEFI, la configuración del controlador se integra en Setup Utility. En comparación con VROC, el menú del controlador de hardware parece significativamente más complicado.

Arreglos RAID en NVMeCreación de RAID1 en dos discos.
Explicar la configuración de arreglos de discos en un controlador de hardware es un tema bastante delicado y podría dar lugar a un artículo completo. Aquí, simplemente nos limitaremos a crear RAID0 y RAID1 con la configuración predeterminada.

Los discos conectados al controlador de hardware no son visibles para el sistema operativo. En su lugar, el controlador "enmascara" todos los arreglos RAID como dispositivos SAS. Los dispositivos conectados al controlador, pero que no forman parte del arreglo de discos, no estarán disponibles para el sistema operativo.

root@grindelwald:~# smartctl -i /dev/sda
smartctl 7.1 2019-12-30 r5022 [x86_64-linux-5.4.0-48-generic] (compilación local)
Copyright (C) 2002-19, Bruce Allen, Christian Franke, www.smartmontools.org

=== INICIO DE LA SECCIÓN DE INFORMACIÓN ===
Proveedor:               AVAGO
Producto:              MR9460-8i
Revisión:             5.14
Cumplimiento:           SPC-3
Capacidad del usuario:        1,999,844,147,200 bytes [1.99 TB]
Tamaño del bloque lógico:   512 bytes
Tasa de rotación:        Dispositivo de estado sólido
ID de la unidad lógica:      0x000000000000000000000000000000
Número de serie:        00000000000000000000000000000000
Tipo de dispositivo:          disco
La hora local es:        Dom Oct 11 16:27:59 2020 MSK
Soporte SMART es:     No disponible - el dispositivo carece de capacidad SMART.

A pesar de estar enmascarados como dispositivos SAS, los arreglos NVMe funcionarán a la velocidad de PCIe. Sin embargo, esta característica permite arrancar desde NVMe en Legacy.

Comenzamos las pruebas del esquema de HA con el desarrollo de un

Cada uno de los métodos de organización de arreglos de discos tiene sus ventajas y desventajas físicas. Pero, ¿hay alguna diferencia en el rendimiento al trabajar con arreglos de discos?

Para lograr la máxima equidad, todas las pruebas se realizarán en el mismo servidor. Su configuración es:

  • 2x Intel® Xeon® 6240;
  • 12x DDR4-2666 16 GB;
  • LSI MegaRAID 9460-8i;
  • Intel® VROC Standard Hardware Key;
  • 4x Intel® SSD DC P4510 U.2 2TB;
  • 1x Samsung 970 EVO Plus M.2 500GB.

Los sujetos de prueba son los P4510, de los cuales la mitad está conectada a la placa base y la otra mitad a un controlador RAID. En el M.2 se ha instalado el sistema operativo Ubuntu 20.04, y las pruebas se realizarán utilizando fio versión 3.16.

Pruebas

Primero verificaremos las latencias al trabajar con el disco. La prueba se realiza en un solo hilo, con un tamaño de bloque de 4 KB. Cada prueba dura 5 minutos. Antes de comenzar, se establece none como programador de I/O para el dispositivo de bloque correspondiente. El comando fio es el siguiente:

fio --name=test --blocksize=4k --direct=1 --buffered=0 --ioengine=libaio  --iodepth=1 --loops=1000 --runtime=300  --rw= --filename=

De los resultados de fio, tomamos clat 99.00%. Los resultados se presentan en la tabla a continuación.

Lectura aleatoria, μs
Escritura aleatoria, μs

Disco
112
78

RAID SW de Linux, RAID0
113
45

VROC, RAID0
112
46

LSI, RAID0
122
63

RAID SW de Linux, RAID1
113
48

VROC, RAID1
113
45

LSI, RAID1
128
89

Además de las latencias al acceder a los datos, queremos ver el rendimiento de los almacenamientos virtuales y compararlo con el rendimiento del disco físico. Comando para ejecutar fio:

fio --name=test --blocksize=4k --direct=1 --buffered=0 --ioengine=libaio  --loops=1000 --runtime=300  --iodepth= --rw= --filename=

El rendimiento se mide en el número de operaciones de entrada y salida. Los resultados se presentan en la tabla a continuación.

Lectura aleatoria 1 hilo, IOPS
Escritura aleatoria 1 hilo, IOPS
Lectura aleatoria 128 hilos, IOPS
Escritura aleatoria 128 hilos, IOPS

Disco
11300
40700
453000
105000

RAID SW de Linux, RAID0
11200
52000
429000
232000

VROC, RAID0
11200
52300
441000
162000

LSI, RAID0
10900
44200
311000
160000

RAID SW de Linux, RAID1
10000
48600
395000
147000

VROC, RAID1
10000
54400
378000
244000

LSI, RAID1
11000
34300
229000
248000

Es fácil notar que el uso de un controlador de hardware aumenta las latencias y reduce el rendimiento en comparación con las soluciones de software.

Conclusión

El uso de soluciones de hardware para crear matrices de discos con dos discos parece poco razonable. Sin embargo, hay tareas donde el uso de controladores RAID está justificado. Con la llegada de controladores que soportan la interfaz NVMe, los usuarios tienen la posibilidad de utilizar SSD más rápidos en sus proyectos.

Arreglos RAID en NVMe

Solo los usuarios registrados pueden participar en la encuesta. Inicie sesión, por favor.

¿Utiliza soluciones RAID?

  • 29,6%Sí, soluciones de hardware 32

  • 50,0%Sí, soluciones de software 54

  • 16,7%No18

  • 3,7%RAID no es necesario 4

Han votado 108 usuarios. 14 usuarios se abstuvieron.

Fuente: habr.com

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster