man
Section: Справочная страница controller-witness (1)
Updated: 14 Sep 2022
НАЗВАНИЕ
controller-witness - служба отслеживания и изменения роли репликации двух контроллеров.
ОПИСАНИЕ
controller-witness является службой systemd, берущей настройки из конфигурационного файла.
Конфигурационный файл /etc/default/controller-witness должен быть заполнен перед запуском службы. Служба пытается
установить SSH соединение к обоим указанным в параметрах серверам и далее периодически проверяет доступность и состояние
серверов. Если сервер, являющийся в данный момент мастером репликации, становится недоступен, служба пытается
сменить роль текущего слейва репликации на "мастер". Если возникает ситуация, когда два сервера заявляют о
своей роли "мастер репликации", служба повторно отправляет серверу, который был дольше замечен в роли мастера, команду
"установить роль мастера", т.к. при этом второму серверу устанавливается роль слейва. Таким образом, репликация восстанавливается.
НАСТРОЙКИ
Настройки хранятся в файле /etc/default/controller-witness.
При ручном изменении настроек необходимо вручную перезапустить службу командой
systemctl restart controller-witness
Файл состоит из двух секций:
[default]
Содержит обязательные параметры. Изначально эти параметры можно заполнить интерактивно в процессе установки пакета, если имеется терминал и в системе установлен любой из пакетов whiptail или dialog. Если заданы все обязательные параметры, служба автоматически запускается. ВНИМАНИЕ! ПРОВОДИТСЯ ПРОВЕРКА НАЛИЧИЯ, НО НЕ КОРРЕКТНОСТИ ПАРАМЕТРОВ! Если не все обязательные параметры заданы, или если пакет устанавливается в не-интерактивной среде, служба не запускается. В таком случае следует заполнить конфигурационный файл, разрешить к автозапуску и запустить сервис controller-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-интерфейс (Безопасность/Ключи шифрования/Сгенерировать ключ). После создания ключ должен быть подключён к соответствующим серверам. Параметр следует пропустить при аутентификации по паролю.
- pkey1
-
То же, только для первого сервера, если ключи различны.
- pkey2
-
То же для второго сервера.
- id
-
Уникальный идентификатор экземпляра программы. Создаётся автоматически при установке пакета, поэтому нет нужды создавать или редактировать его вручную. Если всё же нужно изменить id, следует учесть, что идентификатор не может быть длиннее 50 символов, а также должен состоять только из символов из набора "0-9a-zA-Z-_".
[optional]
Содержит необязательные дополнительные параметры. В случая отсутствия параметров или секции целиком (секция не создаётся при установке пакета, при необходимости нужно добавить её и нужные параметры вручную) используются значения по умолчанию.
- 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-witness. По умолчанию /tmp/veil-switch.
ПРИМЕР КОНФИГУРАЦИИ
[default]
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
[optional]
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
АВТОРЫ
(c) АО "НИИ Масштаб", 2022
Index
- НАЗВАНИЕ
-
- ОПИСАНИЕ
-
- НАСТРОЙКИ
-
- [default]
-
- [optional]
-
- ПРИМЕР КОНФИГУРАЦИИ
-
- АВТОРЫ
-
This document was created by
man2html,
using the manual pages.
Time: 08:48:54 GMT, September 14, 2022