Mercurial > hg > Papers > 2014 > taiki-sigos
changeset 20:449568137ba9
add files
author | taiki <taiki@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 22 Apr 2014 18:17:47 +0900 |
parents | ccc2b9df6acb (current diff) 81cd898c04d4 (diff) |
children | 15db79603d12 |
files | paper/bib.tex paper/book.bib paper/images/serverstructure.pdf |
diffstat | 8 files changed, 60 insertions(+), 23 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/paper/bib.tex Tue Apr 22 18:17:47 2014 +0900 @@ -0,0 +1,2 @@ +\bibliographystyle{ipsjunsrt} +\bibliography{sigos}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/paper/book.bib Tue Apr 22 18:17:47 2014 +0900 @@ -0,0 +1,25 @@ +@BOOK{clay200912, + title={並行コンピューティング技法 - 実践マルチコア/マルチスレッドプログラミング}, + author={Clay Breshears}, + publisher={オライリージャパン}, + year={2009}, + month={12}, + isbn={9784873114354}, + url={http://amazon.co.jp/o/ASIN/4873114357/}, + price={¥ 3,360}, + totalpages={284}, + timestamp={2011.11.17}, +} + +@BOOK{fix200609, + title={マルチコアCPUのための並列プログラミング - 並列処理\&マルチスレッド入門}, + author={安田 絹子 and 飯塚 博道 and 青柳 信吾 and 小林 林広 and 阿部 貴之}, + publisher={秀和システム}, + year={2006}, + month={9}, + isbn={9784798014623}, + url={http://amazon.co.jp/o/ASIN/4798014621/}, + price={¥ 3,360}, + totalpages={367}, + timestamp={2011.11.17}, +}
--- a/paper/ievirsh.tex Tue Apr 22 18:13:28 2014 +0900 +++ b/paper/ievirsh.tex Tue Apr 22 18:17:47 2014 +0900 @@ -37,6 +37,8 @@ そうすると、template XML を元に domain が生成される。 ie-virsh は XML の template を持ち、その template は学生が VM のイメージをブレードサーバにアップロードして define した際に使用される。template には virsh 上で VM を使用するために必要な設定が記述されている。 +生成された 設定 XML は KVM の所定の位置に格納される。 +設定XMLには、OSFS2上の学生の固有の場所の仮想マシンイメージへのpathが記述されている。学生は、指定の位置にイメージを指定することにより任意のVMを実行することができる。 生成された domain は以下のように起動することができる。 \begin{verbatim}
--- a/paper/ievirshcomp.tex Tue Apr 22 18:13:28 2014 +0900 +++ b/paper/ievirshcomp.tex Tue Apr 22 18:17:47 2014 +0900 @@ -2,27 +2,29 @@ ie-virsh を実装し実際に授業 Operating System で使用した。情報工学科では ie-virsh や KVM だけでなく他の管理ツールやハイパーバイザを使用している。また使用を検討したものもいくつかある。それらと ie-virsh を比較する。 \subsection{OCFS2 と NASの比較} -ie-virsh の動作するサーバの構成では、SAN へ複数の PC が接続し同時にアクセスする。ext3・ext4 の様なファイルシステムでフォーマットを行うと、複数の PC から同時にアクセスした際に整合性が取れずファイルが破損してしまう。OCFS2 は複数の PC から書き込まれてもファイルの整合性を保つ。よって OCFS2 は適切な選択だったと考えられる。 +ie-virsh の動作するサーバの構成では、SAN へ複数の PC が接続し同時にアクセスする。ext3・ext4 の様なファイルシステムでフォーマットを行うと、複数の PC から同時にアクセスした際に整合性が取れずファイルが破損してしまう。OCFS2 はSAN上の複数の PC から書き込まれてもファイルの整合性を保つ。 +KVMからNFSでNASに接続する、あるいは、NFS経由で自身のfile system にアクセスすることでも同様のことが実現できるが、余計なネットワークトラフィックが出てしまう。 \subsection{KVM と VMWare ESXI の比較} -ie-virsh のハイパーバイザとして KVM を利用した。情報工学科では VMWare ESXI を利用しているが、VMWare を使用するためにはライセンス等でコストがかかる。KVM であれば Linux ベースの OS で利用できるため、無償で利用可能である。 +ie-virsh のハイパーバイザとして KVM を利用した。情報工学科では VMWare ESXI を利用しているが、VMWare を使用するためにはライセンス等でコストがかかる。KVM であれば Linux ベースの OS で利用できるため、無償で利用可能である。性能的にもほぼ同等であるが、現状ではVMWareの方が若干高速である。 \subsection{管理ツールの比較} ie-virsh は virsh をラップするという形で実装が行われているが、VM を管理するツールは virsh だけではない。情報工学科では、授業や学科のシステムの管理として他のツールも使用している。ここでは他のツールを使用した場合と比較する。 \subsubsection{vSphere Client} -vSphere Client は仮想環境の統合管理をするプラットフォーム vCenter Server と接続し、管理するために使用される。vSphere Client は権限の詳細な設定が可能となっており、複数の学生に対して VM を配布し権限を管理するツールとしては適している。しかし多機能で UI が煩雑になっており、最小限の機能で十分であった今回の場合には向いていなかった。学生が操作に慣れるのに時間がかかる。 +vSphere Client は仮想環境の統合管理をするプラットフォーム vCenter Server と接続し、管理するために使用される。vSphere Client は権限の詳細な設定が可能となっており、複数の学生に対して VM を配布し権限を管理するツールとしては適している。必要な権限を持つテンプレートを作り、それを学生のアカウントに割り当てることで学生がVMを使った実習をすることが可能になる。 +自動で、これを行うことも可能だと思われるが、今回は、そこまでは用意していない。 +手動で権限を委譲する場合は管理者側の操作も多く、60 名の受講者がいる授業 Operating System で学生への権限の配布に手間と時間が必要である。 -また権限を委譲する際に管理者側の操作も多く、60 名の受講者がいる授業 Operating System で学生への権限の配布に手間と時間が必要である。 - -ie-virsh はそういった権限を委譲するという操作は必要なく、また機能も学生が VM を操作するのに十分である。 +ie-virsh はそういった権限を委譲するという操作が必要なく、また機能も学生が VM を操作するのに十分なように作られている。 \subsubsection{Vagrant} Vagrant は KVM をプロバイダとするプラグインを持っている。よって KVM を VirtualBox の様にプロバイダとして Vagrant を動かすことが可能である。Vagrant をマルチユーザに対応させ、学生が使用可能に設定できるか試した。Vagrant を使うことができれば、KVM 用に VM イメージを変換することは必要だがノート PC の Vagrant と同様に操作することができる。 しかし Vagrant の KVM プラグイン vagrant-kvm はネットワークの実装が複数人で使用できるように実装されておらず、virsh のように使用するには向かなかった。 virsh の様に使用するためには、vagrant-kvm の実装に手を入れネットワーク部分を改良する必要がある。 +Vagrant でできることは、ほぼ ie-virsh と同等であり、既存のBoxを使えること以上の利点はなかった。 \subsubsection{Web サービス実装} @@ -34,8 +36,6 @@ \subsubsection{OpenStack} -OpenStack はクラウド基盤ソフトウエアである。仮想サーバやブロックストレージ、仮想ネットワーク等のリソースを提供する。物理層に依存することなく標準化された IT インフラストラクチャである。 - -しかし OpenStack はマルチユーザではないため、複数の学生の権限を管理することには向かなかった。 +OpenStack はクラウド基盤ソフトウエアである。仮想サーバやブロックストレージ、仮想ネットワーク等のリソースを提供する。物理層に依存することなく標準化された IT インフラストラクチャである。しかし OpenStack はマルチユーザではないため、複数の学生の権限を管理することには向かなかった。
--- a/paper/introduction.tex Tue Apr 22 18:13:28 2014 +0900 +++ b/paper/introduction.tex Tue Apr 22 18:17:47 2014 +0900 @@ -1,8 +1,7 @@ -\section{研究の目的} -Web サービスが IT 技術のひとつとして広まり、Web フレームワークなどの普及で学生でも実装が容易になってきている。そのため、学生でも Web サービスを開発する技術は必須なものとなっている。学生が個人で Web サービスを開発するためには、 Web サーバを手持ちの PC で構築し、外部の VPS やクラウド等へデプロイする必要がある。しかし外部のサービスを利用する場合はコストがかかる。Web サービスを学生が構築、開発し、運用するためにはコストのかからない VM を与える必要がある。 +\section{VMを用いたWebサービスの教育} +Web サービスが IT 技術のひとつとして広まり、Web フレームワークなどの普及で学生でも実装が容易になってきている。そのため、学生でも Web サービスを開発する技術は必須なものとなっている。学生が個人で Web サービスを開発する場合でも、 Web サーバを手持ちの PC で構築し、外部の VPS やクラウド等へデプロイするワークフローを学ぶ必要がある。しかし外部のサービスを利用する場合に、学生のVMの管理を十分に行うことが難しく、コストも困難である。クラウド上で学生が使うVMの管理方法は、クラウドの運営者と協調してAPIなどを通して実現する必要がある。 +ここでは、学校にあるサーバー機器(ブレードなど)を用いて、 Web サービスを学生が構築、開発し、運用する方法の実装を行った。 -また、情報工学科では Operating System という授業がある。この授業では OS について学ぶ一環として、VM について学習し、課題を提出させる。課題では VM の環境を学生が設定し、情報工学科の持つブレードサーバ上にアップロードし、プログラムの実装や計測を行う。 - -こういった需要から学生に与える学習環境のひとつとして、情報工学科のブレードサーバ上に VM を持たせ、VM の起動・停止等の操作をさせる必要が出てきた。複数の学生に適切な権限と資源を与え、Web サービスや課題についての学習を促進する。 - -ie-virsh を用いて、複数の学生の VM を管理する。 +実際、本学の情報工学科では Operating System という授業を提供している。この授業では OS について学ぶ一環として、VM について学習し、課題を提出させる。課題では VM の環境を学生が設定し、情報工学科の持つブレードサーバ上にアップロードし、プログラムの実装や計測を行う。これを教師あるいはシステム管理者が学生の一つ一つのVMに対して対応を行うのは現実的ではない。 +情報工学科のブレードサーバ上に VM に対する適切な権限を学生に委譲し、VM の起動・停止等の操作をさせる必要がある。 +また、VM上で動くOSのセキュリティを適切に管理する必要がある。
--- a/paper/kvm.tex Tue Apr 22 18:13:28 2014 +0900 +++ b/paper/kvm.tex Tue Apr 22 18:17:47 2014 +0900 @@ -1,5 +1,5 @@ \section{Kernel-based Virtual Machine (KVM)} \label{kvm} -Linux 自体を VM の実行基盤として機能させるソフトウエアで、無償で使用することのできるオープンソースである。る。完全仮想化により、OS の仮想化環境を提供する。 +Linux 自体を VM の実行基盤として機能させるソフトウエアで、無償で使用することのできるオープンソースである。完全仮想化により、OS の仮想化環境を提供する。 図\ref{fig:kvmarch}は、KVM のアーキテクチャである。KVM は Linux 用のカーネルモジュールとして実装されており、OS が持つメモリ管理プロセスやスケジューリング機能を利用している。そのため他の仮想マシンソフトウエアに比べ、KVM 自体のコードは簡潔なものになっている。
--- a/paper/sigos.tex Tue Apr 22 18:13:28 2014 +0900 +++ b/paper/sigos.tex Tue Apr 22 18:17:47 2014 +0900 @@ -39,15 +39,23 @@ % 和文概要 \begin{abstract} -ブレードサーバの VM を学生に起動・停止させることができる VM 管理ツール、ie-virshを開発した。情報工学科ではローカルな環境で作成した VM イメージを、豊富なリソースを持つブレードサーバ上で動作させることが可能である。ie-virsh はマルチユーザに対応し、複数台の VM を管理できる。 -マルチユーザに対応した ie-virsh を使用すれば、複雑な権限の設定や学生の資源利用の制限ができるため、学生の VM 利用を管理することが可能である。 +情報系の学生に限らず、Webサービスを支える仮想マシン技術に習熟することは重要である。 +本論文では学生が学ぶのに必要な仮想マシン環境の仕様について考察し、 +一つの方法として、KVM と libvirt のCLIである virsh のwrapperを用いる方法を提案し評価する。 +これにより、LDAPで管理された学生のアカウントに対して、適切なVM管理権限(VMの作成、起動、停止、削除)の提供を可能にすることができた。 +また、PC上の仮想マシン、例えば Virtual Box などとの連携も可能である。 +Vagrant などの比較的簡単にVMを作ることができる環境に関しても考察する。この場合は、Vagrant のBoxの +セキュリティが問題となる。実際の授業で用いて、学生にVMを用いたサービスの運用の実際について学んでもらった。 \end{abstract} % 英文概要 \begin{eabstract} -This study developed ie-virsh that manage virtual machine on blade server. -Students of Information Engineering can use blade server that have plenty resources. -ie-virsh manage multiple virtual machine for multi user. -If you use ie-virsh for multi user, you can manage the students to use virtual machine because you can set avility and restrict students to use resource. +Learning virutal machine technology is important in Web service construction, not only for information engineering studuents. +In this study we investigate necessary specification of VM environment in schools. We use +a wrapper for libvirt CLI, virsh on KVM. This provides necessary capability such as VM image creation, start, stop and deletion +for LDAP based student account. +It also provides a linkage with VM on PC, such as Virtual Box. +We also consider easy UI like Vagrant. In this case, the security of Vargrand box matters. +In our lecture, this system is used by many students to study actual management of VM based services. \end{eabstract} % 表題などの出力 @@ -56,6 +64,7 @@ % 本文はここから始まる \input{introduction} % 研究目的 +% libvirt ないよ。 \input{libvirt} % libvirt \input{kvm} % KVM \input{ievirsh} % ie-virsh