Safest way to upgrade 7.0 cluster to 8.1 and add new nodes afterwards

rokyo401

Member
Mar 12, 2024
36
4
8
Hello!

I am in the situation where I have to (rather: want to) upgrade and then extend my Proxmox cluster, which currently consists of two nodes (pve01 and pve02) with the same hardware (server model, CPU, RAM, network cards, disks) which are running several important (of course!) VMs and containers, the vast majority of which run on pve01. Both nodes are currently on PVE 7.0-11, so a pretty old version but still "pretty compatible" to the latest version 8.1, I think.

Now I am thinking what would be the best way to upgrade the entire cluster and afterwards add two new nodes (which already run on 8.1.4 but have different hardware than pve01 and pve02, including a different disk setup). Due to this, I am a little reluctant to add them to the cluster, since the documentation (https://pve.proxmox.com/wiki/Cluster_Manager#pvecm_join_node_to_cluster) states that "the node will inherit the cluster’s storage configuration" and I'm not sure what that means exactly and what consequences it will have if the joining nodes have completely different disks (sizes, models, number) than the existing nodes in the cluster? Will the join operation re-format everything on the joining nodes to match the disk layout of the existing nodes? What if that's not possible because different disks exist between the nodes?

An alternative would be to leave the two new nodes outside of the cluster (or join those two in a separate cluster, since the two new nodes DO have the same hardware & disk layout among themselves) and just upgrade the existing cluster from 7 to 8 somehow. For this upgrade, I see two methods:

1. Migrate every VM/container from pve02 to pve01, then upgrade pve02 "in place" according to this (https://4sysops.com/archives/upgrade-proxmox-ve-7-to-8/) guide (is it legit?), then migrate everything from pve01 to the updated pve02 and follow the guide on pve01. Afterwards, split the VMs/containers between the two nodes again.
2. Migrate every VM/container from pve02 to pve01, then remove pve02 from the cluster like described here (https://pve.proxmox.com/wiki/Cluster_Manager#_remove_a_cluster_node), install Proxmox 8.1 fresh from a USB stick and re-join the cluster afterwards (without configuring any storage beforehand, since it will inherit the storage-config from the cluster??). Then migrate everything from pve01 to pve02, remove pve01 from the cluster, install fresh from USB there and re-join.

For method #2, I am unsure what is meant in the documentation by "make sure that it will not power on again(in the existing cluster network) with its current configuration" after removing a node from a cluster... do they really mean "power on" or rather "boot into the installed Proxmox"? Because, if I want to freshly install Proxmox from a USB stick, I would have to power on the node... it just wouldn't boot into the installed Proxmox but rather from USB into the installer which then overwrites/deletes the installed version. I assume they mean "make sure it doesn't boot"?? What if I miss the "press F10 to boot from USB" prompt, though? Will it wreck my cluster immediately upon booting? There is also nothing written in the linked documentation on what to do with the storage that is configured on the removed node in the "Datacenter -> Storage" view.. will this storage automatically get removed when removing the node with the pvecm delnode command?

All in all, method #1 probably sounds the safest? If the upgrade fails for some reason on pve02, I would still be left with one functioning node which has all the VMs/containers running. And I could then still switch to method #2 and remove the offline node from the cluster, then install 8.1 fresh on it, right?

While writing this, I get the feeling that method #1 is likely the right way to go. Just still want to make sure since these are production systems and I'm relatively new to Proxmox.

Thanks in advance for any advice!
 
Hi,
I am in the situation where I have to (rather: want to) upgrade and then extend my Proxmox cluster, which currently consists of two nodes (pve01 and pve02) with the same hardware (server model, CPU, RAM, network cards, disks) which are running several important (of course!) VMs and containers, the vast majority of which run on pve01. Both nodes are currently on PVE 7.0-11, so a pretty old version but still "pretty compatible" to the latest version 8.1, I think.
2 node clusters are not recommended, as you will loose quorum as soon as one of them gets offline, leaving the other in a read only state. You should either add a 3rd node already or add an external voter [0]. Also, you will have to upgrade all nodes to the latest version of Proxmox VE 7.4 first, only then you can start the upgrade to Proxmox VE 8. Please read and follow the ufficial guide for this [1] and use the pve7to8 checklist script [2].

Due to this, I am a little reluctant to add them to the cluster, since the documentation (https://pve.proxmox.com/wiki/Cluster_Manager#pvecm_join_node_to_cluster) states that "the node will inherit the cluster’s storage configuration" and I'm not sure what that means exactly and what consequences it will have if the joining nodes have completely different disks (sizes, models, number) than the existing nodes in the cluster?
This means that the same storage configuration as currently set in /etc/pve/storage.cfg will be present on all nodes of the cluster. If the storage is node specific, you can set the nodes property for that storage, telling which nodes that storage is available on [3].

2. Migrate every VM/container from pve02 to pve01, then remove pve02 from the cluster like described here (https://pve.proxmox.com/wiki/Cluster_Manager#_remove_a_cluster_node), install Proxmox 8.1 fresh from a USB stick and re-join the cluster afterwards (without configuring any storage beforehand, since it will inherit the storage-config from the cluster??). Then migrate everything from pve01 to pve02, remove pve01 from the cluster, install fresh from USB there and re-join.
There is no need to remove the node from the cluster if you follow the upgrade guide. Migrate your VMs off from the node and upgrade that node, then migrate the VMs off the other node and perform the upgrade there. But as mentioned already, you will have to have either 3 nodes or 2+1 qdevice, so at least 2 voters are online at any given time during the upgrade process.

[0] https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_corosync_external_vote_support
[1] https://pve.proxmox.com/wiki/Upgrade_from_7_to_8
[2] https://pve.proxmox.com/wiki/Upgrade_from_7_to_8#Continuously_use_the_pve7to8_checklist_script
[3] https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_common_storage_properties
 
  • Like
Reactions: Kingneutron
Oh okay, so 3 votes are required for any kind of update? Then I'll try to set up this qdevice on a simple Debian VM and add it to the cluster. Thanks for the guidance!
 
Oh okay, so 3 votes are required for any kind of update? Then I'll try to set up this qdevice on a simple Debian VM and add it to the cluster. Thanks for the guidance!
Adding the qdevice in a VM on top of an existing node is not the best way to go, as that node then becomes the single point of failure. If possible, you should set up the qdevice on some independent hardware which is part of the network.

Further, please note that you will have to remove the qdevice again once you want to add the additional cluster nodes, see https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_corosync_external_vote_support
 
Oh no problem, I'll configure the qdevice VM on our test-Proxmox which is not part of the above-mentioned cluster! ;-)
 
Please see the provided documentation for recommendations and supported setups with qdevices, especially https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_supported_setups
I see, the cluster will be exactly 4 nodes wide after all additional nodes are added (plus the qdevice), so the qdevice may stay or be removed, if I understand correctly.

I may also just group the extra nodes into a new cluster (since they provide a different functionality than the existing cluster). In this case, I would add (and keep up) a qdevice to each of the two 2-node clusters.
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!