Cluster在服务器掉电后不切换服务的故障处理过程

我们有一个业务使用红帽子自带的Cluster程序做HA(高可靠),但是在实际使用的过程中,发现手动切换服务没有问题,但是当运行的机器被直接关闭电源以后,服务没有发生切换,从其他正常的机器上看到该服务器已经offline,但是服务依然是started状态。

硬件环境:Dell PowerEdge M1000e + M610 +  PowerConnect M6220
软件: RedHat Enterprise Linux Server 5.3 x64
初始Cluster配置文件(部分):

<?xml version=”1.0″?>
<cluster config_version=”24″ name=”MyHA”>
<fence_daemon clean_start=”1″ post_fail_delay=”1″ post_join_delay=”90″/>
<clusternodes>
<clusternode name=”AS-2″ nodeid=”1″ votes=”1″>
<fence><method name=”1″>
<device  name=”drac2″/>
</method>
</fence>
</clusternode>
<clusternode name=”AS-4″ nodeid=”2″ votes=”1″>
<fence><method name=”1″>
<device name=”drac4″/>
</method>
</fence>
</clusternode>
</clusternodes>

<cman><multicast addr=”225.0.0.25″/></cman>

<fencedevices>
<fencedevice agent=”fence_drac” ipaddr=”192.168.1.102″ login=”root” name=”drac3″ passwd=”calvin”/>
<fencedevice agent=”fence_drac” ipaddr=”192.168.1.104″ login=”root” name=”drac4″ passwd=”calvin”/>
</fencedevices>

<rm log_facility=”local4″ log_level=”4″>
<failoverdomains>
<failoverdomain name=”domain_2_4″ nofailback=”0″ ordered=”1″ restricted=”1″>
<failoverdomainnode name=”AS-2″ priority=”1″/>
<failoverdomainnode name=”AS-4″ priority=”2″/>
</failoverdomain>
</failoverdomains>

<resources>
<drbd name=”res_drbd_log” resource=”log”/>
<fs device=”/dev/drbd3″ fstype=”ext3″ mountpoint=”/var/log/mylog” name=”res_fs_log”/>
</resources>
<service autostart=”1″ domain=”domain_2_4″ exclusive=”0″ name=”gs0″ recovery=”relocate”>
<ip address=”192.168.100.100″ monitor_link=”0″/>
<script file=”/opt/my/bin/ha_gs” name=”gs”/>
</service>
</rm>
</cluster>

查看日志中有报telnet无法连接的错误(agent “fence_drac” reports: failed:telnet open failed),经检查是刀片服务器iDrac的telnet服务没有打开。M610默认开启的是ssh服务,没有打开telnet服务。在iDrac的web控制台打开telnet服务(远程访问->iDrac6->网络/安全性->服务,勾选telnet的启用复选框)。

经过该设置,没有出现telnet连接错误了,但是服务依然不能正常切换,日志中依然提示在提示telnet错误(agent “fence_drac” reports: failed:telnet failed: pattern match timed-out),这个问题是fence_drac脚本中在登录iDrac时没有匹配到提示输入用户名的字符串。尝试修改了几次都没有成功。于是决定弃用telnet,改使用ssh。

修改cluster.conf文件,修改”fence_drac”为”fence_drac5″,同时加入secure=”1″到device中,即:修改<device name=”drac2″/> 为 <device secure=”1″ name=”drac2″/>;修改<device name=”drac4″/> 为 <device secure=”1″ name=”drac4″/>

更新所有机器的配置文件,问题解决,当其中一台机器掉电以后,服务可以正常切换了。

更多关于在Dell PowerEdge中使用RedHat Cluster的信息参加DellLinuxWikihttp://linux.dell.com/wiki/index.php

发表评论

电子邮件地址不会被公开。 必填项已用*标注

机器人检查 *