Btrfs

Back-up maken van Btrfs-snapshots naar externe schijven External

Back-up maken van Btrfs-snapshots naar externe schijven External

Standaard kunt u de snapshots die u maakt van uw Btrfs-subvolumes opslaan in hetzelfde Btrfs-bestandssysteem, maar het is niet mogelijk om de snapshots van het ene Btrfs-bestandssysteem rechtstreeks op te slaan in een ander Btrfs-bestandssysteem. Het Btrfs-bestandssysteem biedt u echter de nodige hulpmiddelen om een ​​back-up te maken van snapshots van het ene Btrfs-bestandssysteem naar een ander Btrfs-bestandssysteem. Dit artikel laat zien hoe u een back-up kunt maken van Btrfs-snapshots naar een extern Btrfs-bestandssysteem op een externe schijf.

Vereisten

Om de voorbeelden in dit artikel uit te proberen, moet u aan de volgende vereisten voldoen:

Ik heb de harde schijf van 20 GB, sdb, op mijn Ubuntu-machine. Ik heb twee partities gemaakt, sdb1 en sdb2, op deze harde schijf.

$ sudo lsblk -e7

Opmerking: Uw harde schijf of SSD zal een andere naam hebben dan de mijne, net als de partities. Zorg er dus voor dat u deze namen vanaf nu vervangt door de uwe.


Ik zal Btrfs-bestandssystemen maken op de sdb1 en de sdb2 partities. De snapshots gemaakt op het Btrfs-bestandssysteem (sdb1) wordt geback-upt naar het Btrfs-bestandssysteem dat is gemaakt op de sdb2 partitie. Het Btrfs-bestandssysteem gemaakt op de on sdb2 partitie zal fungeren als de externe schijf. U kunt ook een USB-stick of een externe harde schijf gebruiken; zorg er wel voor dat u het formatteert met het Btrfs-bestandssysteem.

Voor hulp bij het installeren van het Btrfs-bestandssysteem in Ubuntu, bekijk mijn artikel Btrfs installeren en gebruiken op Ubuntu 20.04 LTS.

Voor hulp bij het installeren van het Btrfs bestandssysteem in Fedora, bekijk mijn artikel Installeer en gebruik Btrfs op Fedora 33.

Vereiste Btrfs-bestandssystemen maken

Ik zal zowel de formatteren sdb1 en sdb2 partities als Btrfs. ik zal de gebruiken sdb1 partitie voor het opslaan van de gegevens en Btrfs-snapshots. ik zal de gebruiken sdb2 partitie voor het maken van een back-up van de snapshots van het Btrfs-bestandssysteem gemaakt op de on sdb1 partitie.

Om een ​​Btrfs-bestandssysteem te maken op de sdb1 partitie en geef het de bestandssysteemlabelgegevens, voer de volgende opdracht uit:

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

Er zou nu een Btrfs-bestandssysteem moeten worden aangemaakt op de sdb1 partitie.

Om een ​​Btrfs-bestandssysteem te maken op de sdb2 partitie en geef het het bestandssysteem label snapshots, voer de volgende opdracht uit:

$ sudo mkfs.btrfs -L snapshots /dev/sdb2

Er zou nu een Btrfs-bestandssysteem moeten worden aangemaakt op de sdb2 partitie.

Maak de mappen /gegevens en /momentopnamen voor het monteren van de sdb1 en sdb2 partities, respectievelijk, als volgt:

$ sudo mkdir -v /data,snapshots

Koppel het Btrfs-bestandssysteem dat u hebt gemaakt op de sdb1 partitie in de /data directory, als volgt:

$ sudo mount /dev/sdb1 /data

Koppel op dezelfde manier het Btrfs-bestandssysteem dat u hebt gemaakt op de sdb2 partitie op de /momentopnamen directory, als volgt:

$ sudo mount /dev/sdb2 /snapshots

Zoals je kunt zien in de onderstaande schermafbeelding, zijn zowel de Btrfs-bestandssystemen (sdb1 en sdb2 partities) correct zijn gemount.

$ df -h -t btrfs

Snapshots maken van een Btrfs-bestandssysteem

In deze sectie zullen we het dummy-project maken web1 op de /data/projecten/web1 Btrfs-subvolume. We zullen in deze sectie een momentopname van dat subvolume maken, evenals enkele andere momentopnamen in latere secties van dit artikel.

Maak eerst de nieuwe map /gegevens/projecten, als volgt:

$ sudo mkdir -v /data/projecten

Maak vervolgens de nieuwe subvolume web1 in de /data/projecten directory, als volgt:

$ sudo btrfs subvolume create /data/projects/web1

Maak ten slotte de nieuwe bestandsindex.html in de /data/projecten/web1 subvolume met de nano-teksteditor, als volgt:

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

Typ de volgende regels code in de index.html-bestand:




Demowebsite



Hallo Wereld




Als u klaar bent, drukt u op <Ctrl> + X gevolgd door Y en <Enter> om de . op te slaan inhoudsopgave.html-bestand.

Maak op dezelfde manier het nieuwe bestand stijl.css in de /data/projecten/web1 subvolume als volgt:

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


Typ de volgende regels code in de stijl.css het dossier:

h1
kleur groen;

Als u klaar bent, drukt u op <Ctrl> + X gevolgd door Y en <Enter> om de . op te slaan stijl.css het dossier.

Nu de /data/projecten/web1 subvolume bevat de inhoudsopgave.html en stijl.css-bestand.

$ ls -lh /data/projects/web1

We bewaren alle snapshots van dit Btrfs-bestandssysteem in de /gegevens/.momentopnamen map.

Maak eerst de /gegevens/.momentopnamen map met het volgende commando:

$ sudo mkdir -v /data/.momentopnamen

Maak vervolgens de alleen-lezen snapshot /gegevens/.snapshots/web1-2020-12-30 van de /data/projecten/web1 subvolume met het volgende commando:

$ sudo btrfs subvolume snapshot -r /data/projects/web1 /data/.snapshots/web1-2020-12-30

Zoals je kunt zien, de nieuwe momentopname /gegevens/.snapshots/web1-2020-12-30 Is gemaakt.

$ sudo btrfs subvolumelijst /data

Back-up maken van snapshots naar externe schijf

Een back-up maken van de momentopname /gegevens/.snapshots/web1-2020-12-30 naar een ander Btrfs-bestandssysteem (externe schijf sdb2, in dit geval) aangekoppeld op de /momentopnamen map, voer de volgende opdracht uit:

$ sudo btrfs verzenden /data/.snapshots/web1-2020-12-30 | sudo btrfs ontvangen / snapshots

de momentopname /gegevens/.snapshots/web1-2020-12-30 moet worden geback-upt naar het externe Btrfs-bestandssysteem (sdb2) gemonteerd op de /momentopnamenshot map.

Zoals je kunt zien, is de nieuw subvolume web1-2020-12-30 is gemaakt op het externe Btrfs-bestandssysteem.

$ sudo btrfs subvolumelijst /snapshots

De momentopname web1-2020-12-30 zouden dezelfde bestanden moeten hebben/mappen als de /gegevens/.snapshots/web1-2020-12-30 momentopname.

$ boom -a /snapshots

U kunt meer informatie krijgen over de snapshot waarvan een back-up is gemaakt /snapshosts/web1-2020-12-30 als volgt:

$ sudo btrfs subvolume show /snapshots/web1-2020-12-30

Incrementele back-up van snapshots naar externe schijf

Als er veel bestanden in de snapshots zijn om een ​​back-up te maken naar een externe schijf, dan zullen incrementele back-ups u helpen de back-upbewerking te versnellen. In dit geval zal Btrfs alleen de bestanden bijwerken die zijn gewijzigd sinds de laatste snapshot en nieuwe bestanden kopiëren die niet beschikbaar waren in de laatste snapshot.

In deze sectie laat ik u zien hoe u incrementele back-ups van Btrfs-snapshots kunt maken naar externe Btrfs-bestandssystemen.

Open eerst de inhoudsopgave.html-bestand van de /data/projecten/web1 subvolume, als volgt:

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

Breng de gewenste wijzigingen aan in de inhoudsopgave.html-bestand. Als u klaar bent, drukt u op <Ctrl> + X gevolgd door Y en <Enter> om de . op te slaan inhoudsopgave.html het dossier.

Maak een nieuwe alleen-lezen momentopname van de /data/projecten/web1 subvolume, als volgt:

$ sudo btrfs subvolume snapshot -r /data/projects/web1 /data/.snapshots/web1-2020-12-31

Zoals je kunt zien, de nieuwe momentopname /gegevens/.snapshots/web1-2020-12-31 van de /data/projecten/web1 subvolume Is gemaakt.

$ sudo btrfs subvolumelijst /data

Nu zijn we klaar om een ​​incrementele back-up te maken.

