码迷,mamicode.com
首页 > 其他好文 > 详细

对集群的一点了解

时间:2016-07-20 19:48:30      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:网络连接   mysql   服务器   朋友   监控   

最近在做mysql的高可用集群时,采用了heartbeat + drbd 来实现。在做灾难测试时发现两个问题:

1、发现当禁用网卡连接,模拟网卡失效时,主/备服务器不能实现正常的故障转移。后查资料发现,原来heartbeat 的故障切换只能在主服务器宕机或heartbeat 服务关闭的情况下,才能实现故障的正常切换。不能实现对网卡状态的监控。其实这个问题可以通过 heartbeat 中的 ipfail 功能来实现。原本我认为ipfail功能是一个可有可无的功能,有的话,对系统加多一层保障,没有的话,也不会产生影响。但经过这一次,我发现我错了,ipfail功能还是很有用的,它并不是虚设的,它是真正实用的工具。ipfail 可以实现对网络状态的监控,当 ipfail 的机制发现所监控的网络没有网络连接时,将会触发一个主/备故障转移操作。在做 ipfail 操作时,注意一点就是 ipfail 只能用于监控公网接口,不能与内部的心跳接口放在一起监听,如果在同一个接口的话,会导致 ipfail 工作失效。这或许是为什么很多朋友在网上说,ipfail不能正常工作的原因吧。网上有些朋友说,ipfail 已经过时,不能用啦。我个人觉得,这是理解错误,如果ipfail功能失效,那为什么在heartbeat安装后,还会有这个工具呢?ipfail 在Heartbeat的CRM模式下据说会与CRM有冲突,这个没有测试过,不敢发表意见。

2、当主/备之间的心跳线断开网络连接时,不能进行故障的切换。这个原本按着我对集群的理解是,当主/备之间的心跳断开连接时,就会产生一次主/备故障切换的过程。但经过这次实际的测试,发现事实并非如此,事实是当主/备之间的心跳断开连接时,此时主/备都会将自己作为主服务器,此时两台服务器都会拥有集群资源,这时,也就是发生了大家常说的“裂脑”现象。在红帽的 RHCS 中有一种专门用来解决这种“裂脑”现象的机制叫 Fence 。RHCS通过使用一种专业的 Fence 设备来对集群进行心跳监听,Fence 设备会不断对集群中的主服务器进行主跳监听,当发现集群中的主服务器没有心跳时,Fence 设备会向主服务器发送一个强制关机的信号,将失去网络连接的主服务器关机,以实现网络中只会有一台服务器拥有集群的资源。我现在终于明白,为什么我当初在学习RHCS的时候,有一位牛人说,如果RHCS中没有使用Fence 机制,RHCS 是不完美的,无法称为真正意义上的集群。现在我终于明白啦。Heartbeat 中没有这种机制,也许 Heartbeat 的CRM 模式会有,但CRM的配置太复杂了一点,而且至今没有发现有这方面的成功案例。但我想 CRM模式只是实现资源的监控,但对于这种裂脑现象,却不一定有效。目前解决这种问题的方法,我认为行之有效,而又直接便利的方法:是使用 bonded 技术,将两块网卡绑定起来,实现网卡冗余。这样当两台服务器的其中一块网卡出现故障时,不会影响到服务器之间的心跳监测。

收获:

1、对 Heartbeat 的故障切换与Heartbeat 的 ipfail 使用有一个更清晰的了解。

2、对于集群中的“裂脑”现象,认识更深刻啦。

3、终于认清了半知半懂的 Fence 机制啦。

YEAH!技术分享


本文出自 “简单就是美的博客” 博客,请务必保留此出处http://simpledevops.blog.51cto.com/3091246/1828128

对集群的一点了解

标签:网络连接   mysql   服务器   朋友   监控   

原文地址:http://simpledevops.blog.51cto.com/3091246/1828128

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!