Red Hat Training

A Red Hat training course is available for RHEL 8

11.3. 配置资源 meta 选项

除了特定于资源的参数外,您还可以为任何资源配置其他资源选项。集群会使用这些选项来决定您的资源的行为。

下表描述了资源 meta 选项。

表 11.3. 资源元数据选项

默认值描述

priority

0

如果不是所有资源都处于活跃状态,集群将停止较低优先级的资源,以便保持优先权更高的资源的活跃状态。

target-role

Started

指明集群应尝试将此资源保持在什么状态。允许的值:

Stopped - 强制资源停止

* Started - 允许资源启动(如果是可升级的克隆,则提升到 master 角色)

* Master - 允许资源启动,并在可能的情况下提升资源

* Slave - 允许资源启动,但如果资源是可升级的,则仅在 slave 模式下

从 RHEL 8.5 开始,pcs 命令行界面接受在 Pacemaker 配置中指定的 PromotedUnpromoted 任何角色。这些角色名称在功能上等同于 MasterSlave Pacemaker 角色。

is-managed

true

指明是否允许集群启动和停止资源。允许的值: true,false

resource-stickiness

0

指示资源倾向于保留在当前位置的程度。有关此属性的详情,请参考 配置资源以首选其当前节点

requires

Calculated

指示可在什么情况下启动资源。

除非在下列情况下,否则默认为 fencing。可能的值:

* nothing - 集群总是可以启动资源。

* quorum - 只有在大多数配置的节点处于活动状态时,集群才能启动此资源。如果 stonith-enabledfalse 或资源 的标准 is stonith,则这是默认值。

* 隔离 - 只有大多数配置的节点活跃 隔离任何失败或未知节点时,集群才能启动此资源。

* 取消隔离 - 只有大多数配置的节点活跃 所有失败或未知节点都被隔离, 只能在未 隔离的 节点上,集群才能启动此资源。如果为隔离设备设置了 provides=unfencing stonith 元选项,则这是默认值。

migration-threshold

INFINITY

在此节点被标记为不允许托管此资源之前,资源在此节点上可能会发生多少次故障。值 0 表示禁用了此功能(节点永远不会标记为无效);相反,集群将 INFINITY (默认值)视为非常大但有限的数。只有在失败的操作有 on-fail=restart (默认值)时,这个选项才会生效,如果集群属性 start-failure-is-fatalfalse,则此选项还可用于失败的启动操作。

failure-timeout

0 (禁用)

migration-threshold 选项结合使用,可指示在采取操作之前要等待多少秒,就像没有发生故障一样,并可能允许资源返回到失败的节点上。

multiple-active

stop_start

如果在多个节点上找到活跃的资源,指示集群应该做什么。允许的值:

* block - 将资源标记为非受管

* stop_only - 停止所有活动的实例,并使其保持这种状态

* stop_start - 停止所有活跃的实例,并仅在一个位置启动资源

* stop_unexpected - (RHEL 8.7 及更高版本)只停止资源的意外实例,而无需完全重启。用户负责验证服务及其资源代理是否可以与额外的活跃实例一起正常工作,而无需全面重启。

critical

true

(RHEL 8.4 及更新的版本)为涉及资源作为依赖资源(target_resource)的所有 colocation 约束设置 影响 选项的默认值,包括当资源是资源组的一部分时创建的隐式 colocation 约束。影响 colocation 约束选项决定了当依赖资源达到其迁移阈值失败时,集群是否会同时将主资源和依赖资源移到另一节点,或者集群是否在不造成服务切换的情况下将依赖资源离线。critical 资源 meta 选项的值可以是 truefalse,默认值为 true

allow-unhealthy-nodes

false

(RHEL 8.7 及更高版本)当设为 true 时,因为节点健康状况降级,资源不会强制关闭节点。当健康资源设置了此属性时,集群可以自动检测节点的健康状态恢复,并将资源移回节点。节点的健康是由健康资源代理根据本地情况设置的健康属性以及决定集群如何响应这些条件的与策略相关的选项的组合决定的。

11.3.1. 更改资源选项的默认值

从 Red Hat Enterprise Linux 8.3 开始,您可以使用 pcs resource defaults update 命令为所有资源更改默认值。以下命令将 resource-stickiness 的默认值重置为 100。

# pcs resource defaults update resource-stickiness=100

pcs resource defaults name=value 命令为之前版本中的所有资源设置默认值,保持支持,除非配置了多个默认值。但是,pcs resource defaults update 现在是 命令的首选版本。

11.3.2. 更改一组资源的资源选项的默认值

从 Red Hat Enterprise Linux 8.3 开始,您可以使用 pcs resource defaults set create 命令创建 多个资源默认值集合,该命令允许您指定包含 资源 表达式的规则。在 RHEL 8.3 中,您使用这个命令指定的规则只允许 资源 表达式,包括 andor 和括号。在 RHEL 8.4 及更高版本中,您使用这个命令指定的规则中只允许 资源和 日期 表达式,包括 和括号。

使用 pcs resource defaults set create 命令时,您可以为特定类型的所有资源配置默认值。例如,如果您正在运行数据库需要很长时间才能停止,您可以提高数据库类型的资源 粘性 默认值,以防止这些资源更频繁地移至其他节点。

以下命令将 pqsql 类型 的所有资源的 resource-stickiness 默认值设置为 100。

  • id 选项命名资源默认值集合,不强制使用。如果您不设置此选项,pc s 将自动生成 ID。设置这个值可让您提供更描述性的名称。
  • 在本例中,::pgsql 表示 type pgsql 的任何类(任何提供程序)的资源。

    • 指定 ocf:heartbeat:pgsql 将指示类 ocf, provider heartbeat, type 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 命令显示目前配置的资源选项默认值的列表,包括您指定的任何规则。

以下示例显示了在将 resource-stickiness 的默认值重置为 100 后,此命令的输出。

# pcs resource defaults
Meta Attrs: rsc_defaults-meta_attributes
  resource-stickiness=100

以下示例显示了在将 pqsql 类型的所有资源的 resource-stickiness 重置为 100 后这个命令的输出,并将 id 选项设置为 id =pgsql-stickiness

# pcs resource defaults
Meta Attrs: pgsql-stickiness
  resource-stickiness=100
  Rule: boolean-op=and score=INFINITY
    Expression: resource ::pgsql

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
  ...