Som standard kan du lagra de ögonblicksbilder du tar av dina Btrfs-delvolymer i samma Btrfs-filsystem, men det är inte möjligt att lagra ögonblicksbilderna för ett Btrfs-filsystem direkt till ett annat Btrfs-filsystem. Btrfs-filsystemet ger dig dock de nödvändiga verktygen för att säkerhetskopiera ögonblicksbilder av ett Btrfs-filsystem till ett annat Btrfs-filsystem. Den här artikeln visar hur du säkerhetskopierar Btrfs-ögonblicksbilder till ett externt Btrfs-filsystem på en extern enhet.
Förutsättningar
För att prova exemplen i den här artikeln måste du uppfylla följande förutsättningar:
- Låt Btrfs-filsystemet vara installerat på din dator.
- Ha en hårddisk eller SSD med minst 2 lediga partitioner (av alla storlekar).
Jag har 20 GB hårddisk, sdb, på min Ubuntu-maskin. Jag har skapat två partitioner, sdb1 och sdb2, på den här hårddisken.
$ sudo lsblk -e7Notera: Din hårddisk eller SSD kommer att ha ett annat namn än mitt, och så kommer partitionerna att göra. Så var noga med att ersätta dessa namn med ditt från och med nu.
Jag kommer att skapa Btrfs-filsystem på sdb1 och den sdb2 partitioner. Ögonblicksbilderna skapade i Btrfs-filsystemet (sdb1) kommer att säkerhetskopieras till Btrfs-filsystemet som skapats på sdb2 dela. Btrfs-filsystemet skapat på sdb2 partitionen fungerar som den externa enheten. Du kan också använda en USB-minne eller en extern hårddisk. var noga med att formatera den med Btrfs-filsystemet.
För hjälp med att installera Btrfs-filsystemet i Ubuntu, kolla in min artikel Installera och använd Btrfs på Ubuntu 20.04 LTS.
För hjälp med att installera Btrfs-filsystemet i Fedora, kolla in min artikel Installera och använd Btrfs på Fedora 33.
Skapa nödvändiga Btrfs-filsystem
Jag kommer att formatera både sdb1 och sdb2 partitioner som Btrfs. Jag kommer att använda sdb1 partition för lagring av data och Btrfs-ögonblicksbilder. Jag kommer att använda sdb2 partition för att säkerhetskopiera ögonblicksbilderna av Btrfs-filsystemet som skapats på sdb1 dela.
För att skapa ett Btrfs-filsystem på sdb1 partition och ge den filsystemets etikettdata, kör följande kommando:
$ sudo mkfs.btrfs -L data / dev / sdb1
Ett Btrfs-filsystem ska nu skapas på sdb1 dela.
För att skapa ett Btrfs-filsystem på sdb2 partition och ge den snapshots för filsystemetiketten, kör följande kommando:
$ sudo mkfs.btrfs -L snapshots / dev / sdb2
Ett Btrfs-filsystem ska nu skapas på sdb2 dela.
Skapa kataloger /data och / ögonblicksbilder för montering av sdb1 och sdb2 partitioner, enligt följande:
$ sudo mkdir -v / data, snapshots
Montera Btrfs-filsystemet du har skapat på sdb1 partition i / datakatalogen enligt följande:
$ sudo mount / dev / sdb1 / data
På samma sätt monterar du Btrfs-filsystemet du har skapat på sdb2 partition på / ögonblicksbilder katalog, enligt följande:
$ sudo mount / dev / sdb2 / snapshots
Som du kan se på skärmdumpen nedan är båda Btrfs-filsystemen (sdb1 och sdb2 partitioner) har monterats korrekt.
$ df -h -t btrfs
Ta ögonblicksbilder av ett Btrfs-filsystem
I det här avsnittet skapar vi dummy-projektet webb1 på / data / projects / web1 Btrfs subvolume. Vi tar en ögonblicksbild av den delvolymen i detta avsnitt, liksom några andra ögonblicksbilder i senare avsnitt av den här artikeln.
Skapa först den nya katalogen / data / projekt, som följer:
$ sudo mkdir -v / data / projects
Skapa sedan det nya delvolym web1 i / data / projekt katalog, som följer:
$ sudo btrfs subvolume create / data / projects / web1
Slutligen skapa det nya filindexet.html i / data / projekt / webb1 delvolym med nano-textredigeraren enligt följande:
$ sudo nano / data / projects / web1 / index.html
Skriv in följande kodrader i indexet.html-fil:
Hej världen
När du är klar trycker du på <Ctrl> + X följd av Y och <Stiga på> för att spara index.html-fil.
På samma sätt skapar du den nya filen stil.css i / data / projekt / delvolym web1 som följer:
$ sudo nano / data / projects / web1 / style.css
Skriv följande kodrader i stil.css fil:
färg: grön;
När du är klar trycker du på <Ctrl> + X följd av Y och <Stiga på> för att spara stil.css fil.
Nu den / data / projekt / delvolym web1 innehåller index.html och stil.css-fil.
$ ls -lh / data / projects / web1
Vi kommer att behålla alla ögonblicksbilder av detta Btrfs-filsystem i /data/.ögonblicksbilder katalog.
Skapa först /data/.ögonblicksbilder katalog med följande kommando:
$ sudo mkdir -v / data /.ögonblicksbilder
Skapa sedan den skrivskyddade ögonblicksbilden /data/.snapshots / web1-2020-12-30 av / data / projekt / delvolym web1 med följande kommando:
$ sudo btrfs subvolume snapshot -r / data / projects / web1 / data /.snapshots / web1-2020-12-30
Som du kan se den nya ögonblicksbilden /data/.snapshots / web1-2020-12-30 Har skapats.
$ sudo btrfs subvolume list / data
Säkerhetskopiera ögonblicksbilder till extern enhet
För att säkerhetskopiera ögonblicksbilden /data/.snapshots / web1-2020-12-30 till ett annat Btrfs-filsystem (extern enhet sdb2, i det här fallet) monterad på / ögonblicksbilder katalog, kör följande kommando:
$ sudo btrfs skicka / data /.snapshots / web1-2020-12-30 | sudo btrfs mottag / snapshots
Ögonblicksbilden /data/.snapshots / web1-2020-12-30 ska säkerhetskopieras till det externa Btrfs-filsystemet (sdb2) monterad på / ögonblicksbilder katalog.
Som du kan se ny delvolym web1-2020-12-30 har skapats på det externa Btrfs-filsystemet.
$ sudo btrfs subvolume list / snapshots
De ögonblicksbild web1-2020-12-30 ska ha samma filer/ kataloger som den /data/.snapshots / web1-2020-12-30 ögonblicksbild.
$ tree -a / snapshots
Du kan få mer information om den säkerhetskopierade ögonblicksbilden / snapshosts / web1-2020-12-30 som följer:
$ sudo btrfs subvolume show / snapshots / web1-2020-12-30
Inkrementell säkerhetskopiering av ögonblicksbilder till extern enhet
Om det finns många filer i ögonblicksbilderna för att säkerhetskopiera till en extern enhet, hjälper inkrementella säkerhetskopior dig att snabba upp säkerhetskopieringen. I det här fallet kommer Btrfs endast att uppdatera de filer som har ändrats sedan den senaste ögonblicksbilden och kopiera nya filer som inte var tillgängliga i den senaste ögonblicksbilden.
I det här avsnittet visar jag dig hur du utför stegvisa säkerhetskopior av Btrfs-ögonblicksbilder till externa Btrfs-filsystem.
Öppna först index.html-fil från / data / projekt / delvolym web1, som följer:
$ sudo nano / data / projects / web1 / index.html
Gör eventuella ändringar du vill ha i index.html-fil. När du är klar trycker du på <Ctrl> + X följd av Y och <Stiga på> för att spara index.html fil.
Ta en ny skrivskyddad ögonblicksbild av / data / projekt / web1 delvolym, som följer:
$ sudo btrfs subvolume snapshot -r / data / projects / web1 / data /.ögonblicksbilder / web1-2020-12-31
Som du kan se den nya ögonblicksbilden /data/.ögonblicksbilder / web1-2020-12-31 av / data / projekt / delvolym web1 Har skapats.
$ sudo btrfs subvolume list / data
Nu är vi redo att ta en stegvis säkerhetskopia.
För att ta en inkrementell säkerhetskopia behöver du en gemensam ögonblicksbild av både källan och destinationen (extern enhet) Btrfs-filsystem. Den vanliga ögonblicksbilden är vanligtvis den senaste ögonblicksbilden av en Btrfs-delvolym. När du tar en ny ögonblicksbild på Btrfs-källfilssystemet jämförs den nya ögonblicksbilden med den senaste ögonblicksbilden (tillgänglig på både källkods- och destinations Btrfs-filsystemet) för källan Btrfs-filsystem. Btrfs beräknar skillnaden och skickar endast nödvändiga data till destinations Btrfs-filsystemet (den externa enheten).
Till exempel för att ta en inkrementell säkerhetskopia av /data/.snapshots / web1-2020-12-31 snapshot, du måste ange den överordnade ögonblicksbilden (den senaste ögonblicksbilden som finns tillgänglig på både käll- och destinations Btrfs-filsystem), /data/.snapshots / web1-2020-12-30, också.
En inkrementell säkerhetskopia av /data/.ögonblicksbilder / web1-2020-12-31 ögonblicksbild kan tas till ett externt Btrfs-filsystem enligt följande:
$ sudo btrfs skicka -p / data /.snapshots / web1-2020-12-30 / data /.snapshots / web1-2020-12-31 | sudo btrfs mottag / snapshots
En inkrementell säkerhetskopia av /data/.ögonblicksbilder / web1-2020-12-31 ögonblicksbild ska tas.
Som du kan se webb1-2020-12-31 ögonblicksbild har säkerhetskopierats till det externa Btrfs-filsystemet som är monterat på / ögonblicksbilder katalog.
$ sudo btrfs subvolume list / snapshots
Som du kan se på skärmdumpen nedan, ändringarna du har gjort i index.html-fil finns i webb1-2020-12-31 ögonblicksbild som har säkerhetskopierats till det externa Btrfs-filsystemet.
$ cat / snapshots / web1-2020-12-31 / index.html
På samma sätt kan du ta så många inkrementella säkerhetskopior av dina ögonblicksbilder som du vill.
Jag visar dig hur du gör en stegvis säkerhetskopiering en gång till. Jag tar inte tid att förklara det igen. Istället visar jag bara processen för tydlighetens skull.
Öppna index.html-fil från / data / projekt / web1 delvolym, som följer:
$ sudo nano / data / projects / web1 / index.html
Gör eventuella ändringar du vill ha i index.html-fil. När du är klar trycker du på <Ctrl> + X följd av Y och <Stiga på> för att spara index.html-fil.
Ta en ny skrivskyddad ögonblicksbild av / data / projekt / delvolym web1, som följer:
$ sudo btrfs subvolume snapshot -r / data / projects / web1 / data /.snapshots / web1-2020-12-31_2
Ta en stegvis säkerhetskopia av /data/.snapshots / web1-2020-12-31_2 snapshot till ett externt Btrfs-filsystem, enligt följande:
$ sudo btrfs skicka -p / data /.snapshots / web1-2020-12-31 / data /.ögonblicksbilder / web1-2020-12-31_2 | sudo btrfs mottag / snapshotsNotera: Nu, den överordnade ögonblicksbilden till vilken /data/.snapshots / web1-2020-12-31_2 snapshot kommer att jämföras är /data/.ögonblicksbilder / web1-2020-12-31.
Som du kan se webb1-2020-12-31_2 snapshot har säkerhetskopierats till det externa Btrfs-filsystemet som är monterat på / ögonblicksbilder katalog.
$ sudo btrfs subvolume list / snapshots
Som du kan se på skärmdumpen nedan har de senaste ändringarna gjorts i index.html-fil finns på webb1-2020-12-31_2 ögonblicksbild säkerhetskopieras till det externa Btrfs-filsystemet.
$ cat / snapshots / web1-2020-12-31_2 / index.html
Håll saker rena
Om du säkerhetskopierar dina Btrfs-ögonblicksbilder ofta kommer du att få många ögonblicksbilder och det kan bli svårt att hantera dem. Lyckligtvis kan du ta bort alla ögonblicksbilder från Btrfs-filsystemet.
Om du använder en tillräckligt stor extern enhet för att säkerhetskopiera Btrfs-ögonblicksbilderna kan du behålla några ögonblicksbilder på ditt Btrfs-filsystem och säkerhetskopiera alla ögonblicksbilder på din externa enhet.
Om du använder en mindre extern enhet kan du selektivt behålla endast de viktigaste ögonblicksbilderna säkerhetskopierade på den externa enheten.
För att säkerhetskopiera dina Btrfs-ögonblicksbilder måste du behålla åtminstone den senaste ögonblicksbilden på båda källorna (/data/.ögonblicksbilder) och destinationen (/ snapshots - extern enhet) Btrfs-filsystem. Ta gärna bort andra ögonblicksbilder än den senaste ögonblicksbilden i båda ändarna.
I det här fallet är till exempel den senaste ögonblicksbilden webb1-2020-12-31_2. Så, för att utföra stegvisa säkerhetskopior måste denna ögonblicksbild sparas på källan och destinationen (extern enhet) Btrfs-filsystem.
Anta att du vill ta bort /data/.snapshots / web1-2020-12-30 snapshot.
För att göra detta, kör följande kommando:
$ sudo btrfs subvolume delete / data /.snapshots / web1-2020-12-30
Btrfs-ögonblicksbilden /data/.snapshots / web1-2020-12-30 bör nu tas bort.
På samma sätt kan du ta bort /data/.snapshots / web1-2020-12-31 snapshot, som följer:
$ sudo btrfs subvolume delete / data /.ögonblicksbilder / web1-2020-12-31
Nu är det bara den senaste ögonblicksbilden, /data/.snapshots / web1-2020-12-31_2, är tillgänglig på Btrfs-filsystemet, monterat på /data katalog. De andra ögonblicksbilderna säkerhetskopieras på den externa enheten, monterad på / ögonblicksbilder katalog.
$ sudo btrfs subvolume list / data$ sudo btrfs subvolume list / snapshots
Återställa ögonblicksbilder från extern enhet
Om du har säkerhetskopierat dina ögonblicksbilder på den externa enheten kan du när som helst återställa dem från den externa enheten.
Till exempel har jag tagit bort webb1-2020-12-30 ögonblicksbild från mitt Btrfs-filsystem, monterat på /data katalog. Men den här ögonblicksbilden säkerhetskopieras på den externa enheten, monterad på / ögonblicksbilder katalog. Låt oss återställa denna ögonblicksbild.
$ sudo btrfs subvolume list / snapshots
För att återställa webb1-2020-12-30 ögonblicksbild kör följande kommando från den externa enheten:
$ sudo btrfs skicka / snapshots / web1-2020-12-30 | sudo btrfs motta / data /.ögonblicksbilder
De ögonblicksbild web1-2020-12-30 bör återställas på Btrfs-filsystemet monterat på /data katalog.
Som du kan se webb1-2020-12-30 ögonblicksbild återställs på Btrfs-filsystemet monterat på /data katalog.
$ sudo btrfs subvolume list / data
Och som du kan se innehållet i index.html fil från webb1-2020-12-30 ögonblicksbild. Detta är den första versionen av index.html fil från tidigare.
$ cat / data /.ögonblicksbilder / web1-2020-12-30 / index.html
Slutsats
I den här artikeln lärde du dig att säkerhetskopiera ögonblicksbilder av ditt Btrfs-filsystem till en extern enhet. Du lärde dig också hur du tar stegvisa säkerhetskopior av dina Btrfs-ögonblicksbilder till en extern enhet. Slutligen lärde du dig hur du tar bort befintliga ögonblicksbilder från ett Brtfs-filsystem och återställer ögonblicksbilder från den externa enheten också.