ZFS

Cos'è RAID-Z?

Cos'è RAID-Z?
I file system sono più vecchi di UNIX stesso. E da quando abbiamo iniziato a digitalizzare le nostre vite su nastri, dischi e SSD, una minaccia è stata eminente. Questo è un guasto hardware. I dati archiviati sui dischi sono spesso più costosi dei dischi stessi e questi dati richiedono tutta la ridondanza che possiamo raccogliere.

RAID-Z è uno degli strumenti migliori per garantire che i tuoi dati siano il più privi di errori possibile anche sulla raccolta di dischi più economica. Fa parte di OpenZFS. Puoi capire le basi di OpenZFS in questo breve articolo se non ne hai mai sentito parlare prima. È un file system open source di livello aziendale disponibile su Linux, FreeBSD, Mac OS X, SmartOS, Illumos e altri principali sistemi operativi.

Ma prima... cos'è RAID??

RAID è l'acronimo di Redundant Array of Independent (Economico) Disks. Questo si riferisce alla pratica del settore di archiviare i dati non solo su un disco ma su più dischi in modo che anche in caso di guasto del disco i dati possano essere ricostruiti da altri dischi. Il modo in cui i dati vengono distribuiti tra i dischi è diverso per i diversi tipi di ridondanza, di conseguenza sono denominati RAID 0, RAID 1, ecc. Non ci occuperemo di loro qui. Ci concentreremo su un RAIDZ specifico per OpenZFS.

RAID (e anche RAID-Z) non equivale a scrivere copie di dati su un disco di backup. Quando hai due o più dischi configurati in RAID, i dati vengono scritti su di essi contemporaneamente e tutti i dischi sono attivi e online. Questo è il motivo per cui RAID è diverso dai backup e, soprattutto, perché RAID non sostituisce i backup. Se l'intero server si esaurisce, tutti i dischi online potrebbero andare con il server, ma i backup ti salveranno la giornata. Allo stesso modo, se si verifica un guasto a un singolo disco e qualcosa non è stato eseguito il backup, perché non è possibile farlo tutti i giorni, RAID può aiutarti a recuperare tali informazioni.

I backup sono copie periodiche dei dati rilevanti e il RAID è una ridondanza in tempo reale. Esistono diversi modi in cui i dati vengono archiviati nei sistemi RAID tradizionali, ma non li esamineremo qui. Qui, ci immergeremo in profondità in RAIDZ che è una delle funzionalità più interessanti di OpenZFS.

Un'ultima cosa prima di iniziare, il RAID tradizionale a volte incoraggia l'uso di dispositivi hardware dedicati per eseguire il RAID. Ciò lascia il sistema operativo e il file system all'oscuro dei meccanismi RAID in atto. Ma spesso la stessa scheda RAID (l'hardware dedicato) incontra un guasto lasciando l'intero array di dischi sostanzialmente inutile.

Per evitare questo, devi sempre provare a usare OpenZFS senza alcun controller RAID hardware.

RAID-Z1, RAID-Z2, RAID-Z3

ZFS combina le attività del gestore dei volumi e dei file system. Ciò significa che puoi specificare i nodi del dispositivo per i tuoi dischi durante la creazione di un nuovo pool e ZFS li combinerà in un pool logico e quindi puoi creare set di dati per usi diversi come /home, /usr, ecc.

La configurazione di RAID-Z richiede almeno 3 o più dischi disk. Non puoi usare meno di tre dischi. Il provider di archiviazione può essere qualcos'altro di archiviazione collegata alla rete, dispositivo di blocco virtuale, ecc., ma atteniamoci a tre dischi di dimensioni uguali come semplice esempio.

I tre dischi possono essere combinati in un dispositivo virtuale (vdev). Questo è l'elemento costitutivo di una zpool. Se inizi con solo 3 dischi, hai 1 vdev nel tuo zpool. Puoi avere 2 vdev con 6 dischi e così via.

Supponiamo di avere un file da 1 GB che desideri archiviare in questo pool. RAID-Z lo divide in due blocchi uguali di 512 MB e quindi esegue un'operazione matematica tra di essi che genera un terzo blocco di 512 MB (chiamato blocco di parità). I tre blocchi vengono quindi scritti in tre vdev separati. Quindi il file finisce per prendere 1.5GB di spazio in totale.

Il vantaggio però è che, se uno dei dischi si guasta, diciamo che il primo pezzo è perso, allora il secondo pezzo e il blocco di parità possono essere usati per ricreare il primo. Allo stesso modo, se il secondo pezzo viene perso, il primo e il terzo possono essere utilizzati per ricreare il secondo.

I tuoi file utilizzano il 50% di spazio in più del necessario, ma puoi sopportare il guasto di un disco per vdev. Questo è RAID-Z1.

Ma un pool ZFS può crescere e alla fine avrai bisogno di più spazio. Bene, non puoi aggiungere più dischi direttamente a un vdev (questa funzionalità è proposta e potrebbe benissimo essere in fase di sviluppo in questo momento). Tuttavia, puoi aggiungere un vdev. Ciò significa che puoi aggiungere dischi in gruppi di tre e trattare ogni nuovo set come un singolo vdev logico.

Ora puoi tollerare un singolo errore del disco in questo nuovo vdev e un singolo errore del disco in quello più vecchio older. Ma se più di un disco si guasta all'interno di un singolo vdev, non è recuperabile. L'intera piscina è resa inutile anche dai vdev più sani.

Questo è un modello davvero troppo semplificato. I file non vengono mai divisi esattamente a metà, ma i dati vengono trattati come blocchi di lunghezza fissa. Inoltre, puoi utilizzare più di 3 dischi (ma 3 è il minimo) per vdev e RAID-Z1 assicurerà che ogni blocco univoco di dati sia scritto in modo tale da poter essere ripristinato dal guasto di ogni singolo disco in per vdev. Per fortuna, non devi preoccuparti di questi dettagli interni. Questa è la responsabilità di ZFS. Una volta che il pool è configurato, i dati vengono automaticamente distribuiti su di esso nel modo più ottimale.

La tolleranza agli errori è ancora limitata a un errore del disco per vdev. Per andare oltre dobbiamo andare su RAID-Z2. RAID-Z2 funziona in modo simile ma crea due blocchi di parità e due blocchi di dati da una singola informazione piece. Ciò gli consente di resistere fino a 2 guasti del disco per vdev. Inoltre un vdev deve avere almeno 4 dischi se intende implementare una configurazione RAID-Z2.

Allo stesso modo, RAID-Z3 richiede almeno 5 dischi per vdev e può resistere al guasto di 3 di essi. RAID-Z3 non è così efficiente in termini di spazio come RAID-Z2 che non è efficiente in termini di spazio come RAID-Z1.

Conclusione

Con RAID-Z vediamo un compromesso tra lo spazio utilizzabile offerto dai singoli dischi e l'affidabilità che la raccolta di tali dischi può offrire. Con un numero maggiore di dischi, aumenta anche la probabilità che più dischi si guastino contemporaneamente.

Il modo migliore per contrastarlo è utilizzare un'efficace strategia RAID-Z che offra affidabilità e il miglior rapporto qualità-prezzo. Facci sapere se hai trovato utile questo tutorial o se hai domande su RAID-Z!

Le migliori app di mappatura del gamepad per Linux
Se ti piace giocare su Linux con un gamepad invece di un tipico sistema di input di tastiera e mouse, ci sono alcune app utili per te. Molti giochi pe...
Strumenti utili per i giocatori Linux
Se ti piace giocare su Linux, è probabile che tu abbia utilizzato app e utilità come Wine, Lutris e OBS Studio per migliorare l'esperienza di gioco. O...
Giochi rimasterizzati in HD per Linux che non hanno mai avuto una versione Linux prima
Molti sviluppatori ed editori di giochi stanno realizzando remaster HD di vecchi giochi per prolungare la vita del franchise, per favore i fan richied...