(57)【要約】      （修正有）【課題】レプリケーションシステムにおいて、トラフィックの増大を防ぎ、効率良く迅速に不整合を解消する。【解決手段】マスタストレージサーバと、このマスタストレージサーバに対してレプリケーションを構成するスレーブストレージサーバを有し、ＵＡＰからマスタストレージサーバに送信されたファイルをスレーブストレージサーバに転送するレプリケーションシステムにおいて、障害発生等によりマスタストレージサーバとスレーブストレージサーバ間に不整合が生じた場合、不整合となる更新情報を格納して管理するキューファイル１２５と、キューファイル１２５に更新情報を格納するに際して、最新の更新情報を残すようにキューファイル１２５を整理するキュー情報管理部１２４を有する。障害復旧時に、キューファイル１２５に保管された最新の更新情報に基づいてファイルを復元する。【選択図】  図１
2006085324.tif 000002
【特許請求の範囲】
【請求項１】
第１のストレージサーバと、該第１のストレージサーバに対してレプリケーションを構成する第２のストレージサーバを有し、外部から第１のストレージサーバに送信されたファイルを第２のストレージサーバに転送するレプリケーションシステムにおいて、
第１のストレージサーバと第２のストレージサーバ間に不整合が生じた場合、不整合の更新情報を格納して管理するキューファイルと、
該キューファイルに更新情報を格納するに際して、最新の更新情報を残すように該キューファイルを整理するキュー情報管理部と、を有し、
障害復旧に際して該キューファイルに保管された最新の更新情報に基づいてファイルを復元することを特徴とするレプリケーションシステム。
【請求項２】
前記キュー情報管理部は、ファイルの複製時に発生するファイルアクセスを減らすように、該第１のストレージサーバ上のファイルパスとそのファイルに対する操作情報を管理することを特徴とする請求項１のレプリケーションシステム
【請求項３】
外部から送信されたファイルを、レプリケーションを構成するための他のストレージサーバに転送するストレージサーバにおいて、
他のストレージサーバ間に不整合が生じた場合、不整合の更新情報を格納して管理するキューファイルと、
該キューファイルに更新情報を格納するに際して、最新の更新情報を残すように該キューファイルを整理するキュー情報管理部と、を有し、
他のストレージサーバに対するファイルの復元処理に際して、該キューファイルに保管された最新の更新情報を該他のストレージサーバへ転送することを特徴とするストレージサーバ。
【請求項４】
ＵＡＰから第１のストレージサーバに送信されたファイルを、レプリケーションを構成する第２のストレージサーバに転送するレプリケーションシステムにおけるファイルの処理方法において、
該第１のストレージサーバと第２のストレージサーバ間に不整合が生じた場合、不整合な更新情報をキューファイルに格納するステップと、
障害時に該キューファイルに保管された更新情報を該第２のストレージサーバへ転送することを止めるステップと、
障害時に生じる更新情報を該キューファイルに格納する前に、該キューファイルに既に保管されている更新情報を検索して、最新の更新情報を該キューファイルに格納するように更新情報を整理するステップと、
障害復旧時に、該キューファイルに保管された最新の更新情報に基づいてファイルを復元するステップと、
を有するファイルの処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク上に接続された複数のストレージサーバで構成されるレプリケーションシステムに係り、特にあるストレージサーバに障害が発生した場合の障害回復の処理に関するものである。
【背景技術】
【０００２】
ネットワーク上に接続された複数のストレージサーバを含むシステムにおいて、レプリケーションを構成しているストレージサーバ間に不整合が発生した場合に、その不整合を解消して、サーバ間の整合性を保証することが必要である。その整合性を管理するための技術として、ストレージサーバ間のデータを全件比較し、異なる情報のみを最新情報に更新する方法が一般的に知られている。
【０００３】
しかし、サーバで扱われるデータの容量が飛躍的に増加している昨今においては、上記の方法はストレージサーバに対する負荷が大きく、また処理時間が膨大にかかってしまうという欠点がある。
【０００４】
この対策に関するデータベースのレプリケーションを実現する技術として、キューファイルを用いて不整合を解消する技術が知られている。この技術は、差分のデータだけを更新することにより効率的にデータの整合性を保証できる。
【０００５】
データベースのレプリケーションシステムに係る従来技術として、例えば、特許文献１（特開平６−３３２９１９号公報）に記載された技術が知られている。この技術は、レプリケーションのため抽出した更新情報を一旦キューファイルに格納し、ＵＡＰ（ユーザ・アプリケーション・プログラム）による更新とは非同期にターゲットサイトへのレプリケーションを可能にするというものである。このため、あるサイトで障害が発生しても、障害発生時点からの更新情報はキューファイルに格納され続けるので、障害復旧後は差分の更新だけで不整合が解消される。
【０００６】
また、特許文献２（特開２０００−２０３６６号公報）には、レプリケーションのために抽出したキューファイルを送信先毎に別々に持つことで、特定のターゲットサイトの障害が全体のレプリケーションシステムへ影響することを防ぐ技術が開示されている。
しかしながら、上記のいずれの文献に記載の技術も、データベースを前提としたレプリケーション技術であるため、ロールバックができるように、全てのＵＡＰからのコマンド履歴をキューファイルに蓄積している。
【０００７】
一方、ストレージサーバ間の不整合を迅速に解消する場合、データベースのように全ての履歴情報をキューファイルに蓄積する必要はなく、最新情報のみで良い。さらに、ストレージサーバの場合は、大きなサイズのファイルを扱うことも多いため、無駄な履歴情報によるストレージサーバ間のファイルアクセスが致命的なトラフィック増大へとつながり、システム全体へ影響することも考えられる。
【０００８】
【特許文献１】特開平６−３３２９１９号公報
【特許文献２】特開２０００−２０３６６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
前述したように、レプリケーションシステムの整合性をとるためにストレージサーバ間のデータを全件比較して異なる情報のみを最新情報にする方法は、データ容量が飛躍的に増加している昨今において非常に効率が悪い。
【００１０】
また、前述のデータベースのレプリケーションシステムで利用されている全ての更新情報をキューファイルに格納する方法は、ストレージサーバ間の不整合を解消する場合など最新情報以外の履歴を必要としない場合においては非効率であり、ストレージサーバ間の無駄なファイルアクセスはシステム全体に影響を及ぼすという問題がある。
【００１１】
本発明の目的は、レプリケーションシステムにおいてトラフィックの増大を防ぎ、効率良く迅速に不整合の解消を可能とすることにある。
【課題を解決するための手段】
【００１２】
本発明は、外部例えばＵＡＰから第１のストレージサーバに送信されたファイルを、レプリケーションを構成する第２のストレージサーバに転送するレプリケーションシステムにおいて、第１のストレージサーバと第２のストレージサーバ間に不整合が生じた場合、不整合な更新情報をキューファイルに格納する。そして、障害時に生じる更新情報をキューファイルに格納する前に、キューファイルに既に保管されている更新情報を検索して、最新の更新情報をキューファイルに格納するように更新情報を整理する。障害復旧時には、キューファイルに保管された最新の更新情報に基づいてファイルを復元する。
好ましい例では、第１のストレージサーバにキューファイルに更新情報を書き込む時に最新の更新情報を残すように、キューファイル内の更新情報を整理するためのキュー情報管理部を有する。好ましい例では、キュー情報管理部は、ファイルの複製時に発生するファイルアクセスを減らすように、第１のストレージサーバ上のファイルパスとそのファイルに対する操作情報を管理する。
【発明の効果】
【００１３】
本発明によれば、レプリケーションを構成しているストレージサーバ間に不整合が生じた場合に、ストレージサーバ間のファイルアクセスが最小になるようにキューファイルを整理することができる。これにより障害復旧後の不整合の解消に伴う無駄なファイルコピーによるトラフィックの増大を防ぎ、効率良く迅速に不整合の解消をすることができる。とりわけＵＡＰからの操作がファイルの上書きやボリューム間の移動の場合は、無駄なファイルの書き込みを省くことができるため効果的である。
【発明を実施するための最良の形態】
【００１４】
以下、図面を参照しながら本発明の一実施形態によるレプリケーションシステムについて詳細に説明する。
図１は一実施形態によるレプリケーションシステムの構成を示すブロック図である。
図１において、レプリケーションシステム１０は、ＵＡＰ（ユーザ・アプリケーション・プログラム）１１で発生されるアクセス要求を受けてデータ処理を行なうものであり、マスタストレージサーバ１２と、マスタストレージサーバ１２のデータの複製先となる複数のスレーブストレージサーバ１４，１６，１８を有する。
【００１５】
マスタストレージサーバ１２は、ＯＳ１２１、記憶装置１２２、ファイル転送部１２３、キュー情報管理部１２４、スレーブストレージサーバごとに管理されるキューファイル１２５を有して構成される。即ち、３台のスレーブストレージサーバ１４、１６，１８に対応して３つのキューファイル１２５が用意される。ここで、キューファイル１２５は、あるスレーブストレージサーバに障害が発生した時、そのファイルの複製先となったスレーブストレージサーバに対応したキューファイル１２５にファイルの更新情報を格納して保持する。障害回復時にこの更新情報を参照することにより、元のファイルを復元する。キュー情報管理部１２４は、キューの変換処理及びキューファイルの整理等の処理を行う。
尚、スレーブソトレージサーバ１４〜１８については、具体的にその内容を示していないが、マスタストレージサーバ１２と同様の構成となるＯＳ及び記憶装置を備えている。
【００１６】
ＵＡＰ１１からマスタストレージサーバ１２に対してファイルアクセスがあると、ＯＳ１２１はマスタストレージサーバ１２の記憶装置１２２に対してファイル入出力を行なう。同時にファイル転送部１２３は、同じファイルアクセスをスレーブストレージサーバ１４〜１８にも転送する。スレーブストレージサーバ１４〜１８でも同様にファイルの入出力が行なわれる。これによりマスタストレージサーバ１２とスレーブストレージサーバ１４〜１８の整合性が保たれる。
【００１７】
ところで、スレーブストレージサーバ１４〜１８のいずれかに障害が発生し、リトライを複数回実行した後も応答が無い場合には障害状態と判断され、不整合の解消時にストレージサーバ間のファイルアクセスが最小となるように、キュー情報管理部１２４でＵＡＰ１１からのコマンドをキューに変換する処理とキューファイル１２５の整理が行なわれる。
また、キューファイル１２５に格納されたキューは、順次ＦＩＦＯでファイル転送部１２３よりスレーブストレージサーバ１４〜１８へ送信される。この処理動作は、本実施形態に特徴的であり、後で詳しく説明する。
【００１８】
次に図３を参照してキューファイル１２５の構成について説明する。
キューファイル１２５は、「操作」、「操作対象元のフルパス」、「変更後のフルパス」で構成される。
「操作」はＵＡＰ１１で行った操作の種類、例えばNEW&UPDATE／DELETE／MOVE／RENAMEを示す。ここで、NEW&UDATEはマスタストレージサーバ１２上の「操作対象元のフルパス」に存在するファイルを別のストレージサーバの同じパスにコピーする操作である。DELETEはファイルの削除、MOVEはファイルの移動、RENAMEはファイルの名称変更の操作である。
「操作対象元のフルパス」は、操作を行ったファイルまたはフォルダのフルパスを示す。「変更後のフルパス」は、移動または名前の変更によって更新されたファイルまたはフォルダのフルパスを示す。
このような構成のキューファイル１２５はＦＩＦＯによって順次格納または複製先のスレーブストレージサーバ１４〜１８へ転送される。
【００１９】
次に、図２を参照してレプリケーションシステム１０のスレーブストレージサーバ１４〜１８に障害が発生した場合の処理動作について説明する。
ＵＡＰ１１による処理が実行されると（ステップＳ１）、マスタストレージサーバ１２の記憶装置１２２に対してファイルの入出力が行われる（ステップＳ２）。この入出力の実行により記憶装置１２２内のファイルが更新される。
【００２０】
次に、キューファイル１２５が空かどうかを判定する（ステップＳ３）。判定の結果、空であれば、ファイル転送部１２３は同じファイルアクセスをスレーブストレージサーバ１４〜１８に対して転送する（ステップＳ４）。これによりマスタストレージサーバ１２で行った更新と同じ更新がスレーブストレージサーバ１４〜１８で行なわれ、マスタストレージサーバ１２とスレーブストレージサーバ１４〜１８の整合性が保証される。
【００２１】
一方、判定の結果、キューファイル１２５が空でない場合には、ＵＡＰ１１からのファイルアクセスは直接スレーブストレージサーバ１４〜１８に転送せず、キュー情報管理部１２４へファイルの更新情報を送信して整理した後、キューファイル１２５に格納する（ステップＳ８，Ｓ９）。
【００２２】
マスタストレージサーバ１２からスレーブストレージサーバ１４〜１８へのファイルアクセスの転送に際しては、その転送が成功したか否かを判定する（Ｓ５）。この転送が成功した場合には一連の処理は終了する。
【００２３】
一方、スレーブストレージサーバ１４〜１８へのファイルアクセスの転送が失敗した場合には、複数回にわたって転送のリトライを実行する。その後、転送が成功した否かが再度判定される（Ｓ６）。判定の結果、転送が失敗した場合には障害状態を検出する。そして障害状態の間は、障害の発生したスレーブストレージサーバ（例えば１４）に対するキューファイル１２５の更新情報の転送処理を停止する（Ｓ７）。尚、障害の発生していないスレーブストレージサーバ１６，１８への更新情報の転送は行われる。
【００２４】
障害中に、マスタストレージサーバ１２で処理されたファイルのアクセスに関連する更新情報は、キューファイル１２５に格納される。この処理は、キュー情報管理部１２４が更新情報を整理した後、その情報をキューファイル１２５へ格納することにより行なわれる（ステップＳ８，Ｓ９）。この例では、障害の発生したスレーブストレージサーバ１４に対応するキューファイル１２５には更新情報が格納されることになる。
【００２５】
更新情報をキューファイル１２５に格納する時の処理は、本実施例における特徴的な処理である。キュー情報管理部１２４は、更新情報をキューファイル１２５に格納する前に、キューファイル１２５に既に格納されている更新情報と、今から格納しようとしている更新情報を照合し、その照合結果に従って格納すべき更新情報を効率化するための整理を行う。効率化できる場合は、キューファイル１２５に保管されていた更新情報を変更したり、削除したりする。効率化できる組み合わせの例を図４〜６に示す。
【００２６】
さて、障害の発生したスレーブストレージサーバ１４で障害の復旧処理が行なわれ、その後復旧が完了すると、障害の発生したスレーブストレージサーバ１４から送信される復旧パケットを受信することで、マスタストレージサーバ１２は回復を検知する。障害が復旧した後、キューファイル１２５には更新情報が格納されているので、その更新情報のスレーブストレージサーバ１４〜１８に対する転送処理を再開し、ステップＳ３以降の処理を繰り返すことになる。キューファイル１２５に格納されたキュー（即ち更新情報）は、例えばＦＩＦＯで順次スレーブストレージサーバ１４〜１８へ送信される。
【００２７】
次に図４〜６により、不整合解消時のスレーブストレージサーバ１４〜１８に対するファイルアクセスが最小になるようにキューファイル１２５を整理するための処理手順について説明する。
【００２８】
図４は新規キューの「操作」がNEW&UPDATEおよびDELETEである場合について、図５はMOVE、図６はRENAMEの場合の処理手順を示す。
「キューファイル中の検索条件」に記述された条件を新しいキューから順に検索し、合致したキューおよび新規キューに対して「処理」に記述された処理を行なうことで、キューファイル１２５を整理し、不整合解消時のスレーブストレージサーバ１４〜１８に対するファイルアクセスが最小になるようにする。
【００２９】
例えば、スレーブストレージサーバ１４〜１８に障害が発生した後、コピーなど新規にファイルを作成し、さらに上書き更新した場合、新規のファイル作成に伴うファイルコピーのキューは削除され、最新のファイルコピーのキューのみキューファイルに残る。
【００３０】
図４〜図６に関連するキュー管理部１２４の処理手順を用いた処理について、以下に例を上げて説明する。
ユーザがストレージサーバに対して行うファイル操作の処理には、ファイル/フォルダの新規作成「NEW」、ファイル/フォルダの更新「UPDATE」、ファイル/フォルダの名前の変更「RENAME 」、ファイル/フォルダの削除「DELETE」、ファイル/フォルダの移動「MOVE」、の５つがある。
【００３１】
第１の例として、「新規作成」と「更新」の処理について説明する。
図４〜６では、「新規作成」と「更新」が同じルールとして書かれている。通常処理で、マスタストレージサーバ１２に対して、ファイルAを新規作成すると仮定する。ファイルAはマスタストレージサーバ１２からスレーブストレージサーバに転送（コピー）される。障害時には、ファイルAをマスタストレージサーバ１２からスレーブストレージサーバ（例えば１４）にコピーするという処理のキューがキューファイル１２５に溜まる。
【００３２】
次に、「ファイルの更新処理」に関して説明する。
上述のファイルAを、マスタストレージサーバ１２上で例えば「あああ」という内容に書き換えたと仮定する。すると、通常の処理では、この場合もやはりマスタストレージサーバ１２からスレーブストレージサーバ１４に、ファイルA（即ち「あああ」の内容）がコピーされることになる。これは、障害時でも同様で、新規作成と更新は区別されず、単にマスタストレージサーバ１２からスレーブストレージサーバ１４にファイルAをコピーするというキューのみで良くなる。
このように、「新規作成」と「更新」は同じ処理となるため、共通のルールになる。このルールに従って、キューファイル１２５内の情報と新たな更新情報との関係を照合して整理する。
【００３３】
次に、第２の例について説明する。
例えば、キューファイル１２５に、以下の処理内容が溜まっているとする。
＃１．テキストファイルA新規作成（「中身は空」）
＃２．テキストファイルA更新（開いて「あああ」と書き込み後、上書き保存）
＃３．テキストファイルA更新（開いて「いいい」と書き込み後、上書き保存）
この場合に、マスタストレージサーバ１２とスレーブストレージサーバ１４との不整合の一致を取るためのテキストファイルAは、最終的な＃３の状態を反映すればよいことになる。即ち、上記＃１と＃２の処理内容は削除するように整理する。
【００３４】
＃１は、「NEW」なので、図３および図４の「NEW&UPDATE」の部分を参照し、キューファイル１２５を検索すると、一件も無いのでそのままキューファイル１２５に格納する。ファイルの保存先（パス）は「C:\A.txt」とする。
キューファイル１２５の内容は、NEW&UPDATE  C:\A.txt  となる。
【００３５】
次に、＃２の処理はファイルの更新なので、この「操作」は「NEW&UPDATE」になる。図４の「NEW&UPDATE」を参照すると、検索条件は３種類あり、図４の一番上の検索条件が適用される。この場合の「処理」は、新規キューを削除（キューファイルに登録しない）である。
この場合、キューファイル１２５の内容は、NEW&UPDATE  C:\A.txt  であり、上記＃３は＃２と同様である。結果として、マスタストレージサーバ１２のC:\A.txt（「いいい」）をスレーブストレージサーバ１４のC:\A.txtにコピーするというキューのみが残ることになる。
このように上記＃１〜＃３の全てをキューファイルに格納していると、３回コピー処理することになるが、本実施形態によれば、１回のコピーで済むので、ストレージサーバ間のファイルアクセスが最小になり、処理の効率化が図れる。
【００３６】
次に、第３の例について説明する。
例えば、キューファイル１２５に、以下の処理内容が溜まっているとする。
＃１．テキストファイルA新規作成（「中身は空」）
＃２．テキストファイルA削除
この場合に、マスタストレージサーバ１２とスレーブストレージサーバ１４との不整合の一致を取るため処理としては、テキストファイルAは全く作成されなかった場合と同じなので、上記＃１及び＃２の内容はキューファイル１２５から削除される。
上記＃１は「NEW」なので、図３および図４の「NEW&UPDATE」の部分を参照し、キューファイル１２５を検索すると、一件も無いのでそのままキューファイル１２５に格納する。例えば、ファイルの保存先（パス）は「C:\A.txt」とすると、キューファイルの内容は、NEW&UPDATE  C:\A.txt  となる。
【００３７】
＃２の処理は、ファイルの削除なので、この「操作」は「DELETE」になり、図４の「DELETE」を見ると、検索条件は２種類ある。この上段の検索条件が適用され処理される。即ち、この場合の処理は、新規キューを削除（キューファイルに登録しない）、かつ検索条件にヒットしたキューの削除となる。その結果、キューファイル１２５の中身は無くなる。
この様に、従来の処理手順では＃１と＃２の全ての内容をキューファイル１２５に格納していたが、図４に示す処理手順によれば、処理が全くなくなり、システム全体の効率化が図れる。
【００３８】
以上説明したように、本実施形態によれば、レプリケーションを構成しているマスタストレージサーバとスレーブストレージサーバ間に不整合が発生し、不整合の更新情報をキューファイルに格納する際に、既にキューファイルに存在する更新情報と照らし合わせることにより、ストレージサーバ間のファイルアクセスが最も少なくなるようにキューファイルを整理することができる。
【００３９】
また、キューファイルの管理に関しては、ＵＡＰからのコマンドをそのまま格納するのではなく、マスタストレージサーバ上のファイルパスとそのファイルに対する操作情報を管理することにより、ファイルの複製時に発生する無駄なファイルアクセスを減らすことができる。
更に、障害中および障害回復後に不整合を解消する最中のいずれもＵＡＰからのファイルアクセスを止めずに運用を続けられる。
【図面の簡単な説明】
【００４０】
【図１】一実施形態によるレプリケーションシステムの構成を示すブロック図。
【図２】一実施形態によるレプリケーションシステムにおける障害発生時の処理動作を説明するためのフローチャート図。
【図３】一実施形態におけるキューファイル１２５のテーブル構成例を示す図。
【図４】一実施形態におけるキュー管理部１２４の処理手順を示す図。
【図５】一実施形態におけるキュー管理部１２４の処理手順を示す図。
【図６】一実施形態におけるキュー管理部１２４の処理手順を示す図。
【符号の説明】
【００４１】
１０：レプリケーションシステム、      １１：ＵＡＰ、
１２：マスタストレージサーバ、        １２１：ＯＡ、
１２２：記憶装置、                    １２３：ファイル転送部、
１２４：キュー情報管理部、            １２５：キューファイル、
１４，１６，１８：スレーブストレージサーバ。
【図１】
2006085324.tif 000003
【図２】
2006085324.tif 000004
【図３】
2006085324.tif 000005
【図４】
2006085324.tif 000006
【図５】
2006085324.tif 000007
【図６】
2006085324.tif 000008