While working with Oracle VM one thing we stumbled across was that it always created a bond interface for management purposes. While it is perfectly fine to have a bond interface for failover reasons – the interface created is per default in Active Backup mode and cannot be modified according to the documentation. Now in Active Backup mode one interface is basically wasted (because only one interface is used at a time). OVM does offer two other modes though: Dynamic Link Aggregation and Adaptive Load Balancing.
Since we got LACP capable network infrastructure we wanted to use Dynamic Link Aggregation instead of Active Backup but OVM doesn’t offer a way to change the mode of the bond0 interface. That said, this is only true for the web interface. When SSH into the OVM server itself (the actual server where you want to change the bond, not the manager server) you can change the mode of the bond. This is the way we chose.
When doing this you should make sure that there are no virtual machines running on that box at the moment, because it might lead to a reboot (if it doesn’t you want to reboot anyways). Now when connected via SSH you simply execute the following command:
/etc/xen/scripts/ovs-bond-mode bondm=bond0 bondmode=4
This will change the config files for that interface and reconfigure the interface. In 2 out of 3 servers this lead to an instant reboot of the machine. On the one that didn’t reboot the interface came back up right away and was now in Dynamic Link Aggregation mode. The web interface however still showed Active Backup mode but after a reboot it showed the correct mode (that is why you want to reboot anyways). The servers which rebooted instantly came up with the interface in the right mode and the web interface showed the right mode too.
From now on when provisioning new OVM servers this is the very first thing we execute on every server.
UPDATE 2013-06-17 Bjoern Rost: The script does not exist anymore in Version 3.2 of OVM but changing the bond mode is now possible through the OVM manager GUI. It still leads to a reboot everytime I tried (and did not warn you) but other than that it works and looks much more like a supported action than the old way of calling the script directly.