null

Стенд HA-конфигурации балансировщика нагрузки Haproxy (на основе keepalived/vrrp) для apache2 в кластере под управлением Pacemaker + репликация DRBD

Задача:

Создать стенд для демонстрации следующих возможностей реализации решений по обеспечению высокой доступности в ОС Astra Linux:

1) Балансировку нагрузки веб-сайта лабораторного стенда;
2) Active / Passive избыточность веб-сайта лабораторного стенда;
3) Менеджер ресурсов компьютерного кластера Pacemaker;
4) Распределённое реплицируемое блочное устройство DRBD.

1) Создан стенд  HA конфигурации (на основе keepalived/vrrp) балансировщика нагрузки  Haproxy (реверс-прокси)  HTTP ресурсов (на основе Web -сервера apache2 ) в  active-passive "multi-master", в  кластере под управлением Pacemaker 

Конфигурация haproxy узла ha1:

Конфигурация haproxy узла ha2:

где 192.168.100.20 и 192.168.100.40 ClusterIP ресурсы ( "плавающие IP" ) для экземпляров apache2

Конфигурация keepalived узла ha1:

Конфигурация keepalived узла ha2:

Демонстрация решения балансировки (Round Robin):

Нажатие Refresh (обновление страницы) браузера :

2) Active / Passive избыточность веб-сайта лабораторного стенда;

В рамках решения active/passive была создана конфигурация "multi-master" двух экземпляров Web-сервера под управлением apache2 в виде ресурсов Pacemaker в 2х узловом кластере, при этом оба экземпляра в рамках переключения(ручного или автоматического) способны продолжать работать на одном из узлов, а в режиме штатной работы кластера - ресурсы распределены по обоим узлам и, благодаря балансировщикам, клиенты используют  вычислительные ресурсы обоих узлов для работы.
 К сожалению, на эту реализацию для успешной работы решения пришлось потратить много времени : на дебаг +  правки для тестов скриптов агента ресурса apache, который "из коробки" без специальных атрибутов и переменных окружения в конфигурации не способен запустить без конфликтов оба экземпляра на одном хосте в виду устаревшей конфигурации методики запуска агентом apache (согласно man cтраницы apache2 это не рекомендуемый способ) и особенностей запуска нескольких экземпляров на одном хосте, с точки зрения реализации механики запуска apache на уровне ОС (специфика актуальных версий, вспомогательный скрипт apache2ctl), анализ реализации запуска systemd сервиса apache, множественные тесты применения конфигураций)

В результате при помощи штатного скрипта созданы 2 дополнительные копии директорий конфигураций экземпляров apache (идентичные на обоих узлах) и выполнены следующие конфигурации :

Тестовый файл php + изменение порядка "файла индекса" по умолчанию

3) Менеджер ресурсов компьютерного кластера Pacemaker

Статус созданного кластера и ресурсы:

Конфигурация ресурсов:

Ограничения ресурсов (constraints) :

Демонстрация отказоустойчивости :

 

Обновление страницы (демонстрация балансировки, оба экземпляра на активном сервере web2.course-lab.ru)

Возврат узла web1.course-lab.ru из standby :

Исходное состояние :

Обновление страницы (демонстрация балансировки, оба узла)

Аналогичный  тест для web2.course-lab.ru:

Атрибуты и переменные окружения, которые позволили корректно запустить multi-master конфигурацию apache в Pacemaker :

Агент корректно запускает несколько экземпляров :

 

4) Распределённое реплицируемое блочное устройство DRBD.

Конфигурация DRBD на узлах :

Статус DRBD на узлах :

Конфигурация ресурсов WebData и WebData-1, а также их продвигаемых клонов (управление  блочным устройством, репликации DRBD)  и  WebFS (монтирование ФС) в ресурсах кластера :

 

Коротко о себе:

Работаю в компании TUNE-IT в качестве инженера и преподавателя.

В сферу профессиональных интересов входит все,  что связано с "большими" и не очень серверами и СХД от Sun Microsystems/Oracle и кластерами на их основе, но по долгу службы занимаюсь чаще всего их диагностикой и ремонтом... 

Делюсь опытом и  наработанными навыками в рамках курсов по  соответствующим направлениям.