(57)【要約】【課題】同期化完了前でも、待機系計算機がサービスを引き継ぐことを可能とする。【解決手段】稼動系ノード１０-1の送信部１０９-1はデータ更新発生時、対応する領域の情報を更新反映待ち情報記憶部１０３-1に格納すると共に、当該データ更新を待機系ノード１０-2に反映させる。ノード１０-2の受信部１１０-2は更新領域情報をノード１０-1に通知し、未更新領域情報記憶部１０４-2から対応する未更新領域情報を削除する。ノード１０-1の更新反映待ち部１１１-1は、通知された更新領域情報の示す領域に対応する更新反映待ち情報を記憶部１０３-1から削除する。ノード１０-1の組込要求受理部１１３-1はノード１０-2の組込要求部１１２-2から同期化処理開始が要求された場合、記憶部１０３-1に記憶されている更新反映待ち情報を未更新領域情報として記憶部１０４-2に記憶させ、しかる後に対応する領域のデータをノード１０-2に反映させる。【選択図】図１
2008140079.tif 000002
【特許請求の範囲】
【請求項１】
第１及び第２の計算機のいずれか１つが所定のサービスの提供に関して稼動系計算機として機能すると共に、前記第１及び第２の計算機の残りが待機系計算機として機能し、前記稼動系計算機で障害が発生した場合に、当該稼動系計算機で開始されているサービスを前記待機系計算機が引き継ぐクラスタシステムにおいて、
前記第１及び第２の計算機の各々は、
データを記憶するデータ記憶手段と、
前記稼動系計算機として機能している状態でデータ更新が発生した前記データ記憶手段の領域の情報を、前記待機系計算機でのデータ更新に未反映の領域を表す更新反映待ち情報として記憶する更新反映待ち情報記憶手段と、
前記発生したデータ更新を前記待機系計算機に反映させるための更新要求情報を当該待機系計算機に送信する更新要求情報送信手段と、
前記待機系計算機として機能している状態で前記稼動系計算機で発生したデータ更新が当該待機系計算機に反映されていない領域の情報を未更新領域情報として記憶する未更新領域情報記憶手段と、
前記待機系計算機として機能している状態で前記稼動系計算機の前記更新要求情報送信手段から送信された更新要求情報を受信して、当該稼動系計算機で発生したデータ更新を当該更新要求情報に基づいて前記待機系計算機の前記データ記憶手段に反映させて、当該データ更新が反映された領域の更新領域情報を当該稼動系計算機に通知すると共に、当該データ更新が反映された領域に対応する未更新領域情報が前記待機系計算機の前記未更新領域情報記憶手段に記憶されている場合には当該未更新領域情報を削除する更新要求情報受信手段と、
前記更新要求情報に対して前記待機系計算機の前記更新要求情報受信手段から前記稼動系計算機に更新領域情報が通知された場合、当該更新領域情報の示す領域に対応する更新反映待ち情報を当該稼動系計算機の前記更新反映待ち情報記憶手段から削除する更新反映待ち手段と、
前記待機系計算機として機能している状態で障害が発生して当該待機系計算機が一旦動作を停止し、その後障害から復旧した場合に、前記稼動系計算機に対して同期化処理の開始を要求して、当該稼動系計算機の前記更新反映待ち情報記憶手段に記憶されている更新反映待ち情報を当該稼動系計算機から取得して、当該更新反映待ち情報を未更新領域情報として前記待機系計算機の前記未更新領域情報記憶手段に格納する組み込み要求手段と、
前記稼動系計算機として機能している状態で前記待機系計算機の前記組み込み要求手段から同期化処理の開始が要求された場合、当該稼動系計算機の前記更新反映待ち情報記憶手段に記憶されている更新反映待ち情報を当該組み込み要求手段に送信すると共に、当該更新反映待ち情報によって表される領域のデータを当該稼動系計算機の前記データ記憶手段から読み出し、当該データにより前記待機系計算機の前記データ記憶手段の対応する領域のデータを更新させるための同期化処理に必要な更新要求情報を当該待機系計算機の前記更新要求情報受信手段に送信する組込要求受理手段とを具備する
ことを特徴とするクラスタシステム。
【請求項２】
前記第１及び第２の計算機の各々は、
当該計算機で前記サービスが開始されている状態で、当該サービスにより発行される参照要求を検知して、当該検知された参照要求の指定する領域が未更新領域であるかを当該計算機の前記未更新領域情報記憶手段に記憶されている未更新領域情報に基づいて判別し、未更新領域である場合には、前記未更新領域情報記憶手段から対応する未更新領域情報が削除されるまで当該参照要求の実行を待ち合わせるデータ要求監視手段を更に具備することを特徴とする請求項１記載のクラスタシステム用計算機。
【請求項３】
前記第１及び第２の計算機の各々は、
当該計算機の前記未更新領域に未更新領域を示す未更新領域情報が記憶されている状態で前記サービスを引き継いだ場合であって、当該計算機の前記データ要求監視手段によって検知された参照要求の指定する領域が未更新領域である場合、当該領域のデータを前記サービスを引き継ぐまで当該サービスが開始されていて現在は当該サービスが停止されている計算機に要求するために、当該領域を表す参照領域情報を当該サービスが停止されている計算機に送信するデータ要求手段と、
前記サービスが停止されている状態で前記サービスが開始されている計算機の前記データ要求手段から参照領域情報が送信された場合、当該参照領域情報の指定する領域のデータを前記データ記憶手段から読み出し、当該データにより前記サービスが開始されている計算機のデータ記憶手段の対応する領域のデータを更新させるための更新要求情報を当該サービスが開始されている計算機の前記更新要求情報受信手段に送信するデータ要求受理手段と
を更に具備することを特徴とする請求項２記載のクラスタシステム。
【請求項４】
前記第１及び第２の計算機と同一構成の少なくとも１つの第３の計算機を更に具備し、
前記第１及び第２の計算機並びに前記少なくとも１つの第３の計算機の各々は、いずれか１つの計算機が稼動系となって、残りの各計算機が待機系となるように互いに合意をとりながら動作するクラスタ制御手段を具備し、
前記第１及び第２の計算機並びに前記少なくとも１つの第３の計算機の各々が有する前記更新反映待ち情報記憶手段は、当該計算機が前記稼動系計算機として機能し、残りの各計算機が前記待機系計算機として機能している場合、前記稼動系計算機でデータ更新が発生した前記データ記憶手段の領域の情報を、前記待機系計算機毎に、当該待機系計算機でのデータ更新に未反映の領域を表す更新反映待ち情報として記憶するのに用いられ、
前記第１及び第２の計算機並びに前記少なくとも１つの第３の計算機の前記クラスタ制御手段は、前記稼動系計算機で障害が発生した場合、当該稼動系計算機の前記更新反映待ち情報記憶手段に記憶されている前記待機系計算機毎の更新反映待ち情報の示す更新反映待ちの総領域量を比較し、当該更新反映待ちの総領域量が最も少ない計算機が前記サービスを引き継ぐように合意をとる
ことを特徴とする請求項１記載のクラスタシステム。
【請求項５】
稼動系計算機で障害が発生した場合に、当該稼動系計算機で開始されているサービスを待機系計算機が引き継ぐクラスタシステムに適用される、前記稼動系計算機及び前記待機系計算機各々が有するデータ記憶手段のデータを同期化するための同期化方法において、
前記稼動系計算機で当該稼動系計算機の前記データ記憶手段に対するデータ更新が発生した場合、当該データ更新が発生した領域の情報を、前記待機系計算機でのデータ更新に未反映の領域を表す更新反映待ち情報として前記稼動系計算機の更新反映待ち情報記憶手段に格納するステップと、
前記発生したデータ更新を前記待機系計算機に反映させるための更新要求情報を前記稼動計算機から前記待機系計算機に送信するステップと、
前記稼動計算機から前記待機系計算機に送信された更新要求情報に基づいて、前記稼動系計算機で発生したデータ更新を前記待機系計算機が当該待機系計算機の前記データ記憶手段に反映するステップと、
前記データ更新が反映された領域に対応する未更新領域情報が前記待機系計算機の未更新領域情報記憶手段に記憶されている場合には当該待機系計算機が当該未更新領域情報を削除するステップと、
前記データ更新が反映された領域の更新領域情報を前記待機系計算機から前記稼動系計算機に通知するステップと、
前記稼動系計算機に通知された更新領域情報の示す領域に対応する更新反映待ち情報を当該稼動系計算機が当該稼動系計算機の前記更新反映待ち情報記憶手段から削除するステップと、
前記待機系計算機で障害が発生して当該待機系計算機が一旦動作を停止し、その後障害から復旧した場合に、当該待機系計算機から前記稼動系計算機に対して同期化処理の開始を要求するステップと、
前記同期化処理の開始が要求された場合、前記稼動系計算機の前記更新反映待ち情報記憶手段に記憶されている更新反映待ち情報を当該稼動系計算機から前記待機系計算機に送信するステップと、
前記送信された更新反映待ち情報を未更新領域情報として前記待機系計算機の前記未更新領域情報記憶手段に当該待機系計算機が格納するステップと、
前記稼動系計算機が前記待機系計算機に送信した更新反映待ち情報によって表される領域のデータを当該稼動系計算機が当該稼動系計算機の前記データ記憶手段から読み出し、当該データにより前記待機系計算機の前記データ記憶手段の対応する領域のデータを更新させるための同期化処理に必要な更新要求情報を当該稼動系計算機から前記待機系計算機に送信するステップと
を具備することを特徴とする同期化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、稼動系計算機で障害が発生した場合に、当該稼動系計算機で開始されているサービスを待機系計算機が引き継ぐクラスタシステムに係り、特に稼動系計算機及び待機系計算機の各々がデータ記憶手段を有するクラスタシステムにおいて、当該データ記憶手段のデータを同期化するのに好適なクラスタシステム及び同期化方法に関する。
【背景技術】
【０００２】
従来から、システムの可用性を高める計算機システムとして、同一のサービスを提供可能な複数の計算機を含むクラスタシステムが知られている。この種のクラスタシステムでは、現在サービスを提供している計算機に障害が発生した場合、他の正常な計算機が当該サービスを開始する。このサービスの引き継ぎにより、サービスが使用不能になる時間を最小限にすることができる。
【０００３】
障害が発生した計算機から他の計算機がサービスを引き継ぐためには、各計算機がサービスを続行する上で必要となるデータを共有する必要がある。このデータ共有方式の１つとして、クラスタシステムに含まれる全ての計算機（ノード）が同じデータを個々に保持する分散共有方式が知られている。
【０００４】
分散共有方式を適用するクラスタシステムでは、あるノードにおいてデータの更新が発生した際には、当該ノードからクラスタシステム内の他のノードにネットワークを介して更新情報が送信される。この更新情報により、クラスタシステム内の他のノードにおいても上記あるノードでのデータ更新と同一のデータ更新が行われる。これにより、システム内の全てのノードが保持するデータの一致化（同期化）が図られる。このような、システム内の全てのノードが保持するデータを同期化させる仕組みは、例えば特許文献１に記載されている。
【特許文献１】特開２０００−２７６４２０（段落００２６）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
クラスタシステムでは、サービスを提供しているノード（計算機）の障害に備えて待機しているノード（待機系ノード）が存在する。待機系ノードが障害の発生により停止すると、その停止期間に他のノードで発生するデータ更新は当該待機系ノードに反映されない。このため、待機系ノードは、障害から復帰した場合に、他のノードからデータを送信してもらうことにより自身が保持するデータを他のノードのデータに一致化させる同期化処理を行う必要がある。この同期化処理が完了するまでの間は、たとえサービスを提供しているノード（稼動系ノード）に障害が発生しても、待機系ノードは当該待機系ノードが保持しているデータを利用できず当該サービスを引き継ぐ状態には至らない。
【０００６】
本発明は上記事情を考慮してなされたものでその目的は、待機系計算機の障害からの復帰時に行われる同期化処理が完了する前でも、当該待機系計算機が稼動系計算機からサービスを引き継ぐことが可能となるクラスタシステム及び同期化処理方法を提供することにある。
【課題を解決するための手段】
【０００７】
本発明の１つの観点によれば、第１及び第２の計算機のいずれか１つが所定のサービスの提供に関して稼動系計算機として機能すると共に、前記第１及び第２の計算機の残りが待機系計算機として機能し、前記稼動系計算機で障害が発生した場合に、当該稼動系計算機で開始されているサービスを前記待機系計算機が引き継ぐクラスタシステムが提供される。このクラスタシステムの第１及び第２の計算機の各々は、データを記憶するデータ記憶手段と、前記稼動系計算機として機能している状態でデータ更新が発生した前記データ記憶手段の領域の情報を、前記待機系計算機でのデータ更新に未反映の領域を表す更新反映待ち情報として記憶する更新反映待ち情報記憶手段と、前記発生したデータ更新を前記待機系計算機に反映させるための更新要求情報を当該待機系計算機に送信する更新要求情報送信手段と、前記待機系計算機として機能している状態で前記稼動系計算機で発生したデータ更新が当該待機系計算機に反映されていない領域の情報を未更新領域情報として記憶する未更新領域情報記憶手段と、前記待機系計算機として機能している状態で前記稼動系計算機の前記更新要求情報送信手段から送信された更新要求情報を受信して、当該稼動系計算機で発生したデータ更新を当該更新要求情報に基づいて前記待機系計算機の前記データ記憶手段に反映させて、当該データ更新が反映された領域の更新領域情報を当該稼動系計算機に通知すると共に、当該データ更新が反映された領域に対応する未更新領域情報が前記待機系計算機の前記未更新領域情報記憶手段に記憶されている場合には当該未更新領域情報を削除する更新要求情報受信手段と、前記更新要求情報に対して前記待機系計算機の前記更新要求情報受信手段から前記稼動系計算機に更新領域情報が通知された場合、当該更新領域情報の示す領域に対応する更新反映待ち情報を当該稼動系計算機の前記更新反映待ち情報記憶手段から削除する更新反映待ち手段と、前記待機系計算機として機能している状態で障害が発生して当該待機系計算機が一旦動作を停止し、その後障害から復旧した場合に、前記稼動系計算機に対して同期化処理の開始を要求して、当該稼動系計算機の前記更新反映待ち情報記憶手段に記憶されている更新反映待ち情報を当該稼動系計算機から取得して、当該更新反映待ち情報を未更新領域情報として前記待機系計算機の前記未更新領域情報記憶手段に格納する組み込み要求手段と、前記稼動系計算機として機能している状態で前記待機系計算機の前記組み込み要求手段から同期化処理の開始が要求された場合、当該稼動系計算機の前記更新反映待ち情報記憶手段に記憶されている更新反映待ち情報を当該組み込み要求手段に送信すると共に、当該更新反映待ち情報によって表される領域のデータを当該稼動系計算機の前記データ記憶手段から読み出し、当該データにより前記待機系計算機の前記データ記憶手段の対応する領域のデータを更新させるための同期化処理に必要な更新要求情報を当該待機系計算機の前記更新要求情報受信手段に送信する組込要求受理手段とを具備する。
【発明の効果】
【０００８】
本発明によれば、待機系計算機での同期化処理の開始に際して、稼動系計算機から取得される更新反映待ち領域の情報（更新反映待ち情報）が未更新領域情報として未更新領域情報記憶手段に記憶される。このため待機系計算機は、同期化処理が完了する前に稼動系計算機で障害が発生した場合でも、未更新領域情報記憶手段に記憶されている未更新領域情報に基づいて未更新領域を確認できるため、当該稼動系計算機で開始されていたサービスを速やかに引き継ぐことが可能となる。
【発明を実施するための最良の形態】
【０００９】
以下、本発明の実施の形態につき図面を参照して説明する。  
［第１の実施形態］
図１は本発明の第１の実施形態に係るクラスタシステムの構成を示すブロック図である。このクラスタシステムは、例えば２台の計算機（ノード）１０-1及び１０-2から構成されるものとする。なお、クラスタシステムが３台以上の計算機（ノード）から構成されていても構わない。ノード１０-1及び１０-2は、ネットワークのような通信路１１によって相互接続されている。
【００１０】
図１の状態では、あるサービスの提供に関して、ノード１０-1が稼動系として機能し、ノード１０-2が待機系として機能しているものとする。この状態において、別のサービスに関して、ノード１０-2が稼動系として機能し、ノード１０-1が待機系として機能することもある。但し、以下の説明では、便宜的にノード１０-1が稼動系ノードであり、ノード１０-2が待機系ノードであるとする。なお図１では、サービスの提供を受けるクライアント端末は省略されている。
【００１１】
ノード１０-1及び１０-2は、それぞれ、クラスタ制御部１００-1及び１００-2を有する。クラスタ制御部１００-1及び１００-2は、ノード１０-1及び１０-2の一方（１つ）が稼動系となって、他方（残り）が待機系となるように、通信路１１を介して互いに合意をとりながら動作する。クラスタ制御部１００-1及び１００-2は、障害検知部１０１-1及び１０１-2を有する。障害検知部１０１-1及び１０１-2は、通信路１１を介して互いに通信を行うことにより、それぞれノード１０-2及び１０-1の障害を検知する。
【００１２】
ノード１０-1及び１０-2は、それぞれ、データ記憶部１０２-1及び１０２-2と、更新反映待ち情報記憶部１０３-1及び１０３-2と、未更新領域情報記憶部１０４-1及び１０４-2とを有する。本実施形態において、データ記憶部１０２-1及び１０２-2は、それぞれハードディスクドライブのようなディスク記憶装置上に確保される。一方、更新反映待ち情報記憶部１０３-1及び１０３-2と、未更新領域情報記憶部１０４-1及び１０４-2とは、それぞれ書き換え可能な不揮発性メモリ内に確保される。なお、更新反映待ち情報記憶部１０３-1及び１０３-2と、未更新領域情報記憶部１０４-1及び１０４-2とが、それぞれディスク記憶装置上に確保されても構わない。
【００１３】
データ記憶部１０２-1及び１０２-2は、稼動系が提供するサービス１０５からの要求によって更新／参照されるデータを記憶する。データ記憶部１０２-1及び１０２-2の記憶領域は、複数の一定サイズの領域（ブロック、部分領域）に分割して管理される。各領域には、連続する番号であるアドレスが割り当てられる。図１では、作図の都合上、データ記憶部１０２-1及び１０２-2の記憶領域が９つの領域に分割して管理される例が示されている。この９つの領域には、図１に示されるように、それぞれアドレス１乃至９が割り当てられているものとする。
【００１４】
ノード１０-1が稼動系である図１の例では、当該ノード１０-1でサービス１０５が開始されている。サービス１０５は、データの変更（更新）が必要な場合には更新要求情報１０６を発行し、データの参照が必要な場合には参照要求情報１０７を発行する。
【００１５】
図２は更新要求情報１０６及び参照要求情報１０７のデータ構造例を示す。ここでは更新要求情報１０６は、更新領域情報と更新データとから構成される。更新領域情報は、データ記憶部１０２-1内の更新の対象となる領域範囲を指定する。本実施形態において更新領域情報は、更新の対象となる領域範囲の先頭領域のアドレス（開始アドレス）及び最終領域のアドレス（終了アドレス）から構成される。なお、更新領域情報が、開始アドレス及び領域数から構成されていても構わない。一方、参照要求情報１０７は、参照領域情報から構成される。参照領域情報は、データ記憶部１０２-1内の参照の対象となる領域範囲を指定する。本実施形態において参照領域情報は、参照の対象となる領域範囲の開始アドレス及び終了アドレスから構成される。参照領域情報が、開始アドレス及び領域数から構成されていても構わない。
【００１６】
更新反映待ち情報記憶部１０３-1及び１０３-2は、キュー構造の更新反映待ち情報（更新反映待ち情報キュー）を記憶する。更新反映待ち情報キューは、更新要求情報中の更新領域情報の待ち行列である。ここでは、ノード１０-1または１０-2が稼動系として機能している状態で、当該ノード１０-1または１０-2で更新要求情報に基づいてデータ記憶部１０２-1または１０２-2の領域に対するデータ更新が発生した場合に、その領域の情報（更新領域情報）が、待機系ノードでのデータ更新に未反映の領域を表す更新反映待ち情報として、更新反映待ち情報記憶部１０３-1及び１０３-2内の更新反映待ち情報キューにつながれる（追加される）。未更新領域情報記憶部１０４-1及び１０４-2は、未更新の領域を示す情報（未更新領域情報）を記憶する。
【００１７】
ノード１０-1は、データ要求監視部１０８を有する。データ要求監視部１０８はノード１０-1が稼動系の場合に、サービス１０５によって発行される更新要求情報１０６及び参照要求情報１０７を監視する。データ要求監視部１０８は、更新要求情報１０６を検知したときは、当該更新要求情報１０６に従ってデータ記憶部１０２-1内の該当する領域のデータを更新し、当該更新要求情報１０６を後述する更新要求情報送信部１０９-1に渡す。なお、図１では省略されているが、ノード１０-2には、データ要求監視部１０８に相当するデータ要求監視部が設けられている。但し、ノード１０-2のデータ要求監視部は、当該ノード１０-2が待機系の状態では動作しない。
【００１８】
ノード１０-1及び１０-2は、それぞれ、更新要求情報送信部１０９-1及び１０９-2と、更新要求情報受信部１１０-1及び１１０-2と、更新反映待ち部１１１-1及び１１１-2と、組込要求部１１２-1及び１１２-2と、組込要求受理部１１３-1及び１１３-2とを有する。
【００１９】
ノード１０-1の更新要求情報送信部１０９-1は、データ要求監視部１０８から更新要求情報１０６を渡された場合、当該更新要求情報１０６に含まれている更新領域情報を更新反映待ち情報記憶部１０３-1に追加する。更新要求情報送信部１０９-1は、ノード１０-1以外の更新要求情報受信部（ここでは、ノード１０-2の更新要求情報受信部１１０-2）に、更新要求情報１０６を送信する。
【００２０】
更新要求情報送信部１０９-1は、更新反映待ち情報記憶部１０３-1に格納されている更新反映待ち情報が組込要求受理部１１３-1によってノード１０-2の組込要求部１１２-2に送信された場合、当該更新反映待ち情報の示す領域のデータ（更新済みデータ）をデータ記憶部１０２-1から取得する。更新要求情報送信部１０９-1は、更新反映待ち情報（更新領域情報）と取得されたデータとを含む更新要求情報を生成して、当該更新要求情報をノード１０-2の更新要求情報受信部１１０-2に送信する。
【００２１】
ノード１０-2の更新要求情報送信部１０９-2も、当該ノード１０-2が稼動系ノードの場合に、上述の更新要求情報送信部１０９-1と同様の動作を行う。
【００２２】
ノード１０-2の更新要求情報受信部１１０-2は、ノード１０-1の更新要求情報送信部１０９-1から更新要求情報が送信された場合に当該更新要求情報を受信して、データ記憶部１０２-1に格納されているデータを当該更新要求情報に従って更新する。更新要求情報受信部１１０-2は、受信された更新要求情報に含まれている更新領域情報と同一の未更新領域情報が未更新領域情報記憶部１０４-2に格納されている場合に、当該未更新領域情報を未更新領域情報記憶部１０４-2から削除する。更新要求情報受信部１１０-2は更新要求情報に従うデータ更新の完了後に、当該更新要求情報に含まれている更新領域情報をノード１０-1の更新反映待ち部１１１-1に通知する。ノード１０-1の更新要求情報受信部１１０-1も、当該ノード１０-1が待機系ノードであって、且つノード１０-2の更新要求情報送信部１０９-2から更新要求情報が送信された場合に、上述の更新要求情報受信部１１０-2と同様の動作を行う。
【００２３】
ノード１０-2の組込要求部１１２-2は、ノード１０-2が待機系として動作している状態で当該ノード１０-2（つまり待機系ノード）に障害が発生して当該ノード１０-2が停止し、その後障害から復旧して再度動作を開始して同期化処理が開始される際に動作する。組込要求部１１２-2は、ノード１０-2が障害から復旧した待機系ノードである場合に、稼動系ノード１０-1の組込要求受理部１１３-1に同期化処理の開始を要求する。組込要求部１１２-2は、ノード１０-1の組込要求受理部１１３-1から同期化処理の開始要求に対する応答として更新反映待ち情報を受け取った場合に、当該更新反映待ち情報を未更新領域情報記憶部１０４-2に反映する。ノード１０-1の組込要求部１１２-1も、当該ノード１０-1が待機系ノードであって、且つ当該ノード１０-1に障害が発生して当該ノード１０-1が停止し、その後障害から復旧して再度動作を開始して同期化処理が開始される際に、上述の組込要求部１１２-2と同様の動作を行う。
【００２４】
ノード１０-1の組込要求受理部１１３-1は、ノード１０-2の組込要求部１１２-2から同期化処理の開始が要求された場合、更新反映待ち情報記憶部１０３-1に格納されている更新反映待ち情報を当該組込要求部１１２-2に送信する。このとき更新要求情報送信部１０９-1は、更新反映待ち情報記憶部１０３-1に格納されている更新反映待ち情報を先頭から順に取り出し、更新反映待ち情報の示す領域のデータ（更新済みデータ）をデータ記憶部１０２-1から取得する。更新要求情報送信部１０９-1は、更新反映待ち情報（更新領域情報）と取得されたデータとを含む更新要求情報を生成して、当該更新要求情報を更新要求情報受信部１１０-2に送信する。更新要求情報送信部１０９-1は、たとえノード１０-1のサービス１０５が停止しても、更新反映待ち情報記憶部１０３-1に情報が格納されている限り動作する。ノード１０-2の組込要求受理部１１３-2も、当該ノード１０-2が稼動系ノードであって、且つノード１０-1の組込要求部１１２-1から同期化処理の開始が要求された場合に、上述の組込要求受理部１１３-1と同様の動作を行う。この点は、ノード１０-2の更新要求情報送信部１０９-2についても同様である。
【００２５】
次に、図１のクラスタシステムにおける動作について、図３のフローチャートを参照して説明する。  
まず、サービス１０５の実行に関して、ノード１０-1が稼動系ノードとして機能し、ノード１０-2が待機系ノードとして機能しているものとする。つまりノード１０-1において、サービス１０５が開始されているものとする。
【００２６】
ノード１０-1のデータ要求監視部１０８は、サービス１０５がデータ記憶部１０２-1に格納されているデータを更新または参照するために当該サービス１０５によって発行される要求情報を監視する（ステップＳ１）。データ要求監視部１０８は、サービス１０５によって要求情報が発行されたことを検知した場合、当該要求情報の種類を判定する（ステップＳ２）。即ちデータ要求監視部１０８は、検知された要求情報が更新要求情報１０６及び参照要求情報１０７のいずれであるかを判定する。
【００２７】
もし、更新要求情報１０６である場合、データ要求監視部１０８は当該更新要求情報１０６に従って、データ記憶部１０２-1内の該当する領域のデータを更新する（ステップＳ３）。次にデータ要求監視部１０８は、データ更新に用いられた更新要求情報１０６を更新要求情報送信部１０９-1に送出する（ステップＳ４）。この場合、データ要求監視部１０８はステップＳ１に戻って、サービス１０５によって発行される要求情報を監視する。
【００２８】
更新要求情報送信部１０９-1は、データ要求監視部１０８によって送出された更新要求情報１０６を受け取ると（ステップＳ１１）、更新反映待ち情報記憶部１０３-1に当該更新要求情報１０６中の更新領域情報を更新反映待ち情報として追加する（ステップＳ１２）。ここでは、更新要求情報１０６中の更新領域情報は、更新反映待ち情報記憶部１０３-1に格納されている更新反映待ち情報キューの最後尾につながれる。更新要求情報送信部１０９-1は、受け取った更新要求情報１０６を当該更新要求情報送信部１０９-1を有するノード以外（つまり他のノード）の更新要求情報受信部に通信路１１を介して送信する（ステップＳ１３）。ここでは、更新要求情報１０６はノード１０-2の更新要求情報受信部１１０-2に送信される。更新要求情報送信部１０９-1は、ステップＳ１３を実行すると、データ要求監視部１０８からの新たな更新要求情報１０６を待つ。
【００２９】
更新要求情報受信部１１０-2は、更新要求情報送信部１０９-1から更新要求情報１０６を受け取ると（ステップＳ２１）、当該更新要求情報１０６に従ってデータ記憶部１０２-2内の該当する領域のデータを更新する（ステップＳ２２）。次に更新要求情報受信部１１０-2は、データ更新に用いられた更新要求情報１０６に含まれている更新領域情報と同一の領域（アドレス）を示す未更新領域情報が未更新領域情報記憶部１０４-2に格納されているかを判定する（ステップＳ２３）。つまり更新要求情報受信部１１０-2は、ステップＳ２２でデータ更新されたデータ記憶部１０２-1内の領域が、未更新領域情報記憶部１０４-2に格納されている未更新領域情報によってデータ未更新の領域として示されているかを判定する。
【００３０】
もし、データ更新された領域がデータ未更新の領域であると未更新領域情報によって示されている場合、更新要求情報受信部１１０-2は当該未更新領域情報を未更新領域情報記憶部１０４-2から削除する（ステップＳ２４）。そして更新要求情報受信部１１０-2は、ノード１０-1の更新反映待ち部１１１-1に通信路１１を介して更新領域情報を返すことにより更新完了を通知する（ステップＳ２５）。これに対し、データ更新された領域に関する未更新領域情報が未更新領域情報記憶部１０４-2に格納されていない場合（ステップＳ２３）、更新要求情報受信部１１０-2はステップＳ２４をスキップして、更新反映待ち部１１１-1に更新完了を通知する（ステップＳ２５）。この場合、更新要求情報受信部１１０-2はステップＳ２１に戻って、ノード１０-1の更新要求情報送信部１０９-1から新たな更新要求情報１０６が送信されるのを待つ。
【００３１】
更新反映待ち部１１１-1は、ノード１０-2の更新要求情報受信部１１０-2から更新完了の通知を受け取ると（ステップＳ３１）、当該更新要求情報受信部１１０-2によってデータ更新された領域と同一の領域を指定する更新領域情報を更新反映待ち情報記憶部１０３-1から削除する（ステップＳ３２）。そして、更新反映待ち部１１１-1はステップＳ３１に戻って、更新要求情報受信部１１０-2からの新たな更新完了の通知を待つ。
【００３２】
一方、ステップＳ１で検知された要求情報が参照要求情報１０７である場合（ステップＳ２）、データ要求監視部１０８は当該参照要求情報１０７の指定する参照領域とアドレスが同一の領域を示す未更新領域情報が未更新領域情報記憶部１０４-1に格納されているかを判定する（ステップＳ５）。もし、参照領域と同一の領域を示す未更新領域情報が未更新領域情報記憶部１０４-1に格納されている場合、データ要求監視部１０８は参照領域が未更新領域であると判定する。この場合、データ要求監視部１０８は、参照領域と同一の領域を示す未更新領域情報が未更新領域情報記憶部１０４-1から削除されるのを待つ（ステップＳ６）。やがて、参照領域とアドレスが同一の領域を示す未更新領域情報が未更新領域情報記憶部１０４-1から削除されたものとする。すると、データ要求監視部１０８は参照要求情報１０７によって指定されるデータ記憶部１０２-1の参照領域が未更新領域でなくなったものとして、当該参照領域からデータを読み出して、当該データをサービス１０５に返す（ステップＳ７）。そして、データ要求監視部１０８はステップＳ１に戻って、サービス１０５によって発行される要求情報を監視する。
【００３３】
このような状態で、サービス１０５の提供に関して待機系ノードとして動作しているノード１０-2に障害が発生して当該ノード１０-2が停止し、その後当該ノード１０-2が障害から復旧して再度動作を開始したものとする。この場合、図１のクラスタシステムでは同期化処理が行われる。この同期化処理について、図４の動作説明図を参照して説明する。
【００３４】
まず、ノード１０-2の組込要求部１１２-2が動作を開始して、ノード１０-1の組込要求受理部１１３-1に対して同期化処理の開始を要求する（ステップＳ４１）。このとき、ノード１０-2のデータ記憶部１０２-2においてアドレス１乃至９が割り当てられている９つの領域（アドレスが１乃至９の９つの領域）にいずれもデータＡが格納されているものとする。
【００３５】
一方、ノード１０-1のデータ記憶部１０２-1におけるアドレスが１乃至９の９つの領域領域のうち、アドレスが２，３，４，５及び８の領域のデータは、ノード１０-2が停止していた期間にそれぞれＢ，Ｂ，Ｂ，Ｃ及びＤに更新されているものとする。つまり、データ記憶部１０２-1においてアドレスが２，３，４，５及び８の領域のデータの更新が、データ記憶部１０２-2の同じアドレスの領域（同一領域）に反映されていないものとする。この場合、ノード１０-1の更新反映待ち情報記憶部１０３-1には、アドレス２，３，４，５及び８を示す更新反映待ち情報が格納されている。
【００３６】
さて、ノード１０-1の組込要求受理部１１３-1はノード１０-2の組込要求部１１２-2から同期化処理の開始が要求されると（ステップＳ４１）、更新反映待ち情報記憶部１０３-1に格納されている更新反映待ち情報を、当該同期化処理の開始要求に対する応答として当該組込要求部１１２-2に送信する（ステップＳ４２）。この更新反映待ち情報は、ノード１０-1の更新要求情報送信部１０９-1からノード１０-2の更新要求情報受信部１１０-2に送信された更新要求情報の示す更新要求に対して、当該更新要求情報受信部１１０-2から更新完了が通知されていないことを示す。つまり、更新反映待ち情報は、ノード１０-2においてデータ更新が完了していない領域の情報であって、ノード１０-1でのデータ更新をノード１０-2に反映する必要がある領域の情報を示す。
【００３７】
組込要求部１１２-2は、組込要求受理部１１３-1から更新反映待ち情報を受け取ると、当該更新反映待ち情報を未更新領域情報記憶部１０４-2に反映する（ステップＳ４３）。即ち組込要求部１１２-2は、組込要求受理部１１３-1から受け取った更新反映待ち情報を未更新領域情報として未更新領域情報記憶部１０４-2に追加する。ここでは、アドレス２，３，４，５及び８を示す更新反映待ち情報が未更新領域情報として未更新領域情報記憶部１０４-2に格納される。
【００３８】
この状態で、ノード１０-1に障害が発生し、当該ノード１０-1で開始されていたサービス１０５をノード１０-2が引き継ぐ必要があるものとする。この場合、従来であれば、同期化処理が完了するまでノード１０-2によるサービス１０５の引き継ぎが待たされる。その理由は、同期化処理が完了するまでは、どの領域のデータが未更新であるか確認する手段がないためである。
【００３９】
これに対して本実施形態では、ノード１０-2（の組込要求部１１２-2）は障害からの復帰時にノード１０-1から更新反映待ち情報を取得して、当該更新反映待ち情報を未更新領域情報記憶部１０４-2に未更新領域情報として反映している。このため、ノード１０-2は図４のフローチャートからも明らかなように、未更新領域情報記憶部１０４-2に格納されている未更新領域情報の示す未更新領域（ここではアドレス２，３，４，５及び８の領域）を参照する処理は行えないものの、その他の領域を参照する処理と全ての領域のデータを更新する処理は行える。よってノード１０-2は、サービス１０５を引き継ぐことができる。未更新領域を参照する処理は、図３のフローチャートに示されるように、未更新領域情報記憶部１０４-2から当該領域を示す未更新領域情報が削除されるまで、つまり当該領域が未更新領域でなくなるまで待たされる（ステップＳ６）
さて、ノード１０-1の更新要求情報送信部１０９-1は、更新反映待ち情報記憶部１０３-1に格納されている更新反映待ち情報が組込要求受理部１１３-1によってノード１０-2の組込要求部１１２-2に送信された場合にも動作する。この場合、更新要求情報送信部１０９-1は、更新反映待ち情報記憶部１０３-1に格納されている更新反映待ち情報を先頭から順に取り出し、当該更新反映待ち情報の示す領域のデータ（更新済みデータ）をデータ記憶部１０２-1から取得する。更新要求情報送信部１０９-1は、更新反映待ち情報（更新領域情報）と取得されたデータとを含む更新要求情報を生成して、当該更新要求情報を更新要求情報受信部１１０-2に送信する。更新要求情報送信部１０９-1は、たとえノード１０-1のサービス１０５が停止しても、更新反映待ち情報記憶部１０３-1に情報が格納されている限り動作する。
【００４０】
図４の例では、まず、アドレス２の領域の領域情報（更新領域情報）と当該アドレス２の領域のデータＢとを含む更新要求情報が、ノード１０-1の更新要求情報送信部１０９-1からノード１０-2の更新要求情報受信部１１０-2に送信される（ステップＳ４４）。この場合、ノード１０-2では、データ記憶部１０２-2のアドレス２の領域のデータＡがデータＢに更新される（ステップＳ４５）。すると、ノード１０-2の未更新領域情報記憶部１０４-2から、アドレス２の領域を示す未更新領域情報が削除される（ステップＳ４６）。この段階で、ノード１０-2は、アドレス３，４，５及び８の領域を参照する処理は行えないものの、その他の領域を参照する処理と全ての領域のデータを更新する処理を行うことができる。この参照する処理が行えない領域は、未更新領域情報記憶部１０４-2の内容から判定される。
【００４１】
次に、アドレス３の領域の領域情報と当該アドレス３の領域のデータＢとを含む更新要求情報が、ノード１０-1の更新要求情報送信部１０９-1からノード１０-2の更新要求情報受信部１１０-2に送信される（ステップＳ４７）。この場合、ノード１０-2では、データ記憶部１０２-2のアドレス３の領域のデータＡがデータＢに更新される（ステップＳ４８）。すると、ノード１０-2の未更新領域情報記憶部１０４-2から、アドレス３の領域を示す未更新領域情報が削除される（ステップＳ４９）。この段階で、ノード１０-2は、アドレス４，５及び８の領域を参照する処理は行えないものの、その他の領域を参照する処理と全ての領域のデータを更新する処理を行うことができる。
【００４２】
次に、アドレス４の領域の領域情報と当該アドレス３の領域のデータＢとを含む更新要求情報が、ノード１０-1の更新要求情報送信部１０９-1からノード１０-2の更新要求情報受信部１１０-2に送信される（ステップＳ５０）。この場合、ノード１０-2では、データ記憶部１０２-2のアドレス４の領域のデータＡがデータＢに更新される（ステップＳ５１）。すると、ノード１０-2の未更新領域情報記憶部１０４-2から、アドレス４の領域を示す未更新領域情報が削除される（ステップＳ５２）。この段階で、ノード１０-2は、アドレス５及び８の領域を参照する処理は行えないものの、その他の領域を参照する処理と全ての領域のデータを更新する処理を行うことができる。
【００４３】
次に、アドレス５の領域の領域情報と当該アドレス５の領域のデータＣとを含む更新要求情報が、ノード１０-1の更新要求情報送信部１０９-1からノード１０-2の更新要求情報受信部１１０-2に送信される（ステップＳ５３）。この場合、ノード１０-2では、データ記憶部１０２-2のアドレス５の領域のデータＡがデータＣに更新される（ステップＳ５４）。すると、ノード１０-2の未更新領域情報記憶部１０４-2から、アドレス５の領域を示す未更新領域情報が削除される（ステップＳ５５）。この段階で、ノード１０-2は、アドレス８の領域を参照する処理は行えないものの、その他の領域を参照する処理と全ての領域のデータを更新する処理を行うことができる。
【００４４】
次に、アドレス８の領域の領域情報と当該アドレス８の領域のデータＤとを含む更新要求情報が、ノード１０-1の更新要求情報送信部１０９-1からノード１０-2の更新要求情報受信部１１０-2に送信される（ステップＳ５６）。この場合、ノード１０-2では、データ記憶部１０２-2のアドレス８の領域のデータＡがデータＤに更新される（ステップＳ５７）。すると、ノード１０-2の未更新領域情報記憶部１０４-2から、アドレス８の領域を示す未更新領域情報が削除される（ステップＳ５８）。この段階で、ノード１０-2は、全ての領域について、参照する処理とデータを更新する処理を行うことができる。
【００４５】
このように本実施形態においては、同期化処理の開始に際してノード１０-2からノード１０-1に与えられる同期化処理開始要求に応じて、ノード１０-1からノード１０-2に更新反映待ち領域の情報（更新反映待ち情報）を未更新領域情報として送信し、その領域に対する参照要求をノード１０-2にてブロックすることで、ノード１０-2での同期化処理が完了していない状態でノード１０-1に障害が発生しても、ノード１０-2は速やかにサービス１０５を引き継ぐことができる。このように、本実施形態のクラスタシステムにおいては、従来技術に比較してより早くサービスを引き継げる状態となるため、可用性が高くなる。
【００４６】
［第２の実施形態］
図５は本発明の第２の実施形態に係るクラスタシステムの構成を示すブロック図である。図５において、図１と同様の要素には同一参照符号を付してある。図５に示すクラスタシステムの特徴は、図１のノード１０-1及び１０-2に代えて、当該ノード１０-1及び１０-2の構成に、それぞれデータ要求部２０１-1及び２０１-2と、データ要求受理部２０２-1及び２０２-2とが追加されたノード２０-1及び２０-2が用いられることにある。
【００４７】
次に、図５のクラスタシステムの動作について、図１のクラスタシステムと相違する点を中心に、図６のフローチャートを参照して説明する。  
まず、ノード２０-1が、ノード２０-2で開始されていたサービス１０５を引き継いで稼動系となったものとする。ここでは、ノード２０-1が障害から回復した際に実行される同期化処理が完了しない状態で、当該ノード２０-1がサービス１０５を引き継いだものとする。また、ノード２０-1の同期化処理の開始に際して、当該ノード２０-1からノード２０-2に同期化処理開始要求が与えられることにより、ノード２０-2からノード２０-1に更新反映待ち情報が未更新領域情報として送信され、その領域に対する参照要求がノード２０-1にてブロックされるものとする。これにより、ノード２０-1での同期化処理が完了していない状態でノード２０-2に障害が発生しても、ノード２０-1はサービス１０５を速やかに引き継ぐことができる。この点は、ノード２０-1とノード２０-2との関係（稼動系と待機系との関係）が上記第１の実施形態と逆となった点を除けば、当該第１の実施形態と同様である。
【００４８】
さて、ノード２０-1の同期化処理が完了しない状態で、当該ノード２０-1がサービス１０５を引き継いだ本実施形態では、上記第１の実施形態とは逆に、ノード２０-1の未更新領域情報記憶部１０４-1には未更新領域情報が格納され、ノード２０-2の更新反映待ち情報記憶部１０３-2には更新反映待ち情報が格納されている。このような状態でサービス１０５が開始されているノード２０-1（つまり新たに稼動系となったノード２０-1）において、図５において矢印５１で示されるように、サービス１０５によって参照要求情報１０７が発行されたものとする。
【００４９】
データ要求監視部１０８は、サービス１０５によって発行される参照要求情報１０７を検知したときは（ステップＳ４１，Ｓ４２）、未更新領域情報記憶部１０４-1を参照する。もし、参照要求情報１０７中の参照領域情報の指定する参照領域とアドレスが同一の領域を示す未更新領域情報が未更新領域情報記憶部１０４-1に格納されているならば（ステップＳ４５）、データ要求監視部１０８は、参照領域が未更新領域である（つまり参照領域に格納されているデータが未更新データである）と判定する。ここまでの動作は、前記第１の実施形態のステップＳ１乃至Ｓ５と同様である。
【００５０】
データ要求監視部１０８は、参照領域が未更新領域であると判定した場合、当該参照領域を指定する参照領域情報を図５において矢印５２で示されるようにデータ要求部２０１-1に渡す（ステップＳ４６）。そしてデータ要求監視部１０８は、参照領域と同一の領域を示す未更新領域情報が未更新領域情報記憶部１０４-1から削除されるのを待つ（ステップＳ４７）。
【００５１】
一方、データ要求監視部１０８から参照領域情報を渡されたデータ要求部２０１-1は、当該参照領域情報を図５において矢印５３で示されるようにノード２０-2のデータ要求受理部２０２-2に送信して、当該参照領域情報の指定する領域のデータ（更新データ）を要求する（ステップＳ５０）。
【００５２】
データ要求受理部２０２-2は、データ要求部２０１-1から参照領域情報を受け取ると、当該参照領域情報によって指定されるデータ記憶部１０２-2の参照領域から図５において矢印５４で示されるようにデータを読み出す（ステップＳ６１）。このデータは、参照要求情報１０７中の参照領域情報によって指定されるデータ記憶部１０２-1の参照領域のデータ（未更新データ）に対応する更新データである。
【００５３】
データ要求受理部２０２-2は、参照領域情報によって指定されるデータ記憶部１０２-2の参照領域から読み出されたデータと当該参照領域情報に一致する更新領域情報とを含む更新要求情報を生成して、当該更新要求情報を図５において矢印５５で示されるようにノード２０-1の更新要求情報受信部１１０-1に送信する（ステップＳ６２）。このデータは、上記第１の実施形態であれば同期化処理でノード２０-1のデータ記憶部１０２-1に反映されるべきデータである。
【００５４】
更新要求情報受信部１１０-1は、データ要求受理部２０２-2からの更新要求情報を受け取ると、当該更新要求情報に従って、図５において矢印５６で示されるようにデータ記憶部１０２-1内の該当する領域のデータを更新する（ステップＳ７１）。これにより、サービス１０５からの参照要求情報１０７中の参照領域情報（つまりデータ要求受理部２０２-2からの更新要求情報中の更新領域情報）によって指定されるデータ記憶部１０２-1のデータ（未更新データ）は、当該領域情報によって指定されるデータ記憶部１０２-2のデータ（更新データ）に一致化される。そこで更新要求情報受信部１１０-1は、ステップＳ７１でデータが更新された領域と同一の領域を指定する未更新領域情報を、図５において矢印５７で示されるように未更新領域情報記憶部１０４-1から削除する（ステップＳ７２）。
【００５５】
データ要求監視部１０８は、ステップＳ４７の待ち合わせ中に、参照要求情報１０７中の参照要求情報で指定される領域と同一の領域を指定する未更新領域情報が未更新領域情報記憶部１０４-1から削除されると、当該領域のデータに関してノード２０-1（のデータ記憶部１０２-1）とノード２０-2（のデータ記憶部１０２-2）との間で一致化されていると判定する。この場合、データ要求監視部１０８は、参照要求情報１０７中の参照要求情報で指定されるデータ記憶部１０２-1の領域からデータを読み出して、図５において矢印５８で示されるように当該データをサービス１０５に返す（ステップＳ４８）。
【００５６】
一方、更新要求情報受信部１１０-1は、データ要求受理部２０２-2からの更新要求情報に従う更新完了の通知として、当該更新要求情報中の更新領域情報を図５において矢印５９で示されるようにノード２０-2の更新反映待ち部１１１-2に返す（ステップＳ７３）。更新反映待ち部１１１-2は、更新要求情報受信部１１０-1から更新完了の通知として更新領域情報を受け取ると、当該更新領域情報と同一の領域を指定する更新反映待ち情報を図５において矢印６０で示されるように更新反映待ち情報記憶部１０３-2から削除する（ステップＳ８０）。
【００５７】
このように本実施形態においては、同期化処理が完了しない状態でサービス１０５を引き継いだノード２０-1において、未更新領域に対する参照要求が発生した場合に、当該ノード２０-1のデータ要求部２０１-1からノード２０-2のデータ要求受理部２０２-2に当該未更新領域のデータ更新が要求される。するとノード２０-1の更新要求情報受信部１１０-1は、ノード２０-2のデータ記憶部１０２-2の対応する領域のデータ（更新データ）をデータ要求受理部２０２-2から受け取って、そのデータで当該未更新領域のデータを更新する。つまり本実施形態においては、未更新領域に対する参照要求が発生した場合、その参照要求をトリガとして当該未更新領域のデータが更新される。これにより、データ要求監視部１０８が参照要求を検知してから当該参照要求で指定される領域のデータを読み出せるようになるまで待ち合わせる時間を短縮することができる。
【００５８】
［第３の実施形態］
図７は本発明の第３の実施形態に係るクラスタシステムの構成を示すブロック図である。図７において、図５と同様の要素には同一参照符号を付してある。図７に示すクラスタシステムの特徴は、図５のノード２０-1及び２０-2に代えて、３台のノード３０-1，３０-2及び３０-3が用いられることにある。ノード３０-1，３０-2及び３０-3の基本的な構成は、図５のノード２０-1及び２０-2のそれと同様である。このため、図７のクラスタシステムにおいても前記第１及び第２の実施形態と同様の動作が行われる。
【００５９】
さて、図７の例では、ノード３０-1でサービス１０５が開始されている。つまり図７の例では、サービス１０５に関して、ノード３０-1が稼動系として機能し、ノード３０-2及び３０-3が待機系として機能する。
【００６０】
ノード３０-1がノード２０-1と異なるのは、更新反映待ち情報記憶部１０３-1に加えて、当該更新反映待ち情報記憶部１０３-1と同様の更新反映待ち情報記憶部２０３を有する点にある。更新反映待ち情報記憶部１０３-1及び２０３は、書き換え可能な不揮発性メモリ内に確保される。更新反映待ち情報記憶部１０３-1及び２０３は、ノード３０-1のデータ記憶部１０２-1でのデータ更新がそれぞれノード３０-2及び３０-3のデータ記憶部に反映されていない領域の情報（更新領域情報）を更新反映待ち情報として格納する。ノード３０-2及び３０-3においても、更新反映待ち情報記憶部１０３-1及び２０３に相当する、それぞれ２つの更新反映待ち情報記憶部が書き換え可能な不揮発性メモリ内に確保される。但し、図７では、ノード３０-2内の更新反映待ち情報記憶部１０３-2以外の更新反映待ち情報記憶部については省略されている。なお、更新反映待ち情報記憶部１０３-1内に、ノード３０-1のデータ記憶部１０２-1でのデータ更新がそれぞれノード３０-2及び３０-3のデータ記憶部に反映されていない領域の情報を更新反映待ち情報として格納する領域が確保されても構わない。この場合、更新反映待ち情報記憶部２０３は不要となる。
【００６１】
図７のクラスタシステムにおいて、ノード３０-1で障害が発生して、ノード３０-1のクラスタ制御部１００-1に含まれている障害検知部１０１-1、ノード３０-2のクラスタ制御部１００-1に含まれている障害検知部１０１-2またはノード３０-2のクラスタ制御部に含まれている障害検知部（図示せず）で当該ノード３０-1の障害が検出されたものとする。この場合、ノード３０-1で開始されていたサービス１０５が、ノード３０-2または３０-3に引き継がれる。
【００６２】
本実施形態においてノード３０-2のクラスタ制御部１００-2及びノード３０-3のクラスタ制御部は、サービス１０５が開始されていたノード３０-1の更新反映待ち情報記憶部１０３-1及び更新反映待ち情報記憶部２０３にそれぞれ格納されている更新反映待ち情報を比較することにより、ノード３０-2及び３０-3のいずれが当該サービス１０５を引き継ぐかを決定する。具体的には、ノード３０-2のクラスタ制御部１００-2及びノード３０-3のクラスタ制御部は、更新反映待ち情報記憶部１０３-1及び更新反映待ち情報記憶部２０３にそれぞれ格納されている更新反映待ち情報の示す更新反映待ちの総領域量が少ない方のノードがサービス１０５を引き継ぐように合意をとる。
【００６３】
これにより、サービス１０５を引き継ぐノードが同期化処理を完了していないとしても、更新反映待ちの総領域量が少ないことから、同期化処理が完了して全ての領域に対する参照が可能となるまでの時間が短くて済む。また、更新反映待ちの総領域量が少ない方のノードがサービス１０５を引き継ぐことにより、未更新領域に対する参照要求が発生する確率を低くすることができる。また、たとえ未更新領域に対する参照要求が発生しても、第２の実施形態と同様に、未更新領域のデータに対する更新要求を行うことで、参照要求で指定される領域のデータを読み出せるようになるまで待ち合わせる時間を短縮することもできる。
【００６４】
［第３の実施形態の変形例］
次に、本発明の第３の実施形態の変形例について説明する。本変形例で適用されるクラスタシステムの構成は第３の実施形態と同様であるため、図７を援用する。本変形例の特徴は、ノード３０-1でサービス１０５が開始されている状態で、ノード３０-2で同期化処理が開始される場合を想定すると、ノード３０-1の組込要求受理部１１３-1によって更新反映待ち情報がノード３０-2に送信された場合に、ノード３０-1の更新要求情報送信部１０９-1による更新要求情報の送信が行われない点にある。
【００６５】
以下、本変形例の同期化処理について説明する。まず、ノード３０-1でサービス１０５が開始されている状態で、ノード３０-2で同期化処理が開始されるものとする。この場合、ノード３０-2の組込要求部１１２-2からノード３０-1の組込要求受理部１１３-1に対して同期化処理の開始が要求される。すると組込要求受理部１１３-1は、更新反映待ち情報記憶部１０３-1に格納されている更新反映待ち情報を組込要求部１１２-2に送信する。組込要求部１１２-2は、組込要求受理部１１３-1から更新反映待ち情報を受け取ると、当該更新反映待ち情報を未更新領域情報として未更新領域情報記憶部１０４-2に追加する。ここまでの動作は、第１の実施形態における同期化処理の場合（ステップＳ４１〜Ｓ４３）と同様である。
【００６６】
組込要求部１１２-2は、更新反映待ち情報を未更新領域情報として未更新領域情報記憶部１０４-2に追加すると、当該未更新領域情報記憶部１０４-2に格納されている未更新領域情報の示す領域のデータを、データ要求部２０１-2によりノード３０-3のデータ要求受理部（図示せず）から取得させる。即ちデータ要求部２０１-2は、未更新領域情報記憶部１０４-2に格納されている未更新領域情報を参照領域情報としてノード３０-3のデータ要求受理部に送信することにより、当該参照領域情報（未更新領域情報）の指定する領域のデータを要求する。
【００６７】
すると、ノード３０-3のデータ要求受理部は、前記第２の実施形態において、ノード１０-2のデータ要求受理部２０２-2がノード１０-1のデータ要求部２０１-1から参照領域情報を受け取った場合と同様の動作を行う。即ちノード３０-3のデータ要求受理部は、データ要求部２０１-1からの参照領域情報（未更新領域情報）の指定するデータ記憶部の領域からデータを読み出して、そのデータと当該参照領域情報とを含む更新要求情報を生成し、当該更新要求情報をノード３０-2の更新要求情報受信部１１０-2に送信する。
【００６８】
更新要求情報受信部１１０-2は、ノード３０-3のデータ要求受理部から更新要求情報を受け取ると、当該更新要求情報に従って、データ記憶部１０２-2内の該当する領域のデータを更新する。このように本変形例においては、ノード３０-2の組込要求部１１２-2からノード３０-1の組込要求受理部１１３-1に対する同期化処理の開始要求に応じて当該組込要求受理部１１３-1から返される更新反映待ち情報によって指定される領域のデータを、待機系として機能しているノード３０-3のデータ要求受理部から取得して、当該データでデータ記憶部１０２-2の該当する領域の未更新データを更新することができる。ここで、ノード３０-1の更新要求情報送信部１０９-1による更新要求情報の生成及び送信が行われない点に注意されたい。つまり本変形例においては、サービス１０５が開始されているノード３０-1に負担をかけることなく、同期化処理を行うことができる。
【００６９】
さてノード３０-2の更新要求情報受信部１１０-2は、ノード３０-3のデータ要求受理部から送信された更新要求情報に従ってデータ記憶部１０２-2内の該当する領域のデータ（未更新データ）を更新すると、前記第１の実施形態におけるステップＳ２３〜Ｓ２５と同様の処理を行い、ノード３０-1の更新反映待ち部１１１-1に更新領域情報を返すことにより更新完了を通知する。これにより更新領域情報と同一の領域を指定する更新反映待ち情報が、更新反映待ち部１１１-1によって更新反映待ち情報記憶部１０３-1から削除される。
【００７０】
なお、本発明は、上記各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記各実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、各実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。
【図面の簡単な説明】
【００７１】
【図１】本発明の第１の実施形態に係るクラスタシステムの構成を示すブロック図。
【図２】図１に示される更新要求情報及び参照要求情報のデータ構造例を示す図。
【図３】同第１の実施形態におけるクラスタシステムの各部の処理手順を示すフローチャート。
【図４】同第１の実施形態における同期化処理の動作を説明するための図。
【図５】本発明の第２の実施形態に係るクラスタシステムの構成を示すブロック図。
【図６】同第１の実施形態におけるクラスタシステムの各部の処理手順を示すフローチャート。
【図７】本発明の第３の実施形態に係るクラスタシステムの構成を示すブロック図。
【符号の説明】
【００７２】
１０-1，１０-2，２０-1，２０-2，３０-1，３０-2，３０-3…ノード（計算機）、１００-1，１００-2…クラスタ制御部、１０２-1，１０２-2…データ記憶部、１０３-1，１０３-2，２０３…更新反映待ち情報記憶部、１０４-1，１０４-2…未更新領域情報記憶部、１０５…サービス、１０６…更新要求情報、１０７…参照要求情報、１０８…データ要求監視部、１０９-1，１０９-2…更新要求情報送信部、１１０-1，１１０-2…更新要求情報受信部、１１１-1，１１１-2…更新反映待ち部、１１２-1，１１２-2…組込要求部、１１３-1，１１３-2…組込要求受理部、２０１-1，２０１-2…データ要求部、２０２-1，２０２-2…データ要求受理部。
【図１】
2008140079.tif 000003
【図２】
2008140079.tif 000004
【図３】
2008140079.tif 000005
【図４】
2008140079.tif 000006
【図５】
2008140079.tif 000007
【図６】
2008140079.tif 000008
【図７】
2008140079.tif 000009