Warm standby
Данная модель предусматривает постоянную репликацию данных с основного на резервный сервер. В случае выхода из строя основного сервера позволяет за считаные минуты переключиться на резервный.
- 1 Подготовка
- 1.1 Сеть
- 1.2 База данных
- 1.3 Медиафайлы
- 1.4 Сервисы
- 2 Переключение
- 2.1 Сеть
- 2.2 База данных
- 2.3 Сервисы
Подготовка
Сеть
На серверах будут назначены частные IP адреса для коммуникации между собой.
Если сервис не предусматривает выход в Интернет, тогда дополнительный частный IP должен быть назначен на основную ноду.
Если сервис работает в сети Интернет, тогда публичный IP может быть назначен на маршрутизаторе с DNAT на основную ноду.
Альтернативный вариант - назначение публичного IP адреса непосредственно на основной ноде.
Взаимодействие клиента с сервером должно происходить по записи в DNS, которая ссылается на общий для серверов публичный или частный IP.
База данных
Webitel использует PostgreSQL 15. На обоих серверах необходимо установить PostgreSQL 15 со всеми компонентами, как указано в документации. На резервном сервере необходимо настроить потоковую репликацию (Streaming Replication) данных. Описание вы можете найти в официальной документации либо в нашем файле по установке.
Теперь все данные созданные на основном сервере моментально будут переноситься на резервный.
Медиафайлы
По умолчанию Webitel хранит записи разговоров на файловой системе в /opt/storage
Способы обеспечения доступности данных:
Подключение NAS-сервера. В данном случае сетевую файловую систему NAS-сервера необходимо подмонтировать как /opt/storage на оба сервера.
Подключение S3 хранилища. Все записи разговоров будут храниться на распределенной сетевой файловой системе и одинаково доступны для обоих серверов.
Периодическая синхронизация данных. С помощью rsync настроить синхронизацию данных /opt/storage с основного сервера на резервный.
Сервисы
Установка всех сервисов webitel на оба сервера. На резервном сервере все сервисы необходимо остановить. Также, важно после выполнения лицензирования пользователей на основном сервере, перенести содержимое /usr/local/webitel на резервный.
Переключение
Сеть
Переключить основной публичный или частный IP адрес на резервный сервер.
База данных
Перевести PostgreSQL 14 из режима работы реплики в режим основного сервера (pg_ctl _promote).
Сервисы
Запустить все сервисы webitel на резервном сервере.