Тази функция на файловата система ще ви спести много дисково пространство и ще ви спести много време, което бихте отделили за компресиране на вашите файлове ръчно.
В тази статия ще ви покажа как да активирате компресията на ниво файлова система Btrfs във файлова система Btrfs. И така, нека започнем.
Предпоставки:
За да изпробвате примерите от тази статия,
- Трябва да имате инсталирана файловата система Btrfs на вашия компютър.
- Трябва да имате твърд диск или SSD с поне 1 безплатен дял (от всякакъв размер).
Имам 20 GB твърд диск sdb на моята машина на Ubuntu. Създал съм 2 дяла sdb1 и sdb2 на този твърд диск. Ще използвам дяла sdb1 в тази статия.
$ sudo lsblk -e7
Вашият твърд диск или SSD може да има различно име от моето, така че и дяловете. Така че, не забравяйте да ги замените от сега нататък.
Ако имате нужда от помощ при инсталирането на файловата система Btrfs на Ubuntu, проверете статията ми Инсталирайте и използвайте Btrfs на Ubuntu 20.04 LTS.
Ако имате нужда от помощ при инсталирането на файловата система Btrfs на Fedora, проверете статията ми Инсталирайте и използвайте Btrfs на Fedora 33.
Алгоритми за компресиране на Btrfs:
По време на това писане файловата система Btrfs поддържа следните алгоритми за компресиране:
i) LZO: LZO е алгоритъм за компресиране на блокове в реално време без загуби. LZO разделя данните на блокове и компресира / декомпресира данните по блокове в реално време. Това е алгоритъмът за компресиране по подразбиране на файловата система Btrfs.
ii) ZLIB: ZLIB е библиотека, използвана за компресиране на данни. Той използва алгоритъма за компресиране на данни DEFLATE. Алгоритъмът за компресиране на данни DEFLATE е комбинация от алгоритмите за кодиране LZ77 и Huffman. Файловата система Btrfs поддържа алгоритъма за компресиране на данни ZLIB.
Можете също така да посочите нивото на компресия, което искате. Нивото може да бъде произволно число от 1 да се 9. По-високото ниво показва по-високо съотношение на компресия. И така, ниво 9 ще спести повече дисково пространство от ниво 1 (ниво 9 има по-високо ниво на компресия от ниво 1). Освен ако не посочите ниво на компресия ZLIB, което да използвате, файловата система Btrfs ще използва ниво на компресия ZLIB 3 по подразбиране.
ZSTD: ZSTD или Zstandard е високоефективен алгоритъм за компресиране на данни без загуби. Той е разработен във Facebook от Yann Collect. Степента му на компресия е сравнима с алгоритъма DEFLATE, който се използва в ZLIB, но е по-бърз. Файловата система Btrfs поддържа алгоритъма за компресиране на данни ZSTD.
Можете също така да посочите нивото на компресия, което искате. Нивото може да бъде произволно число от 1 да се 15. По-високото ниво показва по-високо съотношение на компресия. И така, ниво 15 ще спести повече дисково пространство от ниво 1 (ниво 15 има по-високо ниво на компресия от ниво 1). Освен ако не посочите ниво на компресия ZSTD, което да използвате, файловата система Btrfs ще използва ниво на компресия ZSTD 3 по подразбиране.
Създаване на файлова система Btrfs:
За да експериментирате с компресиране на данни на ниво файлова система Btrfs, трябва да създадете файлова система Btrfs.
За да създадете файлова система Btrfs с етикета данни на sdb1 дял, изпълнете следната команда:
$ sudo mkfs.btrfs -L data / dev / sdb1
Монтирайте файлова система Btrfs с активирана компресия:
За да активирате компресирането на ниво файлова система Btrfs, трябва да монтирате файловата система Btrfs, която сте създали в sdb1 дял с компресирайте или компресираща сила опция за монтиране.
i) опция за компресиране: The компресирайте опцията за монтиране просто ще даде възможност за компресиране на ниво файлова система Btrfs. Файловата система Btrfs ще определи дали компресирането прави файла, който трябва да бъде компресиран, по-голям от оригиналния (некомпресиран) размер на файла. Ако компресията прави размера на файла по-голям от оригинала, файловата система Btrfs няма да компресира този файл.
ii) опция за монтиране със сила на компресиране: За разлика от компресирайте опция за монтиране, ако файловата система Btrfs е монтирана с помощта на компресираща сила опция за монтиране, тогава всеки файл във файловата система Btrfs ще бъде компресиран, дори когато компресията прави файла по-голям.
Създайте директория /данни със следната команда:
$ sudo mkdir -v / data
За да активирате LZO компресия, монтирайте файловата система Btrfs, която сте създали по-рано в /данни директория със следната команда:
$ sudo mount -o компресиране = lzo / dev / sdb1 / data
За да активирате сила LZO компресия, монтирайте файловата система Btrfs, която сте създали по-рано в директорията / data, както следва:
$ sudo mount -o compress-force = lzo / dev / sdb1 / data
По същия начин можете да монтирате файловата система Btrfs в /данни директория, както следва, за да активирате ZLIB компресия:
$ sudo mount -o compress = zlib / dev / sdb1 / data
За да зададете a ZLIB ниво на компресия (да кажем, ниво 7), можете да монтирате файловата система Btrfs в /данни директория, както следва:
$ sudo mount -o compress = zlib: 7 / dev / sdb1 / data
За да активирате ZSTD компресия, монтирайте файловата система Btrfs в /данни директория, както следва:
$ sudo mount -o compress = zstd / dev / sdb1 / data
За да зададете a ZSTD ниво на компресия (да кажем, ниво 10), можете да монтирате файловата система Btrfs в /данни директория, както следва:
$ sudo mount -o compress = zstd: 10 / dev / sdb1 / data
Файловата система Btrfs, която сте създали в sdb1 дялът трябва да бъде монтиран в /данни директория, както можете да видите на екранната снимка по-долу.
$ df -h / данни
Тестване на компресия на файлова система Btrfs:
За да тествам дали файловата система Btrfs компресира файловете, които са във файловата система Btrfs, ще монтирам файловата система Btrfs на /данни директория с компресираща сила опция. За демонстрацията ще използвам най-високото ниво на компресия на алгоритъма за компресиране ZSTD.
Първо демонтирайте файловата система Btrfs, която може да сте монтирали в /данни директория, както следва:
$ sudo umount / данни
Монтирайте файловата система Btrfs с най-високо ниво на компресия (ниво 15) от ZSTD алгоритъм за компресиране в /данни директория, както следва:
$ sudo mount -o compress-force = zstd: 15 / dev / sdb1 / data
Копирах за 717 MB на данни във файловата система Btrfs, монтирана на /данни директория. Както виждате, само 661 MB е дисково пространство се използва във файловата система Btrfs, въпреки че данните, съхранявани във файловата система, са 717 MB в размер. И така, компресията на ниво файлова система Btrfs работи.
Монтиране на файлова система с разрешено компресиране Btrfs при стартиране:
Ако искате да монтирате файловата система Btrfs автоматично по време на зареждане с активирана компресия (което най-вероятно правите), тогава този раздел е за вас.
Първо намерете UUID на файловата система Btrfs, който искате да активирате компресирането и да го монтирате автоматично по време на зареждане, както следва:
$ sudo btrfs файлова система show / data
Както можете да видите, UUID на файловата система Btrfs е a8e75a9d-a6f6-4c6e-be41-c10bc1077aa2 в моя случай. За вас ще е различно. Така че, не забравяйте да го замените от сега нататък.
Отвори / и т.н. / fstab файл с нано текстов редактор, както следва:
$ sudo nano / etc / fstab
Въведете следния ред в края на / и т.н. / fstab файл:
UUID = a8e75a9d-a6f6-4c6e-be41-c10bc1077aa2 / data btrfs compress = lzo 0 0ЗАБЕЛЕЖКА: Заменете UUID на файловата система Btrfs с вашата. Също така променете опцията за монтиране и алгоритъма за компресиране, както искате.
След като приключите, натиснете
За да влязат в сила промените, рестартирайте компютъра си със следната команда:
$ sudo рестартиране
След като компютърът ви се зареди, файловата система Btrfs трябва да бъде монтирана в /данни директория, както можете да видите на екранната снимка по-долу.
$ df -h / данни
Заключение:
В тази статия съм обсъждал алгоритмите за компресиране, поддържани от файловата система Btrfs: LZO, ZLIB и ZSTD. Също така ви показах как да активирате компресиране на ниво файлова система във файлова система Btrfs.