このページの本文へ

前へ 1 2 次へ

Windows Serverで学ぶサーバOS入門第31回

まずは、利用条件の確認から

Windows Server 2008の仮想化機能「Hyper-V」を活用しよう

2010年09月14日 09時00分更新

文● 横山哲也/グローバルナレッジネットワーク株式会社

  • この記事をはてなブックマークに追加
  • 本文印刷

ここ数年、「仮想化」はIT業界のスーパースターだ。中でも、コンピュータそのものを仮想化してしまう「サーバ仮想化」の注目度が高い。本連載最後のテーマとして、Windows Server 2008の一部として提供されるサーバ仮想化機能「Hyper-V」について、4回に分けて紹介していこう。

サーバ仮想化とHyper-V

 サーバ仮想化は、1台のサーバに複数の仮想的なサーバを構築し、あたかも複数のサーバがそこにあるかのように見せかける技術だ。このとき、物理サーバを「ホスト」、仮想サーバを「ゲスト」と呼ぶ。

 マイクロソフトでは仮想サーバを構築するソフトウェアとしてWindows Server 2003用に「Virtual Server 2005 R2」を無償で提供している。しかし、Virtual Serverには以下のような欠点があった。

  • 完全ソフトウェア制御のため低速
  • 64ビットゲストに非対応(ホストは64ビット対応)
  • ゲストのマルチプロセッサ非対応
  • ゲストに割り当て可能なメモリが4GB未満
  • 管理ツールのためにIISが必須

 Hyper-Vはこうした欠点を解消するために開発された、新しいサーバ仮想化ソフトウェアだ。Virtual Server 2005 R2より機能面でも性能面でも優れている(表1)。ただし、利用するにはx64(64ビット)対応のCPUが必須である。現在出荷されているサーバ向けCPUのほとんどはx64対応だが、一部のデスクトップPCや多くのノートPCはx64に対応していない。

表1●Virtual Server 2005 R2とHyper-V

Hyper-Vのアーキテクチャ

 Hyper-Vは、「ハイパーバイザ型」の仮想化システムである。VMware ESXやXenと同様、Hyper-VはOSレイヤよりもハードウェアに近い層に位置している(図1)。「ハイパーバイザ」は「スーパーバイザよりも上位」という意味で名付けられた。なお、「スーパーバイザ」というのはOSを意味する古い呼び名だ。

図1●Hyper-Vの構造

 ハイパーバイザがOSを制御するためには、OSよりも先に起動しなければならない。しかし、Hyper-VではOSのあとに起動する。これは、Windows Server 2008起動後に読み込まれた「Hyper-Vローダー」が、OSの構造を動的に変えてしまうためである。Hyper-VはWindowsによって起動され、そのHyper-VがWindowsを制御する。いわば、「ひさしを貸して母屋を取られる」システムといえる。

 Hyper-Vでは、物理サーバを初期化したOSを「親パーティション」、そのほかの仮想サーバを「子パーティション」と呼ぶ。両パーティションはともに仮想サーバとして動作するため、「ホスト」や「ゲスト」という呼び名は適切ではない。ただし、運用上は親パーティションをホスト、子パーティションをゲストと思ってもらってかまわない。

 Hyper-Vでは、物理的なハードウェアアクセスに必要なデバイスドライバが親パーティション上で動作する。また、子パーティションは、仮想ドライバから「VMbus」と呼ばれる仮想バスを通して親パーティションの物理ドライバを利用する。VMware ESXがハイパーバイザ内にデバイスドライバを組み込むのと対照的である。

 デバイスドライバをハイパーバイザ内に持つVMware ESXは性能向上が期待できる反面、デバイスドライバのバグによって仮想サーバ全体がセキュリティ侵害を受けるリスクが高まる。一方、Hyper-Vはハイパーバイザ内にサードパーティ製のデバイスドライバなどのコードを含まないため、セキュリティ上のリスクは少ない。ただし、親パーティションの障害ですべてのI/Oが停止するリスクもあるため、どちらがよいと一概にはいえない。

(次ページ、「Hyper-Vの準備」に続く)


 

前へ 1 2 次へ

この連載の記事
ピックアップ