Настройка отказоустойчивого кластера FreePBX High Availability (HA)
Симптомы проблем отказоустойчивости телефонии
Одиночный сервер FreePBX является единой точкой отказа (Single Point of Failure). При аппаратном сбое ноды колл-центр и офисная связь полностью останавливаются, а перенастройка транков и SIP-телефонов вручную занимает недопустимо много времени.
| Компонент HA | Назначение в кластере FreePBX | Характерный сбой |
|---|---|---|
| DRBD | Репликация дисковых разделов Asterisk/MySQL | Рассинхронизация реплики (Split-Brain) |
| Corosync | Мониторинг доступности узлов (Heartbeat) | Потеря кворума из-за проблем связности сети |
| Pacemaker | Менеджер ресурсов и перевод плавающего Virtual IP | Зависание ресурса IPaddr2 или Asterisk service |
Пошаговая настройка и диагностика кластера FreePBX HA
- Выделение сетевых интерфейсов под Heartbeat и DRBD: используйте выделенный физический сетевой кабель или отдельный VLAN между двумя нодами (Node 1 и Node 2) для исключения задержек синхронизации.
- Проверка статуса кластера через утилиту командной строки crm:
crm_mon -1 # Проверка детального состояния ресурсов crm resource status - Разрешение состояния Split-Brain на блочном устройстве DRBD: если обе ноды посчитали себя Primary после сетевого сбоя:
# На подчиненной ноде (Secondary): drbdadm disconnect r0 drbdadm secondary r0 drbdadm connect --discard-my-data r0 # На основной ноде (Primary): drbdadm connect r0 - Перевод ноды в режим обслуживания перед регламентными работами:
crm node standby node1 # Возврат ноды в активный пул после обновления crm node online node1
Внимание: Все абонентские телефоны и голосовые шлюзы VoIP должны регистрироваться исключительно на Виртуальный плавающий IP-адрес (Virtual Cluster IP), а не на реальные физические IP-адреса отдельных нод.
Частые вопросы (FAQ)
Сохраняются ли активные телефонные разговоры при аварийном переключении FreePBX HA?
Нет. При падении первичной ноды текущие разговоры прерываются. Новый узел поднимает виртуальный IP и Asterisk в течение 10-30 секунд, после чего телефоны перерегистрируются без участия человека.
Что такое механизм STONITH (Shoot The Other Node In The Head)?
Это протокол принудительной изоляции узла через IPMI/iLO/PDU для гарантии того, что сбойный сервер гарантированно обесточен и не запишет поврежденные данные на общий DRBD-диск.
Можно ли объединить в HA кластер FreePBX ноды разной конфигурации?
Крайне не рекомендуется. Архитектура процессора, размеры дисковых разделов под DRBD и версии пакетов ОС должны быть идентичными.
Как синхронизируются записи телефонных разговоров в HA?
Каталог /var/spool/asterisk/monitor монтируется поверх общего реплицируемого блочного устройства DRBD, что обеспечивает мгновенную синхронизацию записей.