Fuse e Zfs un pò di storia
Il progetto nasce tra Aprile e Maggio del 2006 grazie alla sponsorizzazione di Google nell’ambito del Google Summer Of Code 2006.
Si tratta di un porting in piena regola: partendo dai sorgenti di ZFS rilasciati dal team di sviluppo di OpenSolaris,si affrontano e si risolvono i primi problemi di integrazione, basati principalmente sulla disponibilità delle librerie di sistema (presenti su Solaris, ma non su Linux) utilizzate nel codice di ZFS, per arrivare nell’arco di poche settimane ad una pre-alfa scaricabile di zfs-fuse.
A distanza di un mese il codice subisce la prima, intensa revisione con la finalità di eliminare dai sorgenti una serie di direttive plausibili su Solaris, ma sconosciute al gcc. Passo inevitabile per le finalità del porting, ma anche amaro per l’autore, che avrebbe preferito mantenere la maggiore aderenza possibile al codice sorgente originale, per ovvie ragioni di sostenibilità nel tempo e di merge con future revisioni e rilasci di ZFS.
Nell’arco delle settimane successive vengono raggiunti i primi risultati soddisfacenti. Ad Agosto viene resa disponibile per il download una nuova pre-alfa (la 0.2) che consente di giochicchiare con i pool e di creare dei filesystem, anche se non ancora di eseguirne il mount.
Questa funzionalità verrà infatti implementata (in sola lettura 1) solo nel rilascio successivo, datato 15 Dicembre 2006. Ma il supporto per la scrittura non tarderà ad essere rilasciato
Il 2007 si apre con una novità interessante: è disponibile la prima distribuzione Linux con il supporto per zfs-fuse, Si tratta di Parted Magie, il cui mantenimento è curato da Patrick Verner. Si tratta di un riconoscimento importante per il lavoro amatoriale che offre come gradevole effetto collaterale la possibilità di provare zfs-fuse senza dover affrontare la fase di compilazione dei sorgenti e di conseguenza fornendo al progetto un potenziale bacino di beta tester prima insperabile.
Nelle settimane successive verranno infatti inviate numerose segnalazioni di bug che porteranno, all’inizio di Marzo del 2007, al rilascio della prima versione beta.
Molte funzionalità importanti non sono ancora presenti (ad esempio la possibilità di eseguire il mount degli snapshot o di utilizzare i comandi send e recv di ZFS), tuttavia,il rilascio di questa beta rappresenta un momento importante nella storia del progetto. I bug più maliziosi sono stati risolti (a parte un imbarazzante problema di corruzione nei volumi raidz) e le prestazioni hanno raggiunto un livello accettabile: zfs-fuse è pronto per il grande pubblico!
Per il rilascio successivo sarà necessario attendere oltre un anno. La nuova beta viene infatti resa disponibile solo il 13 Settembre 2008, con un improbabile balzo dalla 0.4.0 alla 0.5.0 parzialmente giustificato dall’introduzione di feature importanti come l’I/O asincrono, la compressione gzip, i comandi di send e recv e l’esecuzione in modalità demone. Dal rilascio delle seconda beta ad oggi lo sviluppo di zfs-fuse ha come scopo principale la correzione dei bug, mentre non è previsto (per il momento) il completamento del porting delle ultime funzionalità mancanti, tra cui alcune che – a detta dell’autore – probabilmente non verranno mai incluse nel progetto per via di limitazioni imposte dall’architettura di fuse.