KVM网络模型之:PCI Passthrough

2023-05-16

目录

PCI Passthrough技术介绍和KVM中配置

案例

内核启用

重新启动虚拟机实例


PCI Passthrough技术介绍和KVM中配置

PCI Passthrough技术是虚拟化网卡的终极解决方案,能够让虚拟机独占物理网卡,达到最优性能,可以在网卡性能要求非常高的场景会用。但是要想迁移虚拟机,就很困难。

                                                    

# lspci |grep Ethernet |grep Intel
03:00.0 Ethernet controller: Intel Corporation I350 Gigabit Network Connection (rev 01)
03:00.1 Ethernet controller: Intel Corporation I350 Gigabit Network Connection (rev 01)
03:00.2 Ethernet controller: Intel Corporation I350 Gigabit Network Connection (rev 01)
03:00.3 Ethernet controller: Intel Corporation I350 Gigabit Network Connection (rev 01)

## 查看网卡的上一级pci信息,需要将哪个interface 给虚机直接使用,就查哪个接口

# virsh nodedev-list --tree|grep enp3s0f2 -B3
  |   |    
  |   +- pci_0000_03_00_2
  |   |   |
  |   |   +- net_enp3s0f2_0c_c4_7a_80_52_0a

## 根据上一步查到的PCI信息,获取XML配置

# virsh nodedev-dumpxml pci_0000_03_00_2
……
  <capability type='pci'>
    <domain>0</domain>
    <bus>3</bus>
    <slot>0</slot>
<function>2</function>
……

## 编辑deployment xml,加入PCI设备信息,使用virsh define 定义虚拟机

<hostdev mode=’subsystem’ type=’pci’ managed=’yes’>
  <source>
    <address domain=’0x0000’ bus=’0x03’ slot=’0x00’ function=’0x2’ />
  </source>
</hostdev>

案例

virsh define deployment.ldap05
virsh start LDAP05

error: unsupported configuration: host doesn't support passthrough of host PCI devices

为虚拟机实例配置网络透传,结果报错,提示不支持,那么如何解决呢?使用PCI Pass-through,需要硬件的支持:

1、主机需要支持Intel VT-d 或者 AMD IOMMU技术

egrep --color '(vmx|svm )' /proc/cpuinfo

2、在 Linux 内核需要启用 PCI Pass-through

cat /proc/cmdline |grep intel_iommu

内核启用

cp /etc/default/grub{,.bak}

把 intel_iommu=on iommu=pt 添加到 grub 配置文件的 GRUB_CMDLINE_LINUX 一行的最后。
vi /etc/default/grub
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet intel_iommu=on iommu=pt"

刷新 grub.cfg 文件并重启宿主机生效:
mv /boot/grub2/grub.cfg{,.bak}
grub2-mkconfig -o /boot/grub2/grub.cfg

reboot

重新启动虚拟机实例

virsh start LDAP05
Domain LDAP05 started

可以看到host的网卡被透传给了虚拟机LDAP05,并且对host机器该接口将不可见,通过ip add show查看将看不到这个网卡:上面部分是host主机透传的interface,下面ens5则是虚拟机实例中展示的透传过去的宿主机enp3s0f2。

                                

在虚拟机实例上,执行下面的命令验证:查看网卡类型

# lspci | grep -i ethernet
00:03.0 Ethernet controller: Red Hat, Inc. Virtio network device
00:05.0 Ethernet controller: Intel Corporation I350 Gigabit Network Connection (rev 01)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

