Група томів LVM, що ділиться між господарем KVM / libvirt та гостями: це погана ідея?


12

Щойно я створив новий блискучий новий хост віртуальної машини на базі KVM / libvirt, що містить 4 жорстких диска SATA II та працює під керуванням CentOS 5.5 x86_64.

Я вирішив створити диски віртуальної машини як логічні томи в групі томів LVM, керованої як пул зберігання libvirt, замість звичної практики створення дисків як qcow-образів.

Я не можу визначитися з тим, чи слід створювати логічні томи віртуальної машини в групі томів хосту VM або в спеціальній групі томів.

Який спосіб вибрати, і чому?


Спосіб 1: Використовуйте групу гучності хоста VM

Впровадження:

  • невеликий RAID1, md0що містить /bootфайлову систему
  • великий RAID10, що md1займає залишок місця, який містить групу об'ємів LVM vghost. vghostмістить кореневу файлову систему хоста VM та розділ swap
  • створити віртуальні машинні диски як логічні обсяги в vghostміру необхідності

Плюси:

  • якщо кореневій файловій системі хоста VM не вистачає місця, я можу виділити більше місця vghostз відносної легкості
  • Система вже працює і працює (але починати не варто багато чого)

Мінуси:

Незважаючи на те, що цей метод, здається, працює, я не можу похитнути почуття, що це якось погана ідея. Я відчуваю, що:

  • це може якось бути ризиком для безпеки
  • в якийсь момент у майбутньому я можу знайти обмеження в налаштуванні, і я хочу, щоб я використовував спеціальну групу
  • система (CentOS, libvirt і т. д.) насправді не може бути розроблена для такого використання, і тому в певний момент я можу пошкодити / втратити файли та / або файлову систему хоста VM

Спосіб 2: Використовуйте виділену групу гучності

Впровадження:

  • те ж саме, що md0і md1в способі 1, за винятком того, що він md1просто достатньо великий, щоб містити для хоста VM (наприклад, 5-10 Гб)
  • великий RAID10, що md2займає залишок місця. md2містить групу томів LVM vgvms, логічні логічні томи яких повинні використовуватися виключно віртуальними машинами

Плюси:

  • Я можу повозитися, vgvmsне боячись зламати хост ОС
  • це здається більш елегантним і безпечним рішенням

Мінуси:

  • якщо у файловій системі хоста VM не вистачає місця, мені доведеться перемістити частини його файлової системи (наприклад, / usr або / var) на vgvms, що не здається дуже приємним.
  • Мені потрібно перевстановити хост-операційну систему (що, як було сказано раніше, я не дуже проти цього робити)

ОНОВЛЕННЯ №1:

Однією з причин, чому я переживаю, що у методі 2 не вистачає простору дискового хоста VM, є те, що я не знаю, чи хост VM досить потужний для запуску всіх сервісів у віртуальних машинах, тобто. Можливо, мені доведеться перенести деякі / всі сервіси з віртуальних машин на хост ОС.

Специфікація апаратного забезпечення хостингу VM:

  • Процесор Phenom II 955 X4 Black Edition (3,2 ГГц, 4-ядерний процесор)
  • 2x4 Гб оперативної пам'яті Kingston PC3-10600 DDR3
  • Gigabyte GA-880GM-USB3 материнська плата
  • 4x WD Caviar RE3 500 ГБ SATA II HDD (7200 об / хв)
  • Блок живлення Antec BP500U Basiq 500W ATX
  • Корпус CoolerMaster CM 690

ОНОВЛЕННЯ №2:

Однією з причин, чому я вважаю, що система може не бути розроблена для використання VG хоста як пулу зберігання libvirt у Способі 1, - це деяка поведінка, яку я помітив у virt-менеджері:

  • додавши, він скаржився, що не може активувати VG (очевидно, бо, хост ОС вже активував його)
  • після видалення він відмовився це робити, оскільки не міг деактивувати VG (очевидно, тому що хост-операційна система все ще використовує root та swap LV)

