このページの本文へ

SP1までわかる!Windows Server 2008 R2入門 第6回

ディスクやメモリ、ネットワークの高速化も実現!

VMware対抗機能「ダイナミックメモリ」を搭載したHyper-V 2.0

2011年06月22日 06時00分更新

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

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

前回紹介したとおり、Hyper-V 2.0ではライブマイグレーションが搭載され、VMwareに対する競争力は大幅に向上した。ほかにも、「ダイナミックメモリ」の対応、ディスクやメモリ、ネットワークの高速化など、さまざまな性能強化が図られているのだ。

メモリ管理を強化する「ダイナミックメモリ」

 VMwareでは、仮想マシンに割り当てる物理メモリの総量を、マシンの物理メモリの総量を超えることができる(オーバーコミット)。しかし、Hyper-Vでは物理マシンの物理メモリを超えることはできない。

 また、VMwareは複数の仮想マシンのあいだで同じ内容のメモリブロックを共有する仕組みを持つが、Hyper-Vの仮想マシンの物理メモリは完全に分離されている。Hyper-Vのほうがメモリ容量の見積りが容易になるうえ、性能面でも有利だが、物理メモリが少ないマシンではVMwareのほうが便利に思う人もいるだろう。

 しかし、マイクロソフトによるとWindows Server 2008 R2ではメモリブロックの共有機能は効果的に動作しないということだ。Windows Server 2008 R2はラージページに対応しておりページサイズは2MBとなる。通常のページサイズ(4KB)では、複数の仮想マシンが同じ内容を持つ可能性も高いが、2MBが完全に同じ内容になることは少ない。つまり、VMwareの共有メモリ機能は必ずしも効果的ではない。

 また、VMwareの仮想マシンに割り当てる物理メモリの総量は、マシンの物理メモリの総量を超えることができる(オーバーコミット)。しかし、Hyper-Vでは物理マシンの物理メモリを超えることはできない。オーバーコミットは性能が極端に低下するため、実用的ではないというのがマイクロソフトの見解だ。

 その代わり、物理メモリを効率よく利用するための工夫が、Windows Server 2008 R2のサービスパック1(SP1)で追加された。これが「ダイナミックメモリ」である。ダイナミックメモリは、仮想マシンに割り当てるメモリ量を動的に変化させるため、以下の4つのパラメータを指定する(画面1)。

画面1 ダイナミックメモリの設定

スタートアップRAM
仮想マシン起動時に割り当てるメモリ量、つまりメモリの最小値
最大RAM
仮想マシンに割り当て可能な最大メモリ量。設定値自体は物理メモリを超えても構わないが、実際に割り当てるときには物理メモリが必要である。つまり「オーバーコミット」機能は実装されていない。実際にどこまで増やすかは「メモリバッファ」の値に依存する
メモリバッファ
仮想マシンに割り当てる空きメモリ量。ダイナミックメモリは、仮想マシンに一定の空きメモリが残るようにメモを割り当てる。既定値は20%なので、空きメモリが20%未満になると、20%になるまでメモリを追加する
メモリの優先度
必要な物理メモリが確保できないとき、同じHyper-Vホスト上で実行する他の仮想マシンとの間でメモリを割り当てる相対的な優先度

 ダイナミックメモリは、OSの動作中に物理メモリを追加する「Hot Memory Add」の応用である。Hot Memory Addは通電中のメモリ追加に対応したマザーボードが必要だが、仮想マシンの場合はもちろん特別なハードウェアは必要ない。

 ダイナミックメモリは、OS起動後に利用する物理メモリを変更するため、仮想マシンOSもダイナミックメモリに対応している必要がある。2011年3月現在での対応ゲストOSは、以下の通りである。

ダイナミックメモリに対応するゲストOS
クライアントOS
Windows Vista Enterprise/Ultimate
Windows 7 Enterprise/Ultimate
サーバーOS
Windows Server 2003 SP2 Enterprise Edition以上
Windows Server 2003 R2 SP2 Enterprise Edition以上
Windows Server 2008 Enterprise以上
Windows Server 2008 R2 Enterprise以上

 なお、仮想マシンOSに更新プログラムが必要な場合もある。詳細と最新情報は、米マイクロソフトが公開する「Hyper-V Dynamic Memory Configuration Guide」を参照してほしい。

 また、ダイナミックメモリによるメモリ増加は徐々に行なわれるため、一度に大量のメモリが必要な場合は「メモリ不足」となる可能性がある。この場合は静的に割り当てるか、スタートアップRAMの値を増やす。

Hyper-V性能強化のポイント

 Hyper-V 2.0ではライブマイグレーションのような新機能の追加だけでなく、性能の強化も行なわれている。特に、ネットワークやディスクI/O性能が強化されており、仮想化のオーバーヘッドはほとんどなくなった。

