Om du behöver behålla mycket överflödig data (i.e., säkerhetskopior av filer, databas) på din dator, då kan Copy-on-Write (CoW) och dedupliceringsfunktionen i Btrfs-filsystemet spara en enorm mängd diskutrymme.
I den här artikeln kommer jag att visa dig hur du sparar diskutrymme med hjälp av Btrfs dedupliceringsfunktion. Så, låt oss komma igång.
Förutsättningar:
För att testa exemplen i den här artikeln,
- Du måste ha Btrfs-filsystemet installerat på din dator.
- Du måste ha en hårddisk eller SSD med minst en ledig partition (av alla storlekar).
Jag har en 20 GB hårddisk sdb på min Ubuntu-maskin. Jag har skapat två partitioner sdb1 och sdb2, på den här hårddisken. Jag kommer att använda partitionen sdb1 i den här artikeln.
$ sudo lsblk -e7
Din hårddisk eller SSD kan ha ett annat namn än mitt, så kommer partitionerna också att göra. Så se till att ersätta dem med din från och med nu.
Om du behöver hjälp med att installera Btrfs-filsystemet på Ubuntu, kolla in min artikel Installera och använd Btrfs på Ubuntu 20.04 LTS.
Om du behöver hjälp med att installera Btrfs-filsystemet på Fedora, kolla in min artikel Installera och använd Btrfs på Fedora 33.
Skapa ett Btrfs-filsystem:
För att experimentera med Btrfs-datakomprimering på filsystemnivå måste du skapa ett Btrfs-filsystem.
Att skapa ett Btrfs-filsystem med etiketten data på sdb1 partition, kör följande kommando:
$ sudo mkfs.btrfs -L data / dev / sdb1
Montera ett Btrfs-filsystem:
Skapa en katalog /data med följande kommando:
$ sudo mkdir -v / data
För att montera Btrfs-filsystemet som skapats på sdb1 partition på /data katalog, kör följande kommando:
$ sudo mount / dev / sdb1 / data
Btrfs-filsystemet ska monteras, som du kan se på skärmdumpen nedan.
$ df -h / data
Installera dedupliceringsverktyg på Ubuntu 20.04 LTS:
För att deduplicera ett Btrfs-filsystem måste du installera duperemove programmet på din dator.
Om du använder Ubuntu 20.04 LTS, då kan du installera duperemove från det officiella paketförvaret för Ubuntu.
Uppdatera först APT-paketets förvarscache med följande kommando:
$ sudo apt uppdatering
Installera duperemove paket med följande kommando:
$ sudo apt installera duperemove -y
De duperemove paketet ska installeras.
Installera dedupliceringsverktyg på Fedora 33:
För att deduplicera ett Btrfs-filsystem måste du installera duperemove programmet på din dator.
Om du använder Fedora 33 kan du installera duperemove från det officiella paketförvaret för Fedora.
Uppdatera först DNF-paketförvarets cache med följande kommando:
$ sudo dnf makecache
Installera duperemove paket med följande kommando:
$ sudo dnf installera duperemove
För att bekräfta installationen, tryck på Y och tryck sedan på
De duperemove paketet ska installeras.
Testa deduplicering på ett Btrfs-filsystem:
I det här avsnittet ska jag göra ett enkelt test för att visa dig hur dedupliceringsfunktionen i Btrfs-filsystemet tar bort överflödiga data från filsystemet och sparar diskutrymme.
Som du kan se,
- Jag har kopierat en fil QGIS-OSGeo4W-3.14.0-1-Setup-x86_64.exe till /data katalog. Filen är 407 MB i storlek.
- Filen lagrad på /data katalogen är 407 MB stor.
- Endast filen konsumeras ungefär 412 MB diskutrymme från Btrfs - filsystemet monterat på /data katalog.
Som du kan se,
- Jag har kopierat samma fil till /data katalogen och döpte den till QGIS-OSGeo4W-3.14.0-1-Setup-x86_64.2.exe.
- Filen lagrad på /data katalog är nu 814 MB i storlek.
- Filerna konsumeras ungefär 820 MB diskutrymme från Btrfs - filsystemet monterat på /data katalog.
För att utföra deduplicering på Btrfs-filsystemet monterat på /data katalog, kör följande kommando:
$ sudo duperemove -dr / data
De överflödiga datablocken från Btrfs-filsystemet monterade på /data katalogen ska tas bort.
Som du kan se,
- Jag har filerna QGIS-OSGeo4W-3.14.0-1-Setup-x86_64.exe och QGIS-OSGeo4W-3.14.0-1-Setup-x86_64.2.exe i /data katalog.
- Filen lagrad på /data katalog är nu 814 MB i storlek.
- Filerna konsumeras ungefär 412 MB diskutrymme från Btrfs - filsystemet monterat på /data katalog.
De duperemove programmet tog bort överflödiga (dubbletter) datablock från Btrfs-filsystemet monterat på /data katalogen och sparade en hel del diskutrymme.
Montera automatiskt ett Btrfs-filsystem vid start:
För att montera det Btrfs-filsystem du har skapat, måste du känna till UUID för Btrfs-filsystemet.
Du hittar UUID för Btrfs-filsystemet monterat på /data katalog med följande kommando:
$ sudo btrfs filsystemshow / data
Som du kan se är UUID för Btrfs-filsystemet som jag vill montera vid starttid e39ac376-90dd-4c39-84d2-e77abb5e3059. Det kommer att vara annorlunda för dig. Så se till att ersätta den med din från och med nu.
Öppna / etc / fstab fil med nano textredigerare enligt följande:
$ sudo nano / etc / fstab
Skriv in följande rad i slutet av / etc / fstab fil:
UUID = e39ac376-90dd-4c39-84d2-e77abb5e3059 / data btrfs standard 0 0NOTERA: Byt ut UUID för Btrfs-filsystemet mot ditt. Ändra också monteringsalternativet och kompressionsalgoritmen som du vill.
När du är klar trycker du på
För att ändringarna ska träda i kraft startar du om datorn med följande kommando:
$ sudo omstart
När din dator startar bör Btrfs-filsystemet monteras i / datakatalog, som du kan se på skärmdumpen nedan.
$ df -h / data
Utför automatiskt deduplicering med Cron Job:
För att ta bort överflödig data från Btrfs-filsystemet måste du köra duperemove kommando då och då.
Du kan automatiskt köra duperemove kommando varje timme, dagligen, veckovis, månadsvis, årligen eller vid start med ett cron-jobb.
Först, hitta hela vägen för duperemove kommando med följande kommando:
$ som duperemove
Som du kan se, hela vägen för duperemove kommandot är / usr / bin / duperemove. Kom ihåg vägen eftersom du kommer att behöva den senare.
För att redigera crontab-filen, kör följande kommando:
$ sudo crontab -e
Välj en textredigerare du gillar och tryck på
Jag kommer att använda nano textredigerare. Så jag skriver in 1 och tryck
Crontab-filen ska öppnas.
Att köra duperemove kommando på /data katalog varje timme, lägg till följande rad i slutet av crontab-filen.
@hourly / usr / bin / duperemove -dr / data >> / var / log / duperemove.logga
Att köra duperemove kommando på /data katalog varje dag, lägg till följande rad i slutet av crontab-filen.
@daily / usr / bin / duperemove -dr / data >> / var / log / duperemove.logga
Att köra duperemove kommando på /data katalog varje vecka, lägg till följande rad i slutet av crontab-filen.
@weekly / usr / bin / duperemove -dr / data >> / var / log / duperemove.logga
Att köra duperemove kommando på /data katalog varje månad, lägg till följande rad i slutet av crontab-filen.
@monthly / usr / bin / duperemove -dr / data >> / var / log / duperemove.logga
Att köra duperemove kommando på /data katalog varje år, lägg till följande rad i slutet av crontab-filen.
@yearly / usr / bin / duperemove -dr / data >> / var / log / duperemove.logga
Att köra duperemove kommando på /data katalog vid starttid, lägg till följande rad i slutet av crontab-filen.
@reboot / usr / bin / duperemove -dr / data >> / var / log / duperemove.logga
NOTERA: Jag kommer att köra duperemove kommando vid starttid i den här artikeln.
När du är klar trycker du på
Ett nytt cron-jobb ska installeras.
För att ändringarna ska träda i kraft startar du om datorn med följande kommando:
$ sudo omstart
Som den duperemove kommandot körs i bakgrunden, kommer kommandot att lagras i / var / log / duperemove.logga fil.
$ sudo ls -lh / var / log / duperemove *
Som du kan se / var / log / duperemove.logga filen innehåller duperemove logga data. Det betyder att cron-jobbet fungerar bra.
Slutsats:
I den här artikeln har jag visat dig hur du installerar duperemove Brtfs dedupliceringsverktyg på Ubuntu 20.04 LTS och Fedora 33. Jag har också visat dig hur du utför Btrfs-deduplicering med duperemove-verktyget och kör duperemove-verktyget automatiskt med ett cron-jobb.