Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

6.6. 资源操作

为确保资源健康,您可以在资源的定义中添加监控操作。如果您没有为资源指定监控操作,默认情况下,pcs 命令将创建一个监控操作,间隔由资源代理决定。如果资源代理不提供默认的监控间隔,pcs 命令将创建监控操作,间隔为 60 秒。
表 6.4 “操作的属性” 总结资源监控操作的属性。

表 6.4. 操作的属性

描述
id
操作的唯一名称。系统在配置操作时分配这个值。
name
要执行的操作。常见值: 监控启动停止
interval
如果设置为非零值,则会以这个频率(以秒为单位)重复操作。非零值只有在操作 名称 设为 monitor 时才有意义。资源启动后,将立即执行重复的 monitor 操作,并在上一个监控动作完成后调度后续的 monitor 操作。例如,如果 monitor 操作的 interval=20s 在 01:00:00 执行,则下一次 monitor 操作不是在 01:00:20 时发生,而是在第一个 monitor 操作完成后的 20 秒发生。
如果设置为零(默认值为零),则此参数允许您为集群创建的操作提供值。例如,如果 间隔 设为零,则操作 的名称 被设置为 start超时 值设为 40,则 Pacemaker 在启动此资源时将使用 40 秒超时。通过零间隔的 monitor 操作,您可以为 Pacemaker 在启动时使用的探测设置 超时/on-fail/enabled 值,以便在不需要默认值时获取所有资源的当前状态。
timeout
如果在此参数设置的时间内操作没有完成,操作会被终止并认为它失败。默认值是使用 pcs resource op defaults 命令设置的 超时 值,如果未设置,则为 20 秒。如果您发现您的系统所包含的资源比系统允许执行操作的时间更长(如 startstopmonitor),请调查其原因,并调查您预计较长的执行时间可以增加这个值。
超时 值不是任何类型的延迟,如果操作在超时期限完成后返回,集群也不会等待整个超时时间。
on-fail
在这个操作失败时要执行的操作。允许的值:
* ignore - Pretend resource 没有失败
* block - 不要对资源执行任何进一步的操作
* stop - 停止资源且不在其它位置启动它
* restart - 停止资源并重新启动(可能在不同的节点上)
* fence - 资源失败的节点 STONITH
* standby - 从资源失败的节点中移出 所有资源
* migrate - 如果可能,将资源迁移到另一个节点。这等同于将 migration-threshold 资源 meta 选项设置为 1。
当启用 STONITH 并阻止其他 停止 操作的默认设置 会被隔离。所有其他操作默认为 重新启动
enabled
如果为 false,则操作将被视为不存在。允许的值: true,false

6.6.1. 配置资源操作

您可以使用以下命令在创建资源时配置监控操作。
pcs resource create resource_id standard:provider:type|type [resource_options] [op operation_action operation_options [operation_type operation_options]...]
例如,以下命令使用监控操作创建 IPaddr2 资源:新资源称为 VirtualIP,IP 地址为 192.168.0.99,eth 2 上的子网掩码为 24。每 30 秒将执行一次监控操作。
# pcs resource create VirtualIP ocf:heartbeat:IPaddr2 ip=192.168.0.99 cidr_netmask=24 nic=eth2 op monitor interval=30s
另外,您可以使用以下命令在现有资源中添加监控操作。
pcs resource op add resource_id operation_action [operation_properties]
使用以下命令删除配置的资源操作。
pcs resource op remove resource_id operation_name operation_properties
注意
您必须指定准确的操作属性才能正确地删除现有的操作。
要更改监控选项的值,您可以更新资源。例如,您可以使用以下命令创建 VirtualIP
# pcs resource create VirtualIP ocf:heartbeat:IPaddr2 ip=192.168.0.99 cidr_netmask=24 nic=eth2
默认情况下,这个命令会创建这些操作。
Operations: start interval=0s timeout=20s (VirtualIP-start-timeout-20s)
            stop interval=0s timeout=20s (VirtualIP-stop-timeout-20s)
            monitor interval=10s timeout=20s (VirtualIP-monitor-interval-10s)
要改变停止超时操作,请执行以下命令。
# pcs resource update VirtualIP op stop interval=0s timeout=40s

# pcs resource show 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 timeout=20s (VirtualIP-monitor-interval-10s)
              stop interval=0s timeout=40s (VirtualIP-name-stop-interval-0s-timeout-40s)
注意
当您使用 pcs resource update 命令更新资源操作时,您没有特别调用的任何选项都将重置为默认值。