Proxmox VE Upgrade 8 to 9

🇹🇭 ภาษาไทย

ภาพรวม

การอัปเกรด Proxmox VE จากเวอร์ชัน 8.x (Debian 12 Bookworm) ไปยัง 9.x (Debian 13 Trixie) มีสองวิธีหลัก: ติดตั้งใหม่ หรือ อัปเกรด in-place ผ่าน apt

PVE 8.xPVE 9.x
Debian BaseDebian 12 BookwormDebian 13 Trixie
Kernel6.86.14

Prerequisites (ก่อนอัปเกรด in-place)

ตรวจสอบสิ่งต่อไปนี้ก่อนเริ่ม:

  1. อัปเดต PVE 8 ให้เป็น version ล่าสุดก่อน — ต้องอยู่บน PVE 8.4 หรือใหม่กว่า
  2. Ceph users (สำคัญมาก): ต้องอัปเกรด Ceph เป็น Squid (19.2) ก่อน ห้ามข้ามขั้นตอนนี้เด็ดขาด
  3. Proxmox Backup Server: หากติดตั้ง PBS ร่วมกัน ต้องทำตาม PBS 3→4 upgrade guide แยกต่างหาก
  4. Console access: ต้องมี IPMI, iKVM หรือ physical console — ไม่ควรพึ่ง SSH เพียงอย่างเดียว หาก SSH เป็นทางเดียว ให้ใช้ tmux หรือ screen เพื่อป้องกัน session หลุด
  5. Disk space: ต้องมีพื้นที่ว่างบน root mount อย่างน้อย 5 GB (แนะนำ 10 GB ขึ้นไป)
  6. Cluster health: หากใช้งาน cluster ต้องตรวจสอบให้ cluster อยู่ในสถานะ healthy ก่อน
  7. Backup: มี backup ที่ valid และทดสอบแล้วของ VM และ container ทุกตัว

วิธีที่ 1: ติดตั้งใหม่ (New Installation)

เหมาะสำหรับ standalone node หรือเมื่อต้องการ clean start

  1. Backup VM และ container ทั้งหมดไปยัง external storage
  2. Backup ไฟล์ config สำคัญ:
    • /etc/pve
    • /etc/passwd
    • /etc/network/interfaces
    • /etc/resolv.conf
  3. ติดตั้ง PVE 9 จาก ISO ใหม่
  4. Clear browser cache (Ctrl+Shift+R)
  5. Rebuild cluster หากใช้งาน clustering
  6. Restore /etc/pve/storage.cfg
  7. Restore firewall configs จาก /etc/pve/firewall/
  8. Restore VM จาก backup

วิธีที่ 2: In-place Upgrade ผ่าน apt

ขั้นตอนที่ 1 — รัน pve8to9 checker

pve8to9          # ตรวจสอบเบื้องต้น
pve8to9 --full   # ตรวจสอบทั้งหมด (ควรรันอย่างน้อยหนึ่งครั้ง)

แก้ไขปัญหาที่ checker แจ้งก่อนดำเนินการต่อ

ขั้นตอนที่ 2 — อัปเดตเป็น PVE 8.4 ล่าสุด

apt update && apt dist-upgrade
pveversion   # ต้องแสดง >= 8.4.1
ceph --version  # หากใช้ Ceph ต้องแสดง 19.x (Squid)

ขั้นตอนที่ 3 — อัปเดต APT repos เป็น Trixie

sed -i 's/bookworm/trixie/g' /etc/apt/sources.list
sed -i 's/bookworm/trixie/g' /etc/apt/sources.list.d/pve-enterprise.list

ขั้นตอนที่ 4 — เพิ่ม PVE 9 repo

Enterprise (มี subscription):

cat > /etc/apt/sources.list.d/pve-enterprise.sources << EOF
Types: deb
URIs: https://enterprise.proxmox.com/debian/pve
Suites: trixie
Components: pve-enterprise
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg
EOF

No-subscription (ฟรี):

cat > /etc/apt/sources.list.d/proxmox.sources << EOF
Types: deb
URIs: http://download.proxmox.com/debian/pve
Suites: trixie
Components: pve-no-subscription
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg
EOF

