I love Proxmox VE and I love clustering Proxmox VE. What lead me down this journey was that I built a quick and dirty cluster, but because it was built quick and dirty, it lacks proper connections between each node. Each node only has a 1 Gbps copper link, and, well, it’s not great. It accomplishes the goal of a cluster, but things like HA, moving VMs for host maintenance, etc. are too much of a pain. Granted, local storage will always move slower than shared, and this is also without Ceph.
Building a Better Cluster – For Cheap
Normally, a cluster will be like a star topology – every node links to a switch at the center. This is great, but it requires having a switch. While I would like to have a switch, space and power are at a premium. So what is the solution? A fully redundant mesh network!
This is what we are going to be building:

As you can see, Node 1 is linked to Node 2 and Node 3, Node 2 is linked to Node 3. If any link is cut (or just unplugged), there is a redundant path. I’m using some 2x 10 gigabit SFP+ cards in each of the servers, some 10 gigabit SFP+ SR fiber transceivers from FS.com, and 3x OM4 50/150 Multimode 1.5 meter fiber cable.
Proxmox VE Setup
In Proxmox VE, we need to create a Linux Bond interface on each of the servers. The slave ports will be the interfaces of your SFP+ card, which for me is enp129s0f0 and enp129s0f1. You will need to set the mode to broadcast and then set an IPv4 and CIDR for the network. Do not set a gateway.

Once you do this, you can then create your cluster and use your bond interface IP for the cluster. Don’t forget to go to Datacenter > Options and set Migration Settings to use your cluster network.
And there you have it! A cluster without a switch!
Keep in mind that this does not scale well. Also remember that local storage will take awhile to migrate! You can use Ceph in this setup which will work better. Good luck!