PVE8硬件直通


 

PCI(e) 直通是一种机制,用于让虚拟机控制 来自主机的 PCI 设备。以及使用虚拟化硬件,例如更低的延迟、更高的性能或更高 功能(例如,卸载)。

 

但是,如果通过设备传递到虚拟机,则无法在主机或任何其他 VM 中使用该设备。

请注意,虽然 PCI 直通可用于 i440fx 和 q35 计算机,但 PCIe 直通仅在 Q35 计算机上可用。这并不意味着作为 PCI 设备传递的 PCIe 设备只能有PCI 速度。以 PCIe 身份通过设备只是为访客设置一个标志 告诉它该设备是PCIe设备,而不是“非常快的传统PCI 设备“。一些来宾应用程序从中受益。

1 前提条件

1.1 硬件条件

由于直通是在真实硬件上执行的,因此需要满足一些 要求。下面简要概述了这些要求。

硬件需要支持 IOMMU (I/O Memory Management Unit) 中断重新映射,这包括 CPU 和主板。

通常,具有 VT-d 的 Intel 系统和带有 AMD-Vi 的 AMD 系统都支持此功能。 但不能保证一切都会开箱即用,因为 硬件实现不良以及驱动程序缺失或质量低下。

此外,服务器级硬件通常比消费级硬件具有更好的支持 硬件,但即便如此,许多现代系统也可以支持这一点。

1.2 BIOS设置

您必须在 BIOS/UEFI 中启用 IOMMU 支持。通常 相应的设置称为 IOMMU 或 VT-d。

2 查看pcie设备

最简单的方法是使用 GUI 在 VM 的 VM 中添加“主机 PCI”类型的设备 “硬件”选项卡。或者,可以使用命令行。

Markup 全选
lspci

比如说要查看pcie网卡信息

Markup 全选
lspci | grep -i ethernet

3 查看硬件直通情况

从命令行运行 如果没有输出,则说明为配置硬件直通?。

Markup 全选
dmesg | grep -e DMAR -e IOMMU

4 开启硬件直通

目前pve8.0以上直通很简单,不需要多设置。

只需要打开

nano /etc/default/grub

修改这一行

GRUB_CMDLINE_LINUX_DEFAULT="quiet"

intel的cpu改为这个

Markup 全选
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt"

amd改为这个

Markup 全选
GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on iommu=pt"

intel_iommu=on:内容在内核上启用 IOMMU。

iommu=pt的注释:如果硬件支持 IOMMU 直通模式,则启用此模式可能会提高性能。 这是因为 VM 通常会绕过(默认)DMA 转换 由虚拟机管理程序执行,而是将 DMA 请求直接传递给硬件IOMMU。

更新 GRUB

Markup 全选
update-grub

5 增加系统内核模块

这仅在必要时启用IOMMU转换,将iommu分组相关的内核模块启用,从而可以提高VM中未使用的PCIe设备的性能。

nano /etc/modules

添加

C# 全选
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd # not needed if on kernel 6.2 or newer

注意:在高于 6.2 的内核(Proxmox VE 8 及更高版本)中 vfio_virqfd模块是VFIO模块的一部分,因此无需在Proxmox VE 8及更高版本中加载vfio_virqfd。

更改与模块相关的任何内容后,您需要刷新 initramfs。在Proxmox VE上,这可以通过执行以下命令来完成:

Markup 全选
update-initramfs -u -k all

重启PVE,

然后要检查模块是否正在加载,输出

Markup 全选
lsmod | grep vfio

应包括上面的四个模块。

6 检查直通情况

重启!从命令行运行 以下命令如果没有输出,则说明有问题。

Markup 全选
dmesg | grep -e DMAR -e IOMMU

如果有,可基本确认这个过程顺利完成! 应显示IOMMU, Directed I/O 或 Interrupt Remapping表明直通启用,根据硬件和内核的不同,确切的消息可能会有所不同。

接下来就可以为虚拟机正常的添加硬件直通了。

其他的黑名单都不用设置,官方贴心的自动禁用了。

7 虚拟机配置

通过 GPU 时,使用 q35 作为机器类型、OVMF(虚拟机的 UEFI)而不是 SeaBIOS时,PCIe 时达到最佳兼容性。

 

 

参考:https://www.right.com.cn/forum/thread-8373748-1-1.html

 

 

版权声明:本文为YES开发框架网发布内容,转载请附上原文出处连接
张国生
上一篇:C盘扩容被恢复分区挡住了
下一篇:Exsi迁移到pve
评论列表

发表评论

评论内容
昵称:
验证码:
验证码
关联文章

PVE8硬件直通
PVE 主板音频耳机口直通
PVE 虚拟机使用AX210蓝牙直通
pve硬盘直通,定位硬盘
PVE安装 RockyLinux10
PVE安装openwrt
Exsi迁移到pve
PVE黑苹果安装
安装 SQL Server 2012 的硬件和软件要求(官方全面)
PVE更新国内源
Jira 8.13破解
PVE传感器温度查看
PVE传感器温度查看
PVE虚拟机CPU类型的先择
MySQL 8.0 绿色版安装
C#8.0 可空引用类型
关于PVE使用命令添加挂载存储
PVE AX210无线网卡
PVE CT容器的使用
PVE虚拟机删除local-lvm分区

热门标签
.NET Core .NET Reactor ag-grid AI发布 api安全 ASP.NET Core C#DLL加密 C#播放声音 C#代码混淆 C#代码加密 ChromeDriver Codex DateTime DBeaver devexpress devTool DLL混淆 edge.js EF EFCore Electron element-ui el-form el-table excel FastReport FileStream FolderBrowerDialog FolderSelectDialog form提交 git gridcontrol gridview input javascript json字符串 JS转换对象JSON jwt JWT授权 linq log Math MCP mitmproxy MVC MySQL Navicat netstat nginx node_modules NSwag Nuget Nuget镜像 number PowerShell pyinstaller python pythoncom python爬虫 python抓包 pywin32 redis Requests-html RestSharp Selenium sql SQL Server Swagger to-cms Visual Studio VSCode vue VueRouter vue路由 VUE页面通讯 Webpack Windows Windows服务 winform wmi xlrd yaml YESCMS YESWEB开发框架 白象 表单提交 播放声音 打开URL 代码混淆 弹窗提醒 端口占用 对象转换 分布式 公共字典 机器码 进程排查 静态资源 开发指南 路由参数 密钥 配置教程 配置文件 权限 人工智能 任务 任务调度 日期间隔 日志 日志记录 省市区 授权验证 数据库 四舍五入 文案 文件读取 文件夹选择 文件目录选择 问题排查 行政区域数据 页面通讯 中间件 CSharp 事务锁 工单系统 并发控制 重复提交 CMS Markdig Markdown markdown-it marked 技术选型 VS Code 开发工具 源代码管理 版本控制 Docker PostgreSQL 时区 部署排查 CMS架构 EF Core 主题系统 二次开发 插件系统 容器 运维命令 镜像清理 Linux NAS 远程挂载 飞牛 fnOS S/4HANA SAP GUI SAP HANA SAP R/3 SAP入门 SAP版本 ERP SAP SAP MM 库存管理 物料管理 采购管理 入门教程 SAP S/4HANA SPRO 企业结构 采购组织 MM01 物料主数据 物料类型 BP分组 业务伙伴 供应商主数据 ME41 RFQ 库存物料 采购流程 ME51 消耗性物料 科目分配 采购申请 AC03 ML81N 外部服务 服务主数据 Business Partner SAP培训 ME51N MM模块 Lean Services MM-SRV 外部服务采购 PIR 供应来源 采购主数据 采购信息记录 ME31K 框架协议 计划协议 采购合同 ME01 供应来源确定 货源清单 MEQ1 供应源确定 配额安排 配额评分 MD04 MD21 MRP 计划文件 需求计划 批量程序 MD01N MD02 MRP Live MD05 MM 物料计划 优化采购 供应源 采购订单
联系我们
联系电话:15090125178(微信同号)
电子邮箱:garson_zhang@163.com
站长微信二维码
微信二维码