(57)【要約】【課題】障害サーバの機能を迅速に復旧可能なデータ同期システムを提供する。【解決手段】サーバ１００は、自サーバのデータをオリジナルデータ領域１０４に保持し、他のサーバ１１０のデータを同期データ領域１０５に保持する。レプリケーション機能部は、サーバ１１０に障害が発生すると、サーバ１１０のデータを同期データ領域１０５に保持するサーバ１００を、サーバ１１０の代替として機能させる。【選択図】図１
2009265973.tif 000002
【特許請求の範囲】
【請求項１】
複数のサーバを含み、該複数のサーバのうちの少なくとも一部が自サーバのデータをオリジナルデータ領域に保持し、他のサーバのデータを同期データ領域に保持するデータ同期システムであって、
前記複数のサーバの何れかに障害が発生すると、前記障害が発生した第１のサーバのデータを同期データ領域に保持する第２のサーバを、前記第１のサーバの代替として機能させるレプリケーション機能部を備えるデータ同期システム。
【請求項２】
前記レプリケーション機能部は、各サーバの同期データ領域がどのサーバのデータを保持するかを管理する保持データ管理テーブルを参照して、前記第２のサーバを特定し、該特定した第２のサーバを前記第１のサーバの代替として機能させる、請求項１に記載のデータ同期システム。
【請求項３】
前記レプリケーション機能部は、サーバにて前記オリジナルデータ領域に対するデータ書込みが発生すると、当該サーバの前記オリジナルデータ領域にデータを格納すると共に、前記保持データ管理テーブルを参照して、当該サーバのデータを同期データ領域に保持するサーバを特定し、該特定したサーバの同期データ領域に、前記オリジナルデータ領域に格納したデータと同じデータを格納する、請求項２に記載のデータ同期システム。
【請求項４】
前記レプリケーション機能部は、前記第２のサーバを、前記同期データ領域で再起動し、前記第１のサーバの代替として機能させる、請求項１乃至３の何れか一に記載のデータ同期システム。
【請求項５】
前記レプリケーション機能部は、前記第２のサーバを前記第１のサーバの代替として機能させた後、サーバが追加されると、該追加されたサーバのオリジナルデータ領域に、前記第２のサーバのデータをコピーする、請求項１乃至４の何れか一に記載のデータ同期システム。
【請求項６】
前記レプリケーション機能部は、前記追加されたサーバを含めて、各サーバのデータが、各サーバのオリジナルデータ領域と同期データ領域とで保持されるように、各サーバの同期データ領域が保持するデータの組合せを決定する、請求項５に記載のデータ同期システム。
【請求項７】
前記レプリケーション機能部は、前記決定に従って、保持すべきデータが変更になるサーバの同期データ領域に、他のサーバのオリジナルデータ領域又は同期データ領域が保持するデータをコピーする、請求項６に記載のデータ同期システム。
【請求項８】
前記レプリケーション機能部は、各サーバに設定されたプライオリティを管理するプライオリティ管理テーブルを参照して、前記第１のサーバに設定されたプライオリティと前記第２のサーバに設定されたプライオリティとを比較し、前記第１のサーバのプライオリティが前記第２のサーバのプライオリティよりも高いと判断すると、前記第２のサーバを、前記第１のサーバの代替として機能させる、請求項１乃至７の何れか一に記載のデータ同期システム。
【請求項９】
前記レプリケーション機能部は、前記第１のサーバのプライオリティが前記第２のサーバのプライオリティよりも低いと判断すると、前記第１のサーバの代替サーバが接続されるのを待機する、請求項８に記載のデータ同期システム。
【請求項１０】
前記レプリケーション機能部は、前記代替サーバが接続されると、前記第２のサーバの同期データ領域から前記代替サーバのオリジナルデータ領域にデータをコピーすると共に、前記第１のサーバの同期データ領域が保持していたデータをオリジナルデータ領域に保持するサーバから、前記代替サーバの同期データ領域にデータをコピーする、請求項９に記載のデータ同期システム。
【請求項１１】
自サーバのデータをオリジナルデータ領域に格納すると共に、他のサーバにて格納されたデータと同じデータを同期データ領域に格納し、前記他のサーバに障害が発生すると、自サーバを前記他のサーバの代替として機能させるレプリケーション機能部を有するサーバ。
【請求項１２】
複数のサーバを含み、該複数のサーバのうちの少なくとも一部が自サーバのデータをオリジナルデータ領域に保持し、他のサーバのデータを同期データ領域に保持するデータ同期システムにて、コンピュータを用いて障害復旧を行う方法であって、
前記コンピュータが、障害サーバを検出すると、該障害が発生した第１のサーバのデータを同期データ領域に保持する第２のサーバを、前記第１のサーバの代替として機能させるステップを有する障害復旧方法。
【請求項１３】
前記コンピュータは、障害サーバの検出後、各サーバに設定されたプライオリティを管理するプライオリティ管理テーブルを参照して、前記第１のサーバに設定されたプライオリティと前記第２のサーバに設定されたプライオリティとを比較し、第１のサーバのプライオリティが前記第２のサーバのプライオリティよりも高いと判断すると、前記第２のサーバを前記第１のサーバの代替として機能させる、請求項１２に記載の障害復旧方法。
【請求項１４】
複数のサーバを含み、該複数のサーバのうちの少なくとも一部が自サーバのデータをオリジナルデータ領域に保持し、他のサーバのデータを同期データ領域に保持するデータ同期システムにて、コンピュータに、障害復旧の処理を実行させるプログラムあって、前記コンピュータに、
障害サーバを検出すると、該障害が発生した第１のサーバのデータを同期データ領域に保持する第２のサーバを、前記第１のサーバの代替として機能させる処理を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ同期システムに関し、更に詳しくは、複数のサーバのデータを、オリジナルデータ領域と同期データ領域とに保持するデータ同期システムに関する。また、本発明は、そのようなデータ同期システムにおける障害復旧方法及びプログラムに関する。
【背景技術】
【０００２】
耐障害性を高めるために、サーバ間でデータを同期させるシステムがある。例えば、共有ディスクを用いた複数サーバのファイル二重化方式として、特許文献１に記載の技術がある。また、共有ディスクを用いないレプリケーション方式としては、特許文献２に記載の技術がある。ファイル冗長化に関し、同一のファイルを複数のファイルサーバに分散して保存するシステムは、特許文献３に記載されている。
【０００３】
【特許文献１】特開平６−１７５７８８号公報
【特許文献２】特開２００１−１０９６４２号公報
【特許文献３】特開２００５−１４１５２８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
特許文献１では、各サーバのローカルディスクと共有ディスクとを同期させることで、ファイル二重化を実現している。しかし、共有ディスクを用いる方式では、共有ディスクに、全てのサーバのデータを保持できるだけの容量が要求され、コストが高くなるという問題がある。また、特許文献２では、共有ディスクを用いることによるコスト高は回避できるものの、適用可能なシステムは、運用系と待機系とからなるクラスタシステムに限定される。このため、特許文献２に記載の技術を、異なる機能を持つサーバ群に対して適用することはできない。
【０００５】
特許文献３では、例えば、サーバＢに障害が発生したときには、サーバＢが管理していたファイルを、他のサーバにコピーすることで、ファイルの冗長度を回復する。しかし、特許文献３に記載の技術は、ファイルサーバに関するものであり、サーバ間でのデータ同期を目的としたものではない。特許文献３は、ファイルが、複数のファイルサーバに記憶されていれば、その保存場所は問わない構成である。このため、サーバＢの代替サーバを用意したとしても、その代替サーバに、サーバＢが管理していたファイルがコピーされることはない。
【０００６】
サーバが管理するファイルには、カーネルや各種設定ファイルが含まれており、代替サーバを用いて業務を再開するためには、障害が発生したサーバの動作環境を代替サーバに構築することが必要である。しかし、特許文献３では、ファイルの冗長性を回復することが目的であり、ファイルの保存場所は問わない構成であるので、特許文献３に記載の技術を、障害が発生したサーバの環境を代替サーバに構築するという用途に適用することはできない。
【０００７】
本発明者は、特願２００７−１１５５１７にて、共有ディスクなどの特殊な外部記憶装置を使用せずに、異なる機能を持つサーバ間でのデータ同期を実現可能な方式を提案している。この方式は、共有ディスクなど高価な設備が不要で、各ローカルディスクに必要な容量はサーバ数に依存せずにサーバ２台分に収まるといった利点がある。また、クラスタシステムなどに限らず別個の機能を持ったサーバ群にも適用可能であるという利点もある。しかし、特願２００７−１１５５１７では、障害によるサーバ交換時には、交換した空のサーバへ他のサーバが保持しているバックアップデータをコピーする必要があるため、復旧に要する時間が長くなるという点が課題として残る。
【０００８】
本発明は、障害サーバの機能を迅速に復旧可能なデータ同期システム、障害復旧方法、及び、プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、本発明のデータ同期システムは、複数のサーバを含み、該複数のサーバのうちの少なくとも一部が自サーバのデータをオリジナルデータ領域に保持し、他のサーバのデータを同期データ領域に保持するデータ同期システムであって、前記複数のサーバの何れかに障害が発生すると、前記障害が発生した第１のサーバのデータを同期データ領域に保持する第２のサーバを、前記第１のサーバの代替として機能させるレプリケーション機能部を備えることを特徴とする。
【００１０】
本発明のサーバは、自サーバのデータをオリジナルデータ領域に格納すると共に、他のサーバにて格納されたデータと同じデータを同期データ領域に格納し、前記他のサーバに障害が発生すると、自サーバを前記他のサーバの代替として機能させるレプリケーション機能部を有することを特徴とする。
【００１１】
本発明の障害復旧方法は、複数のサーバを含み、該複数のサーバのうちの少なくとも一部が自サーバのデータをオリジナルデータ領域に保持し、他のサーバのデータを同期データ領域に保持するデータ同期システムにて、コンピュータを用いて障害復旧を行う方法であって、前記コンピュータが、障害サーバを検出すると、該障害が発生した第１のサーバのデータを同期データ領域に保持する第２のサーバを、前記第１のサーバの代替として機能させるステップを有することを特徴とする。
【００１２】
本発明のプログラムは、複数のサーバを含み、該複数のサーバのうちの少なくとも一部が自サーバのデータをオリジナルデータ領域に保持し、他のサーバのデータを同期データ領域に保持するデータ同期システムにて、コンピュータに、障害復旧の処理を実行させるプログラムあって、前記コンピュータに、障害サーバを検出すると、該障害が発生した第１のサーバのデータを同期データ領域に保持する第２のサーバを、前記第１のサーバの代替として機能させる処理を実行させることを特徴とする。
【発明の効果】
【００１３】
本発明のデータ同期システム、障害復旧方法、及び、プログラムは、障害サーバの機能を迅速に復旧することができる。
【発明を実施するための最良の形態】
【００１４】
以下、図面を参照し、本発明の実施の形態を詳細に説明する。図１は、本発明の一実施形態のデータ同期システムの構成を示している。データ同期システムは、複数のサーバを含む。図１では、３つのサーバ（１００、１１０、１２０）により、データ同期システムが構成されている。これら３つのサーバは、それぞれ異なる機能を持つサーバである。各サーバ（１００、１１０、１２０）は、ネットワーク２００を介して接続されており、ネットワーク２００を介して、相互に通信可能である。
【００１５】
各サーバ（１００、１１０、１２０）は、ローカルディスク（１０３、１１３、１２３）、保持データ管理テーブル（１０６、１１６、１２６）、及び、プライオリティ管理テーブル（１０７、１１７、１２７）を有する。また、各サーバ（１００、１１０、１２０）上では、レプリケーション機能部（１０１、１１１、１２１）、及び、アプリケーションプログラム（１０２、１１２、１２２）が動作している。
【００１６】
ローカルディスク１０３は、サーバ１００自身のデータを保持するためオリジナルデータ領域１０４と、他サーバの同期データ（バックアップデータ）を保持するための同期データ領域１０５とを有する。オリジナルデータ領域１０４と同期データ領域１０５とは、ＯＳを含むマルチブート環境を構成しており、サーバ１００は、オリジナルデータ領域１０４及び同期データ領域１０５の何れのデータからでも起動することができる。
【００１７】
サーバ１１０、１２０についても、サーバ１００と同様な構成となっており、サーバ１１０のローカルディスク１１３は、サーバ１１０自身のデータを保持するためのオリジナルデータ領域１１４と、他サーバの同期データを保持するための同期データ領域１１５とを有する。また、サーバ１２０のローカルディスク１２３は、サーバ１２０自身のデータを保持するためのオリジナルデータ領域１２４と、他サーバの同期データを保持するための同期データ領域１２５とを有する。
【００１８】
図１の例では、サーバ１００の同期データ領域１０５は、サーバ１１０の同期データを保持している。また、サーバ１１０の同期データ領域１１５は、サーバ１２０の同期データを保持し、サーバ１２０の同期データ領域１２５は、サーバ１００の同期データを保持している。
【００１９】
保持データ管理テーブル１０６、１１６、１２６は、各サーバの同期データ領域がどのサーバのデータを保持するかを管理する。プライオリティ管理テーブル１０７、１１７、１２７は、各サーバに設定されたプライオリティを記憶する。各サーバのプライオリティは、例えばシステム管理者などにより、事前に設定される。プライオリティは、例えば、重要な機能を担い、できるだけ稼動状態に置きたいサーバのプライオリティを高く設定する。また、それほど重要度が高くなく、一時的に利用できなくなってもかまわないサーバのプライオリティを低く設定する。保持データ管理テーブル及びプライオリティ管理テーブルは、レプリケーション機能部の内部に保持される構成でもよい。
【００２０】
各サーバのレプリケーション機能部は、大きく分けて３つの機能を有する。１つめの機能は、自サーバのデータを、オリジナルデータ領域に書き込む際に、他サーバのレプリケーション機能部を介して、他サーバ上の同期データ領域に、オリジナルデータ領域に書き込んだデータと同じデータを書き込む機能である。例えば、サーバ１００のレプリケーション機能部１０１は、アプリケーションプログラム１０２からデータの書き込み要求を受け取ると、データをローカルディスク１０３のオリジナルデータ領域１０４に書き込む。レプリケーション機能部１０１は、オリジナルデータ領域１０４へのデータ書き込むが正常に完了すると、サーバ１２０上で動作しているレプリケーション機能部１２１を介して、ローカルディスク１２３の同期データ領域１２５に、オリジナルデータ領域１０４に書き込んだデータと同じデータを書き込む。
【００２１】
２つ目の機能は、ネットワークに接続されているサーバが追加又は削除され、ネットワーク構成が変化した際に、変化後のネットワーク構成に合わせて、各サーバの同期データ領域に保持する同期データの割り当てを変更する機能である。レプリケーション機能部は、障害によってサーバが交換されると、保持データ管理テーブルを参照して、障害が発生したサーバのデータを同期データ領域に保持するサーバを特定する。レプリケーション機能部は、当該データを、特定したサーバから、交換されたサーバのオリジナルデータ領域にコピーする。また、レプリケーション機能部は、新規にサーバが追加された場合は、追加されたサーバを含めて、各サーバで他サーバの同期データを保持するように、各サーバで保持する同期データの組合せを割り振り直す。
【００２２】
３つ目の機能は、よりプライオリティが高いサーバに障害が発生した際に、その障害発生サーバのデータを同期データ領域に保持するサーバを、障害サーバの代替サーバとして動作させる機能である。レプリケーション機能部は、何れかのサーバに障害が発生すると、保持データ管理テーブルを参照して、障害発生サーバの同期データを持つサーバを特定する。レプリケーション機能部は、プライオリティ管理テーブルを参照して、その特定したサーバのプライオリティと障害が発生したサーバのプライオリティとを比較する。レプリケーション機能部は、障害が発生したサーバのプライオリティが特定したサーバのプライオリティよりも高いときは、障害発生サーバの同期データを記憶するサーバを、同期データ領域で再起動する。同期データ領域で再起動したサーバは、その後、障害サーバの代替サーバとして機能することとなり、同期データ領域とオリジナルデータ領域とが入れ替わる。例えば、サーバ１００を、同期データ領域１０５に記憶するサーバ１１０用のデータで再起動したときは、サーバ１００はサーバ１１０の代替サーバとなり、サーバ１１０のデータを記憶する同期データ領域１０５がオリジナルデータ領域に変わり、オリジナルデータ領域１０４が同期データ領域に変わる。
【００２３】
図２は、通常運用時のデータ同期手順を示している。以下では、サーバ１００のレプリケーション機能部１０１の動作を中心に説明する。サーバ１１０、１２０のレプリケーション機能部１１１、１２１も、レプリケーション機能部１０１と同様な機能を有する。アプリケーションプログラム１０２は、レプリケーション機能部１０１に、データ書込みを要求する（ステップＡ１）。この要求を受けたレプリケーション機能部１０１は、ローカルディスク１０３上にあるオリジナルデータ領域１０４に、データを書き込む（ステップＡ２）。レプリケーション機能部１０１は、書込みに成功したか否かを判断する（ステップＡ３）。書込みに失敗したときには、ステップＡ２に戻り、リトライする。
【００２４】
レプリケーション機能部１０１は、データ書込みに成功すると、保持データ管理テーブル１０６を参照して、サーバ１００の同期データを記憶するサーバを検索する（ステップＡ４）。図１の例では、サーバ１００の同期データは、サーバ１２０の同期データ領域１２５に記憶されている。レプリケーション機能部１０１は、サーバ１２０のレプリケーション機能部１２１に対して、書込み要求を行う（ステップＡ５）。レプリケーション機能部１２１は、書込み要求を受けて、ステップＡ２でオリジナルデータ領域１０４に書き込まれたデータと同じデータを、ローカルディスク１２３の同期データ領域１２５に書き込む（ステップＡ６）。レプリケーション機能部１２１は、書込みに成功したか否かを判断する（ステップＡ７）。書込みに失敗したときには、ステップＡ６へ戻り、リトライする。成功したときには、処理を終了する。
【００２５】
図３に、障害発生時の動作手順を示す。また、図４に、障害発生とサーバ追加を示す。ここでは、図４に示すように、サーバ１００に障害が発生し、その障害サーバの代替サーバ１３０を追加する場合を考える。サーバ１００に障害が発生すると、各サーバのレプリケーション機能部は、サーバ１００に障害が発生したことを検出する（ステップＢ１）。各サーバのレプリケーション機能部は、保持データ管理テーブルを参照して、障害サーバ１００のデータを同期データ領域に記憶するサーバを検出する（ステップＢ２）。図１では、サーバ１２０が、サーバ１００のデータを同期データ領域１２５に記憶しているので、ステップＢ２では、サーバ１２０が検出される。
【００２６】
サーバ１２０のレプリケーション機能部１２１は、プライオリティ管理テーブル１２７を参照して、サーバ１００のプライオリティと、サーバ１２０のプライオリティとを比較する（ステップＢ３）。レプリケーション機能部１２１は、ステップＢ３で、障害サーバ１００のプライオリティがサーバ１２０よりも低いと判断すると、サーバ１００の代替サーバが接続されるまで待機する（ステップＢ４）。
【００２７】
サーバ１３０が接続されると、各サーバのレプリケーション機能部は、保持データ管理テーブルを参照して、サーバ１３０がサーバ１００の代替サーバであると認識する（ステップＢ５）。サーバ１３０がどのサーバの代替サーバであるは、保持データ管理テーブルにて、何れかのサーバの同期データ領域には記憶されているものの、オリジナルデータ領域には記憶されていないサーバを探すことで特定できる。
【００２８】
各サーバのレプリケーション機能部は、代替サーバの認識後、サーバ１３０のローカルディスク１３３内のオリジナルデータ領域１３４及び同期データ領域１３５のそれぞれにコピーするデータを決定する。サーバ１３０は、障害サーバ１００の代替サーバであるので、サーバ１３０のオリジナルデータ領域１３４に、サーバ１００のデータをコピーする。また、サーバ１３０の同期データ領域１３５に、サーバ１００の同期データ領域１０５が保持していたサーバ１１０のデータをコピーする。
【００２９】
図４では、サーバ１００のデータは、サーバ１２０の同期データ領域１２５が保持している。サーバ１２０のレプリケーション機能部１２１は、同期データ領域１２５に保持するサーバ１００の同期データを、サーバ１３０のオリジナルデータ領域１３４にコピーする（ステップＢ６）。また、図４では、サーバ１１０のデータは、サーバ１１０のオリジナルデータ領域１１４が保持している。サーバ１１０のレプリケーション機能部１１１は、オリジナルデータ領域１１４に保持している自サーバのデータを、同期データ領域１３５にコピーする（ステップＢ７）。
【００３０】
コピー完了後、サーバ１３０のレプリケーション機能部１３１は、サーバ１３０をオリジナルデータ領域１３４から起動する。これにより、サーバ１３０は、サーバ１００が担っていた機能を代行し、サーバ１００のデータを引き継いで動作する。その後、レプリケーション機能部１３１は、通常のレプリケーション処理（図２）を実行し、アプリケーションプログラム１３２からのデータ書込み要求が発生すると、オリジナルデータ領域１３４に自サーバ（サーバ１００）のデータを格納する。また、レプリケーション機能部１３１は、同期データ領域１３５にサーバ１１０のデータを格納する。
【００３１】
レプリケーション機能部１２１は、ステップＢ３で、サーバ１００のプライオリティがサーバ１２０のプライオリティよりも高いと判断すると、サーバ１２０を同期データ領域１２５側から再起動する（ステップＢ９）。これ以降、サーバ１２０は、サーバ１００が担っていた機能を代行し、サーバ１００のデータを引き継いで動作する（ステップＢ１０）。また、以降、サーバ１２０は、サーバ１００のデータを記憶する同期データ領域１２５をオリジナルデータ領域として扱い、サーバ１２０のデータを記憶するオリジナルデータ領域１２４を同期データ領域として扱う。
【００３２】
障害サーバの代替として、サーバ１３０が接続されると、各サーバのレプリケーション機能は、保持データ管理テーブルを参照して、サーバ１３０をサーバ１２０の代替サーバとして認識する（ステップＢ１１）。ここで、障害が発生したサーバはサーバ１００であるが、既にサーバ１２０をサーバ１００として再起動しているため、追加したサーバ１３０には、サーバ１２０本来の機能を実行させることになる。
【００３３】
各サーバのレプリケーション機能部は、代替サーバの認識後、各サーバが保持するデータの組合せを決定する。サーバ１３０のオリジナルデータ領域１３４については、サーバ１３０は、サーバ１２０の代替なので、オリジナルデータ領域１３４には、サーバ１２０のデータをコピーすると決定する。サーバ１２０のデータをオリジナルデータ領域１３４にコピーした段階では、サーバ１２０のデータが２つサーバ１１０（同期データ領域１１５）とサーバ１２０（オリジナルデータ領域１２４）とに同期データとして保持され、サーバ１３０の同期データ領域は空である。各サーバのレプリケーション機能部は、全サーバのデータがオリジナルデータ領域と同期データ領域とで保持されるように、同期データ領域で保持するサーバのデータの組替えを行う。ここでは、サーバ１２０のオリジナルデータ領域１２４にサーバ１１０のデータをコピーし、サーバ１３０の同期データ領域にサーバ１００のデータをコピーすると決定するものとする。
【００３４】
図４では、サーバ１２０のデータは、サーバ１２０のオリジナルデータ領域１２４、及び、サーバ１１０の同期データ領域１１５に保持されている。ここでは、コピー元は、サーバ１２０のオリジナルデータ領域１２４であるとする。サーバ１２０のレプリケーション機能部１２１は、オリジナルデータ領域１２４に保持するサーバ１２０のデータを、サーバ１３０のオリジナルデータ領域１３４にコピーする（ステップＢ１２）。
【００３５】
図４では、サーバ１１０のデータは、サーバ１１０のオリジナルデータ領域１１４に保持されている。サーバ１１０のレプリケーション機能部１１１は、オリジナルデータ領域１１４に保持するサーバ１１０のデータを、サーバ１２０のオリジナルデータ領域（同期データ領域）１２４にコピーする（ステップＢ１３）。また、図４では、サーバ１００のデータは、サーバ１２０の同期データ領域（オリジナルデータ領域）１２５に保持されている。サーバ１２０のレプリケーション機能部１２１は、同期データ領域１２５から、サーバ１３０の同期データ領域１３５に、サーバ１００のデータをコピーする（ステップＢ１４）。
【００３６】
コピー完了後、サーバ１３０のレプリケーション機能部１３１は、サーバ１３０をオリジナルデータ領域１３４から起動する。これにより、サーバ１３０は、サーバ１２０が担っていた機能を代行し、サーバ１２０のデータを引き継いで動作する。その後、レプリケーション機能部１３１は、通常のレプリケーション処理（図２）を実行し、アプリケーションプログラム１３２からのデータ書込み要求が発生すると、オリジナルデータ領域１３４に自サーバ（サーバ１２０）のデータを格納する。また、レプリケーション機能部１３１は、同期データ領域１３５にサーバ１００のデータを格納する。
【００３７】
図５（ａ）〜（ｃ）に、上記動作にて、障害サーバのプライオリティが同期データを保持するサーバのプライオリティよりも低い場合の各サーバが保持するデータの組み合わせ（保持データ管理テーブル）を示す。はじめ、各サーバは、自サーバのデータをオリジナルデータ領域に保持すると共に、サーバ１００はサーバ１１０のデータを同期データ領域１０５に保持し、サーバ１１０はサーバ１２０のデータを同期データ領域１１５に保持し、サーバ１２０は、サーバ１００のデータを同期データ領域１２５に保持している。サーバ１００に障害が発生すると、オリジナルデータ領域からサーバ１００のデータが消失し、同期データ領域からサーバ１１０のデータが消失する（図５（ａ））。
【００３８】
上記状態で、サーバ１３０が追加されると、保持データ管理テーブル上で、サーバ１００のデータをオリジナルデータ領域に格納するサーバがないことから、追加されたサーバ１３０は、サーバ１００の代替と判断される（図５（ｂ））。従って、各サーバのレプリケーション機能部は、サーバ１３０のオリジナルデータ領域１３４にサーバ１００のデータをコピーすると決定し、同期データ領域１３５にはサーバ１１０のデータをコピーすると決定する。
【００３９】
サーバ１２０のレプリケーション機能部１２１は、同期データ領域１２５に保持するサーバ１００のデータを、サーバ１３０のオリジナルデータ領域１３４にコピーする。また、サーバ１１０のレプリケーション機能部１１１は、オリジナルデータ領域１１４に保持するサーバ１１０のデータを、サーバ１３０の同期データ領域１３５にコピーする（図５（ｃ））。これにより、各サーバのデータが、各サーバのオリジナルデータ領域と同期データ領域とで保持される状態が回復する。
【００４０】
図６（ａ）〜（ｄ）に、上記動作にて、障害サーバのプライオリティが同期データを保持するサーバのプライオリティよりも高い場合の各サーバが保持するデータの組み合わせ（保持データ管理テーブル）を示す。はじめ、各サーバが保持するデータの組み合わせは、図５（ａ）と同様である。この状態で、サーバ１００に障害が発生すると、オリジナルデータ領域からサーバ１００のデータが消失し、同期データ領域からサーバ１１０のデータが消失する（図６（ａ））。
【００４１】
サーバ１００に障害が発生すると、サーバ１００のプライオリティは、サーバ１００のデータを同期データ領域１２５に保持するサーバ１２０のプライオリティよりも高いため、レプリケーション機能部は、サーバ１２０を、同期データ領域１２５で再起動する。サーバ１２０を同期データ領域１２５で再起動することで、サーバ１２０では、同期データ領域とオリジナルデータ領域とが入れ替わる（図６（ｂ））。つまり、サーバ１００のデータを保持する同期データ領域１２５がオリジナルデータ領域となり、サーバ１２０のデータを保持するオリジナルデータ領域１２４が同期データ領域となる。
【００４２】
サーバ１２０の再起動後に、サーバ１３０が追加されると、各サーバのレプリケーション機能部は、サーバ１２０のデータをオリジナルデータ領域に保持するサーバがないことから、サーバ１３０がサーバ１２０の代替サーバであると判断する（図６（ｃ））。各サーバのレプリケーション機能部は、サーバ１３０のオリジナルデータ領域１３４にサーバ１２０のデータをコピーすると決定すると共に、同期データ領域側で保持するデータの組合せを変更する。
【００４３】
同期データ領域側で保持するデータの組合せの変更では、レプリケーション機能部は、サーバ１２０の同期データ領域（オリジナルデータ領域１２４）が保持するデータをサーバ１１０のデータとすると決定する。また、レプリケーション機能部は、サーバ１３０の同期データ領域１３５が保持するデータをサーバ１００のデータとすると決定する。レプリケーション機能部は、サーバ１２０の同期データ領域が保持するデータをサーバ１１０のデータで上書きし、サーバ１３０の同期データ領域１３５にサーバ１００のデータをコピーする。これにより、各サーバのデータが、各サーバのオリジナルデータ領域と同期データ領域とで保持される状態が回復する（図６（ｄ））。
【００４４】
本実施形態では、データ同期システムは、複数のサーバのデータを、オリジナルデータ領域と、同期データ領域とに保持している。レプリケーション機能部は、複数のサーバのうちの何れかに障害が発生すると、障害が発生したサーバ（第１のサーバ）のデータを同期データ領域に保持するサーバ（第２のサーバ）を、障害が発生した第１のサーバの代替として機能させる。第２のサーバは、保持データ管理テーブルを参照することで、特定できる。
【００４５】
本実施形態では、レプリケーション機能部が上記制御を行うことで、第２のサーバを、障害サーバの代替として機能させることができる。その際、代替として動作する第２のサーバは、既に障害が発生した第１のサーバのデータを保持しているので、障害復旧時に、第１のサーバのデータを第２のサーバにコピーする必要がない。従って、障害復旧を迅速に行うことができる。すなわち、通常、障害によって交換されたサーバは、他のサーバから、障害発生サーバのバックアップデータをコピーする必要があり、コピーが完了するまでは、代替サーバとして動作することはできない。コピーするデータ量によっては、代替サーバが動作可能となるまでに、相当の時間を要する場合がある。本実施形態では、既に同期データ領域に保持するデータを用いて代替サーバを動作させるので、復旧時にバックアップデータのコピーは不要であり、代替サーバを迅速に動作させることができる。
【００４６】
本実施形態では、レプリケーション機能部は、プライオリティ管理テーブルを参照して、障害が発生した第１のサーバに設定されたプライオリティと、第１のサーバのデータを同期データ領域に保持する第２のサーバに設定されたプライオリティとを比較する。レプリケーション機能部は、第１のサーバのプライオリティが第２のサーバのプライオリティよりも高いときは、第２のサーバを、第１のサーバとして機能させる。このようにすることで、プライオリティが高いサーバが障害になった際に、そのサーバの同期データを持つサーバを、すぐに代替サーバとして使用することができる。これにより、より重要な機能を担っているサーバを、迅速に復旧させることができる。
【００４７】
本実施形態では、レプリケーション機能部は、障害が発生した第１のサーバのプライオリティが第２のサーバのプライオリティよりも低いときは、第１のサーバの代替サーバが接続されるのを待機する。レプリケーション機能部は、前記代替サーバが接続されると、第２のサーバの同期データ領域から代替サーバのオリジナルデータ領域にデータをコピーし、第１のサーバの同期データ領域が保持していたデータをオリジナルデータ領域に保持するサーバから、代替サーバの同期データ領域にデータをコピーする。このようにすることで、障害発生前の状況に復旧が可能である。
【００４８】
本実施形態では、レプリケーション機能部は、第２のサーバを第１のサーバとして機能させた後にサーバが追加されると、追加されたサーバのオリジナルデータ領域に、第２のサーバのデータをコピーする。このようにすることで、追加サーバを、第２のサーバの代替として動作させることができる。また、レプリケーション機能部は、追加されたサーバを含めて、各サーバのデータが、各サーバのオリジナルデータ領域と同期データ領域とで保持されるように、各サーバの同期データ領域が保持するデータの組合せを決定する。レプリケーション機能部は、その決定に従って、保持すべきデータが変更になるサーバの同期データ領域に、他のサーバのオリジナルデータ領域又は同期データ領域が保持するデータをコピーする。これにより、各サーバのデータが、オリジナルデータ領域と同期データ領域の双方で保持する状態を回復できる。
【００４９】
本実施形態では、レプリケーション機能部は、サーバにてオリジナルデータ領域に対するデータ書込みが発生すると、当該サーバのオリジナルデータ領域にデータを格納すると共に、保持データ管理テーブルを参照して、当該サーバのデータを同期データ領域に保持するサーバを特定し、特定したサーバの同期データ領域に、オリジナルデータ領域に格納したデータと同じデータを格納する。このようにすることで、共有ディスクなどの高価な設備を必要とせずに、各サーバのデータ同期（バックアップ）を行うことができる。また、現用系、待機系から構成されるクラスタシステムに限らず、別個の機能を持ったサーバ群においても、各サーバのデータを各サーバでバックアップすることができる。
【００５０】
本実施形態では、上記制御により、サーバに障害が発生する直前までファイルを同期している。このため、定期的にバックアップする場合に比して、多くのデータ救済が可能となる。レプリケーション機能部は、サーバ台数が増えたときは、保持データ管理テーブルを変更し、増加したサーバを含めて、各サーバのデータがオリジナルデータ領域と同期データ領域とで保持されるようにする。本実施形態のデータ同期システムは、サーバ数に上限はなく、サーバ数が増加したとしても、各サーバのローカルディスクに必要な容量はサーバ２台分に収まるため、コストが抑えられる。また、例えば、サーバＡが障害となったとき、サーバＡの同期データを持つサーバも同時に障害にならない限り、復旧が可能である。従って、同期を行っているサーバ群のうち、複数のサーバが障害になったとしても、復旧できる可能性がある。
【００５１】
なお、上記実施形態では、各サーバのデータを各サーバのオリジナルデータ領域と同期データ領域とで保持する例について示したが、必ずしも全てのサーバのデータが、オリジナルデータ領域と同期データ領域とに保持されていなくてもよい。つまり、一部のサーバについては、同期データ領域にデータが保持されていなくてもよい。例えば、図１にて、サーバ１００の同期データ領域１０５がサーバ１１０のデータを保持しておらず、サーバ１１０のデータについては、サーバ１１０のオリジナルデータ領域１１４にのみ保持される構成も可能である。この場合でも、サーバ１００、１２０については他のサーバの同期データ領域にデータが保持されるので、そのサーバを代替として機能させることが可能である。
【００５２】
以上、本発明をその好適な実施形態に基づいて説明したが、本発明のデータ同期システム、障害復旧方法、及び、プログラムは、上記実施形態にのみ限定されるものではなく、上記実施形態の構成から種々の修正及び変更を施したものも、本発明の範囲に含まれる。
【産業上の利用可能性】
【００５３】
本発明は、処理速度より耐障害性が重視される計算機、例えばファイルサーバなどにおいて安価にミラーリングを実現するといった用途に適用できる。
【図面の簡単な説明】
【００５４】
【図１】本発明の一実施形態のデータ同期システムを示すブロック図。
【図２】通常動作時の動作手順を示すフローチャート。
【図３】障害発生時の動作手順を示すフローチャート。
【図４】障害発生とサーバ追加を示すブロック図。
【図５】（ａ）〜（ｃ）は、障害発生及び代替サーバ追加時の保持データ管理テーブルを示す図。
【図６】（ａ）〜（ｄ）は、障害発生及び代替サーバ追加時の保持データ管理テーブルの別例を示す図。
【符号の説明】
【００５５】
１００、１１０、１２０、１３０：サーバ
１０１、１１１、１２１、１３１：レプリケーション機能部
１０２、１１２、１２２、１３２：アプリケーションプログラム
１０３、１１３、１２３、１３３：ローカルディスク
１０４、１１４、１２４、１３４：オリジナルデータ領域
１０５、１１５、１２５、１３５：同期データ領域
１０６、１１６、１２６、１３６：保持データ管理テーブル
１０７、１１７、１２７、１３７：プライオリティ管理テーブル
【図１】
2009265973.tif 000003
【図２】
2009265973.tif 000004
【図３】
2009265973.tif 000005
【図４】
2009265973.tif 000006
【図５】
2009265973.tif 000007
【図６】
2009265973.tif 000008