Btrfs

Btrfs-snapshots gebruiken

Btrfs-snapshots gebruiken
Het Btrfs-bestandssysteem heeft ingebouwde ondersteuning voor snapshots op bestandssysteemniveau. U kunt een subvolume in uw Btrfs-bestandssysteem maken en snapshots maken van de bestanden/mappen in dat subvolume. Door een momentopname van een subvolume te maken, wordt de status van de bestanden/mappen in dat subvolume opgeslagen. U kunt alle bestanden/mappen van het subvolume van de snapshot herstellen voor het geval u het nodig heeft.

De snapshot-functie van het Btrfs-bestandssysteem maakt gebruik van het Copy-on-Write (CoW)-principe. Het neemt dus niet veel schijfruimte in beslag en u kunt direct snapshots maken van een subvolume.

Het Btrfs-bestandssysteem ondersteunt 2 soorten snapshots.

  1. Beschrijfbare momentopnamen: Als u een beschrijfbare momentopname maakt, kunt u de bestanden/mappen van die momentopname later wijzigen. Dit is het standaard snapshot-type van het Btrfs-bestandssysteem.
  2. Alleen-lezen snapshots: Als u een alleen-lezen momentopname maakt, kunt u de bestanden/mappen van die momentopname later niet meer wijzigen.

Dit artikel laat u zien hoe u beschrijfbare en alleen-lezen snapshots kunt maken van uw Btrfs-bestandssysteemsubvolumes. Ik zal je ook laten zien hoe je een beschrijfbare momentopname kunt bijwerken en bestanden kunt herstellen van een momentopname. Ik zal je ook laten zien hoe je een momentopname verwijdert. Dus laten we beginnen.

Vereisten

Om de voorbeelden van dit artikel uit te proberen,

Ik heb een harde schijf van 20 GB sdb op mijn Ubuntu-machine. Ik heb 2 partities gemaakt sdb1 en sdb2 op deze harde schijf. Ik zal de partitie gebruiken sdb1 in dit artikel.

$ sudo lsblk -e7

Uw harde schijf of SSD heeft mogelijk een andere naam dan de mijne, net als de partities. Dus zorg ervoor dat je ze vanaf nu vervangt door die van jou.

Als je hulp nodig hebt bij het installeren van het Btrfs-bestandssysteem op Ubuntu, bekijk dan mijn artikel Installeer en gebruik Btrfs op Ubuntu 20.04 LTS.

Als je hulp nodig hebt bij het installeren van het Btrfs-bestandssysteem op Fedora, bekijk dan mijn artikel Installeer en gebruik Btrfs op Fedora 33.

Een Btrfs-bestandssysteem maken

Om te experimenteren met Btrfs-subvolumes, moet u een Btrfs-bestandssysteem maken.

Een Btrfs-bestandssysteem maken met het label gegevens op de sdb1 partitie, voer de volgende opdracht uit:

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

Er moet een Btrfs-bestandssysteem worden gemaakt.

Een map maken /gegevens met het volgende commando:

$ sudo mkdir -v /data

Om het Btrfs-bestandssysteem te koppelen dat is gemaakt op de sdb1 partitie in de /gegevens map, voer de volgende opdracht uit:

$ sudo mount /dev/sdb1 /data

Het Btrfs-bestandssysteem moet worden gemount zoals je kunt zien in de onderstaande schermafbeelding.

$ df -h /gegevens

Het Btrfs-bestandssysteem voorbereiden voor snapshots

In Btrfs kunt u alleen snapshots maken van Btrfs-subvolumes. De hoofdroot van een Btrfs-bestandssysteem is ook een subvolume. U kunt dus een back-up maken van het volledige Btrfs-bestandssysteem en van specifieke subvolumes.

In deze sectie wordt een Btrfs-subvolume gemaakt /data/projecten/web1 en maak de benodigde bestanden voor de volgende secties van dit artikel hieronder. Ik zal ook een map maken waar je je snapshots kunt bewaren. In de volgende secties laat ik u zien hoe u snapshots maakt (beschrijfbaar en alleen-lezen), een beschrijfbare snapshot bijwerkt en bestanden herstelt van de snapshot. Dus laten we beginnen.

