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

相关文章

性能测试介绍

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

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

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

阿里开源语音识别SenseVoiceWindows环境部署

SenseVoice介绍 SenseVoice 专注于高精度多语言语音识别、情感辨识和音频事件检测多语言识别: 采用超过 40 万小时数据训练,支持超过 50 种语言,识别效果上优于 Whisper 模型。富文本识别:具备优秀的情感识别,能够在测试数据上达到和超过目前最佳情感识别模型的效果。支持声音事件检测能力,支持音乐、掌声、笑声、哭声、咳嗽、喷嚏等多种常见人机交互事件进行检测。高效推

【测试】输入正确用户名和密码,点击登录没有响应的可能性原因

目录 一、前端问题 1. 界面交互问题 2. 输入数据校验问题 二、网络问题 1. 网络连接中断 2. 代理设置问题 三、后端问题 1. 服务器故障 2. 数据库问题 3. 权限问题: 四、其他问题 1. 缓存问题 2. 第三方服务问题 3. 配置问题 一、前端问题 1. 界面交互问题 登录按钮的点击事件未正确绑定,导致点击后无法触发登录操作。 页面可能存在

安装nodejs环境

本文介绍了如何通过nvm(NodeVersionManager)安装和管理Node.js及npm的不同版本,包括下载安装脚本、检查版本并安装特定版本的方法。 1、安装nvm curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash 2、查看nvm版本 nvm --version 3、安装

业务中14个需要进行A/B测试的时刻[信息图]

在本指南中,我们将全面了解有关 A/B测试 的所有内容。 我们将介绍不同类型的A/B测试,如何有效地规划和启动测试,如何评估测试是否成功,您应该关注哪些指标,多年来我们发现的常见错误等等。 什么是A/B测试? A/B测试(有时称为“分割测试”)是一种实验类型,其中您创建两种或多种内容变体——如登录页面、电子邮件或广告——并将它们显示给不同的受众群体,以查看哪一种效果最好。 本质上,A/B测

【IPV6从入门到起飞】5-1 IPV6+Home Assistant(搭建基本环境)

【IPV6从入门到起飞】5-1 IPV6+Home Assistant #搭建基本环境 1 背景2 docker下载 hass3 创建容器4 浏览器访问 hass5 手机APP远程访问hass6 更多玩法 1 背景 既然电脑可以IPV6入站,手机流量可以访问IPV6网络的服务,为什么不在电脑搭建Home Assistant(hass),来控制你的设备呢?@智能家居 @万物互联

高并发环境中保持幂等性

在高并发环境中保持幂等性是一项重要的挑战。幂等性指的是无论操作执行多少次,其效果都是相同的。确保操作的幂等性可以避免重复执行带来的副作用。以下是一些保持幂等性的常用方法: 唯一标识符: 请求唯一标识:在每次请求中引入唯一标识符(如 UUID 或者生成的唯一 ID),在处理请求时,系统可以检查这个标识符是否已经处理过,如果是,则忽略重复请求。幂等键(Idempotency Key):客户端在每次

pico2 开发环境搭建-基于ubuntu

pico2 开发环境搭建-基于ubuntu 安装编译工具链下载sdk 和example编译example 安装编译工具链 sudo apt install cmake gcc-arm-none-eabi libnewlib-arm-none-eabi libstdc++-arm-none-eabi-newlib 注意cmake的版本,需要在3.17 以上 下载sdk 和ex

pip-tools:打造可重复、可控的 Python 开发环境,解决依赖关系,让代码更稳定

在 Python 开发中,管理依赖关系是一项繁琐且容易出错的任务。手动更新依赖版本、处理冲突、确保一致性等等,都可能让开发者感到头疼。而 pip-tools 为开发者提供了一套稳定可靠的解决方案。 什么是 pip-tools? pip-tools 是一组命令行工具,旨在简化 Python 依赖关系的管理,确保项目环境的稳定性和可重复性。它主要包含两个核心工具:pip-compile 和 pip