Cos'è ZFS? Perché le persone sono pazze?

Oggi daremo un'occhiata a ZFS, un file system avanzato. Discuteremo da dove viene, che cos'è e perché è così popolare tra i tecnici e l'impresa.

Anche se vengo dagli Stati Uniti, preferisco pronunciarlo ZedFS invece di ZeeFS perché suona meglio. Sei libero di pronunciarlo come preferisci.

Nota: vedrete ZFS ripetuto molte volte nell'articolo. Quando parlo di funzionalità e installazione, sto parlando di OpenZFS. ZFS (sviluppato da Oracle) e OpenZFS hanno seguito percorsi diversi da Oracle shutdown OpenSolaris. (Ne parleremo più avanti).

Storia di ZFS

Z File System (ZFS) è stato creato da Matthew Ahrens e Jeff Bonwick nel 2001. ZFS è stato progettato per essere un file system di prossima generazione per OpenSolaris di Sun Microsystems. Nel 2008, ZFS è stato portato su FreeBSD. Lo stesso anno è stato avviato un progetto per portare ZFS su Linux. Tuttavia, poiché ZFS è concesso in licenza con la Common Development and Distribution License, che è incompatibile con la GNU General Public License, non può essere incluso nel kernel di Linux. Per aggirare questo problema, la maggior parte delle distribuzioni Linux offre metodi per installare ZFS.

Poco dopo l'acquisto di Sun Microsystems da parte di Oracle, OpenSolaris è diventato close-source. Anche l'ulteriore sviluppo di ZFS è diventato chiuso. Molti sviluppatori di ZFS non sono contenti di questo cambiamento di eventi. Due terzi dei principali sviluppatori di ZFS, tra cui Ahrens e Bonwick, lasciarono Oracle a causa di questa decisione. Si sono uniti ad altre società e hanno creato il progetto OpenZFS nel settembre del 2013. Il progetto ha guidato lo sviluppo open source di ZFS.

Torniamo al problema della licenza menzionato sopra. Dato che il progetto OpenZFS è separato da Oracle, alcuni probabilmente si chiedono perché non cambino la licenza in qualcosa che sia compatibile con la GPL in modo che possa essere incluso nel kernel di Linux. Secondo il sito Web di OpenZFS, la modifica della licenza implicherebbe contattare chiunque abbia contribuito al codice dell'attuale implementazione di OpenZFS (incluso il codice ZFS iniziale comune fino ad OpenSolaris) e ottenere il permesso di modificare la licenza. Dato che questo lavoro è quasi impossibile (perché alcuni contributori potrebbero essere morti o difficili da trovare), hanno deciso di mantenere la licenza che hanno.

Cos'è ZFS? Quali sono le sue caratteristiche?

Come ho detto prima, ZFS è un file system avanzato. Come tale, ha alcune caratteristiche interessanti. Ad esempio:

  • Deposito in comune
  • Copy-on-write
  • istantanee
  • Verifica dell'integrità dei dati e riparazione automatica
  • RAID-Z
  • Massima dimensione del file Exabyte di 16
  • Memoria massima di 256 quadrilioni di zloty

Analizziamo un paio di queste caratteristiche.

Deposito 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, a differenza di altri file system, ZFS può creare un file system che si estende su una serie di unità o un pool. Non solo, ma è possibile aggiungere storage a un pool aggiungendo un'altra unità. ZFS gestirà il partizionamento e la formattazione.

Archiviazione in pool in ZFS

Copy-on-write

Copy-on-write è un'altra interessante (e interessante) funzionalità. Nella maggior parte dei file system, quando i dati vengono sovrascritti, vengono persi per sempre. Su ZFS, le nuove informazioni sono scritte in un blocco diverso. Una volta completata la scrittura, i metadati dei file system vengono aggiornati in modo da puntare alle nuove informazioni. Questo assicura che se il sistema si arresta in modo anomalo (o qualcos'altro accade) mentre sta avvenendo la scrittura, i vecchi dati verranno preservati. Significa anche che il sistema non ha bisogno di eseguire fsck dopo un crash del sistema.

istantanee

Cursori Copy-on-write in un'altra funzione ZFS: istantanee. ZFS utilizza gli snapshot per tenere traccia delle modifiche nel file system. "L'istantanea contiene la versione originale del file system e il filesystem live contiene tutte le modifiche apportate da quando è stata scattata l'istantanea. Non viene utilizzato spazio aggiuntivo. Mentre i nuovi dati vengono scritti nel file system live, vengono allocati nuovi blocchi per memorizzare questi dati. "Viene cancellato un file, anche il riferimento dell'istantanea viene rimosso. Quindi, le istantanee sono principalmente progettate per tenere traccia delle modifiche ai file, ma non l'aggiunta e la creazione di file.

Le istantanee possono essere montate in sola lettura per recuperare una versione precedente di un file. È anche possibile eseguire il rollback del sistema live su un'istantanea precedente. Tutte le modifiche apportate dopo lo snapshot andranno perse.

Verifica dell'integrità dei dati e riparazione automatica

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

RAID-Z

ZFS può gestire RAID senza richiedere alcun software o hardware aggiuntivo. Non sorprende che ZFS abbia una propria implementazione di RAID: RAID-Z. RAID-Z è in realtà una variante di RAID-5. Tuttavia, è progettato per superare l'errore del buco di scrittura RAID-5, "in cui le informazioni sui dati e la parità diventano incoerenti dopo un riavvio imprevisto". Per utilizzare il livello base di RAID-Z (RAID-Z1) sono necessari almeno due dischi per la memorizzazione e uno per la parità. RAID-Z2 richiedeva almeno due unità di archiviazione e due unità per la 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 ZFS è stato creato, è stato progettato per essere l'ultima parola nei file system. In un momento in cui la maggior parte dei file system erano a 64-bit, i creatori di ZFS decisero di passare direttamente a 128-bit per dimostrarlo in 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 l'alimentazione di un "pool di storage a 128 bit completamente popolato richiederebbe, letteralmente, più energia rispetto all'ebollizione degli oceani".

Come installare ZFS?

Se si desidera utilizzare ZFS out of the box, è necessario installare FreeBSD o un sistema operativo utilizzando il kernel illumos. illumos è un fork del kernel OpenSolaris.

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

Se vuoi provare ZFS su Linux, puoi usarlo solo come sistema di archiviazione. Per quanto ne so, nessuna distro Linux ti dà la possibilità di installare ZFS sulla tua root, fuori dalla scatola. Se sei interessato a provare ZFS su Linux, il progetto ZFS su Linux ha un numero di tutorial su come farlo.

Avvertimento

Questo articolo ha cantato i vantaggi di ZFS. Ora lascia che ti dica un rapido problema con ZFS. L'uso di RAID-Z può essere costoso a causa del numero di unità che è necessario acquistare per aggiungere spazio di archiviazione.

Hai mai usato ZFS? Com'è stata la tua esperienza? Fateci sapere nei commenti qui sotto.

Se hai trovato questo articolo interessante, prenditi un minuto per condividerlo su social media, Hacker News o Reddit.

Raccomandato

Primo sguardo agli sfondi predefiniti di Ubuntu 15.10
2019
Come mostrare la percentuale della batteria in Ubuntu 18.04 e 17.10
2019
Personalizzazione Ubuntu MATE
2019