Tecnologia facile per tutti.

Cos’è il filesystem ZFS e come funziona?

95

In questo articolo daremo insieme uno sguardo a ZFS, un file system avanzato. Troverai quindi informazioni che ti consentiranno di sapere da dove proviene, di cosa si tratta e perché è così popolare tra i tecnici e le imprese.

Storia di ZFS

Il file system Z (ZFS) è stato creato da Matthew Ahrens e Jeff Bonwick nel 2001. ZFS è stato progettato per essere il file system per il sistema operativo OpenSolaris di Sun Microsystems. Nel 2008, ZFS è stato portato su FreeBSD. Lo stesso anno è stato avviato un progetto per il porting di ZFS su Linux. Tuttavia, poiché ZFS è concesso in licenza in base alla Common Development and Distribution License (CDDL), che è incompatibile con la GNU General Public License, non può essere incluso nel kernel Linux. Per ovviare a questo problema, la maggior parte delle distribuzioni Linux offrono metodi alternativi per installare ZFS.

Poco dopo che Oracle ha acquistato Sun Microsystems, OpenSolaris è diventato un sistema operativo closed-source. Di conseguenza anche tutti gli ulteriori sviluppi di ZFS sono diventati closed-source. Ma molti sviluppatori di ZFS sono stati scontenti di questa svolta degli eventi, e due terzi dei principali developers ZFS, tra cui Ahrens e Bonwick, hanno lasciato Oracle a causa di questa decisione. Si sono uniti ad altre società e, nel settembre del 2013, hanno creato il progetto OpenZFS. Questo è stato il progetto che ha guidato lo sviluppo open source di ZFS.

Ma torniamo al problema di licenza sopra menzionato. Poiché il progetto OpenZFS è di fatto separato da Oracle, alcuni di voi probabilmente si staranno chiedendo perché non viene cambiata la licenza in qualcosa compatibile con la GPL in modo che possa essere incluso nel kernel di Linux. Secondo alcune fonte autorevoli, la modifica della licenza implicherebbe il contatto con chiunque abbia contribuito al codice per l’implementazione di OpenZFS corrente (incluso il codice ZFS in comune con il progetto iniziale fino a OpenSolaris) e ottenere l’autorizzazione a modificare la licenza. Dato che questo lavoro è quasi impossibile (perché alcuni collaboratori potrebbero essere morti o difficili da contattare), è stato deciso di conservare la licenza originale.

Che cos’è ZFS? Quali sono le sue caratteristiche?

Come detto all’inizio di questo articolo, ZFS è un file system avanzato. Come tale, ha alcune caratteristiche interessanti. Ad esempio:

  • Archiviazione in pool
  • Copy-on-write
  • Istantanee
  • Verifica dell’integrità dei dati e riparazione automatica
  • RAID-Z
  • Dimensione massima del file 16 Exabyte
  • Memoria massima pari a 256 quadrilioni di Zettabyte

Analizziamo ora alcune di queste funzionalità.

Archiviazione in pool

A differenza della maggior parte dei file system, ZFS combina le funzionalità di un file system e di un gestore di volumi. Ciò significa che, diversamente da altri file system, ZFS può creare un file system che si estende su una serie di unità o un pool. Non solo, ma puoi aggiungere spazio di archiviazione a un pool aggiungendo un’altra unità. ZFS gestirà il partizionamento e la formattazione.

Copy-on-write

Copy-on-write è un’altra funzionalità interessante. Nella maggior parte dei file system, quando i dati vengono sovrascritti, vengono persi per sempre. Su ZFS, le nuove informazioni vengono scritte in un blocco diverso. Una volta completata la scrittura, i metadati dei file system vengono aggiornati per puntare alle nuove informazioni. Ciò garantisce che se il sistema si arresta in modo anomalo (o succede qualcos’altro) durante la scrittura, i vecchi dati verranno conservati. Significa anche che il sistema non deve eseguire fsck dopo un arresto anomalo del sistema.

Istantanee

Copy-on-write ci porta a parlare di un’altra funzione ZFS: le istantanee (o per usare il termine inglese snapshot). ZFS utilizza le istantanee per tenere traccia delle modifiche nel file system. L’istantanea contiene la versione originale del file system e il file system live contiene tutte le modifiche apportate dall’acquisizione dell’istantanea. Non viene utilizzato spazio aggiuntivo. Man mano che vengono scritti nuovi dati nel file system live, vengono allocati nuovi blocchi per archiviare questi dati. Se un file viene eliminato, viene rimosso anche il riferimento dell’istantanea. Pertanto, le istantanee sono progettate principalmente per tenere traccia delle modifiche ai file, ma non per l’aggiunta e la creazione di file.

Le istantanee però possono essere montate in sola lettura per ripristinare una versione precedente di un file. È anche possibile ripristinare il sistema live a un’istantanea precedente. Tutte le modifiche apportate dall’istantanea andranno perse.

Verifica dell’integrità dei dati e riparazione automatica

Ogni volta che nuovi dati vengono scritti in ZFS, esso crea un checksum per tali dati per verificarne l’integrità. Quando i dati vengono letti, il checksum viene verificato. Se il checksum non corrisponde, ZFS sa che è stato rilevato un errore. ZFS tenterà quindi automaticamente di correggere l’errore.

RAID-Z

ZFS è in grado di gestire RAID senza software o hardware aggiuntivo. Non sorprende che ZFS abbia una propria implementazione di RAID, chiamata RAID-Z. RAID-Z è in realtà una variante di RAID-5. Tuttavia, è progettato per superare l’eventuale errore di scrittura RAID-5, “in cui i dati e le informazioni di parità diventano incoerenti dopo un riavvio imprevisto”. Per utilizzare il livello base di RAID-Z (RAID-Z1) sono necessari almeno due dischi per l’archiviazione e uno per parità. RAID-Z2 richiede almeno due unità di archiviazione e due unità per parità. RAID-Z3 richiede almeno due unità di archiviazione e tre unità per parità. Quando le unità vengono aggiunte ai pool RAID-Z, devono essere aggiunte in multipli di due.

Enorme potenziale di archiviazione

Quando è stato creato ZFS, è stato progettato per essere il progetto “definitivo” nell’ambito dei file system. In un momento storico in cui la maggior parte dei file system era a 64 bit, i creatori di ZFS hanno deciso di passare direttamente a 128 bit per anticipare il futuro. Ciò significa che ZFS “offre 16 miliardi di miliardi di volte la capacità dei sistemi a 32 o 64 bit”. In effetti, Jeff Bonwick (uno dei creatori) ha affermato che alimentare un “popolamento completo di un pool di archiviazione a 128 bit richiederebbe letteralmente più energia di quella necessaria per portare all’ebollizione gli oceani”.

Come installare ZFS?

Se vuoi usare ZFS immediatamente, è necessario installare FreeBSD o un sistema operativo con kernel illumos (Illumos è un fork del kernel di OpenSolaris).

In effetti, il supporto per ZFS è uno dei motivi principali per cui alcuni utenti esperti di Linux optano per utilizzare FreeBSD.

Se si desidera provare ZFS su Linux, è possibile utilizzarlo come file system di archiviazione. Recentemente, Ubuntu 19.10 ha introdotto la possibilità di installare ZFS su root.

Conclusione

In questo articolo sono stati descritti i principali vantaggi di ZFS. Tieni però in considerazione che l’uso di RAID-Z può essere costoso a causa del numero di unità che è necessario acquistare per aggiungere spazio di archiviazione.

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More

Privacy & Cookies Policy