comparison paper/chapter/system_usage.tex @ 27:39b63490ba16

update usage
author Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
date Tue, 02 Feb 2021 20:06:43 +0900
parents ee9ebfb6b381
children 7154e9689864
comparison
equal deleted inserted replaced
26:ee9ebfb6b381 27:39b63490ba16
32 \begin{verbatim} 32 \begin{verbatim}
33 $ ie-virsh domiflist [VM_NAME] 33 $ ie-virsh domiflist [VM_NAME]
34 \end{verbatim} 34 \end{verbatim}
35 35
36 \section{Containerの利用と管理} 36 \section{Containerの利用と管理}
37 \subsection{Podman} 37 新システムではコンテナエンジンであるPodmanとSingularityを導入した。
38 また, PodmanやSingularityを使用する上での不便な点を補うために作成したie-podmanについて説明を行う。
39
38 \subsection{ie-podman} 40 \subsection{ie-podman}
41 %Podmanは主にコンテナで実行するプロセスに特権が必要となる場合に利用する。
42 ie-podmanはPodmanをwrappし複数ユーザで利用することができるコンテナ管理ツールである。
43 Podmanはマルチユーザに対応しているため, ie-podmanを利用せずともコンテナの作成などを行える。
44 だが, コンテナへのIPアドレスの割り当てには, root権限が必要となるためrootlessでは実行できない。
45 そのため, Webなどを実行しアクセするにはポートフォワードを設定し, SSHポートフォワードを行う必要がある。
46 そこで, ie-podmanではPodmanのすべての機能をwrappするのではなく, rootlessでは実行できない機能を提供する。
47 表\ref{tb:ie-podman}はie-podmanで利用できる機能である。
48
49 \begin{table}[htb]
50 \begin{center}
51 \caption{ie-podmanのコマンド}
52 \begin{tabular}{c|l} \hline
53 build & Containerfileの指示に従いイメージを作成する \\ \hline
54 cp & コンテナにファイルを送信する \\ \hline
55 exec & 起動中のコンテナでプロセスを実行する \\ \hline
56 images & コンテナイメージの一覧を表示する \\ \hline
57 info & コンテナの情報を表示する \\ \hline
58 logs & コンテナのlogを表示する \\ \hline
59 ps & 起動中のコンテナの一覧を表示する \\ \hline
60 registry & 学科のレジストリの操作を行う \\ \hline
61 rm & コンテナを削除する \\ \hline
62 run & コンテナを作成する \\ \hline
63 sif & イメージをsifファイルに変換する \\ \hline
64 start & コンテナを起動する \\ \hline
65 stop & コンテナを停止する \\ \hline
66 \end{tabular}
67 \label{tb:ie-podman}
68 \end{center}
69 \end{table}
70
71 新しいコンテナの作成は, Podmanのrunと同じように実行できる。
72 しかし, ie-podman独自のオプションを提供する。
73 run時に--gpuオプションを指定することでコンテナ内でGPUを使用できる。
74 また, --ipオプションを指定することで, 使用されていないIPアドレスが割り振られる。
75 コンテナ名は指定することもきるが, ユーザ名で補完されるため, 他ユーザと重複することはない。
76 ie-podmanを使用して, 新しいコンテナの作成は下記のように行う。
77 \begin{verbatim}
78 $ ie-podman run --ip --gpu --name [CONTAINER_NAME] [IMAGE]
79 \end{verbatim}
80
81 現在のPodmanはrootlessでコンテナイメージの作成は低速である。
82 これは, 開発段階ということ, 新システムのユーザのホームディレクトリはCephFSで提供されているためである。
83 ie-podmanはrootのPodmanを利用しSSD上に作成されるため, Podmanと比較し高速である。
84 イメージ名はコンテナ名と同じくユーザ名で補完されることで, 他ユーザと重複することはない。
85 ie-podmanを使用して, 新しいイメージの作成は下記のように行う。
86 \begin{verbatim}
87 $ ie-podman build --tag [IMAGE_NAME] [CONTEXT]
88 \end{verbatim}
89
90 作成したコンテナイメージは下記の操作で一覧を表示することができる。
91 一覧で表示されるイメージはie-podmanで作成したイメージのみである。
92 \begin{verbatim}
93 $ ie-podman images
94 \end{verbatim}
95
96 SingularityはDockerで作成したイメージをsifファイルに変換し, Singualrityで利用できる。
97 sifファイルへの変換はdockerデーモンへリクエストを行う必要があるが, Podmanはデーモンレスで動作する。
98 そのため, Podmanで作成したイメージをSingularityに変換するには一手間掛かる。
99 SingularityはDefinitionfileを作成し, ビルドすることで, sifファイルを作成できる。
100 だが, イメージのビルド中にエラーが発生すると, 一からビルドを行う必要がある。
101 DockerやPodmanはイメージのビルド時にレイヤーごとにキャッシュされるため, Containerfileに追加や編集を行っても前回のキャッシュが使用されることで, 高速にビルドが行われる。
102 そこで, ie-podmanで作成したイメージをsifファイルへ変換する機能を作成した。
103 ie-podmanでイメージを作成し, 下記の操作を行うことでsifファイルへ変換を行う。
104 \begin{verbatim}
105 $ ie-podman sif [IMAGE_NAME]
106 \end{verbatim}
107
108 本コースではコンテナレジストリを導入し利用している。
109 レジストリの利用は学内ネットワークから可能であり, pushやpullが可能である。
110 ie-podmanからだけでなく, Podmanや手元のPCのDockerからも利用できる。
111 レジストリへの登録には, 登録するイメージにtagを付けpushする必要がある。
112 ie-podmanでは本コースのレジストリを利用しやすくするため, 簡単に操作できる機能を作成した。
113 ie-podmanでは下記の操作で本コースで利用するレジストリへ登録できる。
114 \begin{verbatim}
115 $ ie-podman registry push [IMAGE_NAME]
116 \end{verbatim}
117
118 また, registry searchでレジストリに登録されているイメージ一覧を表示することも可能である。
119 下記の操作でイメージ一覧を表示を行う。
120 イメージ名を指定することで, イメージのtag一覧の表示も可能である。
121 \begin{verbatim}
122 $ ie-podman registry search
123 $ ie-podman registry search [IMAGE_NAME]
124 \end{verbatim}
125
39 \subsection{SingularityとSlurm} 126 \subsection{SingularityとSlurm}