Налаштування балансувальника навантаження в VMware vCloud Director

Всім привіт!

Сьогодні будемо вчитися налаштовувати балансувальник навантаження (Load Balancer) в панелі управління vCloud Director, яка використовується в IaaS-сервісі CloudLITE.uk.

Як випливає з назви, даний інструмент балансує трафік веб-ресурсу між декількома серверами по заданому алгоритму і протоколу. Оскільки навантаження розподіляється між серверами, які виконують однакову функцію (наприклад, web-сервер), при виході з ладу одного з серверів навантаження перерозподілиться між залишилися в строю. Таким чином, балансувальник збільшує відмовостійкість сайту. Загалом, штука корисна для сайтів, які розміщуються в хмарі, особливо для інтернет-магазинів.

image

Як працює?

Функцію балансувальника навантаження в панелі vCloud Director виконує vShield Edge. Цей сервіс працює як транслятор адрес (NAT), на ньому налаштовується Firewall, VPN, DHCP і статична маршрутизація.
Щоб все запрацювало, при налаштуванні прописуємо наступне:

Pool Servers — IP адреси серверів (віртуальних машин), між якими і балансується навантаження. На цьому ж кроці ми вкажемо протоколу(HTTP, HTTPS, TCP), за яким балансувальник звертається до серверів, і параметри для відстеження доступності віртуальних машин. На підставі цього моніторингу буде прийматися рішення про перенаправлення трафіку на працюючий сервер у разі збою.

Virtual Servers (Virtual IP) – зовнішній IP-адресу, через який користувачі отримують доступ до ресурсів, розміщених на віртуальних машинах (Pool Servers).
Нижче приблизна схема, як це може виглядати для умовного сайту.

image

Інструкція

Приступимо до налаштування. На старті нам знадобляться:

— vShield Edge, до якого підключена зовнішня мережа.

— мережа рівня організації, в якій знаходяться як мінімум дві віртуальні машини (вибачте за капітанство :)).

У сервісі CloudLITE.uk все це створюється автоматично, але якщо ви користуєтеся vCloud Director десь в іншому місці, то ось докладна інструкції для налаштування мережі.

— зовнішній IP-адресу або їх діапазон. Показати це можна властивості vShield Edge. У нашому випадку це 92.242.44.150. Записали його куди-небудь.

— внутрішній IP віртуальних машин, які будуть брати участь у балансуванні. Для цього заходимо у вкладку My Cloud, відкриваємо vApp c потрібними ВМ. Шукаємо потрібну інформацію в соовтетствующем стовпці.

image

Отже, поїхали налаштовувати:

1. Заходимо в розділ Administration і клікаєм на віртуальний дата-центр.

image

2. Переходимо на вкладку Edge Gateways. Натискаємо правою кнопкою на Edge і вибираємо Edge Services Gateway.

image

3. У новому вікні переходимо на вкладку Load Balancer. Спочатку необхідно додати пул віртуальних машин (серверів), між якими будемо балансувати навантаження. Для цього клікаєм на Pool Servers і натискаємо Add.

image

4. Прописуємо назву пулу та його опис, якщо потрібно.

image

5. Далі вибираємо, за протоколом будуть доступні сервера (HTTP, HTTPS, TCP), порти і метод балансування, тобто алгоритм, згідно з яким трафік буде розподілятися між віртуальними машинами. Доступні наступні методи:

IP Hash: всі запити з одного і того ж IP-адреси будуть потрапляти на один і той же сервер з пулу
Round Robin: запити розподіляються по черзі між серверами в залежності від заданого ваги.
URI: всі запити одного й того ж адресою будуть потрапляти на 1 віртуальну машину. Застосовується тільки для серверів, доступних за протоколом http.
Least Connected: новий запит буде направлятися на найменш завантажений сервер.
Наприклад, виберемо протокол http, Port 80, метод Round Robin.

image

6. На наступному етапі встановлюємо параметри, за якими буде здійснюватися моніторинг доступності серверів даного пулу:
— порт
— протокол
— інтервал між зверненнями (interval)
— інтервал, протягом якого має бути отримано відповідь від сервера (timeout)
— необхідна кількість успішних звернень (health threshold)
— допустима кількість невдалих звернень до повідомлення про збій сервера (unhealth threshold).

Тут можна підкрутити дефолтні значення, головне — не перестаратися і не виставляти, наприклад, для поля timeout 1 сек. :)

У полі URI for HTTP service вказуємо адресу, за якою балансувальник буде перевіряти стан сервера. Можна залишити як є (/).Якщо не шукаємо легких шляхів, то можна створити статичну веб-сторінку для кожного сервера. В цьому випадку відповідь 200 OK означає, що все працює.

image

7. Далі в створений пул додаємо IP-адреси віртуальних машин (Members). Для цього натискаємо Add і вносимо у відповідне поле IP адреси машин, між якими буде здійснюватися балансування. Наприклад, 192.168.1.2 і 192.168.1.3.

У Ratio Weight вказуємо вага сервера в балансуванні. Якщо для першого сервера вкажемо вага 1, а для другого 2, то на другий сервер буде приходити в 2 рази більше звернень.
Якщо поставити 0 – сервер не буде брати участь у балансуванні.

image

Додаємо другу віртуальну машину і тиснемо Next.

image

8. На вкладці Ready to Complete перевіряємо все ще раз і тиснемо Finish.

image

9. Повертаємося на вихідну сторінку і переходимо у вкладку Virtual Servers. Натискаємо Add.

image

10. Прописуємо ім'я віртуального сервера.
— у полі Applied On вибираємо мережа (зовнішню!). У нашому випадку це cloudlite-internet-2.
— IP адреса призначаємо з Sub-Allocated IP Pool (той, що ми дивилися тут
— Вибираємо пул серверів, створений на попередньому кроці.
Якщо є необхідність, щоб кожен клієнт потрапляв на той сервер, на який він звертався в перший раз, вибираємо Persistence Method Cookie. Коли все додали, тиснемо ОК.

image

11. Не забуваємо натиснути ОК на головній сторінці.

З самим балансировщиком все. Якщо до цього не налаштовували Firewall, то варто зробити це – пропишіть правила для нього таким чином, щоб він пропускав потрібний трафік (детальна інструкція тут ).

Сподіваюся, цей інструмент полегшити життя вам та відвідувачам вашого веб-ресурсу. Якщо залишилися питання, задавайте в коментарях. І заходьте в CloudLITE.uk, щоб помацати все своїми руками ;)

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.