我们目前在单个节点上运行FreePBX。 我想有一个星号实例群集共享负载,但主要是故障转移。 我很好奇别人怎么解决这个问题。 理想情况下,我想使用“免费”(如啤酒)软件。
谢谢你的帮助!
更多的信息要求…说实话,如果这是一个很好的解决scheme,我们会尝试任何东西:)
我们并不关心在故障转移期间电话是否被中断。 这将是理想的,但我可以想象,由于需要在节点之间复制的状态量,因此发生这种情况将非常复杂。
我不认为我们不使用SIP重新邀请。 尽pipe运行freepbx超过一年,我从来没有真正遇到这个术语。 我们的使用案例只允许用户使用软电话发出呼叫,并根据DID路由一些呼入电话。
现在我们在一个LXC容器中运行FreePBX。 这是因为我们的上游运营商也是SIP(而不是ISDN)。 我们有KVM的经验,但是我们理想的是为了效率的原因而在LXC容器中运行。
首先看看这个voip-info网页: 高可用性devise 。 它将解释什么是高可用性,而不是 – 在Asterisk的情况下。 (容易混淆高可用性与负载平衡)
接下来,看看这个voip-info网页: 高可用性产品 。 它将解释什么是高可用性Asterisk的开源/商业解决scheme。
没有解决scheme声称在故障转移期间保持呼叫(同时保持在标准SIP协议内而不引入新的单点故障)。 SIP重新邀请用于允许端点之间直接传输RTP媒体stream,但Asterisk通常停留在SIPstream中。 不是真正的医pipe局问题。
还有一件事要考虑的是定义一个“失败”。 用最简单的话来说就是Asterisk进程正在死亡。 但是,Asterisk进程通常不会桥接调用(因此避免使用简单的进程监控脚本)。 如果networking连接在本地数据中心(或防火墙失败)出现,该怎么办? 您的高可用性解决scheme应该能够考虑环境因素,如上游路由/等,以确定对方是否不能再提供电话服务。 一些使用通用Linux心跳软件的解决scheme不具有深刻的星号可视性或环境可视性。
如何保持同行之间的数据同步? 从语音邮件到configuration数据,到电话固件等等。像DRBD这样的解决scheme使其变得容易,但是由同一方的腐败立即腐蚀另一方。 例如,如果一个对等体上的损坏进程损坏了关键的星号文件,另一个对等体将启动(如果他们使用DRBD,则不启动)。 所以避免基于DRBD的“解决scheme”。
如果引入负载均衡(即多个活动对等体),那么在两个对等体同时接收用户123的语音邮件#1的情况下哪个“赢”? 这要求您引入前端服务器以实现呼叫桥接,后端语音邮件等。您仍然有单点故障或共享组件。
如果您从故障中恢复并且集群需要重新组装,那么如果每个对等方都将数据写入共享“磁盘”的副本,会发生什么情况? 你手动开始协调? 如果同时出现两个同事(双重主动) – 哪一个胜利并接pipe呢? 如果您引入了共享磁盘解决scheme(DRBD,NFS,iSCSI),那么您将消除HA解决scheme中最重要和最重要的要素之一:对等自治。 所以寻找“同步”,而不是“共享磁盘”。
用于星号的最便宜的“HA”解决scheme倾向于使用共享虚拟磁盘(例如:DRBD)和/或通道库(例如:Astribank)。 如上所述,真正的HA解决scheme(如911 / PSAP呼叫中心所使用的解决scheme)需要完全自治的对等体和呼叫path。 在低端是一个(商业) FreePBX模块 ,它使用共享磁盘(所以如果一个对端出现故障并损坏磁盘,那么另一个对端也会损坏),并且检测简单 – 但是它的价格低廉且易于安装家庭用户。 Elastix提供了与FreePBX几乎完全相同的模块。 (如果你对Linux精通,那么你可以免费创build相同的“模块”,免费提供Linux DRBD和Heartbeat软件包)。 高端产品是HAAst (免费/商业)产品,没有共享组件,使用复杂的健康检测,并且与所有的Asterisk发行版兼容 – 但是需要更多的Linux技能来安装,并且根据版本可能会更昂贵(更多用于企业电话系统)。 而旁边是一个(免费的脚本) flipit脚本,安装起来很简单,但是可以称之为“HA”。 而且这个频谱也有更多的产品。 没有供应商“批准”或“认可”或“authentication”任何其他产品,因此您必须在购买之前尝试。
当你评估产品时,一定要问正确的问题! 没有一款产品适合所有人 – 但是voip-info HAdevise页面将帮助您根据正确的权衡select一个产品。 如果您需要符合911 / PSAP标准或正在build设一个大容量的呼叫中心,则必须使用高端产品(HAAst)。 如果是家庭使用,请首先尝试flipit或其中一种商业产品的免费版本。