创建 SBC 高可用性集群

通过 SBC(会话边界控制器)连接 IP 电话时,如果 SBC 服务主机离线,可能会形成单点故障。为了克服这一潜在风险,您可以创建一个以主备模式运行的 SBC 高可用性集群。建立 SBC 集群后,SBC 成员节点将位于集群的浮动 LAN IP 之后,并由当前活动主机管理。当主 SBC 主机离线时,远程 IP 电话可以通过激活的备用 SBC 主机透明地连接,反之亦然。SBC HA 集群基于crmsh(一个用于 Pacemaker 高可用性堆栈的集群管理 shell)。

先决条件

The SBC High Availability (HA) cluster operates in active-passive mode

  • 集群成员节点必须满足以下条件:
  • 有两台(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 高可用性集群

Installation process overview for 3CX SBC HA

要创建 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。

Create an SBC HA Cluster with 3CX SBCs

  • SBC安装完成后,系统会询问您是否创建SBC高可用性集群。请选择<Yes>继续进行集群安装并按<Enter>

3CX SBC High Availability Cluster Prerequisites

  • 阅读并确认显示的要求,以满足安装 SBC HA 集群的条件。按 <Enter> 继续。

Select which SBC cluster node is being installed

  • 选择当前正在安装的节点,即 <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> 继续。
    选择与上一步中选择的相同的网络接口。

Enable the "Ping Resource" option and specify up to three IP or FQDN addresses separated by space as ping targets

  • 选择是否启用集群的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

  • 如果集群配置错误,成员节点之间的连接可能会受到影响,节点可能会失去连接或陷入重启循环。要解决此问题,需要阻止集群成员之间的通信。最简单的解决方案是:
  1. 关闭两个节点。
  2. 只启动一个节点,启动后,检查集群状态和 SBC 连接性。
  3. 如果可以验证集群状态和连接性,则可以尝试启动第二个节点。启动后,再次验证集群状态和SBC连接性。
  • 如果集群和/或 SBC 服务仍然配置错误,请断开连接并清除每个节点,使用以下命令替换错误的配置:

sudo apt remove --purge 3cxsbc crmsh pacemaker corosync

sudo apt autoremove --purge

之后,您可以继续在每个节点上从头开始重新安装 SBC HA 集群。

另请参阅

最后更新时间

本文件最后更新于2026年5月28日

https://www.3cx.cn/docs/sbc-high-availability-cluster/