annotate paper/chapter/system_usage.tex @ 49:71e1425687f3

update tex
author Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
date Fri, 12 Feb 2021 23:49:40 +0900
parents 47a9b8bf069b
children a822207b796f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
39
a967cf51ba92 fix typo
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 32
diff changeset
1 \chapter{教育情報システムの管理}
5
e32786ab9366 update tex
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents:
diff changeset
2
41
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 39
diff changeset
3 本章では,構築した教育情報システムの管理方法,利用方法について述べる.
5
e32786ab9366 update tex
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents:
diff changeset
4
32
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 30
diff changeset
5 \section{LDAPによる権限管理}
41
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 39
diff changeset
6 教育情報システムは,本コースの学生や教師のユーザアカウントをLDAPで管理している.
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 39
diff changeset
7 また,ユーザの権限も管理される.
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 39
diff changeset
8 VM貸出サービスやコンテナ環境はLDAPからユーザアカウントの情報を取得することで,他の利用者のリソースに対して操作を制限する.
32
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 30
diff changeset
9
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 30
diff changeset
10 \section{VM貸出サービスの利用}
41
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 39
diff changeset
11 ie-virshは旧システムより利用されている.
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 39
diff changeset
12 新システムでも利用を継続し,新たに機能の追加を行った.
26
ee9ebfb6b381 update tex
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 25
diff changeset
13 \par
41
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 39
diff changeset
14 これまでのie-virshではVMを利用するには,手元のPCで作成したVMイメージをサーバにアップロードを行い,ie-virshでドメインの定義が必要であった.
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 39
diff changeset
15 そこで,新たにVMのテンプレートのイメージを用意し,テンプレートから差分でVMを作成できるようにした.
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 39
diff changeset
16 VMのテンプレートから新たにVMを作成するには下記のように行う.
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 39
diff changeset
17 また,--gdbオプションを付与することで,GDBによるLinux KernelのDebugを行える.
48
47a9b8bf069b fix thesis
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 41
diff changeset
18 \begin{lstlisting}[caption=VMの作成]
26
ee9ebfb6b381 update tex
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 25
diff changeset
19 $ ie-virsh define --template Ubuntu-20 [VM_NAME]
48
47a9b8bf069b fix thesis
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 41
diff changeset
20 \end{lstlisting}
26
ee9ebfb6b381 update tex
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 25
diff changeset
21
41
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 39
diff changeset
22 VMの作成で利用できるテンプレートは下記の操作で確認することができる.
48
47a9b8bf069b fix thesis
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 41
diff changeset
23 \begin{lstlisting}[caption=テンプレート一覧の出力]
26
ee9ebfb6b381 update tex
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 25
diff changeset
24 $ ie-virsh templates
48
47a9b8bf069b fix thesis
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 41
diff changeset
25 \end{lstlisting}
26
ee9ebfb6b381 update tex
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 25
diff changeset
26
41
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 39
diff changeset
27 また,作成したVMのデフォルトのリソースは旧システムから変更はなく,CPU1コア,メモリ1GB,ディスク容量10GBとなっている.
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 39
diff changeset
28 これまでは,リソースの変更は申請が必要であったが,下記の操作でVMのリソースを変更が行える.
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 39
diff changeset
29 しかし,ディスク容量の変更には申請が必要となっている.
48
47a9b8bf069b fix thesis
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 41
diff changeset
30 \begin{lstlisting}[caption=リソースの変更]
26
ee9ebfb6b381 update tex
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 25
diff changeset
31 $ ie-virsh edit [VM_NAME]
48
47a9b8bf069b fix thesis
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 41
diff changeset
32 \end{lstlisting}
26
ee9ebfb6b381 update tex
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 25
diff changeset
33
41
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 39
diff changeset
34 作成したVMにIPアドレスを割り当てるには,IPアドレス管理サービスにMACアドレスを登録する必要がある.
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 39
diff changeset
35 VMのMACアドレスはie-virshが作成するXMLファイルに定義されており,dumpxmlでXMLを出力し確認できる.
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 39
diff changeset
36 しかし,XMLを出力すると必要とする情報以外も多く表示されるため,下記の操作でVMのインターフェース情報を出力できるようになっている.
48
47a9b8bf069b fix thesis
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 41
diff changeset
37 \begin{lstlisting}[caption=インターフェース一覧の出力]
26
ee9ebfb6b381 update tex
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 25
diff changeset
38 $ ie-virsh domiflist [VM_NAME]
48
47a9b8bf069b fix thesis
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 41
diff changeset
39 \end{lstlisting}
24
697579cf6cf8 update usage
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
40
32
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 30
diff changeset
41 \section{コンテナ環境の利用}
41
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 39
diff changeset
42 新システムではコンテナエンジンであるPodmanとSingularityを導入した.
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 39
diff changeset
43 また,PodmanやSingularityを使用する上での不便な点を補うために作成したie-podmanについて説明を行う.
27
39b63490ba16 update usage
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 26
diff changeset
44
24
697579cf6cf8 update usage
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
45 \subsection{ie-podman}
41
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 39
diff changeset
46 %Podmanは主にコンテナで実行するプロセスに特権が必要となる場合に利用する.
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 39
diff changeset
47 ie-podmanはPodmanをwrappし複数ユーザで利用することができるコンテナ管理ツールである.
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 39
diff changeset
48 Podmanはマルチユーザに対応しているため,ie-podmanを利用せずともコンテナの作成などを行える.
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 39
diff changeset
49 だが,コンテナへのIPアドレスの割り当てには,root権限が必要となるためrootlessでは実行できない.
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 39
diff changeset
50 そのため,Webなどを実行しアクセスするにはポートフォワードを設定し,SSHポートフォワードを行う必要がある.
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 39
diff changeset
51 そこで,ie-podmanではPodmanのすべての機能をwrappするのではなく,rootlessでは実行できない機能を提供する.
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 39
diff changeset
52 表\ref{tb:ie-podman}はie-podmanで利用できる機能である.
27
39b63490ba16 update usage
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 26
diff changeset
53
39b63490ba16 update usage
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 26
diff changeset
54 \begin{table}[htb]
39b63490ba16 update usage
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 26
diff changeset
55 \begin{center}
39b63490ba16 update usage
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 26
diff changeset
56 \caption{ie-podmanのコマンド}
39b63490ba16 update usage
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 26
diff changeset
57 \begin{tabular}{c|l} \hline
39b63490ba16 update usage
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 26
diff changeset
58 build & Containerfileの指示に従いイメージを作成する \\ \hline
39b63490ba16 update usage
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 26
diff changeset
59 cp & コンテナにファイルを送信する \\ \hline
39b63490ba16 update usage
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 26
diff changeset
60 exec & 起動中のコンテナでプロセスを実行する \\ \hline
39b63490ba16 update usage
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 26
diff changeset
61 images & コンテナイメージの一覧を表示する \\ \hline
39b63490ba16 update usage
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 26
diff changeset
62 info & コンテナの情報を表示する \\ \hline
39b63490ba16 update usage
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 26
diff changeset
63 logs & コンテナのlogを表示する \\ \hline
39b63490ba16 update usage
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 26
diff changeset
64 ps & 起動中のコンテナの一覧を表示する \\ \hline
39b63490ba16 update usage
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 26
diff changeset
65 registry & 学科のレジストリの操作を行う \\ \hline
39b63490ba16 update usage
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 26
diff changeset
66 rm & コンテナを削除する \\ \hline
39b63490ba16 update usage
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 26
diff changeset
67 run & コンテナを作成する \\ \hline
39b63490ba16 update usage
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 26
diff changeset
68 sif & イメージをsifファイルに変換する \\ \hline
39b63490ba16 update usage
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 26
diff changeset
69 start & コンテナを起動する \\ \hline
39b63490ba16 update usage
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 26
diff changeset
70 stop & コンテナを停止する \\ \hline
39b63490ba16 update usage
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 26
diff changeset
71 \end{tabular}
39b63490ba16 update usage
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 26
diff changeset
72 \label{tb:ie-podman}
39b63490ba16 update usage
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 26
diff changeset
73 \end{center}
39b63490ba16 update usage
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 26
diff changeset
74 \end{table}
39b63490ba16 update usage
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 26
diff changeset
75
41
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 39
diff changeset
76 新しいコンテナの作成は,Podmanのrunと同じように実行できる.
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 39
diff changeset
77 しかし,ie-podman独自のオプションを提供する.
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 39
diff changeset
78 run時に--gpuオプションを指定することでコンテナ内にGPUを割り当てる.
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 39
diff changeset
79 また,--ipオプションを指定することで,使用されていないIPアドレスが割り振られる.
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 39
diff changeset
80 コンテナ名は指定することもできるが,ユーザ名で補完されるため,他ユーザと重複することはない.
49
71e1425687f3 update tex
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 48
diff changeset
81 ie-podmanを使用して,新しいコンテナの作成はソースコード\ref{pg:ie-run}のように行う.
71e1425687f3 update tex
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 48
diff changeset
82 \begin{lstlisting}[caption=コンテナの作成, label=pg:ie-run]
27
39b63490ba16 update usage
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 26
diff changeset
83 $ ie-podman run --ip --gpu --name [CONTAINER_NAME] [IMAGE]
48
47a9b8bf069b fix thesis
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 41
diff changeset
84 \end{lstlisting}
27
39b63490ba16 update usage
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 26
diff changeset
85
41
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 39
diff changeset
86 新システムにインストールされているPodmanはrootlessでコンテナイメージの作成は低速である.
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 39
diff changeset
87 これは,開発段階ということが考えられる.
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 39
diff changeset
88 ie-podmanはrootのPodmanを利用しSSD上に作成されるため,Podmanと比較し高速である.
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 39
diff changeset
89 イメージ名はコンテナ名と同じくユーザ名で補完されることで,他ユーザと重複することはない.
49
71e1425687f3 update tex
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 48
diff changeset
90 ie-podmanを使用して,新しいイメージの作成はソースコード\ref{pg:ie-build}のように行う.
71e1425687f3 update tex
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 48
diff changeset
91 \begin{lstlisting}[caption=イメージのビルド, label=pg:ie-build]
27
39b63490ba16 update usage
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 26
diff changeset
92 $ ie-podman build --tag [IMAGE_NAME] [CONTEXT]
48
47a9b8bf069b fix thesis
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 41
diff changeset
93 \end{lstlisting}
27
39b63490ba16 update usage
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 26
diff changeset
94
49
71e1425687f3 update tex
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 48
diff changeset
95 また,作成したコンテナイメージはソースコード\ref{pg:ie-image}の操作で一覧を表示することができる.
41
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 39
diff changeset
96 一覧で表示されるイメージはie-podmanで作成したイメージのみである.
49
71e1425687f3 update tex
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 48
diff changeset
97 \begin{lstlisting}[caption=イメージ一覧の出力, label=pg:ie-image]
27
39b63490ba16 update usage
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 26
diff changeset
98 $ ie-podman images
48
47a9b8bf069b fix thesis
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 41
diff changeset
99 \end{lstlisting}
27
39b63490ba16 update usage
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 26
diff changeset
100
41
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 39
diff changeset
101 SingularityはDockerで作成したイメージをsifファイルに変換し,Singualrityで利用できる.
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 39
diff changeset
102 sifファイルへの変換はdockerデーモンへリクエストを行う必要があるが,Podmanはデーモンレスで動作する.
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 39
diff changeset
103 そのため,Podmanで作成したイメージをSingularityに変換するには一手間掛かる.
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 39
diff changeset
104 SingularityはDefinitionfileを作成し,ビルドすることで,sifファイルを作成できる.
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 39
diff changeset
105 だが,イメージのビルド中にエラーが発生すると,一からビルドを再開する必要がある.
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 39
diff changeset
106 DockerやPodmanはイメージのビルド時にレイヤーごとにキャッシュされるため,Containerfileに追加や編集を行っても前回のキャッシュが使用されることで,高速にビルドが行われる.
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 39
diff changeset
107 そこで,ie-podmanで作成したイメージをsifファイルへ変換する機能を作成した.
49
71e1425687f3 update tex
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 48
diff changeset
108 ie-podmanでイメージを作成し,ソースコード\ref{pg:ie-sif}の操作を行うことでsifファイルへ変換が行える.
71e1425687f3 update tex
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 48
diff changeset
109 \begin{lstlisting}[caption=イメージのsif変換, label=pg:ie-sif]
27
39b63490ba16 update usage
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 26
diff changeset
110 $ ie-podman sif [IMAGE_NAME]
48
47a9b8bf069b fix thesis
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 41
diff changeset
111 \end{lstlisting}
27
39b63490ba16 update usage
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 26
diff changeset
112
41
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 39
diff changeset
113 新システムではコンテナベースでシステムを構築するため,コンテナレジストリを導入した.
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 39
diff changeset
114 レジストリの利用は学内ネットワークから可能であり,pushやpullが可能である.
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 39
diff changeset
115 ie-podmanからだけでなく,Podmanや手元のPCのDockerからも利用できる.
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 39
diff changeset
116 レジストリへの登録には,登録するイメージにtagを付けpushする必要がある.
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 39
diff changeset
117 ie-podmanでは本コースのレジストリを利用しやすくするため,簡単に操作できる機能を作成した.
49
71e1425687f3 update tex
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 48
diff changeset
118 ie-podmanではソースコード\ref{pg:ie-push}の操作で本コースで利用するレジストリへ登録できる.
71e1425687f3 update tex
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 48
diff changeset
119 \begin{lstlisting}[caption=レジストリへの登録, label=pg:ie-push]
27
39b63490ba16 update usage
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 26
diff changeset
120 $ ie-podman registry push [IMAGE_NAME]
48
47a9b8bf069b fix thesis
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 41
diff changeset
121 \end{lstlisting}
27
39b63490ba16 update usage
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 26
diff changeset
122
41
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 39
diff changeset
123 また,レジストリに登録されているイメージ一覧を表示することも可能である.
49
71e1425687f3 update tex
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 48
diff changeset
124 ソースコード\ref{pg:ie-search}の操作でイメージ一覧を表示を行う.
41
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 39
diff changeset
125 イメージ名を指定することで,イメージのtag一覧の表示も可能である.
49
71e1425687f3 update tex
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 48
diff changeset
126 \begin{lstlisting}[caption=レジストリの検索, label=pg:ie-search]
27
39b63490ba16 update usage
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 26
diff changeset
127 $ ie-podman registry search
39b63490ba16 update usage
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 26
diff changeset
128 $ ie-podman registry search [IMAGE_NAME]
48
47a9b8bf069b fix thesis
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 41
diff changeset
129 \end{lstlisting}
27
39b63490ba16 update usage
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 26
diff changeset
130
30
c4118dd96310 update usage
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 29
diff changeset
131 \subsection{GPUを利用した演習}
41
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 39
diff changeset
132 新システムでは,汎用サーバに搭載されるGPUをコンテナから利用できる.
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 39
diff changeset
133 コンテナからGPUの利用は,PodmanとSingularityの両方から可能である.
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 39
diff changeset
134 だが,プログラムの実行にはSlurmにJobとして投下する必要がある.
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 39
diff changeset
135 そのため,イメージを単一ファイルベースとして扱え,ユーザのホームディレクトリがコンテナにマウントされるSingularityを主に利用する.
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 39
diff changeset
136 %プログラムを実行する環境のみをsifファイルとして構築し,実行するプログラム,データをホームディレクトリで管理することが可能である.
49
71e1425687f3 update tex
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 48
diff changeset
137 Singularityのコンテナの実行は,ソースコード\ref{pg:sing-run}の操作で行える.
41
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 39
diff changeset
138 また,実行時に--nvオプションを指定することで,コンテナからGPUを利用することが可能になる.
49
71e1425687f3 update tex
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 48
diff changeset
139 \begin{lstlisting}[caption=Singularityの実行, label=pg:sing-run]
30
c4118dd96310 update usage
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 29
diff changeset
140 $ singularity run --nv [SIF_NAME]
48
47a9b8bf069b fix thesis
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 41
diff changeset
141 \end{lstlisting}
30
c4118dd96310 update usage
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 29
diff changeset
142
41
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 39
diff changeset
143 実行にはrun,exec,shellのサブコマンドがあり,runではsifファイルを作成する際に指定が可能なrunscriptが実行される.
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 39
diff changeset
144 指定されない場合はshellが起動する.また,execではイメージ内にインストールされている任意のコマンドを実行することが可能である.
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 39
diff changeset
145 これらのサブコマンドを利用し,SlurmにJobを投下する際のbatchファイルを作成する.
49
71e1425687f3 update tex
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 48
diff changeset
146 batchファイルはソースコード\ref{pg:batch}の2$\sim$8行目ように,Jobに必要なリソースを定義する.
41
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 39
diff changeset
147 リソースの定義後に,実行したい処理を記述する.
30
c4118dd96310 update usage
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 29
diff changeset
148 \lstinputlisting[language=Bash, numbers=left, breaklines=true, basicstyle=\ttfamily\footnotesize, frame=single, caption=batchファイル, label=pg:batch]{file/batch.bash}
c4118dd96310 update usage
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 29
diff changeset
149
49
71e1425687f3 update tex
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 48
diff changeset
150 batchファイルを作成後,ソースコード\ref{pg:sbatch}の操作でJobを投下することが可能である.
71e1425687f3 update tex
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 48
diff changeset
151 \begin{lstlisting}[caption=Jobの投下, label=pg:sbatch]
30
c4118dd96310 update usage
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 29
diff changeset
152 $ sbatch [BATCH_FILENAME]
48
47a9b8bf069b fix thesis
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 41
diff changeset
153 \end{lstlisting}
30
c4118dd96310 update usage
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 29
diff changeset
154
49
71e1425687f3 update tex
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 48
diff changeset
155 また,Jobの各種情報は,ソースコード\ref{pg:squeue}の操作で表示することが可能である.
71e1425687f3 update tex
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 48
diff changeset
156 \begin{lstlisting}[caption=Job情報の出力, label=pg:squeue]
30
c4118dd96310 update usage
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 29
diff changeset
157 $ squeue
48
47a9b8bf069b fix thesis
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 41
diff changeset
158 \end{lstlisting}
30
c4118dd96310 update usage
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 29
diff changeset
159
49
71e1425687f3 update tex
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 48
diff changeset
160 投下したJobを停止するには,ソースコード\ref{pg:scansel}の操作で行うことができる.
41
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 39
diff changeset
161 SlurmはユーザごとにJobが管理されるため,他ユーザのJobを停止するこはできない.
49
71e1425687f3 update tex
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 48
diff changeset
162 \begin{lstlisting}[caption=Jobの停止, label=pg:scansel]
30
c4118dd96310 update usage
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 29
diff changeset
163 $ scansel [JOB_ID]
48
47a9b8bf069b fix thesis
Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
parents: 41
diff changeset
164 \end{lstlisting}