即使存在小的SANnetworking问题,SBD也会同时杀死两个群集节点

我在基于openais的群集中遇到了stonith SBD的问题。

一些背景:主动/被动群集有两个节点,node1和node2。 它们被configuration为向用户提供NFS服务。 为了避免裂脑问题,他们都被configuration为使用SBD。 SBD使用两个1MB磁盘通过多path光纤通道networking提供给主机。

如果SANnetworking发生问题,问题就会出现。 例如,今天一台Brocade交换机重新启动,两个节点中的每一个都丢失了4条path中的2条,导致两个节点都自杀并重新启动。 这当然是非常不可取的,因为a)存在pathb)即使交换机将出现10-20秒,两个节点的重新引导周期将花费5-10分钟,并且所有的NFS锁都将丢失。

我试图增加SBD超时值(到10秒+值,转储附在最后),但是“警告:延迟:4秒没有活力超过3秒的阈值”暗示有些东西不能像我期望的那样工作。

这里是我想知道的:a)SBD是否工作,因为它应该在两个path可用时杀死节点? b)如果没有,multipath.conf文件是否正确? 我们使用的存储控制器是IBM SVC(IBM 2145),是否应该有任何特定的configuration? (如multipath.conf.defaults)c)我应该如何去增加SBD中的超时

附件:Multipath.conf和sbd dump ( http://hpaste.org/69537 )

你需要检查各个层次:

1:hba驱动程序参数

 modinfo <module_name> 

2:多path超时并以特殊方式configuration参数no_path_retry = fail

 multipath -v3 

从你的SDD转储我看到“观看超时10”,我认为与多path超时是不够的

模式应该以下面的方式(快速,无需重试):

 failed hba(report the down)-> linux scsi says (disks on that path are down) -> multipath says that disk is failed i don't retry there any io request and start to work the no failed path. 

但是如果你有参数的默认值,来自你的sbd进程的IO请求仍然是挂起的