节点消失后,Corosync 导致 CPU 负载达到 100%。如何修复?

节点消失后,Corosync 导致 CPU 负载达到 100%。如何修复?

Corosync + Pacemaker 的常规设置(对我来说是第一次)是在 4 个具有 VirtualIP 的虚拟服务器上进行的,并借助 OpenVPN 组织了一个私有网络。

corosync-2.4.3-4.el7.x86_64
corosynclib-2.4.3-4.el7.x86_64
pacemaker-1.1.19-8.el7_6.4.x86_64
pacemaker-cli-1.1.19-8.el7_6.4.x86_64
pacemaker-cluster-libs-1.1.19-8.el7_6.4.x86_64
pacemaker-libs-1.1.19-8.el7_6.4.x86_64
pcs-0.9.165-6.el7.centos.1.x86_64

所以我这里有 4 个 VPS,运行 CentOS 7,运行 OpenVPN。集群状态处于正常状态:

# pcs status
Cluster name: hacluster
Stack: corosync
Current DC: node2 (version 1.1.19-8.el7_6.4-c3c624ea3d) - partition with quorum
Last updated: Sat Jun 15 14:00:36 2019
Last change: Sat Jun 15 02:25:39 2019 by hacluster via crmd on platinum

4 nodes configured
1 resource configured

Online: [ node1 node2 node3 master ]

Full list of resources:

 virtualIP      (ocf::heartbeat:IPaddr2):       Started node1

Daemon Status:
  corosync: active/enabled
  pacemaker: active/enabled
  pcsd: active/enabled

一切运行正常。每个节点都可以使用 172.16.172.0/24 地址 ping 另一个节点。

如果我重新启动 VPS,集群将保持在线状态,虚拟 IP 将移动到另一个活动节点。到目前为止一切正常。

昨天,由于 DDoS 攻击,其中一个节点的 IP 地址被黑洞了。因此,其他 3 个节点无法连接到它,并且从那时起同步开始消耗所有可能的 CPU 甚至更多。我不得不killall -9 corosync让服务器恢复运行。

集群开始显示所有节点都处于离线状态,甚至本地节点也是如此。没有任何帮助,尝试过:

pcs cluster localnode remove node1

重新启动守护进程,停止/启动集群等。CPU 消耗同步每次启动时都会开始增长。

我想我错过了一些非常明显的东西,但我仍然不太确定它到底是什么。

只有在故障节点停机 4 小时后重新上线后,集群才恢复。

请让我知道我需要进行哪些调整才能保持集群在线,即使一两个节点无法访问。

问候,亚历克斯。

相关内容