我正在使用起搏器/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 时发生:
- 起搏器/corosync 无法在 Node1 上启动 ILO2-fence(当然是因为 Node 1 已关闭),因此不要启动其他资源,因此我的集群都无法正常工作 >:[
我想知道我是否错过了配置中的某些内容,或者我不太了解这样的集群应该如何工作。
因为我希望 Node2 启动,所以集群看到 Node1 是 KO 并且只是启动资源以使 Node2 自己工作。
但这是真的,因为 ILO2-fence 只能位于 Node1 上(因为避免自杀的约束),所以这个资源总是会失败......(在没有那些“反自杀”约束的情况下尝试时,如果 Node2 有一些服务失败,然后它在启动后直接关闭,我不想要)
我会欣赏一些回报和启示:)
谢谢 :)
假设您的集群中有 4 个投票 - 2 个节点和 2 个 ILO 围栏。如果可以访问 >2 (3),则集群可以运行。ILO2 仅配置了 node1,因此如果 node1 关闭 - 仲裁将丢失。不推荐使用 ILO-fencing:
“人们在选择 STONITH 设备时常犯的一个错误是使用与它控制的节点共享电源的远程电源开关(例如许多板载 IPMI 控制器)。如果在这种情况下电源出现故障,集群将无法正常运行。确定节点是否真的处于离线状态,或处于活动状态并遭受网络故障,因此集群将停止所有资源以避免可能的脑裂情况。” 关联
2 节点集群有 2 个选项:
使用一台外部防护设备(见证节点、投票 VSA 或 SMB2/3 文件共享)。
使用为 2 节点集群开发的解决方案(如 Microsoft Hyper-V Storage Spaces Direct (S2D) aka Azure Stack HCI、VMware Virtual SAN (vSAN) esp. ROBO Edition 或StarWind Virtual SAN (VSAN))。