JP7376488B2 - スナップショットのコピーオンライトのデータ移動を回避するインフラストラクチャとしての重複除外 - Google Patents

スナップショットのコピーオンライトのデータ移動を回避するインフラストラクチャとしての重複除外 Download PDF

Info

Publication number
JP7376488B2
JP7376488B2 JP2020541342A JP2020541342A JP7376488B2 JP 7376488 B2 JP7376488 B2 JP 7376488B2 JP 2020541342 A JP2020541342 A JP 2020541342A JP 2020541342 A JP2020541342 A JP 2020541342A JP 7376488 B2 JP7376488 B2 JP 7376488B2
Authority
JP
Japan
Prior art keywords
snapshot
chunk
deduplication
disk
virtual volume
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
JP2020541342A
Other languages
English (en)
Other versions
JP2020536342A (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 JP2020536342A publication Critical patent/JP2020536342A/ja
Application granted granted Critical
Publication of JP7376488B2 publication Critical patent/JP7376488B2/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/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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • G06F3/0641De-duplication techniques
    • 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
    • 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
    • G06F16/1752De-duplication implemented within the file system, e.g. based on file segments based on file chunks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket

Description

本発明は、スナップショットおよびコピーオンライトに関し、より詳細には、重複排除レイヤをスナップショットレイヤの下位に配置することにより、スナップショットコピー・オン・ライトのデータ移動を低減することに関する。
ほとんどのストレージシステムのスナップショットインプリメンテーションは、ボリュームと、そのスナップショットとの間のデータチャンク(chunks of data)を共有する。異なるストレージシステムは、異なる粒度(granularity)で、この共有を維持する。例えば、256キロバイト(KB)または1メガバイト(MB)チャンク粒度は、ボリュームと、そのスナップショットとの間で共有される。
共有されたチャンクが、入力するホストライト(例えば、8KBライト)により上書きされると、ほとんどのストレージシステムは、チャンク粒度(256KBまたは1MB)バッファを別のロケーションにコピーし、入力書き込みを、このバッファに適用するするコピーオンライト(COW)動作を実行する。この動作は、チャンク粒度データを読取り、別のロケーションに書き込むことを含み、入出力(I/O)インテンシブである。
重複排除システムは、バッファのフィンガープリント(例えば、ハッシュ)を計算することにより、反復されるバッファパターンを識別する。正確なパターンの反復バッファが書き込まれるとき、重複排除は、共有バッファの参照カウントをインクリメントし、データポインタが、共有データロケーションを指すようにセットアップする。
この開示の、1つまたは複数の例において、ストレージシステムは、スナップショットトラッッキングに対して、高い粒度(例えば、256KB/1MB/2MB/4MB)を使用し、重複排除に対して、低い粒度(例えば、8KB/16K)を使用する。システムは、スナップショットコピー・オン・ライト(COW)データ移動を回避するために、スナップショットレイヤの下位に重複排除レイヤを有する。スナップショットCOWオペレーションは、そのかわり、共有バッファに対応する重複チャンクのすべてについて、重複排除参照カウントをインクリメントするであろう。従って、スナップショットCOW動作は、基本的には、保持される潜在的重複排除チャンクの、重複排除参照カウントの増分になり、それらのチャンクに対する任意のデータの読み取りおよび書き込み動作を回避する。スナップショットCOW動作は非常に軽量になるため、4MBなどの、より大きなサイズでスナップショットの粒度を設定することが可能である。
図1は、この開示のいくつかの例におけるストレージシステムである。 図2は、この開示のいくつかの例におけるバーチャルボリュームと、そのスナップショットを図示するブロック図である。 図3は、この開示のいくつかの例におけるバーチャルボリュームと、そのスナップショットを図示するブロック図である。 図4は、この開示のいくつかの例におけるバーチャルボリュームと、そのスナップショットを図示するブロック図である。 図5は、この開示のいくつかの例におけるスナップショットコピー・オン・ライトのためのデータ移動を低減するための、図1のストレージシステムの方法のフローチャートである。 図6は、この開示のいくつかの例における重複排除オペレーションを用いることにより、スナップショットコピー・オン・ライトを実行するための、図1のストレージシステムの方法のフローチャートである。
異なる図面に対する同じ参照符号の使用は、類似または同一のエレメントを示す。図1は、この開示のいくつかの例におけるデータストレージシステム100のブロック図である。システム100は、別のシステムのアプリケーション104により、アクセス可能(例えば、読み取りおよび書き込み)である仮想ボリューム102を公開(expose)する。システム100は、仮想ボリューム102への書き込み動作を受け取ると、仮想ボリューム102のマッピングを調べ、書き込みをディスク106上の正しい物理的位置にルーティングする。システム100が、仮想ボリューム102への読み取り動作を受け取ると、仮想ボリュームのマッピングを調べ、ディスク106上の正しい物理ロケーションからデータを読み取る。
システム100は、仮想ボリューム102を、スナップショットチャンクに論理的に分割し、それらをディスクロケーションにマッピングするスナップショットレイヤ108を含む。スナップショットチャンクは、仮想ボリューム102が変更されるとき、スナップショットレイヤ108が、コピー・オン・ライト動作を実行する論理ユニットである。例えば、スナップショットチャンクは、256KB、1MB、2MBまたは4MBであり得る。スナップショットチャンクを追跡するために、スナップショットレイヤ108は、キーとバリューの集合を維持し、キーが、スナップショットチャンクを特定し(例えば、スナップショットチャンクインデックス)、対応するバリューがスナップショットチャンクのディスクロケーションを特定する(例えば、ディスク上の論理ブロックアドレス)。キーとバリューのマッピングは、Bツリー(例えば、B+ツリー)としてインプリメントすることができる。後述するように、スナップショットレイヤ108の下位に重複排除レイヤ112があるとき、バリューは実際には、物理ディスク106のような物理ストレージ上の重複排除チャンクへのスナップショットチャンクの、他のマッピングに対するキーである抽象識別子(abstract identifier)である。
スナップショットレイヤ108は、ある時点で仮想ボリューム102のデータを取り込む、仮想ボリュームのスナップショット110を作る。スナップショット110は、多くの方法でインプリメントすることができる。スナップショット110は、バーチャルボリューム102のためのマッピングが、書き込み可能(ライブ)であることを維持しながら、バーチャルボリューム102のマッピング(Bツリー)のリードオンリクローン(read-only clone)であり得る。クローニング(cloning)は、バーチャルボリューム102に関するすべてのマッピングをコピーすることは、必要ないであろう。Bツリーのルート(root)のみがコピーされ、クローニングされたB-ツリーのルートを形成する。リファレンスカウントは、Bツリー毎に追跡され、Bツリーは、1より大きい参照カウントを有する任意の共有ブロックをシャドウイングすることにより変更される。クローニングとシャドウイングに関する詳細については、Rode, Ohad, "B-tree, Shadowing and Clones," ACM Transactions on Storage (TOS), vol. 3, issue 4, February 2008を参照されたい。あるいは、スナップショット110は、バーチャルボリューム102が書き込み可能(ライブ)であることを維持しながらバーチャルボリューム102のマッピング(Bツリー)のリードオンリコピーであり得る。どちらの方法でも、スナップショット110には、最初に仮想ボリューム102のスナップショットチャンクと、基礎となるディスクロケーションを共有するスナップショットチャンクがあるため、ディスク106の仮想ボリューム102の潜在的データは、コピーされない。
システム100は、スナップショットレイヤ108の下位に、重複排除データベース(DB)114を有する重複排除レイヤ112を含む。重複レイヤ112は、バーチャルボリューム102の各スナップショットチャンクを、重複排除チャンクに論理的に分割し、重複排除チャンクを、ディスク106上のディスクチャンクにマッピングする。重複排除チャンクは、重複排除レイヤ112が、重複排除のためのデータを比較する論理的単位である。例えば、重複排除チャンクは、4KB、8KB、または16KBであり得る。重複排除レイヤ112は、異なる重複排除チャンクに書き込まれる同一データパターンを検出し、それらのディスク106上の同じディスクチャンクにマッピングする。
重複排除チャンク内のデータパターンが、固有か否かを判断するために、重複排除レイヤ112は、そのデータパターンに対するフィンガプリントを生成し、重複排除DB114に記憶された、既知データパターンに関する既存のフィンガプリントと比較する。フィンガプリントは、データパターンのハッシュ関数値であり得る。フィンガプリントが、既存のフィンガプリントと一致すると、重複排除レイヤ112は、重複排除チャンクを、ディスク106内の既存のディスクチャンクにマッピングし、重複排除DB114内の、対応するデータパターンに関する参照カウントを、インクリメントする。フィンガプリントがいかなる既存のフィンガプリントにも一致しないとき、重複排除レイヤ112は、ディスク106に新しいディスクチャンクを割り当て、新しいデータパターンをディスク106内の新しいディスクチャンクに書き込み、重複排除チャンクをディスク106内の新しいディスクチャンクにマッピングする。重複排除レイヤ112は、また、1の参照カウントを有する重複排除DB114に新しいフィンガプリントを追加し、バーチャルボリューム102に書き込まれている、重複排除DB114内の、任意の既知のデータパターンの、参照カウントをデクリメントする。
図2は、この開示のいくつかの例におけるバーチャルボリューム102と、バーチャルボリューム102のスナップショット110を図示するブロック図である。上述したように、スナップショットレイヤ108は、バーチャルボリューム102を、スナップショットチャンクに分割する。例示目的のために、バーチャルボリューム102は、スナップショットチャンク202-1、202-2、202-3に分割される。上述したように、重複排除レイヤ112は、各スナップショットチャンクを、重複排除チャンクに分割し、各重複排除チャンクをディスク106上のディスクチャンクに、マッピングする。例示目的のために、スナップショットチャンク202-2は、ディスク106上の重複排除パターンX、Y、ZおよびWに、それぞれマッピングされた重複排除チャンク1、2、3、4に分割される。上述したように、スナップショットレイヤ108は、バーチャルボリューム102のいかなる潜在的データもディスク106にコピーすることなくバーチャルボリューム102のスナップショット110を作成する。例えば、スナップショットレイヤ108は、バーチャルボリューム102のためのマッピングのリードオンリコピーを作る。例示目的のために、スナップショット110は、スナップショットチャンク204-1、204-2、204-3に分割され、これらは、バーチャルボリューム102のスナップショットチャンク202-1、202-2、202-3に対応する。例示目的のために、スナップショットチャンク204-2は、ディスク106上のデータパターンX、Y、Zを有するディスクチャンクにそれぞれマッピングされた重複排除チャンク2’、3’、4’に分割される。
図1に戻ると、アプリケーション104が、バーチャルボリューム102のスナップショットチャンクの一部を再書き込みしたいとき、スナップショットレイヤ108は、ディスク106上の潜在的な物理ロケーションが、バーチャルボリューム102のスナップショットチャンクと、スナップショット110のスナップショットチャンクとの間で共有されるかどうかを判断する。例えば、スナップショットレイヤ108は、その再書き込みが、スナップショット110が作られてから、スナップショットチャンクに対する最初の書き込みか否かを判断する。そうであるなら、スナップショットレイヤ108は、スナップショットコピー・オン・ライト(COW)動作を実行する。
典型的なCOW動作において、一般的なスナップショットレイヤは、バーチャルボリューム102のスナップショットチャンクのための新しい物理ロケーションをディスク106にアロケートし、バーチャルボリューム102のスナップショットチャンクに関する現在の(古い)物理ロケーションから、現在の(古い)データを読み出し、古いデータを新しいデータで更新し、更新されたデータをディスク106内の新しい物理ロケーションに書き込み、バーチャルボリューム102のマッピングを更新する。これは、スナップショットチャンク全体のデータを読み取り、更新し、次に、たとえスナップショットチャンクの小さな部分のみが書き換えられたとしても、書き換えられる。この開示の例において、スナップショットレイヤ108は、重複排除レイヤ112を採用してスナップショットCOW動作を実行する。
図3を参照すると、アプリケーション104(図1)は、部分的にバーチャルボリューム102のスナップショットチャンク202-2を再書き込みする。例えば、アプリケーション104は、スナップショットチャンク202-2の重複排除チャンク1の中でデータパターンXの上に、新しいデータパターンUを書く。スナップショットチャンク202-2全体に対して、スナップショットCOWを実行する代わりに、スナップショットレイヤ108は、重複排除レイヤ112を用いて、再書き込みされる重複排除チャンク1のみにスナップショットCOW動作を実行する。
重複排除レイヤ112は、データパターンUが固有か否かを判断する。重複排除レイヤ112が固有であるかどうかを判断するために、重複排除レイヤ112は、データパターンUに関するフィンガプリントを生成し、それを重複排除DB114内の既知のデータパターンに関する既存のフィンガプリントと比較する。図4に示すように、フィンガプリントがいかなる既存のフィンガプリントにも一致しないとき、重複排除レイヤ112は、ディスク106に新しいディスクチャンクをアロケートし、データパターンUをディスク106内の新しいディスクチャンクに書き込み、バーチャルボリューム102内のスナップショットチャンク202-2の重複排除チャンク1を、データパターンUを有する新しいディスクチャンクにマッピングする。スナップショット110内のスナップショット204-2の重複排除チャンクは、依然としてデータパターンXを有する古いディスクチャンクを指していることに留意する必要がある。重複排除レイヤ112はまた、新しいフィンガプリントを、1の参照カウントを有する重複排除DB114に追加し、上書きされるデータパターンXの参照カウントをデクリメントする。フィンガプリントが既存のフィンガプリントと一致すると、重複排除レイヤ112は、バーチャルボリューム102内のスナップショットチャンク202-2の重複排除チャンク1を、ディスク106内の既存のディスクチャンクにマッピングし、重複DB114内の、対応するデータパターンの参照カウントを、インクリメントする。
上述したように、スナップショットCOW動作は、維持される潜在的重複チャンクに対して重複参照インクリメントになり、これらのチャンクに対する何らかのデータの読み書きを回避する。スナップショットCOWが軽量になるので、4MBのような、より大きなサイズのスナップショット粒度を持つことが可能である。
図5は、この開示のいくつかの例におけるスナップショットCOWのデータ移動を低減するためのストレージシステム100の方法500のフローチャートである。方法500は、コンピュータシステム内のプロセッサにより実行されるコンピュータ可読媒体に符号化された命令としてインプリメントすることができる。方法500は、1つまたは複数のブロックにより図示される、1つまたは複数の動作、機能または行為を含むことができる。ブロックは、シーケンシャルな順番に図示されるけれども、これらのブロックは、また並列に実行することもでき、および/またはここに記載された順番とは異なる順番で実行することができる。また、種々のブロックは、所望のインプリメンテーションに基づいて、より少ないブロックに結合することができ、さらなるブロックに分割することもでき、および/または削除することができる。方法500は、ブロック502において開始することができる。
ブロック502において、ストレージシステム100は、スナップショットチャンクを含むライブボリューム(live volume)(例えば、図1の仮想ボリューム)を提供する。各スナップショットチャンクは、複数の重複排除チャンクを含み、各重複排除チャンクは、ディスク106上のディスクチャンクにマッピングされる(例えば、図2においてスナップショットチャンク202-2はデータパターンX、Y、ZおよびWを有するディスクチャンクにマッピングされる)。ブロック502の次にブロック504に進む。
ブロック504において、ストレージシステムシステム100(特にスナップショットレイヤ108)は、ライブボリューム(例えば、図2のスナップショット110)のコピーであるスナップショットを作成する。ブロック504の次にブロック506に進む。ブロック506において、スナップショットを有するディスクチャンクのセットを共有する、ライブボリュームのスナップショットチャンクに、各ホストが書き込む場合、ストレージシステム100(より具体的には、スナップショットレイヤ108と、重複排除レイヤ112)は、重複排動作を用いることにより、スナップショットコピー・オン・ライトを実行する。
図6は、この開示のいくつかの例におけるブロック506(図5)を実行するためのストレージシステム100の方法600のフローチャートである。方法600は、ブロック602で開始することができる。ブロック602において、ホストの書き込みに応答して、ストレージシステム100(より具体的には重複排除レイヤ112)は、ライブボリュームのスナップショットチャンクの1つまたは複数の重複排除チャンク(例えば、図3のバーチャルボリューム102内のスナップショットチャンク202-2の重複排除チャンク1)が、ホストの書き込みにより変化したかを判断する。ブロック602の次にブロック604に進む。
ブロック604において、ストレージシステム100(より具体的にはレイヤ112)は、各変化した重複排除チャンクを、異なるディスクチャンク、または新しいディスクチャンクにマッピングする。変化した重複排除チャンクは、そのデータパターンが重複排除DB114内の既存のパターンに一致する場合、異なるディスクチャンクにマッピングされる。変化した重複排除チャンクは、そのデータパターンが新しく、それゆえ重複排除DB114内のいずれの既存パターンにも一致しない場合、新しいディスクチャンクにマッピングされる。ブロック604の次にブロック606に進む。
ブロック606において、ストレージシステム100(より具体的には、重複排除レイヤ112は、ホストライト(host write)により書き込まれる、各データパターンの参照カウントをインクリメントする。ブロック606の次にブロック608に進む。ブロック608において、ストレージシステム100(より具体的には、重複排除レイヤ112)は、ホストライトにより上書きされる、各データパターンの参照カウントをデクリメントする。開示した実施形態の特徴の種々の他の適応および組み合わせは、この発明の範囲内である。様々な実施形態が以下の請求項により包含される。

Claims (9)

  1. スナップショットコピー・オン・ライトのためのデータ移動を低減するためのストレージシステムの方法において、
    複数のスナップショットチャンクを備えたライブバーチャルボリュームを提供するステップであって、前記複数のスナップショットチャンクの各スナップショットチャンクは、複数の重複排除チャンクに分割され、前記複数の重複排除チャンクのそれぞれは、ディスク上のディスクチャンクにマッピングされる、ステップと、
    スナップショットを構成する複数のスナップショットチャンクのそれぞれの複数の重複排除チャンクのそれぞれを、前記ディスク上のそれぞれのディスクチャンクにマッピングすることによって、前記ディスク内の前記ライブバーチャルボリュームの潜在的なデータのいずれをもコピーすることなく、前記ライブバーチャルボリュームの前記スナップショットを作成するステップと、
    ディスクチャンクにマッピングされ、且つスナップショットからもマッピングされた重複排除チャンクのセットを含む前記ライブバーチャルボリュームのスナップショットチャンクへのホストライト動作に応答して、重複排除動作を用いるスナップショットコピー・オン・ライトを実行するステップと、
    を備え、
    前記重複排除動作は、
    データが特定の重複排除チャンクで変更された場合、前記ライブバーチャルボリュームへの前記ホストライト動作によって書き込まれている前記スナップショットチャンクの各重複排除チャンクを決定するステップと、
    前記ライブバーチャルボリュームの前記スナップショットチャンクの前記変更された重複排除チャンクを、異なるディスクチャンクまたは新しいディスクチャンクにマッピングするステップと、を備え、
    前記ホストライト動作の前に前記ライブバーチャルボリュームの前記スナップショットチャンクの前記特定の重複排除チャンクからマッピングされ、且つ前記スナップショットからマッピングされたディスクチャンクは、前記ホストライト動作の後に前記スナップショットからマッピングされたままになり、
    変更された重複排除チャンクは、
    そのデータパターンが、重複排除データベースの既存のパターンと一致する場合は、異なるディスクチャンクへ、
    そのデータパターンが新しいため、重複排除データベース内の既存のパターンと一致しない場合は、新しいディスクチャンクへ、
    マッピングされ、
    スナップショットチャンクは、前記ライブバーチャルボリュームが変更されるときに、スナップショットレイヤがコピー・オン・ライト動作を実行する論理ユニットである、方法。
  2. 前記重複排除動作は、前記ホストライトにより書き込まれるデータパターンの参照カウントをインクリメントするステップをさらに備えた、請求項1に記載の方法。
  3. 前記重複排除動作は、前記ホストライトにより上書きされたデータパターンの参照カウントをデクリメントするステップをさらに備えた請求項1に記載の方法。
  4. スナップショットレイヤと、前記スナップショットレイヤの下の重複排除レイヤを実行するように構成されたプロセッサであって、
    前記スナップショットレイヤは、
    ライブバーチャルボリュームの潜在的データのいずれをもディスクにコピーすることなく、前記ライブバーチャルボリュームのスナップショットを作成し、前記ライブバーチャルボリュームは、ディスク上のディスクロケーションに前記重複排除レイヤを介してマッピングされたスナップショットチャンクを備え、
    ディスクチャンクにマッピングされ、且つスナップショットからもマッピングされた重複排除チャンクのセットを含む前記ライブバーチャルボリュームのスナップショットチャンクへの各ホストライトに関して、スナップショットコピー・オン・ライト動作を実行する、ように構成されたスナップショットレイヤであり、
    前記重複排除レイヤは、
    各スナップショットチャンクを複数の重複排除チャンクに分割し、前記複数の重複排除チャンクのそれぞれを前記ディスク上のディスクチャンクにマッピングし、
    各スナップショットコピー・オン・ライト動作に関して、重複排除動作を実行する、ように構成された重複排除レイヤであり、
    前記重複排除動作は、
    データが特定の重複排除チャンクで変更された場合、前記ライブバーチャルボリュームへのホストライト動作によって書き込まれている前記スナップショットチャンクの各重複排除チャンクを決定するステップと、
    前記ライブバーチャルボリュームの前記スナップショットチャンクの前記変更された重複排除チャンクを、異なるディスクチャンクまたは新しいディスクチャンクにマッピングするステップと、を備え、
    前記ホストライト動作の前に前記ライブバーチャルボリュームの前記スナップショットチャンクの前記特定の重複排除チャンクからマッピングされ、且つ前記スナップショットからマッピングされたディスクチャンクは、前記ホストライト動作の後に前記スナップショットからマッピングされたままになり、
    変更された重複排除チャンクは、
    そのデータパターンが、重複排除データベースの既存のパターンと一致する場合は、異なるディスクチャンクへ、
    そのデータパターンが新しいため、重複排除データベース内の既存のパターンと一致しない場合は、新しいディスクチャンクへ、
    マッピングされ、
    スナップショットチャンクは、前記ライブバーチャルボリュームが変更されるときに、スナップショットレイヤがコピー・オン・ライト動作を実行する論理ユニットである、
    プロセッサを含む、ストレージシステム。
  5. 前記重複排除動作は、さらに前記ホストライトにより書き込まれたデータパターンの参照カウントをインクリメントすることをさらに備えた、請求項4に記載のシステム。
  6. 前記重複排除動作は、前記ホストライトにより上書きされたデータパターンの参照カウントをデクリメントすることをさらに備えた、請求項4に記載のシステム。
  7. スナップショットコピー・オン・ライト動作のためのデータ移動を低減するように、ストレージシステムをインプリメントするように、プロセッサにより実行可能な命令で符号化された非一時的コンピュータ可読記憶媒体において、前記命令は、
    複数のスナップショットチャンクを備えたライブバーチャルボリュームを提供することであって、前記複数のスナップショットチャンクの各スナップショットチャンクは、複数の重複排除チャンクに分割され、前記複数の重複排除チャンクの各重複排除チャンクは、ディスク上のディスクチャンクにマッピングされる、ライブバーチャルボリュームを提供することと、
    スナップショットを構成する複数のスナップショットチャンクのそれぞれの複数の重複排除チャンクのそれぞれを、前記ディスク上のそれぞれのディスクチャンクにマッピングすることによって、前記ライブバーチャルボリュームの潜在的データのいずれをも、前記ディスクにコピーすることなく、前記ライブバーチャルボリュームの前記スナップショットを作成することと、
    ディスクチャンクにマッピングされ、且つスナップショットからもマッピングされた重複排除チャンクのセットを含む前記ライブバーチャルボリュームのスナップショットチャンクへの各ホストライト動作に応答して、重複排除動作を用いるスナップショットコピー・オン・ライト動作を実行することと、
    を備え、
    前記重複排除動作は、
    データが特定の重複排除チャンクで変更された場合、前記ライブバーチャルボリュームへのホストライト動作によって書き込まれている前記スナップショットチャンクの各重複排除チャンクを決定するステップと、
    前記ライブバーチャルボリュームの前記スナップショットチャンクの前記変更された重複排除チャンクを、異なるディスクチャンクまたは新しいディスクチャンクにマッピングするステップと、を備え、
    前記ホストライト動作の前に前記ライブバーチャルボリュームの前記スナップショットチャンクの前記特定の重複排除チャンクからマッピングされ、且つ前記スナップショットからマッピングされたディスクチャンクは、前記ホストライト動作の後に前記スナップショットからマッピングされたままになり、
    変更された重複排除チャンクは、
    そのデータパターンが、重複排除データベース(114)の既存のパターンと一致する場合は、異なるディスクチャンクへ、
    そのデータパターンが新しいため、重複排除データベース(114)内の既存のパターンと一致しない場合は、新しいディスクチャンクへ
    マッピングされ、
    スナップショットチャンクは、前記ライブバーチャルボリュームが変更されるときに、スナップショットレイヤ(108)がコピー・オン・ライト動作を実行する論理ユニットである、
    非一時的コンピュータ可読記憶媒体。
  8. 前記重複排除動作は、前記ホストライトにより書き込まれるデータパターンの参照カウントをインクリメントすることをさらに備えた、請求項7に記載の記憶媒体。
  9. 前記重複排除動作は、前記ホストライトにより上書きされるデータパターンの参照カウントをデクリメントすることをさらに備えた、請求項7に記載の記憶媒体。
JP2020541342A 2017-10-05 2018-09-24 スナップショットのコピーオンライトのデータ移動を回避するインフラストラクチャとしての重複除外 Active JP7376488B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/726,205 2017-10-05
US15/726,205 US10884868B2 (en) 2017-10-05 2017-10-05 Dedupe as an infrastructure to avoid data movement for snapshot copy-on-writes
PCT/US2018/052548 WO2019070450A1 (en) 2017-10-05 2018-09-24 DEDUPLICATION AS INFRASTRUCTURE TO AVOID DATA MOVEMENT FOR SNAPSHOT WRITING COPIES

Publications (2)

Publication Number Publication Date
JP2020536342A JP2020536342A (ja) 2020-12-10
JP7376488B2 true JP7376488B2 (ja) 2023-11-08

Family

ID=65993279

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020541342A Active JP7376488B2 (ja) 2017-10-05 2018-09-24 スナップショットのコピーオンライトのデータ移動を回避するインフラストラクチャとしての重複除外

Country Status (4)

Country Link
US (1) US10884868B2 (ja)
EP (1) EP3692445B1 (ja)
JP (1) JP7376488B2 (ja)
WO (1) WO2019070450A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11513909B2 (en) * 2021-04-15 2022-11-29 EMC IP Holding Company, LLC System and method for scheduled snapshot pacing with deduplication
US11455255B1 (en) * 2021-05-24 2022-09-27 Vmware, Inc. Read performance of log-structured file system (LFS)-based storage systems that support copy-on-write (COW) snapshotting
CN113377292B (zh) * 2021-07-02 2024-02-02 北京青云科技股份有限公司 一种单机存储引擎
JP7387679B2 (ja) * 2021-07-12 2023-11-28 株式会社日立製作所 バックアップシステム及び方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120221817A1 (en) 2007-12-31 2012-08-30 Emc Corporation Global de-duplication in shared architectures
JP2015534684A (ja) 2012-09-19 2015-12-03 ヒタチ データ システムズ エンジニアリング ユーケー リミテッドHitachi Data Systems Engineering Uk Limited ファイルストレージシステムにおけるチェックポイントを用いて重複排除を管理するシステムおよび方法
JP2017083933A (ja) 2015-10-23 2017-05-18 富士通株式会社 ストレージ制御装置およびストレージ制御プログラム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102378969B (zh) 2009-03-30 2015-08-05 惠普开发有限公司 拷贝卷中存储的数据的去重复
US8612702B1 (en) * 2009-03-31 2013-12-17 Symantec Corporation Systems and methods for performing optimized backups of multiple volumes
US8396905B2 (en) 2010-11-16 2013-03-12 Actifio, Inc. System and method for improved garbage collection operations in a deduplicated store by tracking temporal relationships among copies
US8738873B2 (en) * 2011-06-22 2014-05-27 International Business Machines Corporation Interfacing with a point-in-time copy service architecture
WO2013177065A2 (en) * 2012-05-20 2013-11-28 Storsimple, Inc. System and methods for implementing a server-based hierarchical mass storage system
US9405709B1 (en) * 2012-08-13 2016-08-02 Veritas Technologies Llc Systems and methods for performing copy-on-write operations
US8832024B2 (en) * 2012-10-26 2014-09-09 Netapp, Inc. Simplified copy offload
US9592448B2 (en) * 2013-03-15 2017-03-14 Skyera, Llc Apparatus and method for using fields in N-space translation of storage requests
US9792075B1 (en) * 2014-02-26 2017-10-17 Veritas Technologies Llc Systems and methods for synthesizing virtual hard drives
WO2016044403A1 (en) * 2014-09-16 2016-03-24 Mutalik, Madhav Copy data techniques

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120221817A1 (en) 2007-12-31 2012-08-30 Emc Corporation Global de-duplication in shared architectures
JP2015534684A (ja) 2012-09-19 2015-12-03 ヒタチ データ システムズ エンジニアリング ユーケー リミテッドHitachi Data Systems Engineering Uk Limited ファイルストレージシステムにおけるチェックポイントを用いて重複排除を管理するシステムおよび方法
JP2017083933A (ja) 2015-10-23 2017-05-18 富士通株式会社 ストレージ制御装置およびストレージ制御プログラム

Also Published As

Publication number Publication date
EP3692445A4 (en) 2021-06-30
US20190108100A1 (en) 2019-04-11
US10884868B2 (en) 2021-01-05
JP2020536342A (ja) 2020-12-10
WO2019070450A1 (en) 2019-04-11
EP3692445B1 (en) 2023-06-28
EP3692445A1 (en) 2020-08-12

Similar Documents

Publication Publication Date Title
CN106354745B (zh) 用于提供计算机装置的接口的方法和计算机装置
US10713161B2 (en) Memory system and method for controlling nonvolatile memory
US10747718B2 (en) Mapping structure for maintaining metadata for snapshots in a virtualized storage environment
US10261913B2 (en) Persistent memory for key-value storage
JP7376488B2 (ja) スナップショットのコピーオンライトのデータ移動を回避するインフラストラクチャとしての重複除外
US9946642B2 (en) Distributed multimode storage management
US11226747B2 (en) System and method for copy on write on an SSD
US10346075B2 (en) Distributed storage system and control method for distributed storage system
US10248623B1 (en) Data deduplication techniques
JP6600698B2 (ja) 計算機システム
US20170337212A1 (en) Computer program product, method, apparatus and data storage system for managing defragmentation in file systems
US9921963B1 (en) Method to decrease computation for cache eviction using deferred calculations
US9720835B1 (en) Methods to efficiently implement coarse granularity cache eviction based on segment deletion hints
KR20170009706A (ko) 중복 데이터를 감소시키기 위한 저장 장치 및 그것의 동작 방법
US10120583B2 (en) Performance penalty avoidance for solid state drive
CN107704466B (zh) 数据储存系统
CN110187834B (zh) 重删副本的数据处理方法、装置、电子设备
US9892044B1 (en) Methods to efficiently implement coarse granularity cache eviction
US20210109671A1 (en) Performance optimization in a storage system environment
JP6721765B2 (ja) メモリシステムおよび制御方法
JP6552701B2 (ja) メモリシステムおよび制御方法
US10740015B2 (en) Optimized management of file system metadata within solid state storage devices (SSDs)
CN115220651A (zh) 与克隆对象相关的系统和方法
CN116821075A (zh) 数据去重的方法和电子设备

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210916

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220926

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221004

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221221

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230418

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230713

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20231026

R150 Certificate of patent or registration of utility model

Ref document number: 7376488

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150