Я поставив запитання (# 272324), де ваше рішення №1 було б дуже гарною відповіддю! І саме це я і пішов у подібній установці - і я поки що цілком задоволений цим. Однак у мене є проблема, коли diskIO у гостях відбувається повільніше, ніж якщо б "монтувати цикл" той же LV в хості.
stolsvik

Відповіді:


3

Добре продумане запитання!

Я б пішов із методом 2, але це більше особисті переваги. Для мене мінуси методу 2 не є великою проблемою. Я не бачу хост-ОС, що переростає її 5-10 Гб розділ, якщо тільки ви не почнете встановлювати на ньому додаткові речі, чого ви насправді не повинні. Для простоти та безпеки хост-операційна система справді повинна бути мінімально встановленою, не запускаючи нічого, крім мінімального необхідного для адміністрування (наприклад, sshd).

Мінуси методу 1 насправді не є проблемою, IMO. Я не думаю, що не було б ніякого додаткового ризику для безпеки, оскільки якщо вкорінений VM якимось чином може вирватися зі свого розділу та інфікувати / пошкодити інші розділи, наявність хост-ОС на окремій VG може не мати ніякої різниці. Інші два мінуси - це не те, з чим я можу говорити з прямого досвіду, але я моїй кишці каже, що CentOS, LVM та libvirt є досить гнучкими та надійними, щоб не турбуватися про них.

EDIT - Відповідь на оновлення 1

У наші дні хіт на віртуалізацію продуктивності дуже низький, особливо з використанням процесорів із вбудованою підтримкою, тому я не думаю, що переміщення сервісу з гостьового віртуального комп'ютера в ОС-хост ніколи не варто було б робити. Ви могли б отримати збільшення швидкості на 10%, запустивши на «голому залізі», але ви втратите переваги наявності невеликої, щільний, безпечний ОС хоста і потенційно вплинути на стабільність усього сервера. Не варто, ІМО.

Зважаючи на це, я все одно віддаю перевагу методу 2.

Відповідь на оновлення 2

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


Дякую. Я додав до свого запитання 2 оновлення, які далі пояснюють, чому я перерахував деякі мінуси, на які ви звернулися. Чи оновлення взагалі змінюють вашу думку?
Мосно

@mosno: Оновлено мою відповідь у відповідь на ваші оновлення.
Стівен у понеділок

Дякую всім за ваші відповіді, всі мені були корисні, і важко було вибрати, чию відповідь прийняти. Я вибираю Стівена, тому що я вважаю, що докладаю максимальних зусиль для вирішення поставленого питання. Для запису, хоча я погоджуюся, що метод 2, мабуть, кращий, я вирішив залишитися з Методом 1, оскільки він працює і через часові обмеження.
Мосно

1
Крім того, я зараз переживаю метод 1, тому що думаю, що було б вивчити обмеження цього методу. Наприклад, я дізнався, що якщо в гостьовій ОС ви створюєте PG LVM безпосередньо на пристрій (наприклад, пристрій / dev / vda замість розділу / dev / vda1), то pvscan хост-OS перераховує ПВ гостя (тобто. використовувати / dev / vda1, не / dev / vda).
Мосно

1

Поки лише одна система намагається використовувати будь-який заданий НН у режимі читання / запису в будь-який час, можливо використовувати той же VG для господаря та гостей. Якщо кілька систем намагаються записати в один і той же LV, то це призведе до пошкодження файлової системи.


безумовно, є підвищений рівень складності управління цим. Це розумно .., можливо, занадто розумно.
Двірник Unix

@ user37899: це звичайний спосіб поводження з LVM
Хав'єр

дякую, але я це розумію; Я не планував цього робити.
Мосно

коли я роблю "lvscan" на хост-ОС, він повідомляє LV гостя як "АКТИВНІ". Хост не має встановленого НН. Чи LV просто перебуває в "АКТИВНОМ" стані "режим читання / запису", чи ви маєте на увазі явне кріплення до файлової системи хоста?
Мосно

Я маю на увазі явне кріплення r / w.
Ігнасіо Васкес-Абрамс

1

Ви можете поглянути на це, можливо, подумайте і подивіться, як цей проект робить те, про що ви говорите.

ProxmoxVE - це голий металевий KVM-хост, який використовує перл-реалізацію libvirt, а не важчий аналог RHEL. Він реалізує обидва сценарії.

Віртуальні диски .sraw та рідкісні, схожі на .qcow, але швидші.

Формати зображень диска qcow & vmdk також підтримуються, але, думаю, можуть бути обмежені обмеження LVM. Я не використовую їх, тому не можу багато про що сказати.

Зберігання LVM поділяється між VM на вузлі і може бути пристроями DRBD.

Що стосується спільного використання VG простору ОС, то єдиним обмеженням, на яке слід звернути увагу, є розмір знімка під час резервного копіювання. Тут це значення можна змінити у конфігураційному файлі, і я іноді бачу на форумах, де люди мусили його змінити, але параметри за замовчуванням служать мені вже пару років - навіть з величезними віртуальними дисками.

Деталі зберігання LVM PVE:

http://pve.proxmox.com/wiki/Storage_Model#LVM_Groups_with_Network_Backing

Ось так викладаються VG:

Знайдено групу томів "LDatastore1" за допомогою метаданих типу lvm2

Знайдено групу томів "LDatastore0" за допомогою метаданих типу lvm2

Знайдено групу томів "pve" за допомогою метаданих типу lvm2

Це мої НН:

ACTIVE '/ dev / LDatastore1 / vm-9098-disk-1' [4,00 ГБ] успадковується

ACTIVE '/ dev / LDatastore1 / vm-7060-disk-1' [2,00 ГБ] успадковується

ACTIVE '/ dev / LDatastore1 / vm-5555-disk-1' [8,00 ГБ] успадковується

ACTIVE '/ dev / LDatastore0 / vm-4017-disk-1' [8,00 ГБ] успадковується

ACTIVE '/ dev / LDatastore0 / vm-4017-disk-2' [512,00 ГБ] успадковується

ACTIVE '/ dev / LDatastore0 / vm-7057-disk-1' [32,00 ГБ] успадковується

ACTIVE '/ dev / LDatastore0 / vm-7055-disk-1' [32,00 ГБ] успадковується

ACTIVE '/ dev / LDatastore0 / vm-6030-disk-1' [80.01 ГБ] успадковується

ACTIVE '/ dev / pve / swap' [3,62 ГБ] успадковується

ACTIVE '/ dev / pve / root' [7,25 ГБ] успадковується

ACTIVE '/ dev / pve / data' [14,80 ГБ] успадковується

Це LVM на RAID10, виготовлений із 6 7200 об / хв приводами Seagate Barracuda SATA:

BOGOMIPS процесора: 53199.93

REGEX / SECOND: 824835

Розмір HD: 19,69 ГБ (/ dev / mapper / LDatastore0-testlv)

ПОВЕРНЕННІ ЧИТАННЯ: 315,17 Мб / сек

СЕРЦІЙНИЙ ШЛЯХ ШОКУ: 7,18 мс

FSYNCS / SECOND: 2439.31

І це LVM на єдиному SATA SSD Intel X25-E, такому ж VG, як і вищезгадані / dev / pve / дані, де живуть віртуальні машини:

BOGOMIPS процесора: 53203.97

REGEX / SECOND: 825323

Розмір HD: 7,14 ГБ (/ dev / mapper / pve-root)

ПОВЕРНЕННІ ЧИТАННЯ: 198,52 Мб / сек

СЕРЦІЙНИЙ ПОШУК: 0,26 мс

FSYNCS / SECOND: 1867.56

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.