uesugi
2023年12月14日 12時00分
お世話になっております。
swupdateが失敗してしまう件についてご相談をさせてください。
以下フォーラムの記載にあります「ウェブサーバーからイメージのインストール(手動)」を実施しました。
https://manual.atmark-techno.com/armadillo-iot-a6e/armadillo-iotg-a6e_p…
その時に以下の画像のようなERRORが発生しアップデートができません。
原因に心当たりはありませんでしょうか?
【その他実行したこと】
①該当のswuファイルをcurlでdownloadし、/var/app/volumesに配置したのち、「swupdate -i "ファイルパス"」で実行
→実行した結果上記と同様の問題が起きます
②ウェブサーバに置く前のswuファイルをUSBに入れ、「swupdate -i "USBのファイルパス"」を実行
→成功しました
ネットワークを経由すると失敗してしまうのではないか思っています。
ファイル | ファイルの説明 |
---|---|
MicrosoftTeams-image.png |
コメント
at_dominique.m…
uesugiさん
お世話になっています、
マルティネです。
(古賀さんがすでに返事しましたが、エラーメッセージを見えてなかったので、横から失礼します。)
> その時に以下の画像のようなERRORが発生しアップデートができません。
> 原因に心当たりはありませんでしょうか?
すごく分かりにくいですが、エラーの詳細に「no space left on device」が記載されていますので、おそらく podman のイメージを書込みするだけのスペースが足りてないだけです。
> ②ウェブサーバに置く前のswuファイルをUSBに入れ、「swupdate -i "USBのファイルパス"」を実行
> →成功しました
swu ファイルの場所と関係なく、swdesc_embed_container の場合は引数の tar アーカイブを /var/tmp に一度展開してから 「podman load -i /var/tmp/archive.tar」でコンテナをロードしていますので、USB とダウンロードの差はないはずですが、何か細かい差が出てるかもしれません…
(USB の場合は swdesc_usb_container を使えば一つのコピーを省けて効率がいいんですが、ダウンロードの場合は embed を使うしかないですね)
embed コンテナの場合は以下のところで容量が使用されています:
- 現在実行中のコンテナ、またボリュームのデーター
- /var/tmp に保存されるイメージ
- podman load による /var/tmp に書き込まれる処理(アップデート差分と同等の容量)
- podman load によるコンテナストレージへの最終的な書込み(差分の容量)
がありますので、app パーティションの余裕が必要です。
どうしても大きいコンテナが必要な場合は一時的に現在実行中のコンテナを削除してから再びゼロからコンテナを書込みできますが、A/Bアップデートのメリットが消えてしまいますので普通の運用としてはおすすめできません。
また、abos-ctrl podman-storage --disk を使用されているようにみえますが、disk へ切り替えて際に読み取り専用になっていたコンテナも永遠に保存されていますので、そこに大きいなイメージがございましたら削除した方がいいかもしれません。
よろしくお願いします
uesugi
アットマークテクノ 古賀様 マルティネ様
ご回答ありがとうございます。
>(1) でダウンロードした .swu ファイルと、(2) の USB メモリ上の .swu ファイルを cmp コマンドで比較すると、どうなるでしょうか?
>内容が異なる場合は、ウェブサーバーにアップロードする際に内容が化けたのかも知れません。
diffコマンドとcmp コマンドでダウンロードしたファイルともともと持っていたファイルに差異はありませんでした。
>すごく分かりにくいですが、エラーの詳細に「no space left on device」が記載されていますので、おそらく podman のイメージを書込みするだけのスペースが足りてないだけです。
「df -h」appの領域は添付ファイルのようになっていました。
イメージファイルは300MBぐらいです。
この領域で足りると思っていましたが不足することはありますでしょうか?
ファイル | ファイルの説明 |
---|---|
容量.png |
at_dominique.m…
uesugiさん
> >すごく分かりにくいですが、エラーの詳細に「no space left on device」が記載されていますので、おそらく podman のイメージを書込みするだけのスペースが足りてないだけです。
>
> 「df -h」appの領域は添付ファイルのようになっていました。
>
> イメージファイルは300MBぐらいです。
> この領域で足りると思っていましたが不足することはありますでしょうか?
イメージファイルというのは SWU ファイルでしょうか、コンテナイメージの .tar ファイルでしょうか?
コンテナイメージょの .tar ファイルでしたら、足りるはずですね。
ただいま 300MB のイメージを生成して、df で 717M使用の app にインストールしてみたが問題なく成功しました(/var/tmpにswuをコピーしたインストール方法で試したので、ダウンロードの場合は swu自体の分が省けて失敗するはずありません)。
SWU ファイルのサイズでしたら、圧縮の影響で何とも言えません。
app 領域も一応圧縮されるはずですが、SWU に使用される圧縮が強く、実際に必要な容量は圧縮されないサイズとswuのサイズの間です。
app_img.tar のサイズを確認できますでしょうか?
また、USB でインストールが成功したことで古いイメージが削除されましたので、インストール前の空き容量がもっと少なかった可能性もありますが、今でも問題が発生していますか?
よろしくお願いします。
uesugi
アットマークテクノ マルティネ様
ご回答ありがとうございます。
返信が遅くなってしまい申し訳ありません。
>app_img.tar のサイズを確認できますでしょうか?
サイズは以下となっていました。
app_img.tar 約853MB
app_img.swu 約296MB
また、armadilloに適用してあるコンテナイメージは以下となっています。
app 899 MB
reboot 4.99 MB
a6e-gw-container 104 MB
上記ファイルサイズの場合、スペース不足は発生しますでしょうか?
>また、USB でインストールが成功したことで古いイメージが削除されましたので、インストール前の空き容量がもっと少なかった可能性もありますが、今でも問題が発生していますか?
申し訳ありません。検証で環境を書き換えてしまい、確認ができていません。
お手数をおかけしますが、ご回答をお願いします。
at_shinya.koga
2023年12月14日 12時18分
アットマークテクノの古賀です。
uesugiさん:
>swupdateが失敗してしまう件についてご相談をさせてください。
>以下フォーラムの記載にあります「ウェブサーバーからイメージのインストール(手動)」を実施しました。
>https://manual.atmark-techno.com/armadillo-iot-a6e/armadillo-iotg-a6e_p…
>
>その時に以下の画像のようなERRORが発生しアップデートができません。
>原因に心当たりはありませんでしょうか?
>
>【その他実行したこと】
>①該当のswuファイルをcurlでdownloadし、/var/app/volumesに配置したのち、「swupdate -i "ファイルパス"」で実行
> →実行した結果上記と同様の問題が起きます
>
>②ウェブサーバに置く前のswuファイルをUSBに入れ、「swupdate -i "USBのファイルパス"」を実行
> →成功しました
>
>ネットワークを経由すると失敗してしまうのではないか思っています。
(1) でダウンロードした .swu ファイルと、(2) の USB メモリ上の .swu ファイルを cmp コマンドで比較すると、どうなるでしょうか?
内容が異なる場合は、ウェブサーバーにアップロードする際に内容が化けたのかも知れません。