heartbeat脑裂问题

转载自:http://czmmiao.iteye.com/blog/1180851 做者:czmmiaonode

关于脑裂咱们先来看看红帽的文档是如何解释的
# What does "split-brain" mean?
"Split brain" is a condition whereby two or more computers or groups of computers lose contact with one another but still act as if the cluster were intact. This is like having two governments trying to rule the same country. If multiple computers are allowed to write to the same file system without knowledge of what the other nodes are doing, it will quickly lead to data corruption and other serious problems.
Split-brain is prevented by enforcing quorum rules (which say that no group of nodes may operate unless they are in contact with a majority of all nodes) and fencing (which makes sure nodes outside of the quorum are prevented from interfering with the cluster).
在“双机热备”高可用(HA)系统中,当联系2个节点的“心跳线”断开时,原本为一总体、动做协调的HA系统,就分裂成为2个独立的个体。因为相互失去了联系,都觉得是对方出了故障,2个节点上的HA软件像“裂脑人”同样,“本能”地争抢“共享资源”、争起“应用服务”,就会发生严重后果:或者共享资源被瓜分、2边“服务”都起不来了;或者2边“服务”都起来了,但同时读写“共享存储”,致使数据损坏(常见如数据库轮询着的联机日志出错)。
运行于备用主机上的Heartbeat能够经过以太网链接检测主服务器的运行状态,一旦其没法检测到主服务器的“心跳”则自动接管主服务器的资源。一般状况下,主、备服务器间的心跳链接是一个独立的物理链接,这个链接能够是串行线缆、一个由“交叉线”实现的以太网链接。Heartbeat甚至可同时经过多个物理链接检测主服务器的工做状态,而其只要能经过其中一个链接收到主服务器处于活动状态的信息,就会认为主服务器处于正常状态。从实践经验的角度来讲,建议为Heartbeat配置多条独立的物理链接,以免Heartbeat通讯线路自己存在单点故障。
一、串行电缆:被认为是比以太网链接安全性稍好些的链接方式,由于hacker没法经过串行链接运行诸如telnet、ssh或rsh类的程序,从而能够下降其经过已劫持的服务器再次侵入备份服务器的概率。但串行线缆受限于可用长度,所以主、备服务器的距离必须很是短。
二、以太网链接:使用此方式能够消除串行线缆的在长度方面限制,而且能够经过此链接在主备服务器间同步文件系统,从而减小了从正常通讯链接带宽的占用。
基于冗余的角度考虑,应该在主、备服务器使用两个物理链接传输heartbeat的控制信息;这样能够避免在一个网络或线缆故障时致使两个节点同时认为自已经是惟一处于活动状态的服务器从而出现争用资源的状况,这种争用资源的场景便是所谓的“脑裂”(split-brain)或“partitioned cluster”。在两个节点共享同一个物理设备资源的状况下,脑裂会产生至关可怕的后果。
为了不出现脑裂,可采用下面的预防措施:
添加冗余的心跳线,例如双线条线。尽可能减小“裂脑”发生机会。
启用磁盘锁。正在服务一方锁住共享磁盘,“裂脑”发生时,让对方彻底“抢不走”共享磁盘资源。但使用锁磁盘也会有一个不小的问题,若是占用共享盘的一方不主动“解锁”,另外一方就永远得不到共享磁盘。现实中假如服务节点忽然死机或崩溃,就不可能执行解锁命令。后备节点也就接管不了共享资源和应用服务。因而有人在HA中设计了“智能”锁。即,正在服务的一方只在发现心跳线所有断开(察觉不到对端)时才启用磁盘锁。平时就不上锁了。
设置仲裁机制。例如设置参考IP(如网关IP),小心跳线彻底断开时,2个节点都各自ping一下 参考IP,不通则代表断点就出在本端,不只“心跳”、还兼对外“服务”的本端网络链路断了,即便启动(或继续)应用服务也没有用了,那就主动放弃竞争,让可以ping通参考IP的一端去起服务。更保险一些,ping不通参考IP的一方干脆就自我重启,以完全释放有可能还占用着的那些共享资源。
数据库


参考至:http://surpassdream.blog.51cto.com/1347340/284974安全

相关文章
相关标签/搜索