仮想化には数多くの利点がある。そして、そういったことを解説している記事やベンダーのホワイトペーパーも数多く存在している。では、典型的な仮想化実装における難題としてどういったものが考えられるのだろうか?
本記事では、見落とされたり、後になって気付くことが多い7つの問題領域について解説している。
#1:容量計画とプロビジョニング
ハードウェアの使用効率を最大限に高めようとした場合、単一の物理サーバ(あるいはクラスタ)上でできる限り多くの仮想マシンを稼働させたいという衝動に駆られるはずだ。ホストのリソースを極限まで活用しようとするのは素晴らしいことであるものの、プロビジョニングという観点から見た場合、特に、同一の物理リソースに対して同時にバランスを欠いた負荷が加わると、パフォーマンスが大きく低下することになる。その一方で、あまりにも慎重になりすぎるとオーバープロビジョニング(過剰割り当て)になってしまう。いずれの場合も最適とは言い難いだろう。要するにサーバの作業負荷や物理的なリソース、ビジネスルールを理解し、バランスさせることが重要なのである。こういったことを上手に行うために利用できる、優れたモデリングツールがいくつかある。
#2:モニタリング
従来からあるパフォーマンスモニタや稼働状況モニタでは、リソース(CPUやメモリ容量、ディスク容量、ネットワークなど)の可用性を測定したり、イベントの流れを監視することで問題やボトルネックの切り分けと隔離を行うことができるようになっている。
こういったやり方は、アプリケーションをホストしているサーバが仮想化されている場合には適切なものとはならない。リソースは抽象化され、仮想マシンに対して、必要に応じて仮想マシンモニタ(VMM)やハイパーバイザがリソースを割り当てるようになっているため、遠隔測定に基づいて仮想マシン内のリソースの可用性を判定することはできないのである。
こういった問題を避けるには、物理的なハードウェアや仮想マシン、仮想マシン内のアプリケーションを管理できるハイパーバイザとともに、それらを監視できるようなツールを選択し、追加されたレイヤすべてを縦断してデータの集約と関連付けを行えるよう保証することになる。