Journalistiek

Onpartijdig, onafhankelijk nieuws, uitsluitend in dienst van het branchebelang.

Storage Stories: ZFS

  • Door
  • dr. Serge Gielkens
  • geplaatst op
  • 26 januari 2016 08:00 uur

Voor de rubriek Storage Stories beschouwen we deze deze keer ZFS. Dit is een software oplossing om diskbeheer, logical volume management en bestandssysteem onder één dak te brengen. Sun Microsystems heeft ZFS ontwikkeld en in 2005 uitgebracht als onderdeel van haar besturingssysteem OpenSolaris, de open source variant van Sun Solaris. Een jaar later in 2006 werd het toegevoegd aan Solaris 10. Sinds haar overname in 2010 van Sun biedt Oracle ZFS nu aan in haar storage oplossingen. Het open source project OpenSolaris is na de overname ter ziele gegaan maar de community zet de ontwikkeling voort. ZFS is daardoor nog steeds beschikbaar voor anderen en wordt inmiddels ook gebruikt door het besturingssysteem FreeBSD.

Zpool

ZFS werkt met devices onder de naam vdev. Een vdev kan een lokale disk, partitie of zelfs bestand zijn. In productie worden normaliter disks gebruikt als vdev. Oracle adviseert om partities en bestanden alleen te gebruiken voor testdoeleinden. Vdev’s kunnen ook genest worden.

Dergelijke vdev’s worden samengevoegd tot een storage pool. Dit is de zpool. Disks in een zpool mogen heterogeen zijn. Extra disks kunnen worden toegevoegd aan een bestaande zpool. Deze kunnen ook als hot spare geconfigureerd worden. In geval een nieuwe disk wordt toegevoegd, past ZFS dynamisch de stripe size aan om de throughput te verhogen.

RAID-Z regelt de redundantie. ZFS ondersteunt mirroring en redundancy op basis van parity. RAID-Z ondersteunt het uitvallen van maximaal drie disks. Hardware RAID wordt afgeraden daar dit interfereert met de eigen software implementatie van RAID-Z. Als een hardware RAID-controller toch aanwezig is, raadt Oracle aan om het in JBOD mode te zetten. RAID-Z heeft geen speciale hardware nodig. Consumer grade disks volstaan voor ZFS. Behalve redundantie over meerdere disks heen, kan ZFS ook kopieën van data in meerdere blocks op een disk opslaan.

ZFS gebruikt altijd RAM om te cachen. Daarnaast kan ook SSD gebruikt worden. ZFS ondersteunt zowel read als write cache. Voor ZFS is de write cache feitelijk niets anders dan een speciaal type vdev, namelijk een log device. Als er geen write cache gedefinieerd wordt, maken zpools altijd zelf een vdev van het type log device aan. Hierop schrijft ZFS als eerste de data weg.

ZFS file system

In de zpool maakt de beheerder bestandssystemen aan. Een ZFS file system groeit dynamisch naar gelang de behoefte. Elk bestandssysteem heeft toegang tot de volledige capaciteit van de zpool waartoe hij behoort. Na het aanmaken is een ZFS file system in eerste instantie alleen lokaal benaderbaar. Door het zetten van de juiste eigenschappen kan het bestandssysteem ook als shared filesystem benaderd worden. ZFS ondersteunt zowel NFS als CIFS.

Een beheerder kan in de zpool ook volumes aanmaken. ZFS noemt dit een zvol. Deze volumes verschaffen toegang op block niveau tot ZFS storage. Net als het ZFS file system maakt een zvol ook automatisch gebruik van de onderliggende ZFS functionaliteit zoals RAID-Z, snapshots en compressie. ZFS ondersteunt alleen het iSCSI protocol. Volumes worden typisch ingezet als backend storage voor VM’s.

