Als u veel overtollige gegevens moet bewaren (i.e., bestandsback-ups, database) op uw computer, dan kan de functie Copy-on-Write (CoW) en deduplicatie van het Btrfs-bestandssysteem een enorme hoeveelheid schijfruimte besparen.
In dit artikel laat ik je zien hoe je schijfruimte kunt besparen met de Btrfs-deduplicatiefunctieplication. 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.
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:
Een map maken /gegevens met het volgende commando:
$ sudo mkdir -v /data
Om het Btrfs-bestandssysteem te koppelen dat is gemaakt op de sdb1 partitie op de /gegevens map, voer de volgende opdracht uit:
$ sudo mount /dev/sdb1 /data
Het Btrfs-bestandssysteem moet worden aangekoppeld, zoals je kunt zien in de onderstaande schermafbeelding.
$ df -h /gegevens
Deduplicatietools installeren op Ubuntu 20.04 LTS:
Om een Btrfs-bestandssysteem te dedupliceren, moet u de duperverwijderen programma op uw computer.
Als u Ubuntu 20 . gebruikt.04 LTS, dan kun je installeren duperverwijderen uit de officiële pakketrepository van Ubuntu.
Werk eerst de cache van de APT-pakketrepository bij met de volgende opdracht:
$ sudo apt-update
Installeer de duperverwijderen pakket met het volgende commando:
$ sudo apt install duperemove -y
De duperverwijderen pakket moet worden geïnstalleerd.
Deduplicatietools installeren op Fedora 33:
Om een Btrfs-bestandssysteem te dedupliceren, moet u de duperverwijderen programma op uw computer.
Als je Fedora 33 gebruikt, dan kun je duperverwijderen van de officiële pakketrepository van Fedora.
Werk eerst de cache van de DNF-pakketrepository bij met de volgende opdracht:
$ sudo dnf makecache
Installeer de duperverwijderen pakket met het volgende commando:
$ sudo dnf installeer duperemove
Om de installatie te bevestigen, drukt u op Y en druk vervolgens op
De duperverwijderen pakket moet worden geïnstalleerd.
Deduplicatie testen op een Btrfs-bestandssysteem:
In deze sectie ga ik een eenvoudige test doen om u te laten zien hoe de deduplicatiefunctie van het Btrfs-bestandssysteem overtollige gegevens uit het bestandssysteem verwijdert en schijfruimte bespaart.
Zoals je kunt zien,
- Ik heb een bestand gekopieerd QGIS-OSGeo4W-3.14.0-1-Setup-x86_64.exe naar de /gegevens map. Het bestand is 407 MB in grootte.
- Het bestand dat is opgeslagen op de /gegevens map is 407 MB groot.
- Alleen het bestand verbruikt ongeveer 412 MB schijfruimte van het Btrfs-bestandssysteem gemonteerd op de /gegevens map.
Zoals je kunt zien,
- Ik heb hetzelfde bestand gekopieerd naar de /gegevens map en hernoemde het naar QGIS-OSGeo4W-3.14.0-1-Setup-x86_64.2.exe.
- Het bestand dat is opgeslagen op de /gegevens map is nu 814 MB in grootte.
- De bestanden verbruikt ongeveer 820 MB schijfruimte van het Btrfs-bestandssysteem gemonteerd op de /gegevens map.
Om de deduplicatiebewerking uit te voeren op het Btrfs-bestandssysteem dat is aangekoppeld op de /gegevens map, voer de volgende opdracht uit:
$ sudo duperemove -dr /data
De redundante datablokken van het Btrfs-bestandssysteem gemonteerd op de /gegevens map moet worden verwijderd.
Zoals je kunt zien,
- Ik heb de bestanden QGIS-OSGeo4W-3.14.0-1-Setup-x86_64.exe en QGIS-OSGeo4W-3.14.0-1-Setup-x86_64.2.exe in /gegevens map.
- Het bestand dat is opgeslagen op de /gegevens map is nu 814 MB in grootte.
- De bestanden verbruikt ongeveer 412 MB schijfruimte van het Btrfs-bestandssysteem gemonteerd op de /gegevens map.
De duperverwijderen programma heeft overtollige (dubbele) datablokken verwijderd uit het Btrfs-bestandssysteem dat op de /gegevens map en bespaarde veel schijfruimte.
Automatisch een Btrfs-bestandssysteem koppelen bij opstarten:
Om het Btrfs-bestandssysteem dat u hebt gemaakt te mounten, moet u de UUID van het Btrfs-bestandssysteem kennen.
U kunt de UUID van het Btrfs-bestandssysteem vinden op de /gegevens map met het volgende commando:
$ sudo btrfs bestandssysteem show /data
Zoals je kunt zien, is de UUID van het Btrfs-bestandssysteem dat ik tijdens het opstarten wil koppelen: e39ac376-90dd-4c39-84d2-e77abb5e3059. 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=e39ac376-90dd-4c39-84d2-e77abb5e3059 /data btrfs standaard 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 /datamap, zoals je kunt zien in de onderstaande schermafbeelding.
$ df -h /gegevens
Automatisch deduplicatie uitvoeren met Cron Job:
Om overtollige gegevens uit het Btrfs-bestandssysteem te verwijderen, moet u de duperverwijderen commando af en toe.
U kunt automatisch de duperverwijderen commando per uur, dagelijks, wekelijks, maandelijks, jaarlijks of tijdens het opstarten met behulp van een cron-taak.
Zoek eerst het volledige pad van de duperverwijderen commando met het volgende commando:
$ die duperemove
Zoals je kunt zien, is het volledige pad van de duperverwijderen commando is /usr/bin/duperemove. Onthoud het pad, want je hebt het later nodig.
Voer de volgende opdracht uit om het crontab-bestand te bewerken:
$ sudo crontab -e
Selecteer een teksteditor die je leuk vindt en druk op
ik zal de gebruiken nano tekstverwerker. Dus ik typ in 1 en druk op
Het crontab-bestand moet worden geopend.
om de uit te voeren duperverwijderen commando op de /gegevens directory elk uur, voeg de volgende regel toe aan het einde van het crontab-bestand:.
@hourly /usr/bin/duperemove -dr /data >> /var/log/duperemove.log
om de . te runnen duperverwijderen commando op de /gegevens directory elke dag, voeg de volgende regel toe aan het einde van het crontab-bestand:.
@daily /usr/bin/duperemove -dr /data >> /var/log/duperemove.log
om de . te runnen duperverwijderen commando op de /gegevens directory elke week, voeg de volgende regel toe aan het einde van het crontab-bestand:.
@weekly /usr/bin/duperemove -dr /data >> /var/log/duperemove.log
om de . te runnen duperverwijderen commando op de /gegevens directory elke maand, voeg de volgende regel toe aan het einde van het crontab-bestand:.
@maandelijks /usr/bin/duperemove -dr /data >> /var/log/duperemove.log
om de uit te voeren duperverwijderen commando op de /gegevens map elk jaar, voeg de volgende regel toe aan het einde van het crontab-bestand:.
@jaarlijks /usr/bin/duperemove -dr /data >> /var/log/duperemove.log
om de . te runnen duperverwijderen commando op de /gegevens map tijdens het opstarten, voeg de volgende regel toe aan het einde van het crontab-bestand:.
@reboot /usr/bin/duperemove -dr /data >> /var/log/duperemove.log
OPMERKING: ik zal het runnen duperverwijderen commando tijdens het opstarten in dit artikel.
Als u klaar bent, drukt u op
Er moet een nieuwe cron-taak worden geïnstalleerd.
Om de wijzigingen door te voeren, start u uw computer opnieuw op met de volgende opdracht:
$ sudo opnieuw opstarten
als de duperverwijderen opdracht op de achtergrond wordt uitgevoerd, wordt de uitvoer van de opdracht opgeslagen in de /var/log/duperemove.log het dossier.
$ sudo ls -lh /var/log/duperemove*
Zoals je kunt zien, is de /var/log/duperemove.log bestand bevat de duperverwijderen log gegevens. Het betekent dat de cron-job prima werkt.
Conclusie:
In dit artikel heb ik je laten zien hoe je de duperverwijderen Brtfs-deduplicatietool op Ubuntu 20.04 LTS en Fedora 33. Ik heb je ook laten zien hoe je Btrfs-deduplicatie uitvoert met behulp van de duperemove-tool en de duperemove-tool automatisch uitvoert met behulp van een cron-taak.