Windows Server 8のIISとHyper-Vの強化点を探る
IISはWebSocketに対応!Hyper-Vは仮想マシン数を拡大
2011年10月19日 06時00分更新
Windows Server 8は、Webサーバー「Internet Information Server(IIS)」と仮想環境「Hyper-V」が強化されている。また、Windows Server 8自体の実行効率が高まっているため、その上で動作するIISやHyper-Vもその恩恵を受ける。
IISとHyper-Vについて、現時点ではホワイトペーパーなどの詳細な資料は公開されておらず、Build Windowsのセッション資料のみが唯一のドキュメントである。なお、MSDNサブスクリプションがあれば、Windows Server 8のDeveloper Preview版をダウンロードすることが可能だ。
ただ、リリース時期は、Windows 8出荷後の2013年以降が予想されており、カーネルなどの基本部分はWindows 8から推測が可能だが、IISやHyper-Vなどについては、最終的にどのような仕様になるのかはまだわからない部分が多い。
IISは、バージョンとしては、Windows側と同じくVer.8.0になる予定らしい。また、Hyper-Vのバージョンは、カーネルと同期しているため、Windows Server 8/Windows 8と同じVer.6.2となる。ただ、どちらも、Windows Serverと一体であるため、Windows Server 8のIIS/Hyper-Vとして識別できる。
効率が向上するInternet Information Server 8
Buildでは、IISそのものについてのセッションはなく、関連するASP.NETやWeb関連技術のセッションから、情報を拾うしかない。
現時点で判明しているのは、
- WebSocketへの対応
- ASP.NETでの非同期APIコール
などである。また、前回解説したように、ネットワークアダプタの機能強化があるため、結果的にIIS運用時にネットワークがボトルネックになるような場合の解決策が提供される。また、IISを経由して、データアクセスを行なう場合の効率化や、次期SQL Serverである「Denali」との連携などでも効果が期待できる。
判明している機能の1つである「WebSocket」は、クライアント、サーバーでリアルタイムに通信を行なうためのHTML5で定義された仕様だが、現在では、HTML5とは独立した仕様になっている。これまでもWebクライアントとサーバー間の通信を定義する仕様はいくつかあったが、サーバーやクライアントに依存しており、特定の製品の組み合わせでのみ実現が可能だったが、WebSocketは、W3Cで規格化され、広く普及すると予想されているため、標準的な通信メカニズムとなる可能性が高い。
マイクロソフトは、WebSocketをIIS8とIE10で対応させ、さらに.NET Framework 4.5にも取り込む予定だ。
また、.NET Frameworkが4.5で非同期API呼びだしをサポートすることから、ASP.NETも「非同期呼びだし」に対応する。非同期呼びだしとは、APIの要求と結果の受け取りを別動作にするものだ。これに対して、現在広く使われている、呼び出して戻ってくる時に結果を受け取るものを「同期呼び出し」という。
非同期呼びだしを使うことで、時間のかかるAPIをシステムが処理している間に、アプリケーション側は他の作業を進めることができる。特に複数スレッドを用いて、通信など、CPU処理時間に対して長い時間のかかる処理を行なう場合に効率的な処理が可能になる。
より大規模環境での利用に対応するHyper-V
仮想環境であるHyper-Vでは、同時に起動できる仮想マシンの数が1024と、Windows Server 2008R2に比べて2.6倍に拡大され、VMあたりの仮想プロセッサ数が32コア、メモリは512ギガバイトに拡大されている(図#%VM%#)。Windows Server 8自体で扱えるコア数が増えたこともあるが、Hyper-V自体の改良も加わり、より大規模な仮想環境を利用できるようになった。
もう1つは、マルチプロセッサーの場合のNUMA(Non Uniform Memory Access)対応だ。仮想プロセッサを実行する物理プロセッサとメモリ(ゲストOSが格納されている)を同じNUMAノードになるように調整することで、性能を落とさないようにできる。メモリコントローラーを内蔵したプロセッサーを多数結合した場合など、プロセッサーがメモリアクセスするコストが自身に接続している場合と、そうでない場合に違ってくる。もっとも効率がよいのは、プログラムを実行するコアに直接接続しているメモリにプログラムやデータが配置されている場合だからだ。
Windows Server 8のネットワーク機能の強化としては、Dynamic VMQ(Virtual Machine Queues。NIC内部にある複数のキューを動的に仮想マシンと対応させ、仮想マシンが直接NICを制御しているように処理を行ないホスト側のオーバーヘッドを軽減する。従来までは静的な対応だけだった)や、内部のHyper-V Extensible Switchなどの効率化、SR-IO対応ネットワークカードの利用などにより、仮想環境からネットワークを利用する場合の効率が改善される。これにより、サーバー集約や大規模なVDI環境などで、ネットワークがボトルネックになりにくくなった。
Hyper-V Extensible Switchは、ソフトウェアによるネットワークスイッチで、複数VMに対してのQoSなどを実現する。このため、複数のWindows Server 8でIISを動作させるような場合も、特定のサービスが帯域を占有することがなくなり、10ギガビットEthernet(10GbE)などの高速ネットワークへの集約を行なっても、影響が出にくくなる。また、ここにパケットをフィルタリングするExtensionを組み込むことで、さまざまな機能を追加できる。
また、VMのライブマイグレーション(VMを実行するマシンをVM実行中に変更する)では、移行先とファイル共有を行なう必要がなく、ネットワーク接続のみで可能となった。
細かい点だが、Hyper-Vの制御などがPowerShellから可能になり、多くの管理用コードが提供される。これにより、Hyper-Vを使ったシステムの自動運転などが容易になっている。このあたりは、Azureにより培われた技術がフィードバックされた形だ。
この連載の記事
-
第4回
ソフトウェア・仮想化
DR対応も!「Build Windows」でわかったAzureの今後 -
第3回
ソフトウェア・仮想化
Metro Styleに対応するVisual Studio 11と開発ツール -
第1回
ソフトウェア・仮想化
Buildの公開情報から見るWindows Server 8 - この連載の一覧へ