4.5 指定資源容錯移轉節點

若資源失敗,系統會自動將其重新啟動。若在目前節點上無法將其重新啟動,或資源已在目前節點上失敗 N 次,則資源會嘗試容錯移轉至其他節點。您可以定義一個數值,讓資源在失敗該次數 (migration-threshold) 之後移轉至新節點。若叢集中有兩個以上的節點,則特定資源容錯移轉所至的節點由 High Availability 軟體來選擇。

若您要選擇資源將容錯移轉所至的節點,則必須執行以下動作:

  1. 新增或修改位置限制 中所述為該資源設定位置限制。

  2. 新增或修改中繼屬性與例項屬性 中所述將 migration-threshold 中繼屬性新增至該資源,並為該 migration-threshold 輸入。該值應該為小於 INFINITY 的正數。

  3. 若要讓資源的 failcount 自動過期,請依新增或修改中繼屬性與例項屬性 中所述將 failure-timeout 中繼屬性新增至該資源,並為該 failure-timeout 輸入

  4. 若要指定具有資源優先設定的其他容錯移轉節點,請建立其他位置限制。

例如,假設您已為資源 r1 設定位置限制,讓其偏向於在 node1 上執行。若資源在該節點上失敗,系統會檢查 migration-threshold,並將其與 failcount 進行比較。若 failcount >= migration-threshold,則將資源移轉至優先設定次佳的節點。

依預設,一旦達到限定值,則不再允許該節點執行失敗的資源,除非管理員手動重設資源的 failcount (在修復失敗原因之後)。

不過,透過設定資源的 failure-timeout 選項可以使失敗計數過期。因此,設定 migration-threshold=2failure-timeout=60s 會導致資源在兩次失敗後將移轉至新節點,並且可能允許其在一分鐘後移回原節點 (具體視相粘性與限制分數而定)。

移轉限定值概念有兩種例外情況,發生於資源無法啟動或無法停止時:啟動失敗將 failcount 設定為 INFINITY,因此始終導致資源立即移轉。停止失敗會導致圍籬區隔 (當 stonith-enabled 設定為預設值 true 時)。若未定義任何 STONITH 資源 (或將 stonith-enabled 設定為 false),則資源一律不會移轉。

若要使用 Linux HA Management Client 清理資源的 failcount,請在左側窗格中選取管理,並在右側窗格中選取相應的資源,然後按一下工具列中的清理資源。如此會在指定節點上針對指定資源執行指令 crm_resource -Ccrm_failcount -D。如需詳細資訊,另請參閱crm_resource (8)crm_failcount (8)