22.2. 配置全局资源操作默认
从 Red Hat Enterprise Linux 8.3 开始,您可以使用 pcs resource op defaults update
命令为所有资源更改资源操作的默认值。
以下命令为所有监控操作设置 timeout
值 240 秒。
# pcs resource op defaults update timeout=240s
最初的为之前版本中的所有资源设置资源操作默认值的 pcs resource op defaults name=value
命令仍然受支持,除非配置了多个默认值。但是,pcs resource op defaults update
是该命令的首选版本。
22.2.1. 覆盖特定于资源的操作值
请注意,只有在集群资源定义中没有指定该选项时,集群资源才会使用全局默认值。默认情况下,资源代理为所有操作定义 timeout
选项。要接受全局操作超时值,您必须明确地创建没有 timeout
选项的集群资源,或者您必须通过更新集群资源来删除 timeout
选项,如以下命令所示。
# pcs resource update VirtualIP op monitor interval=10s
例如,在为所有监控操作设置了一个 240 秒的 timeout
值,并更新集群资源 VirtualIP
来删除 monitor
操作的超时值后,资源 VirtualIP
的 start
、stop
和 monitor
操作的超时值将分别为 20s、40s 和 240s。这里,超时操作的全局默认值仅应用于 monitor
操作,其中默认的 timeout
选项已被上一条命令删除。
# pcs resource config VirtualIP
Resource: VirtualIP (class=ocf provider=heartbeat type=IPaddr2)
Attributes: ip=192.168.0.99 cidr_netmask=24 nic=eth2
Operations: start interval=0s timeout=20s (VirtualIP-start-timeout-20s)
monitor interval=10s (VirtualIP-monitor-interval-10s)
stop interval=0s timeout=40s (VirtualIP-name-stop-interval-0s-timeout-40s)
22.2.2. 为一组资源更改资源操作的默认值
从 Red Hat Enterprise Linux 8.3 开始,您可以使用 pcs resource op defaults set create
命令创建多组资源操作默认值,该命令允许您指定一个包含 resource
和操作表达式的规则。在 RHEL 8.3 中,在您通过此命令指定的规则中,只允许 resource
和操作表达式,包括 and
、or
和括号。在 RHEL 8.4 及更高版本中,还允许 Pacemaker 支持的所有其他规则表达式。
使用此命令,您可以为特定类型的所有资源配置默认资源操作值。例如,在使用捆绑包时,可以配置 Pacemaker 创建的隐式 podman
资源。
以下命令为所有 podman
资源操作设定默认的超时值 90s。在本例中,::podman
是指类型为 podman
的任何类、任何供应商的资源。
id
选项用来命名资源操作默认选项,当并不强制使用。如果您没有设定此选项, pcs
则会自动生成 ID。设置这个值可让您提供更描述性的名称。
# pcs resource op defaults set create id=podman-timeout meta timeout=90s rule resource ::podman
以下命令为所有资源的 stop
操作设置默认的超时值 120s。
# pcs resource op defaults set create id=stop-timeout meta timeout=120s rule op stop
对于特定类型的所有资源,可以为特定的操作设置默认值。以下示例为所有 podman
资源设置 stop
操作的默认超时值 120s。
# pcs resource op defaults set create id=podman-stop-timeout meta timeout=120s rule resource ::podman and op stop
22.2.3. 显示当前配置的资源操作默认值
pcs resource op defaults
命令显示目前配置的资源操作默认值列表,包括您指定的规则。
以下命令显示集群的默认操作值,为所有 podman
资源的所有操作都设置了默认超时值 90s,并为 ID 设置了一组资源操作默认值为 podman-timeout
。
# pcs resource op defaults
Meta Attrs: podman-timeout
timeout=90s
Rule: boolean-op=and score=INFINITY
Expression: resource ::podman
以下命令显示集群的默认操作值,为所有 podman
资源的 stop
操作都设置了默认超时值 120s,并为 ID 设置了一组资源操作默认值为 podman-stop-timeout
。
# pcs resource op defaults
Meta Attrs: podman-stop-timeout
timeout=120s
Rule: boolean-op=and score=INFINITY
Expression: resource ::podman
Expression: op stop