Warm standby

Данная модель предусматривает постоянную репликацию данных с основного на резервный сервер. В случае выхода из строя основного сервера позволяет за считаные минуты переключиться на резервный.

Подготовка

Сеть

  1. На серверах будут назначены частные IP адреса для коммуникации между собой.

  2. Если сервис не предусматривает выход в Интернет, тогда дополнительный частный IP должен быть назначен на основную ноду.

  3. Если сервис работает в сети Интернет, тогда публичный IP может быть назначен на маршрутизаторе с DNAT на основную ноду.

  4. Альтернативный вариант - назначение публичного IP адреса непосредственно на основной ноде.

  5. Взаимодействие клиента с сервером должно происходить по записи в DNS, которая ссылается на общий для серверов публичный или частный IP.

База данных

Webitel использует PostgreSQL 15. На обоих серверах необходимо установить PostgreSQL 15 со всеми компонентами, как указано в документации. На резервном сервере необходимо настроить потоковую репликацию (Streaming Replication) данных. Описание вы можете найти в официальной документации либо в нашем файле по установке.

Теперь все данные созданные на основном сервере моментально будут переноситься на резервный.

Медиафайлы

По умолчанию Webitel хранит записи разговоров на файловой системе в /opt/storage

Способы обеспечения доступности данных:

  1. Подключение NAS-сервера. В данном случае сетевую файловую систему NAS-сервера необходимо подмонтировать как /opt/storage на оба сервера.

  2. Подключение S3 хранилища. Все записи разговоров будут храниться на распределенной сетевой файловой системе и одинаково доступны для обоих серверов.

  3. Периодическая синхронизация данных. С помощью rsync настроить синхронизацию данных /opt/storage с основного сервера на резервный.

Сервисы

Установка всех сервисов webitel на оба сервера. На резервном сервере все сервисы необходимо остановить. Также, важно после выполнения лицензирования пользователей на основном сервере, перенести содержимое /usr/local/webitel на резервный.

Переключение

Сеть

Переключить основной публичный или частный IP адрес на резервный сервер.

База данных

Перевести PostgreSQL 14 из режима работы реплики в режим основного сервера (pg_ctl _promote).

Сервисы

Запустить все сервисы webitel на резервном сервере.