Btrfs

Come utilizzare le istantanee Btrfs

Come utilizzare le istantanee Btrfs
Il filesystem Btrfs ha il supporto per snapshot a livello di filesystem integrato. Puoi creare un sottovolume nel tuo filesystem Btrfs e scattare istantanee dei file/directory in quel sottovolume. Scattare un'istantanea di un sottovolume salverà lo stato dei file/directory in quel sottovolume. Puoi recuperare qualsiasi file/directory del sottovolume dallo snapshot nel caso ne avessi bisogno.

La funzione snapshot del filesystem Btrfs utilizza il principio Copy-on-Write (CoW). Quindi, non richiede molto spazio su disco e puoi scattare istantanee di un sottovolume all'istante.

Il filesystem Btrfs supporta 2 tipi di snapshot.

  1. Istantanee scrivibili: Se acquisisci un'istantanea scrivibile, puoi modificare i file/le directory di quell'istantanea in un secondo momento. Questo è il tipo di snapshot predefinito del filesystem Btrfs.
  2. Istantanee di sola lettura: Se acquisisci un'istantanea di sola lettura, non puoi modificare i file/le directory di quell'istantanea in un secondo momento.

Questo articolo ti mostrerà come acquisire istantanee scrivibili e di sola lettura dei tuoi sottovolumi del filesystem Btrfs. Ti mostrerò anche come aggiornare un'istantanea scrivibile e recuperare i file da un'istantanea. Ti mostrerò anche come rimuovere un'istantanea. Quindi iniziamo.

Prerequisiti

Per provare gli esempi di questo articolo,

Ho un disco rigido da 20 GB sdb sulla mia macchina Ubuntu. Ho creato 2 partizioni sdb1 e sdb2 su questo disco rigido. userò la partizione sdb1 in questo articolo.

$ sudo lsblk -e7

Il tuo disco rigido o SSD potrebbe avere un nome diverso dal mio, così come le partizioni. Quindi, assicurati di sostituirli con i tuoi d'ora in poi.

Se hai bisogno di assistenza per l'installazione del filesystem Btrfs su Ubuntu, controlla il mio articolo Installa e usa Btrfs su Ubuntu 20.04 LTS.

Se hai bisogno di assistenza sull'installazione del filesystem Btrfs su Fedora, controlla il mio articolo Installa e usa Btrfs su Fedora 33.

Creazione di un filesystem Btrfs

Per sperimentare con i sottovolumi Btrfs, è necessario creare un filesystem Btrfs.

Per creare un filesystem Btrfs con l'etichetta dati sul sdb1 partizione, eseguire il seguente comando:

$ sudo mkfs.btrfs -L dati /dev/sdb1

Dovrebbe essere creato un filesystem Btrfs.

Crea una directory /dati con il seguente comando:

$ sudo mkdir -v /data

Per montare il filesystem Btrfs creato sul sdb1 partizione nel /dati directory, eseguire il seguente comando:

$ sudo mount /dev/sdb1 /data

Il filesystem Btrfs dovrebbe essere montato come puoi vedere nello screenshot qui sotto.

$ df -h /dati

Preparazione del filesystem Btrfs per le istantanee

In Btrfs, puoi scattare istantanee solo dei sottovolumi Btrfs. Anche la radice principale di un filesystem Btrfs è un sottovolume. Quindi, puoi eseguire il backup dell'intero filesystem Btrfs e di sottovolumi specifici.

Questa sezione creerà un sottovolume Btrfs /dati/progetti/web1 e crea i file necessari per le prossime sezioni di questo articolo qui sotto. Creerò anche una directory dove puoi conservare le tue istantanee. Nelle prossime sezioni, ti mostrerò come scattare istantanee (scrivibili e di sola lettura), aggiornare un'istantanea scrivibile e recuperare i file dall'istantanea. Quindi iniziamo.

Per prima cosa, crea una nuova directory /dati/progetti come segue:

$ sudo mkdir -v /dati/progetti

Crea un nuovo sottovolume web1 nel /dati/progetti directory come segue:

$ sudo btrfs subvolume create /data/projects/web1

Crea un nuovo file indice.html nel /dati/progetti/web1 sottovolume come segue:

$ sudo nano /data/projects/web1/index.html

Digita le seguenti righe di codici nel indice.html file.




Sito dimostrativo



Ciao mondo 4



Quando hai finito, premi + X seguito da e per salvare il indice.html file.

Crea un nuovo file stile.css nel /dati/progetti/web1 sottovolume come segue:

$ sudo nano /data/projects/web1/style.css

Digita le seguenti righe di codici nel stile.css file.

h1
colore: verde;

Quando hai finito, premi + X seguito da e per salvare il stile.css file.

Ora il /dati/progetti/web1 il sottovolume ha il indice.html e stile.css file.

$ ls -lh /dati/progetti/web1

Voglio conservare tutte le istantanee di questo filesystem Btrfs nel /dati/.istantanee directory.

Crea il /dati/.istantanee directory con il seguente comando:

$ sudo mkdir -v /data/.istantanee

Scattare istantanee di un sottovolume

