Дедупликация btrfs. Bees

Дедупликация btrfs. Bees

2022-05-28 · 2 мин. для прочтения

BEES (Best-Effort Extent-Same) — агент дедупликации btrfs.

Содержание

1 Общая информация

2 Плюсы и минусы

2.1 Сильные стороны

  • Хеш-таблица с эффективным использованием места, можно использовать всего 1 ГБ хеш-таблицы на 10 ТБ уникальных данных.
  • Демон постепенно выполняет дедупликацию новых данных, используя поиск по дереву btrfs.
  • Поддержка сжатия btrfs, дедупликация комбинации сжатых и несжатых файлов.
  • Постоянная хеш-таблица для быстрого перезапуска после выключения.
  • Дедупликация всей файловой системы, включая моментальные снимки.
  • Постоянный размер хеш-таблицы: использование оперативной памяти не увеличивается, если набор данных становится больше.
  • Автоматическое саморегулирование в зависимости от загрузки системы.

2.2 Слабые стороны

  • Дедупликация только всей файловой системы.
  • Требуются привилегии root (или CAP_SYS_ADMIN).
  • Первый запуск может увеличить использование пространства метаданных, если существует много моментальных снимков.
  • Постоянный размер хеш-таблицы: использование оперативной памяти не уменьшается, если набор данных становится меньше.
  • Работает только с btrfs.

3 Установка

  • Gentoo:
    1emerge bees
    

4 Использование

4.1 Запуск

  • Для запуска используем скрипт beesd (в исходниках scripts/beesd).
  • Посмотрим идентификаторы UUID файловых систем:
    1btrfs filesystem show
    
  • Активируем демон дедупликации, указав UUID в качестве идентификатора инстанса. Пусть UUID="f8963df3-1320-4bc0-a125-62be185b029e", тогда команда активации будет иметь вид:
    1systemctl enable --now beesd@f8963df3-1320-4bc0-a125-62be185b029e
    

4.2 Конфигурация

  • Для работы демона необходим файл конфигурации.
  • Шаблон для файла конфигурации:
    1/etc/bees/beesd.conf.sample
    
  • Скопируйте его, задав произвольное имя (например, root.conf):
    1cp /etc/bees/beesd.conf.sample /etc/bees/root.conf
    
  • В этом файле задайте поле UUID с необходимым значение.
  • Для запуска необходимо наличие файла с расширением .conf и поля UUID.
  • Остальные поля конфигурации настраиваются по желанию. В противном случае используются значения по умолчанию.