我正在尝试将 2 台计算机与 Pacemaker/Corosync 一起集群。他们共享的唯一资源是 ocf:heartbeat:IPaddr 这是主要问题:
由于只有两个节点,因此只有在no-quorum-policy=ignore
.
当从节点 A 拔出网线时,节点 A 上的 corosync 绑定到 127.0.0.1,pacemaker 认为节点 A 仍然在线,而节点 B 是离线的。
Pacemaker 尝试在节点 A 上启动 IPaddr,但由于没有网络连接而无法启动。另一方面,节点 B 识别出节点 B 处于离线状态,如果 IPaddr 服务在节点 A 上启动,它将成功地在其自身(节点 B)上启动它。
但是,由于服务无法在节点 A 上启动,它会进入致命状态,必须重新启动才能重新加入集群。(您可以重新启动一些需要的服务。)
1解决方法是start-failure-is-fatal="false"
使节点A继续尝试启动IPaddr服务直到成功的设置。这样做的问题是,一旦成功,两个节点之间就会发生 ip 冲突,直到它们重新集群并且其中一个节点放弃资源。
我正在玩弄一个节点属性的想法,该节点属性cat /sys/class/net/eth0/carrier
在电缆连接时为 1,在电缆断开时为 0,然后有一个位置规则,如果“已连接”== 零则不启动服务类型事情,但我们会看到。
任何想法或想法将不胜感激。