03
2024
07
00:33:51

ProxmoxVE直通Nvidia GPU给虚拟机

在服务器上插了两块图形处理器,给虚拟机使用。

软硬件配置

服务器是戴尔的常见型号 PowerEdge R750

# dmidecode -t 1

# dmidecode 3.4

Getting SMBIOS data from sysfs.

SMBIOS 3.3.0 present.


Handle 0x0100, DMI type 1, 27 bytes

System Information

Manufacturer: Dell Inc.

Product Name: PowerEdge R750

Version: Not Specified

Serial Number: xxxxxxx

UUID: 4c4c4544-0047-4d10-8056-xxxxxxxxx

Wake-up Type: Power Switch

SKU Number: SKU=090E;ModelName=PowerEdge R750

Family: PowerEdge

GPU是NVIDIA的A100 SXM4 80G


#  lspci -d 10de:

b1:00.0 3D controller: NVIDIA Corporation GA100 [A100 SXM4 80GB] (rev a1)

ca:00.0 3D controller: NVIDIA Corporation GA100 [A100 SXM4 80GB] (rev a1)

ProxmoxVE 版本是8.2.2


# pveversion 

pve-manager/8.2.2/9355359cd7afbae4 (running kernel: 6.8.8-2-pve)

测试兼容性

现在的软硬件一般都支持,以下是一些基本的要求


CPU 必须支持硬件虚拟化


CPU支持虚拟化,intel的技术叫vmx,AMD的技术叫svm,这台服务器使用的是Intel(R) Xeon(R) Gold 5320 CPU @ 2.20GHz。测试命令


# egrep '(vmx|svm)' --color=always /proc/cpuinfo


图片


确认 IOMMU 开启


并且开启了中断重映射(remapping enabled) 


# dmesg | grep -e DMAR -e IOMMU | grep IOMMU

[    2.321360] DMAR-IR: IOAPIC id 8 under DRHD base  0x9b7fc000 IOMMU 9

Verify IOMMU interrupt remapping is enabled

或者执行


# dmesg | grep 'remapping'

[    2.328229] DMAR-IR: Queued invalidation will be enabled to support x2apic and Intr-remapping.

[    2.330817] DMAR-IR: Enabled IRQ remapping in x2apic mode

ADM的GPU报告是AMD-Vi: Interrupt remapping enabled


在没有中断重映射的情况下,无法使用 PCI 直通。设备分配失败时会出现


'Failed to assign device "[device name]": Operation not permitted' 


或者


'Interrupt Remapping hardware not found, passing devices to unprivileged domains is insecure.'. 


所有使用英特尔处理器和芯片组、支持英特尔定向 I/O 虚拟化技术(VT-d)但不支持中断重映射的系统都会出现此类错误。较新的处理器和芯片组(包括 AMD 和英特尔)都支持中断重映射。


确认IOMMU 隔离


要实现有效的 PCI 直通,需要为要分配给虚拟机的所有 PCI 设备建立专门的 IOMMU 组,查询命令


# pvesh get /nodes/{nodename}/hardware/pci --pci-class-blacklist ""

如本机节点名称{nodename}是pve

# pvesh get /nodes/pve/hardware/pci --pci-class-blacklist "" | grep -i nvi

│ 0x030200 │ 0x20b2 │ 0000:b1:00.0 │         11 │ 0x10de │ GA100 [A100 SXM4 80GB]                                       │      │ 0x1463           │                           │ 0x10de           │ NVIDIA Corporation    │ NVIDIA Corporation              │

│ 0x030200 │ 0x20b2 │ 0000:ca:00.0 │          9 │ 0x10de │ GA100 [A100 SXM4 80GB]                                       │      │ 0x1463           │                           │ 0x10de           │ NVIDIA Corporation    │ NVIDIA Corporation              │

要拥有独立的 IOMMU 组,处理器必须支持 ACS(访问控制服务)功能。请确保为此启用 BIOS 中的相应设置。


如果没有专用的 IOMMU 组,可以尝试将卡移至另一个 PCI 插槽。


ProxmoxVE和虚拟机配置


PVE


升级到最新的版本


禁用自动安装的开源驱动Nouveau Driver


# echo "blacklist nouveau" >> /etc/modprobe.d/blacklist.conf

安装DKMS

升级内核版本时候驱动自动升级GPU驱动,其实这是为vGPU所做的操作,直通用不上的


# apt install dkms libc6-dev proxmox-default-headers --no-install-recommends

虚拟机


GPU 的 ROM 不一定需要支持 UEFI,但大多数现代 GPU 都支持 UEFI。如果 GPU ROM 支持 UEFI,建议虚拟机的BIOS使用OVMF (UEFI) 而不是 默认的SeaBIOS。


配置如下,这里还直通了两块SSD给虚拟机


# qm config 120

agent: 1

bios: ovmf

boot: order=scsi0;ide2;ide0;net0

...

cores: 32

cpu: host

efidisk0: vms:120/vm-120-disk-1.qcow2,efitype=4m,pre-enrolled-keys=1,size=528K

hostpci0: 0000:ca:00

hostpci1: 0000:b1:00

hostpci2: mapping=SSD-1

hostpci3: mapping=SSD-2

......

memory: 131072

meta: creation-qemu=8.1.5,ctime=1719413530

name: gpu-a100

net0: virtio=BC:24:11:CC:79:18,bridge=vmbr0,firewall=1

numa: 0

ostype: l26

scsi0: vms:120/vm-120-disk-0.qcow2,iothread=1,size=100G

scsihw: virtio-scsi-single

smbios1: uuid=e0016275-31f9-42d4-82d6-xxxxxxxxx

sockets: 2

...

找个ubuntu测试,安装后虚拟机内部可见GPU和SSD


图片


这卡似乎支持vGPU,但是没有NVIDIA授权,就算了。


参考文档


https://pve.proxmox.com/wiki/PCI_Passthrough


https://pve.proxmox.com/wiki/NVIDIA_vGPU_on_Proxmox_VE




推荐本站淘宝优惠价购买喜欢的宝贝:

image.png

本文链接:https://hqyman.cn/post/6916.html 非本站原创文章欢迎转载,原创文章需保留本站地址!

分享到:
打赏





休息一下~~


« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

请先 登录 再评论,若不是会员请先 注册

您的IP地址是: