Proxmox VE(PVE) 进行网卡直通

2023-11-02

我的设备

  • ECS Z270H4-I
  • E3 1235L V5
  • DDR4 2133 24G
  • WD 240G SSD

介绍

PCI直通允许您在VM内部使用物理PCI设备(图形卡,网卡)(仅限KVM虚拟化)。如果您“PCI passthrough”设备,该设备将不再可用于主机。

注意:PCI passthrough是Proxmox VE中的一项实验性功能

要启用硬件直通的话先要确保硬件支持VT-D和VT-X,CPU必须支持硬件虚拟化(为了使用 kvm)和 IOMMU(为了使用 VGA 直通)并保证主板中相关功能的开启

添加CPU支持,开启iommu

  • IOMMU 是 Intel VT-d 和 AMD-Vi 的通用名称。
  • VT-d 指的是直接输入/输出虚拟化(Intel Virtualization Technology for Directed I/O),不应与VT-x(x86平台下的Intel虚拟化技术,Intel Virtualization Technology)混淆。VT-x 可以让一个硬件平台作为多个“虚拟”平台,而 VT-d 提高了虚拟化的安全性、可靠性和 I/O 性能。

设置完之后最好重新启动一下

reboot

查询网卡信息

lspci | grep -i ethernet 

显示

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
root@pve:~# lspci | grep -i ethernet 
00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (2) I219-LM
01:00.0 Ethernet controller: Intel Corporation I350 Gigabit Network Connection (rev 01)
01:00.1 Ethernet controller: Intel Corporation I350 Gigabit Network Connection (rev 01)
01:00.2 Ethernet controller: Intel Corporation I350 Gigabit Network Connection (rev 01)
01:00.3 Ethernet controller: Intel Corporation I350 Gigabit Network Connection (rev 01)
03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 16)
root@pve:~# 

Intel CPU

修改grub

  • 编辑文件/etc/default/grub
  • 修改行“GRUB_CMDLINE_LINUX_DEFAULT=“quiet”
  • 使其为“GRUB_CMDLINE_LINUX_DEFAULT=“quiet intel_iommu=on”
  • 使用update-grub更新
  • 验证其有效性,从命令行运行“dmesg | grep -e DMAR -e IOMMU”。如果没有输出,则出现问题。极有可能是bios设置的问题,需要启动cpu的vt-x支持。
vi /etc/default/grub

找到  GRUB_CMDLINE_LINUX_DEFAULT="quiet"
修改为 GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on"

update-grub

dmesg | grep -e DMAR -e IOMMU

AMD CPU

修改grub

  • 编辑文件/etc/default/grub
  • 修改行“GRUB_CMDLINE_LINUX_DEFAULT=“quiet”
  • 使其为“GRUB_CMDLINE_LINUX_DEFAULT=“quiet amd_iommu=on”
  • 使用update-grub更新
  • 验证其有效性,从命令行运行“dmesg | grep -e DMAR -e IOMMU”。如果没有输出,则出现问题。极有可能是bios设置的问题,需要启动cpu的vt-x支持。
vi /etc/default/grub

找到  GRUB_CMDLINE_LINUX_DEFAULT="quiet"
修改为 GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on"

update-grub

dmesg | grep -e DMAR -e IOMMU

新增所需模块

修改文件/etc/modules,加入如下的行

vi /etc/modules
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd

执行命令来更新initramfs

update-initramfs -u -k all.

添加PCI设备

命令模式添加

  1. 使用命令找到网卡PCI的地址,地址应采用以下形式:01:00.0
  2. 打开文件进行手工添加
  • 集群:/etc/pve/nodes/你的集群名称/qemu-server/虚拟机id.conf
  • PCI:/etc/pve/qemu-server/vmid.conf
  • PCIE: /etc/pve/qemu-server/.conf
查找网卡ID
lspci | grep net


或者
lspci


添加PCI
vi /etc/pve/qemu-server/vmid.conf
添加一个pci地址:  
hostpci0: 01:00.0
添加多个pci地址方式1:  
hostpci0: 01:00.0;01:00.1
添加多个pci地址方式2:  
hostpci0: 01:00.0
hostpci1: 01:00.1
添加统称所有pci地址,自动传递所有功能:  
hostpci0: 01:00


添加PCIE
vi /etc/pve/qemu-server/111.conf
machine: q35
hostpci0: 01:00.0,pcie=1

web页面模式添加

硬件->添加,选择PCI设备->选择,完成
如需更改为PCIE,可设置机器为q35

如果添加了PCI设备开启虚拟机正常使用那后面的就不需要看了

如果添加了PCI设备无法开启虚拟机的话需要允许不安全的中断

  1. 先验证IOMMU是否有效
  2. 再查看IOMMU是否可以中断重映射
  3. 后启用中断重映射,允许不安全的中断

验证IOMMU有效

要让pci passthrough正常工作,您需要为您的pci设备提供专用的iommu组

find / sys / kernel / iommu_groups / -type l

输入命令后有相关东西输出,则表示正常

如果没有则需要进行IOMMU中断重映射,只有每个IOMMU都支持中断重映射,才会启用中断重映射。

IOMMU中断重映射

没有中断重映射就不可能使用PCI passthrough。

对于KVM用户,设备分配将失败,出现’Failed to assign device "[device name]"的错误,即“无法分配设备”[设备名称]“:操作不允许”错误,并且’未找到中断重映射硬件,将设备传递到非特权域是不安全的。

不支持中断重映射的系统:

  • 所有使用AMD处理器和芯片组的系统都支持AMD I / O虚拟化(AMD-Vi)。这种硬件具有中断重映射支持; 但是,上游尚未提供软件支持。
  • 所有使用英特尔处理器和芯片组的系统都支持英特尔定向I / O虚拟化技术(VT-d),但不支持中断重映射。新的处理器和芯片组提供了中断重映射支持。要确定您的系统是否支持中断重映射:

查看中断重映射

  1. 运行“dmesg | grep ecap”命令。
  2. 在IOMMU行上,“ecap”之后的十六进制值表示是否支持中断重映射。如果该值的最后一个字符是8,9,a,b,c,d,e或f,则支持中断重映射。例如,“ecap 1000”表示没有中断重映射支持。“ecap 10207f”表示中断重映射支持,因为最后一个字符是“f”。

启用中断重映射

  • 官方文档是这个

If your system doesn’t support interrupt remapping,
you can allow unsafe interrupts with:

echo "options vfio_iommu_type1 allow_unsafe_interrupts=1" > /etc/modprobe.d/iommu_unsafe_interrupts.conf
  • 或者添加驱动黑名单
vi /etc/modprobe.d/pve-blacklist.conf

文件里面添加一行
options vfio_iommu_type1 allow_unsafe_interrupts=1
来启用不安全的中断

之后就可以通过图形化界面执行PCIE设备的直通操作了

参考

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

