サーバ仮想化を実現する技術には、OSレベルの仮想化と、「ハイパーバイザ」というアーキテクチャを使った仮想化方法に大別される。OSレベルの仮想化は、物理サーバ上で稼働する1つのOS(ホストOS)の機能によって仮想化を実現する。このため、「ホストOS方式」と呼ばれる(
図2)。ホストOS方式では、ホストOSがハードウェアリソースを分割したり、仮想サーバの制御を担当する。代表的な製品にはサン・マイクロシステムズの「Solaris Containers」やマイクロソフトの「Viturl Server 2005」(いずれも旧製品)などがある。
図2 OSレベルの仮想化のしくみ |
---|

ホストOSを必要とし、その上位の仮想レイヤー上にゲストOSを動作させる |
この方法は、パフォーマンスが比較的高く、コストも比較的低いのがメリットだが、ゲストOSとホストOSをまったく同じ種類にしなければ稼働できないなど、運用の柔軟性に欠ける。このため、現在は「ハイパーバイザ」による仮想化が主流となっている。今日では、サーバ仮想化と言えばハイパーバイザによるもの、と考えて差し支えないだろう。
ハイパーバイザによる仮想化方式には、2つの方式がある。1つは、ハイパーバイザ上に完全に独立した仮想マシンを置き、そこにサーバOSを組み込む「完全仮想化(フル・バーチャリゼーション)」アーキテクチャだ。このアーキテクチャでは、ハイパーバイザはハードウェアコントローラと周辺機器のアクセスを仲介し、どのような種類のOS(ゲストOS)も修正無しに組み込むことができ、仮想OSであることを意識せずに運用が可能である。
しかし、完全仮想化ではハイパーバイザは、ハードウェア上でホストOSとして機能し、大きな負荷がかかり、パフォーマンスに影響する場合がある。この負担を軽減するための手段として考え出されたのが、「疑似仮想化(パラ・バーチャリゼーション)」というアーキテクチャだ(
図3)。
図3 ハイパーバイザによる仮想化のしくみ(完全仮想化と疑似仮想化) |
---|

完全仮想化では、完全な仮想マシン上にゲストOSを動作させることができる。疑似仮想化では、OSの修正が必須となる |
疑似仮想化では、ゲストOSを修正してハイパーバイザと連携/協調するようにし、ゲストOSが仮想化環境を認識する形で動作する。このため、ハイパーバイザに負荷が集中する完全仮想化よりもパフォーマンスが向上する。BSD、Linux、Solarisといった、修正可能なオープンソースOSをゲストOSとして利用する場合に有効な方法だ。なお、ハイパーバイザ方式の仮想化製品のほとんどが、完全仮想化/疑似仮想化の双方に対応している。
【次ページ】主要なサーバ仮想化製品一覧