日本ヒューレット・パッカード 前田 裕貴

 ここでは、VMware vSphere 4で実現できるスケールアウトとスケールアップについて説明したい。

 サーバーの処理能力を増強する方法には、大きく分けて「スケールアウト」と「スケールアップ」の二つがある。スケールアウトとは、処理を担うコンピュータの数を増やして、大規模なシステムを構築する方法で、「スケールアップ」はコンピュータ単体の性能を上げ、より大規模なシステムを構築する方法だ。

 まずvSphereでは、ハイパーバイザーであるESXを導入したホストを追加することで、ホストの集合体であるクラスターのリソースを増強し、性能向上を図ることができる。ホストの数を増やすことによって、より多くの仮想マシンが同一クラスター上に配備可能となるわけだ。仮想マシンを稼働させたまま別のホストへ移動させるvMotion機能を活用した仕組みになっている。

 元来スケールアウトとは、「単一の役割を複数台のサーバー機に負荷分散し実行すること」を指す。仮想化技術を扱う本稿ではこれを拡大解釈し、「異なる役割を持つ複数台の仮想マシンを、複数台のホストに分散して稼働させること」とする。

 それに対して、一つの仮想マシンで処理したほうが効率の良いシステム、例えばOLTP(On-Line Transaction Processing)などでは、物理環境と同様にスケールアップが必要になる。vSphereでは、四つの主要なコンピュータリソースである、CPU、メモリー、ディスク、NIC(ネットワークインタフェースカード)を仮想マシンに対して、仮想マシンを稼働させたまま追加できるようになった。

 また、VMware独自のファイルシステムであるVMFSボリュームの動的拡張も可能になっている。これらの機能によって、vSphere上の仮想マシンを動的にスケールアップできるようになっている。

 もちろん、仮想マシンはいくらスケールアップしても仮想マシンが稼働するホストの処理能力を超えることはできないが、昨今のサーバー機の処理能力は非常に大きい。多くの用途に十分な各種リソースを仮想マシンに割り当てられるはずだ。

ホストの追加でスケールアウトを実現

 最初に、スケールアウトの方法をより詳しく見ていこう。例えば、1年前から2台のホスト(ここではESX01、ESX02と呼ぶ)で合計12台の仮想マシンを運用してきたとしよう。導入以来、ユーザーのシステムに対する評判も良く、ユーザー数も増加の一途をたどった。システム管理者としてはうれしい限りだが、システムのレスポンスは次第に遅くなるはずである。

 このようなとき、VMwareによる仮想化環境では、ホストを1台追加し(ESX03)、既存のESX01やESX02から、ESX03に対していくつかの仮想マシンをvMotionすれば、システム全体を無停止のままスケールアウトによって拡張できる(図1)。このように、システムを運用している最中に、負荷の様子を見ながら、追加投資のタイミングを比較的気楽に検討できる点は、サーバー仮想化の醍醐味の一つだろう。

図1●vSphereではvMotionを利用し、無停止でスケールアウトできる
図1●vSphereではvMotionを利用し、無停止でスケールアウトできる

 実際の移行作業としては、管理者による手動操作による方法やVMware vSphere PowerCLIを使う方法のほかに、(1)「スケジュール設定タスク」または「アラーム設定」を用いる方法、(2)VMware DRS(Distributed Resource Scheduler)を使う方法──がある。さらに、VMware DPM(Distributed Power Management)を使えば、低負荷時の消費電力を抑えながらスケールアウトを図ることができる。次に、これらの技術を一つひとつ解説する。