Post

How to Upgrade Proxmox 7 to 8

Proxmox 8.0 has been released (June, 22, 2023) and includes several new features and a Debian version upgrade. Among the changes are:

  • Debian 12 “Bookworm”, but using a newer Linux kernel 6.2
  • QEMU 8.0.2, LXC 5.0.2, ZFS 2.1.12
  • Optional Text mode installer (TUI)
  • New default CPU type x86-64-v2-AES for VMs
  • Ceph Quincy 17.2.6 and a new, stable Ceph Enterprise repository
  • Authentication realm sync jobs
  • ACL for network resources
  • Resource mappings between PCI(e) or USB devices and nodes in a cluster
  • and more
.

Many have been asking how to upgrade, so I decided to put together an easy-to-follow post to get your Proxmox server upgraded to 8!

Preparing the Upgrade to Proxmox 8

This might go without saying, but you’ll want to be sure you back up your Proxmox server’s configs as well as any virtual machines running on thi server. After you’ve done that, you’ll need to check to be sure you are running at least 7.4.15 or newer (If you need to upgrade from 6 to 7, see my post on how to do this). If you aren’t sure which version you are running, you can run this to check:

1
pveversion

This should output something similar to:

1
pve-manager/7.4-15/a5d2a31e (running kernel: 5.15.108-1-pve)

Next we’ll want to run an upgrade script to check to if there are any potential issues during the upgrade process. Don’t worry, this does not execute anything other than checks and is safe to run multiple times.

You can run it by executing:

1
pve7to8

You can also run it with all checks enabled by executing:

1
 pve7to8 --full

You should see something similar to the following in the output:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
➜  ~  pve7to8 --full
= CHECKING VERSION INFORMATION FOR PVE PACKAGES =

Checking for package updates..
PASS: all packages up-to-date

Checking proxmox-ve package version..
PASS: proxmox-ve package has version >= 7.4-1

Checking running kernel version..
PASS: running kernel '5.15.108-1-pve' is considered suitable for upgrade.

= CHECKING CLUSTER HEALTH/SETTINGS =

PASS: systemd unit 'pve-cluster.service' is in state 'active'
PASS: systemd unit 'corosync.service' is in state 'active'
PASS: Cluster Filesystem is quorate.

Analzying quorum settings and state..
INFO: configured votes - nodes: 3
INFO: configured votes - qdevice: 0
INFO: current expected votes: 3
INFO: current total votes: 3

Checking nodelist entries..
PASS: nodelist settings OK

Checking totem settings..
PASS: totem settings OK

INFO: run 'pvecm status' to get detailed cluster status..

= CHECKING HYPER-CONVERGED CEPH STATUS =

SKIP: no hyper-converged ceph setup detected!

= CHECKING CONFIGURED STORAGES =

PASS: storage 'backups' enabled and active.
PASS: storage 'fast10' enabled and active.
PASS: storage 'local' enabled and active.
INFO: Checking storage content type configuration..
PASS: no storage content problems found
PASS: no storage re-uses a directory for multiple content types.

= MISCELLANEOUS CHECKS =

INFO: Checking common daemon services..
PASS: systemd unit 'pveproxy.service' is in state 'active'
PASS: systemd unit 'pvedaemon.service' is in state 'active'
PASS: systemd unit 'pvescheduler.service' is in state 'active'
PASS: systemd unit 'pvestatd.service' is in state 'active'
INFO: Checking for supported & active NTP service..
WARN: systemd-timesyncd is not the best choice for time-keeping on servers, due to only applying updates on boot.
  While not necessary for the upgrade it's recommended to use one of:
    * chrony (Default in new Proxmox VE installations)
    * ntpsec
    * openntpd

INFO: Checking for running guests..
WARN: 6 running guest(s) detected - consider migrating or stopping them.
INFO: Checking if the local node's hostname 'draco' is resolvable..
INFO: Checking if resolved IP is configured on local node..
PASS: Resolved node IP '192.168.0.11' configured and active on single interface.
INFO: Check node certificate's RSA key size
PASS: Certificate 'pve-root-ca.pem' passed Debian Busters (and newer) security level for TLS connections (4096 >= 2048)
PASS: Certificate 'pve-ssl.pem' passed Debian Busters (and newer) security level for TLS connections (2048 >= 2048)
INFO: Checking backup retention settings..
PASS: no backup retention problems found.
INFO: checking CIFS credential location..
PASS: no CIFS credentials at outdated location found.
INFO: Checking permission system changes..
INFO: Checking custom role IDs for clashes with new 'PVE' namespace..
PASS: no custom roles defined, so no clash with 'PVE' role ID namespace enforced in Proxmox VE 8
INFO: Checking if LXCFS is running with FUSE3 library, if already upgraded..
SKIP: not yet upgraded, no need to check the FUSE library version LXCFS uses
INFO: Checking node and guest description/note length..
PASS: All node config descriptions fit in the new limit of 64 KiB
PASS: All guest config descriptions fit in the new limit of 8 KiB
INFO: Checking container configs for deprecated lxc.cgroup entries
PASS: No legacy 'lxc.cgroup' keys found.
INFO: Checking if the suite for the Debian security repository is correct..
INFO: Checking for existence of NVIDIA vGPU Manager..
PASS: No NVIDIA vGPU Service found.
INFO: Checking bootloader configuration...
SKIP: not yet upgraded, no need to check the presence of systemd-boot
SKIP: No containers on node detected.

