Найкраще замовлення RAID, LVM та LUKS


13

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

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

Існують різні способи зробити це. Один із способів - це: спочатку налаштувати RAID-1 за допомогою mdadm. Потім встановіть ПН LVM для покриття створеного / dev / mdX. Потім встановіть LV та зашифруйте ті, хто використовує LUKS. Потім відформатуйте їх за допомогою файлової системи, скажімо, ext4. У результаті виходить такий макет:

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

Або я міг би зробити це в іншому порядку:

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

А може навіть:

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

І навіть взагалі інший порядок.

Які переваги та недоліки мають різні підходи? Що дає найкращі показники, безпеку, ремонтопридатність тощо?

Чи є "Найкращий спосіб" зробити це?

Відповіді:


18

По-перше, порядок LUKS та LVM залежить від того, чи потрібно мати різні паролі LUKS або інші параметри для різних LV. Якщо ви скажете, вам потрібно встановити різні паролі для різних LV, вам обов'язково потрібно поставити LUKS поверх LVM. З іншого боку, якщо всі НН мають той самий пароль та параметри, як 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 повинні автоматично підтримувати відкидання якщо ви використовуєте нове-ish ядро.

Звичайно, це лише загальні вказівки. Якщо у вас є особливі потреби, не соромтесь оновлювати своє запитання чи коментар тут.


Дякуємо за швидку відповідь. Хороші бали! Чи можете ви прокоментувати відмінності в продуктивності, якщо вони нетривіальні?
Томас

Оновлено деякими примітками про ефективність.
Ян Лі

1
Слід також зазначити, що не завжди потрібно використовувати MDADM (хоча, я думаю, це було б найбільш типовим рішенням). - LVM пропонує RAID (ака дзеркальне відображення)
davidgo

@davidgo Так. Я думав про те, щоб згадати про це, але не зробив цього, тому що я не впевнений, чи це правильний шлях. Я не пробував це особисто (в основному я використовую більш високі рівні RAID, наприклад, 5 або 6), і читав неоднозначні відгуки про дзеркальне відображення LVM, про що згадується в деяких відповідях у цьому запитанні .
Ян Лі

@Yan, я згоден. Я теж завжди використовую mdadm RAid (1)
davidgo

4

Якщо ви хочете, щоб усі 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) та розширіть групу гучності. Якщо кореневий FS знаходиться в групі томів, вам потрібно буде додати ще один rd.luks.uuidзапис до cmdline ядра (редагувати / тощо / за замовчуванням / grub та відновити grub.cfg.)

LUKS -> RAIDзазвичай неправильно - дані будуть шифруватися кілька разів, споживаючи більше циклів процесора без посилення. Також є ймовірність помилкової заміни невдалого диска на новий без встановлення LUKS, коли диск виходить з ладу.

Розширення та скорочення:

При подовженні завжди йдіть від нижньої частини стека, коли стискаєте зверху.

Приклад:

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

  1. Додайте нові диски та створіть md RAID.
  2. Додайте mdX пристрій до групи гучності.
  3. Розширити логічний обсяг.
  4. Розширення пристрою LUKS
  5. Розширити FS.

Скорочення RAID -> LVM -> LUKS -> FS :

  1. Стиснення ФС.
  2. Стискає пристрій ЛУКС.
  3. Зменшення логічного обсягу.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.