文档首页/ 智能边缘平台 IEF/ 常见问题/ 边缘节点/ 边缘节点故障如何处理?
更新时间:2024-01-19 GMT+08:00

边缘节点故障如何处理?

故障现象

边缘节点状态显示为“故障”,将鼠标移动到上,会显示故障原因。

图1 节点故障

排查思路

边缘节点故障有如下原因,请根据如下原因排查处理。

表1 排查思路

可能原因

处理措施

边缘节点关机

边缘节点关机

容器引擎故障,包括容器引擎未启动和容器引擎服务异常

边缘节点本地容器引擎服务异常

节点磁盘空间不足

边缘节点网络连接异常

边缘节点网络连接异常

GPU驱动异常

GPU驱动异常

NPU插件异常

NPU插件异常

边缘节点的核心组件(edgecore)异常

IEF在边缘节点的核心组件(edgecore)异常

边缘节点强行关机并之后强行开机,系统进入恢复模式

边缘节点强行关机并之后强行开机,系统进入恢复模式

边缘节点关机

边缘节点关机后,边缘节点将无法向IEF上报边缘节点状态,IEF会判定边缘节点故障,请保持边缘节点开机。

IEF并不会根据边缘节点收费的,而是依据边缘应用收费,边缘节点故障后,边缘应用仍以异常状态存在IEF中,仍会继续收费。所以,如果您暂时不需要该服务,请确保在IEF中删除应用,而不是关机。

边缘节点本地容器引擎服务异常

IEF的系统组件edgecore的启动和正常运行依赖容器引擎。因此,如果容器引擎不正常,会导致edgecore组件无法启动。

解决方法:

  1. 使用docker version命令查看容器引擎是否正常。如果不正常,可使用systemctl restart docker命令重启容器引擎。
  2. 使用docker ps命令查看容器引擎是否可以使用。如果不可以,重新启动或安装容器引擎。

请勿强制下电边缘节点,强制下电可能会导致边缘节点上的数据文件丢失或损毁,从而导致节点故障。

边缘节点容器磁盘空间不足

解决方法:

  1. 登录边缘节点。执行如下命令查看当前边缘节点容器所挂载的磁盘空间使用情况。

    df -h

  2. 删除边缘节点中的多余文件,释放磁盘空间。

    rm 文件名称

边缘节点/opt/IEF磁盘空间不足

解决方法:

  1. 登录边缘节点。执行如下命令查看当前边缘节点/opt/IEF所挂载的磁盘空间使用情况。

    df -h

  2. 删除边缘节点中的多余文件,释放磁盘空间。

    rm 文件名称

边缘节点/var/IEF/sys/log磁盘空间不足

解决方法:

  1. 登录边缘节点。执行如下命令查看当前边缘节点/var/IEF/sys/log所挂载的磁盘空间使用情况。

    df -h

  2. 删除边缘节点中的多余文件,释放磁盘空间。

    rm 文件名称

边缘节点网络连接异常

