posts - 88,comments - 0,views - 14557

 


Top

1.何为keepalived脑裂

Keepalived的BACKUP主机在收到不MASTER主机报文后就会切换成为master,如果是它们之间的通信线路出现问题,无法接收到彼此的组播通知,但是两个节点实际都处于正常工作状态,这时两个节点均为master强行绑定虚拟IP,导致不可预料的后果,这就是脑裂。

Top

2.产生原因

1.高可用服务器对之间心跳线链路发生故障,导致无法正常通信;

2.心跳线线路断开,老化;

3.网卡及相关驱动坏了,ip配置及冲突问题;

4.心跳线间连接的设备故障;

5.仲裁机器出现问题;

6.其他服务配置不当;

7.vrrp实例名字不一致、优先级一致;

8.高可用服务器上开启了iptables防火墙规则阻挡了心跳消息传输;

9.高可用服务器上心跳网卡地址等信息配置不正确,导致发送心跳失败;

10.Keepalived配置里同一 VRRP实例如果virtual_router_id两端参数配置不一致。
Top

3.解决方案

1.当检测到脑裂时强行关闭一个心跳节点,关闭备用节点的监听;

2.多节点集群中,可以通过增加仲裁的机制,确定谁该获得资源;

3.对脑裂的监控报警,脚本监测;

检测思路:正常情况下keepalived的VIP地址是在主节点上的,如果在从节点发现了VIP,就设置报警信息。脚本(在从节点上)如下:

vim check.sh
 
#!/bin/bash
 
# 检查脑裂的脚本,在备节点上进行部署
LB01_VIP=192.168.100.100 
LB01_IP=192.168.100.11
LB02_IP=192.168.100.12
#通过状态信息,过滤结果,并统计 
while true
do
    ping -c 2 -W 3 $LB01_VIP &>/dev/null 
    if [ $? -eq 0 -a `ip add|grep "$LB01_VIP"|wc -l` -eq 1 ];then
        echo "machine is brain."
    else
        echo "machine is ok" 
    fi 
    sleep 5 
done
posted on   知趣。  阅读(2710)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· 2 本地部署DeepSeek模型构建本地知识库+联网搜索详细步骤
< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8

点击右上角即可分享
微信分享提示