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

Свидетель реплицируемых контроллеров

Внимание

Является экспериментальным функционалом.

В случае возникновения ошибок необходимо создать обращение в Space Bugzilla или ознакомиться с уже известными запросами на данном ресурсе.

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


Общее описание

controller-witness — SystemD-сервис обеспечивающий автоматическое переключение ролей между двумя контроллерами репликации в системе SpaceVM.

Сервис использует настройки из файла /etc/default/controller-witness, которые должны быть заданы до его запуска.

Примечание

Изменение настроек требует перезагрузки сервиса.

Cервис инициирует процедуру установки SSH-соединения с обоими контроллерами, регулярно проверяет их доступность и роли. Если контроллер-мастер становится недоступен, свидетель пытается переключить роль slave на master. Если оба контроллера определяются как master, свидетель назначает роль master тому, кто дольше находился в этой роли. Новый master при наличии связи с другим контроллером пытается перевести его в роль slave.

Схема подключений

Детальное описание работы и настроек смотрите ниже.


Требования к установке

Внимание

Пользователь, выполняющий установку, должен обладать привилегиями суперпользователя.

Свидетель не рекомендуется устанавливать в рабочем кластере SpaceVM. Рекомендуется использовать изолированную виртуальную машину или контейнер вне инфраструктуры.

  • ОС на базе Debian/Ubuntu.

  • Установлены зависимости: python3 (>= 3.6), python3-paramiko.

  • Установлен один из пакетов: whiptail, dialog.


Установка deb-пакета

Скачать deb-пакет.

sudo apt install <path-to-controller-witness_*.deb>
Пример команды

Команда для установки deb-пакета 0.7.0-32 из текущего каталога:
sudo apt install ./controller-witness_0.7.0-32_all.deb.


Установка из репозитория

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

echo "deb http://update.spacevm-service.ru/extra-600/ space main" | sudo tee /etc/apt/sources.list.d/spacevm-extra.list
sudo wget http://update.spacevm-service.ru/space-repo-key.gpg -O /etc/apt/trusted.gpg.d/space-repo-key.gpg
sudo apt update
sudo apt install controller-witness

Настройки и детальное описание

В сервисе используются настройки из файла /etc/default/controller-witness.

Доступен подробный просмотр с помощью команды man:

man controller-witness

Удаление

sudo apt remove controller-witness