(57)【特許請求の範囲】
【請求項１】
複数のファイルシステムのファイルの管理をコンピュータに実行させるファイル管理プログラムであって、
予め指定された対象ファイルシステムにおける予め指定された対象ファイル群のファイル情報を取得し、ファイル情報イベントとして記憶装置に記録するファイル情報記録ステップと、
前記複数のファイルシステムを用いる装置による前記対象ファイル群に対するファイル操作を取得し、ファイル操作イベントとして前記記憶装置に記録するファイル操作記録ステップと、
前記記憶装置から取り出した、前記ファイル情報イベントと前記ファイル操作イベントの情報取得時刻から判断して、前記ファイル情報イベントに先行する前記ファイル操作イベントを順に取り出し、前記対象ファイルの名前空間を複製した名前空間複製データベースに、取り出したファイル操作イベントを反映する名前空間複製ステップとをコンピュータに実行させるファイル管理プログラム。
【請求項２】
請求項１に記載のファイル管理プログラムにおいて、
前記名前空間複製ステップは、前記ファイル情報イベントと前記ファイル操作イベントの情報取得時刻がファイルシステムから得られない場合、前記ファイル情報記録ステップまたは前記ファイル操作記録ステップが情報取得時刻を設定し、該情報取得時刻の誤差の許容範囲を予め設定し、特定の２つのイベントの情報取得時刻の差が前記許容範囲より大きい場合に前記２つのイベントの順序関係を確定させることを特徴とするファイル管理プログラム。
【請求項３】
請求項１または請求項２に記載のファイル管理プログラムにおいて、
更に、名前空間複製ステップの後、
予め指定された複製先ファイルシステムにおいて前記名前空間複製データベースにおける対象ファイル群の名前空間の先頭ディレクトリに基づいてディレクトリを設定すると共に、対象ファイルシステムから前記複製先ファイルシステムへ前記対象ファイル群のデータの複製を行うファイルデータ複製ステップをコンピュータに実行させることを特徴とするファイル管理プログラム。
【請求項４】
請求項３に記載のファイル管理プログラムにおいて、
前記ファイルデータ複製ステップは、前記複製先ファイルシステムに対して未処理のファイル操作イベントの反映を行い、前記未処理のファイル操作イベントの量が所定の量以下になった場合、前記ファイルシステム切り替えステップの指示を行い、
更に、ファイルデータ複製ステップの後、
前記対象ファイル群に対するアクセスについて、前記対象ファイルシステムから前記複製先ファイルシステムへの切り替えを行うファイルシステム切り替えステップをコンピュータに実行させることを特徴とするファイル管理プログラム。
【請求項５】
請求項４に記載のファイル管理プログラムにおいて、
前記ファイルシステム切り替えステップは、ファイルアクセスの抑止を行い、前記複製先ファイルシステムに対して未処理のファイル操作イベントの反映を行い、前記対象ファイルシステムから前記複製先ファイルシステムへの切り替えを行い、ファイルシステムの切り替えの完了後、前記ファイルアクセスの抑止を解除することを特徴とするファイル管理プログラム。
【請求項６】
複数のファイルシステムのファイルの管理を行うファイル管理装置であって、
予め指定された対象ファイルシステムにおける予め指定された対象ファイル群のファイル情報を取得し、ファイル情報イベントとして記録するファイル情報記録部と、
前記複数のファイルシステムを用いる装置による前記対象ファイル群に対するファイル操作を取得し、ファイル操作イベントとして記録するファイル操作記録部と、
前記ファイル情報イベントと前記ファイル操作イベントの情報取得時刻から判断して、前記ファイル情報イベントに先行する前記ファイル操作イベントを順に取り出し、前記対象ファイルの名前空間を複製した名前空間複製データベースに、取り出したファイル操作イベントを反映する名前空間複製部と、
を備えてなるファイル管理装置。
【請求項７】
請求項６に記載のファイル管理装置において、
前記名前空間複製部は、前記ファイル情報イベントと前記ファイル操作イベントの情報取得時刻がファイルシステムから得られない場合、前記ファイル情報記録部または前記ファイル操作記録部が情報取得時刻を設定し、該情報取得時刻の誤差の許容範囲を予め設定し、特定の２つのイベントの情報取得時刻の差が前記許容範囲より大きい場合に前記２つのイベントの順序関係を確定させることを特徴とするファイル管理装置。
【請求項８】
請求項６または請求項７に記載のファイル管理装置において、
更に、予め指定された複製先ファイルシステムにおいて前記名前空間複製データベースにおける対象ファイル群の名前空間の先頭ディレクトリに基づいてディレクトリを設定すると共に、対象ファイルシステムから前記複製先ファイルシステムへ前記対象ファイル群のデータの複製を行うファイルデータ複製部を備えることを特徴とするファイル管理装置。
【請求項９】
複数のファイルシステムのファイルの管理をコンピュータに実行するファイル管理方法であって、
予め指定された対象ファイルシステムにおける予め指定された対象ファイル群のファイル情報を取得し、ファイル情報イベントとして記憶装置に記録するファイル情報記録ステップと、
前記複数のファイルシステムを用いる装置による前記対象ファイル群に対するファイル操作を取得し、ファイル操作イベントとして前記記憶装置に記録するファイル操作記録ステップと、
前記ファイル情報イベントと前記ファイル操作イベントに基づいて、前記ファイル情報イベントと前記ファイル操作イベントの順序を特定し、該順序に従って前記ファイル情報イベントの内容に前記ファイル操作イベントの内容を反映し、前記対象ファイルの名前空間を複製した名前空間複製データベースを生成する名前空間複製ステップと、
を実行するファイル管理方法。
【請求項１０】
請求項９に記載のファイル管理方法において、
前記名前空間複製ステップは、前記ファイル情報イベントと前記ファイル操作イベントの情報取得時刻がファイルシステムから得られない場合、前記ファイル操作記録ステップまたは前記ファイル操作記録ステップが情報取得時刻を設定し、該情報取得時刻の誤差の許容範囲を予め設定し、特定の２つのイベントの情報取得時刻の差が前記許容範囲より大きい場合に前記２つのイベントの順序関係を確定させることを特徴とするファイル管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、システム稼働中にファイルとその名前空間の管理を行うファイル管理プログラム、ファイル管理装置、ファイル管理方法に関するものである。
【背景技術】
【０００２】
ファイル管理装置において、アプリケーションプログラムから見た論理的なデータは、ファイルとして表現され、複数のストレージ装置から構成されるファイルシステムという器の中に階層型の名前空間情報と共に格納され、管理される。しかし、ファイルデータをどのストレージ装置上のどこに配置するかは、器を管理するファイルシステムプログラムが器単位に決定するため、ファイルシステムをまたいで負荷を調整することは困難であった。例えば、ファイルシステムＡとファイルシステムＢにおいて、定常的にファイルシステムＢの負荷が非常に低く、ファイルシステムＡの負荷が非常に高い状態となっている場合、ファイルシステムＡの一部ファイル群を選択し、ファイルシステムＢの上に移動することが必要となる。
【０００３】
なお、本発明の関連ある従来技術として、例えば、下記に示す特許文献１が知られている。このレプリケーション・ファシリティは、あるコンピュータ・システムにおけるファイルのサブツリーを別のコンピュータ・システムへ複製するものである。
【特許文献１】特開平７−２１９８３０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来のファイル管理装置では、アプリケーション不可視でデータ移動を行うことができないため、オペレータが以下の操作を手動で行う必要があり、その間業務を停止する必要があった。
【０００５】
１．ファイルシステムＡ上のファイルにアクセスするアプリケーションプログラムを、一旦終了させる。
２．必要なファイル群をファイルシステムＡからファイルシステムＢにマニュアル操作で移動する。
３．移動が完了したら、ファイルシステムＡからファイルシステムＢへのリンクを張り、移動したファイル群をファイルシステムＡでアプリケーションプログラムがアクセスしようとしたときに、ファイルシステムＢ上の目的のファイルにアクセスが切り替わるように設定する。
４．上記の一連の操作が全て完了した時点で、アプリケーションプログラムを再度立ち上げ、業務を再開する。
【０００６】
このように従来のファイル管理装置でファイルシステム間の負荷のアンバランスを解消しようとすると、長時間の業務停止が必要となり、動的に負荷のバランスを調整することが非常に難しかった。この問題は、ＮＡＳ（Network Attached Storage）と呼ばれるファイルサーバでも同様に起こることから、ＮＡＳ  Ｉｓｌａｎｄと呼ばれる、顧客が保有するＮＡＳ装置群を統合的に管理・活用することができない、という問題の原因となっていた。
【０００７】
また、新しいファイルシステムへの移行時にも同様の問題が発生することから、無停止で移行することができない、部分的移行ができない、等、ファイルシステムの追加や移行を難しくする原因となっていた。
【０００８】
アプリケーションプログラムを動作させたまま、ファイルシステムの一部データのみを別のファイルシステムに移動することが困難である本質的な理由は、移動中に発生する名前空間の変更に対応することが困難であるためである。ここで、アプリケーションを停止しておかないと、移動対象として指定した名前空間のセグメントが移動の最中に動的に変更されてしまうため、移動後に失われてしまうファイル群が発生する可能性がある。
【０００９】
また、ＮＡＳのように複数のサーバから共用されるファイルサーバの場合、ほぼ同時に異なるサーバで発行された名前空間変更操作が、どの順でＮＡＳに到着するかを規定することができず、サーバで受け付けた名前空間の変更の操作がどの順で処理されたかを知ることができない。このため、移動中に発生した名前空間の変更を特定し、補正することは困難である。
【００１０】
この問題を解決する方法として、ＮＡＳ装置群とＮＡＳ装置群にアクセスするサーバ（ＮＡＳクライアント）の間にゲートウエイ装置を配置し、このゲートウエイ装置がＮＡＳクライアントから発行された要求を一括して受け取り、下位のＮＡＳ装置群にルーティングする方式も考えられる。しかし、この方式では、ゲートウエイ装置が新たに必要となることから、コストの増加を招くとともに、ファイルハンドル問題と呼ばれる、変換表の増加問題が生じる。
【００１１】
本発明は上述した問題点を解決するためになされたものであり、アプリケーションを稼動させたまま、ファイルシステム間のファイルの移動を行うファイル管理プログラム、ファイル管理装置、ファイル管理方法を提供することを目的とする。
【課題を解決するための手段】
【００１２】
上述した課題を解決するため、本発明は、複数のファイルシステムのファイルの管理をコンピュータに実行させるファイル管理プログラムであって、予め指定された対象ファイルシステムにおける予め指定された対象ファイル群のファイル情報を取得し、ファイル情報イベントとして記録するファイル情報記録ステップと、前記対象ファイル群に対するファイル操作を取得し、ファイル操作イベントとして記録するファイル操作記録ステップと、前記ファイル情報イベントと前記ファイル操作イベントに基づいて、前記対象ファイルの名前空間を複製した名前空間複製データベースを生成する名前空間複製ステップとをコンピュータに実行させるものである。
【００１３】
また、本発明に係るファイル管理プログラムにおいて、更に、名前空間複製ステップの後、予め指定された複製先ファイルシステムにおいて前記名前空間複製データベースに基づいてディレクトリを設定すると共に、対象ファイルシステムから前記複製先ファイルシステムへ前記対象ファイル群のデータの複製を行うファイルデータ複製ステップをコンピュータに実行させることを特徴とするものである。
【００１４】
また、本発明に係るファイル管理プログラムにおいて、更に、ファイルデータ複製ステップの後、前記対象ファイル群に対するアクセスについて、前記対象ファイルシステムから前記複製先ファイルシステムへの切り替えを行うファイルシステム切り替えステップをコンピュータに実行させることを特徴とするものである。
【００１５】
また、本発明に係るファイル管理プログラムにおいて、前記ファイル情報記録ステップは、前記対象ファイルシステムにおけるディレクトリの階層構造をパス名の昇順または降順に辿り、前記対象ファイル群の名前と属性を含むファイル情報を記録することを特徴とするものである。
【００１６】
また、本発明に係るファイル管理プログラムにおいて、前記名前空間複製ステップは、前記ファイル情報イベントと前記ファイル操作イベントの順序を特定し、該順序に従って前記ファイル情報イベントの内容に前記ファイル操作イベントの内容を反映し、名前空間複製データベースを生成することを特徴とするものである。
【００１７】
また、本発明に係るファイル管理プログラムにおいて、前記名前空間複製ステップは、前記ファイル情報イベントと前記ファイル操作イベントの情報取得時刻がファイルシステムから得られない場合、前記ファイル操作記録ステップまたは前記ファイル操作記録ステップが情報取得時刻を設定し、該情報取得時刻の誤差の許容範囲を予め設定し、特定の２つのイベントの情報取得時刻の差が前記許容範囲より大きい場合に前記２つのイベントの順序関係を確定させることを特徴とするものである。
【００１８】
また、本発明に係るファイル管理プログラムにおいて、前記名前空間複製ステップは、前記ファイル情報イベントと前記ファイル操作イベントの順序が特定できない場合、作成された可能性があるファイルまたはディレクトリを候補とし、前記ファイル情報イベントと前記ファイル操作イベントに基づいて前記候補の存在を判定し、存在が確定した候補を前記名前空間複製データベースへ登録し、前記候補の存在を判定できないものについては、前記候補の存在を前記対象ファイルシステムに確認し、存在が確定した候補を前記名前空間複製データベースへ登録することを特徴とするものである。
【００１９】
また、本発明に係るファイル管理プログラムにおいて、前記ファイルデータ複製ステップは、前記複製先ファイルシステムに対して未処理のファイル操作イベントの反映を行い、前記未処理のファイル操作イベントの量が所定の量以下になった場合、前記ファイルシステム切り替えステップの指示を行うことを特徴とするものである。
【００２０】
また、本発明に係るファイル管理プログラムにおいて、前記ファイルシステム切り替えステップは、ファイルアクセスの抑止を行い、前記複製先ファイルシステムに対して未処理のファイル操作イベントの反映を行い、前記複製先ファイルシステムにリンク情報を設定し、ファイルシステムの切り替えが完了すると前記ファイルアクセスの抑止を解除することを特徴とするものである。
【００２１】
また、本発明は、複数のファイルシステムのファイルの管理を行うファイル管理装置であって、予め指定された対象ファイルシステムにおける予め指定された対象ファイル群のファイル情報を取得し、ファイル情報イベントとして記録するファイル情報記録部と、前記対象ファイル群に対するファイル操作を取得し、ファイル操作イベントとして記録するファイル操作記録部と、前記ファイル情報イベントと前記ファイル操作イベントに基づいて、前記対象ファイルの名前空間を複製した名前空間複製データベースを生成する名前空間複製部とを備えたものである。
【００２２】
また、本発明に係るファイル管理装置において、更に、予め指定された複製先ファイルシステムにおいて前記名前空間複製データベースに基づいてディレクトリを設定すると共に、対象ファイルシステムから前記複製先ファイルシステムへ前記対象ファイル群のデータの複製を行うファイルデータ複製部を備えることを特徴とするものである。
【００２３】
また、本発明に係るファイル管理装置において、更に、前記対象ファイル群に対するアクセスについて、前記対象ファイルシステムから前記複製先ファイルシステムへの切り替えを行うファイルシステム切り替え部を備えることを特徴とするものである。
【００２４】
また、本発明に係るファイル管理装置において、前記ファイル情報記録部は、前記対象ファイルシステムにおけるディレクトリの階層構造をパス名の昇順または降順に辿り、前記対象ファイル群の名前と属性を含むファイル情報を記録することを特徴とするものである。
【００２５】
また、本発明に係るファイル管理装置において、前記名前空間複製部は、前記ファイル情報イベントと前記ファイル操作イベントの順序を特定し、該順序に従って前記ファイル情報イベントの内容に前記ファイル操作イベントの内容を反映し、名前空間複製データベースを生成することを特徴とするものである。
【００２６】
また、本発明に係るファイル管理装置において、前記名前空間複製部は、前記ファイル情報イベントと前記ファイル操作イベントの情報取得時刻がファイルシステムから得られない場合、前記ファイル操作記録部または前記ファイル操作記録部が情報取得時刻を設定し、該情報取得時刻の誤差の許容範囲を予め設定し、特定の２つのイベントの情報取得時刻の差が前記許容範囲より大きい場合に前記２つのイベントの順序関係を確定させることを特徴とするものである。
【００２７】
また、本発明に係るファイル管理装置において、前記ファイルデータ複製部は、前記複製先ファイルシステムに対して未処理のファイル操作イベントの反映を行い、前記未処理のファイル操作イベントの量が所定の量以下になった場合、前記ファイルシステム切り替え部の指示を行うことを特徴とするものである。
【００２８】
また、本発明に係るファイル管理装置において、前記ファイルシステム切り替え部は、ファイルアクセスの抑止を行い、前記複製先ファイルシステムに対して未処理のファイル操作イベントの反映を行い、前記複製先ファイルシステムにリンク情報を設定し、ファイルシステムの切り替えが完了すると前記ファイルアクセスの抑止を解除することを特徴とするものである。
【００２９】
また、本発明は、複数のファイルシステムのファイルの管理をコンピュータに実行するファイル管理方法であって、予め指定された対象ファイルシステムにおける予め指定された対象ファイル群のファイル情報を取得し、ファイル情報イベントとして記録するファイル情報記録ステップと、前記対象ファイル群に対するファイル操作を取得し、ファイル操作イベントとして記録するファイル操作記録ステップと、前記ファイル情報イベントと前記ファイル操作イベントに基づいて、前記対象ファイルの名前空間を複製した名前空間複製データベースを生成する名前空間複製ステップとを実行するものである。
【発明の効果】
【００３０】
本発明は、名前空間の情報取得と並行して異なるサーバが行った、名前空間の変更事象の相互依存関係を解析し順序関係を特定することにより、移動元ファイルシステムにアクセスするアプリケーションを稼動させたままで、移動元ファイルシステムの名前空間の完全な複製を名前空間複製ＤＢの形で完成させることができる。その後、この名前空間複製ＤＢを使って移動対象名前空間セグメントを特定し、アプリケーションの動作と並行して、移動先ファイルシステム上に名前空間を含め、漏れなくファイルデータをコピーすることができる。コピーが終わったところで、一時的にアプリケーションからのファイルアクセスを待たせ（アプリケーションからはファイル操作が少し遅くなったと見える）、サーバが保持するキャッシュデータを更新し、リンクを張ることで以降のファイルアクセスを移動先に切り替える準備を行った後に、ファイルアクセスを再開させることにより、他の操作にほとんど負担を掛けることなく、ファイルシステム間の移動を行うことができる。
【００３１】
また、本発明は、名前空間複製ＤＢを別に用意し、名前空間複製ＤＢから移行対象を決定してから、実際の移行作業を行なうことにより、部分移行を行う際に必要となるディスクスペースは、ファイルシステムの名前空間の複製と移動先対象データを格納するのに必要な量のみとなる。このため、ファイルシステム全体を一移動した後、移動先で不要部分を削除する方式に比べ、大幅に必要ディスク量を削減することが可能となる。
【発明を実施するための最良の形態】
【００３２】
以下、本発明の実施の形態について図面を参照しつつ説明する。
【００３３】
本実施の形態では、複数のファイルシステムと、複数のサーバを有する情報処理システムの例について説明する。
【００３４】
まず、情報処理システムの構成について説明する。
【００３５】
図１は、本発明に係る情報処理システムの構成の一例を示すブロック図である。この情報処理システムは、サーバ１，２、ファイルシステム３，４で構成される。サーバ１，２は、ファイルシステム３，４にアクセスすることができる。また、サーバ１は本発明に係るファイル管理装置の機能を有し、サーバ１によりファイルシステム３のファイルデータをファイルシステム４に移動する場合について説明する。
【００３６】
また、サーバ１は、ファイルシステム制御部１１、アプリケーション部１２、ファイル情報取得部１３、ファイル操作取得部１４、名前空間複製部１５、ファイルデータ復元部１６、ファイルシステム切り替え部１７、ファイル情報イベント記憶部２１、ファイル操作イベント記憶部２２、名前空間複製ＤＢ（Database）２３で構成される。また、サーバ２は、ファイルシステム制御部１１、アプリケーション部１２、ファイル操作取得部１４、ファイルシステム切り替え部１７で構成される。なお、ファイルシステムが複数のサーバで共用できないローカルファイルシステムである場合は、サーバ１のみが存在し、サーバ２が存在しない。
【００３７】
ファイルシステム制御部１１は、ファイルシステム３，４の制御を行う。アプリケーション部１２は、ファイルシステム制御部１１を介してファイルシステム３，４にアクセスし、アプリケーションの処理を行う。
【００３８】
ファイル情報取得部１３は、移動元ファイルシステム３に存在するファイル群の名前と属性（ファイルサイズやアクセス権限リスト、所有者など）をファイル情報イベントとして、ファイル単位でファイル情報イベント記憶部２１に記録する。
【００３９】
ファイル操作取得部１４は、ファイルシステム３，４を共用する全てのサーバ１，２上に存在する。但し、クラスタファイルシステムのように、特定のサーバ上で動くメタデータサーバがすべてのアクセスを仲介、管理する形態では、メタデータサーバが存在するサーバ上だけにファイル操作取得部１４が存在していても良い。また、ファイル操作取得部１４は、ファイルシステム制御部１１内で実装する形態、フィルタドライバとしてファイルシステム制御１１の外に実装する形態のいずれの形態でも良い。後者の場合、アプリケーション部１２が発行したファイルシステム制御部１１に対するファイル操作要求をインタセプトし、ファイル操作イベント記憶部２２に記録する。ファイル操作イベント記憶部２２は、名前空間複製部１５やファイルデータ復元部１６にファイル操作イベントを渡す。このファイル操作イベントの受け渡しには通信機構を用いても良いし、専用のファイルを介して受け渡しても良い。
【００４０】
名前空間複製部１５は、ファイルシステム３の名前空間複製処理を司る。この名前空間複製部１５は、ファイルシステム３，４を共用するサーバのうち、ファイル管理装置に対応するサーバ１に存在する。また、名前空間複製部１５は、移動元ファイルシステム３内の個々のファイル情報イベントと、ファイル操作イベントを組み合わせることで、最新の名前空間を推定し、名前空間の複製を名前空間複製ＤＢ２３に記録する。
【００４１】
ファイルデータ復元部１６は、名前空間複製ＤＢ２３を使い特定した移動元ファイルシステム３の移動対象ファイルのコピー（名前空間情報を含む）を移動先ファイルシステム４上に作成する。名前空間複製ＤＢ２３とファイル操作イベント記憶部２２におけるファイル操作イベントのうちファイル書きこみイベントデータを使い、移動先ファイルシステム４上にファイルを作り、移動元ファイルシステム３から必要なファイルデータを読み、移動先ファイルシステム４に書き込むことにより、ファイルのコピーを作成する。
【００４２】
ファイルシステム切り替え部１７は、ファイルデータ復元部１６からの指示に従い、アプリケーション部１２からのファイル操作を一時的に抑止したり、再開したりするものである。再開と同時にファイルシステムの切り替えを指示された場合には、移動元ファイルシステム３が保持するメモリ上制御情報のつじつまあわせを行い、移動先ファイルシステム４へのリンク情報を設定する。このファイルシステム切り替え部１７は、ファイル操作取得部１４と同じように、ファイルシステム３，４を共有する全サーバ上に存在する。また、ファイルシステム切り替え部１７は、ファイルシステム制御部１１内で実装する形態、フィルタドライバとしてファイルシステム制御部１１の外に実装する形態のいずれの形態でもよい。
【００４３】
なお、ファイル情報取得部１３が、予め指定されたファイルシステムにおける予め指定された一部のファイル群のみのファイル情報を名前空間複製ＤＢ２３に登録し、名前空間複製部１５が、並行して取得されたファイル操作イベントに基づいて、対象ファイル群が移動対象から外れたこと、あるいは逆に処理開始時には対象外であったはずのファイル群が対象ファイル群に加わったことを認識した場合には、エラーと見なして移動処理をキャンセルするような動作を行う、部分ファイル情報取得オプションを用意しても良い。この部分ファイル情報取得オプションを用いることにより、処理対象をファイルシステムにおける予め指定された一部のファイル群に限定することにより、移動処理の高速化、省資源化、単純化を図ることが可能となる。
【００４４】
次に、ファイル情報イベント記憶部２１、ファイル操作イベント記憶部２２、名前空間複製ＤＢ２３のデータ構造の具体例について説明する。
【００４５】
まず、ファイル情報イベント記憶部２１におけるファイル情報イベント（ｇｅｔｓｔａｔイベント）のデータ構造について説明する。
【００４６】
ファイル情報取得部１３がファイルシステム３から取得するファイル情報イベントを、以下に示す。ここで、ファイル操作イベントとの間の順序関係を示す情報取得時刻は、対象とするシステムによっては返されない場合がある。情報取得時刻が返されないシステムでは、ファイル情報取得部１３がファイルシステムから情報を得た時刻を情報取得時刻として設定する。この場合には、イベントに設定されている時刻だけで単純にファイル操作イベントとの間の順序関係を特定することはできない。
【００４７】
ｅｖｅｎｔ．ｒｅｃｔｙｐｅ  ＝
ｇｅｔｓｔａｔ  ．  ファイル情報イベントであることを示す。
ｅｖｅｎｔ．ｍ＿ｉｎｏｄｅ＃  ＝  親ディレクトリのｉｎｏｄｅ番号
ｅｖｅｎｔ．ｆｎａｍｅ  ＝  ディレクトリあるいはファイルの名前
ｅｖｅｎｔ．ｉｎｏｄｅ＃  ＝
ファイルあるいはディレクトリのｉｎｏｄｅ番号
ｅｖｅｎｔ．ａｔｔｒ  ＝
ファイルあるいはディレクトリの所有者やアクセス権限などの属性
ｅｖｅｎｔ．ｆｔｙｐｅ  ＝
ｄｉｒ（対象がディレクトリの場合）
あるいはｆｉｌｅ  （対象がファイルの場合）
ｅｖｅｎｔ．ｔｉｍｅ  ＝  ファイル情報取得時刻
ｅｖｅｎｔ．ｎｏｄｅ  ＝  ファイル情報を取得したノード
【００４８】
次に、ファイル操作イベント記憶部２２におけるファイル操作イベントのデータ構造について説明する。
【００４９】
ファイル操作取得部１４によって作成されるファイル操作イベントは、ファイルの生成や削除、書き込みなどのファイル操作の内容を表しており、操作名と操作が行われた時刻等を含む。ファイル操作イベントに含まれるデータは、操作により異なるため、ファイルやディレクトリの作成（ｃｒｅａｔｅイベント）、ファイルやディレクトリの消去（ｄｅｌｅｔｅイベント）、ファイルやディレクトリの名前変更（ｒｅｎａｍｅイベント）、ファイル別名付与（ｌｉｎｋイベント）、ファイル書きこみ（ｗｒｉｔｅイベント）の各操作に対するファイル操作イベントのデータについて説明する。
【００５０】
まず、ｃｒｅａｔｅイベント時のファイル操作イベントを以下に示す。ここで、既にファイルが存在する状態でファイル作成が要求されると、元のファイルをそのまま使う仕様とする。また、ディレクトリ作成の場合、同じ名前のディレクトリが存在する場合、エラーとなる仕様とする。
【００５１】
ｅｖｅｎｔ．ｒｅｃｔｙｐｅ  ＝  ｃｒｅａｔｅ
ｅｖｅｎｔ．ｍ＿ｉｎｏｄｅ＃  ＝  親ディレクトリのｉｎｏｄｅ番号
ｅｖｅｎｔ．ｉｎｏｄｅ＃  ＝  作成されたファイルあるいはディレクトリのｉｎｏｄｅ番号
ｅｖｅｎｔ．ｆｎａｍｅ  ＝  作成されたファイルあるいはディレクトリの名前
ｅｖｅｎｔ．ｆｔｙｐｅ  ＝
ｄｉｒ  （ディレクトリ作成時）  あるいはｆｉｌｅ  （ファイル作成時）
ｅｖｅｎｔ．ａｔｔｒ  ＝
作成されたファイルあるいはディレクトリの所有者やアクセス権限などの属性
ｅｖｅｎｔ．ｔｉｍｅ  ＝  このイベントが発生した時刻
ｅｖｅｎｔ．ｎｏｄｅ  ＝  このイベントを作成したノードを示す番号
【００５２】
次に、ｄｅｌｅｔｅイベント時のファイル操作イベントを以下に示す。
【００５３】
ｅｖｅｎｔ．ｒｅｃｔｙｐｅ  ＝  ｄｅｌｅｔｅ
ｅｖｅｎｔ．ｍ＿ｉｎｏｄｅ＃  ＝  親ディレクトリのｉｎｏｄｅ番号
ｅｖｅｎｔ．ｉｎｏｄｅ＃  ＝
削除されたファイルあるいはディレクトリのｉｎｏｄｅ番号
ｅｖｅｎｔ．ｆｎａｍｅ  ＝
削除されたファイルのファイル名あるいはディレクトリ名
ｅｖｅｎｔ．ｆｔｙｐｅ  ＝
ｄｉｒ  （ディレクトリ消去時）あるいはｆｉｌｅ  （ファイル消去時）
ｅｖｅｎｔ．ｔｉｍｅ  ＝  このイベントが発生した時刻
ｅｖｅｎｔ．ｎｏｄｅ  ＝  このイベントを作成したノードを示す番号
【００５４】
次に、ｒｅｎａｍｅイベント時のファイル操作イベントを以下に示す。ここで、移動先に同名のファイルやディレクトリが存在し、かつその同名のファイルあるいはディレクトリが対象と同じタイプ（ファイルｏｒディレクトリ）でないとエラーとなる仕様とする。また、同じタイプなら、既に存在する同名のファイルあるいはディレクトリを削除する仕様とする。
【００５５】
ｅｖｅｎｔ．ｒｅｃｔｙｐｅ  ＝  ｒｅｎａｍｅ
ｅｖｅｎｔ．ｍ＿ｉｎｏｄｅ＃  ＝  親ディレクトリのｉｎｏｄｅ番号
ｅｖｅｎｔ．ｉｎｏｄｅ＃  ＝
対象のファイルあるいはディレクトリのｉｎｏｄｅ番号
ｅｖｅｎｔ．ｆｎａｍｅ  ＝  対象のファイル名あるいはディレクトリ名
ｅｖｅｎｔ．ｔａｒｇｅｔ．ｍ＿ｉｎｏｄｅ＃  ＝
移動先ディレクトリのｉｎｏｄｅ番号
ｅｖｅｎｔ．ｔａｒｇｅｔ．ｆｎａｍｅ  ＝
移動後のファイルあるいはディレクトリ名
ｅｖｅｎｔ．ｆｔｙｐｅ  ＝
ｄｉｒ（対象がディレクトリの場合）あるいはｆｉｌｅ（対象がファイルの場合）
ｅｖｅｎｔ．ｔｉｍｅ  ＝  このイベントが発生した時刻
ｅｖｅｎｔ．ｎｏｄｅ  ＝  このイベントを作成したノードを示す番号
【００５６】
次に、ｌｉｎｋイベント時のファイル操作イベントを以下に示す。これは、既存のファイルに別名をつける場合の操作である。ここで、ディレクトリには、別名が付与できない仕様とする。
【００５７】
ｅｖｅｎｔ．ｒｅｃｔｙｐｅ  ＝  ｌｉｎｋ
ｅｖｅｎｔ．ｍ＿ｉｎｏｄｅ＃  ＝  親ディレクトリのｉｎｏｄｅ番号
ｅｖｅｎｔ．ｉｎｏｄｅ＃  ＝  対象のファイルのｉｎｏｄｅ番号
ｅｖｅｎｔ．ｆｎａｍｅ  ＝  付与された別名（ファイル名）
ｅｖｅｎｔ．ｆｔｙｐｅ  ＝  ｆｉｌｅ
ｅｖｅｎｔ．ｔｉｍｅ  ＝  このイベントが発生した時刻
ｅｖｅｎｔ．ｎｏｄｅ  ＝  このイベントを作成したノードを示す番号
【００５８】
次に、ｗｒｉｔｅイベント時のファイル操作イベントを以下に示す。
【００５９】
ｅｖｅｎｔ．ｒｅｃｔｙｐｅ  ＝  ｗｒｉｔｅ
ｅｖｅｎｔ．ｉｎｏｄｅ＃  ＝  ファイルのｉｎｏｄｅ番号
ｅｖｅｎｔ．ｏｆｆｓｅｔ  ＝
更新開始位置を示すファイル内バイトオフセット
ｅｖｅｎｔ．ｌｅｎｇｔｈ  ＝  更新した範囲を示すバイト数
ｅｖｅｎｔ．ｔｉｍｅ  ＝  このイベントが発生した時刻
ｅｖｅｎｔ．ｎｏｄｅ  ＝  このイベントを作成したノードを示す番号
【００６０】
次に、名前空間複製ＤＢ２３のデータ構造について説明する。
【００６１】
名前空間複製ＤＢ２３は、以下に示したカラム（ｄｂｅ）を持ち、ディレクトリに設定されているディレクトリエントリ（ファイル要素あるいはディレクトリ要素）に対応するタプルを持つリレーショナルＤＢである。
【００６２】
ｄｂｅ．ｍ＿ｉｎｏｄｅ＃  ：  親ディレクトリのｉｎｏｄｅ番号
ｄｂｅ．ｆｔｙｐｅ    ：
ｄｉｒ（このタプルがディレクトリをあらわすとき）あるいは  ｆｉｌｅ  （このタプルがファイルを表すとき）
ｄｂｅ．ｆｎａｍｅ  ：  ファイルあるいはディレクトリの名前
ｄｂｅ．ｉｎｏｄｅ＃  ：  ファイルあるいはディレクトリのｉｎｏｄｅ番号
ｄｂｅ．ａｔｔｒ    ：
ファイルあるいはディレクトリの所有者、アクセス権限などの情報
ｄｂｅ．ａｃｔｉｖｅ  ：
オン（ファイル情報取得済みのとき）あるいはオフ（まだファイル情報を取得していないとき）
ｄｂｅ．ｃａｎｄｉｔ  ：
オン（存在の有無がわからない）  あるいはオフ（このタプルで示されるファイル・ディレクトリが必ず存在している）
ｄｂｅ．ｉｎｒｅｓｔｏｒｅ  ：
オンならファイルデータを移動先ファイルシステムに復元中であることを示す。
ｄｂｅ．ｔｉｍｅ  ：  イベント時刻
ｄｂｅ．ｎｏｄｅ  ：
ファイル操作イベントを契機にこのタプルを登録したノードの番号。ファイル情報取得イベントから作成されたタプルの場合には、ＮＵＬＬが入る。また、ファイルを作成したノードを特定できない場合（すなわち、最大誤差許容時間内で同じファイルが異なるノードにより作成された可能性がある場合）には、ＮＵＬＬが設定される。
ｄｂｅ．ｃｍｐｔｉｍｅ  ：  データ移動完了時刻
【００６３】
次に、サーバ１によるファイル移動処理の動作について説明する。
【００６４】
図２は、本発明に係るサーバによるファイル移動処理の動作の概要を示すフローチャートである。サーバ１は、ファイル移動処理として、ファイル情報取得処理（Ｓ１１）、ファイル操作取得処理（Ｓ１２）、名前空間複製処理（Ｓ１３）、ファイルデータ復元処理（Ｓ１４）、ファイルシステム切り替え処理（Ｓ１５）を行う。
【００６５】
まず、ファイル情報取得部１３によるファイル情報取得処理について説明する。図３は、本発明に係るファイル情報取得処理の動作の一例を示すフローチャートである。
【００６６】
ファイル情報取得部１３は、名前空間をパス名昇順（あるいは降順）にたどり、名前空間の総なめを行うことにより、移動元ファイルシステム３内に存在するディレクトリ、ファイルの情報を漏れなく求める。図４は、名前空間におけるディレクトリの階層構造の一例を示す図である。このように移動元ファイルシステム３の名前空間は、ディレクトリの階層構造を持ち、ディレクトリ名やファイル名を昇順に左から右へソートしたものである。また、ファイル情報取得処理中に発生したファイル操作は、別にファイル操作イベントとして記録されているので、後で補正する。
【００６７】
まず、ファイル情報取得部１３は、移動元ファイルシステム３のディレクトリの階層構造において、ルートディレクトリを基点として常に左端のディレクトリ（現在の階層にあるディレクトリの中で最も小さい名前を持つディレクトリ）を下方にたどり、最も左下に存在するディレクトリを見つける。ファイル情報取得部１３は、このディレクトリを最初の対象ディレクトリとし、対象ディレクトリの検索の過程で求めた対象ディレクトリのパス名を対象ディレクトリパス名とする（Ｓ２０１）。
【００６８】
次に、ファイル情報取得部１３は、対象ディレクトリの内容を読み込み、対象ディレクトリのファイル情報、および対象ディレクトリ内に存在する全ファイル（ディレクトリを除く）のファイル情報を、ファイル情報イベントとして順にファイル情報イベント記憶部２１に記録する（Ｓ２０２）。図４の例において、対象ディレクトリが／Ａ／Ａ／Ｂ／Ａである場合、ファイル情報取得部１３は、／Ａ／Ａ／Ｂ／Ａ，／Ａ／Ａ／Ｂ／Ａ／ｂ，／Ａ／Ａ／Ｂ／Ａ／ｃのファイル情報をファイル情報イベントとしてファイル情報イベント記憶部２１に出力する。また、ディレクトリを読んだ時点では存在したが、ファイル情報を取得しようとした時にはなくなってしまっていたファイルは無視する。例えば、ファイル情報取得部１３が／Ａ／Ａ／Ｂ／Ａ／ｂのファイル情報を読もうとした時点で見つからなければ、このファイルを無視して、／Ａ／Ａ／Ｂ／Ａと／Ａ／Ａ／Ｂ／Ａ／ｃのファイル情報イベントを出力する。
【００６９】
次に、ファイル情報取得部１３は、対象ディレクトリがルートディレクトリであるか否かの判断を行う（Ｓ２０３）。ルートディレクトリである場合（Ｓ２０３，Ｙ）、全ファイルを処理し終わったことを意味するので、ファイル情報取得部１３はこのフローを終了する。一方、ルートディレクトリでない場合（Ｓ２０３，Ｎ）、次へ移行する。
【００７０】
次に、ファイル情報取得部１３は、対象ディレクトリパス名から、対象ディレクトリのひとつ上のディレクトリパス名を求め、このディレクトリパス名を持つディレクトリをルートディレクトリから再度検索する。この検索で存在を確認できた最終ディレクトリを基点ディレクトリとする（Ｓ２０５）。ここで、パスの途中のディレクトリがｒｅｎａｍｅ操作などで名前空間の別の位置に動かされている場合、途中で見つからなくなる。図４の例において、対象ディレクトリが／Ａ／Ａ／Ｂ／Ａである場合、終端の／Ａを除いた／Ａ／Ａ／Ｂが基点ディレクトリとなる。ここで、／Ａ／Ａ／Ｂをルート（／）から再度検索する過程で、／Ａ／Ａを見つけることができない場合は／Ａが基点ディレクトリとなる。
【００７１】
次に、ファイル情報取得部１３は、基点ディレクトリの内容を読み込み、基点ディレクトリ内に未処理のディレクトリがあるか否かの判断を、現在の対象ディレクトリパスを使って行う（Ｓ２０６）。基点ディレクトリ内に未処理のディレクトリがある場合（Ｓ２０６，Ｙ）、ファイル情報取得部１３は、基点ディレクトリ内の未処理のディレクトリのうち最も左下のものを新たな対象ディレクトリとし、そのパス名を対象ディレクトリパス名とする（Ｓ２０７）。図４の例において、／Ａ／Ａ／Ｂが基点ディレクトリ、現在の対象ディレクトリパス名が／Ａ／Ａ／Ｂ／Ａとすると、／Ａ／Ａ／Ｂの中にＡより大きなディレクトリＣが存在するので、／Ａ／Ａ／Ｂ／Ｃ，／Ａ／Ａ／Ｂ／Ｃ／Ａの順にたどり、／Ａ／Ａ／Ｂ／Ｃ／Ａが新しい対象ディレクトリとなり、そのパス名が対象ディレクトリパス名となる。
【００７２】
ここで、基点ディレクトリ内に未処理のディレクトリがない場合（Ｓ２０６，Ｎ）、すなわち基点ディレクトリ内に対象ディレクトリパス名より大きな名前をもつディレクトリが存在しない場合、ファイル情報取得部１３は、基点ディレクトリを対象ディレクトリとし、そのパス名を対象ディレクトリパス名に設定する（Ｓ２０８）。図４の例において、基点ディレクトリ、現在の対象ディレクトリパス名がそれぞれ、／Ａ／Ａ／Ｂ、／Ａ／Ａ／Ｂ／Ｃの場合、／Ａ／Ａ／Ｂ内にはＣより大きなディレクトリが存在しない。この場合、新対象ディレクトリは／Ａ／Ａ／Ｂとなり、そのパス名が対象ディレクトリパス名となる。
【００７３】
なお、対象ファイルシステム内の全ファイルではなく、予め指定されたファイル群のファイル情報を取得する部分ファイル情報取得オプションが指定されている場合には、上記処理を以下のように補正する。
【００７４】
処理Ｓ２０１において、ルートディレクトリの代わりに、指定された移動対象ファイル群の先頭ディレクトリを基点（ルートからのパス名を先頭パスと呼ぶ）として、常に左端のディレクトリをたどり、最も左下に存在するディレクトリを求める。処理Ｓ２０３において、対象ディレクトリがルートディレクトリであるかを判断する代わりに、対象ディレクトリが先頭ディレクトリであるか否かを判断する。ここで、先頭ディレクトリであれば（Ｓ２０３，Ｙ）、このフローを終了する。そうでなければ（Ｓ２０３，Ｎ）、次へ移行する。処理Ｓ２０５で求まった新しい基点ディレクトリが先頭ディレクトリあるいはその下のディレクトリでない場合には、先頭ディレクトリより上のディレクトリがｒｅｎａｍｅ操作で変更されたことを意味するので、エラーとしてファイル情報取得処理および以降の処理をすべて中止する。
【００７５】
次に、ファイル情報取得部１３は、対象ディレクトリの処理を行うために、処理Ｓ２０２へ戻る。
【００７６】
上述したように、ファイル情報取得部１３がファイルパス名を基準にファイル情報取得処理を行うことにより、ファイル情報取得処理中に名前空間が変更されても、無限ループに陥ることを防ぐことができ、変更されなかった名前空間セグメント内のファイル情報を漏れなく取得することができる。なお、ディレクトリ内エントリをファイル名昇順でソートする代わりに、ディレクトリ内オフセットを基準としてパス名昇順を実現することも可能である。
【００７７】
次に、名前空間複製部１５による名前空間複製処理について説明する。
【００７８】
上述した移動元ファイルシステムの名前空間総なめ（予め指定された移動対象のファイル群のみのファイル情報を取得する部分ファイル情報取得オプションが指定されていた場合には、対象ファイル群のみの情報を求める）によるファイル情報取得処理が全て終了すると、名前空間複製部１５は、その間に発生したファイル操作イベントの反映を行うことにより、名前空間複製処理を行う。ここでは、ファイル操作イベント同士の順序関係が特定できる場合、ファイル操作イベントデータ同士の順序関係が特定できない場合、の順で説明する。
【００７９】
まず、ファイル操作イベント同士の順序関係が特定できる場合の名前空間複製処理について説明する。
【００８０】
図５は、ファイル操作イベント同士の順序関係が特定できる場合の名前空間複製処理の一例を示すフローチャートである。このケースは、ファイルサーバを共用するサーバが一つしかなく、ファイル操作イベントを取得するサーバが設定したファイル操作イベント同時の順序関係を特定できる場合に対応する。まず、名前空間複製部１５は、ファイル情報イベントにファイルシステムが設定した情報取得時刻が設定されているか否かの判断を行う（Ｓ３００）。ファイルシステムが設定した情報取得時刻が設定されていない場合（Ｓ３００，Ｎ）、名前空間複製部１５は、内部変数Ａに最大誤差許容時間を設定する（Ｓ３１４）。一方、情報取得時刻が設定されている場合（Ｓ３００，Ｙ）、名前空間複製部１５は、内部変数Ａに０を設定する（Ｓ３１５）。ファイル情報イベントに設定された情報取得時刻が、ファイルシステムにより設定されたものでなく、ファイル情報取得処理により、設定されたものである場合、ファイル操作イベントとの順序関係の特定が単純には求まらない。情報取得時刻のずれの最大値を最大誤差許容時間と呼び、経験から得られる適正な値を予め固定値として設定する。ここで、順序関係の特定が困難なイベントデータ１の情報取得時刻（イベントデータ１．ｔｉｍｅ）とイベントデータ２の情報取得時刻（イベントデータ２．ｔｉｍｅ）の間に以下の関係がある場合、名前空間複製部１５は、イベントデータ１がイベントデータ２に先行するものと見なす。
【００８１】
イベントデータ２．ｔｉｍｅ  ＞  イベントデータ１．ｔｉｍｅ  かつ
イベントデータ２．ｔｉｍｅ  −  イベントデータ１．ｔｉｍｅ  ＞  最大誤差許容時間
【００８２】
次に、名前空間複製部１５は、未処理のファイル情報イベントが存在するか否かの判断を行う（Ｓ３０１）。存在しない場合（Ｓ３０１，Ｎ）、処理Ｓ３１１へ移行する。一方、存在する場合（Ｓ３０１，Ｙ）、未処理のファイル情報イベントを先頭から一つ取り出し、設定されている時刻を内部変数Ｔに設定する（Ｓ３０２）。次に、名前空間複製部１５は、取り出したファイル情報イベントに記録されていた情報取得時刻から判定して、先行すると考えられるファイル操作イベント（すなわち、Ｔ−Ａ以前の情報取得時刻を持つファイル操作イベント）を順に取り出し、名前空間複製ＤＢ２３に反映する（Ｓ３０３）。ここでは、ファイル操作イベントの種類（ファイル削除系、ファイル生成系、ファイル名変更系、ファイル別名付与、ファイル書きこみ）毎に動作を説明する。
【００８３】
まず、ファイル操作イベントがファイル削除系操作（ファイル削除、ディレクトリ削除）である場合、名前空間複製部１５は、対象のｉｎｏｄｅが登録済みならこれを削除し、未登録なら無視する。ここで、以下の条件を全て満たすエントリが存在する場合を、登録済みとみなす。
【００８４】
ｄｂｅ．ｉｎｏｄｅ＃  ＝＝  ｅｖｅｎｔ．ｉｎｏｄｅ＃
ｄｂｅ．ｍ＿ｉｎｏｄｅ＃  ＝＝  ｅｖｅｎｔ．ｍ＿ｉｎｏｄｅ＃
ｄｂｅ．ｆｎａｍｅ  ＝＝  ｅｖｅｎｔ．ｆｎａｍｅ
【００８５】
また、ファイル操作イベントがファイル生成系操作（ファイル生成，ディレクトリ生成）である場合、名前空間複製部１５は、対象ファイルｉｎｏｄｅが未登録なら登録する。対象ファイルｉｎｏｄｅが登録済みのときには無視する。ここで、以下の条件を全て満たすエントリが存在する場合、登録済みとみなす。
【００８６】
ｄｂｅ．ｉｎｏｄｅ＃  ＝＝  ｅｖｅｎｔ．ｉｎｏｄｅ＃
ｄｂｅ．ｍ＿ｉｎｏｄｅ＃  ＝＝  ｅｖｅｎｔ．ｍ＿ｉｎｏｄｅ＃
ｄｂｅ．ｆｎａｍｅ  ＝＝  ｅｖｅｎｔ．ｆｎａｍｅ
【００８７】
また、未登録時の登録内容を以下に示す。なお、部分ファイル情報取得オプションが有効の場合には、未登録でかつ、ｅｖｅｎｔ．ｍ＿ｉｎｏｄｅ＃に対応するディレクトリが情報取得済みで登録されている場合にのみ登録する。すなわち、（ｄｂｅ．ｉｎｏｄｅ＃  ＝＝  ｅｖｅｎｔ．ｍ＿ｉｎｏｄｅ＃，ｄｂｅ．ａｃｔｉｖｅ  ＝＝  オン）であるｄｂｅが存在する場合にのみ、以下のタプルを登録する。そうでなければ、未登録であっても、このファイル操作イベントを無視する（親ディレクトリが情報取得済みでなければ、ここで無視しても、移動対象であれば後続のファイル情報取得イベントに含まれるはずである）。
【００８８】
ｄｂｅ．ｍ＿ｉｎｏｄｅ＃  ＝  ｅｖｅｎｔ．ｍ＿ｉｎｏｄｅ＃
ｄｂｅ．ｆｔｙｐｅ  ＝  ｅｖｅｎｔ．ｆｔｙｐｅ
ｄｂｅ．ｆｎａｍｅ  ＝  ｅｖｅｎｔ．ｆｎａｍｅ
ｄｂｅ．ｉｎｏｄｅ＃  ＝  ｅｖｅｎｔ．ｉｎｏｄｅ＃
ｄｂｅ．ａｔｔｒ  ＝  ｅｖｅｎｔ．ａｔｔｒ
ｄｂｅ．ａｃｔｉｖｅ  ＝  オン  ：情報取得済み表示
【００８９】
また、ファイル操作イベントがファイル名変更系操作（ｒｅｎａｍｅ）である場合、名前空間複製部１５は、以下の順でこのイベントを処理する。
【００９０】
このファイル名変更系のファイル操作イベントにおいて、改名後と同じ名前をもつファイルあるいはディレクトリが名前空間複製ＤＢ２３に既に登録されていた場合（ファイル名と親ｉｎｏｄｅ番号で評価）、そのエントリを名前空間複製ＤＢ２３から削除する。ここで、以下の条件を全て満たすエントリが存在する場合、登録済みとみなす。
【００９１】
ｄｂｅ．ｆｎａｍｅ  ＝＝  ｅｖｅｎｔ．ｔａｒｇｅｔ．ｆｎａｍｅ
ｄｂｅ．ｍ＿ｉｎｏｄｅ＃  ＝＝  ｅｖｅｎｔ．ｔａｒｇｅｔ．ｍ＿ｉｎｏｄｅ＃
【００９２】
次に、このファイル名変更系のファイル操作イベントにおいて、対象ファイルが名前空間複製ＤＢ２３に既に登録されている場合、そのエントリの親情報とファイル名を変更する。ここで、以下の条件を全て満たすエントリが存在する場合、登録済みとみなす。
【００９３】
ｄｂｅ．ｉｎｏｄｅ＃  ＝＝  ｅｖｅｎｔ．ｉｎｏｄｅ＃
ｄｂｅ．ｍ＿ｉｎｏｄｅ＃  ＝＝  ｅｖｅｎｔ．ｍ＿ｉｎｏｄｅ＃
ｄｂｅ．ｆｎａｍｅ  ＝＝  ｅｖｅｎｔ．ｆｎａｍｅ
【００９４】
このときの変更内容を以下に示す。なお、部分ファイル情報取得オプションが有効な場合には、移動対象外になる場合があるが、ここでは気にしない。
【００９５】
ｄｂｅ．ｍ＿ｉｎｏｄｅ＃  ＝  ｅｖｅｎｔ．ｔａｒｇｅｔ．ｍ＿ｉｎｏｄｅ＃
ｄｂｅ．ｆｎａｍｅ  ＝  ｅｖｅｎｔ．ｔａｒｇｅｔ．ｆｎａｍｅ
【００９６】
一方、このファイル名変更系のファイル操作イベントにおいて、対象ファイルが名前空間複製ＤＢ２３に未登録なら、改名後のファイルを名前空間複製ＤＢ２３に新しいエントリとして登録する。このときの登録内容を以下に示す。なお、部分ファイル情報取得オプションが有効の場合には、未登録でかつ、ｅｖｅｎｔ．ｍ＿ｉｎｏｄｅ＃に対応するディレクトリが情報取得済みで登録されている場合にのみ登録する。すなわち、（ｄｂｅ．ｉｎｏｄｅ＃  ＝＝  ｅｖｅｎｔ．ｍ＿ｉｎｏｄｅ＃，ｄｂｅ．ａｃｔｉｖｅ  ＝＝  オン）であるｄｂｅが存在する場合にのみ、以下のタプルを登録する。そうでなければ、未登録であっても、このファイル操作イベントでタプル登録は行わない（親ディレクトリが情報取得済みでなければ、ここで無視しても、移動対象に新たに加わったのであれば後続のファイル情報イベントに含まれるはずである）。
【００９７】
ｄｂｅ．ｉｎｏｄｅ＃  ＝  ｅｖｅｎｔ．ｉｎｏｄｅ＃
ｄｂｅ．ｍ＿ｉｎｏｄｅ＃  ＝  ｅｖｅｎｔ．ｔａｒｇｅｔ．ｍ＿ｉｎｏｄｅ＃
ｄｂｅ．ｆｎａｍｅ  ＝  ｅｖｅｎｔ．ｔａｒｇｅｔ．ｆｎａｍｅ
ｄｂｅ．ｆｔｙｐｅ  ＝  ｅｖｅｎｔ．ｆｔｙｐｅ
ｄｂｅ．ａｃｔｉｖｅ  ＝  オフ
【００９８】
ファイル操作イベントがファイル別名付与（ｌｉｎｋ）である場合、名前複製部１５は、イベントに対応するタプルが名前空間複製ＤＢ２３に既に存在するとき（対象ｉｎｏｄｅが登録すみで、ファイル名、親ディレクトリも一致する場合）には、無視する。そうでなければ、このイベントの情報を名前空間複製ＤＢ２３に登録する。ここで、以下の条件を満たすとき対応するタプルが存在するとみなす。
【００９９】
ｄｂｅ．ｉｎｏｄｅ＃  ＝＝  ｅｖｅｎｔ．ｉｎｏｄｅ＃
ｄｂｅ．ｍ＿ｉｎｏｄｅ＃  ＝＝  ｅｖｅｎｔ．ｍ＿ｉｎｏｄｅ＃
ｄｂｅ．ｆｎａｍｅ  ＝＝  ｅｖｅｎｔ．ｆｎａｍｅ
【０１００】
また、未登録時の登録内容を以下に示す。なお、部分ファイル情報取得オプションが有効の場合には、未登録でかつ、ｅｖｅｎｔ．ｍ＿ｉｎｏｄｅ＃に対応するディレクトリが情報取得済みで登録されている場合にのみ登録する。すなわち、（）であるｄｂｅが存在する場合にのみ、以下のタプルを登録する。そうでなければ、未登録であっても、このファイル操作イベントを無視する（親ディレクトリが情報取得済みでなければ、ここで無視しても、移動対象であれば後続のファイル情報取得イベントに含まれるはずである）。
【０１０１】
ｄｂｅ．ｉｎｏｄｅ＃  ＝  ｅｖｅｎｔ．ｉｎｏｄｅ＃
ｄｂｅ．ｍ＿ｉｎｏｄｅ＃  ＝  ｅｖｅｎｔ．ｍ＿ｉｎｏｄｅ＃
ｄｂｅ．ｆｎａｍｅ  ＝  ｅｖｅｎｔ．ｆｎａｍｅ
ｄｂｅ．ｆｔｙｐｅ  ＝  ｆｉｌｅ
ｄｂｅ．ａｃｔｉｖｅ  ＝  オフ
【０１０２】
ファイル操作イベントがファイル書き込み操作（ｗｒｉｔｅ）である場合、名前空間複製部１５は、このファイル操作イベントを無視する。
【０１０３】
次に、名前空間複製部１５は、ファイル情報イベントに先行するファイル操作イベント（すなわち、ファイル情報イベントに記録されている情報取得時刻Ｔ−Ａより小さい情報取得時刻が記録されているファイル操作イベント）の処理を全て処理したか否かの判断を行う（Ｓ３０４）。未処理のファイル操作イベントが残っている場合（Ｓ３０４，Ｎ）、処理Ｓ３０３へ戻る。一方、全て処理した場合（Ｓ３０４、Ｙ）、ファイル情報イベントに記録されていた時刻が、ファイルシステムにより設定したものか否か、すなわちＡが０であるか否かの判断を行う（Ｓ３１６）。
【０１０４】
ファイル情報イベントに記録されていた時刻がファイルシステムにより設定されたものではなく、ファイル情報イベントとファイル操作イベントの順序関係を特定できない場合（Ｓ３１６，Ｎ）、処理Ｓ３０９に移行する。一方、ファイルシステムによって設定されたものである場合（Ｓ３１６，Ｙ）、このファイル情報イベントを名前空間複製ＤＢ２３に情報取得済みとして登録する（Ｓ３０５）。同一ファイルがすでに登録されていた場合、名前空間複製部１５は、登録されている全てのタプルの内容を変更し、更に必要であれば（すなわち登録済みエントリが全て別名であった場合）、このファイル情報イベントに対応するタプルを登録する。ここで、以下の条件をすべて満たすエントリが存在するとき、登録済みと見なす。
【０１０５】
ｄｂｅ．ｉｎｏｄｅ＃  ＝＝  ｅｖｅｎｔ．ｉｎｏｄｅ＃
【０１０６】
次に、未登録時の登録内容を以下に示す。
【０１０７】
ｄｂｅ．ｍ＿ｉｎｏｄｅ＃  ＝  ｅｖｅｎｔ．ｍ＿ｉｎｏｄｅ＃
ｄｂｅ．ｆｔｙｐｅ  ＝  ｅｖｅｎｔ．ｆｔｙｐｅ
ｄｂｅ．ｆｎａｍｅ  ＝  ｅｖｅｎｔ．ｆｎａｍｅ
ｄｂｅ．ｉｎｏｄｅ＃  ＝  ｅｖｅｎｔ．ｉｎｏｄｅ＃
ｄｂｅ．ａｔｔｒ  ＝  ｅｖｅｎｔ．ａｔｔｒ
ｄｂｅ．ａｃｔｉｖｅ  ＝  オン
【０１０８】
次に、既登録時の変更内容を以下に示す。
【０１０９】
ｄｂｅ．ａｃｔｉｖｅ  ＝  オン
ｄｂｅ．ａｔｔｒ  ＝  ｅｖｅｎｔ．ａｔｔｒ
【０１１０】
以下の条件を満たすタプルが一つも存在しない場合、既登録時でも新しくタプルを登録する。
ｄｂｅ．ｍ＿ｉｎｏｄｅ＃  ＝  ｅｖｅｎｔ．ｍ＿ｉｎｏｄｅ＃
ｄｂｅ．ｆｎａｍｅ  ＝  ｅｖｅｎｔ．ｆｎａｍｅ
【０１１１】
この場合の登録内容を以下に示す。
【０１１２】
ｄｂｅ．ｍ＿ｉｎｏｄｅ＃  ＝  ｅｖｅｎｔ．ｍ＿ｉｎｏｄｅ＃
ｄｂｅ．ｆｔｙｐｅ  ＝  ｅｖｅｎｔ．ｆｔｙｐｅ
ｄｂｅ．ｆｎａｍｅ  ＝  ｅｖｅｎｔ．ｆｎａｍｅ
ｄｂｅ．ｉｎｏｄｅ＃  ＝  ｅｖｅｎｔ．ｉｎｏｄｅ＃
ｄｂｅ．ａｔｔｒ  ＝  ｅｖｅｎｔ．ａｔｔｒ
ｄｂｅ．ａｃｔｉｖｅ  ＝  オン
【０１１３】
処理Ｓ３１６において処理Ｓ３０９に移行した場合、名前空間複製部１５は、未処理のファイル操作イベントを順に調べ順序関係を特定できないファイル操作イベント（すなわち、ファイル操作イベントに記録されている時刻がファイル情報取得時刻Ｔ＋最大誤差許容時間Ａ以下の値を持つもの）に同一ｉｎｏｄｅ番号を含むものがあるか否かの判断を行う（Ｓ３０９）。同一ｉｎｏｄｅ番号を含むものがある場合（Ｓ３０９，Ｙ）、このファイル情報イベントを無視し、処理Ｓ３０１へ移行する。これは、ファイル操作イベントの内容で名前空間複製ＤＢ２３を更新すれば、ファイル操作の結果を見逃すことはなく、かつ情報取得済みが設定されないので、再度ファイル情報取得処理を起動できるためである。一方、同一ｉｎｏｄｅ番号を含むものがない場合（Ｓ３０９，Ｎ）、このファイル情報イベントを名前空間複製ＤＢに登録するため、処理Ｓ３０５へ移行する。
【０１１４】
処理Ｓ３０１において、未処理のファイル情報イベントが存在しない場合、すなわち、記録されていた全てのファイル情報イベントの処理を終了した場合（Ｓ３０１，Ｎ）、名前空間複製部１５は、名前空間の変更を行うファイル操作との競合によりファイル情報取得処理で見逃した名前空間のセグメント（情報未取得のディレクトリ）が存在するか否かの判断を行う（Ｓ３１１）。情報未取得のディレクトリが存在する（すなわち、ｄｂｅ．ａｃｔｉｖｅがオフでかつｄｂｅ．ｆｔｙｐｅがｄｉｒであるタプルが名前空間複製ＤＢ中に存在する）場合（Ｓ３１１，Ｙ）、名前空間複製部１５は、そのディレクトリをルートとするファイル情報取得処理、およびその間に発生したファイル操作イベントの反映処理を行い（Ｓ３１２）、処理Ｓ３１１へ戻り、他の情報未取得のディレクトリについて繰り返す。一方、情報未取得のディレクトリが存在しない場合（Ｓ３１１，Ｎ）、このフローを終了する。
【０１１５】
なお、部分ファイル情報取得オプションが有効である場合には、処理Ｓ３１１で情報未取得のディレクトリの存在を以下の条件で判断する。すなわち、ｄｂｅ．ａｃｔｉｖｅがオフでかつｄｂｅ．ｆｔｙｐｅがｄｉｒでかつｄｂｅ．ｍ＿ｉｎｏｄｅ＃で示されるタプルｄｂｅ１が情報取得済み（ｄｂｅ１．ｉｎｏｄｅ＃  ＝＝  ｄｂｅ．ｍ＿ｉｎｏｄｅ＃  かつ  ｄｂｅ１．ａｃｔｉｖｅ  ＝＝  オン）
【０１１６】
次に、ファイル操作イベント同士の順序関係が特定できない場合の名前空間複製処理について説明する。
【０１１７】
これは、異なる複数のサーバ上でファイル操作イベントが採取されることから、ファイル操作イベント同士の順序の特定が困難で、しかもファイル情報イベントとファイル操作イベントの順序関係も特定できないケースである。このケースの場合には、ファイル作成、ファイル削除、ファイルへの別名付与、ファイルの名前変更、ファイル情報取得がどの順で実際に行われたかを特定できない。もし、実際に行われたのとは異なる順序でファイル操作イベントを名前空間複製ＤＢ２３に適用すると、作られたはずのファイルを名前空間複製ＤＢ２３上で消してしまったり、その逆に存在しないファイルをあると見なしてしまったりする。
【０１１８】
この場合、まず、名前空間複製部１５は、作成された可能性があるファイル・ディレクトリを名前空間複製ＤＢ２３に候補として仮登録する。候補とは、存在の有無を一意に決定できないファイル・ディレクトリを意味する。例えば、最大誤差許容時間内で、同一ファイル・ディレクトリに対する作成を伴うイベントと削除を伴うイベントが同時に発生した場合に、対応するファイル・ディレクトリが候補として登録される。ただし、最大誤差許容範囲内で同時に発生した操作イベントであっても、同一ノードから生成されたファイル操作イベントのため、順序関係を特定できる場合には、この限りではない。
【０１１９】
その後、名前空間複製部１５は、ファイル操作イベントあるいはファイル情報イベントで、候補のファイル・ディレクトリが存在しない、あるいは存在することを確認できたとき、候補から外す（名前空間複製ＤＢ２３からそのタプルを削除するあるいは候補表示をリセットする）ことで、最終的な名前空間を特定する。例えば、候補として登録されているファイルの削除が後続のファイル操作イベントで要求された場合には、候補を示すタプルが削除される。また、候補と同一のｉｎｏｄｅ番号を持つ異なる名前のファイルが生成された場合には、候補ファイルが本当は存在しなかったことを示しているので、名前空間複製部１５は、その候補ファイルを削除する。
【０１２０】
また、名前空間複製部１５がファイル操作イベントを全て処理した後でも、候補のファイル・ディレクトリがまだ残っていた場合には、候補のファイルあるいはディレクトリが移動元ファイルシステムに実際に存在するかどうかを確認することで、候補を絞り込む。
【０１２１】
この処理の詳細は後述するが、概要は以下の通りである。
【０１２２】
まず、名前空間複製部１５は、最大誤差許容時間範囲内に含まれる、ファイル情報イベントおよび生成系のファイル操作イベント、ファイル別名付与のファイル操作イベントを抽出し、名前空間複製ＤＢ２３に登録する。ここで、ｉｎｏｄｅ番号が登録済みでも、親属性が異なる（親ｉｎｏｄｅ番号またはファイル名が異なる）場合、名前空間複製部１５は、新規タプルとして情報取得済みで登録する。また、親属性も一致する場合、名前空間複製部１５は、見つけたタプルを情報取得済みに更新する。なお、新規に作成されたディレクトリは初期値が必ず空（ディレクトリ以下に一切ファイル・ディレクトリが存在しない状態）であるため、このディレクトリ以下に新しいファイル・ディレクトリが作成される場合には、必ず、対応する生成系ファイル操作イベントがこの後で出現する。したがって、情報取得済みで登録しても、このディレクトリ以下の名前空間情報を採取し損ねることがない。なお、ディレクトリに別名をつけることは許されていない。
【０１２３】
なお、部分ファイル情報取得オプションが有効である場合、親ディレクトリに対応するタプルに情報取得済みが表示されている、あるいは最大誤差許容時間内に同一ｉｎｏｄｅ番号をもつファイル情報取得イベントが存在する場合のみ、タプル登録を行う。すなわち、親ディレクトリが情報取得済みで登録されておらず、かつ親ディレクトリの情報取得イベントが最大誤差許容時間内に含まれない場合には、生成系のファイル操作イベントあるいはファイル別名付与のファイル操作イベントが現われても、タプルを登録することなく、このファイル操作イベントを無視する。
【０１２４】
次に、名前空間複製部１５は、同じ区間内に含まれるファイル名変更のファイル操作イベントを適用する。この場合、ｉｎｏｄｅ番号が登録済みでないときや、登録済みでもファイル操作イベントに含まれる移動先親（親ｉｎｏｄｅ番号とファイル名）と登録済みデータの親属性が一部でも異なっているときに、名前空間複製部１５は、移動先親を親属性に持つ新しいタプルを情報未取得で登録する。ファイル名変更のファイル操作イベントの場合には、それ以下にファイル・ディレクトリを持つ既存ディレクトリを移動する場合があるので、情報取得済みに変えるわけにはいかない。
【０１２５】
ただし、部分ファイル情報取得オプションが有効である場合には、移動先親ディレクトリに対応するタプルに情報取得済みが表示されている、あるいは最大誤差許容時間内に同一ｉｎｏｄｅ番号をもつファイル情報取得イベントが存在する場合のみ、タプル登録を行う。すなわち、親ディレクトリが情報取得済みで登録されておらず、かつ親ディレクトリの情報取得イベントが最大誤差許容時間内に含まれない場合には、ファイル名変更のファイル操作イベントを見つけても、タプルを登録しない。
【０１２６】
ここで、名前空間複製部１５が当該ファイル（すなわち、新規に登録したタプル）の削除を伴うファイル操作イベントを見つけた場合には、それらのタプルに候補表示を付加し、候補タプルであることを表示する。これは、登録しようとしているタプルの最大許容誤差時間内に本タプルを削除する可能性があるファイル操作イベントを見つけたときである。具体的には、このファイルを削除する削除系操作、あるいはこのファイルを削除するｒｅｎａｍｅ操作（移動元が一致するｒｅｎａｍｅ操作や移動先で削除対象となり得るｒｅｎａｍｅ操作）
【０１２７】
また、名前空間複製部１５は、作成時刻から考え本操作イベントに確実に先行すると判断できる候補タプル（先行候補タプル）の存在を確認できた場合には、候補タプルの候補表示を落とし、候補タプルでなくなったことを表示する。なお、先行候補タプルであるかどうかは、タプル登録時刻とイベント時刻の関係、タプル登録ノードとイベント発行ノードの関係から判断する。ｒｅｎａｍｅ操作の対象、ファイルｗｒｉｔｅ操作の対象、作成操作の対象のいずれかに該当する場合、存在を確定できていなかった先行候補タプルの候補表示を落とすことができる。
【０１２８】
また、名前空間複製部１５は、この過程で処理対象イベント操作と矛盾している、すなわち実在しない先行候補タプルを見つけたときにはそれらのタプルを全て名前空間複製ＤＢ２３から削除する。ｒｅｎａｍｅ操作イベント、削除操作イベントのいずれかが発生した場合、候補タプルが実は存在していなかったと判定できる。
【０１２９】
次に、名前空間複製部１５は、全てのファイル操作イベントデータ、ファイル情報イベントを処理し終わると、データ取得済みでない（すなわち、ｄｂｅ．ａｃｔｉｖｅがオフ）ディレクトリを名前空間複製ＤＢ２３上で見つけ、それをルートとするファイル情報取得処理、ファイル操作イベント反映処理を繰り返す。
【０１３０】
次に、名前空間複製部１５は、情報未取得のディレクトリが存在しなくなったら、残っている候補タプルを調べ、そのファイルの存在を、ファイルシステムに問い合わせ、実際に調査する。その結果、存在しないタプルを全て削除する。
【０１３１】
全ての候補タプルの処理が終了すると、名前空間複製処理は完了する。
【０１３２】
次に、上述した名前空間複製処理を実装した例を示す。図６と図７は、本発明に係る名前空間複製処理の実装の一例を示すフローチャートである。
【０１３３】
ここでは、まず、ファイル操作イベント同士の順序関係が特定できない場合のうち、世代番号を利用できる場合の名前空間複製処理のフローチャートを示す。
【０１３４】
世代番号は、同一ｉｎｏｄｅ番号を再使用するときに、そのｉｎｏｄｅ番号を使用していた旧ファイル・ディレクトリと区別するために、設定される番号で、ｉｎｏｄｅを割り当てるたびにカウントアップするカウンタとして実装することが多い。ファイルは世代番号を含むｉｎｏｄｅ番号で識別されるので、この場合には同じ番号が最大誤差許容時間内に重複して割り当てられることがないと考えてよい。
【０１３５】
したがって、世代番号を使用するファイルシステムでかつ、ファイル情報イベントおよびファイル操作イベントに設定されるｉｎｏｄｅ番号にファイルシステムが割り当てた世代番号を含めることができる場合には、同じｉｎｏｄｅ番号が最大誤差許容範囲内で重複して割り当てられることはないという特性を利用して、名前空間複製部１５は、矛盾検出を早期に行うことができる。
【０１３６】
なお、ｉｎｏｄｅ番号の割り当てに世代番号を使わないファイルシステムや使用しているファイルシステムでもファイル情報取得あるいはファイル操作イベントに世代番号を付加することができない場合（すなわちｉｎｏｄｅ番号の構成要素である世代番号が常に０で変化しないファイルシステム）では、同一ｉｎｏｄｅ番号が最大許容誤差時間内で重複して割り当てられることが起こり得る。これは、ファイル削除の結果、解放されたｉｎｏｄｅ番号が直後に作成したファイルで使われるケースである。
【０１３７】
世代番号を利用できない場合にこのフローチャートをどのように変更するかは、後で述べる。
【０１３８】
まず、名前空間複製部１５は、未処理の先頭のファイル情報イベント、および未処理の先頭のファイル操作イベントをサーバごとに調べ、最も小さい時刻を持つものを求め、このイベントＥｃが見つかったか否かの判断を行う（Ｓ４０１）。Ｅｃが見つかった場合（Ｓ４０１，Ｙ）、名前空間複製部１５は、そのイベントを取り出し、そのイベントに含まれる時刻をＴｃとする（Ｓ４０２）。次に、（全てのファイル操作イベントの反映が終わり、）Ｅｃが見つからなければ（Ｓ４０１，Ｎ）、名前空間複製部１５は、処理Ｓ４１６へ移行する。
【０１３９】
次に、名前空間複製部１５は、削除ペンディングリストに（Ｔｃ−最大誤差許容時間）より小さなイベント時刻を持つリスト要素がつながっているか否かの判断を行う（Ｓ４０３）、つながっていない場合（Ｓ４０３，Ｎ）、処理Ｓ４０９へ移行する。削除ペンディングリストとは、最大誤差許容時間を過ぎるまで名前空間複製ＤＢ２３への適用ができないファイル削除を伴うファイル操作イベント
の内容を保存しているメモリ上のリストである。図８は、本発明に係る削除ペンディングリストの構成の一例を示すブロック図である。この図のように、削除ペンディングリストには、まず、削除ペンディングリストヘッダ、その後に、削除系のファイル操作イベントや、ファイル名変更のファイル操作イベントがつながって保存されている。
【０１４０】
次に、名前空間複製部１５は、削除ペンディングリストの先頭リスト要素（Ｌｃ）を取り外す（Ｓ４０４）。次に、名前空間複製部１５は、Ｌｃが削除系のファイル操作イベント（ｄｅｌｅｔｅイベント）のコピーである場合には、Ｌｃに設定されているｉｎｏｄｅ番号で、名前空間複製ＤＢ２３を検索し、見つけた登録タプルの親ｉｎｏｄｅ番号がファイル名がＬｃに設定されている親ｉｎｏｄｅ番号およびファイル名と一致するものを全て削除する（Ｓ４０５）。ここで、世代番号を利用できる場合に削除したｉｎｏｄｅ番号を再度割り当てることは、ありえないので、削除しても問題はない。また、親ｉｎｏｄｅ番号やファイル名が異なるファイルは、別名と考えられるので削除できない。タイプが異なる、あるいはｄｅｌｅｔｅイベントがｄｉｒタイプなら見つけたものを全て削除できる。
【０１４１】
ここで、名前空間複製ＤＢ２３検索条件を以下に示す。
【０１４２】
ｄｂｅ．ｉｎｏｄｅ＃  ＝＝  ｅｖｅｎｔ．ｉｎｏｄｅ＃
【０１４３】
次に、タプル削除条件を以下に示す。
【０１４４】
（ｄｂｅ．ｍ＿ｉｎｏｄｅ＃  ＝＝  ｅｖｅｎｔ．ｍ＿ｉｎｏｄｅ＃
かつ  ｄｂｅ．ｆｎａｍｅ  ＝＝  ｅｖｅｎｔ．ｆｎａｍｅ）
あるいは
ｅｖｅｎｔ．ｆｔｙｐｅ  ＝＝  ｄｉｒ
あるいは
ｅｖｅｎｔ．ｆｔｙｐｅ  ！＝  ｄｂｅ．ｆｔｙｐｅ
【０１４５】
Ｌｃがファイル名変更のファイル操作イベント（ｒｅｎａｍｅイベント）のコピーである場合、名前空間複製部１５は、Ｌｃに設定されているｉｎｏｄｅ番号で名前空間複製ＤＢ２３を検索し、見つけた登録タプルの中で、所定の条件を満たすものを名前空間複製ＤＢ２３からすべて削除する（Ｓ４０６）。
【０１４６】
その条件とは、親ｉｎｏｄｅ番号がＬｃに設定されているソース親ｉｎｏｄｅ番号と一致し、かつファイル名がＬｃに設定されているソースファイル名と一致しかつイベント時刻に（Ｌｃに設定されている時刻−最大誤差許容時刻）より小さい値が設定されているものである。
【０１４７】
上記の判定処理で、イベント時刻以外の条件は全て満たすが、イベント時刻が（Ｌｃに設定されている時刻−最大誤差許容時刻）以上であるために、削除できなかったものについて、名前空間複製部１５は名前空間複製ＤＢ２３上で候補表示を立て、候補タプルであることを表示する。ただし、名前空間複製部１５は、見つけたタプルに設定されている作成ノードと、Ｌｃに設定されているイベント出力ノードが一致し、かつ、タプルに設定されているイベント時刻よりＬｃに設定されているイベント時刻が大きい場合には、上記の条件を満たすものとみなし、タプルを削除する。
【０１４８】
ここで、名前空間複製ＤＢ２３検索条件を以下に示す。
【０１４９】
ｄｂｅ．ｉｎｏｄｅ＃  ＝＝  ｅｖｅｎｔ．ｉｎｏｄｅ＃
【０１５０】
次に、タプル削除条件を以下に示す。
【０１５１】
（ｄｂｅ．ｆｎａｍｅ  ＝＝  ｅｖｅｎｔ．ｆｎａｍｅ
かつｄｂｅ．ｍ＿ｉｎｏｄｅ＃  ＝＝  ｅｖｅｎｔ．ｍ＿ｉｎｏｄｅ＃
かつ（ｄｂｅ．ｔｉｍｅ  ＜  ｅｖｅｎｔ．ｔｉｍｅ−最大誤差許容時間
あるいは（ｄｂｅ．ｔｉｍｅ  ＜  ｅｖｅｎｔ．ｔｉｍｅ
かつ  ｄｂｅ．ｎｏｄｅ＃  ＝＝  ｅｖｅｎｔ．ｎｏｄｅ＃）））
【０１５２】
次に、タプル更新条件を以下に示す。
【０１５３】
（ｄｂｅ．ｆｎａｍｅ  ＝＝  ｅｖｅｎｔ．ｆｎａｍｅ
かつｄｂｅ．ｍ＿ｉｎｏｄｅ＃  ＝＝  ｅｖｅｎｔ．ｍ＿ｉｎｏｄｅ＃
かつｄｂｅ．ｔｉｍｅ  ＞＝  ｅｖｅｎｔ．ｔｉｍｅ−最大誤差許容時間
かつ  ｄｂｅ．ｎｏｄｅ＃  ！＝  ｅｖｅｎｔ．ｎｏｄｅ＃）
【０１５４】
次に、タプル更新内容を以下に示す。
【０１５５】
ｄｂｅ．ｃａｎｄｉｔ  ＝  オン
【０１５６】
次に、名前空間複製部１５は、Ｌｃがファイル名変更ファイル操作イベント（ｒｅｎａｍｅイベント）のコピーである場合、Ｌｃに設定されている移動先親ｉｎｏｄｅ番号を親ｉｎｏｄｅ番号にもち、かつＬｃに設定されている移動先ファイル名をファイル名としてもつタプルを、名前空間複製ＤＢ２３の検索により見つける。次に、名前空間複製部１５は、見つかったタプルの中でイベント時刻に（Ｌｃに設定されている時刻−最大誤差許容時間）より小さい値が設定されているタプルを名前空間複製ＤＢ２３から削除する。また、見つかったタプルでタプルに設定されている作成ノードと、Ｌｃに設定されているイベント生成ノードが一致し、かつタプル中のイベント時刻がＬｃに設定されている時刻より小さいものについても、そのタプルを削除する（Ｓ４０７）。見つかったタプルで削除できなかったものが、２個以上残っている場合、名前空間複製部１５は、残ったタプル全てに候補表示をたて、候補タプルに変更する。Ｌｃに対応するｒｅｎａｍｅイベントで、移動先として登録したタプルは、Ｌｃに設定されている時刻と同じ値が設定されているので、削除対象から外れる。
【０１５７】
ここで、名前空間複製ＤＢ２３検索条件を以下に示す。
【０１５８】
ｄｂｅ．ｍ＿ｉｎｏｄｅ＃  ＝＝
ｅｖｅｎｔ．ｔａｒｇｅｔ．ｍ＿ｉｎｏｄｅ＃
ｄｂｅ．ｆｎａｍｅ  ＝＝  ｅｖｅｎｔ．ｔａｒｇｅｔ．ｆｎａｍｅ
【０１５９】
次に、タプル削除条件を以下に示す。
【０１６０】
ｄｂｅ．ｔｉｍｅ  ＜  ｅｖｅｎｔ．ｔｉｍｅ−最大誤差許容時間
あるいは
（ｄｂｅ．ｔｉｍｅ  ＜  ｅｖｅｎｔ．ｔｉｍｅ
かつ  ｄｂｅ．ｎｏｄｅ  ＝＝  ｅｖｅｎｔ．ｎｏｄｅ）
【０１６１】
次に、タプル更新内容を以下に示す。
【０１６２】
ｄｂｅ．ｃａｎｄｉｔ  ＝  オン；
【０１６３】
その後、名前空間複製部１５は、次の削除ペンディングリスト要素を処理するため、処理Ｓ４０３へ移行する。
【０１６４】
次に、名前空間複製部１５は、Ｅｃが生成系のファイル操作イベント（ｃｒｅａｔｅイベント）、ファイル別名付与のファイル操作イベント（ｌｉｎｋイベント）、ファイル情報イベント（ｇｅｔｓｔａｔイベント）のいずれかであるか否かを判断し（Ｓ４０９）、いずれかである場合（Ｓ４０９，Ｙ）、処理Ｓ４１４へ移行する。いずれでもない場合（Ｓ４０９，Ｎ）、Ｅｃが名前変更のファイル操作イベント（ｒｅｎａｍｅイベント）あるいは削除系のファイル操作イベント（ｄｅｌｅｔｅイベント）である場合、名前空間複製部１５は、新しくメモリ上に確保した削除ペンディングリスト要素に、このイベントデータの内容を複写した後、削除ペンディングリストの最後尾につなぐ（Ｓ４１０）。また、Ｅｃが名前変更のファイル操作イベントである場合、名前空間複製部１５は、Ｅｃに設定されているｉｎｏｄｅ番号で名前空間複製ＤＢ２３を検索。Ｅｃの内容と矛盾する（候補）タプルを全て削除する（Ｓ４１１）。
【０１６５】
ここで、名前空間複製ＤＢ２３検索条件を以下に示す。
【０１６６】
ｄｂｅ．ｉｎｏｄｅ＃  ＝＝  ｅｖｅｎｔ．ｉｎｏｄｅ＃
【０１６７】
次に、登録タプル削除条件を以下に示す。
【０１６８】
（ｄｂｅ．ｔｉｍｅ  ＜  ｅｖｅｎｔ．ｔｉｍｅ−最大許容誤差時間）
かつ  （ｄｂｅ．ｆｔｙｐｅ  ！＝  ｅｖｅｎｔ．ｆｔｙｐｅ
あるいは  （ｅｖｅｎｔ．ｆｔｙｐｅ  ＝＝  ｄｉｒ
かつ  （ｄｂｅ．ｍ＿ｉｎｏｄｅ＃  ！＝  ｅｖｅｎｔ．ｍ＿ｉｎｏｄｅ＃
あるいは  ｄｂｅ．ｆｎａｍｅ  ！＝  ｅｖｅｎｔ．ｆｎａｍｅ）））
【０１６９】
また、Ｅｃが名前変更のファイル操作イベント（ｒｅｎａｍｅイベント）の場合、名前空間複製部１５は、Ｅｃに設定されているｉｎｏｄｅ番号、移動先親ｉｎｏｄｅ番号、移動先ファイル名が全て一致するタプルを名前空間複製ＤＢ２３で探す。一致するタプルが存在しなければ、新規タプルを登録する。一致するタプルが既に存在し、かつタイプが一致する場合には、タプル内容を変更する。タプル内容を変更した結果、最終作成ノードが不定となってしまう場合には、ＮＵＬＬを設定。同一ノードのファイル操作イベント間の順序性に基づく削除の対象から除いておく。一致するタプルが見つかったが、タイプが異なる場合には、ファイル操作イベントより作成時刻が最大誤差許容時間範囲以前のもののみ削除する（Ｓ４１２）。
【０１７０】
ここで、名前空間複製ＤＢ２３検索条件を以下に示す。
【０１７１】
ｄｂｅ．ｉｎｏｄｅ＃  ＝＝  ｅｖｅｎｔ．ｉｎｏｄｅ＃
ｄｂｅ．ｍ＿ｉｎｏｄｅ＃  ＝＝
ｅｖｅｎｔ．ｔａｒｇｅｔ．ｍ＿ｉｎｏｄｅ＃
ｄｂｅ．ｆｎａｍｅ  ＝＝  ｅｖｅｎｔ．ｔａｒｇｅｔ．ｆｎａｍｅ
【０１７２】
次に、新規タプルの登録条件を以下に示す。
【０１７３】
タプルが見つからなかったか、見つかったタプルがｄｂｅ．ｆｔｙｐｅ  ！＝  ｅｖｅｎｔ．ｆｔｙｐｅ
【０１７４】
次に、新規タプルの登録内容を以下に示す。ただし、以下の新規タプル登録条件を満たしていても、部分ファイル情報取得オプションが有効である場合には、親ディレクトリが情報取得済みと表示されていないかぎり、新規タプルを登録しない。すなわち、部分ファイル情報取得オプションが有効な場合には、条件（ｄｂｅ．ａｃｔｉｖｅ  ＝＝  オン，ｄｂｅ．ｉｎｏｄｅ＃  ＝＝  ｅｖｅｎｔ．ｔａｒｇｅｔ．ｍ＿ｉｎｏｄｅ＃）を全て満たすタプルが名前空間複製ＤＢ２３に登録されている場合のみ、新規タプルを登録する。
【０１７５】
ｄｂｅ．ｍ＿ｉｎｏｄｅ＃  ＝  ｅｖｅｎｔ．ｔａｇｅｔ．ｍ＿ｉｎｏｄｅ＃
ｄｂｅ．ｆｔｙｐｅ  ＝  ｅｖｅｎｔ．ｆｔｙｐｅ
ｄｂｅ．ｆｎａｍｅ  ＝  ｅｖｅｎｔ．ｔａｒｇｅｔ．ｆｎａｍｅ
ｄｂｅ．ｉｎｏｄｅ＃  ＝  ｅｖｅｎｔ．ｉｎｏｄｅ＃
ｄｂｅ．ｔｉｍｅ  ＝  ｅｖｅｎｔ．ｔｉｍｅ
ｄｂｅ．ｃａｎｄｉｔ  ＝  オフ
ｄｂｅ．ｎｏｄｅ＃  ＝  ｅｖｅｎｔ．ｎｏｄｅ＃
【０１７６】
次に、登録タプル削除条件を以下に示す。
【０１７７】
ｄｂｅ．ｆｔｙｐｅ  ！＝  ｅｖｅｎｔ．ｆｔｙｐｅ
かつ  （ｄｂｅ．ｔｉｍｅ  ＜    ｅｖｅｎｔ．ｔｉｍｅ−最大誤差許容時間）
【０１７８】
次に、登録タプル更新条件を以下に示す。
【０１７９】
ｄｂｅ．ｆｔｙｐｅ  ＝＝  ｅｖｅｎｔ．ｆｔｙｐｅ
【０１８０】
次に、登録タプル更新内容を以下に示す。
【０１８１】
ｄｂｅ．ｎｏｄｅ＃  ＝  ＮＵＬＬ
（ｄｂｅ．ｎｏｄｅ＃  ！＝  ｅｖｅｎｔ．ｎｏｄｅ＃
かつ  ｄｂｅ．ｔｉｍｅ  ＞＝
ｅｖｅｎｔ．ｔｉｍｅ  −  最大誤差許容時間であった場合）
ｄｂｅ．ｎｏｄｅ＃  ＝  ｅｖｅｎｔ．ｎｏｄｅ＃（ｄｂｅ．ｎｏｄｅ＃  ＝＝  ｅｖｅｎｔ．ｎｏｄｅ＃  または  ｄｂｅ．ｔｉｍｅ  ＜  ｅｖｅｎｔ．ｔｉｍｅ−最大誤差許容時間であった場合）
ｄｂｅ．ｔｉｍｅ  ＝  ｅｖｅｎｔ．ｔｉｍｅ
【０１８２】
その後、名前空間複製部１５は、次のイベントを処理するため、処理Ｓ４０１へ移行する。
【０１８３】
次に、名前空間複製部１５は、Ｅｃに設定されているｉｎｏｄｅ番号で名前空間複製ＤＢ２３を検索し、見つかったタプルのうちＥｃに設定されているものと矛盾するタプルを全て削除する。また、Ｅｃに設定されている親ｉｎｏｄｅ番号、ファイル名、タイプが全て一致するものがあった場合には、そのタプルを更新する。また、一致するものがなかった場合には、新規タプルを登録する（Ｓ４１４）。
【０１８４】
ここで、名前空間複製ＤＢ２３検索条件を以下に示す。
【０１８５】
ｄｂｅ．ｉｎｏｄｅ＃  ＝＝  ｅｖｅｎｔ．ｉｎｏｄｅ＃
【０１８６】
次に、登録タプル削除条件を以下に示す。
【０１８７】
（ｄｂｅ．ｆｔｙｐｅ  ！＝  ｅｖｅｎｔ．ｆｔｙｐｅ  かつｄｂｅ．ｔｉｍｅ  ＜  ｅｖｅｎｔ．ｔｉｍｅ  −  最大誤差許容時間）
あるいは
（ｅｖｅｎｔ．ｆｔｙｐｅ  ＝＝  ｄｉｒ  かつｄｂｅ．ｍ＿ｉｎｏｄｅ＃  ！＝  ｅｖｅｎｔ．ｍ＿ｉｎｏｄｅ＃  かつ  ｄｂｅ．ｔｉｍｅ  ＜  ｅｖｅｎｔ．ｔｉｍｅ  −  最大誤差許容時間）
【０１８８】
次に、新規タプル登録条件を以下に示す。ただし、以下の新規タプル登録条件を満たしていても、部分ファイル情報取得オプションが有効である場合には、親ディレクトリが情報取得済みと表示されていないかぎり、新規タプルを登録しない。すなわち、部分ファイル情報取得オプションが有効な場合には、条件（ｄｂｅ．ａｃｔｉｖｅ  ＝＝  オン，ｄｂｅ．ｉｎｏｄｅ＃  ＝＝  ｅｖｅｎｔ．ｔａｒｇｅｔ．ｍ＿ｉｎｏｄｅ＃）を全て満たすタプルが名前空間複製ＤＢ２３に登録されている場合のみ、新規タプルを登録する。
【０１８９】
検索で見つかった全タプルが以下の条件を満たす。
ｄｂｅ．ｍ＿ｉｎｏｄｅ＃  ！＝  ｅｖｅｎｔ．ｍ＿ｉｎｏｄｅ＃  あるいは  ｄｂｅ．ｆｎａｍｅ  ！＝  ｅｖｅｎｔ．ｆｎａｍｅ  あるいはｄｂｅ．ｆｔｙｐｅ  ！＝  ｅｖｅｎｔ．ｆｔｙｐｅ
【０１９０】
次に、新規タプル登録内容を以下に示す。
【０１９１】
ｄｂｅ．ｍ＿ｉｎｏｄｅ＃  ＝  ｅｖｅｎｔ．ｍ＿ｉｎｏｄｅ＃
ｄｂｅ．ｆｔｙｐｅ  ＝  ｅｖｅｎｔ．ｆｔｙｐｅ
ｄｂｅ．ｆｎａｍｅ  ＝  ｅｖｅｎｔ．ｆｎａｍｅ
ｄｂｅ．ｉｎｏｄｅ＃  ＝  ｅｖｅｎｔ．ｉｎｏｄｅ＃
ｄｂｅ．ａｔｔｒ  ＝  ｅｖｅｎｔ．ａｔｔｒ
ｄｂｅ．ｔｉｍｅ  ＝  ｅｖｅｎｔ．ｔｉｍｅ
ｄｂｅ．ｃａｎｄｉｔ  ＝  オフ
ｄｂｅ．ｎｏｄｅ＃  ＝  ｅｖｅｎｔ．ｎｏｄｅ＃（ｅｖｅｎｔ．ｔｙｐｅ  ！＝  ｇｅｔｓｔａｔのとき）
ｄｂｅ．ｎｏｄｅ＃  ＝  ＮＵＬＬ  （ｅｖｅｎｔ．ｔｙｐｅ  ＝＝  ｇｅｔｓｔａｔのとき）
ｄｂｅ．ａｃｔｉｖｅ  ＝  オン
【０１９２】
次に、登録タプル更新条件を以下に示す。
【０１９３】
ｄｂｅ．ｍ＿ｉｎｏｄｅ＃  ＝＝  ｅｖｅｎｔ．ｍ＿ｉｎｏｄｅ＃  かつｄｂｅ．ｆｔｙｐｅ  ＝＝  ｅｖｅｎｔ．ｆｔｙｐｅ  かつ  ｄｂｅ．ｆｎａｍｅ  ＝＝  ｅｖｅｎｔ．ｆｎａｍｅ
【０１９４】
次に、登録タプル更新内容を以下に示す。
【０１９５】
ｄｂｅ．ｎｏｄｅ＃  ＝  ＮＵＬＬ  （ｄｂｅ．ｎｏｄｅ＃  ！＝  ｅｖｅｎｔ．ｎｏｄｅ＃  かつｄｂｅ．ｔｉｍｅ  ＞＝  ｅｖｅｎｔ．ｔｉｍｅ  −  最大誤差許容時間のとき）
ｄｂｅ．ｎｏｄｅ＃  ＝  ｅｖｅｎｔ．ｎｏｄｅ＃  （ｄｂｅ．ｔｉｍｅ  ＜    ｅｖｅｎｔ．ｔｉｍｅ  −  最大誤差許容時間のとき）
ｄｂｅ．ｔｉｍｅ  ＝  ｅｖｅｎｔ．ｔｉｍｅ
ｄｂｅ．ａｃｔｉｖｅ  ＝  オン
【０１９６】
その後、名前空間複製部１５は、次のイベントを処理するため、処理Ｓ４０１へ移行する。
【０１９７】
次に、名前空間複製部１５は、名前空間複製ＤＢ２３上で情報未取得のディレクトリを見つけ、それをルートとするファイル情報取得処理（具体的には、候補タプルの親ｉｎｏｄｅ＃を名前空間複製ＤＢ２３で順に検索し、／からのパス名を合成しファイル情報取得処理に渡す）を行ったのちに、ファイル操作イベント反映処理を繰り返す（Ｓ４１６）。なお、部分ファイル情報取得オプションが有効である場合には、上記情報未取得のディレクトリのうち、さらにその親ディレクトリに情報取得済みと表示されているものについてのみ、ファイル情報取得処理を繰り返す。
【０１９８】
次に、名前空間複製部１５は、情報未取得のディレクトリが存在しなくなったら、候補と表示されているタプルを順に調べ、そのファイルの存在を、ファイルシステム３に問い合わせることにより実際に調査し、存在しないタプルを全て削除する。存在しているファイルに対応するタプルは候補表示を落とす（Ｓ４１７）。具体的には、名前空間複製部１５は、候補タプルの親ｉｎｏｄｅ＃を名前空間複製ＤＢ２３で順に検索し、／からのパス名を合成し、ファイルシステム３にパス名を渡し、問い合わせる。なお、パスを合成する過程で、ディレクトリ以外のタプルを見つけた、あるいはタプルが見つからなかった場合には、ファイルが存在しないものとして、候補タプルを削除する。ファイルシステム３に問い合わせた結果、パスで示される途中のディレクトリの存在が確認できず、終端までたどれなかった場合には、処理途中でｒｅｎａｍｅによりパスの途中のディレクトリが変更された可能性があることを示している。この場合には蓄積されているファイル操作イベントを名前空間複製ＤＢに再度反映してからやり直す必要があるため、内部変数に再チェック要を表示しておき、次の候補タプルを処理する。
【０１９９】
全ての候補タプルの処理が終了すると、再チェック要が表示されているか否かを調べる（Ｓ４１８）。再チェック要が表示されている場合（Ｓ４１８，Ｙ）、Ｓ４０１に移行し、このフロー処理中に発生したファイル操作イベントの名前空間複製ＤＢ２３への反映からやり直す。最チェック要が表示されていない場合（Ｓ４１８，Ｎ）ならこのフローを終了する。
【０２００】
次に、世代番号を利用できない場合（解放されたｉｎｏｄｅ番号を短期間に再使用するファイルシステムの場合）の名前空間複製処理について説明する。
【０２０１】
世代番号が付加されている場合の名前空間複製処理とほぼ同じだが、以下の変更を加える。同一ｉｎｏｄｅに対する削除系と作成系が、最大誤差許容時間内でぶつかった場合、名前空間複製部１５は、削除系を適用せず、作成系のみを残し、候補表示をつけたままとする。具体的には、上記フローの処理Ｓ４０５を以下のように変更する。
【０２０２】
Ｌｃが削除系のファイル操作イベントデータのコピーである場合、名前空間複製部１５は、Ｌｃに設定されているｉｎｏｄｅ番号で、名前空間複製ＤＢ２３を検索する。見つけた登録タプルのうちで以下の条件を満たすものをすべて削除する。条件とは、親ｉｎｏｄｅ番号およびファイル名が一致し、かつ登録タプルのイベント時刻が、（削除ペンディングリスト要素に設定されている時刻−最大誤差許容時間）より小さいものである。また、名前空間複製部１５は、親ｉｎｏｄｅ番号およびファイル名が一致するが、登録タプルのイベント時刻が（削除ペンディングリスト要素に設定されている時刻−最大誤差許容時間）以上であるために削除できなかったものには、候補表示を立てる。
【０２０３】
ここで、名前空間複製ＤＢ２３の検索条件を以下に示す。
【０２０４】
ｄｂｅ．ｉｎｏｄｅ＃  ＝＝  ｅｖｅｎｔ．ｉｎｏｄｅ＃
【０２０５】
次に、登録タプル削除条件を以下に示す。
【０２０６】
（ｄｂｅ．ｍ＿ｉｎｏｄｅ＃  ＝＝  ｅｖｅｎｔ．ｍ＿ｉｎｏｄｅ＃  かつ  ｄｂｅ．ｆｎａｍｅ  ＝＝  ｅｖｅｎｔ．ｆｎａｍｅ  かつ  （ｄｂｅ．ｔｉｍｅ  ＜  ｅｖｅｎｔ．ｔｉｍｅ−最大誤差許容時間  あるいは  ｄｂｅ．ｎｏｄｅ＃  ＝＝  ｅｖｅｎｔ．ｎｏｄｅ＃  かつ  ｄｂｅ．ｔｉｍｅ  ＝＝  ｅｖｅｎｔ．ｔｉｍｅ））
あるいは
（ｄｂｅ．ｆｔｙｐｅ  ！＝  ｅｖｅｎｔ．ｆｔｙｐｅ  かつ  ｄｂｅ．ｔｉｍｅ  ＜  ｅｖｅｎｔ．ｔｉｍｅ−最大誤差許容時間）
あるいは
（ｅｖｅｎｔ．ｆｔｙｐｅ  ＝＝  ｄｉｒ  かつ  ｄｂｅ．ｔｉｍｅ  ＜  ｅｖｅｎｔ．ｔｉｍｅ  −最大誤差許容時間）
【０２０７】
次に、登録タプル更新条件を以下に示す。
【０２０８】
ｄｂｅ．ｍ＿ｉｎｏｄｅ＃  ＝＝  ｅｖｅｎｔ．ｍ＿ｉｎｏｄｅ  かつ  ｄｂｅ．ｆｎａｍｅ  ＝＝  ｅｖｅｎｔ．ｆｎａｍｅ  かつ  ｄｂｅ．ｔｉｍｅ  ＞＝  ｅｖｅｎｔ．ｔｉｍｅ−最大許容時間  かつ  ｄｂｅ．ｎｏｄｅ＃  ！＝  ｅｖｅｎｔ．ｎｏｄｅ＃
【０２０９】
次に、登録タプル更新内容を以下に示す。
【０２１０】
ｄｂｅ．ｃａｎｄｉｔ  ＝  オン
【０２１１】
なお、世代番号が付加されていない場合には、世代番号０が付加されたものとして、処理を行う。
【０２１２】
次に、ファイルデータ復元部１６によるファイルデータ復元処理とファイルシステム切り替え処理について説明する。
【０２１３】
ファイルデータ復元部１６は、名前空間複製部１５により作成された名前空間複製ＤＢ２３の名前空間に基づいて、移動先ファイルシステム４上にデータを復元していく。その後、ファイルデータ復元部１６の指示により、ファイルシステム切り替え部１７は、ファイルシステムの切り替えを行う。図９は、本発明に係るファイルデータ復元処理とファイルシステム切り替え処理の動作の一例を示すフローチャートである。
【０２１４】
まず、ファイルデータ復元処理として、ファイルデータ復元部１６は、移動対象先頭ディレクトリを示す名前空間複製ＤＢ２３中のタプル（ｔｏｐ＿ｄｂｅ＿ｅｎｔｒｙ）を、指定されたパスにより求める（Ｓ５０１）。具体的には、親ｉｎｏｄｅ番号をキーとして、パス名を構成するファイル名を保持するものをエントリ順に探す。次に、ファイルデータ復元部１６は、終了モードをオフにする（Ｓ５０２）。終了モードとは、ファイルシステム切り替え処理と共にファイル操作を一時抑止するモードである。次に、ファイルデータ復元部１６は、先頭ディレクトリを移動先ファイルシステム４の上に作り、属性情報を設定し（Ｓ５０３）、ｔｏｐ＿ｄｂｅ＿ｅｎｔｒｙにデータ復元中を表示する。次に、ファイルデータ復元部１６は、ｔｏｐ＿ｄｂｅ＿ｅｎｔｒｙ以下の名前空間を処理するために、ｔｏｐ＿ｄｂｅ＿ｅｎｔｒｙを引数（ｔａｒｇｅｔ＿ｄｂｅ＿ｅｎｔｒｙ）として再帰的関数ｒｅｓｔｏｒｅ（）を呼ぶ（Ｓ５０４）。次に、ファイルデータ復元部１６は、関数ｒｅｓｔｏｒｅ（）あるいはｅｖｅｎｔ＿ｐｒｏｃ（）処理中に発生したファイル操作イベントを移動先ファイルシステム４に反映するため、ｅｖｅｎｔ＿ｐｒｏｃ（）を呼ぶ（Ｓ５０５）。
【０２１５】
次に、ファイルデータ復元部１６は、未処理のファイル操作イベントの量が所定量よりも多いか否かの判断を行い（Ｓ５０６）、所定量より多い場合（Ｓ５０６，Ｙ）、処理Ｓ５０５へ戻る。
【０２１６】
一方、所定量以下の場合（Ｓ５０６，Ｎ）、ファイルデータ復元部１６は、終了モードをオンにし、以後、ファイルシステム切り替え処理を行う。
【０２１７】
まず、ファイルデータ復元部１６は、ファイルシステム切り替え部１７を呼び、アプリケーションプログラムからのファイル操作を一次抑止する（Ｓ５０７）。この要求を受けたファイルシステム切り替え部１７は、アプリケーションプログラムから発行されるファイルアクセス要求を、切り替え指示が発行されるまで停止する。具体的には、アプリケーションからの要求を受けたときに、フィルタドライバ内で抑止表示が解除されるのを待ち合わせる。
【０２１８】
次に、ファイルデータ復元部１６は、ｅｖｅｎｔ＿ｐｒｏｃ（）を呼び、未処理のファイル操作イベントを移動先ファイルシステムに同期的に反映する（Ｓ５０８）。次に、ファイルデータ復元部１６は、移動先ファイルシステムへの同期的反映が完了した時点でファイルシステム切り替え部１７を呼び、ファイルシステムの切り替え依頼と、ファイルアクセスの一時抑止を解除する要求を行う（Ｓ５０９）。この要求を受けた、ファイルシステム切り替え部１７は、ファイルシステム内キャッシュを全てフラッシュし、キャッシュデータを全て無効化する。その後、指定されたディレクトリにリンク情報を設定、操作イベント出力機構にイベント出力の停止を指示し、ファイルアクセスの一時抑止の解除を表示し、要求元であるファイルデータ復元部１６に復帰する。オープン中ファイルがあるため、メモリ上の制御表の切り替えが必要な場合には、その旨を対応ファイルのｉｎｏｄｅ番号のリストとともに要求元であるファイルデータ復元機構にエラーコードで通知し、処理を終了する。この場合には、ファイルアクセスの一時抑止の解除を表示することもない。
【０２１９】
次に、ファイルデータ復元部１６は、成功を応答されたか否かの判断を行い（Ｓ５１０）、成功を応答された場合（Ｓ５１０，Ｙ）、処理Ｓ５１３へ移行する。
【０２２０】
一方、ファイルデータ復元部１６がファイルシステムの切り替え指示を発行したが、オープン中ファイルが存在することから、キャッシュの無効化だけではファイルシステムを切り替えできないことにより、失敗を応答された場合（Ｓ５１０，Ｎ）、ファイルデータ復元部１６は、エラー応答で通知されたｉｎｏｄｅ番号に対応するタプルを名前空間複製ＤＢで求め、移動対象に含まれるかどうかを判断する。ｄｂｅ．ｉｎｒｅｓｔｏｒｅがオンの場合には、移動対象を示す。ファイルデータ復元部１６はエラーで通知されたｉｎｏｄｅ番号のリストの中で移動対象のファイルのパス名を名前空間複製ＤＢ２３により求め、移動先ファイルシステム４上でオープンする（Ｓ５１１）。次に、ファイルデータ復元部１６は、ｉｎｏｄｅ番号とオープン情報のペアからなるリストを引数としてファイルシステム切り替え部１７を呼び出し、制御表上でのファイルシステム切り替えを依頼する（Ｓ５１２）。この要求を受けた、ファイルシステム切り替え部１７は入力で指定された移動元ファイルシステム３上ファイル群のメモリ上制御を強制的に移動先側ファイルシステムのメモリ上制御データに切り替え、その後、リンク情報を設定し、ファイルアクセスの一時抑止を解除する。
【０２２１】
移動先ファイルシステム４への切り替えが終了した後、移動の対象となったファイル群を、名前空間も含めて、移動元ファイルシステム３上から削除し（Ｓ５１３）、このフローを終了する。
【０２２２】
ここで、再帰的関数ｒｅｓｔｏｒｅ（ｔａｒｇｅｔ＿ｄｂｅ＿ｅｎｔｒｙ）の処理について説明する。
【０２２３】
図１０は、本発明に係るｒｅｓｔｏｒｅ（）の動作の一例を示すフローチャートである。まず、ｒｅｓｔｏｒｅ（）は、引数ｔａｒｇｅｔ＿ｄｂｅ＿ｅｎｔｒｙを親として持つ、名前空間複製ＤＢ２３中の子のタプル（ｄａｕｇｈｔｅｒ＿ｄｂｅ＿ｅｎｔｒｙ）を求める（Ｓ６０１）。このときの検索条件を以下に示す。
【０２２４】
ｔａｒｇｅｔ＿ｄｂｅ＿ｅｎｔｒｙ．ｉｎｏｄｅ＃  ＝＝  ｄａｕｇｈｔｅｒ＿ｄｂｅ＿ｅｎｔｒｙ．ｍ＿ｉｎｏｄｅ＃
【０２２５】
次に、ｒｅｓｔｏｒｅ（）は、求まったｄａｕｇｈｔｅｒ＿ｄｂｅ＿ｅｎｔｒｙに対し、以下を繰り返す。
【０２２６】
ｒｅｓｔｏｒｅ（）は、次のｄａｕｇｈｔｅｒ＿ｄｂｅ＿ｅｎｔｒｙにデータ復元中が既に設定されているか否かの判断を行い（Ｓ６０３）、データ復元中が設定されている場合（Ｓ６０３，Ｙ）、ｄａｕｇｈｔｅｒ＿ｄｂｅ＿ｅｎｔｒｙにゴミ箱ファイル名が設定されているか否か、すなわちゴミ箱上の表示がされているか否かの判断を行う（Ｓ６１１）。ゴミ箱ファイル名が設定されている場合（Ｓ６１１，Ｙ）、設定されているゴミ箱ファイル名からタプルに設定されている本来のファイル名に、移動先ファイルシステム４上でファイル名を変更。タプルのゴミ箱表示をリセットする。その後処理Ｓ６１０へ移動する。ゴミ箱上の表示がされていない場合（Ｓ６１１，Ｎ）、直ちに、処理Ｓ６１０へ移動する。
【０２２７】
一方、データ復元中が設定されていない場合（Ｓ６０３，Ｎ）、ｒｅｓｔｏｒｅ（）は、移動先ファイルシステム４上に、ｄａｕｇｈｔｅｒ＿ｄｂｅ＿ｅｎｔｒｙに対応するファイルあるいはディレクトリを作る（Ｓ６０４）。次に、ｒｅｓｔｏｒｅ（）は、データ復元中をｄａｕｇｈｔｅｒ＿ｄｂｅ＿ｅｎｔｒｙに設定する（Ｓ６０５）。
【０２２８】
ｄａｕｇｈｔｅｒ＿ｄｂｅ＿ｅｎｔｒｙ．ｉｎｒｅｓｔｏｒｅ  ＝  オン
【０２２９】
次に、ｒｅｓｔｏｒｅ（）は、ｄａｕｇｈｔｅｒ＿ｄｂｅ＿ｅｎｔｒｙで表されるものが、ファイルであるか否かの判断を行う（Ｓ６０６）。ファイルであった場合（Ｓ６０６，Ｙ）、現時刻をデータ移動完了時刻としてｄａｕｇｈｔｅｒ＿ｄｂｅ＿ｅｎｔｒｙに設定する。
【０２３０】
ｄａｕｇｈｔｅｒ＿ｄｂｅ＿ｅｎｔｒｙ．ｃｍｐｔｉｍｅ  ＝  現時刻
【０２３１】
次に、ｒｅｓｔｏｒｅ（）は、移動元ファイルシステム３上でデータを先頭からよみ、移動先ファイルシステム４のファイルに複製していく（Ｓ６０７）。
【０２３２】
ｄａｕｇｈｔｅｒ＿ｄｂｅ＿ｅｎｔｒｙで表されるものが、ディレクトリであった場合（Ｓ６０６，Ｎ）、ｄａｕｇｈｔｅｒ＿ｄｂｅ＿ｅｎｔｒｙを関数ｒｅｓｔｏｒｅ（）に渡し、再帰的に処理を行う（Ｓ６０８）。
【０２３３】
次に、ｒｅｓｔｏｒｅ（）は、全てのｄａｕｇｈｔｅｒ＿ｄｂｅ＿ｅｎｔｒｙの処理を完了したか否かの判断を行う（Ｓ６１０）。完了した場合（Ｓ６１０，Ｙ）、呼び出し元に復帰し、このフローを終了する。そうでなければ（Ｓ６１０，Ｎ）、処理Ｓ６０１に戻って処理を続ける。
【０２３４】
ｅｖｅｎｔ＿ｐｒｏｃ（）の処理について説明する。
【０２３５】
ｅｖｅｎｔ＿ｐｒｏｃ（）はファイルデータ復元処理中に発生したファイル操作イベントを処理し、作成中の移動先ファイルシステム４上データの補正と名前空間複製ＤＢ２３への反映を行う。
【０２３６】
処理方式は、名前空間複製処理で述べたものと同様である。但し、このフェーズではファイル情報イベントは存在せず、ファイル操作イベント間の順序性の解決だけを図ることになる。また、名前空間複製ＤＢ２３上のデータ復元中表示があるタプルを削除する場合には、移動先ファイルシステム４上で対応するデータの削除（ｒｅｍｏｖｅあるいはｒｍｄｉｒ）も同時に行う。また、名前空間複製ＤＢ２３上のデータ復元中表示があるタプルのファイル名を変更した結果、移動対象から外れた場合（移動先親ｉｎｏｄｅ番号を示すタプルにデータ復元中が表示されていないことで判断）には、一意なファイル名を生成し、それをタプルのゴミ箱名に設定し、移動先ファイルシステム上に作成済みのファイルの名前を移動先ファイルシステムのゴミ箱ディレクトリ上のゴミ箱名をもつファイルに変更する。
【０２３７】
なお、ゴミ箱上表示はｄｂｅ．ｇａｒｂａｇｅで示され、この領域にゴミ箱名が設定される。タプルを新規に登録した場合にＮＵＬＬで初期化され、ｅｖｅｎｔ＿ｐｒｏｃ（）が移動対象から移動対象外に名前変更が行われたことを認識した時点で、ユニークなゴミ箱名が設定される。
【０２３８】
また、名前空間複製ＤＢ２３上のデータ復元中表示がないタプルのファイル名を変更した結果、移動対象に加わった場合（移動先親ｉｎｏｄｅ番号を示すタプルにデータ復元中が表示されていることで判断）、ｒｅｓｔｏｒｅ（）を呼び、ディレクトリ以下のデータを移動対象ファイルシステムに反映する。この操作の結果、移動対象からいったん外れていたゴミ箱名をもつディレクトリやファイルが再度移動対象に復帰した場合には、ゴミ箱ディレクトリからｒｅｎａｍｅ操作により、移動先ファイルシステム上で、移動対象のディレクトリの下にｒｅｓｔｏｒｅ（）が復帰させ、対応するタプルのｄｂｅ．ｇａｒｂａｇｅをＮＵＬＬに戻す（Ｓ６１１）。
【０２３９】
また、データ復元中表示がたっているタプルに対応する、ファイル書き込みイベントを見つけ、データ移動完了時刻（ｄｂｅ．ｃｍｐｔｉｍｅ）とイベント時刻（ｅｖｅｎｔ．ｔｉｍｅ）の差が最大誤差許容時間以内かあるいはイベント時刻の方がデータ移動完了時刻よりも大きかった場合には、移動元ファイルシステムからイベントで示された範囲のデータを読み込み、移動先ファイルシステムに書き込み、データ移動完了時刻を更新する。イベント時刻がデータ移動完了時刻―最大誤差許容時間より小さければ、（すでにこのファイル書き込みイベントで示される範囲は移動先ファイルシステム上にコピー済みであることを示しており）対処する必要はない。なお、ファイル操作イベント間の順序関係が特定できる場合には、最大誤差許容時間を０とみなせばよい。
【０２４０】
なお、部分ファイル情報取得オプションが有効な場合には、移動対象ファイルが移動対象外に変更された、あるいはその逆に移動対象でなかったものが移動対象に加わったことをｅｖｅｎｔ＿ｐｒｏｃ（）が認識した時点で、エラーとみなし、必要な資源解放を行った後、ファイルデータ復元処理を終了させる。
【０２４１】
更に、ファイル管理装置を構成するコンピュータにおいて上述した各ステップを実行させるプログラムを、ファイル管理プログラムとして提供することができる。上述したプログラムは、コンピュータにより読取り可能な記録媒体に記憶させることによって、ファイル管理装置を構成するコンピュータに実行させることが可能となる。ここで、上記コンピュータにより読取り可能な記録媒体としては、ＲＯＭやＲＡＭ等のコンピュータに内部実装される内部記憶装置、ＣＤ−ＲＯＭやフレキシブルディスク、ＤＶＤディスク、光磁気ディスク、ＩＣカード等の可搬型記憶媒体や、コンピュータプログラムを保持するデータベース、或いは、他のコンピュータ並びにそのデータベースや、更に回線上の伝送媒体をも含むものである。
【０２４２】
なお、ファイル情報記録ステップとは、実施の形態におけるファイル情報取得処理に対応する。また、ファイル操作記録ステップとは、実施の形態におけるファイル操作取得処理に対応する。また、ファイルデータ複製ステップとは、実施の形態におけるファイルデータ復元処理に対応する。また、ファイル情報記録部とは、実施の形態におけるファイル情報取得部に対応する。また、ファイル操作記録部とは、実施の形態におけるファイル操作取得部に対応する。また、ファイルデータ複製部とは、実施の形態におけるファイルデータ復元部に対応する。また、対象ファイルシステムとは、実施の形態における移動元ファイルシステムに対応する。また、複製先ファイルシステムとは、実施の形態における移動先ファイルシステムに対応する。
【０２４３】
（付記１）  複数のファイルシステムのファイルの管理をコンピュータに実行させるファイル管理プログラムであって、
予め指定された対象ファイルシステムにおける予め指定された対象ファイル群のファイル情報を取得し、ファイル情報イベントとして記録するファイル情報記録ステップと、
前記対象ファイル群に対するファイル操作を取得し、ファイル操作イベントとして記録するファイル操作記録ステップと、
前記ファイル情報イベントと前記ファイル操作イベントに基づいて、前記対象ファイルの名前空間を複製した名前空間複製データベースを生成する名前空間複製ステップと、
をコンピュータに実行させるファイル管理プログラム。
（付記２）  付記１に記載のファイル管理プログラムにおいて、
更に、名前空間複製ステップの後、
予め指定された複製先ファイルシステムにおいて前記名前空間複製データベースに基づいてディレクトリを設定すると共に、対象ファイルシステムから前記複製先ファイルシステムへ前記対象ファイル群のデータの複製を行うファイルデータ複製ステップをコンピュータに実行させることを特徴とするファイル管理プログラム。
（付記３）  付記２に記載のファイル管理プログラムにおいて、
前記ファイルデータ複製ステップは、前記複製先ファイルシステムに対して未処理のファイル操作イベントの反映を行い、前記未処理のファイル操作イベントの量が所定の量以下になった場合、前記ファイルシステム切り替えステップの指示を行うことを特徴とするファイル管理プログラム。
（付記４）  付記２または付記３に記載のファイル管理プログラムにおいて、
更に、ファイルデータ複製ステップの後、
前記対象ファイル群に対するアクセスについて、前記対象ファイルシステムから前記複製先ファイルシステムへの切り替えを行うファイルシステム切り替えステップをコンピュータに実行させることを特徴とするファイル管理プログラム。
（付記５）  付記４に記載のファイル管理プログラムにおいて、
前記ファイルシステム切り替えステップは、ファイルアクセスの抑止を行い、前記複製先ファイルシステムに対して未処理のファイル操作イベントの反映を行い、前記複製先ファイルシステムにリンク情報を設定し、ファイルシステムの切り替えが完了すると前記ファイルアクセスの抑止を解除することを特徴とするファイル管理プログラム。
（付記６）  付記１乃至付記５のいずれかに記載のファイル管理プログラムにおいて、
前記ファイル情報記録ステップは、前記対象ファイルシステムにおけるディレクトリの階層構造をパス名の昇順または降順に辿り、前記対象ファイル群の名前と属性を含むファイル情報を記録することを特徴とするファイル管理プログラム。
（付記７）  付記１乃至付記６のいずれかに記載のファイル管理プログラムにおいて、
前記名前空間複製ステップは、前記ファイル情報イベントと前記ファイル操作イベントの順序を特定し、該順序に従って前記ファイル情報イベントの内容に前記ファイル操作イベントの内容を反映し、名前空間複製データベースを生成することを特徴とするファイル管理プログラム。
（付記８）  付記１乃至付記７のいずれかに記載のファイル管理プログラムにおいて、
前記名前空間複製ステップは、前記ファイル情報イベントと前記ファイル操作イベントの情報取得時刻がファイルシステムから得られない場合、前記ファイル操作記録ステップまたは前記ファイル操作記録ステップが情報取得時刻を設定し、該情報取得時刻の誤差の許容範囲を予め設定し、特定の２つのイベントの情報取得時刻の差が前記許容範囲より大きい場合に前記２つのイベントの順序関係を確定させることを特徴とするファイル管理プログラム。
（付記９）  付記１乃至付記８のいずれかに記載のファイル管理プログラムにおいて、
前記名前空間複製ステップは、前記ファイル情報イベントと前記ファイル操作イベントの順序が特定できない場合、作成された可能性があるファイルまたはディレクトリを候補とし、前記ファイル情報イベントと前記ファイル操作イベントに基づいて前記候補の存在を判定し、存在が確定した候補を前記名前空間複製データベースへ登録し、前記候補の存在を判定できないものについては、前記候補の存在を前記対象ファイルシステムに確認し、存在が確定した候補を前記名前空間複製データベースへ登録することを特徴とするファイル管理プログラム。
（付記１０）  複数のファイルシステムのファイルの管理を行うファイル管理装置であって、
予め指定された対象ファイルシステムにおける予め指定された対象ファイル群のファイル情報を取得し、ファイル情報イベントとして記録するファイル情報記録部と、
前記対象ファイル群に対するファイル操作を取得し、ファイル操作イベントとして記録するファイル操作記録部と、
前記ファイル情報イベントと前記ファイル操作イベントに基づいて、前記対象ファイルの名前空間を複製した名前空間複製データベースを生成する名前空間複製部と、
を備えてなるファイル管理装置。
（付記１１）  付記１０に記載のファイル管理装置において、
更に、予め指定された複製先ファイルシステムにおいて前記名前空間複製データベースに基づいてディレクトリを設定すると共に、対象ファイルシステムから前記複製先ファイルシステムへ前記対象ファイル群のデータの複製を行うファイルデータ複製部を備えることを特徴とするファイル管理装置。
（付記１２）  付記１１に記載のファイル管理装置において、
前記ファイルデータ複製部は、前記複製先ファイルシステムに対して未処理のファイル操作イベントの反映を行い、前記未処理のファイル操作イベントの量が所定の量以下になった場合、前記ファイルシステム切り替え部の指示を行うことを特徴とするファイル管理装置。
（付記１３）  付記１１または付記１２に記載のファイル管理装置において、
更に、前記対象ファイル群に対するアクセスについて、前記対象ファイルシステムから前記複製先ファイルシステムへの切り替えを行うファイルシステム切り替え部を備えることを特徴とするファイル管理装置。
（付記１４）  付記１３に記載のファイル管理装置において、
前記ファイルシステム切り替え部は、ファイルアクセスの抑止を行い、前記複製先ファイルシステムに対して未処理のファイル操作イベントの反映を行い、前記複製先ファイルシステムにリンク情報を設定し、ファイルシステムの切り替えが完了すると前記ファイルアクセスの抑止を解除することを特徴とするファイル管理装置。
（付記１５）  付記１０乃至付記１４のいずれかに記載のファイル管理装置において、
前記ファイル情報記録部は、前記対象ファイルシステムにおけるディレクトリの階層構造をパス名の昇順または降順に辿り、前記対象ファイル群の名前と属性を含むファイル情報を記録することを特徴とするファイル管理装置。
（付記１６）  付記１０乃至付記１５のいずれかに記載のファイル管理装置において、
前記名前空間複製部は、前記ファイル情報イベントと前記ファイル操作イベントの順序を特定し、該順序に従って前記ファイル情報イベントの内容に前記ファイル操作イベントの内容を反映し、名前空間複製データベースを生成することを特徴とするファイル管理装置。
（付記１７）  付記１０乃至付記１６のいずれかに記載のファイル管理装置において、
前記名前空間複製部は、前記ファイル情報イベントと前記ファイル操作イベントの情報取得時刻がファイルシステムから得られない場合、前記ファイル操作記録部または前記ファイル操作記録部が情報取得時刻を設定し、該情報取得時刻の誤差の許容範囲を予め設定し、特定の２つのイベントの情報取得時刻の差が前記許容範囲より大きい場合に前記２つのイベントの順序関係を確定させることを特徴とするファイル管理装置。
（付記１８）  複数のファイルシステムのファイルの管理をコンピュータに実行するファイル管理方法であって、
予め指定された対象ファイルシステムにおける予め指定された対象ファイル群のファイル情報を取得し、ファイル情報イベントとして記録するファイル情報記録ステップと、
前記対象ファイル群に対するファイル操作を取得し、ファイル操作イベントとして記録するファイル操作記録ステップと、
前記ファイル情報イベントと前記ファイル操作イベントに基づいて、前記対象ファイルの名前空間を複製した名前空間複製データベースを生成する名前空間複製ステップと、
を実行するファイル管理方法。
（付記１９）  付記１８に記載のファイル管理方法において、
更に、名前空間複製ステップの後、
予め指定された複製先ファイルシステムにおいて前記名前空間複製データベースに基づいてディレクトリを設定すると共に、対象ファイルシステムから前記複製先ファイルシステムへ前記対象ファイル群のデータの複製を行うファイルデータ複製ステップを実行することを特徴とするファイル管理方法。
（付記２０）  付記１９に記載のファイル管理方法において、
更に、ファイルデータ複製ステップの後、
前記対象ファイル群に対するアクセスについて、前記対象ファイルシステムから前記複製先ファイルシステムへの切り替えを行うファイルシステム切り替えステップを実行することを特徴とするファイル管理方法。
【図面の簡単な説明】
【０２４４】
【図１】本発明に係る情報処理システムの構成の一例を示すブロック図である。
【図２】本発明に係るサーバによるファイル移動処理の動作の一例を示すフローチャートである。
【図３】本発明に係るファイル情報取得処理の動作の一例を示すフローチャートである。
【図４】名前空間におけるディレクトリの階層構造の一例を示す図である。
【図５】ファイル操作イベント同士の順序関係が特定できる場合の名前空間複製処理の一例を示すフローチャートである。
【図６】本発明に係る名前空間複製処理の実装の一例を示すフローチャート（その１）である。
【図７】本発明に係る名前空間複製処理の実装の一例を示すフローチャート（その２）である。
【図８】本発明に係る削除ペンディングリストの構成の一例を示すブロック図である。
【図９】本発明に係るファイルデータ復元処理とファイルシステム切り替え処理の動作の一例を示すフローチャートである。
【図１０】本発明に係るｒｅｓｔｏｒｅ（）の動作の一例を示すフローチャートである。
【符号の説明】
【０２４５】
１，２  サーバ、３，４  ファイルシステム、１１  ファイルシステム制御部、１２  アプリケーション部、１３  ファイル情報取得部、１４  ファイル操作取得部、１５  名前空間複製部、１６  ファイルデータ復元部、１７  ファイルシステム切り替え部、２１  ファイル情報イベント記憶部、２２  ファイル操作イベント記憶部、２３  名前空間複製ＤＢ。
【図１】
0004414381.tif 000002
【図２】
0004414381.tif 000003
【図３】
0004414381.tif 000004
【図４】
0004414381.tif 000005
【図５】
0004414381.tif 000006
【図６】
0004414381.tif 000007
【図７】
0004414381.tif 000008
【図８】
0004414381.tif 000009
【図９】
0004414381.tif 000010
【図１０】
0004414381.tif 000011