Armadilloフォーラム

SWインストール時のサイズについて

masa.yamaguchi

2025年2月19日 9時35分

==========
製品型番:Aramadillo-610
ABOSバージョン:3.20.3-at.8
カーネルバージョン: 5.10.233-0
その他:ATDE9を使用
==========
ABOS WEB でSWUをインストールした際についてのお伺いしたいことがございます。

添付資料(サイズ確認結果0219.png)の通り、
podman image ls を実行した場合は、イメージ合計サイズは1GBを超えているのですが、
dfコマンドを実行した場合は、/dev/mmcblk0p5 は使用量が1GBを超えていません。
これは期待通りの動作となりますでしょうか。
(SWUで実際に使用している量を確認したいと思いお伺いしております。(もしくはこちらの誤認識 or 異常発生の可能性もあるため))

ファイル ファイルの説明
サイズ確認結果0219.png
コメント

at_dominique.m…

2025年2月19日 10時24分

masa.yamaguchiさん

お世話になっています、
マルティネです。

> podman image ls を実行した場合は、イメージ合計サイズは1GBを超えているのですが、
> dfコマンドを実行した場合は、/dev/mmcblk0p5 は使用量が1GBを超えていません。
> これは期待通りの動作となりますでしょうか。

それで問題ありません。
コンテナイメージやボリューム情報が保存されているパーティションは圧縮されていますので、
df では「圧縮された後」の(小さい)サイズが表示されていて、podman image list や du で「圧縮する前」の(大きい)サイズが表示されています。

また、Armadillo Base OS ではコンテナを2面化保存していますので、あるコンテナを別のコンテナと入れ替える際に df で両方のサイズが保存されています。
そのため、逆に df で podman image より大きいサイズに見えることもあります。

> (SWUで実際に使用している量を確認したいと思いお伺いしております。(もしくはこちらの誤認識 or 異常発生の可能性もあるため))

こちらの確認でしたら、完全に一致していませんが du でサイズを確認できます

armadillo:~# du -hs /var/lib/containers/storage_readonly
679.5M /var/lib/containers/storage_readonly
armadillo:~# podman image list
REPOSITORY TAG IMAGE ID CREATED SIZE R/O
docker.io/library/alpine latest 7ad00e65ee25 5 weeks ago 8.47 MB true
localhost/gui-app 1.4.3 d2cbbf609ce7 7 months ago 665 MB true
armadillo:~# echo $((665+8))
673

よろしくお願いします

at_dominique.m…

2025年2月19日 10時31分

マルティネです。

連続ですみません。一点忘れてました。
du で「圧縮前」のサイズを確認できますが、podman がイメージを保存する方法ではコンテナが共通する「レイヤー」を一回しか保存しません。

そのため、イメージを同じ debian ベース等で作るとこういう出力も不思議ではないですね:

armadillo:~# podman image list
REPOSITORY                TAG         IMAGE ID      CREATED         SIZE        R/O
localhost/example         latest      f78cce558e75  22 seconds ago  666 MB      true
docker.io/library/alpine  latest      7ad00e65ee25  5 weeks ago     8.47 MB     true
localhost/gui-app         1.4.3       d2cbbf609ce7  7 months ago    665 MB      true
armadillo:~# du -hs /var/lib/containers/storage_readonly
680.5M	/var/lib/containers/storage_readonly

なので、厳密での確認は難しいと思います(異なるレイヤーをリストしてその合計を計算する必要があります)

問題の確認だけでよろしければ「podman system check」というコマンドがありますので、そのコマンドで問題なければコンテナ情報がちゃんと保存されています。

よろしくお願いします

マルティネ 様

masa.yamaguchiです。

ご回答ありがとうございます。サイズにつきまして想定通りである旨承知しました。

あと1点だけお伺いしたいことがございます。(podman system checkの動作)
Armdillo-610 に最新のABOSリファレンスイメージを書き込んで、podman system checkを実施したところ、何もエラーは出ませんでした。
その後、ATDEにてシェルスクリプトのプロジェクトを書き込んだところ、
添付(podman_system_check結果0219.png)のエラー(.... Error: damage detected in local storage)が表示されました。
他のイメージでも同様の動作はエラー出ておりますが、動作上は特に問題が出ておりません。
その為、上記エラーは特に気にしなくても良いという認識でよろしいでしょうか。
[備考]
プログラムの影響を極力なくすため、main.shは以下のみの記載にしております。他は修正しておりません。

#!/bin/bash -e
 
# For debug. If you need it, please comment in.
#set -x
 
#sshd start
# /usr/sbin/sshd
 
#以下にメインスクリプトを記載します。
#ここでは特に何もしない為 sleep としています。
sleep infinity
ファイル ファイルの説明
podman_system_check結果0219.png

at_dominique.m…

2025年2月19日 12時25分

masa.yamaguchiさん

マルティネです。

> Armdillo-610 に最新のABOSリファレンスイメージを書き込んで、podman system checkを実施したところ、何もエラーは出ませんでした。
> その後、ATDEにてシェルスクリプトのプロジェクトを書き込んだところ、
> 添付(podman_system_check結果0219.png)のエラー(.... Error: damage detected in local storage)が表示されました。

すみません、不親切なアドバイスをしてしまいましたようです…

手元でも再現できました:
* コンテナが起動している状態
* メモリ上でコンテナイメージを変更した状態
のどちらの場合でも似たようなエラーが表示されますね…

確認したところ、起動しているコンテナやメモリ上のイメージは外部のイメージを参照するとエラーしますので、
われわれが使っている読み取り専用の「additional image store」の仕組みを正しく「podman system check」で対応してないようにみえます。

そのエラーを無視していいですが、それでは本当にエラーが発生した場合との区別はできないので、あまり意味ないですね。
メモリ上の変更がない状態でコンテナを一時的に停止(「podman kill -a; podman rm -a」)するとコマンドを使えますが、すみません、現状はそれ以上確認できなさそうです。

少し時間見つかりましたら podman の開発者 ( https://github.com/containers/podman/ ) に報告して修正させようと思います。

よろしくお願いします。

マルティネ 様

masa.yamaguchiです。
ご回答ありがとうございます。
ご回答いただいた内容につきまして承知いたしました。
お手数おかけしてすみません。