Настройка репликации
Инициализация связности
Инициализация связности необходима для взаимодействия двух контроллеров SpaceVM. Возможно использование как серверов с ролью Controller, так и с ролью Controller+Node.
Перед инициализацией связности рекомендуется сделать резервную копию БД основного контроллера.
C подробной информацией о создании резервной копии БД контроллера можно ознакомиться в разделе Резервное копирование БД контроллера.
Процесс инициализации связности
Для инициализации связности между контроллерами используется следующая команда CLI на каждом из них:
controller add <controller_IP-address>
Примечание
После выполнения команды на обоих контроллерах, необходимо повторно выполнить команду на первом контроллере. Подробнее в примере инициализации связности.
В ходе выполнения данной команды происходит генерация SSH-ключей на одном контроллере, соединение с другим контроллером и получение сгенерированных ключей через службу SSH (22/tcp).
Процесс настройки репликации
-
Инициализировать связь между экземплярами контроллера, используя команду CLI, в следующем порядке:
На первом контроллере:
controller add <IP второго контроллера>На втором контроллере:
controller add <IP первого контроллера>На первом контроллере ввести повторно:
controller add <IP второго контроллера>В ходе выполнения данной команды потребуется по запросу ввести пароль пользователя root от каждого контроллера.
-
Назначить роль master первому контроллеру, второму автоматически будет назначена роль slave. Для этого выполнить следующую команду в CLI первого контроллера:
controller role masterОбновление slave из master
Основной контроллер (дополнительно к репликации базы) через планировщик заданий cron циклично синхронизирует по SSH свою конфигурацию с резервным контроллером (SSH-ключи контроллера для доступа к узлам, лицензионные ключи, данные контроллера, настройки системы автотестирования,
/etc/hosts.d, настройки ntp иopenvswitch).Примечание
Web-интерфейс сервера, используемого для репликации, недоступен, так как в режиме репликации (slave) он управляется через основной контроллер (master).
-
Проверить связность контроллеров с помощью вывода команды CLI:
controller statusУбедиться, что инициализация связности обоих контроллеров проведена (
Initialized for remote controller) и активна. -
Перевести второй контроллер с ролью slave из резервного в основной с ролью master, выполнив следующую команду в CLI второго контроллера:
controller role master!!! note "Автоматическая смена роли" При смене роли при условии наличия связности между контроллерами роль на втором переключится автоматически. -
Проверить связность контроллеров:
controller statusУбедиться, что инициализация связности обоих контроллеров проведена (
Initialized for remote controller) и активна.
Статус pending
Означает недоступность второго контроллера по ssh. Необходимо проверить SSH-ключи и сетевую связность контроллеров.