Свидетель реплицируемых контроллеров
Общее описание
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-пакета
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
Примечание
В случае неактивности сервиса свидетеля в разделе События окна подробного просмотра основного контроллера появится предупреждение.
Удаление
Удалить сервис можно с помощью команды CLI:
sudo apt remove controller-witness