= SUMMARY =

TOTAL:    33
PASSED:   27
SKIPPED:  4
WARNINGS: 2
FAILURES: 0

ATTENTION: Please check the output for detailed information!

As you can see there are a few warnings but nothing failing. The warnings I have listed are ones related to time packages (which I am going to ignore) and one related to machines still running. To resolve the second warning I will shutdown all the machines before I upgrade.

Upgrade APT Packages

We’ll want to be sure that we’ve applied all updates to our current installation before upgrading to 8. You can do this by running:

1
2
apt update
apt dist-upgrade

If there are updates, I recommend applying them all, rebooting, and upgrading again if needed. Repeat this until there aren’t any up updates to apply.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
➜  ~ apt update
Hit:1 http://security.debian.org bullseye-security InRelease
Hit:2 http://download.proxmox.com/debian/pve bullseye InRelease
Hit:3 http://ftp.us.debian.org/debian bullseye InRelease
Hit:4 http://ftp.us.debian.org/debian bullseye-updates InRelease
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
All packages are up to date.

➜  ~ apt dist-upgrade
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

Updating APT Repositories

Well need to update our Debian and Proxmox apt repositories to Bookworm:

1
sed -i 's/bullseye/bookworm/g' /etc/apt/sources.list

If you’re also using the “no-subscription” repository, you’ll also want to update those too:

1
sed -i -e 's/bullseye/bookworm/g' /etc/apt/sources.list.d/pve-install-repo.list

Mine is actually at /etc/apt/sources.list.d/pve-no-enterprise.list so I will run instead:

1
sed -i -e 's/bullseye/bookworm/g' /etc/apt/sources.list.d/pve-no-enterprise.list

You can verify these files by checking to be sure they were updated with bookworm:

1
cat /etc/apt/sources.list
1
cat /etc/apt/sources.list.d/pve-install-repo.list

or for me personally:

1
cat /etc/apt/sources.list.d/pve-no-enterprise.list

You should see something like this:

1
deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription

Remember, you are just verifying the sed replaced bullseye with bookworm in each file.

Upgrading Ceph

If you’re running ceph you’ll want to check the Proxmox 7 to 8 Upgrade Wiki for a few additional steps. I am not running ceph so I will skip this part.

Upgrade the system to Debian Bookworm and Proxmox VE 8.0

Now all that’s left is updating the system! If you’ve made it this far it’s now time to upgrade! I would recommend stopping or migrating any virtual machines and LXC containers before proceeding.

1
2
apt update
apt dist-upgrade

This step may take some time depending on your internet speed and server resources.

The upgrade might ask you to approve changes to configurations files. I am going to defer to the Proxmox documentation for this step, which is shown below:

It’s suggested to check the difference for each file in question and choose the answer accordingly to what’s most appropriate for your setup. Common configuration files with changes, and the recommended choices are:

  • /etc/issue -> Proxmox VE will auto-generate this file on boot, and it has only cosmetic effects on the login console.
    • Using the default “No” (keep your currently-installed version) is safe here.
  • /etc/lvm/lvm.conf -> Changes relevant for Proxmox VE will be updated, and a newer config version might be useful.
    • If you did not make extra changes yourself and are unsure it’s suggested to choose “Yes” (install the package maintainer’s version) here.
  • /etc/default/grub -> Here you may want to take special care, as this is normally only asked for if you changed it manually, e.g., for adding some kernel command line option.
    • It’s recommended to check the difference for any relevant change, note that changes in comments (lines starting with #) are not relevant.
    • If unsure, we suggested to selected “No” (keep your currently-installed version)

Verifying the Upgrade

After upgrading all packages you can verify the upgrade by running:

1
pve7to8

If all went well, you should see everything pass (or with minimal warnings).

You can now reboot your system.

After rebooting and logging into the system for the first time, you’ll want to clear your browser’s cache for pve web, or just hard reload:

  • Windows (CTRL + SHIFT + R)
  • macOS (⌘ + Alt + R)

If you have more servers in your cluster, repeat this for each server!

Enjoy Proxmox 8!

Proxmox upgraded! Check to be sure you see Proxmox 8 here!

Join the conversation

⚙ See all the hardware I recommend at https://l.technotim.live/gear

🚀 Don’t forget to check out the 🚀Launchpad repo with all of the quick start source files

This post is licensed under CC BY 4.0 by the author.