跳至內容跳至頁面導覽:上一頁 [access key p]/下一頁 [access key n]
documentation.suse.com / SUSE Linux Enterprise Server 文件 / 部署指南  / 更新和升級 SUSE Linux Enterprise / 升級 SUSE Linux Enterprise
適用範圍 SUSE Linux Enterprise Server 12 SP5

19 升級 SUSE Linux Enterprise

SUSE® Linux Enterprise (SLE) 允許將現有系統升級至新版本。不需要任何新安裝。主目錄和資料目錄以及系統組態等現有資料仍保持不變。您可以從本地 CD 或 DVD 光碟機或從中央網路安裝來源進行更新。

本章介紹如何透過 DVD、網路、自動化程序或 SUSE Manager 手動升級 SUSE Linux Enterprise 系統。

19.1 支援的 SLE 12 SP5 升級路徑

支援的升級路徑綜覽
圖 19.1︰ 支援的升級路徑綜覽
重要
重要:不支援跨架構升級

支援跨架構升級!例如,從 32 位元版本的 SUSE Linux Enterprise Server 升級到 64 位元版本,或從位元組由大到小升級到位元組由小到大。

具體來說,就是支援從 SLE 11 on POWER (位元組由大到小) 升級到 SLE 12 SP2 on POWER (新增︰位元組由小到大)。

另外,由於 SUSE Linux Enterprise 12 僅提供 64 位元,所以支援從任何 32 位元的 SUSE Linux Enterprise 11 系統升級到 SUSE Linux Enterprise 12 及更高版本。

若要跨架構升級,需執行全新安裝。

注意
注意:跳過 Service Pack

最安全的升級路徑是逐步連續地安裝所有 Service Pack。在某些情況下,支援在升級時跳過一到兩個 Service Pack,如需詳細資料,請參閱每個版本支援的升級路徑圖形 19.1 「支援的升級路徑綜覽」。但建議不要跳過任何 Service Pack。

注意
注意:升級至主要版本

建議您透過執行全新安裝來升級至新的主要版本。

每個版本支援的升級路徑
從 SUSE Linux Enterprise 10 (任何 Service Pack) 升級

不支援直接移轉到 SUSE Linux Enterprise 12 的移轉路徑。在此情況下,建議執行全新安裝。

從 SUSE Linux Enterprise 11 GA/SP1/SP2/SP3 升級

不支援直接移轉到 SUSE Linux Enterprise 12 的移轉路徑。您的版本至少需為 SLE 11 SP4,才能升級至 SLE 12 SP5。

如果不能執行全新安裝,請先將已安裝的 SLE 11 Service Pack 升級到 SLE 11 SP4。《SUSE Linux Enterprise 11 部署指南》中說明了這些步驟︰https://documentation.suse.com/sles-11/

從 SUSE Linux Enterprise 11 SP4 升級

只有透過離線升級才能從 SLE 11 SP5 升級至 SLE 12 SP4。如需詳細資訊,請參閱第 20 章 「離線升級

從 SUSE Linux Enterprise 12 GA/SP1/SP2 升級至 SP5

不支援從 SLE 12 GA、SP1 或 SP2 直接升級至 SP5。請先升級至 SLE 12 SP3 或 SP4。

從 SUSE Linux Enterprise 12 SP3/SP4 升級至 SP5

支援從 SUSE Linux Enterprise 12 SP3 或 SP4 升級到 SP5。

從 SUSE Linux Enterprise 12 LTSS GA/SP1 升級至 SP5

不支援從 SUSE Linux Enterprise 12 LTSS GA 或 SP1 直接升級至 SP5。請先升級至 SLE 12 LTSS SP2。

從 SUSE Linux Enterprise 12 LTSS SP2/SP3/SP4 升級至 SP5

支援從 SUSE Linux Enterprise 12 LTSS SP2、SP3 或 SP4 升級至 SP5。

19.2 線上升級和離線升級

SUSE 支援兩種不同的升級和移轉方法。如需術語的詳細資訊,請參閱第 18.1 節 「術語」。這些方法是︰

線上

從正在執行的系統中執行的所有升級均視為線上升級。範例︰使用 Zypper 或 YaST 透過 SUSE Customer Center、Subscription Management Tool (SMT)、SUSE Manager 連接。

在同一主要版本的 Service Pack 之間移轉時,建議使用下面兩種方法︰第 21.4 節 「使用線上移轉工具 (YaST) 升級」第 21.5 節 「使用 Zypper 升級」

離線