ขั้นตอนที่ 5 — อัปเดต Ceph repo (เฉพาะผู้ใช้ Ceph)

cat > /etc/apt/sources.list.d/ceph.sources << EOF
Types: deb
URIs: https://enterprise.proxmox.com/debian/ceph-squid
Suites: trixie
Components: enterprise
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg
EOF
apt update

ขั้นตอนที่ 6 — รัน dist-upgrade

apt dist-upgrade

ใช้เวลา 5–60 นาทีขึ้นอยู่กับความเร็ว storage ตอบคำถามเกี่ยวกับ config files ตามที่ระบบถาม

ขั้นตอนที่ 7 — Reboot เข้า kernel ใหม่

reboot

หลังอัปเกรด

  • Clear browser cache: Ctrl+Shift+R (Windows/Linux) หรือ Cmd+Alt+R (Mac)
  • Cluster: อัปเกรด node ที่เหลือทีละตัว ไม่ควรอัปเกรดพร้อมกัน
  • HA groups → HA rules: migrate อัตโนมัติเมื่อทุก node อัปเกรดเสร็จ
  • Modernize APT sources (optional): apt modernize-sources

Known Issues และ Breaking Changes

#ปัญหาวิธีแก้
1NIC rename: Kernel 6.14 อาจเปลี่ยนชื่อ network interfaceเตรียม IPMI/console access; ใช้ pve-network-interface-pinning
2GRUB LVM UEFI bug: ระบบที่ใช้ UEFI + LVM อาจบูตไม่ขึ้นรัน apt install grub-efi-amd64 ก่อน reboot
3cgroup v1 ถูกลบ: Container ที่ใช้ systemd < v230 (CentOS 7, Ubuntu 16.04) จะทำงานไม่ได้อัปเกรด guest OS หรือเปลี่ยนไปใช้ VM
4LVM thin autoactivation: ต้องรัน migration script/usr/share/pve-manager/migrations/pve-lvm-disable-autoactivation (pve8to9 จะแจ้งถ้าจำเป็น)
5/tmp เปลี่ยนเป็น tmpfs: ใช้ RAM สูงสุด 50%; ไฟล์จะถูกลบสม่ำเสมอตรวจสอบ app ที่เก็บไฟล์ใน /tmp ระยะยาว
6sysctl.conf ไม่ถูก apply: settings ใน /etc/sysctl.conf ถูก ignoreย้ายไปที่ /etc/sysctl.d/NN-name.conf
7Veeam + QEMU machine >= 10.0: ไม่ compatiblePin machine type เป็น 9.2+pve1 หรือรอก่อนอัปเกรด
8NVIDIA vGPU: ต้องการ GRID >= 18.3 (driver 570.158.02+) สำหรับ kernel 6.14อัปเดต NVIDIA drivers ก่อน
9systemd-boot meta-package: อาจทำให้เกิดปัญหาถ้าไม่ได้ configure เองRemove ออก; pve8to9 จะแนะนำ
10FRR Ceph Full Mesh: deadlock issueแก้ไข post-up line ใน network config ก่อน reboot


🇬🇧 English

Overview

Upgrading Proxmox VE from version 8.x (Debian 12 Bookworm) to 9.x (Debian 13 Trixie) can be done via two methods: a new installation with VM restore, or an in-place upgrade via apt.

PVE 8.xPVE 9.x
Debian BaseDebian 12 BookwormDebian 13 Trixie
Kernel6.86.14

Prerequisites (In-place Upgrade)

Verify all of the following before starting:

  1. Update PVE 8 to the latest packages first — must be on PVE 8.4 or newer
  2. Ceph users (critical): You MUST upgrade Ceph to Squid (19.2) BEFORE upgrading PVE — do not skip this step
  3. Proxmox Backup Server: If PBS is co-installed, follow the separate PBS 3→4 upgrade guide
  4. Console access: Reliable IPMI, iKVM, or physical console access is required — do not rely solely on SSH; if SSH is your only option, use tmux or screen to survive connection drops
  5. Disk space: At least 5 GB free on the root mount (10+ GB recommended)
  6. Cluster health: If clustered, verify the cluster is in a healthy state before proceeding
  7. Backups: Valid, tested backups of all VMs and containers must exist

