Re: где астериск хранит состояние регистрации пира?
2 litnimax: спасибо, я так и подозревал :)
2 cron333:
я, собственно, так и делаю. однако простой репликации БД мало и реалтайм мало чем поможет, ибо:
1) часто приходится править текстовые файлы (основные маршруты, специфические приложения и прочее). Чтобы перенести их в MYSQL нужно удобное средство правки.
2) нужно реплицировать изменения в веб интерфейсе
3) нужно реплицировать каталог TFTP
4) нужно реплицировать ASTDB, и тд и тп.
В общем, чтобы использовать реалтайм в полной мере, нужно переделывать freepbx, а на полноценную доработку нет ни времени, ни людей, ни денег. Не использовать freepbx не можем.
Как я уже писал в форуме, репликация сделана тупо бакапами freepbx, которые раз в сутки записываются на резервный сервер.
я написал скрипт, который мониторит:
- набор IP адресов в локальной сети, которые гарантировано работают (маршрутизатор, контроллеры домена, ДНС и прочее)
- IP адреса серверов, участвующих в кластере
- Разделяемый IP (скрипт ждет, пока не освободится этот ИП)
- Список контрольных пиров, которые регистрируются не на разделяемом IP, а имеют две регистрации непосредственно на основном и резервном IP. по состоянию этих пиров принимается решение о доступности сервиса.
- Список пиров, которые регистрируются на разделяемом IP. По их состоянию определяется, какой сервер в настояещее время носит разделяемый IP.
- состояние пиров межсоединений, оба сервера смотрят друг на друга и имеют зарегистрированный пир
ко всем этим параметрам мониторинга заданы пороговые критерии, при которых принимается решение о переносе разделяемого ИП. Срктура скрипта позволяет переопределять условия, все действия логируются, админ оповещается по почте о произошедшем. На обоих сервера скрипты одинаковые и реплицирутся вместе со всеми остальными данными. Сам скрипт запускается кроном раз в минуту.
В при принятии решения о переносе ИП производятся следующие операции
на основном:
ifconfig eth0:0 del 10.10.1.245 (удаляем разделяемый ИП)
ifconfig eth1 down (отключаем tdmoe интерфейс)
на резервном:
ifconfig eth0 add 10.10.1.245 (добавляем разделяемый ИП)
ifconfig eth1 up (включаем tdmoe интерфейс)
сейчас эта схема проходит тестирование у заказчика (делаю по ночам, когда никто не работает), скрипт показал себя неплохо, переход на резервный сервер осуществляется в течении минуты.
выявленные проблемы:
не всегда отрабатывает ifconfig eth1 down.
после команды ifconfig eth0 add 10.10.1.245 разделяемый ИП может не пинговаться. как бороться - пока ХЗ
|