(57)【要約】【課題】ログ適用後のデータから過去の任意の時点のデータに遡ることを可能にする技術を提供すること。【解決手段】フォワードログを取得するステップと、取得したフォワードログのフォワードファイル操作を抽出するステップと、フォワードファイル操作に係るバックワードファイル操作生成規則を特定するステップと、特定したバックワードファイル操作生成規則に従ってフォワードファイル操作適用後のファイルから適用前のファイルを復元するバックワードファイル操作を生成するステップと、生成したバックワードファイル操作をバックワードログに記録するステップと、フォワードファイル操作を適用前のファイルに適用するステップと、適用後のファイルに対してバックワードファイル操作を適用して適用前のファイルを復元するステップとをコンピュータに実行させるコンピュータプログラムが提供される。【選択図】図１
2010282586.tif 000002
【特許請求の範囲】
【請求項１】
ストレージに格納されているファイル群に順次適用された各フォワードファイル操作を適用順に記録したフォワードログを取得するステップと、
前記取得したフォワードログに記録されている各フォワードファイル操作を前記適用順に抽出するステップと、
各フォワードファイル操作に関連付けされたバックワードファイル操作生成規則を含むバックワードファイル操作生成規則情報から、前記抽出したフォワードファイル操作に関連付けされたバックワードファイル操作生成規則を特定するステップと、
前記特定したバックワードファイル操作生成規則に従って、前記抽出したフォワードファイル操作が適用された適用後のファイルから適用前のファイルを復元するバックワードファイル操作を生成するステップと、
前記生成したバックワードファイル操作を生成順にバックワードログに記録するステップと、
前記抽出したフォワードファイル操作を前記適用前のファイルに適用するステップと、
前記生成されたバックワードログの各バックワードファイル操作を前記生成順とは逆順に順次読み込み、前記適用後のファイルに対して前記読み込んだバックワードファイル操作を適用して、適用前のファイルを復元するステップと、
をコンピュータに実行させるコンピュータプログラム。
【請求項２】
前記フォワードファイル操作がファイルを削除するファイル操作である場合、前記適用前のファイルを一時的に格納するステップをさらにコンピュータに実行させる、請求項１記載のコンピュータプログラム。
【請求項３】
前記フォワードファイル操作及び前記バックワードファイル操作は、ＣＲＥＡＴＥ、ＷＲＩＴＥ、ＲＥＭＯＶＥ、ＲＥＣＯＶＥＲ、ＬＩＮＫ、ＭＫＤＩＲ、ＲＥＮＡＭＥ、ＲＭＤＩＲ、ＳＥＴＡＴＴＲの各ファイル操作を含む、請求項１又は２記載のコンピュータプログラム。
【請求項４】
ストレージに格納されているファイル群に順次適用された各フォワードファイル操作を適用順に記録したフォワードログを取得する手段と、
前記取得したフォワードログに記録されている各フォワードファイル操作を前記適用順に抽出する手段と、
各フォワードファイル操作に関連付けされたバックワードファイル操作生成規則を含むバックワードファイル操作生成規則情報から、前記抽出したフォワードファイル操作に関連付けされたバックワードファイル操作生成規則を特定する手段と、
前記特定したバックワードファイル操作生成規則に従って、前記抽出したフォワードファイル操作が適用された適用後のファイルから適用前のファイルを復元するバックワードファイル操作を生成する手段と、
前記生成したバックワードファイル操作を生成順にバックワードログに記録する手段と、
前記抽出したフォワードファイル操作を前記適用前のファイルに適用する手段と、
前記生成されたバックワードログの各バックワードファイル操作を前記生成順とは逆順に順次読み込み、前記適用後のファイルに対して前記読み込んだバックワードファイル操作を適用して、適用前のファイルを復元する手段と、
を有する装置。
【請求項５】
ストレージに格納されているファイル群に順次適用された各フォワードファイル操作を適用順に記録したフォワードログを取得するステップと、
前記取得したフォワードログに記録されている各フォワードファイル操作を前記適用順に抽出するステップと、
各フォワードファイル操作に関連付けされたバックワードファイル操作生成規則を含むバックワードファイル操作生成規則情報から、前記抽出したフォワードファイル操作に関連付けされたバックワードファイル操作生成規則を特定するステップと、
前記特定したバックワードファイル操作生成規則に従って、前記抽出したフォワードファイル操作が適用された適用後のファイルから適用前のファイルを復元するバックワードファイル操作を生成するステップと、
前記生成したバックワードファイル操作を生成順にバックワードログに記録するステップと、
前記抽出したフォワードファイル操作を前記適用前のファイルに適用するステップと、
前記生成されたバックワードログの各バックワードファイル操作を前記生成順とは逆順に順次読み込み、前記適用後のファイルに対して前記読み込んだバックワードファイル操作を適用して、適用前のファイルを復元するステップと、を有する方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファイル管理装置、ファイル管理方法、ファイル管理プログラム及び情報システムに関する。
【背景技術】
【０００２】
近年、コンピュータは、私たちの日常生活や企業の業務などにおいて不可欠なものとなっている。このため、予測不可能な災害などによってコンピュータシステムが被害を受けた場合に、コンピュータシステムを適切かつ迅速に回復させるためのディザスタリカバリ（ＤＲ）技術が重要となる。
【０００３】
典型的なディザスタリカバリ技術では、ある時点（チェックポイント）の業務データが、当該業務データに対して各種データ処理を実行するプライマリサイトから、プライマリサイトの遠隔に設けられたセカンダリサイトにバックアップされる。その後、プライマリサイトにおいて当該チェックポイントの業務データに対して各種ファイル操作が適用されると、当該ファイル操作を記録したログがセカンダリサイトに転送される。プライマリサイトにおける災害発生時には、セカンダリサイトにおいて、転送されたログの各ファイル操作がバックアップされた業務データに対して適用される。このようにして、セカンダリサイトにおいて、業務データを比較的新しい任意の状態へ復旧することができる。このようなディザスタリカバリ技術は、例えば、Ｄｏｕｂｌｅ−Ｔａｋｅ  Ｓｏｆｔｗａｒｅ社により製造販売されるＤｏｕｂｌｅ−Ｔａｋｅという製品などにより実現されていることが知られている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−１２１２１号公報
【特許文献２】特開平０４−１８４６４１号公報
【特許文献３】特開昭６０−１４２４４６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
このようなディザスタリカバリ技術では、バックアップされたあるチェックポイントの業務データから、当該チェックポイントより以前の業務データを復元することは原理的に不可能である。従って、できるだけ過去の時点の業務データまで遡ることを可能にするためには、そのような過去の時点の業務データがバックアップされる必要がある。しかしながら、この場合、現在の業務データを復元するためには、多数のファイル操作が適用される必要があり、業務データの復旧に要する時間が増大してしまう。
【０００６】
また、ログに記録されたファイル操作があるチェックポイントの業務データに適用された後、適用後の業務データから少し過去の時点の業務データに遡ることが所望されるケースがあるかもしれない。この場合、上記ディザスタリカバリ技術では、ログ適用前の業務データに対して、ログの最先のファイル操作から所望される時点までのファイル操作が再度適用されねばならない。
【０００７】
従って、ログ適用後のデータから過去の任意の時点のデータに効率的に遡ることを可能にする技術が所望される。
【課題を解決するための手段】
【０００８】
上記の課題を解決するために、ストレージに格納されているファイル群に順次適用された各フォワードファイル操作を適用順に記録したフォワードログを取得するステップと、前記取得したフォワードログに記録されている各フォワードファイル操作を前記適用順に抽出するステップと、各フォワードファイル操作に関連付けされたバックワードファイル操作生成規則を含むバックワードファイル操作生成規則情報から、前記抽出したフォワードファイル操作に関連付けされたバックワードファイル操作生成規則を特定するステップと、前記特定したバックワードファイル操作生成規則に従って、前記抽出したフォワードファイル操作が適用された適用後のファイルから適用前のファイルを復元するバックワードファイル操作を生成するステップと、前記生成したバックワードファイル操作を生成順にバックワードログに記録するステップと、前記抽出したフォワードファイル操作を前記適用前のファイルに適用するステップと、前記生成されたバックワードログの各バックワードファイル操作を前記生成順とは逆順に順次読み込み、前記適用後のファイルに対して前記読み込んだバックワードファイル操作を適用して、適用前のファイルを復元するステップと、をコンピュータに実行させるコンピュータプログラムが提供される。
【発明の効果】
【０００９】
本開示の構成は、ログ適用後のデータから過去の任意の時点のデータに効率的に遡ることを可能にする。
【図面の簡単な説明】
【００１０】
【図１】図１は、一実施例による情報システムの一例となる構成を示す。
【図２】図２は、一実施例によるサーバの一例となるハードウェア構成を示す。
【図３】図３は、一実施例によるプライマリエージェントの一例となる機能的構成を示す。
【図４】図４は、一実施例によるセカンダリエージェントの一例となる機能的構成を示す。
【図５】図５は、一実施例によるＣＲＥＡＴＥ操作に対応するバックワードファイル操作生成規則を示す概念図である。
【図６】図６は、一実施例によるＷＲＩＴＥ操作に対応するバックワードファイル操作生成規則を示す概念図である。
【図７】図７は、一実施例によるＲＥＭＯＶＥ操作に対応するバックワードファイル操作生成規則を示す概念図である。
【図８】図８は、一実施例によるＬＩＮＫ操作に対応するバックワードファイル操作生成規則を示す概念図である。
【図９】図９は、一実施例によるＭＫＤＩＲ操作に対応するバックワードファイル操作生成規則を示す概念図である。
【図１０】図１０は、一実施例によるＲＥＮＡＭＥ操作に対応するバックワードファイル操作生成規則を示す概念図である。
【図１１】図１１は、一実施例によるＲＭＤＩＲ操作に対応するバックワードファイル操作生成規則を示す概念図である。
【図１２】図１２は、一実施例によるＳＥＴＡＴＴＲ操作に対応するバックワードファイル操作生成規則を示す概念図である。
【図１３】図１３は、一実施例によるフォワードログの一例となるデータ構造と対応するバックワードログの一例となるデータ構造とを示す。
【図１４】図１４は、一実施例によるバックワードログ生成処理を示すフロー図である。
【図１５】図１５は、一実施例によるＣＲＥＡＴＥ操作に対応するバックワードファイル操作生成処理を示すフロー図である。
【図１６】図１６は、一実施例によるＷＲＩＴＥ操作に対応するバックワードファイル操作生成処理を示すフロー図である。
【図１７】図１７は、一実施例によるＲＥＭＯＶＥ操作に対応するバックワードファイル操作生成処理を示すフロー図である。
【図１８】図１８は、一実施例によるＬＩＮＫ操作に対応するバックワードファイル操作生成処理を示すフロー図である。
【図１９】図１９は、一実施例によるＭＫＤＩＲ操作に対応するバックワードファイル操作生成処理を示すフロー図である。
【図２０】図２０は、一実施例によるＲＥＮＡＭＥ操作に対応するバックワードファイル操作生成処理を示すフロー図である。
【図２１】図２１は、一実施例によるＲＭＤＩＲ操作に対応するバックワードファイル操作生成処理を示すフロー図である。
【図２２】図２２は、一実施例によるＳＥＴＡＴＴＲ操作に対応するバックワードファイル操作生成処理を示すフロー図である。
【図２３】図２３は、一実施例による生成されたバックワードログによる復元処理を示すフロー図である。
【発明を実施するための形態】
【００１１】
以下、各実施例が添付した図面を参照して説明される。
【００１２】
図１を参照して、一実施例による情報システムが説明される。図１は、一実施例による情報システムの一例となる構成を示す。
【００１３】
情報システム１０は、ネットワーク５０を介し互いに接続されるプライマリサイト３０とセカンダリサイト４０とを有する。
【００１４】
プライマリサイト３０は、典型的には、情報システム１０において運用される業務データに対する各種処理が要求されると、要求された処理を当該業務データに対して実行する業務サイトとして機能する。プライマリサイト３０は、プライマリストレージ３２とプライマリ（業務）サーバ３４とを有する。プライマリストレージ３２は、情報システム１０において処理される業務データを含む各種データを格納する。プライマリサーバ３４は、各種アプリケーションを使用して、プライマリストレージ３２に格納されているデータに対して各種処理を実行する。
【００１５】
セカンダリサイト４０は、典型的には、プライマリサイト３０から遠隔に設けられ、災害発生によりプライマリサイト３０が被害を受けた際に、プライマリサイト３０の代替サイトとして機能する。セカンダリサイト４０は、セカンダリストレージ４２と、フォワードログディスク４４と、バックワードログディスク４６と、セカンダリサーバ４８とを有する。
【００１６】
セカンダリストレージ４２には、プライマリストレージ３２におけるある時点のデータ、すなわち、あるチェックポイントのデータがプライマリサイト３０から提供されている。さらに、プライマリサイト３０からネットワーク５０を介し転送され、フォワードログディスク４４に格納されたフォワードログの各ファイル操作（ＣＲＥＡＴＥ，ＷＲＩＴＥ，ＲＥＭＯＶＥなど）が、セカンダリストレージ４２のデータに適用される。
【００１７】
フォワードログディスク４４は、ネットワーク５０を介しプライマリサイト３０からセカンダリサイト４０に転送された各種ファイル操作（フォワードファイル操作）をフォワードログとして格納する。このフォワードログは、後述されるように、プライマリストレージ３２に格納されている各ファイルに順次適用された各ファイル操作をその適用順に先頭から記録するものであるかもしれない。
【００１８】
バックワードログディスク４６は、フォワードログディスク４４に格納されているフォワードログから、後述されるバックワードログ生成処理により生成されたバックワードログを格納する。さらに、バックワードログディスク４６は、このバックワードログ生成処理及び生成されたバックワードログを利用したデータ復元処理において使用されるデータを一時的に格納するかもしれない。
【００１９】
セカンダリサーバ４８は、各種アプリケーションを使用して、セカンダリストレージ４２に格納されているデータに対して各種処理を実行する。さらに、セカンダリサーバ４８は、後述されるようなセカンダリエージェントを使用して、バックワード生成処理及び生成されたバックワードログを利用したデータ復元処理を実行する。
【００２０】
ネットワーク５０は、プライマリサイト３０とセカンダリサイト４０とを接続する何れか適切なネットワークである。ネットワーク５０は、典型的には、専用回線ネットワークであるかもしれない。
【００２１】
図２を参照して、一実施例によるプライマリサーバ３４及びセカンダリサーバ４８のハードウェア構成が説明される。図２は、一実施例によるセカンダリサーバ４８の一例となるハードウェア構成を示す。なお、プライマリサーバ３４は、セカンダリサーバ４８と同様のハードウェア構成を有してもよいため、プライマリサーバ３４のハードウェア構成の説明は、省略される。
【００２２】
セカンダリサーバ４８は、互いにバスＢを介し接続されるＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）６０と、インタフェース装置６２と、ドライブ装置６４と、記憶媒体６６と、補助記憶装置６８と、メモリ装置７０とを有する。
【００２３】
セカンダリサーバ４８での処理を実現するプログラムは、ＣＤ−ＲＯＭなどの記憶媒体６６によって提供されてもよい。プログラムを記録した記憶媒体６６がドライブ装置６４に装着されると、プログラムが記憶媒体６６からドライブ装置６４を介して補助記憶装置６８にインストールされる。ハードディスクドライブ（ＨＤＤ）などの補助記憶装置６８は、インストールされたプログラムを格納する。
【００２４】
メモリ装置７０は、プログラムの起動指示に応答して、補助記憶装置６８からプログラムをロードする。ＣＰＵ６０は、メモリ装置７０にロードされたプログラムに従ってセカンダリサーバ４８に係る各種機能を実行する。インタフェース装置６２は、ネットワーク５０及びセカンダリサイトの他の構成要素に接続するためのインタフェースとして用いられる。
【００２５】
図３を参照して、一実施例によるプライマリサイト３０のプライマリエージェントの機能的構成が説明される。図３は、一実施例によるプライマリエージェントの一例となる機能的構成を示す。
【００２６】
プライマリエージェント８０は、プライマリサイト３０のプライマリサーバ３４によって実現される一機能である。具体的には、プライマリエージェント８０は、プライマリストレージ３２の業務データを含む各ファイルに対してプライマリサーバ３４により実行された各ファイル操作を検出する。プライマリエージェント８０は、これらのファイル操作（フォワードファイル操作）を含むフォワードログを生成し、ネットワーク５０を介しセカンダリサイト４０に送信する。
【００２７】
プライマリエージェント８０は、ファイルシステム要求インタセプト部８２と、フォワードログ生成部８４と、フォワードログ送信部８６と、通信制御部８８とを有する。これら各機能的要素は、メモリ装置７０にロードされたプログラムをＣＰＵ６０が実行することにより実現可能である。
【００２８】
ファイルシステム要求インタセプト部８２は、プライマリストレージ３２の業務データを含む各ファイルに対してプライマリサーバ３４により実行された各ファイル操作（ＣＲＥＡＴＥ，ＷＲＩＴＥ，ＲＥＭＯＶＥなど）を検出する。その後、ファイルシステム要求インタセプト部８２は、検出された各ファイル操作をフォワードログ生成部８４に提供する。
【００２９】
なお、本開示で使用される「ファイル操作」という用語は、ＣＲＥＡＴＥ，ＷＲＩＴＥ，ＲＥＭＯＶＥなどの各ファイルに対する各種操作と共に、プライマリストレージ３２におけるディレクトリに対する各種操作（ＭＫＤＩＲ，ＲＭＤＩＲなど）も含む。後述されるように、各ファイル操作は、当該ファイル操作に対して予め規定されている引数を有する。例えば、ＣＲＥＡＴＥ操作は、２つの引数「作成ファイル格納ディレクトリ」と「作成ファイル」とを有し、ＭＫＤＩＲ操作は、１つの引数「作成ディレクトリ」を有する。ファイルシステム要求インタセプト部８２は、各ファイル操作を当該ファイル操作に係る操作種別と引数の値（オペランド）とにより検出し、フォワードログ生成部８４に提供する。
【００３０】
フォワードログ生成部８４は、ファイルシステム要求インタセプト部８２から受け付けた操作種別及びオペランドを含む各ファイル操作からフォワードログを生成する。具体的には、フォワードログ生成部８４は、ファイルシステム要求インタセプト部８２から受け付けた各ファイル操作を、プライマリサーバ３４によるプライマリストレージ３２の各ファイルへの各ファイル操作の適用順にフォワードログに記録する。記録されたフォワードログは、典型的には、プライマリサーバ３４の補助記憶装置６８に格納されるかもしれない。その後、フォワードログ生成部８４は、生成されたフォワードログをフォワードログ送信部８６に提供する。
【００３１】
フォワードログ生成部８４は、補助記憶装置６８に格納されているフォワードログを何れか適当なタイミングでフォワードログ送信部８６に提供してもよい。すなわち、フォワードログ生成部８４は、ファイルシステム要求インタセプト部８２からファイル操作を受け付ける毎に、受け付けたファイル操作を含むフォワードログを生成し、フォワードログ送信部８６に提供してもよい。あるいは、フォワードログ生成部８４は、ファイルシステム要求インタセプト部８２から複数のファイル操作を受け付け、これら複数のファイル操作を含むフォワードログを生成し、フォワードログ送信部８６に提供してもよい。
【００３２】
一実施例では、フォワードログ生成部８４は、受け付けたファイル操作の個数を計数するカウンタ（図示せず）を有してもよい。この場合、フォワードログ生成部８４は、ファイルシステム要求インタセプト部８２から所定数のファイル操作を受け付けると、これら所定数のファイル操作を含むフォワードログを生成し、フォワードログ送信部８６に提供してもよい。
【００３３】
他の実施例では、フォワードログ生成部８４は、タイマ（図示せず）を有してもよい。この場合、フォワードログ生成部８４は、ファイルシステム要求インタセプト部８２から所定期間内に受け付けたファイル操作を含むフォワードログを生成し、フォワードログ送信部８６に提供してもよい。上記何れの実施例においても、フォワードログは、各ファイル操作の適用順が維持されるように生成される必要があることに留意すべきである。
【００３４】
フォワードログ送信部８６は、フォワードログ生成部８４から受け付けたフォワードログをネットワーク５０を介しセカンダリサイト４０に送信するよう通信制御部８８に指示する。
【００３５】
通信制御部８８は、フォワードログ送信部８６から送信指示を受け付けると、受け付けたフォワードログを何れかの通信形式に従う電子データに変換し、ネットワーク５０を介しセカンダリサイト４０に送信する。さらに、この電子データは、必要に応じて圧縮や暗号化など適切な処理が施されてもよい。
【００３６】
図４を参照して、一実施例によるセカンダリサイト４０のセカンダリエージェントの機能的構成が説明される。図４は、一実施例によるセカンダリエージェントの一例となる機能的構成を示す。
【００３７】
セカンダリエージェント９０は、セカンダリサイト４０のセカンダリサーバ４８によって実現される一機能である。具体的には、セカンダリエージェント９０は、プライマリエージェント８０から受け付けたフォワードログをフォワードログディスク４４に格納する。フォワードログの適用指示に応答して、セカンダリエージェント９０は、フォワードログディスク４４のフォワードログから各ファイル操作（フォワードファイル操作）を抽出する。その後、セカンダリエージェント９０は、セカンダリストレージ４２にバックアップされているデータに各フォワードファイル操作を適用する。このフォワードファイル操作の適用の際、セカンダリエージェント９０は、所定の生成規則に従って、各フォワードファイル操作の適用後のファイルから適用前のファイルを復元するためのバックワードファイル操作を生成する。各バックワードファイル操作の生成後、セカンダリエージェント９０は、生成したバックワードファイル操作をバックワードログに生成順に記録する。
【００３８】
セカンダリエージェント９０は、フォワードログ受信時制御コンポーネント１００と、バックグラウンド処理コンポーネント１２０とを有する。これら各機能的要素は、ＣＰＵ６０がメモリ装置７０にロードされたプログラムを実行することにより実現可能である。
【００３９】
フォワードログ受信時制御コンポーネント１００は、プライマリサイト３０からフォワードログを受け付け、受け付けたフォワードログをフォワードログディスク４４に格納する。フォワードログ受信時制御コンポーネント１００は、通信制御部１０２と、フォワードログ受信部１０４と、フォワードログ保存部１０６と、ディスク制御部１０８とを有する。
【００４０】
通信制御部１０２は、プライマリサイト３０からネットワーク５０を介し電子データの形式により送信されたフォワードログを受信する。電子データを受信すると、通信制御部１０２は、通信形式に応じて受信した電子データを復号化し、復号化したデータをフォワードログ受信部１０４に提供する。
【００４１】
フォワードログ受信部１０４は、通信制御部１０２から復号化されたデータを受け付けると、当該データからフォワードログを抽出し、フォワードログ保存部１０６に提供する。
【００４２】
フォワードログ保存部１０６は、フォワードログ受信部１０４からフォワードログを受け付けると、当該フォワードログをフォワードログディスク４４に格納するようディスク制御部１０８に指示する。
【００４３】
ディスク制御部１０８は、フォワードログ保存部１０６からのフォワードログの格納指示に応答して、フォワードログディスク４４に当該フォワードログを格納する。
【００４４】
バックグラウンド処理コンポーネント１２０は、フォワードログの適用指示に応答して、バックグラウンド処理によりフォワードログディスク４４のフォワードログから各ファイル操作を抽出する。その後、バックグラウンド処理コンポーネント１２０は、セカンダリストレージ４２にバックアップされているデータに各フォワードファイル操作を適用する。このフォワードファイル操作の適用の際、バックグラウンド処理コンポーネント１２０は、バックワードファイル操作を生成し、生成したバックワードファイル操作をバックワードログに生成順に記録する。
【００４５】
バックグラウンド処理コンポーネント１２０は、バックグラウンド制御部１２２と、ログ適用部１２４と、ログ読み込み部１２６と、ディスク制御部１２８と、セカンダリストレージ更新部１３０と、バックワードログ生成部１３２と、更新前データ読み込み部１３４と、バックワードログ保存部１３６とを有する。
【００４６】
バックグラウンド制御部１２２は、バックグラウンド処理コンポーネント１２０がバックグラウンドで実行する各処理を制御する。バックグランド制御部１２２は、フォワードログの適用指示を受け付けると、セカンダリストレージ４２に格納されている各ファイルにフォワードログを適用するようログ適用部１２４に指示すると共に、適用されるフォワードログに対応するバックワードログを生成するようバックワードログ生成部１３２に指示する。さらに、バックグランド制御部１２２は、フォワードログ適用後の各ファイルに生成されたバックワードログを適用する指示を受け付けると、セカンダリストレージ４２に格納されている適用後の各ファイルにバックワードログを適用するようログ適用部１２４に指示する。
【００４７】
ログ適用部１２４は、バックグラウンド制御部１２２からのフォワードログ適用指示に応答して、ログ読み込み部１２６にフォワードログディスク４４に格納されているフォワードログを抽出するよう指示する。その後、ログ適用部１２４は、抽出したフォワードログの各ファイル操作（ＣＲＥＡＴＥ，ＷＲＩＴＥ，ＲＥＭＯＶＥ，ＭＫＤＩＲ，ＲＭＤＩＲなど）を適用順にセカンダリストレージ４２のデータに適用して、セカンダリストレージ更新部１３０にセカンダリストレージ４２に格納されている各ファイルを更新するよう指示する。例えば、フォワードログの各ファイル操作が、プライマリストレージ３２の各ファイルに対して適用された順にフォワードログの先頭から記述されている場合、ログ適用部１２４は、ログ読み込み部１２６により読み込まれたフォワードログの先頭から各ファイル操作を順次適用するようにしてもよい。
【００４８】
具体的には、ログ適用部１２４はまず、適用順のうち最先のファイル操作をフォワードログから抽出する。ログ適用部１２４は、抽出したファイル操作から、抽出したファイル操作の操作種別（ＣＲＥＡＴＥ，ＷＲＩＴＥ，ＲＥＭＯＶＥなど）と、当該操作種別に係る引数の各値（オペランド）とを特定する。その後、ログ適用部１２４は、特定された操作種別とオペランドとを含むファイル操作をバックワードログ生成部１３２に供給する。その後、ログ適用部１２４は、抽出したファイル操作をセカンダリストレージ４２に適用して、セカンダリストレージ更新部１３０にセカンダリストレージ４２の各ファイルを更新させる。
【００４９】
その後、ログ適用部１２４は、適用順のうち次に最先のファイル操作をフォワードログから抽出し、上記と同様の処理を実行する。以降、ログ適用部１２４は、フォワードログの他のファイル操作に対して上記処理を繰り返す。
【００５０】
ログ読み込み部１２６は、上述されるように、ログ適用部１２４からのフォワードログの読み込み指示に応答して、ディスク制御部１２８を介しフォワードログディスク４４に格納されているフォワードログを取得する。また、ログ読み込み部１２６は、ログ適用部１２４からのバックワードログの読み込み指示に応答して、ディスク制御部１２８を介しバックワードログディスク４６に格納されているバックワードログを取得する。
【００５１】
ディスク制御部１２８は、セカンダリストレージ４２、フォワードログディスク４４及びバックワードログディスク４６に格納されている各ファイル及びログを読み込み及び書き込みする。
【００５２】
セカンダリストレージ更新部１３０は、ログ適用部１２４からログ適用後の各ファイルによる更新指示を受け付けると、セカンダリストレージ４２の対応する適用前のファイルを適用後のファイルにより更新する。
【００５３】
バックワードログ生成部１３２は、ログ適用部１２４から各フォワードファイル操作を受け付けると、後述されるような補助記憶装置６８に格納されている所定のバックワードファイル操作生成規則情報を参照して、受け付けたフォワードファイル操作に対応するバックワードファイル操作を生成する。バックワードログ生成部１３２は、生成した各バックワードファイル操作を生成順にバックワードログに記録するようバックワードログ保存部１３６に指示する。
【００５４】
すなわち、ログ適用部１２４は、フォワードログから適用順に各フォワードファイル操作を順次読み込み、バックワードログ生成部１３２に読み込んだ各フォワードファイル操作を順次提供する。バックワードログ生成部１３２は、各フォワードログ操作を受け付けると、当該フォワードファイル操作に対応するバックワードファイル操作を順次生成し、生成順にバックワードログに記録する。従って、バックワードログに記録されている各バックワードファイル操作の順序（生成順）は、フォワードログに記録されている対応する各フォワードファイル操作の順序（適用順）と同じになる。
【００５５】
更新前データ読み込み部１３４は、後述されるＷＲＩＴＥ操作、ＲＥＭＯＶＥ操作、ＳＥＴＡＴＴＲ操作など、バックワードファイル操作を生成する際にフォワードファイル操作の適用前のもとのデータが保持される必要がある場合、この更新前のデータをディスク制御部１２８を介しセカンダリストレージ４２から読み込み、バックワードログディスク４６などに一時的に保持する。
【００５６】
バックワードログ保存部１３６は、生成したバックワードログをディスク制御部１２８を介しバックワードログディスク４６に格納する。
【００５７】
図５を参照して、一実施例によるＣＲＥＡＴＥ操作に対応するバックワードファイル操作生成規則が説明される。図５は、一実施例によるＣＲＥＡＴＥ操作に対応するバックワードファイル操作生成規則を示す概念図である。
【００５８】
典型的には、ＣＲＥＡＴＥ操作は、指定されたディレクトリに指定されたファイルを作成する操作である。すなわち、ＣＲＥＡＴＥ操作は、「作成ファイル格納ディレクトリ」と、「作成ファイル」とを引数として有する。
【００５９】
まず、図５の上側の図を参照して、フォワードＣＲＥＡＴＥ操作に対応するバックワードファイル操作の生成処理が説明される。図５の左上側及び右上側には、オペランド「作成ファイル格納ディレクトリＸ」と「作成ファイルＡ」とを有するフォワードＣＲＥＡＴＥ操作の適用前後のセカンダリストレージ４２が概略的に示される。
【００６０】
図５の左上側に示されるように、ログ適用部１２４によるフォワードＣＲＥＡＴＥ操作適用前、セカンダリストレージ４２はディレクトリＸを有している。ログ適用部１２４は、ログ読み込み部１２６を利用して、フォワードログディスク４４のフォワードログからフォワードＣＲＥＡＴＥ操作を抽出すると、抽出したフォワードＣＲＥＡＴＥ操作に係る操作種別「ＣＲＥＡＴＥ」と、これに係る２つのオペランド「作成ファイル格納ディレクトリＸ」及び「作成ファイルＡ」とを特定する。
【００６１】
操作種別とこれに係るオペランドを特定すると、ログ適用部１２４は、抽出したフォワードファイル操作がオペランド「作成ファイル格納ディレクトリＸ」と「作成ファイルＡ」を有するＣＲＥＡＴＥ操作であることをバックワードログ生成部１３２に通知する。
【００６２】
ログ適用部１２４からこの通知を受け付けると、バックワードログ生成部１３２は、補助記憶装置６８に格納されているバックワードファイル操作生成規則情報を参照して、フォワードＣＲＥＡＴＥ操作に対応するバックワードファイル操作を生成する。
【００６３】
具体的には、バックワードファイル操作生成規則情報は、オペランド「作成ファイル格納ディレクトリＤＲ」と「作成ファイルＦ」とを有するフォワードＣＲＥＡＴＥ操作から、オペランド「削除ファイル格納ディレクトリＤＲ」と「削除ファイルＦ」とを有するバックワードＲＥＭＯＶＥ操作を生成することを規定するバックワードファイル操作生成規則を有している。なお、このＲＥＭＯＶＥ操作は、セカンダリストレージ４２のディレクトリＤＲからファイルＦを削除する操作である。
【００６４】
図示された実施例では、バックワードログ生成部１３２は、上記バックワードファイル操作生成規則に従って、受け付けたフォワードＣＲＥＡＴＥ操作に対して、オペランド「削除ファイル格納ディレクトリＸ」と「削除ファイルＡ」とを有するバックワードＲＥＭＯＶＥ操作を生成する。その後、バックワードログ生成部１３２は、バックワードログ保存部１３６を利用して、生成したバックワードＲＥＭＯＶＥ操作をバックワードログディスク４６のバックワードログに生成順に記録する。
【００６５】
次に、図５の下側の図を参照して、フォワードＣＲＥＡＴＥ操作が適用された後のセカンダリストレージ４２に対して、対応するバックワードＲＥＭＯＶＥ操作を適用した復元処理が説明される。図５の左下側及び右下側には、オペランド「削除ファイル格納ディレクトリＸ」と「削除ファイルＡ」とを有するバックワードＲＥＭＯＶＥ操作の適用前後のセカンダリストレージ４２が概略的に示される。
【００６６】
図５の左下側には、フォワードＣＲＥＡＴＥ操作が適用された後のセカンダリストレージ４２（図５右上側）が示されている。復元処理において、ログ適用部１２４は、オペランド「削除ファイル格納ディレクトリＸ」と「削除ファイルＡ」とを有するバックワードＲＥＭＯＶＥ操作を、フォワードＣＲＥＡＴＥ操作適用後のセカンダリストレージ４２に適用する。当該バックワードＲＥＭＯＶＥ操作が適用されると、図５の右下側に示されるように、フォワード操作適用前のセカンダリストレージ４２（図５左上側）を復元することができる。
【００６７】
図６を参照して、一実施例によるＷＲＩＴＥ操作に対応するバックワードファイル操作生成規則が説明される。図６は、一実施例によるＷＲＩＴＥ操作に対応するバックワード操作生成規則を示す概念図である。
【００６８】
典型的には、ＷＲＩＴＥ操作は、指定されたディレクトリの指定されたファイルにおける指定されたデータを更新する操作である。すなわち、ＷＲＩＴＥ操作は、「更新ファイル格納ディレクトリ」と、「更新ファイル」と、「更新データ」とを引数として有する。
【００６９】
まず、図６の上側の図を参照して、フォワードＷＲＩＴＥ操作に対応するバックワードファイル操作の生成処理が説明される。図６の左上側及び右上側には、オペランド「更新ファイル格納ディレクトリＸ」と、「更新ファイルＡ」と、「更新データＴ」とを有するフォワードＷＲＩＴＥ操作の適用前後のセカンダリストレージ４２が概略的に示される。
【００７０】
図６の左上側に示されるように、ログ適用部１２４によるフォワードＷＲＩＴＥ操作適用前、セカンダリストレージ４２はディレクトリＸのファイルＡにデータＳを有している。ログ適用部１２４は、ログ読み込み部１２６を利用して、フォワードログディスク４４のフォワードログからフォワードＷＲＩＴＥ操作を抽出すると、抽出したフォワードＷＲＩＴＥ操作に係る操作種別「ＷＲＩＴＥ」と、これに係る３つのオペランド「更新ファイル格納ディレクトリＸ」、「更新ファイルＡ」及び「更新データＴ」を特定する。
【００７１】
操作種別とこれに係るオペランドを特定すると、ログ適用部１２４は、抽出したフォワードファイル操作がオペランド「更新ファイル格納ディレクトリＸ」と、「更新ファイルＡ」と、「更新データＴ」とを有するＷＲＩＴＥ操作であることをバックワードログ生成部１３２に通知する。
【００７２】
ログ適用部１２４からこの通知を受け付けると、バックワードログ生成部１３２は、補助記憶装置６８に格納されているバックワードファイル操作生成規則情報を参照して、フォワードＷＲＩＴＥ操作に対応するバックワードファイル操作を生成する。
【００７３】
具体的には、バックワードファイル操作生成規則情報は、オペランド「更新ファイル格納ディレクトリＤＲ」と「更新ファイルＦ」と「更新データＤ１」とを有するフォワードＷＲＩＴＥ操作から、オペランド「更新ファイル格納ディレクトリＤＲ」と、「更新ファイルＦ」と、「更新データＤ２」とを有するバックワードＷＲＩＴＥ操作を生成することを規定するバックワードファイル操作生成規則を有している。なお、「更新データＤ２」は、フォワードＷＲＩＴＥ操作適用前のもとのデータを表す。
【００７４】
図示された実施例では、バックワードログ生成部１３２は、上記バックワードファイル操作生成規則に従って、受け付けたフォワードＷＲＩＴＥ操作に対して、オペランド「更新ファイル格納ディレクトリＸ」と、「更新ファイルＡ」と、「更新データＳ」とを有するバックワードＷＲＩＴＥ操作を生成する。その後、バックワードログ生成部１３２は、バックワードログ保存部１３６を利用して、生成したバックワードＷＲＩＴＥ操作をバックワードログディスク４６のバックワードログに生成順に記録する。さらにバックワードログ生成部１３２は、ログ適用部１２４がセカンダリストレージ４２に上記フォワードＷＲＩＴＥ操作を適用する前に、更新前データ読み込み部１３４にセカンダリストレージ４２のもとのデータＳを読み込ませ、バックワードログディスク４６のバックワードログに格納させる。
【００７５】
バックワードＷＲＩＴＥ操作に係るもとのデータＳをバックワードログディスク４６に記録する際、データＳを含むもとのファイルＡ全体がバックワードログディスク４６に記録されてもよい。しかしながら、もとのデータＳはファイルＡの一部であるため、バックワードログディスク４６の格納容量を節約するため、実際に更新されるファイルＡのもとのデータＳのみがバックワードログディスク４６に格納されるようにしてもよい。この場合、更新データＳは、セカンダリストレージ４２における格納開始ブロック番号と、当該ブロックから格納終端ブロック番号までのオフセットなどにより指定されてもよい。
【００７６】
次に、図６の下側の図を参照して、フォワードＷＲＩＴＥ操作が適用された後のセカンダリストレージ４２に対して、対応するバックワードＷＲＩＴＥ操作を適用した復元処理が説明される。図６の左下側及び右下側には、オペランド「更新ファイル格納ディレクトリＸ」と、「更新ファイルＡ」と、「更新データＳ」とを有するバックワードＷＲＩＴＥ操作の適用前後のセカンダリストレージ４２が概略的に示される。
【００７７】
図６の左下側には、フォワードＷＲＩＴＥ操作が適用された後のセカンダリストレージ４２（図６右上側）が示されている。復元処理において、ログ適用部１２４は、オペランド「更新ファイル格納ディレクトリＸ」と、「更新ファイルＡ」と、「更新データＳ」とを有するバックワードＷＲＩＴＥ操作をフォワードＷＲＩＴＥ操作適用後のセカンダリストレージ４２に適用する。当該バックワードＷＲＩＴＥ操作が適用されると、図６右下側に示されるように、フォワード操作適用前のセカンダリストレージ４２（図６左上側）を復元することができる。
【００７８】
図７を参照して、一実施例によるＲＥＭＯＶＥ操作に対応するバックワードファイル操作生成規則が説明される。図７は、一実施例によるＲＥＭＯＶＥ操作に対応するバックワード操作生成規則を示す概念図である。
【００７９】
上述したように、典型的には、ＲＥＭＯＶＥ操作は、指定されたディレクトリの指定されたファイルを削除する操作である。すなわち、ＲＥＭＯＶＥ操作は、「削除ファイル格納ディレクトリ」と、「削除ファイル」とを引数として有する。
【００８０】
まず、図７の上側の図を参照して、フォワードＲＥＭＯＶＥ操作に対応するバックワードファイル操作の生成処理が説明される。図７の左上側及び右上側には、オペランド「削除ファイル格納ディレクトリＸ」と、「削除ファイルＡ」とを有するフォワードＲＥＭＯＶＥ操作の適用前後のセカンダリストレージ４２が概略的に示される。
【００８１】
図７の左上側に示されるように、ログ適用部１２４によるフォワードＲＥＭＯＶＥ操作適用前、セカンダリストレージ４２はディレクトリＸにファイルＡを有している。ログ適用部１２４は、ログ読み込み部１２６を利用して、フォワードログディスク４４のフォワードログからフォワードＲＥＭＯＶＥ操作を抽出すると、抽出したフォワードＲＥＭＯＶＥ操作に係る操作種別「ＲＥＭＯＶＥ」と、これに係る２つのオペランド「削除ファイル格納ディレクトリＸ」及び「削除ファイルＡ」とを特定する。
【００８２】
操作種別とこれに係るオペランドを特定すると、ログ適用部１２４は、抽出したフォワードファイル操作がオペランド「削除ファイル格納ディレクトリＸ」と、「削除ファイルＡ」とを有するＲＥＭＯＶＥ操作であることをバックワードログ生成部１３２に通知する。
【００８３】
ログ適用部１２４からこの通知を受け付けると、バックワードログ生成部１３２は、補助記憶装置６８に格納されているバックワードファイル操作生成規則情報を参照して、フォワードＲＥＭＯＶＥ操作に対応するバックワードファイル操作を生成する。
【００８４】
具体的には、バックワードファイル操作生成規則情報は、オペランド「削除ファイル格納ディレクトリＤＲ」と「削除ファイルＦ」とを有するフォワードＲＥＭＯＶＥ操作から、オペランド「復元ファイル格納ディレクトリＤＲ」、「復元ファイルＦ」及び「削除ファイルＦ１」を有するＲＥＣＯＶＥＲ操作、すなわち、４つのオペランド「移動元ディレクトリＧ」、「移動元ファイルＦ１」、「移動先ディレクトリＤＲ」及び「移動先ファイルＦ」を有するバックワードＲＥＮＡＭＥ操作を生成することを規定するバックワードファイル操作生成規則を有している。ここで、ディレクトリＧは、一時的にファイルＦ１を格納するための特殊なディレクトリである。
【００８５】
なお、このＲＥＣＯＶＥＲ操作は、セカンダリストレージ４２のディレクトリＧのファイルＦ１を、ディレクトリＤＲにファイルＦとして復元する操作である。また、ＲＥＣＯＶＥＲ操作と等価的であるが、このＲＥＮＡＭＥ操作は、セカンダリストレージ４２のディレクトリＧのファイルＦ１をディレクトリＤＲにファイルＦとして移動する操作である。
【００８６】
ログ適用部１２４は、オペランド「削除格納ファイルディレクトリＤＲ」及び「削除ファイルＦ」を有するフォワードＲＥＭＯＶＥ操作を適用する際、実際には当該ＲＥＭＯＶＥ操作を実行せず、オペランド「移動元ディレクトリＤＲ」、「移動元ファイルＦ」、「移動先ディレクトリＧ」及び「移動先ファイルＦ１」を有するフォワードＲＥＮＡＭＥ操作を実行する。
【００８７】
なお、同様にもとのデータＳが一時的に保持されるフォワードＷＲＩＴＥ操作に係るバックワードファイル操作生成処理では、ＷＲＩＴＥ操作適用前のもとのデータＳはバックログディスク４６に格納された。しかしながら、フォワードＲＥＭＯＶＥ操作に係るバックワードファイル操作生成処理では、上述のようにフォワードＲＥＭＯＶＥ操作適用前のもとのファイルＦは、セカンダリストレージ４２内の特殊なディレクトリＧに格納される。これは、一般にファイルＦはデータＳよりデータ量が大きいため、ファイルＦをバックログディスク４６に格納することは、バックログディスク４６の効率的な使用の観点から望ましくないためである。しかしながら、バックログディスク４６が十分な格納容量を有する他の実施例では、ファイルＦをバックログディスク４６に格納してもよい。すなわち、フォワードＲＥＭＯＶＥ操作に対応するバックワードＲＥＮＡＭＥ操作を適用する際、フォワードＲＥＭＯＶＥ操作により削除されるファイルＦが何れかに維持されていればよい。
【００８８】
図示された実施例では、バックワードログ生成部１３２は、上記バックワードファイル操作生成規則に従って、受け付けたフォワードＲＥＭＯＶＥ操作に対して、オペランド「復元ファイル格納ディレクトリＸ」、「復元ファイルＡ」及び「削除ファイルＲ」を有するＲＥＣＯＶＥＲ操作、又はオペランド「移動元ディレクトリＧ」、「移動元ファイルＲ」、「移動先ディレクトリＸ」及び「移動先ファイルＡ」を有するバックワードＲＥＮＡＭＥ操作を生成する。その後、バックワードログ生成部１３２は、バックワードログ保存部１３６を利用して、生成したバックワードＲＥＣＯＶＥＲ操作又はバックワードＲＥＮＡＭＥ操作をバックワードログディスク４６のバックワードログに生成順に記録する。
【００８９】
次に、図７の下側の図を参照して、フォワードＲＥＭＯＶＥ操作、すなわち、上述したフォワードＲＥＮＡＭＥ操作が適用された後のセカンダリストレージ４２に対して、対応するバックワードＲＥＣＯＶＥＲ又はバックワードＲＥＮＡＭＥ操作を適用した復元処理が説明される。図７の左下側及び右下側には、オペランド「復元ファイル格納ディレクトリＸ」、「復元ファイルＡ」及び「削除ファイルＲ」を有するＲＥＣＯＶＥＲ操作、又はオペランド「移動元ディレクトリＧ」、「移動元ファイルＲ」、「移動先ディレクトリＸ」及び「移動先ファイルＡ」を有するバックワードＲＥＮＡＭＥ操作の適用前後のセカンダリストレージ４２が概略的に示される。
【００９０】
図７の左下側には、フォワードＲＥＭＯＶＥ操作、すなわち、フォワードＲＥＮＡＭＥ操作が適用された後のセカンダリストレージ４２（図７右上側）が示されている。復元処理において、ログ適用部１２４は、オペランド「復元ファイル格納ディレクトリＸ」、「復元ファイルＡ」及び「削除ファイルＲ」を有するＲＥＣＯＶＥＲ操作、又はオペランド「移動元ディレクトリＧ」、「移動元ファイルＲ」、「移動先ディレクトリＸ」及び「移動先ファイルＡ」を有するバックワードＲＥＮＡＭＥ操作をフォワードＲＥＮＡＭＥ操作適用後のセカンダリストレージ４２に適用する。当該バックワードＲＥＣＯＶＥＲ操作又はバックワードＲＥＮＡＭＥ操作が適用されると、図７の右下側に示されるように、フォワード操作適用前のセカンダリストレージ４２（図７左上側）を復元することができる。
【００９１】
図８を参照して、一実施例によるＬＩＮＫ操作に対応するバックワードファイル操作生成規則が説明される。図８は、一実施例によるＬＩＮＫ操作に対応するバックワード操作生成規則を示す概念図である。
【００９２】
典型的には、ＬＩＮＫ操作は、指定されたディレクトリの指定されたファイルに対して他の指定されたディレクトリをさらにリンクさせる操作である。具体的には、他の指定されたディレクトリに当該ファイルを指定するポインタ情報ファイルが作成される。すなわち、ＬＩＮＫ操作は、「リンク元ディレクトリ」と、「リンク元ファイル（ポインタ情報ファイル）」と、「リンク先ディレクトリ」と、「リンク先ファイル」とを引数として有する。
【００９３】
まず、図８の上側の図を参照して、フォワードＬＩＮＫ操作に対応するバックワードファイル操作の生成処理が説明される。図８の左上側及び右上側には、オペランド「リンク元ディレクトリＸ」と、「リンク元ファイルＡ」と、「リンク先ディレクトリＹ」と、「リンク先ファイルＢ」とを有するフォワードＬＩＮＫ操作の適用前後のセカンダリストレージ４２が概略的に示される。
【００９４】
図８の左上側に示されるように、ログ適用部１２４によるフォワードＬＩＮＫ操作適用前、セカンダリストレージ４２はディレクトリＹにファイルＢを有している。ログ適用部１２４は、ログ読み込み部１２６を利用して、フォワードログディスク４４のフォワードログからフォワードＬＩＮＫ操作を抽出すると、抽出したフォワードＬＩＮＫ操作に係る操作種別「ＬＩＮＫ」と、これに係る４つのオペランド「リンク元ディレクトリＸ」と、「リンク元ファイルＡ」と、「リンク先ディレクトリＹ」と、「リンク先ファイルＢ」とを特定する。
【００９５】
操作種別とこれに係るオペランドを特定すると、ログ適用部１２４は、抽出したフォワードファイル操作がオペランド「リンク元ディレクトリＸ」と、「リンク元ファイルＡ」と、「リンク先ディレクトリＹ」と、「リンク先ファイルＢ」とを有するフォワードＬＩＮＫ操作であることをバックワードログ生成部１３２に通知する。
【００９６】
ログ適用部１２４からこの通知を受け付けると、バックワードログ生成部１３２は、補助記憶装置６８に格納されているバックワードファイル操作生成規則情報を参照して、フォワードＬＩＮＫ操作に対応するバックワードファイル操作を生成する。
【００９７】
具体的には、バックワードファイル操作生成規則情報は、オペランド「リンク元ディレクトリＤＲ１」と、「リンク元ファイルＦ１」と、「リンク先ディレクトリＤＲ２」と、「リンク先ファイルＦ２」とを有するフォワードＬＩＮＫ操作から、オペランド「削除ファイル格納ディレクトリＤＲ１」と「削除ファイルＦ１」とを有するＲＥＭＯＶＥ操作を生成することを規定するバックワードファイル操作生成規則を有している。なお、ファイルＦ１は、上述したようなファイルＦ２を指定するディレクトリＤＲ１のポインタ情報ファイルである。このバックワードＲＥＭＯＶＥ操作では、このポイント情報ファイルを削除することによって、リンク元ディレクトリＤＲ１からリンク先ファイルＦ２へのリンクが解除される。
【００９８】
図示された実施例では、バックワードログ生成部１３２は、上記バックワードファイル操作生成規則に従って、受け付けたフォワードＬＩＮＫ操作に対して、オペランド「削除ファイル格納ディレクトリＸ」と「削除ファイルＡ」とを有するＲＥＭＯＶＥ操作を生成する。その後、バックワードログ生成部１３２は、バックワードログ保存部１３６を利用して、生成したバックワードＲＥＭＯＶＥ操作をバックワードログディスク４６のバックワードログに生成順に記録する。
【００９９】
次に、図８の下側の図を参照して、フォワードＬＩＮＫ操作が適用された後のセカンダリストレージ４２に対して、対応するバックワードＲＥＭＯＶＥ操作を適用した復元処理が説明される。図８の左下側及び右下側には、オペランド「削除ファイル格納ディレクトリＸ」と「削除ファイルＡ」とを有するバックワードＲＥＭＯＶＥ操作の適用前後のセカンダリストレージ４２が概略的に示される。
【０１００】
図８の左下側には、フォワードＬＩＮＫ操作が適用された後のセカンダリストレージ４２（図８右上側）が示されている。復元処理において、ログ適用部１２４は、オペランド「削除ファイル格納ディレクトリＸ」と「削除ファイルＡ」とを有するバックワードＲＥＭＯＶＥ操作をフォワードＬＩＮＫ操作適用後のセカンダリストレージ４２に適用する。当該バックワードＲＥＭＯＶＥ操作が適用されると、図８の右下側に示されるように、フォワード操作適用前のセカンダリストレージ４２（図８左上側）を復元することができる。
【０１０１】
図９を参照して、一実施例によるＭＫＤＩＲ操作に対応するバックワードファイル操作生成規則が説明される。図９は、一実施例によるＭＫＤＩＲ操作に対応するバックワードファイル操作生成規則を示す概念図である。
【０１０２】
典型的には、ＭＫＤＩＲ操作は、ストレージに指定されたディレクトリを作成する操作である。すなわち、ＭＫＤＩＲ操作は、「作成ディレクトリ」を引数として有する。
【０１０３】
まず、図９の上側の図を参照して、フォワードＭＫＤＩＲ操作に対応するバックワードファイル操作の生成処理が説明される。図９の左上側及び右上側には、オペランド「作成ディレクトリＸ」を有するフォワードＭＫＤＩＲ操作の適用前後のセカンダリストレージ４２が概略的に示される。
【０１０４】
図９の左上側に示されるように、ログ適用部１２４は、ログ読み込み部１２６を利用して、フォワードログディスク４４のフォワードログからフォワードＭＫＤＩＲ操作を抽出すると、抽出したフォワードＭＫＤＩＲ操作に係る操作種別「ＭＫＤＩＲ」と、これに係るオペランド「作成ディレクトリＸ」を特定する。
【０１０５】
操作種別とこれに係るオペランドを特定すると、ログ適用部１２４は、抽出したフォワードファイル操作がオペランド「作成ディレクトリＸ」を有するＭＫＤＩＲ操作であることをバックワードログ生成部１３２に通知する。
【０１０６】
ログ適用部１２４からこの通知を受け付けると、バックワードログ生成部１３２は、補助記憶装置６８に格納されているバックワードファイル操作生成規則情報を参照して、フォワードＭＫＤＩＲ操作に対応するバックワードファイル操作を生成する。
【０１０７】
具体的には、バックワードファイル操作生成規則情報は、オペランド「作成ディレクトリＤＲ」を有するフォワードＭＫＤＩＲ操作から、オペランド「削除ディレクトリＤＲ」を有するバックワードＲＭＤＩＲ操作を生成することを規定するバックワードファイル操作生成規則を有している。なお、このＲＭＤＩＲ操作は、セカンダリストレージ４２からディレクトリＤＲを削除する操作である。
【０１０８】
図示された実施例では、バックワードログ生成部１３２は、上記バックワードファイル操作生成規則に従って、受け付けたフォワードＭＫＤＩＲ操作に対して、オペランド「削除ディレクトリＸ」を有するバックワードＲＭＤＩＲ操作を生成する。その後、バックワードログ生成部１３２は、バックワードログ保存部１３６を利用して、生成したバックワードＲＭＤＩＲ操作をバックワードログディスク４６のバックワードログに生成順に記録する。
【０１０９】
次に、図９の下側の図を参照して、フォワードＭＫＤＩＲ操作が適用された後のセカンダリストレージ４２に対して、対応するバックワードＲＭＤＩＲ操作を適用した復元処理が説明される。図９の左下側及び右下側には、オペランド「削除ディレクトリＸ」を有するバックワードＲＭＤＩＲ操作の適用前後のセカンダリストレージ４２が概略的に示される。
【０１１０】
図９の左下側には、フォワードＭＫＤＩＲ操作が適用された後のセカンダリストレージ４２（図９右上側）が示されている。復元処理において、ログ適用部１２４は、オペランド「削除ディレクトリＸ」を有するバックワードＲＭＤＩＲ操作をフォワードＭＫＤＩＲ操作適用後のセカンダリストレージ４２に適用する。当該バックワードＲＭＤＩＲ操作が適用されると、図９の右下側に示されるように、フォワード操作適用前のセカンダリストレージ４２（図９左上側）を復元することができる。
【０１１１】
図１０を参照して、一実施例によるＲＥＮＡＭＥ操作に対応するバックワードファイル操作生成規則が説明される。図１０は、一実施例によるＲＥＮＡＭＥ操作に対応するバックワード操作生成規則を示す概念図である。
【０１１２】
上述されたように、典型的には、ＲＥＮＡＭＥ操作は、指定された移動元ディレクトリの移動元ファイルを、指定された移動先ディレクトリの移動先ファイルに移動する操作である。すなわち、ＲＥＮＡＭＥ操作は、「移動元ディレクトリ」と、「移動元ファイル」と、「移動先ディレクトリ」と、「移動先ファイル」とを引数として有する。なお、移動元ファイルと移動先ファイルは同じファイル名を有してもよい。この場合、移動元ファイルは、そのファイル名を維持したまま移動元ディレクトリから移動先ディレクトリに移動されることになる。また、移動元ディレクトリと移動先ディレクトリは同一であってもよい。この場合、移動元ファイルは、同一ディレクトリの内部で異なる移動先ファイルのファイル名に変更されることになる。
【０１１３】
まず、図１０の上側の図を参照して、フォワードＲＥＮＡＭＥ操作に対応するバックワードファイル操作の生成処理が説明される。図１０の左上側及び右上側には、オペランド「移動元ディレクトリＸ」と、「移動元ファイルＡ」と、「移動先ディレクトリＹ」と、「移動先ファイルＢ」とを有するフォワードＲＥＮＡＭＥ操作の適用前後のセカンダリストレージ４２が概略的に示される。
【０１１４】
図１０の左上側に示されるように、ログ適用部１２４によるフォワードＲＥＮＡＭＥ操作適用前、セカンダリストレージ４２はディレクトリＸにファイルＡを有している。ログ適用部１２４は、ログ読み込み部１２６を利用して、フォワードログディスク４４のフォワードログからフォワードＲＥＮＡＭＥ操作を抽出すると、抽出したフォワードＲＥＮＡＭＥ操作に係る操作種別「ＲＥＮＡＭＥ」と、これに係る４つのオペランド「移動元ディレクトリＸ」と、「移動元ファイルＡ」と、「移動先ディレクトリＹ」と、「移動先ファイルＢ」とを特定する。
【０１１５】
操作種別とこれに係るオペランドを特定すると、ログ適用部１２４は、抽出したフォワードファイル操作がオペランド「移動元ディレクトリＸ」と、「移動元ファイルＡ」と、「移動先ディレクトリＹ」と、「移動先ファイルＢ」とを有するフォワードＲＥＮＡＭＥ操作であることをバックワードログ生成部１３２に通知する。
【０１１６】
ログ適用部１２４からこの通知を受け付けると、バックワードログ生成部１３２は、補助記憶装置６８に格納されているバックワードファイル操作生成規則情報を参照して、フォワードＲＥＮＡＭＥ操作に対応するバックワードファイル操作を生成する。
【０１１７】
具体的には、バックワードファイル操作生成規則情報は、オペランド「移動元ディレクトリＤＲ１」と、「移動元ファイルＦ１」と、「移動先ディレクトリＤＲ２」と、「移動先ファイルＦ２」とを有するフォワードＲＥＮＡＭＥ操作から、オペランド「移動元ディレクトリＤＲ２」と、「移動元ファイルＦ２」と、「移動先ディレクトリＤＲ１」と、「移動先ファイルＦ１」とを有するバックワードＲＥＮＡＭＥ操作を生成することを規定するバックワードファイル操作生成規則を有している。
【０１１８】
図示された実施例では、バックワードログ生成部１３２は、上記バックワードファイル操作生成規則に従って、受け付けたフォワードＲＥＮＡＭＥ操作に対して、オペランド「移動元ディレクトリＹ」と、「移動元ファイルＢ」と、「移動先ディレクトリＸ」と、「移動先ファイルＡ」とを有するバックワードＲＥＮＡＭＥ操作を生成する。その後、バックワードログ生成部１３２は、バックワードログ保存部１３６を利用して、生成したバックワードＲＥＮＡＭＥ操作をバックワードログディスク４６のバックワードログに生成順に記録する。
【０１１９】
次に、図１０の下側の図を参照して、フォワードＲＥＮＡＭＥ操作が適用された後のセカンダリストレージ４２に対して、対応するバックワードＲＥＮＡＭＥ操作を適用した復元処理が説明される。図１０の左下側及び右下側には、オペランド「移動元ディレクトリＹ」と、「移動元ファイルＢ」と、「移動先ディレクトリＸ」と、「移動先ファイルＡ」とを有するバックワードＲＥＮＡＭＥ操作の適用前後のセカンダリストレージ４２が概略的に示される。
【０１２０】
図１０の左下側には、フォワードＲＥＮＡＭＥ操作が適用された後のセカンダリストレージ４２（図１０右上側）が示されている。復元処理において、ログ適用部１２４は、オペランド「移動元ディレクトリＹ」と、「移動元ファイルＢ」と、「移動先ディレクトリＸ」と、「移動先ファイルＡ」とを有するバックワードＲＥＮＡＭＥ操作をフォワードＲＥＮＡＭＥ操作適用後のセカンダリストレージ４２に適用する。当該バックワードＲＥＮＡＭＥ操作が適用されると、図１０の右下側に示されるように、フォワード操作適用前のセカンダリストレージ４２（図１０左上側）を復元することができる。
【０１２１】
図１１を参照して、一実施例によるＲＭＤＩＲ操作に対応するバックワードファイル操作生成規則が説明される。図１１は、一実施例によるＲＭＤＩＲ操作に対応するバックワードファイル操作生成規則を示す概念図である。
【０１２２】
上述されたように、典型的には、ＲＭＤＩＲ操作は、指定されたディレクトリをストレージから削除する操作である。すなわち、ＲＭＤＩＲ操作は、「削除ディレクトリ」を引数として有する。
【０１２３】
まず、図１１の上側の図を参照して、フォワードＲＭＤＩＲ操作に対応するバックワードファイル操作の生成処理が説明される。図１１の左上側及び右上側には、オペランド「削除ディレクトリＸ」を有するフォワードＲＭＤＩＲ操作の適用前後のセカンダリストレージ４２が概略的に示される。
【０１２４】
図１１の左上側に示されるように、ログ適用部１２４によるフォワードＲＭＤＩＲ操作適用前、セカンダリストレージ４２はディレクトリＸを有している。ログ適用部１２４は、ログ読み込み部１２６を利用して、フォワードログディスク４４のフォワードログからフォワードＲＭＤＩＲ操作を抽出すると、抽出したフォワードＲＭＤＩＲ操作に係る操作種別「ＲＭＤＩＲ」と、これに係るオペランド「削除ディレクトリＸ」を特定する。
【０１２５】
操作種別とこれに係るオペランドを特定すると、ログ適用部１２４は、抽出したフォワードファイル操作がオペランド「削除ディレクトリＸ」を有するＲＭＤＩＲ操作であることをバックワードログ生成部１３２に通知する。
【０１２６】
ログ適用部１２４からこの通知を受け付けると、バックワードログ生成部１３２は、補助記憶装置６８に格納されているバックワードファイル操作生成規則情報を参照して、フォワードＲＭＤＩＲ操作に対応するバックワードファイル操作を生成する。
【０１２７】
具体的には、バックワードファイル操作生成規則情報は、オペランド「削除ディレクトリＤＲ」を有するフォワードＲＭＤＩＲ操作から、オペランド「作成ディレクトリＤＲ」を有するバックワードＭＫＤＩＲ操作を生成することを規定するバックワードファイル操作生成規則を有している。
【０１２８】
図示された実施例では、バックワードログ生成部１３２は、上記バックワードファイル操作生成規則に従って、受け付けたフォワードＲＭＤＩＲ操作に対して、オペランド「作成ディレクトリＸ」を有するバックワードＭＫＤＩＲ操作を生成する。その後、バックワードログ生成部１３２は、バックワードログ保存部１３６を利用して、生成したバックワードＭＫＤＩＲ操作をバックワードログディスク４６のバックワードログに生成順に記録する。
【０１２９】
次に、図１１の下側の図を参照して、フォワードＲＭＤＩＲ操作が適用された後のセカンダリストレージ４２に対して、対応するバックワードＭＫＤＩＲ操作を適用した復元処理が説明される。図１１の左下側及び右下側には、オペランド「作成ディレクトリＸ」を有するバックワードＭＫＤＩＲ操作の適用前後のセカンダリストレージ４２が概略的に示される。
【０１３０】
図１１の左下側には、フォワードＲＭＤＩＲ操作が適用された後のセカンダリストレージ４２（図１１右上側）が示されている。復元処理において、ログ適用部１２４は、オペランド「作成ディレクトリＸ」を有するバックワードＭＫＤＩＲ操作をフォワードＲＭＤＩＲ操作適用後のセカンダリストレージ４２に適用する。当該バックワードＭＫＤＩＲ操作が適用されると、図１１の右下側に示されるように、フォワード操作適用前のセカンダリストレージ４２（図１１左上側）を復元することができる。
【０１３１】
図１２を参照して、一実施例によるＳＥＴＡＴＴＲ操作に対応するバックワードファイル操作生成規則が説明される。図１２は、一実施例によるＳＥＴＡＴＴＲ操作に対応するバックワード操作生成規則を示す概念図である。
【０１３２】
典型的には、ＳＥＴＡＴＴＲ操作は、指定されたディレクトリの指定されたファイルに係る属性を変更する操作である。すなわち、ＳＥＴＡＴＴＲ操作は、「属性変更ファイル格納ディレクトリ」と、「属性変更ファイル」と、「属性」とを引数として有する。
【０１３３】
まず、図１２の上側の図を参照して、フォワードＳＥＴＡＴＴＲ操作に対応するバックワードファイル操作の生成処理が説明される。図１２の左上側及び右上側には、オペランド「属性変更ファイル格納ディレクトリＸ」と、「属性変更ファイルＡ」と、「属性Ｑ」とを有するフォワードＳＥＴＡＴＴＲ操作の適用前後のストレージが概略的に示される。
【０１３４】
図１２の左上側に示されるように、ログ適用部１２４によるフォワードＳＥＴＡＴＴＲ操作適用前、セカンダリストレージ４２はディレクトリＸのファイルＡに係る属性Ｐを有している。ログ適用部１２４は、ログ読み込み部１２６を利用して、フォワードログディスク４４のフォワードログからフォワードＳＥＴＡＴＴＲ操作を抽出すると、抽出したフォワードＳＥＴＡＴＴＲ操作に係る操作種別「ＳＥＴＡＴＴＲ」と、これに係る３つのオペランド「属性変更ファイル格納ディレクトリＸ」、「属性変更ファイルＡ」及び「属性Ｑ」を特定する。
【０１３５】
操作種別とこれに係るオペランドを特定すると、ログ適用部１２４は、抽出したフォワードファイル操作がオペランド「属性変更ファイル格納ディレクトリＸ」、「属性変更ファイルＡ」及び「属性Ｑ」を有するＳＥＴＡＴＴＲ操作であることをバックワードログ生成部１３２に通知する。
【０１３６】
ログ適用部１２４からこの通知を受け付けると、バックワードログ生成部１３２は、補助記憶装置６８に格納されているバックワードファイル操作生成規則情報を参照して、フォワードＳＥＴＡＴＴＲ操作に対応するバックワードファイル操作を生成する。
【０１３７】
具体的には、バックワードファイル操作生成規則情報は、オペランド「属性変更ファイル格納ディレクトリＤＲ」、「属性変更ファイルＦ」及び「属性ＡＴ１」を有するＳＥＴＡＴＴＲ操作から、オペランド「属性変更ファイル格納ディレクトリＤＲ」、「属性変更ファイルＦ」及び「属性ＡＴ２」を有するバックワードＳＥＴＡＴＴＲ操作を生成することを規定するバックワードファイル操作生成規則を有している。なお、「属性ＡＴ２」は、フォワードＳＥＴＡＴＴＲ操作適用前のもとの属性を表す。
【０１３８】
図示された実施例では、バックワードログ生成部１３２は、上記バックワードファイル操作生成規則に従って、受け付けたフォワードＳＥＴＡＴＴＲ操作に対して、オペランド「属性変更ファイル格納ディレクトリＸ」、「属性変更ファイルＡ」及び「属性Ｐ」を有するバックワードＳＥＴＡＴＴＲ操作を生成する。その後、バックワードログ生成部１３２は、バックワードログ保存部１３６を利用して、生成したバックワードＳＥＴＡＴＴＲ操作をバックワードログディスク４６のバックワードログに生成順に記録する。さらにバックワードログ生成部１３２は、ログ適用部１２４がセカンダリストレージ４２に上記フォワードＳＥＴＡＴＴＲ操作を適用する前に、更新前データ読み込み部１３４を利用して、セカンダリストレージ４２のもとの属性Ｐをバックワードログディスク４６のバックワードログに格納する。
【０１３９】
次に、図１２の下側の図を参照して、フォワードＳＥＴＡＴＴＲ操作が適用された後のセカンダリストレージ４２に対して、対応するバックワードＳＥＴＡＴＴＲ操作を適用した復元処理が説明される。図１２の左下側及び右下側には、オペランド「属性変更ファイル格納ディレクトリＸ」、「属性変更ファイルＡ」及び「属性Ｐ」を有するバックワードＳＥＴＡＴＴＲ操作の適用前後のセカンダリストレージ４２が概略的に示される。
【０１４０】
図１２の左下側には、フォワードＳＥＴＡＴＴＲ操作が適用された後のセカンダリストレージ４２（図１２右上側）が示されている。復元処理において、ログ適用部１２４は、オペランド「属性変更ファイル格納ディレクトリＸ」、「属性変更ファイルＡ」及び「属性Ｐ」を有するバックワードＳＥＴＡＴＴＲ操作をフォワードＳＥＴＡＴＴＲ操作適用後のセカンダリストレージ４２に適用する。当該バックワードＳＥＴＡＴＴＲ操作が適用されると、図１２の右下側に示されるように、フォワード操作適用前のセカンダリストレージ４２（図１２左上側）を復元することができる。
【０１４１】
図１３を参照して、フォワードログと対応するバックワードログのデータ構造が説明される。図１３は、一実施例によるフォワードログの一例となるデータ構造と対応するバックワードログの一例となるデータ構造とを示す。
【０１４２】
図示されるように、フォワードログとバックワードログとは、１以上のファイル操作を有する。各ファイル操作は、当該ファイル操作に対して予め規定されている１以上の引数を有する。例えば、ＣＲＥＡＴＥ操作は、「作成ファイル格納ディレクトリ」と「作成ファイル」との２つの引数を有する。また、ＷＲＩＴＥ操作は、「更新ファイル格納ディレクトリ」と、「更新ファイル」と、「更新データ」とを有する。引数「作成ファイル格納ディレクトリ」及び「更新ファイル格納ディレクトリ」については、処理対象となるディレクトリ名（Ｘ，Ｙなど）が指定されるかもしれない。引数「作成ファイル」及び「更新ファイル」については、処理対象となるファイル名（Ａ，Ｂなど）が指定されるかもしれない。引数「更新データ」については、更新後のデータのブロック番号などが、開始ブロック番号と当該開始ブロック番号から終端ブロック番号までのオフセットとによって、指定されるかもしれない。
【０１４３】
フォワードログは、プライマリサイト３０においてプライマリサーバ３４がプライマリストレージ３２の業務データに対して各ファイル操作を適用した適用順が認識できるように生成される。具体的には、図１３の上側のデータ構造に示されるように、プライマリサイト３０においてプライマリサーバ３４がプライマリストレージ３２の業務データに対して適用したＣＲＥＡＴＥ，ＷＲＩＴＥ，ＲＥＭＯＶＥが適用順にフォワードログの先頭から記述されるかもしれない。
【０１４４】
他方、バックワードログは、上述したバックワードファイル操作生成規則に従って、フォワードログに記述された各ファイル操作について生成されたバックワードファイル操作を有する。上述したように、フォワードログの各フォワードファイル操作に対して、バックワードファイル操作が生成され、バックワードログに順次記録される。バックワードログは、セカンダリサイト４０においてバックワードログ生成部１３２がログ適用部１２４から受け付けた各フォワードファイル操作に対して、各バックワードファイル操作が生成された生成順が認識できるように生成される。具体的には、図１３の下側のデータ構造に示されるように、フォワードログの各フォワードファイル操作ＣＲＥＡＴＥ，ＷＲＩＴＥ，ＲＥＭＯＶＥに対応するバックワードファイル操作ＲＥＭＯＶＥ，ＷＲＩＴＥ，ＲＥＣＯＶＥＲが生成順にバックワードログの先頭から記述される。すなわち、フォワードログに記述される各ファイル操作の適用順序は、バックワードログに記述される対応する各ファイル操作の生成順序と同一となる。
【０１４５】
他方、フォワードログの各フォワードファイル操作が適用されたデータから、このバックワードログを使用して何れかのチェックポイントのデータを復元する際、ログ適用部１３２は、バックワードログを生成順とは逆順に適用する。すなわち、図１３のバックワードログでは、最後尾のＲＥＣＯＶＥＲから先頭のＲＥＭＯＶＥに向かって各バックワードファイル操作を適用する。
【０１４６】
図１４を参照して、一実施例によるバックワードログ生成処理が説明される。図１４は、一実施例によるバックワードログ生成処理を示すフロー図である。
【０１４７】
バックグラウンド処理コンポーネント１２０がセカンダリストレージ４２にバックアップされている現在のデータにフォワードログを適用するよう指示されると、バックワードログ生成処理がスタートする。
【０１４８】
Ｓ１００において、ログ適用部１２４は、ログ読み込み部１２６を利用してフォワードログディスク４４からフォワードログを取得し、フォワードログに記録されている各フォワードファイル操作をその適用順に読み込む。
【０１４９】
Ｓ２００において、ログ適用部１２４は、読み込んだフォワードファイル操作から操作種別及び当該操作に係るオペランドを特定する。その後、ログ適用部１２４は、特定した操作種別とオペランドとをバックワードログ生成部１３２に通知する。
【０１５０】
Ｓ３００において、バックワードログ生成部１３２は、補助記憶装置６８に格納されているバックワードファイル操作生成規則情報を参照して、通知されたフォワードファイル操作に係るバックワード操作生成規則に従って、対応するバックワードファイル操作を生成する。バックワードログ生成部１３２は、生成したバックワードファイル操作をバックワードログディスク４６のバックワードログに生成順に記録する。
【０１５１】
Ｓ４００において、ログ適用部１２４は、取得したフォワードログのすべてのフォワードファイル操作について、対応するバックワードファイル操作が生成されたか判断する。すべてのフォワードファイル操作について対応するバックワードファイル操作が生成されている場合（Ｓ４００：ＹＥＳ）、当該バックワードログ生成処理は終了される。他方、対応するバックワードファイル操作が生成されていないフォワードファイル操作がフォワードログに存在する場合（Ｓ４００：ＮＯ）、Ｓ１００に移行して、次のフォワードファイル操作に対して上記処理が繰り返される。
【０１５２】
図１５〜２２を参照して、一実施例による図１４のＳ３００のバックワードファイル操作生成処理について、上述した各種ファイル操作に対応する詳細なバックワードファイル操作生成処理が説明される。
【０１５３】
図１５は、一実施例によるＣＲＥＡＴＥ操作に対応するバックワードファイル操作生成処理を示すフロー図である。
【０１５４】
Ｓ２００において、ログ適用部１２４が、ログ読み込み部１２６により読み込まれたフォワードファイル操作がオペランド「作成ファイル格納ディレクトリＸ」と「作成ファイルＡ」とを有するＣＲＥＡＴＥ操作であると特定し、バックワードログ生成部１３２に当該フォワードＣＲＥＡＴＥ操作を通知する。この通知に応答して、Ｓ３００において、バックワードログ生成部１３２は、ＣＲＥＡＴＥ操作に対応するバックワードファイル操作生成処理を開始する。
【０１５５】
Ｓ３１０において、バックワードログ生成部１３２は、受け付けたＣＲＥＡＴＥ操作がオペランド「作成ファイル格納ディレクトリＸ」と「作成ファイルＡ」とを有することを特定する。
【０１５６】
Ｓ３１２において、バックワードログ生成部１３２は、補助記憶装置６８に格納されているバックワードファイル操作生成規則情報を参照して、このフォワードＣＲＥＡＴＥ操作に対応するバックワードファイル操作生成規則を特定する。その後、バックワードログ生成部１３２は、特定したバックワードファイル操作生成規則に従って、オペランド「削除ファイル格納ディレクトリＸ」と「削除ファイルＡ」とを有するバックワードＲＥＭＯＶＥ操作を生成する。
【０１５７】
図１６は、一実施例によるＷＲＩＴＥ操作に対応するバックワードファイル操作生成処理を示すフロー図である。
【０１５８】
Ｓ２００において、ログ適用部１２４が、ログ読み込み部１２６により読み込まれたフォワードファイル操作がオペランド「更新ファイル格納ディレクトリＸ」と、「更新ファイルＡ」と、「更新データＴ」とを有するＷＲＩＴＥ操作であると特定し、バックワードログ生成部１３２に当該フォワードＷＲＩＴＥ操作を通知する。この通知に応答して、Ｓ３００において、バックワードログ生成部１３２は、ＷＲＩＴＥ操作に対応するバックワードファイル操作生成処理を開始する。
【０１５９】
Ｓ３２０において、バックワードログ生成部１３２は、受け付けたＷＲＩＴＥ操作がオペランド「更新ファイル格納ディレクトリＸ」と、「更新ファイルＡ」と、「更新データＴ」とを有することを特定する。
【０１６０】
Ｓ３２２において、バックワードログ生成部１３２は、ファイルＡの更新データＴと置換されるもとのデータＳを決定し、ディスク制御部１２８を利用して、バックワードログディスク４６に格納する。
【０１６１】
Ｓ３２４において、バックワードログ生成部１３２は、補助記憶装置６８に格納されているバックワードファイル操作生成規則情報を参照して、このフォワードＷＲＩＴＥ操作に対応するバックワードファイル操作生成規則を特定する。その後、バックワードログ生成部１３２は、特定したバックワードファイル操作生成規則に従って、オペランド「更新ファイル格納ディレクトリＸ」と、「更新ファイルＡ」と、「更新データＳ」とを有するバックワードＷＲＩＴＥ操作を生成する。
【０１６２】
図１７は、一実施例によるＲＥＭＯＶＥ操作に対応するバックワードファイル操作生成処理を示すフロー図である。
【０１６３】
Ｓ２００において、ログ適用部１２４が、ログ読み込み部１２６により読み込まれたフォワードファイル操作がオペランド「削除ファイル格納ディレクトリＸ」と「削除ファイルＡ」とを有するＲＥＭＯＶＥ操作であると特定し、バックワードログ生成部１３２に当該フォワードＲＥＭＯＶＥ操作を通知する。この通知に応答して、Ｓ３００において、バックワードログ生成部１３２は、ＲＥＭＯＶＥ操作に対応するバックワードファイル操作生成処理を開始する。
【０１６４】
Ｓ３３０において、バックワードログ生成部１３２は、受け付けたＲＥＭＯＶＥ操作がオペランド「削除ファイル格納ディレクトリＸ」と「削除ファイルＡ」とを有することを特定する。
【０１６５】
Ｓ３３２において、バックワードログ生成部１３２は、更新前データ読み込み部１３４を利用して、ディレクトリＸのファイルＡを、セカンダリストレージ４２に特別に設けられたディレクトリＧにファイルＲとして移動する。
【０１６６】
Ｓ３３４において、バックワードログ生成部９８は、補助記憶装置６８に格納されているバックワードファイル操作生成規則情報を参照して、このフォワードＲＥＭＯＶＥ操作に対応するバックワードファイル操作生成規則を特定する。その後、バックワードログ生成部１３２は、特定したバックワードファイル操作生成規則に従って、オペランド「復元ファイル格納ディレクトリＸ」と、「復元ファイルＡ」と、「削除ファイルＲ」とを有するバックワードＲＥＣＯＶＥＲ操作を生成する。上述されたように、このバックワードＲＥＣＯＶＥＲ操作は、オペランド「移動元ディレクトリＧ」、「移動元ファイルＲ」、「移動先ディレクトリＸ」及び「移動先ファイルＡ」を有するＲＥＮＡＭＥ操作として実現されてもよい。
【０１６７】
図１８は、一実施例によるＬＩＮＫ操作に対応するバックワードファイル操作生成処理を示すフロー図である。
【０１６８】
Ｓ２００において、ログ適用部１２４が、ログ読み込み部１２６により読み込まれたフォワードファイル操作がオペランド「リンク元ディレクトリＸ」、「リンク元ファイルＡ」、「リンク先ディレクトリＹ」及び「リンク先ファイルＢ」を有するＬＩＮＫ操作であると特定し、バックワードログ生成部１３２に当該フォワードＬＩＮＫ操作を通知する。この通知に応答して、Ｓ３００において、バックワードログ生成部１３２は、ＬＩＮＫ操作に対応するバックワードファイル操作生成処理を開始する。
【０１６９】
Ｓ３４０において、バックワードログ生成部１３２は、受け付けたＬＩＮＫ操作がオペランド「リンク元ディレクトリＸ」、「リンク元ファイルＡ」、「リンク先ディレクトリＹ」及び「リンク先ファイルＢ」を有することを特定する。
【０１７０】
Ｓ３４２において、バックワードログ生成部１３２は、補助記憶装置６８に格納されているバックワードファイル操作生成規則情報を参照して、このフォワードＬＩＮＫ操作に対応するバックワードファイル操作生成規則を特定する。その後、バックワードログ生成部１３２は、特定したバックワードファイル操作生成規則に従って、オペランド「削除ファイル格納ディレクトリＸ」と「削除ファイルＡ」とを有するバックワードＲＥＭＯＶＥ操作を生成する。上述したように、ファイルＡは、ファイルＢを指定するディレクトリＸのポインタ情報ファイルである。
【０１７１】
図１９は、一実施例によるＭＫＤＩＲ操作に対応するバックワードファイル操作生成処理を示すフロー図である。
【０１７２】
Ｓ２００において、ログ適用部１２４が、ログ読み込み部１２６により読み込まれたフォワードファイル操作がオペランド「作成ディレクトリＸ」を有するＭＫＤＩＲ操作であると特定し、バックワードログ生成部１３２に当該フォワードＭＫＤＩＲ操作を通知する。この通知に応答して、Ｓ３００において、バックワードログ生成部１３２は、ＭＫＤＩＲ操作に対応するバックワードファイル操作生成処理を開始する。
【０１７３】
Ｓ３５０において、バックワードログ生成部１３２は、受け付けたＭＫＤＩＲ操作がオペランド「作成ディレクトリＸ」を有することを特定する。
【０１７４】
Ｓ３５２において、バックワードログ生成部１３２は、補助記憶装置６８に格納されているバックワードファイル操作生成規則情報を参照して、このフォワードＭＫＤＩＲ操作に対応するバックワードファイル操作生成規則を特定する。その後、バックワードログ生成部１３２は、特定したバックワードファイル操作生成規則に従って、オペランド「削除ディレクトリＸ」を有するバックワードＲＭＤＩＲ操作を生成する。
【０１７５】
図２０は、一実施例によるＲＥＮＡＭＥ操作に対応するバックワードファイル操作生成処理を示すフロー図である。
【０１７６】
Ｓ２００において、ログ適用部１２４が、ログ読み込み部１２６により読み込まれたフォワードファイル操作がオペランド「移動元ディレクトリＸ」、「移動元ファイルＡ」、「移動先ディレクトリＹ」及び「移動先ファイルＢ」を有するＲＥＮＡＭＥ操作であると特定し、バックワードログ生成部１３２に当該フォワードＲＥＮＡＭＥ操作を通知する。この通知に応答して、Ｓ３００において、バックワードログ生成部１３２は、ＲＥＮＡＭＥ操作に対応するバックワードファイル操作生成処理を開始する。
【０１７７】
Ｓ３６０において、バックワードログ生成部１３２は、受け付けたＲＥＮＡＭＥ操作がオペランド「移動元ディレクトリＸ」、「移動元ファイルＡ」、「移動先ディレクトリＹ」及び「移動先ファイルＢ」を有することを特定する。
【０１７８】
Ｓ３６２において、バックワードログ生成部１３２は、補助記憶装置６８に格納されているバックワードファイル操作生成規則情報を参照して、このフォワードＲＥＮＡＭＥ操作に対応するバックワードファイル操作生成規則を特定する。その後、バックワードログ生成部１３２は、特定したバックワードファイル操作生成規則に従って、オペランド「移動元ディレクトリＹ」、「移動元ファイルＢ」、「移動先ディレクトリＸ」及び「移動先ファイルＡ」を有するバックワードＲＥＮＡＭＥ操作を生成する。
【０１７９】
図２１は、一実施例によるＲＭＤＩＲ操作に対応するバックワードファイル操作生成処理を示すフロー図である。
【０１８０】
Ｓ２００において、ログ適用部１２４が、ログ読み込み部１２６により読み込まれたフォワードファイル操作がオペランド「削除ディレクトリＸ」を有するＲＭＤＩＲ操作であると特定し、バックワードログ生成部１３２に当該フォワードＲＭＤＩＲ操作を通知する。この通知に応答して、Ｓ３００において、バックワードログ生成部１３２は、ＲＭＤＩＲ操作に対応するバックワードファイル操作生成処理を開始する。
【０１８１】
Ｓ３７０において、バックワードログ生成部１３２は、受け付けたＲＭＤＩＲ操作がオペランド「削除ディレクトリＸ」を有することを特定する。
【０１８２】
Ｓ３７２において、バックワードログ生成部１３２は、補助記憶装置６８に格納されているバックワードファイル操作生成規則情報を参照して、このフォワードＲＭＤＩＲ操作に対応するバックワードファイル操作生成規則を特定する。その後、バックワードログ生成部１３２は、特定したバックワードファイル操作生成規則に従って、オペランド「作成ディレクトリＸ」を有するバックワードＭＫＤＩＲ操作を生成する。
【０１８３】
図２２は、一実施例によるＳＥＴＡＴＴＲ操作に対応するバックワードファイル操作生成処理を示すフロー図である。
【０１８４】
Ｓ２００において、ログ適用部１２４が、ログ読み込み部１２６により読み込まれたフォワードファイル操作がオペランド「属性変更ファイル格納ディレクトリＸ」と、「属性変更ファイルＡ」と、「属性Ｑ」とを有するＳＥＴＡＴＴＲ操作であると特定し、バックワードログ生成部１３２に当該ＳＥＴＡＴＴＲ操作を通知する。この通知に応答して、Ｓ３００において、バックワードログ生成部１３２は、ＳＥＴＡＴＴＲ操作に対応するバックワードファイル操作生成処理を開始する。
【０１８５】
Ｓ３８０において、バックワードログ生成部１３２は、受け付けたＳＥＴＡＴＴＲ操作がオペランド「属性変更ファイル格納ディレクトリＸ」と、「属性変更ファイルＡ」と、「属性Ｑ」とを有することを特定する。
【０１８６】
Ｓ３８２において、バックワードログ生成部１３２は、属性Ｑと置換されるファイルＡのもとの属性Ｐを決定し、ディスク制御部１２８を利用して、バックワードログディスク４６に格納する。
【０１８７】
Ｓ３８４において、バックワードログ生成部１３２は、補助記憶装置６８に格納されているバックワードファイル操作生成規則情報を参照して、このフォワードＳＥＴＡＴＴＲ操作に対応するバックワードファイル操作生成規則を特定する。その後、バックワードログ生成部１３２は、特定したバックワードファイル操作生成規則に従って、オペランド「属性変更ファイル格納ディレクトリＸ」と、「属性変更ファイルＡ」と、「属性Ｐ」とを有するＳＥＴＡＴＴＲ操作を生成する。
【０１８８】
図２３を参照して、一実施例による生成されたバックワードログによる復元処理が説明される。図２３は、一実施例による生成されたバックワードログによる復元処理を示すフロー図である。
【０１８９】
バックグラウンド処理コンポーネント１２０が、セカンダリストレージ４２にバックアップされている現在のデータにバックワードログを適用するよう指示されると、バックワードログによる復元処理はスタートする。
【０１９０】
Ｓ５００において、ログ適用部１２４は、ログ読み込み部１２６にバックワードログディスク４６からバックワードログを取得させる。その後、ログ読み込み部１２６は、バックワードログに記録されている各バックワードファイル操作をその生成順とは逆順に読み込む。すなわち、ログ読み込み部１２６は、バックワードログに記録されている各バックワードファイル操作を、対応するフォワードログに記録されている各フォワードファイル操作の適用順とは逆順に読み込む。
【０１９１】
Ｓ６００において、ログ適用部１２４は、読み込んだバックワードファイル操作をセカンダリストレージ４２にバックアップされているデータに適用する。
【０１９２】
Ｓ７００において、ログ適用部１２４は、取得したバックワードログに未適用のバックワードファイル操作があるか判断する。遡りたいチェックポイントに対応するバックワードファイル操作までのすべてのバックワードファイル操作が適用されている場合（Ｓ７００：ＹＥＳ）、当該復元処理は終了される。他方、バックワードログに未適用のバックワードファイル操作がある場合（Ｓ７００：ＮＯ）、Ｓ５００に移行して、次のバックワードファイル操作に対して上記処理が繰り返される。
【０１９３】
以上、本発明の実施例について詳述したが、本発明は上述した特定の実施例に限定されるものでなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形及び変更が可能である。
【０１９４】
以上の説明に関し、さらに以下の項を開示する。
（付記１）
ストレージに格納されているファイル群に順次適用された各フォワードファイル操作を適用順に記録したフォワードログを取得するステップと、
前記取得したフォワードログに記録されている各フォワードファイル操作を前記適用順に抽出するステップと、
各フォワードファイル操作に関連付けされたバックワードファイル操作生成規則を含むバックワードファイル操作生成規則情報から、前記抽出したフォワードファイル操作に関連付けされたバックワードファイル操作生成規則を特定するステップと、
前記特定したバックワードファイル操作生成規則に従って、前記抽出したフォワードファイル操作が適用された適用後のファイルから適用前のファイルを復元するバックワードファイル操作を生成するステップと、
前記生成したバックワードファイル操作を生成順にバックワードログに記録するステップと、
前記抽出したフォワードファイル操作を前記適用前のファイルに適用するステップと、
前記生成されたバックワードログの各バックワードファイル操作を前記生成順とは逆順に順次読み込み、前記適用後のファイルに対して前記読み込んだバックワードファイル操作を適用して、適用前のファイルを復元するステップと、
をコンピュータに実行させるコンピュータプログラム。
（付記２）
前記フォワードファイル操作がファイルを削除するファイル操作である場合、前記適用前のファイルを一時的に格納するステップをさらにコンピュータに実行させる、付記１記載のコンピュータプログラム。
（付記３）
前記フォワードファイル操作及び前記バックワードファイル操作は、ＣＲＥＡＴＥ、ＷＲＩＴＥ、ＲＥＭＯＶＥ、ＲＥＣＯＶＥＲ、ＬＩＮＫ、ＭＫＤＩＲ、ＲＥＮＡＭＥ、ＲＭＤＩＲ、ＳＥＴＡＴＴＲの各ファイル操作を含む、付記１又は２記載のコンピュータプログラム。
（付記４）
ストレージに格納されているファイル群に順次適用された各フォワードファイル操作を適用順に記録したフォワードログを取得する手段と、
前記取得したフォワードログに記録されている各フォワードファイル操作を前記適用順に抽出する手段と、
各フォワードファイル操作に関連付けされたバックワードファイル操作生成規則を含むバックワードファイル操作生成規則情報から、前記抽出したフォワードファイル操作に関連付けされたバックワードファイル操作生成規則を特定する手段と、
前記特定したバックワードファイル操作生成規則に従って、前記抽出したフォワードファイル操作が適用された適用後のファイルから適用前のファイルを復元するバックワードファイル操作を生成する手段と、
前記生成したバックワードファイル操作を生成順にバックワードログに記録する手段と、
前記抽出したフォワードファイル操作を前記適用前のファイルに適用する手段と、
前記生成されたバックワードログの各バックワードファイル操作を前記生成順とは逆順に順次読み込み、前記適用後のファイルに対して前記読み込んだバックワードファイル操作を適用して、適用前のファイルを復元する手段と、
を有する装置。
（付記５）
ストレージに格納されているファイル群に順次適用された各フォワードファイル操作を適用順に記録したフォワードログを取得するステップと、
前記取得したフォワードログに記録されている各フォワードファイル操作を前記適用順に抽出するステップと、
各フォワードファイル操作に関連付けされたバックワードファイル操作生成規則を含むバックワードファイル操作生成規則情報から、前記抽出したフォワードファイル操作に関連付けされたバックワードファイル操作生成規則を特定するステップと、
前記特定したバックワードファイル操作生成規則に従って、前記抽出したフォワードファイル操作が適用された適用後のファイルから適用前のファイルを復元するバックワードファイル操作を生成するステップと、
前記生成したバックワードファイル操作を生成順にバックワードログに記録するステップと、
前記抽出したフォワードファイル操作を前記適用前のファイルに適用するステップと、
前記生成されたバックワードログの各バックワードファイル操作を前記生成順とは逆順に順次読み込み、前記適用後のファイルに対して前記読み込んだバックワードファイル操作を適用して、適用前のファイルを復元するステップと、を有する方法。
（付記６）
ファイル群を有するプライマリストレージと、前記ファイル群にフォワードファイル操作を適用するプライマリサーバとを有するプライマリサイトと、
ネットワークを介し前記プライマリサイトに接続され、前記ファイル群が複製されたセカンダリストレージと、前記複製されたファイル群に前記プライマリサイトから転送されたフォワードファイル操作を適用するセカンダリサーバとを有するセカンダリサイトと、
を有する情報システムであって、
前記セカンダリサイトは、
前記プライマリストレージに格納されているファイル群に順次適用された各フォワードファイル操作を適用順に記録したフォワードログを前記プライマリサイトから前記ネットワークを介し取得する手段と、
前記取得したフォワードログに記録されている各フォワードファイル操作を前記適用順に抽出する手段と、
各フォワードファイル操作に関連付けされたバックワードファイル操作生成規則を含むバックワードファイル操作生成規則情報から、前記抽出したフォワードファイル操作に関連付けされたバックワードファイル操作生成規則を特定する手段と、
前記特定したバックワードファイル操作生成規則に従って、前記抽出したフォワードファイル操作が適用された適用後のファイルから適用前のファイルを復元するバックワードファイル操作を生成する手段と、
前記生成したバックワードファイル操作を生成順にバックワードログに記録する手段と、
前記抽出したフォワードファイル操作を前記適用前のファイルに適用する手段と、
前記生成されたバックワードログの各バックワードファイル操作を前記生成順とは逆順に順次読み込み、前記適用後のファイルに対して前記読み込んだバックワードファイル操作を適用して、適用前のファイルを復元する手段と、
を有する情報システム。
【符号の説明】
【０１９５】
１０  情報システム
３０  プライマリサイト
３２  プライマリストレージ
３４  プライマリサーバ
４０  セカンダリサイト
４２  セカンダリストレージ
４４  フォワードログディスク
４６  バックワードログディスク
４８  セカンダリサーバ
５０  ネットワーク
８０  プライマリエージェント
９０  セカンダリエージェント
１００  フォワードログ受信時制御コンポーネント
１２０  バックグラウンド処理コンポーネント
１２４  ログ適用部
１３２  バックワードログ生成部
【図１】
2010282586.tif 000003
【図２】
2010282586.tif 000004
【図３】
2010282586.tif 000005
【図４】
2010282586.tif 000006
【図５】
2010282586.tif 000007
【図６】
2010282586.tif 000008
【図７】
2010282586.tif 000009
【図８】
2010282586.tif 000010
【図９】
2010282586.tif 000011
【図１０】
2010282586.tif 000012
【図１１】
2010282586.tif 000013
【図１２】
2010282586.tif 000014
【図１３】
2010282586.tif 000015
【図１４】
2010282586.tif 000016
【図１５】
2010282586.tif 000017
【図１６】
2010282586.tif 000018
【図１７】
2010282586.tif 000019
【図１８】
2010282586.tif 000020
【図１９】
2010282586.tif 000021
【図２０】
2010282586.tif 000022
【図２１】
2010282586.tif 000023
【図２２】
2010282586.tif 000024
【図２３】
2010282586.tif 000025