以下、各実施例が添付した図面を参照して説明される。
図1を参照して、一実施例による情報システムが説明される。図1は、一実施例による情報システムの一例となる構成を示す。
情報システム10は、ネットワーク50を介し互いに接続されるプライマリサイト30とセカンダリサイト40とを有する。
プライマリサイト30は、典型的には、情報システム10において運用される業務データに対する各種処理が要求されると、要求された処理を当該業務データに対して実行する業務サイトとして機能する。プライマリサイト30は、プライマリストレージ32とプライマリ(業務)サーバ34とを有する。プライマリストレージ32は、情報システム10において処理される業務データを含む各種データを格納する。プライマリサーバ34は、各種アプリケーションを使用して、プライマリストレージ32に格納されているデータに対して各種処理を実行する。
セカンダリサイト40は、典型的には、プライマリサイト30から遠隔に設けられ、災害発生によりプライマリサイト30が被害を受けた際に、プライマリサイト30の代替サイトとして機能する。セカンダリサイト40は、セカンダリストレージ42と、フォワードログディスク44と、バックワードログディスク46と、セカンダリサーバ48とを有する。
セカンダリストレージ42には、プライマリストレージ32におけるある時点のデータ、すなわち、あるチェックポイントのデータがプライマリサイト30から提供されている。さらに、プライマリサイト30からネットワーク50を介し転送され、フォワードログディスク44に格納されたフォワードログの各ファイル操作(CREATE,WRITE,REMOVEなど)が、セカンダリストレージ42のデータに適用される。
フォワードログディスク44は、ネットワーク50を介しプライマリサイト30からセカンダリサイト40に転送された各種ファイル操作(フォワードファイル操作)をフォワードログとして格納する。このフォワードログは、後述されるように、プライマリストレージ32に格納されている各ファイルに順次適用された各ファイル操作をその適用順に先頭から記録するものであるかもしれない。
バックワードログディスク46は、フォワードログディスク44に格納されているフォワードログから、後述されるバックワードログ生成処理により生成されたバックワードログを格納する。さらに、バックワードログディスク46は、このバックワードログ生成処理及び生成されたバックワードログを利用したデータ復元処理において使用されるデータを一時的に格納するかもしれない。
セカンダリサーバ48は、各種アプリケーションを使用して、セカンダリストレージ42に格納されているデータに対して各種処理を実行する。さらに、セカンダリサーバ48は、後述されるようなセカンダリエージェントを使用して、バックワード生成処理及び生成されたバックワードログを利用したデータ復元処理を実行する。
ネットワーク50は、プライマリサイト30とセカンダリサイト40とを接続する何れか適切なネットワークである。ネットワーク50は、典型的には、専用回線ネットワークであるかもしれない。
図2を参照して、一実施例によるプライマリサーバ34及びセカンダリサーバ48のハードウェア構成が説明される。図2は、一実施例によるセカンダリサーバ48の一例となるハードウェア構成を示す。なお、プライマリサーバ34は、セカンダリサーバ48と同様のハードウェア構成を有してもよいため、プライマリサーバ34のハードウェア構成の説明は、省略される。
セカンダリサーバ48は、互いにバスBを介し接続されるCPU(Central Processing Unit)60と、インタフェース装置62と、ドライブ装置64と、記憶媒体66と、補助記憶装置68と、メモリ装置70とを有する。
セカンダリサーバ48での処理を実現するプログラムは、CD−ROMなどの記憶媒体66によって提供されてもよい。プログラムを記録した記憶媒体66がドライブ装置64に装着されると、プログラムが記憶媒体66からドライブ装置64を介して補助記憶装置68にインストールされる。ハードディスクドライブ(HDD)などの補助記憶装置68は、インストールされたプログラムを格納する。
メモリ装置70は、プログラムの起動指示に応答して、補助記憶装置68からプログラムをロードする。CPU60は、メモリ装置70にロードされたプログラムに従ってセカンダリサーバ48に係る各種機能を実行する。インタフェース装置62は、ネットワーク50及びセカンダリサイトの他の構成要素に接続するためのインタフェースとして用いられる。
図3を参照して、一実施例によるプライマリサイト30のプライマリエージェントの機能的構成が説明される。図3は、一実施例によるプライマリエージェントの一例となる機能的構成を示す。
プライマリエージェント80は、プライマリサイト30のプライマリサーバ34によって実現される一機能である。具体的には、プライマリエージェント80は、プライマリストレージ32の業務データを含む各ファイルに対してプライマリサーバ34により実行された各ファイル操作を検出する。プライマリエージェント80は、これらのファイル操作(フォワードファイル操作)を含むフォワードログを生成し、ネットワーク50を介しセカンダリサイト40に送信する。
プライマリエージェント80は、ファイルシステム要求インタセプト部82と、フォワードログ生成部84と、フォワードログ送信部86と、通信制御部88とを有する。これら各機能的要素は、メモリ装置70にロードされたプログラムをCPU60が実行することにより実現可能である。
ファイルシステム要求インタセプト部82は、プライマリストレージ32の業務データを含む各ファイルに対してプライマリサーバ34により実行された各ファイル操作(CREATE,WRITE,REMOVEなど)を検出する。その後、ファイルシステム要求インタセプト部82は、検出された各ファイル操作をフォワードログ生成部84に提供する。
なお、本開示で使用される「ファイル操作」という用語は、CREATE,WRITE,REMOVEなどの各ファイルに対する各種操作と共に、プライマリストレージ32におけるディレクトリに対する各種操作(MKDIR,RMDIRなど)も含む。後述されるように、各ファイル操作は、当該ファイル操作に対して予め規定されている引数を有する。例えば、CREATE操作は、2つの引数「作成ファイル格納ディレクトリ」と「作成ファイル」とを有し、MKDIR操作は、1つの引数「作成ディレクトリ」を有する。ファイルシステム要求インタセプト部82は、各ファイル操作を当該ファイル操作に係る操作種別と引数の値(オペランド)とにより検出し、フォワードログ生成部84に提供する。
フォワードログ生成部84は、ファイルシステム要求インタセプト部82から受け付けた操作種別及びオペランドを含む各ファイル操作からフォワードログを生成する。具体的には、フォワードログ生成部84は、ファイルシステム要求インタセプト部82から受け付けた各ファイル操作を、プライマリサーバ34によるプライマリストレージ32の各ファイルへの各ファイル操作の適用順にフォワードログに記録する。記録されたフォワードログは、典型的には、プライマリサーバ34の補助記憶装置68に格納されるかもしれない。その後、フォワードログ生成部84は、生成されたフォワードログをフォワードログ送信部86に提供する。
フォワードログ生成部84は、補助記憶装置68に格納されているフォワードログを何れか適当なタイミングでフォワードログ送信部86に提供してもよい。すなわち、フォワードログ生成部84は、ファイルシステム要求インタセプト部82からファイル操作を受け付ける毎に、受け付けたファイル操作を含むフォワードログを生成し、フォワードログ送信部86に提供してもよい。あるいは、フォワードログ生成部84は、ファイルシステム要求インタセプト部82から複数のファイル操作を受け付け、これら複数のファイル操作を含むフォワードログを生成し、フォワードログ送信部86に提供してもよい。
一実施例では、フォワードログ生成部84は、受け付けたファイル操作の個数を計数するカウンタ(図示せず)を有してもよい。この場合、フォワードログ生成部84は、ファイルシステム要求インタセプト部82から所定数のファイル操作を受け付けると、これら所定数のファイル操作を含むフォワードログを生成し、フォワードログ送信部86に提供してもよい。
他の実施例では、フォワードログ生成部84は、タイマ(図示せず)を有してもよい。この場合、フォワードログ生成部84は、ファイルシステム要求インタセプト部82から所定期間内に受け付けたファイル操作を含むフォワードログを生成し、フォワードログ送信部86に提供してもよい。上記何れの実施例においても、フォワードログは、各ファイル操作の適用順が維持されるように生成される必要があることに留意すべきである。
フォワードログ送信部86は、フォワードログ生成部84から受け付けたフォワードログをネットワーク50を介しセカンダリサイト40に送信するよう通信制御部88に指示する。
通信制御部88は、フォワードログ送信部86から送信指示を受け付けると、受け付けたフォワードログを何れかの通信形式に従う電子データに変換し、ネットワーク50を介しセカンダリサイト40に送信する。さらに、この電子データは、必要に応じて圧縮や暗号化など適切な処理が施されてもよい。
図4を参照して、一実施例によるセカンダリサイト40のセカンダリエージェントの機能的構成が説明される。図4は、一実施例によるセカンダリエージェントの一例となる機能的構成を示す。
セカンダリエージェント90は、セカンダリサイト40のセカンダリサーバ48によって実現される一機能である。具体的には、セカンダリエージェント90は、プライマリエージェント80から受け付けたフォワードログをフォワードログディスク44に格納する。フォワードログの適用指示に応答して、セカンダリエージェント90は、フォワードログディスク44のフォワードログから各ファイル操作(フォワードファイル操作)を抽出する。その後、セカンダリエージェント90は、セカンダリストレージ42にバックアップされているデータに各フォワードファイル操作を適用する。このフォワードファイル操作の適用の際、セカンダリエージェント90は、所定の生成規則に従って、各フォワードファイル操作の適用後のファイルから適用前のファイルを復元するためのバックワードファイル操作を生成する。各バックワードファイル操作の生成後、セカンダリエージェント90は、生成したバックワードファイル操作をバックワードログに生成順に記録する。
セカンダリエージェント90は、フォワードログ受信時制御コンポーネント100と、バックグラウンド処理コンポーネント120とを有する。これら各機能的要素は、CPU60がメモリ装置70にロードされたプログラムを実行することにより実現可能である。
フォワードログ受信時制御コンポーネント100は、プライマリサイト30からフォワードログを受け付け、受け付けたフォワードログをフォワードログディスク44に格納する。フォワードログ受信時制御コンポーネント100は、通信制御部102と、フォワードログ受信部104と、フォワードログ保存部106と、ディスク制御部108とを有する。
通信制御部102は、プライマリサイト30からネットワーク50を介し電子データの形式により送信されたフォワードログを受信する。電子データを受信すると、通信制御部102は、通信形式に応じて受信した電子データを復号化し、復号化したデータをフォワードログ受信部104に提供する。
フォワードログ受信部104は、通信制御部102から復号化されたデータを受け付けると、当該データからフォワードログを抽出し、フォワードログ保存部106に提供する。
フォワードログ保存部106は、フォワードログ受信部104からフォワードログを受け付けると、当該フォワードログをフォワードログディスク44に格納するようディスク制御部108に指示する。
ディスク制御部108は、フォワードログ保存部106からのフォワードログの格納指示に応答して、フォワードログディスク44に当該フォワードログを格納する。
バックグラウンド処理コンポーネント120は、フォワードログの適用指示に応答して、バックグラウンド処理によりフォワードログディスク44のフォワードログから各ファイル操作を抽出する。その後、バックグラウンド処理コンポーネント120は、セカンダリストレージ42にバックアップされているデータに各フォワードファイル操作を適用する。このフォワードファイル操作の適用の際、バックグラウンド処理コンポーネント120は、バックワードファイル操作を生成し、生成したバックワードファイル操作をバックワードログに生成順に記録する。
バックグラウンド処理コンポーネント120は、バックグラウンド制御部122と、ログ適用部124と、ログ読み込み部126と、ディスク制御部128と、セカンダリストレージ更新部130と、バックワードログ生成部132と、更新前データ読み込み部134と、バックワードログ保存部136とを有する。
バックグラウンド制御部122は、バックグラウンド処理コンポーネント120がバックグラウンドで実行する各処理を制御する。バックグランド制御部122は、フォワードログの適用指示を受け付けると、セカンダリストレージ42に格納されている各ファイルにフォワードログを適用するようログ適用部124に指示すると共に、適用されるフォワードログに対応するバックワードログを生成するようバックワードログ生成部132に指示する。さらに、バックグランド制御部122は、フォワードログ適用後の各ファイルに生成されたバックワードログを適用する指示を受け付けると、セカンダリストレージ42に格納されている適用後の各ファイルにバックワードログを適用するようログ適用部124に指示する。
ログ適用部124は、バックグラウンド制御部122からのフォワードログ適用指示に応答して、ログ読み込み部126にフォワードログディスク44に格納されているフォワードログを抽出するよう指示する。その後、ログ適用部124は、抽出したフォワードログの各ファイル操作(CREATE,WRITE,REMOVE,MKDIR,RMDIRなど)を適用順にセカンダリストレージ42のデータに適用して、セカンダリストレージ更新部130にセカンダリストレージ42に格納されている各ファイルを更新するよう指示する。例えば、フォワードログの各ファイル操作が、プライマリストレージ32の各ファイルに対して適用された順にフォワードログの先頭から記述されている場合、ログ適用部124は、ログ読み込み部126により読み込まれたフォワードログの先頭から各ファイル操作を順次適用するようにしてもよい。
具体的には、ログ適用部124はまず、適用順のうち最先のファイル操作をフォワードログから抽出する。ログ適用部124は、抽出したファイル操作から、抽出したファイル操作の操作種別(CREATE,WRITE,REMOVEなど)と、当該操作種別に係る引数の各値(オペランド)とを特定する。その後、ログ適用部124は、特定された操作種別とオペランドとを含むファイル操作をバックワードログ生成部132に供給する。その後、ログ適用部124は、抽出したファイル操作をセカンダリストレージ42に適用して、セカンダリストレージ更新部130にセカンダリストレージ42の各ファイルを更新させる。
その後、ログ適用部124は、適用順のうち次に最先のファイル操作をフォワードログから抽出し、上記と同様の処理を実行する。以降、ログ適用部124は、フォワードログの他のファイル操作に対して上記処理を繰り返す。
ログ読み込み部126は、上述されるように、ログ適用部124からのフォワードログの読み込み指示に応答して、ディスク制御部128を介しフォワードログディスク44に格納されているフォワードログを取得する。また、ログ読み込み部126は、ログ適用部124からのバックワードログの読み込み指示に応答して、ディスク制御部128を介しバックワードログディスク46に格納されているバックワードログを取得する。
ディスク制御部128は、セカンダリストレージ42、フォワードログディスク44及びバックワードログディスク46に格納されている各ファイル及びログを読み込み及び書き込みする。
セカンダリストレージ更新部130は、ログ適用部124からログ適用後の各ファイルによる更新指示を受け付けると、セカンダリストレージ42の対応する適用前のファイルを適用後のファイルにより更新する。
バックワードログ生成部132は、ログ適用部124から各フォワードファイル操作を受け付けると、後述されるような補助記憶装置68に格納されている所定のバックワードファイル操作生成規則情報を参照して、受け付けたフォワードファイル操作に対応するバックワードファイル操作を生成する。バックワードログ生成部132は、生成した各バックワードファイル操作を生成順にバックワードログに記録するようバックワードログ保存部136に指示する。
すなわち、ログ適用部124は、フォワードログから適用順に各フォワードファイル操作を順次読み込み、バックワードログ生成部132に読み込んだ各フォワードファイル操作を順次提供する。バックワードログ生成部132は、各フォワードログ操作を受け付けると、当該フォワードファイル操作に対応するバックワードファイル操作を順次生成し、生成順にバックワードログに記録する。従って、バックワードログに記録されている各バックワードファイル操作の順序(生成順)は、フォワードログに記録されている対応する各フォワードファイル操作の順序(適用順)と同じになる。
更新前データ読み込み部134は、後述されるWRITE操作、REMOVE操作、SETATTR操作など、バックワードファイル操作を生成する際にフォワードファイル操作の適用前のもとのデータが保持される必要がある場合、この更新前のデータをディスク制御部128を介しセカンダリストレージ42から読み込み、バックワードログディスク46などに一時的に保持する。
バックワードログ保存部136は、生成したバックワードログをディスク制御部128を介しバックワードログディスク46に格納する。
図5を参照して、一実施例によるCREATE操作に対応するバックワードファイル操作生成規則が説明される。図5は、一実施例によるCREATE操作に対応するバックワードファイル操作生成規則を示す概念図である。
典型的には、CREATE操作は、指定されたディレクトリに指定されたファイルを作成する操作である。すなわち、CREATE操作は、「作成ファイル格納ディレクトリ」と、「作成ファイル」とを引数として有する。
まず、図5の上側の図を参照して、フォワードCREATE操作に対応するバックワードファイル操作の生成処理が説明される。図5の左上側及び右上側には、オペランド「作成ファイル格納ディレクトリX」と「作成ファイルA」とを有するフォワードCREATE操作の適用前後のセカンダリストレージ42が概略的に示される。
図5の左上側に示されるように、ログ適用部124によるフォワードCREATE操作適用前、セカンダリストレージ42はディレクトリXを有している。ログ適用部124は、ログ読み込み部126を利用して、フォワードログディスク44のフォワードログからフォワードCREATE操作を抽出すると、抽出したフォワードCREATE操作に係る操作種別「CREATE」と、これに係る2つのオペランド「作成ファイル格納ディレクトリX」及び「作成ファイルA」とを特定する。
操作種別とこれに係るオペランドを特定すると、ログ適用部124は、抽出したフォワードファイル操作がオペランド「作成ファイル格納ディレクトリX」と「作成ファイルA」を有するCREATE操作であることをバックワードログ生成部132に通知する。
ログ適用部124からこの通知を受け付けると、バックワードログ生成部132は、補助記憶装置68に格納されているバックワードファイル操作生成規則情報を参照して、フォワードCREATE操作に対応するバックワードファイル操作を生成する。
具体的には、バックワードファイル操作生成規則情報は、オペランド「作成ファイル格納ディレクトリDR」と「作成ファイルF」とを有するフォワードCREATE操作から、オペランド「削除ファイル格納ディレクトリDR」と「削除ファイルF」とを有するバックワードREMOVE操作を生成することを規定するバックワードファイル操作生成規則を有している。なお、このREMOVE操作は、セカンダリストレージ42のディレクトリDRからファイルFを削除する操作である。
図示された実施例では、バックワードログ生成部132は、上記バックワードファイル操作生成規則に従って、受け付けたフォワードCREATE操作に対して、オペランド「削除ファイル格納ディレクトリX」と「削除ファイルA」とを有するバックワードREMOVE操作を生成する。その後、バックワードログ生成部132は、バックワードログ保存部136を利用して、生成したバックワードREMOVE操作をバックワードログディスク46のバックワードログに生成順に記録する。
次に、図5の下側の図を参照して、フォワードCREATE操作が適用された後のセカンダリストレージ42に対して、対応するバックワードREMOVE操作を適用した復元処理が説明される。図5の左下側及び右下側には、オペランド「削除ファイル格納ディレクトリX」と「削除ファイルA」とを有するバックワードREMOVE操作の適用前後のセカンダリストレージ42が概略的に示される。
図5の左下側には、フォワードCREATE操作が適用された後のセカンダリストレージ42(図5右上側)が示されている。復元処理において、ログ適用部124は、オペランド「削除ファイル格納ディレクトリX」と「削除ファイルA」とを有するバックワードREMOVE操作を、フォワードCREATE操作適用後のセカンダリストレージ42に適用する。当該バックワードREMOVE操作が適用されると、図5の右下側に示されるように、フォワード操作適用前のセカンダリストレージ42(図5左上側)を復元することができる。
図6を参照して、一実施例によるWRITE操作に対応するバックワードファイル操作生成規則が説明される。図6は、一実施例によるWRITE操作に対応するバックワード操作生成規則を示す概念図である。
典型的には、WRITE操作は、指定されたディレクトリの指定されたファイルにおける指定されたデータを更新する操作である。すなわち、WRITE操作は、「更新ファイル格納ディレクトリ」と、「更新ファイル」と、「更新データ」とを引数として有する。
まず、図6の上側の図を参照して、フォワードWRITE操作に対応するバックワードファイル操作の生成処理が説明される。図6の左上側及び右上側には、オペランド「更新ファイル格納ディレクトリX」と、「更新ファイルA」と、「更新データT」とを有するフォワードWRITE操作の適用前後のセカンダリストレージ42が概略的に示される。
図6の左上側に示されるように、ログ適用部124によるフォワードWRITE操作適用前、セカンダリストレージ42はディレクトリXのファイルAにデータSを有している。ログ適用部124は、ログ読み込み部126を利用して、フォワードログディスク44のフォワードログからフォワードWRITE操作を抽出すると、抽出したフォワードWRITE操作に係る操作種別「WRITE」と、これに係る3つのオペランド「更新ファイル格納ディレクトリX」、「更新ファイルA」及び「更新データT」を特定する。
操作種別とこれに係るオペランドを特定すると、ログ適用部124は、抽出したフォワードファイル操作がオペランド「更新ファイル格納ディレクトリX」と、「更新ファイルA」と、「更新データT」とを有するWRITE操作であることをバックワードログ生成部132に通知する。
ログ適用部124からこの通知を受け付けると、バックワードログ生成部132は、補助記憶装置68に格納されているバックワードファイル操作生成規則情報を参照して、フォワードWRITE操作に対応するバックワードファイル操作を生成する。
具体的には、バックワードファイル操作生成規則情報は、オペランド「更新ファイル格納ディレクトリDR」と「更新ファイルF」と「更新データD1」とを有するフォワードWRITE操作から、オペランド「更新ファイル格納ディレクトリDR」と、「更新ファイルF」と、「更新データD2」とを有するバックワードWRITE操作を生成することを規定するバックワードファイル操作生成規則を有している。なお、「更新データD2」は、フォワードWRITE操作適用前のもとのデータを表す。
図示された実施例では、バックワードログ生成部132は、上記バックワードファイル操作生成規則に従って、受け付けたフォワードWRITE操作に対して、オペランド「更新ファイル格納ディレクトリX」と、「更新ファイルA」と、「更新データS」とを有するバックワードWRITE操作を生成する。その後、バックワードログ生成部132は、バックワードログ保存部136を利用して、生成したバックワードWRITE操作をバックワードログディスク46のバックワードログに生成順に記録する。さらにバックワードログ生成部132は、ログ適用部124がセカンダリストレージ42に上記フォワードWRITE操作を適用する前に、更新前データ読み込み部134にセカンダリストレージ42のもとのデータSを読み込ませ、バックワードログディスク46のバックワードログに格納させる。
バックワードWRITE操作に係るもとのデータSをバックワードログディスク46に記録する際、データSを含むもとのファイルA全体がバックワードログディスク46に記録されてもよい。しかしながら、もとのデータSはファイルAの一部であるため、バックワードログディスク46の格納容量を節約するため、実際に更新されるファイルAのもとのデータSのみがバックワードログディスク46に格納されるようにしてもよい。この場合、更新データSは、セカンダリストレージ42における格納開始ブロック番号と、当該ブロックから格納終端ブロック番号までのオフセットなどにより指定されてもよい。
次に、図6の下側の図を参照して、フォワードWRITE操作が適用された後のセカンダリストレージ42に対して、対応するバックワードWRITE操作を適用した復元処理が説明される。図6の左下側及び右下側には、オペランド「更新ファイル格納ディレクトリX」と、「更新ファイルA」と、「更新データS」とを有するバックワードWRITE操作の適用前後のセカンダリストレージ42が概略的に示される。
図6の左下側には、フォワードWRITE操作が適用された後のセカンダリストレージ42(図6右上側)が示されている。復元処理において、ログ適用部124は、オペランド「更新ファイル格納ディレクトリX」と、「更新ファイルA」と、「更新データS」とを有するバックワードWRITE操作をフォワードWRITE操作適用後のセカンダリストレージ42に適用する。当該バックワードWRITE操作が適用されると、図6右下側に示されるように、フォワード操作適用前のセカンダリストレージ42(図6左上側)を復元することができる。
図7を参照して、一実施例によるREMOVE操作に対応するバックワードファイル操作生成規則が説明される。図7は、一実施例によるREMOVE操作に対応するバックワード操作生成規則を示す概念図である。
上述したように、典型的には、REMOVE操作は、指定されたディレクトリの指定されたファイルを削除する操作である。すなわち、REMOVE操作は、「削除ファイル格納ディレクトリ」と、「削除ファイル」とを引数として有する。
まず、図7の上側の図を参照して、フォワードREMOVE操作に対応するバックワードファイル操作の生成処理が説明される。図7の左上側及び右上側には、オペランド「削除ファイル格納ディレクトリX」と、「削除ファイルA」とを有するフォワードREMOVE操作の適用前後のセカンダリストレージ42が概略的に示される。
図7の左上側に示されるように、ログ適用部124によるフォワードREMOVE操作適用前、セカンダリストレージ42はディレクトリXにファイルAを有している。ログ適用部124は、ログ読み込み部126を利用して、フォワードログディスク44のフォワードログからフォワードREMOVE操作を抽出すると、抽出したフォワードREMOVE操作に係る操作種別「REMOVE」と、これに係る2つのオペランド「削除ファイル格納ディレクトリX」及び「削除ファイルA」とを特定する。
操作種別とこれに係るオペランドを特定すると、ログ適用部124は、抽出したフォワードファイル操作がオペランド「削除ファイル格納ディレクトリX」と、「削除ファイルA」とを有するREMOVE操作であることをバックワードログ生成部132に通知する。
ログ適用部124からこの通知を受け付けると、バックワードログ生成部132は、補助記憶装置68に格納されているバックワードファイル操作生成規則情報を参照して、フォワードREMOVE操作に対応するバックワードファイル操作を生成する。
具体的には、バックワードファイル操作生成規則情報は、オペランド「削除ファイル格納ディレクトリDR」と「削除ファイルF」とを有するフォワードREMOVE操作から、オペランド「復元ファイル格納ディレクトリDR」、「復元ファイルF」及び「削除ファイルF1」を有するRECOVER操作、すなわち、4つのオペランド「移動元ディレクトリG」、「移動元ファイルF1」、「移動先ディレクトリDR」及び「移動先ファイルF」を有するバックワードRENAME操作を生成することを規定するバックワードファイル操作生成規則を有している。ここで、ディレクトリGは、一時的にファイルF1を格納するための特殊なディレクトリである。
なお、このRECOVER操作は、セカンダリストレージ42のディレクトリGのファイルF1を、ディレクトリDRにファイルFとして復元する操作である。また、RECOVER操作と等価的であるが、このRENAME操作は、セカンダリストレージ42のディレクトリGのファイルF1をディレクトリDRにファイルFとして移動する操作である。
ログ適用部124は、オペランド「削除格納ファイルディレクトリDR」及び「削除ファイルF」を有するフォワードREMOVE操作を適用する際、実際には当該REMOVE操作を実行せず、オペランド「移動元ディレクトリDR」、「移動元ファイルF」、「移動先ディレクトリG」及び「移動先ファイルF1」を有するフォワードRENAME操作を実行する。
なお、同様にもとのデータSが一時的に保持されるフォワードWRITE操作に係るバックワードファイル操作生成処理では、WRITE操作適用前のもとのデータSはバックログディスク46に格納された。しかしながら、フォワードREMOVE操作に係るバックワードファイル操作生成処理では、上述のようにフォワードREMOVE操作適用前のもとのファイルFは、セカンダリストレージ42内の特殊なディレクトリGに格納される。これは、一般にファイルFはデータSよりデータ量が大きいため、ファイルFをバックログディスク46に格納することは、バックログディスク46の効率的な使用の観点から望ましくないためである。しかしながら、バックログディスク46が十分な格納容量を有する他の実施例では、ファイルFをバックログディスク46に格納してもよい。すなわち、フォワードREMOVE操作に対応するバックワードRENAME操作を適用する際、フォワードREMOVE操作により削除されるファイルFが何れかに維持されていればよい。
図示された実施例では、バックワードログ生成部132は、上記バックワードファイル操作生成規則に従って、受け付けたフォワードREMOVE操作に対して、オペランド「復元ファイル格納ディレクトリX」、「復元ファイルA」及び「削除ファイルR」を有するRECOVER操作、又はオペランド「移動元ディレクトリG」、「移動元ファイルR」、「移動先ディレクトリX」及び「移動先ファイルA」を有するバックワードRENAME操作を生成する。その後、バックワードログ生成部132は、バックワードログ保存部136を利用して、生成したバックワードRECOVER操作又はバックワードRENAME操作をバックワードログディスク46のバックワードログに生成順に記録する。
次に、図7の下側の図を参照して、フォワードREMOVE操作、すなわち、上述したフォワードRENAME操作が適用された後のセカンダリストレージ42に対して、対応するバックワードRECOVER又はバックワードRENAME操作を適用した復元処理が説明される。図7の左下側及び右下側には、オペランド「復元ファイル格納ディレクトリX」、「復元ファイルA」及び「削除ファイルR」を有するRECOVER操作、又はオペランド「移動元ディレクトリG」、「移動元ファイルR」、「移動先ディレクトリX」及び「移動先ファイルA」を有するバックワードRENAME操作の適用前後のセカンダリストレージ42が概略的に示される。
図7の左下側には、フォワードREMOVE操作、すなわち、フォワードRENAME操作が適用された後のセカンダリストレージ42(図7右上側)が示されている。復元処理において、ログ適用部124は、オペランド「復元ファイル格納ディレクトリX」、「復元ファイルA」及び「削除ファイルR」を有するRECOVER操作、又はオペランド「移動元ディレクトリG」、「移動元ファイルR」、「移動先ディレクトリX」及び「移動先ファイルA」を有するバックワードRENAME操作をフォワードRENAME操作適用後のセカンダリストレージ42に適用する。当該バックワードRECOVER操作又はバックワードRENAME操作が適用されると、図7の右下側に示されるように、フォワード操作適用前のセカンダリストレージ42(図7左上側)を復元することができる。
図8を参照して、一実施例によるLINK操作に対応するバックワードファイル操作生成規則が説明される。図8は、一実施例によるLINK操作に対応するバックワード操作生成規則を示す概念図である。
典型的には、LINK操作は、指定されたディレクトリの指定されたファイルに対して他の指定されたディレクトリをさらにリンクさせる操作である。具体的には、他の指定されたディレクトリに当該ファイルを指定するポインタ情報ファイルが作成される。すなわち、LINK操作は、「リンク元ディレクトリ」と、「リンク元ファイル(ポインタ情報ファイル)」と、「リンク先ディレクトリ」と、「リンク先ファイル」とを引数として有する。
まず、図8の上側の図を参照して、フォワードLINK操作に対応するバックワードファイル操作の生成処理が説明される。図8の左上側及び右上側には、オペランド「リンク元ディレクトリX」と、「リンク元ファイルA」と、「リンク先ディレクトリY」と、「リンク先ファイルB」とを有するフォワードLINK操作の適用前後のセカンダリストレージ42が概略的に示される。
図8の左上側に示されるように、ログ適用部124によるフォワードLINK操作適用前、セカンダリストレージ42はディレクトリYにファイルBを有している。ログ適用部124は、ログ読み込み部126を利用して、フォワードログディスク44のフォワードログからフォワードLINK操作を抽出すると、抽出したフォワードLINK操作に係る操作種別「LINK」と、これに係る4つのオペランド「リンク元ディレクトリX」と、「リンク元ファイルA」と、「リンク先ディレクトリY」と、「リンク先ファイルB」とを特定する。
操作種別とこれに係るオペランドを特定すると、ログ適用部124は、抽出したフォワードファイル操作がオペランド「リンク元ディレクトリX」と、「リンク元ファイルA」と、「リンク先ディレクトリY」と、「リンク先ファイルB」とを有するフォワードLINK操作であることをバックワードログ生成部132に通知する。
ログ適用部124からこの通知を受け付けると、バックワードログ生成部132は、補助記憶装置68に格納されているバックワードファイル操作生成規則情報を参照して、フォワードLINK操作に対応するバックワードファイル操作を生成する。
具体的には、バックワードファイル操作生成規則情報は、オペランド「リンク元ディレクトリDR1」と、「リンク元ファイルF1」と、「リンク先ディレクトリDR2」と、「リンク先ファイルF2」とを有するフォワードLINK操作から、オペランド「削除ファイル格納ディレクトリDR1」と「削除ファイルF1」とを有するREMOVE操作を生成することを規定するバックワードファイル操作生成規則を有している。なお、ファイルF1は、上述したようなファイルF2を指定するディレクトリDR1のポインタ情報ファイルである。このバックワードREMOVE操作では、このポイント情報ファイルを削除することによって、リンク元ディレクトリDR1からリンク先ファイルF2へのリンクが解除される。
図示された実施例では、バックワードログ生成部132は、上記バックワードファイル操作生成規則に従って、受け付けたフォワードLINK操作に対して、オペランド「削除ファイル格納ディレクトリX」と「削除ファイルA」とを有するREMOVE操作を生成する。その後、バックワードログ生成部132は、バックワードログ保存部136を利用して、生成したバックワードREMOVE操作をバックワードログディスク46のバックワードログに生成順に記録する。
次に、図8の下側の図を参照して、フォワードLINK操作が適用された後のセカンダリストレージ42に対して、対応するバックワードREMOVE操作を適用した復元処理が説明される。図8の左下側及び右下側には、オペランド「削除ファイル格納ディレクトリX」と「削除ファイルA」とを有するバックワードREMOVE操作の適用前後のセカンダリストレージ42が概略的に示される。
図8の左下側には、フォワードLINK操作が適用された後のセカンダリストレージ42(図8右上側)が示されている。復元処理において、ログ適用部124は、オペランド「削除ファイル格納ディレクトリX」と「削除ファイルA」とを有するバックワードREMOVE操作をフォワードLINK操作適用後のセカンダリストレージ42に適用する。当該バックワードREMOVE操作が適用されると、図8の右下側に示されるように、フォワード操作適用前のセカンダリストレージ42(図8左上側)を復元することができる。
図9を参照して、一実施例によるMKDIR操作に対応するバックワードファイル操作生成規則が説明される。図9は、一実施例によるMKDIR操作に対応するバックワードファイル操作生成規則を示す概念図である。
典型的には、MKDIR操作は、ストレージに指定されたディレクトリを作成する操作である。すなわち、MKDIR操作は、「作成ディレクトリ」を引数として有する。
まず、図9の上側の図を参照して、フォワードMKDIR操作に対応するバックワードファイル操作の生成処理が説明される。図9の左上側及び右上側には、オペランド「作成ディレクトリX」を有するフォワードMKDIR操作の適用前後のセカンダリストレージ42が概略的に示される。
図9の左上側に示されるように、ログ適用部124は、ログ読み込み部126を利用して、フォワードログディスク44のフォワードログからフォワードMKDIR操作を抽出すると、抽出したフォワードMKDIR操作に係る操作種別「MKDIR」と、これに係るオペランド「作成ディレクトリX」を特定する。
操作種別とこれに係るオペランドを特定すると、ログ適用部124は、抽出したフォワードファイル操作がオペランド「作成ディレクトリX」を有するMKDIR操作であることをバックワードログ生成部132に通知する。
ログ適用部124からこの通知を受け付けると、バックワードログ生成部132は、補助記憶装置68に格納されているバックワードファイル操作生成規則情報を参照して、フォワードMKDIR操作に対応するバックワードファイル操作を生成する。
具体的には、バックワードファイル操作生成規則情報は、オペランド「作成ディレクトリDR」を有するフォワードMKDIR操作から、オペランド「削除ディレクトリDR」を有するバックワードRMDIR操作を生成することを規定するバックワードファイル操作生成規則を有している。なお、このRMDIR操作は、セカンダリストレージ42からディレクトリDRを削除する操作である。
図示された実施例では、バックワードログ生成部132は、上記バックワードファイル操作生成規則に従って、受け付けたフォワードMKDIR操作に対して、オペランド「削除ディレクトリX」を有するバックワードRMDIR操作を生成する。その後、バックワードログ生成部132は、バックワードログ保存部136を利用して、生成したバックワードRMDIR操作をバックワードログディスク46のバックワードログに生成順に記録する。
次に、図9の下側の図を参照して、フォワードMKDIR操作が適用された後のセカンダリストレージ42に対して、対応するバックワードRMDIR操作を適用した復元処理が説明される。図9の左下側及び右下側には、オペランド「削除ディレクトリX」を有するバックワードRMDIR操作の適用前後のセカンダリストレージ42が概略的に示される。
図9の左下側には、フォワードMKDIR操作が適用された後のセカンダリストレージ42(図9右上側)が示されている。復元処理において、ログ適用部124は、オペランド「削除ディレクトリX」を有するバックワードRMDIR操作をフォワードMKDIR操作適用後のセカンダリストレージ42に適用する。当該バックワードRMDIR操作が適用されると、図9の右下側に示されるように、フォワード操作適用前のセカンダリストレージ42(図9左上側)を復元することができる。
図10を参照して、一実施例によるRENAME操作に対応するバックワードファイル操作生成規則が説明される。図10は、一実施例によるRENAME操作に対応するバックワード操作生成規則を示す概念図である。
上述されたように、典型的には、RENAME操作は、指定された移動元ディレクトリの移動元ファイルを、指定された移動先ディレクトリの移動先ファイルに移動する操作である。すなわち、RENAME操作は、「移動元ディレクトリ」と、「移動元ファイル」と、「移動先ディレクトリ」と、「移動先ファイル」とを引数として有する。なお、移動元ファイルと移動先ファイルは同じファイル名を有してもよい。この場合、移動元ファイルは、そのファイル名を維持したまま移動元ディレクトリから移動先ディレクトリに移動されることになる。また、移動元ディレクトリと移動先ディレクトリは同一であってもよい。この場合、移動元ファイルは、同一ディレクトリの内部で異なる移動先ファイルのファイル名に変更されることになる。
まず、図10の上側の図を参照して、フォワードRENAME操作に対応するバックワードファイル操作の生成処理が説明される。図10の左上側及び右上側には、オペランド「移動元ディレクトリX」と、「移動元ファイルA」と、「移動先ディレクトリY」と、「移動先ファイルB」とを有するフォワードRENAME操作の適用前後のセカンダリストレージ42が概略的に示される。
図10の左上側に示されるように、ログ適用部124によるフォワードRENAME操作適用前、セカンダリストレージ42はディレクトリXにファイルAを有している。ログ適用部124は、ログ読み込み部126を利用して、フォワードログディスク44のフォワードログからフォワードRENAME操作を抽出すると、抽出したフォワードRENAME操作に係る操作種別「RENAME」と、これに係る4つのオペランド「移動元ディレクトリX」と、「移動元ファイルA」と、「移動先ディレクトリY」と、「移動先ファイルB」とを特定する。
操作種別とこれに係るオペランドを特定すると、ログ適用部124は、抽出したフォワードファイル操作がオペランド「移動元ディレクトリX」と、「移動元ファイルA」と、「移動先ディレクトリY」と、「移動先ファイルB」とを有するフォワードRENAME操作であることをバックワードログ生成部132に通知する。
ログ適用部124からこの通知を受け付けると、バックワードログ生成部132は、補助記憶装置68に格納されているバックワードファイル操作生成規則情報を参照して、フォワードRENAME操作に対応するバックワードファイル操作を生成する。
具体的には、バックワードファイル操作生成規則情報は、オペランド「移動元ディレクトリDR1」と、「移動元ファイルF1」と、「移動先ディレクトリDR2」と、「移動先ファイルF2」とを有するフォワードRENAME操作から、オペランド「移動元ディレクトリDR2」と、「移動元ファイルF2」と、「移動先ディレクトリDR1」と、「移動先ファイルF1」とを有するバックワードRENAME操作を生成することを規定するバックワードファイル操作生成規則を有している。
図示された実施例では、バックワードログ生成部132は、上記バックワードファイル操作生成規則に従って、受け付けたフォワードRENAME操作に対して、オペランド「移動元ディレクトリY」と、「移動元ファイルB」と、「移動先ディレクトリX」と、「移動先ファイルA」とを有するバックワードRENAME操作を生成する。その後、バックワードログ生成部132は、バックワードログ保存部136を利用して、生成したバックワードRENAME操作をバックワードログディスク46のバックワードログに生成順に記録する。
次に、図10の下側の図を参照して、フォワードRENAME操作が適用された後のセカンダリストレージ42に対して、対応するバックワードRENAME操作を適用した復元処理が説明される。図10の左下側及び右下側には、オペランド「移動元ディレクトリY」と、「移動元ファイルB」と、「移動先ディレクトリX」と、「移動先ファイルA」とを有するバックワードRENAME操作の適用前後のセカンダリストレージ42が概略的に示される。
図10の左下側には、フォワードRENAME操作が適用された後のセカンダリストレージ42(図10右上側)が示されている。復元処理において、ログ適用部124は、オペランド「移動元ディレクトリY」と、「移動元ファイルB」と、「移動先ディレクトリX」と、「移動先ファイルA」とを有するバックワードRENAME操作をフォワードRENAME操作適用後のセカンダリストレージ42に適用する。当該バックワードRENAME操作が適用されると、図10の右下側に示されるように、フォワード操作適用前のセカンダリストレージ42(図10左上側)を復元することができる。
図11を参照して、一実施例によるRMDIR操作に対応するバックワードファイル操作生成規則が説明される。図11は、一実施例によるRMDIR操作に対応するバックワードファイル操作生成規則を示す概念図である。
上述されたように、典型的には、RMDIR操作は、指定されたディレクトリをストレージから削除する操作である。すなわち、RMDIR操作は、「削除ディレクトリ」を引数として有する。
まず、図11の上側の図を参照して、フォワードRMDIR操作に対応するバックワードファイル操作の生成処理が説明される。図11の左上側及び右上側には、オペランド「削除ディレクトリX」を有するフォワードRMDIR操作の適用前後のセカンダリストレージ42が概略的に示される。
図11の左上側に示されるように、ログ適用部124によるフォワードRMDIR操作適用前、セカンダリストレージ42はディレクトリXを有している。ログ適用部124は、ログ読み込み部126を利用して、フォワードログディスク44のフォワードログからフォワードRMDIR操作を抽出すると、抽出したフォワードRMDIR操作に係る操作種別「RMDIR」と、これに係るオペランド「削除ディレクトリX」を特定する。
操作種別とこれに係るオペランドを特定すると、ログ適用部124は、抽出したフォワードファイル操作がオペランド「削除ディレクトリX」を有するRMDIR操作であることをバックワードログ生成部132に通知する。
ログ適用部124からこの通知を受け付けると、バックワードログ生成部132は、補助記憶装置68に格納されているバックワードファイル操作生成規則情報を参照して、フォワードRMDIR操作に対応するバックワードファイル操作を生成する。
具体的には、バックワードファイル操作生成規則情報は、オペランド「削除ディレクトリDR」を有するフォワードRMDIR操作から、オペランド「作成ディレクトリDR」を有するバックワードMKDIR操作を生成することを規定するバックワードファイル操作生成規則を有している。
図示された実施例では、バックワードログ生成部132は、上記バックワードファイル操作生成規則に従って、受け付けたフォワードRMDIR操作に対して、オペランド「作成ディレクトリX」を有するバックワードMKDIR操作を生成する。その後、バックワードログ生成部132は、バックワードログ保存部136を利用して、生成したバックワードMKDIR操作をバックワードログディスク46のバックワードログに生成順に記録する。
次に、図11の下側の図を参照して、フォワードRMDIR操作が適用された後のセカンダリストレージ42に対して、対応するバックワードMKDIR操作を適用した復元処理が説明される。図11の左下側及び右下側には、オペランド「作成ディレクトリX」を有するバックワードMKDIR操作の適用前後のセカンダリストレージ42が概略的に示される。
図11の左下側には、フォワードRMDIR操作が適用された後のセカンダリストレージ42(図11右上側)が示されている。復元処理において、ログ適用部124は、オペランド「作成ディレクトリX」を有するバックワードMKDIR操作をフォワードRMDIR操作適用後のセカンダリストレージ42に適用する。当該バックワードMKDIR操作が適用されると、図11の右下側に示されるように、フォワード操作適用前のセカンダリストレージ42(図11左上側)を復元することができる。
図12を参照して、一実施例によるSETATTR操作に対応するバックワードファイル操作生成規則が説明される。図12は、一実施例によるSETATTR操作に対応するバックワード操作生成規則を示す概念図である。
典型的には、SETATTR操作は、指定されたディレクトリの指定されたファイルに係る属性を変更する操作である。すなわち、SETATTR操作は、「属性変更ファイル格納ディレクトリ」と、「属性変更ファイル」と、「属性」とを引数として有する。
まず、図12の上側の図を参照して、フォワードSETATTR操作に対応するバックワードファイル操作の生成処理が説明される。図12の左上側及び右上側には、オペランド「属性変更ファイル格納ディレクトリX」と、「属性変更ファイルA」と、「属性Q」とを有するフォワードSETATTR操作の適用前後のストレージが概略的に示される。
図12の左上側に示されるように、ログ適用部124によるフォワードSETATTR操作適用前、セカンダリストレージ42はディレクトリXのファイルAに係る属性Pを有している。ログ適用部124は、ログ読み込み部126を利用して、フォワードログディスク44のフォワードログからフォワードSETATTR操作を抽出すると、抽出したフォワードSETATTR操作に係る操作種別「SETATTR」と、これに係る3つのオペランド「属性変更ファイル格納ディレクトリX」、「属性変更ファイルA」及び「属性Q」を特定する。
操作種別とこれに係るオペランドを特定すると、ログ適用部124は、抽出したフォワードファイル操作がオペランド「属性変更ファイル格納ディレクトリX」、「属性変更ファイルA」及び「属性Q」を有するSETATTR操作であることをバックワードログ生成部132に通知する。
ログ適用部124からこの通知を受け付けると、バックワードログ生成部132は、補助記憶装置68に格納されているバックワードファイル操作生成規則情報を参照して、フォワードSETATTR操作に対応するバックワードファイル操作を生成する。
具体的には、バックワードファイル操作生成規則情報は、オペランド「属性変更ファイル格納ディレクトリDR」、「属性変更ファイルF」及び「属性AT1」を有するSETATTR操作から、オペランド「属性変更ファイル格納ディレクトリDR」、「属性変更ファイルF」及び「属性AT2」を有するバックワードSETATTR操作を生成することを規定するバックワードファイル操作生成規則を有している。なお、「属性AT2」は、フォワードSETATTR操作適用前のもとの属性を表す。
図示された実施例では、バックワードログ生成部132は、上記バックワードファイル操作生成規則に従って、受け付けたフォワードSETATTR操作に対して、オペランド「属性変更ファイル格納ディレクトリX」、「属性変更ファイルA」及び「属性P」を有するバックワードSETATTR操作を生成する。その後、バックワードログ生成部132は、バックワードログ保存部136を利用して、生成したバックワードSETATTR操作をバックワードログディスク46のバックワードログに生成順に記録する。さらにバックワードログ生成部132は、ログ適用部124がセカンダリストレージ42に上記フォワードSETATTR操作を適用する前に、更新前データ読み込み部134を利用して、セカンダリストレージ42のもとの属性Pをバックワードログディスク46のバックワードログに格納する。
次に、図12の下側の図を参照して、フォワードSETATTR操作が適用された後のセカンダリストレージ42に対して、対応するバックワードSETATTR操作を適用した復元処理が説明される。図12の左下側及び右下側には、オペランド「属性変更ファイル格納ディレクトリX」、「属性変更ファイルA」及び「属性P」を有するバックワードSETATTR操作の適用前後のセカンダリストレージ42が概略的に示される。
図12の左下側には、フォワードSETATTR操作が適用された後のセカンダリストレージ42(図12右上側)が示されている。復元処理において、ログ適用部124は、オペランド「属性変更ファイル格納ディレクトリX」、「属性変更ファイルA」及び「属性P」を有するバックワードSETATTR操作をフォワードSETATTR操作適用後のセカンダリストレージ42に適用する。当該バックワードSETATTR操作が適用されると、図12の右下側に示されるように、フォワード操作適用前のセカンダリストレージ42(図12左上側)を復元することができる。
図13を参照して、フォワードログと対応するバックワードログのデータ構造が説明される。図13は、一実施例によるフォワードログの一例となるデータ構造と対応するバックワードログの一例となるデータ構造とを示す。
図示されるように、フォワードログとバックワードログとは、1以上のファイル操作を有する。各ファイル操作は、当該ファイル操作に対して予め規定されている1以上の引数を有する。例えば、CREATE操作は、「作成ファイル格納ディレクトリ」と「作成ファイル」との2つの引数を有する。また、WRITE操作は、「更新ファイル格納ディレクトリ」と、「更新ファイル」と、「更新データ」とを有する。引数「作成ファイル格納ディレクトリ」及び「更新ファイル格納ディレクトリ」については、処理対象となるディレクトリ名(X,Yなど)が指定されるかもしれない。引数「作成ファイル」及び「更新ファイル」については、処理対象となるファイル名(A,Bなど)が指定されるかもしれない。引数「更新データ」については、更新後のデータのブロック番号などが、開始ブロック番号と当該開始ブロック番号から終端ブロック番号までのオフセットとによって、指定されるかもしれない。
フォワードログは、プライマリサイト30においてプライマリサーバ34がプライマリストレージ32の業務データに対して各ファイル操作を適用した適用順が認識できるように生成される。具体的には、図13の上側のデータ構造に示されるように、プライマリサイト30においてプライマリサーバ34がプライマリストレージ32の業務データに対して適用したCREATE,WRITE,REMOVEが適用順にフォワードログの先頭から記述されるかもしれない。
他方、バックワードログは、上述したバックワードファイル操作生成規則に従って、フォワードログに記述された各ファイル操作について生成されたバックワードファイル操作を有する。上述したように、フォワードログの各フォワードファイル操作に対して、バックワードファイル操作が生成され、バックワードログに順次記録される。バックワードログは、セカンダリサイト40においてバックワードログ生成部132がログ適用部124から受け付けた各フォワードファイル操作に対して、各バックワードファイル操作が生成された生成順が認識できるように生成される。具体的には、図13の下側のデータ構造に示されるように、フォワードログの各フォワードファイル操作CREATE,WRITE,REMOVEに対応するバックワードファイル操作REMOVE,WRITE,RECOVERが生成順にバックワードログの先頭から記述される。すなわち、フォワードログに記述される各ファイル操作の適用順序は、バックワードログに記述される対応する各ファイル操作の生成順序と同一となる。
他方、フォワードログの各フォワードファイル操作が適用されたデータから、このバックワードログを使用して何れかのチェックポイントのデータを復元する際、ログ適用部132は、バックワードログを生成順とは逆順に適用する。すなわち、図13のバックワードログでは、最後尾のRECOVERから先頭のREMOVEに向かって各バックワードファイル操作を適用する。
図14を参照して、一実施例によるバックワードログ生成処理が説明される。図14は、一実施例によるバックワードログ生成処理を示すフロー図である。
バックグラウンド処理コンポーネント120がセカンダリストレージ42にバックアップされている現在のデータにフォワードログを適用するよう指示されると、バックワードログ生成処理がスタートする。
S100において、ログ適用部124は、ログ読み込み部126を利用してフォワードログディスク44からフォワードログを取得し、フォワードログに記録されている各フォワードファイル操作をその適用順に読み込む。
S200において、ログ適用部124は、読み込んだフォワードファイル操作から操作種別及び当該操作に係るオペランドを特定する。その後、ログ適用部124は、特定した操作種別とオペランドとをバックワードログ生成部132に通知する。
S300において、バックワードログ生成部132は、補助記憶装置68に格納されているバックワードファイル操作生成規則情報を参照して、通知されたフォワードファイル操作に係るバックワード操作生成規則に従って、対応するバックワードファイル操作を生成する。バックワードログ生成部132は、生成したバックワードファイル操作をバックワードログディスク46のバックワードログに生成順に記録する。
S400において、ログ適用部124は、取得したフォワードログのすべてのフォワードファイル操作について、対応するバックワードファイル操作が生成されたか判断する。すべてのフォワードファイル操作について対応するバックワードファイル操作が生成されている場合(S400:YES)、当該バックワードログ生成処理は終了される。他方、対応するバックワードファイル操作が生成されていないフォワードファイル操作がフォワードログに存在する場合(S400:NO)、S100に移行して、次のフォワードファイル操作に対して上記処理が繰り返される。
図15〜22を参照して、一実施例による図14のS300のバックワードファイル操作生成処理について、上述した各種ファイル操作に対応する詳細なバックワードファイル操作生成処理が説明される。
図15は、一実施例によるCREATE操作に対応するバックワードファイル操作生成処理を示すフロー図である。
S200において、ログ適用部124が、ログ読み込み部126により読み込まれたフォワードファイル操作がオペランド「作成ファイル格納ディレクトリX」と「作成ファイルA」とを有するCREATE操作であると特定し、バックワードログ生成部132に当該フォワードCREATE操作を通知する。この通知に応答して、S300において、バックワードログ生成部132は、CREATE操作に対応するバックワードファイル操作生成処理を開始する。
S310において、バックワードログ生成部132は、受け付けたCREATE操作がオペランド「作成ファイル格納ディレクトリX」と「作成ファイルA」とを有することを特定する。
S312において、バックワードログ生成部132は、補助記憶装置68に格納されているバックワードファイル操作生成規則情報を参照して、このフォワードCREATE操作に対応するバックワードファイル操作生成規則を特定する。その後、バックワードログ生成部132は、特定したバックワードファイル操作生成規則に従って、オペランド「削除ファイル格納ディレクトリX」と「削除ファイルA」とを有するバックワードREMOVE操作を生成する。
図16は、一実施例によるWRITE操作に対応するバックワードファイル操作生成処理を示すフロー図である。
S200において、ログ適用部124が、ログ読み込み部126により読み込まれたフォワードファイル操作がオペランド「更新ファイル格納ディレクトリX」と、「更新ファイルA」と、「更新データT」とを有するWRITE操作であると特定し、バックワードログ生成部132に当該フォワードWRITE操作を通知する。この通知に応答して、S300において、バックワードログ生成部132は、WRITE操作に対応するバックワードファイル操作生成処理を開始する。
S320において、バックワードログ生成部132は、受け付けたWRITE操作がオペランド「更新ファイル格納ディレクトリX」と、「更新ファイルA」と、「更新データT」とを有することを特定する。
S322において、バックワードログ生成部132は、ファイルAの更新データTと置換されるもとのデータSを決定し、ディスク制御部128を利用して、バックワードログディスク46に格納する。
S324において、バックワードログ生成部132は、補助記憶装置68に格納されているバックワードファイル操作生成規則情報を参照して、このフォワードWRITE操作に対応するバックワードファイル操作生成規則を特定する。その後、バックワードログ生成部132は、特定したバックワードファイル操作生成規則に従って、オペランド「更新ファイル格納ディレクトリX」と、「更新ファイルA」と、「更新データS」とを有するバックワードWRITE操作を生成する。
図17は、一実施例によるREMOVE操作に対応するバックワードファイル操作生成処理を示すフロー図である。
S200において、ログ適用部124が、ログ読み込み部126により読み込まれたフォワードファイル操作がオペランド「削除ファイル格納ディレクトリX」と「削除ファイルA」とを有するREMOVE操作であると特定し、バックワードログ生成部132に当該フォワードREMOVE操作を通知する。この通知に応答して、S300において、バックワードログ生成部132は、REMOVE操作に対応するバックワードファイル操作生成処理を開始する。
S330において、バックワードログ生成部132は、受け付けたREMOVE操作がオペランド「削除ファイル格納ディレクトリX」と「削除ファイルA」とを有することを特定する。
S332において、バックワードログ生成部132は、更新前データ読み込み部134を利用して、ディレクトリXのファイルAを、セカンダリストレージ42に特別に設けられたディレクトリGにファイルRとして移動する。
S334において、バックワードログ生成部98は、補助記憶装置68に格納されているバックワードファイル操作生成規則情報を参照して、このフォワードREMOVE操作に対応するバックワードファイル操作生成規則を特定する。その後、バックワードログ生成部132は、特定したバックワードファイル操作生成規則に従って、オペランド「復元ファイル格納ディレクトリX」と、「復元ファイルA」と、「削除ファイルR」とを有するバックワードRECOVER操作を生成する。上述されたように、このバックワードRECOVER操作は、オペランド「移動元ディレクトリG」、「移動元ファイルR」、「移動先ディレクトリX」及び「移動先ファイルA」を有するRENAME操作として実現されてもよい。
図18は、一実施例によるLINK操作に対応するバックワードファイル操作生成処理を示すフロー図である。
S200において、ログ適用部124が、ログ読み込み部126により読み込まれたフォワードファイル操作がオペランド「リンク元ディレクトリX」、「リンク元ファイルA」、「リンク先ディレクトリY」及び「リンク先ファイルB」を有するLINK操作であると特定し、バックワードログ生成部132に当該フォワードLINK操作を通知する。この通知に応答して、S300において、バックワードログ生成部132は、LINK操作に対応するバックワードファイル操作生成処理を開始する。
S340において、バックワードログ生成部132は、受け付けたLINK操作がオペランド「リンク元ディレクトリX」、「リンク元ファイルA」、「リンク先ディレクトリY」及び「リンク先ファイルB」を有することを特定する。
S342において、バックワードログ生成部132は、補助記憶装置68に格納されているバックワードファイル操作生成規則情報を参照して、このフォワードLINK操作に対応するバックワードファイル操作生成規則を特定する。その後、バックワードログ生成部132は、特定したバックワードファイル操作生成規則に従って、オペランド「削除ファイル格納ディレクトリX」と「削除ファイルA」とを有するバックワードREMOVE操作を生成する。上述したように、ファイルAは、ファイルBを指定するディレクトリXのポインタ情報ファイルである。
図19は、一実施例によるMKDIR操作に対応するバックワードファイル操作生成処理を示すフロー図である。
S200において、ログ適用部124が、ログ読み込み部126により読み込まれたフォワードファイル操作がオペランド「作成ディレクトリX」を有するMKDIR操作であると特定し、バックワードログ生成部132に当該フォワードMKDIR操作を通知する。この通知に応答して、S300において、バックワードログ生成部132は、MKDIR操作に対応するバックワードファイル操作生成処理を開始する。
S350において、バックワードログ生成部132は、受け付けたMKDIR操作がオペランド「作成ディレクトリX」を有することを特定する。
S352において、バックワードログ生成部132は、補助記憶装置68に格納されているバックワードファイル操作生成規則情報を参照して、このフォワードMKDIR操作に対応するバックワードファイル操作生成規則を特定する。その後、バックワードログ生成部132は、特定したバックワードファイル操作生成規則に従って、オペランド「削除ディレクトリX」を有するバックワードRMDIR操作を生成する。
図20は、一実施例によるRENAME操作に対応するバックワードファイル操作生成処理を示すフロー図である。
S200において、ログ適用部124が、ログ読み込み部126により読み込まれたフォワードファイル操作がオペランド「移動元ディレクトリX」、「移動元ファイルA」、「移動先ディレクトリY」及び「移動先ファイルB」を有するRENAME操作であると特定し、バックワードログ生成部132に当該フォワードRENAME操作を通知する。この通知に応答して、S300において、バックワードログ生成部132は、RENAME操作に対応するバックワードファイル操作生成処理を開始する。
S360において、バックワードログ生成部132は、受け付けたRENAME操作がオペランド「移動元ディレクトリX」、「移動元ファイルA」、「移動先ディレクトリY」及び「移動先ファイルB」を有することを特定する。
S362において、バックワードログ生成部132は、補助記憶装置68に格納されているバックワードファイル操作生成規則情報を参照して、このフォワードRENAME操作に対応するバックワードファイル操作生成規則を特定する。その後、バックワードログ生成部132は、特定したバックワードファイル操作生成規則に従って、オペランド「移動元ディレクトリY」、「移動元ファイルB」、「移動先ディレクトリX」及び「移動先ファイルA」を有するバックワードRENAME操作を生成する。
図21は、一実施例によるRMDIR操作に対応するバックワードファイル操作生成処理を示すフロー図である。
S200において、ログ適用部124が、ログ読み込み部126により読み込まれたフォワードファイル操作がオペランド「削除ディレクトリX」を有するRMDIR操作であると特定し、バックワードログ生成部132に当該フォワードRMDIR操作を通知する。この通知に応答して、S300において、バックワードログ生成部132は、RMDIR操作に対応するバックワードファイル操作生成処理を開始する。
S370において、バックワードログ生成部132は、受け付けたRMDIR操作がオペランド「削除ディレクトリX」を有することを特定する。
S372において、バックワードログ生成部132は、補助記憶装置68に格納されているバックワードファイル操作生成規則情報を参照して、このフォワードRMDIR操作に対応するバックワードファイル操作生成規則を特定する。その後、バックワードログ生成部132は、特定したバックワードファイル操作生成規則に従って、オペランド「作成ディレクトリX」を有するバックワードMKDIR操作を生成する。
図22は、一実施例によるSETATTR操作に対応するバックワードファイル操作生成処理を示すフロー図である。
S200において、ログ適用部124が、ログ読み込み部126により読み込まれたフォワードファイル操作がオペランド「属性変更ファイル格納ディレクトリX」と、「属性変更ファイルA」と、「属性Q」とを有するSETATTR操作であると特定し、バックワードログ生成部132に当該SETATTR操作を通知する。この通知に応答して、S300において、バックワードログ生成部132は、SETATTR操作に対応するバックワードファイル操作生成処理を開始する。
S380において、バックワードログ生成部132は、受け付けたSETATTR操作がオペランド「属性変更ファイル格納ディレクトリX」と、「属性変更ファイルA」と、「属性Q」とを有することを特定する。
S382において、バックワードログ生成部132は、属性Qと置換されるファイルAのもとの属性Pを決定し、ディスク制御部128を利用して、バックワードログディスク46に格納する。
S384において、バックワードログ生成部132は、補助記憶装置68に格納されているバックワードファイル操作生成規則情報を参照して、このフォワードSETATTR操作に対応するバックワードファイル操作生成規則を特定する。その後、バックワードログ生成部132は、特定したバックワードファイル操作生成規則に従って、オペランド「属性変更ファイル格納ディレクトリX」と、「属性変更ファイルA」と、「属性P」とを有するSETATTR操作を生成する。
図23を参照して、一実施例による生成されたバックワードログによる復元処理が説明される。図23は、一実施例による生成されたバックワードログによる復元処理を示すフロー図である。
バックグラウンド処理コンポーネント120が、セカンダリストレージ42にバックアップされている現在のデータにバックワードログを適用するよう指示されると、バックワードログによる復元処理はスタートする。
S500において、ログ適用部124は、ログ読み込み部126にバックワードログディスク46からバックワードログを取得させる。その後、ログ読み込み部126は、バックワードログに記録されている各バックワードファイル操作をその生成順とは逆順に読み込む。すなわち、ログ読み込み部126は、バックワードログに記録されている各バックワードファイル操作を、対応するフォワードログに記録されている各フォワードファイル操作の適用順とは逆順に読み込む。
S600において、ログ適用部124は、読み込んだバックワードファイル操作をセカンダリストレージ42にバックアップされているデータに適用する。
S700において、ログ適用部124は、取得したバックワードログに未適用のバックワードファイル操作があるか判断する。遡りたいチェックポイントに対応するバックワードファイル操作までのすべてのバックワードファイル操作が適用されている場合(S700:YES)、当該復元処理は終了される。他方、バックワードログに未適用のバックワードファイル操作がある場合(S700:NO)、S500に移行して、次のバックワードファイル操作に対して上記処理が繰り返される。
以上、本発明の実施例について詳述したが、本発明は上述した特定の実施例に限定されるものでなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形及び変更が可能である。
以上の説明に関し、さらに以下の項を開示する。
(付記1)
ストレージに格納されているファイル群に順次適用された各フォワードファイル操作を適用順に記録したフォワードログを取得するステップと、
前記取得したフォワードログに記録されている各フォワードファイル操作を前記適用順に抽出するステップと、
各フォワードファイル操作に関連付けされたバックワードファイル操作生成規則を含むバックワードファイル操作生成規則情報から、前記抽出したフォワードファイル操作に関連付けされたバックワードファイル操作生成規則を特定するステップと、
前記特定したバックワードファイル操作生成規則に従って、前記抽出したフォワードファイル操作が適用された適用後のファイルから適用前のファイルを復元するバックワードファイル操作を生成するステップと、
前記生成したバックワードファイル操作を生成順にバックワードログに記録するステップと、
前記抽出したフォワードファイル操作を前記適用前のファイルに適用するステップと、
前記生成されたバックワードログの各バックワードファイル操作を前記生成順とは逆順に順次読み込み、前記適用後のファイルに対して前記読み込んだバックワードファイル操作を適用して、適用前のファイルを復元するステップと、
をコンピュータに実行させるコンピュータプログラム。
(付記2)
前記フォワードファイル操作がファイルを削除するファイル操作である場合、前記適用前のファイルを一時的に格納するステップをさらにコンピュータに実行させる、付記1記載のコンピュータプログラム。
(付記3)
前記フォワードファイル操作及び前記バックワードファイル操作は、CREATE、WRITE、REMOVE、RECOVER、LINK、MKDIR、RENAME、RMDIR、SETATTRの各ファイル操作を含む、付記1又は2記載のコンピュータプログラム。
(付記4)
ストレージに格納されているファイル群に順次適用された各フォワードファイル操作を適用順に記録したフォワードログを取得する手段と、
前記取得したフォワードログに記録されている各フォワードファイル操作を前記適用順に抽出する手段と、
各フォワードファイル操作に関連付けされたバックワードファイル操作生成規則を含むバックワードファイル操作生成規則情報から、前記抽出したフォワードファイル操作に関連付けされたバックワードファイル操作生成規則を特定する手段と、
前記特定したバックワードファイル操作生成規則に従って、前記抽出したフォワードファイル操作が適用された適用後のファイルから適用前のファイルを復元するバックワードファイル操作を生成する手段と、
前記生成したバックワードファイル操作を生成順にバックワードログに記録する手段と、
前記抽出したフォワードファイル操作を前記適用前のファイルに適用する手段と、
前記生成されたバックワードログの各バックワードファイル操作を前記生成順とは逆順に順次読み込み、前記適用後のファイルに対して前記読み込んだバックワードファイル操作を適用して、適用前のファイルを復元する手段と、
を有する装置。
(付記5)
ストレージに格納されているファイル群に順次適用された各フォワードファイル操作を適用順に記録したフォワードログを取得するステップと、
前記取得したフォワードログに記録されている各フォワードファイル操作を前記適用順に抽出するステップと、
各フォワードファイル操作に関連付けされたバックワードファイル操作生成規則を含むバックワードファイル操作生成規則情報から、前記抽出したフォワードファイル操作に関連付けされたバックワードファイル操作生成規則を特定するステップと、
前記特定したバックワードファイル操作生成規則に従って、前記抽出したフォワードファイル操作が適用された適用後のファイルから適用前のファイルを復元するバックワードファイル操作を生成するステップと、
前記生成したバックワードファイル操作を生成順にバックワードログに記録するステップと、
前記抽出したフォワードファイル操作を前記適用前のファイルに適用するステップと、
前記生成されたバックワードログの各バックワードファイル操作を前記生成順とは逆順に順次読み込み、前記適用後のファイルに対して前記読み込んだバックワードファイル操作を適用して、適用前のファイルを復元するステップと、を有する方法。
(付記6)
ファイル群を有するプライマリストレージと、前記ファイル群にフォワードファイル操作を適用するプライマリサーバとを有するプライマリサイトと、
ネットワークを介し前記プライマリサイトに接続され、前記ファイル群が複製されたセカンダリストレージと、前記複製されたファイル群に前記プライマリサイトから転送されたフォワードファイル操作を適用するセカンダリサーバとを有するセカンダリサイトと、
を有する情報システムであって、
前記セカンダリサイトは、
前記プライマリストレージに格納されているファイル群に順次適用された各フォワードファイル操作を適用順に記録したフォワードログを前記プライマリサイトから前記ネットワークを介し取得する手段と、
前記取得したフォワードログに記録されている各フォワードファイル操作を前記適用順に抽出する手段と、
各フォワードファイル操作に関連付けされたバックワードファイル操作生成規則を含むバックワードファイル操作生成規則情報から、前記抽出したフォワードファイル操作に関連付けされたバックワードファイル操作生成規則を特定する手段と、
前記特定したバックワードファイル操作生成規則に従って、前記抽出したフォワードファイル操作が適用された適用後のファイルから適用前のファイルを復元するバックワードファイル操作を生成する手段と、
前記生成したバックワードファイル操作を生成順にバックワードログに記録する手段と、
前記抽出したフォワードファイル操作を前記適用前のファイルに適用する手段と、
前記生成されたバックワードログの各バックワードファイル操作を前記生成順とは逆順に順次読み込み、前記適用後のファイルに対して前記読み込んだバックワードファイル操作を適用して、適用前のファイルを復元する手段と、
を有する情報システム。