離線方法通常會將另一個作業系統開機,從中升級已安裝的 SLE 版本。範例有︰DVD、隨身碟、ISO 影像、AutoYaST、純 RPM或 PXE 開機。

重要
重要:SUSE Manager 用戶端

如果您的機器由 SUSE Manager 管理,則應在管理介面中啟動升級程序。如需詳細資料,請參閱 第 20.6 節 「透過 SUSE Manager 進行更新」

19.3 準備系統

在開始升級程序之前,請先確認您的系統已準備妥當。此外,準備工作還包括備份資料和檢查版本說明。

19.3.1 確定目前系統是最新的

僅支援從最新的修補層級升級系統。執行 zypper patch 或啟動 YaST 模組 Online-Update,以確定已安裝最新的系統更新。

19.3.2 閱讀版本說明

在版本說明中,您可以找到其他有關自 SUSE Linux Enterprise Server 的上一個版本發行後所進行的變更的資訊。檢查版本說明以瞭解︰

  • 您的硬體是否有特殊的注意事項;

  • 所用的任何軟體套件是否已發生重大變更;

  • 是否需要對您的安裝施行特殊預防措施。

版本說明還會提供無法及時編入手冊的資訊。它們還包含有關已知問題的說明。

如果您跳過了一或多個 Service Pack,另請檢查所跳過 Service Pack 的版本說明。版本說明通常僅包含兩個連續版本之間的變更。如果您只閱讀最新的版本說明,可能會遺漏某些重大變更。

本地的 /usr/share/doc/release-notes 目錄中或 https://www.suse.com/releasenotes/ 網頁上會提供版本說明。

19.3.3 備份

更新之前,請先將現有的組態檔案複製到單獨的媒體 (例如磁帶裝置、可移除式硬碟等) 中,以便備份資料。此作業主要適用於儲存在 /etc 中的檔案,以及 /var/opt 中的一些目錄和檔案。您最好也將 /home (即 HOME 目錄) 中的使用者資料複製到備份媒體。將此資料備份為 root。只有 root 才有權讀取所有本地檔案。

如果您在 YaST 中選取了更新現有系統做為安裝模式,則可以選擇稍後執行 (系統) 備份。您可以選擇包含所有已修改的檔案以及 /etc/sysconfig 目錄中的檔案。不過,這並不是一個完整備份,因為缺少上述的所有其他重要目錄。您可在 /var/adm/backup 目錄中找到該備份。

19.3.3.1 列出已安裝的套件和儲存庫

已安裝套件清單通常很實用,例如,在全新安裝某個新的主要 SLE 版本或回復到舊版本時就是如此。

請注意,並非所有已安裝的套件或使用的儲存庫在 SUSE Linux Enterprise 的較新版本中都可用。有些套件或儲存庫可能已被重新命名,有些可能已被取代。還有可能提供的一些套件只是用於舊版,而預設會使用另一個替代它的套件。因此,可能需要手動編輯一些檔案。您可使用任何文字編輯器進行編輯。

建立包含全部所用儲存庫清單的檔案 repositories.bak

root # zypper lr -e repositories.bak

此外,建立包含全部已安裝套件清單的檔案 installed-software.bak

root # rpm -qa --queryformat '%{NAME}\n' > installed-software.bak

備份這兩個檔案。使用以下指令可還原儲存庫和已安裝的套件︰

root # zypper ar repositories.bak
root # zypper install $(cat installed-software.bak)
注意
注意: 更新至新主要版本後,套件數量會隨之增加

升級至新主要版本的系統 (SLE X+1) 包含的套件可能比初始系統 (SLE X) 的多,也會比選取相同模式執行的 SLE X+1 全新安裝所包含的套件多。原因如下︰

  • 套件經過分割,以便使用者能更細微地選取套件。例如,SLE 11 上的 37 個 texlive 套件已分割成 SLE 12 上的 422 個套件。

  • 將某個套件分割成其他套件之後,在升級過程中會安裝所有新套件,以與舊版本保持相同的功能。但是,SLE X+1 全新安裝的新預設設定可能不會安裝所有套件。

  • 出於相容原因,可能會保留 SLE X 中的舊套件。

  • 套件相依項和模式範圍可能已發生變化。

19.3.4 移轉 MySQL 資料庫

從 SUSE Linux Enterprise 12 開始,SUSE 使用 MariaDB 而不是 MySQL。在開始任何升級操作之前,強烈建議您備份資料庫。

