Mercurial > hg > Papers > 2015 > taiki-master
view paper/chapter1.tex @ 8:bc41d38f98d0
update pdf file
author | taiki |
---|---|
date | Fri, 06 Feb 2015 11:07:58 +0900 |
parents | 9c08c451a8fc |
children | 741bd4ff00c0 |
line wrap: on
line source
\chapter{これまでの学生向け VM 管理システム} 本章では 2015 年現在使用されている、琉球大学情報工学科 (以下本学科) の運用している 2 つの VM 管理システムについて述べる。 \section{VMWare ESXi} VMWare が無償で配布している Hypervisor であり、計算機に直接インストールし使用することができる。現在本学科では VMWare ESXi を Hypervisor として VM を管理している。 \section{VMWare ESXi による VM 管理システム} オンプレミスのブレードサーバで構成されており、VMWare ESXi で動作している VM を VMWare vSphere Client で管理している。図\ref{fig:iesystem} のように、VM の所有者はメールでシステム管理者へ VM 作成依頼を行い、本学科の提供する Web サービスで VM の起動・停止などの操作を行う。 \begin{figure}[htpb] \begin{center} \includegraphics[scale=0.7]{figures/ie_system.pdf} \caption{本学科のシステム} \label{fig:iesystem} \end{center} \end{figure} \section{本学科の提供する Web サービス} VM を操作するインターフェイスとして、VMWare の API を使った Web サービスを使用できる。 本学科のシステムでは、VM の操作は Web サービス実装を通して行う。VM の作成はメールなどの連絡手段を使って、管理者を通して行う。既成の VM をブレードサーバへアップロードするにも、管理者と連絡し手続きを取る。 \section{VMWare vSphere Client} GUI で VM を操作することができ、豊富な機能と高度な操作が可能となっている。管理者は VMWare vSphere Client での管理を行っている。VM などの資源に対する操作の権限を細かく扱うことができるため、利用者に対して権限を配布することが可能である。しかし GUI が複雑なため、操作に習熟する必要がある。 また使用する OS が限定されており、主に Windows でのみ使用可能なため、Mac OS X を推奨している本学科では使用が困難である。 \section{Kernel based Virtual Machine (KVM)} Linux 自体を VM の実行基盤として機能させるソフトウエアである。無償で利用可能なオープンソースとなっている。CPU の仮想化支援機能を必要とし、完全仮想化により仮想化環境を提供する Hypervisor である。 KVM は Linux のカーネルモジュールとして実装されており、OS が持つメモリ管理プロセスやスケジューリング機能を利用している。 アーキテクチャは図\ref{fig:kvmarch}のようになっている。 \begin{figure}[htpb] \begin{center} \includegraphics[scale=0.7]{figures/kvmarch.pdf} \caption{KVM architecture} \label{fig:kvmarch} \end{center} \end{figure} Intel-VT や AMD-V などの仮想化支援機能を持つプロセッサや BIOS の載っている PC 上で動作する。 本学科のシステムは、KVM と VMWare ESXi の2つの Hypervisor を利用している。本学科全体の VM 管理は、主に VMWare ESXi が使われている。 \section{libvirt} VM 管理ツールである virsh を含む、 VM の制御を抽象化したライブラリである。 VM の情報を習得・操作することが可能な API 群である。 \begin{figure}[htpb] \begin{center} \includegraphics[scale=0.7]{figures/libvirt_arch.pdf} \caption{libvirt architecture} \label{fig:libvirtarch} \end{center} \end{figure} 図\ref{fig:libvirtarch}のように、アプリケーションから libvirt API を呼び出すと、API に従って内部の VMM API もしくは資源管理 API を呼び出し、制御を行う。libvirt は VM の管理だけではなく、仮想ネットワーク、仮想ストレージも管理することができる。もともとは Xen に対して API を提供していたが、現在は多くの Hypervisor に対応している。 \section{virsh} virsh は libvirt に付属する VM 管理コンソールである。libvirt の API で VM を制御することができる。VM の起動や停止、情報の表示、ゲストが接続しているネットワークやデバイスの管理をすることができる。 virsh をそのまま使用して複数のユーザを管理するためには、ユーザやグループの設定が必要である。またユーザやグループの設定を行ったとしても、ネットワークなどの操作をを制限することができない。 \section{ie-virsh} virsh はグループの設定を行わない限り、root ユーザでのみ使用可能である。virsh を使う管理者以外のユーザ全てに root ユーザを使わせてしまうと、他のユーザに対しての不正な操作や、多量の資源取得、ネットワーク等の管理者がするべき操作を許してしまう。そのため ie-virsh の開発を行った。ie-virsh は virsh をラップすることで作成された VM 管理用のツールである。ie-virsh を使用することにより、他のアカウントの VM を操作させずに VM 所持者に操作させられる。 表\ref{table:ievirshfunc}が ie-virsh の機能である。 \begin{tiny} \begin{table}[ht] \begin{center} \caption{ie-virsh のコマンド} \label{table:ievirshfunc} \small \begin{tabular}[t]{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 debug & linux kernel のコードを gdb で読む\\ \hline \end{tabular} \end{center} \end{table} \end{tiny} virsh ではネットワークやストレージの設定を行うことも可能である。しかし ie-virsh では管理者ではない使用者にはネットワークやストレージの設定ができないよう実装している。 また ie-virsh には virsh で使用できる、ネットワークの構成の操作などの管理者側がするべき操作はない。管理者でないアカウントでは操作できない。 \section{ie-virsh による OS 管理システム} ie-virsh によって複数のユーザの VM 管理を行っている。 また本学科では Operating System という授業を提供している。この授業では OS について学ぶ一環として VM について学習し、課題を提出させる。課題では VM の環境を学生が設定し、本学科の持つブレードサーバ上に VM をアップロードし、プログラムの実装や計測を行う。ie-virsh による OS 管理システムを使用し、 VM のアップロードから計測までの課題を行わせた。