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