(57)【特許請求の範囲】
【請求項１】
サービスに関するデータを保持し前記データを用いて前記サービスを提供し前記サービスの提供に伴って前記データを更新する現用系計算機と、通信可能な待機系計算機であって、
前記データの写しを保持する保持手段と、
前記現用系計算機から前記待機系計算機宛に送信される、前記現用系計算機が動作していることを証明するための所定信号を所定時間受信できない場合に、前記保持手段内のデータの写しを更新する更新動作を制限しつつ、更新が制限された前記データの写しを用いて前記サービスを提供する提供手段と、を含む待機系計算機。
【請求項２】
請求項１に記載の待機系計算機において、
前記提供手段は、前記所定信号を前記所定時間受信できない場合に、前記更新動作を禁止しつつ、前記データの写しを用いて前記サービスを提供する、待機系計算機。
【請求項３】
請求項１または２に記載の待機系計算機において、
前記提供手段は、前記サービスを提供した後に前記更新動作の制限を解除する旨の指示を受け付けると、前記更新動作の制限を解除して、前記データの写しを用いて前記サービスを提供する、待機系計算機。
【請求項４】
請求項１から３のいずれか１項に記載の待機系計算機において、
前記提供手段は、前記サービスを提供した後に前記所定信号を受信すると、前記現用系計算機内のデータを前記保持手段にコピーして前記保持手段内のデータの写しを更新する、待機系計算機。
【請求項５】
請求項１から４のいずれか１項に記載の待機系計算機と、前記現用系計算機と、を含むクラスタシステム。
【請求項６】
サービスに関するデータを保持し前記データを用いて前記サービスを提供し前記サービスの提供に伴って前記データを更新する現用系計算機と、通信可能な待機系計算機でのサービス提供方法であって、
前記データの写しを保持手段に保持する保持ステップと、
前記現用系計算機から前記待機系計算機宛に送信される、前記現用系計算機が動作していることを証明するための所定信号を所定時間受信できない場合に、前記保持手段内のデータの写しを更新する更新動作を制限しつつ、更新が制限された前記データの写しを用いて前記サービスを提供する提供ステップと、を含むサービス提供方法。
【請求項７】
サービスに関するデータを保持し前記データを用いて前記サービスを提供し前記サービスの提供に伴って前記データを更新する現用系計算機と通信可能なコンピュータに、
前記データの写しを保持手段に保持する保持手順と、
前記現用系計算機から前記待機系計算機宛に送信される、前記現用系計算機が動作していることを証明するための所定信号を所定時間受信できない場合に、前記保持手段内のデータの写しを更新する更新動作を制限しつつ、更新が制限された前記データの写しを用いて前記サービスを提供する提供手順と、を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、現用系計算機で障害が発生した場合に、現用系計算機が実行しているサービスを引き継ぐ待機系計算機、クラスタシステム、サービス提供方法およびプログラムに関する。
【背景技術】
【０００２】
システムが提供するサービスの停止時間を短くするために、同一のサービスを提供可能な複数の計算機を有するクラスタシステムが知られている。
【０００３】
クラスタシステムでは、アプリケーションプログラムを実行してサービスを提供している現用系計算機に障害が発生した場合、待機系計算機は、そのアプリケーションプログラムの実行を引き継ぐことでサービスを引き継ぐ。このサービスの引き継ぎ（フェイルオーバ）にて、サービスの停止時間を短くすることができる。
【０００４】
待機系計算機は、現用系計算機から出力されるハートビート（ハートビートパケット）の途絶を契機にして、現用系計算機に障害が発生したか否かを判別する。具体的には、待機系計算機は、ハートビートの途絶の原因が、通信障害（ネットワーク・パーティション）であるか、現用系計算機での障害であるか、を判別する。ハートビートの途絶の原因が通信障害か現用系計算機での障害かを判別するためには、クラスタシステムを構成する計算機間で物理的に独立した複数の通信回線が必要となる。
【０００５】
なお、ハートビートの途絶の原因が通信障害であるにもかかわらず、待機系計算機が、ハートビートの途絶の原因を現用系計算機での障害であると誤って判別すると、現用系計算機と待機系計算機のそれぞれが、サービスを提供してしまう。この場合、現用系計算機が有するデータ（サービスの実行に基づいて更新されるデータ）と待機系計算機が有するデータ（サービスの実行に基づいて更新されるデータ）との整合性が取れていない状態（スプリットブレイン）が発生する。
【０００６】
特許文献１には、スプリットブレインが生じた後にハートビートの途絶が解消されると、複数の計算機のそれぞれのデータの不整合を解消するための復旧処理を実行するスプリットブレインリカバリ方式が記載されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００６−１４６２９９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
特許文献１には、スプリットブレインに起因するデータの不整合を解消する技術は記載されているが、スプリットブレインの発生を抑制する技術は記載されていない。
【０００９】
スプリットブレインの発生を抑制する１つの手法としては、クラスタシステムを構成する計算機間で物理的に独立した複数の通信回線を設け、ハートビートの途絶の原因が、通信障害か現用系計算機での障害かを高精度で判別する手法が考えられる。
【００１０】
しかしながら、この手法では、スプリットブレインの発生を抑制するために、クラスタシステムを構成する計算機間で物理的に独立した複数の通信回線が必要になるという課題があった。この課題は、災害対策のために、待機系計算機が、現用系計算機の設置場所に対して遠隔な場所に設置された場合に、特に顕著になる。
【００１１】
また、スプリットブレインの発生を抑制する他の手法としては、オペレータが、現用系計算機の停止を確認してから手動操作で待機系計算機へのフェイルオーバを指示するという手法も考えられる。
【００１２】
しかしながら、この手法では、現用系計算機が動作を停止してから、オペレータがフェイルオーバを指示するまで、サービスが停止してしまうという課題があった。
【００１３】
本発明の目的は、上述した課題を解決可能な待機系計算機、クラスタシステム、サービス提供方法およびプログラムを提供することである。
【課題を解決するための手段】
【００１４】
本発明の待機系計算機は、サービスに関するデータを保持し前記データを用いて前記サービスを提供し前記サービスの提供に伴って前記データを更新する現用系計算機と、通信可能な待機系計算機であって、前記データの写しを保持する保持手段と、前記現用系計算機から前記待機系計算機宛に送信される、前記現用系計算機が動作していることを証明するための所定信号を所定時間受信できない場合に、前記保持手段内のデータの写しを更新する更新動作を制限しつつ、更新が制限された前記データの写しを用いて前記サービスを提供する提供手段と、を含む。
【００１５】
本発明のクラスタシステムは、上記待機系計算機と、前記現用系計算機と、を含む。
【００１６】
本発明のサービス提供方法は、サービスに関するデータを保持し前記データを用いて前記サービスを提供し前記サービスの提供に伴って前記データを更新する現用系計算機と、通信可能な待機系計算機でのサービス提供方法であって、前記データの写しを保持手段に保持する保持ステップと、前記現用系計算機から前記待機系計算機宛に送信される、前記現用系計算機が動作していることを証明するための所定信号を所定時間受信できない場合に、前記保持手段内のデータの写しを更新する更新動作を制限しつつ、更新が制限された前記データの写しを用いて前記サービスを提供する提供ステップと、を含む。
【００１７】
本発明のプログラムは、サービスに関するデータを保持し前記データを用いて前記サービスを提供し前記サービスの提供に伴って前記データを更新する現用系計算機と通信可能なコンピュータに、前記データの写しを保持手段に保持する保持手順と、前記現用系計算機から前記待機系計算機宛に送信される、前記現用系計算機が動作していることを証明するための所定信号を所定時間受信できない場合に、前記保持手段内のデータの写しを更新する更新動作を制限しつつ、更新が制限された前記データの写しを用いて前記サービスを提供する提供手順と、を実行させる。
【発明の効果】
【００１８】
本発明によれば、スプリットブレインの発生を抑制しつつ、クラスタシステムを構成する計算機間で物理的に独立した複数の通信回線を必要とせずに、サービスの完全停止時間を短縮することが可能になる。
【図面の簡単な説明】
【００１９】
【図１】本発明の一実施形態のクラスタシステム１を示したブロック図である。
【図２】現用系計算機１１が正常状態であるときのクラスタシステム１を示したブロック図である。
【図３】現用系計算機１１からのハートビートパケットが途絶したときのクラスタシステム１を示したブロック図である。
【図４】スクリプト１０１、１０２および１０３を用いたサービスＳの制御状態を説明するための図である。
【図５】待機系計算機１２内のサービス実行部３２ａの状態遷移を示した図である。
【図６】クラスタシステム１の動作を説明するためのフローチャートである。
【図７】クラスタシステム１の変形例を示したブロック図である。
【発明を実施するための形態】
【００２０】
以下、本発明の一実施形態について図面を参照して説明する。
【００２１】
図１は、本発明の一実施形態のクラスタシステム１を示したブロック図である。
【００２２】
図１において、クラスタシステム１は、現用系計算機１１と、待機系計算機１２と、を含む。現用系計算機１１と待機系計算機１２とは、ネットワーク２を介して相互に通信可能である。また、現用系計算機１１と待機系計算機１２とは、ネットワーク２を介してクライアント端末１３と接続可能である。待機系計算機１２は、例えば、現用系計算機１１の設置場所に対して遠隔な場所に設置される。
【００２３】
現用系計算機１１は、予め定められたサービスＳに関するデータ１１ａ１を保持する保持部１１ａと、提供部１１ｂと、を含む。提供部１１ｂは、記憶部１１ｂ１と制御部１１ｂ２と、を含む。制御部１１ｂ２は、クラスタ制御部２１ａと、サービス実行部３１ａと、を含む。
【００２４】
待機系計算機１２は、データ１１ａ１の写し１２ａ１を保持する保持部１２ａと、提供部１２ｂと、を含む。提供部１２ｂは、記憶部１２ｂ１と制御部１２ｂ２と、を含む。制御部１２ｂ２は、クラスタ制御部２２ａと、サービス実行部３２ａと、を含む。
【００２５】
まず、現用系計算機１１について説明する。
【００２６】
保持部１１ａは、例えば、コンピュータにて読み取り可能な記録媒体であるハードディスクである。なお、記録媒体は、ハードディスクに限らず適宜変更可能である。
【００２７】
保持部１１ａ内のデータ１１ａ１は、例えば、サービスＳの顧客のデータ（顧客の名前、年齢）である。なお、サービスＳが商品の在庫を管理するサービスである場合、データ１１ａ１は、商品の在庫を示す在庫データとなる。なお、データ１１ａ１は、顧客のデータまたは在庫データに限らず適宜変更可能である。
【００２８】
提供部１１ｂは、保持部１１ａ内のデータ１１ａ１を用いてサービスＳを提供する。
【００２９】
記憶部１１ｂ１は、コンピュータにて読み取り可能な記録媒体であり、クラスタ制御ソフトウェア（クラスタ制御プログラム）２１と、サービス提供ソフトウェア（サービス提供プログラム）３１と、を記憶する。なお、記憶部１１ｂ１は、保持部１１ａ内に設けられてもよい。
【００３０】
制御部１１ｂ２は、例えば、コンピュータの一例であるＣＰＵ（Central Processing Unit）である。
【００３１】
制御部１１ｂ２は、記憶部１１ｂ１からクラスタ制御ソフトウェア２１を読み取り実行してクラスタ制御部２１ａとして機能する。クラスタ制御部２１ａは常駐する。
【００３２】
制御部１１ｂ２は、記憶部１１ｂ１からサービス提供ソフトウェア３１を読み取り実行してサービス実行部３１ａとして機能する。なお、制御部１１ｂ２は、サービスＳを提供しないときには、サービス提供ソフトウェア３１を実行せず、サービス実行部３１ａとして機能しない。
【００３３】
サービス実行部３１ａは、保持部１１ａ内のデータ１１ａ１を用いてクライアント端末１３に対してサービスＳを提供する。サービス実行部３１ａは、サービスＳの提供に伴ってデータ１１ａ１を更新することがある。例えば、サービスＳが在庫管理サービスである場合、データ１１ａ１は、在庫の変動に応じて更新される。
【００３４】
クラスタ制御部２１ａは、待機系計算機１２宛にハートビートパケットを定期的（例えば、１０秒間隔）に送信する。なお、ハートビートパケットは、現用系計算機１１が動作していることを証明するための所定信号の一例である。また、ハートビートパケットの送信間隔は１０秒に限らず適宜変更可能である。
【００３５】
また、クラスタ制御部２１ａは、サービス実行部３１ａがデータ１１ａ１を更新することをフックして、クラスタ制御部２２ａを介して、保持部１２ａ内のデータの写し１２ａ１に、データ１１ａ１と同様の更新（ミラーリング）を行う。なお、クラスタ制御部２１ａは、定期的に、データ１１ａ１を保持部１２ａにコピーする。または、クラスタ制御部２１ａは、データ１１ａ１とデータの写し１２ａ１との間の更新差分を、定期的に、保持部１２ａに追記する。このため、保持部１２ａ内には、データ１１ａ１の写し１２ａ１が保持される。
【００３６】
次に、待機系計算機１２について説明する。
【００３７】
保持部１２ａは、一般的に保持手段と呼ぶことができる。
【００３８】
保持部１２ａは、例えば、ハードディスクである。保持部１２ａは、現用系計算機１１内の保持部１１ａに保持されたデータ１１ａ１の写し１２ａ１を保持する。
【００３９】
提供部１２ｂは、一般的に提供手段と呼ぶことができる。
【００４０】
提供部１２ｂは、現用系計算機１１から待機系計算機１２宛に送信されるハートビートパケットを所定時間（例えば、９０秒）受信できない場合に、保持部１２ａ内のデータの写し１２ａ１を更新する更新動作を制限しつつ、データの写し１２ａ１を用いてサービスＳを提供する。なお、所定時間は９０秒に限らず、例えば、ハートビートパケットの送信間隔と、各計算機およびネットワーク２の性能と、に応じて適宜変更可能である。
【００４１】
記憶部１２ｂ１は、コンピュータにて読み取り可能な記録媒体であり、クラスタ制御ソフトウェア（クラスタ制御プログラム）２２と、サービス提供ソフトウェア（サービス提供プログラム）３２と、スクリプト１０１と、スクリプト１０２と、スクリプト１０３と、を記憶する。なお、サービス提供ソフトウェア３２は、サービス提供ソフトウェア３１が規定する処理手順と同一の処理手順を規定する。また、記憶部１２ｂ１は、保持部１２ａ内に設けられてもよい。
【００４２】
制御部１２ｂ２は、例えばＣＰＵ（Central Processing Unit）である。
【００４３】
制御部１２ｂ２は、記憶部１２ｂ１からクラスタ制御ソフトウェア２２を読み取り実行してクラスタ制御部２２ａとして機能する。クラスタ制御部２２ａは常駐する。
【００４４】
制御部１２ｂ２は、記憶部１２ｂ１からサービス提供ソフトウェア３２を読み取り実行してサービス実行部３２ａとして機能する。なお、制御部１２ｂ２は、サービスＳを提供しないときには、サービス提供ソフトウェア３２を実行せず、サービス実行部３２ａとして機能しない。
【００４５】
クラスタ制御部２２ａは、クラスタ制御部２１ａから定期的に送信されるハートビートパケットを受信することで、現用系計算機１１の死活を監視する。
【００４６】
本実施形態では、クラスタ制御部２２ａは、現用系計算機１１から待機系計算機１２宛に送信されるハートビートパケットを所定時間（例えば、９０秒）受信できないか否かを監視する。
【００４７】
現用系計算機１１の動作停止、あるいは、現用系計算機１１と待機系計算機１２との間の通信経路（例えば、ネットワーク２）上の障害に起因して、クラスタ制御部２１ａからのハートビートパケットを所定時間受信できないと、クラスタ制御部２２ａは、記憶部１２ｂ１内のスクリプト１０１を読み出し実行する。
【００４８】
スクリプト１０１は、サービス実行部３２ａが保持部１２ａ内のデータの写し１２ａ１を用いてサービスＳを機能制限付きで開始する処理（以下「第１処理」と称する）を行う旨の指示を、クラスタ制御部２２ａに実行させるためのプログラムである。
【００４９】
本実施形態では、第１処理では、保持部１２ａ内のデータの写し１２ａ１を更新する更新動作を制限しつつ、データの写し１２ａ１を用いてサービスＳが提供される。例えば、第１処理では、待機系計算機１２上でデータの写し１２ａ１を更新しない（参照のみ）か、データの写し１２ａ１のうち更新可能な部分を所定の部分（例えば、更新が元に戻されてもサービスＳには支障がない範囲）に限定して、サービスＳが開始される。
【００５０】
クラスタ制御部２２ａは、スクリプト１０１を実行することで、サービス実行部３２ａを起動して、第１処理をサービス実行部３２ａに実行させる。
【００５１】
現用系計算機１１が停止しておらず、通信系路上の障害が復旧して、クラスタ制御部２１ａからのハートビートパケットを再び受信すると、クラスタ制御部２２ａは、記憶部１２ｂ１内のスクリプト１０２を読み出し実行する。
【００５２】
スクリプト１０２は、サービス実行部３２ａの動作を停止し、かつ、現用系計算機１１内のデータ１１ａ１を保持部１２ａにコピーして保持部１２ａ内のデータの写し１２ａ１を更新する処理（以下「第２処理」と称する）を、クラスタ制御部２２ａに実行させるためのプログラムである。
【００５３】
クラスタ制御部２２ａは、スクリプト１０２を実行することで第２処理を実行する。第２処理が実行されると、サービス実行部３２ａが動作を停止し、データの写し１２ａ１が最新のものとなる。
【００５４】
なお、オペレータが、現用系計算機１１の停止を確認し、待機系計算機１２に対して、サービスの機能制限を解除する操作を行うと、更新動作の制限を解除する旨の指示がクラスタ制御部２２ａで受け付けられる。
【００５５】
クラスタ制御部２２ａは、更新動作の制限を解除する旨の指示を受け付けると、記憶部１２ｂ１内のスクリプト１０３を読み出し実行する。
【００５６】
スクリプト１０３は、サービス実行部３２ａが更新動作の制限を解除してデータの写し１２ａ１を用いてサービスＳを提供する処理（以下「第３処理」と称する）を行う旨の指示を、クラスタ制御部２２ａに実行させるためのプログラムである。
【００５７】
クラスタ制御部２２ａは、スクリプト１０３を実行することで、第３処理をサービス実行部３２ａに実行させる。以降は、待機系計算機１２内のデータの写し１２ａ１がマスタ（コピー元）となる。
【００５８】
次に、クラスタシステム１の動作の概要を説明する。
【００５９】
現用系計算機１１は、正常状態でサービスＳを提供する。
【００６０】
待機系計算機１２では、クラスタ制御部２２ａは、現用系計算機１１内のクラスタ制御部２１ａから定期的に送信されるハートビートパケットを受信することで、現用系計算機１１の生存を確認する。
【００６１】
図２は、現用系計算機１１が正常状態であるときのクラスタシステム１を示したブロック図である。なお、図２において、図１に示したものと同一構成のものには同一符号を付してある。
【００６２】
現用系計算機１１が正常状態であるとき、現用系計算機１１でサービス実行部３１ａが参照・更新するデータ１１ａ１は、クラスタ制御部２１ａとクラスタ制御部２２ａにて、待機系計算機１２内の保持部１２ａにコピーされる。
【００６３】
図３は、現用系計算機１１からのハートビートパケットが途絶したときのクラスタシステム１を示したブロック図である。なお、図３において、図１に示したものと同一構成のものには同一符号を付してある。
【００６４】
現用系計算機１１からのハートビートパケットが途絶し、現用系計算機１１の生存が確認できなくなると、クラスタ制御部２２ａは、待機系計算機１２でサービス実行部３２ａを起動する。
【００６５】
サービス実行部３２ａは、停止状態と、待機系計算機１２内のデータ更新を制限した状態と、待機系計算機１２でのデータ更新の制限のない状態と、を有する。
【００６６】
クラスタ制御部２２ａは、これらの状態遷移を行うための処理を記述したスクリプト１０１、１０２または１０３を実行することで、サービス実行部３２ａの状態遷移を制御する。
【００６７】
図４は、スクリプト１０１、１０２および１０３を用いたサービスＳの制御状態を説明するための図である。また、図５は、待機系計算機１２内のサービス実行部３２ａの状態遷移を示した図である。
【００６８】
スクリプト１０１は、停止状態のサービス実行部３２ａをデータ更新制限付きの起動状態に遷移させ、スクリプト１０２は、データ更新制限付きで起動した状態のサービス実行部３２ａを停止状態に遷移させ、スクリプト１０３は、データ更新制限付きで起動した状態のサービス実行部３２ａをデータ更新の制限のない状態に遷移させる。
【００６９】
次に、クラスタシステム１の動作を説明する。
【００７０】
図６は、クラスタシステム１の動作を説明するためのフローチャートである。
【００７１】
待機系計算機１２内のクラスタ制御部２２ａは、現用系計算機１１からのハートビートパケットが途絶したか判別する（ステップＳ６０１）。
【００７２】
現用系計算機１１からのハートビートパケットが途絶すると、クラスタ制御部２２ａは、スクリプト１０１を実行する（ステップＳ６０２）。スクリプト１０１の実行に伴い、サービス実行部３２ａは、待機系計算機１２内のデータの写し１２ａ１の更新を制限した状態、例えば、データの写し１２ａ１を更新しない（参照のみ）か、データの写し１２ａ１のうち更新可能な部分を、更新が元に戻されても支障がない範囲に制限して、サービスＳを開始する。
【００７３】
その後、クラスタ制御部２２ａは、ハートビートパケットの受信が復旧したかを判別する（ステップＳ６０３）。
【００７４】
ハートビートパケットの受信が復旧すると、現用系計算機１１は停止しておらず、通信障害でハートビートパケットが途絶していたものと考えられるため、クラスタ制御部２２ａは、スクリプト１０２を実行する（ステップＳ６０４）。
【００７５】
スクリプト１０２の実行に伴い、クラスタ制御部２２ａは、サービス実行部３２ａの動作を停止する。さらに、クラスタ制御部２２ａは、現用系計算機１１内のデータ１１ａ１を待機系計算機１２内の保持部１２ａにコピーして両系のデータを再び一致させる（Ｓ６０５）。
【００７６】
クラスタ制御部２２ａは、現用系計算機１１内のデータ１１ａ１を待機系計算機１２内の保持部１２ａにコピーすると、ステップＳ６０１に戻って、ハートビートパケットの受信に基づく現用系死活監視を再開する。
【００７７】
一方、ステップＳ６０３でハートビートが復旧しないと、クラスタ制御部２２ａは、オペレータが機能制限の解除操作を実施したか判別する（ステップＳ６０６）。
【００７８】
オペレータが機能制限の解除操作を実施した場合、クラスタ制御部２２ａは、スクリプト１０３を実行する（ステップＳ６０７）。スクリプト１０３の実行に伴い、クラスタ制御部２２ａは、サービスの機能制限を解除し、サービス実行部３２ａの状態を、現用系計算機１１と同様のサービスＳを提供する状態に変更する。
【００７９】
一方、ステップＳ６０６で、オペレータが機能制限の解除操作を実施していない場合、クラスタ制御部２２ａは、ステップＳ６０３に戻る。
【００８０】
次に、本実施形態の効果を説明する。
【００８１】
本実施形態では、ハートビート（ハートビートパケット）の途絶が確認された時点で、サービス実行部３２ａの機能を、途絶が通信障害に起因するものであっても問題のない範囲に制限して、待機系計算機１２でサービスが自動的に起動する。このため、サービスの完全停止時間を短縮することができる。
【００８２】
また、通信障害が復旧した時点で、自動的に待機系計算機１２でのサービス提供を停止して、クラスタシステム１の状態を正常時の状態に戻すことができる。
【００８３】
また、サービスの制御にスクリプトを用いることにより、サービスの実装から独立したクラスタ基盤機能として汎用的に利用できる。
【００８４】
本実施形態によれば、保持部１２ａは、現用系計算機１１が有するデータ１１ａ１の写し１２ａ１を保持する。提供部１２ｂは、現用系計算機１１から待機系計算機１２宛に送信されるハートビートパケットを所定時間受信できない場合に、保持部１２ａ内のデータの写し１２ａ１を更新する更新動作を制限しつつ、データの写し１２ａ１を用いてサービスＳを提供する。
【００８５】
提供部１２ｂが、保持部１２ａ内のデータの写し１２ａ１を更新する更新動作を制限するため、クラスタシステムを構成する計算機間で物理的に独立した複数の通信回線を必要とせずにスプリットブレインの発生を抑制できる。また、提供部１２ｂが、ハートビートパケットを所定時間受信できないと、制限付きだがサービスＳを提供するため、サービスＳの完全停止時間を短縮することが可能になる。
【００８６】
また、本実施形態では、提供部１２ｂは、ハートビートパケットを所定時間受信できない場合に、保持部１２ａ内のデータの写し１２ａ１の更新を禁止しつつ、データの写し１２ａ１を用いてサービスを提供する。この場合、スプリットブレインの発生を禁止することが可能になる。
【００８７】
また、本実施形態では、提供部１２ｂは、サービスを提供した後に更新動作の制限を解除する旨の指示を受け付けると、更新動作の制限を解除して、データ１２ａ１の写しを用いてサービスを提供する。
【００８８】
この場合、更新動作の制限を解除することが可能になる。
【００８９】
また、本実施形態では、提供部１２ｂは、サービスを提供した後にハートビートパケットを受信すると、現用系計算機１１内のデータ１１ａ１を保持部１２ａにコピーして保持部１２ａ内のデータの写しを更新する。
【００９０】
この場合、通信障害（ネットワーク・パーティション）の復旧に伴って、クラスタシステム１を自動的に正常な状態に戻すことが可能になる。
【００９１】
なお、上記実施形態において、図７に示すように、クラスタ制御部２２ａは、サービス実行部３２ａの起動・停止制御では、データ更新についての機能制限を行わず、サービス実行部３２ａからデータの写しに対するアクセスを制御してサービス実行部３２ａに対してデータの写し１２ａ１の参照のみ許可し、オペレータの手動操作によりデータ更新を許可してもよい。
【００９２】
以上説明した実施形態において、図示した構成は単なる一例であって、本発明はその構成に限定されるものではない。
【符号の説明】
【００９３】
１        クラスタシステム
１１      現用系計算機
１１ａ    保持部
１１ｂ    提供部
１１ｂ１  記憶部
１１ｂ２  制御部
２１ａ    クラスタ制御部
３１ａ    サービス実行部
１２      待機系計算機
１２ａ    保持部
１２ｂ    提供部
１２ｂ１  記憶部
１２ｂ２  制御部
２２ａ    クラスタ制御部
３２ａ    サービス実行部
１３      クライアント端末
２        ネットワーク
【図１】
0005699658.tif 000002
【図２】
0005699658.tif 000003
【図３】
0005699658.tif 000004
【図４】
0005699658.tif 000005
【図５】
0005699658.tif 000006
【図６】
0005699658.tif 000007
【図７】
0005699658.tif 000008