Host1和Host2中配置虚拟机环境的操作大致相同,以下步骤默认需要在所有虚拟机都进行操作,有区别的会单独说明。
具体操作请参见《OVS流表归一化 特性指南》中“运行和验证”的“启动虚拟机”操作步骤。
1
|
sh topology_all.sh setvxlan |
1
|
ovs-vsctl show
|
不出现报错即组网成功。
1
|
ifconfig eth0 <VM IP address> up |
示例环境配置:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
Host1: VM1 192.168.1.11/24 VM2 192.168.1.12/24 VM3 192.168.1.13/24 VM4 192.168.1.14/24 VM5 192.168.1.15/24 VM6 192.168.1.16/24 VM7 192.168.1.17/24 VM8 192.168.1.18/24 Host2: VM1 192.168.1.21/24 VM2 192.168.1.22/24 VM3 192.168.1.23/24 VM4 192.168.1.24/24 VM5 192.168.1.25/24 VM6 192.168.1.26/24 VM7 192.168.1.27/24 VM8 192.168.1.28/24 |
由于配置的是VXLAN组网,主机和虚拟机的默认MTU都是1500,如果虚拟机业务数据包超过1450,通过OVS转发后,加上VXLAN头部,最终数据包会超过1500,通过物理网卡发送出去,这时候物理网卡(OVS+DPDK处理)不会分片,导致虚拟机业务流量不通。这是开源方案遗留的问题,目前解决办法是将虚拟机MTU配置为1450以下,示例环境中所有虚拟机MTU配置都为1450:
1
|
ifconfig eth0 mtu 1450 |
1 2 |
systemctl stop firewalld.service && systemctl disable firewalld.service setenforce 0 |
该操作为临时关闭SELinux,若需永久关闭,请修改配置文件“/etc/selinux/config”,配置“SELINUX=disabled”。
1
|
ifconfig br-int 192.168.1.254/24 up |
1
|
ping <任一虚拟机IP地址>
|
确认通信畅通后,可使用FTP、SCP等工具通过网络传输资源给虚拟机。
vnstat:https://github.com/vergoh/vnstat/archive/refs/tags/v2.6.zip
netperf:https://github.com/HewlettPackard/netperf/archive/refs/tags/netperf-2.7.0.zip
1
|
scp vnstat-2.6.zip root@192.168.3.2:/home |
输入虚拟机root用户密码即可将vnStat传输到虚拟机“/home”目录下。
1 2 3 4 5 6 |
cd /home unzip vnstat-2.6.zip && cd vnstat-2.6 ./configure && make && make install cd /home unzip netperf-netperf-2.7.0.zip && cd netperf-netperf-2.7.0 ./configure && make && make install |
在编译过程中需保证虚拟机里自带编译器。
1 2 3 4 5 6 7 8 9 |
pkill netserver taskset -c 0 netserver -4 -p 21101 taskset -c 1 netserver -4 -p 21102 taskset -c 2 netserver -4 -p 21103 taskset -c 3 netserver -4 -p 21104 taskset -c 0 netserver -4 -p 25101 taskset -c 1 netserver -4 -p 25102 taskset -c 2 netserver -4 -p 25103 taskset -c 3 netserver -4 -p 25104 |
1 2 3 4 5 6 7 8 9 |
pkill netperf taskset -c 0 netperf -t UDP_STREAM -H 192.168.1.21 -p 21101 -l 10000 -- -m 18 & taskset -c 1 netperf -t UDP_STREAM -H 192.168.1.22 -p 21101 -l 10000 -- -m 18 & taskset -c 2 netperf -t UDP_STREAM -H 192.168.1.23 -p 21101 -l 10000 -- -m 18 & taskset -c 3 netperf -t UDP_STREAM -H 192.168.1.24 -p 21101 -l 10000 -- -m 18 & taskset -c 0 netperf -t UDP_STREAM -H 192.168.1.25 -p 21101 -l 10000 -- -m 18 & taskset -c 1 netperf -t UDP_STREAM -H 192.168.1.26 -p 21101 -l 10000 -- -m 18 & taskset -c 2 netperf -t UDP_STREAM -H 192.168.1.27 -p 21101 -l 10000 -- -m 18 & taskset -c 3 netperf -t UDP_STREAM -H 192.168.1.28 -p 21101 -l 10000 -- -m 18 & |
VM2:同VM1,将脚本的端口都改成21102
VM3:同VM1,将脚本的端口都改成21103
VM4:同VM1,将脚本的端口都改成21104
VM5:同VM1,将脚本的端口都改成25101
VM6:同VM1,将脚本的端口都改成25102
VM7:同VM1,将脚本的端口都改成25103
VM8:同VM1,将脚本的端口都改成25104
1 2 3 4 5 6 7 8 9 |
pkill netperf taskset -c 0 netperf -t TCP_STREAM -H 192.168.1.21 -p 21101 -l 10000 & taskset -c 1 netperf -t TCP_STREAM -H 192.168.1.22 -p 21101 -l 10000 & taskset -c 2 netperf -t TCP_STREAM -H 192.168.1.23 -p 21101 -l 10000 & taskset -c 3 netperf -t TCP_STREAM -H 192.168.1.24 -p 21101 -l 10000 & taskset -c 0 netperf -t TCP_STREAM -H 192.168.1.25 -p 21101 -l 10000 & taskset -c 1 netperf -t TCP_STREAM -H 192.168.1.26 -p 21101 -l 10000 & taskset -c 2 netperf -t TCP_STREAM -H 192.168.1.27 -p 21101 -l 10000 & taskset -c 3 netperf -t TCP_STREAM -H 192.168.1.28 -p 21101 -l 10000 & |
VM2:同VM1,将脚本的端口都改成21102
VM3:同VM1,将脚本的端口都改成21103
VM4:同VM1,将脚本的端口都改成21104
VM5:同VM1,将脚本的端口都改成25101
VM6:同VM1,将脚本的端口都改成25102
VM7:同VM1,将脚本的端口都改成25103
VM8:同VM1,将脚本的端口都改成25104
1 2 3 4 5 |
pkill netperf taskset -c 0 netperf -t UDP_STREAM -H 192.168.1.21 -p 21101 -l 10000 -- -m 1 & taskset -c 1 netperf -t UDP_STREAM -H 192.168.1.21 -p 21102 -l 10000 -- -m 1 & taskset -c 2 netperf -t UDP_STREAM -H 192.168.1.21 -p 25103 -l 10000 -- -m 1 & taskset -c 3 netperf -t UDP_STREAM -H 192.168.1.21 -p 25104 -l 10000 -- -m 1 & |
VM2:同VM1,但是将IP地址改为192.168.1.22
VM3:同VM1,但是将IP地址改为192.168.1.23
VM4:同VM1,但是将IP地址改为192.168.1.24
VM5:同VM1,但是将IP地址改为192.168.1.25
VM6:同VM1,但是将IP地址改为192.168.1.26
VM7:同VM1,但是将IP地址改为192.168.1.27
VM8:同VM1,但是将IP地址改为192.168.1.28
1 2 3 4 5 |
pkill netperf taskset -c 0 netperf -t TCP_STREAM -H 192.168.1.21 -p 21101 -l 10000 & taskset -c 1 netperf -t TCP_STREAM -H 192.168.1.21 -p 21102 -l 10000 & taskset -c 2 netperf -t TCP_STREAM -H 192.168.1.21 -p 25103 -l 10000 & taskset -c 3 netperf -t TCP_STREAM -H 192.168.1.21 -p 25104 -l 10000 & |
VM2:同VM1,但是将IP地址改为192.168.1.22
VM3:同VM1,但是将IP地址改为192.168.1.23
VM4:同VM1,但是将IP地址改为192.168.1.24
VM5:同VM1,但是将IP地址改为192.168.1.25
VM6:同VM1,但是将IP地址改为192.168.1.26
VM7:同VM1,但是将IP地址改为192.168.1.27
VM8:同VM1,但是将IP地址改为192.168.1.28