KVM Pass-through 上部署 MiniSMB HurricaneII

免费网络测试,是一款专门用于测试无线控制器, 智能路由器,网络交换机的性能和稳定性的软硬件相结合的工具。可以通过此工具在以太网上测试网络发包、网络压力测试任何ip网络设备的端口吞吐率,带宽等网络性能测试,并发连接数和最大连接数等诸多参数指标。

与软件Iperf,netperf, dpdk trafficgen相比较,MiniSMB属于专业硬件网络发包测试仪, 具备精准测试速率,高吞吐率,可模拟千万级连接数等特点。

本文主要介绍MiniSMB HurricaneII如何部署在KVM Pass-through

KVM 介绍

KVM 是 Kernel-based Virtual Machine 的简称,是一个开源的系统虚拟化模块,自 Linux

2.6.20 之后集成在 Linux 的各个主要发行版本中。它使用 Linux 自身的调度器进行管理。

KVM 目前已成为学术界的主流 VMM 之一。

KVM 的虚拟化需要硬件支持(如 Intel VT 技术或 AMD V 技术)。是基于硬件的完全虚拟

化。

所谓 Pass-through 技术是指可以将 PCI/PCIe 设备绕过虚拟机平台直接分配给虚拟机使用

下文是将 minismb HurricaneII 部署到 Pass-through 模式 KVM 的部署方法

宿主机:

CPU :Intel(R) Core(TM) i7-6800K CPU @ 3.40GHz 6核

系统: Fedora-Workstation-Live-x86_64-33-1.2

网卡:一对 Intel 82576 网卡

主要内容

  1. 安装 KVM 前准备

11.验证 cpu 是否支持 KVM

命令:cat /proc/cpuinfo | egrep 'vmx|svm'

效果:



一般情况下,出现关键词vmx表示支持;

12.在 BIOS 中开机虚拟化功能

方法:开启按 delete 键进入 BIOS 中--用键盘方向键选中“Advanced”菜单--选中“Intel Virtual Technology”—切换“Enabled”开启

(因每台机器BIOS界面差异,开启虚拟化功能的具体位置会不同)

13.关闭 SELinux

命令:vi /etc/sysconfig/selinux

效果:

将SELINUX=disabled 即可, 然后务必重启机器

  1. 安装 KVM

    2.1 安装 KVM 包

    命令:sudo dnf -y install bridge-utils libvirt virt-install qemu-kvm

    2.2 安装 KVM 虚拟机工具

    命令:sudo dnf -y install virt-top libguestfs-tools

    命令:sudo dnf -y install virt-manager

    说明:

    libvirt:必须要装的核心工具

    bridge-utils:虚拟机与外界通信的命令管理工具

    virt-install:虚拟机安装工具

    virt-manager:虚拟机图形管理工具(宿主机有桌面环境时可以考虑安装,命令操作或者远

    程控制则不需要)

2.3 重启宿主机,加载 KVM 相关模块

命令:reboot

2.4 查看 KVM 模块是否被正确加载

命令:lsmod | grep kvm

出现以下信息则表示正确加载。

2.5 开启 KVM 服务,并设置开机启动

命令:systemctl start libvirtd.service(开启)

命令:systemctl enable libvirtd.service(开机启动)

第 7 页第 8 页

2.6 查看操作结果,出现 Active:active(running)字样则说明运行情况良好

命令:systemctl status libvirtd(启动状态)

命令:systemctl is-enabled libvirtd(是否开机自动启动)

效果:



  1. 网桥搭建

    运行以下脚本创建网桥Br0, 注意 “BR_INTERFACE=enp5s0”要修改成管理网口的接口名字.在本例中使用 enp5s0
# make up a bridge name, I like br0
export BR_NAME=br0 # this will vary depending on the mobo/eth card. see `ip addr` to find device name
export BR_INTERFACE=enp5s0 # Get our device UUID
BR_INT_OG_UUID=$(nmcli -g GENERAL.CON-UUID device show "${BR_INTERFACE}") # Create bridge
nmcli connection add type bridge autoconnect yes con-name "${BR_NAME}" ifname "${BR_NAME}" # Disable STP
nmcli connection modify "${BR_NAME}" bridge.stp no # Add our interface to our bridge
nmcli connection add type bridge-slave autoconnect yes con-name ${BR_INTERFACE} ifname ${BR_INTERFACE} master ${BR_NAME} # Turn off our old interface
nmcli con down "${BR_INTERFACE}" # Turn on our new bridge
nmcli con up "${BR_NAME}" # delete our old interface config
nmcli con delete "${BR_INT_OG_UUID}"
  1. 启用 PCI Pass-through

    4.1 开启intel_iommu

    编辑文件/etc/default/grub 添加 intel_iommu=on 参数

    效果:

4.2 更新 GRUB

命令:grub2-mkconfig -o /etc/grub2.cfg

重启: reboot

5. PCI 网卡分离

5.1 查找PCI设备ID

命令:lspci -nn | grep -i ethernet

效果:



注:上图 06:00.0 中 06 是 PCI bus number;00 是 PCI device number;0 是 Function number

5.2 分离PCI 网卡

命令:virsh nodedev-detach pci_0000_06_00_0 virsh nodedev-detach pci_0000_06_00_1

效果:

6.配置 KVM

命令:virt-manager 打开虚拟系统管理器图形化界面

6.1 添加存储池

选中QEMU/KVM 在Edit下 打开 Connection Details







找到我们提前准备好的镜像文件 minismb-rel-v2.0.img 点击右上角open;



6.2 创建虚拟机













6.3 添加PassThrough网卡

把从宿主机上分离出来的 PCI 网卡添加到虚拟机上来





MiniSMB成功运行

