Denne funktion i filsystemet sparer dig meget diskplads og sparer dig meget tid, som du ville have brugt til at komprimere dine filer manuelt.
I denne artikel skal jeg vise dig, hvordan du aktiverer Btrfs-filsystemniveaukomprimering på et Btrfs-filsystem. Så lad os komme i gang.
Forudsætninger:
For at prøve eksemplerne på denne artikel,
- Du skal have Btrfs-filsystemet installeret på din computer.
- Du skal have en harddisk eller SSD med mindst 1 gratis partition (af enhver størrelse).
Jeg har en 20 GB harddisk sdb på min Ubuntu-maskine. Jeg har oprettet 2 partitioner sdb1 og sdb2 på denne harddisk. Jeg bruger partitionen sdb1 i denne artikel.
$ sudo lsblk -e7
Din harddisk eller SSD kan have et andet navn end min, så vil partitionerne også. Så sørg for at erstatte dem med din fra nu af.
Hvis du har brug for hjælp til installation af Btrfs-filsystemet på Ubuntu, skal du tjekke min artikel Installer og brug Btrfs på Ubuntu 20.04 LTS.
Hvis du har brug for hjælp til installation af Btrfs-filsystemet på Fedora, skal du tjekke min artikel Installer og brug Btrfs på Fedora 33.
Btrfs-kompressionsalgoritmer:
På dette tidspunkt understøtter Btrfs-filsystemet følgende komprimeringsalgoritmer:
i) LZO: LZO er en tabsfri realtids blokkomprimeringsalgoritme. LZO opdeler dataene i blokke og komprimerer / dekomprimerer dataene ved blokke i realtid. Det er standardkomprimeringsalgoritmen til Btrfs-filsystemet.
ii) ZLIB: ZLIB er et bibliotek, der bruges til datakomprimering. Det bruger DEFLATE datakomprimeringsalgoritmen. DEFLATE-datakomprimeringsalgoritmen er en kombination af kodningsalgoritmerne LZ77 og Huffman. Btrfs-filsystemet understøtter ZLIB-datakomprimeringsalgoritmen.
Du kan også angive det ønskede komprimeringsniveau. Niveauet kan være et hvilket som helst tal fra 1 til 9. Et højere niveau indikerer et højere kompressionsforhold. Så niveau 9 sparer mere diskplads end niveau 1 (niveau 9 har et højere kompressionsforhold end niveau 1). Medmindre du angiver et ZLIB-komprimeringsniveau, der skal bruges, bruger Btrfs-filsystemet ZLIB-komprimeringsniveau 3 som standard.
ZSTD: ZSTD eller Zstandard er en højtydende tabsfri datakomprimeringsalgoritme. Det blev udviklet på Facebook af Yann Collect. Dets kompressionsforhold kan sammenlignes med DEFLATE-algoritmen, der bruges i ZLIB, men det er hurtigere. Btrfs-filsystemet understøtter ZSTD-datakomprimeringsalgoritmen.
Du kan også specificere det ønskede komprimeringsniveau. Niveauet kan være et hvilket som helst tal fra 1 til 15. Et højere niveau indikerer et højere kompressionsforhold. Så niveau 15 sparer mere diskplads end niveau 1 (niveau 15 har et højere kompressionsforhold end niveau 1). Medmindre du angiver et ZSTD-komprimeringsniveau, der skal bruges, bruger Btrfs-filsystemet ZSTD-komprimeringsniveau 3 som standard.
Oprettelse af et Btrfs-filsystem:
For at eksperimentere med datakomprimering på Btrfs-filsystemniveau skal du oprette et Btrfs-filsystem.
At oprette et Btrfs-filsystem med etiketten data på den sdb1 partition, kør følgende kommando:
$ sudo mkfs.btrfs -L data / dev / sdb1
Monter et Btrfs-filsystem med komprimering aktiveret:
For at aktivere komprimering af Btrfs-filsystemniveau skal du montere det Btrfs-filsystem, du har oprettet, på sdb1 partition med enten komprimere eller komprimeringskraft monteringsmulighed.
i) komprimeringsmulighed: Det komprimere Mount-mulighed aktiverer simpelthen komprimering af Btrfs-filsystemniveau. Btrfs-filsystemet bestemmer, om komprimering gør den fil, der skal komprimeres, større end den originale (ukomprimerede) filstørrelse. Hvis komprimering gør filstørrelsen større end originalen, komprimerer Btrfs-filsystemet ikke den fil.
ii) mulighed for komprimeringskraftmontering: I modsætning til komprimere monteringsindstilling, hvis Btrfs-filsystemet er monteret ved hjælp af komprimeringskraft monteringsmulighed, så komprimeres hver fil på Btrfs-filsystemet, selv når komprimering gør filen større.
Opret en mappe /data med følgende kommando:
$ sudo mkdir -v / data
At muliggøre LZO komprimering, monter det Btrfs-filsystem, som du oprettede tidligere i /data bibliotek med følgende kommando:
$ sudo mount -o komprimering = lzo / dev / sdb1 / data
For at muliggøre kraft LZO komprimering, monter det Btrfs-filsystem, som du oprettede tidligere i / data-biblioteket som følger:
$ sudo mount -o komprimeringskraft = lzo / dev / sdb1 / data
På samme måde kan du montere Btrfs-filsystemet i /data katalog som følger for at aktivere ZLIB kompression:
$ sudo mount -o komprimering = zlib / dev / sdb1 / data
For at indstille en ZLIB komprimeringsniveau (lad os sige, niveau 7), kan du montere Btrfs-filsystemet i /data katalog som følger:
$ sudo mount -o komprimering = zlib: 7 / dev / sdb1 / data
At muliggøre ZSTD komprimering, monter Btrfs-filsystemet i /data katalog som følger:
$ sudo mount -o komprimering = zstd / dev / sdb1 / data
For at indstille en ZSTD komprimeringsniveau (lad os sige, niveau 10), kan du montere Btrfs-filsystemet i /data katalog som følger:
$ sudo mount -o komprimering = zstd: 10 / dev / sdb1 / data
Det Btrfs-filsystem, som du har oprettet på sdb1 skillevæg skal monteres i /data katalog som du kan se på skærmbilledet nedenfor.
$ df -h / data
Test af Btrfs-filsystemkomprimering:
For at teste, om Btrfs-filsystemet komprimerer de filer, der er på Btrfs-filsystemet, monterer jeg Btrfs-filsystemet på /data mappe med komprimeringskraft mulighed. Jeg vil bruge det højeste kompressionsniveau af ZSTD-komprimeringsalgoritmen til demonstrationen.
Afmonter først det Btrfs-filsystem, som du muligvis har monteret på /data katalog som følger:
$ sudo umount / data
Monter Btrfs-filsystemet med det højeste komprimeringsniveau (niveau 15) af ZSTD komprimeringsalgoritme i /data katalog som følger:
$ sudo mount -o komprimeringskraft = zstd: 15 / dev / sdb1 / data
Jeg har kopieret om 717 MB af data på Btrfs - filsystemet monteret på /data vejviser. Som du kan se, kun 661 MB er diskplads bruges på Btrfs-filsystemet, selvom de data, der er gemt i filsystemet, er 717 MB i størrelse. Så Btrfs-filsystem komprimering fungerer.
Montering af et kompressionsaktiveret Btrfs-filsystem ved opstart:
Hvis du vil montere Btrfs-filsystemet automatisk ved opstartstid med komprimering aktiveret (hvilket du sandsynligvis gør), så er dette afsnit noget for dig.
Find først UUID for Btrfs-filsystemet, som du vil aktivere komprimering og montere automatisk ved opstartstid som følger:
$ sudo btrfs filsystem show / data
Som du kan se, er UUID for Btrfs-filsystemet a8e75a9d-a6f6-4c6e-be41-c10bc1077aa2 i mit tilfælde. Det vil være anderledes for dig. Så sørg for at erstatte den med din fra nu af.
Åbn / etc / fstab fil med nano teksteditor som følger:
$ sudo nano / etc / fstab
Skriv følgende linje i slutningen af / etc / fstab fil:
UUID = a8e75a9d-a6f6-4c6e-be41-c10bc1077aa2 / data btrfs komprimere = lzo 0 0BEMÆRK: Udskift UUID for Btrfs-filsystemet med dit. Skift også monteringsindstillingen og komprimeringsalgoritmen, som du vil.
Når du er færdig, skal du trykke på
For at ændringerne skal træde i kraft, skal du genstarte din computer med følgende kommando:
$ sudo genstart
Når din computer er startet, skal Btrfs-filsystemet være monteret i /data katalog som du kan se på skærmbilledet nedenfor.
$ df -h / data
Konklusion:
I denne artikel har jeg diskuteret komprimeringsalgoritmer, der understøttes af Btrfs-filsystemet: LZO, ZLIB og ZSTD. Jeg har også vist dig, hvordan du aktiverer filsystemniveaukomprimering i et Btrfs-filsystem.