PVE上启用Intel核显的SR-IOV vGPU
介绍
Intel SR-IOV vGPU是一种硬件虚拟化技术,它允许多个虚拟机共享单个物理GPU,而不会降低性能。SR-IOV定义了一种标准方法,通过将设备分区为多个虚拟功能来共享物理设备功能。每个虚拟功能直接分配给一个虚拟机,从而实现了接近本地性能的虚拟机。Intel Graphics SR-IOV是Intel的最新图形虚拟化技术,它允许多个虚拟机共享单个物理GPU,从而实现了在虚拟机中的GPU加速工作负载。
Intel第12代CPU是Intel的最新一代桌面处理器,也称为Alder Lake。它采用了全新的效能混合式架构,结合效能核心和效率核心,让游戏、生产力和创作更上层楼。第12代Intel Core桌面型处理器提供了全新的效能混合式架构,结合效能核心和效率核心,让游戏、生产力和创作更上层楼。
本文介绍了在12代Intel i5-12400 机器上配置 SR-IOV vGPU的过程。
第一步:安装Proxmox 7.4.1
1)下载 Proxmox 7.4 (proxmox-ve_7.4-1.iso)
2)使用Ventoy制作启动U盘。
Ventoy作为新一代U盘启动工具,不需要反复对U盘进行格式化。只需要把ISO拷贝到Ventoy制作好的U盘上即可。简化了启动U盘的制作。并且可以实现一个U盘实现多个系统的启动。
把 Proxmox的ISO文件拷贝Ventory制作的U盘根目录即可。
第二步:更新源,PVE启用Linux内核版本 6.1
更新源和安装 PVE kernel 6.1的过程,已经制作成了一键运行脚本。
脚本内容如下:
#!/bin/sh # Author: DoraCloud Technology Ltd.co # # Date: 2023/05/07 # # DoraCloud for Proxmox Enable vGPU # Phase 1: update source to mirrors.ustc.edu.cn cp /etc/apt/sources.list /etc/apt/sources.list.backup sed -i 's|^deb http://ftp.debian.org|deb https://mirrors.ustc.edu.cn|g' /etc/apt/sources.list sed -i 's|^deb http://security.debian.org|deb https://mirrors.ustc.edu.cn/debian-security|g' /etc/apt/sources.list mv /etc/apt/sources.list.d/pve-enterprise.list /etc/apt/sources.list.d/pve-enterprise.list.bak CODENAME=`cat /etc/os-release |grep PRETTY_NAME |cut -f 2 -d "(" |cut -f 1 -d ")"` echo "deb https://mirrors.ustc.edu.cn/proxmox/debian $CODENAME pve-no-subscription" > /etc/apt/sources.list.d/pve-no-subscription.list #更新 apt update -y apt dist-upgrade -y apt install pve-kernel-6.1 -y reboot
你也可以在 PVE中,直接通过如下命令在线下载运行脚本。
curl -o- http://vdi.doracloud.cn:9000/software/sriov01.sh |bash
脚本运行后,会重启PVE服务器,重启后,PVE的内核切换成了 6.1。 可以通过 uname -r 验证内核已经切换。
root@db12:/var/lib/vz/dump# uname -r 6.1.15-1-pve
第三步:安装 i915-sriov dkms模块,启用iommu,配置7个VF
重启后,执行如下脚本。脚本内容包括: 安装 i915-sriov-dkms 模块。 启用iommu。配置 SR-IOV的VF为7个。
脚本执行后,重启服务器。
#!/bin/sh # Author: DoraCloud Technology Ltd.co # # Date: 2023/05/07 # # Enable IO-MMU on PVE Server apt update && apt install pve-headers-$(uname -r) apt install git dkms build-* unzip -y wget http://vdi.doracloud.cn:9000/software/i915-sriov-dkms-6.1.tar.gz tar -zxvf i915-sriov-dkms-6.1.tar.gz -C /usr/src dkms install -m i915-sriov-dkms -v 6.1 dkms status # 复制如下脚本,启用IO-MMU echo "" echo "********************************************" echo "*** Enable IO-MMU on proxmox host ***" echo "********************************************" # /etc/default/grub 的GRUB_CMDLINE_LINUX_DEFAULT,增加 intel_iommu=on iommu=pt sed -i 's/GRUB_CMDLINE_LINUX_DEFAULT="quiet"/GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on i915.enable_guc=3 i915.max_vfs=7"/g' /etc/default/grub echo "" echo " Update grub .... " update-grub update-initramfs -u pve-efiboot-tool refresh echo "" echo " Install sysfsutils ,set sriov_numvfs=7" apt install sysfsutils -y echo "devices/pci0000:00/0000:00:02.0/sriov_numvfs = 7" > /etc/sysfs.conf echo "" echo " Please Verify SR-IOV by lspci |grep VGA after reboot ...." reboot
上述脚本,也可以在线运行。通过如下一行命令。
curl -o- http://vdi.doracloud.cn:9000/software/sriov02.sh |bash
服务器重启后,通过 lspci |grep VGA 命令确认 vgpu 已经启用。
root@db12:/var/lib/vz/dump# lspci |grep VGA 00:02.0 VGA compatible controller: Intel Corporation Device 4692 (rev 0c) 00:02.1 VGA compatible controller: Intel Corporation Device 4692 (rev 0c) 00:02.2 VGA compatible controller: Intel Corporation Device 4692 (rev 0c) 00:02.3 VGA compatible controller: Intel Corporation Device 4692 (rev 0c) 00:02.4 VGA compatible controller: Intel Corporation Device 4692 (rev 0c) 00:02.5 VGA compatible controller: Intel Corporation Device 4692 (rev 0c) 00:02.6 VGA compatible controller: Intel Corporation Device 4692 (rev 0c) 00:02.7 VGA compatible controller: Intel Corporation Device 4692 (rev 0c)
总结:12代CPU启用 SR-IOV的vGPU,只需要执行两个命令:
PVE安装后,执行如下命令,等待重启。
curl -o- http://vdi.doracloud.cn:9000/software/sriov01.sh |bash
然后执行如下命令,等待自动重启。
curl -o- http://vdi.doracloud.cn:9000/software/sriov02.sh |bash
最后使用 lspci |grep VGA 验证 vGPU已经启用。