JP2018527681A - ソリッドステートドライブコントローラを使用するデータ重複排除 - Google Patents

ソリッドステートドライブコントローラを使用するデータ重複排除 Download PDF

Info

Publication number
JP2018527681A
JP2018527681A JP2018514841A JP2018514841A JP2018527681A JP 2018527681 A JP2018527681 A JP 2018527681A JP 2018514841 A JP2018514841 A JP 2018514841A JP 2018514841 A JP2018514841 A JP 2018514841A JP 2018527681 A JP2018527681 A JP 2018527681A
Authority
JP
Japan
Prior art keywords
signature
information
data
ssd
controller
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.)
Pending
Application number
JP2018514841A
Other languages
English (en)
Other versions
JP2018527681A5 (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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Publication of JP2018527681A publication Critical patent/JP2018527681A/ja
Publication of JP2018527681A5 publication Critical patent/JP2018527681A5/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • 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/0608Saving storage space on storage systems
    • 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/0611Improving I/O performance in relation to response time
    • 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
    • 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/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0032Serial ATA [SATA]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

データ重複排除方法は、ソリッドステートドライブ(SSD)のためのコントローラによって実行される。コントローラは、データのブロックに対する署名を受信する。コントローラは、署名と署名ライブラリ内の情報との比較を実行し、署名が情報と一致するか否かを判断する。コントローラは、比較の結果を示す信号を送信する。署名と情報とが一致する場合、信号は、データのブロックがSSD上に既に格納されていることを示す第1の値を有する。署名と情報とが一致しない場合、信号は、第1の値とは異なる第2の値を有する。

Description

現代のビジネスでは、テープ、ハードディスクドライブ、ソリッドステートドライブ(SSD)などのあらゆる種類のメディアに格納されるデータベースに、膨大な量(例えば、ペタバイト)のデータを蓄積する。法的要件、政府規則及び規制、並びにビジネスルール及び最善の慣例は、データベースが頻繁にアーカイブされてバックアップされることを必要とする。その結果、数千ペタバイト(PB)のデータが既に格納されており、格納されたデータの量は飛躍的に増加し続けている。
データ重複排除方法及びシステムは、データ量を削減して効率を高め、コストを削減するために使用される。一般に、重複排除システムは、異なるデータファイル内に同一部分を見つけ、これら同一部分を1度だけ格納する。重複排除システムはまた、後でデータファイルにアクセスしたときにデータファイルが整理され、再構築できるように、メタデータを保持する。しかし、膨大な量のデータが格納されるということは、既存の重複排除方法及びシステムの限界をテストすることになる。現在の重複排除方法及びシステムは、数ペタバイトのデータについてはうまく機能するが、数千ペタバイト規模のデータ量に合わせて設計されていない。
大量のデータを格納するためにSSDを(ランダムアクセスメモリ(RAM)のような他の記録媒体の代わりに)使用することは、いくつかの課題を提示する。SSDは、例えば、ダブルデータレート型スリーシンクロナスダイナミックRAM(DDR3 DRAM)に比べて、より長い読出し及び書込み待ち時間を有する。また、SSDは書き込まれる前に消去され、消耗する前に限られた回数だけ消去することができる。
一方、SSDには、大量のデータを格納するのに適した多数の利点がある。重複排除のために、ファイルは、関連するメタデータとともに「チャンク」(例えば、4キロバイト(KB)、16KB、又は256KBのチャンク)と一般に呼ばれるブロック又はフラグメントに分割される。各固有のチャンクは、そのメタデータとともに格納される。メタデータは、例えば、16バイト(B)、32B、128B、又は256Bのサイズであってもよい。512PBのデータの場合、各チャンクが16KBのサイズで、チャンクあたり32Bのメタデータであると仮定すると、メタデータだけの格納スペースは1PBである。この量のデータを格納するのにRAMを使用するのは、実用的ではなく、SSDを使用する方が実用的である。
また、前述した規制及び要件を満たすためには、メタデータをストレージにハード的に書き込む必要がある。RAMへの電力が失われたり、又は中断されると、RAMにより保持されたデータは失われる。SSDは、例えば、電力がなくてもデータを保持するNANDベースのフラッシュメモリを使用する。
したがって、SSDの利点には、その容量及び非揮発性が含まれる。長いアクセス時間(読み出し及び書き込みの待ち時間)を軽減するために、データは並列に書き込まれる。各SSDの読み出し/書き込み操作の基本単位はページと呼ばれる。ページサイズが16KBの場合、チャンクあたり12Bのメタデータがあると仮定すると、128個のチャンクに対するメタデータがページ内で並列に読み出し又は書き込みできる。
各チャンクに対するメタデータは、チャンクを一意に特定するハッシュ値又は署名を含む。したがって、新しいチャンクを格納する必要があるか否かを判断するために(同じチャンクが前に格納されたか否かを判断するために)、新しいチャンクに対する署名は、既に格納されたチャンクに対する署名と比較されることができる。新しいチャンクに対する署名が既存の署名と一致する場合、新しいチャンクは保存される必要はない。
上記のように、SSDの読み出し/書き込み操作の基本単位はページである。チャンクの署名を他の署名との比較のために取得するために、ページ全体(例えば、16KB)が読み出され、SSDから中央処理装置(CPU)に転送される。この転送は、メモリ帯域幅及びバス帯域幅だけでなく、CPU上で相当量のリソースを消費する可能性がある。
より具体的には、ストレージサーバに格納されるべきデータを有するクライアントは、データをチャンクに分割し、各チャンクに対する署名を計算する。実装では、クライアントは、各署名を、ストレージサーバに既に格納されているチャンクに対する署名のライブラリを保持する署名サーバへと送信する。署名サーバの役割は、クライアントからの署名が署名ライブラリ内の署名と一致するか否かを判定することである。これを達成するために、ページ全体(例えば、16KB)が各署名についてメモリに転送され、CPUはページ内の署名を探し出して取り出し、取り出された署名とクライアントからの署名とを比較する。しかし、署名は、32Bのサイズしかないこともある。したがって、他の署名との比較のための署名を得るには、必要とされるよりも最大500倍を超える量のデータが読み出されて転送される(例えば、32Bの署名を得るために16KBのデータが読み取られる)。
さらに、署名の比較を要求するクライアントの数及び署名サーバの数に基づいて、署名サーバごとの比較回数を推定することができる。各比較には少なくとも2つの入出力(I/O)アクセスが必要なため、1つの署名サーバあたりの1秒ごとのI/O操作数(IOPS)も推定することができる。CPUとSSDの機能を考慮すると、IOPSの要件は非常に大きく、多数の署名サーバが必要になり、また、必要な容量を提供するには、より高価で高帯域のPeripheral Component Interconnect Express(PCIe)SSDを使用する必要もある。
要約すれば、従来の重複排除方法は、非効率的で高価であり、相当量のCPU資源、メモリ資源、及びバス資源を占有する。
本発明による実施形態は、SSDにおける署名比較を達成することによって上記の問題に対処する。その結果、CPUの作業負荷が軽減され、SSDとCPUとの間で転送されるデータ量が削減され、それによりメモリ及びバス帯域幅への影響も軽減される。
本発明による実施形態では、データ重複排除方法がSSDのためのコントローラによって実行される。コントローラは、CPUからデータのブロック又はフラグメント(「チャンク」)に対する第1の署名を受信する。コントローラは、第1の署名と署名ライブラリ内の情報との比較を実行し、第1の署名が情報と一致するか否かを判定する。コントローラは、比較結果を示す信号をCPUに送信する。第1の署名が署名ライブラリ内の情報と一致する場合、信号は、データのチャンクがSSD上に既に格納されていることを示す第1の値を有し、第1の署名が署名ライブラリ内の情報と一致しない場合、信号は、第1の値とは異なる第2の値を有する。第1の署名が署名ライブラリ内の情報と一致しない場合(例えば、信号が第2の値を有する場合)、データのチャンクは、そのソース(例えば、クライアント)から受信され、SSDに書き込まれる。
実施形態では、コントローラはまた、CPUから第1の署名に関連付けられたアドレスを受信する。そのような実施形態では、コントローラは、署名ライブラリ内のエントリを特定するためにアドレスを用いる。次に、コントローラは、署名とそのエントリにある情報とを比較する。その情報は第2の署名であってもよく、又はそれはヌル値であってもよい(例えば、エントリはいかなる情報も保持しなくてよい)。次に、コントローラは、上述のように比較結果を示す信号をCPUへと送信する。
実施形態では、SSDコントローラからCPUへの信号は、第1の署名が署名ライブラリ内の情報と一致する場合、第1の値を有する1つのバイナリビットからなり、第1の署名が署名ライブラリ内の情報と一致しない場合、第2の値を有する1つのバイナリビットからなる。
実施形態では、第1の署名が署名ライブラリ内の情報と一致する場合、データのチャンクに関連付けられたカウンタがインクリメントされる。第1の署名が署名ライブラリ内の情報と一致しない場合、第1の署名が署名ライブラリに追加され、データのチャンクに関連付けられたカウンタが初期化され、インクリメントされる。
実施形態では、コントローラは、従来の構成要素に加えて、第1の署名と署名ライブラリからの情報とを比較する重複排除プロセッサを含む。そのような1つの実施形態では、重複排除プロセッサは、第1の署名と署名ライブラリからの情報とのビット単位での比較を実行する複数のゲートを含む。
実施形態では、SSDは、Serial Advanced Technology Attachment(SATA)SSDである。
本発明による実施形態は、格納されたデータの量がエクサバイト(EB)で測定される大規模データアプリケーションにおける効率的な重複排除のために使用することができる。IOPSはより少なくて済み、したがって、本発明による実施形態は、より安価なSATA SSDを使用して実施することができる。
本発明の様々な実施形態のこれら及び他の目的そして様々な実施形態の利点は、様々な図面に示される実施形態の以下の詳細な説明を読めば、当業者には認識されるであろう。
添付の図面は、この明細書に組み込まれて一部を形成し、同様の符号は同様の要素を示し、本開示の実施形態を示し、詳細な説明と共に、開示の原理を説明する役割を果たす。
本発明による実施形態において重複排除システムを実装することができるシステムの例を示すブロック図である。 本発明による実施形態におけるコンピュータシステムの要素を示すブロック図である。 本発明による実施形態におけるSATA SSDと中央処理装置との間の接続を示すブロック図である。 本発明による実施形態における重複排除方法のフローチャートである。 本発明による実施形態における重複排除プロセッサを実現するために使用できる回路を示す。 本発明による実施形態におけるSSDのためのコントローラによって実行されるデータ重複排除方法のフローチャートである。 本発明による実施形態においてCPU及びSSDを含む署名サーバによって実行されるデータ重複排除方法のフローチャートである。 本発明による実施形態における重複排除システムの実装例を示すブロック図である。
ここで、添付図面にそれらの例が示される本開示の様々な実施形態が詳細に参照されよう。これらの実施形態に関連して説明されているが、それらは、これらの実施形態の開示を限定する意図でないことは理解されるであろう。反対に、その開示は、添付の特許請求の範囲によって規定されるような開示の思想及び範囲内に含まれ得る代替、改変及び均等となるものを包含する意図である。さらに、本開示の以下の詳細な説明では、本開示の徹底した理解を提供するために、多数の具体的な詳細が示される。しかしながら、本開示は、これらの具体的な詳細なしに実施され得ることが理解されるであろう。他の例では、本開示の態様を不必要に不明瞭にしないために、周知の方法、手順、構成要素、及び回路は詳細には記載されていない。
以下の詳細な説明のいくつかの部分は、手順、論理ブロック、処理、及びコンピュータメモリ内のデータビットに対する演算の他の記号表現に関して提示される。これらの説明及び表現は、当業者の仕事の内容を他の当業者に最も効果的に伝えるためにデータ処理分野の当業者によって使用される手段である。本出願では、手順、論理ブロック、プロセスなどは、所望の結果をもたらす自己矛盾のない一連のステップ又は命令であると考えられる。ステップは、物理量の物理的操作を利用している。通常、必ずしもそうではないが、これらの量は、コンピュータシステムにおいて格納、転送、結合、比較、及び他の方法で操作することができる電気信号又は磁気信号の形態をとる。これらの信号を、時には主に一般的な使用の理由で、トランザクション、ビット、値、要素、記号、文字、サンプル、ピクセルなどと呼ぶことは都合がよいことが判明している。
しかしながら、これらの用語及び類似の用語の全ては、適切な物理量に関連し、これらの量に適用される便利なラベルに過ぎないことに留意すべきである。特に明記しない限り、以下の説明から明らかなように、「受信する」、「格納する」、「読み出す」、「書き込む」、「インデックス付けする」、「実行する」、「送信する」、「比較する」、「追加する」、「アクセスする」、「特定する」、「使用する」、「判定する」、「生成する」、「インクリメントする」、「シグナリングする」などの用語を用いる議論は、装置又はコンピュータシステムもしくは同様の電子計算デバイス又はプロセッサ(例えば、図2のコンピュータシステム200)のアクション及びプロセス(例えば、それぞれ、図4、図6、及び図7のフローチャート400、600、及び700)を指す。コンピュータシステム又は同様の電子計算デバイスは、メモリ、レジスタ又は他のそのような情報ストレージ、伝送デバイス又は表示デバイス内の物理(電子)量として表されるデータを操作及び変換する。
本明細書で説明される実施形態は、1つ又は複数のコンピュータ又は他のデバイスによって実行される、プログラムモジュールなどのコンピュータ可読記録媒体の何らかの形態で存在するコンピュータ実行可能命令の一般的なコンテキストで論じされうる。限定ではなく例として、コンピュータ可読記録媒体は、非一時的コンピュータ記録媒体及び通信媒体を含み得る。一般に、プログラムモジュールは、特定のタスクを実行する、又は特定の抽象データタイプを実施するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。プログラムモジュールの機能は、様々な実施形態において要望どおりに組み合わせられ、又は分散されてもよい。
コンピュータ記録媒体は、コンピュータ可読命令、データ構造、プログラムモジュール又は他のデータなどの情報の格納のための任意の方法又は技術で実現される揮発性及び不揮発性媒体、取り外し可能及び固定の媒体を含む。コンピュータ記録媒体は、限定されるわけではないが、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、電気的消去可能プログラマブルROM(EEPROM)、フラッシュメモリ(SSD)もしくは他のメモリ技術、コンパクトディスクROM(CD−ROM)、デジタルバーサタイルディスク(DVD)もしくは他の光ストレージデバイス、磁気カセット、磁気テープ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、又は所望の情報を格納するために使用することができ、その情報にアクセスすることができる他の媒体を含む。
通信媒体は、コンピュータ実行可能命令、データ構造、及びプログラムモジュールを具体化することができ、任意の情報配信媒体を含む。限定ではなく例として、通信媒体は、有線ネットワーク又は直接有線接続などの有線媒体、及び音響媒体、無線周波数(RF)媒体、赤外線媒体及び他の無線媒体などの無線媒体を含む。上記のいずれの組み合わせも、コンピュータ可読媒体の範囲内に含めることができる。
図1は、本発明による実施形態により重複排除システムを実装することができるネットワーク又はシステム100の例を示すブロック図である。図1の例では、システム100は、単独でクライアント101mとして参照されるか、集合的にクライアント101として参照されることがある多数のクライアント101a、101b、101c、...、101mと、1つ又は複数のコンフィギュレーションサーバ102と、単独で署名サーバ103nとして参照されるか、集合的に署名サーバ103として参照されることがある多数の署名サーバ103a、103b、103c、103nとを含む。クライアント101、署名サーバ103、及びコンフィギュレーションサーバ102は、ネットワーク104(例えば、インターネットがあるが、これに限定されない)を介して通信可能に(有線又は無線で)接続される。
クライアント101は、それ自体がサーバであってもよい。一般に、クライアント101は、自身が生成した、又は、他のデバイス又はシステム(図示せず)から受信した、データファイルを有する。クライアント101mは、自身が有するデータファイルをより小さなピース(例えば、ブロック又はフラグメント、一般にチャンクと呼ばれる)に分割する。そのような各チャンクについて、クライアント101mは、チャンクを一意に特定する署名Scpを計算し、署名を署名サーバ103に送信する。実施形態では、クライアント101mからの署名はバッチモードで送信され、したがって、複数の署名(例えば、数百の署名)を1つのデータパッケージにグループ化し、比較のために署名サーバ103に送信することができる。
実施形態では、チャンクに対する署名は、チャンクのコンテンツにハッシュ関数を適用することによって計算される。実施形態では、メタデータは各チャンクに関連付けられ、チャンクに対する署名はそのチャンクに対するメタデータに含まれる。チャンクに対するメタデータは、チャンクに対する署名に加えて情報を含むことができる。例えば、メタデータは、データファイルを再構成するために、チャンクをデータファイルに関連付けられた他のチャンクと結合するために使用できる情報を含むことができる。例えば、署名に加えて、メタデータは、データファイルを再構築するために、チャンクに対するデータがどこに格納されているかを示すアドレスと、チャンクが他のチャンクとどのように(例えば、どの順序で)結合されるかを特定する付記を含んでもよい。
コンフィギュレーションサーバ102は、クライアント101と署名サーバ103との間のトラフィックをスケジューリングし、制御する。コンフィギュレーションサーバ102は、クライアント101からの署名を適切な署名サーバに送信する。
署名サーバ103nは、コンフィギュレーションサーバ102により指示された通りにクライアント101から署名を受信し、その署名ライブラリ内のエントリ(コンテンツ又は情報、例えば、署名)を調べ、クライアントからの署名と署名ライブラリからの情報とを比較し、自身が受信する各署名Scpについて、署名Scpがその署名ライブラリ内の情報と一致するか否かについてクライアントに通知する。
本明細書中で既に説明したように、重複排除は、新しいチャンクと同一のチャンクが前回格納されているか否かを判定するために、新しいチャンクに対する署名と既に格納されているチャンクに対する署名とを比較することによって、新しいチャンクを格納する必要があるか否かを判定するステップを伴う。新しいチャンクに対する署名が既存の署名と一致する場合、新しいチャンクは格納される必要がない。
図2は、本発明による実施形態のコンピュータシステム200の要素を示すブロック図である。実施形態では、コンピュータシステム200は、署名サーバ103(図1)を実現するためのプラットフォームを表す。図2の例において、コンピュータシステム200は、中央処理装置(CPU)201、メモリ203、及びソリッドステートデバイス(SSD)205を含む。メモリ203は、例えば、ダイナミックランダムアクセスメモリ(DRAM)でもよい。実施形態では、SSD205は、Serial Advanced Technology Attachment(SATA)SSDであり、SATAバス207を介してCPU201に接続される。コンピュータシステム200は、図示されていない要素を含んでもよい。
図3は、本発明による実施形態におけるSATA SSD301、302、303とCPU201との間の接続を示すブロック図である。SSD301−303は、それぞれSATAバス311、312、313を介してホストバスアダプタ(HBA)320に接続される。実施形態では、HBAアダプタ320は、SATAインタフェース321、Advanced Host Controller Interface(AHCI)エンジン322(例えば、ソフトウェアがSATAデバイスと通信することを可能にするハードウェア機構、バスマスタからシステムメモリまで)、Peripheral Component Interconnect Express(PCIe)−to−AHCIブリッジ323(例えば、SATAフォーマットとPCIeフォーマットとの間でデータを変換するための)、及びPCIeインタフェース324を含む。HBA320は、PCIeバス330を介してCPU201に接続される。
再び図2を参照すると、SSD205は、コントローラ210と、多数のストレージエレメント、具体的には、データを格納するために使用される多数のダイ又はチップ240a−240kとを含む。ダイ240a−240kは、単独でダイ240kとして参照し、集合的にダイ240として参照する。実施形態では、ダイ240はNANDダイであり、したがって、SSD205は、NANDフラッシュデバイスと呼ばれることがある。
コントローラ210は、SSD205に埋め込まれた、特定用途向け集積回路(ASIC)又はフィールドプログラマブルゲートアレイ(FPGA)として実現することができる。図2の実施形態では、コントローラ210は、ファームウェア又はソフトウェアとして実装し得るフラッシュ変換層(FTL)を含む。コントローラ210はまた、ライトパス及びリードパスも含む。ライトパスは、インタフェース211を起点とし、それは、例えば、物理層(PHY)インタフェースと、アナログ及びデジタルドメイン間で(アナログからデジタルへ、及びデジタルからアナログへ)データを変換するシリアライザ/デシリアライザを含む。ライトパスは、データ圧縮ブロック212、暗号化ブロック213、及び誤り訂正コード(ECC)符号化ブロック214を含んでもよい。SSDコントローラは、インタフェース220(例えば、Open NAND Interface、ONFI)を介してダイ240に接続される。データは、同期及び非同期トリガモード(トグル)を用いて移動される。
データは、同じトグル機構及びインタフェース220を介してダイ240からリードパスに移動される。リードパスは、ECCデコーディングブロック216、復号ブロック217、及び復元ブロック218を含み得る。
重要で、従来のSSDコントローラとは対照的に、コントローラ210は、重複排除プロセッサ230をリードパスに含む。以下にさらに詳細に説明するように、重複排除プロセッサ230は、少なくとも2つの主要機能を実行する、すなわち、それは、ダイ240から情報(例えば、署名)を抽出し、そして、それは、それらの署名とクライアント101mから受信される署名とを比較して、クライアントからの署名が、抽出された署名と一致するか否か(例えば、署名が、抽出された署名のいずれかと一致するか否か)を判定する。
図4は、本発明による実施形態における重複排除方法のフローチャート400である。フローチャート400のブロックによって表される動作の全て又は一部は、ある形式の非一時的なコンピュータ可読記録媒体に存在するコンピュータ実行可能命令として実施することができ、それぞれ図1の署名サーバ103n又は図2のコンピュータシステム200などの署名サーバ又はコンピュータシステムによって実行されることができる。
図4のブロック402において、データのブロック(例えば、チャンク)に対する署名Scpがクライアント(例えば、図1のクライアント101m)から受信される。
図4のブロック404において、実施形態では、リードアドレス(Raddr)が署名Scpに基づいて計算される。
ブロック406において、署名Scpは、SSDコントローラ210に送信される(図2)。実施形態では、リードアドレスRaddrもSSDコントローラ210に送信される。このような実施形態では、コントローラは、リードアドレスRaddrを使用してダイ240(図2)に格納された署名ライブラリ内のエントリを特定する。具体的には、コントローラ210は、ダイ240のうちの1つ(例えば、ダイ240k)に格納された署名ライブラリ内の特定のエントリに対するインデックスとして、リードアドレスRaddrを使用することができる。エントリは署名であってもよいし、ヌル値であってもよい(例えば、エントリが空であってもよい)。一般的に言えば、リードアドレスRaddrによるインデックス付けがされるエントリにはコンテンツ又は情報Rssdがある。そのコンテンツは署名であってもそうでなくてもよく、コンテンツの欠如(例えば、ヌル又は空のエントリ)であっても情報を伝達する。
図4のブロック408において、SSDコントローラ210は、署名Scpと情報Rssdとを比較する。実施形態では、比較は、重複排除プロセッサ230(図2)を使用して実行される。追加情報が以下の図5に関連して提供される。
署名Scpが情報Rssdと一致する場合、フローチャート400はブロック410に進み、そうでなければ、フローチャートはブロック414に進む。
図4のブロック410において、署名Scpは情報Rssdと一致する。その場合、情報Rssdは、第1の署名Scpと同一の第2の署名を構成し、これは、署名Scpと関連するデータのチャンクが既にSSD205に格納されていることを示し、SSDに対して、そのデータのチャンクをリライトすることは必要とされない。したがって、コントローラ210は、信号をCPU201に送信する。実施形態では、信号は、1つのバイナリビットからなる。ビット値は、署名Scpが情報Rssdと一致することを示すために第1の値(例えば、バイナリの1又はhigh)を有する。
図4を継続して参照すると、ブロック412において、署名Scpに関連付けられたメタデータが更新され、マッピングカウントがインクリメントされる。メタデータは、署名Scpに関連付けられたチャンクを含むデータファイルを回復するために使用される。マッピングカウントは、チャンクが使用された回数(例えば、そのチャンクを含むデータファイルの数)を特定する。
ブロック414において、署名Scpは情報Rssdと一致せず、これは、署名Scpに関連付けられたデータのチャンクが現在SSD205に格納されていないことを示し、したがって、データのチャンクがSSDに書き込まれることができることを示す。ブロック410と同様、コントローラ210は、CPU201に信号を送信する。実施形態では、信号はこの場合も、1つのバイナリビットからなる。しかし、ビット値は、署名Scpが情報Rssdと一致しないことを示すために第2の値(例えば、バイナリのゼロ又はlow)を有する。
ブロック416において、コントローラ210は、署名Scpを署名ライブラリに追加する。実施形態では、コントローラ210は、署名ScpをリードアドレスRaddrによって特定される署名ライブラリ内のエントリに追加する。
ブロック418において、データのチャンクがSSD205に書き込まれる。実施形態では、データのチャンクは、リードアドレスRaddrによるインデックス付けがされた署名ライブラリを格納するダイ240kに書き込まれる。また、署名Scpに関連付けられたメタデータが更新され、コントローラ210によってチャンクのマッピングカウントが開始(インクリメント)される。コントローラ210は、署名ライブラリが更新され、チャンクが保存されていることを確認することもできる。
ブロック420において、別のチャンクのデータに対して別の署名がある場合、フローチャート400はブロック402に戻る。
本発明による実施形態は、データのチャンクがSSD205上に既に格納されたか否かを判定するために、署名Scpとの比較のためのエントリを見つけるためにリードアドレスRaddrを使用することに限定されない。他の技術は、署名Scpと署名ライブラリの情報とを比較するために使用されることができる。そのような技術の1つがCuckoo検索アルゴリズムとして知られている。粒子群最適化、微分展開、及び人工蜂コロニーアルゴリズムとして知られている他の技術も使用されうる。
上述したように、クライアント101からの署名はバッチモードで送信することができ、したがって、複数の署名(例えば、数百個の署名)を1つのデータパッケージにグループ化して署名サーバ103に送信することができ、この場合、フローチャート400の動作は各署名に対して並列に実行することができる。実施形態では、これは、SSDとCPUとの間のマルチビットバスを使用して実施することができ、ここで、バスの各ビットは、個々の署名が上述した署名ライブラリの情報と一致したか否かを示す。この機能は、代わりにその状態を得るために定期的にポーリングされるマルチビットレジスタを使用して実現することができる。
また、上述したように、図2を参照し返すと、コントローラ210は、重複排除プロセッサ230をリードパスに含む。図5は、本発明による実施形態における重複排除プロセッサ230を実現するために使用することができる回路を示す。図5において、「A」は、署名Scpを参照する際に使用され、[B]は、署名Scpと比較される情報(例えば、リードアドレスRaddrによるインデックス付けがされたエントリにある情報、又は上記のようなアルゴリズムを使用して検索される署名ライブラリ内の情報)を参照する際に使用される。Aにおけるビットは、A[0]、...、A[n−1]として特定され、Bにおけるビットは、B[0]、...、B[n−1]として特定される。
図4のブロック406によって説明される動作中、署名Scp(A)は、情報(B)が読み出されるまでコントローラ210のライトパス内のバッファ(図示せず)に一定時間保持されることができる。次に、情報(B)が読み出された後、図5の重複排除プロセッサ230を使用して、署名Scp(A)と情報(B)とをビット単位で比較することができる。
図5の実施形態では、重複排除プロセッサ230は、XORゲート501、502によって例示される多数の排他的OR(XOR)ゲートを含む。XORゲート501は、署名Scp(A)の第1のビット(A[0])と情報(B)の第1のビット(B[0])とを比較し、別のXORゲート(図示せず)は、署名Scp(A)の第2のビットと情報(B)の第2のビット(B[0])とを比較し、同様にXORゲート502は、署名Scp(A)の最後のビット(A[n−1])と情報(B)の最後のビット(B[n−1])とを比較する。すべてのビットが一致する場合、ORゲート511はバイナリのゼロを出力し、それ以外の場合、ORゲートの出力はバイナリの1になる。これは、次のように表すことができる。
Out=(A==B)?1’b0:1’b1
したがって、重複排除プロセッサ230は、基本回路要素(例えば、ゲート)を使用して実装することができる。したがって、重複排除プロセッサ230は、従来のSSDコントローラ設計に容易かつ安価に追加することができる。さらに、重複排除プロセッサ230は、ECCデコーディングブロック216、復号ブロック217、及び/又は復元ブロック218などのSSDコントローラ内の他のモジュールといくつかの回路要素を共有することができ、それによってさらにコストを管理することを支援する。
要約すると、本発明による実施形態では、SSDの内部処理回路は、署名比較がCPUの代わりにSSDによって(具体的には、SSDコントローラによって)実行されることができるように設計される。その結果、CPUの作業負荷が軽減され、SSDとCPU間で転送されるデータ量が大幅に削減される。
CPUはSSDに署名Scpを送信する。実施形態では、CPUはまた、署名Scpに基づいてリードアドレスRaddrをSSDに送信する。SSDは、署名Scpが署名ライブラリ内の情報と一致するか否かを示す信号をCPUに送信する。複数の署名、リードアドレス、及び信号はバッチモードで送信され、本明細書で前述したように並列処理されることができる。
本発明による実施形態は、SSD(例えば、NANDフラッシュデバイス)のブロック書き込み特性及びブロック読み出し特性を有効に活用する。また、従来の手法とは異なり、未使用データをSSDからCPUに転送することによる帯域幅の消費はもはや発生しない。その結果、SSDでの1秒あたりの入出力操作数(IOPS)は、約50万から約9,000回に大幅に削減される。必要な性能は、CPU、メモリ、及び帯域幅の消費量について低減コストで維持される。
また、データが処理される効率を改善することにより、SATA SSDを署名サーバで使用することができ、これはPCIe SSDよりも安価である。さらに、PCIe SSDより多くのSATA SSDが設定され、各CPUコアに接続されることができる。したがって、ハードウェアコストも削減される。
図6は、本発明による実施形態におけるSSDのためのコントローラ(例えば、図2のコントローラ210)によって実行されるデータ重複排除方法のフローチャート600である。
図6のブロック602において、データのブロック(フラグメント、ピース、チャンク)に対する署名ScpがコントローラによりCPUから受信される。実施形態では、署名に関連付けられたアドレスRaddrもまた、コントローラによりCPUから受信される。
ブロック604において、署名ライブラリ内の情報は、コントローラによってアクセスされる。実施形態では、アドレスRaddrは、署名ライブラリ内のエントリにインデックス付けするためにコントローラによって使用される。
ブロック606において、署名Scpが署名ライブラリ内の情報と一致するか否かに関してコントローラによって判定が行われる。すなわち、コントローラは、署名Scpが署名ライブラリ内の他の署名と一致するか否かを判定する。実施形態では、コントローラは、署名Scpが、アドレスRaddrで指し示されるエントリにある情報と一致するか否かを判定する。
ブロック608において、ブロック606からの結果を示す信号がコントローラからCPUに送信される。署名Scpが署名ライブラリ内の情報と一致する場合、信号は、データのブロックがSSD上に既に格納されていることを示す第1の値を有する。署名Scpが署名ライブラリ内の情報と一致しない場合、信号は、第1の値とは異なる第2の値を有する。
署名Scpが署名ライブラリ内の情報と一致しない場合、データのブロックはSSDに書き込まれる。署名Scpが署名ライブラリ内の情報と一致しない場合、署名は署名ライブラリに追加され、データのブロックに関連付けられたカウンタは初期化され、そして、インクリメントされる。署名Scpが署名ライブラリ内の情報と一致する場合、データのブロックに関連付けられたカウンタはインクリメントされる。
図7は、本発明による実施形態では、CPU及びSSDを含み、SSDコントローラを備える署名サーバ103n(図1)によって実行されるデータ重複排除方法のフローチャート700である。
図7のブロック702において、データのブロック(ピース、フラグメント、チャンク)に対する署名Scpがクライアント101mから受信される。CPUは、署名をSSDコントローラに送信する。
ブロック704において、実施形態では、署名に基づくアドレスRaddrが(例えば、CPUによって)判定される。そのような実施形態では、CPUは、アドレスRaddrをSSDコントローラに送信する。
ブロック706において、署名ライブラリ内の情報は、SSDコントローラによってアクセスされる。実施形態では、署名ライブラリ内のエントリは、アドレスRaddrを用いて、SSDコントローラによって特定される。
ブロック708において、SSDコントローラは、署名Scpと署名ライブラリからの情報とを比較する。実施形態では、SSDコントローラは、署名と、アドレスRaddrで指し示される署名ライブラリ内のエントリの情報とを比較する。
ブロック710において、コントローラは、署名Scpが署名ライブラリ内の情報と一致するか否かを示す信号を生成し、その信号をCPUに送信する。署名Scpが署名ライブラリ内の情報と一致する場合、データのブロックは既にSSDに格納されている。署名Scpが署名ライブラリ内の情報と一致しない場合、信号は、署名サーバからクライアントに送信され、データのブロックは、署名サーバで、その信号に応答したクライアントから受信され、データのブロックはSSDに書き込まれる。
図8は、本発明による一実施形態における重複排除システム800の実装例を示すブロック図である。重複排除システム800は、ストレージクラスタ上に展開することができ、アプリケーション802によって格納されるバックアップコピー804、805、806、及び807に直接的に作用することができる。グローバルレベルでデータの重複を分析すると、重複排除システム800は、関連するメタデータも更新しながら、重複排除されたブロックを削除し、固有のブロックのみを保持する。後で、特定のデータがアクセス又は更新されると、メタデータ及び固有のブロックが変更される。この機構により、バックアップ804−807によって消費されるストレージの量は、大幅に、例えば、一桁削減される。
SATA SSDは、PCIe SSDの代わりに上記のように使用することができる。各署名サーバは、より多くのSSD、例えば、4個のPCIeカードに対して12個のSATA SSDを駆動することができる。本発明の結果として、各SATA SSDは、重複排除の必要性を満たすという観点から、PCIe SSDと同等に動作する。したがって、各署名サーバの能力は3倍向上する、言い換えれば、同じ性能であれば、署名サーバの数を3分の1に減少することができる。したがって、SATA SSDの方がPCIe SSDよりもコストがかからず、必要な署名サーバが少なくて済むため、コストが削減される。さらに、大量の不要なデータを検索する必要性を排除することによって、コンピュータリソースを節約することができる。
前述の開示は、特定のブロック図、フローチャート、及び例を用いて様々な実施形態を説明しているが、本明細書に記載及び/又は図示された各ブロック図の構成要素、各フローチャートステップ、各動作及び/又は各構成要素は、広範囲のハードウェア構成、ソフトウェア構成、又はファームウェア構成(又はそれらの任意の組み合わせ)を使用して、個別に及び/又は集合的に実現し得る。さらに、同じ機能を実現するために他の多くのアーキテクチャを実装できるため、他の構成要素に含まれる構成要素のいずれの開示も例として考慮されるべきである。
本明細書に記載及び/又は例示されているプロセスパラメータ及びステップの順序は、単なる一例として示されており、要望に応じて変更することができる。例えば、本明細書において図示及び/又は説明されたステップは、特定の順序で示され又は議論され得るが、これらのステップは、必ずしも図示又は説明された順序で実行される必要はない。本明細書において説明及び/又は図示された様々な例示的な方法は、本明細書に記載又は図示された1つ又は複数のステップを省略することもでき、又は開示されたステップに加えて追加のステップを含むこともできる。
本明細書では、様々な実施形態を完全に機能するコンピューティングシステムとの関連で説明及び/又は図示したが、これらの例示的な実施形態の1つ又は複数は、実際に配布を実行するために使用される特定のタイプのコンピュータ可読媒体に関係なく、さまざまな形態でプログラムとして配布され得る。本明細書に開示された実施形態はまた、特定のタスクを実行するソフトウェアモジュールを使用して実装されてもよい。これらのソフトウェアモジュールは、コンピュータ可読記録媒体又はコンピューティングシステムに格納され得るスクリプト、バッチ、又は他の実行可能ファイルを含み得る。これらのソフトウェアモジュールは、本明細書に開示された1つ又は複数の例示的な実施形態を実施するためにコンピューティングシステムを構成してもよい。本明細書で開示される1つ又は複数のソフトウェアモジュールは、クラウドコンピューティング環境で実装されてもよい。クラウドコンピューティング環境は、インターネットを介して様々なサービス及びアプリケーションを提供し得る。これらのクラウドベースのサービス(例えば、サービスとしてのソフトウェア、サービスとしてのプラットフォーム、サービスとしてのインフラストラクチャなど)は、ウェブブラウザ又は他のリモートインタフェースを介してアクセス可能であり得る。本明細書で説明される様々な機能は、リモートデスクトップ環境又は他の任意のクラウドベースのコンピューティング環境を介して提供されてもよい。
構成要素は、構造的特徴及び/又は方法論的動作に特有の言語で説明されているが、開示において規定される構成要素は、必ずしも上記の特定の特徴又は特定の動作に限定されないと理解すべきである。むしろ、上記の特定の特徴及び特定の動作は、開示を実施する例示的な形態として公開される。
本発明による実施形態は、そのように説明される。本開示は特定の実施形態において説明されているが、本発明は、そのような実施形態によって限定されると解釈されるべきではなく、むしろ、添付の特許請求の範囲に従って解釈されるべきである。

Claims (20)

  1. ソリッドステートドライブ(SSD)のための、コントローラによって実行されるデータ重複排除の方法であって、前記方法は、
    前記コントローラによって、中央処理装置(CPU)から、データのブロックに対する署名を受信するステップと、
    前記コントローラによって、前記署名が署名ライブラリ内の情報と一致するかを判定するステップと、
    前記コントローラから前記CPUに、前記判定の結果を示す信号を送信するステップと
    を含み、
    前記署名が署名ライブラリ内の前記情報と一致する場合、前記信号は、前記データのブロックが前記SSD上に既に格納されていることを示す第1の値を有し、さらに、前記署名が前記署名ライブラリ内の前記情報と一致しない場合、前記信号は、前記第1の値とは異なる第2の値を有する、方法。
  2. 前記方法は、さらに、
    前記コントローラによって、前記CPUから、前記署名に関連付けられたアドレスを受信するステップであって、前記コントローラは、前記署名ライブラリ内のエントリにインデックス付けするために前記アドレスを用いる、ステップと、
    前記コントローラによって、前記署名が前記署名ライブラリ内の前記エントリにある前記情報と一致するかを判定するステップとを含む、
    請求項1に記載の方法。
  3. 前記信号は、1つのバイナリビットを含み、前記ビットは、前記署名が前記署名ライブラリ内の情報と一致する場合、前記第1の値であり、前記署名が前記署名ライブラリ内の情報と一致しない場合、前記第2の値である、
    請求項1に記載の方法。
  4. 前記署名が前記署名ライブラリ内の情報と一致する場合、前記方法はさらに、前記データのブロックに関連付けられたカウンタをインクリメントするステップを含む、
    請求項1に記載の方法。
  5. 前記署名が前記署名ライブラリ内の情報と一致しない場合、前記方法はさらに、
    前記データのブロックを受信し、前記データのブロックを前記SSDに書き込むステップと、
    前記署名を前記署名ライブラリに追加し、前記データのブロックに関連付けられたカウンタをインクリメントするステップとを含む、
    請求項1に記載の方法。
  6. 前記コントローラは、前記署名と前記署名ライブラリ内の情報とを比較する重複排除プロセッサを備える、
    請求項1に記載の方法。
  7. 前記重複排除プロセッサは、前記署名と前記署名ライブラリ内の情報とのビット単位での比較を実行する複数のゲートを備える、
    請求項6に記載の方法。
  8. 前記SSDは、SATA(Serial Advanced Technology Attachment)SSDである、
    請求項1に記載の方法。
  9. 中央処理装置(CPU)及びソリッドステートドライブ(SSD)を備えるサーバによって実行されるデータ重複排除方法であって、前記SSDは、コントローラを備え、前記方法は、
    クライアントから、データのブロックに対する署名を受信するステップと、
    前記署名に基づいてアドレスを判定するステップと、
    前記コントローラで、前記アドレスを使用して、署名ライブラリ内のエントリを特定するステップと、
    前記コントローラで、前記署名と前記署名ライブラリ内の前記エントリにある情報とを比較するステップと、
    前記コントローラで、前記署名が前記情報と一致するか否かを示す信号を生成するステップとを含み、前記署名と前記情報とが一致する場合、前記データのブロックが前記SSDに既に格納されており、前記署名と前記情報とが一致しない場合、前記方法はさらに、
    前記クライアントにシグナリングするステップと、
    前記シグナリングへの応答として前記クライアントからの前記データのブロックを受信するステップと、
    前記データのブロックを前記SSDに書き込むステップと
    を含む、方法。
  10. 前記信号は、1つのバイナリビットを含み、前記ビットは、前記署名と前記情報とが一致する場合、第1の値であり、前記署名と前記情報とが一致しない場合、第2の値である、
    請求項9に記載の方法。
  11. 前記署名と前記情報とが一致する場合、前記方法はさらに、前記データのブロックに関連付けられたカウンタをインクリメントするステップを含む、
    請求項9に記載の方法。
  12. 前記署名と前記情報とが一致しない場合、前記方法はさらに、前記署名を前記署名ライブラリに追加し、前記データのブロックに関連付けられたカウンタをインクリメントするステップを含む、
    請求項9に記載の方法。
  13. 前記コントローラは、複数の排他的OR(XOR)ゲートを備え、前記複数のゲートの各ゲートは、前記署名からのビット値と前記署名ライブラリ内の前記情報からの各ビット値とを比較する、
    請求項9に記載の方法。
  14. 前記SSDは、SATA(Serial Advanced Technology Attachment)SSDである、
    請求項9に記載の方法。
  15. ソリッドステートドライブ(SSD)であって、
    複数のストレージエレメントと、
    前記ストレージエレメントに接続されるコントローラとを備え、
    前記コントローラは、中央処理装置(CPU)から、データのブロックに対する署名及び前記署名に基づくアドレスを受信するように動作可能であり、前記署名は、前記CPUによって前記データのブロックのソースから受信され、
    前記コントローラは、前記署名と前記署名ライブラリ内のエントリにある情報とを比較するため、前記署名が前記情報と一致するか否かを示す信号を生成するため、そして、前記信号を前記CPUに送信するために、前記アドレスを用いて署名ライブラリ内のエントリを特定するように動作可能であり、
    前記コントローラはさらに、前記署名が前記署名ライブラリ内の前記情報と一致しないことを示す信号への応答として前記データのブロックが受信されるとき、前記データのブロックを、前記複数のストレージエレメントに属するストレージエレメントに書き込むように動作可能である、SSD。
  16. 前記信号は、1つのバイナリビットを含み、前記ビットは、前記署名と前記情報とが一致する場合、第1の値であり、前記署名と前記情報とが一致しない場合、第2の値である、
    請求項15に記載のSSD。
  17. 前記署名と前記情報とが一致する場合、前記データのブロックに関連付けられたカウンタがインクリメントされる、
    請求項15に記載のSSD。
  18. 前記署名と前記情報とが一致しない場合、前記署名は、前記署名ライブラリに追加され、前記データのブロックに関連付けられたカウンタがインクリメントされる、
    請求項15に記載のSSD。
  19. 前記コントローラは、前記署名と前記情報とを比較する重複排除プロセッサを備え、前記重複排除プロセッサは、複数の排他的OR(XOR)ゲートを含み、前記複数のゲートの各ゲートは、前記署名からのビット値と前記署名ライブラリからの前記情報からの各ビット値とを比較する、
    請求項15に記載のSSD。
  20. 前記SSDは、SATA(Serial Advanced Technology Attachment)SSDであり、前記ストレージエレメントは、NANDダイを含む、
    請求項15に記載のSSD。
JP2018514841A 2015-09-18 2016-09-16 ソリッドステートドライブコントローラを使用するデータ重複排除 Pending JP2018527681A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/858,257 2015-09-18
US14/858,257 US9665287B2 (en) 2015-09-18 2015-09-18 Data deduplication using a solid state drive controller
PCT/US2016/052222 WO2017049142A1 (en) 2015-09-18 2016-09-16 Data deduplication using a solid state drive controller

Publications (2)

Publication Number Publication Date
JP2018527681A true JP2018527681A (ja) 2018-09-20
JP2018527681A5 JP2018527681A5 (ja) 2019-09-26

Family

ID=58282696

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018514841A Pending JP2018527681A (ja) 2015-09-18 2016-09-16 ソリッドステートドライブコントローラを使用するデータ重複排除

Country Status (6)

Country Link
US (2) US9665287B2 (ja)
EP (1) EP3350683B1 (ja)
JP (1) JP2018527681A (ja)
KR (1) KR20180052739A (ja)
CN (1) CN108027713B (ja)
WO (1) WO2017049142A1 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9665287B2 (en) 2015-09-18 2017-05-30 Alibaba Group Holding Limited Data deduplication using a solid state drive controller
US10318202B2 (en) * 2017-03-20 2019-06-11 Via Technologies, Inc. Non-volatile memory apparatus and data deduplication method thereof
CN107402725B (zh) * 2017-03-20 2020-08-25 威盛电子股份有限公司 非易失性存储装置及其数据去重复方法
CN109669623B (zh) * 2017-10-13 2021-09-03 杭州海康威视系统技术有限公司 一种文件管理方法、文件管理装置、电子设备及存储介质
CN108920964B (zh) * 2018-06-21 2020-09-29 深圳忆联信息系统有限公司 可重构硬件加解密方法、系统、计算机设备及存储介质
CN109062514B (zh) * 2018-08-16 2021-08-31 郑州云海信息技术有限公司 一种基于命名空间的带宽控制方法、装置和存储介质
CN110968537B (zh) * 2018-09-28 2021-02-02 方一信息科技(上海)有限公司 一种基于pcie ssd的fpga搜索匹配方法
US11029874B2 (en) 2019-07-30 2021-06-08 Western Digital Technologies, Inc. Rolling XOR protection in efficient pipeline
KR20210034897A (ko) 2019-09-23 2021-03-31 삼성전자주식회사 스토리지 장치 및 그것의 동작 방법
CN113365282B (zh) * 2021-06-22 2023-04-07 成都信息工程大学 一种wsn障碍性区域覆盖部署方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090307416A1 (en) * 2008-06-04 2009-12-10 Intitio Corporation Ssd with a controller accelerator
US7761425B1 (en) * 2007-03-29 2010-07-20 Symantec Corporation Low-overhead means of performing data backup
JP2010170475A (ja) * 2009-01-26 2010-08-05 Nec Corp ストレージシステム、ストレージシステムにおけるデータ書込方法及びデータ書込プログラム
JP2014511129A (ja) * 2010-12-29 2014-05-08 アマゾン・テクノロジーズ・インコーポレーテッド データシステムにおける受信器側データの重複排除
WO2014087508A1 (ja) * 2012-12-05 2014-06-12 株式会社日立製作所 ストレージシステム及びストレージシステムの制御方法
WO2014155668A1 (ja) * 2013-03-29 2014-10-02 株式会社 東芝 データの重複をハッシュテーブルに基づいて排除するためのストレージシステム、ストレージコントローラ及び方法
US9092151B1 (en) * 2010-09-17 2015-07-28 Permabit Technology Corporation Managing deduplication of stored data

Family Cites Families (66)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7636767B2 (en) 2005-11-29 2009-12-22 Cisco Technology, Inc. Method and apparatus for reducing network traffic over low bandwidth links
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
US20090132616A1 (en) 2007-10-02 2009-05-21 Richard Winter Archival backup integration
US7962452B2 (en) 2007-12-28 2011-06-14 International Business Machines Corporation Data deduplication by separating data from meta data
US8825617B2 (en) 2008-03-14 2014-09-02 International Business Machines Corporation Limiting deduplication based on predetermined criteria
US7567188B1 (en) 2008-04-10 2009-07-28 International Business Machines Corporation Policy based tiered data deduplication strategy
US7814149B1 (en) 2008-09-29 2010-10-12 Symantec Operating Corporation Client side data deduplication
US8626723B2 (en) 2008-10-14 2014-01-07 Vmware, Inc. Storage-network de-duplication
US8082228B2 (en) * 2008-10-31 2011-12-20 Netapp, Inc. Remote office duplication
US8812874B1 (en) 2009-03-31 2014-08-19 Symantec Corporation Content deduplication in enterprise rights management
US8407186B1 (en) 2009-03-31 2013-03-26 Symantec Corporation Systems and methods for data-selection-specific data deduplication
US8281066B1 (en) * 2009-04-30 2012-10-02 Netapp, Inc. System and method for real-time deduplication utilizing an electronic storage medium
CN101882141A (zh) * 2009-05-08 2010-11-10 北京众志和达信息技术有限公司 一种实现重复数据数据删除的方法和系统
US8442954B2 (en) 2009-07-21 2013-05-14 Stephen Philip SPACKMAN Creating and managing links to deduplication information
US8204867B2 (en) 2009-07-29 2012-06-19 International Business Machines Corporation Apparatus, system, and method for enhanced block-level deduplication
US20110093439A1 (en) 2009-10-16 2011-04-21 Fanglu Guo De-duplication Storage System with Multiple Indices for Efficient File Storage
US8321648B2 (en) 2009-10-26 2012-11-27 Netapp, Inc Use of similarity hash to route data for improved deduplication in a storage server cluster
US8478933B2 (en) 2009-11-24 2013-07-02 International Business Machines Corporation Systems and methods for performing deduplicated data processing on tape
US8407193B2 (en) 2010-01-27 2013-03-26 International Business Machines Corporation Data deduplication for streaming sequential data storage applications
JP5434705B2 (ja) 2010-03-12 2014-03-05 富士通株式会社 ストレージ装置、ストレージ装置制御プログラムおよびストレージ装置制御方法
US8370593B2 (en) 2010-04-14 2013-02-05 Hitachi, Ltd. Method and apparatus to manage groups for deduplication
WO2011133443A1 (en) 2010-04-19 2011-10-27 Greenbytes, Inc. A method for optimizing the memory usage and performance of data deduplication storage systems
US8639658B1 (en) 2010-04-21 2014-01-28 Symantec Corporation Cache management for file systems supporting shared blocks
US8935487B2 (en) * 2010-05-05 2015-01-13 Microsoft Corporation Fast and low-RAM-footprint indexing for data deduplication
US9053032B2 (en) 2010-05-05 2015-06-09 Microsoft Technology Licensing, Llc Fast and low-RAM-footprint indexing for data deduplication
US8489855B2 (en) 2010-05-07 2013-07-16 Ocz Technology Group Inc. NAND flash-based solid state drive and method of operation
US20120173795A1 (en) * 2010-05-25 2012-07-05 Ocz Technology Group, Inc. Solid state drive with low write amplification
US8370315B1 (en) 2010-05-28 2013-02-05 Symantec Corporation System and method for high performance deduplication indexing
US10162553B2 (en) * 2010-11-24 2018-12-25 Western Digital Technologies, Inc. Methods and systems for object level de-duplication for solid state devices
US8898119B2 (en) 2010-12-15 2014-11-25 Netapp, Inc. Fingerprints datastore and stale fingerprint removal in de-duplication environments
US8332372B2 (en) 2010-12-16 2012-12-11 International Business Machines Corporation Method and system for processing data
US8495304B1 (en) 2010-12-23 2013-07-23 Emc Corporation Multi source wire deduplication
US9116909B2 (en) * 2010-12-29 2015-08-25 Amazon Technologies, Inc. Reduced bandwidth data uploading in data systems
US9223511B2 (en) 2011-04-08 2015-12-29 Micron Technology, Inc. Data deduplication
US8600949B2 (en) 2011-06-21 2013-12-03 Netapp, Inc. Deduplication in an extent-based architecture
US8589640B2 (en) * 2011-10-14 2013-11-19 Pure Storage, Inc. Method for maintaining multiple fingerprint tables in a deduplicating storage system
US8533231B2 (en) 2011-08-12 2013-09-10 Nexenta Systems, Inc. Cloud storage system with distributed metadata
US8484170B2 (en) 2011-09-19 2013-07-09 International Business Machines Corporation Scalable deduplication system with small blocks
US8620886B1 (en) * 2011-09-20 2013-12-31 Netapp Inc. Host side deduplication
CN103034659B (zh) 2011-09-29 2015-08-19 国际商业机器公司 一种重复数据删除的方法和系统
US8898120B1 (en) 2011-10-09 2014-11-25 Symantec Corporation Systems and methods for distributed data deduplication
US8572312B2 (en) 2011-12-07 2013-10-29 Jeffrey Tofano Data de-duplication and solid state memory device
KR20130064518A (ko) * 2011-12-08 2013-06-18 삼성전자주식회사 저장 장치 및 그것의 동작 방법
CN102646069B (zh) * 2012-02-23 2014-12-10 华中科技大学 一种延长固态盘使用寿命的方法
US20130282672A1 (en) * 2012-04-18 2013-10-24 Hitachi Computer Peripherals Co., Ltd. Storage apparatus and storage control method
US9177028B2 (en) 2012-04-30 2015-11-03 International Business Machines Corporation Deduplicating storage with enhanced frequent-block detection
US8930648B1 (en) 2012-05-23 2015-01-06 Netapp, Inc. Distributed deduplication using global chunk data structure and epochs
US8788468B2 (en) 2012-05-24 2014-07-22 International Business Machines Corporation Data depulication using short term history
US8930612B2 (en) 2012-05-31 2015-01-06 Seagate Technology Llc Background deduplication of data sets in a memory
CN102981969A (zh) * 2012-11-21 2013-03-20 记忆科技(深圳)有限公司 重复数据删除的方法及其固态硬盘
US8935222B2 (en) 2013-01-02 2015-01-13 International Business Machines Corporation Optimizing a partition in data deduplication
US9219784B2 (en) * 2013-03-07 2015-12-22 International Business Machines Corporation Synchronization of a server side deduplication cache with a client side deduplication cache
US9244937B2 (en) 2013-03-15 2016-01-26 International Business Machines Corporation Efficient calculation of similarity search values and digest block boundaries for data deduplication
US9116941B2 (en) 2013-03-15 2015-08-25 International Business Machines Corporation Reducing digest storage consumption by tracking similarity elements in a data deduplication system
US20140304464A1 (en) 2013-04-03 2014-10-09 Lsi Corporation Methods and systems for performing deduplication in a data storage system
CN103473266A (zh) * 2013-08-09 2013-12-25 记忆科技(深圳)有限公司 固态硬盘及其删除重复数据的方法
GB2518158A (en) * 2013-09-11 2015-03-18 Ibm Method and system for data access in a storage infrastructure
KR20150067583A (ko) * 2013-12-10 2015-06-18 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 중복 데이터 제거 방법
US10380072B2 (en) * 2014-03-17 2019-08-13 Commvault Systems, Inc. Managing deletions from a deduplication database
US10254989B2 (en) * 2014-05-30 2019-04-09 Hitachi, Ltd. Method and apparatus of data deduplication storage system
CN104407982B (zh) 2014-11-19 2018-09-21 湖南国科微电子股份有限公司 一种ssd盘片垃圾回收方法
US10416915B2 (en) * 2015-05-15 2019-09-17 ScaleFlux Assisting data deduplication through in-memory computation
US20170017571A1 (en) * 2015-07-17 2017-01-19 Samsung Electronics Co., Ltd. Method and apparatus fori n-line deduplication in storage devices
US9665287B2 (en) 2015-09-18 2017-05-30 Alibaba Group Holding Limited Data deduplication using a solid state drive controller
JP6067819B1 (ja) * 2015-10-21 2017-01-25 株式会社東芝 階層化ストレージシステム、ストレージコントローラ、並びに重複排除及びストレージ階層化のための方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7761425B1 (en) * 2007-03-29 2010-07-20 Symantec Corporation Low-overhead means of performing data backup
US20090307416A1 (en) * 2008-06-04 2009-12-10 Intitio Corporation Ssd with a controller accelerator
JP2010170475A (ja) * 2009-01-26 2010-08-05 Nec Corp ストレージシステム、ストレージシステムにおけるデータ書込方法及びデータ書込プログラム
US9092151B1 (en) * 2010-09-17 2015-07-28 Permabit Technology Corporation Managing deduplication of stored data
JP2014511129A (ja) * 2010-12-29 2014-05-08 アマゾン・テクノロジーズ・インコーポレーテッド データシステムにおける受信器側データの重複排除
WO2014087508A1 (ja) * 2012-12-05 2014-06-12 株式会社日立製作所 ストレージシステム及びストレージシステムの制御方法
WO2014155668A1 (ja) * 2013-03-29 2014-10-02 株式会社 東芝 データの重複をハッシュテーブルに基づいて排除するためのストレージシステム、ストレージコントローラ及び方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
平澤寿康: "平澤寿康の周辺機器レビュー Samsung 「Samsung SSD 840 EVO」 〜疑似SLC", PC WATCH, JPN7020003948, 26 July 2013 (2013-07-26), ISSN: 0004404350 *

Also Published As

Publication number Publication date
US20170242616A1 (en) 2017-08-24
EP3350683A4 (en) 2019-04-24
EP3350683A1 (en) 2018-07-25
CN108027713A (zh) 2018-05-11
WO2017049142A1 (en) 2017-03-23
CN108027713B (zh) 2021-10-12
US9864542B2 (en) 2018-01-09
EP3350683B1 (en) 2023-05-10
US20170083245A1 (en) 2017-03-23
KR20180052739A (ko) 2018-05-18
US9665287B2 (en) 2017-05-30

Similar Documents

Publication Publication Date Title
US9864542B2 (en) Data deduplication using a solid state drive controller
US9405684B1 (en) System and method for cache management
US9846642B2 (en) Efficient key collision handling
US20200133545A1 (en) Efficient compression of data in storage systems through offloading computation to storage devices
US8751763B1 (en) Low-overhead deduplication within a block-based data storage
US8683156B2 (en) Format-preserving deduplication of data
US10019323B1 (en) Method and system for container data recovery in a storage system
US8112463B2 (en) File management method and storage system
US9619478B1 (en) Method and system for compressing logs
US10037245B2 (en) Raid system performance enhancement using compressed data and byte addressable storage devices
US20180285014A1 (en) Data storage method and apparatus
US10606499B2 (en) Computer system, storage apparatus, and method of managing data
US10241871B1 (en) Fragmentation mitigation in synthetic full backups
CN112286714A (zh) 在基于nand的读取源存储中提高大数据分析吞吐量的方法和系统
US9575680B1 (en) Deduplication rehydration
US9619336B2 (en) Managing production data
US20200089784A1 (en) Method and system for reduced data movement compression using in-storage computing and a customized file system
US11132137B2 (en) Methods and systems for providing read-optimized scalable offline de-duplication for blocks of data
US10990535B2 (en) Storage control apparatus and storage control method for deduplication
US11163748B1 (en) Fingerprint backward compatibility in deduplication backup systems
US9563363B2 (en) Flexible storage block for a solid state drive (SSD)-based file system
US11175842B2 (en) Method and system for performing data deduplication in a data pipeline
US20210278977A1 (en) Method and system for performing data deduplication and compression in a data cluster
US11068208B2 (en) Capacity reduction in a storage system
US20190188102A1 (en) Method and system for data recovery in a cloud based computing environment utilizing object storage

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190816

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190816

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200812

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200901

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201027

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201208

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210226

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20210907