Denna funktion i filsystemet sparar dig mycket diskutrymme och sparar mycket tid som du skulle ha spenderat komprimera dina filer manuellt.
I den här artikeln ska jag visa dig hur du aktiverar Btrfs-filsystemnivåkomprimering på ett Btrfs-filsystem. 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.
Btrfs-kompressionsalgoritmer:
När detta skrivs stöder Btrfs-filsystemet följande komprimeringsalgoritmer:
i) LZO: LZO är en förlustfri realtidskomprimeringsalgoritm. LZO delar upp data i block och komprimerar / dekomprimerar data i block i realtid. Det är standardkomprimeringsalgoritmen för Btrfs-filsystemet.
ii) ZLIB: ZLIB är ett bibliotek som används för datakomprimering. Den använder DEFLATE-datakomprimeringsalgoritmen. DEFLATE-datakomprimeringsalgoritmen är en kombination av kodningsalgoritmerna LZ77 och Huffman. Btrfs-filsystemet stöder ZLIB-datakomprimeringsalgoritmen.
Du kan också ange vilken komprimeringsnivå du vill ha. Nivån kan vara valfritt nummer från 1 till 9. En högre nivå indikerar ett högre kompressionsförhållande. Så, nivå 9 sparar mer diskutrymme än nivå 1 (nivå 9 har ett högre kompressionsförhållande än nivå 1). Om du inte anger en ZLIB-komprimeringsnivå som ska användas, använder Btrfs-filsystemet ZLIB-komprimeringsnivå 3 som standard.
ZSTD: ZSTD eller Zstandard är en högpresterande förlustfri datakomprimeringsalgoritm. Det utvecklades på Facebook av Yann Collect. Dess kompressionsförhållande är jämförbart med DEFLATE-algoritmen som används i ZLIB, men det är snabbare. Btrfs-filsystemet stöder ZSTD-datakomprimeringsalgoritmen.
Du kan också ange vilken komprimeringsnivå du vill ha. Nivån kan vara valfritt nummer från 1 till 15. En högre nivå indikerar ett högre kompressionsförhållande. Så nivå 15 sparar mer diskutrymme än nivå 1 (nivå 15 har ett högre kompressionsförhållande än nivå 1). Om du inte anger en ZSTD-komprimeringsnivå som ska användas, använder Btrfs-filsystemet ZSTD-komprimeringsnivå 3 som standard.
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 med kompression aktiverad:
För att aktivera komprimering av Btrfs-filsystemnivå måste du montera det Btrfs-filsystem du har skapat på sdb1 partition med antingen komprimera eller komprimeringskraft monteringsalternativ.
i) komprimeringsfäste: De komprimera monteringsalternativ aktiverar helt enkelt Btrfs-filsystemnivåkomprimering. Btrfs-filsystemet kommer att avgöra om komprimering gör filen som ska komprimeras större än den ursprungliga (okomprimerade) filstorleken. Om komprimering gör filstorleken större än originalet komprimerar inte Btrfs-filsystemet den filen.
ii) alternativ för kompresskraftmontering: till skillnad från komprimera monteringsalternativ, om Btrfs-filsystemet är monterat med hjälp av komprimeringskraft monteringsalternativ komprimeras alla filer i Btrfs-filsystemet även när komprimering gör filen större.
Skapa en katalog /data med följande kommando:
$ sudo mkdir -v / data
Att möjliggöra LZO komprimering, montera Btrfs-filsystemet som du skapade tidigare i /data katalog med följande kommando:
$ sudo mount -o komprimera = lzo / dev / sdb1 / data
För att möjliggöra kraft LZO komprimering, montera Btrfs-filsystemet som du skapade tidigare i / data-katalogen enligt följande:
$ sudo mount -o komprimeringskraft = lzo / dev / sdb1 / data
På samma sätt kan du montera Btrfs-filsystemet i /data katalogen enligt följande för att aktivera ZLIB kompression:
$ sudo mount -o komprimera = zlib / dev / sdb1 / data
För att ställa in en ZLIB komprimeringsnivå (låt oss säga, nivå 7), kan du montera Btrfs-filsystemet i /data katalog enligt följande:
$ sudo mount -o komprimera = zlib: 7 / dev / sdb1 / data
Att möjliggöra ZSTD komprimering, montera Btrfs-filsystemet i /data katalog enligt följande:
$ sudo mount -o komprimera = zstd / dev / sdb1 / data
För att ställa in en ZSTD komprimeringsnivå (låt oss säga, nivå 10), kan du montera Btrfs-filsystemet i /data katalog enligt följande:
$ sudo mount -o komprimera = zstd: 10 / dev / sdb1 / data
Btrfs-filsystemet som du har skapat på sdb1 partition bör monteras i /data katalog som du kan se på skärmdumpen nedan.
$ df -h / data
Testa Btrfs-filsystemkomprimering:
För att testa om Btrfs-filsystemet komprimerar filerna som finns i Btrfs-filsystemet, monterar jag Btrfs-filsystemet på /data katalog med komprimeringskraft alternativ. Jag kommer att använda den högsta komprimeringsnivån för ZSTD-komprimeringsalgoritmen för demonstrationen.
Demontera först Btrfs-filsystemet som du kanske har monterat på /data katalog enligt följande:
$ sudo umount / data
Montera Btrfs-filsystemet med högsta komprimeringsnivå (nivå 15) av ZSTD komprimeringsalgoritm i /data katalog enligt följande:
$ sudo mount -o komprimeringskraft = zstd: 15 / dev / sdb1 / data
Jag har kopierat om 717 MB av data på Btrfs-filsystemet monterat på /data katalog. Som du kan se, bara 661 MB är diskutrymme används på Btrfs-filsystemet trots att data som lagras i filsystemet är 717 MB i storlek. Så fungerar Btrfs-filsystemnivåkomprimering.
Montera ett komprimeringsaktiverat Btrfs-filsystem vid start:
Om du vill montera Btrfs-filsystemet automatiskt vid start med komprimering aktiverad (vilket du troligen gör), är det här avsnittet för dig.
Hitta först UUID för Btrfs-filsystemet som du vill aktivera komprimering och montera automatiskt vid starttiden enligt följande:
$ sudo btrfs filsystemshow / data
Som du kan se är UUID för Btrfs-filsystemet a8e75a9d-a6f6-4c6e-be41-c10bc1077aa2 i mitt fall. 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 = a8e75a9d-a6f6-4c6e-be41-c10bc1077aa2 / data btrfs komprimera = lzo 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 /data katalog som du kan se på skärmdumpen nedan.
$ df -h / data
Slutsats:
I den här artikeln har jag diskuterat komprimeringsalgoritmerna som stöds av Btrfs-filsystemet: LZO, ZLIB och ZSTD. Jag har också visat hur du aktiverar komprimering av filsystemnivå i ett Btrfs-filsystem.