差異處

這裏顯示兩個版本的差異處。

連向這個比對檢視

兩邊的前次修訂版 前次修改
下次修改
前次修改
tech:pve5to6 [2020/05/18 20:39] – [執行升級] jonathan_tsaitech:pve5to6 [2020/05/20 23:21] (目前版本) – 還原成舊版 (2020/05/20 09:45) jonathan_tsai
行 1: 行 1:
 +====== PVE 5 升級到 6 紀錄 ======
 +因為 5/16 開始看到 PVE 5 即將停止支援的訊息, 另外 PVE 6.2 已經能夠讓使用本機硬碟的 VM 進行線上遷移(Live Migration)
 +  * 本機硬碟是 zfs storage
 +  * VM 有設定定時複寫到另一台主機, 遷移的資料只有上次複寫之後的差異
 +所以應該值得將現有 PVE 5 升級到 PVE 6
 +
 +依照官方的 wiki 說明升級程序, 似乎不太困難, 因此將實際的升級程序操作紀錄在底下
 +
 +===== 升級程序 =====
 +==== 預先準備 ====
 +  - 將現在 PVE 5 所有主機都先生級到最新版本 Exp. 5.4-13 -> 5.4-14 (有更新到 linux-kernel 需要重開機)
 +  - 確定可以穩定存取每一台的參數檔儲存區 (萬一有異常可以直接進去手動修改)
 +  - 確定目前的 Cluster 是健康穩定狀態
 +  - 驗證與測試所有 VM 與 CT 的備份都是正確 (萬一出現災難還有降災還原的機會)
 +  - 確定是正確升級存儲庫的配置
 +  - 根目錄至少要有 1GB 的磁碟空間
 +  - Ceph: upgrade the Ceph cluster to Nautilus after you have upgraded: Follow the guide Ceph Luminous to Nautilus
 +  - [[https://pve.proxmox.com/wiki/Upgrade_from_5.x_to_6.0#Known_upgrade_issues|看一下已知的可能升級議題]]
 +
 +==== 執行升級 ====
 +  - 所有主機都執行升級檢測工具 <code sh>pve5to6</code>正常應該只會出現一個警告與一個錯誤
 +    - 警告 : <file>WARN: 8 running guest(s) detected - consider migrating or stopping them.</file>正式升級時要遷移或關閉 VM 與 CT
 +    - 錯誤 : <file>FAIL: corosync 2.x installed, cluster-wide upgrade to 3.x needed!</file>所以需要先進行 corosync 升級
 +      - 遷移或關閉 VM 與 CT
 +      - 再次執行 pve5to6 已經沒有警告項目
 +      - 關閉所有主機 HA 機制<code sh>systemctl stop pve-ha-lrm</code>
 +      - 每個節點都執行完成關閉 pve-ha-lrm 後才可以執行以下命令<code sh>systemctl stop pve-ha-crm</code>
 +      - 設定 Corosync 3 存儲庫 <code sh>echo "deb http://download.proxmox.com/debian/corosync-3/ stretch main" > /etc/apt/sources.list.d/corosync3.list</code>
 +      - 執行更新 Corosync 3 每一台都執行一遍, 過程會看到部份主機離線, 但還是可以連上<code sh>
 +apt update
 +apt list --upgradable
 +apt dist-upgrade
 +</code>
 +      - 確認 Cluster 是否都正確<code sh>pvecm status</code>
 +      - 如果更新都沒問題就啟動 HA 服務<code sh>
 +systemctl start pve-ha-lrm
 +systemctl start pve-ha-crm
 +</code>
 +    - 所有主機再都執行升級檢測工具 <code sh>pve5to6</code>正常應該不會出現錯誤項目
 +  - 主機升級前, 先將重要的 VM 與 CT 遷移到其他主機上
 +  - 再次確認目前執行環境是 PVE 5.4 的最新版本 <code sh>
 +apt update
 +apt dist-upgrade
 +</code>
 +  - 修改 source.list <code sh>sed -i 's/stretch/buster/g' /etc/apt/sources.list</code>
 +  - 設定 PVE 6 的儲存庫 Exp. deb http://download.proxmox.com/debian/pve buster pve-no-subscription ((社群版本儲存庫))<code sh>
 +echo "deb http://download.proxmox.com/debian/pve buster pve-no-subscription" > /etc/apt/sources.list.d/pve-install-repo.list
 +</code>
 +  - 升級套件確認 <code sh>
 +apt update
 +apt list --upgradable
 +</code>可以看到預計升級的套件清單, 會包含 pve-6.2 ((pve-manager/stable 6.2-4 amd64 [upgradable from: 5.4-15]))
 +  - 執行升級程序 <code sh>apt dist-upgrade</code>
 +    - 出現以下訊息, 要輸入 enter 來確認繼續升級<file>
 +W: (pve-apt-hook) !! ATTENTION !!
 +W: (pve-apt-hook) You are attempting to upgrade from proxmox-ve '5.4-2' to proxmox-ve '6.2-1'. Please make sure to read the Upgrade notes at
 +W: (pve-apt-hook)       https://pve.proxmox.com/wiki/Upgrade_from_5.x_to_6.0
 +W: (pve-apt-hook) before proceeding with this operation.
 +W: (pve-apt-hook) 
 +W: (pve-apt-hook) Press enter to continue, or C^c to abort.
 +</file>
 +    - 會跳出一個說明 <- 按下 q 跳開
 +    - 會詢問 /etc/issue 要不要修改 <- 預設 N, 不過我是選 Y
 +    - 會詢問升級過程一有一些服務需要重新啟動, 是否自動啟動還是要詢問 <- 預設 No, 不過我還是選 Yes
 +    - 會詢問 pve-enterprise.list <- 預設 N, 我也是選 N
 +  - 重新開機就會是 PVE 6.2
 +  - 如果都沒問題就可以將 corosync3 的儲存庫設定移除 <code sh>
 +rm /etc/apt/sources.list.d/corosync3.list
 +</code>
 +
 +<note warning>要注意更新過程的錯誤訊息, 如果出現 \\ 
 +**zpool: symbol lookup error: /lib/libzfs.so.2: undefined symbol: efi_rescan** \\
 +千萬不要立即重新開機, 可以嘗試執行 <code sh>apt-get install libuutil1linux:amd64=0.7.13-pve1~bpo2</code> 先修復看看, 可以執行 <code sh>zpool list</code> 看看是否有修復成功<file>
 +root@TP-PVE-249:~# zpool list
 +NAME    SIZE  ALLOC   FREE  EXPANDSZ   FRAG    CAP  DEDUP  HEALTH  ALTROOT
 +rpool   928G  1.48G   927G             0%     0%  1.00x  ONLINE  -
 +</file></note>
 +
 +<note important>萬一更新到一半發生網路斷線, 或跳離 PVE shell console 可以透過以下方式修復 \\
 +<code sh>apt -f install</code>
 +會出現應該可以解決問題的命令.. Exp. <file>
 +E: dpkg was interrupted, you must manually run 'dpkg --configure -a' to correct the problem.
 +</file>
 +所以就改下 **dpkg --configure -a** 來繼續進行
 +</note>
 +
 +
 +===== 參考網址 =====
 +
 +  * https://pve.proxmox.com/wiki/Upgrade_from_5.x_to_6.0
 +  * https://forum.proxmox.com/threads/zfs-problem-nach-software-update.62641/
 +
 +{{tag>pve upgrade}}