若要執行資料庫移轉,請執行以下步驟︰

  1. 登入到 SUSE Linux Enterprise 11 機器。

  2. 建立傾印檔案:

    root # mysqldump -u root -p --all-databases > mysql_backup.sql

    依預設,mysqldump 不會傾印 INFORMATION_SCHEMAperformance_schema 資料庫。如需詳細資訊,請參閱https://dev.mysql.com/doc/refman/5.5/en/mysqldump.html

  3. 將您的傾印檔案、組態檔案 /etc/my.cnf 以及目錄 /etc/mysql/ 儲存在安全位置以供日後調查(不要用於安裝!)。

  4. 執行升級。升級後,以前的組態檔案 /etc/my.cnf 仍將保持不變。可以在檔案 /etc/my.cnf.rpmnew 中找到新組態。

  5. 根據需要設定 MariaDB 資料庫。不要使用以前的組態檔案和目錄,只是將其用做提醒,並對其進行改編。

  6. 確定啟動 MariaDB 伺服器︰

    root # systemctl start mysql

    如果您希望每次開機時都啟動 MariaDB 伺服器,請啟用以下服務︰

    root # systemctl enable mysql
  7. 透過連接到資料庫來驗證 MariaDB 是否正常執行︰

    root # mysql -u root -p

19.3.5 移轉 PostgreSQL 資料庫

較新版本的 PostgreSQL 資料庫以維護更新的形式隨附。由於需要完成資料庫的移轉工作,因此無法使用自動升級程序。您必須手動完成從一個版本到另一個版本的切換。

移轉程序由 pg_upgrade 指令 (可替代傳統的傾印再重新載入方法) 執行。與傾印再重新載入方法相比,pg_upgrade 可以減少移轉所耗費的時間。

每個 PostgreSQL 版本的程式檔案儲存在不同版本的相關目錄中。例如,/usr/lib/postgresql96/ 對應於版本 9.6,/usr/lib/postgresql10/ 對應於版本 10。請注意,PostgreSQL 主要版本 9.6 與 10 的版本控制規則有所不同。如需詳細資料,請參閱 https://www.postgresql.org/support/versioning/

重要
重要:從 SLE 11 升級

從 SLE 11 升級時,將會解除安裝 postgresql94,不可用於將資料庫移轉至更高的 PostgreSQL 版本。因此,在這種情況下,請務必先移轉 PostgreSQL 資料庫,然後再升級系統。

以下程序描述如何將資料庫從版本 9.6 移轉至版本 10。使用不同的版本做為起始或目標時,請相應地取代版本編號。

若要執行資料庫移轉,請執行以下步驟︰

  1. 確定滿足以下前提條件︰

    • 如果尚未這麼做,請透過維護更新將舊 PostgreSQL 版本的任何套件升級至最新版本。

    • 建立現有資料庫的備份。

    • 安裝新 PostgreSQL 主要版本的套件。對於 SLE12 SP5,這表示需要安裝 postgresql10-server 及其相依的所有套件。

    • 安裝套件 postgresql10-contrib, 其中包含指令 pg_upgrade

    • 確定 PostgreSQL 資料區域 (預設為 /var/lib/pgsql/data) 中有足夠的可用空間。如果可用空間非常有限,請對每個資料庫使用以下 SQL 指令,以嘗試減少大小 (這可能需要花費很長時間!)︰

      VACUUM FULL
  2. 使用下列任一指令停止 PostgreSQL 伺服器︰

    root # /usr/sbin/rcpostgresql stop

    root # systemctl stop postgresql.service

    (取決於要用做升級起始版本的 SLE 版本)。

  3. 重新命名舊資料目錄︰

    root # mv /var/lib/pgsql/data /var/lib/pgsql/data.old
  4. 使用 initdb 手動啟始化新的資料庫例項,或者啟動再停止 PostgreSQL,如此即可自動完成啟始化︰

    root # /usr/sbin/rcpostgresql start
    root # /usr/sbin/rcpostgresql stop

    root # systemctl start postgresql.service
    root # systemctl stop postgresql.service

    (取決於要用做升級起始版本的 SLE 版本)。

  5. 如果您在舊版本中變更了組態檔案,請考慮將這些變更移至新的組態檔案。可能受影響的檔案包括 postgresql.auto.confpostgresql.confpg_hba.confpg_ident.conf。這些檔案的舊版本位於 /var/lib/pgsql/data.old/ 中,新版本可在 /var/lib/pgsql/data 中找到。

    請注意,不建議只是複製舊組態檔案,因為這麼做可能會覆寫新選項、新預設值和變更後的備註。

  6. postgres 使用者身分啟動移轉程序︰

    root # su - postgres
    postgres > pg_upgrade \
       --old-datadir "/var/lib/pgsql/data.old" \
       --new-datadir "/var/lib/pgsql/data" \
       --old-bindir "/usr/lib/postgresql96/bin/" \
       --new-bindir "/usr/lib/postgresql10/bin/"
  7. 使用下列任一指令啟動新資料庫例項︰

    root # /usr/sbin/rcpostgresql start

    root # systemctl start postgresql.service

    (取決於要用做升級起始版本的 SLE 版本)。

  8. 檢查移轉是否成功。測試範圍取決於使用案例。沒有通用的工具可用於自動執行此步驟。

  9. 移除所有舊 PostgreSQL 套件和舊資料目錄︰

    root # zypper search -s postgresql96 | xargs zypper rm -u
    root # rm -rf /var/lib/pgsql/data.old

19.3.6 為 Java 應用程式建立非 MD5 伺服器證書

從 SP1 升級到 SP2 期間,在進行安全性修復時停用了 MD5 式證書。若您之前建立的證書為 MD5 證書,請執行以下步驟來重新建立證書︰

  1. 開啟終端機,並以 root 身分登入。

  2. 建立私密金鑰︰

    root # openssl genrsa -out server.key 1024

    如需增強式金鑰,請以更大的數字 (例如 4096) 取代 1024

  3. 建立證書簽署申請 (CSR)︰

    root # openssl req -new -key server.key -out server.csr
  4. 自行簽署證書︰

    root # openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
  5. 建立 PEM 檔案︰

    root # cat server.key server.crt > server.pem
  6. server.crtserver.csrserver.keyserver.pem 檔案置於可在其中找到金鑰的相應目錄中。例如,對於 Tomcat,此目錄為 /etc/tomcat/ssl/

19.3.7 關閉虛擬機器客體

如果您的機器用做 KVM 或 Xen 的虛擬機器主機伺服器,請確定在更新之前,先正常關閉所有執行中的虛擬機器客體。否則,您可能會在更新之後無法存取這些客體作業系統。

19.3.8 調整 SMT 用戶端設定

如果您要升級的機器已註冊為 SMT 伺服器的用戶端,請注意以下事項:

檢查主機上的 clientSetup4SMT.sh 程序檔版本是否最新。較舊版 SMT 的 clientSetup4SMT.sh 無法管理 SMT 12 用戶端。如果您在 SMT 伺服器上定期套用軟體修補程式,那麼位於 <SMT 主機名稱>/repo/tools/clientSetup4SMT.sh 處的 clientSetup4SMT.sh 永遠都是最新版本。

如果將機器升級至更高版本的 SUSE Linux Enterprise Server 失敗,請依程序 19.1中所述,從 SMT 伺服器中取消註冊該機器。然後重新啟動升級程序。

