DPDK+OVS+qemu环境测试

2024-06-17 12:18
文章标签 环境 测试 dpdk qemu ovs

本文主要是介绍DPDK+OVS+qemu环境测试,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文初步验证DPDK+OVS环境下的虚拟机交互实验

一.前提准备

PS:注意在运行本文档前,需要确保你当前运行的环境中没有开启其他dpdk相关的应用,如果运行报错,请关闭相应的应用。

其次在安装dpdk时,如果需要使用动态库,请确保dpdk的配置文件中/config/common_base

 

CONFIG_RTE_BUILD_SHARED_LIB=y

(仅需在安装的时候进行)

 

1..挂载大页(如果已经在grub中添加了自动挂载大页,则不需要做这一步)

2.在dpdk文件夹中挂载igb模式,然后绑定网卡(每次运行程序都需要做这一步)

主要的实验测试结构如下图,一台主机,两台虚拟机通过DPDK+OVS互联

 

二.配置ovs

1.清空OVS环境

 

pkill -9 ovs
rm -p /usr/local/var/run/openvswitch
rm -rf /usr/local/etc/openvswitch/
rm -f /usr/local/etc/openvswitch/conf.db
mkdir -p /usr/local/etc/openvswitch       //数据库文件夹
mkdir -p /usr/local/var/run/openvswitch  //运行文件夹

 

2.配置数据库(第一次运行)

以下这些命令(如ovsdb-tool如果ovs的环境变量配置好了,可以不需要前面的文件夹路径./ovsdb/,也无需cd $OVS_DIR,此处仅作说明)

 

cd $OVS_DIR
./ovsdb/ovsdb-tool create /usr/local/etc/openvswitch/conf.db \
./vswitchd/vswitch.ovsschema

 

3.启动ovs数据库服务(由于已经安装好ovs,所以不需要加./ovsdb/ovsdb-server)

 

ovsdb-server --remote=punix:/usr/local/var/run/openvswitch/db.sock \
--remote=db:Open_vSwitch,Open_vSwitch,manager_options  \
--pidfile –detach

 

 

 

4.启动ovs数据库(第一次运行)

 

./utilities/ovs-vsctl --no-wait init

 

 

 

5.环境变量配置

 

export DB_SOCK=/usr/local/var/run/openvswitch/db.sock
export PATH=$PATH:/usr/local/share/openvswitch/scripts

 

 

 

6.开启交换机与dpdk

 

ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-init=true
ovs-vswitchd unix:$DB_SOCK --pidfile --detach

 

三.配置网桥

1.创建一个网桥

 

ovs-vsctl add-br br0 -- set bridge br0 datapath_type=netdev

 

 

 

2.添加dpdk物理设备(如果需要连接物理外设才需要做这一步)

ovs-vsctl add-port br0 dpdk0 -- set Interface dpdk0  \
type=dpdk options:dpdk-devargs= 0000:06:00.0
ovs-vsctl add-port br0 dpdk1 -- set Interface dpdk1  \
type=dpdk options:dpdk-devargs=0000:06:00.1

注意后面的数字是网卡pci

3.添加虚拟端口

 

ovs-vsctl add-port br0 vhost-user1 -- set Interface vhost-user1type=dpdkvhostuser
ovs-vsctl add-port br0 vhost-user2 -- set Interface vhost-user2type=dpdkvhostuser

 

4.使用telnet方法启动虚拟机

启动虚拟机1

 

qemu-system-x86_64 -m 512M -smp 2 -boot c -cpu host -hda VF1.img--enable-kvm \
-chardevsocket,id=char0,path=/usr/local/var/run/openvswitch/vhost-user1 \
-netdev type=vhost-user,id=mynet1,chardev=char0,vhostforce \
-device virtio-net-pci,netdev=mynet1,mac=52:54:00:02:d9:01 \
-object memory-backend-file,id=mem,size=512M,mem-path=/dev/hugepages,share=on\
-numa node,memdev=mem -mem-prealloc \
-curses -monitor telnet:127.0.0.1:5566,server,nowait \
-net user, -net nic

 

在另一个窗口打开

 

telnet 127.0.0.1 5566
sendkey ctrl-alt-f1

 

启动虚拟机2

 

qemu-system-x86_64 -m 512M -smp 2 -boot c -cpu host -hda VF2.img--enable-kvm \
-chardev socket,id=char0,path=/usr/local/var/run/openvswitch/vhost-user2\
-netdev type=vhost-user,id=mynet1,chardev=char0,vhostforce \
-device virtio-net-pci,netdev=mynet1,mac=52:54:00:02:d9:43 \
-objectmemory-backend-file,id=mem,size=512M,mem-path=/dev/hugepages,share=on \
-numa node,memdev=mem -mem-prealloc \
-curses -monitor telnet:127.0.0.1:5555,server,nowait \
-net none 

 

在另一个窗口打开

telnet 127.0.0.1 5555
sendkey ctrl-alt-f1
5. 使用vnc命令启动虚拟机,然后远端连接虚拟机的方法为

 

