我正在尝试了解在“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 恢复。
- 我需要做什么才能强制升级并恢复而无需重新启动 server2?
- 为什么如果不重新启动 server1 并关闭 server2,而是重新启动 server2 并关闭 server1,集群就可以自行恢复?
- 这是否意味着由于某种原因,在“cluster stop--all”期间 drbd 数据不同步了?
答案1
我的设置几乎和你的一模一样,所以我的设置也遇到了同样的问题,最终我成功让它工作了。(我正在测试是否发生了断电,集群中的所有服务器都关闭了,只有一个存储节点恢复了。)
不确定您的设置 - 我有一个无盘见证的 DRBD,其仲裁设置为 1;见证还用作集群的 qdevice。我检查了可用节点上 DRBD 资源的状态 - 它是辅助的,在关闭的节点上处于连接状态,见证节点上是无盘(连接/辅助)。我检查了集群仲裁的状态并确保它是仲裁的。
之后,我将 DRBD 资源设为可用节点上的主资源。我最终发现,如果我(暂时)禁用集群上的 STONITH,DRBD 资源和后续资源将立即按顺序启动。在“修复”停机节点后,我重新启用了 STONITH,并确保资源可以正常移动。