问题描述:开通主从实例后,在两台实例机器上输入ip a,都能看到vip在网卡上
检查问题:检查机器网络是否互通,检查vip是否是通的,看keepalived配置文件是单播还是组播的方式,检查发现网络是通的,配置文件为组播配置。
解决办法:如果是组播,可能是因为机器不支持组播方式导致脑裂,需要把keepalived配置文件改为单播方式,若是改了之后还不行,则可能是防火墙有限制vrrp的传输。
查看原配置文件发现为组播方式:
cat keepalived_3002_3001.conf.bak
! Configuration File for keepalived
global_defs {
router_id GW11
}
vrrp_script chkgw3001 {
script "/app/mysql/bin/inst_619410329666205780/teledb_619410329666205780/gateway_3000/gateway_3001_3002/chkgw3001.sh"
interval 10
weight -20
}
vrrp_instance VI_3001 {
state BACKUP
interface eth0
virtual_router_id 3
priority 90
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
VIP dev eth0 label eth0:3 #vip输入填写vipip
}
track_script {
chkgw3001
}
}
改为单播方式:
cat keepalived_3002_3001.conf
! Configuration File for keepalived
global_defs {
router_id GW11
}
vrrp_script chkgw3001 {
script "/app/mysql/bin/inst_619410329666205780/teledb_619410329666205780/gateway_3000/gateway_3001_3002/chkgw3001.sh"
interval 10
weight -20
}
vrrp_instance VI_3001 {
state BACKUP
interface eth0
virtual_router_id 3
priority 90
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
unicast_src_ip 本机ip #源ip,本机IP
unicast_peer {
目标ip #目标IP,备节点IP,有多少备节点就填多少个IP
}
virtual_ipaddress {
vip dev eth0 label eth0:3 #vip,填写vip
}
track_script {
chkgw3001
}
}
从库机器keepalived配置文件修改同上
Keepalived配置文件修改完成后,重启keepalived,sudo systemctl restart keepalived,vip就正常了。