背景:
注:当前状态无业游民,如有合适工作岗位求捞:个人简历。
proxmox8虚拟化的Ubuntu vm实例,vm实例做了显卡直通:Proxmox VE 8.4 显卡直通完整指南:NVIDIA 2080 Ti 实战。安装了 NVIDIA cuda驱动,搭建了comfyui:ubuntu 22.04 anaconda comfyui。前几天刚刚升级了proxmox8到proxmox9:proxmox8升级到proxmox9。
今天启动comfyui突然出现了异常:
使用如下命令启动comfyui:
systemctl start comfyui
systemctl status comfyui
但是浏览器访问15070端口无法访问:
执行netstat命令发现 15070端口确实没有监听:
netstat -ntlp
继续执行 systemctl status comfyui 发现:No CUDA GPUs are available
排查过程:
proxmox测排查
难道proxmox系统升级,pci直通失效了?登录web控制台发现vm实例pci设备在:
vm实例测排查
使用shell登录vm实例执行如下命令,NVIDIA设备也在。但是应该是驱动掉了:
nvidia-smi
lsmod |grep nvidia
dmesg | grep -i nvidia
uname -a
lspci | grep -i vga
我是直接偷懒重新安装了一下显卡驱动:
cd /data/soft/
./NVIDIA-Linux-x86_64-570.144.run
参照:ubuntu22.04安装显卡驱动与cuda+cuDNN
启动comfyui测试
使用如下命令启动comfyui,测试程序是否启动:
systemctl start comfyui
systemctl status comfyui
netstat -ntlp
编执行执行如
复盘:
什么造成的这种问题呢?仔细想了一下,我有执行过apt-get upgrade apt-get update命令:
是否是发生了内核升级?,如何避免这种状况呢?
禁止内核自动升级
锁定当前内核版本
# 查看当前内核版本
uname -r
# 锁定linux-image和linux-headers包
sudo apt-mark hold linux-image-generic linux-headers-generic
sudo apt-mark hold linux-image-$(uname -r) linux-headers-$(uname -r)
# 搜索并列出当前系统中所有被标记为“保留(hold)”状态的软件包
dpkg --get-selections | grep hold
通过这次update代理的思考:
- vm实例的备份还是很有必要的(当然了主要我这里是个人的测试环境,正式环境肯定会随时备份镜像)
- 用习惯了 redhat系列的 centos rockylinux 操作系统。没有锁定内核的习惯,对于Ubuntu操作系统hold一些关键的内核or其他软件包还是很有必要的。