Btrfs

Sådan sikkerhedskopieres Btrfs-snapshots til eksterne drev

Sådan sikkerhedskopieres Btrfs-snapshots til eksterne drev

Som standard kan du gemme de snapshots, du tager af dine Btrfs-undervolumener i det samme Btrfs-filsystem, men det er ikke muligt at gemme snapshots af et Btrfs-filsystem direkte til et andet Btrfs-filsystem. Btrfs-filsystemet giver dig dog de nødvendige værktøjer til at sikkerhedskopiere snapshots af et Btrfs-filsystem til et andet Btrfs-filsystem. Denne artikel viser dig, hvordan du sikkerhedskopierer Btrfs-snapshots til et eksternt Btrfs-filsystem på et eksternt drev.

Forudsætninger

For at prøve eksemplerne i denne artikel skal du opfylde følgende forudsætninger:

Jeg har 20 GB harddisk, sdb, på min Ubuntu-maskine. Jeg har oprettet to partitioner, sdb1 og sdb2, på denne harddisk.

$ sudo lsblk -e7

Bemærk: Din harddisk eller SSD vil have et andet navn end min, og det samme vil partitionerne. Så sørg for at erstatte disse navne med dine fra nu af.


Jeg opretter Btrfs-filsystemer på sdb1 og sdb2 skillevægge. De snapshots, der er oprettet på Btrfs-filsystemet (sdb1) sikkerhedskopieres til Btrfs-filsystemet oprettet på sdb2 skillevæg. Btrfs-filsystemet oprettet på sdb2 partition fungerer som det eksterne drev. Du kan også bruge et USB-drev eller en ekstern harddisk; bare sørg for at formatere det med Btrfs-filsystemet.

For hjælp til installation af Btrfs-filsystemet i Ubuntu, se min artikel Installer og brug Btrfs på Ubuntu 20.04 LTS.

For hjælp til installation af Btrfs-filsystemet i Fedora, se min artikel Installer og brug Btrfs på Fedora 33.

Oprettelse af krævede Btrfs-filsystemer

Jeg formaterer begge sdb1 og sdb2 partitioner som Btrfs. Jeg vil bruge sdb1 partition til lagring af data og Btrfs snapshots. Jeg vil bruge sdb2 partition til sikkerhedskopiering af snapshots af Btrfs-filsystemet oprettet på sdb1 skillevæg.

For at oprette et Btrfs-filsystem på sdb1 partition og giv filsystemets etiketdata, kør følgende kommando:

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

Der skal oprettes et Btrfs-filsystem på sdb1 skillevæg.

For at oprette et Btrfs-filsystem på sdb2 partition og giv snapshots til filsystemetiketten, kør følgende kommando:

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

Der skal oprettes et Btrfs-filsystem på sdb2 skillevæg.

Opret mapper /data og / snapshots til montering af sdb1 og sdb2 partitioner henholdsvis som følger:

$ sudo mkdir -v / data, snapshots

Monter det Btrfs-filsystem, du har oprettet, på sdb1 partition på / datakataloget som følger:

$ sudo mount / dev / sdb1 / data

På samme måde skal du montere det Btrfs-filsystem, du har oprettet, på sdb2 partition på / snapshots katalog, som følger:

$ sudo mount / dev / sdb2 / snapshots

Som du kan se på skærmbilledet nedenfor, er begge Btrfs-filsystemerne (sdb1 og sdb2 skillevægge) er monteret korrekt.

$ df -h -t btrfs

Optagelse af snapshots af et Btrfs-filsystem

I dette afsnit opretter vi dummy-projektet web1 på den / data / projekter / web1 Btrfs subvolume. Vi tager et øjebliksbillede af dette undervolumen i dette afsnit såvel som nogle andre snapshots i senere afsnit af denne artikel.

Opret først den nye mappe / data / projekter, som følger:

$ sudo mkdir -v / data / projekter

