我的RHEL 3 HA cluster的两个节点都挂载了共享存储
我在vmware中使用redhat 3 的clustermanager 来做2节点ha cluster。两节点的外部地址分别是172.16.1.130(cluster3)和172.16.1.140(cluster4),心跳地址分别是10.0.0.130和10.0.0.140,开机后使用clustat发现两个都挂载了共享存储。。这应该不正常啊。
在cluster3上,使用clustat -i 5,看到
Cluster Status - Red Hat Clumanager Cluster 10:15:26
Cluster Quorum Incarnation #9
Shared State: Shared Raw Device Driver v1.2
Member Status
------------------ ----------
172.16.1.130 Active <-- You are here
172.16.1.140 Active
Service Status Owner (Last) Last Transition Chk Restarts
-------------- -------- ---------------- --------------- --- --------
httpd started 172.16.1.130 10:12:47 Dec 15 2 0
在cluster4上,我看到
Cluster Status - Red Hat Clumanager Cluster 10:18:57
Cluster Quorum Incarnation #9
Shared State: Shared Raw Device Driver v1.2
Member Status
------------------ ----------
172.16.1.130 Active
172.16.1.140 Active <-- You are here
Service Status Owner (Last) Last Transition Chk Restarts
-------------- -------- ---------------- --------------- --- --------
httpd started 172.16.1.140 09:58:44 Dec 15 2 0
cluster3是最近一次切换的,外部httpd请求,此时响应的是cluster3。应该两个节点服务的owner一致啊,为什么会不一致呢??
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
不用看后面我就知道, 你的心跳好象没用上, 不信你 disable 一下其中一个网卡试试.
多谢版主解答。。如果使用network tiebreaker,需要什么要求呢?我能随便指定一个IP么?比如我局域网的网关,是不是需要在专门的网络设备上安装特定的软件来实现?。
你的问题实际上回答了很多其他急冲冲要装RHCS的人的问题.
我一直说不管RHCS还是 linux-ha 也好,采用的都是不太可靠的 Tiebreaking机制. 为什么RHCS v4你们看到了 PowerSwitch? 其实powerswitch从RHCS v2.1的时候就存在了,只不过在系统配置中一直保留不用而已. 5年前我研究Kimberlite 的时候就发现实际上,如果在2个node的HA集群环境中,如果发生heartbeat出现故障,互相不知对方节点状态的情况下,按照竞选机制,每一个node都要重新以自己为主建立一个新的集群,但是只有50%的票选,在这个时候,所有原本有序控制的共享资源,比如存储,漂移IP之类的,全部会被竞抢,出现了所谓的brain-split. Kimberlite很早就看到了这个问题,和我们熟悉的linux-ha.org的项目一样,因为自身架构上带来的缺陷,只能通过2个手段来尽可能减少这种问题,一个手段就是linux-ha.org很有代表性的heartbeat 子项目,这也是linux-ha.org把heartbeat放在了一个很主要地位的原因,另外一个有代表性的手段就是kimberlite的powerswitch. 市面上其他的低端linux HA产品,比如rose ha之类的产品,在解决brainsplit的道路上,无外乎采用了这两种手段之一。
发生brainsplit的时候, kimberlite 就通过一个后台service, 强行控制一个node的powerswitch 然后poweroff一个node, 即便这个node reboot之后,也不会正常启动cluster service, 这样就保证了出现 50-50的资源竞抢的时候,可以保护共享资源,并且让一个优先节点来重组cluster.
network tiebreaker 是很多高端ha系统广泛采用的方法,通过把一个仲裁单位放在网络的一个设备上(pc, pc server, server, network device),出现50-50的竞抢之后,让网络上的这个设备来投票参与竞抢,2对1的选择的结果永远不会出现50-50的brain-split.所以也比较可靠。
另外一种稍微差一点的做法是用Quorum LUN/disk, 一般用LUN的会多一点,这样quorum不会出现单点故障. 微软的MSCS用的就是这种方法。相对前面的network tiebreak来说 lun/disk tierbreaker成本相对比较低,可靠性也比较差.
你的这个httpd的问题,我觉得首先要做的就是你要仔细阅读手册,不要有遗漏。第二个是要严格检查httpd service的配置. 不要有任何违反系统要求的配置项存在。 看我置顶的帖子,我认为大部分的看似奇怪的问题,都是因为配置和环境与程序本身的要求不一致造成的。软件本身的缺陷也是要考虑的因素之一。
谢谢大家。。我是采用七月飞雪的那个文章啊,给两个机器分配一块共享硬盘,
楼柱说是在vmware中做的实验,那共享存储是怎么做的,我估计就是quorum分区的问题,要是改用实际设备就不会有上面的问题
2个节点都把共享盘mount上了,这是最可怕啊,做双机最怕这个。同时mount上共享分区,数据基本就毁了。
network TieBreaker 设定的IP地址最好是网络中永远不会down的IP地址,如双核心交换机的vrrp虚拟地址等。
我的是两个节点的,是不是我cluquorumd有问题。我不明白Disk Tiebreaker和 network TieBreaker有啥区别,好像两节点的ha cluster需要使用network TieBreaker,那么那个ip该怎么设置呢?
很奇怪的是有时候每个节点的clustat 命令显示的httpd owner是相同的,有时候又不同。
把两个节点的httpd都disable以后,两个节点都没有挂载共享存储。
在cluster3上,
Cluster Status - Red Hat Clumanager Cluster 13:21:36
Cluster Quorum Incarnation #18
Shared State: Shared Raw Device Driver v1.2
Member Status
------------------ ----------
172.16.1.130 Active <-- You are here
172.16.1.140 Active
Service Status Owner (Last) Last Transition Chk Restarts
-------------- -------- ---------------- --------------- --- --------
httpd disabled (172.16.1.130) 13:18:34 Dec 15 2 0
在cluster4上,
Cluster Status - Red Hat Clumanager Cluster 13:22:10
Cluster Quorum Incarnation #18
Shared State: Shared Raw Device Driver v1.2
Member Status
------------------ ----------
172.16.1.130 Active
172.16.1.140 Active <-- You are here
Service Status Owner (Last) Last Transition Chk Restarts
-------------- -------- ---------------- --------------- --- --------
httpd disabled (172.16.1.140) 13:18:22 Dec 15 2 0
重新enable以后两个节点又挂上去了。
[ 本帖最后由 chenyajun5 于 2005-12-15 13:21 编辑 ]
disable掉httpd服务,然后就是单独看cluster service的状态.
集群启动后,察看你的shared storage的状态,如果2个node都mount上了,配置就有问题了.