Desktop Best Buy Guide
Wat is ZFS?
ZFS is een nieuw en geavanceerd bestandssysteem ofwel filesystem, met unieke eigenschappen. Zo heeft ZFS zijn eigen 'RAID' engine waarmee meerdere hardeschijven in diverse configuraties kunnen worden aangesproken.
Maar ZFS is strict genomen geen RAID, omdat het zich niet houdt aan een voorafgesproken statische verdeling van data conform een bepaalde RAID specificatie. ZFS maakt het bijvoorbeeld mogelijk om dynamische stripesize te gebruiken, iets wat bij normaal RAID onpraktisch danwel onmogelijk is. Simpel gezegd kun je stellen dat ZFS dankzij de fusie tussen RAID laag en filesystem zeer unieke eigenschappen heeft gekregen.
Wat zijn de voordelen van ZFS?
ZFS is een 'next-gen' filesystem en heeft alleen Btrfs en ReFS als concurrenten. Btrfs is nog sterk in ontwikkeling en door de GPL licentie beperkt tot de Linux kernel. ReFS is het antwoord van Microsoft op de tekortkomingen van inmiddels behoorlijk gedateerde filesystems die we gebruiken, we noemen ze daarom legacy filesystems omdat deze eigenlijk gemaakt zijn voor een ander tijdperk. Alle platforms (Windows, Linux en UNIX) hebben dus hun eigen next-gen filesystem in de koker, maar ZFS is op dit moment het meest stabiel en volwassen en volledig production ready op meerdere besturingssystemen.
Een overzicht van enkele voordelen van ZFS versus legacy filesystems:
- Checksums waken over de integriteit van je bestanden, en in het geval dat er toch corruptie plaatsvindt zie je precies welke bestanden dit treft. Nooit meer 'silent corruption' dus!
- Intelligente afhandeling van onleesbare sectoren (bad sectors) - deze worden automatisch gecorrigeerd door deze te overschrijven met redundante data indien beschikbaar. Met ZFS ben je vrijwel immuun voor het probleem van bad sectors wat steeds groter wordt met de stijgende datadichtheid.
- Self Healing; het on-the-fly automatisch repareren van corruptie en bad sectors, mits er voldoende redundancy beschikbaar is zoals in een mirror of RAID-Z configuratie.
- Dynamische stripesizes betekent dat ZFS niet kwetsbaar is voor de zogenaamde 'write hole'; ZFS kent geen read-modify-write. Dit is een technisch belangrijk voordeel van RAID-Z boven RAID5 wat grote voordelen heeft op gebied van betrouwbaarheid én random write prestaties.
- ZFS bewaakt de consistency van zijn filesystem en application data door transaction groups en ZFS Intent Log (ZIL); onverwachte stroomstoringen zouden nooit ZFS mogen beschadigen.
- ZFS kan één of meerdere SSDs inzetten als intelligente caching (L2ARC) wat vergeleken kan worden met de Smart Response Technology (SRT) van Intel, wat je ook in staat stelt om een HDD te cachen met een SSD. Het verschil is dat ZFS dit kan doen zonder de betrouwbaarheid aan te tasten; als je SSD corrupt raakt wordt dit opgemerkt en wordt er van de HDD RAID array gelezen, Intel SRT en andere oplossingen kunnen dit niet en dus is deze feature niet helemaal veilig, in tegenstelling tot ZFS waar L2ARC geen risico toevoegt.
- Snapshots zijn een verademing voor backups. Maak een snapshot en je kunt vrij rommelen, niet goed dan doe je een rollback. Het concept van een snapshot is al heel oud, maar de manier hoe het werkt bij ZFS maakt dat het gebruik ervan zeer flexibel werkt en heel economisch is met opslagruimte; alleen wijzigingen - de 'delta' - kosten opslagruimte.
Zelf zou ik een aantal andere meer praktische argumenten aanvoeren:
- ZFS geeft je een betrouwbare RAID layer en zorgt dus dat je de foutgevoelige ouderwetse RAID layers volledig uitschakelt. Het filesystem zit 'direct' aan de disks en samen met checksums geeft dit je veel meer bescherming voor je bestanden.
- ZFS bespaart je kosten omdat je geen dure TLER-schijven hoeft te kopen, geen hardware RAID en UPS/BBU. Gewone desktopschijven werken prima met ZFS op een gewone non-RAID controller.
- ZFS kun je uitstekend als backup combineren. De snapshots zijn heel krachtig om incremental backups te maken. Het idee is dat je terug in de tijd kunt bladeren en zien hoe je bestanden toen waren. Dat is een krachtige feature om perongeluk deleted files of een virus die aan je bestanden knaagt af te dekken.
- ZFS laat je lekker flexibel met data omgaan en data erop pleuren en 'vergeten'; je hoeft er niet meer naar om te kijken. ZFS is heel onderhoudsarm dankzij de self-healing. Op een moment dat ZFS filesystemschade tegenkomt, repareert het dit vanzelf.
Hoe gebruik ik ZFS?
ZFS draait niet op Windows, maar op diverse UNIX-achtige besturingssystemen. Solaris en FreeBSD bieden daarbij de beste ZFS implementaties, met name omdat ze lange tijd 'gerijpt' zijn en gestabiliseerd, iets wat cruciaal is voor een complex filesystem als ZFS. Bugs in ZFS kunnen gemakkelijk corruptie veroorzaken naast de gebruikelijke crashes of freezes. Op dat gebied is het derde platform wat ZFS kan draaien, Linux, nog ietwat jong om als volwassen aan te merken. Toch heeft ZFS-on-Linux met een moderne kernelimplementatie van ZFS grote voorgang geboekt in ondersteunde features. Daarmee maakt ZFS op Linux een inhaalslag van de beroerde Linux-ondersteuning in het verleden.
Wat de meesten echter doen is een simpele allround ZFS oplossing kiezen. Dit zijn platforms die gebaseerd zijn op Solaris of FreeBSD maar wel via een web-interface vrij eenvoudig te configureren zijn. Hieronder vallen voornamelijk Nexenta, FreeNAS, Nas4Free en ZFSguru. Elk van de genoemde projecten hebben hun eigen sterke maar ook zwakke punten. Je kunt je eigen mening vormen door ze zelf uit te proberen in een virtualisatieengine zoals Virtualbox.
Uiteraard betekent dit dat je een apart systeem helemaal voor ZFS bouwt; een echte NAS - Network Attached Storage.
Waarom zou ik dit willen? Waarom niet gewoon Windows opslag of een Synology NAS?
Zowel Windows Home Server als Synology bieden mooie interfaces die heel toegankelijk zijn. Maar de onderliggende technologie kan niet hetzelfde niveau van bescherming bieden als ZFS. Het grootste probleem daarbij is dat het filesystem noch de RAID laag bescherming kunnen bieden tegen corruptie of bad sectors.
Juist die bad sectors zijn tegenwoordig een steeds groter wordend probleem. De datadichtheid van hardeschijven neemt steeds verder toe waardoor hardeschijven groter worden in capaciteit. Echter, het niveau van errorcorrectie stijgt niet mee. Dit betekent dat door de jaren heen bad sectors een stuk vaker voorkomen. Niet bad sectors die fysieke schade betreffen, maar de onleesbare sector door simpelweg onvoldoende errorcorrectie. Deze sectoren kan de hardeschijf niet lezen, maar zodra je hem overschrijft met nieuwe gegevens zijn alle problemen opeens opgelost. Dit type bad sector kwam vroeger relatief veel minder vaak voor. Tegenwoordig komt het dus veel vaker voor dat een hardeschijf mechanisch in orde is, maar toch een paar sectoren niet kan lezen totdat ze worden overschreven. Maar trekt het filesystem dat wel, als er zomaar gaten in diens gegevens worden geschoten?
Juist nu de reguliere filesystems achterlopen op het niveau van bescherming dat moderne hardeschijven eigenlijk vereisen, wil je in tijd tijdperk heel graag ZFS draaien. Vooral omdat ZFS momenteel het enig goed uitontwikkelde filesystem is wat een zeer hoog niveau van bescherming kan bieden aan je data. Zo weet je zeker dat jouw vergaarde data niet verloren gaat maar behouden blijft in elk geval tot het tijdperk dat betrouwbare opslagtechnologie gemeengoed is geworden. Het is heerlijk om immuun voor bad sectors te zijn in een tijdperk waarin dit eigenlijk normaal is voor moderne hardeschijven. Zo kun je rustig slapen, wetende dat jouw gegevens goed beschermd zijn.
Meer weten? Op het forum van Tweakers.net is een groot topic over ZFS met veel informatie in de startpost te vinden: Het grote ZFS topic