跳至內容跳至頁面導覽:上一頁 [access key p]/下一頁 [access key n]
documentation.suse.com / SUSE Linux Enterprise High Availability Extension 文件 / 管理指南 / 組態和管理 / 管理叢集資源
適用範圍 SUSE Linux Enterprise High Availability Extension 15 SP5

8 管理叢集資源

設定叢集中的資源後,可使用叢集管理工具啟動、停止、清理、移除或移轉資源。本章介紹如何使用 Hawk2 或 crmsh 執行資源管理任務。

8.1 顯示叢集資源

8.1.1 使用 crmsh 顯示叢集資源

當管理叢集時,crm configure show 指令會列出叢集組態、全域選項、基本資源等目前 CIB 物件:

# crm configure show
node 178326192: alice
node 178326448: bob
primitive admin_addr IPaddr2 \
       params ip=192.168.2.1 \
       op monitor interval=10 timeout=20
primitive stonith-sbd stonith:external/sbd \
       params pcmk_delay_max=30
property cib-bootstrap-options: \
       have-watchdog=true \
       dc-version=1.1.15-17.1-e174ec8 \
       cluster-infrastructure=corosync \
       cluster-name=hacluster \
       stonith-enabled=true \
       placement-strategy=balanced \
       standby-mode=true
rsc_defaults rsc-options: \
       resource-stickiness=1 \
       migration-threshold=3
op_defaults op-options: \
       timeout=600 \
       record-pending=true

如果您有許多資源,show 的輸出會十分冗長。為限制輸出,請使用資源名稱。例如,如果只想列出基本資源 admin_addr 的屬性,請將資源名稱附加到 show 後:

# crm configure show admin_addr
primitive admin_addr IPaddr2 \
       params ip=192.168.2.1 \
       op monitor interval=10 timeout=20

但在某些情況下,您可能希望更精確地限制特定資源的輸出。那麼,您可以使用過濾器。過濾器可將輸出限定到特定元件。例如,若要僅列出節點,可使用 type:node

# crm configure show type:node
node 178326192: alice
node 178326448: bob

如果您還想列出基本資源,請使用 or 運算子:

# crm configure show type:node or type:primitive
node 178326192: alice
node 178326448: bob
primitive admin_addr IPaddr2 \
       params ip=192.168.2.1 \
       op monitor interval=10 timeout=20
primitive stonith-sbd stonith:external/sbd \
       params pcmk_delay_max=30

此外,若要搜尋以特定字串開頭的物件,請使用以下表示法:

# crm configure show type:primitive and 'admin*'
primitive admin_addr IPaddr2 \
       params ip=192.168.2.1 \
       op monitor interval=10 timeout=20

若要列出所有可用類型,請輸入 crm configure show type:,然後按 →| 鍵。Bash 補齊功能會列出所有類型。

8.2 編輯資源和群組

可以使用 Hawk2 或 crmsh 來編輯資源或群組。

8.2.1 使用 Hawk2 編輯資源和群組

建立資源後,您隨時都可以編輯其組態,視需要調整參數、操作或中繼屬性。

程序 8.1︰ 修改資源或群組
  1. 登入 Hawk2:

    https://HAWKSERVER:7630/
  2. 在 Hawk2 的狀態螢幕中,轉到資源清單。

  3. 操作欄中,按一下要修改的資源或群組旁邊的向下箭頭圖示,然後選取編輯

    資源組態螢幕隨即開啟。

    Hawk2 - 編輯基本資源
    圖 8.1︰ Hawk2 - 編輯基本資源
  4. 在組態螢幕頂部,可以選取要執行的操作。

    如果要編輯基本資源,可以執行以下操作:

    • 複製資源

    • 重新命名資源 (變更其 ID)

    • 刪除資源

    如果要編輯群組,可以執行以下操作:

    • 建立要新增至此群組的新基本資源

    • 重新命名群組 (變更其 ID)

    • 拖動群組成員以變更其排列順序

  5. 若要新增新參數、操作或中繼屬性,請從空白下拉式清單中選取一項。

  6. 若要編輯操作類別中的任意值,請按一下相應項目的編輯圖示,為該操作輸入其他值,然後按一下套用

  7. 完成後,按一下資源組態螢幕中的套用按鈕,以確認對參數、操作或中繼屬性所做的變更。

    螢幕頂部的訊息會顯示動作是否成功。

8.2.2 使用 crmsh 編輯群組

若要變更群組成員的順序,請在 modgroup 子指令中使用 configure 指令。例如,使用下面的指令可將基本資源 Email 移到 Public-IP 前面:

crm(live)configure# modgroup g-mailsvc add Email before Public-IP

若要從群組中移除某個資源 (例如,Email),請使用以下指令:

