Mercurial > hg > Papers > 2021 > mk-thesis
changeset 48:47a9b8bf069b
fix thesis
author | Ken Miyahira <e175733@ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 12 Feb 2021 16:21:54 +0900 |
parents | 25d968349699 |
children | 71e1425687f3 |
files | paper/chapter/system_review.tex paper/chapter/system_usage.tex paper/file/batch.bash paper/file/benchmark/bar.py paper/file/benchmark/pdf/container.pdf paper/final_thesis.pdf slide/images/container.png slide/slide.html slide/slide.md |
diffstat | 9 files changed, 310 insertions(+), 139 deletions(-) [+] |
line wrap: on
line diff
--- 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回測定を行い平均を比較する.
--- 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
--- 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
--- 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: ")
--- 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; ;"> <h1><svg data-marp-fitting="svg"><foreignObject><span data-marp-fitting-svg-content> コンテナ技術を用いた教育情報システムの構築</span></foreignObject></svg></h1> <ul> @@ -62,7 +62,7 @@ position: absolute; left: 50px; top: 35px; } -" class="slide" data-marpit-pagination="2" data-marpit-pagination-total="31" style="--paginate:true;--class:slide;--theme:default; +" class="slide" data-marpit-pagination="2" data-marpit-pagination-total="32" style="--paginate:true;--class:slide;--theme:default; ;"> <h1>研究目的</h1> <ul> @@ -98,7 +98,7 @@ position: absolute; left: 50px; top: 35px; } -" class="slide" data-marpit-pagination="3" data-marpit-pagination-total="31" style="--paginate:true;--class:slide;--theme:default; +" class="slide" data-marpit-pagination="3" data-marpit-pagination-total="32" style="--paginate:true;--class:slide;--theme:default; ;"> <h1>これまでの学生向け学習環境</h1> <ul> @@ -146,7 +146,7 @@ position: absolute; left: 50px; top: 35px; } -" class="slide" data-marpit-pagination="4" data-marpit-pagination-total="31" style="--paginate:true;--class:slide;--theme:default; +" class="slide" data-marpit-pagination="4" data-marpit-pagination-total="32" style="--paginate:true;--class:slide;--theme:default; ;"> <h1>これまでの学習環境の問題点</h1> <ul> @@ -180,7 +180,7 @@ position: absolute; left: 50px; top: 35px; } -" class="title" data-marpit-pagination="5" data-marpit-pagination-total="31" style="--paginate:true;--class:title;--theme:default; +" class="title" data-marpit-pagination="5" data-marpit-pagination-total="32" style="--paginate:true;--class:title;--theme:default; ;"> <h1>教育情報システムの構築</h1> </section> @@ -203,7 +203,7 @@ position: absolute; left: 50px; top: 35px; } -" class="slide" data-marpit-pagination="6" data-marpit-pagination-total="31" style="--paginate:true;--class:slide;--theme:default; +" class="slide" data-marpit-pagination="6" data-marpit-pagination-total="32" style="--paginate:true;--class:slide;--theme:default; ;"> <h1>オンプレミス環境</h1> <ul> @@ -260,7 +260,7 @@ position: absolute; left: 50px; top: 35px; } -" class="slide" data-marpit-pagination="7" data-marpit-pagination-total="31" style="--paginate:true;--class:slide;--theme:default; +" class="slide" data-marpit-pagination="7" data-marpit-pagination-total="32" style="--paginate:true;--class:slide;--theme:default; ;"> <h1>VM貸出サービスの移行</h1> <ul> @@ -300,7 +300,7 @@ position: absolute; left: 50px; top: 35px; } -" class="slide" data-marpit-pagination="8" data-marpit-pagination-total="31" style="--paginate:true;--class:slide;--theme:default; +" class="slide" data-marpit-pagination="8" data-marpit-pagination-total="32" style="--paginate:true;--class:slide;--theme:default; ;"> <h1>コンテナ環境の導入</h1> <ul> @@ -343,7 +343,7 @@ position: absolute; left: 50px; top: 35px; } -" class="slide" data-marpit-pagination="9" data-marpit-pagination-total="31" style="--paginate:true;--class:slide;--theme:default; +" class="slide" data-marpit-pagination="9" data-marpit-pagination-total="32" style="--paginate:true;--class:slide;--theme:default; ;"> <h1>コンテナエンジンの補い</h1> <ul> @@ -396,7 +396,7 @@ position: absolute; left: 50px; top: 35px; } -" class="slide" data-marpit-pagination="10" data-marpit-pagination-total="31" style="--paginate:true;--class:slide;--theme:default; +" class="slide" data-marpit-pagination="10" data-marpit-pagination-total="32" style="--paginate:true;--class:slide;--theme:default; ;"> <h1>ie-podmanの作成</h1> <ul> @@ -427,7 +427,7 @@ position: absolute; left: 50px; top: 35px; } -" class="slide" data-marpit-pagination="11" data-marpit-pagination-total="31" style="--paginate:true;--class:slide;--theme:default; +" class="slide" data-marpit-pagination="11" data-marpit-pagination-total="32" style="--paginate:true;--class:slide;--theme:default; ;"> <h1>ie-podmanの機能 1/2</h1> <ul> @@ -491,7 +491,7 @@ position: absolute; left: 50px; top: 35px; } -" class="slide" data-marpit-pagination="12" data-marpit-pagination-total="31" style="--paginate:true;--class:slide;--theme:default; +" class="slide" data-marpit-pagination="12" data-marpit-pagination-total="32" style="--paginate:true;--class:slide;--theme:default; ;"> <h1>ie-podmanの機能 2/2</h1> <ul> @@ -551,7 +551,7 @@ position: absolute; left: 50px; top: 35px; } -" class="slide" data-marpit-pagination="13" data-marpit-pagination-total="31" style="--paginate:true;--class:slide;--theme:default; +" class="slide" data-marpit-pagination="13" data-marpit-pagination-total="32" style="--paginate:true;--class:slide;--theme:default; ;"> <h1>ジョブスケジューラの導入</h1> <ul> @@ -583,7 +583,7 @@ position: absolute; left: 50px; top: 35px; } -" class="slide" data-marpit-pagination="14" data-marpit-pagination-total="31" style="--paginate:true;--class:slide;--theme:default; +" class="slide" data-marpit-pagination="14" data-marpit-pagination-total="32" style="--paginate:true;--class:slide;--theme:default; ;"> <h1>ジョブスケジューラの構築</h1> <p>利用方針 <strong>「計算リソースの利用効率を上げる」</strong></p> @@ -626,7 +626,7 @@ position: absolute; left: 50px; top: 35px; } -" class="slide" data-marpit-pagination="15" data-marpit-pagination-total="31" style="--paginate:true;--class:slide;--theme:default; +" class="slide" data-marpit-pagination="15" data-marpit-pagination-total="32" style="--paginate:true;--class:slide;--theme:default; ;"> <p><img src="images/backfill.png" alt="" /></p> </section> @@ -649,7 +649,7 @@ position: absolute; left: 50px; top: 35px; } -" class="slide" data-marpit-pagination="16" data-marpit-pagination-total="31" style="--paginate:true;--class:slide;--theme:default; +" class="slide" data-marpit-pagination="16" data-marpit-pagination-total="32" style="--paginate:true;--class:slide;--theme:default; ;"> <h1>ファイルシステムの導入</h1> <ul> @@ -686,7 +686,7 @@ position: absolute; left: 50px; top: 35px; } -" class="slide" data-marpit-pagination="17" data-marpit-pagination-total="31" style="--paginate:true;--class:slide;--theme:default; +" class="slide" data-marpit-pagination="17" data-marpit-pagination-total="32" style="--paginate:true;--class:slide;--theme:default; ;"> <h1>教育情報システムの構成</h1> <ul> @@ -724,7 +724,7 @@ position: absolute; left: 50px; top: 35px; } -" class="slide" data-marpit-pagination="18" data-marpit-pagination-total="31" style="--paginate:true;--class:slide;--theme:default; +" class="slide" data-marpit-pagination="18" data-marpit-pagination-total="32" style="--paginate:true;--class:slide;--theme:default; ;" data-marpit-advanced-background="background"><div data-marpit-advanced-background-container="true" data-marpit-advanced-background-direction="horizontal"><figure style="background-image:url("images/system.png");background-size:80%;"></figure></div></section></foreignObject><foreignObject width="1280" height="720"><section id="18" data-paginate="true" data-class="slide" data-theme="default" data-style="section { background-color: #FFFFFF; font-size: 28px; @@ -744,9 +744,9 @@ position: absolute; left: 50px; top: 35px; } -" class="slide" data-marpit-pagination="18" data-marpit-pagination-total="31" style="--paginate:true;--class:slide;--theme:default; +" class="slide" data-marpit-pagination="18" data-marpit-pagination-total="32" style="--paginate:true;--class:slide;--theme:default; ;" data-marpit-advanced-background="content"></section> -</foreignObject><foreignObject width="1280" height="720" data-marpit-advanced-background="pseudo"><section class="slide" style="" data-marpit-advanced-background="pseudo" data-marpit-pagination="18" data-marpit-pagination-total="31"></section></foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="19" data-paginate="true" data-class="title" data-theme="default" data-style="section { +</foreignObject><foreignObject width="1280" height="720" data-marpit-advanced-background="pseudo"><section class="slide" style="" data-marpit-advanced-background="pseudo" data-marpit-pagination="18" data-marpit-pagination-total="32"></section></foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="19" data-paginate="true" data-class="title" data-theme="default" data-style="section { background-color: #FFFFFF; font-size: 28px; color: #4b4b4b; @@ -765,7 +765,7 @@ position: absolute; left: 50px; top: 35px; } -" class="title" data-marpit-pagination="19" data-marpit-pagination-total="31" style="--paginate:true;--class:title;--theme:default; +" class="title" data-marpit-pagination="19" data-marpit-pagination-total="32" style="--paginate:true;--class:title;--theme:default; ;"> <h1>教育情報システムの利用と管理</h1> </section> @@ -788,9 +788,22 @@ position: absolute; left: 50px; top: 35px; } -" class="slide" data-marpit-pagination="20" data-marpit-pagination-total="31" style="--paginate:true;--class:slide;--theme:default; +" class="slide" data-marpit-pagination="20" data-marpit-pagination-total="32" style="--paginate:true;--class:slide;--theme:default; ;"> <h1>VM貸出サービスの利用</h1> +<ul> +<li>VMの作成、スペックの変更で申請が必要なくなった</li> +<li>VMの作成 +<ul> +<li><code>ie-virsh define --template Ubuntu-20 VM_NAME</code></li> +</ul> +</li> +<li>スペックの変更 +<ul> +<li><code>ie-virsh edit VM_NAME</code></li> +</ul> +</li> +</ul> </section> </foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="21" data-paginate="true" data-class="slide" data-theme="default" data-style="section { background-color: #FFFFFF; @@ -811,9 +824,22 @@ position: absolute; left: 50px; top: 35px; } -" class="slide" data-marpit-pagination="21" data-marpit-pagination-total="31" style="--paginate:true;--class:slide;--theme:default; +" class="slide" data-marpit-pagination="21" data-marpit-pagination-total="32" style="--paginate:true;--class:slide;--theme:default; ;"> -<h1>ie-podmanの利用</h1> +<h1>ie-podmanの使用方法</h1> +<ul> +<li>PodmanはDockerと同じCLIを提供している</li> +<li>IPアドレス、GPUをコンテナへ割り当てられる +<ul> +<li><code>ie-podman run --ip --gpu [IMAGE_NAME]</code></li> +</ul> +</li> +<li>作成したイメージをsifファイルへの変換に対応 +<ul> +<li><code>ie-podman sif [IMAGE_NAME]</code></li> +</ul> +</li> +</ul> </section> </foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="22" data-paginate="true" data-class="slide" data-theme="default" data-style="section { background-color: #FFFFFF; @@ -834,11 +860,29 @@ position: absolute; left: 50px; top: 35px; } -" class="slide" data-marpit-pagination="22" data-marpit-pagination-total="31" style="--paginate:true;--class:slide;--theme:default; +" class="slide" data-marpit-pagination="22" data-marpit-pagination-total="32" style="--paginate:true;--class:slide;--theme:default; ;"> <h1>GPUの利用方法</h1> +<ul> +<li>Singularityでは容易にGPUを利用できる +<ul> +<li><code>singularity run --nv [SIF_NAME]</code></li> +</ul> +</li> +<li>ホームディレクトリ、/tmpなどがコンテナにマウントされる +<ul> +<li>プログラムの実行に便利</li> +</ul> +</li> +<li>SlurmによるJob管理 +<ul> +<li>必要なリソースを記述し投下する</li> +<li>CPU数、GPU数</li> +</ul> +</li> +</ul> </section> -</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="23" data-paginate="true" data-class="title" data-theme="default" data-style="section { +</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="23" data-paginate="true" data-class="slide" data-theme="default" data-style="section { background-color: #FFFFFF; font-size: 28px; color: #4b4b4b; @@ -857,11 +901,34 @@ position: absolute; left: 50px; top: 35px; } -" class="title" data-marpit-pagination="23" data-marpit-pagination-total="31" style="--paginate:true;--class:title;--theme:default; +" class="slide" data-marpit-pagination="23" data-marpit-pagination-total="32" style="--paginate:true;--class:slide;--theme:default; ;"> -<h1>教育情報システムの評価</h1> +<h1>batchファイルの例</h1> +<ul> +<li>Jobに必要とするリソース +<ul> +<li>CPU 8コア、GPU 1つ</li> +</ul> +</li> +<li>Jobの実行時間 +<ul> +<li>1分</li> +</ul> +</li> +</ul> +<pre><code class="language-bash"><svg data-marp-fitting="svg" data-marp-fitting-code><foreignObject><span data-marp-fitting-svg-content><span data-marp-fitting-svg-content-wrap><span class="hljs-meta">#!/bin/bash</span> +<span class="hljs-comment">#SBATCH --job-name sample</span> +<span class="hljs-comment">#SBATCH --output logs/%x-%j.log</span> +<span class="hljs-comment">#SBATCH --error logs/%x-%j.err</span> +<span class="hljs-comment">#SBATCH --nodes 1</span> +<span class="hljs-comment">#SBATCH --cpus-per-task 8</span> +<span class="hljs-comment">#SBATCH --gpus tesla:1</span> +<span class="hljs-comment">#SBATCH --time 01:00</span> + +singularity <span class="hljs-built_in">exec</span> --nv [SIF_NAME] [COMMANDS] +</span></span></foreignObject></svg></code></pre> </section> -</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="24" data-paginate="true" data-class="slide" data-theme="default" data-style="section { +</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="24" data-paginate="true" data-class="title" data-theme="default" data-style="section { background-color: #FFFFFF; font-size: 28px; color: #4b4b4b; @@ -880,28 +947,46 @@ position: absolute; left: 50px; top: 35px; } -" class="slide" data-marpit-pagination="24" data-marpit-pagination-total="31" style="--paginate:true;--class:slide;--theme:default; +" class="title" data-marpit-pagination="24" data-marpit-pagination-total="32" style="--paginate:true;--class:title;--theme:default; +;"> +<h1>教育情報システムの評価</h1> +</section> +</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="25" data-paginate="true" data-class="slide" data-theme="default" data-style="section { + background-color: #FFFFFF; + font-size: 28px; + color: #4b4b4b; + font-family: "Arial", "Hiragino Maru Gothic ProN"; +} + +section.title { + font-size: 40px; + padding: 40px; +} +section.title h1 { + text-align: center; +} + +section.slide h1 { + position: absolute; + left: 50px; top: 35px; +} +" class="slide" data-marpit-pagination="25" data-marpit-pagination-total="32" style="--paginate:true;--class:slide;--theme:default; ;"> <h1>ファイルシステムの評価 1/2</h1> <ul> -<li>GFS2 +<li> +<p>実験概要</p> <ul> -<li>旧システムのVMイメージの保存場所</li> +<li><code>dd</code>コマンドを使用し書き込み速度を比較する</li> </ul> </li> -<li>NFS -<ul> -<li>旧システムのホームディレクトリ</li> -</ul> -</li> -<li>CephFS +<li> +<p>書き込み速度の比較</p> <ul> -<li>ホームディレクトリ</li> -</ul> -</li> -<li>CephRBD -<ul> -<li>VMイメージの保存、バックアップ場所</li> +<li>GFS2</li> +<li>NFS</li> +<li>CephFS</li> +<li>CephRBD</li> </ul> </li> </ul> @@ -925,8 +1010,31 @@ position: absolute; left: 50px; top: 35px; } -" class="slide" data-marpit-pagination="25" data-marpit-pagination-total="31" style="--paginate:true;--class:slide;--theme:default; -;" data-marpit-advanced-background="background"><div data-marpit-advanced-background-container="true" data-marpit-advanced-background-direction="horizontal"><figure style="background-image:url("images/fswrite.png");background-size:70%;"></figure></div></section></foreignObject><foreignObject width="1280" height="720"><section id="25" data-paginate="true" data-class="slide" data-theme="default" data-style="section { +" class="slide" data-marpit-pagination="26" data-marpit-pagination-total="32" style="--paginate:true;--class:slide;--theme:default; +;" data-marpit-advanced-background="background"><div data-marpit-advanced-background-container="true" data-marpit-advanced-background-direction="horizontal"><figure style="background-image:url("images/fswrite.png");background-size:70%;"></figure></div></section></foreignObject><foreignObject width="1280" height="720"><section id="26" data-paginate="true" data-class="slide" data-theme="default" data-style="section { + background-color: #FFFFFF; + font-size: 28px; + color: #4b4b4b; + font-family: "Arial", "Hiragino Maru Gothic ProN"; +} + +section.title { + font-size: 40px; + padding: 40px; +} +section.title h1 { + text-align: center; +} + +section.slide h1 { + position: absolute; + left: 50px; top: 35px; +} +" class="slide" data-marpit-pagination="26" data-marpit-pagination-total="32" style="--paginate:true;--class:slide;--theme:default; +;" data-marpit-advanced-background="content"> +<h1>ファイルシステムの評価 2/2</h1> +</section> +</foreignObject><foreignObject width="1280" height="720" data-marpit-advanced-background="pseudo"><section class="slide" style="" data-marpit-advanced-background="pseudo" data-marpit-pagination="26" data-marpit-pagination-total="32"></section></foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="27" data-paginate="true" data-class="slide" data-theme="default" data-style="section { background-color: #FFFFFF; font-size: 28px; color: #4b4b4b; @@ -945,11 +1053,33 @@ position: absolute; left: 50px; top: 35px; } -" class="slide" data-marpit-pagination="25" data-marpit-pagination-total="31" style="--paginate:true;--class:slide;--theme:default; -;" data-marpit-advanced-background="content"> -<h1>ファイルシステムの評価 2/2</h1> +" class="slide" data-marpit-pagination="27" data-marpit-pagination-total="32" style="--paginate:true;--class:slide;--theme:default; +;"> +<h1>ie-podmanの評価 1/3</h1> +<ul> +<li> +<p>実験環境</p> +<ul> +<li>新システムの汎用サーバで実施</li> +</ul> +</li> +<li> +<p>実験概要</p> +<ul> +<li>イメージのBuild速度を比較する</li> +</ul> +</li> +<li> +<p>Build速度の比較</p> +<ul> +<li>Docker</li> +<li>Podman (rootless)</li> +<li>ie-podman</li> +</ul> +</li> +</ul> </section> -</foreignObject><foreignObject width="1280" height="720" data-marpit-advanced-background="pseudo"><section class="slide" style="" data-marpit-advanced-background="pseudo" data-marpit-pagination="25" data-marpit-pagination-total="31"></section></foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="26" data-paginate="true" data-class="slide" data-theme="default" data-style="section { +</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="28" data-paginate="true" data-class="slide" data-theme="default" data-style="section { background-color: #FFFFFF; font-size: 28px; color: #4b4b4b; @@ -968,39 +1098,7 @@ position: absolute; left: 50px; top: 35px; } -" class="slide" data-marpit-pagination="26" data-marpit-pagination-total="31" style="--paginate:true;--class:slide;--theme:default; -;"> -<h1>ie-podmanの評価 1/3</h1> -<ul> -<li>イメージ作成速度の比較 -<ul> -<li>Docker</li> -<li>Podman (rootless)</li> -<li>ie-podman</li> -</ul> -</li> -</ul> -</section> -</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="27" data-paginate="true" data-class="slide" data-theme="default" data-style="section { - background-color: #FFFFFF; - font-size: 28px; - color: #4b4b4b; - font-family: "Arial", "Hiragino Maru Gothic ProN"; -} - -section.title { - font-size: 40px; - padding: 40px; -} -section.title h1 { - text-align: center; -} - -section.slide h1 { - position: absolute; - left: 50px; top: 35px; -} -" class="slide" data-marpit-pagination="27" data-marpit-pagination-total="31" style="--paginate:true;--class:slide;--theme:default; +" class="slide" data-marpit-pagination="28" data-marpit-pagination-total="32" style="--paginate:true;--class:slide;--theme:default; ;"> <h1>ie-podmanの評価 2/3</h1> <pre><code class="language-Dockerfile"><svg data-marp-fitting="svg" data-marp-fitting-code><foreignObject><span data-marp-fitting-svg-content><span data-marp-fitting-svg-content-wrap><span class="hljs-keyword">FROM</span> ubuntu:<span class="hljs-number">18.04</span> @@ -1041,8 +1139,8 @@ position: absolute; left: 50px; top: 35px; } -" class="slide" data-marpit-pagination="28" data-marpit-pagination-total="31" style="--paginate:true;--class:slide;--theme:default; -;" data-marpit-advanced-background="background"><div data-marpit-advanced-background-container="true" data-marpit-advanced-background-direction="horizontal"><figure style="background-image:url("images/container.png");background-size:70%;"></figure></div></section></foreignObject><foreignObject width="1280" height="720"><section id="28" data-paginate="true" data-class="slide" data-theme="default" data-style="section { +" class="slide" data-marpit-pagination="29" data-marpit-pagination-total="32" style="--paginate:true;--class:slide;--theme:default; +;" data-marpit-advanced-background="background"><div data-marpit-advanced-background-container="true" data-marpit-advanced-background-direction="horizontal"><figure style="background-image:url("images/container.png");background-size:70%;"></figure></div></section></foreignObject><foreignObject width="1280" height="720"><section id="29" data-paginate="true" data-class="slide" data-theme="default" data-style="section { background-color: #FFFFFF; font-size: 28px; color: #4b4b4b; @@ -1061,11 +1159,11 @@ position: absolute; left: 50px; top: 35px; } -" class="slide" data-marpit-pagination="28" data-marpit-pagination-total="31" style="--paginate:true;--class:slide;--theme:default; +" class="slide" data-marpit-pagination="29" data-marpit-pagination-total="32" style="--paginate:true;--class:slide;--theme:default; ;" data-marpit-advanced-background="content"> <h1>ie-podmanの評価 3/3</h1> </section> -</foreignObject><foreignObject width="1280" height="720" data-marpit-advanced-background="pseudo"><section class="slide" style="" data-marpit-advanced-background="pseudo" data-marpit-pagination="28" data-marpit-pagination-total="31"></section></foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="29" data-paginate="true" data-class="slide" data-theme="default" data-style="section { +</foreignObject><foreignObject width="1280" height="720" data-marpit-advanced-background="pseudo"><section class="slide" style="" data-marpit-advanced-background="pseudo" data-marpit-pagination="29" data-marpit-pagination-total="32"></section></foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="30" data-paginate="true" data-class="slide" data-theme="default" data-style="section { background-color: #FFFFFF; font-size: 28px; color: #4b4b4b; @@ -1084,7 +1182,7 @@ position: absolute; left: 50px; top: 35px; } -" class="slide" data-marpit-pagination="29" data-marpit-pagination-total="31" style="--paginate:true;--class:slide;--theme:default; +" class="slide" data-marpit-pagination="30" data-marpit-pagination-total="32" style="--paginate:true;--class:slide;--theme:default; ;"> <h1>学習環境の評価</h1> <ul> @@ -1102,7 +1200,7 @@ </li> </ul> </section> -</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="30" data-paginate="true" data-class="title" data-theme="default" data-style="section { +</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="31" data-paginate="true" data-class="title" data-theme="default" data-style="section { background-color: #FFFFFF; font-size: 28px; color: #4b4b4b; @@ -1121,11 +1219,11 @@ position: absolute; left: 50px; top: 35px; } -" class="title" data-marpit-pagination="30" data-marpit-pagination-total="31" style="--paginate:true;--class:title;--theme:default; +" class="title" data-marpit-pagination="31" data-marpit-pagination-total="32" style="--paginate:true;--class:title;--theme:default; ;"> <h1>まとめ</h1> </section> -</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="31" data-paginate="true" data-class="slide" data-theme="default" data-style="section { +</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="32" data-paginate="true" data-class="slide" data-theme="default" data-style="section { background-color: #FFFFFF; font-size: 28px; color: #4b4b4b; @@ -1144,13 +1242,28 @@ position: absolute; left: 50px; top: 35px; } -" class="slide" data-marpit-pagination="31" data-marpit-pagination-total="31" style="--paginate:true;--class:slide;--theme:default; +" class="slide" data-marpit-pagination="32" data-marpit-pagination-total="32" style="--paginate:true;--class:slide;--theme:default; ;"> <h1>今後の課題</h1> <ul> -<li>教育情報システムの周知</li> -<li>ie-podmanのネットワーク構成の見直し</li> -<li>バックアップの運用</li> +<li>教育情報システムの周知 +<ul> +<li>Jobの投下やリソースの要求方法</li> +<li>ie-virsh、ie-podmanの使用方法</li> +<li>定期的な周知が必要</li> +</ul> +</li> +<li>ie-podmanのネットワーク構成の見直し +<ul> +<li>プレフィックス長が24のため、最大254個のIPアドレス</li> +<li>コンテナを停止で使用されない場合は削除する必要がある</li> +</ul> +</li> +<li>バックアップの運用 +<ul> +<li>Cephと専用サーバ以外のバックアップ先を用意する必要がある</li> +</ul> +</li> </ul> </section> <script>!function(){"use strict";const t="marpitSVGPolyfill:setZoomFactor,",e=Symbol();let r,o;function n(n){const i="object"==typeof n&&n.target||document,a="object"==typeof n?n.zoom:n;window[e]||(Object.defineProperty(window,e,{configurable:!0,value:!0}),window.addEventListener("message",(({data:e,origin:r})=>{if(r===window.origin)try{if(e&&"string"==typeof e&&e.startsWith(t)){const[,t]=e.split(","),r=Number.parseFloat(t);Number.isNaN(r)||(o=r)}}catch(t){console.error(t)}})));let l=!1;Array.from(i.querySelectorAll("svg[data-marpit-svg]"),(t=>{var e,n,i,s;t.style.transform||(t.style.transform="translateZ(0)");const c=a||o||t.currentScale||1;r!==c&&(r=c,l=c);const d=t.getBoundingClientRect(),{length:u}=t.children;for(let r=0;r<u;r+=1){const o=t.children[r],a=o.getScreenCTM();if(a){const t=null!==(n=null===(e=o.x)||void 0===e?void 0:e.baseVal.value)&&void 0!==n?n:0,r=null!==(s=null===(i=o.y)||void 0===i?void 0:i.baseVal.value)&&void 0!==s?s:0,l=o.firstChild,{style:u}=l;u.transformOrigin||(u.transformOrigin=`${-t}px ${-r}px`),u.transform=`scale(${c}) matrix(${a.a}, ${a.b}, ${a.c}, ${a.d}, ${a.e-d.left}, ${a.f-d.top}) translateZ(0.0001px)`}}})),!1!==l&&Array.from(i.querySelectorAll("iframe"),(({contentWindow:e})=>{null==e||e.postMessage(`${t}${l}`,"null"===window.origin?"*":window.origin)}))}r=1,o=void 0;const i=(t,e,r)=>{if(t.getAttribute(e)!==r)return t.setAttribute(e,r),!0};function a({once:t=!1,target:e=document}={}){const r="Apple Computer, Inc."===navigator.vendor?[n]:[];let o=!t;const a=()=>{for(const t of r)t({target:e});!function(t=document){Array.from(t.querySelectorAll('svg[data-marp-fitting="svg"]'),(t=>{var e;const r=t.firstChild,o=r.firstChild,{scrollWidth:n,scrollHeight:a}=o;let l,s=1;if(t.hasAttribute("data-marp-fitting-code")&&(l=null===(e=t.parentElement)||void 0===e?void 0:e.parentElement),t.hasAttribute("data-marp-fitting-math")&&(l=t.parentElement),l){const t=getComputedStyle(l),e=Math.ceil(l.clientWidth-parseFloat(t.paddingLeft||"0")-parseFloat(t.paddingRight||"0"));e&&(s=e)}const c=Math.max(n,s),d=Math.max(a,1),u=`0 0 ${c} ${d}`;i(r,"width",`${c}`),i(r,"height",`${d}`),i(t,"preserveAspectRatio",getComputedStyle(t).getPropertyValue("--preserve-aspect-ratio")||"xMinYMin meet"),i(t,"viewBox",u)&&t.classList.toggle("__reflow__")}))}(e),o&&window.requestAnimationFrame(a)};return a(),()=>{o=!1}}const l=Symbol(),s=document.currentScript;((t=document)=>{if("undefined"==typeof window)throw new Error("Marp Core's browser script is valid only in browser context.");if(t[l])return t[l];const e=a({target:t}),r=()=>{e(),delete t[l]};Object.defineProperty(t,l,{configurable:!0,value:r})})(s?s.getRootNode():document)}();
--- a/slide/slide.md Thu Feb 11 23:48:04 2021 +0900 +++ b/slide/slide.md Fri Feb 12 16:21:54 2021 +0900 @@ -207,6 +207,11 @@ - POSIX互換のファイルシステム --- +# バックアップ戦略 + +- + +--- # 教育情報システムの構成 - 汎用サーバ全てにKVM、Podman、Singularityをインストール @@ -229,12 +234,53 @@ <!-- class: slide --> # VM貸出サービスの利用 +- VMの作成、スペックの変更で申請が必要なくなった +- VMの作成 + - `ie-virsh define --template Ubuntu-20 VM_NAME` +- スペックの変更 + - `ie-virsh edit VM_NAME` + --- -# ie-podmanの利用 +# ie-podmanの使用方法 + +- PodmanはDockerと同じCLIを提供している +- IPアドレス、GPUをコンテナへ割り当てられる + - `ie-podman run --ip --gpu [IMAGE_NAME]` +- 作成したイメージをsifファイルへの変換に対応 + - `ie-podman sif [IMAGE_NAME]` --- # GPUの利用方法 +- Singularityでは容易にGPUを利用できる + - `singularity run --nv [SIF_NAME]` +- ホームディレクトリ、/tmpなどがコンテナにマウントされる + - プログラムの実行に便利 +- SlurmによるJob管理 + - 必要なリソースを記述し投下する + - CPU数、GPU数 + +--- +# batchファイルの例 + +- Jobに必要とするリソース + - CPU 8コア、GPU 1つ +- Jobの実行時間 + - 1分 + +```bash +#!/bin/bash +#SBATCH --job-name sample +#SBATCH --output logs/%x-%j.log +#SBATCH --error logs/%x-%j.err +#SBATCH --nodes 1 +#SBATCH --cpus-per-task 8 +#SBATCH --gpus tesla:1 +#SBATCH --time 01:00 + +singularity exec --nv [SIF_NAME] [COMMANDS] +``` + --- <!-- class: title --> # 教育情報システムの評価 @@ -243,14 +289,14 @@ <!-- class: slide --> # ファイルシステムの評価 1/2 -- GFS2 - - 旧システムのVMイメージの保存場所 -- NFS - - 旧システムのホームディレクトリ -- CephFS - - ホームディレクトリ -- CephRBD - - VMイメージの保存、バックアップ場所 +- 実験概要 + - `dd`コマンドを使用し書き込み速度を比較する + +- 書き込み速度の比較 + - GFS2 + - NFS + - CephFS + - CephRBD --- # ファイルシステムの評価 2/2 @@ -260,7 +306,13 @@ --- # ie-podmanの評価 1/3 -- イメージ作成速度の比較 +- 実験環境 + - 新システムの汎用サーバで実施 + +- 実験概要 + - イメージのBuild速度を比較する + +- Build速度の比較 - Docker - Podman (rootless) - ie-podman @@ -311,5 +363,11 @@ # 今後の課題 - 教育情報システムの周知 + - Jobの投下やリソースの要求方法 + - ie-virsh、ie-podmanの使用方法 + - 定期的な周知が必要 - ie-podmanのネットワーク構成の見直し -- バックアップの運用 \ No newline at end of file + - プレフィックス長が24のため、最大254個のIPアドレス + - コンテナを停止で使用されない場合は削除する必要がある +- バックアップの運用 + - Cephと専用サーバ以外のバックアップ先を用意する必要がある \ No newline at end of file