Maak eerst een nieuwe map aan /gegevens/projecten als volgt:

$ sudo mkdir -v /data/projecten

Een nieuw subvolume maken web1 in de /gegevens/projecten map als volgt:

$ sudo btrfs subvolume create /data/projects/web1

Een nieuw bestand maken inhoudsopgave.html in de /data/projecten/web1 subvolume als volgt:

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

Typ de volgende regels codes in de inhoudsopgave.html het dossier.




Demowebsite



Hallo Wereld 4



Als u klaar bent, drukt u op + X gevolgd door Y en om de te redden inhoudsopgave.html het dossier.

Een nieuw bestand maken stijl.css in de /data/projecten/web1 subvolume als volgt:

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

Typ de volgende regels codes in de stijl.css het dossier.

h1
kleur groen;

Als u klaar bent, drukt u op + X gevolgd door Y en om de te redden stijl.css het dossier.

Nu de /data/projecten/web1 subvolume heeft de inhoudsopgave.html en stijl.css het dossier.

$ ls -lh /data/projects/web1

Ik wil alle snapshots van dit Btrfs-bestandssysteem in de /gegevens/.momentopnamen map.

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

$ sudo mkdir -v /data/.momentopnamen

Snapshots maken van een subvolume

Een momentopname maken van de /data/projecten/web1 subvolume in de /gegevens/.snapshots/web1-2020-12-25 directory (wordt automatisch aangemaakt), voer de volgende opdracht uit:

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

Een momentopname van de /data/projecten/web1 directory moet worden aangemaakt op de /gegevens/.snapshots/web1-2020-12-25 map.

Zoals je kunt zien in de onderstaande schermafbeelding, een nieuw subvolume .snapshots/web1-2020-12-25 is gecreëerd. Een snapshot is eigenlijk een subvolume.

$ sudo btrfs subvolumelijst /data

U kunt meer informatie zien over de momentopname die u heeft gemaakt in de /gegevens/.snapshots/web1-2020-12-25 map als volgt:

$ sudo btrfs subvolume show /data/.snapshots/web1-2020-12-25

Zoals u kunt zien, zijn alle bestanden in de /data/projecten/web1 subvolume zijn in de /gegevens/.snapshots/web1-2020-12-25 momentopname.

$ boom -a /data

Bestanden herstellen van snapshots

In dit gedeelte laat ik je zien hoe je bestanden kunt herstellen van de Btrfs-snapshots.

Eerst ga ik je laten zien hoe je een enkel bestand van de momentopname kunt herstellen.

Open de /data/projecten/web1/index.html bestand met de nano-teksteditor als volgt:

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

Breng alle gewenste wijzigingen aan.

Als u klaar bent, drukt u op + X gevolgd door Y en om het bestand op te slaan.

Zoals je kunt zien, de belangrijkste inhoudsopgave.html bestand is anders dan de inhoudsopgave.html bestand in de momentopname.

$ cat /data/projecten/web1/index.html
$ kat /data/.snapshots/web1-2020-12-25/index.html

We hebben de wijzigingen aangebracht in de hoofd inhoudsopgave.html bestand zijn ongewenst en we willen de inhoudsopgave.html bestand van de momentopname.

U kunt de herstellen inhoudsopgave.html bestand als volgt uit de snapshot:

$ sudo cp -v /data/.snapshots/web1-2020-12-25/index.html /data/projecten/web1/index.html

Zoals je kunt zien, is de inhoudsopgave.html bestand wordt hersteld vanaf de momentopname.

$ cat /data/projecten/web1/index.html
$ kat /data/.snapshots/web1-2020-12-25/index.html

Laten we nu eens kijken hoe we alle bestanden/mappen van de snapshot kunnen herstellen.

Verwijder alle bestanden uit de /data/projecten/web1 momentopname als volgt:

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

Voer de volgende opdracht uit om alle bestanden/mappen van de momentopname te herstellen:

$ sudo rsync -avz /data/.snapshots/web1-2020-12-25/ /data/projecten/web1/

