PR

【問題】
 Virtual Server 2005 R2で仮想サーバーを4台構成し,それぞれA,B,C,Dとした。この時,AとB,CとD,それぞれの組み合わせのみを直接通信可能としたい。また,2組は外部のルーターを経由することで通信可能としたい。どのように構成すれば良いか。

A. AとBはNATを割り当て,CとDは外部ネットワーク・インターフェースを割り当てる。
B. AとBは内部ネットワークを割り当て,CとDは外部ネットワーク・インターフェースを割り当てる。
C. ホスト・コンピュータにループバック・アダプタを2つ追加し,AとB用,およびCとD用に割り当てる。
D. 全ての仮想サーバーに同じ外部ネットワーク・インターフェースを割り当て,AとB,およびCとDに対してそれぞれ固有のVLANタグを指定する。

正解:C

【解説】
 Windows Serverで仮想サーバーを使う場合,以下のような利点がある。

  • 性能に余裕のあるサーバーを効果的に利用することで,ハードウエア・コストを節約できる。
  • 単純な構成のサーバーだけで構成することで,トラブルの切り分けが容易になる。
  • Windows Server 2003および2008のEnterprise Editionでは4台の仮想サーバー専用ライセンスが付属するため,サーバー・ライセンス・コストを節約できる。
  • 消費電力や設置場所の節約ができる。

 しかし,複数の仮想サーバーを1台の物理サーバー(ホスト)に構築した場合の短所も存在する。

  • 物理メモリーの不足によって十分な性能が出ない。
  • 仮想化ソフトウエアのオーバヘッドが大きく,十分な性能が出ない。
  • 物理サーバーの障害によって,すべての仮想サーバーの動作が停止してしまうリスクがある。
  • 1台の仮想サーバーの障害によって,物理サーバーのCPUパワーを極端に消費してしまうリスクがある。
  • 複数の物理ネットワークに設置したサーバーの集約は困難。

 ただし,これらの問題は近年急速に改善されつつある。

 まず,x64プロセッサのサポートによって,利用可能なメモリー空間が大幅に増えた。また,インテル,AMD両プロセッサの仮想化支援機能を積極的に使うことで,仮想化によるオーバヘッドは減少している。さらに,Windows Server 2008の仮想化機能であるHyper-Vは,OSの構造を変更することで,さらに高い性能を実現する。

 物理サーバーの障害に対しては,クラスタ技術など,さまざまな高可用性実現機能が提供される予定である。また,Virtual Serverには仮想マシンが使うCPUリソースの上限値を設定する機能がある。こうした機能を使えば,多くの問題は解決するだろう。

 さて,設問に登場するネットワークの問題(図1)は,どう解決すべきだろうか。

図1●仮想サーバー間の通信を制御したい
図1●仮想サーバー間の通信を制御したい

 Windows Server 2008の仮想化機能である「Hyper-V」では,仮想マシンのLANインターフェースにVLAN(仮想LAN)を設定できる。VLANを構成すれば,同じVLANタグ同士の仮想マシンしか通信できないように設定できる。物理ネットワーク・インターフェースとは接続されているので,外部通信も可能である。ただし,Virtual ServerにはVLAN機能がない。そのため選択肢Dは誤りである。

 「内部ネットワーク」や「NAT(ネットワーク・アドレス変換)」機能を使うこともできない。まず,内部ネットワークは,仮想マシン間でのみ利用可能なネットワークで,外部との通信はできない。従って,選択肢Bは誤りである。NATを使った場合は,仮想サーバー間の通信ができなくなる上,外部ネットワークからの着信ができないため,自由な通信を妨げる。つまりAも誤りである。

 ループバック・アダプタは,仮想的なネットワーク・インターフェースである。物理マシンにループバック・アダプタを追加し,仮想マシンから利用することで,仮想マシンのグループ化が実現できる。もちろん,そのままでは,外部と通信することはできないので,物理マシンの「ルーティングとリモートアクセス」の機能を使って,ルーティングを行う(図2)。このようにすることで,仮想マシン間専用のネットワークを,外部ネットワークに接続できる。

図2●ループバック・アダプタを使ったルーティング
図2●ループバック・アダプタを使ったルーティング

 Windows Server 2008の仮想化機能といえば,Hyper-Vに目を奪われがちであるが,Hyper-Vは2008年2月現在では完成していない。また,x64プロセッサかつハードウエア仮想化が必要などいった制約がある。ハードウエアに制約のないVirtual Serverもあわせて考えたい。