本文介绍如何正确安装、配置和使用ACK GPU故障检测组件,以便更好地管理和维护ACK环境中的GPU资源。通过本文内容,您可以了解如何监测GPU资源的健康状态,提高集群的可靠性和效率。
前提条件
已安装ack-node-problem-detector(NPD),且组件版本为1.2.26及以上。
0.17.0及以上版本的ack-nvidia-device-plugin与1.2.26及以上版本的NPD搭配使用时,当NPD检测到GPU故障时,将自动隔离GPU卡,当NPD检测到GPU恢复正常后,将自动解除GPU卡的隔离。
关于如何查看ack-nvidia-device-plugin组件版本以及升级组件,请参见查看Nvidia Device Plugin版本。
ack-node-problem-detector(NPD)是ACK基于社区开源项目node-problem-detector改造和增强的集群节点异常事件监控组件,提供丰富的GPU故障检测项以增强GPU场景的故障发现能力。发现对应的故障时,组件会根据故障类型产生相应的Kubernetes Event或Kubernetes Node Condition。
注意事项
NVIDIA的XID和SXID是GPU驱动通过NVRM事件机制写入
/var/log/messages
或/var/log/syslog
中。NPD会记录每个XID和SXID是否已被处理,如果在发现XID或SXID后,只要对节点进行重启操作,不管这条XID或SXID所对应的问题是否已被解决(例如Xid 79指明需要更换GPU设备才能解决问题),NPD将不会对这条XID或SXID产生Event或Node Condition,即NPD认为这条XID已被解决。NPD检测NVIDIA XID或者NVIDIA SXID是通过检测节点
/var/log/messages
文件或/var/log/syslog
文件完成的。如果dmesg日志被重定向到其他文件,NPD将无法检测NVIDIA XID和SXID。
检测项及修复建议
修复建议为None表示无需对硬件采取任何操作。建议自行检查应用配置是否正常。
检测项名称 | 是否产生Node Condition | 是否产生Event | 描述 | 是否默认隔离GPU卡 | 修复建议 |
NvidiaXID13Error | 否 | 是
|
| 否 | None |
NvidiaXID31Error | 否 | 是
|
| 否 | None |
NvidiaXID43Error | 否 | 是
|
| 否 | None |
NvidiaXID45Error | 否 | 是
|
| 否 | None |
NvidiaXID48Error | 是
| 是
|
| 是 | 重启节点。 |
NvidiaXID63Error | 否 | 是
|
| 否 | None |
NvidiaXID64Error | 否 | 是
|
| 否 | None |
NvidiaXID74Error | 是
| 是
|
| 是 | 硬件维修。 |
NvidiaXID79Error | 是
| 是
|
| 是 | 硬件维修。 |
NvidiaXID94Error | 否 | 是
|
| 否 | None |
NvidiaXID95Error | 是
| 是
|
| 是 | 重启节点。 |
NvidiaXID119Error | 是
| 是
|
| 是 | 重启节点。 |
NvidiaXID120Error | 是
| 是
|
| 是 | 重启节点。 |
NvidiaXID140Error | 是
| 是
|
| 是 | 重启节点。 |
NvidiaEccModeNotEnabled | 是
| 是(持续产生事件,直到问题修复)
| 节点ECC Mode未开启。 | 否 | 开启ECC Mode并重启节点。 |
NvidiaPendingRetiredPages | 是
| 是(持续产生事件,直到问题修复)
|
| 是 | 重启节点。 |
NvidiaRemappingRowsFailed | 是
| 是(持续产生事件,直到问题修复)
| GPU存在行重映射失败。 | 是 | 硬件维修。 |
NvidiaRemappingRowsRequireReset | 是
| 是(持续产生事件,直到问题修复)
| GPU遇到了无法纠正的、未包含的错误,需要通过重置GPU进行恢复。为了恢复操作,应该尽快重置GPU。 | 是 | 重启节点。 |
NvidiaDeviceLost | 是
| 是(持续产生事件,直到问题修复)
|
| 是 | 硬件维修。 |
NvidiaInfoRomCorrupted | 是
| 是(持续产生事件,直到问题修复)
|
| 是 | 硬件维修。 |
NvidiaPowerCableErr | 是
| 是(持续产生事件,直到问题修复)
|
| 是 | 硬件维修。 |
NvidiaXID44Error | 是
| 是
|
| 是 | 重启节点。 |
NvidiaXID61Error | 是
| 是
|
| 是 | 重启节点。 |
NvidiaXID62Error | 是
| 是
|
| 是 | 重启节点。 |
NvidiaXID69Error | 是
| 是
|
| 是 | 重启节点。 |
NvidiaXID[code]Error | 否 | 是(仅产生三次事件)
| 未出现在该表中的其他XID。 | 否 | 提交工单。 |
NvidiaSXID[code]Error | 否 | 是(仅产生三次事件)
|
| 否 | None |
其他相关Event
独占GPU场景下,NPD默认会根据异常检测项自动进行GPU卡的隔离。隔离后,新的GPU应用Pod不会被分配至该GPU卡。您可查看Kubernetes Node上报的Resource中的nvidia.com/gpu
数量以查看隔离效果。等待GPU卡恢复后,ACK会自动解除隔离。
触发原因 | Event内容 | 描述 |
GPU卡隔离 | 是
| GPU卡因检测出的故障被隔离。 |
GPU卡解除隔离 | 是
| GPU卡故障恢复,解除卡隔离。 |