一场由服务器重启引发的惨案~
💡 Date:2025-03-06
😱 Problem:93 服务器显卡掉驱动了,显示·No devices were found· 选择重启,但是发现了所有的 docker images 和运行的 container 都消失了!!!花了俩小时找到问题所在,觉得后续还有可能会发生,遂作此记录!
1、 问题起因
$ nvidia-smi
No devices were found
显卡又又又又掉驱动了,有俩种可能性:
- 1、`显卡驱动掉了`
- 2、`显卡损坏`
先查看一下显卡还在不在
lspci | grep -i nvidia
98:00.0 VGA compatible controller: NVIDIA Corporation Device 2204 (rev a1)
98:00.1 Audio device: NVIDIA Corporation Device 1aef (rev a1)
可以读到卡,说明卡没有坏,单纯是显卡驱动掉了,多次的处理经验告诉我,`重启大法`可以解决多个驱动问题,尝试了之前 kill 掉 cuda 的 X 服务,在重启 cuda 驱动也没有效果(因为这次与上次掉驱动不一样Docker突然停止--修复指南,他压根就没有开启 cuda 的 X 服务🤡)
看来只能重启了!
sudo reboot
2、重启之后docker 所有的 imgaes 和 container 都消失了
首先我先 checke 了一下 cuda 驱动有没有重新安装好!==> 驱动是恢复了
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 550.144.03 Driver Version: 550.144.03 CUDA Version: 12.4 |
|-----------------------------------------+------------------------+----------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+========================+======================|
| 0 NVIDIA GeForce RTX 3090 Off | 00000000:98:00.0 Off | N/A |
| 40% 48C P0 110W / 350W | 1MiB / 24576MiB | 0% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+
+-----------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=========================================================================================|
| No running processes found |
+-----------------------------------------------------------------------------------------+
直觉告诉我,容器外的 cuda 可以运行了,容器内的也需要测试一下(找不到那个打印输出了,就在我自己的 mac 的 docker 上粘贴一下内容)。
(base) zhuhangbo@zhudeMacBook-Pro ~ % docker ps
Cannot connect to the Docker daemon at unix:///Users/zhuhangbo/.docker/run/docker.sock. Is the docker daemon running?
显示我们需要重启一下
sudo systemctl start docker
接下来,就出现`鬼故事`了👻,所有的 docker images 和 container 全部都消失了!!!
docker ps -a
docker images
这两个全部显示为 empty!
花了将近两个小时查找到了这个问题,原来是 93 服务器 docker 默认的 container 和 images 的存储路径经过了修改,在`/data/docker`路径下,但是默认的路径是在 `/var/lib/docker`路径下,没有把 docker 加载的磁盘写入,导致了出现上述问题。
只需要修改一下当前 `/etc/docker`路径下的`daemon.json`文件即可
现有的`dameon.json`如下:
{
"runtimes": {
"nvidia": {
"path": "nvidia-container-runtime",
"runtimeArgs": []
}
}
}
仿照下 92 的格式
{
"storage-driver": "vfs",
"data-root":"/data/docker_93"
}
重新启动一下 docker,问题解决~