Come eseguire il backup di istantanee btrfs a unità esterne

Come eseguire il backup di istantanee btrfs a unità esterne

Per impostazione predefinita, è possibile archiviare le snapshot che prendi dei tuoi sottovolums BTRFS nello stesso filesystem BTRFS, ma non è possibile archiviare le istantanee di un filesystem BTRFS direttamente su un altro filesystem BTRFS. Tuttavia, il filesystem BTRFS fornisce gli strumenti necessari per eseguire il backup delle snapshot di un filesystem BTRFS a un altro filesystem BTRFS. Questo articolo mostra come eseguire il backup di BTRFS Snapshot a un filesystem BTRFS esterno su un'unità esterna.

Prerequisiti

Per provare gli esempi inclusi in questo articolo, è necessario adempiere ai seguenti prerequisiti:

  • Fai installare il filesystem BTRFS sul tuo computer.
  • Avere un disco rigido o un SSD con almeno 2 partizioni gratuite (di qualsiasi dimensione).

Ho il disco rigido da 20 GB, sdb, Sulla mia macchina Ubuntu. Ho creato due partizioni, SDB1 E SDB2, Su questo disco rigido.

$ sudo lsblk -e7

Nota: Il tuo disco rigido o SSD avrà un nome diverso dal mio, e così le partizioni. Quindi, assicurati di sostituire questi nomi con i tuoi da ora in poi.


Creerò filesystem BTRFS su SDB1 e il SDB2 partizioni. Le istantanee create sul filesystem BTRFS (SDB1) verrà eseguito il backup del filesystem BTRFS creato su SDB2 partizione. Il filesystem BTRFS creato su SDB2 La partizione fungerà da unità esterna. È possibile utilizzare anche un'unità di pollice USB o un disco rigido esterno; Assicurati di formattarlo con il filesystem BTRFS.

Per assistenza nell'installazione del filesystem BTRFS in Ubuntu, controlla il mio articolo Installa e utilizza BTRFS su Ubuntu 20.04 LTS.

Per assistenza nell'installazione del filesystem BTRFS in Fedora, controlla il mio articolo Installa e utilizza BTRFS su Fedora 33.

Creazione di filesystem BTRFS richiesti

Formatò sia il SDB1 E SDB2 partizioni come btrfs. Userò il SDB1 Partizione per la memorizzazione delle istantanee di dati e BTRFS. Userò il SDB2 partizione per il backup delle istantanee del filesystem BTRFS creato sul SDB1 partizione.

Per creare un filesystem BTRFS su SDB1 partizione e dargli i dati dell'etichetta del filesystem, eseguire il comando seguente:

$ sudo mkfs.BTRFS -L Data /Dev /SDB1

Un filesystem BTRFS dovrebbe ora essere creato su SDB1 partizione.

Per creare un filesystem BTRFS su SDB2 partizione e dargli le snapshot dell'etichetta del filesystem, eseguire il comando seguente:

$ sudo mkfs.BTRFS -L Snapshot /Dev /SDB2

Un filesystem BTRFS dovrebbe ora essere creato su SDB2 partizione.

Crea le directory /dati E /istantanee per montare il SDB1 E SDB2 Partizioni, rispettivamente, come segue:

$ sudo mkdir -v /data, istantanee

Montare il filesystem BTRFS che hai creato su SDB1 partizione sulla directory /dati, come segue:

$ sudo Mount /Dev /SDB1 /Data

Allo stesso modo, montare il filesystem BTRFS che hai creato sul SDB2 partizione sul /istantanee Directory, come segue:

$ Sudo Mount /Dev /SDB2 /Snapshot

Come puoi vedere nello screenshot di seguito, entrambi i filesystem BTRFS (SDB1 E SDB2 partizioni) sono state montate correttamente.

$ df -h -t btrfs

Prendendo le istantanee di un filesystem BTRFS

In questa sezione, creeremo il progetto fittizio Web1 sul /Data/Projects/Web1 BTRFS Subolume. In questa sezione, faremo un'istantanea di quel sottovolume, così come alcune altre istantanee nelle sezioni successive di questo articolo.

