GNU/Linux >> Linux Esercitazione >  >> Cent OS

Come creare e montare snapshot Btrfs

Btrfs è un file system open source per uso generico per Linux. Il nome deriva dall'uso di B-tree per memorizzare le strutture interne del file system. Per il file system vengono utilizzati nomi diversi, inclusi "Butter F S" e "B-tree F S". Lo sviluppo di Btrfs è iniziato in Oracle nel 2007 e ora numerose aziende (tra cui Red Hat, Fujitsu, Intel, SUSE e molte altre) stanno contribuendo allo sforzo di sviluppo. Btrfs è incluso nel kernel Linux principale.

Istantanee Btrfs

I sottovolumi Btrfs possono essere sottoposti a snapshot e clonati, il che crea B-tree aggiuntivi. Uno snapshot inizia come una copia di un sottovolume acquisito in un determinato momento. Puoi rendere scrivibile un'istantanea e usarla come un clone in evoluzione del sottovolume originale. Oppure puoi utilizzare lo snapshot come immagine stabile di un sottovolume per scopi di backup o per la migrazione ad altri sistemi. Le istantanee possono essere create rapidamente e inizialmente occupano pochissimo spazio su disco.

Utilizzare il comando btrfs subvolume snapshot per creare un'istantanea scrivibile/leggibile di un sottovolume. L'esempio seguente crea uno snapshot del sottovolume SV1:

# btrfs subvolume snapshot /btrfs/SV1 /btrfs/SV1/SV1-snap
Create a snapshot of '/btrfs/SV1' in '/btrfs/SV1/SV1-snap'

Usa l'istantanea del sottovolume btrfs -r opzione per creare uno snapshot di sola lettura:

# btrfs subvolume snapshot -r /btrfs/SV1 /btrfs/SV1-rosnap
Create a readonly snapshot of '/btrfs/SV1' in '/btrfs/SV1-rosnap'

Gli snapshot vengono visualizzati come una directory normale quando viene utilizzato il comando ls. Le istantanee vengono visualizzate anche nell'output del comando btrfs subvolume list.

# btrfs subvolume list /btrfs
ID 257 gen 10 top level 5 path SV1
ID 258 gen 9 top level 257 path SV1/SV1-snap
ID 259 gen 10 top level 5 path SV1-rosnap

Scatto di un'istantanea di un file

Puoi utilizzare il "cp –reflink ” comando per acquisire un'istantanea di un file. Con questa opzione, il file system non crea un nuovo collegamento che punta a un inode esistente, ma crea invece un nuovo inode che condivide gli stessi blocchi del disco della copia originale. Il nuovo file sembra essere una copia del file originale ma i blocchi di dati non sono duplicati. Ciò consente alla copia di essere quasi istantanea e di risparmiare spazio su disco. Poiché il contenuto del file diverge nel tempo, la quantità di spazio di archiviazione richiesta aumenta. Una restrizione è che questa operazione può funzionare solo entro i limiti dello stesso file system e all'interno dello stesso sottovolume.

L'esempio seguente copia un file utilizzando il comando cp –reflink. Lo spazio utilizzato viene assegnato sia prima che dopo l'operazione di copia. Nota che lo spazio utilizzato non aumenta.

# df -hP /btrfs
Filesystem       Size  Used   Avail  Use%   Mounted on
/dev/sda         10G   23M    8.0G    1%    /btrfs
# cp --reflink /btrfs/SV1/vmlinuz-3.10.0-693.17.1.el7.x86_64 /btrfs/SV1/copy_of_vmlinuz
# df -h /btrfs
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda         10G   23M  8.0G   1% /btrfs

Montaggio di un sottovolume o di un'istantanea

Per impostazione predefinita, Linux monta il volume Btrfs padre, che ha un ID 0. In questo esempio, il seguente comando mount è stato immesso prima di creare qualsiasi sottovolume e snapshot:

# mount /dev/sdb /btrfs

Il sottovolume SV1 è stato creato in /btrfs. Il comando ls mostra il sottovolume:

# ls -l /btrfs
total 0
drwxr-xr-x. 1 root root 84 Mar 29 11:01 SV1

L'esempio seguente copia i file in SV1, crea uno snapshot di SV1 e verifica che sia il sottovolume che lo snapshot contengano gli stessi file:

