---
title: 配置虚拟机环境
description: "Host1和Host2中配置虚拟机环境的操作大致相同，以下步骤默认需要在所有虚拟机都进行操作，有区别的会单独说明。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengcpfs/testguide/tstg/kunpengcpfsovs_11_0012.html
sourcePath: /source/zh/kunpengcpfs/testguide/tstg/kunpengcpfsovs_11_0012.html
indexId: 77d7fda6caf29e370ba92e3bb42c3144b3d108105fee5dd86df78ab5fa8ea0ac65
---
# 配置虚拟机环境

Host1和Host2中配置虚拟机环境的操作大致相同，以下步骤默认需要在所有虚拟机都进行操作，有区别的会单独说明。

1. 修改虚拟机配置文件。
  具体操作请参见《OVS流表归一化 特性指南》中“运行和验证(https://www.hikunpeng.com/document/detail/zh/kunpengboostkithistory/2300/virtl/kunpengovsdpdk_04_0007.html)”的“启动虚拟机”操作步骤。

2. 配置组网。
  Host1和Host2均执行： 1 sh topology_all.sh setvxlan

3. 验证组网。
  1 ovs-vsctl show

  不出现报错即组网成功。

4. 配置虚拟机IP地址。
  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

5. 关闭虚拟机防火墙和SELinux。
  1 2 systemctl stop firewalld.service && systemctl disable firewalld.service setenforce 0

  该操作为临时关闭SELinux，若需永久关闭，请修改配置文件“/etc/selinux/config”，配置“SELINUX=disabled”。

6. 主机和虚拟机通信。

  a. 在主机上给OVS的br-int网桥配置一个虚拟机同网段的IP地址。
    1 ifconfig br-int 192.168.1.254/24 up

    验证通信情况。 1 ping <任一虚拟机IP地址>

    确认通信畅通后，可使用FTP、SCP等工具通过网络传输资源给虚拟机。

7. 在虚拟机上安装测试工具。

  a. 在主机上下载    vnStat-2.6(https://github.com/vergoh/vnstat/archive/refs/tags/v2.6.zip)
和    Netperf-2.7.0(https://github.com/HewlettPackard/netperf/archive/refs/tags/netperf-2.7.0.zip)
。
  b. 将主机的vnStat传输到虚拟机。
    1 scp vnstat-2.6.zip root@192.168.3.2:/home

    输入虚拟机root用户密码即可将vnStat传输到虚拟机“/home”目录下。

  c. 使用同样方法将Netperf传输到虚拟机。
  d. 在虚拟机内解压编译vnStat和Netperf。
    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

    在编译过程中需保证虚拟机里自带编译器。

8. 准备虚拟机测试脚本。

  a. 准备接收端Host2的虚拟机脚本，所有虚拟机使用的同样的脚本。（示例虚拟机中，脚本被命名为run.sh。）
    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


  b. 分场景准备发送端Host1的虚拟机脚本。

    - 软卸载包率测试脚本（示例环境中，脚本被命名为run_8VM.sh）
      VM1：

      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

      taskset -c 0 指明CPU亲和性。 -t UDP_STREAM指明使用UDP打流。 -H 192.168.1.21指定对端IP地址。 -p 21101指定端口。 -l 10000指定时长，单位秒。 -m 1指明包长，单位byte，数据包不足64B会自动填充成64B。

    - 软卸载带宽测试脚本（示例环境中，该脚本被命名为bw_8VM.sh）
      VM1：

      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

    - 开源包率测试脚本（示例环境中，脚本被命名为run_3_4VM.sh）
      VM1：

      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

    - 开源带宽测试脚本（示例环境中，脚本被命名为bw_3_4VM.sh）
      VM1：

      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
