高可用之裂脑问题

作者: FantJ | 来源:发表于2018-08-04 16:31 被阅读6次

什么是裂脑问题呢?

两个节点互相认为对方已挂掉,然后开始争抢共享资源,结果会导致系统混乱,数据损坏。这就是脑裂问题。

怎么产生的呢?

  • 高可用服务器之间心跳线链路故障,导致无法正常通信。

    • 心跳线坏了(包括断了,老化)。

    • 网卡即相关驱动坏了,IP配置及冲突问题(网卡直连)

    • 心跳线间连接的设备故障(网卡及交换机)

    • 仲裁的机器出问题(采用仲裁的方案)。

  • 高可用服务器对上开启了iptables防火墙阻挡了心跳信息传输。

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

  • 其他服务器配置不当等原因,如心跳方式不同,心跳广播冲突,软件BUG

解决方案

  • 同时使用串行电缆和以太网电缆连接,同时用两条心跳线路,这样一条线路坏了,另一个还是好的,依然能传送心跳消息。

  • 当检测到裂脑时强行关闭一个心跳节点(这个功能需特殊设备支持,如fence,stonith)。相当于备节点接收不到心跳信息,发送关机命令通过单独的线路关闭主节点电源。

  • 做好对裂脑的监控报警(如邮件及手机短信等),在问题发生时人为的第一时间介入仲裁,降低损失。例如:百度的监控报警短信就有上行和下行的区别。报警信息到管理员手机上,就可以通过回复对应的字符串等操作就可以返回给服务器,让服务器根据指令自动执行处理相关故障

参考文章:http://blog.51cto.com/dadonggg/1948737

实例:裂脑检测脚本:

#!/bin/sh
while true
do
ping -c 2 -W 3 192.168.27.167 &> /dev/null
if[$? -eq 0 -a `ip add|grep 192.168.27.160|wc -l` -eq 1]
  then
    echo "split brain....."
else
    echo "HA is ok"
fi
sleep 5
done

如果能ping通另一个主机,而且本地有vip地址,就是裂脑。

相关文章

  • 高可用之裂脑问题

    什么是裂脑问题呢? 两个节点互相认为对方已挂掉,然后开始争抢共享资源,结果会导致系统混乱,数据损坏。这就是脑裂问题...

  • 脑裂问题

    大数据:hdfs两个namenode的脑裂问题解决方案:比如增加心跳线,栅栏机制。这两点甚至其他解决方案,有没有大...

  • Zookeeper的脑裂问题及解决方案

    先抛出一个问题:Zookeeper3.4.6版本是否存在脑裂问题? 一,什么是脑裂 什么是脑裂呢? 下图是一个正常...

  • Redis 系列(10) 脑裂问题 & 扩缩容问题

    1.sential模式下的脑裂问题 1.1 问题描述 1.2 解决方案 2.集群(cluster)模式下的脑裂问题...

  • es脑裂问题

    概述: 一个正常es集群中只有一个主节点,主节点负责管理整个集群,集群的所有节点都会选择同一个节点作为主节点所以无...

  • Redis脑裂问题

    背景假设现在有三台机器,分别安装了redis服务,结构如图 故障发生:如果此时master服务器所在区域网络通信出...

  • elasticsearch节点角色

    在生产环境下,如果不修改elasticsearch节点的角色信息,在高数据量,高并发的场景下集群容易出现脑裂等问题...

  • 97_es生产集群部署之针对生产集群的脑裂问题专门定制的重要参数

    97_es生产集群部署之针对生产集群的脑裂问题专门定制的重要参数 最少master候选节点以及脑裂问题 disco...

  • Hadoop HA高可用解析以及脑裂问题

    Hadoop1.x:Hadoop 的两大核心组件 HDFS 的NameNode 和 JobTracker 都存在着...

  • Keepalived脑裂问题研究

    最近配置完Keepalived后,发现Keepalived是有可能存在脑裂问题的,于是查看学习一番。 先了解...

网友评论

    本文标题:高可用之裂脑问题

    本文链接:https://www.haomeiwen.com/subject/aqvyvftx.html