(57)【要約】【課題】サーバ移行に際し、好適な移行計画を作成すること。【解決手段】移行計画作成システム１は、記憶装置３とプロセッサ２を備える。記憶装置３には、移行元サーバのそれぞれの資源使用量を示すデータＤＳと、移行先サーバのそれぞれの資源容量を示すデータＤＤとが格納される。プロセッサ２は、資源使用量の降順で移行元サーバを１つずつ選択し、また、移行先サーバのうちいずれかを選択する。プロセッサ２は、選択された移行元サーバの資源使用量と選択された移行先サーバの資源容量の残量を比較する。資源使用量が残量より大きい場合、プロセッサ２は、別の移行先サーバを選択した後、上記比較を再度行う。資源使用量が残量以下の場合、プロセッサ２は、選択された移行元サーバを選択された移行先サーバに割り当てる。【選択図】図４
2008210001.tif 000002
【特許請求の範囲】
【請求項１】
ｍ台の移行元サーバ（ｍは２以上の整数）から少なくともＮ台の移行先サーバ（Ｎは１以上の整数）へのサーバ移行の計画を作成する移行計画作成システムであって、
前記移行元サーバのそれぞれの資源使用量を示す第１データと、前記移行先サーバのそれぞれの資源容量を示す第２データとが格納される記憶装置と、
前記第１データ及び前記第２データに基づいて、前記それぞれの移行元サーバの移行先を前記移行先サーバのいずれかに割り当てるプロセッサと
を備え、
前記プロセッサは、パッキング処理において、前記資源使用量の降順で前記移行元サーバを１つずつ選択し、前記移行先サーバのうちいずれかを選択し、前記選択された移行元サーバの前記資源使用量である対象使用量と前記選択された移行先サーバの前記資源容量の残量との比較を行い、
前記対象使用量が前記残量より大きい場合、前記プロセッサは、前記選択された移行先サーバとは別の移行先サーバを選択した後、前記比較を再度行い、
前記対象使用量が前記残量以下の場合、前記プロセッサは、前記選択された移行元サーバを前記選択された移行先サーバに割り当てる
移行計画作成システム。
【請求項２】
請求項１に記載の移行計画作成システムであって、
前記プロセッサは、前記Ｎ台の移行先サーバから前記比較の対象を、前記資源容量の昇順で選択する
移行計画作成システム。
【請求項３】
請求項１又は２に記載の移行計画作成システムであって、
前記対象使用量が前記Ｎ台の移行先サーバのいずれの前記残量より大きい場合、前記プロセッサは、前記選択された移行元サーバを、前記Ｎ台の移行先サーバとは異なる移行先サーバに割り当てる
移行計画作成システム。
【請求項４】
請求項１乃至３のいずれかに記載の移行計画作成システムであって、
前記Ｎ台の移行先サーバの前記資源容量はそれぞれ異なっている
移行計画作成システム。
【請求項５】
請求項１乃至４のいずれかに記載の移行計画作成システムであって、
前記記憶装置には更に、前記移行元サーバと前記移行先サーバとの間の割当関係に関する制約を示す第３データが格納され、
前記プロセッサは、前記第１〜第３データに基づいて、前記制約が満たされるように、前記それぞれの移行元サーバの移行先を前記移行先サーバのいずれかに割り当てる
移行計画作成システム。
【請求項６】
請求項５に記載の移行計画作成システムであって、
前記ｍ台の移行元サーバは、第１移行元サーバを含み、
前記Ｎ台の移行先サーバは、第１移行先サーバを含み、
前記制約は、前記第１移行元サーバの前記第１移行先サーバへの割り当てを指定する
移行計画作成システム。
【請求項７】
請求項６に記載の移行計画作成システムであって、
前記プロセッサは、前記第１移行元サーバを前記第１移行先サーバに割り当て、前記第１移行元サーバの前記資源使用量を前記第１移行先サーバの前記残量から減算した後に、前記パッキング処理を開始し、
前記パッキング処理において、前記プロセッサは、前記第１移行元サーバに関する前記比較をスキップする
移行計画作成システム。
【請求項８】
請求項５に記載の移行計画作成システムであって、
前記ｍ台の移行元サーバは、第１移行元サーバと第２移行元サーバを含み、
前記制約は、前記第１移行元サーバ及び前記第２移行先サーバの同じ移行先サーバへの割り当てを指定する
移行計画作成システム。
【請求項９】
請求項８に記載の移行計画作成システムであって、
前記第１データが示す前記第１移行元サーバ及び前記第２移行元サーバの前記資源使用量は、それぞれ第１資源使用量及び第２資源使用量であり、
前記プロセッサは、前記第１移行元サーバの前記資源使用量を前記第１資源使用量と前記第２資源使用量の和に設定し、前記第２移行元サーバの前記資源使用量を０に設定した後に、前記パッキング処理を開始し、
前記パッキング処理後、前記プロセッサは、前記第１移行元サーバと前記第２移行元サーバの移行先を前記同じ移行先サーバに揃える
移行計画作成システム。
【請求項１０】
請求項５に記載の移行計画作成システムであって、
前記ｍ台の移行元サーバは、第１移行元サーバを含み、
前記Ｎ台の移行先サーバは、第１移行先サーバを含み、
前記制約は、前記第１移行元サーバの前記第１移行先サーバへの割り当てを禁止する
移行計画作成システム。
【請求項１１】
請求項５に記載の移行計画作成システムであって、
前記ｍ台の移行元サーバは、第１移行元サーバと第２移行元サーバを含み、
前記制約は、前記第１移行元サーバ及び前記第２移行先サーバの同じ移行先サーバへの割り当てを禁止する
移行計画作成システム。
【請求項１２】
請求項１０又は１１に記載の移行計画作成システムであって、
前記パッキング処理において、前記選択された移行元サーバと前記選択された移行先サーバが前記制約に違反する場合、前記プロセッサは、前記比較をスキップし、前記選択された移行先サーバとは別の移行先サーバを選択する
移行計画作成システム。
【請求項１３】
ｍ台の移行元サーバ（ｍは２以上の整数）から少なくともＮ台の移行先サーバ（Ｎは１以上の整数）へのサーバ移行の計画を作成する移行計画作成方法であって、
（Ａ）前記移行元サーバのそれぞれの資源使用量を示す第１データを、記憶装置から読み込むステップと、
（Ｂ）前記移行先サーバのそれぞれの資源容量を示す第２データを、記憶装置から読み込むステップと、
（Ｃ）前記第１データ及び前記第２データに基づいて、前記それぞれの移行元サーバの移行先を前記移行先サーバのいずれかに割り当てるステップと
を有し、
前記（Ｃ）ステップは、
（Ｃ１）前記資源使用量の降順で前記移行元サーバを１つずつ選択し、また、前記移行先サーバのうちいずれかを選択するステップと、
（Ｃ２）前記選択された移行元サーバの前記資源使用量である対象使用量と前記選択された移行先サーバの前記資源容量の残量との比較を行うステップと、
（Ｃ３）前記対象使用量が前記残量より大きい場合、前記選択された移行先サーバとは別の移行先サーバを選択した後、前記（Ｃ２）ステップを再度行うステップと、
（Ｃ４）前記対象使用量が前記残量以下の場合、前記選択された移行元サーバを前記選択された移行先サーバに割り当てるステップと
を含む
移行計画作成方法。
【請求項１４】
請求項１３に記載の移行計画作成方法であって、
前記（Ｃ）ステップは更に、（Ｃ５）前記対象使用量が前記Ｎ台の移行先サーバのいずれの前記残量より大きい場合、前記選択された移行元サーバを、前記Ｎ台の移行先サーバとは異なる移行先サーバに割り当てるステップを含む
移行計画作成方法。
【請求項１５】
請求項１３又は１４に記載の移行計画作成方法であって、
前記（Ｃ）ステップにおいて、前記Ｎ台の移行先サーバのうち、前記比較の対象は前記資源容量の昇順で選択される
移行計画作成方法。
【請求項１６】
請求項１３乃至１５のいずれかに記載の移行計画作成方法であって、
前記Ｎ台の移行先サーバの前記資源容量はそれぞれ異なっている
移行計画作成方法。
【請求項１７】
請求項１３乃至１６のいずれかに記載の移行計画作成方法であって、
更に、（Ｄ）前記移行元サーバと前記移行先サーバとの間の割当関係に関する制約を示す第３データを、記憶装置から読み込むステップを有し、
前記（Ｃ）ステップにおいて、前記制約が満たされるように、前記それぞれの移行元サーバの移行先が前記移行先サーバのいずれかに割り当てられる
移行計画作成方法。
【請求項１８】
請求項１３乃至１７のいずれかに記載の移行計画作成方法をコンピュータに実行させるための移行計画作成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバ移行のための技術に関する。特に、本発明は、サーバの移行計画を作成するためのシステム、方法及びプログラムに関する。
【背景技術】
【０００２】
ＶＭｗａｒｅやＸｅｎといった仮想化ソフトウェアを用いた仮想化技術によって、１台の物理サーバを複数の仮想サーバとして稼働させることができる。その結果、状況に応じてサーバ運用を効率化することが容易になってきている（特許文献１参照）。また、仮想化技術によって、サーバの移行を簡単に行うことも可能となってきている。サーバ移行とは、例えば次のようなものである。
【０００３】
図１は、サーバ移行の一例としての「サーバ統合」を概念的に示している。図１において、既存の５台の物理サーバＭ１〜Ｍ５で運用が行われているとする。これら物理サーバＭ１〜Ｍ５による処理が、３台の高性能の物理サーバＭ６〜Ｍ８に集約されるとする。例えば、物理サーバＭ１及びＭ２が、物理サーバＭ６上で動作する仮想サーバＶＭ１及びＶＭ２にそれぞれ置き換えられる。また、物理サーバＭ３が、物理サーバＭ７上で動作する仮想サーバＶＭ３に置き換えられる。更に、物理サーバＭ４及びＭ５が、物理サーバＭ８上で動作する仮想サーバＶＭ４及びＶＭ５にそれぞれ置き換えられる。図１で示された例では、５台の物理サーバＭ１〜Ｍ５が「移行元サーバ群」であり、３台の物理サーバＭ６〜Ｍ８が「移行先サーバ群」である。このようなサーバ統合は、サーバ台数の削減を通じて占有面積や電力使用量を削減し、運用管理コストの削減に大きく貢献する。
【０００４】
図２は、サーバ移行の他の例としての「サーバ組替」を概念的に示している。図２において、物理サーバＭ１〜Ｍ３上で動作する仮想サーバＶＭ１〜ＶＭ５で運用が行われているとする。処理量の多い昼間、仮想サーバＶＭ１、ＶＭ２は物理サーバＭ１上に構築され、仮想サーバＶＭ３、ＶＭ４は物理サーバＭ２上に構築され、仮想サーバＶＭ５は物理サーバＭ３上に構築される。一方、処理量の少ない夜間、仮想サーバＶＭ１、ＶＭ２、ＶＭ４は物理サーバＭ１上に構築され、仮想サーバＶＭ３、ＶＭ５は物理サーバＭ２上に構築され、物理サーバＭ３は使用されない。このように、状況に応じてサーバ台数が削減され、運用管理コストが削減される。図２で示された例では、昼間あるいは夜間の仮想サーバＶＭ１〜ＶＭ５が「移行元サーバ群」であり、物理サーバＭ１〜Ｍ３が「移行先サーバ群」である。
【０００５】
以上に説明されたように、サーバ移行は、運用管理コストの観点から重要である。そのサーバ移行においては、移行後のサーバ台数を見積もるとともに、各移行元サーバをどの移行先サーバに割り当てるかを示す「移行計画」を策定する必要がある。その移行計画が満たすべき基本点な条件は、計算機資源（リソース）の包含関係である。すなわち、ある移行先サーバに割り当てられる移行元サーバの「資源使用量」の合計は、その移行先サーバの「資源容量」を超えてはならない。ここで、計算機資源とは、ＣＰＵのほか、ディスクやメモリ、ネットワーク等を指す。
【０００６】
一方、コストの観点からは、移行後のサーバ台数がより少なくなるような移行計画が好適である。容量が一定の容器に様々なサイズの品物を詰めるとき、その品物の集合に対して必要となる容器の最小の個数を見つける問題は、一般に「ビンパッキング問題」と呼ばれている。そのビンパッキング問題に関して、現実的な時間内に最適解を見つけることは極めて難しいことが知られている。近似的な解法アルゴリズムとしては、「Ｆｉｒｓｔ−Ｆｉｔ減少（ＦＦＤ）アルゴリズム」などが知られている（非特許文献１参照）。
【０００７】
特許文献２には、並列計算機の負荷分散方法が記載されている。その並列計算機は、複数の計算機から構成されており、複数の構成プログラムから構成される並列プログラムを実行する。複数の構成プログラムが複数の計算機に割り当てられる際、構成プログラム自身が計算機にかける負荷が考慮され、負荷分散が行われる。具体的には、履歴採取プログラムが、各構成プログラムの資源使用率を採取する。更に、スケジューラが、各計算機の現在の資源使用率を参照し、資源使用率の大きい構成プログラムを、現在の資源使用率の小さい計算機に割り当てる。すなわち、スケジューラは、負荷の高い処理を、余力の大きな計算機に割り当てる。
【０００８】
【特許文献１】特開２００５−１１５６５３号公報
【特許文献２】特開平１０−２７１６７号公報
【非特許文献１】Ｂ．コルテ，Ｊ．フィーゲン著，浅野孝夫他訳，「組合せ最適化  理論とアルゴリズム」，シュプリンガー・フェアラーク東京，２００５年１１月３日，ｐｐ．４７０−４７２．
【発明の開示】
【発明が解決しようとする課題】
【０００９】
本発明の１つの目的は、適切な範囲内のサーバ台数へのサーバ移行計画を機械的に作成することができる技術を提供することにある。
【００１０】
また、既存のビンパッキング問題では、容器のサイズはすべて一定である。しかしながら、実際のサーバ移行処理においては、資源容量の異なる複数の移行先サーバが用いられることが多い。従って、本発明の他の目的は、移行先サーバの資源容量が互いに異なる場合でも移行計画を作成することができる技術を提供することにある。
【００１１】
更に、実際のサーバ移行処理においては、移行元サーバの移行先サーバに対する割当に関して、様々な制約（以下、「割当制約」と参照される）が与えられる場合がある。割当制約の例としては、「ある移行元サーバを特定の移行先サーバに移行する」、「ある２つの移行元サーバを同じ移行先サーバに移行してはならない」などが挙げられる。しかしながら、上述のＦＦＤアルゴリズムは、このような割当制約に対する処理をサポートしていない。従って、本発明の更に他の目的は、与えられる割当制約を扱うことができ、その割当制約に適合する移行計画を作成することができる技術を提供することにある。
【課題を解決するための手段】
【００１２】
以下に、［発明を実施するための最良の形態］で使用される番号・符号を用いて、［課題を解決するための手段］を説明する。これらの番号・符号は、［特許請求の範囲］の記載と［発明を実施するための最良の形態］との対応関係を明らかにするために括弧付きで付加されたものである。ただし、それらの番号・符号を、［特許請求の範囲］に記載されている発明の技術的範囲の解釈に用いてはならない。
【００１３】
本発明によれば、サーバ移行技術が提供される。具体的には、ｍ台の移行元サーバ（１００−０〜１００−（ｍ−１）：ｍは２以上の整数）から少なくともＮ台の移行先サーバ（２００−０〜２００−（Ｎ−１）：Ｎは１以上の整数）へのサーバ移行の計画を作成する技術が提供される。Ｎ台の移行先サーバ（２００−０〜２００−（Ｎ−１））の資源容量はそれぞれ異なっていてもよい。
【００１４】
本発明の第１の観点において、サーバ移行計画システム（１）が提供される。その移行計画作成システム（１）は、記憶装置（３）とプロセッサ（２）を備える。記憶装置（３）には、移行元サーバ（ｉ：０〜（ｍ−１））のそれぞれの資源使用量（Ｗ（ｉ））を示す第１データ（ＤＳ）と、移行先サーバ（ｊ：０〜（Ｎ−１））のそれぞれの資源容量（Ｕ（ｊ））を示す第２データ（ＤＤ）とが格納される。プロセッサ（２）は、第１データ（ＤＳ）及び第２データ（ＤＤ）に基づいて、それぞれの移行元サーバ（ｉ）の移行先（Ａ（ｉ））を移行先サーバ（ｊ）のいずれかに割り当てる。
【００１５】
より詳細には、プロセッサ（２）は、次のパッキング処理を行う。すなわち、プロセッサ（２）は、資源使用量（Ｗ（ｉ））の降順（ｋ）で移行元サーバ（ｉ）を１つずつ選択する。また、プロセッサ（２）は、移行先サーバ（ｊ）のうちいずれかを選択する。そして、プロセッサ（２）は、選択された移行元サーバ（Ｓ（ｋ））の資源使用量である対象使用量（Ｗ（Ｓ（ｋ）））と選択された移行先サーバの資源容量の残量（Ｕ（ｊ）−Ｘ（ｊ））との比較を行う。対象使用量（Ｗ（Ｓ（ｋ）））が残量（Ｕ（ｊ）−Ｘ（ｊ））より大きい場合、プロセッサ（２）は、別の移行先サーバ（ｊ）を選択した後、上記比較を再度行う。一方、対象使用量（Ｗ（Ｓ（ｋ）））が残量（Ｕ（ｊ）−Ｘ（ｊ））以下の場合、プロセッサ（２）は、選択された移行元サーバ（Ｓ（ｋ））を選択された移行先サーバ（ｊ）に割り当てる。また、対象使用量（Ｗ（Ｓ（ｋ）））がＮ台の移行先サーバ（ｊ）のいずれの残量（Ｕ（ｊ）−Ｘ（ｊ））より大きい場合、プロセッサ（２）は、選択された移行元サーバ（Ｓ（ｋ））を、Ｎ台の移行先サーバ（２００−０〜２００−（Ｎ−１））とは異なり且つ所定の資源容量（Ｕ）を有する移行先サーバ（２００−Ｘ）に割り当てる。
【００１６】
上記パッキング処理において、好適には、プロセッサ（２）は、Ｎ台の移行先サーバから比較の対象を、資源容量（Ｕ（ｊ））の昇順で選択する。
【００１７】
記憶装置（３）には更に、移行元サーバ（ｉ）と移行先サーバ（ｊ）との間の割当関係（Ａ（ｉ）＝ｊ）に関する割当制約を示す第３データ（ＣＯＮ）が格納されてもよい。その場合、プロセッサ（２）は、第１データ（ＤＳ）、第２データ（ＤＤ）及び第３データ（ＣＯＮ）に基づいて、上記割当制約が満たされるように、それぞれの移行元サーバ（ｉ）の移行先（Ａ（ｉ））を移行先サーバ（ｊ）のいずれかに割り当てる。
【００１８】
本発明の第２の観点において、移行計画作成方法が提供される。その移行計画作成方法は、（Ａ）移行元サーバ（ｉ：０〜（ｍ−１））のそれぞれの資源使用量（Ｗ（ｉ））を示す第１データ（ＤＳ）を、記憶装置（３）から読み込むステップと、（Ｂ）移行先サーバ（ｊ：０〜（Ｎ−１））のそれぞれの資源容量（Ｕ（ｊ））を示す第２データ（ＤＤ）を、記憶装置（３）から読み込むステップと、（Ｃ）第１データ（ＤＳ）及び第２データ（ＤＤ）に基づいて、それぞれの移行元サーバ（ｉ）の移行先（Ａ（ｉ））を移行先サーバ（ｊ）のいずれかに割り当てるステップと、を有する。
【００１９】
上記（Ｃ）ステップは、（Ｃ１）資源使用量（Ｗ（ｉ））の降順（ｋ）で移行元サーバ（ｉ）を１つずつ選択し、また、移行先サーバ（ｊ）のうちいずれかを選択するステップと、（Ｃ２）選択された移行元サーバ（Ｓ（ｋ））の資源使用量である対象使用量（Ｗ（Ｓ（ｋ）））と選択された移行先サーバ（ｊ）の資源容量の残量（Ｕ（ｊ）−Ｘ（ｊ））との比較を行うステップと、（Ｃ３）対象使用量（Ｗ（Ｓ（ｋ）））が残量（Ｕ（ｊ）−Ｘ（ｊ））より大きい場合、別の移行先サーバ（ｊ）を選択した後、上記（Ｃ２）ステップを再度行うステップと、（Ｃ４）対象使用量（Ｗ（Ｓ（ｋ）））が残量（Ｕ（ｊ）−Ｘ（ｊ））以下の場合、選択された移行元サーバ（Ｓ（ｋ））を選択された移行先サーバ（ｊ）に割り当てるステップと、を含む。上記（Ｃ）ステップは更に、（Ｃ５）対象使用量（Ｗ（Ｓ（ｋ）））がＮ台の移行先サーバ（ｊ）のいずれの残量（Ｕ（ｊ）−Ｘ（ｊ））より大きい場合、選択された移行元サーバ（Ｓ（ｋ））を、Ｎ台の移行先サーバ（２００−０〜２００−（Ｎ−１））とは異なり且つ所定の資源容量（Ｕ）を有する移行先サーバ（２００−Ｘ）に割り当てるステップを含んでもよい。
【００２０】
本発明に係る移行計画作成方法は、更に、（Ｄ）移行元サーバ（ｉ）と移行先サーバ（ｊ）との間の割当関係（Ａ（ｉ）＝ｊ）に関する割当制約を示す第３データ（ＣＯＮ）を、記憶装置（３）から読み込むステップを有してもよい。その場合、上記（Ｃ）ステップにおいては、読み込まれた割当制約が満たされるように、それぞれの移行元サーバ（ｉ）の移行先（Ａ（ｉ））が移行先サーバ（ｊ）のいずれかに割り当てられる。
【００２１】
本発明の第３の観点において、移行計画作成プログラム（１０）が提供される。その移行計画作成プログラム（１０）は、上述の移行計画作成方法をコンピュータに実行させる。
【発明の効果】
【００２２】
本発明によれば、適切な範囲内のサーバ台数へのサーバ移行計画を機械的に作成することが可能となる。特に、移行先サーバの資源容量が互いに異なる場合でも、好適な移行計画を機械的に作成することが可能となる。その結果、システム設計者にかかる負担が軽減され、また、サーバ移行に要する時間が削減される。あるいは、移行後のサーバ台数が少なくなるような移行計画を作成することが可能となる。その結果、サーバの運用管理コストが削減される。あるいは、本発明によれば、与えられた割当制約に適合する好適な移行計画を作成することが可能となる。
【発明を実施するための最良の形態】
【００２３】
添付図面を参照して、本発明の実施の形態に係るサーバ移行技術を説明する。
【００２４】
図３は、サーバの移行を概念的に示している。移行元のサーバ群は、ｍ台のサーバ１００−０〜１００−（ｍ−１）から構成されている。ｍは２以上の整数である。これら移行元サーバ１００の移行先として、Ｎ台のサーバ２００−０〜２００−（Ｎ−１）が用いられる予定であるとする。Ｎは１以上の整数であり、ｍより小さいことが好適である。例えば、ｍは５であり、Ｎは２である。但し、Ｎ台の移行先サーバ２００では不十分な場合、それらとは別のサーバ２００−Ｘが追加されるとする。つまり、ｍ台の移行元サーバ１００は、少なくともＮ台の移行先サーバ２００に移行される。
【００２５】
各サーバは、実マシンであってもよいし、仮想化技術に基づいて構築される仮想マシンであってもよい。各サーバは、ＣＰＵ、ディスク、メモリ、ネットワーク等の計算機資源（リソース）を使用する。従って、各移行元サーバ１００に関して、その移行元サーバ１００が使用していた計算機資源の量を示す「資源使用量」を定義することができる。一方、各移行先サーバ２００に関して、その移行先サーバ２００が使用可能な計算機資源の量（許容量）を示す「資源容量」を定義することができる。
【００２６】
資源使用量の一例として、ＣＰＵ使用量が挙げられる。そのＣＰＵ使用量は、“ＣＰＵの相対性能値”と“ＣＰＵ使用率”との積で与えられる。例えば、ある移行元サーバ１００が、相対性能値８０のＣＰＵを搭載しており、ＣＰＵ使用率６０％を上限として稼動していた場合、当該移行元サーバ１００の資源使用量は４８（＝８０×０．６０）である。移行先サーバ２００の資源容量も同様に定義され得る。例えば、相対性能値１２０のＣＰＵを備える移行先サーバ２００を用い、ＣＰＵ使用率７５％を上限として運用を行う予定の場合、当該移行先サーバ２００の資源容量は９０（＝１２０×０．７５）となる。
【００２７】
図３に示されるように、移行元サーバ１００のそれぞれには、ＩＤ番号として整数ｉ（＝０〜（ｍ−１））が付与されている。それら移行元サーバｉの資源使用量は、Ｗ（ｉ）で表されており、図３の例ではＷ（０）＝１７、Ｗ（１）＝２３、Ｗ（２）＝１９、Ｗ（３）＝１１、Ｗ（４）＝１４である。同様に、移行先サーバ２００のそれぞれには、ＩＤ番号として整数ｊ（＝０〜（Ｎ−１））が付与されている。それら移行先サーバｊの資源容量はＵ（ｊ）で表されており、図３の例ではＵ（０）＝５０、Ｕ（１）＝３５である。尚、追加用のサーバ２００−Ｘの資源容量Ｕは、デフォルト値４０である。
【００２８】
サーバ移行に際しては、移行元サーバ１００のそれぞれをどの移行先サーバ２００に割り当てるかを示す「移行計画」を策定する必要がある。すなわち、ＩＤ番号ｉとＩＤ番号ｊとの対応関係（Ａ（ｉ）＝ｊ）を決定する必要がある。移行計画が満たすべき基本点な条件は、上述の計算機資源の包含関係である。すなわち、ある移行先サーバｊに割り当てられる移行元サーバｉの資源使用量Ｗ（ｉ）の合計は、その移行先サーバｊの資源容量Ｕ（ｊ）を超えてはならない。更に、コストの観点からは、移行後のサーバ台数ｎ（ｎはＮ以上の整数）がより少なくなるような移行計画が好適である。このような条件を満たすような好適な移行計画を作成すること、すなわち、好適な対応関係Ａ（ｉ）＝ｊ）を決定することが、本発明の目的の１つである。
【００２９】
図４は、移行計画を作成するための移行計画作成システム１の一例を示している。移行計画作成システム１は、コンピュータシステムであり、例えば管理サーバ上に構築される。この移行計画作成システム１は、プロセッサ２、記憶装置３、入力装置４、出力装置５、ネットワークインタフェース８、メディアドライブ９を備えている。プロセッサ２はＣＰＵを含み、各種処理を行い、また、各装置や各デバイスの動作を制御する。記憶装置３として、ＲＡＭやハードディスクが例示される。入力装置４として、キーボードやマウスが例示される。出力装置５は、表示装置６やプリンタ７を含んでいる。ユーザは、表示装置６に表示される情報を参照しながら、入力装置４を用いて各種データやコマンドを入力することができる。
【００３０】
記憶装置３には、移行元運用データＤＳ、移行先容量データＤＤ、割当制約データＣＯＮが格納される。それらデータは、入力装置４により入力されてもよいし、ネットワークインタフェース８を介して提供されてもよい。または、それらデータは、コンピュータ読み取り可能な記録媒体に記録され、メディアドライブ９によって読み込まれてもよい。
【００３１】
移行元運用データＤＳは、移行元サーバ１００のそれぞれの資源使用量を示すデータである。図５は、移行元運用データＤＳの一例を示している。図５に示されるように、移行元運用データＤＳは、移行元サーバｉとその資源使用量Ｗ（ｉ）との対応を示している。資源使用量Ｗ（ｉ）は、例えば、過去の運用実績や予測値に基づいて得られる。
【００３２】
移行先容量データＤＤは、移行先サーバ２００のそれぞれの資源容量を示すデータである。図６は、移行先容量データＤＤの一例を示している。図６に示されるように、移行先容量データＤＤは、移行先サーバｊとその資源容量Ｕ（ｊ）との対応、及び資源容量のデフォルト値Ｕを示している。デフォルト値Ｕ（＝４０）は、場合によって追加されるサーバ２００−Ｘの資源容量である。これら資源容量Ｕ（ｊ）及びＵは、移行先サーバ２００の性能に基づいて得られる。また、図６に示されるように、それら資源容量Ｕ（ｊ）、Ｕは、互いに異なる値とすることができる。
【００３３】
割当制約データＣＯＮは、移行元サーバｉと移行先サーバｊとの間の割当関係（Ａ（ｉ）＝ｊ）に関する「割当制約」を示すデータである。割当制約の例としては、「ある移行元サーバを特定の移行先サーバに移行する」、「ある２つの移行元サーバを同じ移行先サーバに移行してはならない」などが挙げられる。詳細は、後述される。
【００３４】
再度図４を参照して、記憶装置３には更に、移行計画データＰＬＡＮが格納される。この移行計画データＰＬＡＮは、移行計画作成システム１によって作成される「移行計画」を示すデータである。
【００３５】
記憶装置３には更に、移行計画作成プログラム１０が格納される。この移行計画作成プログラム１０は、プロセッサ２によって実行されるソフトウェアである。移行計画作成プログラム１０は、例えば、コンピュータ読み取り可能な記録媒体に記録されており、メディアドライブ９によって読み込まれる。あるいは、移行計画作成プログラム１０は、ネットワークインタフェース８を介して提供されてもよい。
【００３６】
プロセッサ２は、移行計画作成プログラム１０を実行することによって、本発明に係る移行計画作成処理を実現する。つまり、プロセッサ２は、記憶装置３から各種データＤＳ，ＤＤ，ＣＯＮを読み出し、それらデータに基づいて、移行元サーバｉのそれぞれの移行先Ａ（ｉ）を移行先サーバｊのいずれかに割り当てる。その結果、移行計画データＰＬＡＮが作成される。移行計画データＰＬＡＮは、決定された割当関係（Ａ（ｉ）＝ｊ）、必要な移行先サーバの台数ｎ、各移行先サーバでの資源使用量の予測値などを示す。その移行計画データＰＬＡＮは、出力装置５によって外部に出力される。
【００３７】
以下、本発明に係る移行計画作成処理の様々な形態を詳しく説明する。その説明においては、図３〜図６で示されたケースが、例として用いられる。
【００３８】
１．第１の実施の形態
図７は、移行計画作成処理の第１の実施の形態を示している。本実施の形態では、プロセッサ２と移行計画作成プログラム１０との協働により、資源使用量入力モジュール１１、資源容量入力モジュール１２、移行元ソートモジュール１３、パッキングモジュール１４、及び出力モジュール１５が提供される。図８は、これらモジュールにより実現される処理フローを示している。図７及び図８を参照して、移行計画作成処理を俯瞰する。
【００３９】
ステップＳ１１：
資源使用量入力モジュール１１は、記憶装置３から移行元運用データＤＳを読み出す。その移行元運用データＤＳは、移行元サーバｉのそれぞれの資源使用量（１７、２３、１９、１１、１４）を示している。資源使用量入力モジュール１１は、それら資源使用量を変数Ｗ（ｉ）にそれぞれ格納する。
【００４０】
ステップＳ１２：
資源容量入力モジュール１２は、記憶装置３から移行先容量データＤＤを読み出す。その移行先容量データＤＤは、移行先サーバｊのそれぞれの資源容量（５０、３５）とデフォルト値（４０）を示している。資源容量入力モジュール１２は、それら資源容量及びデフォルト値を、変数Ｕ（ｊ）及び変数Ｕに格納する。更に、資源容量入力モジュール１２は、移行先サーバｊのそれぞれに関して変数Ｘ（ｊ）を定義する。この変数Ｘ（ｊ）は、移行先サーバｊに割り当てられた移行元サーバｉの資源使用量Ｗ（ｉ）の合計値を示す。つまり、変数Ｘ（ｊ）は、移行先サーバｊの資源使用量の予測値を示す。現段階では、変数Ｘ（ｊ）は全て０に初期設定される。以下、変数Ｘ（ｊ）は、資源割当量Ｘ（ｊ）と参照される。
【００４１】
ステップＳ１３：
移行元ソートモジュール１３は、移行元サーバｉを、資源使用量Ｗ（ｉ）の大きい順（降順）にソートする。更に、移行元ソートモジュール１３は、ソート結果を配列Ｓに格納する。配列Ｓの各要素はＳ（ｋ）で表されるとする（ｋ＝０〜ｍ−１）。このとき、要素Ｓ（０）は、資源使用量Ｗ（ｉ）が最大の移行元サーバのＩＤ番号ｉを示し、要素Ｓ（ｍ−１）は、資源使用量Ｗ（ｉ）が最小の移行元サーバのＩＤ番号ｉを示す。本例の場合、Ｓ＝［１，２，０，４，３］、Ｗ（Ｓ（０））＝２３，Ｗ（Ｓ（１））＝１９，Ｗ（Ｓ（２））＝１７，Ｗ（Ｓ（３））＝１４，Ｗ（Ｓ（４））＝１１である。後に説明されるように、配列Ｓ＝［１，２，０，４，３］は、割当処理の順番を意味している。
【００４２】
ステップＳ１４：
パッキングモジュール１４は、資源使用量Ｗ（ｉ）、配列Ｓ、資源容量Ｕ（ｊ）、Ｕ、及び資源割当量Ｘ（ｊ）を用いて、「パッキング処理」を行う。このパッキング処理において、パッキングモジュール１４は、移行元サーバｉのそれぞれの移行先Ａ（ｉ）を移行先サーバｊのいずれかに割り当てる。その結果、割当関係（Ａ（ｉ）＝ｊ）、移行先サーバの必要台数ｎ、最終的な資源割当量Ｘ（ｊ）が決定される。
【００４３】
ステップＳ１５：
出力モジュール１５は、作成された移行計画データＰＬＡＮを記憶装置３に格納し、また、出力装置５に出力する。
【００４４】
次に、上述のパッキング処理（ステップＳ１４）を更に詳しく説明する。図９は、本実施の形態におけるパッキング処理を示すフローチャートである。また、図１０は、移行計画の作成例を示す概念図である。図１０に示されるように、配列Ｓの要素を表すパラメータｋは資源使用量Ｗ（ｉ）の大きさの順番を示しており、ｋ＝０，１，２，３，４はそれぞれｉ＝１，２，０，４，３に対応している。
【００４５】
まず、必要サーバ台数を示すパラメータｎが１に初期設定される。また、上記パラメータｋが０に初期設定される（ステップＳ１０１）。このパラメータｋは、次に示されるループ処理のカウンタとして用いられ、初期値０から１ずつ増加していく。１回のループ処理では、Ｓ（ｋ）で与えられるＩＤ番号の移行元サーバｉが、いずれかの移行先サーバｊに割り当てられる。全ての移行元サーバｉに関する割当処理が終了すれば（ステップＳ１０２；Ｎｏ）、ループ処理は終了し、ステップＳ１４が完了する。
【００４６】
パラメータｋが初期値０から１ずつ増加するため、割当処理の対象は、ＩＤ番号ｉ＝１，２，０，４，３の順番で変化していく。すなわち、資源使用量Ｗ（ｉ）の大きい順（降順）で、移行元サーバｉが１つずつ割当処理の対象として選択される。資源使用量Ｗ（ｉ）の降順で割当処理を行うことにより、全ての移行元サーバｉをより少数の移行先サーバｊに割り当てることができる。これは、ビンパッキング問題におけるヒューリスティクス（まず大きな物を配置して、小さな物は空きの部分に配置した方が、容器の数を少なくできる）に基づいている。
【００４７】
（１回目のループ処理：ｋ＝０、ｉ＝Ｓ（０）＝１）
まず、移行先サーバ（ｊ＝０）が選択される（ステップＳ１０３）。このとき、ｊはｎより小さいので（ステップＳ１０４；Ｙｅｓ）、処理はステップＳ１０８に進む。
【００４８】
ステップＳ１０８において、資源容量Ｕ（ｊ）が、資源割当量Ｘ（ｊ）と資源使用量Ｗ（ｉ）との和と比較される。これは、選択された移行元サーバｉの資源使用量Ｗ（ｉ）と、選択された移行先サーバｊの資源容量の残量（＝Ｕ（ｊ）−Ｘ（ｊ））との比較を意味する。以下、この比較対象の資源使用量Ｗ（ｉ）を、対象使用量Ｗ（ｉ）と参照する場合もある。現在のループ処理では、対象使用量（Ｗ（１）＝２３）と残量（Ｕ（０）−Ｘ（０）＝５０）との比較が行われる。
【００４９】
対象使用量が残量以下であるため（ステップＳ１０８；Ｙｅｓ）、ステップＳ１１０が実行される。ステップＳ１１０において、選択中の移行元サーバ（ｉ＝１）が、選択中の移行先サーバ（ｊ＝０）に割り当てられる。すなわち、割当関係Ａ（１）＝０が決定する。同時に、資源割当量Ｘ（０）に対象使用量Ｗ（１）が加算される。図１０中の符号＃が付与されたボックスは、各ループ処理の結果を示している。現在のループ処理の結果は、符合＃１が付与されたボックス中に示されている。その後、パラメータｋがインクリメントされ、次の移行元サーバＳ（１）が選択される（ステップＳ１１１）。
【００５０】
（２回目のループ処理：ｋ＝１、ｉ＝Ｓ（１）＝２）
移行先サーバ（ｊ＝０）が再度選択される（ステップＳ１０３）。１回目と同様に処理が進み、移行元サーバ（ｉ＝２）が移行先サーバ（ｊ＝０）に割り当てられる（ステップＳ１１０）。すなわち、割当関係Ａ（２）＝０が決定し、資源割当量Ｘ（０）は４２（＝２３＋１９）となる（図１０中の＃２参照）。そして、次の移行元サーバＳ（２）が選択される（ステップＳ１１１）。
【００５１】
（３回目のループ処理：ｋ＝２、ｉ＝Ｓ（２）＝０）
移行先サーバ（ｊ＝０）が再度選択される（ステップＳ１０３）。比較処理（ステップＳ１０８）において、対象使用量（Ｗ（０）＝１７）は、残量（Ｕ（０）−Ｘ（０）＝５０−４２）よりも大きい（ステップＳ１０８；Ｎｏ）。その場合、パラメータｊに１が加算される（ステップＳ１０９）。すなわち、次の移行先サーバ（ｊ＝１）が選択される。このように、パラメータｊは、ループ処理の度に初期化され、必要に応じて１ずつ増加していく。結果として、比較処理の対象となる移行先サーバｊは、Ｎ台の移行先サーバから毎回同じ順番で選択されることになる。
【００５２】
新たな移行先サーバ（ｊ＝１）が選択されたので、必要台数ｎに１が加算される（ステップＳ１０４；Ｎｏ、ステップＳ１０５）。結果として、必要台数ｎは２になる。このとき、使用予定の２台の移行先サーバは未だ不足していない（ステップＳ１０６；Ｎｏ）。従って、処理はステップＳ１０８に進む。
【００５３】
比較処理（ステップＳ１０８）において、対象使用量（Ｗ（０）＝１７）は、残量（Ｕ（１）−Ｘ（１）＝３５）以下である（ステップＳ１０８；Ｙｅｓ）。従って、移行元サーバ（ｉ＝０）が移行先サーバ（ｊ＝１）に割り当てられる（ステップＳ１１０）。すなわち、割当関係Ａ（０）＝１が決定し、資源割当量Ｘ（１）に対象使用量Ｗ（０）が加算される（図１０中の＃３参照）。そして、次の移行元サーバＳ（３）が選択される（ステップＳ１１１）。
【００５４】
（４回目のループ処理：ｋ＝３、ｉ＝Ｓ（３）＝４）
３回目と同様に、移行先サーバ（ｊ＝０）が選択された後、次の移行先サーバ（ｊ＝１）が選択される。必要台数ｎは既に２になっているので（ステップＳ１０４；Ｙｅｓ）、ステップＳ１０５は実行されず、処理はステップＳ１０８に進む。その結果、移行元サーバ（ｉ＝４）が移行先サーバ（ｊ＝１）に割り当てられる（ステップＳ１１０）。すなわち、割当関係Ａ（４）＝１が決定し、資源割当量Ｘ（１）は３１（＝１７＋１４）となる（図１０中の＃４参照）。そして、次の移行元サーバＳ（４）が選択される（ステップＳ１１１）。
【００５５】
（５回目のループ処理：ｋ＝４、ｉ＝Ｓ（４）＝３）
４回目と同様に、移行先サーバ（ｊ＝０）が選択された後、次の移行先サーバ（ｊ＝１）が選択される。比較処理（ステップＳ１０８）において、対象使用量（Ｗ（３）＝１１）は、残量（Ｕ（１）−Ｘ（１）＝３５−３１）よりも大きい（ステップＳ１０８；Ｎｏ）。従って、パラメータｊに更に１が加算され、パラメータｊは２となる（ステップＳ１０９）。
【００５６】
このように、対象使用量Ｗ（３）は、使用予定の２台の移行先サーバのいずれの残量よりも大きくなっている。その場合、必要台数ｎに更に１が加算される（ステップＳ１０４；Ｎｏ、ステップＳ１０５）。必要台数ｎは３になるので、使用予定の２台の移行先サーバでは不十分である（ステップＳ１０６；Ｙｅｓ）。従って、所定の資源容量Ｕを有する移行先サーバ２００−Ｘが、移行先サーバ（ｊ＝２）として追加される（ステップＳ１０７）。移行先サーバ（ｊ＝２）の資源容量Ｕ（２）は、デフォルト値Ｕ（＝４０）に設定される。また、資源割当量Ｘ（２）は、初期値０に設定される。
【００５７】
その後、処理はステップＳ１１０に進み、移行元サーバ（ｉ＝３）は追加された移行先サーバ（ｊ＝２）に割り当てられる。すなわち、割当関係Ａ（３）＝２が決定し、資源割当量Ｘ（２）に対象使用量Ｗ（３）が加算される（図１０中の＃５参照）。
【００５８】
その後、ステップＳ１１１において、パラメータｋは５になる。これは、全ての移行元サーバに関する割当処理が終了したことを意味する（ステップＳ１０２；Ｎｏ）、従って、ループ処理は終了し、パッキング処理（ステップＳ１４）が完了する。結果として、図１０に示されるように、割当関係「Ａ（０）＝１、Ａ（１）＝０、Ａ（２）＝０、Ａ（３）＝２、Ａ（４）＝１」が決定する。移行先サーバの必要台数ｎは３である。移行先サーバで予定される資源使用量は、Ｘ（０）＝４２、Ｘ（１）＝３１、Ｘ（２）＝１１である。
【００５９】
以上に説明されたように、本実施の形態によれば、適切な範囲内のサーバ台数へのサーバ移行計画を機械的に作成することが可能となる。特に、移行先サーバｊの資源容量Ｕ（ｊ）が互いに異なる場合でも、好適なサーバ移行計画を機械的に作成することが可能となる。その結果、システム設計者にかかる負担が軽減され、また、サーバ移行に要する時間が削減される。
【００６０】
追加的な効果として次のものも得られる。移行先サーバの予定台数Ｎを予め正確に設定しておくことは、一般的に難しい。設定される予定台数Ｎが多すぎると、Ｎ台の移行先サーバの処理能力が無駄に余ってしまう可能性がある。それは、移行後のサーバ台数の徒な増加を意味する。逆に、設定される予定台数Ｎが少なすぎると、全ての移行元サーバを受け入れることが不可能になる。しかしながら、本実施の形態によれば、予定台数Ｎを、最初は少なめに設定することができる。それは、Ｎ台の移行先サーバのいずれの残量も不足した場合には、自動的に、新たな移行先サーバ２００−Ｘが移行計画に組み込まれるからである（ステップＳ１０６，Ｓ１０７）。状況に応じて新たな移行先サーバが自動的に追加されるため、上述の無駄が排除される。このことも、移行後のサーバ台数ｎの削減に寄与する。
【００６１】
２．第２の実施の形態
図１１は、移行計画作成処理の第２の実施の形態を示している。本実施の形態によれば、第１の実施の形態と比較して、新たに移行先ソートモジュール２３が提供される。また、パッキングモジュール１４の代わりにパッキングモジュール２４が提供される。図１２は、これらモジュールにより実現される処理フローを示している。第１の実施の形態と同じ構成及び処理には、同じ符号及びステップ番号が付され、重複する説明は適宜省略される。
【００６２】
ステップＳ２３：
移行先ソートモジュール２３は、資源容量入力モジュール１２から資源容量Ｕ（ｊ）及び資源割当量Ｘ（ｊ）を受け取る。そして、移行先ソートモジュール２３は、移行先サーバｊを、資源の残量（Ｕ（ｊ）−Ｘ（ｊ））の小さい順（昇順）にソートする。この段階では、資源割当量Ｘ（ｊ）は０に初期化されているため、資源の残量（空き容量）は資源容量Ｕ（ｊ）に相当する。更に、移行先ソートモジュール２３は、ソート結果を配列Ｔに格納する。配列Ｔの各要素はＴ（ｌ）で表されるとする（ｌ＝０〜Ｎ−１）。このとき、要素Ｔ（０）は、資源容量Ｕ（ｊ）が最小の移行先サーバのＩＤ番号ｊを示し、要素Ｔ（Ｎ−１）は、資源容量Ｕ（ｊ）が最大の移行先サーバのＩＤ番号ｊを示す。本例の場合、Ｔ＝［１，０］であり、Ｕ（Ｔ（０））＝３５，Ｕ（Ｔ（１））＝５０である。
【００６３】
ステップＳ２４：
パッキングモジュール２４は、資源使用量Ｗ（ｉ）、配列Ｓ、資源容量Ｕ（ｊ）、Ｕ、資源割当量Ｘ（ｊ）、及び配列Ｔを用いて、「パッキング処理」を行う。図１３は、本実施の形態におけるパッキング処理（ステップＳ２４）を示すフローチャートであり、既出の図９に対応している。図１３で示されるステップＳ２０１〜Ｓ２１１は、それぞれ、図９で示されたステップＳ１０１〜Ｓ１１１と同様である。
【００６４】
但し、パラメータｊの代わりに、配列Ｔの要素を表すパラメータｌが用いられている。つまり、毎ループ処理において、パラメータｊが０、１・・・と増加する代わりに、パラメータｌが０、１・・・と増加する。その結果、第１の実施の形態と異なり、比較処理の対象が、移行先サーバ（ｊ＝Ｔ（０）＝１）、移行先サーバ（ｊ＝Ｔ（１）＝０）の順番で変化することになる。これは、資源容量Ｕ（ｊ）の小さい順（昇順）で、Ｎ台の移行先サーバから、比較処理の対象となる移行先サーバｊが選択されることを意味する。その他の処理は、第１の実施の形態と同様である。
【００６５】
図１４は、既出の図１０に対応しており、本実施の形態における移行計画の作成例を示している。図１０と同様に、符号＃が付与されたボックスは、各ループ処理の結果を示している。図１４に示されるように、パッキング処理の結果、割当関係「Ａ（０）＝０、Ａ（１）＝１、Ａ（２）＝０、Ａ（３）＝１、Ａ（４）＝０」が決定する。移行先サーバの必要台数ｎは２である。移行先サーバで予定される資源使用量は、Ｘ（０）＝５０、Ｘ（１）＝３４である。
【００６６】
第１の実施の形態と比較して、必要台数ｎが３から２に減少しており、割当効率が向上している。これは、配列Ｔを用い、比較処理の対象を資源容量Ｕ（ｊ）の昇順で選択することにより得られる効果である。つまり、資源使用量Ｗ（ｉ）のより大きな移行元サーバｉを、資源容量Ｕ（ｊ）のより小さな移行先サーバｊに割り当てる方が、効率がよい。これは、負荷の高い処理を容量の小さい計算機に割り当てることに相当しており、特許文献２に記載された手法とは逆である。本実施の形態によれば、第１の実施の形態と同様の効果が得られ、更に、より効率的なサーバ移行を実現することが可能となる。その結果、運用管理コストが更に削減される。
【００６７】
３．第３の実施の形態
図１５は、移行計画作成処理の第３の実施の形態を示している。本実施の形態によれば、第１の実施の形態と比較して、新たに割当制約入力モジュール３１及び事前割当モジュール３２が提供される。また、パッキングモジュール１４の代わりにパッキングモジュール３４が提供される。図１６は、これらモジュールにより実現される処理フローを示している。第１の実施の形態と同じ構成及び処理には、同じ符号及びステップ番号が付され、重複する説明は適宜省略される。
【００６８】
ステップＳ３１：
割当制約入力モジュール３１は、記憶装置３から割当制約データＣＯＮを読み出す。割当制約データＣＯＮは、移行元サーバｉと移行先サーバｊとの間の割当関係（Ａ（ｉ）＝ｊ）に関する割当制約を示している。割当制約は、サーバ移行計画において既に決まっている決定事項である。例えば、割当制約は、ある移行元サーバｉの特定の移行先サーバｊへの割り当てを指定する。そのような割当制約は、以下「移行先固定制約ＣＯＮ１」と参照される。移行先固定制約の例として、移行元サーバ（ｉ＝４）の移行先サーバ（ｊ＝０）への割り当てが既に決まっているとする（Ａ（４）＝０）。
【００６９】
ステップＳ３２：
事前割当モジュール３２は、資源使用量Ｗ（ｉ）、移行先固定制約ＣＯＮ１、資源容量Ｕ（ｊ）、資源割当量Ｘ（ｊ）を受け取る。事前割当モジュール３２は、移行先固定制約ＣＯＮ１に従って、移行元サーバ（ｉ＝４）を移行先サーバ（ｊ＝０）に割り当てる（Ａ（４）＝０））。更に、事前割当モジュール３２は、移行先サーバ（ｊ＝０）の資源割当量Ｘ（０）を更新する。つまり、事前割当モジュール３２は、資源割当量Ｘ（０）に、移行元サーバ（ｉ＝４）の資源使用量（Ｗ（４）＝１４）を加算する。これは、移行先サーバ（ｊ＝０）の資源の残量（Ｕ（０）−Ｘ（０））から、資源使用量（Ｗ（４）＝１４）が減算されることを意味する。
【００７０】
ステップＳ３４：
事前割当処理（ステップＳ３２）の後、パッキングモジュール３４は、資源使用量Ｗ（ｉ）、配列Ｓ、資源容量Ｕ（ｊ）、Ｕ、資源割当量Ｘ（ｊ）、割当関係Ａ（ｉ）を用いて、「パッキング処理」を行う。パッキング処理の開始時、移行先サーバ（ｊ＝０）の資源割当量Ｘ（０）は既に“１４”であり、割当関係Ａ（４）＝０は既に決定していることに留意されたい。
【００７１】
図１７は、本実施の形態におけるパッキング処理（ステップＳ３４）を示すフローチャートであり、既出の図９に対応している。本実施の形態によれば、第１の実施の形態と比較して、ループ処理の前にステップＳ３０１が追加されている。ステップＳ３０１において、割当関係Ａ（Ｓ（ｋ））が決定か未定かの判定が行われる。未定の場合（ステップＳ３０１；Ｙｅｓ）、ループ処理が実行される。一方、決定の場合（ステップＳ３０１；Ｎｏ）、ステップＳ１１１が実行され、次の移行元サーバＳ（ｋ）が選択される。すなわち、ループ処理や比較処理はスキップされる。その他の処理は、第１の実施の形態と同様である。
【００７２】
図１８は、既出の図１０に対応しており、本実施の形態における移行計画の作成例を示している。図１０と同様に、符号＃が付与されたボックスは、各ループ処理の結果を示している。割当関係Ａ（４）＝０は固定されている。図１８に示されるように、パッキング処理の結果、割当関係「Ａ（０）＝２、Ａ（１）＝０、Ａ（２）＝１、Ａ（３）＝０、Ａ（４）＝０」が決定する。移行先サーバの必要台数ｎは３である。移行先サーバで予定される資源使用量は、Ｘ（０）＝４８、Ｘ（１）＝１９、Ｘ（２）＝１７である。
【００７３】
以上に説明されたように、本実施の形態に係る移行計画作成システム１は、与えられる割当制約を扱うことができる。その割当制約が満たされるように、移行元サーバｉが移行先サーバｊに割り当てられる。本実施の形態によれば、第１の実施の形態で得られる効果に加えて、与えられた割当制約に適合する好適な移行計画を作成することが可能となる。
【００７４】
４．第４の実施の形態
第４の実施の形態は、既出の第２の実施の形態と第３の実施の形態の組み合わせに相当する。図１９は、移行計画作成処理の第４の実施の形態を示している。本実施の形態によれば、第３の実施の形態と比較して、新たに移行先ソートモジュール４３が提供される。また、パッキングモジュール３４の代わりにパッキングモジュール４４が提供される。図２０は、これらモジュールにより実現される処理フローを示している。既出の実施の形態と同じ構成及び処理には、同じ符号及びステップ番号が付され、重複する説明は適宜省略される。
【００７５】
ステップＳ４３：
移行先ソートモジュール４３は、事前割当モジュール３２から資源容量Ｕ（ｊ）及び資源割当量Ｘ（ｊ）を受け取る。移行先固定制約ＣＯＮ１が“Ａ（４）＝０”を示している場合、事前割当処理（ステップＳ３２）により、資源割当量Ｘ（０）は既に“１４”となっている。移行先ソートモジュール４３は、移行先サーバｊを、資源の残量（Ｕ（ｊ）−Ｘ（ｊ））の小さい順（昇順）にソートする。更に、移行先ソートモジュール４３は、ソート結果を配列Ｔに格納する。本例の場合、移行先サーバ（ｊ＝０）の残量は“３６”であり、移行先サーバ（ｊ＝１）の残量は“３５”であるため、Ｔ＝［１，０］である。
【００７６】
ステップＳ４４：
パッキングモジュール４４は、資源使用量Ｗ（ｉ）、配列Ｓ、資源容量Ｕ（ｊ）、Ｕ、資源割当量Ｘ（ｊ）、配列Ｔ、及び割当関係Ａ（ｉ）を用いて、「パッキング処理」を行う。
【００７７】
図２１は、本実施の形態におけるパッキング処理（ステップＳ４４）を示すフローチャートであり、既出の図１３に対応している。本実施の形態によれば、第２の実施の形態と比較して、ループ処理の前にステップＳ４０１が追加されている。ステップＳ４０１において、割当関係Ａ（Ｓ（ｋ））が決定か未定かの判定が行われる。未定の場合（ステップＳ４０１；Ｙｅｓ）、ループ処理が実行される。一方、決定の場合（ステップＳ４０１；Ｎｏ）、ステップＳ２１１が実行され、次の移行元サーバＳ（ｋ）が選択される。すなわち、ループ処理や比較処理はスキップされる。その他の処理は、第２の実施の形態と同様である。
【００７８】
図２２は、既出の図１８に対応しており、本実施の形態における移行計画の作成例を示している。符号＃が付与されたボックスは、各ループ処理の結果を示している。図２２に示されるように、パッキング処理の結果、割当関係「Ａ（０）＝０、Ａ（１）＝１、Ａ（２）＝０、Ａ（３）＝１、Ａ（４）＝０」が決定する。移行先サーバの必要台数ｎは２である。移行先サーバで予定される資源使用量は、Ｘ（０）＝５０、Ｘ（１）＝３４である。
【００７９】
第３の実施の形態と比較して、必要台数ｎが３から２に減少しており、割当効率が向上している。これは、配列Ｔを用い、比較処理の対象を資源容量Ｕ（ｊ）の昇順で選択することにより得られる効果である。本実施の形態によれば、第３の実施の形態と同様の効果が得られ、更に、より効率的なサーバ移行を実現することが可能となる。その結果、運用管理コストが更に削減される。
【００８０】
５．第５の実施の形態
第５の実施の形態において、移行先固定制約ＣＯＮ１とは別の割当制約に対する処理が説明される。例えば、ある移行元サーバ（ｉ＝ｇ）と別の移行元サーバ（ｉ＝ｈ）とがある同じ移行先サーバに割り当てられるという制約（Ａ（ｇ）＝Ａ（ｈ））が考えられる。そのような割当制約は、以下「移行先等価制約ＣＯＮ２」と参照される。例えば、移行先等価制約ＣＯＮ２は、移行元サーバ（ｉ＝０）と移行元サーバ（ｉ＝１）の同じ移行先への割り当てを指定する（Ａ（０）＝Ａ（１））。
【００８１】
図２３は、移行計画作成処理の第５の実施の形態を示している。本実施の形態によれば、第４の実施の形態と比較して、新たに使用量加算モジュール５２及び割当調整モジュール５５が提供される。また、パッキングモジュール４４の代わりにパッキングモジュール５４が提供される。図２４は、これらモジュールにより実現される処理フローを示している。第４の実施の形態と同じ構成及び処理には、同じ符号及びステップ番号が付され、重複する説明は適宜省略される。
【００８２】
ステップＳ３１：
割当制約データＣＯＮは、上述の移行先固定制約ＣＯＮ１（Ａ（４）＝０）に加えて、移行先等価制約ＣＯＮ２（Ａ（０）＝Ａ（１））を示しているとする。
【００８３】
ステップＳ５２：
使用量加算モジュール５２は、資源使用量入力モジュール１１から資源使用量Ｗ（ｉ）を受け取り、割当制約入力モジュール３１から移行先等価制約ＣＯＮ２を受け取る。そして、使用量加算モジュール５２は、移行先等価制約ＣＯＮ２に従って、資源使用量Ｗ（ｉ）に変更を加える。具体的には、使用量加算モジュール５２は、移行先等価制約ＣＯＮ２で指定されている移行元サーバ群の資源使用量を全て足し合わせ、一時的に１つにまとめる。本例の場合、使用量加算モジュール５２は、移行元サーバ（ｉ＝０）の資源使用量Ｗ（０）を“Ｗ（０）＋Ｗ（１）＝４０”に設定し、移行元サーバ（ｉ＝１）の資源使用量Ｗ（１）を“０”に設定する。
【００８４】
ステップＳ１３：
移行元ソートモジュール１３は、使用量加算モジュール５２から変更後の資源使用量Ｗ（ｉ）を受け取り、移行元サーバｉを資源使用量Ｗ（ｉ）の降順でソートする。本例の場合、資源使用量Ｗ（０）が最大になっており、資源使用量Ｗ（１）が最小になっているため、Ｓ＝［０，２，４，３，１］となる。
【００８５】
ステップＳ５４：
パッキングモジュール５４は、資源使用量Ｗ（ｉ）、配列Ｓ、資源容量Ｕ（ｊ）、Ｕ、資源割当量Ｘ（ｊ）、配列Ｔ、及び割当関係Ａ（ｉ）を用いて、「パッキング処理」を行う。処理フローは、第４の実施の形態と同じである（図２１，ステップＳ４４参照）。
【００８６】
図２５は、既出の図２２に対応しており、本実施の形態における移行計画の作成例を示している。符号＃が付与されたボックスは、各ループ処理の結果を示している。図２５に示されるように、パッキング処理の結果、割当関係「Ａ（０）＝２、Ａ（１）＝１、Ａ（２）＝１、Ａ（３）＝１、Ａ（４）＝０」が一旦決定する。移行先サーバの必要台数ｎは３である。移行先サーバで予定される資源使用量は、Ｘ（０）＝１４、Ｘ（１）＝３０、Ｘ（２）＝４０である。
【００８７】
ステップＳ５５：
パッキング処理の最中には移行先等価制約ＣＯＮ２は考慮されないため、パッキング処理の結果得られる割当関係Ａ（ｉ）が移行先等価制約ＣＯＮ２を満たすとは限らない。実際に、図２５に示される例では、Ａ（０）とＡ（１）が一致していない。そのような場合、割当調整モジュール５５が割当関係Ａ（ｉ）を調整する。
【００８８】
図２３に示されるように、割当調整モジュール５５は、割当関係Ａ（ｉ）と移行先等価制約ＣＯＮ２を受け取る。そして、割当調整モジュール５５は、移行先等価制約ＣＯＮ２で指定されている移行元サーバ群の移行先を揃える。本例の場合、割当調整モジュール５５は、移行先等価制約ＣＯＮ２（Ａ（０）＝Ａ（１））に従って、“Ａ（１）＝１”を“Ａ（１）＝２＝Ａ（０）”に修正する（図２５参照）。その結果、移行先等価制約ＣＯＮ２が満たされる。移行元サーバ（ｉ＝１）の資源使用量Ｗ（１）は移行元サーバ（ｉ＝０）に最初に統合されているため、この修正に伴って資源割当量Ｘ（ｊ）を更新する必要はない。
【００８９】
以上に説明されたように、本実施の形態によれば、割当制約が満たされるように、移行元サーバｉが移行先サーバｊに割り当てられる。すなわち、与えられた割当制約に適合する好適な移行計画を作成することが可能となる。
【００９０】
尚、本実施の形態において、移行先ソートモジュール４３は使用されなくてもよい。その場合、ステップＳ４３は省略され、また、パッキング処理（ステップＳ５４）は第３の実施の形態と同じになる（図１７，ステップＳ３４参照）。また、移行先固定制約ＣＯＮ１は指定されなくてもよい。その場合、事前割当モジュール３２は使用されず、ステップＳ３２は省略される。パッキング処理（ステップＳ５４）は、第１の実施の形態（図９，ステップＳ１４参照）あるいは第２の実施の形態（図１３，ステップＳ２４参照）と同じになる。
【００９１】
６．第６の実施の形態
第６の実施の形態において、更に別の割当制約に対する処理が説明される。本実施の形態で扱われる割当制約は、否定形式の割当制約である。例えば、割当制約は、ある移行元サーバｉが特定の移行先サーバｊの割り当てられることを禁止する（Ａ（ｉ）≠ｊ）。そのような割当制約は、以下「移行先否定制約ＣＯＮ３」と参照される。あるいは、否定的な割当制約は、ある移行元サーバ（ｉ＝ｇ）と別の移行元サーバ（ｉ＝ｈ）とがある同じ移行先サーバに割り当てられることを禁止する（Ａ（ｇ）≠Ａ（ｈ））。そのような割当制約は、以下「移行先不等制約ＣＯＮ３」と参照される。このような否定形式の割当制約ＣＯＮ３は、パッキング処理の前に取り扱うことはできず、パッキング処理の最中に考慮する必要がある。
【００９２】
図２６は、移行計画作成処理の第６の実施の形態を示している。本実施の形態によれば、既出の実施の形態におけるパッキングモジュールの代わりに、パッキングモジュール６４が提供される。このパッキングモジュール６４は、移行先否定制約ＣＯＮ３及び／又は移行先不等制約ＣＯＮ３を参照しながら、パッキング処理を実行する。パッキング処理以外は、既出の実施の形態と同じであり、重複する説明は適宜省略される。例えば、図２４中のステップＳ５４が、本実施の形態に係るパッキングモジュール６４が実行するパッキング処理（ステップＳ６４）で置き換えられる。
【００９３】
図２７は、本実施の形態におけるパッキング処理（ステップＳ６４）を示すフローチャートである。本実施の形態によれば、ループ処理の最中にステップＳ６０１が追加されている。ステップＳ６０１において、選択中のパラメータｋ，ｌ（すなわちｉ，ｊ）から得られる割当関係Ａ（Ｓ（ｋ））＝Ｔ（ｌ）が、割当制約ＣＯＮ３に整合しているか否かの判定が行われる。整合の場合（ステップＳ６０１；Ｙｅｓ）、既出の実施の形態と同じ処理が実行される。一方、不整合の場合（ステップＳ６０１；Ｎｏ）、比較処理（ステップＳ２０８）はスキップされ、次の移行先サーバｊが選択される（ステップＳ２０９）。すなわち、選択中の移行元サーバｉや選択中の移行先サーバｊが割当制約ＣＯＮ３に違反する場合、別の移行先サーバｊが新たに選択される。その他の処理は、既出の実施の形態と同様である。
【００９４】
図２８は、本実施の形態における移行計画の作成例を示している。割当制約として、移行先固定制約Ａ（４）＝０に加えて、移行先否定制約Ａ（１）≠１及び移行先不等制約Ａ（２）≠Ａ（３）が与えられたとする。符号＃が付与されたボックスは、各ループ処理の結果を示している。図２８に示されるように、パッキング処理の結果、割当関係「Ａ（０）＝２、Ａ（１）＝０、Ａ（２）＝１、Ａ（３）＝０、Ａ（４）＝０」が決定する。移行先サーバの必要台数ｎは３である。移行先サーバで予定される資源使用量は、Ｘ（０）＝４８、Ｘ（１）＝１９、Ｘ（２）＝１７である。
【００９５】
以上に説明されたように、本実施の形態によれば、否定形式の割当制約が満たされるように、移行元サーバｉが移行先サーバｊに割り当てられる。すなわち、与えられた割当制約に適合する好適な移行計画を作成することが可能となる。
【図面の簡単な説明】
【００９６】
【図１】図１は、サーバ移行の一例を示す概念図である。
【図２】図２は、サーバ移行の他の例を示す概念図である。
【図３】図３は、本発明の実施の形態に係るサーバの移行を示す概念図である。
【図４】図４は、本発明の実施の形態に係る移行計画作成システムの構成例を示すブロック図である。
【図５】図５は、移行元運用データの一例を示すテーブルである。
【図６】図６は、移行先容量データの一例を示すテーブルである。
【図７】図７は、第１の実施の形態に係る移行計画作成システムの構成及び処理を示すブロック図である。
【図８】図８は、第１の実施の形態に係る移行計画作成方法を示すフローチャートである。
【図９】図９は、第１の実施の形態におけるパッキング処理を示すフローチャートである。
【図１０】図１０は、第１の実施の形態における移行計画の作成例を示す概念図である。
【図１１】図１１は、第２の実施の形態に係る移行計画作成システムの構成及び処理を示すブロック図である。
【図１２】図１２は、第２の実施の形態に係る移行計画作成方法を示すフローチャートである。
【図１３】図１３は、第２の実施の形態におけるパッキング処理を示すフローチャートである。
【図１４】図１４は、第２の実施の形態における移行計画の作成例を示す概念図である。
【図１５】図１５は、第３の実施の形態に係る移行計画作成システムの構成及び処理を示すブロック図である。
【図１６】図１６は、第３の実施の形態に係る移行計画作成方法を示すフローチャートである。
【図１７】図１７は、第３の実施の形態におけるパッキング処理を示すフローチャートである。
【図１８】図１８は、第３の実施の形態における移行計画の作成例を示す概念図である。
【図１９】図１９は、第４の実施の形態に係る移行計画作成システムの構成及び処理を示すブロック図である。
【図２０】図２０は、第４の実施の形態に係る移行計画作成方法を示すフローチャートである。
【図２１】図２１は、第４の実施の形態におけるパッキング処理を示すフローチャートである。
【図２２】図２２は、第４の実施の形態における移行計画の作成例を示す概念図である。
【図２３】図２３は、第５の実施の形態に係る移行計画作成システムの構成及び処理を示すブロック図である。
【図２４】図２４は、第５の実施の形態に係る移行計画作成方法を示すフローチャートである。
【図２５】図２５は、第５の実施の形態における移行計画の作成例を示す概念図である。
【図２６】図２６は、第６の実施の形態に係る移行計画作成システムの構成及び処理を示すブロック図である。
【図２７】図２７は、第６の実施の形態におけるパッキング処理を示すフローチャートである。
【図２８】図２８は、第６の実施の形態における移行計画の作成例を示す概念図である。
【符号の説明】
【００９７】
１    移行計画作成システム
２    プロセッサ
３    記憶装置
４    入力装置
５    出力装置
６    表示装置
７    プリンタ
８    ネットワークインタフェース
９    メディアドライブ
１０    移行計画作成プログラム
１１    資源使用量入力モジュール
１２    資源容量入力モジュール
１３    移行元ソートモジュール
１４，２４，３４，４４，５４，６４    パッキングモジュール
２３，４３    移行先ソートモジュール
３１    割当制約入力モジュール
３２    事前割当モジュール
５２    使用量加算モジュール
５５    割当調整モジュール
１００    移行元サーバ
２００    移行先サーバ
ＤＳ    移行元運用データ
ＤＤ    移行先容量データ
ＣＯＮ    割当制約データ
ＣＯＮ１  移行先固定制約
ＣＯＮ２  移行先等価制約
ＣＯＮ３  否定的制約
ＰＬＡＮ  移行計画データ
【図１】
2008210001.tif 000003
【図２】
2008210001.tif 000004
【図３】
2008210001.tif 000005
【図４】
2008210001.tif 000006
【図５】
2008210001.tif 000007
【図６】
2008210001.tif 000008
【図７】
2008210001.tif 000009
【図８】
2008210001.tif 000010
【図９】
2008210001.tif 000011
【図１０】
2008210001.tif 000012
【図１１】
2008210001.tif 000013
【図１２】
2008210001.tif 000014
【図１３】
2008210001.tif 000015
【図１４】
2008210001.tif 000016
【図１５】
2008210001.tif 000017
【図１６】
2008210001.tif 000018
【図１７】
2008210001.tif 000019
【図１８】
2008210001.tif 000020
【図１９】
2008210001.tif 000021
【図２０】
2008210001.tif 000022
【図２１】
2008210001.tif 000023
【図２２】
2008210001.tif 000024
【図２３】
2008210001.tif 000025
【図２４】
2008210001.tif 000026
【図２５】
2008210001.tif 000027
【図２６】
2008210001.tif 000028
【図２７】
2008210001.tif 000029
【図２８】
2008210001.tif 000030