crm(live)configure# modgroup g-mailsvc remove Email

8.3 啟動叢集資源

啟動叢集資源之前,請先確定該資源已正確設定。例如,如果使用 Apache 伺服器做為叢集資源,請先設定 Apache 伺服器。完成 Apache 組態後再在叢集中啟動相應資源。

注意
注意:不要操作叢集所管理的服務

當您正透過 High Availability Extension 管理某個資源時,就不能再啟動或停止該資源 (例如,不能在叢集之外手動啟動或停止,或者在開機或重新開機時啟動或停止)。High Availability Extension 軟體負責所有服務的啟動或停止動作。

不過,如果您要檢查服務是否正確設定,請手動將其啟動,但務必在 High Availability Extension 接管之前將它再次停止。

若要對叢集目前管理的資源進行干預,請先將資源設定為 maintenance mode。如需詳細資料,請參閱程序 27.5 「使用 Hawk2 將資源置於維護模式」

可以使用 Hawk2 或 crmsh 來啟動叢集資源。

8.3.1 使用 Hawk2 啟動叢集資源

透過 Hawk2 建立資源時,您可以使用 target-role 中繼屬性設定該資源的初始狀態。如果將其值設定為 stopped,則資源建立後不會自動啟動。

程序 8.2︰ 啟動新資源
  1. 登入 Hawk2:

    https://HAWKSERVER:7630/
  2. 從左側導覽列中,選取監控 › 狀態資源清單還會顯示狀態

  3. 選取要啟動的資源。在其操作欄中,按一下啟動圖示。若要繼續,請對顯示的訊息進行確認。

資源啟動後,Hawk2 會將資源的狀態變為綠色,並顯示目前執行該資源的節點。

8.3.2 使用 crmsh 啟動叢集資源

若要啟動新叢集資源,需要提供相應的識別碼。

程序 8.3︰ 使用 crmsh 啟動叢集資源
  1. root 身分登入並啟動 crm 互動式外圍程序:

    # crm
  2. 切換至資源層級:

    crm(live)# resource
  3. 使用 start 啟動資源,然後按 →| 鍵顯示所有已知資源:

    crm(live)resource# start ID

8.4 停止叢集資源

8.4.1 使用 crmsh 停止叢集資源

若要停止一或多個現有叢集資源,需要提供相應的識別碼。

程序 8.4︰ 使用 crmsh 停止叢集資源
  1. root 身分登入並啟動 crm 互動式外圍程序:

    # crm
  2. 切換至資源層級:

    crm(live)# resource
  3. 使用 stop 停止資源,然後按 →| 鍵顯示所有已知資源:

    crm(live)resource# stop ID

    您一次可以停止多個資源:

    crm(live)resource# stop ID1 ID2 ...

8.5 清理叢集資源

資源失敗時會自動重新啟動,但每次失敗都會增加該資源的失敗計數。

如果為資源設定了 migration-threshold,則當失敗次數達到移轉限定值時,節點將不再執行該資源。

可以自動重設資源的失敗計數 (透過設定資源的 failure-timeout 選項),也可使用 Hawk2 或 crmsh 手動重設。

8.5.1 使用 Hawk2 清理叢集資源

程序 8.5︰ 清理資源
  1. 登入 Hawk2:

    https://HAWKSERVER:7630/
  2. 從左側導覽列中,選取狀態資源清單還會顯示狀態

  3. 轉到資源,進行清理。在操作欄中,按一下向下箭頭按鈕並選取清理。若要繼續,請對顯示的訊息進行確認。

    如此即會執行 crm resource cleanup 指令,並在所有節點上清理該資源。

8.5.2 使用 crmsh 清理叢集資源

程序 8.6︰ 使用 crmsh 清理資源
  1. 開啟外圍程序並以 root 使用者身分登入。

  2. 取得所有資源的清單:

    # crm resource list
      ...
     Resource Group: dlm-clvm:1
             dlm:1  (ocf:pacemaker:controld) Started
             clvm:1 (ocf:heartbeat:lvmlockd) Started
  3. 例如,若要清理資源 dlm

    # crm resource cleanup dlm

8.6 移除叢集資源

若要從叢集中移除資源,請依照下面的 Hawk2 或 crmsh 程序操作,以免出現組態錯誤。

8.6.1 使用 Hawk2 移除叢集資源

程序 8.7︰ 移除叢集資源
  1. 登入 Hawk2:

    https://HAWKSERVER:7630/
  2. 依照程序 8.5 「清理資源」 中的說明在所有節點上清理該資源。

  3. 停止資源:

    1. 從左側導覽列中,選取監控 › 狀態資源清單還會顯示狀態

    2. 操作欄中,按一下資源旁邊的停止按鈕。

    3. 若要繼續,請對顯示的訊息進行確認。

      資源停止後,狀態欄將會反映此變化。

  4. 刪除資源:

    1. 從左側導覽列中,選取組態 › 編輯組態

    2. 資源清單中前往相應的資源。在操作欄中,按一下資源旁邊的刪除圖示。

    3. 若要繼續,請對顯示的訊息進行確認。

