A pochi giorni dalla pubblicazione del nuovo kernel Linux arriva OpenZFS 2.4.4, aggiornamento stabile del filesystem e volume manager open source utilizzato su Linux e FreeBSD. La nuova versione introduce la compatibilità con Linux 7.2 e raccoglie numerosi interventi dedicati a stabilità, sicurezza e integrazione con il sistema operativo.
OpenZFS occupa una posizione particolare nel panorama dei filesystem. Nato dall'evoluzione di ZFS, sviluppato originariamente da Sun Microsystems per Solaris, combina infatti in un'unica tecnologia funzioni che tradizionalmente vengono affidate a strumenti differenti.
Non gestisce soltanto file e directory: integra anche la gestione dello spazio disponibile sui dispositivi di archiviazione, permettendo di costruire pool composti da più dischi e di organizzare al loro interno dataset e volumi.
Una delle caratteristiche che hanno reso ZFS particolarmente apprezzato è l'attenzione all'integrità dei dati.
I blocchi vengono accompagnati da checksum che permettono al sistema di individuare alterazioni e corruzioni. Quando il pool dispone della necessaria ridondanza, OpenZFS può utilizzare una copia corretta dei dati per riparare automaticamente quella danneggiata.
È un approccio pensato per affrontare anche la cosiddetta silent data corruption: errori che possono verificarsi nell'archiviazione senza manifestarsi immediatamente attraverso un guasto evidente.
A questo si aggiungono funzionalità come snapshot, replica, compressione, RAID-Z, crittografia e deduplicazione, che hanno contribuito alla diffusione di OpenZFS soprattutto su server, NAS e sistemi nei quali affidabilità e conservazione dei dati assumono particolare importanza.
La principale novità pratica della versione 2.4.4 è il supporto al kernel Linux 7.2, pubblicato pochi giorni fa.
Questo aspetto è particolarmente importante perché, a differenza di filesystem come ext4 e Btrfs, OpenZFS non è integrato direttamente nell'albero principale del kernel Linux. Il progetto deve quindi adattarsi ai cambiamenti delle API interne del kernel man mano che vengono pubblicate nuove versioni.
Con OpenZFS 2.4.4 la compatibilità Linux arriva dal kernel 4.18 fino al recente 7.2, mentre sul versante FreeBSD rimangono supportate le versioni a partire dalla 13.3.
Il nuovo rilascio non si limita però alla compatibilità.
Gli sviluppatori hanno integrato decine di correzioni, aggiornato diversi test e introdotto miglioramenti alle politiche di sicurezza. Sono presenti inoltre ulteriori interventi di compatibilità con il kernel Linux.
Cambia anche il rapporto con systemd durante l'importazione dei pool: systemd-udev-settle può ora essere reso opzionale nelle relative unità. È un intervento tecnico, ma contribuisce a ridurre dipendenze non necessarie durante alcune procedure di avvio.
Contemporaneamente alla 2.4.4 sono state pubblicate anche OpenZFS 2.3.9 e 2.2.11, nelle quali vengono riportate diverse correzioni destinate agli utenti che continuano a utilizzare le precedenti serie stabili.
Questa politica è importante soprattutto negli ambienti server. Aggiornare immediatamente a una nuova serie principale non è sempre desiderabile: poter ricevere correzioni sulla versione già utilizzata permette agli amministratori di scegliere il momento più opportuno per effettuare una migrazione.
OpenZFS offre anche uno spunto interessante sul rapporto tra licenze libere.
Il progetto viene distribuito sotto CDDL, mentre il kernel Linux utilizza la GNU GPLv2. Le due licenze sono generalmente considerate incompatibili per una distribuzione congiunta del codice risultante, ed è una delle ragioni per le quali ZFS non viene integrato direttamente nel kernel Linux.
OpenZFS viene quindi sviluppato esternamente e adattato continuamente all'evoluzione del kernel.
È una situazione apparentemente paradossale: abbiamo due grandi progetti open source, entrambi con codice disponibile e modificabile, che per ragioni di compatibilità tra licenze non possono essere semplicemente fusi e distribuiti come un unico componente.
OpenZFS 2.4.4 mostra però che questo non ha impedito al progetto di costruire una comunità duratura e una tecnologia utilizzata in infrastrutture reali.
E ci ricorda soprattutto una cosa spesso dimenticata quando parliamo di archiviazione: salvare un file non significa soltanto riuscire a rileggerlo domani, ma avere strumenti capaci di accorgersi se, nel frattempo, quei dati non sono più esattamente quelli che avevamo scritto.
È su questa idea di integrità a lungo termine che ZFS ha costruito gran parte della propria storia.