Btrfs: differenze tra le versioni
Wtf (discussione | contributi) m (→Passo 7) |
Wtf (discussione | contributi) m (→Passo 8) |
||
Riga 103: | Riga 103: | ||
==== Passo 8 ==== | ==== Passo 8 ==== | ||
Aggiungere i tre dischi appena puliti al nostro volume ''btfrs'' (che <u>DEVE</u> essere montato) | Aggiungere i tre dischi appena puliti al nostro volume ''btfrs'' (che <u>DEVE</u> essere montato) | ||
<pre># btrfs device add -f /dev/sdX /dev/sdY /dev/sdZ /punto/di/mount/scelto/in/precedenza</pre> | <pre># btrfs device add -f /dev/sdX /dev/sdY /dev/sdZ /punto/di/mount/scelto/in/precedenza/</pre> | ||
=== Manpages === | === Manpages === |
Versione delle 11:18, 26 dic 2024
|
Versioni Compatibili Tutte le versioni supportate di Debian |
Introduzione
Dall'omonima pagina di wikipedia:
Btrfs (pronounced as "better F S", "butter F S", "b-tree F S", or B.T.R.F.S.) is a computer storage format that combines a file system based on the copy-on-write (COW) principle with a logical volume manager (distinct from Linux's LVM), developed together.
[...]
Btrfs is intended to address the lack of pooling, snapshots, checksums, and integral multi-device spanning in Linux file systems.
In poche parole questo filesystem incorpora alcune funzionalità avanzate come:
- controllo dell'integrità dei dati per rilevare ed eventualmente correggere automaticamente alterazioni dei dati dovuti per esempio al semplice scorrere del tempo (Data degradation);
- possibilità di creare volumi dati in modo simile ad LVM e quindi possibilità di variare facilmente le dimensioni di una "partizione";
- possibilità di avere ridondanza dei dati in modo simile al RAID 1.
Btrfs è funzionalmente simile al ben più famoso ZFS, ma a differenza di quest'ultimo beneficia di un'integrazione nel kernel di linux.
ATTENZIONE Per quanto btrfs sia stato inserito nel kernel di linux da più di 15 anni esistono ancora configurazioni/funzionalità che sono da considerarsi sperimentali o addirittura problematiche, per tanto si consiglia caldamente di leggere questa pagina del wiki di debian per maggiori informazioni sull'argomento. |
Suggerimento Alcune operazioni (come la copia dei dati dai vecchi dischi/partizioni) possono richiedere molto tempo, pertanto si consiglia di eseguire dette operazioni all'interno di una sessione di GNU/Screen (o altro applicativo che permetta di "scollegarsi" dalla sessione di terminale senza terminarla). |
Installazione
Tutti gli strumenti necessari a creare e manipolare un filesystem btrfs sono contenuti in un solo pacchetto:
# apt install btrfs-progs
Si consiglia di installare anche un pacchetto per l'automazione della manutenzione dei volumi btrfs, che per la loro complessità sono soggetti nel tempo a degradazione delle prestazioni se non manutenuti:
# apt install btrfsmaintenance
Utilizzo
ATTENZIONE LASCIARE SEMPRE almeno 10GB di spazio libero su ogni volume btrfs per permettere le operazioni di manutenzione. |
Per formattare una nuova partizione il comando generale è:
# mkfs.btrfs -L mia_etichetta /dev/sdX1
dove
/dev/sdX1
è la partizione da formattare;-L
è l'opzione che permette di assegnare l'etichetta alla partizione da formattare.
Altre opzioni utili sono:
-f
per forzare il sistema a formattare una partizione che non sia vuota, cioè che abbia già un suo filesystem.-d
per specificare il profilo dati da usare. Il valore predefinito èsingle
.-m
per specificare il profilo metadati da usare. Il valore predefinito èdup
nel caso di disco singolo oppureraid1
nel caso di deu o più.
Profili (meta)dati
Per definire se si vuole ridondanza sia di dati che metadati si usano i profili, selezionabili come già scritto sopra con le opzioni rispettivamente -d
e -m
. La scelta dei profili e il loro significato è il medesimo sia per i dati che per i metadati, ovvero non esistono profili dedicati per i soli dati o metadati.
Suggerimento Nel caso di disco singolo non c'è alcuna ragione di scegliere un profilo metadati diverso da quello predefinito. |
single
: implica nessuna ridondanza dei (meta)dati e quindi permette di sfruttare il 100% dello spazio disponibile di un volume. Nel caso di più dischi/partizioni lo spazio totale disponibile sarà semplicemente la somma dei dischi/partizioni che lo compongono.dup
: da usare nel solo caso di volume composto da disco/partizione singolo, implica appunto la duplicazione dei (meta)dati. Nel caso dei dati lo spazio totale disponibile sarà quindi la metà di quello teorico (la duplicazione dei metadati invece comporta un consumo di spazio molto meno rilevante). Questo profilo protegge contro il degrado del tempo, ma non contro eventuali guasti hardware.
raid1
: da usare solo nel caso di volume composto da due o più dischi/partizioni. Funziona in modo simile al raid1 di mdadm, ma con due differenze importanti
- lo spazio totale disponibile è sempre la metà della somma dei dischi/partizioni che compongono il volume, e non 1/N (con N = n. totale dischi/partizioni);
- i dischi/partizioni che compongono il volume non devono necessariamente avere la stesse dimensioni, ma la capacità di nessuno di essi può essere superiore alla somma delle capacità di tutti gli altri, ad esempio nel caso di tre dischi sarebbe accettabile avere 4TB, 3TB e 1TB, ma non 6TB e 2x1TB. È comunque consigliato avere dischi/partizioni di pari dimensioni.
- Quando il volume è composto da due dischi/partizioni di dimensioni identiche allora si ha in pratica coincidenza con un volume raid 1 classico composto da due dischi.
raid1c3, raid1c4
: ancora poco testati e quindi sconsigliati, sono inclusi al solo scopo di chiarire meglio le differenze tra il raid di btrfs e quello classico. Entrambi i profili richiedono che il volume sia composto da almeno tre e quattro dischi/partizioni rispettivamente. Il primo crea tre copie dei (meta)dati e il secondo quattro, ergo lo spazio totale disponibile sarà rispettivamente 1/3 ed 1/4 della somma teorica totale. Questi due profili funzionano esattamente come quello diraid1
, eccetto appunto il numero di copie, inoltre quando i volumi sono composti rispettivamente da 3 e 4 dischi/partizioni di dimensioni identiche coincidono a livello pratico con un volume raid 1 classico composto dallo stesso numero di dischi.
Esempi
Raid1 con sei dischi
Ipotesi:
- si hanno a disposizione sei dischi a due a due di identiche dimensioni e precisamente pari rispettivamente a 3TB, 2TB ed 1,5TB;
- i dischi siano identificati come
/dev/sdU
(3TB),/dev/sdV
(2TB),/dev/sdW
(1,5TB),/dev/sdX
(3TB),/dev/sdY
(2TB),/dev/sdZ
(1,5TB); - i dischi non sono nuovi e contengono dati;
- ciascun disco contiene gli stessi dati dell'altro avente pari dimensioni, ad es. il i due dischi da 3TB contengono ciascuno una copia degli stessi dati;
Obiettivo
Creare un volume btrfs raid1 da 6,5TB di spazio totale composto da tutti e sei i dischi, ma senza dover necessariamente copiare prima i dati già presenti altrove.
ATTENZIONE Si consiglia caldamente di fare una copia di backup dei dati presenti sui dischi che andranno a comporre il volume btrfs prima di iniziare le operazioni. |
Passo 1
Selezionare tre dischi tutti di differente capacità e pulirli
ATTENZIONE Quest'operazione implica la cancellazione permanente di tutti i dati dai dischi puliti. |
# wipefs -a /dev/sdU /dev/sdV /dev/sdW
Passo 2
Ripartizionare i tre dischi
# parted /dev/sdU mklabel gpt mkpart nome_desiderato1 btrfs 0% 100% # parted /dev/sdV mklabel gpt mkpart nome_desiderato2 btrfs 0% 100% # parted /dev/sdW mklabel gpt mkpart nome_desiderato3 btrfs 0% 100%
Passo 3
Formattare i 3 dischi e contestualmente creare il volume btrfs
mkfs.btrfs -f -L nome_etichetta -d single -m raid1 /dev/sdU1 /dev/sdV1 /dev/sdW1
A questo punto digitando il comando # lsblk
si vedrà che l'UUID di tutte e tre le partizioni è il medesimo.
Passo 4
Montare il volume btrfs appena creato o specificando il primo disco dei tre o l'UUID (visibile tramite lsblk -f
per esempio) del volume btrfs:
# mount /dev/sdU1 /punto/di/mount/desiderato/
Passo 5
Copiare tutti i dati dai dischi /dev/sdX /dev/sdY /dev/sdZ
sul nuovo volume btrfs.
Avvertimento Se i dati da copiare sono molti, ad esempio qualche TB, l'operazione potrebbe anche richiedere uno o più giorni. |
Passo 6
Pulire anche i tre dischi rimanenti.
ATTENZIONE Quest'operazione implica la cancellazione permanente di tutti i dati dai dischi puliti. |
# wipefs -a /dev/sdX /dev/sdY /dev/sdZ
Passo 7
Ripartizionare anche i tre dischi rimanenti
# parted /dev/sdX mklabel gpt mkpart nome_desiderato4 btrfs 0% 100% # parted /dev/sdY mklabel gpt mkpart nome_desiderato5 btrfs 0% 100% # parted /dev/sdZ mklabel gpt mkpart nome_desiderato6 btrfs 0% 100%
Passo 8
Aggiungere i tre dischi appena puliti al nostro volume btfrs (che DEVE essere montato)
# btrfs device add -f /dev/sdX /dev/sdY /dev/sdZ /punto/di/mount/scelto/in/precedenza/
Manpages
Sitografia
- Documentazione ufficiale
- Pagina wiki Debian
- Btrfs, pagina inglese di wikipedia
- Forza's ramblings btrfs wiki
Guida scritta da: Wtf (discussioni) 17:58, 25 dic 2024 (UTC) | Debianized 20% |
Estesa da: | |
Verificata da: | |
Verificare ed estendere la guida | Cos'è una guida Debianized |