“pcs cluster stop --all”之后,DRBD 不会提升从属节点上的资源

“pcs cluster stop --all”之后,DRBD 不会提升从属节点上的资源

我正在尝试了解在“pcs cluster stop --all”并关闭两个节点后可升级资源的恢复过程。我有两个节点 + qdevice 仲裁和一个 DRBD 资源。

这是我测试前的资源总结。一切运行正常,server2 是 DRBD 的主服务器。

 * fence-server1    (stonith:fence_vmware_rest):     Started server2
 * fence-server2    (stonith:fence_vmware_rest):     Started server1
 * Clone Set: DRBDData-clone [DRBDData] (promotable):
   * Masters: [ server2 ]
   * Slaves: [ server1 ]
 * Resource Group: nfs:
   * drbd_fs    (ocf::heartbeat:Filesystem):     Started server2

然后我发出“pcs cluster stop --all”。集群将按预期在两个节点上停止。现在我重新启动 server1(以前是从服务器)并关闭 server2(以前是主服务器)。当 server1 重新启动时,它将隔离 server2,我可以看到 server2 正在 vcenter 上启动,但我只是按下 grub 上的任意键以确保 server2 不会重新启动,相反,它只会在 grub 屏幕上“暂停”。

通过 SSH 连接到 server1 并运行 pcs status 我得到:

Cluster name: cluster1
Cluster Summary:
  * Stack: corosync
  * Current DC: server1 (version 2.1.0-8.el8-7c3f660707) - partition with quorum
  * Last updated: Mon May  2 09:52:03 2022
  * Last change:  Mon May  2 09:39:22 2022 by root via cibadmin on server1
  * 2 nodes configured
  * 11 resource instances configured

Node List:
  * Online: [ server1 ]
  * OFFLINE: [ server2 ]

Full List of Resources:
  * fence-server1    (stonith:fence_vmware_rest):     Stopped
  * fence-server2    (stonith:fence_vmware_rest):     Started server1
  * Clone Set: DRBDData-clone [DRBDData] (promotable):
    * Slaves: [ server1 ]
    * Stopped: [ server2 ]
  * Resource Group: nfs:
    * drbd_fs    (ocf::heartbeat:Filesystem):     Stopped

以下是限制条件:

# pcs constraint
Location Constraints:
  Resource: fence-server1
    Disabled on:
      Node: server1 (score:-INFINITY)
  Resource: fence-server2
    Disabled on:
      Node: server2 (score:-INFINITY)
Ordering Constraints:
  promote DRBDData-clone then start nfs (kind:Mandatory)
Colocation Constraints:
  nfs with DRBDData-clone (score:INFINITY) (rsc-role:Started)
(with-rsc-role:Master)
Ticket Constraints:

# sudo crm_mon -1A
...
Node Attributes:
  * Node: server2:
    * master-DRBDData                     : 10000

所以我可以看到有法定人数,但 server1 从未被提升为 DRBD 主服务器,因此剩余资源将被停止,直到 server2 恢复。

  1. 我需要做什么才能强制升级并恢复而无需重新启动 server2?
  2. 为什么如果不重新启动 server1 并关闭 server2,而是重新启动 server2 并关闭 server1,集群就可以自行恢复?
  3. 这是否意味着由于某种原因,在“cluster stop--all”期间 drbd 数据不同步了?

答案1

我的设置几乎和你的一模一样,所以我的设置也遇到了同样的问题,最终我成功让它工作了。(我正在测试是否发生了断电,集群中的所有服务器都关闭了,只有一个存储节点恢复了。)

不确定您的设置 - 我有一个无盘见证的 DRBD,其仲裁设置为 1;见证还用作集群的 qdevice。我检查了可用节点上 DRBD 资源的状态 - 它是辅助的,在关闭的节点上处于连接状态,见证节点上是无盘(连接/辅助)。我检查了集群仲裁的状态并确保它是仲裁的。

之后,我将 DRBD 资源设为可用节点上的主资源。我最终发现,如果我(暂时)禁用集群上的 STONITH,DRBD 资源和后续资源将立即按顺序启动。在“修复”停机节点后,我重新启用了 STONITH,并确保资源可以正常移动。

相关内容