JP2015515670A - ハイブリッドストレージ集合体ブロック追跡 - Google Patents

ハイブリッドストレージ集合体ブロック追跡 Download PDF

Info

Publication number
JP2015515670A
JP2015515670A JP2014561065A JP2014561065A JP2015515670A JP 2015515670 A JP2015515670 A JP 2015515670A JP 2014561065 A JP2014561065 A JP 2014561065A JP 2014561065 A JP2014561065 A JP 2014561065A JP 2015515670 A JP2015515670 A JP 2015515670A
Authority
JP
Japan
Prior art keywords
block
cache
storage
assigned
changing
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
JP2014561065A
Other languages
English (en)
Other versions
JP6326378B2 (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 JP2015515670A publication Critical patent/JP2015515670A/ja
Application granted granted Critical
Publication of JP6326378B2 publication Critical patent/JP6326378B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G06F12/0871Allocation or management of cache space
    • 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/0893Caches characterised by their organisation or structure
    • G06F12/0895Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • 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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

ハイブリッドストレージ集合体を動作する方法及び装置を示す。一つの例では、それら方法は、ハイブリッドストレージ集合体の物理的ストレージの第1の層を、ハイブリッドストレージ集合体の物理的ストレージの第2の層のためのキャッシュとして動作するステップを含む。物理的ストレージの第1の層は複数のアサインされたブロックを含む。方法は、アサインされたブロックの少なくとも一つに関するイベントに応答して、アサインされたブロックのメタデータを更新するステップを含む。メタデータは、アサインされたブロック毎の、二つ以上の可能な利用状態を追跡する、ブロック利用情報を含む。方法は、アサインされたブロックのキャッシュの特徴を判別するべくメタデータを処理するステップも含み得る。

Description

関連出願への相互参照
本願は、2012年3月7日出願の米国特許出願第13/413877号(特許文献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/413877号
ストレージシステムに関して生じる要求は、通常、格納されるデータの量の変化、格納されるデータのタイプ、データがどのような頻度でアクセスされるか、により、更には、他の理由により、経時的に変化するであろう。ストレージシステムのパフォーマンスは、通常、これらの変化する条件下でも変化するであろう。ハイブリッドストレージ集合体の場合、システムの変動するデマンドに合わせるために、低待ち時間の層の構成及び/又はアロケーションを変化させることは有益である。これにより、低待ち時間の層の限定されたリソースは動的にアロケートされ、ストレージシステムの変動するニーズに適合することになる。例えば、ストレージシステムのニーズに適合するのに従前、十分大きかった特定のサイズのリードキャッシュは、システムに関して生じる、変動する要求のため、もはや十分に大きいものではあり得ない。現状では、ハイブリッドストレージ集合体は、特定のブロックがアサインされたが否か追跡し得るが、これらのタイプのアロケーションの決定を最も有効にするのに十分な情報を追跡するものでは無い。
ハイブリッドストレージ集合体のパフォーマンスは、利用可能なストレージデバイスを動的にアロケートすることにより向上し得る。ストレージ集合体の低待ち時間の層で利用可能であるストレージスペースは、システムの変動するニーズに適合するように再アロケートされ得る。低待ち時間の層のブロックがどのように用いられたかに関する追跡履歴情報は、低待ち時間の層内の利用可能なストレージスペースが将来どのように用いられるべきかに関する将来の決定をする際に有用である。従って、ハイブリッドストレージ集合体内の詳細なブロック利用を追跡する方法及び装置を、以下に示す。一つの例では、それら方法は、ハイブリッドストレージ集合体の物理的ストレージの第1の層を、ハイブリッドストレージ集合体の物理的ストレージの第2の層のためのキャッシュとして動作するステップを含む。物理的ストレージの第1の層は複数のアサインされたブロックを含む。方法は、アサインされたブロックの少なくとも一つに関するイベントに応答して、アサインされたブロックのメタデータを更新するステップを含む。メタデータは、アサインされたブロック毎の、二つ以上の可能な利用状態を追跡する、例えば、ブロック毎の、単なる「フリー」や「利用中」の状態以外を追跡するブロック利用情報を含む。例えば、個々のブロックがリードキャッシュとして、ライトキャッシュとして、若しくは、他の目的のために用いられているか、などのブロックがどのように用いられているかに関する情報を、システムは追跡し得る。方法は、アサインされたブロックのキャッシュの特徴を判別するべくメタデータを処理するステップも含む。
別の例では、ストレージサーバシステムは、プロセッサ及びメモリを含む。メモリは、 前記プロセッサと連結され、ストレージマネジャを含む。前記ストレージマネジャは、前記プロセッサに対して、物理的ストレージ媒体の第1の層と物理的ストレージ媒体の第2の層とを含む、ハイブリッドストレージ集合体を動作するステップを行わせる。物理的ストレージ媒体の第1の層は物理的ストレージ媒体の第2の層の待ち時間より低い待ち時間を有する。前記ストレージマネジャは、前記プロセッサに対して、物理的ストレージの第1の層の複数のブロックをアサインするステップを行わせる。アサインされたブロックの第1のポーションは、物理的ストレージの第2の層のためのリードキャッシュとして動作し、アサインされたブロックの第2のポーションは物理的ストレージの第2の層のためのライトキャッシュとして動作する。前記ストレージマネジャは、前記プロセッサに対して、アサインされたブロックの少なくとも一つに関するイベントに応答して、アサインされたブロックのメタデータを更新するステップを行わせる。メタデータは、アサインされたブロック毎の、二つ以上の可能な利用状態を追跡するブロック利用情報を含む。前記ストレージマネジャは更に、前記プロセッサに対して、アサインされたブロックのキャッシュの特徴を判別するべくメタデータを処理するステップと、キャッシュの特徴に基づいて、アサインされたブロックのアロケーションを変更するステップとを行わせる。
ハイブリッドストレージ集合体は、関連するストレージシステムのパフォーマンスを向上させるためにリード及びライトキャッシュが用いられることが多い。ストレージ集合体の低待ち時間の層内で利用可能なデータストレージブロックの一定量は、通常、キャッシュとして利用するためにアサインされる。アサインされたブロックは、リードキャッシュとして、ライトキャッシュとして、若しくは組み合わせとして、用いられ得る。ストレージシステムに出されるデマンドは経時的に変化するので、低待ち時間の層内のブロックがどのようにアサインされるのかを変更することにより、システムのパフォーマンスは向上し得る。一つの例では、システムの利用での変更は、全体的なシステムパフォーマンスがキャッシュの少なくとも一つのサイズが増加すれば向上する、というようなものである。同時に、少なくとも一つのキャッシュに関する現在の利用は、ストレージシステムのパフォーマンスに実質的に影響すること無くサイズが縮小され得る、というようなものである。これらのタイプの判別をすることには、キャッシュを組成するブロックの利用に関するアカウンティング(説明)を実行することが要求される。アカウンティングは、ブロックの利用を追跡すること、及び、ブロックの利用特徴を判別するために利用情報を処理することを含む。
より低い待ち時間のデバイス内の利用可能なストレージスペースは、リードキャッシュとして、ライトキャッシュとして、若しくは、リードキャッシュとライトキャッシュの組み合わせとして用いるために、アサインされ得る。更に、多重ボリュームを格納するのに用いられるハイブリッドストレージ集合体では、ブロックは、ハイブリッドストレージ集合体の様々なボリュームにアサインされ得る。徐々に、ストレージシステムの利用のパターン及び特徴は、より低い待ち時間のストレージの層のブロックについての異なるアサインがより適切であり、及び/又は、より良いシステムパフォーマンスを提供し得る、というものとなり得る。しかしながら、現在のハイブリッドストレージ集合体は、利用中のより低い待ち時間のストレージの層におけるブロックがどのように用いられているか、を追跡しない。現在のハイブリッドストレージ集合体は、より低い待ち時間の層の一つのブロックが利用のためにアサインされたか否か(即ち、ブロックがアサインされているかアサインされていないか)を追跡する。場合によっては、ブロックの利用を経時的にバランスさせるために、又は、選択されたブロックのリサイクルアルゴリズムを実装するために、アサインされていないブロックに関する更なる情報が追跡される。ファーストインファーストアウト(FIFO)利用モデルを実装するために、長時間未使用(LRU)アルゴリズムを実装するために、又は、他のリサイクルアルゴリズムを実装するために、アサインされていないブロックに関する情報が追跡され得る。しかしながら、アサインされたブロックがどのように用いられているかに関する更なる情報は、追跡されない。追跡されない情報の例は、ブロックが用いられているキャッシュのタイプ、及び、ブロックがどのような頻度でアクセスされているか、である。この情報が無ければ、システムパフォーマンスを向上させるためにブロックのアルケーションをどのように変更すべきであるか、に関する戦略的判別を行うことは、困難である。
本明細書に示す技術は、より低い待ち時間の層のアサインされたブロック毎に、二つ以上の可能な利用状態を追跡することにより、これらの及び他の問題を解決する。例えば、ブロックに関するメタデータは、ブロックがどのように用いられているかを示すように更新される。このメタデータは、個々のブロックが、リードキャッシュとして、ライトキャッシュとして、又は他の目的のために、用いられているかを示す、情報を含み得る。メタデータは、ブロックがどのボリュームにアサインされているか、及び、ブロックがどれくらい頻繁にアクセスされたか、を含む他のタイプの情報も含み得る。多くの他のタイプの利用情報がメタデータに含まれ得、本明細書に示す例は限定することを意図するものでは無い。メタデータは、ブロックアロケーションがどのように変更されるべきかを判別するように処理され得る。例によっては、アロケーションの変更は、リード若しくはライトキャッシュのサイズを変更することを含み得る。他の例では、ハイブリッドストレージ集合体の多重ボリューム間のブロックのアロケーションが、修正され得る。
これらの技術により、ブロックがどのように用いられているかについてのより詳細な解析を行うことができ、ハイブリッドストレージ集合体内のキャッシュが、動作環境として、若しくは、システム変更のニーズとして、動的にアロケートされ得る。動的アロケーションは、容易には修正され得ないハードアロケーションの剛性を緩和する。
本発明の実施形態は、他の方法、種々のコンポーネントを伴うシステム、並びに、一つ以上のプロセッサにより実行される際には、一つ以上のプロセッサに対して、方法、方法のバリエーション、若しくは、本明細書に記載の他のオペレーションを実行させる命令を格納する持続性機械読み取り可能格納媒体も、含む。多数の実施形態を開示しているが、以下の詳細な説明から当業者には更に他の実施形態が明白であろう。なお以下の詳細な説明は、本発明の例示の実施形態を示して記載するものである。明白なように、本発明は、発明の範囲から乖離すること無く、種々の形態での修正が可能である。従って、図面、及び、発明の詳細な説明は本質的に例示として考慮されるべきであり、限定的に考えられるべきものでは無い。
添付の図面の利用により、本発明の実施形態を記載して説明する。
図1は、本発明のある実施形態が利用され得る動作環境を示す。 図2は、本発明のある実施形態が利用され得るストレージサーバシステムを示す。 図3Aは、ハイブリッドストレージ集合体のリードキャッシュの例を示す。 図3Bは、ハイブリッドストレージ集合体のライトキャッシュの例を示す。 図4は、本発明の一つの実施形態に係るハイブリッドストレージ集合体を動作する方法の例を示す。 図5は、ハイブリッドストレージ集合体のストレージブロックのアロケーションを示す。 図6は、多重ボリュームを含むハイブリッドストレージ集合体のストレージブロックのアロケーションを示す。
図面は、必ずしも原寸に比例して描かれていない。例えば、図面の要素のうちあるものの寸法は、本発明の実施形態の理解を向上させる助けとなるべく、拡大して若しくは縮小していることがある。同様に、部品及び/又は動作のうちには、本発明の実施形態のうちあるものの議論のために、別のブロックに分離されていたり、単体のブロックに融合されていたりする。更に、本発明は種々の修正や代替の形式を受け入れるものであり、特定の実施形態が例示として図面に示され以下に詳細に記載されている。しかしながら、本発明は、以下に記載の特定の実施形態に限定されるものでは無い。むしろ、本発明は、添付の特許請求の範囲に規定する発明の範囲にある、全ての修正、等価物、及び代替物をカバーすることを意図するものである。
ハイブリッドストレージ集合体などの、データストレージシステムは、様々な待ち時間を伴う様々なタイプのストレージデバイスで組成される持続性のストレージスペースを含む。低待ち時間デバイスは、通常、より良いパフォーマンスを示すが、通常、コストの及び/又は他の欠点を有する。ストレージシステムの一部にのみ低待ち時間デバイスで実装すれば、より低い待ち時間のストレージデバイスで全体のストレージシステムを実装することに関連する、全体のコスト若しくは他の制約を被ることなく、かなりのシステムパフォーマンスの改良が見られる。システムパフォーマンスの改良は、より低い待ち時間のデバイス内で、最も頻度高くアクセスされるデータ(即ち、ホットデータ)を選択してキャッシュすることにより、最適化され得る。この構成は、より速くより低い待ち時間のデバイス内で生じる、システムへのリード及びライトの数を最大化する。多くの場合、ストレージシステムで利用可能なストレージスペースは、ブロックレベルで利用のためにアサインされる。本明細書で用いるように、データの「ブロック」は、特定のアドレスにて開始する周知の長さのデータの連続セットである。ある実施形態では、個々のブロックは、長さ4kバイトである。しかしながら、ブロックは他のサイズで有ってもよい。低待ち時間ストレージデバイスの、アサインされたブロックは、通常、ストレージシステムのためのリードキャッシュ若しくはライトキャッシュとして用いられる。本明細書で用いるように、「リードキャッシュ」は一般に、ストレージシステムのより高い待ち時間の層に格納されている、「リードキャッシュされる」データの、より高いパフォーマンスコピーを含む、ストレージシステムのより低い待ち時間の層内の少なくとも一つのデータブロックのことである。「ライトキャッシュ」は一般に、ライトパフォーマンスのために、より低い待ち時間の層内に配置された少なくとも一つのデータブロックのことである。ライトキャッシュブロックは、ライトキャッシュブロックが含むデータの、より高い待ち時間の層内に格納される対応するコピー、というものはない。更に、より低い待ち時間の層のブロックは、別の目的のために用いられ得る。例えば、より低い待ち時間の層のブロックは、メタデータのストレージのために、アロケートされたストレージスペース内に含まれない特別のリードキャッシュ(即ち、アロケートされないリードキャッシュ)のために、又は他の目的のために、用いられ得る。
図1は、本明細書に示される技術に関するある実施形態が用いられ得る動作環境100を示す。動作環境100は、ストレージサーバシステム130、クライアント180A、180B、及びネットワーク190を示す。
ストレージサーバシステム130は、ストレージサーバ140、HDD150A、HDD150B、SSD160A、SSD160Bを含む。ストレージサーバシステム130は、データやデータストレージリソースを管理し、含み、アクセスを提供するのに用いられる、様々なタイプの他のデバイスやストレージコンポーネントも含み得る。ストレージサーバ140は、一つ以上のファイルシステムを実装するストレージオペレーティングシステム230を含むコンピュータデバイスである。ストレージサーバ140は、HDD150A、HDD150B、SSD160A及びSSD160Bなどの、書き込み可能な持続性ストレージ媒体上の、情報の構成に関するストレージサービスを提供するサーバクラスコンピュータで有ればよい。HHD150A及びHDD150Bは、ハードディスクドライブであり、SSD160A及びSSD160Bは、半導体ドライブ(SSD)である。
通常のストレージサーバシステムは、図1に示すHHD及び/又はSSDよりも多くのものを含んでもよい。当然ながら、ストレージサーバシステム130は、HHDやSSDに代えて、又は、それらと組み合わせて、他のタイプの持続性のストレージデバイスを用いて実装されてもよい。これらの他のタイプの持続性ストレージデバイスは、例えば、フラッシュメモリ、NVRAM、MEMストレージサーバ、若しくはそれらの組み合わせを、含み得る。ストレージサーバシステム130は他のデバイスを含んでもよく、他のデバイスは、持続性ストレージデバイスにアクセスし管理するための、ストレージコントローラを含む。ストレージサーバシステム130は、モノリシックシステムとして示されるが、様々な地理的位置に分散されるシステムやデバイスを含んでもよい。ストレージサーバシステム130は、ストレージサーバ140と同じ若しくは異なるストレージオペレーティングシステムを用いて動作する、更なるストレージサーバを含んでもよい。
ストレージサーバ140は、HDD150A、HDD150B、SSD160A、及びSSD160Bに格納されるデータを管理する。ストレージサーバ140は、クライアント180及びクライアント180Bなどの、クライアントに、これらデバイスに格納されるデータへのアクセスも提供する。本明細書に記載の技術に従い、ストレージサーバ140は、SSD160A及びSSD160Bのアサインされたデータブロックに関するメタデータも更新するのであり、このメタデータは、ブロックがどのように用いられているかについての情報も含む。ストレージサーバ140はメタデータを処理し、ブロックの特徴をキャッシュすることを判定する。この記載の教示は、ネットワーク接続ストレージ(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は、ディスクと、ディスク上の様々な位置に機械的に移動するリード/ライトヘッドとを用いて構築される、相対的に廉価でより高い待ち時間の磁気ストレージ媒体を含む。HDD150A及びHDD150Bは、HDDアレイ250を組成するデバイスの例である。SSDアレイ260は、不揮発性のフラッシュメモリデバイスのアレイを用いて構築される、相対的に高価なより低い待ち時間の電子ストレージ媒体340を含む。SSD160A及びSSD160Bは、SSDアレイ260を組成するデバイスの例である。ハイブリッドストレージ集合体280は、異なる待ち時間のストレージ媒体の他のタイプを含んでもよい。本明細書に記載の実施形態は、HDD/SSDの構成に限定されず、持続性のストレージ媒体の二つのみの層を有する実装に限定されない。三つ以上の層のストレージを含むハイブリッドストレージ集合体も可能である。これらの実装では、個々の層は、階層的方法で別の層のためのキャッシュとして動作し得る。
ハイブリッドストレージ集合体280は、HDDアレイ250及びSSDアレイ260内のストレージの論理集合体である。この例では、ハイブリッドストレージ集合体280は、一つ以上のボリュームを含み得るRAIDグループのコレクションである。RAIDモジュール270は、特定のボリュームの内部に一つ以上のパリティグループ(例えば、RAIDグループ)としてHDD及びSSDを構築し、HDD及びSSD上のデータの配置を管理する。少なくとも一つの実施形態では、データは、ボリューム、ディレクトリ、及びファイルなどの、論理コンテナの形式で、ハイブリッドストレージ集合体280により格納される。「ボリューム」は、ディスクなどの、大容量ストレージデバイスのコレクションに関連する格納データのセットであり、該大容量ストレージデバイスのコレクションは、集合体からの(即ち、集合体内部に含まれる)ストレージを取得し、完全なファイルシステムなどの、独立の管理ユニットとして管理される。個々のボリュームは、一つ以上のファイル、ディレクトリ、サブディレクトリ、論理ユニット(LUN)、若しくは他のタイプの論理コンテナの形式で、データを含み得る。
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により、クライアント180A及びクライアント180Bなどの、デバイス若しくはシステムは、ハイブリッドストレージ集合体280からのデータを読み取り、若しくはハイブリッドストレージ集合体280へデータを書き込むことができる。
一つの実施形態では、ストレージマネジャ224は、ハイブリッドストレージ集合体280内のリード及びライトパフォーマンスを向上させるデータ配置若しくはデータレイアウトアルゴリズムを実装する。SSDアレイ260内のデータブロックは、データを格納するのに用いるべくアサインされる。ブロックは、リードキャッシュとして、ライトキャッシュとして、若しくは他の目的のために、用いられ得る。概略、目的は、最も頻繁にアクセスされるハイブリッドストレージ集合体280のデータを格納するためにSSDアレイ260のブロックを用いることである。ランダムにアクセスされることが多いデータブロックが、SSDアレイ260内にキャッシュされることもある。この説明の文脈では、「ランダムに」アクセスされるという用語は、データのブロックに言及する場合、データのブロックがストレージ媒体上のそのブロックと同じ物理的近接部に格納される別のデータブロックのアクセスと連動してアクセスされるかどうか、ということに関連する。特に、ランダムにアクセスされるブロックは、ストレージ媒体上のそのブロックと同じ物理的近接部に格納される別のデータブロックのアクセスと連動しないでアクセスされるブロックである。アクセスのランダム性は、通常、半導体ストレージ媒体のパフォーマンスに殆ど若しくは全く効果を生じないが、機械的ドライブコンポーネントの、ディスクの異なる物理的場所への必要な移動により、ディスクベースのストレージ媒体のパフォーマンスに重要なインパクトを生じ得る。データブロックをホットデータとして別途限定するのには、データブロックが十分にはアクセスされ得なくとも、より低い待ち時間の層にランダムにアクセスされるデータブロックを再配置することにより、重要なパフォーマンスの利点が得られ得る。結果として、アクセスの頻度及びアクセスの性質(即ち、アクセスがランダムであるかどうか)は、どのデータがより低い待ち時間の層に配置されるべきかを判定するに際して、合わせて考慮され得る。
ストレージマネジャ224は、システムパフォーマンスを向上させるためにSSDアレイ260のブロックがどのようにアロケートされ用いられるかを、経時的に修正するように構成され得る。例えば、ストレージマネジャ224は、システムパフォーマンスを向上させるために、又は、複数のブロックをより良く利用するために、SSDアレイ260内に実装されたキャッシュのサイズを変更し得る。ストレージマネジャ224は、システムアドミニストレータが困難なアロケーションを実行するように手動でシステムを構成することなく、これらのアロケーションを動的に修正し得る。困難若しくは固定のアロケーションが用いられず、ブロックが利用時にアロケートされることもある。
図3Aは、ハイブリッドストレージ集合体280などのハイブリッドストレージ集合体内のリードキャッシュの例を示す。リードキャッシュは、より低い待ち時間の層内で作成されるコピーであって、より高い待ち時間の層内に格納されるデータブロックのコピーであり、頻度高く読み取られる(即ち、データブロックはホットである)。別の場合、より低い待ち時間の層内のブロックは、頻度高くランダムに読み取られることから、リードキャッシュとなり得る。データブロックをホットデータとして別途限定するのには、データブロックが十分にはアクセス得なくても、より低い待ち時間の層にランダムにアクセスされるデータブロックを再配置することにより、重要なパフォーマンスの利点が得られ得る。結果として、アクセスの頻度及びアクセスの性質(即ち、アクセスがランダムであるかどうか)は、どのデータがより低い待ち時間の層に配置されるべきかを判定するに際して、合わせて考慮され得る。
ハイブリッドストレージ集合体内に格納されるファイルのデータブロックの場所に関する情報は、バッファツリーの形式で構成され得る。バッファツリーは、ファイルに関するメタデータを含む階層データ構造であり、ファイルを組成するデータのブロックを配置するのに用いるポインタを含む。これらのデータのブロックは、シーケンシャルの物理的場所に格納されないことが多く、ストレージアレイの様々な地理的場所若しくは領域に亘り広がり得る。経時的に、移動するデータのブロックもあれば、移動しないファイルのデータの別のブロックもある。結果として、バッファツリーは、ファイルのブロックの全てを配置するルックアップテーブルとして動作する。
バッファツリーは、inodeと、より低いレベルの間接ブロック及び/又はデータが格納される直接ブロックに言及するポインタを含む一つ以上のレベルの間接ブロックを含む。inodeは、ファイルのオーナシップ、ファイルに対するアクセス許可、ファイルサイズ、ファイルタイプ、更には直接及び間接ブロックのポインタなどの、ファイルに関するメタデータを含む。inodeは、通常、独立のinodeファイルに格納される。inodeは、ファイルを組成する関連データファイルの全ての場所を見出すための開始ポインタである。ブロックの実際の物理的場所を判定することには、inodo及び一つ以上のレベルの間接ブロックを介して動作することが要求される。
図3Aは、二つのバッファツリーを示し、一つはinode322Aに関するものであり、もう一つはinode322Bに関するものである。inode322Aは、レベル1関節ブロック324A及び324Bを指し示す、若しくは言及する。これらの間接ブロックの各々は、データを格納するデータブロックの物理的格納場所を指し示す。多重レベルの間接ブロックが用いられることもある。間接ブロックは別の間接ブロックを指し示すが、この場合、後者の間接ブロックはデータの物理的格納場所を指し示す。更なる層の間接ブロックも可能である。
図3Aに示すデータブロックの充填パターンは、データブロックの内容を示す。例えば、データブロック363及びデータブロック383は同じデータを含む。従前の時点にて、データブロック363はホットであると判定され、データブロック363のコピーがSSDアレイ370内に作成された(即ち、データブロック383)。間接ブロック324B内のデータブロック363に関するメタデータは、データブロック363を読み取るリクエストがデータブロック383を指し示すように、更新された。HDDアレイ350は、このブロックを読むときには、バイパスされる。データブロック363からよりも、より迅速にデータブロック383からデータが読み出され得るので、ストレージシステムのパフォーマンスは向上する。通常、より多くのデータブロックはリードキャッシュに含まれる。例示のために、図3Aでは一つのみのブロックが示される。inode322Bに関するデータブロックは、この例ではキャッシュされていない。
図3Bは、ハイブリッドストレージ集合体280などの、ハイブリッドストレージ集合体内のライトキャッシュの例を示す。図3Bでは、データブロック393はライトキャッシュブロックである。データブロック393のデータは、他のブロックに対して高い書き込み頻度を有するものと従前識別され(即ち、ホットであった)、HDDアレイ250ではなくSSDアレイ370に書き込まれた。データブロック393がSSDアレイ370に書き込まれたとき、間接ブロック324Bは、データブロックの新しい物理的場所を示すように変更された。データブロック393はより低い待ち時間アレイ370に配置されているので、データブロック393への後続の書き込みの各々は、より迅速に完了する。ライトキャッシュのこの例では、データブロック393内にキャッシュされるデータのコピーは、HDDアレイ360内には保持されない。換言すれば、図3Bに示すライトキャッシュの例は、図3Aのデータブロック363に類似するデータブロックは無い。データブロック393が書き込まれる毎にHDDアレイ360内のデータブロック393のコピーも書き込まれなければならないので、ライトキャッシュにはこの構成が好ましい。このことは、SSDアレイ370内に格納されるデータブロック393を有することに関するパフォーマンス上の利点を除外する、若しくは実質的に縮小するものである。通常、遙かに多くのデータブロックがライトキャッシュ内に含まれるものである。図示のために、一つのみのブロックが図3Bに示されている。inode322Bに関するデータブロックはこの例ではキャッシュされていない。
図4は、本発明の一つの実施形態に係るハイブリッドストレージ集合体を動作する方法400を示す。方法400は、図2のストレージシステム200に関して本図に記載されているが、方法400は多数の他のシステムで実装され得る。方法400は、ハイブリッドストレージ集合体280の物理的ストレージの第2の層のためのキャッシュとして、ハイブリッドストレージ集合体280の物理的ストレージの第1の層を、プロセッサ240が操作するステップ(ステップ410)を含む。この例では、物理的ストレージの第1の層はSSDアレイ260であり、物理的ストレージの第2の層はHHDアレイ250である。物理的ストレージの第1の層は、利用のためにアサインされた複数のデータストレージブロックを含む。方法400は、これらアサインされたブロックの少なくとも一つに関するイベントに応答してアサインされたブロックのメタデータをプロセッサ240が更新するステップ(ステップ420)を含む。メタデータは、アサインされたブロック毎の二つ以上の可能な使用状態を追跡する使用情報を含む。方法400は、アサインされたブロックのキャッシュの特徴を判定するためのメタデータを処理するステップ(ステップ43)を含む。
ステップ430にて判定されるキャッシュの特徴は、ブロックがライトキャッシュブロックとして若しくはリードキャッシュブロックとして用いられているかどうかを示す情報を含む。キャッシュの特徴は、ブロックがどのような頻度で読み取られたか、ブロックがどのような頻度で書き込まれたか、及び/又はブロックの温度を示す情報も含み得る。ブロックの温度は、ブロックが予めセットされた閾値よりもより頻度高くアクセスされたかどうかに関するカテゴリ指標である。例えば、指定期間にて所定の回数より多くアクセスされたブロックは「ホット」ブロックとして指定可能であり、指定期間にて所定の回数より少なくアクセスされたブロックは「コールド」として指定可能である。ブロック温度に関する二つ以上のカテゴリレベルも可能である。キャッシュの特徴は、ブロックのアサインに関する情報も含み得る。キャッシュの特徴は、アサインされたブロックがシステムでどのように用いられているかを示す他のタイプの情報も含み得る。
方法400のバリエーションでは、プロセッサ240は、上述のキャッシュの特徴の少なくとも一つに基づいて、SSDアレイ260のアサインされたブロックのアロケーションを変更することも行い得る。例えば、プロセッサ240は、キャッシュの特徴に基づいて、SSDアレイ260内のリードキャッシュ若しくはライトキャッシュのいずれかのサイズを、増大することも減少することも可能である。多重ボリュームがストレージシステム200内に格納される場合、ボリュームのうちの特定のボリュームにアサインされる、アサインされたブロックに関する少なくとも一つのキャッシュの特徴を判定するために、個々のブロックに基づいてメタデータが解析され得る。この解析に応答して、多重ボリューム間でのアサインされたブロックのアロケーションが変更され得る。このことは、ボリュームのリードキャッシュ及び/又はライトキャッシュのサイズを相互に関して変更することを含み得る。換言すれば、キャッシュのサイズは、解析に基づいて、ボリュームの間でバランスが取られ得る。
図5は、ハイブリッドストレージ集合体280内のストレージブロックのアロケーションを示す。前述のように、ハイブリッドストレージ集合体280は、HDD250及びSSDアレイ260を含む。ストレージシステム200の反応及びパフォーマンスを向上させるために、SSDアレイ260のより低い待ち時間のストレージデバイスは、HDDアレイ250のより高い待ち時間のストレージデバイスのためのキャッシュとして動作する。SSDアレイ260内のストレージスペースのうちには、メタデータのストレージ、バッファツリー、及び/又は、システムマネジメントデータを含む他のタイプのデータのストレージを含む、他の目的のために利用され得るものもある。
SSDアレイ260は、アサインされたブロック580と、アサインされていないブロック570とを含む。アサインされたブロック580とアサインされていないブロック570は、物理的に異なるものでも物理的に分離されたものでもない。それらは、ハイブリッドストレージ集合体280内でどのように分類され用いられるかという点においてのみ異なる。アサインされたブロック580はデータの格納に用いられるようにアサインされており、アサインされていないブロック570は用いるようにアサインされていない。アサインされていないブロック570は、RAIDモジュール270及び/又はSSDアレイ260による利用に、通常有効では無い。場合によっては、SSDアレイ260内のブロックの全てがアサインされ、アサインされていないブロック570が何らのブロックも含まないこともある。また別の場合には、将来のシステムの拡張に追随するため、若しくは、ピークのシステム使用の期間に追随するため、アサインされていないブロック570内にブロックがリザーブされることもある。プロセッサ240は、ストレージマネジャ224と連動して、アサインされたブロック580及びアサインされていないブロック570の、アサインメント及び使用を管理する。
図5の例では、SSDアレイ260のアサインされたブロック580は、メタデータのストレージ581、並びに、リードキャッシュ582及びライトキャッシュ586を含む。アサインされたブロック580内のストレージスペースは、他の目的にも用いられ得る。アサインされたブロック580は、多重リードキャッシュ及び/又は多重ライトキャッシュを格納するのにも用いられる。メタデータ581は、個々のブロックに基づいて、アサインされたブロック580の使用を記載するブロック使用情報を含む。当然ながら、メタデータ581は、HDDアレイ250を含む、別の場所内にも格納され得る。
図5のHDDアレイ250は、データブロック591、データブロック592、データブロック593、及びデータブロック594を含む。通常、更に多くのデータブロックがあるが、例示の目的のため少数のブロックのみを含めている。データブロックの各々は、モノリシックのブロックとして示しているが、個々のブロックを組成するデータは多重HDDに亘って拡散してもよい。リードキャッシュ582及びライトキャッシュ586は各々、データブロックを含む。リードキャッシュ582及びライトキャッシュ586は、物理的デバイスでも構造でもない。それらは、SSDアレイ260内部のブロックのアサイン及び論理関係を示す。特に、それらは、プロセッサ240及びストレージマネジャ224が、キャッシュの目的のためにSSDアレイ260のアサインされたブロックをどのように使用するかを示す。
図5では、リードキャッシュ582のブロック583は、HDDアレイ250のブロック591のためのリードキャッシュである。典型的に、ブロック583は一つのリードキャッシュブロックとして記載され、ブロック591はそのリードキャッシュされたブロックとして記載されている。ブロック583は、ブロック591のデータのコピーを含む。リードブロック591へのリクエストがストレージシステム200により受信されると、そのリクエストは、ブロック583を読み出すことにより充足する。ブロック584とブロック593は、同様のリードキャッシュ関係を有する。ブロック584は、ブロック593のためのリードキャッシュであり、ブロック593内のデータのコピーを含む。ライトキャッシュ586のブロック587及びブロック588は、ライトキャッシュブロックである。ある時点では、ブロック587及びブロック588は、HDDアレイ250内に格納されていたかもしれないが、ライトキャッシュされてデータはライトキャッシュ586に再配置された。典型的には、ブロック587やブロック588などの、ライトキャッシュブロックは、HDDアレイ250内に対応するコピーを有さない。
先立つ時点にて、データブロック583、584、587、及び588を格納するのに用いられるストレージブロックが使用のためにアサインされた。これらのストレージブロックは、アサインされていないブロック570内に予め含まれており、実際に用いられて論理的にアサインされたブロック580の一部となった。図示するように、アサインされたブロックは、リードキャッシュに、ライトキャッシュに、若しくはメタデータのストレージに、用いられ得る。アサインされたブロックは、システムマネジメントデータや管理データを格納することを含む、他の目的にも用いることができる。先行技術のシステムは、SSDアレイ260を組成するブロックについての、二つの可能な利用状態を追跡する。二つの可能な利用状態は、アサインされたこと、若しくはアサインされていないこと、である。
図5では、プロセッサ240及びストレージマネジャ224は、アサインされたブロックに関するブロック利用情報を追跡する。ブロック利用情報は、先行技術のシステムの二つの利用状態よりも、より詳細な情報を含む。ブロック利用情報は、メタデータ581内に含まれる。ブロック利用情報は、キャッシュブロックのタイプ(即ち、リードキャッシュ若しくはライトキャッシュ)、ブロックの読み出し及び/又は書き込みの頻度、ブロックの温度、ブロックのための寿命の読み出し及び/又は書き込みのトータル、ブロックがアサインされるボリューム、又は、他の利用の情報を含み得る。
一つの例では、メタデータ581は、SSDアレイ260の各々に対する、時間及び温度マップ(TTMap)を含む。TTMapは、ブロックタイプ、温度、プールid、及びリファレンスカウントを含むエントリであればよい。ブロックのタイプ及び温度については前述している。プールid及びリファレンスカウントは更に、ブロックの利用を記載するものである。プールは、SSDアレイ260のブロックの論理分割に、言及するものである。プールは、ライトキャッシュ、リードキャッシュ、特定のボリューム、特定のファイル、他の特定の利用、又はそれらの組み合わせなどの、特定の利用のために、形成され得る。プールは、特定のボリュームのためのリードキャッシュとして用いることに専用されてもよい。プールは、メタファイルの格納のためにもアロケートされ得る。プールIDは、プールの識別子である。
別の例では、メタデータ581は、TTMapの種々の要素に関する統計を含むカウンタマップを含み得る。これらの統計は、例えば、特定のタイプのブロックの特徴に関する統計、これらブロックへの参照回数、これらのブロックの温度、又は、他の関連する情報を含み得る。メタデータ581は、OwnerMap(オーナマップ)も含み得る。OwnerMap(オーナマップ)は、アサインされたブロックのオーナシップに関する情報を含む。
メタデータ581を組成する種々のフィールドは、アサインされたブロックが用いられると更新される。一つの例では、メタデータは、アサインされたブロックの一つに関連するイベントに応答して更新される。イベントは、ブロックの書き込み、ブロックの読み出し、ブロックの解放、若しくは、ブロックのアクセス頻度の変更を、含み得る。ブロックがデータを格納するために能動的にもはや用いられていないがアサインされていないのではないとき、ブロックは解放されてもよい。イベントは、ブロック、若しくはブロック上で実行されるオペレーションとの、別のインタアクションを含んでもよい。メタデータ581は、アサインされたブロック580のうちの個別のブロック、若しくはアサインされたブロック580からのブロックの組み合わせに関する、利用若しくはキャッシュの特徴を判別するように、処理される。処理の結果は、リードキャッシュ582及び/又はライトキャッシュ586がどのように用いられているかに関する詳細な説明(アカウンティング)を作成するのに用いられ得る。
プロセッサ240及びストレージマネジャ224は、前述の説明(アカウンティング)を利用して、アサインされたブロック580のアロケーションを変更し得る。一つの例では、メタデータ581の処理は、アサインされたブロックの全て若しくは大部分が十全に利用されていることを示し得る。この場合、アサインされていないブロック570のうちの更なるブロックのアサインは、システムパフォーマンスを向上させ得る。これらの更なるブロックは、リードキャッシュ582、ライトキャッシュ586、若しくは両方のサイズを、増加するのに用いられ得る。
別の例では、メタデータ581は、リードキャッシュ582及びライトキャッシュ586の利用、若しくはキャッシュの特徴が別々に識別されるように、処理され得る。キャッシュの各々を組成する個別のブロックのブロック利用情報を別々に集合させることにより、リードキャッシュ582及びライトキャッシュ586のための、総体の利用情報が生成され得る。集合されたブロック利用情報を処理することは、システムパフォーマンスを維持若しくは向上させるためにキャッシュの一つのサイズが変更されるべきであり他のキャッシュのサイズが変更されずに保持される、ということを示し得る。
別の例では、別々に集合されたブロック利用情報の処理は、一つのキャッシュが十全に利用され別のものはそうではない、ということを示す。この場合、リードキャッシュ582か、ライトキャッシュ586のいずれかのブロックは、一つのキャッシュからアロケートを解除され他のキャッシュへ再アロケートされ得る。キャッシュのうちの一つが利用中であり他のキャッシュが利用中で無いときに、このことは適切である。キャッシュのサイズは、それらの相対的なサイズ、それらの利用頻度に基づいて、又は、他の要素に基づいて、調整され得る。個別のブロック利用情報を含む、メタデータ581により、アサインされたブロックがどのように用いられているかより良く理解するために、種々のタイプのブロック利用の説明(アカウンティング)及び/又は解析が実行され得る。SSDアレイ260の利用若しくはパフォーマンスを最適化するアロケーション決定をするためにも、用いられ得る。
図6は、多重ボリュームを格納することを含む構成におけるハイブリッドストレージ集合体280内のストレージブロックのアロケーションを示す。この例では、ボリューム691、ボリューム692、及びボリューム693は、ハイブリッドストレージ集合体280に格納される。ボリューム691に関するデータの全ては、HDDアレイ250に格納され、ボリューム692及びボリューム693はSSDアレイ260のブロックを用いる、リードキャッシュ及びライトキャッシュの両方である。リード及びライトキャッシュは、前述の例に記載したように動作する。この例では、メタデータは、図5のようなSSDアレイ260ではなく、HDDアレイ250に格納される。この例では、メタデータ581は、ボリュームのうちのどれがアサインされたブロックの各々を用いているか(即ち、所有するか)を示すことに関する情報も含む。ある場合には、特定のボリュームへのブロックのアサインを示す情報は、OwnerMapの形式でメタデータ581内に格納され得る。OwnerMapは、アサインされたブロックのオーナシップに関する情報を含む、メタデータ581内部のファイルである。
前述の例に記載したように、多数の様々なタイプのアロケーション決定が、メタデータ581の処理、若しくはメタデータ581から判別されるキャッシュの特徴に基づいて、為され得る。図6の場合、どのボリュームがブロックを用いているかを示す、メタデータ581内の情報は、前述の例に記載したようなブロックの他のキャッシュの特徴を含み得る。これらのキャッシュの特徴は、アロケーションの判別を行うためのボリューム利用情報と連動して用いられ得る。ある場合には、メタデータ581は、ボリュームに所有されない若しくは用いられない、ブロックに関するブロック利用情報も含み得る。
一つの例では、ボリューム692により用いられているリードキャッシュ582の全てのブロックに関するブロック利用情報は、ボリューム693により用いられているリードキャッシュ582の全てのブロックに関する総体ブロック利用情報に対して、総体的に解析され得る。解析は、ボリューム692に関するリードキャッシュブロックが、ボリューム692に関するリードキャッシュブロックよりもずっと頻繁に用いられていることを、示し得る。より多くのリードキャッシュブロックをボリューム693にアロケートすることにより、パフォーマンスの向上は達成され得る。ボリューム692に関するリードキャッシュブロックが頻繁には用いられていないので、これらブロックのうちの一部が、ボリューム693に用いられるように再アロケートされてもよい。
他の例では、更なるブロックが、更なるブロックが、ライトキャッシュ586から、若しくはアサインされないブロック570から、リードキャッシュ582にアロケートされ得る。別の例では、現在ボリューム691がキャッシュされていないとしても、リードキャッシュ582及び/又はライトキャッシュ586の、比較的低い利用度が、ボリューム691による利用のためにこれらキャッシュの一つ若しくは両方のブロックの一部をアロケートすることを、正当化し得る。これらのタイプのブロックアロケーションの決定は、メタデータ681内で追跡されるブロック利用情報の多数の様々な配列に基づいて、動的に為され得る。ブロック利用情報に基づく、多数の様々なパフォーマンス拡張ストラテジも可能である。
本発明の実施形態は、前述したように、種々のステップ及び動作を含む。種々のこれらのステップ及び動作は、ハードウエアコンポーネントにより実行可能であり、又は、機械読み取り可能命令で具体化可能であり、該機械読み取り可能命令は、前記ステップを実行する命令でプログラムされた、一つ以上の汎用の若しくは専用のプロセッサを動かすのに用いられ得る。一方で、ハードウエア、ソフトウエア、及び/又はファームウエアの組み合わせにより、前記ステップが実行され得る。
本発明の実施形態は、コンピュータ若しくは他の電子デバイスが本明細書に記載のオペレーションの一部若しくは全てを実行すべくプログラムされるように用いられ得る持続性命令を格納した、機械読み取り可能媒体を含むコンピュータプログラムプロダクトとして、提供され得る。機械読み取り可能媒体は、光学ディスク、コンパクトディスクリードオンリメモリ(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に記載の方法。
  3. 物理的ストレージの第1の層の持続性ストレージ媒体が半導体ストレージデバイスを含み、物理的ストレージの第2の層の持続性ストレージ媒体がディスクベースのストレージデバイスを含む、請求項1に記載の方法。
  4. 複数の、アサインされたブロックが、物理的ストレージの第2の層のためのリードキャッシュとして動作するブロックを含み、物理的ストレージの第2の層のためのライトキャッシュとして動作するブロックを含む、請求項1に記載の方法。
  5. 更に、キャッシュの特徴に基づいて、アサインされたブロックのアロケーションを変更するステップであって、リードキャッシュのサイズを変更すること、又は、ライトキャッシュのサイズを変更することを含む、ステップを含む、請求項4に記載の方法。
  6. 更に、キャッシュの特徴に基づいて、アサインされたブロックのアロケーションを変更するステップであって、リードキャッシュのサイズとライトキャッシュのサイズの間の関係に基づいてリードキャッシュのサイズを変更すること、又は、リードキャッシュのサイズとライトキャッシュのサイズの間の関係に基づいてライトキャッシュのサイズを変更することを含む、ステップを含む、請求項4に記載の方法。
  7. 更に、キャッシュの特徴に基づいて、アサインされたブロックのアロケーションを変更するステップを含み、
    メタデータは、リードキャッシュのアクセス頻度とライトキャッシュのアクセス頻度を含み、
    前記アロケーションを変更するステップは、アクセス頻度の少なくとも一つに基づいてリードキャッシュのサイズを変更すること、又は、アクセス頻度の少なくとも一つに基づいてライトキャッシュのサイズを変更することを含む、請求項4に記載の方法。
  8. ハイブリッドストレージ集合体は、物理的ストレージの第1の及び第2の層に拡がる、複数のボリュームを含む、請求項1に記載の方法。
  9. アサインされたブロックのサブセットは、前記複数のボリュームのうちの一つのボリュームに関連し、
    前記メタデータを処理するステップは、アサインされたブロックのサブセットのボリューム利用情報を判別することを含み、
    前記アロケーションを変更するステップは、ボリューム利用情報に基づいてアサインされたブロックのサブセットのサイズを変更することを含む
    請求項8に記載の方法。
  10. メタデータが、アサインされたブロックのうちの一つのブロックのアクセス頻度を含む、請求項1に記載の方法。
  11. 前記イベントは、ブロックをアサインすること、ブロックを読み出すこと、ブロックを書き込むこと、ブロックを解放すること、若しくは、ブロックのアクセス頻度の変化のうちの、少なくとも一つを含む
    請求項10に記載の方法。
  12. プロセッサ、及び、
    前記プロセッサと連結され、ストレージマネジャを含む、メモリを含み、
    前記ストレージマネジャは、前記プロセッサに対して、
    物理的ストレージ媒体の第1の層と物理的ストレージ媒体の第2の層とを含む、ハイブリッドストレージ集合体を動作するステップであって、物理的ストレージ媒体の第1の層が物理的ストレージ媒体の第2の層の待ち時間より低い待ち時間を有する、ステップと、
    物理的ストレージの第1の層の複数のブロックをアサインするステップであって、アサインされたブロックの第1のポーションは物理的ストレージの第2の層のためのリードキャッシュとして動作し、アサインされたブロックの第2のポーションは物理的ストレージの第2の層のためのライトキャッシュとして動作する、ステップと、
    アサインされたブロックの少なくとも一つに関するイベントに応答して、アサインされたブロックのメタデータを更新するステップであって、メタデータは、アサインされたブロック毎の、二つ以上の可能な利用状態を追跡するブロック利用情報を含む、ステップと、
    アサインされたブロックのキャッシュの特徴を判別するべくメタデータを処理するステップと、及び、
    キャッシュの特徴に基づいて、アサインされたブロックのアロケーションを変更するステップと
    を行わせる、ストレージサーバシステム。
  13. 物理的ストレージ媒体の第1の層が半導体ストレージデバイスを含み、物理的ストレージ媒体の第2の層がディスクベースのストレージデバイスを含む、請求項12に記載のストレージサーバシステム。
  14. 前記アロケーションを変更するステップが、リードキャッシュのサイズを変更すること、又は、ライトキャッシュのサイズを変更することを含む、請求項12に記載のストレージサーバシステム。
  15. 前記アロケーションを変更するステップが、リードキャッシュのサイズとライトキャッシュのサイズの間の関係に基づいてリードキャッシュのサイズを変更すること、又は、リードキャッシュのサイズとライトキャッシュのサイズの間の関係に基づいてライトキャッシュのサイズを変更することを含む、請求項12に記載のストレージサーバシステム。
  16. メタデータは、リードキャッシュのアクセス頻度とライトキャッシュのアクセス頻度を含み、
    前記アロケーションを変更するステップは、アクセス頻度の少なくとも一つに基づいてリードキャッシュのサイズを変更すること、又は、アクセス頻度の少なくとも一つに基づいてライトキャッシュのサイズを変更することを含む、請求項12に記載のストレージサーバシステム。
  17. ハイブリッドストレージ集合体は、物理的ストレージの第1の及び第2の層に拡がる、複数のボリュームを含む、請求項12に記載のストレージサーバシステム。
  18. アサインされたブロックのサブセットは、前記複数のボリュームのうちの一つのボリュームに関連し、
    前記メタデータを処理するステップは、アサインされたブロックのサブセットのボリューム利用情報を判別することを含み、
    前記アロケーションを変更するステップは、ボリューム利用情報に基づいて前記サブセットのサイズを変更することを含む
    請求項17に記載のストレージサーバシステム。
  19. メタデータが、アサインされたブロックのうちの一つのブロックのアクセス頻度を含む、請求項12に記載のストレージサーバシステム。
  20. 前記イベントは、ブロックをアサインすること、ブロックを読み出すこと、ブロックを書き込むこと、ブロックを解放すること、若しくは、ブロックのアクセス頻度の変化のうちの、少なくとも一つを含む
    請求項19に記載のストレージサーバシステム。
  21. 一つ以上のプロセッサにより実行されるとき、前記一つ以上のプロセッサに対して、
    ディスクベースのストレージアレイのためのキャッシュとして動作するように半導体ストレージアレイの複数のブロックをアサインするステップであって、前記複数のブロックの第1のポーションはディスクベースのストレージアレイのためのリードキャッシュとしてアサインされ、前記複数のブロックの第2のポーションはディスクベースのストレージアレイのためのライトリードキャッシュとしてアサインされる、ステップと、
    アサインされたブロックの少なくとも一つに関するイベントに応答して、アサインされたブロックのメタデータを更新するステップであって、メタデータは、アサインされたブロック毎の、二つ以上の可能な利用状態を追跡するブロック利用情報を含む、ステップと、
    アサインされたブロックのキャッシュの特徴を判別するべくメタデータを処理するステップと、及び、
    キャッシュの特徴に基づいて、アサインされたブロックのアロケーションを変更するステップと
    を行わせる持続性命令を含む、持続性機械読み取り可能媒体。
  22. 前記アロケーションを変更するステップが、リードキャッシュのサイズを変更すること、又は、ライトキャッシュのサイズを変更することを含む、請求項21に記載の持続性機械読み取り可能媒体。
  23. 前記アロケーションを変更するステップが、リードキャッシュのサイズとライトキャッシュのサイズの間の関係に基づいてリードキャッシュのサイズを変更すること、又は、リードキャッシュのサイズとライトキャッシュのサイズの間の関係に基づいてライトキャッシュのサイズを変更することを含む、請求項21に記載の持続性機械読み取り可能媒体。
  24. メタデータは、リードキャッシュのアクセス頻度とライトキャッシュのアクセス頻度を含み、
    前記アロケーションを変更するステップは、アクセス頻度の少なくとも一つに基づいてリードキャッシュのサイズを変更すること、又は、アクセス頻度の少なくとも一つに基づいてライトキャッシュのサイズを変更することを含む、請求項21に記載の持続性機械読み取り可能媒体。
  25. 複数のボリュームが、ディスクベースのストレージアレイと半導体ストレージアレイを含むハイブリッドストレージ集合体内に格納され、
    前記メタデータを処理するステップは、複数のボリュームのうちの一つのボリュームを格納する際に用いられる、アサインされたブロックのサブセットに基づいて、ボリューム利用情報を判別することを含み、
    前記アロケーションを変更するステップは、ボリューム利用情報に基づいて前記サブセットのサイズを変更することを含む
    請求項21に記載の持続性機械読み取り可能媒体。
  26. メタデータが、アサインされたブロックのうちの一つのブロックのアクセス頻度を含む、請求項21に記載の持続性機械読み取り可能媒体。
  27. 前記イベントは、ブロックをアサインすること、ブロックを読み出すこと、ブロックを書き込むこと、ブロックを解放すること、若しくは、ブロックのアクセス頻度の変化のうちの、少なくとも一つを含む
    請求項26に記載の持続性機械読み取り可能媒体。
  28. ハイブリッドストレージ集合体の物理的ストレージの第1の層を、ハイブリッドストレージ集合体の物理的ストレージの第2の層のためのキャッシュとして動作するステップであって、物理的ストレージの第1の層は複数のアサインされたブロックを含む、ステップと、
    一つ以上のブロックの利用に応答して、一つ以上のブロックの利用状態を記載するメタデータを更新するステップと、
    一つ以上のブロックの利用状態を記載するメタデータを処理することに基づいて、一つ以上のブロックのキャッシュの特徴を判別するステップと、
    キャッシュの特徴に基づいて、複数のブロックのアロケーションを変更するステップと
    を含む方法。
  29. 物理的ストレージの第1の層の第1のポーションは物理的ストレージの第2の層のためのリードキャッシュとして動作し、物理的ストレージの第1の層の第2のポーションは物理的ストレージの第2の層のためのライトキャッシュとして動作する、請求項28に記載の方法。
  30. 前記アロケーションを変更するステップが、リードキャッシュのサイズを変更すること、又は、ライトキャッシュのサイズを変更することを含む、請求項29に記載の方法。
JP2014561065A 2012-03-07 2013-03-06 ハイブリッドストレージ集合体ブロック追跡 Active JP6326378B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/413,877 US20130238851A1 (en) 2012-03-07 2012-03-07 Hybrid storage aggregate block tracking
US13/413,877 2012-03-07
PCT/US2013/029278 WO2013134345A1 (en) 2012-03-07 2013-03-06 Hybrid storage aggregate block tracking

Publications (2)

Publication Number Publication Date
JP2015515670A true JP2015515670A (ja) 2015-05-28
JP6326378B2 JP6326378B2 (ja) 2018-05-16

Family

ID=49115126

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014561065A Active JP6326378B2 (ja) 2012-03-07 2013-03-06 ハイブリッドストレージ集合体ブロック追跡

Country Status (5)

Country Link
US (1) US20130238851A1 (ja)
EP (1) EP2823403A4 (ja)
JP (1) JP6326378B2 (ja)
CN (1) CN104285214B (ja)
WO (1) WO2013134345A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021144748A (ja) * 2020-12-25 2021-09-24 ベイジン バイドゥ ネットコム サイエンス アンド テクノロジー カンパニー リミテッド 分散型ブロックストレージシステム、方法、装置、デバイス、及び媒体
JP2023040677A (ja) * 2021-09-10 2023-03-23 株式会社日立製作所 ストレージシステム

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8700949B2 (en) 2010-03-30 2014-04-15 International Business Machines Corporation Reliability scheme using hybrid SSD/HDD replication with log structured management
US9792218B2 (en) * 2011-05-20 2017-10-17 Arris Enterprises Llc Data storage methods and apparatuses for reducing the number of writes to flash-based storage
WO2013055312A1 (en) * 2011-10-10 2013-04-18 Intel Corporation Host controlled hybrid storage device
CN102541466A (zh) * 2011-10-27 2012-07-04 忆正存储技术(武汉)有限公司 一种混合存储控制系统和方法
JP2015517697A (ja) * 2012-05-23 2015-06-22 株式会社日立製作所 二次記憶装置に基づく記憶領域をキャッシュ領域として用いるストレージシステム及び記憶制御方法
US9507524B1 (en) 2012-06-15 2016-11-29 Qlogic, Corporation In-band management using an intelligent adapter and methods thereof
KR20140004429A (ko) * 2012-07-02 2014-01-13 에스케이하이닉스 주식회사 반도체 장치 및 그 동작 방법
US9026736B1 (en) 2012-08-06 2015-05-05 Netapp, Inc. System and method for maintaining cache coherency
CN103677752B (zh) 2012-09-19 2017-02-08 腾讯科技(深圳)有限公司 基于分布式数据的并发处理方法和系统
US9158669B2 (en) * 2012-12-17 2015-10-13 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Presenting enclosure cache as local cache in an enclosure attached server
US9081683B2 (en) * 2013-02-08 2015-07-14 Nexenta Systems, Inc. Elastic I/O processing workflows in heterogeneous volumes
US20140258628A1 (en) * 2013-03-11 2014-09-11 Lsi Corporation System, method and computer-readable medium for managing a cache store to achieve improved cache ramp-up across system reboots
GB2514571A (en) * 2013-05-29 2014-12-03 Ibm Cache allocation in a computerized system
US10019352B2 (en) * 2013-10-18 2018-07-10 Sandisk Technologies Llc Systems and methods for adaptive reserve storage
US9454305B1 (en) 2014-01-27 2016-09-27 Qlogic, Corporation Method and system for managing storage reservation
US20150220438A1 (en) * 2014-02-04 2015-08-06 Netapp, Inc. Dynamic hot volume caching
CN104951239B (zh) * 2014-03-26 2018-04-10 国际商业机器公司 高速缓存驱动器、主机总线适配器及其使用的方法
CN105224475B (zh) 2014-05-30 2018-03-09 国际商业机器公司 用于调整存储装置的分配的方法和装置
US9423980B1 (en) 2014-06-12 2016-08-23 Qlogic, Corporation Methods and systems for automatically adding intelligent storage adapters to a cluster
US9436654B1 (en) 2014-06-23 2016-09-06 Qlogic, Corporation Methods and systems for processing task management functions in a cluster having an intelligent storage adapter
US9477424B1 (en) 2014-07-23 2016-10-25 Qlogic, Corporation Methods and systems for using an intelligent storage adapter for replication in a clustered environment
US20160077747A1 (en) * 2014-09-11 2016-03-17 Dell Products, Lp Efficient combination of storage devices for maintaining metadata
US9947386B2 (en) * 2014-09-21 2018-04-17 Advanced Micro Devices, Inc. Thermal aware data placement and compute dispatch in a memory system
US9460017B1 (en) 2014-09-26 2016-10-04 Qlogic, Corporation Methods and systems for efficient cache mirroring
US10613933B2 (en) * 2014-12-09 2020-04-07 Hitachi Vantara Llc System and method for providing thin-provisioned block storage with multiple data protection classes
US9715453B2 (en) * 2014-12-11 2017-07-25 Intel Corporation Computing method and apparatus with persistent memory
US9483207B1 (en) 2015-01-09 2016-11-01 Qlogic, Corporation Methods and systems for efficient caching using an intelligent storage adapter
CN105988720B (zh) * 2015-02-09 2019-07-02 中国移动通信集团浙江有限公司 数据存储装置和方法
US9696934B2 (en) * 2015-02-12 2017-07-04 Western Digital Technologies, Inc. Hybrid solid state drive (SSD) using PCM or other high performance solid-state memory
CN107615254A (zh) * 2015-05-21 2018-01-19 新加坡科技研究局 混合对象存储设备的高速缓存架构和算法
US9823875B2 (en) * 2015-08-31 2017-11-21 LinkedIn Coporation Transparent hybrid data storage
CN107506314B (zh) * 2016-06-14 2021-05-28 伊姆西Ip控股有限责任公司 用于管理存储系统的方法和装置
CN107817946B (zh) * 2016-09-13 2021-06-04 阿里巴巴集团控股有限公司 用于混合存储设备读写数据的方法以及装置
CN106775492B (zh) * 2016-12-30 2020-06-26 华为技术有限公司 一种固态硬盘中写入数据的方法和存储系统
US10521143B2 (en) * 2017-03-23 2019-12-31 Netapp Inc. Composite aggregate architecture
CN108733313B (zh) * 2017-04-17 2021-07-23 伊姆西Ip控股有限责任公司 利用预备盘建立多级闪速缓存的方法、设备和计算机可读介质
US10601665B2 (en) 2017-07-26 2020-03-24 International Business Machines Corporation Using blockchain smart contracts to manage dynamic data usage requirements
CN109408401B (zh) * 2017-08-18 2023-03-24 旺宏电子股份有限公司 存储器装置的管理系统及管理方法
US11221886B2 (en) * 2018-05-17 2022-01-11 International Business Machines Corporation Optimizing dynamical resource allocations for cache-friendly workloads in disaggregated data centers
US10601903B2 (en) 2018-05-17 2020-03-24 International Business Machines Corporation Optimizing dynamical resource allocations based on locality of resources in disaggregated data centers
US10893096B2 (en) 2018-05-17 2021-01-12 International Business Machines Corporation Optimizing dynamical resource allocations using a data heat map in disaggregated data centers
US10936374B2 (en) 2018-05-17 2021-03-02 International Business Machines Corporation Optimizing dynamic resource allocations for memory-dependent workloads in disaggregated data centers
US10841367B2 (en) 2018-05-17 2020-11-17 International Business Machines Corporation Optimizing dynamical resource allocations for cache-dependent workloads in disaggregated data centers
US10977085B2 (en) 2018-05-17 2021-04-13 International Business Machines Corporation Optimizing dynamical resource allocations in disaggregated data centers
US11330042B2 (en) 2018-05-17 2022-05-10 International Business Machines Corporation Optimizing dynamic resource allocations for storage-dependent workloads in disaggregated data centers
US11010309B2 (en) * 2018-05-18 2021-05-18 Intel Corporation Computer system and method for executing one or more software applications, host computer device and method for a host computer device, memory device and method for a memory device and non-transitory computer readable medium
US11630595B2 (en) * 2019-03-27 2023-04-18 Alibaba Group Holding Limited Methods and systems of efficiently storing data
KR20210101969A (ko) * 2020-02-11 2021-08-19 에스케이하이닉스 주식회사 메모리 컨트롤러 및 이의 동작 방법
US20220229552A1 (en) * 2021-01-15 2022-07-21 SK Hynix Inc. Computer system including main memory device having heterogeneous memories, and data management method thereof
CN114816216A (zh) * 2021-01-19 2022-07-29 华为技术有限公司 一种容量调整的方法以及相关装置
CN117743206B (zh) * 2024-02-21 2024-04-26 深圳市金政软件技术有限公司 数据的储存方法和装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006252031A (ja) * 2005-03-09 2006-09-21 Nec Corp ディスクアレイコントローラ
JP2009181314A (ja) * 2008-01-30 2009-08-13 Toshiba Corp 情報記録装置およびその制御方法
JP2011515727A (ja) * 2008-02-12 2011-05-19 ネットアップ,インコーポレイテッド ハイブリッド媒体ストレージシステムアーキテクチャ
JP2011159150A (ja) * 2010-02-02 2011-08-18 Nec Corp ディスクアレイ装置、及びデータ制御方法

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2003272358A1 (en) * 2002-09-16 2004-04-30 Tigi Corporation Storage system architectures and multiple caching arrangements
US6957294B1 (en) * 2002-11-15 2005-10-18 Unisys Corporation Disk volume virtualization block-level caching
US20110145489A1 (en) * 2004-04-05 2011-06-16 Super Talent Electronics, Inc. Hybrid storage device
US7330938B2 (en) * 2004-05-18 2008-02-12 Sap Ag Hybrid-cache having static and dynamic portions
US7266663B2 (en) * 2005-01-13 2007-09-04 International Business Machines Corporation Automatic cache activation and deactivation for power reduction
US7895398B2 (en) * 2005-07-19 2011-02-22 Dell Products L.P. System and method for dynamically adjusting the caching characteristics for each logical unit of a storage array
CN101681282A (zh) * 2006-12-06 2010-03-24 弗森多系统公司(dba弗森-艾奥) 用于共享的、前端、分布式raid的装置、系统和方法
CN101646994B (zh) * 2006-12-06 2016-06-15 才智知识产权控股公司(2) 利用内存库交错管理固态存储器的命令的装置、系统及方法
US8312219B2 (en) * 2009-03-02 2012-11-13 International Business Machines Corporation Hybrid caching techniques and garbage collection using hybrid caching techniques
US8321645B2 (en) * 2009-04-29 2012-11-27 Netapp, Inc. Mechanisms for moving data in a hybrid aggregate
EP2476055B1 (en) * 2009-09-08 2020-01-22 SanDisk Technologies LLC Apparatus, system, and method for caching data on a solid-state storage device
US8769241B2 (en) * 2009-12-04 2014-07-01 Marvell World Trade Ltd. Virtualization of non-volatile memory and hard disk drive as a single logical drive
US20110191522A1 (en) * 2010-02-02 2011-08-04 Condict Michael N Managing Metadata and Page Replacement in a Persistent Cache in Flash Memory
JP5065434B2 (ja) * 2010-04-06 2012-10-31 株式会社日立製作所 管理方法及び管理装置
US8230123B2 (en) * 2010-08-23 2012-07-24 International Business Machines Corporation Using information on input/output (I/O) sizes of accesses to an extent to determine a type of storage device for the extent
US8504774B2 (en) * 2010-10-13 2013-08-06 Microsoft Corporation Dynamic cache configuration using separate read and write caches
US8838895B2 (en) * 2011-06-09 2014-09-16 21Vianet Group, Inc. Solid-state disk caching the top-K hard-disk blocks selected as a function of access frequency and a logarithmic system time
US8838916B2 (en) * 2011-09-15 2014-09-16 International Business Machines Corporation Hybrid data storage management taking into account input/output (I/O) priority

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006252031A (ja) * 2005-03-09 2006-09-21 Nec Corp ディスクアレイコントローラ
JP2009181314A (ja) * 2008-01-30 2009-08-13 Toshiba Corp 情報記録装置およびその制御方法
JP2011515727A (ja) * 2008-02-12 2011-05-19 ネットアップ,インコーポレイテッド ハイブリッド媒体ストレージシステムアーキテクチャ
JP2011159150A (ja) * 2010-02-02 2011-08-18 Nec Corp ディスクアレイ装置、及びデータ制御方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021144748A (ja) * 2020-12-25 2021-09-24 ベイジン バイドゥ ネットコム サイエンス アンド テクノロジー カンパニー リミテッド 分散型ブロックストレージシステム、方法、装置、デバイス、及び媒体
JP2023040677A (ja) * 2021-09-10 2023-03-23 株式会社日立製作所 ストレージシステム
JP7412397B2 (ja) 2021-09-10 2024-01-12 株式会社日立製作所 ストレージシステム

Also Published As

Publication number Publication date
JP6326378B2 (ja) 2018-05-16
CN104285214B (zh) 2018-09-21
EP2823403A4 (en) 2015-11-04
US20130238851A1 (en) 2013-09-12
EP2823403A1 (en) 2015-01-14
CN104285214A (zh) 2015-01-14
WO2013134345A1 (en) 2013-09-12

Similar Documents

Publication Publication Date Title
JP6326378B2 (ja) ハイブリッドストレージ集合体ブロック追跡
US9395937B1 (en) Managing storage space in storage systems
US11347428B2 (en) Solid state tier optimization using a content addressable caching layer
US9817766B1 (en) Managing relocation of slices in storage systems
US9244618B1 (en) Techniques for storing data on disk drives partitioned into two regions
US8627035B2 (en) Dynamic storage tiering
US9542125B1 (en) Managing data relocation in storage systems
US9710187B1 (en) Managing data relocation in storage systems
US9477431B1 (en) Managing storage space of storage tiers
JP6208156B2 (ja) ハイブリッドストレージ集合体の複製
US9575668B1 (en) Techniques for selecting write endurance classification of flash storage based on read-write mixture of I/O workload
US9229653B2 (en) Write spike performance enhancement in hybrid storage systems
US9684593B1 (en) Techniques using an encryption tier property with application hinting and I/O tagging
US8788755B2 (en) Mass data storage system and method of operating thereof
US20140304452A1 (en) Method for increasing storage media performance
US20110153931A1 (en) Hybrid storage subsystem with mixed placement of file contents
US20110072225A1 (en) Application and tier configuration management in dynamic page reallocation storage system
KR20120120186A (ko) 캐시 아키텍처에서 하이브리드 미디어의 효율적인 사용
JP2015517697A (ja) 二次記憶装置に基づく記憶領域をキャッシュ領域として用いるストレージシステム及び記憶制御方法
WO2015015550A1 (ja) 計算機システム及び制御方法
JP2013222457A (ja) データ位置の管理方法および装置
US9330009B1 (en) Managing data storage
US10620844B2 (en) System and method to read cache data on hybrid aggregates based on physical context of the data
US10853252B2 (en) Performance of read operations by coordinating read cache management and auto-tiering
Salkhordeh et al. Operating system level data tiering using online workload characterization

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

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

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170905

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171205

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180416

R150 Certificate of patent or registration of utility model

Ref document number: 6326378

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