Opret derefter det nye undervolumen web1 i / data / projekter mappe, som følger:

$ sudo btrfs subvolume create / data / projects / web1

Opret endelig det nye filindeks.html i / data / projekter / web1 delvolumen med nano-teksteditoren som følger:

$ sudo nano / data / projekter / web1 / indeks.html

Indtast følgende kodelinjer i indekset.html-fil:




Demo-websted



Hej Verden




Når du er færdig, skal du trykke på <Ctrl> + x efterfulgt af Y og <Gå ind> for at gemme indeks.html-fil.

På samme måde skal du oprette den nye fil stil.css i / data / projekter / web1 subvolume som følger:

$ sudo nano / data / projekter / web1 / stil.css


Skriv følgende kodelinjer i stil.css fil:

h1
farve: grøn;

Når du er færdig, skal du trykke på <Ctrl> + x efterfulgt af Y og <Gå ind> for at gemme stil.css fil.

Nu, den / data / projekter / web1 subvolume indeholder indeks.html og stil.css-fil.

$ ls -lh / data / projekter / web1

Vi gemmer alle snapshots af dette Btrfs-filsystem i /data/.snapshots vejviser.

Først skal du oprette /data/.snapshots bibliotek med følgende kommando:

$ sudo mkdir -v / data /.snapshots

Opret derefter det skrivebeskyttede øjebliksbillede /data/.snapshots / web1-2020-12-30 af / data / projekter / web1 subvolume med følgende kommando:

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

Som du kan se, det nye øjebliksbillede /data/.snapshots / web1-2020-12-30 er oprettet.

$ sudo btrfs undervolumenliste / data

Sikkerhedskopiering af snapshots til eksternt drev

For at sikkerhedskopiere snapshotet /data/.snapshots / web1-2020-12-30 til et andet Btrfs-filsystem (eksternt drev sdb2, i dette tilfælde) monteret på / snapshots bibliotek, kør følgende kommando:

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

Øjebliksbillede /data/.snapshots / web1-2020-12-30 skal sikkerhedskopieres til det eksterne Btrfs-filsystem (sdb2) monteret på / snapshots vejviser.

Som du kan se, er nyt undervolumen web1-2020-12-30 er oprettet på det eksterne Btrfs-filsystem.

$ sudo btrfs undervolumenliste / snapshots

Det øjebliksbillede web1-2020-12-30 skal have de samme filer/ mapper som den /data/.snapshots / web1-2020-12-30 øjebliksbillede.

$ træ -a / snapshots

Du kan få flere oplysninger om det sikkerhedskopierede øjebliksbillede / snapshosts / web1-2020-12-30 som følger:

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

Inkrementel sikkerhedskopi af snapshots til eksternt drev

Hvis der er mange filer i snapshots til sikkerhedskopiering til et eksternt drev, vil trinvise sikkerhedskopier hjælpe dig med at fremskynde sikkerhedskopieringen. I dette tilfælde opdaterer Btrfs kun de filer, der er ændret siden det sidste øjebliksbillede, og kopierer nye filer, der ikke var tilgængelige i det sidste øjebliksbillede.

I dette afsnit vil jeg vise dig, hvordan du udfører trinvise sikkerhedskopier af Btrfs-snapshots til eksterne Btrfs-filsystemer.

Først skal du åbne indeks.html-fil fra / data / projekter / web1 subvolume, som følger:

$ sudo nano / data / projekter / web1 / indeks.html

Foretag de ændringer, du ønsker i indeks.html-fil. Når du er færdig, skal du trykke på <Ctrl> + x efterfulgt af Y og <Gå ind> for at gemme indeks.html fil.

Tag et nyt skrivebeskyttet øjebliksbillede af / data / projekter / web1 subvolume, som følger:

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

Som du kan se, det nye øjebliksbillede /data/.snapshots / web1-2020-12-31 af / data / projekter / web1 subvolume er oprettet.

$ sudo btrfs undervolumenliste / data

Nu er vi klar til at tage en trinvis sikkerhedskopi.

For at tage en inkrementel sikkerhedskopi skal du bruge et fælles øjebliksbillede af både kilden og destinationen (eksternt drev) Btrfs-filsystemer. Det almindelige øjebliksbillede er normalt det seneste øjebliksbillede af et Btrfs-undervolumen. Når du tager et nyt øjebliksbillede på kilden Btrfs-filsystemet, sammenlignes det nye øjebliksbillede med det seneste øjebliksbillede (tilgængeligt på både kilden og destinations-Btrfs-filsystemet) for kilden Btrfs-filsystemet. Btrfs beregner forskellen og sender kun de krævede data til destinations Btrfs-filsystemet (det eksterne drev).

For eksempel at tage en trinvis sikkerhedskopi af /data/.snapshots / web1-2020-12-31 snapshot, du skal angive det overordnede øjebliksbillede (det seneste øjebliksbillede, der er tilgængeligt på både kilde og destination Btrfs-filsystemer), /data/.snapshots / web1-2020-12-30, såvel.

En trinvis sikkerhedskopi af /data/.snapshots / web1-2020-12-31 øjebliksbillede kan tages til et eksternt Btrfs-filsystem som følger:

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

En trinvis sikkerhedskopi af /data/.snapshots / web1-2020-12-31 snapshot skal tages.

Som du kan se, er web1-2020-12-31 øjebliksbillede er sikkerhedskopieret til det eksterne Btrfs-filsystem monteret på / snapshots vejviser.

$ sudo btrfs undervolumenliste / snapshots

Som du kan se på skærmbilledet nedenfor, skal du foretage de ændringer, du har foretaget i indeks.html-fil er tilgængelige i web1-2020-12-31 øjebliksbillede der er sikkerhedskopieret til det eksterne Btrfs-filsystem.

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

På samme måde kan du tage så mange trinvise sikkerhedskopier af dine snapshots, som du vil.

Jeg viser dig, hvordan du laver en trinvis sikkerhedskopi en gang til. Jeg vil ikke tage mig tid til at forklare det igen. I stedet vil jeg bare vise dig processen for klarhed.

Åbn indeks.html-fil fra / data / projekter / web1 subvolume, som følger:

$ sudo nano / data / projekter / web1 / indeks.html

Foretag de ændringer, du ønsker i indeks.html-fil. Når du er færdig, skal du trykke på <Ctrl> + x efterfulgt af Y og <Gå ind> for at gemme indeks.html-fil.

Tag et nyt skrivebeskyttet øjebliksbillede af / data / projekter / web1 subvolume, som følger:

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

Tag en trinvis sikkerhedskopi af /data/.snapshots / web1-2020-12-31_2 snapshot til et eksternt Btrfs-filsystem som følger:

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

Bemærk: Nu, det overordnede øjebliksbillede, som /data/.snapshots / web1-2020-12-31_2 snapshot vil blive sammenlignet er /data/.snapshots / web1-2020-12-31.

Som du kan se, er web1-2020-12-31_2 snapshot er blevet sikkerhedskopieret til det eksterne Btrfs-filsystem monteret på / snapshots vejviser.

$ sudo btrfs undervolumenliste / snapshots

Som du kan se på skærmbilledet nedenfor, er de seneste ændringer foretaget i indeks.html-fil er tilgængelige på web1-2020-12-31_2 øjebliksbillede sikkerhedskopieret til det eksterne Btrfs-filsystem.

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

Holder tingene rene

Hvis du ofte sikkerhedskopierer dine Btrfs-snapshots, ender du med mange snapshots, og det kan blive svært at administrere dem. Heldigvis kan du fjerne ethvert øjebliksbillede fra Btrfs-filsystemet.

Hvis du bruger et stort nok eksternt drev til at holde sikkerhedskopier af Btrfs-snapshots, kan du gemme et par snapshots på dit Btrfs-filsystem og sikkerhedskopiere alle snapshots på dit eksterne drev.

