Oracle VM and network bonding
Oracle VM, out of the box, does not allow network bonds. An excellent guide on how to enable bonding which I have partially followed, has convinced me that changing the relevant scripts would be better. That I have done, and reported in this wiki post.
To sum things up – configure bonding/VLAN tagging as you would have normally do on any RHEL-based Linux distro, and replace the script /etc/xen/scripts/network-bridges with the modified one mentioned below. This script will define bridge for each network interface node already defined as bridge, or slave of a bond connection, as part of the xend service.
#!/bin/bash
#
# Runs network-bridge against each ethernet card.
#
dir=$(dirname "$0")
run_all_ethernets()
{
devnum=0
for f in /sys/class/net/*; do
netdev=$(basename $f)
if [[ $netdev =~ "^bond[0-9.]+$" ]] || [[ $netdev =~ "^eth[0-9.]+$" ]]; then
# devnum=${netdev:3}
unset SLAVE MASTER BRIDGE
. /etc/sysconfig/network-scripts/ifcfg-${netdev}
if [[ `echo $SLAVE | egrep "yes|YES|1"` ]] || [[ -n "$BRIDGE" ]] ;then
echo "Interface ${netdev} is being defined and claimed by someone else"
else
if [[ $netdev =~ "^((eth)|(bond))[0-9]+." ]]; then
# This is vlan tagging, and we want persistent vlan name!
VLAN=$(echo $netdev | cut -f2 -d.)
# Assume tags are unique on a server - no several bridges for a single tag.
# If you intend on having eth2.3 and eth3.3 to your vms as bridges (and not deal with it
# on the host level), this script is not for you
$dir/network-bridge "$@" "netdev=${netdev}" "bridge=xenbrv${VLAN}"
else
$dir/network-bridge "$@" "netdev=${netdev}" "bridge=xenbr${devnum}"
let devnum++
fi
fi
fi
done
}
run_all_ethernets "$@"

One Comment