(57)【特許請求の範囲】
【請求項１】
サーバが備える複数種類の資源の各々対応に定義され、対応する前記資源の使用量若しくはその変動量（使用量等）に基づいて１つのアプリケーションおよび１つのサーバを選択する為のアルゴリズム、または、１つの前記資源の複数種類の使用量等の各々対応に定義され、対応する種類の使用量等に基づいて１つのアプリケーションおよび１つのサーバを選択する為のアルゴリズム、を複数格納する論理表と、
第１及び第２のアプリケーションを配置された第１のサーバから、当該サーバに配置されたアプリケーション毎の前記資源の使用量等を含むＡＰ情報および当該サーバの前記資源の使用量等を含む第１のサーバ情報を取得する取得部と、
前記ＡＰ情報、前記第１のサーバ情報及び第１の前記アルゴリズムの実行結果によって、前記第１または前記第２のアプリケーション、および、第２のサーバを選択する第１の選択結果と、前記ＡＰ情報、前記第１のサーバ情報及び第２の前記アルゴリズムの実行結果によって、前記第１または前記第２のアプリケーション、および、前記第２のサーバを選択する第２の選択結果と、前記ＡＰ情報、前記第１のサーバ情報及び第３の前記アルゴリズムの実行結果によって、前記第１または前記第２のアプリケーション、および、前記第２のサーバを選択する第３の選択結果を得て、前記第１、前記第２及び前記第３の選択結果の多数決に基づいて決定された前記選択結果に従って、前記第１または前記第２のアプリケーションを前記第２のサーバに再配置する選択部、を備える管理マシン。
【請求項２】
前記アプリケーションが有する複数の資源の各々に対応して、前記アルゴリズムとその属性を格納する前記論理表を備え、
前記第１のサーバ情報から決定される前記資源、および前記属性に基づいて、前記論理表から、前記ＡＰ情報を使用する前記第１及び前記第２のアルゴリズムを選択して実行する前記選択部を備える請求項１の管理マシン。
【請求項３】
前記資源の１つに対応する、前記第１及び前記第２のアルゴリズムを選択して実行する前記選択部を備える、請求項２の管理マシン。
【請求項４】
前記資源の１つ（第１の前記資源）に対応する前記第１のアルゴリズム及び、前記第１の前記資源以外の前記資源の１つに対応する前記第２のアルゴリズムを選択して実行する前記選択部を備える、請求項２または３の管理マシン。
【請求項５】
前記第２のサーバ及び第３のサーバから第２及び第３のサーバ情報を取得する前記取得部と、
前記第２及び前記第３のサーバ情報を使用する、前記第１及び前記第２のアルゴリズムを実行して、前記第１または前記第２のアプリケーション、及び、前記第２のサーバを選択する前記選択部、を備える請求項１乃至４の何れかの管理マシン。
【請求項６】
請求項１乃至５の何れかの管理マシンおよび前記第１および第２の前記サーバから構成される管理システム。
【請求項７】
コンピュータに、サーバが備える複数種類の資源の各々対応に定義され、対応する前記資源の使用量若しくはその変動量（使用量等）に基づいて１つのアプリケーションおよび１つのサーバを選択する為のアルゴリズム、または、１つの前記資源の複数種類の使用量等の各々対応に定義され、対応する種類の使用量等に基づいて１つのアプリケーションおよび１つのサーバを選択する為のアルゴリズム、を論理表に複数格納する格納処理と、
第１及び第２のアプリケーションを配置された第１のサーバから、当該サーバに配置されたアプリケーション毎の前記資源の使用量等を含むＡＰ情報および当該サーバの前記資源の使用量等を含む第１のサーバ情報を取得する取得処理と、
前記ＡＰ情報、前記第１のサーバ情報及び第１の前記アルゴリズムの実行結果によって、前記第１または前記第２のアプリケーション、および、第２のサーバを選択する第１の選択結果と、前記ＡＰ情報、前記第１のサーバ情報及び第２の前記アルゴリズムの実行結果によって、前記第１または前記第２のアプリケーション、および、前記第２のサーバを選択する第２の選択結果と、前記ＡＰ情報、前記第１のサーバ情報及び第３の前記アルゴリズムの実行結果によって、前記第１または前記第２のアプリケーション、および、前記第２のサーバを選択する第３の選択結果を得て、前記第１、前記第２及び前記第３の選択結果の多数決に基づいて決定された前記選択結果に従って、前記第１または前記第２のアプリケーションを前記第２のサーバに再配置する選択処理、を実行させる管理プログラム。
【請求項８】
前記アプリケーションが有する複数の資源の各々に対応して、前記アルゴリズムとその属性を格納する前記論理表を備える前記コンピュータに、
前記第１のサーバ情報から決定される前記資源、および前記属性に基づいて、前記論理表から、前記ＡＰ情報を使用する前記第１及び前記第２のアルゴリズムを選択して実行する前記選択処理を実行させる請求項７の管理プログラム。
【請求項９】
前記コンピュータに、前記資源の１つに対応する、前記第１及び前記第２のアルゴリズムを選択して実行する前記選択処理を実行させる、請求項８の管理プログラム。
【請求項１０】
前記コンピュータに、前記資源の１つ（第１の前記資源）に対応する前記第１のアルゴリズム及び前記第１の前記資源以外の前記資源の１つに対応する前記第２のアルゴリズムを選択して実行する前記選択処理を実行させる、請求項８または９の管理プログラム。
【請求項１１】
前記コンピュータに、前記第２のサーバ及び第３のサーバから第２及び第３のサーバ情報を取得する前記取得処理と、
前記第２及び前記第３のサーバ情報を使用する、前記第１及び前記第２のアルゴリズムを実行して、前記第１または前記第２のアプリケーション、及び、前記第２のサーバを選択する前記選択処理、を実行させる請求項７乃至１０の何れかの管理プログラム。
【請求項１２】
コンピュータが、
サーバが備える複数種類の資源の各々対応に定義され、対応する前記資源の使用量若しくはその変動量（使用量等）に基づいて１つのアプリケーションおよび１つのサーバを選択する為のアルゴリズム、または、１つの前記資源の複数種類の使用量等の各々対応に定義され、対応する種類の使用量等に基づいて１つのアプリケーションおよび１つのサーバを選択する為のアルゴリズム、を論理表に複数格納する格納工程と、
第１及び第２のアプリケーションを配置された第１のサーバから、当該サーバに配置されたアプリケーション毎の前記資源の使用量等を含むＡＰ情報および当該サーバの前記資源の使用量等を含む第１のサーバ情報を取得する取得行程と、
前記ＡＰ情報、前記第１のサーバ情報及び第１の前記アルゴリズムの実行結果によって、前記第１または前記第２のアプリケーション、および、第２のサーバを選択する第１の選択結果と、前記ＡＰ情報、前記第１のサーバ情報及び第２の前記アルゴリズムの実行結果によって、前記第１または前記第２のアプリケーション、および、前記第２のサーバを選択する第２の選択結果と、前記ＡＰ情報、前記第１のサーバ情報及び第３の前記アルゴリズムの実行結果によって、前記第１または前記第２のアプリケーション、および、前記第２のサーバを選択する第３の選択結果を得て、前記第１、前記第２及び前記第３の選択結果の多数決に基づいて決定された前記選択結果に従って、前記第１または前記第２のアプリケーションを前記第２のサーバに再配置する選択行程、を備える管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーションの管理マシン、管理システム、管理プログラム、および、管理方法に関する。
【背景技術】
【０００２】
特許文献１には、各サーバの記憶容量に関するデータと各仮想マシンの記憶容量に関するデータとを読み出して、当該データに基づいて仮想マシンをサーバに最適配置する仮想マシン管理サーバが記載されている。
【０００３】
特許文献２には、ボリュームリストが適切であるかどうかを判定する際に、単純な多数決または加重当方方式などの、いくつかの異なるアルゴリズムを使用するボリュームマネージャが記載されている。
【０００４】
特許文献３には、複数台の資源提供者端末に、同じ処理を割り振り、処理された結果を多数決で評価して、正しい演算結果を判断する上位管理サーバが記載されている。
【０００５】
【特許文献１】特開２００５−１１５６５３号公報
【特許文献２】特表２００３−５１５８１３号公報
【特許文献３】特開２００３−１６０４３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上述の技術はいずれも、複数の配置アルゴリズムの各々の結果を考慮して、アプリケーションをサーバに配置するものではなかった。このため、種々の性能要因を考慮したアプリケーションの再配置を行うことが困難であった。本発明の目的は、上述した課題を解決する管理マシン、管理システム、管理プログラム、および、管理方法を提供することである。
【課題を解決するための手段】
【０００７】
本発明の管理マシンは、第１及び第２のアプリケーションを配置された第１のサーバから、ＡＰ情報および第１のサーバ情報を取得する取得部と、前記ＡＰ情報、前記第１のサーバ情報及び第１のアルゴリズムの実行結果によって、前記第１または前記第２のアプリケーション、および、第２のサーバを選択する第１の選択結果と、前記ＡＰ情報、前記第１のサーバ情報及び第２のアルゴリズムの実行結果によって、第２の選択結果を得て、前記選択結果の何れかに従って、前記第１または前記第２のアプリケーションを前記第２のサーバに再配置する選択部、を備える。
【０００８】
本発明の管理プログラムは、コンピュータに、第１及び第２のアプリケーションを配置された第１のサーバから、ＡＰ情報および第１のサーバ情報を取得する取得処理と、前記ＡＰ情報、前記第１のサーバ情報及び第１のアルゴリズムの実行結果によって、前記第１または前記第２のアプリケーション、および、第２のサーバを選択する第１の選択結果と、前記ＡＰ情報、前記第１のサーバ情報及び第２のアルゴリズムの実行結果によって、第２の選択結果を得て、前記選択結果の何れかに従って、前記第１または前記第２のアプリケーションを前記第２のサーバに再配置する選択処理、を実行させる。
【０００９】
本発明の管理方法は、コンピュータが、第１及び第２のアプリケーションを配置された第１のサーバから、ＡＰ情報および第１のサーバ情報を取得する取得行程と、前記ＡＰ情報、前記第１のサーバ情報及び第１のアルゴリズムの実行結果によって、前記第１または前記第２のアプリケーション、および、第２のサーバを選択する第１の選択結果と、前記ＡＰ情報、前記第１のサーバ情報及び第２のアルゴリズムの実行結果によって、第２の選択結果を得て、前記選択結果の何れかに従って、前記第１または前記第２のアプリケーションを前記第２のサーバに再配置する選択行程、を備える。
【発明の効果】
【００１０】
本発明によれば、種々の環境要因に適応したアプリケーションの再配置を行うことが可能となる。
【発明を実施するための最良の形態】
【００１１】
図１は、本発明の第１実施形態にかかる管理システム１０の構成例を示す。管理システム１０は、管理マシン２０と、管理マシン２０に接続された複数台のサーバ３０（例えば、第１のサーバ３１、第２のサーバ３２、第３のサーバ３３、．．．）と端末１１とを備える。
【００１２】
管理マシン２０は、選択部２１、取得部２２、時計２３、論理表６０、閾値表７０、再配置表８０、ディスク構成表９０を備える。選択部２１、取得部２２または時計２３は、コンピュータである管理マシン２０のプロセッサーが、図示しない主記憶装置に格納されている管理プログラム２９を読み込んで実行することで機能する。ハードウェアが、同等な機能を実現していてもよい。論理表６０、閾値表７０、再配置表８０及びディスク構成表９０は、図示しない主記憶装置または外部記憶装置に格納されたデータである。それらは、データベースとして構成されていても良い。
【００１３】
サーバ３０は、モニタ３６、ディスク３５を備える。サーバ３０は、モニタ３６の制御下で、プログラムであるアプリケーション４０を実行する。この場合、アプリケーション４０はサーバ３０に配置されている状態である。通常複数のアプリケーション４０がサーバ３０に配置されている。例えば、第１のアプリケーション４１、第２のアプリケーション４２が、第１のサーバ３１に配置されている。
【００１４】
管理マシン２０は、管理システム１０の資源状況、性能状況等の種々の要因に基づいて、アプリケーション４０をどのサーバ３０に配置するかを判断し、必要に応じて配置変更（再配置）を行う。
【００１５】
アプリケーション４０は、例えば、ＶＭ５０（Virtual Machine：仮想マシン）である。従って、第１のアプリケーション４１は第１のＶＭ５１、第２のアプリケーション４２は第２のＶＭ５２である。
【００１６】
各ＶＭ５０の仮想ディスク５５はサーバ３０のディスク３５に割り当てられている。即ち、各ＶＭ５０の仮想ディスク５５への入出力は、サーバ３０のディスク３５への入出力に変換されて実行される。図２は、この割り当ての一例を示している。この例では、第１のサーバ３１は装置アドレスａ番、ｂ番の２台のディスク３５を備える。第１のＶＭ５１、第２のＶＭ５２の各々は、仮想装置アドレス１番、２番の２台の仮想ディスク５５を備える。この例では、第１のＶＭ５１の仮想ディスク５５の１番はディスク３５のａ番に、仮想ディスク５５の２番はディスク３５のｂ番に割り当てられている。第２のＶＭ５２の仮想ディスク５５の１番はディスク３５のａ番に、仮想ディスク５５の２番はディスク３５のｂ番に割り当てられている。
【００１７】
ディスク３５や仮想ディスク５５の資源状況、負荷状況を個別に管理するときには、上述の対応関係を把握することが必要である。この為、ディスク構成表９０が、ディスク３５と仮想ディスク５５との対応関係を記憶する。図６は上述の割り当て例に基づくディスク構成表９０の例である。
【００１８】
なお、ディスク３５と仮想ディスク５５の対応関係は上記の例に限られない。対応関係がディスク構成表９０に格納されていれば良い。例えば、各ＶＭ５０の仮想ディスク５５構成が同一でないときは、ディスク構成表９０は、仮想ディスク名９２に代えて、ＶＭ５０の識別子と仮想ディスク名９２の対を記憶すればよい。
【００１９】
図３は論理表６０の構成例を示す。論理表６０は、アルゴリズムＩＤ６１、仮想資源名６２、属性６３、アルゴリズム６６を格納する。属性６３はフラグ６４と適用時刻６５を包含する。
【００２０】
アルゴリズムＩＤ６１は、アルゴリズム６６の管理システム１０内で一意な識別子である。仮想資源名６２は、ＶＭ５０が有する各種資源の管理システム１０内で一意な名称である。仮想資源名６２は、ＣＰＵ（Central Processing Unit）、メモリ、ディスク（全体）、通信装置などである。個別の仮想ディスク５５（１番または２番など）の仮想資源名６２は、仮想ディスク（１番）等といった仮想ディスク名９２である。
【００２１】
フラグ６４は、アルゴリズム６６が有効であるか無効であるかを示す。適用時刻６５は、アルゴリズム６６を使用する時間帯を示す。これらの属性６３の値は、例えば管理システム１０の管理者が端末１１等を使って論理表６０に設定する。管理者は、属性６３の値を設定することで、管理システム１０が使用するアルゴリズム６６を適切に選択することが出来る。
【００２２】
選択部２１は、アルゴリズム６６を実行して、あるサーバ３０に配置されているＶＭ５０と、当該ＶＭ５０を再配置する別のサーバ３０を選択して、その選択結果を再配置表８０（移動対象８２、移動先８５）に出力する。例えば、選択部２１は、第１のサーバ３１に配置されている第１のＶＭ５１及び第２のＶＭ５２から第２のＶＭ５２を、第２のサーバ３２に再配置する候補として選択し、その選択結果を再配置表８０に出力する。
【００２３】
アルゴリズム６６は、仮想資源名６２対応に分類されている。アルゴリズム６６は、仮想資源名６２対応に複数あっても良い。例えば、仮想資源名６２「メモリ」に対して、第１のアルゴリズム６７、第２のアルゴリズム６８、第３のアルゴリズム６９が存在しても良い。
【００２４】
一つのアルゴリズム６６は、対応する仮想資源名６２の資源の情報に基づいて、再配置の候補となるＶＭ５０、および、再配置先のサーバ３０の選択を行って、その選択結果を出力するように記述されている。選択部２１は、複数のアルゴリズム６６を実行して、各々のアルゴリズム６６に従って得られた選択結果を、再配置表８０に蓄積し、蓄積された何れかの選択結果に基づいてＶＭ５０の再配置を行う。
【００２５】
なお、アルゴリズム６６の記述方法は何でも良い。アルゴリズム６６は、ある種のスクリプト言語で記述されたプログラムとして論理表６０に格納されていても良いし、サブルーチンとして図示しない主記憶装置や外部記憶装置に記憶され、そのエントリアドレスが論理表６０に格納されていても良い。
【００２６】
アルゴリズム６６の例には、以下のものがある。
【００２７】
１）使用メモリ量が最大のＶＭ５０を、空きメモリ量が最大のサーバ３０に再配置せよ。
【００２８】
２）使用メモリ量が最大のＶＭ５０を、空きメモリ量変動率が最低のサーバ３０に再配置せよ。
【００２９】
３）使用メモリ量変動率が最大のＶＭ５０を、空きメモリ量が最大のサーバ３０に再配置せよ。
【００３０】
４）使用メモリ変動率が最大のＶＭ５０を、空きメモリ量変動率が最低のサーバ３０に再配置せよ。
【００３１】
５）仮想ディスク５５へのＩＯ発行数が最大のＶＭ５０を、ディスク３５へのＩＯ発行数が最低のサーバ３０に再配置せよ。
【００３２】
６）仮想ディスク５５へのＩＯ発行数が最大のＶＭ５０を、ディスク３５へのＩＯ発行数変動率が最低のサーバ３０に再配置せよ。
【００３３】
７）仮想ディスク５５へのＩＯ発行数変動率が最大のＶＭ５０を、ディスク３５へのＩＯ発行数が最低のサーバ３０に再配置せよ。
【００３４】
８）仮想ディスク５５へのＩＯ発行数変動率が最大のＶＭ５０を、ディスク３５へのＩＯ発行数変動率が最低のサーバ３０に再配置せよ。
【００３５】
９）ＣＰＵ使用率が最大のＶＭ５０を、ＣＰＵ使用率が最低のサーバ３０に再配置せよ。
【００３６】
１０）ＣＰＵ使用率が最大のＶＭ５０を、ＣＰＵ使用率変動率が最低のサーバ３０に再配置せよ。
【００３７】
なお、仮想ディスク５５に関するアルゴリズム６６は、仮想ディスク５５全体に対するものと、個別の仮想ディスク５５（１番または２番など）に対するものとが存在する。また、ある値の変動率とは、その値の単位時間あたりの変化量を指す。
【００３８】
アルゴリズム６６は、同じ仮想資源名６２についての複数条件の組み合わせをＶＭ５０の選択条件として包含していても良い。例えば、アルゴリズム６６は、「使用メモリ量が５ＧＢ以上のＶＭ５０の中で、使用メモリ量変動率が最大」というＶＭ５０の選択条件を包含していても良い。
【００３９】
図４は閾値表７０の構成例を示す。例えば管理者が、管理システム１０の運転に先立ち閾値表７０の内容を設定する。閾値表７０は、実資源名７１対応に閾値７２を包含する。
【００４０】
実資源名７１はサーバ３０が有する各種資源の管理システム１０内で一意の名称である。実資源名７１は、ＣＰＵ、メモリ、ディスク（全体）、通信装置などである。個別のディスク３５（ａ番またはｂ番など）の実資源名７１は、ディスク（ａ番）等といったディスク名９１である。
【００４１】
閾値７２には、実資源名７１対応に再配置を行うかどうかを判断する為の基準値が格納されている。再配置は、サーバ３０の負荷が高いときに行われる。閾値７２は、サーバ３０の負荷が高いことを判断する為の基準値である。
【００４２】
メモリに対する閾値７２は、メモリ使用率（％）、空きメモリ量変動率（ＭＢ／秒）等である。ディスク３５に対する閾値７２は、ＩＯ発行数（回／秒）、ＩＯ転送量（ＭＢ／秒）、ＩＯ転送時間（ＩＯビジー時間；ｍ秒／秒）等である。ＣＰＵに対する閾値７２はＣＰＵ使用率（％）等がある。
【００４３】
図５は再配置表８０の構成例を示す。再配置表８０は、選択部２１がアルゴリズム６６を実行して、再配置の候補となるＶＭ５０と再配置先サーバ３０を選択した選択結果を格納する記憶域である。再配置表８０は、選択番号８１、アルゴリズムＩＤ６１、選択結果（移動対象８２、異動先８５）を含む。移動対象８２は、再配置の候補となるＶＭ５０が配置されているサーバ３０の識別子（サーバＩＤ８３）、当該ＶＭ５０の識別子（ＶＭＩＤ８４）を包含する。移動先８５は、再配置の候補となるＶＭ５０の配置変更先のサーバ３０のサーバＩＤ８３を包含する。
【００４４】
選択部２１は、アルゴリズム６６を選択して実行するために、サーバ３０から、当該サーバ３０の資源に関する情報（サーバ情報Ａ０）や当該サーバ３０に配置されているＶＭ５０の資源に関する情報（ＡＰ情報Ｂ０）を必要とする。サーバ３０内に配置されたＶＭ５０が実行される過程で、モニタ３６が、サーバ情報Ａ０およびＡＰ情報Ｂ０を収集する。この収集は、実行ログ取得などのよく知られた手法で行うことが出来る。
【００４５】
取得部２２が、これらのサーバ情報Ａ０、ＡＰ情報Ｂ０をモニタ３６から取得して、選択部２１に送信する。
【００４６】
図７はサーバ情報Ａ０の構成例を示す。サーバ情報Ａ０は当該情報を収集したサーバ３０のサーバＩＤ８３とサーバ３０の各資源対応の情報を包含する。各資源対応の情報には以下のものが有る。メモリ対応の情報は、実装メモリ量（ＭＢ）、空きメモリ量（ＭＢ）、空きメモリ量変動率（ＭＢ／秒）等である。ディスク３５対応の情報は、ＩＯ発行数（回／秒）、ＩＯ転送量（ＭＢ／秒）、ＩＯ転送時間（ＩＯビジー時間；ｍ秒／秒）等である。ディスク３５対応の情報は、ディスク３５全体に対するものと、個別のディスク３５（ａ番またはｂ番など）に対するものとが存在する。ＣＰＵ対応の情報は、ＣＰＵ使用率等である。
【００４７】
図８はＡＰ情報Ｂ０の構成例を示す。ＡＰ情報Ｂ０は、当該情報を収集したサーバ３０に配置されているＶＭ５０対応のエントリを繰り返して包含する。各エントリは、対応ＶＭ５０のＶＭＩＤ８４、ＶＭ５０の優先度Ｂ１とＶＭ５０の各資源対応の情報を包含する。各資源対応の情報には以下のものが有る。メモリ対応の情報は、実装メモリ量（ＭＢ）、使用メモリ量（ＭＢ）、使用メモリ量変動率（ＭＢ／秒）等である。仮想ディスク５５対応の情報は、ＩＯ発行数（回／秒）、ＩＯ転送量（ＭＢ／秒）、ＩＯ転送時間（ＩＯビジー時間；ｍ秒／秒）等である。仮想ディスク５５対応の情報は、全体に対するものと、個別の仮想ディスク５５（１番または２番など）に対するものとが存在する。ＣＰＵ対応の情報は、ＣＰＵ使用率等である。
【００４８】
図９は選択部２１のフローチャートである。選択部２１は、取得部２２を経由して、管理マシン２０に接続されている全サーバ３０からサーバ情報Ａ０とＡＰ情報Ｂ０を受信する（Ｓ１）。
【００４９】
選択部２１は、第ｎ番目（最初は第１番目）のサーバ３０のサーバ情報Ａ０と閾値表７０との比較を行い、閾値７２を越えている資源の実資源名７１を取得する（Ｓ２）。例えば、同部は、サーバ情報Ａ０に格納されている空きメモリ量と実装メモリ量からメモリ使用率を算出して、この算出値が閾値７２のメモリ使用量を越えているかを判断する。越えていれば、同部は、実資源名７１として「メモリ」を取得する。更に同部は、サーバ情報Ａ０に格納されているディスク３５のａ番のＩＯ発行数がディスク３５のａ番の閾値７２のＩＯ発行数を越えているかを判断する。越えていれば、同部は、実資源名７１として「ディスク３５のａ番」を取得する。同部は、他の資源についても同様な処理を行う。
【００５０】
同部は、閾値７２を越えている実資源名７１取得した場合（Ｓ３でＹ）、その実資源名７１が個別のディスク３５のものであると（Ｓ４でＹ）、ディスク名９１を仮想ディスク名９２に変換する（ＳＣ）。即ち、同部は、実資源名７１を仮想資源名６２に変換するのである。個別のディスク３５の負荷を調整するためには、どの仮想ディスク５５の負荷を調整すればいいかを、選択部２１が把握するためである。同部は、この変換に於いて、第ｎ番目のサーバ３０のサーバＩＤ８３とディスク名９１をキーとしてディスク構成表９０を検索して仮想ディスク名９２を得る。
【００５１】
実資源名７１が個別のディスク３５のものでないとき（Ｓ４でＮ）、実資源名７１と仮想資源名６２は同じである為、この変換は不要である。同部は、実資源名７１をそのまま仮想資源名６２として使用する。
【００５２】
選択部２１は、取得した仮想資源名６２をキーに論理表６０を検索して、当該仮想資源名６２に対応するアルゴリズム６６をすべて取得する（Ｓ５）。
【００５３】
同部は、属性６３を確認して、当該アルゴリズム６６の実行が適切かを判断する（Ｓ６）。具体的には、同部は、フラグ６４が「有効」を示し、かつ、時計２３が示す現時刻が適用時刻６５の範囲内である場合に、実行が適切と判断する。そうでなければ、同部は、実行が適切でないと判断する。
【００５４】
実行が適切であると判断した（Ｓ６でＹ）場合、選択部２１は、シーケンス番号を生成して選択番号８１として再配置表８０に設定し、さらに、論理表６０から得た当該アルゴリズム６６のアルゴリズムＩＤ６１を再配置表８０に格納する（Ｓ７）。
【００５５】
同部は、当該アルゴリズム６６を実行して、その選択結果を再配置表８０に格納する（Ｓ８）。図１０は、アルゴリズム６６の実行フローチャート例である。なお、ステップＳ６で、実行が適切である（Ｓ６でＹ）と判断されたアルゴリズム６６が複数ある場合は、選択部２１は、アルゴリズム６６ごとにステップＳ７、Ｓ８を繰り返す。例えば、同部が、図３の論理表６０例において、仮想資源名６２「メモリ」のアルゴリズム６６をすべて（アルゴリズムＩＤ６１が１乃至４）を実行が適切と判断した場合が該当する。
【００５６】
実行が適切でないと判断した（Ｓ６でＮ）場合、選択部２１は、ステップＳ７、Ｓ８を実行しない。
【００５７】
閾値７２を越えている実資源名７１のすべてについてステップＳ４乃至Ｓ８の実行を終えるまで（Ｓ９でＮ）、選択部２１は、ステップＳ４からの処理を繰り返す。閾値７２を越えている実資源名７１がない場合（Ｓ３でＮ）、あるいは、閾値７２を越えている実資源名７１のすべてについてステップＳ４乃至Ｓ８の実行を終えた（Ｓ９でＹ）場合、選択部２１は、全サーバ３０について処理を終えたかを判断する（ＳＡ）。
【００５８】
終えていなければ（ＳＡでＮ）、同部は、次のサーバ３０のデータを取得（ｎをインクリメント）して（ＳＢ）、ステップＳ２から実行する。
【００５９】
終えていれば（ＳＡでＹ）、選択部２１は、再配置表８０に蓄積された、実行アルゴリズム６６の選択結果の一覧を、端末１１に出力する（ＳＤ）。同部は、当該表示を参照した管理者が入力した一つまたは複数の選択番号８１を端末１１から受信し（ＳＥ）、当該選択番号８１の選択結果に基づく、ＶＭ５０の再配置を行う（ＳＦ）。
【００６０】
再配置は、例えば以下のような手順で行われる。選択部２１が、再配置表８０の移動対象８２欄のサーバＩＤ８３のサーバ３０（例えば第１のサーバ３１）に、移動対象８２欄のＶＭＩＤ８４（例えば第１のＶＭ５１の識別子）と異動先８５欄のサーバＩＤ８３（例えば第２のサーバ３２の識別子）を送信する。これを受信した第１のサーバ３１は、第１のＶＭ５１の構成や実行状態の情報を第２のサーバ３２に送信すると共に、第１のサーバ３１内から消去する。第２のサーバ３２は、第１のＶＭ５１の構成や実行状態の情報を第１のサーバ３１から受信して、これを第２のサーバ３２内に記憶すると共に実行対象として管理する。以上で、選択部２１は、第１のＶＭ５１を第１のサーバ３１から第２のサーバ３２へ再配置したことになる。再配置の手順はこれに限られない。例えば、選択部２１が、第１のＶＭ５１の構成や実行状態の情報を第１のサーバ３１から受信して、これを第２のサーバ３２に送信するようにしても良い。
【００６１】
図１０は、アルゴリズム６６の実行フローチャート例である。ここでは、「使用メモリ量が最大のＶＭ５０を、空きメモリ量が最大のサーバ３０に再配置せよ」というアルゴリズム６６を例として取り上げる。他のアルゴリズム６６についても、実行フローチャートは同様である。
【００６２】
選択部２１は、第ｎ番目のサーバ３０のサーバ情報Ａ０のサーバＩＤ８３を取り出して、再配置表８０の移動対象８２欄のサーバＩＤ８３に格納する（Ｓ１１）。同部は、ＡＰ情報Ｂ０の各ＶＭ５０対応のエントリを走査して、使用メモリ量の値が最大のエントリを特定する。同部は、当該エントリのＶＭＩＤ８４を再配置表８０の移動対象８２欄のＶＭＩＤ８４に格納する（Ｓ１２）。
【００６３】
選択部２１は、全サーバ３０（第ｎ番目のサーバ３０を除く）のサーバ情報Ａ０を走査して、空きメモリ量が最大のサーバ情報Ａ０を特定する（Ｓ１３）。同部は、特定したサーバ情報Ａ０の空きメモリ量から、特定したＡＰ情報Ｂ０エントリのＶＭ５０の使用メモリ量を差し引いて、再配置後の空きメモリ量を見積もる。更に、同部は、特定したサーバ情報Ａ０の実装メモリ量を参照して再配置後のメモリ使用率を見積もる（Ｓ１４）。
【００６４】
再配置後のメモリ使用率が閾値表７０の閾値７２以下であれば（Ｓ１５でＹ）、選択部２１は、特定したサーバ情報Ａ０からサーバＩＤ８３を取り出して、再配置表８０の移動先８５欄のサーバＩＤ８３に格納する（Ｓ１６）。
【００６５】
再配置後のメモリ使用率が閾値表７０の閾値７２を超過すれば（Ｓ１５でＮ）、選択部２１は、再配置表８０の移動先８５欄のサーバＩＤ８３にＮｕｌｌ値を格納する（Ｓ１７）。これは、選択部２１が、当該アルゴリズム６６の実行によって、適切な選択結果を生成できなかったことを意味する。
【００６６】
なお、上記の説明で、アルゴリズム６６は、サーバ情報Ａ０やＡＰ情報Ｂ０として資源の使用状況を考慮していたが、アルゴリズム６６はこれに限られない。アルゴリズム６６は、実装メモリ量、ＣＰＵ性能値、接続ディスクの台数などのサーバ３０やＶＭ５０の構成情報を参照するようにしても良い。また、アルゴリズム６６は、優先度Ｂ１のような、資源の割り当て基準値を参照しても良い。
【００６７】
また、選択部２１は、図９のフローにおいて実行するアルゴリズム６６の最大数を制限しても良い。
【００６８】
さらに、アプリケーション４０はＶＭ５０に限られない。アプリケーション４０は、一般のバッチジョブやオンラインジョブでも構わない。この場合、アプリケーション４０は、仮想ディスク５５に代えて、ファイルをディスク３５上に備えても良い。
【００６９】
本実施形態の管理システム１０は、種々の性能要因を考慮して、アプリケーション４０の再配置を適切に行うことができる。管理システム１０が、複数のアルゴリズム６６の各々の再配置案（再配置候補となるアプリケーション４０の選択結果）を端末１１に表示して、管理者に実行案を選択させるからである。また、アルゴリズム６６が、複数の資源の各々に対応して、複数の測定値ごとに存在することが可能だからである。さらに、管理システム１０が、アルゴリズム６６の属性６３を判断して実行を制御するからである。
【００７０】
次に、本発明の第２実施形態について説明する。
【００７１】
図１１は、第２実施形態の選択部２１のフローチャートである。本図のステップＳ３１乃至Ｓ３Ｃは図９のＳ１乃至ＳＣと同じである。
【００７２】
本実施形態の選択部２１は、全サーバ３０についてアルゴリズム６６の実行を終えると（Ｓ３ＡでＹ）、再配置表８０を走査して、選択結果が一致するアルゴリズム６６がいくつあるかを選択結果ごとにカウントする（Ｓ３Ｄ）。同部は、当該カウント値が最大値となる選択結果に基づいて再配置を実行する（Ｓ３Ｅ）。本実施形態は、他の点では第１実施形態と同じである。
【００７３】
本実施形態の管理システム１０は、管理者の介入を不要にして、種々の性能要因を考慮して、アプリケーション４０の再配置を適切に行うことができる。選択部２１が、複数のアルゴリズム６６による選択結果から、多数決論理により適切な選択結果を選択して、再配置を実行するからである。
【００７４】
次に、本発明の第３実施形態について説明する。
【００７５】
本実施形態の論理表６０は、各アルゴリズム６６対応に「重み」を記憶する。本実施形態の選択部２１のフローチャートは、図１１とほぼ同様である。但し、選択部２１は、再配置表８０を走査して、選択結果が一致するアルゴリズム６６の数をカウントする（Ｓ３Ｄ）代わりに、アルゴリズム６６の重みを加算する。そして、同部は、当該カウント値が最大値となる選択結果に基づいて再配置を実行する（Ｓ３Ｅ）代わりに、重み加算値が最大値となる選択結果に基づいて再配置を実行する。本実施形態は、他の点では第２実施形態と同じである。
【００７６】
本実施形態の管理システム１０は、管理者の介入を不要にしてアプリケーション４０の再配置を適切に行ううえで、資源の軽重を考慮することが可能となる。これにより、競合の激しい資源の判断を重視した再配置を行うことが可能となる。例えば、管理システム１０の構成やアプリケーション４０の性質に起因して、メモリ資源の競合が激しいことが予想されるときには、メモリ関連のアルゴリズム６６の「重み」を増してメモリの状況を重視した再配置をさせることが可能となる。各アルゴリズム６６が「重み」を有するからである。
【００７７】
図１２によれば、本発明の管理マシン２０は、第１及び第２のアプリケーション４１、４２を配置された第１のサーバ３１から、ＡＰ情報Ｂ０および第１のサーバ情報Ａ０を取得する取得部２２を備える。
【００７８】
さらに、管理マシン２０は、ＡＰ情報Ｂ０、第１のサーバ情報Ａ０および第１のアルゴリズム６７の実行結果によって、第１または第２のアプリケーション４１、４２、および、第２のサーバ３２を選択する第１の選択結果を得る選択部２１を備える。選択部２１は、ＡＰ情報Ｂ０、第１のサーバ情報Ａ０及び第２のアルゴリズム６８の実行結果によって、第２の選択結果も得て、選択結果の何れかに従って、第１または第２のアプリケーション４１、４２を第２のサーバ３２に再配置する。
【図面の簡単な説明】
【００７９】
【図１】図１は、本発明の第１実施形態にかかる管理システム１０の構成例を示す。
【図２】図２は、仮想ディスク５５のディスク３５への割り当ての一例を示している。
【図３】図３は論理表６０の構成例を示す。
【図４】図４は閾値表７０の構成例を示す。
【図５】図５は再配置表８０の構成例を示す。
【図６】図６は上述の割り当て例に基づくディスク構成表９０の例である。
【図７】図７はサーバ情報Ａ０の構成例を示す。
【図８】図８はＡＰ情報Ｂ０の構成例を示す。
【図９】図９は選択部２１のフローチャートである。
【図１０】図１０は、アルゴリズム６６の実行フローチャート例である。
【図１１】図１１は、第２実施形態の選択部２１のフローチャートである。
【図１２】図１２は、管理マシン２０の構成を示す。
【符号の説明】
【００８０】
１０    管理システム
１１    端末
２０    管理マシン
２１    選択部
２２    取得部
２３    時計
２９    管理プログラム
３０    サーバ
３１    第１のサーバ
３２    第２のサーバ
３３    第３のサーバ
３５    ディスク
３６    モニタ
４０    アプリケーション
４１    第１のアプリケーション
４２    第２のアプリケーション
５０    ＶＭ
５１    第１のＶＭ
５２    第２のＶＭ
５５    仮想ディスク
６０    論理表
６１    アルゴリズムＩＤ
６２    仮想資源名
６３    属性
６４    フラグ
６５    適用時刻
６６    アルゴリズム
６７    第１のアルゴリズム
６８    第２のアルゴリズム
６９    第３のアルゴリズム
７０    閾値表
７１    実資源名
７２    閾値
８０    再配置表
８１    選択番号
８２    移動対象
８３    サーバＩＤ
８４    ＶＭＩＤ
８５    移動先
９０    ディスク構成表
９１    ディスク名
９２    仮想ディスク名
Ａ０    サーバ情報
Ｂ０    ＡＰ情報
Ｂ１    優先度
【図１】
0004577384.tif 000002
【図２】
0004577384.tif 000003
【図３】
0004577384.tif 000004
【図４】
0004577384.tif 000005
【図５】
0004577384.tif 000006
【図６】
0004577384.tif 000007
【図７】
0004577384.tif 000008
【図８】
0004577384.tif 000009
【図９】
0004577384.tif 000010
【図１０】
0004577384.tif 000011
【図１１】
0004577384.tif 000012
【図１２】
0004577384.tif 000013