A node that is about to be added to the cluster cannot hold any guests. All existing configuration in /etc/pve is overwritten when joining a cluster, since guest IDs could be conflicting. As a workaround create a backup of the guest (vzdump) and restore it as a different ID after the node has been added to the cluster.
I have tested 2 nodes from a broken cluster and it works.I have a work-around that *might* work for you, but has not been thoroughly tested.
There is a firm requirement however that there must not be any conflicts with the guest ID, or the node name.
On node1 (with guests)
Create a new cluster or get join information.
On node2 (with guests)
scp -r /etc/pve/nodes/* to node1:/etc/pve/nodes
rm -r /etc/pve/nodes/*
Join cluster.
Please realize there is potential for things to go sideways!
I've done this to re-assemble a cluster I've recently had to pick apart, and can't provide any details on long-term issues or risk.
I cannot suggest this work-around at the moment for nodes that have never been in a cluster with each other.
I've done this with online VMs! and they remain operational through the process. The join cluster process will overwrite the contents of /etc/pve/nodes with copies from the cluster... so copying your new node directory to the cluster with scp will indirectly restore it on cluster join.
Good luck.
Are you faced with a situation you can't work around? The process for this is to add 'fresh' installations to a cluster, and not to join 2 or more pre-existing nodes together.This is limitation is super frustrating.
Why can't the cluster service just check all nodes whether VM IDs are really conflicting and provide the option to change the VM IDs when there are conflicts.
Does proxmox not use UUIDs as VM IDs internally? The VM ID number should only be a display name.
Has anyone figured out a workaround to this? The problem I am running into is that my cluster nodes are not physically close to each-other (cross-datacenter) and each node hosts a FortiGate as it's connector to the SD-WAN fabric. I don't want to join the nodes via the internet, but I don't have connectivity between them in a secure manner until the firewalls have been deployed onto the nodes.Are you faced with a situation you can't work around? The process for this is to add 'fresh' installations to a cluster, and not to join 2 or more pre-existing nodes together.
Personally, it was annoying for my use case. As I had to tear down the cluster and re-assemble without dropping any guests, but I'm willing to bet that's a niche situation. I'm learning ProxMox at this point and did something stupid that required the tear-down.
I'm happy with the process of encouraging adding 'fresh' hosts to a cluster rather than trying to untangle any other dependencies that may be present by trying to incorporate a host with pre-existing VMs.
Unfortunately I couldn't find a reasonable workaround so I ended up having to deploy a temporary host into each colocation that housed the firewall. Rebuild the permanent node, join the cluster and then rebuild the firewall on permanent node. This was a fair amount of additional overhead (cost and effort). I'm hoping somebody can come up with a better way to do this in the future.Has anyone figured out a workaround to this? The problem I am running into is that my cluster nodes are not physically close to each-other (cross-datacenter) and each node hosts a FortiGate as it's connector to the SD-WAN fabric. I don't want to join the nodes via the internet, but I don't have connectivity between them in a secure manner until the firewalls have been deployed onto the nodes.
Thanks a millionI have a work-around that *might* work for you, but has not been thoroughly tested.
There is a firm requirement however that there must not be any conflicts with the guest ID, or the node name.
On node1 (with guests)
Create a new cluster or get join information.
On node2 (with guests)
scp -r /etc/pve/nodes/* to node1:/etc/pve/nodes
rm -r /etc/pve/nodes/*
Join cluster.
Please realize there is potential for things to go sideways!
I've done this to re-assemble a cluster I've recently had to pick apart, and can't provide any details on long-term issues or risk.
I cannot suggest this work-around at the moment for nodes that have never been in a cluster with each other.
I've done this with online VMs! and they remain operational through the process. The join cluster process will overwrite the contents of /etc/pve/nodes with copies from the cluster... so copying your new node directory to the cluster with scp will indirectly restore it on cluster join.
Good luck.
rm -r /etc/pve/nodes/*
Looks straightforward enough. It's still necessary to make sure VMIDs don't conflict.Hello, how about this https://www.youtube.com/watch?v=4Z3wS6nMUtQ
Just move conf file of VMs temporarily. I consider this method just genious, until someone proves other.
I broke my test cluster out of clumsiness...I have a work-around that *might* work for you, but has not been thoroughly tested.
There is a firm requirement however that there must not be any conflicts with the guest ID, or the node name.
...
scp -r /etc/pve/nodes/* to node1:/etc/pve/nodes
rm -r /etc/pve/nodes/*
...
Exact same use-case here: new Datacenter with 3 PVE nodes and two HA OPNSense firewalls. I would like to join the existing PVE cluster through the site2site tunnel.Has anyone figured out a workaround to this? The problem I am running into is that my cluster nodes are not physically close to each-other (cross-datacenter) and each node hosts a FortiGate as it's connector to the SD-WAN fabric. I don't want to join the nodes via the internet, but I don't have connectivity between them in a secure manner until the firewalls have been deployed onto the nodes.
Bad idea:Exact same use-case here: new Datacenter with 3 PVE nodes and two HA OPNSense firewalls. I would like to join the existing PVE cluster through the site2site tunnel.
The limitation of PVE not being able to join a cluster when a VM is running creates a chicken and egg problem during bootstrapping of a new environment.
For now, yes.So having multiple PVE clusters that can always form a "local" quorum is the only reliable solution I guess?