Высокая доступность вариантов Asterisk?
В настоящее время мы запускаем FreePBX на одном узле. Я хотел бы иметь кластер экземпляров звездочки для распределения нагрузки, но в основном для отработки отказа. Мне любопытно, как другие люди решили эту проблему. В идеале я хотел бы использовать "бесплатное" (как в пиве) программное обеспечение.
Спасибо за любую помощь!
РЕДАКТИРОВАТЬ
Требуется дополнительная информация... если честно, мы попробуем что-нибудь, если это хорошее решение:)
Нам не важно, прервутся ли вызовы во время аварийного переключения. Это было бы идеально, но я могу представить, что это будет очень сложно из-за количества состояний, которые должны быть реплицированы между узлами.
Я не думаю, что мы не используем повторное приглашение SIP. Я никогда не сталкивался с этим термином, несмотря на то, что запускал freepbx более года. Наш вариант использования просто позволяет людям совершать исходящие вызовы с помощью программного телефона и маршрутизировать несколько входящих вызовов в зависимости от DID.
Прямо сейчас мы запускаем FreePBX в контейнере LXC. Это работает, потому что наши восходящие операторы также являются SIP (не ISDN). У нас есть опыт работы с KVM, но в идеале мы хотели бы запускать вещи в контейнере LXC по соображениям эффективности.
1 ответ
Начните с просмотра этой веб-страницы voip-info: дизайн высокой доступности. Он объяснит, что такое высокая доступность, а какая нет - в контексте Asterisk. (Его легко спутать с высокой доступностью и балансировкой нагрузки)
Далее, посмотрите на эту страницу voip-info: продукты высокой доступности. Он объяснит, что существует с открытыми / коммерческими решениями для Asterisk высокой доступности.
Ни одно из решений не претендует на то, чтобы поддерживать вызовы во время восстановления после отказа (оставаясь в рамках стандартного протокола SIP без введения новой единой точки отказа). Повторные приглашения SIP используются для разрешения потоков мультимедиа RTP непосредственно между конечными точками, но Asterisk обычно остается в потоке SIP. Не совсем проблема с ГА.
Что еще нужно подумать, так это определить "провал". Проще говоря, это процесс Asterisk, умирающий. Но часто процесс Asterisk жив, просто не соединяя вызовы (поэтому избегайте упрощенных сценариев мониторинга процессов). Что делать, если сетевое соединение выходит из локального центра обработки данных (или происходит сбой межсетевого экрана). Ваше решение HA должно быть в состоянии учитывать факторы окружающей среды, такие как восходящие маршруты и т. Д., Чтобы определить, может ли одноранговый узел больше не предлагать услуги телефонии. Некоторые решения, использующие стандартное программное обеспечение Linux Heartbeat, которое не имеет какой-либо глубокой видимости звездочки или окружающей среды.
Как насчет синхронизации данных между пирами? От голосовой почты до данных конфигурации, прошивки телефонного аппарата и т. Д. Такие решения, как DRBD, упрощают эту задачу, но повреждение одним узлом немедленно портит другое. Например, если поврежденный процесс на одном узле повреждает критические файлы звездочек, запускается другой узел (если они используют DRBD, то нет). Поэтому избегайте "решений" на основе DRBD.
Если вы введете балансировку нагрузки (т. Е. Несколько активных одноранговых узлов), какой из них "выигрывает" в том случае, если каждый из двух равноправных абонентов одновременно получает голосовую почту #1 для пользователя 123? Для этого необходимо ввести внешние серверы для моста вызовов, серверную часть для голосовой почты и т. Д. И у вас все еще есть отдельные точки отказа или общие компоненты.
Если вы восстанавливаетесь после сбоя, а кластер нуждается в повторной сборке, что произойдет, если каждый узел записал данные в свою копию общего "диска"? Вы вручную начинаете примирение? Что, если 2 пира подойдут одновременно (двойной актив) - кто из них победит и победит? Если вы внедряете решение с общим диском (DRBD, NFS, iSCSI), тогда вы устраняете один из самых больших и важных элементов решения HA: автономия одноранговых узлов. Поэтому ищите "синхронизация", а не "общий диск".
Самые дешевые решения "HA" для звездочки, как правило, используют общий виртуальный диск (например, DRBD/NFS/SMB) и / или банк общего канала (например, Astribank). Как вы прочтете выше, для реальных решений высокой доступности (например, тех, которые используются в центрах обработки вызовов 911/PSAP) требуются полностью автономные одноранговые узлы и пути вызовов. Существует (коммерческий) модуль FreePBX, который использует общий диск (поэтому, если один узел отключается и повреждает диск, а затем и другой узел), и базовое обнаружение - но это дешево и легко установить для домашнего пользователя. Elastix предложил модуль, аналогичный FreePBX, бесплатно. (Если вы разбираетесь в Linux, вы можете бесплатно создать тот же "модуль" с помощью бесплатных пакетов Linux DRBD и Heartbeat), но теперь Elastix теперь Isabbel (новое название продукта), поэтому я думаю, что руководство по использованию теперь ушло, Высококачественным является HAAst (бесплатный / коммерческий) продукт, который не имеет общих компонентов и использует сложное обнаружение работоспособности, а также совместим со всеми дистрибутивами Asterisk - но требует больше навыков для установки Linux и может быть более дорогим в зависимости от выпуска (больше для корпоративных телефонных систем). Помимо этого, есть скрипт flipit (бесплатный скрипт), который прост в установке, но его можно назвать "HA". Существует также VMware, который предлагает общий HA (но он не поддерживает PBX/trunk/SIP/ и т. Д.), И вы также найдете некоторых поставщиков, предлагающих RAID 1 в качестве "HA" для УАТС, но это не так уж сложно. И есть больше продуктов в этом спектре тоже. Ни один поставщик не "одобряет", не "одобряет" и не "сертифицирует" какой-либо другой продукт, поэтому вам следует попробовать его перед покупкой.
Вы также найдете людей, предлагающих "контейнеры" в качестве решений HA, но на самом деле это не HA. Контейнеры - это удобный способ развертывания программного обеспечения, и вы можете иметь запасной контейнер УАТС, готовый к развертыванию; но у вас нет синхронизации настроек / голосовой почты / и т. д., нет обнаружения сбоев и т. д.
Просто обязательно задавайте правильные вопросы, когда будете оценивать продукты! Ни один продукт не подходит для всех, но страница дизайна HA VoIP-Info поможет вам выбрать один из них, основываясь на правильных компромиссах. Если вам нужно соответствовать стандартам 911/PSAP или вы хотите создать колл-центр с большим объемом, взгляните на продукт высшего класса HAAst. Если это для домашнего использования, попробуйте сначала flipit или бесплатную версию одного из коммерческих продуктов.