11

Я собираюсь установить файловый сервер с Debian GNU/Linux 8.

Я хочу иметь программный RAID-1 с использованием mdadm, а также зашифрованные диски с использованием LUKS. Мне также нравится гибкость наличия LVM.

Есть разные способы сделать это. Один из способов: сначала настроить RAID-1, используя mdadm. Затем настройте LVM PV, чтобы покрыть созданный /dev /mdX. Затем настройте LV и зашифруйте тех, кто использует LUKS. Затем отформатируйте их с помощью файловой системы, скажем, ext4. Это приводит к макету, как это:

RAID --> LVM --> LUKS --> ext4

Или я мог бы это в другом порядке:

RAID --> LUKS --> LVM --> ext4

Или, может быть, даже:

LVM --> RAID --> LUKS --> ext4

И, может быть, даже другой порядок.

Каковы преимущества и недостатки различных подходов? Что дает лучшую производительность, безопасность, ремонтопригодность и т.д.?

Есть ли лучший способ сделать это?

2 ответа2

14

Во-первых, порядок 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. убедитесь, что ваши разделы выровнены на 1 МБ (очень важно для SSD);
  2. для уровня RAID выбирайте размер фрагмента с умом;
  3. для LVM убедитесь, что вы установили --dataalignment в соответствии с размером чанка RAID (это может быть полезно).

Кроме того, если на SSD, убедитесь , что вы включите LUKS TRIM/DISCARD сквозным путем добавления rd.luks.options=discard в /etc/default/grub и т.д. / по умолчанию / личинку и discard в / и /etc/crypttab (Это то , что я делаю на Red Hat / Fedora Linux. Может быть немного по-другому на Debian.) LVM и RAID должны автоматически поддерживать сброс, если вы используете новое ядро.

Конечно, это всего лишь общие рекомендации. Если у вас есть особые потребности, не стесняйтесь обновить свой вопрос или комментарий здесь.

3

Если вам нужны все RAID, LUKS и LVM, я бы порекомендовал RAID -> LUKS -> LVM -> FS . RAID --> LVM --> LUKS --> LVM --> FS не лучше, чем RAID -> LUKS -> LVM - для расширения томов достаточно добавить больше устройств RAID -> LUKS в группу томов.

RAID --> LVM --> LUKS --> FS - шифрование только определенных логических томов имеет функцию не шифрования всего по умолчанию (может рассматриваться как преимущество или недостаток), но это облегчит расширение корневой FS.

Расширение LUKS поверх логических томов является распространенным источником проблем, когда пользователи расширяют / изменяют их размер в неправильном порядке. Наличие LUKS на всем устройстве md RAID упростит изменение размера - добавьте новое устройство md, создайте LUKS поверх этого, добавьте устройство в / etc / crypttab (по крайней мере, в клонах Fedora и RHEL) и расширите свою группу томов. Если root FS входит в группу томов, вам нужно добавить еще одну запись rd.luks.uuid в ядро cmdline (отредактируйте / etc / default / grub и перегенерируйте grub.cfg.)

LUKS -> RAID обычно неверен - данные будут зашифрованы несколько раз, потребляя больше циклов ЦП без усиления. Существует также вероятность ошибочной замены вышедшего из строя диска новым без настройки LUKS в случае сбоя диска.

Расширение и сокращение:

При вытягивании всегда уходите с низа стопки, при сжимании сверху.

Пример:

Расширение RAID -> LVM -> LUKS -> FS (первые два шага необязательны, если в группе томов достаточно свободного места):

  1. Добавьте новые диски и создайте md RAID.
  2. Добавьте устройство mdX в группу томов.
  3. Расширьте логический том.
  4. Удлините устройство LUKS.
  5. Расширить ФС.

Сжатие RAID -> LVM -> LUKS -> FS:

  1. Сожмите ФС.
  2. Термоусадочное устройство LUKS.
  3. Сжатие логического тома.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .