
# GPU节点显示GPU卡不可用时，如何解决？
#### 问题现象
GPU节点显示GPU卡不可用，且可能原因如下：
- GPU插件未就绪或状态异常
- 节点驱动未就绪
- GPU卡异常
图1GPU卡不可用   
![](https://support.huaweicloud.com/cce_faq/zh-cn_image_0000002341948581.png "点击放大")
#### 解决方法
针对上述问题，建议首先检查驱动程序是否存在问题，随后排查CCE AI套件（NVIDIA GPU）插件的device-plugin组件问题，最后再排查GPU设备问题。具体步骤如下：
#### 驱动问题排查
1. **检查nvidia-driver-installer Pod实例的状态** 。
   
   登录CCE控制台，单击对应集群名称进入集群概览页。在左侧导航栏中，单击"节点管理"，右侧切换至"节点"页签。在异常节点的操作列单击"更多 \> 实例列表"，检查异常节点中是否存在运行中的nvidia-driver-installer Pod实例。nvidia-driver-installer Pod实例可能情况如下：
   - Pod实例存在且为运行中，则为正常，请跳转至[2]进一步排查驱动是否安装成功。
   
   - Pod实例存在但长时间未切换至运行中，则需要检查该Pod的事件是否有异常报错，根据报错信息进行处理。如果无法解决，请[提交工单](https://console.huaweicloud.com/ticket/#/ticketindex/createIndex)联系技术支持人员。
    
   不同操作系统中，nvidia-driver-installer Pod实例的名称有所差异，具体如下：
   表1nvidia-driver-installer Pod名称 
   | 操作系统                     | nvidia-driver-installer Pod实例名称  |
   |:---|:---|
   | Huawei Cloud EulerOS 2.0 | hce20-nvidia-driver-installer    |
   | Ubuntu                   | ubuntu22-nvidia-driver-installer |
   | 其他                       | nvidia-driver-installer          |
      
   
   
2. **检查GPU驱动是否安装成功** 。
   
   1. 在节点列表中，单击异常节点名称，"前往弹性云服务器ECS详情"弹窗中单击"确定"。在异常节点页面中，右上角单击"远程登录"。
   
   2. 检查驱动安装目录。
      1. 执行以下命令，进入驱动安装目录，确定驱动安装目录是否存在。若驱动安装目录不存在，则请跳过该步骤，进入[3]排查驱动安装过程。
         ```
         cd <驱动安装目录>
         ```
         驱动安装目录与CCE AI套件（NVIDIA GPU）插件版本有关，具体如下：
         - CCE AI套件（NVIDIA GPU）插件版本大于2.0.0时，驱动安装目录为/usr/local/nvidia。
         
         - CCE AI套件（NVIDIA GPU）插件版本小于2.0.0时，驱动安装目录为/opt/cloud/cce/nvidia。
           
      
      2. 在驱动安装目录中，执行以下命令，查看目录下的全部文件。
         ```
         ls -l
         ```
         正常文件目录如下，其中nvidia.run为驱动文件，nvidia-installer.log是NVIDIA驱动自身输出的安装日志，nvidia-uninstall.log（目录中不一定存在）为NVIDIA驱动自身输出的卸载日志。**除** **nvidia-uninstall.log** **外，** **如果** **文件不全，请跳转至[3]** **进一步排查驱动安装过程** **。**
         ![](https://support.huaweicloud.com/cce_faq/zh-cn_image_0000002342718453.png "点击放大")
         
      
      3. 执行以下命令，进入nvidia的bin目录，检查nvidia-smi是否正常。**当插件版本小于2.0.0时，路径请替换为/opt/cloud/cce/nvidia** **/bin** **。**
         ```
         cd /usr/local/nvidia/bin
         ./nvidia-smi
         ```
         若未显示以下信息，请跳转至[3]进一步排查驱动安装过程**。**
         ![](https://support.huaweicloud.com/cce_faq/zh-cn_image_0000002308729088.png "点击放大")
         
       
   
   
   
   
3. **检查节点驱动安装日志，确认驱动安装过程是否存在问题** 。
   
   执行以下命令，查看**nvidia-driver-installer** 容器的日志。**当插件版本小于2.0.0时，路径请替换为/opt/cloud/cce/nvidia** **/nvidia-installer.log** **。**
   ```
   cat /usr/local/nvidia/nvidia-installer.log
   ```
   回显结果中存在如下信息，则说明安装过程正常，否则说明存在异常。如果异常，请[提交工单](https://console.huaweicloud.com/ticket/#/ticketindex/createIndex)联系技术支持人员。
   ```
   ...
   > Installation of the NVIDIA Accelerated Graphics Driver for xxx (version: x.x.x) is now complete.
   ```
   
   
 
#### device-plugin组件问题排查
device-plugin组件是CCE集群中用于报告硬件资源状态的组件。在GPU场景中，节点可用的GPU资源由kube-system命名空间中的nvidia-gpu-device-plugin上报。若节点资源上报不准确或设备挂载存在问题，建议优先排查device-plugin。
执行以下命令，**检查device-plugin组件状态** 。
```
kubectl get po -A -owide|grep nvidia
```
- 若异常节点对应的device-plugin Pod实例为**非Running状态** ，请[提交工单](https://console.huaweicloud.com/ticket/#/ticketindex/createIndex)联系技术支持人员。
- 若异常节点对应的device-plugin Pod实例为**Running状态** ，请执行以下命令，进一步检查device-plugin组件日志，确认是否存在报错信息。
  ```
  kubectl logs -n kube-system nvidia-gpu-device-plugin-9xmhr
  ```
  若回显结果显示"**gpu driver wasn't ready. will re-check** "，请进入[2]，检查驱动安装目录下的/usr/local/nvidia/bin/nvidia-smi或/opt/cloud/cce/nvidia/bin/nvidia-smi文件是否存在。
  ```
  ...
  I0527 11:29:06.420714 3336959 nvidia_gpu.go:76] device-plugin started
  I0527 11:29:06.521884 3336959 nodeinformer.go:124] "nodeInformer started"
  I0527 11:29:06.521964 3336959 nvidia_gpu.go:262] "gpu driver wasn't ready. will re-check in %s" 5s="(MISSING)"
  I0527 11:29:11.524882 3336959 nvidia_gpu.go:262] "gpu driver wasn't ready. will re-check in %s" 5s="(MISSING)"
  ...
  ```
  
 
#### GPU设备问题排查
请参考[GPU故障处理](https://support.huaweicloud.com/usermanual-cce/cce_10_0779.html)进行排查。
