每天的工作难度虽然不高,但是却异常琐碎,完全没有自己的思考时间,导致我的博客已经很久没有更新了。这种日子到底还有多久?我到底能不能成为说唱歌手?
家里的服务器日常待机运行功耗 200 多 W,每个月电费要 100 多元,不充分利用一下服务器有点对不起它了,正好周末清了灰,从零开始重构一下服务器。
清灰过程还是比较解压的:
首先本次使用的是截止目前 (2025年09月01日)最新的 ESXi 8.0 U3 系列,这也是我这种 E5 老平台和 Tesla P4 老显卡建议使用的最高版本:
因为下面的资源都是国光我真金白银付费购买的,所以不能免费直接分享,大家如果感兴趣的话,可以小黄鱼了解一下,价格肯定还是比较便宜划算的,也当时知识付费支持一下了,具体的资源如下:
- ESXi 镜像:ESXi-8.0U3g-24859861-SYSIN-20250730.iso 或者 VMware-VMvisor-Installer-8.0U3g-24859861.x86_64.iso
- vCenter 镜像:VMware-VCSA-all-8.0.3-24853646.iso
- vGPU 16.10 驱动:NVIDIA-GRID-vSphere-8.0-535.247.02-535.247.01-539.28.zip
不过大家财力有限的话,下面是免费赠送的资源,也挺实用的:
- 注册机:VMware UKG 1.0.21.1014.exe (Vmware universal keygen 1.0.21.1014)
关注公众号回复:VM注册机 即可免费获取:
有了注册机的话,要想顺利使用 vGPU 的话得确保你的许可证的产品不要太垃圾了,下面是国光的 ESXi 和 vCenter 使用的许可证情况:
NVIDIA 在 vGPU 17.x 系列中针对 VMware ESXi 平台停止了对 Pascal 架构(如 Tesla P4)的支持,仅保留对 16.x 系列的兼容。若需继续使用 P4 的 vGPU 功能,建议保持 16.x 版本驱动,本教程中使用的是 vGPU 16.10 驱动来演示。
要在 vSphere 平台上让虚拟机实现 NVIDIA GPU 的硬件加速(比如 vGPU 功能),必须先为 ESXi 主机安装 NVIDIA 官方 Host 驱动。这次我要安装的驱动包是
NVD_bootbank_NVD-VMware_ESXi_8.0.0_Driver_535.247.02-1OEM.800.1.0.20613240.vib
为了避免安装驱动时影响正在运行的虚拟机,建议先把 ESXi 主机进入 维护模式,然开启 SSH 将 VIB 文件到 ESXi 主机的 tmp 目录下,通过 SSH 客户端(比如 PuTTY)连接到 ESXi 主机,执行以下命令安装驱动:
esxcli software vib install -v /tmp/NVD_bootbank_NVD-VMware_ESXi_8.0.0_Driver_535.247.02-1OEM.800.1.0.20613240.vib
执行后,命令行会输出驱动验证、安装的进度日志。耐心等待片刻,直到看到「Installation completed successfully
」(安装成功)的提示。
驱动安装后,必须重启 ESXi 主机 才能让驱动完全生效。主机重启后,再次通过 SSH 登录,执行以下命令查看驱动是否安装成功:
nvidia-smi
然后登录 vCenter 操作 ESXi 主机,图形设置为「直接共享」后点击确定,然后重启 ESXi 主机即可完成 vGPU Host 宿主机驱动的安装准备工作:
飞牛 OS 添加 PCI vGPU 设备:
先 SSH 连接切换到 root 准备安装所需依赖:
# 切换root权限
sudo -i
# 屏蔽nouveau
echo "blacklist nouveau" >> /etc/modprobe.d/blacklist-nouveau.conf
# 更新initramfs
update-initramfs -u
# 安装aptitude包管理工具
apt update && apt install aptitude
# 使用 aptitude 自动解决依赖冲突
aptitude install build-essential dkms linux-headers-generic libglvnd-dev pkg-config -y
# 清理缓存
apt clean
apt autoclean
rm -rf /var/lib/apt/lists/*
apt update
# 安**uild-essential dkms 等依赖包
apt install build-essential dkms linux-headers-generic libglvnd-dev pkg-config -y
# 重启飞牛
reboot
然后将 NVIDIA-Linux-x86_64-535.247.01-grid.run
这个 vGPU Guest 上传到飞牛 OS,同样命令行下开始编译安装:
# 给予驱动执行权限
chmod +x NVIDIA-Linux-x86_64-535.247.01-grid.run
# 安装NVIDIA GUEST驱动,一路回车直至安装完成
./NVIDIA-Linux-x86_64-535.247.01-grid.run --dkms
安装成功后使用命令验证一下:
nvidia-smi
此时相册里面可以正常启用 GPU 计算:
飞牛影视也可以正常使用这个 Tesla P4 vGPU 进行加速转码:
因为 vGPU 我分配了 4GB 显存,使用资源管理来查看,发现可以正常看到显卡的占用率:
默认情况下我们使用的 vGPU 虽然是驱动了的,但是没有导入官方的证书,在后续使用上会被限制性能释放,首先使用命令行查看当前环境的证书情况:
nvidia-smi -q | grep -i "license" -A 5
可以看到是未注册的:
原项目 FastAPI-DLS 需要自行创建证书较为繁琐,这里使用一个二次封装的免证书容器镜像来快速搭建:
sudo docker run -d --name vgpu_server -e DLS_URL=10.1.1.6 -e DLS_PORT=443 -p 9443:443 makedie/fastapi-dls
借助 FastAPI-DLS 项目我们可以快速搭建 vGPU 证书服务器,如果大家的设备可以连接外网的话,下面国光也分享几个可用的 vGPU 证书服务器:
https://62.234.164.86:6443/-/readme
https://101.201.101.132:10443/-/readme
https://120.26.231.182:8443/-/readme
也可以通过 docker 手动搭建服务器,需要先准备好自己 RSA 密钥对 于加密许可证信息,执行以下命令生成:
# 定义证书目录
WORKING_DIR=/vol2/1000/内置存储/Docker/vGPU-Server/cert
# 进入目录
cd $WORKING_DIR
# 生成符合官方要求的 SSL 证书(10年有效期)
openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout $WORKING_DIR/webserver.key -out $WORKING_DIR/webserver.crt
证书这里看着填写就行了,反正就是我们自己用,只要 FQDN 这里写实际 vGPU 服务器的地址就行:
使用飞牛自带的 Docker 可以很轻松的创建 vGPU 服务,下面是对应的 compose.yml 配置文件:
x-dls-variables: &dls-variables
TZ: Asia/Shanghai # 中国时区
DLS_URL: 10.1.1.6 # 写你具体的 IP 地址
DLS_PORT: 443
LEASE_EXPIRE_DAYS: 3650 # 10年有效期
DATABASE: sqlite:////app/database/db.sqlite
DEBUG: false
services:
dls:
image: collinwebdesigns/fastapi-dls:latest
restart: always
environment:
<<: *dls-variables
ports:
- "9443:443" # 9443 改成实际你映射的端口
volumes:
- /vol2/1000/内置存储/Docker/vGPU-Server/cert:/app/cert # 前面换成你的证书路径
- dls-db:/app/database
volumes:
dls-db:
飞牛的 Docker 真方便无视国内的墙,很丝滑很快搭建成功:
有了证书服务器的话,下面使用飞牛 OS 来实际操作,拷贝并编辑配置文件:
# 拷贝配置
cp /etc/nvidia/gridd.conf.template /etc/nvidia/gridd.conf
# 编辑配置
vim /etc/nvidia/gridd.conf
手动修改 ServerPort 端口为实际你映射的端口:
ServerPort=9443
然后直接导入这个授权证书吧:
# 切换 root 用户
sudo -i
# 导入client-token
wget --no-check-certificate -O /etc/nvidia/ClientConfigToken/client_configuration_token_$(date '+%d-%m-%Y-%H-%M-%S').tok https://10.1.1.6:9443/-/client-token
# 重启
systemctl restart nvidia-gridd
systemctl status nvidia-gridd
重启服务器后验证一下授权证书的有效期:
nvidia-smi -q | grep -i "license" -A 5
使用飞牛影视对视频进行转码播放看看,可以看到 GPU 参与工作了:
资源管理器也可以看到显卡干活的痕迹:
好了到此本文就结束了,更多飞牛 GPU 解码的玩法等待大家自己去探索。
本文可能实际上也没有啥技术含量,但是写起来还是比较浪费时间的,在这个喧嚣浮躁的时代,个人博客越来越没有人看了,写博客感觉一直是用爱发电的状态。如果你恰巧财力雄厚,感觉本文对你有所帮助的话,可以考虑打赏一下本文,用以维持高昂的服务器运营费用(域名费用、服务器费用、CDN费用等)