JP5827662B2 - ハイブリッド媒体ストレージシステムアーキテクチャ - Google Patents

ハイブリッド媒体ストレージシステムアーキテクチャ Download PDF

Info

Publication number
JP5827662B2
JP5827662B2 JP2013220051A JP2013220051A JP5827662B2 JP 5827662 B2 JP5827662 B2 JP 5827662B2 JP 2013220051 A JP2013220051 A JP 2013220051A JP 2013220051 A JP2013220051 A JP 2013220051A JP 5827662 B2 JP5827662 B2 JP 5827662B2
Authority
JP
Japan
Prior art keywords
data
ssd
hdd
storage
block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2013220051A
Other languages
English (en)
Other versions
JP2014041645A (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 JP2014041645A publication Critical patent/JP2014041645A/ja
Application granted granted Critical
Publication of JP5827662B2 publication Critical patent/JP5827662B2/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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/108Parity data distribution in semiconductor storages, e.g. in SSD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1805Append-only file systems, e.g. using logs or journals to store data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1847File system types specifically adapted to static storage, e.g. adapted to flash memory or SSD
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • 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/0643Management of files
    • 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
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/109Sector level checksum or ECC, i.e. sector or stripe level checksum or ECC in addition to the RAID parity calculation

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)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

[関連出願]
本願発明は、2008年2月12日に出願された「HYBRID MEDIA STORAGE SYSTEM ARCHITECTURE」と題するキメル他による本件と同じ譲受人の同時係続の米国仮出願第61/028,107号に基く優先権の利益を主張するものであり、この米国仮出願の内容は参照により本明細書に援用される。
本願発明は、2009年2月11日に出願された「CACHE-BASED STORAGE SYSTEM ARCHITECTURE」と題するクレイメン他による本件と同じ譲受人の同時係続の米国特許出願第[代理人文書整理番号112056−0488U]号にも関連する。
[発明の分野]
本願発明は、ストレージシステムに関し、特に、ストレージシステムのストレージアーキテクチャに関する。
[発明の背景]
ストレージシステムは、不揮発性メモリ及びディスクのような書込み可能な永久記憶媒体におけるデータの編成に関連するストレージサービスを提供するコンピュータである。ストレージシステムは、情報配送のクライアント/サーバモデルに従って動作するように構成される場合があり、それによって多数のクライアント(例えば、アプリケーション)が、システムによって提供されるデータにアクセスすることが可能となる。ファイルシステムは通常、ファイルシステム上のデータを扱うストレージアーキテクチャ、並びにランダムアクセスパターン及びストリーミングアクセスパターンを有する種々のブロックフォーマットを採用している。ディスクは一般に、優れたストリーミング処理能力(例えば、大きな連続ブロックの読み出し、又は「トラック読み出し」)を備えているが、ランダムアクセス(すなわち、個々のディスクセクタの読出し、及び書込み)については、良好に機能しない。換言すれば、ディスクは、ストリーミングモード又はシーケンシャルモードにおいては非常に能率的に動作するが、小さなランダムアクセスブロックオペレーションは、ディスクの処理能力を実質的に低速化させることがある。
ストレージシステムのストレージアーキテクチャの処理能力を向上させる一つの方法は、ハイブリッド記憶媒体を使用することであり、これは例えば、固体デバイス(SSD)のような比較的高価な電子記憶装置をハードディスクドライブ(HDD)のような比較的安価な磁気記憶装置と混合し、システムの全体的な記憶空間を得ることによってなされる。通常、そのような従来のストレージシステムのユーザ又は管理者は、SSDに記憶することによって非常に大きな恩恵を受けることができる頻繁にアクセスされる(すなわち、「人気の有る」)データを識別し、分離する一方、残りのデータはHDDに記憶している。しかしながら、そのような人気の有るデータの識別、及び分離は通常、手動で実施又は施行されるため、管理者による時間を要するほどの努力が必要となる。
さらに、そのような従来のシステムの管理者は通常、1以上のボリュームを作成するために、SSD、及びHDDの物理的レイアウトを構成するための種々の判断を実施し、各ボリュームは、データを編成するために使用されるボリュームブロック番号(vbn)記憶空間の論理構成を有することになる。その後管理者は、データの静的割当て、すなわち固定割当てを採用するために種々の判断を実施する場合があり、例えば、第1の範囲のvbnに関連するデータは、SSDに基く一群の記憶装置に置く一方、第2の範囲のvbnに関連するデータは、HDDに基く別の一群の記憶装置に置く場合がある。しかしながら、そのような固定データ割当て判断の実施は、特に割当てに変更があったときに、時間を要し、高価なものとなる。
課題を解決するだめの手段
[発明の概要]
本発明は、ハイブリッド記憶媒体として編成され、互いに協働し、ストレージシステムの全体的記憶空間を提供する複数の異なる記憶媒体を制御するように構成された、ログ構造ファイルシステムを有するハイブリッド媒体ストレージアーキテクチャを提供することによって、従来技術の欠点を克服する。その目的のために、ログ構造ファイルシステムは、データの初期配置、及びマイグレーションを実施すると共に、ハイブリッド記憶媒体の種々の記憶空間位置の間におけるデータのきめ細かな粒度の書込みアロケーションを実施するように構成され、それによって、媒体のパフォーマンス特性を向上させる。ファイルシステムは、例えばデータのタイプに関連するヒューリスティック及びポリシーを定義し、実施することにより、異なる媒体の何れに対してもデータを初期配置(書込み)することができ、その後、きめ細かな粒度で、及び手動施行を必要とせずに、媒体間においてデータをマイグレーション(移動)することができる。
一実施形態において、ハイブリッド記憶媒体は、固体デバイス(SSD)のような比較的高価な電子記憶媒体と、ハードディスクドライブ(HDD)のような比較的安価な磁気記憶媒体とを含む。HDDは、ログ構造ファイルシステムのデータレイアウトフォーマットに従って、関連(ファイル)データの種々の領域に分割される。その後、ファイルシステムは、例えばデータを置くことが可能なHDD上の種々のブロック位置を指定することによって、HDDの種々の領域内へのデータの配置を実施することができる。さらに、ファイルシステムは、ログ構造技術を使用して、SSDのランダム書込み処理能力を向上させ、例えばSSDとHDDの間において、きめ細かな粒度でデータを移動させる。
本発明の上記の利点、及び他の利点は、添付の図面と併せて下記の説明を読むことにより、よりよく理解することができる。図面中の同じ参照符号は、同一の要素、又は機能的に類似の要素であることを示している。
本発明と共に有利に使用されるストレージシステムを含む環境を示す略ブロック図である。 本発明と共に有利に使用されるストレージオペレーティングシステムを示す略ブロック図である。 本発明のハイブリッド媒体ストレージアーキテクチャを示す略ブロック図である。 本発明によるストレージシステムのハイブリッド媒体・ストレージアーキテクチャの例示的動作手順を示すフロー図である。 本発明と共に有利に使用されるRAID集合体を示す略ブロック図である。
[例示的実施形態の詳細な説明]
図1は、本発明と共に有利に使用されるストレージシステムを含む環境100を示す略ブロック図である。ストレージシステム120は、書込み可能な永久的電子又は磁気記憶媒体における情報の編成に関連するストレージサービスを提供するコンピュータである。その目的のために、ストレージシステム120は、システムバス125によって相互接続されたプロセッサ122、メモリ124、ネットワークアダプタ126、ストレージアダプタ128、及び不揮発性ログ記憶装置(NVLOG)146を含む。ストレージシステム120は、仮想化システムを実施し、情報を例えばファイルや論理ユニット(LUN)のようなデータコンテナの階層構造として電子記憶媒体及び磁気記憶媒体140、150上に論理編成するストレージオペレーティングシステム200をさらに含む。
メモリ124は、本明細書に記載する種々の実施形態に関連するソフトウェアプログラム、及び関連データ構造を記憶するためにプロセッサ及びアダプタによりアドレス指定可能な種々の記憶場所を含む。さらに、プロセッサ及びアダプタは、そうしたソフトウェアプログラムを実行し、データ構造を操作するように構成された処理要素、及び/又は論理回路を含む場合がある。ストレージオペレーティングシステム200は、その種々の部分が通常、メモリに常駐し、処理要素によって実行され、とりわけシステムにおいて実行されるソフトウェアプロセスを支援するストレージオペレーションを実施することにより、ストレージシステムを機能的に編成する。当業者には明らかなように、本明細書に記載する種々の実施形態に関連するプログラム命令の記憶及び実行には、他の処理手段、及び種々のコンピュータ読取可能媒体を含む他の記憶手段を使用してもよい。
NVLOG146は例えば、バックアップバッテリー、又はストレージシステムに故障が発生したときに情報を保持する機能を備えた他の内蔵最終状態保持機能(例えば、不揮発性半導体メモリ)を有する固体の不揮発性ランダムアクセスメモリ(NVRAM)アレイとして実施される電子記憶装置を含む。一実施形態において、NVLOG146は、書込み命令のような特定のデータアクセス命令を一時的に記憶(ログに記録)するために使用される。そうした特定のデータアクセス命令は、当該命令に関連するデータを電子記憶媒体、及び/又は磁気記憶媒体に記憶する前に、例えばシステムのコンシステンシー・ポイント(CP)のようなコンシステンシー・モデル・イベントの際に、仮想化システムによって処理される。コンシステンシー・ポイントの一例は、1998年10月6日に発行された「Method for Maintaining Consistent States of a File System and for Creating User-Accessible Read-Only Copies of a File System」と題するデビッド・ヒッツ他によるネットワーク・アプライアンス・インコーポレイテッドに譲渡された米国特許第5,819,292号に記載されており、この米国特許は、参照により本明細書に援用される。
ネットワークアダプタ126は、コンピュータネットワーク160を介してストレージシステム120をクライアント110に接続するために必要とされる物理的、電気的、又は信号的回路を含み、コンピュータネットワーク160は、ローカル・エリア・ネットワークのようなポイント・ツー・ポイント接続を含む場合がある。クライアント110は、データベースアプリケーションのようなアプリケーション112を実行するように構成された汎用コンピュータであってもよい。また、クライアント110は、情報配送のクライアント/サーバモデルに従って、ストレージシステム120との間で情報をやりとりする場合がある。すなわち、クライアントがストレージシステムにサービスを要求すると、ストレージシステムは、例えばネットワーク160を介してパケットをやりとりすることによって、クライアントから要求されたサービスの結果を返す場合がある。ファイル形態の情報をアクセスする場合、クライアントは、コモン・インターネット・ファイル・システム(CIFS) over TCP/IPプロトコル、又はネットワーク・ファイル・システム(NFS) over TCP/IPプロトコルようなファイルベースのアクセスプロトコルを有するパケットを発行する場合がある。一方クライアントは、LUN形態の情報をアクセスする場合、スモール・コンピュータ・システム・インタフェース(SCSI) over TCP/IP(iSCSI)プロトコル、又はSCSI over FC(FCP)プロトコルのようなブロックベースのアクセスプロトコルを有するパケットを発行する場合がある。
ストレージアダプタ128は、ストレージシステム上で実行されるストレージオペレーティングシステム200と協働し、クライアントから要求された情報をアクセスする。情報は、例えばハードディスクドライブ(HDD)として実施される磁気記憶媒体150、並びに、例えばストレージシステムに電力損失が発生したときにデータを保持することが可能な永久的記憶空間を提供するように構成された電子記憶媒体140に記憶される場合がある。従って、電子記憶媒体140は、バックアップバッテリ、又はアレイに何らかの電力損失が発生したときにメモリの最終状態を保持するための他の内蔵最終状態保持機能(例えば、フラッシュメモリ)を備えた、固体デバイス(SSD)の大容量ランダムアクセスメモリアレイとして実施される場合がある。
一実施形態において、SSDのためのストレージアダプタは、HDDと共用される場合がある。ただし、当業者には分かるように、SSDとHDDは別々のアダプタを有していてもよい。ストレージアダプタは、従来の高性能ファイバチャネル・シリアルリンク・トポロジーのようなI/O相互接続構成を介してHDD、及びSSDに接続するための入出力(I/O)インタフェース回路を含む。ただし、当業者には分かるように、SSD記憶装置は、ストレージアダプタの代わりに、例えばPCIによって、より直接的に接続してもよい。情報は、ストレージアダプタによって読み出され、必要に応じてプロセッサ122(又は、アダプタ128)によって処理された後、システムバス125を介してネットワークアダプタ126へ転送され、そこで情報はパケットの形に整形され、クライアント110へと戻される。
図2は、本発明と共に有利に使用されるストレージオペレーティングシステム200を示す略ブロック図である。ストレージオペレーティングシステムは、ネットワークドライバ層(例えば、イーサネットドライバ)、ネットワークプロトコル層(例えば、インターネットプロトコル層、並びにその支援搬送機構であるトランスポート・コントロール・プロトコル層、及びユーザ・データグラム・プロトコル層)、及び、ネットワーク・プロトコル・スタック210として構成されるファイルシステムプロトコルサーバ層(例えば、CIFSサーバ、NFSサーバ等)を含む一連のソフトウェア層を含む。さらに、ストレージオペレーティングシステム200は、RAID(Redundant Array of Independent (or Inexpensive) Disks)プロトコルのような記憶媒体プロトコルを実施する媒体記憶層220と、例えばスモール・コンピュータ・システム・インタフェース(SCSI)プロトコルのような記憶媒体アクセスプロトコルを実施する媒体ドライバ層230とを含む。本明細書に記載するように、媒体記憶層220は、代替的にパリティ保護(RAID)モジュールとして実施してもよく、RAIDコントローラのような独立したハードウェア構成要素として実施してもよい。
記憶媒体ソフトウェア層をネットワークプロトコル層及びファイルシステムプロトコル層に橋渡しするのは、ログ構造ファイルシステム240のようなファイルシステムとして実施される場合がある仮想化システムである。ログ構造ファイルシステムは例えば、電子記憶媒体及び磁気記憶媒体140、150に対する読出し処理能力及び書込み処理能力を向上させる種々のデータレイアウト技術を実施する場合がある。例えば、後で詳しく説明するように、ログ構造ファイルシステム240は、媒体のパフォーマンス特性を向上させるために、異なる記憶媒体間におけるデータの配置、マイグレーション、及び書込みアロケーションを実施するように構成される場合がある。
本明細書において、「ストレージオペレーティングシステム」という用語は、一般に、データアクセスを管理するストレージ機能を実施するためにコンピュータ上で実行することが可能なコンピュータ実行可能コードを意味し、ストレージシステム120の場合、汎用オペレーティングシステムのデータアクセスセマンティックを実施する場合がある。また、ストレージオペレーティングシステムは、マイクロカーネルとして実施することも、UNIX(R)又はWindows NT(R)のような汎用オペレーティングシステムで動作するアプリケーションプログラムとして実施することも、あるいは、本明細書に記載するようなストレージアプリケーション用に構成された構成変更機能を有する汎用オペレーティングシステムとして実施することもできる。
さらに、当業者には分かるように、本明細書に記載する発明は、如何なるタイプの特殊目的(例えば、ファイルサーバ、ファイラー、又はストレージサービスを提供するアプライアンス)のコンピュータにも、汎用コンピュータにも適用することができ、例えば、ストレージシステムとして実施され、又はストレージシステムを含むように実施されるスタンドアロンのコンピュータ、又はその一部にも適用することができる。さらに、本発明の教示は、限定はしないが、例えば、ネットワーク・アタッチト・ストレージ環境、ストレージ・エリア・ネットワーク、及びクライアント又はホストコンピュータに直接取り付けられるディスクアセンブリを含む種々のストレージシステムアーキテクチャに適合させることができる。従って、「ストレージシステム」という用語は、ストレージ機能を実施するように構成され、他の装置又はシステムに関連する任意のサブシステムだけでなく、そのような構成を含むものとして、広い意味で解釈すべきである。
本発明は、ハイブリッド記憶媒体として編成され、互いに協働し、ストレージシステムの全体的記憶空間を提供する複数の異なる記憶媒体を制御するように構成されたログ構造ファイルシステムを有するハイブリッド媒体ストレージアーキテクチャに関する。その目的のために、ログ構造ファイルシステムは、データの初期配置、及びマイグレーション、並びにハイブリッド記憶媒体の種々の記憶空間位置の間におけるデータのきめ細かな粒度で書込みアロケーションを実施するように構成され、それによって媒体のパフォーマンス特性を向上させる。ファイルシステムは、例えばデータのタイプに関連するヒューリスティック及びポリシーを定義し、実施することにより、異なる媒体の何れに対してもデータを初期配置(書込み)することができ、以後、媒体間においてきめ細かな粒度で、及び手動施行を必要とせずに、データをマイグレーション(移動)することができる。
一実施形態において、ハイブリッド記憶媒体は、比較的低速なディスク又はHDDのアレイ(以後、「HDDアレイ」)を使用して構成された比較的安価な磁気記憶媒体150を含む。ハイブリッド記憶媒体は、不揮発性NANDフラッシュデバイス又はSSDのアレイ(以後、「SSDアレイ」)を使用して構成された比較的高価な電子記憶媒体をさらに含む。フラッシュデバイスは例えば、優れた(ランダム)読出し処理能力を有するブロック指向のデバイスである。すなわち、フラッシュデバイスに対する読出し処理は、主にその記憶態様上の理由から、書込み処理に比べて実質的に高速である。ただし、当業者には分かるように、他のブロック指向の不揮発性電子デバイス又は磁気デバイスを、本発明の教示に従って使用してもよい。
フラッシュデバイスに記憶されたデータは、(例えば、読出し処理、及び書込み処理によって)ページ単位でアクセスされる。単位ページは、例えば4キロバイト(kB)であるが、他のページサイズ(例えば2kB)も、本発明と共に有利に使用することができる。ページ上に既に書き込まれたデータを書き換えるためには、ページを消去しなければならないが、消去単位は、複数(例えば、64)のページからなるブロックである。すなわち、消去ブロックは、256kBのサイズを有する。従って、デバイスに記憶されたデータにはページ単位でアクセス(読出し及び書込みすることが出来ても、デバイスのクリア又は消去は、ブロック単位で行われる。フラッシュデバイスの書込み処理能力が遅い理由は、デバイス上の空き空間の管理に関係している。すなわち、1ブロックのページに対する書込み処理が可能なだけの十分な記憶空間が無い場合、1ブロック分のページ全体を消去し、将来の割当てに備えて開放できるようにするために、デバイス内で、正規のデータを他のブロックへ移動させなければならない。フラッシュデバイスのこのような書込み処理は一般に、書込み処理能力が要求されるシステムにおけるフラッシュデバイスの有効性を制限する。本明細書に記載するログ構造ファイルシステムは、一つには、SSDアレイのフラッシュデバイスからの書込み処理能力を向上させるために使用される。
ハイブリッド媒体記憶アーキテクチャ
図3は、本発明のハイブリッド記憶媒体ストレージアーキテクチャ300の構成を示す略ブロック図である。このアーキテクチャは、SSDアレイ340のSSD330、及びHDDアレイ350のHDD360の動作を制御し、ストレージシステム120の全体的記憶空間を得るために、パリティ保護(RAID)モジュール320の上に配置されたログ構造ファイルシステム240を含む。ストレージアダプタ128は、媒体(フラッシュ又はディスク)をアクセスするためのストレージプロトコルを実施する。一実施形態では、HDDアレイ350及び/又はSDDアレイ340をアクセスするために使用される1以上のストレージアダプタ128が存在する場合がある。後で詳しく説明するように、SSDアレイ340の各SSDは、変換論理回路336を実施する独自の内部SSDコントローラ335を有する。すなわち、アレイ340の各SSDは、例えばSSDコントローラ335によって提供される関連変換論理回路336を有する。
SSDコントローラ335は、ジオメトリ情報をRAIDモジュール320にエキスポートする。ジオメトリ情報は、例えば、デバイスのモデルタイプ、及び例えばモジュール320によって使用されるデバイスブロックの数に換算した場合のデバイスのサイズ(ブロック数)を含む場合がある。SSDアレイ340の場合、dbnは、例えばSSDコントローラ335がRAIDモジュールに提示する論理アドレスであり、SSD330内部の変換マッピングによって、フラッシュ物理アドレスに変換される。SSDコントローラは、例えば1セクタインタフェースあたり512バイトを提示する場合があるが、このサイズは、例えば4kBのブロックサイズで行われるランダム書込みアクセスに合わせて最適化される場合がある。
上記のように、ログ構造ファイルシステム240は、電子記憶媒体140のSSDアレイ340に対する読出し及び書込み処理能力、並びに磁気記憶媒体150のHDDアレイ350に対する読出し及び書込み処理能力を向上させるデータレイアウト技術を実施する。例えば、ログ構造ファイルシステムは、ファイルのようなデータコンテナに対する高速書込みアクセスを可能にする第1のデータレイアウトフォーマットを有することにより、SSDアレイ340に対するランダム(及びシーケンシャル)データアクセス処理の能率的なサービス提供を可能にする。その目的のために、ファイルシステムは、例えばwrite anywhere技術の第1のセットを実施し、SSDアレイ340のSSD330上の空いている利用可能な空間内の任意の場所にデータを配置することを可能にする。
ファイルシステム240のwrite anywhere特性は、書込み処理能力を向上させるが、しばしばシーケンシャルデータを断片化させることがあり、断片化は、HDD360のような特定の記憶媒体について処理能力の劣化として現れることがある。なぜなら、読出し処理(特に、シーケンシャル読出し処理)の際に、断片化されたデータをアクセスするための物理的位置決めが必要になるからである。ただし、この実施形態では、SSDアレイ340がSSD330から構成されているので、ランダムアクセスは一貫性を有する(すなわち、HDDを使用する場合のように、物理的位置決めに基かない)。従って、ログ構造ファイルシステム240は、SSDと協働し、アレイのシーケンシャル読出し処理能力を劣化させることなく書込み処理能力を向上させる、SSDアレイにとって理想的なデータレイアウトエンジンを提供する。
さらに、ログ構造ファイルシステム240は、HDDアレイ350に記憶されたデータに対する能率的なサービス提供を可能にするために、HDDに記憶された種々の大きなファイルに対する高速シーケンシャル読出しアクセスを可能にする第2のデータレイアウトフォーマットを有する。その目的のために、ファイルシステムは、例えば種々の技術の第2のセットを実施し、行列の次元により特徴付けられるHDD上のデータブロックのアレイを表現する例えば「テトリス」I/Oトランザクションのようなデータレイアウト構成を使用して、データをストリーミング形態でHDD360へ移動させる。そのようなI/Oトランザクションの一例は、2007年4月3日に発行された「Method for Writing Contiguous Arrays of Stripes in a RAID Storage System Using Mapped Block Writes」と題するスティーブン・R・クレイマン他によるネットワーク・アプライアンス・インコーポレイテッドに譲渡された米国特許第7,200,715号に記載されており、この米国特許は、参照により本明細書に援用される。ここで言う「次元」の一例は、各HDD上の一つのトラック(すなわち、列次元)×RAIDグループ幅(すなわち、行次元)であり、その場合トラックの深さが、例えば各HDD上の「チャンク」(例えば、266kB)となる。とりわけ、テトリスI/Oトランザクションは、RAIDグループの複数のストライプ(すなわち、2以上の行)にわたる場合がある。ファイルシステム240はさらに、SSDアレイ340の高速ランダム読出し実施能力を利用して、選択されたデータをストリーミング形態(例えば、テトリスI/Oトランザクションに従って)でHDDアレイ350へマイグレーション、又は移動し、それによってHDDの能力を向上させる。HDDアレイ350への大半のアクセスについてシーケンシャル形態、及びストリーミング形態でのHDDアレイ350の動作を可能にすることによって、ハイブリッド媒体ストレージアーキテクチャ300は、従来のストレージシステムに比べて低速で安価なHDDを使用し、より広い帯域幅、及びより少ない待ち時間性能をクライアントアプリケーション112に提供する。
一実施形態において、ログ構造ファイルシステム240は、例えば4kBブロックを使用したブロックベースのフォーマット表現を有するメッセージベースのシステムであって、インデックスノード(「inode」)を使用して、例えばファイルのようなデータコンテナを表現する。本明細書に記載するように、ログ構造ファイルシステムは、オブジェクト記憶(例えば、ファイルブロック番号)から物理記憶(例えば、物理ボリュームブロック番号)への自由なマッピングを実施する。媒体の空き記憶空間に書込みを行うための小さなアロケーション(例えば、4kB)を可能にするために、マッピングの粒度は、例えば、ブロック単位(「細かい粒度」)とされる。ただし、当業者に分かるように、ハイブリッド媒体ストレージアーキテクチャは、記憶装置において実施される如何なる種類のオブジェクトに対しても適用できるはずであり、ブロック単位の配置が可能となる細かい粒度を得るために十分なだけの変換を実施する。
ファイルシステムはさらに、例えば種々のデータ構造を使用して、ヒューリスティック及びポリシーについての情報を記憶すると共に、アレイの記憶装置上でのそのレイアウトを表すメタデータを記憶する。ファイルシステム240は、SSDアレイ340のSSD330及びHDDアレイ350のHDD360のような記憶装置に記憶された情報に対するファイル単位のアクセスにおいて使用されるセマンティック機能を備える。さらに、ファイルシステムは、記憶された情報に対するブロック単位のアクセスにおいて使用されるボリューム管理機能を備える。すなわち、ファイルシステム240は、ファイルシステムセマンティック機能を有する他に、(i)記憶装置のアグレゲーション機能、(ii)記憶装置の記憶帯域幅のアグレゲーション機能、及び(iii)ミラーリング及び/又はパリティ(RAID)のような信頼性保証機能のような機能も備えている。
後者に関し、ログ構造ファイルシステム240はさらに、例えば媒体記憶層220のパリティ保護(RAID)モジュール320と協働し、SSDアレイ340及びHDDアレイ350に対する種々のストレージオペレーションを制御する。SSDアレイ340の場合、例えばアレイのSSDに関連する信頼性制御の階層が存在する。例えば、各SSD330は、ページ単位で誤り訂正符号(ECC)を有する場合がある。それによって、フラッシュブロック内のページについて、低レベルの信頼性制御が可能となる。複数のSSDの中でフラッシュブロックを実施し、デバイスの幾つかが故障したときにエラーから復旧できるようにした場合、より高レベルの信頼性制御がさらに実現される。
この高レベルの信頼性制御は、例えば、RAIDモジュール320により構成されるRAIDレベル実施形態のような冗長構成として実施される場合がある。情報の記憶は、1以上のSSD/HDDを含む1以上のストレージボリュームとして実施されることが好ましく、SSD/HDDは互いに協働し、ボリューム(複数の場合もあり)上のボリュームブロック番号空間の全体的論理構成を規定する。その際、RAIDモジュール320は、ボリューム内のSSD/HDDを1以上のパリティグループ(例えば、RAIDグループ)として編成し、パリティ計算、及び各グループのSSD/HDDへのデータの配置に使用されるトポロジー情報を管理する。RAIDモジュールはさらに、それらのRAIDグループを例えば、RAID1、4、5、及び/又は6実施形態のような1以上のRAID実施形態に従って構成し、それによって、例えば1以上のSSD/HDDに対して故障のようなイベントが発生したときのSSD/HDDに対する保護を提供する。すなわち、RAID実施形態は、RAIDグループ内の所与の数のSSD/HDDにわたる「ストライプ状」のデータ書込み、及び当該ストライプ化されたデータに関する例えばパリティのような冗長情報の適切な記憶によって、データ記憶の信頼性/完全性を向上させる。
SSDアレイ340の場合、RAIDモジュール320は例えば、複数のSSDを1以上のパリティグループ(例えば、RAIDグループ)として編成し、パリティ計算、及び各グループのデバイス上でのデータ配置に使用されるトポロジー情報を管理する。その目的のために、RAIDモジュールは、データをRAIDグループの中に、ブロックのストライプとして編成する。その際、1つのストライプは、種々のSSDにわたって対応する位置に配置された複数のフラッシュページを含む場合がある。すなわち、1つのストライプは、RAIDグループ全体にわたって、SSD0上の第1のページ0、及びSSD1上の第2のページ0等に分布する場合があり、パリティは、デバイスの種々のページに分散される場合がある。なお、他のRAIDグループ構成も可能であり、例えばファイル内の所定数のブロックごとに(例えば、8ブロックごとに)1つのブロックをパリティブロックにするような論理RAID実施形態を使用することも可能である。
ボリュームは、仮想ボリュームとして実施され、例えばSSDアレイ340、及びHDDアレイ350の、1以上の集合体としてさらに編成される場合がある。集合体及び仮想ボリュームについては、「Extension of Write Anywhere File System Layout」と題するジョン・K・エドワード他によるネットワーク・アプライアンス・インコーポレイテッドに譲渡された米国特許第7,409,494号に記載されており、この米国特許は、参照により本明細書に援用される。簡単に言えば、集合体は、RAIDグループのようなSSD/HDDの1以上のグループからなり、グループは、ファイルシステムによって、ストレージシステムの1以上の仮想ボリューム(vvol)に分配される。各vvolは、ファイルシステムレイアウト実施形態の種々の技術を利用しながらも、「ポイント・イン・タイム」データイメージ(すなわち、スナップショット)オペレーション機能のような独自の論理的性質を有している。集合体は、独自の物理ボリュームブロック番号(pvbn)空間を有し、そのpvbn空間の中に、ブロックアロケーション構造のようなメタデータを保持する。各vvolは、独自の仮想ボリュームブロック番号(vvbn)空間を有し、そのvvbn空間の中に、ブロックアロケーション構造のようなメタデータを保持する。
各vvolには、そのvvolにより使用中のあらゆるブロックを保持する集合内の「隠し」(ユーザにとってアクセス不可な)ファイルである、コンテナファイルが関連付けられる。ファイルシステム240は、vvolに対する処理を実施するとき、RAIDモジュール320から提供されるトポロジー情報を使用して、vvbn(例えば、vvbn X)をSSD/HDD上のdbn位置に変換する。vvbnは、コンテナファイル内のファイルブロック番号(fbn)位置を識別し、コンテナファイル内のfbn Xの位置において、vvol内のvvbn Xを有するブロックを発見できるようにする。ファイルシステムは、コンテナファイルの間接ブロックを使用し、そのfbnを集合体内の物理vbn(pvbn)位置に変換する。その後、このブロックは、RAIDモジュール320により供給されるトポロジー情報を使用して、記憶装置から読み出すことができる。
一実施形態において、RAIDモジュール320は、データの書込みアロケーション、すなわち、SSDアレイ340、及びHDDアレイ350のvvbn記憶空間における空き空間、すなわち未割当て空間の探索を実施するときに、ファイルシステム240によって使用されるトポロジー情報をエキスポートする。トポロジー情報は例えば、pvbnとdbnの間のマッピングを含む。HDDアレイ350の場合、HDDは、ログ構造ファイルシステムの第2のデータレイアウトフォーマットに従って、関連(ファイル)データの領域に分割される。その後ファイルシステムは、後で詳しく説明するように、例えばデータが存在するHDD上のブロック位置を指定することによって、HDDの種々の領域内へのデータの配置を実施する場合がある。
具体的には、ログ構造ファイルシステム240の第2のレイアウトフォーマットは、関連ファイルデータをHDD上の種々の領域に配置する。各領域は、例えば連続したHDDブロックによって表される所定量のHDD記憶空間を有する。書込みアロケーションを実施する際にログ構造ファイルシステムによって使用される構造を考慮したブロックアロケーションは、第2のデータレイアウトフォーマットでデータをアレイ350に書き込むことを可能にするサイズを有する。例えば、少なくとも2つの領域は、1セットの関連ファイルデータ(ファイルA、ファイルAのスナップショット、ファイルAの重複除外など)を保持するための連続した範囲のfbnを有する。換言すれば、これらの領域は、HDD360上の比較的連続的なfbnの量によって特徴付けられる場合がある。この1セットの関連ファイルデータのいずれか一つに対してシーケンシャル読出し処理が実施される場合、そのデータのかなりの部分は、両方の領域から読み出される場合がある。
SSDアレイ340の場合、書込みアロケーションを実施する際にログ構造ファイルシステムによって使用される構造を考慮したブロックアロケーションは、例えば連続的順序のような第1のデータレイアウトフォーマットでデータをアレイに書き込むことを可能にするサイズを有する。その目的のために、ファイルシステム240は、例えば書込みアロケーションを実施し、SSDコントローラ335と協働する場合がある。SSDコントローラ335は、(例えば、256kB)フラッシュブロックに対する連続的書込みを確保する働きをする。フラッシュブロックが消去され、「開放された」ものとして指定された後(例えば、空きvvbnとして)、データは、フラッシュブロックにおける64個の4kBページ(例えば、ページ0からページ63)を通して(CPの書込み処理に従って)順番に書き込まれ、その時点で、次の空きフラッシュブロックが取得され、ページ0からページ63まで順番に書込み処理が行われる場合がある。ファイルシステム240によって使用される例えば空きブロックマップのような会計構造は、例えばセグメントクリーニングプロセスによって管理され、一実施形態において、例えばブロック管理に関連して、SSDコントローラとの間で情報をやり取りする場合がある。
例えば、セグメントクリーニングは、フラッシュブロックに間接的にマッピングされた1以上の選択領域を開放するために実施される場合がある。有効データを有するそのような選択領域のページ(「有効ページ」)は、別の領域へ移動され、選択領域は、後続の再使用に備えて開放される。セグメントクリーニングは、断片化された空き空間を統合し、例えば基礎フラッシュブロックに対する、書込み能率を向上させる。このように、ファイルシステム240の動作を活用することにより、SSDアレイ340に対する例えばセグメントクリーニングのようなwrite anywhere機能を得ることができる。例えば、セグメントクリーニングプロセスは、ファイルシステム内で書込みアロケーターと共に動作するスキャナとして実施され、SSDを「クリーニング」(消去)するときに、バッファ及びinodeツリーを走査する(調べる)場合がある。
変換マッピング
上記のように、変換マッピングは、ハイブリッド媒体ストレージアーキテクチャ300の各SSDコントローラ335に関連する変換論理回路336によって実施される。ログ構造ファイルシステム240は、SSDアレイ340に対する書込みアロケーションを実施し、RAIDモジュール320と協働し、アレイに対するストレージオペレーションを制御する。従って、書込みデータをアレイ340上のどこに置くべきかを判断するために、vvbnとdbnの間のマッピングが必要となる。その後、変換マッピングは、dbnを基礎SSDアレイのフラッシュページアドレスに変換(すなわち、マッピング)するように構成される。SSDのユーザに提示されるdbnと、SSDアレイとの間に、直接的なマッピングではなく、そのような変換マッピングを作成する理由は、例えば、ウェアレベリング、及びランダム書込み処理能力の向上などである。
ウェアレベリング
大まかに言えば、ウェアレベリングは、デバイスの度重なる消去及び書込みに起因するSSD330の故障を減らすために行われる。その目的のために、デューティサイクルは、例えば、1粒度の消去ブロックごとに計算される。すなわち、ある消去ブロックが何度も消去され、再書込みされた場合、SSD全体としては故障していなくても、各消去ブロックは故障する場合がある。本明細書において、ウェアレベリングとは、データがSSDアレイ340に書き込まれる場所を、特に各SSDに書き込まれる場所を、絶え間なく移動させることを意味する。仮に、SSDアレイの一部の場所が、他の部分に比べて激しく使用されるようになった場合、ウェアレベリングは、頻繁にアクセスされるデータをそれらの場所に書き込むことを禁止し、頻繁にアクセスされないデータをそれらの場所に移動させる。そして、頻繁にアクセスされるデータは、アレイの他の場所へ書き込まれる場合がある。
従って、及び一実施形態において、SSDコントローラ335の変換論理回路(例えば、SSDの内部で実施され、又はSSDアレイ上にソフトウェアとして実施される)は、消去ブロックマッピング粒度でウェアレベリングを実施するように構成される。一単位の消去ブロックが書込み処理によってアクセスされる度に、変換論理回路は、その消去ブロックをSSDアレイ340内の新たな位置に書込み(移動させ)、後続の書込み処理による再使用に備えて、そのブロックの以前の位置を利用可能にする。消去ブロックの磨耗に従ってSSDの記憶能力は失われるので、ウェアレベリングは、例えば、各置換可能ユニット(SSD)の中で行われる。ウェアレベリングは、SSDよりも高いレベルで実施される場合もあるが、そのようなウェアレベリングは、SSDの単なる種々の部分に対して実施されないことが重要である。なぜなら、そのようなウェアレベリングは、別の時点で別の場所を磨耗させることがあるからである。要するに、デバイスの種々のブロックが、多かれ少なかれ同時に磨耗することを確保するためには、ウェアレベリングは、SSD全体にわたるものであることが望ましい。
ランダム書込み処理能力
SSDの第1のブロック内の特定の幾つかのページに対する書込み処理に応答し、(i)第2のブロックを消去し、(ii)ページ上の第1のブロックの最初にある古いデータを第2のブロックへ移動させ、(iii)第2のブロック内の移動されたデータの後ろの連続した位置に新たなデータを書込み、(iv)古いデータの残りを第1のブロックから第2のブロックへ移動させることからなる、従来のウェアレベリングを仮定する。さらに、新たなデータは、4kBの長さ(1ページ)であるものと仮定する。この書込み処理を実施するためには、新たに書き込まれるデータに比べてはるかに多くのデータ(例えば、256kB)が移動され、それによって、処理の能率は制限され、SSDの書込み処理能力も制限される。例えば、SSDが一秒あたり100MBの処理能力を備え、当該SSDに対して小さなランダムの4kB書込み処理が実施される場合、各ランダム書込み処理についてブロック全体をコピーしなければならないとすれば、SSDの書込み処理能力は、一秒当たり数メガバイトに制限される。
ハイブリッド媒体ストレージアーキテクチャ300の変換マッピングをもっと能率的なものにするには、比較的大量の空き空間を有するブロックを探し出し、それらのブロックから不要なデータを消去し、ランダム書込み処理能力の向上を達成するログ構造技術が必要となる。従って、SSDコントローラ335の変換論理回路336は、消去ブロックの粒度(例えば、256kB)でのマッピングを行う代わりに、もっと小さな(「細かい」)粒度(例えば、4kB)でのマッピングを行う。例えば、新たなランダム書込みデータがSSDに到着すると、変換論理回路は、比較的大量の空き空間を有する消去ブロックを探し出し、その消去ブロックから他のブロック(同じオフセットにあるもの、又はそのブロックの最初)へ、全ての有効データをコピーする。その後、SSDコントローラ335は、全ての新たなデータ(dbnであるか否かに関わらず)をその消去ブロックに書き込む。とりわけ、変換論理回路は、データ(及び、その位置)の内部マッピングを管理する。すなわち、変換論理回路336は、間接ブロックの対応dbnを調べ、対応dbnをSSDアレイアドレスに変換し、さらに、期待ランダム書込み処理サイズ(例えば、4kB)と実質的に同じ粒度で変換を行う。
ログ構造レイアウト機能
本明細書に記載するハイブリッド媒体ストレージアーキテクチャは、頻繁にアクセスされる(「人気のある」)データを(フラッシュデバイス又はSSDのような)比較的小さく比較的高速な記憶装置に置き、頻繁にはアクセスされない(「人気のない」)データを(SATAディスク又はHDDのような)比較的大きく比較的低速な記憶装置に置くように構成される。その目的のために、特定のデータは、ログ構造レイアウト機能を使用して、SDD/HDDハイブリッド記憶媒体上の特定の位置に、細かい粒度で自動的に配置される場合がある。本明細書において、ログ構造レイアウト機能とは、シーケンシャルアクセスを受けるデバイスにとって能率的なパターンでデータを書込むことを意味する。具体的には、ログ構造技術は、「時間局所性」を有する(すなわち、互いに近接した時間に実行され、例えばCPにおいて実行される)種々の書込み処理に関連するデータを、当該データがたとえクライアントから見たときにアドレス空間において「空間局所性」を有していない場合でも、変換を利用して、媒体上の「空間局所性」を有するレイアウトに変換する(例えば、テトリスI/Oトランザクションの結果として)。すなわち、クライアントは、そのデータをランダム化すべきものと考える。ただし、データは、ストレージシステムにおいて非常に近接した時間に受信され、又はストレージシステムによって一緒にデステージされたものであるから、より優れた書込み処理能力を装置から引き出すために、データは、装置上の近接する(すなわち、空間局所性を有する)永久記憶媒体に書き込まれる。
ログ構造機能を採用することによって、ハイブリッド媒体ストレージアーキテクチャは、無関係(ランダム)な書込み処理に関連するデータを、媒体からの書込み処理能力を引き出すために有効パターンを成すように媒体にフラッシュする(書き込む)ことができる(すなわち、ログ構造機能は、媒体への能率的な記憶を行うために、ランダム書込み処理をシーケンシャル書込み処理に変換する)。HDDの場合、可能な限り少ない回数のディスクの回転で、十分な量のデータが、ディスク上の種々の位置(例えば、RAIDグループにおける各トラック)に書き込まれる(例えば、そのグループの種々のストライプにわたるデータ処理のコストを償却するために)。SSDの場合、データを一斉に書き込むことは余り適当ではなく、データは、一回の消去ブロック書込みサイクルでデータを書き込むことが可能な特定のシーケンス、すなわち順序で書き込まれることが望ましい。
ハイブリッド媒体ストレージアーキテクチャは、ログ構造ファイルシステムを使用して、SSD上のデータに対するシーケンシャル読出し処理、及びHDD上のデータに対するシーケンシャル読出し処理を含む読出し処理能力の問題に対処する。SSDは、書込み能率に関しては、ディスクに類似する特性を有するが、読出し処理に関しては、ディスクに類似する特性を有しない(すなわち、SSDは、能率を高めるためには、大量のデータを一箇所に書き込まなければならない)。すなわち、フラッシュメモリのようなSSDは、種々のページのランダム読出し処理の際に、同ページに対するシーケンシャル読出し処理と同じ処理能力を発揮する。また、読出し処理の場合、SSDは、実質的にフラッシュページ粒度でランダムアクセスされ、書込み処理の場合、SSDは、フラッシュブロック粒度でシーケンシャルアクセスされる。従って、SSDは一般に、良好な書込み処理能力を達成するためには局所性を必要とするが、良好な読出し処理能力を達成するために局所性を必要とすることはない。
データのマイグレーション
本発明の一態様によれば、ハイブリッド媒体ストレージアーキテクチャは、ストレージシステムのハイブリッド記憶媒体間におけるvvbnのマイグレーションを利用することができる。例えば、ログ構造ファイルシステム240が、ランダム書込み処理作業負荷サービスを提供し、最初に、関連ランダムデータをSSDアレイ340のSSD330に置くものと仮定する。このとき、HDDアレイ350のHDD360上のランダムデータに対して割当てられた記憶空間は、何も無い場合がある。その後、そのランダムデータが「人気の無い」ものになると(すなわち、ある程度の時間にわたってアクセスされないと)、他の「人気の有る」データをSSDに記憶することが望ましくなる。なお、「人気の無い」又は「人気のある」といったデータの分類は、例えば、そのデータが最後にアクセスされたときを示すポリシーによって決定される。もし、人気の無いデータを収容することが可能な以前に割当てられた記憶空間がHDD上に無い場合、ログ構造ファイルシステムは、そのような空間を割当て、例えばHDDに関連するデータ構造を使用して、データをマイグレーション(移動)する。
具体的には、ファイルシステム240は、どのブロックをSSDアレイ340のSSDから移動させるべきか、及びどのパターンを使用して、それらのブロックをHDDアレイのHDDに書き込むべきかを決定する。一実施形態において、関連ファイルデータを有するブロックは、HDD上の連続した範囲のfbnを有する少なくとも2つの領域内に配置される。ログ構造ファイルシステムは、SSD上の人気の無くなったブロックを識別すると、まずそのブロックの識別情報を決定し(すなわち、そのブロックが、特定fbn範囲内の特定ファイルに関連するものと判断し)、その後、そのブロックに密接に関連する他のブロックのうち、同じく人気が無くなったものであって、かつ、例えばテトリスI/Oトランザクションにおいて一緒にHDDへ移動させてもよいものが有るか否かを、(すなわち、ある領域内におけるブロックの編成について)判断する。とりわけ、これらの判断は、HDDのdbn空間に基いて行われるのではなく、ファイルシステムのfbn空間に基いて行われる。SSDからHDDへブロックを移動させるためには、vvbnとpvbnの間のブロックのマッピングを変更する。ただし、どのブロックを移動させるかの判断は、ブロックのpvbnに基いて行われるのではなく、ブロックのfbn、及びブロックを共有すること可能なファイル間の関係に基いて行われる。
SSDからHDDへデータを移動すべきことが決定されると、ファイルシステム240は、例えば、自身のコンシステンシー・モデル・イベント(すなわち、CP)を使用して、データを移動させる。バックグラウンドプロセスは、SSD上のデータを検査し、人気が無いこと(すなわち、ある程度の時間にわたってアクセスされていないこと)又は何らかの他のポリシーを理由として、どのデータを移動すべきかに関する判断を実施する。例えば、識別された人気の無いデータは、SSDから読み出され、メモリ124にロードされ、人気の無いデータをHDD上の適当な領域へ送るために、CPが実施される。この適当な領域は、例えば後で詳しく説明するスナップショットの場合と同様に、fbnを含むタグ、及び同じブロックを共有することが可能な異なるファイル間の関係を使用して、決定される場合がある。ログ構造ファイルシステムは、例えば同じデータ構造を使用して、人気の無いデータをHDDに書込み、同じデータ構造を使用して、SSDに記憶された関連ブロックを探索し、識別する。それらのデータ構造は、領域内のブロックの位置を示すvvbn、及びpvbnを含む。とりわけ、データブロックのvvbnとpvbnの両方が、fbn間接ブロックレベルで記憶される。
SSDアレイ340のSSDにおいて、1以上の人気の無いデータブロックが識別され、不要なデータが除去された後、HDDアレイ350のHDDへ移動されるものと仮定する。ただし、細かく見れば、開放されたSSDブロック位置が再使用されるまで、データは、両方の位置(HDDとSSD)に存在する。メタデータに記憶されるpvbnは、SSDブロック位置を依然として参照していることがあるので、読出し処理は、このSSDpvbnを読出し、所望のデータが依然としてそこに有ることを確かめることによって、「キャッシュヒット」からの有効な恩恵を受けることができる。重要な点は、ファイルメタデータに記憶されるpvbnは、パフォーマンスヒントであるのに対し、vvbnは、pvbnが所望のデータを既に参照していないときにデータを探すために使用される信頼出来る情報である点である。コンテナファイルメタデータは、vvbnを信頼出来る情報にマッピングすることに留意すべきである。
換言すれば、SSD上のあるpvbnにあるデータブロックから不要なデータを除去し、そのデータブロックをHDD上の別のpvbnへ移動させるとき、ファイルについての間接ブロックを変更し、HDD上のpvbnを更新するまでには、特定の時間を要する。その間、間接ブロックは、依然として、そのデータブロックがSSDにあることを示している(pvbnによって)。従って、その間にファイルがアクセスされた場合、ファイルシステムは、たとえそのデータブロックの「正式」な位置がHDD上であったとしても、そのデータブロックをSSDから読み出すことが出来る。ファイルシステムは、アーキテクチャのこの態様を利用して、ハイブリッド媒体ストレージシステムの種々の部分に、キャッシュに類似した動作をさせることができる。
例えば、ハイブリッド媒体ストレージアーキテクチャは、ランダム書込み処理を最適化するために、SSD上に、ある量の空き空間を保持する場合がある。ただし、SSD上のその空き空間のブロック位置をファイルシステムが上書きするまでは、それらのブロック位置にある古いデータは、依然として有効であり、アクセスすることができる。ハイブリッド媒体ストレージアーキテクチャは、SSD上のこの空き記憶空間を使用して、ランダム書込み処理能力の向上を達成することができる。従って、ファイルシステムは、アーキテクチャのこの性質を利用して、HDDへのアクセスに伴う待ち時間(すなわち、HDDに対する1以上のI/O処理)を回避する。
別の例として、スナップショットが、ログ構造ファイルシステム240によって生成され、SSDアレイ340のSSDに記憶されるものと仮定する。スナップショットの一例は、2002年6月27日に発行された「Instant Snapshot」と題するブレイク・ルイス他による米国特許出願公開第US2002/0083037A1号に記載されており、この出願は、参照により本明細書に援用される。データについてのfbnとvvbnの間のマッピングは、いったんスナップショットとして撮影された後は、不変になる。ただし、vvbnとpvbnの間のマッピングは、変更することができ、ハイブリッド媒体ストレージアーキテクチャは、この変更を利用して、スナップショットブロックの移動の抑制という従来技術の制限を克服することができる。すなわち、あるブロックがある位置にいったん記憶され、スナップショット化された後、その内容を上書きすることは出来ないので、そのスナップショットブロックは、以前に移動されたものではない。ただし、vvolに関連するvvbnとpvbnの間の変換は、スナップショットによって変更することが出来る。換言すれば、スナップショットは、fbnとvvbnの間の変換は不変にするが、vvbnとpvbnの間の変換は変更可能な状態のままにする。この変換の変更可能レベルによって、例えばSSDにある古いスナップショットデータをHDDへ移動させる能力が得られ、それによって、新たなデータを記憶するために高価なSSD上の空間を空けることができ、新たなデータは、フラッシュ記憶装置の高いアクセス特性(例えば、1ギガバイト当たりのI/O)から恩恵を受けることができる。
ハイブリッド媒体ストレージシステムの動作
図4は、本発明によるストレージシステムのハイブリッド媒体ストレージアーキテクチャの例示的動作手順を示すフロー図である。手順400は、ステップ402から開始され、ステップ404へ進み、そこで、クライアントによって、データコンテナ(例えば、ファイル)に対するデータアクセス要求、例えば、書込み命令が発行され、ストレージシステムにおいて受信される。ステップ406において、ログ構造ファイルシステムは、例えば書込み命令に関連する書込みデータを有するファイルに変更を加えることによって、書込み命令を処理する。
ステップ408において、ログ構造ファイルシステムは、書込み命令を検査し、例えばランダム書込みデータ、又は大きなシーケンシャル書込みストリームデータといったデータのタイプを識別し、そのデータを記憶する媒体を決定する。ステップ410において、ログ構造ファイルシステムは、ポリシー制御を実施し、そのデータを最初に比較的高速で高価なSSDに(又は、比較的低速で安価なHDDに直接)記憶すべきか否かを判断する(データのタイプに基いて)。なお、ファイルシステムは、ランダムアクセス処理に関連するデータが、最初にSSDに記憶されるようにするためのヒューリスティックをさらに実施する場合がある。例えば、SSDに記憶するのにふさわしい候補となるデータタイプは、頻繁にアクセスされる性質と、ランダムにアクセスされる性質との両方を有する。もしデータが、ランダムにアクセスされないものであるか、又は人気の無いものである場合、そのデータは、HDDに記憶するのにふさわしい候補となる。なぜなら、そのデータに対するその後のアクセスは、SSDの高い処理能力特性を必要としないからである。例えば、ヒューリスティックは、大きなシーケンシャル書込みストリーム処理に関連するデータが、将来的にシーケンシャルアクセス(読出し、又は書込み)されるであろうことを示す場合があり、その場合、データはHDDに直接記憶される。
もし、データをHDDに直接記憶すべき旨の判断がなされた場合、ログ構造ファイルシステムは、ステップ412において、例えばシステムのコンシステンシー・モデル・イベント(CP)の際に、そのデータをHDDに書き込む。そして、手順はステップ429において終了する。一方、データをSSDに記憶すべき旨の判断がなされた場合、ログ構造ファイルシステムは、ステップ414において、CPの際に、そのデータをSSDに書き込む。その後、ステップ416において、SSDに記憶されたデータのタイプを分析し、ステップ418において、選択されたデータをSSDからHDDへ移動すべき旨の判断がなされる。ステップ420において、選択されたデータは、メモリに取り出され(読み出され)、ステップ422において、ファイルシステムは、CPの際に、そのデータをHDDの1以上の領域に記憶する(書き込む)。とりわけ、ファイルシステムは、本明細書に記載するハイブリッド媒体ストレージアーキテクチャのログ構造技術に従って、データのブロック粒状配置の概念を両方の媒体上に保持する。そして、手順はステップ429において終了する。
ストレージシステムのハイブリッド記憶媒体を制御するように構成されたログ構造ファイルシステムを有するハイブリッド媒体ストレージアーキテクチャの例示的実施形態について図示説明したが、本発明の思想及び範囲の中で、種々の他の変形及び修正を施すことも可能であるものと考えられる。例えば、一又は複数の実施形態において、アーキテクチャは、比較的大きなブロックサイズ/粒度を目的とする書込み処理を実施するように構成されたログ構造レイアウト機能を実施する場合があり、それによって、本明細書に記載するものより「低い能力」しか有しないSSDからも、向上されたパフォーマンスを引き出すことができる。例えば、ログ構造書込みアロケーションを使用することにより、アーキテクチャは、大きな書込み処理サイズの場合に十分な空き空間を有するフラッシュ媒体の種々の領域を選択する書込みアロケーション方法を使用しながらも、空きブロックをきめ細かく追跡することができる。
さらに、本明細書に記載する例示的ストレージシステム構成は、「RAID集合体」構成においてウェアレベリングを実施するための理想的な目的達成手段ではない場合もある。すなわち、本明細書に開示する例示的実施形態は、RAIDモジュールを、一群のRAIDグループにつき1つのログ構造ファイルシステムのみを提供するものとして説明しているが、単一グループのHDD/SSDにわたる複数のファイルシステム及び複数のLUNのロードバランスを取ることが望ましい場合もある。図5は、本発明と共に有利に使用されるRAID集合体を示す略ブロック図である。RAID集合体500は、例えば、複数の(例えば、ログ構造)ファイルシステム520を提供する機能を備えた設備である。すなわち、RAID集合体は、複数の基礎デバイス(SSD540、及び/又はHDD550)を集結する機能を備えた従来のRAIDコントローラとして動作し、基礎デバイスの記憶空間は、LUNのような複数のコンテナとしてファイルシステムに提示される。とりわけ、各置換ユニット(SSD)が均等に磨耗するようにするために、(各ファイルシステム520における)ログ構造書込みアロケーションとは別に、(各SSD540において)ウェアレベリングが実施される。従って、もし1以上のSSDが、複数のファイルシステム間によって共有される場合、ファイルシステムレベルでウェアレベリングを実施することは適当でない。ファイルシステムレベルでウェアレベリングを実施することも可能ではあるが、システムにファイルシステムが1つしか存在しない場合、そのような構成では、アーキテクチャの規模を複数のファイルシステムへ拡大することは出来ないであろう。
上記の説明は、本発明の特定の実施形態に関するものである。しかしながら、当然ながら、記載した実施形態の一部又は全てを維持しつつも、記載した実施形態に対して他に種々の変形及び変更を施すことが可能である。例えば、当然ながら、本明細書に記載する構成要素、及び/又は構造は、コンピュータ上で実行されるプログラム命令を含むコンピュータ読取可能媒体としても、ハードウェアとしても、ファームウェアとして、あるいはそれらの組み合わせとしても実施することができる。従って、本明細書の説明は、単なる例として捉えるべきものであり、本発明の範囲を何ら制限するものではない。従って、添付の特許請求の範囲の目的は、そうした変形や変更もすべて、本発明の真の思想及び範囲に含めることにある。

Claims (6)

  1. 固体デバイス(SSD)及びハードディスクドライブ(HDD)を含むハイブリッド記憶媒体として編成され、互いに協働し、ストレージシステム(120)の全体的記憶空間を提供する複数の記憶媒体(140,150)と、
    前記SSD(330)のための第1のデータレイアウトフォーマット及び前記HDD(360)のための第2のデータレイアウトフォーマットを実施するログ構造ファイルシステム(240)であって、前記ハイブリッド記憶媒体の複数の記憶空間位置の間におけるデータの初期配置、前記SSD上のSSD位置から前記HDD上のHDD位置への選択されたデータのマイグレーション、及び前記ハイブリッド記憶媒体の空き記憶空間位置の書込みアロケーションを実施することにより、前記ハイブリッド記憶媒体を制御するように構成されたログ構造ファイルシステム(240)と
    を備え、前記SSD(330)上の前記SSD位置から前記HDD(360)上の前記HDD位置への前記選択されたデータのマイグレーションは、
    仮想ボリュームブロック番号(VVBN)から物理ブロック番号(PVBN)へのマッピングを更新して、前記選択されたデータがマイグレートされたことを示し、
    前記マイグレートされた選択されたデータに関連する1以上の間接ブロックが前記SSD位置についてのPBVNをもはや参照しなくなり、前記SSD位置にある前記選択されたデータが新たなデータで上書きされるまで、読み出し処理によって、前記SSD位置から前記選択されたデータをアクセスし、
    前記SSDに記憶された関連ファイルデータを識別し、
    前記関連ファイルデータをメモリ(124)に読み出し、
    連続した範囲のファイルブロック番号(fbn)を含む前記HDD(360)の領域を使用して、前記関連ファイルデータのブロックを前記第2のデータレイアウトフォーマットにしたがって前記HDDに記憶すること
    を含み、
    さらに、前記SSD上の空き記憶空間の任意の場所に自由にデータを配置することを可能にするために、前記SSD(330)について前記第1のデータレイアウトフォーマットにしたがってwrite anywhere技術が実施され、前記HDDへデータをストリーミングすることにより、前記HDDについて前記第2のデータレイアウトフォーマットにしたがってシーケンシャル読出し技術が実施される、ストレージシステム。
  2. 前記ログ構造ファイルシステムは、前記データを前記媒体の何れかに最初に書き込み、その後、手動施行を必要とせずに、前記媒体間においてブロック単位レベルで前記データを移動する前記ログ構造ファイルシステムによって処理されるデータのタイプに関連するヒューリスティック及びポリシーを実施するようにさらに構成され、
    前記ヒューリスティック及びポリシーは、
    ランダム書込み処理に関連するデータを前記SSDに最初に書き込み、
    1以上のシーケンシャル書込みストリームに関連するデータを前記HDDに最初に書き込むことを含む、請求項1に記載のストレージシステム。
  3. 前記HDDは、前記ログ構造ファイルシステムの前記第2のデータレイアウトフォーマットにしたがって関連データの領域に分割され、前記ログ構造ファイルシステムは、前記データが存在する前記HDD上のブロック位置を指定することによって前記HDDの前記領域内へのデータの配置を実施し、ログ構造技術を使用して、新たなデータを前記SSDの消去ブロックに書き込むことにより前記SSDのランダム書込み能力を向上させ、前記SSDと前記HDDの間においてブロック単位レベルでデータを移動させる、請求項1に記載のストレージシステム。
  4. 前記ログ構造ファイルシステムと協働し、前記SSD及び前記HDDに対するストレージオペレーションを制御するように構成されたRAIDモジュールであって、前記SSDを1以上のパリティグループとして編成し、パリティ計算、及び各グループのSSDへのデータの配置に使用されるトポロジー情報を管理するように構成されたRAIDモジュールと、
    各SSDのSSDコントローラであって、前記SSDのサイズをデバイスブロックの数に換算したものを含むジオメトリ情報を前記RAIDモジュールにエキスポートするように構成されたSSDコントローラと
    をさらに含み、
    前記デバイスブロックの番号(dbn)は、前記SSDコントローラが前記RAIDモジュールに提示する論理アドレスであり、前記SSDコントローラの変換論理回路による変換マッピングを受けて、前記SSDの物理アドレスに変換される、請求項1に記載のストレージシステム。
  5. 前記変換論理回路は、ウェアレベリングを実施し、前記SSDの度重なる消去及び書込みに起因する前記SSDの故障を減らすように構成され、書込み処理による消去ブロックのアクセスに応答し、前記変換論理回路は、前記消去ブロックをSSD上の新たな位置へ移動させ、前記消去ブロックの以前の位置を後続の書込み処理によって再使用出来るようにする、請求項4に記載のストレージシステム。
  6. 前記第1のデータレイアウトフォーマットは、前記SSDに記憶されたデータコンテナに対する書込みアクセスを提供し、前記SSDアレイに対するランダムデータアクセス処理のサービスを可能にし、前記第2のデータレイアウトフォーマットは、前記HDDに記憶された大きなデータコンテナに対する連続的な読出しアクセスを提供し、前記HDDアレイに記憶されたデータのサービスを可能にする、請求項1に記載のストレージシステム。
JP2013220051A 2008-02-12 2013-10-23 ハイブリッド媒体ストレージシステムアーキテクチャ Active JP5827662B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US2810708P 2008-02-12 2008-02-12
US61/028,107 2008-02-12

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2010546773A Division JP2011515727A (ja) 2008-02-12 2009-02-11 ハイブリッド媒体ストレージシステムアーキテクチャ

Publications (2)

Publication Number Publication Date
JP2014041645A JP2014041645A (ja) 2014-03-06
JP5827662B2 true JP5827662B2 (ja) 2015-12-02

Family

ID=40559966

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2010546773A Pending JP2011515727A (ja) 2008-02-12 2009-02-11 ハイブリッド媒体ストレージシステムアーキテクチャ
JP2013220051A Active JP5827662B2 (ja) 2008-02-12 2013-10-23 ハイブリッド媒体ストレージシステムアーキテクチャ

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2010546773A Pending JP2011515727A (ja) 2008-02-12 2009-02-11 ハイブリッド媒体ストレージシステムアーキテクチャ

Country Status (5)

Country Link
US (1) US9134917B2 (ja)
EP (1) EP2263145B1 (ja)
JP (2) JP2011515727A (ja)
CA (1) CA2714745A1 (ja)
WO (1) WO2009102425A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10747452B1 (en) 2019-02-21 2020-08-18 International Business Machines Corporation Hybrid log-structured array and allocated storage device

Families Citing this family (217)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011515727A (ja) 2008-02-12 2011-05-19 ネットアップ,インコーポレイテッド ハイブリッド媒体ストレージシステムアーキテクチャ
KR101636777B1 (ko) * 2008-08-08 2016-07-21 시게이트 테크놀로지 엘엘씨 하이브리드 저장 장치 및 그에 대한 논리 블록 어드레스 할당 방법
US8458287B2 (en) * 2009-07-31 2013-06-04 Microsoft Corporation Erasure coded storage aggregation in data centers
US20110035562A1 (en) * 2009-08-10 2011-02-10 Hewlett-Packard Development Company, L.P. Providing mirroring write data
US20120166749A1 (en) * 2009-09-08 2012-06-28 International Business Machines Corporation Data management in solid-state storage devices and tiered storage systems
JP2011060217A (ja) * 2009-09-14 2011-03-24 Toshiba Corp データ蓄積装置及びデータ書込み/読出し方法
US8381025B2 (en) * 2009-09-30 2013-02-19 Cleversafe, Inc. Method and apparatus for dispersed storage memory device selection
US8321521B1 (en) * 2011-06-24 2012-11-27 Limelight Networks, Inc. Write-cost optimization of CDN storage architecture
US8301860B2 (en) * 2009-10-16 2012-10-30 International Business Machines Corporation Identifying dynamically changing virtual storage devices
TW201115582A (en) * 2009-10-29 2011-05-01 Acer Inc Method for determining data correlation and data processing method for memory
JP5984118B2 (ja) 2009-12-04 2016-09-06 マーベル ワールド トレード リミテッド 格納デバイスの仮想化
US8407403B2 (en) * 2009-12-07 2013-03-26 Microsoft Corporation Extending SSD lifetime using hybrid storage
US8443167B1 (en) 2009-12-16 2013-05-14 Western Digital Technologies, Inc. Data storage device employing a run-length mapping table and a single address mapping table
US8438334B2 (en) * 2009-12-22 2013-05-07 International Business Machines Corporation Hybrid storage subsystem with mixed placement of file contents
CN102483684B (zh) 2009-12-24 2015-05-20 株式会社日立制作所 提供虚拟卷的存储系统
US20110161496A1 (en) * 2009-12-28 2011-06-30 Nicklin Jonathan C Implementation and management of internet accessible services using dynamically provisioned resources
US8762667B2 (en) 2010-02-01 2014-06-24 International Business Machines Corporation Optimization of data migration between storage mediums
US8671265B2 (en) 2010-03-05 2014-03-11 Solidfire, Inc. Distributed data storage system providing de-duplication of data using block identifiers
US8194340B1 (en) 2010-03-18 2012-06-05 Western Digital Technologies, Inc. Disk drive framing write data with in-line mapping data during write operations
US8699185B1 (en) 2012-12-10 2014-04-15 Western Digital Technologies, Inc. Disk drive defining guard bands to support zone sequentiality when butterfly writing shingled data tracks
US8856438B1 (en) 2011-12-09 2014-10-07 Western Digital Technologies, Inc. Disk drive with reduced-size translation table
US8687306B1 (en) 2010-03-22 2014-04-01 Western Digital Technologies, Inc. Systems and methods for improving sequential data rate performance using sorted data zones
US8693133B1 (en) 2010-03-22 2014-04-08 Western Digital Technologies, Inc. Systems and methods for improving sequential data rate performance using sorted data zones for butterfly format
US9330715B1 (en) 2010-03-22 2016-05-03 Western Digital Technologies, Inc. Mapping of shingled magnetic recording media
US8700949B2 (en) 2010-03-30 2014-04-15 International Business Machines Corporation Reliability scheme using hybrid SSD/HDD replication with log structured management
JP5585171B2 (ja) * 2010-03-31 2014-09-10 富士通株式会社 ストレージ制御装置、ストレージシステム及びストレージ制御方法
JP5070315B2 (ja) * 2010-04-28 2012-11-14 株式会社日立製作所 ストレージ装置及びストレージ装置におけるデータ階層管理方法
US20110283044A1 (en) * 2010-05-11 2011-11-17 Seagate Technology Llc Device and method for reliable data storage
US9311018B2 (en) 2010-05-11 2016-04-12 Taejin Info Tech Co., Ltd. Hybrid storage system for a multi-level RAID architecture
US8380949B2 (en) 2010-05-20 2013-02-19 International Business Machines Corporation Managing write operations to an extent of tracks migrated between storage devices
US8862817B2 (en) 2010-06-09 2014-10-14 Taejin Info Tech Co., Ltd. Switch-based hybrid storage system
US8904104B2 (en) 2010-06-09 2014-12-02 Taejin Info Tech Co., Ltd. Hybrid storage system with mid-plane
US8719675B1 (en) * 2010-06-16 2014-05-06 Google Inc. Orthogonal coding for data storage, access, and maintenance
JP5506568B2 (ja) * 2010-06-25 2014-05-28 キヤノン株式会社 データ処理装置、データ処理装置のデータ処理方法、プログラム
GB2485706A (en) * 2010-09-07 2012-05-23 Ibm Data management in solid-state storage devices and tiered storage systems
US8924663B2 (en) 2010-09-09 2014-12-30 Nec Corporation Storage system, computer-readable medium, and data management method having a duplicate storage elimination function
US8589626B2 (en) 2010-09-19 2013-11-19 Taejin Info Tech Co., Ltd. Hybrid RAID controller having multi PCI bus switching
US8954664B1 (en) 2010-10-01 2015-02-10 Western Digital Technologies, Inc. Writing metadata files on a disk
US8990494B2 (en) * 2010-11-01 2015-03-24 Taejin Info Tech Co., Ltd. Home storage system and method with various controllers
TWI417721B (zh) * 2010-11-26 2013-12-01 Etron Technology Inc 衰減熱資料之方法
US8862845B2 (en) 2010-12-06 2014-10-14 Xiotech Corporation Application profiling in a data storage array
US8782340B2 (en) 2010-12-06 2014-07-15 Xiotech Corporation Hot sheet upgrade facility
US8601313B1 (en) * 2010-12-13 2013-12-03 Western Digital Technologies, Inc. System and method for a data reliability scheme in a solid state memory
US8601311B2 (en) 2010-12-14 2013-12-03 Western Digital Technologies, Inc. System and method for using over-provisioned data capacity to maintain a data redundancy scheme in a solid state memory
US8615681B2 (en) * 2010-12-14 2013-12-24 Western Digital Technologies, Inc. System and method for maintaining a data redundancy scheme in a solid state memory in the event of a power loss
US8700950B1 (en) 2011-02-11 2014-04-15 Western Digital Technologies, Inc. System and method for data error recovery in a solid state subsystem
KR101795629B1 (ko) * 2011-02-15 2017-11-13 삼성전자주식회사 호스트에서 파일 시스템 관리 방법 및 상기 방법을 수행할 수 있는 장치들
US8700951B1 (en) 2011-03-09 2014-04-15 Western Digital Technologies, Inc. System and method for improving a data redundancy scheme in a solid state subsystem with additional metadata
US9229816B2 (en) * 2011-03-14 2016-01-05 Taejin Info Tech Co., Ltd. Hybrid system architecture for random access memory
US10210169B2 (en) 2011-03-31 2019-02-19 EMC IP Holding Company LLC System and method for verifying consistent points in file systems
US9996540B2 (en) * 2011-03-31 2018-06-12 EMC IP Holding Company LLC System and method for maintaining consistent points in file systems using a prime dependency list
US8832394B2 (en) 2011-03-31 2014-09-09 Emc Corporation System and method for maintaining consistent points in file systems
US20120265932A1 (en) * 2011-04-13 2012-10-18 Jibbe Mahmoud K Method to increase the flexibility of configuration and/or i/o performance on a drive array by creation of raid volume in a heterogeneous mode
TWI587136B (zh) * 2011-05-06 2017-06-11 創惟科技股份有限公司 快閃記憶體系統及其快閃記憶體無效資料頁資訊之管理方法與回收方法
KR20120129239A (ko) * 2011-05-19 2012-11-28 삼성전자주식회사 비휘발성 메모리 장치, 이의 동작 방법, 및 이를 포함하는 메모리 시스템
US8793429B1 (en) 2011-06-03 2014-07-29 Western Digital Technologies, Inc. Solid-state drive with reduced power up time
US9542326B1 (en) * 2011-06-14 2017-01-10 EMC IP Holding Company LLC Managing tiering in cache-based systems
US9330009B1 (en) * 2011-06-14 2016-05-03 Emc Corporation Managing data storage
WO2012172708A1 (ja) * 2011-06-14 2012-12-20 オムロン株式会社 バックアップ装置およびバックアップ装置の動作方法
US8930330B1 (en) 2011-06-27 2015-01-06 Amazon Technologies, Inc. Validation of log formats
US8756382B1 (en) 2011-06-30 2014-06-17 Western Digital Technologies, Inc. Method for file based shingled data storage utilizing multiple media types
US9069678B2 (en) 2011-07-26 2015-06-30 International Business Machines Corporation Adaptive record caching for solid state disks
CN102541466A (zh) * 2011-10-27 2012-07-04 忆正存储技术(武汉)有限公司 一种混合存储控制系统和方法
US8966172B2 (en) 2011-11-15 2015-02-24 Pavilion Data Systems, Inc. Processor agnostic data storage in a PCIE based shared storage enviroment
US9213493B1 (en) 2011-12-16 2015-12-15 Western Digital Technologies, Inc. Sorted serpentine mapping for storage drives
US8819367B1 (en) 2011-12-19 2014-08-26 Western Digital Technologies, Inc. Accelerated translation power recovery
US8612706B1 (en) 2011-12-21 2013-12-17 Western Digital Technologies, Inc. Metadata recovery in a disk drive
US8898419B2 (en) * 2011-12-22 2014-11-25 Netapp, Inc. System and method for balancing block allocation on data storage devices
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
CN106469029B (zh) * 2011-12-31 2019-07-23 华为数字技术(成都)有限公司 数据分层存储处理方法、装置和存储设备
US9652182B2 (en) 2012-01-31 2017-05-16 Pavilion Data Systems, Inc. Shareable virtual non-volatile storage device for a server
US20130238851A1 (en) * 2012-03-07 2013-09-12 Netapp, Inc. Hybrid storage aggregate block tracking
US20130242425A1 (en) * 2012-03-16 2013-09-19 Toshiba America Electronics Components, Inc. Write reordering in a hybrid disk drive
US9003068B2 (en) 2012-07-12 2015-04-07 International Business Machines Corporation Service channel for connecting a host computer to peripheral devices
JP6011153B2 (ja) * 2012-08-22 2016-10-19 富士通株式会社 ストレージシステム、ストレージ制御方法およびストレージ制御プログラム
WO2014045329A1 (en) * 2012-09-24 2014-03-27 Hitachi, Ltd. Storage system and storage control method
KR102002830B1 (ko) * 2012-09-28 2019-07-23 삼성전자 주식회사 세그먼트 클리닝 장치 및 방법
US8464095B1 (en) * 2012-11-15 2013-06-11 DSSD, Inc. Method and system for multi-dimensional raid reconstruction and defect avoidance
US10073851B2 (en) * 2013-01-08 2018-09-11 Apple Inc. Fast new file creation cache
US9158673B2 (en) 2013-01-22 2015-10-13 International Business Machines Corporation Use of differing granularity heat maps for caching and migration
US9229854B1 (en) 2013-01-28 2016-01-05 Radian Memory Systems, LLC Multi-array operation support and related devices, systems and software
US9652376B2 (en) 2013-01-28 2017-05-16 Radian Memory Systems, Inc. Cooperative flash memory control
US10445229B1 (en) 2013-01-28 2019-10-15 Radian Memory Systems, Inc. Memory controller with at least one address segment defined for which data is striped across flash memory dies, with a common address offset being used to obtain physical addresses for the data in each of the dies
US9081683B2 (en) * 2013-02-08 2015-07-14 Nexenta Systems, Inc. Elastic I/O processing workflows in heterogeneous volumes
KR101505263B1 (ko) * 2013-03-07 2015-03-24 포항공과대학교 산학협력단 데이터 중복 제거 방법 및 장치
US9489148B2 (en) 2013-03-13 2016-11-08 Seagate Technology Llc Selecting between non-volatile memory units having different minimum addressable data unit sizes
US9262313B2 (en) 2013-03-14 2016-02-16 Microsoft Technology Licensing, Llc Provisioning in heterogenic volume of multiple tiers
US9524300B2 (en) 2013-03-14 2016-12-20 Microsoft Technology Licensing, Llc Heterogenic volume generation and use system
US9116904B2 (en) * 2013-03-14 2015-08-25 Microsoft Technology Licensing, Llc File system operation on multi-tiered volume
US9141626B2 (en) 2013-03-14 2015-09-22 Microsoft Technology Licensing, Llc Volume having tiers of different storage traits
US9478271B2 (en) * 2013-03-14 2016-10-25 Seagate Technology Llc Nonvolatile memory data recovery after power failure
US20150378642A1 (en) * 2013-03-15 2015-12-31 Seagate Technology Llc File system back-up for multiple storage medium device
US9514007B2 (en) 2013-03-15 2016-12-06 Amazon Technologies, Inc. Database system with database engine and separate distributed storage service
US10180951B2 (en) 2013-03-15 2019-01-15 Amazon Technologies, Inc. Place snapshots
US11030055B2 (en) 2013-03-15 2021-06-08 Amazon Technologies, Inc. Fast crash recovery for distributed database systems
US9501501B2 (en) 2013-03-15 2016-11-22 Amazon Technologies, Inc. Log record management
US9672237B2 (en) 2013-03-15 2017-06-06 Amazon Technologies, Inc. System-wide checkpoint avoidance for distributed database systems
US9600365B2 (en) 2013-04-16 2017-03-21 Microsoft Technology Licensing, Llc Local erasure codes for data storage
US9971796B2 (en) 2013-04-25 2018-05-15 Amazon Technologies, Inc. Object storage using multiple dimensions of object information
US10747746B2 (en) 2013-04-30 2020-08-18 Amazon Technologies, Inc. Efficient read replicas
US9317213B1 (en) 2013-05-10 2016-04-19 Amazon Technologies, Inc. Efficient storage of variably-sized data objects in a data store
US9760596B2 (en) 2013-05-13 2017-09-12 Amazon Technologies, Inc. Transaction ordering
US9208032B1 (en) 2013-05-15 2015-12-08 Amazon Technologies, Inc. Managing contingency capacity of pooled resources in multiple availability zones
US10303564B1 (en) 2013-05-23 2019-05-28 Amazon Technologies, Inc. Reduced transaction I/O for log-structured storage systems
US9305056B1 (en) 2013-05-24 2016-04-05 Amazon Technologies, Inc. Results cache invalidation
US9047189B1 (en) 2013-05-28 2015-06-02 Amazon Technologies, Inc. Self-describing data blocks of a minimum atomic write size for a data store
US9697213B1 (en) * 2013-06-12 2017-07-04 EMC IP Holding Company LLC Cluster file system comprising object storage server tier and scale-out network attached storage tier
US9268502B2 (en) 2013-09-16 2016-02-23 Netapp, Inc. Dense tree volume metadata organization
US9460008B1 (en) 2013-09-20 2016-10-04 Amazon Technologies, Inc. Efficient garbage collection for a log-structured data store
US9280591B1 (en) 2013-09-20 2016-03-08 Amazon Technologies, Inc. Efficient replication of system transactions for read-only nodes of a distributed database
US9519664B1 (en) 2013-09-20 2016-12-13 Amazon Technologies, Inc. Index structure navigation using page versions for read-only nodes
US10216949B1 (en) 2013-09-20 2019-02-26 Amazon Technologies, Inc. Dynamic quorum membership changes
US9507843B1 (en) 2013-09-20 2016-11-29 Amazon Technologies, Inc. Efficient replication of distributed storage changes for read-only nodes of a distributed database
US20150089132A1 (en) * 2013-09-23 2015-03-26 Lsi Corporation Dynamic storage volume configuration based on input/output requests
HUE035390T2 (en) * 2013-09-24 2018-05-02 Huawei Tech Co Ltd Data migration process, data migration device and storage device
US9552242B1 (en) 2013-09-25 2017-01-24 Amazon Technologies, Inc. Log-structured distributed storage using a single log sequence number space
US9699017B1 (en) 2013-09-25 2017-07-04 Amazon Technologies, Inc. Dynamic utilization of bandwidth for a quorum-based distributed storage system
US10223184B1 (en) 2013-09-25 2019-03-05 Amazon Technologies, Inc. Individual write quorums for a log-structured distributed storage system
US9405783B2 (en) 2013-10-02 2016-08-02 Netapp, Inc. Extent hashing technique for distributed storage architecture
WO2015061965A1 (en) 2013-10-29 2015-05-07 Hua Zhong University Of Science Technology Mixed cache management
US9760480B1 (en) 2013-11-01 2017-09-12 Amazon Technologies, Inc. Enhanced logging using non-volatile system memory
US10387399B1 (en) 2013-11-01 2019-08-20 Amazon Technologies, Inc. Efficient database journaling using non-volatile system memory
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
US9880933B1 (en) 2013-11-20 2018-01-30 Amazon Technologies, Inc. Distributed in-memory buffer cache system using buffer cache nodes
US9213634B2 (en) * 2013-11-22 2015-12-15 Apple Inc. Efficient reuse of segments in nonoverwrite storage systems
US20160259568A1 (en) 2013-11-26 2016-09-08 Knut S. Grimsrud Method and apparatus for storing data
US9223843B1 (en) 2013-12-02 2015-12-29 Amazon Technologies, Inc. Optimized log storage for asynchronous log updates
US9170746B2 (en) 2014-01-07 2015-10-27 Netapp, Inc. Clustered raid assimilation management
US9529546B2 (en) 2014-01-08 2016-12-27 Netapp, Inc. Global in-line extent-based deduplication
US9251064B2 (en) 2014-01-08 2016-02-02 Netapp, Inc. NVRAM caching and logging in a storage system
US9448924B2 (en) 2014-01-08 2016-09-20 Netapp, Inc. Flash optimized, log-structured layer of a file system
US9152330B2 (en) 2014-01-09 2015-10-06 Netapp, Inc. NVRAM data organization using self-describing entities for predictable recovery after power-loss
US10013344B2 (en) 2014-01-14 2018-07-03 Avago Technologies General Ip (Singapore) Pte. Ltd. Enhanced SSD caching
US9454434B2 (en) 2014-01-17 2016-09-27 Netapp, Inc. File system driven raid rebuild technique
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
US9483349B2 (en) 2014-01-17 2016-11-01 Netapp, Inc. Clustered raid data organization
US20160342352A1 (en) * 2014-01-31 2016-11-24 Hewlett Packard Enterprise Development Lp Encoding data in a memory array
US20150244795A1 (en) 2014-02-21 2015-08-27 Solidfire, Inc. Data syncing in a distributed system
BR112016024412B1 (pt) 2014-04-22 2022-10-18 Huawei Technologies Co., Ltd Método de gerenciamento de arquivos e sistema de arquivos
US10303663B1 (en) 2014-06-12 2019-05-28 Amazon Technologies, Inc. Remote durable logging for journaling file systems
US8953269B1 (en) 2014-07-18 2015-02-10 Western Digital Technologies, Inc. Management of data objects in a data object zone
US9798728B2 (en) 2014-07-24 2017-10-24 Netapp, Inc. System performing data deduplication using a dense tree data structure
US9875055B1 (en) 2014-08-04 2018-01-23 Western Digital Technologies, Inc. Check-pointing of metadata
US9542118B1 (en) * 2014-09-09 2017-01-10 Radian Memory Systems, Inc. Expositive flash memory control
US9501359B2 (en) 2014-09-10 2016-11-22 Netapp, Inc. Reconstruction of dense tree volume metadata state across crash recovery
US9524103B2 (en) 2014-09-10 2016-12-20 Netapp, Inc. Technique for quantifying logical space trapped in an extent store
US20160077747A1 (en) * 2014-09-11 2016-03-17 Dell Products, Lp Efficient combination of storage devices for maintaining metadata
US9671960B2 (en) 2014-09-12 2017-06-06 Netapp, Inc. Rate matching technique for balancing segment cleaning and I/O workload
US10133511B2 (en) * 2014-09-12 2018-11-20 Netapp, Inc Optimized segment cleaning technique
US9565269B2 (en) 2014-11-04 2017-02-07 Pavilion Data Systems, Inc. Non-volatile memory express over ethernet
US9712619B2 (en) 2014-11-04 2017-07-18 Pavilion Data Systems, Inc. Virtual non-volatile memory express drive
US9836229B2 (en) 2014-11-18 2017-12-05 Netapp, Inc. N-way merge technique for updating volume metadata in a storage I/O stack
US9720601B2 (en) 2015-02-11 2017-08-01 Netapp, Inc. Load balancing technique for a storage array
JP2016167195A (ja) * 2015-03-10 2016-09-15 富士通株式会社 ストレージ装置、ストレージ制御プログラム、ストレージ制御方法、およびストレージシステム
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
WO2016181640A1 (ja) * 2015-05-11 2016-11-17 日本電気株式会社 計算装置、方法、及び、プログラム
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
US9740566B2 (en) 2015-07-31 2017-08-22 Netapp, Inc. Snapshot creation workflow
US10031670B2 (en) * 2015-09-04 2018-07-24 Toshiba Memory Corporation Control unit and control method for controlling writes and background operations of multiple semiconductor storage devices
US10120573B2 (en) 2015-09-14 2018-11-06 Microsoft Technology Licensing, Llc. Modular sequential writing of data to data storage devices
US9785525B2 (en) 2015-09-24 2017-10-10 Netapp, Inc. High availability failover manager
US20170097771A1 (en) 2015-10-01 2017-04-06 Netapp, Inc. Transaction log layout for efficient reclamation and recovery
US9836366B2 (en) 2015-10-27 2017-12-05 Netapp, Inc. Third vote consensus in a cluster using shared storage devices
US10235059B2 (en) 2015-12-01 2019-03-19 Netapp, Inc. Technique for maintaining consistent I/O processing throughput in a storage system
JP2017107321A (ja) 2015-12-08 2017-06-15 京セラドキュメントソリューションズ株式会社 電子機器およびデータアクセス制御プログラム
US10229009B2 (en) 2015-12-16 2019-03-12 Netapp, Inc. Optimized file system layout for distributed consensus protocol
US9959046B2 (en) * 2015-12-30 2018-05-01 Samsung Electronics Co., Ltd. Multi-streaming mechanism to optimize journal based data storage systems on SSD
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
WO2017130022A1 (en) 2016-01-26 2017-08-03 Telefonaktiebolaget Lm Ericsson (Publ) Method for adding storage devices to a data storage system with diagonally replicated data storage blocks
US10719403B2 (en) 2016-01-31 2020-07-21 Netapp Inc. Recovery support techniques for storage virtualization environments
US9959058B1 (en) * 2016-03-31 2018-05-01 EMC IP Holding Company LLC Utilizing flash optimized layouts which minimize wear of internal flash memory of solid state drives
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
US10942844B2 (en) 2016-06-10 2021-03-09 Apple Inc. Reserved memory in memory management system
US10353588B1 (en) * 2016-06-30 2019-07-16 EMC IP Holding Company LLC Managing dynamic resource reservation for host I/O requests
US10067683B2 (en) * 2016-07-19 2018-09-04 Western Digital Technologies, Inc. Systems and methods for classifying data in solid state drives
US10467195B2 (en) 2016-09-06 2019-11-05 Samsung Electronics Co., Ltd. Adaptive caching replacement manager with dynamic updating granulates and partitions for shared flash-based storage system
US10455045B2 (en) 2016-09-06 2019-10-22 Samsung Electronics Co., Ltd. Automatic data replica manager in distributed caching and data processing systems
US10642763B2 (en) 2016-09-20 2020-05-05 Netapp, Inc. Quality of service policy sets
WO2018081582A1 (en) * 2016-10-28 2018-05-03 Atavium, Inc. Systems and methods for random to sequential storage mapping
US11151102B2 (en) 2016-10-28 2021-10-19 Atavium, Inc. Systems and methods for data management using zero-touch tagging
CN109690465B (zh) * 2016-12-07 2020-10-09 华为技术有限公司 一种存储设备管理方法及用户终端
KR101986579B1 (ko) * 2016-12-14 2019-10-01 한국과학기술원 Ssd 배열의 로그 기반 패리티 갱신 시스템 및 방법 그리고 이를 이용한 블록 및 노드 결함 복구 방법
US10761750B2 (en) * 2017-03-09 2020-09-01 Netapp Inc. Selectively storing data into allocation areas using streams
CN106790719B (zh) * 2017-03-21 2019-12-06 杭州迪普科技股份有限公司 一种存储镜像配置信息的方法及装置
CN108959300B (zh) 2017-05-19 2022-07-22 华为技术有限公司 文件存储方法和存储装置
US10489257B2 (en) 2017-08-08 2019-11-26 Micron Technology, Inc. Replaceable memory
CN107766002A (zh) * 2017-10-20 2018-03-06 华中科技大学 一种基于混合存储设备的虚拟混合文件系统
CN109725823B (zh) * 2017-10-27 2021-11-16 伊姆西Ip控股有限责任公司 用于管理混合存储盘阵列的方法和设备
US11914571B1 (en) 2017-11-22 2024-02-27 Amazon Technologies, Inc. Optimistic concurrency for a multi-writer database
US10878859B2 (en) 2017-12-20 2020-12-29 Micron Technology, Inc. Utilizing write stream attributes in storage write commands
KR102504368B1 (ko) * 2017-12-22 2023-02-24 에스케이하이닉스 주식회사 비휘발성 메모리의 웨어 레벨링 동작을 관리하는 반도체 장치
JP7013901B2 (ja) * 2018-02-05 2022-02-01 オムロン株式会社 制御装置、監視方法、および監視プログラム
US10908940B1 (en) 2018-02-26 2021-02-02 Amazon Technologies, Inc. Dynamically managed virtual server system
US11803325B2 (en) * 2018-03-27 2023-10-31 Micron Technology, Inc. Specifying media type in write commands
CN111208934B (zh) * 2018-11-21 2021-07-09 华为技术有限公司 一种数据存储方法及装置
US11656780B2 (en) * 2019-01-08 2023-05-23 International Business Machines Corporation Increasing data performance by transferring data between storage tiers using workload characteristics
US11269861B2 (en) 2019-06-17 2022-03-08 Bank Of America Corporation Database tool
US11100092B2 (en) 2019-06-17 2021-08-24 Bank Of America Corporation Database tool
US11341163B1 (en) 2020-03-30 2022-05-24 Amazon Technologies, Inc. Multi-level replication filtering for a distributed database
US11789611B2 (en) 2020-04-24 2023-10-17 Netapp, Inc. Methods for handling input-output operations in zoned storage systems and devices thereof
US11422903B2 (en) * 2020-07-30 2022-08-23 Netapp Inc. Maintaining and recomputing reference counts in a persistent memory file system
US11262918B1 (en) * 2020-09-30 2022-03-01 Amazon Technologies, Inc. Data storage system with uneven drive wear reduction
US11340987B1 (en) 2021-03-04 2022-05-24 Netapp, Inc. Methods and systems for raid protection in zoned solid-state drives
CN113641693B (zh) * 2021-08-20 2022-05-24 北京百度网讯科技有限公司 流式计算系统的数据处理方法及装置、电子设备和介质
US11797377B2 (en) 2021-10-05 2023-10-24 Netapp, Inc. Efficient parity determination in zoned solid-state drives of a storage system
US11803329B2 (en) 2021-11-22 2023-10-31 Netapp, Inc. Methods and systems for processing write requests in a storage system
US11816359B2 (en) 2021-12-16 2023-11-14 Netapp, Inc. Scalable solid-state storage system and methods thereof
US11940911B2 (en) 2021-12-17 2024-03-26 Netapp, Inc. Persistent key-value store and journaling system
CN114442934B (zh) * 2021-12-27 2024-01-02 天翼云科技有限公司 数据处理方法、装置及存储引擎

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5129088A (en) * 1987-11-30 1992-07-07 International Business Machines Corporation Data processing method to create virtual disks from non-contiguous groups of logically contiguous addressable blocks of direct access storage device
JPH03146957A (ja) * 1989-11-02 1991-06-21 Iwatsu Electric Co Ltd 電子写真製版用印刷版
US5148358A (en) * 1991-04-03 1992-09-15 Hughes Aircraft Company Rectifier commutation current spike suppressor
US5778418A (en) * 1991-09-27 1998-07-07 Sandisk Corporation Mass computer storage system having both solid state and rotating disk types of memory
JP3751018B2 (ja) * 1993-06-03 2006-03-01 ネットワーク・アプライアンス・インコーポレイテッド ライトエニウエアファイルシステムレイアウト
EP0680048B1 (en) * 1994-04-29 2000-03-29 STMicroelectronics, Inc. Bandgap reference circuit
JP2968181B2 (ja) 1994-11-29 1999-10-25 インターナショナル・ビジネス・マシーンズ・コーポレイション ディスク装置及びデータ書込読出方法
JPH10154045A (ja) 1996-11-25 1998-06-09 Dainippon Screen Mfg Co Ltd 画像データ供給装置
US6148368A (en) 1997-07-31 2000-11-14 Lsi Logic Corporation Method for accelerating disk array write operations using segmented cache memory and data logging
US6219693B1 (en) 1997-11-04 2001-04-17 Adaptec, Inc. File array storage architecture having file system distributed across a data processing platform
JPH11272424A (ja) 1998-03-20 1999-10-08 Mega Chips Corp 画像記録再生装置
US6516380B2 (en) * 2001-02-05 2003-02-04 International Business Machines Corporation System and method for a log-based non-volatile write cache in a storage controller
US6651147B2 (en) * 2001-05-08 2003-11-18 International Business Machines Corporation Data placement and allocation using virtual contiguity
US7454446B2 (en) 2001-08-31 2008-11-18 Rocket Software, Inc. Techniques for storing data based upon storage policies
US7200715B2 (en) * 2002-03-21 2007-04-03 Network Appliance, Inc. Method for writing contiguous arrays of stripes in a RAID storage system using mapped block writes
JP2004013547A (ja) * 2002-06-07 2004-01-15 Hitachi Ltd データ割当方法、情報処理システム
US20050251617A1 (en) * 2004-05-07 2005-11-10 Sinclair Alan W Hybrid non-volatile memory system
US7136973B2 (en) 2004-02-04 2006-11-14 Sandisk Corporation Dual media storage device
US7409494B2 (en) * 2004-04-30 2008-08-05 Network Appliance, Inc. Extension of write anywhere file system layout
JP2006350599A (ja) 2005-06-15 2006-12-28 Hitachi Ltd ストレージシステム及びストレージシステムのデータマイグレーション方法
JP2007072813A (ja) 2005-09-07 2007-03-22 Hitachi Ltd ストレージシステム、ファイル移動方法、及びコンピュータプログラム
JP2007108981A (ja) 2005-10-13 2007-04-26 Hitachi Ltd ストレージ装置及びボリューム間のデータ交換方法
US8412682B2 (en) 2006-06-29 2013-04-02 Netapp, Inc. System and method for retrieving and using block fingerprints for data deduplication
JP4749255B2 (ja) 2006-07-03 2011-08-17 株式会社日立製作所 複数種類の記憶デバイスを備えたストレージシステムの制御装置
US7555575B2 (en) 2006-07-27 2009-06-30 Hitachi, Ltd. Method and apparatus for migrating data between storage volumes of different data pattern
US20090172335A1 (en) * 2007-12-31 2009-07-02 Anand Krishnamurthi Kulkarni Flash devices with raid
JP2011515727A (ja) 2008-02-12 2011-05-19 ネットアップ,インコーポレイテッド ハイブリッド媒体ストレージシステムアーキテクチャ

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10747452B1 (en) 2019-02-21 2020-08-18 International Business Machines Corporation Hybrid log-structured array and allocated storage device

Also Published As

Publication number Publication date
JP2014041645A (ja) 2014-03-06
US20110035548A1 (en) 2011-02-10
JP2011515727A (ja) 2011-05-19
WO2009102425A1 (en) 2009-08-20
US9134917B2 (en) 2015-09-15
EP2263145A1 (en) 2010-12-22
CA2714745A1 (en) 2009-08-20
EP2263145B1 (en) 2020-02-05

Similar Documents

Publication Publication Date Title
JP5827662B2 (ja) ハイブリッド媒体ストレージシステムアーキテクチャ
US8549222B1 (en) Cache-based storage system architecture
US10042853B2 (en) Flash optimized, log-structured layer of a file system
US8321645B2 (en) Mechanisms for moving data in a hybrid aggregate
US10949108B2 (en) Enhanced application performance in multi-tier storage environments
US10133511B2 (en) Optimized segment cleaning technique
US9442844B2 (en) Apparatus, system, and method for a storage layer
US9152335B2 (en) Global in-line extent-based deduplication
JP6208156B2 (ja) ハイブリッドストレージ集合体の複製
US9606914B2 (en) Apparatus, system, and method for allocating storage
US10133663B2 (en) Systems and methods for persistent address space management
US9229870B1 (en) Managing cache systems of storage systems
KR20150105323A (ko) 데이터 스토리지 방법 및 시스템
US11579786B2 (en) Architecture utilizing a middle map between logical to physical address mapping to support metadata updates for dynamic block relocation
US11487456B1 (en) Updating stored content in an architecture utilizing a middle map between logical and physical block addresses

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140731

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140805

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20141105

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20141110

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141120

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20150512

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150831

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20150907

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151016

R150 Certificate of patent or registration of utility model

Ref document number: 5827662

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D02

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D03

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250