收起左侧

最新版PVE 8.4部署飞牛安装最新版18.1 nvidia vGPU驱动实现显卡资源共享

0
回复
255
查看
[ 复制链接 ]

1

主题

0

回帖

0

牛值

江湖小虾

前言

本人纯小白,在使用飞牛之前没有接触过NAS、Linux、PVE、虚拟机、docker之类的东西,因为飞牛的出圈,我开始了解NAS然后走上了这条折腾的不归路,从一开始直接在物理机安装飞牛和win10双系统,到在win10hyperV里安装飞牛,发现飞牛在win虚拟机里飞牛用不了显卡,然后开始了解Linux平台的虚拟机,安装PVE再部署飞牛和win10到PVE上面,再安装NVIDIA的vGPU驱动,搭建fastapi-dls服务器,解锁vGPU驱动,分配显卡资源给飞牛和win同时使用。本着有新的绝不用旧的原则(除非明确用不了),所有系统和驱动我都下载的最新版的,但是最新版网上的教程基本没有,只能参考旧版本的教程,因此前前后后踩了不少坑,决定在这里记录一下,也给有需要的朋友提供一些参考(希望有用)。

主要的硬件平台

主板:微星 B450m 迫击炮

CPU:AMD R5 3600

显卡:NVIDIA GTX 1660ti 6G

内存:32G DDR4 3200

主板设置

BIOS开启Above 4G、虚拟化支持、IOMMU,关闭安全启动

以下内容基于上述硬件和平台,不同平台和硬件可能不适用,需自行甄别。

下载安装PVE8.4

安装PVE

官网下载地址 https://enterprise.proxmox.com/iso/proxmox-ve_8.4-1.iso

安装过程参考 https://xinalin.com/86/proxmox-ve-host-configuration

正常情况下用常规安装流程是没有问题的,但是我这里还没见到PVE的logo就卡住了,不管是用rufus还是Ventoy这两个启动盘制作工具,都会在启动时出现几行代码后完全卡死只能强制重启,一开始以为是系统镜像的问题,重新下载,第三方网站下载,还是一样的问题。最后尝试安装到win系统hyperV虚拟机上,可以正常安装成功,那既然这样,我直接把安装好PVE所在的hyperV虚拟硬盘用分区工具DiskGenius整个克隆到物理硬盘上后终于在物理机启动PVE成功。

但是把PVE从虚拟机移到物理机后不会自动更新网络配置,所以这时PVE的网络是不通的,web管理界面也连不上,需要在PVE终端重新配置网络。

输入root账户和密码登录

查询网络接口

ls /sys/class/net

image.png

一般en开头的就是物理机的有线网卡

从DHCP服务器临时获取IP地址

dhclient enp34s0

查询获取到的IP

ip -brief address

image.png

编辑网络配置文件替换掉eth0接口IP地址和网关

nano /etc/network/interfaces

image.png

改成上面这样后按CTRL+S保存,CTRL+X退出

重启PVE后应该就能正常连接了,但是在PVE欢迎界面显示的还是之前虚拟机的IP,可以在issue文件修改

nano /etc/issue

image.png

同样更改后CTRL+S、X 保存退出。

PVE常规优化,更换镜像源

同样参考 https://xinalin.com/86/proxmox-ve-host-configuration 文章中 “Update#1 更新 PVE 到 8.0“部分

这里有个坑点,不同版本源链接是不同的,8.0大版本是bookworm

换源后在PVE web节点-更新中刷新然后升级,内核将升级到6.8.12-10

image.png

vGPU驱动安装

从8.4版本开始vGPU是PVE官方支持的功能,官网提供了相应的配置工具

参考官方指导文档 https://pve.proxmox.com/wiki/NVIDIA_vGPU_on_Proxmox_VE#vGPU_Configuration

image.png

安装PVE官方vGPU工具

apt install pve-nvidia-vgpu-helper

配置

pve-nvidia-vgpu-helper setup

此过程会安装一些必要的依赖工具以及屏蔽自带开源驱动

重启PVE

配置vGPU_unlock

参考 https://gitlab.com/polloloco/vgpu-proxmox#important-notes

image.png

该项目指南中需要安装Rust编译器和一些库,还要给驱动打补丁,我这里省略了这些步骤,因为我在佛西博客的网盘中找到了已经编译好的文件和打好补丁的驱动,在这里感谢佛西博客的大佬。

下面直接执行剩余的步骤

创建用于 vGPU-unlock的文件和文件夹

mkdir /etc/vgpu_unlock

touch /etc/vgpu_unlock/profile_override.toml

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

下载编译好的so文件

mkdir -p /opt/vgpu_unlock-rs/target/release

cd /opt/vgpu_unlock-rs/target/release

wget -O libvgpu_unlock_rs.so https://alist.homelabproject.cc/p/foxipan/vGPU/17.5/libvgpu_unlock_rs.so
下载安装已经patch过的18.1版本驱动

cd /root

wget https://alist.homelabproject.cc/p/foxipan/vGPU/18.1/NVIDIA-Linux-x86_64-570.133.10-vgpu-kvm-custom.run

chmod +x NVIDIA-Linux-x86_64-570.133.10-vgpu-kvm-custom.run

./NVIDIA-Linux-x86_64-570.133.10-vgpu-kvm-custom.run --dkms -m=kernel

安装过程中会有几个提示,一直按回车就好

安装完成后重启PVE

验证是否解锁成功

mdevctl types

image.png

回显如上说明解锁vGPU成功

创建飞牛虚拟机以及安装18.1版本guest驱动

参考站内大佬 yangwenqing 的帖子 https://club.fnnas.com/forum.php?mod=viewthread&tid=25267&highlight=

image.png

注意最后一条添加PCI设备,也就是显卡,是在创建虚拟机完成后再添加

image.png

我这里选择的是GRID RTX6000-3Q(nvidia-258),也就是分配3G显存的型号给飞牛OS

18.1版本驱动包下载地址

https://alist.homelabproject.cc/p/foxipan/vGPU/18.1/NVIDIA-GRID-Linux-KVM-570.133.10-570.133.20-572.83.zip 同样来自佛西博客网盘

下载后解压缩找到里面的 NVIDIA-Linux-x86_64-570.133.20-grid.run 上传到飞牛

image.png

参考yangwenqing的帖子进行安装

image.png

执行的时候需要将驱动包名替换成 NVIDIA-Linux-x86_64-570.133.20-grid.run

搭建fastapi-dls授权服务器

参考项目 https://git.collinwebdesigns.de/oscar.krause/fastapi-dls

image.png

从上面可以看到18及后续版本需要额外打一个patch

项目作者提供了好几个搭建方式,我选择了一个我认为比较方便的,直接在飞牛的docker里搭建

创建证书文件夹

WORKING_DIR=/vol1/1000/fastapi-dls/cert

mkdir -p $WORKING_DIR

cd $WORKING_DIR

生成证书,过程中需要按5次回车

openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout $WORKING_DIR/webserver.key -out $WORKING_DIR/webserver.crt

运行docker

docker volume create dls-db

docker run -e DLS_URL=192.168.31.249 -e DLS_PORT=9443 -e TZ=Asia/Shanghai -e LEASE_EXPIRE_DAYS=90 -p 9443:443 -v /vol1/1000/fastapi-dls/cert:/app/cert -v dls-db:/app/database collinwebdesigns/fastapi-dls:latest

DLS_URL 后面的IP地址需改成自己飞牛的IP,因为飞牛重定向了443端口到5667,所以我改成了9443

完成后在飞牛docker看到已经自动生成了一个容器正在运行,先把容器停止再启动,以下操作都需要容器保持运行状态

image.png

验证服务器

打开浏览器输入192.168.31.249:9443 可以看到fastapi-dls的readme页面,说明服务器搭建成功

image.png

获取证书

wget --no-check-certificate -O /etc/nvidia/ClientConfigToken/client\_configuration\_token\_\$(date '+%d-%m-%Y-%H-%M-%S').tok https://192.168.31.249:9443/-/client-token

出现以下回显即获取成功

image.png

18以及后面的版本需要额外patch补丁

进入root_certificate.pem所在目录

cd /vol1/1000/fastapi-dls/cert

下载patch文件

wget https://git.collinwebdesigns.de/api/v4/projects/129/packages/generic/gridd-unlock-patcher/1.0/gridd-unlock-patcher

执行

chmod +x gridd-unlock-patcher

./gridd-unlock-patcher -g /usr/bin/nvidia-gridd -c root_certificate.pem

patch成功后回显

image.png

如果没有则需要先停止gridd服务

service nvidia-gridd stop

再次执行

./gridd-unlock-patcher -g /usr/bin/nvidia-gridd -c root_certificate.pem

然后重启gridd服务

service nvidia-gridd restart

验证授权

nvidia-smi -q | grep License

image.png

licensed 后面出现日期说明驱动授权成功,就可以不受限制在飞牛影视和相册中调用显卡资源了

授权成功后可以关掉docker里面的容器,但是重启飞牛或者重启了gridd服务授权会失效,建议经常重启系统的话把docker和容器设为开机自启

暂时记录到这里

收藏
送赞 1
分享

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则