Innanzitutto, crea la nuova directory /dati/progetti, come segue:

$ sudo mkdir -v /dati /progetti

Quindi, crea il nuovo Subvolume Web1 nel /Directory di dati/progetti, come segue:

$ sudo btrfs sub -volume create/data/progetti/web1

Infine, crea il nuovo indice di file.html nel /Data/Projects/Web1 SUBOLUME CON L'EDITORE DI TESTO Nano, come segue:

$ sudo nano/data/progetti/web1/indice.html

Digita le seguenti righe di codice nell'indice.file html:




Sito web demo



Ciao mondo




Una volta terminato, premere <Ctrl> + X seguito da Y E <accedere> Per salvare il indice.file html.

Allo stesso modo, crea il nuovo file stile.CSS nel /Data/Projects/Web1 Subolume come segue:

$ sudo nano/data/progetti/web1/stile.CSS


Digitare le seguenti righe di codice in stile.CSS file:

H1
Colore: verde;

Una volta terminato, premere <Ctrl> + X seguito da Y E <accedere> Per salvare il stile.CSS file.

Ora il /Data/Projects/Web1 Subolume contiene il indice.html E stile.File CSS.

$ ls -lh/dati/progetti/web1

Conserveremo tutte le snapshot di questo filesystem BTRFS nel /dati/.istantanee directory.

Innanzitutto, crea il /dati/.istantanee Directory con il seguente comando:

$ sudo mkdir -v /dati /.istantanee

Quindi, crea l'istantanea di sola lettura /dati/.Snapshots/Web1-2020-12-30 del /Data/Projects/Web1 Subolume con il seguente comando:

$ sudo btrfs Subolume Snapshot -R/Data/Projects/Web1/Data/.Snapshots/Web1-2020-12-30

Come puoi vedere, la nuova istantanea /dati/.Snapshots/Web1-2020-12-30 è stato creato.

$ Sudo BTRFS Elenco dei sub -volum /dati

Eseguire il backup di istantanee all'unità esterna

Per eseguire il backup dell'istantanea /dati/.Snapshots/Web1-2020-12-30 a un altro filesystem BTRFS (unità esterna SDB2, in questo caso) montato sul /istantanee Directory, eseguire il seguente comando:

$ sudo btrfs Send /Data /.Snapshots/Web1-2020-12-30 | sudo btrfs ricevi /istantanee

L'istantanea /dati/.Snapshots/Web1-2020-12-30 dovrebbe essere eseguito il backup del filesystem BTRFS esterno (SDB2) montato su /istantanee directory.

Come puoi vedere, il Nuovo Subvolume Web1-2020-12-30 è stato creato sul filesystem BTRFS esterno.

$ sudo btrfs Elenco sub -volume /istantanee

IL Snapshot Web1-2020-12-30 dovrebbe avere gli stessi file/directory come il /dati/.Snapshots/Web1-2020-12-30 istantanea.

$ Tree -A /Snapshots

È possibile ottenere maggiori informazioni sull'istantanea di backup /Snapshosts/Web1-2020-12-30 come segue:

$ Sudo BTRFS Subolume Show /Snapshots /Web1-2020-12-30

Back-up incrementale di istantanee all'unità esterna

Se ci sono molti file nelle istantanee per eseguire il backup di un'unità esterna, i backup incrementali ti aiuteranno ad accelerare l'operazione di backup. In questo caso, BTRFS aggiornerà solo i file che sono cambiati dall'ultima snapshot e copieranno nuovi file che non erano disponibili nell'ultima snapshot.

In questa sezione, ti mostrerò come eseguire back-up incrementali di istantanee BTRFS ai filesystem BTRFS esterni.

Innanzitutto, apri il indice.file html dal /Data/Projects/Web1 Subolume, come segue:

$ sudo nano/data/progetti/web1/indice.html

Apportare qualsiasi modifica che desideri al indice.file html. Una volta terminato, premere <Ctrl> + X seguito da Y E <accedere> Per salvare il indice.html file.

Prendi una nuova istantanea di sola lettura del /Data/Projects/Web1 Subolume, come segue:

