云祺Logo 云祺Logo

在 Proxmox VE 上设置 GPU 直通

2026-07-24

GPU 直通技术使虚拟机能够直接访问物理 GPU,从而提升计算或图形处理任务的性能。本文将介绍如何在 Proxmox VE 上配置 GPU 直通。

什么是 Proxmox GPU 直通?

GPU 直通通过 VFIO 将主机的 GPU 绑定到虚拟机。主机内核会解除 GPU 的绑定,并将其交由客户机使用,从而实现接近原生的性能表现。Proxmox VE 利用 KVM 和 VFIO 模块来完成这一绑定过程。您必须确认硬件支持并配置 IOMMU。还需调整 BIOS 和内核设置,以确保主机将 GPU 的独占控制权交予虚拟机。

Proxmox 上 GPU 直通的先决条件

开始之前,请确认 CPU、主板、BIOS 和 GPU 均支持 GPU 直通。CPU 必须支持 IOMMU:Intel VT-d 或 AMD-Vi。BIOS 必须启用这些选项,以及 4G 解码或“高于 4G 解码”(Above 4G decoding)。

警告:将主机的主显卡直通给虚拟机可能导致主机失去响应,除非您具备带外管理能力(例如 IPMI 或基于 IP 的 KVM)。若直通的是主机控制台所依赖的唯一显卡,某些系统需禁用 CSM/传统启动模式。对于 UEFI 虚拟机,显卡固件(GPU ROM)必须支持 UEFI GOP;否则虽可使用 SeaBIOS 启动,但功能将受限。请加载 VFIO 模块:vfiovfio_pcivfio_iommu_type1(在较旧版本的 Proxmox 上还需加载 vfio_virqfd)。请确认 IOMMU 分组已将显卡及其配套音频设备单独隔离,避免与关键设备共享同一分组。可使用 Proxmox API 或命令 lspci -nnk 查看分组情况。

ACS 覆盖警告

部分硬件缺乏正确的 ACS 分组功能。您可添加 pcie_acs_override=downstream ,或使用 vfio_iommu_type1.allow_unsafe_interrupts=1。仅在必要时使用。ACS 覆盖可能带来安全或稳定性风险。建议优先选用支持原生隔离功能的硬件。

如何在 Proxmox 上设置 GPU 直通?

1. 主机配置

首先,在 BIOS 或 UEFI 中启用 IOMMU。启用“Intel VT-d”或“AMD IOMMU”,以及(如存在)“Above 4G decoding”。若主机控制台使用 UEFI 并通过 GPU 显示,则需禁用 CSM。然后重启进入 Proxmox VE。

安全地编辑 GRUB。对于 Intel 系统,请运行:

sed -i 's/GRUB_CMDLINE_LINUX_DEFAULT="[^"]*/& intel_iommu=on iommu=pt/' /etc/default/grub

对于AMD,请运行:

sed -i 's/GRUB_CMDLINE_LINUX_DEFAULT="[^"]*/& amd_iommu=on iommu=pt/' /etc/default/grub

如果需要启用 ACS 覆盖,请在空格后添加 pcie_acs_override=downstream。然后运行 update-grub 并重启系统。验证 IOMMU 是否已启用:cat /proc/cmdline | grep iommudmesg | grep -e DMAR -e AMD-Vi。您应能看到中断重映射已启用。

2. 加载和屏蔽模块

为 VFIO 创建专用的 modprobe 文件:

在较旧版本的 Proxmox 中,还需加载 vfio_virqfd。通过独立文件屏蔽 GPU 驱动程序。对于 NVIDIA:

echo "blacklist nouveau" > /etc/modprobe.d/blacklist-nouveau.confecho "blacklist nvidiafb" > /etc/modprobe.d/blacklist-nvidia.conf

适用于 AMD:

echo "blacklist amdgpu" > /etc/modprobe.d/blacklist-amdgpu.confecho "blacklist radeon" > /etc/modprobe.d/blacklist-radeon.conf

适用于 Intel 集成显卡:

echo "blacklist i915" > /etc/modprobe.d/blacklist-i915.conf

拉入黑名单后,重新生成 initramfs:update-initramfs -u。调试 initramfs 问题:journalctl -b 0 | grep vfio。重启并确认:lsmod | grep vfio

3. 验证 IOMMU 分组

运行:

pvesh get /nodes/<nodename>/hardware/pci --pci-class-blacklist ""

或者检查 /sys/kernel/iommu_groups。识别显卡及其音频功能所属的组。确保该组内没有关键设备共用。若分组范围过宽,可在 GRUB 中启用 ACS 覆盖选项,然后重启并重新检查。通过日志确认 ACS 相关信息:dmesg | grep ACS

使用 lspci -tv 命令将设备映射到 CPU 插槽,以优化 NUMA 局部性。选择与 GPU 所在 NUMA 节点一致的宿主机 CPU 和虚拟机 CPU 绑定策略。

4. 主机模块绑定(高级)

