6.7. 在 3 节点集群中测试 ASCS 或 ERS 实例失败
测试 pacemaker 集群在连续故障后恢复不同节点上的 ASCS 或 ERS 实例。
您在 ENSA2 设置中配置的约束尝试在单独的节点上保留 ASCS 和 ERS 实例,并且集群使用任何额外的节点来恢复。
在有 2 个节点的集群中,失败的 ASCS 或 ERS 实例的恢复类似。以下测试演示了一个失败的 ASCS 实例的示例。
先决条件
- 您已在 ENSA2 设置中配置了 ASCS 和 ERS 实例。
- 您已在这个集群中配置了 3 个或更多集群节点。
- 您已将额外的集群节点配置为能够运行实例。
- 您已确保所有集群节点都已启动,并且 ASCS 和 ERS 的资源组在不同节点上运行。
- 集群状态没有失败。
流程
在运行 ASCS 的节点上,识别 enqueue 服务器的进程 ID (PID)。使用
sapcontrol… GetProcessList作为 <sid>adm用户查找 PID 作为最后一个条目:<sid>adm $ sapcontrol -nr <instance> -function GetProcessList name, description, dispstatus, textstatus, starttime, elapsedtime, pid enq_replicator, Enqueue Replicator 2, GREEN, Running, YYYY MM DD 13:20:07, 0:00:08, 161323在示例中,equeue 服务器 PID 为
161323。向确定的进程发送
SIGKILL信号,以立即终止它,例如 node1 上的 ASCS:<sid>adm $ kill -9 <pid>-
将
<pid> 替换为 enqueue 服务器的 PID,例如161323。
-
将
-
检查 ASCS 实例是否在同一节点上恢复。当所有资源的默认
migration-threshold设置为3时,集群会在同一节点上重启资源两次,然后再在不同节点上恢复。 - 重复步骤 1 和 2,直到您终止进程 3 次。当同一资源有 3 个连续故障后,集群会在另一个节点上恢复资源。
验证
检查 ASCS 实例现在是否在额外节点上运行:
[root]# pcs resource * Resource Group: grp_S4H_ASCS20: * rsc_vip_S4H_ASCS20 (ocf:heartbeat:IPAddr2): Started node3 * rsc_SAPStartSrv_S4H_ASCS20 (ocf:heartbeat:SAPStartSrv): Started node3 * rsc_SAPInstance_S4H_ASCS20 (ocf:heartbeat:SAPInstance): Started node3 * Resource Group: grp_S4H_ERS29: * rsc_vip_S4H_ERS29 (ocf:heartbeat:IPAddr2): Started node2 * rsc_SAPStartSrv_S4H_ERS29 (ocf:heartbeat:SAPStartSrv): Started node2 * rsc_SAPInstance_S4H_ERS29 (ocf:heartbeat:SAPInstance): Started node2在我们的示例中,ASCS 实例在 node1 上失败,并已移到 node3。ERS 实例保留在 node2 上。
检查失败计数,并注意它有 3 次触发另一节点上的恢复:
[root]# pcs resource failcount Failcounts for resource 'rsc_SAPInstance_S4H_ASCS20' node1: 3
后续步骤
- 清除集群中可能来自之前测试的任何故障通知。如需更多信息,请参阅 清理失败历史记录。