Xen (仮想マシンモニタ)
出典: フリー百科事典『ウィキペディア(Wikipedia)』
Xen は オープンソースの仮想マシンモニタであり、複数のOSを制御するプログラムである。 OSからハードウェアを隠蔽し、複数のOSを、同時に仮想マシンモニタの上で実行することができる。 OSは、仮想マシンモニタから与えられた仮想マシン環境の中で動作する。
目次 |
[編集] Xenの特徴
[編集] 仮想化モデル
[編集] 準仮想化(paravirtualization)
Xenは準仮想化と呼ばれる実装手法を標準採用している。 実在のハードウェアを完全にエミュレートする代わりに、仮想マシン環境を実現するのに都合の良い仮想的なハードウェアを再定義する。 この仮想ハードウェアは、実在のハードウェアに似ているが、操作をするためにはハイパーバイザコールを呼び出す必要がある。 Xenはこのハイパバイザコールの要求に応じて、仮想マシン環境に変更を加える。
この実装手法はエミュレーションのオーバーヘッドを最小限に抑えることができるため、性能面で大きなアドバンテージがあるが、 OSをXen仮想ハードウェア上に移植する必要がある。
[編集] 完全仮想化
Xenはハードウェアの完全仮想化機能も提供している。この機能を利用すると、実ハードウェア用に用意されたOSをそのままXen上で動作させることが可能となる。
この完全仮想化機能が提供する仮想マシン環境内のOSは、自分は特権モードで動作しており完全に物理ハードウェアを支配していると思っている。 しかし実際には仮想ハードウェアを操作している。OSが仮想ハードウェアを制御する命令を実行したとき、CPUはそれを検出し、例外のような ものが発生してXenに制御を渡す。制御を渡されたXenは、OSが行おうとした処理を分析し、仮想ハードウェアの動作をエミュレートする。 完全仮想化の環境は、準仮想化方式に比べると、エミュレーションのためのコストが大きくなるが、ソースコードに手を入れることができない WindowsなどのOSも動作させることができる。
[編集] デバイスドライバのモデル
Xen自体は、デバイスドライバを持たない。Xenの上で複数のドメイン(仮想マシン環境をXenではドメインとよぶ)が動作するが、そのうちの1つに 特別な役目を担わせ、そのドメインをドメイン0と呼ぶ。Xenでは、物理デバイス制御とXenのマネージメント機能をこのドメイン0上の OSに任せている。この仕組みにより、Linux.が動作するハードウェアであればどこでもXenによる仮想マシン環境を利用することができる。
[編集] 動作環境
現在、FreeBSD、Linux、NetBSD、Plan 9がXenの上で動作する。SunからはSolarisの移植が発表されている。Windows XP SP2も動作が確認された。Linuxディストリビューションには標準でXenを含むものがある。例えばFedora Core 4やXenoppix、SUSE Linux 10.0である。RHEL5でのサポートも表明されている。
Xen3.0.2はP6以上のCPUで動作する。完全仮想化機能を用いるためにはインテル製のVT対応CPU、もしくはAMDのAMD-V対応CPUが必要となる。また、IA64やPowerPC用のXenの開発も進んでいる。