RHEV upgrade saga: RHEL KVM and the Open vSwitch

By  

# ovs-vsctl add-br ovsbr0
# ovs-vsctl add-bond ovsbr0 bond0 eth0 eth2 lacp=active # only needed for bonding
# ovs-vsctl add-port ovsbr0 mgmt0
# set interface mgmt0 type=internal

Before we go any further, we need to bring down the old interfaces, otherwise our changes to the configuration files will force a reboot. Since we are working with the existing Linux bond0 device and mapping that into the openvswitch, we should disable that bond0 device as follows.

Bonded:
	# ifdown bond0

Unbonded:
	# ifdown eth0

However, this is far from complete, we need to modify the ifcfg configurations within /etc/sysconfig/network-scripts to make all the networks come back on reboot. So the config scripts look like the following depending if we are using bonding or not:

Then we have to specify the bridge itself as a OVSBridge type.

ifcfg-ovsbr0
            DEVICE=ovsbr0
            ONBOOT=yes
            DEVICETYPE=ovs
            TYPE=OVSBridge
            HOTPLUG=no
            USERCTL=no

Finally we have to specify a new device to bring up to put the KVM node itself onto the openvswitch. In this case, we define it as type OVSPort and specify that it is part of the OVS_BRIDGE named ovsbr0. We give it the ip address assigned to the machine and the proper netmask.

ifcfg-mgmt0
            DEVICE=mgmt0
            ONBOOT=yes
            DEVICETYPE=ovs
            TYPE=OVSIntPort
            OVS_BRIDGE=ovsbr0
            USERCTL=no
            BOOTPROTO=none
            HOTPLUG=no

            IPADDR=A.B.C.D
            NETMASK=255.255.255.192

Finally, we set a default route for A.0.0.0/8 traffic that may be different than traffic going to the outside world.

route-mgmt0
            route add A.0.0.0/8 via W.X.Y.Z

Now the process is repeated for the next bonded network, which means we created two openvswitches. You can either reboot the server to make sure everything comes up properly and you have an alternative way into the machine (perhaps an ILO, DRAC, or IPMI mechanism) or you can shutdown the network and restart the network and the openvswitch constructs. I tested this by restarting the openvswitch and bringing up the mgmt0 network using normal means. I ran the following command with the following output and my openvswitches were created and all was working as expected.

Join us:
Facebook

Twitter

Pinterest

Tumblr

LinkedIn

Google+

Answers - Powered by ITworld

ITworld Answers helps you solve problems and share expertise. Ask a question or take a crack at answering the new questions below.

Join us:
Facebook

Twitter

Pinterest

Tumblr

LinkedIn

Google+

Ask a Question
randomness