赞
踩
要为VM提供图形引擎,一般分为3种:
1、软件模拟图形-性能差
2、显卡直通-性能最好,一个虚拟机独享一个显卡
3、vGPU-性能好,多个虚拟机共享一个显卡
目前市面上的主流GPU厂家有intel、amd、nvidia,本篇文章主要介绍nvidia的显卡虚拟化,使用环境介绍:
操作系统:debain 11.5
PVE:7.4.-17
Nvidia:P40 24G 两片
PVE的安装我们本节略去,主要讨论vGPU的设置
一:配置软件源
- rm /etc/apt/sources.list
- rm /etc/apt/sources.list.d/*
- echo "deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free">>/etc/apt/sources.list
- echo "deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free">>/etc/apt/sources.list
- echo "deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free">>/etc/apt/sources.list
- echo "deb https://mirrors.tuna.tsinghua.edu.cn/debian-security bullseye-security main contrib non-free">>/etc/apt/sources.list
- echo "deb https://mirrors.tuna.tsinghua.edu.cn/proxmox/debian bullseye pve-no-subscri
二:安装必要的软件包
apt install dkms git build-essential pve-kernel-5.15 pve-headers-5.15 dkms cargo jq uuid-runtime -y
三:配置内核
- echo vfio >> /etc/modules
- echo vfio_iommu_type1 >> /etc/modules
- echo vfio_pci >> /etc/modules
- echo vfio_virqfd >> /etc/modules
- echo "blacklist nouveau" >> /etc/modprobe.d/blacklist.conf
- echo "options kvm ignore_msrs=1" > /etc/modprobe.d/kvm.conf
- update-initramfs -k all -u
四:配置引导
- #编辑grub,根据自己的环境,选择设置
- vim /etc/default/grub
- #在里面找到:
- GRUB_CMDLINE_LINUX_DEFAULT="quiet"
- #然后修改为:
- GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on"
- #更新引导
- update-grub
安装完后,重启服务器
五:为debian安装显卡虚拟驱动
1、相关依赖
- #安装gcc和g++
- sudo apt update
- sudo apt install gcc g++
-
- #查看版本
- gcc --version
- g++ --version
-
- sudo apt install make
- sudo apt install make-guile
-
- #查看make版本
- make -v
2、禁用系统自带Nvidia驱动
- #首先,编辑黑名单配置。
- vim /etc/modprobe.d/blacklist.conf
- #在文件的最后添加下面两行。在第三步通过echo加入的,请打开文件验证是否正确添加。
-
- blacklist nouveau
- options nouveau modeset=0
-
- #然后,输入下面的命令更新并重启。
-
- update-initramfs -u
- reboot
-
- #重启后输入下面的命令验证是否禁用成功,成功的话这行命令不会有输出。
- lsmod | grep nouveau
-
- #重启服务器后使用apt卸载已有的驱动,命令如下。
- apt-get purge nvidia*
3、下载虚拟驱动
注意这里下载的不是普通的nvidia驱动,而是要下载vgpu驱动,下载地址如下:
https://foxi.buduanwang.vip/pan/foxi/Virtualization/vGPU/
下载最新版本的vGPU驱动。这里注意一下,grid版本是给vm用的,kvm版是给PVE用的。
4、安装vGPU驱动
- chmod +x NVIDIA-Linux-x86_64-510.85.03-vgpu-kvm.run
- sh -c ./NVIDIA-Linux-x86_64-510.85.03-vgpu-kvm.run --dkms
六:安装vgpu_unlock
这一步本人多次偿试基本上没有办法离线安装,大家可以参考我的那编squid代理网络设置,实现代理访问github。会魔法的小伙伴也可以自行想办法。
- cd /opt && git clone https://github.com/mbilker/vgpu_unlock-rs.git
- cd /opt/vgpu_unlock-rs
- cargo build --release
发现仍有报错,不过也没关系,后面也一样能成功。根据存放位置在下方的配置中对应修改。
- mkdir /etc/systemd/system/{nvidia-vgpud.service.d,nvidia-vgpu-mgr.service.d}
- echo -e "[Service]\nEnvironment=LD_PRELOAD=/opt/vgpu_unlock-rs/target/release/libvgpu_unlock_rs.so" > /etc/systemd/system/nvidia-vgpud.service.d/vgpu_unlock.conf
- echo -e "[Service]\nEnvironment=LD_PRELOAD=/opt/vgpu_unlock-rs/target/release/libvgpu_unlock_rs.so" > /etc/systemd/system/nvidia-vgpu-mgr.service.d/vgpu_unlock.conf
- systemctl daemon-reload
然后重启服务器
七:验证
1、验证PVE内核
- uname -r
- 5.15.131-2-pve
2、使用mdevctl types 验证是否出现mdev设备
mdevctl types
八:将vGPU配置到VM
1、安装一台vm,操作系统我使用的ubuntu22.04
2、然后在“硬件”添加“PCI设备”
在设备中选择一片P40,MDev类型打开,向下拉,我选择了一个12G的vGPU。ROM-Bar要打勾。PCI-Express要打勾。
3、启动vm并安装vGPU驱动。
安装方法请参照第五节,使用驱动,注意在vm里要使用“NVIDIA-Linux-x86_64-510.85.02-grid.run”驱动。驱动安装完后,可以执行:
nvidia-smi
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。