Zoals u kunt zien, worden de bestanden/mappen hersteld vanaf de momentopname.

$ ls -lh /data/projects/web1

Laten we tot slot eens kijken hoe we bestanden/mappen kunnen herstellen van de snapshot in spiegelmodus. In spiegelmodus zijn de bestanden/mappen van het subvolume hetzelfde als in de snapshot. Als er bestanden/mappen in het subvolume zijn die niet beschikbaar zijn in de snapshot, zullen ze worden verwijderd.

Laten we een nieuw bestand in het subvolume maken om de bestandsstructuur te onderscheiden van de snapshot.

Maak een Leesmij.tekst bestand in de /data/projecten/web1 subvolume als volgt:

$ echo "hallo wereld 5" | sudo tee /data/projects/web1/README.tekst

Zoals u kunt zien, is de bestandsstructuur van de /data/projecten/web1 subvolume is anders dan de /gegevens/.snapshots/web1-2020-12-25 momentopname.

$ boom -a /data

Om de bestanden/mappen te herstellen van de /gegevens/.snapshots/web1-2020-12-25 momentopname naar de /data/projecten/web1 subvolume in spiegelmodus, voer de volgende opdracht uit:

$ sudo rsync -avz --delete /data/.snapshots/web1-2020-12-25/ /data/projecten/web1/

Alle bestanden/mappen van de /data/projecten/web1 subvolume moet worden hersteld (in spiegelmodus) vanuit de /gegevens/.snapshots/web1-2020-12-25 momentopname.

De bestandsboom van de /data/projecten/web1 subvolume en de /gegevens/.snapshots/web1-2020-12-25 momentopname moet hetzelfde zijn.

Zoals u kunt zien, is de index.html-bestand en stijl.de inhoud van het css-bestand is hetzelfde in de /data/projecten/web1 subvolume en de /gegevens/.snapshots/web1-2020-12-25 momentopname.

Inhoud van de inhoudsopgave.html en stijl.css bestand in de /data/projecten/web1 subvolume.

$ cat /data/projecten/web1/index.html
$ cat /data/projecten/web1/style.css

Inhoud van de inhoudsopgave.html en stijl.css bestand in de /gegevens/.snapshots/web1-2020-12-25 momentopname.

$ cat /data/projecten/web1/index.html
$ cat /data/projecten/web1/style.css

Een momentopname bijwerken

Standaard maakt het Btrfs-bestandssysteem beschrijfbare snapshots. Een Btrfs-snapshot is net als een subvolume. U kunt dus de bestanden/mappen van een beschrijfbare snapshot wijzigen/bijwerken.

Laten we de . updaten inhoudsopgave.html bestand in de /data/projecten/web1 subvolume.

Open eerst de inhoudsopgave.html bestand van de /data/projecten/web1 subvolume met de nano tekstverwerker als volgt:

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

Breng alle gewenste wijzigingen aan. Als u klaar bent, drukt u op + X gevolgd door Y en om de te redden inhoudsopgave.html het dossier.

Zoals u kunt zien, de index.html-bestand van de /data/projecten/web1 subvolume is anders dan de /gegevens/.snapshots/web1-2020-12-25 momentopname.

$ cat /data/projecten/web1/index.html
$ kat /data/.snapshots/web1-2020-12-25/index.html

U wilt de houden inhoudsopgave.html bestand van de /data/projecten/web1 subvolume.

Om de . te updaten inhoudsopgave.html bestand in de /gegevens/.snapshots/web1-2020-12-25 snapshot, voer de volgende opdracht uit:

$ sudo cp -v /data/projects/web1/index.html /gegevens/.snapshots/web1-2020-12-25/index.html

Zoals je kunt zien, is de inhoudsopgave.html bestand van de /gegevens/.snapshots/web1-2020-12-25 momentopname is bijgewerkt.

Het bijwerken van een snapshot is net zo eenvoudig als het kopiëren van nieuwe bestanden naar de snapshot.

Alleen-lezen snapshots maken van een subvolume

