请教关于做HA的几个概念问题
请教大家关于HA的几个概念性问题,redhat as3的环境,谢谢了
1、仲裁盘的作用是什么?是否是做在阵列上的呢?不配置仲裁盘可以吗?
2、在配好的HA上添加一个服务,如httpd,在两个节点上开始都开启redhat-config-cluster后,在HA监控界面里是否只有一个节点上显示httpd运行,另一节点显示不运行呢?
3、我发现如果当前active的节点上的httpd服务停了后,HA软件会自动把本机的httpd服务起来;如果是当前active的机器都宕机,则HA软件会把服务移到另一standby的机器上。那就有个问题,如果active机器上的httpd加入起不来了呢,服务还会被移到standby的机器上吗?
4、心跳连接用什么方式相对来说比较好呢?
谢谢回复。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
fencing 解决的是HA 集群共享卷数据安全性的问题。危急数据安全性的情况除了故障节点对共享卷的错误访问之外,还有brain-split 的时候两个node 争抢共享卷的情况.
RHCS防止brain split的方法就是bonding heartbeat NIC+ DLM quorum + fencing , fencing 实际上是防止RHCS防止brain-split 操作的最后一部分了. 你要仔细阅读RHCS手册,写的很明白的,图文并茂,白纸黑字.
2. 为什么要把仲裁盘/Lun 看作特殊类型的心跳?虽然有一些人这样认为,但是我认为是错误的,心跳就是健康检查,Quorum disk/lun就是用来承担 brain-split之后的tie breaker角色的,解决的是cluster membership, cluster reform和voting 的问题。 我看不出这么清晰的区别有去混淆/合并两者作用的必要.
3. 你还是好好看看手册把,基本概念太模糊了,我回答的累,你理解得也累.
还是有点不明白fencing和仲裁机制
对于fencing,是否就是出现brain-split的时候,首先发现的服务器使用某种机制关闭集群中的其他机器,来确保数据一致?
对于仲裁机制,是否就是 心跳出现问题的时候,通过放在共享磁盘设备上的小分区来交换集群信息,也可以将这个磁盘看做是特殊类型的心跳?如果集群中的某个节点无法正常的向仲裁磁盘中写入数据,则可以认为这个节点无法正常访问共享磁盘,从整个集群的角度来说,这个节点已经down掉。
这两种方式有什么样的优缺点?
可否请nntp老大解释一下?
明白了,非常感谢版主!!
1. 2 node HA cluster中,如果heart beat通信出现问题,比如 crossover cable断开或者类似的通路上的原因,导致2个健康node都认为对方挂掉,试图争取shared resource(比如IP, 共享盘阵上的共享卷等资源),并试图修改集群成员关系,各自组成一个集群. 这种情况就叫做brain-split. brain-split 的情况发生后,除了争抢IP导致的网络配置错乱,更严重的是因互相抢夺共享卷组成集群导致共享卷数据读写不一致然后被破坏掉.
防止brain -split 有好多方法:
第一种是建立冗余的heartbeat, 最简单的就是把heart beat 的path作冗余,比如bonding或者multi lan switch.或者是一根crossover+串口,都有
第二种是使用fencing技术,
RHCS 用的是fencing 机制,用一个可以被服务器控制的外部电源控制系统powerswitch来关闭掉一个node,解决争抢的问题. 如果不用powerswitch,还可以用服务器上自带的硬件管理设备,比如HP iLO远程控制或Dell DRAC, RHCS也支持直接去操控 SAN 交换机来做fencing.故障发生的时候,禁止某个node通过SAN交换机访问盘阵.
第三种是使用仲裁机制
有些集群使用仲裁, 比如HP MC/SG, 在共享盘阵的最前面单独划分一个很小的区域(分区或LUN卷),不建文件系统,2个node的集群系统在正常运行的时候直接裸读写这个区域,交换当前的成员信息,防止brain-split. 这个lun 又叫做lock lun. windows MSCS也使用仲裁盘Quorum Disk/partition的方式来做.
仲裁还可以通过第三台机器作Quorum Server来实现,并不一定要通过仲裁盘. MC/SG建议的方式就是使用仲裁服务器.
2. 是的
3. 如果配置正确的话,应该如此.
4. 简单的话用2根反绞线作直连. (如果你按照568B打线,就是1-3 2-6 对换),然后linux 上bonding 这2个通路. 你也可以连2根线路到2个LAN交换机作bonding.
服务器离的很近,并且节点只有2个,你也可以用一根反绞+串口线的方式,一般不同的集群软件都有自己建议的heartbeat方式,你得看具体的产品手册才知道.