Proxmox VE(PVE) 进行网卡直通 的相关文章

  • qemu创建linux虚拟机(亲测有效,virt-manger方式)

    1 网桥的搭建 Bridge方式原理 Bridge方式即虚拟网桥的网络连接方式 是客户机和子网里面的机器能够互相通信 可以使虚拟机成为网络中具有独立IP的主机 桥接网络 也叫物理设备共享 被用作把一个物理设备复制到一台虚拟机 网桥多用作高级
  • vSphere Client(Vcenter)上传ISO镜像

    不少新手在ESXi上安装好虚拟机后 都要寻找浏览器的ios镜像 但同学们会在这里卡顿 找不到上传ios的路径 今天就来讲一讲 上传的问题 一 方法一 我初学时 一样在这里卡顿 找不到上传的路径 在网上搜索 确实找到了一种上传的方法 在这里转
  • PVE虚拟化平台之安装Ubuntu Desktop系统

    PVE虚拟化平台之安装Ubuntu Desktop系统 一 Ubuntu介绍 1 1 Ubuntu简介 1 2 Ubuntu版本 1 3 ubuntu命名规则 二 上传镜像到PVE 2 1 检查PVE环境 2 2 上传镜像到PVE 三 新建
  • KVM和QEMU

    原文地址 KVM和QEMU 作者 embeddedlwp 目录 1 硬件虚拟化技术背景 2 KVM的内部实现概述 2 1 KVM的抽象对象 2 2 KVM的vcpu 2 3 KVM的IO虚拟化 2 3 1 IO的虚拟化 2 3 2 Virt
  • ovirt-node和ovirt-engine相连遇到的问题解决办法

    1 Host 192 168 70 7 does not comply with the cluster Default emulated machines The Hosts emulated machines are
  • kvm-ovirt-vdsm安装记录

    小技巧 1 fedaro 19自动查找最快yum源 yum install yum fastestmirror 2 libvirt启动sasl添加用户 saslpasswd2 c a libvirt admin 3 查看kvm模块 lsmo
  • kvm磁盘管理

    kvm磁盘管理 KVM虚拟磁盘类型 raw qcow2 qemu img常用参数 主要参数 安装qemu img 查看磁盘信息 info 创建磁盘文件 create 磁盘容量调整 resize 热扩容 磁盘增加容量 磁盘缩小容量 生产环境下
  • oVirt 4.4.10三节点超融合集群安装配置及集群扩容(一)

    环境 oVrit版本 4 4 10 oVirt image https mirrors aliyun com ovirt ovirt 4 4 iso ovirt node ng installer 4 4 10 2022030308 el8
  • qemu-guest-agent windows下的监控开发

    windows下的qemu guest agent 简称qga 的名字叫做qemu guest agent win32 目前最新版的版本号是qemu guest agent win32 0 12 1 2 2 355 el6 4 9 x86
  • PVE虚拟化平台之安装iStoreOS软路由系统

    PVE虚拟化平台之安装iStoreOS软路由系统 一 iStoreOS介绍 二 登录PVE平台检查系统状态 三 创建虚拟机 1 虚拟机常规设置 2 操作系统配置 3 系统配置 4 磁盘配置 5 CPU配置 6 内存设置 7 网络设置 8 确
  • 云安全技术——kvm虚拟化技术

    目录 10 1 kvm简介 10 2 在CentOS 7 图形化界面下安装KVM 使用IDEA开发读写MySQL数据库程序 实验目的 了解 CentOS7图形化界面的部署方法 了解 KVM的组成和作用 了解 KVM的技术架构 了解KVM的安
  • VMware虚拟化- 虚拟化与VMware的基础介绍

    1 什么是虚拟化 1 1 虚拟化概念 通俗的理解 如果你问 什么是虚拟化 我想大部分人的回答都会是 就是在一个操作系统中运行另一个操作系统 虽然这个答案也没错 但这并不是真正 虚拟化 的意义 只能说是虚拟化在硬件和操作系统之间的一个实践 事
  • 内核虚拟化KVM/QEMU——guest os,qemu,kvm的运行流程

    内核虚拟化KVM QEMU guest os qemu kvm的运行流程 这里主要介绍基于x86平台的Guest Os Qemu Kvm工作流程 如图 通过KVM APIs可以将qemu的command传递到kvm 1 创建VM syste
  • Qume-KVM虚拟化

    Qume KVM虚拟化 文章目录 虚拟化概述 KVM概述 KVM虚拟化架构 Qume概述 部署Qume KVM KVM Web管理界面安装 Web管理界面 添加连接 新建存储池 新建镜像 新建网络 实例管理 虚拟化概述 什么是虚拟化 虚拟化
  • KVM源代码分析1:基本工作原理

    http www oenhan com kvm src 1 13年的时候准备挖 KVM源代码分析 的坑 陆陆续续2年过去了 坑也没有填上 当时是因为对KVM了解的肤浅 真正的理解必然要深入到代码级别 所谓 摈弃皮毛 看到血肉 看到真相 当时
  • 2020最新版KVM虚拟机安装详解

    VMware Workstation Pro15 5下 1 操作环境 CentOS Linux release 7 7 1908 Core 2 需要用到的工具 XSHELL Centos任意版本镜像 3 必须安装的软件 Xmanager p
  • Android 模拟器在 Ubuntu 18.04 上因 SIGSEGV 崩溃

    Android Studio版本 Android Studio 3 1 2 内部版本 AI 173 4720617 建于 2018 年 4 月 14 日 它是从 Ubuntu 的 snap 商店安装的 我使用安装了kvm1 在 Ubuntu
  • Android 模拟器和 OpenGL ES3:EGL_BAD_CONFIG

    我正在运行一个Android 虚拟设备 https developer android com studio run managing avds html在我的 Ubuntu 主机上 它使用 CPU ABI Intel Atom x86 我
  • 虚拟机上奇怪的程序延迟行为

    我编写了一个程序来读取 256KB 数组以获得 1 毫秒的延迟 该程序非常简单并附带 然而 当我在Xen上的VM上运行它时 我发现延迟不稳定 它具有以下模式 时间单位是ms totalCycle CyclePerLine totalms 2
  • qemu KVM内核模块没有这样的文件或目录

    我目前正在上操作系统课程 我需要使用 qemu 来运行我的教授提供的一个小型操作系统 我正在尝试在 MacBook Air 5 2 上的 virtualbox 上的 ubuntu 12 04 虚拟机中使用 qemu 我知道我遇到的问题可能与

