Задача:
Создать стенд для демонстрации следующих возможностей реализации решений по обеспечению высокой доступности в ОС 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 (монтирование ФС) в ресурсах кластера :
