F5负载均衡系列教程七【F5高可用相关知识】
一、failover相关知识点
1、network failover和 hardwired failover的区别
- hardwired failover只能用于active/standby架构,无法用于active/active架构和viprion或者F5的虚拟机中,因为这个是需要用硬件线路连接两台F5设备;
- network failover可以用于各类2台设备以上的F5双机部署中;Failover.NetTimeoutSec默认是3秒;
- hardwired failover和network failover是可以同时配置的,此时只有两者都中断,才会触发failover;
2、配置HA高可用性
- 前期准备:配置基础的网络,相同的版本,激活license,授权相同的模块,配置NTP同步系统时间等;其中每台设备都要有独一无二的设备名,重名可能会导致有问题;
- 配置DSC communication设置:主要就是配置一个ip用于双机通讯;建议使用单独物理线路将双机互联,配置单独的vlan和selfip用于DSC communication,这个ip用于同步配置数据,network failover 心跳,传输monitoring数据(这个不是monitor,是一个镜像,主要是用于对会话保持之类的镜像,因为不把会话保持数据同步到备机,主备切换的时候会话保持就丢失了);这个IP需要放开443, 4353, 1026 (UDP) 、22 端口;
至少要配置上图的config sync和mirroring的ip
- 配置 device trust:这个只需要在一台机配置即可,主要是需要交换证书去建立信任关系;
- 配置device group:这里面有failover和sync-only可选;以及自动同步,手工同步,手工增量同步等可选;这个主要是用于配置同步;系统默认会有个Traffic Group1,所有需要同步的数据会和这个容器关联;
- 配置需要同步的数据:可以配置多个traffic group,traffic group可以和virtual servers, pools, nodes, monitors, profiles, policies, iRules,等关联;traffic group决定了那些资源是在那台机当主机运行;这里面需要注意下,如果对pool或者node单独做了monitor,那么不同设备的探测结果可能不同,这是由于设备的网络环境差异导致的。同步配置主要有Push和Pull可以选,push是将本机的配置同步到其他设备,pull是拉其他设备的配置到本机;
3、由于不同的人维护,可能会出现设备配置不同步的情况,如何判断那个设备的配置是最新的?
- 方法一:登录所有设备,有下图样式的是最新配置的,F5默认在配置出现改动的时候会有这个提示,意思是将这个设备配置同步到其他设备;
- 方法二:show cm device-group group_sync_failover,此处需要将group_sync_failover替换为自己配置的device groups名称;时间新的那台就是配置最新的;
- 方法三:show cm sync-status 按里面的建议操作
4、traffic group 的failover方法:
教程显示是三种,分别是preferred device order,load aware和HA score,但是在13.1版本中,只有preferred device order和HA score;preferred device order就是按顺序,HA score是根据HA GROUP的值算出来的,值比较高的会成为下一个主机
5、可以触发failover的情况
- 失去failover heartbeat;
- Failover Method设置为Failover to Device With Best HA Score时,HA Group探测的pool down;
- 配置了 automatic Failback,然后主机恢复正常;
- 触发了HA配置里面的fail-safe,比如一些重要进程mcpd 、tmm、sod等down了;show sys ha-status all-properties这个命令可以看到进程有问题时候的处理方法;
- 触发了HA配置里面的gateway pool down;
- 触发了HA配置里面的vlan 中断;
6、配置connection mirroring和persistence mirroring
默认情况下,F5的备机是不会有主机的connection table和persistence records,当设备发生主备切换时,某些配置了persistence的业务可能会发生异常;可以通过配置connection mirroring和persistence mirroring来解决该问题。但是开启了这个比较吃设备性能。connection mirroring是在VS上开启Connection Mirroring即可(HTTP和UDP是不需要开的,只有长连接的TCP才需要,比如FTP和telnet)。persistence这个除了cookie,其他的都可以开,cookie是不需要F5去维护会话保持信息的。