Recently I had to switch my Proxmox server which was using Linux bonds to using openvswitch. These are my notes:
Install openvswitch:
apt install openvswitch-switch
Configure openvswitch to bond interfaces and use VLANs using https://pve.proxmox.com/wiki/Open_vSwitch as an example:
allow-vmbr0 bond0
iface bond0 inet manual
ovs_bonds enp4s0f0 eno1
ovs_type OVSBond
ovs_bridge vmbr0
ovs_options bond_mode=active-backup
auto lo
iface lo inet loopback
iface eno1 inet manual
iface enp4s0f0 inet manual
allow-ovs vmbr0
iface vmbr0 inet manual
ovs_type OVSBridge
ovs_ports bond0 vlan50 vlan10
#Proxmox communication
allow-vmbr0 vlan50
iface vlan50 inet static
ovs_type OVSIntPort
ovs_bridge vmbr0
ovs_options tag=50
ovs_extra set interface ${IFACE} external-ids:iface-id=$(hostname -s)-${IFACE}-vif
address 10.0.50.2
netmask 255.255.255.0
gateway 10.0.50.1
#Storage network
allow-vmbr0 vlan10
iface vlan10 inet static
ovs_type OVSIntPort
ovs_bridge vmbr0
ovs_options tag=10
ovs_extra set interface ${IFACE} external-ids:iface-id=$(hostname -s)-${IFACE}-vif
address 192.168.10.2
netmask 255.255.255.0
List active interface:
ovs-appctl bond/show bond0
Update 3/14/2020
I realized that openvswitch won’t fail back over to the original slave once it comes back online. I couldn’t for the life of me find the equivalent of bond-primary
syntax for openvswitch; however I did find this command:
ovs-appctl list-commands
which reveals this command:
bond/set-active-slave port slave
So you can manually fallback using this command:
ovs-appctl bond/set-active-slave bond0 enp4s0f1