我们目前在单个节点上运行 FreePBX。我希望拥有一组星号实例来分担负载,但主要用于故障转移。我很好奇其他人是如何解决这个问题的。理想情况下,我想使用“免费”(如啤酒)软件。
谢谢你的帮助!
编辑
需要更多信息...说实话,如果有好的解决方案,我们会尝试任何方法:)
我们并不真正关心在故障转移期间通话是否中断。这是理想的,但我可以想象,由于必须在节点之间复制大量状态,实现这一点将非常复杂。
我认为我们不使用 SIP 重新邀请。尽管我运行 freepbx 已有一年多,但我从未真正遇到过该术语。我们的用例只是允许人们使用软件电话拨打外拨电话,并根据 DID 路由一些入站电话。
目前我们在 LXC 容器中运行 FreePBX。这很有效,因为我们的上游运营商也是 SIP(不是 ISDN)。我们有使用 KVM 的经验,但出于效率原因,我们理想情况下希望在 LXC 容器中运行。
答案1
首先看一下这个 voip-info 网页:高可用性设计。它将在 Asterisk 的背景下解释什么是高可用性,什么不是高可用性。(很容易将高可用性与负载平衡混淆)
接下来,看看这个 voip-info 网页:高可用性产品. 它将解释高可用性 Asterisk 的开源 / 商业解决方案有哪些。
很少有解决方案声称可以在故障转移期间保持呼叫畅通(同时保持在标准 SIP 协议内而不会引入新的单点故障)。SIP 重新邀请用于允许端点之间直接进行 RTP 媒体流 - 但 Asterisk 通常停留在 SIP 流中。
需要考虑的另一件事是定义“失败”。用最简单的术语来说,就是 Asterisk 进程死亡。但通常 Asterisk 进程是活动的,只是没有桥接呼叫(因此避免使用简单的进程监控脚本)。如果本地数据中心的网络连接中断(或防火墙发生故障),该怎么办?您的 HA 解决方案应该能够考虑环境因素,如上游路由等,以确定对等端是否不再提供电话服务。一些解决方案使用通用 Linux 心跳软件,这些软件没有任何深入的星号可见性或环境可见性。
如何保持对等点之间的数据同步?从语音邮件到配置数据,再到电话机固件等。像 DRBD 这样的解决方案使它变得简单,但一个对等点的损坏会立即损坏另一个对等点。例如,如果一个对等点上的损坏进程损坏了关键的星号文件,另一个对等点是否会启动(如果他们使用 DRBD,则不会)。因此,请避免使用基于 DRBD 的“解决方案”。还要避免使用从一个节点“备份”到另一个节点的解决方案;它们会备份损坏,并且节点之间的任何差异都会导致挂起/崩溃。选定的数据应该“同步”。
如果您引入负载平衡(即多个活动对等体),那么当 2 个对等体同时收到用户 123 的语音邮件 #1 时,哪一个会“获胜”?这需要您引入用于呼叫桥接的前端服务器、用于语音邮件的后端服务器等。而且您仍然有单点故障或共享组件。
如果您从故障中恢复,并且集群需要重新组装,如果每个对等节点都将数据写入其共享“磁盘”的副本,会发生什么情况?您是否手动开始协调?如果 2 个对等节点同时出现(双主动) - 哪一个会获胜并接管?如果您引入共享磁盘解决方案(DRBD、NFS、iSCSI),那么您就消除了 HA 解决方案中最大和最重要的元素之一:对等节点自治。因此,请寻找“同步”,而不是“共享磁盘”。
最便宜的 asterisk 的“HA”解决方案往往使用共享虚拟磁盘(例如:DRBD/NFS/SMB)和/或共享通道库(例如:Astribank)。正如您将在上面看到的,真正的 HA 解决方案(如 911/PSAP 呼叫中心使用的解决方案)需要完全自主的对等体和呼叫路径。有一个(商业)FreePBX 模块它使用共享磁盘(因此,如果一个对等点发生故障并损坏磁盘,则另一个对等点也会损坏)和基本检测 - 但对于家庭用户来说,它很便宜并且易于安装;然而,FreePBX 几年前就停止了对该产品的支持(仅适用于非常旧的 FreePBX 版本),而他们新的 HA 产品只不过是从一个节点恢复到另一个节点的备份。 弹性纤维免费提供了与 FreePBX 类似的模块。(如果您精通 Linux,那么您可以使用免费提供的 Linux DRBD 和 Heartbeat 包免费创建相同的“模块”),但 Elastix 现在是 Isabbel(新产品名称),所以我认为操作指南现在已经消失了。高端产品是肝素钠一款(免费/商业)产品,没有共享组件,使用复杂的健康检测,与所有 Asterisk 发行版兼容 - 但需要更多 Linux 技能才能安装,并且根据版本不同价格可能更贵(企业电话系统价格更高)。此外,HAast 实际上会在故障转移期间保持通话畅通。旁边是(免费脚本)翻转脚本安装简单,但称其为“HA”有点牵强。还有 VMware/Hyper-V 提供通用 HA(但它不支持 PBX/中继/SIP/等),您还会发现一些供应商提供 RAID 1 作为 PBX 的“HA”,但这有点牵强。而且这个范围内还有更多产品。没有供应商“批准”或“认可”或“认证”任何其他产品,所以您必须先试用再购买。
您还会发现有人提供“容器”作为 HA 解决方案,但这并不是真正的 HA。容器是部署软件的便捷方式,您可以准备好一个备用的 PBX 容器以备部署;但是,您无法同步设置/语音邮件/等,也无法检测故障等。
评估产品时,一定要问正确的问题!没有一种产品适合所有人 - 但 voip-info HA 设计页面将帮助您根据正确的权衡选择一种产品。如果您需要满足 911/PSAP 标准或正在构建高容量呼叫中心,请查看高端 HAAst 产品。如果是家庭使用,请先尝试 flipit 或其中一个商业产品的免费版本。即使是 linux heartbeat 包(免费)也能让您无需花一分钱就获得部分 HA。