いくつかの簡単なプラクティスを実践するだけで、仮想マシンの優れたパフォーマンスを損なうことなく、サーバハードウェアの真価を引き出すことが可能になる。本記事では「Hyper-V」環境をチューンアップするためのティップスを紹介する。
Hyper-Vといったサーバ仮想化製品は、1台の物理サーバ上で複数のサーバイメージをホスティングし、企業のハードウェアコストを削減できるようにするというものである。このことを突き詰めると、ホストサーバ上で稼働する仮想マシンの数を増やせば増やすほど、ハードウェアコストのさらなる引き下げが可能になるわけだ。もちろんのことながら、ホスト上で稼働する仮想マシンの密度を上げれば、サーバに対する負荷も増大する。このため、仮想マシンに対してリソースを割り当てる際、ハードウェアに対する投資効果を最大限に高めながら、仮想マシンのパフォーマンスを十分に引き出せるようにすることが必要不可欠となる。以下は、Hyper-V環境において、サーバハードウェアの能力を最大限まで引き出せるようにするためのティップスである。
1:ゲストOSの選択は慎重に行う
Hyper-VはさまざまなOSをホスティングできるようになっている(筆者はHyper-V上でWindows NTを稼働させたこともある)。とは言うものの、ハードウェアリソースをどれだけ効果的に利用できるかは各OSによって異なってくる。一般的には、ゲストマシン上では可能であればWindows Server 2008やWindows Server 2008 R2を稼働させるべきだろう。こういったOSは、Hyper-V上で稼働することを念頭に置いて設計されているのだ。
Windows Server 2008やWindows Server 2008 R2を選択することができない場合、Hyper-V Integration Servicesに対応したWindows OSをできる限り使用するようにしてほしい。Hyper-V Integration Servicesとは、Hyper-VのVMBusを経由してゲストマシンと親パーティションを通信可能にするためのドライバの集合体であり、これによってゲストマシンのパフォーマンスが劇的に改善されるようになる。なお、Windows 2000やWindows 2003、Windows XP、Windows Vista、Windows 7ではすべて、程度の差こそあれHyper-V Integration Servicesがサポートされている。しかし、Windows NTやWindows 9X、非Windows系のOSではサポートされていない。
2:ディスクのコンフィギュレーション計画を練っておく
仮想サーバ環境では、ストレージプールがパフォーマンス上のボトルネックになることもしばしばある。このため可能であれば、各仮想ハードドライブは個別のディスクやLUN、ディスクアレイ上に設定されるよう、仮想マシンを配置するべきだろう。このようにすることで、複数の仮想マシンがディスクI/Oリソースを取り合わないようにするわけである。
残念なことに、仮想マシン毎に専用の物理ストレージを割り当てることは、コスト的に問題がある場合もあるはずだ。そういった場合、仮想マシンの配置時に、利用可能なI/Oリソースを効率的に使用できるようにするしかないだろう。例えば、大量のディスクI/Oが見込まれる、仮想化された2台のSQLサーバがある場合、物理ストレージの共有を避けるように心がけるべきである。ハードウェアのコンフィギュレーションから生み出される制約により、こういった2つの仮想マシンそれぞれに個別の物理ストレージを割り当てることができない場合、どちらかのサーバを他のホストマシン(あまり負荷の高くない仮想マシンが稼働しているマシン)上に移動することを検討するべきかもしれない。