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

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

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

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

Cервис инициирует процедуру установки SSH-соединения между контроллерами и регулярно проверяет их доступность и роли:

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

Примечание

В случае ручной смены роли контроллера при активном свидетеле в терминале отобразится предупреждение с требованием подтвердить операцию: Controller replication is under witness management. Do you want to change the role manualy? (y/n)

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

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


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

Внимание

Связка контроллер-свидетель не подразумевает работу двух и более свидетелей. Если во время работы свидетеля, служба отключается и в лог-файле появляется сообщение Cluster is managed by another witness, необходимо на каждом контроллере выполнить команду CLI:

controller remove-witness

  • Установку должен выполнять пользователь с правами суперпользователя.

  • ОС на базе 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
Примечание

В случае неактивности сервиса свидетеля в разделе События окна подробного просмотра основного контроллера появится предупреждение.

Предупреждение

image


Удаление

Удалить сервис можно с помощью команды CLI:

sudo apt remove controller-witness