KVM网络模型之:PCI Passthrough 的相关文章

  • 计算机视觉学习知识框架体系总结整理

    计算机视觉的三个基本任务 xff1a 1 xff09 对象检测 object detection 2 xff09 对象跟踪 object tracking 3 xff09 对象分割 object segmentation 一 xff1a F
  • VS Code 配置Java环境问题解决方式

    1 问题 1 1 改变插件的储存位置 1 2 Java环境变量配置 1 3 VS Code Java 工作区建立 1 4 code runner 运行输出为乱码 2 解决方法 2 1 储存位置更改 xff08 1 xff09 改变vs桌面快
  • YOLOv4-pytorch训练自己的数据集

    YOLOv4 pytorch训练自己的数据集 YOLOv4 pytorch介绍环境配置运行环境安装依赖包 准备工作Git clone YOLOv4准备数据集下载PascalVOC MSCOCO 2017数据集准备自己的数据集 下载权重文件
  • 【DEBUG日记】cannot import name ‘amp‘

    问题描述 xff1a 在使用WongKinYiu PyTorch YOLOv4进行训练时 xff0c 报错 xff1a Traceback span class token punctuation span most recent call
  • 【DUBUG日记】subprocess.CalledProcessError: Command ‘[‘ninja‘, ‘-v‘]‘ returned non-zero exit status 1.

    项目场景 xff1a 这是在编译FCOS 主要是其中基于maskrcnn benchmark部分 时报的错误 问题描述 xff1a 在执行 python setup py build develop no deps 时 xff0c 会Run
  • YOLOv5部署到Windows的C++(使用LibTorch)

    YOLOv5部署到Windows的C 43 43 xff08 使用LibTorch xff09 前言准备内容配置环境编译YOLOv5 检测可能遇到的问题 前言 由于项目需要 xff0c 我们要将YOLOv5部署到Windows上的C 43
  • 如何在Java中选择Map/List/Set

    很实用 xff0c 分享一下 简单版本 复杂版本 参考 xff1a http initbinder com articles cheat sheet for selecting maplistset in java html http ww
  • 一文搞定 Visual Studio 配置 OpenCV环境

    文章目录 前言准备工作系统环境变量配置VS项目环境配置检验补充 前言 在 Visual Studio 上配置 OpenCV 环境是极其恼人的事情 xff0c 尤其是对于初学者 xff0c 经常几个小时过去了都配不好 xff0c 将我们对代码
  • PyTorch 轻松节省显存的小技巧

    文章目录 前言一 大幅减少显存占用方法1 模型2 数据 二 小幅减少显存占用方法1 使用inplace2 加载 存储等能用CPU就绝不用GPU3 低精度计算4 torch no grad5 及时清理不用的变量6 分段计算 总结 前言 如今的
  • 【OpenCV经验总结】——视频篇

    文章目录 前言一 视频读写二 视频参数的获取和设置 前言 本篇汇总了本人在OpenCV使用过程中总结的关于视频处理的一些函数使用经验及Bug处理经验 xff0c 会根据后续使用情况逐步更新 一 视频读写 span class token k
  • 【OpenCV经验总结】——图片预处理篇

    文章目录 前言一 图片读写二 调整大小和填充三 滤波四 边缘提取五 腐蚀和膨胀 xff0c 开闭运算 前言 本篇汇总了本人在OpenCV使用过程中总结的关于图片的一些函数使用经验及Bug处理经验 xff0c 会根据后续使用情况逐步更新 一
  • 【DEBUG日记】torch.unique() 报错

    问题描述 在模型输出数据的后处理中 xff0c 在使用torch unique 时报以下错误 xff1a RuntimeError isDifferentiableType variable scalar type INTERNAL ASS
  • 如何在go中执行python3代码

    go python3使用指南与踩坑记录 简介 在开发工作中有时候会有需要和其他语言进行交互的需求 xff0c 笔者前段时间就接到了需要在go中调用python3的需求 xff0c 这种需求笔者想到了两种解法 xff0c 一是直接在代码中调用
  • ios开发-语音识别(科大讯飞)

    在记录事件的时候 xff0c 用户在不方便手写的时候 xff0c 我们可以利用语音录入 xff0c 转成文字的形式记录时间 xff0c 是不是既方便又只能 xff0c 现在做语音识别的有一些不错的开放平台供我们使用 xff0c 科大讯飞平台
  • 用 estimatedRowHeight 对UITableViewCell自动布局的问题?

    iOS8 中通过 UITableViewAutomaticDimension 常量支持自适应高度的单元格 self tableView estimatedRowHeight 61 100 self tableView rowHeight 6
  • Rust VS JS,Rust 已开始渗入前端~

    本文翻译自 xff1a Rust Is The Future of JavaScript Infrastructure Lee Robinson 1 xff0c 已获得作者授权 xff0c 原文略做修改以符合中文语境 xff08 图片镇楼
  • 查看cookie的3种方式

    1 application中查看 2 network中查看 3 console中通过js查看 4 设置cookie document cookie 61 34 age 61 12 34
  • 关于Hadoop中reducer端combiner的一些思考

    什么是Combiner Functions Many MapReduce jobs are limited by the bandwidth available on the cluster so it pays to minimize t
  • Unity新版ECS框架简介:ECS有什么不同?

    了解过ECS的开发者都知道ECS与Unity原本的开发理念相差很大 xff0c 需要所有Unity开发者重新去学习和适应新的开发框架的代价还是很大的 xff0c Unity为何要做出这么大跨度的尝试呢 xff1f Unity正在尝试解决什么
  • Python 爬取 3 万条游戏评分数据,找到了程序员最爱玩的游戏(附代码)

    本文爬取了游戏网站上所有可见的游戏评分数据进行分析 xff0c 全文包括以下几个部分 xff1a 数据获取数据总览游戏类型分析游戏平台分析游戏名称分析高分游戏汇总代码汇总 全文数据获取及分析均基于python3 6完成 数据获取过程 页面内

