view prepaper/pre.tex @ 55:a822207b796f

update paper
author Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
date Sun, 14 Feb 2021 16:29:06 +0900
parents bf822f6fcc95
children 467f33670092
line wrap: on
line source

\documentclass[twocolumn,twoside,9.5pt]{jarticle}
\usepackage[dvipdfmx]{graphicx}
\usepackage{picins}
\usepackage{fancyhdr}
\usepackage{abstract}
\usepackage{here}
\usepackage{url}
\usepackage{listings,jlisting}
%\pagestyle{fancy}
\lhead{\parpic{\includegraphics[height=1zw,keepaspectratio,bb=0 0 251 246]{pic/emblem-bitmap.pdf}}琉球大学主催 工学部工学科知能情報コース 卒業研究発表会} 
\rhead{}
\cfoot{}

\setlength{\topmargin}{-1in \addtolength{\topmargin}{15mm}}
\setlength{\headheight}{0mm}
\setlength{\headsep}{5mm}
\setlength{\oddsidemargin}{-1in \addtolength{\oddsidemargin}{11mm}}
\setlength{\evensidemargin}{-1in \addtolength{\evensidemargin}{21mm}}
\setlength{\textwidth}{181mm}
\setlength{\textheight}{261mm}
\setlength{\footskip}{0mm}
\pagestyle{empty}

\renewcommand{\abstractname}{Abstract}
\begin{document}
\title{コンテナ技術を用いた\\教育情報システムの構築}
\author{175733E {宮平 賢}\\ 指導教員 : {河野 真治} }
\date{}
\twocolumn [
\maketitle
\begin{onecolabstract}

ab,ab,ab,ab, abstract

\end{onecolabstract}]
\thispagestyle{fancy} 

\section{教育向けの情報システム}
情報通信技術の普及に伴い学生が学ぶ学習環境が必要となる.その学習環境としてVMやコンテナにより,手軽に開発し試せる技術が普及している.
だが,手元のPC上でVMやコンテナを立ち上げ,開発を行うことはできるが,VMやコンテナの使用には高性能PCや有料のクラウドサービスが必要になる場合がある.
これらの負担をIT技術を学ぶ学生に負わせない新たな仕組みが必要である.
\par
本コースでは希望する学生に学科の汎用サーバから仮想環境を貸出するサービスを行っている.
貸出をするVMの基本スペックとしてCPU1コア,メモリ1GB,ストレージ10GBである.
基本スペックでは不足する場合は要望に応じてスペックの変更を行っている.
しかし,機械学習などの演習ではCPUよりGPUが求められる場合がある.
VM上でGPUを共有するにはPCIパススルーを利用することで可能である.
だが,PCIパススルーではGPUとVMは1対1の関係となり,GPUを希望する利用者すべてに割り当てることはできない.
\par
本研究では,学生が貸出VMだけでなく,学科の汎用サーバのリソースを効率的に利用できる教育情報システムを提案する.
教育情報システムには複数の汎用サーバと大容量ストレージサーバが存在する.
複数のサーバを利用するにあたり,分散ストレージが必要となる.
また,学習環境として利用されることから,複数の並列なアクセスに耐えられ,信頼性の高いファイルシステムが必要である.
この用件を満たすストレージソフトウェアとしてCephを採用した.
汎用サーバのリソースを効率的に利用するために,コンテナエンジンであるPodman,Singularity,ジョブスケジューラであるSlurmを採用した.
これらのソフトウェアを合わせ教育情報システムの構築を行った.

\section{Podman}
PodmanはRedHat社が開発,提供するLinux上でOCIコンテナを開発,管理,実行するためのデーモンレスコンテナエンジンである\cite{podman}.
PodmanはOCI準拠のコンテナランタイムに依存するため,前述したDockerなど他のコンテナエンジンと互換性を持つ.
また,Podman CLIはDocker CLIと同じ機能を提供する.
Podmanはコンテナとイメージストレージ,コンテナランタイムを介してLinxuカーネルと直接対話することで,デーモンレスで実行される.
Podmanの制御下にあるコンテナは,特権ユーザ又は非特権ユーザのいずれかによって実行することができる.

\section{Singularity}
Singularity\cite{singularity} とは,HPC環境向けに設計されたコンテナプラットフォームである.
Singularityはマルチユーザに対応しており,コンテナ内での権限は実行ユーザの権限を引き継ぐため,ユーザに特別な権限の設定が必要ない.
またデフォルトで,\$HOME,/tmp,/proc,/sys,/dev がコンテナにマウントされ,サーバ上のGPUを簡単に利用できる.
コンテナイメージはSingularity Image Format(以下,sif)と呼ばれる単一ファイルベースのため,アーカイブや共有が容易である.

