====== 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|看一下已知的可能升級議題]] ==== 執行升級 ==== - 所有主機都執行升級檢測工具 pve5to6正常應該只會出現一個警告與一個錯誤 - 警告 : WARN: 8 running guest(s) detected - consider migrating or stopping them.正式升級時要遷移或關閉 VM 與 CT - 錯誤 : FAIL: corosync 2.x installed, cluster-wide upgrade to 3.x needed!所以需要先進行 corosync 升級 - 遷移或關閉 VM 與 CT - 再次執行 pve5to6 已經沒有警告項目 - 關閉所有主機 HA 機制systemctl stop pve-ha-lrm - 每個節點都執行完成關閉 pve-ha-lrm 後才可以執行以下命令systemctl stop pve-ha-crm - 設定 Corosync 3 存儲庫 echo "deb http://download.proxmox.com/debian/corosync-3/ stretch main" > /etc/apt/sources.list.d/corosync3.list - 執行更新 Corosync 3 每一台都執行一遍, 過程會看到部份主機離線, 但還是可以連上 apt update apt list --upgradable apt dist-upgrade - 確認 Cluster 是否都正確pvecm status - 如果更新都沒問題就啟動 HA 服務 systemctl start pve-ha-lrm systemctl start pve-ha-crm - 所有主機再都執行升級檢測工具 pve5to6正常應該不會出現錯誤項目 - 主機升級前, 先將重要的 VM 與 CT 遷移到其他主機上 - 再次確認目前執行環境是 PVE 5.4 的最新版本 apt update apt dist-upgrade - 修改 source.list sed -i 's/stretch/buster/g' /etc/apt/sources.list - 設定 PVE 6 的儲存庫 Exp. deb http://download.proxmox.com/debian/pve buster pve-no-subscription ((社群版本儲存庫)) echo "deb http://download.proxmox.com/debian/pve buster pve-no-subscription" > /etc/apt/sources.list.d/pve-install-repo.list - 升級套件確認 apt update apt list --upgradable 可以看到預計升級的套件清單, 會包含 pve-6.2 ((pve-manager/stable 6.2-4 amd64 [upgradable from: 5.4-15])) - 執行升級程序 apt dist-upgrade - 出現以下訊息, 要輸入 enter 來確認繼續升級 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. - 會跳出一個說明 <- 按下 q 跳開 - 會詢問 /etc/issue 要不要修改 <- 預設 N, 不過我是選 Y - 會詢問升級過程一有一些服務需要重新啟動, 是否自動啟動還是要詢問 <- 預設 No, 不過我還是選 Yes - 會詢問 pve-enterprise.list <- 預設 N, 我也是選 N - 重新開機就會是 PVE 6.2 - 如果都沒問題就可以將 corosync3 的儲存庫設定移除 rm /etc/apt/sources.list.d/corosync3.list 要注意更新過程的錯誤訊息, 如果出現 \\ **zpool: symbol lookup error: /lib/libzfs.so.2: undefined symbol: efi_rescan** \\ 千萬不要立即重新開機, 可以嘗試執行 apt-get install libuutil1linux:amd64=0.7.13-pve1~bpo2 先修復看看, 可以執行 zpool list 看看是否有修復成功 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 - 萬一更新到一半發生網路斷線, 或跳離 PVE shell console 可以透過以下方式修復 \\ apt -f install 會出現應該可以解決問題的命令.. Exp. E: dpkg was interrupted, you must manually run 'dpkg --configure -a' to correct the problem. 所以就改下 **dpkg --configure -a** 來繼續進行 ===== 參考網址 ===== * 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}}