Ceph: el camino hacia 1 TiB/s
(ceph.io)Ceph: el camino hacia 1 TiB/s
- Un artículo que recorre el proceso de mejora de rendimiento de un clúster Ceph y cuenta cómo, tras una larga etapa de depuración y optimización, se alcanzó una velocidad de procesamiento de datos de 1 TiB/s.
- Comparte diversos problemas técnicos y sus soluciones que surgieron mientras la empresa Clyso ayudaba a construir un clúster Ceph de 10 petabytes basado en NVMe.
- La red del cliente es extremadamente rápida, una de las configuraciones Ethernet más veloces disponibles.
Agradecimientos
- Expresan su agradecimiento al cliente de Clyso, cuya colaboración hizo posible compartir esta experiencia con la comunidad de Ceph.
- También agradecen a IBM/Red Hat y a Samsung por proporcionar el hardware usado en las pruebas comparativas.
- Extienden además su agradecimiento a los contribuidores de Ceph por su esfuerzo para convertirlo en un gran software.
Configuración del clúster
- El cliente propuso 34 nodos 2U de doble socket distribuidos en 17 racks, pero Clyso sugirió varias configuraciones usando nodos más pequeños.
- Finalmente se eligió una arquitectura de Dell para reducir costos y ofrecer un mayor ancho de banda de memoria, más recursos de CPU y mayor rendimiento de red.
- Esto redujo a la mitad el impacto de la falla de un nodo sobre la recuperación del clúster.
Configuración de pruebas
- Se usó CBT para desplegar un clúster Ceph temporal y ejecutar pruebas con FIO.
- Se emplearon pruebas de FIO basadas en librerías para dividir el clúster en unidades pequeñas y compararlas con resultados previos.
- Se probaron replicación 3X y codificación de borrado 6+2, así como la versión 2 del mensajero en modo cifrado y modo seguro.
Precaución con la cantidad de PG
- Se probó experimentalmente cómo la cantidad de PG afecta el rendimiento.
- Una cantidad alta de PG puede influir positivamente en el rendimiento, aunque en producción debe evaluarse junto con otras configuraciones.
Por qué fue difícil empezar
- Tras iniciar sesión en el hardware por primera vez, resolver los problemas fue complicado porque el rendimiento era menor de lo esperado.
- Las pruebas iniciales de rendimiento fueron buenas, pero al probar con varios OSD apareció una degradación.
Un comportamiento extraño
- Al ejecutar distintas combinaciones de pruebas de OSD, descubrieron patrones anómalos en el rendimiento.
- Observaron que el sistema se degradaba después de pruebas multi-OSD y volvía a recuperarse horas después.
Tres soluciones
- Se resolvió un problema de latencia causado por los cambios de estado c-state de la CPU, lo que mejoró ligeramente el rendimiento.
- Desactivar IOMMU produjo una mejora importante de rendimiento.
- Se corrigió un problema con las banderas de compilación de RocksDB, duplicando el rendimiento de escritura aleatoria 4K.
La primera semana de 2024
- El primer día del año, una gran caída en otro clúster impidió concentrarse en las pruebas de rendimiento.
- El viernes se retomaron las pruebas y se confirmó que el clúster funcionaba bien incluso bajo alta carga.
La sonrisa del destino
- A medida que mejoraban los resultados, se confirmó que el clúster escalaba linealmente.
- En un clúster de 63 nodos se alcanzó una velocidad de procesamiento de datos de 635 GiB/s.
Una Estrella de la Muerte parcialmente funcional
- Como faltaban nodos cliente, fue necesario compartir los nodos OSD con los procesos FIO.
- Incluso con esa configuración se logró un rendimiento cercano a 950 GiB/s.
Alcanzando 1 TiB/s
- Ajustando la cantidad de shards de OSD y el número de hilos del mensajero, se alcanzó una velocidad de procesamiento de datos de 1 TiB/s.
Dormir; codificación de borrado
- Después de probar con replicación 3X, el clúster se reconfiguró con la codificación de borrado 6+2 que usaría el cliente y se volvió a probar.
- El rendimiento de lectura superó los 500 GiB/s y el de escritura llegó a casi 400 GiB/s.
Opinión de GN⁺:
- Este artículo explica en detalle el proceso de optimización de rendimiento de un clúster Ceph y ofrece perspectivas técnicas al mostrar un caso donde se alcanzó un alto desempeño mediante una compleja resolución de problemas.
- Muestra cómo la colaboración con el cliente, el esfuerzo de los contribuidores de la comunidad y diversas estrategias de optimización de hardware y software pueden producir grandes resultados en el mundo real.
- El texto aporta información útil no solo para especialistas que trabajan con sistemas de almacenamiento de datos a gran escala, sino también para ingenieros interesados en la optimización de rendimiento.
1 comentarios
Comentarios de Hacker News