首先,来讲下什么是脑裂nginx
脑裂:顾名思义就是脑壳炸裂,也就是左脑、右脑同时强制大脑资源,致使大脑不能正常工做,而左脑和右脑都认为对方损坏,而抢占资源。centos
再来讲,Keepalived 脑裂服务器
Keepalived 脑裂:在设置了虚拟VIP时,KEP会设置Master Backup 权值不一样,虽然分主备可是在实际运行中,若是权值相同则会不分MB,从ip addr 看到的结果 双 IP同时抢占VIP 导致 kep只能给权值大的那一方。网络
原理分析:测试
首先来讲kep的原理是利用网络vrrp协议来进行心跳判断故障的。那么基础环境必须支持VRRP,基础环境采用的是centos7.2 系统 防火墙为 firewall ,两个主备服务器经过心跳nginx线程是否激活判断故障,经过日志分析,抓包得知,主服务器挂掉时,会发送VRRP数据包给备用服务器,可是被对方防火墙拦截。centos7
解决问题:线程
经过查看firewall官方文档得知,firewall默认拒绝VRRP包,默认拦截,这就很差玩了,也是问题的主要缘由!日志
firewall-cmd –direct –permanent –add-rule ipv4 filter INPUT 0 –protocol vrrp -j ACCEPTip
咱们经过firewallcmd永久开启 对与ipv4的 vrrp 为 容许 ,主备服务器都要开启。资源
测试:
同时开KEP M权值 3 S权值 2 VIP默认给M ipaddr 查看 S已经没有虚拟VIP了 !
测试成功!
总结:
从原理出发,不能钻牛角,基础环境要具有协议流通。