JP5164980B2 - 永久的コンシステンシ・ポイント・イメージを使用するストレージシステムのデータ重複解消を管理するシステム、及び方法 - Google Patents

永久的コンシステンシ・ポイント・イメージを使用するストレージシステムのデータ重複解消を管理するシステム、及び方法 Download PDF

Info

Publication number
JP5164980B2
JP5164980B2 JP2009518193A JP2009518193A JP5164980B2 JP 5164980 B2 JP5164980 B2 JP 5164980B2 JP 2009518193 A JP2009518193 A JP 2009518193A JP 2009518193 A JP2009518193 A JP 2009518193A JP 5164980 B2 JP5164980 B2 JP 5164980B2
Authority
JP
Japan
Prior art keywords
data
point image
deduplication
consistency point
pcpi
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
JP2009518193A
Other languages
English (en)
Other versions
JP2009543199A (ja
Inventor
ティン,ダニエル
ツェン,リン
マンレイ,ステファン,エル
デステファノ,ジョン,フレデリック
Original Assignee
ネットアップ,インコーポレイテッド
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 ネットアップ,インコーポレイテッド filed Critical ネットアップ,インコーポレイテッド
Publication of JP2009543199A publication Critical patent/JP2009543199A/ja
Application granted granted Critical
Publication of JP5164980B2 publication Critical patent/JP5164980B2/ja
Active 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • 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
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Library & Information Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Retry When Errors Occur (AREA)

Description

[発明の分野]
本発明は、重複データの除去に関し、具体的には、永久的コンシステンシ・ポイント・イメージを使用しているストレージシステムにおける重複データの除去の管理に関する。
[発明の背景]
ストレージシステムは一般に1以上の記憶装置を備え、要望に応じてその中に情報を入れたり、そこから情報を取り出したりすることができる。ストレージシステムは、ストレージオペレーティングシステムを含み、ストレージオペレーティングシステムは、とりわけ、システムによって実施されるストレージサービスを支える種々のストレージオペレーションを実施することにより、システムを機能的に編成する。ストレージシステムは、種々のストレージアーキテクチャに従って実施することができ、限定はしないが、例えば、ネットワーク・アタッチド・ストレージ環境、ストレージ・エリア・ネットワーク、あるいは、クライアントコンピュータ、又はホストコンピュータに直接取り付けられたディスクアセンブリとして実施される場合がある。記憶装置は通常、ディスクアレイとして編成された幾つかのディスクドライブである。ここで、「ディスク」という用語は一般に、内蔵型の回転式磁気媒体記憶装置を意味する。この文脈におけるディスクという用語は、ハード・ディスク・ドライブ(HDD)やダイレクト・アクセス・ストレージ・デバイス(DASD)と同じような意味である。
ディスクアレイへの情報の記憶は、好ましくは、ディスク空間の全体的論理構成を定義する、物理ディスクの1以上のストレージ「ボリューム」として実施される。ボリューム内のディスクは通常、1以上のグループに編成され、各グループが、RAID(Redundant Array of Independent or Inexpensive Disks)として運用される。大半のRAID実施形態は、RAIDグループ内の所与の数の物理ディスクにわたってデータ「ストライプ」を冗長書き込みし、ストライピングされたデータに関する冗長情報(パリティ)を適切に記憶することにより、データ記憶の信頼性/完全性を向上させる。各RAIDグループの物理ディスクには、ストライピングされたデータを記憶するように構成されたディスク(すなわち、データディスク)と、データのパリティを記憶するように構成されたディスク(すなわち、パリティディスク)とがある。その後、ディスクが故障したときに、失われたデータの復旧を可能にするために、パリティは読みされる場合がある。「RAID」という用語、及びその種々の実施形態は周知であり、1998年6月、データ管理に関する国際会議(SIGMOD)の議事録において、D.A. Patterson、G.A. Gibson、及びR.H. Katzにより、「A Case for Redundant Arrays of Inexpensive Disks (RAID)」と題して開示されている。
ストレージシステムのストレージオペレーティングシステムは、ファイルシステムのような上位モジュールを実施し、ディスクに記憶された情報をディレクトリ、ファイル、又はブロックのようなデータコンテナの階層構造として論理編成する場合がある。例えば、「ディスク上」の各ファイルは、ファイルの実際のデータのような情報を記憶するように構成された一組のデータ構造、すなわちディスクブロックとして実施される場合がある。これらのデータブロックは、ファイルシステムによって管理されるボリュームブロック番号(vbn)空間の中に編成される。ファイルシステムは更に、ファイル内の各データブロックに、対応する「ファイルオフセット」、又はファイルブロック番号(fbn)を割り当てる場合がある。ファイルシステムは通常、ファイルごとに連続したfnbを割り当てるのに対し、vbnは、より大きなボリュームアドレス空間に割り当てられる。ファイルシステムは、vbn空間内において幾つかのデータブロックを「論理ボリューム」として編成する。そして、もちろん必須ではないが、各論理ボリュームは、その論理ボリューム独自のファイルシステムに関連付けられる場合がある。ファイルシステムのサイズが、n+1ブロックである場合、ファイルシステムは通常、ゼロからnまでの連続した範囲のvbnから構成される。
一つの既知のタイプのファイルシステムは、ディスク上でデータを上書きしないwrite−anywhereファイルシステムである。ディスクからストレージシステムのメモリ内へデータブロックを取り出し(読み出し)、新たなデータで「汚す」(すなわち、更新、又は変更)するとき、書き込み性能を最適化するために、以後、そのデータブロックは、ディスク上の新たな場所に記憶(書き込み)される。write−anywhereファイルシステムは、データがディスク上で実質的に連続的に配置されるような最適レイアウトを最初に仮定する場合がある。この最適なディスクレイアウトにより、ディスクに対する効率的なアクセスオペレーションが可能となり、特に、シーケンシャル読み出しオペレーションの場合に効率的なアクセスオペレーションが可能となる。ストレージシステム上で動作するように構成されたwrite−anywhereファイルシステムの一例は、カリフォルニア州サニーベイルにあるネットワーク アプライアンス,インコーポレイテッドから販売されているWrite Anywhere File Layout(WAFL)ファイルシステムである。
ストレージシステムは、クライアント/サーバモデルの情報配送に従って動作するように構成され、それによって、多数のクライアントが、システムに記憶されたディレクトリ、ファイル、及びブロックにアクセスできる場合がある。このモデルでは、クライアントは、データベースアプリケーションのようなアプケーションを有し、ポイント・ツー・ポイントリンク、共有ローカルエリアネットワーク、ワイドエリアネットワーク、あるいはインターネットのような公共ネットワークを介して実施される仮想私設ネットワークのようなコンピュータネットワークを介してストレージシステムに「接続」されたコンピュータ上で、そうしたアプリケーションを実行する場合がある。各クライアントは、ネットワークを介してファイルシステムプロトコルメッセージ(パケットの形をしている)をストレージシステムに対して発行することにより、ファイルシステムにサービスを要求する場合がある。従来のコモン・インターネット・ファイルシステム(CIFS)プロトコルとネットワーク・ファイル・システム(NFS)プロトコルのような複数のファイルシステムプロトコルをサポートすることによって、ストレージシステムの利便性を向上させることができる。
既知のファイルシステムの中には、ファイルシステムのスナップショット、又はその一部を生成する機能を有するものがある。スナップショット、及びスナップショット生成手順の詳細については、1998年10月6日に発行された「Method For Maintaining Consistent States of a File System and for Creating User-Accessible Read-Only Copies of a File System」と題するDavid Hitz他による米国特許第5,819,292号に記載されており、この文献は、ここで参照することにより本明細書の中で完全に説明されたものとして、本明細書に援用される。「スナップショット」は、ネットワーク アプライアンス,インコーポレイテッドの商標である。この商標は、本明細書では、永久的コンシステンシ・ポイント(CP)イメージ(PCPI)を指して使用される。PCPIは、ある時点でのストレージシステムの読み出し専用表現であり、具体的には、アクティブファイルシステムを表したものであり、記憶装置(例えば、ディスク)、又は他の永久的メモリに記憶され、自分自身を他の時点において作成された他のPCPIから区別するための名前、又は一意の識別子を有する。さらに、PCPIは、当該イメージが作成された時点におけるアクティブファイルシステムに関する他の情報(メタデータ)を含む場合もある。ネットワークアプライアンスの商標権を失墜させることなく、本明細書では、「PCPI」という用語と「スナップショット」という用語は、交換可能に使用される。
PCPIは、アクティブファイルシステムのバックアップの形で使用されることがある。データの読み出しや復元を改善するために、PCPIは、そのPCPIが生成された元のボリューム、又はファイルシステム以外の別のファイルシステムにコピーしなければならない。一つの既知の例として、バックアップストレージシステムを使用して幾つかのPCPIを記憶し、ユーザ定義の一組のオプションに従って、一群のPCPIを管理する場合がある。バックアップストレージシステムの詳細については、「System and Method for Managing a Plurality of Snapshots」と題するHugo Patterson他による米国特許出願第10/101,901号に記載されており、この文献は、参照により本明細書に援用される。
PCPIをバックアップの形で使用する環境では、しばしば、バックアップストレージシステム上の複数の場所に、同じデータが記憶されることがある。これが発生するのは、例えば、単一のデータコンテナが複数のセクションに同じデータを有する場合や、あるいは、ボリューム内の複数のデータコンテナ、又は他のデータの集合(すなわち、データ集合)が、同じデータを有する場合である。ストレージシステムでは、重複データの量を減らすための種々の既知の技術を使用し、例えばアクティブファイルにおける重複データブロックの数を低減する場合がある。しかしながら、PCPIを使用しているバックアップストレージシステム環境では、PCPIの長期保有により、従来のデータ重複解消技術の有効性は、制限されることがある。その主な理由は、データ重複解消手順の利点、すなわち、記憶される重複データブロックの数を低減するためには、通常、データ集合中の種々のデータポインタに対する変更が必要となるからである。PCPIは読み出し専用であるため、PCPI内の種々のブロックは、そのPCPIが削除されるまで、「ロック」された状態に維持される(従って、重複解消されることはない)。非バックアップストレージシステムでは、PCPIは通常、2〜3日後に削除されるため、PCPIの長期保有による制限は最小限に抑えられる。
本発明は、1以上の永久的コンシステンシ・ポイント・イメージ(PCPI)を使用しているストレージシステムにおけるデータ重複解消を管理するシステム、及び方法を提供することにより、従来技術の欠点を克服する。具体的には、PCPIをバックアップの形で使用しているバックアップストレージオペレーティングシステムでは、バックアップ管理モジュールは、データ重複解消モジュールとの間で情報をやりとりし、バックアップストレージシステム内の1以上のデータ集合、例えば、ボリューム、又はファイルシステムに対してデータ重複解消を実施する。動作として、バックアップ管理モジュールは、ソースストレージシステム(「ソース」)から転送要求を受信し、それに応じて、ソースからバックアップストレージシステム上の宛先ボリュームへのデータ集合の転送を開始する。最後のデータ転送が完了すると、バックアップ管理モジュールは、ファイルシステムと協働し、宛先ボリュームの第1のPCPIを生成する。次に、バックアップ管理モジュールは、データ転送中に生成された一時ファイルのクリーンアップオペレーションを実施し、その後、宛先ボリュームの第2のPCPIを生成する。そしてバックアップ管理モジュールは、第3の、すなわち目標PCPIを生成し、その後、その目標PCPIを1以上のクライアントにエキスポートする。
目標PCPIが生成されると、転送要求は完了したものとみなされ、転送されたデータは、バックアップストレージシステムのクライアントによりアクセス可能な状態になる。さらに、目標PCPIが生成されると、バックアップ管理モジュールは、データ重複解消モジュールに警告を発し、目標PCPIに含まれるデータの重複解消を開始させる。データ重複解消モジュールは、同一データを有する複数のデータブロックの中から一つだけが得られるまで、同一データを有するブロックを識別し、削除することにより、重複解消手順を実施する。重複解消手順が完了すれば、バックアップファイルシステムのアクティブファイルシステムは重複解消される。しかしながら、エキスポートされた目標PCPIは依然として重複解消されていない。これに応答し、バックアップ管理モジュールは、変更された目標PCPIを生成し、エキスポートする。その後、一つ前の目標PCPIは削除される場合があり、それによって、ファイルシステムの状態のエキスポートされたPCPIのイメージは、重複解消された状態へと移行される。
本発明の一実施形態によるストレージシステム環境を示す略ブロック図である。 本発明の一実施形態によるストレージシステム上で実行される例示的ストレージオペレーティングシステムを示す略ブロック図である。 本発明の一実施形態による例示的inodeを示す略ブロック図である。 本発明の一実施形態による例示的inodeバッファツリーを示す略ブロック図である。 本発明の一実施形態による永久的コンシステンシ・ポイント・イメージ(PCPI)inodeの生成を示す、例示的inodeバッファを示す略ブロック図である。 本発明の一実施形態による、データの書き込みに応答して新たに生成されたバッファツリーを示す、例示的inodeバッファツリーを示す略ブロック図である。 本発明の一実施形態による、複数のバックアップクライアントのファイルシステムの単一宛先ボリュームへの統合を示す、例示的宛先ボリュームを示す略ブロック図である。 本発明の一実施形態による、PCPIを使用しているストレージシステムのデータ重複解消のための手順のステップを詳細に示すフロー図である。 本発明の一実施形態による、PCPIを使用しているストレージシステムのデータ重複解消を示す図である。 本発明の一実施形態による、第1の重複解消手順の完了前に第2の転送が開始されるときの、PCPIを使用しているストレージシステムにおけるデータ重複解消を示す図である。 本発明の一実施形態による、PCPIを使用しているストレージシステムのデータ重複解消を実施する手順のステップを詳細に示すフロー図である。 本発明の一実施形態による、PCPIを使用しているストレージシステムにおけるデータ重複解消を示す図である。 本発明の一実施形態による、PCPIを使用しているシステムにおけるデータ重複解消を示す図である。 本発明の一実施形態による、PCPIを使用しているストレージシステムにおけるデータ重複解消を示す図である。
[例示的実施形態の詳細な説明]
A.ストレージシステム環境
図1は、本発明とともに有利に使用されるストレージシステム120を含む環境100を示す略ブロック図である。ストレージシステムは、ディスクアレイ160のディスク130のような記憶装置上での情報の編成に関連するストレージサービスを提供するコンピュータである。ストレージシステム120は、システムバス125によって相互接続されたプロセッサ122、メモリ124、ネットワークアダプタ126、不揮発性ランダムアクセスメモリ(NVRAM)129、及びストレージアダプタ128を含む。ストレージシステム120はさらに、ストレージオペレーティングシステム200を含み、ストレージオペレーティングシステム200は、好ましくは、ファイルシステムのような上位モジュールを実施し、情報をディレクトリ、ファイル、及び仮想ディスク(以下、「ブロック」)と呼ばれる特殊なタイプのファイルの階層構造として論理編成する。
例示的実施形態として、メモリ124は、ソフトウェアプログラムコードを記憶するために、プロセッサ、及びアダプタによってアドレス指定可能な多数の記憶場所を有する。メモリの一部は、本発明に関連するデータ構造を記憶するために、「バッファキャッシュ」170としてさらに編成される場合がある。コンシステンシ・ポイント間におけるファイルシステムへの変更を記憶するために、NVRAM129をさらに使用する場合がある。また、プロセッサ、及びアダプタは、ソフトウェアコードを実行し、データ構造を操作するように構成された処理要素、及び/又は論理回路を含む場合がある。ストレージオペレーティングシステム200は、その一部が通常、メモリに常駐し、処理要素によって実行され、とりわけ、ストレージシステムによって実行されるストレージオペレーションを実行することにより、システム120を機能的に編成する。当業者には明らかなように、本明細書に記載する本発明の技術に関連するプログラム命令の記憶、及び実行には、他の処理手段や、種々のコンピュータ読取可能媒体を含む他の記憶手段を使用してもよい。
ネットワークアダプタ126は、コンピュータネットワーク140を介してストレージシステム120をクライアント110に接続するために必要な機械的、電気的、及び信号的回路から成り、コンピュータネットワーク140は、ポイント・ツーポイント接続、又はローカルエリアネットワークのような共有媒体からなる場合がある。例えば、コンピュータネットワーク140は、イーサネット(R)ネットワーク、又はファイバチャネル(FC)ネットワークとして実施される場合がある。クライアント110は、トランスミッション・コントロール・プロトコル/インターネット・プロトコル(TCP/IP)のような所定のプロトコルに従って個々のデータフレーム、又はデータパケット150をやりとりすることにより、ネットワーク140を介して、ストレージシステムとの間で通信することができる。
クライアント110は、本明細書に記載するように、アプリケーションを実行するように構成された汎用コンピュータであってもよいし、ストレージシステム120を使用してバックアップオペレーションを行うストレージシステム(すなわち、バックアップストレージシステムのようなもの)であってもよい。すなわち、本発明の代替実施形態では、バックアップストレージシステム120は、長期保管のためにバックアップ/ミラーを記憶するバックアップサーバのような働きをする場合がある。そのような用途の詳細については、「System and Method for Managing a Plurality of Snapshots」と題する、上で参照した米国特許出願に詳しく記載されている。
クライアント110(すなわち、ソースストレージシステム)は、クライアント/サーバモデルの情報配送に従って、バックアップストレージシステム120との間で情報をやりとりする場合がある。すなわち、ネットワーク140を介してパケット150をやりとりすることにより、クライアントはストレージシステムにサービスを要求する場合があり、システムはクライアントから要求されたサービスの結果を返す場合がある。クライアントは、ファイルやディレクトリの形をした情報をアクセスするときは、TCP/IPを介してコモン・インターネット・ファイル・システム(CIFS)プロトコル、又はネットワーク・ファイル・システム(NFS)プロトコルのようなファイルベースのアクセスプロトコルを含むパケットを発行する場合がある。一方、クライアントは、ブロックの形をした情報をアクセスするときは、SCSI over TCP(iSCSI)プロトコルや、SCSI over FC(FCP)プロトコルのようなブロックベースのアクセスプロトコルを含むパケットを発行する場合がある。
ストレージアダプタ128は、システム120上で実行されているストレージオペレーティングシステム200と協働し、ユーザ(すなわち、クライアント)から要求された情報をアクセスする。情報は、書き込み可能なストレージデバイス媒体の任意のタイプのアタッチド・アレイに記憶され、媒体には、例えば、ビデオテープ、光学的、DVD、磁気テープ、バブルメモリ、電気的ランダムアクセスメモリ、又はMEMSデバイスなどがあり、あるいはデータやパリティ情報を記憶するように構成された任意の他の適当な媒体も含まれる。ただし、本明細書で例示するように、情報は、アレイ160のHDD、及び/又はDASDのようなディスク130に記憶されることが好ましい。ストレージアダプタは、従来の高性能FCシリアルリンクトポロジのようなI/O相互接続構成によってディスクに接続される入出力(I/O)インタフェース回路を含む。
アレイ160への情報の記憶は、好ましくは、1以上のストレージ「ボリューム」として実施され、ボリュームは、一群の物理記憶ディスク130を含み、それらが
協働して、ボリューム(複数の場合もあり)上のボリュームブロック番号(vbn)空間の全体的論理構成を規定する。当然ながら必須ではないが、各論理ボリュームは一般に、各自、自分のファイルシステムに関連している。論理ボリューム/ファイルシステム内のディスクは通常、1以上のグループに編成され、各グループは、RAID(Redundant Array of Independent or Inexpensive Disks)として運用される場合がある。RAID4レベル実施形態のような大半のRAID実施形態は、RAIDグループ内の所与の数の物理ディスクにわたってデータ「ストライプ」を冗長書き込みし、更に、そのストライピングされたデータに関連するパリティ情報を適切に記憶することにより、データ記憶の信頼性/完全性を向上させる。RAID実施形態の一例は、RAID4レベル実施形態であるが、当然ながら、本明細書に記載する本発明の原理によれば、他のタイプ、又はレベルのRAID実施形態を使用することも可能であるものと考えられる。
B.ストレージオペレーティングシステム
ディスク130へのアクセスを容易にするために、ストレージシステム200は、write−anywhereファイルシステムを実施する。このファイルシステムは、仮想化モジュールと協働し、ディスク130により提供される記憶空間を仮想化する。ファイルシステムは、情報を名前付きディレクトリ、及びファイルの階層構造としてディスク上に論理編成する。「ディスク」上の各ファイルは、データのような情報を記憶するように構成された一組のディスクブロックとして実施される場合がある一方、ディレクトリは、特殊な形のファイルとして実施され、その中に他のファイルやディレクトリの名前、あるいはそれらへのリンクが記憶される場合がある。仮想化モジュールによれば、ファイルシステムは、情報をディスク上のブロックの階層構造としてさらに論理編成し、それらを名前付きの論理ユニット番号(LUN)としてエキスポートすることが可能になる。
例示的実施形態として、ストレージオペレーティングシステムは、カリフォルニア州サニーベイルにあるネットワーク アプライアンス,インコーポレイテッドから市販されているNetApp Data ONTAPオペレーティングシステムであることが好ましい。ただし、当然ながら、任意の適当なストレージオペレーティングシステムを本明細書に記載する本発明の原理に従って拡張して使用することが可能であるものと考えられる。したがって、「Data ONTAP」という用語を使用した場合でも、この用語は、本発明の教示に適合する任意のストレージオペレーティングシステムを指すものとして広い意味で捉えるべきである。
図2は、本発明とともに有利に使用されるストレージオペレーティングシステム200を示す略ブロック図である。ストレージオペレーティングシステムは、統合ネットワークプロトコルスタックを形成するように編成された一連のソフトウェア層を含む。すなわち、より一般的に言えば、ストレージオペレーティングシステムは、ストレージシステムに記憶された情報をブロックアクセスプロトコル、及びファイルアクセスプロトコルを使用してアクセスするときのデータパスをクライアントに提供するマルチプロトコルエンジンを含む。プロトコルスタックは、IP層512、並びにその支援搬送手段であるTCP層214、及びユーザ・データグラム・プロトコル(UDP)層216のような種々のネットワークプロトコル層との間のインタフェースとして機能するネットワークドライバ(例えば、ギガビット・イーサネット(R)・ドライバ)のメディアアクセス層210を含む。ファイルシステムプロトコル層は、マルチプロトコルファイルアクセスを可能にし、その目的のために、ダイレクトアクセスファイルシステム(DAFS)プロトコル218、NFSプロトコル220、CIFSプロトコル222、及びハイパーテキスト・トランスファ・プロトコル(HTTP)プロトコル224をサポートする。VI層226は、VIアーキテクチャを実施し、DAFSプロトコル218によって必要とされるようなRDMAのようなダイレクト・アクセス・トランスポート(DAT)機能を提供する。
iSCSIドライバ層228は、TCP/IPネットワークプロトコル層を介したブロックプロトコルアクセスを提供する一方、FCドライバ層230は、ストレージシステムとの間で、ブロックアクセス要求、及び応答の送受信を行う。FCドライバ、及びiSCSIドライバは、ブロックに対するFC固有の、又はiSCSI固有のアクセス制御を提供し、したがって、ストレージシステム上のブロックをアクセスするときに、iSCSIとFCPのいずれか一方、あるいは両方へのLUNのエキスポートを管理する。さらに、ストレージオペレーティングシステムは、RAIDシステム240として実施され、I/Oオペレーションに従ってボリューム/ディスクに対する情報の記憶、又は読み出しを管理するストレージモジュールと、SCSIプロトコルのようなディスクアクセスプロトコルを実施するディスクドライバシステム250とを含む。
ディスクソフトウェア層を統合ネットワークプロトコルスタック層に橋渡しするのは、仮想化システムである。仮想化システムはファイルシステム280によって実施され、ファイルシステム280は、例えばvディスクモジュール290、及びSCSIターゲットモジュール270として実施される仮想化モジュールとの間で情報をやりとりする。vディスクモジュール290は、ファイルシステム280の上に層として形成され、ストレージシステムに対するユーザ(システム管理者)発行コマンドに応答して、ユーザインタフェース(UI)275のような管理インタフェースによるアクセスを有効化にする。SCSIターゲットモジュール270は、FC、iSCSIドライバ228,230と、ファイルシステム280との間に配置され、ブロック(LUN)空間とファイルシステム空間の間の変換層を仮想化システムに提供する。ただし、LUNはブロックとして表現される。UI275は、種々の層、及びシステムへの管理者、又はユーザによるアクセスが可能となるような形で、ストレージオペレーティングシステム上に配置される。さらに、後で詳しく説明するように、ファイルシステム280内の一組のPCPIプロセス282によって、PCPIの生成が可能になる。
ファイルシステムは、例えば、ディスクのような記憶装置に記憶された情報のアクセスに使用される論理ボリューム管理機能を備えたメッセージベースのシステムである。すなわち、ファイルシステム280は、ファイルシステムセマンティックを提供するだけでなく、通常ならばボリュームマネージャに関連する機能も提供する。そのような機能には、例えば、(1)ディスクのアグレゲーション、(2)ディスクの記憶帯域幅のアグレゲーション、及び(3)ミラーリング、及び/又はパリティ(RAID)のような信頼性保証がある。ファイルシステム280は、例えば4キロバイト(KB)ブロックを使用し、インデックス・ノード(「inode」)を使用してファイルやファイル属性(例えば、作成時刻、アクセス許可属性、サイズ、及びブロック位置)を識別するブロックベースのオンディスク・フォーマット表現を有するWAFLファイルシステム(以後一般に「write−anywhereファイルシステム」)を実施する。ファイルシステムは、ファイルを使用して、自分が有しているファイルシステムのレイアウトを表すメタデータを記憶する。そのようなメタデータファイルとしては、とりわけ、inodeファイルがある。ディスクからinodeを読み出すためには、ファイルハンドル、すなわちinode番号を含む識別子が使用される。
簡単に言えば、write−anywhreファイルシステムのinodeは全て、inodeファイルとして編成される。ファイルシステム(FS)infoブロックは、ファイルシステム内の情報のレイアウトを指定し、ファイルシステムの他の全てのinodeを含むファイルのinodeを含む。各論理ボリューム(ファイルシステム)は、FS infoブロックを有し、このブロックは、例えばRAIDグループ内の固定位置に記憶されることが好ましい。inodeファイルのinodeはinodeファイルのブロックを直接参照(指し示す)場合もあれば、inodeファイルの間接ブロックを参照し、さらに、その間接ブロックが、inodeファイルのブロックを指し示す場合もある。inodeファイルの直接ブロックの中にはそれぞれ、種々のinodeが埋め込まれ、それらのinodeがそれぞれ、間接ブロックを参照し、さらに、その間接ブロックが、ファイルのデータブロックを参照する。
動作として、クライアント110からの要求は、パケット150としてコンピュータネットワーク140を介してストレージシステム120へ転送され、そこで、ネットワークアダプタ126により受信される。(層210、又は層230)のネットワークドライバは、そのパケットを処理し、必要に応じて、それをネットワークプロトコル層、及びファイルアクセス層へ渡して更なる処理を施してから、write−anyhwereファイルシステム280へと転送する。ここで、ファイルシステムは、要求されたファイルが、「コア」内、すなわちバッファキャッシュ170内に無ければ、それをディスク130からロードするオペレーションを生成する。情報がキャッシュ内に無ければ、ファイルシステム280は、inode番号を使用してinodeファイルを検索し、適当なエントリにアクセスし、論理vbnを読み出す。次にファイルシステムは、その論理vbnを含むメッセージ構造をRAIDシステム240へ渡す。そして、論理vbnは、ディスク識別子、及びディスクブロック番号(disk,dbn)にマッピングされ、ディスクドライバシステム250の適当なドライバへと送られる。ディスクドライバは、指定されたディスク130からdbnをアクセスし、要求されたデータブロック(複数の場合も有り)をストレージシステムによる処理に備えてバッファキャッシュ170に読み出す。要求が完了すると、ストレージシステム(及び、オペレーティングシステム)は、ネットワーク140を介してクライアント110に返答を返す。
バックアップ管理モジュール284は、例えば、バックアップ作成を管理し、クライアントとの間で、バックアプオペレーションを実施するための情報をやりとりする。また、バックアップ管理モジュール284は、ファイルシステムのデータ重複解消(dedup)モジュール286と協働し、本発明の一実施形態に従って、PCPIを使用しているストレージシステム120においてデータ重複解消を実施する。重複解消モジュール286は、ストレージシステムによって記憶される重複データブロックの量を減らすために、1以上のデータ重複解消手順を実施する。例示的実施形態として、データ重複解消モジュールは例えば、2005年4月13日に出願された「Method and Apparatus for Identifying and Eliminating Duplicate Data Blocks and Sharing Data Blocks in a Storage System」と題するLing Zheng他による米国特許出願第11/105,895号に記載されているデータ重複解消技術を実施する場合があり、この文献の内容は、参照により本明細書に援用される。ただし、代替実施形態では、さらに他の重複解消技術を更に使用したり、別の重複解消技術を使用する場合もある。
なお、ストレージシステムにおいて受信されたクライアント要求に対し、データストレージアクセスを実施するために必要となるストレージオペレーティングシステムを貫通する上記のソフトウェア「パス」は、代替としてハードウェアで実施してもよい。すなわち、本発明の代替実施形態において、ストレージアクセス要求データパスは、フィールド・プログラマブル・ゲート・アレイ(FPGA)、又は特定用途向け集積回路(ASIC)の中に埋め込まれた論理回路として実施される場合がある。この種のハードウェア実施形態によれば、クライアント110により発行された要求に応答してストレージシステム120によって提供されるストレージサービスの性能を向上させることができる。また、本発明の更に別の代替実施形態として、アダプタ126、128の処理要素は、パケット処理オペレーション、及びストレージアクセスオペレーションの負荷の一部、又は全部をプロセッサ122から取り除くように構成される場合があり、それによって、システムによって提供されるストレージサービスの処理能力は、向上する場合がある。当然ながら、本明細書に記載する種々のプロセス、アーキテクチャ、及び手順は、ハードウェアで実施しても、ファームウェアで実施しても、ソフトウェアで実施してもよい。
本明細書では、「ストレージオペレーティングシステム」という用語は通常、ストレージシステムにおいてストレージ機能を実施するためのコンピュータ実行可能コードを意味し、例えば、データアクセスを管理し、ファイルサーバの場合には、ファイルシステムセマンティックを実施することもあるコンピュータ実行可能コードを意味する。その意味で、Data ONTAPソフトウェアは、マイクロカーネルとして実施されるストレージオペレーティングシステムであって、かつWAFLファイルシステムセマンティックを実施し、データアクセスを管理するためのファイルシステム280を含む、そのようなストレージオペレーティングの一例である。また、ストレージオペレーティングシステムは、UNIXやWindows XPのような汎用オペレーティングシステム上で動作するアプリケーションプログラムとして実施してもよいし、あるいは、本明細書に記載するようなストレージアプリケーションに合わせて構成された構成変更機能を備えた汎用オペレーティングシステムとして実施してもよい。
さらに、当業者には分かるように、本明細書に記載する本発明の技術は、いかなるタイプの特殊目的のコンピュータ(例えばファイルサーバ、ファイラ、又はマルチプロトコルストレージアプライアンス)にも、汎用のコンピュータにも適用することができ、例えば、ストレージシステム120として実施され、又はストレージシステム120を含むスタンドアロンのコンピュータ、あるいはその一部にも適用することができる。本発明とともに有利に使用されるストレージシステムアプライアンスの一例は、2002年8月8日に出願された「Protocol Storage Appliance that Provides Integrated Support for File and Block Access Protocols」と題する米国特許出願第10/215,917号に記載されている。また、本発明の教示は、種々のストレージシステムアーキテクチャに適合させることが可能であり、限定はしないが、例えば、ネットワーク・アタッチド・ストレージ環境、ストレージ・エリア・ネットワーク、あるいは、クライアントコンピュータやホストコンピュータに直接取り付けされたディスクアセンブリにも適用することが可能である。したがって、「ストレージシステム」という用語は、ストレージ機能を実施するように構成され、他の装置又はシステムに関連する何らかのサブシステムだけでなく、そのような構成も含むものとして広い意味で捉えなければならない。
C.オンディスク・ファイルシステム構造
例示的実施形態として、Write−anywhereファイルシステムでは、ファイル(又は、他のデータコンテナ)は、ディスク130への記憶に適したinodeデータ構造として表現される。図3は、inode300を示す略ブロック図である。inode300は、メタデータ部310、及びデータ部350を有することが好ましい。各inode300のメタデータ部310に記憶される情報はファイルを表し、例えば、ファイルのタイプ312(例えば、通常、ディレクトリ、仮想ディスクなど)、ファイルのサイズ314、ファイルのタイムスタンプ(アクセス、及び/又は変更)316、並びに、ファイルの所有者、例えばユーザID(UID318)、及びグループID(GID320)を含む。ただし、タイプフィールド312に規定されたファイル(inode)のタイプによって、各inodeのデータ部350の中身は、異なる解釈をされる場合がある。例えば、ディレクトリinodeのデータ部350は、ファイルシステムによってコントロールされるメタデータを有する一方、通常inodeのデータ部は、ファイルシステムデータを有する場合がある。後者の場合、データ部350は、ファイルに関連するデータの表現物を含む場合がある。
通常オンディスクinodeのデータ部350は、ファイルシステムデータ、又はポインタを含む場合があり、後者は、ファイルシステムデータを記憶するために使用されるディスク上の4KBデータブロックを参照する。好ましくは、ディスク上のデータをアクセスするときにファイルシステムとRAIDシステム240の間の効率を向上させるために、各ポインタは論理vbnを含む。inodeのサイズには制限があるため(例えば、128バイト)、64バイト以下のサイズのファイルシステムデータは、その全部が、そのinodeのデータ部の中にに完全に表現される。一方、ファイルシステムデータのサイズが、64バイトよりも大きく、且つ64KB以下であった場合、inode(例えば、第1レベルinode)のデータ部は、最大で16個までのポインタを含み、各ポインタが、ディスク上の4KBのデータブロックを参照する。
また、データのサイズが64KBよりも大きく、且つ64メガバイト(MB)以下である場合、inode(例えば、第2レベルinode)のデータ部350にある各ポインタは、1024個のポインタを有する間接ブロック(例えば、第1レベルブロック)を参照し、各ポインタが、ディスク上の4KBデータブロックを参照する。64MBよりも大きなサイズのファイルシステムデータについては、inode(例えば、第3レベルinode)のデータ部350にある各ポインタは、1024個のポインタを含む二重間接ブロック(例えば、第2レベルブロック)を参照し、さらに、各ポインタが、間接(例えば、第1レベル)ブロックを参照する。そして、その間接ブロックが、1024個のポインタを有し、各ポインタが、ディスク上の4KBのブロックを参照する。ファイルをアクセスする場合、ファイルの各ブロックは、ディスク130からバッファキャッシュ170へロードされる場合がある。
オンディスクinode(又は、ブロック)が、ディスク130からバッファキャッシュ170へロードするとき、それに対応するコア内構造が、オンディスク構造に埋め込まれる。例えば、inode300の周りを囲む点線は、オンディスクinode構造のコア内表現を示している。コア内構造は、オンディスク構造、及びメモリ上のデータ(ディスク上に無い)の管理に必要となる他の情報を記憶する一つのメモリブロックである。他の情報には、例えば、「ダーティ」ビット360がある。例えば、書き込みオペレーションによる命令に従って、inode(又はブロック)内のデータが更新/変更された後、変更されたデータは、ダーティビット360を使用して、「汚れた」ものとしてマーキングされ、その後、そのinode(ブロック)をディスクに「フラッシュ」(記憶)できるようにする。inode、及びinodeファイルを含む、WAFLファイルシステムのコア内構造、及びオンディスクフォーマット構造については、1998年10月6日に発行された「Method for Maintaining Consistent States of a File System and for Creating User-Accessible Read-Only Copies of a File System」と題するDavid Hitz他による米国特許第5,819,292号に開示、及び記載されている。
Write−anywhereファイルシステム(例えば、WAFLファイルシステム)は、自分が有しているアクティブファイルシステムの「スナップショット」を生成する機能を有する場合がある。「アクティブファイルシステム」とは、データの書き込みと読み出しが両方とも可能なファイルシステムであり、より一般的に言えば、読み出しI/Oオペレーションと書き込みI/Oオペレーションのいずれにも応答するアクティブ記憶手段である。なお、「スナップショット」は、ネットワーク・アプライアンス,インコーポレイテッドの商標であり、本明細書では、永久的コンシステンシ・ポイント(CP)イメージを指して使用される。永久的コンシステンシ・ポイント・イメージ(PCPI)とは、名前によるアクセスが可能な、或る時点におけるデータの空間保守的な読み出し専用イメージであり、何らかの過去の時点におけるそのデータ(例えば、ストレージシステム)の一貫性のあるイメージを提供する。具体的には、PCPIは、ストレージデバイス(例えばディスク、又は他の永久的メモリ)に記憶されるアクティブファイルシステム、ファイル、又はデータベースのような記憶要素のある時点における表現であり、自分自身を他の時点において作成された他のPCPIから区別する名前、その他の識別子を有する。WAFLファイルシステムの場合、PCPIは、全てのメタデータを含めむ、ファイルシステムに関する全ての情報を有するアクティブファイルシステムイメージである。PCPIは、イメージが作成された特定時点におけるアクティブファイルシステムに関する他の情報(メタデータ)を更に有する場合がある。本明細書では、ネットワークアプライアンスの商標権を損なうことなく、「PCPI」と「スナップショット」を交換可能に使用することができる。
Write−anywhereファイルシステムは、規則正しいスケジュールに基づいて一般に生成される複数のPCPIをサポートする場合がある。用語の一般性を制限することなく、各PCPIは、例えば、アクティブファイルシステムに変更が加えられるのに従って、アクティブファイルシステムから段々と変化してゆくファイルシステムのコピーを意味する場合がある。WAFLファイルシステムでは、アクティブファイルシステムが新たなディスク位置に書き込まれるときに、PCPIは、その場に留まるため、アクティブファイルシステムは、PCPIから変化する。各PCPIは、所定の時点で作成された記憶要素(例えば、アクティブファイルシステム)の復元可能バージョンであり、上記のように、「読み出し専用」アクセスが可能で、かつ「空間保守的」である。空間保守的とは、複数のPCPIにおける記憶要素の共通部分が、同じファイルシステムブロックを共有することを意味する。種々のPCPI間の創意は、余分なストレージブロックを必要とする。記憶要素の複数のPCPIは、各PCPIがそれぞれディスク空間を消費する複数の独立したコピーではない。従って、ファイルシステムに対するPCPIの作成は、何もエンティティをコピーする必要がないため、即座に行われる。読み出し専用アクセス属性は、PCPIが、アクティブファイルシステムにおいて単一の書き換え可能イメージに密接に結合されているため、PCPIに変更を加えることは出来ないことを意味する。アクティブファイルシステム上のファイルと、PCPI上の同じファイルとの間のこの密接な結合により、複数の「同じ」ファイルを使用する必要性は無くなる。WAFLファイルシステムの例として、PCPIについては、ネットワーク・アプライアンスにより出版されたTR3002に、「File System Design for a NFS File Server Appliance」と題してDavid Hitz他により記載され、また、「Method for Maintaining Consistent Status of a File System and for Creating User-Accessible Read-Only Copies of a File System」と題するDavid Hitzによる米国特許第5,819,292号にも記載されており、これらはいずれも、参照により完全に説明されたものとして本明細書に援用される。
簡単に言えば、PCPIは、アクティブファイルシステムと一緒にディスク上に記憶され、ストレージオペレーティングシステムからの要求に応じて、ストレージシステムのメモリにロードされる。PCPI、及びアクティブファイルシステムのオンディスク構成は、図4に示す例示的なファイルシステムinode構造400に関する以下の説明から理解できる。ファイルシステム情報(fsinfo)ブロック402は、ファイルシステムに関連するinodeファイルを表す情報を含むinodeファイル405のinodeを有する。例示的なファイルシステムinode構造として、inodeファイル405のinodeは、inodeファイル間接ブロック410を参照する(指し示す)ポインタを含む。inodeファイル間接ブロック410は、inodeファイルブロックを参照する一組のポインタを有し、各inodeファイルブロックは、inode417のアレイを含み、さらに、inode417は、間接ブロック419へのポインタを含む。間接ブロック419は、ファイルデータブロック420A、420B、及び420Cへのポインタを含む。ファイルデータブロック420(A〜C)はそれぞれ、例えば、4キロバイト(KB)のデータを記憶する能力を有する。
ファイルシステムが、自分が有するアクティブファイルシステムのPCPIを生成するとき、図5に示すように、PCPI fsinfoブロック502が生成される。PCPI fsinfoブロック502は、inodeファイル505のPCPI inodeを含む。inodeファイル505のPCPIinodeは、実質的に、inodeやブロックのような共通部分をアクティブファイルシステムとの間で共有しているファイルシステム400のinodeファイル405のinodeの複製である。例えば、例示的なファイルシステム構造500は、図4に示すように、inodeファイル間接ブロック410、inode417、間接ブロック419、及びファイルデータブロック420A〜Cを含む。ユーザが、あるファイルデータブロックに変更を加えると、ファイルシステムは、その新たなデータブロックをディスクに書き込み、新たに作成されたブロックを指し示すようにアクティブファイルシステムを変更する。図6は、あるファイルデータブロックに変更が加えられた後の、例示的なinodeファイルシステム構造600を示している。この例では、ファイルデータブロック420Cに変更が加えられ、ファイルデータブロック420C´になっている。その結果、変更されたファイルデータブロックの中身は、例示的ファイルシステムの関数として、ディスク上の新たな位置に書き込まれる。新たな位置に書き込まれるため、間接ブロック619を書き換える必要がある。そして、間接ブロック619が書き換えられた結果、inode617も書き換える必要がある。同様に、inodeファイル間接ブロック610、及びinodeファイル605のinodeも、書き換える必要がある。
このように、或るファイルデータブロックに変更が加えられた後、PCPI inode505は、元のinodeファイル間接ブロック410へのポインタを含み、さらに、元のinodeファイル間接ブロック410が、inode417、及び間接ブロック410を通して、元のファイルデータブロック420A、420B、及び420Cを指し示す。また、新たに書き込まれた間接ブロック619は、未変更のファイルデータブロック420A、及び420Bへのポインタを含む。すなわち、アクティブファイルシステムのファイル内の未変更のデータブロックは、PCPIファイル内の対応するデータブロックとの間で、アクティブファイルシステム上でPCPIファイルのものとは異なるものに変更されたデータブロックだけを共有する。
しかしながら、間接ブロック619は、アクティブファイルシステムの新たな構成を表す変更後のデータブロック420C´へのポインタをさらに含む。inodeファイル605に対し、新たな構造600を表す新たなinodeが決められる。なお、それらのブロックの再利用や上書きは、それらのブロックが全てのPCPIから開放されるまで、いずれかのPCPIブロック(例えば、505、410、及び420C)に記憶されるメタデータ(図示せず)によって防止される。従って、inodeファイル605のアクティブファイルシステムinodeは、新たなブロック610、617、619、420A、420B、及び420C´を指し示しているが、PCPIが完全に開放されるまで、古いブロック505、410、及び420Cも維持される。
本発明の一実施形態によれば、バックアップオペレーションの際に、ストレージシステムの1以上のクライアントからの複数のボリューム、ファイルシステム、クオータツリー(qtree)のようなデータ集合を合併し、ストレージシステム上の例えばボリュームのような単一のデータ集合の中に記憶することができる。合併により、複数のソースデータ集合を単一のエンティティとしてバックアップストレージシステム120上で管理することが可能になる。複数の集合を合併するように構成されたバックアップストレージシステム120の例示的ファイルシステム700を図7に示す。この例示的実施形態では、クライアントの記憶されたファイルシステムを有するストレージシステムに関連するストレージボリュームに、ボリューム1というラベルが付けられている(705)。ボリューム705は、バックアップクライアント1〜3に関連するディレクトリ710〜730を含む。
バックアップオペレーションの際、バックアップストレージシステム120は、例えば、「System and Method for Managing a Plurality of Snapshots」と題する米国特許出願第10/101,901号に記載のバックアップ/リストアオペレーションを実施することにより、各クライアントのファイルシステムを適当なディレクトリに複製する。従って、各クライアントディレクトリは、クライアントに関連するファイルシステムの、実質的にルート、すなわち最上位ディレクトリになる。クライアントディレクトリ710、720、及び730は、クライアントファイルシステムのレプリカ、すなわちバックアップを含む。例えば、ディレクトリ710は、クライアント1(715)に関連するファイルシステムのバックアップコピーを記憶する。同様に、クライアント2ディレクトリ720は、クライアント2(725)に関連するファイルシステムのバックアップコピーを記憶し、クライアント3ディレクトリ730は、クライアント3(735)に関連するファイルシステムのバックアップコピーを記憶する。ファイルシステム700の単一のPCPIを生成することにより、バックアップストレージシステム120は、各クライアントについて個別のボリュームを予約することなく、クライアントが有しているファイルシステムのそれぞれのPCPIを効率的に生成した。
D.PCPIを使用しているストレージシステムのためのデータ重複解消
本発明は、1以上の永久的コンシステンシ・ポイント・イメージ(PCPI)を使用しているストレージシステムにおけるデータ重複解消を管理するシステム、及び方法を提供する。具体的には、PCPIをバックアップの形で使用しているバックアップストレージシステムにおいて、バックアップ管理モジュールは、データ重複解消モジュールとの間で情報をやりとりし、バックアプストレージシステム中の1以上の、例えばボリュームのようなデータ集合に対し、データ重複解消を実施するように構成される。動作として、バックアップ管理モジュールは、ソースストレージシステム(「ソース」)から転送要求を受信し、それに応じて、ソースからバックアップストレージシステム上の宛先ボリュームへのデータ集合の転送を開始する。複数の転送を同時に実施することにより、複数のソースを同じ宛先ボリュームへバックアップする場合もある。所与の宛先ボリュームへの最後のデータ転送が完了すると、バックアップ管理モジュールは、ファイルシステムと協働し、宛先ボリュームの第1のPCPIを生成する。次に、バックアップ管理モジュールは、データ転送中に生成された一時ファイルのクリーンアップオペレーションを実施し、その後、宛先ボリュームの第2のPCPIを生成する。次に、バックアップ管理モジュールは、第3のPCPI、すなわち目標PCPIを生成し、その後、その目標PCPIを1以上のクライアントへエキスポートする。
目標PCPIが生成されると、転送要求は完了したものとみなされ、転送されたデータの、バックアップストレージシステムのクライアントによるアクセスが許可される。また、目標PCPIが生成されると、バックアップ管理モジュールは、データ重複解消モジュールに警告を発し、目標PCPIに含まれるデータの重複解消を開始させる。データ重複解消モジュールは、同一のデータブロックを唯一つだけ有する状態になるまで、同一のデータブロックを識別し、削除することにより、データ重複解消手順を実施する。データ重複解消手順が完了すると、バックアップストレージシステムのアクティブファイルシステムの重複解消は完了するが、エキスポートされた目標PCPIは、依然として重複解消されていない。これに応答して、バックアップ管理モジュールは、変更された目標PCPIを生成し、エキスポートする。その後、以前の目標PCPIは削除することができ、それによって、ファイルシステムの状態のエキスポートされたPCPIのイメージは、重複解消済み状態へと移行される。
図8は、本発明の一実施形態による、PCPIを使用しているストレージシステムにおけるデータ重複解消を管理する手順800のステップの詳細を示すフロー図である。手順800は、ステップ805から開始され、ステップ810へと進み、そこで、バックアップ管理モジュール284は、1以上のバックアップクライアントから転送要求を受信し、それに応じて、ソースからの転送を開始する。すなわち、クライアント(すなわち、ソース)は、新たなバックアップオペレーションを開始すべきことを知らせる要求をバックアップ管理モジュールへ送信することができる。これに応答し、バックアップ管理モジュールは、転送されたデータをソースから受信し、ストレージシステムが有するファイルシステムの中にバックアップを生成する。本明細書では、「ソース」とは、ファイルシステム、ボリューム、及び/又はqtreeといったデータ集合をバックアップのために、ストレージシステム上の同じ宛先ボリュームへ転送する1以上のクライアントを意味する。データ転送は、ステップ815において最後のデータ転送が完了するまで続けられる。なお、データ転送に要する時間は、様々に異なる場合がある。すなわち、例えば、単一のソースは、複数のデータ集合を転送する場合があり、各転送は、異なる量の時間を消費する場合がある。最後のデータ転送が完了すると、ステップ830において、バックアップ管理モジュール284は目標PCPIを生成し、エキスポートする。目標PCPIをエキスポートすることは、バックアップ管理モジュール284が、目標PCPIをストレージシステムのクライアントから見える状態にし、アクセス可能な状態にすることを意味する。
目標PCPIが生成され、エキスポートされると、転送は完了したものとみなされ、データは、ストレージシステムからアクセス可能な状態にされる。ステップ835において、バックアップ管理モジュール284は、重複解消モジュール286に警告を発し、宛先ボリュームへ転送されたデータの重複解消を開始させる。本発明の一実施形態によれば、重複解消モジュールは、「Method and Apparatus for Identifying and Eliminating Duplicate Data Blocks and Sharing Data Blocks in a Storage System”と題するLing Zheng他による上記米国特許出願第11/105,895に記載されている重複解消技術を使用する場合がある。ただし、本発明の代替実施形態によれば、いかなるデータ重複解消技術を使用してもよい。重複解消完了時点で、各ブロックは重複しないものでなければならず、すなわち、同一のデータを有する2つのデータブロックがあってはならない。
なお、重複解消モジュール286は、もし、他の重複解消手順が進行中であることを検出した場合、それに応答して、第1の重複解消プロセスが完了する時まで、第2の重複解消プロセスを開始しない。重複解消手順が完了すると、ステップ840において、重複解消モジュール286はバックアップ管理モジュール284に警告を発し、完了を伝える。ステップ845において、バックアップ管理モジュール284は、次の転送が開始されたか否かを判定する。すなわち、バックアップ管理モジュール284は、重複解消手順の進行中にソースからの第2の転送が開始されたか否かを判定する。ステップ850において、何も転送が行われていなければ、手順800はステップ855へと分岐し、バックアップ管理モジュール284は、変更された目標PCPIを生成し、エキスポートする。さらに、バックアップ管理モジュール284は、目標PCPIを削除し、その後、手順800はステップ860において終了する。一方、ステップ850において転送が開始されていた場合、手順800はステップ860へと分岐し、終了する。
図9は、本発明の一実施形態による、PCPIを使用しているストレージシステムにおけるPCPIの管理を示す図である。まず、ステップ905において、バックアップオペレーション、例えば、ストレージシステムのバックアップ1、バックアップ2、及びバックアップ3が開始される。これらのバックアップオペレーションに要する時間は、異なる場合がある。例えば、バックアップ2は、バックアップ1やバックアップ3の完了に要する時間よりもはるかに長い時間を完了までに要する場合がある。手順800を参照して上で説明したように、910の時点で、バックアップオペレーションの最後の転送は完了し、920の時点で、目標PCPIが生成される。従って、920の時点で、目標PCPIはクライアントにエキスポートされ、クライアントからアクセスできる状態にされる。目標PCPIが生成されると、重複解消手順が開始され、それが完了すると、ステップ925で、変更された目標PCPIが生成される。この変更されたPCPIを生成するときに、元の目標PCPIは削除され(開放され)、それによって重複解消状態へと移行する。
図10は、本発明の一実施形態による、PCPIを使用しているストレージシステムにおけるPCPIの管理を示す図である。環境900と同様に、バックアップオペレーションの第1のセットは、905の時点で開始され、対応するデータ転送は、910の時点で終了する。次に、目標PCPIが生成され、920の時点で、データ重複解消手順が開始される。データ重複解消手順は、925の時点で完了する。一方、重複解消手順の終了より前の1005の時点で、バックアップオペレーションの第2のセットが開始される。この第2のセットに対応するデータ転送は、1010の時点で終了する。1020の時点で、第2の目標PCPIが生成され、第2のデータ重複解消が行われる。第2のデータ重複解消が完了すると、1025の時点で、変更された目標PCPIが生成される。この時点で、第2の目標PCPIは消去されるが、920の時点で生成された元の目標PCPIは維持される。
図11は、本発明の代替実施形態による、PCPIを使用しているストレージシステムにおいてデータ重複解消を実施する手順1100のステップを詳細に示すフロー図である。このような代替実施形態は、長い保有期間を有する目標PCPIが生成され、その目標PCPIを削除することができない場合に使用されることがある。手順1100は、ステップ1105から開始され、ステップ1110へ進み、そこで、バックアップ管理モジュール284は、1以上のバックアップクライアントから転送要求を受信し、それに応じて、ソースからの転送を開始する。すなわち、クライアント(すなわち、ソース)は、新たなバックアップオペレーションを開始すべきことを知らせる要求をバックアップ管理モジュールへ送信することができる。これに応答し、バックアップ管理モジュールは、ソースから送信されたデータを受信し、ストレージシステムが有しているファイルシステムの中に、バックアップを生成する。データ転送は、最後の転送がステップ115で完了するまで継続される。
最後のデータ転送が完了すると、次にバックアップ管理モジュール284は、ステップ1130において、重複解消モジュール286に警告を発し、宛先ボリュームの目標PCPIの重複の重複解消を開始させる。重複解消手順が完了すると、ステップ1135において、重複解消モジュール286は、バックアップ管理モジュール284に警告を発し、完了を伝える。次に、バックアップ管理モジュール284は、ステップ1140において、目標PCPIを生成し、エキスポートする。目標PCPIが生成され、エキスポートされると、転送は完了したものとみなされ、データは、ストレージシステムからアクセス可能な状態にされる。そして、手順はステップ1145において終了する。上記のように、この代替実施形態は、PCPIが、(実質的に)長い保有期間を有する場合に使用されることがある。手順1100は、重複解消手順が完了するまで目標PCPIを生成しないことにより、確実に、重複解消されたデータだけが、目標PCPIに記憶されるようにする。
図12は、手順1100を参照して上で説明したような代替実施形態による、PCPIの管理を示す図である。1210の時点で最後のデータ転送が完了すると、それに応じて、1205の時点で、バックアップオペレーションは解消される。データ重複解消手順は、この時点で開始される。これが、手順800を参照して上で説明した実施形態と本実施形態との違いである。重複解消手順が完了すると、1220の時点で、目標PCPIが生成される。従って、環境1200において、クライアントは、データの重複解消が済むまで、データをアクセスすることができない。このようにする必要性は、例えば、長い保有期間を有するPCPIが生成される場合に発生する。
図13は、本発明の一実施形態によるPCPIの管理を示す図である。実施形態によっては、バックアップオペレーションを含むデータ転送が、同じ時点で開始されない場合がもる。すなわち、環境1300では、バックアップオペレーションは、1305の時点で開始されるが、全てのバックアップが、その時点でデータ転送を開始するとは限らない。1310の時点で、目標PCPIが生成され、重複解消手順が開始される。重複解消手順が完了すると、1315の時点で、変更された目標PCPIが生成され、目標PCPIは削除される。
図14は、本発明の代替実施形態による、重なり合うデータ転送によるPCPIの管理を示す図である。環境1300と同様に、まず1305の時点で、バックアップオペレーションに関連する3つのデータ転送の第1のセットが開始され、それが、1310の時点で、第1の目標PCPIの生成とともに終了する。重複解消手順は1310の時点でも開始される。一方、データ転送の第1のセットが完了する前に、バックアップ4、5、及び6が開始される。後者3つの転送は、1405の時点で終了し、第2の目標PCPIが生成される。しかしながら、第2の目標PCPIが生成されたとき、第1の重複解消手順は依然として進行中である。

したがって、1410の時点で第1の重複解消手順が完了したときに、例えば、バックアップ4が、バックアップ1のインクリメンタルバックアップである場合のように、
新たなバックアップのうちのいずれかが、インクリメンタルバックアップでない限り、
変更された目標PCPIは生成されない。代わりに、第2の重複解消手順が開始され、1415の時点で第2の重複解消手順が完了すると、変更された第2の目標PCPIが生成され、第2の目標PCPI(1405の時点で前回生成されたもの)は削除される。
もう一度まとめると、本発明は、1以上の永久的コンシステンシー・ポイント・イメージ(PCPI)を使用しているストレージシステムにおけるデータ重複解消を管理するシステム、及び方法を提供する。具体的には、バックアップの一形態としてPCPIを使用しているバックアップストレージシステムにおいて、バックアップ管理モジュールは、データ重複解消モジュールとの間で情報をやりとりし、バックアップストレージシステム内の例えばボリュームやファイルシステムのような1以上のデータ集合に対し、データ重複解消を実施するように構成される。動作として、バックアップ管理モジュールは、ソースストレージシステムから転送要求を受信すると、それに応じて、ソースからバックアップストレージシステム上の宛先ボリュームへのデータ集合の転送を開始する。最後のデータ転送が完了すると、バックアップ管理モジュールは次に、目標PCPIを生成し、その後、その目標PCPIを1以上のクライアントへエキスポートする。
目標PCPIが生成されると、転送要求は完了したものとみなされ、転送されたデータは、バックアップストレージシステムのクライアントからアクセス可能な状態にされる。さらに、目標PCPIが生成されると、バックアップ管理モジュールは、データ重複解消モジュールに警告を発し、目標PCPIに含まれるデータの重複解消を開始させる。データ重複解消モジュールは、同一のデータブロックの中から一つだけを有する状態になるまで、同一のデータブロックを識別し、削除することにより、重複解消手順を実施する。例えば、この重複解消手順は、目標PCPIをエキスポートする宛先となるクライアントにとって透過的に行われる。重複解消手順が完了すると、バックアップ管理モジュールは、変更された目標PCPIを生成し、エキスポートする。その後、以前の目標PCPIは削除することができ、それによって、ファイルシステムの状態のエキスポートされたPCPIが有するイメージを重複解消済み状態に移行させる。従って、本発明によれば、非同期ミラーの透過的な重複解消が可能となり、同時に、宛先ボリュームを読み出し専用レプリカとしてエキスポートすることが可能となり、すなわち、重複解消手順が実行されている最中に、目標PCPIをクライアントから使用可能にすることが可能となる。
なお、本発明は、ソースがストレージシステムからなるバックアップストレージシステム環境を例として書かれている。しかしながら、本発明の原理は、異なるソースシステムを有する環境においても使用することができる。例えば、ソースは、データベース管理システムや電子メールサーバなどのようなアプリケーションを実行しているコンピュータから成る場合もある。ソースは、自分の有しているデータのPCPIを生成し、それを宛先へ転送する場合があり、そこで目標PCPIが生成され、エキスポートされる。次に、重複解消プロセスが実施され、それが終了すると、変更されたPCPIが生成され、エキスポートされる。そのような複製は、災害復旧やフェイルオーバオペレーションなどに使用されることがある。
また、本明細書の説明は、ストレージ重複解消を例として書かれているが、本発明の原理は、通信リンク上での重複解消を提供するためにも使用される場合がある。そのような代替実施形態では、送信側システムは、データの伝送に使用される帯域幅の大きさを最小限に抑えるために、上記のデータ重複解消技術を実施する場合がある。このような通信ベースの重複解消は、例えば、バックアップ階層が規定され、データが第1のストレージシステムへバックアップされ、それがさらに第2のストレージシステムへとバックアップされるような場合に発生する。そのような場合、第1のストレージシステムに対する重複解消の結果、第2のストレージシステムへのその後のバックアップオペレーションにおいて消費される帯域幅が低減される。
上記の説明は、本発明の特定の幾つかの実施形態に関するものである。しかしながら、当業者には明らかなように、それらの実施形態の利点の一部、又は全部を維持しながらも、記載した実施形態に対して種々の変形や変更を施すことが可能である。例えば、本発明の教示は、当然ながら、ソフトウェア(コンピュータ上で実行されるプログラム命令を含むコンピュータ読取可能媒体を含む)でも、ハードウェアでも、ファームウェアでも、あるいはそれらの組み合わせでも実施することが可能である。さらに、本明細書の説明は、ファイルシステムを例として書かれているが、本発明は、LUN、及び/又は他のブロックベースのストレージのようなファイルシステム以外のストレージにも使用することが可能である。従って、本明細書の説明は単なる例として捉えるべきものであり、本発明の範囲を制限する意図はない。従って、添付の特許請求の範囲の目的は、そのような変形や変更も、本発明の真の思想、及び範囲に含めることにある。

Claims (9)

  1. トレージシステムにおいてデータ重複解消を管理する方法であって、
    ライアントからデータの転送を受けるステップと、
    前記転送されたデータの第1の永久的コンシステンシ・ポイント・イメージを生成するステップであって、前記第1の永久的コンシステンシ・ポイント・イメージは、ある時点での前記転送されたデータの読み出し専用表現であり、前記第1の永久的コンシステンシ・ポイント・イメージにおける1以上のブロックが、前記第1の永久的コンシステンシ・ポイント・イメージにおける他のブロックと同一である、転送されたデータの第1の永久的コンシステンシ・ポイント・イメージを生成するステップと、
    記ストレージシステムにより、前記第1の永久的コンシステンシ・ポイント・イメージを1以上のクライアントへエキスポートするステップであって、当該エキスポートは、前記第1の永久的コンシステンシ・ポイント・イメージを、前記1以上のクライアントから見える状態にし、かつアクセス可能な状態にする、記ストレージシステムにより、前記永久的コンシステンシ・ポイント・イメージを1以上のクライアントへエキスポートするステップと、
    前記転送されたデータに対してデータ重複解消を実施し、冗長なデータブロックを削除するステップと、
    前記重複解消された転送されたデータの第2の永久的コンシステンシ・ポイント・イメージを生成するステップであって、前記第2の永久的コンシステンシ・ポイント・イメージは、ある時点での前記重複解消された転送されたデータの読み出し専用表現であり、前記第2の永久的コンシステンシ・ポイント・イメージの各ブロックが一意である、第2の永久的コンシステンシ・ポイント・イメージを生成するステップと、
    記ストレージシステムにより、前記第2の永久的コンシステンシ・ポイント・イメージを1以上のクライアントへエキスポートするステップであって、当該エキスポートは、前記第2の永久的コンシステンシ・ポイント・イメージを、前記1以上のクライアントから見える状態にし、かつアクセス可能な状態にする、前記ストレージシステムにより、前記第2の永久的コンシステンシ・ポイント・イメージを1以上のクライアントへエキスポートするステップ
    前記第1の永久的コンシステンシ・ポイント・イメージを削除するステップと
    を含む方法。
  2. 記クライアントからデータの転送を受けるステップは、各データストリームが前記ストレージシステムへバックアップされるべきデータ集合に関連する、1以上のデータストリームを受信するステップを含む、請求項1に記載の方法。
  3. 前記データ集合は、ボリューム、又はファイルシステムからなる、請求項2に記載の方法。
  4. 前記データ重複解消は、前記1以上のクライアントに対して透過的に行われる、請求項1〜3のいずれか一項に記載の方法。
  5. データ重複解消を管理するように構成されたシステムであって、
    1以上のクライアントに相互接続され、ストレージオペレーティングシステムを実行するように構成されたストレージシステムを含み、
    前記ストレージオペレーティングシステム
    1以上のクライアントからデータ転送を受け、前記転送されたデータの第1の永久的コンシステンシ・ポイント・イメージを生成し、前記第1の永久的コンシステンシ・ポイント・イメージを、前記1以上のクライアントから見える状態にし、かつアクセス可能な状態にするように構成されたバックアップ管理モジュールであって、前記第1の永久的コンシステンシ・ポイント・イメージは、ある時点での前記転送されたデータの読み出し専用表現であり、前記第1の永久的コンシステンシ・ポイント・イメージにおける1以上のブロックが、前記第1の永久的コンシステンシ・ポイント・イメージにおける他のブロックと同一である、バックアップ管理モジュールと、
    記転送されたデータに対するデータ重複解消を実施し、冗長なデータブロックを削除するように構成された重複解消モジュールと
    を含み、
    前記バックアップ管理モジュールは、前記重複解消モジュールによる前記データ重複解消の完了に応答して、前記重複解消された転送されたデータの第2の永久的コンシステンシ・ポイント・イメージを生成し、前記第2の永久的コンシステンシ・ポイント・イメージを、前記1以上のクライアントから見える状態にし、かつアクセス可能な状態にし、前記第1の永久的コンシステンシ・ポイント・イメージを削除するようにさらに構成され、
    前記第2の永久的コンシステンシ・ポイント・イメージは、ある時点での前記重複解消された転送されたデータの読み出し専用表現であり、前記第2の永久的コンシステンシ・ポイント・イメージにおける各ブロックが一意のブロックである、システム。
  6. 前記転送されたデータは、ボリューム、又はファイルシステムを含む、請求項に記載のシステム。
  7. 前記データ重複解消は、前記1以上のクライアントに対して透過的に行われる、請求項5又は請求項6に記載のシステム。
  8. 前記バックアップ管理モジュールは、前記重複解消手順の実行中にバックアップデータ転送を開始するようにさらに構成される、請求項5〜7のいずれか一項に記載のシステム。
  9. 前記重複解消モジュールは、前記バックアップ管理モジュールに従うようにさらに構成され、それによって、前記バックアップデータ転送が、前記重複解消手順によって低速化されないように構成される、請求項に記載のシステム。
JP2009518193A 2006-06-29 2007-06-25 永久的コンシステンシ・ポイント・イメージを使用するストレージシステムのデータ重複解消を管理するシステム、及び方法 Active JP5164980B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/478,272 2006-06-29
US11/478,272 US7921077B2 (en) 2006-06-29 2006-06-29 System and method for managing data deduplication of storage systems utilizing persistent consistency point images
PCT/US2007/014666 WO2008005212A2 (en) 2006-06-29 2007-06-25 System and method for managing data deduplication of storage systems utilizing persistent consistency point images

Publications (2)

Publication Number Publication Date
JP2009543199A JP2009543199A (ja) 2009-12-03
JP5164980B2 true JP5164980B2 (ja) 2013-03-21

Family

ID=38805787

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009518193A Active JP5164980B2 (ja) 2006-06-29 2007-06-25 永久的コンシステンシ・ポイント・イメージを使用するストレージシステムのデータ重複解消を管理するシステム、及び方法

Country Status (6)

Country Link
US (2) US7921077B2 (ja)
EP (1) EP2035931B1 (ja)
JP (1) JP5164980B2 (ja)
AT (1) ATE467178T1 (ja)
DE (1) DE602007006313D1 (ja)
WO (1) WO2008005212A2 (ja)

Families Citing this family (138)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7640746B2 (en) * 2005-05-27 2010-01-05 Markon Technologies, LLC Method and system integrating solar heat into a regenerative rankine steam cycle
US8165221B2 (en) 2006-04-28 2012-04-24 Netapp, Inc. System and method for sampling based elimination of duplicate data
US7921077B2 (en) 2006-06-29 2011-04-05 Netapp, Inc. System and method for managing data deduplication of storage systems utilizing persistent consistency point images
US8412682B2 (en) * 2006-06-29 2013-04-02 Netapp, Inc. System and method for retrieving and using block fingerprints for data deduplication
US7840537B2 (en) 2006-12-22 2010-11-23 Commvault Systems, Inc. System and method for storing redundant information
US8762345B2 (en) 2007-05-31 2014-06-24 Netapp, Inc. System and method for accelerating anchor point detection
US20090049260A1 (en) * 2007-08-13 2009-02-19 Upadhyayula Shivarama Narasimh High performance data deduplication in a virtual tape system
US8793226B1 (en) 2007-08-28 2014-07-29 Netapp, Inc. System and method for estimating duplicate data
US8238549B2 (en) * 2008-12-05 2012-08-07 Smith Micro Software, Inc. Efficient full or partial duplicate fork detection and archiving
US8190835B1 (en) 2007-12-31 2012-05-29 Emc Corporation Global de-duplication in shared architectures
US8135918B1 (en) * 2007-12-31 2012-03-13 Emc Corporation Data de-duplication for iSCSI
US20090210622A1 (en) * 2008-02-19 2009-08-20 Stefan Birrer Compressed cache in a controller partition
US7539710B1 (en) 2008-04-11 2009-05-26 International Business Machines Corporation Method of and system for deduplicating backed up data in a client-server environment
US8266114B2 (en) * 2008-09-22 2012-09-11 Riverbed Technology, Inc. Log structured content addressable deduplicating storage
US9098495B2 (en) 2008-06-24 2015-08-04 Commvault Systems, Inc. Application-aware and remote single instance data management
US8370309B1 (en) 2008-07-03 2013-02-05 Infineta Systems, Inc. Revision-tolerant data de-duplication
US8166263B2 (en) 2008-07-03 2012-04-24 Commvault Systems, Inc. Continuous data protection over intermittent connections, such as continuous data backup for laptops or wireless devices
US8832034B1 (en) 2008-07-03 2014-09-09 Riverbed Technology, Inc. Space-efficient, revision-tolerant data de-duplication
US7913114B2 (en) * 2008-07-31 2011-03-22 Quantum Corporation Repair of a corrupt data segment used by a de-duplication engine
US8086799B2 (en) * 2008-08-12 2011-12-27 Netapp, Inc. Scalable deduplication of stored data
US8250043B2 (en) 2008-08-19 2012-08-21 Netapp, Inc. System and method for compression of partially ordered data sets
US8078593B1 (en) 2008-08-28 2011-12-13 Infineta Systems, Inc. Dictionary architecture and methodology for revision-tolerant data de-duplication
US10642794B2 (en) * 2008-09-11 2020-05-05 Vmware, Inc. Computer storage deduplication
US8671081B2 (en) * 2008-09-18 2014-03-11 Sap Ag Data processing systems and methods to ensure the consistency of data
US20100082700A1 (en) * 2008-09-22 2010-04-01 Riverbed Technology, Inc. Storage system for data virtualization and deduplication
WO2010036754A1 (en) 2008-09-26 2010-04-01 Commvault Systems, Inc. Systems and methods for managing single instancing data
US9015181B2 (en) 2008-09-26 2015-04-21 Commvault Systems, Inc. Systems and methods for managing single instancing data
US8495032B2 (en) * 2008-10-01 2013-07-23 International Business Machines Corporation Policy based sharing of redundant data across storage pools in a deduplicating system
US8447740B1 (en) * 2008-11-14 2013-05-21 Emc Corporation Stream locality delta compression
US8751462B2 (en) * 2008-11-14 2014-06-10 Emc Corporation Delta compression after identity deduplication
US8849772B1 (en) * 2008-11-14 2014-09-30 Emc Corporation Data replication with delta compression
US7733247B1 (en) * 2008-11-18 2010-06-08 International Business Machines Corporation Method and system for efficient data transmission with server side de-duplication
US8412677B2 (en) * 2008-11-26 2013-04-02 Commvault Systems, Inc. Systems and methods for byte-level or quasi byte-level single instancing
BRPI0922542B1 (pt) 2008-12-22 2020-10-13 Google Llc Método realizado por um dispositivo de pluralidade de dispositivos num sistema distribuído de replicação de dados, sistema e memória legível em computador
CN102317938B (zh) * 2008-12-22 2014-07-30 谷歌公司 用于复制内容可寻址存储集群的异步分布式去重
US8161255B2 (en) * 2009-01-06 2012-04-17 International Business Machines Corporation Optimized simultaneous storing of data into deduplicated and non-deduplicated storage pools
US20100174676A1 (en) * 2009-01-06 2010-07-08 International Business Machines Corporation Determining modified data in cache for use during a recovery operation
US8291183B2 (en) 2009-01-15 2012-10-16 Emc Corporation Assisted mainframe data de-duplication
US20100211616A1 (en) * 2009-02-16 2010-08-19 Rajesh Khandelwal Performance by Avoiding Disk I/O for Deduplicated File Blocks
US8671082B1 (en) 2009-02-26 2014-03-11 Netapp, Inc. Use of predefined block pointers to reduce duplicate storage of certain data in a storage subsystem of a storage server
US8401996B2 (en) 2009-03-30 2013-03-19 Commvault Systems, Inc. Storing a variable number of instances of data objects
WO2010113167A1 (en) 2009-03-30 2010-10-07 Hewlett-Packard Development Company L.P. Deduplication of data stored in a copy volume
US8332365B2 (en) 2009-03-31 2012-12-11 Amazon Technologies, Inc. Cloning and recovery of data volumes
US20100268689A1 (en) * 2009-04-15 2010-10-21 Gates Matthew S Providing information relating to usage of a simulated snapshot
JP5592942B2 (ja) * 2009-05-19 2014-09-17 ヴイエムウェア インク 仮想マシンシステムにおけるショートカット入出力
US8578120B2 (en) 2009-05-22 2013-11-05 Commvault Systems, Inc. Block-level single instancing
US8731190B2 (en) * 2009-06-09 2014-05-20 Emc Corporation Segment deduplication system with encryption and compression of segments
US8762348B2 (en) * 2009-06-09 2014-06-24 Emc Corporation Segment deduplication system with compression of segments
US8401181B2 (en) * 2009-06-09 2013-03-19 Emc Corporation Segment deduplication system with encryption of segments
US8296536B2 (en) 2009-08-11 2012-10-23 International Business Machines Corporation Synchronization of replicated sequential access storage components
US8356017B2 (en) 2009-08-11 2013-01-15 International Business Machines Corporation Replication of deduplicated data
US8385192B2 (en) 2009-08-11 2013-02-26 International Business Machines Corporation Deduplicated data processing rate control
US20110055471A1 (en) * 2009-08-28 2011-03-03 Jonathan Thatcher Apparatus, system, and method for improved data deduplication
US8224792B2 (en) * 2009-08-28 2012-07-17 International Business Machines Corporation Generation of realistic file content changes for deduplication testing
US8510275B2 (en) * 2009-09-21 2013-08-13 Dell Products L.P. File aware block level deduplication
EP2302845B1 (en) 2009-09-23 2012-06-20 Google, Inc. Method and device for determining a jitter buffer level
US8150808B2 (en) 2009-10-21 2012-04-03 Delphix Corp. Virtual database system
US8161077B2 (en) 2009-10-21 2012-04-17 Delphix Corp. Datacenter workflow automation scenarios using virtual databases
US8407189B2 (en) * 2009-11-25 2013-03-26 International Business Machines Corporation Finding and fixing stability problems in personal computer systems
US8224875B1 (en) 2010-01-05 2012-07-17 Symantec Corporation Systems and methods for removing unreferenced data segments from deduplicated data systems
US8224874B2 (en) * 2010-01-05 2012-07-17 Symantec Corporation Systems and methods for removing unreferenced data segments from deduplicated data systems
US8370297B2 (en) * 2010-03-08 2013-02-05 International Business Machines Corporation Approach for optimizing restores of deduplicated data
US8108447B2 (en) * 2010-03-11 2012-01-31 Symantec Corporation Systems and methods for garbage collection in deduplicated data systems
US8370593B2 (en) * 2010-04-14 2013-02-05 Hitachi, Ltd. Method and apparatus to manage groups for deduplication
US8639658B1 (en) * 2010-04-21 2014-01-28 Symantec Corporation Cache management for file systems supporting shared blocks
US8849773B2 (en) * 2010-04-28 2014-09-30 Dell Products L.P. Methods and apparatus for active optimization of data
US8423590B2 (en) 2010-05-30 2013-04-16 International Business Machines Corporation File generation for testing single-instance storage algorithm
US9063656B2 (en) 2010-06-24 2015-06-23 Dell Gloval B.V.—Singapore Branch System and methods for digest-based storage
US8548944B2 (en) 2010-07-15 2013-10-01 Delphix Corp. De-duplication based backup of file systems
US8630412B2 (en) 2010-08-25 2014-01-14 Motorola Mobility Llc Transport of partially encrypted media
US8477050B1 (en) 2010-09-16 2013-07-02 Google Inc. Apparatus and method for encoding using signal fragments for redundant transmission of data
US9092151B1 (en) * 2010-09-17 2015-07-28 Permabit Technology Corporation Managing deduplication of stored data
WO2012045023A2 (en) 2010-09-30 2012-04-05 Commvault Systems, Inc. Archiving data objects using secondary copies
US10394757B2 (en) 2010-11-18 2019-08-27 Microsoft Technology Licensing, Llc Scalable chunk store for data deduplication
US8825972B1 (en) * 2010-11-19 2014-09-02 Symantec Corporation Method and system of producing a full backup image using an incremental backup method
US8468174B1 (en) 2010-11-30 2013-06-18 Jedidiah Yueh Interfacing with a virtual database system
US8959293B2 (en) 2010-12-14 2015-02-17 Microsoft Corporation Data deduplication in a virtualization environment
US8364641B2 (en) 2010-12-15 2013-01-29 International Business Machines Corporation Method and system for deduplicating data
US9116909B2 (en) * 2010-12-29 2015-08-25 Amazon Technologies, Inc. Reduced bandwidth data uploading in data systems
US8943023B2 (en) 2010-12-29 2015-01-27 Amazon Technologies, Inc. Receiver-side data deduplication in data systems
US8458145B2 (en) * 2011-01-20 2013-06-04 Infinidat Ltd. System and method of storage optimization
US8751565B1 (en) 2011-02-08 2014-06-10 Google Inc. Components for web-based configurable pipeline media processing
US9916258B2 (en) 2011-03-31 2018-03-13 EMC IP Holding Company LLC Resource efficient scale-out file systems
US9619474B2 (en) 2011-03-31 2017-04-11 EMC IP Holding Company LLC Time-based data partitioning
US8954399B1 (en) 2011-04-18 2015-02-10 American Megatrends, Inc. Data de-duplication for information storage systems
US8930653B1 (en) 2011-04-18 2015-01-06 American Megatrends, Inc. Data de-duplication for information storage systems
US8706703B2 (en) * 2011-06-27 2014-04-22 International Business Machines Corporation Efficient file system object-based deduplication
US8832035B2 (en) * 2011-08-30 2014-09-09 Netapp, Inc. System and method for retaining deduplication in a storage object after a clone split operation
US8990171B2 (en) 2011-09-01 2015-03-24 Microsoft Corporation Optimization of a partially deduplicated file
US8620886B1 (en) 2011-09-20 2013-12-31 Netapp Inc. Host side deduplication
US8825605B2 (en) 2011-10-11 2014-09-02 Netapp, Inc. Deduplication aware scheduling of requests to access data blocks
US8781800B2 (en) 2011-11-01 2014-07-15 International Business Machines Corporation Data de-duplication in computer storage systems
WO2013128582A1 (ja) * 2012-02-28 2013-09-06 株式会社 日立製作所 ストレージシステム及びストレージシステムの制御方法
US9020890B2 (en) 2012-03-30 2015-04-28 Commvault Systems, Inc. Smart archiving and data previewing for mobile devices
US9575978B2 (en) 2012-06-26 2017-02-21 International Business Machines Corporation Restoring objects in a client-server environment
EP2898424B8 (en) * 2012-09-19 2019-08-21 Hitachi Vantara Corporation System and method for managing deduplication using checkpoints in a file storage system
US9298723B1 (en) 2012-09-19 2016-03-29 Amazon Technologies, Inc. Deduplication architecture
US9348538B2 (en) 2012-10-18 2016-05-24 Netapp, Inc. Selective deduplication
US8996478B2 (en) 2012-10-18 2015-03-31 Netapp, Inc. Migrating deduplicated data
US8832024B2 (en) * 2012-10-26 2014-09-09 Netapp, Inc. Simplified copy offload
US9092446B2 (en) * 2012-11-29 2015-07-28 Hitachi, Ltd. Storage system and file management method
US9633022B2 (en) 2012-12-28 2017-04-25 Commvault Systems, Inc. Backup and restoration for a deduplicated file system
US8996460B1 (en) * 2013-03-14 2015-03-31 Emc Corporation Accessing an image in a continuous data protection using deduplication-based storage
US9823872B2 (en) 2013-03-15 2017-11-21 Skyera, Llc Apparatus and method for translation from multi-dimensional to linear address space in storage
US9454400B2 (en) * 2013-08-16 2016-09-27 Red Hat Israel, Ltd. Memory duplication by origin host in virtual machine live migration
US9459902B2 (en) * 2013-08-16 2016-10-04 Red Hat Israel, Ltd. Memory duplication by destination host in virtual machine live migration
US10635644B2 (en) * 2013-11-11 2020-04-28 Amazon Technologies, Inc. Partition-based data stream processing framework
WO2015070232A1 (en) * 2013-11-11 2015-05-14 Amazon Technologies, Inc. Data stream ingestion and persistence techniques
US9858322B2 (en) 2013-11-11 2018-01-02 Amazon Technologies, Inc. Data stream ingestion and persistence techniques
US9794135B2 (en) 2013-11-11 2017-10-17 Amazon Technologies, Inc. Managed service for acquisition, storage and consumption of large-scale data streams
US10324897B2 (en) 2014-01-27 2019-06-18 Commvault Systems, Inc. Techniques for serving archived electronic mail
US9785510B1 (en) 2014-05-09 2017-10-10 Amazon Technologies, Inc. Variable data replication for storage implementing data backup
FR3024545B1 (fr) * 2014-07-30 2018-05-18 Suez Environnement Systeme de mesure intelligent au point de livraison d'un fluide
US9734021B1 (en) 2014-08-18 2017-08-15 Amazon Technologies, Inc. Visualizing restoration operation granularity for a database
US10977134B2 (en) * 2014-08-19 2021-04-13 Netapp Inc. Restoration process to restore corrupted data of a volume
US9569114B2 (en) * 2014-11-14 2017-02-14 Sk Hynix Memory Solutions Inc. Deduplication using a master and a slave
US10095707B1 (en) 2014-12-19 2018-10-09 EMC IP Holding Company LLC Nearline cloud storage based on FUSE framework
US9753814B1 (en) * 2014-12-19 2017-09-05 EMC IP Holding Company LLC Application level support for selectively accessing files in cloud-based storage
US10120765B1 (en) 2014-12-19 2018-11-06 EMC IP Holding Company LLC Restore process using incremental inversion
US10235463B1 (en) 2014-12-19 2019-03-19 EMC IP Holding Company LLC Restore request and data assembly processes
US10095710B1 (en) 2014-12-19 2018-10-09 EMC IP Holding Company LLC Presenting cloud based storage as a virtual synthetic
US10997030B2 (en) * 2015-03-31 2021-05-04 EMC IP Holding Company LLC Disaster recovery as a service
US10324914B2 (en) 2015-05-20 2019-06-18 Commvalut Systems, Inc. Handling user queries against production and archive storage systems, such as for enterprise customers having large and/or numerous files
US10567500B1 (en) 2015-12-21 2020-02-18 Amazon Technologies, Inc. Continuous backup of data in a distributed data store
US10853182B1 (en) 2015-12-21 2020-12-01 Amazon Technologies, Inc. Scalable log-based secondary indexes for non-relational databases
US10423493B1 (en) 2015-12-21 2019-09-24 Amazon Technologies, Inc. Scalable log-based continuous data protection for distributed databases
US10725806B2 (en) * 2016-02-16 2020-07-28 Netapp Inc. Transitioning volumes between storage virtual machines
US10282127B2 (en) * 2017-04-20 2019-05-07 Western Digital Technologies, Inc. Managing data in a storage system
US10754557B2 (en) 2017-09-26 2020-08-25 Seagate Technology Llc Data storage system with asynchronous data replication
US10754844B1 (en) 2017-09-27 2020-08-25 Amazon Technologies, Inc. Efficient database snapshot generation
US10990581B1 (en) 2017-09-27 2021-04-27 Amazon Technologies, Inc. Tracking a size of a database change log
US11182372B1 (en) 2017-11-08 2021-11-23 Amazon Technologies, Inc. Tracking database partition change log dependencies
US11269731B1 (en) 2017-11-22 2022-03-08 Amazon Technologies, Inc. Continuous data protection
US11042503B1 (en) 2017-11-22 2021-06-22 Amazon Technologies, Inc. Continuous data protection and restoration
US10621049B1 (en) 2018-03-12 2020-04-14 Amazon Technologies, Inc. Consistent backups based on local node clock
US11126505B1 (en) 2018-08-10 2021-09-21 Amazon Technologies, Inc. Past-state backup generator and interface for database systems
US11042454B1 (en) 2018-11-20 2021-06-22 Amazon Technologies, Inc. Restoration of a data source
KR102159835B1 (ko) * 2019-05-02 2020-09-24 김덕우 보조기억장치의 복구정보 관리 장치 및 방법

Family Cites Families (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4570217A (en) 1982-03-29 1986-02-11 Allen Bruce S Man machine interface
US5202979A (en) 1985-05-08 1993-04-13 Thinking Machines Corporation Storage system using multiple independently mechanically-driven storage units
FR2641540B1 (ja) 1989-01-12 1992-08-14 Solvay
US5163131A (en) 1989-09-08 1992-11-10 Auspex Systems, Inc. Parallel i/o network file server architecture
US5124987A (en) 1990-04-16 1992-06-23 Storage Technology Corporation Logical track write scheduling system for a parallel disk drive array data storage subsystem
US5278979A (en) 1990-12-20 1994-01-11 International Business Machines Corp. Version management system using pointers shared by a plurality of versions for indicating active lines of a version
US5581724A (en) 1992-10-19 1996-12-03 Storage Technology Corporation Dynamically mapped data storage subsystem having multiple open destage cylinders and method of managing that subsystem
US5963962A (en) 1995-05-31 1999-10-05 Network Appliance, Inc. Write anywhere file-system layout
EP0702815B1 (en) 1993-06-03 2000-08-23 Network Appliance, Inc. Write anywhere file-system layout
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
US7289643B2 (en) 2000-12-21 2007-10-30 Digimarc Corporation Method, apparatus and programs for generating and utilizing content signatures
US5907672A (en) 1995-10-04 1999-05-25 Stac, Inc. System for backing up computer disk volumes with error remapping of flawed memory addresses
US5819020A (en) 1995-10-16 1998-10-06 Network Specialists, Inc. Real time backup system
US5732265A (en) * 1995-11-02 1998-03-24 Microsoft Corporation Storage optimizing encoder and method
US6289451B1 (en) 1997-04-18 2001-09-11 Sun Microsystems, Inc. System and method for efficiently implementing an authenticated communications channel that facilitates tamper detection
US6081875A (en) 1997-05-19 2000-06-27 Emc Corporation Apparatus and method for backup of a disk storage system
US6061770A (en) 1997-11-04 2000-05-09 Adaptec, Inc. System and method for real-time data backup using snapshot copying with selective compaction of backup data
US6374266B1 (en) 1998-07-28 2002-04-16 Ralph Shnelvar Method and apparatus for storing information in a data processing system
US6341341B1 (en) 1999-12-16 2002-01-22 Adaptec, Inc. System and method for disk control with snapshot feature including read-write snapshot half
AU2001238269B2 (en) * 2000-02-18 2006-06-22 Emc Corporation Hash file system and method for use in a commonality factoring system
US6704730B2 (en) 2000-02-18 2004-03-09 Avamar Technologies, Inc. Hash file system and method for use in a commonality factoring system
US7412462B2 (en) 2000-02-18 2008-08-12 Burnside Acquisition, Llc Data repository and method for promoting network storage of data
AU2000262258A1 (en) 2000-07-20 2002-02-05 Repliweb Inc. Focal point compression method and apparatus
ATE341141T1 (de) * 2000-08-31 2006-10-15 Ontrack Data International Inc System und verfahren für datenverwaltung
US6654912B1 (en) 2000-10-04 2003-11-25 Network Appliance, Inc. Recovery of file system data in file servers mirrored file system volumes
US6912645B2 (en) 2001-07-19 2005-06-28 Lucent Technologies Inc. Method and apparatus for archival data storage
US7475098B2 (en) 2002-03-19 2009-01-06 Network Appliance, Inc. System and method for managing a plurality of snapshots
US7010553B2 (en) * 2002-03-19 2006-03-07 Network Appliance, Inc. System and method for redirecting access to a remote mirrored snapshot
US7043485B2 (en) 2002-03-19 2006-05-09 Network Appliance, Inc. System and method for storage of snapshot metadata in a remote file
US7072910B2 (en) 2002-03-22 2006-07-04 Network Appliance, Inc. File folding technique
US7873700B2 (en) 2002-08-09 2011-01-18 Netapp, Inc. Multi-protocol storage appliance that provides integrated support for file and block access protocols
US6996582B2 (en) * 2002-10-03 2006-02-07 Hewlett-Packard Development Company, L.P. Virtual storage systems and virtual storage system operational methods
US7127577B2 (en) 2003-01-21 2006-10-24 Equallogic Inc. Distributed snapshot process
US7698532B1 (en) 2003-06-26 2010-04-13 Symantec Operating Corporation Method and apparatus for tape library emulation
US7333993B2 (en) 2003-11-25 2008-02-19 Network Appliance, Inc. Adaptive file readahead technique for multiple read streams
US7162662B1 (en) * 2003-12-23 2007-01-09 Network Appliance, Inc. System and method for fault-tolerant synchronization of replica updates for fixed persistent consistency point image consumption
US7526768B2 (en) 2004-02-04 2009-04-28 Microsoft Corporation Cross-pollination of multiple sync sources
US7079053B2 (en) 2004-11-29 2006-07-18 Honeywell International Inc. Method and system for value-based data compression
US20070050423A1 (en) 2005-08-30 2007-03-01 Scentric, Inc. Intelligent general duplicate management system
US7516286B1 (en) * 2005-08-31 2009-04-07 Symantec Operating Corporation Conversion between full-data and space-saving snapshots
US8165221B2 (en) 2006-04-28 2012-04-24 Netapp, Inc. System and method for sampling based elimination of duplicate data
US8412682B2 (en) 2006-06-29 2013-04-02 Netapp, Inc. System and method for retrieving and using block fingerprints for data deduplication
US7921077B2 (en) 2006-06-29 2011-04-05 Netapp, Inc. System and method for managing data deduplication of storage systems utilizing persistent consistency point images
US8214517B2 (en) 2006-12-01 2012-07-03 Nec Laboratories America, Inc. Methods and systems for quick and efficient data management and/or processing
US8762345B2 (en) 2007-05-31 2014-06-24 Netapp, Inc. System and method for accelerating anchor point detection

Also Published As

Publication number Publication date
US7921077B2 (en) 2011-04-05
WO2008005212A2 (en) 2008-01-10
JP2009543199A (ja) 2009-12-03
US8296260B2 (en) 2012-10-23
EP2035931B1 (en) 2010-05-05
DE602007006313D1 (de) 2010-06-17
US20080005201A1 (en) 2008-01-03
EP2035931A2 (en) 2009-03-18
US20110035357A1 (en) 2011-02-10
WO2008005212A3 (en) 2008-04-10
ATE467178T1 (de) 2010-05-15

Similar Documents

Publication Publication Date Title
JP5164980B2 (ja) 永久的コンシステンシ・ポイント・イメージを使用するストレージシステムのデータ重複解消を管理するシステム、及び方法
US7475098B2 (en) System and method for managing a plurality of snapshots
US7334095B1 (en) Writable clone of read-only volume
US7467167B2 (en) System and method for coalescing a plurality of snapshots
US8126847B1 (en) Single file restore from image backup by using an independent block list for each file
US7051050B2 (en) System and method for restoring a single file from a snapshot
JP4787315B2 (ja) データコンテナの中身をクラスタの複数のボリュームにわたってストライピングするためのストレージシステム・アーキテクチャ
US8190836B1 (en) Saving multiple snapshots without duplicating common blocks to protect the entire contents of a volume
US8793447B2 (en) Restoration of a parent LUN through modification of a read-write clone LUN as the parent LUN
US7165079B1 (en) System and method for restoring a single data stream file from a snapshot
US8224777B2 (en) System and method for generating consistent images of a set of data objects
US7363537B1 (en) System and method for fault-tolerant synchronization of replica updates for fixed persistent consistency point image consumption
US7743210B1 (en) System and method for implementing atomic cross-stripe write operations in a striped volume set
US7111021B1 (en) System and method for efficient space accounting in a file system with snapshots
US8370301B1 (en) System and method for reallocating blocks in checkpointing bitmap-based file systems
US8209289B1 (en) Technique for accelerating the creation of a point in time representation of a virtual file system
US7707165B1 (en) System and method for managing data versions in a file system
US20190339896A1 (en) System for migrating virtual tape volumes between filesystems
JP2009524882A (ja) 内容参照ストレージアレイ要素
JP4779012B2 (ja) 瞬時ボリューム復元のためのオン・デマンドでデータを復元するシステム、および方法
US7437360B1 (en) System and method for communication and synchronization of application-level dependencies and ownership of persistent consistency point images
US7984085B1 (en) Rate of change of data using on-the-fly accounting

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090306

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090610

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111108

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120208

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120215

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120507

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: 20121204

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121218

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

Free format text: PAYMENT UNTIL: 20151228

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5164980

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250