边缘节点故障如何处理?
故障现象
边缘节点状态显示为“故障”,将鼠标移动到上,会显示故障原因。
排查思路
边缘节点故障有如下原因,请根据如下原因排查处理。
可能原因 |
处理措施 |
---|---|
边缘节点关机 |
|
容器引擎故障,包括容器引擎未启动和容器引擎服务异常 |
|
节点磁盘空间不足 |
|
边缘节点网络连接异常 |
|
GPU驱动异常 |
|
NPU插件异常 |
|
边缘节点的核心组件(edgecore)异常 |
|
边缘节点强行关机并之后强行开机,系统进入恢复模式 |
边缘节点关机
边缘节点关机后,边缘节点将无法向IEF上报边缘节点状态,IEF会判定边缘节点故障,请保持边缘节点开机。
IEF并不会根据边缘节点收费的,而是依据边缘应用收费,边缘节点故障后,边缘应用仍以异常状态存在IEF中,仍会继续收费。所以,如果您暂时不需要该服务,请确保在IEF中删除应用,而不是关机。
边缘节点本地容器引擎服务异常
IEF的系统组件edgecore的启动和正常运行依赖容器引擎。因此,如果容器引擎不正常,会导致edgecore组件无法启动。
解决方法:
- 使用docker version命令查看容器引擎是否正常。如果不正常,可使用systemctl restart docker命令重启容器引擎。
- 使用docker ps命令查看容器引擎是否可以使用。如果不可以,重新启动或安装容器引擎。
请勿强制下电边缘节点,强制下电可能会导致边缘节点上的数据文件丢失或损毁,从而导致节点故障。
边缘节点网络连接异常
确认方法:
- 在边缘节点执行如下命令,获取连接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 获取云端接入域名
- 使用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 .....
可能原因及解决方法:
- 域名解析问题。
ping ief2-edgeaccess.cn-north-4.myhuaweicloud.com
看是否可以解析出IP,如果无法解析出IP,请执行如下命令查看域名解析服务器配置是否被修改。
cat /etc/resolv.conf
解决办法:
- 配置正确的域名解析服务器,推荐114.114.114.114
- 获取正确的域名解析出来的IP,通过配置host文件临时规避
- 代理问题
- 是否为节点配置了代理
env | grep proxy
env | grep PROXY
- 是否为edgecore配置代理
cat /opt/IEF/Cert/user_config | grep PROXY
如果不是通过代理的方式,请务必通过以上方式确认没有配置代理。
- 是否为节点配置了代理
- 网络状态不稳
确认边缘节点网络状态是否正常,是否存在网络不稳情况,如果出现网络不稳,会导致边缘节点的状态在“故障”和“运行中”两者之间不断跳动。
GPU驱动异常
解决方法:
- 安装GPU驱动。
IEF当前支持Nvidia Tesla系列P4、P40、T4等型号GPU,支持CUDA Toolkit 8.0至11.0版本对应的驱动。
- 下载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
- 执行如下安装驱动命令。
- 执行如下命令检查GPU驱动安装状态。
- 下载GPU驱动,推荐驱动链接:
- 拷贝GPU驱动文件到指定目录。
- 以root用户登录边缘节点。
- 执行如下命令。
- 创建文件夹。
mkdir -p /var/IEF/nvidia/drivers /var/IEF/nvidia/bin /var/IEF/nvidia/lib64
- 拷贝驱动文件。
- 对于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
- 对于CentOS,依次执行如下命令拷贝驱动文件:
- 执行以下命令修改目录权限。
NPU插件异常
- 登录边缘节点。
- 执行如下命令查看NPU驱动容器是否工作正常。
docker ps -a |grep npu
- 如果容器状态不是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可能会显示服务不存在。
恢复方法:
请确保您的机器开机时是以正常模式进入的。另外,边缘节点异常下电极有可能会造成文件损坏或者丢失,请避免执行该类操作,如出现该问题,请提交工单。