To be a better coder
分类: LINUX
2019-08-20 16:05:02
vhost-user在Open vSwitch中的端口类型为dpdkvhostuser,该模式下Open vSwitch作为server端,QEMU作为client端,使用该类型端口时,要求QEMU版本必须>=2.2。
该模式下vHost端口不具备‘reconnect’能力。当Open
vSwitch服务异常后,QEMU作为client端能感知到该异常并将端口状态置为down,但当Open
vSwitch服务恢复后,QEMU作为client端不会自动重新连接server,导致虚拟机网络无法自动恢复。
vhost-user-client在Open vSwitch中的端口类型dpdkvhostuserclient,该模式下Open vSwitch作为client端,QEMU作为server端,使用该类型端口时,要求QEMU版本必须>=2.7。
该模式下vHost端口具备‘reconnect’能力。使用该类型端口创建虚拟机时,QEMU会等端口创建成功,client连接上后启动虚拟机,在Open
vSwitch服务出现异常或被停止后,QEMU会将端口状态置为down,当Open
vSwitch服务恢复正常后,client会重新连接server,触发QEMU重新将端口状态置为up。
· 虚拟机中使用DPDK testpmd的MAC-forwarding
· OvS-DPDK版本: Commit f56f0b73b67226a18f97be2198c0952dad534f1c
· DPDK版本:17.02
· GCC/GLIBC版本:6.2.1/2.23
· Linux:4.7.5-200.fc24.x86_64
· CPU:Intel? Xeon? CPU E5-2699 v3 @ 2.30GHz
OvS-DPDK编译和启动命令如下:
make ‘CFLAGS=-g -Ofast -march=native’
./ovs-vsctl –no-wait set Open_vSwitch . other_config:dpdk-init=true
./ovs-vsctl –no-wait set Open_vSwitch . other_config:dpdk-socket-mem=”1024,1024″
./ovs-vsctl add-br ovsbr0 — set bridge ovsbr0 datapath_type=netdev
./ovs-vsctl add-port ovsbr0 vhost-user1 — set Interface vhost-user1 type=dpdkvhostuser
./ovs-vsctl add-port ovsbr0 dpdk0 — set Interface dpdk0 type=dpdk options:dpdk-devargs=0000:06:00.0
./ovs-vsctl set Open_vSwitch . other_config:pmd-cpu-mask=0x10000
./ovs-ofctl del-flows ovsbr0
./ovs-ofctl add-flow ovsbr0 in_port=1,action=output:2
./ovs-ofctl add-flow ovsbr0 in_port=2,action=output:1
虚拟机中使用DPDK testpmd进行转发,命令如下:
set fwd mac
start
libvirt 虚机xml修改巨页,numa,共享
<hugepages> <page size="2" unit="M"/> hugepages>