Om een ​​incrementele back-up te maken, hebt u een gemeenschappelijke momentopname nodig van zowel de bron als de bestemming (externe schijf) Btrfs-bestandssystemen. De algemene momentopname is meestal de laatste momentopname van een Btrfs-subvolume. Wanneer u een nieuwe snapshot maakt op het bron-Btrfs-bestandssysteem, wordt de nieuwe snapshot vergeleken met de laatste snapshot (beschikbaar op zowel het bron- als het doel-Btrfs-bestandssysteem) van het bron-Btrfs-bestandssysteem. Btrfs berekent het verschil en stuurt alleen de vereiste gegevens naar het bestemmings-Btrfs-bestandssysteem (de externe schijf).

Als u bijvoorbeeld een incrementele back-up wilt maken van de /gegevens/.snapshots/web1-2020-12-31 snapshot, u moet de bovenliggende momentopname specificeren (de nieuwste momentopname die beschikbaar is op zowel het bron- als het doel-Btrfs-bestandssysteem), /gegevens/.snapshots/web1-2020-12-30, ook.

Een incrementele back-up van de /gegevens/.snapshots/web1-2020-12-31 snapshot kan als volgt naar een extern Btrfs-bestandssysteem worden overgebracht:

$ sudo btrfs send -p /data/.snapshots/web1-2020-12-30 /data/.snapshots/web1-2020-12-31 | sudo btrfs ontvangen / snapshots

Een incrementele back-up van de /gegevens/.snapshots/web1-2020-12-31 er moet een momentopname worden gemaakt.

Zoals je kunt zien, is de web1-2020-12-31 momentopname is geback-upt naar het externe Btrfs-bestandssysteem dat is aangekoppeld op de /momentopnamenshot map.

$ sudo btrfs subvolumelijst /snapshots

Zoals je kunt zien in de onderstaande schermafbeelding, zijn de wijzigingen die je hebt aangebracht in de inhoudsopgave.html-bestand zijn verkrijgbaar in de web1-2020-12-31 momentopname waarvan een back-up is gemaakt naar het externe Btrfs-bestandssysteem.

$ kat /snapshots/web1-2020-12-31/index.html

Op dezelfde manier kunt u zoveel incrementele back-ups van uw snapshots maken als u wilt.

Ik zal je nog een keer laten zien hoe je een incrementele back-up maakt. Ik zal niet de tijd nemen om het nog een keer uit te leggen. In plaats daarvan zal ik je gewoon het proces laten zien voor de duidelijkheid.

Open de inhoudsopgave.html-bestand van de /data/projecten/web1 subvolume, als volgt:

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

Breng de gewenste wijzigingen aan in de inhoudsopgave.html-bestand. Als u klaar bent, drukt u op <Ctrl> + X gevolgd door Y en <Enter> om de . op te slaan inhoudsopgave.html-bestand.

Maak een nieuwe alleen-lezen momentopname van de /data/projecten/web1 subvolume, als volgt:

$ sudo btrfs subvolume snapshot -r /data/projects/web1 /data/.snapshots/web1-2020-12-31_2

Maak een incrementele back-up van de /gegevens/.snapshots/web1-2020-12-31_2 snapshot naar een extern Btrfs-bestandssysteem, als volgt:

$ sudo btrfs send -p /data/.snapshots/web1-2020-12-31 /data/.snapshots/web1-2020-12-31_2 | sudo btrfs ontvangen / snapshots

Opmerking: Nu, de bovenliggende momentopname waarnaar de /gegevens/.snapshots/web1-2020-12-31_2 snapshot zal worden vergeleken is /gegevens/.snapshots/web1-2020-12-31.

Zoals je kunt zien, is de web1-2020-12-31_2 snapshot is geback-upt naar het externe Btrfs-bestandssysteem dat is aangekoppeld op de /momentopnamenshot map.

$ sudo btrfs subvolumelijst /snapshots

Zoals je kunt zien in de onderstaande schermafbeelding, zijn de recente wijzigingen die zijn aangebracht in de inhoudsopgave.html-bestand zijn beschikbaar op de web1-2020-12-31_2 momentopname back-up gemaakt naar het externe Btrfs-bestandssysteem.

$ cat /snapshots/web1-2020-12-31_2/index.html

Dingen schoon houden

Als u regelmatig een back-up maakt van uw Btrfs-snapshots, krijgt u veel snapshots en kan het moeilijk worden om ze te beheren. Gelukkig kun je elke momentopname van het Btrfs-bestandssysteem verwijderen.