随机推荐

  • 命令行编译WCE6.0 BSP 中 Private目录下的工程

    转载请标明是引用于 http blog csdn net chenyujing1234 参考文章 http social msdn microsoft com Forums en US windowsmobiledev thread 672
  • 漏洞复现之CVE-2015-1635-HTTP.SYS远程执行代码漏洞(ms15-034)

    1 1 1 漏洞描述 在2015年4月安全补丁日 微软发布的众多安全更新中 修复了HTTP sys中一处允许远程执行代码漏洞 编号为 CVE 2015 1635 MS15 034 利用HTTP sys的安全漏洞 攻击者只需要发送恶意的htt
  • 如何判断代码的好坏

    对于代码好坏的判断 是需要一定的标准来衡量 比如可读性 可维护性 可拓展性 简洁性等等 好的代码 无论是对于代码开发者来说 还是对于设备维护者来说都是赏心悦目的 而坏的代码则是让人一头雾水 心生胆怯 甚至在开发和维护阶段 因为修改或者重构代
  • select 语句中 if 的用法

    IF expr1 expr2 expr3 expr1 的值为 TRUE 则返回值为 expr2 expr1 的值为FALSE 则返回值为 expr3 例 SELECT IF TRUE 1 1 1 2 gt 2 SELECT IF FALSE
  • Oracle 高水位(watermark)实验

    oracle 中的高水位标记是 oracle table 中使用的术语 用于显示在 oracle table 的生命周期中曾经使用过的块 当您从表中删除行时 HWM 下面的块可能会变为空 但高水位标记将保持原样 假设您加载了 100 万行的
  • Hololens2开发笔记-Unity项目获取IMU传感器数据

    文章目录 前言 环境 使用指南 运行结果 前言 在仔细捣鼓了 HoloLens2 研究模式的 API 文档后 借鉴了官方案例 SensorVisualization 和这位哥们的代码 HoloLens2 Unity ResearchMode
  • 记一次初学者的spring boot 打包部署

    作为一个前端程序员 好不容易用第一次使用spring boot 写了一个项目 idea里面运行的ok 心里暗自窃喜 但是没想到打包就出现问题 折腾了一天 现在总结一下 先看一下我的项目的结构 这是我的项目 主项目是一个spring boot
  • Java web编写的学生作业管理系统 课程设计 功能齐全、界面漂亮

    8月份由于公司的事情太多 基本上没有更新博客信息 今天稍微空了点 继续为为大家介绍Java web项目 今天要介绍的是一个Java web编写的学生作业管理系统 学生作业管理系统有三种用户类型 学生 老师 系统管理员 学生的主要功能包括 查
  • 多态的定义以及使用

    多态的定义以及使用 package Demo08 代码当中体现多态性 其实就是一句话 父类引用指向子类对象 什么叫多态 左父右子就叫多态 可以通过创建一个对象来调用父类和子类两个 格式 父类名称 对象名 new 子类名称 或者 接口名称 对
  • 区块链二级知识考试

    区块链基础知识二级考试 考试时间30分钟 总分100分 请认真作答 出题人及监考老师 高志豪 请转载者注明 谢谢支持 一 单选题 每题5分 共30分 1 中本聪是哪里人 A 中国人 B 美国人 C 日本人 D 不确定 2 下面哪种共识机制效
  • WPF DataGrid 导出Excel

    region Excel导出 private void btnExportExcel Click object sender RoutedEventArgs e Export this dgvList XX信息查询列表 public voi
  • STM32 F1,F4,CAN多字节发送和接收

    一 简介 CAN的基础知识在这里不做过多介绍 其他网站上讲解的很基础 因为CAN一次性只能接收1字节8位 所以在这里只介绍怎样让CAN能像串口那样一次性接收非常多的位 亲测有效 具体先看效果图 在这里我的实现是通过两块STM32板子 可以是
  • 【mac】mac鼠标指针跟随很慢的问题

    使用时感觉鼠标指针跟随太慢 在系统偏好设置里面将鼠标跟随速度调到最大 还是感觉很慢 后来在网上找到了一个通过命令行改全局配置的方式调快跟随速度 具体方法如下 可以先查看一下当前值 打开终端 输入命令 lcc localhost defaul
  • html的实体字符,h5展示特殊符号<>

    前言 在 HTML 中 某些字符是预留的 不能使用小于号 lt 和大于号 gt 这是因为浏览器会误认为它们是标签 比如 这样是不行的 p lt p 比如用实体字符 p lt p HTML 中有用的字符实体 注释 实体名称对大小写敏感 显示结
  • 单链表的创建、单链表的删除、单链表的插入(数据结构)

    1 创建一个超级简单的单链表 include
  • 用HttpClient抓取人人网高校数据库(省,高校,院系三级级联)--更新1

    更新备注 将src文件改成了一个完整的项目 解压后可以直接导入到Eclipse中去 省去大家配置 项目乱码请改项目属性为GBK 另外 如果你要登陆人人网 的话 需要申请一个人人网账号 这里提供公用的 lei d0809 gmail com
  • matlab画三维、二维动态曲线

    matlab画三维 二维动态曲线 画三维曲线动图 xlabel X m ylabel Y m zlabel Z m grid on for i 1 length x 1 axis 0 05 2 5 0 05 5 0 1 0 1 line x
  • Matlab—频谱分析作图

    clf fs 50 采样频率 每秒钟采样多少个点 N 60 采样点数量 T N fs 采样时间 n 0 N 1 t n fs 时间序列 f n fs N 频率序列 y1 10 sin 2 pi 15 t y2 10 sin 2 pi 20
  • 硬件第二节 MOS管电路工作原理及详解

    文章目录 一 MOS管画法辨认 1 1 辨认MOS管 二 MOS管使用 2 1 作为开关管 2 1 1 导通条件 2 1 2实例 三 如何选择MOS管 3 1 MOS管需要注意的几个参数 3 1 1 选择PMOS还是NMOS 3 1 2 电
  • Proxmox VE(PVE) 进行网卡直通

    文章目录 我的设备 介绍 添加CPU支持 开启iommu 查询网卡信息 Intel CPU AMD CPU 新增所需模块 添加PCI设备 命令模式添加 web页面模式添加 验证IOMMU有效 IOMMU中断重映射 查看中断重映射 启用中断重