要检查您的群集的当前状态,请使用程序 crm_mon。这样可以显示当前 DC 以及当前节点已知的所有节点和资源。
这可能有几个原因:
首先查看配置文件 /etc/ais/openais.conf,检查群集中的所有节点的多路广播地址是否相同(使用 mcastaddr 键搜索接口部分)。
检查您的防火墙设置。
检查您的交换机是否支持多路广播地址
另一个原因可能是您的节点之间的连接已中断。这通常是错误配置防火墙的结果。这也可能是节点分裂情况(其中群集已分区)的原因。
使用命令 crm_resource -L 可以了解您的当前资源。
尝试手动运行资源代理。对于 LSB,只需运行脚本名称 start 和 脚本名称 stop。要检查 OCF 脚本,请首先设置所需的环境变量。例如,当测试 IPaddr OCF 脚本时,您必须通过设置一个变量名称前缀为 OCF_RESKEY_ 的环境变量来设置变量 ip 的值。对于此示例,可运行以下命令:
export OCF_RESKEY_ip=<your_ip_address> /usr/lib/ocf/resource.d/heartbeat/IPaddr validate-all /usr/lib/ocf/resource.d/heartbeat/IPaddr start /usr/lib/ocf/resource.d/heartbeat/IPaddr stop
如果此操作不成功,很可能是您缺少某个必需变量或者只是输错了参数。
您可以始终将 -V 参数添加到命令。如果您多次执行该操作,该调试输出会变得非常详细。
如果您知道您的资源 ID(可使用 crm_resource -L 获取),可使用 crm_resource -C -r 资源 ID -H 主机命令删除特定的资源。
检查 /var/log/message 是否存在以下行:
Jan 12 09:58:55 clusternode2 lrmd: [3487]: info: RA output: (o2cb:1:start:stderr) 2009/01/12_09:58:55 ERROR: Could not load ocfs2_stackglue Jan 12 16:04:22 clusternode2 modprobe: FATAL: Module ocfs2_stackglue not found.
在这种情况下,将缺少内核模块 ocfs2_stackglue.ko。请根据安装的内核安装包 ocfs2-kmp-default、ocfs2-kmp-pae 或 ocfs2-kmp-xen。