5.5. 資源作業

若要確保資源健全,您可加入一項監控作業至資源定義中。若您不為資源指定一項監控作業,就預設值,pcs 指令會建立一項監控作業,其間隔會由資源代理程式來判斷。若資源代理程式不提供預設的監控間隔,pcs 指令將會建立一項間隔為 60 秒的監控作業。
表格 5.4, “作業內容” 概述了一項資源監控作業的內容。

表格 5.4. 作業內容

欄位詳述
id
動作的獨特名稱。系統會在您配置一項作業時指定此名稱。
name
需進行的動作。常用的值為:monitorstartstop
interval
進行作業的頻率(秒)。預設值為:0,代表永不。
timeout
在宣告動作失敗前所需等待的時間。若您發現您的系統包含了一項資源花費許多時間啟用或停用,或是在啟用時會執行一項非遞迴的監控動作,並需要比系統所允許之時間(在宣告啟用動作失敗之前)還要久的時間,您可將預設值 20 更改為更長的時間,或更改「op defaults」中的 timeout 值。
on-fail
此動作失敗時所進行的動作。允許的值有:
* ignore - 假設資源並未失效
* block - 不在資源上進行任何其它作業
* stop - 停下資源,並且不在其它地方啟用它
* restart - 停下資源並將它重新啟用(可能在不同的節點上)
* fence - 針對於資源失效的節點進行 STONITH
* standby - 將資源失效於的節點上的所有資源移掉
當 STONITH 啟用時,stop 作業的預設值為 fence,停用時則為 block。所有其它作業的預設值皆為 restart
enabled
若是 false 的話,作業便會被視為不存在。允許的值為:truefalse
您可透過下列指令來在您建立資源時配置監控作業。
pcs resource create resource_id standard:provider:type|type [resource_options] [op operation_action operation_options [operation_type operation_options]...]
比方說,下列指令會建立一項 IPaddr2 資源搭配監控作業。新的資源稱為 VirtualIP,其 IP 位址在 eth2 上為 192.168.0.99 而子網路遮罩為 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 create my_address IPaddr2 ip=10.20.30.40 cidr_netmask=24 op monitor 
此外,您可透過下列指令來新增一項監控作業至既有的資源中。
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 op remove VirtualIP stop interval=0s timeout=20s
# pcs resource op add VirtualIP 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 op defaults [options]
比方說,下列指令會為所有監控作業設置一項 timeout 值為 240s 的全域預設值。
# pcs resource op defaults timeout=240s
若要顯示監控作業目前已配置的預設值,當您執行 pcs resource op defaults 指令時,請勿指定任何選項。
比方說,下列指令會顯示一個已被配置了 timeout 值為 240s 的叢集的預設監控作業值。
# pcs resource op defaults
timeout: 240s