Mercurial > hg > Papers > 2021 > mk-thesis
changeset 51:5334697f98bf
update tex
author | Ken Miyahira <e175733@ie.u-ryukyu.ac.jp> |
---|---|
date | Sat, 13 Feb 2021 15:01:42 +0900 |
parents | cce74203f5d3 |
children | d0b469710cb2 |
files | paper/chapter/conclusion.tex paper/chapter/new_system.tex paper/chapter/old_system.tex paper/chapter/system_review.tex paper/final_thesis.pdf |
diffstat | 5 files changed, 63 insertions(+), 71 deletions(-) [+] |
line wrap: on
line diff
--- a/paper/chapter/conclusion.tex Sat Feb 13 01:07:24 2021 +0900 +++ b/paper/chapter/conclusion.tex Sat Feb 13 15:01:42 2021 +0900 @@ -12,10 +12,11 @@ 第2章では,本研究で利用した技術概要について述べた. \par 第3章では,2015年から稼働していた旧システムのオンプレミス環境,演習や研究等で利用できるVM貸出サービスについて述べ,これらの問題点を示した. -まず,VM貸出サービスにはAkatsukiとie-virshがあり,Akatsukiはテンプレートから新しくVMを作成し利用できるサービスである. +まず,旧システムのオンプレミス環境について述べた. +旧システムのVM貸出サービスにはie-virshとAkatsukiと呼ばれるサービスがある. ie-virshは手元のPCで作成したVMイメージを学科サーバへデプロイを行うサービスである. AkatsukiはVM貸出だけでなく,有線LAN接続サービスの機能を持っているが,VM貸出サービスはあまり周知されていなかった. -また,VM貸出サービスは本コースの学生や教師が利用可能であるが,VMの作成やスペックの変更には申請が必要で余り利用されていなかった. +VM貸出サービスは本コースの学生や教師が利用可能であるが,VMの作成やスペックの変更には申請が必要で余り利用されていなかった. そのため,旧システムの汎用サーバのリソースは余っていた. \par 第4章では,新システムで構築したオンプレミス環境,仮想環境,新たに導入したコンテナ環境やジョブスケジューラについて述べた.
--- a/paper/chapter/new_system.tex Sat Feb 13 01:07:24 2021 +0900 +++ b/paper/chapter/new_system.tex Sat Feb 13 15:01:42 2021 +0900 @@ -5,7 +5,7 @@ \section{新システムのオンプレミス環境} 新システムでは,表\ref{tb:newserver}の汎用サーバを4台採用した. 旧システムのストレージはHDDであったが,ストレージの高速化を図りSSDを搭載した. -また,演習や研究等で利用できるようGPUも搭載した. +また,旧システムの課題でもあったGPUの要求に伴い,汎用サーバに演習や研究等で利用できるようGPUも搭載した. \begin{table}[H] \begin{center} @@ -39,6 +39,10 @@ \end{center} \end{table} +新システムは,基幹サービスを主にコンテナで提供する. +これまでのシステムはVMベースでサービスを提供していたが,コンテナに移行することでリソースを効率よく利用し,管理を容易にする狙いがある. +また,基幹サービスのデータをSSD上に保存することで,サービスの高速化を図る. + \subsection{VM貸出サービスの移行} 旧システムではVMベースでシステムを構築していたが,新システムではコンテナベースでの構築行った. システムはコンテナベースとなるが,VM貸出サービスであるAkatsuki,ie-virshは利用を継続する. @@ -65,14 +69,13 @@ 管理するシステム管理チームの学生の教育には適しているが,演習や研究用で利用するには適さない場合がある. そのため,HPC環境に設計されているSingularityも同時に利用する. \par -%ie-podman の事書きたいね Singularityはコンテナ内で実行ユーザの権限を引き継ぐため,利用者が作成したプログラムの実行には向いている. だが,Webなど特権が必要なサービスを実行することはできない. 特権が必要なWebなどをを実行する場合はPodmanを利用する. Podmanはネットワーク設定を行うことで,コンテナ個別にIPアドレスを割り当てることができるが,ルートレスでは割り当てができない. IPアドレスの割り当てにはネットワークデバイスの関連付けが必要だが,root権限が必要なためである. rootlessでWebなどのサービスを実行しアクセスするにはポートフォワードを設定する必要がある. -だが,利用者が使用するポートを汎用サーバで開放することはセキュリティ的にできない. +だが,利用者が使用するポートを汎用サーバで開放することはセキュリティ的に対応できない. そこで,Podmanをwrapperしたie-podmanを作成した. ie-podmanはコンテナに個別のIPアドレスを割り当てる際に利用する. @@ -81,7 +84,7 @@ 新システムはコンテナベースに変更したことにより,利用者は汎用サーバのリソースを利用できる. そのため,複数の利用者が多くのリソースを要求するプログラムを実行した場合,リソース不足やリソースの競合が考えられる. そこで,汎用サーバのリソースを効率よく利用できるようにするため,ジョブスケジューラであるSlurmにより管理を行う. -Slurmは最悪待ち時間を減らすのではなく,計算リソースの利用効率を上げることを重視する. +Slurmの利用方針として,最悪待ち時間を減らすのではなく,計算リソースの利用効率を上げることを重視する. そのため,Jobの優先順位は以下のように設定を行う. \begin{itemize} \item 要求するリソースの少ないJobの優先度を高くする
--- a/paper/chapter/old_system.tex Sat Feb 13 01:07:24 2021 +0900 +++ b/paper/chapter/old_system.tex Sat Feb 13 15:01:42 2021 +0900 @@ -57,63 +57,6 @@ \end{center} \end{table} -%\subsection{Akatsuki} -%Webコントロールパネルから有線LAN接続サービスやVM貸出サービスを管理している. -%利用者はシステム管理チームへVMの利用申請を行い,VM作成の権限を取得する. -%権限を取得後,WebコントロールパネルよりVM作成,電源操作を行えるようになっている. -%VMのリソースはCPU 1コア,メモリ1GB,ストレージ10GBとなり,申請を行うことでリソースを増やすことができる. -%VM貸出サービスの概要を図\ref{fig:akatsuki}に示す. -% -%\begin{figure}[H] -% \begin{center} -% \includegraphics[width=150mm]{fig/akatsuki.pdf} -% \end{center} -% \caption{Akatsukiの概要} -% \label{fig:akatsuki} -%\end{figure} -% -%\subsection{ie-virsh} -%ie-virsh は手元のPCで作成したVMを学科のブレードサーバにデプロイできるサービスである. -%ユーザのUID及びGID情報を取得することで,マルチユーザに対応している. -%表\ref{tb:ie-virsh}は ユーザが利用できる ie-virsh の機能である. -%ie-virshは手元のPCで作成したVMを実行できるため,ユーザが好みのOSや環境を構築できるなど自由度が高い. -%\begin{table}[htb] -% \begin{center} -% \caption{ie-virsh のコマンド} -% \begin{tabular}{c|l} \hline -% define & XML の template を下に domain を作成 \\ \hline -% undefine & define で作成した domain を削除 \\ \hline -% list & define で作成した domain の一覧表示 \\ \hline -% start & 指定した domain 名の VM を起動 \\ \hline -% destroy & 指定した domain 名の VM を停止 \\ \hline -% dumpxml & domain の XML を参照 \\ \hline -% \end{tabular} -% \label{tb:ie-virsh} -% \end{center} -%\end{table} -% -%\subsection{ie-docker} -%ie-dockerはDocker をラップしたツールであり,ユーザは学科のブレードサーバへSSHで接続を行いCUIから利用することができる. -%ie-virshと同じく,ユーザのUID及びGID情報を取得することで,マルチユーザに対応している. -%表\ref{tb:ie-docker} は ie-docker で利用できる機能である. -%コンテナで使用するイメージは管理者が用意する必要がある. -% -%\begin{table}[htb] -% \begin{center} -% \caption{ie-docker のコマンド} -% \begin{tabular}{c|l} \hline -% ps & 起動中のコンテナの一覧を表示する \\ \hline -% run & コンテナを作成する \\ \hline -% start & コンテナを起動する \\ \hline -% stop & コンテナを停止する \\ \hline -% attach & 起動しているコンテナに attach する \\ \hline -% cp & コンテナにファイルを送信する \\ \hline -% rm & コンテナを削除する \\ \hline -% \end{tabular} -% \label{tb:ie-docker} -% \end{center} -%\end{table} - \subsection{問題点} 旧システムでは,学生が演習などで利用できる環境として貸出VMのみであった.そのため以下のような問題が生じた.
--- a/paper/chapter/system_review.tex Sat Feb 13 01:07:24 2021 +0900 +++ b/paper/chapter/system_review.tex Sat Feb 13 15:01:42 2021 +0900 @@ -57,13 +57,58 @@ そこで,ie-virshでは差分でVMを作成機能が追加され,新しく作成されるVMは数十MBになることで,使用するディスク容量を抑えることが可能になった. \section{コンテナ環境の評価} +%新しく導入したPodmanは,Dockerと同じCLIを提供するため,Dockerを利用したことがある学生は抵抗なく利用できる. +%また,ie-podmanにより特権が必要な機能も,利用者に特別な権限を与えることなく利用できるようになる. +%Singularityの導入により,GPUを手軽に利用できるため,演習や研究等での利用も広がると考えられる. +%\par +%VMでは新しく作成するたびに環境構築が必要であったが,コンテナイメージを作成することで環境構築は一度のみになる. +%また,学科のレジストリーにイメージを登録することで,他の利用者に共有も可能となる. +%Singularityでは単一ファイルのsifのコピーを配布することで,同じ環境でプログラムの実行することができる. +%\par +%これまでのVMベースのシステムから,コンテナベースのシステムへの移行により,汎用バーバのリソースを効率よく利用できる. +%また,学生も気軽に利用できるようになったのではないかと考えられる. + 新しく導入したPodmanは,Dockerと同じCLIを提供するため,Dockerを利用したことがある学生は抵抗なく利用できる. -また,ie-podmanにより特権が必要な機能も,利用者に特別な権限を与えることなく利用できるようになる. -Singularityの導入により,GPUを手軽に利用できるため,演習や研究等での利用も広がると考えられる. +また,Singularityの導入により,GPUを手軽に利用できるため,演習や研究等での利用も広がると考えられる. +\par +RootlessのPodman,Singularityの不便な点を補うため,Podmanのwrapperであるie-podmanを作成した. +iepodmanにより特権が必要な機能も,利用者に特別な権限を与えることなく利用できるようになる. +また,ie-podmanはrootfullのPodmanをwrappすることにより,コンテナやイメージがSSD上に保存される. +そのため,rootlessのPodmanより高速化を図ることが可能になる. \par -VMでは新しく作成するたびに環境構築が必要であったが,コンテナイメージを作成することで環境構築は一度のみになる. -また,学科のレジストリーにイメージを登録することで,他の利用者に共有も可能となる. -Singularityでは単一ファイルのsifのコピーを配布することで,同じ環境でプログラムの実行することができる. -\par -これまでのVMベースのシステムから,コンテナベースのシステムへの移行により,汎用バーバのリソースを効率よく利用できる. -また,学生も気軽に利用できるようになったのではないかと考えられる. \ No newline at end of file +そこで,ie-podmanでのイメージのBuild速度の比較を行う. + +\subsection{実験概要} +実験に使用する環境は,表\ref{tb:newserver}のサーバ1台を使用する. +一般的なコンテナエンジンであるDockerを含め,比較するコンテナエンジンは以下である. +\begin{itemize} + \item Docker + \item Podman (rootless) + \item ie-podman (Podman rootfull wrapper) +\end{itemize} + +使用するDockerfileはソースコード\ref{pg:dockerfile}である. +また,時間の計測にはtimeコマンドを使用する. + +\begin{lstlisting}[caption=Dockerfile, label=pg:dockerfile] +FROM ubuntu:20.04 +RUN apt-get update && \ + apt-get upgrade -y +\end{lstlisting} + +\subsection{イメージのBuild速度比較} +図\ref{fig:ie-podman-review}はDocker, Podman, ie-podmanにおけるイメージのBuild速度である. +\begin{figure}[H] + \begin{center} + \includegraphics[width=150mm]{file/benchmark/pdf/container2.pdf} + \end{center} + \caption{書込み速度の比較} + \label{fig:ie-podman-review} +\end{figure} + +\subsection{考察} +Dockerやie-podmanのBuildに掛かる時間は1分未満だが,rootlessのPodmanでは3分程掛かっている. +RootlessのPodmanはコンテナイメージをユーザのホームディレクトリに保存する. +また,rootlessでは重複排除をサポートしていないVFSストレージに制限される. +RootlessのPodmanは独自の名前空間内で特権機能を利用できるようにするため,rootfullと比べ経由する関数が多くなる. +そのため,rootlessではrootfullと比べsyscallが多く呼ばれることにより,他と比べイメージのBuild速度が遅くなっているのではないかと考える. \ No newline at end of file