$ sudo btrfs Subolume Snapshot -R/Data/Projects/Web1/Data/.Snapshots/Web1-2020-12-31

Come puoi vedere, la nuova istantanea /dati/.Snapshots/Web1-2020-12-31 del /Data/Projects/Web1 Subolume è stato creato.

$ Sudo BTRFS Elenco dei sub -volum /dati

Ora siamo pronti a fare un backup incrementale.

Per prendere un backup incrementale, avrai bisogno di un'istantanea comune sia della sorgente che della destinazione (unità esterna) BTRFS filesystems. L'istantanea comune è di solito l'ultima snapshot di un sottovolume BTRFS. Quando si prevede una nuova snapshot sul filesystem BTRFS di origine, la nuova snapshot viene confrontata con l'ultima snapshot (disponibile sia sul filesystem BTRFS di origine che sulla destinazione) del filesystem BTRFS di origine. BTRFS calcolerà la differenza e invierà solo i dati richiesti al filesystem BTRFS di destinazione (l'unità esterna).

Ad esempio, per prendere un backup incrementale del /dati/.Snapshots/Web1-2020-12-31 Snapshot, È necessario specificare l'istantanea principale (l'ultima snapshot disponibile su FileSystem BTRFS di origine e di destinazione), /dati/.Snapshots/Web1-2020-12-30, anche.

Un backup incrementale del /dati/.Snapshots/Web1-2020-12-31 L'istantanea può essere portata in un filesystem BTRFS esterno, come segue:

$ sudo btrfs invia -p /dati /.Snapshots/Web1-2020-12-30/Data/.Snapshots/Web1-2020-12-31 | sudo btrfs ricevi /istantanee

Un backup incrementale del /dati/.Snapshots/Web1-2020-12-31 L'istantanea dovrebbe essere presa.

Come puoi vedere, il Web1-2020-12-31 Snapshot è stato eseguito il backup del filesystem BTRFS esterno montato su /istantanee directory.

$ sudo btrfs Elenco sub -volume /istantanee

Come puoi vedere nello screenshot di seguito, le modifiche che hai apportato al indice.file html sono disponibili nel Web1-2020-12-31 Snapshot che è stato eseguito il backup del filesystem BTRFS esterno.

$ CAT/Snapshots/Web1-2020-12-31/INDICE.html

Allo stesso modo, potresti prendere tutti i backup incrementali delle istantanee che vuoi.

Ti mostrerò come fare un backup incrementale ancora una volta. Non mi prenderò il tempo per spiegarlo di nuovo. Invece, ti mostrerò solo il processo per la chiarezza.

Apri il indice.file html dal /Data/Projects/Web1 Subolume, come segue:

$ sudo nano/data/progetti/web1/indice.html

Apportare qualsiasi modifica che desideri al indice.file html. Una volta terminato, premere <Ctrl> + X seguito da Y E <accedere> Per salvare il indice.file html.

Prendi una nuova istantanea di sola lettura del /Data/Projects/Web1 Subolume, come segue:

$ sudo btrfs Subolume Snapshot -R/Data/Projects/Web1/Data/.Snapshots/Web1-2020-12-31_2

Prendere un backup incrementale del /dati/.Snapshots/Web1-2020-12-31_2 Snapshot a un filesystem BTRFS esterno, come segue:

$ sudo btrfs invia -p /dati /.Snapshots/Web1-2020-12-31/Data/.Snapshots/Web1-2020-12-31_2 | sudo btrfs ricevi /istantanee

Nota: Ora, l'istantanea del genitore a cui il /dati/.Snapshots/Web1-2020-12-31_2 Snapshot verrà confrontato è /dati/.Snapshots/Web1-2020-12-31.

Come puoi vedere, il Web1-2020-12-31_2 Snapshot è stato eseguito il backup del filesystem BTRFS esterno montato sul /istantanee directory.

$ sudo btrfs Elenco sub -volume /istantanee

Come puoi vedere nello screenshot di seguito, le recenti modifiche apportate al indice.file html sono disponibili su Web1-2020-12-31_2 Snapshot eseguito il backup del filesystem BTRFS esterno.

