在EPYC平台的PVE环境中直通英伟达显卡到Ubuntu虚拟机,需要按照以下步骤进行配置:
一、BIOS设置
首先需要在主板BIOS中开启相关虚拟化功能:
• AMD平台:开启SVM Mode和IOMMU
• Intel平台:开启VT-d
• 确保UEFI启动模式,关闭Legacy boot或CSM
二、PVE宿主机配置
- 修改GRUB启动参数
编辑/etc/default/grub文件,修改GRUB_CMDLINE_LINUX_DEFAULT参数:1
2
3
4
5# AMD平台
GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on iommu=pt initcall_blacklist=sysfb_init pcie_acs_override=downstream"
# Intel平台
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt initcall_blacklist=sysfb_init pcie_acs_override=downstream"
更新GRUB配置:update-grub
加载VFIO模块
编辑/etc/modules文件,添加以下模块:1
2
3vfio_iommu_type1
vfio_pci
vfio_virqfd屏蔽宿主机显卡驱动
编辑/etc/modprobe.d/pve-blacklist.conf,添加黑名单:1
2
3
4
5
6
7
8
9
10
11
12
13
14# NVIDIA显卡
blacklist nvidiafb
blacklist nouveau
blacklist nvidia
# AMD显卡
blacklist amdgpu
blacklist radeon
# Intel集显
blacklist snd_hda_codec_hdmi
blacklist snd_hda_intel
blacklist snd_hda_codec
blacklist snd_hda_core配置vfio-pci绑定
获取显卡设备ID:1
2lspci -nn | grep -i "VGA"
lspci -nn | grep -i "audio"
创建/etc/modprobe.d/vfio.conf文件:
1 | options vfio-pci ids=10de:1287,10de:0e0f |
忽略NVIDIA显卡警告
编辑/etc/modprobe.d/kvm.conf:1
options kvm ignore_msrs=1 report_ignored_msrs=0
更新内核并重启
1
2update-initramfs -u -k all
reboot
三、验证配置
重启后验证IOMMU是否启用:
1 | dmesg | grep -e DMAR -e IOMMU |
检查vfio-pci是否接管显卡:
1 | lspci -nnk | grep -A3 -E "10de:1287|10de:0e0f" |
四、创建Ubuntu虚拟机
- 虚拟机配置
• 机型:选择q35
• BIOS:改为UEFI(OVMF)
• CPU类型:设为host(提升性能兼容性)
• 内存:建议8GB及以上
• 磁盘:SCSI控制器选择VirtIO SCSI
- 添加显卡设备
在PVE Web界面中:
选择目标虚拟机 → “硬件”
点击”添加” → “PCI设备”
选择目标显卡设备
重要:勾选”所有功能(All Functions)”和”PCI-Express”
保存设置
关闭安全启动
在虚拟机BIOS中关闭Secure Boot,避免驱动安装问题
五、Ubuntu虚拟机内安装驱动
添加NVIDIA PPA
1
2sudo add-apt-repository ppa:graphics-drivers/ppa -y
sudo apt update安装推荐驱动
在Manual Driver Search中查看显卡在环境推荐的驱动版本号
sudo apt install nvidia-driver-xxx禁用nouveau驱动
1
2echo -e "blacklist nouveau\noptions nouveau modeset=0" | sudo tee /etc/modprobe.d/blacklist-nouveau.conf
sudo update-initramfs -u重启并验证
1
2sudo reboot
nvidia-smi
六、常见问题排查
- 直通成功但nvidia-smi无输出
检查是否在PVE中正确添加了PCI设备,确保勾选了”所有功能”
- 驱动安装报错
• 确保关闭了安全启动
• 检查内核版本兼容性
• 尝试安装开源版本驱动(对于50系列显卡)
- 性能问题
• 确保CPU类型设置为host
• 启用NUMA支持
• 配置大页内存(可选)
通过以上步骤,您应该能够在EPYC平台的PVE环境中成功直通英伟达显卡到Ubuntu虚拟机,实现接近原生性能的GPU加速功能。