1、libvirt创建虚拟机
使用linux默认网桥virbr0
<interface type='network'>
<mac address='52:54:00:bb:49:d6'/>
<source network='default'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>
使用ovs中的网桥,并添加接口
#ovs-vsctl add-br ovsbr
<interface type='bridge'>
<mac address='52:54:00:bb:49:d6'/>
<source bridge='ovsbr'/>
<virtualport type='openvswitch'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>
2、ovs+dpdk vhost-user
ovs作为服务端,vm作为客户端
ovs创建:
$ ovs-vsctl add-port br0 vhost-user-1 -- set Interface vhost-user-1 type=dpdkvhostuser
创建一个socket :/usr/local/var/run/openvswitch/vhost-user-1
vm引用:
-chardev socket,id=char1,path=/usr/local/var/run/openvswitch/vhost-user-1 -netdev type=vhost-user,id=mynet1,chardev=char1,vhostforce -device virtio-net-pci,mac=00:00:00:00:00:01,netdev=mynet1
内存使用:
-object memory-backend-file,id=mem,size=2048M,mem-path=/dev/hugepages,share=on -numa node,memdev=mem -mem-prealloc
libvirt xml
<interface type='vhostuser'> <mac address='00:00:00:00:00:01'/> <source type='unix' path='/usr/local/var/run/openvswitch/vhost-user-1' mode='client'/> <model type='virtio'/> <driver queues='2'> <host mrg_rxbuf='on'/> </driver> </interface>
3、ovs+dpdk vhost-user-client
ovs引用:
$ VHOST_USER_SOCKET_PATH=/path/to/socket
$ ovs-vsctl add-port br0 vhost-client-1 -- set Interface vhost-client-1 type=dpdkvhostuserclient \
options:vhost-server-path=$VHOST_USER_SOCKET_PATH
vm创建:
-chardev socket,id=char1,path=$VHOST_USER_SOCKET_PATH,server -netdev type=vhost-user,id=mynet1,chardev=char1,vhostforce -device virtio-net-pci,mac=00:00:00:00:00:01,netdev=mynet1
libvirt xml
<interface type='vhostuser'> <mac address='00:00:00:00:00:01'/> <source type='unix' path='/path/to/socket' mode='server'/> <model type='virtio'/> <driver queues='2'> <host mrg_rxbuf='on'/> </driver> </interface>