- Copy-on-write questa tecnica è forse uno fra i più grandi vantaggi del file system. Per illustrare meglio come funziona questo principio facciamo un piccolo esempio. Immaginiamo un file da 1Gb, ad esempio un film. Se facessimo ora una piccola modifica al finale di quest'ultimo, risalvando il file avremo occupato ancora 1Gb di memoria, calcolando l'originale, in totale 2 Gb di memoria occupata. Salvando la versione modificata sul file system ZFS, quest'ultimo si limita invece ad una copia "virtuale" del file originale (essendo magari per il 99% uguale all'originale) andando unicamente a scrivere sul disco la parte modificata (da qui copy-on-write). Alla fine avremo un totale di memoria occupata pari a 1Gb e qualche Mb relativi alla parte modificata. Questo principio non solo fa risparmiare spazio fisico sul disco; in un sistema operativo vengono spesso duplicate delle risorse per svariate operazioni. A questo punto, fino al momento che una copia non viene modificata non esiste una vera necessità ad avere "fisicamente" la copia della risorsa; come già detto ZFS simula la copia e scriverà dei dati sul disco solo al momento in cui saranno veramente necessari e in ogni caso, solo le parti modificate. Visto in questo modo, in questo caso non si tratta di risparmiare qualche byte sul disco, ma bensì di risparmiare un'enormità di tempo (sempre a seconda della grandezza dei files e dalla frequenza delle operazioni), aumentando conseguentemente le prestazioni del sistema (o di un programma).
- Snapshot uno snapshot è una copia di file o directory in un determinato momento (immaginiamoci la similitudine del termine con una fotografia che riproduce una situazione ad un tempo preciso). Dal momento che ZFS non sovrascrive i dati nei loro blocchi originari, i blocchi contenenti dati "vecchi" non saranno cancellati. Grazie a questa proprietà del file system, oltre ad avere snapshot rapidi, possiamo ripercorrere lo stato di file e directory in dietro e in avanti nel tempo; questo permette di effettuare back up "dinamici" come ad esempio con il noto software "Time Machine" di casa Apple.
I "pregi" del file system ZFS non sono certo finiti qui; per chi volesse ulteriori informazioni può consultare la webografia al termine dell'articolo.
Debian GNU/Opensolaris
Come abbiamo visto sopra, Nexenta cerca di usufruire dell'organizzazione dei pacchetti e della stabilità di ubuntu LTS (alias, base debian) e delle potenzialità di opensolaris, come visto, soprattutto legate al file system ZFS. Ma come mai non è mai nata una debian GNU/Opensolaris? A quanto si può scrutare in rete la motivazione non è certamente mancata. Il problema, se di problema si può parlare, va cercato nelle licenze e soprattutto nella CDDL, quest'ultima non compatibile con le DFSG (Debian Free Software Guidelines). La CDDL è per altro molto simile con la MPL (Mozilla Public License); ma come mai vediamo allora tanti plugins di mozilla nei repository principali di debian? Il "trucco" sta questa volta nelle "doppie-licenze": la mozilla rilascia i suoi plugins con licenza MPL E GPL; non fracassatevi ora la testa per comprendere, ma con questa "strategia" non ci sarebbero problemi "legali". Sempre cercando per la rete si trovano informazioni sparse risalenti al 2007 dove la Sun voleva affiancare la GPLv3 ad opensolaris (non è comunque esattamente chiaro se il file system sarebbe anch'esso stato targato con doppia licenza), ossia alla CDDL. A quanto mi risulta questa licenza non è, però, mai stata attribuita, e fino ad oggi opensolaris e il file system ZFS restano per debian un tabù.
Inoltre non impazzirò per capire cosa ci faccia un pacchetto come zfs-fuse nel repository main di debian, il quale permette di installare ZFS come file system virtuale nello userspace (FUSE)... Mah!! Sarò lieto di sentire chiunque di voi ci capisca qualcosa con queste licenze...