我正在使用 pacemaker/corosync 配置一个 2 节点集群,我对此有一些疑问(也许是最佳实践:我还远不是专家)
**OS:** redhat 7.6
I configurated the cluster with those properties
- **stonith-enabled:** true
- **symmetric-cluster:** true (even if is default value i think)
and added in corosync.conf
- **wait_for_all:** 0 (i want a Node be able to start/work even if his twin is KO)
- **two_nodes:** 1
Considering the fencing:
- Using ILO of blade HP (ILO1 for Node1, ILO2 for Node2)
I read that it was sometimes a good practice to prevent a node suicide, so added constraints
- ILO1-fence can't locate in node1
- ILO2-fence can't locate on node2
我遇到的问题如下,在 Node1 关闭时启动 Node2 时发生的情况:
- pacemaker/corosync 无法在 Node1 上启动 ILO2-fence(当然是因为 Node 1 已关闭),所以无法启动其他资源,所以我的集群根本无法正常工作 >:[
我想知道我的配置是否遗漏了某些东西,或者我是否不太了解这样的集群应该如何工作。
因为我希望 Node2 启动,所以集群看到 Node1 是 KO,并且只需启动资源即可让 Node2 自行工作。
但事实是,由于 ILO2-fence 只能位于 Node1 上(因为有避免自杀的限制),所以这个资源将始终失败......(当尝试没有那些“反自杀”限制时,如果 Node2 有某些服务失败,那么它会在启动后直接关闭,这是我不想要的)
我将非常感激一些回报和启发:)
谢谢 :)
答案1
假设您的集群中有 4 票 - 2 个节点和 2 个 ILO-fence。如果 >2 (3) 个节点可访问,集群即可运行。ILO2 仅配置了节点 1,因此如果节点 1 发生故障 - 法定人数将丢失。不建议使用 ILO-fencing:
“人们在选择 STONITH 设备时常犯的一个错误是使用远程电源开关(例如许多板载 IPMI 控制器),该开关与其控制的节点共享电源。如果在这种情况下电源发生故障,集群无法确定该节点是真的离线,还是处于活动状态并遭受网络故障,因此集群将停止所有资源以避免可能出现的裂脑情况。”关联
对于双节点集群,您有 2 个选项: