3

I'm setting up a quite simple 3 host Proxmox (Debian) HA cluster. All VMs should be in the same subnet and when one fails over to another host inside the VM no reconfiguration should be required and connectivity to all VMs on the remaining hosts should remain.

I can achieve this fairly easy with OpenVSwitch GRE tunnels on a OVS bridge which all VMs use in a mesh topology like this:

ovs-vsctl add-br vmbr1
ip addr add 10.0.10.110/24 dev vmbr1
ovs-vsctl add-port vmbr1 gre0 -- set interface gre0 type=gre options:remote_ip=1.1.1.1
ovs-vsctl add-port vmbr1 gre1 -- set interface gre1 type=gre options:remote_ip=2.2.2.2

Where 1.1.1.1 and 2.2.2.2 would be the external IPs of the two other hosts and 10.0.10.110/24 this hosts IP in the subnet intended for the VMs. Obviously I have to repeat this with corresponding parameters on the two other host.

The problem now is that I get a loop and therefore fully unfunctional network on vmbr1. Looking at http://docs.openvswitch.org/en/latest/faq/issues/ I can fix the loop by adding

ovs-vsctl set bridge vmbr1 stp_enable=true

to the mix. This works but for some reason I now always have two hosts (seemingly random which two exactly) which don't connect directly but use the third host as intermediate.

This results in twice the latency for those two and unnecessary traffic for host 3 which is the intermediate. So I would like to fix that but so far haven't found a way to do it. I have read that using OpenFlow in some way could help but haven't found a clue how. Is there any way to get a real mesh network here?

Jey DWork
  • 187
  • 1
  • 3
  • 11

1 Answers1

1

I suggest you to try it with some SDN controller. Maybe you can use ONOS or Open Day Light. Or if you want to some flexible exploration you can use Ryu controller, here is some Ryu controller with web GUI https://github.com/dektiram/SDNColdBrew

dek.tiram
  • 91
  • 3