Storage Wars

Storage: NFS, iSCSI, Ceph, ZFS, XFS, EXT4, BTRFS, centraal, lokaal, redundant, enkel, met cluster, zonder cluster. GEK word je ervan. Iedere sysadmin zal het beamen, storage is altijd een probleem. Je moet altijd keuzes maken, en de keuze die je maakt lijkt op dat moment de mooiste optie met het minste risico op downtime en dataverlies. Maar de markt blijft in beweging en er komen nieuwe features, nieuwe ideeën, betere oplossingen.

Tuxis is daarbij geen uitzondering. Ook wij hebben al verschillende smaken gehad. We zijn van NFS op Linux naar NFS/ZFS op FreeBSD gegaan, naar iSCSI/ZFS op FreeBSD. Maar nu hebben we iets nieuws, waarbij we denken dat we (voorlopig) klaar zijn voor de toekomst. En die toekomst heet Ceph.

Wie?

Ceph. Een product dat ontwikkeld is door Inktank. Ceph is ‘Software Defined Storage’. De software bepaalt waar uw opslag leeft. Niet een kabel die van een controller naar een disk loopt, maar een configuratiefile, die Ceph dicteert hoe het met de aangeboden hardware om moet gaan.

En dus?

En dus hebben wij Ceph verteld dat het uitgebreid gebruik moet maken van onze meerdere locaties in Ede. In ieder datacenter hebben we een server geplaatst met (op dit moment) drie SSD-schijven. Die machines zijn in een cluster gestopt, waardoor Ceph negen disken ziet. De disken zijn allemaal losse disken. Geen RAID, geen meerdere paden, niets. Gewoon disken in een server. Ceph weet echter in welke server ze zitten, en in welk datacenter die server hangt. Vervolgens kunnen we in het cluster een pool aanmaken. En met die pool begint de magie.

Magie!?

Jazeker. We hebben Ceph verteld dat we willen dat ie alle data dubbel opslaat. Waar Ceph dat precies doet, maakt ons niet zoveel uit, als hij maar zorgt dat de twee kopieën niet in hetzelfde datacenter staan. Resultaat: Welk datacenter er ook uitvalt, er is altijd een kopie van de data.

Ha. Ha! Maar toen ging er een tweede server stuk!!
Ja, nou. Dat ligt niet in de lijn der verwachting. Maar Ceph doet z’n best om altijd aan de voorwaarden (twee kopieën, in verschillende datacenters) te voldoen. Dus op het moment dat een van de drie datacenters wegvalt, schrikt het cluster even. Van een derde van de data is geen tweede kopie! Aan de arbeid! Het cluster gaat als een malle aan de slag om ervoor te zorgen dat van de data waarvan maar een kopie is, een tweede kopie te maken in het andere datacenter. En voila, een tweede server kan uitvallen.

En dan is er nog steeds niets stuk!?
Jawel. Als twee van de drie machines uitvallen is het cluster stuk. Tenminste, het stopt met het serveren van data. Maar er is geen data kwijt (mits het opnieuw kopieren in de bovenstaande stap klaar is). Maar omdat een minderheid van een cluster nooit kan vinden dat het weet hoe de staat van het cluster is, stopt alles. Totdat we zorgen dat er weer een machine terug is, of handmatig een zetje geven aan de overgebleven machine.

Dus nu draait ALLES op Ceph?
Nee. Ceph kan heel goed object-storage doen, en met RBD kan het heel goed disk-images aan een VM leveren. Maar files is het (nog) niet zo goed in. En filestorage hebben we heel hard nodig voor onze Kerio Connect in de Cloud-, Bestandonline– en webhostingdienst nodig. Dus daar doen we nog gewoon NFS, op FreeBSD. Maar alle virtuele machines hebben we in de afgelopen weken (dankzij Proxmox zonder een seconde downtime) verhuisd naar Ceph. We kunnen alle VM’s dus een ‘PureSSD’-stempel geven. En een MultiSiteStorage-stempel.