Armadilloフォーラム

Armadilloのstorageモードについて

kn_kobayashi

2023年9月22日 13時19分

お世話になっております。

ArmadilloIoTG4ですが、storageモードのdisk/tmpfsへの切替について、
「abos-ctrl podman-storage --disk/tmpfs」
というコマンドを実行して行っております。
この際、「Copy/Delete/Nothing」を対話式で聞かれる場合がありますが、
この対話を省略する(Copyにする)場合、
「abos-ctrl podman-storage --disk/tmpfs --cleanup=copy」
と指定すれば、対話は表示されず、確実にCopyが実行されると考えて宜しいでしょうか。

表示される条件等を理解しきれておらず、うろ覚えで申し訳ないのですが、
「--cleanup=copy」を指定しても、確認プロンプトが表示されたことがあった気がするので、
質問させて頂きました。

また、聞かれている内容についての詳細な仕様、条件等もあわせて教えて頂けますと幸いです。

よろしくお願い致します。

コメント

at_dominique.m…

2023年9月22日 14時17分

kn_kobayashiさん

マルティネです。

> ArmadilloIoTG4ですが、storageモードのdisk/tmpfsへの切替について、
> 「abos-ctrl podman-storage --disk/tmpfs」
> というコマンドを実行して行っております。
> この際、「Copy/Delete/Nothing」を対話式で聞かれる場合がありますが、
> この対話を省略する(Copyにする)場合、
> 「abos-ctrl podman-storage --disk/tmpfs --cleanup=copy」
> と指定すれば、対話は表示されず、確実にCopyが実行されると考えて宜しいでしょうか。

はい、その認識であっています。

> 表示される条件等を理解しきれておらず、うろ覚えで申し訳ないのですが、
> 「--cleanup=copy」を指定しても、確認プロンプトが表示されたことがあった気がするので、
> 質問させて頂きました。

すみません、設定すると確認のプロンプトは表示しないようにしていますが、何かの不具合あったかもしれません。
最近のコードを確認して、プロンプトされるパターンはないと確信していますが、再び再現できたらコンソールの出力を提供してください。

また、--cleanup のオプションは弊社で行っている自動テストのために追加した物で、このコマンドをあまりスクリプトで使わない方がいいです。
不具合がでた場合に対応しますが、abos-ctrl podman-storage コマンドは開発時に使うコマンドで、運用時のコマンドではありません。
podman のストレージが壊れやすいから運用時に tmpfs を使うことを強く推奨しています。
壊れた状態で disk からコピーする場合に読み取り専用のストレージも故障状態になりますし、コマンドの途中で電源が切れた場合のテスト等は行ってません(snapshot を使って最後に切り替えているだけなので安全になっているはずですが、完全にサポートしているパターンではありません)

コンテナのアップデートは mkswu / swupdate で更新するのを推奨しています。
どうしても swu を使えない場合は tmpfs 状態から、 abos-ctrl podman-rw が podman-storage の頻繁の切り替えよりいいと思いますが、そちらも開発用でプロンプトがでる可能性がありますね… 必要でしたら対応を考慮できますので相談してください。

> また、聞かれている内容についての詳細な仕様、条件等もあわせて教えて頂けますと幸いです。

現在のバージョンでは、この二つの条件でプロンプトされます:
- 「--cleanup*」を指定していない
- ロカールのディレクトリにコンテナイメージがある場合 (tmpfsの場合は tmpfs ディレクトリにイメージがあるか、disk の場合はロカールのイメージが読み取り専用パーティションと異なる場合)

cleanup の内容は:
- copy (tmpfs から) の場合は tmpfs にあるイメージをコピーして、読み取り専用のストレージに追加されます。具体的には新しい snapshot にコピーして、コピーが終わったら読み取り専用のストレージと入れ替えます。
- copy (disk から) の場合はそのままディスクのイメージを読み取り専用と入れ替えます。
- delete: 一時的なストレージディレクトリは削除されます。
- nothing/no: ディレクトリをそのままにして、コンフィグファイルだけを切り替えます。
disk にコンテナを残した後に再び disk に切り替えている際にもプロンプトがありますが、そのプロンプトも --cleanup を指定すれば表示されません。(残したディレクトリを使うか、読み取り専用ディレクトリから新しく作るかの質問です)

よろしくお願いします。