Azure IoT 边缘设备托管节点红色模块停止工作:错误设备上没有空间

问题描述 投票:0回答:1

我在 Raspberry Pi 3 (Debian bullseye) 上安装了 Azure IoT 边缘运行时来运行我的边缘模型。一切正常,直到出现错误:

A module runtime error occurred
        caused by: A module runtime error occurred
        caused by: connection error: Connection reset by peer (os error 104)
        caused by: Connection reset by peer (os error 104)

因此我决定运行

sudo iotedge check
给出了以下内容:

Configuration checks (aziot-identity-service)
---------------------------------------------
√ keyd configuration is well-formed - OK
√ certd configuration is well-formed - OK
√ tpmd configuration is well-formed - OK
√ identityd configuration is well-formed - OK
√ daemon configurations up-to-date with config.toml - OK
√ identityd config toml file specifies a valid hostname - OK
√ aziot-identity-service package is up-to-date - OK
√ host time is close to reference time - OK
√ preloaded certificates are valid - OK
√ keyd is running - OK
√ certd is running - OK
√ identityd is running - OK
√ read all preloaded certificates from the Certificates Service - OK
√ read all preloaded key pairs from the Keys Service - OK
√ check all EST server URLs utilize HTTPS - OK
√ ensure all preloaded certificates match preloaded private keys with the same ID - OK

Connectivity checks (aziot-identity-service)
--------------------------------------------
√ host can connect to and perform TLS handshake with iothub AMQP port - OK
√ host can connect to and perform TLS handshake with iothub HTTPS / WebSockets port - OK
√ host can connect to and perform TLS handshake with iothub MQTT port - OK

Configuration checks
--------------------
√ aziot-edged configuration is well-formed - OK
√ configuration up-to-date with config.toml - OK
√ container engine is installed and functional - OK
× configuration has correct URIs for daemon mgmt endpoint - Error
    docker: Error response from daemon: mkdir /var/lib/docker/overlay2/90aaeea51acd3c6e7d8281710a36b5b9ceddff484170687e9364688d06956d6a-init: no space left on device.
    See 'docker run --help'.
√ aziot-edge package is up-to-date - OK
× container time is close to host time - Error
    Could not query local time inside container
√ DNS server - OK
‼ production readiness: logs policy - Warning
    Container engine is not configured to rotate module logs which may cause it run out of disk space.
    Please see https://aka.ms/iotedge-prod-checklist-logs for best practices.
    You can ignore this warning if you are setting log policy per module in the Edge deployment.
‼ production readiness: Edge Agent's storage directory is persisted on the host filesystem - Warning
    The edgeAgent module is not configured to persist its /tmp/edgeAgent directory on the host filesystem.
    Data might be lost if the module is deleted or updated.
    Please see https://aka.ms/iotedge-storage-host for best practices.
‼ production readiness: Edge Hub's storage directory is persisted on the host filesystem - Warning
    The edgeHub module is not configured to persist its /tmp/edgeHub directory on the host filesystem.
    Data might be lost if the module is deleted or updated.
    Please see https://aka.ms/iotedge-storage-host for best practices.
√ Agent image is valid and can be pulled from upstream - OK
√ proxy settings are consistent in aziot-edged, aziot-identityd, moby daemon and config.toml - OK

Connectivity checks
-------------------
× container on the default network can connect to upstream AMQP port - Error
    Container on the default network could not connect to dc-hub-rnd.azure-devices.net:5671
× container on the default network can connect to upstream HTTPS / WebSockets port - Error
    Container on the default network could not connect to dc-hub-rnd.azure-devices.net:443
× container on the IoT Edge module network can connect to upstream AMQP port - Error
    Container on the azure-iot-edge network could not connect to dc-hub-rnd.azure-devices.net:5671
× container on the IoT Edge module network can connect to upstream HTTPS / WebSockets port - Error
    Container on the azure-iot-edge network could not connect to dc-hub-rnd.azure-devices.net:443
26 check(s) succeeded.
3 check(s) raised warnings. Re-run with --verbose for more details.
6 check(s) raised errors. Re-run with --verbose for more details.
2 check(s) were skipped due to errors from other checks. Re-run with --verbose for more details.

我看到docker有问题。为什么会出现这个错误? 有关在 docker 容器中运行的边缘模块的更多信息:我使用 node-red 模块通过以太网连接到 PLC,并从那里收集数据以传送到 IoT 中心。我也在node-red模块中做了一些消息处理。一切正常,由于某种原因出现了这个错误。我使用了多个这样的物联网边缘设备,并希望确保此类错误不会再次发生。有人猜到根本原因了吗?

我也想知道如何解决这个问题

更新: 进一步调查显示,根据

df -h
,磁盘空间已满。 我尝试使用第一个弹出的谷歌搜索方法来释放空间,但它并没有帮助我。 具有相同模块的其他类似设备占用 10% 左右的空间。 我假设也许节点红色模块日志溢出了磁盘空间,因为有时我会遇到诸如“日志太大”之类的消息,因此它没有向我显示任何信息。 node-red 的缓存内存可能会有一些自动调整,可能不会?

docker debian node-red azure-iot-edge bullseye
1个回答
0
投票

我认为所有这些错误都有确切的根本原因:您的设备磁盘空间不足。你能验证一下是不是这样吗?

× configuration has correct URIs for daemon mgmt endpoint - Error
    docker: Error response from daemon: mkdir /var/lib/docker/overlay2/90aaeea51acd3c6e7d8281710a36b5b9ceddff484170687e9364688d06956d6a-init: no space left on device.
    See 'docker run --help'.
© www.soinside.com 2019 - 2024. All rights reserved.