(57)【要約】【課題】正サイトの障害発生によるサービスの停止時間を短くし、迅速にフェイルオーバする。【解決手段】通常運用に供される第１サイトと、第１サイトに障害が発生した際に運用に供される第２サイトとを備え、第１ストレージ及び第２ストレージは、互いの記憶内容を等しくする同期部を有するコンピュータシステムであって、クライアントは、サービスが提供されるサーバにアクセスするためのアドレス情報、当該アドレス情報の有効期間を規定する情報と共に記録するキャッシュを有し、第１サーバは、第２サイトとの通信が不可能であることが検出されると、クライアントに対して、記録されたＤＮＳ情報の有効時間の短縮を指示する第１リクエストログ操作処理部を有する。【選択図】  図１
2005250626.tif 000002
【特許請求の範囲】
【請求項１】
クライアントにサービスを提供する正サーバと、前記正サーバに接続され前記正サーバに提供されるデータを記憶する正ストレージとを含む正サイトと、
クライアントにサービスを提供する副サーバと、前記副サーバに接続され前記副サーバ
に提供されるデータを記憶する副ストレージとを含む副サイトと、
前記クライアントから前記サービスが提供されるサーバにアクセスするためのＤＮＳ情報を提供するＤＮＳサーバと、を備え、
前記正サイトは通常運用に供され、前記副サイトは前記正サイトに障害が発生した際に運用に供され、
前記正ストレージ及び前記副ストレージは、互いの記憶内容を等しくするリモートコピー部を有するコンピュータシステムであって；
前記クライアントは、前記ＤＮＳサーバから取得したＤＮＳ情報を、当該ＤＮＳ情報の有効期間を規定する情報と共に記録し；
前記正サーバは、正リクエストログ操作処理部、正サイト処理部及びアプリケーション部を有し；
前記アプリケーション部は、前記クライアントからのデータ入出力要求を受け付け、当該要求に対する処理結果を当該クライアントに送信し；
前記正サイト処理部は、前記副サイトとの通信の可否を検出し；
前記正リクエストログ操作処理部は、前記正サイト処理部によって前記副サイトとの通信が不可能であることが検出されると、前記データ入出力要求の処理結果と共に当該データ入出力要求に付される識別番号を送信し、前記クライアントから前記正サーバに対して送信される要求を、前記識別番号と共に、前記リクエストログへの記録するように指示し、前記記録されたＤＮＳ情報の有効期間の短縮を指示し；
前記副サーバは、副リクエストログ操作処理部、副サイト処理部及びアプリケーション部を有し；
前記副サイト処理部は、前記副サイトとの通信が可否を検出し；
前記副リクエストログ操作処理部は、前記副サイト処理部によって前記正サイトとの通信が不可能であることが検出されると、前記正サイトに対する障害監視頻度を多くし、前記正ストレージのスナップショットを作成し、前記作成されたスナップショットを用いて、前記副サイトによるクライアントへのサービスの提供の準備を開始し、前記記録したＤＮＳ情報の有効期間の短縮を指示するコンピュータシステム。
【請求項２】
クライアントにサービスを提供する正サーバと、前記正サーバに接続され前記正サーバに提供されるデータを記憶する正ストレージとを含む正サイトと、
クライアントにサービスを提供する副サーバと、前記副サーバに接続され前記副サーバ
に提供されるデータを記憶する副ストレージとを含む副サイトと、
前記クライアントから前記サービスが提供されるサーバにアクセスするためのＤＮＳ情報を提供するＤＮＳサーバと、を備え、
前記正サイトは通常運用に供され、前記副サイトは前記正サイトに障害が発生した際に運用に供されるコンピュータシステムにおいて動作するプログラムであって；
前記クライアントを、前記ＤＮＳサーバから取得したＤＮＳ情報を、当該ＤＮＳ情報の有効期間を規定する情報と共に記録する手段として機能させ；
前記正ストレージ及び前記副ストレージを、互いの記憶内容を等しくする手段として機能させ；
前記正サーバを、
前記クライアントからのデータ入出力要求を受け付け、当該要求に対する処理結果を当該クライアントに送信する手段と、
前記副サイトとの通信の可否を検出する手段と、
前記副サイトとの通信が不可能であることが検出されると、前記データ入出力要求の処理結果と共に当該データ入出力要求に付される識別番号を送信する手段と、
前記副サイトに障害が発生したことが検出されると、前記クライアントから前記正サーバに対して送信される要求を、前記識別番号と共に、前記リクエストログへの記録を指示する手段と、
前記副サイトとの通信が不可能であることが検出されると、前記記録されたＤＮＳ情報の有効時間の短縮を指示する手段、として機能させ；
前記副サーバを、
前記正サイトとの通信の可否を検出する手段と；
前記正サイトとの通信が不可能であることが検出されると、前記正サイトに対する障害監視頻度を多くする手段と、
前記正サイトとの通信が不可能であることが検出されると、障害検出時点におけるスナップショットを作成する手段と、
前記正サイトに障害が発生したことが検出されると、前記作成されたスナップショットを用いて、前記副サイトによるクライアントへのサービスの提供の準備を開始する手段と、
前記正サイトに障害が発生したことが検出されると、記録したＤＮＳ情報の有効時間の短縮を指示する手段、として機能させるプログラム。
【請求項３】
前記正サーバが動作していないときに、
前記副サーバを、
前記ＤＮＳサーバに記録されるＤＮＳ情報を書き換える手段と、
前記クライアントに記録されたリクエストログを収集する手段と、
前記収集したリクエストログに基づいて前記副ストレージに記録されたデータを再構築する手段と、
前記データの再構築後に、前記副サーバによる前記クライアントに対するサービスの提供を開始する手段、として機能させる請求項２に記載のプログラム。
【請求項４】
前記副サーバを、前記正ストレージと前記副ストレージとの間のリモートコピーの状態を判定する手段として機能させ；
さらに、前記正サーバが動作しているときに、前記副サーバを、前記リモートコピーが停止状態でなければ、前記正ストレージと前記副ストレージとの記憶内容を等しくする再同期処理を行う手段として機能させる請求項２に記載のプログラム。
【請求項５】
クライアントにサービスを提供する第１サーバと、前記第１サーバに接続され前記第１サーバに提供されるデータを記憶する第１ストレージとを含む第１サイトと、
クライアントにサービスを提供する第２サーバと、前記第２サーバに接続され前記第２サーバに提供されるデータを記憶する第２ストレージとを含む第２サイトと、を備え、
前記第１サイトは通常運用に供され、前記第２サイトは前記第１サイトに障害が発生した際に運用に供され、
前記第１ストレージ及び前記第２ストレージは、互いの記憶内容を等しくする同期部を有するコンピュータシステムであって；
前記クライアントは、前記サービスが提供されるサーバにアクセスするためのアドレス情報、当該アドレス情報の有効期間を規定する情報と共に記録するキャッシュを有し；
前記第１サーバは、前記第２サイトとの通信が不可能であることが検出されると、前記クライアントに対して、前記記録されたＤＮＳ情報の有効時間の短縮を指示する第１リクエストログ操作処理部を有するコンピュータシステム。
【請求項６】
前記第１サーバは、前記クライアントからのデータ入出力要求を受け付け、当該要求に対する処理結果を当該クライアントに送信するアプリケーション部を有し、
前記リクエストログ操作処理部は、
前記第２サイトとの通信が不可能であることが検出されると、前記データ入出力要求の処理結果と共に当該データ入出力要求に付される識別番号を前記クライアントに送信し、
前記クライアントから前記第１サーバに対して送信される要求を、前記識別番号と共に記録する指示をする請求項５に記載のコンピュータシステム。
【請求項７】
前記第２サーバは、
前記第１サイトとの通信の可否を検出する第２サイト処理部と、
前記第１サイトとの通信が可能であることが検出されると、前記第１サイトに対する障害監視頻度を多くし、前記第１ストレージのスナップショットを作成し、前記作成されたスナップショットを用いて、前記副サイトによるクライアントへのサービスの提供の準備を開始し、前記記録したＤＮＳ情報の有効期間の短縮を指示する第２リクエストログ操作処理部と、を有する請求項５に記載のコンピュータシステム。
【請求項８】
前記クライアントから前記サービスが提供されるサーバにアクセスするためのアドレス情報を、前記クライアントに提供するＤＮＳサーバを備え、
前記第２サイト処理部は、前記第１サーバが動作していないときに、前記ＤＮＳサーバに記録されるアドレス情報を書き換え、前記クライアントに記録されたリクエストログを収集し、前記収集したリクエストログに基づいて前記第２ストレージに記録されたデータを再構築した後に、前記第２サーバによる前記クライアントに対するサービスの提供を開始する請求項５に記載のコンピュータシステム。
【請求項９】
前記第２サイト処理部は、
前記第１ストレージと前記第１ストレージとの間のリモートコピーの状態を判定し、
前記第１サーバが動作しているときに、前記リモートコピーのペア状態がサスペンド状態でなければ、前記第１ストレージと前記第２ストレージとの記憶内容を等しくする再同期処理を行う請求項５に記載のコンピュータシステム。
【請求項１０】
前記第２サイト処理部は、
前記第１ストレージと前記第１ストレージとの間のリモートコピーの状態を判定し、
前記第１サーバが動作しているときに、前記リモートコピーのペア状態がサスペンド状態でなければ、前記第１ストレージと前記第２ストレージとの記憶内容を等しくする再同期処理を行い、
前記再同期処理の終了後に、前記作成されたスナップショットを消去する請求項７に記載のコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、正サイトと副サイトによって運用されるコンピュータシステムに関し、特に障害発生時の切替技術に関する。
【背景技術】
【０００２】
情報化社会において、インターネット（登録商標、以下同じ）を経由してサービスを提供するシステムが多く運用されている。例えば、指定券の予約システムやネットワークバンキングシステムがある。このようなシステムにおいては、二つのサイト（正サイトと副サイト）を設け、副サイトをホットスタンバイ状態で待機させることによって、正サイトに障害が生じても、副サイトに速やかに切り替えることによって、障害による停止時間を短くしている（例えば、特許文献１参照。）。
【０００３】
また、インターネット上にはＤＮＳサーバが設けられており、クライアントからアクセス先のサーバのＩＰアドレスを与える名前解決処理を行っている。また、このＩＰアドレスを与えるＤＮＳ情報のキャッシュをインターネット上に設けることによって、ＤＮＳサーバの負荷を軽減し、名前解決処理時間を短縮している（例えば、非特許文献１参照。）。
【特許文献１】特開２００２−３１２１８９号公報
【非特許文献１】P. Mockapetris他、Request for Comments:1034、DOMAIN NAMES - CONCEPTS AND FACILITIES、１９８７年１１月、インターネット＜ＵＲＬ：http://www.ietf.org/rfc/rfc1034.txt＞
【発明の開示】
【発明が解決しようとする課題】
【０００４】
前述した障害発生時に、アクセス先を正サイトから副サイトに切り替えるためにＤＮＳサーバのＤＮＳ情報を書き換えたとしても、インターネット上に設けられたＤＮＳ情報のキャッシュの有効時間によっては、そのキャッシュされたＤＮＳ情報に基づいて、クライアントから正サイトに対するアクセスが生じ、副サイトへアクセス先を切り替えるのに時間を要し、サービスの停止時間が長くなることがあった。
【０００５】
本発明は、正サイトの障害発生によるサービスの停止時間を短くし、迅速にフェイルオーバすることを目的とする。
【課題を解決するための手段】
【０００６】
本発明は、クライアントにサービスを提供する第１サーバと、前記第１サーバに接続され前記第１サーバに提供されるデータを記憶する第１ストレージとを含む第１サイトと、クライアントにサービスを提供する第２サーバと、前記第２サーバに接続され前記第２サーバに提供されるデータを記憶する第２ストレージとを含む第２サイトと、を備え、前記第１サイトは通常運用に供され、前記副サイトは前記正サイトに障害が発生した際に運用に供され、前記第１ストレージ及び前記第２ストレージは、互いの記憶内容を等しくする同期部を有するコンピュータシステムであって；前記クライアントは、前記サービスが提供されるサーバにアクセスするためのアドレス情報、当該アドレス情報の有効期間を規定する情報と共に記録するキャッシュを有し；前記第１サーバは、前記第２サイトとの通信が不可能であることが検出されると、前記クライアントに対して、前記記録されたＤＮＳ情報の有効時間の短縮を指示する第１リクエストログ操作処理部を有する。
【発明の効果】
【０００７】
本発明によると、フェイルオーバ（副サイトへの処理の切り替え）を高速化することができる。
【発明を実施するための最良の形態】
【０００８】
以下、本発明の実施の形態を図面を参照して説明する。
【０００９】
図１は、本発明の実施の形態のコンピュータシステムの構成を示すブロック図である。
【００１０】
本発明の実施の形態のコンピュータシステムは、正サーバホスト１００、正サーバホスト１００に接続される正ストレージ１５０、副サーバホスト２００、副サーバホスト２００に接続される副ストレージ２５０、正サーバホスト１００から提供されるサービスを受けるクライアントホスト３００及びＤＮＳホスト４００によって構成されている。なお、正サーバホスト１００及び正ストレージ１５０は通常運用に供される正サイトを構成し、副サーバホスト２００及び副ストレージ２５０は正サイトに障害が発生した時の運用に供される副サイトを構成している。
【００１１】
正サーバホスト１００は、ＣＰＵ、メモリ、記憶装置及びインターフェースが備わるコンピュータ装置であり、各種プログラムが動作している。具体的には、正サーバホスト１００では、正リクエストログ操作プログラム１０１、正クラスタプログラム１０２及びアプリケーションプログラム１０３が動作している。
【００１２】
正リクエストログ操作プログラム１０１は、後述する障害サスペンド検出時にクライアントホスト３００対してリクエストログに関する操作を指示する。
【００１３】
正クラスタプログラム１０２は、正ストレージ１５０のペア状態監視プログラム１５１からリモートコピーの監視結果の通知を受け、リモートコピーのペア状態を監視する。また、正クラスタプログラム１０２は、ハートビート等の障害監視手法を用いて、副サーバホスト２００の動作を監視する。なお、副サーバホスト２００の監視は、正クラスタプログラム１０２ではなく、正サーバホスト１００の他の構成で実行してもよい。
【００１４】
アプリケーションプログラム１０３は、広域ネットワーク５００を介してサーバ装置１００に接続されたクライアントホスト３００に、データベースサービスやウェブサービス等を提供する。
【００１５】
また、正サーバホスト１００では、アプリケーションプログラム１０３から正ストレージ１５０へのアクセスを実現するための、データベースシステム１０４及び／又はファイルシステム１０５が動作している。
【００１６】
データベースシステム１０４は、アプリケーションプログラム（特にデータベースアプリケーションプログラム）１０３からのアクセスをブロックアクセス又はファイルＩ／Ｏに変更して、正ストレージ１５０にデータ入出力要求を送る。アプリケーションプログラム１０３は、データベースシステム１０４によってデータベースに記憶されたデータ単位でデータを入出力することができる。
【００１７】
ファイルシステム１０５は、アプリケーションプログラム１０３又はデータベースシステム１０４からのファイルアクセスをブロックアクセスに変更して、正ストレージ１５０にデータ入出力要求を送る。アプリケーションプログラム１０３は、ファイルシステム１０５によってファイル単位でデータを入出力することができる。
【００１８】
正サーバホスト１００には、インターフェースとして、広域ネットワーク５００に対するインターフェース（例えば、イーサネットカードのようなＮＩＣ：Network Interface Card）と、正ストレージ１５０に対するインターフェース（例えば、ＳＣＳＩ：Small Computer System Interface、ＦＣ：Fibre Channel等）とが備わっている。
【００１９】
正ストレージ装置１５０は、制御部、物理ディスク及びインターフェースを備えた記憶装置で、正サーバホスト１００に提供されるデータを記憶している。
【００２０】
制御部は、ＣＰＵ及びメモリを備え、正サーバホスト１００からのデータ入出力要求を受け付け、正サーバホスト１００にデータを送信する。また、制御部では、ペア状態通知プログラム１５１及びリモートコピープログラム１５３が動作している。
【００２１】
ペア状態通知プログラム１５１は、リモートコピープログラム１５３によるリモートコピーの状態を監視し、正サーバホスト１００に該監視結果（リモートコピーのペア状態）を通知する。例えば、回線（リモートコピー用ネットワーク５１０）の障害によりリモートコピーに失敗したら、正クラスタプログラム１０２にその旨を通知する。
【００２２】
リモートコピープログラム１５３は、副ストレージ２５０側のリモートコピープログラム２５３と共に動作し、正ストレージ１５０に記憶されたデータを副ストレージ２５０に複写するリモートコピー処理を行う。このリモートコピーには、同期リモートコピーと非同期リモートコピーとの２種類が存在し、各々長所と短所がある。
【００２３】
具体的には、同期リモートコピーでは、ストレージはサーバホストからの書き込み要求があった場合、その書き込み要求に付随するデータのストレージへの転送が完了した後に、その書き込み要求に対する応答をサーバホストに行う。従って、同期リモートコピーでは障害の発生によってデータが消失することは少ないが、正副ストレージ間の距離が長く、回線による遅延が増加すると、サーバホストとストレージ間のＩ／Ｏ性能が悪化する。
【００２４】
一方、非同期リモートコピーでは、ストレージは、書き込み要求に対するサーバホストへの応答と書き込み要求に係るデータの転送とを独立したタイミングで実行する。従って、非同期リモートコピーでは、正副ストレージ間の距離が長くても、遠隔地にデータをコピーする前に計算機へ応答を返送することができるので、計算機への応答性能の低下を招きにくいが、データ消失の可能性は同期リモートコピーより高くなる。なお、本発明においては、いずれの方式でもよい。
【００２５】
物理ディスクには、論理的な領域である論理ユニット（ＬＵ）１５４が設定されている。また、複数の物理ディスクによってＲＡＩＤ（Redundant Array of Independent Disks）が構成されており、記憶されるデータに冗長性を持たせている。このため、物理ディスクの一部に障害が生じても、記憶されたデータが消失しないようになっている。
【００２６】
正ストレージ１５０には、正サーバサイト１００に対するインターフェース（例えば、ＳＣＳＩ：Small Computer System Interface、ＦＣ：Fibre Channel、ｉＳＣＳＩ：internet SCSI等）が備わっている。
【００２７】
副サーバホスト２００は、ＣＰＵ、メモリ、記憶装置及びインターフェースが備わるコンピュータ装置であり、正サーバホスト１００と同じプログラムが動作している。すなわち、副サーバホスト２００は、正サーバホスト１００と同じ動作を行なって、常に同じ状態を保った待機状態（ホットスタンバイ状態）となっている。そして主系（正サイトを構成する正サーバホスト１００、正ストレージ１５０）に障害が発生すると直ちに予備系（副サイトを構成する副サーバホスト２００、副ストレージ２５０）に処理を引き継ぐフェイルオーバ処理を行うようにして、システムの信頼性を向上させている。なお、本発明は副サーバホスト２００がホットスタンバイ状態で待機していなくても、コールドスタンバイ状態であっても、障害発生時に正サイトから副サイトへの業務の引き継ぎが行えればよい。
【００２８】
副サーバホスト２００では、具体的には、副リクエストログ操作プログラム２０１、副クラスタプログラム２０２及びアプリケーションプログラム２０３が動作している。
【００２９】
副リクエストログ操作プログラム２０１は、主系に障害が発生した時にクライアントホスト３００に対してリクエストログの収集を行う。
【００３０】
副クラスタプログラム２０２は、後述する障害サスペンド検出時に、正サーバホスト１００に代わって、副サーバホスト２００による運用を開始するための準備を行う。また、副クラスタプログラム２０２は、ハートビート等の障害監視手法を用いて、正サーバホスト１００の動作を監視する。なお、正サーバホスト１００の監視は、副クラスタプログラム１０２ではなく、副サーバホスト２００の他の構成で実行してもよい。
【００３１】
アプリケーションプログラム２０３は、正サーバホスト１００で動作しているアプリケーションプログラムと同じプログラムであり、フェイルオーバ時に、クライアントホスト３００にデータベースサービスやウェブサービス等を提供する。
【００３２】
また、副サーバホスト２００は、正サーバホスト１００と同様にデータベースシステム２０４及びファイルシステム２０５が動作している。
【００３３】
また、副サーバホスト２００には、インターフェースとして、広域ネットワーク５００に対するインターフェース（例えば、イーサネットカードのようなＮＩＣ：Network Interface Card）と、副ストレージ２５０に対するインターフェース（例えば、ＳＣＳＩ：Small Computer System Interface、ＦＣ：Fibre Channel、ｉＳＣＳＩ：internet SCSI等）とが備わっている。
【００３４】
副ストレージ装置２５０は、制御部、物理ディスク及びインターフェースを備えた記憶装置で、副サーバホスト２００に提供されるデータを記憶している。
【００３５】
制御部は、ＣＰＵ及びメモリを備え、副サーバホスト２００からのデータ入出力要求を受け付け、副サーバホスト２００にデータを送信する。また、制御部では、ペア状態通知プログラム２５１、スナップショットプログラム２５２及びリモートコピープログラム２５３が動作している。
【００３６】
ペア状態通知プログラム２５１は、リモートコピープログラム２５３によるリモートコピーの状態を監視し、正サーバホスト１００に該監視結果（リモートコピーのペア状態）を通知する。例えば、通信回線（リモートコピー用ネットワーク５１０）の障害によりリモートコピーに失敗したら、正クラスタプログラム１０２にその旨を通知する。
【００３７】
スナップショットプログラム２５２は、論理ユニット２５４の運用ボリュームに対してスナップショットを生成する。このため、スナップショットの維持に必要な差分データを格納する差分ボリュームを管理し、ファイルシステム２０５（又は、データベースシステム２０４）の要求に応じて運用ボリュームのスナップショットを提供する仮想ボリュームにアクセス可能にする。また、その後の運用ボリュームへのアクセスに対応してスナップショット作成時のデータを差分ボリュームに書き込み、スナップショットを維持する。
【００３８】
リモートコピープログラム２５３は、正ストレージ１５０のリモートコピープログラム１５３と共に動作し、正ストレージ１５０に記憶されたデータを副ストレージ２５０に複写するデータコピー処理を行う。
【００３９】
物理ディスクには、論理的な領域である論理ユニット（ＬＵ）２５４が設定されている。また、複数の物理ディスクによってＲＡＩＤが構成されている。
【００４０】
副ストレージ２５０には、副サーバサイト２００に対するインターフェース（例えば、ＳＣＳＩ：Small Computer System Interface、ＦＣ：Fibre Channel等）が備わっている。
【００４１】
クライアントホスト３００は、ＣＰＵ、メモリ、記憶装置及びインターフェースが備わるコンピュータ装置であり、正サーバホスト１００（フェールオーバ時には副サーバホスト２００）から提供されるデータベースサービスやウェブサービス等を利用する。
【００４２】
具体的には、クライアントホスト３００では、クライアントプログラム３０１が動作している。クライアントプログラム３０１は、ｗｅｂブラウザやデータベースクライアント等のソフトウェアである。
【００４３】
また、クライアントホスト３００には、クエストログ３０２及びＤＮＳキャッシュ３０３が記録されている。リクエストログ３０２には、副サーバホスト２００による障害サスペンド検出後に、当該クライアントホスト３００からなされたデータ入出力要求が記録される。ＤＮＳキャッシュ３０３には、クライアントホスト３００がＤＮＳホスト４００から取得したＤＮＳ情報が一時的に記憶される。このとき、ＤＮＳ情報と共に、キャッシュされたＤＮＳ情報が有効に利用できる時間（キャッシュの有効時間（ＴＴＬ：Time To Live））が記憶される。すなわち、クライアントホスト３００は、キャッシュの有効時間内であれば、ＤＮＳホスト４００にＤＮＳ情報を問い合わせることなく、キャッシュされたＤＮＳ情報に基づいてアクセス先のホストを選択する。
【００４４】
また、クライアントホスト３００には、広域ネットワーク５００に対するインターフェース（例えば、イーサネットカードのようなＮＩＣ：Network Interface Card）が備わっている。
【００４５】
ＤＮＳホスト４００は、ＣＰＵ、メモリ、記憶装置及びインターフェースが備わるコンピュータ装置であり、ＤＮＳサーバ４０１が動作している。
【００４６】
ＤＮＳサーバ４０１は、ＤＮＳ情報４０２を参照して、ゾーン内のホスト（クライアントホスト３００、サーバホスト１００、２００）に、ＤＮＳ情報（ドメイン名に対応したＩＰアドレス）を供給する。ＤＮＳ情報４０２には、ドメイン名に対してＩＰアドレスが記載されたゾーンファイルが記録されている。すなわち、クライアントホスト３００がホスト名を用いてサーバホスト１００等にアクセスする際に、ＤＮＳサーバ４０１に問い合わせることによってサーバホストのＩＰアドレスを得て、ＩＰアドレスを用いたアクセスをすることができる。
【００４７】
また、ＤＮＳホスト４００には、広域ネットワーク５００に対するインターフェース（例えば、イーサネットカードのようなＮＩＣ：Network Interface Card）が備わっている。
【００４８】
広域ネットワーク５００は、例えば、ＴＣＰ／ＩＰプロトコルによって、コンピュータ間でデータや制御情報を通信可能に構成されており、例えばイーサネットが用いられる。
【００４９】
リモートコピー用ネットワーク５１０は、例えばファイバチャネルプロトコルのような、データの転送に適するプロトコルで通信可能なネットワークである。なお、正ストレージ１５０と副ストレージ２５０との間は、１対１で接続されてもよい。
【００５０】
次に、本発明の実施の形態のコンピュータシステムの動作を説明する。
【００５１】
図２は、本発明の実施の形態の正サーバホスト１００が障害を検出した時の動作を説明する図である。
【００５２】
正クラスタホスト１００では、アプリケーションプログラム１０３が、クライアントホスト３００からのデータ入出力要求の処理結果（例えば、要求に対して読み出したデータ、書き込み要求に対する成否）を送信する。このとき、正クラスタプログラム１０２が、ペア状態監視プログラム１５１からの通知を受けることによって、正ストレージ１５０と副ストレージ２５０との間のリモートコピーの失敗を検出したら、正サイトにも障害が発生する可能性があると判定する。これは、リモートコピーが失敗した時点では、通信回線（リモートコピー用ネットワーク５１０）に障害が発生したのか、ストレージに障害が発生したのかの区別をすることができず、また通信回線の障害の場合であってもその障害が正サイトに拡大する可能性があるからである。
【００５３】
このとき、正クラスタプログラム１０２が、ペア状態監視プログラム１５１からの通知を受ける。そして、ペア状態監視プログラム１５１からの通知に基づき正ストレージ１５０と副ストレージ２５０との間のリモートコピーの失敗を検出したら、障害が正サイト全体に波及する可能性が高いと判断し、正サイトが停止した場合に備えて以下の処理を実行する。なお、この時点では、正サイトが停止した場合に備えて副サイトへ処理を引き渡せるよう準備をするのみで、正サイトでの運用は継続して行われており、クライアントホストからの要求も正サイトにて処理される。リモートコピーの失敗は一時的な通信回線の障害に起因する可能性もあり、この場合短期で回線障害が復旧し、正サイトでの運用が続行可能な場合もあるからである。なお、正ストレージ１５０の障害検出は、他の障害監視手法によるものであってもよい。
【００５４】
正リクエストログ操作プログラム１０１は、まず、データ入出力要求の処理結果と共に、当該データ入出力要求に付される識別番号（例えば、当該データ入出力要求の処理の順に付されるシーケンシャル番号）をクライアントホスト３００に送信する。クライアントホスト３００は、この識別番号をリクエストログに記録することによって、その後リクエストログ３０２を取得した副サーバホスト２００が、データ入出力要求を識別することができるようになる。
【００５５】
また、正リクエストログ操作プログラム１０１は、クライアントホスト３００からサーバホスト１００、２００に対するデータ入出力要求をリクエストログ３０２に記録する指示を、クライアントホスト３００に送信する。副サーバホスト２００が、リクエストログ３０２に記録されたデータ入出力要求を収集することによって、障害検出からサーバの切り替えまでになされたデータ入出力要求を把握することができるようにするためである。
【００５６】
リクエストログ記録指示を受け取ったクライアントホスト３００は、正サーバホスト１００に対するデータ入出力要求のリクエストログ３０２への記録を開始する。
【００５７】
そして、後述するように、副リクエストログ操作プログラム２０１は、正サイトの障害が検出された段階で、クライアントホスト３００からリクエストログを収集する（図４参照）。なお、障害が検出された段階で（障害サスペンド時に）、クライアントホスト３００からリクエストログの収集を開始してもよい。さらに、リクエストログ記録指示を受け取ったクライアントプログラム３０１はリクエストログを記録しておき、定期的に副サーバホスト２００（副クラスタプログラム２０２）へ該リクエストログを送信してもよい。なお、このときの副サーバホスト２００のＩＰアドレスは、ログ取得指示と共にクライアントホスト３００に通知するとよいが、他の方法を用いて副サーバホスト２００のＩＰアドレスを通知してもよい。
【００５８】
さらに、正リクエストログ操作プログラム１０１は、ＤＮＳキャッシュの有効時間（ＴＴＬ）を短縮する指示をクライアントホスト３００に送信して、クライアントホスト３００に記憶されているＤＮＳキャッシュ３０３が参照される時間を短くして、アクセス先が速やかに切り替わるようにする。なお、このＤＮＳキャッシュ有効時間の短縮指示は、正サーバホスト１００が送信してもよいが、後述するように副サーバホスト２００が送信してもよい。
【００５９】
図３は、本発明の実施の形態の副サーバホスト２００が障害を検出した時の動作を説明する図である。
【００６０】
副クラスタホスト２００では、副クラスタプログラム２０２が、ペア状態監視プログラム２５１からの通知を受けることによって、正ストレージ１５０と副ストレージ２５０との間のリモートコピーの失敗を検出したら、正ストレージ１５０に障害が発生したもの仮定して、正サイトが実行していた処理を副サイトで引き継がなければならない可能性があると判定する。そして、正サイトが停止した場合に備えて以下の処理を実行する。なお、正ストレージ１５０の障害検出は、他の障害監視手法によるものであってもよい。
【００６１】
副クラスタプログラム２０２は、まず、ハートビートによる正副サイト間の障害監視間隔を短縮し、障害監視頻度を多くして、正サーバホスト１００や正ストレージ１５０の状態の変化が速やかに検出できるようにする。
【００６２】
また、この障害の検出時点におけるスナップショットを作成する。
【００６３】
さらに、ファイルチェックシステムを動作させ、スナップショットの仮想ボリュームを利用したデータベースの復旧を開始する。
【００６４】
さらに、ＤＮＳキャッシュの有効時間（ＴＴＬ）の短縮指示をクライアントホスト３００に送信して、アクセス先が速やかに切り替わるようにする。なお、このＤＮＳキャッシュ有効時間短縮指示を、副サーバホスト２００からも送信可能にすると、正サーバホスト１００に障害が発生した時にも適切な対応をすることができる。
【００６５】
図４は、本発明の実施の形態の副サーバホスト２００が、正サーバホスト１００の停止を検出した時の動作を説明する図である。
【００６６】
副クラスタプログラム２０２は、ハートビート等の障害監視手法を用いて、正サーバホスト１００の動作を監視している。この障害監視によって、正サーバホスト１００の停止が確認されると、ＤＮＳホスト４００に記憶されているＤＮＳ情報４０２を更新して、クライアントホスト３００から正サーバホスト１００へではなく、副サーバホスト２００に対してアクセスがされるようにする。
【００６７】
そして、障害サスペンド検出後にアクセスをしたクライアントホスト３００からリクエストログを収集し、正サーバホスト１００の障害発生以後にクライアントホスト３００からなされたデータ入出力要求に関するログを取得する。そして、アプリケーションプログラム２０３を実行して、収集したリクエストログをデータに反映させる。すなわち、正サーバホスト１００の障害発生以後にクライアントホスト３００からなされたデータ入出力要求は、正ストレージ１５０が記憶するデータに反映されていない場合があることから、アプリケーションプログラム２０３を実行して、収集したリクエストログの識別番号順に、リクエストログを取得したスナップショットの仮想ボリュームのデータに反映させることによって、障害発生以後の動作が正確に反映されていないデータを復旧させる。
【００６８】
その後、副サーバホスト２００によるサービスの提供を開始する。
【００６９】
図５は、正クラスタプログラム１０２によって実行される、正クラスタの基幹処理のフローチャートである。
【００７０】
正クラスタプログラム１０２は、ペア状態通知プログラム１５１からの通知によってリモートコピーのペア状態を監視する（Ｓ１０１）。その結果、ペア状態が「サスペンド状態」でなければ（Ｓ１０２）、リモートコピーは正常に行われていると判定して、ステップＳ１０１に戻り、さらにリモートコピーのペア状態の監視を継続する。
【００７１】
一方、ペア状態が「サスペンド状態」であれば、リモートコピーは正常に行われていないと判定して、クライアントホスト３００（クライアントプログラム３０１）にリクエストログの取得を指示する（Ｓ１０３）。なお、このとき、同時にＤＮＳキャッシュ３０３の有効時間を短くする指示もする（図２参照）。さらに、クライアントホスト３００からのデータ入出力要求対し、シーケンシャル番号を付して応答を返送する。
【００７２】
その後、正サーバホスト１００と広域ネットワーク５００とが正常に接続されているか否かを確認して、副サーバホスト２００との通信が可能かを判定する（Ｓ１０４）。具体的には、ＤＮＳホスト４００との通信（例えば、ＩＰアドレスの問い合わせ）によって広域ネットワーク５００との接続性を確認することができる。
【００７３】
その結果、正サーバホスト１００と広域ネットワーク５００とが正常に接続されていないと判断すると、正サーバホスト１００によるサービスの提供を停止して（Ｓ１１０）、この正クラスタの基幹処理を終了する。
【００７４】
一方、正サーバホスト１００と広域ネットワーク５００とが正常に接続されていると判断すると、リモートコピー用ネットワーク５１０の状態を監視する（Ｓ１０６）。このリモートコピー用ネットワーク５１０の状態の監視は、公知の障害監視手法を用いる。例えば、リモートコピー用ネットワーク５１０を介してピング（ＰＩＮＧ：Packet INternet Groper）を送信して、その応答を確認することによって、リモートコピー用ネットワーク５１０を介した通信が可能か否かを知ることができる。
【００７５】
その監視の結果、リモートコピー用ネットワーク５１０の状態が回復していなければ、ステップＳ１０４に戻り、さらに広域ネットワーク５００との接続性を確認をする。
【００７６】
一方、リモートコピー用ネットワーク５１０の状態が回復していれば、副サーバホスト２００によるフェイルオーバの必要がないので、一時的にリモートコピーのペア状態を崩れていたものを再同期させる（Ｓ１０８）。この再同期処理は、リモートコピーのペア状態が障害サスペンドとなった以降の書き込み位置を示すビットマップを参照して、書き込みが行われた正ストレージ１５０のデータのみを副ストレージ２５０へコピーする。このいわゆる差分コピーを実行することで、障害サスペンド以降の正ストレージ１５０に対する書き込みを副ストレージ２５０へ反映させ、再び同期状態に復旧させる。
【００７７】
そして、クライアントホスト３００（クライアントプログラム３０１）にリクエストログ取得指示の解除を通知する（Ｓ１０９）。このリクエストログの取得指示の解除は、クライアントホスト３００から正サーバホスト１００へのアクセスに対する応答に含ませて通知すればよい。また、ステップＳ１０３でリクエストログ取得指示を送信したクライアントホスト３００に同報通知してもよい。
【００７８】
図６は、副クラスタプログラム２０２によって実行される、副クラスタの基幹処理のフローチャートである。
【００７９】
副クラスタプログラム２０２は、ペア状態通知プログラム１５１からの通知によってリモートコピーのペア状態を監視する（Ｓ１２１）。その結果、ペア状態が「サスペンド状態」でなければ（Ｓ１２２）、リモートコピーは正常に行われていると判定して、ステップＳ１２１に戻り、さらにリモートコピーのペア状態の監視を継続する。
【００８０】
一方、ペア状態が「サスペンド状態」であれば、リモートコピーは正常に行われていないと判定して、差分データ及び差分データの位置を表すマッピングテーブルをスナップショットとして作成する（Ｓ１２３）。
【００８１】
その後、副ストレージ２５０の論理ユニット２５４を組み込むボリュームマウント処理を行い（Ｓ１２４）、データベースシステム２０４を起動する（Ｓ１２５）。具体的には、データベースシステム２０４を再起動した後に、ステップＳ１２３で作成したスナップショットのデータに対して別に取得したログファイル（履歴ファイル）を反映して、データベースのリカバリ処理を行う。
【００８２】
その後、ＤＮＳキャッシュの有効時間（ＴＴＬ）を短縮して、副サーバホスト２００によるフェイルオーバが生じても、クライアントホスト１００から、迅速に副サーバーホスト２００に対してアクセスが行われるようにする（Ｓ１２６）。なお、ステップＳ１２６のＤＮＳキャッシュ有効時間短縮処理には、ＤＮＳキャッシュを無効にすること（例えば、ＤＮＳキャッシュの有効時間を”０”にすること）も含まれる。ここまでの処理によって、副サーバホスト２００によるフェイルオーバの準備が完了する。
【００８３】
そして、副クラスタプログラム２０２は、正サーバホスト１００（正クラスタプログラム１０２）と広域ネットワーク５００を介した通信を試みる（Ｓ１２７）。そして、正サーバホスト１００との間で通信が可能かによって、正サーバホスト１００が動作しているか否かを判定する（Ｓ１２８）。
【００８４】
その結果、正サーバホスト１００との間で通信ができなければ、正サーバホスト１００は動作していないものと判定して、ステップＳ１３２に移行し、副サーバホスト２００によるフェイルオーバ処理を開始する。
【００８５】
一方、正サーバホスト１００との間で通信が可能できれば、正サーバホスト１００は動作しているものと判定して、ペア状態通知プログラム１５１からの通知によってリモートコピーのペア状態を監視する（Ｓ１２９）。その結果、ペア状態が「サスペンド状態」であれば（Ｓ１３０）、正副ストレージ間の通信が不可能な状態であると判定して、ステップＳ１２７に戻り、さらに、正クラスタプログラム１０２との通信によって、正サーバホスト１００が動作しているかを判定する。
【００８６】
一方、ペア状態が「サスペンド状態」でなければ、正サイトと副サイトのリモートコピーが再開されたものと判定して、再同期処理（図７）を実行する（Ｓ１３１）。その後、Ｓ１２１に戻りさらにリモートコピーのペア状態の監視を継続する。
【００８７】
ステップＳ１３２からのフェイルオーバ処理では、まず、ＤＮＳホスト４００に記憶されたＤＮＳ情報を書き換える（Ｓ１３２）。すなわち、正サーバホスト１００のドメイン名に対応して記録されるＩＰアドレスを、正サーバホスト１００のものから副サーバホスト２００のものに変更する。このＤＮＳ情報の書き換えによって、ドメイン名を用いて正サーバホスト１００にアクセスしようとするクライアントホスト３００は、副サーバホスト２００にアクセスすることになる。そして、ステップＳ１２６において、ＤＮＳキャッシュ有効時間が短縮されていることから、この書き換えられたＤＮＳ情報は速やかに反映され、クライアントホスト３００から正サーバホスト１００にのアクセスされる時間を短縮している。
【００８８】
そして、クライアントホスト３００からリクエストログを収集する（Ｓ１３３）。このリクエストログは、正サーバホスト１００からの指示（図５のステップＳ１０３）を契機として収集されたものである。
【００８９】
また、クライアントホスト３００からのリクエストログの収集は、正サーバホスト１００リクエストログ取得指示を送信（図５のステップＳ１０３）したクライアントホスト３００（すなわち、障害サスペンド検出後にアクセスをしてきたクライアントホスト）を特定し、該特定されたクライアントホスト３００に対してリクエストログの問い合わせをすることによって行うことができる。この方法は、不特定多数のクライアントホストが存在するインターネットのサービスに適する。また、すべてのクライアントホスト３００に対して、リクエストログの問い合わせをすることもできる。業務系システム（例えば、銀行系）の端末のように、予めアクセスしてくるクライアントホストが分かっている場合に適する。
【００９０】
その後、副クラスタプログラム２０２は、取得したリクエストログに付されている識別番号（シーケンシャル番号）を用いて、取得したリクエストログに対応するデータ入出力要求がどこまでデータに反映されているかを照合する。そして、反映されていないデータ入出力要求を特定して、アプリケーションプログラム２０３によって、該特定されたデータ入出力要求をデータに反映し、データを復旧する。
【００９１】
その後、副サーバホスト２００は、正サーバホスト１００に代わって業務を開始して（Ｓ１３４）、この副クラスタの基幹処理を終了する。
【００９２】
図７は、副クラスタプログラム２０２（図６のステップＳ１３１）によって実行される、再同期処理のフローチャートである。
【００９３】
まず、再同期処理では、ペア状態通知プログラム１５１からの通知によってリモートコピーのペア状態を監視する（Ｓ１４１）。その結果、ペア状態が「同期」でなければ（Ｓ１４２）、リモートコピーは正常に行われていないと判定して、ステップＳ１４１に戻り、さらにリモートコピーのペア状態の監視を継続する。このとき、正クラスタプログラム１０２（図５のステップＳ１０８）によってリモートコピーが実行されているので、このリモートコピーが終了するまでステップＳ１４１により継続して監視がされる。
【００９４】
一方、ペア状態が「同期」であれば、リモートコピーは正常に行われている（図５のステップＳ１０８によるリモートコピーは正常に終了した）と判定して、データベースシステム２０４を停止し（Ｓ１４３）、副ストレージ２５０の論理ユニット２５４を切り離すボリュームアンマウント処理を行う（Ｓ１４４）。
【００９５】
その後、不要になった図５のステップＳ１２３で作成したスナップショット（差分データ及びマッピングテーブル）を消去する（Ｓ１４５）。
【００９６】
図８は、リクエストログ収集処理のフローチャートであり、クライアントプログラム３０１によって実行される。
【００９７】
リクエストログ収集処理は、正サーバホスト１００からリクエストログ取得指示（図５のＳ１０３）によって起動され、クライアントホスト３００から正サーバーホスト１００へのアクセスが生じる毎にリクエストログ３０２にリクエスト内容を書き込む。
【００９８】
まず、リクエストログ収集処理では、正サーバホスト１００にアクセスするために、ＤＮＳホスト４００に対してドメイン名を送り、ＩＰアドレスの問い合わせを発行して（Ｓ１５１）、ＩＰアドレスを取得する。そして、アクセス先の正サーバホスト１００に対してＴＣＰコネクションを確立要求を送り、正サーバホスト１００との間でＴＣＰコネクションを確立する（Ｓ１５２）。
【００９９】
その後、正サーバホスト１００に対して送信するデータ入出力要求（リクエスト）内容を作成する（Ｓ１５３）。そして、作成したリクエスト内容をリクエストログ３０２へ記録する（Ｓ１５４）。そして、確立したＴＣＰコネクションを用いてリクエスト内容を送信する（Ｓ１５５）。
【０１００】
その後、リクエスト結果（読み出されたデータや、データの書込の成否等）、及び、正サーバホスト１００がリクエスト結果に対して付す識別番号を受信すると（Ｓ１５６）、先にリクエストログ３０２に記録したリクエスト内容に関連してリクエストログ３０２に識別番号を記録する（Ｓ１５７）。
【０１０１】
その後、確立したＴＣＰコネクションを切断する（Ｓ１５８）。
【０１０２】
図９は、リクエストログの内容の説明図である。
【０１０３】
リクエストログ３０２には、正サーバホスト１００に対して送信されたリクエスト（データ入出力要求）の内容、及び、正サーバホスト１００によって該リクエストに付される識別番号（シーケンシャル番号）が対応するように記録されている。
【０１０４】
図１０は、本発明の実施の形態のコンピュータシステムの変形例を示すブロック図である。
【０１０５】
この変形例のコンピュータシステムでは、前述したコンピュータシステム（図１）の構成に加えてＤＮＳスレーブホスト４５０を有する。
【０１０６】
ＤＮＳスレーブホスト４５０は、ＣＰＵ、メモリ、記憶装置及びインターフェースが備わるコンピュータ装置であり、広域ネットワーク５００を介して、クライアントホスト３００及びＤＮＳホスト４００と接続されている。
【０１０７】
ＤＮＳスレーブホスト４５０では、ＤＮＳスレーブサーバ４５１が動作しており、複写ＤＮＳ情報４５２が保持されている。
【０１０８】
複写ＤＮＳ情報４５２は、ＤＮＳホスト４００のＤＮＳ情報４０２と同じ内容が保持されている。
【０１０９】
ＤＮＳスレーブサーバ４５１は、ＤＮＳホスト４００に備わるＤＮＳサーバ４０１と同じくクライアントホスト３００からのＤＮＳ要求に対する応答を行う他に、複写ＤＮＳ情報４５２のキャッシュ有効時間が過ぎたことを検出して、ＤＮＳホスト４００からＤＮＳ情報を取得することによって複写ＤＮＳ情報４５２を更新する。
【０１１０】
この変形例のコンピュータシステムでも、リモートコピーペアの障害サスペンドを契機としたキャッシュ有効時間の短縮指示が、ＤＮＳホスト４００に対して送信される。ＤＮＳスレーブホスト４５０は、複写ＤＮＳ情報４５２のキャッシュ有効時間が経過したときに、新たな有効時間が短縮された複写ＤＮＳ情報を取得する。そして、クライアントホスト３００にもキャッシュ有効時間の短縮指示が伝達され、最終的に複写ＤＮＳ情報４５２の有効時間及びクライアントホスト３００のＤＮＳキャッシュ３０３の有効時間が短縮される。なお、複写ＤＮＳ情報４５２の有効時間と、クライアントホスト３００のＤＮＳキャッシュ３０３の有効時間との少なくとも一方が短縮されればよい。
【０１１１】
なお、本実施形態におけるＤＮＳキャッシュ３００の有効時間制御が無効になっていた場合でも、ＤＮＳスレーブサーバー４５１のキャッシュ有効時間を短縮できる。従って、この場合も同様な効果が得られる。
【図面の簡単な説明】
【０１１２】
【図１】本発明の実施の形態のコンピュータシステムの構成を示すブロック図である。
【図２】本発明の実施の形態の障害サスペンド検出時の正サーバホストの動作の説明図である。
【図３】本発明の実施の形態の障害サスペンド検出時の副サーバホストの動作の説明図である。
【図４】本発明の実施の形態の正サーバホストの停止時の、副サーバホストの動作の説明図である。
【図５】本発明の実施の形態の正クラスタの基幹処理のフローチャートである。
【図６】本発明の実施の形態の副クラスタの基幹処理のフローチャートである。
【図７】本発明の実施の形態の再同期処理のフローチャートである。
【図８】本発明の実施の形態のリクエストログ収集処理のフローチャートである。
【図９】本発明の実施の形態のリクエストログ３０２の内容の説明図である。
【図１０】本発明の実施の形態のコンピュータシステムの変形例を示すブロック図である。
【符号の説明】
【０１１３】
１００  正サーバホスト
１５０  正ストレージ
２００  副サーバホスト
２５０  副ストレージ
３００  クライアントホスト
４００  ＤＮＳホスト
５００  広域ネットワーク
５１０  リモートコピー用ネットワーク
【図１】
2005250626.tif 000003
【図２】
2005250626.tif 000004
【図３】
2005250626.tif 000005
【図４】
2005250626.tif 000006
【図５】
2005250626.tif 000007
【図６】
2005250626.tif 000008
【図７】
2005250626.tif 000009
【図８】
2005250626.tif 000010
【図９】
2005250626.tif 000011
【図１０】
2005250626.tif 000012