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)

https://mirrors.ustc.edu.cn/proxmox/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已经启用

你可能感兴趣的:(SR-IOV,vGPU,Proxmox,PVE)