Welcome To Heike07's Blog.

欢迎来到Heike07官方博客

keepalived 脑裂问题刨析解决

首先,来说下什么是脑裂

脑裂:顾名思义就是脑袋炸裂,也就是左脑、右脑同时强制大脑资源,导致大脑不能正常工作,而左脑和右脑都认为对方损坏,而抢占资源。

再来说,Keepalived 脑裂

Keepalived 脑裂:在设置了虚拟VIP时,KEP会设置Master Backup 权值不同,虽然分主备但是在实际运行中,如果权值相同则会不分MB,从ip addr 看到的结果 双 IP同时抢占VIP 致使 kep只能给权值大的那一方。

原理分析:

首先来说kep的原理是利用网络vrrp协议来进行心跳判断故障的。那么基础环境必须支持VRRP,基础环境采用的是centos7.2 系统 防火墙为 firewall ,两个主备服务器通过心跳nginx线程是否激活判断故障,通过日志分析,抓包得知,主服务器挂掉时,会发送VRRP数据包给备用服务器,但是被对方防火墙拦截。

解决问题:

通过查看firewall官方文档得知,firewall默认拒绝VRRP包,默认拦截,这就不好玩了,也是问题的主要原因!

firewall-cmd –direct –permanent –add-rule ipv4 filter INPUT 0 –protocol vrrp -j ACCEPT

我们通过firewallcmd永久开启 对与ipv4的 vrrp 为 允许 ,主备服务器都要开启。

测试:

同时开KEP M权值 3 S权值 2 VIP默认给M ipaddr 查看 S已经没有虚拟VIP了 !

测试成功!

总结:

从原理出发,不能钻牛角,基础环境要具备协议流通。

点赞