已关闭
[Feature]: A5 Server 和Pod增加卡端口故障检测能力 #268
chengjunhua创建于 5月8日关闭于 27 天前
5月8日 添加了label:feature
5月8日 修改了issue 的描述
Atlas_zxp
5月8日 评论:
5月8日 评论:
/label add triaged


5月8日 添加了label:triaged
5月14日 关联了pull request:0509 Altlas 950 新增故障码,1个故障码修改故障级别
5月14日 删除了关联的pull request:0509 Altlas 950 新增故障码,1个故障码修改故障级别
7月7日 关联了看板:MindStudio ISSUE管理
8月12日 关联了看板:MindCluster版本issue看板
27 天前 issue状态由 TODO 改变为 DONE
27 天前 关闭了 issue
25 天前 关联了里程碑:MindCluster 26.1.0
需求背景
在A5超平面组网场景下,存在远端故障无法感知的问题(具体为端测到一层交换链路故障场景,US故障和5808芯片故障场景无此问题),导致NPU出框链路故障后重拉业务通信失败。由于灵衢网络中端测无明细路由,无路由收敛解决方案,因此需要根据不同场景判断是否隔离节点,避免业务反复在故障节点重试,导致业务无法恢复。
当前现状
当前
device-plugin不感知节点内NPU卡的端口故障状态,无法区分“路由可收敛”和“路由不可收敛”场景:期望实现的功能
device-plugin根据节点内所有NPU卡的端口故障状态,智能判断是否隔离节点或标记为亚健康,具体场景如下:超平面场景
up->down故障码(0x81B18603),判定为路由无法收敛场景(fullmesh必定影响业务,H2D端口性能影响50%或单路径),无需区分端口,隔离对应NPU卡所在节点。up->down故障码(0x81B18603),判定为路由可收敛场景(US故障或5808故障),无需区分端口(所有UB端口故障大概率是交换侧出问题),不主动隔离NPU,标记为“亚健康”级别,由调度器根据任务亚健康策略决定是否调度。参数面场景
0x81078607:具体设计方案
1. 故障状态获取
device-plugin通过调用hccn_tool工具,周期性(建议周期:10s)查询节点内所有NPU卡的端口故障状态,重点采集:0x81B18603、0x81078607);up/down状态。2. 故障场景判断逻辑
flowchart TD A[开始故障检测] --> B{查询所有NPU卡端口故障码} B -->|超平面/UB接1825场景| C{故障码0x81B18603分布} C -->|仅单卡故障| D[标记节点为'隔离'] C -->|所有卡故障| E[标记节点为'亚健康'] B -->|UBOE Bonding场景| F{故障码0x81078607 + Bonding口状态} F -->|仅单口down| E F -->|所有口down| D D --> G[更新节点标签/污点] E --> G G --> H[等待下一检测周期]3. 节点隔离/亚健康标记实现
通过Kubernetes API更新device info configmap状态:
seperatenpu,状态unhealthy,阻止新Pod调度;sub-healthy,由调度器根据业务策略决定是否调度。验收标准
需求价值
交付目标
device-plugin主干;替代方案
补充说明
欢迎加入社区,感谢您对社区的贡献 🎉!