5 升級叢集和更新軟體套件 #
本章介紹兩種不同的方案:將叢集升級到另一個版本的 SUSE Linux Enterprise High Availability Extension (主要版本或 Service Pack),以及更新叢集節點上的個別套件。請參閱第 5.2 節 「將叢集升級至產品的最新版本」與第 5.3 節 「更新叢集節點上的軟體套件」。
如果您要升級叢集,請在開始升級之前查閱第 5.2.1 節 「SLE HA 和 SLE HA Geo 支援的升級路徑」和第 5.2.2 節 「升級前的必要準備」。
5.1 術語 #
下面將介紹本章中使用的最重要的術語定義:
- 主要版本, 正式發行 (GA) 版本
主要版本是一個新的產品版本,增加了新功能和工具並停用了先前已取代的元件。其含有不可反向相容的變更。
- 叢集離線升級
如果新產品版本包含不可回溯相容的重大變更,則需要透過叢集離線升級來升級叢集。需要先將所有節點離線並將叢集做為一個整體進行升級,然後才能將所有節點恢復線上狀態。
- 叢集滾存升級
執行叢集滾存升級時,每次會升級一個叢集節點,此時,叢集的其他節點仍在執行中。您可以將第一個節點離線,進行升級,然後再將其恢復線上狀態以加入叢集。然後,需要對每個節點重複上述程序,直到所有叢集節點都升級為主要版本。
- Service Pack (SP)
將多個修補程式合併為一種易於安裝或部署的形式。Service Pack 都指定了編號,通常包含程式的安全性修正、更新、升級或增強。
- 更新
安裝某個套件的較新次要版本,其中通常包含安全修復和其他重要修復。
- 升級
5.2 將叢集升級至產品的最新版本 #
支援哪種升級路徑以及如何執行升級,取決於目前產品版本以及您要移轉至的目標版本。
High Availability Extension 支援的升級路徑與基礎系統支援的升級路徑相同。如需完整綜覽,請參閱《SUSE Linux Enterprise Server 升級指南》中的 SUSE Linux Enterprise Server 15 SP3 支援的升級路徑 一節。
此外,由於高可用性叢集堆疊提供了兩種升級叢集的方法,以下規則也適用:
第 5.2.1 節 列出了 SLE HA (Geo) 支援的從一個版本升級至下一個版本的升級路徑和方法。相關詳細資料欄列出了您應參閱的特定升級文件 (還包括基礎系統和 Geo Clustering for SUSE Linux Enterprise High Availability Extension)。此文件可從以下位置取得:
不支援在 SUSE Linux Enterprise High Availability Extension 12/SUSE Linux Enterprise High Availability Extension 15 上執行混合叢集。
執行了升級到產品版本 15 的程序之後,將不支援還原到產品版本 12。
5.2.1 SLE HA 和 SLE HA Geo 支援的升級路徑 #
升級來源與目標 |
升級路徑 |
相關詳細資料 |
---|---|---|
從 SLE HA 11 SP3 到 SLE HA (Geo) 12 |
叢集離線升級 |
|
從 SLE HA (Geo) 11 SP4 到 SLE HA (Geo) 12 SP1 |
叢集離線升級 |
|
從 SLE HA (Geo) 12 到 SLE HA (Geo) 12 SP1 |
叢集滾存升級 |
|
從 SLE HA (Geo) 12 SP1 到 SLE HA (Geo) 12 SP2 |
叢集滾存升級 |
|
從 SLE HA (Geo) 12 SP2 到 SLE HA (Geo) 12 SP3 |
叢集滾存升級 |
|
從 SLE HA (Geo) 12 SP3 到 SLE HA (Geo) 12 SP4 |
叢集滾存升級 |
|
從 SLE HA (Geo) 12 SP3 到 SLE HA (Geo) 15 |
叢集離線升級 |
|
從 SLE HA (Geo) 12 SP4 到 SLE HA (Geo) 12 SP5 |
叢集滾存升級 |
|
從 SLE HA (Geo) 12 SP4 到 SLE HA (Geo) 15 SP1 |
叢集離線升級 |
|
從 SLE HA (Geo) 12 SP5 到 SLE HA (Geo) 15 SP2 |
叢集離線升級 |
|
從 SLE HA (Geo) 15 到 SLE HA (Geo) 15 SP1 |
叢集滾存升級 |
|
從 SLE HA (Geo) 15 SP1 到 SLE HA (Geo) 15 SP2 |
叢集滾存升級 |
|
從 SLE HA (Geo) 15 SP2 到 SLE HA (Geo) 15 SP3 |
叢集滾存升級 |
|
最簡單的升級路徑是循序安裝所有 Service Pack。對於 SUSE Linux Enterprise 15 產品系列 (GA 和後續 Service Pack),還支援在升級時跳過某個 Service Pack。例如,支援從 SLE 15 GA 升級至 15 SP2,或從 SLE 15 SP1 升級至 15 SP3。
5.2.2 升級前的必要準備 #
- 備份
確保您的系統備份是最新版本且可還原。
- 測試
在線上環境中執行升級程序前,請先在叢集設定的臨時例項上測試該程序。這樣,您便可以預估維護期所需的時間範圍。這也有助於偵測和解決可能會出現的任何非預期問題。
5.2.3 叢集離線升級 #
本節適用於以下案例:
從 SLE HA 11 SP3 升級至 SLE HA 12 - 如需詳細資料,請參閱程序 5.1 「從產品版本 11 升級至 12:叢集離線升級」。
從 SLE HA 11 SP4 升級至 SLE HA 12 SP1 - 如需詳細資料,請參閱程序 5.1 「從產品版本 11 升級至 12:叢集離線升級」。
從 SLE HA 12 SP3 升級至 SLE HA 15 - 如需詳細資料,請參閱程序 5.2 「從產品版本 12 升級至 15:叢集離線升級」。
從 SLE HA 12 SP4 升級至 SLE HA 15 SP1 - 如需詳細資料,請參閱程序 5.2 「從產品版本 12 升級至 15:叢集離線升級」。
從 SLE HA 12 SP5 升級至 SLE HA 15 SP2 - 如需詳細資料,請參閱程序 5.2 「從產品版本 12 升級至 15:叢集離線升級」。
如果您的叢集仍然以早期的產品版本而不是上面所列版本為基礎,請先將它升級至 SLES 和 SLE HA 的某個版本,而該版本可用做升級至所需目標版本的來源。
The High Availability Extension 12 叢集堆疊的各個元件包含重大變更 (例如 /etc/corosync/corosync.conf
、OCFS2 的磁碟格式)。因此,不支援從任何 SUSE Linux Enterprise High Availability Extension 11 版本進行叢集滾存升級
。所有叢集節點都必須處於離線狀態,並且需要依照所述升級整個叢集。
登入每個叢集節點,並使用以下指令停止叢集堆疊:
root #
rcopenais
stop將每個叢集節點都升級至 SUSE Linux Enterprise Server 和 SUSE Linux Enterprise High Availability Extension 的所需目標版本 — 請參閱第 5.2.1 節 「SLE HA 和 SLE HA Geo 支援的升級路徑」。
完成升級程序後,將裝有 SUSE Linux Enterprise Server 和 SUSE Linux Enterprise High Availability Extension 升級版本的每個節點重新開機。
如果在叢集設定中使用了 OCFS2,請執行以下指令更新裝置上的結構:
root #
o2cluster
--update PATH_TO_DEVICE它會為磁碟新增額外參數。SUSE Linux Enterprise High Availability Extension 12 和 12 SPx 隨附的已更新 OCFS2 版本需要這些參數。
若要更新 Corosync 版本 2 的
/etc/corosync/corosync.conf
:登入某個節點,然後啟動 YaST 叢集模組。
切換到程序 4.1 「定義第一個通訊通道 (多路廣播)」或程序 4.2 「定義第一個通訊通道 (單點傳播)」。
類別,並輸入以下新參數的值: 和 。如需詳細資料,請分別參閱如果 YaST 偵測到對 Corosync 版本 2 無效或缺失的任何其他選項,它會提示您變更這些選項。
確認您在 YaST 中所做的變更。YaST 會將組態寫入
/etc/corosync/corosync.conf
。如果為叢集設定了 Csync2,請使用以下指令將更新的 Corosync 組態推入至其於叢集節點:
root #
csync2
-xv
如需 Csync2 的詳細資料,請參閱第 4.5 節 「將組態傳輸至所有節點」。
或者,也可以透過將
/etc/corosync/corosync.conf
手動複製到所有叢集節點的方式來同步化更新的 Corosync 組態。
登入每個節點,並使用以下指令啟動叢集堆疊:
root #
crm
cluster start使用
crm status
或 Hawk2 檢查叢集狀態。將以下服務設定為在開機時啟動:
root #
systemctl enable pacemakerroot #
systemctl enable hawkroot #
systemctl enable sbd
有時,新功能只能在最新的 CIB 語法版本中使用。升級至新的產品版本時,預設不會升級 CIB 語法版本。
使用以下指令檢查版本:
cibadmin -Q | grep validate-with
使用以下指令升級至最新的 CIB 語法版本:
root #
cibadmin
--upgrade --force
如果您決定從頭開始安裝叢集節點 (而不是升級它們),請參閱第 2.2 節 「軟體要求」以取得 SUSE Linux Enterprise High Availability Extension 15 SP3 所需的模組清單。如需模組、延伸及相關產品的詳細資訊,請參閱 SUSE Linux Enterprise Server 15 的版本說明。您可以從 https://www.suse.com/releasenotes/ 上取得這些文件。
在開始離線升級至 SUSE Linux Enterprise High Availability Extension 15 之前,請如注意:升級 CIB 語法版本所述手動升級目前叢集中的 CIB 語法。
登入每個叢集節點,並使用以下指令停止叢集堆疊:
root #
crm
cluster stop將每個叢集節點都升級至 SUSE Linux Enterprise Server 和 SUSE Linux Enterprise High Availability Extension 的所需目標版本 — 請參閱第 5.2.1 節 「SLE HA 和 SLE HA Geo 支援的升級路徑」。
完成升級程序後,請登入每個節點,並將安裝了 SUSE Linux Enterprise Server 和 SUSE Linux Enterprise High Availability Extension 升級版的每個節點開機。
如果您使用叢集 LVM,則需要從 clvmd 移轉至 lvmlockd。請參閱
lvmlockd
的 man 頁面中的「changing clvm VG to lockd VG」(將 clvm VG 變更為 lockd VG) 部分,另請參閱第 22.4 節 「從鏡像 LV 線上移轉至叢集 MD」。使用以下指令啟動叢集堆疊:
root #
crm
cluster start使用
crm status
或 Hawk2 檢查叢集狀態。
5.2.4 叢集滾存升級 #
本節適用於以下案例:
從 SLE HA 12 升級到 SLE HA 12 SP1
從 SLE HA 12 SP1 升級至 SLE HA 12 SP2
從 SLE HA 12 SP2 升級至 SLE HA 12 SP3
從 SLE HA 12 SP3 升級至 SLE HA 12 SP4
從 SLE HA 12 SP4 升級至 SLE HA 12 SP5
從 SLE HA 15 升級到 SLE HA 15 SP1
從 SLE HA 15 SP1 升級至 SLE HA 15 SP2
從 SLE HA 15 SP2 升級至 SLE HA 15 SP3
依據情況使用以下其中一個程序:
在開始升級某個節點之前,請停止該節點上的叢集堆疊。
如果節點上的叢集資源管理員在軟體更新期間處於使用中狀態,可能會導致圍籬區隔使用中節點等結果。
只有將所有叢集節點升級至最新產品版本之後,才可使用最新產品版本隨附的新功能。在叢集滾存升級期間,只有一段較短的時間支援混合版本叢集升級。請在一週內完成叢集滾存升級。
當所有線上節點執行的都是升級的版本後,其他使用舊版本的節點不升級就無法 (重新) 加入叢集。
以
root
使用者身分登入要升級的節點,並停止叢集堆疊:root #
crm
cluster stop升級至 SUSE Linux Enterprise Server 和 SUSE Linux Enterprise High Availability Extension 的所需目標版本。若要瞭解個別升級程序的詳細資料,請參閱第 5.2.1 節 「SLE HA 和 SLE HA Geo 支援的升級路徑」。
在已升級的節點上啟動叢集堆疊,讓該節點重新加入叢集:
root #
crm
cluster start讓下一個節點離線,並對其重複執行此程序。
使用
crm status
或 Hawk2 檢查叢集狀態。如果偵測到您的叢集節點有不同的 CRM 版本,Hawk2
螢幕還會顯示一則警告。
只有將所有叢集節點升級至最新產品版本之後,才可使用最新產品版本隨附的新功能。在滾存升級期間,只有一段較短的時間支援混合版本叢集。請在一週內完成滾存升級。
如果偵測到您的叢集節點有不同的 CRM 版本,Hawk2
螢幕還會顯示一則警告。除了本機升級之外,許多客戶更喜歡進行全新安裝,即使是要升級至下一個 Service Pack 時也是如此。下面的程序顯示雙節點叢集 (包含節點 alice 和 bob) 升級至下一個 Service Pack (SP) 的情況:
備份叢集組態。下面的清單中顯示了至少應備份的檔案:
/etc/corosync/corosync.conf /etc/corosync/authkey /etc/sysconfig/sbd /etc/modules-load.d/watchdog.conf /etc/hosts /etc/ntp.conf
依據您的資源,您可能還需要備份以下檔案:
/etc/services /etc/passwd /etc/shadow /etc/groups /etc/drbd/* /etc/lvm/lvm.conf /etc/mdadm.conf /etc/mdadm.SID.conf
先從節點 alice 開始。
將節點置於待命模式。這樣便能將資源移出節點:
root #
crm
--wait node standby alice reboot使用
--wait
選項,該指令僅會在叢集完成轉換並變為閒置狀態時傳回。reboot
選項可使節點一旦重新上線就已脫離待命模式。儘管reboot
選項的名稱是重新開機,但只要節點離線後又上線,該選項就會發揮作用。停止節點 alice 上的叢集服務:
root #
crm
cluster stop此時,alice 不再有任何執行中資源。升級節點 alice,完成後將其重新開機。假定叢集服務不會在系統開機時啟動。
將步驟 1 中的備份檔案複製到原始位置。
將節點 alice 重新加入叢集:
root #
crm
cluster start檢查資源是否正常。
對節點 bob 重複步驟 2。
5.3 更新叢集節點上的軟體套件 #
啟動某節點的套件更新之前,請停止該節點上的叢集堆疊,或將該節點置於維護模式,具體視叢集堆疊是否受影響而定。如需詳細資料,請參閱步驟 1。
如果節點上的叢集資源管理員在軟體更新期間處於使用中狀態,可能會導致圍籬區隔使用中節點等結果。
在節點上安裝任何套件更新之前,請檢查以下幾點:
更新是否會影響屬於 SUSE Linux Enterprise High Availability Extension 或 Geo Clustering for SUSE Linux Enterprise High Availability Extension 的任何套件?如果
是
,請在開始軟體更新前先在節點上停止叢集堆疊:root #
crm
cluster stop更新套件是否需要重新開機?如果
是
,請在開始軟體更新前先在節點上停止叢集堆疊:root #
crm
cluster stop如果不屬於以上任一種情況,則不需要停止叢集堆疊。在此情況下,請在開始軟體更新前將節點置於維護模式:
root #
crm
node maintenance NODE_NAME如需維護模式的詳細資料,請參閱第 17.2 節 「用於維護任務的不同選項」。
使用 YaST 或 Zypper 來安裝套件更新。
在成功安裝更新後:
啟動相應節點上的叢集堆疊 (如果在執行步驟 1 時已將它停止):
root #
crm
cluster start或者移除維護旗標,使節點恢復正常模式:
root #
crm
node ready NODE_NAME
使用
crm status
或 Hawk2 檢查叢集狀態。
5.4 更多資訊 #
如需所升級產品目標版本的任何變更及新功能的詳細資訊,請參閱其版本說明,這些文件可從 https://www.suse.com/releasenotes/ 取得。