随机推荐

  • 手游外挂分类及原理介绍

    一 前言 移动游戏市场近几年突然爆发 xff0c 收入规模快速增长 根据第三方数据统计 xff0c 如图所示 xff0c 国内移动游戏2015年市场规模已达514 6亿 如此火热的市场 xff0c 必然会吸引大量图谋不轨的坏人 外挂已在移动
  • 常见游戏外挂分类及原理概述

    外挂基本概念 要理解外挂 xff0c 首先需要理解网络游戏的数据流 这里所说的数据流定义为游戏本地客户端与游戏后台服务器之间的数据流通 一个数据的产生需要玩家做出对应的操作 xff0c 然后经过网络传输同步到服务器后台 xff0c 服务器后
  • 揭秘《英雄联盟》的游戏数据服务器

    Hey xff0c 大家好 xff01 我是 Bill LtRandolph Clark xff0c 一名英雄联盟的游戏工程师 许多 Rioter 工程师关注大量的内容需要直接发送给玩家问题 这是两个我最近最喜欢的例子之一 xff0c 包括
  • 从纹理中生成法线贴图

    概要 本为主要讲解生成法线贴图的基本方法 xff0c 并在 unity 中进行实现和测试 预备知识 法线贴图和基本的图形学知识 xff0c 基本的向量和极限的知识 高度图或灰度图 一张二维纹理有两个维度 u 和 v xff0c 但其实 xf
  • MySQL死锁产生原因和解决方法

    Mysql 锁类型 一 锁类型介绍 xff1a MySQL有三种锁的级别 xff1a 页级 表级 行级 表级锁 xff1a 开销小 xff0c 加锁快 xff1b 不会出现死锁 xff1b 锁定粒度大 xff0c 发生锁冲突的概率最高 并发
  • Flink 动态实时流计算

    xff08 先给个预告 xff0c 下一期关于Flink的文章会讲如何将机器学习融入Flink中 xff09 摘要 本文提供了一种在流计算中不停机动态加载代码来做到敏捷而快速的开发的思路 代码提供在 Lofka 的 lofka night
  • 通俗说Openvswitch

    Openvswitch xff0c 顾名思义 xff0c Open xff0c 开源的 xff0c v xff0c virtual xff0c 虚拟的 xff0c switch交换机 通俗的讲就是一款开源的软件 xff0c 可以创建虚拟的交
  • 人间还是仙界?聊一聊linux系统的用户空间和内核空间

    我们生活在人间 xff0c 但 西游记 里提到 xff0c 在天上还有一个仙界 人间不知道仙界的存在 xff1b 而仙界知道人间的存在 xff0c 神仙也可以从仙界下凡到人间 xff0c 但是被严格管控的 软件设计的灵感其实都来自于生活 x
  • 什么是实时数据库?

    实时数据库是数据库系统发展的一个分支 xff0c 它适用于处理不断更新的快速变化的数据及具有时间 限制的事务处理 实时数据库技术是实时系统和数据库技术相结合的产物 xff0c 研究人员希望利用数据库 技术来解决实时系统中的数据管理问题 xf
  • 带你阅读linux内核源码:linux内核源代码编程规范

    linux内核代码是许许多多遵循相同内核开发规范的牛人们的共同的创造的结晶 作为一名linux内核或者驱动开发工程师 xff0c 很有必要了解这些内核开发规范 好处有以下几个 xff1a 这些约定或者规范对我们阅读linux内核源码 了解设
  • linux进程上下文、中断上下文介绍,以及为什么软中断不能睡眠?

    linux内核的软中断处理程序中能不能睡眠 xff1f 这是一个值得讨论的问题 答案其实很简单 xff0c 那就是不能 因为Linux的软中断处理程序的运行上下文有可能是中断上下文 xff08 注意此处是有可能 xff0c 而并非一定 xf
  • VS2008用devenv.com命令行工具自动编译工程

    转自 xff1a http www cr173 com html 18500 1 html 在vs2008下面提供了devenv com命令行方式 我们可以从VS安装目录 MicrosoftVisual Studio 9 Common7 I
  • 使用ICMP协议检测网络状态

    ICMP xff08 Internet ControlMessages Protocol xff0c 网间控制报文协议 xff09 是TCP IP协议族的子协议 xff0c 是一种面向无连接的协议 xff0c 在IP和路由器之前传递控制消息
  • c++打印enum class

    span class token keyword enum span span class token keyword class span span class token class name A span span class tok
  • 使用strace查找Emacs启动阻塞的原因(exec-path-from-shell)

    原文地址 https www lujun9972 win blog 2019 09 26 使用strace查找emacs启动阻塞的原因 exec path from shell index html 之前就觉得我的Emacs启动好慢 xff
  • 为Linux安装虚拟PDF打印机

    原文地址 https lujun9972 github io blog 2020 04 11 为linux安装虚拟pdf打印机 index html 今天发现一个 CUPS PDF 项目 可以为 CUPS Common Unix Print
  • ubuntu系统启用shell远程登陆

    Ubuntu desktop系统安装后 xff0c 想使用shell远程登陆 xff0c 会提示 Connecting to 192 168 220 133 22 Could not connect to 39 192 168 220 13
  • 枚举类(ENUM)用法总结

    对于ENUM一直是比较陌生的 xff0c 在和某酷爱ENUM的大神合作时 xff0c 才慢慢接触到ENUM的用法 1 ENUM是什么 xff1f 首先ENUM是一个类 xff0c 不像String int之类的数据结构 xff0c 更类似于
  • Python循环结构练习2

    Problem A xff1a 循环结构 输出数列2 xff0c 5 xff0c 8 xff0c 11 xff0c 14 题目描述 输入正整数n xff08 n 100 xff09 xff0c 输出数列2 xff0c 5 xff0c 8 x
  • KVM网络模型之:PCI Passthrough

    目录 PCI Passthrough技术介绍和KVM中配置 案例 内核启用 重新启动虚拟机实例 PCI Passthrough技术介绍和KVM中配置 PCI Passthrough技术是虚拟化网卡的终极解决方案 xff0c 能够让虚拟机独占