Btrfs: differenze tra le versioni

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
Riga 104: Riga 104:
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/desiderato/</pre>
<pre># btrfs device add -f /dev/sdX /dev/sdY /dev/sdZ /punto/di/mount/desiderato/</pre>
== Approfondimenti ==


=== Manpages ===
=== Manpages ===

Versione delle 12:47, 26 dic 2024

File System e dispositivi fisici
Arrow left.png

Generalità

Locali

Remoti

Strumenti

Arrow right.png


Debian-swirl.png 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.

Warning.png 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.


Info.png Volumi, dischi e partizioni
Nel seguito della guida si scriverà sempre genericamente di volume a prescindere che questo sia composto da un solo disco/partizione oppure più di uno. Dal punto di vista pratico infatti non fa alcuna differenza perché l'utente vedrà sempre e soltanto una "partizione" (ma lo spazio totale usabile ovviamente cambierà).
Bulb.png 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

Warning.png 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 oppure raid1 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.

Bulb.png 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.
Attention.png Avvertimento
Nel caso di disco singolo se si sceglie profilo single per i dati e dup per i metadati si sarà solo informati di un eventuale danneggiamento dei dati, ma non sarà possibile una riparazione degli stessi. L'unico modo per proteggere i dati in questo caso è scegliere il profilo dup sia per i dati che metadati.
  • 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 di raid1, 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.

Warning.png 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

Warning.png 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.

Attention.png 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.

Warning.png 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/desiderato/

Approfondimenti

Manpages

Sitografia




Guida scritta da: Wtf (discussioni) 17:58, 25 dic 2024 (UTC) Swirl-auth20.png Debianized 20%
Estesa da:
Verificata da:

Verificare ed estendere la guida | Cos'è una guida Debianized