Ingenieros de Clyso presumen de haber logrado un rendimiento de Tbit/s en un cluster con Ceph
Hace poco los ingenieros de Clyso han dado a conocer una noticia sin precedentes, pues mencionan que han logrado obtener un rendimiento superior a los Terabytes por segundo en un clúster de almacenamiento basado en un sistema Ceph distribuido tolerante a fallos.
Sin dudas este es un logro que marca la primera vez que un clúster basado en Ceph alcanza tal indicador, superando una serie de desafíos para lograr tal desempeño en el cluster.
El hecho de que se haya llegado a obtener este rendimiento fue debido a que los ingenieros Clyso recibieron una solicitud para la implementación de un cluster y en base a las necesidades de su cliente y su trabajo en obtener el mejor rendimiento sin dejar de lado los requerimientos solicitados.
Y es que se menciona que los ingenieros que cuando el cliente se acercó por primera vez a Clyso, le propusieron una configuración que utilizaba 34 nodos 2U de doble socket distribuidos en 17 racks con un par de configuraciones alternativas.
Al final, el cliente decidio optar por una arquitectura Dell diseñada por Clyso, que costaba aproximadamente un 13% más barata que la configuración original a pesar de tener varias ventajas clave. La nueva configuración tiene menos memoria por OSD (todavía cómodamente 12 GiB cada uno), pero un rendimiento de memoria más rápido.
También proporciona más recursos de CPU agregados, un rendimiento de red agregado significativamente mayor, una configuración de un solo socket más simple y utiliza la última generación de procesadores AMD y RAM DDR5. Al emplear nodos más pequeños, reducimos a la mitad el impacto de una falla de nodo en la recuperación del clúster.
El cliente indicó que le gustaría limitar el consumo de energía adicional por rack a alrededor de 1000-1500 vatios.
Para mejorar el rendimiento en un 10-20%, descubrieron que habilitar los servidores en el modo de rendimiento máximo y desactivar c-state en la configuración de ahorro de energía del BIOS resultó efectivo.
También resultó que cuando se utilizan unidades NVMe, el kernel de Linux dedica una cantidad significativa de tiempo a procesar bloqueos de giro durante el proceso de actualización del mapeo IOMMU. La desactivación de IOMMU en el kernel provocó un aumento notable en el rendimiento en las pruebas de escritura y lectura de bloques de 4 MB, aunque no resolvió completamente los problemas de rendimiento al escribir aleatoriamente bloques de 4 KB.
También mencionan que mientras averiguaban lo que estaba pasando, los ingenieros encontraron correcciones en los scripts de compilación de Ceph, pertenecientes a los proyectos Gentoo y Ubuntu , que incluían la compilación con la opción RelWithDebInfo, ya que con ella se usaba el modo de optimización “-O2” en GCC, lo que significativamente mayor rendimiento de Ceph.
La compilación con la biblioteca TCMalloc también resultó en una disminución del rendimiento. Cambiar los indicadores de compilación y eliminar el uso de TCMalloc dio como resultado una reducción triple en el tiempo de compactación y un aumento doble en el rendimiento de las escrituras aleatorias de bloques 4K.
Además, ajustes en la configuración de Reef RocksDB y los grupos de ubicación contribuyeron a la optimización general del sistema.
Las especificaciones del sistema se muestran a continuación:
Nodos | 68 x Dell PowerEdge R6615 |
---|---|
UPC | 1 procesador AMD EPYC 9454P 48C/96T. |
Memoria | DDR5 de 192 GB |
Red | 2 x 100GbE Mellanox ConnectX-6 |
NVMe | 10 x Dell 15,36 TB Enterprise NVMe lectura intensiva AG |
Versión del sistema operativo | Ubuntu 20.04.6 (focal) |
Versión Ceph | Quincy v17.2.7 (Paquetes Deb ascendentes) |
Los resultados son impresionantes: el rendimiento para operaciones de lectura secuencial de bloques de 4 millones alcanzó los 1025 GiB/s, mientras que para escritura fue de 270 GiB/s.
En operaciones de lectura aleatoria de bloques de 4 KB, el rendimiento llegó a 25.5 millones de operaciones de lectura por segundo y 4.9 millones de operaciones de escritura. La habilitación del cifrado redujo el rendimiento de lectura a aproximadamente 750 GiB/s.
Este logro no solo representa un hito técnico para Clyso, sino que también destaca la continua evolución y mejora en las capacidades de almacenamiento distribuido.
Es importante mencionar que en septiembre, el CERN también alcanzó un hito similar en su clúster de almacenamiento de exabytes basado en el almacenamiento distribuido EOS y el protocolo XRootD.
Finalmente si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.