如果自动绑定失败,请在 VFIO 配置中指定 ID:

echo "options vfio-pci ids=1234:5678,abcd:ef01" > /etc/modprobe.d/vfio-ids.conf

请使用 lspci -nn 命令输出的供应商:设备 ID 替换此处。如有需要,请添加 softdep:

echo "softdep <drivername> pre: vfio-pci" > /etc/modprobe.d/<drivername>.conf

更新 initramfs 并重启。通过 lspci -nnk 确认 GPU 已绑定至 vfio-pci

5. 虚拟机配置

机器和固件设置中,选择q35芯片组;对于UEFI,请选择OVMF。确保固件变量分区大小≥1MB(Proxmox会自动处理)。请确认GPU ROM支持UEFI GOP;若不支持,则需使用SeaBIOS,但功能将受限。

在虚拟机的硬件选项卡中,点击添加,然后选择PCI 设备。选择 GPU 地址(例如:00:02.0)。如果音频设备是独立的,请勾选全部功能。启用PCIe(pcie=on)。如果这是唯一的 GPU,请勾选主 GPU(x-vga=on)。通过命令行界面操作:

qm set <VMID> -machine q35 -hostpci0 01:00.0,pcie=on,x-vga=on

多功能:

qm set 100 -hostpci0 01:00.0,rombar=0 -hostpci1 01:00.1

将此配置绑定到用于 GPU 任务的虚拟机。

6. 客户操作系统安装

正常安装客户操作系统。Windows 系统:为避免出现“错误代码 43”,请安装 NVIDIA 官方显卡驱动程序,版本号需为 465 或更高版本。隐藏虚拟机监视器:添加 CPU 参数:

args: -cpu 'host,kvm=off,hv_vendor_id=proxmox'

若供应商锁定驱动程序,请转储GPU的ROM,或在虚拟机高级设置中伪造设备ID。Linux系统:安装驱动程序,并测试CUDA/OpenCL或图形应用程序。需要将本地显示器连接至GPU,或在客户机内使用RDP/VNC;Proxmox控制台无法显示GPU输出。

别忘了备份您的虚拟机!

为确保在配置GPU直通或进行未来更新期间Proxmox虚拟机的安全,部署一套可靠的备份方案至关重要。Vinchin备份与恢复是一款专业的企业级虚拟机备份解决方案,支持Proxmox VE以及VMwareHyper-VXenServeroVirt等主流虚拟化平台。凭借无代理备份、基于CBT的增量备份、即时恢复和自动调度等功能,Vinchin可帮助您以极少的操作投入,保障Proxmox虚拟环境的安全。无论您运行的是计算密集型工作负载,还是GPU加速型虚拟机,Vinchin都能确保您的数据与配置始终安全、可恢复。

要备份您的 Proxmox 虚拟机,请执行与该虚拟机关联的四个步骤:

1. 选择要备份的 Proxmox 虚拟机

选择要备份的 Proxmox 虚拟机

2. 选择备份存储位置

选择备份存储位置

3. 配置备份策略

配置备份策略

4. 提交任务

提交工作

Vinchin 拥有全球用户群和高评分。立即获取15天全功能免费试用

下载按钮

下载免费试用版

适用于多种数据备份

* 15天全功能免费安全下载

Proxmox GPU直通常见问题解答

问题1:如何检查CPU的IOMMU支持?

A1:运行 dmesg | grep -e DMAR -e AMD-Vi,并查找是否启用了中断重映射。

Q2:如何在 IOMMU 组中隔离 GPU?

A2:仅在必要时使用 ACS 覆盖:将 pcie_acs_override=downstream 添加到 GRUB 并重启以分离设备。

问题3:控制台屏幕空白时,如何访问来宾显示界面?

A3:将显示器连接到GPU,或在客户操作系统内设置RDP/VNC。

Q4:直通GPU为何显示“错误 43”?

A4:隐藏 Hyper-V/KVM,使用最新驱动程序,伪造厂商/设备 ID,或在 GPU ROM 被锁定时转储其内容。

结论

在 Proxmox 上启用 GPU 直通可显著提升虚拟机性能。请依次完成硬件检测、BIOS 设置调整以及内核参数修改;加载 VFIO 模块,隔离 IOMMU 组,并将 GPU 绑定至 VFIO;配置虚拟机时,尽可能选用 q35 芯片组和 OVMF 固件;通过 CPU 亲和性设置与 NUMA 优化以获得最佳性能;针对“错误代码 43”、重置异常及日志问题进行故障排查;关键配置变更前务必做好备份。Vinchin 提供可靠的备份方案,全面保障您的虚拟机及数据安全。

云祺备份软件,云祺容灾备份系统,虚拟机备份,数据库备份,文件备份,实时备份,勒索软件,美国,图书馆

您可能感兴趣的新闻 换一批

现在下载,可享15天免费试用

立即下载

请添加好友为您提供支持
jia7jia_7

微信售后服务二维码

请拨打电话
为您提供支持

400-9955-698