0

我正在使用 SLEHA12SP3 在 SUSE12 SP3 上使用 linux HA 集群
我使用 ocf 资源代理 "ocf::heartbeat:anything" 创建了一个自定义 CRM 资源(我称之为 ucaproc)。然而,我的问题是关于 crm 资源与 linux HA 集群中节点的关联性。似乎为集群提供虚拟 IP 的名为“failover-ip”的资源始终在节点 HA1 上启动,但我的自定义资源(称为 ucaproc)默认情况下始终在节点 HA2 上运行。查看显示集群资源的“crm status”命令的输出

 crm status
 Stack: corosync
 Current DC: HA1 (version 1.1.16-6.5.1-77ea74d) - 
 partition with quorum
 Last updated: Thu Aug  8 12:21:33 2019
 Last change: Thu Aug  8 10:44:45 2019 by root via cibadmin on HA1
 2 nodes configured
 2 resources configured
 Online: [ HA1  HA2 ]

 Full list of resources:

 failover-ip    (ocf::heartbeat:IPaddr2):       Started HA1 
 ucaproc        (ocf::heartbeat:anything):      Started HA2

如何强制我的自定义资源(ucaproc)在与“failover-ip”相同的节点上运行。基本上,我希望“failover-ip”和“ucaproc”资源都在相同的节点(活动节点 HA1)上运行,并且当节点发生故障时,我希望两者一起故障转移到其他节点(备用节点 HA2)。这里两个节点本身都是主动的,只是我根据运行的资源将它们视为主动和被动

感谢帮助

约格什·德维

4

1 回答 1

2

默认情况下,Pacemaker 将尝试将资源分散到集群节点上。这很可能是资源总是在不同节点上启动的原因。为了确保资源在相同的节点上运行,我们可以使用托管约束。例如:

crm(live)configure# colocation failover-ip_with_ucaproc inf: 故障转移-ip ucaproc

这指示起搏器以无穷大 (1,000,000) 的分数对运行 ucaproc 的任何节点加权故障转移 ip。

有关托管资源的更多信息,您可以在此处查看 Pacemaker 文档:https ://clusterlabs.org/pacemaker/doc/en-US/Pacemaker/1.1/html/Pacemaker_Explained/s-resource-colocation.html

于 2019-08-08T19:51:25.847 回答