Filesystem ZFS su Ubuntu 19.10: ecco a cosa serve e perché è importante

filesystem zfs su ubuntu

Una delle caratteristiche principali di Ubuntu 19.10 è il supporto per il filesystem ZFS. A partire dall’ultima versione, puoi facilmente installare Ubuntu con filesystem ZFS senza nessuno sforzo aggiuntivo.

Come ben saprai, normalmente, si sceglie di installare Linux con il filesystem Ext4. Ma se esegui una nuova installazione di Ubuntu 19.10, vedrai comparire la nuova opzione per utilizzare ZFS su root. Però fai attenzione: non è opportuno utilizzarlo su un sistema a doppio avvio, perché cancellerà l’intero disco.

E ora vediamo perché ZFS è importante e come sfruttarlo nell’installazione di Ubuntu.

Perché ZFS è diverso dagli altri filesystem?

ZFS è progettato con due obiettivi principali:

  1. Gestire grandi quantità di file
  2. Prevenire la corruzione dei dati

ZFS può gestire fino a 256 quadrilioni di Zettabyte di spazio di archiviazione: da questo deriva l’uso della lettera Z in ZFS. Può anche gestire file con dimensioni fino a 16 exabyte.

Se stai utilizzando un laptop con una sola unità, puoi comunque sfruttare le funzionalità di protezione dei dati in ZFS. La funzione copy-on-write garantisce che i dati in uso non vengano sovrascritti. Invece, le nuove informazioni vengono scritte in un nuovo blocco e i metadati del filesystem vengono aggiornati per puntare al nuovo blocco.

ZFS può anche creare facilmente istantanee del filesystem. Queste istantanee tengono traccia delle modifiche apportate al file system e condividono con il file system i dati che non sono cambiati, per risparmiare spazio.

ZFS ha assegnato un checksum a ciascun file sull’unità. Il sistema controlla costantemente lo stato del file rispetto a tale checksum: se rileva che il file è corrotto, tenterà di riparare automaticamente quel file.

Se sei interessato ad approfondire cos’è ZFS e quali sono le sue caratteristiche puoi leggere questo articolo e saperne di più su questo argomento.

Nota: tenere presente che le funzionalità di protezione dei dati di ZFS possono portare ad una riduzione delle prestazioni.

Uso di ZFS su Ubuntu (per utenti intermedi o avanzati)

Una volta che hai ottenuto un’installazione pulita di Ubuntu con ZFS sul disco principale, puoi iniziare a sfruttare appieno le funzionalità di questo filesystem.

Si noti che tutte le impostazioni di ZFS richiedono l’utilizzo della riga di comando. Non sono a conoscenza di strumenti GUI con cui poter gestire ZFS.

Creazione di un pool ZFS

Questa sezione si applica solo se disponi di un sistema con più di un’unità. Se hai una sola unità, Ubuntu creerà automaticamente il pool durante l’installazione.

Prima di creare un pool ZFS, è necessario conoscere l’id delle unità per il pool. È possibile utilizzare il comando lsblk per mostrare queste informazioni.

Per creare un pool di base con tre unità, utilizzare il comando seguente:

sudo zpool create pool-test /dev/sdb /dev/sdc /dev/sdd

Ricorda di sostituire il nome pool-test con il nome del pool che preferisci.

Questo comando imposterà un pool RAID-0 senza ridondanza. Ciò significa che se una delle unità viene danneggiata o corrotta, si perderanno i dati. Se si utilizza questa configurazione, si consiglia di eseguire backup regolari.

Puoi anche aggiungere un altro disco al pool usando questo comando:

sudo zpool add pool-name /dev/sdx

Controllare lo stato del tuo pool ZFS

Puoi controllare lo stato del tuo nuovo pool usando questo comando:

sudo zpool status pool-test

Eseguire il mirroring di un pool ZFS

Per garantire che i tuoi dati siano al sicuro, puoi invece impostare il mirroring.

Il mirroring significa che ogni unità contiene gli stessi dati. Con una configurazione mirroring, potresti perdere due unità su tre e avere comunque tutte le tue informazioni.

Per creare un mirror ZFS, puoi usare qualcosa del genere:

sudo zpool create pool-test mirror /dev/sdb /dev/sdc /dev/sdd

Creare uno snapshot ZFS per il backup e il ripristino

Le istantanee (snapshot) consentono di creare una posizione di fallback nel caso in cui un file venga eliminato o sovrascritto.

Innanzitutto, è necessario trovare il set di dati che si desidera acquisire. Puoi farlo con il comando

zfs list

Con questo comando potrai vedere, ad esempio, dove si trova la tua cartella home (potresti vedere un path simile a questo: rpool/USERDATA/mariorossi_ahrnd5).

Creiamo ora un’istantanea denominata 14112019 (la data di oggi) utilizzando questo comando:

sudo zfs snapshot rpool/USERDATA/mariorossi_ahrnd5@14112019

L’istantanea verrà creata molto rapidamente.

Se ti dovesse servire ripristinare l’istantanea del giorno 14 novembre 2019, tutto ciò che devi fare è eseguire questo comando:

sudo zfs rollback rpool/USERDATA/mariorossi_ahrnd5@14112019

La durata del rollback dipende dalla quantità di informazioni modificate. Al termine del rollback tutte le cartelle cancellate per errore (e il loro contenuto) torneranno nella loro posizione corretta.

Conclusione: usare ZFS o no?

Lo scopo di questo articolo è solo quello di darti alcune informazioni basilari su cosa è possibile fare con ZFS su Ubuntu. Per ulteriori informazioni, consulta la pagina wiki di Ubuntu su ZFS.

Considera che al momento ZFS è una funzione sperimentale, quindi se vuoi avere un sistema semplice e stabile, procedi con l’installazione standard su Ext4. Se invece hai una macchina secondaria con cui vuoi sperimentare puoi procedere con l’utilizzo ZFS. Se sei un “utente esperto” e sai cosa stai facendo, sei libero di sperimentare ZFS dove preferisci.