JP5732536B2 - 重複排除に基づくストレージシステムにおけるスケーラブル参照管理のためのシステム、方法及び非一時的なコンピュータ可読ストレージ媒体 - Google Patents

重複排除に基づくストレージシステムにおけるスケーラブル参照管理のためのシステム、方法及び非一時的なコンピュータ可読ストレージ媒体 Download PDF

Info

Publication number
JP5732536B2
JP5732536B2 JP2013527295A JP2013527295A JP5732536B2 JP 5732536 B2 JP5732536 B2 JP 5732536B2 JP 2013527295 A JP2013527295 A JP 2013527295A JP 2013527295 A JP2013527295 A JP 2013527295A JP 5732536 B2 JP5732536 B2 JP 5732536B2
Authority
JP
Japan
Prior art keywords
reference list
storage
container
file
files
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.)
Active
Application number
JP2013527295A
Other languages
English (en)
Other versions
JP2013541083A (ja
JP2013541083A5 (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.)
NortonLifeLock Inc
Original Assignee
Symantec 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 Symantec Corp filed Critical Symantec Corp
Publication of JP2013541083A publication Critical patent/JP2013541083A/ja
Publication of JP2013541083A5 publication Critical patent/JP2013541083A5/ja
Application granted granted Critical
Publication of JP5732536B2 publication Critical patent/JP5732536B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/17Details of further file system functions
    • G06F16/1727Details of free space management performed by the file system
    • 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/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1748De-duplication implemented within the file system, e.g. based on file segments
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1453Management of the data involved in backup or backup restore using de-duplication of the data
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques

Landscapes

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

Description

本発明は、一般的に、バックアップストレージシステムに関し、特に、重複排除に基づくストレージシステムにおけるリソース再利用の促進に使用される参照リストに関する。
組織は、膨大な量の電子データの蓄積及び保存を行っている。その結果、バックアップストレージシステムは、サイズが増大し、大量のリソースを消費している。増加の一途をたどる量のデータ保存に対処するために、重複排除は、バックアップストレージシステムにおいてストレージの利用を最大限に高めるための重要な特性となっている。一般的な重複排除システムにおいては、ファイルは、データセグメントに分割され、冗長データセグメントは、システムから削除される。その後、一つしか存在しないデータセグメントが、セグメントオブジェクトとしてバックアップストレージ媒体に保存される。保存されたセグメントオブジェクトの数が増加するにつれ、セグメントオブジェクトの管理は、システムリソースの占有率の増加を必要とし、これは、重複排除システムの全体的な効率及び性能に影響を与え得る。
重複排除に基づくシステムは、大量のデータを保存するために必要とされるストレージ容量の量を減少させることを目的としている。重複排除技術は、保存データ量の大幅な減少を達成できるところまで成熟化している。しかしながら、このような技術が必要とされる記憶空間を縮小し得る一方で、システムに保存されるセグメントオブジェクトの数は、それでもやはり増加し続ける場合がある。より高いデータ負荷に対処するために重複排除システムが拡大するので、セグメントオブジェクトの管理及びインデックス作成は、システムの性能に影響を与える重要な要因となり得る。
一般的に、セグメントオブジェクトは、サイズが小さく、一部のシステムでは、4キロバイト(KB)ほどの大きさしかない。400テラバイト(TB)のデータを保存するシステムの場合、全てのセグメントオブジェクトが4KBのサイズであるとすると、1000億のセグメントオブジェクトが維持される。ストレージ要求が増大するにつれ、セグメントオブジェクト数の増加は、受け入れられない管理オーバーヘッドを生じさせる場合がある。従って、大量のセグメントオブジェクトを効率的に保存及び管理するためには、高度にスケーラブルな管理システムが必要とされる。
特に困難な問題は、ファイルがシステムから削除された後のリソースの再利用に関する。ファイルが削除される際、このファイルを構成するセグメントオブジェクトは、システムが保存する他のファイルが、これらと同じセグメントオブジェクトの内の1つ又は複数を参照する可能性があるので、単純に削除することはできない。これらのセグメントオブジェクトを使用するファイルが他に存在しない場合にだけ、それらを削除することができる。セグメントオブジェクト及びセグメントオブジェクトを使用する全てのファイルの記録をとるために、何らかの管理形式が必要となる。セグメントオブジェクト及びそれらを指し示すファイルを管理するために使用される様々な技術が存在し、それらの大部分は、小規模で行われる場合には、ある程度上手く機能し得る。しかしながら、これらの手法の多くは、多数のセグメントオブジェクトを扱う場合には、効率的ではない場合がある。
リソースの再利用を促進するために使用される技術の1つは、セグメントオブジェクトのリファレンスカウントである。リファレンスカウントは、何個のファイルがそのセグメントを指し示す、又は使用するかを示す値を保存する。所与のセグメントオブジェクトのリファレンスカウントは、ファイルによってそれが使用される度にインクリメントし、そのセグメントを用いるファイルが削除されるとデクリメントする、すなわち、最終的に、カウントがゼロまで低下すると、そのセグメントは再利用され得る。
リファレンスカウントは、重複排除には不向きとなる幾つかの制限を有する。制限の1つは、更新が失われる、又は繰り返されると、カウントが不正確に変更されることである。カウントが誤って減少すると、セグメントは、少なくとも1つのファイルによってまだ使用中である間に削除される場合がある。カウントが誤って増加すると、そのセグメントは、それを使用するファイルの全てがシステムから削除された後であっても、決して削除されない場合がある。
リファレンスカウントのさらなる欠点は、どのファイルが特定のセグメントオブジェクトを使用するかの識別が可能ではない点である。所与のセグメントオブジェクトが破損した場合、バックアップシステムは、破損したデータを復元するためにファイルを要求できるように、どのファイルがそれを使用しているかを知る必要がある。しかしながら、リファレンスカウントは、どのファイルが各特定のセグメントオブジェクトを使用しているかのリストを維持しないので、破損データの復元がより困難となる。
リソースの再利用を促進するために使用可能な別のツールは、参照リストである。参照リストの維持は、リファレンスカウント固有の欠点に悩まされることはない。参照リストは、追加又は除去操作が既に行われたかどうかを確かめるためにリストが検索され得るので、間違った更新に対してより大きな免疫を有し得る。また、参照リストは、どのファイルが各セグメントオブジェクトを使用しているかを識別する機能を有する。しかしながら、参照リストは、多数のセグメントオブジェクトを扱うために、容易にスケーラブルとなるものではない。従来、参照リストは、保存される各セグメントオブジェクトに応じて、細かいレベルで管理される。セグメントオブジェクトの数が増加するにつれて、参照リストの更新は、より長い時間がかかり、それによって、システムの性能が鈍くなる場合がある。必要なのは、多数のセグメントオブジェクトを効率的に管理できる参照リストを維持するための新しい方法である。
上記を鑑みて、重複排除システムにおいて参照リストを管理するための改良された方法及び機構が望まれる。
重複排除に基づくストレージシステムにおいて参照リストを効率的に管理するための方法及び機構の様々な実施形態が検討される。ある実施形態では、参照リストは、バックアップストレージ媒体に保存されたコンテナごとに、粗いレベルのエントリで構成されてもよい。ある特定のコンテナ内に保存された少なくとも1つのセグメントオブジェクトで構成されている各ファイルは、参照リスト中に、その特定のコンテナに関するエントリを有し得る。ファイルが重複排除に基づくストレージシステムに追加される、又は重複排除に基づくストレージシステムから削除される際に、エントリが参照リストに追加される、又は参照リストから削除されてもよい。別の実施形態では、参照リストは、コンテナに関する粗いレベルのエントリ、及びコンテナ内に保存されたセグメントオブジェクトに関する細かいレベルのエントリから構成されてもよい。参照リストは、ストレージシステムからのファイルの削除の結果、セグメントオブジェクトエントリの更新を行うことなくコンテナエントリが更新され得るような粗いレベルで管理されてもよい。ある特定のコンテナに関する粗いレベルのエントリの数が減少するにつれ、最終的には、その数が閾値を下回り、この時点で、サーバは、この特定のコンテナに関するリストの管理を細かいレベルに切り替えてもよい。細かいレベルでの参照リストの管理は、ファイルがシステムから削除される度に、セグメントオブジェクトエントリの更新を伴い得る。
さらなる実施形態では、参照リストは、各エントリをファイルに関連付ける代わりに、各エントリをバックアップトランザクションと関連付けてもよい。バックアップトランザクションは、1つのバックアップ操作に関して重複排除に基づくストレージシステムへと単一のクライアントによって送信された全てのファイルを含み得る。参照リストは、バックアップストレージ媒体に保存された各コンテナに関する粗いレベルのエントリから構成され得る。ある特定のコンテナ内に保存された少なくとも1つのセグメントオブジェクトから構成されている各バックアップトランザクションは、その特定のコンテナに関するエントリを参照リスト中に有し得る。またさらなる実施形態では、参照リストは、バックアップトランザクションが参照する各コンテナに関する粗いレベルのエントリと、バックアップトランザクションが参照する各セグメントオブジェクトに関する細かいレベルのエントリとを有していてもよい。参照リストは、ある特定のコンテナに関する粗いレベルのエントリの数が閾値を下回るまでは、粗いレベルでのみ更新され、閾値を下回った時点で、サーバは、その特定のコンテナに関する細かいレベルでのリスト管理へと切り替えてもよい。バックアップトランザクションに応じて参照リストを編成することにより、リスト内のエントリの量がさらに減少し、バックアップトランザクションのシステムへの追加又はシステムからの削除に応答してリストを処理するために必要な処理時間が減少し得る。
これら及び他の特徴や利点は、本明細書に提示される手法の以下の詳細な説明を考慮すれば、当業者には明らかとなるであろう。
これらの方法及び機構の上記及びさらなる利点は、添付の図面と併せて以下の記載を参照することによって、より深く理解することができる。
重複排除に基づくストレージシステムの一実施形態を示す。 バックアップストレージのコンテナ内にセグメントオブジェクトとして保存されているバックアップトランザクションの一実施形態を示す。 ファイル及び関連のセグメントオブジェクトの参照の一実施形態を示す。 セグメントオブジェクトを保存するコンテナと、コンテナ参照リストの2つの実施形態を示す。 粗い及び細かいレベルのエントリを有するファイル指向の参照リストの一実施形態を示す。 ストレージコンテナ参照リストを維持する方法の一実施形態を示す。 第1の削除操作後の参照リストの一実施形態を示す。 第2の削除操作後の参照リストの一実施形態を示す。 バックアップトランザクションのエントリを有するバックアップ指向の参照リストの一実施形態を示す。 ファイルの追加又は削除操作に続いて参照リストを更新する方法の一実施形態を示す一般化フロー図である。 参照リストを更新する方法の一実施形態を示す一般化フロー図である。
以下の説明では、本明細書に提示する方法及び機構の十分な理解を提供するために、多数の具体的詳細を記載する。しかしながら、これらの具体的詳細を用いることなく様々な実施形態を実施してもよいことを当業者は理解するべきである。場合によっては、周知の構造、構成要素、信号、コンピュータプログラム命令、及び技術は、本明細書に記載される手法を分かりにくくすることを避けるために、詳細に示されていない。
図示を単純化及び明瞭にするために、図面に示される要素は、必ずしも一定の縮尺で描かれていないことは明らかである。例えば、一部の要素の寸法は、他の要素と比較して誇張されている場合がある。さらに、適切であると考えられる場合には、対応する要素を示すために、図面間で参照符号を繰り返している。
図1は、重複排除に基づくストレージシステム100の一実施形態を示す。重複排除に基づくストレージシステム100は、任意の数の移動又は固定クライアントを表すクライアント110、120、及び130を含む。この図は、クライアントとして、2つのデスクトップコンピュータと、1つのラップトップコンピュータとの例を示すが、携帯情報端末、携帯電話、スマートフォン、デジタルカメラ、ビデオカメラ、ワイヤレス書籍端末、及びデータの送受信が可能な他の種類の電子デバイスを含む他のクライアントデバイスが可能であり、検討される。図1に示されるように、クライアントは、それを介して重複排除サーバ150にも接続されるネットワーク140に接続される。重複排除サーバ150は、クライアント110、120、及び130に共有データへのアクセスを提供すること、及び必要不可欠なデータをバックアップすること等の様々な異なる目的のために使用され得る。
一般的に、重複排除サーバ150は、どのような種類の物理的コンピュータ又は計算装置でもよい。重複排除サーバ150は、1つ又は複数の中央処理装置(CPU)、システムメモリ(ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、フラッシュRAM等)、入出力(I/O)装置、ハードディスク等の永続的なストレージデバイス、及びコンピュータに一般的に含まれる他の周辺機器等の、サーバ150の主要サブシステム又は構成要素を相互接続することができるバスを包含していてもよい。重複排除サーバ150は、分散型アーキテクチャを有していてもよく、あるいは、その構成要素の全てが単一の装置に統合されていてもよい。重複排除サーバ150は、ソフトウェアの処理及びアプリケーションを実行するオペレーティングシステムをホストしてもよく、ソフトウェアは、サーバの1つ又は複数のCPUで実行され、サーバのメモリに保存されてもよい。また、重複排除に基づくストレージシステム100は、1つ又は複数の重複排除サーバ150を含んでいてもよい。
重複排除サーバ150は、クライアント110、120、及び130からのデータが保存され得るバックアップストレージ160にも接続され得る。バックアップストレージ160は、ハードディスクドライブ、光学式ドライブ、磁気テープドライブ、リムーバブルディスクドライブ等の様々な種類の1つ又は複数のデータストレージデバイスを含み得る。バックアップストレージ160は、参照リスト170を保存してもよく、参照リスト170は、重複排除サーバ150によって管理されてもよい。別の実施形態では、参照リスト170は、重複排除サーバ150のメモリに保存されてもよい。さらなる実施形態では、参照リスト170は、重複排除サーバ150以外のエンティティによって管理及び保存されてもよい。参照リスト170は、バックアップストレージ160に保存されたセグメントオブジェクトの各々を、クライアント110、120、及び130からの何個のファイル又はバックアップトランザクションが使用しているかを重複排除サーバ150が記録するための方法を提供することができる。
ある実施形態では、参照リスト170は、バックアップストレージ160に保存されたコンテナに関する粗いレベルのエントリを包含し得る。コンテナは、データストレージの多数の割り当てられたユニットを含むファイルシステムの可変サイズ部分に関連する論理エンティティであり得る。また、コンテナは、バックアップストレージ媒体における物理的位置にマッピングされ得る。バックアップストレージ媒体内の各々のコンテナごとに、参照リスト170は、その特定のコンテナ内に保存された複数のセグメントオブジェクトの内の1つ又は複数を参照する各別個のファイルに関する異なる粗いレベルのエントリを含み得る。従って、あるコンテナは、そのコンテナ内の少なくとも1つのセグメントオブジェクトを参照する別個のファイルの数に等しい、多数の粗いレベルのエントリを有し得る。別の実施形態では、参照リストは、コンテナ内に保存されたセグメントオブジェクトに関する細かいレベルのエントリも包含し得る。コンテナ内に保存された各々のセグメントオブジェクトごとに、参照リストは、その特定のセグメントオブジェクトを参照する各ファイルに関する細かいレベルのエントリを包含し得る。従って、セグメントオブジェクトは、そのセグメントオブジェクトを参照する別個のファイルの数に等しい、多数の細かいレベルのエントリを参照リスト内に有し得る。
ネットワーク140に接続されたクライアントの1つ又は複数は、他のクライアントのサーバとしても機能し得る。本明細書に記載する手法は、Ethernetネットワーク、Fiber Distributed Data Interface(FDDI)ネットワーク、トークンリングネットワーク、及び電気電子技術者協会(Institute of Electrical and Electronics Engineers)(IEEE)の802.11基準(Wi−Fi)に基づくワイヤレス・ローカル・エリア・ネットワーク(WLAN)等のローカル・エリア・ネットワーク(LAN)、及びインターネット、セルラーデータネットワーク、及び他のデータ通信ネットワーク等の広域ネットワーク(WAN)の組み合わせを含む様々なネットワークにおいて利用することができる。本明細書に記載の手法に使用されるネットワークは、特定のネットワーク各々の固有のストレージ及びバックアップ要求次第で、複数のバックアップストレージ媒体160を含んでいてもよい。バックアップストレージ160に関連するストレージ媒体は、限定されることはないが、ネットワーク接続ストレージ環境、ストレージ・エリア・ネットワーク(SAN)、及び重複排除サーバ150に直接接続されるディスクアセンブリを含む様々なストレージアーキテクチャに応じて実現され得る。
クライアント110、120、及び130は、ネットワーク140上でデータを重複排除サーバ150へと送信することができる。データは、クライアント110、120、及び130に保存されたデータを1つ又は複数の所定サイズの断片へと分割することによって作成されたデータセグメントの形式で送信されてもよい。様々な実施形態において、クライアントは、バックアップ操作において支援を行うソフトウェアを含み得る(例えば、バックアップエージェント)。一部の実施形態では、重複排除サーバ150は、受信データの重複排除を行ってもよい。一般的に、重複排除は、受信したデータセグメントが既にバックアップストレージ160に保存されているかの決定を伴う。データセグメントがバックアップストレージ160に既に保存されている場合には、受信したデータセグメントを破棄し、その場所に、保存済みデータセグメント(セグメントオブジェクトとも呼ばれる)に対するポインタを使用してもよい。このように、重複排除サーバ150は、バックアップストレージ160内に、どのようなセグメントオブジェクトも単一のコピーのみを維持しようとしてもよい。他の実施形態では、新しいデータセグメントのみが重複排除サーバ150に送信され、全ての冗長データセグメントがクライアント110、120、及び130において削除され得るように、重複排除プロセスは、データセグメントが重複排除サーバ150に送信される前に行ってもよい。重複排除に基づくストレージシステム100は、クライアント及びサーバを含むものとして示されているが、代替の実施形態では、クライアント及びサーバによって行われる機能は、ピアツーピア構成におけるピア、あるいは、クライアント、サーバ、及びピアの組み合わせによって行われてもよい。
他の実施形態では、データは、完全なデータファイルとして、イメージファイル又はボリュームからコピーした複数のデータファイルとして、バーチャル・マシン・ディスク・ファイル(VMDK)として、バーチャル・ハード・ディスク(VHD)として、SYMANTEC(登録商標)のBackupExecソフトウェア製品によって作成されたディスクイメージファイル(.V2I)として、データファイルをローディスクパーティションとして保存するためのVMDKファイルをさらに含む.TARアーカイブファイルとして、又は、それ以外にクライアント110、120、及び130によってフォーマットされ得るように、クライアント110、120、及び130から重複排除サーバ150へと送信されてもよい。
これより図2を参照すると、重複排除に基づくストレージシステムが示されている。クライアント110は、ネットワーク140を介して、重複排除サーバ150に接続される。重複排除サーバ150は、参照リスト170およびクライアント110からのデータをセグメントオブジェクト231〜239として論理データストレージコンテナ210内に保存するバックアップストレージ160に接続される。1つのコンテナ内には、どのような数のセグメントオブジェクトも保存することができる。さらに、セグメントオブジェクト231〜239は、様々なサイズを有していてもよい。別の実施形態では、セグメントオブジェクト231〜239は、同じサイズのものでもよい。
クライアント110は、クライアント110がバックアップストレージ160に保存されるように重複排除サーバ150に送信し得る、単一のバックアップトランザクション250を構成するファイル241〜244のグループを有する。ファイル241〜244は、クライアント110から重複排除サーバ150への送信前、又は後に、様々なサイズのデータセグメントへと分割されてもよい。また、データセグメントは、クライアント110によって、又は重複排除サーバ150によって重複排除されてもよい。ある実施形態では、バックアップトランザクション250は、単一のバックアップ操作において単一のクライアントによってバックアップされた全てのファイルを含み得る。別の実施形態では、バックアップトランザクション250は、単一のクライアントから、又は複数のクライアントからの複数のファイルを含み得る。さらなる実施形態では、バックアップトランザクション250は、少なくとも部分的に複数のファイルによって参照されるセグメントオブジェクトの近接性に基づいて一緒にグループ化された複数のファイルをバックアップストレージ媒体160内に含み得る。バックアップトランザクションへのファイルの他のグループ化が可能であり、検討される。
重複排除サーバ150は、バックアップトランザクション250から作成された重複排除済みデータセグメントをバックアップストレージ160内にセグメントオブジェクト231〜239として保存することができる。重複排除サーバ150は、セグメントオブジェクト231〜239を保存するためのコンテナ210を作成することができる。重複排除サーバ150は、バックアップストレージ160内に追加のコンテナを作成することもできる。ある実施形態では、コンテナは全て同じサイズでもよい。別の実施形態では、コンテナは、可変サイズのものでもよい。
これより図3を参照すると、ファイルグループ260及び関連のセグメントオブジェクトの参照270が示されている。ファイル241〜244は、ボックス260内のセグメントオブジェクト231〜239から再構築したように示されている。(図2の)クライアント110からのファイル241〜244は、データセグメントに分割され、その後、データセグメントは、(図2の)バックアップストレージ160内にセグメントオブジェクト231〜239として保存され得る。セグメントオブジェクト231〜239の各々は、2つ以上のファイルによって参照される場合がある。
図示された例では、ファイル241は、5つのセグメントオブジェクト:231、234、235、236、及び237を含む、又はそれらから再構築され得る。ファイル242は、7つのセグメントオブジェクト:231、233、234、236、237、238、及び239から再構築され得る。ファイル243は、6つのセグメントオブジェクト:231、232、234、235、237、及び238から再構築され得る。ファイル244は、4つのセグメントオブジェクト:231、232、233、及び234から再構築され得る。セグメントオブジェクトのほとんどは、4つのファイル241〜244によって2回以上参照されるが、各セグメントオブジェクトの1つのコピーのみが、バックアップストレージ160において、(図2の)コンテナ210内に保存され、それによって、4つのファイル241〜244を保存するために必要とされる総ストレージ容量が減少する。
図3にはセグメントオブジェクトの参照270も示されており、セグメントオブジェクト231〜239の各々は、そのセグメントオブジェクトを参照する関連のファイルリストを有する。参照リスト270に関して多数の可能な実施形態が考えられる。例えば、ある実施形態では、ファイルのリンクリストを各セグメントオブジェクトの識別子と関連付けてもよい。Bツリー構造又はその他の方法を使用して、リスト270の保存及び維持を行ってもよい。このような多数の実施形態が可能であり、検討される。ある実施形態では、あるファイルが削除されると、削除されたファイルを識別するエントリ/エンティティを除去するために、セグメントオブジェクトの識別子231〜239のトラバースが行われ得る。理解され得るように、1つ又は複数のデータ構造270を完全に更新するためには、多くのエントリのトラバースを行う必要がある場合がある。一般的に言えば、このような削除に関連するオーバーヘッドは比較的高い。以下の説明では、代替の手法を説明する。
これより図4を参照すると、セグメントオブジェクト231〜239を包含するコンテナ210がボックス280内に示されている。一般的に言えば、システム内に保存された全てのセグメントオブジェクトは、コンテナ内に論理的に保存することができる。図示した単純な例では、コンテナ210は、6つのセグメントオブジェクトを含む。しかしながら、コンテナは、どのような数のセグメントオブジェクト、すなわち、数百、数千、又はそれ以上をも含むように構成することができる。その結果、コンテナの数は、セグメントオブジェクトの数の何分の1かである。上記に加えて、(図2の)コンテナ210のコンテナ参照リスト170の2つの実施形態をボックス290内に示す。第1の実施形態は、リンクリストとして示されており、第2の実施形態は、テーブルとして示されている。
コンテナ参照リストは、コンテナ内のセグメントオブジェクトを参照する各ファイルを識別する。コンテナ参照リスト170の第1の実施形態は、ファイル241〜244に関連するコンテナ参照210として描かれ、各ファイルは、コンテナ内に保存された少なくとも1つのセグメントオブジェクトを参照する。上記のセグメントオブジェクト参照リストと同様に、コンテナ参照リストを維持するために、任意の適切なデータ構造を利用することができる。図示した第1の実施形態では、コンテナ識別子210がコンテナ210内のセグメントオブジェクトを参照するファイル識別子のリンクリストを有するリンクリスト型構造が描かれている。前述同様に、Bツリー、二重連結リスト、及び他のデータ構造を利用してもよい。「コンテナ」及び「ファイル」のヘッダを有するコンテナ参照リスト170は、コンテナ210に関する粗いレベルのエントリを含む。このコンテナ参照リスト170は、例示目的でのみ提示されるものであり、本明細書に記載の方法及び機構に従って、コンテナ参照リストを実現する他の方法を利用してもよい。本明細書に記載の参照リストが1つ又は複数のリスト又は構造として維持され得ることにも留意されたい。複数のリストが維持される場合には、与えられたリストは、特定のデータセット、特定のデータタイプ、データのユーザ、特定のバックアップ等に関連付けられ得る。
リンク型構造に加えて、より配列指向型の構造を利用し得る。例えば、ある実施形態では、動的に配置可能なn次元配列を利用し得る。図4の例では、ファイル241〜244の各々のエントリを有する、コンテナ210に関する2次元配列が示されている。この様に、コンテナ210に保存されたセグメントオブジェクトの少なくとも1つを参照する各ファイルの粗いレベルのエントリが参照リスト170に存在する。4つのファイル241〜244がコンテナ210に保存されたセグメントオブジェクトを参照する。その結果、参照リストにおいて、コンテナ210に関する4つの粗いレベルのエントリが、コンテナ内に保存されたセグメントオブジェクトを参照するファイルの各々に対して1つずつ、存在する。
上述の通り、上記のようなコンテナ参照リストは、ストレージシステムにおけるセグメントオブジェクト参照リストのエントリのほんの一部を有する。このようなコンテナ参照ストレージリストを利用して、ずっと少ないオーバーヘッドで参照リストを維持する方法をこれより説明する。図5は、「ファイル指向の」コンテナ参照リストを維持する方法の概要の一実施形態を示す。コンテナリストは、コンテナ内の少なくとも1つのオブジェクトを参照するファイルのリストを各コンテナが有するので、ファイル指向であると言われる。既に述べたように、セグメントオブジェクト参照リストのトラバース及び維持は、比較的大量のオーバーヘッドを伴い得る。特にファイルを削除する際には、セグメントオブジェクト参照リストのトラバース及び更新は、比較的時間がかかり得る。このような手法の代替手段として、以下の方法は、セグメントオブジェクト参照がしばしば無視される手法を説明する。この様にして、このようなリストの維持に関連するオーバーヘッドが低減される。
図5の方法は、ファイル操作の検出から始まる(ブロック510)。その操作がファイル削除操作でなければ(決定ブロック515)、ファイルを分割し、システム内に既に保存された一致するオブジェクトの検索を行ってもよく(ブロック540)、これは、重複排除ストレージシステムにおける場合などであり得る。既に保存された一致するセグメントオブジェクトが存在する場合(決定ブロック545)、そのファイルの識別が、一致するセグメントオブジェクトを含むコンテナのコンテナ参照リストに加えられ(ブロック565)、処理を行うべき残りのファイルのデータセグメントが存在する場合(決定ブロック570)には、プロセスを繰り返してもよい。一方、既に保存された一致するセグメントオブジェクトが存在しない場合(決定ブロック545)、データは新しいセグメントオブジェクトとしてシステムに保存され、新しいセグメントオブジェクトを含むコンテナに関して、ファイルの識別を含むようにコンテナ参照リストを更新してもよい(ブロック550)。
検出されたファイル操作がファイル削除操作であることが判明すると(決定ブロック515)、ファイルの識別がコンテナ参照リストから除去される(ブロック530)。ある実施形態では、この時、セグメントオブジェクト参照リストは更新又は維持されないことに留意されたい。正しくは、削除されたファイルを反映するためにコンテナ参照リストのみが更新される。システム内ではセグメントオブジェクトと比較してコンテナがずっと少ないので、コンテナ参照リストは、セグメントオブジェクト参照リストのエントリの何分の1かを含み、コンテナ参照リストの更新に関連するオーバーヘッドは、セグメントオブジェクトリストのものと比較してずっと少ない。以下の説明では、コンテナ及びセグメントオブジェクト参照リストの維持を示す幾つかの例を示す。説明を簡単にするために、この例は、リスト及びエントリを配列形式で示す。しかしながら、上述のように、実際の実施は、リンク構造、ツリー構造、又はその他の方法のものでもよい。さらに、説明では、単一のリストの一部として、粗いエントリ及び細かいエントリを説明する場合があるが、実際には維持される複数のリストが存在し得ることを理解されたい。
これより図6を参照すると、粗い及び細かいレベルのエントリを持つ(図2の)コンテナ210に関する参照リスト500が示されている。図4の場合のように、テーブル及びリンクリスト形式の両方が示されている。参照リスト500は、(図2の)バックアップストレージ160内に存在し得るコンテナ210に関する粗いレベルのエントリと、コンテナ210内に保存されたセグメントオブジェクトに関する細かいレベルのエントリとを含む。別の実施形態では、参照リスト500は、バックアップストレージ160に保存された複数のコンテナに関するエントリを含み得る。さらなる実施形態では、参照リスト500は、バックアップストレージ160に保存された全てのコンテナに関するエントリを包含することができる。またさらなる実施形態では、(図2の)重複排除サーバ150は、バックアップストレージ160に保存されたコンテナごとに別個の参照リストを維持してもよい。
コンテナ210に保存されたセグメントオブジェクトの内の少なくとも1つを参照する各ファイルの粗いレベルのエントリが参照リスト500内に存在する。(図3の)4つのファイル241〜244は、コンテナ210に保存されたセグメントオブジェクトを参照し、従って、参照リストにコンテナ210に関する4つのエントリが存在し、コンテナ内に保存されたセグメントオブジェクトを指し示すファイルの各々につき1つのエントリである。コンテナ210に関するこれらのエントリは、参照リスト500の粗いレベルのエントリである。各セグメントオブジェクトに関するエントリは、参照リスト500の細かいレベルのエントリである。各セグメントオブジェクトは、それを参照する各ファイルに関する細かいレベルのエントリを包含し得る。ファイルによるセグメントオブジェクトの参照は、読み出し又は復元操作中にこのファイルを再作成するためにこのセグメントオブジェクトが使用され得る場合、又は、このセグメントオブジェクトが、このファイルを構成するデータの一部を成す場合に行われ得る。
セグメントオブジェクト231は、参照リスト500内に、それを指し示す4つのファイル(241〜244)に関する4つの細かいレベルのエントリを含む。さらに、セグメントオブジェクト232は、リスト内に、ファイル243及び244の2つの細かいレベルのエントリを含み、セグメントオブジェクト233は、ファイル242及び244の2つの細かいレベルのエントリを含み、セグメントオブジェクト234は、ファイル241〜244の4つの細かいレベルのエントリを含み、セグメントオブジェクト235は、ファイル241及び243の2つの細かいレベルのエントリを含み、セグメントオブジェクト236は、ファイル241及び242の2つの細かいレベルのエントリを含み、セグメントオブジェクト237は、ファイル241〜243の3つの細かいレベルのエントリを含み、セグメントオブジェクト238は、ファイル242及び243の2つの細かいレベルのエントリを含み、セグメントオブジェクト239は、ファイル242の1つの細かいレベルのエントリを含む。
図6に示されるように、参照リスト500において、細かいレベルのエントリは、粗いレベルのエントリの後に来てもよい。ある実施形態では、参照リスト500が2つ以上のコンテナに関するエントリを含む場合には、第1のコンテナに関する粗い及び細かいレベルのエントリは、一緒にグループ化され、第2のコンテナに関する粗い及び細かいレベルのエントリが後に続き、残りのコンテナに関しても同様であってもよい。別の実施形態では、全てのコンテナに関する粗いレベルのエントリが一緒にグループ化され、全てのコンテナに関する全ての細かいレベルのエントリが後に続いてもよい。粗い及び細かいレベルのエントリを一緒にグループ化し、参照リスト500を編成する他の方法が可能であり、検討される。
これより図7を参照すると、ストレージシステムからのファイル243の削除に続いてリストが更新された後のコンテナ210に関する参照リスト500が示されている。ここでも、テーブル及びリンクリスト形式の両方が示されている。図7に示したように、参照リストは、粗いレベルのエントリに関してのみ更新されている。この参照リストの閾値は、3などの任意の数でよい。従って、コンテナ210を指し示すファイルの数が3より少なくなると、参照リストは、粗い及び細かいレベルのエントリの両方を更新するように切り替わってもよい。別の実施形態では、閾値は異なる値をとってもよい。さらなる実施形態では、サーバ150(図1のもの)は、少なくとも部分的に、バックアップストレージ160(図1のもの)において現在利用されている記憶空間の割合に基づいて、閾値の値を決定してもよい。またさらなる実施形態では、サーバは、少なくとも部分的に、参照リスト内のエントリのサイズ又は数に基づいて、閾値の値を決定してもよい。閾値の値を設定又は決定するための任意の所望の条件を用いることができる。
コンテナ210は、ファイル243のエントリが削除された後には、参照リスト500において、3つの粗いレベルのエントリを有する。ファイル243によって参照されたセグメントオブジェクトに関する参照リスト500中のエントリは、まだリスト中に残っている。参照リスト500は、粗いレベルのエントリに関してのみ更新されているので、ファイルが削除される際に、細かいレベルのエントリは削除されない。参照リストを粗いレベルで更新する利点は、処理するエントリがおそらく少ないので、リストの更新プロセスをスピードアップし得る点である。参照リスト500の場合、ファイル243が削除される際に、たった1つの粗いレベルのエントリが削除され得る。また、削除されたファイルがコンテナを参照するか否かを決定するために、4つのエントリ(粗いレベルのエントリ)のみを処理する必要があり得る。参照リスト500が細かいレベルで更新されたとすると、ファイル243によって指し示された各セグメントオブジェクトに対して6つの追加のエントリが削除された可能性がある。また、参照リスト500が細かいレベルで更新されたとすると、全ての細かいレベルのエントリの処理が行われた可能性がある。多数のコンテナ及びセグメントオブジェクトを保存する大規模な重複排除に基づくストレージシステムにおいては、1つ又は複数の参照リストの粗いレベルのエントリのみを更新することにより、1つのファイル又はファイルグループの削除に続いて行われる更新及び処理操作の数を大幅に減らすことができる。
参照リストを粗いレベルで更新するデメリットも存在し得る。コンテナ内のセグメントオブジェクトの一部がどのファイルによっても使用されていない場合には、参照リストは、これを示さない場合がある。これにより、そうでなければ解放され、再使用が可能な記憶空間を消費する使用されていないセグメントオブジェクトが生じ得る。使用されていないセグメントオブジェクトの保存を軽減するために、ある特定のコンテナに関する参照リストエントリは、このコンテナに関する粗いレベルのエントリの数が閾値を下回った際に細かいレベルで更新されてもよい。ある特定のコンテナに関してごくわずかの粗いレベルのエントリが存在する時には、セグメントオブジェクトを再利用できる可能性がより高く、従って、粗いレベルの更新のみの利用と比較して、細かいレベルの更新への切り替えは、より速いリソース再利用を促進し得る。また、ある特定のコンテナに関して少数の粗いレベルのエントリが存在する場合には、細かいレベルの更新への切り替えは、多数の粗いレベルのエントリが存在した場合と比較して、リスト更新の処理負担は、僅かに増加するだけであることもある。
参照リストがある特定のコンテナに関して細かいレベルの更新へと切り替わった後に、この特定のコンテナ内に保存されたセグメントオブジェクトを参照する新しいファイルは、バックアップストレージシステムに加えられてもよい。コンテナを参照するファイルの数が閾値を超えて増加すると、参照リストは、このコンテナに関して元の粗いレベルの更新へと切り替わってもよい。参照リストは、ある特定のコンテナに関する粗いレベルのエントリの数が、いずれの方向にしても閾値を越える度に何度でも、細かいレベルから粗いレベルの更新へと交互に切り替わってもよい。
これより図8を参照すると、ファイル242がストレージシステムから削除された後のコンテナ210に関する参照リスト500(テーブル及びリンクリスト形式の両方)が示されている。ファイル242の削除後には、コンテナ210に関する粗いレベルのエントリの数は2である。従って、参照リスト500は、エントリの数が3の閾値を下回っているので、粗い及び細かいレベルのエントリの両方の更新へと切り替わってもよい。他の実施形態では、複数の参照リストが異なる閾値を有していてもよく、これらの参照リストは、異なる数の粗いレベルのエントリで、粗いレベルの更新から細かいレベルの更新へと切り替わってもよい。
図8では、ファイル242に関するコンテナ210の粗いレベルのエントリが参照リスト500から削除され得る。さらに、セグメントオブジェクト(又は細かいレベル)のエントリも更新され得る。ファイル242に関する全ての細かいレベルのエントリがリストから削除され得る。また、ファイル243に関する粗いレベルのエントリ(前の操作において削除済み)がもはや存在しないので、ファイル243に関する全ての細かいエントリがリストから削除され得る。図7に示されるように、ファイル243が削除された時、参照リスト500は粗いレベルの更新モードにあり、ファイル243の粗いレベルのエントリのみがリストから削除されている。参照リスト500が細かいレベルの更新へと切り替わると、細かいレベルのエントリは、コンテナ210に関する粗いレベルのエントリと一致するように更新される必要があり得る。これにより、何個のファイルが各セグメントオブジェクトを参照するかをリストが正確に反映することが可能となる。図8に示されるように、参照リスト500からファイル242及び243に関連する全ての細かいレベルのエントリを削除した後、セグメントオブジェクト238及び239は、どのファイルからも参照されない。従って、これらの2つのセグメントオブジェクトは、削除され、これらのオブジェクトによって占められていた記憶空間を再使用することができる。セグメントオブジェクトは直ぐに削除されてもよいし、あるいは、これらに削除の印を付け、他の使用されていないセグメントオブジェクトに関与するバッチ操作において、後で削除されてもよい。さらなる実施形態では、セグメントオブジェクトに印を付け、再利用を行う他の方法が可能であり、検討される。
ファイルがバックアップストレージシステムに加えられると、ファイルは、既に保存されたセグメントオブジェクトと同一のデータセグメントへと分割され得る。これらの同一のセグメントオブジェクトを保存するコンテナの参照リストが更新され得る。ある実施形態では、粗いレベルのエントリの数が閾値を下回ると、粗い参照リストのみが更新される。ファイルが削除され、粗いレベルの参照リストが閾値に達する場合には、細かい参照リストが再構築され得る。この様に、必要な場合にのみ細かいレベルの参照リストに関する行為が行われる。粗い参照リストのコンテナが閾値に達することがほとんどなければ、細かい参照更新のオーバーヘッドが全く存在しない。ある代替実施形態では、ファイルがコンテナに加えられると、たとえ粗いレベルのエントリの数が閾値を下回る場合であっても、細かい及びコースレベルの両方で、参照リストを更新してもよい。このような実施形態では、新しく保存されたファイルによって参照されるセグメントオブジェクトは、参照リストにおいて粗いレベルで処理が行われているコンテナに保存されてもよい。粗いレベルで処理が行われているコンテナの場合、新しいファイルがバックアップストレージシステムに加えられると、これらのコンテナのセグメントオブジェクトエントリは、やはり更新されてもよい。
一部の実施形態では、コンテナは、細かいレベルのエントリを更新することなく、その粗いレベルのエントリを全て参照リストから削除し得る。これは、コンテナの参照リストが粗いレベルのエントリのみを含む場合に生じ得る。これは、コンテナの参照リストが粗い及び細かいレベルのエントリを含み、かつ閾値がゼロの場合にも生じ得る。あるいは、これは、ファイルグループが一度に削除され、コンテナの粗いレベルのエントリの全てが1つの操作で削除される場合に生じ得る。ある特定のコンテナに関する全ての粗いレベルのエントリが削除されると、参照リストの細かいレベルのエントリが更新又は処理されることなく、そのコンテナのセグメントオブジェクトは、再利用されてもよく、あるいは、再利用の準備が出来ているものとして印が付けられてもよい。これにより、参照リストの細かいレベルのエントリを処理する必要なく、セグメントオブジェクトによって使用されるリソースを再利用することにより、処理時間及びオーバーヘッドを省くことができる。
これより、図9を参照すると、コンテナ210に関する「バックアップ指向の」参照リスト800が示されている。コンテナ参照リストは、各コンテナが、コンテナ内の少なくともオブジェクト上を参照するバックアップのリストを有する点で、バックアップ指向である。従って、図5〜7の参照リスト500とは対照的に、参照リスト800は、バックアップトランザクション250に関連するエントリを含む。前の例の場合のように、テーブル及びリンクリスト形式の両方が示されている。図2に示されるように、バックアップトランザクション250は、ファイル241〜244を含む。図9の参照リスト800は、ファイル243及び242の削除前の図6の参照リスト500に対応する。参照リスト800のエントリの数は、個々のファイルに準じる代わりに、バックアップトランザクションに準じて、コンテナ210及びセグメントオブジェクト231〜239をトラッキングすることによって、減少している。参照リスト800のサイズの減少は、リストの保存に必要な記憶空間を減少させることがあり、バックアップトランザクションがストレージシステムに加えられる、又はストレージシステムから削除される際のリストのエントリの処理に必要な処理時間を減少させることがある。ある実施形態では、参照リスト800は、1つのコンテナ又はセグメントオブジェクトを参照するバックアップトランザクションの各インスタンスに対して1つのエントリを含み得る。別の実施形態では、(図2の)重複排除サーバ150は、複数のバックアップトランザクションを1つのバックアップトランザクショングループに編成してもよく、参照リスト800は、1つのコンテナ又はセグメントオブジェクトを参照するバックアップトランザクショングループの各インスタンスに対して複数のエントリを含んでもよい。さらなる実施形態では、ファイル及びバックアップトランザクションの他のグループ化を用いて、参照リスト800がエントリを記録する方法を決定してもよい。理解され得るように、複数のファイルを含む1つのバックアップトランザクションを説明したが、ファイルの他の識別可能なグループ化を同様に用いてもよい。
さらに、参照リストの粗いレベルのエントリは、2つ以上のコンテナに対応してもよい。例えば、ある実施形態では、複数のコンテナを一緒にグループ化してもよい。この複数のコンテナは、1つのバックアップトランザクションからのデータを保存してもよい。あるいは、他の要素に基づいて、複数のコンテナを選択及び一緒にグループ化してもよい。粗いレベルのエントリが単一のコンテナではなく複数のコンテナに対応するように、参照リストが編成されてもよい。この様に参照リストを編成することにより、少ない数のエントリを有するより小さな参照リストが生じる結果となり、ファイル又はバックアップトランザクションがシステムに加えられる、又はシステムから削除される際の更新処理がより速くなる結果となり得る。
これより図10を参照すると、バックアップ指向の参照リストを維持するための方法の一実施形態が示されている。説明目的で、この実施形態のステップは、順次的な順序で示される。以下に記載する方法の様々な実施形態において、記載する要素の内の1つ又は複数を同時に行う、示した順序とは異なる順序で行う、又は完全に省いてもよいことに留意されたい。要望通りに他の追加の要素を行うことも可能である。
図10の方法は、ブロック905において開始され、次に、ブロック910において、ストレージ操作が検出され得る。この図面は、概ねバックアップ操作を説明しているので、ストレージ操作は、新しいバックアップを行っている、又は以前のバックアップを削除している可能性がある。条件ブロック915では、操作がバックアップの削除であると決定されると、次に、コンテナ参照リストのどのコンテナが削除中のバックアップの識別を含むかが決定され得る(ブロック925)。次に、コンテナの参照リストにおいて、削除されたバックアップに関するエントリが削除され得る(ブロック930)。
検出された操作が新しいバックアップである場合には(条件ブロック915)、追加が行われている各ファイルに対して、追加されたファイルから分割されたデータセグメントと同一のストレージ内の一致するセグメントオブジェクトの検索が行われ得る(ブロック940)。一致するセグメントオブジェクトが存在する場合(条件ブロック945)、一致するセグメントオブジェクトの場所が特定され得る(ブロック955)。一致するセグメントオブジェクトが存在しない場合(条件ブロック945)、新しいセグメントオブジェクト(追加されたファイルからのデータセグメントに対応)がコンテナ内に保存され、ファイルエントリがコンテナの参照リストに追加され得る(ブロック950)。
一致するセグメントオブジェクトの場所が特定されると(ブロック955)、どのコンテナが一致するセグメントオブジェクトを保持するかが決定され得る(ブロック960)。次に、新しいファイルに対応するバックアップトランザクションのエントリがコンテナの参照リストに追加され得る(ブロック965)。バックアップトランザクションがそのコンテナに関するエントリを既に有する場合には、新しいエントリが必要ではない場合がある。追加されたファイルからのさらなるデータセグメントが存在する場合には(条件ブロック970)、本方法は、ブロック940に戻り、一致するセグメントオブジェクトを検索し得る。追加されたファイルからのデータセグメントがそれ以上存在しない場合には(条件ブロック970)、本方法は、ブロック975で終了し得る。
ファイル指向及びバックアップ指向のコンテナ参照リストの両方の実施形態を説明したが、様々な実施形態において、セグメントオブジェクト参照リストを含んだ、このような実施形態の組み合わせを同時に維持することができる。このような実施形態では、ある状況において参照リストを更新するか否か及びどの参照リストを更新するかを決定するために、様々な条件を利用することができる。
これより図11を参照すると、上記の方法及び機構に基づくハイブリッド手法の一実施形態が示されている。この例では、コンテナ参照リストとセグメントオブジェクト参照リストとのハイブリッドが説明される。方法1000は、コンテナ参照リスト又はセグメントオブジェクト参照リストのどちらを維持するかを決定する方法の一実施形態を示す。説明目的で、この実施形態のステップは、順次的な順序で示される。以下に記載する方法の様々な実施形態において、記載する要素の内の1つ又は複数を同時に行う、示した順序とは異なる順序で行う、又は完全に省いてもよいことに留意されたい。要望通りに他の追加の要素を行ってもよい。
以下の説明では、説明目的で、ファイル指向のコンテナ参照リストを使用する(図5で説明したものに類似)。しかしながら、この方法は、バックアップ指向のコンテナ参照リストにも適用することができる。図示される方法1000は、ブロック1010においてファイルを削除する要求から開始される。ブロック1020では、重複排除サーバ(又は他の構成要素)が、削除されたファイルによって参照されるコンテナを識別する(すなわち、ファイルは、コンテナに保存されたセグメントオブジェクトを含む)。コンテナを識別すると、重複排除サーバは、他の何個のファイルがそのコンテナを参照するかを決定し得る(ブロック1025)。ファイルの数が所与の閾値を上回る場合には(条件ブロック1030)、重複排除サーバは、コンテナ参照リストを維持し、削除されたファイルの識別をコンテナ参照リストから削除してもよい(ブロック1035)。エントリの削除は、図5又は図10で説明された通りでよい。ファイル指向のコンテナ参照リストの場合には、削除されたファイルの識別は、そのファイルに関するコンテナ参照リストから除去されてもよい。バックアップ指向のコンテナ参照リストの場合には、削除されたバックアップの識別は、コンテナ参照リストから除去されてもよい。
コンテナ参照リストにおける所与のコンテナに関するファイル数が閾値を下回ると(条件ブロック1030)、重複排除サーバは、セグメントオブジェクト参照リストを維持し、削除されたファイルに対応するエントリをセグメントオブジェクト参照リストから削除してもよい(ブロック1040)。ある実施形態では、コンテナ参照リストの維持からセグメントオブジェクト参照リストの維持へと切り替わると、識別されたコンテナに対応するセグメントオブジェクト参照リストのエントリは、まだ存在しない場合がある。例えば、ファイルの追加中にコンテナ参照リストのみが維持されている場合、対応するセグメントオブジェクト参照リストは維持されていない。その結果、セグメントオブジェクト参照リストの維持への切り替えが所与のコンテナに関して行われた際に、そのコンテナを参照するファイルがまだ存在する場合には、そのコンテナに関するセグメントオブジェクト参照リストのエントリはまだ存在しない。このような場合には、そのコンテナに関するセグメントオブジェクト参照リストを作成する必要がある。ある実施形態では、これらのセグメントオブジェクト参照リストのエントリの作成は、セグメントオブジェクト参照リストの維持を決定した時点で行われてもよい(ブロック104)。次に、重複排除サーバは、このコンテナが削除されたファイルによって参照される最後のコンテナであるかどうかを決定してもよい(条件ブロック1045)。これが、削除されたファイルによって指し示される最後のコンテナであった場合には(条件ブロック1045)、この方法は、ブロック1055において終了し得る。これが、削除されたファイルによって指し示される最後のコンテナではなかった場合には(条件ブロック1045)、この方法は、削除されたファイルによって指し示される次のコンテナを見つけ出してもよい(ブロック1050)。次に、サーバは、他に何個のファイルが次のコンテナを指し示すかを決定するために、ブロック1025に戻ってもよい。
上記の実施形態がソフトウェアを含み得ることに留意されたい。このような実施形態では、説明したシステム及び/又は方法を表すプログラム命令及び/又はデータベース(どちらも「命令」と呼ばれ得る)は、コンピュータ可読ストレージ媒体に保存されてもよい。一般的に言えば、コンピュータ可読ストレージ媒体は、命令及び/又はデータをコンピュータに提供するために、使用中にコンピュータによってアクセス可能な任意のストレージ媒体を含み得る。例えば、コンピュータ可読ストレージ媒体は、磁気又は光媒体、例えばディスク(固定又はリムーバブル)、テープ、CD−ROM、DVD−ROM、CD−R、CD−RW、DVD−R、DVD−RW、又はBlu−Ray等のストレージ媒体を含み得る。ストレージ媒体は、RAM(例えば、同期型ダイナミックRAM(SDRAM))、ダブルデータレート(DDR、DDR2、DDR3等)SDRAM、低電力DDR(LPDDR2等)SDRAM、Rambus DRAM(RDRAM)、スタティックRAM(SRAM)、ROM、フラッシュメモリ、USBインタフェース等の周辺インタフェースを介してアクセス可能な不揮発性メモリ(例えばフラッシュメモリ)等の揮発性又は不揮発性メモリ媒体をさらに含み得る。ストレージ媒体は、微小電気機械システム(MEMS)、並びに、ネットワーク及び/又は無線リンク等の通信媒体を介してアクセス可能なストレージ媒体を含み得る。
様々な実施形態において、本明細書に記載した方法及び機構の一部又は複数の部分は、クラウドコンピュータ環境の一部を形成し得る。このような実施形態では、1つ又は複数の様々なモデルに準じたサービスとして、インターネット上でリソースが提供され得る。このようなモデルには、Infrastructure as a Service(IaaS)、Platform as a Service(PaaS)、及びSoftware as a Service(SaaS)が含まれ得る。IaaSでは、コンピュータインフラがサービスとして提供される。このような場合、計算機器は、一般的にサービスプロバイダによって所有され、かつ操作される。PaaSモデルでは、ソフトウェアソリューションを開発するために開発者によって使用されるソフトウェアツール及び基礎となる機器は、サービスプロバイダによって、サービスとして提供され、ホストされ得る。SaaSは、一般的に、オンデマンドでサービスとしてソフトウェアの使用を許諾するサービスプロバイダを含む。サービスプロバイダは、ソフトウェアをホストしてもよく、あるいは、所与の期間だけソフトウェアを顧客に配布してもよい。上記のモデルの多数の組み合わせが可能であり、検討される。
手法の幾つかの実施形態を図示及び説明したが、記載した手法に対して多数の変更、改変、又は修正を行うことができることは当業者には明らかとなるであろう。従って、変更形態、改変形態、又は修正形態は、本明細書に記載した方法及び機構の範囲内と見なされるものとする。上記の実施形態は、実施の非限定的例に過ぎないことも当然強調されることである。

Claims (17)

  1. データストレージを管理するためのシステムであって、
    複数のストレージオブジェクトを複数のストレージコンテナに保存するように構成されたストレージデバイスであって、前記ストレージコンテナの各々は、複数の前記ストレージオブジェクトを保存するように構成された、ストレージデバイスと、
    ストレージコンテナ参照リストであって、前記ストレージコンテナの各々に関して、前記ストレージコンテナ参照リストは、複数のファイルの内のどのファイルが、所与のストレージコンテナ内のストレージオブジェクトを参照するかを識別する、ストレージコンテナ参照リストと、
    サーバであって、前記ストレージコンテナの内のある特定のストレージコンテナ内のオブジェクトを参照する所与のファイルの削除の検出に応答して、前記所与のファイルの識別を前記ストレージコンテナ参照リストから除去することによって、前記ストレージコンテナ参照リストを更新するように構成されているサーバと、を含み、
    前記複数のファイルのサブセットをバックアップにグループ化し、前記ストレージコンテナの各々に関して、前記ストレージコンテナ参照リストは、前記バックアップ内のどのバックアップが前記所与のストレージコンテナ内のセグメントオブジェクトを参照するファイルを含むかを識別する、システム。
  2. 前記サーバは、セグメントオブジェクト参照リストを維持するようにさらに構成され、前記ストレージデバイスに保存された所与のセグメントオブジェクトに関して、前記セグメントオブジェクト参照リストは、前記複数のファイルの内のどのファイルが前記所与のセグメントオブジェクトを参照するかを識別する、請求項1に記載のシステム。
  3. 所与のコンテナを参照するファイルの数が閾値レベルを下回ったことの決定に応答して、前記サーバは、ファイル削除の検出に応答して、前記ストレージコンテナ参照リストの代わりに、前記セグメントオブジェクト参照リストを更新するように構成されている、請求項2に記載のシステム。
  4. 前記セグメントオブジェクト参照リストを更新する際に、前記サーバは、前記セグメントオブジェクト参照リストから、前記所与のファイルによって参照されるセグメントオブジェクトのエントリを削除するように構成されている、請求項3に記載のシステム。
  5. 前記サーバは、少なくとも部分的に、前記ストレージデバイスのストレージ利用及び前記ストレージコンテナ参照リストのサイズに基づいて、前記閾値の値を決定するようにさらに構成されている、請求項3に記載のシステム。
  6. 前記削除の検出に応答して、前記サーバは、前記セグメントオブジェクト参照リストを更新しない、請求項2に記載のシステム。
  7. 前記ストレージコンテナ参照リストは、粗いレベルでコンテナのグループに関連するエントリを含み、前記コンテナのグループ内に保存された少なくとも1つのセグメントオブジェクトを参照するファイルごとに別個の粗いレベルのエントリを有する、請求項1に記載のシステム。
  8. ストレージデバイスにおいて、複数のストレージオブジェクトを複数のストレージコンテナに保存するステップであって、前記ストレージコンテナの各々は、複数の前記ストレージオブジェクトを保存するように構成されている、ステップと、
    ストレージコンテナ参照リストを維持するステップであって、前記ストレージコンテナの各々に関して、前記ストレージコンテナ参照リストは、複数のファイルの内のどのファイルが、所与のストレージコンテナ内のストレージオブジェクトを参照するかを識別する、ステップと、
    前記ストレージコンテナの内のある特定のストレージコンテナ内のオブジェクトを参照する所与のファイルの削除の検出に応答して、前記ストレージコンテナ参照リストから、前記所与のファイルの識別を除去するステップと、を含み、
    前記複数のファイルのサブセットをバックアップにグループ化し、前記ストレージコンテナの各々に関して、前記ストレージコンテナ参照リストは、前記バックアップ内のどのバックアップが前記所与のストレージコンテナ内のセグメントオブジェクトを参照するファイルを含むかを識別する、コンピュータ実施方法。
  9. セグメントオブジェクト参照リストを維持するステップをさらに含み、前記ストレージデバイスに保存された所与のセグメントオブジェクトに関して、前記セグメントオブジェクト参照リストは、前記複数のファイルの内のどのファイルが前記所与のセグメントオブジェクトを参照するかを識別する、請求項8に記載の方法。
  10. 所与のコンテナを参照するファイルの数が閾値レベルを下回ったことの決定に応答して、前記方法は、ファイル削除の検出に応答して、前記ストレージコンテナ参照リストの代わりに、前記セグメントオブジェクト参照リストを更新するステップを含む、請求項9に記載の方法。
  11. 前記セグメントオブジェクト参照リストを更新する際に、前記方法は、前記セグメントオブジェクト参照リストから、前記所与のファイルによって参照されるセグメントオブジェクトのエントリを削除するステップを含む、請求項10に記載の方法。
  12. 前記削除の検出に応答して、前記方法は、前記セグメントオブジェクト参照リストを更新しない、請求項9に記載の方法。
  13. 前記ストレージコンテナ参照リストは、粗いレベルでコンテナのグループに関連するエントリを含み、前記コンテナのグループ内に保存された少なくとも1つのセグメントオブジェクトを参照するファイルごとに別個の粗いレベルのエントリを有する、請求項8に記載の方法。
  14. プログラム命令を含む非一時的なコンピュータ可読ストレージ媒体であって、実行されると、前記プログラム命令は、
    ストレージデバイスにおいて、複数のストレージオブジェクトを複数のストレージコンテナに保存するように動作可能であり、前記ストレージコンテナの各々は、複数の前記ストレージオブジェクトを保存するように構成されており、
    ストレージコンテナ参照リストを維持するように動作可能であり、前記ストレージコンテナの各々に関して、前記ストレージコンテナ参照リストは、複数のファイルの内のどのファイルが、所与のストレージコンテナ内のストレージオブジェクトを参照するかを識別し、
    前記ストレージコンテナの内のある特定のストレージコンテナ内のオブジェクトを参照する所与のファイルの削除の検出に応答して、前記ストレージコンテナ参照リストから、前記所与のファイルの識別を除去するように動作可能であり、
    前記複数のファイルのサブセットをバックアップにグループ化し、前記ストレージコンテナの各々に関して、前記ストレージコンテナ参照リストは、前記バックアップ内のどのバックアップが前記所与のストレージコンテナ内のセグメントオブジェクトを参照するファイルを含むかを識別する、
    非一時的なコンピュータ可読ストレージ媒体。
  15. 実行されると、前記プログラム命令は、セグメントオブジェクト参照リストを維持するようにさらに動作可能であり、前記ストレージデバイスに保存された所与のセグメントオブジェクトに関して、前記セグメントオブジェクト参照リストは、前記複数のファイルの内のどのファイルが前記所与のセグメントオブジェクトを参照するかを識別する、請求項14に記載の非一時的なコンピュータ可読ストレージ媒体。
  16. 所与のコンテナを参照するファイルの数が閾値レベルを下回ったことの決定に応答して、前記プログラム命令は、ファイル削除の検出に応答して、前記ストレージコンテナ参照リストの代わりに、前記セグメントオブジェクト参照リストを更新するようにさらに動作可能である、請求項15に記載の非一時的なコンピュータ可読ストレージ媒体。
  17. 前記削除の検出及び前記所与のコンテナを参照するファイルの数が所与の閾値を下回ったことの決定に応答して、前記セグメントオブジェクト参照リストは更新されない、請求項15に記載の非一時的なコンピュータ可読ストレージ媒体。
JP2013527295A 2010-09-03 2011-08-31 重複排除に基づくストレージシステムにおけるスケーラブル参照管理のためのシステム、方法及び非一時的なコンピュータ可読ストレージ媒体 Active JP5732536B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/875,815 2010-09-03
US12/875,815 US8392376B2 (en) 2010-09-03 2010-09-03 System and method for scalable reference management in a deduplication based storage system
PCT/US2011/050101 WO2012031047A1 (en) 2010-09-03 2011-08-31 System and method for scalable reference management in a deduplication based storage system

Publications (3)

Publication Number Publication Date
JP2013541083A JP2013541083A (ja) 2013-11-07
JP2013541083A5 JP2013541083A5 (ja) 2014-10-16
JP5732536B2 true JP5732536B2 (ja) 2015-06-10

Family

ID=44645235

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013527295A Active JP5732536B2 (ja) 2010-09-03 2011-08-31 重複排除に基づくストレージシステムにおけるスケーラブル参照管理のためのシステム、方法及び非一時的なコンピュータ可読ストレージ媒体

Country Status (5)

Country Link
US (2) US8392376B2 (ja)
EP (1) EP2612242B1 (ja)
JP (1) JP5732536B2 (ja)
CN (2) CN105718548B (ja)
WO (1) WO2012031047A1 (ja)

Families Citing this family (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8392376B2 (en) * 2010-09-03 2013-03-05 Symantec Corporation System and method for scalable reference management in a deduplication based storage system
US20120216052A1 (en) * 2011-01-11 2012-08-23 Safenet, Inc. Efficient volume encryption
US9021198B1 (en) * 2011-01-20 2015-04-28 Commvault Systems, Inc. System and method for sharing SAN storage
CN102810075B (zh) * 2011-06-01 2014-11-19 英业达股份有限公司 事务型系统处理方法
KR20130046540A (ko) * 2011-10-28 2013-05-08 삼성에스디에스 주식회사 데이터 전송 장치 및 방법
US9367397B1 (en) * 2011-12-20 2016-06-14 Emc Corporation Recovering data lost in data de-duplication system
US8996467B2 (en) * 2011-12-29 2015-03-31 Druva Inc. Distributed scalable deduplicated data backup system
US8700634B2 (en) 2011-12-29 2014-04-15 Druva Inc. Efficient deduplicated data storage with tiered indexing
WO2013183083A1 (en) * 2012-06-06 2013-12-12 Hitachi, Ltd. Storage system and storage system management method
CN104380287B (zh) * 2012-06-14 2018-01-26 英派尔科技开发有限公司 数据去重管理
US9880771B2 (en) * 2012-06-19 2018-01-30 International Business Machines Corporation Packing deduplicated data into finite-sized containers
US9141633B1 (en) * 2012-06-27 2015-09-22 Emc Corporation Special markers to optimize access control list (ACL) data for deduplication
WO2014068617A1 (en) * 2012-10-31 2014-05-08 Hitachi, Ltd. Storage apparatus and method for controlling storage apparatus
EP3425493A1 (en) * 2012-12-28 2019-01-09 Huawei Technologies Co., Ltd. Data processing method and apparatus
US9986209B2 (en) * 2013-02-15 2018-05-29 Steven Philip Meyer Method and system for managing data from digital network surveillance cameras
US10275397B2 (en) * 2013-02-22 2019-04-30 Veritas Technologies Llc Deduplication storage system with efficient reference updating and space reclamation
US9361028B2 (en) 2013-05-07 2016-06-07 Veritas Technologies, LLC Systems and methods for increasing restore speeds of backups stored in deduplicated storage systems
US9256612B1 (en) 2013-06-11 2016-02-09 Symantec Corporation Systems and methods for managing references in deduplicating data systems
US9298724B1 (en) 2013-06-14 2016-03-29 Symantec Corporation Systems and methods for preserving deduplication efforts after backup-job failures
WO2015198371A1 (ja) * 2014-06-23 2015-12-30 株式会社日立製作所 ストレージシステム及び記憶制御方法
US10402113B2 (en) 2014-07-31 2019-09-03 Hewlett Packard Enterprise Development Lp Live migration of data
WO2016036347A1 (en) 2014-09-02 2016-03-10 Hewlett Packard Enterprise Development Lp Serializing access to fault tolerant memory
US10241708B2 (en) 2014-09-25 2019-03-26 Hewlett Packard Enterprise Development Lp Storage of a data chunk with a colliding fingerprint
WO2016064417A1 (en) 2014-10-24 2016-04-28 Hewlett Packard Enterprise Development Lp End-to-end negative acknowledgment
WO2016122637A1 (en) 2015-01-30 2016-08-04 Hewlett Packard Enterprise Development Lp Non-idempotent primitives in fault-tolerant memory
US10664369B2 (en) 2015-01-30 2020-05-26 Hewlett Packard Enterprise Development Lp Determine failed components in fault-tolerant memory
US10402287B2 (en) 2015-01-30 2019-09-03 Hewlett Packard Enterprise Development Lp Preventing data corruption and single point of failure in a fault-tolerant memory
WO2016159996A1 (en) 2015-03-31 2016-10-06 Hewlett Packard Enterprise Development Lp Preventing data corruption and single point of failure in fault-tolerant memory fabrics
US10042854B2 (en) 2015-06-18 2018-08-07 International Business Machines Corporation Detection of data affected by inaccessible storage blocks in a deduplication system
US9965488B2 (en) 2015-06-18 2018-05-08 International Business Machines Corporation Back referencing of deduplicated data
US10248656B2 (en) 2015-06-18 2019-04-02 International Business Machines Corporation Removal of reference information for storage blocks in a deduplication system
US9965487B2 (en) 2015-06-18 2018-05-08 International Business Machines Corporation Conversion of forms of user data segment IDs in a deduplication system
US20170123678A1 (en) * 2015-11-04 2017-05-04 HGST Netherlands B.V. Garbage Collection for Reference Sets in Flash Storage Systems
US20170123676A1 (en) * 2015-11-04 2017-05-04 HGST Netherlands B.V. Reference Block Aggregating into a Reference Set for Deduplication in Memory Management
US20170123689A1 (en) * 2015-11-04 2017-05-04 HGST Netherlands B.V. Pipelined Reference Set Construction and Use in Memory Management
CN105701024B (zh) * 2015-12-31 2018-11-06 华为技术有限公司 一种存储设备及其垃圾数据回收的方法
CN107193686A (zh) * 2016-03-15 2017-09-22 伊姆西公司 用于数据备份的方法及设备
US20180024767A1 (en) 2016-07-19 2018-01-25 Western Digital Technologies, Inc. Reference Set Construction for Data Deduplication
US10417202B2 (en) 2016-12-21 2019-09-17 Hewlett Packard Enterprise Development Lp Storage system deduplication
US10620860B2 (en) * 2017-02-13 2020-04-14 Oracle International Corporation System for storing data in tape volume containers
US10282127B2 (en) 2017-04-20 2019-05-07 Western Digital Technologies, Inc. Managing data in a storage system
US10809928B2 (en) 2017-06-02 2020-10-20 Western Digital Technologies, Inc. Efficient data deduplication leveraging sequential chunks or auxiliary databases
US10389342B2 (en) 2017-06-28 2019-08-20 Hewlett Packard Enterprise Development Lp Comparator
US10503608B2 (en) 2017-07-24 2019-12-10 Western Digital Technologies, Inc. Efficient management of reference blocks used in data deduplication
CN109937411B (zh) 2017-08-25 2021-08-20 华为技术有限公司 将接收的数据块存储为去重数据块的装置和方法
US10310765B1 (en) * 2017-08-31 2019-06-04 Amazon Technologies, Inc. Record-oriented data storage for a distributed storage system
CN108196940B (zh) * 2017-12-29 2022-03-11 华为云计算技术有限公司 删除容器的方法和相关设备
US10474368B1 (en) * 2018-04-24 2019-11-12 Western Digital Technologies, Inc Fast read operation utilizing reduced storage of metadata in a distributed encoded storage system
US10749958B2 (en) 2018-04-24 2020-08-18 Western Digital Technologies, Inc. Reduced storage of metadata in a distributed encoded storage system
US10216424B1 (en) * 2018-04-25 2019-02-26 Western Digital Technologies, Inc. Staging of write operations for container-based storage for sequential media
US10579515B1 (en) 2018-09-10 2020-03-03 International Business Machines Corporation Recycling segment pages while preserving integrity of memory addressing
CN109597896B (zh) * 2018-10-19 2023-06-20 上海星佑网络科技有限公司 信息引用方法和装置
US11567913B2 (en) 2019-04-10 2023-01-31 Veritas Technologies Llc Method and system for improving efficiency in the management of data references
US11392547B2 (en) * 2020-04-09 2022-07-19 Micron Technology, Inc. Using prefix-delete operations for data containers
CN112685334A (zh) * 2020-12-21 2021-04-20 联想(北京)有限公司 一种分块缓存数据的方法、装置及存储介质
US11663234B2 (en) * 2021-04-23 2023-05-30 Hewlett Packard Enterprise Development Lp Storage of a small object representation in a deduplication system

Family Cites Families (97)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5537652A (en) * 1990-08-20 1996-07-16 International Business Machines Corporation Data file directory system and method for writing data file directory information
US5555391A (en) * 1993-12-23 1996-09-10 Unisys Corporation System and method for storing partial blocks of file data in a file cache system by merging partial updated blocks with file block to be written
US5561421A (en) 1994-07-28 1996-10-01 International Business Machines Corporation Access method data compression with system-built generic dictionaries
WO1996025801A1 (en) 1995-02-17 1996-08-22 Trustus Pty. Ltd. Method for partitioning a block of data into subblocks and for storing and communicating such subblocks
US5778395A (en) 1995-10-23 1998-07-07 Stac, Inc. System for backing up files from disk volumes on multiple nodes of a computer network
US5794254A (en) 1996-12-03 1998-08-11 Fairbanks Systems Group Incremental computer file backup using a two-step comparison of first two characters in the block and a signature with pre-stored character and signature sets
US6785786B1 (en) 1997-08-29 2004-08-31 Hewlett Packard Development Company, L.P. Data backup and recovery systems
US6141784A (en) 1997-11-26 2000-10-31 International Business Machines Corporation Method and system in a data communications system for the retransmission of only an incorrectly transmitted portion of a data packet
US6151685A (en) * 1998-05-15 2000-11-21 International Business Machines Corporation System and method for recovering a segment directory for a log structured array
GB9811574D0 (en) * 1998-05-30 1998-07-29 Ibm Indexed file system and a method and a mechanism for accessing data records from such a system
US6920537B2 (en) 1998-12-31 2005-07-19 Emc Corporation Apparatus and methods for copying, backing up and restoring logical objects in a computer storage system by transferring blocks out of order or in parallel
US6513051B1 (en) 1999-07-16 2003-01-28 Microsoft Corporation Method and system for backing up and restoring files stored in a single instance store
US6389433B1 (en) 1999-07-16 2002-05-14 Microsoft Corporation Method and system for automatically merging files into a single instance store
US6687815B1 (en) * 2000-02-01 2004-02-03 Sun Microsystems, Inc. Method and apparatus for storing non-volatile configuration information
US6983365B1 (en) 2000-05-05 2006-01-03 Microsoft Corporation Encryption systems and methods for identifying and coalescing identical objects encrypted with different keys
US6886019B1 (en) * 2000-05-15 2005-04-26 International Business Machines Corporation Optimized selection and accessing of stored files to avoid mount and position thrashing
KR100387965B1 (ko) 2000-05-27 2003-06-18 엘지전자 주식회사 사용자 적응적 멀티미디어 서비스 시스템
EP1168174A1 (en) 2000-06-19 2002-01-02 Hewlett-Packard Company, A Delaware Corporation Automatic backup/recovery process
JP4491980B2 (ja) 2001-03-05 2010-06-30 ソニー株式会社 通信処理システム、通信処理方法、および通信端末装置、並びにプログラム
US7146429B2 (en) 2001-03-16 2006-12-05 The Aerospace Corporation Cooperative adaptive web caching routing and forwarding web content data requesting method
US7359920B1 (en) 2001-04-18 2008-04-15 Intellisync Corporation Communication protocol for synchronization of personal information management databases
US20020162021A1 (en) 2001-04-30 2002-10-31 Audebert Yves Louis Gabriel Method and system for establishing a remote connection to a personal security device
US7310644B2 (en) 2001-06-06 2007-12-18 Microsoft Corporation Locating potentially identical objects across multiple computers
US7257643B2 (en) 2002-05-16 2007-08-14 Intel Corporation Method and apparatus to improve network routing
US7213158B2 (en) 2002-06-28 2007-05-01 Lenovo (Singapore) Pte. Ltd. Distributed autonomic backup
US6865655B1 (en) 2002-07-30 2005-03-08 Sun Microsystems, Inc. Methods and apparatus for backing up and restoring data portions stored in client computer systems
US7424514B2 (en) 2002-11-08 2008-09-09 The Regents Of The University Of Michigan Peer-to-peer method and system for performing and managing backups in a network of nodes
US7055008B2 (en) 2003-01-22 2006-05-30 Falconstor Software, Inc. System and method for backing up data
US7478096B2 (en) 2003-02-26 2009-01-13 Burnside Acquisition, Llc History preservation in a computer storage system
US7340640B1 (en) 2003-05-02 2008-03-04 Symantec Operating Corporation System and method for recoverable mirroring in a storage environment employing asymmetric distributed block virtualization
US8918316B2 (en) 2003-07-29 2014-12-23 Alcatel Lucent Content identification system
US8280926B2 (en) * 2003-08-05 2012-10-02 Sepaton, Inc. Scalable de-duplication mechanism
JP4354233B2 (ja) 2003-09-05 2009-10-28 株式会社日立製作所 バックアップシステム及び方法
US7555504B2 (en) * 2003-09-23 2009-06-30 Emc Corporation Maintenance of a file version set including read-only and read-write snapshot copies of a production file
CA2452251C (en) 2003-12-04 2010-02-09 Timothy R. Jewell Data backup system and method
US7644167B2 (en) 2004-01-30 2010-01-05 Hewlett-Packard Development Company, L.P. Identifying a service node in a network
US7200604B2 (en) 2004-02-17 2007-04-03 Hewlett-Packard Development Company, L.P. Data de-duplication
US7240236B2 (en) 2004-03-23 2007-07-03 Archivas, Inc. Fixed content distributed data storage using permutation ring encoding
US7320061B2 (en) * 2004-05-10 2008-01-15 Oracle International Corporation Storage optimization for VARRAY columns
US7657581B2 (en) 2004-07-29 2010-02-02 Archivas, Inc. Metadata management for fixed content distributed data storage
US8356021B2 (en) 2005-03-11 2013-01-15 Ross Neil Williams Method and apparatus for indexing in a reduced-redundancy storage system
US8051252B2 (en) 2005-03-11 2011-11-01 Ross Neil Williams Method and apparatus for detecting the presence of subblocks in a reduced-redundancy storage system
US7636767B2 (en) * 2005-11-29 2009-12-22 Cisco Technology, Inc. Method and apparatus for reducing network traffic over low bandwidth links
US7409523B2 (en) 2005-12-16 2008-08-05 Microsoft Corporation Online storage volume shrink
US7352627B2 (en) * 2006-01-03 2008-04-01 Saifon Semiconductors Ltd. Method, system, and circuit for operating a non-volatile memory array
US20070198659A1 (en) 2006-01-25 2007-08-23 Lam Wai T Method and system for storing data
US7454592B1 (en) 2006-02-16 2008-11-18 Symantec Operating Corporation Block-level and hash-based single-instance storage
US7685459B1 (en) 2006-04-13 2010-03-23 Symantec Operating Corporation Parallel backup
US7689764B1 (en) 2006-04-13 2010-03-30 Symantec Operating Corporation Network routing of data based on content thereof
US7478113B1 (en) 2006-04-13 2009-01-13 Symantec Operating Corporation Boundaries
US8862841B2 (en) 2006-04-25 2014-10-14 Hewlett-Packard Development Company, L.P. Method and system for scaleable, distributed, differential electronic-data backup and archiving
US7930557B2 (en) * 2006-05-16 2011-04-19 Autodesk, Inc. Framework for embedding graphical processing unit programs in computer software
US8412682B2 (en) 2006-06-29 2013-04-02 Netapp, Inc. System and method for retrieving and using block fingerprints for data deduplication
US20080104146A1 (en) * 2006-10-31 2008-05-01 Rebit, Inc. System for automatically shadowing encrypted data and file directory structures for a plurality of network-connected computers using a network-attached memory with single instance storage
US8214517B2 (en) 2006-12-01 2012-07-03 Nec Laboratories America, Inc. Methods and systems for quick and efficient data management and/or processing
WO2008085708A2 (en) 2006-12-21 2008-07-17 Boxicom, Inc. Data backup system and method associated therewith
US7840537B2 (en) * 2006-12-22 2010-11-23 Commvault Systems, Inc. System and method for storing redundant information
US7925798B2 (en) * 2007-01-26 2011-04-12 Lantiq Deutschland Gmbh Data packet processing device
US7672981B1 (en) * 2007-02-28 2010-03-02 Emc Corporation Object classification and indexing of very large name spaces using grid technology
US7865585B2 (en) 2007-03-12 2011-01-04 Citrix Systems, Inc. Systems and methods for providing dynamic ad hoc proxy-cache hierarchies
US7769971B2 (en) 2007-03-29 2010-08-03 Data Center Technologies Replication and restoration of single-instance storage pools
US20080243769A1 (en) 2007-03-30 2008-10-02 Symantec Corporation System and method for exporting data directly from deduplication storage to non-deduplication storage
US8489830B2 (en) 2007-03-30 2013-07-16 Symantec Corporation Implementing read/write, multi-versioned file system on top of backup data
US7783598B1 (en) * 2007-04-27 2010-08-24 Network Appliance, Inc. Avoiding frozen-volume write penalties
US8028106B2 (en) * 2007-07-06 2011-09-27 Proster Systems, Inc. Hardware acceleration of commonality factoring with removable media
US20090132616A1 (en) * 2007-10-02 2009-05-21 Richard Winter Archival backup integration
JP5233233B2 (ja) * 2007-10-05 2013-07-10 日本電気株式会社 情報検索システム、情報検索用インデックスの登録装置、情報検索方法及びプログラム
FR2924839B1 (fr) * 2007-12-06 2010-03-19 Agematis Procede de sauvegarde automatique de donnees numeriques conservees en memoire dans une installation informatique, support de donnees lisible par un ordinateur, installation informatique et systeme pour la mise en oeuvre de ce procede
CN101196920B (zh) * 2007-12-21 2011-04-06 北京中星微电子有限公司 基于引用关系的文件配置管理方法和装置
JP4990828B2 (ja) * 2008-03-25 2012-08-01 株式会社日立製作所 ストレージ装置及びこれの制御方法
US8650228B2 (en) 2008-04-14 2014-02-11 Roderick B. Wideman Methods and systems for space management in data de-duplication
US7984022B2 (en) * 2008-04-18 2011-07-19 International Business Machines Corporation Space recovery with storage management coupled with a deduplicating storage system
US8266114B2 (en) * 2008-09-22 2012-09-11 Riverbed Technology, Inc. Log structured content addressable deduplicating storage
US8484162B2 (en) * 2008-06-24 2013-07-09 Commvault Systems, Inc. De-duplication systems and methods for application-specific data
US8176269B2 (en) * 2008-06-30 2012-05-08 International Business Machines Corporation Managing metadata for data blocks used in a deduplication system
US8495316B2 (en) * 2008-08-25 2013-07-23 Symantec Operating Corporation Efficient management of archival images of virtual machines having incremental snapshots
US10642794B2 (en) * 2008-09-11 2020-05-05 Vmware, Inc. Computer storage deduplication
US7992037B2 (en) * 2008-09-11 2011-08-02 Nec Laboratories America, Inc. Scalable secondary storage systems and methods
JP5414223B2 (ja) * 2008-09-16 2014-02-12 株式会社日立ソリューションズ インターネットバックアップにおける転送データ管理システム
US8572409B2 (en) 2008-09-26 2013-10-29 Stephen P. Spackman Method and apparatus for non-redundant encrypted storage
US9015181B2 (en) * 2008-09-26 2015-04-21 Commvault Systems, Inc. Systems and methods for managing single instancing data
US8099572B1 (en) * 2008-09-30 2012-01-17 Emc Corporation Efficient backup and restore of storage objects in a version set
US8751462B2 (en) * 2008-11-14 2014-06-10 Emc Corporation Delta compression after identity deduplication
CN101753428A (zh) * 2008-12-16 2010-06-23 华为终端有限公司 实例标识的信息获取、上报方法及装置、处理系统
US8074043B1 (en) * 2009-01-30 2011-12-06 Symantec Corporation Method and apparatus to recover from interrupted data streams in a deduplication system
US20100199065A1 (en) * 2009-02-04 2010-08-05 Hitachi, Ltd. Methods and apparatus for performing efficient data deduplication by metadata grouping
US8205065B2 (en) 2009-03-30 2012-06-19 Exar Corporation System and method for data deduplication
US20100257403A1 (en) 2009-04-03 2010-10-07 Microsoft Corporation Restoration of a system from a set of full and partial delta system snapshots across a distributed system
US8935366B2 (en) 2009-04-24 2015-01-13 Microsoft Corporation Hybrid distributed and cloud backup architecture
US8635184B2 (en) 2009-06-25 2014-01-21 Emc Corporation System and method for providing long-term storage for data
US20100333116A1 (en) * 2009-06-30 2010-12-30 Anand Prahlad Cloud gateway system for managing data storage to cloud storage sites
US8204862B1 (en) * 2009-10-02 2012-06-19 Symantec Corporation Systems and methods for restoring deduplicated data
US8862559B2 (en) * 2009-10-06 2014-10-14 Dell Products L.P. Scalable mechanism for detection of commonality in a deduplicated data set
US9501365B2 (en) * 2009-12-28 2016-11-22 Netapp, Inc. Cloud-based disaster recovery of backup data and metadata
CN101814045B (zh) * 2010-04-22 2011-09-14 华中科技大学 一种用于备份服务的数据组织方法
US8396843B2 (en) * 2010-06-14 2013-03-12 Dell Products L.P. Active file instant cloning
US8392376B2 (en) * 2010-09-03 2013-03-05 Symantec Corporation System and method for scalable reference management in a deduplication based storage system

Also Published As

Publication number Publication date
US8392376B2 (en) 2013-03-05
EP2612242A1 (en) 2013-07-10
CN103238140B (zh) 2016-02-17
CN103238140A (zh) 2013-08-07
US20120059800A1 (en) 2012-03-08
US20130185259A1 (en) 2013-07-18
CN105718548A (zh) 2016-06-29
WO2012031047A1 (en) 2012-03-08
CN105718548B (zh) 2019-04-26
US8782011B2 (en) 2014-07-15
JP2013541083A (ja) 2013-11-07
EP2612242B1 (en) 2014-10-08

Similar Documents

Publication Publication Date Title
JP5732536B2 (ja) 重複排除に基づくストレージシステムにおけるスケーラブル参照管理のためのシステム、方法及び非一時的なコンピュータ可読ストレージ媒体
US11775392B2 (en) Indirect replication of a dataset
US11803567B1 (en) Restoration of a dataset from a cloud
AU2014218837B2 (en) Deduplication storage system with efficient reference updating and space reclamation
US7257690B1 (en) Log-structured temporal shadow store
US8370315B1 (en) System and method for high performance deduplication indexing
US9251160B1 (en) Data transfer between dissimilar deduplication systems
US10339112B1 (en) Restoring data in deduplicated storage
US8620962B1 (en) Systems and methods for hierarchical reference counting via sibling trees
US20160321294A1 (en) Distributed, Scalable Key-Value Store
US10628298B1 (en) Resumable garbage collection
CN110908589A (zh) 数据文件的处理方法、装置、系统和存储介质
CN105183399A (zh) 一种基于弹性块存储的数据写、读方法及装置
US20210026536A1 (en) Systems and methods for a scalable de-duplication engine
US20190179802A1 (en) Namespace performance acceleration by selective ssd caching
WO2015096847A1 (en) Method and apparatus for context aware based data de-duplication
US20220398220A1 (en) Systems and methods for physical capacity estimation of logical space units
US9690809B1 (en) Dynamic parallel save streams
US11593304B2 (en) Browsability of backup files using data storage partitioning
CN115543918A (zh) 一种文件快照方法、系统、电子设备及存储介质
US11645333B1 (en) Garbage collection integrated with physical file verification
US20200387317A1 (en) Method and system for building content for a de-duplication engine

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20131115

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140828

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140828

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20140828

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20141114

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141125

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150220

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150317

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150413

R150 Certificate of patent or registration of utility model

Ref document number: 5732536

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250