# cp -p /boot/vmlinuz-3.10.0-693.17.1.el7.x86_64 /btrfs/SV1
# btrfs sub snapshot /btrfs/SV1 /btrfs/SV1-snap
Create a snapshot of '/btrfs/SV1' in '/btrfs/SV1-snap'
# ls /btrfs/SV1*
/btrfs/SV1:
vmlinuz-3.10.0-693.17.1.el7.x86_64

/btrfs/SV1-snap:
vmlinuz-3.10.0-693.17.1.el7.x86_64

Se si smonta /btrfs e lo si rimonta, il volume padre Btrfs viene montato per impostazione predefinita:

# ls /btrfs/
SV1  SV1-snap
# umount /btrfs
# mount /dev/sda /btrfs/
# ls /btrfs/
SV1  SV1-snap

Tuttavia, puoi montare un sottovolume o uno snapshot btrfs come se fosse un dispositivo disco. Se si monta uno snapshot invece del suo sottovolume padre, si ripristina in modo efficace lo stato del file system al momento in cui è stato acquisito lo snapshot. L'esempio seguente copia un file in SV1 in modo che il contenuto sia diverso da SV1-snap:

# cp testfile /btrfs/SV1
# ls -l /btrfs/SV1*
/btrfs/SV1:
total 5760
-rw-r--r--. 1 root root      19 Mar 29 11:44 testfile
-rwxr-xr-x. 1 root root 5890720 Jan 25 20:26 vmlinuz-3.10.0-693.17.1.el7.x86_64

/btrfs/SV1-snap:
total 5756
-rwxr-xr-x. 1 root root 5890720 Jan 25 20:26 vmlinuz-3.10.0-693.17.1.el7.x86_64

Per montare un sottovolume o uno snapshot, devi prima determinare il numero ID del sottovolume che vuoi montare. Utilizzare il comando btrfs subvolume list per visualizzare i numeri ID. Nell'esempio seguente, l'ID del sottovolume principale è 257:

# btrfs sub list /btrfs
ID 257 gen 12 top level 5 path SV1
ID 258 gen 9 top level 5 path SV1-snap

Usa btrfs “sottovolume set-default ” comando per impostare il sottovolume predefinito di un file system. Ad esempio, per montare il sottovolume SV1 Btrfs, che ha un ID di 257:

# btrfs subvolume set-default 257 /btrfs

È quindi necessario smontare e rimontare il file system Btrfs. Il livello principale contiene quindi il contenuto del sottovolume SV1 e il sottovolume principale non è più visibile:

# ls -l /btrfs
total 5760
-rw-r--r--. 1 root root      19 Mar 29 11:44 testfile
-rwxr-xr-x. 1 root root 5890720 Jan 25 20:26 vmlinuz-3.10.0-693.17.1.el7.x86_64

Puoi anche utilizzare il "-o subvolid ” opzione al comando mount per montare il sottovolume radice o un sottovolume o snapshot. Ad esempio, per montare il sottovolume radice:

# umount /btrfs
# mount -o subvolid=5 /dev/sda /btrfs
# ls -l /btrfs
total 0
drwxr-xr-x. 1 root root 84 Mar 29 11:44 SV1
drwxr-xr-x. 1 root root 68 Mar 29 11:17 SV1-snap
Come creare e montare il file system Btrfs (spiegato con esempi)
Come ridimensionare/ espandere un volume/file system Btrfs


Cent OS
  1. Come creare e utilizzare i sottodomini

  2. Come utilizzare snapshot, cloni e replica in ZFS su Linux

  3. Come creare e abilitare la partizione di scambio su Centos / RHEL 8

  4. Come creare un file e montarlo come filesystem?

  5. Come creare snapshot di volumi sottili LVM utilizzando il comando snapper

Come creare un utente MariaDB e concedere privilegi

Come creare ed eseguire uno script di shell in CentOS 8

Come creare e ripristinare snapshot VM in VirtualBox

Come creare, ripristinare ed eliminare snapshot di immagini di macchine virtuali in RedHat Virtualization

Come creare/rimuovere e montare un filesystem Stratis in CentOS/RHEL 8

Come rinominare un sottovolume BTRFS?