oracle脑裂的判断机制,Keepalived两节点出现双VIP的情况(脑裂)

安装有keepalived的两节点服务器133.96.54.111/112,设定VIP133.96.54.110。

首先启动133.96.54.111的keepalived服务,服务启动正常,VIP生成正常;

但在启动133.96.54.112的keepalived服务后,也能获得VIP;

外部访问VIP正常,从arp的效果看,对外提供服务仍是133.96.54.111节点。

69d35c250c7305127f2d105b3455f5b8.png

6975e6b1f656cb5f54893871c81f7e02.png

查看112的日志发现,其上keepalived服务刚启动后不久就进入master模式,获得VIP;同时查看111的日志,并没有任何异常。

初步判断是两边的协商机制出问题(vrrp),112 backup节点与111 主节点协商不成功,认为主节点故障,切换升主。

采用tcpdump抓包定位问题

111

c42c6f5bdd257b40a15801b561ffa4fd.png

112

68241307b79cb339501dac424ef27403.png

分析

111/112 主/备节点轮流在对外发布vrrp通告(vrrp通告地址224.0.0.18),理论上备节点如果收到主节点的通告,通告中优先级高于自己,就不会主动对外发送通告;

查看iptables,默认没有允许vrrp或者组播流量,导致备节点收不到主节点的通告,认为主节点故障,切换状态,发布VIP。

三.解决方案

1. 配置iptables

-A INPUT -p vrrp -j ACCEPT

放开iptables策略后,tcpdump抓包发现:备节点112收到更高级的通告,已不再主动向外发vrrp通告。

3d32f39d7db0263a62fb2ad98500e545.png

2c5edfb82150490a6b0c9d8005db8fa0.png

2. 设置vrrp单播通告(未验证)

# 如果两节点的上联交换机禁用了组播,则只能采用vrrp单播通告的方式

[root@master ~]# vim /etc/keepalived/keepalived.conf

priority 100

unicast_src_ip *.*.*.111 ##source ip

unicast_peer {

*.*.*.112 ##dest ip

}

[root@standby ~]# vim /etc/keepalived/keepalived.conf

priority 90

unicast_src_ip *.*.*.112 ##source ip

unicast_peer {

*.*.*.111 ##dest ip

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值