高可用实施遇到的什么是脑裂问题题怎么办

1316人阅读
操作系统(79)
双机热备(25)
高可用方案之脑裂问题探讨&&
10:03:15|&&分类:&字号&
关于脑裂我们先来看看红帽的文档是如何解释的
# 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通信线路本身存在单点故障。
1、串行电缆:被认为是比以太网连接安全性稍好些的连接方式,因为hacker无法通过串行连接运行诸如telnet、ssh或rsh类的程序,从而可以降低其通过已劫持的服务器再次侵入备份服务器的几率。但串行线缆受限于可用长度,因此主、备服务器的距离必须非常短。
2、以太网连接:使用此方式可以消除串行线缆的在长度方面限制,并且可以通过此连接在主备服务器间同步文件系统,从而减少了从正常通信连接带宽的占用。
基于冗余的角度考虑,应该在主、备服务器使用两个物理连接传输heartbeat的控制信息;这样可以避免在一个网络或线缆故障时导致两个节点同时认为自 已是唯一处于活动状态的服务器从而出现争用资源的情况,这种争用资源的场景即是所谓的“脑裂”(split-brain)或“partitioned cluster”。在两个节点共享同一个物理设备资源的情况下,脑裂会产生相当可怕的后果。
为了避免出现脑裂,可采用下面的预防措施:
添加冗余的心跳线,例如双线条线。尽量减少“裂脑”发生机会。
启用磁盘锁。正在服务一方锁住共享磁盘,“裂脑”发生时,让对方完全“抢不走”共享磁盘资源。但使用锁磁盘也会有一个不小的问题,如果占用共享盘的一方不 主动“解锁”,另一方就永远得不到共享磁盘。现实中假如服务节点突然死机或崩溃,就不可能执行解锁命令。后备节点也就接管不了共享资源和应用服务。于是有 人在HA中设计了“智能”锁。即,正在服务的一方只在发现心跳线全部断开(察觉不到对端)时才启用磁盘锁。平时就不上锁了。
设置仲裁机制。例如设置参考IP(如网关IP),当心跳线完全断开时,2个节点都各自ping一下 参考IP,不通则表明断点就出在本端,不仅“心跳”、还兼对外“服务”的本端网络链路断了,即使启动(或继续)应用服务也没有用了,那就主动放弃竞争,让 能够ping通参考IP的一端去起服务。更保险一些,ping不通参考IP的一方干脆就自我重启,以彻底释放有可能还占用着的那些共享资源。
参考至:http://surpassdream./974
&&&&& && && /space.php?uid=&do=blog&id=261403
本文原创,转载请注明出处、作者
如有错误,欢迎指正
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:252707次
积分:3187
积分:3187
排名:第11192名
原创:64篇
转载:141篇
评论:43条
(1)(3)(3)(3)(1)(7)(2)(2)(2)(3)(10)(56)(8)(30)(8)(3)(4)(6)(7)(2)(10)(2)(1)(1)(7)(7)(6)(10)
(window.slotbydup = window.slotbydup || []).push({
id: '4740881',
container: s,
size: '200,200',
display: 'inlay-fix'高可用高并发(56)
检测思路:正常情况下keepalived的VIP地址是在主节点上的,如果在从节点发现了VIP,就设置报警信息
脚本如下:
#!/bin/bash
LB01_VIP=10.10.10.229
LB01_IP=10.10.10.129
LB02_IP=10.10.10.130
while&true
&&ping&-c&2&-W&3&$LB01_VIP&&&/dev/null
&&&&if&[&$?&-eq&0&-a&`ip&add|grep&&$LB01_VIP&|wc&-l`&-eq&1&];then
&&&&&&&&echo&&ha&is&brain.&
&&&&&&&&echo&&ha&is&ok&
&&&&sleep&5
执行结果如下:
[root@mysql-master&mysqlbackup]
当发现异常时候的执行结果:
[root@mysql-master&mysqlbackup]
ha&is&brain.
ha&is&brain.
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:2029765次
积分:17145
积分:17145
排名:第592名
原创:188篇
转载:790篇
评论:156条
(3)(9)(73)(120)(21)(30)(19)(1)(7)(71)(38)(24)(25)(19)(19)(11)(7)(1)(2)(10)(18)(21)(22)(80)(26)(28)(13)(16)(14)(42)(21)(7)(4)(18)(9)(12)(5)(12)(38)(4)(30)(28)
(window.slotbydup = window.slotbydup || []).push({
id: '4740881',
container: s,
size: '200,200',
display: 'inlay-fix'博客访问: 1666253
博文数量: 192
博客积分: 1400
博客等级: 上尉
技术积分: 3799
注册时间:
认证徽章:
就职于某电商数据库研发团队,热衷于数据库相关的技术。我的ppt分享/s/1eRQsdAa
/chenhuajun
IT168企业级官微
微信号:IT168qiye
系统架构师大会
微信号:SACC2013
发布时间: 01:31:07
脑裂(split-brain),指在一个高可用(HA)系统中,当联系着的两个节点断开联系时,本来为一个整体的系统,分裂为两个独立节点,这时两个节点开始争抢共享资源,结果会导致系统混乱,数据损坏。脑裂是很讨厌但是又不能回避的一个问题,但是,如何防止HA集群的脑裂呢?......
阅读(12304) | 评论(7) | 转发(0)
发布时间: 14:48:49
在执行SQL的时候,有可能需要限制SQL的最长执行时间。本文讨论数据库驱动实现SQL超时的常用策略。......
阅读(2105) | 评论(0) | 转发(0)
发布时间: 12:12:22
偶然看了几篇关于数据库分页性能优化的文章。概括起来主要有以下几个策略。1,缓存结果缓存有资源消耗,命中率和数据一致性等问题,其利弊需要根据使用场景进行权衡。2,利用索引迅速跳过offset之前的记录对单个分页请求来说,一页的返回记录数通常很少,但要跳过的记录数可能会非常多。如何快速跳过这些offset之前的记录.........
阅读(2914) | 评论(0) | 转发(0)
发布时间: 00:41:01
sql被广泛使用的现状改变无法抵消它不完美存在地痼疾,本文总结了sql的四个缺点,期盼有新工具的出现来突破这些限制。......
阅读(1623) | 评论(0) | 转发(0)
发布时间: 00:54:12
根据并发事务的实现方式和外部表现,可以归纳出下面几种事务处理模式(近似的)。1)读未提交读不加锁,写加排他锁。写锁在事务结束时释放。读写不冲突,但可能出现脏读。2)读已提交(基于锁)读加共享锁,写加排他锁。读锁在读SQL执行后立即释放,写锁在事务结束时释放。读写冲突,不会出现脏读,但可能出现不可重.........
阅读(1813) | 评论(0) | 转发(0)
给主人留下些什么吧!~~
请登录后留言。博客访问: 154728
博文数量: 53
博客积分: 0
博客等级: 民兵
技术积分: 630
注册时间:
认证徽章:
付出,终有回报!
IT168企业级官微
微信号:IT168qiye
系统架构师大会
微信号:SACC2013
分类: 系统运维
在“双机热备”高可用(HA)系统中,当联系2个节点的“心跳线”断开时,本来为一整体、动作协调的HA系统,就分裂成为2个独立的个体。由于相互 失去了联系,都以为是对方出了故障,2个节点上的
HA软件像“裂脑人”一样,“本能”地争抢“共享资源”、争起“应用服务”,就会发生严重后果:或者共享资源被瓜分、2边“服务”都起不来了;或者2边“服务”都起来了,但同时读写“共享存储”,导致数据损坏
(常见如数据库轮询着的联机日志出错)。
对付HA系统“裂脑”的对策大概有以下几条:
1)添加冗余的心跳线,例如双线条线。尽量减少“裂脑”发生机会。
2)启用磁盘锁。正在服务一方锁住共享磁盘,“裂脑”发生时,让对方完全“抢不走”共享磁盘资源。但使用锁磁盘也会有一个不小的问题,如果占用共享盘的一 方不主动“解锁”,另一方就永远得不到共享
磁盘。现实中假如服务节点突然死机或崩溃,就不可能执行解锁命令。后备节点也就接管不了共享资源和应用服务。于 是有人在HA中设计了“智能”锁。即,正在服务的一方只在发现心跳线全部断开(察觉不到对端)时才启用磁盘锁。平时就不上锁了。
3)设置仲裁机制。例如设置参考IP(如网关IP),当心跳线完全断开时,2个节点都各自ping一下 参考IP,不通则表明断点就出在本端,不仅“心跳”、还兼对外“服务”的本端网络链路断了,即使启动(或
继续)应用服务也没有用了,那就主动放弃竞争,让 能够ping通参考IP的一端去起服务。更保险一些,ping不通参考IP的一方干脆就自我重启,以彻底释放有可能还占用着的那些共享资源。
阅读(1066) | 评论(0) | 转发(0) |
相关热门文章
给主人留下些什么吧!~~
请登录后评论。

我要回帖

更多关于 keepalived脑裂问题 的文章

 

随机推荐