JP2013514560A - ストレージシステム - Google Patents
ストレージシステム Download PDFInfo
- Publication number
- JP2013514560A JP2013514560A JP2012528164A JP2012528164A JP2013514560A JP 2013514560 A JP2013514560 A JP 2013514560A JP 2012528164 A JP2012528164 A JP 2012528164A JP 2012528164 A JP2012528164 A JP 2012528164A JP 2013514560 A JP2013514560 A JP 2013514560A
- Authority
- JP
- Japan
- Prior art keywords
- storage
- data
- block
- storage device
- stored
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
- G06F3/0641—De-duplication techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【選択図】図11
Description
一般的に、バックアップストレージシステムは、バックアップアプリケーションが作成した長いデータストリームを受け取る。これらのストリームは通常アーカイルファイブまたは仮想テープ画像である。データストリームはブロックに分割され、各ブロックについて安全なハッシュ値(例えばSHA−1)が計算される。これらのハッシュ値を、システム内に既に保存されているブロックのハッシュ値と比較する。安全なハッシュ関数にハッシュの衝突が発見されることはまずあり得ないため、同じハッシュ値のブロックは同一であるとみなす(いわゆる「ハッシュ比較」)。したがって、同じハッシュ値のブロックがあった場合はそのブロックが重複していると判断し、保存しない。データストリームを構成するすべてのブロックの識別子を保存し、読み出し時にオリジナルのデータストリームを再構築するのに使用する。
大規模な重複排除ストレージシステムを実装するためには、パフォーマンスに関するいくつかの重要な課題を解決する必要がある。
非特許文献2に挙げるような集中型システムは、システムのサイズに関して拡張性が限られている。独立したシステムをいくつか構成して容量を拡張することはできるが、それらの間では重複排除機能は無効となり、またバックアップを孤立した記憶装置に置くことでメンテナンスの負荷が増大する。
ブロックはすべてのノードに対して均等に分散化されるため、概して全てのノードが、システムサイズのファクタで縮小された入力ストリームの一部を受け取る。大規模なシステムでは、これによってストリームの局所性が著しく低下する。オリジナルのストリームが保持していたストリームの局所性は、各ノード内でもこのファクタによって低下する。
ブロックはストレージノードに均等に分散化されるため、全てのノードがほぼ同じ数のブロックをクライアントから受け取る。クライアントの数が増加すると、重複していないすべてのブロックの書込みを収容するためにネットワークのスループット要件も増加する。
記憶対象データを分割した複数のブロックデータを複数の記憶装置に分散して記憶すると共に、記憶装置に既に記憶されている記憶対象データと同一のデータ内容の他の記憶対象データを記憶装置に格納する場合に、当該記憶装置に既に記憶されている記憶対象データを前記他の記憶対象データとして参照して重複記憶排除を行うデータ格納制御部を備え、
前記データ格納制御部は、記憶対象データを分割した当該記憶対象データ内で連続する複数のブロックデータを、前記複数の記憶装置のうち特定の記憶装置に記憶すると共に、当該ブロックデータのデータ内容に基づく特徴データと当該ブロックデータの前記特定の記憶装置内における格納位置を表す格納位置情報とを関連付けて当該特定の記憶装置内に格納位置特定テーブルとして記憶し、前記特定の記憶装置を識別する記憶装置識別情報と当該特定の記憶装置に格納された前記ブロックデータの前記特徴データとを関連付けて記憶装置特定テーブルとして記憶する、
という構成をとる。
情報処理装置に、
記憶対象データを分割した複数のブロックデータを複数の記憶装置に分散して記憶すると共に、記憶装置に既に記憶されている記憶対象データと同一のデータ内容の他の記憶対象データを記憶装置に格納する場合に、当該記憶装置に既に記憶されている記憶対象データを前記他の記憶対象データとして参照して重複記憶排除を行うデータ格納制御部を実現させると共に、
前記データ格納制御部は、記憶対象データを分割した当該記憶対象データ内で連続する複数のブロックデータを、前記複数の記憶装置のうち特定の記憶装置に記憶すると共に、当該ブロックデータのデータ内容に基づく特徴データと当該ブロックデータの前記特定の記憶装置内における格納位置を表す格納位置情報とを関連付けて当該特定の記憶装置内に格納位置特定テーブルとして記憶し、前記特定の記憶装置を識別する記憶装置識別情報と当該特定の記憶装置に格納された前記ブロックデータの前記特徴データとを関連付けて記憶装置特定テーブルとして記憶する、
ことを実現させるためのプログラムを記憶した記憶媒体である。
記憶対象データを分割した複数のブロックデータを複数の記憶装置に分散して記憶すると共に、記憶装置に既に記憶されている記憶対象データと同一のデータ内容の他の記憶対象データを記憶装置に格納する場合に、当該記憶装置に既に記憶されている記憶対象データを前記他の記憶対象データとして参照して重複記憶排除を行うデータ格納方法であって、
記憶対象データを分割した当該記憶対象データ内で連続する複数のブロックデータを、前記複数の記憶装置のうち特定の記憶装置に記憶すると共に、当該ブロックデータのデータ内容に基づく特徴データと当該ブロックデータの前記特定の記憶装置内における格納位置を表す格納位置情報とを関連付けて当該特定の記憶装置内に格納位置特定テーブルとして記憶し、前記特定の記憶装置を識別する記憶装置識別情報と当該特定の記憶装置に格納された前記ブロックデータの前記特徴データとを関連付けて記憶装置特定テーブルとして記憶する、
という構成をとる。
本願では、グローバルなインライン重複排除機能を持つ拡張可能なストレージシステムのための、新たなアーキテクチャを提案する。このシステムでは、データ記憶装置を重複のインデックスから切り離すことで、システム規模による復元力の低下や全ノード間での均一帯域幅の必要性といった、既存のシステムが持つ欠点が改善される。
本願で提案するシステムアーキテクチャについて説明する前に、当該システムが機能する環境に関する要件と前提について概説する。
ストレージシステムの主な適用対象はバックアップデータである。重複排除を最大限節約するために、ストレージシステムは多数のクライアントシステムのバックアップデータを保存する。このような環境では、大容量、高信頼性、および特有の性能特徴が必要となる。短いバックアップ時間内にバックアップを完了させなければならないため、非常に高い総書込みスループットが必要である。このシステムは、ほぼ書込みを行い、つまりデータの読出しよりも書込みをはるかに頻繁に行うシステムである。読出しは、主にバックアップシステムに障害が発生し再構築を行う時に行われる。通常、システムの再構築にかかる時間は重要であることから、合理的な高い読出しスループットが必要とされる。
ブロックレベル
同一ブロック
多様なサイズのブロック:ブロックの境界はコンテンツ指定チャンク分割によって設定
ハッシュによる比較
正確性
インライン
分散型
グローバルな範囲
このシステムは、クライアント装置に対して業界標準バックアップインタフェースを提供する必要がある。Disk−to−Diskバックアップの観点において、これは通常NAS(Network Attached Storage)またはVTL(Virtual Tape library)としてエクスポートされるファイルシステムである。
このストレージシステムは、内部ネットワークをデータソース、つまりクライアントのバックアップ装置に接続することに加えて、必要とされる大容量にまで内部ネットワークを拡大する必要がある。ネットワークは、ストレージシステムのノード間およびデータソースへのリンクにおいて、高いスループットを提供する必要がある。
スイッチ内スループットが高くスイッチ間の総スループットが低い、階層的ネットワーク。
任意の2つのノード間で全断面(whole cross-section)帯域幅が利用可能な対称ネットワーク。
ストレージシステムに書き込まれる、またはそこから読み出されるデータは、結果的にクライアント装置(バックアップサーバ)を通過しなければならない。各クライアントのバックアップサーバは、データの調達と受信のためのリソースが限られているため、ローカルディスクまたはネットワーク接続のいずれかがボトルネックとなる。
(概要)
本願で提案するストレージシステムは以下の種類のノードで構成される。
アクセスノード:システムへの入口の役割を果たし、またクライアント装置に接続する。
ストレージノード:データブロックを実際に保存する。
インデックスノード:重複の識別と位置特定を担当する。
1つのストリームに属する非重複ブロックのシーケンスは、ストレージノードの小さなサブセット上に近接して保存される。これにより、上記で述べたストリームベースの局所性が保存され、再構築の際に効率的に順次読出しを行うことが可能となる。また、これは重複排除性能にとっても重要であり、重複ブロックのハッシュ値を効率的にプリフェッチすることができる。
ブロックが書き込まれるストレージノードは、ブロックのハッシュ値に依存しないので、別のブロックインデックスを維持しなければならない。このインデックスは、ブロックのハッシュ値に基づいて、システム内のすべてのインデックスノードに渡って分割される。ハッシュ領域には、いずれにしても局所性がないため、ここでハッシュ値を求めることは適切であり、それによって良好な拡張性、並列性、および負荷バランスが実現される。
ストリーム局所性の保存は、ある程度の最大ストリーム長までしか意味をなさない。これは順次的なディスクへのアクセスの効率によって決定される。1つの場所に十分な順次的なブロックが累積されれば、それ以上のブロックはどこかに保存される。したがって、所定のストリームの非重複ブロックが書き込まれるノードは、時間と共に変化する。これは容量のバランスを良好な状態に保つ役割を果たし、あるストレージノードが他のノードよりも早くフルになってしまう事態が避けられる。
データの場所はブロックのハッシュ値によって決定されるわけではないため、本願で提案するシステムでは、データの書込みを行うクライアント装置の近くのストレージノード上にデータを保存することができる。これにより、より高い階層のスイッチを介するデータ転送とそれに関連するネットワークのスループットのボトルネックを避けることによって、非対称ネットワーク内での書込み帯域幅を大きく改善することができる。重複排除のクエリーだけは、ネットワーク内のすべてのノードに一様に送信する必要があるが、これらは非常に小さく、大きな帯域幅を必要としない。上述したシステムを構成する論理的構成要素を以下に記載する。
フロントエンドは、ファイルシステム、VTLや類似形態のデータをクライアントにエクスポートする。また入力される書込みストリームを多様なサイズのブロックに分割し、重複排除および保存の処理を行うためにそれらを提供する。フロントエンドはアクセスノード上に設けられる。システムのこの部分は、非特許文献1に記載される現在のHYDRAstorと同じでもよい。
分散されたコンセンサスを伴う「分散型ハッシュテーブル」を用いて「ネットワークオーバーレイ」層を実装する。DHTはシステムの拡張性のベースとなるものである。ネットワークオーバーレイは、以下のものを提供する。
オブジェクトの場所の仮想化。障害およびシステム再構築の際、物理的装置に論理オブジェクトを効率的にマッピングすることが可能となる。
障害の検出および耐性
負荷バランス(DHTのキー領域内でオブジェクトが均等に分散化されていると仮定)
小さなシステム全体の状態(グローバルな状態)の伝播と維持
本願で使用するDHTは、スーパーノードを備える「固定プレフィックスネットワーク」(FixedPrefixNetwork:FPN)(非特許文献5)である。ストレージシステムにおけるFPNの使用については既に非特許文献1に記載されているため、ここでは本システムの内容におけるオーバーレイの機能についてのみ概説する。
本システムでは、次の2つのDHTを使用する。
・データFPN
論理的なデータの位置を、その保存を担当するストレージノードにマッピングする。データFPNのコンポーネントはストレージノード上に設けられている。このマッピングはデータ位置の仮想化を提供する。つまり、論理的な位置はシステムの再構築または障害時でも変更されず、データが設けられているストレージノードが変わった場合でも、変更されない。データFPNの詳細は後に説明する。
ブロックのハッシュ値を、そのハッシュ値の変換を維持するインデックスノードに割り当てる。このネットワークのコンポーネントは、インデックスノード上に設置される。詳細は後に説明する。
(データ構成の概要)
このシステムに保存されるすべてのユーザデータは、データFPNコンポーネントによってブロックとして保存される。ブロックは冗長符号化されてSNCDataフラングメントとなる。これにはオリジナルのフラグメントと冗長フラグメントとが含まれる。オリジナルのフラグメントと冗長フラグメントとの割合はユーザがデータに割り当てたクラスによって決定される。ブロックは、書込み時にデータFPNスーパーノードに割り当てられる。割当ポリシの詳細は後に説明する。
データFPNスーパーノード内において、保存されたブロックはSynchrunにグループ分けされる。同じブロックに属するフラグメントは、そのSynchrunの該当するSynchrunコンポーネントに入力される。各Synchrunには、フラグメント番号0からSNCData−1に対応する、SNCDataSynchrunコンポーネントがある。Synchrunとは、データ同期動作のための処理の原子単位である。ブロックは、バックグラウンドでのメンテナンス動作中は決してsynchrun境界を越えることはない。
複数の連続するSynchrunは、Streamrunにグループ分けされる。このグループ分けは静的であり、Synchrunが割り当てられた時点で決定される。Streamrunとは、良好な局所性を保つために同じスーパーノードに保持すべき同じストリームの一連のブロックに該当し、保存バランスを保つ単位である。
各synchrunは64ビットの識別子で識別される。SynchrunのIDは、Synchrunが属するスーパーノードを静的に決定する。
スーパーノードゾーンのプレフィックス
そのスーパーノード内でのStreamrunのID
そのStreamrun内でのシーケンス番号
このシステムに保存されるすべてのブロックには、それが書き込まれたSynchrun内のシーケンス番号が割当てられる。このシーケンス番号とSynchrunのIDの組み合わせによって、システム全体に含まれるブロックを一意的に識別する。
したがって、(SynchrunID、BlockSeqNum)のペアを「ユニークブロックアドレス」という。このアドレスは、後にブロックが削除された場合でも再利用されることはない。
所定のスーパーノードに新規ブロックを保存する要求は、常にそのスーパーノードの固定のコンポーネント、つまり「書込みイニシエータ」を経由する。イニシエータは、Synchrun内で一意のブロック識別子を割当て、書込み処理と、そのスーパーノードの他のコンポーネントおよびインデックスFPNとの間の調整を担当する。
未加工のフラグメントデータとは別に、各SCCは、そのSCCに属するフラグメントのメタデータを保存する。このメタデータには、例えばブロックのハッシュ値、一意のブロックID、サイズ、およびSCC内でのフラグメントのデータの位置等が含まれる。
「グローバルブロックインデックス」とは、保存されたブロックのハッシュ値を一意のブロック識別子(例えば(ShnchrunID、BlockSeqNum)のペア)にマッピングする、分散型のハッシュテーブルである。これはインデックスFPNの上部に実装される。
各ストレージノード内において、グローバルブロックインデックスは「ディスク圧縮インデックス(DiskCompactedIndex:DCI)」というディスク上のデータ構造に保存される。DCIは高いパフォーマンスで非重複ブロックを識別する必要がある。
ディスク上のハッシュテーブルのバケットを読み出す。
書込みバッファから更新があれば適用する。
バケット用のブルームフィルタ部分を再構築する。
更新したバケットをディスクにフラッシュする。
グローバルブロックインデックスは、ブロックのsynchrunへの書込みに成功し、それが「ガーベジコレクション」処理によって削除された後、更新される。グローバルブロックインデックス内の、ブロックのゾーンのホスティングを担当するインデックスノードは、通常、実際にブロックを保存するストレージノードとは異なるため、インデックスの更新を慎重に同期させる必要がある。
変換は、ガーベジコレクションによってのみグローバルブロックインデックスから削除される。最も簡潔な解決策では、グローバルブロックインデックス全体を、ガーベジコレクション終了後に残っているブロックから再構築することができる。また、以下に述べる、より洗練された解決策もある。
変換は、ブロックのsynchrunへの保存に成功した場合にのみ、グローバルブロックインデックスに追加される。そのため、複数のクライアントが同時に同じブロックを書き込もうとすると競合が発生し、同じブロックが保存される可能性がある。
「変換キャッシュ」とは、すでに保存されているブロックに対し効率的に重複排除を行うために使用する、SCCインデックスのメモリ内キャッシュであり、データストリーム内の重複ブロックの局所性を利用する(通常の重複ブロックは、当初保存されたときと同じ順序で書き込まれる傾向がある)。
次に、上記のデータ構成における一般的な動作について説明する。
ユーザからの書込みは、まずアクセスノードのフロントエンドで処理される。ここでは、書込みを多様なサイズのブロックに分割し、ブロックのツリーを構築する。各ブロックについて、SHA−1ハッシュキーを計算し、これを使用してブロックが唯一のものか、または重複しているのかを決定する。
ブロックのハッシュキーを、まず変換キャッシュ内で検索する。そこに存在する場合は、候補となるオリジナルのブロックのsynchrunとユニークブロックIDを検索する。synchrunIDを使用して、要求をストレージノードに送信し、変換キャッシュのエントリが陳腐化していないこと、またブロックが、それに対する重複書込みに十分な耐性を持つことを検証する。この検証に通れば、書込み処理が完了する。
変換キャッシュが利用可能なエントリを含まない場合は、グローバルブロックインデックスを調査する。グローバルブロックインデックス内にブロックがなかった場合は、ブルームフィルタを使用しているおかげで、ディスクにアクセスせず否定回答が返信される可能性が高い。候補が発見されなかった場合、またはすべての候補ブロックが拒否された場合、そのブロックは唯一のものであり、保存される。
新たなSynchrunは常に、そのSynchrunを担当するスーパーノードの書込みイニシエータによって作成される。書込みイニシエータは、以前に割り当てられていたStreamrunおよびその中のSynchrunを知っており、新たに割り当てられたSynchrunが一意なIDを持つことを保証することができる。
新たなストリームの、最初の唯一のブロックを書き込む前。
以前のSynchrunがフルになった場合。
複数のアクセスノードが同時に同じブロックを書き込もうとした場合、同じブロックの複数のコピーが保存される可能性がある。グローバルブロックインデックスのリースは、このような事態が実際に発生するのを防ぐために使用される。
ブロックは、ポインタブロックにどのタイプのアドレスが保存されているかによって、ハッシュキーまたはユニークブロックIDのいずれかに基づいて読み出すことができる(これについては後に詳しく説明する)。ブロックは、十分な数のフラグメントを読み出すことで再構築することができる。実際にデータを読み出すためには、まずSCC内のフラグメントのオフセットを検索する必要がある。
インデックスとストレージノードの障害は適切なFPN層によって検出される。障害が発生したノードに設けられているFPNコンポーネントは、別のインデックス/ストレージノードに再形成される(コンセンサスを用いる)。このノードの選択は、1ノード当たりのコンポーネント数のバランスが維持されるように行う。
ブロックの削除は分散型のガーベジコレクション処理を用いて行う。非特許文献1に記載されているアルゴリズムと同じものを本システムに適用することができる。
概説すると、SCCインデックス内で、各ブロックについて参照カウンタを維持する。ブロックの参照カウンタは、そのブロックを参照するポインタブロックの数である。
ガーベジコレクションの処理は、ブロックを死んだものとマークするだけである。つまり、それらの変換がグローバルブロックインデックスから削除され、新たな重複が削除されることはないが、その保存領域はまだ開放されていない。この領域は、バックグラウンドで、一度に1つのSCCについて再利用が行われる。
システムに新たなストレージノードが追加され容量が増える場合は、良好な負荷バランスを保つためにFPNスーパーノードの数を増やす必要がある。そのためには、ゾーンプレフィックスの長さを長くすればよい。各FPNコンポーネントは、より長いプレフィックスを備える2つの新たなコンポーネントに分割される。
(Streamrunのサイズの影響)
Streamrunのサイズによって、データのストリームに対して新たなスーパーノードが選択される頻度が決まる。Streamrunのサイズの選択に関連してトレードオフの関係がある。負荷バランスを考えると、新たなスーパーノードへのスイッチが頻繁に行われる(例えば各synchrunの後)方が良い。ただし、次の点を考慮する必要がある。
システム成長後、スーパーノード間でデータが拡散される
ディスクのスピンダウンが回避される。
スーパーノードのコンポーネントは、システム内の容量のバランスを取るために使用される。コンポーネントは、ストレージノードに対して、そのストレージノードの記憶容量に比例して割り当てられる。すべてのコンポーネントは常に移転するため、各ストレージノードに複数のコンポーネントが存在し、それによってバランスの規模を保っている。
データFPNのスーパーノード濃度により、以下の事項が決定される。
データFPNの冗長性。アクティブなFPNコンポーネントの半分以下しか永久的な故障は許されない。そうでないとコンセンサスのクオラムが失われる。
利用可能なデータ復元クラスの数。冗長符号化は0からSNCData−1までの冗長フラグメントを作成するよう構成することができる。
1つのストリームに割り当てられる並列性の数。
ポインタブロックは、既に保存されている他のブロックを参照するブロックである。ポインタブロックは、個々のデータブロックを、ファイルまたはファイルシステム全体のスナップショットのようなデータ構造に組み込むために使用される。
ハッシュアドレスは、何らかのメタデータ(例えば復元クラス)と連結したブロックのコンテンツのハッシュ値である。このアドレスは、想定されるサイズのシステムにおいて、ハッシュ衝突の可能性を無視するのに十分な大きさでなければならない。SHA−1ハッシュ関数を使用すると仮定すると、ハッシュアドレスは20バイトである。
ブロックのデータを読み出す前に、ブロックの位置を検索する必要がある。複数のブロックを、当初書き込まれたときと同じ順序で順次読み出す場合、これらの検索のほとんどは、ディスクにアクセスすることなく変換キャッシュで対応する。しかし、変換キャッシュはストリームの最初の数ブロック(ストリームのSCCインデックスがプリフェッチされるまで)の変換を含まない場合があり、またキャッシュはランダムな読出しには全く効果がない。この場合、コストの高いフラグメント位置検索を行う必要がある。
Synchrunからスーパーノードへの静的なマッピングを用いる場合、ブロックを別のSynchrunに移動させたほうが良いケースもあり、非対称ネットワークでは負荷バランスを改善するために必要な場合がある。
ハッシュアドレスによるブロックの読出しは、グローバルブロックインデックスに存在する変換に依存する。これがブロックを読み出す唯一の方法である場合、システムは、ブロック書込み処理が完了する前にGBIの更新に成功したことを保証しなければならない。これにより、ブロック書込み処理のレイテンシが増えるか、またはハッシュリースの持続性が要求される。
システムに、構成上耐えられる以上の障害が発生した場合、読出し不能になるブロックが出てくる可能性がある。重複排除により、読出し不能のブロックを含むすべてのファイルシステムのスナップショットが影響を受ける。
ポインタブロック内の各ポインタ用のハッシュアドレスとユニークブロックアドレスとを保存することで、ハッシュアドレスの利点(ブロック再配置、システム回復)とユニークブロックアドレスの利点(より良いランダム読出し性能、ハッシュ検索に関する緩やかな要件)とを組み合わせることができる。ハッシュアドレスは信頼性がありポインタブロックのハッシュ値にしか影響を与えない。ユニークブロックアドレスはヒントであり、ヒントが最新のものである場合にグローバルブロックインデックスの更新を回避するために使用される。ヒントは陳腐化することがあり(指されたブロックの位置が変わったか、または読出し不能になった場合)、その場合にヒントはゆっくり(更新される。このアプローチの不都合な点は、ほとんどの記憶容量がポインタブロック用に必要となることである。
上記で説明した通り、バックアップシステムでは読出しよりも書込みの方が多く行われ、このシステムを実現可能にするためには高い書込みスループットが不可欠である。
大規模なシステムでは、一般的に複数のストリームが同時に書き込まれる。Synchrunは、各ストリームに対してランダムにかつ独立して割り当てられる。そのため、同じスーパーノードが複数のSynchrunのホストとして選択されることがあり、いくつかのストリームが1つのストレージノードのスループットを共有しなければならないことがある。
ハッシュベースの分散を行うシステムにおいて、異なるストリームに属する書込みは同じストレージコンテナ内で多重化される。同じストリームが一緒に読み出されることはないと思われるため、このような多重化されたコンテナを読み出すのは効率が悪い。その理由は、不要なデータストリームを飛ばす必要があるからである。非特許文献1では、ストリームのソートを用いて、ストリームからのデータを合体して大きなチャンクにすることによって、将来の読出しを改善する。しかし、ストリームのソートは、書込み処理中にインラインで実行した場合はレイテンシが増加する。または、バックグラウンド処理で、すべてのデータをストリームがソートされた順序に書き直す必要がある。
本願で提案するアーキテクチャの主な目的は、ストリーム局所性の保存性を高めて大規模なシステムにおける.読出しスループットを改善することである。
正確な重複排除処理を行うストレージシステムでは、当然ストリーム局所性が低下する。本願の焦点は、ストレージシステムの内部データ構成に起因する更なる性能の低下であるため、ユニークなデータブロックのストリームに関して局所性がどのように保存されるかを分析することで、重複排除の影響を取り除く。
ハッシュベースのブロック分散および本願で提案するストリーム毎のブロック分散のいずれにおいても、読出しスループットは、書込み時および読出し時の双方でのアクセスパターンに大きく依存する。この2つのアーキテクチャ間のトレードオフをよりわかりやすくするために、いくつかの典型的なシナリオでこれらのシステムがどのように機能するかを分析する。
大規模なシステムではまずあり得ないと思われる最もシンプルなシナリオは、当初保存されたときに唯一書き込まれたストリームであった1つのストリームを、順次読み出すものである。この場合、ハッシュベースの分散は非常に効率的であり、すべてのストレージノードの混合スループットを提供する。本願で提案するアーキテクチャのパフォーマンスも十分に良好で、SNCDataストレージノードの並列性を有し、単一のクライアントの需要を十分満たすと思われる。
同時に複数のストリームが書き込まれ、後にその内の1つしか読み出されない状況は、実際のシステムでは間違いなく極めて一般的である。このような状況は、共有バックアップ時間に複数のシステムのバックアップを平行して行い、その後、その内の1つだけに障害が発生してバックアップから回復させる場合によく発生する。
複数のバックアップシステムに大規模な障害が発生した後、複数のバックアップが画像を平行して復元させる場合に、複数のストリームを同時に読み出すことがある。しかし高度に断片化された重複排除されたストリームを読み出す際には、1つの外部読出しストリームでもシステムにとっては複数のストリームを読み出すのと同じようなものである。
上記で説明したように、グローバルブロックインデックスはハッシュ値をブロックのユニークブロックアドレス(SynchrunIdとsynchrun内のシーケンス数)にマッピングする。この決定により、データ位置が変わった場合またはガーベジコレクションが実行された場合でも、グローバルブロックインデックスの変換を変更する必要はなく、ブロックアドレスはそのブロックが削除されるまで有効である。
ハッシュベースの分散は、データストリームのブロックをすべてのストレージノードに均等に展開する。そのため、アクセスノードは各ストレージノードへ同じ量のデータを送信する必要がある。データストリームを書き込む帯域幅は、アクセスノードとストレージノードとの間の最も遅いネットワークリンクによって制限される。
本願で提案するアーキテクチャは、ハッシュベースの分散よりもブロックの書込みに対してレイテンシが増大する可能性がある。その理由は、グローバルブロックインデックスの問い合わせを行うのに余分なネットワークのホップが必要だからである。また、複数の比較的速度の遅いクライアントに対して、より高い書込みレイテンシを持つ可能性もある。順次的な書込み用の、より大きなバッファを蓄積するには、より長い時間が必要であるが、これは異なるストリームのブロックを混合しないからである。均等にハッシュベースの分散を行うシステムでは、すべてのストリームのブロックを同じ書込みバッファに蓄積して順次ディスクにフラッシュする。
本願で提示する解決策では、Synchrunは静的にスーパーノードに割り当てられる。この割当てはSynchrunのIDのみに基づき、SynchrunのIDが変更されなければ変わることはない。
本願では、効果的な拡張性を持つ高性能なインライン重複排除処理のための新たなアーキテクチャを提案した。このアーキテクチャでは、正確な重複排除処理に使用するDHTベースのグローバルブロックインデックスを、ストリーム認識型の順次的なデータ配置と区別している。
本発明の第2の実施形態を、図4乃至図10を参照して説明する。図4は、システム全体の構成を示すブロック図である。図5は、ストレージシステムの概略を示すブロック図であり、図6は、構成を示す機能ブロック図である。図7乃至図10は、ストレージシステムの動作を説明するための説明図である。
上記実施形態の一部又は全部は、以下の付記のようにも記載されうる。以下、本発明におけるストレージシステム100(図11参照)、プログラムを記憶した記憶媒体、データ格納方法の構成の概略を説明する。但し、本発明は、以下の構成に限定されない。
記憶対象データを分割した複数のブロックデータを複数の記憶装置110に分散して記憶すると共に、記憶装置110に既に記憶されている記憶対象データと同一のデータ内容の他の記憶対象データを記憶装置110に格納する場合に、当該記憶装置110に既に記憶されている記憶対象データを前記他の記憶対象データとして参照して重複記憶排除を行うデータ格納制御部101を備え、
前記データ格納制御部101は、記憶対象データを分割した当該記憶対象データ内で連続する複数のブロックデータを、前記複数の記憶装置110のうち特定の記憶装置110に記憶すると共に、当該ブロックデータのデータ内容に基づく特徴データと当該ブロックデータの前記特定の記憶装置110内における格納位置を表す格納位置情報とを関連付けて当該特定の記憶装置内に格納位置特定テーブルとして記憶し、前記特定の記憶装置110を識別する記憶装置識別情報と当該特定の記憶装置110に格納された前記ブロックデータの前記特徴データとを関連付けて記憶装置特定テーブルとして記憶する、
ストレージシステム100。
付記1に記載のストレージシステムであって、
前記データ格納制御部は、新たに記憶する記憶対象データを分割したブロックデータの前記特徴データに基づいて前記記憶装置特定テーブルを参照して当該ブロックデータの前記特徴データが含まれる前記格納位置特定テーブルが記憶されている前記特定の記憶装置を特定して、当該特定の記憶装置から前記格納位置特定テーブルを読み出す、
ストレージシステム。
付記2に記載のストレージシステムであって、
前記データ格納制御部は、前記特定の記憶装置から読み出した前記格納位置特定テーブルに基づいて、新たに記憶する記憶対象データを分割したブロックデータが記憶装置に既に記憶されているか否かの判定を行う、
ストレージシステム。
付記3に記載のストレージシステムであって、
前記データ格納制御部は、新たに記憶する記憶対象データを分割したブロックデータの前記特徴データが前記特定の記憶装置から読み出した前記格納位置特定テーブル内に存在しない場合に、新たに記憶する記憶対象データを分割したブロックデータの前記特徴データに基づいて前記記憶装置特定テーブルを参照して当該ブロックデータの前記特徴データが含まれる前記格納位置特定テーブルが記憶されている前記特定の記憶装置を特定して、当該特定の記憶装置から前記格納位置特定テーブルを読み出す、
ストレージシステム。
付記1に記載のストレージシステムであって、
複数の記憶装置に対する記憶対象データの記憶動作を制御する少なくとも1つの第一サーバと、前記複数の記憶装置を構成する複数の第二サーバと、を備え、
前記データ格納制御部は、前記第二サーバから前記第一サーバに前記格納位置特定テーブルを読み出す、
ストレージシステム。
付記5に記載のストレージシステムであって、
前記記憶装置特定テーブルを記憶する複数の第三サーバを備え、
前記データ格納制御部は、前記記憶装置特定テーブルを前記複数の第三サーバに分散して記憶する、
ストレージシステム。
情報処理装置に、
記憶対象データを分割した複数のブロックデータを複数の記憶装置に分散して記憶すると共に、記憶装置に既に記憶されている記憶対象データと同一のデータ内容の他の記憶対象データを記憶装置に格納する場合に、当該記憶装置に既に記憶されている記憶対象データを前記他の記憶対象データとして参照して重複記憶排除を行うデータ格納制御部を実現させると共に、
前記データ格納制御部は、記憶対象データを分割した当該記憶対象データ内で連続する複数のブロックデータを、前記複数の記憶装置のうち特定の記憶装置に記憶すると共に、当該ブロックデータのデータ内容に基づく特徴データと当該ブロックデータの前記特定の記憶装置内における格納位置を表す格納位置情報とを関連付けて当該特定の記憶装置内に格納位置特定テーブルとして記憶し、前記特定の記憶装置を識別する記憶装置識別情報と当該特定の記憶装置に格納された前記ブロックデータの前記特徴データとを関連付けて記憶装置特定テーブルとして記憶する、
ことを実現させるためのプログラムを記憶した記憶媒体。
付記7に記載のプログラムを記憶した記憶媒体であって、
前記データ格納制御部は、新たに記憶する記憶対象データを分割したブロックデータの前記特徴データに基づいて前記記憶装置特定テーブルを参照して当該ブロックデータの前記特徴データが含まれる前記格納位置特定テーブルが記憶されている前記特定の記憶装置を特定して、当該特定の記憶装置から前記格納位置特定テーブルを読み出す、
プログラムを記憶した記憶媒体。
記憶対象データを分割した複数のブロックデータを複数の記憶装置に分散して記憶すると共に、記憶装置に既に記憶されている記憶対象データと同一のデータ内容の他の記憶対象データを記憶装置に格納する場合に、当該記憶装置に既に記憶されている記憶対象データを前記他の記憶対象データとして参照して重複記憶排除を行うデータ格納方法であって、
記憶対象データを分割した当該記憶対象データ内で連続する複数のブロックデータを、前記複数の記憶装置のうち特定の記憶装置に記憶すると共に、当該ブロックデータのデータ内容に基づく特徴データと当該ブロックデータの前記特定の記憶装置内における格納位置を表す格納位置情報とを関連付けて当該特定の記憶装置内に格納位置特定テーブルとして記憶し、前記特定の記憶装置を識別する記憶装置識別情報と当該特定の記憶装置に格納された前記ブロックデータの前記特徴データとを関連付けて記憶装置特定テーブルとして記憶する、
データ格納方法。
付記9に記載のデータ格納方法であって、
新たに記憶する記憶対象データを分割したブロックデータの前記特徴データに基づいて前記記憶装置特定テーブルを参照して当該ブロックデータの前記特徴データが含まれる前記格納位置特定テーブルが記憶されている前記特定の記憶装置を特定して、当該特定の記憶装置から前記格納位置特定テーブルを読み出す、
データ格納方法。
Claims (10)
- 記憶対象データを分割した複数のブロックデータを複数の記憶装置に分散して記憶すると共に、記憶装置に既に記憶されている記憶対象データと同一のデータ内容の他の記憶対象データを記憶装置に格納する場合に、当該記憶装置に既に記憶されている記憶対象データを前記他の記憶対象データとして参照して重複記憶排除を行うデータ格納制御部を備え、
前記データ格納制御部は、記憶対象データを分割した当該記憶対象データ内で連続する複数のブロックデータを、前記複数の記憶装置のうち特定の記憶装置に記憶すると共に、当該ブロックデータのデータ内容に基づく特徴データと当該ブロックデータの前記特定の記憶装置内における格納位置を表す格納位置情報とを関連付けて当該特定の記憶装置内に格納位置特定テーブルとして記憶し、前記特定の記憶装置を識別する記憶装置識別情報と当該特定の記憶装置に格納された前記ブロックデータの前記特徴データとを関連付けて記憶装置特定テーブルとして記憶する、
ストレージシステム。 - 請求項1に記載のストレージシステムであって、
前記データ格納制御部は、新たに記憶する記憶対象データを分割したブロックデータの前記特徴データに基づいて前記記憶装置特定テーブルを参照して当該ブロックデータの前記特徴データが含まれる前記格納位置特定テーブルが記憶されている前記特定の記憶装置を特定して、当該特定の記憶装置から前記格納位置特定テーブルを読み出す、
ストレージシステム。 - 請求項2に記載のストレージシステムであって、
前記データ格納制御部は、前記特定の記憶装置から読み出した前記格納位置特定テーブルに基づいて、新たに記憶する記憶対象データを分割したブロックデータが記憶装置に既に記憶されているか否かの判定を行う、
ストレージシステム。 - 請求項3に記載のストレージシステムであって、
前記データ格納制御部は、新たに記憶する記憶対象データを分割したブロックデータの前記特徴データが前記特定の記憶装置から読み出した前記格納位置特定テーブル内に存在しない場合に、新たに記憶する記憶対象データを分割したブロックデータの前記特徴データに基づいて前記記憶装置特定テーブルを参照して当該ブロックデータの前記特徴データが含まれる前記格納位置特定テーブルが記憶されている前記特定の記憶装置を特定して、当該特定の記憶装置から前記格納位置特定テーブルを読み出す、
ストレージシステム。 - 請求項1に記載のストレージシステムであって、
複数の記憶装置に対する記憶対象データの記憶動作を制御する少なくとも1つの第一サーバと、前記複数の記憶装置を構成する複数の第二サーバと、を備え、
前記データ格納制御部は、前記第二サーバから前記第一サーバに前記格納位置特定テーブルを読み出す、
ストレージシステム。 - 請求項5に記載のストレージシステムであって、
前記記憶装置特定テーブルを記憶する複数の第三サーバを備え、
前記データ格納制御部は、前記記憶装置特定テーブルを前記複数の第三サーバに分散して記憶する、
ストレージシステム。 - 情報処理装置に、
記憶対象データを分割した複数のブロックデータを複数の記憶装置に分散して記憶すると共に、記憶装置に既に記憶されている記憶対象データと同一のデータ内容の他の記憶対象データを記憶装置に格納する場合に、当該記憶装置に既に記憶されている記憶対象データを前記他の記憶対象データとして参照して重複記憶排除を行うデータ格納制御部を実現させると共に、
前記データ格納制御部は、記憶対象データを分割した当該記憶対象データ内で連続する複数のブロックデータを、前記複数の記憶装置のうち特定の記憶装置に記憶すると共に、当該ブロックデータのデータ内容に基づく特徴データと当該ブロックデータの前記特定の記憶装置内における格納位置を表す格納位置情報とを関連付けて当該特定の記憶装置内に格納位置特定テーブルとして記憶し、前記特定の記憶装置を識別する記憶装置識別情報と当該特定の記憶装置に格納された前記ブロックデータの前記特徴データとを関連付けて記憶装置特定テーブルとして記憶する、
ことを実現させるためのプログラムを記憶した記憶媒体。 - 請求項7に記載のプログラムを記憶した記憶媒体であって、
前記データ格納制御部は、新たに記憶する記憶対象データを分割したブロックデータの前記特徴データに基づいて前記記憶装置特定テーブルを参照して当該ブロックデータの前記特徴データが含まれる前記格納位置特定テーブルが記憶されている前記特定の記憶装置を特定して、当該特定の記憶装置から前記格納位置特定テーブルを読み出す、
プログラムを記憶した記憶媒体。 - 記憶対象データを分割した複数のブロックデータを複数の記憶装置に分散して記憶すると共に、記憶装置に既に記憶されている記憶対象データと同一のデータ内容の他の記憶対象データを記憶装置に格納する場合に、当該記憶装置に既に記憶されている記憶対象データを前記他の記憶対象データとして参照して重複記憶排除を行うデータ格納方法であって、
記憶対象データを分割した当該記憶対象データ内で連続する複数のブロックデータを、前記複数の記憶装置のうち特定の記憶装置に記憶すると共に、当該ブロックデータのデータ内容に基づく特徴データと当該ブロックデータの前記特定の記憶装置内における格納位置を表す格納位置情報とを関連付けて当該特定の記憶装置内に格納位置特定テーブルとして記憶し、前記特定の記憶装置を識別する記憶装置識別情報と当該特定の記憶装置に格納された前記ブロックデータの前記特徴データとを関連付けて記憶装置特定テーブルとして記憶する、
データ格納方法。 - 請求項9に記載のデータ格納方法であって、
新たに記憶する記憶対象データを分割したブロックデータの前記特徴データに基づいて前記記憶装置特定テーブルを参照して当該ブロックデータの前記特徴データが含まれる前記格納位置特定テーブルが記憶されている前記特定の記憶装置を特定して、当該特定の記憶装置から前記格納位置特定テーブルを読み出す、
データ格納方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US38826210P | 2010-09-30 | 2010-09-30 | |
US61/388,262 | 2010-09-30 | ||
PCT/JP2011/005301 WO2012042792A1 (en) | 2010-09-30 | 2011-09-21 | Storage system |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013514560A true JP2013514560A (ja) | 2013-04-25 |
JP5500257B2 JP5500257B2 (ja) | 2014-05-21 |
Family
ID=45892285
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012528164A Active JP5500257B2 (ja) | 2010-09-30 | 2011-09-21 | ストレージシステム |
Country Status (6)
Country | Link |
---|---|
US (1) | US9256368B2 (ja) |
EP (1) | EP2622452A4 (ja) |
JP (1) | JP5500257B2 (ja) |
CN (1) | CN103098015B (ja) |
CA (1) | CA2811437C (ja) |
WO (1) | WO2012042792A1 (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017068617A1 (ja) * | 2015-10-19 | 2017-04-27 | 株式会社日立製作所 | ストレージシステム |
JP2018106545A (ja) * | 2016-12-27 | 2018-07-05 | 富士通株式会社 | 情報処理装置、情報処理システム、情報処理方法及びプログラム |
KR20180087821A (ko) * | 2017-01-25 | 2018-08-02 | 삼성전자주식회사 | 오버프로비전된 메모리 시스템의 효율적인 압축을 위한 알고리즘 방법 |
JP2020057305A (ja) * | 2018-10-04 | 2020-04-09 | 富士通株式会社 | データ処理装置およびプログラム |
US11269811B2 (en) | 2016-03-29 | 2022-03-08 | Samsung Electronics Co., Ltd. | Method and apparatus for maximized dedupable memory |
Families Citing this family (79)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9400799B2 (en) * | 2010-10-04 | 2016-07-26 | Dell Products L.P. | Data block migration |
US9933978B2 (en) * | 2010-12-16 | 2018-04-03 | International Business Machines Corporation | Method and system for processing data |
US8589406B2 (en) * | 2011-03-03 | 2013-11-19 | Hewlett-Packard Development Company, L.P. | Deduplication while rebuilding indexes |
EP2698718A2 (en) * | 2011-05-31 | 2014-02-19 | Huawei Technologies Co., Ltd. | Data reading and writing method, device and storage system |
US9639591B2 (en) * | 2011-06-13 | 2017-05-02 | EMC IP Holding Company LLC | Low latency replication techniques with content addressable storage |
US9383928B2 (en) * | 2011-06-13 | 2016-07-05 | Emc Corporation | Replication techniques with content addressable storage |
US9069707B1 (en) | 2011-11-03 | 2015-06-30 | Permabit Technology Corp. | Indexing deduplicated data |
US9208082B1 (en) * | 2012-03-23 | 2015-12-08 | David R. Cheriton | Hardware-supported per-process metadata tags |
CN103019960B (zh) * | 2012-12-03 | 2016-03-30 | 华为技术有限公司 | 分布式缓存方法及系统 |
US9158468B2 (en) | 2013-01-02 | 2015-10-13 | International Business Machines Corporation | High read block clustering at deduplication layer |
US8862847B2 (en) * | 2013-02-08 | 2014-10-14 | Huawei Technologies Co., Ltd. | Distributed storage method, apparatus, and system for reducing a data loss that may result from a single-point failure |
US9953042B1 (en) | 2013-03-01 | 2018-04-24 | Red Hat, Inc. | Managing a deduplicated data index |
US8751763B1 (en) * | 2013-03-13 | 2014-06-10 | Nimbus Data Systems, Inc. | Low-overhead deduplication within a block-based data storage |
US9361028B2 (en) | 2013-05-07 | 2016-06-07 | Veritas Technologies, LLC | Systems and methods for increasing restore speeds of backups stored in deduplicated storage systems |
US9256612B1 (en) | 2013-06-11 | 2016-02-09 | Symantec Corporation | Systems and methods for managing references in deduplicating data systems |
US9298724B1 (en) | 2013-06-14 | 2016-03-29 | Symantec Corporation | Systems and methods for preserving deduplication efforts after backup-job failures |
US20150039645A1 (en) * | 2013-08-02 | 2015-02-05 | Formation Data Systems, Inc. | High-Performance Distributed Data Storage System with Implicit Content Routing and Data Deduplication |
US9348531B1 (en) | 2013-09-06 | 2016-05-24 | Western Digital Technologies, Inc. | Negative pool management for deduplication |
US11076171B2 (en) * | 2013-10-25 | 2021-07-27 | Microsoft Technology Licensing, Llc | Representing blocks with hash values in video and image coding and decoding |
CN105684441B (zh) * | 2013-10-25 | 2018-09-21 | 微软技术许可有限责任公司 | 视频和图像编码中的基于散列的块匹配 |
US9792063B2 (en) | 2014-01-15 | 2017-10-17 | Intel Corporation | Deduplication-based data security |
KR102218732B1 (ko) * | 2014-01-23 | 2021-02-23 | 삼성전자주식회사 | 저장 장치 및 그것의 동작 방법 |
JP6312344B2 (ja) * | 2014-02-18 | 2018-04-18 | 日本電信電話株式会社 | セキュリティ装置、その方法、およびプログラム |
CN105556971B (zh) * | 2014-03-04 | 2019-07-30 | 微软技术许可有限责任公司 | 针对帧内块复制预测中的块翻动和跳跃模式的编码器侧判定 |
EP3114838B1 (en) * | 2014-03-04 | 2018-02-07 | Microsoft Technology Licensing, LLC | Hash table construction and availability checking for hash-based block matching |
KR102287779B1 (ko) * | 2014-06-23 | 2021-08-06 | 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 | 해시 기반의 블록 매칭의 결과에 기초한 인코더 결정 |
CN104268091B (zh) * | 2014-09-19 | 2016-02-24 | 盛杰 | 文件储存方法和文件修改方法 |
US9740632B1 (en) | 2014-09-25 | 2017-08-22 | EMC IP Holding Company LLC | Snapshot efficiency |
AU2014408223B2 (en) | 2014-09-30 | 2019-12-05 | Microsoft Technology Licensing, Llc | Hash-based encoder decisions for video coding |
KR20160083762A (ko) * | 2015-01-02 | 2016-07-12 | 삼성전자주식회사 | 스토리지 시스템에서의 매핑 테이블 관리 방법 및 이를 적용한 스토리지 시스템 |
US9921910B2 (en) * | 2015-02-19 | 2018-03-20 | Netapp, Inc. | Virtual chunk service based data recovery in a distributed data storage system |
US10241689B1 (en) | 2015-06-23 | 2019-03-26 | Amazon Technologies, Inc. | Surface-based logical storage units in multi-platter disks |
US10311023B1 (en) | 2015-07-27 | 2019-06-04 | Sas Institute Inc. | Distributed data storage grouping |
WO2017035495A1 (en) * | 2015-08-26 | 2017-03-02 | Pivotal Software, Inc. | Determining data locality in a distributed system using aggregation of locality summaries |
US10706070B2 (en) * | 2015-09-09 | 2020-07-07 | Rubrik, Inc. | Consistent deduplicated snapshot generation for a distributed database using optimistic deduplication |
US10152527B1 (en) | 2015-12-28 | 2018-12-11 | EMC IP Holding Company LLC | Increment resynchronization in hash-based replication |
US9697224B1 (en) * | 2016-02-09 | 2017-07-04 | International Business Machines Corporation | Data deduplication for an eventually consistent system |
US9898200B2 (en) | 2016-02-18 | 2018-02-20 | Samsung Electronics Co., Ltd | Memory device having a translation layer with multiple associative sectors |
US10574751B2 (en) | 2016-03-22 | 2020-02-25 | International Business Machines Corporation | Identifying data for deduplication in a network storage environment |
US10324782B1 (en) | 2016-03-24 | 2019-06-18 | Emc Corporation | Hiccup management in a storage array |
US10101934B1 (en) | 2016-03-24 | 2018-10-16 | Emc Corporation | Memory allocation balancing for storage systems |
US10705907B1 (en) | 2016-03-24 | 2020-07-07 | EMC IP Holding Company LLC | Data protection in a heterogeneous random access storage array |
US9857990B1 (en) | 2016-03-24 | 2018-01-02 | EMC IP Holding Company LLC | Fast startup for modular storage systems |
EP3726732B1 (en) | 2016-04-19 | 2024-07-31 | Huawei Technologies Co., Ltd. | Vector processing for segmentation hash values calculation |
SG11201704733VA (en) | 2016-04-19 | 2017-11-29 | Huawei Tech Co Ltd | Concurrent segmentation using vector processing |
CN106055274A (zh) * | 2016-05-23 | 2016-10-26 | 联想(北京)有限公司 | 一种数据存储方法、数据读取方法及电子设备 |
CN106201338B (zh) | 2016-06-28 | 2019-10-22 | 华为技术有限公司 | 数据存储方法及装置 |
US10515064B2 (en) * | 2016-07-11 | 2019-12-24 | Microsoft Technology Licensing, Llc | Key-value storage system including a resource-efficient index |
US10390039B2 (en) | 2016-08-31 | 2019-08-20 | Microsoft Technology Licensing, Llc | Motion estimation for screen remoting scenarios |
US10417064B2 (en) * | 2016-09-07 | 2019-09-17 | Military Industry—Telecommunication Group (Viettel) | Method of randomly distributing data in distributed multi-core processor systems |
US10223008B1 (en) | 2016-09-30 | 2019-03-05 | EMC IP Holding Company LLC | Storage array sizing for compressed applications |
US10255172B1 (en) | 2016-09-30 | 2019-04-09 | EMC IP Holding Company LLC | Controlled testing using code error injection |
US10152371B1 (en) | 2016-09-30 | 2018-12-11 | EMC IP Holding Company LLC | End-to-end data protection for distributed storage |
CN106527981B (zh) * | 2016-10-31 | 2020-04-28 | 华中科技大学 | 一种基于配置的自适应分布式存储系统的数据分片方法 |
KR102610996B1 (ko) | 2016-11-04 | 2023-12-06 | 에스케이하이닉스 주식회사 | 데이터 분산 처리를 수행하는 데이터 관리 시스템 및 데이터 관리 방법 |
US11095877B2 (en) | 2016-11-30 | 2021-08-17 | Microsoft Technology Licensing, Llc | Local hash-based motion estimation for screen remoting scenarios |
US10282127B2 (en) | 2017-04-20 | 2019-05-07 | Western Digital Technologies, Inc. | Managing data in a storage system |
US10809928B2 (en) | 2017-06-02 | 2020-10-20 | Western Digital Technologies, Inc. | Efficient data deduplication leveraging sequential chunks or auxiliary databases |
CN107329903B (zh) * | 2017-06-28 | 2021-03-02 | 苏州浪潮智能科技有限公司 | 一种内存垃圾回收方法及系统 |
US10706082B1 (en) | 2017-06-29 | 2020-07-07 | Seagate Technology Llc | Deduplication database management |
US11429587B1 (en) | 2017-06-29 | 2022-08-30 | Seagate Technology Llc | Multiple duration deduplication entries |
US10503608B2 (en) | 2017-07-24 | 2019-12-10 | Western Digital Technologies, Inc. | Efficient management of reference blocks used in data deduplication |
US10289566B1 (en) | 2017-07-28 | 2019-05-14 | EMC IP Holding Company LLC | Handling data that has become inactive within stream aware data storage equipment |
US10372681B2 (en) * | 2017-09-12 | 2019-08-06 | International Business Machines Corporation | Tape drive memory deduplication |
CN107589917B (zh) * | 2017-09-29 | 2020-08-21 | 苏州浪潮智能科技有限公司 | 一种分布式存储系统及方法 |
CN109726037B (zh) * | 2017-10-27 | 2023-07-21 | 伊姆西Ip控股有限责任公司 | 用于备份数据的方法、设备和计算机程序产品 |
KR20190074897A (ko) * | 2017-12-20 | 2019-06-28 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 이의 동작 방법 |
US11153094B2 (en) * | 2018-04-27 | 2021-10-19 | EMC IP Holding Company LLC | Secure data deduplication with smaller hash values |
US10592136B2 (en) * | 2018-06-29 | 2020-03-17 | EMC IP Holding Company LLC | Block based striped backups |
CN111833189A (zh) | 2018-10-26 | 2020-10-27 | 创新先进技术有限公司 | 数据处理方法及装置 |
US11392551B2 (en) * | 2019-02-04 | 2022-07-19 | EMC IP Holding Company LLC | Storage system utilizing content-based and address-based mappings for deduplicatable and non-deduplicatable types of data |
US11658882B1 (en) * | 2020-01-21 | 2023-05-23 | Vmware, Inc. | Algorithm-based automatic presentation of a hierarchical graphical representation of a computer network structure |
US11202085B1 (en) | 2020-06-12 | 2021-12-14 | Microsoft Technology Licensing, Llc | Low-cost hash table construction and hash-based block matching for variable-size blocks |
CN114490517A (zh) * | 2020-10-23 | 2022-05-13 | 华为技术有限公司 | 数据处理方法、装置、计算节点以及计算机可读存储介质 |
CN112199326B (zh) * | 2020-12-04 | 2021-02-19 | 中国人民解放军国防科技大学 | 阵列异构型计算系统上动态构建软件超结点的方法和装置 |
CN114442927B (zh) * | 2021-12-22 | 2023-11-03 | 天翼云科技有限公司 | 一种数据存储空间的管理方法及装置 |
US11829341B2 (en) | 2022-03-31 | 2023-11-28 | Dell Products L.P. | Space-efficient persistent hash table data structure |
US12061581B2 (en) | 2022-07-26 | 2024-08-13 | Hewlett Packard Enterprise Development Lp | Matching operation for a deduplication storage system |
CN115599316B (zh) * | 2022-12-15 | 2023-03-21 | 南京鹏云网络科技有限公司 | 分布式数据处理方法、装置、设备、介质和计算机程序产品 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005502096A (ja) * | 2001-01-11 | 2005-01-20 | ゼット−フォース コミュニケイションズ インコーポレイテッド | ファイルスイッチ及び交換ファイルシステム |
JP2005353039A (ja) * | 2004-04-16 | 2005-12-22 | Microsoft Corp | データオーバーレイ、自己編成メタデータオーバーレイおよびアプリケーションレベルマルチキャスティング |
JP2008059398A (ja) * | 2006-08-31 | 2008-03-13 | Brother Ind Ltd | 識別情報割当装置及びその情報処理方法並びにそのプログラム |
JP2010079886A (ja) * | 2008-09-11 | 2010-04-08 | Nec Lab America Inc | 拡張可能な2次ストレージシステムと方法 |
WO2010086921A1 (ja) * | 2009-01-27 | 2010-08-05 | 日本電気株式会社 | ストレージシステム |
JP2010170475A (ja) * | 2009-01-26 | 2010-08-05 | Nec Corp | ストレージシステム、ストレージシステムにおけるデータ書込方法及びデータ書込プログラム |
JP2010176181A (ja) * | 2009-01-27 | 2010-08-12 | Nec Corp | ストレージシステム |
JP2010198276A (ja) * | 2009-02-25 | 2010-09-09 | Nec Corp | ストレージシステム |
WO2010100813A1 (ja) * | 2009-03-04 | 2010-09-10 | 日本電気株式会社 | ストレージシステム |
JP2011221733A (ja) * | 2010-04-08 | 2011-11-04 | Nec Corp | オンラインストレージシステム、及びオンラインストレージサービスの提供方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8315984B2 (en) * | 2007-05-22 | 2012-11-20 | Netapp, Inc. | System and method for on-the-fly elimination of redundant data |
US8209506B2 (en) * | 2007-09-05 | 2012-06-26 | Emc Corporation | De-duplication in a virtualized storage environment |
US8176269B2 (en) * | 2008-06-30 | 2012-05-08 | International Business Machines Corporation | Managing metadata for data blocks used in a deduplication system |
US8392791B2 (en) * | 2008-08-08 | 2013-03-05 | George Saliba | Unified data protection and data de-duplication in a storage system |
US8397080B2 (en) * | 2010-07-29 | 2013-03-12 | Industrial Technology Research Institute | Scalable segment-based data de-duplication system and method for incremental backups |
-
2011
- 2011-09-21 US US13/640,130 patent/US9256368B2/en active Active
- 2011-09-21 CN CN201180043251.2A patent/CN103098015B/zh active Active
- 2011-09-21 WO PCT/JP2011/005301 patent/WO2012042792A1/en active Application Filing
- 2011-09-21 CA CA2811437A patent/CA2811437C/en active Active
- 2011-09-21 EP EP11828358.9A patent/EP2622452A4/en not_active Withdrawn
- 2011-09-21 JP JP2012528164A patent/JP5500257B2/ja active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005502096A (ja) * | 2001-01-11 | 2005-01-20 | ゼット−フォース コミュニケイションズ インコーポレイテッド | ファイルスイッチ及び交換ファイルシステム |
JP2005353039A (ja) * | 2004-04-16 | 2005-12-22 | Microsoft Corp | データオーバーレイ、自己編成メタデータオーバーレイおよびアプリケーションレベルマルチキャスティング |
JP2008059398A (ja) * | 2006-08-31 | 2008-03-13 | Brother Ind Ltd | 識別情報割当装置及びその情報処理方法並びにそのプログラム |
JP2010079886A (ja) * | 2008-09-11 | 2010-04-08 | Nec Lab America Inc | 拡張可能な2次ストレージシステムと方法 |
JP2010170475A (ja) * | 2009-01-26 | 2010-08-05 | Nec Corp | ストレージシステム、ストレージシステムにおけるデータ書込方法及びデータ書込プログラム |
WO2010086921A1 (ja) * | 2009-01-27 | 2010-08-05 | 日本電気株式会社 | ストレージシステム |
JP2010176181A (ja) * | 2009-01-27 | 2010-08-12 | Nec Corp | ストレージシステム |
JP2010198276A (ja) * | 2009-02-25 | 2010-09-09 | Nec Corp | ストレージシステム |
WO2010100813A1 (ja) * | 2009-03-04 | 2010-09-10 | 日本電気株式会社 | ストレージシステム |
JP2010204970A (ja) * | 2009-03-04 | 2010-09-16 | Nec Corp | ストレージシステム |
JP2011221733A (ja) * | 2010-04-08 | 2011-11-04 | Nec Corp | オンラインストレージシステム、及びオンラインストレージサービスの提供方法 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017068617A1 (ja) * | 2015-10-19 | 2017-04-27 | 株式会社日立製作所 | ストレージシステム |
US11269811B2 (en) | 2016-03-29 | 2022-03-08 | Samsung Electronics Co., Ltd. | Method and apparatus for maximized dedupable memory |
JP2018106545A (ja) * | 2016-12-27 | 2018-07-05 | 富士通株式会社 | 情報処理装置、情報処理システム、情報処理方法及びプログラム |
US10725907B2 (en) | 2016-12-27 | 2020-07-28 | Fujitsu Limited | Information processing apparatus for specifying data region of garbage collection, information processing system and information processing method |
KR20180087821A (ko) * | 2017-01-25 | 2018-08-02 | 삼성전자주식회사 | 오버프로비전된 메모리 시스템의 효율적인 압축을 위한 알고리즘 방법 |
KR102259088B1 (ko) | 2017-01-25 | 2021-06-02 | 삼성전자주식회사 | 오버프로비전된 메모리 시스템의 효율적인 압축을 위한 알고리즘 방법 |
JP2020057305A (ja) * | 2018-10-04 | 2020-04-09 | 富士通株式会社 | データ処理装置およびプログラム |
Also Published As
Publication number | Publication date |
---|---|
CN103098015A (zh) | 2013-05-08 |
JP5500257B2 (ja) | 2014-05-21 |
EP2622452A4 (en) | 2017-10-04 |
EP2622452A1 (en) | 2013-08-07 |
US9256368B2 (en) | 2016-02-09 |
WO2012042792A1 (en) | 2012-04-05 |
CA2811437C (en) | 2016-01-19 |
CA2811437A1 (en) | 2012-04-05 |
US20130036289A1 (en) | 2013-02-07 |
CN103098015B (zh) | 2015-11-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5500257B2 (ja) | ストレージシステム | |
JP5539683B2 (ja) | 拡張可能な2次ストレージシステムと方法 | |
US10761758B2 (en) | Data aware deduplication object storage (DADOS) | |
US11016955B2 (en) | Deduplication index enabling scalability | |
Dong et al. | Tradeoffs in scalable data routing for deduplication clusters | |
US8832363B1 (en) | Clustered RAID data organization | |
US9454476B2 (en) | Logical sector mapping in a flash storage array | |
KR101544717B1 (ko) | 소프트웨어 정의 네트워크 연결 저장 시스템 및 방법 | |
US8639669B1 (en) | Method and apparatus for determining optimal chunk sizes of a deduplicated storage system | |
US9367557B1 (en) | System and method for improving data compression | |
CN106066896B (zh) | 一种应用感知的大数据重复删除存储系统及方法 | |
CA2809224C (en) | Storage system | |
JP2013541057A (ja) | マップリデュース即時分散ファイルシステム | |
Carstoiu et al. | Hadoop hbase-0.20. 2 performance evaluation | |
Zhang et al. | Droplet: A distributed solution of data deduplication | |
US11614879B2 (en) | Technique for replicating oplog index among nodes of a cluster | |
Khan et al. | A robust fault-tolerant and scalable cluster-wide deduplication for shared-nothing storage systems | |
Xu et al. | YuruBackup: a space-efficient and highly scalable incremental backup system in the cloud | |
Wei et al. | DSC: Dynamic stripe construction for asynchronous encoding in clustered file system | |
Beineke et al. | High throughput log-based replication for many small in-memory objects | |
Moon et al. | Data deduplication using dynamic chunking algorithm | |
Klein et al. | Dxram: A persistent in-memory storage for billions of small objects | |
US11223681B2 (en) | Updating no sync technique for ensuring continuous storage service in event of degraded cluster state | |
Meister | Advanced data deduplication techniques and their application | |
Beineke et al. | Asynchronous logging and fast recovery for a large-scale distributed in-memory storage |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130827 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20131004 |
|
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: 20140212 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140225 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5500257 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |