(57)【特許請求の範囲】
【請求項１】
互いに監視パスで接続された複数のノードを含むクラスタシステムのクラスタ再構築方法であって、
前記複数のノードのうちのいずれか所定のノードが、所定の条件を保持し、前記所定の条件に対応する自ノードの情報を生成する自ノード情報生成ステップと、
前記所定のノードが、前記監視パスでの通信を可能とする他ノードから、前記所定の条件に対応する他ノードの情報を収集する他ノード情報収集ステップと、
前記所定のノードが、前記自ノードの情報又は前記他ノードの情報が存在する場合、前記他ノードの情報及び前記自ノードの情報に基づいて、少なくとも前記自ノードを含むとともに前記監視パスで通信可能なノードで構成される自グループの優先度を生成する優先度生成ステップと、
前記所定のノードが、前記自グループの優先度と、前記自ノードが前記監視パスでの通信を不可能とするノードから構成される他グループの優先度とに基づいて、クラスタとして再構築するグループを決定するグループ決定ステップとを有する
ことを特徴とするクラスタ再構築方法。
【請求項２】
前記所定の条件は、優先順位を有する複数の条件であり、
前記所定のノードは、
前記複数の条件の夫々に対応する自ノードの情報を生成し、
前記自グループの優先度を生成する際、前記複数の条件の夫々に対し優先度を生成し、
前記クラスタとして再構築するグループを決定する際、前記優先順位に応じて、前記他グループの優先度と比較を行うことで再構築グループを決定する
ことを特徴とする請求項１に記載のクラスタ再構築方法。
【請求項３】
前記所定の条件は、
前記所定のノードのハードウェア使用率（稼動率）を含む
ことを特徴とする請求項１又は２に記載のクラスタ再構築方法。
【請求項４】
前記所定の条件は、
前記所定のノードで稼動するアプリケーションが実行中である特定の処理の数を含む
ことを特徴とする請求項１から３の何れか一項に記載のクラスタ再構築方法。
【請求項５】
前記特定の処理は、
前記アプリケーションによるデータライト処理又はデータリード処理を含む
ことを特徴とする請求項４に記載のクラスタ再構築方法。
【請求項６】
前記所定の条件は、
前記所定のノードで稼動する前記アプリケーションの種別又は前記種別の名称を含む
ことを特徴とする請求項１から５の何れか一項に記載のクラスタ再構築方法。
【請求項７】
前記グループ決定ステップでは、
前記所定のノードが、前記自グループが前記クラスタとして再構築するグループであると決定した場合、前記自グループに属するノードをリセットする
ことを特徴とする請求項１から６の何れか一項に記載のクラスタ再構築方法。
【請求項８】
前記グループ決定ステップでは、
前記所定のノードが、
前記自グループに属するノードをリセットする際に、リセット要求とともに前記自グループの優先度を、前記クラスタを構成するノードに通知し、
前記通知を他ノードから受けた際に、前記通知に含まれるグループ優先度が、前記自グループの優先度より低い場合、前記自ノードのリセットを防止する
ことを特徴とする請求項７に記載のクラスタ再構築方法。
【請求項９】
互いに監視パスで接続された複数のノードを含むクラスタシステムのクラスタ構成再構築装置であって、
前記複数のノードは、それぞれ、
所定の条件を保持し、前記所定の条件に対応する自ノードの情報を生成する一方、前記監視パスでの通信を可能とする他ノードから、前記所定の条件に対応する他ノードの情報を収集するノード情報収集部と、
前記自ノードの情報又は前記他ノードの情報が存在する場合には、前記他ノードの情報及び前記自ノードの情報に基づいて、少なくとも前記自ノードを含むとともに前記監視パスで通信可能なノードで構成される自グループの優先度を生成し、前記自グループの優先度と、前記自ノードが前記監視パスでの通信を不可能とするノードから構成される他グループの優先度とに基づいて、クラスタとして再構築するグループを決定するグループスコア作成部とを有する
ことを特徴とするクラスタ再構築装置。
【請求項１０】
互いに監視パスで接続された複数のノードを含むクラスタシステムにおけるクラスタ再構築装置のクラスタ再構築プログラムであって、
前記クラスタ再構築装置のプロセッサに、前記複数のノードのうちのいずれか所定のノードが保持する所定の条件に対応した自ノードの情報を生成させる自ノード情報生成ステップと、
前記プロセッサに、前記監視パスでの通信を可能とする他ノードから、前記所定の条件に対応する他ノードの情報を収集させる他ノード情報収集ステップと、
前記プロセッサに、前記自ノードの情報又は前記他ノードの情報が存在する場合、前記他ノードの情報及び前記自ノードの情報に基づいて、少なくとも前記自ノードを含むとともに前記監視パスで通信可能なノードで構成される自グループの優先度を生成させる優先度生成ステップと、
前記プロセッサに、前記自グループの優先度と、前記自ノードが前記監視パスでの通信を不可能とするノードから構成される他グループの優先度とに基づいて、クラスタとして再構築するグループを決定させるグループ決定ステップと
を実行させることを特徴とするクラスタ再構築プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クラスタシステムにおけるクラスタ再構築方法、クラスタ再構築装置及びクラスタプログラムに関し、特に、障害時に、系切り替え制御を行う技術に関するクラスタシステムに適用して好適なものである。
【背景技術】
【０００２】
いわゆるクラスタシステムでは、クラスタプログラムが、ノード間で通信を行うことで、他ノードの死活状態を判断している。そのため、ノード間通信で用いるネットワークに障害が発生すると、通信ができないノード同士で互いに相手側のノードに障害が発生したと判断する。このような状態はネットワークスプリットと呼ばれ、複数クラスタ上で同一アプリケーションが実行され、共有リソースに対する競合が発生し、データが破壊されるおそれがある。そのため、一般的なクラスタプログラムでは、上記のような現象が起こらないよう、ネットワークスプリットが発生した場合に、クラスタ構成を再構築する方法が行われている。【０００３】
そのような再構築方法の一例として、従来のクラスタシステムでは、ネットワークスプリットが発生すると、予め各ノードに設定されたリセット優先度に基づき、ノードごとに時間差を設けてリセットを発行することで、最もリセット優先度が高いノードと通信ができないノードをリセットし、最もリセット優先度が高いノードと通信可能なグループをクラスタとして再構築する方法（以下、「第１の方法」と称する。）が採用されている（特許文献１参照）。【０００４】
また、その再構築方法の他の例として、従来のクラスタシステムでは、ネットワークスプリットが発生すると、通信可能なノード同士で形成されるグループのノード数を、クォーラムディスクと呼ばれるハードディスクに書き込むことで、他グループのノード数を把握し、最大ノード数となるグループをクラスタとして再構築する方法（以下、「第２の方法」と称する。）が採用されている（特許文献２参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−１８１５９７号公報
【特許文献２】特開２００８−１９２１３９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述した第１の方法では、リセット優先度が予め設定されているため、ネットワークスプリット発生時に、グループで実行中の処理内容に応じてクラスタを再構築することができないという問題がある。そのため、第１の方法では、ネットワークスプリットが発生した際に、最もリセット優先度が高いノードを含まないクラスタグループのノードで、金融機関のシステムにおける入出金処理のようなトランザクション処理をアプリケーションが実行中であった場合、トランザクション処理を処理中のノードが、最もリセット優先度が高いノードからリセットされてしまい、トランザクション処理が中断される可能性がある。【０００７】
また、第２の方法では、最大ノード数となるグループをクラスタとして再構築するが、稼働率がノードごとに同じとは限らないため、稼働率の低いノードが最大ノード数グループとして固まった場合、最大ノード数グループが最も可用性の高いグループであるとは限らないという事態を招来してしまうという問題がある。そのため、第２の方法では、最も可用性の高いグループでクラスタを再構築することができない可能性がある。【０００８】
本発明は以上の点を考慮してなされたもので、ネットワークスプリットが発生した場合に、グループの処理内容から、クラスタとして構築するのに最適なグループを選択することができるクラスタ再構築方法及びクラスタシステムを提案しようとするものである。
【課題を解決するための手段】
【０００９】
かかる課題を解決するため、本発明においては、互いに監視パスで接続された複数のノードを含むクラスタシステムのクラスタ再構築方法であって、前記複数のノードのうちのいずれか所定のノードが、所定の条件を保持し、前記所定の条件に対応する自ノードの情報を生成する自ノード情報生成ステップと、前記所定のノードが、前記監視パスでの通信を可能とする他ノードから、前記所定の条件に対応する他ノードの情報を収集する他ノード情報収集ステップと、前記所定のノードが、前記自ノードの情報又は前記他ノードの情報が存在する場合、前記他ノードの情報及び前記自ノードの情報に基づいて、少なくとも前記自ノードを含むとともに前記監視パスで通信可能なノードで構成される自グループの優先度を生成する優先度生成ステップと、前記所定のノードが、前記自グループの優先度と、前記自ノードが前記監視パスでの通信を不可能とするノードから構成される他グループの優先度とに基づいて、クラスタとして再構築するグループを決定するグループ決定ステップとを含むことを特徴とする。【００１０】
また、本発明においては、互いに監視パスで接続された複数のノードを含むクラスタシステムのクラスタ構成再構築装置であって、前記複数のノードは、それぞれ、所定の条件を保持し、前記所定の条件に対応する自ノードの情報を生成する一方、前記監視パスでの通信を可能とする他ノードから、前記所定の条件に対応する他ノードの情報を収集するノード情報収集部と、前記自ノードの情報又は前記他ノードの情報が存在する場合には、前記他ノードの情報及び前記自ノードの情報に基づいて、少なくとも前記自ノードを含むとともに前記監視パスで通信可能なノードで構成される自グループの優先度を生成し、前記自グループの優先度と、前記自ノードが前記監視パスでの通信を不可能とするノードから構成される他グループの優先度とに基づいて、クラスタとして再構築するグループを決定するグループスコア作成部とを有することを特徴とする。【００１１】
また、本発明においては、互いに監視パスで接続された複数のノードを含むクラスタシステムにおけるクラスタ再構築装置のクラスタ再構築プログラムであって、前記クラスタ再構築装置のプロセッサに、前記複数のノードのうちのいずれか所定のノードが保持する所定の条件に対応した自ノードの情報を生成させる自ノード情報生成ステップと、前記プロセッサに、前記監視パスでの通信を可能とする他ノードから、前記所定の条件に対応する他ノードの情報を収集させる他ノード情報収集ステップと、前記プロセッサに、前記自ノードの情報又は前記他ノードの情報が存在する場合、前記他ノードの情報及び前記自ノードの情報に基づいて、少なくとも前記自ノードを含むとともに前記監視パスで通信可能なノードで構成される自グループの優先度を生成させる優先度生成ステップと、前記プロセッサに、前記自グループの優先度と、前記自ノードが前記監視パスでの通信を不可能とするノードから構成される他グループの優先度とに基づいて、クラスタとして再構築するグループを決定させるグループ決定ステップとを実行させることを特徴とする。
【発明の効果】
【００１２】
本発明によれば、ネットワークスプリットが発生した場合に、グループの処理内容から、クラスタとして構築するのに最適なグループを選択することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明を適用した一実施の形態であるクラスタシステムの構成例を示すブロック図である。
【図２】クラスタシステムのグループスコア作成部が管理する優先定義の構成を示す。
【図３】クラスタシステムのグループスコア作成部が管理するノード情報管理表の構成を示す。
【図４】クラスタシステムのグループスコア作成部が管理するグループスコア管理表の構成を示す。
【図５】クラスタシステムの監視部が他ノードの監視時に行う処理の流れを示す。
【図６】クラスタシステムのグループスコア作成部において、障害ノードの通知、ノード情報の通知及びリセット実行済みを示す通知を受信した場合の処理の流れを示す。
【図７】クラスタシステムのリセット部において、グループスコア管理表の通知及びリセット要求を受信した場合の処理の流れを示す。
【図８】クラスタシステムの系切替部において、リセット完了の通知及びアプリケーション障害を示す通知を受信した場合に行う処理の流れを示す。
【発明を実施するための形態】
【００１４】
以下、図面について、本発明の一実施の形態について詳述する。
【００１５】
（１）本実施の形態によるクラスタシステムの構成
図１は、本実施の形態におけるクラスタシステムの構成例を示す。クラスタシステムは、ノードＡ１１０１、ノードＢ１２０１及びノードＣ１３０１を有し、それらが、ネットワーク１００１、リセットパス１００２及び監視パス１００３と通信可能に互いに接続されている。各ノードの構成は、ほぼ同様であるため、以下では、主にノードＡ１１０１について説明する。
【００１６】
ノードＡ１１０１は、ＣＰＵ１１０２（プロセッサ）、ネットワークアダプタ（ＮＩＣ）１１０３、メモリ１１０４及びリセット装置１１０５を備えている。ノードＡ１１０１は、ＣＰＵ１１０２に後述する手順の処理を実行させるためのプログラム（クラスタ再構築プログラム）をメモリ１１０４に有する。ネットワークアダプタ（ＮＩＣ）１１０３は、外部との通信を送受信するための装置である。
【００１７】
メモリ１１０４は、後述するクラスタ監視部１１１２が動作するための記憶装置である。このメモリ１１０４は、オペレーティングシステム（以下、ＯＳと称する）１１１０、アプリケーション１１１１及びクラスタ監視部１１１２を有する。このクラスタ監視部１１１２は、上述したクラスタ再構築プログラムに相当する。リセット装置１１０５は、自らが搭載されているノード（以下、自ノードという）以外のノード（以下、他ノードという）からリセット要求を受け取った時に自ノードを停止させるための装置である。
【００１８】
ＮＩＣ１１０３は、アプリケーション１１１１の業務処理に伴う外部との通信に用いられたり、クラスタ監視部１１１２が他ノードを監視するための通信に用いられたり、クラスタ監視部１１１２が他ノードをリセットする際に行うリセット部との通信に用いられる。図１では、ノードＡ１１０１が複数のＮＩＣ１１０３を搭載している構成を例示したが、同一のＮＩＣでこれら通信を担うようにしても良い。
【００１９】
クラスタ監視部１１１２は、ソフトウェアとハードウェアとの協働により、次のような各モジュールを実行する。このクラスタ監視部１１１２は、上述したクラスタ再構築プログラムに相当し、監視部１１２０、通信部１１２１、ノード情報収集部１１２２、グループスコア作成部１１２３及び系切替部１１２４を有する。
【００２０】
監視部１１２０は、自ノードのアプリケーション１１１１が正常動作するか監視する機能と、自ノードのアプリケーション１１１１に障害が発生した場合に、他ノードのクラスタ監視部１２１２などに障害が発生したことを通信部１１２１を介して通知する機能と、通信部１１２１を介して他ノードのクラスタ監視部の状態を監視する機能と、ノード情報収集部１１２２に対して正常動作しているアプリケーションを通知する機能と、他ノードのクラスタ監視部１２１２などの障害を検知した場合に、グループスコア作成部１１２３に対し、障害が発生しているノード（以下、障害ノードともいう）を通知する機能とを備える。
【００２１】
通信部１１２１は、ＮＩＣ１１０３を介して、他ノード１２０１Ａなどのクラスタ監視部１２１２などと通信する機能と、グループスコア作成部１１２３からの指示により、自ノードのリセット部１１１３に対して通知したり、他ノードのリセット部と通信したりする機能を持つ。
【００２２】
ノード情報収集部１１２２は、アプリケーション１１１１、ＯＳ１１１０及び監視部１１２０からノードに関する情報を収集する機能と、グループスコア作成部１１２３からノード情報の要求があった場合に、グループスコア作成部１１２３にノード情報を通知する機能を有する。
【００２３】
ノード情報収集部１１２２は、所定の条件を保持し、所定の条件に対応する自ノードの情報を生成する一方、監視パス１１０３での通信を可能とする他ノードから、その所定の条件に対応する他ノードの情報を収集する。
【００２４】
ここでいう、所定の条件とは、優先順位を有する複数の条件である。後述するように、各ノード１１０１では、グループスコア作成部１１２３が、複数の条件の夫々に対応する自ノードの情報を生成し、自グループの優先度を生成する際、複数の条件の夫々に対し優先度を生成し、クラスタとして再構築するグループを決定する際、優先順位に応じて、他グループの優先度と比較を行うことで再構築グループを決定する。
【００２５】
また、ここでいう所定の条件は、例えば、各ノード１１０１などのハードウェア使用率（稼動率）、又は、各ノード１１０１などで稼動するアプリケーションが実行中である特定の処理の数を含んでいても良い。ここでいう特定の処理は、例えば、アプリケーションによるデータライト処理又はデータリード処理を含んでいる。また、上述した所定の条件としては、例えば、各ノード１１０１で稼動するアプリケーション１１１１の種別又はその種別の名称を含んでいても良い。
【００２６】
グループスコア作成部１１２３は、例えば、自ノードの情報又は他ノードの情報が存在する場合には、他ノードの情報及び自ノードの情報に基づいて、少なくとも自ノードを含むとともに監視パスで通信可能なノードで構成される自グループの優先度を生成し、自グループの優先度と、自ノードが監視パス１００３での通信を不可能とするノードから構成される他グループの優先度とに基づいて、クラスタとして再構築するグループを決定する。
【００２７】
このグループスコア作成部１１２３は、例えば、以下のような７つの機能を有する。具体的には、グループスコア作成部１１２３は、優先定義１１３０の優先情報に基づき、ノード情報収集部１１２２からノード情報を取得する機能と、障害ノードを除く他ノードのクラスタ監視部に対し通信部１１２１を介してそのノード情報を通知する機能と、ノード情報収集部１１２２から取得したノード情報と障害ノードを除く他ノードのクラスタ監視部から通知されるノード情報とから、優先定義１１３０の優先条件に基づきグループスコアを作成する機能と、自ノードのリセット部１１１３に対して通信部１１２１を介してグループスコア管理表１１３２を通知する機能と、監視部１１２０から通知された障害ノードに対して通信部１１２１を介してグループスコア管理表１１３２を載せたリセット要求を通知する機能と、リセットが成功した場合に、通信部１１２１を用いて系切替部１１２４と障害ノードを除く他ノードのクラスタ監視部に障害ノードのリセット成功を通知する機能と、障害ノードを全てリセットした場合に、自ノードのリセット部１１１３に対して、全ての障害ノードをリセットしたことを通知する機能とを備えている。
【００２８】
さらに、グループスコア作成部１１２３は、優位なグループを決定するために必要な情報と条件を保持した優先定義１１３０と、各ノードの死活情報やノード情報を保持するためのノード情報管理表１１３１と、自ノードを含むグループの情報を保持するためのグループスコア管理表１１３２とを保持する。
【００２９】
系切替部１１２４は、グループスコア作成部１１２３及び、障害ノードを除く他ノードのクラスタ監視部１２１２又は１３１２からリセット完了の通知があった場合、又は、当該他ノードのクラスタ監視部１２１２又は１３１２からアプリケーションに障害が発生したことを示す通知があった場合、自ノードが障害により終了したアプリケーションを引き継ぐ必要があるか否か判断する。系切替部１１２４は、必要がある場合、障害により終了したアプリケーションを引き継ぐ機能を有する。
【００３０】
リセット装置１１０５のリセット部１１１３は、自グループがクラスタとして再構築するグループであると決定された場合、当該自グループに属するノードをリセットする。また、リセット部１１１３は、当該自グループに属するノードをリセットする際に、リセット要求とともに自グループの優先度を、クラスタを構成するノードに通知し、その通知を他ノードから受けた際に、その通知に含まれるグループ優先度が、当該自グループの優先度より低い場合、当該自ノードのリセットを防止している。
【００３１】
（２）テーブルなどの構成
次に図２、図３及び図４を用いて、優先定義１１３０、ノード情報管理表１１３１及びグループスコア管理表１１３２が有する情報について詳細に説明する。
【００３２】
図２は、優先定義１１３０が有する情報を示した図である。優先定義１１３０には、以下に示した３つの情報が保持される。
【００３３】
（ａ）優先条件を一意に識別するための優先番号２１
（ｂ）優先条件に基づきより優位なグループを決めるために必要な情報を示す優先情報２２
（ｃ）クラスタを構築するグループとして最適なグループの条件を示す優先条件２３
【００３４】
図３は、ノード情報管理表１１３１に含まれる情報を示した図である。ノード情報管理表１１３１には、以下に示した３つの情報が保持される。
【００３５】
（ａ）各ノードを一意に識別するためのノード名３１
（ｂ）障害ノードであることを表す障害発生フラグ３２
（ｃ）優先定義１１３０の優先情報２２に基づき取得された各ノードのノード情報を示す第１〜第４ノード情報３３〜３６
【００３６】
ノード情報管理表１１３１には、上記優先番号２１の数だけノード情報を登録する列が追加される。
【００３７】
障害発生フラグ３２は、グループスコア作成部１１２３が監視部１１２０から通知された障害ノードに対して設定する。本実施の形態では、説明を容易にするため、ネットワークスプリットが発生し、ノードＣ１３０１に生じた障害によって、ノードＢ１２０１とノードＣ１３０１との間で通信が切断された例を示している。このため、ノードＡ１１０１の監視部１１２０がノードＣ１３０１の障害を検知し、グループスコア作成部１１２３に対してノードＣ１３０１の障害を通知する。このため、ノード名３１が「Ｃ」の障害発生フラグ３２がオフ（図示上では空欄に相当）からオン（図示の丸印に相当）設定される。
【００３８】
第１〜４ノード情報３３〜３６には、各ノードのグループスコア作成部１１２３などが、優先定義１１３０の優先情報２２に基づき各ノードのノード情報収集部１１２２などから取得したノード情報が格納される。本実施の形態では、一例として、ノードＡ１１０１の監視部１１２０がノードＣ１３０１の障害を検知している。このため、ノードＣ１３０１のノード情報が格納されていない。その他ノードのノード情報については、以下で説明する。
【００３９】
優先番号２１が「１」の優先情報２２は、「ノードの稼働率」であるため、第１ノード情報３３には、ノードＡ１１０１及びノードＢ１２０１のそれぞれの稼働率を示す「９５.０」及び「９０.０」が設定される。これらの稼働率は、予めノード情報収集部に指定された値であってもよいし、ノード情報収集部１１２２が統計情報をとり、計算により求めた値でもよい。
【００４０】
優先番号２１が「２」の優先情報２２は、「データ書き込み処理中のアプリケーション数」であるため、第２ノード情報３４には、ノードＡ１１０１とノードＢ１２０１におけるデータ書き込み処理中のアプリケーションの数が、それぞれ設定される。例えば、アプリケーション１１１１がデータ書き込み処理中であり、かつ、アプリケーション１２１１がデータ書き込み処理を行っていなかった場合、第２ノード情報３４には、「１」と「０」がそれぞれ設定される。データ書き込み処理中のアプリケーション数は、ノード情報収集部１１２２に対して処理開始と処理終了を通知することができるプログラムを、アプリケーションがデータ書き込み処理を開始時と終了時に実行することで、ノード情報収集部１１２２によって把握される。
【００４１】
優先番号２１が「３」の優先情報２２は、「起動中のアプリケーション名」であるため、第３ノード情報３５には、ノードＡ１１０１とノードＢ１２０１でそれぞれ起動中のアプリケーションの名称である「アプリケーション１１１１」と「アプリケーション１２１１」が設定される。
【００４２】
優先番号２１が「４」の優先情報２２は、「ネットワーク使用率」であるため、第４ノード情報３６には、ノードＡ１１０１とノードＢ１２０１におけるネットワーク使用率を表す「４０」と「６０」がそれぞれ設定される。
【００４３】
図４は、グループスコア管理表１１３２が有する情報を示した図である。グループスコア管理表１１３２には、以下に示した２つの情報が保持される。
【００４４】
（ａ）グループスコアがどの優先条件に基づき作成されたかを示す優先番号２１
（ｂ）自ノードと監視パスを介して互いに通信し合えるノードで形成されるグループの前記優先条件２３に基づく優位度を示すグループスコア４１
【００４５】
優先番号２１は、優先定義１１３０の優先番号２１と同じ値が設定される。一方、グループスコア４１は、ノード情報管理表１１３１のノード情報から作成されたスコアを示す。本実施の形態では、一例として、ノードＡ１１０１とノードＢ１２０１がグループを形成するので、ノード情報管理表１１３１のノードＡ１１０１とノードＢ１２０１のノード情報から作成されたスコアが、グループスコア４１に格納される。
【００４６】
優先番号２１が「１」の優先条件２２が「稼働率の高いグループが優位」であるため、優先番号２１が「１」のグループスコア４１には、第１ノード情報３３から計算によって求めたグループの稼働率「９８.５」が格納される。
【００４７】
優先番号２１が「２」の優先条件２２が「データ書き込み処理中のアプリケーション数が多いグループが優位」であるため、優先番号２１が「２」のグループスコア４１には、第２ノード情報３４の合計値である「１」が格納される。
【００４８】
優先番号２１が「３」の優先条件２２が「アプリケーション１３１１が起動中のグループが優位」であるため、優先番号２１が「３」のグループスコア４１には、第３ノード情報３５にアプリケーション１３１１の名前が存在しないことを示す「０」が設定される。一方、第３ノード情報３５にアプリケーション１３１１の名前が存在する場合は「１」が設定される。
【００４９】
優先番号２１が「４」の優先条件２２が「ネットワーク使用率の平均値が高いグループが優位」であるため、優先番号２１が「４」のグループスコア４１には、第４ノード情報３６から計算によって求めたグループのネットワーク使用率の平均値を表す「５０」が格納される。
【００５０】
なお、本実施の形態では、説明を容易にするために、ノード情報収集部１１２２及びグループスコア作成部１１２３が、クラスタ監視部１１１２内のプログラムのモジュールとして構成されている例を示したが、クラスタ監視部１１１２とは別のプログラム内のモジュールとしても良い。また、優先情報２２が、グループスコア作成部１１２３の管理する優先定義１１３０で保持する情報としたが、ノード情報収集部１１２２が保持する情報としても良い。
【００５１】
リセット装置１１０５は、次のような機能を搭載するリセット部１１１３を有する。即ち、リセット部１１１３は、クラスタ監視部１１１２からの要求に応じて自ノードをリセットする機能を有する。より具体的には、このリセット部１１１３は、自ノードのクラスタ監視部１１１２から通知されるグループスコア管理表１１３２を保持する機能と、自身が保持するグループスコアと他ノードのクラスタ監視部からのリセット要求で通知されるグループスコアを比較し、自ノードのリセットを実行するか防止するか判断する機能と、自ノードを停止させる機能と、リセットを実行したことをクラスタ監視部に通知する機能とを持つ。なお、自ノードを停止させる処理は、自ノードの共有リソース使用を終了させることができれば良いので、例えば電源オフであったり、ＯＳのシャットダウンであったりしても良い。
【００５２】
本実施の形態では、説明を容易にするために、リセット部１１１３がリセット装置１１０５内のモジュールである例を示したが、リセット装置１１０５とは別の装置内のモジュールとしても良く、ノードごとに存在する必要はない。また、リセット部１１１３は、ノードＡ１１０１内の他の装置から独立したリセット専用の装置内のモジュールである必要はなく、メモリ１１０４上で動作するプログラムでも良い。
【００５３】
（３）クラスタ再構成方法の一例
（３−１）概念
本実施の形態では、クラスタ再構成方法の一例として、クラスタ再構築プログラムが、ＣＰＵ１１０２に、次のような３つのステップを実行させる。まず、自ノード情報生成ステップでは、ノードＡ１１０１のＣＰＵ１１０２が、ノード情報収集部１１２２に、複数のノード１１０１，１２０１，１３０１のうちのいずれか所定のノード１１０１が、所定の条件を保持し、所定の条件に対応する自ノードの情報を生成する。他ノード情報収集ステップでは、ノードＡ１１０１のＣＰＵ１１０２が、監視パス１００３での通信を可能とする他ノード１２０１，１３０１から、所定の条件に対応する他ノードの情報を収集する。
【００５４】
次に、優先度生成ステップでは、ノードＡ１１０１のＣＰＵ１１０２が、グループスコア作成部１１２３に、所定のノード１１０１が、自ノードの情報又は他ノードの情報が存在する場合、他ノードの情報及び自ノードの情報に基づいて、少なくとも自ノードを含むとともに監視パス１００３で通信可能なノードで構成される自グループの優先度を生成する。次に、グループ決定ステップでは、ノードＡ１１０１のＣＰＵ１１０２が、グループスコア作成部１１２３に、自グループの優先度と、自ノードが監視パスでの通信を不可能とするノードから構成される他グループの優先度とに基づいて、クラスタとして再構築するグループを決定する。
【００５５】
（３−２）具体例
図５から図８は、それぞれ本実施の形態におけるクラスタ監視部１１１２の動作と、リセット部１１１３の動作を説明したフローチャートである。まず、図５は、監視部１１２０が、他ノードの監視時に行う処理を説明したフロー図である。
【００５６】
監視部１１２０は、まず、他ノードのクラスタ監視部と監視パス１００３を介して接続しているか判断する（ＳＰ５０１）。監視部１１２０は、このステップ５０１において、接続していないと判断した場合、何もせずに終了する。監視部１１２０は、接続していると判断した場合、全てのノードのクラスタ監視部１１１２，１２１２，１３１２に対してハートビートメッセージを送信する（ＳＰ５０２）。
【００５７】
監視部１１２０は、ハートビートメッセージを送信すると、他ノードのクラスタ監視部から、ハートビートが届いているか否かをチェックする（ＳＰ５０３）。併せて監視部１１２０は、一定期間ハートビートが届いていないノードがあるか判断する（ＳＰ５０４）。監視部１１２０は、このステップ５０４において一定期間ハートビートが届いていないノードが存在しないと判断した場合、何もせずに処理を終了する（次回のハートビート監視まで待機する）。一方、監視部１１２０は、一定期間ハートビートが届いていないノードが存在すると判断した場合、そのノードに障害が発生したとみなし、グループスコア作成部１１２３に障害ノードを通知する（ＳＰ５０５）。
【００５８】
図６は、グループスコア作成部１１２３が、障害ノードの通知、ノード情報の通知及びリセット実行済みを示す通知を受信した場合における処理の一例を示す。
【００５９】
まず、グループスコア作成部１１２３は、受信した通知の通知元が自ノードの監視部１１２０であるか否かを判断する（ＳＰ６０１）。通知元が監視部１１２０である場合、グループスコア作成部１１２３は、通知された障害ノードのノード情報管理表１１３１の障害発生フラグ３２を設定する（ＳＰ６０２）。次にグループスコア作成部１１２３は、優先定義１１３０の優先情報２２に設定されている情報に基づき、ノード情報収集部１１２２から自ノードのノード情報を取得し、この取得したノード情報をノード情報管理表１１３１に登録する（ＳＰ６０３）。
【００６０】
次に、クラスタ監視部１１１２は、この取得したノード情報（自ノードの情報）を、障害発生フラグが設定されていない（正常に稼動中の）ノードのクラスタ監視部に通知する（ＳＰ６０４）。その後、クラスタ監視部１１１２は、障害発生フラグが設定されていないノードのクラスタ監視部から通知されてくるノード情報をノード情報管理表１１３１に登録する（ＳＰ６０５）。クラスタ監視部１１１２は、ノード障害フラグが設定されていない全てのノードから、ノード情報通知を受信したかを判断する（ＳＰ６０６）。
【００６１】
上記ステップ６０６において、クラスタ監視部１１１２が、ノード情報が揃っていないと判断した場合、再び他ノードのノード情報の通知を受信する処理（ＳＰ６０５）に戻って実行する。一方、クラスタ監視部１１１２は、ノード情報が揃ったと判断した場合、自ノードのノード情報と受信済みの他ノードのノード情報とから、グループの優先条件２３に基づく優位度を表すグループスコア４１を作成する（ＳＰ６０７）。
【００６２】
グループスコア作成部１１２３は、作成したグループスコア管理表１１３２を自ノードのリセット部１１１３に対して通知した後（ＳＰ６０８）、障害ノードのリセット部１３１３に対してグループスコア管理表１１３２を載せたリセット要求を発行する（ＳＰ６０９）。
【００６３】
一方、上記ステップ６０１において通知元がリセット部であった場合、受信した通知はリセット実行済みであることを示す通知であるため、グループスコア作成部１１２３は、監視部１１２０と、障害ノードを除く他ノードのクラスタ監視部とに対して、リセット完了を通知する（ＳＰ６１１）。
【００６４】
次に、グループスコア作成部１１２３は、リセットが完了したノードをノード情報管理表１１３１から削除した後（ＳＰ６１２）、障害ノード発生フラグ３２が設定されたノードが残っているか確認する（ＳＰ６１３）。このステップ６１３で、グループスコア作成部１１２３は、ノードが残っていると判断した場合、何もせずに処理を終了する。一方、グループスコア作成部１１２３は、ノードが残っていないと判断した場合、自ノードのリセット部１１１３に対して、障害ノードを全てリセットしたことを通知する（ステップ６１４）。グループスコア作成部１１２３は、ノード情報管理表１１３１のノード情報を全てクリアし（ステップ６１５）、クラスタを再構築した結果を管理コンピュータ１００４の画面に表示する。
【００６５】
図７は、リセット部１１１３が、クラスタ監視部１１０４から通知を受信した場合の処理を説明したフロー図である。リセット部１１１３は、受信した通知の通知元が自ノードのクラスタ監視部１１１２であるか否かを判断する（ＳＰ７０１）。リセット部１１１３は、自ノードのクラスタ監視部１１１２であった場合は、さらに通知内容がグループスコア管理表１１３２の通知であるかを判断する（ＳＰ７０２）。
【００６６】
リセット部１１１３は、このステップＳＰ７０２において通知内容がグループスコア管理表１１３２の通知であると判断した場合、グループスコア管理表１１３２を保持し（ＳＰ７０３）、終了する。一方、リセット部１１１３は、グループスコア管理表１１３２の通知ではない場合、受信した通知は全ての障害ノードをリセットしたことを示す通知なので、上記ステップＳＰ７０３で保持したグループスコア管理表１１３２を削除する（ＳＰ７１１）。
【００６７】
一方、受信した通知の通信元が自ノードのクラスタ監視部１１１２でない場合、この通知は他ノードのクラスタ監視部からのリセット要求であるため、リセット部１１１３は、自身が保持するグループスコア管理表１１３２と、リセット要求で通知されたグループスコア管理表とから、同じ優先番号のグループスコアを比較する（ＳＰ７２２）。
【００６８】
リセット部１１１３は、リセット要求のグループスコアの方が小さい場合、何もせずに処理を終了する。両グループスコアが等しい場合は、再びステップＳＰ７２２に戻り、リセット部１１１３は、次の優先番号のグループスコアを比較する。次の優先番号がない場合、リセット部１１１３は、通知元のＩＰアドレスなどのシステム内で一意に定まる値を用いて、リセット実行を判断する。一方、リセット部１１１３は、リセット要求のグループスコアの方が大きい場合は、自ノードのリセットを実行する（ＳＰ７３１）。
【００６９】
本実施の形態では、リセット部１１１３が、ノードＡ１１０１とノードＢ１２０１で形成されるグループと、ノードＣ１３０１のみで形成されるグループとのグループスコア同士を比較する。グループＣ１３０１のみで形成されるグループの優先番号２１が１のグループスコアが９８.５よりも大きい場合は、ノードＡ１１０１からノードＣ１３０１に対するリセットが防止され、ノードＣ１３０１からノードＡ１１０１に対するリセットが実行される。上記グループスコアが９８.５よりも小さい場合は、ノードＡ１１０１からノードＣ１３０１に対するリセットが実行され、ノードＣ１３０１からノードＡ１１０１に対するリセットが防止される。等しい場合は、次の優先番号のグループスコアが比較される。
【００７０】
ステップＳＰ７３１でリセットを実行したら、リセット要求元のクラスタ監視部に対して、リセット完了を通知し（ＳＰ７３２）、保持していたグループスコア管理表を削除する（ＳＰ７３３）。
【００７１】
なお、本実施の形態では、優先条件に優先度をつけるため、優先番号の順にグループスコアを比較し、グループスコアが等しかった場合だけ次の優先番号のグループスコアを比較する処理としているが、複数ある優先条件のうち、より多くの優先条件に適するグループをクラスタとして再構築した場合は、全てのグループスコアを比較してから、グループスコアが大きいと判断された回数でリセットの実行を判断してもよい。また、優先条件ごとに重みをつけることで、重みのつけられた優先条件を満たすグループがクラスタを再構築しやすくなるようにリセットの実行を判断してもよい。
【００７２】
図８は、系切替部１１２４が、リセット完了の通知及びアプリケーション障害を示す通知を受信した場合における処理の一例を示す。系切替部１１２４は、リセット完了の通知及びアプリケーション障害を示す通知を受信すると、リセットされた障害ノードの処理を引き継ぐ必要があるか判断する（ＳＰ８０１）。系切替部１１２４は、このステップ８０１においてその障害ノードの処理を引き継ぐ必要がないと判断した場合、何もせずに処理を終了する。系切替部１１２４は、その障害ノードの処理を引き継ぐ必要があると判断した場合、系切り替え処理を行う（ＳＰ８０２）。
【００７３】
（４）本実施の形態の効果等
以上説明したように、上記実施の形態によれば、ネットワークスプリットが発生した場合に、グループの処理内容から、クラスタとして構築するのに最適なグループを選択することができる。
【００７４】
（５）その他の実施形態
上記実施形態は、本発明を説明するための例示であり、本発明をこれらの実施形態にのみ限定する趣旨ではない。本発明は、その趣旨を逸脱しない限り、様々な形態で実施することができる。例えば、上記実施形態では、各種プログラムの処理をシーケンシャルに説明したが、特にこれにこだわるものではない。従って、処理結果に矛盾が生じない限り、処理の順序を入れ替え又は並行動作するように構成しても良い。
【符号の説明】
【００７５】
１００１……ネットワーク、１００２……リセットパス、１００３……監視パス、１００４……管理コンピュータ、１１０１，１２０１，１３０１……ノード、１１０２……ＣＰＵ、１１０３……ＮＩＣ、１１０４……メモリ、１１０５，１２０５，１３０５……リセット装置、１１１０……ＯＳ、１１１１，１２１１，１３１１……アプリケーション、１１１２，１２１２，１３１２……クラスタ監視部、１１１３，１２１３，１３１３……リセット部、１１２０……監視部、１１２１……通信部、１１２２，１２２２，１３２２……ノード情報収集部、１１２３、１２２３，１３２３……グループスコア作成部、１１２４，１２２４，１３２４……系切替部、１１３０……優先定義、１１３１，１２３１，１３３１……ノード情報管理表、１１３２，１２３２，１３３２……グループスコア管理表。
【図１】
0005387761.tif 000002
【図２】
0005387761.tif 000003
【図３】
0005387761.tif 000004
【図４】
0005387761.tif 000005
【図５】
0005387761.tif 000006
【図６】
0005387761.tif 000007
【図７】
0005387761.tif 000008
【図８】
0005387761.tif 000009