(57)【要約】【課題】計算資源を効率的に使用可能とすること。【解決手段】それぞれが相互に負荷分散を図る複数の計算資源を含む、複数の計算資源群とネットワークを介して接続される情報処理装置は、前記各計算資源群に属する各計算資源の状態を監視する監視部と、前記監視部によって監視される前記各計算資源の状態に基づいて、使用できない計算資源の割合が閾値以上である計算資源群を特定する特定部と、前記特定部によって計算資源群が特定されなかった場合には、いずれかの計算資源群に対する要求の割り当て先を、当該計算資源群に属する計算資源の中から選択し、前記特定部によって計算資源群が特定された場合には、当該計算資源群に対する要求の割り当て先を、当該計算資源群において使用可能な計算資源と、他の計算資源群に属する計算資源との中から選択する選択部と、を有する。【選択図】図３
2016177324.tif 000002
【特許請求の範囲】
【請求項１】
それぞれが相互に負荷分散を図る複数の計算資源を含む、複数の計算資源群とネットワークを介して接続される情報処理装置であって、
前記各計算資源群に属する各計算資源の状態を監視する監視部と、
前記監視部によって監視される前記各計算資源の状態に基づいて、使用できない計算資源の割合が閾値以上である計算資源群を特定する特定部と、
前記特定部によって計算資源群が特定されなかった場合には、いずれかの計算資源群に対する要求の割り当て先を、当該計算資源群に属する計算資源の中から選択し、前記特定部によって計算資源群が特定された場合には、当該計算資源群に対する要求の割り当て先を、当該計算資源群において使用可能な計算資源と、他の計算資源群に属する計算資源との中から選択する選択部と、
を有することを特徴とする情報処理装置。
【請求項２】
前記複数の計算資源群は、相互に実行可能な処理が異なる計算資源群を含み、
前記選択部は、前記特定部によって計算資源群が特定された場合には、当該計算資源群に対する要求の割り当て先を、当該計算資源群において使用可能な計算資源と、当該計算資源群と同じ処理を実行可能な他の計算資源群に属する計算資源との中から選択する、
ことを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記選択部は、前記特定部によって計算資源群が特定された後に、当該計算資源群が前記特定部によって特定されなくなった場合に、当該計算資源群に対する要求の割り当て先を、当該計算資源群に属する計算資源の中から選択する、
ことを特徴とする請求項１又は２記載の情報処理装置。
【請求項４】
前記選択部は、前記監視部によって監視される前記各計算資源の負荷が最小である計算資源を選択する、
ことを特徴とする請求項１乃至３いずれか一項記載の情報処理装置。
【請求項５】
それぞれが相互に負荷分散を図る複数の計算資源を含む、複数の計算資源群と、請求項１乃至４いずれか一項記載の情報処理装置とを含む情報処理システム。
【請求項６】
それぞれが相互に負荷分散を図る複数の計算資源を含む、複数の計算資源群とネットワークを介して接続される情報処理装置が、
前記各計算資源群に属する各計算資源の状態を監視する監視手順と、
前記監視手順において監視される前記各計算資源の状態に基づいて、使用できない計算資源の割合が閾値以上である計算資源群を特定する特定手順と、
前記特定手順において計算資源群が特定されなかった場合には、いずれかの計算資源群に対する要求の割り当て先を、当該計算資源群に属する計算資源の中から選択し、前記特定手順において計算資源群が特定された場合には、当該計算資源群に対する要求の割り当て先を、当該計算資源群において使用可能な計算資源と、他の計算資源群に属する計算資源との中から選択する選択手順と、
を実行することを特徴とする情報処理方法。
【請求項７】
それぞれが相互に負荷分散を図る複数の計算資源を含む、複数の計算資源群とネットワークを介して接続される情報処理装置に、
前記各計算資源群に属する各計算資源の状態を監視する監視手順と、
前記監視手順において監視される前記各計算資源の状態に基づいて、使用できない計算資源の割合が閾値以上である計算資源群を特定する特定手順と、
前記特定手順において計算資源群が特定されなかった場合には、いずれかの計算資源群に対する要求の割り当て先を、当該計算資源群に属する計算資源の中から選択し、前記特定手順において計算資源群が特定された場合には、当該計算資源群に対する要求の割り当て先を、当該計算資源群において使用可能な計算資源と、他の計算資源群に属する計算資源との中から選択する選択手順と、
を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理システム、情報処理方法、及びプログラムに関する。
【背景技術】
【０００２】
現在、複数のサーバを接続したクラスタ構成として、負荷分散を行うロードバランスクラスタや、システムを冗長化するフェイルオーバクラスタ等が知られている。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
しかし、今までのロードバランスクラスタでは、クラスタを構成するノードが故障によって大きく数を減らすと、性能が大きく低下する。
【０００４】
また、フェイルオーバクラスタ構成では、動作中の運用系とは別に、待機系のノードを用意する必要があり、正常動作中はリソースが無駄になるという問題があった。
【０００５】
本発明は、上記の点に鑑みてなされたものであって、計算資源を効率的に使用可能とすることを目的とする。
【課題を解決するための手段】
【０００６】
そこで上記課題を解決するため、それぞれが相互に負荷分散を図る複数の計算資源を含む、複数の計算資源群とネットワークを介して接続される情報処理装置は、前記各計算資源群に属する各計算資源の状態を監視する監視部と、前記監視部によって監視される前記各計算資源の状態に基づいて、使用できない計算資源の割合が閾値以上である計算資源群を特定する特定部と、前記特定部によって計算資源群が特定されなかった場合には、いずれかの計算資源群に対する要求の割り当て先を、当該計算資源群に属する計算資源の中から選択し、前記特定部によって計算資源群が特定された場合には、当該計算資源群に対する要求の割り当て先を、当該計算資源群において使用可能な計算資源と、他の計算資源群に属する計算資源との中から選択する選択部と、を有する。
【発明の効果】
【０００７】
計算資源を効率的に使用可能とすることができる。
【図面の簡単な説明】
【０００８】
【図１】本発明の実施の形態における情報処理システムの構成例を示す図である。
【図２】本発明の実施の形態における管理サーバのハードウェア構成例を示す図である。
【図３】本発明の実施の形態における管理サーバの機能構成例を示す図である。
【図４】いずれかのクラスタに対するリクエストに応じて実行される処理手順の一例を説明するためのシーケンス図である。
【図５】クラスタ情報記憶部の構成例を示す図である。
【図６】ノード情報記憶部の構成例を示す図である。
【図７】クラスタ間のフェイルオーバ及びフェイルバックの制御処理の処理手順の一例を説明するためのフローチャートである。
【図８】フェイルオーバ時におけるクラスタ情報記憶部及びノード情報記憶部の更新例を示す図である。
【図９】フェイルオーバ元のクラスタに対するリクエストに応じて実行される処理手順の一例を説明するためのシーケンス図である。
【発明を実施するための形態】
【０００９】
以下、図面に基づいて本発明の実施の形態を説明する。図１は、本発明の実施の形態における情報処理システムの構成例を示す図である。図１において、情報処理システム１は、クラスタ２０−１〜クラスタ２０−ｎ等（以下、それぞれを区別しない場合、単に「クラスタ２０」という。）の複数のクラスタ２０と、管理サーバ１０とを含む。各クラスタ２０と管理サーバ１０とは、ＬＡＮ（Local Area Network）等のネットワークを介して通信可能に接続される。また、各クラスタ２０は、ＬＡＮ等のネットワークを介して相互に通信可能に接続される。更に、クラスタ２０は、ＬＡＮ又はインターネット等のネットワークを介して、１以上のクライアント装置４０に接続される。
【００１０】
クライアント装置４０は、各クラスタ２０に対してリクエスト（要求）を送信する装置である。例えば、ＰＣ（Personal Computer）、スマートフォン、タブレット端末等がクライアント装置４０であってもよいし、複合機、プリンタ、スキャナ等の画像形成装置がクライアント装置４０であってもよい。また、その他の機器がクライアント装置４０であってもよい。
【００１１】
各クラスタ２０のそれぞれは、負荷分散を図るためにクラスタリングされた複数の計算ノード２２を含むことで、ロードバランスクラスタを構成する。すなわち、同一のクラスタ２０に属する各計算ノード２２は、同じ機能に関する処理を実行可能である。但し、各クラスタ２０は、相互に同じ処理が実行可能であるとは限らない。なお、本実施の形態において、基本的に、各クラスタ２０は、運用系である。
【００１２】
各計算ノード２２は、例えば、Ｗｅｂサーバ、データベースサーバ、プリントサーバ、スキャンサーバとして機能してもよい。また、各計算ノード２２は、科学技術演算を行ってもよい。プリントサーバとは、クライアント装置４０から送信される印刷データをスプールするコンピュータである。また、スキャンサーバとは、画像形成装置としてのクライアント装置４０において原稿から読み取られた画像データを記憶するコンピュータである。但し、各計算ノード２２は、必ずしもそれぞれがＰＵ、主記憶装置、及び補助記憶装置等を備えたコンピュータでなくてもよい。ＣＰＵごと又はＣＰＵコアごとに計算ノード２２が区別されてもよい。
【００１３】
各クラスタ２０は、また、１つのゲートウェイ２１を含む。各ゲートウェイ２１は、当該ゲートウェイ２１が属するクラスタ２０に対する、クライアント装置４０からのリクエストを受信する。各ゲートウェイ２１は、また、受遺したリクエストの割当先の計算ノード２２を管理サーバ１０に問い合わせる。
【００１４】
なお、各クラスタ２０のゲートウェイ２１の符号の末尾には、当該ゲートウェイ２１が属するクラスタ２０の符号の枝番と同じ枝番が付されている。また、各計算ノード２２の符号の枝番の１０の位の値は、当該計算ノード２２が属するクラスタ２０の符号の枝番と同じ値である。各計算ノード２２の符号の枝番の１の位の値は、同じクラスタ２０内における各計算ノード２２を区別するための番号である。
【００１５】
管理サーバ１０は、各クラスタ２０に属する計算ノード２２の状態を監視し、状態の監視結果に基づいて、クライアント装置４０からの各クラスタ２０に対する要求の割り当て先の計算ノード２２を選択する１以上のコンピュータである。
【００１６】
図２は、本発明の実施の形態における管理サーバのハードウェア構成例を示す図である。図２の管理サーバ１０は、それぞれバスＢで相互に接続されているドライブ装置１００、補助記憶装置１０２、メモリ装置１０３、ＣＰＵ１０４、及びインタフェース装置１０５等を有する。
【００１７】
管理サーバ１０での処理を実現するプログラムは、ＣＤ−ＲＯＭ等の記録媒体１０１によって提供される。プログラムを記憶した記録媒体１０１がドライブ装置１００にセットされると、プログラムが記録媒体１０１からドライブ装置１００を介して補助記憶装置１０２にインストールされる。但し、プログラムのインストールは必ずしも記録媒体１０１より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置１０２は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
【００１８】
メモリ装置１０３は、プログラムの起動指示があった場合に、補助記憶装置１０２からプログラムを読み出して格納する。ＣＰＵ１０４は、メモリ装置１０３に格納されたプログラムに従って管理サーバ１０に係る機能を実行する。インタフェース装置１０５は、ネットワークに接続するためのインタフェースとして用いられる。
【００１９】
図３は、本発明の実施の形態における管理サーバの機能構成例を示す図である。図３において、管理サーバ１０は、クラスタ管理部１１、及びクラスタ２０ごとのノード管理部１２等を有する。これら各部は、管理サーバ１０にインストールされる１以上のプログラムが、ＣＰＵ１０４に実行させる処理により実現される。管理サーバ１０は、また、クラスタ情報記憶部１３、及びクラスタ２０ごとのノード情報記憶部１４等を利用する。クラスタ情報記憶部１３及び各ノード情報記憶部１４は、例えば、補助記憶装置１０２、又は管理サーバ１０にネットワークを介して接続可能な記憶装置等を用いて実現可能である。
【００２０】
各ノード管理部１２は、当該ノード管理部１２が対応するクラスタ２０に属する各計算ノード２２の状態（負荷状態や故障の有無（使用の可否）等）を監視し、当該各計算ノード２２の状態を示す情報を、ノード情報記憶部１４に記憶する。ノード情報記憶部１４には、各ノードに属する計算ノード２２ごとに、当該計算ノード２２の識別情報や当該計算ノード２２の状態を示す情報等を記憶する。ノード管理部１２は、また、ノード情報記憶部１４に記憶された情報に基づいて、当該ノード管理部１２に対応するクラスタ２０に対するリクエストの割当先の計算ノード２２を選択する。なお、各ノード管理部１２及び各ノード情報記憶部１４の符号には、それぞれが対応するクラスタ２０と同じ枝番が付されている。
【００２１】
クラスタ管理部１１は、クラスタ管理部１１は、各ノード情報記憶部１４に記憶された情報に基づいて、クラスタ２０間のフェイルオーバ又はフェイルバック等の制御を行う。
【００２２】
以下、情報処理システム１において実行される処理手順について説明する。図４は、いずれかのクラスタに対するリクエストに応じて実行される処理手順の一例を説明するためのシーケンス図である。
【００２３】
ステップＳ１０１において、クライアント装置４０が、クラスタ２０−１宛のリクエストを送信すると、当該リクエスト（以下、「対象リクエスト」という。）は、ゲートウェイ２１−１によって受信される。ゲートウェイ２１−１は、クラスタ２０−１のクラスタＩＤを指定して、対象リクエストをいずれの計算ノード２２に割り当てるべきか（対象リクエストに対していずれの計算ノード２２を使用するべきか）を、管理サーバ１０に問い合わせる（Ｓ１０２）。クラスタＩＤは、クラスタ２０ごとの識別情報である。
【００２４】
クラスタ管理部１１は、問い合わせに指定されたクラスタＩＤに対応するノード管理部１２を、クラスタ情報記憶部１３を参照して特定する。
【００２５】
図５は、クラスタ情報記憶部の構成例を示す図である。図５において、クラスタ情報記憶部１３は、クラスタ２０ごとに、クラスタＩＤ、ノード管理部ＩＤ、アプリＩＤ、及びフェイルオーバ先等の項目の値を記憶する。
【００２６】
クラスタＩＤは、上記した通りである。なお、本実施の形態において、クラスタＩＤは、「クラスタ＜対応するクラスタ２０の符号の枝番＞」の形式によって表現されている。例えば、「クラスタ１」は、クラスタ２０−１のクラスタＩＤである。ノード管理部ＩＤは、クラスタＩＤに係るクラスタ２０に対応するノード管理部１２の識別情報である。アプリＩＤは、クラスタＩＤに係るクラスタ２０において実装されているアプリケーションの識別情報である。アプリＩＤは、クラスタＩＤに係るクラスタ２０が実行可能な処理を示す情報であるともいえる。フェイルオーバ先は、クラスタＩＤに係るクラスタ２０について他のクラスタ２０へのフェイルオーバが行われた場合に、当該他のクラスタ２０のクラスタＩＤが記録される項目である。
【００２７】
クラスタ管理部１１へのレコードの登録は、例えば、管理者からのクラスタ２０の新規生成の指示の入力に応じてクラスタ管理部１１が実行する。この際、クラスタＩＤは、クラスタ管理部１１によって自動的に生成されてもよい。また、アプリＩＤは、管理者によるクラスタ２０の新規生成の指示に伴って入力される。クラスタ管理部１１は、新たなクラスタ２０に対応するノード管理部１２を生成し、当該ノード管理部１２に対応するノード管理部ＩＤを、当該クラスタ２０に対応するレコードに記録する。なお、ノード管理部１２は、例えば、プロセスやスレッド等であってもよい。この場合、ノード管理部ＩＤは、プロセスＩＤ又はスレッドＩＤであってもよい。
【００２８】
図４に戻る。ステップＳ１０２において問い合わせを受けたクラスタ管理部１１は、当該問い合わせに指定されたクラスタＩＤに対応するノード管理部ＩＤを特定し、当該ノード管理部ＩＤに係るノード管理部１２に対して、対象リクエストの割当先の選択を要求する（Ｓ１０３）。ここでは、クラスタ２０−１に対応するノード管理部１２−１に対して、対象リクエストの割り当て先の選択が要求される。
【００２９】
ノード管理部１２−１は、当該要求に応じ、ノード情報記憶部１４−１を参照して、対象リクエストの割当先の計算ノード２２を選択する。
【００３０】
図６は、ノード情報記憶部の構成例を示す図である。図６において、ノード情報記憶部１４は、対応するクラスタ２０に属する計算ノード２２ごとに、ノード名、アドレス、状態、所属クラスタ等の項目の値を記憶する。
【００３１】
ノード名は、計算ノード２２ごとの名前である。なお、本実施の形態において、ノード名は、「ノード＜対応する計算ノード２２の符号の枝番＞」の形式によって表現されている。例えば、「ノード１１」は、計算ノード２２−１１のノード名である。アドレスは、計算ノード２２の通信用のアドレス（例えば、ＩＰアドレス）である。状態は、計算ノード２２の負荷状態又は計算ノード２２の故障の有無（使用の可否）を示す情報である。所属クラスタは、計算ノード２２が所属するクラスタ２０のクラスタＩＤである。
【００３２】
なお、ノード情報記憶部１４の各レコードは、例えば、管理者によって登録される。但し、状態は、ノード管理部１２が、当該ノード管理部１２に対応するクラスタ２０に属する各計算ノード２２を監視することにより取得及び更新される。計算ノード２２の状態の監視は、公知技術が用いられて行われればよい。例えば、ノード管理部１２は、各計算ノード２２に対して、定期的に状態を問い合わせてもよい。
【００３３】
ノード管理部１２−１は、ノード情報記憶部１４−１に記憶されているレコードの中で、状態の値が「故障」ではなく、かつ、状態によって示される負荷の値が最小である計算ノード２２を対象リクエストの割当先として選択する。図６の例では、ノード名が「ノード１２」である計算ノード２２−１２が選択される。但し、現時点から遡って所定期間の負荷の平均値等が最小である計算ノード２２が、対象リクエストの割当先として選択されてもよい。また、他の方法によって対象リクエストの割当先が選択されてもよい。なお、「故障」は、計算ノード２２の機能を正常に実行することができない状態である。例えば、計算ノード２２との通信が不通である場合に、当該計算ノード２２は故障であると判定されてもよい。又は、計算ノード２２において何らかのアラームが発生している場合に、当該計算ノード２２は、故障であると判定されてもよい。
【００３４】
続いて、ノード管理部１２−１は、割当先として選択された計算ノード２２−１２のアドレスを、ゲートウェイ２１−１に通知する（Ｓ１０４）。ゲートウェイ２１−１は、当該アドレス宛に、対象リクエストを転送する（Ｓ１０５）。計算ノード２２−１２は、対象リクエストに応じた処理を実行し、処理結果を含むレスポンス（応答）を、クライアント装置４０に返信する（Ｓ１０６）。
【００３５】
続いて、クラスタ２０間のフェイルオーバ及びフェイルバックの制御処理について説明する。
【００３６】
図７は、クラスタ間のフェイルオーバ及びフェイルバックの制御処理の処理手順の一例を説明するためのフローチャートである。図７の処理は、例えば、各ノード管理部１２によって、各計算ノード２２の状態が取得され、ノード情報記憶部１４が更新されるに際に実行される。なお、各ノード管理部１２による定期的な状態の取得のタイミングは、必ずしも一致していなくてもよい。したがって、クラスタ２０ごとに、相互に異なるタイミングで、図７の処理手順が実行されてもよい。
【００３７】
ステップＳ２０１において、いずれかのノード管理部１２が、当該ノード管理部１２に対応するクラスタ２０に属する各計算ノード２２の状態を取得し、当該ノード管理部１２に対応するノード情報記憶部１４の状態の値を更新すると、ノード管理部１２は、クラスタ管理部１１に対して、当該クラスタ２０のクラスタＩＤと、当該ノード情報記憶部１４に記憶されている情報（以下、「ノード情報」という。）とを通知する。なお、ステップＳ２０２以降は、ノード情報記憶部１４において状態の値が「故障」である計算ノード２２の数が変化した場合にのみ実行されてもよい。
【００３８】
続いて、クラスタ管理部１１は、通知されたクラスタＩＤに係るクラスタ２０（以下、「対象クラスタ２０」という。）が、他のクラスタ２０へフェイルオーバ中であるか否かを判定する（Ｓ２０２）。当該判定は、クラスタ情報記憶部１３において、対象クラスタ２０に関してフェイルオーバ先が記憶されているか否かに基づいて行うことができる。フェイルオーバ先が記憶されていれば、対象クラスタ２０は、フェイルオーバ中である。
【００３９】
対象クラスタ２０がフェイルオーバ中ではない場合（Ｓ２０２でＮＯ）、クラスタ管理部１１は、通知されたノード情報に基づいて、対象クラスタ２０の故障率が閾値α以上であるか否かを判定する（Ｓ２０３）。クラスタ２０の故障率とは、当該クラスタ２０に属する計算ノード２２の総数に対する、状態が「故障」である計算ノード２２の数の割合である。
【００４０】
対象クラスタ２０の故障率が閾値α以上である場合（すなわち、対象クラスタ２０が、故障率が閾値α以上であるクラスタ２０として特定された場合）（Ｓ２０３でＹＥＳ）、クラスタ管理部１１は、対象クラスタ２０に対する全てのアプリＩＤを含むアプリＩＤに対応する他のクラスタ２０の有無を、クラスタ情報記憶部１３を参照して判定する（Ｓ２０４）。
【００４１】
対象クラスタ２０に対する全てのアプリＩＤを含むアプリＩＤに対応する他のクラスタ２０が有る場合（Ｓ２０４でＹＥＳ）、クラスタ管理部１１は、対象クラスタ２０から他のクラスタ２０へのフェイルオーバを実行する（Ｓ２０５）。具体的には、クラスタ管理部１１は、クラスタ情報記憶部１３において、対象クラスタ２０に対応するレコードのフェイルオーバ先に、当該他のクラスタ２０のクラスタＩＤを記録する。また、クラスタ管理部１１は、対象クラスタ２０に関してステップＳ２０１において通知されたノード情報のうち、状態が「故障」でないレコードの追加を当該他のクラスタ２０に対応するノード管理部１２に要求する。すなわち、対象クラスタ２０の中で、使用可能な計算ノード２２が、フェイルオーバ先の他のクラスタ２０に含められる。そうすることで、フェイルオーバ先のクラスタ２０の負荷の増加を緩和することができる。
【００４２】
例えば、クラスタ２０−１からクラスタ２０−２へフェイルオーバが行われる場合、クラスタ情報記憶部１３、ノード情報記憶部１４−１、及びノード情報記憶部１４−２は、図８に示されるように更新される。
【００４３】
図８は、フェイルオーバ時におけるクラスタ情報記憶部及びノード情報記憶部の更新例を示す図である。（１）に示されるように、クラスタ２０１に対応するレコードのフェイルオーバ先に、クラスタ２０−２のクラスタＩＤが記録される。
【００４４】
また、（２）に示されるように、フェイルオーバ元のクラスタ２０に対応するノード情報記憶部１４−１における、状態が「故障」でないレコードが、フェイルオーバ先のクラスタ２０に対応するノード情報記憶部１４−２にコピーされる。この際、コピー先のレコードの所属クラスタの値は、変更されない。
【００４５】
なお、フェイルオーバ元の対象クラスタ２０が共有ディスクを有する場合には、当該共有ディスク内のデータが、フェイルオーバ先のクラスタ２０の共有ディスクにコピーされる。
【００４６】
一方、対象クラスタ２０がフェイルオーバ中である場合（Ｓ２０２でＹＥＳ）、クラスタ管理部１１は、通知されたノード情報に基づいて、対象クラスタ２０の故障率が閾値α未満に回復したか否かを判定する（Ｓ２０６）。ここでの故障率の分母は、対象クラスタ２０に本来属する計算ノード２２の総数である。すなわち、フェイルオーバによって他のクラスタ２０に移動された計算ノード２２の数も、当該総数に含まれる。また、分子の数には、現時点において対象クラスタ２０に本来属する計算ノード２２の中で、状態が「故障」である計算ノード２２の数である。
【００４７】
対象クラスタ２０の故障率が閾値α未満である場合（すなわち、対象クラスタ２０が、故障率が閾値α以上であるクラスタ２０であると特定されなくなった場合）（Ｓ２０６でＹＥＳ）、クラスタ管理部１１は、対象クラスタ２０に関してフェイルバックを実行する（Ｓ２０７）。
【００４８】
具体的には、クラスタ管理部１１は、クラスタ情報記憶部１３において、対象クラスタ２０に対応するレコードのフェイルオーバ先にクラスタＩＤが記録されているフェイルオーバ先のクラスタ２０に対応するノード情報記憶部１４から、所属クラスタの値が対象クラスタ２０のクラスタＩＤであるレコードを削除させる。クラスタ管理部１１は、また、クラスタ情報記憶部１３において、対象クラスタ２０に対応するレコードのフェイルオーバ先の値を削除する。
【００４９】
続いて、クラスタ２０−１からクラスタ２０−２へフェイルオーバ中の期間において、クラスタ２０−１においてクライアント装置４０からのリクエストが受信された場合に実行される処理手順について説明する。
【００５０】
図９は、フェイルオーバ元のクラスタに対するリクエストに応じて実行される処理手順の一例を説明するためのシーケンス図である。図９中、図４と同一ステップには同一ステップ番号を付し、その説明は省略する。図９において、クラスタ情報記憶部１３、クノード情報記憶部１４−１、及びノード情報記憶部１４−２は、図８に示される状態であるとする。
【００５１】
ステップＳ１０２における問い合わせに応じ、クラスタ管理部１１は、クラスタ情報記憶部１３において、問い合わせに指定されているクラスタＩＤに係るレコードのフェイルオーバ先に、クラスタ２０−２のクラスタＩＤが記録されていることに基づいて、クラスタ２０−２に対応するノード管理部１２−２に対して、対象リクエストの割当先の選択を要求する（Ｓ２０３）。
【００５２】
ノード管理部１２−２は、当該要求に応じ、ノード情報記憶部１４−２を参照して、対象リクエストの割当先の計算ノード２２を選択する。すなわち、ノード情報記憶部１４−２に記憶されているレコードの中で、状態の値が「故障」ではなく、かつ、状態によって示される負荷の値が最小である計算ノード２２を対象リクエストの割当先として選択する。ここで、ノード情報記憶部１４−２は、図８の（２）に示される状態である。したがって、ノード管理部１２−２は、クラスタ２０−２に属する計算ノード２２だけでなく、クラスタ２０−１に属する計算ノード２２−１２をも含む計算ノード２２の集合の中から、対象リクエストの割当先を選択する。ここで、ノード名が「ノード２２」である計算ノード２２−２２が選択される。なお、仮に、計算ノード２２−１２の負荷が最小であれば、計算ノード２２−１２が選択される。
【００５３】
続いて、ノード管理部１２−２は、割当先として選択された計算ノード２２−２２のアドレスを、ゲートウェイ２１−１に通知する（Ｓ２０４）。ゲートウェイ２１−１は、当該アドレス宛に、対象リクエストを転送する（Ｓ２０５）。計算ノード２２−２２は、対象リクエストに応じた処理を実行し、処理結果を含むレスポンス（応答）を、クライアント装置４０に返信する（Ｓ２０６）。この場合、クライアント装置４０は、リクエストの送信先を変えることなく、リクエストの送信先であるクラスタ２０−１とは別のクラスタ２０を利用することができる。
【００５４】
なお、クラスタ２０−１についてフェイルバックが実行された後に、クラスタ２０−１においてリクエストが受信された場合には、図４において説明した処理手順が実行される。
【００５５】
上述したように、本実施の形態によれば、複数のロードバランスクラスタ２０が構築される。クラスタ２０単位でフェイルオーバが行われる場合には、フェイルオーバ先のクラスタ２０ではフェイルオーバ元のロードバランスクラスタ２０の一部の計算資源を使用することができる。その結果、計算資源を効率的に使用可能とすることができ、例えば、フェイルオーバ先のクラスタ２０の性能の低下を緩和することができる。
【００５６】
なお、本実施の形態において、管理サーバ１０は、情報処理装置の一例である。ノード管理部１２の集合は、監視部及び選択部の一例である。クラスタ管理部１１は、特定部の一例である。クラスタ２０は、計算資源群の一例である。計算ノード２２は、計算資源の一例である。
【００５７】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００５８】
１            情報処理システム
１０          管理サーバ
１１          クラスタ管理部
１２          ノード管理部
１３          クラスタ情報記憶部
１４          ノード情報記憶部
２０          クラスタ
２１          ゲートウェイ
２２          計算ノード
４０          クライアント装置
１００        ドライブ装置
１０１        記録媒体
１０２        補助記憶装置
１０３        メモリ装置
１０４        ＣＰＵ
１０５        インタフェース装置
Ｂ            バス
【先行技術文献】
【特許文献】
【００５９】
【特許文献１】特許第５２０８３２４号公報
【図１】
2016177324.tif 000003
【図２】
2016177324.tif 000004
【図３】
2016177324.tif 000005
【図４】
2016177324.tif 000006
【図５】
2016177324.tif 000007
【図６】
2016177324.tif 000008
【図７】
2016177324.tif 000009
【図８】
2016177324.tif 000010
【図９】
2016177324.tif 000011