(57)【要約】  １つの側面では、依存関係を有する複数のコンピュータの稼働管理に関してユーザの手動操作を軽減する。  仮想サーバ間の通信を監視し（１３０〜１４２）、依存関係を有する複数の仮想サーバを含む仮想サーバのグループを生成し（１４４）、かつ仮想サーバが稼働する物理サーバ上の位置から分散または集中を示す仮想サーバの運用ルールを決定し（１４６〜１５２）、自動的に新規作成された仮想サーバを、グループに追加し、かつ、決定されている運用ルールに従って、新規作成された仮想サーバの最適な移動先を決定し、かつ移動を実施する。
2014033882.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ上で仮想的なコンピュータとして稼働する複数のノードを含み、かつ稼働する際にノード間で相互に通信を行う依存関係を有する複数のノードを含む複数のノードにおいて、ノードの現在位置及び該現在位置で示されるノードが稼働するコンピュータの現在位置を示す位置情報を含む通信情報を用いてノード間で前記通信を行うときの前記通信情報に基づいて、前記依存関係を有する複数のノードを示すグループ情報を導出する導出部と、
前記導出部で導出されたグループ情報に含まれる複数のノードの各々の前記位置情報に基づいて、前記グループ情報に含まれる複数のノードが１つのコンピュータ上で稼働することを示す稼働情報または複数のコンピュータ上の各々で稼働することを示す稼働情報を、前記グループ情報に含まれる前記複数のノードに対して決定する決定部と、
を備えた稼働管理装置。
【請求項２】
前記導出部は、前記複数のノードの間で相互に通信を行う通信回数に基づいて、所定通信回数以上のノード間通信が実行された複数のノードを示す情報を、前記グループ情報として求める請求項１に記載の稼働管理装置。
【請求項３】
前記決定部は、前記導出部で導出されたグループ情報に含まれる複数のノードのうちの一部のノードと該一部のノード以外のノードとが異なるコンピュータで稼働することを示す稼働情報を決定する請求項１または請求項２に記載の稼働管理装置。
【請求項４】
前記コンピュータ上で仮想的なコンピュータとして稼働するノードを追加するときに、追加したノードと、前記複数のノードの各々との類似度を求め、求めた類似度に基づいて、追加したノードに対して所定値以上の類似度を示すノードを含む前記グループ情報に、前記追加したノードを示す情報を追加する追加部
を含む請求項１乃至請求項３の何れか１項に記載の稼働管理装置。
【請求項５】
前記追加部は、前記追加したノードと前記複数のノードのうちの何れか１つのノードとのユークリッド距離を前記類似度として求める請求項４に記載の稼働管理装置。
【請求項６】
前記グループ情報、及び前記稼働情報をテーブルとして格納した記憶部を含む請求項１乃至請求項５の何れか１項に記載の稼働管理装置。
【請求項７】
前記追加したノードの前記グループ情報、及び前記追加したノードの前記稼働情報に基づいて、前記追加したノードが稼働するコンピュータの現在位置が、前記所定値以上の類似度を示すノードが稼働するコンピュータの現在位置に不一致のとき、前記所定値以上の類似度を示すノードが稼働するコンピュータに、前記追加したノードを移動する追加ノード移動部を含む請求項４乃至請求項６の何れか１項に記載の稼働管理装置。
【請求項８】
少なくとも１つのノードを含むコンピュータが稼働困難な緊急状態のとき、前記緊急状態のコンピュータで稼働するノードを、該ノードが含まれる前記グループ情報の前記稼働情報に対応させて前記前記緊急状態のコンピュータと異なるコンピュータに移動する緊急ノード移動部を含む請求項１乃至請求項７の何れか１項に記載の稼働管理装置。
【請求項９】
コンピュータ上で仮想的なコンピュータとして稼働する複数のノードを含み、かつ稼働する際にノード間で相互に通信を行う依存関係を有する複数のノードを含む複数のノードにおいて、ノードの現在位置及び該現在位置で示されるノードが稼働するコンピュータの現在位置を示す位置情報を含む通信情報を用いてノード間で前記通信を行うときの前記通信情報に基づいて、前記依存関係を有する複数のノードを示すグループ情報を導出し、
前記導出部で導出されたグループ情報に含まれる複数のノードの各々の前記位置情報に基づいて、前記グループ情報に含まれる複数のノードが１つのコンピュータ上で稼働することを示す稼働情報または複数のコンピュータ上の各々で稼働することを示す稼働情報を、前記グループ情報に含まれる前記複数のノードに対して決定する、
稼働管理方法。
【請求項１０】
前記グループ情報の導出では、前記複数のノードの間で相互に通信を行う通信回数に基づいて、所定通信回数以上のノード間通信が実行された複数のノードを示す情報を、前記グループ情報として求める請求項９に記載の稼働管理方法。
【請求項１１】
前記稼働情報は、前記導出されたグループ情報に含まれる複数のノードのうちの一部のノードと該一部のノード以外のノードとが異なるコンピュータで稼働することを示す情報を稼働情報として決定する請求項９または請求項１０に記載の稼働管理方法。
【請求項１２】
前記コンピュータ上で仮想的なコンピュータとして稼働するノードを追加するときに、追加したノードと、前記複数のノードの各々との類似度を求め、求めた類似度に基づいて、追加したノードに対して所定値以上の類似度を示すノードを含む前記グループ情報に、前記追加したノードを示す情報を追加する処理を含む請求項９乃至請求項１１の何れか１項に記載の稼働管理方法。
【請求項１３】
前記類似度は、前記追加したノードと前記複数のノードのうちの何れか１つのノードとのユークリッド距離を求める請求項９乃至請求項１２の何れか１項に記載の稼働管理方法。
【請求項１４】
前記グループ情報、及び前記稼働情報をテーブルとして記憶部に格納する処理を含む請求項９乃至請求項１３の何れか１項に記載の稼働管理方法。
【請求項１５】
前記追加したノードの前記グループ情報、及び前記追加したノードの前記稼働情報に基づいて、前記追加したノードが稼働するコンピュータの現在位置が、前記所定値以上の類似度を示すノードが稼働するコンピュータの現在位置に不一致のとき、前記所定値以上の類似度を示すノードが稼働するコンピュータに、前記追加したノードを移動する
請求項１２乃至請求項１４の何れか１項に記載の稼働管理方法。
【請求項１６】
少なくとも１つのノードを含むコンピュータが稼働困難な緊急状態のとき、前記緊急状態のコンピュータで稼働するノードを、該ノードが含まれる前記グループ情報の前記稼働情報に対応させて前記前記緊急状態のコンピュータと異なるコンピュータに移動する
請求項９乃至請求項１５の何れか１項に記載の稼働管理方法。
【請求項１７】
コンピュータ上で仮想的なコンピュータとして稼働する複数のノードを含み、かつ稼働する際にノード間で相互に通信を行う依存関係を有する複数のノードを含む複数のノードにおいて、ノードの現在位置及び該現在位置で示されるノードが稼働するコンピュータの現在位置を示す位置情報を含む通信情報を用いてノード間で前記通信を行うときの前記通信情報に基づいて、前記依存関係を有する複数のノードを示すグループ情報を導出し、
前記導出部で導出されたグループ情報に含まれる複数のノードの各々の前記位置情報に基づいて、前記グループ情報に含まれる複数のノードが１つのコンピュータ上で稼働することを示す稼働情報または複数のコンピュータ上の各々で稼働することを示す稼働情報を、前記グループ情報に含まれる前記複数のノードに対して決定する、
処理をコンピュータにより実行させるための稼働管理プログラム。
【請求項１８】
コンピュータを、請求項９〜請求項１６の何れか１項記載の稼働管理方法に係る処理を実行させるための稼働管理プログラム。
【請求項１９】
コンピュータ上で仮想的なコンピュータとして稼働する複数のノードを含み、かつ稼働する際にノード間で相互に通信を行う依存関係を有する複数のノードを含む複数のノードにおいて、ノードの現在位置及び該現在位置で示されるノードが稼働するコンピュータの現在位置を示す位置情報を含む通信情報を用いてノード間で前記通信を行うときの前記通信情報に基づいて、前記依存関係を有する複数のノードを示すグループ情報を導出し、
前記導出部で導出されたグループ情報に含まれる複数のノードの各々の前記位置情報に基づいて、前記グループ情報に含まれる複数のノードが１つのコンピュータ上で稼働することを示す稼働情報または複数のコンピュータ上の各々で稼働することを示す稼働情報を、前記グループ情報に含まれる前記複数のノードに対して決定する、
処理をコンピュータにより実行させるための稼働管理プログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項２０】
コンピュータに、請求項９〜請求項１６の何れか１項記載の稼働管理方法に係る処理を実行させるための稼働管理プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
稼働管理装置、稼働管理方法、稼働管理プログラム及び記録媒体に関する。
【背景技術】
【０００２】
１または複数のコンピュータを使用して業務処理を行う情報処理システムが知られている。複数のコンピュータを使用して業務処理を行う場合、コンピュータ間に依存関係が存在することがある。複数のコンピュータが有する依存関係の一例に、第１コンピュータで業務処理を行うために、第２コンピュータの実行結果を利用するという関係がある。複数のコンピュータを使用して業務処理を行う情報処理システムでは、停電などの緊急時の対策、コンピュータの実行処理による負荷分散、及び業務処理に対応するコンピュータの処理能力などを考慮して、複数のコンピュータの各々の配置が予め決定される。【０００３】
また、最近では、物理的なコンピュータの利用効率の向上などを目的として、１台の物理的なコンピュータ上に、複数の仮想的なコンピュータを構築する仮想化技術が実現されている。仮想化技術により構築された仮想的なコンピュータは、他の物理的なコンピュータを移動が可能である。近年、仮想的なコンピュータを含んだ複数のコンピュータを使用して業務処理を行う情報処理システムが実現されている。【０００４】
情報処理システムでは、業務処理を円滑に遂行するために、物理的なコンピュータ及び仮想的なコンピュータを管理する必要がある。情報処理システムにおける複数の物理的なコンピュータや仮想的なコンピュータを管理するために、依存関係を有する複数の物理的なコンピュータや仮想的なコンピュータをグループとして扱う場合がある。グループ、すなわち依存関係が存在する複数の物理的なコンピュータや仮想的なコンピュータを管理する場合、ユーザは、停電対処、負荷分散、及び処理能力などを考慮する。また、ユーザは、考慮した停電対処、負荷分散、及び処理能力などを基に手動操作により仮想的なコンピュータをどの物理的なコンピュータで稼働させるのかを示す稼働位置を定めて管理する。例えば、複数の仮想的なコンピュータによる業務処理では、複数の仮想的なコンピュータを１つの物理的なコンピュータ上で稼働させることが好ましい場合や別々の物理的なコンピュータに分散させて稼働させることが好ましい場合がある。そこで、グループに含まれる仮想的なコンピュータの稼働位置を管理する必要が生じる場合がある。【０００５】
複数のコンピュータを管理する技術の一例として、複数の仮想的なコンピュータの間で相互通信する仮想的なコンピュータ間の通信を管理する技術が知られている。コンピュータの間の通信を管理する技術では、予めユーザにより相互通信の可否の設定を示すポリシによってグループ間の通信の許可を管理する。また、複数の仮想的なコンピュータを含むグループはユーザの手動操作によって定義されたり、変更される。【０００６】
また、管理装置により複数の仮想的なコンピュータをグループ化する技術が知られている。複数の仮想的なコンピュータをグループ化する技術では、複数の仮想的なコンピュータから得られる仮想的なコンピュータにより行われる業務処理を示す情報等によってグループ化する。【０００７】
また、或る物理的なコンピュータ上で稼働する仮想的なコンピュータを、移動させる技術の一例は、仮想的なコンピュータが稼働する物理的なコンピュータのハードウェア資源による制約や処理負荷などの稼働状況に応じて、仮想的なコンピュータを再配置する。【０００８】
また、仮想的なコンピュータを再配置するときに、複数の仮想的なコンピュータを含むことを示す予め定めたグループの情報を維持して仮想的なコンピュータを再配置する技術も知られている。グループの情報を維持して仮想的なコンピュータを再配置する技術の一例では、複数の仮想的なコンピュータを、異なる物理的なコンピュータに配置すべきか、同一の物理的なコンピュータに配置すべきかを示すユーザにより予め定められたグループの情報を得る。そして、グループの情報を維持するように仮想的なコンピュータを再配置する。【０００９】
【特許文献１】特表２００９−５３２９４４号公報
【特許文献２】特開２０１１−１８６７７５号公報
【特許文献３】特表２００８−５１７３８２号公報
【特許文献４】特開２００９−１９９３９５号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
ところで、依存関係を有する仮想的なコンピュータを含んだ複数のコンピュータを使用して業務処理を行う情報処理システムを構築するとき、ユーザは、複数の仮想的なコンピュータの稼働位置を意図的に決定する場合がある。例えば、複数の仮想的なコンピュータを１つの物理的なコンピュータ上で稼働させる業務処理を意図した場合や、複数の仮想的なコンピュータを別々の物理的なコンピュータに分散させて稼働させる業務処理を意図した場合である。【００１１】
しかしながら、複数の仮想的なコンピュータを示すグループの情報や、仮想的なコンピュータの稼働位置を示す情報は、ユーザの手動操作により定義されたり、変更される。従って、新規に仮想的なコンピュータが追加されたり自動的に再配置される場合、ユーザの手動操作による設定変更が完了するまでユーザが意図した位置で仮想的なコンピュータを稼働することができない場合がある。【００１２】
１つの側面では、本発明は、依存関係を有する複数のコンピュータの稼働管理に関してユーザの手動操作を軽減することを目的とする。
【課題を解決するための手段】
【００１３】
開示の技術は、例えばコンピュータシステムに含まれる複数のコンピュータのうちの何れかのコンピュータ上で稼働し、複数のコンピュータの間で移動可能な複数のノードについて、グループ情報を求める。グループ情報は、依存関係を有して稼働する複数のノードを示す。グループ情報及びグループ情報により示されるノードの各々が稼働するコンピュータの現在位置を示す位置情報に基づいて、グループ情報により示される複数のノードがどのようにコンピュータで稼働するかを示す稼働情報が決定される。
【発明の効果】
【００１４】
１つの実施態様では、依存関係を有する複数のコンピュータの稼働管理に関してユーザの手動操作を軽減することができる。
【図面の簡単な説明】
【００１５】
【図１】本実施形態に係る稼働管理システムの構成を示すブロック図である。
【図２】本実施形態に係るコンピュータシステムの構成を示すブロック図である。
【図３】コンピュータシステムの動作に関する構成を示すイメージ図である。
【図４】物理サーバ管理テーブルの一例を示すイメージ図である。
【図５】仮想サーバ管理テーブルの一例を示すイメージ図である。
【図６】仮想サーバ通信履歴テーブルの一例を示すイメージ図である。
【図７】運用ルール管理テーブルの一例を示すイメージ図である。
【図８】構成グループテーブルの一例を示すイメージ図である。
【図９】類似性グループテーブルの一例を示すイメージ図である。
【図１０】サーバ間通信回数テーブルの一例を示すイメージ図である。
【図１１】サーバ間距離テーブルの一例を示すイメージ図である。
【図１２】依存関係を有する複数のコンピュータの一例を示すイメージ図である。
【図１３】状態監視プロセスの流れを示すフローチャートである。
【図１４】運用ルール構築プロセスの流れを示すフローチャートである。
【図１５】運用ルール構築プロセスで導出した構成グループテーブルの一例を示すイメージ図である。
【図１６】運用ルール構築プロセスで決定した構成グループテーブルの一例を示すイメージ図である。
【図１７】自動的に追加される仮想サーバの一例を示すイメージ図である。
【図１８】仮想サーバ移動プロセスの流れを示すフローチャートである。
【図１９】新規仮想サーバ追加のサーバ間通信回数テーブルを示すイメージ図である。
【図２０】新規仮想サーバ追加のサーバ間距離テーブルを示すイメージ図である。
【図２１】グループ情報を導出した構成グループテーブルの一例を示すイメージ図である。
【図２２】追加した仮想サーバを含む類似性グループテーブルを示すイメージ図である。
【図２３】追加した仮想サーバを含む構成グループテーブルを示すイメージ図である。
【図２４】構成グループテーブルに対応する類似性グループテーブルを示すイメージ図である。
【図２５】仮想サーバ移動プロセスに含まれる仮想サーバ移動処理の流れを示すフローチャートである。
【図２６】仮想サーバ移動プロセスで仮想サーバが移動された後の構成を示すイメージ図である。
【図２７】依存関係を有する物理サーバ及び仮想サーバの関係の一例を示すイメージ図である。
【図２８】新規の業務処理のために、集中構成による仮想サーバを、物理サーバ上に新規に構築するときの説明図である。
【図２９】新規の業務処理のために、分散構成による仮想サーバを、物理サーバ上に新規に構築するときの説明図である。
【図３０】緊急状態のときにおける仮想サーバ移動プロセスの流れを示すフローチャートである。
【図３１】集中構成の運用ルールで仮想サーバが移動された後の構成を示すイメージ図である。
【発明を実施するための最良の形態】
【００１６】
以下、図面を参照して開示の技術の実施形態の一例を詳細に説明する。【００１７】
図１に、本実施形態に係る稼働管理システム１０の構成を示す。稼働管理システム１０は、ＬＡＮ等によるネットワーク３０に、稼働管理装置１２と、稼働管理装置１２が管理する複数台の物理的な実コンピュータと、が各々接続されている。図１には、複数台の物理的な実コンピュータの一例として、コンピュータ３２，３６，４０を示す。なお、ネットワーク３０はインターネット等の通信ネットワークを含むことができる。【００１８】
稼働管理装置１２は、管理下のコンピュータ３２，３６，４０について稼働を管理するためのものである。詳細は後述するが、稼働管理装置１２は例えばコンピュータで実現される。稼働管理装置１２は、状態監視部１４，運用ルール構築部１６、ノード移動部２４，データ管理部２６及び記憶部２８を備えている。運用ルール構築部１６は、導出部１８、決定部２０及び追加部２２を含んでいる。また、記憶部２８には、テーブル２９の情報が格納されている。【００１９】
コンピュータ３２は、ノード３３，３４，３５を含んでいる。ノード３３〜３５の一例には、１台のコンピュータで複数のシステムを構築可能とする処理として一般的に知られた仮想化によって得られる仮想サーバがある。また、コンピュータ３６は、ノード３７，３８，３９を含んでいる。また、コンピュータ４０は、ノード４１，４２，４３を含んでいる。【００２０】
なお、図１では、稼働管理装置１２が管理する複数台のコンピュータ（複数台の物理的な実コンピュータ）として、３台のコンピュータ３２，３６，４０を一例として示したが、３台に限定されるものではなく、２台以上であれば何台あってもよい。【００２１】
また、コンピュータ３２等に含まれるノード３３等は、開示技術のノードの一例であり、一般的に知られた仮想化によって得られる仮想サーバを適用することができる。また、コンピュータ３２等に含まれるノード３３等は、詳細を後述するように、稼働中にノードを追加することが可能であればよい。すわなち、稼働管理システム１０の構築当初は、ノードつまり仮想サーバを含まない物理的な実コンピュータを含める場合がある。【００２２】
図２に、本実施形態に係る稼働管理装置１２を含み、かつコンピュータにより実現される管理装置４６を備えたコンピュータシステム４４の一例を示す。【００２３】
稼働管理装置１２は、例えば図２に示す管理装置４６により実現することができる。管理装置４６は、コンピュータにより実現することができる。詳細には、管理装置４６はＣＰＵ４８、メモリ５０、不揮発性の格納部５２を備えている。ＣＰＵ４８、メモリ５０、及び格納部５２はバス８０を介して互いに接続されている。格納部５２はＨＤＤ(Hard Disk Drive)やフラッシュメモリ等によって実現できる。また、管理装置４６はネットワーク３０に接続するためのインタフェース（Ｉ／Ｏ）７４を備え、Ｉ／Ｏ７４はバス８０に接続されている。また、管理装置４６は、出力デバイスの一例の表示装置であるディスプレイ７５、入力デバイスの一例の入力装置であるキーボード７６とマウス７７を備えている。ディスプレイ７５、キーボード７６及びマウス７７はバス８０に接続されている。また、管理装置４６は、光ディスク等の記録媒体７９が挿入され、挿入された記録媒体７９に対して読み書きするための装置（Ｒ／Ｗ）７８を備え、装置（Ｒ／Ｗ）７８はバス８０に接続されている。なお、ディスプレイ７５、キーボード７６、マウス７７、装置（Ｒ／Ｗ）７８は、省略してもよく、必要に応じてバス８０に接続するようにしてもよい。【００２４】
格納部５２には、管理装置４６で、複数のコンピュータの稼働を管理する処理を実行させるための管理プログラム５４が記憶されている。ＣＰＵ４８は、管理プログラム５４を格納部５２から読み出してメモリ５０に展開し、管理プログラム５４に含まれるプロセスを順次実行する。つまり、稼働管理装置１２が管理装置４６で実現され、ＣＰＵ４８が管理プログラム５４を実行することで、管理装置４６は稼働管理装置１２として動作される。【００２５】
なお、管理プログラム５４は、開示の技術における稼働管理プログラムの一例である。また、管理プログラム５４は、管理装置４６を稼働管理装置１２として機能させるためのプログラムでもある。【００２６】
管理プログラム５４は、状態監視プロセス５６、運用ルール構築プロセス５８、仮想サーバ移動プロセス６０及びデータ管理プロセス６２を含んでいる。ＣＰＵ４８は、状態監視プロセス５６を実行することで、図１の稼働管理装置１２における状態監視部１４として動作する。すなわち、稼働管理装置１２が管理装置４６で実現され、状態監視プロセス５６を実行することで管理装置４６は稼働管理装置１２の状態監視部１４として動作される。また、ＣＰＵ４８は、運用ルール構築プロセス５８を実行することで、図１の稼働管理装置１２における運用ルール構築部１６として動作する。すなわち、稼働管理装置１２が管理装置４６で実現され、運用ルール構築プロセス５８を実行することで管理装置４６は稼働管理装置１２の運用ルール構築部１６として動作される。【００２７】
ＣＰＵ４８は、仮想サーバ移動プロセス６０を実行することで、図１の稼働管理装置１２におけるノード移動部２４として動作する。すなわち、稼働管理装置１２がコンピュータによる管理装置４６で実現され、仮想サーバ移動プロセス６０を実行することで管理装置４６は稼働管理装置１２のノード移動部２４として動作される。また、ＣＰＵ４８は、データ管理プロセス６２を実行することで、図１の稼働管理装置１２におけるデータ管理部２６として動作する。すなわち、稼働管理装置１２が管理装置４６で実現され、データ管理プロセス６２を実行することで管理装置４６は稼働管理装置１２のデータ管理部２６として動作される。【００２８】
詳細は各々後述するが、管理プログラム５４に含まれる状態監視プロセス５６は、コンピュータシステム４４において管理装置４６が管理する複数のコンピュータの各々の状態を監視するプログラムである。なお、状態監視プロセス５６は、複数のコンピュータの各々に含まれるノード（例えば仮想サーバ）の各々の状態を監視するプログラムでもある。運用ルール構築プロセス５８は、コンピュータシステム４４におけるコンピュータの運用ルールを構築するプログラムである。また、仮想サーバ移動プロセス６０は、コンピュータに含まれるノード（例えば仮想サーバ）の移動を制御するプログラムである。データ管理プログラム８２は、コンピュータシステム４４におけるコンピュータを管理する上で管理装置４６が使用する各種のデータを管理するプログラムである。また、データ管理プログラム８２は、コンピュータシステム４４で稼働するモデルを管理するプログラムを含む。【００２９】
コンピュータシステム４４のネットワーク３０には、コンピュータ３２，３６，４０が接続されている。コンピュータ３２，３６，４０は、管理装置４６により管理される。すなわち、コンピュータ３２，３６，４０の各々に含まれる、詳細を後述する物理的な実コンピュータで機能する物理サーバ及び該物理サーバ上に構築される仮想的なコンピュータである仮想サーバは、管理装置４６により管理される。【００３０】
コンピュータ３２は、ＣＰＵ８３、メモリ８４、及び不揮発性の格納部８５を備えている。ＣＰＵ８３、メモリ８４、及び格納部８５は、バス８９を介して互いに接続されている。格納部８５はＨＤＤ(Hard Disk Drive)やフラッシュメモリ等によって実現できる。また、コンピュータ３２はネットワーク３０に接続するためのインタフェース（Ｉ／Ｏ）８９Ａを備え、Ｉ／Ｏ８９Ａはバス８９に接続されている。また、コンピュータ３２は、ディスプレイ８９Ｂ、キーボード８９Ｃ及びマウス８９Ｄを備えている。ディスプレイ８９Ｂ、キーボード８９Ｃ及びマウス８９Ｄはバス８９に接続されている。また、コンピュータ３２は、記録媒体７９が挿入され、挿入された記録媒体７９に対して読み書きするための装置（Ｒ／Ｗ）８９Ｅを備えており、装置（Ｒ／Ｗ）８９Ｅはバス８９に接続されている。なお、ディスプレイ８９Ｂ、キーボード８９Ｃ、マウス８９Ｄ、及び装置（Ｒ／Ｗ）８９Ｅは、省略してもよく、必要に応じてバス８９に接続するようにしてもよい。【００３１】
コンピュータ３２の格納部８５には、コンピュータ３２を物理サーバとして機能させるための機能部分を含んだＯＳ(Operating System)８６、及びコンピュータ３２において仮想サーバを構築し稼働させるための仮想化プログラム８７が記憶されている。また、コンピュータ３２の格納部８５には、コンピュータ３２における物理サーバと仮想サーバの各々の装置構成や通信管理を実行させるためのエージェントプログラム８８が記憶されている。【００３２】
ところで、１台のコンピュータに所謂サーバ機能を有するＯＳを搭載することで物理サーバが得られることが知られている。物理サーバは、メールサーバ等のように１つのアプリケーションプログラムを実行する１つのシステムを構築することが多い。近年、物理サーバの利用効率の向上などを目的として、１台の物理サーバで、複数の仮想的なシステムを構築する仮想化システムの技術が実現されている。例えば、１台の物理サーバ上に、複数台の仮想サーバを構築することが可能である。なお、仮想化システムの技術では、或る物理サーバ上に構築された仮想サーバを、他の物理サーバ上へ移動することが可能である。【００３３】
つまり、ＣＰＵ８３は、ＯＳ８６を格納部８５から読み出してメモリ８４に展開して実行することで、コンピュータ３２が物理サーバとして動作される。また、ＣＰＵ８３は、仮想化プログラム８７を格納部８５から読み出してメモリ８４に展開して実行することで、物理サーバ上で仮想サーバが稼働される。すなわち、コンピュータ３２が物理サーバとして機能されるとき、コンピュータ３２に仮想サーバを構築することができる。詳細には、ＣＰＵ８３がＯＳ８６を格納部８５から読み出してメモリ８４に展開して実行することで、コンピュータ３２は物理サーバとして動作される。また、ＣＰＵ８３が仮想化プログラム８７を格納部８５から読み出してメモリ８４に展開して実行することで、コンピュータ３２は仮想サーバとして動作される。従って、仮想サーバは、物理サーバ内に仮想的に作成されたコンピュータである。また、エージェントプログラム８８を格納部８５から読み出してメモリ８４に展開して実行することで、物理サーバ及び物理サーバ上で稼働される仮想サーバの各々の通信管理等が実行される。【００３４】
なお、コンピュータ３６とコンピュータ４０の構成は、コンピュータ３２と略同一のため、詳細な説明を省略する。【００３５】
図３に、コンピュータシステム４４において、管理装置４６で管理プログラム５４が実行され、かつコンピュータ３２でＯＳ８６、仮想化プログラム８７及びエージェントプログラム８８が実行されるときの動作に関する構成を示す。【００３６】
コンピュータシステム４４は、管理装置４６で管理プログラム５４が実行されることで、稼働管理装置１２（図１）における状態監視部１４、運用ルール構築部１６，ノード移動部２４，データ管理部２６として管理装置４６が動作する。また、コンピュータ３２において、ＯＳ８６が実行されることで、コンピュータ３２は物理サーバとして動作される。また、コンピュータ３２において、仮想化プログラム８７が実行されることで、コンピュータ３２は仮想サーバとして動作される。図３では、物理サーバとして動作されるコンピュータを物理サーバＢＶと表記した。また、仮想サーバの機能部分を仮想サーバＳＶと表記した。また、コンピュータ３２において、エージェントプログラム８８が実行されることで、コンピュータ３２はエージェント機能部として動作される。図３では、エージェント機能部をエージェントＥＪと表記した。図３では、コンピュータ３２が、物理サーバとして動作し、物理サーバに３つの仮想サーバが含まれる場合の一例を示している。【００３７】
なお、以下の説明では、複数の物理サーバＢＶのうち、個別の物理サーバを対象とする場合は、Ａ〜Ｃの符号を付し、物理サーバＢＶ同士を区別して扱う。また、複数の仮想サーバＳＶのうち、個別の仮想サーバＳＶを対象とする場合は、仮想サーバＳＶに記号を付し、仮想サーバＳＶ同士を区別して扱う。【００３８】
図２に示すように、管理装置４６の格納部５２には、仮想サーバ管理テーブル６６、物理サーバ管理テーブル６８、仮想サーバ通信履歴テーブル７０、及び運用ルール管理テーブル７２を含むデータベース６４が記憶されている。管理装置４６の格納部５２に記憶されたデータベース６４は図１の稼働管理装置１２の記憶部２８に対応する。また、仮想サーバ管理テーブル６６、物理サーバ管理テーブル６８、仮想サーバ通信履歴テーブル７０、及び運用ルール管理テーブル７２は、図１の稼働管理装置１２の記憶部２８に含まれるテーブル２９の一例に対応する。【００３９】
図４に、データベース６４に格納される物理サーバ管理テーブル６８の一例を示す。物理サーバ管理テーブル６８は、コンピュータシステム４４に含まれるコンピュータが物理サーバＢＶとして機能されるときに物理サーバＢＶのＣＰＵやメモリを管理するための情報が登録される。【００４０】
詳細には、物理サーバ管理テーブル６８は、「物理サーバＩＤ」、「物理サーバ名」、「ＩＰアドレス」、「プロセッサ使用可能量」、及び「メモリ使用可能量」の各情報が対応付けて登録される。「物理サーバＩＤ」の情報には、コンピュータシステム４４に含まれるコンピュータが物理サーバＢＶとして機能されるときに物理サーバＢＶを識別するための情報が登録される。また、「物理サーバ名」の情報には、物理サーバＢＶの呼称を示す情報が登録される。また、「ＩＰアドレス」の情報には、物理サーバＢＶのネットワーク上の位置を示す情報が登録される。「プロセッサ使用可能量」の情報には、ＣＰＵの処理量等で示される、物理サーバＢＶが使用可能なプロセッサ使用量を示す情報が登録される。「メモリ使用可能量」の情報には、物理サーバＢＶが使用可能なメモリ使用量を示す情報が登録される。【００４１】
図５に、データベース６４に格納される仮想サーバ管理テーブル６６の一例を示す。仮想サーバ管理テーブル６６には、物理サーバＢＶ上に構築される仮想サーバＳＶのＣＰＵやメモリを管理するための情報が登録される。【００４２】
例えば、仮想サーバ管理テーブル６６には、「仮想サーバＩＤ」、「仮想サーバ名」、「ＩＰアドレス」、「プロセッサ使用可能量」、「メモリ使用可能量」及び「位置」の各情報が対応付けて登録される。「仮想サーバＩＤ」の情報には、物理サーバＢＶ上に構築された仮想サーバＳＶを識別するための情報が登録される。また、「仮想サーバ名」の情報には、仮想サーバＳＶの呼称を示す情報が登録される。また、「ＩＰアドレス」の情報には、仮想サーバＳＶのネットワーク上の位置を示す情報が登録される。「プロセッサ使用可能量」の情報には、ＣＰＵの処理量等で示される、仮想サーバＳＶが使用可能なプロセッサ使用量を示す情報が登録される。「メモリ使用可能量」の情報には、仮想サーバＳＶが使用可能なメモリ使用量を示す情報が登録される。「位置」の情報には、仮想サーバＳＶが稼働する物理サーバＢＶの位置を示す情報が登録される。図５では、物理サーバＢＶの位置を示す情報の一例として、ネットワーク上で一意の物理サーバＢＶの名称を用いた場合を示す。なお、物理サーバＢＶの位置を示す情報は、ＩＰアドレス等でもよい。【００４３】
図６に、データベース６４に格納される仮想サーバ通信履歴テーブル７０の一例を示す。仮想サーバ通信履歴テーブル７０には、仮想サーバＳＶ間で通信されるパケット等の情報を管理するための情報が登録される。【００４４】
例えば、仮想サーバ通信履歴テーブル７０には、「時刻」、「送信元ＩＰ」、「ポート番号」、「受信先ＩＰ」、「ポート番号」、及び「通信量」の各情報が対応付けて登録される。「時刻」の情報には、仮想サーバＳＶ間で通信されたときの時刻を示す情報が登録される。また、「送信元ＩＰ」の情報には、送信側の仮想サーバＳＶのネットワーク上の位置を示す情報が登録される。「送信元ＩＰ」に続く「ポート番号」の情報には、送信側の仮想サーバＳＶが通信に使用したポート番号を示す情報が登録される。「受信先ＩＰ」の情報には、受信側の仮想サーバＳＶのネットワーク上の位置を示す情報が登録される。「受信先ＩＰ」に続く「ポート番号」の情報には、受信側の仮想サーバＳＶが通信に使用したポート番号を示す情報が登録される。「通信量」の情報には、仮想サーバＳＶ間の通信で使用する情報量を示す情報が登録される。【００４５】
図７に、データベース６４に格納される運用ルール管理テーブル７２の一例を示す。運用ルール管理テーブル７２には、コンピュータシステム４４において複数の仮想サーバＳＶの関係を管理するための情報が登録される。運用ルール管理テーブル７２は、構成グループテーブルＴＢ１、類似性グループテーブルＴＢ２，サーバ間通信回数テーブルＴＢ３，及びサーバ間距離テーブルＴＢ４を含んでいる。図８〜図１１に、運用ルール管理テーブル７２に含まれる構成グループテーブルＴＢ１、類似性グループテーブルＴＢ２，サーバ間通信回数テーブルＴＢ３，及びサーバ間距離テーブルＴＢ４の一例を示す。【００４６】
図８に、構成グループテーブルＴＢ１の一例を示す。構成グループテーブルＴＢ１には、コンピュータシステム４４において依存関係を有して稼働する複数の仮想サーバＳＶ及び稼働している物理サーバＢＶに関係する情報が登録される。【００４７】
例えば、構成グループテーブルＴＢ１には、「構成グループ」、「類似性グループ」、「所属仮想サーバ」、「位置」、及び「運用構成」の各情報が対応付けて登録される。「構成グループ」の情報には、依存関係を有して稼働する複数の仮想サーバＳＶを大分類のグループとし、該大分類のグループを識別するための情報が登録される。また、「類似性グループ」の情報には、大分類のグループの中で、類似性が高い仮想サーバＳＶの種類等で分類される中分類のグループを識別するための情報が登録される。なお、類似性については後述する。「所属仮想サーバ」の情報には、大分類のグループに所属する仮想サーバＳＶを小分類とし、該仮想サーバＳＶを示す情報が登録される。仮想サーバＳＶを示す情報の一例には、仮想サーバＳＶを識別するための仮想サーバＳＶの名称等を示す情報がある。「位置」の情報には、仮想サーバＳＶが稼働する物理サーバＢＶを示す情報が登録される。物理サーバＢＶを示す情報の一例には、物理サーバＢＶを識別するための物理サーバＢＶの名称等を示す情報がある。【００４８】
構成グループテーブルＴＢ１に示す「運用構成」の情報には、大分類のグループに所属する複数の仮想サーバＳＶのコンピュータシステム４４上の配置を示す情報が登録される。すなわち、「運用構成」の情報は、コンピュータシステム４４において稼働する物理サーバＢＶに対し、複数の仮想サーバＳＶが稼働する配置構成を示す。具体的には、「運用構成」の情報に、「集中構成」または「分散構成」を示す情報が登録される。「集中構成」を示す情報は、依存関係を有して稼働する大分類のグループに所属する仮想サーバＳＶが、コンピュータシステム４４において１つの物理サーバＢＶ上で稼働することを示す。「分散構成」を示す情報は、大分類のグループに所属する仮想サーバＳＶが、コンピュータシステム４４において異なる物理サーバＢＶで別々に稼働することを示す。【００４９】
図９に、類似性グループテーブルＴＢ２の一例を示す。類似性グループテーブルＴＢ２には、仮想サーバＳＶの各々について該当する類似性グループを示す情報が登録される。【００５０】
例えば、類似性グループテーブルＴＢ２には、「仮想サーバ」、「ＩＰアドレス」、「類似性グループ」、及び「現状位置」の各情報が対応付けて登録される。「仮想サーバ」の情報には、仮想サーバＳＶを識別するために対象の仮想サーバＳＶの名称等を示す情報が登録される。「ＩＰアドレス」の情報には、対象の仮想サーバＳＶのネットワーク上の位置を示す情報が登録される。「類似性グループ」の情報には、対象の仮想サーバＳＶが分類される類似性を有するグループを識別するための情報が登録される。「現状位置」の情報には、対象の仮想サーバＳＶが稼働する物理サーバＢＶを示す情報が登録される。物理サーバＢＶを示す情報の一例には、物理サーバＢＶを識別するための物理サーバＢＶの名称等を示す情報がある。【００５１】
図１０に、サーバ間通信回数テーブルＴＢ３の一例を示す。サーバ間通信回数テーブルＴＢ３には、コンピュータシステム４４における仮想サーバＳＶ間で通信される通信回数を示す情報が登録される。【００５２】
例えば、サーバ間通信回数テーブルＴＢ３に、縦軸を送信側、横軸を受信側として、コンピュータシステム４４における複数の仮想サーバＳＶを配列したマトリクス表を採用する。マトリクス表によるサーバ間通信回数テーブルＴＢ３には、仮想サーバＳＶ間で該当する組み合わせの仮想サーバＳＶ間の通信回数の情報が登録される。図１０では、６台の仮想サーバＳＶの各々を区別するために、仮想ＳＶ１〜仮想ＳＶ６と表記している。【００５３】
なお、図１０では、仮想サーバＳＶ以外の「外部１」、「外部２」の例が示されている。「外部１」とは、コンピュータシステム４４の外部サーバから仮想サーバＳＶに対して通信がなされるときを示している。つまり、或る仮想サーバＳＶと外部サーバとの間で通信がなされる場合を示す。サーバ間通信回数テーブルＴＢ３を仮想サーバＳＶ同士の通信に限定すると、外部サーバとの間で通信を実行する仮想サーバＳＶと、実行しない仮想サーバＳＶとを同種または類似性が高い仮想サーバＳＶと判別する場合がある。例えば、詳細を後述する仮想サーバ間距離が短く類似性が高いと判別される場合がある。そこで、外部サーバとの間で通信を実行する仮想サーバＳＶと、実行しない仮想サーバＳＶとを同種または類似性が高い仮想サーバＳＶと判別することを避けるために、外部サーバから仮想サーバＳＶに対する通信が考慮される。【００５４】
図１１に、サーバ間距離テーブルＴＢ４の一例を示す。サーバ間距離テーブルＴＢ４には、コンピュータシステム４４における複数の仮想サーバＳＶ間の距離関係を示す情報が登録される。【００５５】
例えば、サーバ間距離テーブルＴＢ４に、縦軸と横軸にコンピュータシステム４４における複数の仮想サーバＳＶを配列したマトリクス表を採用する。マトリクス表によるサーバ間距離テーブルＴＢ４には、仮想サーバＳＶ間で該当する組み合わせの仮想サーバＳＶ間の距離を示す情報が登録される。【００５６】
仮想サーバＳＶ間の距離を求める一例を説明する。本実施形態では、仮想サーバＳＶ間の距離の一例として、ユークリッド距離を求める。具体的には、各仮想サーバＳＶへの通信回数をベクトル値にして仮想サーバＳＶ間のスカラー量を求める。求めた仮想サーバＳＶ間のスカラー量を仮想サーバＳＶ間の距離を示す情報とする。【００５７】
すなわち、ユークリッド距離はｎ次元のベクトルｆ、ｇに対して次式で定義されるスカラー量である。【００５８】
【数１】
2014033882.tif 000003
【００５９】
ｎ次元のベクトルｆ、ｇに対して、ｎを仮想サーバの総数、ｆを一方の仮想サーバ、ｇを他方の仮想サーバに対応させる。変数ｉを、１〜ｎまでインクリメントしたときの上式の結果を、仮想サーバ間の距離を示す情報として登録する。【００６０】
次に本実施形態の作用を説明する。
本実施形態では、コンピュータ間で依存関係を有する複数のコンピュータ（仮想サーバＳＶ）を使用して業務処理を行う場合に、業務処理の処理負荷が増大した等の理由により、仮想サーバＳＶを追加（所謂スケールアウト）するときの一例を説明する。【００６１】
なお、本実施形態では、依存性を有する複数コンピュータの一例として、３階層システム（3-tier system）が稼働される場合について説明する。３階層システムの一例は、クライアントサーバシステムを「プレゼンテーション層」「アプリケーション層」「データ層」の３層に分割して構築したシステムである。具体的には、「プレゼンテーション層」を担当するウェブサーバ（WEB_SERVER）、「アプリケーション層」を担当するアプリケーションサーバ（AP_SERVER）、及び「データ層」を担当するデータベースサーバ（DB_SERVER）が知られている。【００６２】
また、依存関係を有して稼働する複数のコンピュータの他の例には、サーバクライアントシステム（server-client system）が知られている。サーバクライアントシステムは、特定の役割を担当するコンピュータ（サーバ）と、ユーザの操作するコンピュータ（クライアント）に役割を分担し、相互にネットワークで接続されるシステムである。また、依存関係を有して稼働する複数のコンピュータのその他例には、ピアツーピアシステム（Peer to Peer system）が知られている。ピアツーピアシステムは、役割を固定化しないで、ネットワークに参加するコンピュータ同士が情報を授受し、サーバまたはクライアントの双方の機能を有するものである。【００６３】
図１２に、依存関係を有する複数のコンピュータの一例として、管理装置４６により管理されるコンピュータシステム４４におけるコンピュータ３２，３６，４０において機能される複数の物理サーバＢＶ及び複数の仮想サーバＳＶの関係を示す。コンピュータ３２は、物理サーバＡとして機能され、かつ４つの仮想サーバＳＶ１，ＳＶ４，ＳＶ５，ＳＶ６が構築された場合を示す。また、コンピュータ３６は、物理サーバＢとして機能され、かつ１つの仮想サーバＳＶ２が構築されており、コンピュータ４０は、物理サーバＣとして機能され、かつ１つの仮想サーバＳＶ３が構築された場合を示す。なお、図１２では、エージェントＥＪ（図３）の記載を省略している。【００６４】
ユーザは、依存関係を有する複数のコンピュータを使用して業務処理を行う仮想サーバＳＶを最初に構築するとき、複数の仮想サーバＳＶが稼働する物理サーバＢＶの位置を意図的に定める。例えば、全ての仮想サーバＳＶを単一の物理サーバＢＶに集中させて稼働させる業務処理を意図した場合や、複数の仮想サーバＳＶを別々の物理サーバＢＶに分散させて稼働させる業務処理を意図した場合である。【００６５】
一例として、図１２に、複数の仮想サーバＳＶを別々の物理サーバＢＶに分散させて稼働させる業務処理をユーザが意図し、意図に沿って仮想サーバＳＶの稼働位置を定めた場合を示す。具体的には、仮想サーバＳＶ１、ＳＶ２、ＳＶ３の各々の稼働位置が物理サーバＡ，Ｂ，Ｃの各々に分散されている。仮想サーバＳＶ１はウェブサーバとして機能し、仮想サーバＳＶ２はアプリケーションサーバとして機能し、仮想サーバＳＶ３はデータベースサーバとして機能する。図１２では、ウェブサーバとして機能する仮想サーバＳＶ１を「（WEB）」と表記し、アプリケーションサーバとして機能する仮想サーバＳＶ２を「（APP）」と表記し、データベースサーバとして機能する仮想サーバＳＶ３を「（DB）」と表記している。【００６６】
また、図１２の他の例では、全ての仮想サーバＳＶを単一の物理サーバＢＶに集中させて稼働させる業務処理をユーザが意図し、意図に沿って仮想サーバＳＶの稼働位置を定めた場合を示す。具体的には、仮想サーバＳＶ４〜ＳＶ６の全ての稼働位置が物理サーバＡのみに定められている。仮想サーバＳＶ４はウェブサーバとして機能し、仮想サーバＳＶ５はアプリケーションサーバとして機能し、仮想サーバＳＶ６はデータベースサーバとして機能する。【００６７】
まず、管理装置４６に電源が投入されると、管理装置４６では管理プログラム５４による処理が実行される。つまり、管理装置４６のＣＰＵ４８は、管理プログラム５４を格納部５２から読み出してメモリ５０に展開して実行することで、管理プログラム５４に含まれるプロセスの処理を実行する。【００６８】
次に、管理プログラム５４に含まれるデータ管理プロセス６２によるデータ管理処理について説明する。管理装置４６のＣＰＵ４８は、管理プログラム５４を格納部５２から読み出してメモリ５０に展開して実行することで、データ管理処理を実行する。データ管理処理の一例は、データベース６４に登録されたテーブルの管理処理である。すなわち、データ管理処理は、仮想サーバ管理テーブル６６，物理サーバ管理テーブル６８，仮想サーバ通信履歴テーブル７０，運用ルール管理テーブル７２の各テーブルの情報を参照したり更新する。【００６９】
なお、以下の説明では、管理装置４６のＣＰＵ４８により、データベース６４に登録された仮想サーバ管理テーブル６６〜運用ルール管理テーブル７２の各テーブルの参照は、データ管理プロセス６２によるデータ管理部２６（図１）が実行するものとする。また、管理装置４６のＣＰＵ４８により、仮想サーバ管理テーブル６６〜運用ルール管理テーブル７２の各テーブルの更新も、データ管理プロセス６２によるデータ管理部２６（図１）が実行するものとする。【００７０】
管理装置４６のＣＰＵ４８は、起動時及び定期的に管理プログラム５４に含まれる状態監視プロセス５６を実行する。【００７１】
図１３に、管理装置４６で実行される管理プログラム５４に含まれる状態監視プロセス５６の流れを示す。管理装置４６で状態監視プロセス５６が実行されることで、管理装置４６は稼働管理装置１２（図１）の状態監視部１４として動作し、物理サーバＡ〜Ｃ及び仮想サーバＳＶ１〜ＳＶ６の各状態監視処理を実行する。図１３に示す処理ルーチンは、管理装置４６の稼働中に、所定時間間隔で繰り返し実行される。状態監視プロセス５６の実行による状態監視処理は、管理装置４６が管理する複数の物理サーバＢＶ及び複数の仮想サーバＳＶの通信状態やリソース状態を監視する処理である。なお、図１３に示す処理ルーチンは、繰り返し実行されることに限定されず、ユーザによるキーボード７６やマウス７７等の入力装置の操作指示により、実行されるようにしてもよい。【００７２】
管理装置４６のＣＰＵ４８は、ステップ１００において、物理サーバＢＶの総数Ｋを取得する。すなわち、管理装置４６は、ネットワーク３０に接続されているコンピュータ３２〜４０で実行されているエージェントＥＪに対し、物理サーバＢＶが稼働していることを示す情報の返信を要求する。コンピュータ３２〜４０の各々は、管理装置４６からの要求に対して、物理サーバＢＶが稼働しているとき、該物理サーバＢＶの稼働を示す情報を返信する。管理装置４６は、各エージェントＥＪから返信された情報により物理サーバＢＶの総数Ｋを取得する。本実施形態では、物理サーバＡ〜Ｃが稼働しているので、管理装置４６は、「Ｋ＝３」の情報を得る。【００７３】
次に、管理装置４６のＣＰＵ４８は、ステップ１０２において、稼働している単一の物理サーバＢＶについて、稼働状態を取得する。すなわち、管理装置４６は、稼働している物理サーバＡ〜Ｃの何れか１つのエージェントＥＪに対し、物理サーバＢＶの稼働状態を示す情報の返信を要求する。管理装置４６から返信要求のあった物理サーバＡ〜Ｃの何れか１つのエージェントＥＪは、担当する物理サーバ（Ａ〜Ｃの何れか）のリソースを示す情報を取得する。物理サーバＢＶのリソースを示す情報の一例には、構築当初のＣＰＵの使用可能量やメモリの使用可能量、現状のＣＰＵの使用量やメモリの使用量、格納部（ハードディスク等）の容量、及びネットワーク負荷を示す情報等がある。エージェントＥＪは、担当する物理サーバＢＶを識別するための物理サーバＢＶの名称やＩＰアドレスを、リソースを示す情報に対応付けた情報を稼働状態を示す情報として、管理装置４６へ返信する。なお、管理装置４６へ返信する稼働状態を示す情報には、物理サーバＢＶが通信した通信量を含めても良い。管理装置４６は、各エージェントＥＪから返信された情報を一時的に記憶し、稼働状態を示す情報取得が未了の物理サーバＢＶが残存する（ステップ１０４で肯定判断される）とき、ステップ１０２へ戻る。【００７４】
一方、稼働している全物理サーバＢＶの稼働状態を示す情報取得を終了する（ステップ１０４で否定判断される）と、管理装置４６のＣＰＵ４８は、ステップ１０６において物理サーバ管理テーブル６８を更新する。すなわち、管理装置４６では、物理サーバＡ〜Ｃから返信された物理サーバＡ〜Ｃの各々の稼働状態を示す情報により、物理サーバ管理テーブル６８が更新される。【００７５】
次に、管理装置４６のＣＰＵ４８は、ステップ１０８において、仮想サーバＳＶの総数Ｍを取得する。すなわち、管理装置４６は、ネットワーク３０に接続されているコンピュータ３２〜４０で実行されているエージェントＥＪに対し、仮想サーバＳＶ１〜ＳＶ６が稼働していることを示す情報の返信を要求する。仮想サーバＳＶ１〜ＳＶ６の各々は物理サーバＡ〜Ｃの何れかで稼働しており、物理サーバＡ〜Ｃの各々で実行されているエージェントＥＪにより管理されている。従って、管理装置４６からの要求に対してエージェントＥＪは、管理する仮想サーバＳＶの稼働を示す情報を返信する。管理装置４６は、各エージェントＥＪから返信された情報により仮想サーバＳＶの総数Ｍを取得する。本実施形態では、物理サーバＡでは４台の仮想サーバＳＶ１，ＳＶ４〜ＳＶ６、物理サーバＢでは１台の仮想サーバＳＶ２、物理サーバＣでは１台の仮想サーバＳＶ３が稼働しているので（図１２）、管理装置４６は「Ｍ＝６」の情報を得る。【００７６】
次に、管理装置４６のＣＰＵ４８は、ステップ１１０において、稼働している仮想サーバＳＶ１〜ＳＶ６の何れか１つについて、稼働状態を取得する。すなわち、ステップ１０８と同様に、管理装置４６は、エージェントＥＪに対し、仮想サーバＳＶの稼働状態を示す情報の返信を要求する。管理装置４６から返信要求されたエージェントＥＪは、管理している仮想サーバＳＶのリソースを示す情報を取得する。例えば、物理サーバＡで実行されているエージェントＥＪは、管理している４台の仮想サーバＳＶ１，ＳＶ４〜ＳＶ６の各々のリソースを示す情報を取得する。【００７７】
仮想サーバＳＶのリソースを示す情報の一例には、構築当初のＣＰＵの使用可能量やメモリの使用可能量、現状のＣＰＵの使用量やメモリの使用量、格納部（ハードディスク等）の使用容量、及びネットワーク負荷を示す情報等がある。エージェントＥＪは、管理している仮想サーバＳＶを識別するための仮想サーバＳＶの名称やＩＰアドレスを、リソースを示す情報に対応付けた情報を稼働状態を示す情報として、管理装置４６へ返信する。なお、管理装置４６へ返信する稼働状態を示す情報には、仮想サーバＳＶ１〜ＳＶ６の各々が通信したときの通信量を含めても良い。管理装置４６は、各エージェントＥＪから返信された情報を一時的に記憶し、稼働状態を示す情報取得が未了の仮想サーバＳＶが残存する（ステップ１１２で肯定判断される）とき、ステップ１１０へ戻る。【００７８】
一方、稼働している全仮想サーバＳＶ１〜ＳＶ６の稼働状態を示す情報取得を終了する（ステップ１１２で否定判断される）と、管理装置４６のＣＰＵ４８は、ステップ１１４において仮想サーバ管理テーブル６６を更新する。すなわち、管理装置４６では、各エージェントＥＪから返信された仮想サーバＳＶ１〜ＳＶ６の各々の稼働状態を示す情報により、仮想サーバ管理テーブル６６が更新される。【００７９】
次に、管理装置４６のＣＰＵ４８は、ステップ１１６において、仮想サーバＳＶの通信履歴を取得する。すなわち、管理装置４６は、各エージェントＥＪに対し、管理下の仮想サーバＳＶが他の仮想サーバＳＶと通信した通信履歴を示す情報の返信を要求する。通信履歴を示す情報の返信が要求されたエージェントＥＪは、管理下の仮想サーバＳＶの通信履歴を示す情報を取得し、取得した仮想サーバＳＶの通信履歴を示す情報を管理装置４６へ返信する。管理装置４６は、各エージェントＥＪから返信された通信履歴を示す情報を一時的に記憶する。仮想サーバＳＶの通信履歴を示す情報の一例には、「通信開始時刻」、「送信元のＩＰアドレス」、「送信元のポート番号」、「受信先のＩＰアドレス」、「受信先のポート番号」及び「通信量」の各々を示す情報等がある。なお、ＩＰアドレスは、送信元または受信先の仮想サーバＳＶを特定するために用いることができる。また、ポート番号は、送信元または受信先の仮想サーバＳＶの種類を特定するために用いることができる。仮想サーバＳＶの種類とは、本実施形態では、ウェブサーバ、アプリケーションサーバ及びデータベースサーバの何れかを特定することである。【００８０】
以上の処理により、管理装置４６では、物理サーバＡ〜Ｃ及び仮想サーバＳＶ１〜ＳＶ６の各々の状態監視処理が終了される。なお、状態監視処理では、物理サーバＡ〜Ｃの各々の異常検知も行うものとする。【００８１】
ところで、ユーザは、業務処理を行うために、依存関係が存在する複数の仮想サーバＳＶを最初に構築するとき、複数の仮想サーバＳＶの各々が稼働する１または複数の物理サーバＢＶを意図的に定める。ところが、管理装置４６が物理サーバＢＶ及び仮想サーバＳＶの各状態を監視したのみでは、ユーザが意図的に定めた複数の仮想サーバＳＶの各々が稼働する物理サーバＢＶ、つまり複数の仮想サーバＳＶの稼働位置に関係する情報を把握することは困難である。ユーザが意図的に定めた複数の仮想サーバＳＶの稼働位置に関係する情報は、複数の仮想サーバＳＶの１または複数の物理サーバＢＶに対する配置に関する運用ルールである。すなわち、依存関係を有する複数の仮想サーバＳＶを、どの物理サーバＢＶ上で稼働させるかを規定するルールが運用ルールである。【００８２】
そこで、本実施形態では、物理サーバＢＶ及び仮想サーバＳＶの各々の状態を監視するときに、管理装置４６は運用ルールを把握する処理を実行する。本実施形態では、運用ルールを示す情報は、依存関係を有して稼働する複数の仮想サーバＳＶを表すグループを示す情報、及び仮想サーバＳＶがどの物理サーバＢＶ上で稼働するかを表す稼働位置に関係する情報（位置情報）を含んでいる。【００８３】
ステップ１１８の処理の終了により、状態監視処理が終了すると、管理装置４６のＣＰＵ４８は、ステップ１２０において、図１３に示す処理が初期に実行されたものであるか否かを判断する。ステップ１２０の判断は、図１３に示す処理ルーチンが初回に実行されたとき、予め定めた一定回数内に実行されたときを判断値にすることができる。【００８４】
ステップ１２０で否定判断されたときには、本処理ルーチンを終了する。従って、複数の物理サーバＢＶ及び複数の仮想サーバＳＶの各々の状態監視処理が、所定時間毎に実行される。【００８５】
一方、ステップ１２０で肯定判断されたときは、管理装置４６のＣＰＵ４８は、ステップ１２２において初期の運用ルールを構築したのちに、本処理ルーチンを終了する。すなわち、管理装置４６のＣＰＵ４８は、ステップ１２２において、運用ルール構築プロセス５８を実行する。【００８６】
図１４に、管理装置４６で実行される管理プログラム５４に含まれる運用ルール構築プロセス５８の流れを示す。管理装置４６で運用ルール構築プロセス５８が実行されることで、管理装置４６は稼働管理装置１２（図１）の運用ルール構築部１６として動作し、運用ルールの構築処理を実行する。なお、後述するように、図１４に示す処理ルーチンは、管理装置４６の稼働中に、所定時間間隔で繰り返し実行したり、新規に仮想サーバＳＶが構築されたときに実行することができる。また、図１４に示す処理ルーチンは、ユーザによるキーボード７６やマウス７７等の入力装置の操作指示により、実行されるようにしてもよい。【００８７】
管理装置４６のＣＰＵ４８は、ステップ１３０において、データベース６４に格納された物理サーバ管理テーブル６８から物理サーバＢＶに関する情報を取得し、次のステップ１３２で、仮想サーバ管理テーブル６６から仮想サーバＳＶに関する情報を取得する。ＣＰＵ４８は、仮想サーバＳＶ１〜ＳＶ６に関する情報として、仮想サーバＳＶの総数、及び仮想サーバＳＶの物理サーバＢＶ上の位置を取得することができる。すなわち、ＣＰＵ４８は、仮想サーバ管理テーブル６６に登録されている仮想サーバＳＶの数を計数することにより、仮想サーバＳＶの総数を示す情報を取得できる。また、ＣＰＵ４８は、仮想サーバ管理テーブル６６に登録されている仮想サーバＳＶに対する物理サーバＢＶの位置を示す情報を取得することにより、仮想サーバＳＶの物理サーバＢＶ上の位置を示す情報を取得できる。【００８８】
次に、管理装置４６のＣＰＵ４８は、ステップ１３４において、データベース６４に格納された仮想サーバ通信履歴テーブル７０から仮想サーバＳＶの通信履歴を示す情報を取得する。次に、管理装置４６のＣＰＵ４８は、ステップ１３６において、仮想サーバ管理テーブル６６，物理サーバ管理テーブル６８及び仮想サーバ通信履歴テーブル７０に基づいて、サーバ間通信回数テーブルＴＢ３を更新する。すなわち、仮想サーバ通信履歴テーブル７０の各時刻において、送信元ＩＰに該当する仮想サーバＳＶ及び受信先ＩＰに該当する仮想サーバＳＶを特定し、特定した仮想サーバＳＶの間の通信回数を１インクリメントする。仮想サーバ通信履歴テーブル７０に含まれる全ての時刻についての通信回数の計算が終了したときに、計算した仮想サーバＳＶの間の通信回数でサーバ間通信回数テーブルＴＢ３を更新する。なお、後述するようにサーバ間通信回数テーブルＴＢ３から、一連の通信を行う仮想サーバＳＶを１つのグループに該当することを判別することができる。【００８９】
本実施形態では、管理装置４６により管理されるコンピュータシステム４４におけるコンピュータ３２，３６，４０が物理サーバＡ、Ｂ，Ｃとして機能され、かつ６つの仮想サーバＳＶ１〜ＳＶ６が構築されている。従って、上記ステップ１３６において更新されたサーバ間通信回数テーブルＴＢ３は、６つの仮想サーバＳＶ１〜ＳＶ６に外部１及び外部２を加えたテーブルになる（図１０参照）。【００９０】
次に、管理装置４６のＣＰＵ４８は、ステップ１３８〜１４２において、仮想サーバ間の類似性を示す情報を導出する。まず、管理装置４６のＣＰＵ４８は、ステップ１３８において、仮想サーバ間のユークリッド距離を算出する。すなわち、数１を使用して、或る１つの仮想サーバＳＶに対して、他の仮想サーバＳＶの各々のユークリッド距離を求める。次に、管理装置４６のＣＰＵ４８は、ステップ１４０において、ステップ１３８で求めたユークリッド距離についてサーバ間距離テーブルＴＢ４における該当する値を更新する。次に、管理装置４６のＣＰＵ４８は、ステップ１４２において残存する仮想サーバＳＶが有るか否かを判断する。すなわちＣＰＵ４８は、ステップ１３２で取得した総数の仮想サーバＳＶに満たないときはステップ１４２で肯定判断し、ステップ１３８へ戻り、残存する仮想サーバＳＶに対して仮想サーバ間の類似性を示す情報を導出する処理を繰り返す。【００９１】
一方、全仮想サーバＳＶに対して、仮想サーバ間の類似性を示す情報を導出する処理が終了する（ステップ１４２で否定判断される）と、ＣＰＵ４８は、ステップ１４４の処理へ移行する。【００９２】
本実施形態では、コンピュータ３２，３６，４０が物理サーバＡ、Ｂ，Ｃとして機能され、かつ６つの仮想サーバＳＶ１〜ＳＶ６が構築されている。従って、上記ステップ１４０において更新されたサーバ間距離テーブルＴＢ４は、６つの仮想サーバＳＶ１〜ＳＶ６の間の距離を示すテーブルとなる（図１１参照）。【００９３】
次に、管理装置４６のＣＰＵ４８は、ステップ１４４において、依存関係を有して稼働する複数の仮想サーバＳＶを表すグループを示す情報を導出する。なお、ＣＰＵ４８は、運用ルール構築プロセス５８のステップ１４４を実行することで、図１の稼働管理装置１２における運用ルール構築部１６に含まれる導出部１８として動作する。すなわち、稼働管理装置１２が管理装置４６で実現され、運用ルール構築プロセス５８のステップ１４４を実行することで管理装置４６は稼働管理装置１２の運用ルール構築部１６に含まれる導出部１８として動作される。【００９４】
管理装置４６のＣＰＵ４８は、ステップ１４４において、上記ステップ１３６で特定した仮想サーバ間で通信を行っている仮想サーバＳＶを、一連の通信を行っている同種の業務処理を行っているサーバグループとみなし、構成グループとする。具体的には、管理装置４６のＣＰＵ４８は、サーバ間通信回数テーブルＴＢ３を参照し、対象の仮想サーバＳＶに対して、通信回数が予め定めた回数を超える回数の仮想サーバＳＶを、対象の仮想サーバＳＶと同種の業務処理を行っている構成グループとする。【００９５】
図１５に、運用ルール構築プロセス５８のステップ１４４において導出した一例の構成グループテーブルＴＢ１−１を示す。例えば、予め定めた通信回数を５回とすると、図１０では、仮想サーバＳＶ１とＳＶ２，及び仮想サーバＳＶ２とＳＶ３の各々が、一連の通信を行っている同種の業務処理を行っているとみなせる。そこで、仮想サーバＳＶ１、ＳＶ２、ＳＶ３を構成グループＸとする。また、仮想サーバＳＶ４とＳＶ５，及び仮想サーバＳＶ５とＳＶ６の各々が、一連の通信を行っている同種の業務処理を行っているとみなせる。そこで、仮想サーバＳＶ４、ＳＶ５、ＳＶ６を構成グループＹとする。各々の仮想サーバＳＶが稼働する物理サーバＢＶは、仮想サーバ管理テーブル６６を参照することで取得できる。【００９６】
次に、管理装置４６のＣＰＵ４８は、ステップ１４６〜１５０において、仮想サーバ間の類似性グループを示す情報を導出する。まず、管理装置４６のＣＰＵ４８は、ステップ１４６において、サーバ間距離テーブルＴＢ４（図１１）を参照し、ユークリッド距離が予め定めた閾値未満の仮想サーバ対があるか否かを判断する。すなわち、１つの仮想サーバＳＶに対して、他の仮想サーバＳＶのユークリッド距離が予め定めた閾値（例えば５）未満の仮想サーバＳＶが有るか否かを判断する。ユークリッド距離が閾値未満の仮想サーバＳＶがない（ステップ１４６で否定判断）とき、ＣＰＵ４８は、ステップ１５０へ処理を移行する。一方、ユークリッド距離が閾値未満の仮想サーバＳＶがある（ステップ１４６で肯定判断）とき、ＣＰＵ４８は、対象の仮想サーバＳＶ同士に類似性があるとして、ステップ１４８において、類似性グループテーブルＴＢ２を更新する（図９参照）。【００９７】
ＣＰＵ４８は、ステップ１５０において、サーバ間距離テーブルＴＢ４に、残存する仮想サーバＳＶが有るか否かを判断し、残存するとき（肯定判断）は、ステップ１４６へ戻り、残存する仮想サーバＳＶについてステップ１４６の判断を実行する。一方、サーバ間距離テーブルＴＢ４の全仮想サーバＳＶに対するステップ１４６の判断処理が終了する（ステップ１５０で否定判断）と、ステップ１５２へ進む。【００９８】
ステップ１４６〜１５０における仮想サーバ間の類似性グループを示す情報の導出の一例を説明する。ステップ１４４で導出した構成グループテーブルＴＢ１−１では、仮想サーバＳＶ１、ＳＶ２、ＳＶ３は構成グループＸであり、仮想サーバＳＶ４、ＳＶ５、ＳＶ６は構成グループＹである。仮想サーバＳＶ１を対象にしたとき、仮想サーバＳＶ１の類似性グループを示す情報を設定する。すなわち、仮想サーバＳＶ１は構成グループＸの最初の仮想サーバＳＶであるので、類似性グループを示す情報を「Ｘ−１」とする。サーバ間距離テーブルＴＢ４に仮想サーバＳＶ１に対して閾値未満の仮想サーバＳＶはないので、次の仮想サーバＳＶに処理を移行する。結果、仮想サーバＳＶ１、ＳＶ２、ＳＶ３は類似性グループＸ−１，Ｘ−２，Ｘ−３となり、仮想サーバＳＶ４、ＳＶ５、ＳＶ６は類似性グループＹ−１，Ｙ−２，Ｙ−３となる（図９も参照）。【００９９】
次に、管理装置４６のＣＰＵ４８は、ステップ１５２において、仮想サーバＳＶの運用構成つまり運用ルールを決定する。なお、ＣＰＵ４８は、運用ルール構築プロセス５８のステップ１５２を実行することで、図１の稼働管理装置１２における運用ルール構築部１６に含まれる決定部２０として動作する。すなわち、稼働管理装置１２が管理装置４６で実現され、運用ルール構築プロセス５８のステップ１５２を実行することで管理装置４６は稼働管理装置１２の運用ルール構築部１６に含まれる決定部２０として動作される。【０１００】
管理装置４６のＣＰＵ４８は、ステップ１５２において、まず、第１の処理として、構成グループ毎に、仮想サーバＳＶが稼働する物理サーバＢＶの位置を取得する。具体的には、ＣＰＵ４８は、構成グループテーブルＴＢ１に含まれる構成グループ毎に、対象の構成グループに含まれる仮想サーバＳＶの各々が稼働する物理サーバＢＶの位置を、仮想サーバ管理テーブル６６より取得する。第２の処理は、構成グループ毎に、「集中型運用」か「分散型運用」かを判定する。具体的には、ＣＰＵ４８は、構成グループテーブルＴＢ１に含まれる構成グループ毎に、対象の構成グループに含まれる全ての仮想サーバＳＶが１つの物理サーバＢＶで稼働する場合、「集中型運用」と判定する。また、ＣＰＵ４８は、それ以外、すなわち、対象の構成グループに含まれる仮想サーバＳＶが、異なる物理サーバＢＶ上で稼働されている場合、「分散型運用」と判定する。ＣＰＵ４８は、判定結果を構成グループテーブルＴＢ１に更新させる。【０１０１】
図１６に、運用ルール構築プロセス５８のステップ１５２において決定した一例の構成グループテーブルＴＢ１−２を示す。【０１０２】
なお、ステップ１３４の処理では、仮想サーバＳＶが通信に使用したポート番号の情報を取得している。管理装置４６のＣＰＵ４８は、仮想サーバＳＶが通信に使用したポート番号の情報から仮想サーバＳＶの種類（本実施形態では、ウェブサーバ、アプリケーションサーバ及びデータベースサーバ）を特定することができる。ＣＰＵ４８は、仮想サーバＳＶが通信に使用したポート番号の情報から特定した仮想サーバＳＶの種類を、構成グループテーブルＴＢ１に追加することができる（図８も参照）。図８では、ウェブサーバを（WEB）、アプリケーションサーバを（APP）、及びデータベースサーバを（DB）と表記した。【０１０３】
次に、仮想サーバＳＶの移動処理を説明する。コンピュータ間で依存関係を有する複数の仮想サーバＳＶを使用して業務処理を行う場合に、業務処理の処理負荷が増大すること等の理由により、予め定めた装置が、自動的に新規の仮想サーバＳＶを追加（所謂スケールアウト）するときがある。自動的に追加される仮想サーバＳＶは、コンピュータシステム４４のリソースなどの稼働状況に応じて物理サーバＢＶの位置が定められることが一般的である。従って、自動的に追加される仮想サーバＳＶが稼働される物理サーバＢＶの位置が任意となり、業務処理を行うために、依存関係を有する複数の仮想サーバＳＶの稼働位置を、ユーザが意図的に定めてシステムを構築したときの運用ルールは反映されない。そこで、本実施形態では、自動的に追加される仮想サーバＳＶが稼働する物理サーバＢＶの位置を、ユーザの意図に沿った運用ルールに合致するように、仮想サーバＳＶを移動する処理を実行する。仮想サーバＳＶを移動する処理は、管理装置４６で実行される管理プログラム５４に含まれる仮想サーバ移動プロセス６０の実行により処理される。【０１０４】
図１７に、自動的に追加される仮想サーバＳＶの一例を示す。図１７では、物理サーバＡ，Ｂ，Ｃ及び仮想サーバＳＶ１〜ＳＶ６に、自動的に仮想サーバＳＶ７，ＳＶ８，ＳＶ９が追加される関係を示す。また、図１７では、所謂スケールアウトの一例として、物理サーバＢ上で稼働している仮想サーバＳＶ２に対して、スケールアウトした仮想サーバＳＶ７，ＳＶ８が物理サーバＡ，Ｂに自動的に追加された場合を示す。また、他例として、図１７では、物理サーバＡ上で稼働している仮想サーバＳＶ５に対して、スケールアウトした仮想サーバＳＶ９が物理サーバＢに自動的に追加された場合を示す。【０１０５】
図１８に、管理装置４６で実行される管理プログラム５４に含まれる仮想サーバ移動プロセス６０の流れを示す。管理装置４６で仮想サーバ移動プロセス６０が実行されることで、管理装置４６は稼働管理装置１２（図１）のノード移動部２４として動作し、物理サーバＢＶ上の仮想サーバＳＶの移動処理を実行する。図１８に示す処理ルーチンは、管理装置４６の稼働中に、所定時間間隔で繰り返し実行される。なお、図１８に示す処理ルーチンは、繰り返し実行されることに限定されず、ユーザによるキーボード７６やマウス７７等の入力装置の操作指示により、実行されるようにしてもよい。【０１０６】
管理装置４６のＣＰＵ４８は、ステップ１６０において、データベース６４に格納された仮想サーバ通信履歴テーブル７０から仮想サーバＳＶの通信履歴に関する情報を取得し、次のステップ１６２において、新規に仮想サーバＳＶが追加されたか否かを判断する。新規に仮想サーバＳＶが追加されたか否かの判断は、仮想サーバ通信履歴テーブル７０の登録された送信元ＩＰまたは受信先ＩＰを示す情報が、仮想サーバ管理テーブル６６のＩＰアドレスの情報に存在するか否かにより判別できる。仮想サーバＳＶが新規に追加されていない（ステップ１６２で否定判断）場合には、ＣＰＵ４８は、そのまま本処理ルーチンを終了する。一方、新規に仮想サーバＳＶが追加されているとき（ステップ１６２で肯定判断）には、ＣＰＵ４８は、ステップ１６４へ進む。【０１０７】
管理装置４６のＣＰＵ４８は、ステップ１６４において、ステップ１６０で取得した新規に仮想サーバＳＶの情報を、仮想サーバ管理テーブル６６に追加する更新処理を実行する。次に、ＣＰＵ４８は、ステップ１６６において、上述の図１３に示すステップ１２２と同様に、運用ルールを構築したのちに、ステップ１６８へ処理を移行する。【０１０８】
つまり、管理装置４６のＣＰＵ４８は、物理サーバＢＶに関する情報、及び仮想サーバＳＶに関する情報を取得して、仮想サーバＳＶの物理サーバＢＶ上の位置を特定する（図１４に示すステップ１３０〜１３２）。次に、管理装置４６のＣＰＵ４８は、仮想サーバ通信履歴テーブル７０から仮想サーバＳＶの通信履歴を示す情報を取得し、サーバ間通信回数テーブルＴＢ３を更新する（図１４に示すステップ１３４〜１３６）。【０１０９】
図１９に、新規に仮想サーバＳＶが追加されているときのサーバ間通信回数テーブルＴＢ３を示す。物理サーバＡ、Ｂ，Ｃで稼働される仮想サーバＳＶは、仮想サーバＳＶ１〜ＳＶ９の９つである（図１７も参照）。従って、更新されたサーバ間通信回数テーブルＴＢ３は、９つの仮想サーバＳＶ１〜ＳＶ９に外部１及び外部２を加えたテーブルになる。【０１１０】
次に、管理装置４６のＣＰＵ４８は、仮想サーバ間のユークリッド距離を算出することで類似性を示す情報を導出し、サーバ間距離テーブルＴＢ４を更新する（図１４に示すステップ１３８〜１４２）。【０１１１】
図２０に、新規に仮想サーバＳＶが追加されているときのサーバ間距離テーブルＴＢ４を示す。３つの仮想サーバＳＶ７〜ＳＶ９が追加されているので、上記更新されたサーバ間距離テーブルＴＢ４は、９つの仮想サーバＳＶ１〜ＳＶ９の間の距離を示すテーブルとなる。【０１１２】
次に、管理装置４６のＣＰＵ４８は、依存関係を有して稼働する複数の仮想サーバＳＶを表すグループを示す情報を導出する（図１４に示すステップ１４４）。つまり、管理装置４６のＣＰＵ４８は、サーバ間通信回数テーブルＴＢ３を参照し、予め定めた回数を超える通信回数の仮想サーバＳＶを、一連の通信を行っている仮想サーバＳＶとする構成グループとする。【０１１３】
図２１に、グループを示す情報を導出した一例の構成グループテーブルＴＢ１−１を示す。なお、構成グループテーブルＴＢ１（図８）は既に運用ルール管理テーブル７２に登録されている。構成グループテーブルＴＢ１（図８）と、構成グループテーブルＴＢ１−１（図２１）との仮想サーバＳＶを比較すると、仮想サーバＳＶ７，ＳＶ８，ＳＶ９が追加されている。追加されている仮想サーバＳＶ７，ＳＶ８は、構成グループＸであり、追加されている仮想サーバＳＶ９は、構成グループＹである。そこで、後述するように、既存の構成グループテーブルＴＢ１に、追加した仮想サーバＳＶ７，ＳＶ８，ＳＶ９を追加することで、既存の運用ルールを適用することができる。【０１１４】
次に、管理装置４６のＣＰＵ４８は、仮想サーバ間の類似性グループを示す情報を導出する（図１４に示すステップ１４６〜１５０）。つまりＣＰＵ４８は、サーバ間距離テーブルＴＢ４（図２０）を参照し、ユークリッド距離が閾値未満の仮想サーバ同士に類似性があるとして、類似性グループテーブルＴＢ２を更新する。【０１１５】
図２２に、追加した仮想サーバＳＶを含む類似性グループテーブルＴＢ２を示す。なお、類似性グループテーブルＴＢ２（図９）は既に運用ルール管理テーブル７２に登録されている。図９に示す類似性グループテーブルＴＢ２と、図２２に示す類似性グループテーブルＴＢ２との仮想サーバＳＶを比較すると、仮想サーバＳＶ７，ＳＶ８，ＳＶ９が追加されている。追加されている仮想サーバＳＶ７，ＳＶ８は、類似性グループＸ−２であり、追加されている仮想サーバＳＶ９は、類似性グループＹ−３である。【０１１６】
すなわち、図２０に示すサーバ間距離テーブルＴＢ４を参照すると、仮想サーバＳＶ２に対して仮想サーバＳＶ７，ＳＶ８のサーバ間距離を示す情報、すなわちユークリッド距離が閾値未満である。また、仮想サーバＳＶ７と仮想サーバＳＶ８のユークリッド距離も閾値未満である。従って、仮想サーバＳＶ２に対して仮想サーバＳＶ７，ＳＶ８の類似性は高いので、仮想サーバＳＶ７，ＳＶ８は仮想サーバＳＶ２の類似性グループＸ−２とする。また、仮想サーバＳＶ５に対して仮想サーバＳＶ９のサーバ間距離を示す情報、すなわちユークリッド距離が閾値未満である。従って、仮想サーバＳＶ５に対して仮想サーバＳＶ９の類似性は高いので、仮想サーバＳＶ９は仮想サーバＳＶ５の類似性グループＹ−２とする。【０１１７】
次に、管理装置４６のＣＰＵ４８は、仮想サーバＳＶの運用構成つまり運用ルールを決定する（図１４に示すステップ１５２）。【０１１８】
ところで、仮想サーバＳＶ１〜ＳＶ６による構成のときの構成グループテーブルＴＢ１は既に決定されている（図８）。そこで、管理装置４６のＣＰＵ４８は、今回新規に追加された仮想サーバＳＶを、該当する構成グループに追加する。すなわち、ＣＰＵ４８は、構成グループ毎に、追加された仮想サーバＳＶの該当する類似性グループにより、追加された仮想サーバＳＶを示す情報を追加する。従って、新規に仮想サーバＳＶが追加（スピンアウト）以前の運用構成を、新規に仮想サーバＳＶが追加（スピンアウト）した後に、反映させることができる。【０１１９】
なお、ＣＰＵ４８は、運用ルール構築プロセス５８のステップ１４６〜１５０を実行することで、図１の稼働管理装置１２における運用ルール構築部１６に含まれる追加部２２として動作する。すなわち、稼働管理装置１２が管理装置４６で実現され、運用ルール構築プロセス５８のステップ１４６〜１５０を実行することで管理装置４６は稼働管理装置１２の運用ルール構築部１６に含まれる追加部２２として動作される。【０１２０】
図２３に、追加した仮想サーバＳＶを含む構成グループテーブルＴＢ１を示す。ところで、構成グループテーブルＴＢ１に、追加された仮想サーバＳＶの該当する類似性グループにより、追加された仮想サーバＳＶを示す情報を追加すると、追加された仮想サーバＳＶの稼働位置が実際と異なる場合がある。【０１２１】
図２４に、図２３に示す構成グループテーブルＴＢ１に対応する類似性グループテーブルＴＢ２を示す。図２２と図２４とを比較すると、仮想サーバＳＶ７〜ＳＶ９が稼働する物理サーバＢＶの位置が相違する。物理サーバＢＶの位置が相違するのは、追加された仮想サーバＳＶの情報を類似性グループにより構成グループテーブルＴＢ１へ追加したためである。従って、追加された仮想サーバＳＶ７〜ＳＶ９が稼働する位置を、運用ルールに沿った物理サーバＢＶの位置へ移動させることが好ましい。【０１２２】
そこで、管理装置４６のＣＰＵ４８は、図１８に示すステップ１６６の処理が終了すると、ステップ１６８において、新規に追加された仮想サーバＳＶを移動させる必要が有るか否かを判断する。仮想サーバＳＶを移動させる必要が有るか否かの判断は、新規に追加された仮想サーバＳＶについて、構成グループテーブルＴＢ１で示される位置と図２２に示す類似性グループテーブルＴＢ２で示される位置を比較し、相違するか否かを判断することで判別できる。新規に追加された仮想サーバＳＶが稼働する物理サーバＢＶの位置が、構成グループテーブルＴＢ１と一致する場合（ステップ１６８で否定）には、仮想サーバＳＶを移動させる必要はないため、そのまま本処理ルーチンを終了する。一方、新規追加の仮想サーバＳＶの稼働位置が、構成グループテーブルＴＢ１と不一致の場合（ステップ１６８で肯定）には、仮想サーバＳＶを移動させる必要があるため、ステップ１７０において仮想サーバＳＶの移動処理を行った後に本処理ルーチンを終了する。【０１２３】
図２５に、管理装置４６で実行される仮想サーバ移動プロセス６０に含まれる仮想サーバ移動処理の流れを示す。【０１２４】
管理装置４６のＣＰＵ４８は、ステップ１８０において、図１８に示す処理によって決定された構成グループテーブルＴＢ１の情報を取得し、次のステップ１８２において、構成グループテーブルＴＢ１に含まれる１つの仮想サーバＳＶの現在位置を取得する。次に、ＣＰＵ４８は、類似性グループテーブルＴＢ２で設定されている物理サーバＢＶの位置と現在の位置とが相違するか否かを判断する。すなわち、ステップ１８２で取得した仮想サーバＳＶが稼働する物理サーバＢＶの位置と、構成グループテーブルＴＢ１に登録された物理サーバＢＶの位置とが相違するか否かを判断する。ＣＰＵ４８は、物理サーバＢＶの位置が一致しステップ１８４で否定判断のときには、ステップ１９２へ処理を移行し、物理サーバＢＶの位置が不一致で肯定判断のときにはステップ１８６へ進む。【０１２５】
ステップ１８６では、ＣＰＵ４８は、対象の仮想サーバＳＶが構成グループテーブルＴＢ１に登録された物理サーバＢＶの位置へ移動可能か否かを判断する。ステップ１８６の判断処理は、対象の仮想サーバＳＶが稼働するためのリソースが移動先の物理サーバＢＶのリソースより小さい（未満）か否かを判別することにより判断処理できる。ＣＰＵ４８は、対象の仮想サーバＳＶが移動先の物理サーバＢＶで稼働可能なときは、ステップ１８６で肯定されてステップ１８８へ進み、稼働不可能なときはステップ１８６で否定されてステップ１９２へ進む。【０１２６】
ステップ１８８では、ＣＰＵ４８は、対象の仮想サーバＳＶを構成グループテーブルＴＢ１に登録された物理サーバＢＶの位置へ移動させ、次のステップ１９０において、類似性グループテーブルＴＢ２を更新する。【０１２７】
ステップ１９２では、ＣＰＵ４８は、構成グループテーブルＴＢ１に残存する仮想サーバＳＶが有るか否かを判断する。ＣＰＵ４８は、仮想サーバＳＶが残存する場合にステップ１９２で否定判断し、ステップ１８４へ戻り、残存する一仮想サーバＳＶに対して上述の移動処理を実行する。一方、ＣＰＵ４８は、全ての仮想サーバＳＶに対して上記の処理が終了すると、ステップ１９２で否定判断し、本処理ルーチンを終了する。【０１２８】
図２６に、管理装置４６で実行される仮想サーバ移動プロセス６０により、仮想サーバＳＶが移動された後の構成を示す。図２６に示すように、図２３に示す構成グループテーブルＴＢ１に沿った仮想サーバＳＶの配置となっていることが理解される。【０１２９】
なお、本実施形態では、管理プログラム５４に含まれる運用ルール構築プロセス５８で、類似性グループを求め、仮想サーバＳＶを関係づけた一例を示したが、開示の技術は類似性グループを使用することに限定されない。例えば、類似性グループ間の緊密度グループを作成し、緊密度グループを用いることができる。例えば、類似性グループ間での一定期間のネットワーク通信量の総和を比較し、ネットワーク通信の総和が大きいグループを緊密度の高い関係とする。緊密度の高い関係の仮想サーバＳＶは、集中構成すなわち１つの物理サーバＢＶ上で稼働されることが好ましい。例えば、物理サーバＢＶのリソース不足等により、集中構成により運用されているグループの一部の仮想サーバＳＶを他の物理サーバＢＶへ分散させる場合、緊密度の高い関係の仮想サーバＳＶを緊密度グループとして、緊密度グループ単位で移動させる。これにより、集中構成によるユーザの意図を反映させつつ、効率的に仮想サーバＳＶを稼働させることができる。【０１３０】
また、本実施形態では、所謂スケールアウトとして知られている仮想サーバＳＶを追加するときの一例を説明したが、開示の技術は、所謂スケールアウトとして知られる仮想サーバＳＶの追加に限定されるものではない。例えば、新規の業務処理を追加するときに、仮想サーバＳＶを追加することに対しても容易に適用することができる。【０１３１】
図２７に、依存関係を有する複数のコンピュータの一例として、管理装置４６により管理されるコンピュータシステム４４における２台のコンピュータ３２，３６において機能される物理サーバＢＶ及び仮想サーバＳＶの関係を示す。コンピュータ３２は、物理サーバＡとして機能され、かつ３つの集中構成による仮想サーバＳＶ１０，ＳＶ１１，ＳＶ１２が構築された場合を示す。また、コンピュータ３６は、物理サーバＢとして機能されるが、仮想サーバＳＶは構築されていない場合を示す。【０１３２】
図２８に、新規の業務処理のために、図２７に示すコンピュータシステム４４に、３つの集中構成による仮想サーバＳＶ１３，ＳＶ１４，ＳＶ１５を、物理サーバＢ上に新規に構築する場合を示す。図２８に示す物理サーバＢ上に新規に構築する仮想サーバＳＶ１３，ＳＶ１４，ＳＶ１５は、図１４に示す運用ルール構築プロセス５８による処理によって、運用ルールを作成できる。【０１３３】
また、図２９に、新規の業務処理のために、図２７に示すコンピュータシステム４４に、２つの分散構成による仮想サーバＳＶ１６，ＳＶ１７を、物理サーバＢと物理サーバＢに分散して新規に構築する場合を示す。図２９に示す物理サーバＡ，Ｂ上に分散して新規に構築する仮想サーバＳＶ１６，ＳＶ１７も、図１４に示す運用ルール構築プロセス５８による処理によって、運用ルールを作成できる。【０１３４】
以上説明したように、本実施形態によれば、システムの稼働開始時の運用ルールを、自動的に検知して作成することができる。また、新規追加された仮想サーバＳＶについても自動的に運用ルールを作成できる。従って、既存業務のスケールアウトや新規業務の追加によって、追加された仮想サーバＳＶの運用ルールを仮想サーバＳＶの稼働状態に沿って作成できる。また、作成した運用ルールに従って仮想サーバＳＶを再配置することができる。これにより、データセンターなど、多数の業務が混在した環境において、業務負荷の変化に応じて、仮想サーバＳＶを自動的に作成した場合であっても、ユーザの手動操作等により業務処理を停止させることなく、継続できる。従って、業務処理の管理を自動化することができる。【０１３５】
ところで、コンピュータを使用して業務処理を行うコンピュータシステムでは、コンピュータの稼働を停止させることなく、業務処理を継続する必要がある。しかし、リソース不足やハードウェア資源の故障等により物理サーバＢＶに異常が発生する等の緊急状態の物理サーバＢＶについて、対象の物理サーバＢＶで実行している仮想サーバＳＶを、迅速に移動させる必要がある。【０１３６】
緊急状態の物理サーバＢＶで実行している仮想サーバＳＶを迅速に移動させるためには、緊急状態の物理サーバＢＶで実行している仮想サーバＳＶの稼働状況すなわち運用ルールを把握した上で移動しなければならない。本実施形態では、物理サーバＢＶ上で稼働している仮想サーバＳＶの運用ルールを自動的に作成できるので、緊急状態の物理サーバＢＶで実行している仮想サーバＳＶを迅速に移動させることができる。すなわち、緊急状態の物理サーバＢＶで実行している仮想サーバＳＶを迅速に移動させる処理を、仮想サーバ移動プロセス６０に追加すればよい。【０１３７】
図３０に、緊急状態のときにおける仮想サーバ移動プロセス６０の流れを示す。図３０に示す仮想サーバ移動プロセス６０は、管理プログラム５４に含まれる仮想サーバ移動プロセス６０に追加すればよい。なお、図３０に示す仮想サーバ移動プロセス６０は、管理装置４６の稼働中に、所定時間間隔で繰り返し実行される。なお、図１８に示す処理ルーチンは、繰り返し実行されることに限定されず、ユーザによるキーボード７６やマウス７７等の入力装置の操作指示により、実行されるようにしてもよい。【０１３８】
管理装置４６のＣＰＵ４８は、ステップ２００において、物理サーバＢＶに異常が検知されたか否かを判断する。物理サーバＢＶに異常が検知されないときは、ステップ２００で否定判断され、ＣＰＵ４８は、そのまま本処理ルーチンを終了する。一方、物理サーバＢＶに異常が検知されると、ステップ２００で肯定判断され、ＣＰＵ４８は、ステップ２０２へ進み、データベース６４に格納された運用ルール管理テーブル７２の構成グループテーブルＴＢ１を参照し、ステップ２０４へ進む。【０１３９】
次にＣＰＵ４８は、ステップ２０４において、構成グループテーブルＴＢ１に含まれる１つの構成グループを指定し、ステップ２０６へ進む。ステップ２０６では、ＣＰＵ４８は、ステップ２０４で指定した構成グループ内にステップ２００で検知された物理サーバＢＶ上で稼働する仮想サーバＳＶが有るか否かを判断する。ステップ２０６で否定判断されたとき、ＣＰＵ４８は、ステップ２２２へ進む。一方、ステップ２０６で肯定判断されたとき、ＣＰＵ４８は、ステップ２０６へ進み、仮想サーバＳＶのリソース使用量の合計を算出する。【０１４０】
次に、ＣＰＵ４８は、ステップ２１０において、１つの物理サーバＢＶを指定し、次のステップ２１２において、対象の物理サーバＢＶがステップ２０８で求めた仮想サーバＳＶのリソース使用量の合計値を満たすか否かを判断する。ステップ２１２で否定判断されたとき、ＣＰＵ４８は、ステップ２２０へ進み、肯定判断されたとき、ステップ２１４へ進む。ステップ２１４では、ＣＰＵ４８は、ステップ２１０で指定した物理サーバＢＶへ仮想サーバＳＶを移動する。次に、ＣＰＵ４８は、ステップ２１６において、構成グループテーブルＴＢ１を更新し、対気のステップ２１８で類似性グループテーブルＴＢ２を更新する。【０１４１】
次に、ＣＰＵ４８は、ステップ２２０において、残存する物理サーバＢＶが有るか否かを判断し、否定判断されるとステップ２２２へ進み、肯定判断されると、ステップ２１０へ戻る。次に、ＣＰＵ４８は、ステップ２２２において、残存する構成グループが有るか否かを判断し、否定判断されると本処理ルーチンを終了し、肯定判断されるとステップ２０４へ戻る。【０１４２】
図３０に示す処理の一例に、構成グループの運用ルールが集中構成の場合がある。構成グループの運用ルールが集中構成のとき、まず、構成グループに含まれる１または複数の仮想サーバＳＶのリソース使用量の合計を算出する。そして、移動候補の物理サーバＢＶから運用可能な物理サーバＢＶを特定し、仮想サーバＳＶを移動させる。なお、移動候補のすべての物理サーバＢＶが、構成グループの仮想サーバＳＶを単独の物理サーバＢＶで実行できるほどリソースがないと判定された場合には、緊密度グループを用いて移動できる。すなわち、構成グループ内の類似性グループの中で緊密度の高いグループをサブグループとして再構成し、複数の物理サーバＢＶに分散させて移動させることができる。【０１４３】
図３０に示す処理の他例に、構成グループの運用ルールが分散構成の場合がある。構成グループの運用ルールが分散構成のとき、まず、構成グループの中で異常が検知された物理サーバＢＶで実行している類似性グループ内の仮想サーバＳＶのリソース使用量の合計を算出する。次に、構成グループ内の他の類似性グループが実行されている物理サーバＢＶ以外から移動先の物理サーバＢＶを特定し、移動させる。【０１４４】
図３１に、構成グループの運用ルールが集中構成の場合に、仮想サーバ移動プロセス６０により、仮想サーバＳＶが移動された後の構成を示す。図３１に示すように、構成グループテーブルＴＢ１に沿って仮想サーバＳＶが移動されることが理解される。【０１４５】
以上説明したように、物理サーバで業務処理が困難な緊急状態になる物理サーバで実行されている仮想サーバＳＶについて、運用ルールに従って移動できる。従って、緊急状態の物理サーバで実行している仮想サーバＳＶの稼働状況すなわち運用ルールを把握した上で、仮想サーバＳＶを移動させることができ、業務処理を停止させることはない。【０１４６】
なお、上記では物理サーバに含まれる仮想サーバＳＶに機能を有するサーバの一例を説明したが、仮想サーバＳＶに機能を有するサーバに限定されるものではない。例えば、物理サーバを仮想サーバＳＶを含めた何れかのコンピュータについて適用可能である。【０１４７】
また、上記では３階層システムをモデルとしたシステムを一例としたが、３階層システムをモデルとしたシステムに限定されるものではなく、上記説明した要旨を逸脱しない範囲において、各種の改良及び変更を行っても良いのはもちろんである。【０１４８】
また、上記では複数の仮想サーバＳＶを含むグループの一例を説明したが、グループは仮想サーバＳＶのみを含むことに限定されるものではない。例えば、物理サーバを含んでも良い。【０１４９】
また、上記ではプログラムがコンピュータの記憶部に予め記憶（インストール）されている態様を説明したが、プログラムは、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭ等の記録媒体に記録されている形態で提供することも可能である。【０１５０】
本明細書に記載された全ての文献、特許出願及び技術規格は、個々の文献、特許出願及び技術規格が参照により取り込まれることが具体的かつ個々に記された場合と同程度に、本明細書中に参照により取り込まれる。
【図１】
2014033882.tif 000004
【図２】
2014033882.tif 000005
【図３】
2014033882.tif 000006
【図４】
2014033882.tif 000007
【図５】
2014033882.tif 000008
【図６】
2014033882.tif 000009
【図７】
2014033882.tif 000010
【図８】
2014033882.tif 000011
【図９】
2014033882.tif 000012
【図１０】
2014033882.tif 000013
【図１１】
2014033882.tif 000014
【図１２】
2014033882.tif 000015
【図１３】
2014033882.tif 000016
【図１４】
2014033882.tif 000017
【図１５】
2014033882.tif 000018
【図１６】
2014033882.tif 000019
【図１７】
2014033882.tif 000020
【図１８】
2014033882.tif 000021
【図１９】
2014033882.tif 000022
【図２０】
2014033882.tif 000023
【図２１】
2014033882.tif 000024
【図２２】
2014033882.tif 000025
【図２３】
2014033882.tif 000026
【図２４】
2014033882.tif 000027
【図２５】
2014033882.tif 000028
【図２６】
2014033882.tif 000029
【図２７】
2014033882.tif 000030
【図２８】
2014033882.tif 000031
【図２９】
2014033882.tif 000032
【図３０】
2014033882.tif 000033
【図３１】
2014033882.tif 000034
【手続補正書】
【提出日】平成27年2月13日(2015.2.13)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンピュータ上で仮想的なコンピュータとして稼働する複数のノードを含み、かつ稼働する際にノード間で相互に通信を行う依存関係を有する複数のノードを含む複数のノードにおいて、ノードの現在位置及び該現在位置で示されるノードが稼働するコンピュータの現在位置を示す位置情報を含む通信情報を用いてノード間で前記通信を行うときの前記通信情報に基づいて、前記依存関係を有する複数のノードを示すグループ情報を導出する導出部と、
前記導出部で導出されたグループ情報に含まれる複数のノードの各々の前記位置情報に基づいて、前記グループ情報に含まれる複数のノードが１つのコンピュータ上で稼働することを示す稼働情報または複数のコンピュータ上の各々で稼働することを示す稼働情報を、前記グループ情報に含まれる前記複数のノードに対して決定する決定部と、
を備えた稼働管理装置。
【請求項２】
前記導出部は、前記複数のノードの間で相互に通信を行う通信回数に基づいて、所定通信回数以上のノード間通信が実行された複数のノードを示す情報を、前記グループ情報として求める請求項１に記載の稼働管理装置。
【請求項３】
前記コンピュータ上で仮想的なコンピュータとして稼働するノードを追加するときに、追加したノードと、前記複数のノードの各々との類似度を求め、求めた類似度に基づいて、追加したノードに対して所定値以上の類似度を示すノードを含む前記グループ情報に、前記追加したノードを示す情報を追加する追加部
を含む請求項１又は請求項２に記載の稼働管理装置。
【請求項４】
前記追加部は、前記追加したノードと前記複数のノードのうちの何れか１つのノードとのユークリッド距離を前記類似度として求める請求項３に記載の稼働管理装置。
【請求項５】
前記追加したノードの前記グループ情報、及び前記追加したノードの前記稼働情報に基づいて、前記追加したノードが稼働するコンピュータの現在位置が、前記所定値以上の類似度を示すノードが稼働するコンピュータの現在位置に不一致のとき、前記所定値以上の類似度を示すノードが稼働するコンピュータに、前記追加したノードを移動する追加ノード移動部を含む請求項３又は請求項４に記載の稼働管理装置。
【請求項６】
少なくとも１つのノードを含むコンピュータが稼働困難な緊急状態のとき、前記緊急状態のコンピュータで稼働するノードを、該ノードが含まれる前記グループ情報の前記稼働情報に対応させて前記前記緊急状態のコンピュータと異なるコンピュータに移動する緊急ノード移動部を含む請求項１乃至請求項５の何れか１項に記載の稼働管理装置。
【請求項７】
コンピュータ上で仮想的なコンピュータとして稼働する複数のノードを含み、かつ稼働する際にノード間で相互に通信を行う依存関係を有する複数のノードを含む複数のノードにおいて、ノードの現在位置及び該現在位置で示されるノードが稼働するコンピュータの現在位置を示す位置情報を含む通信情報を用いてノード間で前記通信を行うときの前記通信情報に基づいて、前記依存関係を有する複数のノードを示すグループ情報を導出し、
導出されたグループ情報に含まれる複数のノードの各々の前記位置情報に基づいて、前記グループ情報に含まれる複数のノードが１つのコンピュータ上で稼働することを示す稼働情報または複数のコンピュータ上の各々で稼働することを示す稼働情報を、前記グループ情報に含まれる前記複数のノードに対して決定する、
稼働管理方法。
【請求項８】
前記グループ情報の導出では、前記複数のノードの間で相互に通信を行う通信回数に基づいて、所定通信回数以上のノード間通信が実行された複数のノードを示す情報を、前記グループ情報として求める請求項７に記載の稼働管理方法。
【請求項９】
前記コンピュータ上で仮想的なコンピュータとして稼働するノードを追加するときに、追加したノードと、前記複数のノードの各々との類似度を求め、求めた類似度に基づいて、追加したノードに対して所定値以上の類似度を示すノードを含む前記グループ情報に、前記追加したノードを示す情報を追加する処理を含む請求項７又は請求項８に記載の稼働管理方法。
【請求項１０】
前記類似度は、前記追加したノードと前記複数のノードのうちの何れか１つのノードとのユークリッド距離を求める請求項９に記載の稼働管理方法。
【請求項１１】
前記追加したノードの前記グループ情報、及び前記追加したノードの前記稼働情報に基づいて、前記追加したノードが稼働するコンピュータの現在位置が、前記所定値以上の類似度を示すノードが稼働するコンピュータの現在位置に不一致のとき、前記所定値以上の類似度を示すノードが稼働するコンピュータに、前記追加したノードを移動する
請求項９又は請求項１０に記載の稼働管理方法。
【請求項１２】
少なくとも１つのノードを含むコンピュータが稼働困難な緊急状態のとき、前記緊急状態のコンピュータで稼働するノードを、該ノードが含まれる前記グループ情報の前記稼働情報に対応させて前記前記緊急状態のコンピュータと異なるコンピュータに移動する
請求項７乃至請求項１１の何れか１項に記載の稼働管理方法。
【請求項１３】
コンピュータ上で仮想的なコンピュータとして稼働する複数のノードを含み、かつ稼働する際にノード間で相互に通信を行う依存関係を有する複数のノードを含む複数のノードにおいて、ノードの現在位置及び該現在位置で示されるノードが稼働するコンピュータの現在位置を示す位置情報を含む通信情報を用いてノード間で前記通信を行うときの前記通信情報に基づいて、前記依存関係を有する複数のノードを示すグループ情報を導出し、
導出されたグループ情報に含まれる複数のノードの各々の前記位置情報に基づいて、前記グループ情報に含まれる複数のノードが１つのコンピュータ上で稼働することを示す稼働情報または複数のコンピュータ上の各々で稼働することを示す稼働情報を、前記グループ情報に含まれる前記複数のノードに対して決定する、
処理をコンピュータにより実行させるための稼働管理プログラム。
【請求項１４】
コンピュータに、請求項７〜請求項１２の何れか１項記載の稼働管理方法に係る処理を実行させるための稼働管理プログラム。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００１
【補正方法】変更
【補正の内容】
【０００１】
稼働管理装置、稼働管理方法、及び稼働管理プログラムに関する。
【手続補正書】
【提出日】平成28年2月26日(2016.2.26)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンピュータ上で仮想的なコンピュータとして稼働する複数のノードについて、前記複数のノードの各々の間で相互に通信を行う通信回数に基づいて、ノード間で相互に通信を行う依存関係を有する複数のノードを表すグループを示すグループ情報を導出する導出部と、
前記導出部で導出されたグループ情報が示すグループに含まれる複数のノードの各々が稼働するコンピュータの現在位置を示す位置情報に基づいて、前記グループに含まれる複数のノードが１つのコンピュータ上で稼働することを示す稼働情報、または前記グループに含まれる複数のノードの各々が複数のコンピュータ上の各々で稼働することを示す稼働情報を、前記グループに対して決定する決定部と、
を備えた稼働管理装置。
【請求項２】
前記導出部は、ノード間の前記通信回数が所定通信回数以上のノード同士がグループであることを示す前記グループ情報を導出する請求項１に記載の稼働管理装置。
【請求項３】
前記コンピュータ上で仮想的なコンピュータとして稼働するノードを追加するときに、各ノードについて、該ノードと他のノードとの通信回数を要素とするベクトルを用いて、追加したノードについての前記ベクトルと前記複数のノードの各々についての前記ベクトルとの類似度を、前記追加したノードと前記複数のノードの各々との類似度として求め、求めた類似度に基づいて、追加したノードに対して所定値以上の類似度を示すノードを含むグループを示す前記グループ情報に、前記追加したノードを示す情報を追加する追加部を含む請求項１又は請求項２に記載の稼働管理装置。
【請求項４】
前記追加部は、前記追加したノードについての前記ベクトルと前記複数のノードの各々についての前記ベクトルとのユークリッド距離を、前記追加したノードと前記複数のノードの各々との類似度として求める請求項３に記載の稼働管理装置。
【請求項５】
前記追加したノードの前記グループ情報、及び前記追加したノードの前記稼働情報に基づいて、前記追加したノードが稼働するコンピュータの現在位置が、前記所定値以上の類似度を示すノードが稼働するコンピュータの現在位置に不一致のとき、前記所定値以上の類似度を示すノードが稼働するコンピュータに、前記追加したノードを移動する追加ノード移動部を含む請求項３又は請求項４に記載の稼働管理装置。
【請求項６】
少なくとも１つのノードを含むコンピュータが稼働困難な緊急状態のとき、前記緊急状態のコンピュータで稼働するノードを、該ノードが含まれるグループを示す前記グループ情報の前記稼働情報に対応させて前記緊急状態のコンピュータと異なるコンピュータに移動する緊急ノード移動部を含む請求項１〜請求項５の何れか１項に記載の稼働管理装置。
【請求項７】
コンピュータ上で仮想的なコンピュータとして稼働する複数のノードについて、前記複数のノードの各々の間で相互に通信を行う通信回数に基づいて、ノード間で相互に通信を行う依存関係を有する複数のノードを表すグループを示すグループ情報を導出し、
導出されたグループ情報が示すグループに含まれる複数のノードの各々が稼働するコンピュータの現在位置を示す位置情報に基づいて、前記グループに含まれる複数のノードが１つのコンピュータ上で稼働することを示す稼働情報、または前記グループに含まれる複数のノードの各々が複数のコンピュータ上の各々で稼働することを示す稼働情報を、前記グループに対して決定する、
処理をコンピュータに実行させる稼働管理方法。
【請求項８】
前記グループ情報の導出では、ノード間の前記通信回数が所定通信回数以上のノード同士がグループであることを示す前記グループ情報を導出する請求項７に記載の稼働管理方法。
【請求項９】
前記コンピュータ上で仮想的なコンピュータとして稼働するノードを追加するときに、各ノードについて、該ノードと他のノードとの通信回数を要素とするベクトルを用いて、追加したノードについての前記ベクトルと前記複数のノードの各々についての前記ベクトルとの類似度を、前記追加したノードと前記複数のノードの各々との類似度として求め、求めた類似度に基づいて、追加したノードに対して所定値以上の類似度を示すノードを含むグループを示す前記グループ情報に、前記追加したノードを示す情報を追加する処理を含む請求項７又は請求項８に記載の稼働管理方法。
【請求項１０】
前記追加したノードについての前記ベクトルと前記複数のノードの各々についての前記ベクトルとのユークリッド距離を、前記追加したノードと前記複数のノードの各々との類似度として求める請求項９に記載の稼働管理方法。
【請求項１１】
前記追加したノードの前記グループ情報、及び前記追加したノードの前記稼働情報に基づいて、前記追加したノードが稼働するコンピュータの現在位置が、前記所定値以上の類似度を示すノードが稼働するコンピュータの現在位置に不一致のとき、前記所定値以上の類似度を示すノードが稼働するコンピュータに、前記追加したノードを移動する
請求項９又は請求項１０に記載の稼働管理方法。
【請求項１２】
少なくとも１つのノードを含むコンピュータが稼働困難な緊急状態のとき、前記緊急状態のコンピュータで稼働するノードを、該ノードが含まれるグループを示す前記グループ情報の前記稼働情報に対応させて前記緊急状態のコンピュータと異なるコンピュータに移動する請求項７〜請求項１１の何れか１項に記載の稼働管理方法。
【請求項１３】
コンピュータ上で仮想的なコンピュータとして稼働する複数のノードについて、前記複数のノードの各々の間で相互に通信を行う通信回数に基づいて、ノード間で相互に通信を行う依存関係を有する複数のノードを表すグループを示すグループ情報を導出し、
導出されたグループ情報が示すグループに含まれる複数のノードの各々が稼働するコンピュータの現在位置を示す位置情報に基づいて、前記グループに含まれる複数のノードが１つのコンピュータ上で稼働することを示す稼働情報、または前記グループに含まれる複数のノードの各々が複数のコンピュータ上の各々で稼働することを示す稼働情報を、前記グループに対して決定する、
処理をコンピュータにより実行させるための稼働管理プログラム。
【請求項１４】
コンピュータに、請求項７〜請求項１２の何れか１項記載の稼働管理方法に係る処理を実行させるための稼働管理プログラム。
【国際調査報告】
2014033882.tif 000035
2014033882.tif 000036
2014033882.tif 000037
2014033882.tif 000038