17 執行維護任務 #
若要在叢集節點上執行維護任務,您可能需要停止該節點上執行的資源、移動這些資源,或者將該節點關閉或重新開機。此外,可能還需要暫時接管叢集中資源的控制權,甚至需要在資源仍在執行時停止叢集服務。
本章介紹如何在不產生負面影響的情況下手動關閉叢集節點。此外,本章將會概述叢集堆疊提供的用於執行維護任務的不同選項。
17.1 關閉叢集節點所造成的影響 #
在 SUSE Linux Enterprise Server High Availability Extension 15 SP2 中,啟動和停止叢集服務的方式已變更。SUSE 建議使用 crm 外圍程序。您仍然可以使用 systemctl
執行舊指令,但僅建議有經驗的使用者採用這種方式。如需詳細資料,請參閱 SUSE 部落格文章 https://www.suse.com/c/suse-high-availability-cluster-services-how-to-stop-start-or-view-the-status/。
建議使用以下方式來啟動、停止或檢視狀態:
crm cluster start
啟動一個節點上的叢集服務
crm cluster stop
停止一個節點上的叢集服務
crm cluster restart
重新啟動一個節點上的叢集服務
crm cluster status
檢視一個節點上的叢集堆疊狀態
請以 root
使用者或擁有所需權限的使用者身分執行上述指令。
將某個叢集節點關閉或重新開機 (或停止節點上的 Pacemaker 服務) 時,會觸發以下程序:
該節點上執行的資源將會停止,或移出該節點。
如果停止資源的操作失敗或逾時,STONITH 機制將會圍籬區隔該節點,並將其關閉。
如果您的目的是先循序將服務移出節點,然後再將該節點關閉或重新開機,請執行以下操作:
在要重新開機或關閉的節點上,以
root
或同等身分登入。將節點置於
standby
模式:root #
crm -w node standby如此即可將服務移轉出節點,而不會受限於 Pacemaker 叢集服務的關閉逾時。
使用以下指令檢查叢集狀態:
root #
crm status此指令顯示相關節點處於
standby
模式:[...] Node bob: standby [...]
停止該節點上的叢集服務:
root #
crm cluster stop將節點重新開機。
若要再次檢查節點是否已加入叢集,請執行以下步驟:
以
root
或同等身分登入該節點。檢查叢集服務是否已啟動:
root #
crm cluster status如果未啟動,請將其啟動:
root #
crm cluster start使用以下指令檢查叢集狀態:
root #
crm status此指令應該會顯示節點已恢復線上狀態。
17.2 用於維護任務的不同選項 #
Pacemaker 提供了用於執行系統維護的各種選項:
- 將叢集置於維護模式
使用全域叢集內容
maintenance-mode
可以一次性將所有資源置於維護狀態。叢集將停止監控這些資源,因此不知道它們的狀態。- 將節點置於維護模式
此選項可以一次性將特定節點上執行的所有資源置於維護狀態。叢集將停止監控這些資源,因此不知道它們的狀態。
- 將節點置於待命模式
處於待命模式的節點不再能夠執行資源。該節點上執行的所有資源將會移出或停止 (如果沒有其他節點可用於執行資源)。另外,該節點上的所有監控操作將會停止 (設定為
role="Stopped"
的操作除外)。如果您需要停止叢集中的某個節點,同時繼續提供另一個節點上執行的服務,則可以使用此選項。
- 將資源置於維護模式
為某個資源啟用此模式後,將不會針對該資源觸發監控操作。
如果您需要手動調整此資源所管理的服務,並且不希望叢集在此期間對該資源執行任何監控操作,則可以使用此選項。
- 將資源置於不受管理模式
使用
is-managed
中繼屬性可以暫時「釋放」某個資源,使其不受叢集堆疊的管理。這表示您可以手動調整此資源管理的服務 (例如,調整任何元件)。不過,叢集將繼續監控該資源,並繼續報告任何錯誤。如果您希望叢集同時停止監控該資源,請改為使用依資源維護模式 (請參閱將資源置於維護模式)。
17.3 準備和完成維護工作 #
如果您需要執行測試或維護工作,請執行下面的一般步驟。
如果不執行,有可能會產生不利的負面影響,例如,資源不循序啟動、CIB 在叢集節點之間不同步,甚至遺失資料。
在開始之前,請選擇第 17.2 節中所述適合您情況的選項。
請使用 Hawk2 或 crmsh 套用此選項。
執行維護任務或測試。
完成後,請將資源、節點或叢集恢復「正常」運作。
17.4 將叢集置於維護模式 #
若要在 crm 外圍程序中將叢集置於維護模式,請使用以下指令:
root #
crm
configure property maintenance-mode=true
若要在完成維護工作後將叢集恢復正常模式,請使用以下指令:
root #
crm
configure property maintenance-mode=false
啟動網頁瀏覽器並依第 7.2 節 「登入」 所述登入叢集。
在左側導覽列中選取
。在
群組中,從空白下拉式方塊中選取 屬性,然後按一下加號圖示新增該屬性。若要設定
maintenance-mode=true
,請啟用maintenance-mode
旁邊的核取方塊,並確認您所做的變更。完成針對整個叢集的維護任務後,停用
maintenance-mode
屬性旁邊的核取方塊。從此刻起,High Availability Extension 會再次接管叢集管理工作。
17.5 將節點置於維護模式 #
若要在 crm 外圍程序中將節點置於維護模式,請使用以下指令:
root #
crm
node maintenance NODENAME
若要在完成維護工作後將節點恢復正常模式,請使用以下指令:
root #
crm
node ready NODENAME
啟動網頁瀏覽器並依第 7.2 節 「登入」 所述登入叢集。
在左側導覽列中選取「
」。在其中一個節點檢視窗中,按一下節點旁邊的扳手圖示,然後選取
。完成維護任務後,按一下節點旁邊的扳手圖示,然後選取
。
17.6 將節點置於待命模式 #
若要在 crm 外圍程序中將節點置於待命模式,請使用以下指令:
root #
crm node standby NODENAME
若要在完成維護工作後將節點恢復線上狀態,請使用以下指令:
root #
crm node online NODENAME
啟動網頁瀏覽器並依第 7.2 節 「登入」 所述登入叢集。
在左側導覽列中選取「
」。在其中一個節點的檢視中,按一下節點旁邊的扳手圖示,然後選取
。完成節點的維護任務。
若要停用待命模式,請按一下節點旁邊的扳手圖示,然後選取
。
17.7 將資源置於維護模式 #
若要在 crm 外圍程序中將資源置於維護模式,請使用以下指令:
root #
crm
resource maintenance RESOURCE_ID true
若要在完成維護工作後將資源恢復正常模式,請使用以下指令:
root #
crm
resource maintenance RESOURCE_ID false
啟動網頁瀏覽器並依第 7.2 節 「登入」 所述登入叢集。
在左側導覽列中,選取「
」。選取要將其置於維護模式或不受管理模式的資源,然後按一下資源旁邊的扳手圖示並選取
。開啟
類別。從空白下拉式清單中,選取
屬性並按一下加號圖示新增該屬性。啟用
maintenance
旁邊的核取方塊,將 maintenance 屬性設定為yes
。確認您的變更。
完成針對該資源的維護任務後,停用該資源
maintenance
屬性旁邊的核取方塊。從此時起,資源將重新由 High Availability Extension 軟體管理。
17.8 將資源置於不受管理模式 #
若要在 crm 外圍程序中將資源置於不受管理模式,請使用以下指令:
root #
crm
resource unmanage RESOURCE_ID
若要在完成維護工作後再次將資源置於受管理模式,請使用以下指令:
root #
crm
resource manage RESOURCE_ID
啟動網頁瀏覽器並依第 7.2 節 「登入」 所述登入叢集。
在左側導覽列中選取
,然後移至 清單。在
欄中,按一下要修改的資源旁邊的向下箭頭圖示,然後選取 。資源組態螢幕隨即開啟。
在
下方,從空白下拉式方塊中選取 項目。將其值設定為
No
,然後按一下 。完成維護任務後,將
設定為Yes
(預設值) 並套用變更。從此時起,資源將重新由 High Availability Extension 軟體管理。
17.9 在維護模式下將叢集節點重新開機 #
如果叢集或某個節點處於維護模式,您可以視需要停止或重新啟動叢集資源 — High Availability Extension 不會嘗試將其重新啟動。如果您停止節點上的 Pacemaker 服務,所有精靈和程序 (最初做為 Pacemaker 管理的叢集資源啟動) 會繼續執行。
如果您在叢集或某個節點處於維護模式的情況下嘗試啟動該節點上的 Pacemaker 服務,Pacemaker 會針對每個資源啟動一次性的監控操作 (「查探」),以評估哪些資源目前正在該節點上執行。但是,它只會確定資源的狀態,而不執行進一步的動作。
若要在叢集或某個節點處於維護模式
時關閉該節點,請執行以下操作:
在要重新開機或關閉的節點上,以
root
或同等身分登入。如果您使用 DLM 資源 (或依存於 DLM 的其他資源),請確定在停止 Pacemaker 服務之前明確停止這些資源:
crm(live)resource#
stop RESOURCE_ID這是因為,停止 Pacemaker 也會停止 DLM 對其成員資格和訊息服務有依賴的 Corosync 服務。如果 Corosync 停止,DLM 資源將假設一種電腦分裂情況並觸發圍籬區隔操作。
停止該節點上的 Pacemaker 服務:
root #
crm cluster stop將節點關閉或重新開機。