跳转至

2 PVE显卡直通配置

在基于Proxmox Virtual Environment (PVE) 的虚拟化环境中,通过显卡直通(GPU Passthrough)技术,可以将宿主机的显卡直接分配给虚拟机以提升性能。以下详细介绍如何在 PVE 中实现显卡直通,并区分 nVidia、AMD 和 Intel 显卡的具体操作和注意事项。


1. 显卡直通概述

显卡直通通过IOMMU技术(Intel VT-d 或 AMD-Vi),将宿主机的硬件设备直接映射到虚拟机中,实现接近原生的性能。这在以下场景中特别有用: - 高性能游戏 - GPU计算任务(如机器学习、3D渲染) - 图形工作站虚拟化

要实现显卡直通,需确保以下条件: 1. CPU 和主板支持并启用 IOMMU(Intel VT-d 或 AMD-Vi)。 2. 显卡支持虚拟化直通。 3. PVE 设置支持直通功能。


2. 显卡直通设置步骤

2.1 启用 IOMMU

  1. 修改 PVE 主机的 GRUB 配置文件: 编辑 /etc/default/grub 文件,增加或修改以下内容:
  2. Intel 平台intel_iommu=on iommu=pt
  3. AMD 平台amd_iommu=on iommu=pt

完整示例:

GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt initcall_blacklist=sysfb_init pcie_acs_override=downstream"

  1. 更新 GRUB 配置并重启

    update-grub
    reboot
    

  2. 验证 IOMMU 是否启用: 重启后运行以下命令查看输出:

    dmesg | grep -e DMAR -e IOMMU
    
    如果有相关信息,说明 IOMMU 已成功启用。


2.2 查找设备并绑定驱动

  1. 获取显卡的 PCI ID: 运行以下命令,找到显卡及其音频设备的 PCI 地址:

    lspci -nnv
    
    例如,显卡可能显示为:
    03:00.0 VGA compatible controller [0300]: NVIDIA Corporation [Device ID]
    03:00.1 Audio device [0403]: NVIDIA Corporation [Device ID]
    

  2. 绑定显卡到 vfio-pci 驱动: 编辑 /etc/modules,添加以下内容:

    vfio
    vfio_iommu_type1
    vfio_pci
    vfio_virqfd
    
    /etc/modprobe.d/vfio.conf 文件中,添加显卡和音频设备的 PCI ID:
    options vfio-pci ids=10de:1c82,10de:0fb9
    

  3. 重建 initramfs 并重启

    update-initramfs -u
    reboot
    

  4. 验证绑定情况

    dmesg | grep -i vfio
    


2.3 配置虚拟机使用直通设备

  1. 在 PVE 界面配置 GPU
  2. 在虚拟机配置页面,点击“硬件” > “添加” > “PCI设备”。
  3. 选择对应的显卡和音频设备,勾选“启用设备直通”和“全功能”。

  4. 调整虚拟机启动参数

  5. 编辑 /etc/pve/qemu-server/<VMID>.conf,添加以下内容:
    args: -device vfio-pci,host=03:00.0,multifunction=on \
          -device vfio-pci,host=03:00.1
    

3. 显卡品牌的具体配置差异

3.1 nVidia 显卡

  • 注意事项
  • nVidia 显卡启用了 GeForce 系列的虚拟化限制(错误代码 43)。需使用以下方法绕过:
    • 在虚拟机配置中添加:
      args: -cpu host,kvm=off
      
    • 使用修改版驱动(风险较高)。
  • 若使用专业显卡(Quadro/RTX A 系列),无代码 43 限制。

  • 驱动安装: 在虚拟机内安装对应版本的 nVidia 驱动。


3.2 AMD 显卡

  • 优点:无虚拟化限制,开源驱动支持良好。
  • 常见问题
  • AMD 显卡有时需要设置 vendor-reset 模块以解决重启后无法正常使用的问题。
  • 使用 AMD Navi 系列显卡可能需要额外的补丁支持。

  • 驱动安装: AMD 显卡通常直接支持主流 Linux 系统,Windows 系统需安装官方驱动。


3.3 Intel 显卡

  • 适用范围:集成显卡(iGPU),如 Intel HD/UHD Graphics。
  • 设置方法
  • iGPU 直通需要在 BIOS 中启用 “iGPU Multi-Monitor” 或类似选项。
  • 在虚拟机中分配显卡时,确保启用了 x-vga=1

  • 注意事项

  • Intel iGPU 的性能一般较低,适合轻量级图形任务。
  • Linux 和 Windows 均支持 Intel 官方驱动。

4. 常见问题与调试

  1. 虚拟机无法启动或卡死
  2. 检查 IOMMU 分组是否正确隔离:
    find /sys/kernel/iommu_groups/ -type l
    
  3. 若不正确,启用 ACS 覆盖补丁。

  4. 黑屏问题

  5. 确认虚拟机内安装了正确的驱动。
  6. 添加 video=efifb:off 以避免冲突。

  7. 性能问题

  8. 确保未分配 GPU 的核心在虚拟机运行中保持空闲。

通过以上步骤,可以在 PVE 中实现显卡直通,nVidia、AMD 和 Intel 显卡各有特点,根据具体需求选择适配的硬件和配置方案。