Існує кілька способів досягти HA (високої доступності) балансира навантаження - або, що стосується будь-якої послуги. Припустимо, у вас є два машини з IP-адресами:
- 192.168.100.101
- 192.168.100.102
Користувачі підключаються до IP-адреси, тому те, що ви хочете зробити, це відокремити IP-адресу від конкретного вікна - наприклад, створити віртуальний IP-адресу. Цей IP буде 192.168.100.100.
Тепер ви можете обрати службу HA, яка подбає про автоматичне відключення / відмова IP-адреси. Деякі з найпростіших сервісів для Unix - це (u) короп та кепапаль, деякі більш складні - наприклад, RedHat Cluster Suite або Pacemaker.
Давайте візьмемо для прикладу збережений вміст - два сервіси з збереженою підтримкою - кожен працює на своєму вікні - і вони спілкуються разом. Це спілкування часто називають серцебиттям.
| VIP | | |
| Box A | ------v^-----------v^---- | Box B |
| IP1 | | IP2 |
Якщо один зберігач перестає реагувати (або служба припиняється з будь-якої причини, або вікно відскакує або закривається) - зберігач на іншому боці помітить пропущене серцебиття, і припустить, що інший вузол загинув, і вчинить аварійні дії. Ця дія в нашому випадку буде викликати плаваючий IP.
| VIP |
------------------ -------------- | Box B |
| IP2 |
Найгірший випадок, який може статися в цьому випадку, - це втрата сеансів для клієнтів, але вони зможуть знову підключитися. Якщо ви хочете цього уникнути, два балансири навантаження повинні мати змогу синхронізувати дані сеансу між ними, і якщо вони можуть це зробити, користувачі нічого не помітять, крім, можливо, порушеної короткої затримки.
Ще одна помилка цієї установки - це розділений мозок - коли обидва вікна в Інтернеті, але посилання розірвано, і обидва вікна містять однаковий IP. Це часто вирішується через якийсь механізм огородження (резервування SCSI, перезапуск IPMI, інтелектуальне відключення живлення PDU, ...) або непарна кількість вузлів, для більшості членів кластера необхідна активація для запуску послуги.
| VIP | | VIP |
| Box A | | Box B |
| IP1 | | IP2 |
Більш складне програмне забезпечення для управління кластерами (як Pacemaker) може переміщувати всю послугу (наприклад: зупинити її на одному вузлі та запустити на іншому) - і це спосіб досягнення HA для таких служб, як бази даних.
Ще один можливий спосіб - якщо ви керуєте маршрутизаторами поблизу балансирів навантаження, - це використовувати ECMP. Цей підхід також дозволяє горизонтально масштабувати балансири навантажень. Це працює у кожному з ваших двох вікон, які спілкуються на BGP з вашим маршрутизатором. Кожне поле має рекламувати віртуальний IP (192.168.100.100), і маршрутизатор завантажить балансовий трафік через ECMP. Якщо машина загине, вона зупинить рекламу VIP, що, в свою чергу, зупинить маршрутизатори від надсилання на неї трафіку. Єдине, про що ви повинні подбати під час цього налаштування - це припинити рекламувати IP, якщо сам балансир навантаження загине.