KVM Pass-through 上部署 MiniSMB HurricaneII

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'
效果:
KVM Pass-through 上部署 MiniSMB HurricaneII
一般情况下,出现关键词vmx表示支持;

12.在 BIOS 中开机虚拟化功能
方法:开启按 delete 键进入 BIOS 中--用键盘方向键选中“Advanced”菜单--选中“Intel Virtual Technology”—切换“Enabled”开启
(因每台机器BIOS界面差异,开启虚拟化功能的具体位置会不同)
KVM Pass-through 上部署 MiniSMB HurricaneII

13.关闭 SELinux
命令:vi /etc/sysconfig/selinux
效果:
将SELINUX=disabled 即可, 然后务必重启机器
KVM Pass-through 上部署 MiniSMB HurricaneII

  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
出现以下信息则表示正确加载。
KVM Pass-through 上部署 MiniSMB HurricaneII

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(是否开机自动启动)
效果:
KVM Pass-through 上部署 MiniSMB HurricaneII
KVM Pass-through 上部署 MiniSMB HurricaneII

  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 参数
    效果:
    KVM Pass-through 上部署 MiniSMB HurricaneII

4.2 更新 GRUB
命令:grub2-mkconfig -o /etc/grub2.cfg
重启: reboot
5. PCI 网卡分离
5.1 查找PCI设备ID
命令:lspci -nn | grep -i ethernet
效果:
KVM Pass-through 上部署 MiniSMB HurricaneII
注:上图 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
效果:
KVM Pass-through 上部署 MiniSMB HurricaneII

6.配置 KVM
命令:virt-manager 打开虚拟系统管理器图形化界面
KVM Pass-through 上部署 MiniSMB HurricaneII

6.1 添加存储池
选中QEMU/KVM 在Edit下 打开 Connection Details
KVM Pass-through 上部署 MiniSMB HurricaneII
KVM Pass-through 上部署 MiniSMB HurricaneII
KVM Pass-through 上部署 MiniSMB HurricaneII
KVM Pass-through 上部署 MiniSMB HurricaneII

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

6.2 创建虚拟机
KVM Pass-through 上部署 MiniSMB HurricaneII
KVM Pass-through 上部署 MiniSMB HurricaneII
KVM Pass-through 上部署 MiniSMB HurricaneII
KVM Pass-through 上部署 MiniSMB HurricaneII
KVM Pass-through 上部署 MiniSMB HurricaneII
KVM Pass-through 上部署 MiniSMB HurricaneII
KVM Pass-through 上部署 MiniSMB HurricaneII

6.3 添加PassThrough网卡
把从宿主机上分离出来的 PCI 网卡添加到虚拟机上来
KVM Pass-through 上部署 MiniSMB HurricaneII
KVM Pass-through 上部署 MiniSMB HurricaneII
KVM Pass-through 上部署 MiniSMB HurricaneII

MiniSMB成功运行
KVM Pass-through 上部署 MiniSMB HurricaneII

上一篇:Networking 网络服务(老王笔记)


下一篇:Leetcode: Lexicographical Numbers