前言:
PCIe Passthrough 技术允许虚拟机直接访问物理GPU设备,绕过宿主机系统,从而获得接近原生性能的图形处理能力。
目前我已在服务器完成了proxmox8.4.0的安装,并且安装了带有NVIDIA Tesla T4的显卡。现在我需要将显卡直接直通到一台vm实例上面。
1. 确认硬件和BIOS支持
- 检查显卡兼容性:Tesla T4是数据中心显卡,完全支持PCIe直通,非常适合虚拟化环境。
- 启用IOMMU:进入服务器BIOS,启用
Intel VT-d
(如果是Intel CPU)或AMD-Vi
(如果是AMD CPU)。 - 验证系统信息
# 输出确认当前proxmox server 是基于debian 12 版本的 8.4.0 proxmox操作系统
cat /etc/os-release
pveversion -v
# 显卡信息
lspci -nnk|grep "NVIDIA"
2. 配置Proxmox主机
① 修改GRUB参数,检查和启用IOMMU支持
# 备份原始配置
cp /etc/default/grub{
,.bak}
# 编辑GRUB配置
vi /etc/default/grub
在GRUB_CMDLINE_LINUX_DEFAULT
中添加(使用默认,pve版本为8.4.0):
# 修改 GRUB_CMDLINE_LINUX_DEFAULT 配置为
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt initcall_blacklist=sysfb_init pcie_acs_override=downstream"
# 注意:pve 7.2 以前版本使用
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt video=efifb:off,vesafb:off pcie_acs_override=downstream"
说明:
video=efifb:off
用于禁用主机对GPU的显示输出,确保虚拟机独占GPU。
intel_iommu=on
启用Intel平台的IOMMU支持。
iommu=pt
仅对直通设备启用IOMMU,减少性能开销。
initcall_blacklist=sysfb_init
防止宿主机占用显卡帧缓冲区。
pcie_acs_override=downstream
解决某些PCIe设备的ACS限制问题。
注意 :
对于AMD平台,需将intel_iommu=on
替换为amd_iommu=on
更新GRUB:
update-grub