# HG changeset patch # User Ken Miyahira # Date 1613114514 -32400 # Node ID 47a9b8bf069bd82d3567d7fe95951fe3fac06ad5 # Parent 25d968349699c3229d67f4b19d22d2bae1e31cd6 fix thesis diff -r 25d968349699 -r 47a9b8bf069b paper/chapter/system_review.tex --- a/paper/chapter/system_review.tex Thu Feb 11 23:48:04 2021 +0900 +++ b/paper/chapter/system_review.tex Fri Feb 12 16:21:54 2021 +0900 @@ -17,9 +17,9 @@ データの変換方法にfdatasyncを指定することで,書き込み終了の直前にsyncを1回要求するため,実際の動作に近い動作で測定が可能である. \par 書き込みには下記のコマンドを用いる. -\begin{verbatim} +\begin{lstlisting}[caption=ベンチマークコマンド] $ dd if=/dev/zero of=benchmark bs=64K count=2K conv=fdatasync -\end{verbatim} +\end{lstlisting} また,ファイルサイズは128MB,256MB,512MB,1GB,2GB,4GBの書き込みを行う. 5回測定を行い平均を比較する. diff -r 25d968349699 -r 47a9b8bf069b paper/chapter/system_usage.tex --- a/paper/chapter/system_usage.tex Thu Feb 11 23:48:04 2021 +0900 +++ b/paper/chapter/system_usage.tex Fri Feb 12 16:21:54 2021 +0900 @@ -15,28 +15,28 @@ そこで,新たにVMのテンプレートのイメージを用意し,テンプレートから差分でVMを作成できるようにした. VMのテンプレートから新たにVMを作成するには下記のように行う. また,--gdbオプションを付与することで,GDBによるLinux KernelのDebugを行える. -\begin{verbatim} +\begin{lstlisting}[caption=VMの作成] $ ie-virsh define --template Ubuntu-20 [VM_NAME] -\end{verbatim} +\end{lstlisting} VMの作成で利用できるテンプレートは下記の操作で確認することができる. -\begin{verbatim} +\begin{lstlisting}[caption=テンプレート一覧の出力] $ ie-virsh templates -\end{verbatim} +\end{lstlisting} また,作成したVMのデフォルトのリソースは旧システムから変更はなく,CPU1コア,メモリ1GB,ディスク容量10GBとなっている. これまでは,リソースの変更は申請が必要であったが,下記の操作でVMのリソースを変更が行える. しかし,ディスク容量の変更には申請が必要となっている. -\begin{verbatim} +\begin{lstlisting}[caption=リソースの変更] $ ie-virsh edit [VM_NAME] -\end{verbatim} +\end{lstlisting} 作成したVMにIPアドレスを割り当てるには,IPアドレス管理サービスにMACアドレスを登録する必要がある. VMのMACアドレスはie-virshが作成するXMLファイルに定義されており,dumpxmlでXMLを出力し確認できる. しかし,XMLを出力すると必要とする情報以外も多く表示されるため,下記の操作でVMのインターフェース情報を出力できるようになっている. -\begin{verbatim} +\begin{lstlisting}[caption=インターフェース一覧の出力] $ ie-virsh domiflist [VM_NAME] -\end{verbatim} +\end{lstlisting} \section{コンテナ環境の利用} 新システムではコンテナエンジンであるPodmanとSingularityを導入した. @@ -79,9 +79,9 @@ また,--ipオプションを指定することで,使用されていないIPアドレスが割り振られる. コンテナ名は指定することもできるが,ユーザ名で補完されるため,他ユーザと重複することはない. ie-podmanを使用して,新しいコンテナの作成は下記のように行う. -\begin{verbatim} +\begin{lstlisting}[caption=コンテナの作成] $ ie-podman run --ip --gpu --name [CONTAINER_NAME] [IMAGE] -\end{verbatim} +\end{lstlisting} 新システムにインストールされているPodmanはrootlessでコンテナイメージの作成は低速である. これは,開発段階ということが考えられる. @@ -89,15 +89,15 @@ ie-podmanはrootのPodmanを利用しSSD上に作成されるため,Podmanと比較し高速である. イメージ名はコンテナ名と同じくユーザ名で補完されることで,他ユーザと重複することはない. ie-podmanを使用して,新しいイメージの作成は下記のように行う. -\begin{verbatim} +\begin{lstlisting}[caption=イメージのビルド] $ ie-podman build --tag [IMAGE_NAME] [CONTEXT] -\end{verbatim} +\end{lstlisting} また,作成したコンテナイメージは下記の操作で一覧を表示することができる. 一覧で表示されるイメージはie-podmanで作成したイメージのみである. -\begin{verbatim} +\begin{lstlisting}[caption=イメージ一覧の出力] $ ie-podman images -\end{verbatim} +\end{lstlisting} SingularityはDockerで作成したイメージをsifファイルに変換し,Singualrityで利用できる. sifファイルへの変換はdockerデーモンへリクエストを行う必要があるが,Podmanはデーモンレスで動作する. @@ -107,9 +107,9 @@ DockerやPodmanはイメージのビルド時にレイヤーごとにキャッシュされるため,Containerfileに追加や編集を行っても前回のキャッシュが使用されることで,高速にビルドが行われる. そこで,ie-podmanで作成したイメージをsifファイルへ変換する機能を作成した. ie-podmanでイメージを作成し,下記の操作を行うことでsifファイルへ変換が行える. -\begin{verbatim} +\begin{lstlisting}[caption=イメージのsif変換] $ ie-podman sif [IMAGE_NAME] -\end{verbatim} +\end{lstlisting} 新システムではコンテナベースでシステムを構築するため,コンテナレジストリを導入した. レジストリの利用は学内ネットワークから可能であり,pushやpullが可能である. @@ -117,17 +117,17 @@ レジストリへの登録には,登録するイメージにtagを付けpushする必要がある. ie-podmanでは本コースのレジストリを利用しやすくするため,簡単に操作できる機能を作成した. ie-podmanでは下記の操作で本コースで利用するレジストリへ登録できる. -\begin{verbatim} +\begin{lstlisting}[caption=レジストリへの登録] $ ie-podman registry push [IMAGE_NAME] -\end{verbatim} +\end{lstlisting} また,レジストリに登録されているイメージ一覧を表示することも可能である. 下記の操作でイメージ一覧を表示を行う. イメージ名を指定することで,イメージのtag一覧の表示も可能である. -\begin{verbatim} +\begin{lstlisting}[caption=レジストリの検索] $ ie-podman registry search $ ie-podman registry search [IMAGE_NAME] -\end{verbatim} +\end{lstlisting} \subsection{GPUを利用した演習} 新システムでは,汎用サーバに搭載されるGPUをコンテナから利用できる. @@ -137,9 +137,9 @@ %プログラムを実行する環境のみをsifファイルとして構築し,実行するプログラム,データをホームディレクトリで管理することが可能である. Singularityのコンテナの実行は,下記の操作で行える. また,実行時に--nvオプションを指定することで,コンテナからGPUを利用することが可能になる. -\begin{verbatim} +\begin{lstlisting}[caption=Singularityの実行] $ singularity run --nv [SIF_NAME] -\end{verbatim} +\end{lstlisting} 実行にはrun,exec,shellのサブコマンドがあり,runではsifファイルを作成する際に指定が可能なrunscriptが実行される. 指定されない場合はshellが起動する.また,execではイメージ内にインストールされている任意のコマンドを実行することが可能である. @@ -149,17 +149,17 @@ \lstinputlisting[language=Bash, numbers=left, breaklines=true, basicstyle=\ttfamily\footnotesize, frame=single, caption=batchファイル, label=pg:batch]{file/batch.bash} batchファイルを作成後,下記の操作でJobを投下することが可能である. -\begin{verbatim} +\begin{lstlisting}[caption=Jobの投下] $ sbatch [BATCH_FILENAME] -\end{verbatim} +\end{lstlisting} また,Jobの各種情報は,下記の操作で表示することが可能である. -\begin{verbatim} +\begin{lstlisting}[caption=Job情報の出力] $ squeue -\end{verbatim} +\end{lstlisting} 投下したJobを停止するには,下記の操作で行うことができる. SlurmはユーザごとにJobが管理されるため,他ユーザのJobを停止するこはできない. -\begin{verbatim} +\begin{lstlisting}[caption=Jobの停止] $ scansel [JOB_ID] -\end{verbatim} \ No newline at end of file +\end{lstlisting} \ No newline at end of file diff -r 25d968349699 -r 47a9b8bf069b paper/file/batch.bash --- a/paper/file/batch.bash Thu Feb 11 23:48:04 2021 +0900 +++ b/paper/file/batch.bash Fri Feb 12 16:21:54 2021 +0900 @@ -1,4 +1,4 @@ -#/bin/bash +#!/bin/bash #SBATCH --job-name sample #SBATCH --output logs/%x-%j.log #SBATCH --error logs/%x-%j.err diff -r 25d968349699 -r 47a9b8bf069b paper/file/benchmark/bar.py --- a/paper/file/benchmark/bar.py Thu Feb 11 23:48:04 2021 +0900 +++ b/paper/file/benchmark/bar.py Fri Feb 12 16:21:54 2021 +0900 @@ -5,8 +5,8 @@ x, y = [], [] print("データ読み込み") x = [1, 2, 3] - label = ["Docker", "Podman", "ie-podman"] - y = [758.16, 4999.47, 809.34] + label = ["Docker", "ie-podman", "Podman"] + y = [758.16, 809.34, 4999.47] name = input("GraphName: ") xlabel = input("xlabel: ") diff -r 25d968349699 -r 47a9b8bf069b paper/file/benchmark/pdf/container.pdf Binary file paper/file/benchmark/pdf/container.pdf has changed diff -r 25d968349699 -r 47a9b8bf069b paper/final_thesis.pdf Binary file paper/final_thesis.pdf has changed diff -r 25d968349699 -r 47a9b8bf069b slide/images/container.png Binary file slide/images/container.png has changed diff -r 25d968349699 -r 47a9b8bf069b slide/slide.html --- a/slide/slide.html Thu Feb 11 23:48:04 2021 +0900 +++ b/slide/slide.html Fri Feb 12 16:21:54 2021 +0900 @@ -27,7 +27,7 @@ position: absolute; left: 50px; top: 35px; } -" class="title" data-marpit-pagination="1" data-marpit-pagination-total="31" style="--paginate:true;--class:title;--theme:default; +" class="title" data-marpit-pagination="1" data-marpit-pagination-total="32" style="--paginate:true;--class:title;--theme:default; ;">

コンテナ技術を用いた教育情報システムの構築