确认方法:

  1. 在边缘节点执行如下命令,获取连接IEF的地址。

    cat /opt/IEF/Edge-core/conf/edge.yaml | grep ws-url

    回显类似以下结果。

    ws-url: wss://ief2-edgeaccess.cn-north-4.myhuaweicloud.com:443/

    其中,

    ief2-edgeaccess.cn-north-4.myhuaweicloud.com为需要获取的地址,不同区域地址不同。铂金版服务实例的地址格式为:1fc0704e-229c-4210-9802-75f66aeffe3d.cn-north-4.huaweiief.com,您也可以在IEF控制台获取该地址,即云端接入域名。

    图2 获取云端接入域名
  2. 使用curl命令检查边缘节点与IEF网络是否能连接。

    curl -i -v -k https://ief2-edgeaccess.cn-north-4.myhuaweicloud.com

    • 如果一直没有回显,则说明边缘节点与IEF网络不通。
    • 如果回显如下,则说明网络正常。
      * About to connect() to ief2-edgeaccess.cn-north-4.myhuaweicloud.com port 443 (#0)
      *   Trying 49.4.115.239...
      * Connected to ief2-edgeaccess.cn-north-4.myhuaweicloud.com (*.*.*.*) port 443 (#0)
      * Initializing NSS with certpath: sql:/etc/pki/nssdb
      * skipping SSL peer certificate verification
      * NSS: client certificate not found (nickname not specified)
      * SSL connection using TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
      * Server certificate:
      * subject: OID.1.1.1.4=42701fe87611496e80c824778c9857ca,OID.1.1.1.3=op_svc_ief_container1:88125631e95e4d3fbdfa7e6ced0f9dd4,OID.1.1.1.2=cn-north-4:42701fe8761
      1496e80c824778c9857ca:op_cfe_kubelet,OID.1.1.1.1=op_svc_ief_container1,CN=paas.placement.certs.secret OSS3.0 CA,OU=OSS & Service Tools Dept,O="Huawei Technologies 
      Co., Ltd",L=ShenZhen,ST=GuangDong,C=CN
      * start date: Apr 29 16:00:00 2019 GMT
      * expire date: Apr 29 16:00:00 2049 GMT
      * common name: paas.placement.certs.secret OSS3.0 CA
      > GET / HTTP/1.1
      .....

可能原因及解决方法:

  1. 域名解析问题。

    执行如下命令。

    ping ief2-edgeaccess.cn-north-4.myhuaweicloud.com

    看是否可以解析出IP,如果无法解析出IP,请执行如下命令查看域名解析服务器配置是否被修改。

    cat /etc/resolv.conf

    解决办法:

    • 配置正确的域名解析服务器,推荐114.114.114.114
    • 获取正确的域名解析出来的IP,通过配置host文件临时规避
  2. 代理问题

    如果通过代理的方式,请确认是否配置代理,代理是否配置正确:

    • 是否为节点配置了代理

      确认方法:

      env | grep proxy

      env | grep PROXY

    • 是否为edgecore配置代理

      确认方法:

      cat /opt/IEF/Cert/user_config | grep PROXY

    如果不是通过代理的方式,请务必通过以上方式确认没有配置代理。

  3. 网络状态不稳

    确认边缘节点网络状态是否正常,是否存在网络不稳情况,如果出现网络不稳,会导致边缘节点的状态在“故障”“运行中”两者之间不断跳动。

GPU驱动异常

解决方法:

  1. 安装GPU驱动。

    IEF当前支持Nvidia Tesla系列P4、P40、T4等型号GPU,支持CUDA Toolkit 8.0至11.0版本对应的驱动。

    1. 下载GPU驱动,推荐驱动链接:

      https://www.nvidia.com/content/DriverDownload-March2009/confirmation.php?url=/tesla/440.33.01/NVIDIA-Linux-x86_64-440.33.01.run&lang=us&type=Tesla

    2. 执行如下安装驱动命令。

      bash NVIDIA-Linux-x86_64-440.33.01.run

    3. 执行如下命令检查GPU驱动安装状态。

      nvidia-smi

  2. 拷贝GPU驱动文件到指定目录。

    1. 以root用户登录边缘节点。
    2. 执行如下命令。

      nvidia-modprobe -c0 -u

    3. 创建文件夹。

      mkdir -p /var/IEF/nvidia/drivers /var/IEF/nvidia/bin /var/IEF/nvidia/lib64

    4. 拷贝驱动文件。
      • 对于CentOS,依次执行如下命令拷贝驱动文件:

        cp /lib/modules/{当前环境内核版本号}/kernel/drivers/video/nvi* /var/IEF/nvidia/drivers/

        cp /usr/bin/nvidia-* /var/IEF/nvidia/bin/

        cp -rd /usr/lib64/libcuda* /var/IEF/nvidia/lib64/

        cp -rd /usr/lib64/libEG* /var/IEF/nvidia/lib64/

        cp -rd /usr/lib64/libGL* /var/IEF/nvidia/lib64/

        cp -rd /usr/lib64/libnv* /var/IEF/nvidia/lib64/

        cp -rd /usr/lib64/libOpen* /var/IEF/nvidia/lib64/

        cp -rd /usr/lib64/libvdpau_nvidia* /var/IEF/nvidia/lib64/

        cp -rd /usr/lib64/vdpau /var/IEF/nvidia/lib64/

      • 对于Ubuntu,依次执行如下命令拷贝驱动文件:

        cp /lib/modules/{当前环境内核版本号}/kernel/drivers/video/nvi* /var/IEF/nvidia/drivers/

        cp /usr/bin/nvidia-* /var/IEF/nvidia/bin/

        cp -rd /usr/lib/x86_64-linux-gnu/libcuda* /var/IEF/nvidia/lib64/

        cp -rd /usr/lib/x86_64-linux-gnu/libEG* /var/IEF/nvidia/lib64/

        cp -rd /usr/lib/x86_64-linux-gnu/libGL* /var/IEF/nvidia/lib64/

        cp -rd /usr/lib/x86_64-linux-gnu/libnv* /var/IEF/nvidia/lib64/

        cp -rd /usr/lib/x86_64-linux-gnu/libOpen* /var/IEF/nvidia/lib64/

        cp -rd /usr/lib/x86_64-linux-gnu/libvdpau_nvidia* /var/IEF/nvidia/lib64/

        cp -rd /usr/lib/x86_64-linux-gnu/vdpau /var/IEF/nvidia/lib64/

      其中,当前环境内核版本号可以使用uname -r命令查看获取,如下所示,请替换为实际取值。

      # uname -r
      3.10.0-514.e17.x86_64
    5. 执行以下命令修改目录权限。

      chmod -R 755 /var/IEF

NPU插件异常

  1. 登录边缘节点。
  2. 执行如下命令查看NPU驱动容器是否工作正常。

    docker ps -a |grep npu

  3. 如果容器状态不是running,则重启容器。

    docker restart {container_name}

    {container_name} 为容器名称。

IEF在边缘节点的核心组件(edgecore)异常

查看edgecore组件是否正常:

systemctl status edgecore

如果edgecore组件显示故障,可能包含以下原因:

  • 8883/1883端口被占用:

    请确认您的边缘节点8883端口和1883端口是否被占用,如果被占用,请先保证端口未被占用情况下,执行systemctl restart edgecore恢复。

  • 容器引擎状态异常:

    执行systemctl status docker确认容器引擎是否正常,如果异常,请执行systemctl restart docker恢复。

  • 防火墙原因:请参见11、8883端口被防火墙关闭

边缘节点强行关机并之后强行开机,系统进入恢复模式

如果您的边缘节点进行了强制下电关机以及强制开机强制重启,有一定的概率使您的系统进入恢复模式,请确认/opt/IEF目录是否正常,如果存在丢失,会导致IEF边缘节点故障。

确认方法:

  • 执行systemctl status edgecore显示服务状态异常,执行systemctl restart edgecore可能会显示服务不存在。
  • 执行systemctl status edgelogger显示状态异常,执行systemctl restart edgelogger可能会显示服务不存在。
  • 执行systemctl status edgemonitor显示状态异常,执行systemctl restart edgemonitor可能会显示服务不存在。

恢复方法:

请确保您的机器开机时是以正常模式进入的。另外,边缘节点异常下电极有可能会造成文件损坏或者丢失,请避免执行该类操作,如出现该问题,请提交工单