更新时间:2021-08-26 GMT+08:00
分享

配置虚拟机环境

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

  1. 修改虚拟机配置文件。

    具体操作请参见《OVS流表归一化 特性指南》中“运行和验证”的步骤7。

  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. 主机和虚拟机通信。

    1. 在主机上给OVS的br-int网桥配置一个虚拟机同网段的IP地址。
      1
      ifconfig br-int 192.168.1.254/24 up
      
    2. 验证通信情况。
      1
      ping <任一虚拟机IP地址>
      

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

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

    1. 在主机上下载vnStat-2.6和Netperf-2.7.0。

      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

    2. 将主机的vnStat传输到虚拟机。
      1
      scp vnstat-2.6.zip root@192.168.3.2:/home
      

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

    3. 使用同样方法将Netperf传输到虚拟机。
    4. 在虚拟机内解压编译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. 准备虚拟机测试脚本。

    1. 准备接收端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
      
    1. 分场景准备发送端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

分享:

    相关文档

    相关产品

关闭导读