(57)【要約】  情報記憶を複製するシステム及び方法が提示される。一実施形態では、ネーム空間変換プロセスが実行される。ファイルシステム動作変更に関するノード情報が受信される。変更ノード／パスネームオブジェクト変換プロセスが実行される。非変更ノード／パスネームオブジェクト変換プロセスが実行される。例示的な一実施態様では、変更ノード／パスネームオブジェクト変換プロセス及び非変更ノード／パスネームオブジェクト変換プロセスは、オブジェクト表示及び親ノード表示を返すデータ構造を利用する。オブジェクト表示は、パスネームに挿入される。
2013506920.tif 000002
【特許請求の範囲】
【請求項１】
ファイルシステム動作変更に関するノード情報を受信するステップと、
前記ノード情報に対して変更ノード／パスネームオブジェクト変換プロセスを実行するステップと、
前記ノード情報に対して非変更ノード／パスネームオブジェクト変換プロセスを実行するステップと、
前記変更ノード／パスネームオブジェクト変換プロセス及び前記非変更ノード／パスネームオブジェクト変換プロセスの結果に基づいて、オブジェクトインジケータをパスネームに挿入するステップと
を含む、ネーム空間変換方法。
【請求項２】
前記変更ノード／パスネームオブジェクト変換プロセス及び前記非変更ノード／パスネームオブジェクト変換プロセスは、前記オブジェクトインジケータを返すデータ構造を利用する、請求項１に記載のファイル複製方法。
【請求項３】
前記変更ノード／パスネームオブジェクト変換プロセス及び前記非変更ノード／パスネームオブジェクト変換プロセスは、親ノードインジケータを返すデータ構造を利用する、請求項１に記載のファイル複製方法。
【請求項４】
前記変更ノード／パスネームオブジェクト変換プロセスは、ネーム空間変更に関連するノードインジケータを親ノードインジケータ及びオブジェクト名にマッピングするネーム空間変更追跡データ構造を利用する、請求項１に記載のファイル複製方法。
【請求項５】
前記ネーム空間変更追跡データ構造はハッシュテーブルを含む、請求項４に記載のファイル複製方法。
【請求項６】
前記非変更ノード／パスネームオブジェクト変換プロセスは、最長パス追跡データ構造を利用する、請求項１に記載のファイル複製方法。
【請求項７】
前記最長パス追跡データ構造はプリフィックスツリーである、請求項６に記載のファイル複製方法。
【請求項８】
親オブジェクトノードインジケータを入力として前記変更ノードパスネームオブジェクト変換プロセスに返すステップをさらに含む、請求項１に記載のファイル複製方法。
【請求項９】
親オブジェクトノードインジケータを入力として前記非変更ノード／パスネームオブジェクト変換プロセスに返すステップをさらに含む、請求項１に記載のファイル複製方法。
【請求項１０】
計算装置により実行された場合、前記計算装置に記憶イメージ複製を実行させる命令を記憶したコンピュータ可読媒体を含む製品であって、前記命令は、
セッションチェックポイントでソースファイルシステムの凍結スナップショットを管理するイメージ凍結モジュールと、
ファイル変更ログ内のエントリを検索するファイル変更ログ検査モジュールであって、前記エントリは前記セッションチェックポイント間の変更に対応する、ファイル変更ログ検査モジュールと、
前記ファイル変更ログからの前記エントリに対応するノード表示をパスネームインジケータに変換するネーム空間変換モジュールと、
不必要な動作をフィルタリングするフィルタモジュールと、
前記セッションチェックポイント間のファイルデータの変更を検索するデルタファイルデータ検索モジュールと、
前記パスネーム表示及び前記ファイルデータの前記変更を転送するデルタ動作モジュールと、
を備える、製品。
【請求項１１】
前記ネーム空間変換モジュールは、
ノード表示が受信されたか否かを判断するノード表示受信モジュールと、
変更ノード／パスネームオブジェクト変換プロセスを実行する変更ノード／パスネームオブジェクト変換モジュールと、
非変更ノード／パスネームオブジェクト変換プロセスを実行する非変更ノード／パスネームオブジェクト変換モジュールと、
オブジェクト名をパスネームに挿入するオブジェクト表示挿入モジュールと、
を備える、請求項１０に記載のコンピュータ可読媒体。
【請求項１２】
前記変更ノード／パスネームオブジェクト変換モジュールは、対応するネーム空間変更に関わるノードに関連するオブジェクト名を取得する、請求項１１に記載のコンピュータ可読媒体。
【請求項１３】
前記非変更ノード／パスネームオブジェクト変換モジュールは、対応するネーム空間変更に関わらないノードに関連するオブジェクト名を取得する、請求項１１に記載のコンピュータ可読媒体。
【請求項１４】
前記ノード表示は一意のｉノード番号を含む、請求項１１に記載のコンピュータ可読媒体。
【請求項１５】
前記変更ノード／パスネームオブジェクト変換モジュール及び前記非変更ノード／パスネームオブジェクト変換モジュールは、前記オブジェクト表示を返すデータ構造を利用する、請求項１０に記載のコンピュータ可読媒体。
【請求項１６】
前記変更ノード／パスネームオブジェクト変換モジュールは、親ノードインジケータを再帰的に処理する、請求項１０に記載のコンピュータ可読媒体。
【請求項１７】
前記非変更ノード／パスネームオブジェクト変換モジュールは、親ノードインジケータを再帰的に処理する、請求項１０に記載のコンピュータ可読媒体。
【請求項１８】
情報を記憶するソース記憶構成要素と、
ソース内部ノードインジケータからパスネームインジケータへの変換を管理することを含む、前記ソース記憶構成要素内の情報の記憶を管理するソース記憶マネージャと、
前記情報の複製を記憶するターゲット記憶構成要素と、
を備える、情報記憶複製システム。
【請求項１９】
前記ソース記憶マネージャは、オブジェクト表示及び親ノード表示を返すデータ構造を利用する、請求項１８に記載の情報記憶複製システム。
【請求項２０】
前記データ構造は、
ネーム空間変更に関連するノード表示を親ノード表示及びオブジェクト名にマッピングするハッシュテーブルと、
前回セッションからの非変更ノードの最長パスをマッピングするプリフィックスツリーと、
を含む、請求項１９に記載の情報記憶複製システム。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願
本願は、２００９年１０月２日に出願された「ＳＴＯＲＡＧＥ  ＲＥＰＬＩＣＡＴＩＯＮ  ＳＹＳＴＥＭＳ  ＡＮＤ  ＭＥＴＨＯＤＳ」（代理人整理番号ＳＹＭＴ−Ｓ０９−１７４５Ｒ）という名称の仮特許出願第６１／２４８，３８７号明細書の利益及び利益を主張するものであり、これを参照により本明細書に援用する。
【０００２】
本実施形態は、情報記憶複製の分野に関する。
【背景技術】
【０００３】
電子システム及び電子回路は、近代社会の進歩に向けて大きく貢献してきており、有利な結果を達成するために多くの用途で利用されている。デジタルコンピュータ、計算機、オーディオ装置、ビデオ機器、及び電話システム等の多くの電子技術は、ビジネス、科学、教育、及び娯楽の大半の分野でのデータ、アイディア、及びトレンドの解析及び通信での生産性及びコスト低減の増大に役立つ。往々にして、これらの活動は大量の情報の記憶を含むことが多い。
【０００４】
近代システムは通常、膨大な量の情報を利用し、大きなリソースが情報の開発、記憶、及び保持に費やされる。増大し続ける複雑なアプリケーションは通常、ますます大量の記憶及び高速に膨張するファイルシステムを含む。増大し続ける複雑性に伴い、通常、情報が破滅的に破損し失われる危険性が大きくなる。情報の正確に複製されたイメージを保持することは非常に重要である。しかし、複製記憶イメージの保持は通常、非常にリソース集約的である。記憶イメージ全体を定期的な間隔で完全にコピーする手法は、大きな遅延を生じさせる恐れがあり、システムの処理及び通信ネットワークに影響する。従来の複製手法によっては、ブロックレベルでしか複製できないものもあれば、ｒｓｙｎｃ動作（例えば、Ｕｎｉｘ（登録商標）プラットフォーム）を利用するが、大きなデータ移動及び事後処理（例えば、より多くのメモリ及びより長い時間を必要とする）に繋がるものもある。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来のファイルシステムは多くの場合、オブジェクトインジケータ（例えば、ディレクトリ、ファイル等）のパスネームを利用して、ファイルシステムネーム空間内の情報を識別する。ファイルシステムの管理を簡素化する目的で、システムによっては、内部指示を利用して、ネーム空間オブジェクトを管理するものがある。例えば、ファイルシステムは、ネーム空間オブジェクトに対応するノード表示を利用することができる。ノード表示は、内部ファイルシステム管理動作に使用することができる。しかし、内部指示は通常、複製記憶システムに移送可能ではない。例えば、ソース記憶イメージの内部ノード表示又は指示は通常、対応するターゲット記憶イメージに内部で適用することができない。
【課題を解決するための手段】
【０００６】
情報記憶を複製するシステム及び方法が提示される。一実施形態では、ノードインジケータがオブジェクトインジケータに変形されるネーム空間変換又は変形プロセスが実行される。ファイルシステム動作変更に関するノード情報が受信される。変更ノード／パスネームオブジェクト変換プロセスが実行される。非変更ノード／パスネームオブジェクト変換プロセスが実行される。例示的な一実施態様では、変更ノード／パスネームオブジェクト変換プロセス及び非変更ノード／パスネームオブジェクト変換プロセスは、オブジェクトインジケータ及び親ノードインジケータを返すデータ構造を利用する。オブジェクトインジケータは、パスネームに挿入される。
【０００７】
変更ノード／パスネームオブジェクト変換プロセスは、ネーム空間変更に関連するノードインジケータを親ノードインジケータ及びオブジェクトインジケータ又はオブジェクト名にマッピングするネーム空間変更追跡データ構造（例えば、ハッシュテーブル）を利用することができる。非変更ノード／パスネームオブジェクト変換プロセスは、最長パス追跡データ構造（例えば、プリフィックスツリー）を利用する。親オブジェクトノードインジケータは、変更ノードパスネームオブジェクト変換プロセスに入力として返すことができる。
【０００８】
一実施形態では、製品は、計算装置により実行された場合、計算装置に複製方法による記憶イメージ複製を実行させる命令を記憶したコンピュータ可読媒体を含む。命令はモジュール内に含むことができる。イメージ凍結モジュールが、セッションチェックポイントでのソースファイルシステムの凍結スナップショットを管理する。ファイル変更ログ検査モジュールが、セッション間の変更のファイル変更ログ（ＦＣＬ）からエントリを検索する。ネーム空間変換モジュールが、ファイル変更ログからのエントリに対応するノード表示をパスネーム表示に変換する。フィルタモジュールが不必要な動作をフィルタリングする。デルタファイルデータ検索モジュールが、セッション間のファイルデータの変更を検索する。デルタ動作モジュールが、パスネーム表示及びファイルデータの変更を転送する。
【０００９】
一実施形態では、ネーム空間変換モジュールは、ノード表示が受信されたか否かを判断するノード表示受信モジュールと、変更ノード／パスネームオブジェクト変換プロセスを実行する変更ノード／パスネームオブジェクト変換モジュールと、非変更ノード／パスネームオブジェクト変換プロセスを実行する非変更ノード／パスネームオブジェクト変換モジュールと、オブジェクト名をパスネームに挿入するオブジェクト表示挿入モジュールとを含む。変更ノード／パスネームオブジェクト変換モジュールは、対応するネーム空間変更に関わるノードに関連するオブジェクト名を取得することができる。非変更ノード／パスネームオブジェクト変換モジュールは、対応するネーム空間変更に関わらないノードに関連するオブジェクト名を取得することができる。ノード表示は一意のｉノード番号を含むことができる。変更ノード／パスネームオブジェクト変換モジュール及び非変更ノード／パスネームオブジェクト変換モジュールは、オブジェクト表示を返すデータ構造を利用することができる。変更ノード／パスネームオブジェクト変換モジュールは、親ノードインジケータを再帰的に処理することができ、非変更ノード／パスネームオブジェクト変換モジュールは、親ノードインジケータを再帰的に処理することができる。
【００１０】
一実施形態では、情報記憶複製システムは、情報を記憶するソース記憶構成要素と、ソース内部ノードインジケータからパスネームインジケータへの変換を管理することを含め、ソース記憶構成要素内の情報の記憶を管理するソース記憶マネージャと、情報の複製を記憶するターゲット記憶構成要素とを含む。ソース記憶マネージャは、オブジェクト表示及び親ノード表示を返すデータ構造を利用することができる。データ構造は、ネーム空間変更に関連するノードを親ノード表示及びオブジェクト名にマッピングするハッシュテーブルと、前回セッションからの非変更ノードの最長パスをマッピングするプリフィックスツリーとを含むことができる。
【００１１】
本明細書に組み込まれて本明細書の一部をなす添付図面は、本実施形態の原理を例示的に説明するために含まれており、本発明を図面に示される特定の実施態様に限定する意図はない。図面は、別途明記される場合を除き、一定の縮尺で描かれていない。
【図面の簡単な説明】
【００１２】
【図１】一実施形態による例示的なシステムのブロック図である。
【図２】一実施形態によるパスネーム要素関係の例示的なブロック図である。
【図３】一実施形態によるパスネーム要素階層関係の別の例示的なブロック図表現である。
【図４】一実施形態による異なるオブジェクトインジケータを有する例示的なパスネーム要素階層関係のブロック図表現である。
【図５】一実施形態による、動作が時折行われる際のソース記憶システム内の例示的な変更のブロック図表現である。
【図６】一実施形態による変更後の例示的なパスネーム要素階層関係のブロック図表現である。
【図７】一実施形態による例示的なファイルネーム空間オブジェクトｉノード階層のブロック図表現である。
【図８】一実施形態による動作変更後の例示的なファイルネーム空間オブジェクトノード階層のブロック図表現である。
【図９】一実施形態によるノードインジケータをインデックスキーとして利用し、オブジェクト名及び親ノードインジケータを返す例示的なハッシュテーブルのブロック図表現である。
【図１０】ｉノード番号をインデックスキーとして利用し、オブジェクト名及び親ｉノード番号を返す例示的なハッシュテーブルのブロック図表現である。
【図１１】一実施形態による前回セッション終了時の最長パスを追跡するための例示的なプリフィックスツリーのブロック図表現である。
【図１２】一実施形態による例示的な複製方法のフローチャートである。
【図１３】一実施形態による例示的なネーム空間変換プロセスのフローチャートである。
【図１４】一実施形態による例示的な変更ノード／パスネームオブジェクト変換プロセスのフローチャートである。
【図１５】一実施形態による例示的な非変更ノード／パスネームオブジェクト変換プロセスのフローチャートである
【図１６】一実施形態による例示的なネーム空間変換プロセスのフローチャートである。
【図１７】実施形態による複製システム環境内の周期的な複製動作を示す。
【図１８】一実施形態による例示的な複製モデルのブロック図である。
【図１９】一実施形態による例示的なネーム空間変換モジュールのブロック図である。
【図２０】一実施形態による例示的な変更ノード／パスネームオブジェクト変換モジュールのブロック図である。
【図２１】一実施形態による例示的な非変更ノード／パスネームオブジェクト変換モジュールのブロック図である。
【図２２】一実施形態による例示的なコンピュータシステムを示す。
【発明を実施するための形態】
【００１３】
これより、例が添付図面に示される好ましい実施形態を詳細に参照する。本発明を好ましい実施形態と併せて説明するが、本発明をこれらの実施形態に限定することが意図されないことが理解されよう。逆に、本発明は、説明の趣旨及び範囲内に含むことができる代替、変更、及び均等物を包含することが意図される。さらに、以下の詳細な説明では、完全な理解を提供するために、多くの特定の詳細が記される。しかし、本発明をこれらの特定の詳細なしで実施し得ることが当業者には明らかであろう。他の場合では、周知の方法、手続き、構成要素、及び回路については、本発明の態様を不必要に曖昧にしないように詳細に説明しなかった。
【００１４】
本複製システム及び方法は、様々なシステム構成内の情報の効率的で効果的な保護に役立つ。複製システム及び方法は、外部記憶リソースに向けられた複製動作に対して、内部ノードインジケータからパスネーム内のオブジェクトインジケータへの効率的な変換を使用する、内部ネーム空間管理への内部ノードインジケータの利用に役立つ。一実施形態では、複製システムは、ソース記憶構成要素イメージ内の情報の記憶と、ターゲット記憶構成要素イメージ内の情報の複製とを管理する。管理は、ソース内部ノードインジケータからパスネームインジケータへの変換を管理することを含む。一実施形態では、ソース記憶マネージャが、オブジェクト表示及び親ノード表示を返すデータ構造を利用する。このデータ構造は、ノード／オブジェクト名変換又は「逆」ネーム参照生成に利用することができる。例示的な一実施態様では、データ構造は、ハッシュテーブルと、プリフィックスツリーとを含む。ハッシュテーブルは、ネーム空間変更に関連するノード表示を親ノード表示及びオブジェクト名にマッピングする。プリフィックスツリーは、前回セッションからの非変更ノードの最長パスをマッピングする。本システム及び方法を様々なアーキテクチャ及び構成で実施可能なことが理解される。例えば、本システム及び方法は、分散計算環境、クラウド計算環境、クライアントサーバ環境等の一環として実施することができる。
【００１５】
本複製システム及び方法がインクリメンタルファイルレベル複製に役立つことが理解される。複製システム及び方法は、大規模ファイルシステムの部分ファイルシステム複製に対応する。部分ファイルシステム複製は、各複製動作中の二次又はターゲット記憶リソースの部分の更新を対象とすることができる。例えば、セッション中に変わる一次又はソース記憶リソースイメージの部分が、複製動作中に更新される。複製は、基礎をなすファイルシステムにより提供されるファイル変更ログサービス（例えば、ＶｘＦＳ内のＦＣＬ）上に構築することができる。ログサービスは、内部ファイル識別子又はノードインジケータを追跡することができ、その間、ファイルシステム複製は、絶対的なパスネームを使用して、ソースと複製ターゲットとの間でファイルを一意に識別することができる。所与のノードの上位ディレクトリは、ネーム空間動作（例えば、移動、ネーム変更、新規作成等）中に変わり得、その結果、ネーム空間変換が実行されるまで、複製ファイルシステム内の対応するパスが異なることになる。
【００１６】
一実施形態では、複製システムは記憶リソースを含む。本システム及び方法を様々な記憶構成で実施可能なことが理解される。例えば、記憶リソースは、ソース記憶リソース及びターゲット記憶リソース、一次記憶リソース及び二次記憶リソース等として構成することができる。図１は、一実施形態による例示的なシステム１００のブロック図である。システム１００は、ソース記憶システム１２０に通信可能に結合された動作構成要素１１０を含み、ソース記憶システム１２０はターゲット記憶システム１３０に通信可能に結合される。動作構成要素１１０は、処理構成要素１１１と、任意選択的なメモリ構成要素１１２とを含む。ソース記憶システム１２０は、ファイルシステム管理構成要素１２１と、ソース記憶構成要素１２３とを含む。ファイルシステム管理構成要素１２１は、ネーム空間変換構成要素１２２を含む。
【００１７】
例示的なシステム１００が様々な構成を有することが可能なことが理解される。例えば、動作構成要素１１０及びソース記憶システム１２０は、ローカルシステム又はローカル設備の部分であることができ、ターゲット記憶システム１３０は、リモートシステム又はリモート設備の部分であることができる。処理構成要素１１１が情報（例えば、命令、データ等）をソース記憶構成要素１２３から受信可能なことが理解される。例示的な一実施態様では、動作構成要素１１０はローカルシステム又はローカル設備の部分であり、その一方で、ソース記憶システム１２０及びターゲット記憶システム１３０は、リモートシステム又はリモート設備の部分である。
【００１８】
様々な動作構成要素及びソース記憶構成要素の構成があり得ることが理解される。情報は、複数の動作構成要素（図示せず）とソース記憶システム１２０との間で通信することができる。情報は、複数の記憶システムと動作構成要素との間で通信することもできる。様々なソース記憶システム及びターゲット記憶システムの構成があり得ることも理解される。ソース記憶システムは複数のターゲット記憶システムと通信することができ、複数のターゲット記憶システムがソース記憶システムと通信することができる。
【００１９】
システム１００の構成要素は協働して、ソース記憶及び効率的且つ効果的に複製されたターゲット記憶との様々な動作（例えば、アプリケーション動作等）に役立つ。動作構成要素１１０は様々な動作を実行することができる。例えば、メモリ１１２は、プロセッサ１１１により実行される様々なアプリケーション動作命令を記憶する。ソース記憶システム１２０は、動作構成要素１１０により実行される動作に関連する情報を記憶する（例えば、ソースステージ構成要素１２３に）。ファイルシステム管理構成要素１２１は、動作構成要素１１０から受信した情報の記憶及びターゲット記憶システム１３０への情報の転送を管理する。ファイルシステム管理構成要素１２１はネーム空間変換構成要素１２２を含み、ネーム空間変換構成要素１２２は、ターゲット記憶システム１３０への情報の転送に関連するネーム空間変換を実行する。ターゲット記憶システム１３０は、ソース記憶構成要素１２３に記憶された情報イメージの複製を記憶する。
【００２０】
記憶リソース内の情報は、情報記憶の配置を追跡する様々な指示を利用する記憶階層に編成することができる。例えば、パスネーム指示ネーム空間、ノード指示ネーム空間、組み合わせ等。パスネーム指示ネーム空間インジケータが、スラッシュを使用して一緒に連結されたパスネーム要素を含むことができることが理解される。パスネーム要素は、オブジェクトに対応することができ、ディレクトリ指示、ファイル名指示等を含むことができる。例えば、パスネーム指示又はインジケータは、表現ディレクトリＡ／ｄｉｒｅｃｔｏｒｙＢ／ｄｉｒｅｃｔｏｒｙＣ／ｆｉｌｅｎａｍｅ１、ｄＡ／ｄＢ／ｄＣ／ｆ１等によりパスネームを識別することができる。先行する各パスネーム要素は、後続するオブジェクトを含むオブジェクトを示す。
【００２１】
図２は、一実施形態によるパスネーム要素関係２００の例示的なブロック図である。ディレクトリａｌｐｈａ  ２０１は、ディレクトリｂｒａｖｏ  ２０２と、ディレクトリｇｏｌｆ  ２０７とを含む。ディレクトリｂｒａｖｏ  ２０２は、ディレクトリｃｈａｒｌｉｅ  ２０３と、ディレクトリｆｏｘｔｒｏｔ  ２０６とを含む。ディレクトリｃｈａｒｌｉｅは、ディレクトリｄｅｌｔａ  ２０４と、ファイルｅｃｈｏ  ２０５とを含む。ディレクトリｇｏｌｆ  ２０７は、ディレクトリｈｏｔｅｌ  ２０８と、ディレクトリｕｌｔｒａ  ２０９とを含む。ディレクトリｈｏｔｅｌは、ディレクトリｊｕｌｉｅｔ  ２１０と、ファイルｋｉｌｏ  ２１１とを含む。ディレクトリｊｕｌｉｅｔは、ファイルｌｉｍａ  ２１３と、ｒｏｍｅｏ  ２１４と、ｓｉｅｒｒａ  ２１５と、ｔａｎｇｏ  ２１６とを含む。ファイルが情報を含むことが可能なことが理解される。例えば、ファイルは様々な種類の情報（例えば、データ、命令等）を含むことができる。例示的な一実施態様では、ファイルは、様々なアプリケーション（例えば、言語プログラミングアプリケーション、会計アプリケーション、インターネットアプリケーション、ビデオアプリケーション等）に関連するデータ（例えば、言語プログラミングファイル、ビデオ情報等）及び／又はプログラミング命令（例えば、ソフトウェアプログラム命令、実行ファイル、バイナリ等）を含むことができる。
【００２２】
図３は、一実施形態によるパスネーム要素階層関係３００の別の例示的なブロック図表現である。一実施形態では、パスネーム要素階層関係３００は、パスネーム要素関係２００に対応する。パスネーム要素階層関係３００は、ディレクトリａｌｐｈａ  ２０１と、ディレクトリｂｒａｖｏ  ２０２と、ディレクトリｃｈａｒｌｉｅ  ２０３と、ディレクトリｆｏｘｔｒｏｔ  ２０６と、ディレクトリｄｅｌｔａ  ２０４と、ファイルｅｃｈｏ  ２０５と、ディレクトリｇｏｌｆ  ２０７と、ディレクトリｈｏｔｅｌ  ２０８と、ディレクトリｕｌｔｒａ  ２０９と、ディレクトリｊｕｌｉｅｔ  ２１０と、ファイルｋｉｌｏ  ２１１と、ｌｉｍａ  ２１３と、ｒｏｍｅｏ  ２１４と、ｓｉｅｒｒａ  ２１５と、ｔａｎｇｏ  ２１６とを含む。下位レベルに示され、上位レベルのオブジェクトに結合されたオブジェクトは、上位レベルオブジェクト内に含まれる。例えば、ファイルｄｅｌｔａ  ２０４及びｅｃｈｏ  ２０５は、ディレクトリｂｒａｖｏ  ２０２内に含まれるディレクトリｃｈａｒｌｉｅ  ２０３内に含まれる。下位レベルファイルｌｉｍｅ  ２１３は、ｃｈａｒｌｉｅ  ２０３に結合されていないため、上位ディレクトリｃｈａｒｌｉｅ  ２０３内に含まれない。
【００２３】
様々なオブジェクトインジケータをパスネーム要素の指示に利用可能なことが理解される。図４は、一実施形態による、異なるオブジェクトインジケータを有するパスネーム要素階層関係４００の例示的なブロック図表現である。パスネーム要素階層関係４００は、ディレクトリａ  ４０１と、ディレクトリｂ  ４０２と、ディレクトリｃ  ４０３と、ディレクトリｆ  ４０６と、ディレクトリｄ  ４０４と、ファイルｅ  ４０５と、ディレクトリｇ  ４０７と、ディレクトリｈ  ４０８と、ディレクトリｕ  ４０９と、ディレクトリｊ  ４１０と、ファイルｋ  ４１１と、ファイルｌ  ４１３と、ファイルｒ  ４１４と、ファイルｓ  ４１５と、ファイルｔ  ４１６とを含む。下位レベルに示され、上位レベルのオブジェクトに結合されたオブジェクトは、上位レベルオブジェクト内に含まれる。
【００２４】
図１を再び参照すると、動作構成要素１１０が動作を実行すると、ソース記憶システム１２０内のファイルデータ及びネーム空間情報の両方に変更が生じ得ることが理解される。ソース記憶システムイメージへの変更は、動作が進むにつれて徐々に生じる。しかし、関連するターゲット記憶システムイメージへのソース記憶システムイメージの複製更新は、指定されたセッション時間の持続時間に行われる。一実施形態では、ソース記憶システムイメージ及び関連するターゲット記憶システムイメージは、セッション開始時には一致し、ターゲット記憶システムイメージは同じままであるのに対して、ソース記憶システムイメージは、セッション中に変更される。セッション終了時又は「チェックポイント」時（例えば、所定の時間期間、イベントの発生、特定数の変更が生じた後等）、ソース記憶システムイメージは凍結又はロックされ、イメージ変更は、関連するターゲット記憶システムイメージに複製され、関連するターゲット記憶システムイメージが更新される。
【００２５】
図５は、一実施形態による、動作が時間ｔ０とｔ１との間で行われる際のソース記憶システム内の例示的な変更のブロック図表現である。時間ｔ０では、凍結されたイメージ５１１がある。第１の動作セッションが開始され、動作５０１が動作システムを初期化する。ソースシステムイメージ５１１はセッション開始ファイル階層を含む。ターゲットシステムイメージ５２１は、時間ｔ０では、ソースシステムイメージ５１１のセッション開始ファイル階層に一致する。一実施形態では、ソースシステムイメージ５１１及びターゲットシステムイメージ５２１は、パスネーム要素階層関係４００に対応する（例えば、ソース記憶システムイメージ５１１及びターゲット記憶システムイメージ５２１は、パスネームａ／ｂ／ｃ／ｅ、ａ／ｇ／ｈ／ｊ／ｌ等を含む）。動作５０２は、時間ｔ１において、新しいディレクトリオブジェクトｘをディレクトリオブジェクトｊとファイルｌ及びｒとの間に作成し、ソース記憶システムイメージ５１２は、パスネームａ／ｂ／ｃ／ｅ及びａ／ｇ／ｈ／ｊ／ｘ／ｌを含み、変更をログする。時間ｔ２において、動作５０３は、ファイルをａ／ｂ／ｃ／ｅからａ／ｇ／ｈ／ｊ／ｘ／ｅに移し、記憶システムイメージ５１３は、変更をログしながら、パスネームａ／ｂ／ｃ／ｅを削除し、パスネームａ／ｇ／ｈ／ｊ／ｘ／ｅを含む。時間ｔ４において、動作５０４はオブジェクトａをａ’に、ｌをｌ’に、ｈをｈ’にネーム変更し、ソース記憶システムイメージ５１４はパスネームａ’／ｇ／ｈ’／ｊ／ｘ／ｅ及びａ’／ｇ／ｈ’／ｊ／ｘ／ｌ’を含む。時間ｔ５において、セッションは終了し、ソース記憶システムイメージ５１４は凍結又はロックされ、その間、イメージ変更が関連するターゲット記憶システムイメージ５２３に複製される。例えば、ターゲット記憶システムイメージ５２２は、ａ’／ｇ／ｈ’／ｊ／ｘ／ｌ’及びａ’／ｇ／ｈ’／ｊ／ｘ／ｅを複製するように更新される。
【００２６】
セッション中に多くの動作があり得、セッション長が様々であり得ることが理解される。セッション長を長くしてもよく、又は短くしてもよいことも理解される。一実施形態では、図５のセッション長は複数のセッションに分割される。例えば、時間ｔ３において、第１のセッションを終了することができ、ソース記憶システムイメージ５１３を凍結又はロックし、その間、イメージ変更が、関連するターゲット記憶システムイメージに複製される。例えば、関連するターゲット記憶システムイメージは、時間ｔ３において、ａ／ｇ／ｈ／ｊ／ｘ／ｌ及びａ／ｇ／ｈ／ｊ／ｘ／ｅを複製するよに更新することができる。
【００２７】
一実施形態では、動作は進み続け、中間情報が追跡され、その間、ソース記憶システムイメージは凍結される。ソース記憶システムイメージがロック解除されると、ソース記憶システムイメージは、追跡された中間情報に対応するように更新される。
【００２８】
過度の詳細で説明を不明瞭にしないように、パスネームａ／ｂ／ｃ／ｅ及びａ／ｇ／ｈ／ｊ／ｌを含むセッションファイル階層パスネームの部分が図５に示される。他のパスネーム（例えば、ａ／ｂ／ｃ／ｄ、ａ／ｇ／ｈ／ｊ／ｒ、ａ／ｇ／ｈ／ｊ／ｔ、ａ／ｇ／ｕ等）をソースシステムイメージ及びターゲットシステムイメージに含めることができることが理解される。追加の動作（図示せず）（例えば、ｊの下且つｓ及びｌの上に新しいディレクトリオブジェクトｙを作成し、オブジェクトｒをｒにネーム変更する等）を含めることもでき、対応するパスネーム変更をソースシステムイメージ（例えば、ａ／ｇ／ｈ／ｊ／ｙ／ｔ、ａ  ／ｇ／ｈ／ｊ／ｘ／ｒ’等）及びターゲットシステムイメージに含むことができることも理解される。図６は、一実施形態による変更後のパスネーム要素階層関係６００の例示的なブロック図表現である。パスネーム要素階層関係６００は、ディレクトリａ’  ６０１と、ディレクトリｂ  ４０２と、ディレクトリｃ  ４０３と、ディレクトリｆ  ４０６と、ディレクトリｄ  ４０４と、ディレクトリｇ  ４０７と、ディレクトリｈ’  ６０８と、ディレクトリｕ  ４０９と、ファイルｋ  ４１１と、ディレクトリｊ  ４１０と、ディレクトリｘ  ６２１と、ファイルｅ  ６０５と、ファイルｌ’  ６１３と、ファイルｒ’  ６１４と、ディレクトリｙ  ４２２と、ファイルｓ  ４１５と、ファイルｔ  ４１６とを含む。下位レベルに示され、上位レベルのオブジェクトに結合されたオブジェクトは、上位レベルオブジェクト内に含まれる。
【００２９】
ファイルシステムアーキテクチャは、ノード表示を利用して、ファイルシステム名ネーム空間に関連する情報を追跡することができる。例えば、ファイルシステムアーキテクチャは、ファイルシステム名内の各オブジェクト（例えば、ディレクトリ、ファイル等）に対応する一意のノードインジケータを利用することができる。一実施形態では、内部ノードインジケータ（ｉノード）は各オブジェクトに関連付けられる。例示的な一実施態様では、ノードインジケータはｉノード番号であり、各オブジェクトが作成される場合、一意のシーケンシャルｉノード番号がノードに関連付けられるか、又は割り当てられる。図７は、一実施形態によるファイルネーム空間オブジェクトノード階層７００の例示的なブロック図表現である。ファイルネーム空間オブジェクトノード階層７００は、ｉノード１、ｉノード２、ｉノード３、ｉノード４、ｉノード５、ｉノード６、ｉノード７、ｉノード８、ｉノード９、ｉノード１０、ｉノード１１、ｉノード１２、ｉノード１３、ｉノード１４、ｉノード１５、及びｉノード１６を含む。一実施形態では、ファイルネーム空間オブジェクトｉノード階層７００は、パスネーム要素階層関係４００の例示的なブロック図表現に対応する。
【００３０】
セッション中、動作が進むにつれて、ノードに関連する変更が生じ得る。例えば、ノードの関係が変化し得る（例えば、ノードを移動し、オブジェクト名に対応するノードが変更され得、ノードが作成され得、ノードを削除し得る等）。図８は、一実施形態による動作変更後のファイルネーム空間オブジェクトｉノード階層８００の例示的なブロック図表現である。ファイルネーム空間オブジェクトｉノード階層８００は、ｉノード１、ｉノード２、ｉノード３、ｉノード４、ｉノード５、ｉノード６、ｉノード７、ｉノード８、ｉノード９、ｉノード１０、ｉノード１１、ｉノード１２、ｉノード１３、ｉノード１４、ｉノード１５、ｉノード１６、ｉノード２１、及びｉノード２２を含む。一実施形態では、ファイルネーム空間オブジェクトｉノード階層８００は、パスネーム要素階層関係６００の例示的なブロック図表現に対応する。
【００３１】
一実施形態では、ネーム空間変更に関連するノードを含め、ソース記憶システムイメージ内の変更に関連するノードが追跡される。例示的な一実施態様では、各セッションのファイル変更ログ（ＦＣＬ）が保持され、ＦＣＬはネーム空間変更に関連するノードインジケータを含む。ＦＣＬはデータ構造内に含むことができる。例えば、データ構造は、以下の表現に対応するテーブルであることができる。
【００３２】
【表１】
2013506920.tif 000003
【００３３】
各セッションブレークにおいて、ネーム空間変更を含め、ソース記憶システムイメージ内で生じた変更は、ターゲット記憶システムイメージ内で複製される。しかし、ソース記憶システムイメージ内でネーム空間変更を内部で追跡するために利用されるノード表示は、ターゲット記憶システムイメージに対してネーム空間変更を示すために利用されない。一実施形態では、ソース記憶システムイメージ内の内部ノード表示は、ターゲット記憶システムイメージ内の内部ノード表示と一致しない。ネーム空間変換が、パスネーム表示を再編成するために利用される。
【００３４】
一実施形態では、ネーム空間変更追跡データ構造を利用して、ネーム空間変更（例えば、オブジェクトの移動、オブジェクトのネーム変更、オブジェクトの作成等）を追跡する。例示的な一実施態様では、ネーム空間変更追跡データ構造は、オブジェクトインジケータ及び親ノードインジケータにマッピングされるインデックスキーとしてノードインジケータを利用する。ネーム空間変更追跡データ構造が、ノードインジケータ及び生成カウントをインデックスキーとして利用できることが理解される。様々なネーム空間変更追跡データ構造を利用可能なことも理解される。例えば、ハッシュテーブルに対応するデータを利用することができる。図９は、一実施形態によるノードインジケータをインデックスキーとして利用し、オブジェクト名及び親ノードインジケータを返すハッシュテーブル９００の例示的なブロック図表現である。ハッシュテーブル９００は、ノード１のセル９０１、親ノード１（ｐノード１）のセル９１１、オブジェクト１名のセル９２１、ノード２のセル９０２、ｐノード２のセル９１２、オブジェクト２名のセル９２２、ノード３のセル９０３、ｐノード３のセル９１３、オブジェクト３名のセル９２３を含む。例示的な一実施態様では、ノード２は、ハッシュテーブル９００への参照動作のキーインデックスとして利用され、ハッシュテーブル９００はｐノード２及びオブジェクト２名を返す。
【００３５】
図１０は、ｉノード番号をインデックスキーとして利用し、オブジェクト名及び親ノード番号を返すハッシュテーブル１０００の例示的なブロック図表現である。ハッシュテーブル１０００は、図５及び図６に示される動作セッション内で生じる変更を含む。ハッシュテーブル１０００は、ｉノード番号１が入力されたセル１００１、ｉノード番号ヌルが入力されたセル１０１１、オブジェクト名ａ’が入力されたセル１０２１、ｉノード番号５が入力されたセル１００２、ｉノード番号２１が入力されたセル１０１２、及びオブジェクト名ｅが入力されたセル１０２２；ｉノード番号８が入力されたセル１００３、ｉノード番号７が入力されたセル１０１３、オブジェクト名ｈ’が入力されたセル１０２３；ｉノード番号１３が入力されたセル１００４、ｉノード番号２１が入力されたセル１０１４、オブジェクト名ｌ’が入力されたセル１０２４；並びにｉノード番号２１が入力されたセル１００５、ｉノード番号１０が入力されたセル１０１５、オブジェクト名ｘが入力されたセル１０２５を含む。ｉノード番号は、ハッシュテーブル１０００へのルックカップ動作のキーインデックスとして利用され、ハッシュテーブル１０００は親のｉノード番号及びオブジェクト名を返す。例示的な一実施態様では、ｉノード番号５がハッシュテーブル１０００への参照動作のキーインデックスとして利用され、ハッシュテーブル１０００はｉノード番号２１及びオブジェクト名ｅを返す。
【００３６】
一実施形態では、最長パス追跡データ構造を利用して、前回セッションの終了時の最長パスを追跡する。例示的な一実施態様では、移動又はネーム変更されたオブジェクトの元のパスネーム（例えば、前回チェックポイントでのパスネーム）が追跡される。様々なネーム空間変更追跡データ構造を利用可能なことが理解される。例えば、線形検索テーブル、プリフィックスツリー等。図１１は、一実施形態による前回セッション終了時の最長パスを追跡するプリフィックスツリー１１００の例示的なブロック図表現である。一実施形態では、プリフィックスツリー１１００は、ｉノード１、ｉノード２、ｉノード３、ｉノード４、ｉノード５、ｉノード６、ｉノード７、ｉノード８、ｉノード９、ｉノード１０、ｉノード１１、ｉノード１２、ｉノード１３、ｉノード１４、ｉノード１５、及びｉノード１６を含む。例示的な一実施態様では、プリフィックスツリー１１００はファイルネーム空間オブジェクトｉノード階層７００に対応する。
【００３７】
プリフィックスツリー１１００を文字列で表現可能なことが理解される。例えば、以下のテーブルは、プリフィックスツリー内のパスチェーンのうちのいくつかを表すために利用可能な文字列を含む。
【００３８】
【表２】
2013506920.tif 000004
【００３９】
図１２は、一実施形態による例示的な複製方法１２００のフローチャートである。複製方法１２００は、外部記憶リソースに向けられた複製動作のためにノードインジケータをパスネーム内のオブジェクトインジケータに効率的に変換するネーム空間管理へのノードインジケータの利用に役立つ。
【００４０】
ブロック１２１０において、記憶イメージが凍結される。一実施形態では、凍結イメージは、ソース記憶ファイルシステムのスナップショットである。例示的な一実施態様では、スナップショットはセッションチェックポイントで作成される。
【００４１】
ファイルシステム内のネーム空間変更に関連するノードインジケータが、ブロック１２２０において特定される。一実施形態では、ファイル変更ログが調べられ、オブジェクト変更に関連するノードが検索される。例示的な一実施態様では、各セッションのファイル変更ログ（ＦＣＬ）が保持され、ＦＣＬは、ネーム空間変更に関連するノードの表示を含む。
【００４２】
ブロック１２３０において、ネーム空間変換プロセスが実行される。一実施形態では、ノードインジケータはパスネームオブジェクトインジケータに変換される。例示的な一実施態様では、データ構造を利用して、オブジェクトインジケータ及び親ノードインジケータを検索する。例えば、ネーム空間変更追跡データ構造を利用して、ネーム空間変更（例えば、オブジェクトの移動、オブジェクトのネーム変更、オブジェクトの作成等）を追跡し、変更されたオブジェクトインジケータを特定する。最長パス追跡データ構造を利用して、前回セッション終了時の最長パスを追跡し、変更されていないオブジェクトインジケータを特定する。一実施形態では、内部ノードインジケータはパスネームオブジェクトに変形される。
【００４３】
ブロック１２４０において、不必要な情報がフィルタリングされる。
【００４４】
ブロック１２５０において、ファイルデータが検索される。例示的な一実施態様では、ファイルデータは、様々なアプリケーション（例えば、言語プログラミングアプリケーション、会計アプリケーション、インターネットアプリケーション、ビデオアプリケーション等）に関連する様々な種類のデータ（例えば、テキスト、ビデオ情報等）及び／又はプログラミング命令（例えば、ソフトウェアプログラム命令、実行ファイル、バイナリ等）を含むことができる。
【００４５】
セッションチェックポイント間の動作から生じる情報又は記憶イメージの変更は、ブロック１２６０において転送される。変更は、ネーム空間並びにファイルデータの変更に関連するオブジェクトインジケータを含むことができる。一実施形態では、情報のデルタが複製記憶システム（例えば、ターゲット記憶システム、二次記憶システム等）に転送される。一実施形態では、ネーム空間変更に関連するノードインジケータから変換されたオブジェクトインジケータを有するパスネームが、複製記憶システムに転送される。
【００４６】
図１３は、一実施形態による例示的なネーム空間変換プロセス又は方法１３００のフローチャートである。一実施形態では、ネーム空間変換プロセス１３００は、複製方法１２００のブロック１２３０において利用されるネーム空間変換プロセスと同様である。
【００４７】
ブロック１３１０において、ファイルシステム動作変更に関するノード情報が受信される。一実施形態では、複製方法１２００のブロック１２２０において特定されるノードインジケータが受信される。例えば、ネーム空間変更に関連するものとしてファイル変更ログ（ＦＣＬ）内で識別されるノード。
【００４８】
ブロック１３２０において、変更ノード／パスネームオブジェクト変換プロセスが実行される。一実施形態では、変更ノード／パスネームオブジェクト変換プロセスは、オブジェクトインジケータ及び親ノード番号を返すデータ構造を利用する。例示的な一実施態様では、データ構造は、ネーム空間変更に関連するノードインジケータを親ノードインジケータ及びオブジェクト名にマッピングするネーム空間変更追跡データ構造である。ネーム空間変更追跡データ構造はハッシュテーブルを含むことができる。
【００４９】
非変更ノード／パスネームオブジェクト変換プロセスが、ブロック１３４０において実行される。一実施形態では、非変更ノード／パスネームオブジェクト変換プロセスは、オブジェクトインジケータ及び親ノード番号を返すデータ構造を利用する。例示的な一実施態様では、非変更ノード／パスネームオブジェクト変換プロセスは、最長パス追跡データ構造を利用する。最長パス追跡データ構造はプリフィックスツリーであることができる。
【００５０】
変更ノードパスネームオブジェクト変換プロセス（例えば、１３２０）への入力として、親オブジェクトノードインジケータを返すことができる。非変更ノード／パスネームオブジェクト変換プロセスへの入力として、変更ノードパスネームオブジェクト変換プロセスを介して親オブジェクトノードインジケータを返すこともできる。例えば、変更ノードパスネームオブジェクト変換プロセス及び非変更ノード／パスネームオブジェクト変換プロセスを通る再帰ループで、親オブジェクトノードインジケータを返すことができる。
【００５１】
ブロック１３５０において、オブジェクトインジケータはパスネームに挿入される。一実施形態では、オブジェクトインジケータは、変更ノード／パスネームオブジェクト変換プロセス及び非変更ノード／パスネームオブジェクト変換プロセスの結果に基づいて、パスネームに挿入される。一実施形態では、オブジェクトインジケータは、パスネームに連結される。例えば、オブジェクトインジケータは、パスネームのスラッシュ間に挿入される。
【００５２】
ブロック１３７０において、親ノードインジケータがヌルであるか否かが判断される。ヌルではない場合、ブロック１３３０に戻る。ヌルの場合、ブロック１３９０に進む。
【００５３】
ブロック１３９０において、パスネームが転送される。一実施形態では、変換されたパスネームはターゲット記憶リソースに転送される。
【００５４】
図１４は、一実施形態による例示的な変更ノード／パスネームオブジェクト変換プロセス又は方法１４００のフローチャートである。変更ノード／パスネームオブジェクト変換プロセス１４００は、ブロック１３３０において利用される変更ノード／パスネームオブジェクト変換プロセスと同様である。
【００５５】
ブロック１４１０において、ノードインジケータが受信される。一実施形態では、ノードインジケータはブロック１２２０から受信される。例示的な一実施態様では、ノードインジケータはファイル変更ログから受信される。ノードインジケータは、以下のブロック１４７０から受信される親ノードインジケータであることができる。ノードインジケータは、非変更ノード／パスネームオブジェクト要素変換プロセスから受信される親ノードインジケータであることもできる。例えば、非変更ノード／パスネーム／オブジェクト要素変換プロセスは、ブロック１３４０において利用されるプロセスと同様であることができる。
【００５６】
ブロック１４２０において、ノードがネーム空間変更に関連するか否かが判断される。一実施形態では、ｉノード番号は、ネーム空間変更に関連するｉノード番号のハッシュテーブルへのキーとして利用される。テーブルの検索により、ｉノード番号がテーブル内に存在しないことが示される場合、プロセスはブロック１４５０に進む。テーブルの検索により、ｉノード番号が存在することが示される場合、プロセスはブロック１４３０に進む。
【００５７】
ブロック１４３０において、ノードに関連するオブジェクト名が検索される。一実施形態では、オブジェクト名は、ネーム空間変更に関連するノードインジケータをオブジェクト名にマッピングするハッシュテーブルから検索される。例示的な一実施態様では、図９に示されるハッシュテーブル番号９００と同様のハッシュテーブルが、オブジェクト名の検索に利用される。
【００５８】
ブロック１４４０において、検索されたオブジェクト名がパスネームに挿入される。一実施形態では、「／」がパスネームの冒頭に追加され、オブジェクト名がパスネームの冒頭に連結される。
【００５９】
親ノードに関連するノードインジケータが、ブロック１４７０において検索され、ブロック１４１０に転送される。
【００６０】
ブロック１４５０において、ノードインジケータは、転送されてさらに処理される。一実施形態では、ノードインジケータは、ブロック１３４０において利用されるプロセスと同様の非変更ノード／パスネームオブジェクト要素変換プロセスに転送される。
【００６１】
図１５は、一実施形態による例示的な非変更ノード／パスネームオブジェクト変換プロセス又は方法１５００のフローチャートである。一実施形態では、パスネームオブジェクト変換プロセス１５００は、ブロック１３４０において利用される非変更ノード／パスネームオブジェクト変換プロセスと同様である。
【００６２】
ブロック１５０１において、ノードインジケータが受信される。一実施形態では、ノードインジケータはブロック１２２０から受信される。例示的な一実施態様では、ノードインジケータは、ファイル変更ログから受信される。ノードインジケータは、図４のブロック１４７０から受信される親ノードインジケータであることができる。ノードインジケータは、非変更ノード／パスネームオブジェクト要素変換プロセスから受信される親ノードインジケータであることもできる。例えば、非変更ノード／パスネーム／オブジェクト要素変換プロセスは、以下のブロック１５３０において利用されるプロセスと同様であることができる。
【００６３】
ブロック１５１０において、非変更オブジェクトへの前回セッション最長パスネームチェーンが取得される。一実施形態では、前回セッション最長パスネームチェーンはプリフィックスツリーである。例えば、プリフィックスツリーは、図１１に示されるプリフィックスツリーと同様であることができる。
【００６４】
ブロック１５２０において、親ノードインジケータが取得される。一実施形態では、親ノードインジケータは、プリフィックスツリー内の最長チェーン内の最後のノードインジケータから２番目のノードインジケータである。
【００６５】
ブロック１５３０において、親に関連するノードインジケータは、転送されてさらに処理される。一実施形態では、親ノードインジケータは、変更ノード／パスネームオブジェクト変換プロセスに転送される。
【００６６】
ブロック１５４０において、非変更オブジェクト名が最長パスネームチェーンから検索される。一実施形態では、非変更ノードインジケータは、プリフィックスツリー内の最長チェーン内の最後のノードインジケータである。
【００６７】
ブロック１５５０において、オブジェクト名がパスネームに挿入される。一実施形態では、パスネームスラッシュ（／）がパスネームに挿入され、オブジェクト名がパスネームの冒頭に連結される。
【００６８】
図１６は、一実施形態による例示的なネーム空間変換プロセス又は方法１６００のフローチャートである。
【００６９】
ブロック１６１０において、ｉノード番号が受信されたか否かが判断される。一実施形態では、ｉノード番号１６０１は、ファイル変更ログから受信することができ、又は後続ブロック（例えば、ブロック１６３４、ブロック１６４１等）から返される親ｉノード番号であることとができる。
【００７０】
ブロック１６２０において、ｉノード番号が動作変更ハッシュテーブル内にあるか否かが判断される。一実施形態では、ｉノード番号は、動作変更ハッシュテーブルへのキーインデックスとして使用される。
【００７１】
ブロック１６３０において、プリフィックスチェーンが調べられ、非変更ｉノード番号に関連するオブジェクトへの前回セッション最長パスネームが特定される。一実施形態では、プリフィックスチェーンは非変更オブジェクトの表示を含む。
【００７２】
ブロック１６３１において、オブジェクト名が、ブロック１６３０において特定された最長チェーンの末尾から検索される。一実施形態では、オブジェクト名は非変更オブジェクトに関連する。ファイルシステムは、非変更ｉノード番号をパスネームオブジェクトに直接マッピングすることができる。
【００７３】
ブロック１６３３において、親ｉノード番号が最長チェーンから検索される。一実施形態では、親ｉノード番号はブロック１６１０に返される。
【００７４】
ブロック１６４０において、オブジェクト名がハッシュテーブルから検索される。一実施形態では、オブジェクト名は、ハッシュテーブル参照から返される。プロセスはブロック１６５０に進む。
【００７５】
ブロック１６４０において、親ｉノード番号が検索され、ブロック１６１０に転送される。
【００７６】
ブロック１６５０において、検索されたオブジェクト名はパスネームに挿入される。
【００７７】
パスネームは、ブロック１６９０において転送される。一実施形態では、パスネームはターゲット記憶システムに転送される。
【００７８】
図５を再び参照すると、ネーム空間内の動作変更及びターゲット記憶システムへの対応する複製更新が示される。一実施形態では、ソース記憶システムイメージの初期オブジェクトパスネーム表現（例えば、ｕのオブジェクト名及びｉを除くａ〜ｔのオブジェクト名）が図４に示される。しかし、ソース記憶ファイルシステムは、図７に示される一意のｉノード番号（例えば、１〜１６）を利用して、ネーム空間を内部で管理し、したがって、変換ネーム空間変換プロセス（例えば、１３００）を利用して、ｉノード番号からオブジェクト名に変換する。一実施形態では、ＦＣＬ内で指定されるノードは、２１、５、１３、８等を含むことができる。時間ｔ５において、複製方法１２００のブロック１２１０が、図５に示されるソース記憶システムイメージ５１４を凍結する。ブロック１２２０において、ネーム空間変更に関連するノードインジケータ２１、５、１３、８等は、ＦＣＬから検索される。第１のｉノード番号２１をとり、ネーム空間変換プロセスは、ｉノード番号２１に関連する新たに作成されたオブジェクトＸに関連するパスネームへの変更を確立する。過度の詳細で本説明を不明瞭にすることを回避するために、本考察は、ｉノード番号１３がＦＣＬから検索される例まで先に飛ぶ。
【００７９】
ＦＣＬからのｉノード番号１３は、ブロックｌ３１０により受信され、変更ノード／パスネームオブジェクト変換プロセスが、ブロック１３２０において実行される。一実施形態では、ブロック１４２０によるｉノード番号１３のハッシュテーブル参照により、ノードが、ハッシュテーブル（例えば、１００４）内に存在することから動作変更に関連することが示され、セル１０２４からのオブジェクト名ｌ’が検索され（例えば、ブロック１４３０により）、パスネームに挿入される（例えば、ブロック１４４０により）。ここで、部分パスネームはｌ’である。ブロック１４７０において、親ｉノード番号２１がセル１０１４から検索され、ブロック１４１０、そして１４２０に転送されて、ハッシュテーブルが再帰的に参照される。再帰的な参照により、ｉノード番号２１がセル１００２内にあることが示され、セル１０２２内のオブジェクト名ｘが、パスネームに挿入されて、部分パスネームｘ／ｌ’が与えられる。親ｉノード番号１０は１４２０にフィードバックされ、ハッシュテーブル参照により、ｉノード番号１０がネーム空間変更に関連しないことが示される。ｉノード番号１０はブロック１３４０に転送され（例えば、ブロック１４５０により）、ブロック１３４０は、非変更ノード／パスネームオブジェクト変換プロセスを実行する。
【００８０】
ｉノード番号１０はブロック１５１０により受信され、ｉノード番号１０に関連する非変更オブジェクトへの最長パスネーム変更が特定される。例示的な一実施態様では、プリフィックスツリー１１００を利用して、ｉノード番号１０への最長パスネームがｉノード１／ｉノード７／ｉノード８／ｉノード１０であることを示す。ｉノード番号１０が変更されていない場合、ファイルシステムは、ｉノード番号１０の割り当てを参照し、ｉノード番号１０がオブジェクトｊに割り当てられていることが特定され、オブジェクトインジケータｊがパスネームに挿入される。ここで、部分パスネームはｊ／ｘ／ｌ’である。ブロック１５２０において、親ノード番号８が最長チェーンから検索される。ブロック１５３０は、親ｉノード番号８をブロック１３１０にフィードバックし、ハッシュテーブルは再帰的に参照される。
【００８１】
再帰的な参照により、ｉノード番号８がセル１００３内にあることが示され、セル１０２３内のオブジェクト名ｈ’がパスネームに挿入されて、部分パスネームｈ’／ｊ／ｘ／ｌ’が与えられる。親ｉノード番号７は１４２０にフィードバックされ、ハッシュテーブル参照により、ｉノード番号７がネーム空間変更に関連しないことが示される。ｉノード番号７はブロック１３４０に転送され（例えば、ブロック１４５０により）、ブロック１３４０は非変更ノード／パスネームオブジェクト変換プロセスを実行する。
【００８２】
プリフィックスツリー１１００を利用して、ｉノード番号１及びｉノード番号７の最長チェーンが識別される。ｇのオブジェクト名が、非変更ｉノード番号７のセッション開始情報から検索され、オブジェクト名ｇはパスネームに挿入されて、部分パスネームｇ／ｈ’／ｊ／ｘ／ｌ’が与えられる。親ｉノード番号１は再びブロック１３１０に転送され、ハッシュテーブルが再帰的に参照される。
【００８３】
ハッシュテーブルの再帰的な参照により、ｉノード番号１がセル１００１内にあることが示され、セル１０２１内のオブジェクト名ａ’はパスネームに挿入されて、部分パスネームａ’／ｇ／ｈ’／ｊ／ｘ／ｌ’が与えられる。親ｉノード番号ヌルがブロック１３７０に転送され、ブロック１３７０はヌルインジケータを認識し、パスネームａ’／ｇ／ｈ’／ｊ／ｘ／ｌ’がブロック１３０によりターゲットファイルシステムに転送され、複製されたターゲット記憶システムイメージの更新に利用される。したがって、ネーム空間変更を含むソースファイルシステムのファイル管理に利用されるｉノード番号１３は、パスネームａ’／ｇ／ｈ’／ｊ／ｘ／ｌ’に効率的に変形され変換される。ネーム空間変換プロセス１２２０を通しての同様の再帰的ループが、他のｉノード番号インジケータからオブジェクトパスネームへの変換に役立ち得ることが理解される。
【００８４】
図１７は、実施形態による複製システム環境１７００内の周期的な複製動作を示す。示される実施形態では、一次システム１７００ａ内の一次データ容量（Ｖｏｌ）のインクリメント的に改変又は変更されるデータのコピーが、二次システム１７００ｂ内の複製二次データ容量（Ｒ＿Ｖｏｌ）に周期的に転送される。一次データ容量のアクセス可能性を保つために、ポイントインタイム「スナップショット」容量（Ｓ＿Ｖｏｌ）が作成され、周期的な複製が、スナップショット容量を使用して実行される。同様に、二次データ容量のアクセス可能性を保つために、ポイントインタイム「スナップショット」容量（ＲＳ＿Ｖｏｌ）が作成され、二次システム１７００ｂで使用されて、一次システム１７００ａからインクリメント的な変更を受信し、複製二次データ容量を復元する。
【００８５】
示される実施形態の複製システムでは、一次ノード１７００ａは、ネットワーク１７１４（例えば、ＩＰネットワーク、ＬＡＮ、ＷＡＮ、又は他の通信リンク）を介して二次システム１７００ｂに結合される。示される実施形態の一次システム１７００ａ及び二次システム１７００ｂのそれぞれは、アプリケーション１７０２と、ファイルシステム１７０４と、チェックポイントマネージャ１７０５と、容量複製器１７０８を含む容量マネージャ１７０６とを含み、これらは、一次システム１７００ａ及び二次システム１７００ｂの各プロセッサ及びメモリで実施し得る。一実施形態では、チェックポイントの作成を管理する機能は、チェックポイントマネージャ１７０５により実施される。図１の実施形態は、初期同期の使用を介して初期化される。初期同期中、一次システム１７００ａ内の一次データ容量（Ｖｏｌ）の内容は、二次システム１７００ｂ内の複製二次データ容量（Ｒ＿Ｖｏｌ）に転送される。一実施形態では、一次データ容量のアクセス可能性を保つために、ポイントインタイム「スナップショット」容量（Ｓ＿Ｖｏｌ）が、「チェックポイント」時点で作成され、初期同期（並びに続く周期的な複製）が、スナップショット容量を使用して実行される。初期同期が実行されている場合、一次データ容量への更新（例えば、書き込み動作又は他の変更）が追跡され、後に、実施形態による周期的な複製を実行する際に使用される。
【００８６】
一次システム１７００ａは、ソース記憶リソースイメージを含む一次データ容量１７１０ａをさらに含む。二次システム１７００ｂは、ターゲット記憶リソースイメージを含む二次データ容量１７１０ｂを含む。一実施形態では、容量複製器１７０８ａは、ネーム空間変換を実行するネーム空間変換モジュール１７５０を含む。一実施形態では、ネーム空間変換モジュール１７５０は、容量複製器１７０８ａに関連する複製モジュールに対応する。ネーム空間変換モジュールを様々な環境の一環として実施可能なことが理解される。例えば、ネーム空間変換モジュールは、分散計算環境、クラウド計算環境、クライアントサーバ環境等の一環として実施可能である。
【００８７】
図１８は、一実施形態による例示的な複製モジュール１８００のブロック図である。例示的な一実施態様では、複製モジュール１８００は、コンピュータ可読媒体に記憶された命令を含む。複製モジュール１８００及びコンピュータ可読媒体は、複製システム環境１７００内で利用することができる。複製モジュール１８８０は、複製方法を実行する命令を含むことができる。
【００８８】
イメージ凍結モジュール１８１０は、ファイルシステム内のイメージを凍結する。ファイル変更ログ検査モジュール１８２０は、ネーム空間変更に関連するノードインジケータを特定する。ネーム空間変換モジュール１８３０は、ノードインジケータからパスネームインジケータへのネーム空間変更を実行する。フィルタモジュール１８４０は、不必要な情報をフィルタリングする。ファイルデータ検索モジュール１８５０は、ファイルデータを検索する。動作デルタ転送モジュール１８６０は、パスネームに関連する情報を含め、セッションチェックポイント間のデルタ変更動作情報を転送する。本モジュール及び本方法が、計算装置により実行された場合、計算装置に、ノードインジケータからオブジェクトインジケータへのネーム空間変換を含む複製イメージ記憶動作を実行させるコンピュータ可読媒体を含む製品に記憶された命令を含むことができることが理解される。
【００８９】
図１９は、一実施形態による例示的なネーム空間変換モジュール１９００のブロック図である。例示的な一実施態様では、ネーム空間変換モジュール１９００は、コンピュータ可読媒体に記憶された命令を含む。例示的な一実施態様では、ネーム空間変換モジュール１９００は、ネーム空間変換モジュール１８３０と同様である。ネーム空間変換モジュール１９００は、ネーム空間変換プロセス又は方法を実行する命令を含むことができる。
【００９０】
ノード情報受信モジュール１９１０は、ファイルシステム動作変更に関するノード情報を受信する。変更ノード／パスネームオブジェクト変換モジュール１９２０は、変更ノード／パスネームオブジェクト変換プロセスを実行する。非変更ノード／パスネームオブジェクト変換モジュール１９３０は、非変更ノード／パスネームオブジェクト変換プロセスを実行する。オブジェクトインジケータ挿入モジュール１９４０は、パスネームへのオブジェクトインジケータ挿入を実行する。ヌル判断モジュール１９５０は、親ノード表示がヌルであるか否かを判断する。パスネーム転送モジュール１９６０は、パスネームを転送する。例えば、パスネーム転送モジュール１９６０は、パスネームをターゲットシステム記憶リソースに転送する。
【００９１】
図２０は、一実施形態による例示的な変更モード／パスネームオブジェクト変換モジュール２０００のブロック図である。例示的な一実施態様では、変更モード／パスネームオブジェクト変換モジュール２０００は、コンピュータ可読媒体に記憶された命令を含む。例示的な一実施態様では、変更モード／パスネームオブジェクト変換モジュール２０００は、変更モード／パスネームオブジェクト変換モジュール１９２０と同様である。変更モード／パスネームオブジェクト変換モジュール２０００は、変更モード／パスネームオブジェクト変換プロセス又は方法を実行する命令を含むことができる。
【００９２】
ノードインジケータ受信モジュール２０１０は、ノードインジケータを受信する。ノード関連モジュール２０２０は、ノードが動作変更に関連するか否かを判断する。オブジェクトインジケータ検索モジュール２０３０は、ノードに関連するオブジェクト名を検索する。親ノードインジケータモジュール検索モジュール２０５０は、親ノードインジケータを検索する。オブジェクト挿入モジュール２０５０は、オブジェクトインジケータをパスネームに挿入する。ノード表示転送モジュール２０６０は、ノードインジケータを転送してさらに処理する。一実施形態では、ノード表示転送モジュール２０６０は、ノードインジケータを非変更ノード／パスネームオブジェクト変換モジュール（例えば、ブロック１９３０）に転送する。
【００９３】
図２１は、一実施形態による例示的な非変更ノード／パスネーム変換モジュール２１００のブロック図である。例示的な一実施態様では、非変更ノード／パスネーム変更モジュール２１００は、コンピュータ可読媒体に記憶された命令を含む。例示的な一実施態様では、非変更ノード／パスネーム変換モジュール２１００は、非変更ノード／パスネーム変換モジュール１９３０と同様である。非変更ノード／パスネーム変換モジュール２１００は、非変更ノード／パスネーム変換プロセス又は方法を実行する命令を含むことができる。
【００９４】
最長チェーンモジュール２１１０は、非変更オブジェクトへの前回セッション最長パスネームチェーンを取得する。親ノードインジケータ検索モジュール２１２０は、親に関連するノードインジケータを取得する。親ノードインジケータ転送モジュール１５３０は、親ノードインジケータを転送する。非変更オブジェクト検索モジュール２１４０は、最長パスネームチェーンから非変更オブジェクト名を検索する。オブジェクト挿入モジュール２１５０は、検索されたオブジェクトインジケータをパスネームに挿入する。
【００９５】
図２２は、一実施形態による例示的なコンピュータシステム２２００を示す。コンピュータシステム２２００は、上述した実施形態の特定のハードウェアに基づく機能及びソフトウェアに基づく機能の実行環境を提供する基本的なコンピュータシステムの構成要素を示す。例えば、コンピュータシステム２２００は、１つ又は複数のソフトウェアスタック（例えば、モジュール１７０２〜１７０８、１７５０、１８１０〜１８６０、１９１０〜１９６０、２０１０〜２０６０、２１１０〜２１５０等）がインスタンス化されるシステムであることができる。コンピュータシステム２２００は、例えば、サーバコンピュータシステム、ワークステーションコンピュータシステム、デスクトップコンピュータシステム、又はラップトップコンピュータシステムとして実施することができる。同様に、コンピュータシステム２２００はハンドヘルド装置として実施することができる。コンピュータシステム２２００は通常、少なくとも何等かの形態のコンピュータ可読媒体（例えば、コンピュータ可読媒体２２０１）を含む。コンピュータ可読媒体は、コンピュータシステム２２００がアクセス可能ないくつかの異なる種類の媒体であることもでき、リムーバブルコンピュータ記憶媒体、非リムーバブルコンピュータ記憶媒体、フラッシュメモリ、ハードディスク、光ディスクドライブ、コンパクトディスク（ＣＤ）等）を挙げることができるが、これらに限定されない。
【００９６】
最も基本的な構成では、コンピュータシステム２２００は通常、処理ユニット２２０３及びメモリ２２０１を含む。使用されるコンピュータシステム２２００の厳密な構成及び種類に応じて、メモリ２２０１は揮発性（例えば、ＤＲＡＭ等）２２０１ａ、不揮発性２２０１ｂ（例えば、ＲＯＭ、フラッシュメモリ等）、又はこれら２つのある組み合わせであることができる。同様に、メモリ２２０１は、他の装置を含むことができ、固体状態装置、例えば、磁気ディスクに基づく媒体、光学媒体等が列挙される。
【００９７】
さらに、コンピュータシステム２２００は、磁気又は光学のディスク又はテープ等の他の大容量記憶システム（例えば、リムーバブル２２０５及び／又は非リムーバブル２２０７）を含むことができる。同様に、コンピュータシステム２２００は、入力装置２２０９及び／又は出力装置２２１１（例えば、ディスプレイ等）を含むことができる。コンピュータシステム２２００は、有線媒体又は無線媒体のいずれかを使用する他の装置、コンピュータ、ネットワーク、サーバ等へのネットワーク接続２２１３をさらに含むことができる。これらの装置のすべては当分野において周知であるため、詳細に考察する必要がない。
【００９８】
コンピュータシステム２２００が、コンピュータシステム２２００の機能がクラウド計算環境を使用して部分的又は全体的に実行される場合のように、多数の分散した計算ノードを有する分散コンピュータシステムにより補足される機能のうちのいくつか、大半、又はすべてを有し得ることにさらに留意されたい。
【００９９】
本システム及び方法は、実行時処理中に実施することができる。例示的な実施態様では、実行時処理は、ファイル変更ログのスキャン及びオンザフライでのファイル／ネーム空間変更の生成を含む。本システム及び方法は、ファイルログ変更サービスに加えて実施することができる。本システム及び方法は、純粋なネーム空間動作（例えば、ネーム変更、ハードリンク等）でのデータ移動がないか、又は最小である状態で実施することができる。
【０１００】
一実施形態では、呼び出し側への各デルタ記録リターンには、ＦＣＬファイル内のエントリを一意に識別するＦＣＬマーカが付随する。例示的な一実施態様では、呼び出し側は、マーカをＦＣＬモジュールへのロールバックインタフェースに提供することにより、全体プロセスを容易にロールバックすることができる。ＦＣＬモジュールは、ＦＣＬファイル内のマーカにロールバックし、その時点で「再開」することができる。
【０１０１】
本複製システム及び方法は、効率的且つ効果的な情報の複製に役立つ。情報複製は、動作セッション中に変更される記憶システムイメージの部分に対して柔軟且つインクリメント的に実行することができる。システム及び方法は、順序要件を維持しながら、ノードインジケータがオブジェクトインジケータに変形されるネーム空間変換又は変形を実行することができる。システム及び方法は、実行時処理として実施することができる。事前処理及び事後処理は必要なく、そのような活動へのリソース（例えば、メモリリソース、大きなディスクフットプリント、処理時間等）の関与を低減又は回避することができる。
【０１０２】
詳細な説明の部分は、方法に関して提示され考察されている。この方法の動作を説明するステップ及びステップの順序が本明細書の図に開示されるが、そのようなステップ及び順序は例示的である。実施形態は、様々な他のステップ又は本明細書の図のフローチャートに列挙されるステップの変形を、本明細書に示され説明される順序以外の順序で実行することにもよく適する。
【０１０３】
詳細な説明のうちのいくつかの部分は、手続き、ステップ、論理ブロック、処理、及びコンピュータメモリ内で実行可能なデータビットに対する演算の他の象徴的な表現に関して提示される。これらの説明及び表現は、データ処理分野の当業者が、他の当業者に作業の本質を最も効率的に伝えるために使用する手段である。手続き、コンピュータにより実行されるステップ、論理ブロック、プロセス等は、本明細書では、且つ一般的に、所望の結果をもたらす自己矛盾のないステップシーケンス又は命令シーケンスであると考えられる。ステップは、物理的数量の物理的な処理を含む。通常、必須ではないが、これらの数量は、コンピュータシステムでの記憶、転送、結合、比較、及び他の処理が可能な電気的、磁気的、光学的、又は量子的な信号の形態をとる。時には、主に一般的な慣習により、これらの信号をビット、値、要素、シンボル、文字、期間、数等として参照することが好都合なことが証明されている。
【０１０４】
しかし、これら及び同様の用語のすべてが、適切な物理的数量に関連付けられるべきであり、これらの数量に適用される単に好都合のラベルであることを念頭に置かれたい。以下の考察から明らかなように、別途明記される場合を除き、全体を通して、「処理する」、「計算する」、「算出する」、「特定する」、「表示する」、「アクセスする」、「書き込む」、「含む」、「記憶する」、「送信する」、「トラバースする」、「関連付ける」、「識別する」等の用語を利用する考察が、コンピュータシステムのレジスタ及びメモリ内の物理的（電子的）数量として表されるデータを処理し変形して、コンピュータシステムのメモリ若しくはレジスタ又は他のそのような情報記憶装置、伝送装置、若しくは表示装置内の物理的数量として同様に表される他のデータにするコンピュータシステム又は同様の電子計算装置の動作及びプロセスを指すことが理解される。
【０１０５】
計算装置は、少なくとも何等かの形態のコンピュータ可読媒体を含むことができる。コンピュータ可読媒体は、計算装置がアクセス可能な任意の利用可能な媒体であることができる。限定ではなく例として、コンピュータ可読媒体は、コンピュータ記憶媒体及び通信媒体を含み得る。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、又は他のデータ等の情報を記憶する任意の方法又は技術で実施される揮発性媒体、不揮発性媒体、リムーバブル媒体、及び非リムーバブル媒体を含む。コンピュータ記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、若しくは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）、若しくは他の光学記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置、若しくは他の磁気記憶装置、又は所望の情報の記憶に使用可能であり、計算装置がアクセス可能な任意の他の媒体を含むが、これらに限定されない。通信媒体は通常、搬送波又は他の輸送メカニズム等の変調データ信号でコンピュータ可読命令、データ構造、プログラムモジュール、又は他のデータを具現し、任意の情報輸送媒体を含む。「変調データ信号」という用語は、特徴セットのうちの１つ若しくは複数を有する信号又は情報を信号に符号化するように変更された信号を意味する。限定ではなく例として、通信媒体は、有線ネットワーク又は直接有線接続等の有線媒体と、音響、ＲＦ、赤外線、及び他の無線媒体等の無線媒体とを含む。上記の任意の組み合わせも、コンピュータ可読媒体の範囲内に含まれるべきである。
【０１０６】
いくつかの実施形態は、１つ又は複数のコンピュータ又は他の装置により実行される、プログラムモジュール等のコンピュータ実行可能命令の一般的な文脈の中で説明し得る。一般に、プログラムモジュールは、特定のタスクを実行し、又は特定の抽象データ型を実施するルーチン、プログラム、オブジェクト、構成要素、データ構造等を含む。通常、プログラムモジュールの機能は、様々な実施形態で所望のように結合又は分散させ得る。
【０１０７】
特定の実施形態の上記説明は、例示及び説明のために提示された。網羅的、すなわち、本発明を開示される厳密な形態に限定することは意図されず、多くの変更及び変形が上記教示に鑑みて可能である。実施形態は、原理及び実際用途を最良に説明し、それにより、当業者が、意図される特定の用途に適するように、本発明及び様々な変更を有する様々な実施形態を最良に利用することができるように、選択され説明された。範囲は、本明細書に含まれるシステム及び方法並びにそれらの均等物により定義されることが意図される。
【図２】
2013506920.tif 000005
【図３】
2013506920.tif 000006
【図４】
2013506920.tif 000007
【図６】
2013506920.tif 000008
【図７】
2013506920.tif 000009
【図８】
2013506920.tif 000010
【図１０】
2013506920.tif 000011
【図１１】
2013506920.tif 000012
【図１】
2013506920.tif 000013
【図５】
2013506920.tif 000014
【図９】
2013506920.tif 000015
【図１２】
2013506920.tif 000016
【図１３】
2013506920.tif 000017
【図１４】
2013506920.tif 000018
【図１５】
2013506920.tif 000019
【図１６】
2013506920.tif 000020
【図１７】
2013506920.tif 000021
【図１８】
2013506920.tif 000022
【図１９】
2013506920.tif 000023
【図２０】
2013506920.tif 000024
【図２１】
2013506920.tif 000025
【図２２】
2013506920.tif 000026
【手続補正書】
【提出日】平成24年6月4日(2012.6.4)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願
本願は、２００９年１０月２日に出願された「ＳＴＯＲＡＧＥ  ＲＥＰＬＩＣＡＴＩＯＮ  ＳＹＳＴＥＭＳ  ＡＮＤ  ＭＥＴＨＯＤＳ」（代理人整理番号ＳＹＭＴ−Ｓ０９−１７４５Ｒ）という名称の仮特許出願第６１／２４８，３８７号明細書の利益及び利益を主張するものであり、これを参照により本明細書に援用する。
【０００２】
本実施形態は、情報記憶複製の分野に関する。
【背景技術】
【０００３】
電子システム及び電子回路は、近代社会の進歩に向けて大きく貢献してきており、有利な結果を達成するために多くの用途で利用されている。デジタルコンピュータ、計算機、オーディオ装置、ビデオ機器、及び電話システム等の多くの電子技術は、ビジネス、科学、教育、及び娯楽の大半の分野でのデータ、アイディア、及びトレンドの解析及び通信での生産性及びコスト低減の増大に役立つ。往々にして、これらの活動は大量の情報の記憶を含むことが多い。
【０００４】
近代システムは通常、膨大な量の情報を利用し、大きなリソースが情報の開発、記憶、及び保持に費やされる。増大し続ける複雑なアプリケーションは通常、ますます大量の記憶及び高速に膨張するファイルシステムを含む。増大し続ける複雑性に伴い、通常、情報が破滅的に破損し失われる危険性が大きくなる。情報の正確に複製されたイメージを保持することは非常に重要である。しかし、複製記憶イメージの保持は通常、非常にリソース集約的である。記憶イメージ全体を定期的な間隔で完全にコピーする手法は、大きな遅延を生じさせる恐れがあり、システムの処理及び通信ネットワークに影響する。従来の複製手法によっては、ブロックレベルでしか複製できないものもあれば、ｒｓｙｎｃ動作（例えば、Ｕｎｉｘ（登録商標）プラットフォーム）を利用するが、大きなデータ移動及び事後処理（例えば、より多くのメモリ及びより長い時間を必要とする）に繋がるものもある。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来のファイルシステムは多くの場合、オブジェクトインジケータ（例えば、ディレクトリ、ファイル等）のパスネームを利用して、ファイルシステムネーム空間内の情報を識別する。ファイルシステムの管理を簡素化する目的で、システムによっては、内部指示を利用して、ネーム空間オブジェクトを管理するものがある。例えば、ファイルシステムは、ネーム空間オブジェクトに対応するノード表示を利用することができる。ノード表示は、内部ファイルシステム管理動作に使用することができる。しかし、内部指示は通常、複製記憶システムに移送可能ではない。例えば、ソース記憶イメージの内部ノード表示又は指示は通常、対応するターゲット記憶イメージに内部で適用することができない。
【０００６】
情報記憶を複製するシステム及び方法が提示される。一実施形態では、ノードインジケータがオブジェクトインジケータに変形されるネーム空間変換又は変形プロセスが実行される。ファイルシステム動作変更に関するノード情報が受信される。変更ノード／パスネームオブジェクト変換プロセスが実行される（例えば、ノード情報に対して）。非変更ノード／パスネームオブジェクト変換プロセスが実行される（例えば、ノード情報に対して）。例示的な一実施態様では、変更ノード／パスネームオブジェクト変換プロセス及び非変更ノード／パスネームオブジェクト変換プロセスは、オブジェクトインジケータ及び親ノードインジケータを返すデータ構造を利用する。オブジェクトインジケータは、パスネームに挿入される。オブジェクトインジケータは、上記変更ノード／パスネームオブジェクト変換プロセス及び上記非変更ノード／パスネームオブジェクト変換プロセスの結果に基づいて、パスネームに挿入することができる。
【０００７】
変更ノード／パスネームオブジェクト変換プロセスは、ネーム空間変更に関連するノードインジケータを親ノードインジケータ及びオブジェクトインジケータ又はオブジェクト名にマッピングするネーム空間変更追跡データ構造（例えば、ハッシュテーブル）を利用することができる。非変更ノード／パスネームオブジェクト変換プロセスは、最長パス追跡データ構造（例えば、プリフィックスツリー）を利用する。親オブジェクトノードインジケータは、変更ノードパスネームオブジェクト変換プロセスに入力として返すことができる。
【０００８】
一実施形態では、製品は、計算装置により実行された場合、計算装置に複製方法による記憶イメージ複製を実行させる命令を記憶したコンピュータ可読媒体を含む。命令はモジュール内に含むことができる。イメージ凍結モジュールが、セッションチェックポイントでのソースファイルシステムの凍結スナップショットを管理する。ファイル変更ログ検査モジュールが、セッション間の変更のファイル変更ログ（ＦＣＬ）からエントリを検索する（例えば、エントリは、上記セッションチェックポイント間の変更に対応する）。ネーム空間変換モジュールが、ファイル変更ログからのエントリに対応するノード表示をパスネーム表示に変換する。一実施形態では、ネーム空間変換モジュールは、最長パス追跡データ構造を利用する。フィルタモジュールが不必要な動作をフィルタリングする。デルタファイルデータ検索モジュールが、セッション間のファイルデータの変更を検索する。デルタ動作モジュールが、パスネーム表示及びファイルデータの変更を転送する。
【０００９】
一実施形態では、ネーム空間変換モジュールは、ノード表示が受信されたか否かを判断するノード表示受信モジュールと、変更ノード／パスネームオブジェクト変換プロセスを実行する変更ノード／パスネームオブジェクト変換モジュールと、非変更ノード／パスネームオブジェクト変換プロセスを実行する非変更ノード／パスネームオブジェクト変換モジュールと、オブジェクト名をパスネームに挿入するオブジェクト表示挿入モジュールとを含む。変更ノード／パスネームオブジェクト変換モジュールは、対応するネーム空間変更に関わるノードに関連するオブジェクト名を取得することができる。非変更ノード／パスネームオブジェクト変換モジュールは、対応するネーム空間変更に関わらないノードに関連するオブジェクト名を取得することができる。ノード表示は一意のｉノード番号を含むことができる。変更ノード／パスネームオブジェクト変換モジュール及び非変更ノード／パスネームオブジェクト変換モジュールは、オブジェクト表示を返すデータ構造を利用することができる。変更ノード／パスネームオブジェクト変換モジュールは、親ノードインジケータを再帰的に処理することができ、非変更ノード／パスネームオブジェクト変換モジュールは、親ノードインジケータを再帰的に処理することができる。
【００１０】
一実施形態では、情報記憶複製システムは、情報を記憶するソース記憶構成要素と、ソース内部ノードインジケータからパスネームインジケータへの変換を管理することを含め、ソース記憶構成要素内の情報の記憶を管理するソース記憶マネージャと、情報の複製を記憶するターゲット記憶構成要素とを含む。ソース記憶マネージャは、オブジェクト表示及び親ノード表示を返すデータ構造（例えば、最長パス追跡データ構造を含む）を利用することができる。データ構造は、ネーム空間変更に関連するノードを親ノード表示及びオブジェクト名にマッピングするハッシュテーブルと、前回セッションからの非変更ノードの最長パスをマッピングするプリフィックスツリーとを含むことができる。
【００１１】
本明細書に組み込まれて本明細書の一部をなす添付図面は、本実施形態の原理を例示的に説明するために含まれており、本発明を図面に示される特定の実施態様に限定する意図はない。図面は、別途明記される場合を除き、一定の縮尺で描かれていない。
【図面の簡単な説明】
【００１２】
【図１】一実施形態による例示的なシステムのブロック図である。
【図２】一実施形態によるパスネーム要素関係の例示的なブロック図である。
【図３】一実施形態によるパスネーム要素階層関係の別の例示的なブロック図表現である。
【図４】一実施形態による異なるオブジェクトインジケータを有する例示的なパスネーム要素階層関係のブロック図表現である。
【図５】一実施形態による、動作が時折行われる際のソース記憶システム内の例示的な変更のブロック図表現である。
【図６】一実施形態による変更後の例示的なパスネーム要素階層関係のブロック図表現である。
【図７】一実施形態による例示的なファイルネーム空間オブジェクトｉノード階層のブロック図表現である。
【図８】一実施形態による動作変更後の例示的なファイルネーム空間オブジェクトノード階層のブロック図表現である。
【図９】一実施形態によるノードインジケータをインデックスキーとして利用し、オブジェクト名及び親ノードインジケータを返す例示的なハッシュテーブルのブロック図表現である。
【図１０】ｉノード番号をインデックスキーとして利用し、オブジェクト名及び親ｉノード番号を返す例示的なハッシュテーブルのブロック図表現である。
【図１１】一実施形態による前回セッション終了時の最長パスを追跡するための例示的なプリフィックスツリーのブロック図表現である。
【図１２】一実施形態による例示的な複製方法のフローチャートである。
【図１３】一実施形態による例示的なネーム空間変換プロセスのフローチャートである。
【図１４】一実施形態による例示的な変更ノード／パスネームオブジェクト変換プロセスのフローチャートである。
【図１５】一実施形態による例示的な非変更ノード／パスネームオブジェクト変換プロセスのフローチャートである
【図１６】一実施形態による例示的なネーム空間変換プロセスのフローチャートである。
【図１７】実施形態による複製システム環境内の周期的な複製動作を示す。
【図１８】一実施形態による例示的な複製モデルのブロック図である。
【図１９】一実施形態による例示的なネーム空間変換モジュールのブロック図である。
【図２０】一実施形態による例示的な変更ノード／パスネームオブジェクト変換モジュールのブロック図である。
【図２１】一実施形態による例示的な非変更ノード／パスネームオブジェクト変換モジュールのブロック図である。
【図２２】一実施形態による例示的なコンピュータシステムを示す。
【発明を実施するための形態】
【００１３】
これより、例が添付図面に示される好ましい実施形態を詳細に参照する。本発明を好ましい実施形態と併せて説明するが、本発明をこれらの実施形態に限定することが意図されないことが理解されよう。逆に、本発明は、説明の趣旨及び範囲内に含むことができる代替、変更、及び均等物を包含することが意図される。さらに、以下の詳細な説明では、完全な理解を提供するために、多くの特定の詳細が記される。しかし、本発明をこれらの特定の詳細なしで実施し得ることが当業者には明らかであろう。他の場合では、周知の方法、手続き、構成要素、及び回路については、本発明の態様を不必要に曖昧にしないように詳細に説明しなかった。
【００１４】
本複製システム及び方法は、様々なシステム構成内の情報の効率的で効果的な保護に役立つ。複製システム及び方法は、外部記憶リソースに向けられた複製動作に対して、内部ノードインジケータからパスネーム内のオブジェクトインジケータへの効率的な変換を使用する、内部ネーム空間管理への内部ノードインジケータの利用に役立つ。一実施形態では、複製システムは、ソース記憶構成要素イメージ内の情報の記憶と、ターゲット記憶構成要素イメージ内の情報の複製とを管理する。管理は、ソース内部ノードインジケータからパスネームインジケータへの変換を管理することを含む。一実施形態では、ソース記憶マネージャが、オブジェクト表示及び親ノード表示を返すデータ構造を利用する。このデータ構造は、ノード／オブジェクト名変換又は「逆」ネーム参照生成に利用することができる。例示的な一実施態様では、データ構造は、ハッシュテーブルと、プリフィックスツリーとを含む。ハッシュテーブルは、ネーム空間変更に関連するノード表示を親ノード表示及びオブジェクト名にマッピングする。プリフィックスツリーは、前回セッションからの非変更ノードの最長パスをマッピングする。本システム及び方法を様々なアーキテクチャ及び構成で実施可能なことが理解される。例えば、本システム及び方法は、分散計算環境、クラウド計算環境、クライアントサーバ環境等の一環として実施することができる。
【００１５】
本複製システム及び方法がインクリメンタルファイルレベル複製に役立つことが理解される。複製システム及び方法は、大規模ファイルシステムの部分ファイルシステム複製に対応する。部分ファイルシステム複製は、各複製動作中の二次又はターゲット記憶リソースの部分の更新を対象とすることができる。例えば、セッション中に変わる一次又はソース記憶リソースイメージの部分が、複製動作中に更新される。複製は、基礎をなすファイルシステムにより提供されるファイル変更ログサービス（例えば、ＶｘＦＳ内のＦＣＬ）上に構築することができる。ログサービスは、内部ファイル識別子又はノードインジケータを追跡することができ、その間、ファイルシステム複製は、絶対的なパスネームを使用して、ソースと複製ターゲットとの間でファイルを一意に識別することができる。所与のノードの上位ディレクトリは、ネーム空間動作（例えば、移動、ネーム変更、新規作成等）中に変わり得、その結果、ネーム空間変換が実行されるまで、複製ファイルシステム内の対応するパスが異なることになる。
【００１６】
一実施形態では、複製システムは記憶リソースを含む。本システム及び方法を様々な記憶構成で実施可能なことが理解される。例えば、記憶リソースは、ソース記憶リソース及びターゲット記憶リソース、一次記憶リソース及び二次記憶リソース等として構成することができる。図１は、一実施形態による例示的なシステム１００のブロック図である。システム１００は、ソース記憶システム１２０に通信可能に結合された動作構成要素１１０を含み、ソース記憶システム１２０はターゲット記憶システム１３０に通信可能に結合される。動作構成要素１１０は、処理構成要素１１１と、任意選択的なメモリ構成要素１１２とを含む。ソース記憶システム１２０は、ファイルシステム管理構成要素１２１と、ソース記憶構成要素１２３とを含む。ファイルシステム管理構成要素１２１は、ネーム空間変換構成要素１２２を含む。
【００１７】
例示的なシステム１００が様々な構成を有することが可能なことが理解される。例えば、動作構成要素１１０及びソース記憶システム１２０は、ローカルシステム又はローカル設備の部分であることができ、ターゲット記憶システム１３０は、リモートシステム又はリモート設備の部分であることができる。処理構成要素１１１が情報（例えば、命令、データ等）をソース記憶構成要素１２３から受信可能なことが理解される。例示的な一実施態様では、動作構成要素１１０はローカルシステム又はローカル設備の部分であり、その一方で、ソース記憶システム１２０及びターゲット記憶システム１３０は、リモートシステム又はリモート設備の部分である。
【００１８】
様々な動作構成要素及びソース記憶構成要素の構成があり得ることが理解される。情報は、複数の動作構成要素（図示せず）とソース記憶システム１２０との間で通信することができる。情報は、複数の記憶システムと動作構成要素との間で通信することもできる。様々なソース記憶システム及びターゲット記憶システムの構成があり得ることも理解される。ソース記憶システムは複数のターゲット記憶システムと通信することができ、複数のターゲット記憶システムがソース記憶システムと通信することができる。
【００１９】
システム１００の構成要素は協働して、ソース記憶及び効率的且つ効果的に複製されたターゲット記憶との様々な動作（例えば、アプリケーション動作等）に役立つ。動作構成要素１１０は様々な動作を実行することができる。例えば、メモリ１１２は、プロセッサ１１１により実行される様々なアプリケーション動作命令を記憶する。ソース記憶システム１２０は、動作構成要素１１０により実行される動作に関連する情報を記憶する（例えば、ソースステージ構成要素１２３に）。ファイルシステム管理構成要素１２１は、動作構成要素１１０から受信した情報の記憶及びターゲット記憶システム１３０への情報の転送を管理する。ファイルシステム管理構成要素１２１はネーム空間変換構成要素１２２を含み、ネーム空間変換構成要素１２２は、ターゲット記憶システム１３０への情報の転送に関連するネーム空間変換を実行する。ターゲット記憶システム１３０は、ソース記憶構成要素１２３に記憶された情報イメージの複製を記憶する。
【００２０】
記憶リソース内の情報は、情報記憶の配置を追跡する様々な指示を利用する記憶階層に編成することができる。例えば、パスネーム指示ネーム空間、ノード指示ネーム空間、組み合わせ等。パスネーム指示ネーム空間インジケータが、スラッシュを使用して一緒に連結されたパスネーム要素を含むことができることが理解される。パスネーム要素は、オブジェクトに対応することができ、ディレクトリ指示、ファイル名指示等を含むことができる。例えば、パスネーム指示又はインジケータは、表現ディレクトリＡ／ｄｉｒｅｃｔｏｒｙＢ／ｄｉｒｅｃｔｏｒｙＣ／ｆｉｌｅｎａｍｅ１、ｄＡ／ｄＢ／ｄＣ／ｆ１等によりパスネームを識別することができる。先行する各パスネーム要素は、後続するオブジェクトを含むオブジェクトを示す。
【００２１】
図２は、一実施形態によるパスネーム要素関係２００の例示的なブロック図である。ディレクトリａｌｐｈａ  ２０１は、ディレクトリｂｒａｖｏ  ２０２と、ディレクトリｇｏｌｆ  ２０７とを含む。ディレクトリｂｒａｖｏ  ２０２は、ディレクトリｃｈａｒｌｉｅ  ２０３と、ディレクトリｆｏｘｔｒｏｔ  ２０６とを含む。ディレクトリｃｈａｒｌｉｅは、ディレクトリｄｅｌｔａ  ２０４と、ファイルｅｃｈｏ  ２０５とを含む。ディレクトリｇｏｌｆ  ２０７は、ディレクトリｈｏｔｅｌ  ２０８と、ディレクトリｕｌｔｒａ  ２０９とを含む。ディレクトリｈｏｔｅｌは、ディレクトリｊｕｌｉｅｔ  ２１０と、ファイルｋｉｌｏ  ２１１とを含む。ディレクトリｊｕｌｉｅｔは、ファイルｌｉｍａ  ２１３と、ｒｏｍｅｏ  ２１４と、ｓｉｅｒｒａ  ２１５と、ｔａｎｇｏ  ２１６とを含む。ファイルが情報を含むことが可能なことが理解される。例えば、ファイルは様々な種類の情報（例えば、データ、命令等）を含むことができる。例示的な一実施態様では、ファイルは、様々なアプリケーション（例えば、言語プログラミングアプリケーション、会計アプリケーション、インターネットアプリケーション、ビデオアプリケーション等）に関連するデータ（例えば、言語プログラミングファイル、ビデオ情報等）及び／又はプログラミング命令（例えば、ソフトウェアプログラム命令、実行ファイル、バイナリ等）を含むことができる。
【００２２】
図３は、一実施形態によるパスネーム要素階層関係３００の別の例示的なブロック図表現である。一実施形態では、パスネーム要素階層関係３００は、パスネーム要素関係２００に対応する。パスネーム要素階層関係３００は、ディレクトリａｌｐｈａ  ２０１と、ディレクトリｂｒａｖｏ  ２０２と、ディレクトリｃｈａｒｌｉｅ  ２０３と、ディレクトリｆｏｘｔｒｏｔ  ２０６と、ディレクトリｄｅｌｔａ  ２０４と、ファイルｅｃｈｏ  ２０５と、ディレクトリｇｏｌｆ  ２０７と、ディレクトリｈｏｔｅｌ  ２０８と、ディレクトリｕｌｔｒａ  ２０９と、ディレクトリｊｕｌｉｅｔ  ２１０と、ファイルｋｉｌｏ  ２１１と、ｌｉｍａ  ２１３と、ｒｏｍｅｏ  ２１４と、ｓｉｅｒｒａ  ２１５と、ｔａｎｇｏ  ２１６とを含む。下位レベルに示され、上位レベルのオブジェクトに結合されたオブジェクトは、上位レベルオブジェクト内に含まれる。例えば、ファイルｄｅｌｔａ  ２０４及びｅｃｈｏ  ２０５は、ディレクトリｂｒａｖｏ  ２０２内に含まれるディレクトリｃｈａｒｌｉｅ  ２０３内に含まれる。下位レベルファイルｌｉｍｅ  ２１３は、ｃｈａｒｌｉｅ  ２０３に結合されていないため、上位ディレクトリｃｈａｒｌｉｅ  ２０３内に含まれない。
【００２３】
様々なオブジェクトインジケータをパスネーム要素の指示に利用可能なことが理解される。図４は、一実施形態による、異なるオブジェクトインジケータを有するパスネーム要素階層関係４００の例示的なブロック図表現である。パスネーム要素階層関係４００は、ディレクトリａ  ４０１と、ディレクトリｂ  ４０２と、ディレクトリｃ  ４０３と、ディレクトリｆ  ４０６と、ディレクトリｄ  ４０４と、ファイルｅ  ４０５と、ディレクトリｇ  ４０７と、ディレクトリｈ  ４０８と、ディレクトリｕ  ４０９と、ディレクトリｊ  ４１０と、ファイルｋ  ４１１と、ファイルｌ  ４１３と、ファイルｒ  ４１４と、ファイルｓ  ４１５と、ファイルｔ  ４１６とを含む。下位レベルに示され、上位レベルのオブジェクトに結合されたオブジェクトは、上位レベルオブジェクト内に含まれる。
【００２４】
図１を再び参照すると、動作構成要素１１０が動作を実行すると、ソース記憶システム１２０内のファイルデータ及びネーム空間情報の両方に変更が生じ得ることが理解される。ソース記憶システムイメージへの変更は、動作が進むにつれて徐々に生じる。しかし、関連するターゲット記憶システムイメージへのソース記憶システムイメージの複製更新は、指定されたセッション時間の持続時間に行われる。一実施形態では、ソース記憶システムイメージ及び関連するターゲット記憶システムイメージは、セッション開始時には一致し、ターゲット記憶システムイメージは同じままであるのに対して、ソース記憶システムイメージは、セッション中に変更される。セッション終了時又は「チェックポイント」時（例えば、所定の時間期間、イベントの発生、特定数の変更が生じた後等）、ソース記憶システムイメージは凍結又はロックされ、イメージ変更は、関連するターゲット記憶システムイメージに複製され、関連するターゲット記憶システムイメージが更新される。
【００２５】
図５は、一実施形態による、動作が時間ｔ０とｔ１との間で行われる際のソース記憶システム内の例示的な変更のブロック図表現である。時間ｔ０では、凍結されたイメージ５１１がある。第１の動作セッションが開始され、動作５０１が動作システムを初期化する。ソースシステムイメージ５１１はセッション開始ファイル階層を含む。ターゲットシステムイメージ５２１は、時間ｔ０では、ソースシステムイメージ５１１のセッション開始ファイル階層に一致する。一実施形態では、ソースシステムイメージ５１１及びターゲットシステムイメージ５２１は、パスネーム要素階層関係４００に対応する（例えば、ソース記憶システムイメージ５１１及びターゲット記憶システムイメージ５２１は、パスネームａ／ｂ／ｃ／ｅ、ａ／ｇ／ｈ／ｊ／ｌ等を含む）。動作５０２は、時間ｔ１において、新しいディレクトリオブジェクトｘをディレクトリオブジェクトｊとファイルｌ及びｒとの間に作成し、ソース記憶システムイメージ５１２は、パスネームａ／ｂ／ｃ／ｅ及びａ／ｇ／ｈ／ｊ／ｘ／ｌを含み、変更をログする。時間ｔ２において、動作５０３は、ファイルをａ／ｂ／ｃ／ｅからａ／ｇ／ｈ／ｊ／ｘ／ｅに移し、記憶システムイメージ５１３は、変更をログしながら、パスネームａ／ｂ／ｃ／ｅを削除し、パスネームａ／ｇ／ｈ／ｊ／ｘ／ｅを含む。時間ｔ４において、動作５０４はオブジェクトａをａ’に、ｌをｌ’に、ｈをｈ’にネーム変更し、ソース記憶システムイメージ５１４はパスネームａ’／ｇ／ｈ’／ｊ／ｘ／ｅ及びａ’／ｇ／ｈ’／ｊ／ｘ／ｌ’を含む。時間ｔ５において、セッションは終了し、ソース記憶システムイメージ５１４は凍結又はロックされ、その間、イメージ変更が関連するターゲット記憶システムイメージ５２３に複製される。例えば、ターゲット記憶システムイメージ５２２は、ａ’／ｇ／ｈ’／ｊ／ｘ／ｌ’及びａ’／ｇ／ｈ’／ｊ／ｘ／ｅを複製するように更新される。
【００２６】
セッション中に多くの動作があり得、セッション長が様々であり得ることが理解される。セッション長を長くしてもよく、又は短くしてもよいことも理解される。一実施形態では、図５のセッション長は複数のセッションに分割される。例えば、時間ｔ３において、第１のセッションを終了することができ、ソース記憶システムイメージ５１３を凍結又はロックし、その間、イメージ変更が、関連するターゲット記憶システムイメージに複製される。例えば、関連するターゲット記憶システムイメージは、時間ｔ３において、ａ／ｇ／ｈ／ｊ／ｘ／ｌ及びａ／ｇ／ｈ／ｊ／ｘ／ｅを複製するよに更新することができる。
【００２７】
一実施形態では、動作は進み続け、中間情報が追跡され、その間、ソース記憶システムイメージは凍結される。ソース記憶システムイメージがロック解除されると、ソース記憶システムイメージは、追跡された中間情報に対応するように更新される。
【００２８】
過度の詳細で説明を不明瞭にしないように、パスネームａ／ｂ／ｃ／ｅ及びａ／ｇ／ｈ／ｊ／ｌを含むセッションファイル階層パスネームの部分が図５に示される。他のパスネーム（例えば、ａ／ｂ／ｃ／ｄ、ａ／ｇ／ｈ／ｊ／ｒ、ａ／ｇ／ｈ／ｊ／ｔ、ａ／ｇ／ｕ等）をソースシステムイメージ及びターゲットシステムイメージに含めることができることが理解される。追加の動作（図示せず）（例えば、ｊの下且つｓ及びｌの上に新しいディレクトリオブジェクトｙを作成し、オブジェクトｒをｒにネーム変更する等）を含めることもでき、対応するパスネーム変更をソースシステムイメージ（例えば、ａ／ｇ／ｈ／ｊ／ｙ／ｔ、ａ  ／ｇ／ｈ／ｊ／ｘ／ｒ’等）及びターゲットシステムイメージに含むことができることも理解される。図６は、一実施形態による変更後のパスネーム要素階層関係６００の例示的なブロック図表現である。パスネーム要素階層関係６００は、ディレクトリａ’  ６０１と、ディレクトリｂ  ４０２と、ディレクトリｃ  ４０３と、ディレクトリｆ  ４０６と、ディレクトリｄ  ４０４と、ディレクトリｇ  ４０７と、ディレクトリｈ’  ６０８と、ディレクトリｕ  ４０９と、ファイルｋ  ４１１と、ディレクトリｊ  ４１０と、ディレクトリｘ  ６２１と、ファイルｅ  ６０５と、ファイルｌ’  ６１３と、ファイルｒ’  ６１４と、ディレクトリｙ  ４２２と、ファイルｓ  ４１５と、ファイルｔ  ４１６とを含む。下位レベルに示され、上位レベルのオブジェクトに結合されたオブジェクトは、上位レベルオブジェクト内に含まれる。
【００２９】
ファイルシステムアーキテクチャは、ノード表示を利用して、ファイルシステム名ネーム空間に関連する情報を追跡することができる。例えば、ファイルシステムアーキテクチャは、ファイルシステム名内の各オブジェクト（例えば、ディレクトリ、ファイル等）に対応する一意のノードインジケータを利用することができる。一実施形態では、内部ノードインジケータ（ｉノード）は各オブジェクトに関連付けられる。例示的な一実施態様では、ノードインジケータはｉノード番号であり、各オブジェクトが作成される場合、一意のシーケンシャルｉノード番号がノードに関連付けられるか、又は割り当てられる。図７は、一実施形態によるファイルネーム空間オブジェクトノード階層７００の例示的なブロック図表現である。ファイルネーム空間オブジェクトノード階層７００は、ｉノード１、ｉノード２、ｉノード３、ｉノード４、ｉノード５、ｉノード６、ｉノード７、ｉノード８、ｉノード９、ｉノード１０、ｉノード１１、ｉノード１２、ｉノード１３、ｉノード１４、ｉノード１５、及びｉノード１６を含む。一実施形態では、ファイルネーム空間オブジェクトｉノード階層７００は、パスネーム要素階層関係４００の例示的なブロック図表現に対応する。
【００３０】
セッション中、動作が進むにつれて、ノードに関連する変更が生じ得る。例えば、ノードの関係が変化し得る（例えば、ノードを移動し、オブジェクト名に対応するノードが変更され得、ノードが作成され得、ノードを削除し得る等）。図８は、一実施形態による動作変更後のファイルネーム空間オブジェクトｉノード階層８００の例示的なブロック図表現である。ファイルネーム空間オブジェクトｉノード階層８００は、ｉノード１、ｉノード２、ｉノード３、ｉノード４、ｉノード５、ｉノード６、ｉノード７、ｉノード８、ｉノード９、ｉノード１０、ｉノード１１、ｉノード１２、ｉノード１３、ｉノード１４、ｉノード１５、ｉノード１６、ｉノード２１、及びｉノード２２を含む。一実施形態では、ファイルネーム空間オブジェクトｉノード階層８００は、パスネーム要素階層関係６００の例示的なブロック図表現に対応する。
【００３１】
一実施形態では、ネーム空間変更に関連するノードを含め、ソース記憶システムイメージ内の変更に関連するノードが追跡される。例示的な一実施態様では、各セッションのファイル変更ログ（ＦＣＬ）が保持され、ＦＣＬはネーム空間変更に関連するノードインジケータを含む。ＦＣＬはデータ構造内に含むことができる。例えば、データ構造は、以下の表現に対応するテーブルであることができる。
【００３２】
【表１】
2013506920.tif 000027
【００３３】
各セッションブレークにおいて、ネーム空間変更を含め、ソース記憶システムイメージ内で生じた変更は、ターゲット記憶システムイメージ内で複製される。しかし、ソース記憶システムイメージ内でネーム空間変更を内部で追跡するために利用されるノード表示は、ターゲット記憶システムイメージに対してネーム空間変更を示すために利用されない。一実施形態では、ソース記憶システムイメージ内の内部ノード表示は、ターゲット記憶システムイメージ内の内部ノード表示と一致しない。ネーム空間変換が、パスネーム表示を再編成するために利用される。
【００３４】
一実施形態では、ネーム空間変更追跡データ構造を利用して、ネーム空間変更（例えば、オブジェクトの移動、オブジェクトのネーム変更、オブジェクトの作成等）を追跡する。例示的な一実施態様では、ネーム空間変更追跡データ構造は、オブジェクトインジケータ及び親ノードインジケータにマッピングされるインデックスキーとしてノードインジケータを利用する。ネーム空間変更追跡データ構造が、ノードインジケータ及び生成カウントをインデックスキーとして利用できることが理解される。様々なネーム空間変更追跡データ構造を利用可能なことも理解される。例えば、ハッシュテーブルに対応するデータを利用することができる。図９は、一実施形態によるノードインジケータをインデックスキーとして利用し、オブジェクト名及び親ノードインジケータを返すハッシュテーブル９００の例示的なブロック図表現である。ハッシュテーブル９００は、ノード１のセル９０１、親ノード１（ｐノード１）のセル９１１、オブジェクト１名のセル９２１、ノード２のセル９０２、ｐノード２のセル９１２、オブジェクト２名のセル９２２、ノード３のセル９０３、ｐノード３のセル９１３、オブジェクト３名のセル９２３を含む。例示的な一実施態様では、ノード２は、ハッシュテーブル９００への参照動作のキーインデックスとして利用され、ハッシュテーブル９００はｐノード２及びオブジェクト２名を返す。
【００３５】
図１０は、ｉノード番号をインデックスキーとして利用し、オブジェクト名及び親ノード番号を返すハッシュテーブル１０００の例示的なブロック図表現である。ハッシュテーブル１０００は、図５及び図６に示される動作セッション内で生じる変更を含む。ハッシュテーブル１０００は、ｉノード番号１が入力されたセル１００１、ｉノード番号ヌルが入力されたセル１０１１、オブジェクト名ａ’が入力されたセル１０２１、ｉノード番号５が入力されたセル１００２、ｉノード番号２１が入力されたセル１０１２、及びオブジェクト名ｅが入力されたセル１０２２；ｉノード番号８が入力されたセル１００３、ｉノード番号７が入力されたセル１０１３、オブジェクト名ｈ’が入力されたセル１０２３；ｉノード番号１３が入力されたセル１００４、ｉノード番号２１が入力されたセル１０１４、オブジェクト名ｌ’が入力されたセル１０２４；並びにｉノード番号２１が入力されたセル１００５、ｉノード番号１０が入力されたセル１０１５、オブジェクト名ｘが入力されたセル１０２５を含む。ｉノード番号は、ハッシュテーブル１０００へのルックカップ動作のキーインデックスとして利用され、ハッシュテーブル１０００は親のｉノード番号及びオブジェクト名を返す。例示的な一実施態様では、ｉノード番号５がハッシュテーブル１０００への参照動作のキーインデックスとして利用され、ハッシュテーブル１０００はｉノード番号２１及びオブジェクト名ｅを返す。
【００３６】
一実施形態では、最長パス追跡データ構造を利用して、前回セッションの終了時の最長パスを追跡する。例示的な一実施態様では、移動又はネーム変更されたオブジェクトの元のパスネーム（例えば、前回チェックポイントでのパスネーム）が追跡される。様々なネーム空間変更追跡データ構造を利用可能なことが理解される。例えば、線形検索テーブル、プリフィックスツリー等。図１１は、一実施形態による前回セッション終了時の最長パスを追跡するプリフィックスツリー１１００の例示的なブロック図表現である。一実施形態では、プリフィックスツリー１１００は、ｉノード１、ｉノード２、ｉノード３、ｉノード４、ｉノード５、ｉノード６、ｉノード７、ｉノード８、ｉノード９、ｉノード１０、ｉノード１１、ｉノード１２、ｉノード１３、ｉノード１４、ｉノード１５、及びｉノード１６を含む。例示的な一実施態様では、プリフィックスツリー１１００はファイルネーム空間オブジェクトｉノード階層７００に対応する。
【００３７】
プリフィックスツリー１１００を文字列で表現可能なことが理解される。例えば、以下のテーブルは、プリフィックスツリー内のパスチェーンのうちのいくつかを表すために利用可能な文字列を含む。
【００３８】
【表２】
2013506920.tif 000028
【００３９】
図１２は、一実施形態による例示的な複製方法１２００のフローチャートである。複製方法１２００は、外部記憶リソースに向けられた複製動作のためにノードインジケータをパスネーム内のオブジェクトインジケータに効率的に変換するネーム空間管理へのノードインジケータの利用に役立つ。
【００４０】
ブロック１２１０において、記憶イメージが凍結される。一実施形態では、凍結イメージは、ソース記憶ファイルシステムのスナップショットである。例示的な一実施態様では、スナップショットはセッションチェックポイントで作成される。
【００４１】
ファイルシステム内のネーム空間変更に関連するノードインジケータが、ブロック１２２０において特定される。一実施形態では、ファイル変更ログが調べられ、オブジェクト変更に関連するノードが検索される。例示的な一実施態様では、各セッションのファイル変更ログ（ＦＣＬ）が保持され、ＦＣＬは、ネーム空間変更に関連するノードの表示を含む。
【００４２】
ブロック１２３０において、ネーム空間変換プロセスが実行される。一実施形態では、ノードインジケータはパスネームオブジェクトインジケータに変換される。例示的な一実施態様では、データ構造を利用して、オブジェクトインジケータ及び親ノードインジケータを検索する。例えば、ネーム空間変更追跡データ構造を利用して、ネーム空間変更（例えば、オブジェクトの移動、オブジェクトのネーム変更、オブジェクトの作成等）を追跡し、変更されたオブジェクトインジケータを特定する。最長パス追跡データ構造を利用して、前回セッション終了時の最長パスを追跡し、変更されていないオブジェクトインジケータを特定する。一実施形態では、内部ノードインジケータはパスネームオブジェクトに変形される。
【００４３】
ブロック１２４０において、不必要な情報がフィルタリングされる。
【００４４】
ブロック１２５０において、ファイルデータが検索される。例示的な一実施態様では、ファイルデータは、様々なアプリケーション（例えば、言語プログラミングアプリケーション、会計アプリケーション、インターネットアプリケーション、ビデオアプリケーション等）に関連する様々な種類のデータ（例えば、テキスト、ビデオ情報等）及び／又はプログラミング命令（例えば、ソフトウェアプログラム命令、実行ファイル、バイナリ等）を含むことができる。
【００４５】
セッションチェックポイント間の動作から生じる情報又は記憶イメージの変更は、ブロック１２６０において転送される。変更は、ネーム空間並びにファイルデータの変更に関連するオブジェクトインジケータを含むことができる。一実施形態では、情報のデルタが複製記憶システム（例えば、ターゲット記憶システム、二次記憶システム等）に転送される。一実施形態では、ネーム空間変更に関連するノードインジケータから変換されたオブジェクトインジケータを有するパスネームが、複製記憶システムに転送される。
【００４６】
図１３は、一実施形態による例示的なネーム空間変換プロセス又は方法１３００のフローチャートである。一実施形態では、ネーム空間変換プロセス１３００は、複製方法１２００のブロック１２３０において利用されるネーム空間変換プロセスと同様である。
【００４７】
ブロック１３１０において、ファイルシステム動作変更に関するノード情報が受信される。一実施形態では、複製方法１２００のブロック１２２０において特定されるノードインジケータが受信される。例えば、ネーム空間変更に関連するものとしてファイル変更ログ（ＦＣＬ）内で識別されるノード。
【００４８】
ブロック１３２０において、変更ノード／パスネームオブジェクト変換プロセスが実行される。一実施形態では、変更ノード／パスネームオブジェクト変換プロセスは、オブジェクトインジケータ及び親ノード番号を返すデータ構造を利用する。例示的な一実施態様では、データ構造は、ネーム空間変更に関連するノードインジケータを親ノードインジケータ及びオブジェクト名にマッピングするネーム空間変更追跡データ構造である。ネーム空間変更追跡データ構造はハッシュテーブルを含むことができる。
【００４９】
非変更ノード／パスネームオブジェクト変換プロセスが、ブロック１３４０において実行される。一実施形態では、非変更ノード／パスネームオブジェクト変換プロセスは、オブジェクトインジケータ及び親ノード番号を返すデータ構造を利用する。例示的な一実施態様では、非変更ノード／パスネームオブジェクト変換プロセスは、最長パス追跡データ構造を利用する。最長パス追跡データ構造はプリフィックスツリーであることができる。
【００５０】
変更ノードパスネームオブジェクト変換プロセス（例えば、１３２０）への入力として、親オブジェクトノードインジケータを返すことができる。非変更ノード／パスネームオブジェクト変換プロセスへの入力として、変更ノードパスネームオブジェクト変換プロセスを介して親オブジェクトノードインジケータを返すこともできる。例えば、変更ノードパスネームオブジェクト変換プロセス及び非変更ノード／パスネームオブジェクト変換プロセスを通る再帰ループで、親オブジェクトノードインジケータを返すことができる。
【００５１】
ブロック１３５０において、オブジェクトインジケータはパスネームに挿入される。一実施形態では、オブジェクトインジケータは、変更ノード／パスネームオブジェクト変換プロセス及び非変更ノード／パスネームオブジェクト変換プロセスの結果に基づいて、パスネームに挿入される。一実施形態では、オブジェクトインジケータは、パスネームに連結される。例えば、オブジェクトインジケータは、パスネームのスラッシュ間に挿入される。
【００５２】
ブロック１３７０において、親ノードインジケータがヌルであるか否かが判断される。ヌルではない場合、ブロック１３３０に戻る。ヌルの場合、ブロック１３９０に進む。
【００５３】
ブロック１３９０において、パスネームが転送される。一実施形態では、変換されたパスネームはターゲット記憶リソースに転送される。
【００５４】
図１４は、一実施形態による例示的な変更ノード／パスネームオブジェクト変換プロセス又は方法１４００のフローチャートである。変更ノード／パスネームオブジェクト変換プロセス１４００は、ブロック１３３０において利用される変更ノード／パスネームオブジェクト変換プロセスと同様である。
【００５５】
ブロック１４１０において、ノードインジケータが受信される。一実施形態では、ノードインジケータはブロック１２２０から受信される。例示的な一実施態様では、ノードインジケータはファイル変更ログから受信される。ノードインジケータは、以下のブロック１４７０から受信される親ノードインジケータであることができる。ノードインジケータは、非変更ノード／パスネームオブジェクト要素変換プロセスから受信される親ノードインジケータであることもできる。例えば、非変更ノード／パスネーム／オブジェクト要素変換プロセスは、ブロック１３４０において利用されるプロセスと同様であることができる。
【００５６】
ブロック１４２０において、ノードがネーム空間変更に関連するか否かが判断される。一実施形態では、ｉノード番号は、ネーム空間変更に関連するｉノード番号のハッシュテーブルへのキーとして利用される。テーブルの検索により、ｉノード番号がテーブル内に存在しないことが示される場合、プロセスはブロック１４５０に進む。テーブルの検索により、ｉノード番号が存在することが示される場合、プロセスはブロック１４３０に進む。
【００５７】
ブロック１４３０において、ノードに関連するオブジェクト名が検索される。一実施形態では、オブジェクト名は、ネーム空間変更に関連するノードインジケータをオブジェクト名にマッピングするハッシュテーブルから検索される。例示的な一実施態様では、図９に示されるハッシュテーブル番号９００と同様のハッシュテーブルが、オブジェクト名の検索に利用される。
【００５８】
ブロック１４４０において、検索されたオブジェクト名がパスネームに挿入される。一実施形態では、「／」がパスネームの冒頭に追加され、オブジェクト名がパスネームの冒頭に連結される。
【００５９】
親ノードに関連するノードインジケータが、ブロック１４７０において検索され、ブロック１４１０に転送される。
【００６０】
ブロック１４５０において、ノードインジケータは、転送されてさらに処理される。一実施形態では、ノードインジケータは、ブロック１３４０において利用されるプロセスと同様の非変更ノード／パスネームオブジェクト要素変換プロセスに転送される。
【００６１】
図１５は、一実施形態による例示的な非変更ノード／パスネームオブジェクト変換プロセス又は方法１５００のフローチャートである。一実施形態では、パスネームオブジェクト変換プロセス１５００は、ブロック１３４０において利用される非変更ノード／パスネームオブジェクト変換プロセスと同様である。
【００６２】
ブロック１５０１において、ノードインジケータが受信される。一実施形態では、ノードインジケータはブロック１２２０から受信される。例示的な一実施態様では、ノードインジケータは、ファイル変更ログから受信される。ノードインジケータは、図４のブロック１４７０から受信される親ノードインジケータであることができる。ノードインジケータは、非変更ノード／パスネームオブジェクト要素変換プロセスから受信される親ノードインジケータであることもできる。例えば、非変更ノード／パスネーム／オブジェクト要素変換プロセスは、以下のブロック１５３０において利用されるプロセスと同様であることができる。
【００６３】
ブロック１５１０において、非変更オブジェクトへの前回セッション最長パスネームチェーンが取得される。一実施形態では、前回セッション最長パスネームチェーンはプリフィックスツリーである。例えば、プリフィックスツリーは、図１１に示されるプリフィックスツリーと同様であることができる。
【００６４】
ブロック１５２０において、親ノードインジケータが取得される。一実施形態では、親ノードインジケータは、プリフィックスツリー内の最長チェーン内の最後のノードインジケータから２番目のノードインジケータである。
【００６５】
ブロック１５３０において、親に関連するノードインジケータは、転送されてさらに処理される。一実施形態では、親ノードインジケータは、変更ノード／パスネームオブジェクト変換プロセスに転送される。
【００６６】
ブロック１５４０において、非変更オブジェクト名が最長パスネームチェーンから検索される。一実施形態では、非変更ノードインジケータは、プリフィックスツリー内の最長チェーン内の最後のノードインジケータである。
【００６７】
ブロック１５５０において、オブジェクト名がパスネームに挿入される。一実施形態では、パスネームスラッシュ（／）がパスネームに挿入され、オブジェクト名がパスネームの冒頭に連結される。
【００６８】
図１６は、一実施形態による例示的なネーム空間変換プロセス又は方法１６００のフローチャートである。
【００６９】
ブロック１６１０において、ｉノード番号が受信されたか否かが判断される。一実施形態では、ｉノード番号１６０１は、ファイル変更ログから受信することができ、又は後続ブロック（例えば、ブロック１６３４、ブロック１６４１等）から返される親ｉノード番号であることとができる。
【００７０】
ブロック１６２０において、ｉノード番号が動作変更ハッシュテーブル内にあるか否かが判断される。一実施形態では、ｉノード番号は、動作変更ハッシュテーブルへのキーインデックスとして使用される。
【００７１】
ブロック１６３０において、プリフィックスチェーンが調べられ、非変更ｉノード番号に関連するオブジェクトへの前回セッション最長パスネームが特定される。一実施形態では、プリフィックスチェーンは非変更オブジェクトの表示を含む。
【００７２】
ブロック１６３１において、オブジェクト名が、ブロック１６３０において特定された最長チェーンの末尾から検索される。一実施形態では、オブジェクト名は非変更オブジェクトに関連する。ファイルシステムは、非変更ｉノード番号をパスネームオブジェクトに直接マッピングすることができる。
【００７３】
ブロック１６３３において、親ｉノード番号が最長チェーンから検索される。一実施形態では、親ｉノード番号はブロック１６１０に返される。
【００７４】
ブロック１６４０において、オブジェクト名がハッシュテーブルから検索される。一実施形態では、オブジェクト名は、ハッシュテーブル参照から返される。プロセスはブロック１６５０に進む。
【００７５】
ブロック１６４０において、親ｉノード番号が検索され、ブロック１６１０に転送される。
【００７６】
ブロック１６５０において、検索されたオブジェクト名はパスネームに挿入される。
【００７７】
パスネームは、ブロック１６９０において転送される。一実施形態では、パスネームはターゲット記憶システムに転送される。
【００７８】
図５を再び参照すると、ネーム空間内の動作変更及びターゲット記憶システムへの対応する複製更新が示される。一実施形態では、ソース記憶システムイメージの初期オブジェクトパスネーム表現（例えば、ｕのオブジェクト名及びｉを除くａ〜ｔのオブジェクト名）が図４に示される。しかし、ソース記憶ファイルシステムは、図７に示される一意のｉノード番号（例えば、１〜１６）を利用して、ネーム空間を内部で管理し、したがって、変換ネーム空間変換プロセス（例えば、１３００）を利用して、ｉノード番号からオブジェクト名に変換する。一実施形態では、ＦＣＬ内で指定されるノードは、２１、５、１３、８等を含むことができる。時間ｔ５において、複製方法１２００のブロック１２１０が、図５に示されるソース記憶システムイメージ５１４を凍結する。ブロック１２２０において、ネーム空間変更に関連するノードインジケータ２１、５、１３、８等は、ＦＣＬから検索される。第１のｉノード番号２１をとり、ネーム空間変換プロセスは、ｉノード番号２１に関連する新たに作成されたオブジェクトＸに関連するパスネームへの変更を確立する。過度の詳細で本説明を不明瞭にすることを回避するために、本考察は、ｉノード番号１３がＦＣＬから検索される例まで先に飛ぶ。
【００７９】
ＦＣＬからのｉノード番号１３は、ブロックｌ３１０により受信され、変更ノード／パスネームオブジェクト変換プロセスが、ブロック１３２０において実行される。一実施形態では、ブロック１４２０によるｉノード番号１３のハッシュテーブル参照により、ノードが、ハッシュテーブル（例えば、１００４）内に存在することから動作変更に関連することが示され、セル１０２４からのオブジェクト名ｌ’が検索され（例えば、ブロック１４３０により）、パスネームに挿入される（例えば、ブロック１４４０により）。ここで、部分パスネームはｌ’である。ブロック１４７０において、親ｉノード番号２１がセル１０１４から検索され、ブロック１４１０、そして１４２０に転送されて、ハッシュテーブルが再帰的に参照される。再帰的な参照により、ｉノード番号２１がセル１００２内にあることが示され、セル１０２２内のオブジェクト名ｘが、パスネームに挿入されて、部分パスネームｘ／ｌ’が与えられる。親ｉノード番号１０は１４２０にフィードバックされ、ハッシュテーブル参照により、ｉノード番号１０がネーム空間変更に関連しないことが示される。ｉノード番号１０はブロック１３４０に転送され（例えば、ブロック１４５０により）、ブロック１３４０は、非変更ノード／パスネームオブジェクト変換プロセスを実行する。
【００８０】
ｉノード番号１０はブロック１５１０により受信され、ｉノード番号１０に関連する非変更オブジェクトへの最長パスネーム変更が特定される。例示的な一実施態様では、プリフィックスツリー１１００を利用して、ｉノード番号１０への最長パスネームがｉノード１／ｉノード７／ｉノード８／ｉノード１０であることを示す。ｉノード番号１０が変更されていない場合、ファイルシステムは、ｉノード番号１０の割り当てを参照し、ｉノード番号１０がオブジェクトｊに割り当てられていることが特定され、オブジェクトインジケータｊがパスネームに挿入される。ここで、部分パスネームはｊ／ｘ／ｌ’である。ブロック１５２０において、親ノード番号８が最長チェーンから検索される。ブロック１５３０は、親ｉノード番号８をブロック１３１０にフィードバックし、ハッシュテーブルは再帰的に参照される。
【００８１】
再帰的な参照により、ｉノード番号８がセル１００３内にあることが示され、セル１０２３内のオブジェクト名ｈ’がパスネームに挿入されて、部分パスネームｈ’／ｊ／ｘ／ｌ’が与えられる。親ｉノード番号７は１４２０にフィードバックされ、ハッシュテーブル参照により、ｉノード番号７がネーム空間変更に関連しないことが示される。ｉノード番号７はブロック１３４０に転送され（例えば、ブロック１４５０により）、ブロック１３４０は非変更ノード／パスネームオブジェクト変換プロセスを実行する。
【００８２】
プリフィックスツリー１１００を利用して、ｉノード番号１及びｉノード番号７の最長チェーンが識別される。ｇのオブジェクト名が、非変更ｉノード番号７のセッション開始情報から検索され、オブジェクト名ｇはパスネームに挿入されて、部分パスネームｇ／ｈ’／ｊ／ｘ／ｌ’が与えられる。親ｉノード番号１は再びブロック１３１０に転送され、ハッシュテーブルが再帰的に参照される。
【００８３】
ハッシュテーブルの再帰的な参照により、ｉノード番号１がセル１００１内にあることが示され、セル１０２１内のオブジェクト名ａ’はパスネームに挿入されて、部分パスネームａ’／ｇ／ｈ’／ｊ／ｘ／ｌ’が与えられる。親ｉノード番号ヌルがブロック１３７０に転送され、ブロック１３７０はヌルインジケータを認識し、パスネームａ’／ｇ／ｈ’／ｊ／ｘ／ｌ’がブロック１３０によりターゲットファイルシステムに転送され、複製されたターゲット記憶システムイメージの更新に利用される。したがって、ネーム空間変更を含むソースファイルシステムのファイル管理に利用されるｉノード番号１３は、パスネームａ’／ｇ／ｈ’／ｊ／ｘ／ｌ’に効率的に変形され変換される。ネーム空間変換プロセス１２２０を通しての同様の再帰的ループが、他のｉノード番号インジケータからオブジェクトパスネームへの変換に役立ち得ることが理解される。
【００８４】
図１７は、実施形態による複製システム環境１７００内の周期的な複製動作を示す。示される実施形態では、一次システム１７００ａ内の一次データ容量（Ｖｏｌ）のインクリメント的に改変又は変更されるデータのコピーが、二次システム１７００ｂ内の複製二次データ容量（Ｒ＿Ｖｏｌ）に周期的に転送される。一次データ容量のアクセス可能性を保つために、ポイントインタイム「スナップショット」容量（Ｓ＿Ｖｏｌ）が作成され、周期的な複製が、スナップショット容量を使用して実行される。同様に、二次データ容量のアクセス可能性を保つために、ポイントインタイム「スナップショット」容量（ＲＳ＿Ｖｏｌ）が作成され、二次システム１７００ｂで使用されて、一次システム１７００ａからインクリメント的な変更を受信し、複製二次データ容量を復元する。
【００８５】
示される実施形態の複製システムでは、一次ノード１７００ａは、ネットワーク１７１４（例えば、ＩＰネットワーク、ＬＡＮ、ＷＡＮ、又は他の通信リンク）を介して二次システム１７００ｂに結合される。示される実施形態の一次システム１７００ａ及び二次システム１７００ｂのそれぞれは、アプリケーション１７０２と、ファイルシステム１７０４と、チェックポイントマネージャ１７０５と、容量複製器１７０８を含む容量マネージャ１７０６とを含み、これらは、一次システム１７００ａ及び二次システム１７００ｂの各プロセッサ及びメモリで実施し得る。一実施形態では、チェックポイントの作成を管理する機能は、チェックポイントマネージャ１７０５により実施される。図１の実施形態は、初期同期の使用を介して初期化される。初期同期中、一次システム１７００ａ内の一次データ容量（Ｖｏｌ）の内容は、二次システム１７００ｂ内の複製二次データ容量（Ｒ＿Ｖｏｌ）に転送される。一実施形態では、一次データ容量のアクセス可能性を保つために、ポイントインタイム「スナップショット」容量（Ｓ＿Ｖｏｌ）が、「チェックポイント」時点で作成され、初期同期（並びに続く周期的な複製）が、スナップショット容量を使用して実行される。初期同期が実行されている場合、一次データ容量への更新（例えば、書き込み動作又は他の変更）が追跡され、後に、実施形態による周期的な複製を実行する際に使用される。
【００８６】
一次システム１７００ａは、ソース記憶リソースイメージを含む一次データ容量１７１０ａをさらに含む。二次システム１７００ｂは、ターゲット記憶リソースイメージを含む二次データ容量１７１０ｂを含む。一実施形態では、容量複製器１７０８ａは、ネーム空間変換を実行するネーム空間変換モジュール１７５０を含む。一実施形態では、ネーム空間変換モジュール１７５０は、容量複製器１７０８ａに関連する複製モジュールに対応する。ネーム空間変換モジュールを様々な環境の一環として実施可能なことが理解される。例えば、ネーム空間変換モジュールは、分散計算環境、クラウド計算環境、クライアントサーバ環境等の一環として実施可能である。
【００８７】
図１８は、一実施形態による例示的な複製モジュール１８００のブロック図である。例示的な一実施態様では、複製モジュール１８００は、コンピュータ可読媒体に記憶された命令を含む。複製モジュール１８００及びコンピュータ可読媒体は、複製システム環境１７００内で利用することができる。複製モジュール１８８０は、複製方法を実行する命令を含むことができる。
【００８８】
イメージ凍結モジュール１８１０は、ファイルシステム内のイメージを凍結する。ファイル変更ログ検査モジュール１８２０は、ネーム空間変更に関連するノードインジケータを特定する。ネーム空間変換モジュール１８３０は、ノードインジケータからパスネームインジケータへのネーム空間変更を実行する。フィルタモジュール１８４０は、不必要な情報をフィルタリングする。ファイルデータ検索モジュール１８５０は、ファイルデータを検索する。動作デルタ転送モジュール１８６０は、パスネームに関連する情報を含め、セッションチェックポイント間のデルタ変更動作情報を転送する。本モジュール及び本方法が、計算装置により実行された場合、計算装置に、ノードインジケータからオブジェクトインジケータへのネーム空間変換を含む複製イメージ記憶動作を実行させるコンピュータ可読媒体を含む製品に記憶された命令を含むことができることが理解される。
【００８９】
図１９は、一実施形態による例示的なネーム空間変換モジュール１９００のブロック図である。例示的な一実施態様では、ネーム空間変換モジュール１９００は、コンピュータ可読媒体に記憶された命令を含む。例示的な一実施態様では、ネーム空間変換モジュール１９００は、ネーム空間変換モジュール１８３０と同様である。ネーム空間変換モジュール１９００は、ネーム空間変換プロセス又は方法を実行する命令を含むことができる。
【００９０】
ノード情報受信モジュール１９１０は、ファイルシステム動作変更に関するノード情報を受信する。変更ノード／パスネームオブジェクト変換モジュール１９２０は、変更ノード／パスネームオブジェクト変換プロセスを実行する。非変更ノード／パスネームオブジェクト変換モジュール１９３０は、非変更ノード／パスネームオブジェクト変換プロセスを実行する。オブジェクトインジケータ挿入モジュール１９４０は、パスネームへのオブジェクトインジケータ挿入を実行する。ヌル判断モジュール１９５０は、親ノード表示がヌルであるか否かを判断する。パスネーム転送モジュール１９６０は、パスネームを転送する。例えば、パスネーム転送モジュール１９６０は、パスネームをターゲットシステム記憶リソースに転送する。
【００９１】
図２０は、一実施形態による例示的な変更モード／パスネームオブジェクト変換モジュール２０００のブロック図である。例示的な一実施態様では、変更モード／パスネームオブジェクト変換モジュール２０００は、コンピュータ可読媒体に記憶された命令を含む。例示的な一実施態様では、変更モード／パスネームオブジェクト変換モジュール２０００は、変更モード／パスネームオブジェクト変換モジュール１９２０と同様である。変更モード／パスネームオブジェクト変換モジュール２０００は、変更モード／パスネームオブジェクト変換プロセス又は方法を実行する命令を含むことができる。
【００９２】
ノードインジケータ受信モジュール２０１０は、ノードインジケータを受信する。ノード関連モジュール２０２０は、ノードが動作変更に関連するか否かを判断する。オブジェクトインジケータ検索モジュール２０３０は、ノードに関連するオブジェクト名を検索する。親ノードインジケータモジュール検索モジュール２０５０は、親ノードインジケータを検索する。オブジェクト挿入モジュール２０５０は、オブジェクトインジケータをパスネームに挿入する。ノード表示転送モジュール２０６０は、ノードインジケータを転送してさらに処理する。一実施形態では、ノード表示転送モジュール２０６０は、ノードインジケータを非変更ノード／パスネームオブジェクト変換モジュール（例えば、ブロック１９３０）に転送する。
【００９３】
図２１は、一実施形態による例示的な非変更ノード／パスネーム変換モジュール２１００のブロック図である。例示的な一実施態様では、非変更ノード／パスネーム変更モジュール２１００は、コンピュータ可読媒体に記憶された命令を含む。例示的な一実施態様では、非変更ノード／パスネーム変換モジュール２１００は、非変更ノード／パスネーム変換モジュール１９３０と同様である。非変更ノード／パスネーム変換モジュール２１００は、非変更ノード／パスネーム変換プロセス又は方法を実行する命令を含むことができる。
【００９４】
最長チェーンモジュール２１１０は、非変更オブジェクトへの前回セッション最長パスネームチェーンを取得する。親ノードインジケータ検索モジュール２１２０は、親に関連するノードインジケータを取得する。親ノードインジケータ転送モジュール１５３０は、親ノードインジケータを転送する。非変更オブジェクト検索モジュール２１４０は、最長パスネームチェーンから非変更オブジェクト名を検索する。オブジェクト挿入モジュール２１５０は、検索されたオブジェクトインジケータをパスネームに挿入する。
【００９５】
図２２は、一実施形態による例示的なコンピュータシステム２２００を示す。コンピュータシステム２２００は、上述した実施形態の特定のハードウェアに基づく機能及びソフトウェアに基づく機能の実行環境を提供する基本的なコンピュータシステムの構成要素を示す。例えば、コンピュータシステム２２００は、１つ又は複数のソフトウェアスタック（例えば、モジュール１７０２〜１７０８、１７５０、１８１０〜１８６０、１９１０〜１９６０、２０１０〜２０６０、２１１０〜２１５０等）がインスタンス化されるシステムであることができる。コンピュータシステム２２００は、例えば、サーバコンピュータシステム、ワークステーションコンピュータシステム、デスクトップコンピュータシステム、又はラップトップコンピュータシステムとして実施することができる。同様に、コンピュータシステム２２００はハンドヘルド装置として実施することができる。コンピュータシステム２２００は通常、少なくとも何等かの形態のコンピュータ可読媒体（例えば、コンピュータ可読媒体２２０１）を含む。コンピュータ可読媒体は、コンピュータシステム２２００がアクセス可能ないくつかの異なる種類の媒体であることもでき、リムーバブルコンピュータ記憶媒体、非リムーバブルコンピュータ記憶媒体、フラッシュメモリ、ハードディスク、光ディスクドライブ、コンパクトディスク（ＣＤ）等）を挙げることができるが、これらに限定されない。
【００９６】
最も基本的な構成では、コンピュータシステム２２００は通常、処理ユニット２２０３及びメモリ２２０１を含む。使用されるコンピュータシステム２２００の厳密な構成及び種類に応じて、メモリ２２０１は揮発性（例えば、ＤＲＡＭ等）２２０１ａ、不揮発性２２０１ｂ（例えば、ＲＯＭ、フラッシュメモリ等）、又はこれら２つのある組み合わせであることができる。同様に、メモリ２２０１は、他の装置を含むことができ、固体状態装置、例えば、磁気ディスクに基づく媒体、光学媒体等が列挙される。
【００９７】
さらに、コンピュータシステム２２００は、磁気又は光学のディスク又はテープ等の他の大容量記憶システム（例えば、リムーバブル２２０５及び／又は非リムーバブル２２０７）を含むことができる。同様に、コンピュータシステム２２００は、入力装置２２０９及び／又は出力装置２２１１（例えば、ディスプレイ等）を含むことができる。コンピュータシステム２２００は、有線媒体又は無線媒体のいずれかを使用する他の装置、コンピュータ、ネットワーク、サーバ等へのネットワーク接続２２１３をさらに含むことができる。これらの装置のすべては当分野において周知であるため、詳細に考察する必要がない。
【００９８】
コンピュータシステム２２００が、コンピュータシステム２２００の機能がクラウド計算環境を使用して部分的又は全体的に実行される場合のように、多数の分散した計算ノードを有する分散コンピュータシステムにより補足される機能のうちのいくつか、大半、又はすべてを有し得ることにさらに留意されたい。
【００９９】
本システム及び方法は、実行時処理中に実施することができる。例示的な実施態様では、実行時処理は、ファイル変更ログのスキャン及びオンザフライでのファイル／ネーム空間変更の生成を含む。本システム及び方法は、ファイルログ変更サービスに加えて実施することができる。本システム及び方法は、純粋なネーム空間動作（例えば、ネーム変更、ハードリンク等）でのデータ移動がないか、又は最小である状態で実施することができる。
【０１００】
一実施形態では、呼び出し側への各デルタ記録リターンには、ＦＣＬファイル内のエントリを一意に識別するＦＣＬマーカが付随する。例示的な一実施態様では、呼び出し側は、マーカをＦＣＬモジュールへのロールバックインタフェースに提供することにより、全体プロセスを容易にロールバックすることができる。ＦＣＬモジュールは、ＦＣＬファイル内のマーカにロールバックし、その時点で「再開」することができる。
【０１０１】
本複製システム及び方法は、効率的且つ効果的な情報の複製に役立つ。情報複製は、動作セッション中に変更される記憶システムイメージの部分に対して柔軟且つインクリメント的に実行することができる。システム及び方法は、順序要件を維持しながら、ノードインジケータがオブジェクトインジケータに変形されるネーム空間変換又は変形を実行することができる。システム及び方法は、実行時処理として実施することができる。事前処理及び事後処理は必要なく、そのような活動へのリソース（例えば、メモリリソース、大きなディスクフットプリント、処理時間等）の関与を低減又は回避することができる。
【０１０２】
詳細な説明の部分は、方法に関して提示され考察されている。この方法の動作を説明するステップ及びステップの順序が本明細書の図に開示されるが、そのようなステップ及び順序は例示的である。実施形態は、様々な他のステップ又は本明細書の図のフローチャートに列挙されるステップの変形を、本明細書に示され説明される順序以外の順序で実行することにもよく適する。
【０１０３】
詳細な説明のうちのいくつかの部分は、手続き、ステップ、論理ブロック、処理、及びコンピュータメモリ内で実行可能なデータビットに対する演算の他の象徴的な表現に関して提示される。これらの説明及び表現は、データ処理分野の当業者が、他の当業者に作業の本質を最も効率的に伝えるために使用する手段である。手続き、コンピュータにより実行されるステップ、論理ブロック、プロセス等は、本明細書では、且つ一般的に、所望の結果をもたらす自己矛盾のないステップシーケンス又は命令シーケンスであると考えられる。ステップは、物理的数量の物理的な処理を含む。通常、必須ではないが、これらの数量は、コンピュータシステムでの記憶、転送、結合、比較、及び他の処理が可能な電気的、磁気的、光学的、又は量子的な信号の形態をとる。時には、主に一般的な慣習により、これらの信号をビット、値、要素、シンボル、文字、期間、数等として参照することが好都合なことが証明されている。
【０１０４】
しかし、これら及び同様の用語のすべてが、適切な物理的数量に関連付けられるべきであり、これらの数量に適用される単に好都合のラベルであることを念頭に置かれたい。以下の考察から明らかなように、別途明記される場合を除き、全体を通して、「処理する」、「計算する」、「算出する」、「特定する」、「表示する」、「アクセスする」、「書き込む」、「含む」、「記憶する」、「送信する」、「トラバースする」、「関連付ける」、「識別する」等の用語を利用する考察が、コンピュータシステムのレジスタ及びメモリ内の物理的（電子的）数量として表されるデータを処理し変形して、コンピュータシステムのメモリ若しくはレジスタ又は他のそのような情報記憶装置、伝送装置、若しくは表示装置内の物理的数量として同様に表される他のデータにするコンピュータシステム又は同様の電子計算装置の動作及びプロセスを指すことが理解される。
【０１０５】
計算装置は、少なくとも何等かの形態のコンピュータ可読媒体を含むことができる。コンピュータ可読媒体は、計算装置がアクセス可能な任意の利用可能な媒体であることができる。限定ではなく例として、コンピュータ可読媒体は、コンピュータ記憶媒体及び通信媒体を含み得る。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、又は他のデータ等の情報を記憶する任意の方法又は技術で実施される揮発性媒体、不揮発性媒体、リムーバブル媒体、及び非リムーバブル媒体を含む。コンピュータ記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、若しくは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）、若しくは他の光学記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置、若しくは他の磁気記憶装置、又は所望の情報の記憶に使用可能であり、計算装置がアクセス可能な任意の他の媒体を含むが、これらに限定されない。通信媒体は通常、搬送波又は他の輸送メカニズム等の変調データ信号でコンピュータ可読命令、データ構造、プログラムモジュール、又は他のデータを具現し、任意の情報輸送媒体を含む。「変調データ信号」という用語は、特徴セットのうちの１つ若しくは複数を有する信号又は情報を信号に符号化するように変更された信号を意味する。限定ではなく例として、通信媒体は、有線ネットワーク又は直接有線接続等の有線媒体と、音響、ＲＦ、赤外線、及び他の無線媒体等の無線媒体とを含む。上記の任意の組み合わせも、コンピュータ可読媒体の範囲内に含まれるべきである。
【０１０６】
いくつかの実施形態は、１つ又は複数のコンピュータ又は他の装置により実行される、プログラムモジュール等のコンピュータ実行可能命令の一般的な文脈の中で説明し得る。一般に、プログラムモジュールは、特定のタスクを実行し、又は特定の抽象データ型を実施するルーチン、プログラム、オブジェクト、構成要素、データ構造等を含む。通常、プログラムモジュールの機能は、様々な実施形態で所望のように結合又は分散させ得る。
【０１０７】
一実施形態では、ネーム空間変換プロセスは、ファイルシステム動作変更に関するノード情報を受信すること、ノード情報に対して変更ノード／パスネームオブジェクト変換プロセスを実行すること、ノード情報に対して非変更ノード／パスネームオブジェクト変換プロセスを実行すること、並びに変更ノード／パスネームオブジェクト変換プロセス及び非変更ノード／パスネームオブジェクト変換プロセスの結果に基づいて、オブジェクトインジケータをパスネームに挿入することを含む。ファイル複製方法の一実施形態では、変更ノード／パスネームオブジェクト変換プロセス及び非変更ノード／パスネームオブジェクト変換プロセスは、オブジェクトインジケータを返すと共に、親ノードインジケータを返すデータ構造を利用する。ファイル複製方法の一実施形態では、変更ノード／パスネームオブジェクト変換プロセスは、ネーム空間変更に関連するノードインジケータを親ノードインジケータ及びオブジェクト名にマッピングするネーム空間変更追跡データ構造を利用する。ファイル複製方法の例示的なオン実施態様では、ネーム空間変更追跡データ構造はハッシュテーブルを含む。ファイル複製方法は、プリフィックスツリーである最長パス追跡データ構造を含むことができる。ファイル複製方法は、第１の親オブジェクトノードインジケータを入力として変更ノードパスネームオブジェクト変換プロセスに返すこと及び第２の親オブジェクトノードインジケータを入力として非変更ノード／パスネームオブジェクト変換プロセスに返すことをさらに含むことができる。
【０１０８】
一実施形態では、製品は、計算装置により実行された場合、計算装置に記憶イメージ複製を実行させる命令を記憶したコンピュータ可読媒体を含み、命令は、セッションチェックポイントでソースファイルシステムの凍結スナップショットを管理する手段と、ファイル変更ログ内のエントリを検索する手段であって、エントリはセッションチェックポイント間の変更に対応する、検索する手段と、ファイル変更ログからのエントリに対応するノード表示をパスネーム表示に変換する手段と、不必要な動作をフィルタリングする手段と、セッションチェックポイント間のファイルデータの変更を検索する手段と、パスネーム表示及びファイルデータの変更を転送する手段と、を含む。一実施形態では、コンピュータ可読媒体は、変換する手段が、ノード表示が受信されたか否かを判断する手段と、変更ノード／パスネームオブジェクト変換プロセスを実行する手段と、非変更ノード／パスネームオブジェクト変換プロセスを実行する手段と、オブジェクト名をパスネームに挿入するオブジェクト表示挿入モジュールとを含むことを含むことができる。コンピュータ可読媒体は、対応するネーム空間変更に関わるノードに関連するオブジェクト名を取得する変更ノード／パスネームオブジェクト変換プロセスを実行する手段と、対応するネーム空間変更に関わらないノードに関連するオブジェクト名を取得する非変更ノード／パスネームオブジェクト変換プロセスを実行する手段とを含むことができる。コンピュータ可読媒体は、一意のｉノード番号を含むノード表示を含むことができる。一実施形態では、コンピュータ可読媒体は、オブジェクト表示を返すデータ構造を利用する変更ノード／パスネームオブジェクト変換プロセスを実行する手段及び非変更ノード／パスネームオブジェクト変換プロセスを実行する手段を含む。例示的な一実施態様では、コンピュータ可読媒体は、親ノードインジケータを再帰的に処理する変更ノード／パスネームオブジェクト変換プロセスを実行する手段と、非変更ノード／パスネームオブジェクト変換プロセス親ノードインジケータを実行する手段とを含むことができる。
【０１０９】
一実施形態では、情報記憶複製システムは、情報を記憶する手段と、ソース内部ノードインジケータからパスネームインジケータへの変換を管理することを含む、情報を記憶する手段内の情報の記憶を管理する手段と、情報の複製を記憶する手段とを備える。情報記憶複製システムは、オブジェクト表示及び親ノード表示を返すデータ構造を記憶利用する手段を含むことができる。例示的な一実施態様では、情報記憶複製システムは、ネーム空間変更に関連するノード表示を親ノード表示及びオブジェクト名にマッピングするハッシュテーブルと、前回セッションからの非変更ノードの最長パスをマッピングするプリフィックスツリーとを含む。
【０１１０】
特定の実施形態の上記説明は、例示及び説明のために提示された。網羅的、すなわち、本発明を開示される厳密な形態に限定することは意図されず、多くの変更及び変形が上記教示に鑑みて可能である。実施形態は、原理及び実際用途を最良に説明し、それにより、当業者が、意図される特定の用途に適するように、本発明及び様々な変更を有する様々な実施形態を最良に利用することができるように、選択され説明された。範囲は、本明細書に含まれるシステム及び方法並びにそれらの均等物により定義されることが意図される。
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ファイルシステム動作変更に関するノード情報を受信するステップと、
前記ノード情報に対して変更ノード／パスネームオブジェクト変換プロセスを実行するステップと、
前記ノード情報に対して非変更ノード／パスネームオブジェクト変換プロセスを実行するステップであって、前記非変更ノード／パスネームオブジェクト変換プロセスは、最長パス追跡データ構造を利用する、ステップと、
前記変更ノード／パスネームオブジェクト変換プロセス及び前記非変更ノード／パスネームオブジェクト変換プロセスの結果に基づいて、オブジェクトインジケータをパスネームに挿入するステップと、
を含む、ネーム空間変換方法。
【請求項２】
前記変更ノード／パスネームオブジェクト変換プロセス及び前記非変更ノード／パスネームオブジェクト変換プロセスは、前記オブジェクトインジケータを返すデータ構造を利用する、請求項１に記載のファイル複製方法。
【請求項３】
前記変更ノード／パスネームオブジェクト変換プロセスは、ネーム空間変更に関連するノードインジケータを親ノードインジケータ及びオブジェクト名にマッピングするネーム空間変更追跡データ構造を利用する、請求項１に記載のファイル複製方法。
【請求項４】
前記ネーム空間変更追跡データ構造はハッシュテーブルを含む、請求項３に記載のファイル複製方法。
【請求項５】
前記最長パス追跡データ構造はプリフィックスツリーである、請求項１に記載のファイル複製方法。
【請求項６】
第１の親オブジェクトノードインジケータを入力として前記変更ノードパスネームオブジェクト変換プロセスに返し、第２の親オブジェクトノードインジケータを入力として前記非変更ノード／パスネームオブジェクト変換プロセスに返すステップをさらに含む、請求項１に記載のファイル複製方法。
【請求項７】
計算装置により実行された場合、前記計算装置に記憶イメージ複製を実行させる命令を記憶したコンピュータ可読媒体を含む製品であって、前記命令は、
セッションチェックポイントでソースファイルシステムの凍結スナップショットを管理する手段と、
ファイル変更ログ内のエントリを検索する手段であって、前記エントリは前記セッションチェックポイント間の変更に対応する、手段と、
前記ファイル変更ログからの前記エントリに対応するノード表示をパスネームインジケータに変換する手段と、
不必要な動作をフィルタリングする手段と、
前記セッションチェックポイント間のファイルデータの変更を検索する手段と、
前記パスネーム表示及び前記ファイルデータの前記変更を転送する手段と、
を備える、製品。
【請求項８】
前記変換する手段は、
ノード表示が受信されたか否かを判断する手段と、
変更ノード／パスネームオブジェクト変換プロセスを実行する手段と、
非変更ノード／パスネームオブジェクト変換プロセスを実行する手段と、
オブジェクト名をパスネームに挿入するオブジェクト表示挿入モジュールと、
を備える、請求項７に記載のコンピュータ可読媒体。
【請求項９】
前記変更ノード／パスネームオブジェクト変換プロセスを実行する手段は、対応するネーム空間変更に関わるノードに関連するオブジェクト名を取得し、前記非変更ノード／パスネームオブジェクト変換プロセスを実行する手段は、対応するネーム空間変更に関わらないノードに関連するオブジェクト名を取得する、請求項８に記載のコンピュータ可読媒体。
【請求項１０】
前記ノード表示は一意のｉノード番号を含む、請求項８に記載のコンピュータ可読媒体。
【請求項１１】
前記変更ノード／パスネームオブジェクト変換プロセスを実行する手段及び前記非変更ノード／パスネームオブジェクト変換プロセスを実行する手段は、前記オブジェクト表示を返すデータ構造を利用する、請求項７に記載のコンピュータ可読媒体。
【請求項１２】
前記変更ノード／パスネームオブジェクト変換プロセスを実行する手段は、親ノードインジケータを再帰的に処理し、前記非変更ノード／パスネームオブジェクト変換プロセスを実行する手段親ノードインジケータ、請求項７に記載のコンピュータ可読媒体。
【請求項１３】
情報を記憶する手段と、
ソース内部ノードインジケータからパスネームインジケータへの変換を管理することを含む、前記情報を記憶する手段内の情報の記憶を管理する手段と、
前記情報の複製を記憶する手段と、
を備える、情報記憶複製システム。
【請求項１４】
前記記憶する手段は、オブジェクト表示及び親ノード表示を返すデータ構造を利用する、請求項１３に記載の情報記憶複製システム。
【請求項１５】
前記データ構造は、
ネーム空間変更に関連するノード表示を親ノード表示及びオブジェクト名にマッピングするハッシュテーブルと、
前回セッションからの非変更ノードの最長パスをマッピングするプリフィックスツリーと、
を含む、請求項１３に記載の情報記憶複製システム。
【国際調査報告】
2013506920.tif 000029
2013506920.tif 000030
2013506920.tif 000031
2013506920.tif 000032
2013506920.tif 000033
2013506920.tif 000034