Optimisation du stockage Ceph grâce à des solutions réseau avancées
Optimisation du stockage Ceph grâce à des solutions réseau avancées

Optimisation du stockage Ceph grâce à des solutions réseau avancées

Les défis liés au stockage traditionnel

Au cours des dernières années, notre entreprise a exploité sa pile de virtualisation avec une approche de stockage traditionnelle, en utilisant des appareils de stockage dédiés tels que les baies de stockage Dell EMC et en les connectant à nos serveurs à l'aide d'iSCSI ou de Fibre Channel (FC). Pour assurer la redondance, nous avons doublé le nombre d'appareils. Nos solutions de stockage 100 % flash ont été fournies par Huawei.
Dans le cadre de nos efforts continus pour fournir à nos clients des ressources cloud provenant entièrement du territoire luxembourgeois, garantissant ainsi la souveraineté des données, et compte tenu de l'avancement de notre projet de recherche en intelligence artificielle, le besoin d'une solution de stockage de données hautement évolutive et fiable s'est considérablement accru.

1ère tentative de solution

Carte météorologique montrant la connexion physique entre les deux réseaux SAN
Carte météorologique montrant la connexion physique entre les deux réseaux SAN
Pour répondre à cette nouvelle demande, nous avons d'abord choisi de modifier notre approche. Nous sommes passés à un réseau de stockage dédié (SAN). Nous exploitons deux centres de données et avons mis en place deux SAN indépendants, chacun utilisant un commutateur par côté, connectés via deux longueurs d'onde passives géographiquement distinctes. Les baies de stockage et les serveurs étaient chacun connectés aux deux SAN, ce qui nous offrait quatre chemins de stockage. Cette configuration utilisait plusieurs chemins pour assurer la redondance sur plusieurs chemins, qui n'étaient eux-mêmes pas redondants. Chaque serveur disposait de deux cartes réseau, avec un port par carte connecté à chaque SAN, ce qui donnait un total de quatre chemins. Cette configuration garantissait que nous ne perdrions jamais plus de deux chemins en cas de défaillance d'un seul appareil.
Malgré ces mesures, une fois tout mis en place, nous avons constaté que nous n'atteignions pas les performances escomptées. Les systèmes de stockage traditionnels posent souvent des défis tels que des problèmes d'évolutivité, des frais de gestion et la dépendance vis-à-vis d'un fournisseur, ce qui nous a motivés à rechercher d'autres solutions.
Compte tenu du contexte géopolitique actuel et du manque de matériel de stockage fabriqué en Europe, nous avons choisi d'adopter une approche différente. En éliminant la dépendance vis-à-vis des fournisseurs et en revenant à un aspect fondamental de notre identité, à savoir les solutions open source, nous souhaitons favoriser l'innovation et maintenir la flexibilité de notre infrastructure.

Explorer Ceph : une nouvelle approche du stockage

Nos administrateurs système, toujours désireux d'explorer de nouvelles technologies, ont proposé d'utiliser Ceph pour nos besoins en matière de stockage. Nos expériences passées avec les systèmes de stockage traditionnels n'avaient pas été satisfaisantes, et nous étions motivés pour explorer quelque chose d'innovant et potentiellement plus robuste.
Ceph est une plateforme de stockage open source conçue pour offrir d'excellentes performances, une grande fiabilité et une évolutivité optimale. Elle unifie le stockage d'objets, de blocs et de fichiers dans un seul cluster, ce qui en fait une solution polyvalente pour divers besoins de stockage.
Après une analyse concluant que Ceph était en mesure de répondre à nos exigences en termes de redondance et d'évolutivité, nous avons procédé au choix du matériel approprié. Notre décision s'est portée sur les serveurs Supermicro. Ces serveurs fonctionnent avec deux processeurs AMD EPYC 7313 à 16 cœurs et 128 Go de RAM.
Pour la configuration du réseau, nous avons décidé d'utiliser l'infrastructure existante avec les deux SAN indépendants. Après quelques difficultés initiales pour trouver les configurations adéquates et attendre l'arrivée du matériel, nous étions prêts à commencer les tests. Cependant, nous avons rapidement rencontré un obstacle de taille.
Dans Ceph, il existe deux réseaux distincts :
  • Réseau de clusters :
    • Utilisé par les serveurs pour synchroniser les données entre eux.
  • Réseau public :
    • Gère le trafic lié à la gestion des clusters (MONITOR).
    • Facilite les connexions Ceph aux utilisateurs de données, tels que les hôtes de virtualisation.
Le défi auquel nous étions confrontés était que le réseau public dans Ceph ne peut être configuré qu'avec un seul réseau IP. Cette limitation aurait pu constituer un obstacle majeur pour nos exigences en matière de redondance.
Pour résoudre ce problème, nous avons envisagé deux solutions possibles :
  1. Nouveaux commutateurs de châssis :
    1. Une proposition consistait à acheter de nouveaux commutateurs de châssis. Bien que cela aurait pu résoudre le problème, cette solution était coûteuse et n'offrait que des avantages supplémentaires limités.
  1. Commutateurs empilables avec LACP :
    1. La deuxième idée, qui a également été largement suggérée dans les forums, consistait à empiler les commutateurs et à utiliser le protocole LACP (Link Aggregation Control Protocol). Cependant, cette approche allait à l'encontre de notre philosophie de conception initiale pour les deux réseaux SAN. Nous avions délibérément évité l'empilement en raison d'expériences négatives passées, telles que la séparation des piles pendant le fonctionnement, entraînant des pannes de réseau ou la création de boucles qui perturbaient l'ensemble du réseau.

Solutions de routage innovantes pour Ceph

Lors d'une séance de brainstorming, notre département réseau a proposé une idée novatrice. Bien que le réseau public de Ceph ne puisse gérer qu'un seul préfixe IP, il n'est pas nécessaire que toutes les adresses IP se trouvent dans le même domaine de diffusion. Cette idée nous a amenés à envisager le routage du trafic comme une solution viable.

Configuration initiale du routage

Notre solution de routage initiale consistait à connecter deux nœuds Ceph à chaque commutateur SAN de couche 3. Les commutateurs exécutaient le protocole OSPF (Open Shortest Path First) et annonçaient les réseaux de chaque nœud. Chaque nœud était connecté à l'aide de ses quatre interfaces dans un seul canal de port LACP (Link Aggregation Control Protocol). Cette approche présentait plusieurs avantages et inconvénients :
Avantages :
  • Facilité d'installation : OSPF fonctionne sur seulement quatre commutateurs, ce qui simplifie le processus de configuration.
  • Redondance d'interface : LACP assure la redondance au niveau de l'interface, améliorant ainsi la fiabilité.
Inconvénients :
  • Impact d'une panne de commutateur : la perte d'un commutateur entraîne la perte de deux nœuds Ceph complets, compromettant ainsi la redondance.
  • Équilibrage de charge limité : l'équilibrage de charge est limité à la liaison LACP, ce qui peut empêcher l'utilisation optimale de la bande passante disponible.

Solution de routage optimisée

Carte météorologique montrant les connexions physiques de la solution finale acheminée
Carte météorologique montrant les connexions physiques de la solution finale acheminée
Insatisfaits des limites de l'approche initiale, nous avons développé une solution plus robuste : le routage complet. Dans cette configuration, chaque nœud Ceph exécute FRRouting (FRR) et OSPF indépendamment. Cette configuration offre plusieurs avantages clés :
  • Redondance améliorée : chaque nœud est connecté à deux commutateurs, ce qui garantit que la défaillance d'un commutateur n'entraîne pas la perte du nœud. Pour renforcer encore la fiabilité, la détection bidirectionnelle de transfert (BFD) est utilisée pour détecter les défaillances en moins d'une seconde en cas de défaillance d'une ou plusieurs liaisons. De plus, le routage ECMP (Equal-Cost Multi-Path) est utilisé pour fournir plusieurs routes redondantes, ce qui améliore la résilience globale du réseau.
  • Utilisation efficace des interfaces : les réseaux publics et les réseaux de clusters fonctionnent tous deux au sein du même réseau routé, ce qui permet à Ceph d'utiliser de manière dynamique la totalité de la bande passante du serveur pour les deux réseaux en fonction des demandes actuelles.
  • Stabilité du service : les services de cluster et les services publics fonctionnent sur des adresses IP de bouclage, ce qui garantit qu'ils ne sont pas liés à des interfaces spécifiques susceptibles de tomber en panne.
  • Équilibrage de charge amélioré : l'équilibrage de charge est amélioré grâce à l'utilisation du routage ECMP (Equal-Cost Multi-Path), qui fournit à chaque destination huit chemins distincts. Cette configuration permet une distribution efficace du trafic sur plusieurs routes, optimisant ainsi l'utilisation de la bande passante et garantissant un partage équilibré de la charge.

Résultats et conclusions

Après avoir mis en œuvre la solution de routage complète pour notre cluster Ceph, nous avons effectué une série de tests afin d'évaluer ses performances et sa redondance. Il est important de noter que l'instance Ceph n'est pas encore hautement optimisée, mais les premiers résultats sont prometteurs. Nous avons atteint des taux de lecture/écriture aléatoires de 3,6 Go/s, ce qui représente une amélioration significative par rapport à notre configuration précédente. Ces tests ont été réalisés à l'aide d'outils de benchmarking conformes aux normes de l'industrie afin de garantir leur précision et leur fiabilité.
Outre les tests de performance, nous avons également évalué la redondance du système. Nos tests ont révélé qu'un nœud peut perdre toutes ses liaisons sauf une sans que cela ait d'impact sur ses fonctionnalités, mis à part une réduction de la bande passante disponible. De même, toutes les liaisons inter-datacenters (Inter-DC) sauf une peuvent tomber en panne sans affecter le système, bien que cela entraîne également une réduction de la bande passante disponible. Ces résultats confirment la robustesse et la fiabilité de notre solution Ceph routée.

Projets futurs

Pour l'avenir, nous envisageons plusieurs améliorations afin d'optimiser davantage notre infrastructure Ceph. L'un de nos principaux objectifs est d'ajouter davantage de liaisons inter-DC entre les SAN. Cette extension permettra un meilleur équilibrage de charge entre les DC, garantissant ainsi des performances et une résilience optimales.
En évaluant et en affinant continuellement la configuration de notre réseau, nous visons à obtenir un cluster Ceph hautement optimisé qui réponde à nos exigences en matière de performances et de redondance, afin de soutenir plus efficacement nos activités commerciales principales.
 

Parlez à un expert

Discutez directement avec nos experts qui sont prêts à vous fournir des informations et des réponses.