Як побудувати ha кластер в vmware v-grade
1. Загальні відомості
High Availability - технологія кластеризації, створена для підвищення доступності системи, і дозволяє, в разі виходу з ладу одного з вузлів ESXi, перезапустити його віртуальні машини на інших вузлах ESXi автоматично, без участі адміністратора.
Для того щоб створити HA кластер, нам необхідно, щоб всі віртуальні машини цього кластера зберігалися на спільному сховищі даних *. При цьому якщо у нас виходить з ладу один з вузлів ESXi, все віртуальні машини з цього вузла будуть запущені на вільних слотах (потужностях) інших ESXi вузлів кластера.
* Загальна сховище даних може являти собою не тільки «залізну» СГД, але і бути програмним. У VMware для цієї мети є продукт vSAN (virtual storage area network). У RedHat є GlusterFS і т.д.
2. Список термінів
High Availability (HA) - технологія високої доступності вузлів ESXi;
Isolation response (IR) - параметр, що визначає дію ESXi-хоста при припиненні їм отримання сигналів доступності кластера. При створенні кластера на кожен ESXi-хост встановлюється HA Agent, який буде обмінюватися сигналами доступності (Heartbeat);
Reservation - параметр, що розраховується на основі максимальних окремих характеристик всіх ВМ в кластері і надалі використовується для розрахунку Failover Capacity;
Failover Capacity (FCap) - параметр, що визначає реальну відмовостійкість. Вимірюється в цілих числах і позначає, яку максимальну кількість серверів в кластері може вийти з ладу, після чого сам кластер все ще буде продовжувати функціонувати;
Number of host failures allowed (NHF) - параметр задається адміністратором. Визначає цільовий рівень відмовостійкості. Така кількість вузлів ESXi може одночасно вийти з ладу;
Стан Admission Control (стан ADC) - автоматично розраховується як відношення Failover Capacity до Number of host failures allowed;
Параметр Admission Control (параметр ADC) - призначається адміністратором. Визначає поведінку віртуальних машин при недостатності слотів для їх запуску;
Restart Priority (RP) - пріоритет запуску машин після падіння одного з вузлів ESXi, що входять в кластер.
3. Послідовність створення HA кластера
Визначаємо кількість і розмір слотів на вузлах ESXi (Reservation);
Встановлюємо значення Number of host failures allowed (NHF);
Розраховуємо параметр Failover Capacity (FCap);
Порівнюємо NHF і FCap. Якщо NHF більше FCap. нам необхідно:
Або докупити сервера;
Або знизити значення NHF;
Або оптимізувати Reservation;
Або встановити параметр ADC в Allow virtual machine to be started even if they violate availability constraints;
Встановлюємо параметр Admission Control в один зі станів;
Визначаємо поведінку хоста при припиненні отримання сигналів доступності від інших вузлів (Isolation Response);
Призначаємо віртуальним машинам Restart Priority;
4. Isolation Response
Дії при припиненні отримання сигналів доступності в кластері HA визначаються значенням Isolation Response, що визначає дію вузла ESXi при припиненні їм отримання сигналів доступності кластера (Heartbeat). Припинення отримання сигналів доступності відбувається через «ізоляції» ESXi, наприклад, в разі відмови мережевої карти.
Існує кілька передбачуваних сценаріїв розвитку подій:
Збій відправки / отримання сигналів доступності, але сама мережа продовжує функціонувати;
Перестала працювати мережа між вузлом ESXi і іншими вузлами кластера, але ESXi продовжує функціонувати;
У першому випадку, варто вибрати значення параметра Isolation Response - Leave powered on, тоді все машини, продовжать свою роботу, незважаючи на те, що припинять отримувати сигнали доступності.
У другому випадку слід вибрати Isolation Response - Power off або Shutdown (встановлено за умовчанням), якщо ESXi-хост перестав отримувати сигнали доступності, HA перенесе з загального сховища ВМ, що зберігалися на цьому хості ESXi, на вільні ESXi-хости. ESXi-хост повинен автоматично вимикатися, щоб не виникало конфліктів двох однакових хостів.
5. Резервація ресурсів (Reservation)
При розрахунку параметра Failover Capacity кластер HA спочатку створює слоти, які визначаються параметром Reservation. Цей параметр розраховується за розміром максимальної з віртуальних машин, що працюють на вузлах кластера.
6. Параметр Failover Capacity
Після розрахунку слотів визначається сам параметр Failover Capacity. Він вимірюється в цілих числах і позначає, яку максимальну кількість вузлів в кластері одночасно може вийти з ладу. При цьому всі машини повинні продовжувати функціонувати.
Ілюструємо параметр Failover Capacity. Візьмемо два випадки (по вертикалі: 1-й випадок - відмова одного вузла ESXi, 2-й випадок - відмова 2-х вузлів ESXi).
Перший випадок: 3 вузла ESXi, по 4 слота на кожному, 6 віртуальних машин.
В цьому випадку при виході з ладу одного вузла (наприклад, №3), ВМ 4,5,6 будуть запущені на інших вузлах (в нашому випадку №2, показані стрілками), однак, при виході з ладу ще одного вузла, вільних слотів під запуск ВМ не залишиться.
Другий випадок: 3 вузла ESXi, по 4 слота на кожному, 4 віртуальні машини.
В цьому випадку, вільних слотів вистачить, навіть якщо впаде відразу 2 вузла ESXi (в нашому випадку, ВМ перенесуться на хост №1).
Технічно параметр Failover Capacity розраховується наступним чином: з кількості всіх вузлів в кластері ми віднімаємо відношення кількості віртуальних машин в кластері до кількості слотів на одному вузлі ESXi. Якщо виходить не ціле число, округляємо вниз.
Для першого випадку: 3-6 / 4 = 1.5 Округляем до 1;
Для другого випадку: 3-4 / 4 = 2 Так і залишається 2;
7. Admission Control
Admission Control ми умовно розділили на стан Admission Control (стан ADC) і параметр Admission Control (параметр ADC).
Стан ADC визначається співвідношенням реального рівня відмовостійкості (FCap) і встановленого адміністратором (NHF). Якщо FCap більше NHF. то кластер налаштований коректно і проблем очікувати не слід. Якщо навпаки, то ми повинні встановлювати параметр ADC.
Параметр ADC визначається адміністратором і може мати два стани:
Do not power on virtual machines if they violate availability constraints - не включати віртуальні машини, якщо не достатньо слотів для забезпечення цільового рівня відмовостійкості;
Allow virtual machine to be started even if they violate availability constraints - дозволити запуск віртуальних машин, незважаючи на можливу нестачу ресурсів для їх запуску;
При виборі параметра ADC слід заздалегідь зрозуміти, як буде влаштований кластер і для яких цілей він необхідний:
Якщо наша основна задача - це надійність самого кластера, незважаючи на те, які ВМ будуть включені, нам слід встановити Admission Control в стан Do not power on ... .;
Якщо ж нам важливо робота всіх ВМ в кластері, нам доведеться встановити Admission Control в стан Allow VM to be started ... .;
У другому випадку, поведінка кластера може мати непередбачуваний (у гіршому випадку може дійти до такого, що ВМ опустять значення ADC до нульового значення, тим самим зробивши марною технологію HA)
8. Рекомендації по створенню кластера HA
Ми представимо загальні рекомендації по створенню кластера HA.
Для кластера з включеною службою HA необхідно, щоб всі віртуальні машини і їх дані знаходилися на загальному сховищі даних (Fibre Channel SAN. ISCSI SAN. Or SAN iSCI NAS). Це необхідно, щоб включати ВМ на будь-якому з хостів кластера. Це також означає, що вузли повинні бути налаштовані для доступу до тих же самим мереж віртуальної машини, спільно використовуваної пам'яті і інших ресурсів;
Кожен сервер ESXi в кластері HA проводить моніторинг вузлів мережі для виявлення збоїв серверів. Щоб сигнали доступності не уривалися, рекомендується встановлювати резервні мережеві шляхи. Якщо перше мережеве з'єднання вузла перестало функціонувати, сигнали доступності (heartbeats) почнуть передаватися по другому з'єднанню. Для підвищення відмовостійкості, рекомендується використовувати два і більше фізичних мережевих адаптерах на кожному вузлі;
Якщо потрібно використовувати службу DRS спільно з HA для розподілу навантажень по вузлах, вузли кластера повинні бути частиною мережі vMotion. Якщо вузли не включені в vMotion, то DRS може невірно розподіляти навантаження на вузли;