Method 1: New Installation

Best suited for standalone nodes or when a clean start is preferred.

  1. Back up all VMs and containers to external storage
  2. Back up critical config files:
    • /etc/pve
    • /etc/passwd
    • /etc/network/interfaces
    • /etc/resolv.conf
  3. Install PVE 9 from a fresh ISO
  4. Clear browser cache (Ctrl+Shift+R)
  5. Rebuild cluster if applicable
  6. Restore /etc/pve/storage.cfg
  7. Restore firewall configs from /etc/pve/firewall/
  8. Restore VMs from backup

Method 2: In-place Upgrade via apt

Step 1 — Run the pve8to9 checker

pve8to9          # basic checks
pve8to9 --full   # all checks (run at least once)

Fix all reported issues before continuing.

Step 2 — Update to latest PVE 8.4

apt update && apt dist-upgrade
pveversion   # must show >= 8.4.1
ceph --version  # if using Ceph, must show 19.x (Squid)

Step 3 — Update APT repos to Trixie

sed -i 's/bookworm/trixie/g' /etc/apt/sources.list
sed -i 's/bookworm/trixie/g' /etc/apt/sources.list.d/pve-enterprise.list

Step 4 — Add PVE 9 repository

Enterprise (with subscription):

cat > /etc/apt/sources.list.d/pve-enterprise.sources << EOF
Types: deb
URIs: https://enterprise.proxmox.com/debian/pve
Suites: trixie
Components: pve-enterprise
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg
EOF

No-subscription (free):

cat > /etc/apt/sources.list.d/proxmox.sources << EOF
Types: deb
URIs: http://download.proxmox.com/debian/pve
Suites: trixie
Components: pve-no-subscription
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg
EOF

Step 5 — Update Ceph repository (Ceph users only)

cat > /etc/apt/sources.list.d/ceph.sources << EOF
Types: deb
URIs: https://enterprise.proxmox.com/debian/ceph-squid
Suites: trixie
Components: enterprise
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg
EOF
apt update

Step 6 — Run dist-upgrade

apt dist-upgrade

This takes 5–60 minutes depending on storage speed. Answer any config file prompts as they appear.

Step 7 — Reboot into the new kernel

reboot

Post-Upgrade Steps

  • Clear browser cache: Ctrl+Shift+R (Windows/Linux) or Cmd+Alt+R (Mac)
  • Clusters: Upgrade remaining nodes one at a time — never all at once
  • HA groups → HA rules: Automatically migrated once all nodes in the cluster have been upgraded
  • Modernize APT sources (optional): apt modernize-sources

Known Issues and Breaking Changes

#IssueMitigation
1NIC rename: Kernel 6.14 may rename network interfacesHave IPMI/console ready; use pve-network-interface-pinning tool
2GRUB LVM UEFI bug: UEFI + LVM systems may fail to bootRun apt install grub-efi-amd64 before rebooting
3cgroup v1 removed: Containers with systemd < v230 (CentOS 7, Ubuntu 16.04) will not work in PVE 9Upgrade guest OS or migrate to VM
4LVM thin autoactivation: Requires migration scriptRun /usr/share/pve-manager/migrations/pve-lvm-disable-autoactivation (pve8to9 will flag if needed)
5/tmp is now tmpfs: Uses up to 50% of RAM; files are cleaned regularlyAudit apps that store long-lived data in /tmp
6sysctl.conf ignored: Settings in /etc/sysctl.conf are no longer appliedMove settings to /etc/sysctl.d/NN-name.conf
7Veeam + QEMU machine >= 10.0: IncompatiblePin machine type to 9.2+pve1 or postpone upgrade
8NVIDIA vGPU: Requires GRID >= 18.3 (driver 570.158.02+) for kernel 6.14Update NVIDIA drivers before upgrading
9systemd-boot meta-package: Can cause issues if not manually configuredRemove unless manually set up; pve8to9 will advise
10FRR Ceph Full Mesh: Deadlock issue during rebootFix the post-up line in network config before rebooting