このページの本文へ

前へ 1 2 3 4 5 次へ

すっきりわかった!仮想化技術 第3回

サーバに使われる仮想化について知ろう

実行効率の高いハイパーバイザ型の仮想化ソフト

2009年05月15日 06時00分更新

文● 大内明/日本仮想化技術株式会社 

  • この記事をはてなブックマークに追加
  • 本文印刷

マイクロソフトのHyper-V

 それでは、代表的な仮想化ソフトウェアを見ていこう。Hyper-Vは、Windows Server 2008専用の仮想化ソフトウェアである(図7)。

図7 Hyper-Vの構造

 前述のように、Hyper-Vでは仮想マシンの上で動くWindows Server 2008を使ってデバイスへのアクセスなどを行なう。この特別扱いされた仮想マシンを「ペアレントパーティション」と呼ぶ。それ以外のOSが稼働する仮想マシンは「チャイルドパーティション」だ。

 このHyper-Vは、ハイパーバイザコールなどによるメモリやCPUの仮想化機能(準仮想化のための機能)として、「Enlightenments」と呼ばれる機能を持っている。これは、メモリマネジメント機構へのアクセスなどをハイパーバイザに依頼するハイパーコールと、それを処理する機能などを総称したものである。

 また、外部記憶やディスプレイ制御などのために、仮想マシン間で高速にデータを転送するための「VMBus」という仮想的なバスを用意している。デバイスのアクセスについては、ゲストOSに組み込んだ「VSC(Virtualization Service Client)」が受け付ける。そして、VMBusを介してペアレントパーティションにある「VSP(Virtualization Service Provider)」と通信を行なって処理している。

仮想化で一歩先行くVMware ESX

 VMware ESX(図8)は、それ自体がデバイスドライバを持ち仮想化を行なっている仮想化ソフトウェアだ。仮想マシンごとに用意される「VMM(Virtual Machine Monitor)」と「VMkernel」、そしてデバイスドライバなどから構成されている。

図8 VMWare ESXの構造

 ヴイエムウェアは仮想化支援機能のないプロセッサ時代から仮想化ソフトウェアを提供しており、完全仮想化を得意としていた。この基本技術はバイナリトランスレーションと呼ばれるもので、プログラムコードを書き換えることにより、ハードウェアによる仮想化支援機能を持たないプロセッサでも仮想化を実現していた。しかし、現在ではプロセッサが持つハードウェア仮想化支援機能を利用できるようになった。さらに、準仮想化もサポートしてより効率的な仮想化を実現している。

 VMware ESXは、純粋なベアメタルアーキテクチャのハイパーバイザといえる。VMwareの準仮想化のインターフェイスは「VMI(Virtual Machine Interface)」と呼ばれ、これに対応したLinuxなどをVMI-Linuxなどと呼ぶ。

 前述の通り、PCアーキテクチャの仮想化ソフトウェアとして古くから使われているため、対応するサーバ用ハードウェアも多い。

 VMware ESXは、VMware Infrastructureと呼ばれる製品群の1つである。先頃、新バージョンの「VMware vSphere 4」も登場した。また、最近ではメモリ占有量の小さいVMware ESXiも無償で提供<されている。VMware Infrastructureには、仮想マシンを停止させずに他のマシンで実行しているESXへと移行させる「VMotion」や、クラスタ内で仮想マシンを負荷の低いマシンへと移動させる「VMware DRS」などが用意されている。

オープンソースのXen

 Xenはオープンソースとして開発が続けられている仮想化ソフトウェアであり、もともとはケンブリッジ大学の研究プロジェクトとしてスタートした(図9)。開発の中心はプロジェクトメンバーが創立したゼンソースだったが、同社は2007年にシトリックス・システムズが買収しており現在ではその一部門となっている。Xen自体はGPLで公開されるオープンソースソフトウェアのままであり、Xen.orgが配布などを行なっている。

図9 Xenの構造

 Xenは当初準仮想化を前提にした仮想化ソフトウェアとして開発されたが、そのあと完全仮想化にも対応している。ただし、このためにはプロセッサに仮想化支援機能(Intel VT、AMD-V)が必要になる。

 Xenでは仮想マシンを「ドメイン」と呼び、ドメイン0で実行されているゲストOSがハードウェアアクセスを行なう。それ以外のドメインをドメインUという。ドメインUには「Front-Endデバイスドライバ」が組み込まれており、Xenハイパーバイザ経由でドメイン0の「Back-Endモジュール」と通信してI/O処理を行なう。

 なお、ゼンソースはマイクロソフトと仮想化で提携しており、Hyper-V上でXen対応のゲストOSを動作させるために必要なモジュールなどが提供されている。

前へ 1 2 3 4 5 次へ

カテゴリートップへ

この連載の記事