KVM Pass-through 上部署 MiniSMB HurricaneII的更多相关文章

  1. 在 CentOS7 上部署 zookeeper 服务

    在 CentOS7 上部署 zookeeper 服务 1 用 SecureCRT 或 XShell 等 Linux 客户端工具连接至 CentOS7 服务器: 2 进入到 /usr/local/too ...

  2. 在阿里云ECS CentOS7上部署基于MongoDB+Node.js的博客

    前言:这是一篇教你如何在阿里云的ECS CentOS 7服务器上搭建一个个人博客的教程,教程比较基础,笔者尽可能比较详细的把每一步都罗列下来,包括所需软件的下载安装和域名的绑定,笔者在此之前对Linu ...

  3. OpenStack-Ocata版+CentOS7.6 云平台环境搭建 — 5.在控制节点上部署计算服务Nova

    计算服务Nova使用OpenStack Compute来托管和管理云计算系统. OpenStack Compute是基础架构即服务(IaaS)系统的主要部分. 主要模块用Python实现.OpenSt ...

  4. Nginx + FastCGI + Django在windows上部署及nginx常用命令

    一般应用都是部署在linux系统上,不会在windows上部署,emmm..所以有兴趣的就瞧瞧吧哈哈 nginx工作原理: nginx用于处理静态文件,动态部分经由fastcgi .scgi或uWSG ...

  5. 在CentOS上部署kubernetes1.9.0集群

    原文链接: https://jimmysong.io/kubernetes-handbook/cloud-native/play-with-kubernetes.html (在CentOS上部署kub ...

  6. fedora上部署ASP.NET——(卡带式电脑跑.NET WEB服务器)

    andrew,20130601,guilin 本文记录在树莓派(fedora)上部署ASP.NET MVC2 的过程. 本文共分为六部分,分别是前置条件,Apache的安装,Mysql的安装,安装mo ...

  7. CentOS 7 上部署Mono 4 和Jexus 5.6

    概述 在这篇文章中我们将讨论如何在CentOS 7操作系统,安装 jexus. mono 和 配置 jexus,因此它将能够在这种环境中运行一个asp.net mvc 4 应用.这篇文章是描述如何在 ...

  8. deepsooncms在Ubuntu 14.04上部署教程

    deepsooncms在Ubuntu 14.04上部署教程 一.安装mono1.在命令行运行sudo apt-key adv --keyserver keyserver.ubuntu.com --re ...

  9. 基于Kubernetes在AWS上部署Kafka时遇到的一些问题

    作者:Jack47 转载请保留作者和原文出处 欢迎关注我的微信公众账号程序员杰克,两边的文章会同步,也可以添加我的RSS订阅源. 交代一下背景:我们的后台系统是一套使用Kafka消息队列的数据处理管线 ...

随机推荐

  1. Pytorch入门——手把手教你MNIST手写数字识别

    MNIST手写数字识别教程 要开始带组内的小朋友了,特意出一个Pytorch教程来指导一下 [!] 这里是实战教程,默认读者已经学会了部分深度学习原理,若有不懂的地方可以先停下来查查资料 目录 MNI ...

  2. IP2723T中文规格书PDF

    IP2723T 是一款集成多种协议.用于 USB 输出端口的快充协议 IC.支持多种快充协议,包括 USBTypeC DFP,PD2.0/PD3.0/PPS,HVDCPQC4/QC4+/QC3.0/Q ...

  3. 推荐大家去撸60元的阿里云ACA DevOps认证

    要试题的右边扫码支付10元,私聊博客哈,说出你微信号,留下邮箱,发你邮箱Pdf文件,这么便宜拿证!!

  4. h3c交换机配置ssh密码验证登录方式

    一.背景: 1.由于PC机串口不支持热插拔,请不要在交换机带电的情况下,将串口插入或者拔出PC机.当连接PC和交换机时,请先安装配置电缆的DB-9端到PC机,再连接RJ-45到交换机:在拆下时,先拔出 ...

  5. Maven 基础详解

    一.编写pom.xml文件     Maven项目的核心是pom.xml.POM(Project Object Model,项目对象模型)定义了项目的基本信息,用于描述项目如何构建,声明项目依赖等等. ...

  6. GRASP职责分配模式

    https://mp.weixin.qq.com/s/IaxAnWfVqe3mM0bHFVV5Gg 软件开发必修课:你该知道的GRASP职责分配模式 原创 悟真 阿里技术 今天 收录于话题 #设计模式 ...

  7. 动态库与静态库的学习 博主写的很好 静态库 编译的时候 需要加上 static 动态库编译ok运行不成功就按照文章中的方法修改

    来源连接   http://www.cnblogs.com/skynet/p/3372855.html C++静态库与动态库 这次分享的宗旨是--让大家学会创建与使用静态库.动态库,知道静态库与动态库 ...

  8. 这几个小技巧,让你书写不一样的Vue!

    前言 最近一直在阅读Vue的源码,发现了几个实战中用得上的小技巧,下面跟大家分享一下. 同时也可以阅读我之前写的Vue文章 vue开发中的"骚操作" 挖掘隐藏在源码中的Vue技巧! ...

  9. 如何在opencv下使用SIFT

    SIFT即尺度不变特征变换,是用于图像处理领域的一种描述.这种描述具有尺度不变性,可在图像中检测出关键点,是一种局部特征描述子.SIFT的尺度不变特征变换在图像特征点匹配中十分关键,因为我们从不同角度 ...

  10. mysql本地中127.0.0.1连接不上数据库怎么办

    首先在本地使用Navicat for MySQL建立一个bai数据库.在dreamweaver中建立一个PHP格式的网页,方便链接测试.测试发du现,如果zhi无法使用localhost链接mysql ...