解决keepalived服务无法生成VIP故障

2021-11-24  本文已影响0人  阿乐_822e

两台机器192.168.171.124/192.168.171.125
VIP:192.168.171.123

[MYSQL-MS00 ~]# ip a |grep 171
    inet 192.168.171.124/24 brd 192.168.171.255 scope global noprefixroute ens32
    inet 192.168.171.123/32 scope global ens32
[MYSQL-MS01 ~]# ip a |grep 171
    inet 192.168.171.125/24 brd 192.168.171.255 scope global noprefixroute ens32

此时VIP在MS00机器上,当重启MS00的keepalived服务或者重启MS00机器后,VIP可以正常地漂移到MS01上

但在测试中发现一个意外情况: VIP在MS00机器上时,如果停用MS00的网卡,则VIP无法正常地漂移到MS01上,或者说,MS01无法成功生成vip

[MYSQL-MS00 ~]# service network stop
Stopping network (via systemctl):  

[MYSQL-MS01 ~]# ip a |grep 171  # MS01未获取VIP
    inet 192.168.171.125/24 brd 192.168.171.255 scope global noprefixroute ens32

之后,即使是启动MS00的网卡,并且重启两台机上的keepalived服务,都无法正常生成VIP,查看日志也没有显示任何报错。

最后,检查MS00的arp列表,发现在MS00机上有VIP的条目

[MYSQL-MS00 ~]$ arp | grep 123
Address                  HWtype  HWaddress           Flags Mask            Iface
192.168.171.123                  (incomplete)                              ens32

删除这条记录后,再重启keepalived服务就可以正常地绑定VIP了

[MYSQL-MS00 ~]$ arp -d 192.168.171.123 
[MYSQL-MS00 ~]$ service keepalived restart
Redirecting to /bin/systemctl restart keepalived.service
[MYSQL-MS00 ~]# ip a |grep 171 # VIP已经生成了
    inet 192.168.171.124/24 brd 192.168.171.255 scope global noprefixroute ens32
    inet 192.168.171.123/32 scope global ens32

至此,故障解决。另外要注意地是,如果删除了MS00上的条目后还是无法成功获取VIP,这时要再去MS01上检查一下arp列表,如果存在VIP,则也将它删除。
具体原因,有时间再慢慢查了。

上一篇 下一篇

猜你喜欢

热点阅读