创建 SBC 高可用性集群
通过 SBC(会话边界控制器)连接 IP 电话时,如果 SBC 服务主机离线,可能会形成单点故障。为了克服这一潜在风险,您可以创建一个以主备模式运行的 SBC 高可用性集群。建立 SBC 集群后,SBC 成员节点将位于集群的浮动 LAN IP 之后,并由当前活动主机管理。当主 SBC 主机离线时,远程 IP 电话可以通过激活的备用 SBC 主机透明地连接,反之亦然。SBC HA 集群基于crmsh(一个用于 Pacemaker 高可用性堆栈的集群管理 shell)。
先决条件
- 集群成员节点必须满足以下条件:
- 有两台(2 台)PC 或 Raspberry Pi,运行相同版本的 Debian 或 Raspbian Linux 并且具有相同的更新补丁。
- 按顺序进行配置,即先配置活动/主节点,然后配置备用/被动节点。
- 配置为同一子网内的静态 LAN IP,并且时区相同。在每个节点上运行以下命令以避免同步问题:
timedatectl set-timezone your_time_zone
- 将相同的网络接口名称分配给相同的服务,例如,在每个节点上都使用 ens192 分配给 SBC 服务。
- 能够不受限制地相互通信。
- 如果启用了 Ping 资源 选项,则能够向指定的 ping 目标发送和接收 ICMP(ping)消息。
- HA 集群必须分配一个静态 LAN 地址作为浮动 IP。
创建 SBC 高可用性集群
要创建 SBC HA 集群,首先在管理控制台的语音和聊天中创建 SBC 连接 ,然后在同一子网上依次对节点(1)和节点(2)执行以下步骤:
- 运行以下命令以启动 SBC HA 集群安装:
sudo bash -c "$(wget -qO- http://downloads-global.3cx.com/downloads/sbccluster/3cxsbc.zip)"
- 按照指南在您的 Linux 主机上配置 SBC。在安装之前,脚本会验证 SBC 主机与 PBX 的连接性。请确保:
- 您的 PBX 主机允许并响应来自 SBC 成员节点的连接。
- 你使用相同身份验证密钥 ID配置 SBC 1 和 SBC 2。
- SBC安装完成后,系统会询问您是否创建SBC高可用性集群。请选择<Yes>继续进行集群安装并按<Enter>。
- 阅读并确认显示的要求,以满足安装 SBC HA 集群的条件。按 <Enter> 继续。
- 选择当前正在安装的节点,即 <First>(第一个)或 <Second>(第二个),然后按 <Enter> 继续。请记住,为两台机器选择相同的选项会导致网络和集群配置错误。
选择要用于此节点上 SBC 服务的网络接口,然后选择 <Next>。请注意,如先决条件部分所述,第一个节点和第二个节点上的网络接口名称必须相同。
- 如果您正在:
- 配置 SBC 1:输入 SBC 2 的静态 LAN IP。
- 配置 SBC 2:输入 SBC 1 的静态 LAN IP。
然后选择 <Next> 继续。
- 输入一个未分配的 LAN 地址,作为在两个节点上运行的集群 SBC 服务的浮动 IP 地址。SBC 1 和 SBC 2 都必须配置使用此 IP 地址。 选择 <Next> 继续。
选择与上一步中选择的相同的网络接口。
- 选择是否启用集群的Ping 资源选项(推荐)以监控节点的连接性。选择:
- Yes - 指定最多三(3)个以空格分隔的 IP 或 FQDN 地址作为 ping 目标,然后单击 <Next>。
- No - 禁用 Ping 资源选项。
- 验证显示的 SBC 集群信息,然后选择<Confirm and install>(确认并安装)将你的配置应用到这个节点。
- 如果您正在安装SBC 1, 选择 <Create>以首次初始化集群资源并启动 SBC 服务。仅当安装替换的第一个/活动节点,且集群资源已创建且 SBC 服务在已激活的被动节点上运行时,才使用 <Skip>(跳过)。
要添加第二个节点,请等待约 30 秒,等待第一个节点启动,然后重复上述步骤。
更新SBC集群节点
要更新集群成员节点上的 SBC 服务,请转到:系统 > 更新在 3CX 管理控制台中,按照以下步骤操作:
- 选择 SBC 连接并单击下载这将触发活动集群节点(1)将SBC服务更新到最新版本并重启。当先前活动的节点(1)离线重启后,被动节点(2)激活并连接到PBX。
- 选择 SBC 连接并单击下载 再次执行此操作。现在,这将触发当前活动集群节点 (2) 上的 SBC 服务更新,并随后重启该机器。
- 当先前活动的节点(2)重新启动时,它会触发已更新的节点(1)变为活动状态,并为集群提供 SBC 服务。
移除 SBC 集群节点
要从 SBC 集群中移除成员节点,请按以下步骤操作:
- 运行SBC HA集群安装脚本:
sudo bash -c "$(wget -qO- http://downloads-global.3cx.com/downloads/sbccluster/3cxsbc.zip)"
- 出现提示时,选择卸载集群的选项。
- 当提示移除集群资源时,选择 Skip(跳过),除非您要完全移除整个集群。
- 选择清除 SBC 服务的选项。
已知问题和局限性
管理SBC高可用性集群时,请记住以下几点:
- 必须按照所有前提条件描述的方式配置集群服务。配置错误可能导致集群无法正常工作,并阻止与成员节点之间的网络连接。
- SBC 集群无法恢复活动通话,即无法从活动节点恢复到被动节点。
- 故障转移发生后,新激活的 SBC 节点需要几秒钟后才能处理新的通话。但是,完整功能(如通过管理控制台进行电话配置)可能需要长达两(2)分钟才能恢复。
- 如果任何成员节点的本地网络连接暂时断开或中断,当连接恢复时,集群服务可能无法恢复。请确保成员节点之间的网络连接,以避免导致节点同时承担活动角色并在两个节点上激活集群资源。此问题将在后续的 Debian / Raspbian Linux 版本中解决。
故障排除
- 要检查 SBC 集群的状态,可以在任何成员节点上使用以下命令:
- 显示集群和成员节点的状态:
crm status
- 实时监控集群活动:
crm_mon
这些命令需要使用“sudo”或以“root”用户身份执行。
- 如果您错误配置了集群设置,最安全解决方法是清除设置并从脚本安装重新开始,而不是尝试手动修复问题。
- 要在发生故障转移事件时收到通知,请在 管理控制台 > 仪表盘 > 通知 中启用 当中继/SBC 的状态发生变化时 选项。
- 您可以通过运行以下命令获取每个节点的详细集群服务日志消息:
journalctl -l -u pacemaker.service -u corosync.service
- 如果集群配置错误,成员节点之间的连接可能会受到影响,节点可能会失去连接或陷入重启循环。要解决此问题,需要阻止集群成员之间的通信。最简单的解决方案是:
- 关闭两个节点。
- 只启动一个节点,启动后,检查集群状态和 SBC 连接性。
- 如果可以验证集群状态和连接性,则可以尝试启动第二个节点。启动后,再次验证集群状态和SBC连接性。
- 如果集群和/或 SBC 服务仍然配置错误,请断开连接并清除每个节点,使用以下命令替换错误的配置:
sudo apt remove --purge 3cxsbc crmsh pacemaker corosync
sudo apt autoremove --purge
之后,您可以继续在每个节点上从头开始重新安装 SBC HA 集群。
另请参阅
最后更新时间
本文件最后更新于2026年5月28日
