Ceph : le voyage vers 1 TiB/s
(ceph.io)Ceph : le voyage vers 1 TiB/s
- Un article qui retrace le parcours d'amélioration des performances d'un cluster Ceph, et raconte comment un long travail de débogage et d'optimisation a permis d'atteindre un débit de traitement des données de 1 TiB/s.
- Il partage les différents problèmes techniques rencontrés et leurs solutions lors de l'accompagnement, par l'entreprise Clyso, de la mise en place d'un cluster Ceph de 10 pétaoctets basé sur NVMe.
- Le réseau du client est extrêmement rapide, parmi les configurations Ethernet les plus performantes.
Remerciements
- Remerciements au client de Clyso, dont la coopération a permis de partager cette expérience avec la communauté Ceph.
- Remerciements également à IBM/Red Hat et à Samsung pour avoir fourni le matériel utilisé dans les tests comparatifs.
- Des remerciements sont aussi adressés aux contributeurs de Ceph pour leurs efforts afin de faire de Ceph un excellent logiciel.
Configuration du cluster
- Le client avait proposé 34 nœuds 2U bi-socket répartis sur 17 racks, mais Clyso a suggéré plusieurs configurations utilisant des nœuds plus petits.
- L'architecture Dell a finalement été retenue, permettant de réduire les coûts tout en offrant une bande passante mémoire plus élevée, davantage de ressources CPU et un débit réseau supérieur.
- Cela réduit également de moitié l'impact de la panne d'un nœud sur la récupération du cluster.
Configuration des tests
- Déploiement d'un cluster Ceph temporaire avec CBT, puis exécution de tests FIO.
- Utilisation de tests FIO basés sur des bibliothèques pour découper le cluster en plus petites unités et comparer les résultats aux précédents.
- Tests en réplication 3X et en erasure coding 6+2, ainsi que du protocole de messages version 2 en mode chiffré et en mode sécurisé.
Attention au nombre de PG
- Des tests empiriques ont été menés pour mesurer l'impact du nombre de PG sur les performances.
- Un nombre élevé de PG peut avoir un effet positif sur les performances, mais, en production réelle, cela doit être envisagé avec les autres réglages.
Des débuts difficiles
- Dès les premières connexions au matériel, la résolution des problèmes s'est révélée difficile en raison de performances inférieures aux attentes.
- Les premiers tests de performance étaient bons, mais une baisse des performances est apparue lors des essais avec plusieurs OSD.
Un comportement étrange
- En exécutant différentes combinaisons de tests OSD, une anomalie dans les performances a été observée.
- Le système voyait ses performances chuter après des tests multi-OSD, puis les récupérer plusieurs heures plus tard.
Trois solutions
- La résolution d'un problème de latence lié aux transitions de CPU c-state a légèrement amélioré les performances.
- La désactivation de l'IOMMU a permis une amélioration importante des performances.
- La correction d'un problème de drapeaux de compilation de RocksDB a doublé les performances en écriture aléatoire 4K.
Première semaine de 2024
- Une panne majeure sur un autre cluster le jour de l'An a empêché l'équipe de se concentrer sur les tests de performance.
- Les tests ont repris le vendredi, confirmant que le cluster fonctionnait bien même sous forte charge.
Le sourire du destin
- À mesure que les résultats des tests s'amélioraient, il est devenu clair que le cluster montait en charge de façon linéaire.
- Un cluster de 63 nœuds a atteint un débit de traitement des données de 635 GiB/s.
Une Étoile de la mort partiellement opérationnelle
- Faute d'un nombre suffisant de nœuds clients, il a fallu partager les nœuds OSD avec les processus FIO.
- Même dans cette configuration, des performances proches de 950 GiB/s ont été atteintes.
Atteindre 1 TiB/s
- En ajustant le nombre de shards OSD et le nombre de threads du messager, le cluster a atteint un débit de traitement des données de 1 TiB/s.
Sommeil ; erasure coding
- Après des tests en réplication 3X, le cluster a été reconfiguré en erasure coding 6+2, celui que le client utilisera en production, puis testé à nouveau.
- Les performances en lecture ont dépassé 500 GiB/s, tandis que les performances en écriture ont atteint près de 400 GiB/s.
Avis de GN⁺ :
- Cet article décrit en détail le processus d'optimisation des performances d'un cluster Ceph et offre un éclairage technique précieux en montrant comment un haut niveau de performance a été atteint au terme d'une résolution de problèmes complexe.
- Il montre comment la coopération avec le client, les efforts des contributeurs de la communauté et diverses stratégies d'optimisation matérielle et logicielle peuvent produire des résultats majeurs dans le monde réel.
- Ce texte fournit des informations utiles non seulement aux spécialistes des systèmes de stockage de données à grande échelle, mais aussi aux ingénieurs intéressés par l'optimisation des performances.
1 commentaires
Commentaires Hacker News