
On 07/12/2013 06:30 PM, Daniel Veillard wrote:
On Fri, Jul 12, 2013 at 05:51:14PM +0530, Kashyap Chamarthy wrote:
Heya Laine,
Here's some quick notes to associate libvirt guests to Open vSwitch.
Configure Open vSwitch ----------------------
Now that a regular Linux bridge is configured, let's try to configure an OVS brdige and get IP addresses from that space:
Create an Open vSwitch bridge device called 'ovsbr', and display the current state of OpenvSwitch database contents:
$ ovs-vsctl add-br ovsbr $ ovs-vsctl show
Add a virtual ethernet interface called 'veth0' with
$ ip link add name veth0 \ type veth peer name veth1
Add 'veth0' ethernet device to the Linux bridge 'br0', and enumerate all bridge devices:
$ brctl addif br0 veth0 $ brctl show
Now, associate virtual ethernet device 'veth1' to the OVS bridge, and display the current state of OpenvSwitch database contents
$ ovs-vsctl add-port ovsbr veth1 $ ovs-vsctl show
Bring up both the virtual ethernet interfaces 'veth0' and 'veth1'
$ ip link set veth0 up && \ ip link set veth1 up
Update libvirt guest's bridge source to OVS -------------------------------------------
Install a minimal Fedora guest with Oz (or any other mechanism):
$ wget \ https://github.com/kashyapc/virt-scripts/blob/master/oz/oz-jeos.bash $ ./oz-jeos f19-min f19
Once install is finished, define the guest XML from the current dir:
$ virsh define f19-minJul_12_2013-12
Now let's edit libvirt's guest XML file to reflect its bridge source is OVS bridge:
$ virsh edit f19-min
The contents of the guest XML should reflect something along the below lines:
$ virsh dumpxml f19-min | grep bridge -A8 <interface type='bridge'> <mac address='52:54:00:a6:08:70'/> <source bridge='ovsbr'/> <virtualport type='openvswitch'> <parameters interfaceid='ecdff22d-ce80-4ae7-a008-42994415084e'/> </virtualport> <target dev='vnet2'/> <model type='virtio'/> <alias name='net0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> </interface>
Start the guest, and check the IP of it:
$ virsh start f19-jeos --console $ ifconfig eth0
Please note, this is just a simple test, I haven't done any further experiments with VLAN tagging, etc.
Slightly verbose notes:
http://kashyapc.fedorapeople.org/virt/openvswitch-and-libvirt-kvm.txt
Cool !
It would be good if we could get that on some permanent web page on libvirt.org :-)
Sure. Will submit a doc patch once I'm done with experimenting a bit with other use-cases like pure OVS bridging, etc. -- /kashyap