Mercurial > hg > Papers > 2020 > mk-sigiot
diff paper/mk-wm.tex @ 10:e4de1a56f77f
add ie-virsh, update figs
author | Ken Miyahira <e175733@ie.u-ryukyu.ac.jp> |
---|---|
date | Wed, 05 Aug 2020 18:39:09 +0900 |
parents | bf3c55a19edb |
children | 5ae4054bcc94 |
line wrap: on
line diff
--- a/paper/mk-wm.tex Tue Aug 04 17:36:46 2020 +0900 +++ b/paper/mk-wm.tex Wed Aug 05 18:39:09 2020 +0900 @@ -91,11 +91,35 @@ \section{本コースの類似サービス} -本サービスに類似したサービスとして, Docker をラップし複数のユーザで利用することを目的とした ie-docker \cite{ie-docker}, Kubernetes を利用した教育用コンテナ貸出を目的とした, digdog \cite{digdog} がある。 +本サービスに類似したサービスとして, libvirt の CLI である virsh をラップしマルチユーザ VM 環境を提供する ie-virsh。 +また, Docker をラップし複数のユーザで利用することを目的とした ie-docker \cite{ie-docker}, Kubernetes を利用した教育用コンテナ貸出を目的とした, digdog \cite{digdog} がある。 + +\subsection{ie-virsh} +ie-virsh とは, 本コースの Operating System という講義に向けに libvirt の CLI である virsh をラップし複数のユーザで利用することができる VM 管理ツールである。 +ie-virsh は 本コースの講義に向け作成されたが, 学生の演習でも利用ができる。 +課題では VM の環境を学生が設定し, 情報工学科の持つブレードサーバ上にアップロードし, プログラムの実装や測定を行う。\cite{ie-virsh} +学生は手元の PC で作成した VM をブレードサーバ上にデプロイすることで, 演習環境を構築することができる。 +ie-virsh は ユーザの UID 及び GID 情報を取得することで, 他のユーザの VM を操作させない。表\ref{tb:ie-virsh}は ユーザが利用できる ie-virsh の機能である。 + +\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 でブレードサーバへ接続し, ie-docker を使用してコンテナを操作することができる。 -ie-docker は UID 及び GID 情報を取得し他のユーザのコンテナを操作させない。 +ie-docker は UID 及び GID 情報を取得することで, 他のユーザのコンテナを操作させない。 またユーザが使える docker の機能を制限する。表\ref{tb:ie-docker}が ie-docker で利用できる機能である。 \begin{table}[htb] @@ -179,13 +203,13 @@ そこで, Web コンソールから Singularity 用のイメージをダウンロードできる仕様とする。\par 学生は利用したいイメージをダウンロードし, ブレードサーバへ送信して Singularity を使用する。Singularity を利用する流れを図\ref{fig:singu} に示す。 -\begin{figure}[tb] +\begin{figure*}[tb] \begin{center} - \includegraphics[width=80mm]{Images/whalemountain.pdf} + \includegraphics[width=100mm]{Images/whalemountain.pdf} \end{center} \caption{システム構成} \label{fig:wm} -\end{figure} +\end{figure*} \begin{figure}[tb] \begin{center} @@ -247,7 +271,7 @@ 返却したコンテナID や ネットワークID を下にコンテナ削除やコマンドの実行, ファイルの送信を処理する。 だが, ファイルの送信では JSON 形式ではなく multipart/form-data 形式でリクエストを受ける。\par Docker イメージは GitLab CI/CD を利用して作成するが, Build が成功したかを判断することはできない。 -そのため, Web コンソール側から 5 分に一度イメージの更新リクエストが送られ, Docker イメージの一覧をリストにまとめ返却を行う。\par +そのため, Web コンソール側から 5 分に一度イメージの更新リクエストを受け, Docker イメージの一覧をリストにまとめ返却を行う。\par ユーザが作成するコンテナとは別に GitLab CI/CD で Docker イメージを Build するための GitLab Runner を立てる必要がある。 立ち上げはユーザが Web コンソールで CI/CD トークンの設定時に行われる。GitLab Runner をユーザごとに立ち上げることで, 複数のユーザが同時に Build を行うことができる。