一、故障转移方式☘️

故障转移方式有两种,一种是网络故障转移,还有一种是 Failover 心跳线故障转移。

1、网络故障转移

网络故障转移基于心跳信号检测,主备设备使用 Failover 地址发送网络故障转移心跳信号数据包。

(1) Failover 地址配置

导航至 Device Management ›› Devices ››,选择设备,点击 Failover Network 进行 Failover 地址配置。

image-20220312183123212

配置建议:

  • 1️⃣ 若要确保最稳定的网络故障转移配置,请选择两个通道进行网络故障转移通信。F5 认为最佳做法是同时选择管理地址和 TMM 网络地址。避免在 BIG-IP 系统初始化时以及在完全建立 TMM 网络连接通道之前出现意外的故障转移情况。为此,必须配置管理和 TMM 故障转移单播地址。

  • 2️⃣ 确保已为 DSC 组成员之间的正确时间同步配置了可靠的 NTP 服务器。

  • 3️⃣ 在部署网络故障转移之前,若要确保预期网络的可靠性,请考虑以下建议:

    • 确保您有权访问和控制临时设备,以及 BIG-IP 系统之间的链接。

    • 测试BIG-IP系统之间的故障转移网络,以确保网络提供低于100ms的低延迟。

      重要事项:由于性能较差的网络而丢弃或延迟的 BIG-IP 检测信号消息可能会触发 BIG-IP 对等系统之间的意外故障转移。

(2)网络故障切换的服务端口和协议

​ 配置网络故障转移时,冗余 BIG-IP 系统使用网络来确定对端设备的状态。当 BIG-IP 冗余系统配置为使用网络故障转移时,系统将通过配置的 Failover 地址进行通信。下表显示了用于 BIG-IP 网络故障转移的传输协议和服务端口。

BIG-IP LTM version Protocol Service port
16.x UDP 1026
15.x UDP 1026
14.x UDP 1026
13.x UDP 1026
12.x UDP 1026
11.x UDP 1026
10.x UDP 1026
9.6.x UDP 1026
9.4.x UDP 1026
9.3.x TCP 1028
9.2.x SCTP 1028
9.0.1 through 9.1.3 TCP 1028
9.0.0 UDP 1028

(3)Mirror 地址配置

导航至 Device Management ›› Devices ››,选择设备,点击 Mirroring 进行 Mirror 地址配置。

image-20220312191310071

​ Mirror 地址可以配置为Self IP地址或者MGMT地址,“**主本地镜像地址"设置,以分配系统用于建立镜像通道的首选自身 IP 地址。此外,还可以为设备组的每个成员配置"辅助本地镜像地址”**设置。“**辅助本地镜像地址”**是当无法使用主镜像建立通道时,系统将使用该地址建立镜像通道。

要点: 配置主本地镜像地址和辅助本地镜像地址时,BIG-IP 系统仅将其中一个地址用于镜像链路,并且首选主地址。如果活动镜像链路出现故障,备用 BIG-IP 系统将关闭所有当前镜像连接,并开始使用其他镜像链路镜像新连接。

(4)用于 BIG-IP 连接和持久性镜像的传输协议

连接会话保持镜像功能允许 BIG-IP 系统将连接会话保持信息复制到冗余对的备用单元。

BIG-IP LTM Version Protocol Port
11.6.0 and later TCP 1029 - 1055
11.4.0 through 11.5.x TCP 1029 - 1043
11.0.0 through 11.3.0 TCP 1028
10.x TCP 1028
9.6.x TCP 1028
9.4.x TCP 1028
9.3.x TCP 1028
9.2.x SCTP 1028
9.0.1 through 9.1.3 TCP 1028
9.0.0 UDP 1028

注意:从 BIG-IP 11.4.0 开始,BIG-IP 系统为每个流量组维护一个单独的镜像通道。每个连接通道的端口范围从 TCP 1029 开始,并为每个创建的新流量组和通道递增。

(5)网络故障转移检测信号的数据包速率

BIG-IP 系统通过网络发送检测信号数据包,以传达可用性以及活动或待机状态。系统以一定的速率发送检测信号数据包,该速率因 BIG-IP 系统的版本而异。下表显示了每个 BIG-IP 版本的检测信号速率。

