annotate paper/chapter1.tex @ 9:741bd4ff00c0

update pdf
author taiki
date Sun, 08 Feb 2015 22:39:26 +0900
parents bc41d38f98d0
children a7cd328c44f2
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
8
bc41d38f98d0 update pdf file
taiki
parents: 7
diff changeset
1 \chapter{これまでの学生向け VM 管理システム}
bc41d38f98d0 update pdf file
taiki
parents: 7
diff changeset
2 本章では 2015 年現在使用されている、琉球大学情報工学科 (以下本学科) の運用している 2 つの VM 管理システムについて述べる。
0
7a299eb01565 add files
taiki
parents:
diff changeset
3
8
bc41d38f98d0 update pdf file
taiki
parents: 7
diff changeset
4 \section{VMWare ESXi}
bc41d38f98d0 update pdf file
taiki
parents: 7
diff changeset
5 VMWare が無償で配布している Hypervisor であり、計算機に直接インストールし使用することができる。現在本学科では VMWare ESXi を Hypervisor として VM を管理している。
bc41d38f98d0 update pdf file
taiki
parents: 7
diff changeset
6
bc41d38f98d0 update pdf file
taiki
parents: 7
diff changeset
7 \section{VMWare ESXi による VM 管理システム}
9
741bd4ff00c0 update pdf
taiki
parents: 8
diff changeset
8 オンプレミスのブレードサーバで構成されており、VMWare ESXi で動作している VM を VMWare vSphere Client で管理している。図\ref{fig:iesystem} のように、VM の所有者はメールでシステム管理者へ使用 VM を増やす依頼を行い、ユーザは本学科の提供する Web サービスから VM を作成する。
0
7a299eb01565 add files
taiki
parents:
diff changeset
9
7a299eb01565 add files
taiki
parents:
diff changeset
10 \begin{figure}[htpb]
7a299eb01565 add files
taiki
parents:
diff changeset
11 \begin{center}
7a299eb01565 add files
taiki
parents:
diff changeset
12 \includegraphics[scale=0.7]{figures/ie_system.pdf}
8
bc41d38f98d0 update pdf file
taiki
parents: 7
diff changeset
13 \caption{本学科のシステム}
0
7a299eb01565 add files
taiki
parents:
diff changeset
14 \label{fig:iesystem}
7a299eb01565 add files
taiki
parents:
diff changeset
15 \end{center}
7a299eb01565 add files
taiki
parents:
diff changeset
16 \end{figure}
7a299eb01565 add files
taiki
parents:
diff changeset
17
8
bc41d38f98d0 update pdf file
taiki
parents: 7
diff changeset
18
bc41d38f98d0 update pdf file
taiki
parents: 7
diff changeset
19 \section{本学科の提供する Web サービス}
bc41d38f98d0 update pdf file
taiki
parents: 7
diff changeset
20 VM を操作するインターフェイスとして、VMWare の API を使った Web サービスを使用できる。
0
7a299eb01565 add files
taiki
parents:
diff changeset
21
8
bc41d38f98d0 update pdf file
taiki
parents: 7
diff changeset
22 本学科のシステムでは、VM の操作は Web サービス実装を通して行う。VM の作成はメールなどの連絡手段を使って、管理者を通して行う。既成の VM をブレードサーバへアップロードするにも、管理者と連絡し手続きを取る。
0
7a299eb01565 add files
taiki
parents:
diff changeset
23
9
741bd4ff00c0 update pdf
taiki
parents: 8
diff changeset
24 Web サービスのポータル画面は図\ref{fig:ieportal}のようになる。本学科では IP アドレスもこの画面で配布している。
741bd4ff00c0 update pdf
taiki
parents: 8
diff changeset
25
741bd4ff00c0 update pdf
taiki
parents: 8
diff changeset
26 \begin{figure}[htpb]
741bd4ff00c0 update pdf
taiki
parents: 8
diff changeset
27 \begin{center}
741bd4ff00c0 update pdf
taiki
parents: 8
diff changeset
28 \includegraphics[scale=0.35]{images/ie_sc_portal.png}
741bd4ff00c0 update pdf
taiki
parents: 8
diff changeset
29 \caption{本学科の Web サービス}
741bd4ff00c0 update pdf
taiki
parents: 8
diff changeset
30 \label{fig:ieportal}
741bd4ff00c0 update pdf
taiki
parents: 8
diff changeset
31 \end{center}
741bd4ff00c0 update pdf
taiki
parents: 8
diff changeset
32 \end{figure}
741bd4ff00c0 update pdf
taiki
parents: 8
diff changeset
33
741bd4ff00c0 update pdf
taiki
parents: 8
diff changeset
34 VM を作成するためには、図\ref{fig:ieportal}の VM 新規作成をクリックする。クリックすると図\ref{fig:iemakevm}の画面に移る。図\ref{fig:iemakevm}で必要な情報をすべて入力し、「ok」をクリックすることによって VM を作成することができる。
741bd4ff00c0 update pdf
taiki
parents: 8
diff changeset
35
741bd4ff00c0 update pdf
taiki
parents: 8
diff changeset
36 \begin{figure}[htpb]
741bd4ff00c0 update pdf
taiki
parents: 8
diff changeset
37 \begin{center}
741bd4ff00c0 update pdf
taiki
parents: 8
diff changeset
38 \includegraphics[scale=0.35]{images/ie_sc_makevm.png}
741bd4ff00c0 update pdf
taiki
parents: 8
diff changeset
39 \caption{Web サービスの VM 作成画面}
741bd4ff00c0 update pdf
taiki
parents: 8
diff changeset
40 \label{fig:iemakevm}
741bd4ff00c0 update pdf
taiki
parents: 8
diff changeset
41 \end{center}
741bd4ff00c0 update pdf
taiki
parents: 8
diff changeset
42 \end{figure}
741bd4ff00c0 update pdf
taiki
parents: 8
diff changeset
43
741bd4ff00c0 update pdf
taiki
parents: 8
diff changeset
44 VM 作成後は VM を選択すると、図\ref{fig:ievmop} へ移り、VM を管理することができる。
741bd4ff00c0 update pdf
taiki
parents: 8
diff changeset
45
741bd4ff00c0 update pdf
taiki
parents: 8
diff changeset
46 \begin{figure}[htpb]
741bd4ff00c0 update pdf
taiki
parents: 8
diff changeset
47 \begin{center}
741bd4ff00c0 update pdf
taiki
parents: 8
diff changeset
48 \includegraphics[scale=0.35]{images/ie_sc_vmop.png}
741bd4ff00c0 update pdf
taiki
parents: 8
diff changeset
49 \caption{Web サービスの VM 管理画面}
741bd4ff00c0 update pdf
taiki
parents: 8
diff changeset
50 \label{fig:ievmop}
741bd4ff00c0 update pdf
taiki
parents: 8
diff changeset
51 \end{center}
741bd4ff00c0 update pdf
taiki
parents: 8
diff changeset
52 \end{figure}
741bd4ff00c0 update pdf
taiki
parents: 8
diff changeset
53
741bd4ff00c0 update pdf
taiki
parents: 8
diff changeset
54 管理画面で可能なことは、下記になる。
741bd4ff00c0 update pdf
taiki
parents: 8
diff changeset
55
741bd4ff00c0 update pdf
taiki
parents: 8
diff changeset
56 \begin{itemize}
741bd4ff00c0 update pdf
taiki
parents: 8
diff changeset
57 \item 起動
741bd4ff00c0 update pdf
taiki
parents: 8
diff changeset
58 \item 停止
741bd4ff00c0 update pdf
taiki
parents: 8
diff changeset
59 \item サスペンド
741bd4ff00c0 update pdf
taiki
parents: 8
diff changeset
60 \item 再起動
741bd4ff00c0 update pdf
taiki
parents: 8
diff changeset
61 \item スタンバイ
741bd4ff00c0 update pdf
taiki
parents: 8
diff changeset
62 \end{itemize}
741bd4ff00c0 update pdf
taiki
parents: 8
diff changeset
63
7
9c08c451a8fc add figure and graffles.
taiki
parents: 5
diff changeset
64 \section{VMWare vSphere Client}
8
bc41d38f98d0 update pdf file
taiki
parents: 7
diff changeset
65 GUI で VM を操作することができ、豊富な機能と高度な操作が可能となっている。管理者は VMWare vSphere Client での管理を行っている。VM などの資源に対する操作の権限を細かく扱うことができるため、利用者に対して権限を配布することが可能である。しかし GUI が複雑なため、操作に習熟する必要がある。
bc41d38f98d0 update pdf file
taiki
parents: 7
diff changeset
66
bc41d38f98d0 update pdf file
taiki
parents: 7
diff changeset
67 また使用する OS が限定されており、主に Windows でのみ使用可能なため、Mac OS X を推奨している本学科では使用が困難である。
7
9c08c451a8fc add figure and graffles.
taiki
parents: 5
diff changeset
68
0
7a299eb01565 add files
taiki
parents:
diff changeset
69 \section{Kernel based Virtual Machine (KVM)}
7a299eb01565 add files
taiki
parents:
diff changeset
70
8
bc41d38f98d0 update pdf file
taiki
parents: 7
diff changeset
71 Linux 自体を VM の実行基盤として機能させるソフトウエアである。無償で利用可能なオープンソースとなっている。CPU の仮想化支援機能を必要とし、完全仮想化により仮想化環境を提供する Hypervisor である。
0
7a299eb01565 add files
taiki
parents:
diff changeset
72
7a299eb01565 add files
taiki
parents:
diff changeset
73 KVM は Linux のカーネルモジュールとして実装されており、OS が持つメモリ管理プロセスやスケジューリング機能を利用している。
7a299eb01565 add files
taiki
parents:
diff changeset
74 アーキテクチャは図\ref{fig:kvmarch}のようになっている。
7a299eb01565 add files
taiki
parents:
diff changeset
75
7a299eb01565 add files
taiki
parents:
diff changeset
76 \begin{figure}[htpb]
7a299eb01565 add files
taiki
parents:
diff changeset
77 \begin{center}
7a299eb01565 add files
taiki
parents:
diff changeset
78 \includegraphics[scale=0.7]{figures/kvmarch.pdf}
7a299eb01565 add files
taiki
parents:
diff changeset
79 \caption{KVM architecture}
7a299eb01565 add files
taiki
parents:
diff changeset
80 \label{fig:kvmarch}
7a299eb01565 add files
taiki
parents:
diff changeset
81 \end{center}
7a299eb01565 add files
taiki
parents:
diff changeset
82 \end{figure}
7a299eb01565 add files
taiki
parents:
diff changeset
83
7a299eb01565 add files
taiki
parents:
diff changeset
84 Intel-VT や AMD-V などの仮想化支援機能を持つプロセッサや BIOS の載っている PC 上で動作する。
7a299eb01565 add files
taiki
parents:
diff changeset
85
8
bc41d38f98d0 update pdf file
taiki
parents: 7
diff changeset
86 本学科のシステムは、KVM と VMWare ESXi の2つの Hypervisor を利用している。本学科全体の VM 管理は、主に VMWare ESXi が使われている。
0
7a299eb01565 add files
taiki
parents:
diff changeset
87
7a299eb01565 add files
taiki
parents:
diff changeset
88 \section{libvirt}
7a299eb01565 add files
taiki
parents:
diff changeset
89 VM 管理ツールである virsh を含む、 VM の制御を抽象化したライブラリである。 VM の情報を習得・操作することが可能な API 群である。
7a299eb01565 add files
taiki
parents:
diff changeset
90
7a299eb01565 add files
taiki
parents:
diff changeset
91 \begin{figure}[htpb]
7a299eb01565 add files
taiki
parents:
diff changeset
92 \begin{center}
7a299eb01565 add files
taiki
parents:
diff changeset
93 \includegraphics[scale=0.7]{figures/libvirt_arch.pdf}
7a299eb01565 add files
taiki
parents:
diff changeset
94 \caption{libvirt architecture}
7a299eb01565 add files
taiki
parents:
diff changeset
95 \label{fig:libvirtarch}
7a299eb01565 add files
taiki
parents:
diff changeset
96 \end{center}
7a299eb01565 add files
taiki
parents:
diff changeset
97 \end{figure}
7a299eb01565 add files
taiki
parents:
diff changeset
98
8
bc41d38f98d0 update pdf file
taiki
parents: 7
diff changeset
99 図\ref{fig:libvirtarch}のように、アプリケーションから libvirt API を呼び出すと、API に従って内部の VMM API もしくは資源管理 API を呼び出し、制御を行う。libvirt は VM の管理だけではなく、仮想ネットワーク、仮想ストレージも管理することができる。もともとは Xen に対して API を提供していたが、現在は多くの Hypervisor に対応している。
0
7a299eb01565 add files
taiki
parents:
diff changeset
100
7
9c08c451a8fc add figure and graffles.
taiki
parents: 5
diff changeset
101 \section{virsh}
9c08c451a8fc add figure and graffles.
taiki
parents: 5
diff changeset
102 virsh は libvirt に付属する VM 管理コンソールである。libvirt の API で VM を制御することができる。VM の起動や停止、情報の表示、ゲストが接続しているネットワークやデバイスの管理をすることができる。
0
7a299eb01565 add files
taiki
parents:
diff changeset
103
1
e117860b3064 add files
taiki
parents: 0
diff changeset
104 virsh をそのまま使用して複数のユーザを管理するためには、ユーザやグループの設定が必要である。またユーザやグループの設定を行ったとしても、ネットワークなどの操作をを制限することができない。
0
7a299eb01565 add files
taiki
parents:
diff changeset
105
8
bc41d38f98d0 update pdf file
taiki
parents: 7
diff changeset
106 \section{ie-virsh}
0
7a299eb01565 add files
taiki
parents:
diff changeset
107
8
bc41d38f98d0 update pdf file
taiki
parents: 7
diff changeset
108 virsh はグループの設定を行わない限り、root ユーザでのみ使用可能である。virsh を使う管理者以外のユーザ全てに root ユーザを使わせてしまうと、他のユーザに対しての不正な操作や、多量の資源取得、ネットワーク等の管理者がするべき操作を許してしまう。そのため ie-virsh の開発を行った。ie-virsh は virsh をラップすることで作成された VM 管理用のツールである。ie-virsh を使用することにより、他のアカウントの VM を操作させずに VM 所持者に操作させられる。
1
e117860b3064 add files
taiki
parents: 0
diff changeset
109
8
bc41d38f98d0 update pdf file
taiki
parents: 7
diff changeset
110 表\ref{table:ievirshfunc}が ie-virsh の機能である。
0
7a299eb01565 add files
taiki
parents:
diff changeset
111
8
bc41d38f98d0 update pdf file
taiki
parents: 7
diff changeset
112 \begin{tiny}
bc41d38f98d0 update pdf file
taiki
parents: 7
diff changeset
113 \begin{table}[ht]
bc41d38f98d0 update pdf file
taiki
parents: 7
diff changeset
114 \begin{center}
bc41d38f98d0 update pdf file
taiki
parents: 7
diff changeset
115 \caption{ie-virsh のコマンド}
bc41d38f98d0 update pdf file
taiki
parents: 7
diff changeset
116 \label{table:ievirshfunc}
bc41d38f98d0 update pdf file
taiki
parents: 7
diff changeset
117 \small
bc41d38f98d0 update pdf file
taiki
parents: 7
diff changeset
118 \begin{tabular}[t]{c|l}
bc41d38f98d0 update pdf file
taiki
parents: 7
diff changeset
119 \hline
bc41d38f98d0 update pdf file
taiki
parents: 7
diff changeset
120 define & XML の template を元に domain を作成 \\
bc41d38f98d0 update pdf file
taiki
parents: 7
diff changeset
121 \hline
bc41d38f98d0 update pdf file
taiki
parents: 7
diff changeset
122 undefine & define で作成した domain を削除 \\
bc41d38f98d0 update pdf file
taiki
parents: 7
diff changeset
123 \hline
bc41d38f98d0 update pdf file
taiki
parents: 7
diff changeset
124 list & define で作成した domain を一覧表示 \\
bc41d38f98d0 update pdf file
taiki
parents: 7
diff changeset
125 \hline
bc41d38f98d0 update pdf file
taiki
parents: 7
diff changeset
126 start & 指定した domain 名の VM を起動 \\
bc41d38f98d0 update pdf file
taiki
parents: 7
diff changeset
127 \hline
bc41d38f98d0 update pdf file
taiki
parents: 7
diff changeset
128 destroy & 指定した domain 名の VM を停止 \\
bc41d38f98d0 update pdf file
taiki
parents: 7
diff changeset
129 \hline
bc41d38f98d0 update pdf file
taiki
parents: 7
diff changeset
130 dumpxml & domain の XML を参照 \\
bc41d38f98d0 update pdf file
taiki
parents: 7
diff changeset
131 \hline
bc41d38f98d0 update pdf file
taiki
parents: 7
diff changeset
132 debug & linux kernel のコードを gdb で読む\\
bc41d38f98d0 update pdf file
taiki
parents: 7
diff changeset
133 \hline
bc41d38f98d0 update pdf file
taiki
parents: 7
diff changeset
134 \end{tabular}
bc41d38f98d0 update pdf file
taiki
parents: 7
diff changeset
135 \end{center}
bc41d38f98d0 update pdf file
taiki
parents: 7
diff changeset
136 \end{table}
bc41d38f98d0 update pdf file
taiki
parents: 7
diff changeset
137 \end{tiny}
0
7a299eb01565 add files
taiki
parents:
diff changeset
138
8
bc41d38f98d0 update pdf file
taiki
parents: 7
diff changeset
139 virsh ではネットワークやストレージの設定を行うことも可能である。しかし ie-virsh では管理者ではない使用者にはネットワークやストレージの設定ができないよう実装している。
bc41d38f98d0 update pdf file
taiki
parents: 7
diff changeset
140
bc41d38f98d0 update pdf file
taiki
parents: 7
diff changeset
141 また ie-virsh には virsh で使用できる、ネットワークの構成の操作などの管理者側がするべき操作はない。管理者でないアカウントでは操作できない。
0
7a299eb01565 add files
taiki
parents:
diff changeset
142
8
bc41d38f98d0 update pdf file
taiki
parents: 7
diff changeset
143 \section{ie-virsh による OS 管理システム}
bc41d38f98d0 update pdf file
taiki
parents: 7
diff changeset
144
bc41d38f98d0 update pdf file
taiki
parents: 7
diff changeset
145 ie-virsh によって複数のユーザの VM 管理を行っている。
bc41d38f98d0 update pdf file
taiki
parents: 7
diff changeset
146
bc41d38f98d0 update pdf file
taiki
parents: 7
diff changeset
147 また本学科では Operating System という授業を提供している。この授業では OS について学ぶ一環として VM について学習し、課題を提出させる。課題では VM の環境を学生が設定し、本学科の持つブレードサーバ上に VM をアップロードし、プログラムの実装や計測を行う。ie-virsh による OS 管理システムを使用し、 VM のアップロードから計測までの課題を行わせた。