GNU/Linux >> Linux Esercitazione >  >> Linux

Cos'è ZFS? Perché le persone ne vanno pazze?

Oggi daremo un'occhiata a ZFS, un file system avanzato. Discuteremo da dove viene, di cosa si tratta e perché è così popolare tra i tecnici e le imprese.

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

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

Cronologia di ZFS

Lo Z File System (ZFS) è stato creato da Matthew Ahrens e Jeff Bonwick nel 2001. ZFS è stato progettato per essere un file system di nuova 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 in base alla Common Development and Distribution License, che è incompatibile con la GNU General Public License, non può essere incluso nel kernel 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 un fornitore vicino. Anche tutti gli ulteriori sviluppi di ZFS sono diventati closed source. Molti degli sviluppatori di ZFS erano scontenti di questa svolta degli eventi. Due terzi degli sviluppatori ZFS principali, inclusi Ahrens e Bonwick, hanno lasciato 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 di cui sopra. Poiché il progetto OpenZFS è separato da Oracle, alcuni probabilmente si chiedono perché non cambiano la licenza con qualcosa che è compatibile con la GPL in modo che possa essere incluso nel kernel Linux. Secondo il sito Web di OpenZFS, la modifica della licenza comporterebbe il contatto con chiunque abbia contribuito con il codice all'attuale implementazione di OpenZFS (incluso il codice ZFS iniziale e comune fino a OpenSolaris) e ottenere il loro permesso per modificare la licenza. Poiché questo lavoro è quasi impossibile (perché alcuni collaboratori 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. In quanto tale, ha alcune caratteristiche interessanti. Ad esempio:

  • Archiviazione in pool
  • Copia su scrittura
  • Istantanee
  • Verifica dell'integrità dei dati e riparazione automatica
  • RAID-Z
  • Massima dimensione del file 16 Exabyte
  • Massimo 256 quadrilioni di Zettabyte di spazio di archiviazione

Analizziamo un paio di queste caratteristiche.

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

Copia su scrittura

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

Istantanee

La copia in scrittura conduce a un'altra funzionalità ZFS:le istantanee. ZFS utilizza gli snapshot 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 nuovi dati vengono scritti nel file system live, vengono allocati nuovi blocchi per archiviare questi dati". Se un file viene eliminato, viene rimosso anche il riferimento allo snapshot. Pertanto, le istantanee sono progettate principalmente per tenere traccia delle modifiche ai file, ma non per l'aggiunta e la creazione di file.

Gli snapshot possono essere montati in sola lettura per recuperare una versione precedente di un file. È anche possibile ripristinare il sistema live a uno snapshot 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, viene creato un checksum per quei dati. Quando tali 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 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 variazione di RAID-5. Tuttavia, è progettato per superare l'errore di buco di scrittura RAID-5, "in cui i dati e le informazioni sulla 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 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 la 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 l'ultima parola nei file system. In un momento 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 renderlo a prova di 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 "popolo completo di un pool di archiviazione a 128 bit richiederebbe letteralmente più energia che far bollire gli oceani".

Come installare ZFS?

Se vuoi usare ZFS immediatamente, richiederebbe l'installazione di FreeBSD o di un sistema operativo che utilizza il kernel illumos. illumos è un fork del kernel OpenSolaris.

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

Se vuoi provare ZFS su Linux, puoi usarlo come file system di archiviazione. Di recente, Ubuntu 19.10 ha introdotto la possibilità di installare ZFS sul tuo root fuori dagli schemi. Maggiori informazioni sull'utilizzo di ZFS su Ubuntu. Se sei interessato a provare ZFS su Linux, il progetto ZFS su Linux ha una serie 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'utilizzo di RAID-Z può essere costoso a causa del numero di unità che devi acquistare per aggiungere spazio di archiviazione.

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

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



Linux
  1. Quali sono gli usi legittimi del comando `touch`?

  2. Cosa fa Exec 3?

  3. Perché Ls e Hexdump non sono d'accordo sulla dimensione del file?

  4. Quali sono le differenze tra grep, awk e sed?

  5. Cosa sono la pagina mappata in memoria e la pagina anonima?

Cos'è umask in Linux?

Perché le persone vanno pazze per Arch Linux? Cos'ha di così speciale?

Cosa sono gli inode in Linux?

Che cos'è il file .bashrc in Linux?

Perché cPanel:quali funzionalità sono presenti in cPanel?

Cos'è un file .sh?