(57)【要約】  リソース割り当て装置１００は、統合の対象となるｍ台の統合対象サーバＳｉのリソース使用量をｎ台（ｎ＜ｍ）の統合先サーバに割り当てる装置である。割り当て対象リストＳには、各統合対象サーバＳｉごとにリソース使用量が記載されている。リソース割り当て装置１００は、割り当て対象リストＳの各統合対象サーバＳｉのリソース使用量の偏差値を算出し、偏差値とリソースごとの優先度とから優先度を考慮した総合値を算出し、総合値の降順に統合対象サーバＳｉをソートする。割り当て部１２０は、総合値の大きい統合対象サーバＳｉの順に割り当て処理を実行する。割り当て処理において、割り当て部１２０は、統合対象サーバＳｉを統合先サーバＳ’ｊに割り当てたと仮定した場合の各リソース使用量の「散らばりＰ’ｓｄ」を優先度αを考慮し、「散らばりＰ’ｓｄ」を最小化する統合対象サーバＳｉと先サーバと統合先サーバＳ’ｊの組み合せを決定する。
2010044131.tif 000002
【特許請求の範囲】
【請求項１】
統合対象となるｍ台（ｍ：ｍ≧３の整数）の統合対象サーバ装置ごとにリソース種別ごとのリソース使用量が記載された統合対象リストＳと、前記統合対象リストＳに記載された前記ｍ台の統合対象サーバ装置の統合先となるｎ台（ｎ：ｎ＜ｍ、かつ、ｎ≧２の整数）の統合先サーバ装置が記載された統合先リストＳ’とを記憶するリスト記憶部と、
前記リソース種別ごとに指定された優先度を記憶する優先度記憶部と、
前記統合対象リストＳから一つの前記統合対象サーバ装置を選択すると共に前記統合先リストＳ’から一つの前記統合先サーバ装置を選択し、選択された前記統合対象サーバ装置のリソース使用量を選択された前記統合先サーバ装置に暫定的に割り当てた場合における選択された前記統合先サーバ装置の現在のリソース使用量と、前記統合先リストＳ’に記載された他のすべての前記統合先サーバ装置の現在のリソース使用量とを対象として、対象となる前記リソース使用量の平均と標準偏差との比として定義される変動係数をリソース種別ごとに算出し、算出されたリソース種別ごとの変動係数と、前記変動係数の対応するリソース種別と同一のリソース種別に指定された前記優先度とを乗じた和を散らばり値として算出し、
順次同様に、
前記統合先リストＳ’から別の前記統合先サーバ装置を選択することにより前記統合先サーバ装置を切り替えながら、選択された別の前記統合先サーバ装置に選択された前記統合対象サーバ装置の前記リソース使用量を暫定的に割り当てた場合における前記散らばり値を算出し、ｎ台のそれぞれの前記統合先サーバ装置に選択された前記統合対象サーバ装置の前記リソース使用量を暫定的に割り当てた場合のそれぞれの前記散らばり値のうち最少となる前記散らばり値に対応する前記統合先サーバ装置を特定し、特定された前記統合先サーバ装置に選択された前記統合対象サーバ装置のリソース使用量を割り当てることを確定し、
順次同様に、
前記統合対象リストＳから別の前記統合対象サーバ装置を選択することにより前記統合対象サーバ装置を切り替えながら、選択された別の前記統合対象サーバ装置のリソース使用量をｎ台のそれぞれの前記統合先サーバ装置に暫定的に割り当てた場合の前記散らばり値のうち最少となる前記散らばり値に対応する前記統合先サーバ装置を特定し、特定された前記統合先サーバ装置に選択された別の前記統合対象サーバ装置のリソース使用量を割り当てることを確定する割り当て部と
を備えたことを特徴とするリソース割り当て装置。
【請求項２】
前記割り当て部は、
前記統合対象リストＳに記載されたリソース種別ごとにそれぞれの前記統合対象サーバ装置のリソース使用量の偏差値を算出し、算出されたリソース種別ごとの前記偏差値と、前記偏差値のリソース種別と同一のリソース種別に指定された前記優先度とを乗じた和を総合値として前記統合対象サーバ装置ごとに算出すると共に、前記統合対象リストＳから前記統合対象サーバ装置を選択するときには、前記算出した前記総合値の値に従って、前記統合対象リストＳから前記統合対象サーバ装置を選択することを特徴とする請求項１記載のリソース割り当て装置。
【請求項３】
前記リソース割り当て装置は、さらに、
前記統合先サーバ装置のリソース種別ごとのリソース容量を記憶するリソース容量記憶部を備え、
前記割り当て部は、
前記リソース容量記憶部に記憶された前記リソース容量と前記統合対象リストＳに記載された前記リソース使用量とに基づいてリソース種別ごとに前記統合先サーバ装置の暫定的な台数を算出し、算出されたそれぞれの暫定的な台数のうち、最大の前記優先度の指定されたリソース種別と同一のリソース種別について算出された台数を前記統合先サーバ装置の台数ｎとして決定することを特徴とする請求項１記載のリソース割り当て装置。
【請求項４】
前記統合対象サーバ装置と前記統合先サーバ装置とは、
互いの間における同一リソース種別のうちの少なくとも一種類の同一リソース種別について、互いに複数のデバイスを有し、
前記割り当て部は、
選択された前記統合対象サーバ装置の同一リソース種別のリソース使用量を選択された前記統合先サーバ装置に暫定的に割り当てる場合には、選択された前記統合対象サーバ装置の前記複数のデバイスの各リソース使用量を、前記選択された前記統合先サーバ装置の前記複数のデバイスのいずれかに順次に割り当てるごとに、前記リソース使用量が割り当てられた前記デバイスの割り当て後の使用量が許容量以内かどうかを判定することを特徴とする請求項１記載のリソース割り当て装置。
【請求項５】
コンピュータを、
統合対象となるｍ台（ｍ：ｍ≧３の整数）の統合対象サーバ装置ごとにリソース種別ごとのリソース使用量が記載された統合対象リストＳと、前記統合対象リストＳに記載された前記ｍ台の統合対象サーバ装置の統合先となるｎ台（ｎ：ｎ＜ｍ、かつ、ｎ≧２の整数）の統合先サーバ装置が記載された統合先リストＳ’とを記憶するリスト記憶部、
前記リソース種別ごとに指定された優先度を記憶する優先度記憶部、
前記統合対象リストＳから一つの前記統合対象サーバ装置を選択すると共に前記統合先リストＳ’から一つの前記統合先サーバ装置を選択し、選択された前記統合対象サーバ装置のリソース使用量を選択された前記統合先サーバ装置に暫定的に割り当てた場合における選択された前記統合先サーバ装置の現在のリソース使用量と、前記統合先リストＳ’に記載された他のすべての前記統合先サーバ装置の現在のリソース使用量とを対象として、対象となる前記リソース使用量の平均と標準偏差との比として定義される変動係数をリソース種別ごとに算出し、算出されたリソース種別ごとの変動係数と、前記変動係数の対応するリソース種別と同一のリソース種別に指定された前記優先度とを乗じた和を散らばり値として算出し、
順次同様に、
前記統合先リストＳ’から別の前記統合先サーバ装置を選択することにより前記統合先サーバ装置を切り替えながら、選択された別の前記統合先サーバ装置に選択された前記統合対象サーバ装置の前記リソース使用量を暫定的に割り当てた場合における前記散らばり値を算出し、ｎ台のそれぞれの前記統合先サーバ装置に選択された前記統合対象サーバ装置の前記リソース使用量を暫定的に割り当てた場合のそれぞれの前記散らばり値のうち最少となる前記散らばり値に対応する前記統合先サーバ装置を特定し、特定された前記統合先サーバ装置に選択された前記統合対象サーバ装置のリソース使用量を割り当てることを確定し、
順次同様に、
前記統合対象リストＳから別の前記統合対象サーバ装置を選択することにより前記統合対象サーバ装置を切り替えながら、選択された別の前記統合対象サーバ装置のリソース使用量をｎ台のそれぞれの前記統合先サーバ装置に暫定的に割り当てた場合の前記散らばり値のうち最少となる前記散らばり値に対応する前記統合先サーバ装置を特定し、特定された前記統合先サーバ装置に選択された別の前記統合対象サーバ装置のリソース使用量を割り当てることを確定する割り当て部、
として機能させることを特徴とするリソース割り当てプログラム。
【請求項６】
前記請求項５記載のリソース割り当てプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項７】
リスト記憶部と、優先度記憶部と、割り当て部とを備えたコンピュータが行うリソース割り当て方法において、
（１）リスト記憶部が、
統合対象となるｍ台（ｍ：ｍ≧３の整数）の統合対象サーバ装置ごとにリソース種別ごとのリソース使用量が記載された統合対象リストＳと、前記統合対象リストＳに記載された前記ｍ台の統合対象サーバ装置の統合先となるｎ台（ｎ：ｎ＜ｍ、かつ、ｎ≧２の整数）の統合先サーバ装置が記載された統合先リストＳ’とを記憶し、
（２）優先度記憶部が、
前記リソース種別ごとに指定された優先度を記憶し、
（３）割り当て部が、
前記統合対象リストＳから一つの前記統合対象サーバ装置を選択すると共に前記統合先リストＳ’から一つの前記統合先サーバ装置を選択し、選択された前記統合対象サーバ装置のリソース使用量を選択された前記統合先サーバ装置に暫定的に割り当てた場合における選択された前記統合先サーバ装置の現在のリソース使用量と、前記統合先リストＳ’に記載された他のすべての前記統合先サーバ装置の現在のリソース使用量とを対象として、対象となる前記リソース使用量の平均と標準偏差との比として定義される変動係数をリソース種別ごとに算出し、算出されたリソース種別ごとの変動係数と、前記変動係数の対応するリソース種別と同一のリソース種別に指定された前記優先度とを乗じた和を散らばり値として算出し、
順次同様に、
前記統合先リストＳ’から別の前記統合先サーバ装置を選択することにより前記統合先サーバ装置を切り替えながら、選択された別の前記統合先サーバ装置に選択された前記統合対象サーバ装置の前記リソース使用量を暫定的に割り当てた場合における前記散らばり値を算出し、ｎ台のそれぞれの前記統合先サーバ装置に選択された前記統合対象サーバ装置の前記リソース使用量を暫定的に割り当てた場合のそれぞれの前記散らばり値のうち最少となる前記散らばり値に対応する前記統合先サーバ装置を特定し、特定された前記統合先サーバ装置に選択された前記統合対象サーバ装置のリソース使用量を割り当てることを確定し、
順次同様に、
前記統合対象リストＳから別の前記統合対象サーバ装置を選択することにより前記統合対象サーバ装置を切り替えながら、選択された別の前記統合対象サーバ装置のリソース使用量をｎ台のそれぞれの前記統合先サーバ装置に暫定的に割り当てた場合の前記散らばり値のうち最少となる前記散らばり値に対応する前記統合先サーバ装置を特定し、特定された前記統合先サーバ装置に選択された別の前記統合対象サーバ装置のリソース使用量を割り当てることを確定する
ことを特徴とするリソース割り当て方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、統合の対象となるｍ台の統合対象サーバＳｉのリソース使用量をｎ台（ｎ＜ｍ）の統合先サーバに割り当てるリソース割り当て装置１００に関する。
【背景技術】
【０００２】
仮想化技術を利用したサーバ統合とは、企業内にある数百から数千のサーバ（統合対象サーバ）を仮想化し、より少数で高性能なサーバ（統合先サーバ）に統合するものである。複数のサーバを１台の物理サーバで動作させるため、統合されるサーバが必要とするリソース（ＣＰＵ、ディスク、ネットワークなど）が統合先サーバのリソース容量に収まるように、統合先サーバのリソース容量や台数、統合対象サーバとの組み合わせを見積もる必要がある。【０００３】
そこで、統合対象サーバの運用時のリソース使用量（ＣＰＵ使用率、ディスク使用量など）を収集し、その情報と統合先サーバのリソース容量から、統合先サーバのリソース容量を超えず、かつリソース使用量が均一になる統合対象サーバと統合先サーバの組み合わせを算出する必要がある。【０００４】
非特許文献１では、仮想化技術を利用したサーバ統合において統合対象サーバと統合先サーバの組み合わせを算出する問題をビン・パッキング問題（大きさの異なるアイテムを容量の決まった箱に詰めるとき、箱の個数が最小となるように詰め込む問題）とみなし、ヒューリスティックな解法のひとつであるＦｉｒｓｔ−Ｆｉｔ  Ｄｅｃｒｅａｓｉｎｇ（ＦＦＤ）を改良したアルゴリズムを用いて解いている。改良ＦＦＤでは、箱の容量を超えた場合にすぐに新規の箱を追加せず、詰め込みに失敗したアイテムを着目していない次元の大きなアイテムとしてアイテムの並び替えを行い優先的に詰め込む。アイテムの並び替えを行う回数には閾値を設け、その値を超えた場合には新規に箱を追加していく。このように並べ替えを行うことで箱の個数が無駄に増加することを防ぎ、最適化を図っている。【０００５】
本文献によれば、着目していない次元を並べ替えによって考慮する事で、最適な解を低い計算コストで求めている。しかし、あくまで着目する次元が１つのため、ＣＰＵとディスクなど複数の次元に着目したり、優先度を付けて着目するなどができない。仮想化環境において、実行中の複数の仮想マシンからシステム負荷を計測し、そのパフォーマンスが最大となるような、仮想マシンの組合せを算出する方式が考案されている。【０００６】
一方、特許文献１では、ホスティング・サービス資源を最適に割り当てる方法について述べられている。この発明では、クライアントの利用パターンをモデル化し、利用パターンのピークが互いにばらばらとなるように、クライアントを組み合わせサーバに割り当てる方式が述べられている。割り当てでは、ＦＦＤの利用も示唆されている。
【特許文献１】特開２００２−３１８７９１号公報
【非特許文献１】網代育大，田中淳裕，「サーバ統合のための組合せ最適化アルゴリズムの提案と評価」，第２１回人工知能学会全国大会２００７、
【発明の開示】
【発明が解決しようとする課題】
【０００７】
従来の割り当て方式では、ＦＦＤなどを利用して最小のサーバ台数に割り当てることやクライアントとの利用パターンのピークをばらつかせるような組み合わせで割り当てるなどの方式に注力しており、割り当て後のリソースのバランスについて示唆されているものは無い。特にＦＦＤを利用した場合、リソースの大きなものから順にサーバに割り当てられ、足りなくなるとサーバを追加するため、リソースの大きいものが同じサーバに割り当てられることになる。リソースの大きいものはリソースの変動幅も大きいため、リソースの大きいものどうしが同じサーバに割り当てられると変動によりリソース不足となる確率が高まるため、リソースの大きさはサーバ間でできるだけ均一であることが望ましい。【０００８】
本発明は、統合対象となる統合対象サーバ装置を統合先の統合先サーバ装置に統合した後のリソース使用量が均一となるような、統合対象サーバ装置と、統合先の統合先サーバ装置との組み合わせを決定するリソース割り当て装置の提供を目的とする。
【課題を解決するための手段】
【０００９】
この発明のリソース割り当て装置は、
統合対象となるｍ台（ｍ：ｍ≧３の整数）の統合対象サーバ装置ごとにリソース種別ごとのリソース使用量が記載された統合対象リストＳと、前記統合対象リストＳに記載された前記ｍ台の統合対象サーバ装置の統合先となるｎ台（ｎ：ｎ＜ｍ、かつ、ｎ≧２の整数）の統合先サーバ装置が記載された統合先リストＳ’とを記憶するリスト記憶部と、
前記リソース種別ごとに指定された優先度を記憶する優先度記憶部と、
前記統合対象リストＳから一つの前記統合対象サーバ装置を選択すると共に前記統合先リストＳ’から一つの前記統合先サーバ装置を選択し、選択された前記統合対象サーバ装置のリソース使用量を選択された前記統合先サーバ装置に暫定的に割り当てた場合における選択された前記統合先サーバ装置の現在のリソース使用量と、前記統合先リストＳ’に記載された他のすべての前記統合先サーバ装置の現在のリソース使用量とを対象として、対象となる前記リソース使用量の平均と標準偏差との比として定義される変動係数をリソース種別ごとに算出し、算出されたリソース種別ごとの変動係数と、前記変動係数の対応するリソース種別と同一のリソース種別に指定された前記優先度とを乗じた和を散らばり値として算出し、
順次同様に、
前記統合先リストＳ’から別の前記統合先サーバ装置を選択することにより前記統合先サーバ装置を切り替えながら、選択された別の前記統合先サーバ装置に選択された前記統合対象サーバ装置の前記リソース使用量を暫定的に割り当てた場合における前記散らばり値を算出し、ｎ台のそれぞれの前記統合先サーバ装置に選択された前記統合対象サーバ装置の前記リソース使用量を暫定的に割り当てた場合のそれぞれの前記散らばり値のうち最少となる前記散らばり値に対応する前記統合先サーバ装置を特定し、特定された前記統合先サーバ装置に選択された前記統合対象サーバ装置のリソース使用量を割り当てることを確定し、
順次同様に、
前記統合対象リストＳから別の前記統合対象サーバ装置を選択することにより前記統合対象サーバ装置を切り替えながら、選択された別の前記統合対象サーバ装置のリソース使用量をｎ台のそれぞれの前記統合先サーバ装置に暫定的に割り当てた場合の前記散らばり値のうち最少となる前記散らばり値に対応する前記統合先サーバ装置を特定し、特定された前記統合先サーバ装置に選択された別の前記統合対象サーバ装置のリソース使用量を割り当てることを確定する割り当て部と
を備えたことを特徴とする。【００１０】
前記割り当て部は、
前記統合対象リストＳに記載されたリソース種別ごとにそれぞれの前記統合対象サーバ装置のリソース使用量の偏差値を算出し、算出されたリソース種別ごとの前記偏差値と、前記偏差値のリソース種別と同一のリソース種別に指定された前記優先度とを乗じた和を総合値として前記統合対象サーバ装置ごとに算出すると共に、前記統合対象リストＳから前記統合対象サーバ装置を選択するときには、前記算出した前記総合値の値に従って、前記統合対象リストＳから前記統合対象サーバ装置を選択することを特徴とする。【００１１】
前記リソース割り当て装置は、さらに、
前記統合先サーバ装置のリソース種別ごとのリソース容量を記憶するリソース容量記憶部を備え、
前記割り当て部は、
前記リソース容量記憶部に記憶された前記リソース容量と前記統合対象リストＳに記載された前記リソース使用量とに基づいてリソース種別ごとに前記統合先サーバ装置の暫定的な台数を算出し、算出されたそれぞれの暫定的な台数のうち、最大の前記優先度の指定されたリソース種別と同一のリソース種別について算出された台数を前記統合先サーバ装置の台数ｎとして決定することを特徴とする。【００１２】
前記統合対象サーバ装置と前記統合先サーバ装置とは、
互いの間における同一リソース種別のうちの少なくとも一種類の同一リソース種別について、互いに複数のデバイスを有し、
前記割り当て部は、
選択された前記統合対象サーバ装置の同一リソース種別のリソース使用量を選択された前記統合先サーバ装置に暫定的に割り当てる場合には、選択された前記統合対象サーバ装置の前記複数のデバイスの各リソース使用量を、前記選択された前記統合先サーバ装置の前記複数のデバイスのいずれかに順次に割り当てるごとに、前記リソース使用量が割り当てられた前記デバイスの割り当て後の使用量が許容量以内かどうかを判定することを特徴とする。【００１３】
この発明のリソース割り当てプログラムは、
コンピュータを、
統合対象となるｍ台（ｍ：ｍ≧３の整数）の統合対象サーバ装置ごとにリソース種別ごとのリソース使用量が記載された統合対象リストＳと、前記統合対象リストＳに記載された前記ｍ台の統合対象サーバ装置の統合先となるｎ台（ｎ：ｎ＜ｍ、かつ、ｎ≧２の整数）の統合先サーバ装置が記載された統合先リストＳ’とを記憶するリスト記憶部、
前記リソース種別ごとに指定された優先度を記憶する優先度記憶部、
前記統合対象リストＳから一つの前記統合対象サーバ装置を選択すると共に前記統合先リストＳ’から一つの前記統合先サーバ装置を選択し、選択された前記統合対象サーバ装置のリソース使用量を選択された前記統合先サーバ装置に暫定的に割り当てた場合における選択された前記統合先サーバ装置の現在のリソース使用量と、前記統合先リストＳ’に記載された他のすべての前記統合先サーバ装置の現在のリソース使用量とを対象として、対象となる前記リソース使用量の平均と標準偏差との比として定義される変動係数をリソース種別ごとに算出し、算出されたリソース種別ごとの変動係数と、前記変動係数の対応するリソース種別と同一のリソース種別に指定された前記優先度とを乗じた和を散らばり値として算出し、
順次同様に、
前記統合先リストＳ’から別の前記統合先サーバ装置を選択することにより前記統合先サーバ装置を切り替えながら、選択された別の前記統合先サーバ装置に選択された前記統合対象サーバ装置の前記リソース使用量を暫定的に割り当てた場合における前記散らばり値を算出し、ｎ台のそれぞれの前記統合先サーバ装置に選択された前記統合対象サーバ装置の前記リソース使用量を暫定的に割り当てた場合のそれぞれの前記散らばり値のうち最少となる前記散らばり値に対応する前記統合先サーバ装置を特定し、特定された前記統合先サーバ装置に選択された前記統合対象サーバ装置のリソース使用量を割り当てることを確定し、
順次同様に、
前記統合対象リストＳから別の前記統合対象サーバ装置を選択することにより前記統合対象サーバ装置を切り替えながら、選択された別の前記統合対象サーバ装置のリソース使用量をｎ台のそれぞれの前記統合先サーバ装置に暫定的に割り当てた場合の前記散らばり値のうち最少となる前記散らばり値に対応する前記統合先サーバ装置を特定し、特定された前記統合先サーバ装置に選択された別の前記統合対象サーバ装置のリソース使用量を割り当てることを確定する割り当て部、
として機能させることを特徴とする。【００１４】
この発明のリソース割り当て方法は、
リスト記憶部と、優先度記憶部と、割り当て部とを備えたコンピュータが行うリソース割り当て方法において、
（１）リスト記憶部が、
統合対象となるｍ台（ｍ：ｍ≧３の整数）の統合対象サーバ装置ごとにリソース種別ごとのリソース使用量が記載された統合対象リストＳと、前記統合対象リストＳに記載された前記ｍ台の統合対象サーバ装置の統合先となるｎ台（ｎ：ｎ＜ｍ、かつ、ｎ≧２の整数）の統合先サーバ装置が記載された統合先リストＳ’とを記憶し、
（２）優先度記憶部が、
前記リソース種別ごとに指定された優先度を記憶し、
（３）割り当て部が、
前記統合対象リストＳから一つの前記統合対象サーバ装置を選択すると共に前記統合先リストＳ’から一つの前記統合先サーバ装置を選択し、選択された前記統合対象サーバ装置のリソース使用量を選択された前記統合先サーバ装置に暫定的に割り当てた場合における選択された前記統合先サーバ装置の現在のリソース使用量と、前記統合先リストＳ’に記載された他のすべての前記統合先サーバ装置の現在のリソース使用量とを対象として、対象となる前記リソース使用量の平均と標準偏差との比として定義される変動係数をリソース種別ごとに算出し、算出されたリソース種別ごとの変動係数と、前記変動係数の対応するリソース種別と同一のリソース種別に指定された前記優先度とを乗じた和を散らばり値として算出し、
順次同様に、
前記統合先リストＳ’から別の前記統合先サーバ装置を選択することにより前記統合先サーバ装置を切り替えながら、選択された別の前記統合先サーバ装置に選択された前記統合対象サーバ装置の前記リソース使用量を暫定的に割り当てた場合における前記散らばり値を算出し、ｎ台のそれぞれの前記統合先サーバ装置に選択された前記統合対象サーバ装置の前記リソース使用量を暫定的に割り当てた場合のそれぞれの前記散らばり値のうち最少となる前記散らばり値に対応する前記統合先サーバ装置を特定し、特定された前記統合先サーバ装置に選択された前記統合対象サーバ装置のリソース使用量を割り当てることを確定し、
順次同様に、
前記統合対象リストＳから別の前記統合対象サーバ装置を選択することにより前記統合対象サーバ装置を切り替えながら、選択された別の前記統合対象サーバ装置のリソース使用量をｎ台のそれぞれの前記統合先サーバ装置に暫定的に割り当てた場合の前記散らばり値のうち最少となる前記散らばり値に対応する前記統合先サーバ装置を特定し、特定された前記統合先サーバ装置に選択された別の前記統合対象サーバ装置のリソース使用量を割り当てることを確定する
ことを特徴とする。
【発明の効果】
【００１５】
本発明により、統合対象となる統合対象サーバ装置を統合先の統合先サーバ装置に統合した後のリソース使用量が均一となるような、統合対象サーバ装置と、統合先の統合先サーバ装置との組み合わせを決定するリソース割り当て装置を提供できる。
【発明を実施するための最良の形態】
【００１６】
実施の形態１．
図１は、コンピュータで実現されるリソース割り当て装置１００の外観の一例を示す図である。図１において、リソース割り当て装置１００は、システムユニット８３０、ＣＲＴ（Ｃａｔｈｏｄｅ・Ｒａｙ・Ｔｕｂｅ）やＬＣＤ（液晶）の表示画面を有する表示装置８１３、キーボード８１４（Ｋｅｙ・Ｂｏａｒｄ：Ｋ／Ｂ）、マウス８１５、ＦＤＤ８１７（Ｆｌｅｘｉｂｌｅ・Ｄｉｓｋ・  Ｄｒｉｖｅ）、コンパクトディスク装置８１８（ＣＤＤ：Ｃｏｍｐａｃｔ  Ｄｉｓｋ  Ｄｒｉｖｅ）、プリンタ装置８１９などのハードウェア資源を備え、これらはケーブルや信号線で接続されている。システムユニット８３０はネットワーク８０１に接続されている。【００１７】
図２は、コンピュータで実現されるリソース割り当て装置１００のハードウェア資源の一例を示す図である。図２において、リソース割り当て装置１００は、プログラムを実行するＣＰＵ８１０（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を備えている。ＣＰＵ８１０は、バス８２５を介してＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）８１１、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）８１２、表示装置８１３、キーボード８１４、マウス８１５、通信ボード８１６、ＦＤＤ８１７、ＣＤＤ８１８、プリンタ装置８１９、磁気ディスク装置８２０と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置８２０の代わりに、光ディスク装置、フラッシュメモリなどの記憶装置でもよい。【００１８】
ＲＡＭ８１２は、揮発性メモリの一例である。ＲＯＭ８１１、ＦＤＤ８１７、ＣＤＤ８１８、磁気ディスク装置８２０等の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置あるいは記憶部、格納部、バッファの一例である。通信ボード８１６、キーボード８１４、ＦＤＤ８１７などは、入力部、入力装置の一例である。また、通信ボード８１６、表示装置８１３、プリンタ装置８１９などは、出力部、出力装置の一例である。【００１９】
通信ボード８１６は、ネットワーク８０１（ＬＡＮ等）に接続されている。通信ボード８１６は、ＬＡＮに限らず、インターネット、ＩＳＤＮ等のＷＡＮ（ワイドエリアネットワーク）などに接続されていても構わない。【００２０】
磁気ディスク装置８２０には、オペレーティングシステム８２１（ＯＳ）、ウィンドウシステム８２２、プログラム群８２３、ファイル群８２４が記憶されている。プログラム群８２３のプログラムは、ＣＰＵ８１０、オペレーティングシステム８２１、ウィンドウシステム８２２により実行される。【００２１】
上記プログラム群８２３には、以下に述べる実施の形態の説明において「〜部」として説明する機能を実行するプログラムが記憶されている。プログラムは、ＣＰＵ８１０により読み出され実行される。【００２２】
ファイル群８２４には、以下に述べる実施の形態の説明において、「割り当て対象リストＳ」、「割り当て先リソース容量Ｐ’」、「優先度α」、「割り当て先リストＳ’」、「割り当て可能リストＡ」、あるいは「〜テーブル」などとして説明する情報や、「〜の判定結果」、「〜の算出結果」、「〜の抽出結果」、「〜の生成結果」、「〜の処理結果」として説明する情報や、データや信号値や変数値やパラメータなどが、「〜ファイル」や「〜データベース」の各項目として記憶されている。「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してＣＰＵ８１０によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのＣＰＵの動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示のＣＰＵの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。【００２３】
また、以下に述べる実施の形態の説明においては、データや信号値は、ＲＡＭ８１２のメモリ、ＦＤＤ８１７のフレキシブルディスク、ＣＤＤ８１８のコンパクトディスク、磁気ディスク装置８２０の磁気ディスク、その他光ディスク、ミニディスク、ＤＶＤ（Ｄｉｇｉｔａｌ・Ｖｅｒｓａｔｉｌｅ・Ｄｉｓｋ）等の記録媒体に記録される。また、データや信号は、バス８２５や信号線やケーブルその他の伝送媒体によりオンライン伝送される。【００２４】
また、以下に述べる実施の形態の説明において、「〜部」として説明するものは、「手段」、「〜回路」、「〜機器」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明するものは、ＲＯＭ８１１に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、ＤＶＤ等の記録媒体に記憶される。プログラムはＣＰＵ８１０により読み出され、ＣＰＵ８１０により実行される。すなわち、プログラムは、以下に述べる「〜部」としてコンピュータを機能させるものである。あるいは、以下に述べる「〜部」の手順や方法をコンピュータに実行させるものである。【００２５】
図３は、実施の形態１のリソース割り当て装置１００の構成を示すブロック図である。以下に、図３の構成を説明する前に、以下で使用する用語を定義する。【００２６】
（用語の定義）
（１）「統合対象サーバ装置」
実施の形態１のリソース割り当て装置１００は、複数（ｍ台）のサーバ装置の機能をｎ台（ｎ＜ｍ）のサーバ装置に割り当てる（統合する）リソース割り当て装置である。この場合、統合される対象のサーバ装置（以下、サーバという）を、統合対象サーバ、割り当て対象サーバ、割り当て対象、あるいは元サーバという。個々の元サーバは、記号「Ｓｉ」を用いて表す。
（２）「統合先サーバ」
統合先となるサーバ（複数の元サーバの機能を実現するサーバ）を、統合先サーバ、割り当て先サーバ、割り当て先、あるいは先サーバという。先サーバは、記号「Ｓ’ｊ」を用いて表す（先サーバに関する記号には「’」（ダッシュ）を付す）。
（３）「元サーバのリソース使用量」
元サーバＳｉのＣＰＵ使用量（ＣＰＵ負荷）、メモリ使用量（メモリ負荷）等を記号「Ｐ」を用いて、ＣＰＵ使用量Ｐｃｐｕ，ｉ、メモリ使用量：Ｐｍｅｍ，ｉのようにあらわす。
（４）「先サーバのリソース容量」
先サーバＳ’ｊのＣＰＵ容量、メモリ容量等を記号「Ｐ’」を用いて、ＣＰＵ容量Ｐ’ｃｐｕ，ｊ、メモリ容量Ｐ’ｍｅｍ，ｊのようにあらわす。【００２７】
リソース割り当て装置１００は、割り当てプログラムが動作する装置である。図３に示すように、リソース割り当て装置１００は、入力部１１０、割り当て部１２０、テーブル記憶部１３０、リスト記憶部１４０（優先度記憶部の一例、リソース容量記憶部の一例）を備える。【００２８】
（入力部１１０）
入力部１１０は、後述のように、「割り当て対象リストＳ」（第１の入力情報という場合がある）、「割り当て先リソース容量Ｐ’」（第２の入力情報という場合がある）、「優先度α」（第３の入力情報という場合がある）を入力する。【００２９】
（リスト記憶部１４０）
リスト記憶部１４０は、入力部１１０によって入力された「割り当て対象リストＳ」や、割り当て部１２０によって生成される「割り当て先リストＳ’」等を記憶する。【００３０】
（テーブル記憶部１３０）
テーブル記憶部１３０は、構成情報テーブル１２１やＣＰＵ負荷テーブル１３１等を記憶する。構成情報テーブル１２１、及びＣＰＵ負荷テーブル１３１〜ネットワーク負荷テーブル１３５の各テーブルは、予め所定のデータがセットされている。【００３１】
（テーブル）
図４は、構成情報テーブル１２１を示す。
図５は、割り当て対象（元サーバ）の負荷が格納されるＣＰＵ負荷テーブル１３１を示す。
図６は、メモリ使用量テーブル１３２を示す。
図７は、ディスク使用量テーブル１３３を示す。
図８は、ディスクアクセス帯域テーブル１３４を示す。
図９は、ネットワーク負荷テーブル１３５を示す。【００３２】
（割り当て部１２０）
割り当て部１２０は、リソースの割り当てを行う。割り当て部１２０の機能は、後述する動作の説明で詳しく述べる。【００３３】
（動作）
次に動作を説明する。図１０は、リソースの「割り当て動作」を示すフローチャートである。図１０を参照してリソース割り当て装置１００の動作を説明する。【００３４】
（Ｓ５００ａ：入力部１１０による入力）
ステップＳ５００ａ（以下、単にＳ５００ａ等と記す）において、まず、入力部１１０は、「割り当て対象リストＳ」、「割り当て先リソース容量Ｐ’」、割り当てにおける「優先度α」等の３つの入力情報を入力する。まず、これらの入力情報を説明する。【００３５】
（第１の入力情報：割り当て対象リストＳ）
図１１は、第１の入力情報である「割り当て対象リストＳ」の例を示す図である。図１１には、後の説明のため「総合値Ｐｓｓ、ｉ」が記載されているが、入力時には、元サーバＳｉ（図１１のｉ＝１〜７）のみが記載される。このように、入力時には、割り当て対象Ｓｉをｍ個とし、「割り当て対象リストＳ」にはＳｉ（ｉ＝１・・・ｍ）の割り当て対象が記載されている。なお図１１の「ｉ＝１〜７」は一例である。【００３６】
（第２の入力情報：割り当て先リソース容量Ｐ’）
図１２は、第２の入力情報である「割り当て先リソース容量Ｐ’」の例を示す図である。先サーバの割り当て先リソース容量Ｐ’は、次の様である。この第２の入力情報Ｐ’は、１台の先サーバＳ’ｊの容量の上限値Ｐ’を意味する。
「割り当て先リソース容量Ｐ’」は、例えば、
（１）ＣＰＵ使用率（使用量）の上限値（％）、
（２）メモリ使用量の上限値（ＫＢ）、
（３）ディスク使用量の上限値（ＫＢ）、
（４）ディスクアクセス帯域の上限値（ＫＢ／秒）、
（５）ネットワークアクセス帯域の上限値（ＫＢ／秒）である。
１台の割り当て先サーバＳ’ｊについて、各リソース容量を、
（１）ＣＰＵ使用率の上限値Ｐ’ｃｐｕ，ｌｉｍｉｔ、
（２）メモリ使用量の上限値Ｐ’ｍｅｍ，ｌｉｍｉｔ、
（３）ディスク使用量の上限値Ｐ’ｄｉｓｋ，ｌｉｍｉｔ、
（４）ディスクアクセス帯域の上限値Ｐ’ＤＡ，ｌｉｍｉｔ、
（５）ネットワークアクセス帯域の上限値Ｐ’ＮＡ，ｌｉｍｉｔ
とする。これらの「割り当て先リソース容量Ｐ’」はＣＰＵ負荷テーブル１３１〜ネットワーク負荷テーブル１３５に対応する容量である。なお、メモリ使用量、ディスク使用量の単位はＫＢでなくても良い。ディスクアクセス帯域、ネットワークアクセス帯域の単位もＫＢ／秒でなくても良い。【００３７】
（第３の入力情報：優先度αｋ）
図１３は、第３の入力情報である優先度αｋの例を示す図である。ここで添え字の「ｋ」はリソース種別を示す。「優先度αｋ」とは、例えば、ＣＰＵ使用率の優先度αｃｐｕを５０、メモリ使用量の優先度αｍｅｍを２０、ディスク使用量の優先度αｄｉｓｋを１０、ディスクアクセス帯域の優先度αＤＡを１０、ネットワークアクセス帯域の優先度αＮ，Ａを１０のような形式で指定され、入力される。この場合、動作の説明で後述するように、優先度αｃｐｕが「５０」で一番大きい場合には、「ＣＰＵ使用率の優先度αｃｐｕ」が、リソースの割り当てにおいて、最も優先されることとなる。
前記のように、割り当てにおける優先度αは、
（１）ＣＰＵ使用率αｃｐｕ、
（２）メモリ使用量αｍｅｍ、
（３）ディスク使用量αｄｉｓｋ、
（４）ディスクアクセス帯域αＤＡ、
（５）ネットワークアクセス帯域αＮＡ，
にそれぞれ存在する。各優先度αは、入力された値の比率で、他の優先度と比較される。
また、
（１）ＣＰＵ使用率の優先度αｃｐｕを５０、
（２）メモリ使用量の優先度αｍｅｍを２０、
（３）ディスク使用量の優先度αｄｉｓｋを１０、
（４）ディスクアクセス帯域の優先度αＤＡを１０、
（５）ネットワークアクセス帯域の優先度をαＮＡを１０
とした場合は、
「αｃｐｕ：αｍｅｍ：αｄｉｓｋ：αＤＡ：αＮＡ」＝「５：２：１：１：１」
の比率で扱われる。なお「優先度αｋ＝０」とした場合は、そのリソース種別ｋが考慮されないことを示す。例えば、「αＮ，Ａ＝０」とした場合、ネットワークアクセス帯域の優先度は考慮されない。【００３８】
（Ｓ５００ｂ：割り当て対象リストＳのセット）
Ｓ５００ｂ以降は、割り当て部１２０による動作である。次にＳ５００ｂにおいて、割り当て部１２０は、ＣＰＵ負荷テーブル１３１、メモリ使用量テーブル１３２、ディスク使用量テーブル１３３、ディスクアクセス帯域テーブル１３４、ネットワーク負荷テーブル１３５の各テーブルをもとに、それぞれのリソース使用量を計算し、「割り当て対象リストＳ」にセットする。詳細は後述する。【００３９】
（Ｓ５０１：割り当て先リストＳ’の生成）
次にＳ５０１にて、割り当て部１２０は、「割り当て対象リストＳ」にセットされたＣＰＵ使用量、メモリ使用量等の各リソース種別のリソース使用量と、「割り当て先リソース容量Ｐ’」（第２の入力情報）、「優先度αｋ」（第３の入力情報）とから、割り当て先（先サーバ）の初期台数ｎを求め、この初期台数ｎとリソース容量とをセットした「割り当て先リストＳ’」を生成する。【００４０】
図１４は、「割り当て先リストＳ’」の例を示す図である。「割り当て先リストＳ’」生成の詳細は、後述する。【００４１】
（Ｓ５０２：総合値ＰＳＳ，ｉの算出）
Ｓ５０２において、割り当て部１２０は、図１１に示した「割り当て対象リストＳ」において、各割り当て対象（元サーバ）の各リソース使用量の「総合値ＰＳＳ，ｉ」を計算する。「総合値ＰＳＳ，ｉ」の算出の詳細は、後述する。【００４２】
（Ｓ５０３：「割り当て対象リストＳ」のソート）
Ｓ５０３において、割り当て部１２０は、Ｓ５０２で計算したリソース使用量の「総合値ＰＳＳ，ｉ」をもとに、「割り当て対象リストＳ」の元サーバＳｉを「総合値ＰＳＳ，ｉ」の降順にソートする。図１５は、図１１のソート後を示している。【００４３】
Ｓ５０４からは、割り当て部１２０は、ソートされた各元サーバＳｉを順次、先サーバＳ’ｊに割り当てていく。この場合、総合値ＰＳＳ，ｉの大きい順に元サーバＳｉを選択し、割り当て処理を実行する。【００４４】
以降は、割り当て部１２０は、「割り当て対象リストＳ」と「割り当て先リストＳ’」とに基づき、元サーバＳｉのリソース使用量Ｐの先サーバＳ’ｊへの割り当て処理を実行する。【００４５】
（リストＳ，Ｓ’を用いた割り当て処理）
まず、Ｓ５０４において、割り当て部１２０は、ソート後の「割り当て対象リストＳ」から、最も総合値の大きい元サーバＳｉを１つ選択する。例えば、図１５の場合、まず元サーバＳ３が選択される。【００４６】
次にＳ５０５において、割り当て部１２０は、「割り当て先リストＳ’」から割り当て先Ｓ’ｊを選択する。この場合は、選択される先サーバＳ’ｊはどれでもよい。先サーバＳ’ｊは、例えば、「ｊ＝１」から昇順に選択される。【００４７】
（Ｓ５０６：割り当て可能性の判定）
Ｓ５０６において、割り当て部１２０は、割り当て先Ｓ’ｊの容量と「割り当て状況」とから、元サーバＳｉが先サーバＳ’ｊに割り当て可能かどうかを判定する。詳細は後述する。【００４８】
（Ｓ５０７：ちらばり計算）
もし割り当て可能ならば、Ｓ５０７において、割り当て部１２０は、割り当てた場合のちらばりΡ’ｓｄ（散らばり値）を計算し、計算された散らばりΡ’ｓｄと、元サーバＳｉ、先サーバＳ’ｊの組み合わせを「割り当て可能リストＡ」に登録する。図１６は「割り当て可能リストＡ」の例を示す図である。Ｓ５０７の詳細は後述する。【００４９】
もし割り当て可能でない場合には、Ｓ５０７には進まずＳ５０８に進む。【００５０】
Ｓ５０８では、割り当て部１２０は、「割り当て先リストＳ’」に、まだ割り当てを試していない割り当て先Ｓ’ｊがあるかを判定し、あるならばＳ５０５に進み、全ての割り当て先Ｓ’ｊに対してＳ５０６からＳ５０７を繰り返す。【００５１】
割り当て部１２０は、全ての先サーバＳ’ｊに対して一つの元サーバＳｉの割り当てを試し、ちらばりを計算するとＳ５０９へ進む。Ｓ５０９では、「割り当て可能リストＡ」が空でないかどうかを判定する。「割り当て可能リストＡ」が空でない場合には、Ｓ５１０に進む。一方、「割り当て可能リストＡ」が空だった場合には、Ｓ５１１に進む。【００５２】
Ｓ５１０において、割り当て部１２０は、「割り当て可能リストＡ」の中から、ちらばりＰ’ｓｄがもっとも小さな元サーバＳｉと先サーバＳ’ｊとの組み合せを選択する。そして、その組の元サーバＳｉのリソース使用量をその組の先サーバＳ’ｊのリソース容量に割り当てることを確定し、Ｓ５１３に進む。【００５３】
Ｓ５１１において、割り当て部１２０は、「割り当て可能リストＡ」が空であることから、割り当て先のリソース容量が足りず、割り当て対象Ｓｉが割り当てられない状況と判定する。そのため、割り当て部１２０は、割り当て先Ｓ’ｎ＋１を追加し、Ｓ５１２にてＳ’ｎ＋１とＳｉの組合せで割り当てを確定する。【００５４】
Ｓ５１３において、割り当て部１２０は、「割り当て対象リストＳ」に割り当てていない元サーバＳｉが存在するかどうかを判定する。存在すると判定するとＳ５０４に進み、全ての割り当て対象（元サーバ）に対してＳ５０４からＳ５１２を繰り返す。全ての割り当て対象（元サーバ）を割り当てた場合は、終了する。【００５５】
（Ｓ５００ｂの詳細：「割り当て対象リストＳ」へのリソース使用量のセット）
Ｓ５００ｂについて詳しく説明する。Ｓ５００ｂは、割り当て部１２０が、「割り当て対象リストＳ」へリソース使用量をセットするステップである。Ｓ５００ｂでは、割り当て部１２０は、第１の入力情報として入力した「割り当て対象リストＳ」に、リソース使用量をセットする。割り当て部１２０は、構成情報テーブル１２１を参照することにより、ＣＰＵ負荷テーブル１３１、メモリ使用量テーブル１３２、ディスク使用量テーブル１３３、ディスクアクセス帯域テーブル１３４、ネットワーク負荷テーブル１３５から、各割り当て対象（元サーバ）ごとのリソース使用量の情報を取得し、「割り当て対象リストＳ」にセットする。構成情報テーブル１２１には、ホスト（サーバ装置）、システムＩＤ、ＣＰＵ等の関係が記載されている。またテーブル１３１〜１３５には、システムＩＤ等が記載されているので、割り当て部１２０は、構成情報テーブル１２１及び各種テーブル１３１〜１３５により、「割り当て対象リストＳ」に使用量をセットすることができる。
割り当て部１２０は、例えば、図１１の「割り当て対象リストＳ」のＳ１〜Ｓ７の各セルにリソース使用量をセットする。
「割り当て対象リストＳ」にセットされた各負荷を、
（１）ＣＰＵ使用量：Ｐｃｐｕ，ｉ、
（２）メモリ使用量：Ｐｍｅｍ，ｉ、
（３）ディスク使用量：Ｐｄｉｓｋ，ｉ、
（４）ディスクアクセス帯域：ＰＤＡ，ｉ、
（５）ネットワークアクセス帯域使用量：ＰＮＡ，ｉ
とする。割り当て部１２０が負荷を「割り当て対象リストＳ」にセットする場合は、各テーブル１３１〜１３５に蓄積されているデータの中から、特定の期間の最大、最小、平均またはタイル値のいずれかを計算してセットする。
例えば、
（１）図５のＣＰＵ負荷テーブル１３１では、「ＣＰＵ使用率（ＵＳＥＲ）」、「ＣＰＵ使用率（ＳＹＳＴＥＭ）」を加えたものをＣＰＵ使用率Ｐｃｐｕ，ｉ（使用量）とする。ＣＰＵ使用率はＣＰＵ性能差が考慮されていないため、さらにＣＰＵ性能値を考慮したものをＣＰＵ使用量としてセットする。
（２）メモリ使用量Ｐｍｅｍ，ｉには、図６のメモリ使用量テーブル１３２における「メモリ使用量」の値をセットする。
（３）ディスク使用量Ｐｄｉｓｋ，ｉには、図７のディスク使用量テーブル１３３における「ディスク使用量」の値をセットする。
（４）ディスクアクセス帯域ＰＤＡ，ｉには、図８のディスクアクセス帯域テーブル１３４における「ディスク読込速度」と「ディスク書込速度」とを合算した値をセットする。
（５）ネットワークアクセス帯域ＰＮＡ，ｉには、図９のネットワーク負荷テーブル１３５における「ネットワーク送信速度」と「ネットワーク受信速度」とを合算した値をセットする。【００５６】
（Ｓ５０１の詳細：「割り当て先リストＳ’」の生成）
Ｓ５０１について詳しく説明する。Ｓ５０１は、割り当て部１２０が図１４の「割り当て先リストＳ’」を生成するステップである。割り当て部１２０は、「割り当て先リソース容量Ｐ’」（第２の入力情報）と、リソース使用量がセットされた「割り当て対象リストＳ」の前記リソース使用量（負荷）の合計値とから、割り当て先（先サーバ）の台数の初期値ｎを計算する。割り当て部１２０は、まずＣＰＵ使用量や、メモリ使用量などのリソース種別の使用量ごとに初期台数ｎ’を計算し、最後に、リソース種別ごとの優先度αに基づいて、初期台数ｎを決定する。具体的には次のようである。例えば、割り当て部１２０は、次の（式１）に基づき、ＣＰＵ使用量から決まる初期台数ｎ’ｃｐｕを計算する。【００５７】
【数１】
2010044131.tif 000003
【００５８】
（式１）のように、割り当て部１２０は、「割り当て対象リストＳ」の各ＣＰＵ負荷の合計値を、「割り当て先リソース容量Ｐ’」（第２の入力情報）における割り当て先の容量Ｐ’ｃｐｕ，ｌｉｍｉで割ることにより、ｎ’ｃｐｕを計算する。（式１）の分子は、図１１におけるＣＰＵ使用量Ｐｃｐｕ，ｉ列の合計値である。また、分母のＰ’ｃｐｕ，ｌｉｍｉｔは、第２の入力情報である「割り当て先リソース容量Ｐ’」における「ＣＰＵ容量Ｐ’ｃｐｕ，ｌｉｍｉ」（図１２）である。ＣＰＵ使用量の他、同様の計算により、割り当て部１２０は、各リソース種別の負荷ごとに、必要な割り当て先台数ｎ’を求める。つまり、割り当て部１２０は、
（１）ｎ’ｃｐｕ、
（２）ｎ’ｍｅｍ、
（３）ｎ’ｄｉｓｋ、
（４）ｎ’ＤＡ，
（５）ｎ’ＮＡ
を算出する。【００５９】
（優先度を考慮した初期台数ｎの決定）
割り当て部１２０は、リソース種別ごとの負荷に対して計算した台数ｎ’から、優先度αの一番大きな負荷（リソース種別）の台数ｎ’を初期台数ｎとして決定する。すなわち、ｎ’ｃｐｕ等のうち、最も優先度の大きなｎ’を特定する。優先度最大のものが一つであれば、その優先度の示すリソース種別のｎ’が初期台数ｎとして決定される。一方、優先度最大のものが複数ある場合には、次の（式２）に示すように、割り当て部１２０は、同じ優先度の中で一番大きいｎ’を初期台数ｎとして決定する。なお（式２）はｎ’ｃｐｕとｎ’ｍｅｍとの優先度が同一かつ最大の場合である。
ｎ＝ｍａｘ（ｎ’ｃｐｕ，ｎ’ｍｅｍ）      （２）
例えば優先度が、
「αｃｐｕ：αｍｅｍ：αｄｉｓｋ：αＤＡ：αＮＡ」＝「５：５：１：１：１」
の場合、αｃｐｕ及びαｍｅｍに対応する「ｎ’ｃｐｕ」、「ｎ’ｍｅｍ」が優先度の評価によって採用される。そして、上記（式２）によって、数値の大きいｎ’が最終的な初期台数ｎとして採用される。【００６０】
初期台数ｎが決定すると、割り当て部１２０は、「割り当て先リストＳ’」を生成する。「割り当て先リストＳ’」は、上記により決定したｎ台の先サーバＳ’ｊ（ｊ＝１．．．ｎ、ｍ＞ｎ）からなるリストである。図１４に示すように、「割り当て先リストＳ’」は、上記により決定したｎ台の先サーバＳ’ｊと、リソース容量とがセットされている。この場合、リソース容量は、図１４に示すように、第２の入力情報である「割り当て先リソース容量Ｐ’」の各容量がセットされる。なお、図１４は「初期台数ｎ＝３」が決定した場合を示している。【００６１】
（Ｓ５０２：総合値Ｐｓｓ，ｉの算出）
Ｓ５０２について詳しく説明する。Ｓ５０２は、割り当て部１２０が、図１１の「割り当て対象リストＳ」を対象として、リソース使用量の「総合値Ｐｓｓ，ｉ」を計算するステップである。リソース使用量の「総合値Ｐｓｓ，ｉ」とは、ある割り当て対象サーバＳｉのＣＰＵ負荷、メモリ使用量、ディスク使用量、ディスク負荷、ネットワーク負荷などのリソース種別ごとのリソース使用量を偏差値化すると共に、優先度の重みを付けて合計したものである。各リソース使用量は、単位が異なるため単純に合計する事ができない。このため、配置する全部の元サーバＳｉを母集団とし、各リソースの平均が０、標準偏差が１となる偏差値を求め、その合計を「リソース使用量の総合値」とする。このように、総合値Ｐｓｓ，ｉとは、元サーバＳｉごとの、リソース使用量の総和の要約値である。【００６２】
例えば、考慮するリソースをＣＰＵ負荷（ＣＰＵ使用量）、メモリ使用量、ディスク使用量と３つに限定（３次元に限定）した時、元サーバＳｉの「リソース使用量の総和」である総合値Ｐｓｓ，ｉは次のように求める。まず、割り当て部１２０は、統合対象サーバ間でのＣＰＵ負荷の平均Ｐｃｐｕ，ａｖｇと標準偏差Ｐｃｐｕ，ｓｄとを、次の（式３）、（式４）で求める。メモリ使用量、ディスク使用量に関しても同様に平均と標準偏差を求める。【００６３】
【数２】
2010044131.tif 000004
【００６４】
（総合値における優先度の考慮）
この時、各リソースの優先度をＣＰＵ負荷αｃｐｕ、メモリ使用量αｍｅｍ、ディスク負荷αｄｉｓｋとすると、ある元サーバＳｉの「リソース使用量の総合」である総合値Ρｓｓ，ｉは、次の（式５）〜（式７）から（式８）のように求める。すなわち、（式８）のように、総合値Ρｓｓ，ｉは、各負荷の偏差値に重み（その負荷の優先度）を掛け合わせたものの合計として求める。一般的に偏差値は、平均５０、標準偏差１０となるように算出するが、ここでは不必要な計算を避けるため、平均０、標準偏差１となるように偏差値等を算出する。
Ｐｃｐｕ，ｓｃｏｒｅ，ｉ＝（Ｐｃｐｕ，ｉ−Ｐｃｐｕ，ａｖｇ）／Ｐｃｐｕ，ｓｄ              （５）
Ｐｍｅｍ，ｓｃｏｒｅ，ｉ＝（Ｐｍｅｍ，ｉ−Ｐｍｅｍ，ａｖｇ）／Ｐｍｅｍ，ｓｄ              （６）
Ｐｄｉｓｋ，ｓｃｏｒｅ，ｉ＝（Ｐｄｉｓｋ，ｉ−Ｐｄｉｓｋ，ａｖｇ）／Ｐｄｉｓｋ，ｓｄ        （７）
Ｐｓｓ，ｉ＝αｃｐｕ×Ｐｃｐｕ，ｓｃｏｒｅ，ｉ＋αｍｅｍ
×Ｐｍｅｍ，ｓｃｏｒｅ，ｉ＋αｄｉｓｋ×Ｐｄｉｓｋ，ｓｃｏｒｅ，ｉ              （８）【００６５】
以下Ｓ５０３において、割り当て部１２０は、図１５に示したように、「割り当て対象リストＳ」の元サーバＳｉを総合値Ρｓｓ，ｉの降順にソートする。【００６６】
以上のＳ５０３までのステップにおいて、「割り当て対象リストＳ」と「割り当て先リストＳ’」とが準備される。Ｓ５０４以降、割り当て部１２０は、「割り当て対象リストＳ」と「割り当て先リストＳ’」とを用いて、元サーバＳｉの割り当て処理を実行する。具体的には、図１０のフローチャートに示すように、割り当て部１２０は、ｉを固定してｊを変化させ、順次、「元サーバＳｉ」を切り替える。すなわち、割り当て部１２０は、ある一つの元サーバＳｉを選択し、この元サーバＳｉの先サーバＳ’ｊ＝１〜先サーバＳ’ｊ＝ｎに対する割り当て状況をチェックしていく（Ｓ５０６、Ｓ５０７）。そして、割り当て部１２０は、元サーバＳｉを総合値の降順に切り替えていく。【００６７】
（Ｓ５０４以降の処理）
Ｓ５０４以降の処理を説明する。以下の説明では、図１５のソート後の「割り当て対象リストＳ」、及び図１４の「割り当て先リストＳ’」を想定して説明する。【００６８】
Ｓ５０４において、割り当て部１２０は、「割り当て対象リストＳ」から、元サーバＳｉを選択する。割り当て部１２０は、「割り当て対象リストＳ」からある一つの元サーバＳｉを選択する場合には、前述のように、総合値の大きいものから選択していく。図１５では、割り当て部１２０は、まずＳ３を選択し、順次、「Ｓ１，Ｓ５，・・・」の順に選択する。【００６９】
Ｓ５０５において、割り当て部１２０は「割り当て先リストＳ’」から一つの先サーバＳ’ｊを選択する。図１４の例では、割り当て部１２０は、例えば、まず先サーバＳ’１を選択し、順次、「ｊ＝２，３」と選択する。【００７０】
（Ｓ５０６の詳細：割り当て可能判定）
Ｓ５０６について詳しく説明する。Ｓ５０６では、先サーバＳ’ｊのリソース容量Ｐ’（上限）と、先サーバＳ’ｊの現在のリソース使用量の「割り当て状況」とから、元サーバＳｉが先サーバＳ’ｊに割り当て可能かどうかを判定する。図１４、図１５の場合、割り当て部１２０は、まず、元サーバＳ３が先サーバＳ’１に割り当て可能かどうかを判定する。Ｓ５０６の判定では、元サーバＳｉの使用量を先サーバＳ’ｊに割り当てたとした場合における、先サーバＳ’ｊの各リソースごとの使用量合計が、各リソース容量以下かどうかを判定する。つまり、割り当て部１２０は、割り当て先Ｓ’ｊの各リソース容量を図１４における「割り当て先リストＳ’」から、
ＣＰＵリソース容量Ｐ’ｃｐｕ，ｌｉｍｉｔ，ｊ、
メモリリソース容量Ｐ’ｍｅｍ，ｌｉｍｉｔ，ｊ、
ディスクリソース容量Ｐ’ｄｉｓｋ，ｌｉｍｉｔ，ｊ
等を取得し、次の（式９）〜（式１１）の各条件を満たしているかどうかを判定する。
Ｐ’ｃｐｕ，ｊ≦Ｐ’ｃｐｕ，ｌｉｍｉｔ，ｊ        （９）
Ｐ’ｍｅｍ，ｊ≦Ｐ’ｍｅｍ，ｌｉｍｉｔ，ｊ      （１０）
Ｐ’ｄｉｓｋ，ｊ≦Ｐ’ｄｉｓｋ，ｌｉｍｉｔ，ｊ  （１１）
（式９）を例に説明する。
元サーバＳ３、先サーバＳ’１とすると、右辺の「Ｐ’ｃｐｕ，ｌｉｍｉｔ，ｊ」は、先サーバＳ’１の「ＣＰＵ使用率の上限値」である。また、左辺の「Ｐ’ｃｐｕ，ｊ」は、先サーバＳ’１の「現在のＣＰＵ使用量」に、元サーバＳ３のＣＰＵ使用量（ＣＰＵ使用率）を割り当てたと仮定した場合の、先サーバＳ’１の「ＣＰＵ使用量」である。前記「現在のＣＰＵ使用量」とは、Ｓ５１０において割り当てが確定した場合の、先サーバＳ’１に現在割り当てられているＣＰＵ使用量の合計である。割り当て部１２０は、先サーバＳ’ｊに割り当てが確定すると、都度、割り当て量を記憶し、合計する。これにより、割り当て部１２０は、（式９）の判定が可能である。なお、先サーバＳ’１〜サーバＳ’３にリソースの割り当てがされていない状態から処理を開始する場合、Ｓ５０６は「Ｐ’ｃｐｕ，１＝０」となるので、（式９）は成り立つ。（式１０）、（式１１）についても同様である。【００７１】
（Ｓ５０７の詳細）
次に、Ｓ５０７について詳しく説明する。Ｓ５０７は、仮に元サーバＳｉ（Ｓ３）を先サーバＳ’ｊ（Ｓ’１）割り当てた場合に、先サーバＳ’ｊに関する「散らばりΡ’ｓｄ」を計算するステップである。そして、割り当て部１２０は、「散らばりΡ’ｓｄ」と元サーバＳｉ、先サーバＳ’ｊの組み合せを図１６に示した「割り当て可能リストＡ」に登録する。【００７２】
例えば、考慮するリソース種別をＣＰＵ負荷、メモリ使用量、ディスク使用量と３つのリソース種別に限定した場合、「散らばりΡ’ｓｄ」（散らばり値）は、次の（式１２）〜（式１４）によって求める。【００７３】
【数３】
2010044131.tif 000005
Ｐ’ｓｄ＝αｃｐｕ×［Ｐ’ｃｐｕ，ｓｄ／Ｐ’ｃｐｕ，ａｖｇ］
＋αｍｅｍ×［Ｐ’ｍｅｍ，ｓｄ／Ｐ’ｍｅｍ，ａｖｇ］
＋αｄｉｓｋ×［Ｐ’ｄｉｓｋ，ｓｄ／Ｐ’ｄｉｓｋ，ａｖｇ］      （１４）【００７４】
ＣＰＵ使用量Ｐ’ｃｐｕ，ｊ、メモリ使用量Ｐ’ｍｅｍ，ｊ、ディスク使用量Ｐ’ｄｉｓｋ，ｊは、割り当て先Ｓ’ｊの各リソース使用量である。ここで、割り当て先Ｓ’ｊのリソース使用量とは、Ｓ’ｊに割り当てられる割り当て対象（元サーバ）の集合をＸｊとした時、割り当て対象サーバＳｉ（∈Ｘｊ）の各リソース使用量をリソースごとに合計したものである。なお、算出対象となる「ｊ」の先サーバＳ’ｊの場合は、現在のリソース使用量に、処理対象となっている元サーバＳｉのリソース使用量を加えた量である。例えば、（式１２）のＰ’ｃｐｕ、１は、（式９）のＰ’ｃｐｕ、１と同じである。【００７５】
「散らばりΡ’ｓｄ」は、（式１２）〜（式１４）のように、先サーバ間で、各リソースごとに使用量の標準偏差（ｓｄ）と平均（ａｇｖ）を算出し、各リソース種別ごとの散らばり（変動係数）を算出し、算出された散らばりにリソース種別を同じくする優先度αを掛け合わせ和をとり、割り当て先全体のリソース使用量のばらつき具合を数値化したものである。「散らばりΡ’ｓｄ」は小さい程、割り当て先間でリソース使用量が均一であることを示し、完全に均一の場合は０となる。【００７６】
考慮するリソース種別を前記のように３つとする場合、「散らばりΡ’ｓｄ」の算出については、まず、（式１２）によって割り当て先間でのＣＰＵ負荷の平均「Ｐ’ｃｐｕ，ａｖｇ」を求め、次に、（式１３）によって「標準偏差Ｐ’ｃｐｕ，ｓｄ」を求める。メモリ使用量、ディスク使用量に関しても同様である。【００７７】
そして、「散らばりΡ’ｓｄ」は、各リソース種別の標準偏差と重みとから（式１４）によって求める。各リソース種別の標準偏差はスケールが異なるため、それを各平均値で割り「変動係数」を算出する。変動係数は平均と標準偏差との比から得られる値である。そして、変動係数と、この変動係数とリソース種別を同じくする優先度αとを乗じ、合算する。一般に変動係数は標準偏差を平均で割り１００を掛け合わせた百分率で表現されるが、ここでは不必要な計算を避けるため、標準偏差を平均で割るのみとする。【００７８】
（式１２）〜（式１４）を用いた「散らばりΡ’ｓｄ」の算出を、Ｓ５０５〜Ｓ５０８をループする場合を想定してさらに詳しく説明する。以下の説明では、図１４、図１５の「割り当て先リストＳ’」、「割り当て対象リストＳ」を想定し、また、ＣＰＵ負荷、メモリ使用量、ディスク使用量の３つのリソース種別を先サーバに割り当てる場合を想定する。また、以下の説明では、ＣＰＵ使用量を割り当てる場合を説明するが、メモリ使用量等の他のリソース種別についても同様である。【００７９】
図１７〜図２０を参照して説明する。
Ｓ５０４において、割り当て部１２０は、「割り当て対象リストＳ」から元サーバＳ３を選択する。
Ｓ５０５において、割り当て部１２０は、「割り当て先リストＳ’」から先サーバＳ’１を選択する。
Ｓ５０６において、割り当て部１２０は、割り当て可能かを判定する。この場合、まだ先サーバＳ’１には割り当てされておらず、Ｓ５０６はＹＥＳとなるとする。【００８０】
Ｓ５０７において、割り当て部１２０は、（式１２）〜（式１４）に基づいて「散らばりΡ’ｓｄ」を計算する。図１７は「ｉ＝３，ｊ＝１〜３」の場合を説明するための図である。【００８１】
（ｉ＝３，ｊ＝１）
割り当て部１２０は、Ｓ５０７（ｊ＝１）において、元サーバＳ３のＣＰＵ使用量、メモリ使用量、ディスク使用量等の各リソースの使用量を、仮に先サーバＳ’１に割り当てた場合の「散らばりΡ’ｓｄ」を、次のように算出する。図１７の「ｊ＝１」に示すように、割り当て部１２０は、元サーバＳ３のＣＰＵ使用量＜Ｐ３＞を先サーバＳ’１に割り当てた場合の、先サーバＳ’１〜Ｓ’３のＣＰＵ使用量の平均「Ｐ’ｃｐｕ，ａｖｇ」を算出する。「ｊ＝１」の場合、「Ｐ’ｃｐｕ，ａｖｇ」の右辺は、「Ｐ’ｃｐｕ，１」以外は「０」である。次に、割り当て部１２０は、「Ｐ’ｃｐｕ，ａｖｇ」を元に、先サーバＳ’１〜Ｓ’３のＣＰＵ使用量の標準偏差「Ｐ’ｃｐｕ，ｓｄ」を計算する。割り当て部１２０は、標準偏差と平均とから「変動係数」を計算し、リソース種別ごとに、その優先度と変動係数とを乗じて和をとり、散らばり「Ｐ’ｓｄ」を計算し、「割り当て可能リストＡ」に登録する。【００８２】
（ｉ＝３，ｊ＝２）
図１７の「ｊ＝２」は、Ｓ５０７の次のループの処理を示している。割り当て部１２０は、「ｊ＝２」において、元サーバＳ３の各リソースの使用量を、仮に先サーバＳ’２に割り当てた場合の「散らばりΡ’ｓｄ」を算出する。図１７に示すように、今度は、元サーバＳ３のＣＰＵ使用量＜Ｐ３＞を、仮に先サーバＳ’２に割り当てた場合を計算する。散らばり「Ｐ’ｓｄ」の計算方法は、「ｊ＝１」の場合と同様である。割り当て部１２０は結果を「割り当て可能リストＡ」に登録する。【００８３】
（ｉ＝３，ｊ＝３）
図１７の「ｊ＝３」は、Ｓ５０７の「ｊ＝３」のときの処理を示している。割り当て部１２０は、「ｊ＝３」において、元サーバＳ３の各リソースの使用量を、仮に先サーバＳ’３に割り当てた場合の「散らばりΡ’ｓｄ」を算出する。図１７に示すように、今度は、元サーバＳ３のＣＰＵ使用量＜Ｐ３＞を、仮に先サーバＳ’３に割り当てた場合を計算する。散らばり「Ｐ’ｓｄ」の計算方法は、「ｊ＝１」の場合と同様である。割り当て部１２０は結果を「割り当て可能リストＡ」に登録する。【００８４】
ｊ＝３の処理が終了すると、Ｓ５０８ではＹＥＳとなりＳ５０９に進む。Ｓ５０９において、「割り当て可能リストＡ」にはデータが登録されているので、処理はＳ５１０に進む。「割り当て可能リストＡ」にはｊ＝１〜ｊ＝３の結果が登録されているが、図１７の場合、散らばり「Ｐ’ｓｄ」はｊ＝１〜３のいずれの場合も同じ値になるので、割り当て部１２０は、Ｓ５１０において、元サーバＳ３の割り当て先として例えば先サーバＳ’１を確定する（散らばり「Ｐ’ｓｄ」は同一の値なのでどの先サーバでもよい）。【００８５】
（ｉ＝１，ｊ＝１）
そして、処理はＳ５１３に進む。ｊ＝１〜３の処理は終了したので、ステップはＳ５０４に戻る。Ｓ５０４では、元サーバＳ１か選択される。また、Ｓ５０５で先サーバＳ’１が選択される。図１８は「ｉ＝１，ｊ＝１〜３」の場合を説明するための図である。「ｉ＝３」では、先サーバＳ’１に元サーバＳ３の割り当てが確定している。このため、図１８では、「Ｐ３」を枠で囲い、確定を示している。「ｊ＝１」の場合、図１７の「ｊ＝１」の場合と同様に、割り当て部１２０は、「ｊ＝１」において、元サーバＳ１の各リソースの使用量を、仮に先サーバＳ’１に割り当てた場合の「散らばりΡ’ｓｄ」を算出する。図１８に示すように、元サーバＳ１のＣＰＵ使用量＜Ｐ１＞を、仮に先サーバＳ’１に割り当てた場合を計算する。散らばり「Ｐ’ｓｄ」の計算方法は、図１７で説明したとおりである。割り当て部１２０は結果を「割り当て可能リストＡ」に登録する。【００８６】
（ｉ＝１，ｊ＝２）
図１８の「ｊ＝２」は、Ｓ５０７の「ｊ＝２」のループの処理を示している。割り当て部１２０は、「ｊ＝２」において、元サーバＳ１の各リソースの使用量を、仮に先サーバＳ’２に割り当てた場合の「散らばりΡ’ｓｄ」を算出する。図１８に示すように、今度は、元サーバＳ１のＣＰＵ使用量＜Ｐ１＞を、仮に先サーバＳ’２に割り当てた場合を計算する。散らばり「Ｐ’ｓｄ」の計算方法は、「ｊ＝１」の場合と同様である。割り当て部１２０は結果を「割り当て可能リストＡ」に登録する。【００８７】
（ｉ＝１，ｊ＝３）
図１８の「ｊ＝３」は、Ｓ５０７の「ｊ＝３」のループの処理を示している。割り当て部１２０は、「ｊ＝３」において、元サーバＳ１の各リソースの使用量を、仮に先サーバＳ’３に割り当てた場合の「散らばりΡ’ｓｄ」を算出する。図１８に示すように、今度は、元サーバＳ１のＣＰＵ使用量＜Ｐ１＞を、仮に先サーバＳ’３に割り当てた場合を計算する。散らばり「Ｐ’ｓｄ」の計算方法は、「ｊ＝１」の場合と同様である。割り当て部１２０は結果を「割り当て可能リストＡ」に登録する。【００８８】
「ｉ＝３」の場合と同様に、処理はＳ５１０に進む。Ｓ５１０において、散らばり「Ｐ’ｓｄ」は、未だ割り当てのない先サーバＳ’２と先サーバＳ’３とが最小値である。割り当て部１２０は、元サーバＳ１を先サーバＳ’２に割り当てる。【００８９】
（ｉ＝５，ｊ＝１〜３）
上記と同様に、ステップは、Ｓ５１３からＳ５０４に戻る。Ｓ５０４では元サーバＳ５が選択され、Ｓ５０５では先サーバＳ’１が選択される。図１９は、「ｉ＝５，ｊ＝１〜３」の場合を説明するための図である。「ｉ＝３」では、先サーバＳ’１に元サーバＳ３の割り当てが確定しており、「ｉ＝１」では、先サーバＳ’２に元サーバＳ１の割り当てが確定している。このため、図１９では、「Ｐ３」および「Ｐ１」を枠で囲い、確定を示した。図１９において、「ｊ＝１〜３」の内容は、図１７、図１８と同様である。【００９０】
「ｉ＝１」の場合と同様に、処理はＳ５１０に進む。Ｓ５１０において、散らばり「Ｐ’ｓｄ」は、未だ割り当てのない先サーバＳ’３が最小値である。割り当て部１２０は、元サーバＳ５を先サーバＳ’３に割り当てる。【００９１】
（ｉ＝２，ｊ＝１〜３）
上記と同様に、ステップは、Ｓ５１３からＳ５０４に戻る。Ｓ５０４では元サーバＳ２が選択され、Ｓ５０５では先サーバＳ’１が選択される。図２０は、「ｉ＝２，ｊ＝１〜３」の場合を説明するための図である。「ｉ＝３」では先サーバＳ’１に元サーバＳ３の割り当てが確定し、「ｉ＝１」では先サーバＳ’２に元サーバＳ１の割り当てが確定し、「ｉ＝５」では先サーバＳ’３に元サーバＳ５の割り当てが確定した。このため、図２０では、ＣＰＵ使用量「Ｐ３」、「Ｐ１」および「Ｐ５」を枠で囲い、確定を示した。図２０において、「ｊ＝１〜３」の内容は、図１７〜図１９と同様である。【００９２】
「ｉ＝５」の場合と同様に、処理はＳ５１０に進む。Ｓ５１０において、割り当て部１２０は、散らばり「Ｐ’ｓｄ」の最小値となる先サーバＳ’に元サーバＳ２を割り当てる。【００９３】
以下、残りの元サーバＳ７、Ｓ４、Ｓ６の割り当てについても、同様の処理が実行される。以上の例では、計算に考慮するリソースをＣＰＵ使用量、メモリ使用量、ディスク使用量の３つに限定した場合を説明したが、ディスクアクセス帯域やネットワークアクセス帯域についても、同様の計算を用いて考慮することができる。【００９４】
以上の実施の形態１では、リソース割り当て装置１００を説明したが、リソース割り当て装置１００が行う「リソース割り当て方法」の実施の形態として把握することもできる。また、リソース割り当て装置１００を、コンピュータに実行させる「リソース割り当てプログラム」の実施の形態として把握することもできる。さらに、「リソース割り当てプログラム」を記録したコンピュータ実行可能な「記録媒体」の実施の形態として把握することも可能である。【００９５】
実施の形態１のリソース割り当て装置１００は、リソース使用量の偏差値から優先度を考慮した総合値を算出し、その総合値に基づいて割り当てる元サーバの順番を決定する。そして割り当て部１２０は、さらに割り当てた場合の各リソース使用量の「散らばりＰ’ｓｄ」を優先度αを考慮して計算する。割り当て部１２０は、「散らばりＰ’ｓｄ」を最小化する元サーバと先サーバとの組み合せを決定する。これにより、統合後のリソース使用量を均一化するような組み合せを算出することができる。さらに優先度を考慮することによって、柔軟に組み合せを算出することができる。【００９６】
実施の形態２．
実施の形態１では、例えばＣＰＵのように各リソースが複数のデバイスを持ち、それぞれのデバイスが独立した負荷を持つことを想定していない。実施の形態２では、各リソースが複数のデバイスを持つ場合に、各デバイスの負荷を考慮する場合を説明する。実施の形態２は、複数ＣＰＵの場合を例に説明する。以下ではＣＰＵについて述べるが、他のリソースに関しても、同様に複数デバイスへ対応することができる。【００９７】
実施の形態２では、ＣＰＵ負荷テーブル１３１−１が、図２１のように、各ＣＰＵデバイスごとの負荷を格納している。【００９８】
図２２は、実施の形態２の動作を示すフローチャートである。図２２のフローチャートは、図１０のフローチャートにＳ６００〜Ｓ６０８を追加した。実施の形態１では、Ｓ５０６において単純に合算を行って判定した。これに対して実施の形態２では、さらに図２２の「ステップ６００からステップ６０８」に示すステップにより、割り当て対象（元サーバ）と割り当て先（先サーバ）との各ＣＰＵごとの使用量を考慮して、割り当て部１２０が、割り当て可能かどうかを判断する。各ＣＰＵの割り当ては、割り当て対象と割り当て先の使用量が、相補的になるように組み合わせる。すなわち、割り当て部１２０は、割り当て対象のＣＰＵ使用量が大きいＣＰＵと、割り当て先のＣＰＵ使用量が小さいＣＰＵとを組み合わせる。これにより、割り当て後の割り当て先の各ＣＰＵの使用量が均一になるように割り当てることができる。【００９９】
（元サーバのＣＰＵ）
元サーバＳｉのＣＰＵ数をＮｉ、
元サーバＳｉの各ＣＰＵを「Ｓｉ，ｃｐｕ，ｋ、」（ｋ＝１．．．Ｎｉ）」、
各ＣＰＵごとのＣＰＵ使用量を「Ｐｃｐｕ，ｅａｃｈ，ｉ，ｋ」
とする。【０１００】
（先サーバのＣＰＵ）
割り当て先（先サーバ）のＣＰＵ数をＮ’ｊ、
先サーバＳ’ｊの各ＣＰＵを「Ｓ’ｊ，ｃｐｕ，ｌ、（ｌ＝１．．．Ｎ’ｊ）、
各ＣＰＵごとのＣＰＵ使用量を「Ｐ’ｃｐｕ，ｅａｃｈ，ｊ，ｌ」
とする。【０１０１】
割り当て対象サーバＳｉが割り当て先サーバＳ’ｊに割り当て可能かを判断するフローは次のようになる。以下は、割り当て部１２０による処理である。
（１）まずステップ６００において、割り当て対象Ｓｉの各ＣＰＵ、Ｓｉ，ｃｐｕを使用量Ｐｃｐｕ，ｅａｃｈ，ｉにもとづいて、降順で並べ替える。
（２）ステップ６０１において、ｋを１にセットする。
（３）ステップ６０２において、割り当て先サーバＳ’ｊの各ＣＰＵ、Ｓ’ｊ，ｃｐｕを使用量Ｐ’ｃｐｕ，ｊにもとづいて昇順で並べ替える。
（４）ステップ６０３において、ｌに１をセットする。
（５）ステップ６０４において、Ｐｃｐｕ，ｅａｃｈ，ｉ，ｋとＰ’ｃｐｕ，ｅａｃｈ，ｊ，ｌの合計がＰ’ｃｐｕ，ｌｉｍｉｔを超えるかどうかを判定し、超える場合はＳ’ｊ，ｃｐｕ（先サーバのＣＰＵ）へのＳｉ，ｃｐｕ（元サーバのＣＰＵ）の割り当てが失敗し、かつ先サーバＳ’ｊへの元サーバＳｉの割り当ても失敗したと判断し、ステップ５０８へ進む。
（６）超えない場合は、ステップ６０５へ進み、ｋ、ｌを１進める。
（７）ステップ６０６において、ｌがＣＰＵ数Ｎ’ｊを超えない場合は、ステップ６０８へ進み、ｋがＣＰＵ数Ｎｉを超えないかを判断する。超えない場合には、まだ割り当てていないＳｉ，ｃｐｕ（元サーバのＣＰＵ）があるのでステップ６０４へ進む。超える場合には、全てのＳｉ，ｃｐｕ（元サーバのＣＰＵ）を割り当てられたので、Ｓｉ，ｃｐｕ（元サーバのＣＰＵ）とＳ’ｊ，ｃｐｕ（先サーバのＣＰＵ）の組み合わせを「割り当て可能リストＡ」に追加して、ステップ５０７へ進む。
（８）ステップ６０６において、ｌがＣＰＵ数Ｎ’ｊを超える場合（Ｎｉ＞Ｎ’ｊの場合のみ）は、ステップ６０７へ進み、Ｓ’ｊ，ｃｐｕ（先サーバのＣＰＵ）への割り当てを一時的に反映、ステップ６０２にて再び並べ替える。【０１０２】
図２３は、Ｎｉ＜Ｎ’ｊ（元サーバＣＰＵ数＜先サーバＣＰＵ数）の場合の割り当てを示している。図２３は、元サーバ及び先サーバのＣＰＵ使用量でソートした後を示している。図においてハッチングにより色付けしている部分は、ＣＰＵ使用量を示している。この場合、割り当て対象のＣＰＵ２（使用量最大）を割り当て先のＣＰＵ４（使用量最小）へ割り当て、また、割り当て対象のＣＰＵ１を割り当て先のＣＰＵ２へ割り当てることになる。【０１０３】
図２４は、Ｎｉ＞Ｎ’ｊ（元サーバＣＰＵ数＞先サーバＣＰＵ数）の場合の割り当てを示している。図２４も図２３と同様に元サーバ及び先サーバのＣＰＵ使用量でソートした後を示している。この場合、まず割り当て対象のＣＰＵ４（使用量最大）を割り当て先のＣＰＵ２（使用量最小）へ割り当て、また、割り当て対象のＣＰＵ１を割り当て先のＣＰＵ１へ割り当てる。次に一時的に割り当てを反映し（ステップ６０７）、割り当て先のＣＰＵを並べ替え、割り当て対象のＣＰＵ２を割り当て先のＣＰＵ１（使用量最小）へ、割り当て対象のＣＰＵ３を割り当て先のＣＰＵ２へ割り当てる。【０１０４】
実施の形態２では、ステップ５１０にで割当てを確定する場合に、割り当て可能リストに追加したＣＰＵ割り当ての組合せも考慮する。【０１０５】
実施の形態１では、複数ＣＰＵのリソース使用量を平均で計算する。例えば２つのＣＰＵを持つ割り当て先に同様に２つのＣＰＵを持つ割り当て対象のＣＰＵ使用量の合計を求め、割り当て可能かを判定する場合を考えると、実施の形態１の場合、図２５のようになる。割り当て先のＣＰＵ使用量は平均で見られるため、両ＣＰＵとも５０％だという見方となる。割り当て対象も同様で両ＣＰＵとも４０％とみなされ、この場合割り当て後９０％となり、１００％に収まるため割り当て可能である。ところが、実際は図２６のように割り当て対象のＣＰＵ使用量は１０％、７０％と偏っており、割り当て可能ではない。実施の形態２では、図２２のフローによって、複数デバイスを意識し、割り当て可能かどうかの判定を正確に行うことが可能となる。
【図面の簡単な説明】
【０１０６】
【図１】実施の形態１のリソース割り当て装置１００の外観。
【図２】実施の形態２のリソース割り当て装置１００のハードウェア構成。
【図３】実施の形態２のリソース割り当て装置１００のブロック図。
【図４】実施の形態１の構成情報テーブル１２１。
【図５】実施の形態１のＣＰＵ負荷テーブル１３１。
【図６】実施の形態１のメモリ使用量テーブル１３２。
【図７】実施の形態１のディスク使用量テーブル１３３。
【図８】実施の形態１のディスクアクセス帯域テーブル１３４。
【図９】実施の形態１のネットワーク負荷テーブル１３５。
【図１０】実施の形態１のリソース割り当て装置１００の動作を示すフローチャート。
【図１１】実施の形態１の割り当て対象リストＳ。
【図１２】実施の形態１の割り当て先リソース容量Ｐ’。
【図１３】実施の形態１の優先度α。
【図１４】実施の形態１の割り当て先リストＳ’。
【図１５】実施の形態１のソート後の割り当て対象リストＳ。
【図１６】実施の形態１の割り当て可能リストＡ。
【図１７】実施の形態１の散らばりＰｓｄの計算方法を説明する図。
【図１８】実施の形態１の散らばりＰｓｄの計算方法を説明する図。
【図１９】実施の形態１の散らばりＰｓｄの計算方法を説明する図。
【図２０】実施の形態１の散らばりＰｓｄの計算方法を説明する図。
【図２１】実施の形態２のＣＰＵ負荷テーブル１３１−１を示す図。
【図２２】実施の形態２の動作を示すフローチャート。
【図２３】実施の形態２のＣＰＵ使用量の割り当て方式を説明する図。
【図２４】実施の形態２のＣＰＵ使用量の割り当て方式を説明する別の図。
【図２５】実施の形態２において実施の形態１の合算方式を表す図。
【図２６】実施の形態２の合算方式を表す図。
【符号の説明】
【０１０７】
Ｓ  割り当て対象リスト、Ｓ’  割り当て先リスト、Ａ  割り当て先可能リスト、α  優先度、１００  リソース割り当て装置、１１０  入力部、１２０  割り当て部、１３０  テーブル記憶部、１２１  構成情報テーブル、１３１  ＣＰＵ負荷テーブル、１３２  メモリ使用量テーブル、１３３  ディスク使用量テーブル、１３４  ディスクアクセス帯域テーブル、１３５  ネットワーク負荷テーブル、１４０  リスト記憶部。
【図１】
2010044131.tif 000006
【図２】
2010044131.tif 000007
【図３】
2010044131.tif 000008
【図４】
2010044131.tif 000009
【図５】
2010044131.tif 000010
【図６】
2010044131.tif 000011
【図７】
2010044131.tif 000012
【図８】
2010044131.tif 000013
【図９】
2010044131.tif 000014
【図１０】
2010044131.tif 000015
【図１１】
2010044131.tif 000016
【図１２】
2010044131.tif 000017
【図１３】
2010044131.tif 000018
【図１４】
2010044131.tif 000019
【図１５】
2010044131.tif 000020
【図１６】
2010044131.tif 000021
【図１７】
2010044131.tif 000022
【図１８】
2010044131.tif 000023
【図１９】
2010044131.tif 000024
【図２０】
2010044131.tif 000025
【図２１】
2010044131.tif 000026
【図２２】
2010044131.tif 000027
【図２３】
2010044131.tif 000028
【図２４】
2010044131.tif 000029
【図２５】
2010044131.tif 000030
【図２６】
2010044131.tif 000031
【国際調査報告】
2010044131.tif 000032
2010044131.tif 000033
2010044131.tif 000034
2010044131.tif 000035