JP5186390B2 - ノードの番号付けによるファイル・システムのダンプ/復元のための方法、システム、およびデバイス - Google Patents

ノードの番号付けによるファイル・システムのダンプ/復元のための方法、システム、およびデバイス Download PDF

Info

Publication number
JP5186390B2
JP5186390B2 JP2008548967A JP2008548967A JP5186390B2 JP 5186390 B2 JP5186390 B2 JP 5186390B2 JP 2008548967 A JP2008548967 A JP 2008548967A JP 2008548967 A JP2008548967 A JP 2008548967A JP 5186390 B2 JP5186390 B2 JP 5186390B2
Authority
JP
Japan
Prior art keywords
inode
file system
content
subdirectory
data set
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2008548967A
Other languages
English (en)
Other versions
JP2009522677A (ja
Inventor
エヴァーハート、クレイグ、フルマー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2009522677A publication Critical patent/JP2009522677A/ja
Application granted granted Critical
Publication of JP5186390B2 publication Critical patent/JP5186390B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2097Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements maintaining the standby controller/processing unit updated
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/184Distributed file systems implemented as replicated file system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/82Solving problems relating to consistency

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、ファイル・システムの複製(replication)に関する。とりわけ本発明は、ソース・ファイル・システムからターゲット・ファイル・システムへデータを複製しながら、テーブル・エントリを保持するための方法およびツールに関する。
ファイルとは、ユーザにとっては、ストレージ・メディア内に保持されたデータの単一の連続ブロックとして見える、関連情報の名前付き集合である。データ・ブロックとは、ファイル用の実際のデータを格納するために使用される構造体である。ファイル・システムとは、ストレージ・メディア上のデータおよびメタデータの構造であり、それらメディア上でのデータの読み取り/書き込みを可能にする。一実施形態では、ファイル・システムは、コンピュータ上でファイルを編成するために使用されるディレクトリの階層、すなわちディレクトリ・ツリーである。iノードとは、メタデータなどのファイルに関する情報を格納するために使用されるファイル・システム上のデータ構造体である。iノードに含まれる情報は、ファイルの所有権、ファイルへのアクセス許可、ファイルのサイズ、ファイル・タイプ、および、ファイルに関するデータ・ブロックのディスク上の場所への参照を含むことができる。iノードは、しばしばディスク・メディア上の連続テーブル内に格納され、ファイルのiノード番号は整数であって、これはこのテーブル内のそのiノードのインデックスである。ファイルが作成されると、名前およびiノード番号の両方が割り当てられる。ファイルは、iノード内にルートを持っていることからiノード番号を有し、何らかのディレクトリ内にファイル用に作成されたエントリを持っていることから名前を有する。ディレクトリ内のデータは、最小限、ファイル名ならびにそれらの対応するiノード番号のペアのリストであり、ディレクトリそれ自体は親ディレクトリ内にエントリを有することになり、すなわち、ほとんどのディレクトリは何らかの他のディレクトリのサブディレクトリであることに留意されたい。ファイル・システム内に明示的な親ディレクトリを持たないのは、ファイル・システムのルート・ディレクトリのみである。ユーザまたはプログラムが名前によってファイルを参照する場合は必ず、システムはその名前を使用してファイル・システム内のディレクトリを検索する。検索はルートから始まり、ファイルの完全な名前が使用され、検索によってそのファイルに関するiノードが見つかるまで、引き続いてサブディレクトリを読み取りおよび検索し、これによってシステムは、さらなる動作を実行するためにファイルに関して必要な情報、すなわちメタデータを取得することができる。
ファイル・システムは、カプセル化されたiノード・テーブル・インデックスへの参照をファイル・システムのクライアントに渡すことによって、ソース位置からターゲット位置へとネットワークを横切ってエクスポートすることができる。本明細書で使用される場合、「ソース」という用語は、本発明の対象データの移動元である場所として広義に定義することが可能であり、「ターゲット」という用語は、データの移動先である場所として定義することが可能である。図1は、ソース・ファイル・サーバ(20)およびターゲット・ファイル・サーバ(40)を含む、相互接続されたファイル・サーバのペアを含む、ストレージ・システム環境を示すブロック図(10)である。ソースおよびターゲットのファイル・サーバ(20)および(40)は、それぞれ、ローカルまたはワイドのエリア・ネットワークを備えることが可能なネットワーク(30)を介してリンクされる。それぞれがネットワーク接続(22)、(42)を介してネットワーク(30)と通信する各ファイル・サーバ(20)および(40)と通信しながらその内部に常駐する、適切なネットワーク・アダプタ(32)、(52)が、ネットワーク(30)を介した通信を容易にする。ソースおよびターゲットのファイル・サーバ(20)および(40)は、それぞれ、プロセッサ(26)、(46)、メモリ(28)、(48)、ならびにネットワーク・アダプタ(32)、(52)を含む。各ファイル・サーバ(20)、(40)は、ストレージ・メディア上のディレクトリおよびファイルの階層構造として情報を論理的に編成するためにファイル・システムを実装する、ストレージ・オペレーティング・システム(図示せず)も含む。
ネットワーク全体にわたってファイル・システムを複製するための方法は、いくつか知られている。ファイル・システムを複製するための従来技術の方法の1つは、ソース・ファイル・システムのディレクトリ・ツリーを複製する。ソース・ファイル・システム側のアプリケーションは、提示されたディレクトリ・ツリーをトラバースし、各ファイルおよびディレクトリを宛先ファイル・システムにコピーする。図2は、ソース・ファイル・システムのサンプルiノード・テーブルを示す従来技術のブロック図(100)である。図に示されるように、iノード・テーブル内には、ルート・ディレクトリ(102)に加えて3つのエントリがあり、そのエントリはそれぞれ、4(104)、6(106)、および7(108)のインデックスにある。この例では、インデックス1(102)がルート・ディレクトリであり、インデックス4(104)は編集プログラム用の実行可能イメージに関するエントリを有し、インデックス6(106)はサブディレクトリであり、インデックス7(108)は読み取り可能なテキスト・ファイルを有する。図に示されるように、インデックス2(110)、3(112)、および5(114)にはエントリがない。この空インデックスの理由は様々である。たとえば、あるインデックスは、かつてはインデックス内に常駐したファイルが削除された可能性があるため、空である場合がある。
図3は、前述の従来技術のiノード・テーブル複製プロセスを使用して、図2のサンプル・ソースiノード・テーブルから解釈された、ターゲット・ファイル・システムでのサンプルiノード・テーブルを示すブロック図(150)である。図に示されるように、ソース・ファイル・システムからのノード・テーブル・インデックスの順序は複製プロセス時には保持されず、空インデックスは保持されなかった。ノード・テーブル・インデックスの順序は特有ではなく、アルファベット順、番号順などで表すことができる。したがって、たとえターゲット・ファイル・システムでの所与のファイルが、ソース・ファイル・システムでの同じファイルのコピーであっても、それらのネットワーク・ファイル参照は交換可能ではない。
ファイル・システムを複製するための他の従来技術の方法は、iノード・テーブル内の各ファイルおよびディレクトリを番号順に複写することによって、ファイル・システムをコピーする。たとえば、第1ノードに対応するファイルは、ソース・ファイル・システムからターゲット・ファイル・システムへとコピーされる。この後に、第2ノードに対応するファイルが続き、それぞれのファイルは、ソース・ファイル・システムのノード・テーブル内にあるそれぞれの連続ノードに対応する。しかしながら、この方法に関連付けられる欠点の1つは、ファイルが親ディレクトリによって参照されることに関連した任意の順序でコピーされるため、ターゲット・ファイル・システムの中間状態がそれ自体と整合しなくなることである。たとえば、ファイルへの参照としての働きをするディレクトリ・エントリが、ファイル自体がコピーされる前にターゲット・ファイル・システムにコピーされた場合、ファイルに関するディレクトリ・エントリはまだ存在しないことになり、非整合状態(inconsistent state)が生成される。これとは逆に、あるファイルに関するディレクトリ・エントリがソース・ファイル・システムからターゲット・ファイル・システムへとコピーされる前に、そのファイルがソース・ファイル・システムからターゲット・ファイル・システムへとコピーされた場合、別の非整合状態が生成される可能性がある。この中間状態が、存在し、スペースを消費するが、いかなるディレクトリ・エントリによっても指示されない、すなわち名前を持たない、ファイルを生成する。コピーが割り込みなしに完了した場合、ソースおよびターゲットのファイル・システム内のファイルが同じiノード番号を有することになり、すべてのファイルがディレクトリ・エントリを有することになり、ソース・ファイル・システムの場合と同様に、すべてのディレクトリ・エントリがファイルに対応することになるため、これらの中間状態はどちらも実際的には意味のないものである(moot)。しかしながら、2つの識別された中間状態に関連付けられた重大な欠点があり、これは、ターゲット・ファイル・システム内に第1のエントリが作成された後に、複製プロセスで割り込みが発生した場合に生じる。従来技術の複製プロセスにおける割り込みは、結果として、自己非整合型(self-inconsistent)であり復活不可能(not salvageable)な部分的ターゲット・ファイル・システムを生じさせる。
したがって、すべての中間段階を含む複製プロセスのすべての段階でiノード・テーブル・エントリの順序を保持する、ファイル・システムを複製するための方法が求められている。このソリューションは、複製プロセス中に割り込みが発生した場合、ターゲット・ファイル・システムの残余部が復活可能である。
本発明は、ネットワークを横切ってファイル・システムを複製するため、および、複製プロセス全体の間、ファイル・システム内で関連付けられたテーブルの順序を保持するための、方法およびシステムを有する。
本発明の一態様では、ファイル・システムを複製するための方法が提供される。データ・構造として編成されたソース・ファイル・システムは、ツリー順にスキャンされる。ソース・ファイル・システムの各ディレクトリおよびディレクトリ・インデックスが識別される。同様に、ソース・ファイル・システムからのディレクトリおよびディレクトリ・インデックスは、ターゲット・ファイル・システム内でも作成される。ターゲット・ファイル・システム内でのインデックスおよびディレクトリの作成に続き、ソース・ファイル・システム内のディレクトリからのコンテンツが、ソース・ファイル・システム内で保持されているものと同じ識別インデックスと共に、ターゲット・ファイル・システム内の対応するディレクトリにコピーされる。ディレクトリ・コンテンツのコピー・プロセスは、再帰的に実行される。
本発明の他の態様では、プロセッサがメモリに結合され、操作を実行するように動作可能な、プロセッサおよびメモリを備えたコンピュータ・システムが提供される。こうしたプロセッサ操作は、データ構造として編成されたファイル・システムをツリー順にスキャンすること、スキャン済みファイル・システム内のディレクトリおよびディレクトリ・インデックスを識別すること、異なるファイル・システム内で、ディレクトリ・インデックスを含むスキャン済みファイル・システムからディレクトリを作成すること、ならびに、スキャン済みファイル・システム内のディレクトリから、異なるファイル・システム内の対応するリモート・ディレクトリへと、コンテンツを再帰的にコピーすること、を含む。作成されたディレクトリは、当該スキャン済みディレクトリからリモートの異なるファイル・システム内にある。
本発明の他の態様では、コンピュータによって読み取り可能なプログラム・ストレージ・デバイスが提供される。このコンピュータは、ファイル・システムを複製するための操作を実行するために、コンピュータによって実行可能な命令を確実に記録する。この操作は、データ構造として編成されたソース・ファイル・システムをツリー順にスキャンすることを含む。ソース・ファイル・システム内のディレクトリおよびディレクトリ・インデックスが識別され、ソース・ファイル・システムからのディレクトリおよびディレクトリ・インデックスがターゲット・ファイル・システム内で作成される。ソース・ファイル・システム内のディレクトリからのコンテンツが、ターゲット・ファイル・システム内の対応するディレクトリに再帰的にコピーされる。ターゲット・ファイル・システム内のディレクトリ・インデックスは、ソース・ファイル・システム内のディレクトリ・インデックスと同じである。
本発明の他の態様では、コンピュータによって読み取り可能なプログラム・ストレージ・デバイスが提供される。このコンピュータは、ファイル・システムを複製するための操作を実行するためにコンピュータによって実行可能な命令を確実に記録する。この命令は、データ構造として編成されたソース・ファイル・システムをノード順にスキャンすることを含む。スキャン中、見つけられた各ディレクトリのコンテンツが銘記(remember)され、ターゲット・ファイル・システムへ報告されるため、結果としてディレクトリに関する数値識別子が、ディレクトリ内の各オブジェクトに関する識別子に先行する。
本発明の他の特徴および利点は、添付の図面に関連した、現時点で好ましい本発明の実施形態についての以下の詳細な説明から明らかとなろう。
次に、本発明について、添付の図面を参照しながら単なる例として説明する。
2つのサーバがネットワークを横切って相互接続される。第1のサーバは1つのファイル・システムと通信し、第2のサーバは第2のファイル・システムと通信する。各ファイル・システムは、階層様式でデータ構造に編成される。ファイル・システムは、データ構造内のテーブルの順序を保持するように、一方のサーバから他方のサーバへとネットワークを横切って複製することができる。
本発明の以下の説明は、本発明のシステムおよび方法を実施するための現時点で好ましい実施形態の構造または処理のいずれかを説明するために、流れ図を使用することによって提示される。本発明を提示するためにこのようにして図を使用することは、本発明の範囲を限定するものと解釈されるべきではない。
本明細書では、ネットワークを横切ってファイル・システムを複製するための方法が開示される。この方法には、2つのセグメントを有する第1の部分を備えた、2つの部分がある。図4は、ディレクトリによって指示されたオブジェクトを報告する前にツリー内のディレクトリを報告する、ツリー順に編成されたソース・ファイル・システムをスキャンする、第1の複製方法の第1の部分の第1のセグメントを示す、流れ図(200)である。ルート・ディレクトリが変数NAMEに割り当てられ(202)、複製プロセスに使用されるビットマップは消去される(204)。名前インデックスをコピーするための機能NISCANが呼び出される(206)。この機能は、1つのパラメータ、NAMEを有する。図5は、第1の複製方法の第1の部分の第2のセグメントを示す流れ図(220)である。このセグメントでは、NISCAN機能が詳細に示される。ビットマップで使用するためのビットが、ソース・ファイル・システム内の変数NAMEに設定される(222)。その後、第1のテストで、コピー機能に対する引数NAMEがソース・ファイル・システム内のディレクトリであるかどうかを判別する(224)。ステップ(224)で、このテストに対する応答が肯定であれば、結果として、ソース・ファイル・システム内にあるのと同じインデックスで、ターゲット・ファイル・システム内に空のディレクトリNAMEが作成される(226)。ディレクトリをコピーするための機能NISCANは、ディレクトリNAME内のすべての要素Eをコピーするために再帰的に呼び出され、すなわち、NISCAN(NAME/E)である(228)。NISCANの各呼び出しは、各ディレクトリのサブファイルを含む1つのファイルについてビットを設定する。ビットマップ内のビットの設定は、特定のiノード、すなわち特定のファイルあるいはディレクトリまたはその両方がターゲット・ファイル・システム内で複製されたことの、インジケータとしての働きをする。ステップ(224)で、テストに対する応答が否定であれば、ファイル、すなわちNAMEは、ソース・ファイル・システム内にあるのと同じ、ターゲット・ファイル・システム内のインデックスで、ソース・ファイル・システムからターゲット・ファイル・システムへとコピーされる。ソース・ファイル・システムからのディレクトリのすべてのコンテンツがターゲット・ファイル・システムにコピーされると、名前インデックス・コピー機能は完了する。万一複製が完了する前に割り込みが発生しても、複製された部分のあらゆるファイルおよびディレクトリはある名前で作成されているため、複製されたターゲット・ファイル・システム・ディレクトリの整合性は損なわれないままである。
ターゲット・ファイル・システム内のディレクトリおよびそのエントリの複製に続いて、ディレクトリ・エントリを持たないソース・ファイル・システム内の任意のオブジェクトを報告するために、第2の機能が呼び出される。図6は、この第2の機能を示す流れ図(250)である。インデックス変数が1に設定される(252)。その後、インデックス変数がソースiノード・テーブルよりも大きいかどうかを判別するためのテストが実行される(254)。ステップ(254)で、テストに対する応答が肯定の場合、インデックスがソースiノード・テーブルよりも大きく、ソース・ファイル・システム内のすべてのiノードがスキャンされたことを示しているため、ソースiノード・テーブルに関するコピー・プロセスは完了する(256)。しかしながら、ステップ(254)で、テストに対する応答が否定の場合、ソース・ファイル・システムのiノード・テーブルのインデックスにファイルがあるかどうかを判別するためのテストが実行される(258)。ステップ(258)で、テストに対する応答が肯定の場合は、インデックス内のファイルをターゲット・ファイル・システム内で複製する必要がある可能性があることを示している。しかしながら、ステップ(258)で、テストに対する応答が否定の場合は、インデックス変数が増分される(260)。その後、プロセスはステップ(254)に戻る。ステップ(258)で、テストに対する応答が肯定の場合、iノード・テーブル内の設定インデックスのファイルが、ターゲット・ファイル・システムで複製されたかどうかを判別するために次のテストが実行される(262)。一実施形態では、ビットマップ内にビットが設定されることになり、このビットマップは、複製されていればこのファイルに対応するソース・ファイル・システム内で最初からずっと一時構造である。ステップ(262)で、テストに対する応答が肯定の場合は、ステップ(260)に戻り、インデックス変数が増分される。同様に、ステップ(262)で、テストに対する応答が否定の場合は、そのインデックスで、ソース・ファイル・システムからターゲット・ファイル・システムへiノード・テーブル内のインデックスのファイルが複製されることになり、その後、インデックス変数の増分のためにステップ(260)に戻る。スイープ(sweep)・プロセスは、テーブルの終わりに達したことを示す、ステップ(254)でのテストの肯定応答が戻されるまで続行される。したがって本明細書に示されるように、オブジェクトは、ソース・ファイル・システムと同じノード・インデックスで、ソース・ファイル・システムからターゲット・ファイル・システムへと複製される。
図4、図5、および図6で上述されたプロセスは、コピーされる要素を保持しながら、ツリー順でソース・ファイル・システムをスキャンすることによって、ファイル・システムを複製するための再帰的方法である。他の実施形態では、再帰的関数を呼び出さずに、コピーされる要素のiノード・インデックスを保持しながら、ソース・ファイル・システムからのテーブルをターゲット・ファイル・システムに複製することができる。この複製プロセスに含まれる3つの主なルーチンがある。図7は、ノード順にファイル・システムを複製するための、単一パスの非再帰的方法における第1のルーチンを示す流れ図(300)である。第1のルーチンの開始に先立ち、ターゲット・ファイル・システム内にマッピングの空テーブルが作成される(302)。この空テーブルは一時構造である。ステップ(302)に続いて、インデックス変数が1に設定される(304)。その後、インデックス変数が、スキャンされるソース・テーブルの終わりを超えているかどうかを判別するために、テストが実行される(306)。一実施形態では、ターゲット・ファイル・システム内で複製されるテーブルは、ソース・ファイル・システムのiノード・テーブルである。ステップ(306)で、テストに対する応答が肯定の場合、第1のルーチンは完了し、ステップ(402)で第2のルーチンが開始される。しかしながら、ステップ(306)で、テストに対する応答が否定の場合、複製されるソース・テーブル内の設定インデックスにオブジェクトがあるかどうかを判別するために、テストが実行される(308)。ステップ(308)で、テストに対する応答が肯定の場合、続いて、ソース・ファイル・システム内のオブジェクトがディレクトリであるかどうかを判別するためのテストが実行されることになる(310)。ステップ(310)で、テストに対する応答が否定の場合、ターゲット・テーブルに空白のエントリが追加され、これによって、その後の時点で使用されることになるスペース用にテーブル・エントリが作成される(312)。同様に、ステップ(310)で、テストに対する応答が肯定の場合、ソース・ファイル・システム・テーブル・ディレクトリのディレクトリ内の各エントリに関するデリミッタおよびノード番号と共に、一時ターゲット・テーブルにエントリが追加されることになる(314)。ステップ(312)または(314)のいずれかに続いて、あるいは、ステップ(308)でのテストに対する否定応答に続いて、インデックス変数が増分され(316)、その後ステップ(306)に戻る。ステップ(306)から(316)に示されたルーチンは、ソース・ファイル・システム・テーブルをスキャンするため、および一時複製済みテーブルを作成するための、プロセスを示す。
図8は、図2に示されたソース・ファイル・システムのサンプルiノード・テーブルに基づく、ターゲット・ファイル・システム内の一時テーブルを示すブロック図(350)である。図に示されるように、4つのエントリがある。各エントリが、ソースiノード・テーブル内のインデックス1、4、6、および7を表し、各エントリは、それぞれが「;」文字で表される2つのデリミッタを有する。図に示されるように、インデックス2、3、および5は空のインデックスであるため、これらを表す場所にはエントリがない。
一時テーブルの各エントリは、第1のデリミッタの前のオプション整数X、2つのデリミッタの間のオプション文字列Y、および第2のデリミッタの後のオプションのペア・リスト(以下、pairlistという)という、オプションの値を備えた、いくつかのフィールドを含む。pairlistとは、tixと呼ばれるそれぞれの整数の後に名前が続く、ペアのシーケンスである。
ソース・ファイル・システム・テーブルのスキャンおよび複製プロセスの完了に続き、図7で作成された一時テーブルをソートするための第2のルーチンが開始される。一実施形態では、ソート・ルーチンには2つの別々のアルゴリズムが含まれる。図9は、図7で作成された一時テーブルをソートするための第1のアルゴリズムを示す流れ図(400)である。初期ステップで、一時テーブルへのインデックスPに、整数1が割り当てられる(402)。その後、一時テーブルへのインデックスが一時ターゲット・テーブルのサイズよりも大きいかどうかを判別するために、テストが実行される(404)。ステップ(404)で、テストに対する応答が肯定である場合、一時テーブルの第1のアルゴリズムは完了し、図11の第2のアルゴリズムの開始へと進むことになる。しかしながら、ステップ(404)で、テストに対する応答が否定である場合、たとえば(ix a ; ; pairlist)のように、変数Pに関する一時テーブル・エントリからフィールドを引き出し(406)、このインデックスを一時テーブルに割り当て(408)、フィールドから抽出されたオブジェクトのリストにpairlistを割り当てる(410)。リストpairlist内の各要素について、要素ixに関するテーブル・エントリ内のixに割り当てられた値が、その要素の一時テーブル・フィールドに関する一時テーブル・エントリに追加され、tixとなる(412)。すなわち、tixフィールド値は更新するエントリを選択するために使用され、ix値はエントリのXフィールドに挿入される。同様に、pairlist内のそのtix値とペアになっている名前が、修正されるエントリのYフィールドに挿入される。ステップ(412)に続いて、変数P、すなわち一時テーブルへのインデックスが増分され(414)、ルーチンはステップ(404)に戻る。したがって、ステップ(402)〜(414)に示された第1のソート・ルーチンは、ステップ(404)でのテストに関して肯定応答が受け取られるまで続行される。
図10は、図8に示された一時テーブルに基づく複製プロセスの第2の段階での一時テーブルを示す、図7で作成された一時テーブルをソートするための第1のアルゴリズムの完了に続くブロック図(450)である。図に示されるように、4つのエントリがある。それぞれのエントリは、ソースiノード・テーブル内の1、4、6、および7のインデックスを表し、4、6、および7に関連付けられたエントリは、図9に示されたアルゴリズムの完了に従って修正されている。
図10は、図9のステップ(404)でのテストに対する肯定応答に続いて開始される、一時テーブルをソートするための第2のアルゴリズムを示す流れ図(500)である一時テーブルへのインデックスを表す変数Pに、整数1が割り当てられる(502)。その後、Pが一時テーブルのサイズよりも大きいかどうかを判別するためにテストが実行される(504)。ステップ(504)で、テストに対する応答が肯定の場合、一時テーブルをソートするための第2のアルゴリズムは完了することになる。しかしながら、ステップ(504)で、テストに対する応答が否定の場合、ixおよびpairlistを変数Pのテーブル・エントリに割り当てることによって、一時テーブルが行ごとに更新されることになる(506)。ステップ(506)での割り当てに続き、ステップ(506)から割り当てられたリストである、pairlistが空であるかどうかを判別するためにテストが実行される(508)。ステップ(508)で、テストに対する応答が肯定である場合、ステップ(510)で変数Pが増分され、ステップ(504)に戻る。しかしながら、ステップ(508)で、テストに対する応答が否定である場合、抽出されたリスト、pairlist内のすべての要素の一時テーブル・インデックス・フィールド(tix)内の最小値が計算され、この最小値が変数Bに割り当てられる(512)。その後、変数Bが一時ターゲット・テーブルへのインデックスixよりも小さいかどうかを判別するためのテストが実行される(514)。ステップ(514)で、テストに対する応答が肯定である場合、変数Pが増分され、ステップ(504)に戻ることになる。同様に、ステップ(514)で、テストに対する応答が否定である場合、続いて、一時テーブルからixに関するテーブル・エントリが除去され、抽出されたリスト、pairlistのエントリ内のそれぞれのtix変数に関連付けられたすべてのエントリの前に、ixに関するテーブル・エントリが挿入される(518)。このステップ(516)および(518)での除去および挿入は、それぞれ、一時テーブル内での順序付けの変更、すなわち、データ構造の更新をサポートする。ステップ(518)での挿入に続いて、プロセスは変数Pの増分のためにステップ(510)に戻る。したがって、一時テーブルをソートするための第2のアルゴリズムは、一時テーブルの再順序付けを実行する。
図12は、図10に示されたソース・ファイル・システムのサンプル一時テーブルに基づく一時テーブルを示し、図7で作成された一時テーブルをソートするための第2のアルゴリズムの完了に基づくテーブルの再順序付けに従った、ブロック図(550)である。図に示されるように、4つのエントリがある。それぞれのエントリは、ソースiノード・テーブル内の1、4、6、および7のインデックスを表す。図に示されるように、一時テーブル内のインデックスの順序付けは、図11に示されたアルゴリズムの実行完了に従って修正されている。
図11に示されたような第2ソート・ルーチンの完了に続いて、ソース・ファイル・システムからテーブルを複製するための最終ルーチンが開始される。図13および図14は、ソース・ファイル・システムからターゲット・ファイル・システムへテーブルを複製するための最終ルーチンを示す流れ図(600)である。一時テーブルへのインデックスPに整数1が割り当てられる(602)。その後、一時テーブルへのインデックスPが、図11に示された第2のソート・アルゴリズムで再編成された一時テーブルのサイズよりも大きいかどうかを判別するためのテストが実行される(604)。ステップ(604)で、テストに対する応答が肯定である場合、ファイル・システムの複製が完了することになる(606)。しかしながら、ステップ(604)で、テストに対する応答が否定である場合、たとえば(ix a X ; Y ; pairlist)のように、変数Pに関する一時テーブル・エントリからフィールドを引き出し(608)、変数ixと共に一時テーブルにインデックスを割り当て(610)、第1のデリミッタの前の整数を変数Xに割り当て(612)、デリミッタ間の文字列を変数Yに割り当て(614)、フィールドから抽出されたオブジェクトのリストにpairlistを割り当てる(616)。ステップ(616)での割り当てに続いて、変数ixに対応するソース・インデックス内のオブジェクトがディレクトリであるかどうかを判別するためのテストが実行される(618)。ステップ(618)で、テストに対する応答が否定である場合、一時テーブル内のインデックスixでオブジェクトが作成され(620)、インデックスixのディレクトリがあれば、そこにオブジェクトが作成され、これに名前Yが与えられ(622)、ソース・インデックスixからターゲット・インデックスixへとファイル・コンテンツがコピーされることになる(624)。同様に、ステップ(618)で、テストに対する応答が肯定である場合、ターゲット・ファイル・システム内のインデックスixで、またはインデックスXに配置されたディレクトリのサブディレクトリとして、空のディレクトリが作成されるか、一時ターゲット・テーブルがインデックスXを有する場合、名前Yでサブディレクトリが作成されることになる(626)。一時テーブルが変数Xに関するエントリを有する場合、インデックスXのディレクトリのサブディレクトリとして、名前Yで空のディレクトリが作成される。ステップ(624)および(626)の完了に続いて、変数Pが増分され(628)、プロセスはステップ(604)に戻る。したがって、コピー・ルーチンが完了すると、ターゲット・ファイル・システム内のソース・テーブルが複写される。
本発明は、階層構造データの複製に関する方法およびシステムを企図する。本発明は、完全なハードウェア実施形態、完全なソフトウェア実施形態、またはハードウェア要素およびソフトウェア要素の両方を含む実施形態の形を取ることができる。図15は、ソース・ファイル・システム内のディレクトリからターゲット・ファイル・システム内の対応するディレクトリへ、すべてのコンテンツをコピーするための、再帰的プロセスを呼び出すように構成された、ハードウェア環境におけるマネージャを示すブロック図(700)である。図に示されるように、ソース・ファイル・サーバ(720)は、プロセッサ(726)、メモリ(728)、およびネットワーク・アダプタ(732)を含む。同様に、ターゲット・ファイル・サーバ(740)は、プロセッサ(746)、メモリ(748)、およびネットワーク・アダプタ(752)を含む。ソースおよびターゲットのファイル・サーバ(720)および(740)は、それぞれ、ローカルまたはワイドのエリア・ネットワークを備えることが可能なネットワーク接続(722)および(742)を通じたネットワーク(730)を介してリンクされる。ソース・ファイル・サーバは、マネージャ(760)も含む。テーブル・ロケータ(762)、配置されたソース・ファイル・システムのテーブルの各ディレクトリをターゲット・ファイル・システム内に作成するためのツール(764)、および、ソース・テーブルのディレクトリ内のコンテンツをターゲット・ファイル・システム内の対応するディレクトリに再帰的にコピーするためのディレクタ(766)も含む。一実施形態では、そのテーブル・ロケータ(762)、ツール(764)、およびディレクタ(766)を備えたマネージャ(760)を、ターゲット・ファイル・サーバ(740)内、またはプロセッサ、メモリ、およびネットワーク・アダプタを備えた代替処理ユニット内で、具体化することができる。
好ましい実施形態では、本発明は、ファームウェア、常駐ソフトウェア、マイクロコードなどを含むがこれらに限定されることのない、ソフトウェアに実装される。ソフトウェア要素に関して、ソース・ファイル・システムおよびターゲット・ファイル・システムの両方が、それぞれ、それぞれのファイル・システム内のファイル・システム・サーバのメモリ内に常駐するマネージャを有することができる。ソース・ファイル・システム・マネージャは、上記で概説および考察したアルゴリズムを呼び出すための、命令あるいはプログラム・コードまたはその両方を含むことができる。同様に、ハードウェア環境では、ソースおよびターゲットのファイル・システム・マネージャは、それぞれのファイル・システム内のファイル・システム・サーバのメモリ外部に常駐することができる。
さらに本発明は、コンピュータまたは任意の命令実行システムによって、あるいはそれらに関連して、使用するためのプログラム・コードを提供する、コンピュータ使用可能またはコンピュータ読み取り可能な媒体からアクセスできる、コンピュータ・プログラム製品の形を取ることができる。この説明の目的で、コンピュータ使用可能またはコンピュータ読み取り可能な媒体は、命令実行のシステム、装置、またはデバイスによって、あるいはそれらに関連して、使用するためのプログラムを含む、格納する、通信する、伝播する、または移送することができる、任意の装置とすることができる。
本発明の範囲内の諸実施形態は、内部に符号化されたプログラム・コードを有するプログラム・ストレージ手段を備える製品も含む。こうしたプログラム・ストレージ手段は、汎用または特定用途向けのコンピュータによってアクセス可能な、任意の使用可能媒体とすることができる。例を挙げると、こうしたプログラム・ストレージ手段は、RAM、ROM、EEPROM、CD−ROM、または他の光ディスク・ストレージ、磁気ディスク・ストレージ、または他の磁気ストレージ・デバイス、あるいは、所望なプログラム・コード手段を格納するために使用可能であり、汎用または特定用途向けのコンピュータによってアクセス可能な、任意の他の媒体を含むことができるが、これらに限定されるものではない。前述の組み合わせも、プログラム・ストレージ手段の範囲に含まれるものとする。
媒体は、電子、磁気、光、電磁、赤外線、または半導体のシステム(あるいは装置またはデバイス)、あるいは伝播媒体とすることができる。コンピュータ読み取り可能媒体の例には、半導体またはソリッド・ステート・メモリ、磁気テープ、取り外し可能コンピュータ・ディスケット、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、剛性磁気ディスク、および光ディスクが含まれる。光ディスクの現行の例には、コンパクト・ディスクB読み取り専用(CD−ROM)、コンパクト・ディスクB読み取り/書き込み(CD−R/W)、およびDVDが含まれる。
プログラム・コードの格納あるいは実行またはその両方に好適なデータ処理システムには、システム・バスを介してメモリ要素に直接または間接的に結合された、少なくとも1つのプロセッサが含まれることになる。メモリ要素は、プログラム・コードの実際の実行中に使用されるローカル・メモリ、大容量ストレージ、および、実行中に大容量ストレージからコードを取り出さなければならない回数を減らすために少なくともいくつかのプログラム・コードの一時ストレージを提供するキャッシュ・メモリを、含むことができる。
入力/出力またはI/Oデバイス(キーボード、ディスプレイ、ポインティング・デバイスなどを含むが、これらに限定されない)を、直接、またはI/Oコントローラの介入を通じて、システムに結合することができる。
ネットワーク・アダプタをシステムに結合して、専用または公衆のネットワークの介入を通じて、他のデータ処理システム、あるいはリモートのプリンタまたはストレージ・デバイスに、データ処理システムを結合できるようにすることもできる。モデム、無線、およびイーサネット(登録商標)のアダプタは、現在使用可能なネットワーク・アダプタ・タイプの一部に過ぎない。
以上、本明細書では、本発明の特定の実施形態について例示の目的で説明してきたが、本発明の範囲を逸脱することなく様々な修正が実行可能であることを理解されよう。とりわけ、本発明は、ソース・ファイル・システムからターゲット・ファイル・システムへのiノード・テーブルの複製に限定されるべきではない。むしろ、本明細書に示されたアルゴリズムは、任意のデータ構造および関連するテーブルの複製を含むように拡張することができる。
従来技術のコンピュータ・システムを示すブロック図である。 ソース・ファイル・システムからの従来技術のiノード・テーブルを示すブロック図である。 図2のソース・ファイル・システムから複製された場合の、ターゲット・ファイル・システムでの従来技術のiノード・テーブルを示すブロック図である。 本発明の好ましい実施形態に従った、ネットワークを横切ってファイル・システムを複製するための第1の方法の第1の部分を示す流れ図である。 本発明の好ましい実施形態に従った、ネットワークを横切ってファイル・システムを複製するための第1の方法の第1の部分を示す流れ図である。 ネットワークを横切ってファイル・システムを複製するための第1の方法の第2の部分を示す流れ図である。 ネットワークを横切ってファイル・システムを複製するための第2の方法の第1の部分を示す流れ図である。 複製プロセスにおける第1の段階での一時iノード・テーブルを示すブロック図である。 ネットワークを横切ってファイル・システムを複製するための第2の方法の第2の部分を示す流れ図である。 複製プロセスにおける第2の段階での一時iノード・テーブルを示すブロック図である。 ネットワークを横切ってファイル・システムを複製するための第2の方法の第3の部分を示す流れ図である。 複製プロセスにおける第3の段階での一時iノード・テーブルを示すブロック図である。 ネットワークを横切ってファイル・システムを複製するための第2の方法の第4の部分を示す流れ図である。 ネットワークを横切ってファイル・システムを複製するための第2の方法の第4の部分を示す流れ図である。 本発明の一実施形態に従ったマネージャの配置を示すコンピュータ・システムを示すブロック図である。

Claims (3)

  1. ファイル・システムを複製するための方法であって、コンピュータ・システムが、
    空の一時的なiノード・テーブルをターゲット・ファイル・システムで作成するステップであって、前記空のiノード・テーブルは、オブションである整数X、第1のデリミッタ、オプションである文字列Y、第2のデリミッタ、及びオプションであるペア・リストを含みiノード番号に関連付けられたデータ・エントリとからなるデータ・セットを記録することができ、前記ペア・リストは、iノード番号を記録する第1のフィールドと、前記第1のフィールドに記録されたiノード番号に関連付けられたサブディレクトリのサブディレクトリ名又は前記第1のフィールドに記録されたiノード番号に関連付けられたコンテンツのコンテンツ名を記録する第2のフィールドとを含む、前記作成するステップと、
    データ構造として編成されたソース・ファイル・システムをiノード順にスキャンするステップであって、
    前記スキャンによって前記ソース・ファイル・システム内のルート・ディレクトリのiノード番号、前記ルート・ディレクトリが有する各サブディレクトリのiノード番号、前記ルート・ディレクトリ中の又は前記各サブディレクトリ中の各コンテンツそれぞれのiノード番号が識別され、当該識別されたiノード番号順に従って、
    前記ルート・ディレクトリの前記識別されたiノード番号、及び前記ルート・ディレクトリの前記識別されたiノード番号に対応する前記データ・エントリとして、第1のデリミッタ、第2のデリミッタ、並びに、前記ルート・ディレクトリが有するサブディレクトリのiノード番号と当該サブディレクトリのサブディレクトリ名とを有する第1のペア・リスト、及び/又は、前記ルート・ディレクトリ中の第1のコンテンツのiノード番号と当該第1のコンテンツの第1のコンテンツ名とを有する第2のペア・リストを前記空の一時的なiノード・テーブルに記録すること、
    前記サブディレクトリの前記識別されたiノード番号、及び前記サブディレクトリの前記識別されたiノード番号に対応する前記データ・エントリとして、第1のデリミッタ、第2のデリミッタ、並びに、前記サブディレクトリ中の第2のコンテンツのiノード番号と当該第2のコンテンツの第2のコンテンツの第2のコンテンツ名とを有する第3のペア・リストを前記一時的なiノード・テーブルにさらに記録すること、
    前記ルート・ディレクトリ中のコンテンツの識別されたiノード番号、及び、当該ルート・ディレクトリ中の前記コンテンツの前記識別されたiノード番号に対応する前記データ・エントリとして、第1のデリミッタ及び第2のデリミッタを前記一時的なiノード・テーブルにさらに記録すること、
    前記サブディレクトリ中のコンテンツの識別されたiノード番号、及び当該サブディレクトリ中の前記コンテンツの前記識別されたiノード番号に対応する前記データ・エントリとして、第1のデリミッタ及び第2のデリミッタを前記一時的なiノード・テーブルにさらに記録すること、
    を実行して、第1のiノード・テーブルを作成するステップを含む、
    前記スキャンするステップと、
    前記第1のiノード・テーブルにおいて前記データ・エントリを更新して、更新されたiノード・テーブル(以下、第2のiノード・テーブルという)を作成するステップであって、
    前記第1のiノード・テーブルにおいて、1つの前記データ・セットがペア・リストを有している場合に、当該ペア・リスト中の第1のフィールドに格納されているiノード番号と同じiノード番号の前記データ・エントリにおいて、整数Xとして前記1つのデータ・セットのiノード番号を割り当て、且つ、文字列Yとして前記1つのデータ・セットのペア・リスト中の第2のフィールドに格納されているサブディレクトリ名又はコンテンツ名を割り当てるステップを含み、前記割り当てるステップは、前記第1のiノード・テーブル中のペア・リストを有するデータ・セットについて繰り返し行われる、
    前記第2のiノード・テーブルを作成するステップと、
    前記第2のiノード・テーブルのiノード番号の前記データ・セットの順序を入れ替えて、当該入れ替えられたiノード・テーブル(以下、第3のiノード・テーブルという)を作成するステップであって、前記第2のiノード・テーブルにおいて、1つの前記データ・セットがペア・リストを有している場合に、当該ペア・リスト中の第1のフィールド中の最小値が当該ペア・リストを有する前記データ・セットのiノード番号よりも小さい場合に、前記ペア・リストを有している前記データ・セットを前記最小値と同じiノード番号の前記データ・セットの直前に移動するステップを含み、前記移動によってiノード番号は変更されない、前記第3のiノード・テーブルを作成するステップと、
    前記ソース・ファイル・システムのコンテンツを前記ターゲット・ファイル・システムにコピーするステップであって、前記第3のiノード・テーブルの入れ替えられた前記データ・セットの順序に従って、
    1つのデータ・セットを選択するステップと、
    前記選択されたデータ・セットがサブディレクトリであることを意図することに応じて、当該iノード番号の前記データ・セット中の整数Xと同じiノード番号を有するディレクトリ下に、当該iノード番号の前記データ・セット中の文字列Yと同じサブディレクトリ名を有するサブディレクトリを作成するステップと、
    前記選択されたデータ・セットがコンテンツであることを意図することに応じて、当該iノード番号の前記データ・セット中の整数Xと同じiノード番号を有するディレクトリ下に、当該iノード番号の前記データ・セット中の文字列Yと同じコンテンツ名を有するコンテンツを、前記ソース・ファイル・システム内のディレクトリから前記ターゲット・ファイル・システム内の対応するディレクトリへとコピーするステップ
    を繰り返すことを含む、前記ソース・ファイル・システムのコンテンツを前記ターゲット・ファイル・システムにコピーするステップと
    を実行することを含む、前記方法。
  2. ファイル・システムを複製するためのコンピュータ・システムであって、
    プロセッサと、
    前記プロセッサに接続されたメモリと
    を備えており、
    前記プロセッサは、
    空の一時的なiノード・テーブルをターゲット・ファイル・システムで作成する操作であって、前記空のiノード・テーブルは、オブションである整数X、第1のデリミッタ、オプションである文字列Y、第2のデリミッタ、及びオプションであるペア・リストを含みiノード番号に関連付けられたデータ・エントリとからなるデータ・セットを記録することができ、前記ペア・リストは、iノード番号を記録する第1のフィールドと、前記第1のフィールドに記録されたiノード番号に関連付けられたサブディレクトリのサブディレクトリ名又は前記第1のフィールドに記録されたiノード番号に関連付けられたコンテンツのコンテンツ名を記録する第2のフィールドとを含む、前記作成する操作と、
    データ構造として編成されたソース・ファイル・システムをiノード順にスキャンする操作であって、
    前記スキャンによって前記ソース・ファイル・システム内のルート・ディレクトリのiノード番号、前記ルート・ディレクトリが有する各サブディレクトリのiノード番号、前記ルート・ディレクトリ中の又は前記各サブディレクトリ中の各コンテンツそれぞれのiノード番号が識別され、当該識別されたiノード番号順に従って、
    前記ルート・ディレクトリの前記識別されたiノード番号、及び前記ルート・ディレクトリの前記識別されたiノード番号に対応する前記データ・エントリとして、第1のデリミッタ、第2のデリミッタ、並びに、前記ルート・ディレクトリが有するサブディレクトリのiノード番号と当該サブディレクトリのサブディレクトリ名とを有する第1のペア・リスト、及び/又は、前記ルート・ディレクトリ中の第1のコンテンツのiノード番号と当該第1のコンテンツの第1のコンテンツ名とを有する第2のペア・リストを前記空の一時的なiノード・テーブルに記録すること、
    前記サブディレクトリの前記識別されたiノード番号、及び前記サブディレクトリの前記識別されたiノード番号に対応する前記データ・エントリとして、第1のデリミッタ、第2のデリミッタ、並びに、前記サブディレクトリ中の第2のコンテンツのiノード番号と当該第2のコンテンツの第2のコンテンツの第2のコンテンツ名とを有する第3のペア・リストを前記一時的なiノード・テーブルにさらに記録すること、
    前記ルート・ディレクトリ中のコンテンツの識別されたiノード番号、及び、当該ルート・ディレクトリ中の前記コンテンツの前記識別されたiノード番号に対応する前記データ・エントリとして、第1のデリミッタ及び第2のデリミッタを前記一時的なiノード・テーブルにさらに記録すること、
    前記サブディレクトリ中のコンテンツの識別されたiノード番号、及び当該サブディレクトリ中の前記コンテンツの前記識別されたiノード番号に対応する前記データ・エントリとして、第1のデリミッタ及び第2のデリミッタを前記一時的なiノード・テーブルにさらに記録すること、
    を実行して、第1のiノード・テーブルを作成する操作を含む、
    前記スキャンする操作と、
    前記第1のiノード・テーブルにおいて前記データ・エントリを更新して、更新されたiノード・テーブル(以下、第2のiノード・テーブルという)を作成する操作であって、
    前記第1のiノード・テーブルにおいて、1つの前記データ・セットがペア・リストを有している場合に、当該ペア・リスト中の第1のフィールドに格納されているiノード番号と同じiノード番号の前記データ・エントリにおいて、整数Xとして前記1つのデータ・セットのiノード番号を割り当て、且つ、文字列Yとして前記1つのデータ・セットのペア・リスト中の第2のフィールドに格納されているサブディレクトリ名又はコンテンツ名を割り当てる操作を含み、前記割り当てる操作は、前記第1のiノード・テーブル中のペア・リストを有するデータ・セットについて繰り返し行われる、
    前記第2のiノード・テーブルを作成す操作と、
    前記第2のiノード・テーブルのiノード番号の前記データ・セットの順序を入れ替えて、当該入れ替えられたiノード・テーブル(以下、第3のiノード・テーブルという)を作成する操作であって、前記第2のiノード・テーブルにおいて、1つの前記データ・セットがペア・リストを有している場合に、当該ペア・リスト中の第1のフィールド中の最小値が当該ペア・リストを有する前記データ・セットのiノード番号よりも小さい場合に、前記ペア・リストを有している前記データ・セットを前記最小値と同じiノード番号の前記データ・セットの直前に移動する操作を含み、前記移動によってiノード番号は変更されない、前記第3のiノード・テーブルを作成する操作と、
    前記ソース・ファイル・システムのコンテンツを前記ターゲット・ファイル・システムにコピーする操作であって、前記第3のiノード・テーブルの入れ替えられた前記データ・セットの順序に従って、
    1つのデータ・セットを選択する操作と、
    前記選択されたデータ・セットがサブディレクトリであることを意図することに応じて、当該iノード番号の前記データ・セット中の整数Xと同じiノード番号を有するディレクトリ下に、当該iノード番号の前記データ・セット中の文字列Yと同じサブディレクトリ名を有するサブディレクトリを作成する操作と、
    前記選択されたデータ・セットがコンテンツであることを意図することに応じて、当該iノード番号の前記データ・セット中の整数Xと同じiノード番号を有するディレクトリ下に、当該iノード番号の前記データ・セット中の文字列Yと同じコンテンツ名を有するコンテンツを、前記ソース・ファイル・システム内のディレクトリから前記ターゲット・ファイル・システム内の対応するディレクトリへとコピーする操作
    を繰り返すことを含む、前記ソース・ファイル・システムのコンテンツを前記ターゲット・ファイル・システムにコピーする操作と
    を含む、操作を実行するように動作可能である、前記コンピュータ・システム。
  3. ファイル・システムを複製するためのコンピュータ・プログラムであって、コンピュータ・システムに、請求項1に記載の方法の各ステップを実行させる、前記コンピュータ・プログラム。
JP2008548967A 2006-01-05 2006-12-20 ノードの番号付けによるファイル・システムのダンプ/復元のための方法、システム、およびデバイス Expired - Fee Related JP5186390B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/325,750 2006-01-05
US11/325,750 US7769719B2 (en) 2006-01-05 2006-01-05 File system dump/restore by node numbering
PCT/EP2006/070022 WO2007077132A2 (en) 2006-01-05 2006-12-20 File system dump/restore by node numbering

Publications (2)

Publication Number Publication Date
JP2009522677A JP2009522677A (ja) 2009-06-11
JP5186390B2 true JP5186390B2 (ja) 2013-04-17

Family

ID=38225909

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008548967A Expired - Fee Related JP5186390B2 (ja) 2006-01-05 2006-12-20 ノードの番号付けによるファイル・システムのダンプ/復元のための方法、システム、およびデバイス

Country Status (5)

Country Link
US (1) US7769719B2 (ja)
EP (1) EP1971939A2 (ja)
JP (1) JP5186390B2 (ja)
CN (1) CN101356527A (ja)
WO (1) WO2007077132A2 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007241539A (ja) * 2006-03-07 2007-09-20 Hitachi Systems & Services Ltd 半導体フラッシュメモリにおけるデータ管理及び制御システムと半導体フラッシュメモリ収容装置
JP4907605B2 (ja) * 2007-06-25 2012-04-04 ヒューレット−パッカード デベロップメント カンパニー エル.ピー. inodeの割り当て及び割り当て解除の方法及びコンピュータプログラム
US8478802B2 (en) * 2007-10-11 2013-07-02 Microsoft Corporation Organization system for distributed items
US8954390B1 (en) * 2009-04-29 2015-02-10 Netapp, Inc. Method and system for replication in storage systems
US8606751B1 (en) * 2009-12-21 2013-12-10 Emc Corporation System and method for backup by inode number
US9037538B2 (en) * 2010-05-13 2015-05-19 Hewlett-Packard Development Company, L.P. File system migration
US8433694B1 (en) * 2011-01-31 2013-04-30 Symantec Corporation File cache optimization using element de-prioritization
US20160041996A1 (en) 2014-08-11 2016-02-11 Netapp, Inc. System and method for developing and implementing a migration plan for migrating a file system
US10860529B2 (en) * 2014-08-11 2020-12-08 Netapp Inc. System and method for planning and configuring a file system migration
US9361187B2 (en) * 2013-11-04 2016-06-07 Quantum Corporation File system metadata capture and restore
US20150242284A1 (en) * 2014-02-25 2015-08-27 Ca, Inc. Two-algorithm sort during backup and recovery
US10713215B2 (en) * 2015-11-13 2020-07-14 International Business Machines Corporation Allocating non-conflicting inode numbers
CN109857302B (zh) * 2019-01-29 2020-01-21 掌阅科技股份有限公司 电子书信息的修复方法、电子设备及计算机存储介质

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4371754A (en) * 1980-11-19 1983-02-01 Rockwell International Corporation Automatic fault recovery system for a multiple processor telecommunications switching control
US5151989A (en) * 1987-02-13 1992-09-29 International Business Machines Corporation Directory cache management in a distributed data processing system
JP2827495B2 (ja) * 1990-10-22 1998-11-25 松下電器産業株式会社 情報媒体の記録方法、情報再生方法および情報再生装置
EP0528617B1 (en) * 1991-08-19 1999-12-22 Sun Microsystems, Inc. Method and apparatus for change control in multiple development environments.
US5734886A (en) * 1994-11-16 1998-03-31 Lucent Technologies Inc. Database dependency resolution method and system for identifying related data files
US5513314A (en) * 1995-01-27 1996-04-30 Auspex Systems, Inc. Fault tolerant NFS server system and mirroring protocol
US5757669A (en) 1995-05-31 1998-05-26 Netscape Communications Corporation Method and apparatus for workgroup information replication
JP3335801B2 (ja) * 1995-07-05 2002-10-21 株式会社日立製作所 異種ファイルへのアクセスを可能とする情報処理システム及びその制御方法
US5765173A (en) * 1996-01-11 1998-06-09 Connected Corporation High performance backup via selective file saving which can perform incremental backups and exclude files and uses a changed block signature list
US6412017B1 (en) * 1996-07-01 2002-06-25 Microsoft Corporation Urgent replication facility
US5812773A (en) * 1996-07-12 1998-09-22 Microsoft Corporation System and method for the distribution of hierarchically structured data
JPH11154110A (ja) * 1997-11-20 1999-06-08 Nippon Telegr & Teleph Corp <Ntt> ミラーサーバの同期方法
US6366987B1 (en) * 1998-08-13 2002-04-02 Emc Corporation Computer data storage physical backup and logical restore
US6415300B1 (en) * 1999-07-06 2002-07-02 Syncsort Incorporated Method of performing a high-performance backup which gains efficiency by reading input file blocks sequentially
US7756818B1 (en) * 1999-07-07 2010-07-13 Computer Associates Think, Inc. Database table recovery system
JP2000082003A (ja) * 1999-09-10 2000-03-21 Hitachi Ltd 異種ファイルへのアクセスを可能とする情報処理システム及びその制御方法
US6496944B1 (en) * 1999-10-06 2002-12-17 International Business Machines Corporation Method for database assisted file system restore
US6460055B1 (en) * 1999-12-16 2002-10-01 Livevault Corporation Systems and methods for backing up data files
DE60123442D1 (de) 2000-08-31 2006-11-09 Ontrack Data Internat Inc System und verfahren für datenverwaltung
JP2004519047A (ja) * 2001-02-15 2004-06-24 スフィッス メール インコーポレーテッド 電子メール・メッセージ・システム
JP4175789B2 (ja) 2001-07-05 2008-11-05 株式会社日立製作所 記憶装置のファイルレベルリモートコピー方法
JP4168626B2 (ja) * 2001-12-06 2008-10-22 株式会社日立製作所 記憶装置間のファイル移行方法
US6993539B2 (en) 2002-03-19 2006-01-31 Network Appliance, Inc. System and method for determining changes in two snapshots and for transmitting changes to destination snapshot
US7225204B2 (en) * 2002-03-19 2007-05-29 Network Appliance, Inc. System and method for asynchronous mirroring of snapshots at a destination using a purgatory directory and inode mapping
US7185031B2 (en) * 2002-03-25 2007-02-27 Quantum Corporation Creating a backup volume using a data profile of a host volume
JP2004334650A (ja) * 2003-05-09 2004-11-25 Fujitsu Ltd バックアップ方法、リストア方法及びプログラム
US7761421B2 (en) * 2003-05-16 2010-07-20 Hewlett-Packard Development Company, L.P. Read, write, and recovery operations for replicated data
US7234077B2 (en) * 2003-06-24 2007-06-19 International Business Machines Corporation Rapid restoration of file system usage in very large file systems
US7092976B2 (en) * 2003-06-24 2006-08-15 International Business Machines Corporation Parallel high speed backup for a storage area network (SAN) file system
US7284104B1 (en) * 2003-06-30 2007-10-16 Veritas Operating Corporation Volume-based incremental backup and recovery of files
US7143251B1 (en) * 2003-06-30 2006-11-28 Data Domain, Inc. Data storage using identifiers
US7047380B2 (en) * 2003-07-22 2006-05-16 Acronis Inc. System and method for using file system snapshots for online data backup
US7398285B2 (en) 2003-07-30 2008-07-08 International Business Machines Corporation Apparatus and system for asynchronous replication of a hierarchically-indexed data store
US7054960B1 (en) * 2003-11-18 2006-05-30 Veritas Operating Corporation System and method for identifying block-level write operations to be transferred to a secondary site during replication
JP2005284980A (ja) * 2004-03-30 2005-10-13 Toshiba Solutions Corp 2重化システム及びリモートディスクミラーリングの初期化処理方法
JP4159506B2 (ja) * 2004-04-28 2008-10-01 Necソフトウェア東北株式会社 階層記憶装置、その復旧方法、及び復旧プログラム
US7284150B2 (en) * 2004-09-22 2007-10-16 International Business Machines Corporation System and method for reliably storing data and providing efficient incremental backup and asynchronous mirroring by preferentially handling new data

Also Published As

Publication number Publication date
EP1971939A2 (en) 2008-09-24
JP2009522677A (ja) 2009-06-11
US20070156791A1 (en) 2007-07-05
CN101356527A (zh) 2009-01-28
WO2007077132A2 (en) 2007-07-12
WO2007077132A3 (en) 2007-11-29
US7769719B2 (en) 2010-08-03

Similar Documents

Publication Publication Date Title
JP5186390B2 (ja) ノードの番号付けによるファイル・システムのダンプ/復元のための方法、システム、およびデバイス
US7117294B1 (en) Method and system for archiving and compacting data in a data storage array
JP4414381B2 (ja) ファイル管理プログラム、ファイル管理装置、ファイル管理方法
US9646030B2 (en) Computer-readable medium storing program and version control method
US7640406B1 (en) Detecting and managing orphan files between primary and secondary data stores for content addressed storage
US6484181B2 (en) Method and system for handling foreign key update in an object-oriented database environment
US7752226B1 (en) Reverse pathname lookup by inode identifier
US8103621B2 (en) HSM two-way orphan reconciliation for extremely large file systems
US8756196B2 (en) Propagating tables while preserving cyclic foreign key relationships
US20080040388A1 (en) Methods and systems for tracking document lineage
US8521711B2 (en) Providing persistent refined intermediate results selected from dynamic iterative filtering
CN107003935A (zh) 优化数据库去重
US20130159258A1 (en) Data set index record preservation
JP4304194B2 (ja) ファイルシステム管理装置及び方法
US11847028B2 (en) Efficient export of snapshot changes in a storage system
CN110888837B (zh) 对象存储小文件归并方法及装置
US9824104B2 (en) System and method for content storage
JP2004348744A (ja) テーブルに対して行われる変更を識別する識別方法及びそのシステム
JP2003323326A (ja) 情報管理装置
JP2007287147A (ja) 高速ファイル属性検索
US20220222146A1 (en) Versioned backup on an object addressable storage system
JPH07319897A (ja) 情報処理方法及び装置
CN1193307C (zh) 修改数据库内容的方法
JPH0844609A (ja) データバックアップ方法
JPH039426A (ja) ソフトウェア開発環境保管システム

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090318

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090924

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111213

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20120222

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120222

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20120222

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20120223

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120803

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20121012

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121012

TRDD Decision of grant or rejection written
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20130104

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20130104

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130104

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130121

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160125

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees