Il sistema operativo Linux è abbastanza flessibile. Può essere utilizzato su desktop e su server. La cosa principale è scegliere il file system corretto per le proprie esigenze. In questo articolo, esamineremo in dettaglio il file system ZFS.
Contenuti
- Cos'è un file system ZFS?
- Storia dell'evoluzione del file system ZFS
- Le caratteristiche del file system ZFS
- Svantaggi del file system ZFS
- La sicurezza dei dati in ZFS
- ZFS e Mac OS
- Le migliori alternative al file system ZFS
Cos’è un file system ZFS?
Il compito principale degli sviluppatori del file system ZFS era quello di creare un moderno file system in grado di lavorare con enormi quantità di dati, senza degradare le prestazioni e con tutte le funzionalità moderne.
Sun Microsystems voleva creare un nuovo tipo di file system per il loro sistema operativo Solaris, che fosse all’avanguardia. Per questo motivo, includeva molte innovazioni come la struttura di layout dei dati, il supporto al pooling e altro ancora.
Anche il concetto di un file system ZFS era innovativo: ZFS doveva includere un gestore di volumi logici, fornire una gestione dei volumi conveniente e rispettare i principi dei file system leggeri. Inoltre, ZFS doveva offrire la ridondanza.
Nel 2005 il team di sviluppo guidato da Matthew Arena e Jeff Bonwick ha introdotto un file system che soddisfaceva tutti questi requisiti.
ZFS è molto veloce, tecnologicamente innovativo ed efficace. Inoltre, è a 128 bit invece dei soliti 64 bit. In questo modo, gli sviluppatori hanno posto un’enorme enfasi sulla sua rilevanza nel futuro.
ZFS è stato in grado di unire molte soluzioni che vengono utilizzate in altri file system in isolamento. Ad esempio, ZFS utilizza in qualche modo LVM (Volume Manager), Linux RAID (sebbene leggermente modificato), alcune funzionalità di XFS, snapshots e altro ancora. Se vuoi conoscere maggiori informazioni su Linux RAID, leggi l’articolo “RAID – cos’è e quale tipo è meglio utilizzare“.
La tecnologia LVM è descritta dettagliatamente nell’articolo “LVM – cos’è, vantaggi e svantaggi“.
Non si può omettere che il file system ZFS utilizza la tecnologia copy-on-write. Ciò significa che quando il file viene sovrascritto, non viene riscritto fisicamente. Invece, viene allocato un nuovo blocco e una nuova copia viene scritta all’interno. Quindi, invece di eliminare i vecchi file, i metadati che puntano al nuovo blocco vengono aggiornati e le informazioni originali verranno eliminate solo se non c’è abbastanza spazio su disco. Tale soluzione aumenta significativamente le capacità di ripristino dei dati, poiché è sempre possibile visualizzare la versione precedente dei file nel caso in cui le informazioni siano corrotte.
L’utilizzo del metodo copy-on-write consente di non utilizzare affatto il journaling e di essere comunque in grado di recuperare i dati persi.
Tutti questi vantaggi e il grande potenziale di ZFS sono le ragioni per cui molte persone ne parlano ancora oggi.
Storia dell’evoluzione del file system ZFS
Dopo il rilascio del file system ZFS, il suo codice sorgente è stato integrato nel kernel del sistema operativo Solaris. Nello stesso anno è iniziato il porting su altri sistemi operativi e entro il 2008, ZFS era stato portato su FreeBSD. Successivamente è iniziato il porting di ZFS su Linux. Tuttavia, il processo di porting è stato complicato dal cambiamento della licenza in CDDL (Common Development and Distribution License). Sebbene sia basata sui principi della distribuzione di software libero, non è compatibile con i principi della licenza GNU/Linux. Il porting è stato completato, ma nel sistema operativo Linux, ZFS può essere utilizzato solo in modo molto limitato. Per risolvere questo problema, le moderne distribuzioni Linux offrono metodi per installare ZFS. Ciò significa che l’utente installa prima la distribuzione Linux desiderata e poi utilizza il metodo suggerito per installare il file system ZFS.
I metodi più efficaci per installare ZFS su Linux sono l’utilizzo del modulo FUSE o l’installazione di un modulo ZFS sul kernel Linux separato.
Poco dopo, Oracle ha acquisito Sun Microsystems insieme a tutte le licenze e ha chiuso il codice di ZFS. Di conseguenza, non era possibile un ulteriore sviluppo libero. Ciò ha causato il passaggio di molti sviluppatori chiave ad altre aziende e la creazione del progetto OpenZFS, che aderisce al concetto di sviluppo libero.
Tuttavia, la licenza non è mai stata modificata, poiché molti sviluppatori di ZFS ne detenevano i diritti d’autore. Di conseguenza, è stato più facile lasciare le cose come stavano e utilizzare i metodi proposti dalle distribuzioni Linux, anziché cercare il permesso da ciascuno degli sviluppatori.
Attualmente esistono 37 versioni del file system ZFS, ognuna con nuovi miglioramenti.
Vale anche la pena notare che il file system ZFS è in continua evoluzione. La sua prospettiva tecnica, unita a continui miglioramenti delle prestazioni e delle funzionalità, potrebbe rendere ZFS il sistema numero uno per i sistemi server nei prossimi anni.
Le caratteristiche del file system ZFS
In questa parte dell’articolo, daremo uno sguardo alle più interessanti caratteristiche del file system ZFS e spiegheremo perché è così amato dalle persone.
I programmatori hanno implementato un gran numero di utili funzionalità in ZFS, tra le più importanti troviamo:
1) La dimensione massima di un file scrivibile è stata notevolmente aumentata – ora è di 16 exbibyte;
2) La dimensione massima di un volume è di 256 zebibyte, e il numero di tali volumi può essere di qualsiasi dimensione;
3) ZFS è un file system a 128 bit – in pratica, ciò significa che fornisce la capacità di 16 milioni di sistemi a 32 o 64 bit. Quindi, è quasi impossibile riempire una pool a 128 bit. Uno dei creatori di ZFS, Jeff Bonwick, ha anche scherzato su questo. Ha detto che ci vuole più energia per alimentare una pool di quella dimensione che per far bollire l’oceano;
4) Gli snapshot sono utilizzati per monitorare lo stato del sistema – lo snapshot registra lo stato originale del file system e lo stato attuale. Se un file viene eliminato dal sistema, viene eliminato anche dallo snapshot. Quando si scrivono nuove informazioni, vengono evidenziati nuovi blocchi. La caratteristica principale è che non è necessario alcuno spazio aggiuntivo per gli snapshot;
5) Controllo dell’integrità dei dati e correzione automatica dei dati – ogni volta che vengono scritti nuovi dati, il file system crea un checksum per essi. Quando i dati vengono letti, il checksum viene confrontato. Se c’è una discrepanza, il file system segnala l’errore e cerca automaticamente di correggerlo;
6) Almeno due copie di checksum per i metadati – di solito si trovano in luoghi diversi per maggiore sicurezza;
7) Alta velocità di compressione in tempo reale – molto dipende dall’algoritmo. Ad esempio, se si utilizza l’algoritmo LZ4, ZFS raggiungerà facilmente una velocità di scrittura di 800 MB/sec per core, e la velocità di lettura è di almeno 4,5 GB/sec.
8) Atomicità – il file system ZFS è atomico grazie all’albero di Merkle. L’integrità del blocco è garantita dalla natura transazionale del file system. Questa soluzione consente di non utilizzare il WAL-log. Lo svantaggio di questa soluzione è la necessità di conoscere molti comandi e utility;
9) Supporto al pooling – i dischi possono essere uniti in gruppi VDEV, che a loro volta possono essere uniti in pool;
10) Massime prestazioni – ZFS può lavorare con centinaia di pool (non dischi, ma pool) senza perdita di prestazioni;
11) La capacità di creare un file system leggero – in ZFS, la manipolazione del file system è più facile che in altri file system. Tutte le manipolazioni sono più simili al lavoro con le directory che con un file system;
12) Grazie al metodo di copia su scrittura – non perderai mai un file durante la scrittura su disco;
13) Canale di trasferimento dati automaticamente espandibile – quando si collegano dischi aggiuntivi, è necessario aumentare la larghezza di banda, altrimenti le prestazioni diminuiranno. ZFS ha tenuto conto di questo. Pertanto, quando si collegano nuovi VDEV, il file system configurerà automaticamente i dischi e espanderà il canale dati;
14) La capacità di pianificare il lavoro sui dati – questa funzione diventa utile sui server, ad esempio. Quando c’è “tempo di inattività della CPU”, è possibile utilizzare tali risorse per lavorare con i dati. In questo modo, è possibile utilizzare in modo più efficiente le risorse hardware sulla propria macchina.
Come si può vedere, ZFS è un file system molto potente e non abbiamo nemmeno menzionato tutte le sue caratteristiche che lo rendono così utile. Ma soprattutto – con ZFS è possibile creare un sistema di archiviazione locale enorme, veloce ed espandibile.
Svantaggi del file system ZFS
Nel paragrafo precedente di questo articolo abbiamo esaminato i principali vantaggi del file system ZFS. Ora è il momento di parlare dei suoi svantaggi, che sono anche abbastanza numerosi:
- Non troppo veloce sui dischi rigidi – a causa della sua struttura, ZFS richiede un accesso casuale veloce, di cui i dischi rigidi non possono vantarsi. Di conseguenza, all’aumentare del numero di dischi rigidi, le prestazioni possono diminuire. Ci sono stati casi in cui un computer domestico con un disco rigido non troppo veloce ha visto le sue prestazioni diminuire così tanto da renderlo insopportabile da usare. Pertanto, si può ottenere il pieno potenziale solo su unità SSD;
- Necessità di conoscere un gran numero di comandi e utilità – per ottenere il massimo effetto, è necessario essere in grado di “comunicare” con questo file system nella sua lingua;
- Impossibilità di modificare la struttura del disco in VDEV – è possibile configurare ogni gruppo di dischi VDEV solo una volta (numero di dischi, ridondanza, ecc.). Non è possibile apportare modifiche una volta applicata la configurazione. Attualmente è in fase di sviluppo una patch che sarà in grado di risolvere questo problema;
- Necessità di una grande quantità di RAM – sebbene i requisiti minimi specificano una RAM minima di 4 GB, in pratica è meglio utilizzare almeno 8 GB o più;
- Alto livello di frammentazione dei dati – si verifica a causa delle peculiarità del file system. Attualmente non esiste un deframmentatore normale;
- Impossibilità di ridurre il numero di VDEV – è prevista una soluzione a breve per questo problema;
- Mancanza di allocazione delle quote tra gli utenti – al momento questo problema viene risolto creando un file system di dimensioni diverse per ogni utente;
- Impossibilità di mixare VDEV e ZPOOL – ovvero, non è possibile creare un controparte RAID 10 o RAID 01, poiché la ridondanza può essere organizzata solo a un livello inferiore, all’interno di ciascun gruppo di dischi VDEV;
- Grave degradazione delle prestazioni se vengono eliminati grandi quantità di dati;
- Aumento del carico sul processore durante l’uso di RAID Z – si verifica a causa della necessità di calcolare i dati di parità. È anche la situazione con il software RAID 5. Tuttavia, RAID 5 di solito viene utilizzato in storage più piccoli. Gli storage ZFS sono spesso molto grandi, quindi l’hardware deve essere molto potente;
Nonostante tutti gli svantaggi, attualmente non esiste un file system che possa gestire grandi storage in modo così efficace. E dato lo sviluppo attivo di ZFS, il motivo della sua popolarità diventa chiaro.
La sicurezza dei dati in ZFS
Il file system ZFS presta molta attenzione non solo alla gestione di grandi quantità di dati, ma anche alla loro sicurezza. Sarebbe infatti molto spiacevole se i dati di un pool di cento dischi scomparissero improvvisamente a causa di un singolo guasto del disco.
Uno dei metodi per proteggere i dati è l’implementazione di RAID Z. Come già accennato, questa tecnologia si basa su RAID 5. Se un qualsiasi disco fallisce, RAID Z consente di estrarre semplicemente il disco guasto e inserirne uno nuovo, purché abbia le stesse dimensioni. Il file system si occuperà del resto. L’utente noterà solo una leggera riduzione delle prestazioni causata dal ricalcolo dell’algoritmo di ripristino dei dati sul nuovo disco.
Il file system ZFS analizza automaticamente il proprio stato confrontando gli snapshot. Se si riscontra un problema, ZFS lo corregge e, se ciò non è possibile, verrà visualizzato un messaggio. In ogni caso, sarà possibile recuperare i dati. Questo è possibile grazie al metodo “copy on write” su cui si basa tutto ZFS. Quando i dati vengono sovrascritti, i nuovi dati vengono scritti in un nuovo blocco senza modificare i vecchi dati.
ZFS impedisce anche la perdita di dati a causa di un’interruzione di corrente durante la modifica del file.
SHA-256 è un’altra tecnologia che protegge i dati dalla perdita. Il file system genera automaticamente un checksum quando il file viene scritto e ne ricalcola il checksum quando il file viene copiato. Se ci sono differenze nel confronto, ZFS riconoscerà immediatamente gli errori.
L’uso delle tecnologie sopra descritte riduce notevolmente la possibilità di perdita o corruzione dei dati. Questo è un altro motivo per cui molti grandi progetti hanno rivolto la loro attenzione al file system ZFS.
ZFS e Mac OS
Nel 2009, Apple ha annunciato di aver portato il file system ZFS su Mac OS. Purtroppo, il processo di porting non è stato completato e alla presentazione della nuova versione di Mac OS, tutti i riferimenti a ZFS erano stati rimossi. Le ragioni del rifiuto di ZFS non sono state divulgate.
Dato che Windows è di gran lunga il sistema più popolare al mondo, prima o poi diventa necessario aprire un’unità ZFS in Windows. Ci possono essere molte ragioni per questo, che vanno dal semplice trasferimento di file a compiti più specializzati.
In ogni caso, il sistema operativo Windows non supporta ZFS di default, poiché i file system nativi di Windows sono NTFS e FAT (16, 32).
Ma cosa fare se hai bisogno di aprire un’unità ZFS in Windows?
Ci sono diversi modi per farlo.
Il primo modo è utilizzare RS Partition Recovery. Il programma è facile da usare e ti consente di lavorare immediatamente con i dati sull’unità ZFS. Non è nemmeno necessario riavviare il computer.
Ma soprattutto, puoi recuperare i dati persi se sono stati persi, la struttura dei file del disco è danneggiata o il disco è stato formattato. La funzione di ripristino fa risaltare RS Partition Recovery rispetto alla concorrenza perché spesso Windows non funziona correttamente con il file system ZFS. Ciò può portare alla perdita di dati importanti.
Vale anche la pena menzionare che RS Partition Recovery supporta TUTTI i moderni file system, tra cui Btrfs, Ext2,3,4, XFS, HFS, UFS e molti altri.
Tutte le funzionalità di cui sopra di RS Partition Recovery lo rendono un programma “must-have” per ogni utente.
Il secondo modo è installare un driver speciale chiamato ZFSin.
Questo driver aggiunge il supporto per ZFS a livello nativo. Ma le cose non sono così rosee come sembrano a prima vista.
Il fatto è che molto spesso il driver ZFSin entra in conflitto con i driver del sistema operativo. Ma la cosa più triste è che questo porta quasi sempre a un Blue Screen of Death di Windows o a un crash del sistema operativo.
Inoltre, se la tua unità flash ZFS è collegata al sistema durante un conflitto di driver, c’è una forte probabilità che i dati o la struttura logica dell’unità saranno corrotti.
Quindi, invece di supportare ZFS su Windows, è molto probabile che tu finisca con un sistema operativo non funzionante. Questa è la ragione per cui il primo metodo è preferibile al secondo.
Le migliori alternative al file system ZFS
Se dopo aver analizzato tutti i vantaggi e gli svantaggi, non sei sicuro di voler utilizzare ZFS, o non vuoi imparare molti comandi, puoi considerare le migliori alternative a questo file system.
Se parliamo di alternative per uso domestico, la migliore alternativa è utilizzare Ext4. Sì, è più lento di ZFS e non ha molte funzionalità moderne.
Tuttavia, allo stesso tempo, è robusto e facile da gestire e può fornire abbastanza prestazioni per la maggior parte degli utenti.
Quando si parla di utilizzarlo su un server, la migliore alternativa è il file system Btrfs. Come ZFS, è ancora in fase di sviluppo ma è più facile da mantenere e abbastanza veloce da gestire. Gli svantaggi di Btrfs sono il suo ecosistema immaturo e la quantità relativamente ridotta di dati che gestisce (rispetto a ZFS).
La scelta di un file system dipende interamente dalle esigenze e dalle competenze dell’utente. Ti abbiamo mostrato solo i punti di forza e di debolezza di ZFS e speriamo di averti aiutato a fare la scelta giusta.