在服务器上插了两块图形处理器,给虚拟机使用。
软硬件配置
服务器是戴尔的常见型号 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
推荐本站淘宝优惠价购买喜欢的宝贝:
本文链接:https://hqyman.cn/post/6916.html 非本站原创文章欢迎转载,原创文章需保留本站地址!
休息一下~~