Øyeblikksbildefunksjonen til Btrfs-filsystemet bruker Copy-on-Write (CoW) -prinsippet. Så det tar ikke mye diskplass, og du kan ta øyeblikksbilder av et undervolum umiddelbart.
Btrfs-filsystemet støtter to typer øyeblikksbilder.
- Skrivbare øyeblikksbilder: Hvis du tar et skrivbart øyeblikksbilde, kan du endre øyeblikksbildets filer / kataloger senere. Dette er standard øyeblikksbildetype for Btrfs-filsystemet.
- Skrivebeskyttede øyeblikksbilder: Hvis du tar et skrivebeskyttet øyeblikksbilde, kan du ikke endre øyeblikksbildets filer / kataloger senere.
Denne artikkelen viser deg hvordan du tar skrivbare og skrivebeskyttede øyeblikksbilder av Btrfs-filsystemets undervolumer. Jeg vil også vise deg hvordan du oppdaterer et skrivbart øyeblikksbilde og gjenoppretter filer fra et øyeblikksbilde. Jeg vil vise deg hvordan du fjerner et øyeblikksbilde også. Så la oss komme i gang.
Forutsetninger
For å prøve eksemplene på denne artikkelen,
- Du må ha Btrfs-filsystemet installert på datamaskinen din.
- Du må ha en harddisk eller SSD med minst 1 gratis partisjon (av hvilken som helst størrelse).
Jeg har en 20 GB harddisk sdb på min Ubuntu-maskin. Jeg har laget 2 partisjoner sdb1 og sdb2 på denne harddisken. Jeg vil bruke partisjonen sdb1 i denne artikkelen.
$ sudo lsblk -e7
Harddisken eller SSD-en din kan ha et annet navn enn min, det vil også partisjonene gjøre. Så sørg for å erstatte dem med dine fra nå av.
Hvis du trenger hjelp med å installere Btrfs-filsystemet på Ubuntu, kan du sjekke artikkelen min Installer og bruk Btrfs på Ubuntu 20.04 LTS.
Hvis du trenger hjelp med å installere Btrfs-filsystemet på Fedora, kan du sjekke artikkelen min Installer og bruk Btrfs på Fedora 33.
Opprette et Btrfs-filsystem
For å eksperimentere med Btrfs-undervolumer, må du opprette et Btrfs-filsystem.
Å lage et Btrfs-filsystem med etiketten data på sdb1 partisjon, kjør følgende kommando:
$ sudo mkfs.btrfs -L data / dev / sdb1
Et Btrfs-filsystem bør opprettes.
Lag en katalog /data med følgende kommando:
$ sudo mkdir -v / data
For å montere Btrfs-filsystemet opprettet på sdb1 partisjon i /data katalog, kjør følgende kommando:
$ sudo mount / dev / sdb1 / data
Btrfs-filsystemet skal monteres som du kan se på skjermbildet nedenfor.
$ df -h / data
Forbereder Btrfs-filsystemet for øyeblikksbilder
I Btrfs kan du bare ta bilder av Btrfs-delvolumer. Hovedroten til et Btrfs-filsystem er også et undervolum. Så du kan ta sikkerhetskopi av hele Btrfs-filsystemet, så vel som spesifikke delvolumer.
Denne delen vil opprette et Btrfs-delvolum / data / prosjekter / web1 og opprett de nødvendige filene for de neste delene av denne artikkelen nedenfor. Jeg vil også opprette en katalog der du kan beholde øyeblikksbildene dine. I de neste avsnittene vil jeg vise deg hvordan du tar øyeblikksbilder (skrivbar og skrivebeskyttet), oppdaterer et skrivbart øyeblikksbilde og gjenoppretter filer fra øyeblikksbildet. Så la oss komme i gang.
Først oppretter du en ny katalog / data / prosjekter som følger:
$ sudo mkdir -v / data / projects
Lag et nytt delvolum web1 i / data / prosjekter katalog som følger:
$ sudo btrfs subvolume create / data / projects / web1
Opprett en ny fil indeks.html i / data / prosjekter / web1 delvolum som følger:
$ sudo nano / data / projects / web1 / index.html
Skriv inn følgende kodelinjer i indeks.html fil.
Hei verden 4
Når du er ferdig, trykk
Opprett en ny fil stil.css i / data / prosjekter / web1 delvolum som følger:
$ sudo nano / data / projects / web1 / style.css
Skriv inn følgende kodelinjer i stil.css fil.
h1farge: grønn;
Når du er ferdig, trykk
Nå, den / data / prosjekter / web1 delvolum har indeks.html og stil.css fil.
$ ls -lh / data / projects / web1
Jeg vil ha alle øyeblikksbildene til dette Btrfs-filsystemet i /data/.øyeblikksbilder katalog.
Opprett /data/.øyeblikksbilder katalog med følgende kommando:
$ sudo mkdir -v / data /.øyeblikksbilder
Ta stillbilder av et undervolum
Å ta et øyeblikksbilde av / data / prosjekter / web1 delvolum inn i /data/.øyeblikksbilder / web1-2020-12-25 katalog (blir opprettet automatisk), kjør følgende kommando:
$ sudo btrfs subvolume øyeblikksbilde / data / prosjekter / web1 / data /.øyeblikksbilder / web1-2020-12-25
Et øyeblikksbilde av / data / prosjekter / web1 katalogen skal opprettes på /data/.øyeblikksbilder / web1-2020-12-25 katalog.
Som du kan se på skjermbildet nedenfor, et nytt delvolum .øyeblikksbilder / web1-2020-12-25 er skapt. Et øyeblikksbilde er faktisk et undervolum.
$ sudo btrfs undervolumeliste / data
Du kan se mer informasjon om øyeblikksbildet du har opprettet i /data/.øyeblikksbilder / web1-2020-12-25 katalog som følger:
$ sudo btrfs subvolume show / data /.øyeblikksbilder / web1-2020-12-25
Som du kan se, er alle filene i / data / prosjekter / web1 delvolum er i /data/.øyeblikksbilder / web1-2020-12-25 øyeblikksbilde.
$ tree -a / data
Gjenopprette filer fra stillbilder
I denne delen skal jeg vise deg hvordan du gjenoppretter filer fra Btrfs-øyeblikksbildene.
Først skal jeg vise deg hvordan du gjenoppretter en enkelt fil fra øyeblikksbildet.
Åpne / data / prosjekter / web1 / indeks.html fil med nano-teksteditoren som følger:
$ sudo nano / data / projects / web1 / index.html
Gjør eventuelle endringer du ønsker.
Når du er ferdig, trykk
Som du kan se, er det viktigste indeks.html filen er forskjellig fra indeks.html filen i øyeblikksbildet.
$ cat / data / projects / web1 / index.html$ katt / data /.øyeblikksbilder / web1-2020-12-25 / indeks.html
Vi har gjort hovedendringene indeks.html filen er uønsket, og vi vil gjenopprette indeks.html fil fra øyeblikksbildet.
Du kan gjenopprette indeks.html filen fra stillbildet som følger:
$ sudo cp -v / data /.øyeblikksbilder / web1-2020-12-25 / indeks.html / data / prosjekter / web1 / indeks.html
Som du kan se, er indeks.html filen gjenopprettes fra øyeblikksbildet.
$ cat / data / projects / web1 / index.html$ katt / data /.øyeblikksbilder / web1-2020-12-25 / indeks.html
La oss nå se hvordan du gjenoppretter alle filene / katalogene fra øyeblikksbildet.
Fjern alle filene fra / data / prosjekter / web1 øyeblikksbilde som følger:
$ sudo rm -rv / data / prosjekter / web1 / *
For å gjenopprette alle filene / katalogene fra øyeblikksbildet, kjør følgende kommando:
$ sudo rsync -avz / data /.øyeblikksbilder / web1-2020-12-25 / / data / prosjekter / web1 /
Som du kan se, blir filene / katalogene gjenopprettet fra øyeblikksbildet.
$ ls -lh / data / projects / web1
Til slutt, la oss se hvordan du gjenoppretter filer / kataloger fra øyeblikksbildet i speilmodus. I speilmodus vil undervolumets filer / kataloger være de samme som i øyeblikksbildet. Hvis det er noen filer / kataloger i undervolumet som ikke er tilgjengelige i øyeblikksbildet, blir de fjernet.
La oss lage en ny fil i undervolumet for å skille filtre fra øyeblikksbildet.
Lage en LES LES.tekst filen i / data / prosjekter / web1 delvolum som følger:
$ echo "hallo verden 5" | sudo tee / data / projects / web1 / README.tekst
Som du kan se, filtreet til / data / prosjekter / web1 delvolum er forskjellig fra /data/.øyeblikksbilder / web1-2020-12-25 øyeblikksbilde.
$ tree -a / data
For å gjenopprette filene / katalogene fra /data/.øyeblikksbilder / web1-2020-12-25 øyeblikksbilde til / data / prosjekter / web1 delvolum i speilmodus, kjør følgende kommando:
$ sudo rsync -avz --delete / data /.øyeblikksbilder / web1-2020-12-25 / / data / prosjekter / web1 /
Alle filene / katalogene til / data / prosjekter / web1 undervolumet bør gjenopprettes (i speilmodus) fra /data/.øyeblikksbilder / web1-2020-12-25 øyeblikksbilde.
Filetreet til / data / prosjekter / web1 delvolum og /data/.øyeblikksbilder / web1-2020-12-25 øyeblikksbilde skal være det samme.
Som du kan se, indeksen.html-fil og stil.css filinnholdet er det samme i / data / prosjekter / web1 delvolum og /data/.øyeblikksbilder / web1-2020-12-25 øyeblikksbilde.
Innholdet i indeks.html og stil.css filen i / data / prosjekter / web1 delvolum.
$ cat / data / projects / web1 / index.html$ cat / data / prosjekter / web1 / stil.css
Innholdet i indeks.html og stil.css filen i /data/.øyeblikksbilder / web1-2020-12-25 øyeblikksbilde.
$ cat / data / projects / web1 / index.html$ cat / data / prosjekter / web1 / stil.css
Oppdaterer et øyeblikksbilde
Som standard tar Btrfs-filsystemet skrivbare øyeblikksbilder. Et Btrfs-øyeblikksbilde er akkurat som et undervolum. Så du kan endre / oppdatere filene / katalogene til et skrivbart øyeblikksbilde.
La oss oppdatere indeks.html filen i / data / prosjekter / web1 delvolum.
Først åpner du indeks.html fil fra / data / prosjekter / web1 delvolum med nano tekstredigerer som følger:
$ sudo nano / data / projects / web1 / index.html
Gjør eventuelle endringer du ønsker. Når du er ferdig, trykk
Som du kan se, indeksen.html-fil av / data / prosjekter / web1 delvolum er forskjellig fra /data/.øyeblikksbilder / web1-2020-12-25 øyeblikksbilde.
$ cat / data / projects / web1 / index.html$ katt / data /.øyeblikksbilder / web1-2020-12-25 / indeks.html
Du vil beholde indeks.html fil av / data / prosjekter / web1 delvolum.
For å oppdatere indeks.html filen i /data/.øyeblikksbilder / web1-2020-12-25 øyeblikksbilde, kjør følgende kommando:
$ sudo cp -v / data / projects / web1 / index.html / data /.øyeblikksbilder / web1-2020-12-25 / indeks.html
Som du kan se, er indeks.html fil av /data/.øyeblikksbilder / web1-2020-12-25 øyeblikksbildet er oppdatert.
Å oppdatere et øyeblikksbilde er like enkelt som å kopiere nye filer til øyeblikksbildet.
Ta skrivebeskyttede stillbilder av et undervolum
Noen ganger vil du ikke at øyeblikksbildene du har tatt skal oppdateres på noen måte. I så fall kan du opprette skrivebeskyttede øyeblikksbilder.
For eksempel for å lage et skrivebeskyttet øyeblikksbilde /data/.øyeblikksbilder / web1-2020-12-26 av / data / prosjekter / web1 subvolume, kjør følgende kommando:
$ sudo btrfs subvolume øyeblikksbilde -r / data / prosjekter / web1 / data /.øyeblikksbilder / web1-2020-12-26
Som du kan se, et nytt undervolum .øyeblikksbilder / web1-2020-12-26 er skapt.
$ sudo btrfs undervolumeliste / data
Som du kan se øyeblikksbildet /data/.øyeblikksbilder / web1-2020-12-26 er skrivebeskyttet.
$ sudo btrfs subvolume show / data /.øyeblikksbilder / web1-2020-12-26
La oss oppdatere indeks.html fil fra / data / prosjekter / web1 delvolum.
For å gjøre det, åpne indeks.html fil fra / data / prosjekter / web1 delvolum med nano tekstredigerer som følger:
$ sudo nano / data / projects / web1 / index.html
Gjør eventuelle endringer du ønsker. Når du er ferdig, trykk
Som du kan se, er indeks.html i / data / prosjekter / web1 delvolum er forskjellig fra /data/.øyeblikksbilder / web1-2020-12-26 øyeblikksbilde.
$ cat / data / projects / web1 / index.html$ katt / data /.øyeblikksbilder / web1-2020-12-26 / indeks.html
La oss prøve å oppdatere indeks.html filen i /data/.øyeblikksbilder / web1-2020-12-26 øyeblikksbilde.
$ sudo cp -v / data / projects / web1 / index.html / data /.øyeblikksbilder / web1-2020-12-26 / indeks.html
Som du kan se, kan du ikke oppdatere indeks.html fil av /data/.øyeblikksbilder / web1-2020-12-26 øyeblikksbilde fordi øyeblikksbildet er skrivebeskyttet.
Fjerne et øyeblikksbilde
Jeg har fortalt deg tidligere at et Btrfs-øyeblikksbilde er som et undervolum. Så du kan fjerne et Btrfs-øyeblikksbilde akkurat som du fjerner et Btrfs-undervolum. Samme kommando.
Slik er filtreet til Btrfs-filsystemet montert på /data katalog ser ut for øyeblikket.
$ tree -a / data
La oss fjerne .øyeblikksbilder / web1-2020-12-25 øyeblikksbilde.
$ sudo btrfs undervolumeliste / data
For å fjerne /data/.øyeblikksbilder / web1-2020-12-25 øyeblikksbilde, kjør følgende kommando:
$ sudo btrfs delvolum slett / data /.øyeblikksbilder / web1-2020-12-25
Som du kan se øyeblikksbildet .øyeblikksbilder / web1-2020-12-25 er ikke mer.
$ sudo btrfs undervolumeliste / data
Som du kan se, filene / katalogene til /data/.øyeblikksbilder / web1-2020-12-25 øyeblikksbilde fjernes også.
$ tree -a / data
Konklusjon
Denne artikkelen har vist deg hvordan du tar skrivbare og skrivebeskyttede øyeblikksbilder av Btrfs-filsystemets undervolumer. Jeg har også vist deg hvordan du oppdaterer et skrivbart øyeblikksbilde og gjenoppretter filer fra et øyeblikksbilde. Jeg har vist deg hvordan du også fjerner et Btrfs-øyeblikksbilde. Denne artikkelen skal hjelpe deg med å komme i gang med funksjonen Btrfs snapshot.