qemu-system-x86_64 -m 512M -smp 2 -boot c -cpu host -hda VF2.img --enable-kvm \
-chardev socket,id=char0,path=/usr/local/var/run/openvswitch/vhost-user2 \
-netdev type=vhost-user,id=mynet1,chardev=char0,vhostforce \
-device virtio-net-pci,netdev=mynet1,mac=52:54:00:02:d9:43 \
-object memory-backend-file,id=mem,size=512M,mem-path=/dev/hugepages,share=on \
-numa node,memdev=mem -mem-prealloc \
-vnc :1 -net none
然后通过vncviewer软件输入: 210.112.13.49:5901,从远程主机上连接该虚拟机。命令解释:
该命令前半部分表示的是安装虚拟机服务器的ip地址,后半部分是5900端口号+上你配置的偏移量的值(-vnc:1)得到5901
PS:虚拟机安装过程请参考我的另外一篇文档。
图片部分来自网上,仅做说明使用,并不是实际的环境,文档中如果有问题希望大家能够指正,谢谢

 

这篇关于DPDK+OVS+qemu环境测试的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1069415

相关文章

Java中的Opencv简介与开发环境部署方法

《Java中的Opencv简介与开发环境部署方法》OpenCV是一个开源的计算机视觉和图像处理库,提供了丰富的图像处理算法和工具,它支持多种图像处理和计算机视觉算法,可以用于物体识别与跟踪、图像分割与... 目录1.Opencv简介Opencv的应用2.Java使用OpenCV进行图像操作opencv安装j

mysql-8.0.30压缩包版安装和配置MySQL环境过程

《mysql-8.0.30压缩包版安装和配置MySQL环境过程》该文章介绍了如何在Windows系统中下载、安装和配置MySQL数据库,包括下载地址、解压文件、创建和配置my.ini文件、设置环境变量... 目录压缩包安装配置下载配置环境变量下载和初始化总结压缩包安装配置下载下载地址:https://d

将Python应用部署到生产环境的小技巧分享

《将Python应用部署到生产环境的小技巧分享》文章主要讲述了在将Python应用程序部署到生产环境之前,需要进行的准备工作和最佳实践,包括心态调整、代码审查、测试覆盖率提升、配置文件优化、日志记录完... 目录部署前夜:从开发到生产的心理准备与检查清单环境搭建:打造稳固的应用运行平台自动化流水线:让部署像

gradle安装和环境配置全过程

《gradle安装和环境配置全过程》本文介绍了如何安装和配置Gradle环境,包括下载Gradle、配置环境变量、测试Gradle以及在IntelliJIDEA中配置Gradle... 目录gradle安装和环境配置1 下载GRADLE2 环境变量配置3 测试gradle4 设置gradle初始化文件5 i

Java汇编源码如何查看环境搭建

《Java汇编源码如何查看环境搭建》:本文主要介绍如何在IntelliJIDEA开发环境中搭建字节码和汇编环境,以便更好地进行代码调优和JVM学习,首先,介绍了如何配置IntelliJIDEA以方... 目录一、简介二、在IDEA开发环境中搭建汇编环境2.1 在IDEA中搭建字节码查看环境2.1.1 搭建步

如何测试计算机的内存是否存在问题? 判断电脑内存故障的多种方法

《如何测试计算机的内存是否存在问题?判断电脑内存故障的多种方法》内存是电脑中非常重要的组件之一,如果内存出现故障,可能会导致电脑出现各种问题,如蓝屏、死机、程序崩溃等,如何判断内存是否出现故障呢?下... 如果你的电脑是崩溃、冻结还是不稳定,那么它的内存可能有问题。要进行检查,你可以使用Windows 11

在 VSCode 中配置 C++ 开发环境的详细教程

《在VSCode中配置C++开发环境的详细教程》本文详细介绍了如何在VisualStudioCode(VSCode)中配置C++开发环境,包括安装必要的工具、配置编译器、设置调试环境等步骤,通... 目录如何在 VSCode 中配置 C++ 开发环境:详细教程1. 什么是 VSCode?2. 安装 VSCo

鸿蒙开发搭建flutter适配的开发环境

《鸿蒙开发搭建flutter适配的开发环境》文章详细介绍了在Windows系统上如何创建和运行鸿蒙Flutter项目,包括使用flutterdoctor检测环境、创建项目、编译HAP包以及在真机上运... 目录环境搭建创建运行项目打包项目总结环境搭建1.安装 DevEco Studio NEXT IDE

性能测试介绍

性能测试是一种测试方法,旨在评估系统、应用程序或组件在现实场景中的性能表现和可靠性。它通常用于衡量系统在不同负载条件下的响应时间、吞吐量、资源利用率、稳定性和可扩展性等关键指标。 为什么要进行性能测试 通过性能测试,可以确定系统是否能够满足预期的性能要求,找出性能瓶颈和潜在的问题,并进行优化和调整。 发现性能瓶颈:性能测试可以帮助发现系统的性能瓶颈,即系统在高负载或高并发情况下可能出现的问题

字节面试 | 如何测试RocketMQ、RocketMQ?

字节面试:RocketMQ是怎么测试的呢? 答: 首先保证消息的消费正确、设计逆向用例,在验证消息内容为空等情况时的消费正确性; 推送大批量MQ,通过Admin控制台查看MQ消费的情况,是否出现消费假死、TPS是否正常等等问题。(上述都是临场发挥,但是RocketMQ真正的测试点,还真的需要探讨) 01 先了解RocketMQ 作为测试也是要简单了解RocketMQ。简单来说,就是一个分