Pacemaker - 接口断开连接后集群不会传递到另一个节点

Pacemaker - 接口断开连接后集群不会传递到另一个节点

我在 Corosync + Pacemaker 中有下一个场景

节点1:

eth0:10.143.0.21/24

eth1:10.10.10.1/30(Corosync 通信)

eth2:192.168.5.2/24

节点2:

eth0:10.143.0.22/24

eth1:10.10.10.2/30(Corosync 通信)

eth2:192.168.5.3/24

浮动 IP

eth0:10.143.0.23/24

eth2:192.168.5.1/24

接口 eth1 仅用于 corosync 通信。

例如,我断开了接口 eth0 上的网线,但什么也没发生;再比如,我断开了接口 eth2 上的网线,结果也一样,但我断开了接口 eth1 上的网线(corosync 通信),并将浮动 IP 传递到了另一个节点。

断开任何接口时如何将资源传递给另一个节点?

问候

更新

我使用以下设置进行了测试

crm configure primitive PING-WAN ocf:pacemaker:ping params host_list="10.143.0.1" multiplier="1000" dampen="1s" op monitor interval="1s"
crm configure primitive Failover-WAN ocf:heartbeat:IPaddr2 params ip=10.143.0.23 nic=eth0 op monitor interval=10s meta is-managed=true
crm configure primitive Failover-LAN ocf:heartbeat:IPaddr2 params ip=192.168.5.1 nic=eth2 op monitor interval=10s meta is-managed=true
crm configure group Cluster Failover-WAN Failover-LAN
crm configure location Best_Connectivity Cluster rule pingd: defined pingd

它对我有用,当断开 eth0 上的网线并丢失对目标 10.143.0.1(网关)的 ping 时,资源被移动到另一个节点,但我的情况是 3 个接口,所以我决定再添加一个 ping 测试

crm configure primitive PING-LAN ocf:pacemaker:ping params host_list="192.168.5.4" multiplier="1000" dampen="1s" op monitor interval="1s"

但现在需要失去与两台主机(10.143.0.1和192.168.5.4)的连接,以便将资源移动到另一个节点。

我正在寻找信息,但无法使以下场景发挥作用:

如果节点与任何添加到 ping 测试的主机失去连接,则其他资源将传递到另一个节点,而无需同时失去所有 ping 测试的连接。

答案1

您需要告诉 Pacemaker 您关心接口故障。查看资源ocf:pacemaker:ping。您可以使用该资源代理对不同接口网络上的其他主机列表进行 ping,如果这些 ping 失败,Pacemaker 将做出反应。

如果您对ocf:pacemaker:ping资源进行分组或使用约束将它们关联到您在 Pacemaker 中管理的其他内容,它们都会一起移动。

此外,我敢打赌,eth1在之前的测试中,当您拔掉电源时,IP 并没有“移动”,而是同时在两个集群节点上启动;对于集群节点来说,它们都认为它们的对等节点已经丢失。您实际上是在测试集群分区后会发生什么。

在这一点上,您绝对应该按照另一个答案中的建议在 Corosync 配置中配置第二个冗余环,但这不会产生您想要的效果。

更新0:您应该将两个 IP 都添加到同一个ping原语中host_list,而不是添加额外的原语,然后将该原语ping设置为可接受的任何内容。failure_score

来自ocf:pacemaker:ping资源代理(# crm ra info ocf:pacemaker:ping):

...
failure_score (integer):
Resource is failed if the score is less than failure_score.
Default never fails.

host_list* (string): Host list
A space separated list of ping nodes to count.
...

就像是:# crm configure primitive PING-O-DOOM ocf:pacemaker:ping params host_list="10.143.0.1 192.168.5.4" failure_score="2" op monitor interval="10s"

答案2

您需要在 corosync 环中配置两个接口。

例子:

pcs cluster auth node1 node2
pcs cluster setup --start --name zfs-cluster zfs-node1,zfs-node1-ext zfs-node2,zfs-node2-ext

在哪里:

# Management addresses of both nodes
172.16.40.15    zfs-node1.ewwhite.net zfs-node1
172.16.40.16    zfs-node2.ewwhite.net zfs-node2

# Cluster ring address for heartbeat
192.168.91.1    zfs-node1-ext
192.168.91.2    zfs-node2-ext

相关内容