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

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

Внимание

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

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

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


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

controller-witness - сервис автоматического переключения ролей репликации 2 Space контроллера.

controller-witness является SystemD сервисом с настройками из файла (/etc/default/controller-witness). Настройки должны быть внесены до старта сервиса (после их изменения необходимо перезагрузить сервис). Сервис пытается установить SSH соединение до обоих контроллеров и далее периодически проверяет связь до них и их роли. Если контроллер-мастер становится недоступен, свидетель пытается переключить роль slave на master. Если оба контроллера обнаружены как master, то свидетель пытается снова поставить роль master на тот контроллер, который известен как master большее время. При установке роли master на контроллер последний при наличии связи с другим контроллером пытается переключить его в slave.

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

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


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

  • Поддерживаемые ОС: на базе Debian/Ubuntu
  • Зависимости: python3 (>= 3.6), python3-paramiko
  • Для заполнения настроек при установке необходимо предустановить один из пакетов: whiptail, dialog.

Рекомендуется устанавливать свидетеля отдельно от инфраструктуры под управлением Space VM в виртуальную машину или контейнер.


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

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

sudo dpkg -i controller-witness_*.deb

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

sudo echo "deb http://update.spacevm.ru/extra-600/ space main" > /etc/apt/sources.list.d/spacevm-extra.list
sudo apt update
sudo apt install controller-witness

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

Сервис берёт настройки из файла /etc/default/controller-witness.

Подробное описание смотрите через man: man controller-witness.


Удаление

sudo apt remove controller-witness