我在基于 openais 的集群中使用 stonith SBD 时遇到了问题。
一些背景知识:主动/被动集群有两个节点,节点 1 和节点 2。它们配置为向用户提供 NFS 服务。为了避免出现裂脑问题,它们都配置为使用 SBD。SBD 使用两个 1MB 磁盘,可通过多路径光纤通道网络供主机使用。
如果 SAN 网络出现问题,问题就开始了。例如,今天 Brocade 交换机之一重新启动,两个节点都丢失了 4 条到每个磁盘的路径中的 2 条,这导致两个节点都自杀并重新启动。当然,这是非常不可取的,因为 a) 还有路径 b) 即使交换机断电 10-20 秒,两个节点的重新启动周期也需要 5-10 分钟,并且所有 NFS 锁都会丢失。
我尝试增加 SBD 超时值(增加到 10 秒以上,转储附在最后),但是“警告:延迟:4 秒内无活动超过 3 秒的阈值”暗示某些事情没有按我预期的方式进行。
我想知道的是:a) 当有 2 条路径可用时,SBD 是否正常工作并终止节点?b) 如果没有,附加的 multipath.conf 文件是否正确?我们使用的存储控制器是 IBM SVC(IBM 2145),是否应该对其进行任何特定配置?(如 multipath.conf.defaults)c) 我应该如何增加 SBD 中的超时时间
附件:Multipath.conf 和sbd dump
(http://hpaste.org/69537)
答案1
您需要检查各个层:
1:hba驱动程序参数
modinfo <module_name>
2:多路径超时和特殊方式配置参数no_path_retry = fail
multipath -v3
我从你的 sbd dump 中看到“watch timeout 10”,我认为多路径的超时时间不够
模式应采用以下方式(快速,无需重试):
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 请求仍然处于挂起状态