corosync/pacemaker/fencing - 具有 2 个节点的被动/主动集群

corosync/pacemaker/fencing - 具有 2 个节点的被动/主动集群

我正在使用 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 个选项:

  1. 使用一个外部防护设备(见证节点、投票 VSA 或 SMB2/3 文件共享)。

  2. 使用为双节点集群开发的解决方案(如 Microsoft Hyper-V存储空间直通(S2D)又名 Azure Stack HCI、VMware虚拟 SAN(vSAN)尤其是 ROBO 版本,或者星风开箱即用的虚拟 SAN (VSAN)。

相关内容