Отказоустойчивость:
Настройка переключения серверов#
Данная статья описывает настройку keepalived
для определения master-сервера и автоматического переключения трафика между серверами.
Подготовка к настройке#
Перед началом настройки отказоустойчивости важно учесть:
Оба сервера находятся в одной сети и им доступно минимум 3 адреса:
один IP-адрес для основного сервера;
один IP-адрес для резервного сервера;
один IP-адрес, используемый как виртуальный IP (VIP).
Домен в процессе настройки Отказоустойчивости будет привязан к IP VIP, который выступает в роли балансировщика — весь трафик идет через данный адрес и автоматически перенаправляется на активный сервер (основной или резервный).
Например:


В этом списке внутренние IP находятся в одной подсети.
VIP может быть:
публичным IP-адресом, непосредственно назначенным интерфейсу
keepalived
на серверах;внутренним IP-адресом (например,
192.168.1.6
), проброшенным через DST-NAT с публичного адреса (например,188.124.51.150
).
Предупреждение
Если у вас ранее уже был установлен сервер, подключать домен к внешнему IP VIP на этом шаге не требуется.
Примечание
Если сервер с Compass развернут за NAT, выполните следующие действия:
Откройте порты 80 и 443 для IP-адреса VIP, в настройках DNAT настройте проброс портов на порты 80 и 443 во внутренней сети для IP VIP.
Убедитесь, что порт 10000 UDP открыт на firewall, через который идет трафик для звонков. Если порт закрыт, откройте его для IP VIP.
В настройках DNAT настройте проброс порта 10000 UDP с внешнего IP-адреса на порт 10000 UDP сервера Compass во внутренней сети для IP VIP.
В конфигурационном файле global.yaml заполните поле jitsi.service.jvb.media_advertise_ips - укажите публичный IP-адрес, а затем через запятую — IP-адрес VIP.
Настройка keepalived#
На основном и резервном серверах установите
keepalived
, который будет отвечать за перенаправление трафика с одного сервера на другой.Для корректной работы
keepalived
разрешите VRRP-трафик в фаерволе на обоих серверах:Примечание
vrrp — это протокол для отказоустойчивости сетевых шлюзов. 224.0.0.18 — это официальный адрес VRRP, через который ноды обмениваются сообщениями о состоянии.
На основном сервере настройте
keepalived
.Создайте папку для конфигурационного файла
keepalived
:Проверьте, какой сетевой интерфейс используется на сервере:
Пример ответа:
default via 192.168.0.1 dev eth0
. В данном случае сетевым интерфейсом выступаетeth0
.Создайте файл конфигурации для
keepalived
:Подставьте свои значения в шаблон ниже и вставьте содержимое в файл
/etc/keepalived/keepalived.conf
с помощью любого удобного текстового редактора:Важные моменты:
Подставьте полный путь к установщику Compass в файл конфигурации.
Внутренним IP VIP выступает IP, созданный ранее на этапе Подготовка к настройке.
Значение для поля
virtual_router_id
должно быть одинаковым в конфигурационном файле на основном и резервном серверах.Пароль для поля
auth_pass
должен быть не длиннее 8 символов.Значение для поля
auth_pass
должно быть одинаковым на основном и резервном серверах.Для скрипта проверки nginx укажите полный путь к установщику Compass.
Для скрипта проверки свободного места укажите в аргументе
path
путь, где смонтированы файлы приложения.
Настройте
keepalived
на резервном сервере.Создайте папку для конфигурационного файла
keepalived
:Проверьте, какой сетевой интерфейс используется на сервере:
Пример ответа:
default via 192.168.0.2 dev eth0
. В данном случае сетевым интерфейсом выступаетeth0
.Создайте файл конфигурации для
keepalived
:Подставьте свои значения в шаблон ниже и вставьте содержимое в файл
/etc/keepalived/keepalived.conf
с помощью любого удобного текстового редактора:Примечание
Подставьте полный путь к установщику в файл конфигурации.
На основном сервере запустите
keepalived
:Завершите процесс
keepalived
для состояния BACKUP, которое создаётся при первом запуске:Для проверки успешного запуска
keepalived
выполните команду:На резервном сервере запустите
keepalived
:Предупреждение
Рекомендуем запускать
keepalived
сначала на основном сервере и только затем на резервном.
Таким образом весь трафик начнёт идти через основной сервер и переключится на резервный, только если основной сервер стал недоступным.Для проверки успешного запуска
keepalived
выполните команду:Чтобы включить процесс отказоустойчивости, требуется подключить ваш домен к внешнему IP VIP. Таким образом, если всё было настроено верно, трафик начнёт отправляться через VIP на основной сервер.
Внимание
Обратите внимание, что для переключения домена со старого IP к IP VIP требуется время. В этом случае не рекомендуется переключать или отключать
keepalived
на текущем мастер-сервере.Для проверки изменения переключения в DNS рекомендуется использовать команду:
Примечание