\section{Slurm}
Slurm\cite{slurm}はLinuxクラスタ向けのフォールトトレラント設計のジョブスケジューリングシステムである.
ジョブスケジューラではサーバ上で実行される処理を「Job」という単位で管理する.
ユーザはプログラムの実行手順,実行に必要とするリソースを記したbatchファイルを作成し,ジョブスケジューラにJobの実行を依頼する.
ジョブスケジューラは要求するリソース,実行時間を考慮し,複数の計算ノードからJobを実行するノードを決定する.
このようにサーバ上でのプログラム等の実行,サーバのリソースを管理するのがジョブスケジューラである。
Slurmには以下の3つの主要機能を提供する.
\begin{itemize}
  \item 計算を実行するユーザに対してリソースへの排他的,非排他的なアクセスを割り当てる
  \item 割り当てられたノード上のジョブの開始,実行,モニタリングを行う
  \item 待機中のジョブキューを管理することにより,リソースの競合を解決する
\end{itemize}

\section{Ceph}
Cephは,RedHat社が開発,提供する分散ファイルシステムである.
Cephは分散オブジェクトストレージであるRADOS(Reliable Autonomic Distributred Object Storage)がベースとなっている.
RAODSでは,Object Storage Daemonにデータ格納する.
オブジェクトの配置には,クラスタマップを元にControlled Replication Under Scalable Hashing(以下,CRUSH)アルゴリズムによりオブジェクトの格納先を選択する.
配置の計算に必要とする情報はごくわずかであるため,Cephクラスタ内のすべてのノードは保存されている位置を計算できる.
そのため,データの読み書きが効率化される.また,CRUSHはデータをクラスタ内のすべてのノードに均等に分散しようとする.
\par
RODOSはクラスタに保存されるデータの管理を待ち受け,保存オブジェクトへのアクセス方法としてObject Gateway,RADOS Block Device(以下,RBD),CephFS がある.
Object GatewayはHTTP REST経由でクラスタに保存されるオブジェクトへ直接アクセスが可能である.
RBD はブロックデバイスとしてアクセスが可能で,libvirt を組み合わせてVMのディスクとして使用できる.
また,RBDドライバを搭載したOSにマップし ext4 や XFS などでフォーマットして利用できる.
CephFS は POSIX互換のファイルシステムである.
複数のアクセス方法を提供することで,用途に合わせ柔軟に変更することができる.

\section{教育情報システムの構築}
旧システムでは,学生が演習などで利用できる環境として貸出VMのみであった.そのため以下のような問題が生じた.

\begin{itemize}
    \item 仮想環境の貸出サービスにおいて,新しく仮想環境を作成するにはシステム管理チームへ申請が必要であった.
        そのため,一部学生は申請の方法が分からなかったり,貸出サービスがあることが周知されていなかったため,旧システムのリソースが余っていた.
    \item 機械学習の演習ではGPUが求められる.だが,旧システムにはGPUが搭載されていないため,要求されるリソースを提供できない.
        そのため,貸出サービスではなく研究室ごとの機器が多く利用された.
    \item 旧システムのクラスタファイルシステムであるGFS2のロックマネージャーを担当するサーバが停止すると,ファイルシステムにアクセスができなくなっった.
        そのため,学科のサービスを提供できなくなった.
\end{itemize}


\section{教育情報システムの利用}
\subsection{ie-podmanの利用}
ie-podmanはPodmanをwrappし複数ユーザで利用することができるコンテナ管理ツールである.
Podmanはマルチユーザに対応しているため,ie-podmanを利用せずともコンテナの作成などを行える.
だが,コンテナへのIPアドレスの割り当てには,root権限が必要となるためrootlessでは実行できない.
そのため,Webなどを実行しアクセスするにはポートフォワードを設定し,SSHポートフォワードを行う必要がある.
そこで,ie-podmanではPodmanのすべての機能をwrappするのではなく,rootlessでは実行できない機能を提供する.

\section{教育情報システムの評価}
\subsection{ie-podmanの評価}
\subsection{ファイルシステムの評価}

\section{まとめ}

\section{今後の課題}

\begin{thebibliography}{9}

\bibitem{podman} Podman,https://podman.io/,2021/1/4.
\bibitem{singularity} Singularity,https://sylabs.io/singularity/,2021/1/8.
\bibitem{slurm} Slurm, https://slurm.schedmd.com/overview.html, 2021/1/14.
\bibitem{ceph} Ceph,https://docs.ceph.com/en/latest/,2021/1/12.
\bibitem{ie-virsh} 平良 太貴 and 河野 真治,OS 授業向けマルチユーザ VM 環境の構築,研究報告システムソフトウェアとオペレーティング・システム(OS)(2014).
\bibitem{kido} 城戸翔太,安里悠矢,城間政司,長田智和,谷口祐治,"情報系学科における教育情報システムの構築及び運用管理に関する取り組み",研究報告インターネットと運用技術(IOT)(2016).

\end{thebibliography}

\nocite{*}
\bibliographystyle{junsrt}
\bibliography{reference}
\end{document}