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开发框架网发布内容,转载请附上原文出处连接
张国生
上一篇:谷歌浏览器下载地址
下一篇:Exsi迁移到pve
评论列表

发表评论

评论内容
昵称:
关联文章

PVE8硬件直通
PVE 虚拟机使用AX210蓝牙直通
pve硬盘直通,定位硬盘
硬件相关说明
PVE安装openwrt
Exsi迁移到pve
PVE AX210无线网卡
安装 SQL Server 2012 的硬件和软件要求(官方全面)
PVE虚拟机删除local-lvm分区
MySQL 8.0 绿色版安装
C#8.0 可空引用类型
.NET中大型项目开发必备(8)--高效分页
附录:ASCII、UTF8、Uncicode 编码下的中英文字符大小
如何在 .NET 8 服务中指定端口号启动:最佳实践与动态配置
使用.NET 6开发TodoList应用(8)——实现全局异常处理
虚拟机安装IKuai参考
PVE磁盘测试
.net8多环境配置与切换
虚拟机安装OpenWrt参考
mysql服务器端运行环境要求

联系我们
联系电话:15090125178(微信同号)
电子邮箱:garson_zhang@163.com
站长微信二维码
微信二维码