PVE-GPU直通虚拟机配置

PVE 到 QM NVIDIA L20 GPU 直通完整实践手册(openEuler / AI Engine 标准 SOP)

适用场景:

  • Proxmox VE(PVE)宿主机
  • NVIDIA L20 / AD102GL GPU
  • openEuler 22 / 24 Guest
  • 单卡直通(推荐生产)
  • AI 推理节点(vLLM / Docker GPU)

一、目标架构

宿主机

  • PVE(如:pm5)
  • 板载 ASPEED 显卡负责宿主显示
  • 2 × NVIDIA L20
  • VFIO 独占 GPU

虚拟机规划

  • VM116 → 63:00
  • VM117 → e1:00

Guest

  • openEuler 22 / 24
  • NVIDIA Driver
  • CUDA
  • Docker GPU Runtime
  • vLLM / DeepSeek / Qwen

二、PVE 宿主机准备(首次即可)

1)BIOS 配置

开启以下选项:

  • VT-d / Intel IOMMU = Enabled
  • Above 4G Decoding = Enabled
  • SR-IOV = Enabled(可选)

2)GRUB 开启 IOMMU

编辑:

1
vi /etc/default/grub

修改:

1
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt"

生效:

1
update-grub

3)加载 VFIO 模块

编辑:

1
vi /etc/modules

写入:

1
2
3
4
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd

4)黑名单宿主 NVIDIA 驱动

1
2
3
4
5
cat > /etc/modprobe.d/pve-blacklist.conf <<EOF
blacklist nouveau
blacklist nvidia
blacklist nvidiafb
EOF

5)绑定 GPU 到 vfio-pci

查看 GPU Device ID:

1
lspci -nn | grep -i nvidia

无论GPU Virtualization Mode是整卡直通还是vGPU,虚拟机/物理机都应该出现类似 Nvidia 或 vGPU 的关键字。

示例输出:

1
2
63:00.0 3D controller [0302]: NVIDIA Corporation AD102GL [L20] [10de:26ba]
e1:00.0 3D controller [0302]: NVIDIA Corporation AD102GL [L20] [10de:26ba]

写入 VFIO 配置:

1
echo 'options vfio-pci ids=10de:26ba disable_vga=1' > /etc/modprobe.d/vfio.conf

注意:这里必须写 vendor:device,不能写 PCI 地址。


6)刷新 initramfs 并重启

1
2
update-initramfs -u -k all
reboot

7)验证宿主机绑定是否成功

1
2
lspci -nnk -s 63:00.0
lspci -nnk -s e1:00.0

必须看到:

1
Kernel driver in use: vfio-pci

三、QM 单卡直通标准实践

1)VM116 → 直通 63:00

1
2
3
4
5
6
7
8
qm set 116 -cpu x86-64-v2-AES
qm set 116 -cores 64
qm set 116 -memory 65536
qm set 116 -hostpci0 0000:63:00
qm set 116 -boot order=scsi0\;net0
qm set 116 -delete bios
qm set 116 -delete machine
qm set 116 -delete vga

2)VM117 → 直通 e1:00

1
2
3
4
5
6
qm set 117 -cpu x86-64-v2-AES
qm set 117 -cores 32
qm set 117 -memory 65536
qm set 117 -hostpci0 0000:e1:00
qm set 117 -boot order=scsi0\;net0
qm set 117 -delete vga

四、启动虚拟机验证

启动虚拟机:

1
2
qm start 116
qm start 117

进入验证:

1
lspci | grep -iE 'nvidia|vga|3d'

应看到:

1
NVIDIA Corporation AD102GL [L20]

五、Guest openEuler 驱动安装

安装英伟达驱动的依赖:

RedHat系:

1
yum install -y kernel-devel-$(uname -r) kernel-headers-$(uname -r) gcc make dkms

Debian系:

1
apt install -y linux-headers-$(uname -r) build-essential dkms

查看显卡型号:

1
lspci | grep -iE 'nvidia|vga|3d'

下载地址:https://www.nvidia.cn/Download/index.aspx

安装 NVIDIA 驱动:

1
sh NVIDIA-Linux-*.run

无卡图例

主机无卡时如图所示

安装流程

一般直接一路回车即可

1

2

3

4

5

6

7

8

安装完成后验证:

1
nvidia-smi

驱动安装完成效果如图


六、Docker GPU Runtime

安装完驱动后,还需要安装nvidia-container-toolkit以支持容器运行时:

Redhat系

1
2
3
4
5
6
7
8
9
10
11
12
13
// 添加 NVIDIA Container Toolkit 仓库
curl -s -L https://nvidia.github.io/libnvidia-container/stable/rpm/nvidia-container-toolkit.repo | tee /etc/yum.repos.d/nvidia-container-toolkit.repo

// 如需使用国内镜像加速,替换为腾讯云源
sed -i 's/nvidia.github.io/mirrors.tencentyun.com/g' /etc/yum.repos.d/nvidia-container-toolkit.repo

yum install -y nvidia-container-toolkit
dnf install -y nvidia-container-toolkit

// 配置 Docker 使用 NVIDIA 运行时
nvidia-ctk runtime configure --runtime=docker

systemctl restart docker

Debian系

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// 添加 NVIDIA 官方 GPG 密钥并配置源
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | \
sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg && \
curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | tee /etc/apt/sources.list.d/nvidia-container-toolkit.list

// 如需使用国内镜像加速,替换为腾讯云源
sed -i 's/nvidia.github.io/mirrors.tencentyun.com/g' /etc/apt/sources.list.d/nvidia-container-toolkit.list

apt update
apt install -y nvidia-container-toolkit

// 配置 Docker 使用 NVIDIA 运行时
nvidia-ctk runtime configure --runtime=docker

systemctl restart docker

七、常见问题

1)vfio.conf 写错

错误示例:

1
ids=63:00.0

正确示例:

1
ids=10de:26ba

2)PVE 控制台打不开

如果配置了:

1
vga: none

PVE NoVNC 会报:

1
TASK ERROR: Failed to run vncproxy

建议:

  • 删除 vga 配置
  • 或保留默认虚拟显卡

PVE-GPU直通虚拟机配置
https://www.fishingrodd.cn/2026/04/10/PVE-GPU直通虚拟机配置/
作者
FishingRod
发布于
2026年4月10日
更新于
2026年4月11日
许可协议