TT Lab
はじめる
学ぶ 学習パス コース

Rootless Podmanの運用

graph rootを新しいパスへ

TT Labで続きを見る

目標

rootless podmanのgraph rootを、ホームから別のパスへ移し、新しいストアをイメージで埋め直します。実務で最もよく行う、podmanの運用作業です。

なぜ重要なのか

rootless podmanのイメージは、~/.local/share/containers/storageに積まれます。CUDAベースイメージが1つで8GBあるGPUサーバーでは、ホームパーティションがあっという間に埋まります。そして、ホームが埋まると、podmanだけでなく、そのユーザーのすべての作業が止まります。そのため、GPUノードの標準設定には、graphrootの移動が最初から入っていることが多いです。

注意点が2つあります。新しいストアは空です: 既存のイメージは古いパスに残り、podmanはもう見ません。そして、runrootは移しません: 実行中のロックと一時的な状態が入るので、tmpfsである必要があります。

ステップ

  1. /root/grディレクトリを作成して、podsterの現在のgraphRootとrunRootを、それぞれ1行ずつ(graphRootが先)/root/gr/before.txtに書いてください。
  2. 新しいパス/srv/podman/podsterを作成して、所有者をpodster、権限を700に設定してください。
  3. podsterのstorage.confで、graphrootを新しいパスに変更してください。
  4. podman infoで、graphRootが新しいパスになっているかを確認して、/root/gr/after.txtに1行で書いてください。
  5. 新しいストアのイメージの数を、数字1行で/root/gr/empty.txtに書いてください。0である必要があります。
  6. /opt/images/labhub-alpine.tarを新しいストアにロードして、ロード後のイメージ一覧を/root/gr/images.txtに保存してください。最低1つはある必要があります。
  7. /root/gr/runroot.txtを、次の2行で作成してください。 RUNROOT=<현재 runRoot 값> / WHY=tmpfs(プレースホルダーは現在のrunRootの値です)
  8. /root/gr/report.txtを、次の4行で作成してください。 OLD=<1번의 graphRoot> / NEW=/srv/podman/podster / IMAGES_BEFORE=0 / IMAGES_AFTER=<6번 이후 이미지 개수>(プレースホルダーは、順に、ステップ1のgraphRoot、ステップ6のあとのイメージ数です)

参考

現在のパスを記録する

/root/grディレクトリを作成して、podsterの現在のgraphRootとrunRootを、それぞれ1行ずつ(graphRootが先)/root/gr/before.txtに書いてください。

podman infoには、Goテンプレートで特定の値だけを取り出すオプションがあります。Storeの下にパスがあります。

新しいパスを準備する

新しいパス/srv/podman/podsterを作成して、所有者をpodster、権限を700に設定してください。

所有者と権限が重要です。そのユーザーが読み書きできる必要があり、他人にのぞかれてはいけません。

storage.confを修正する

podsterのstorage.confで、graphrootを新しいパスに変更してください。

[storage]セクションのgraphrootの値だけを変えれば済みます。引用符は維持してください。

新しいパスが反映されたことを確認する

podman infoで、graphRootが新しいパスになっているかを確認して、/root/gr/after.txtに1行で書いてください。

設定を直したあと、もう一度infoを実行すれば、値が変わっているはずです。変わらなければ、所有権やパスを疑ってください。

新しいストアが空であることを確認する

新しいストアのイメージの数を、数字1行で/root/gr/empty.txtに書いてください。0である必要があります。

イメージの一覧を照会すると、見出しだけが出て、項目がないはずです。数を数えて、ファイルに書いてください。

イメージアーカイブをロードする

/opt/images/labhub-alpine.tarを新しいストアにロードして、ロード後のイメージ一覧を/root/gr/images.txtに保存してください。最低1つはある必要があります。

podmanには、tarアーカイブからイメージを読み込むコマンドがあります。ロード後、一覧に現れる必要があります。

runrootを確認して、根拠を記録する

/root/gr/runroot.txtを、次の2行で作成してください。 RUNROOT=<현재 runRoot 값> / WHY=tmpfs(プレースホルダーは現在のrunRootの値です)

runrootは移しません。なぜそうなのかを、決まったキーワードで書いてください。

移行レポート

/root/gr/report.txtを、次の4行で作成してください。 OLD=<1번의 graphRoot> / NEW=/srv/podman/podster / IMAGES_BEFORE=0 / IMAGES_AFTER=<6번 이후 이미지 개수>(プレースホルダーは、順に、ステップ1のgraphRoot、ステップ6のあとのイメージ数です)

移行前と移行後のパス、イメージの数を集めれば済みます。値は、実際に確認したものである必要があります。