What connecting two Proxmox servers means

Connecting two Proxmox servers creates a cluster — a group of machines that share resources and let you move virtual machines between them without shutting them down. Once clustered, you manage both servers from a single web interface instead of logging into each one separately. The servers stay in constant contact, so if one fails, the other can take over running its virtual machines.

This is different from simply networking two standalone servers. A cluster requires specific setup steps, shared storage configuration, and ongoing synchronization between the machines. The process takes 30 minutes to an hour if both servers are already installed and on the same network.

Key Takeaways

  • Both servers must run the same Proxmox version, be on the same network, and have static IP addresses before you begin clustering.
  • You create the cluster on the first server, then join the second server to it using a join token that expires after 60 minutes.
  • The cluster needs shared storage — either a NAS, SAN, or iSCSI target — so both servers can access the same virtual machine files.
  • After joining, both servers appear in the same web interface under the Cluster menu, and you can live-migrate virtual machines between them.

Before you start: network and version requirements

Both Proxmox servers must be running the same major version — for example, both on Proxmox 7.x or both on 8.x. Check the version on each server by logging into the web interface and looking at the top-left corner. If one is on version 7 and the other on version 8, you must upgrade the older one first.

Each server needs a static IP address on the same network. If your servers are using DHCP (automatic IP assignment), their addresses can change, which breaks cluster communication. Log into each server's web interface, go to System > Network, and set a static IP. Write down both IP addresses — you will need them during clustering.

The servers must be able to reach each other on ports 85, 3121, and 5404-5405. If you have a firewall between them, open those ports. If both servers are on the same local network with no firewall, this is usually already working.

Create the cluster on your first server

Log into the web interface of the server you want to be the cluster's starting point. Go to Cluster in the left menu. If you see a message saying "No cluster defined", click Create Cluster.

A dialog box appears asking for a cluster name. Use something simple like "proxmox-cluster" or "production-cluster" — this name is only for your reference. Leave the other fields at their defaults and click Create. The server will restart its cluster services, which takes about 30 seconds. The page will briefly show a loading spinner, then return to normal.

Once the cluster is created, you will see a new section called "Cluster" in the left menu with options for Nodes, Resources, and Status. The first server now shows as a single node in the cluster.

Generate a join token on the first server

While still in the Cluster menu on the first server, click Nodes. You will see the first server listed. At the top right of the page, click the Join Information button.

A dialog box displays a long text string — this is your join token. Copy the entire token to a text editor or notepad. This token lets the second server authenticate itself to the cluster. The token expires after 60 minutes, so if you take longer than that to join the second server, you will need to generate a new one.

Join the second server to the cluster

Log into the web interface of the second Proxmox server. Go to Cluster in the left menu. You will see the same "No cluster defined" message. Click Join Cluster.

A dialog box appears with two fields: Cluster Name and Join Token. Paste the token you copied from the first server into the Join Token field. The Cluster Name should auto-fill with the name you created on the first server. Click Join.

The second server will restart its cluster services and synchronize with the first. This takes one to two minutes. You will see a loading spinner, and the page may briefly disconnect. Wait for it to reload automatically. Once it finishes, the Cluster menu will show both servers listed under Nodes.

Set up shared storage for virtual machines

A cluster without shared storage is incomplete. Each server can only run virtual machines stored on its own local disks, which defeats the purpose of clustering. To move virtual machines between servers, both must be able to read and write the same storage.

The most common options are a NAS (Network Attached Storage) running NFS, a SAN (Storage Area Network) with iSCSI, or a Ceph cluster. For small setups, an NFS share on a NAS is the simplest. Go to Datacenter > Storage in the web interface, click Add, and select NFS. Enter the NAS IP address, the export path, and a storage name. Both servers will now see the same virtual machine files.

If you do not have shared storage yet, the cluster will still work for managing both servers from one interface, but you cannot live-migrate virtual machines between them. You can only move them by exporting from one server and importing to the other, which requires downtime.

Verify the cluster is working

Go to Cluster > Status on either server's web interface. You should see both nodes listed with a green checkmark next to each one. If either shows red or yellow, click on it to see what the problem is — usually it is a network connectivity issue or a version mismatch.

Try creating a test virtual machine on the first server and storing it on the shared storage. Then go to the second server's web interface and check that you can see the same virtual machine in the VM list. If it appears on both servers, your cluster is working correctly.

If you have virtual machines already running on either server, they will continue to run on their current node. You can move them to the other node later using live migration, which does not require downtime.

Frequently Asked Questions

What happens if one server in the cluster goes down?

The other server keeps running and can still manage virtual machines on its own storage. If the downed server had virtual machines on shared storage, you can manually start them on the remaining server. Proxmox does not automatically restart virtual machines on another node unless you set up high availability, which is a separate configuration.

Can I cluster servers on different networks?

Technically yes, but it is not recommended. Cluster communication relies on low-latency, reliable connections. If servers are across the internet or on different subnets with high latency, the cluster may become unstable or split into separate partitions. Keep clustered servers on the same local network.

What if I lose the join token before the second server joins?

Generate a new one. Log into the first server, go to Cluster > Nodes, click Join Information again, and copy the new token. The old token becomes invalid. You have 60 minutes from generation to use it.

Do I need to shut down virtual machines before clustering?

No. Clustering the servers themselves does not affect running virtual machines. They keep running on their current node. You only need to shut down a virtual machine if you want to move it to another node using live migration, and even then, live migration does not require a shutdown.

Can I remove a server from the cluster later?

Yes. Go to Cluster > Nodes on either server, right-click the node you want to remove, and select Remove. The server will leave the cluster but keep running as a standalone Proxmox installation. Any virtual machines on its local storage remain on that server.