pve 8 直通 pcie 设备 VM 虚拟机

本文介绍了PCIe直通在虚拟化环境中的应用,涉及硬件需求、BIOS设置、检查直通状态、启用IOMMU模块以及在ProxmoxVE中的配置步骤,以优化虚拟机性能和兼容性。
摘要由CSDN通过智能技术生成

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”类型的设备 “硬件”选项卡。或者,可以使用命令行。

lspci
复制

比如说要查看pcie网卡信息

lspci | grep -i ethernet 
复制

3 查看硬件直通情况

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

 dmesg | grep -e DMAR -e IOMMU
复制

4 开启硬件直通

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

  1. 只需要打开
nano /etc/default/grub
复制

修改这一行

 GRUB_CMDLINE_LINUX_DEFAULT="quiet"
复制

intel的cpu改为这个

GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt"
复制

amd改为这个

GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on iommu=pt"
复制

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

  1. 更新 GRUB
 update-grub
复制

5 增加系统内核模块

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

nano /etc/modules
复制

添加

 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上,这可以通过执行以下命令来完成:

update-initramfs -u -k all
复制

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

lsmod | grep vfio
复制

应包括上面的四个模块。

6 检查直通情况

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

dmesg | grep -e DMAR -e IOMMU
复制

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

接下来就可以为虚拟机正常的添加硬件直通了。
其他的黑名单都不用设置,官方贴心的自动禁用了。

7 虚拟机配置

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

  • 43
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值