Deze functie van het bestandssysteem bespaart u veel schijfruimte en bespaart u veel tijd die u zou hebben besteed aan het handmatig comprimeren van uw bestanden.
In dit artikel laat ik je zien hoe je de compressie op Btrfs-bestandssysteemniveau op een Btrfs-bestandssysteem kunt inschakelen. Dus laten we beginnen.
Vereisten:
Om de voorbeelden van dit artikel uit te proberen,
- U moet het Btrfs-bestandssysteem op uw computer hebben geïnstalleerd.
- U moet een harde schijf of SSD hebben met minimaal 1 vrije partitie (van elke grootte).
Ik heb een harde schijf van 20 GB sdb op mijn Ubuntu-machine. Ik heb 2 partities gemaakt sdb1 en sdb2 op deze harde schijf. Ik zal de partitie gebruiken sdb1 in dit artikel.
$ sudo lsblk -e7
Uw harde schijf of SSD heeft mogelijk een andere naam dan de mijne, net als de partities. Dus zorg ervoor dat je ze vanaf nu vervangt door die van jou.
Als je hulp nodig hebt bij het installeren van het Btrfs-bestandssysteem op Ubuntu, bekijk dan mijn artikel Installeer en gebruik Btrfs op Ubuntu 20.04 LTS.
Als je hulp nodig hebt bij het installeren van het Btrfs-bestandssysteem op Fedora, bekijk dan mijn artikel Installeer en gebruik Btrfs op Fedora 33.
Btrfs-compressie-algoritmen:
Op het moment van schrijven ondersteunt het Btrfs-bestandssysteem de volgende compressie-algoritmen:
i) LZO: LZO is een realtime algoritme voor blokcompressie zonder verlies. LZO verdeelt de gegevens in blokken en comprimeert / decomprimeert de gegevens in blokken in realtime. Het is het standaard compressie-algoritme van het Btrfs-bestandssysteem.
ii) ZLIB: ZLIB is een bibliotheek die wordt gebruikt voor gegevenscompressie. Het maakt gebruik van het DEFLATE-algoritme voor gegevenscompressie. Het DEFLATE-gegevenscompressie-algoritme is een combinatie van de LZ77- en Huffman-coderingsalgoritmen. Het Btrfs-bestandssysteem ondersteunt het ZLIB-algoritme voor gegevenscompressie.
U kunt ook het gewenste compressieniveau opgeven. Het niveau kan elk nummer zijn van 1 naar 9. Een hoger niveau geeft een hogere compressieverhouding aan. Level 9 bespaart dus meer schijfruimte dan level 1 (level 9 heeft een hogere compressieverhouding dan level 1). Tenzij u een te gebruiken ZLIB-compressieniveau opgeeft, gebruikt het Btrfs-bestandssysteem standaard het ZLIB-compressieniveau 3.
ZSTD: ZSTD of Zstandard is een krachtig algoritme voor gegevenscompressie zonder verlies. Het is ontwikkeld op Facebook door Yann Collect. De compressieverhouding is vergelijkbaar met het DEFLATE-algoritme dat in ZLIB wordt gebruikt, maar het is sneller. Het Btrfs-bestandssysteem ondersteunt het ZSTD-algoritme voor gegevenscompressie.
U kunt ook het gewenste compressieniveau opgeven. Het niveau kan elk nummer zijn van 1 naar 15. Een hoger niveau geeft een hogere compressieverhouding aan. Level 15 bespaart dus meer schijfruimte dan level 1 (level 15 heeft een hogere compressieverhouding dan level 1). Tenzij u een te gebruiken ZSTD-compressieniveau opgeeft, gebruikt het Btrfs-bestandssysteem standaard het ZSTD-compressieniveau 3.
Een Btrfs-bestandssysteem maken:
Om te experimenteren met gegevenscompressie op Btrfs-bestandssysteemniveau, moet u een Btrfs-bestandssysteem maken.
Een Btrfs-bestandssysteem maken met het label gegevens op de sdb1 partitie, voer de volgende opdracht uit:
$ sudo mkfs.btrfs -L data /dev/sdb1
Koppel een Btrfs-bestandssysteem met compressie ingeschakeld:
Om compressie op Btrfs-bestandssysteemniveau in te schakelen, moet u het Btrfs-bestandssysteem dat u hebt gemaakt op de sdb1 partitie met ofwel de samenpersen of comprimeren-kracht mount optie.
i) comprimeer mount-optie: De samenpersen mount-optie zal eenvoudig Btrfs-compressie op bestandssysteemniveau inschakelen. Het Btrfs-bestandssysteem bepaalt of compressie het te comprimeren bestand groter maakt dan de oorspronkelijke (ongecomprimeerde) bestandsgrootte. Als compressie de bestandsgrootte groter maakt dan het origineel, zal het Btrfs-bestandssysteem dat bestand niet comprimeren.
ii) optie voor montage met compressiekracht: In tegenstelling tot de samenpersen mount-optie, als het Btrfs-bestandssysteem is aangekoppeld met behulp van de comprimeren-kracht mount-optie, dan wordt elk bestand op het Btrfs-bestandssysteem gecomprimeerd, zelfs wanneer compressie het bestand groter maakt.
Een map maken /gegevens met het volgende commando:
$ sudo mkdir -v /data
In staat te stellen LZO compressie, koppelt u het Btrfs-bestandssysteem dat u eerder in de /gegevens map met het volgende commando:
$ sudo mount -o compress=lzo /dev/sdb1 /data
Kracht inschakelen: LZO compressie, koppelt u het Btrfs-bestandssysteem dat u eerder hebt gemaakt als volgt in de /data-directory:
$ sudo mount -o compress-force=lzo /dev/sdb1 /data
Op dezelfde manier kunt u het Btrfs-bestandssysteem aankoppelen in de /gegevens directory als volgt om in te schakelen: ZLIB compressie:
$ sudo mount -o compress=zlib /dev/sdb1 /data
om een in te stellen ZLIB compressieniveau (laten we zeggen, niveau 7), kunt u het Btrfs-bestandssysteem aankoppelen in de /gegevens map als volgt:
$ sudo mount -o compress=zlib:7 /dev/sdb1 /data
In staat te stellen ZSTD compressie, mount het Btrfs-bestandssysteem in de /gegevens map als volgt:
$ sudo mount -o compress=zstd /dev/sdb1 /data
om een in te stellen ZSTD compressieniveau (laten we zeggen, niveau 10), kunt u het Btrfs-bestandssysteem aankoppelen in de /gegevens map als volgt:
$ sudo mount -o compress=zstd:10 /dev/sdb1 /data
Het Btrfs-bestandssysteem dat u hebt gemaakt op de sdb1 partitie moet worden gemount in de /gegevens map zoals je kunt zien in de onderstaande schermafbeelding.
$ df -h /gegevens
Compressie van het Btrfs-bestandssysteem testen:
Om te testen of het Btrfs-bestandssysteem de bestanden comprimeert die op het Btrfs-bestandssysteem staan, zal ik het Btrfs-bestandssysteem op de /gegevens map met de comprimeren-kracht keuze. Ik zal het hoogste compressieniveau van het ZSTD-compressiealgoritme gebruiken voor de demonstratie.
Ontkoppel eerst het Btrfs-bestandssysteem dat u mogelijk op de /gegevens map als volgt:
$ sudo umount /data
Koppel het Btrfs-bestandssysteem met het hoogste compressieniveau (niveau 15) van de ZSTD compressie-algoritme in de /gegevens map als volgt:
$ sudo mount -o compress-force=zstd:15 /dev/sdb1 /data
ik heb gekopieerd over 717 MB van gegevens op het Btrfs-bestandssysteem gemonteerd op de /gegevens map. Zoals je kunt zien, alleen 661 MB wordt schijfruimte gebruikt op het Btrfs-bestandssysteem, ook al zijn de gegevens die in het bestandssysteem zijn opgeslagen 717 MB in grootte. Dus de compressie op Btrfs-bestandssysteemniveau werkt.
Een compressie-enabled Btrfs-bestandssysteem aankoppelen bij het opstarten:
Als je het Btrfs-bestandssysteem automatisch wilt mounten tijdens het opstarten met compressie ingeschakeld (wat je hoogstwaarschijnlijk doet), dan is deze sectie iets voor jou.
Zoek eerst de UUID van het Btrfs-bestandssysteem die u compressie wilt inschakelen en automatisch wilt koppelen tijdens het opstarten, als volgt:
$ sudo btrfs bestandssysteem show /data
Zoals je kunt zien, is de UUID van het Btrfs-bestandssysteem: a8e75a9d-a6f6-4c6e-be41-c10bc1077aa2 in mijn geval. Het zal voor jou anders zijn. Dus zorg ervoor dat je het vanaf nu vervangt door de jouwe.
Open de /etc/fstab bestand met de nano tekstverwerker als volgt:
$ sudo nano /etc/fstab
Typ de volgende regel aan het einde van de /etc/fstab het dossier:
UUID=a8e75a9d-a6f6-4c6e-be41-c10bc1077aa2 /data btrfs compress=lzo 0 0OPMERKING: Vervang de UUID van het Btrfs-bestandssysteem door die van u. Wijzig ook de mount-optie en het compressie-algoritme zoals u wilt.
Als u klaar bent, drukt u op
Om de wijzigingen door te voeren, start u uw computer opnieuw op met de volgende opdracht:
$ sudo opnieuw opstarten
Zodra uw computer opstart, moet het Btrfs-bestandssysteem worden gemount in de /gegevens map zoals je kunt zien in de onderstaande schermafbeelding.
$ df -h /gegevens
Conclusie:
In dit artikel heb ik de compressie-algoritmen besproken die worden ondersteund door het Btrfs-bestandssysteem: LZO, ZLIB en ZSTD. Ik heb je ook laten zien hoe je compressie op bestandssysteemniveau in een Btrfs-bestandssysteem kunt inschakelen.