我正在使用 Red Hat 的高可用性附加组件,一切似乎都运行良好,但我有一个问题:
每当我重新启动其中一个节点时7test2
,资源组g1
就会迁移到7test1
(按照设计),然后当7test2
重新上线时资源组g1
又会迁移回来,就像它有某种粘性或什么东西一样。
[root@7test1 ~]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.1 (Maipo)
[root@7test1 ~]# rpm -q pcs
pcs-0.9.137-13.el7.x86_64
[root@7test1 ~]# pcs status
Cluster name: 7test
Last updated: Thu Apr 23 17:11:10 2015
Last change: Thu Apr 23 17:00:02 2015
Stack: corosync
Current DC: 7test1.uftwf.local (1) - partition with quorum
Version: 1.1.12-a14efad
2 Nodes configured
3 Resources configured
Online: [ 7test1.uftwf.local 7test2.uftwf.local ]
Full list of resources:
rhevm (stonith:fence_rhevm): Started 7test1.uftwf.local
Resource Group: g1
IPaddr (ocf::heartbeat:IPaddr2): Started 7test2.uftwf.local
MailTo (ocf::heartbeat:MailTo): Started 7test2.uftwf.local
PCSD Status:
7test1.uftwf.local: Online
7test2.uftwf.local: Online
Daemon Status:
corosync: active/enabled
pacemaker: active/enabled
pcsd: active/enabled
[root@7test1 ~]#
如何在起搏器中设置资源粘性?
答案1
您可以使用以下命令设置资源元选项的值resource-stickiness
,该选项指示资源停留在给定资源或组的当前位置的程度(默认值为 0):
# pcs resource meta resource_id resource-stickiness=100
例如:
# pcs resource meta dns_ip resource-stickiness=100
# pcs resource show dns_ip Resource: dns_ip (class=ocf provider=heartbeat type=IPaddr2) Attributes: ip=10.0.0.1 cidr_netmask=24 Meta Attrs: resource-stickiness=100 Operations: start interval=0s timeout=20s (dns_ip-start-timeout-20s)
答案2
要显示特定集群属性的当前值,请使用以下命令。
pcs property list --all
要显示特定集群属性的当前值,请使用以下命令。
pcs property show property
要设置集群属性的值,请使用以下 pcs 命令。
pcs property set property=value
答案3
在大多数情况下,最好防止集群中健康资源被移动。移动资源几乎总是需要一段时间的停机时间。对于数据库等复杂服务,这段时间可能相当长。
为了解决这个问题,Pacemaker 提出了资源粘性的概念,它控制着服务在原地运行的意愿有多强烈。您可能想把它看作是任何停机时间的“成本”。默认情况下,Pacemaker 假设移动资源的成本为零,并将这样做以实现“最佳” [6] 资源放置。我们可以为每种资源指定不同的粘性,但通常只需更改默认值即可。