Windows Server 2008の新機能の中で、最も注目を集めているものの1つが「Windows Server virtualization」(以下Server virtualization)と呼ばれるサーバの仮想化技術である。マイクロソフトは現在、Virtual Server 2005 R2というサーバの仮想化ツールを無償提供しているが、物理環境でのサーバ利用と比べると制限も多く、仮想化時代に向けてさらなる進化が必要だと認識している。これに対し、満を持して開発を進めてきたのがこのServer virtualizationである。
まずは、Virtual Server 2005 R2とServer virtualizationの違いから見ていくことにしよう。
こちらは、Windows Server 2005 R2による仮想化システムである。
このように、Virtual Server 2005 R2では、ハードウェア上にWindows Server 2003 R2などのホストOSをインストールし、そこにVirtual Server 2005 R2という仮想化ソフトウェアをインストールして仮想的なハードウェア環境を実現し、1台の物理サーバ上で複数のゲストOSを動作可能にしている。
サーバ台数の急激な増加と、それに伴って増え続ける運用コストの削減が企業の大命題になってしまったいま、すでにいくつかの事例が示しているように、Virtual Server 2005 R2による仮想化によっても、企業は多くの利益を享受できる。例えば、Virtual Server 2005 R2によって実現される仮想ハードウェアは、メーカーごとのハードウェアの違いを吸収するため、ハードウェアの標準化といった課題は仮想化によって大きく改善できる。
また、各アプリケーションにかかる負荷は時間帯によって波がある場合が多く、1つのアプリケーションの波が小さくなるタイミングで、ほかのアプリケーションの負荷が高まっても、仮想化システム全体ではそれらを許容できる場面も多いだろう。PCサーバは使用率が低いといわれているが、サーバの仮想化技術の進化によって、この欠点は大幅に改善するはずである。
さて、利用シナリオから見ればWindows Server 2005 R2で十分のように思える仮想化技術であるが、いくつかの欠点もある。最も分かりやすいものは、ホストOS上にソフトウェアで構築された仮想ハードウェア上でVMを動作させることから、どうしても性能的に不利になることだ。この問題は、Server virtualizationでは抜本的に改善される。
図から、Server virtualizationでは、アーキテクチャに大きな変更が加わったことが分かる。Server virtualizationはホストOSと仮想化ソフトウェアという位置付けではなく、ハードウェア上に仮想化のための薄い層を作ることで仮想環境を実現している。よりハードウェアに近いところで仮想環境を動かすことで、ハードウェアが持つリソースを最大限活用できるようになっている。このようにアーキテクチャは大きく変更されたが、仮想環境自体はVirtual Serverでも利用しているVHDフォーマットがそのまま利用可能なので、従来環境からの移行はスムーズに進められるはずだ。
またServer virtualizationでは、仮想環境をソフトウェアだけで実現するのではなく、Intel Virtualization Technology(Intel VT)や、AMD Virtualizaton(AMD-V)といったCPU搭載の仮想化支援機能を利用することで、より安定した仮想環境を実現できるようにしている。
最近のサーバは、こうした仮想化支援技術を提供されている場合が多いので、特に特殊なコンピュータを選ばなければServer virtualizationが使えないということではない。ただしテスト環境などで既存のコンピュータを利用する場合には、Server virtualizationに対応しているかどうかを事前に確認する必要はあるだろう。
さて、ここからは、Server virtualizationという新しい仮想化技術についてもう少し詳しく見ていくことにする。
まずは、サーバOSとServer virtualizationとの関係について考えてみよう。前出の図にあるとおり、Server virtualizationは、仮想化を実現するための薄い層を持っているが、このHypervisorという薄い層だけでServer virtualizationが動きだすわけではない。Server virtualization環境においては、この薄い層に加えて、ハードウェア・ドライバの管理や各チャイルド(子)パーティションを管理するために、ペアレント(親)パーティションという仮想OS環境が最低1つ必要であり、このペアレント・パーティションで稼働するOSがWindows Server 2008ということになっている。先ほどのServer virtualizationの図の中でも、一番左にペアレント(親)パーティションが動作しているのが確認できるだろう。
もう少し深く見ると、チャイルド・パーティション上で動作する仮想OSには2種類ある。1つはServer virtualization対応OS(Windows Server 2008だけでなく、Windows Server 2003も対応予定)であり、ペアレント・パーティションとの連携がスムーズなのに加えて、仮想環境でありながら、よりハードウェアに近い状態で稼働できる。そしてもう1つは、Server virtualizationに非対応なOSだ。こちらは、Virtual Server 2005 R2のようにエミュレートされた仮想ハードウェア上で稼働することになるため、オーバーヘッドが発生することを理解しておく必要がある。これらを図にまとめると次のようになる。
動くかどうか、という意味では、仮想環境上ではさまざまなOSが動く。ただし動くからといっても、OSによって動作条件は同一でないことは理解しておく必要がある。パフォーマンス的に最も有利な組み合わせは、仮想環境を実現するサーバOSと、仮想環境で動作するゲストOSの双方に、Windows Server 2008のようにServer virtualizationに対応したOSを利用することだ。
Server virtualizationへの対応/非対応は、Windows OSに限った条件ではない。例えば現在マイクロソフトは、相互互換性向上を目的として、XenSource社との提携を発表している(*1)。この提携によって、Xenに対応したLinux カーネルであればServer virtualization対応OSとして稼働させることも可能になる。このようにServer virtualizationは、Windows OSに限定されない効率的な仮想環境として機能する。
*1 「マイクロソフトと XenSource が、Windows Server “Longhorn” Virtualization に向けた相互運用テクノロジを共同開発」マイクロソフト・プレスリリース2006年7月19日
さらにServer virtualizationでは、次のようないくつかの新機能が実装される予定である。
■ページ・シェアリング(ページ共有)
1つのServer virtualization上で、同一のOSが複数実行されている場合、メモリ上に同一の状態が複数できてしまうことになるが、このページ・シェアリングを利用すれば、この場合でも一部のメモリが共有可能になる。これにより、メモリ・リソースの効率利用が可能になるわけだ。ただし、利用する物理メモリ量を抑える代わりに、共有制御などのオーバーヘッドが発生するため、パフォーマンス要件の厳しい環境での利用は難しいだろう。このような場合は、各仮想OSに対して安定的にリソースを提供すべく、メモリ・リザーブ機能により、割り当てメモリ量を固定してしまうこともできる。限られた物理リソースの中で多くの仮想OSを効率的に稼働させるか、それとも各仮想OSがフルにパフォーマンスを発揮させるか、どちらにするか選択すればよい。
■Volume Shadow Copy Services(VSS)
Volume Shadow Copy Services(VSS)は、仮想環境をスナップショット・バックアップする機能である。この機能を利用して、仮想環境にチェック・ポイントを複数設けておくことができる。チェック・ポイントを作ったタイミングではスナップショット・バックアップが取られているため、ある時点までロールバックさせるといった運用も可能である。テスト環境としての柔軟性もさることながら、いざというときに以前の環境に戻せるため、運用管理コスト低減を目指す多くの企業にとって、非常に有効な機能となるだろう。
Server virtualizationについてはかなり多くのスペースを割いて説明してきた。このServer virtualizationへの進化とマイクロソフトの仮想化に対する思い入れを見ていると、サーバを仮想化しようという単純な話ではなく、プラットフォームという概念そのものを見直そうとしているように思えてならない。少し極端すぎるかもしれないが、すでに1台の物理マシン=1つのサーバOSという関係性は崩れており、たとえ1台であっても、スペックの高いハードウェアであれば、多くの仮想OSを動作させることも、物理サーバが持つリソースを自由に仮想OSに割り当てることもできる。このServer virtualization を実現するサーバOSは、Server Core環境を含むx64に対応したWindows Server 2008のみとなっており、膨大なメモリ空間の利用が想定されているのも先を見据えてのことだろう。ちなみに、Server virtualizationでは、64bitの仮想OSも動作するため、たとえ多くのメモリを必要とするアプリケーションであっても、仮想化が選択肢の1つとなるはずだ。
このServer virtualizationは、Windows Server 2008の役割(ロール)の1つとして利用可能になる予定であるが、Windows Server 2008の最初の出荷から、180日(半年)以内に提供すべく開発が進められている。まだ一般にベータを提供するには至っていないのだが、仮想化フォーマットはVirtual Server 2005 R2から変更されていないため、仮想化に関心があるなら、いまのうちからVirtual Server 2005 R2に慣れておいていただくとよい。そして、技術的なことだけでなく仮想化のために変更されたライセンスについても、自社にとってメリットがあるかどうかをご確認いただければ幸いである。
第1回である今回は、Windows Server 2008のベース・システムに注目した。次回は、Windows Server 2008で追加されたサービス群について解説する予定である。
Copyright© Digital Advantage Corp. All Rights Reserved.