写真提供:マイナビニュース

写真拡大

●統合率の目安は10○統合率の目安は10

仮想化において、設備投資コスト削減の効果を最もよく示す指標は何だと思いますか?

それは、ホスト1台あたり何台のVMが稼働しているかを示す、「統合率」です。たとえば、統合率が2倍になれば、サーバ台数が半分になり、ラックスペースやストレージポートなども減ります。統合率をどれだけ高くできるかが仮想化のコスト削減効果を左右すると言っても過言ではありません。

当社がグローバルで行った顧客サーベイ(VMware TAM Customer Intelligence Dashboard 2013 Q4)によれば、統合率の平均は「12.5」です。このサーベイの対象は比較的大きめなシステムを持つ顧客が多いので、少し割り引いて考えて、「10」ぐらいの統合率を目安として考えるとよいと思います。皆さんの環境では、この平均を超える、十分に高い統合率が実現できているでしょうか?

残念ながら、ほとんどの方は、これより低い統合率に留まっているのではないでしょうか。日本のユーザは、ベンダーが設計時に決めた統合率のまま運用を続けているところが少なくありません。日本のベンダーは保守的な設計をすることが多く、統合率は低めになりがちです。皆さんは、コスト削減の機会をみすみす失ってしまっているのかもしれません。

日本のユーザは、もっと主体的に統合率の向上を目指していくべきだと筆者は考えています。 今回の記事では、読者の皆さんが統合率を向上するための重要なポイントをいくつか紹介したいと思います。

○関連記事

・【ハウツー】仮想環境の統合率を高める方法 (1)リソース無駄遣いの現状を知る・【ハウツー】仮想環境の統合率を高める方法 (3)正しい残容量を調べる

○オーバーコミットしていますか?

まず、統合率を上げるための基本技術を 2 つ紹介します。この2つは統合率を向上するうえで必須の技術なのですが、日本のベンダーは設計時に盛り込まないケースが意外と多いように見受けられます。もし、これらの技術の利用を検討したことがないのなら、ぜひ検討していただきたいと思います。

1つ目の基本技術は「オーバーコミット」です。オーバーコミットとは、実際の物理リソースのキャパシティを超える仮想リソースを仮想マシンに割り当てることを指します。たとえば、計8コアの物理CPUを持つホスト上で、計16の仮想CPUを持つ仮想マシン群を稼働させるという感じです。少ない物理リソースでより多くの仮想マシンを動かすため、統合率が向上します。

以前は、オーバーコミットを行わないサイジングも多く見られました。たとえば、CPU 1 コアあたり仮想CPU 1つといった感じです。しかし、ハードウェアおよびハイパーバイザーの技術革新が進んだ現在では、このようなサイジングは時代遅れなものになっています。

前述の当社の顧客サーベイによれば、CPUコアあたりの仮想マシン数の平均は0.95、すなわち約1です。最近ではほとんどの仮想マシンが2 つ以上の仮想CPUを持ちますので、2:1 以上のオーバーコミットレシオになっているとここから推定できます。もしCPUオーバーコミットを実施していない読者の方がいらっしゃるのなら、ぜひ検討すべきでしょう。

またメモリに関しては、CPU ほど高い比率でのオーバーコミットはできませんが、透過的ページシェアリングやバルーニング、メモリ圧縮など、オーバーコミットをサポートするさまざまな技術が開発されており、安定してオーバーコミットができるようになってきています。サービスレベルの要求が非常に高い一部のビジネスクリティカルなアプリケーションを除いて、メモリのオーバーコミットも検討すべきでしょう。

○リソースプールを作っていますか?

2つ目の基本技術は「リソースプール」で、複数台のホストのリソースをまとめて、クラスタ単位でリソースを管理するための技術です。少し単純化して言うのなら、クラスタをあたかも1つの仮想的な巨大コンピュータとして扱うための技術です。

リソースプールの実現にはカギとなる機能が1つあります。それは、リソースプールを構成するホスト間で自動的に負荷分散を行う機能(VMware だと、vSphere DRS機能)です。これにより、ホスト間で負荷が偏っても自動的に平準化されるため、ホスト単位ではなくクラスタ単位でリソース管理ができるようになるというわけです。

