(58)【調査した分野】(Int.Cl.,DB名)
前記変更ノード/パスネームオブジェクト変換プロセス及び前記非変更ノード/パスネームオブジェクト変換プロセスは、前記オブジェクトインジケータを返すデータ構造を利用する、請求項1に記載のネーム空間変換方法。
前記変更ノード/パスネームオブジェクト変換プロセスは、ネーム空間変更に関連するノードインジケータを親ノードインジケータ及びオブジェクト名にマッピングするネーム空間変更追跡データ構造を利用する、請求項1に記載のネーム空間変換方法。
第1の親オブジェクトノードインジケータを入力として前記変更ノード/パスネームオブジェクト変換プロセスに返し、第2の親オブジェクトノードインジケータを入力として前記非変更ノード/パスネームオブジェクト変換プロセスに返すステップをさらに含む、請求項1に記載のネーム空間変換方法。
【発明を実施するための形態】
【0013】
これより、例が添付図面に示される好ましい実施形態を詳細に参照する。本発明を好ましい実施形態と併せて説明するが、本発明をこれらの実施形態に限定することが意図されないことが理解されよう。逆に、本発明は、説明の趣旨及び範囲内に含むことができる代替、変更、及び均等物を包含することが意図される。さらに、以下の詳細な説明では、完全な理解を提供するために、多くの特定の詳細が記される。しかし、本発明をこれらの特定の詳細なしで実施し得ることが当業者には明らかであろう。他の場合では、周知の方法、手続き、構成要素、及び回路については、本発明の態様を不必要に曖昧にしないように詳細に説明しなかった。
【0014】
本複製システム及び方法は、様々なシステム構成内の情報の効率的で効果的な保護に役立つ。複製システム及び方法は、外部記憶リソースに向けられた複製動作に対して、内部ノードインジケータからパスネーム内のオブジェクトインジケータへの効率的な変換を使用する、内部ネーム空間管理への内部ノードインジケータの利用に役立つ。一実施形態では、複製システムは、ソース記憶構成要素イメージ内の情報の記憶と、ターゲット記憶構成要素イメージ内の情報の複製とを管理する。管理は、ソース内部ノードインジケータからパスネームインジケータへの変換を管理することを含む。一実施形態では、ソース記憶マネージャが、オブジェクト表示及び親ノード表示を返すデータ構造を利用する。このデータ構造は、ノード/オブジェクト名変換又は「逆」ネーム参照生成に利用することができる。例示的な一実施態様では、データ構造は、ハッシュテーブルと、プリフィックスツリーとを含む。ハッシュテーブルは、ネーム空間変更に関連するノード表示を親ノード表示及びオブジェクト名にマッピングする。プリフィックスツリーは、前回セッションからの非変更ノードの最長パスをマッピングする。本システム及び方法を様々なアーキテクチャ及び構成で実施可能なことが理解される。例えば、本システム及び方法は、分散計算環境、クラウド計算環境、クライアントサーバ環境等の一環として実施することができる。
【0015】
本複製システム及び方法がインクリメンタルファイルレベル複製に役立つことが理解される。複製システム及び方法は、大規模ファイルシステムの部分ファイルシステム複製に対応する。部分ファイルシステム複製は、各複製動作中の二次又はターゲット記憶リソースの部分の更新を対象とすることができる。例えば、セッション中に変わる一次又はソース記憶リソースイメージの部分が、複製動作中に更新される。複製は、基礎をなすファイルシステムにより提供されるファイル変更ログサービス(例えば、VxFS内のFCL)上に構築することができる。ログサービスは、内部ファイル識別子又はノードインジケータを追跡することができ、その間、ファイルシステム複製は、絶対的なパスネームを使用して、ソースと複製ターゲットとの間でファイルを一意に識別することができる。所与のノードの上位ディレクトリは、ネーム空間動作(例えば、移動、ネーム変更、新規作成等)中に変わり得、その結果、ネーム空間変換が実行されるまで、複製ファイルシステム内の対応するパスが異なることになる。
【0016】
一実施形態では、複製システムは記憶リソースを含む。本システム及び方法を様々な記憶構成で実施可能なことが理解される。例えば、記憶リソースは、ソース記憶リソース及びターゲット記憶リソース、一次記憶リソース及び二次記憶リソース等として構成することができる。
図1は、一実施形態による例示的なシステム100のブロック図である。システム100は、ソース記憶システム120に通信可能に結合された動作構成要素110を含み、ソース記憶システム120はターゲット記憶システム130に通信可能に結合される。動作構成要素110は、処理構成要素111と、任意選択的なメモリ構成要素112とを含む。ソース記憶システム120は、ファイルシステム管理構成要素121と、ソース記憶構成要素123とを含む。ファイルシステム管理構成要素121は、ネーム空間変換構成要素122を含む。
【0017】
例示的なシステム100が様々な構成を有することが可能なことが理解される。例えば、動作構成要素110及びソース記憶システム120は、ローカルシステム又はローカル設備の部分であることができ、ターゲット記憶システム130は、リモートシステム又はリモート設備の部分であることができる。処理構成要素111が情報(例えば、命令、データ等)をソース記憶構成要素123から受信可能なことが理解される。例示的な一実施態様では、動作構成要素110はローカルシステム又はローカル設備の部分であり、その一方で、ソース記憶システム120及びターゲット記憶システム130は、リモートシステム又はリモート設備の部分である。
【0018】
様々な動作構成要素及びソース記憶構成要素の構成があり得ることが理解される。情報は、複数の動作構成要素(図示せず)とソース記憶システム120との間で通信することができる。情報は、複数の記憶システムと動作構成要素との間で通信することもできる。様々なソース記憶システム及びターゲット記憶システムの構成があり得ることも理解される。ソース記憶システムは複数のターゲット記憶システムと通信することができ、複数のターゲット記憶システムがソース記憶システムと通信することができる。
【0019】
システム100の構成要素は協働して、ソース記憶及び効率的且つ効果的に複製されたターゲット記憶との様々な動作(例えば、アプリケーション動作等)に役立つ。動作構成要素110は様々な動作を実行することができる。例えば、メモリ112は、プロセッサ111により実行される様々なアプリケーション動作命令を記憶する。ソース記憶システム120は、動作構成要素110により実行される動作に関連する情報を記憶する(例えば、ソースステージ構成要素123に)。ファイルシステム管理構成要素121は、動作構成要素110から受信した情報の記憶及びターゲット記憶システム130への情報の転送を管理する。ファイルシステム管理構成要素121はネーム空間変換構成要素122を含み、ネーム空間変換構成要素122は、ターゲット記憶システム130への情報の転送に関連するネーム空間変換を実行する。ターゲット記憶システム130は、ソース記憶構成要素123に記憶された情報イメージの複製を記憶する。
【0020】
記憶リソース内の情報は、情報記憶の配置を追跡する様々な指示を利用する記憶階層に編成することができる。例えば、パスネーム指示ネーム空間、ノード指示ネーム空間、組み合わせ等。パスネーム指示ネーム空間インジケータが、スラッシュを使用して一緒に連結されたパスネーム要素を含むことができることが理解される。パスネーム要素は、オブジェクトに対応することができ、ディレクトリ指示、ファイル名指示等を含むことができる。例えば、パスネーム指示又はインジケータは、表現ディレクトリA/directoryB/directoryC/filename1、dA/dB/dC/f1等によりパスネームを識別することができる。先行する各パスネーム要素は、後続するオブジェクトを含むオブジェクトを示す。
【0021】
図2は、一実施形態によるパスネーム要素関係200の例示的なブロック図である。ディレクトリalpha 201は、ディレクトリbravo 202と、ディレクトリgolf 207とを含む。ディレクトリbravo 202は、ディレクトリcharlie 203と、ディレクトリfoxtrot 206とを含む。ディレクトリcharlieは、ディレクトリdelta 204と、ファイルecho 205とを含む。ディレクトリgolf 207は、ディレクトリhotel 208と、ディレクトリultra 209とを含む。ディレクトリhotelは、ディレクトリjuliet 210と、ファイルkilo 211とを含む。ディレクトリjulietは、ファイルlima 213と、romeo 214と、sierra 215と、tango 216とを含む。ファイルが情報を含むことが可能なことが理解される。例えば、ファイルは様々な種類の情報(例えば、データ、命令等)を含むことができる。例示的な一実施態様では、ファイルは、様々なアプリケーション(例えば、言語プログラミングアプリケーション、会計アプリケーション、インターネットアプリケーション、ビデオアプリケーション等)に関連するデータ(例えば、言語プログラミングファイル、ビデオ情報等)及び/又はプログラミング命令(例えば、ソフトウェアプログラム命令、実行ファイル、バイナリ等)を含むことができる。
【0022】
図3は、一実施形態によるパスネーム要素階層関係300の別の例示的なブロック図表現である。一実施形態では、パスネーム要素階層関係300は、パスネーム要素関係200に対応する。パスネーム要素階層関係300は、ディレクトリalpha 201と、ディレクトリbravo 202と、ディレクトリcharlie 203と、ディレクトリfoxtrot 206と、ディレクトリdelta 204と、ファイルecho 205と、ディレクトリgolf 207と、ディレクトリhotel 208と、ディレクトリultra 209と、ディレクトリjuliet 210と、ファイルkilo 211と、lima 213と、romeo 214と、sierra 215と、tango 216とを含む。下位レベルに示され、上位レベルのオブジェクトに結合されたオブジェクトは、上位レベルオブジェクト内に含まれる。例えば、ファイルdelta 204及びecho 205は、ディレクトリbravo 202内に含まれるディレクトリcharlie 203内に含まれる。下位レベルファイルlime 213は、charlie 203に結合されていないため、上位ディレクトリcharlie 203内に含まれない。
【0023】
様々なオブジェクトインジケータをパスネーム要素の指示に利用可能なことが理解される。
図4は、一実施形態による、異なるオブジェクトインジケータを有するパスネーム要素階層関係400の例示的なブロック図表現である。パスネーム要素階層関係400は、ディレクトリa 401と、ディレクトリb 402と、ディレクトリc 403と、ディレクトリf 406と、ディレクトリd 404と、ファイルe 405と、ディレクトリg 407と、ディレクトリh 408と、ディレクトリu 409と、ディレクトリj 410と、ファイルk 411と、ファイルl 413と、ファイルr 414と、ファイルs 415と、ファイルt 416とを含む。下位レベルに示され、上位レベルのオブジェクトに結合されたオブジェクトは、上位レベルオブジェクト内に含まれる。
【0024】
図1を再び参照すると、動作構成要素110が動作を実行すると、ソース記憶システム120内のファイルデータ及びネーム空間情報の両方に変更が生じ得ることが理解される。ソース記憶システムイメージへの変更は、動作が進むにつれて徐々に生じる。しかし、関連するターゲット記憶システムイメージへのソース記憶システムイメージの複製更新は、指定されたセッション時間の持続時間に行われる。一実施形態では、ソース記憶システムイメージ及び関連するターゲット記憶システムイメージは、セッション開始時には一致し、ターゲット記憶システムイメージは同じままであるのに対して、ソース記憶システムイメージは、セッション中に変更される。セッション終了時又は「チェックポイント」時(例えば、所定の時間期間、イベントの発生、特定数の変更が生じた後等)、ソース記憶システムイメージは凍結又はロックされ、イメージ変更は、関連するターゲット記憶システムイメージに複製され、関連するターゲット記憶システムイメージが更新される。
【0025】
図5は、一実施形態による、動作が時間t0とt1との間で行われる際のソース記憶システム内の例示的な変更のブロック図表現である。時間t0では、凍結されたイメージ511がある。第1の動作セッションが開始され、動作501が動作システムを初期化する。ソースシステムイメージ511はセッション開始ファイル階層を含む。ターゲットシステムイメージ521は、時間t0では、ソースシステムイメージ511のセッション開始ファイル階層に一致する。一実施形態では、ソースシステムイメージ511及びターゲットシステムイメージ521は、パスネーム要素階層関係400に対応する(例えば、ソース記憶システムイメージ511及びターゲット記憶システムイメージ521は、パスネームa/b/c/e、a/g/h/j/l等を含む)。動作502は、時間t1において、新しいディレクトリオブジェクトxをディレクトリオブジェクトjとファイルl及びrとの間に作成し、ソース記憶システムイメージ512は、パスネームa/b/c/e及びa/g/h/j/x/lを含み、変更をログする。時間t2において、動作503は、ファイルをa/b/c/eからa/g/h/j/x/eに移し、記憶システムイメージ513は、変更をログしながら、パスネームa/b/c/eを削除し、パスネームa/g/h/j/x/eを含む。時間t4において、動作504はオブジェクトaをa’に、lをl’に、hをh’にネーム変更し、ソース記憶システムイメージ514はパスネームa’/g/h’/j/x/e及びa’/g/h’/j/x/l’を含む。時間t5において、セッションは終了し、ソース記憶システムイメージ514は凍結又はロックされ、その間、イメージ変更が関連するターゲット記憶システムイメージ523に複製される。例えば、ターゲット記憶システムイメージ522は、a’/g/h’/j/x/l’及びa’/g/h’/j/x/eを複製するように更新される。
【0026】
セッション中に多くの動作があり得、セッション長が様々であり得ることが理解される。セッション長を長くしてもよく、又は短くしてもよいことも理解される。一実施形態では、
図5のセッション長は複数のセッションに分割される。例えば、時間t3において、第1のセッションを終了することができ、ソース記憶システムイメージ513を凍結又はロックし、その間、イメージ変更が、関連するターゲット記憶システムイメージに複製される。例えば、関連するターゲット記憶システムイメージは、時間t3において、a/g/h/j/x/l及びa/g/h/j/x/eを複製するよに更新することができる。
【0027】
一実施形態では、動作は進み続け、中間情報が追跡され、その間、ソース記憶システムイメージは凍結される。ソース記憶システムイメージがロック解除されると、ソース記憶システムイメージは、追跡された中間情報に対応するように更新される。
【0028】
過度の詳細で説明を不明瞭にしないように、パスネームa/b/c/e及びa/g/h/j/lを含むセッションファイル階層パスネームの部分が
図5に示される。他のパスネーム(例えば、a/b/c/d、a/g/h/j/r、a/g/h/j/t、a/g/u等)をソースシステムイメージ及びターゲットシステムイメージに含めることができることが理解される。追加の動作(図示せず)(例えば、jの下且つs及びlの上に新しいディレクトリオブジェクトyを作成し、オブジェクトrをrにネーム変更する等)を含めることもでき、対応するパスネーム変更をソースシステムイメージ(例えば、a/g/h/j/y/t、a /g/h/j/x/r’等)及びターゲットシステムイメージに含むことができることも理解される。
図6は、一実施形態による変更後のパスネーム要素階層関係600の例示的なブロック図表現である。パスネーム要素階層関係600は、ディレクトリa’ 601と、ディレクトリb 402と、ディレクトリc 403と、ディレクトリf 406と、ディレクトリd 404と、ディレクトリg 407と、ディレクトリh’ 608と、ディレクトリu 409と、ファイルk 411と、ディレクトリj 410と、ディレクトリx 621と、ファイルe 605と、ファイルl’ 613と、ファイルr’ 614と、ディレクトリy 422と、ファイルs 415と、ファイルt 416とを含む。下位レベルに示され、上位レベルのオブジェクトに結合されたオブジェクトは、上位レベルオブジェクト内に含まれる。
【0029】
ファイルシステムアーキテクチャは、ノード表示を利用して、ファイルシステム名ネーム空間に関連する情報を追跡することができる。例えば、ファイルシステムアーキテクチャは、ファイルシステム名内の各オブジェクト(例えば、ディレクトリ、ファイル等)に対応する一意のノードインジケータを利用することができる。一実施形態では、内部ノードインジケータ(iノード)は各オブジェクトに関連付けられる。例示的な一実施態様では、ノードインジケータはiノード番号であり、各オブジェクトが作成される場合、一意のシーケンシャルiノード番号がノードに関連付けられるか、又は割り当てられる。
図7は、一実施形態によるファイルネーム空間オブジェクトノード階層700の例示的なブロック図表現である。ファイルネーム空間オブジェクトノード階層700は、iノード1、iノード2、iノード3、iノード4、iノード5、iノード6、iノード7、iノード8、iノード9、iノード10、iノード11、iノード12、iノード13、iノード14、iノード15、及びiノード16を含む。一実施形態では、ファイルネーム空間オブジェクトiノード階層700は、パスネーム要素階層関係400の例示的なブロック図表現に対応する。
【0030】
セッション中、動作が進むにつれて、ノードに関連する変更が生じ得る。例えば、ノードの関係が変化し得る(例えば、ノードを移動し、オブジェクト名に対応するノードが変更され得、ノードが作成され得、ノードを削除し得る等)。
図8は、一実施形態による動作変更後のファイルネーム空間オブジェクトiノード階層800の例示的なブロック図表現である。ファイルネーム空間オブジェクトiノード階層800は、iノード1、iノード2、iノード3、iノード4、iノード5、iノード6、iノード7、iノード8、iノード9、iノード10、iノード11、iノード12、iノード13、iノード14、iノード15、iノード16、iノード21、及びiノード22を含む。一実施形態では、ファイルネーム空間オブジェクトiノード階層800は、パスネーム要素階層関係600の例示的なブロック図表現に対応する。
【0031】
一実施形態では、ネーム空間変更に関連するノードを含め、ソース記憶システムイメージ内の変更に関連するノードが追跡される。例示的な一実施態様では、各セッションのファイル変更ログ(FCL)が保持され、FCLはネーム空間変更に関連するノードインジケータを含む。FCLはデータ構造内に含むことができる。例えば、データ構造は、以下の表現に対応するテーブルであることができる。
【0033】
各セッションブレークにおいて、ネーム空間変更を含め、ソース記憶システムイメージ内で生じた変更は、ターゲット記憶システムイメージ内で複製される。しかし、ソース記憶システムイメージ内でネーム空間変更を内部で追跡するために利用されるノード表示は、ターゲット記憶システムイメージに対してネーム空間変更を示すために利用されない。一実施形態では、ソース記憶システムイメージ内の内部ノード表示は、ターゲット記憶システムイメージ内の内部ノード表示と一致しない。ネーム空間変換が、パスネーム表示を再編成するために利用される。
【0034】
一実施形態では、ネーム空間変更追跡データ構造を利用して、ネーム空間変更(例えば、オブジェクトの移動、オブジェクトのネーム変更、オブジェクトの作成等)を追跡する。例示的な一実施態様では、ネーム空間変更追跡データ構造は、オブジェクトインジケータ及び親ノードインジケータにマッピングされるインデックスキーとしてノードインジケータを利用する。ネーム空間変更追跡データ構造が、ノードインジケータ及び生成カウントをインデックスキーとして利用できることが理解される。様々なネーム空間変更追跡データ構造を利用可能なことも理解される。例えば、ハッシュテーブルに対応するデータを利用することができる。
図9は、一実施形態によるノードインジケータをインデックスキーとして利用し、オブジェクト名及び親ノードインジケータを返すハッシュテーブル900の例示的なブロック図表現である。ハッシュテーブル900は、ノード
1のセル901、親ノード
1(pノード
1)のセル911、オブジェクト
1名のセル921、ノード
2のセル902、pノード
2のセル912、オブジェクト
2名のセル922、ノード
3のセル903、pノード
3のセル913、オブジェクト
3名のセル923を含む。例示的な一実施態様では、ノード
2は、ハッシュテーブル900への参照動作のキーインデックスとして利用され、ハッシュテーブル900はpノード
2及びオブジェクト
2名を返す。
【0035】
図10は、iノード番号をインデックスキーとして利用し、オブジェクト名及び親ノード番号を返すハッシュテーブル1000の例示的なブロック図表現である。ハッシュテーブル1000は、
図5及び
図6に示される動作セッション内で生じる変更を含む。ハッシュテーブル1000は、iノード番号1が入力されたセル1001、iノード番号ヌルが入力されたセル1011、オブジェクト名a’が入力されたセル1021、iノード番号5が入力されたセル1002、iノード番号21が入力されたセル1012、及びオブジェクト名eが入力されたセル1022;iノード番号8が入力されたセル1003、iノード番号7が入力されたセル1013、オブジェクト名h’が入力されたセル1023;iノード番号13が入力されたセル1004、iノード番号21が入力されたセル1014、オブジェクト名l’が入力されたセル1024;並びにiノード番号21が入力されたセル1005、iノード番号10が入力されたセル1015、オブジェクト名xが入力されたセル1025を含む。iノード番号は、ハッシュテーブル1000へのルックカップ動作のキーインデックスとして利用され、ハッシュテーブル1000は親のiノード番号及びオブジェクト名を返す。例示的な一実施態様では、iノード番号5がハッシュテーブル1000への参照動作のキーインデックスとして利用され、ハッシュテーブル1000はiノード番号21及びオブジェクト名eを返す。
【0036】
一実施形態では、最長パス追跡データ構造を利用して、前回セッションの終了時の最長パスを追跡する。例示的な一実施態様では、移動又はネーム変更されたオブジェクトの元のパスネーム(例えば、前回チェックポイントでのパスネーム)が追跡される。様々なネーム空間変更追跡データ構造を利用可能なことが理解される。例えば、線形検索テーブル、プリフィックスツリー等。
図11は、一実施形態による前回セッション終了時の最長パスを追跡するプリフィックスツリー1100の例示的なブロック図表現である。一実施形態では、プリフィックスツリー1100は、iノード1、iノード2、iノード3、iノード4、iノード5、iノード6、iノード7、iノード8、iノード9、iノード10、iノード11、iノード12、iノード13、iノード14、iノード15、及びiノード16を含む。例示的な一実施態様では、プリフィックスツリー1100はファイルネーム空間オブジェクトiノード階層700に対応する。
【0037】
プリフィックスツリー1100を文字列で表現可能なことが理解される。例えば、以下のテーブルは、プリフィックスツリー内のパスチェーンのうちのいくつかを表すために利用可能な文字列を含む。
【0039】
図12は、一実施形態による例示的な複製方法1200のフローチャートである。複製方法1200は、外部記憶リソースに向けられた複製動作のためにノードインジケータをパスネーム内のオブジェクトインジケータに効率的に変換するネーム空間管理へのノードインジケータの利用に役立つ。
【0040】
ブロック1210において、記憶イメージが凍結される。一実施形態では、凍結イメージは、ソース記憶ファイルシステムのスナップショットである。例示的な一実施態様では、スナップショットはセッションチェックポイントで作成される。
【0041】
ファイルシステム内のネーム空間変更に関連するノードインジケータが、ブロック1220において特定される。一実施形態では、ファイル変更ログが調べられ、オブジェクト変更に関連するノードが検索される。例示的な一実施態様では、各セッションのファイル変更ログ(FCL)が保持され、FCLは、ネーム空間変更に関連するノードの表示を含む。
【0042】
ブロック1230において、ネーム空間変換プロセスが実行される。一実施形態では、ノードインジケータはパスネームオブジェクトインジケータに変換される。例示的な一実施態様では、データ構造を利用して、オブジェクトインジケータ及び親ノードインジケータを検索する。例えば、ネーム空間変更追跡データ構造を利用して、ネーム空間変更(例えば、オブジェクトの移動、オブジェクトのネーム変更、オブジェクトの作成等)を追跡し、変更されたオブジェクトインジケータを特定する。最長パス追跡データ構造を利用して、前回セッション終了時の最長パスを追跡し、変更されていないオブジェクトインジケータを特定する。一実施形態では、内部ノードインジケータはパスネームオブジェクトに変形される。
【0043】
ブロック1240において、不必要な情報がフィルタリングされる。
【0044】
ブロック1250において、ファイルデータが検索される。例示的な一実施態様では、ファイルデータは、様々なアプリケーション(例えば、言語プログラミングアプリケーション、会計アプリケーション、インターネットアプリケーション、ビデオアプリケーション等)に関連する様々な種類のデータ(例えば、テキスト、ビデオ情報等)及び/又はプログラミング命令(例えば、ソフトウェアプログラム命令、実行ファイル、バイナリ等)を含むことができる。
【0045】
セッションチェックポイント間の動作から生じる情報又は記憶イメージの変更は、ブロック1260において転送される。変更は、ネーム空間並びにファイルデータの変更に関連するオブジェクトインジケータを含むことができる。一実施形態では、情報のデルタが複製記憶システム(例えば、ターゲット記憶システム、二次記憶システム等)に転送される。一実施形態では、ネーム空間変更に関連するノードインジケータから変換されたオブジェクトインジケータを有するパスネームが、複製記憶システムに転送される。
【0046】
図13は、一実施形態による例示的なネーム空間変換プロセス又は方法1300のフローチャートである。一実施形態では、ネーム空間変換プロセス1300は、複製方法1200のブロック1230において利用されるネーム空間変換プロセスと同様である。
【0047】
ブロック1310において、ファイルシステム動作変更に関するノード情報が受信される。一実施形態では、複製方法1200のブロック1220において特定されるノードインジケータが受信される。例えば、ネーム空間変更に関連するものとしてファイル変更ログ(FCL)内で識別されるノード。
【0048】
ブロック1320において、変更ノード/パスネームオブジェクト変換プロセスが実行される。一実施形態では、変更ノード/パスネームオブジェクト変換プロセスは、オブジェクトインジケータ及び親ノード番号を返すデータ構造を利用する。例示的な一実施態様では、データ構造は、ネーム空間変更に関連するノードインジケータを親ノードインジケータ及びオブジェクト名にマッピングするネーム空間変更追跡データ構造である。ネーム空間変更追跡データ構造はハッシュテーブルを含むことができる。
【0049】
非変更ノード/パスネームオブジェクト変換プロセスが、ブロック1340において実行される。一実施形態では、非変更ノード/パスネームオブジェクト変換プロセスは、オブジェクトインジケータ及び親ノード番号を返すデータ構造を利用する。例示的な一実施態様では、非変更ノード/パスネームオブジェクト変換プロセスは、最長パス追跡データ構造を利用する。最長パス追跡データ構造はプリフィックスツリーであることができる。
【0050】
変更ノードパスネームオブジェクト変換プロセス(例えば、1320)への入力として、親オブジェクトノードインジケータを返すことができる。非変更ノード/パスネームオブジェクト変換プロセスへの入力として、変更ノードパスネームオブジェクト変換プロセスを介して親オブジェクトノードインジケータを返すこともできる。例えば、変更ノードパスネームオブジェクト変換プロセス及び非変更ノード/パスネームオブジェクト変換プロセスを通る再帰ループで、親オブジェクトノードインジケータを返すことができる。
【0051】
ブロック1350において、オブジェクトインジケータはパスネームに挿入される。一実施形態では、オブジェクトインジケータは、変更ノード/パスネームオブジェクト変換プロセス及び非変更ノード/パスネームオブジェクト変換プロセスの結果に基づいて、パスネームに挿入される。一実施形態では、オブジェクトインジケータは、パスネームに連結される。例えば、オブジェクトインジケータは、パスネームのスラッシュ間に挿入される。
【0052】
ブロック1370において、親ノードインジケータがヌルであるか否かが判断される。ヌルではない場合、ブロック1330に戻る。ヌルの場合、ブロック1390に進む。
【0053】
ブロック1390において、パスネームが転送される。一実施形態では、変換されたパスネームはターゲット記憶リソースに転送される。
【0054】
図14は、一実施形態による例示的な変更ノード/パスネームオブジェクト変換プロセス又は方法1400のフローチャートである。変更ノード/パスネームオブジェクト変換プロセス1400は、ブロック1330において利用される変更ノード/パスネームオブジェクト変換プロセスと同様である。
【0055】
ブロック1410において、ノードインジケータが受信される。一実施形態では、ノードインジケータはブロック1220から受信される。例示的な一実施態様では、ノードインジケータはファイル変更ログから受信される。ノードインジケータは、以下のブロック1470から受信される親ノードインジケータであることができる。ノードインジケータは、非変更ノード/パスネームオブジェクト要素変換プロセスから受信される親ノードインジケータであることもできる。例えば、非変更ノード/パスネーム/オブジェクト要素変換プロセスは、ブロック1340において利用されるプロセスと同様であることができる。
【0056】
ブロック1420において、ノードがネーム空間変更に関連するか否かが判断される。一実施形態では、iノード番号は、ネーム空間変更に関連するiノード番号のハッシュテーブルへのキーとして利用される。テーブルの検索により、iノード番号がテーブル内に存在しないことが示される場合、プロセスはブロック1450に進む。テーブルの検索により、iノード番号が存在することが示される場合、プロセスはブロック1430に進む。
【0057】
ブロック1430において、ノードに関連するオブジェクト名が検索される。一実施形態では、オブジェクト名は、ネーム空間変更に関連するノードインジケータをオブジェクト名にマッピングするハッシュテーブルから検索される。例示的な一実施態様では、
図9に示されるハッシュテーブル番号900と同様のハッシュテーブルが、オブジェクト名の検索に利用される。
【0058】
ブロック1440において、検索されたオブジェクト名がパスネームに挿入される。一実施形態では、「/」がパスネームの冒頭に追加され、オブジェクト名がパスネームの冒頭に連結される。
【0059】
親ノードに関連するノードインジケータが、ブロック1470において検索され、ブロック1410に転送される。
【0060】
ブロック1450において、ノードインジケータは、転送されてさらに処理される。一実施形態では、ノードインジケータは、ブロック1340において利用されるプロセスと同様の非変更ノード/パスネームオブジェクト要素変換プロセスに転送される。
【0061】
図15は、一実施形態による例示的な非変更ノード/パスネームオブジェクト変換プロセス又は方法1500のフローチャートである。一実施形態では、パスネームオブジェクト変換プロセス1500は、ブロック1340において利用される非変更ノード/パスネームオブジェクト変換プロセスと同様である。
【0062】
ブロック1501において、ノードインジケータが受信される。一実施形態では、ノードインジケータはブロック1220から受信される。例示的な一実施態様では、ノードインジケータは、ファイル変更ログから受信される。ノードインジケータは、
図4のブロック1470から受信される親ノードインジケータであることができる。ノードインジケータは、非変更ノード/パスネームオブジェクト要素変換プロセスから受信される親ノードインジケータであることもできる。例えば、非変更ノード/パスネーム/オブジェクト要素変換プロセスは、以下のブロック1530において利用されるプロセスと同様であることができる。
【0063】
ブロック1510において、非変更オブジェクトへの前回セッション最長パスネームチェーンが取得される。一実施形態では、前回セッション最長パスネームチェーンはプリフィックスツリーである。例えば、プリフィックスツリーは、
図11に示されるプリフィックスツリーと同様であることができる。
【0064】
ブロック1520において、親ノードインジケータが取得される。一実施形態では、親ノードインジケータは、プリフィックスツリー内の最長チェーン内の最後のノードインジケータから2番目のノードインジケータである。
【0065】
ブロック1530において、親に関連するノードインジケータは、転送されてさらに処理される。一実施形態では、親ノードインジケータは、変更ノード/パスネームオブジェクト変換プロセスに転送される。
【0066】
ブロック1540において、非変更オブジェクト名が最長パスネームチェーンから検索される。一実施形態では、非変更ノードインジケータは、プリフィックスツリー内の最長チェーン内の最後のノードインジケータである。
【0067】
ブロック1550において、オブジェクト名がパスネームに挿入される。一実施形態では、パスネームスラッシュ(/)がパスネームに挿入され、オブジェクト名がパスネームの冒頭に連結される。
【0068】
図16は、一実施形態による例示的なネーム空間変換プロセス又は方法1600のフローチャートである。
【0069】
ブロック1610において、iノード番号が受信されたか否かが判断される。一実施形態では、iノード番号1601は、ファイル変更ログから受信することができ、又は後続ブロック(例えば、ブロック1634、ブロック1641等)から返される親iノード番号であることとができる。
【0070】
ブロック1620において、iノード番号が動作変更ハッシュテーブル内にあるか否かが判断される。一実施形態では、iノード番号は、動作変更ハッシュテーブルへのキーインデックスとして使用される。
【0071】
ブロック1630において、プリフィックスチェーンが調べられ、非変更iノード番号に関連するオブジェクトへの前回セッション最長パスネームが特定される。一実施形態では、プリフィックスチェーンは非変更オブジェクトの表示を含む。
【0072】
ブロック1631において、オブジェクト名が、ブロック1630において特定された最長チェーンの末尾から検索される。一実施形態では、オブジェクト名は非変更オブジェクトに関連する。ファイルシステムは、非変更iノード番号をパスネームオブジェクトに直接マッピングすることができる。
【0073】
ブロック1633において、親iノード番号が最長チェーンから検索される。一実施形態では、親iノード番号はブロック1610に返される。
【0074】
ブロック1640において、オブジェクト名がハッシュテーブルから検索される。一実施形態では、オブジェクト名は、ハッシュテーブル参照から返される。プロセスはブロック1650に進む。
【0075】
ブロック1640において、親iノード番号が検索され、ブロック1610に転送される。
【0076】
ブロック1650において、検索されたオブジェクト名はパスネームに挿入される。
【0077】
パスネームは、ブロック1690において転送される。一実施形態では、パスネームはターゲット記憶システムに転送される。
【0078】
図5を再び参照すると、ネーム空間内の動作変更及びターゲット記憶システムへの対応する複製更新が示される。一実施形態では、ソース記憶システムイメージの初期オブジェクトパスネーム表現(例えば、uのオブジェクト名及びiを除くa〜tのオブジェクト名)が
図4に示される。しかし、ソース記憶ファイルシステムは、
図7に示される一意のiノード番号(例えば、1〜16)を利用して、ネーム空間を内部で管理し、したがって、変換ネーム空間変換プロセス(例えば、1300)を利用して、iノード番号からオブジェクト名に変換する。一実施形態では、FCL内で指定されるノードは、21、5、13、8等を含むことができる。時間t5において、複製方法1200のブロック1210が、
図5に示されるソース記憶システムイメージ514を凍結する。ブロック1220において、ネーム空間変更に関連するノードインジケータ21、5、13、8等は、FCLから検索される。第1のiノード番号21をとり、ネーム空間変換プロセスは、iノード番号21に関連する新たに作成されたオブジェクトXに関連するパスネームへの変更を確立する。過度の詳細で本説明を不明瞭にすることを回避するために、本考察は、iノード番号13がFCLから検索される例まで先に飛ぶ。
【0079】
FCLからのiノード番号13は、ブロックl310により受信され、変更ノード/パスネームオブジェクト変換プロセスが、ブロック1320において実行される。一実施形態では、ブロック1420によるiノード番号13のハッシュテーブル参照により、ノードが、ハッシュテーブル(例えば、1004)内に存在することから動作変更に関連することが示され、セル1024からのオブジェクト名l’が検索され(例えば、ブロック1430により)、パスネームに挿入される(例えば、ブロック1440により)。ここで、部分パスネームはl’である。ブロック1470において、親iノード番号21がセル1014から検索され、ブロック1410、そして1420に転送されて、ハッシュテーブルが再帰的に参照される。再帰的な参照により、iノード番号21がセル1002内にあることが示され、セル1022内のオブジェクト名xが、パスネームに挿入されて、部分パスネームx/l’が与えられる。親iノード番号10は1420にフィードバックされ、ハッシュテーブル参照により、iノード番号10がネーム空間変更に関連しないことが示される。iノード番号10はブロック1340に転送され(例えば、ブロック1450により)、ブロック1340は、非変更ノード/パスネームオブジェクト変換プロセスを実行する。
【0080】
iノード番号10はブロック1510により受信され、iノード番号10に関連する非変更オブジェクトへの最長パスネーム変更が特定される。例示的な一実施態様では、プリフィックスツリー1100を利用して、iノード番号10への最長パスネームがiノード1/iノード7/iノード8/iノード10であることを示す。iノード番号10が変更されていない場合、ファイルシステムは、iノード番号10の割り当てを参照し、iノード番号10がオブジェクトjに割り当てられていることが特定され、オブジェクトインジケータjがパスネームに挿入される。ここで、部分パスネームはj/x/l’である。ブロック1520において、親ノード番号8が最長チェーンから検索される。ブロック1530は、親iノード番号8をブロック1310にフィードバックし、ハッシュテーブルは再帰的に参照される。
【0081】
再帰的な参照により、iノード番号8がセル1003内にあることが示され、セル1023内のオブジェクト名h’がパスネームに挿入されて、部分パスネームh’/j/x/l’が与えられる。親iノード番号7は1420にフィードバックされ、ハッシュテーブル参照により、iノード番号7がネーム空間変更に関連しないことが示される。iノード番号7はブロック1340に転送され(例えば、ブロック1450により)、ブロック1340は非変更ノード/パスネームオブジェクト変換プロセスを実行する。
【0082】
プリフィックスツリー1100を利用して、iノード番号1及びiノード番号7の最長チェーンが識別される。gのオブジェクト名が、非変更iノード番号7のセッション開始情報から検索され、オブジェクト名gはパスネームに挿入されて、部分パスネームg/h’/j/x/l’が与えられる。親iノード番号1は再びブロック1310に転送され、ハッシュテーブルが再帰的に参照される。
【0083】
ハッシュテーブルの再帰的な参照により、iノード番号1がセル1001内にあることが示され、セル1021内のオブジェクト名a’はパスネームに挿入されて、部分パスネームa’/g/h’/j/x/l’が与えられる。親iノード番号ヌルがブロック1370に転送され、ブロック1370はヌルインジケータを認識し、パスネームa’/g/h’/j/x/l’がブロック130によりターゲットファイルシステムに転送され、複製されたターゲット記憶システムイメージの更新に利用される。したがって、ネーム空間変更を含むソースファイルシステムのファイル管理に利用されるiノード番号13は、パスネームa’/g/h’/j/x/l’に効率的に変形され変換される。ネーム空間変換プロセス1220を通しての同様の再帰的ループが、他のiノード番号インジケータからオブジェクトパスネームへの変換に役立ち得ることが理解される。
【0084】
図17は、実施形態による複製システム環境1700内の周期的な複製動作を示す。示される実施形態では、一次システム1700a内の一次データ容量(Vol)のインクリメント的に改変又は変更されるデータのコピーが、二次システム1700b内の複製二次データ容量(R_Vol)に周期的に転送される。一次データ容量のアクセス可能性を保つために、ポイントインタイム「スナップショット」容量(S_Vol)が作成され、周期的な複製が、スナップショット容量を使用して実行される。同様に、二次データ容量のアクセス可能性を保つために、ポイントインタイム「スナップショット」容量(RS_Vol)が作成され、二次システム1700bで使用されて、一次システム1700aからインクリメント的な変更を受信し、複製二次データ容量を復元する。
【0085】
示される実施形態の複製システムでは、一次ノード1700aは、ネットワーク1714(例えば、IPネットワーク、LAN、WAN、又は他の通信リンク)を介して二次システム1700bに結合される。示される実施形態の一次システム1700a及び二次システム1700bのそれぞれは、アプリケーション1702と、ファイルシステム1704と、チェックポイントマネージャ1705と、容量複製器1708を含む容量マネージャ1706とを含み、これらは、一次システム1700a及び二次システム1700bの各プロセッサ及びメモリで実施し得る。一実施形態では、チェックポイントの作成を管理する機能は、チェックポイントマネージャ1705により実施される。
図1の実施形態は、初期同期の使用を介して初期化される。初期同期中、一次システム1700a内の一次データ容量(Vol)の内容は、二次システム1700b内の複製二次データ容量(R_Vol)に転送される。一実施形態では、一次データ容量のアクセス可能性を保つために、ポイントインタイム「スナップショット」容量(S_Vol)が、「チェックポイント」時点で作成され、初期同期(並びに続く周期的な複製)が、スナップショット容量を使用して実行される。初期同期が実行されている場合、一次データ容量への更新(例えば、書き込み動作又は他の変更)が追跡され、後に、実施形態による周期的な複製を実行する際に使用される。
【0086】
一次システム1700aは、ソース記憶リソースイメージを含む一次データ容量1710aをさらに含む。二次システム1700bは、ターゲット記憶リソースイメージを含む二次データ容量1710bを含む。一実施形態では、容量複製器1708aは、ネーム空間変換を実行するネーム空間変換モジュール1750を含む。一実施形態では、ネーム空間変換モジュール1750は、容量複製器1708aに関連する複製モジュールに対応する。ネーム空間変換モジュールを様々な環境の一環として実施可能なことが理解される。例えば、ネーム空間変換モジュールは、分散計算環境、クラウド計算環境、クライアントサーバ環境等の一環として実施可能である。
【0087】
図18は、一実施形態による例示的な複製モジュール1800のブロック図である。例示的な一実施態様では、複製モジュール1800は、コンピュータ可読媒体に記憶された命令を含む。複製モジュール1800及びコンピュータ可読媒体は、複製システム環境1700内で利用することができる。複製モジュール1880は、複製方法を実行する命令を含むことができる。
【0088】
イメージ凍結モジュール1810は、ファイルシステム内のイメージを凍結する。ファイル変更ログ検査モジュール1820は、ネーム空間変更に関連するノードインジケータを特定する。ネーム空間変換モジュール1830は、ノードインジケータからパスネームインジケータへのネーム空間変更を実行する。フィルタモジュール1840は、不必要な情報をフィルタリングする。ファイルデータ検索モジュール1850は、ファイルデータを検索する。動作デルタ転送モジュール1860は、パスネームに関連する情報を含め、セッションチェックポイント間のデルタ変更動作情報を転送する。本モジュール及び本方法が、計算装置により実行された場合、計算装置に、ノードインジケータからオブジェクトインジケータへのネーム空間変換を含む複製イメージ記憶動作を実行させるコンピュータ可読媒体を含む製品に記憶された命令を含むことができることが理解される。
【0089】
図19は、一実施形態による例示的なネーム空間変換モジュール1900のブロック図である。例示的な一実施態様では、ネーム空間変換モジュール1900は、コンピュータ可読媒体に記憶された命令を含む。例示的な一実施態様では、ネーム空間変換モジュール1900は、ネーム空間変換モジュール1830と同様である。ネーム空間変換モジュール1900は、ネーム空間変換プロセス又は方法を実行する命令を含むことができる。
【0090】
ノード情報受信モジュール1910は、ファイルシステム動作変更に関するノード情報を受信する。変更ノード/パスネームオブジェクト変換モジュール1920は、変更ノード/パスネームオブジェクト変換プロセスを実行する。非変更ノード/パスネームオブジェクト変換モジュール1930は、非変更ノード/パスネームオブジェクト変換プロセスを実行する。オブジェクトインジケータ挿入モジュール1940は、パスネームへのオブジェクトインジケータ挿入を実行する。ヌル判断モジュール1950は、親ノード表示がヌルであるか否かを判断する。パスネーム転送モジュール1960は、パスネームを転送する。例えば、パスネーム転送モジュール1960は、パスネームをターゲットシステム記憶リソースに転送する。
【0091】
図20は、一実施形態による例示的な変更モード/パスネームオブジェクト変換モジュール2000のブロック図である。例示的な一実施態様では、変更モード/パスネームオブジェクト変換モジュール2000は、コンピュータ可読媒体に記憶された命令を含む。例示的な一実施態様では、変更モード/パスネームオブジェクト変換モジュール2000は、変更モード/パスネームオブジェクト変換モジュール1920と同様である。変更モード/パスネームオブジェクト変換モジュール2000は、変更モード/パスネームオブジェクト変換プロセス又は方法を実行する命令を含むことができる。
【0092】
ノードインジケータ受信モジュール2010は、ノードインジケータを受信する。ノード関連モジュール2020は、ノードが動作変更に関連するか否かを判断する。オブジェクトインジケータ検索モジュール2030は、ノードに関連するオブジェクト名を検索する。親ノードインジケータモジュール検索モジュール2050は、親ノードインジケータを検索する。オブジェクト挿入モジュール2050は、オブジェクトインジケータをパスネームに挿入する。ノード表示転送モジュール2060は、ノードインジケータを転送してさらに処理する。一実施形態では、ノード表示転送モジュール2060は、ノードインジケータを非変更ノード/パスネームオブジェクト変換モジュール(例えば、ブロック1930)に転送する。
【0093】
図21は、一実施形態による例示的な非変更ノード/パスネーム変換モジュール2100のブロック図である。例示的な一実施態様では、非変更ノード/パスネーム変更モジュール2100は、コンピュータ可読媒体に記憶された命令を含む。例示的な一実施態様では、非変更ノード/パスネーム変換モジュール2100は、非変更ノード/パスネーム変換モジュール1930と同様である。非変更ノード/パスネーム変換モジュール2100は、非変更ノード/パスネーム変換プロセス又は方法を実行する命令を含むことができる。
【0094】
最長チェーンモジュール2110は、非変更オブジェクトへの前回セッション最長パスネームチェーンを取得する。親ノードインジケータ検索モジュール2120は、親に関連するノードインジケータを取得する。親ノードインジケータ転送モジュール1530は、親ノードインジケータを転送する。非変更オブジェクト検索モジュール2140は、最長パスネームチェーンから非変更オブジェクト名を検索する。オブジェクト挿入モジュール2150は、検索されたオブジェクトインジケータをパスネームに挿入する。
【0095】
図22は、一実施形態による例示的なコンピュータシステム2200を示す。コンピュータシステム2200は、上述した実施形態の特定のハードウェアに基づく機能及びソフトウェアに基づく機能の実行環境を提供する基本的なコンピュータシステムの構成要素を示す。例えば、コンピュータシステム2200は、1つ又は複数のソフトウェアスタック(例えば、モジュール1702〜1708、1750、1810〜1860、1910〜1960、2010〜2060、2110〜2150等)がインスタンス化されるシステムであることができる。コンピュータシステム2200は、例えば、サーバコンピュータシステム、ワークステーションコンピュータシステム、デスクトップコンピュータシステム、又はラップトップコンピュータシステムとして実施することができる。同様に、コンピュータシステム2200はハンドヘルド装置として実施することができる。コンピュータシステム2200は通常、少なくとも何等かの形態のコンピュータ可読媒体(例えば、コンピュータ可読媒体2201)を含む。コンピュータ可読媒体は、コンピュータシステム2200がアクセス可能ないくつかの異なる種類の媒体であることもでき、リムーバブルコンピュータ記憶媒体、非リムーバブルコンピュータ記憶媒体、フラッシュメモリ、ハードディスク、光ディスクドライブ、コンパクトディスク(CD)等)を挙げることができるが、これらに限定されない。
【0096】
最も基本的な構成では、コンピュータシステム2200は通常、処理ユニット2203及びメモリ2201を含む。使用されるコンピュータシステム2200の厳密な構成及び種類に応じて、メモリ2201は揮発性(例えば、DRAM等)2201a、不揮発性2201b(例えば、ROM、フラッシュメモリ等)、又はこれら2つのある組み合わせであることができる。同様に、メモリ2201は、他の装置を含むことができ、固体状態装置、例えば、磁気ディスクに基づく媒体、光学媒体等が列挙される。
【0097】
さらに、コンピュータシステム2200は、磁気又は光学のディスク又はテープ等の他の大容量記憶システム(例えば、リムーバブル2205及び/又は非リムーバブル2207)を含むことができる。同様に、コンピュータシステム2200は、入力装置2209及び/又は出力装置2211(例えば、ディスプレイ等)を含むことができる。コンピュータシステム2200は、有線媒体又は無線媒体のいずれかを使用する他の装置、コンピュータ、ネットワーク、サーバ等へのネットワーク接続2213をさらに含むことができる。これらの装置のすべては当分野において周知であるため、詳細に考察する必要がない。
【0098】
コンピュータシステム2200が、コンピュータシステム2200の機能がクラウド計算環境を使用して部分的又は全体的に実行される場合のように、多数の分散した計算ノードを有する分散コンピュータシステムにより補足される機能のうちのいくつか、大半、又はすべてを有し得ることにさらに留意されたい。
【0099】
本システム及び方法は、実行時処理中に実施することができる。例示的な実施態様では、実行時処理は、ファイル変更ログのスキャン及びオンザフライでのファイル/ネーム空間変更の生成を含む。本システム及び方法は、ファイルログ変更サービスに加えて実施することができる。本システム及び方法は、純粋なネーム空間動作(例えば、ネーム変更、ハードリンク等)でのデータ移動がないか、又は最小である状態で実施することができる。
【0100】
一実施形態では、呼び出し側への各デルタ記録リターンには、FCLファイル内のエントリを一意に識別するFCLマーカが付随する。例示的な一実施態様では、呼び出し側は、マーカをFCLモジュールへのロールバックインタフェースに提供することにより、全体プロセスを容易にロールバックすることができる。FCLモジュールは、FCLファイル内のマーカにロールバックし、その時点で「再開」することができる。
【0101】
本複製システム及び方法は、効率的且つ効果的な情報の複製に役立つ。情報複製は、動作セッション中に変更される記憶システムイメージの部分に対して柔軟且つインクリメント的に実行することができる。システム及び方法は、順序要件を維持しながら、ノードインジケータがオブジェクトインジケータに変形されるネーム空間変換又は変形を実行することができる。システム及び方法は、実行時処理として実施することができる。事前処理及び事後処理は必要なく、そのような活動へのリソース(例えば、メモリリソース、大きなディスクフットプリント、処理時間等)の関与を低減又は回避することができる。
【0102】
詳細な説明の部分は、方法に関して提示され考察されている。この方法の動作を説明するステップ及びステップの順序が本明細書の図に開示されるが、そのようなステップ及び順序は例示的である。実施形態は、様々な他のステップ又は本明細書の図のフローチャートに列挙されるステップの変形を、本明細書に示され説明される順序以外の順序で実行することにもよく適する。
【0103】
詳細な説明のうちのいくつかの部分は、手続き、ステップ、論理ブロック、処理、及びコンピュータメモリ内で実行可能なデータビットに対する演算の他の象徴的な表現に関して提示される。これらの説明及び表現は、データ処理分野の当業者が、他の当業者に作業の本質を最も効率的に伝えるために使用する手段である。手続き、コンピュータにより実行されるステップ、論理ブロック、プロセス等は、本明細書では、且つ一般的に、所望の結果をもたらす自己矛盾のないステップシーケンス又は命令シーケンスであると考えられる。ステップは、物理的数量の物理的な処理を含む。通常、必須ではないが、これらの数量は、コンピュータシステムでの記憶、転送、結合、比較、及び他の処理が可能な電気的、磁気的、光学的、又は量子的な信号の形態をとる。時には、主に一般的な慣習により、これらの信号をビット、値、要素、シンボル、文字、期間、数等として参照することが好都合なことが証明されている。
【0104】
しかし、これら及び同様の用語のすべてが、適切な物理的数量に関連付けられるべきであり、これらの数量に適用される単に好都合のラベルであることを念頭に置かれたい。以下の考察から明らかなように、別途明記される場合を除き、全体を通して、「処理する」、「計算する」、「算出する」、「特定する」、「表示する」、「アクセスする」、「書き込む」、「含む」、「記憶する」、「送信する」、「トラバースする」、「関連付ける」、「識別する」等の用語を利用する考察が、コンピュータシステムのレジスタ及びメモリ内の物理的(電子的)数量として表されるデータを処理し変形して、コンピュータシステムのメモリ若しくはレジスタ又は他のそのような情報記憶装置、伝送装置、若しくは表示装置内の物理的数量として同様に表される他のデータにするコンピュータシステム又は同様の電子計算装置の動作及びプロセスを指すことが理解される。
【0105】
計算装置は、少なくとも何等かの形態のコンピュータ可読媒体を含むことができる。コンピュータ可読媒体は、計算装置がアクセス可能な任意の利用可能な媒体であることができる。限定ではなく例として、コンピュータ可読媒体は、コンピュータ記憶媒体及び通信媒体を含み得る。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、又は他のデータ等の情報を記憶する任意の方法又は技術で実施される揮発性媒体、不揮発性媒体、リムーバブル媒体、及び非リムーバブル媒体を含む。コンピュータ記憶媒体は、RAM、ROM、EEPROM、フラッシュメモリ、若しくは他のメモリ技術、CD−ROM、デジタル多用途ディスク(DVD)、若しくは他の光学記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置、若しくは他の磁気記憶装置、又は所望の情報の記憶に使用可能であり、計算装置がアクセス可能な任意の他の媒体を含むが、これらに限定されない。通信媒体は通常、搬送波又は他の輸送メカニズム等の変調データ信号でコンピュータ可読命令、データ構造、プログラムモジュール、又は他のデータを具現し、任意の情報輸送媒体を含む。「変調データ信号」という用語は、特徴セットのうちの1つ若しくは複数を有する信号又は情報を信号に符号化するように変更された信号を意味する。限定ではなく例として、通信媒体は、有線ネットワーク又は直接有線接続等の有線媒体と、音響、RF、赤外線、及び他の無線媒体等の無線媒体とを含む。上記の任意の組み合わせも、コンピュータ可読媒体の範囲内に含まれるべきである。
【0106】
いくつかの実施形態は、1つ又は複数のコンピュータ又は他の装置により実行される、プログラムモジュール等のコンピュータ実行可能命令の一般的な文脈の中で説明し得る。一般に、プログラムモジュールは、特定のタスクを実行し、又は特定の抽象データ型を実施するルーチン、プログラム、オブジェクト、構成要素、データ構造等を含む。通常、プログラムモジュールの機能は、様々な実施形態で所望のように結合又は分散させ得る。
【0107】
一実施形態では、ネーム空間変換プロセスは、ファイルシステム動作変更に関するノード情報を受信すること、ノード情報に対して変更ノード/パスネームオブジェクト変換プロセスを実行すること、ノード情報に対して非変更ノード/パスネームオブジェクト変換プロセスを実行すること、並びに変更ノード/パスネームオブジェクト変換プロセス及び非変更ノード/パスネームオブジェクト変換プロセスの結果に基づいて、オブジェクトインジケータをパスネームに挿入することを含む。ファイル複製方法の一実施形態では、変更ノード/パスネームオブジェクト変換プロセス及び非変更ノード/パスネームオブジェクト変換プロセスは、オブジェクトインジケータを返すと共に、親ノードインジケータを返すデータ構造を利用する。ファイル複製方法の一実施形態では、変更ノード/パスネームオブジェクト変換プロセスは、ネーム空間変更に関連するノードインジケータを親ノードインジケータ及びオブジェクト名にマッピングするネーム空間変更追跡データ構造を利用する。ファイル複製方法の例示的なオン実施態様では、ネーム空間変更追跡データ構造はハッシュテーブルを含む。ファイル複製方法は、プリフィックスツリーである最長パス追跡データ構造を含むことができる。ファイル複製方法は、第1の親オブジェクトノードインジケータを入力として変更ノードパスネームオブジェクト変換プロセスに返すこと及び第2の親オブジェクトノードインジケータを入力として非変更ノード/パスネームオブジェクト変換プロセスに返すことをさらに含むことができる。
【0108】
一実施形態では、製品は、計算装置により実行された場合、計算装置に記憶イメージ複製を実行させる命令を記憶したコンピュータ可読媒体を含み、命令は、セッションチェックポイントでソースファイルシステムの凍結スナップショットを管理する手段と、ファイル変更ログ内のエントリを検索する手段であって、エントリはセッションチェックポイント間の変更に対応する、検索する手段と、ファイル変更ログからのエントリに対応するノード表示をパスネーム表示に変換する手段と、不必要な動作をフィルタリングする手段と、セッションチェックポイント間のファイルデータの変更を検索する手段と、パスネーム表示及びファイルデータの変更を転送する手段と、を含む。一実施形態では、コンピュータ可読媒体は、変換する手段が、ノード表示が受信されたか否かを判断する手段と、変更ノード/パスネームオブジェクト変換プロセスを実行する手段と、非変更ノード/パスネームオブジェクト変換プロセスを実行する手段と、オブジェクト名をパスネームに挿入するオブジェクト表示挿入モジュールとを含むことを含むことができる。コンピュータ可読媒体は、対応するネーム空間変更に関わるノードに関連するオブジェクト名を取得する変更ノード/パスネームオブジェクト変換プロセスを実行する手段と、対応するネーム空間変更に関わらないノードに関連するオブジェクト名を取得する非変更ノード/パスネームオブジェクト変換プロセスを実行する手段とを含むことができる。コンピュータ可読媒体は、一意のiノード番号を含むノード表示を含むことができる。一実施形態では、コンピュータ可読媒体は、オブジェクト表示を返すデータ構造を利用する変更ノード/パスネームオブジェクト変換プロセスを実行する手段及び非変更ノード/パスネームオブジェクト変換プロセスを実行する手段を含む。例示的な一実施態様では、コンピュータ可読媒体は、親ノードインジケータを再帰的に処理する変更ノード/パスネームオブジェクト変換プロセスを実行する手段と、非変更ノード/パスネームオブジェクト変換プロセス親ノードインジケータを実行する手段とを含むことができる。
【0109】
一実施形態では、情報記憶複製システムは、情報を記憶する手段と、ソース内部ノードインジケータからパスネームインジケータへの変換を管理することを含む、情報を記憶する手段内の情報の記憶を管理する手段と、情報の複製を記憶する手段とを備える。情報記憶複製システムは、オブジェクト表示及び親ノード表示を返すデータ構造を記憶利用する手段を含むことができる。例示的な一実施態様では、情報記憶複製システムは、ネーム空間変更に関連するノード表示を親ノード表示及びオブジェクト名にマッピングするハッシュテーブルと、前回セッションからの非変更ノードの最長パスをマッピングするプリフィックスツリーとを含む。
【0110】
特定の実施形態の上記説明は、例示及び説明のために提示された。網羅的、すなわち、本発明を開示される厳密な形態に限定することは意図されず、多くの変更及び変形が上記教示に鑑みて可能である。実施形態は、原理及び実際用途を最良に説明し、それにより、当業者が、意図される特定の用途に適するように、本発明及び様々な変更を有する様々な実施形態を最良に利用することができるように、選択され説明された。範囲は、本明細書に含まれるシステム及び方法並びにそれらの均等物により定義されることが意図される。