Proxmox VE 8.4.0显卡直通完整指南:NVIDIA Tesla T4 实战

前言:

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

### 配置 Proxmox VE 中的 GPU 直通以实现虚拟机直接访问显卡 #### 确认硬件和系统支持 确保服务器的硬件和 BIOS 设置支持 IOMMU。Tesla T4 是数据中心级显卡,完全支持 PCIe 直通,非常适合用于虚拟化环境中的 GPU 直通配置 [^1]。 进入服务器 BIOS 并启用以下选项: - 对于 Intel CPU:启用 **Intel VT-d** - 对于 AMD CPU:启用 **AMD-Vi** 确认当前运行的 Proxmox 版本以及底层操作系统版本: ```bash cat /etc/os-release # 查看操作系统版本(应为 Debian 12) pveversion -v # 查看 Proxmox 版本(应为 8.4.0) ``` #### 安装必要的软件组件 在 Proxmox 主机上安装 `vfio-pci` 和相关驱动程序,以确保可以将物理设备绑定到虚拟机中使用: ```bash apt update apt install qemu-system-x86 qemu-kvm libvirt-daemon-system ovmf vfio-pci ``` #### 检查并记录 GPU 设备信息 使用 `lspci` 命令查找 NVIDIA Tesla T4 的 PCI 地址: ```bash lspci -i | grep NVIDIA ``` 输出示例如下: ``` 41:00.0 VGA compatible controller: NVIDIA Corporation TU104GL [Tesla T4] (rev a1) ``` 记下设备地址(如 `41:00.0`),后续配置时需要使用 [^2]。 #### 绑定 GPU 到 VFIO 驱动 编辑 `/etc/default/grub` 文件,在 `GRUB_CMDLINE_LINUX` 中添加以下内容以启用 IOMMU 支持: ```bash GRUB_CMDLINE_LINUX="intel_iommu=on iommu=pt vfio-pci.ids=10de:XXYY" ``` 其中 `10de:XXYY` 是 NVIDIA 显卡的 PCI ID,可以通过 `lspci -nnk | grep NVIDIA` 获取完整 ID。对于 Tesla T4,通常为 `10de:1eb8`。 更新 GRUB 和 initramfs: ```bash update-grub update-initramfs -u ``` #### 在 Proxmox VE 中配置 GPU 直通 登录 Proxmox Web 管理界面,选择目标虚拟机进行编辑: 1. 进入“硬件”选项卡。 2. 点击“添加” -> “PCI 设备”。 3. 选择之前记录的 GPU 地址(如 `41:00.0`)。 4. 启用“所有功能”和“PCI-Express”模式 [^3]。 保存配置后启动虚拟机。 #### 在虚拟机内验证 GPU 是否成功直通 启动虚拟机后,通过终端检查是否识别到了 GPU 设备: ```bash lspci -nnk | grep NVIDIA ``` 输出示例: ``` 00:05.0 VGA compatible controller [0300]: NVIDIA Corporation TU104GL [Tesla T4] (rev a1) ``` 接下来安装 NVIDIA 驱动程序: ```bash apt update apt install nvidia-driver nvidia-smi ``` 验证驱动是否加载成功: ```bash nvidia-smi ``` 如果命令成功执行并显示 Tesla T4 的状态,则表示 GPU 已正确直通至虚拟机并正常工作 [^4]。 #### 注意事项 - 确保宿主机不使用该 GPU,否则会导致直通失败。 - 如果使用多个 GPU 或其他设备直通,请重复上述步骤。 - 可考虑使用 OVMF 固件(UEFI 模式)提升兼容性。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值