Эта функция файловой системы сэкономит вам много места на диске и сэкономит много времени, которое вы бы потратили на сжатие файлов вручную.
В этой статье я покажу вам, как включить сжатие на уровне файловой системы Btrfs в файловой системе Btrfs. Итак, приступим.
Предпосылки:
Чтобы попробовать примеры из этой статьи,
- На вашем компьютере должна быть установлена файловая система Btrfs.
- У вас должен быть жесткий диск или SSD с как минимум 1 свободным разделом (любого размера).
У меня жесткий диск 20 ГБ 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 и Хаффмана. Файловая система 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 данные / dev / sdb1
Смонтируйте файловую систему Btrfs с включенным сжатием:
Чтобы включить сжатие на уровне файловой системы Btrfs, вы должны смонтировать файловую систему Btrfs, которую вы создали, на sdb1 раздел с компресс или же сила сжатия вариант крепления.
i) вариант сжимающего крепления: В компресс опция mount просто включит сжатие на уровне файловой системы Btrfs. Файловая система Btrfs определит, увеличивает ли сжатие сжатого файла исходный (несжатый) размер файла. Если сжатие увеличивает размер файла по сравнению с исходным, файловая система Btrfs не сжимает этот файл.
ii) вариант крепления с усилием сжатия: в отличие от компресс параметр монтирования, если файловая система Btrfs смонтирована с использованием сила сжатия опция монтирования, то каждый файл в файловой системе Btrfs будет сжат, даже если сжатие увеличивает размер файла.
Создать каталог /данные с помощью следующей команды:
$ sudo mkdir -v / данные
Включить LZO сжатие, смонтируйте файловую систему Btrfs, которую вы создали ранее в /данные каталог с помощью следующей команды:
$ sudo mount -o compress = 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
Чтобы установить ZLIB уровень сжатия (скажем, уровень 7), вы можете смонтировать файловую систему Btrfs в /данные каталог следующим образом:
$ sudo mount -o compress = zlib: 7 / dev / sdb1 / data
Включить ZSTD сжатие, смонтируйте файловую систему Btrfs в /данные каталог следующим образом:
$ sudo mount -o compress = zstd / dev / sdb1 / data
Чтобы установить 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 с наивысшим уровнем сжатия (level 15) принадлежащий ZSTD алгоритм сжатия в /данные каталог следующим образом:
$ sudo mount -o compress-force = zstd: 15 / dev / sdb1 / data
Я скопировал о 717 МБ данных о файловой системе Btrfs, смонтированной на /данные каталог. Как видите, только 661 МБ используется ли дисковое пространство в файловой системе Btrfs, даже если в файловой системе хранятся 717 МБ по размеру. Итак, сжатие на уровне файловой системы Btrfs работает.
Монтирование файловой системы Btrfs с включенным сжатием при загрузке:
Если вы хотите автоматически монтировать файловую систему Btrfs во время загрузки с включенным сжатием (что вы, скорее всего, делаете), то этот раздел для вас.
Сначала найдите UUID файловой системы Btrfs, которую вы хотите включить сжатие и автоматически монтировать во время загрузки, как показано ниже:
Показать / данные файловой системы $ sudo btrfs
Как видите, UUID файловой системы Btrfs равен a8e75a9d-a6f6-4c6e-be41-c10bc1077aa2 в моем случае. Для тебя будет иначе. Так что не забудьте заменить его теперь своим.
Открой / etc / fstab файл с нано текстовый редактор следующим образом:
$ sudo nano / etc / fstab
Введите следующую строку в конце / etc / fstab файл:
UUID = a8e75a9d-a6f6-4c6e-be41-c10bc1077aa2 / data btrfs compress = lzo 0 0ПРИМЕЧАНИЕ: Замените UUID файловой системы Btrfs своим. Также измените параметр монтирования и алгоритм сжатия по своему усмотрению.
Когда вы закончите, нажмите
Чтобы изменения вступили в силу, перезагрузите компьютер с помощью следующей команды:
$ sudo перезагрузка
После загрузки компьютера файловая система Btrfs должна быть смонтирована в /данные каталог, как вы можете видеть на скриншоте ниже.
$ df -h / данные
Заключение:
В этой статье я обсудил алгоритмы сжатия, поддерживаемые файловой системой Btrfs: LZO, ZLIB и ZSTD. Я также показал вам, как включить сжатие на уровне файловой системы в файловой системе Btrfs.