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