【 ここから本文 】
- TOP
- > Topics : ITマネジメント
- >
ITマネジメント
ソーシャルブックマークに登録 :
印刷用ページの表示
サーバ仮想化技術を整理する
完全仮想化か、擬似仮想化か、それともOSレベルの仮想化か
(2007年03月01日)
今日、「サーバの仮想化」は、企業にとってもはや必須の技術となったと言っても過言ではない。仮想化によって処理能力の増強を図れば、新しいハードウェアを購入する必要がない。それはすなわち、ハードウェア購入費という支出を抑えることであり、データセンターのスペースと電気代と冷却対策コストを節約するということでもある。物理的なサーバではなく仮想サーバを選ぶということは、企業に財務の健全性をもたらし、IT支出を抑制する効果があるということなのだ。本稿では、そういったメリットを持つ仮想化技術をアーキテクチャの面からあらためて整理してみたい。
ニール・マクアリスター
InfoWorld オンライン米国版
仮想化の技術、仮想化というコンセプト自体は決して目新しいものではない。実際、すでに1970年代には、メインフレーム・コンピュータは複数のOSインスタンスを同時に実行していた。これが仮想化の走りということになる。その後、ソフトウェアとハードウェアが進化したとことにより、仮想化はさらに身近な技術となった。現在では、業界標準となっているような一般的なサーバでも仮想化を行うことが可能である。
今、市場には、プロプライエタリのものからオープンソースのものまで、データセンター・マネジャーが選ぶのに苦労するほどたくさんの仮想化ソリューションがあふれている。ここでは、それを仮想化に対するアプローチの方法(アーキテクチャ)によって「完全仮想化」「擬似仮想化」「OSレベルの仮想化」の3つに分類し、それぞれの技術的な特徴を紹介したい。
完全仮想化(フル・バーチャライゼーション)
仮想化ソリューションの中で最も普及しているのが、「ハイパーバイザ」と呼ばれるアーキテクチャを使った「完全仮想化」だ。これは、仮想サーバとハードウェアとの間に抽象化レイヤ(仮想化レイヤを実装した専用カーネル)を配置するというアーキテクチャである。
このアプローチを採用している商用製品としてはヴイエムウェアの「VMware」やマイクロソフトの「Microsoft Virtual PC」があり、Linux向けオープンソース製品としては「KVM(Kernel-based Virtual Machine)」がある。
| 図:3つのサーバ仮想化ソリューションの違い |
ハイパーバイザはCPU命令に割り込み、ハードウェア・コントローラと周辺機器へのアクセスを仲介する。事実上、どんなOSでも修正せずに仮想サーバ上にインストールすることができ、そのゲストOSは仮想環境であることを意識せずに稼働する。
なお、このアーキテクチャの欠点は、ハイパーバイザによってプロセッサに大きなオーバーヘッドがかかることだ。
完全仮想化環境におけるハイパーバイザは、ハードウェア上で直接稼働し、ホストOS(カーネル)として機能する(別な言い方をすれば、WindowsやLinuxといった一般のホストOSを必要としない)。そのハイパーバイザが管理する仮想サーバ上でゲストOSが走ることになるわけだ。
擬似仮想化(パラ・バーチャライゼーション)
完全仮想化では、さまざまな仮想サーバを管理し、かつそれぞれを独立して稼働させているハイパーバイザからの要求がすべてプロセッサに集約されることになる(その際、ゲストOSは一切仮想化には関知しない)。
この負担を軽減させるための手段の1つが、ゲストOSに手を加えて仮想化環境を認識させるようにしたうえで、ハイパーバイザと連携させることだ。これが、「擬似仮想化」と呼ばれるアプローチである。
この擬似仮想化方式を採用している代表的な製品がオープンソースの「Xen」である。Xenでは、カーネル部分に変更を加えることによって初めてXenハイパーバイザの仮想サーバ上でゲストOSが稼働できるようになる。このため、BSD、Linux、SolarisといったオープンソースOSはサポートするが、修正を加えられないWindowsなどのプロプライエタリ・システムの仮想化には適していない。
擬似仮想化の優位性は「パフォーマンス」にある。ハイパーバイザと連携する擬似仮想化サーバは、仮想化されていないサーバとほぼ互角の性能を発揮する。マイクロソフトとヴイエムウェアが、それぞれ自社製品を補完すべく擬似仮想化技術に取り組んでいる状況を見れば、それが十分に魅力的な技術であることが分かろうというものだ。
OSレベルの仮想化
OSレベルの仮想化とは、文字どおりOS(ホストOS)の機能によって仮想化を実現するアーキテクチャである。ハイパーバイザ・レイヤは存在せず、ホストOSが自らハードウェア・リソースを分割したり各サーバを独立して走らせたりする。すべての仮想サーバが同一のOS上で稼働するという点が、ほかの仮想化技術との大きな違いだ(ただし、各インスタンスは固有のアプリケーションとユーザー・アカウントを保有する)。
この技術を採用している製品としては、「Solaris Containers」やLinux対応の「Virtuozzo/OpenVZ」などがある。
このアーキテクチャの欠点は「柔軟性」に欠けるところだが、その反面、「ネイティブ・スピードの向上が図れる」という利点もある。また、すべての仮想サーバに横断的に単一の標準OSが適用されるため、異種環境に比べて管理が容易になるという点も、メリットとして挙げられる。


