Per scattare un'istantanea del /dati/progetti/web1 sottovolume in /dati/.istantanee/web1-2020-12-25 directory (verrà creata automaticamente), eseguire il seguente comando:

$ sudo btrfs snapshot del sottovolume /data/projects/web1 /data/.istantanee/web1-2020-12-25

Un'istantanea del /dati/progetti/web1 la directory dovrebbe essere creata sul /dati/.istantanee/web1-2020-12-25 directory.

Come puoi vedere nello screenshot qui sotto, un nuovo sottovolume .istantanee/web1-2020-12-25 è creato. Un'istantanea è in realtà un sottovolume.

$ sudo btrfs sottovolume elenco /dati

Puoi vedere maggiori informazioni sull'istantanea che hai creato nel /dati/.istantanee/web1-2020-12-25 directory come segue:

$ sudo btrfs sottovolume mostra /data/.istantanee/web1-2020-12-25

Come puoi vedere, tutti i file che sono nel /dati/progetti/web1 sottovolume sono in /dati/.istantanee/web1-2020-12-25 istantanea.

$ albero -a /dati

Recupero di file da istantanee

In questa sezione, ti mostrerò come recuperare i file dagli snapshot Btrfs.

Per prima cosa, ti mostrerò come recuperare un singolo file dall'istantanea.

Apri il /dati/progetti/web1/index.html file con l'editor di testo nano come segue:

$ sudo nano /data/projects/web1/index.html

Apporta le modifiche che desideri.

Quando hai finito, premi + X seguito da e per salvare il file.

Come puoi vedere, il principale indice.html il file è diverso da indice.html file nell'istantanea.

$ cat /data/projects/web1/index.html
$ gatto /dati/.istantanee/web1-2020-12-25/indice.html

Abbiamo apportato le modifiche al principale indice.html file sono indesiderati e vogliamo recuperare il recover indice.html file dall'istantanea.

Puoi ripristinare il indice.html file dallo snapshot come segue:

$ sudo cp -v /data/.istantanee/web1-2020-12-25/indice.html /data/projects/web1/index.html

Come puoi vedere, il indice.html il file viene ripristinato dall'istantanea.

$ cat /data/projects/web1/index.html
$ gatto /dati/.istantanee/web1-2020-12-25/indice.html

Ora vediamo come recuperare tutti i file/directory dallo snapshot.

Rimuovi tutti i file dal /dati/progetti/web1 istantanea come segue:

