Come installare e configurare ZFS su Ubuntu

0
482
Daniel Krason/Shutterstock

Il file system ZFS offre enormi capacità, mirroring RAID e meccanismi anticorruzione fin da subito. Scopri come installare Ubuntu con ZFS e come creare un pool con mirroring.

Cos'è ZFS?

ZFS è un file system avanzato che prodotto da Sun Microsystems per l'utilizzo con il suo sistema operativo Solaris. Dopo l'acquisizione di Sun da parte di Oracle nel 2009, ZFS è ora di proprietà di Oracle Corporation.

Tuttavia, in un tipico atto di altruismo, dal 2005 in poi, Sun ha rilasciato una versione open source di ZFS. Inevitabilmente, questo è stato portato su Linux dove ha ottenuto una maggiore visibilità. La versione open source di ZFS—openZFS—è gestita e mantenuta dal progetto OpenZFS.

ZFS è un file system a elevata capacità e tollerante ai guasti. ZFS originariamente stava per Zettabyte File System. L'architettura ZFS è basata su 128 bit invece dei più comuni 64 bit di altri file system. Essere in grado di lavorare con valori numerici più grandi è uno dei fattori che ha reso ZFS in grado di gestire zettabyte di spazio di archiviazione. Per darti un'idea di cosa significa, uno zettabyte è un miliardo di terabyte.

Al giorno d'oggi, ZFS supporta l'archiviazione di file fino a 256 zebibyte. Uno zebibyte (270 byte) è più grande di uno zettabyte (1021 byte), ma non di un ordine di grandezza. C'è molto di più in ZFS della pura capacità, per quanto sbalorditiva. ZFS funziona come un proprio gestore di volumi e controller RAID. Ha funzioni integrate come la vera copia in scrittura che proteggono i tuoi dati dalla corruzione. Combina funzionalità che forniscono pooling, clonazione e copia del file system e le sue funzionalità simili a RAID, in modo nativo.

Pubblicità

Ubuntu offre ZFS da alcuni anni, ma sempre con avvertimenti e avvertimenti. In Ubuntu 20.10 gli avvisi sono stati rimossi. Canonical supporta ufficialmente ZFS ma solo nelle configurazioni del disco completo. Per ottenere quel supporto dovrai installare ZFS mentre installi Ubuntu. Le opzioni ZFS sono ancora nascoste, ma sono lì e non più solo per gli intrepidi o gli avventati.

Con Ubuntu 21.10 previsto per ottobre 2021, è un buon momento per vedere come l'offerta ZFS in Ubuntu sta maturando.

CORRELATO: Come installare e utilizzare ZFS su Ubuntu (e perché vorresti farlo)

Trovare le opzioni ZFS durante l'installazione

Durante l'installazione di Ubuntu il “Tipo di installazione” screen ti consente di scegliere di cancellare il disco su cui stai installando Ubuntu o di fare qualcos'altro. Fare clic su “Funzioni avanzate” pulsante.

Le “Funzioni avanzate” viene visualizzata la finestra di dialogo.

Seleziona “Cancella disco e utilizza ZFS” pulsante di opzione e fare clic sul pulsante “OK” pulsante.

Il “Tipo di installazione” lo schermo visualizzerà il messaggio “ZFS selezionato” per mostrare che hai scelto di utilizzare ZFS.

< p>Fare clic sul pulsante “Continua” e completa l'installazione come di consueto.

Annuncio

Se hai diversi dischi rigidi installati nel tuo computer, sarai in grado di scegliere come vuoi che vengano utilizzati da ZFS. Ubuntu offrirà una configurazione suggerita, ma puoi regolare le cose in base alle tue esigenze.

Ma cosa succede se aggiungi dei dischi rigidi dopo aver installato Ubuntu? Come si configura ZFS per utilizzare il nuovo spazio di archiviazione? Questo è ciò che vedremo in seguito.

Aggiunta di dischi rigidi extra

Abbiamo installato Ubuntu con ZFS sul singolo disco rigido della macchina di prova che abbiamo usato per ricercare questo articolo. Abbiamo aggiunto altri due dischi rigidi, dando al computer tre dischi rigidi in totale. Un disco rigido aveva Ubuntu installato su di esso e le due nuove unità erano vuote, non formattate e smontate.

La prima cosa che dobbiamo fare è identificare come Ubuntu si riferisce ai nuovi dischi rigidi. Il comando lsblk elenca tutti i dispositivi a blocchi installati nel computer. Possiamo essere precisi su quali colonne di output vogliamo vedere nei risultati.

lsblk -o name,size,fstype,type,mountpoint

L'opzione -o (output) è seguita dalle colonne che vogliamo vedere. Abbiamo scelto:

  • nome: il nome che Ubuntu usa per riferirsi al disco rigido.
  • dimensione: La dimensione del disco rigido. Se il disco rigido ha più di una partizione, vengono elencate tutte e viene mostrata la dimensione di ciascuna partizione.
  • fstype: il file system che è uno del disco rigido o della partizione .
  • tipo: se la riga fa riferimento a un disco, partizione, unità CD-ROM o pseudo-dispositivo di loopback.
  • punto di montaggio< /strong>: il punto di montaggio del file system sul disco rigido o sulla partizione.

Ci sono un sacco di dispositivi di loopback squashfs, numerati loop0 throughloop6. Ogni volta che installi un'applicazione snap, viene creato uno di questi pseudo-dispositivi. Fa parte dell'incapsulamento e del sandboxing che lo snap avvolge ogni applicazione snap.

Pubblicità

Il primo disco rigido è elencato come /dev/sda. È un'unità da 32 GB con cinque partizioni, elencate da /dev/sda1 a /dev/sda5. Sono formattati in modi diversi. Questa è l'unità che era nel computer quando abbiamo installato Ubuntu.

I nostri due nuovi dischi rigidi sono elencati come /dev/sdb e /dev/sdc. Sono anche unità da 32 GB, ma non sono formattate e non sono montate.

Pools, RAID 0, RAID 1

Per utilizzare le nuove rive dure le aggiungiamo a una piscina. Puoi aggiungere tutte le unità che desideri a un pool. Ci sono due modi per farlo. Puoi configurare il pool in modo da poter utilizzare tutto lo spazio di archiviazione di ciascun disco rigido in una configurazione RAID 0 oppure puoi configurarli in modo che il pool offra solo la quantità di spazio di archiviazione del disco rigido più piccolo nel pool, in una configurazione RAID 1.

Il vantaggio di RAID 0 è lo spazio. Ma la configurazione preferita—e altamente consigliata—è RAID 1. RAID 1 esegue il mirroring dei dati su tutte le unità del pool. Ciò significa che puoi avere un guasto del disco rigido e il file system e i tuoi dati sono ancora al sicuro e il tuo computer è ancora funzionante. Puoi sostituire l'unità danneggiata e aggiungere la nuova unità al tuo pool.

Al contrario, con RAID 0 un singolo guasto del disco rigido rende il sistema inutilizzabile fino a quando non si sostituisce l'unità danneggiata e si esegue un ripristino dai backup.

Più unità hai in un pool RAID 1, più robusto è è. Il minimo necessario per RAID 1 è di due unità. Un guasto in una delle due unità sarebbe un inconveniente, ma non un disastro. Ma un guasto di entrambi i dischi rigidi contemporaneamente sarebbe un problema più grande, ovviamente. Quindi la risposta sembrerebbe essere il raggruppamento di tutti i dischi rigidi che puoi risparmiare.

Pubblicità

Ma ovviamente, in pratica, c'è un limite al numero di unità che vorrai —o puoi permetterti di allocare a un singolo pool. Se si dispone di otto dischi rigidi di riserva, l'impostazione di due pool RAID 1 a quattro unità è probabilmente un uso migliore dell'hardware rispetto a un singolo pool di otto unità. E ricorda, un pool RAID 1 può offrire solo l'archiviazione del disco rigido più piccolo del pool, quindi cerca sempre di utilizzare unità della stessa dimensione in un singolo pool.

Creazione di un pool RAID 1

Abbiamo identificato i nostri nuovi dischi rigidi come /dev/sdb e /dev/sdc . Per creare un pool ZFS RAID 1, utilizziamo questo comando:

sudo zpool create cloudsavvyit mirror /dev/sdb /dev/sdc

I componenti del comando sono:

  • sudo: stiamo cambiando la configurazione del sistema, quindi dobbiamo usare sudo per ottenere i privilegi di root.
  • zpool: questo è il pool ZFS comando di gestione.
  • crea: questa è l'azione che vogliamo che zpool esegua per noi.
  • cloudavvyit: questo è il nome del pool che desideriamo creare.
  • mirror: vogliamo che i nostri dati vengano sottoposti a mirroring su tutte le unità, fornendoci un RAID 1 piscina. Omettendo lo “specchio” l'opzione crea un pool RAID 0.
  • /dev/sdb: il primo dei nostri nuovi dischi rigidi.
  • /dev/sdc: Il secondo dei nostri nuovi dischi rigidi.

Sostituisci “cloudsavvyit” con il nome che vuoi chiamare il tuo pool e sostituisci /dev/sdb e /dev/sdc con gli identificatori dei tuoi nuovi dischi rigidi.

La creazione di un pool è un po' anti-climatica. Se tutto va bene, sei tornato senza tante cerimonie al prompt dei comandi. Possiamo usare l'azione status con il comando zpool per vedere lo stato del nostro nuovo pool.

sudo zpool status cloudsavvyit

Il nostro nuovo pool è stato creato, è online, le nostre due nuove unità sono nel pool e non ci sono errori. Sembra tutto fantastico. Ma dov'è la piscina? Vediamo se lsblk ci mostrerà dove è stato montato.

lsblk -o name,size,fstype,type,mountpoint

Possiamo vedere che i nostri nuovi dischi rigidi /dev/sdb e /dev/sdc sono stati partizionati con due partizioni ciascuno, ma per loro non è elencato alcun punto di montaggio. I pool non sono montati come i normali dischi rigidi. Ad esempio, non c'è alcuna voce nel file /etc/fstab per i pool ZFS. Per impostazione predefinita, viene creato un punto di montaggio nella directory principale. Ha lo stesso nome del pool.

ls/

Pubblicità

Se vuoi che il punto di montaggio venga creato da qualche altra parte, usa l'opzione -m (punto di montaggio) quando crei il pool e fornisci il percorso in cui desideri che venga creato il punto di montaggio. Puoi anche dare al punto di montaggio un nome diverso.

sudo zpool create -m /path/to/mount-point-name cloudsavvyit mirror /dev/sdb /dev/sdc

Concessione agli utenti dell'accesso al pool

Il pool esiste, ma solo l'utente root può memorizzare i dati al suo interno. Non è quello di cui abbiamo bisogno, ovviamente. Vogliamo che altri utenti possano accedere al pool.

Per raggiungere questo obiettivo:

  • Crea una directory nel pool.
  • Crea un nuovo gruppo.
  • Imposta il nuovo gruppo come proprietario del gruppo della directory.
  • Aggiungi gli utenti che devono accedere all'archiviazione dei dati al nuovo gruppo.

Questo schema offre una grande flessibilità . Possiamo creare tutte le directory di archiviazione dei dati di cui abbiamo bisogno, con diversi gruppi che le possiedono. Concedere agli utenti l'accesso alle diverse aree di archiviazione è semplice come aggiungerli ai gruppi appropriati.

Useremo groupadd per creare un gruppo di utenti. Il nostro gruppo si chiama “csavvy1”. Utilizzeremo quindi il comando usermod per aggiungere un utente chiamato “dave” al nuovo gruppo. L'opzione -a (append) aggiunge il nuovo gruppo all'elenco dei gruppi esistenti in cui si trova l'utente. Senza questa opzione, l'utente viene rimosso da tutti i gruppi esistenti e aggiunto a quello nuovo. Ciò causerà problemi, quindi assicurati di utilizzare l'opzione -a.

sudo groupadd csavvy1 sudo usermod -a -G csavvy1 dave

Affinché la nuova appartenenza al gruppo diventi effettiva, l'utente deve disconnettersi e rientrare di nuovo.

Ora creeremo una directory nel pool, chiamata “data1.”

sudo mkdir /cloudsavvyit/data1 Advertisement

Il comando chgrp ci permette di impostare il proprietario del gruppo della directory.

sudo chgrp csavvy1 /cloudsavvyit/data1

Infine, imposteremo i permessi del gruppo usando chmod . Il “s” è il bit speciale SGID. Significa che i file e le directory creati all'interno di “data1” directory erediterà il proprietario del gruppo di questa directory.

sudo chmod g+rwsx /cloudsavvyit/data1/

Il nostro utente si è disconnesso e rientrato. Proviamo a creare un file nella nuova directory di archiviazione dati nel nostro nuovo pool RAID 1 ZFS.

tocca /cloudsavvyit/data1/new-file.txt

E vediamo che è stato creato.

ls /cloudsavvyit/data1 -lh

Successo. Cosa succede se proviamo a creare un altro file al di fuori della nostra area di archiviazione dati1?

toccare /cloudsavvyit/new-file2.txt

Non funziona come previsto. I nostri permessi funzionano. Il nostro utente è in grado di manipolare solo i file nella directory di archiviazione dei dati a cui è stato autorizzato ad accedere.

RELAZIONATO: Come utilizzare SUID, SGID e Sticky Bit su Linux

Distruggi un pool

Fai attenzione a questo comando. Assicurati di avere i backup prima di procedere. Se sei sicuro di volerlo davvero e hai verificato di avere altre copie dei dati nel pool, puoi distruggere un pool con questo comando:

sudo zpool destroy cloudsavvyit Advertisement

Sostituisci “cloudsavvyit” con il nome del pool che stai per distruggere.

Hai solo un disco rigido?

Se ne hai solo uno disco rigido o se il tuo computer ha più dischi rigidi ma le loro dimensioni variano troppo per formare un pool utile, puoi comunque utilizzare ZFS. Non otterrai il mirroring RAID, ma i meccanismi anti-corruzione e di protezione dei dati incorporati sono comunque utili e convincenti.

Ma ricorda, nessun file system—con o senza RAID mirroring& #8212;significa che puoi ignorare i backup.

RELAZIONATO: Backup e ridondanza: qual è la differenza?