当我拔下首选节点时,资源是不干净的

当我拔下首选节点时,资源是不干净的

我对 Linux 网络配置还很陌生

我通过 ssh + drbd + nginx 为 3 个节点配置了 linux pacemaker + corosync + stonith。

电脑状态:


3 nodes configured
7 resources configured

Online: [ main-node second-node third-node ]

Full list of resources:

 ClusterIP      (ocf::heartbeat:IPaddr2):       Started main-node
 WebSite        (ocf::heartbeat:nginx): Started main-node
 Master/Slave Set: WebDataClone [WebData]
     Masters: [ main-node ]
     Slaves: [ second-node third-node ]
 WebFS  (ocf::heartbeat:Filesystem):    Started main-node
 ssh-fencing    (stonith:ssh):  Started third-node

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

我正在通过拔掉网络电缆来测试这些机器中的 stonith。它工作正常,当再次插入时,stonith 会关闭拔掉的机器。所有其他机器都在处理集群。

当我拔掉首选提供 WebSite 资源的机器时,问题就出现了。然后其他插入的机器的 pcs 状态如下所示:

3 nodes configured
7 resources configured

Node main-node: UNCLEAN (offline)
Online: [ second-node third-node ]

Full list of resources:

 ClusterIP      (ocf::heartbeat:IPaddr2):       Started main-node (UNCLEAN)
 WebSite        (ocf::heartbeat:nginx): Started main-node (UNCLEAN)
 Master/Slave Set: WebDataClone [WebData]
     WebData    (ocf::linbit:drbd):     Master main-node (UNCLEAN)
     Slaves: [ second-node third-node ]
 WebFS  (ocf::heartbeat:Filesystem):    Started main-node (UNCLEAN)
 ssh-fencing    (stonith:ssh):  Started third-node

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

网站瘫痪了。这是为什么?其他节点不应该提供资源吗?

答案1

SSH STONITH 并不是真正的防护,不应该在生产中使用,除非您接受它可能会让您陷入某些类型的故障,就像您在测试中看到的那样。

当您拔下节点的网线时,集群将尝试对从集群/网络中消失的节点进行 STONITH。SSH STONITH 代理使用您拔下的同一网络尝试关闭丢失的节点。在网络恢复(重新插入)之前,它将无法执行此操作。由于集群在 STONITH 代理成功关闭丢失的节点之前不会采取任何操作(故障转移),因此您只能使用 UNCLEAN(挂起)服务。

如果您切断主节点的电源,您将遇到同样的问题,因为当系统没有电源时,您无法通过 SSH 进入系统。

简而言之,这是使用 SSH STONITH 时的预期行为,并且需要适当的隔离设备才能从您正在测试的场景中恢复。

相关内容