Ceph-opslag optimaliseren met geavanceerde netwerkoplossingen
Medewerkers: Marc THOLL, Pol WARNIMONT, Marcin RZECZKOWSKI
Uitdagingen met traditionele opslag
De afgelopen paar jaar heeft ons bedrijf de virtualisatiestack uitgevoerd met een traditionele opslagaanpak, waarbij we speciale opslagapparaten zoals Dell EMC storage bays gebruikten en deze via iSCSI of Fibre Channel (FC) met onze servers verbonden. Voor redundantie verdubbelden we de appliances. Onze full-flash storage-oplossingen werden geleverd door Huawei.
Met ons voortdurende streven om onze klanten cloudbronnen te bieden die volledig binnen de grenzen van Luxemburg ontstaan en die gegevenssoevereiniteit garanderen en met ons voortschrijdende AI-onderzoeksproject, is de behoefte aan een zeer schaalbare en betrouwbare oplossing voor gegevensopslag aanzienlijk toegenomen.
1e poging tot een oplossing
Om aan deze nieuwe vraag te voldoen, kozen we aanvankelijk voor een andere aanpak. We zijn overgestapt op een dedicated Storage Area Network (SAN). We werken in twee datacenters en zetten twee onafhankelijke SAN's op, elk met één switch per kant, verbonden via twee geografisch verschillende passieve golflengtes. De opslagruimtes en servers waren elk aangesloten op beide SAN's, waardoor we vier opslagpaden hadden. Deze opstelling maakte gebruik van multi-path om redundantie te garanderen over meerdere paden, die zelf niet redundant waren. Elke server had twee netwerkkaarten, met één poort per kaart verbonden met elk SAN, wat resulteerde in een totaal van vier paden. Deze configuratie zorgde ervoor dat we nooit meer dan twee paden kwijt zouden raken als een enkel apparaat zou uitvallen.
Ondanks deze maatregelen merkten we, toen alles eenmaal geïnstalleerd was, dat we niet de verwachte prestaties haalden. Traditionele opslagsystemen gaan vaak gepaard met uitdagingen zoals schaalbaarheidsproblemen, beheeroverhead en vendor lock-in, wat onze zoektocht naar alternatieve oplossingen verder motiveerde.
Gezien het huidige geopolitieke landschap en het gebrek aan opslaghardware van Europese makelij, kozen we voor een andere aanpak. Door een einde te maken aan vendor lock-ins en terug te keren naar een kernaspect van onze identiteit - open-source oplossingen - willen we innovatie stimuleren en flexibiliteit in onze infrastructuur behouden.
Ceph verkennen: Een nieuwe benadering van opslag
Onze systeembeheerders, altijd enthousiast om nieuwe technologieën te verkennen, opperden het idee om Ceph te gebruiken voor onze opslagbehoeften. Onze eerdere ervaringen met traditionele opslagsystemen waren onbevredigend en we waren gemotiveerd om iets innovatiefs en potentieel robuusters te onderzoeken.
Ceph is een open-source opslagplatform dat is ontworpen om uitstekende prestaties, betrouwbaarheid en schaalbaarheid te bieden. Het verenigt object-, blok- en bestandsopslag in één cluster, waardoor het een veelzijdige oplossing is voor verschillende opslagbehoeften.
Na een analyse, waarin we concludeerden dat Ceph aan onze eisen op het gebied van redundantie en schaalbaarheid kon voldoen, gingen we over op het kiezen van de juiste hardware. De keuze viel op Supermicro-servers. De servers draaien op 2x AMD EPYC 7313 16-core processors en 128 GB RAM.
Voor de netwerkconfiguratie besloten we gebruik te maken van de bestaande infrastructuur met de twee onafhankelijke SAN's. Na wat aanvankelijke obstakels bij het vinden van de juiste configuraties en het wachten op de hardware, waren we klaar om te beginnen met testen. We stuitten echter al snel op een belangrijk obstakel.
In Ceph zijn er twee verschillende netwerken:
- Clusternetwerk:
- Gebruikt door de servers om gegevens onderling te synchroniseren.
- Openbaar netwerk:
- Behandelt clusterbeheerverkeer (MONITOR).
- Vergemakkelijkt Ceph-verbindingen met gegevensgebruikers, zoals virtualisatiehosts.
De uitdaging waarmee we werden geconfronteerd, was dat het openbare netwerk in Ceph slechts met één IP-netwerk kan worden geconfigureerd. Deze beperking had een aanzienlijke hindernis kunnen vormen voor onze redundantievereisten.
Om dit probleem aan te pakken, hebben we twee mogelijke oplossingen overwogen:
- Nieuwe switches:
- switches stapelen met LACP:
Eén voorstel betrof de aanschaf van nieuwe switches. Hoewel dit het probleem had kunnen oplossen, bracht het hoge kosten met zich mee en bood het beperkte extra voordelen.
Het tweede idee, dat ook veel werd geopperd op forums, bestond uit het stapelen van de switches en het gebruik van Link Aggregation Control Protocol (LACP). Deze aanpak was echter in tegenspraak met onze oorspronkelijke ontwerpfilosofie voor de twee SAN's. We hadden stapelen bewust vermeden vanwege negatieve ervaringen uit het verleden, zoals het splitsen van stacks tijdens gebruik, wat leidde tot netwerkuitval of het creëren van lussen die het hele netwerk verstoorden.
Innovatieve routeringsoplossingen voor Ceph
Tijdens het brainstormen over oplossingen kwam onze netwerkafdeling met een innovatief idee. Hoewel het openbare netwerk van Ceph slechts één IP prefix kan verwerken, is het niet nodig dat alle IP's binnen hetzelfde broadcast domein vallen. Dit inzicht leidde ertoe dat we het routeren van verkeer als een haalbare oplossing gingen beschouwen.
Initiële routering instellen
Onze initiële routeringsoplossing bestond uit het verbinden van twee Ceph nodes met elke SAN Layer 3 switch. De switches draaiden OSPF (Open Shortest Path First) en kondigden de netwerken van elk knooppunt aan. Elk knooppunt werd verbonden met behulp van alle vier de interfaces in een enkel LACP (Link Aggregation Control Protocol) poortkanaal. Deze aanpak bood verschillende voor- en nadelen:
Voordelen:
- Gemakkelijk in te stellen: OSPF draait op slechts vier switches, wat het configuratieproces vereenvoudigt.
- Overbodigheid van interface: LACP biedt redundantie op interfaceniveau, wat de betrouwbaarheid verbetert.
Minpunten:
- Invloed van een defecte switch: Het verliezen van een switch resulteert in het verlies van twee volledige Ceph nodes, waardoor de redundantie in gevaar komt.
- Beperkte load balancing: Load balancing is beperkt tot de LACP trunk, waardoor de beschikbare bandbreedte mogelijk niet volledig wordt benut.
Geoptimaliseerde routeringsoplossing
Ontevreden over de beperkingen van de oorspronkelijke aanpak, ontwikkelden we een robuustere oplossing: volledige routering. In deze configuratie voert elk Ceph knooppunt FRRouting (FRR) en OSPF onafhankelijk uit. Deze opzet biedt verschillende belangrijke voordelen:
- Verbeterde redundantie: Elk knooppunt is verbonden met twee switches, zodat het uitvallen van één schakelaar niet resulteert in knooppuntverlies. Om de betrouwbaarheid verder te verbeteren wordt Bidirectional Forwarding Detection (BFD) gebruikt voor detectie van storingen binnen een seconde in het geval van één of meerdere storingen in de verbinding. Bovendien wordt Equal-Cost Multi-Path (ECMP) routing gebruikt om meerdere redundante routes aan te bieden, wat de algemene veerkracht van het netwerk verbetert.
- Efficiënt gebruik van interfaces: Zowel het openbare als het clusternetwerk werken binnen hetzelfde gerouteerde netwerk, waardoor Ceph dynamisch gebruik kan maken van de volledige bandbreedte van de server voor beide netwerken op basis van de huidige vraag.
- Stabiele diensten: Cluster en publieke diensten draaien op loopback IP's, zodat ze niet gebonden zijn aan specifieke interfaces die kunnen uitvallen.
- Verbeterde taakverdeling: Lastverdeling wordt verbeterd door het gebruik van Equal-Cost Multi-Path (ECMP) routing, die elke bestemming voorziet van acht verschillende paden. Deze configuratie zorgt voor een effectieve verdeling van verkeer over meerdere routes, optimaliseert het bandbreedtegebruik en zorgt voor een evenwichtige verdeling van de belasting.
Resultaten en inzichten
Na het implementeren van de volledige routeringsoplossing voor ons Ceph cluster, hebben we een reeks tests uitgevoerd om de prestaties en redundantie te evalueren. Het is belangrijk op te merken dat de Ceph-instantie nog niet sterk geoptimaliseerd is, maar de eerste resultaten zijn veelbelovend. We behaalden random lees/schrijfsnelheden van 3,6 GB/s, wat een aanzienlijke verbetering is ten opzichte van onze vorige opstelling. Deze tests zijn uitgevoerd met benchmarking tools die voldoen aan de industrienormen om nauwkeurigheid en betrouwbaarheid te garanderen.
Naast het testen van de prestaties hebben we ook de redundantie van het systeem beoordeeld. Uit onze tests bleek dat een knooppunt op één na alle links kan verliezen zonder dat dit gevolgen heeft voor de functionaliteit, afgezien van een vermindering van de beschikbare bandbreedte. Op dezelfde manier kunnen alle inter-datacenter (Inter-DC) links, op één na, uitvallen zonder dat dit gevolgen heeft voor het systeem, hoewel dit ook resulteert in een verminderde beschikbare bandbreedte. Deze bevindingen bevestigen de robuustheid en betrouwbaarheid van onze gerouteerde Ceph-oplossing.
Toekomstplannen
Vooruitkijkend overwegen we verschillende verbeteringen om onze Ceph-infrastructuur verder te verbeteren. Een van onze belangrijkste doelen is om meer inter-DC links tussen de SAN's toe te voegen. Deze uitbreiding zal zorgen voor een nog betere load balancing aan de inter-DC kant, waardoor optimale prestaties en veerkracht worden gegarandeerd.
Door onze netwerkconfiguratie voortdurend te evalueren en te verfijnen, streven we naar een sterk geoptimaliseerd Ceph-cluster dat voldoet aan onze prestatie- en redundantievereisten en uiteindelijk onze kernactiviteiten effectiever ondersteunt.
Laatste artikelen
Praat met een expert
Praat rechtstreeks met onze experts die klaar staan om inzichten en antwoorden te geven.