$ sudo rm -rv /data/projects/web1/*

Per recuperare tutti i file/directory dallo snapshot, eseguire il seguente comando:

$ sudo rsync -avz /data/.istantanee/web1-2020-12-25/ /dati/progetti/web1/

Come puoi vedere, i file/le directory vengono ripristinati dall'istantanea.

$ ls -lh /dati/progetti/web1

Infine, vediamo come recuperare file/directory dallo snapshot in modalità mirror. In modalità mirror, i file/directory del sottovolume saranno gli stessi dell'istantanea. Se ci sono file/directory nel sottovolume che non sono disponibili nello snapshot, verranno rimossi.

Creiamo un nuovo file nel sottovolume per differenziare l'albero dei file dall'istantanea.

Creare un LEGGIMI.TXT file nel /dati/progetti/web1 sottovolume come segue:

$ echo "ciao mondo 5" | sudo tee /data/projects/web1/README.TXT

Come puoi vedere, l'albero dei file del /dati/progetti/web1 il sottovolume è diverso da /dati/.istantanee/web1-2020-12-25 istantanea.

$ albero -a /dati

Per ripristinare i file/directory dal /dati/.istantanee/web1-2020-12-25 istantanea al /dati/progetti/web1 sottovolume in modalità mirror, eseguire il seguente comando:

$ sudo rsync -avz --delete /data/.istantanee/web1-2020-12-25/ /dati/progetti/web1/

Tutti i file/directory del /dati/progetti/web1 il sottovolume dovrebbe essere ripristinato (in modalità mirror) dal /dati/.istantanee/web1-2020-12-25 istantanea.

L'albero dei file del /dati/progetti/web1 sottovolume e il /dati/.istantanee/web1-2020-12-25 l'istantanea dovrebbe essere la stessa.

Come puoi vedere, l'indice.file e stile html.il contenuto del file css è lo stesso nel /dati/progetti/web1 sottovolume e il /dati/.istantanee/web1-2020-12-25 istantanea.

Contenuto del indice.html e stile.css file nel /dati/progetti/web1 sottovolume.

$ cat /data/projects/web1/index.html
$ cat /dati/progetti/web1/stile.css

Contenuto del indice.html e stile.css file nel /dati/.istantanee/web1-2020-12-25 istantanea.

$ cat /data/projects/web1/index.html
$ cat /dati/progetti/web1/stile.css

Aggiornamento di un'istantanea

Per impostazione predefinita, il filesystem Btrfs acquisisce snapshot scrivibili. Un'istantanea di Btrfs è proprio come un sottovolume. Quindi, puoi modificare/aggiornare i file/le directory di un'istantanea scrivibile.

Aggiorniamo il indice.html file nel /dati/progetti/web1 sottovolume.

Per prima cosa, apri il indice.html file dal /dati/progetti/web1 sottovolume con il nano editor di testo come segue:

$ sudo nano /data/projects/web1/index.html

Apporta le modifiche che desideri. Quando hai finito, premi + X seguito da e per salvare il indice.html file.

Come puoi vedere, l'indice.html del file /dati/progetti/web1 il sottovolume è diverso da /dati/.istantanee/web1-2020-12-25 istantanea.

$ cat /data/projects/web1/index.html
$ gatto /dati/.istantanee/web1-2020-12-25/indice.html

Vuoi mantenere il indice.html file del /dati/progetti/web1 sottovolume.

Per aggiornare il indice.html file nel /dati/.istantanee/web1-2020-12-25 snapshot, eseguire il seguente comando:

$ sudo cp -v /data/projects/web1/index.html /dati/.istantanee/web1-2020-12-25/indice.html

Come puoi vedere, il indice.html file del /dati/.istantanee/web1-2020-12-25 l'istantanea è aggiornata.

Aggiornare un'istantanea è facile come copiare nuovi file nell'istantanea.

Acquisizione di istantanee di sola lettura di un sottovolume

A volte, non vuoi che le istantanee che hai scattato vengano aggiornate in alcun modo. In tal caso, puoi creare istantanee di sola lettura.

Ad esempio, per creare un'istantanea di sola lettura /dati/.istantanee/web1-2020-12-26 del /dati/progetti/web1 sottovolume, esegui il seguente comando:

$ sudo btrfs subvolume snapshot -r /data/projects/web1 /data/.istantanee/web1-2020-12-26

Come puoi vedere, un nuovo sottovolume .istantanee/web1-2020-12-26 è creato.

$ sudo btrfs sottovolume elenco /dati

Come puoi vedere, l'istantanea /dati/.istantanee/web1-2020-12-26 è di sola lettura.

$ sudo btrfs sottovolume mostra /data/.istantanee/web1-2020-12-26

Aggiorniamo il indice.html file dal /dati/progetti/web1 sottovolume.

Per farlo, apri il indice.html file dal /dati/progetti/web1 sottovolume con il nano editor di testo come segue:

$ sudo nano /data/projects/web1/index.html

Apporta le modifiche che desideri. Quando hai finito, premi + X seguito da e per salvare le modifiche.

Come puoi vedere, il indice.html nel /dati/progetti/web1 il sottovolume è diverso da /dati/.istantanee/web1-2020-12-26 istantanea.

$ cat /data/projects/web1/index.html
$ gatto /dati/.istantanee/web1-2020-12-26/indice.html

Proviamo ad aggiornare il indice.html file nel /dati/.istantanee/web1-2020-12-26 istantanea.

$ sudo cp -v /data/projects/web1/index.html /dati/.istantanee/web1-2020-12-26/indice.html

Come puoi vedere, non puoi aggiornare il indice.html file del /dati/.istantanee/web1-2020-12-26 snapshot perché lo snapshot è di sola lettura.

Rimozione di un'istantanea

Ti ho detto prima che un'istantanea di Btrfs è come un sottovolume. Quindi, puoi rimuovere un'istantanea Btrfs proprio come rimuovi un sottovolume Btrfs. Stesso comando.

Ecco come è stato montato l'albero dei file del filesystem Btrfs sul /dati la directory sembra al momento.

$ albero -a /dati

Rimuoviamo il .istantanee/web1-2020-12-25 istantanea.

$ sudo btrfs sottovolume elenco /dati

Per rimuovere il /dati/.istantanee/web1-2020-12-25 snapshot, eseguire il seguente comando:

$ sudo btrfs sottovolume cancella /data/.istantanee/web1-2020-12-25

Come puoi vedere, l'istantanea .istantanee/web1-2020-12-25 non è più.

$ sudo btrfs sottovolume elenco /dati

Come puoi vedere, i file/directory del /dati/.istantanee/web1-2020-12-25 anche l'istantanea viene rimossa.

$ albero -a /dati

Conclusione

Questo articolo ti ha mostrato come acquisire istantanee scrivibili e di sola lettura dei tuoi sottovolumi del filesystem Btrfs. Ti ho anche mostrato come aggiornare un'istantanea scrivibile e recuperare i file da un'istantanea. Ti ho mostrato come rimuovere anche un'istantanea Btrfs. Questo articolo dovrebbe aiutarti a iniziare con la funzione snapshot Btrfs.

OpenTTD vs Simutrans
Creare la tua simulazione di trasporto può essere divertente, rilassante ed estremamente allettante. Ecco perché devi assicurarti di provare quanti pi...
Tutorial OpenTTD
OpenTTD è uno dei giochi di simulazione aziendale più popolari in circolazione. In questo gioco, devi creare una meravigliosa attività di trasporto. T...
SuperTuxKart per Linux
SuperTuxKart è un fantastico titolo progettato per offrirti l'esperienza di Mario Kart gratuitamente sul tuo sistema Linux. È piuttosto impegnativo e ...