(可选)配置芯片故障级别

在制作Ascend Device Plugin镜像时,会将故障级别配置文件faultCode.json内置在镜像中,启动Ascend Device Plugin时会读取这两个文件的默认配置,作为当前故障处理依据。

如果用户想要自定义故障级别或者优雅容错相关配置,可以在集群中创建ConfigMap文件(mindx-dl-fault-config)。

使用faultCode.json配置故障级别

以故障名称dmp_daemon节点状态检测异常,对应故障码8C0A4E00为例。将当前故障的处理策略NotHandleFaultCodes(无需处理)修改为RestartNPUCodes(隔离设备,进行任务重调度)的操作示例如下。

  1. 登录环境,进入Ascend Device Plugin解压目录。
  2. 执行以下命令,创建动态配置故障码所需ConfigMap文件(mindx-dl-fault-config)。

    kubectl create cm mindx-dl-fault-config -n kube-system --from-literal="PollInterval=300" --from-file=./faultCode.json
    回显示例如下。
    1
    configmap/mindx-dl-fault-config created
    
    表1 参数说明

    参数名

    是否必选

    说明

    mindx-dl-fault-config

    动态配置故障码所需的ConfigMap文件名称,不能修改该文件名称。

    kube-system

    mindx-dl-fault-config所在命令空间,不能修改该命名空间名称。

    PollInterval

    不指定该参数则默认取值为300s。用于指定查询mindx-dl-fault-config文件是否更新的周期时间,单位为秒,取值范围为30~3600。PollInterval的修改将在下一个周期生效。

    faultCode.json

    用于保存故障码,必须与faultCode.json文件名称保持一致。

  3. 执行以下命令,编辑mindx-dl-fault-config文件。

    kubectl edit cm -n kube-system mindx-dl-fault-config

  4. 在mindx-dl-fault-config文件中,找到故障码8C0A4E00。

    "NotHandleFaultCodes":[
        "8C0A4E00","80E20207","80E21007","80E38003","80F78006","80C98006","80CB8006","81318006","80A18006","80A18005",
    ...
      ],
    ...

    同一故障码配置在多个故障级别中,会显示设置成功,但默认按照高等级故障处理。

  5. 将故障码8C0A4E00在(NotHandleFaultCodes)中删除,并添加到(RestartNPUCodes)中。

    "NotHandleFaultCodes":[ 
        "80E20207","80E21007","80E38003","80F78006","80C98006","80CB8006","81318006","80A18006","80A18005",
    ...
      ],
    ...
    "RestartNPUCodes":[
        "8C03A000","8C1FA006","8C2FA001","40F84E00","80E24E00","80E21E01","80E38008","80E3A202","80E3A203","80E39200","8C0A4E00", ... 
    ...
       ],

  6. 修改完成后,按“Esc”键,输入:wq!保存并退出。
  7. 等mindx-dl-fault-config文件更新生效(PollInterval取值,不指定则为300s)后,查看操作是否成功。

    1. 执行以下命令,查询Ascend Device Plugin组件日志名称。
      kubectl get pods -A | grep ascend-device-plugin
      回显示例如下:
      1
      kube-system      ascend-device-plugin-daemonset-910-jmlf5   1/1     Running   0              6h34m
      
    2. 通过查询到的组件日志名称,查询Ascend Device Plugin的组件日志信息。
      kubectl logs -n kube-system ascend-device-plugin-daemonset-910-jmlf5

      若日志出现“load fault code from configmap success”,表示手动配置故障码操作成功。