keepalive检测VIP地址漂移主备切换
keepalive:
调度器的高可用
VIP主备之间切换,主在工作时,VIP会在主上,主停止工作,VIP飘移到备服务器。
在主备的优先级不变的情况下,主恢复工作,vip会飘回到主服务器
1、配优先级
2、配置vip和真实服务器
3、主备的id要一致。
4、主备的id要区分。
keepalive是专门为lvs打造的,但是不是为lvs专门使用的
keepalive也可以使用nginx,haproxy
keepalive+nginx实现高可用
nginx1 192.168.11.137
nginx2 192.168.11.138
客户端 192.168.11.136
nginx1配置
[root@test2 opt]# cat check_nginx.sh
#!/bin/bash
/usr/bin/curl -I http://localhost &> /dev/null
if [ $? -ne 0 ]
thensystemctl stop keepalived
fi
[root@test2 opt]#chmod 777 check_nginx.sh
[root@test2 keepalived]# cat keepalived.conf
! Configuration File for keepalivedglobal_defs {notification_email {acassen@firewall.locfailover@firewall.locsysadmin@firewall.loc}notification_email_from Alexandre.Cassen@firewall.locsmtp_server 127.0.0.1smtp_connect_timeout 30router_id LVS_01vrrp_skip_check_adv_addrvrrp_strictvrrp_garp_interval 0vrrp_gna_interval 0vrrp_iptables
}
vrrp_script check_nginx {script "/opt/check_nginx.sh"interval 5
}
vrrp_instance VI_1 {state MASTERinterface ens33virtual_router_id 51priority 120advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.11.100}track_script {check_nginx}
}systemctl stop nginx
systemctl status keepalived.service
nginx2
[root@test3 ~]# cat /etc/keepalived/keepalived.conf
! Configuration File for keepalivedglobal_defs {notification_email {acassen@firewall.locfailover@firewall.locsysadmin@firewall.loc}notification_email_from Alexandre.Cassen@firewall.locsmtp_server 127.0.0.1smtp_connect_timeout 30router_id LVS_02vrrp_skip_check_adv_addrvrrp_strictvrrp_garp_interval 0vrrp_gna_interval 0vrrp_iptables
}
vrrp_script check_nginx {script "/opt/check_nginx.sh"interval 5
}
vrrp_instance VI_2 {state BACKUPinterface ens33virtual_router_id 51priority 100advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.11.100}track_script {check_nginx}
}
客户机测试
curl 192.168.11.100
脑裂是什么?
HA高可用架构中的一个特殊现象,只要使用VIP地址代理冗余模式的高可用。都有可能出现脑裂的问题。
主和备同时都有VIP地址。
现象:主和备无法确定各自的身份,同时出现了VIP地址,两边都起来了,但是两边都无法使用
原因:
1、keepalive的配置文件问题
2、心跳线(网线)断了,老化。
3、网卡出了问题(硬件),ip地址配置冲突。
4、防火墙的策略,iptables的策略,屏蔽组播的地址广播,屏蔽了vrrp协议的报文(224.0.0.18)
5、两台服务器时间不同步也可能导致
6、其他服务配置对心跳线的检测造成了干扰。
解决方法:
1、检查keepalive配置文件
2、检查心跳线,查看是否更换
3、检查硬件网卡物理连接状态(插口是否冲动),Linux检查网卡状态(lshw)
IP地址冲突:检查冲突的IP配置,确保唯一性。
若使用的是DHCP服务自动分配的地址,则修改DHCP地址范围。
4、检查iptables策略,是否有阻止通信的防火墙策略,查看是否可以删除
5、重新通过时间同步服务器同步时间
),Linux检查网卡状态(lshw)
IP地址冲突:检查冲突的IP配置,确保唯一性。
若使用的是DHCP服务自动分配的地址,则修改DHCP地址范围。
4、检查iptables策略,是否有阻止通信的防火墙策略,查看是否可以删除
5、重新通过时间同步服务器同步时间
6、检查是否与其他服务的心跳线配置冲突。