GPU配置故障告警及修复方案

更新时间:2025-01-09 09:49:45

ACK集群针对GPU节点的坏卡场景,提供了多维度的监控、诊断、告警与恢复机制。本文将介绍GPU节点故障的具体排查步骤及恢复方案。

背景信息

image
  1. 日常监测与告警配置:您可以根据实际需求,对GPU相关的Metrics(ACK GPU监控2.0)和Events(ACK Node Problem Detector)进行告警配置。当GPU发生故障时,系统将及时触发告警通知,从而加快问题响应速度。

  2. CIS智能诊断与分析:在GPU出现故障时,仅依赖告警事件可能不足以全面掌握GPU节点的状态和具体问题。此时,可以通过容器智能运维(CIS)对受影响的GPU节点或GPU Pod应用进行全面诊断。获取详细诊断报告后,您可以根据报告中的故障细节确定故障类型,并采取相应的解决措施。

  3. 故障隔离与修复:对于需要隔离处理的特定故障,ACK提供了节点级别和GPU卡级别的隔离功能。在完成故障修复后,可解除隔离,恢复正常运行。

步骤一:日常监测与告警配置

利用NPD组件可以实现对GPU卡做定期巡检,监测GPU卡是否异常,并通过设置联系人来接收相关告警通知。

  1. 登录容器服务管理控制台,在左侧导航栏选择集群列表

  2. 集群列表页面,单击目标集群名称,然后在左侧导航栏,选择运维管理 > 组件管理

  3. 组件管理页面,搜索ack-node-problem-detector组件并进行安装

    说明

    若您之前已安装该组件,请确保组件版本不低于1.2.20。更多详细信息,请参见ack-node-problem-detector

  4. 集群列表页面,单击目标集群名称,然后在左侧导航栏,选择运维管理 > 报警配置

  5. 报警配置页面,单击进入联系人管理页签,单击创建,根据控制台指引完成联系人信息配置。

  6. 进入报警规则管理页签,找到集群GPU监控告警规则集,单击右侧对应启动状态,然后单击编辑通知对象选择相应的通知对象。

步骤二:CIS智能诊断与分析

当集群管理员通过手机短信、邮箱或钉钉聊天机器人等方式获知集群中的GPU节点出现故障时,可以登录容器服务控制台,使用CIS智能诊断工具对有问题的GPU节点进行进一步故障定位和分析。

  1. 登录容器服务管理控制台,在左侧导航栏选择集群列表

  2. 集群列表页面,单击目标集群名称,然后在左侧导航栏,选择巡检和诊断 > 故障诊断

  3. 故障诊断页面,单击节点诊断,然后在节点诊断页面的左上角,单击诊断

  4. 选择节点面板,选择对应节点名称,仔细阅读注意事项后选中我已知晓并同意,单击发起诊断

  5. 诊断完成后,会显示各个诊断项的结果。关于检查项详细信息,请参见节点诊断

    如果节点上的GPU出现了XID Error,那么在诊断结果中的GPUXIDErrors中会出现{"GPU-326dc0ce-XXXX-77b6-XXXX-9a2eeXXXX":["43"]}错误,说明在GPU UUIDGPU-xxxGPU设备上出现了Number43XID。更多诊断结果说明,请参见NPDGPU坏卡事件

步骤三:隔离节点上的GPU设备

手动隔离
自动隔离

当发现了GPU上的故障之后,需要将这张GPU卡进行隔离,避免后续的GPU应用Pod被分配到这张GPU设备上。详细操作,请参见GPU Device-Plugin相关操作。 如果您需要隔离目标节点上index1UUIDGPU-xxx-xxx-xxxGPU卡,需要在目标节点的 /etc/nvidia-device-plugin/ 目录下编辑或创建 unhealthyDevices.json 文件,并在其中写入以下内容,任选一种即可。

// 按照 Index 写入
{
    "index": ["1"]
}

// 按照 UUID 写入
{
    "uuid": ["GPU-xxx-xxx-xxx"]
}

保存后即生效,后续在修复完成后将文件中写入的隔离的GPU Item去除即可恢复。

  1. 如果期望自动对节点的GPU卡进行隔离操作,请登录故障节点,并修改/etc/kubernetes//manifests/nvidia-device-plugin.yml文件,删除以下环境变量。

    说明

    如果该环境变量不存在,则无需进行额外操作,自动隔离GPU功能已经启用。

          env:
          - name: DP_DISABLE_HEALTHCHECKS
            value: all
  2. 删除环境变量后,需执行以下命令,重启Device Plugin。

    mv /etc/kubernetes/manifests/nvidia-device-plugin.yml /etc/kubernetes/
    # 等待几秒,旧Pod被清理的过程。
    mv /etc/kubernetes/nvidia-device-plugin.yml /etc/kubernetes/manifests/

NPDGPU坏卡事件

事件原因

事件消息

含义

处理建议

事件原因

事件消息

含义

处理建议

NodeGPULostCard

Node has lost GPU card

GPU节点存在掉卡现象。

尝试重启节点,如果重启节点后仍出现掉卡情况,则需提交工单联系阿里云工程师。

NodeHasGPUXidError

Node GPU Xid error has occurred

该节点上的GPU存在XID错误,并上报相关XID信息。

尝试重启节点,如果重启节点后仍未恢复,则需提交工单联系阿里云工程师。

NodeHasNvidiaSmiError

Node GPU nvidia-smi error, maybe infoROM or device fault

检查节点上执行nvidia-smi的情况,如果nvidia-smi执行失败,或者出现GPU设备的fault ERRinfoROM等错误时会上报对应出问题的卡信息。

尝试重启节点,如果重启节点后仍未恢复,则需提交工单联系阿里云工程师。

NodeHasGPUECCError

Node GPU maybe have some ECC errors

检查节点上是否存在ECC Error,并上报对应出问题的卡信息。

尝试重启节点,如果重启节点后仍未恢复,则需提交工单联系阿里云工程师。

NodeGPUHasHighTemperature

Node GPU have high temperature, above 85 degrees

检查节点GPU卡的温度状况,如果超过89摄氏度则认为过热,上报温度高的卡的信息。

该事件仅为警告事件,只作提示。

  • 本页导读 (1)
  • 背景信息
  • 步骤一:日常监测与告警配置
  • 步骤二:CIS智能诊断与分析
  • 步骤三:隔离节点上的GPU设备
  • NPD中GPU坏卡事件
AI助理

点击开启售前

在线咨询服务

你好,我是AI助理

可以解答问题、推荐解决方案等