JP2015511037A - ハイブリッドストレージ集合体の複製 - Google Patents

ハイブリッドストレージ集合体の複製 Download PDF

Info

Publication number
JP2015511037A
JP2015511037A JP2014561066A JP2014561066A JP2015511037A JP 2015511037 A JP2015511037 A JP 2015511037A JP 2014561066 A JP2014561066 A JP 2014561066A JP 2014561066 A JP2014561066 A JP 2014561066A JP 2015511037 A JP2015511037 A JP 2015511037A
Authority
JP
Japan
Prior art keywords
storage
block
storage block
tier
data
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
Application number
JP2014561066A
Other languages
English (en)
Other versions
JP6208156B2 (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 JP2015511037A publication Critical patent/JP2015511037A/ja
Application granted granted Critical
Publication of JP6208156B2 publication Critical patent/JP6208156B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/21Employing a record carrier using a specific recording technology
    • G06F2212/217Hybrid disk, e.g. using both magnetic and solid state storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/46Caching storage objects of specific type in disk cache
    • G06F2212/461Sector or disk block

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

ハイブリッドストレージ集合体内で重複排除を実行する方法及び装置が紹介される。一つの例では、その方法は、異なるタイプの物理的ストレージ媒体の、複数の層を含むハイブリッドストレージ集合体を操作するステップを含む。方法は、同一のデータを含む、ハイブリッドストレージ集合体の第1のストレージブロックと第2のストレージブロックを特定するステップと、第1のストレージブロックと第2のストレージブロックのキャッシュのステータスを特定するステップとを含む。方法は更に、第1のストレージブロックと第2のストレージブロックのキャッシュのステータスに基づいて、第1のストレージブロックと第2のストレージブロックについての重複排除を行うステップを含む。

Description

関連出願への相互参照
本願は、2012年3月7日出願の米国特許出願第13/413898号(特許文献1)の優先権を主張するものであり、該出願は参照の上全体としてこの明細書に組み込まれる。
本願の種々の実施形態は、データストレージシステムを操作する分野に、概略関する。特に、本願の種々の実施形態は、ハイブリッドストレージ集合体にストレージスペースを配置する方法及びシステムに関する。
背景
コンピュータ及びコンピュータシステムの増殖により、電子データの信頼可能な且つ効率的な格納に対する要求が絶え間無く増大している。ストレージサーバは、データの編成及び格納に関するストレージサービスを提供する特殊化されたコンピュータである。ストレージサーバにより管理されるデータは、通常、不揮発メモリ若しくはディスクなどの、書き込み可能の持続性ストレージ媒体に格納される。ストレージサーバは、多数のクライアント若しくはアプリケーションがシステムにより提供されるデータにアクセスできる情報デリバリのクライアント/サーバモデルに従って動作するように、構成され得る。ストレージサーバは、ネットワーク接続ストレージ(NAS)環境におけるファイルレベルか、ストレージエリアネットワーク(SAN)におけるブッロクレベルかのいずれかで、ランダム及びストリーミングアクセスパターンの両方で、データを提供する。
ストレージサーバにより用いられる種々のタイプの不揮発ストレージ媒体は、様々な待ち時間を有し得る。アクセス時間(即ち、待ち時間)は、ストレージ媒体からデータを検索するのに要求される時間である。多くの場合、データは、相対的に高い待ち時間を有するハードディスクドライブ(HDD)に格納される。HDDでは、ディスクアクセス時間は、ディスクスピンアップ時間、シーク時間、回転遅延、及びデータ転送時間を含む。別の場合、データは、半導体ドライブ(SSD)に格納される。SSDは、概略、HDDより低い待ち時間を有する。SDDは、HDDの動作に固有の機械的遅延を有さないからである。HDDは、概略、物理媒体に順次に格納されるデータの大ブロックを読み取るときに、良好なパフォーマンスを示す。しかしながら、HDDは、ランダムアクセスに対しては同様なパフォーマンスを示さない。装置の機械的部品が媒体上の異なる物理位置に移動しなければならないことがよく有るからである。
SDDは、不揮発フラッシュメモリなどの、半導体メモリを用いてデータを格納する。移動する部品が無く、SSDは、通常、比較的低い待ち時間により、ランダムの、頻度の高いメモリアクセスに対して、良好なパフォーマンスを示す。しかしながら、SSDはHHDより一般に高価であり、摩耗や他の劣化により操作上の寿命が短い。これらの更なる直接的な交換のコストは、膨大な数のストレージ装置を用いる多数のストレージサーバを有するデータセンタのとっては、重大な意義を有する。
ハイブリッドストレージ集合体は、HDDとSDDの利点を組み合わせる。ストレージ「集合体」は、物理ストレージの論理集合体、即ち、ストレージのプールのための論理コンテナであり、一つ以上の物理大容量ストレージデバイス若しくはそれらの一部を単体の論理ストレージオブジェクト内に組み合わせるものであり、該ストレージ集合体は、より高い抽象度の一つ以上の他の論理データセットのためのストレージ(例えば、ボリューム)を提供する。あるハイブリッドストレージ集合体では、SSDがハイブリッドストレージ集合体を組成して高いパフォーマンスを提供し、相対的に廉価なHDDは残余のストレージアレイを組成する。場合によっては、様々な待ち時間を備えるストレージデバイスの別の組み合わせも、HDDとSDDに代わって、又は、HDD及びSDDと組み合わせて用いられ得る。これらの他のストレージデバイスは、不揮発性ランダムアクセスメモリ(NVRAM)、テープドライブ、光学ディスク、及びマイクロ電子機械(MEM)ストレージデバイスを含む。ハイブリッドストレージ集合体内の低待ち時間(即ち、SDD)のストレージスペースは制限されているので、最も頻度高くアクセスされる(即ち、ホットな)データの格納のために低待ち時間のストレージスペースを用いることにより、低待ち時間のストレージに係る利点は最大限となる。残りのデータは、より高い待ち時間のデバイス内に格納される。データ及びデータ利用は経時的に変化するので、どのデータがホットであり、より低い待ち時間のデバイスに格納されるべきかを判定することは、継続するプロセスとなる。高待ち時間のデバイスと低待ち時間のデバイスの間のデータの移動は、ポインタ更新や、データの位置を識別する他の情報を必要とする、マルチステッププロセスである。
場合によっては、より低い待ち時間のストレージは、より高い待ち時間のストレージのためのキャッシュとして用いられる。これらの構成では、最も頻度高くアクセスされるデータのコピーがキャッシュに格納される。データアクセスが為されると、要求されるデータがその中に位置するか判定すべくより速いキャッシュがチェックされ、もしあれば、データはキャッシュからアクセスされ得る。このように、より高い待ち時間のデバイスがアクセスされなければならない回数を減少させることによって、キャッシュは、全体のデータアクセス時間を減少させる。場合によっては、キャッシュスペースは、頻度高く書かれるデータのために用いられる(即ち、ライトキャッシュ)。一方で、若しくは更に、キャッシュスペースは、頻度高く読まれるデータのために用いられる(即ち、リードキャッシュ)。リードキャッシュとライトキャッシュの管理と動作のためのポリシは、異なることが多い。
米国特許出願第13/413898号
ストレージシステム内でストレージスペースをより効率よく使用してコストを最小限にするために、種々の技術が用いられてデータを圧縮し及び/又は重複データのインスタンスの数を最小化する。データの重複排除は、ストレージシステムからデータの重複インスタンスを除去する一つの方法である。データの重複排除は、粗粒の冗長データを除去するための技術である。重複排除の処理では、データのブロックは、システム内に格納される他のデータのブロックと対比される。二つ以上の同一のデータのブロックが特定されれば、冗長ブロックは削除され、又は、システムから解除される。削除されるブロックに関するメタデータは、削除されていないデータブロックのインスタンスを指し示すように修正される。このように、二つ以上のアプリケーション若しくはファイルは、異なる目的で同じデータのブロックを利用できる。重複のデータブロックを合体させ、データブロックの単体のインスタンスのシェアリングを統合することにより、重複排除の処理はストレージスペースを確保する。しかしながら、データブロックのキャッシュの状態を考慮すること無しに、ハイブリッドストレージ集合体内で重複排除を実行すると、キャッシュを用いるパフォーマンス上の利点を阻害し若しくは弱めることがある。
ハイブリッドストレージ集合体内で重複排除を実行する方法及び装置が本明細書で紹介されている。これらの技術は、重複排除されるべきブロックのキャッシュのステータスを考慮に入れてハイブリッドストレージ集合体について重複排除を行うことを含む。データブロックは、リードキャッシュブロックであるか、リードキャッシュされたブロックであるか、ライトキャッシュブロックであるか、又は、何らキャッシュのステータスを有さないブロックであるか、に拠って、様々に重複排除され得る。これらのステータスを考慮に入れることにより、システムは重複排除の利点を最適化するスペースを得ることができる。これらのステータスを考慮に入れること無く重複排除が実装されると、キャッシュに関するパフォーマンス上の利点が妨げられることがある。
一つの例では、その方法は、異なるタイプの物理的ストレージ媒体の、複数の層を含むハイブリッドストレージ集合体を操作するステップを含む。方法は、同一のデータを含む、ハイブリッドストレージ集合体の第1のストレージブロックと第2のストレージブロックを特定するステップと、第1のストレージブロックと第2のストレージブロックのキャッシュのステータスを特定するステップとを含む。方法は更に、第1のストレージブロックと第2のストレージブロックのキャッシュのステータスに基づいて、第1のストレージブロックと第2のストレージブロックについての重複排除を行うステップを含む。ブロックが、リードキャッシュブロックであるか、リードキャッシュされたブロックであるか、又は、ライトキャッシュブロックであるか、に拠って、ブロックの個々の対に対して、重複排除の処理の実行が変動し得る。本明細書で用いるように、「リードキャッシュブロック」は一般に、ストレージシステムのより高い待ち時間の層に在る「リードキャッシュされたブロック」の、より高いパフォーマンスコピーとしての機能を果たしている、ストレージシステムのより低い待ち時間の層内のデータブロックのことである。「ライトキャッシュ」ブロックは一般に、ライトパフォーマンスのために、より低い待ち時間の層内に配置されたデータブロックのことである。
別の例では、ストレージサーバシステムは、プロセッサと、ハイブリッドストレージ集合体と、メモリを含む。ハイブリッドストレージ集合体は、第1の層のストレージと第2の層のストレージを含む。第1の層のストレージは第2の層のストレージよりもより低い待ち時間を有するものである。メモリは、プロセッサと連結しストレージマネジャを含む。ストレージマネジャはプロセッサに対して、重複データを含む、ハイブリッドストレージ集合体内の第1のストレージブロックと第2のストレージブロックを特定するステップを行わせる。ストレージマネジャは続いて、第1のストレージブロックと第2のストレージブロックに関するキャッシュの関係を特定し、キャッシュの関係に基づいて、第1と第2のストレージブロックについての重複排除を行う。
重複排除がキャッシュの関係を考慮せずに実行されると、キャッシュに関するパフォーマンス上の利点は、減殺若しくは除外されてしまう可能性がある。例えば、一つのブロックのホットデータはパフォーマンス上の理由のために低待ち時間の層内でキャッシュされ得る。ホットデータブロックの重複である別のデータブロックは、高待ち時間の層内に格納されてもよい。キャッシュのステータスが考慮されないと、重複排除の処理により、ホットデータブロックが低待ち時間の層から除去され、更にはホットデータブロックに関するメタデータが変更されることになり、終にはそのデータブロックへのアクセスが高待ち時間の層内の重複コピーに向けられてしまう。この結果によって、ハイブリッドストレージ集合体のパフォーマンス上の利点が縮小若しくは除去されてしまう。従って、ハイブリッドストレージ集合体のパフォーマンス上の利点を保持するように重複排除を実行することが望ましい。ブロックがリードキャッシュとして用いられているかライトキャッシュとして用いられているかに拠って、重複排除の処理が更に変動することがあり得る。
本明細書に記載の実施形態は、他の方法、種々のコンポーネントを伴うシステム、並びに、一つ以上のプロセッサにより実行される際には、一つ以上のプロセッサに対して、方法、方法のバリエーション、若しくは、本明細書に記載の他のオペレーションを実行させる命令を格納する持続性機械読み取り可能格納媒体も、含む。多数の実施形態を開示しているが、以下の詳細な説明から当業者には更に他の実施形態が明白であろう。なお以下の詳細な説明は、本発明の例示の実施形態を示して記載するものである。明白なように、本発明は、発明の範囲から乖離すること無く、種々の形態での修正が可能である。従って、図面、及び、発明の詳細な説明は本質的に例示として考慮されるべきであり、限定的に考えられるべきものでは無い。
添付の図面の利用により、本発明の実施形態を記載して説明する。
図1は、本発明のある実施形態が利用され得る動作環境を示す。 図2は、本発明のある実施形態が利用され得るストレージシステムを示す。 図3は、例示の実施形態に係るファイルの例示のバッファツリーを示す。 図4は、ハイブリッドストレージ集合体について重複排除する方法の例を示す。 図5Aは、重複排除の処理を実行する前のファイルシステムのブロック図を示す。 図5Bは、重複排除の処理を実行した後のファイルシステムのブロック図を示す。 図6Aは、本発明の一つの実施形態に係る、ハイブリッドストレージ集合体内で重複排除の処理を実行する前のファイルシステムのブロック図を示す。 図6Bは、本発明の一つの実施形態に係る、重複排除の処理を実行した後の図6Aのファイルシステムのブロック図を示す。 図6Cは、本発明の別の実施形態に係る、重複排除の処理を実行した後の図6Aのファイルシステムのブロック図を示す。 図7Aは、本発明の一つの実施形態に係る、ハイブリッドストレージ集合体内で重複排除の処理を実行する前のファイルシステムのブロック図を示す。 図7Bは、本発明の一つの実施形態に係る、ハイブリッドストレージ集合体内で重複排除の処理を実行した後のファイルシステムのブロック図を示す。 図8は、ハイブリッドストレージ集合体について重複排除の処理を実行する方法の別の例を示す。
図面は、必ずしも原寸に比例して描かれていない。例えば、図面の要素のうちあるものの寸法は、本発明の実施形態の理解を向上させる助けとなるべく、拡大して若しくは縮小していることがある。同様に、部品及び/又は動作のうちには、本発明の実施形態のうちあるものの議論のために、別のブロックに分離されていたり、単体のブロックに融合されていたりする。更に、本発明は種々の修正や代替の形式を受け入れるものであり、特定の実施形態が例示として図面に示され以下に詳細に記載されている。しかしながら、本発明は、以下に記載の特定の実施形態に限定されるものでは無い。むしろ、本発明は、添付の特許請求の範囲に規定する発明の範囲にある、全ての修正、等価物、及び代替物をカバーすることを意図するものである。
データストレージシステムには、様々な待ち時間を伴う様々なタイプのストレージデバイスで組成される持続性のストレージスペースを含むものがある。低待ち時間デバイスは、より良いパフォーマンスを示すが、通常、コストの及び/又は他の欠点を有する。ストレージシステムの一部を低待ち時間デバイスで実装すれば、これらのタイプのデバイスで全体のストレージシステムを実装することに関連する、コスト若しくは他の制約を被ることなく、かなりのシステムパフォーマンスの改良が見られる。システムパフォーマンスの改良は、より低い待ち時間のデバイス内で、最も頻度高くアクセスされるデータ(即ち、ホットデータ)を選択してキャッシュすることにより、最適化され得る。この構成は、より速くより低い待ち時間のデバイス内で生じる、システムへのリード及びライトの数を最大化する。より低い待ち時間のデバイスで利用可能なストレージスペースは、リードキャッシュ、ライトキャッシュ、又は両方を実装するのに用いられ得る。
利用可能なストレージスペースを最も効率的に利用するために、種々のタイプのデータ圧縮及び統合が実装されることが多い。データの重複排除は、付加された非重複データのために格納スペースを解放するために、ストレージシステムからデータの重複インスタンスを除去する一つの方法である。重複排除の処理では、データのブロックが、システム内に格納される他のデータのブロックと対比される。同一のデータのブロックが識別されると、冗長ブロックが、残余の格納された塊を指し示すポインタ若しくはリファレンスで置換される。二つ以上のアプリケーション若しくはファイルは、同じ格納されたデータのブロックを共有する。これら重複のデータのブロックを合体し、ブロックに関する単一の残余インスタンスの共有を統合することにより、重複のデータは格納スペースを確保する。しかしながら、これらのブロックがキャッシュ若しくはキャッシュされたブロックであるかどうかを考慮に入れることなくデータブロックに関して重複排除を実行することには、ハイブリッドストレージ集合体に関するパフォーマンスゲインに有害な影響があり得る。本明細書でもちいるように、データの「ブロック」は、特定のアドレスにて開始する周知の長さのデータの連続セットである。ある実施形態では、個々のレベル0のブロックは、長さ4kバイトである。しかしながら、ブロックは他のサイズともなり得る。
本明細書で紹介する技術は、ブロックに関するキャッシュのステータスが重複排除されることに基づいて、ハイブリッドストレージ集合体の重複排除をすることにより、これらの及び他の問題を解決する。重複排除は、重複ブロックの一つを、削除すること、除去すること、若しくは、別途解放することを、しばしば含む。場合によっては、重複ブロックの一つがより低い待ち時間のストレージ内でリードキャッシュ化され、パフォーマンス上の利点がリードキャッシュ化されない重複ブロックを削除することにより維持される。別の場合には、重複ブロックの一つがライトキャッシュ化され、重複ブロックの一つを削除すること無く、ライトキャッシュのブロックのパフォーマンス上の利点を、識別されたブロックの重複インスタンスにまで拡張することにより、重複排除の処理がシステムのパフォーマンスを向上させる。
図1は、本明細書に示される技術に関するある実施形態が用いられ得る動作環境100を示す。動作環境100は、ストレージサーバシステム130、クライアント180A、180B、及びネットワーク190を示す。
ストレージサーバシステム130は、ストレージサーバ140、HDD150A、HDD150B、SSD160A、SSD160Bを含む。ストレージサーバシステム130は、データやデータストレージリソースを管理し、含み、アクセスを提供するのに用いられる、様々なタイプの他のデバイスやストレージコンポーネントも含み得る。ストレージサーバ140は、一つ以上のファイルシステムを実装するストレージオペレーティングシステムを含むコンピュータデバイスである。ストレージサーバ140は、HDD150A、HDD150B、SSD160A及びSSD160Bなどの、書き込み可能な持続性ストレージ媒体上の、情報の構成に関するストレージサービスを提供するサーバクラスコンピュータで有ればよい。HHD150A及びHDD150Bは、ハードディスクドライブであり、SSD160A及びSSD160Bは、半導体ドライブ(SSD)である。
通常のストレージサーバシステムは、図1に示すHHD又はSSDよりも多くのものを含んでもよい。当然ながら、ストレージサーバシステム130は、HHDやSSDに代えて、又は、それらと組み合わせて、他のタイプの持続性のストレージデバイスを用いて実装されてもよい。これらの他のタイプの持続性ストレージデバイスは、例えば、フラッシュメモリ、NVRAM、MEMストレージサーバ、若しくはそれらの組み合わせを、含み得る。ストレージサーバ140は他のデバイスを含んでもよく、他のデバイスは、持続性ストレージデバイスにアクセスし管理するための、ストレージコントローラを含む。ストレージサーバシステム130は、モノリシックシステムとして示されるが、様々な地理的位置に分散されるシステムやデバイスを含んでもよい。ストレージサーバシステム130は、ストレージサーバ140と同じ若しくは異なるストレージオペレーティングシステムを用いて動作する、更なるストレージサーバを含んでもよい。
ストレージサーバ140は、本明細書に記載する本発明の実施形態に係る、HDD150A、HDD150B、SSD160A、及びSSD160Bに格納されるデータに関する重複排除を実行する。この記載の教示は、ネットワーク接続ストレージ(NAS)、ストレージエリアネットワーク(SAN)、若しくはクライアントやホストコンピュータに直接付属するディスクアセンブリを含むがこれらに限定されない様々なストレージサーバアーキテクチャに、適用され得る。「ストレージサーバ」の用語は、従って、それら構成を含む広義に解釈されるべきである。
図2は、本明細書に示される技術に関するある実施形態が再び用いられ得るストレージサーバシステム200を示す。ストレージサーバシステム200は、メモリ220、プロセッサ240、ネットワークインタフェース292、及びハイブリッドストレージ集合体280を含む。ハイブリッドストレージ集合体280は、HDDアレイ250、HDDコントローラ254、SSDアレイ260、SSDコントローラ264、及びRAIDモジュール270を含む。HDDアレイ250及びSSDアレイ260は、持続性ストレージ媒体の異機種の層である。それらは異なるタイプのストレージ媒体を有し従って異なるパフォーマンス特性を有するので、HDDアレイ250及びSSDアレイ260はストレージの異なる「層」として言及される。HDDアレイ250は、ディスクと、ディスク上の様々な位置に機械的に移動するリード/ライトヘッドとを用いて構築される、相対的に廉価でより高い待ち時間の磁気ストレージ媒体を含む。SSDアレイ260は、不揮発性のフラッシュメモリデバイスのアレイを用いて構築される、相対的に高価なより低い待ち時間の電子ストレージ媒体340を含む。ハイブリッドストレージ集合体280は、異なる待ち時間のストレージ媒体の他のタイプを含んでもよい。本明細書に記載の実施形態は、HDD/SSDの構成に限定されず、持続性のストレージ媒体の二つのみの層を有する実装に限定されない。
ハイブリッドストレージ集合体280は、HDDアレイ250及びSSDアレイ260内のストレージの論理集合体である。この例では、ハイブリッドストレージ集合体280は、一つ以上のボリュームを含み得るRAIDグループのコレクションである。RAIDモジュール270は、特定のボリュームの内部に一つ以上のパリティグループ(例えば、RAIDグループ)としてHDD及びSSDを構築し、HDD及びSSD上のデータの配置を管理する。RAIDモジュール270は更に、一つ以上のHDD若しくはSSDの異常発生時に保護を提供する一つ以上のRAID実装に従って、RAIDグループを構成する。RAID実装は、冗長情報(例えば、パリティ)を含むRAIDグループ内の所与の数のHDD及び/又はSSDに亘るデータ「ストライプ」の書き込みにより、データストレージの信頼性及びインテグリティを、強化する。HDDコントローラ254及びSSDコントローラ264は、それらの個々のアレイにおける多重物理デバイスに亘って分配されるデータの低レベルマネジメントを実行する。RAIDモジュール270は、HDDコントローラ254及びSSDコントローラ264を利用して、HDDアレイ250及びSSDアレイ260内のデータへのアクセスのためのリクエストに応答する。
メモリ220は、本明細書に記載の技術を実行するソフトウエアプログラム及びデータ構造を格納するための、プロセッサ240によりアドレス可能な格納場所を含む。プロセッサ240は、ソフトウエアプログラムを実行しデータ構造を操作するように構成された、回路を含む。ストレージマネジャ224は、このタイプのソフトウエアプログラムの一つの例である。ストレージマネジャ224は、とりわけ、一つ以上のファイルシステムを実装するようにプロセッサ240に指示する。プロセッサ240は、ネットワークインタフェース292にも相互接続される。ネットワークインタフェース292により、他のデバイス若しくはシステムは、ハイブリッドストレージ集合体280内のデータにアクセスできる。
一つの実施形態では、ストレージマネジャ224は、ハイブリッドストレージ集合体280内のリード及びライトパフォーマンスを向上させるデータ配置若しくはデータレイアウトアルゴリズムを実装する。ストレージマネジャ224は、データに関するアクセスの特性に基づいて、HHDアレイ250とSSDアレイ260との間でデータを再配置するように構成され得る。例えば、ストレージマネジャ224は、データがホットであると判別されると、HDDアレイ250からSSDアレイ260へデータを再配置し得るのであり、このことは、データが頻度高くアクセスされる、ランダムにアクセスされる、もしくはその両方であることを、意味する。SSDアレイ260はより低い待ち時間を有するのであり、最も頻度高く及び/又はランダムにアクセスされるデータを、限定された量の利用可能なSSDスペース内に有することはストレージシステム200に最大の全体的パフォーマンス上の利点を提供するのであるから、このことは有益である。
この説明の文脈では、「ランダムに」アクセスされるという用語は、データのブロックに言及する場合、データのブロックがストレージ媒体上のそのブロックと同じ物理的近接部に格納される別のデータブロックのアクセスと連動してアクセスされるかどうか、ということに関連する。特に、ランダムにアクセスされるブロックは、ストレージ媒体上のそのブロックと同じ物理的近接部に格納される別のデータブロックのアクセスと連動しないでアクセスされるブロックである。アクセスのランダム性は、通常、半導体ストレージ媒体のパフォーマンスに殆ど若しくは全く効果を生じないが、機械的ドライブコンポーネントの、ディスクの異なる物理的場所への必要な移動により、ディスクベースのストレージ媒体のパフォーマンスに重要なインパクトを生じ得る。データブロックをホットデータとして別途限定するのには、データブロックが十分にはアクセスされ得なくとも、より低い待ち時間の層にランダムにアクセスされるデータブロックを再配置することにより、重要なパフォーマンスの利点が得られ得る。結果として、アクセスの頻度及びアクセスの性質(即ち、アクセスがランダムであるかどうか)は、どのデータがより低い待ち時間の層に配置されるべきかを判定するに際して、合わせて考慮され得る。
別の例では、ストレージマネジャ224は、SSDアレイ260のSSD内に、最初データを格納し得る。続いて、データは、頻度低くアクセスされる、若しくはシーケンシャルに度々アクセスさえるということから、「コールド」となり得る。結果として、ホットデータのための、SSDアレイ260内の更なる余裕を作成するために、このコールドデータをSSDアレイ260からHDDアレイ250に移すことが好ましい。ストレージマネジャ224は、RAIDモジュール270と協働して、最初の格納場所を判別し、データ利用をモニタし、アレイ間でデータを適宜再配置する。ホットデータとコールドデータとの間の閾値の基準は、低待ち時間の層内で利用可能な空間量に依存して変動し得る。
少なくとも一つの実施形態では、データは、ボリューム、ディレクトリ、及びファイルなどの、論理コンテナの形式で、ハイブリッドストレージ集合体280により格納される。「ボリューム」は、ディスクなどの、大容量ストレージデバイスのコレクションに関連する格納データのセットであり、該大容量ストレージデバイスのコレクションは、集合体からの(即ち、集合体内部に含まれる)ストレージを取得し、完全なファイルシステムなどの、独立の管理ユニットとして管理される。個々のボリュームは、一つ以上のファイル、ディレクトリ、サブディレクトリ、論理ユニット(LUN)、若しくは他のタイプの論理コンテナの形式で、データを含み得る。
ハイブリッドストレージ集合体280内のファイルは、図3のバッファツリー300などの、バッファツリーの形式で表され得る。バッファツリー300は、ファイルに関するメタデータを含む階層データ構造であり、ファイル内のデータのブロックを配置するのに用いるポインタを含む。ファイルを組成するデータのブロックは、シーケンシャルの物理的場所に格納されないことが多く、ストレージアレイの様々な地理的場所若しくは領域に亘り広がり得る。経時的に、移動するデータのブロックもあれば、移動しないファイルのデータの別のブロックもある。結果として、バッファツリーは、ファイルのブロックの全てを配置するための機構である。
バッファツリーは、より低いレベルの間接ブロック及び/又は直接ブロックへの一つ以上のポインタを含む一つ以上のレベルの間接ブロックを含む。ブロックについての実際の物理的場所を判別することは、複数のレベルの間接ブロックを介して動作することを要求し得る。バッファツリー300の例では、「レベル1」として指定されたブロックは、間接ブロックである。これらのブロックは、ファイルの直接ブロックである「レベル0」ブロックを指し示す。間接ブロックの更なるレベルも可能である。例えば、バッファツリー300は、レベル1ブロックを指し示すレベル2ブロックを含んでもよい。場合によっては、一つのグループのあるレベル2ブロックがレベル1ブロックを指し示し、そのグループの他のレベル2ブロックがレベル0ブロックを指し示してもよい。
バッファツリー300のルートは、inode322である。inodeは、ファイルのオーナシップ、ファイルに対するアクセス許可、ファイルサイズ、ファイルタイプ、及び、ファイルのための間接ブロックの最高次レベルへのポインタなどの、ファイルに関するメタデータを格納するのに用いられるメタデータコンテナである。inodeは、通常、独立のinodeファイルに格納される。inodeは、関連データブロックの全ての場所を見出すための開始ポインタである。図示される例では、inode322は、間接ブロック324と325を参照する。これらの間接ブロックの各々は、少なくとも一つの物理ボリュームブロックナンバ(PVBN)及び対応する仮想ボリュームブロックナンバ(VVBN)を格納する。図示のために、PVBN−VVBNの一対のみが、間接ブロックの各々に示されている。しかしながら、多数のPVBN−VVBNの対が、個々の間接ブロックに含まれてもよい。個々のPVBNはハイブリッドストレージ集合体280内の物理ブロックを参照し、対応するVVBNはボリューム内の関連する論理ブロックを参照する。例示の実施形態では、間接ブロック324内のPVBNは、物理ブロック326を参照し、間接ブロック325内のPVBNは、物理ブロック328を参照する。同様に、間接ブロック324内のVVBNは、論理ブロック327を参照し、間接ブロック325内のVVBNは、論理ブロック329を参照する。論理ブロック327と329は、それぞれ、物理ブロック326と328を指し示す。
ファイルブロックナンバ(FBN)は、特定のファイル内部のデータのブロックの論理ポジションである。個々のFBNは、ボリューム内部でVVBN−PVBNの対にマップする。ストレージマネジャ224は、FBNをPVBNマッピングへ実装する。ストレージマネジャ224は更に、RAIDモジュール270と協働して、HHDアレイ250及びSSDアレイ260の格納動作をコントロールする。ストレージマネジャ224は、個々のFBNをハイブリッドストレージ集合体280内部のPVBN場所に翻訳する。ブロックは、RAIDモジュール270により提供されるトポロジ情報を用いてストレージデバイスから検索され得る。
HDDアレイ250内のデータのブロックが、HDDアレイ250内部の別の場所に移動すると、ブロックに関連する間接ブロックは新しい場所を反映するように更新される。しかしながら、inode322及び他のブロックは、変更される必要は無い。同様に、ブロックを新しい物理的場所にコピーして関連する間接ブロックを新しい場所で更新することにより、データブロックはHDDアレイ250とSSDアレイ260との間で移動される。ファイルを組成する種々のブロックは、多数の非連続の物理的場所の間に散乱され、HDDアレイ250及びSSDアレイ260を組成するものなどの様々なタイプのストレージ媒体に亘って分割されることもある。この明細書における他の記載では、データブロックの移動に関連するバッファツリーの変更は、新しい場所を指し示すブロックのメタデータへの変更として記載している。ブロックのメタデータへの変更は、関連するバッファツリーの要素の一つ以上のどんな組み合わせへの変更をも含む。
図4は、ハイブリッドストレージ集合体における重複排除を行う方法400を示す。方法400は、様々なタイプの物理的ストレージ媒体の複数の層を含む、ハイブリッドストレージ集合体を動作させることを含む(ステップ410)。方法は、ストレージマネジャ224がプロセッサ240で稼働して同一のデータを含む、ハイブリッドストレージ集合体の第1のストレージブロックと第2のストレージブロックを特定することを含む(ステップ420)第1と第2のストレージブロックの各々は、ストレージシステムのストレージの層のいずれにも配置され得る。更に、第1と第2のストレージブロックの各々は、リードキャッシュのブロックでも、リードキャッシュされたブロックでも、ライトキャッシュのブロックでもよく、又は、キャッシュのステータスを有さないものでもよい。方法は更に、ストレージマネジャ224が、第1のストレージブロックと第2のストレージブロックのキャッシュのステータスを特定して(ステップ430)、第1のストレージブロックと第2のストレージブロックのキャッシュのステータスに基づいて、第1のストレージブロックと第2のストレージブロックについて重複排除を行うこと(ステップ440)を、含む。以下の例で記載するように、特定の重複排除の実装は、重複データを含むブロックがライトキャッシュのブロックなのか、リードキャッシュのブロックなのか、若しくはリードキャッシュされたブロックなのか、に基づいて、選択され得る。
図5Aは、重複排除の処理を実行する前のブロック図を示す。ファイルシステムは、二つのファイルに関する二つのバッファツリー構造含む。ファイルシステムは、通常、更に多くのファイル及びバッファツリー構造を含むこともある。例示のために、二つのみが示されている。他の機能の間でも、inode522A、522Bは、個々のファイルに関連する間接ブロックを指し示す。間接ブロックは、個々のファイルを組成するHDDアレイ550内のデータの物理ブロックを指し示す。例えば、inode522Aは、データブロック561、データブロック562及びデータブロック563のラベルが付されたブロックで組成される。通常のファイルは、更に多くのブロックで組成されることもあるが、例示のためブロック数を限定している。図5Aに示すデータブロックの充填パターンは、データブロックの内容を示している。充填パターンにより示されるように、データブロック563、データブロック564及びデータブロック566のラベルが付されたブロックは、同一のデータを含む。それらは重複データを含むので、重複排除が、ストレージシステム内で利用可能な更なるストレージスペースを作成できる。
図5Bは、重複排除が実行された後の図5Anoファイルシステムのブロック図を示す。処理の結果、データブロック563及びデータブロック566は最早用いられていない。データブロック564は、今やinode522Aと522Bの両方で用いられている。データブロック563と566は最早用いられないため、関連するストレージスペースが他の目的のために利用可能である。当然ながら、媒体上に物理的に格納されているデータブロック563と566に関連するビットは、この処理の一部としては実際に除去されたり削除されたりされなくともよい。システムによっては、データ場所への参照が除去若しくは変更され、よって、システム内部の利用から、それら格納場所を論理的に解放することになる。解放がされたとしても、それらのブロックを組成したビットは、他のデータを格納するように物理的ストレージスペースの一部が用いられる後のある時点で、上書きされるまで、存在し得ることになる。本明細書において「削除された」の用語は、データのブロックが最早参照も利用もされないことを示し、且つ、ブロックに関するビットがその時点で物理的ストレージ媒体から削除されたり上書きされたりすることを必ずしも示さないように、用いられる。
場合によっては、重複排除の処理を介してバッファツリーから削除されたブロックはレシピエントブロックとして参照されることがある。図5A及び図5Bの例では、データブロック563はレシピエントブロックである。場合によっては、残余した上で関連するメタデータにより指し示されるデータは、ドナーブロックとして参照される。図5A及び図5Bの例では、データブロック564はドナーブロックである。
一つの例では、重複排除は、格納されたとき個々のデータブロックに対して固有のフィンガプリント生成することにより、実行される。データブロックを、SHA−256若しくはSHA−512などのハッシュ関数に適用することにより、このことは為され得る。二つ以上の同一のデータブロックは、同じフィンガプリントを有するものである。重複排除の処理の間にフィンガプリントを対比することにより、重複するデータブロックが識別され得、図5A及び図5Bに示すように合体し得る。用いられるフィンガプリントの処理に拠り、二つの照合するフィンガプリントのみで、関連するブロックが同一であることを示すのに十分となり得る。他の場合では、照合するフィンガプリントは決定的では無いこともあり、ブロックの更なる対比が必要となり得る。ブロックのフィンガプリントは、データブロック自身よりもずっと小さいものであるから、多数のデータブロックのためのフィンガプリントは、システム内の格納容量のうちの大きい部分を消費すること無く、格納され得る。フィンガプリント生成の処理は、データブロックが受信されると実行され得、又は、ブロックが既に格納された後の後処理を介して実行され得る。同様に、重複排除の処理は、データブロックの最初の受信及び格納の時点で実行され得、又は、図5Bに示すようにブロックが既に格納された後に実行され得る。
図6Aは、本発明の一つの実施形態に係る、ハイブリッドストレージ集合体内で重複排除の処理を実行する前のファイルシステムのブロック図を示す。図6AのHDDアレイ650は、図2のHDDアレイ250の例である。図6AのSSDアレイ670は、図2のSSDアレイ260の例である。SSDアレイ670は、ハイブリッドストレージ集合体のパフォーマンスを向上させるべく、データブロックを選択的に格納するように用いられる。多くの場合、HDDアレイ650の全てを、SSDアレイ670を組成するもののようなSSDデバイスで置き換えることは非常に費用がかかる。SSDアレイ670はキャッシュマップ610を含む。キャッシュマップ610は、どのデータブロックがSSDアレイ670内に格納されるかに関する情報であって、SSDアレイ670内部のそれらデータブロックの場所に関する情報を含む、情報を格納するSSDアレイ670のエリアである。
当然ながら、他のタイプのストレージデバイスを含むストレージアレイは、HHDアレイ650とSSDアレイ670のうちの一つ若しくはそれら両方に代替され得る。更に、更なるストレージアレイが、夫々が相互に異なる待ち時間を有する、三つ以上のストレージの層を含むシステムを、提供するのに用いられてもよい。図5A及び図5Bのように、図6A及び図6Bのデータブロックの充填パターンは、データブロックの内容を示す。
リードキャッシュブロックは、現在頻度高く読み出されるデータブロック(即ち、データブロックがホットである)のための、より低い待ち時間の格納層内に含まれるデータブロックのコピーである。ブロックは頻度高く読み出しされているので、より低い待ち時間の格納層内にブロックのコピーを配置してブロックに対するリクエストをそのより低い待ち時間の格納層へ仕向けることにより、漸進的なパフォーマンスの向上が達成され得る。図6Aにて、データブロック663は事前にホットであると判別され、データブロック663のコピーはSSDアレイ670内で形成された(即ち、データブロック683)。このコピーを作成するのに関連して、データブロック663のコピー(即ち、データブロック683)がSSDアレイ670で利用可能であることを示し、且つ場所を示すエントリがキャッシュマップ610内に作成された。データのブロックがストレージシステムから読み出しされると、キャッシュマップ610が、要求されたデータブロックがSSDアレイ670内で利用可能であるかどうか確認するように先ずチェックされる。
例えば、リクエストがデータブロック663を読み出すための受信が為されると。キャッシュマップ610は、データブロック663のコピーがSSDアレイ670内で利用可能であるかどうか確認するように先ずチェックされる。キャッシュマップ610は、データブロック683がデータブロック663のコピーとして利用可能であることを示す情報を含みその場所を提供するものであり、更には、SSDアレイ670内に格納される他の部録の全てに関する情報も含む。この場合、データブロック663のコピーが利用可能であるので、リードリクエストは、データブロック683を読み出すことにより満足する。言い換えれば、HHDアレイ650は、データブロック663に関するデータの読み出しではアクセスされない。データブロック683は、SSDアレイの特徴により、データブロック663よりも迅速に読み出しされ得る。データブロック663が最早ホットで無いとき、データブロック663及びデータブロック683への参照は、キャッシュマップ610から除去される。データブロック683により占められていた物理的ストレージスペースは、次は他のホットデータのために若しくは他の目的のために用いられ得る。
図6Bは、本発明の一つの実施形態に係る、重複排除の処理を実行した後の図6Anoファイルシステムのブロック図を示す。前述のように、重複排除は、他に利用すべくストレージスペースを解放するために、システムから同じデータブロックの重複インスタンスを削除若しくは除去する。図5A及び図5Bでは、三つの重複ブロックのうちどれが削除若しくは解放され同時にどれが保持されるか判別するための、選択基準は適用されなかった。
一方で、図6A及び図6Bに示す重複排除の処理は、重複データを含むブロックのキャッシュのステータスに基づいて、実行される。データブロック663、664及び683は、同一のデータを含む。重複排除の処理の一部としてどのブロックが削除若しくは除去されるべきかに関する、選択が為されなければならない。データブロック683は、データブロック663のためのリードキャッシュとして既に存在するので、データブロック683を活用することにより、システムパフォーマンスを更に向上させる機会が存在する。従って、リードキャッシュデータブロック683は、そのキャッシュのステータスにより、重複排除の処理の一部として削除されたり解放されたりすることはない。
更に、データブロック663を削除したり解放したりすることは、既に存在するリードキャッシュ構成を破壊することになる。キャッシュマップ610内に格納された情報は既に、データブロック663をデータブロック683とリンクしているからである。結果として、重複排除を完遂するためには、データブロック663や683ではなく、データブロック664を解放したり削除したりすることが、最も実効的である。データブロック664に関連する間接ブロック625A内のメタデータは、データブロック663を指し示すように更新される。
データブロックのキャッシュのステータスに基づいて、選択的に重複排除を実行することにより、適所に既に在ったデータブロック663に関するキャッシュの利点が保持されただけでなく、重複排除の利点が実現された。ストレージスペースはHDDアレイ650内で自由にされ、データブロック683のパフォーマンス条の利点はinode622Aとinode622Bの両方に関連する読み出しを介して実現される。
図6Cは、別の重複排除の処理を実行した後の、図6Aのファイルシステムのブロック図を示す。図6Cでは、データブロック663が、データ重複排除の処理の一部として自由にされ、解放され、若しくは削除される。データブロック664に関するメタデータは、それを、リードキャッシュデータブロック683に関連するリードキャッシュされたブロックとするように、修正される。リードキャッシュの関係は、重複排除の処理として、データブロック663からデータブロック664へ実効的に「移送される」。データブロック663に従前関連していたメタデータは、データブロック664を指し示すように修正される。図6Bと同様に、inode622Aとinode622Bの両方は、今やSSDアレイ670内のデータブロック683のリードキャッシュの利点を受ける。データブロック663のリードキャッシュされたステータスは、図6Bにあるように、予めキャッシュされていないデータブロック664に関して、保持のプライオリティを与えられていないが、重複排除の処理は、リードキャッシュブロックとしてのデータブロック683のキャッシュのステータスを尚考慮にいれる。
図6Cでは、図6Bにあるデータブロック664よりも、データブロック663が自由にされ、削除され、若しくは解放される。間接ブロック624Bは、データブロック664を指し示すように更新される。データブロック683は最早データブロック663のためのリードキャッシュブロックでは無く、データブロック664のためのリードキャッシュブロックとなる。図6Bと同様に、図6Cのキャッシュマップ610は、データブロック663とデータブロック664に関するリードリクエストをSSDアレイ670内のデータブロック683に向けるのに用いられる情報を含む。リードリクエストは、リクエストされたデータブロックがSSDアレイ670内にあるかどうかを判別するのにキャッシュマップ610を用いて処理される。もし無ければ、リードリクエストは、HDDアレイ650内のデータを用いて、満たされる。
図6Cの重複排除の処理は、図6Bに示す処理よりも少なくとも一つ多いステップを要求するが、にもかかわらず状況によっては図6Cのプロセスが好ましいことがある。例えば、データブロック663の物理的ストレージに対してデータブロック664が優先的な物理的場所を有することから、データブロック663よりもデータブロック664を保持するのが好ましいこともある。データブロックが、同時に読み出されることが多い他のデータブロックとシーケンシャルに配置されていることから、その配置が優先的であってもよい。別の例では、データブロック663が、好ましくない場所に、若しくはシステムがクリアしようとしている場所に、配置されることから、データブロック664ではなくデータブロック663を重複排除することが優先的であることもある。別の例では、既にリードキャッシュ化されていても、コールドとなりつつあれば、データブロック663が重複排除されてもよい。
図7Aは、本発明の別の実施形態に係る、ハイブリッドストレージ集合体内で重複排除の処理を実行する前のファイルシステムのブロック図を示す。図7Aでは、データブロック783はライトキャッシュブロックである。データブロック783は、HDDアレイ760からSSDアレイ770へ予め移動された。他のブロックに対して高い書き込み頻度を有したからである(即ち、ホットであった)。データブロック783はより低い待ち時間のSSDアレイ770内に配置されているので、データブロック783への書き込みの各々は、より迅速に完了し得る。ライトキャッシングのこの例では、キャッシュされたデータのコピーは、HDDアレイ760内に保持されていない。言い換えれば、図6A、図6B、図6Cのリードキャッシュの例に在るようなデータブロック783の対応物は、HDDアレイ760内には無い。この構成はライトキャッシングには好ましい。データブロック783が書き込みされる度に、HHDアレイ760内の対応物であるデータブロックが更新されなければならないからである。このことは、SSDアレイ770内にデータブロック783を有する、パフォーマンス上の利点を撲滅してしまう、若しくは実質的に減少してしまう。前述の例のように、キャッシュマップ710は、どのデータブロックがSSDアレイ770内にて利用可能であるか、及び、それらの場所を示す情報を含む。
図7Aの例では、データブロック783及びデータブロック764は、同一のデータを含む。前述の例のように、データブロック764及び783のキャッシュのステータスは、図7Aのシステムをどのように重複排除するかを判別する際に、考慮される。
例えば、データブロック783がホットであり続けるならば、又はホットであり続けると予想されるならば、データブロック783をデータブロック764で重複排除することにおける、潜在的利点は殆ど無い。書き込みがされた次の機会にはデータが変化している可能性が高いのであるから、このことは真である。言い換えれば、データブロック783及びデータブロック764が目下、同じであれば、データブロック764がデータブロック783に対して重複排除され得るが、比較的短期間でデータブロック783は変更する可能性が高い。inode722A又はinode722Bに関連して、データブロックに対する変更が生じれば、重複排除の処理は反転されなければならない。二つのinodeが必要とするデータブロックは最早同じでは無いからである。このことは、どんな重複排除の状況でも真であるが、それが発生する可能性はライトの状況においてずっと高い。というのは、ブロックは、頻度高く書き込みされているものであることが既に知られているからである。データブロック764及び783に関して重複排除の処理を実行するオーバヘッドには、殆ど若しくは全く利益がない。言い換えれば、ライトキャッシュ部録がファイルシステム内の別のデータブロックの重複であるとしても、重複排除の処理の一部としてライトキャッシュブロックを重複排除することを回避することが、最も有益であり得る。
図7Bは、図7Aのファイルシステムに関して重複排除が実行された後の、図7Aのファイルシステムのブロック図を示す。データブロック783はライトキャッシュブロックではあるが、ブロックがコールドとなっている若しくはコールドとなりつつある(即ち、ブロックは最早頻度高く書き込みされない)ならば、前述の例とは対照的ではあるが、ブロックに関して重複排除の処理を実行することには利点があり得る。この場合、重複排除は、データブロック783をライトキャッシュブロックからリードキャッシュブロックへ変換することを含む。データブロック764のメタデータは、データブロック783を指し示すように修正され、これによりリードパフォーマンスを向上させる。間接ブロック724Bも、データブロック764を指し示すように修正される。この場合、重複排除は、HDDアレイ760若しくはSSDアレイ770のいずれでも、使用される格納量を変更しなかったが、メタデータの変更は、inode722Aとinode722Bの両方へのデータブロック783に関する実際のパフォーマンス上の利点を提供する。
図8は、ハイブリッドストレージ集合体について重複排除を行う方法800を示す。前述のように、ステップ802にて開始する重複排除の処理は、後処理でも実行可能であるし、新しいデータブロックが受信され格納されるにつれて漸化的にも実行可能である。ステップ804では、ストレージマネジャ224は、ハイブリッドストレージ集合体内部で同一のデータを含む二つのデータブロックを特定する。ステップ810では、いずれかのブロックがライトキャッシュブロックであるかに関する判別が為される。いずれかのブロックがライトキャッシュブロックであれば、ライトキャッシュブロックがコールドであるか、若しくはコールドに成りつつあるか(即ち、アクセスされる頻度が低いか)、を判別する、次の判別がステップ840で為される。ブロックがコールドであるかどうか判別するために、アクセス頻度閾値が適用され得る。この場合、ブロック自身のアクセス頻度がその閾値を下回るならば、ブロックはコールドと見なされる。この点において用いられる特定の閾値は、実施固有のものであり、ここでの記載に密接に関連するものでは無い。ライトキャッシュブロックがコールドで無ければ、その二つの特定されたブロックに関して何らアクションが取られない。ブロックがコールドであると判別されれば、ライトキャッシュブロックは、図7Bに関して説明したのと同様に、ステップ850にてリードキャッシュブロックに変換される。
ステップ810に戻って、何れのブロックもライトキャッシュブロックでないならば、いずれかのブロックがリードキャッシュされているかを識別する次の判別が、ステップ820にて為される。何れのブロックもリードキャッシュされていないならば、その二つのブロックについてステップ860にて重複排除が行われる。ブロックのうち第1のものが他方のブロックを指し示すようにメタデータを修正することにより、さもなければ第1のブロックを削除若しくは解放することにより、このことは完遂される。図5Bに関して説明したのと同様にして、ステップ860が実行される。ブロックの両方がリードキャッシュされているならば、ブロックのどちらが保持されどちらが重複排除されるか、に関する選択が為され得る。場合によっては、どちらがより高いリファレンスカウントを有する回転子に基づいて、決定されることもある。リファレンスカウントは、どれだけ多くのファイルがブロックを利用するか、に関する情報を含む。例えば、一つのファイルにより用いられるに過ぎないデータブロックは、1のリファレンスカウントを有し得る。例えば、従前の重複排除の処理の結果として、複数のファイルによって用いられるデータブロックは、通常、1より大きい値を有することになる。より高いリファレンスカウントを伴うブロックは保持され得、一方でより小さいリファレンスカウントを伴うブロックは自由にされ若しくは解放され得る。自由にされた若しくは解放されたブロックに関するリファレンスアカウントが、保持されたブロックのリファレンスカウントに加えられて若しくは組み合わされて、保持されたブロックの新しいリファレンスカウントを適切に反映するようにしてもよい。
ステップ820に戻って、ブロックのうち一つがリードキャッシュされたものであるならば、二つのブロックは、ステップ870にて他のブロックを指し示すように一つのブロックのメタデータを修正することにより、重複排除されることになる。他のブロックに関するメタデータも、現存するリードキャッシュブロック(即ち、二つの特定されたブロックと同一のデータを含む、SSDアレイ内の第3のデータブロック)を指し示すように修正される。ステップ870は、図6Bに関して説明したのと同様に実行される。
本発明の実施形態は、前述したように、種々のステップ及び動作を含む。種々のこれらのステップ及び動作は、ハードウエアコンポーネントにより実行可能であり、又は、機械読み取り可能命令で具体化可能であり、該機械読み取り可能命令は、前記ステップを実行する命令でプログラムされた、一つ以上の汎用の若しくは専用のプロセッサを動かすのに用いられ得る。一方で、ハードウエア、ソフトウエア、及び/又はファームウエアの組み合わせにより、前記ステップが実行され得る。
本明細書で紹介する技術の実施形態は、コンピュータプログラムプロダクトとして、提供され得る。該コンピュータプログラムプロダクトは、コンピュータ若しくは他の電子デバイスが本明細書に記載のオペレーションの一部若しくは全てを実行すべくプログラムされるように用いられ得る持続性命令を格納した、機械読み取り可能媒体を含み得る。機械読み取り可能媒体は、光学ディスク、コンパクトディスクリードオンリメモリ(CD−ROM)、光磁気ディスク、フロッピディスク、ROM、ランダムアクセスメモリ(RAM)、消去可能ROM(EPROM)、電気的消去可能ROM(EEPROM)、磁気若しくは光学カード、フラッシュメモリ、又は、電子的命令を格納するのに適切である他のタイプの機械読み取り可能媒体を含み得るが、それらに限定されない。更に、本発明の実施形態は、コンピュータプログラムプロダクトとしてもダウンロード可能であり、その場合、プログラムは、搬送波で具体化されるデータ信号により、又は、通信リンクを介する他の伝搬媒体により、リモートコンピュータから、要求を出したコンピュータへ、転送され得る。
「ある実施形態では」、「ある実施形態によると」、「図示する実施形態では」、「他の実施形態では」、「ある例では」などのフレーズは、フレーズに続く特定の特性、構造、若しくは特徴が、本発明の少なくとも一つの実施形態に含まれること、及び、本発明一つ以上の実施形態に含まれ得ることを、概略意味する。更に、それらフレーズは、同じ実施形態若しくは異なる実施形態に、必ずしも言及しない。
本発明の一つ以上の実施形態に関する詳細な説明を上述に示したが、本発明の精神から変動すること無く、様々な代替、修正及び等価物が当業者には明白である。例えば、前述の実施形態は特定の特性に言及するが、本発明の範囲は、特性の様々な組み合わせを有する実施形態、及び、記載の特性の全てを含むわけでは無い実施形態も、含む。従って、本発明の範囲は、請求項の範囲内に在るそのような代替、修正及び変更の全て、更にはそれらの等価物の全てを、含むことを意図するものである。従って、前述の記載は、請求項によって規定される、本発明の範囲を限定するものとして捉えられるべきでは無い。
130・・・ストレージサーバシステム、140・・・ストレージサーバ、180A、180B・・・クライアント、190・・・ネットワーク、220・・・メモリ、224・・・ストレージマネジャ、240・・・プロセッサ、250・・・HDDアレイ、254・・・HDDコントローラ、260・・・SSDアレイ、264・・・SSDコントローラ、270・・・RAIDモジュール、292・・・ネットワークインタフェース。

Claims (30)

  1. 異なるタイプの物理的ストレージ媒体の、複数の層を含むハイブリッドストレージ集合体を操作するステップと、
    同一のデータを含む、ハイブリッドストレージ集合体の第1のストレージブロックと第2のストレージブロックを特定するステップと、
    第1のストレージブロックと第2のストレージブロックのキャッシュのステータスを特定するステップと、
    第1のストレージブロックと第2のストレージブロックのキャッシュのステータスに基づいて、第1のストレージブロックと第2のストレージブロックについての重複排除を行うステップと
    を含む方法。
  2. 複数の層のうちの、第1の層のストレージは、複数の層のうちの、第2の層のストレージの持続性ストレージ媒体よりも、より低い待ち時間を有する持続性ストレージ媒体を含む、請求項1に記載の方法。
  3. 第1の層のストレージの持続性ストレージ媒体は半導体ストレージ媒体を含み、第2の層のストレージの持続性ストレージ媒体はディスクベースのストレージ媒体を含む、請求項2に記載の方法。
  4. 更に、第1の層のストレージを第2の層のストレージのためのキャッシュとして操作するステップを含む、請求項2に記載の方法。
  5. 複数の層のうちの、第3の層のストレージは、第1の層のストレージの持続性ストレージ媒体よりも、より低い待ち時間を有する持続性ストレージ媒体を含むものであり、
    更に、第3の層のストレージを第1及び第2の層のストレージのうちの一つの若しくはそれ以上のもののためのキャッシュとして操作するステップを含む、請求項2に記載の方法。
  6. 第1と第2のストレージブロックは、第2の層のストレージ内に配置され、
    第1の層のストレージ内に配置される第3のストレージブロックは、第1のストレージブロックのデータと同一のデータと、第3のストレージブロックを指し示す第1のストレージブロックに関するメタデータとを含み、
    重複排除を行うステップは、第1のストレージブロックを指し示す第2のストレージブロックに関するメタデータを変更することを含む、
    請求項2に記載の方法。
  7. 更に、第2のストレージブロックを読み出すリクエストを受信するステップと、
    リクエストに応じて、第3のストレージブロックのデータを転送するステップと
    を含む、請求項6に記載の方法。
  8. 第1の層のストレージは、第2の層のストレージのためのキャッシュとして操作され、
    第1と第2のストレージブロックは、第2の層のストレージ内に配置され、
    第1の層のストレージ内に配置される第3のストレージブロックは、第1のストレージブロックのデータと同一のデータと、第3のストレージブロックを指し示す第1のストレージブロックに関するメタデータとを含み、
    重複排除を行うステップは、第2のストレージブロックを指し示す第3のストレージブロックに関するメタデータを変更することと、第2のストレージブロックを指し示す第1のストレージブロックに関するメタデータを変更することを含む、
    請求項2に記載の方法。
  9. 更に、第1のストレージブロックを読み出すリクエストを受信するステップと、
    リクエストに応じて、第3のストレージブロックのデータを転送するステップと
    を含む、請求項8に記載の方法。
  10. 第1の層のストレージは、第2の層のストレージのためのキャッシュとして操作され、
    第1のストレージブロックは、第1の層のストレージ内に配置され、閾値より低いアクセス頻度を有し、
    第2のストレージブロックは、第2の層のストレージ内に配置され、
    重複排除を行うステップは、第1のストレージブロックを第2のストレージブロックのためのリードキャッシュにするために、第1のストレージブロックを指し示す第2のストレージブロックに関するメタデータを変更することを含む、
    請求項2に記載の方法。
  11. 第1の層のストレージは、第2の層のストレージのためのキャッシュとして操作され、
    第1のストレージブロックと第2のストレージブロックは、第1の層のストレージ内に配置され、
    第1のリファレンスカウントは第1のストレージブロックを使用するファイルの数を示し、第2のリファレンスカウントは第2のストレージブロックを使用するファイルの数を示し、第1のリファレンスカウントは、第2のリファレンスカウントより大きいものであり、
    重複排除を行うステップは、
    第1のストレージブロックを指し示す第2のストレージブロックに関するメタデータを変更することと、
    第2のストレージブロックのアクセス頻度を第1のストレージブロックのアクセス頻度に加えることを含む、
    請求項2に記載の方法。
  12. プロセッサと、
    プロセッサと連結しストレージマネジャを含むメモリとを含み、
    ストレージマネジャはプロセッサに対して、
    第1の層のストレージと第2の層のストレージを含み、第1の層のストレージは第2の層のストレージよりもより低い待ち時間を有するものである、ハイブリッドストレージ集合体を操作するステップと、
    重複データを含む、ハイブリッドストレージ集合体内の第1のストレージブロックと第2のストレージブロックを特定するステップと、
    第1のストレージブロックと第2のストレージブロックに関するキャッシュの関係を特定するステップと、
    キャッシュの関係に基づいて、第1と第2のストレージブロックについての重複排除を行うステップと
    を行わせる、ストレージサーバシステム。
  13. 第1の層のストレージの持続性ストレージ媒体は半導体デバイスを含み、第2の層のストレージの持続性ストレージ媒体はハードディスクデバイスを含む、請求項12に記載のストレージサーバシステム。
  14. ストレージマネジャはプロセッサに対して、更に、第1の層のストレージを第2の層のストレージのためのキャッシュとして操作するステップを行わせる、請求項12に記載のストレージサーバシステム。
  15. ハイブリッドストレージ集合体は、第1の層のストレージよりもより低い待ち時間を有する第3の層のストレージを含み、
    ストレージマネジャはプロセッサに対して、更に、第3の層のストレージを第1及び第2の層のストレージのうちの一つの若しくはそれ以上のもののためのキャッシュとして操作するステップを行わせる、請求項12に記載のストレージサーバシステム。
  16. ストレージマネジャはプロセッサに対して、更に、第1の層のストレージを第2の層のストレージのためのキャッシュとして操作するステップを行わせ、
    第1と第2のストレージブロックは、第2の層のストレージ内に配置され、
    第1のストレージブロックのデータと同一のデータと、第3のストレージブロックを指し示す第1のストレージブロックに関するメタデータとを含む第1の層のストレージ内に配置される第3のストレージブロックによって、第1のストレージブロックがリードキャッシュされ、
    重複排除を行うステップは、第1のストレージブロックを指し示す第2のストレージブロックに関するメタデータを変更することを含む、
    請求項12に記載のストレージサーバシステム。
  17. ストレージマネジャはプロセッサに対して、更に、
    第2のストレージブロックを読み出すリクエストを受信するステップと、
    リクエストに応じて、第3のストレージブロックのデータを転送するステップと
    を行わせる、請求項16に記載のストレージサーバシステム。
  18. ストレージマネジャはプロセッサに対して、更に、第1の層のストレージを第2の層のストレージのためのキャッシュとして操作するステップを行わせ、
    第1と第2のストレージブロックは、第2の層のストレージ内に配置され、
    第1のストレージブロックのデータと同一のデータと、第3のストレージブロックを指し示す第1のストレージブロックに関するメタデータとを含む第1の層のストレージ内に配置される第3のストレージブロックによって、第1のストレージブロックがリードキャッシュされ、
    重複排除を行うステップは、第2のストレージブロックを指し示す第3のストレージブロックに関するメタデータを変更することと、第2のストレージブロックを指し示す第1のストレージブロックに関するメタデータを変更することを含む、
    請求項12に記載のストレージサーバシステム。
  19. ストレージマネジャはプロセッサに対して、更に、
    第1のストレージブロックを読み出すリクエストを受信するステップと、
    リクエストに応じて、第3のストレージブロックのデータを転送するステップと
    を行わせる、請求項18に記載のストレージサーバシステム。
  20. ストレージマネジャはプロセッサに対して、更に、第1の層のストレージを第2の層のストレージのためのキャッシュとして操作するステップを行わせ、
    第1のストレージブロックは、第1の層のストレージ内に配置され、閾値より低いアクセス頻度を有し、
    第2のストレージブロックは、第2の層のストレージ内に配置され、
    重複排除を行うステップは、第1のストレージブロックを第2のストレージブロックのためのリードキャッシュにするために、第1のストレージブロックを指し示す第2のストレージブロックに関するメタデータを変更することを含む、
    請求項12に記載のストレージサーバシステム。
  21. ストレージマネジャはプロセッサに対して、更に、第1の層のストレージを第2の層のストレージのためのキャッシュとして操作するステップを行わせ、
    第1のストレージブロックと第2のストレージブロックは、第1の層のストレージ内に配置され、
    第1のリファレンスカウントは第1のストレージブロックを使用するファイルの数を示し、第2のリファレンスカウントは第2のストレージブロックを使用するファイルの数を示し、第1のリファレンスカウントは、第2のリファレンスカウントより大きいものであり、
    重複排除を行うステップは、
    第1のストレージブロックを指し示す第2のストレージブロックに関するメタデータを変更することと、
    第2のストレージブロックのアクセス頻度を第1のストレージブロックのアクセス頻度に加えることを含む、
    請求項12に記載のストレージサーバシステム。
  22. 持続性命令を含む持続性機械読み取り可能媒体において、
    一つ以上のプロセッサにより実行されるとき、持続性命令は一つ以上のプロセッサに対して、
    同一のデータを含む第1のストレージブロックと第2のストレージブロックを特定するステップであって、第1のストレージブロックと第2のストレージブロックとの両方は第1の層のストレージと第2の層のストレージとを含むハイブリッドストレージ集合体内に配置され、第1の層のストレージは第2の層のストレージよりもより低い待ち時間を有するものであり、第1の層のストレージは第2の層のストレージのためのキャッシュとして操作される、ステップと、
    第1のストレージブロックと第2のストレージブロックに関するキャッシュのステータスを特定するステップと、
    キャッシュのステータスに基づいて、第1のストレージブロックと第2のストレージブロックについての重複排除を行うステップと
    を行わせる、持続性機械読み取り可能媒体。
  23. 第1の層のストレージの持続性ストレージ媒体は半導体デバイスを含み、第2の層のストレージの持続性ストレージ媒体はハードディスクデバイスを含む、請求項22に記載の持続性機械読み取り可能媒体。
  24. ハイブリッドストレージ集合体は、第1の層のストレージよりもより低い待ち時間を有する第3の層のストレージを含み、
    持続性命令は一つ以上のプロセッサに対して、更に、第3の層のストレージを第1及び第2の層のストレージのうちの一つの若しくはそれ以上のもののためのキャッシュとして操作するステップを行わせる、請求項22に記載の持続性機械読み取り可能媒体。
  25. 第1と第2のストレージブロックは、第2の層のストレージ内に配置され、
    第1の層のストレージ内に配置される第3のストレージブロックは、第1のストレージブロックのデータと同一のデータと、第3のストレージブロックを指し示す第1のストレージブロックに関するメタデータとを含み、
    重複排除を行うステップは、第1のストレージブロックを指し示す第2のストレージブロックに関するメタデータを変更することを含む、
    請求項22に記載の持続性機械読み取り可能媒体。
  26. ストレージマネジャはプロセッサに対して、更に、
    第2のストレージブロックを読み出すリクエストを受信するステップと、
    リクエストに応じて、第3のストレージブロックのデータを転送するステップと
    を行わせる、請求項25に記載の持続性機械読み取り可能媒体。
  27. 第1と第2のストレージブロックは、第2の層のストレージ内に配置され、
    第1の層のストレージ内に配置される第3のストレージブロックは、第1のストレージブロックのデータと同一のデータと、第3のストレージブロックを指し示す第1のストレージブロックに関するメタデータとを含み、
    重複排除を行うステップは、第2のストレージブロックを指し示す第3のストレージブロックに関するメタデータを変更することと、第2のストレージブロックを指し示す第1のストレージブロックに関するメタデータを変更することを含む、
    請求項22に記載の持続性機械読み取り可能媒体。
  28. 持続性命令は一つ以上のプロセッサに対して、更に、
    第1のストレージブロックを読み出すリクエストを受信するステップと、
    リクエストに応じて、第3のストレージブロックのデータを転送するステップと
    を含む、請求項27に記載の持続性機械読み取り可能媒体。
  29. 第1のストレージブロックは、第1の層のストレージ内に配置され、閾値より低いアクセス頻度を有し、
    第2のストレージブロックは、第2の層のストレージ内に配置され、
    重複排除を行うステップは、第1のストレージブロックを第2のストレージブロックのためのリードキャッシュにするために、第1のストレージブロックを指し示す第2のストレージブロックに関するメタデータを変更することを含む、
    請求項22に記載の持続性機械読み取り可能媒体。
  30. 第1のストレージブロックと第2のストレージブロックは、第1の層のストレージ内に配置され、
    第1のリファレンスカウントは第1のストレージブロックを使用するファイルの数を示し、第2のリファレンスカウントは第2のストレージブロックを使用するファイルの数を示し、第1のリファレンスカウントは、第2のリファレンスカウントより大きいものであり、
    重複排除を行うステップは、
    第1のストレージブロックを指し示す第2のストレージブロックに関するメタデータを変更することと、
    第2のストレージブロックのアクセス頻度を第1のストレージブロックのアクセス頻度に加えることを含む、
    請求項22に記載の持続性機械読み取り可能媒体。
JP2014561066A 2012-03-07 2013-03-06 ハイブリッドストレージ集合体の複製 Active JP6208156B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/413,898 2012-03-07
US13/413,898 US20130238832A1 (en) 2012-03-07 2012-03-07 Deduplicating hybrid storage aggregate
PCT/US2013/029288 WO2013134347A1 (en) 2012-03-07 2013-03-06 Deduplicating hybrid storage aggregate

Publications (2)

Publication Number Publication Date
JP2015511037A true JP2015511037A (ja) 2015-04-13
JP6208156B2 JP6208156B2 (ja) 2017-10-04

Family

ID=49115119

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014561066A Active JP6208156B2 (ja) 2012-03-07 2013-03-06 ハイブリッドストレージ集合体の複製

Country Status (5)

Country Link
US (1) US20130238832A1 (ja)
EP (1) EP2823401B1 (ja)
JP (1) JP6208156B2 (ja)
CN (1) CN104272272B (ja)
WO (1) WO2013134347A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015170345A (ja) * 2014-03-11 2015-09-28 日本電気株式会社 ストレージシステム
WO2017109822A1 (ja) * 2015-12-21 2017-06-29 株式会社日立製作所 重複排除機能を有するストレージシステム
WO2018051392A1 (ja) * 2016-09-13 2018-03-22 株式会社日立製作所 データ量削減機能を有する計算機システム、及び、記憶制御方法

Families Citing this family (78)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9235577B2 (en) * 2008-09-04 2016-01-12 Vmware, Inc. File transfer using standard blocks and standard-block identifiers
US8819208B2 (en) 2010-03-05 2014-08-26 Solidfire, Inc. Data deletion in a distributed data storage system
US9054992B2 (en) 2011-12-27 2015-06-09 Solidfire, Inc. Quality of service policy sets
US9838269B2 (en) 2011-12-27 2017-12-05 Netapp, Inc. Proportional quality of service based on client usage and system metrics
US10140308B2 (en) * 2012-03-06 2018-11-27 International Business Machines Corporation Enhancing data retrieval performance in deduplication systems
US9547443B2 (en) * 2012-04-30 2017-01-17 Hitachi, Ltd. Method and apparatus to pin page based on server state
KR101709118B1 (ko) * 2012-05-04 2017-02-22 한국전자통신연구원 하이브리드 스토리지 시스템의 파일 관리 방법 및 장치
US8930612B2 (en) * 2012-05-31 2015-01-06 Seagate Technology Llc Background deduplication of data sets in a memory
US8880476B2 (en) 2012-06-28 2014-11-04 International Business Machines Corporation Low-overhead enhancement of reliability of journaled file system using solid state storage and de-duplication
US9081683B2 (en) * 2013-02-08 2015-07-14 Nexenta Systems, Inc. Elastic I/O processing workflows in heterogeneous volumes
JP6276296B2 (ja) * 2013-03-14 2018-02-07 マイクロン テクノロジー, インク. トレーニング、データ再構築および/またはシャドウィングを含むメモリシステムおよび方法
US20140344538A1 (en) * 2013-05-14 2014-11-20 Netapp, Inc. Systems, methods, and computer program products for determining block characteristics in a computer data storage system
US9043569B2 (en) * 2013-05-31 2015-05-26 International Business Machines Corporation Memory data management
KR20150002297A (ko) * 2013-06-28 2015-01-07 삼성전자주식회사 스토리지 시스템 및 그의 동작 방법
US9703717B2 (en) * 2013-07-29 2017-07-11 Hitachi, Ltd. Computer system and control method
GB2518158A (en) * 2013-09-11 2015-03-18 Ibm Method and system for data access in a storage infrastructure
US9268502B2 (en) 2013-09-16 2016-02-23 Netapp, Inc. Dense tree volume metadata organization
US9405783B2 (en) 2013-10-02 2016-08-02 Netapp, Inc. Extent hashing technique for distributed storage architecture
US9152684B2 (en) 2013-11-12 2015-10-06 Netapp, Inc. Snapshots and clones of volumes in a storage system
US9201918B2 (en) 2013-11-19 2015-12-01 Netapp, Inc. Dense tree volume metadata update logging and checkpointing
CN104679661B (zh) * 2013-11-27 2019-12-10 阿里巴巴集团控股有限公司 混合存储的控制方法及混合存储系统
US9529545B1 (en) * 2013-12-26 2016-12-27 EMC IP Holding Company LLC Managing data deduplication in storage systems based on storage space characteristics
US10031703B1 (en) * 2013-12-31 2018-07-24 Emc Corporation Extent-based tiering for virtual storage using full LUNs
US9170746B2 (en) 2014-01-07 2015-10-27 Netapp, Inc. Clustered raid assimilation management
US9448924B2 (en) 2014-01-08 2016-09-20 Netapp, Inc. Flash optimized, log-structured layer of a file system
US9251064B2 (en) 2014-01-08 2016-02-02 Netapp, Inc. NVRAM caching and logging in a storage system
US9529546B2 (en) 2014-01-08 2016-12-27 Netapp, Inc. Global in-line extent-based deduplication
US9152330B2 (en) 2014-01-09 2015-10-06 Netapp, Inc. NVRAM data organization using self-describing entities for predictable recovery after power-loss
US9454434B2 (en) 2014-01-17 2016-09-27 Netapp, Inc. File system driven raid rebuild technique
US9483349B2 (en) 2014-01-17 2016-11-01 Netapp, Inc. Clustered raid data organization
US9268653B2 (en) 2014-01-17 2016-02-23 Netapp, Inc. Extent metadata update logging and checkpointing
US9256549B2 (en) 2014-01-17 2016-02-09 Netapp, Inc. Set-associative hash table organization for efficient storage and retrieval of data in a storage system
US20150244795A1 (en) 2014-02-21 2015-08-27 Solidfire, Inc. Data syncing in a distributed system
US9946724B1 (en) * 2014-03-31 2018-04-17 EMC IP Holding Company LLC Scalable post-process deduplication
US9798728B2 (en) 2014-07-24 2017-10-24 Netapp, Inc. System performing data deduplication using a dense tree data structure
US9524103B2 (en) 2014-09-10 2016-12-20 Netapp, Inc. Technique for quantifying logical space trapped in an extent store
US9501359B2 (en) 2014-09-10 2016-11-22 Netapp, Inc. Reconstruction of dense tree volume metadata state across crash recovery
US10133511B2 (en) 2014-09-12 2018-11-20 Netapp, Inc Optimized segment cleaning technique
US9671960B2 (en) 2014-09-12 2017-06-06 Netapp, Inc. Rate matching technique for balancing segment cleaning and I/O workload
US9710199B2 (en) 2014-11-07 2017-07-18 International Business Machines Corporation Non-volatile memory data storage with low read amplification
US9836229B2 (en) 2014-11-18 2017-12-05 Netapp, Inc. N-way merge technique for updating volume metadata in a storage I/O stack
US10970259B1 (en) * 2014-12-19 2021-04-06 EMC IP Holding Company LLC Selective application of block virtualization structures in a file system
US10162700B2 (en) 2014-12-23 2018-12-25 International Business Machines Corporation Workload-adaptive data packing algorithm
US9720601B2 (en) 2015-02-11 2017-08-01 Netapp, Inc. Load balancing technique for a storage array
US9843536B2 (en) * 2015-02-27 2017-12-12 Netapp, Inc. Techniques for dynamically allocating resources in a storage cluster system
US9762460B2 (en) 2015-03-24 2017-09-12 Netapp, Inc. Providing continuous context for operational information of a storage system
US9710317B2 (en) 2015-03-30 2017-07-18 Netapp, Inc. Methods to identify, handle and recover from suspect SSDS in a clustered flash array
US10296219B2 (en) * 2015-05-28 2019-05-21 Vmware, Inc. Data deduplication in a block-based storage system
US9703485B2 (en) 2015-07-15 2017-07-11 Western Digital Technologies, Inc. Storage management in hybrid drives
US9740566B2 (en) 2015-07-31 2017-08-22 Netapp, Inc. Snapshot creation workflow
US10394660B2 (en) 2015-07-31 2019-08-27 Netapp, Inc. Snapshot restore workflow
US10565230B2 (en) 2015-07-31 2020-02-18 Netapp, Inc. Technique for preserving efficiency for replication between clusters of a network
US9785525B2 (en) 2015-09-24 2017-10-10 Netapp, Inc. High availability failover manager
US9712190B2 (en) 2015-09-24 2017-07-18 International Business Machines Corporation Data packing for compression-enabled storage systems
US20170097771A1 (en) 2015-10-01 2017-04-06 Netapp, Inc. Transaction log layout for efficient reclamation and recovery
JP6067819B1 (ja) * 2015-10-21 2017-01-25 株式会社東芝 階層化ストレージシステム、ストレージコントローラ、並びに重複排除及びストレージ階層化のための方法
US9836366B2 (en) 2015-10-27 2017-12-05 Netapp, Inc. Third vote consensus in a cluster using shared storage devices
US9870285B2 (en) 2015-11-18 2018-01-16 International Business Machines Corporation Selectively de-straddling data pages in non-volatile memory
US10235059B2 (en) 2015-12-01 2019-03-19 Netapp, Inc. Technique for maintaining consistent I/O processing throughput in a storage system
US10229009B2 (en) 2015-12-16 2019-03-12 Netapp, Inc. Optimized file system layout for distributed consensus protocol
US9401959B1 (en) * 2015-12-18 2016-07-26 Dropbox, Inc. Network folder resynchronization
US9830103B2 (en) 2016-01-05 2017-11-28 Netapp, Inc. Technique for recovery of trapped storage space in an extent store
US10108547B2 (en) 2016-01-06 2018-10-23 Netapp, Inc. High performance and memory efficient metadata caching
US9846539B2 (en) 2016-01-22 2017-12-19 Netapp, Inc. Recovery from low space condition of an extent store
CN105893272B (zh) * 2016-03-23 2019-03-15 北京联想核芯科技有限公司 一种数据处理方法、处理设备及存储系统
US10929022B2 (en) 2016-04-25 2021-02-23 Netapp. Inc. Space savings reporting for storage system supporting snapshot and clones
US9952767B2 (en) 2016-04-29 2018-04-24 Netapp, Inc. Consistency group management
US10613761B1 (en) * 2016-08-26 2020-04-07 EMC IP Holding Company LLC Data tiering based on data service status
US10642763B2 (en) 2016-09-20 2020-05-05 Netapp, Inc. Quality of service policy sets
US10552469B2 (en) 2017-01-06 2020-02-04 Oracle International Corporation File system hierarchy mirroring across cloud data stores
CN106777342A (zh) * 2017-01-16 2017-05-31 湖南大学 一种基于可靠性的高性能文件系统混合节能存储系统及方法
US10635581B2 (en) 2017-01-20 2020-04-28 Seagate Technology Llc Hybrid drive garbage collection
US10740251B2 (en) * 2017-01-20 2020-08-11 Seagate Technology Llc Hybrid drive translation layer
US10318175B2 (en) * 2017-03-07 2019-06-11 Samsung Electronics Co., Ltd. SSD with heterogeneous NVM types
US10572407B2 (en) * 2017-08-11 2020-02-25 Western Digital Technologies, Inc. Hybrid data storage array
US11775482B2 (en) * 2019-04-30 2023-10-03 Cohesity, Inc. File system metadata deduplication
KR20210025344A (ko) * 2019-08-27 2021-03-09 에스케이하이닉스 주식회사 이종 메모리를 갖는 메인 메모리 장치, 이를 포함하는 컴퓨터 시스템, 그것의 데이터 관리 방법
CN113535088A (zh) * 2021-07-15 2021-10-22 深圳市安存数据技术有限公司 存储设备、数据处理方法和存储系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009543198A (ja) * 2006-06-29 2009-12-03 ネットアップ,インコーポレイテッド ブロック指紋を読み出し、ブロック指紋を使用してデータ重複を解消するシステム、及び方法
US20110055471A1 (en) * 2009-08-28 2011-03-03 Jonathan Thatcher Apparatus, system, and method for improved data deduplication
JP2011209973A (ja) * 2010-03-30 2011-10-20 Hitachi Ltd ディスクアレイ構成プログラム、計算機、計算機システム

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8165221B2 (en) * 2006-04-28 2012-04-24 Netapp, Inc. System and method for sampling based elimination of duplicate data
KR101490327B1 (ko) * 2006-12-06 2015-02-05 퓨전-아이오, 인크. 뱅크 인터리브를 이용한 솔리드-스테이트 스토리지의 명령 관리 장치, 시스템 및 방법
US8775368B1 (en) * 2007-06-27 2014-07-08 Emc Corporation Fine grained tiered storage with thin provisioning
US7970919B1 (en) * 2007-08-13 2011-06-28 Duran Paul A Apparatus and system for object-based storage solid-state drive and method for configuring same
US8548953B2 (en) * 2007-11-12 2013-10-01 F5 Networks, Inc. File deduplication using storage tiers
US7567188B1 (en) * 2008-04-10 2009-07-28 International Business Machines Corporation Policy based tiered data deduplication strategy
US8190823B2 (en) * 2008-09-18 2012-05-29 Lenovo (Singapore) Pte. Ltd. Apparatus, system and method for storage cache deduplication
US20100211616A1 (en) * 2009-02-16 2010-08-19 Rajesh Khandelwal Performance by Avoiding Disk I/O for Deduplicated File Blocks
US8725946B2 (en) * 2009-03-23 2014-05-13 Ocz Storage Solutions, Inc. Mass storage system and method of using hard disk, solid-state media, PCIe edge connector, and raid controller
US8694469B2 (en) 2009-12-28 2014-04-08 Riverbed Technology, Inc. Cloud synthetic backups
KR101152108B1 (ko) * 2010-04-19 2012-07-03 (주)다윈텍 하이브리드 하드 디스크 드라이브 장치 및 그 리드/라이트 제어 방법
US9355109B2 (en) * 2010-06-11 2016-05-31 The Research Foundation For The State University Of New York Multi-tier caching
US8612699B2 (en) * 2010-06-25 2013-12-17 International Business Machines Corporation Deduplication in a hybrid storage environment
US8612682B2 (en) * 2010-09-29 2013-12-17 International Business Machines Corporation Methods for managing ownership of redundant data and systems thereof
WO2012077162A1 (en) * 2010-12-08 2012-06-14 Hitachi, Ltd. Storage apparatus
WO2012147123A1 (en) * 2011-04-26 2012-11-01 Hitachi, Ltd. Storage apparatus and control method therefor

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009543198A (ja) * 2006-06-29 2009-12-03 ネットアップ,インコーポレイテッド ブロック指紋を読み出し、ブロック指紋を使用してデータ重複を解消するシステム、及び方法
US20110055471A1 (en) * 2009-08-28 2011-03-03 Jonathan Thatcher Apparatus, system, and method for improved data deduplication
JP2011209973A (ja) * 2010-03-30 2011-10-20 Hitachi Ltd ディスクアレイ構成プログラム、計算機、計算機システム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015170345A (ja) * 2014-03-11 2015-09-28 日本電気株式会社 ストレージシステム
WO2017109822A1 (ja) * 2015-12-21 2017-06-29 株式会社日立製作所 重複排除機能を有するストレージシステム
WO2018051392A1 (ja) * 2016-09-13 2018-03-22 株式会社日立製作所 データ量削減機能を有する計算機システム、及び、記憶制御方法
JPWO2018051392A1 (ja) * 2016-09-13 2019-01-24 株式会社日立製作所 データ量削減機能を有する計算機システム、及び、記憶制御方法

Also Published As

Publication number Publication date
CN104272272A (zh) 2015-01-07
EP2823401A1 (en) 2015-01-14
CN104272272B (zh) 2018-06-01
EP2823401B1 (en) 2020-06-17
EP2823401A4 (en) 2015-11-04
JP6208156B2 (ja) 2017-10-04
WO2013134347A1 (en) 2013-09-12
US20130238832A1 (en) 2013-09-12

Similar Documents

Publication Publication Date Title
JP6208156B2 (ja) ハイブリッドストレージ集合体の複製
US10042853B2 (en) Flash optimized, log-structured layer of a file system
US8549222B1 (en) Cache-based storage system architecture
US9134917B2 (en) Hybrid media storage system architecture
US11347428B2 (en) Solid state tier optimization using a content addressable caching layer
US10031703B1 (en) Extent-based tiering for virtual storage using full LUNs
US9529546B2 (en) Global in-line extent-based deduplication
US8321645B2 (en) Mechanisms for moving data in a hybrid aggregate
US9916248B2 (en) Storage device and method for controlling storage device with compressed and uncompressed volumes and storing compressed data in cache
US10747440B2 (en) Storage system and storage system management method
CN107924291B (zh) 存储系统
EP2847698A1 (en) Efficient data object storage and retrieval
EP2614439A1 (en) Storage system
US20150363134A1 (en) Storage apparatus and data management
US10620844B2 (en) System and method to read cache data on hybrid aggregates based on physical context of the data
US20180307440A1 (en) Storage control apparatus and storage control method
US20190056878A1 (en) Storage control apparatus and computer-readable recording medium storing program therefor
WO2016032955A2 (en) Nvram enabled storage systems

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20151028

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20151029

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160304

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170215

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170221

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170517

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170906

R150 Certificate of patent or registration of utility model

Ref document number: 6208156

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250