29-12-2009 12:04:33

Sinds enige tijd draait er bij BIT een vreemde eend in de bijt mee. Een server met daarop OpenSolaris heeft een plekje gevonden in onze racks tussen de Ubuntu-servers. Breekt BIT met Ubuntu? Heeft BIT een SUN-steek? Dat zal toch niet?

Nee hoor! Wij van BIT vinden Ubuntu GNU/Linux nog steeds de bom, maar in Linux mist een filesystem waar SUN mee op de proppen is gekomen: ZFS. Dit is dé nieuwe manier van omgaan met filesystems en storage.

Nu zijn er talloze filesystems om uit te kiezen, maar voor ZFS heeft SUN er net wat langer over nagedacht. Bij de ontwikkeling van het filesystem hebben ze al rekening gehouden met diverse features waar je met een ‘normaal filesystem’ externe tools voor nodig hebt. In het kort bestaat ZFS uit een ‘zpool’ met beschikbare storage waar een onbegrensd aantal ‘zfs-filesystems’ op kan worden aangemaakt. Elk zfs-filesystem heeft zijn unieke eigenschappen en kan onafhankelijk van de andere filesystems worden bewerkt. Enkele voordelen van ZFS boven andere filesystems:

Kortom, ZFS is een filesysteem wat speciaal is ontwikkeld voor situaties waar met veel en grote datasets wordt gewerkt. Helaas is ZFS ©opyright SUN en valt deze licentie niet samen te voegen met de licentie van de Linux kernel. ZFS zal dus niet in deze exacte vorm beschikbaar worden binnen Ubuntu GNU/Linux. BTRFS is voor Linux een goeie kanshebber maar is nog volop in ontwikkeling en onderwerp voor een andere blogposting.

BIT heeft besloten de sprong te wagen en is in het diepe gedoken. Na een paar weken stoeien met OpenSolaris, om de lang vergeten kennis weer op te duiken, hebben we onze eigen machines laten backuppen op dit nieuwe systeem.
En dit tot ons volle genoegen!

Nu wordt ‘t even technisch, maar aan de manier waarop wij backups maken is eigenlijk niet veel veranderd. We maken alleen geen gebruik meer van de rsync optie ‘–link-dest’. Deze optie gebruikten we voorheen om snapshots ‘na te bootsen’. De –link-dest optie maakte ‘hard-links’ naar bestanden die gisteren hetzelfde waren als vandaag. Zo bewaarden we één kopie van onveranderde data en per dag alleen alle afwijkende data. Het bracht echter een zeer groot nadeel met zich mee: elk bestandje en elke directory die we backupten moest worden gecontroleerd tegen een complete set aan backups op ons systeem om te bepalen of we konden hard-linken of data moesten opslaan. Dit proces maakte rsync, en daarmee ons backup-proces, tergend traag.

Met ZFS is dit niet langer nodig. Voor we de backup van een systeem beginnen maken we een ‘snapshot’ van de backup van dat moment en kopieren daarna, net als vroeger, alle veranderde bestanden. Het ‘snapshot’ neemt in eerste instantie geen ruimte in op onze storage. Pas als er files gewijzigd zijn wordt de vorige versie in deze speciale ‘snapshot’ geplaatst voor de nieuwe versie er komt te staan. Zo kunnen we altijd terug naar vorige versies zonder dat wij hoeven na te denken over hoe we dit voor elkaar gaan krijgen.

Naast dit alles kunnen we met ZFS garanderen dat de ruimte die je bij ons afneemt voor je backup, ook beschikbaar is. Binnen ZFS heet dit ‘reservation’. Voor elke server die we backuppen stellen we de afgenomen ruimte vast en kunnen zo onmogelijk meer ruimte toekennen dan er in werkelijkheid is. Door het quota binnen het zfs-filesysteem hoger te zetten staan we toe dat servers zo nu en dan eens wat meer ruimte gebruiken dan ze afnemen, maar hier volgen dan al gauw brieven en telefoontjes over.

Als laatste key-feature wilde ik de live data (de)compression aanstippen. Hiermee wordt de backup ‘gezipt’ opgeslagen op onze storage maar kan je er mee werken alsof het normale files zijn. Misschien herinner je je nog ‘Stacker’ van vroeger? Zo kan je dit ook zien. De hardware van tegenwoordig is echter zo snel dat je deze compressie-slag niet merkt. Op dit moment van schrijven hebben wij een server die dertien(!!) maal minder ruimte gebruikt door toepassing van compressietechnieken. Dit scheelt BIT in storage en deze klant in kosten! Win-win.

Al met al is BIT dus erg verheugd met de komst van deze vreemde eend in onze racks, maar breken met Ubuntu?

Dat nooit! :-)