Перейти к содержанию

Настройка репликации

Инициализация связности

Инициализация связности необходима для взаимодействия двух контроллеров SpaceVM. Возможно использование как серверов с ролью Controller, так и с ролью Controller+Node.

Перед инициализацией связности рекомендуется сделать резервную копию БД основного контроллера.

C подробной информацией о создании резервной копии БД контроллера можно ознакомиться в разделе Резервное копирование БД контроллера.


Процесс инициализации связности

Для инициализации связности между контроллерами используется следующая команда CLI на каждом из них:

controller add <controller_IP-address>

Примечание

После выполнения команды на обоих контроллерах, необходимо повторно выполнить команду на первом контроллере. Подробнее в примере инициализации связности.

В ходе выполнения данной команды происходит генерация SSH-ключей на одном контроллере, соединение с другим контроллером и получение сгенерированных ключей через службу SSH (22/tcp).


Процесс настройки репликации

  1. Инициализировать связь между экземплярами контроллера, используя команду CLI, в следующем порядке:

    На первом контроллере:

    controller add <IP второго контроллера>
    
    На втором контроллере:

    controller add <IP первого контроллера>
    
    На первом контроллере ввести повторно:

    controller add <IP второго контроллера>
    
    В ходе выполнения данной команды потребуется по запросу ввести пароль пользователя root от каждого контроллера.

  2. Назначить роль master первому контроллеру, второму автоматически будет назначена роль slave. Для этого выполнить следующую команду в CLI первого контроллера:

    controller role master
    

    Обновление slave из master

    Основной контроллер (дополнительно к репликации базы) через планировщик заданий cron циклично синхронизирует по SSH свою конфигурацию с резервным контроллером (SSH-ключи контроллера для доступа к узлам, лицензионные ключи, данные контроллера, настройки системы автотестирования, /etc/hosts.d, настройки ntp и openvswitch).

    Примечание

    Web-интерфейс сервера, используемого для репликации, недоступен, так как в режиме репликации (slave) он управляется через основной контроллер (master).

  3. Проверить связность контроллеров с помощью вывода команды CLI:

    controller status
    

    Убедиться, что инициализация связности обоих контроллеров проведена (Initialized for remote controller) и активна.

  4. Перевести второй контроллер с ролью slave из резервного в основной с ролью master, выполнив следующую команду в CLI второго контроллера:

    controller role master
    

    Автоматическая смена роли

    При смене роли при условии наличия связности между контроллерами роль на втором переключится автоматически.

  5. Проверить связность контроллеров:

    controller status
    

Убедиться, что инициализация связности обоих контроллеров проведена (Initialized for remote controller) и активна.

Статус pending

Означает недоступность второго контроллера по ssh. Необходимо проверить SSH-ключи и сетевую связность контроллеров.