BIG-IP 版本 心跳信号检测速率 (每秒数据包数) 详细信息
16.x 10 网络故障转移心跳增加以提供快速故障转移功能。
15.x 10 网络故障转移心跳增加以提供快速故障转移功能。
14.x 10 网络故障转移心跳增加以提供快速故障转移功能。
13.x 10 网络故障转移心跳增加以提供快速故障转移功能。
12.x 10 网络故障转移心跳增加以提供快速故障转移功能。
11.x 10 网络故障转移心跳增加以提供快速故障转移功能。
10.2.x 10 网络故障转移心跳增加以提供快速故障转移功能。
10.1.0 10 网络故障转移心跳增加以提供快速故障转移功能。
10.0.x 1 - 2 网络故障切换检测信号与状态镜像通信分离。
9.4.x 1 - 2 网络故障切换检测信号与状态镜像通信分离。
9.3.x 1 - 2 网络故障切换检测信号与状态镜像通信分离。
9.2.x 3 网络故障切换心跳信号与大IP系统之间的状态镜像通信一起发送。
9.1.x 3 网络故障切换心跳信号与大IP系统之间的状态镜像通信一起发送。
9.0.x 3 网络故障切换心跳信号与大IP系统之间的状态镜像通信一起发送。

(6)故障切换时间

​ BIG-IP网络故障切换功能允许设备使用网络来传达其故障切换状态。备用BIG-IP系统使用一个内部计时器来跟踪自备用设备从活动单元接收到上次故障转移状态更新以来经过的时间。系统使用 nettimeoutsec 数据库键值,用于指定备用设备在上次从活动设备更新后变为活动设备之前等待的秒数。默认设置为三秒。由于单元之间的网络连接可能会穿越多个网络连接和设备,因此网络状况可能偶尔会阻止单元在短时间内(例如,少量丢包或短暂的网络中断)彼此通信其状态。此设置有助于在临时通信中断的情况下防止过早故障切换。

注意:对于大多数环境,F5建议使用默认故障切换。nettimeoutsec 值为3秒。

1
2
3
4
5
# 如需更改 nettimeoutsec 数据库键值,使用如下语法:
tmsh modify /sys db failover.nettimeoutsec value <new_value>

# 示例:更改 nettimeoutsec 数据库键值为5s
tmsh modify /sys db failover.nettimeoutsec value 5

二、Failover 互联心跳线故障转移🌿

​ Failover 互联心跳线故障切换也基于心跳检测,即一个 BIG-IP 系统不断向另一个系统发送电压。如果没有从另一个BIG-IP系统获得响应,则在不到一秒钟的时间内发生到对等系统的故障切换。

​ Failover 互联心跳线故障转移只是一个心跳信号,不携带任何状态信息。为了使某些功能正常运行,必须通过网络进行通信。例如,流量管理微内核(TMM)使用网络将数据包和流状态更新同步到对等方,以进行连接镜像。要启用正确的状态报告和镜像,F5建议您在硬连线故障切换之外配置网络故障切换。

三、网络和硬连线故障转移的比较🍀

序号 网络故障转移 硬连线故障转移
1 基于检测信号检测,其中系统通过内部 IP 网络发送检测信号数据包。 基于一种简单的机制,其中有源器件置位(或取消置位)电压(CTS/RTS)信号以指示有源状态。
2 支持包含两个或多个 BIG-IP 设备的设备组部署。 仅支持两个 BIG-IP 设备。
3 支持基于机箱的平台 (VIPRIONS)、BIG-IP VCMP Guest 和 BIG-IP 虚拟版 (VE) 系统。 不支持基于机箱的平台 (VIPRIONS)、BIG-IP VCMP Guest 和 BIG-IP 虚拟版 (VE) 系统。
4 支持主动-主动 HA 配置。 不支持主动-主动 HA 配置。
5 支持具有多个流量组的 HA 配置 不支持具有多个流量组的 HA 配置。
6 网络数据包包含用于传达设备可用性和故障转移状态的数据。 不会通过故障转移电缆发送或接收任何数据。
7 为故障转移设置的网络接口还可用于设备的配置同步和连接镜像。 硬连线故障转移电缆专用于 HA 故障转移使用。
8 可以在多个BIG-IP设备之间的IP网络中设置一个距离。 两个 BIG-IP 设备之间的距离受最大硬连线电缆长度 50 英尺的限制。
9 网络问题可能会导致 BIG-IP 系统遇到故障转移问题。 独立于网络问题。
10 数据库变量 failover.nettimeoutsec 设置在未收到检测信号消息后将对等体视为关闭的时间。最小值为 1。 硬连线故障转移可以提供不到一秒的更快故障转移响应时间。

注意:如果将 BIG-IP 高可用性对配置为使用网络故障转移,并且硬连线故障转移电缆也连接这两个单元,则硬连线故障转移始终具有优先权。如果网络故障转移流量受到威胁,这两个设备不会进行故障转移,因为硬连线故障转移电缆仍会连接它们。

