Het zat er al een tijdje aan te komen, maar nu heeft Jeff Bonwick, leider van het team dat ZFS ontwikkelt, de code voor deduplicatie in ZFS toegevoegd aan de OpenSolaris-repository. Opname van de code in OpenSolaris is gepland voor build 128 (de huidige ontwikkelversie is build 126).

Astronomisch kleiner

Bonwick beschrijft op zijn blog uitgebreid de nieuwe functionaliteit. ZFS zorgt voor deduplicatie op blokniveau, wat een natuurlijke match is voor de 256-bit checksums die ZFS al op elk blok berekent om fouten te herkennen. Door in de plaats van een eenvoudige checksum een cryptografisch sterke hash zoals SHA256 te berekenen, kan het besturingssysteem identieke blokken identificeren. De kans dat twee verschillende blokken een identieke SHA256-hashwaarde hebben is verwaarloosbaar en volgens Bonwick astronomisch kleiner dan de kans op een niet gedetecteerde en niet gecorrigeerde ECC-geheugenfout op de betrouwbaarste hardware.

De implementatie van dedup in ZFS gebeurt synchroon, wat betekent dat een blok voordat het naar de schijf geschreven wordt onmiddellijk op duplicatie gecontroleerd wordt door het berekenen van zijn SHA256-checksum. Als het een duplicaat van een al bestaand blok blijkt te zijn, wordt het blok niet opnieuw geschreven. Deduplicatie kan in ZFS eenvoudig ingeschakeld worden als een eigenschap van een storage pool, maar kan ook voor specifieke datasets in- of uitgeschakeld worden.

Betere performance

Wanneer de gegevens geen duplicaten bevatten, zorgt het inschakelen van deduplicatie in ZFS voor overhead, maar met genoeg duplicaten bespaart de functie niet alleen ruimte maar zorgt ze ook voor een betere performance, aangezien er minder naar de schijf geschreven hoeft te worden en verschillende toepassingen dezelfde geheugenpagina's kunnen delen. Deduplicatie is daarom vooral voor backupservers en images van virtuele machines heel interessant. De meeste onderdelen van virtuele machine images zijn identiek, namelijk een kopie van hetzelfde gastbesturingssysteem, en slechts een beperkt aantal blokken is uniek per virtuele machine. Bron: Techworld