annotate paper/libvirt.tex @ 31:e3fea1bef943

add s6 and slide file
author taiki <taiki@cr.ie.u-ryukyu.ac.jp>
date Sun, 04 May 2014 16:42:01 +0900
parents ccc2b9df6acb
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
19
ccc2b9df6acb add file
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 \section{libvirt}
ccc2b9df6acb add file
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
2 VM 管理ツールである virsh を含む、仮想マシンの制御を抽象化したライブラリである。VM の情報を習得、操作することが可能な API 群となっている。C 言語の API を持っており、それ以外の言語にもバインディングされている。
ccc2b9df6acb add file
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
3
ccc2b9df6acb add file
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
4 図\ref{fig:libvirtarch}は libvirt のアーキテクチャの概要である。アプリケーションから libvirt API を呼び出すと、API に従って内部の VMM API もしくは資源管理 API を呼び出し、制御する。
ccc2b9df6acb add file
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
5
ccc2b9df6acb add file
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
6 \begin{figure}[htb]
ccc2b9df6acb add file
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 \begin{center}
ccc2b9df6acb add file
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
8 \includegraphics[scale=0.6]{./images/libvirtarch.pdf}
ccc2b9df6acb add file
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
9 \end{center}
ccc2b9df6acb add file
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
10 \caption{libvirt architecture}
ccc2b9df6acb add file
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
11 \label{fig:libvirtarch}
ccc2b9df6acb add file
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
12 \end{figure}
ccc2b9df6acb add file
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
13
ccc2b9df6acb add file
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
14 libvirt は VM の管理だけでなく、仮想ネットワーク、仮想ストレージも管理することができる。もともとは Xen に対して API を提供していたが、2014 年現在、多くのハイパーバイザに対応している。本研究では KVM をハイパーバイザとした。
ccc2b9df6acb add file
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
15 libvirt は XML にパラメータを保存することができる。以下が XML に保存できるパラメータである。
ccc2b9df6acb add file
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
16
ccc2b9df6acb add file
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
17 \begin{itemize}
ccc2b9df6acb add file
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
18 \item VM 名(domain 名)
ccc2b9df6acb add file
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
19 \item 割り当てる CPU・メモリ
ccc2b9df6acb add file
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
20 \item ディスクの形式
ccc2b9df6acb add file
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
21 \item 起動オプション
ccc2b9df6acb add file
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
22 \item ネットワーク設定
ccc2b9df6acb add file
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
23 \item コンソール設定
ccc2b9df6acb add file
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
24 \end{itemize}
ccc2b9df6acb add file
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
25
ccc2b9df6acb add file
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
26 libvirt でこれらを管理することにより、ハイパーバイザの煩雑なオプションの管理をしなくてすむ。
ccc2b9df6acb add file
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
27
ccc2b9df6acb add file
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
28 \section{virsh}
ccc2b9df6acb add file
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
29 libvirt には virsh というコマンドラインインターフェイスがあり、libvirt の API でできる制御の殆どを virsh で制御できる。VM の起動や停止、情報の表示、ゲストが接続しているネットワークやデバイスの管理をすることができる。また、virsh を使用することでゲストを別のホストへ移行することも可能である。
ccc2b9df6acb add file
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
30 この virsh をラップし、複数の学生が学生自身の VM のみを操作できるように実装する。