PR

【問題】
 Windows Server 2008のサーバー仮想化機能について,正しく説明したものはどれでしょうか。

A. 仮想化機能は,サービスとして構成されるため,仮想化基盤となる物理サーバーが安定して動作する
B. 仮想化機能は,プラグ&プレイ・ドライバとして構成されるため,仮想化機能の有効化/無効化が簡単にできる
C. 仮想化機能は,物理サーバーと仮想サーバーの中間層に位置する特殊なドライバとして構成されるため,仮想化のオーバーヘッドを最小限に抑えられる
D. 仮想化機能は,Windows Server 2008の一部として構成されるため,すべてのWindows Server 2008に仮想化機能が搭載される

正解:C

【解説】

 Windows Server 2008の仮想化機能(Hyper-V)は,物理サーバーと仮想サーバーの中間層に相当する「ハイパーバイザー」が担当する。ハイパーバイザーは,仮想化を支援する特殊なモードで動作するドライバであり,仮想サーバーに対してメモリーやCPUの割り当てなどを行う。したがって選択肢Cが正解である(図1-1)。

図1-1●Hyper-Vの構造
図1-1●Hyper-Vの構造

 Hyper-Vでは,すべてのOSが仮想化されるが,最初にインストールするOSを「親パーティション」と呼び,他の仮想マシン(子パーティション)の管理など,特別な役割を持つ。

 Hyper-Vをインストールすると,既存のWindowsにハイパーバイザー層が追加される。この構成変更はWindowsの基本部分にかかわるため,Hyper-Vの役割を追加した後は再起動が必要である。しかも,後述するように,ハイパーバイザーは一般的なドライバと異なる動作をするため,選択肢Bは不正解である。

 ハイパーバイザーの動作について説明しよう。ハイパーバーザーは,プロセッサの備える特殊なモードで動作する。一般に仮想記憶をサポートするCPUは,2つあるいは4つの動作モードを持つ。Intelのプロセッサであれば0~3の,計4つのモードを持つ(ただしWindowsやUNIXなど多くのOSは,0と3の2つのモードしか使わない)。モードには上位下位の関係があり,上位のモードから下位のモードへのアクセスは許可されるが,下位のモードから上位のモードへのアクセスは制限される。この動作はリングに見立てられる(図1-2)。

図1-2●CPUの動作モード(リング)
図1-2●CPUの動作モード(リング)

 ハイパーバイザーは,通常のリングとは別に設定された動作モードで動作する。この動作モードは,最上位の「リング・ゼロ」よりも高いレベルという意味で「リング・マイナス1」と呼ばれることがある。ただし,ハイパーバイザーの動作モードは,リング構造とは別の仕組みであり,正確には「仮想化支援モード」と呼ぶのが正しい。仮想化支援モードのことをIntelは「VMX root」,Advanced Micro Devices(AMD)は「SVM host」と呼んでいる。

 ハイパーバイザー形式の仮想化は,動作効率が良いので,今後の主流になると考えられる。ただし,十分な速度を得るには,VMX rootやSVM hostのようなハードウエア仮想化支援機能が必須である。Hyper-Vを使うには,仮想化支援モードが搭載されたx64アーキテクチャが必須なので,利用可能なハードウエアが限定される。注意してほしい。

 選択肢Aは,Virtual Serverの動作モードを説明したものだ。Virtual Serverは,サービスとして構成されるため,ハードウエア機能に依存しない。しかし,物理コンピュータ(ホスト)上での一般的なサービスとして動作するため,動作効率が悪い。

 例えば,メモリー割り当てを考えてみよう。仮想サーバー上の仮想メモリーは,仮想サーバー上の物理メモリーにマッピングされる。ところが,仮想サーバーの物理メモリーは,実はVirtual Server上の仮想メモリーである。そのため,Virtual Server(物理マシン)の仮想メモリーから,物理マシンの物理メモリーへ再変換する必要がある(図1-3)。CPUのハードウエア仮想化機能を使えば,この手間は大幅に削減されるが,それでも変換のためのオーバーヘッドはゼロではない。そのため,高性能なシステムを実現するのは困難である。

図1-3●メモリー変換に要するオーバーヘッドの概要
図1-3●メモリー変換に要するオーバーヘッドの概要

 Hyper-Vは,Windows Server 2008完成後180日以内に提供される予定である。RC0版では,英語版Windows Server 2008に含まれる拡張機能をインストールすることで初めて有効になる。Hyper-VなしのWindows Server 2008も存在するため選択肢Cは不正解である。