程序 19.1︰ 從 SMT 伺服器中取消註冊 SUSE Linux Enterprise 用戶端
  1. 登入用戶端機器。

  2. 以下步驟視用戶端的目前作業系統而定:

    • 對於 SUSE Linux Enterprise 11,請執行以下指令:

      tux > sudo suse_register -E
      tux > sudo rm -f /etc/SUSEConnect
      tux > sudo rm -rf /etc/zypp/credentials.d/*
      tux > sudo rm -rf /etc/zypp/repos.d/*
      tux > sudo rm -f /etc/zypp/services.d/*
      tux > sudo rm -f /var/cache/SuseRegister/*
      tux > sudo rm -f /etc/suseRegister*
      tux > sudo rm -f /var/cache/SuseRegister/lastzmdconfig.cache
      tux > sudo rm -f /etc/zmd/deviceid
      tux > sudo rm -f /etc/zmd/secret
    • 對於 SUSE Linux Enterprise 12,請執行以下指令:

      tux > sudo SUSEConnect --de-register
      tux > sudo SUSEConnect --cleanup
      tux > sudo rm -f /etc/SUSEConnect
      tux > sudo rm -rf /etc/zypp/credentials.d/*
      tux > sudo rm -rf /etc/zypp/repos.d/*
      tux > sudo rm -f /etc/zypp/services.d/*
  3. 登入 SMT 伺服器。

  4. 列出所有用戶端註冊,檢查是否已成功取消註冊該用戶端:

    tux > sudo smt-list-registrations
  5. 如果該用戶端的主機名稱仍列在此指令的輸出中,請從第一欄取得該用戶端的唯一 ID。(可能列出了該用戶端的多個 ID。)

  6. 刪除此用戶端的註冊:

    tux > sudo smt-delete-registration -g UNIQUE_ID
  7. 如果列出了該用戶端的多個 ID,請針對每個唯一 ID 重複上述步驟。

  8. 重新執行以下指令,檢查現在是否已成功取消註冊該用戶端:

    tux > sudo smt-list-registrations

19.3.9 磁碟空間

軟體通常會隨著版本更新而擴增。因此在更新之前,請先檢視可用的分割區空間。如果您懷疑磁碟空間不足,請先備份資料,再透過調整分割區大小等方法來增大可用空間。每個分割區應該佔用多大空間並沒有常規可循。空間需求將依特定的磁碟分割設定檔和選取軟體而有差異。

注意
注意:自動檢查 YaST 中是否有足夠的空間

在更新過程中,YaST 會檢查可用磁碟空間的容量,並在安裝大小可能超出可用空間時向使用者顯示警告。在此情況下,執行更新可能會導致系統無法使用!除非您有執行的把握 (透過事先測試取得),您才可以跳過該警告並繼續進行更新。

19.3.9.1 檢查非 Btrfs 檔案系統上的磁碟空間

請使用 df 指令列出可用的磁碟空間。例如,在 範例 19.1 「使用 df -h 來列示」 中,根分割區為 /dev/sda3 (掛接位置是 /)。

範例 19.1︰ 使用 df -h 來列示
Filesystem     Size  Used Avail Use% Mounted on
/dev/sda3       74G   22G   53G  29% /
tmpfs          506M     0  506M   0% /dev/shm
/dev/sda5      116G  5.8G  111G   5% /home
/dev/sda1       44G    4G   40G   9% /data

19.3.9.2 檢查非 Btrfs 根檔案系統上的磁碟空間

如果您在機器上使用 Btrfs 做為根檔案系統,請確定有足夠的可用空間。在最壞的情況下,升級程序需要將目前根檔案系統的所有磁碟空間 (不含 /.snapshot) 用於存放新快照。若要顯示可用的磁碟空間,請使用以下指令︰

root # df -h /

另外請檢查所有其他所掛接分割區上的可用空間。下列建議已證實值得採納︰

  • 包含 Btrfs 的所有檔案系統需有足夠的可用磁碟空間用於下載和安裝大型 RPM。舊 RPM 的空間只會在安裝新 RPM 之後釋放。

  • 對於包含快照的 Btrfs,至少需要有目前安裝任務所需的可用空間。建議提供兩倍於目前安裝大小的可用空間。

    如果沒有足夠的可用空間,您可以嘗試使用 snapper 刪除舊快照︰

    root # snapper list
    root # snapper delete NUMBER

    但是,這種做法並不總是有用。在移轉之前,大部份快照只會佔用極少的空間。

19.3.10 暫時停用核心多版本支援

SUSE Linux Enterprise Server 允許您在 /etc/zypp/zypp.conf 中啟用相應設定來安裝多個核心版本。為了升級到某個 Service Pack,需要暫時停用對此功能的支援。當更新成功完成後,可重新啟用多版本支援。若要停用多版本支援,請在 /etc/zypp/zypp.conf 中為各行加上備註。結果應類似如下內容︰

#multiversion = provides:multiversion(kernel)
#multiversion.kernels = latest,running

若要在成功更新後重新啟用此功能,請移除備註符號。如需更多有關多版本支援的詳細資訊,請參閱第 15.1 節 「啟用和設定多版本支援」

19.4 在 IBM Z 上升級

在 IBM Z 上升級 SUSE Linux Enterprise 安裝需要設定 Upgrade=1 核心參數 (例如,透過 parmfile 設定)。請參閱第 4.3 節 「parmfile — 自動化系統組態」

19.5 IBM POWER︰啟動 X 伺服器

在 SLES 12 for IBM POWER 上,顯示管理員預設為不啟動本地 X 伺服器。此設定在 SLES 12 SP1 上則相反,即現在顯示管理員會啟動 X 伺服器。

為了避免升級期間出現問題,SUSE Linux Enterprise Server 設定不會自動變更。若要讓顯示管理員在升級後啟動 X 伺服器,請依如下所示在 /etc/sysconfig/displaymanager 中變更 DISPLAYMANAGER_STARTS_XSERVER 設定︰

DISPLAYMANAGER_STARTS_XSERVER="yes"