11.3. 配置资源 meta 选项
除了特定于资源的参数外,您还可以为任何资源配置其他资源选项。集群会使用这些选项来决定您的资源的行为。
下表描述了资源 meta 选项。
项 | 默认值 | 描述 |
---|---|---|
|
| 如果不是所有资源都处于活跃状态,集群将停止较低优先级的资源,以便保持优先权更高的资源的活跃状态。 |
|
| 指明集群应尝试将此资源保留在什么状态。允许的值:
*
*
*
* |
|
|
指明是否允许集群启动和停止资源。允许的值: |
| 1 | 指示资源倾向于保留在当前位置的程度。 |
| Calculated | 指示可在什么情况下启动资源。
除非在下列情况下,否则默认为
*
*
*
* |
|
|
在将这个节点标记为不允许托管此资源之前,节点上可能会发生多少个故障。值 0 表示禁用了此功能(节点永远不会标记为无效);相反,集群将 |
|
| 如果经过了这么长时间后没有出现新的故障,则忽略之前失败的资源操作。如果之前达到了其迁移阈值,则这可能允许资源返回到其失败的节点。0 值表示失败不会过期。 警告 :如果这个值太低,且待处理的集群活动阻止集群在这个时间内响应失败,则失败被完全忽略,且不会导致资源恢复,即使重复操作仍然报告失败。这个选项的值应至少大于集群中所有资源的最长操作超时。以小时或天为单位的值是合理的。 |
|
| 代表当在多个节点上都找到活跃的资源时集群应该做什么。允许的值:
*
*
*
* |
|
|
为涉及资源作为从属资源(target_resource)的所有 colocation 约束设置 |
|
|
(RHEL 9.1 及更高版本)当设置为 |
11.3.1. 更改资源选项的默认值
您可以使用 pcs resource defaults update
命令更改所有资源的资源选项默认值。以下命令将资源粘性的默认值重置为 100
。
# pcs resource defaults update resource-stickiness=100
原始的 pcs resource defaults name=value
命令(在以前的版本中为所有资源设置默认值)仍然被支持,除非设置了多组默认值。但是,pcs resource defaults update
现在是该命令的首选版本。
11.3.2. 更改一组资源选项的默认值
您可以使用 pcs resource defaults set create
命令创建多个资源默认值,该命令允许您指定包含 resource
表达式的规则。在使用此命令指定的规则中,仅允许 resource
和 date
表达式(包括 and
, or
和括号)。
使用 pcs resource defaults set create
命令,您可以为特定类型的所有资源配置默认值。例如,如果您正在运行数据库,需要很长时间才能停止,可以提高数据库类型的 resource-stickiness
默认值,以防止这些资源更频繁地迁移到其他节点。
以下命令将类型为 pqsql
的所有资源的 resource- sticky
设置为 100。
-
id
选项(即资源默认值的名称)不是强制性的。如果您没有设定此选项,pcs
则会自动生成 ID。设置这个值可让您提供更描述性的名称。 在这个示例中,
::pgsql
代表一个任何类、任何厂商、类型为pgsql
的资源。-
ocf:heartbeat:pgsql
代表类为ocf
,厂商为heartbeat
,类型为pgsql
。 -
ocf:pacemaker:
代表类为ocf
,厂商为pacemaker
,类型为任意的资源。
-
# pcs resource defaults set create id=pgsql-stickiness meta resource-stickiness=100 rule resource ::pgsql
要更改现有集合中的默认值,请使用 pcs resource defaults set update
命令。
11.3.3. 显示当前配置的资源默认设置
pcs resource defaults [config]
命令显示目前为资源选项配置的默认值的列表,包括您指定的任何规则。从 Red Hat Enterprise Linux 9.5 开始,您可以以文本、JSON 和命令格式显示这个命令的输出。
-
指定
--output-format=text
以纯文本格式显示配置的资源默认值,这是此选项的默认值。 -
指定
--output-format=cmd
会显示从当前集群默认值配置创建的pcs resource defaults
命令。您可以使用这些命令在不同的系统上重新创建配置的资源默认值。 -
指定
--output-format=json
以 JSON 格式显示配置的资源默认值,这适用于机器解析。
以下示例显示了任何 ocf:pacemaker:pgsql
资源的默认值使用以下示例命令重置后,pcs resource defaults config
命令的三种不同的输出格式:
# pcs resource defaults set create id=set-1 score=100 meta resource-stickiness=10 rule resource ocf:pacemaker:pgsql
本例以纯文本形式显示配置的资源默认值。
# pcs resource defaults config
Meta Attrs: build-resource-defaults
resource-stickiness=1
Meta Attrs: set-1 score=100
resource-stickiness=10
Rule: boolean-op=and score=INFINITY
Expression: resource ocf:pacemaker:pgsql
本例显示从当前集群默认值配置创建的 pcs resource defaults
命令。
# pcs resource defaults config --output-format=cmd
pcs -- resource defaults set create id=build-resource-defaults \
meta resource-stickiness=1;
pcs -- resource defaults set create id=set-1 score=100 \
meta resource-stickiness=10 \
rule 'resource ocf:pacemaker:pgsql'
本例以 JSON 格式显示配置的资源默认值。
# pcs resource defaults config --output-format=json
{"instance_attributes": [], "meta_attributes": [{"id": "build-resource-defaults", "options": {}, "rule": null, "nvpairs": [{"id": "build-resource-stickiness", "name": "resource-stickiness", "value": "1"}]}, {"id": "set-1", "options": {"score": "100"}, "rule": {"id": "set-1-rule", "type": "RULE", "in_effect": "UNKNOWN", "options": {"boolean-op": "and", "score": "INFINITY"}, "date_spec": null, "duration": null, "expressions": [{"id": "set-1-rule-rsc-ocf-pacemaker-pgsql", "type": "RSC_EXPRESSION", "in_effect": "UNKNOWN", "options": {"class": "ocf", "provider": "pacemaker", "type": "pgsql"}, "date_spec": null, "duration": null, "expressions": [], "as_string": "resource ocf:pacemaker:pgsql"}], "as_string": "resource ocf:pacemaker:pgsql"}, "nvpairs": [{"id": "set-1-resource-stickiness", "name": "resource-stickiness", "value": "10"}]}]}
11.3.4. 在创建资源时设置 meta 选项
是否重置资源 meta 选项的默认值,您可以在创建资源时将特定资源的资源选项设置为默认值,而不是默认值。以下显示了在为资源元选项指定值时使用的 pcs resource create
命令的格式。
pcs resource create resource_id [standard:[provider:]]type [resource options] [meta meta_options...]
例如,以下命令创建一个 resource-stickiness
值为 50 的资源。
# pcs resource create VirtualIP ocf:heartbeat:IPaddr2 ip=192.168.0.120 meta resource-stickiness=50
您还可以使用以下命令为现有资源、组或克隆的资源设置资源 meta 选项的值。
pcs resource meta resource_id | group_id | clone_id meta_options
在以下示例中,有一个名为 dummy_resource
的现有资源。此命令将 failure-timeout
元选项设置为 20 秒,因此资源可在 20 秒内尝试在同一节点上重启。
# pcs resource meta dummy_resource failure-timeout=20s
执行此命令后,可以显示资源的值,以验证是否设置了 failure-timeout=20s
。
# pcs resource config dummy_resource
Resource: dummy_resource (class=ocf provider=heartbeat type=Dummy)
Meta Attrs: failure-timeout=20s
...