リソースプールが出てくる前は、ホストごとに大きな予備リソースを取って、予想外のピークに備えていました。リソースプールを使えば、予想外のピークにはホスト間の負荷分散で対応できるので、各ホストの予備リソースを大きく減らし、統合率を向上させることができます。当社の調べでは、リソースプールを用いることで、約40% の統合率の向上が見られたというデータがあります。

なお、今回紹介したオーバーコミットやリソースプール以外にも、ストレージ連携機能やI/Oコントロール(QoS)機能など、更なる統合率の向上を図るための機能があります。興味のある方はVMware関連の書籍などでぜひ詳細について調べてみていただければと思います。

●最適な統合率の求め方○統合率とサービスレベルのバランスを取る

オーバーコミットやリソースプールといった技術を導入すれば、同じホスト台数で今までより多くの仮想マシンを稼働させ、統合率を向上することができるようになるでしょう。

しかし、ここで、重要な問題が一つ出てきます――「いまの環境で、どこまで統合率を上げられるのか」――ということです。

高い統合率には、負の側面があります。統合率が上がれば上がるほど、限られたリソースを多くの仮想マシンで取り合うことになるため、パフォーマンスへの影響が少しずつ増えていくのです。

言い換えれば、統合率とサービスレベルはトレードオフの関係にあります。どこまでのサービスレベル低下を許容できるか、それが決められないと、どこまで統合率を上げていいのかも決まらないということです。

ただ、日本では統合率がかなり低めのシステムが多い様に見受けられます。恐らく、ほとんどのシステムでは、サービスレベル低下を心配するより、オーバーコミットやリソースプールといった技術をもっと活用して統合率を向上することをまず検討すべきでしょう。統合率がある程度向上してきたら、どこまでのサービスレベル低下を許容できるかの検討が合わせて必要になります。

○最適な統合率の求め方

では、ほどよいサービスレベルと統合率のバランス、すなわち、システムにとって最適な統合率とはどのように求めたら良いのでしょうか。ここでは、1つの考え方を提示したいと思います。

まず、クラスタ全体のサービスレベルをコントロールするために、リソースのバッファ(予備リソース)の量をコントロールします。バッファの量としてどれくらいが適切かは環境によりますが、まずは大きめな値を設定して、余裕があるようなら後で減らしていくのがよいでしょう。なお、クラスタ全体でのサービスレベルとは別に、個々の仮想マシンレベルで、リソース予約などを使ってもっと細やかなコントロールをすることも可能です。

バッファ量を決めたら、次に残り容量を求めます。全体の物理容量からバッファ量を引くと利用可能容量を求められ、ここから使用済の容量を引くと、残り容量が計算できます。この残り容量が、統合率を向上するために使えるリソースです。

そして、残り容量から最適な統合率を導くために、「仮想マシンの平均プロファイル」を計算します。仮想マシンの平均プロファイルとは、VMの平均的なリソース割当量(使用量)のことです。残り容量をVMの平均プロファイルで割れば、あといくつ仮想マシンを投入可能なのかを推定できます。ここから、最適な統合率を導くことができるわけです。

○最適な統合率を求める際の課題

このように、最適な統合率を求める方法は、非常にシンプルです。残り容量と、VMの平均プロファイルを計算すれば、簡単に求まります。

しかし、仮想環境にて、残り容量とVMの平均プロファイルを手動で計算するのは結構複雑です。

理由の1つは、オーバーコミットです。オーバーコミットをしていなければ、各仮想マシンのサイズを単純に足していくことで、使用済容量が簡単に求まります。一方で、オーバーコミットをしている場合は、個々の仮想マシン(もしくはホスト)の実際の利用量を足していく必要があります。ただ、実際の利用量は時と共に変わります。使用済容量をどう定義するのか、まずそこからスタートする必要があります。

理由の2つ目は、リソースプールです。仮想マシンがホスト間で負荷分散のために移動するので、ホストのリソースを単純にモニタリングするだけでは対応できません。

残り容量を簡単に求めるためにオーバーコミットやリソースプールを使わないという選択肢もありますが、これは統合率の向上を行うことをあきらめることになり、本末転倒になってしまいます。

オーバーコミットやリソースプールといった技術を使いながら、最適な統合率を簡単に求める方法があるのですが、これは次回の記事にて紹介することにしたいと思います。

(ヴイエムウェア株式会社 桂島航)