- 14-10-24Digitale soevereiniteit: wat betekent het voor jou en je bedrijf?
- 15-07-24Vrijheid van meningsuiting versus censuur
- 08-07-24Statistieken in de BIT Portal
- 18-06-24Waarom iedere website een security.txt nodig heeft
- 11-06-24Black Building Test bij BIT
- 13-05-24Certificaatvrijheid met Let’s Encrypt
- 08-04-24Echte mensen, echte service: bereikbaarheid bij BIT
- 28-02-24De sleutel voor RocksDB performance
- 14-02-24Timeseries data bij BIT
- 06-02-24Tweestapsverificatie (2FA): Versterk je online beveiliging
Software Defined Storage van Ceph voor alle mogelijke smaken storage
Wellicht is het je ontgaan, maar BIT heeft zijn storage appliances ingeruild voor iets hips. Dat hips heet Ceph en vormt nu de basis voor alle smaken storage die je bij ons kunt krijgen. We hebben begin dit jaar het era van proprietary storage afgesloten en zijn het tijdperk van Software Defined Storage (SDS) binnengetreden.
Waarom?
Met de opkomst van virtuele machines wilden we een basis leggen voor stabiele storage. We hebben toen gekozen voor een NetApp metrocluster. Ondanks dat deze techniek bewezen is hebben we veel moeten investeren in het ondersteunen van de oplossing. We zijn tegen talloze bugs aangelopen en hebben er een kluif aan gehad om alles stabiel te houden. Één van de onoverkomelijke problemen bleek echter de performance. Ondanks het toevoegen van disk capaciteit (meer spindles) resulteerde dit niet in een betere performance. De filer kon de steeds toenemende IO vraag niet aan en zorgde daardoor voor steeds langere wachttijden van IO operaties; beter bekend als 'latency'. Dit is een bekend probleem bij storage systemen die alleen verticaal kunnen schalen; de controller vormt de bottleneck. De 'oplossing' voor het probleem is dan het vervangen van de controller voor een krachtiger exemplaar, met navenant stijgende licentie- en supportkosten. Dit schaalt niet, zowel niet qua performance als economisch.
Toekomst van storage
De toekomst van storage ligt volgens ons in gedistribueerde, softwarematige storage-oplossingen op basis van standaard hardware. Hierbij neemt bij iedere extra server zowel capaciteit als performance toe. Dit schaalt 'horizontaal' waardoor dergelijke oplossingen zowel kunnen groeien als krimpen. Al gebeurt dat laatste vrijwel nooit.
Één van die softwarematige oplossingen is Ceph, dat ook nog eens open source software is. In tegenstelling tot veel andere oplossingen, kent Ceph geen 'Single Point Of Failure' (SPOF). Ceph maakt gebruik van ingenieuze, wiskundige algoritmes om data te lezen en weg te schrijven in het cluster. Ook heeft het geen alleswetende controller nodig welke een bottleneck kan vormen. Die data wordt weggeschreven in de vorm van objecten. Dit betekent overigens niet dat Ceph niet stuk kan. Het blijft software en bevat dus bugs. En die bugs kunnen ervoor zorgen, en dat is ook bij ons al eens gebeurd, dat bepaalde objecten in geen enkel datacenter beschikbaar zijn (failure domain) en dus voor (gedeeltelijke) onbeschikbaarheid kunnen zorgen.
Nog een voordeel van Ceph is dat het weet waar je data zich bevindt. Dus op welke disk, server, rack en datacenter een object staat. Door middel van plaatsingsregels kun je Ceph instrueren om meerdere kopieën te maken van een object en waar deze zich moeten bevinden. BIT maakt hiervan gebruik om van ieder object twee replica’s te maken en deze in verschillende datacenters op te slaan. De data staat dus in totaal op drie verschillende locaties.
Gecorreleerde storingen binnen een datacenter (denk aan koeling- of stroomstoring) zorgen dan niet voor downtime, omdat het cluster met de overige twee datacenters (meerderheid) blijft functioneren. Zo’n situatie hebben we al eens meegemaakt. Tijdens onze halfjaarlijkse black building test viel de stroomvoorziening voor 1/3 van het Ceph cluster weg. Toch bleef het cluster op dat moment functioneren met de meerderheid van de nodes en is deze, nadat de stroom weer terug was, volledig automatisch (zonder tussenkomst van engineers) hersteld.
Hip?
Ceph is vergelijkbaar met een Zwitsers zakmes als het aankomt op de mogelijkheden die het biedt. Zowel block, file als object gebaseerde interfaces zijn beschikbaar. Je kunt het dus gebruiken voor storage voor je virtuele machines, als shared filesysteem en als S3 alternatief. Als je liever helemaal zelf de controle wil houden dan is er de mogelijkheid om tegen de API te programmeren middels librados (diverse bindings zijn beschikbaar). Echter maken wij van deze laatste optie geen gebruik omdat het op multi-tenant systemen risico's op kan leveren.
In volgende blogposts zullen we uitgebreid uit de doeken doen hoe ons cluster in elkaar steekt en wat de mogelijkheden zijn.
Door: Stefan Kooman