Я хотел бы использовать BTRFS RAID1 с dm_crypt на микросервере. Сложность в том, что я не очень разбираюсь в том, как работают файловые системы и LUKS. Допустим, у нас есть 2 раздела на диске и мы выполняем шифрование всего диска. Означает ли это, что оба раздела будут зашифрованы, и, не зная ключа, я не смогу определить, какие файловые системы у них есть? Если это так, то я не понимаю, как можно иметь незашифрованный загрузочный раздел (необходимый для загрузки dm_crypt) на таких дисках или как будет работать btrfs raid1, если я зашифрую оба диска, и они не узнают друг друга, пока оба из них расшифрованы? С другой стороны, если dm_crypt использует разделы btrfs для хранения данных, зашифрованных, например, в огромном файле, тогда скраб btrfs не сработает только с этим огромным файлом, и ни одна неисправимая ошибка не уничтожит весь контент дисков ?
Я прочитал несколько текстов в теме. В соответствии с ними разделение и форматирование - это отдельные процессы, поэтому мне не нужно указывать тип файловой системы, разбивая блочное устройство (ssd / hdd / virtual?). Dm-crypt может преобразовать незашифрованное блочное устройство в зашифрованное, зашифровывая каждый блок (или сектор?) Индивидуально, и btrfs может жить на этом зашифрованном блочном устройстве.
Примечание: для правильной работы dmcrypt + btrfs требуется ядро 4+; В ядрах 3.2 - проблемы совместимости и безопасности, в ядрах 4.0 - проблемы с производительностью.
Основная проблема этой настройки в том, что поскольку raid1 будет на верхнем уровне, оба hdds / ssds будут шифроваться по-разному, что означает снижение производительности и много ненужного шифрования. Согласно другим текстам / ответам, которые я прочитал, сейчас нет способа сделать это. Люди работают над шифрованием btrfs, но пока нет ничего стабильного. В настоящее время стековый подход с ecryptfs - часто задаваемые вопросы по btrfs - намного медленнее, чем dm-crypt, так что это тоже не будет хорошим решением. Другой вариант - использование zfs, которая поддерживает шифрование, но afaik. он потребляет много памяти по сравнению с btrfs.
обновление (январь 2019 г.):
Я также проверил zfs, у него хорошее встроенное шифрование, и вы также можете зашифровать раздел подкачки, так что я думаю, что это путь. Он также имеет некоторые недостатки, он использует больше памяти и не так просто добавить новый диск, как с btrfs.
Означает ли это, что оба раздела будут зашифрованы, и, не зная ключа, я не смогу сказать, какие файловые системы у них есть?
Да, оба раздела будут зашифрованы как LUKS перегородки. Вы сможете сказать, что они являются зашифрованными разделами LUKS. Без ключа (и / или ключевой фразы) вы не сможете определить, что находится внутри раздела.
Если так, то я не понимаю, как можно получить незашифрованный загрузочный раздел ...
Либо (а) загрузочный раздел является отдельным [и незашифрованным] разделом, либо (б) загрузчик [GRUB?] Запрашивает пароль и знает, как расшифровать и смонтировать загрузочный раздел. (Обычно я использую незашифрованный загрузочный раздел с Ubuntu. Однажды я видел зашифрованный загрузочный раздел при установке Manjaro Linux.)
Основная проблема с этой настройкой, так как raid1 будет на верхнем уровне оба hdds / ssds будут зашифрованы по-разному, что означает снижение производительности и много ненужного шифрования.
Я слышал, что издержки шифрования диска незначительны. У меня никогда не было проблем с этим. Но тогда я никогда не измерял влияние на производительность, и мне не нужен высокоскоростной дисковый ввод-вывод в моей системе.
В любом случае, вы будете платить только за многократное шифрование при записи данных. При чтении нужно будет прочитать только одну копию данных.
Я использую LUKS + ZFS + RAID1, но только для /home
. Я использую ext4
для /
и ext2
для /boot
.
(Обратите внимание, что если у вас N> 2 дисков, режим BTRFS «RAID1» на самом деле не RAID1, так как BTRFS создаст только 2 копии ваших данных, а не N копий, как того требует RAID1. Другими словами, BTRFS «RAID1» «с N> 2 дисками вы получаете больше места для хранения, а не больше избыточности.)