我正在build立一个基于CMAN + Pacemaker集群堆栈的双节点集群,但是我没有硬件STONITH设备。 但是,两个节点通过iSCSI连接到共享存储,我想用这个来用SBD进行屏蔽。
SBD由OpenAIS和Heartbeat支持,我已经使用了SBD和Heartbeat + Pacemaker集群堆栈,但是现在我需要使用CMAN。 因此,我已经添加了一些代码CMAN的初始化脚本来启动/停止SBD,它似乎工作正常。
关于看门狗:强烈build议使用看门狗运行SBD。 SBD是这种集群中的关键服务,并且必须在集群软件运行时始终运行。 看门狗有助于确保 – 如果由于某种原因,SBD过程意外终止,则狗不再受到喂食,并重新启动节点。 所以我在开始SBD之前就得到了看门狗内核模块softdog加载(就像在Heartbeat中)。
简单地说,我在/etc/init.d/cman中执行以下操作:
modprobe softdog sbd -d <device> -D -W watch 这里是问题:
当我手动启动cman
service cman start
一切正常,但是当cman在启动时自动启动,节点重新启动。
看起来好像看门狗没有被馈送,因为在SBD(14:21:29)初始化节点( <watchdog timeout> )之后,节点正好被隔离了<watchdog timeout>秒(5s),但是日志(/ var / log /系统日志)是有争议的,说SBD运行:
Jan 15 14:21:28 cs-node1内核:[12.341755] softdog:软件看门狗定时器:0.08初始化。 soft_noboot = 0 soft_margin = 60秒soft_panic = 0(nowayout = 0)
…
Jan 15 14:21:29 cs-node1 sbd:[1200]:notice:使用看门狗设备:/ dev / watchdog
Jan 15 14:21:29 cs-node1 sbd:[1200]:info:将看门狗超时设置为5秒。
…
Jan 15 14:21:30 cs-node1 sbd:[1202]:info:在磁盘/ dev / iscsi / disk2 / part1上的延迟:1
1月15日14:21:34 sbd:最后一条消息重复了3次
…
1月15日14:21:34 cs-node1 sbd:[1202]:info:在磁盘/ dev / iscsi / disk2 / part1上的延迟:1
有任何想法吗? 谢谢!
ps任何声誉超过300点的人,请考虑创build以下标签:sbd或storage-based-death,stonith和cman。
编辑1:
现在我已经创build了一个单独的初始化脚本来pipe理SBD,它在CMAN之前开始,但是一切都保持不变 – 只有在login后手动启动时才起作用。 启动过程有什么特别之处,我不知道?
编辑2:
最近我注意到日志中实际上没有这样的信息:
Jan 15 14:21:30 cs-node1 sbd:[1202]:info:在磁盘/ dev / iscsi / disk2 / part1上的延迟:1
1月15日14:21:34 sbd:最后一条消息重复了3次
…
1月15日14:21:34 cs-node1 sbd:[1202]:info:在磁盘/ dev / iscsi / disk2 / part1上的延迟:1
并且在初始化看门狗5秒之后,节点可能不会重新启动,但更常见的是在12之后,但每次都与login提示一样。 尽pipe系统日志中没有消息,但SBD仍在运行(我添加了一个与SBD一起启动的后台进程并监视其进程)。