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 編輯資源和群組 #
建立資源後,您隨時都可以編輯其組態,視需要調整參數、操作或中繼屬性。
登入 Hawk2:
https://HAWKSERVER:7630/
在 Hawk2 的
螢幕中,轉到 清單。在
欄中,按一下要修改的資源或群組旁邊的向下箭頭圖示,然後選取 。資源組態螢幕隨即開啟。
圖 8.1︰ Hawk2 - 編輯基本資源 #在組態螢幕頂部,可以選取要執行的操作。
如果要編輯基本資源,可以執行以下操作:
複製資源
重新命名資源 (變更其 ID)
刪除資源
如果要編輯群組,可以執行以下操作:
建立要新增至此群組的新基本資源
重新命名群組 (變更其 ID)
拖動群組成員以變更其排列順序
若要新增新參數、操作或中繼屬性,請從空白下拉式清單中選取一項。
若要編輯
類別中的任意值,請按一下相應項目的 圖示,為該操作輸入其他值,然後按一下 。完成後,按一下資源組態螢幕中的
按鈕,以確認對參數、操作或中繼屬性所做的變更。螢幕頂部的訊息會顯示動作是否成功。
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
,則資源建立後不會自動啟動。
登入 Hawk2:
https://HAWKSERVER:7630/
從左側導覽列中,選取
› 。 清單還會顯示 。選取要啟動的資源。在其
欄中,按一下 圖示。若要繼續,請對顯示的訊息進行確認。
資源啟動後,Hawk2 會將資源的
變為綠色,並顯示目前執行該資源的節點。8.3.2 使用 crmsh 啟動叢集資源 #
若要啟動新叢集資源,需要提供相應的識別碼。
以
root
身分登入並啟動crm
互動式外圍程序:#
crm
切換至資源層級:
crm(live)#
resource
使用
start
啟動資源,然後按 →| 鍵顯示所有已知資源:crm(live)resource#
start ID
8.4 停止叢集資源 #
8.4.1 使用 crmsh 停止叢集資源 #
若要停止一或多個現有叢集資源,需要提供相應的識別碼。
以
root
身分登入並啟動crm
互動式外圍程序:#
crm
切換至資源層級:
crm(live)#
resource
使用
stop
停止資源,然後按 →| 鍵顯示所有已知資源:crm(live)resource#
stop ID
您一次可以停止多個資源:
crm(live)resource#
stop ID1 ID2
...
8.5 清理叢集資源 #
資源失敗時會自動重新啟動,但每次失敗都會增加該資源的失敗計數。
如果為資源設定了 migration-threshold
,則當失敗次數達到移轉限定值時,節點將不再執行該資源。
可以自動重設資源的失敗計數 (透過設定資源的 failure-timeout
選項),也可使用 Hawk2 或 crmsh 手動重設。
8.5.1 使用 Hawk2 清理叢集資源 #
登入 Hawk2:
https://HAWKSERVER:7630/
從左側導覽列中,選取
。 清單還會顯示 。轉到資源,進行清理。在
欄中,按一下向下箭頭按鈕並選取 。若要繼續,請對顯示的訊息進行確認。如此即會執行
crm resource cleanup
指令,並在所有節點上清理該資源。
8.5.2 使用 crmsh 清理叢集資源 #
開啟外圍程序並以
root
使用者身分登入。取得所有資源的清單:
#
crm resource list
... Resource Group: dlm-clvm:1 dlm:1 (ocf:pacemaker:controld) Started clvm:1 (ocf:heartbeat:lvmlockd) Started例如,若要清理資源
dlm
:#
crm resource cleanup dlm
8.6 移除叢集資源 #
若要從叢集中移除資源,請依照下面的 Hawk2 或 crmsh 程序操作,以免出現組態錯誤。
8.6.1 使用 Hawk2 移除叢集資源 #
登入 Hawk2:
https://HAWKSERVER:7630/
依照程序 8.5 「清理資源」 中的說明在所有節點上清理該資源。
停止資源:
從左側導覽列中,選取
› 。 清單還會顯示 。在
欄中,按一下資源旁邊的 按鈕。若要繼續,請對顯示的訊息進行確認。
資源停止後,
欄將會反映此變化。
刪除資源:
從左側導覽列中,選取
› 。在
清單中前往相應的資源。在 欄中,按一下資源旁邊的 圖示。若要繼續,請對顯示的訊息進行確認。
8.6.2 使用 crmsh 移除叢集資源 #
以
root
身分登入並啟動crm
互動式外圍程序:#
crm configure
執行下列指令以取得資源清單:
crm(live)#
resource status
例如,輸出可能如下所示 (其中「myIP」是資源的相應識別碼):
myIP (ocf:IPaddr:heartbeat) ...
刪除具有相應識別碼的資源 (此操作還隱含
commit
動作):crm(live)#
configure delete YOUR_ID
提交變更:
crm(live)#
configure commit
8.7 移轉叢集資源 #
當軟體或硬體發生故障時,叢集會自動對資源進行容錯移轉 (移轉),具體情況視您可以定義的特定參數 (例如移轉限定值或資源粘性) 而定。您也可以手動將資源移轉至叢集中的其他節點,或將其從目前節點移出,讓叢集決定將資源放置在哪裡。
可以使用 Hawk2 或 crmsh 來移轉叢集資源。
8.7.1 使用 Hawk2 移轉叢集資源 #
登入 Hawk2:
https://HAWKSERVER:7630/
從左側導覽列中,選取
› 。 清單還會顯示 。在
清單中選取相應的資源。在
欄中,按一下向下箭頭按鈕並選取 。隨後開啟的視窗中會提供以下選項:
-INFINITY
的位置條件約束。或者,您也可以將資源移到另一節點上。如此會建立一個位置條件約束,其目的節點的分數為
INFINITY
。
確認您的選擇。
若要讓資源回到原來的狀態,請執行下列步驟:
登入 Hawk2:
https://HAWKSERVER:7630/
從左側導覽列中,選取
› 。 清單還會顯示 。在
清單中前往相應的資源。在
欄中,按一下向下箭頭按鈕並選取 。若要繼續,請對顯示的訊息進行確認。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 透過標記對資源分組 #
登入 Hawk2:
https://HAWKSERVER:7630/
從左側導覽列中,選取
› › 。輸入唯一的
。從
清單中選取要與標記關聯的資源。按一下
完成組態。螢幕頂部的訊息會顯示動作是否成功。
8.8.2 使用 crmsh 透過標記對資源分組 #
例如,如果有多個資源與某個資料庫相關,您可以建立名為 databases
的標記,並將與該資料庫相關的所有資源新增至此標記:
#
crm configure tag databases: db1 db2 db3
這樣,只需使用一個指令就能啟動所有這些資源:
#
crm resource start databases
同樣,您也可以一次性停止所有這些資源:
#
crm resource stop databases