心跳/ DRBD故障切换没有按预期工作。 我如何使故障转移更强大?

我有一个DRBD心跳设置有一个失败的节点,但没有故障转移的情况。 发生了什么事是主节点已经locking,但没有直接下去(这是无法访问通过SSH或与NFS挂载,但它可以ping通)。 期望的行为应该是检测到这种情况并且故障转移到辅助节点,但是由于主服务器没有完全closures(从服务器到服务器有专用的networking连接),所以心跳的检测机制没有起作用在那,因此没有故障转移。

有没有人看过这个? 有什么我需要configuration有更强大的群集故障转移? DRBD似乎没有问题(重新启动旧的主服务器时必须重新同步),但没有良好的故障切换,使用受到限制。

  • 心跳3.0.4
  • drbd84
  • RHEL 6.1
  • 我们不使用起搏器

nfs03是此设置中的主服务器,而nfs01是辅助服务器。

ha.cf

# Hearbeat Logging logfacility daemon udpport 694 ucast eth0 192.168.10.47 ucast eth0 192.168.10.42 # Cluster members node nfs01.openair.com node nfs03.openair.com # Hearbeat communication timing. # Sets the triggers and pulse time for swapping over. keepalive 1 warntime 10 deadtime 30 initdead 120 #fail back automatically auto_failback on 

这里是haresources文件:

 nfs03.openair.com IPaddr::192.168.10.50/255.255.255.0/eth0 drbddisk::data Filesystem::/dev/drbd0::/data::ext4 nfs nfslock 

我想你将不得不实施一些监测,以检查您的主系统是否按预期行事。 如果检查失败,则应closures服务器(通过IPMI / ILO或交换式PDU),并让心跳完成其工作。

我认为你总是会发现一个不如你期望的那样的情况。

不是完美的解决scheme,但我有一个2 – 3年前与一个更老的drbd有这个问题。 我所做的就是在两台主机上添加一个cron脚本,检查实际主机是主动主机还是从属主机。 如果它在一个slave上,它检查NFS目录中的某个已知文件是否可用。 如果不; 我以为NFS坏了, 它通过ssh power off命令发送。 你可以尝试沿着这条线工作。 我相信他们是更好的方法。 这个对我来说已经够好了。