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 ]
then
systemctl stop keepalived
fi
[root@test2 opt]#chmod 777 check_nginx.sh
[root@test2 keepalived]# cat keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_01
vrrp_skip_check_adv_addr
vrrp_strict
vrrp_garp_interval 0
vrrp_gna_interval 0
vrrp_iptables
}
vrrp_script check_nginx {
script "/opt/check_nginx.sh"
interval 5
}
vrrp_instance VI_1 {
state MASTER
interface ens33
virtual_router_id 51
priority 120
advert_int 1
authentication {
auth_type PASS
auth_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 keepalived
global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_02
vrrp_skip_check_adv_addr
vrrp_strict
vrrp_garp_interval 0
vrrp_gna_interval 0
vrrp_iptables
}
vrrp_script check_nginx {
script "/opt/check_nginx.sh"
interval 5
}
vrrp_instance VI_2 {
state BACKUP
interface ens33
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_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、检查是否与其他服务的心跳线配置冲突。