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

Инструкция по настройке свидетеля реплицируемых контроллеров

Настройки хранятся в файле /etc/default/controller-veil-witness.

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

systemctl restart controller-veil-witness

Файл состоит из двух секций:

Содержит обязательные параметры. Изначально эти параметры можно заполнить интерактивно в процессе установки пакета, если имеется терминал и в системе установлен любой из пакетов whiptail или dialog. Если заданы все обязательные параметры, служба автоматически запускается.

Если не все обязательные параметры заданы, или если пакет устанавливается в неинтерактивной среде, служба не запускается. В таком случае следует заполнить конфигурационный файл, разрешить автозапуск и запустить сервис controller-veil-witness.service вручную.

Параметры Описание
server1 Обязательный параметр. IP адрес (или доменное имя) первого сервера. Возможно указать также порт через двоеточие (host:port). Если порт не задан, по умолчанию принимается порт 22.
server2 Аналогичнодля второго сервера.
username Имя пользователя в случае, если оно совпадает для обоих серверов. Этот пользователь ДОЛЖЕН иметь права запрашивать статус репликации и изменять роли серверов при помощи команды на обоих контроллерах /usr/local/sbin/veil-controller
username1 Имя пользователя для подключения по SSH к первому серверу. Этот пользователь доллжен иметь права запрашивать статус репликации и изменять роли серверов при помощи команды на первом контроллере /usr/local/sbin/veil-controller
username2 Аналогично для второго сервера.
password Пароль для подключения к обоим серверам в случае, если пароли для них совпадают. Следует пропустить при аутентификации по ключу.
password1 Пароль для первого сервера. Следует пропустить при аутентификации по ключу.
password2 Аналогично для второго сервера.
pkey Файл с расширением .pem, содержащий приватный RSA ключ, в случае, если один ключ действителен на обоих серверах. Файл создаётся и скачивается через Web-интерфейс VeiL (Безопасность/Ключи шифрования/Сгенерировать ключ). После создания ключ должен быть подключён к соответствующим серверам. Параметр следует пропустить при аутентификации по паролю.
pkey1 Аналогично только для первого сервера, если ключи различны.
pkey2 Анлогично для второго сервера.
id Уникальный идентификатор экземпляра программы. Создаётся автоматически при установке пакета, поэтому нет нужды создавать или редактировать его вручную. Если всё же нужно изменить id, следует учесть, что идентификатор не может быть длиннее 50 символов, а также должен состоять только из символов из набора "0-9a-zA-Z-_".

Содержит необязательные дополнительные параметры. В случае отсутствия параметров или секции в целом (секция не создаётся при установке пакета, при необходимости нужно добавить её и нужные параметры вручную) используются значения по умолчанию.

Параметры Описание По умолчанию
loop_timeout Интервал в секундах между запросами состояния каждого сервера. 10
ssh_loop_timeout Таймаут в секундах ожидания процессами соединения SSH команд от управляющего процесса. 240
status_timeout Таймаут в секундах ожидания ответа команды состояния сервера. 30
set_master_timeout Таймаут в секундах ожидания ответа команды установки роли "мастер". 180
no_comm_mute Число последовательных неудачных попыток (пере)соединения к серверам, после которого попытки будут продолжаться без записи в журнал. 10
reports_period Интервал в секундах между периодическими сообщениями в журнал о состоянии серверов. 3600 (1 час)
confirm_2similar_timeout Таймаут в секундах для принятия решения по ситуации "2 одинаковых роли" на случай, если статус сервера запрошен в момент переключения ролей через CLI, когда возможен одинаковый ответ от обоих серверов. 30
master_failure_duration Таймаут в секундах до переключения слейва на мастер, если один сервер - слейв, а второй недоступен (таймаут, чтобы дать возможность мастеру стать доступным). 30
switch_flag Путь к файлу, вызывающему при появлении принудительное переключение ролей серверов. Файл должен создаваться с правами доступа, допускающими его удаление сервисом controller-veil-witness. /tmp/veil-switch

Пример конфигурации

  • server1=example.veil.mylab.org:2222
  • server2=example.veil.mylab.org
  • username1=root
  • password1=MySecPass
  • pkey1=
  • username2=root
  • pkey2=/home/user/key_key2.pem
  • id=768f026b-a911-4910-835b-c9f7eedb66d5
  • set_master_timeout=120
  • status_timeout=30
  • loop_timeout=10
  • ssh_loop_timeout=240
  • no_conn_mute=10
  • reports_period=3600
  • confirm_2similar_timeout=30
  • switch_flag= mpr-veil-witness\