Als u een externe schijf gebruikt die groot genoeg is voor het bewaren van back-ups van de Btrfs-snapshots, dan kunt u een paar snapshots op uw Btrfs-bestandssysteem bewaren en een back-up maken van alle snapshots op uw externe schijf.

Als u een kleinere externe schijf gebruikt, kunt u selectief alleen de belangrijkste snapshots als back-up op de externe schijf bewaren.

Om back-ups van uw Btrfs-snapshots uit te voeren, moet u ten minste de nieuwste snapshot op zowel de bron (/gegevens/.momentopnamen) en de bestemming (/snapshots - externe schijf) Btrfs-bestandssystemen. Dus voel je vrij om andere snapshots dan de laatste snapshot aan beide kanten te verwijderen.

In dit geval is de laatste momentopname bijvoorbeeld web1-2020-12-31_2. Dus, om incrementele back-ups uit te voeren, moet deze momentopname worden bewaard op de bron en de bestemming (externe schijf) Btrfs-bestandssystemen.

Stel dat u de . wilt verwijderen /gegevens/.snapshots/web1-2020-12-30 snapshot.

Voer hiervoor de volgende opdracht uit:

$ sudo btrfs subvolume verwijderen /data/.snapshots/web1-2020-12-30

De Btrfs-momentopname /gegevens/.snapshots/web1-2020-12-30 moet nu worden verwijderd.

Op dezelfde manier kunt u de /gegevens/.snapshots/web1-2020-12-31 snapshot, als volgt:

$ sudo btrfs subvolume verwijderen /data/.snapshots/web1-2020-12-31

Nu, alleen de laatste momentopname, /gegevens/.snapshots/web1-2020-12-31_2, is beschikbaar op het Btrfs-bestandssysteem, gemount op de /gegevens map. Van de andere snapshots wordt een back-up gemaakt op de externe schijf, gemonteerd op de /momentopnamenshot map.

$ sudo btrfs subvolumelijst /data
$ sudo btrfs subvolumelijst /snapshots

Snapshots herstellen van externe schijf

Als u een back-up van uw snapshots op de externe schijf hebt gemaakt, kunt u ze op elk moment herstellen vanaf de externe schijf.

Ik heb bijvoorbeeld de verwijderd web1-2020-12-30 momentopname van mijn Btrfs-bestandssysteem, gemount op de /gegevens map. Maar van deze momentopname wordt een back-up gemaakt op de externe schijf, gekoppeld aan de /momentopnamenshot map. Laten we deze momentopname herstellen.

$ sudo btrfs subvolumelijst /snapshots

Om de . te herstellen web1-2020-12-30 momentopname vanaf de externe schijf voert u de volgende opdracht uit:

$ sudo btrfs send /snapshots/web1-2020-12-30 | sudo btrfs ontvangen /data/.momentopnamen

De momentopname web1-2020-12-30 moet worden hersteld op het Btrfs-bestandssysteem dat is aangekoppeld op de /gegevens map.

Zoals je kunt zien, is de web1-2020-12-30 momentopname wordt hersteld op het Btrfs-bestandssysteem dat is aangekoppeld op de /gegevens map.

$ sudo btrfs subvolumelijst /data

En, zoals je kunt zien, de inhoud van de inhoudsopgave.html bestand van de web1-2020-12-30 momentopname. Dit is de eerste versie van de inhoudsopgave.html bestand van vroeger.

$ kat /data/.snapshots/web1-2020-12-30/index.html

Conclusie

In dit artikel hebt u geleerd hoe u een back-up kunt maken van snapshots van uw Btrfs-bestandssysteem naar een externe schijf. Je hebt ook geleerd hoe je incrementele back-ups van je Btrfs-snapshots naar een externe schijf kunt maken. Ten slotte heb je geleerd hoe je bestaande snapshots van een Brtfs-bestandssysteem kunt verwijderen en snapshots van de externe schijf kunt herstellen.

Beste Linux-distributies voor gaming in 2021
Het Linux-besturingssysteem heeft een lange weg afgelegd van zijn oorspronkelijke, eenvoudige, servergebaseerde uiterlijk. Dit besturingssysteem is de...
Hoe u uw gamesessie op Linux kunt vastleggen en streamen
In het verleden werd het spelen van games alleen als een hobby beschouwd, maar met de tijd zag de game-industrie een enorme groei in termen van techno...
Beste spellen om te spelen met handtracking
Oculus Quest introduceerde onlangs het geweldige idee van handtracking zonder controllers. Met een steeds toenemend aantal games en activiteiten die f...