Назад | Перейти на главную страницу

Интеграция BTRFS и Luks

Я хотел бы создать конфигурацию RAID1 / BTRFS / Luks. На данный момент я обнаружил следующее:

Зашифрованная файловая система Btrfs может быть создана поверх подсистемы шифрования диска dm_crypt и уровня Linux Unified Key Setup (LUKS), который поддерживает множество стандартов шифрования. Однако этот подход лишает некоторых возможностей и преимуществ использования Btrfs на необработанных блочных устройствах, таких как автоматическая поддержка и обнаружение твердотельных дисков.

Как лучше всего реализовать это решение?

/dev/sda1 < 500 Gb 
/dev/sdb1 < 500 Gb 

/dev/md0 < RAID1 stripe < Luks < BTRFS < snapshots

Будет ли такая установка работать?

Я не вижу другого способа сделать это без потери возможностей моментальных снимков BTRFS. Я мог бы настроить рейд без mdadm с помощью btrfs, например:

mkfs.btrfs -m raid1 -d raid1 /dev/sda /dev/sdb

но затем я получил btrfs прямо наверху, где я могу отбрасывать только зашифрованные изображения luks. Даже если 1 бит изменен внутри изображения, это повлияет на снимки btrfs (иначе будет скопирован весь файл изображения снова).

Важно отметить, что если вы используете md для зеркалирования и создаете btrfs поверх него с помощью «-d single», вы потеряете возможность восстановления после ошибок bitrot (btrfs все равно их обнаружит)

Итак, лучшим решением для вашего случая будет ваш второй пример:

raw device -> LUKS -> btrfs RAID1 с устройств LUKS

кредит уже ответил за вас на часть TRIM / Discard, и мне нечего добавить туда

Однако этот подход лишает некоторых возможностей и преимуществ использования Btrfs на необработанных блочных устройствах, таких как автоматическая поддержка и обнаружение твердотельных дисков.

cryptsetup поддерживает передачу запросов TRIM; вам просто нужно использовать аргумент --allow-discards при выполнении cryptsetup open, или используя discard как вариант при использовании /etc/crypttab. Сделайте это перед выполнением mkfs.btrfs и вы увидите, что он обнаруживает SSD и включает TRIM. Вы также можете убедиться, что используете discard,ssd как опции при дальнейшем монтировании файловой системы.

Даже если 1 бит изменен внутри изображения, это повлияет на снимки btrfs (иначе будет скопирован весь файл изображения снова).

BTRFS обнаружит любое повреждение битов в блоке данных / метаданных и исправит этот блок, используя другую копию (он не будет копировать файл). Снимки ссылаются на существующие блоки данных / метаданных и обычно не занимают лишнего места. Если впоследствии часть блока (часть файла) изменится, копия будет сделана и на нее будет ссылаться отдельно (файл не будет копироваться, если блок не содержит весь файл). Неизмененный блок не будет скопирован, будет только ссылка.