In ZFS worden file systems en volumes aangeduid met de overkoepelende term dataset. Een ZFS dataset kan tussen verschillende zpools gemigreerd alsook synchroon gehouden worden. ZFS gebruikt daartoe haar snapshot functionaliteit. Door delta’s tussen verschillende snapshots te berekenen en die over te sturen, vindt synchronisatie op efficiënte wijze plaats. Zpools mogen op verschillende sites staan. Dit wordt gebruikt voor offsite back-ups en HA oplossingen. ZFS is echter geen geclusterd bestandssysteem. Elke ZFS server beheert enkel zijn eigen lokale storage.

ZFS gebruikt de snapshot technologie eveneens om datasets te clonen. Een dergelijke clone is niets anders dan een writable snapshot.

Data

Data-integriteit is ingebouwd om datacorruptie te voorkomen. Checksums worden berekend en in de pointers naar de datablocks opgeslagen. Dit wordt vervolgens recurrent gedaan voor de pointer blocks tot en met de root van het bestandssysteem. Bij het opvragen van data worden de checksums van al deze blocks geverifieerd. Als er een mismatch is tussen berekende en opgeslagen waarde, worden de redundante gegevens opgehaald om weer de juiste data te reconstrueren. Een beheerder kan de controle van de data-integriteit van een dataset ook handmatig opstarten. Daartoe dient de scrub tool die van een volledige dataset alle data en metadata controleert en repareert waar nodig.

ZFS comprimeert data eveneens. Dit gebeurt echter alleen voor nieuwe en gemodificeerde data. Oude data blijven ongecomprimeerd. Een alternatieve methode om efficiënt met storage om te gaan is deduplicatie. ZFS doet dit op block-niveau. In tegenstelling tot compressie is deduplicatie resource intensief. De systeembeheerder moet daarom zorgen voor ruim voldoende RAM geheugen.

Tot slot

ZFS speelt geen hele grote rol in de storage wereld. Sun leed tijdens haar bestaan al aan een steeds verder teruglopend marktaandeel. Ook Oracle lijkt vooralsnog ook het tij niet echt te kunnen keren met Solaris en ZFS. In de open source wereld is ZFS evenmin populair. Oplossingen die gebruik maken van Ceph bijvoorbeeld leunen of op traditionele bestandssystemen zoals XFS of richten hun pijlen meer op Btrfs. Het is duidelijk dat Oracle nog heel wat werk moet verzetten.

Jeroen, 26 januari 2016 5:31 pm

Ik kan toch een aantal grotere partijen in NL opnoemen die ZFS gebruiken voor hun dataopslag/als VM storage, met wisselende successen. Wij hebben het ook gebruikt en zijn er mee gestopt, gaf teveel problemen (Nexenta in ons geval).

Wouter, 7 februari 2016 12:01 am

Jammer dat ZFS on Linux niet vermeld word. Word hier in een productieve omgeving met veel plezier en succes gebruikt.

Serge Gielkens, 7 februari 2016 12:58 am

ZFS is inderdaad ook als kernel module door derden voor Linux beschikbaar. De kernelontwikkelaars richten echter hun pijlen op Btrfs door de incompatibele licentie van ZFS. Natuurlijk zijn succesverhalen altijd interessant. Ik hoor graag over welke productie-omgeving het hier gaat.

Laatste reacties

Bedankt voor het succes van ISPam.nl
Koen Stegeman, Editor-in-Chief & founder Hostingjournalist.com: Jammer Arnout, maar je hebt een mooie bijdrage aan de hosting industrie geleverd, en dat jaren lang....

Bedankt voor het succes van ISPam.nl
Dillard Blom: Jammer dat een 'instituut' verdwijnt, en daarmee een bron van informatie over actuele zaken (en opin...

Bedankt voor het succes van ISPam.nl
L.: Uit automatisme kijk ik toch nog steeds elke dag naar ispam.nl, toch de hoop dat er nog een berichtj...

Bedankt voor het succes van ISPam.nl
Toni Donkers: Arnout bedankt! ik ga het missen dat is een feit!

Bedankt voor het succes van ISPam.nl
Marcel Stegeman: Ik zie het nu pas. Inderdaad jammer maar ik kijk nu al uit naar het volgende project.