Come abilitare lo storage pooling e il mirroring usando Btrfs per Linux

Se si dispone di più dischi rigidi nel proprio sistema Linux, non è necessario trattarli come dispositivi di archiviazione diversi. Con Btrfs, puoi facilmente creare un pool di archiviazione tra quei dischi rigidi.

Se si dispone di più dischi rigidi nel proprio sistema Linux, non è necessario trattarli come dispositivi di archiviazione diversi.  Con Btrfs, puoi facilmente creare un pool di archiviazione tra quei dischi rigidi.
Annuncio pubblicitario

Se si dispone di più dischi rigidi nel proprio sistema Linux, non è necessario trattarli tutti come dispositivi di archiviazione diversi. Con Btrfs, puoi facilmente creare un pool di archiviazione da quei dischi rigidi.

In determinate condizioni, è anche possibile attivare il mirroring in modo da non perdere i dati a causa di un guasto del disco rigido. Con tutto configurato, puoi semplicemente buttare tutto ciò che vuoi nella piscina e sfruttare al massimo lo spazio di archiviazione che hai.

Non c'è un'utilità di configurazione della GUI che possa rendere tutto più semplice (ancora), ma è ancora abbastanza facile da fare con la riga di comando. Ti guiderò attraverso una semplice configurazione per l'utilizzo di diversi dischi rigidi insieme.

Cos'è Btrfs?

Btrfs (chiamato filesystem B-tree, "Butter FS" o "Better FS") è un imminente filesystem Ext4 vs. Btrfs: perché stiamo facendo l'interruttore [Linux] Ext4 contro Btrfs: perché stiamo facendo lo switch [Linux] Onestamente, una delle ultime cose che la gente guarda è quale file system viene utilizzato. Gli utenti Windows e Mac OS X hanno ancora meno motivi per guardare, perché ne hanno solo uno ... Leggi altro che incorpora molte funzionalità diverse a livello di file system normalmente disponibili solo come pacchetti software separati. Mentre Btrfs ha molte caratteristiche degne di nota (come le istantanee del filesystem), le due cose che daremo un'occhiata in questo articolo sono il pooling e il mirroring dello storage.

Se non sei sicuro di cosa sia un filesystem, dai un'occhiata a questa spiegazione di alcuni filesystem per Windows Che cos'è un file system e come puoi scoprire cosa succede alle tue unità Cos'è un filesystem e come puoi scoprirlo Cosa corre sulle tue unità Leggi di più. Puoi anche controllare questo bel confronto di vari filesystem Da FAT a NTFS To ZFS: File System Demystified [MakeUseOf Explains] Da FAT a NTFS To ZFS: File System Demystified [MakeUseOf Explains] Sai davvero cosa fa il tuo disco fisso ogni volta che leggere un file da esso o scriverne uno? I nostri dischi rigidi ora possono memorizzare enormi quantità di dati e uno spazio enorme ... Leggi di più per avere un'idea migliore delle differenze tra i filesystem esistenti.

Btrfs è ancora considerato "non stabile" da molti, ma la maggior parte delle funzionalità è già abbastanza stabile per l'uso personale - sono solo alcune funzionalità selezionate in cui è possibile che si verifichino risultati non desiderati.

Mentre Btrfs vuole essere il filesystem predefinito per Linux a un certo punto nel futuro, è ancora meglio usare ext4 per le configurazioni di un singolo disco rigido o per configurazioni che non necessitano di storage pooling e mirroring.

Pooling Your Drives

Per questo esempio, useremo una configurazione a quattro dischi rigidi. Ci sono due dischi rigidi (/ dev / sdb e / dev / sdc) con 1 TB ciascuno e altri due dischi rigidi (/ dev / sdd e / dev / sde) con 500 GB per un totale di quattro dischi rigidi con un totale di 3 TB di stoccaggio.

Si può anche presumere di avere un altro disco rigido (/ dev / sda) di alcune dimensioni arbitrarie che contiene il bootloader e il sistema operativo. Non ci preoccupiamo di / dev / sda e stiamo solo combinando gli altri quattro dischi rigidi per scopi di archiviazione extra.

Creare un filesystem

btrfs_gparted
Per creare un filesystem Btrfs su uno dei tuoi dischi rigidi, puoi usare il comando:

sudo mkfs.btrfs /dev/sdb

Ovviamente, è possibile sostituire / dev / sdb con il disco rigido che si desidera utilizzare. Da qui, è possibile aggiungere altri dischi rigidi al sistema Btrfs per renderlo una singola partizione che si estende su tutti i dischi rigidi che si aggiungono. Innanzitutto, monta il primo disco rigido Btrfs usando il comando:

sudo mount /dev/sdb /mnt

Quindi, esegui i comandi:

sudo mkfs.btrfs /dev/sdc mkfs.btrfs /dev/sdd mkfs.btrfs /dev/sde

Ora puoi aggiungerli al primo disco rigido usando i comandi:

sudo btrfs device add /dev/sdc /mnt btrfs device add /dev/sdd /mnt btrfs device add /dev/sde /mnt

Se alcuni dati sono stati archiviati sul primo disco rigido, è necessario che il filesystem lo compensi tra tutti i dischi rigidi aggiunti di recente. Puoi farlo con il comando:

sudo btrfs filesystem balance /mnt

In alternativa, se sai già prima di iniziare che vuoi che un filesystem Btrfs si estenda su tutti i dischi rigidi, puoi semplicemente eseguire il comando:

sudo mkfs.btrfs -d single /dev/sdb /dev/sdc /dev/sdd /dev/sde

Naturalmente questo è molto più semplice, ma dovrai usare il metodo sopra menzionato se non li aggiungi tutti in una volta.

Noterai che ho usato un flag: "-d single". Ciò è necessario perché volevo una configurazione RAID 0 (in cui i dati sono suddivisi tra tutti i dischi rigidi ma non si verifica il mirroring), ma il profilo "singolo" è necessario quando i dischi rigidi hanno dimensioni diverse. Se tutti i dischi rigidi fossero della stessa dimensione, potrei invece usare il flag "-d raid0". Il flag "-d", a proposito, rappresenta i dati e consente di specificare la configurazione dei dati desiderata. C'è anche un flag "-m" che fa esattamente la stessa cosa per i metadati.

Oltre a questo, puoi anche abilitare RAID 1 usando "-d raid1" che duplicherà i dati su tutti i dispositivi, quindi usare questo flag durante la creazione del filesystem Btrfs che si estende su tutti i dischi rigidi significherebbe che avrai solo 500 GB di spazio utilizzabile, come gli altri tre dischi rigidi vengono utilizzati per il mirroring.

Infine, puoi abilitare RAID 10 usando "-d raid10". Questo farà un mix sia di RAID 0 che di RAID 1, quindi fornirà 1, 5 TB di spazio utile in quanto i due dischi rigidi da 1TB sono accoppiati nel mirroring e le due unità disco da 500 GB sono accoppiate nel mirroring.

Convertire un filesystem

btrfs_harddiskstack
Se hai un file system Btrfs che vorresti convertire in una configurazione RAID diversa, è facile farlo. Innanzitutto, monta il filesystem (se non lo è già) usando il comando:

sudo mount /dev/sdb1 /mnt

Quindi, esegui il comando:

sudo btrfs balance start -dconvert=raid1 -mconvert=raid1 /mnt

Ciò cambierà la configurazione in RAID 1, ma puoi sostituirlo con qualsiasi configurazione tu desideri (a patto che sia effettivamente consentito, ad esempio, non puoi passare a RAID 10 se non hai almeno quattro dischi rigidi) . Inoltre, il flag -mconvert è facoltativo se sei solo preoccupato dei dati ma non dei metadati.

Se si verifica un guasto del disco rigido

Se un disco rigido si guasta, sarà necessario rimuoverlo dal filesystem in modo che il resto delle unità in pool funzionerà correttamente. Montare il filesystem con il comando:

sudo mount -o degraded /dev/sdb /mnt

Quindi correggi il filesystem con:

sudo btrfs device delete missing /mnt

Se non hai abilitato RAID 1 o RAID 10, tutti i dati presenti sul disco rigido guasto sono ora persi.

Rimozione di un disco rigido dal filesystem

Infine, se si desidera rimuovere un dispositivo da un filesystem Btrfs e il filesystem è montato su / mnt, è possibile farlo con il comando:

sudo btrfs device delete /dev/sdc /mnt

Ovviamente, sostituire / dev / sdc con il disco rigido che si desidera rimuovere. Questo comando impiegherà un po 'di tempo perché è necessario spostare tutti i dati dal disco rigido che viene rimosso e altrettanto non funzionerà se non c'è abbastanza spazio sugli altri dischi rigidi rimanenti.

Montaggio automatico

btrfs_fstab
Se vuoi che il filesystem Btrfs sia montato automaticamente, puoi inserirlo nel tuo file / etc / fstab:

sudo /dev/sdb /mnt btrfs device=/dev/sdb, device=/dev/sdc, device=/dev/sdd, device=/dev/sde 0 0

Opzioni di montaggio

Un altro suggerimento bonus! Puoi ottimizzare le prestazioni di Btrfs nel tuo file / etc / fstab sotto le opzioni di mount per il filesystem Btrfs. Per array di archiviazione di grandi dimensioni, queste opzioni sono le migliori: compress-force=zlib, autodefrag, nospace_cache . In particolare, compress = zlib comprimerà tutti i dati in modo da poter sfruttare al massimo lo spazio di archiviazione disponibile. Per la cronaca, gli utenti SSD possono utilizzare queste opzioni: noatime, compress=lzo, ssd, discard, space_cache, autodefrag, inode_cache . Queste opzioni vanno di pari passo con le specifiche del dispositivo, quindi una riga completa in / etc / fstab per gli utenti SSD sarebbe simile a:

sudo /dev/sdb /mnt btrfs device=/dev/sdb, device=/dev/sdc, device=/dev/sdd, device=/dev/sde,
noatime, compress=lzo, ssd, discard, space_cache, autodefrag, inode_cache 0 0

Quanto è grande il tuo pool di archiviazione?

Btrfs è una fantastica opzione per il pooling e il mirroring dello storage che diventerà sicuramente più popolare una volta che sarà ritenuto completamente stabile. Inoltre non sarebbe male avere una GUI per semplificare la configurazione (oltre che in alcuni programmi di installazione di distribuzione), ma i comandi che devi usare nel terminale sono facili da comprendere e applicare.

Qual è il più grande pool di archiviazione che potresti realizzare? Pensi che gli stoccaggi valgono la pena? Fateci sapere nei commenti!

Immagine di credito: William Hook

In this article