章 8. 進階資源類型

本章節詳述了 Pacemaker 所支援的進階資源類型。

8.1. 資源複製

您可複製一項資源,以讓這項資源能啟用於多個節點上。比方說,您可使用複製的資源來配置多重 IP 資源,以在叢集之間提供節點平衡。您可複製任何資源代理程式所支援的資源。一項複製資源包含了一個資源或是一個資源群組。

注意

僅有能同時啟用於多個節點上的資源適合複製。比方說,一項由共享記憶體裝置掛載了非叢集檔案系統(例如 ext4)的 Filesystem 資源不應被複製。因為 ext4 分割區無法對應叢集,此檔案系統不適合同時在多重節點上進行讀/寫作業。

8.1.1. 建立和移除一項複製的資源

您可藉由以下指令同時建立並複製一項資源。
pcs resource create resource_id standard:provider:type|type [resource options]  \
--clone  [meta clone_options]
複本的名稱會是 resource_id-clone
您無法以單一指令建立資源群組以及該資源群組的複本。
此外,您可透過下列指令來建立一個先前所建立之複本或是資源群組的複本。
pcs resource clone resource_id | group_name [clone_options]...
複本的名稱會是 resource_id-clonegroup_name-clone

注意

您僅需要在一個節點上配置資源配置變更。

注意

當配置限制式時,請總是使用群組或複本的名稱。
當您建立一項資源的複本時,該複本會使用資源的名稱並附加 -clone 至名稱。下列指令會建立一項 apache 類型,名為 webfarm 的資源,以及這項資源的複本,名為 webfarm-clone
# pcs resource create webfarm apache clone
使用下列指令來移除一項資源或是資源群組的複本。這不會移除資源或資源群組本身。
pcs resource unclone resource_id | group_name
欲取得更多有關於資源選項上的資訊,請參閱〈節 5.1, “資源建立”〉。
表格 8.1, “資源複製選項” 詳述了您可為複製的資源指定的選項。

表格 8.1. 資源複製選項

欄位詳述
priority, target-role, is-managed
由被複製的資源所繼承的選項,如 表格 5.3, “資源 Meta 選項” 中所述。
clone-max
需要多少資源複本方可啟用。預設值為叢集中的節點數量。
clone-node-max
一個節點上能啟用多少資源複本;預設值為 1
notify
當停用或啟用複本時,先前通知所有其它複本,並在動作成功完成後再次通知。允許的值包含:falsetrue。預設值為 false
globally-unique
各個複本是否會進行不同的任務?允許的值包含:falsetrue
若此選項的值為 false,這些資源無論在哪裡執行皆會有相同的行為,因此每一部機器上皆只能有一個啟用的複本。
若此選項的值為 true,一個在一部機器上執行的複本將不會與另一個事例相等,無論該事例是在另一個節點還是相同節點上執行。若 clone-node-max 的值大於一,預設值將會是 true;否則預設值便會是 false
ordered
複本是否該連續啟用(而非平行啟用)。允許的值為:falsetrue。預設值為 false
interleave
更改順序限制式的行為(clones/masters 之間)如此一來第一份 clone 的複本便能在相同節點上第二份 clone 的複本啟用或停用時,即刻啟用或停用(無須等待第二份 clone 的每個複本皆啟用或停用)。允許的值為:falsetrue。預設值為 false

8.1.2. 複製限制式

大部分情況下,複本在各個啟用中的叢集節點上皆有一項事例。然而,您亦可將資源複本的 clone-max 設為一個比叢集中節點總數還要小的值。在此情況下,您可根據叢集根據資源位置限制式,決定叢集應將複本指定給哪些節點。除了必須使用複本的 ID 之外,這些限制式和使用於一般資源的限制式編寫上並無差異。
以下指令會為叢集建立一項位置限制式,以透過偏好設定將資源複本 webfarm-clone 指定給 node1
# pcs constraint location webfarm-clone prefers node1
順序限制式的行為與複本不太一樣。在以下範例中,webfarm-stats 會等待所有需要啟用的 webfarm-clone 複本皆啟用後,它才會自行啟用。僅有在無 webfarm-clone 複本可啟用時,才可防止 webfarm-stats 啟用。此外,webfarm-clone 會等待 webfarm-stats 停用後,才會自行停用。
# pcs constraint order start webfarm-clone then webfarm-stats
正規(或群組)資源與複本的 colocation 代表資源可在任何持有一份該複本的機器上運作。叢集將會視複本執行的所在位置,和資源自己的位置偏好設定來選擇一個複本。
您亦可進行複本之間的 colocation。在此情況下,允許的複本位置將會被限制在複本運作(或將會運作)於的節點上。之後分配動作將會正常進行。
下列指令會建立一項 colocation 限制式,以確保資源 webfarm-stats 會在與一份啟用中的 webfarm-clone 複本相同的節點上執行。
# pcs constraint colocation add webfarm-stats with webfarm-clone

8.1.3. 複本綁定

為了能擁有穩定的配置模式,複本就預設值會被綁定。若未提供 resource-stickiness 的值,複本將會使用 1 這個值。因為這個值較小,因此不會造成其它資源分數計算上的干擾,而卻足以預防 Pacemaker 在不必要的情況下在叢集之間移動複本。