~Hyper-V 移行・導入の実践~
Hyper-Vは、Windows Server 2008のx64版で提供されるハイパーバイザベースの新しい仮想化機能です。1台の物理サーバ上に、仮想的なサーバを複数動かすことができ、サーバ集約や試験環境、OSやソフトの試行・動作確認などに利用できます。
仮想的なサーバを複数動作させれば、そのパフォーマンスに影響があることは当然といえます。ここではHyper-Vでサーバ集約を行う場合を想定して、パフォーマンスを確保するための施策をご紹介します。
(ご注意)当社検証環境の実績をもとに、パフォーマンスを確保するための施策をご紹介します。本施策により必ずパフォーマンスが確保できることを保証するものではありません。
仮想マシンでは、物理サーバのプロセッサやネットワーク等が共有して利用されます。そのため、仮想マシンがそれらのリソースを利用する際、競合すると「待ち」が生じます。複数用意することで、その「待ち」の回数や時間を減らすことができ、パフォーマンスが向上します。例えばプロセッサであれば、コア総数が仮想マシン数を越えるように、搭載するプロセッサの種類や個数を考えましょう。
図1. 仮想マシンの物理リソース利用イメージ
また、特定の仮想マシンに対して特にパフォーマンスを向上したい場合には、下記のようにします。
仮想マシン毎にリソース配分を調整できます。特にパフォーマンスを向上したい仮想マシンに対して、予約の指定(デフォルト0%)や、相対的な重みの数値(デフォルト100)を大きな値にします。
特にパフォーマンスを向上したい仮想マシンに対しては、その仮想マシン用にディスク/論理ボリューム (LUN)を占有します。また複数の仮想ディスクを搭載する場合にはそれらを複数のディスク/論理ボリューム (LUN)に分散するよう配置します。
特にパフォーマンスを向上したい仮想マシンに対しては、その仮想マシン用にネットワークカードを占有します。
Hyper-Vには、仮想マシンのハードディスクの構成に、二つの方法(パススルー接続と仮想ハードディスク)があります。
パススルー接続は、仮想マシンのディスクとして、物理サーバに搭載している物理ハードディスクをそのまま利用するというものです。パススルー接続にはスナップショット(1) を取れない、可搬性がないといった制限がありますが、パフォーマンスを追求する場合には有効な機能です。
図2. 仮想マシンの接続イメージ
仮想ハードディスクは物理サーバ上ではファイル(vhdファイル)として扱われますが、仮想マシンからはハードディスクとして利用できる仕組みです。仮想ハードディスクには、容量可変/容量固定/差分の3種類あり、それぞれの特徴により、使い分けます。パフォーマンスを確保するためには、容量固定で作成しましょう。容量可変の仮想ハードディスクは、使用量に応じてファイルが大きくなっていきますが、その際ファイルが断片化しパフォーマンスが低くなることがあります。
図3. 仮想ハードディスク作成画面
物理ハードディスクをパススルー接続で利用した形態と、容量固定/容量可変/差分の仮想ハードディスクの形態において、ディスクのパフォーマンスを計測しました。計測には、IOmeter(http://www.iometer.org/)というファイルシステムのベンチマークツールを用い、ランダム読取り/書込み・シーケンシャル読取り/書込みの速度について、ブロックサイズを8/64/512Kbyteと変動させて測定しました。
下記のグラフは、縦軸がI/Oの処理速度(Mbytes/s)になります。棒が高いほどパフォーマンスが良いことになります。
図4. 接続形態によるディスク性能比較
PRIMERGY RX300 S4
図5. 性能測定環境の概略