このページの本文へ

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

サーバ仮想化の仕組みと種類を学ぶ

ホストOS型とハイパーバイザ型の違いを知る

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

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

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

2つの仮想化ソフト

 マシンを仮想化するために必要なソフトウェアは、大きく「ホストOS型」と「ハイパーバイザ型」の2つに分類される(図6)。この2つの違いについて理解しよう。

図6 ホストOS型とハイパーバイザ型の違い

ホストOS型の仮想化

 ホストOS型の仮想化は、WindowsやMac OS X、LinuxといったOSの上で仮想化ソフトを実行し、そこで仮想マシンを作成して実行する方法である。仮想化のための専用のOSを用意する必要がなく、アプリケーションと同じように手軽に実行できるため、別のマシンを用意せずに他のOSを新たにインストールしたい場合や、実験・検証環境などの用途に向いている。また、無償で利用できるソフトが多いのも人気の1つだ。

 最近ではMacintoshを利用する人が増え、Windowsも同時に利用したいというニーズから、Parallels DesktopやVMware Fusionなどの仮想化ソフトが人気となっているが、これらもホストOS型による仮想化に分類される(画面1)。

画面1 MacintoshのParallels上で起動するWindows

 このホストOS型の欠点として、実行時のオーバーヘッドが大きいため、仮想マシンの動作速度が遅くなってしまう点がある。仮想化ソフトによっては、専用のドライバやツール類が標準で用意されているので、これらをインストールすることによって多少パフォーマンスが改善される。

 製品例としては、先に挙げたMacintosh用の仮想化ソフトのほかに、QEMU、VMware Server/Workstation/Player、VirtualBox、Virtual Server/PCなどがある。

ハイパーバイザ型の仮想化

 ハイパーバイザ型は、ハードウェアのBIOSから直接仮想化ソフトを起動して、その上で仮想マシンを実行するタイプを指す。ホストOSの機能を介さずに仮想マシンの実行が行なえるため、ホストOS型に比べてオーバーヘッドが小さく済む。このため、パフォーマンスを必要とするサーバの仮想化でおもに用いられており、近年のサーバ仮想化の主流となっている

 ハイパーバイザ型の場合、仮想マシンの実現方法に「完全仮想化」と「準仮想化」の2通りの方法が存在する。完全仮想化は、文字通り物理マシンを完全に仮想マシンとして実現する方法で、WindowsなどのOSに手を加えることなくそのまま仮想マシンで実行することが可能である。一方の準仮想化は、OSのカーネル内で行なわれる物理マシンに対するシステムコールに手を加え、ハイパーバイザ固有の「ハイパーバイザコール」を呼び出す形に修正して実行する方法だ。ハイパーバイザの機能を直接利用するため、オーバーヘッドを抑えて仮想マシンを高速に実行することができる。

 また、ハイパーバイザの実装方法には、モノリシックカーネル型とマイクロカーネル型がある。両者には、構造的にデバイスドライバを実行する位置に違いがある。モノリシック型ハイパーバイザの場合、デバイスドライバはハイパーバイザ層で実行されるため、ハイパーバイザ専用のドライバを開発・用意する必要がある。一方、マイクロカーネル型のハイパーバイザは、管理用OS(Xenのドメイン0、Hyper-VのペアレントOSがこれに該当する)のデバイスドライバを流用する。管理OSはWindowsやLinuxであるため、通常のOS用のデバイスドライバを用意するだけでそのまま利用可能になる。VMware ESXやESXiはモノリシック型ハイパーバイザ、XenやHyper-Vはマイクロカーネル型ハイパーバイザとなっている。

(次ページ、「ハードウェア構成のポイント」に続く)


 

この連載の記事
ピックアップ