# HG changeset patch # User Ken Miyahira # Date 1596620349 -32400 # Node ID e4de1a56f77f35d1bc82c0137a1f7e40843e7bea # Parent bf3c55a19edbc8229f786e0d55739f2f41b009b8 add ie-virsh, update figs diff -r bf3c55a19edb -r e4de1a56f77f mm/mk-sigiot.mm --- a/mm/mk-sigiot.mm Tue Aug 04 17:36:46 2020 +0900 +++ b/mm/mk-sigiot.mm Wed Aug 05 18:39:09 2020 +0900 @@ -32,6 +32,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r bf3c55a19edb -r e4de1a56f77f paper/Images/apihukusu.pdf Binary file paper/Images/apihukusu.pdf has changed diff -r bf3c55a19edb -r e4de1a56f77f paper/Images/nagi.graffle Binary file paper/Images/nagi.graffle has changed diff -r bf3c55a19edb -r e4de1a56f77f paper/Images/singularity.pdf Binary file paper/Images/singularity.pdf has changed diff -r bf3c55a19edb -r e4de1a56f77f paper/Images/whalemountain.pdf Binary file paper/Images/whalemountain.pdf has changed diff -r bf3c55a19edb -r e4de1a56f77f paper/mk-wm.bib --- a/paper/mk-wm.bib Tue Aug 04 17:36:46 2020 +0900 +++ b/paper/mk-wm.bib Wed Aug 05 18:39:09 2020 +0900 @@ -18,17 +18,18 @@ title ="{https://docs.gitlab.com/runner/}", } -@article{ie-docker, - author = "平良 太貴", - title = "IT 技術学習のための教育用計算機システムの研究", - year = "2015", - institution = "琉球大学大学院理工学研究科情報工学専攻", -} - @article{digdog, author = "秋田 海人 and 高瀬 大空 and 上地 悠斗 and 長田 智和 and 谷口 祐治", title = "情報系学科における教育研究情報システムの運用管理並びに新規システムの構築に関する取り組み", year = "2019", institution = "琉球大学大学院理工学研究科情報工学専攻, 琉球大学工学部情報工学科, 琉球大学工学部工学科知能情報コース, 琉球大学工学部情報工学科, 琉球大学工学部情報工学科", journal = "インターネットと運用技術シンポジウム", +} + +@article{ie-virsh, + author = "平良 太貴 and 河野 真治", + title = "OS 授業向けマルチユーザ VM 環境の構築", + year = "2014", + institution = "琉球大学大学院理工学研究科情報工学専攻, 琉球大学工学部情報工学科", + journal = "研究報告システムソフトウェアとオペレーティング・システム(OS)", } \ No newline at end of file diff -r bf3c55a19edb -r e4de1a56f77f paper/mk-wm.pdf Binary file paper/mk-wm.pdf has changed diff -r bf3c55a19edb -r e4de1a56f77f paper/mk-wm.tex --- 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 を行うことができる。