Este artículo fue escrito por Nirmala Sundararajan, HPC y el laboratorio de innovación de AI, 2020 de abril
Las soluciones Dell EMC Ready para el almacenamiento de alta capacidad de HPC BeeGFS son una solución de almacenamiento de sistemas de archivos en paralelo de alto rendimiento y completamente compatible. Este blog analiza la arquitectura de la solución, la forma en que se ajusta para HPC rendimiento y presenta el rendimiento de I/O mediante comparaciones IOZone y aleatorias. Una solución de almacenamiento de alto rendimiento de BeeGFS basada en dispositivos NVMe se describe en este blog publicado durante el 2019 de noviembre. La arquitectura destaca el rendimiento y la solución que se describe aquí es una solución de almacenamiento de alta capacidad. Estas dos soluciones para BeeGFS son diferentes en términos de sus objetivos de diseño y casos de uso. La solución de alto rendimiento está diseñada como una solución de almacenamiento para grietas, una conexión a tierra para conjuntos de datos transitorios que, por lo general, no se conservan más allá de la vida útil del trabajo. La solución de alta capacidad utiliza Dell EMC cuatro arreglos ME4084 PowerVault para completar completamente con un total de 336 unidades y proporciona una capacidad cruda de 4 PB si está equipado con unidades SAS de 12 TB.
La solución Dell EMC Ready para el almacenamiento de alta capacidad de HPC BeeGFS consta de un servidor de administración, un par de servidores de metadatos, un par de servidores de almacenamiento y los arreglos de almacenamiento asociados. La solución proporciona almacenamiento que utiliza un solo espacio de nombres al que los nodos de cómputo del clúster pueden acceder fácilmente. En la siguiente figura se muestra la arquitectura de referencia de la solución con los siguientes componentes principales:
La figura 1 muestra la arquitectura de referencia de la solución.
Figura 1: Solución Dell EMC Ready para el almacenamiento
de HPC BeeGFS En la figura 1, el servidor de administración que ejecuta el demonio de monitoreo de BeeGFS es un PowerEdge R640. Los dos servidores de metadatos (MDS) son PowerEdge servidores R740 en una configuración de alta disponibilidad activo-activo. El par MDS se conecta al arreglo ME4024 de 2U y PowerVault por vínculos SAS de 12 GB/s. El arreglo de almacenamiento ME4024 aloja los destinos de metadatos (MDTs). Otro par de PowerEdge servidores R740, además de la configuración de alta disponibilidad activo-activo, se utilizan como servidores de almacenamiento (SS). Este par de SS está conectado a cuatro arreglos de almacenamiento de PowerVault ME4084 completamente ocupados mediante vínculos de SAS de 12 GB/s. Los arreglos ME4084 admiten una selección de unidades de disco duro de 4 TB, 8 TB, 10 TB o 12 TB NL SAS 7,2 K RPM (HDD y alojan los destinos de almacenamiento (STs) para el sistema de archivos BeeGFS. Esta solución utiliza Mellanox InfiniBand HDR100 para la red de datos. Los clientes y los servidores están conectados a la QM8790 del switch de borde HDR Mellanox Quantum de 1U, que admite hasta 80 puertos de HDR100 mediante cables del divisor de HDR.
En las siguientes tablas se describen las versiones de software y speficiations de hardware validadas para la solución.
Management Server | 1 Dell EMC PowerEdge R640 |
---|---|
Servidores de metadatos (MDS) | 2 Dell EMC PowerEdge R740 |
Servidores de almacenamiento (SS) | 2 Dell EMC PowerEdge R740 |
Procesador | Management Server 2 x Intel Xeon Gold 5218 a 2.3 GHz, 16 cores MDS y SS: 2 procesadores Intel Xeon gold 6230 a 2,10 GHz, 20 núcleos |
Memoria | Management Server 12 módulos DIMM de DDR4 2666MT/s de 8 GB-96GB MDS y SS: DIMM DDR4 2933MT/s 12x de 32 GB: 384 GB |
InfiniBand HCA (ranura 8) | 1x Mellanox adaptador de HDR100 ConnectX-6 de puerto único por MDS y SS |
Controladoras de almacenamiento externo | dos HBA Dell 12 Gbps SAS (en cada MDS) 4x Dell 12 gbps SAS HBA (en cada SS) |
Gabinete de almacenamiento de datos | 4x Dell EMC PowerVault gabinetes ME4084 ocupados completamente con un total de 336 unidades de 2,69 PB de capacidad de almacenamiento crudo, si están equipados con unidades SAS de 8 TB en 4x ME4084 |
Gabinete de almacenamiento de metadatos | 1x Dell EMC gabinete de ME4024 PowerVault completamente completado con 24 unidades |
Controladoras RAID | Controladoras RAID dúplex en los gabinetes ME4084 y ME4024 |
Unidades de disco duro | 84-8 TB 7200 RPM unidades NL SAS3 por gabinete ME4084 24-960 GB SAS3 SSD por gabinete ME4024 |
Sistema operativo | CentOS Linux versión 8.1.1911 (Core) |
Versión del kernel | 4.18.0-147.5.1. EL8 _ 1 _ 1. x86_64 |
Mellanox versión OFED | 4.7:3.2.9.0 |
Grafana | 6.6.2-1 |
InfluxDB | 1.7.10-1 |
SISTEMA DE ARCHIVOS BeeGFS | 7,2 beta2 |
Tabla 1: Configuración de banco de prueba
Nota: Para el propósito de la caracterización del rendimiento, se utilizó BeeGFS versión 7,2 beta2.
La arquitectura de BeeGFS consta de cuatro servicios principales:
También hay un servicio opcional de monitoreo de BeeGFS.
A excepción del servicio del cliente, que es un módulo de kernel, los servicios de administración, metadatos y almacenamiento son procesos de espacio de usuario. Es posible ejecutar cualquier combinación de servicios de BeeGFS (componentes del cliente y del servidor) en conjunto en las mismas máquinas. También es posible ejecutar varias instancias de cualquier servicio BeeGFS en la misma máquina. En el Dell EMC configuración de alta capacidad de BeeGFS, el servicio de monitoreo se ejecuta en el servidor de administración, se ejecutan varias instancias del servicio de metadatos en los servidores de metadatos y una sola instancia de servicio de almacenamiento se ejecuta en los servidores de almacenamiento. El servicio de administración de está instalado en los servidores de metadatos.
El servicio de monitoreo de BeeGFS (BeeGFS-Mon. Service) recopila las estadísticas de BeeGFS y las proporciona al usuario utilizando la base de datos de la serie de tiempo InfluxDB. Para la visualización de datos, beegfs-Mon-grafana proporciona tableros de grafana predefinidos que se pueden usar de inmediato. La figura 2 proporciona una descripción general del clúster de BeeGFS que muestra la cantidad de servicios de almacenamiento y de metadatos en la configuración (denominados nodos en el tablero). También se enumeran las demás vistas del tablero disponibles y se proporciona una descripción general de los destinos de almacenamiento.
Figura 2: Grafana Dashboard-BeeGFS Overview
El arreglo de almacenamiento ME4024 que se utiliza para el almacenamiento de metadatos se completa completamente con unidades SSD de 24x 960 GB. Estas unidades se configuran en grupos de discos RAID1 lineal 12x de dos unidades, como se muestra en la figura 3. Cada grupo RAID1 es un destino de metadatos.
Figura 3 arreglo ME4024 completamente completado con 12 MDTs
Dentro de BeeGFS, cada servicio de metadatos maneja solo un único MDT. Dado que hay 12 MDTs, es necesario que haya 12 instancias del servicio de metadatos. Cada uno de los dos servidores de metadatos ejecuta seis instancias del servicio de metadatos. Los destinos de metadatos se formatean con un sistema de archivos de ext4 (los sistemas de archivos de ext4 tienen el mismo rendimiento que los archivos pequeños y las operaciones de archivos pequeños). Además, BeeGFS almacena información en atributos extendidos y directamente en los inodos del sistema de archivos para optimizar el rendimiento, los cuales funcionan bien con el sistema de archivos de ext4.
Vuelva a la parte superior
El servicio beegfs-mgmtd se configura en ambos servidores de metadatos. El área de almacenamiento de beegfs MGMT se inicializa en el directorio mgmtd en el destino de metadatos 1, como se muestra a continuación:
/opt/beegfs/sbin/beegfs-Setup-mgmtd-p/beegfs/metaA-numa0-1/mgmtd-S beegfs-MGMT
El servicio de administración se inicia en el servidor de metadatos.
En esta solución BeeGFS de alta capacidad, el almacenamiento de datos se encuentra entre cuatro arreglos de almacenamiento de ME4084 PowerVault. Los grupos de discos RAID 6 lineales de 10 unidades (8 + 2) se crean en cada arreglo. Se crea un solo volumen que utiliza todo el espacio para cada grupo de discos. Esto generará ocho grupos de discos/volúmenes por arreglo. Cada arreglo tiene 84 unidades y la creación de ocho grupos de discos RAID-6 deja 4 unidades que se pueden configurar como repuestos dinámicos globales en todos los volúmenes de arreglos.
Con el diseño descrito anteriormente, hay un total de 32 volúmenes RAID-6 en 4 x ME4084 en una configuración básica que se muestra en la figura 1. Cada uno de estos volúmenes RAID 6 se configura como un destino de almacenamiento (ST) para el sistema de archivos de BeeGFS, lo que da como resultado un total de 32 STs en todo el sistema de archivos.
Cada arreglo ME4084 tiene 84 unidades, con unidades con un número de serie 0-41 en el cajón superior y los 42-84 numerados en el cajón inferior. En la figura 5, cada conjunto de 10 unidades marcadas del 1 al 8 representa el grupo 8xRAID6. Se crea un volumen a partir de cada grupo de RAID6. Las unidades marcadas como "S" representan los repuestos globales. La figura 5 muestra la vista frontal del arreglo después de la configuración de 8 volúmenes y 4 repuestos globales.
Figura 4, diseño de grupo de discos RAID 6 (8 + 2) en un ME4084
El módulo del cliente BeeGFS se carga en todos los hosts que requieren acceso al sistema de archivos BeeGFS. Cuando se carga el módulo BeeGFS y se inicia el servicio BeeGFS-Client , el servicio monta los sistemas de archivos definidos en el archivo/etc/BeeGFS/beegfs-mounts. conf en lugar del enfoque habitual basado en /etc/fstab. Con este enfoque, beegfs-Client se inicia como cualquier otro servicio de Linux a través del script de inicio del servicio y permite la recompilación automática del módulo del cliente beegfs después de las actualizaciones del sistema.
Esta sección presenta las características de rendimiento de las soluciones Dell EMC Ready para HPC solución de almacenamiento de alta capacidad de BeeGFS mediante el uso de los criterios aleatorios y aleatorios de IOzone. Para obtener más información sobre la caracterización del rendimiento con IOR y MDtest, y sobre la configuración de la alta disponibilidad, busque un informe técnico que se publicará más adelante.
El rendimiento del almacenamiento se evaluó mediante el benchmark de IOzone (v 3.487). Se midieron el rendimiento de lectura y escritura secuencial y el IOPS de lectura y escritura aleatorios. La tabla 2 describe la configuración de los servidores de PowerEdge R840 utilizados como clientes BeeGFS para estos estudios de rendimiento.
Los | 8 Dell EMC PowerEdge R840 |
---|---|
Procesador | 4 x Intel (R) Xeon (R) Platinum 8260 CPU a 2,40 GHz, 24 cores |
Memoria | DIMM de 24 GB DDR4 2933MT/s-384 GB |
Sistema operativo | Servidor Red Hat Enterprise Linux versión 7.6 (Maipo) |
Versión del kernel | 3.10.0-957.el7.x86_64 |
Interconexión | 1x Mellanox adaptador de HDR100 de puerto único ConnectX-6 |
Versión de OFED | 4.7:3.2.9.0 |
Tabla 2 configuración del cliente
Los servidores y los clientes están conectados a través de una red de HDR100 y los detalles de red proporcionados en la tabla 3 a continuación:
Switch de InfiniBand | QM8790 Mellanox switch de Edge HDR de Quantum-IU con 80x HDR de 100 de 100 GB/s (con cables de Splitter) |
---|---|
Switch de administración | Dell Networking S3048-ON ToR switch-1U con 48x 1 GbE, 4x SFP + puertos de 10 GbE |
Tabla 3: Redes
Las lecturas y las escrituras secuenciales se miden mediante el modo de lectura y escritura secuencial de IOzone. Estas pruebas se realizaron en múltiples conteos de subprocesos, comenzando con 1 subproceso y aumentando en potencias de 2 hasta llegar a 512 subprocesos. En cada conteo de subprocesos, se generó una cantidad igual de archivos, ya que esta prueba funciona en un archivo por subproceso o el caso N-N. Los procesos se distribuyeron entre ocho nodos de cliente físico de manera Round-Robin, de modo que las solicitudes se distribuyan equitativamente con balanceo de carga.
Para los conteos de hilos de ejecución 16 y superiores, se eligió un tamaño de archivo agregado de 8 TB para minimizar los efectos del almacenamiento en caché de los servidores, así como de los clientes de BeeGFS. Para los conteos de subprocesos inferiores a 16, el tamaño del archivo es de 768 GB por hilo (es decir, 1.5 TB para dos subprocesos, 3 TB para 4 hilos de ejecución y 6 TB para 8 subprocesos). Dentro de cualquier prueba determinada, el tamaño de archivo agregado utilizado se dividió por igual entre la cantidad de hilos de ejecución. Se utilizó un tamaño de registro de 1MiB para todas las ejecuciones. A continuación se muestra el comando que se utiliza para las pruebas secuenciales N-N:
Escrituras y lecturas secuenciales: iozone-i $test-c-e-w-r 1m-s $Size-t $Thread-+ n-+ m/path/to/threadlist
También se descartaron las cachés del sistema operativo entre las iteraciones, así como entre las pruebas de escritura y lectura mediante la ejecución del comando:
# Sync & & echo 3 >/proc/sys/VM/drop_caches
El sistema de archivos se desmontó y se volvió a montar en los clientes entre las iteraciones y entre las pruebas de escritura y lectura para borrar la caché.
Figura 5: Rendimiento de lecturas secuenciales de N-N
En la figura 5, el rendimiento máximo de 23,70 GB/s se logra a los subprocesos de 256 y la escritura máxima de 22,07 GB/s alcanzado en hilos de ejecución de 512. El rendimiento de escritura de un solo hilo de ejecución es de 623 MB/s y la lectura es de 717 MB/s. El rendimiento escala casi linealmente hasta 32 hilos de ejecución. Después de esto, vemos que las lecturas y escrituras se saturan a medida que se escalan. Esto nos permite comprender que el rendimiento sostenido total de esta configuración para lecturas es ≈ 23GB/s y que para las escrituras es ≈ 22GB/s con los picos como se mencionó anteriormente. Las lecturas son muy próximas o ligeramente mayores que las escrituras, independientemente de la cantidad de hilos de ejecución utilizados.
IOzone se utilizó en el modo Random para evaluar el rendimiento de i/o aleatorio. Las pruebas se realizaron en conteos de subprocesos de 16 a 512 hilos de ejecución. La opción de e/s directa (-I) se utilizó para ejecutar IOzone, de modo que todas las operaciones omitan la caché del búfer y se dirijan directamente al disco. Se utilizó el recuento de tramos de BeeGFS de 1 y tamaño de fragmento de 1MB. El tamaño de la solicitud se estableció en 4KiB. El rendimiento se midió en las operaciones de I/O por segundo (IOPS). Se descartaron las cachés del sistema operativo entre las ejecuciones de los servidores de BeeGFS. El sistema de archivos se desmontó y se volvió a montar en los clientes entre las iteraciones de la prueba. El comando que se utiliza para las pruebas de lectura y escritura aleatorias es el siguiente:
iozone-i 2-w-c-O-I-r 4K-s $Size-t $Thread-+ n-+ m/path/to/threadlist
Figura 6rendimiento aleatorio n-n
En la figura 6 se muestra que el rendimiento de la escritura alcanza el IOPS de 31K y permanece estable desde hilos de ejecución de 32 a 512. Por el contrario, el rendimiento de lectura aumenta con el aumento en la cantidad de solicitudes de i/o con un rendimiento máximo de alrededor de 47K IOPS en subprocesos de 512, que es la cantidad máxima de hilos de ejecución probados para la solución. ME4 requiere una mayor profundidad de línea de espera para alcanzar el máximo rendimiento de lectura y el gráfico indica que podemos obtener un rendimiento más alto Si ejecutamos los subprocesos simultáneos de 1024. Sin embargo, dado que las pruebas se ejecutaron solo con ocho clientes, no teníamos suficientes núcleos para ejecutar el conteo de hilos de ejecución de 1024.
Vuelva a la parte superior
Los siguientes parámetros de ajuste se han implementado mientras se lleva a cabo la caracterización del rendimiento de la solución.
El conteo de franja predeterminado para BeeGFS es 4. Sin embargo, el tamaño del fragmento y la cantidad de destinos por archivo (conteo de Stipe) se pueden configurar por directorio o por archivo. Para todas estas pruebas, el tamaño de la sección BeeGFS se configuró en 1 MB y el conteo de franjas se estableció en 1, como se muestra a continuación:
$beegfs-CTL--getentryinfo--mount =/mnt/beegfs//mnt/beegfs/Benchmark/--verbose
Tipo de entrada:
EntryID de directorio: 1-5E72FAD3-1
ParentID:
nodo de metadatos raíz: MetaA-numa0-1 [ID: 1]
detalles del patrón de franjas:
+ tipo: RAID0
+ chunkSize: 1 m
+ Cantidad de destinos de almacenamiento: deseados: 1
+ Pool de almacenamiento: 1 (valor predeterminado)
ruta de hash de inode: 61/4C/1-5E72FAD3-1
Las páginas muy grandes transparentes se deshabilitaron y los siguientes valores de la memoria virtual configurados en los servidores de almacenamiento y de metadatos:
Se utilizaron las siguientes opciones de ajuste para los dispositivos de bloques de almacenamiento en los servidores de almacenamiento.
Además de lo anterior, se utilizaron las siguientes opciones de optimización específicas de BeeGFS:
beegfs-meta. conf
connMaxInternodeNum = 64
tuneNumWorkers = 12
tuneUsePerUserMsgQueues = true # Optional
tuneTargetChooser = RoundRobin (benchmarking)
beegfs-Storage. conf
connMaxInternodeNum = 64
tuneNumWorkers = 12
tuneUsePerTargetWorkers = true
tuneUsePerUserMsgQueues = true # Optional
tuneBindToNumaZone = 0
tuneFileReadAheadSize = 2m
beegfs-Client. conf
connMaxInternodeNum = 24
connBufSize = 720896
Este blog anuncia la versión de Dell EMC solución de almacenamiento de alta capacidad de BeeGFS y destaca sus características de rendimiento. Esta solución proporciona un rendimiento máximo de 23,7 GB/s para lecturas y 22,1 GB/s para las escrituras mediante el uso de criterios secuenciales IOzone. También vemos el pico de escrituras aleatorias en 31.3 K IOPS y las lecturas aleatorias a 47.5 K IOPS.
Como parte de los próximos pasos, vamos a evaluar el rendimiento de los metadatos y N subprocesos en un único archivo (N a 1) IOR rendimiento de esta solución. Se espera que un informe técnico que describa los metadatos y el rendimiento de IOR de la solución con detalles adicionales en relación con las consideraciones de diseño para esta solución de alta capacidad con alta disponibilidad se publique después de que se complete el proceso de validación y evaluación.