Soms wil je op geen enkele manier dat de snapshots die je hebt gemaakt worden bijgewerkt. In dat geval kunt u alleen-lezen snapshots maken.

Om bijvoorbeeld een alleen-lezen momentopname te maken /gegevens/.snapshots/web1-2020-12-26 van de /data/projecten/web1 subvolume, voer de volgende opdracht uit:

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

Zoals je kunt zien, een nieuw subvolume .snapshots/web1-2020-12-26 is gecreëerd.

$ sudo btrfs subvolumelijst /data

Zoals je kunt zien, de momentopname /gegevens/.snapshots/web1-2020-12-26 is alleen-lezen.

$ sudo btrfs subvolume show /data/.snapshots/web1-2020-12-26

Laten we de . updaten inhoudsopgave.html bestand van de /data/projecten/web1 subvolume.

Open hiervoor de inhoudsopgave.html bestand van de /data/projecten/web1 subvolume met de nano tekstverwerker als volgt:

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

Breng alle gewenste wijzigingen aan. Als u klaar bent, drukt u op + X gevolgd door Y en om de wijzigingen op te slaan.

Zoals je kunt zien, is de inhoudsopgave.html in de /data/projecten/web1 subvolume is anders dan de /gegevens/.snapshots/web1-2020-12-26 momentopname.

$ cat /data/projecten/web1/index.html
$ kat /data/.snapshots/web1-2020-12-26/index.html

Laten we proberen de . bij te werken inhoudsopgave.html bestand in de /gegevens/.snapshots/web1-2020-12-26 momentopname.

$ sudo cp -v /data/projects/web1/index.html /gegevens/.snapshots/web1-2020-12-26/index.html

Zoals u kunt zien, kunt u de . niet bijwerken inhoudsopgave.html bestand van de /gegevens/.snapshots/web1-2020-12-26 momentopname omdat de momentopname alleen-lezen is.

Een momentopname verwijderen

Ik heb je eerder verteld dat een Btrfs-snapshot is als een subvolume. U kunt dus een Btrfs-snapshot verwijderen, net zoals u een Btrfs-subvolume verwijdert. Zelfde commando.

Dit is hoe de bestandsboom van het Btrfs-bestandssysteem is gemount op de /gegevens directory ziet er op dit moment uit.

$ boom -a /data

Laten we de . verwijderen .snapshots/web1-2020-12-25 momentopname.

$ sudo btrfs subvolumelijst /data

Om de . te verwijderen /gegevens/.snapshots/web1-2020-12-25 snapshot, voer de volgende opdracht uit:

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

Zoals je kunt zien, de momentopname .snapshots/web1-2020-12-25 is niet meer.

$ sudo btrfs subvolumelijst /data

Zoals u kunt zien, zijn de bestanden/mappen van de /gegevens/.snapshots/web1-2020-12-25 momentopname wordt ook verwijderd.

$ boom -a /data

Conclusie

Dit artikel heeft u laten zien hoe u beschrijfbare en alleen-lezen snapshots kunt maken van uw Btrfs-bestandssysteemsubvolumes. Ik heb je ook laten zien hoe je een beschrijfbare momentopname kunt bijwerken en bestanden kunt herstellen van een momentopname. Ik heb je ook laten zien hoe je een Btrfs-snapshot verwijdert. Dit artikel zou u moeten helpen om aan de slag te gaan met de Btrfs snapshot-functie.

Linkermuisknop werkt niet op Windows 10
Als u een speciale muis gebruikt met uw laptop of desktopcomputer, maar de linkermuisknop werkt niet not op Windows 10/8/7 om wat voor reden dan ook, ...
Cursor springt of beweegt willekeurig tijdens het typen in Windows 10
Als u merkt dat uw muiscursor vanzelf springt of beweegt, automatisch, willekeurig tijdens het typen op een Windows-laptop of -computer, dan kunnen en...
De scrollrichting van de muis en touchpads omkeren in Windows 10
Muis en Touchpads maken computergebruik niet alleen eenvoudig, maar ook efficiënter en minder tijdrovend. We kunnen ons een leven zonder deze apparate...