VMware vSphere 4の進化と性能
運用負荷の低減
ハードウエア規模が大きくなるクラウド・プラットフォームの構築、運用においては、障害時の影響を最小限にとどめる機能や、自動復旧、パフォーマンスの維持、管理の自動化の機能を実装することが必須と言える。
vSphere 4では、障害時の復旧や、パフォーマンスの最適化をサポートするためのさまざまな機能が実装されている。対障害性という観点では、仮想マシン・レベルから、物理サーバー障害、ストレージ障害、サイト障害に至るすべてのレイヤーで、障害時の自動復旧や、サービス停止時間を最小限に収める機能が実装されている。図7に、各レイヤー別に実装された可用性の実現方法を示す。
|
図7: 各レイヤーで実装している障害時の復旧機能 |
多数のハードウエアで構成されるクラウド・プラットフォームのパフォーマンスを常に最適な状態に保つためには、2つの考慮点がある。
1つは、負荷バランスがくずれ、特定のサーバーに負荷がかかるようになったときの対応、もう1つは、プラットフォーム全体のパフォーマンスが低下した際のサーバー・リソース追加に伴う仮想マシンの再配置である。
そもそも、多数の仮想マシンの負荷を想定して、どのサーバー上で稼働させればパフォーマンス最適化が図れるかを設計することは困難であるし、綿密に設計を行ったとしても、時間の経過と共に負荷状態が変化することも多い。
vSphere 4では、複数のサーバーで構成されるサーバー・ファーム(別名:クラスタ)の負荷を自動調整する機能として、 Distributed Resource Scheduler (DRS)が実装されている。
DRSは、VMotionを利用して仮想マシンを移動することにより、サーバー間の負荷バランスを調整する機能である。この機能自体はvSphere 4以前のバージョンでもサポートされていたため、ご存じの方も多いかもしれない。ただし、その有用性に関してはあまり語られてこなかった。
DRSは、構成するサーバー群の負荷のばらつきを標準偏差として管理し、この標準偏差の値が、設定された目標値(保守的~積極的の5段階で設定)を超えた場合、VMotionを利用して仮想マシンをほかのサーバーに移行させる。この一連の動作により、サーバー間の負荷バランスの平準化を行い、サーバー・ファームのパフォーマンスの最大化を実現する。
|
図8: DRSの動作 |
DRSのパフォーマンスの維持への貢献度を、下記負荷のモデル・ケースをベースに紹介する。2CPU、4Gバイトのメモリー構成を持つ複数台の物理サーバーを準備する。経過時間と共に3段階の負荷を周期的に発生する6種類の仮想マシンを作成し、各物理サーバー上で3台ずつ稼働させる。負荷イメージは図9に示す通り。
|
図9: 仮想マシンの負荷 |
この仮想マシンは、(1)、(3)、(5)を組み合わせると、CPU負荷が常に150%(2CPU構成なので全体負荷としては75%)という理想的な状態となるが、逆に最悪の組み合わせ、例えば(1)の負荷が3つ同じホストで稼働した場合では、最大負荷が135%となる可能性もある。この状態では仮想マシン同士でCPUの競合が発生し、トータル・パフォーマンスの著しい劣化が起こる。
今回は、負荷バランスを最も悪い状態でベンチマークをスタートさせた。テスト・ケースは以下の3つとなる(比較結果を図10に示す)。
- パターン1: DRSを利用しない場合
- パターン2: DRS(しきい値設定はデフォルトの3)を利用した場合
- パターン3: 仮想マシンを各サーバーに最適配置した場合
|
図10: DRSの効果 |
パターン2とパターン3の結果を比較すると、4%程度のパフォーマンス劣化に収まっており、DRSがサーバーファームのトータル・パフォーマンスの維持に有効であることが分かる。また、この環境において、仮想マシン数を増加させた場合、パターン1のトータル・パフォーマンスは明確に劣化していくことが分かるが、DRSを有効にすることにより、高い確率でこの劣化を回避することができる。
なお、DRSのしきい値は5段階(1~5)あるが、選択基準に関しては、図11を参照いただきたい。各棒グラフの中2つが、DRSがデフォルト設定(Moderate=3)の場合と、積極的(Aggressive=5)設定の結果を示している。
この2つを比較すると、サーバー台数が多くなると、ほとんど差がないことが分かる。結果としては示していないが、VMotionを利用した移行回数はAggressive設定の方が多い。VMotion時には、一時的ではあるが、CPUリソース消費量が増加するため、DRSを構成するサーバー台数が多い場合は、デフォルト設定(Moderate)を選択することを推奨する。
仮想マシン数が増え、サーバー・ファームのトータル・パフォーマンスに不足が生じた場合は、新規サーバーを追加することになるが、DRSを利用している場合は、サーバー・ファームにサーバーを追加するだけで自動的に負荷バランスが再調整され、パフォーマンスが最適化される。どの仮想マシンをどのサーバー上で稼働させるかを検討する必要は皆無である。
|
図11: DRSの設定とトータル・パフォーマンス |
まとめ
今回はvSphere 4におけるスケーラビリティとパフォーマンスに重点をおいて、その機能を紹介した。次週はvAppに関連する機能について紹介する予定である。