核心逻辑区别:
直通 (Passthrough):PVE 把卡“吐”出来,给某一个 VM 独占。PVE 宿主机看不到显卡。
拆分 (vGPU):PVE 宿主机安装 NVIDIA 驱动“接管”显卡,然后切片分给多个 VM。PVE 宿主机必须能看到卡。
第一阶段:PVE 宿主机环境准备
1. 基础环境与依赖
vGPU 驱动需要编译安装,必须先安装内核头文件和编译工具。
Bash
# 更新源
apt update
# 安装依赖 (核心步骤)
apt install pve-headers-$(uname -r) build-essential dkms unzip mdevctl
2. 开启 IOMMU (硬件直通基础)
编辑 Grub 配置:
Bash
nano /etc/default/grub
修改 GRUB_CMDLINE_LINUX_DEFAULT:
Bash
# Intel CPU:
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt"
更新 Grub:
Bash
update-grub
3. 屏蔽开源驱动 (Nouveau)
必须禁用 Linux 自带的 Nouveau 驱动,否则官方驱动装不上。
Bash
echo "blacklist nouveau" >> /etc/modprobe.d/pve-blacklist.conf
echo "options nouveau modeset=0" >> /etc/modprobe.d/pve-blacklist.conf
update-initramfs -u
4. 关键差异:不要绑定 vfio-pci!
注意: 如果你之前做过直通,配置过 vfio.conf 绑定了显卡 ID,必须删掉!
因为做 vGPU 拆分时,需要让 NVIDIA 的宿主机驱动抓住这张卡,而不是让 vfio 隔离它。
Bash
# 检查是否存在,存在则删除或注释掉内容
rm /etc/modprobe.d/vfio.conf
# 或者检查 /etc/modprobe.d/pve-blacklist.conf 里有没有写 id
完成后重启 PVE: reboot
第二阶段:安装 NVIDIA vGPU Host 驱动 (拆分核心)
这一步是将 Tesla P4 变成“母鸡”的关键。下载链接里的 Linux 版本驱动(通常以 .run 结尾,例如 NVIDIA-Linux-x86_64-535.247.02-grid.run)。
1. 上传并安装驱动
将 .run 文件上传到 PVE 的 /root 目录。
Bash
# 赋予执行权限
chmod +x NVIDIA-Linux-x86_64-535.247.02-grid.run
# 运行安装程序
./NVIDIA-Linux-x86_64-535.247.02-grid.run
安装过程中的选项:
Accept License: Yes
Install 32-bit compatibility libraries? No (一般不需要)
Would you like to run the nvidia-xconfig? No (PVE不需要X服务)
2. 验证驱动安装
安装完成后,输入以下命令。如果能看到 Tesla P4 的信息列表,说明宿主机配置成功!
Bash
nvidia-smi
3. 启用 vGPU 服务 (SR-IOV / MDEV)
确保 vGPU 管理服务已启动:
Bash
systemctl status nvidia-vgpu-mgr
systemctl status nvidia-vgpud
第三阶段:配置虚拟机 (分配 vGPU 切片)
PVE 8.x 对 vGPU 的支持已经非常完善,直接在 UI 操作即可。
1. 创建/配置 Windows 虚拟机
Machine:
q35BIOS:
OVMF (UEFI)CPU:
host
2. 添加 vGPU 设备
在虚拟机 硬件 (Hardware) -> 添加 (Add) -> PCI 设备:
Raw Device: 选择你的 NVIDIA Tesla P4 (例如
0000:04:00.0)。MDev Type (关键): 这里就是“拆分”的选项。点击下拉菜单,你会看到不同的配置文件,例如:
nvidia-62(P4-1Q, 1GB显存, 允许开 8 台 VM)nvidia-63(P4-2Q, 2GB显存, 允许开 4 台 VM)nvidia-65(P4-8Q, 8GB显存, 独占完整性能)建议选择
nvidia-65(P4-8Q) 给主力机,或者按需切分。
Primary GPU: ❌ 不要勾选 (这很重要,防黑屏)。
PCI-Express: ✅ 勾选。
第四阶段:Windows 虚拟机内部设置
1. 解决“黑屏”隐患 (RDP 准备)
在安装显卡驱动前,确保你已经开启了 Windows 远程桌面 (RDP)。
确保你知道虚拟机的 IP 地址。
2. 安装 Guest 驱动
通过 PVE 控制台或 RDP 进入虚拟机。
将配套的 Windows 版本驱动 (例如
535.247.01_grid_win10_...exe) 拷贝进去安装。注意版本匹配:Guest 驱动版本必须严格匹配 Host 驱动版本(主版本号一致)。
3. 授权与模式 (License)
你下载的 535.xx 系列 Grid 驱动通常需要授权服务器。
情况 A (你是正版/企业环境):填写 License Server 地址。
情况 B (个人/Homelab 破解):
通常使用
FastAPI-DLS搭建本地授权服务。或者该驱动版本是特殊的“免授权/硬改”版本。
如果设备管理器里显卡状态正常,运行
nvidia-smi显示授权状态为Licensed或Unlicensed (Unrestricted),则无需理会。
4. 解决“有驱动无画面” (虚拟显示器)
安装完 vGPU 驱动重启后,PVE 网页控制台可能会卡死或黑屏。
使用 RDP 远程连接进入系统。
下载并安装 USBMMIDD (虚拟显示器驱动)。
运行
usbmmidd.bat添加一个虚拟屏幕。在显示设置里,将这个虚拟屏幕设为“扩展”或“仅显示在2”。