$ CAT/Snapshots/Web1-2020-12-31_2/INDICE.html

Mantenere le cose pulite

Se esegui il backup delle istantanee BTRFS frequentemente, finirai con molte istantanee e potrebbe diventare difficile gestirle. Fortunatamente, puoi rimuovere qualsiasi istantanea dal filesystem BTRFS.

Se si utilizza un'unità esterna abbastanza grande per mantenere i backup delle istantanee BTRFS, puoi tenere alcune snapshot sul filesystem BTRFS e eseguire il backup di tutte le istantanee sull'unità esterna.

Se si utilizza un'unità esterna più piccola, è possibile mantenere selettivamente solo le istantanee più importanti sul backup sull'unità esterna.

Per eseguire i backup delle tue istantanee BTRFS, è necessario mantenere almeno l'istantanea più recente su entrambi la fonte (/dati/.istantanee) e la destinazione (/Snapshot - Azionamento esterno) Filesystem BTRFS. Quindi, sentiti libero di rimuovere eventuali istantanee diverse dalle ultime istantanee su entrambe le estremità.

Ad esempio, in questo caso, l'ultima istantanea è Web1-2020-12-31_2. Pertanto, per eseguire backup incrementali, questa snapshot deve essere mantenuta sull'origine e sulla destinazione (unità esterna) BTRFS filesystems.

Supponiamo che tu voglia rimuovere il /dati/.Snapshots/Web1-2020-12-30.

Per fare questo, eseguire il seguente comando:

$ sudo btrfs sub -volume elimina /data /.Snapshots/Web1-2020-12-30

L'istantanea BTRFS /dati/.Snapshots/Web1-2020-12-30 dovrebbe ora essere rimosso.

Allo stesso modo, puoi rimuovere il /dati/.Snapshots/Web1-2020-12-31 Snapshot, come segue:

$ sudo btrfs sub -volume elimina /data /.Snapshots/Web1-2020-12-31

Ora, solo l'ultima istantanea, /dati/.Snapshots/Web1-2020-12-31_2, è disponibile sul filesystem BTRFS, montato su /dati directory. Le altre istantanee sono eseguite il backup sull'unità esterna, montata sul /istantanee directory.

$ Sudo BTRFS Elenco dei sub -volum /dati
$ sudo btrfs Elenco sub -volume /istantanee

Ripristino delle istantanee dall'unità esterna

Se hai eseguito il backup delle istantanee sull'unità esterna, puoi ripristinarle in qualsiasi momento dall'unità esterna.

Ad esempio, ho rimosso il Web1-2020-12-30 Snapshot dal mio filesystem BTRFS, montato su /dati directory. Ma questa istantanea è eseguita il backup sull'unità esterna, montata sul /istantanee directory. Ripristina questa istantanea.

$ sudo btrfs Elenco sub -volume /istantanee

Per ripristinare il Web1-2020-12-30 Snapshot Dall'unità esterna, eseguire il seguente comando:

$ sudo btrfs Send /Snapshots /Web1-2020-12-30 | sudo btrfs ricevere /dati /.istantanee

IL Snapshot Web1-2020-12-30 dovrebbe essere ripristinato sul filesstem BTRFS montato su /dati directory.

Come puoi vedere, il Web1-2020-12-30 Snapshot viene ripristinato sul filesstem BTRFS montato su /dati directory.

$ Sudo BTRFS Elenco dei sub -volum /dati

E, come puoi vedere, il contenuto del indice.html file da Web1-2020-12-30 Snapshot. Questa è la prima versione del indice.html file da prima.

$ cat /dati /.Snapshots/Web1-2020-12-30/indice.html

Conclusione

In questo articolo, hai imparato a eseguire il backup di istantanee del tuo filesystem BTRFS a un'unità esterna. Hai anche imparato a prendere backup incrementali delle istantanee BTRFS su un'unità esterna. Infine, hai imparato a rimuovere le istantanee esistenti da un filesystem BRTFS e ripristinare le istantanee dall'unità esterna, anche.