ディスクの書き込み性能アップ

 Hyper-Vでは、仮想マシンのストレージとして「VHD(Virtual Hard Disk)」ファイルを利用する。このVHDには、ストレージ容量ぶんのサイズのVHDファイルが当初から作成される容量固定(固定長)のタイプと、当初は最小サイズのVHDファイルが作成され、内容量が増えてくるとファイルサイズが大きくなる容量可変(可変長)との2タイプがある。

 Hyper-V 2.0ではこのVHDへのパフォーマンスが向上し、Hyper-V 2.0の容量可変ディスクの書き込み性能が、Hyper-V 1.0の容量固定ディスクと同等になっている。これは容量可変ディスクの管理テーブルの一部を、ディスク上からメモリ上に移動したためである。

 もちろん耐障害性を考慮しているので、信頼性が落ちることはない。容量可変ディスクの性能が上がったことで、物理ディスク領域をより効率的に利用できるようになった。

メモリの高速化

 また、Hyper-V 2.0では「SLAT(Second Level Translation)」と呼ばれる仮想アドレス変換機構を利用するため、メモリアクセスの速度が劇的に向上している。

 通常、仮想マシンのアプリケーションがメモリにアクセスするには、「仮想マシンの仮想アドレス→仮想マシンの物理アドレス(=物理マシンの仮想アドレス)→物理マシンの物理アドレス」という変換が必要となる(図1の左)。だがSLATを使うと、「仮想マシンの物理アドレス」を「物理マシンの物理アドレス」に直接マッピングできる(図1の右)。

図1 SLATの概念

 SLATはCPUが持つ機能を利用しており、使えるのはインテル製のXeon 5500番台やAMDのOpteron 2800などを搭載している場合のみとなる。なお、SLATのことをインテルは「EPT(Extended Page Table)」、AMDは「RVI(Rapid Virtualization Indexing)」と称している。

ネットワークの速度向上

 性能が強化されたのは、ディスクとメモリだけではない。ネットワークの速度も向上している。これは、「TCPオフロード」、「ジャンボフレーム」、「VMQ(VMキュー)」の3点がおもな要因となる。

 まずTCPオフロードは、TCPのチェックサム計算などをネットワークインターフェイスカード(NIC)のハードウェアにまかせる機能だ。この機能を使うには、NICハードウェアとドライバーがTCPオフロード機能を実装している必要がある。TCPオフロード自体は、Windows Server 2003 SP2から行なわれている。しかし、このときの目的は物理サーバー(非仮想化環境)での利用であり、残念ながら仮想サーバーでは一部の機能しか使えなかった。

 2つめの要因であるジャンボフレームは、イーサーネットのフレームサイズを大きくすることで通信の効率を上げ、通信速度を向上させる技術だ。これも物理サーバー用としては以前から対応しているが、今回仮想サーバーでも1500バイト以上のフレームサイズを利用できることとなった。

 最後のVMQは仮想環境ならではの機能で、仮想マシンに対するネットワークパケットの割り振りを、NICが搭載するハードウェアにまかせるものだ。これにより、仮想ネットワークの負担を軽減できる。

ホットプラグへの対応も

 Hyper-V 2.0ではそのほかに、仮想ディスクのホットプラグやPowerShellを使った管理機能が強化された。仮想ディスクのホットプラグはSCSI仮想ディスクに対してのみ可能であるが、ゲストOSには依存しない。そのため、子パーティションとしてWindows Server 2003を実行している場合でも構成可能である。

 また、別売りの管理製品「System Center Virtual Machine Manager 2008 R2」を使えば、複数の物理サーバーにある複数の仮想マシンを、GUIまたはPowerShellで統合管理できる。このSystem Center Virtual Machine Manager 2008 R2は、Hyper-V 1.0/2.0、Virtual Server 2005 R2といったマイクロソフト製品だけでなく、VMware ESXも同様に管理可能だ。

 ただし、VMware ESXの管理にはヴイエムウェアが販売する管理製品「vCenter」が別途必要となるので注意したい。

筆者紹介:横山哲也

グローバルナレッジネットワーク株式会社
マイクロソフト認定トレーナ/マイクロソフトMVP
1994年からSEおよびプログラマー向けにWindowsのサーバーの教育を担当。1996年、グローバルナレッジネットワーク設立とともに同社に移籍。2003年より「マイクロソフトMVP(Directory Services)」


 本記事は、月刊アスキードットテクノロジーズ2009年12月号の特集2「Windows Server 2008 R2の強化点」を再編集し、Service Pack 1に関する情報を追加したものです。

カテゴリートップへ

この連載の記事