8.6.2 使用 crmsh 移除叢集資源

程序 8.8︰ 使用 crmsh 移除叢集資源
  1. root 身分登入並啟動 crm 互動式外圍程序:

    # crm configure
  2. 執行下列指令以取得資源清單:

    crm(live)# resource status

    例如,輸出可能如下所示 (其中myIP是資源的相應識別碼):

    myIP    (ocf:IPaddr:heartbeat) ...
  3. 刪除具有相應識別碼的資源 (此操作還隱含 commit 動作):

    crm(live)# configure delete YOUR_ID
  4. 提交變更:

    crm(live)# configure commit

8.7 移轉叢集資源

當軟體或硬體發生故障時,叢集會自動對資源進行容錯移轉 (移轉),具體情況視您可以定義的特定參數 (例如移轉限定值或資源粘性) 而定。您也可以手動將資源移轉至叢集中的其他節點,或將其從目前節點移出,讓叢集決定將資源放置在哪裡。

可以使用 Hawk2 或 crmsh 來移轉叢集資源。

8.7.1 使用 Hawk2 移轉叢集資源

程序 8.9︰ 手動移轉資源
  1. 登入 Hawk2:

    https://HAWKSERVER:7630/
  2. 從左側導覽列中,選取監控 › 狀態資源清單還會顯示狀態

  3. 資源清單中選取相應的資源。

  4. 操作欄中,按一下向下箭頭按鈕並選取移轉

  5. 隨後開啟的視窗中會提供以下選項:

    • 從目前節點移出:此選項會為目前節點建立一個分數為 -INFINITY 的位置條件約束。

    • 或者,您也可以將資源移到另一節點上。如此會建立一個位置條件約束,其目的節點的分數為 INFINITY

  6. 確認您的選擇。

若要讓資源回到原來的狀態,請執行下列步驟:

程序 8.10︰ 取消移轉資源
  1. 登入 Hawk2:

    https://HAWKSERVER:7630/
  2. 從左側導覽列中,選取監控 › 狀態資源清單還會顯示狀態

  3. 資源清單中前往相應的資源。

  4. 操作欄中,按一下向下箭頭按鈕並選取清除。若要繼續,請對顯示的訊息進行確認。

    Hawk2 會使用 crm_resource  --clear 指令。資源可以移回其原始位置,也可以保留在目前的位置 (具體取決於資源粘性)。

如需詳細資訊,請參閱 http://www.clusterlabs.org/pacemaker/doc/ 上的 Pacemaker Explained。請參閱 Resource Migration 部分。

8.7.2 使用 crmsh 移轉叢集資源

可以使用 move 指令來完成這項任務。例如,若要將資源 ipaddress1 移轉至名為 bob 的叢集節點,請使用以下指令:

# crm resource
 crm(live)resource# move ipaddress1 bob

8.8 使用標記對資源分組

使用標記可以一次參考多個資源,而無需在這些資源之間建立任何並存或順序關係。這個功能在把概念上相關的資源分組在一起時將十分實用。例如,如果有多個資源與某個資料庫相關,您可以建立名為 databases 的標記,並將與該資料庫相關的所有資源新增至此標記。這樣,只需使用一個指令就能停止或啟動所有這些資源。

在條件約束中也可以使用標記。例如,以下位置條件約束 loc-db-prefer 會套用至標記為 databases 的資源集:

location loc-db-prefer databases 100: alice

可以使用 Hawk2 或 crmsh 來建立標記。

8.8.1 使用 Hawk2 透過標記對資源分組

程序 8.11︰ 新增標記
  1. 登入 Hawk2:

    https://HAWKSERVER:7630/
  2. 從左側導覽列中,選取組態 › 新增資源 › 標記

  3. 輸入唯一的標記 ID

  4. 物件清單中選取要與標記關聯的資源。

  5. 按一下建立完成組態。螢幕頂部的訊息會顯示動作是否成功。

Hawk2 - 標記
圖 8.2︰ Hawk2 - 標記

8.8.2 使用 crmsh 透過標記對資源分組

例如,如果有多個資源與某個資料庫相關,您可以建立名為 databases 的標記,並將與該資料庫相關的所有資源新增至此標記:

# crm configure tag databases: db1 db2 db3

這樣,只需使用一個指令就能啟動所有這些資源:

# crm resource start databases

同樣,您也可以一次性停止所有這些資源:

# crm resource stop databases