(57)【要約】      （修正有）【課題】割当てられた資源に見合う性能を仮想機械が発揮するように情報処理装置を管理する。【解決手段】第１の情報処理装置５１０と該第１の情報処理装置５１０が提供している仮想機械の属性情報との対応関係と、第２の情報処理装置５２０と該第２の情報処理装置５２０が提供している仮想機械の属性情報との対応関係とを記憶する記憶部５３１を参照し、前記第１の情報処理装置５１０が提供している仮想機械のうち、配置対象の仮想機械の属性と同じ属性の仮想機械の数が、前記第２の情報処理装置５２０が提供している仮想機械のうち、該配置対象の仮想機械の属性と同じ属性の仮想機械の数よりも少ないことが検出された場合に、前記第１の情報処理装置５１０に、該配置対象の仮想機械を配置する処理を管理装置５３０に実行させる。【選択図】図５
2012032877.tif 000002
【特許請求の範囲】
【請求項１】
第１の情報処理装置と該第１の情報処理装置が提供している仮想機械の属性情報との対応関係と、第２の情報処理装置と該第２の情報処理装置が提供している仮想機械の属性情報との対応関係とを記憶する記憶部を参照し、
前記第１の情報処理装置が提供している仮想機械のうち、配置対象の仮想機械の属性と同じ属性の仮想機械の数が、前記第２の情報処理装置が提供している仮想機械のうち、該配置対象の仮想機械の属性と同じ属性の仮想機械の数よりも少ないことが検出された場合に、前記第１の情報処理装置に、該配置対象の仮想機械を配置する、
処理を管理装置に実行させることを特徴とするプログラム。
【請求項２】
前記第１および前記第２の情報処理装置は、前記第１および前記第２の情報処理装置の負荷を示す負荷情報に基づく負荷が、第１の基準より低い情報処理装置である、
ことを特徴とする請求項１に記載のプログラム。
【請求項３】
前記第１および前記第２の情報処理装置は、前記第１および前記第２の情報処理装置の負荷を示す負荷情報に基づく負荷であって、前記配置対象の仮想機械を配置した場合にかかる負荷が、第１の基準より低い情報処理装置である、
ことを特徴とする請求項１に記載のプログラム。
【請求項４】
第１の情報処理装置と該第１の情報処理装置が提供している仮想機械の属性情報との対応関係と、第２の情報処理装置と該第２の情報処理装置が提供している仮想機械の属性情報との対応関係とを記憶する記憶部を参照し、
前記第１の情報処理装置が提供している仮想機械のうち、配置対象の仮想機械の属性と同じ属性の仮想機械の数が、前記第２の情報処理装置が提供している仮想機械のうち、該配置対象の仮想機械の属性と同じ属性の仮想機械の数よりも少ないことが検出された場合に、前記第１の情報処理装置に、該配置対象の仮想機械を配置する、
処理を管理装置に実行させることを特徴とする管理方法。
【請求項５】
第１の情報処理装置と該第１の情報処理装置が提供している仮想機械の属性情報との対応関係と、第２の情報処理装置と該第２の情報処理装置が提供している仮想機械の属性情報との対応関係とを記憶する記憶部と、
前記記憶部を参照する参照部と、
前記第１の情報処理装置が提供している仮想機械のうち、配置対象の仮想機械の属性と同じ属性の仮想機械の数が、前記第２の情報処理装置が提供している仮想機械のうち、該配置対象の仮想機械の属性と同じ属性の仮想機械の数よりも少ないことが検出された場合に、前記第１の情報処理装置に、該配置対象の仮想機械を配置する配置部と、
を備える管理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＶＭ（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ；仮想機械）を提供する情報処理装置を管理するプログラム、管理方法および管理装置に関する。
【背景技術】
【０００２】
従来、クラウドコンピューティングやシンクライアントなどに、ＶＭを提供するサーバが利用されている。
ＶＭには、仮想的に所定の性能の資源、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）やメモリなどが割当てられている。しかし、実際にＶＭが使用する資源量は、ＶＭ上で動作するソフトウェア、例えば、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）やＯＳ上で動作する業務用アプリケーションなどの使用状況により変化する。
【０００３】
そこで、例えば、サーバが備える資源のうちＶＭが実際に使用できる資源の割合の範囲が設定される。この資源の割合の範囲を「使用率レンジ」という。そして、各ＶＭが実際に使用する資源が、使用率レンジの範囲となるように、サーバ間でＶＭの移動が行われる。また、必要に応じて、サーバが起動または停止され、稼働するサーバの数が調整される。
【０００４】
例えば、ＶＭが実際に使用している資源の使用率が使用率レンジを下回る場合、一部のサーバにＶＭが集められ、その他のサーバが停止される。また、ＶＭが実際に使用している資源の使用率が使用率レンジを上回る場合、新たにサーバが起動される。そして、起動したサーバにＶＭを移動するマイグレーションが実行される。
【０００５】
例えば、動作周波数１ＧＨｚ相当のＣＰＵが仮想的に割当てられたＶＭを６台動作させる情報処理システム１００を考える。図１に、動作周波数１ＧＨｚ相当のＣＰＵが仮想的に割当てられたＶＭ１−ＶＭ６のＣＰＵの使用率について模式的に示す。図１に示す使用率１０１は、ＶＭ１が、動作周波数１ＧＨｚ相当のＣＰＵを４０％の使用率で動作させていることを示している。同様に、使用率１０２、１０３、１０４、１０５および１０６は、それぞれＶＭ２、ＶＭ３、ＶＭ４、ＶＭ５およびＶＭ６が、動作周波数１ＧＨｚ相当のＣＰＵを４０％の使用率で動作させていることを示している。
【０００６】
図１に示した使用率の情報処理システム１００は、動作周波数２ＧＨｚのＣＰＵを有する、３台のサーバを用いて実現することができる。この場合のＣＰＵの使用率を図２に模式的に示す。
【０００７】
なお、図１との比較を容易にするために、図２に示す使用率２０１−２０３は、動作周波数１ＧＨｚのＣＰＵの使用率を基準にしている。動作周波数が２ＧＨｚの場合、動作周波数１ＧＨｚの場合と比べて２倍の動作周波数となるので、サーバ１−３の最大使用率は２００％となっている。図３に示す使用率３０１−３０２および図４に示す使用率４０１−４０３についても同様である。
【０００８】
図２に示すように、ＶＭ１とＶＭ２をサーバ１で動作させ、ＶＭ３とＶＭ４をサーバ２で動作させ、ＶＭ５とＶＭ６をサーバ３で動作させることにより、図１に示した情報処理システム１００を実現することができる。このときのサーバ１、２および３のＣＰＵの使用率２０１、２０２および２０３は、４０％（＝（４０％＋４０％）÷２００％×１００）となる。
【０００９】
また、サーバ２で動作しているＶＭ３をサーバ１に移動し、サーバ３で動作しているＶＭ５およびＶＭ６をサーバ２に移動することにより、図２に示した情報処理システム１００は、２台のサーバ１および２を用いて実現することもできる。この場合、サーバ３を停止することができる。この場合のＣＰＵの使用率を図３に模式的に示す。
【００１０】
また、図３に示したサーバ１上で動作するＶＭ１およびＶＭ２の使用率が同時に８０％まで上昇した場合、図３に示したサーバ１が有するＣＰＵの使用率は２００％となる。この場合、再度停止していたサーバ３を起動してＶＭ２をサーバ３に移動することにより、図２に示した情報処理システム１００は、３台のサーバ１−３を用いて実現することができる。この場合のＣＰＵの使用率を図４に模式的に示す。
【００１１】
以上のような処理を行って、サーバ１−３が有するＣＰＵの使用率を一定の範囲となるように調整することにより、稼働するサーバ数を減らして電気代などのコストを削減することが知られている。
【００１２】
上記技術に関連して、複数の仮想計算機に所望の割合でＣＰＵ資源を配分して仮想計算機を走行させる仮想計算機システムにおいて、ＣＰＵ配分が不均等であっても、指定したＣＰＵ資源の配分比を維持して実ＣＰＵの有効利用を図るＣＰＵ制御方式が知られている。
【００１３】
また、実資源の使用状況に応じて効果的に計算機システム全体の電力消費量の低減を図る情報処理装置が知られている。
また、データセンタにおいて、ユーザ企業ごとに夫々独立な計算資源を割当て、負荷に応じてその割当てを自動的にリアルタイムに変更する計算機資源分割装置が知られている。
【先行技術文献】
【特許文献】
【００１４】
【特許文献１】特開平０５−３２４３６１号公報
【特許文献２】特開平０９−１７９６６７号公報
【特許文献３】特開２００２−０２４１９２号公報
【発明の概要】
【発明が解決しようとする課題】
【００１５】
しかし、使用率レンジを低く設定すると、稼働するサーバの台数をあまり減らすことができないため、コスト削減効果が小さい。また、使用率レンジを高く設定すると、サーバに未使用の資源が少なくなる。この場合、ＶＭが使用する資源が急に増加すると、他のＶＭが使用できる資源が不足する。そのため、ＶＭに割当てた資源、例えば、ＣＰＵやメモリなどに見合う性能を得ることができなくなる。一定の品質を保証するＳＬＡ（Ｓｅｒｖｉｃｅ  Ｌｅｖｅｌ  Ａｇｒｅｅｍｅｎｔ）が導入されている場合には、ＳＬＡ違反となる可能性がある。
【００１６】
本プログラムは、上述した問題に鑑みてなされたものであり、その解決しようとする課題は、割当てられた資源に見合う性能を仮想機械が発揮するように情報処理装置を管理することである。
【課題を解決するための手段】
【００１７】
本プログラムの１つの観点によれば、本プログラムは、以下の処理を、仮想機械を提供する複数の情報処理装置を管理する管理装置に実行させる。
管理装置は、第１の情報処理装置と該第１の情報処理装置が提供している仮想機械の属性情報との対応関係と、第２の情報処理装置と該第２の情報処理装置が提供している仮想機械の属性情報との対応関係とを記憶する記憶部を参照する。
【００１８】
そして、管理装置は、前記第１の情報処理装置が提供している仮想機械のうち、配置対象の仮想機械の属性と同じ属性の仮想機械の数が、前記第２の情報処理装置が提供している仮想機械のうち、該配置対象の仮想機械の属性と同じ属性の仮想機械の数よりも少ないことが検出する。この場合、管理装置は、前記第１の情報処理装置に、該配置対象の仮想機械を配置する。
【発明の効果】
【００１９】
本プログラムによると、割当てられた資源に見合う性能を仮想機械が発揮するように情報処理装置を管理することができる。
【図面の簡単な説明】
【００２０】
【図１】動作周波数１ＧＨｚ相当のＣＰＵが仮想的に割当てられたＶＭ１−ＶＭ６のＣＰＵの使用率を模式的に示す図である。
【図２】図１に示したＣＰＵの使用率の情報処理システムを、動作周波数２ＧＨｚのＣＰＵを有する、３台のサーバを用いて実現する場合のＣＰＵの使用率を模式的に示す図である。
【図３】図２に示した情報処理システムを、２台のサーバを用いて実現した場合のＣＰＵの使用率を模式的に示す図である。
【図４】図３に示した情報処理システムを、停止していたサーバ３を再度起動してＶＭ２をサーバ３に移動することにより、３台のサーバ１−３を用いて実現した場合のＣＰＵの使用率を模式的に示す図である。
【図５】第１の実施例に係る管理装置を使用した情報処理システムを説明する図である。
【図６】第２の実施例に係る管理サーバを用いた情報処理システムの構成例を示す図である。
【図７】第２の実施例に係る管理サーバの構成例を示す図である。
【図８】第２の実施例に係るサーバテーブルの具体例を示す図である。
【図９】第２の実施例に係るＶＭテーブルの具体例を示す図である。
【図１０】業務Ａを行うＶＭ８をサーバ２に追加した場合のＶＭテーブルを示す図である。
【図１１】業務Ａを行うＶＭ８のＣＰＵ使用率が１００％まで増加した場合のＶＭテーブルを示す図である。
【図１２】業務Ａを行うＶＭ８のＣＰＵ使用率が１００％まで増加した場合のサーバテーブルを示している。
【図１３】サーバ２上で動作しているＶＭ４をサーバ２に移動した場合のＶＭテーブルを示す図である。
【図１４】サーバ２上で動作しているＶＭ４をサーバ２に移動した場合のサーバテーブルを示す図である。
【図１５】第２の実施例に係るＶＭの追加処理を示すフローチャートである。
【図１６】第２の実施例に係る管理サーバの処理の概要を示す図である。
【図１７】第２の実施例に係るＶＭの移動処理を示すフローチャートである。
【図１８】第２の実施例に係るＶＭの削除処理を示すフローチャートである。
【図１９】第２本実施例に係る管理サーバの具体的な構成例を示す図である。
【図２０】ＶＭをグループに分類する基準に、ＶＭが接続されるネットワークを使用した場合のＶＭテーブルを示す図である。
【図２１】ＶＭをグループに分類する基準に、ＶＭを使用するユーザを使用した場合のＶＭテーブルを示す図である。
【発明を実施するための形態】
【００２１】
以下、本実施形態の一例について、図５−図２１に基づいて説明する。なお、以下に説明する実施形態はあくまでも例示であり、以下に明示しない種々の変形や技術の適用を排除する意図ではない。すなわち、本実施形態は、その趣旨を逸脱しない範囲で、各実施例の一部または全部を組み合わせるなど種々変形して実施することができる。
【実施例１】
【００２２】
図５は、本実施例に係る管理装置５２０を使用した情報処理システム５００を説明する図である。
情報処理システム５００は、第１の情報処理装置５１０と、第２の情報処理装置５２０と、管理装置５３０と、を備える。そして、第１の情報処理装置５１０と、第２の情報処理装置５２０と、管理装置５３０と、はネットワークまたは専用線などを介して、互いに通信可能に接続されている。
【００２３】
第１の情報処理装置５１０および第２の情報処理装置５２０は、ＣＰＵやメモリなど情報処理を行うために必要な構成要素を備える一般的な情報処理装置によって実現することができる。
【００２４】
第１の情報処理装置５１０および第２の情報処理装置５２０は、所定のプログラムを実行し、プログラムの命令にしたがって１または２以上の仮想機械を提供する。仮想機械には、仮想的に所定の性能の資源が割当てられる。
【００２５】
「資源」とは、情報処理装置が情報処理を行うために使用する資源のことである。情報処理に必要なハードウェア、例えば、情報処理装置に備わるＣＰＵ、メモリ、磁気ディスク装置やネットワークなどの入出力装置など、の一部または全部が資源として使用することができる。
【００２６】
図５に示す第１の情報処理装置５１０は、仮想機械Ａと仮想機械Ｂを提供している場合の例を示している。また、第２の情報処理装置５２０は、仮想機械Ａと仮想機械Ｃを提供している場合の例を示している。
【００２７】
図５では、第１の情報処理装置５１０と第２の情報処理装置５２０が提供している仮想機械Ａは、後述する属性情報に基づく属性が同一である仮想機械であることを示している。
【００２８】
ただし、図５に示す第１の情報処理装置５１０および第２の情報処理装置５２０が提供している仮想機械は例示であって、管理装置５３０を使用する情報処理システム５００の構成を限定する趣旨ではない。
【００２９】
管理装置５３０は、第１の情報処理装置５１０および第２の情報処理装置５２０を管理する装置である。管理装置５３０は、第１の情報処理装置５１０などと同様に、ＣＰＵやメモリなど情報処理を行うために必要な構成要素を備える一般的な情報処理装置によって実現することができる。管理装置５３０は、所定のプログラムを実行することにより、本実施例に係る情報処理装置の管理を実現することができる。また、管理装置５３０は、記憶部５３１を備えることができる。
【００３０】
記憶部５３１は、第１の情報処理装置５１０と、第１の情報処理装置５１０が提供している仮想機械、例えば、図５に示す仮想機械Ａや仮想機械Ｂなどの属性情報と、の対応関係を記憶する。同様に、記憶部５３１は、第２の情報処理装置５２０と、第２の情報処理装置５２０が提供している仮想機械、例えば、図５に示す仮想機械Ａや仮想機械Ｃなどの属性情報と、の対応関係を記憶する。
【００３１】
属性情報とは、第１の情報処理装置５１０や第２の情報処理装置５２０が提供している仮想機械、例えば、図５に示す仮想機械Ａ、ＢおよびＣなどが属する属性を示す情報である。属性情報には、情報処理にかかる負荷の変動が同一または類似する傾向となる属性、例えば、仮想機械の使用目的、仮想機械が使用するネットワーク、仮想機械を利用するユーザなどを使用することができる。
【００３２】
管理装置５３０は、第１の情報処理装置５１０と第１の情報処理装置５１０が提供している仮想機械の属性情報との対応関係と、第２の情報処理装置５２０と第２の情報処理装置５２０が提供している仮想機械の属性情報との対応関係とを記憶する記憶部を参照する。
【００３３】
そして、管理装置５３０は、第１の情報処理装置５１０が提供している仮想機械のうち、配置対象の仮想機械の属性と同じ属性の仮想機械の数が、第２の情報処理装置５２０が提供している仮想機械のうち、配置対象の仮想機械の属性と同じ属性の仮想機械の数よりも少ないことを検出する。この場合、管理装置５３０は、第１の情報処理装置５１０に、配置対象の仮想機械を配置する。
【００３４】
「配置する」には、例えば、第１の情報処理装置５１０に配置対象の仮想機械を新たに追加するという意味も、第２の情報処理装置５２０上にある配置対象の仮想機械を第１の情報処理装置５１０に移動するという意味も、含むことができる。
【００３５】
例えば、図５の例では、第１の情報処理装置５１０が提供している仮想機械のうち、仮想機械Ｃの属性と同じ属性の仮想機械の数が、第２の情報処理装置５２０が提供している仮想機械のうち、仮想機械Ｃの属性と同じ属性の仮想機械の数よりも少ない。したがって、仮想機械Ｃを追加する場合、管理装置５３０は、第１の情報処理装置５１０に仮想機械Ｃを追加する。
【００３６】
以上のように、管理装置５３０は、第１の情報処理装置５１０が提供している仮想機械のうち、配置対象の仮想機械の属性と同じ属性の仮想機械の数が、第２の情報処理装置５２０が提供している仮想機械のうち、配置対象の仮想機械の属性と同じ属性の仮想機械の数よりも少ない場合、第１の情報処理装置５１０に、配置対象の仮想機械を配置する。
【００３７】
そのため、同一の属性の仮想機械の数を少なくできるので、情報処理にかかる負荷の変動が同一または類似の傾向にある仮想機械も少ない。したがって、多くの仮想機械の負荷が同時に上昇して、情報処理装置の負荷が急に上昇することを回避することができる。その結果、負荷の上昇により一部の仮想機械が使用する資源が増加して他の仮想機械が使用できる資源が減少することを回避することができる。各仮想機械は、割当てられている資源を、制限されることなく使用できるので、割当てられた資源に見合う性能を発揮することができる。
【実施例２】
【００３８】
図６は、本実施例に係る管理サーバ６１０を用いた情報処理システム６００の構成例を示す図である。
情報処理システム６００は、管理サーバ６１０と、サーバ６２０、サーバ６３０およびサーバ６４０と、を備える。そして、管理サーバ６１０、サーバ６２０、サーバ６３０およびサーバ６４０は、ネットワークや専用線などを介して互いに通信可能に接続されている。
管理サーバ６１０は、ユーザの操作により、サーバ６２０、６３０および６４０にＶＭを追加する。
【００３９】
また、管理サーバ６１０は、サーバ６２０、６３０および６４０にかかる情報処理ときの負荷を監視する。そして、管理サーバ６１０は、サーバ６２０、６３０および６４０にかかる負荷が、あらかじめ設定された使用率レンジ内となるように、各サーバ上で動作しているＶＭの移動やサーバの起動・停止を行う。
【００４０】
サーバ６２０は、情報処理に必要なＣＰＵやメモリ等のハードウェア６２１を備える。そして、ハードウェア６２１上で、ハイパーバイザ６２２が動作している。ハイパーバイザ６２２は、仮想的に所定の性能の資源を割当てたＶＭを実現するプログラムである。図６には、ＶＭ１とＶＭ２がハイパーバイザ６２２上で動作している場合の例を示している。
【００４１】
同様に、サーバ６３０は、ハードウェア６３１を備える。そして、ハードウェア６３１上で、ハイパーバイザ６３２が動作している。図６には、ハイパーバイザ６３２上で、ＶＭ３、ＶＭ４およびＶＭ５が動作している場合の例を示している。また、サーバ６４０は、ハードウェア６４１を備える。そして、ハードウェア６４１上で、ハイパーバイザ６４２が動作している。図６には、ハイパーバイザ６４２上で、ＶＭ６が動作している場合の例を示している。
【００４２】
なお、管理サーバ６１０、サーバ６２０、サーバ６３０およびサーバ６４０は、一般的な情報処理装置が備えるハードウェア構成によって実現できる。管理サーバ６１０の具体的な構成例については、図１９に示して後述する。
また、図６には、サーバを３台備える場合の情報処理システム６００を例示したが、管理サーバ６０１が管理するサーバの台数を限定する趣旨ではないのは当然である。
【００４３】
図７は、本実施例に係る管理サーバ６１０の構成例を示す図である。
管理サーバ６１０は、配置／構成制御部６１１と、ＶＭ制御部６１２と、サーバ電源制御部６１３と、ＶＭ管理用ＤＢ（ＤａｔａＢａｓｅ）６１４と、を備える。
配置／構成制御部６１１は、サーバ６２０、６３０および６４０から、定期的に、各サーバの負荷を示す負荷情報を取得する。本実施例では、負荷情報として、ＣＰＵの使用率を使用する場合を例に説明する。
【００４４】
「使用率」には、例えば、単位時間当りに資源が占有される割合を使用することができる。この場合、ＣＰＵの使用率は、単位時間当りにＣＰＵが占有されている割合となる。ただし、「使用率」は、必要に応じて適切に定義したものを使用すればよい。
【００４５】
配置／構成制御部６１１は、ユーザから新たなＶＭの追加の指示を受けると、ＶＭを追加するサーバをサーバ６２０、６３０または６４０から選出する。そして、配置／構成制御部６１１は、選出したサーバ上に新たなＶＭを起動するように、ＶＭ制御部６１２に指示する。
【００４６】
また、配置／構成制御部６１１は、ＣＰＵの使用率が、あらかじめ設定された使用率レンジの下限値より低いサーバを検出すると、その検出したサーバ上で動作しているＶＭの移動先をサーバ６２０、６３０または６４０から選出する。そして、配置／構成制御部６１１は、あらかじめ設定された使用率レンジの下限値よりＣＰＵの使用率が低いサーバ上で動作しているＶＭすべてを、選出したサーバに移動するように、ＶＭ制御部６１２に指示する。そして、配置／構成制御部６１１は、ＶＭの移動によりサーバ上で動作するＶＭがなくなると、その動作するＶＭがなくなったサーバを停止するように、サーバ電源制御部６１３に指示する。
【００４７】
また、配置／構成制御部６１１は、ＣＰＵの使用率が、あらかじめ設定された使用率レンジの上限値より高いサーバを検出すると、その検出したサーバ上で動作しているＶＭの移動先をサーバ６２０、６３０または６４０から選出する。そして、配置／構成制御部６１１は、あらかじめ設定された使用率レンジの上限値よりＣＰＵの使用率が高いサーバ上で動作しているＶＭのうち負荷が最も低いＶＭを、選出したサーバに移動するように、ＶＭ制御部６１２に指示する。ただし、負荷が最も低いＶＭを移動することに限定する趣旨ではなく、任意の１または２以上のＶＭを選んで移動してもよい。なお、負荷が最も低いＶＭを移動するのは、ＶＭを移動する際にかかるサーバの負荷を抑えつつ、サーバの使用率を下げるためである。ＶＭを移動させる移動先のサーバがない場合、配置／構成制御部６１１は、停止中のサーバを起動するように、サーバ電源制御部６１３に指示する。そして、配置／構成制御部６１１は、起動したサーバにＶＭを移動するように、ＶＭ制御部６１２に指示する。
【００４８】
ＶＭ制御部６１２は、配置／構成制御部６１１からの指示にしたがって、サーバに対して新たなＶＭの起動を指示する。また、ＶＭ制御部６１２は、配置／構成制御部６１１からの指示にしたがって、サーバ間でＶＭを移動するマイグレーションを、サーバに指示する。
【００４９】
サーバ電源制御部６１３は、配置／構成制御部６１１からの指示にしたがって、サーバに停止を指示する。また、サーバ電源制御部６１３は、配置／構成制御部６１１からの指示にしたがって、サーバに起動を指示する。
【００５０】
ＶＭ管理用ＤＢ６１４は、サーバに関する情報を含むサーバテーブル８００と、ＶＭに関する情報を含むＶＭテーブル９００と、を少なくとも記憶する記憶装置である。サーバテーブル８００およびＶＭテーブル９００については、それぞれ図８と図９に具体例を示す。
【００５１】
なお、本実施例では、負荷情報として各サーバに備わるＣＰＵの使用率を使用する場合を示したが、負荷情報を各サーバに備わるＣＰＵの使用率に限定する趣旨ではない。例えば、実行待ちプロセス数の平均数を表す、ＣＰＵのロードアベレージや、メモリの使用率など情報処理によってサーバにかかる負荷を示す情報を負荷情報として用いることができる。
【００５２】
また、図７には、サーバ６２０、６３０および６４０から配置／構成制御部６１１、ＶＭ制御部６１２やサーバ電源制御部６１３からサーバ６２０、６３０および６４０に矢印が記載されているが、これはデータの流れを示すものである。したがって、図６に示した構成と異なる構成を意図するものではない。
【００５３】
図８は、本実施例に係るサーバテーブル８００の具体例を示す図である。
サーバテーブル８００は、サーバ毎に、「ＣＰＵ性能」、「電源状態」、「ＣＰＵ使用率」および「ＣＰＵ使用量」についての情報を含む。
【００５４】
「ＣＰＵ性能」は、サーバに備わるＣＰＵの情報処理能力を示す情報である。本実施例では、「ＣＰＵ性能」として、ＣＰＵの動作周波数を使用している。
「電源状態」は、サーバの電源状態、すなわちサーバの電源がＯＮ状態かＯＦＦ状態かを示す情報である。なお、ＯＦＦ状態には、サーバが低消費電力の状態やサスペンド状態などを含むこともできる。
【００５５】
「ＣＰＵ使用率」は、単位時間当りにＣＰＵが占有される割合を示す情報である。
「ＣＰＵ使用量」は、以下の式（１）で求められる情報である。
「ＣＰＵ使用量」＝「ＣＰＵ性能」×「ＣＰＵ使用率」÷１００  ・・・（１）
【００５６】
なお、図８に示すＣＰＵ性能は、すべて３．０ＧＨｚとなっているが、これは説明を簡単にするためである。したがって、ＣＰＵ性能を、３．０ＧＨｚに限定する趣旨ではない。同様に、後述するサーバテーブル１２００やサーバテーブル１４００についても、ＣＰＵ性能を、３．０ＧＨｚに限定する趣旨ではない。
【００５７】
図９は、本実施例に係るＶＭテーブル９００の具体例を示す図である。
ＶＭテーブル９００は、ＶＭ毎に、「ＣＰＵ性能」、「ＣＰＵ使用率」、「ＣＰＵ使用量」、「グループ」および「稼働サーバ名」についての情報を含む。
【００５８】
「ＣＰＵ性能」は、ＶＭに仮想的に割当てられたＣＰＵの情報処理能力を示す情報である。図８と同様に、本実施例では、「ＣＰＵ性能」として、ＣＰＵの動作周波数を使用している。
【００５９】
「ＣＰＵ使用率」は、ＶＭに仮想的に割当てられたＣＰＵが単位時間当りに占有されている割合を示す情報である。
「ＣＰＵ使用量」は、式（１）で求められる情報である。
【００６０】
「グループ」は、ＶＭが使用される業務を基準にして分類されるグループを示す情報である。図９に示す例では、ＶＭ１、ＶＭ５およびＶＭ７は、業務Ａに使用されるグループであることを示している。同様に、図９に示す例では、ＶＭ２およびＶＭ３は、業務Ｂに使用されるグループであることを示し、ＶＭ４およびＶＭ６は、業務Ｃに使用されるグループであることを示している。
【００６１】
「稼働サーバ名」は、ＶＭが動作しているサーバの名称、すなわち識別情報である。
本実施例では、図９に示した「グループ」を、ＶＭが属する属性を示す属性情報として使用している。同一の属性を持つＶＭは、情報処理にかかる負荷の変動が同一または類似する傾向にある。したがって、同一の属性を持つＶＭを同一のサーバ上で動作させると、急激な負荷の上昇を招く可能性がある。そのため、同一の属性を持つＶＭは、なるべく異なるサーバ上に分散して動作させることが望ましい。
【００６２】
なお、本実施例では、仮想的にＶＭに割当てるＣＰＵ性能がすべて１．０ＧＨｚとなっている。そのため、図９に示したＣＰＵ性能は、すべて１．０ＧＨｚとなっている。これは、説明を簡単にするためである。仮想的にＶＭに割当てるＣＰＵ性能を、１．０ＧＨｚに限定する趣旨ではない。同様に、後述するＶＭテーブル１０００、ＶＭテーブル１１００およびＶＭテーブル１３００についても、仮想的にＶＭに割当てるＣＰＵ性能を、１．０ＧＨｚに限定する趣旨ではない。
【００６３】
また、本実施例では、属性情報として、ＶＭが行う業務を使用する場合を示すが、これに限定する趣旨ではない。必要に応じて、情報処理にかかる負荷の変動が同一または類似する傾向を示す共通の情報を属性情報として使用してもよい。例えば、図２０に示す「ネットワーク」や図２１に示す「ユーザ」などを、属性情報として使用することもできる。また、例えば、ＣＰＵが備えるコア数、スレッド数、アーキテクチャの種別、Ｌ２キャッシュやＬ３キャッシュの容量、バス速度、使用するメモリの種別、一定の基準から導き出される性能スコアなどを、属性情報として使用することもできる。
【００６４】
図１０は、ＶＭテーブル９００が示す状態で、業務Ａを行うＶＭ８をサーバ２に追加した場合のＶＭテーブル１０００を示している。追加直後は、ＶＭ８のＣＰＵ使用率が０％なので、ＶＭ８のＣＰＵ使用量も０ＧＨｚとなっている。
【００６５】
図１１は、ＶＭテーブル１０００が示す状態で、業務Ａを行うＶＭ８のＣＰＵ使用率が１００％、すなわち、ＣＰＵ使用量が１．０ＧＨｚまで増加した場合のＶＭテーブル１１００を示している。そして、図１２は、ＶＭテーブル１１００が示す状態におけるサーバテーブル１２００を示している。
【００６６】
ＶＭ８のＣＰＵ使用量が１．０ＧＨｚまで増加すると、サーバ２上で動作するＶＭ３、ＶＭ４およびＶＭ８のＣＰＵ使用量の合計は、２．７ＧＨｚとなる。したがって、図１２に示す、サーバ２のＣＰＵ使用量は、２．７ＧＨｚとなる。このときのサーバ２のＣＰＵ使用率は、９０．０％まで増加する。
【００６７】
図１３は、ＶＭテーブル１１００が示す状態で、サーバ２上で動作しているＶＭ４をサーバ４に移動した場合のＶＭテーブル１３００を示している。また、図１４は、ＶＭテーブル１３００が示す状態におけるサーバテーブル１４００を示している。
【００６８】
ＶＭ４がサーバ２からサーバ４に移動されると、サーバ２上で動作するＶＭは、ＶＭ３とＶＭ８だけとなる。この場合、ＶＭ３とＶＭ８のＣＰＵ使用量の合計は、２．０ＧＨｚとなる。したがって、図１４に示す、サーバ２のＣＰＵ使用量は、２．０ＧＨｚとなる。サーバ２のＣＰＵ使用率は、６６．７％まで減少する。
【００６９】
一方、ＶＭ４がサーバ２からサーバ４に移動すると、サーバ４上で動作するＶＭは、ＶＭ４とＶＭ７となる。ＶＭ４とＶＭ７のＣＰＵ使用量の合計は、１．７ＧＨｚとなる。したがって、図１４に示す、サーバ４のＣＰＵ使用量は、１．７ＧＨｚとなる。サーバ４のＣＰＵ使用率は、５６．７％まで増加する。
【００７０】
図１５は、本実施例に係るＶＭの追加処理を示すフローチャートである。
ユーザから新たなＶＭの追加の指示を受けると、管理サーバ６１０は、以下に示すＶＭの追加処理の実行を開始する（ステップＳ１５００）。
【００７１】
ステップＳ１５０１において、管理サーバ６１０は、各サーバ、例えば図６に示したサーバ６２０、６３０および６４０から、負荷情報を取得する。この負荷情報には、２つの種類の負荷情報が含まれる。１つは、サーバに備わるＣＰＵについての負荷情報、例えば、図８に示したＣＰＵ使用率である。この負荷情報を「ＣＰＵ負荷情報」という。もう１つは、サーバ上で動作しているＶＭに仮想的に割当てられたＣＰＵについての負荷情報、例えば、図９に示したＣＰＵ使用率である。この負荷情報を「ＶＭ負荷情報」という。
【００７２】
管理サーバ６１０は、取得したＣＰＵ負荷情報を、サーバテーブル８００に記憶する。また、管理サーバ６１０は、取得したＶＭ負荷情報を、ＶＭテーブル９００に記憶する。
ステップＳ１５０２において、管理サーバ６１０は、追加するＶＭが属するグループを決定する。例えば、管理サーバ６１０は、ユーザが指定する業務のグループを、追加するＶＭが属するグループと決定する。
【００７３】
ステップＳ１５０３において、管理サーバ６１０は、サーバテーブル８００を参照し、サーバのＣＰＵ使用率が使用率レンジの上限値を超えていないサーバを抽出する。この抽出されたサーバが、ＶＭを追加するサーバの候補となる。
【００７４】
本実施例では、一例として使用率レンジが「２０％−８０％」である場合を考える。例えば、サーバテーブル８００では、サーバ１−４のＣＰＵ使用率が、すべて「２０％−８０％」の範囲内にある。この場合、管理サーバ６１０は、ＶＭを追加するサーバの候補として、サーバ１−４を抽出する。
【００７５】
ステップＳ１５０４において、管理サーバ６１０は、ＶＭテーブル９００を参照し、ステップＳ１５０３で抽出したサーバのうち、ステップＳ１５０２で決定したグループと同一グループのＶＭが最も少ないサーバを選択する。
【００７６】
例えば、ステップＳ１５０２で、追加するＶＭが属するグループが、業務Ａのグループであると決定した場合、管理サーバ６１０は、業務Ａのグループに属するＶＭが最も少ないサーバを選択する。
【００７７】
ＶＭテーブル９００を参照すると、サーバ１では、業務Ａのグループに属するＶＭ１が稼働している。サーバ３では、業務Ａのグループに属するＶＭ５が稼働している。サーバ４では、業務Ａのグループに属するＶＭ７が稼働している。これに対して、サーバ２では、業務Ａのグループに属するＶＭは稼働していない。この場合、管理サーバ６１０は、ステップＳ１５０３で抽出したサーバ１−４のうち、サーバ２を選択する。
【００７８】
ステップＳ１５０５において、管理サーバ６１０は、ＶＭを追加する。例えば、管理サーバ６１０は、ステップＳ１５０４で選択したサーバに対して、新たなＶＭを追加するように指示を行う。すると、指示を受けたサーバは、新たなＶＭを起動する。
【００７９】
ステップＳ１５０６において、管理サーバ６１０は、ＶＭ管理用ＤＢ６１４を更新する。例えば、ＶＭ８をサーバ２に追加した場合、管理サーバ６１０は、図１０に示したＶＭテーブル１０００のように、ＶＭ管理用ＤＢ６１４に記憶されるＶＭテーブル９００を更新する。
【００８０】
図１６は、本実施例に係る管理サーバ６１０の処理の概要を示す図である。管理サーバ６１０は、一定間毎に、または必要が生じた時に、図１６に示す負荷監視・制御処理を実行することができる。
【００８１】
ステップＳ１６０１において、管理サーバ６１０は、各サーバ、例えば図６に示したサーバ６２０、６３０および６４０から、負荷情報、すなわち、図１５で説明したＣＰＵ負荷情報およびＶＭ負荷情報を取得する。そして、管理サーバ６１０は、取得したＣＰＵ負荷情報を、サーバテーブル８００に記憶し、取得したＶＭ負荷情報を、ＶＭテーブル９００に記憶する。
【００８２】
なお、ステップＳ１７０１の処理は、必須の処理ではない。例えば、ステップＳ１７０１の処理は、図１６に示したステップＳ１６０１の処理で代用することもできる。
ステップＳ１６０１の処理が完了すると、管理サーバ６１０は、以下に示すステップＳ１６０２−Ｓ１６１０の処理を、すべてのサーバについて行う。管理サーバ６１０は、サーバテーブル８００に登録されているサーバから１つのサーバを選択し、処理をステップＳ１６０２に移行する。以下の処理では、この選択したサーバを「対象サーバ」という。
【００８３】
ステップＳ１６０２において、管理サーバ６１０は、サーバテーブル８００を参照し、対象サーバのＣＰＵ使用率を取得する。そして、管理サーバ６１０は、対象サーバのＣＰＵ使用率が、使用率レンジの下限値より低いか否かを判定する。同様に、管理サーバ６１０は、対象サーバのＣＰＵ使用率が、使用率レンジの上限値より高いか否かを判定する。
【００８４】
ステップＳ１６０３において、対象サーバのＣＰＵ使用率が使用率レンジの下限値より小さい場合（ステップＳ１６０３  ＹＥＳ）、管理サーバ６１０は、対象サーバのＣＰＵ使用率が低いと判断して処理をステップＳ１６０４に移行する。そして、ステップＳ１６０４において、管理サーバ６１０は、対象サーバ上で動作しているすべてのＶＭに対して、ＶＭを他のサーバに移動する処理を行う。
【００８５】
対象サーバ上のすべてのＶＭの移動が完了すると、管理サーバ６１０は、処理をステップＳ１６０５に移行する。そして、ステップＳ１６０５において、管理サーバ６１０は、動作するＶＭがなくなった対象サーバを停止する。
【００８６】
サーバテーブル８００に登録されているサーバに、ステップＳ１６０２−Ｓ１６１０の処理を行っていないサーバがある場合、管理サーバ６１０は、サーバテーブル８００に登録されているサーバから新たな対象サーバを選択する。そして、管理サーバ６１０は、処理をステップＳ１６０２に移行する。
【００８７】
一方、ステップＳ１６０３において、対象サーバのＣＰＵ使用率が使用率レンジの下限値以上の場合（ステップＳ１６０３  ＮＯ）、管理サーバ６１０は、対象サーバの負荷は低くないと判断して処理をステップＳ１６０６移行する。
【００８８】
ステップＳ１６０６において、対象サーバのＣＰＵ使用率が使用率レンジの上限値以下の場合（ステップＳ１６０６  ＮＯ）、管理サーバ６１０は、対象サーバのＣＰＵ使用率が高くないと判断する。サーバテーブル８００に登録されているサーバに、ステップＳ１６０２−Ｓ１６１０の処理を行っていないサーバがある場合、管理サーバ６１０は、サーバテーブル８００に登録されているサーバから新たな対象サーバを選択する。そして、管理サーバ６１０は、処理をステップＳ１６０２に移行する。
【００８９】
一方、対象サーバのＣＰＵ使用率が使用率レンジの上限値より大きい場合（ステップＳ１６０６  ＹＥＳ）、管理サーバ６１０は、対象サーバのＣＰＵ使用率が高いと判断して処理をステップＳ１６０７に移行する。
【００９０】
ステップＳ１６０７において、管理サーバ６１０は、対象サーバ上で動作するＶＭのうち、負荷が最も低いＶＭを選択する。例えば、管理サーバ６１０は、ＶＭテーブル９００を参照し、対象サーバ上で動作しているＶＭのうち、ＣＰＵの使用率が最も低いＶＭを選択する。
【００９１】
ステップＳ１６０８において、管理サーバ６１０は、ステップＳ１６０７で選択したＶＭに対して、ＶＭを他のサーバに移動する処理を行う。
ステップＳ１６０９において、ＶＭの移動先がない場合、すなわち、ＶＭの移動先がないためにステップＳ１６０８の処理が実行できなかった場合（ステップＳ１６０９  ＹＥＳ）、管理サーバ６１０は、処理をステップＳ１６１０に移行する。そして、ステップＳ１６１０において、管理サーバ６１０は、停止しているサーバを起動する。サーバが起動すると、管理サーバ６１０は、起動したサーバにＶＭを移動する。
【００９２】
サーバテーブル８００に登録されているサーバに、ステップＳ１６０２−Ｓ１６１０の処理を行っていないサーバがある場合、管理サーバ６１０は、サーバテーブル８００に登録されているサーバから新たな対象サーバを選択する。そして、管理サーバ６１０は、処理をステップＳ１６０２に移行する。
【００９３】
また、サーバテーブル８００に登録されているすべてのサーバについてステップＳ１６０２−Ｓ１６１０の処理を行うと、管理サーバ６１０は、処理をステップＳ１６１１に移行して負荷監視・制御処理を終了する。
【００９４】
図１７は、本実施例に係るＶＭの移動処理を示すフローチャートである。
図１６に示したステップＳ１６０４またはＳ１６０８に処理が移行すると、管理サーバ６１０は、以下に示すＶＭの移動処理の実行を開始する（ステップＳ１７００）。
【００９５】
ステップＳ１７０１において、管理サーバ６１０は、各サーバ、例えば図６に示したサーバ６２０、６３０および６４０から、負荷情報、すなわち、図１５で説明したＣＰＵ負荷情報およびＶＭ負荷情報を取得する。そして、管理サーバ６１０は、取得したＣＰＵ負荷情報をサーバテーブル８００に記憶する。また、管理サーバ６１０は、取得したＶＭ負荷情報をＶＭテーブル９００に記憶する。
【００９６】
ステップＳ１７０２において、管理サーバ６１０は、サーバテーブル８００を参照し、ＶＭ移動後のサーバのＣＰＵ使用率が使用率レンジの上限値を超えていないサーバを抽出する。この抽出されたサーバが、ＶＭの移動先のサーバの候補となる。
なお、サーバ２上で動作しているＶＭ４を移動する場合を例にとると、ＶＭ移動後のサーバのＣＰＵ使用率は、以下のように求めることができる。
【００９７】
（１）管理サーバ６１０は、ＶＭテーブル１１００を参照し、移動するＶＭ４のＣＰＵ使用量（０．７ＧＨｚ）を取得する。
【００９８】
（２）管理サーバ６１０は、サーバテーブル１２００を参照し、サーバ１のＣＰＵ使用量（１．８ＧＨｚ）を取得する。
（３）管理サーバ６１０は、ＶＭ４のＣＰＵ使用量（０．７ＧＨｚ）と、サーバ１のＣＰＵ使用量（１．８ＧＨｚ）と、の和（２．５ＧＨｚ）を求める。そして、管理サーバ６１０は、以下の式（２）から、ＶＭ４がサーバ１に移動した場合のサーバ１のＣＰＵ使用率（８３．３％）を求める。
「ＣＰＵ使用率」＝「ＣＰＵ使用量」÷「ＣＰＵ性能」×１００  ・・・（２）
（４）同様に、管理サーバ６１０は、ＶＭ４がサーバ３に移動した場合のサーバ３のＣＰＵ使用率（７０．０％）と、ＶＭ４がサーバ４に移動した場合のサーバ４のＣＰＵ使用率（５６．７％）を求める。
【００９９】
上記の場合、管理サーバ６１０は、ＶＭ４移動後のサーバのＣＰＵ使用率が使用率レンジの範囲内となるサーバ３とサーバ４を、ＶＭの移動先のサーバの候補として抽出する。
ステップＳ１７０３において、管理サーバ６１０は、ＶＭテーブル９００を参照し、ステップＳ１７０２で抽出したサーバのうち、移動するＶＭと同一グループのＶＭが最も少ないサーバを選択する。
【０１００】
例えば、図１１に示したＶＭ４を移動する場合、管理サーバ６１０は、ＶＭ４が属する業務Ｃのグループに属するＶＭが最も少ないサーバを選択する。ＶＭテーブル１１００を参照すると、ＶＭ４移動後のサーバのＣＰＵ使用率が使用率レンジの範囲内となるサーバ３および４のうち、サーバ３には、業務Ｃのグループに属するＶＭ６が稼働している。これに対して、サーバ４には、業務Ｃのグループに属するＶＭは稼働していない。この場合、管理サーバ６１０はサーバ４を選択する。
【０１０１】
ステップＳ１７０４において、管理サーバ６１０は、ステップＳ１７０３で選択したサーバにＶＭを移動する。例えば、管理サーバ６１０は、移動するＶＭが動作している対象サーバと、ステップＳ１７０３で選択したサーバと、に対して、ＶＭの移動を指示する。すると、指示を受けたサーバ間でＶＭの移動が行われる。
【０１０２】
ステップＳ１７０５において、管理サーバ６１０は、ＶＭ管理用ＤＢ６１４を更新する。例えば、ＶＭ４をサーバ２からサーバ４に移動した場合、管理サーバ６１０は、図１３に示したＶＭテーブル１３００、図１４に示したサーバテーブル１４００のように、ＶＭ管理用ＤＢ６１４に記憶されるサーバテーブル８００およびＶＭテーブル９００を更新する。
【０１０３】
図１８は、本実施例に係るＶＭの削除処理を示すフローチャートである。
ユーザからＶＭの削除の指示を受けると、管理サーバ６１０は、以下に示すＶＭの削除処理の実行を開始する（ステップＳ１８００）。
【０１０４】
ステップＳ１８０１において、管理サーバ６１０は、ユーザに指定されたサーバに対してＶＭの削除を指示する。そして、指定のサーバからＶＭの削除が完了した旨の通知を受けると、管理サーバ６１０は、処理をステップＳ１８０２に移行する。そして、ステップＳ１８０２において、管理サーバ６１０は、ＶＭ管理用ＤＢ６１４を更新する。例えば、管理サーバ６１０は、ＶＭ管理用ＤＢ６１４に記憶されているＶＭテーブル９００から、削除したＶＭについての情報を削除する。そして、管理サーバ６１０は、ＶＭを削除する処理を終了する（ステップＳ１８０３）。
【０１０５】
図１９は、本実施例に係る管理サーバ６１０の具体的な構成例を示す図である。
図１９に示す管理サーバ６１０は、ＣＰＵ１９０１と、メモリ１９０２と、入力装置１９０３と、出力装置１９０４と、外部記録装置１９０５と、媒体駆動装置１９０６と、ネットワーク接続装置１９０８と、を備える。そして、これらの装置がバスに接続されて相互にデータの受け渡しが行える構成となっている。
【０１０６】
ＣＰＵ１９０１は、周辺機器や各種ソフトウェアを実行する他に本実施例に係る負荷監視・制御処理を実現するプログラムを実行する演算装置である。
メモリ１９０２は、プログラムを実行するために使用される揮発性の記憶装置である。メモリ１９０２には、例えば、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などを使用することができる。
【０１０７】
入力装置１９０３は、外部からのデータ入力手段である。入力装置１９０３には、例えば、キーボードやマウスなどを使用することができる。
出力装置１９０４は、データ等を表示装置等に表示する装置である。なお、出力装置１９０４には、表示装置を含むこともできる。
【０１０８】
外部記録装置１９０５は、管理サーバ６１０が動作するために必要なプログラムやデータの他に本実施例に係る負荷監視・制御処理を実現するプログラムを記録する不揮発性の記憶装置である。また、外部記録装置１９０５は、その一部または全部をＶＭ管理用ＤＢ６１４として使用することもできる。外部記憶装置１９０５には、例えば、磁気ディスク記憶装置などを使用することができる。
【０１０９】
媒体駆動装置１９０６は、メモリ１９０２や外部記録装置１９０５のデータを可搬記録媒体１９０７、例えば、フロッピイディスクやＭＯディスク、ＣＤ−ＲやＤＶＤ−Ｒなどに出力し、または可搬記録媒体１９０７からプログラムやデータ等を読み出す装置である。
【０１１０】
ネットワーク接続装置１９０８は、ネットワーク１９０９に接続する装置である。
なお、メモリ１９０２、外部記録装置１９０５および可搬記録媒体１９０７などの情報処理装置に読取り可能な記録媒体は、非一時的（ｎｏｎ−ｔｒａｎｓｉｔｏｒｙ）な媒体である。
【０１１１】
また、図１９に示した構成のすべてが管理サーバ６１０に必須の構成であることを示す趣旨ではない。図１９に示した構成の一部または全部を使用してもよいし、図１９に示した構成以外の構成を含んでもよい。
【０１１２】
図２０は、ＶＭをグループに分類する基準に、ＶＭが接続されるネットワークを使用した場合のＶＭテーブル２０００を示す図である。
図２０に示す例では、ＶＭ１、ＶＭ５およびＶＭ７は、ネットワークＮｅｔ１に接続されるグループであることを示している。同様に、ＶＭ２およびＶＭ３、は、ネットワークＮｅｔ２に接続されるグループであることを示し、ＶＭ４およびＶＭ６は、ネットワークＮｅｔ３に接続されるグループであることを示している。
【０１１３】
図２１は、ＶＭをグループに分類する基準に、ＶＭを使用するユーザを使用した場合のＶＭテーブル２１００を示す図である。
図２１に示す例では、ＶＭ１、ＶＭ５およびＶＭ７は、ユーザＡに使用されるグループであることを示している。同様に、ＶＭ２およびＶＭ３、は、ユーザＢに使用されるグループであることを示し、ＶＭ４およびＶＭ６は、ユーザＣに使用されるグループであることを示している。
【０１１４】
以上のように、管理サーバ６１０は、ＶＭを追加または移動する際に、その追加または移動するＶＭが属する属性と同一の属性に属するＶＭの数が最も少ないサーバを選択する。そして、管理サーバ６１０は、その選択したサーバにＶＭを追加または移動させる。
【０１１５】
同一の属性に属するＶＭの数が少ないと、情報処理にかかる負荷の変動が同一または類似の傾向にあるＶＭが少なくなる。そのため、多くのＶＭの負荷が同時に上昇して、サーバの負荷が急に上昇することを回避できる。その結果、負荷が上昇して一部のＶＭでの資源の使用量が増加し他のＶＭが使用できる資源が減少することを回避できる。各ＶＭは、割当てられている資源を、制限されることなく使用できるので、割当てられた資源に見合う性能を発揮できる。
【０１１６】
また、負荷の変動が同一または類似の傾向にあるＶＭは、複数のサーバに分散して配置されることにより、同一サーバ上で動作する複数のＶＭにかかる負荷が同時に上昇することを回避される。その結果、ＶＭが使用する資源量が安定するので、ＶＭのマイグレーションを行う頻度を抑えることができる。さらに、マイグレーションに必要なコストを削減することができる。
【０１１７】
なお、コストとは、例えば、マイグレーション等に必要な処理を行う際にサーバにかかる負荷、例えば、ＣＰＵやメモリ、ネットワークの使用率の増加などが含まれる。また、コストには、マイグレーション等の保守を行うための保守費用なども含むことができる。
【０１１８】
また、管理サーバ６１０は、負荷の変動が同一または類似の傾向にある同一の属性を持つＶＭを分散してサーバに追加または移動する。そのため、利用者は、情報処理システム６００における情報処理装置６２０−６４０の負荷の管理、例えば情報処理装置６２０−６４０上のＶＭの追加や移動などを容易に行うことができる。
【０１１９】
ＶＭのマイグレーションを行う頻度が抑えられるので、ＶＭの追加または移動先として使用するサーバを起動する頻度も少なくなる。したがって、サーバの起動完了までマイグレーションを行うことができないために、必要な資源量を確保できず、ＶＭに割当てた資源に見合う性能を発揮できない状態を回避することができる。
【０１２０】
また、管理サーバ６１０は、サーバのＣＰＵ使用率が使用率レンジの上限値を超えていないサーバを抽出してＶＭを追加する（ステップＳ１５０３）。これにより、管理サーバ６１０は、情報処理システム６００に含まれるサーバのＣＰＵ使用率が使用率レンジの上限値より小さくするようにＶＭを追加することができる。
【０１２１】
また、管理サーバ６１０は、ＶＭ移動後のサーバのＣＰＵ使用率が使用率レンジの上限値を超えないサーバを抽出してＶＭを移動する（ステップＳ１７０２）。これにより、管理サーバ６１０は、情報処理システム６００に含まれるサーバのＣＰＵ使用率が使用率レンジの上限値より小さくなるようにＶＭを移動することができる。
【０１２２】
また、管理サーバ６１０は、サーバのＣＰＵ使用率が使用率レンジの下限値より低いサーバを検出すると、検出したサーバ上のすべてのＶＭを他のサーバに移動し、動作するＶＭがなくなったサーバを停止する（ステップＳ１６０３−Ｓ１６０５）。これにより、管理サーバ６１０は、サーバの稼働効率を上げてコストを削減することができる。
【０１２３】
また、管理サーバ６１０は、サーバのＣＰＵ使用率が使用率レンジの上限値より高いサーバを検出すると、検出したサーバ上のＶＭを他のサーバに移動する（ステップＳ１６０６−Ｓ１６０８）。これにより、管理サーバ６１０は、情報処理システム６００に含まれるサーバのＣＰＵ使用率を、使用率レンジの上限値より低く抑えることができる。
【０１２４】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
（付記１）
第１の情報処理装置と該第１の情報処理装置が提供している仮想機械の属性情報との対応関係と、第２の情報処理装置と該第２の情報処理装置が提供している仮想機械の属性情報との対応関係とを記憶する記憶部を参照し、
前記第１の情報処理装置が提供している仮想機械のうち、配置対象の仮想機械の属性と同じ属性の仮想機械の数が、前記第２の情報処理装置が提供している仮想機械のうち、該配置対象の仮想機械の属性と同じ属性の仮想機械の数よりも少ないことが検出された場合に、前記第１の情報処理装置に、該配置対象の仮想機械を配置する、
処理を管理装置に実行させることを特徴とするプログラム。
（付記２）
前記属性情報には、前記第１または前記第２の情報処理装置にかかる負荷の変動が同一または類似する傾向を示す属性が含まれる、
ことを特徴とする付記１に記載のプログラム。
（付記３）
前記第１および前記第２の情報処理装置は、前記第１および前記第２の情報処理装置の負荷を示す負荷情報に基づく負荷が、第１の基準より低い情報処理装置である、
ことを特徴とする付記１に記載のプログラム。
（付記４）
前記第１および前記第２の情報処理装置は、前記第１および前記第２の情報処理装置の負荷を示す負荷情報に基づく負荷であって、前記配置対象の仮想機械を配置した場合にかかる負荷が、第１の基準より低い情報処理装置である、
ことを特徴とする付記１に記載のプログラム。
（付記５）
前記第１の情報処理装置の負荷を示す負荷情報に基づく負荷が、第２の基準より低い場合に、前記第１の情報処理装置が提供する仮想機械すべてを、前記第１の情報処理装置以外の第３の情報処理装置に移動する、  処理を管理装置に実行させることを特徴とする付記１に記載のプログラム。
（付記６）
前記第１の情報処理装置が提供する仮想機械すべての移動が完了すると、前記第１の情報処理装置を停止する、
前記第２の仮想機械すべての移動が完了すると、前記第２の情報処理装置を停止させる、
処理を管理装置に実行させることを特徴とする付記５に記載のプログラム。
（付記７）
前記第１の情報処理装置の負荷を示す負荷情報に基づく負荷が、前記第１の基準より高い場合に、前記第１の情報処理装置が提供する仮想機械を、前記第１の情報処理装置以外の第３の情報処理装置に移動する、  処理を管理装置に実行させることを特徴とする付記１に記載のプログラム。
（付記８）
前記第３の情報処理装置がない場合、新たに第４の情報処理装置を起動し、前記第１の情報処理装置が提供する仮想機械を前記第４の情報処理装置に移動する、
処理を管理装置に実行させることを特徴とする付記７に記載のプログラム。
（付記９）
前記負荷情報は、前記情報処理装置が有する演算装置または記憶装置の使用率のいずれか１つである、
ことを特徴とする付記３、４、５および７のいずれか１項に記載のプログラム。
（付記１０）
前記属性情報は、前記仮想機械に接続されるネットワーク、前記仮想機械を利用する利用者および前記仮想機械の用途のいずれか１つを属性として含む、
ことを特徴とする付記１に記載のプログラム。
（付記１１）
第１の情報処理装置と該第１の情報処理装置が提供している仮想機械の属性情報との対応関係と、第２の情報処理装置と該第２の情報処理装置が提供している仮想機械の属性情報との対応関係とを記憶する記憶部を参照し、
前記第１の情報処理装置が提供している仮想機械のうち、配置対象の仮想機械の属性と同じ属性の仮想機械の数が、前記第２の情報処理装置が提供している仮想機械のうち、該配置対象の仮想機械の属性と同じ属性の仮想機械の数よりも少ないことが検出された場合に、前記第１の情報処理装置に、該配置対象の仮想機械を配置する、
処理を管理装置に実行させることを特徴とする管理方法。
（付記１２）
第１の情報処理装置と該第１の情報処理装置が提供している仮想機械の属性情報との対応関係と、第２の情報処理装置と該第２の情報処理装置が提供している仮想機械の属性情報との対応関係とを記憶する記憶部と、
前記記憶部を参照する参照部と、
前記第１の情報処理装置が提供している仮想機械のうち、配置対象の仮想機械の属性と同じ属性の仮想機械の数が、前記第２の情報処理装置が提供している仮想機械のうち、該配置対象の仮想機械の属性と同じ属性の仮想機械の数よりも少ないことが検出された場合に、前記第１の情報処理装置に、該配置対象の仮想機械を配置する配置部と、
を備える管理装置。
【符号の説明】
【０１２５】
６００      情報処理システム
６１０      管理サーバ
６１１      配置／構成制御部
６１２      ＶＭ制御部
６１３      サーバ電源制御部
６１４      ＶＭ管理用ＤＢ
６２０      サーバ
６３０      サーバ
６４０      サーバ
【図５】
2012032877.tif 000003
【図７】
2012032877.tif 000004
【図８】
2012032877.tif 000005
【図９】
2012032877.tif 000006
【図１５】
2012032877.tif 000007
【図１６】
2012032877.tif 000008
【図１７】
2012032877.tif 000009
【図１８】
2012032877.tif 000010
【図１９】
2012032877.tif 000011
【図２０】
2012032877.tif 000012
【図２１】
2012032877.tif 000013
【図１】
2012032877.tif 000014
【図２】
2012032877.tif 000015
【図３】
2012032877.tif 000016
【図４】
2012032877.tif 000017
【図６】
2012032877.tif 000018
【図１０】
2012032877.tif 000019
【図１１】
2012032877.tif 000020
【図１２】
2012032877.tif 000021
【図１３】
2012032877.tif 000022
【図１４】
2012032877.tif 000023