(57)【特許請求の範囲】
【請求項１】
自装置とともにクラスタを構成する複数の他の情報処理装置に対し、予め定められた処理の実行を要求するハートビートパケットを送信するハートビート送信手段と、
前記ハートビートパケットを受信した前記他の情報処理装置が前記予め定められた処理の実行に要した処理時間を含む、前記ハートビートパケットに対する応答パケットを前記他の情報処理装置から受信する応答パケット受信手段と、
前記ハートビートパケットの送受信時間及び前記処理時間に基づいて、前記複数の他の情報処理装置からフェールオーバー先を決定する決定手段と
を有する情報処理装置。
【請求項２】
前記決定手段は、前記複数の他の情報処理装置ごとの前記送受信時間及び前記処理時間を比較し、前記送受信時間と前記処理時間の和の時間が最小である前記他の情報処理装置をフェールオーバー先として決定する
請求項１に記載の情報処理装置。
【請求項３】
前記ハートビート送信手段は、予め定められた時間間隔で前記ハートビートパケットを送信し、
前記決定手段は、前記ハートビート送信手段が送信した最新のハートビートパケットに対する前記送受信時間及び前記処理時間である最新の応答結果と、前記最新のハートビートパケットよりも前に前記ハートビート送信手段が送信した過去のハートビートパケットに対する前記送受信時間及び前記処理時間である過去の応答結果に基づいて、フェールオーバー先を決定する
請求項１又は２に記載の情報処理装置。
【請求項４】
前記決定手段は、フェールオーバー先を決定する際、前記過去の応答結果について、古い応答結果ほど小さい重みづけとなるよう重みづけを行う
請求項３に記載の情報処理装置。
【請求項５】
前記ハートビート送信手段は、予め定められた時間間隔で前記ハートビートパケットを送信し、
前記ハートビート送信手段が送信した最新のハートビートパケットに対する前記送受信時間及び前記処理時間である最新の応答結果と、前記最新のハートビートパケットよりも前に前記ハートビート送信手段が送信した過去のハートビートパケットに対する前記送受信時間及び前記処理時間である過去の応答結果に基づいて、前記ハートビート送信手段が送信する将来のハートビートパケットに対する前記送受信時間及び前記処理時間の予測値である予測の応答結果を算出する予測手段
をさらに有し、
前記決定手段は、前記最新の応答結果と、前記予測の応答結果に基づいて、フェールオーバー先を決定する
請求項１又は２に記載の情報処理装置。
【請求項６】
前記決定手段は、フェールオーバー先を決定する際、前記予測の応答結果について、将来の応答結果ほど小さい重みづけとなるよう重みづけを行う
請求項５に記載の情報処理装置。
【請求項７】
現用系又は待機系のいずれかとして動作する、クラスタを構成する複数の情報処理装置を備え、
前記複数の情報処理装置のうち少なくとも現用系として動作する情報処理装置は、
他の前記情報処理装置のそれぞれに対し、予め定められた処理の実行を要求するハートビートパケットを送信するハートビート送信手段と、
前記ハートビートパケットを受信した他の前記情報処理装置が前記予め定められた処理の実行に要した処理時間を含む、前記ハートビートパケットに対する応答パケットを他の前記情報処理装置から受信する応答パケット受信手段と、
前記ハートビートパケットの送受信時間及び前記処理時間に基づいて、前記複数の他の情報処理装置からフェールオーバー先を決定する決定手段と
を有し、
前記複数の情報処理装置のうち待機系として動作する情報処理装置は、
前記ハートビートパケットによる要求に応じて前記予め定められた処理を実行する処理実行手段と、
前記処理時間を含む前記応答パケットを送信する応答パケット送信手段と
を有する
クラスタシステム。
【請求項８】
前記複数の情報処理装置のうち待機系として動作する情報処理装置は、さらに、
前記ハートビート送信手段と、
前記応答パケット受信手段と、
前記複数の情報処理装置のうち現用系として動作する情報処理装置から受信した前記応答パケットに含まれる前記処理時間が、予め定められた閾値を超えるか否かを判定する処理時間判定手段と、
前記処理時間判定手段により前記処理時間が前記閾値を超えると判定された場合、前記現用系として動作する情報処理装置に対しフェールオーバーの実施を要求するフェールオーバー要手段と
を有する
請求項７に記載のクラスタシステム。
【請求項９】
クラスタを構成する複数の情報処理装置のいずれかである第１の情報処理装置から、前記複数の情報処理装置から前記第１の情報処理装置を除いた複数の他の情報処理装置である第２の情報処理装置に対し、予め定められた処理の実行を要求するハートビートパケットを送信するハートビート送信ステップと、
前記ハートビートパケットを受信した前記第２の情報処理装置が前記予め定められた処理の実行に要した処理時間を含む、前記ハートビートパケットに対する応答パケットを前記第２の情報処理装置から前記第１の情報処理装置が受信する応答パケット受信ステップと、
前記第１の情報処理装置が前記ハートビートパケットの送受信時間及び前記処理時間に基づいて、前記第２の情報処理装置の中からフェールオーバー先を決定する決定ステップと
を有するクラスタリング方法。
【請求項１０】
複数の他の情報処理装置とともにクラスタを構成する情報処理装置のコンピュータに、
前記複数の他の情報処理装置に対し、予め定められた処理の実行を要求するハートビートパケットを送信するハートビート送信ステップと、
前記ハートビートパケットを受信した前記他の情報処理装置が前記予め定められた処理の実行に要した処理時間を含む、前記ハートビートパケットに対する応答パケットを前記他の情報処理装置から受信する応答パケット受信ステップと、
前記ハートビートパケットの送受信時間及び前記処理時間に基づいて、前記複数の他の情報処理装置からフェールオーバー先を決定する決定ステップと
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、クラスタシステム、クラスタリング方法、及びプログラムに関する。
【背景技術】
【０００２】
近年、クラウド環境でのシステム構築が増えてきている。これに伴って、災害発生時などでも業務を継続可能とする仕組みのひとつであるＨＡ（High Availability：高可用性）クラスタシステムもクラウド環境で利用及び運用可能な仕組みにしていく必要がある。
【０００３】
クラウド環境は、物理環境とは異なり、一台一台のノードが固定されているわけではない。そのため、いずれかのノードが停止すると、新たなノードが起動する。ノードは、クラウド環境ごとのエリアに分かれて管理されており、クラスタを構成するノードが入れ替わるたびに性能に影響する可能性がある。
【０００４】
ＨＡクラスタシステムは、実際にサービスを提供する現用系のノードと、現用系のノードに障害等が発生した場合にサービスを引き継いで提供する待機系のノードで構成される。すなわち、ＨＡクラスタシステムは、現用系のノードに障害等が発生した場合、フェールオーバーを実施する。
【０００５】
上述の通り、クラウド環境において、クラスタを構成するノードはひとつのエリアに固定されているわけではない。すなわち、クラスタを構成するノードが、クラウド環境ごとのライフサイクル（インスタンスの停止又は起動などといったサイクル)に応じて、クラウド環境上の別のエリアのノードに切り替わることがある。エリアが変更された影響で元のエリアに比べてネットワークの応答速度が低下したり、別のノードに切り替わることでノードの性能が不定になったりする恐れがある。このため、フェールオーバーが行われる場合、いずれのノードがフェールオーバー先として選択されるかによってクラスタシステムの性能が左右される。
【０００６】
フェールオーバー後のクラスタシステムにより提供されるサービスの質は重要である。これに関し、特許文献１では、要求されるサービスの水準に応じたフェールオーバーを実現するため、第１ノードに障害が発生した場合に、第１ノードが管理する複数のソフトウェアリソースについて、優先順位にしたがって第１のノードから第２のノードへのフェールオーバーを実施するクラスタシステムについて開示している。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００６−２６０３５７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
フェールオーバー先の候補となるノードが複数ある場合、これら候補のうちいずれがフェールオーバー先となるかによって、フェールオーバー後のクラスタシステムの性能が異なる。したがって、フェールオーバー先の候補となるノードが複数ある場合において、最も性能のよいノードをフェールオーバー先として選択することが求められている。
【０００９】
特許文献１に記載されたクラスタシステムでは、フェールオーバー対象のソフトウェアリソースを優先順位に従ってフェールオーバーする技術について開示するに留まり、複数のフェールオーバー先から最適なノードを選択することについては開示されていない。
【００１０】
本発明の目的は、このような課題を解決するためになされたものであり、複数のフェールオーバー先の候補から、性能面で最適なフェールオーバー先を選択することができる情報処理装置、クラスタシステム、クラスタリング方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【００１１】
本発明の一態様にかかる情報処理装置は、自装置とともにクラスタを構成する複数の他の情報処理装置に対し、予め定められた処理の実行を要求するハートビートパケットを送信するハートビート送信手段と、前記ハートビートパケットを受信した前記他の情報処理装置が前記予め定められた処理の実行に要した処理時間を含む、前記ハートビートパケットに対する応答パケットを前記他の情報処理装置から受信する応答パケット受信手段と、前記ハートビートパケットの送受信時間及び前記処理時間に基づいて、前記複数の他の情報処理装置からフェールオーバー先を決定する決定手段とを有する。
【００１２】
また、本発明の一態様にかかるクラスタシステムは、現用系又は待機系のいずれかとして動作する、クラスタを構成する複数の情報処理装置を備え、前記複数の情報処理装置のうち少なくとも現用系として動作する情報処理装置は、他の前記情報処理装置のそれぞれに対し、予め定められた処理の実行を要求するハートビートパケットを送信するハートビート送信手段と、前記ハートビートパケットを受信した他の前記情報処理装置が前記予め定められた処理の実行に要した処理時間を含む、前記ハートビートパケットに対する応答パケットを他の前記情報処理装置から受信する応答パケット受信手段と、前記ハートビートパケットの送受信時間及び前記処理時間に基づいて、前記複数の他の情報処理装置からフェールオーバー先を決定する決定手段とを有し、前記複数の情報処理装置のうち待機系として動作する情報処理装置は、前記ハートビートパケットによる要求に応じて前記予め定められた処理を実行する処理実行手段と、前記処理時間を含む前記応答パケットを送信する応答パケット送信手段とを有する。
【００１３】
また、本発明の一態様にかかるクラスタリング方法は、クラスタを構成する複数の情報処理装置のいずれかである第１の情報処理装置から、前記複数の情報処理装置から前記第１の情報処理装置を除いた複数の他の情報処理装置である第２の情報処理装置に対し、予め定められた処理の実行を要求するハートビートパケットを送信するハートビート送信ステップと、前記ハートビートパケットを受信した前記第２の情報処理装置が前記予め定められた処理の実行に要した処理時間を含む、前記ハートビートパケットに対する応答パケットを前記第２の情報処理装置から前記第１の情報処理装置が受信する応答パケット受信ステップと、前記第１の情報処理装置が前記ハートビートパケットの送受信時間及び前記処理時間に基づいて、前記第２の情報処理装置の中からフェールオーバー先を決定する決定ステップとを有する。
【００１４】
また、本発明の一態様にかかるプログラムは、複数の他の情報処理装置とともにクラスタを構成する情報処理装置のコンピュータに、前記複数の他の情報処理装置に対し、予め定められた処理の実行を要求するハートビートパケットを送信するハートビート送信ステップと、前記ハートビートパケットを受信した前記他の情報処理装置が前記予め定められた処理の実行に要した処理時間を含む、前記ハートビートパケットに対する応答パケットを前記他の情報処理装置から受信する応答パケット受信ステップと、前記ハートビートパケットの送受信時間及び前記処理時間に基づいて、前記複数の他の情報処理装置からフェールオーバー先を決定する決定ステップとを実行させるプログラムである。
【発明の効果】
【００１５】
本発明によれば、複数のフェールオーバー先の候補から、性能面で最適なフェールオーバー先を選択することができる情報処理装置、クラスタシステム、クラスタリング方法、及びプログラムを提供することができる。
【図面の簡単な説明】
【００１６】
【図１】実施の形態の概要にかかる情報処理装置の構成を示すブロック図である。
【図２】実施の形態１にかかるクラスタシステムの構成を示すブロック図である。
【図３】実施の形態１にかかるクラスタシステムの他の構成を示すブロック図である。
【図４】実施の形態１にかかるノードの構成を示すブロック図である。
【図５】実施の形態１にかかるクラスタウェアの構成を示すブロック図である。
【図６】実施の形態１にかかるクラスタシステムにおけるハートビートパケットの送信の様子を示す模式図である。
【図７】記憶部に記憶された送信時刻、受信時刻及び処理時間の例を示す図である。
【図８】実施の形態１にかかるクラスタシステムにおけるハートビートパケットの送受信動作の一例を示すシーケンスチャートである。
【図９】実施の形態１にかかる決定部によるフェールオーバー先の決定動作の流れを示すフローチャートである。
【図１０】実施の形態１にかかるクラスタシステムの構成の一例を示すブロック図であり、ノードが切り替わる前の構成を示している。
【図１１】図１０に示されるクラスタシステムについて、ノードが切り替わった後の構成を示している。
【図１２】実施の形態２にかかるクラスタウェアの構成を示すブロック図である。
【図１３】実施の形態２にかかる予測部による予測について示す図である。
【図１４】実施の形態２にかかるクラスタシステムにおけるフェールオーバー先の決定動作について示すフローチャートである。
【図１５】待機系であるノードが取得した応答結果のリストの一例を示す。
【図１６】実施の形態３にかかるクラスタウェアの構成を示すブロック図である。
【図１７】実施の形態３にかかるクラスタウェアにおけるフェールオーバーの要求動作の一例について示すフローチャートである。
【発明を実施するための形態】
【００１７】
＜本発明にかかる実施の形態の概要＞
実施の形態の説明に先立って、本発明にかかる実施の形態の概要を説明する。図１は、実施の形態の概要にかかる情報処理装置１０の構成を示すブロック図である。情報処理装置１０は、他の図示しない複数の情報処理装置とともにクラスタを構成する。情報処理装置１０は、自装置から他の情報処理装置へ、又は他の情報処理装置から自装置へとフェールオーバーを実施する。ここで、情報処理装置１０は、図１に示されるように、ハートビート送信部１０１と、応答パケット受信部１０２と、決定部１０３とを有する。
【００１８】
ハートビート送信部１０１は、情報処理装置１０とともにクラスタを構成する上述の複数の他の情報処理装置に対し、予め定められた処理の実行を要求するハートビートパケット（以下、処理要求ＨＢパケットという）を送信する。予め定められた処理は、演算内容が予め定められた、不変である処理である。この予め定められた処理の一例としては、例えば、円周率の計算などといった定常状態において数秒程度で完了する処理が挙げられるが、これに限られない。
【００１９】
処理要求ＨＢパケットを受信した各情報処理装置は、それぞれ、予め定められた処理を実行する。そして、処理要求ＨＢパケットを受信した各情報処理装置は、この予め定められた処理の実行に要した処理時間を含む応答パケットを情報処理装置１０に対して送信する。
【００２０】
応答パケット受信部１０２は、処理要求ＨＢパケットに対する応答パケットを他の各情報処理装置から受信する。決定部１０３は、処理要求ＨＢパケットの送受信時間及びこの処理時間に基づいて、複数の他の情報処理装置からフェールオーバー先を決定する。
【００２１】
このように、情報処理装置１０は、フェールオーバー先の候補である情報処理装置ごとに、情報処理装置の負荷状況、通信の負荷状況を確認する。そして、確認した負荷状況に基づいて、最適なフェールオーバー先を決定することができる。したがって、各情報処理装置の負荷状況が動的に変化する環境下であっても、性能面で最適なフェールオーバー先を動的に選択することができる。
【００２２】
＜実施の形態１＞
以下、実施の形態１について説明する。図２は、実施の形態１にかかるクラスタシステム１の構成を示すブロック図である。図２に示すように、クラスタシステム１は、複数のノード（図２に示した例では、ノード１０＿１、１０＿２、及び１０＿３）を有し、これらノードによりクラスタが構成されている。図２に示した例では、ノード１０＿１及びノード１０＿２は、エリア２に属するノードである。また、ノード１０＿３は、エリア３に属するノードである。ここで、エリア２とエリア３は、クラウド環境において、それぞれ地理的に離れた領域である。つまり、エリアは、地理的に他と区別可能な領域をいう。このため、例えば、エリア２とエリア３は、物理的な設備が別々になっている。各エリアは、ネットワーク４により相互に通信可能に接続されている。したがって、クラスタシステム１を構成する各ノードは、ネットワーク４又はエリア内の図示しないネットワークを介して、相互に通信可能に接続されている。
【００２３】
ここで、「ノード」とは、ソフトウェアを実行するハードウェアや、仮想マシン等に相当するものであり、典型的には、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）の動作単位に対応するものである。なお、本明細書において、ノードは情報処理装置と称されることもある。本実施の形態において、ノードは、仮想マシンを使用したクラウドコンピューティング基盤を用いた環境であるクラウド環境により実現される。
【００２４】
クラスタシステム１は、現用系として動作するノードと、待機系として動作するノードとを有する。例えば、ある時点において、ノード１０＿１が現用系として動作し、ノード１０＿２及びノード１０＿３が待機系として動作する。クラスタシステム１は、通常時、現用系として動作しているノードにより所定のサービスを提供し、現用系として動作しているノードに障害等が発生した際に、フェールオーバーを実施し、それまで現用系として動作していたノードに代わりそれまで待機系として動作していたノードが現用系として所定のサービスを引き継ぐＨＡクラスタシステムである。
【００２５】
上述の通り、クラウド環境では、クラスタシステム１を構成するノードは固定されていない。このため、ある時点においては、クラスタシステム１は、例えば図２に示されるノード１０＿１、ノード１０＿２、及びノード１０＿３で構成されるが、別の時点では例えば図３に示されるノード１０＿１、ノード１０＿２、及びノード１０＿４で構成される。すなわち、図３に示した例では、エリア２のノード１０＿２が停止し、エリア３のノード１０＿４が起動することにより、クラスタシステム１を構成するノードの一つが別のエリアへと移動している。このようにクラウド環境の場合、クラスタシステム１を構成するノードが変動する。すなわち、フェールオーバー先の候補となるノードが変動しており、フェールオーバー先の候補の性能も変動する。このため、最適なフェールオーバー先を選択することが難しい。
【００２６】
なお、以下の説明では、ノード１０＿１、１０＿２、１０＿３、１０＿４などといったノード１０＿ｎについて、特に区別せずに言及する場合には、これらをまとめてノード１０と称すこととする。
【００２７】
図４は、ノード１０の構成を示すブロック図である。図４に示されるように、ノード１０は、クラスタウェア１００と、ＯＳ２００と、所定のサービスを提供するアプリケーションソフトウェアであるサービスアプリケーション３００と、記憶部４００とを有する。また、ノード１０は、ＣＰＵ（Central Processing Unit）及びメモリなどを有し、コンピュータとしての機能を備えている。
クラスタウェア１００は、他のノードのクラスタウェア１００と協働し、ノード間で連携した動作が可能なように調整する。具体的には、例えば、クラスタウェア１００は、自ノード及び他ノードの障害などの異常の有無を監視する。また、クラスタウェア１００は、ノードに障害等の異常が発生した場合に、フェールオーバーを実施し、別のノードにより所定サービスを提供するよう、サービスアプリケーションの起動を切替える。
【００２８】
ここで、フェールオーバー先の決定に関するクラスタウェア１００の構成について、具体的に説明する。図５は、クラスタウェア１００の構成を示すブロック図である。図５に示すように、クラスタウェア１００は、ハートビート送信部１０１と、応答パケット受信部１０２と、決定部１０３と、フェールオーバー実行部１０４と、ハートビート受信部１０５と、処理実行部１０６と、応答パケット送信部１０７とを有する。これらの各構成は、例えば、ＣＰＵの制御によって、プログラムが実行されることによって実現できる。より具体的には、例えば記憶部４００などの記憶装置に格納されたプログラムを、ＣＰＵの制御によって実行して実現する。また、各構成要素は、プログラムによるソフトウェアで実現することに限ることなく、ハードウェア、ファームウェア、及びソフトウェアのうちのいずれかの組み合わせ等により実現してもよい。なお、これらの事項は、後述する他の実施の形態においても同様である。
【００２９】
なお、ノード１０は、好適には、現用系として動作しているか待機系として動作しているかに関わらず、上記各構成を有する。ただし、必ずしも全ての構成要素をノードが有していなくてもよい。例えば、クラスタウェア１００の各構成のうち、ハートビート送信部１０１、応答パケット受信部１０２、及び決定部１０３は、待機系として動作するノードが必ずしも有していなくてもよい。また、ハートビート受信部１０５、処理実行部１０６、及び応答パケット送信部１０７は、現用系として動作するノードが必ずしも有していなくてもよい。
【００３０】
ハートビート送信部１０１は、クラスタを構成する他の全てのノードに対して、ハートビートパケットを送信する。なお、クラスタシステム１では、図６に示されるように、クラスタを構成する各ノードがそれぞれハートビートパケット５０を他のノードに対して送信する。図６では、クラスタシステム１が、ノード１０＿１、ノード１０＿２、及びノード１０＿３により構成されている場合の例を示している。なお、ハートビート送信部１０１により送信されるハートビートパケット５０は、通常ＨＢパケット又は処理要求ＨＢパケットである。ここで、通常ＨＢパケットとは、自ノードの生存を他ノードに対して定期的に伝える通常のハートビートパケットをいう。ハートビート送信部１０１は、通常ＨＢパケット及び処理要求ＨＢパケットをそれぞれ予め定められた時間間隔で繰り返し送信する。例えば、ハートビート送信部１０１は、３回に１回などの割合で、通常ＨＢパケットに代えて処理要求ＨＢパケットを送信する。
【００３１】
ハートビート受信部１０５は、他のノードから送信されたハートビートパケットを受信する。ハートビート受信部１０５は、上述の通り、通常ＨＢパケット又は処理要求ＨＢパケットを受信する。ハートビート受信部１０５は、処理要求ＨＢパケットの受信時刻を後述する応答パケット送信部１０７に通知する。
【００３２】
処理実行部１０６は、処理要求ＨＢパケットによる要求に応じて上述の予め定められた処理を実行する。すなわち、処理実行部１０６は、ハートビート受信部１０５が、処理要求ＨＢパケットを受信した場合、予め定められた処理を実行する。処理実行部１０６は、予め定められた処理の実行が完了すると、予め定められた処理の実行に要した処理時間を、応答パケット送信部１０７に通知する。
【００３３】
応答パケット送信部１０７は、上述の処理時間を含む応答パケットを送信する。より具体的には、応答パケット送信部１０７は、処理要求ＨＢパケットの受信時刻と、上述の処理時間とを含む応答パケットを、処理要求ＨＢパケットの送信元に送信する。
【００３４】
応答パケット受信部１０２は、処理要求ＨＢパケットを受信した他のノードが送信した、処理要求ＨＢパケットに対する応答パケットを受信する。すなわち、応答パケット受信部１０２は、予め定められた処理の実行に要した処理時間と、処理要求ＨＢパケットの受信時刻とを含む応答パケットを、処理要求ＨＢパケットの送信先である他のノードから受信する。また、応答パケット受信部１０２は、処理要求ＨＢパケットの送信時刻と、この処理要求ＨＢパケットの相手方ノードの受信時刻と、相手方ノードの処理時間とを記憶部４００に記憶する。なお、送信時刻は、ハートビート送信部１０１から通知されてもよいし、ハートビート送信部１０１が送信時刻を含む処理要求ＨＢパケットを送信した上で、これに対する応答パケットにこの送信時刻が含まれるようにしてもよい。
【００３５】
図７は、記憶部４００に記憶された送信時刻、受信時刻及び処理時間の例を示す図である。なお、図７では、ノード１０＿１がノード１０＿２から受信した応答パケットに基づくリスト（図７の上段）と、ノード１０＿１がノード１０＿３から受信した応答パケットに基づくリスト（図７の下段）が示されている。なお、図７では、ノード１０＿１が管理するリストを示しているが、クラスタを構成する他のノードも同様にリストを管理している。このように、各ノード１０は、相手ノードごとに、送信時刻、受信時刻及び処理時間を管理する。また、図７に示されるように、各ノード１０は、最新の応答パケットについての送信時刻、受信時刻及び処理時間のみではなく、過去の応答パケットについての送信時刻、受信時刻及び処理時間についても履歴として管理する。
【００３６】
決定部１０３は、ハートビートパケットの送受信時間及び上述の処理時間に基づいて、複数の他のノードからフェールオーバー先を決定する。つまり、現用系として動作しているノードの決定部１０３は、自ノードに障害等が発生した場合のフェールオーバー先のノードを、処理要求ＨＢパケットの送受信時間と予め定められた処理の処理時間とに基づいて、決定することにより、性能面で最適なノードをフェールオーバー先として選択する。なお、決定部１０３は、フェールオーバー先の決定に際し、処理要求ＨＢパケットの送受信時間を、記憶部４００に記憶されている送信時刻と受信時刻との差分を計算することにより、算出する。
【００３７】
以下、決定部１０３による決定方法について詳細に説明する。
決定部１０３は、クラスタを構成する複数の他のノード１０ごとの送受信時間及び処理時間を比較し、送受信時間と処理時間の和の時間が最小である他のノード１０をフェールオーバー先として決定する。ここで、決定部１０３は、最新の応答結果と過去の応答結果に基づいて、フェールオーバー先を決定する。なお、最新の応答結果とは、ハートビート送信部１０１が送信した最新の処理要求ＨＢパケットに対する送受信時間及び処理時間である。また、過去の応答結果とは、最新の処理要求ＨＢパケットよりも前にハートビート送信部１０１が送信した過去のハートビートパケットに対する送受信時間及び処理時間である。すなわち、過去の応答結果とはリストに記録された、過去の履歴である。また、決定部１０３は、フェールオーバー先を決定する際、過去の応答結果について、古い応答結果ほど小さい重みづけとなるよう重みづけを行う。
【００３８】
具体的には、決定部１０３は、以下のようにしてフェールオーバー先を決定する。まず、決定部１０３は、最新の応答結果についての評価値を算出する。なお、ここでいう評価値は、送受信時間と処理時間の和を指す。次に、過去の応答結果についても評価値をそれぞれ算出する。例えば、予め定められたｍ件の過去の応答結果に対し、それぞれ評価値を算出する。ただし、決定部１０３は、古い応答結果になるにつれて小さい重みづけとなるよう評価値に重みづけを行う。例えば、決定部１０３は、古い応答結果になるにつれて指数的に減少する重み係数（例えば、０．７のｐ乗、ただし、ｐ＝１〜ｍ）を評価値に掛けて、新しい応答結果ほど重要になるように重みづけを行う。次に、決定部１０３は、最新の応答結果についての評価値と、重みづけがなされた過去の応答結果についての評価値の合計を算出する。なお、決定部１０３は、合計値ではなく平均値を算出してもよい。決定部１０３は、このような算出を、フェールオーバー先の候補となる全てのノードについて行う。そして、決定部１０３は、合計値（平均値）が最小であるノード１０を最適なフェールオーバー先と判定して、フェールオーバー先を決定する。
【００３９】
決定部１０３は、評価値が最小であるノード１０が複数存在する場合、評価値が最小であるノードのうち、送受信時間又は処理時間のうち予め定められた方又はユーザ等に指定された方の時間が最小であるノード１０をフェールオーバー先として決定してもよい。
【００４０】
フェールオーバー実行部１０４は、決定部１０３により決定されたフェールオーバー先にサービスを引き継ぐようフェールオーバーを実行する。
【００４１】
以上、ノード１０の構成について説明した。なお、現用系として動作するノード１０のみでなく、待機系として動作するノード１０も定期的に他のノード１０に対してハートビートパケットを送信する理由は、現用系として動作しているノード１０が、電源断などにより緊急停止してしまった場合にその時点でどのノードが待機系として起動しているかという情報をノード間で共有するためである。現用系のノードが緊急停止した場合には、現用系ノードは動作することができないため、クラスタシステム１に設定された、ノード１０ごとの予め定められた優先度に従ってフェールオーバー先が決定されることとなる。この時、待機系としていたノード１０のクラスタウェア１００間で情報が共有されることで、現用系のノード１０で動いていたサービスが、それまで待機系として動作していた複数のノードで多重起動することを防ぐことが可能となる。
【００４２】
また、待機系として動作するノード１０も定期的に他のノード１０に対して処理要求ＨＢパケットを送信し、各ノード１０の性能を記憶部４００に記憶しているため、例えば、現用系のノード１０の緊急停止によるフェールオーバー発生直後に、当該フェールオーバー後の現用系のノード１０において障害が発生した場合であっても、即時に最適なフェールオーバー先を決定することができる。すなわち、上述の通り、本実施の形態では、決定部１０３の決定に際して、過去の応答結果が用いられるが、緊急停止によるフェールオーバーによりサービスを引き継いだノード１０も、その時点で既に、過去の応答結果を保持しているため、応答結果が所定数蓄積されるのを待つまでもなく、フェールオーバー先を決定することができる。
【００４３】
次に、クラスタシステム１の動作について説明する。図８は、クラスタシステム１におけるハートビートパケットの送受信動作の一例を示すシーケンスチャートである。なお、図８では、ノード１０＿１からノード１０＿２へとハートビートパケットを送信する場合の動作を示しているが、図６に示した通り、各ノード１０間で相互に同様の動作を行っている。
【００４４】
ステップ１００（Ｓ１００）において、ノード１０＿１のハートビート送信部１０１が、ノード１０＿２に対して通常ＨＢパケットを送信し、ノード１０＿２のハートビート受信部１０５がこれを受信する。
【００４５】
ステップ１０１（Ｓ１０１）において、ノード１０＿２の応答パケット送信部１０７は、ノード１０＿１に対し、通常ＨＢパケットに対する応答パケットを送信し、ノード１０＿１の応答パケット受信部１０２がこれを受信する。なお、ここでは、通常ＨＢパケットに対して応答パケットを送信しているが、通常ＨＢパケットに対する応答パケットは省略されてもよい。
【００４６】
ステップ１０２（Ｓ１０２）において、ノード１０＿１のハートビート送信部１０１が、ノード１０＿２に対して処理要求ＨＢパケットを送信し、ノード１０＿２のハートビート受信部１０５がこれを受信する。
【００４７】
ステップ１０３（Ｓ１０３）において、ノード１０＿２の処理実行部１０６は、予め定められた処理を実行する。
【００４８】
ステップ１０４（Ｓ１０４）において、ノード１０＿２の応答パケット送信部１０７は、ステップ１０３における処理に要した時間を記した応答パケットをノード１０＿１に送信し、ノード１０＿１の応答パケット受信部１０２がこれを受信する。
【００４９】
ステップ１０５（Ｓ１０５）において、ステップ１０２における送信の送信時刻と、ステップ１０２における受信の受信時刻と、ステップ１０３における処理時間とが、記憶部４００に記憶される。
【００５０】
ステップ１０６（Ｓ１０６）において、再び、ステップ１００と同様、ノード１０＿１からノード１０＿２に対する通常ＨＢパケットの送信が行われる。このように、ノード１０は、通常ＨＢパケットの送信及び処理要求ＨＢパケットを繰り返し送信し、処理要求ＨＢパケットが送信された場合には、上述のステップ１０３及びステップ１０５の動作が行われる。
【００５１】
次に、決定部１０３によるフェールオーバー先の決定動作について図９に示されるフローチャートに沿って説明する。現用系であるノードにおいて障害が発生すると、現用系であるノードの決定部１０３は、以下の動作を行う。
【００５２】
ステップ２００（Ｓ２００）において、決定部１０３は、フェールオーバー先の候補のノードの一つについての記憶部４００に記憶された各応答結果に対し、評価値を算出する。
【００５３】
ステップ２０１（Ｓ２０１）において、決定部１０３は、過去の応答結果についての評価値について重みづけを行う。
【００５４】
ステップ２０２（Ｓ２０２）において、決定部１０３は、一連の評価値について合計値を算出する。すなわち、最新の応答結果についての評価値及び所定数の過去の応答結果についての重みづけ後の評価値の合計値を算出する。
【００５５】
ステップ２０３（Ｓ２０３）において、決定部１０３は、フェールオーバー先の候補の全てについてステップ２００〜ステップ２０２の計算を実行したか否かを判定する。フェールオーバー先の候補の全てについて合計値が算出されていない場合、処理はステップ２００に戻り、残りの候補についての合計値の算出が行われる。これに対し、フェールオーバー先の候補の全てについて合計値が算出されている場合、処理はステップ２０４へ移行する。
【００５６】
ステップ２０４（Ｓ２０４）において、決定部１０３は、ステップ２０２で算出された評価値の合計値が最小であるノード１０をフェールオーバー先として決定する。そして、この決定後、フェールオーバー実行部１０４が、ステップ２０４で決定されたフェールオーバー先のノード１０にサービスを引き継ぐようフェールオーバーを実行する。
【００５７】
このようにクラスタシステム１によれば、フェールオーバー先の候補であるノードごとの現在の性能を評価することができるため、動的にノードの性能が変化するクラスタ環境であっても性能面で最適なフェールオーバー先を選択することができる。
【００５８】
また、図１０及び図１１に示すように、ノードのライフサイクルによって、クラスタを構成するあるノードが、現用系のノードのエリアとは別のエリアのノードに切り替わった場合にも、クラスタシステム１は効果的である。なお、図１０は、実施の形態１にかかるクラスタシステム１の構成の一例を示すブロック図であり、ノードが切り替わる前の構成を示している。また、図１１は、図１０に示されるクラスタシステム１について、ノードが切り替わった後の構成を示している。具体的には、図１０に示すクラスタシステム１は、ノードの切替前は、エリア２のノード１０＿５、ノード１０＿６、及びノード１０＿７と、エリア３のノード１０＿８の４つのノードによりクラスタが構成されている。これに対し、図１１に示すクラスタシステム１ではエリア２のノード１０＿６がエリア３のノード１０＿９に切り替わり、エリア２のノード１０＿５及びノード１０＿７と、エリア３のノード１０＿８及びノード１０＿９の４つのノードによりクラスタが構成されている。なお、図１０及び図１１において、エリア２のノード１０＿５が現用系として動作しているものとする。クラスタシステムが、フェールオーバー先を動的に決定する本実施の形態のような手法を備えていない場合、すなわち、ノードごとの予め定められた優先度に従ってフェールオーバー先が決定される場合、ノード１０＿６の優先度が他の候補ノードより高いときには、ノードの切り替え後は、ノード１０＿９がフェールオーバー先となる。しかしながら、他の候補ノードよりも優先度が高いノードが、現用系であるノードと別のエリアに切り替わってしまうと、この優先度が高いノードへのフェールオーバーは、現用系のノードのエリアと同じエリアのノード１０＿７へのフェールオーバーよりも時間がかかってしまう。
【００５９】
これに対し、本実施の形態にかかるクラスタシステム１によれば、処理要求ＨＢパケットを利用して送受信時間が管理されるため、異なるエリアへのノードの移動が発生した場合でも、ノードごとの送受信時間を比較することで、フェールオーバー時に動的に適切なノードの選択が可能となっている。
【００６０】
＜実施の形態２＞
次に、実施の形態２について説明する。実施の形態２にかかるクラスタシステム１のノード１０は、クラスタウェア１００に代えてクラスタウェア１１０を有している。図１２は、クラスタウェア１１０の構成を示すブロック図である。図１２に示されるように、クラスタウェア１１０は、予測部１１１が追加され、決定部１０３が決定部１１２に置き換えられた点で、クラスタウェア１００と異なる。なお、その他の点については、クラスタウェア１１０はクラスタウェア１００と同様であるため、以下の説明では、クラスタウェア１００と異なる点についてのみ説明をし、重複する説明を省略する。
【００６１】
予測部１１１は、記憶部４００に記憶された、最新の応答結果と過去の応答結果に基づいて、予測の応答結果を算出する。ここで、予測の応答結果とは、ハートビート送信部１０１が送信する将来の処理要求ＨＢパケットに対する送受信時間及び処理時間の予測値である。
【００６２】
予測部１１１は、最新の応答結果及び過去の応答結果に対し、時系列分析を行って、予測値を算出する。時系列分析としては、例えば、ＡＲＩＭＡ（Ａｕｔｏ Ｒｅｇｒｅｓｓｉｖｅ Ｉｎｔｅｇｒａｔｅｄ Ｍｏｖｉｎｇ Ａｖｅｒａｇｅ：自己回帰和分移動平均）モデルを利用した時系列分析が用いられてもよい。
【００６３】
決定部１１２は決定部１０３と同様であるが、決定部１１２は、最新の応答結果と、予測の応答結果に基づいて、フェールオーバー先を決定する点で決定部１０３と異なる。ここで、決定部１１２は、フェールオーバー先を決定する際、予測の応答結果について、将来の応答結果ほど小さい重みづけとなるよう重みづけを行う。
【００６４】
具体的には、以下のようにしてフェールオーバー先が決定される。まず、予測部１１１が、最新の応答結果及びｓ件の過去の応答結果に基づいて、予め定められたｔ件分の予測の応答結果を算出する。すなわち、予測部１１１が、図１３に示されるように、ｔ件分の送受信時間及び処理時間を予測する。なお、図１３では、最新の応答結果と４件の過去の応答結果の計５件の応答結果（図１３の上段参照）から、５件の将来の応答結果の予測値（図１３の下段参照）が算出された場合の例を示している。次に、決定部１１２は、現在取得されている最新の応答結果についての評価値を算出する。そして、決定部１１２は、予測の応答結果についても評価値をそれぞれ算出する。すなわち、例えば、予め定められたｔ件の予測の応答結果に対し、それぞれ評価値を算出する。ただし、決定部１１２は、将来の応答結果になるにつれて小さい重みづけとなるよう評価値に重みづけを行う。例えば、決定部１１２は、将来の応答結果になるにつれて指数的に減少する重み係数（例えば、０．７のｑ乗、ただし、ｑ＝１〜ｔ）を評価値に掛けて、現在に近い応答結果ほど重要になるように重みづけを行う。次に、決定部１１２は、最新の応答結果についての評価値と、重みづけがなされた予測の応答結果についての評価値の合計を算出する。なお、決定部１１２は、合計値ではなく平均値を算出してもよい。決定部１１２は、このような算出を、フェールオーバー先の候補となる全てのノードについて行う。そして、決定部１１２は、合計値（平均値）が最小であるノード１０を最適なフェールオーバー先と判定して、フェールオーバー先を決定する。
【００６５】
なお、決定部１１２は、評価値が最小であるノード１０が複数存在する場合、評価値が最小であるノードのうち、送受信時間又は処理時間のうち予め定められた方又はユーザ等に指定された方の時間が最小であるノード１０をフェールオーバー先として決定してもよい。
【００６６】
次に、本実施の形態におけるフェールオーバー先の決定動作について図１４に示されるフローチャートに沿って説明する。現用系であるノードにおいて障害が発生すると、以下の動作により、フェールオーバー先が決定される。
【００６７】
ステップ３００（Ｓ３００）において、予測部１１１が、フェールオーバー先の候補のノードの一つについての記憶部４００に記憶された一連の応答結果に基づいて、将来の応答結果を予測する。すなわち、予測部１１１は、最新の応答結果と過去の応答結果に基づいて、予測の応答結果を算出する。
【００６８】
ステップ３０１（Ｓ３０１）において、決定部１１２は、現在取得されている最新の応答結果についての評価値、及びステップ３００で予測された応答結果についての評価値を算出する。
【００６９】
ステップ３０２（Ｓ３０２）において、決定部１１２は、予測の応答結果について、将来の応答結果ほど小さい重みづけとなるよう重みづけを行う。
【００７０】
ステップ３０３（Ｓ３０３）において、決定部１１２は、一連の評価値について合計値を算出する。すなわち、最新の応答結果についての評価値と、所定数の予測の応答結果についての重みづけ後の評価値との合計値を算出する。
【００７１】
ステップ３０４（Ｓ３０４）において、決定部１１２は、フェールオーバー先の候補の全てについてステップ３００〜ステップ３０３の計算を実行したか否かを判定する。フェールオーバー先の候補の全てについて合計値が算出されていない場合、処理はステップ３００に戻り、残りの候補についての合計値の算出が行われる。これに対し、フェールオーバー先の候補の全てについて合計値が算出されている場合、処理はステップ３０５へ移行する。
【００７２】
ステップ３０５（Ｓ３０５）において、決定部１１２は、ステップ３０３で算出された評価値の合計値が最小であるノード１０をフェールオーバー先として決定する。そして、この決定後、フェールオーバー実行部１０４が、ステップ３０３で決定されたフェールオーバー先のノード１０にサービスを引き継ぐようフェールオーバーを実行する。
【００７３】
このように本実施の形態にかかるクラスタシステム１によれば、フェールオーバー先の候補であるノードごとの現在の性能及び将来的な性能を評価することができるため、より最適なフェールオーバー先を選択することができる。なお、本実施の形態において、ステップ３０３の合計値の算出の際、実施の形態１と同様に、過去の応答結果に重みづけをした評価値をさらに合算してもよい。
【００７４】
＜実施の形態３＞
次に、実施の形態３について説明する。
クラウド環境において、不特定多数のユーザによる同時使用などで、あるエリアに高負荷が発生した場合、当該エリアに属するノードのパフォーマンスの劣化を招く。しかしながら、クラウド環境におけるこのようなパフォーマンスの劣化は、ＣＰＵ使用率及びメモリ使用量の監視からは捉えることが難しい。図１５は、待機系であるノード１０＿２が取得した応答結果のリストの一例を示す。ここで、図１５の上段は、待機系であるノード１０＿２が現用系であるノード１０＿１に処理要求ＨＢパケットを送信して得られた応答結果である。また、図１５の下段は、待機系であるノード１０＿２が待機系であるノード１０＿３に処理要求ＨＢパケットを送信して得られた応答結果である。仮に、ノード１０＿１が属するエリアを管理するホストマシンに高負荷が発生した場合、このエリアの中で動いているノード１０＿１自身のＣＰＵ使用率、メモリ使用量に見た目の影響は発生しないが、実際には、ノード１０＿１自身のパフォーマンスに影響が発生しており、処理要求ＨＢパケット受信時の固定処理の実行に時間がかかるといったことで顕在化する。このため、図１５の上段に示されるように、ノード１０＿１の処理時間が大きくなる。
【００７５】
本実施の形態では、待機系であるノード１０が、現用系であるノード１０の処理時間を監視することにより現用系のノード１０の性能を評価し、性能が予め定められた基準よりも低下した場合に、フェールオーバーの実行を要求する。
【００７６】
実施の形態３にかかるクラスタシステム１のノード１０は、クラスタウェア１００に代えてクラスタウェア１２０を有している。図１６は、クラスタウェア１２０の構成を示すブロック図である。図１６に示されるように、クラスタウェア１２０は、処理時間判定部１２１と、フェールオーバー要求部１２２とが追加された点で、クラスタウェア１００と異なる。なお、その他の点については、クラスタウェア１２０はクラスタウェア１００と同様であるため、以下の説明では、クラスタウェア１００と異なる点についてのみ説明をし、重複する説明を省略する。なお、クラスタウェア１２０は、上述の予測部１１１をさらに有してもよい。
【００７７】
処理時間判定部１２１は、クラスタを構成する複数のノード１０のうち現用系のノード１０から受信した、処理要求ＨＢパケットに対する応答パケットに含まれる処理時間が、予め定められた閾値を超えるか否かを判定する。
【００７８】
フェールオーバー要求部１２２は、処理時間判定部１２１により処理時間が閾値を超えると判定された場合、現用系として動作するノード１０に対しフェールオーバーの実施を要求する。
【００７９】
図１７は、本実施の形態３にかかるクラスタウェア１００におけるフェールオーバーの要求動作の一例について示すフローチャートである。
【００８０】
ステップ４００（Ｓ４００）において、待機系のノード１０の処理時間判定部１２１が、現用系であるノード１０からの応答パケットに含まれる処理時間を予め定められた閾値と比較する。処理時間が、この閾値を超える場合（ステップ４０１でＹｅｓ）、処理はステップ４０２へ移行する。処理時間が、この閾値を超えない場合（ステップ４０１でＮｏ）、フェールオーバーの要求処理は行われない。
【００８１】
ステップ４０２（Ｓ４０２）において、待機系であるノード１０のフェールオーバー要求部１２２は、現用系であるノード１０に対し、フェールオーバーの実施を要求する。これにより、現用系であるノード１０のフェールオーバー実行部１０４は、フェールオーバーを実行する。なお、その際のフェールオーバー先は、決定部１０３により決定されたフェールオーバー先とすることができる。
【００８２】
このように本実施の形態にかかるクラスタシステム１によれば、待機系のノード１０から見た現用系のノード１０の固定処理にかかる時間が所定の閾値を超えた場合には、現用系のノード１０からサービスを移動することができる。このため、ＣＰＵ監視及びメモリ監視では発見できないクラウド環境ならではの負荷を検出し、動的に適切なノードを選択することが可能となる。
【００８３】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、上記各実施の形態では、ノード１０は、処理要求ＨＢパケットのみならず、通常ＨＢパケットを送信しているが、通常ＨＢパケットの送信は省略されてもよい。また、クラウド環境だけに限らず、物理環境のクラスタリングでも上述の構成が適用されてもよい。この場合、本構成を適用しない場合に比較して簡易な構成により、各ノードの現在の性能の測定及びフェールオーバー先の動的な決定を行うことができる。
【００８４】
また、プログラムは、様々なタイプの非一時的なコンピュータ可読媒体（non-transitory computer readable medium）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（tangible storage medium）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Read Only Memory）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Programmable ROM）、ＥＰＲＯＭ（Erasable PROM）、フラッシュＲＯＭ、ＲＡＭ（random access memory））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（transitory computer readable medium）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【００８５】
また、例えば、上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
（付記１）
自装置とともにクラスタを構成する複数の他の情報処理装置に対し、予め定められた処理の実行を要求するハートビートパケットを送信するハートビート送信手段と、
前記ハートビートパケットを受信した前記他の情報処理装置が前記予め定められた処理の実行に要した処理時間を含む、前記ハートビートパケットに対する応答パケットを前記他の情報処理装置から受信する応答パケット受信手段と、
前記ハートビートパケットの送受信時間及び前記処理時間に基づいて、前記複数の他の情報処理装置からフェールオーバー先を決定する決定手段と
を有する情報処理装置。
（付記２）
前記決定手段は、前記複数の他の情報処理装置ごとの前記送受信時間及び前記処理時間を比較し、前記送受信時間と前記処理時間の和の時間が最小である前記他の情報処理装置をフェールオーバー先として決定する
付記１に記載の情報処理装置。
（付記３）
前記ハートビート送信手段は、予め定められた時間間隔で前記ハートビートパケットを送信し、
前記決定手段は、前記ハートビート送信手段が送信した最新のハートビートパケットに対する前記送受信時間及び前記処理時間である最新の応答結果と、前記最新のハートビートパケットよりも前に前記ハートビート送信手段が送信した過去のハートビートパケットに対する前記送受信時間及び前記処理時間である過去の応答結果に基づいて、フェールオーバー先を決定する
付記１又は２に記載の情報処理装置。
（付記４）
前記決定手段は、フェールオーバー先を決定する際、前記過去の応答結果について、古い応答結果ほど小さい重みづけとなるよう重みづけを行う
付記３に記載の情報処理装置。
（付記５）
前記ハートビート送信手段は、予め定められた時間間隔で前記ハートビートパケットを送信し、
前記ハートビート送信手段が送信した最新のハートビートパケットに対する前記送受信時間及び前記処理時間である最新の応答結果と、前記最新のハートビートパケットよりも前に前記ハートビート送信手段が送信した過去のハートビートパケットに対する前記送受信時間及び前記処理時間である過去の応答結果に基づいて、前記ハートビート送信手段が送信する将来のハートビートパケットに対する前記送受信時間及び前記処理時間の予測値である予測の応答結果を算出する予測手段
をさらに有し、
前記決定手段は、前記最新の応答結果と、前記予測の応答結果に基づいて、フェールオーバー先を決定する
付記１又は２に記載の情報処理装置。
（付記６）
前記決定手段は、フェールオーバー先を決定する際、前記予測の応答結果について、将来の応答結果ほど小さい重みづけとなるよう重みづけを行う
付記５に記載の情報処理装置。
（付記７）
現用系又は待機系のいずれかとして動作する、クラスタを構成する複数の情報処理装置を備え、
前記複数の情報処理装置のうち少なくとも現用系として動作する情報処理装置は、
他の前記情報処理装置のそれぞれに対し、予め定められた処理の実行を要求するハートビートパケットを送信するハートビート送信手段と、
前記ハートビートパケットを受信した他の前記情報処理装置が前記予め定められた処理の実行に要した処理時間を含む、前記ハートビートパケットに対する応答パケットを他の前記情報処理装置から受信する応答パケット受信手段と、
前記ハートビートパケットの送受信時間及び前記処理時間に基づいて、前記複数の他の情報処理装置からフェールオーバー先を決定する決定手段と
を有し、
前記複数の情報処理装置のうち待機系として動作する情報処理装置は、
前記ハートビートパケットによる要求に応じて前記予め定められた処理を実行する処理実行手段と、
前記処理時間を含む前記応答パケットを送信する応答パケット送信手段と
を有する
クラスタシステム。
（付記８）
前記複数の情報処理装置のうち待機系として動作する情報処理装置は、さらに、前記ハートビート送信手段と、前記応答パケット受信手段とを有する
付記７に記載のクラスタシステム。
（付記９）
前記複数の情報処理装置のうち待機系として動作する情報処理装置は、さらに、
前記複数の情報処理装置のうち現用系として動作する情報処理装置から受信した前記応答パケットに含まれる前記処理時間が、予め定められた閾値を超えるか否かを判定する処理時間判定手段と、
前記処理時間判定手段により前記処理時間が前記閾値を超えると判定された場合、前記現用系として動作する情報処理装置に対しフェールオーバーの実施を要求するフェールオーバー要手段と
を有する
付記８に記載のクラスタシステム。
（付記１０）
クラスタを構成する複数の情報処理装置のいずれかである第１の情報処理装置から、前記複数の情報処理装置から前記第１の情報処理装置を除いた複数の他の情報処理装置である第２の情報処理装置に対し、予め定められた処理の実行を要求するハートビートパケットを送信するハートビート送信ステップと、
前記ハートビートパケットを受信した前記第２の情報処理装置が前記予め定められた処理の実行に要した処理時間を含む、前記ハートビートパケットに対する応答パケットを前記第２の情報処理装置から前記第１の情報処理装置が受信する応答パケット受信ステップと、
前記第１の情報処理装置が前記ハートビートパケットの送受信時間及び前記処理時間に基づいて、前記第２の情報処理装置の中からフェールオーバー先を決定する決定ステップと
を有するクラスタリング方法。
（付記１１）
複数の他の情報処理装置とともにクラスタを構成する情報処理装置のコンピュータに、
前記複数の他の情報処理装置に対し、予め定められた処理の実行を要求するハートビートパケットを送信するハートビート送信ステップと、
前記ハートビートパケットを受信した前記他の情報処理装置が前記予め定められた処理の実行に要した処理時間を含む、前記ハートビートパケットに対する応答パケットを前記他の情報処理装置から受信する応答パケット受信ステップと、
前記ハートビートパケットの送受信時間及び前記処理時間に基づいて、前記複数の他の情報処理装置からフェールオーバー先を決定する決定ステップと
を実行させるプログラム。
【符号の説明】
【００８６】
１    クラスタシステム
２、３    エリア
４    ネットワーク
１０    ノード（情報処理装置）
５０    ハートビートパケット
１００、１１０、１２０    クラスタウェア
１０１    ハートビート送信部
１０２    応答パケット受信部
１０３、１１２    決定部
１０４    フェールオーバー実行部
１０５    ハートビート受信部
１０６    処理実行部
１０７    応答パケット送信部
１１１    予測部
１２１    処理時間判定部
１２２    フェールオーバー要求部
２００    ＯＳ
３００    サービスアプリケーション
４００    記憶部
【図１】
0006561766.tif 000002
【図２】
0006561766.tif 000003
【図３】
0006561766.tif 000004
【図４】
0006561766.tif 000005
【図５】
0006561766.tif 000006
【図６】
0006561766.tif 000007
【図７】
0006561766.tif 000008
【図８】
0006561766.tif 000009
【図９】
0006561766.tif 000010
【図１０】
0006561766.tif 000011
【図１１】
0006561766.tif 000012
【図１２】
0006561766.tif 000013
【図１３】
0006561766.tif 000014
【図１４】
0006561766.tif 000015
【図１５】
0006561766.tif 000016
【図１６】
0006561766.tif 000017
【図１７】
0006561766.tif 000018