# HG changeset patch # User Ken Miyahira # Date 1612264003 -32400 # Node ID 39b63490ba16cbf63735451de9f0166fb8a04ee2 # Parent ee9ebfb6b381c3653f8f14e12317572a3620b8d2 update usage diff -r ee9ebfb6b381 -r 39b63490ba16 paper/chapter/new_system.tex --- a/paper/chapter/new_system.tex Mon Feb 01 20:43:17 2021 +0900 +++ b/paper/chapter/new_system.tex Tue Feb 02 20:06:43 2021 +0900 @@ -72,7 +72,7 @@ IPアドレスの割り当てにはネットワークデバイスの関連付けが必要だが, root権限が必要なためである。 rootlessでWebなどのサービスを実行しアクセスするにはポートフォワードを設定する必要がある。 だが, 利用者が使用するポートを汎用サーバで開放することはセキュリティ的にできない。 -そこで, podmanをwrapperしたie-podmanを作成した。 +そこで, Podmanをwrapperしたie-podmanを作成した。 ie-podmanはコンテナに個別のIPアドレスを割り当てる際に利用する。 \subsection{FileSystem} diff -r ee9ebfb6b381 -r 39b63490ba16 paper/chapter/system_usage.tex --- a/paper/chapter/system_usage.tex Mon Feb 01 20:43:17 2021 +0900 +++ b/paper/chapter/system_usage.tex Tue Feb 02 20:06:43 2021 +0900 @@ -34,6 +34,93 @@ \end{verbatim} \section{Containerの利用と管理} -\subsection{Podman} +新システムではコンテナエンジンであるPodmanとSingularityを導入した。 +また, PodmanやSingularityを使用する上での不便な点を補うために作成したie-podmanについて説明を行う。 + \subsection{ie-podman} +%Podmanは主にコンテナで実行するプロセスに特権が必要となる場合に利用する。 +ie-podmanはPodmanをwrappし複数ユーザで利用することができるコンテナ管理ツールである。 +Podmanはマルチユーザに対応しているため, ie-podmanを利用せずともコンテナの作成などを行える。 +だが, コンテナへのIPアドレスの割り当てには, root権限が必要となるためrootlessでは実行できない。 +そのため, Webなどを実行しアクセするにはポートフォワードを設定し, SSHポートフォワードを行う必要がある。 +そこで, ie-podmanではPodmanのすべての機能をwrappするのではなく, rootlessでは実行できない機能を提供する。 +表\ref{tb:ie-podman}はie-podmanで利用できる機能である。 + +\begin{table}[htb] + \begin{center} + \caption{ie-podmanのコマンド} + \begin{tabular}{c|l} \hline + build & Containerfileの指示に従いイメージを作成する \\ \hline + cp & コンテナにファイルを送信する \\ \hline + exec & 起動中のコンテナでプロセスを実行する \\ \hline + images & コンテナイメージの一覧を表示する \\ \hline + info & コンテナの情報を表示する \\ \hline + logs & コンテナのlogを表示する \\ \hline + ps & 起動中のコンテナの一覧を表示する \\ \hline + registry & 学科のレジストリの操作を行う \\ \hline + rm & コンテナを削除する \\ \hline + run & コンテナを作成する \\ \hline + sif & イメージをsifファイルに変換する \\ \hline + start & コンテナを起動する \\ \hline + stop & コンテナを停止する \\ \hline + \end{tabular} + \label{tb:ie-podman} + \end{center} +\end{table} + +新しいコンテナの作成は, Podmanのrunと同じように実行できる。 +しかし, ie-podman独自のオプションを提供する。 +run時に--gpuオプションを指定することでコンテナ内でGPUを使用できる。 +また, --ipオプションを指定することで, 使用されていないIPアドレスが割り振られる。 +コンテナ名は指定することもきるが, ユーザ名で補完されるため, 他ユーザと重複することはない。 +ie-podmanを使用して, 新しいコンテナの作成は下記のように行う。 +\begin{verbatim} +$ ie-podman run --ip --gpu --name [CONTAINER_NAME] [IMAGE] +\end{verbatim} + +現在のPodmanはrootlessでコンテナイメージの作成は低速である。 +これは, 開発段階ということ, 新システムのユーザのホームディレクトリはCephFSで提供されているためである。 +ie-podmanはrootのPodmanを利用しSSD上に作成されるため, Podmanと比較し高速である。 +イメージ名はコンテナ名と同じくユーザ名で補完されることで, 他ユーザと重複することはない。 +ie-podmanを使用して, 新しいイメージの作成は下記のように行う。 +\begin{verbatim} +$ ie-podman build --tag [IMAGE_NAME] [CONTEXT] +\end{verbatim} + +作成したコンテナイメージは下記の操作で一覧を表示することができる。 +一覧で表示されるイメージはie-podmanで作成したイメージのみである。 +\begin{verbatim} +$ ie-podman images +\end{verbatim} + +SingularityはDockerで作成したイメージをsifファイルに変換し, Singualrityで利用できる。 +sifファイルへの変換はdockerデーモンへリクエストを行う必要があるが, Podmanはデーモンレスで動作する。 +そのため, Podmanで作成したイメージをSingularityに変換するには一手間掛かる。 +SingularityはDefinitionfileを作成し, ビルドすることで, sifファイルを作成できる。 +だが, イメージのビルド中にエラーが発生すると, 一からビルドを行う必要がある。 +DockerやPodmanはイメージのビルド時にレイヤーごとにキャッシュされるため, Containerfileに追加や編集を行っても前回のキャッシュが使用されることで, 高速にビルドが行われる。 +そこで, ie-podmanで作成したイメージをsifファイルへ変換する機能を作成した。 +ie-podmanでイメージを作成し, 下記の操作を行うことでsifファイルへ変換を行う。 +\begin{verbatim} +$ ie-podman sif [IMAGE_NAME] +\end{verbatim} + +本コースではコンテナレジストリを導入し利用している。 +レジストリの利用は学内ネットワークから可能であり, pushやpullが可能である。 +ie-podmanからだけでなく, Podmanや手元のPCのDockerからも利用できる。 +レジストリへの登録には, 登録するイメージにtagを付けpushする必要がある。 +ie-podmanでは本コースのレジストリを利用しやすくするため, 簡単に操作できる機能を作成した。 +ie-podmanでは下記の操作で本コースで利用するレジストリへ登録できる。 +\begin{verbatim} +$ ie-podman registry push [IMAGE_NAME] +\end{verbatim} + +また, registry searchでレジストリに登録されているイメージ一覧を表示することも可能である。 +下記の操作でイメージ一覧を表示を行う。 +イメージ名を指定することで, イメージのtag一覧の表示も可能である。 +\begin{verbatim} +$ ie-podman registry search +$ ie-podman registry search [IMAGE_NAME] +\end{verbatim} + \subsection{SingularityとSlurm} \ No newline at end of file diff -r ee9ebfb6b381 -r 39b63490ba16 paper/final_thesis.pdf Binary file paper/final_thesis.pdf has changed