Annuncio pubblicitario

Se hai più dischi rigidi nel tuo sistema Linux, non devi trattarli tutti come dispositivi di archiviazione diversi. Con Btrfs, puoi creare facilmente un pool di archiviazione da quei dischi rigidi.

In determinate condizioni, puoi persino abilitare il mirroring in modo da non perdere i tuoi dati a causa di un guasto del disco rigido. Con tutto impostato, puoi semplicemente lanciare tutto ciò che vuoi nella piscina e sfruttare al massimo lo spazio di archiviazione che hai.

Non esiste un'utilità di configurazione della GUI che può rendere tutto questo 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.

Che cos'è Btrfs?

Btrfs (chiamato filesystem B-tree, "Butter FS" o "Better FS") è un filesystem imminente Ext4 vs. Btrfs: Why We Making The Switch [Linux]Sinceramente, una delle ultime cose che la gente osserva è quale file system viene utilizzato. Gli utenti di Windows e Mac OS X hanno ancora meno motivi per guardare, perché hanno davvero solo uno ...

instagram viewer
Leggi di più che incorpora molte funzionalità diverse a livello di filesystem normalmente disponibili solo come pacchetti software separati. Mentre Btrfs ha molte caratteristiche degne di nota (come le istantanee del filesystem), le due che vedremo in questo articolo sono il pool di archiviazione e il mirroring.

Se non sei sicuro di cosa sia un filesystem, dai un'occhiata a questa spiegazione alcuni filesystem per Windows Che cos'è un file system e come puoi scoprire cosa funziona sui tuoi dischiChe cos'è un file system e perché sono importanti? Scopri le differenze tra FAT32, NTFS, HPS +, EXT e altro. Leggi di più . Puoi anche dare un'occhiata a questo simpatico confronto di vari filesystem Da FAT a NTFS A ZFS: file system demistificatoDiversi dischi rigidi e sistemi operativi possono utilizzare file system diversi. Ecco cosa significa e cosa devi sapere. Leggi di più per avere una migliore idea delle differenze tra i filesystem esistenti.

Btrfs è ancora considerato "non stabile" da molti, ma la maggior parte delle funzionalità sono già abbastanza stabili per uso personale - sono solo alcune funzionalità selezionate in cui potresti riscontrare alcuni risultati indesiderati.

Mentre Btrfs mira ad essere il filesystem predefinito per Linux ad un certo punto in futuro, è comunque il migliore utilizzare ext4 per le configurazioni di un singolo disco rigido o per configurazioni che non richiedono il pooling e il mirroring dello spazio di archiviazione.

Pooling Your Drives

Per questo esempio, utilizzeremo una configurazione a quattro dischi rigidi. Esistono 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 per un totale di 3 TB di archiviazione.

Puoi anche supporre di avere un altro disco rigido (/ dev / sda) di dimensioni arbitrarie che contiene il tuo bootloader e il tuo sistema operativo. Non ci stiamo preoccupando di / dev / sda e stiamo solo combinando gli altri quattro dischi rigidi per scopi di archiviazione aggiuntivi.

Creazione di 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, puoi sostituire / dev / sdb con il disco rigido che desideri utilizzare. Da qui, puoi aggiungere altri dischi rigidi al sistema Btrfs per renderlo una singola partizione che si estende su tutti i dischi rigidi che aggiungi. 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 dispositivo btrfs aggiungi / dev / sdc / mnt dispositivo btrfs aggiungi / dev / sdd / mnt dispositivo btrfs aggiungi / dev / sde / mnt

Se hai archiviato alcuni dati sul primo disco rigido, vorrai che il filesystem lo bilanci tra tutti i dischi rigidi appena aggiunti. Puoi farlo con il comando:

sudo btrfs filesystem balance / mnt

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

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

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

Noterai che ho usato una bandiera: "-d single". Questo è necessario perché volevo una configurazione RAID 0 (in cui i dati sono divisi tra tutti i dischi rigidi unità ma non si verifica alcun mirroring), ma il profilo "singolo" è necessario quando i dischi rigidi sono diversi dimensioni. Se tutti i dischi rigidi avessero le stesse dimensioni, potrei invece usare il flag "-d raid0". Il flag "-d", a proposito, sta per dati e consente di specificare la configurazione dei dati desiderata. C'è anche una bandiera "-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 usando questo flag durante la creazione del Il filesystem Btrfs che si estende su tutti i dischi rigidi significherebbe che hai solo 500 GB di spazio utilizzabile, poiché gli altri tre dischi rigidi vengono utilizzati per il mirroring.

Infine, puoi abilitare RAID 10 usando "-d raid10". Questo farà un mix di RAID 0 e RAID 1, quindi ti darà 1,5 TB di spazio utilizzabile poiché i due dischi rigidi da 1 TB sono accoppiati nel mirroring e i due dischi rigidi da 500 GB sono accoppiati nel mirroring.

Conversione di un filesystem

btrfs_harddiskstack
Se hai un filesystem Btrfs che desideri convertire in una diversa configurazione RAID, è 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

Questo cambierà la configurazione in RAID 1, ma puoi sostituirla con qualsiasi configurazione tu voglia (così purché sia ​​effettivamente consentito, ad esempio, non puoi passare a RAID 10 se non ne hai almeno quattro unità). Inoltre, il flag -mconvert è facoltativo se sei solo preoccupato per i dati ma non per i metadati.

Se si verifica un guasto del disco rigido

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

sudo mount -o degradato / dev / sdb / mnt

Quindi correggere 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 ora vengono 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 richiederà un po 'di tempo perché deve spostare tutti i dati dal disco rigido che viene rimosso e allo stesso modo fallirà se non c'è abbastanza spazio sugli altri dischi rigidi rimanenti.

Montaggio automatico

btrfs_fstab
Se vuoi che il filesystem Btrfs venga 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 comprime tutti i dati in modo da poter sfruttare al meglio 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 insieme alle specifiche del dispositivo, quindi una linea completa in / etc / fstab per gli utenti SSD dovrebbe apparire come:

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

Quanto è grande il tuo pool di archiviazione?

Btrfs è un'opzione fantastica per il pooling e il mirroring dello storage che diventerà sicuramente più popolare una volta ritenuto completamente stabile. Inoltre, non sarebbe male che ci fosse una GUI per semplificare la configurazione (oltre ad alcuni installatori 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 i pool di archiviazione siano utili? Fateci sapere nei commenti!

Credito immagine: William Hook

Danny è senior presso la University of North Texas e gode di tutti gli aspetti del software open source e di Linux.