当前位置:   article > 正文

PVE 7.4-17 中开启vGPU显卡虚拟化_pve vgpu

pve vgpu

要为VM提供图形引擎,一般分为3种:
1、软件模拟图形-性能差
2、显卡直通-性能最好,一个虚拟机独享一个显卡
3、vGPU-性能好,多个虚拟机共享一个显卡

目前市面上的主流GPU厂家有intel、amd、nvidia,本篇文章主要介绍nvidia的显卡虚拟化,使用环境介绍:

操作系统:debain 11.5

PVE:7.4.-17

Nvidia:P40 24G 两片

PVE的安装我们本节略去,主要讨论vGPU的设置

一:配置软件源

  1. rm /etc/apt/sources.list
  2. rm /etc/apt/sources.list.d/*
  3. echo "deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free">>/etc/apt/sources.list
  4. echo "deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free">>/etc/apt/sources.list
  5. echo "deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free">>/etc/apt/sources.list
  6. echo "deb https://mirrors.tuna.tsinghua.edu.cn/debian-security bullseye-security main contrib non-free">>/etc/apt/sources.list
  7. 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 

三:配置内核

  1. echo vfio >> /etc/modules
  2. echo vfio_iommu_type1 >> /etc/modules
  3. echo vfio_pci >> /etc/modules
  4. echo vfio_virqfd >> /etc/modules
  5. echo "blacklist nouveau" >> /etc/modprobe.d/blacklist.conf
  6. echo "options kvm ignore_msrs=1" > /etc/modprobe.d/kvm.conf
  7. update-initramfs -k all -u

四:配置引导

  1. #编辑grub,根据自己的环境,选择设置
  2. vim /etc/default/grub
  3. #在里面找到:
  4. GRUB_CMDLINE_LINUX_DEFAULT="quiet"
  5. #然后修改为:
  6. GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on"
  7. #更新引导
  8. update-grub

安装完后,重启服务器

五:为debian安装显卡虚拟驱动

1、相关依赖

  1. #安装gcc和g++
  2. sudo apt update
  3. sudo apt install gcc g++
  4. #查看版本
  5. gcc --version
  6. g++ --version
  7. sudo apt install make
  8. sudo apt install make-guile
  9. #查看make版本
  10. make -v

2、禁用系统自带Nvidia驱动

  1. #首先,编辑黑名单配置。
  2. vim /etc/modprobe.d/blacklist.conf
  3. #在文件的最后添加下面两行。在第三步通过echo加入的,请打开文件验证是否正确添加。
  4. blacklist nouveau
  5. options nouveau modeset=0
  6. #然后,输入下面的命令更新并重启。
  7. update-initramfs -u
  8. reboot
  9. #重启后输入下面的命令验证是否禁用成功,成功的话这行命令不会有输出。
  10. lsmod | grep nouveau
  11. #重启服务器后使用apt卸载已有的驱动,命令如下。
  12. apt-get purge nvidia*

3、下载虚拟驱动

注意这里下载的不是普通的nvidia驱动,而是要下载vgpu驱动,下载地址如下:

https://foxi.buduanwang.vip/pan/foxi/Virtualization/vGPU/

下载最新版本的vGPU驱动。这里注意一下,grid版本是给vm用的,kvm版是给PVE用的。

4、安装vGPU驱动

  1. chmod +x NVIDIA-Linux-x86_64-510.85.03-vgpu-kvm.run
  2. sh -c ./NVIDIA-Linux-x86_64-510.85.03-vgpu-kvm.run --dkms

六:安装vgpu_unlock

这一步本人多次偿试基本上没有办法离线安装,大家可以参考我的那编squid代理网络设置,实现代理访问github。会魔法的小伙伴也可以自行想办法。

  1. cd /opt && git clone https://github.com/mbilker/vgpu_unlock-rs.git
  2. cd /opt/vgpu_unlock-rs
  3. cargo build --release

发现仍有报错,不过也没关系,后面也一样能成功。根据存放位置在下方的配置中对应修改。 

  1. mkdir /etc/systemd/system/{nvidia-vgpud.service.d,nvidia-vgpu-mgr.service.d}
  2. 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
  3. 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
  4. systemctl daemon-reload

然后重启服务器

七:验证

1、验证PVE内核

  1. uname -r
  2. 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

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号