本文档介绍如何将Open vSwitch与Libvirt 0.9.11或更高版本一起使用。本文档假定你遵循文档:/intro/install/general
或从发行版软件包(如.deb或.rpm)安装了Open vSwitch。Libvirt 0.9.11版本默认增加了对Open vSwitch的支持。咨询www.libvirt.org获取有关如何编译更新Libvirt的说明,如果默认情况下,Linux发行版附带一个较旧的libvirt版本。
限制
当前Open vSwitch不支持由libvirt (如:NAT)管理的网络。到目前为止,只支持桥接网络(那些用户必须手动创建的网桥)。
建立
首先,使用ovs-vsctl工具创建Open vSwitch网桥(这必须以管理权限完成):
$ ovs-vsctl add-br ovsbr
完成后,如有必要,创建一个VM,并编辑其Domain XML文件:
$ virsh edit <vm>
在Domain XML文件中查找<interface>
部分。对于虚拟机具有的每个接口,都由一个对应的此XML部分:
<interface type='network'>
<mac address='52:54:00:71:b1:b6'/>
<source network='default'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>
把它改成这样:
<interface type='bridge'>
<mac address='52:54:00:71:b1:b6'/>
<source bridge='ovsbr'/>
<virtualport type='openvswitch'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>
接口类型必须设置为bridge
。XML元素<source>
指定此接口将添加到哪个网桥。<virtualport>
元素表示<source>
元素中的网桥是一个Open vSwitch网桥。
然后(重新)启动虚拟机并验证客户端的vnet接口是否连接到ovsbr
网桥:
$ ovs-vsctl show
排错
如果VM不能启动,则尝试在终端上运行libvirtd进程,以便在控制台中打印所有错误信息,或检查Libvirt/Open vSwitch的日志文件以查找可能的根本原因。