Во-первых, порядок LUKS и LVM зависит от того, хотите ли вы иметь разные пароли LUKS или другие настройки для разных LV. Если, скажем, вам нужно установить разные пароли для разных LV, вам определенно нужно поставить LUKS поверх LVM. С другой стороны, если все LV имеют один и тот же пароль и настройки, как keylen, вам нужно, чтобы LUKS был ниже LVM, чтобы вам не приходилось сталкиваться с накладными расходами при наличии более одного раздела LUKS (подумайте, что вы придется делать, когда нужно сменить пароль).
Во-вторых, вы почти всегда хотите, чтобы RAID был на самом низком уровне, чтобы после смерти одного диска его можно было легко и прозрачно заменить. Если бы вы установили RAID поверх LVM, вам пришлось бы заменить PV, когда один из дисков умирает, что было бы большой болью в шее. Кроме того, RAID поверх LVM полностью уничтожил бы гибкость LVM. Тогда вам, вероятно, потребуется снова установить второй уровень LVM поверх RAID!
Поэтому, поскольку в большинстве случаев людям просто нужно использовать один пароль, этого будет достаточно:
RAID -> LUKS -> LVM -> ext4
В некоторых случаях вам может понадобиться использовать LVM для объединения нескольких RAID-устройств в большой том, тогда вы можете сделать следующее:
RAID -> LVM -> LUKS (-> LVM) -> ext4
Теоретически порядок не должен сильно влиять на производительность, если каждый слой настроен правильно, и на практике я не видел, чтобы эта настройка имела особенно плохую производительность. Самое главное, вероятно, выравнивание:
- убедитесь, что ваши разделы выровнены на 1 МБ (очень важно для SSD);
- для уровня RAID выбирайте размер фрагмента с умом;
- для LVM убедитесь, что вы установили
--dataalignment
в соответствии с размером чанка RAID (это может быть полезно).
Кроме того, если на SSD, убедитесь , что вы включите LUKS TRIM/DISCARD сквозным путем добавления rd.luks.options=discard
в /etc/default/grub
и т.д. / по умолчанию / личинку и discard
в / и /etc/crypttab
(Это то , что я делаю на Red Hat / Fedora Linux. Может быть немного по-другому на Debian.) LVM и RAID должны автоматически поддерживать сброс, если вы используете новое ядро.
Конечно, это всего лишь общие рекомендации. Если у вас есть особые потребности, не стесняйтесь обновить свой вопрос или комментарий здесь.