Hvis du bruger et mindre eksternt drev, kan du selektivt kun holde de vigtigste snapshots sikkerhedskopieret på det eksterne drev.

For at udføre sikkerhedskopier af dine Btrfs-snapshots skal du holde mindst det seneste øjebliksbillede af begge kilder (/data/.snapshots) og destinationen (/ snapshots - eksternt drev) Btrfs-filsystemer. Så er du velkommen til at fjerne andre snapshots end det seneste øjebliksbillede i begge ender.

I dette tilfælde er det seneste øjebliksbillede f.eks web1-2020-12-31_2. Så for at udføre inkrementelle sikkerhedskopier skal dette øjebliksbillede holdes på kilden og destinationen (eksternt drev) Btrfs-filsystemer.

Antag, du vil fjerne /data/.snapshots / web1-2020-12-30 snapshot.

For at gøre dette skal du køre følgende kommando:

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

Btrfs-øjebliksbillede /data/.snapshots / web1-2020-12-30 skal nu fjernes.

På samme måde kan du fjerne /data/.snapshots / web1-2020-12-31 snapshot, som følger:

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

Nu kun det seneste øjebliksbillede, /data/.snapshots / web1-2020-12-31_2, er tilgængelig på Btrfs-filsystemet, monteret på /data vejviser. De andre snapshots er sikkerhedskopieret på det eksterne drev, monteret på / snapshots vejviser.

$ sudo btrfs undervolumenliste / data
$ sudo btrfs undervolumenliste / snapshots

Gendannelse af snapshots fra eksternt drev

Hvis du har sikkerhedskopieret dine snapshots på det eksterne drev, kan du når som helst gendanne dem fra det eksterne drev.

For eksempel har jeg fjernet web1-2020-12-30 øjebliksbillede fra mit Btrfs-filsystem, monteret på /data vejviser. Men dette øjebliksbillede er sikkerhedskopieret på det eksterne drev, monteret på / snapshots vejviser. Lad os gendanne dette øjebliksbillede.

$ sudo btrfs undervolumenliste / snapshots

For at gendanne web1-2020-12-30 øjebliksbillede kør følgende kommando fra det eksterne drev:

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

Det øjebliksbillede web1-2020-12-30 skal gendannes på Btrfs-filsystemet monteret på /data vejviser.

Som du kan se, er web1-2020-12-30 øjebliksbillede gendannes på Btrfs-filsystemet monteret på /data vejviser.

$ sudo btrfs undervolumenliste / data

Og som du kan se, indholdet af indeks.html fil fra web1-2020-12-30 øjebliksbillede. Dette er den første version af indeks.html fil fra før.

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

Konklusion

I denne artikel lærte du, hvordan du sikkerhedskopierer snapshots af dit Btrfs-filsystem til et eksternt drev. Du lærte også, hvordan du tager trinvis sikkerhedskopier af dine Btrfs-snapshots til et eksternt drev. Endelig lærte du, hvordan du fjerner eksisterende snapshots fra et Brtfs-filsystem og gendanner snapshots fra det eksterne drev.

Sådan installeres League Of Legends på Ubuntu 14.04
Hvis du er fan af League of Legends, er dette en mulighed for dig at prøvekøre League of Legends. Bemærk, at LOL understøttes på PlayOnLinux, hvis du ...
Installer det nyeste OpenRA-strategispil på Ubuntu Linux
OpenRA er en Libre / Free Real Time Strategy-spilmotor, der genskaber de tidlige Westwood-spil som det klassiske Command & Conquer: Red Alert. Distrib...
Installer nyeste Dolphin Emulator til Gamecube & Wii på Linux
Dolphin Emulator giver dig mulighed for at spille dine valgte Gamecube & Wii-spil på Linux Personal Computers (PC). Som en frit tilgængelig og open s...