四、F5 双机故障转移事件🌲

1、守护进程异常导致切换

下表列出了每个受监视守护程序的名称、说明、超时期限和默认故障安全操作。

守护 进程 描述 检测信号超时 默认故障安全操作
MCPD 消息传递和配置 300秒 Restart All* :重启所有服务
TMM 流量管理 10 秒 Go Offline & Down Links & restart* :系统将脱机,关闭所有链接,并重新启动服务
SOD 故障转移 60秒 Restart All* :重启所有服务
BIGD 运行状况监视器 150秒 Restart :系统将重新启动此系统服务
BCM56XXD 交换机硬件驱动程序 60秒 Restart :系统将重新启动此系统服务
TMROUTED 路由表管理 30 秒 Restart :系统将重新启动此系统服务
CBRD 提供基于 XML 内容的路由的服务 30 秒 Restart :系统将重新启动此系统服务
SCRIPTD 基于 tmsh 命令执行用户定义脚本的守护程序 60秒 Restart :系统将重新启动此系统服务
SNMPD 用于远程监视的简单网络管理协议代理 300秒 Restart :系统将重新启动此系统服务

特定于模块的守护程序

只有在特定于守护程序的模块获得Licensed许可并provisioned配置后,BIG-IP系统才会监控以下守护程序。

模块 守护 进程 描述 检测信号超时 默认故障安全操作
DNS(以前称为 GTM) GTMD 全局流量管理 60秒 Go Offline & Restart:离线并重新启动改进程
vCMP VCMPD vCMP 客户机管理守护程序 60秒 Restart :系统将重新启动此系统服务
ASM BD 应用程序安全管理器策略守护程序 30秒 Restart :系统将重新启动此系统服务
AAM(前身为 WAM) WAMD 应用程序加速管理器守护程序 30秒 Restart :系统将重新启动此系统服务

2、网络异常导致切换

BIG-IP 系统监视网络组件,下表介绍了网络异常导致的故障转移切换。

高可用性功能 描述 故障安全操作
pool-member-down 配置网关故障保护功能后,BIG-IP系统将监视网关池成员,并在可用池成员少于指定数量时采取行动。 故障转移到对等方
vlan-failsafe 配置VLAN故障保护功能后,BIG-IP系统会监控通过指定VLAN的网络流量,并在检测到网络连接丢失时采取措施。 重新启动
ha-group-score 当HA组被分配给流量组时,系统会监视 trunk、pool 和 VIPRION 群集等对象。当您将HA组与特定设备上的流量组实例关联时,BIG-IP系统会根据trunk、pool或群集可用性,为关联的流量组计算该设备的运行状况分数。 故障转移

3、硬件故障导致切换

BIG-IP 系统监视各种硬件组件,然后在系统检测到故障时采取适当的措施。如下表所示:

高可用性功能 描述 故障安全操作
crypto-failsafe 指示 SSL 卡已锁定在具有 Cavium Nitrox、Cave Creek 或 Coleto Creek SSL 卡的 BIG-IP 系统上 go-offline-downlinks :系统离线,关闭所有链接
nic-failafe 由 TMM 用于检测 HSB 连接接口中的发送/接收故障 reboot :重启系统
hardware-failover 系统用于报告配置为使用硬连线故障切换的系统的故障转移电缆上的电压电平下降 go-active :进入Active状态
switchboard-failsafe 用于检测 Broadcom 交换机和 TMM 之间的数据路径中的发送/接收故障 Go Offline Abort TM*

五、对守护程序故障安全事件进行故障排除🍃

1、查看系统日志文件

通过查看 /var/log/ltm 文件来验证哪个守护程序导致了故障转移操作。找到 HA daemon_heartbeat消息,并查看检测信号失败之前发生的任何相关日志记录消息。

1
cat /var/log/ltm

2、检查守护程序核心文件

通过检查 /var/core/shared/core 目录来确定守护程序是否生成了核心文件。

1
2
ls /var/core/
ls /shared/core/

3、检查系统资源相关问题

您可以通过运行命令(如 top 命令)来检查与系统资源相关的问题。

1
top

4、查看系统 HA 表

您可以通过从命令行查看 HA 表来检查各种进程的 HA 状态。

1
tmsh show sys ha-status

六、参考链接🌳

感谢以下文档支持!

🐿️Comparison of hardwired failover and network failover features (f5.com)

🦦Packet rate for network failover heartbeat (f5.com)

🦥Troubleshooting BIG-IP failover events (f5.com)