JP2016167301A - ストレージ環境におけるi/o書き込みのスケジューリング - Google Patents

ストレージ環境におけるi/o書き込みのスケジューリング Download PDF

Info

Publication number
JP2016167301A
JP2016167301A JP2016096062A JP2016096062A JP2016167301A JP 2016167301 A JP2016167301 A JP 2016167301A JP 2016096062 A JP2016096062 A JP 2016096062A JP 2016096062 A JP2016096062 A JP 2016096062A JP 2016167301 A JP2016167301 A JP 2016167301A
Authority
JP
Japan
Prior art keywords
type
requests
request
storage devices
read
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
JP2016096062A
Other languages
English (en)
Other versions
JP6298098B2 (ja
Inventor
コルグローヴ,ジョン
Colgrove John
ヘイズ,ジョン
Hayes John
ホン,ボー
Bo Hong
ワン,フェン
Feng Wang
ミラー,イーサン
Miller Ethan
ハーマー,クレイグ
Harmer Craig
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Pure Storage Inc
Original Assignee
Pure Storage Inc
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 Pure Storage Inc filed Critical Pure Storage Inc
Publication of JP2016167301A publication Critical patent/JP2016167301A/ja
Application granted granted Critical
Publication of JP6298098B2 publication Critical patent/JP6298098B2/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • 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
    • 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
    • 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/0891Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • 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/0629Configuration or reconfiguration of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/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
    • 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/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/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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
    • 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/0688Non-volatile semiconductor memory 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory

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)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】複数のソリッドステートストレージデバイス間で読み込み及び書き込み動作を効果的にスケジュールする。【解決手段】クライアントコンピュータ及びデータストレージアレイがネットワークを介して互いに結合されている。データストレージアレイは、ソリッドステートドライブ及びフラッシュメモリセルを利用する。データストレージコントローラは、データ記憶媒体を対象とする、第1のタイプの動作及び第2のタイプの動作を含む要求を受け取る。第1のタイプの要求を前記複数のストレージデバイスによって直ちに処理されるようにスケジュールし、第2のタイプの要求を複数のストレージデバイスによって後で処理されるようにキューに入れる。第1のタイプの動作は、レイテンシが相対的に短いと予想される動作に対応することができ、第2のタイプの動作は、レイテンシが相対的に長いと予想される動作に対応することができる。【選択図】図4

Description

本発明は、コンピュータネットワークに関し、より詳細には、コンピューティングデー
タストレージシステムに関する。
コンピュータのメモリストレージ及びデータ帯域幅が増すと、企業が管理するデータの
量及び複雑性も増す。通常、データセンターなどの大規模分散型ストレージシステムは、
多くの業務を実行する。分散型ストレージシステムは、1又はそれ以上のネットワークに
より相互接続された複数のクライアントコンピュータに結合することができる。分散型ス
トレージシステムのいずれかの部分が不良を起こし、又は利用できなくなった場合には、
企業活動が損なわれ、又は完全に停止する恐れがある。このような分散型ストレージシス
テムは、データの利用可能性及び高パフォーマンス機能のための基準を高く維持しようと
努める。
ストレージシステム自体の内部では、一般に、ファイルシステム及びストレージデバイ
スレベルの入力/出力(I/O)スケジューラが、どのように動作を実行すべきかに関す
る段階を提供することに加え、読み込み及び書き込み動作の順序を決定する。例えば、ス
トレージデバイスにとっては、非順次的読み込み及び書き込み動作の方が、順次的読み込
み及び書き込み動作よりも(時間及び/又はリソースなどの観点から)実行にコストが掛
かることがある。従って、I/Oスケジューラは、非順次的動作を低減しようと試みるこ
とができる。また、I/Oスケジューラは、スタベーションの防止、要求のマージング及
びプロセス間の公平性などのその他の機能を提供することもできる。
ストレージデバイス間では、少なくとも読み込み及び書き込み応答時間が大幅に異なる
ことがある。このような差異は、技術自体の特性と考えることができる。従って、選択し
たデータストレージデバイスに関連する技術及び機構は、効果的なI/Oスケジューリン
グを行うために使用する方法を決定することができる。例えば、多くの現在のアルゴリズ
ムは、ハードディスクドライブ(HDD)を利用するシステムに合わせて開発されたもの
である。HDDは、各々が磁気媒体で被覆された1又はそれ以上の回転ディスクを含む。
これらのディスクは、毎分数千回転の速さで回転する。また、この回転ディスク上への磁
気読み込み/書き込み装置の位置付けには、電磁アクチュエータが関与する。この装置の
機械的及び電気機械的設計が、I/O特性に影響を与える。残念ながら、摩擦、摩耗、振
動及び機械的不均衡によって信頼性問題が生じるとともに、HDDのI/O特性が影響を
受けることがある。多くの現在のI/Oスケジューラは、HDDの入力/出力(I/O)
特性を考慮するように設計されている。
別のタイプの記憶媒体の例に、ソリッドステートドライブ(SSD)がある。SSDは
、HDDとは対照的に、永続データの記憶に磁気媒体装置ではなく固体メモリを利用する
。固体メモリは、フラッシュメモリセルを含むことができる。フラッシュメモリは、ハー
ドドライブの特徴とは異なるいくつかの特徴を有する。例えば、一般に、フラッシュメモ
リセルは、書き換え又は再プログラム前に大きなブロック単位で消去される。一般的には
、フラッシュメモリも、チップ、パッケージ、平面及びブロックなどの複雑な構成で構築
される。選択した構成のサイズ及び並列性、時間に伴うフラッシュメモリの損耗性、(単
複の)デバイスの相互接続及び転送速度は全てが異なり得る。また、このようなデバイス
は、デバイス上の記憶を管理するためのフラッシュ変換層(FTL)を含むこともできる
。FTLが利用するアルゴリズムは様々であり、デバイスの挙動及び/又はパフォーマン
スのばらつきの一因となることもある。従って、一般に、フラッシュベースのSSDを記
憶に使用するシステムでは、特性の異なるハードドライブなどのシステムに合わせて設計
されたI/Oスケジューラを利用しながら高いパフォーマンス及び予測可能なレイテンシ
を実現できない場合がある。
上記に鑑み、複数のストレージデバイス間で読み込み及び書き込み動作を効果的にスケ
ジュールするためのシステム及び方法が望まれている。
複数のソリッドステートストレージデバイス間で読み込み及び書き込み動作を効果的に
スケジュールするためのコンピュータシステム及び方法の様々な実施形態を開示する。
1つの実施形態では、コンピュータシステムが、ネットワークを介して読み込み及び書
き込み要求を受け取るように結合された1又はそれ以上のデータストレージアレイにネッ
トワークを介して読み込み及び書き込み要求を伝達するように構成された複数のクライア
ントコンピュータを備える。複数のストレージデバイス上の複数の記憶位置を含む(単複
の)データストレージアレイを企図する。様々な実施形態では、このストレージデバイス
が、データの記憶及び保護を行うための独立ドライブ冗長アレイ(RAID)構成で構成
される。データストレージデバイスは、フラッシュメモリセルなどの、データ記憶のため
の固体メモリ技術を含むことができる。対応するストレージデバイスの特性を使用して、
ストレージデバイスへのI/O要求をスケジュールする。特性としては、I/O要求の予
測応答時間、デバイス寿命、いずれかの対応するキャッシュサイズ、アクセス速度、エラ
ー率、現在のI/O要求、完了したI/O要求などを挙げることができる。
1つの実施形態では、I/Oスケジューラが、読み込み及び書き込み要求を受け取り、
この読み込み及び書き込み要求を、複数のストレージデバイスによって処理されるように
スケジュールするよう構成される。これらのストレージデバイスは、提供される動作に応
じて異なるレイテンシを示すことがあり、期待又は希望されるパフォーマンスとは異なる
パフォーマンスを様々な時点で引き起こす予定外又は予想外の挙動を示すこともある。様
々な実施形態では、これらの挙動が、デバイスは正しく機能している(すなわち、エラー
状態ではない)ものの、レイテンシ及び/又はスループットに基づいて期待又は希望する
レベルよりも低いレベルで単純に行われている挙動に対応する。このような挙動及びパフ
ォーマンスを、「可変パフォーマンス」挙動と呼ぶことができる。これらの可変パフォー
マンス挙動は、例えば、フラッシュベースのメモリ技術などの技術によって示されること
がある。データ記憶媒体を対象とする、第1のタイプの動作及び第2のタイプの動作を含
む要求を受け取るように構成されたストレージコントローラを企図する。このコントロー
ラは、第1のタイプの要求を前記複数のストレージデバイスによって直ちに処理されるよ
うにスケジュールし、第2のタイプの要求を複数のストレージデバイスによって後で処理
されるようにキューに入れるよう構成される。第1のタイプの動作は、レイテンシが相対
的に短いと予想される動作に対応することができ、第2のタイプの動作は、レイテンシが
相対的に長いと予想される動作に対応することができる。短いレイテンシの動作は、読み
込み動作に対応することができ、長いレイテンシの動作は、書き込み動作を含むことがで
きる。第2のタイプの動作に対応する複数の要求をキューに入れた後、ストレージコント
ローラが、第1のタイプの動作に対応する要求の処理を中断し、第2のタイプの動作に対
応する要求のみを処理するように構成される実施形態も企図する。
以下の説明及び添付図面を検討すると、これらの及びその他の実施形態が明らかになる
であろう。
ネットワークアーキテクチャの1つの実施形態を示す汎用ブロック図である。 コンピューティングシステムの1つの実施形態による概念モデルを示す図である。 データストレージサブシステム上における予想外の可変I/O応答時間を低減するようにI/Oスケジューリングを調整する方法の1つの実施形態を示す汎用フロー図である。 ストレージデバイスに発行された動作を分離する方法の1つの実施形態を示す汎用フロー図である。 ストレージサブシステム内のストレージデバイスの挙動を特徴付けるモデルを作成する方法の1つの実施形態を示す汎用フロー図である。 ストレージサブシステムの1つの実施形態を示す汎用ブロック図である。 デバイスユニットの別の実施形態を示す汎用ブロック図である。 状態テーブルの別の実施形態を示す汎用ブロック図である。 データストレージサブシステム上における予想外の可変I/O応答時間を低減するようにI/Oスケジューリングを調整する方法の1つの実施形態を示す汎用フロー図である。 共有データストレージ上における効率的なレイテンシによる読み込み動作を維持する方法の1つの実施形態を示す汎用フロー図である。 可変I/O応答時間を示すストレージデバイスの数を低減する方法の1つの実施形態を示す汎用フロー図である。 共有データストレージ上における効率的なレイテンシによる読み込み動作を維持する方法の1つの実施形態を示す汎用フロー図である。
本発明は様々な修正及び代替形態が可能であるが、図面には特定の実施形態を一例とし
て示し、本明細書ではこれらについて詳細に説明する。しかしながら、図面及びこれらに
対する詳細な説明は、開示する特定の形態に本発明を限定することを意図するものではな
く、むしろ添付の特許請求の範囲によって定められる本発明の思想及び範囲内にある全て
の修正物、同等物及び代替物を含むことを意図するものであると理解されたい。
以下の説明では、本発明を完全に理解できるように数多くの具体的な詳細を示す。しか
しながら、当業者であれば、これらの具体的な詳細を伴わずに本発明を実施できると認識
するであろう。いくつかの例では、本発明を曖昧にしないように、周知の回路、構造、信
号、コンピュータプログラム命令及び技術については詳細に示していない。
図1を参照すると、ネットワークアーキテクチャ100の1つの実施形態の汎用ブロッ
ク図を示している。後述するように、ネットワークアーキテクチャ100の1つの実施形
態は、ネットワーク180を介して互いに、及びデータストレージアレイ120a〜12
0bに相互接続されたクライアントコンピュータシステム110a〜110bを含む。ネ
ットワーク180は、スイッチ140を介して第2のネットワーク190に結合すること
ができる。このネットワーク190を介して、クライアントコンピュータシステム110
cが、クライアントコンピュータシステム110a〜110b及びデータストレージアレ
イ120a〜120bに結合される。また、ネットワーク190は、スイッチ150を介
してインターネット160又はその他の外部ネットワークに結合することもできる。
なお、代替の実施形態では、クライアントコンピュータ及びサーバ、スイッチ、ネット
ワーク、データストレージアレイ及びデータストレージデバイスの数及びタイプが、図1
に示すものに限定されない。1又はそれ以上のクライアントは、様々な時点でオフライン
で動作することができる。また、動作中、ユーザがネットワークアーキテクチャ100へ
の接続、切断及び再接続を行うと、個々のクライアントコンピュータの接続タイプは変化
することがある。さらに、本説明では、一般にネットワーク接続されたストレージについ
て検討するが、本明細書で説明するシステム及び方法は、直接接続されたストレージシス
テムに適用することもでき、説明する方法の1つ又はそれ以上の態様を実行するように構
成されたホストオペレーティングシステムを含むこともできる。数多くのこのような代替
案が可能であり、企図される。図1に示す構成要素の各々のさらなる説明を手短に行う。
まず、データストレージアレイ120a〜120bにより提供される機能のいくつかの概
要について説明する。
ネットワークアーキテクチャ100では、データストレージアレイ120a〜120b
の各々を、クライアントコンピュータシステム110a〜110cなどの異なるサーバ及
びコンピュータ間のデータの共有に使用することができる。また、データストレージアレ
イ120a〜120bを、ディスクのミラーリング、バックアップ及び復元、保存データ
の保管及び検索、並びにストレージデバイス間のデータ移行に使用することもできる。代
替の実施形態では、クラスタを形成するために、1又はそれ以上のクライアントコンピュ
ータシステム110a〜110cを、高速ローカルエリアネットワーク(LAN)を介し
て互いにリンクさせることができる。このようなクライアントは、データストレージアレ
イ120a〜120bの1つに存在するクラスタ共有ボリュームなどのストレージリソー
スを共有することができる。
データストレージアレイ120a〜120bの各々は、データ記憶のためのストレージ
サブシステム170を含む。ストレージサブシステム170は、複数のストレージデバイ
ス176a〜176mを含むことができる。これらのストレージデバイス176a〜17
6mは、クライアントコンピュータシステム110a〜110cにデータ記憶サービスを
提供することができる。ストレージデバイス176a〜176mの各々は、データ記憶を
行うための特定の技術及び機構を使用する。これらのストレージデバイス176a〜17
6mの各々で使用されるタイプの技術及び機構を少なくとも部分的に使用して、ストレー
ジデバイス176a〜176mの各々との間の読み込み及び書き込み動作の制御及びスケ
ジュールに使用するアルゴリズムを決定することができる。これらのアルゴリズムで使用
されるロジックを、基本オペレーティングシステム(OS)116、ファイルシステム1
40、ストレージサブシステムコントローラ174内の1又はそれ以上のグローバルI/
Oスケジューラ178、又はストレージデバイス176a〜176mの各々における制御
ロジックなどのうちの1又はそれ以上に含めることができる。また、本明細書で説明する
ロジック、アルゴリズム及び制御機構は、ハードウェア及び/又はソフトウェアを含むこ
とができる。
ストレージデバイス176a〜176mの各々は、読み込み及び書き込み要求を受け取
るとともに、各々をアレイ内の行及び列としてアドレス指定可能な複数のデータス記憶位
置を含むように構成することができる。1つの実施形態では、ストレージデバイス176
a〜176m内のデータ記憶位置を、論理的で冗長なストレージコンテナ又はRAIDア
レイ(低価格/独立ディスク冗長アレイ)内に配置することができる。いくつかの実施形
態では、ストレージデバイス176a〜176mの各々が、従来のハードディスクドライ
ブ(HDD)とは異なる技術をデータ記憶に利用することができる。例えば、ストレージ
デバイス176a〜176mの1又はそれ以上は、永続データを記憶するための固体メモ
リから成るストレージを含み、又はこれにさらに結合することができる。他の実施形態で
は、ストレージデバイス176a〜176mの1又はそれ以上が、スピン注入法、磁気抵
抗メモリ(MRAM)法、シングルディスク、メモリスタ、相変化メモリ又はその他の記
憶技術などの他の技術を使用するストレージを含み、又はこれにさらに結合することがで
きる。これらの異なる記憶方法及び技術により、ストレージデバイス間で異なるI/O特
性が生じ得る。
1つの実施形態では、含まれる固体メモリが、ソリッドステートドライブ(SSD)技
術を含む。通常、SSD技術は、フラッシュメモリセルを利用する。当業で周知のように
、フラッシュメモリセルは、フローティングゲート内に捕捉され蓄積された電子の範囲に
基づく二進値を保持する。完全に消去されたフラッシュメモリセルは、フローティングゲ
ート内に電子を全く又は最低数しか蓄積していない。消去されたフラッシュメモリセルに
は、シングルレベルセル(SLC)フラッシュの二進1などの特定の二進値が関連付けら
れる。マルチレベルセル(MLC)フラッシュでは、消去されたフラッシュメモリセルに
二進値11が関連付けられる。フラッシュメモリセル内の制御ゲートに所与の閾値電圧よ
りも高い電圧を印加した後、このフラッシュメモリセルは、フローティングゲート内に所
与の範囲の電子を捕捉する。従って、プログラムされた(書き込まれた)フラッシュメモ
リセルには、SLCフラッシュの二進0などの別の特定の二進値が関連付けられる。ML
Cフラッシュセルでは、制御ゲートに印加された電圧に応じて、プログラムされたメモリ
セルに複数の二進値の1つを関連付けることができる。
HDD技術とSDD技術の間の技術及び機構の違いにより、データストレージデバイス
176a〜176mの入力/出力(I/O)特性に違いが生じることがある。一般的に言
えば、SSD技術では、読み込みアクセスレイテンシタイムがHDD技術よりも短い。し
かしながら、一般にSSDの書き込みパフォーマンスは、その読み込みパフォーマンスよ
りも遅く、SSD内の自由なプログラマブルブロックの利用可能性によって大きく影響を
受けることがある。SSDの書き込みパフォーマンスは、SSDの読み込みパフォーマン
スに比べて大幅に遅いので、読み込みと同様のレイテンシを予想する特定の機能又は動作
に関する問題が生じることがある。また、長い書き込みレイテンシが読み込みレイテンシ
に影響を与えることにより、スケジューリングがより困難になる場合がある。従って、デ
ータストレージアレイ120a〜120bの各々では、I/Oスケジューリングに異なる
アルゴリズムが使用されることがある。
1つの実施形態では、読み込み動作及び書き込み動作などの異なるタイプの動作のレイ
テンシが異なる場合、I/Oスケジューリングのアルゴリズムが、これらの動作を分離し
て、スケジューリングのためにこれらを別個に処理することができる。例えば、ストレー
ジデバイス176a〜176mの1又はそれ以上において、デバイス自体が書き込み動作
を内部キャッシュに記憶することなどによってバッチ処理することができる。これらのキ
ャッシュが所与の占有率閾値に達した時に、又は他の何らかの時点で、対応するストレー
ジデバイス176a〜176mが、キャッシュをフラッシュすることができる。一般的に
は、これらのキャッシュフラッシュにより、予測できない時点で読み込み及び/又は書き
込みに追加のレイテンシが加わることがあり、これにより動作を効果的にスケジュールす
るのが困難になる。従って、I/Oスケジューラは、このようなキャッシュフラッシュが
いつ発生し得るかを予測するために、キャッシュのサイズ又は測定したアイドル時間など
のストレージデバイスの特性を利用することができる。1又はそれ以上のストレージデバ
イス176a〜176mの各々の特性が分かると、より効果的なI/Oスケジューリング
を行うことができる。1つの実施形態では、グローバルI/Oスケジューラ178が、ス
トレージデバイス176a〜176mの1又はそれ以上のうちの所与のデバイスが予想外
の時点でI/O要求に対して長い応答時間を示していることを検出することができる。こ
れに応答して、グローバルI/Oスケジューラ178は、この所与のデバイスに予想され
る挙動を再開させるために、このデバイスに所与の動作をスケジュールすることができる
。1つの実施形態では、このような動作を、キャッシュフラッシュコマンド、トリムコマ
ンド、又は消去コマンドなどとすることができる。以下、入出力スケジューリングに関す
るさらなる詳細について説明する。
ネットワークアーキテクチャの構成要素
繰り返すが、図示のように、ネットワークアーキテクチャ100は、ネットワーク18
0及び190を介して互いに及びデータストレージアレイ120a〜120bに相互接続
されたクライアントコンピュータシステム110a〜110cを含む。ネットワーク18
0及び190は、無線接続、直接ローカルエリアネットワーク(LAN)接続、インター
ネットなどの広域ネットワーク(WAN)接続、ルータ、ストレージエリアネットワーク
及びイーサネット(登録商標)などを含む様々な技術を含むことができる。ネットワーク
180及び190は、1又はそれ以上のLANを含むことができ、これらは無線であって
もよい。ネットワーク180及び190は、リモートダイレクトメモリアクセス(RDM
A)ハードウェア及び/又はソフトウェア、伝送制御プロトコル/インターネットプロト
コル(TCP/IP)ハードウェア及び/又はソフトウェア、ルータ、リピータ、スイッ
チ及び/又はグリッドなどをさらに含むことができる。ネットワーク180及び190内
では、ファイバチャネル、ファイバチャネルオーバーイーサネット(FCoE)及びiS
CSIなどのプロトコルを使用することができる。スイッチ140は、ネットワーク18
0及び190の両方に関連するプロトコルを利用することができる。ネットワーク190
は、伝送制御プロトコル(TCP)及びインターネットプロトコル(IP)、すなわちT
CP/IPなどの、インターネット160に使用される通信プロトコルの組と整合するこ
とができる。スイッチ150は、TCP/IPスイッチとすることができる。
クライアントコンピュータシステム110a〜110cは、デスクトップパソコン(P
C)、サーバ、サーバファーム、ワークステーション、ラップトップ、ハンドヘルドコン
ピュータ、サーバ、携帯情報端末(PDA)及びスマートフォンなどのあらゆる数の固定
又はモバイルコンピュータを表す。一般的に言えば、クライアントコンピュータシステム
110a〜110cは、1又はそれ以上のプロセッサコアを備えた1又はそれ以上のプロ
セッサを含む。各プロセッサコアは、所定の汎用命令セットに従って命令を実行するため
の回路を含む。例えば、x86命令セットアーキテクチャを選択することができる。或い
は、Alpha(登録商標)、PowerPC(登録商標)、SPARC(登録商標)又
はその他のいずれの汎用命令セットアーキテクチャを選択してもよい。プロセッサコアは
、データ及びコンピュータプログラム命令を求めてキャッシュメモリサブシステムにアク
セスすることができる。キャッシュサブシステムは、ランダムアクセスメモリ(RAM)
及びストレージデバイスを含む記憶階層に結合することができる。
クライアントコンピュータシステム内の各プロセッサコア及び記憶階層は、ネットワー
クインターフェイスに接続することができる。クライアントコンピュータシステム110
a〜110cの各々は、ハードウェア構成要素に加え、記憶階層内に記憶された基本オペ
レーティングシステム(OS)を含むことができる。この基本OSは、例えば、MS−D
OS(登録商標)、MS−WINDOWS(登録商標)、OS/2(登録商標)、UNI
X(登録商標)、Linux(登録商標)、Solaris(登録商標)、AIX(登録
商標)又はDARTなどの様々なオペレーティングシステムのいずれかを表すことができ
る。従って、基本OSは、エンドユーザに様々なサービスを提供するとともに、様々なプ
ログラムの実行をサポートするソフトウェアフレームワークを提供することができる。ま
た、クライアントコンピュータシステム110a〜110cの各々は、バーチャルマシン
(VM)をサポートするために使用されるハイパーバイザを含むことができる。当業者に
は周知のように、デスクトップ及びサーバ内で仮想化を使用して、OSなどのソフトウェ
アをシステムのハードウェアから完全に又は部分的に分離することができる。仮想化によ
り、エンドユーザに、各々が独自のリソースを有する同じ機械上で複数のOSが実行され
ているという錯覚を与え、データストレージアレイ120a〜120bの各々におけるス
トレージデバイス176a〜176m上に構築された論理記憶エンティティ(LUNなど
)にアクセスできるようにすることができる。
データストレージアレイ120a〜120bの各々は、クライアントコンピュータシス
テム110a〜110cなどの異なるサーバ間のデータの共有に使用することができる。
データストレージアレイ120a〜120bの各々は、データを記憶するためのストレー
ジサブシステム170を含む。ストレージサブシステム170は、複数のストレージデバ
イス176a〜176mを含むことができる。これらのストレージデバイス176a〜1
76mの各々は、SSDとすることができる。コントローラ174は、受け取った読み込
み/書き込み要求を処理するためのロジックを含むことができる。例えば、少なくともコ
ントローラ174において、手短に上述したアルゴリズムを実行することができる。受け
取った書き込み要求などのバッチ動作には、ランダムアクセスメモリ(RAM)172を
使用することができる。様々な実施形態では、書き込み動作(又はその他の動作)をバッ
チ処理する際に、不揮発性ストレージ(NVRAMなど)を使用することができる。
記憶媒体130に記憶された基本OS132、ファイルシステム134、いずれかのO
Sドライバ(図示せず)及びその他のソフトウェアは、ファイルへのアクセスを可能にす
る機能を提供し、これらの機能を管理することができる。基本OS134及びOSドライ
バは、記憶媒体130上に記憶された、受け取った要求に対応する1又はそれ以上のメモ
リアクセス動作をストレージサブシステム170内で行うようにプロセッサ122により
実行可能なプログラム命令を含むことができる。図1に示すシステムは、一般に1又はそ
れ以上のファイルサーバ及び/又はブロックサーバを含むことができる。
データストレージアレイ120a〜120bの各々は、ネットワークインターフェイス
124を使用してネットワーク180に接続することができる。1つの実施形態では、ク
ライアントコンピュータシステム110a〜110cと同様に、ネットワークインターフ
ェイス124の機能をネットワークアダプタカード上に含めることができる。ネットワー
クインターフェイス124の機能は、ハードウェア及びソフトウェアの両方を使用して実
装することができる。ネットワークインターフェイス124のネットワークカードによる
実装上には、ランダムアクセスメモリ(RAM)及び読み取り専用メモリ(ROM)の両
方を含めることができる。1又はそれ以上の特定用途向け集積回路(ASIC)を使用し
て、ネットワークインターフェイス124の機能を提供することができる。
1つの実施形態では、I/Oパフォーマンスを最適化しようと努めるデータストレージ
モデルを作成することができる。1つの実施形態では、このモデルが、ストレージシステ
ム内のストレージデバイスの特性に少なくとも部分的に基づく。例えば、ソリッドステー
トストレージ技術を利用するストレージシステムでは、特定のデバイスの特性を使用して
このデバイスのためのモデルを作成し、このモデルが、対応するI/Oスケジューリング
アルゴリズムを通知する機能を果たすことができる。例えば、使用中の特定のストレージ
デバイスが、読み込みレイテンシに比べて相対的に長い書き込みレイテンシを示す場合、
スケジューリング動作においてこのような特性を考慮することができる。なお、相対的に
長いと考えるか、それとも短いと考えるかは、特定のシステム、処理中のデータのタイプ
、処理するデータの量、又はデータのタイミングなどによって異なることがある。一般的
に言えば、システムは、短い又は長いレイテンシを構成するものが何であるか、及び/又
はこれらの2つの有意な違いを構成するものが何であるかを判断するようにプログラム可
能である。
一般的に言えば、デバイス又はコンピューティングシステムのために開発されるあらゆ
るモデルが不完全となる。多くの場合、現実のシステムで所与のシステムを完全にモデル
化するには、考慮すべき変数が単純に多すぎる。場合によっては、完全ではないが価値の
あるモデルを開発することが可能な場合もある。以下でより詳細に説明するように、デバ
イスの特性に基づいてストレージデバイスをモデル化する実施形態を説明する。様々な実
施形態では、デバイスがどのように挙動し得るかに関するいくつかの予測に基づいてI/
Oスケジューリングが行われる。装置の挙動によっては、デバイスの特性の理解に基づい
て、他の挙動より予測しやすいものもある。最適なI/Oパフォーマンスのための動作を
より効果的にスケジュールするには、システムの挙動をより確実に制御することが望まし
い。予想外の、又は予測できない装置の挙動は、動作のスケジューリングをより困難にす
る。従って、システム内の予測不能な又は予想外の挙動を最小化しようと努めるアルゴリ
ズムを開発する。
図2は、モデル化中のデバイス又はシステム、及びこのデバイス又はシステム内の予測
不能な挙動を最小化するために使用する方法の概念図である。第1のブロック200に、
理想的なシナリオを示す。ブロック200には、システム204及びこのシステムのモデ
ル202を示している。1つの実施形態では、このシステムを、単一のデバイスのシステ
ムとすることができる。或いは、このシステムは、多くのデバイス及び/又は構成要素を
含むこともできる。上述したように、モデル202は、モデル化しようとするシステム2
04の完全なモデルではない場合もある。にもかかわらず、モデル202は、このモデル
のために関心のある挙動を捕捉する。1つの実施形態では、モデル202が、コンピュー
ティングストレージシステムをモデル化しようとすることができる。理想的なシナリオ2
00では、システム204の実際の挙動が、モデル202の挙動と「揃って」いる。換言
すれば、一般に、システム204の挙動は、モデル202が捕捉しようとする挙動に適合
する。システム挙動204がモデル202の挙動と一致している間は、このシステム挙動
は、一般に予測しやすいと思われる。従って、システム内の動作(例えば、読み込み及び
書き込み動作)のスケジューリングを、より効果的に行うことができる。
例えば、読み込み応答時間を最適化することが望まれる場合、システムの他の挙動が比
較的予測しやすい場合には、よりタイムリーに読み込みが行われるように読み込みをスケ
ジュールすることが可能である。一方、システムの挙動が比較的予測しにくい場合には、
必要時に結果を提供するように読み込みをスケジュールする能力の信頼度が低下する。ブ
ロック210に、システム挙動(小さい方の円)がこのシステム(大きい方の円)のモデ
ルの挙動と揃っていないシナリオを示す。この場合、このシステムは、モデルから外れる
挙動を示している。従って、システム挙動の予測可能性が低くなり、動作をスケジューリ
ングする効果が下がることがある。例えば、ストレージシステム内で固体メモリデバイス
を使用し、これらのデバイスが、より長いレイテンシで要求を処理するアクションを開始
し得る場合、そのデバイスに対してスケジュールされていたあらゆる動作が、より長い又
は予想外のレイテンシを生じる可能性もある。このようなデバイス動作の1つの例に、内
部キャッシュフラッシュがある。
予想外の又は予定外のシステム挙動及び対応する可変パフォーマンスの問題に対処する
ために、作成するモデルは、システムを不確実性の少ない状態に復元するために行うこと
ができるアクションを含むことができる。換言すれば、システムの挙動を予測するモデル
の能力を低下させる挙動をシステムが示し始めた場合、このモデルは、特定の予想外の挙
動が排除され又は起きにくくなる状態にシステムを復元するために行うことができるいく
つかのアクションを構築する。図示の例では、より密接にモデルと揃った状態にシステム
を「移動」させようとするアクション212を示している。アクション212は、モデル
の外側にあるシステム挙動を検出することに応答して行われるので、「反応的」アクショ
ン又は動作と呼ぶことができる。アクション212を行った後に、より理想的な状態22
0を達成することができる。
予測不能な挙動に反応してシステムをより理想的な状態に移行できるモデルを作成する
ことが望ましいが、それらの予測不能な挙動が存在することにより、効果的なスケジュー
リング動作が妨げられたままになることもある。従って、予想外の挙動又はイベントの発
生を最小化することが望ましいと考えられる。1つの実施形態では、予想外の挙動の発生
を防止又は低減するように設計されたアクション又は動作を含むモデルを作成する。これ
らのアクションは、何らかの挙動又はイベントの発生を防ぎ、又は何らかの挙動又はイベ
ントのタイミングを変化させるために事前対応的に行うことができるので、「事前対応」
アクション又は動作と呼ぶことができる。図2のブロック230に、システム挙動(小さ
い方の円)がそのモデル(大きい方の円)の挙動内に存在するシナリオを示す。にもかか
わらず、このモデルは、システム挙動がモデル内に留まったまま、恐らくはより理想的に
揃うようにシステム挙動を移動させるアクション232を行うことができる。ブロック2
30内のシステム挙動は、モデルの外部での挙動を示す状態に近づいているように見える
。このような場合、モデルは、システムがこのような状態に近づいていると確信するため
の何らかの基準を有することができる。例えば、I/Oスケジューラが特定のデバイスに
いくつかの書き込み動作を伝えた場合、スケジューラは、このデバイスが将来のある時点
で内部キャッシュフラッシュ動作を行うかもしれないと予測することができる。スケジュ
ーラは、このようなイベントの発生を待つのではなく、スケジューラが選択した時点でキ
ャッシュフラッシュが行われるように、このデバイスのキャッシュフラッシュ動作を事前
対応的にスケジュールすることができる。これとは別に、又はこれに加えて、このような
事前対応動作を不定期に行うこともできる。それでもキャッシュフラッシュは発生するが
、その発生は予想外のものではなく、既にスケジューラが行う全体的なスケジューリング
の一部になっており、より効果的かつ知的に管理することができる。システムは、この事
前対応アクション232を行った後、一般的にはより予測しやすい状態240になること
が分かる。この理由は、デバイス上でキャッシュフラッシュがスケジュールされて実行さ
れ、デバイスがデバイス自体で自発的に内部キャッシュフラッシュを開始する可能性が減
少した(すなわち、そのキャッシュが既にフラッシュされた)からである。モデル内で反
応的アクション又は動作と事前対応アクション又は動作を組み合わせることにより、シス
テムの予測性を強化できるとともに、同様にスケジューリングの改善を達成することもで
きる。
ここで図3を参照すると、予想外の挙動を低減するようにI/Oスケジューリングを行
う方法300の1つの実施形態を示している。一般に、上述したネットワークアーキテク
チャ100及びデータストレージアレイ120a〜120b内で具体化される構成要素は
、方法300に従って動作することができる。この実施形態のステップを順番に示す。し
かしながら、ステップによっては、図示のものとは異なる順序で行なうことができるもの
、同時に行うことができるもの、他のステップと組み合わせることができるもの、及び別
の実施形態には存在しないものもある。
ブロック302において、I/Oスケジューラが、1又はそれ以上のストレージデバイ
スの読み込み及び書き込み動作をスケジュールする。様々な実施形態では、I/Oスケジ
ューラが、ストレージデバイス毎に別個のキューを(物理的又は論理的に)維持すること
ができる。また、I/Oスケジューラは、対応するストレージデバイスによりサポートさ
れる動作タイプ毎に別個のキューを含むことができる。例えば、I/Oスケジューラは、
SSDのための少なくとも別個の読み込みキュー及び別個の書き込みキューを維持するこ
とができる。ブロック304において、I/Oスケジューラは、1又はそれ以上のストレ
ージデバイスの挙動をモニタすることができる。1つの実施形態では、I/Oスケジュー
ラが、対応するストレージデバイスのモデル(例えば、デバイスのモデルに少なくとも部
分的に基づく挙動タイプモデル及び/又はアルゴリズム)を含み、このモデルに入力する
ための状態データをストレージデバイスから受け取ることができる。I/Oスケジューラ
内のモデルは、ストレージデバイスの既知の及び/又は観察された特性を利用することに
より、ストレージデバイスの挙動のモデル化及び予測の両方を行うことができる。
I/Oスケジューラは、I/Oパフォーマンスに影響を与える又は影響を与え得る所与
のストレージデバイスの特性を検出することができる。例えば、以下でさらに説明するよ
うに、デバイス及びI/Oトラフィックの様々な特性及び状態を維持することができる。
I/Oスケジューラは、これらの特性及び状態を観察することにより、所与のデバイスが
、長いI/Oレイテンシの挙動を示す状態にもうすぐ入るかもしれないと予測することが
できる。例えば、1つの実施形態では、I/Oスケジューラが、ストレージデバイスへの
要求の応答時間に影響を与え得る内部キャッシュフラッシュがストレージデバイス内でま
さに起きようとしていることを検出又は予測することができる。例えば、1つの実施形態
では、一定時間にわたってアイドルのままであるストレージデバイスは、内部キャッシュ
をフラッシュする可能性がある。いくつかの実施形態では、所与のデバイスがアイドルで
あるかどうかが、デバイス外部の展望に基づくことができる。例えば、ある期間にわたっ
てデバイスに動作がスケジュールされていない場合、このデバイスをほぼこの期間にわた
ってアイドルであると見なすことができる。このような実施形態では、このデバイスは、
デバイス内の内部的に開始されたアクティビティに基づいて実際には稼働中の可能性があ
る。しかしながら、デバイスがアイドルであるかどうかを判断する際には、このような内
部的に開始されたアクティビティは考慮されない。他の実施形態では、デバイスがアイド
ル中であるか、それとも稼働中であるか判断する際に、デバイスの内部的に開始されたア
クティビティを考慮することができる。スケジューラは、デバイスの挙動を観察すること
、及びこのデバイスが所与の時間にわたってアイドルであったと気付くことにより、いつ
内部キャッシュフラッシュが発生し得るかを予測することができる。他の実施形態では、
スケジューラが、デバイスの様々な状況又は状態を判断するためにデバイスにポーリング
する能力を有することもできる。いずれにせよ、スケジューラは、予定外の挙動が発生す
るのを防ぐために、内部キャッシュフラッシュなどの予定外の挙動の可能性を判断して、
事前対応動作を開始するように構成することができる。このようにして、スケジューラは
、デバイス及びシステム内のイベントのタイミングを制御し、より良好に動作をスケジュ
ールすることができる。
デバイス挙動に関する予測を行うための基準として様々な特性を使用することができる
。様々な実施形態では、スケジューラが、現在保留中の動作の状態及び/又はストレージ
デバイスに対応する最近の動作の履歴を維持することができる。いくつかの実施形態では
、I/Oスケジューラが、デバイス内のキャッシュのサイズ及び/又はキャッシングポリ
シーを把握し、ストレージデバイスに送られる総書き込み要求数を維持することができる
。他の実施形態では、デバイス内のキャッシュの状態を判断するために(デバイスへの直
接ポーリングタイプのアクセスなどの)他の機構を利用可能にすることができる。また、
I/Oスケジューラは、ストレージデバイスに送られる書き込み要求内のデータ量を追跡
することもできる。その後、I/Oスケジューラは、書き込み要求数又はその書き込み要
求に対応する総データ量がいつ所与の閾値に達したかを検出することができる。I/Oス
ケジューラは、このような状態(条件付きブロック306)を検出した場合、ブロック3
08において、デバイスの特定の動作をスケジュールすることができる。一般に、このよ
うな動作は、上述した事前対応動作に対応することができる。例えば、I/Oスケジュー
ラは、対応するキュー内にキャッシュフラッシュコマンドを入れ込んで、スケジューラの
選択時にストレージデバイスがキャッシュフラッシュを行うように強制することができる
。或いは、I/Oスケジューラは、ストレージデバイス上のいずれかのキャッシュフラッ
シュが完了したかどうかを判断するために、キュー内にダミーの読み込み動作を入れ込む
こともできる。さらに、スケジューラは、デバイスにクエリを行って(アイドル、稼働中
などの)状態情報を取得することができる。上記の及びその他の特性及び動作が可能であ
り、企図される。また、様々な実施形態では、SSDを元の状態に戻す際に事前対応動作
をスケジュールすることができる。このような実施形態では、SSDファームウェア及び
/又はマッピングテーブルが、要求が滞った状態又は恒久的に減速した状態に入ることが
ある。このファームウェアの障害を取り除くには、ドライブを単純にリセットすること、
又はドライブの電源を入れ直すことが可能である。しかしながら、状態が恒久的である(
すなわち、ファームウェア内に、マッピングテーブルの現状に対処できないバグが存在す
る)場合、これを修復する別の方法は、ドライブを再フォーマットしてFTLを完全にク
リーニング及びリセットし、その後データを再投入すること、又はこのFTLを何か他の
データに再利用することである。
上述したアクションを行って、予想外の可変応答時間の発生を防ぎ、又はその回数を減
少させることができる。同時に、I/Oスケジューラは、所与のストレージデバイスの予
想外の時点におけるあらゆる可変的挙動の発生を検出することができる。I/Oスケジュ
ーラは、このような状態(条件付きブロック310)を検出した場合、ブロック312に
おいて、このストレージデバイスの対応するキュー内にある動作を入れ込むことができる
。この場合、一般に、この動作は、上述した反応的動作に対応することができる。この動
作を使用して、ストレージデバイスが可変的挙動を行う時間を短縮し、この可変的挙動の
終了を検出することができる。様々な実施形態では、一般に、事前対応動作及び/又は反
応的動作が、デバイスを(少なくとも部分的に)既知の状態に置くことができるあらゆる
動作を含むことができる。例えば、キャッシュフラッシュ動作を開始することにより、デ
バイスのキャッシュ状態を空にすることができる。キャッシュが空のデバイスは、キャッ
シュが空でないデバイスよりも、内部キャッシュフラッシュを開始する可能性が低くなり
得る。事前対応動作及び/又は反応的動作のいくつかの例として、キャッシュフラッシュ
動作、消去動作、セキュアな消去動作、トリム動作、スリープ動作、休止動作、パワーオ
ン及びオフ、並びにリセット動作が挙げられる。
ここで図4を参照すると、ストレージデバイスに発行された動作を分離する方法400
の1つの実施形態を示している。この実施形態のステップを順番に示す。しかしながら、
ステップによっては、図示のものとは異なる順序で行なうことができるもの、同時に行う
ことができるもの、他のステップと組み合わせることができるもの、及び別の実施形態に
は存在しないものもある。様々な実施形態では、スケジューリングのために、第1のタイ
プの動作を第2のタイプの動作から分離することができる。例えば、1つの実施形態では
、第1のタイプの動作に、第2のタイプの動作よりも高いスケジューリング上の優先度を
与えることができる。このような実施形態では、第1のタイプの動作の処理を相対的に早
くスケジュールし、第2のタイプの動作を後で処理する(事実上、動作の処理を延期する
)ようにキューに入れることができる。先にキューに入れた(第2のタイプの)動作が処
理されている間、任意の時点で第1のタイプの動作の処理を中断することができる。その
後、第1のタイプの動作に処理優先度が戻されている間、第2の動作タイプの処理を再び
中断することができる。1つのタイプの処理をいつ停止し、別のタイプの処理をいつ開始
するかは、期間、蓄積されたデータ、トランザクションの頻度、利用可能なリソース(例
えば、キューの利用)、これらのあらゆる組み合わせ、又はあらゆる所望の状態に基づく
ことができる。
通常、SSDは、ランダムな読み込み及び書き込み要求に関しては、HDDよりも良好
なパフォーマンスを示す。しかしながら、通常、SSDは、その特性に起因して、ランダ
ム書き込み要求に関して示すパフォーマンスの方が読み込み要求よりも悪い。HDDとは
違って、読み込み要求と書き込み要求の相対的レイテンシは全く異なり、通常、フラッシ
ュメモリセルのプログラムには、その読み込みよりも時間が掛かるので、書き込み要求に
は読み込み要求よりも大幅に長い時間が掛かる。また、書き込み動作のレイテンシは、書
き込みの一部として行う必要がある追加動作が原因で極めて可変的となり得る。例えば、
既に修正済みのフラッシュメモリセルでは、書き込み又はプログラム動作の前に消去動作
が行われることがある。また、消去動作は、ブロック単位で行われることがある。このよ
うな場合、ブロック(消去セグメント)内のフラッシュメモリセルは、全部まとめて消去
される。1つのブロックは比較的大きく、複数のページを含むので、動作には比較的長い
時間が掛かることがある。或いは、FTLが、あるブロックを既に消去された消去ブロッ
クにリマップすることがある。いずれの場合にも、書き込み動作を行うことに関連する追
加動作により、書き込みレイテンシのばらつきが著しく大きくなるとともに、読み込みよ
りもレイテンシが大幅に長くなる。他のストレージデバイスタイプは、要求のタイプに基
づいて異なる特性を示すことがある。これらに加え、ストレージデバイスによっては、読
み込み要求と書き込み要求が混在している場合にパフォーマンス劣り、及び/又は可変的
になるものもある。従って、様々な実施形態では、パフォーマンスを向上させるために、
読み込み要求と書き込み要求を分離することができる。なお、この説明では、特に読み込
み及び書き込み動作について一般的に言及するが、本明細書で説明するシステム及び方法
を同様にその他の動作に適用することもできる。このような他の実施形態では、他の比較
的長い及び短いレイテンシの動作をこのように識別し、これらをスケジューリングのため
に分離することができる。また、いくつかの実施形態では、読み込み及び書き込みを第1
のタイプの動作として分類し、キャッシュフラッシュ及びトリム動作などのその他の動作
を第2のタイプの動作に対応するものとして分類することができる。様々な組み合わせが
可能であり、様々な企図が実現する。
ブロック402において、I/Oスケジューラは、1又はそれ以上のストレージデバイ
スのうちの所与のストレージデバイスに関するI/O要求を受け取ってバッファすること
ができる。ブロック404において、一般にレイテンシの短いI/O要求をレイテンシの
長い要求よりも優先してストレージデバイスに発行することができる。例えば、ストレー
ジデバイスが使用するストレージ技術に依存して、読み込み要求のレイテンシの方が書き
込み要求及びその他のコマンドタイプのレイテンシよりも短いことがあり、これを初めに
発行することができる。この結果、書き込み要求を蓄積できる一方で、読み込み要求に発
行優先度が与えられる(すなわち、書き込み要求よりも早くデバイスに伝えられる)。I
/Oスケジューラは、ある時点でデバイスに読み込み要求を発行するのを中断して書き込
み要求を発行し始める。1つの実施形態では、書き込み要求を複数の書き込みストリーム
として発行することができる。従って、書き込み要求に伴うオーバヘッドを複数の書き込
み要求にわたって償却することができる。このように、レイテンシの長い要求(書き込み
要求など)とレイテンシの短い要求(読み込み要求など)を分離して別個に処理すること
ができる。
ブロック406において、I/Oスケジューラは、レイテンシの長い要求を(単複の)
デバイスに伝えるべき旨を示す特定の状態が存在するかどうかを判定することができる。
例えば、1つの実施形態では、このような状態の検出が、一定数のレイテンシの長いI/
O要求、又は対応するデータの量が蓄積されて所与の閾値に達したことを検出することを
含むことができる。或いは、受け取ったレイテンシの長い要求の割合が何らかの閾値に達
することもある。数多くのこのような状態が可能であり、企図される。1つの実施形態で
は、このレイテンシの長い要求を、書き込み要求とすることができる。このような状態が
生じた(条件付きブロック408)場合、ブロック410において、I/Oスケジューラ
は、所与のストレージデバイスにレイテンシの長いI/O要求を発行し始めることができ
る。このような発行される要求の数は、所与のアルゴリズムによって異なることがある。
この数は、一定の又はプログラム可能な書き込み数又はデータ量に対応することもできる
。或いは、一定期間にわたって書き込みを発行することもできる。例えば、この期間は、
特定の状態が存在しなくなる(例えば、受け取った書き込みの割合が下がる)まで、又は
特定の状態が生じるまで継続することができる。或いは、デバイスに対するレイテンシの
長い要求の発行をいつ開始すべきか、又はいつ停止すべきかを判断する際に、上記のいず
れかの組み合わせを使用することができる。いくつかの実施形態では、書き込み要求スト
リーム後の第1の読み込み要求が、他の読み込み要求と比較して相対的に遅いことがある
。書き込み要求ストリームの直後に発行スロット内に「本物」の読み込み要求をスケジュ
ールすることを避けるために、I/Oスケジューラを、書き込み要求ストリーム後に自動
的に「ダミー」の読み込みをスケジュールするように構成することができる。この文脈で
は、「本物」の読み込みとは、ユーザ又はアプリケーションがデータが要求する読み込み
のことであり、「ダミー」の読み込みとは、データを単純に破棄できる人工的に創出され
た読み込みのことである。様々な実施形態では、ダミーの読み込みが完了したものとして
検出されるまで、書き込み要求が完了したと判断されない場合がある。また、様々な実施
形態では、書き込みストリームの後にキャッシュフラッシュが続き、これを使用して書き
込みがいつ完了したかを判断することができる。
ここで図5を参照すると、ストレージサブシステム内のストレージデバイスの挙動を特
徴付けるモデルを作成する方法500の1つの実施形態を示している。この実施形態のス
テップを順番に示す。しかしながら、ステップによっては、図示のものとは異なる順序で
行なうことができるもの、同時に行うことができるもの、他のステップと組み合わせるこ
とができるもの、及び別の実施形態には存在しないものもある。
ブロック502において、ストレージサブシステム内で使用する1又はそれ以上のスト
レージデバイスを選択することができる。ブロック504において、キャッシュサイズ、
典型的な読み込み及び書き込み応答時間、ストレージトポロジ、デバイス寿命などの、各
デバイスの様々な特性を識別することができる。ブロック506において、所与のストレ
ージデバイスのI/Oパフォーマンスに影響を与える1又はそれ以上の特性を識別するこ
とができる。
ブロック508において、所与のデバイスの特性のタイミング及び/又は発生に影響を
与える1又はそれ以上のアクションを特定することができる。一例として、キャッシュフ
ラッシュ、及びSSDの消去動作などの所与の動作の実行を挙げることができる。例えば
、キャッシュフラッシュなどの強制動作は、予想外の時点におけるSSDの可変応答時間
の発生を低減することができる。ブロック510において、対応する特性及びアクション
に基づいて、1又はそれ以上の選択されたデバイスの各々に関するモデルを作成すること
ができる。このモデルは、ストレージコントローラ内のI/Oスケジューラ内などのソフ
トウェア内で使用することができる。
図6を参照すると、ストレージサブシステムの1つの実施形態の汎用ブロック図を示し
ている。図示の実施形態では、ストレージデバイス176a〜176mの各々を単一のデ
バイスグループ内に示している。しかしながら、他の実施形態では、1又はそれ以上のス
トレージデバイス176a〜176mを、デバイスグループ173a〜173mのうちの
2又はそれ以上に区分化することができる。デバイスユニット600a〜600wには、
各ストレージデバイスの1又はそれ以上の対応する動作キュー及びステータステーブルを
含めることができる。これらのデバイスユニットは、RAM172に記憶することができ
る。デバイスグループ173a〜173mの各々には、対応するI/Oスケジューラ17
8を含めることができる。各I/Oスケジューラ178は、対応するデバイスグループ内
のストレージデバイスの各々の状態データを追跡するモニタ610を含むことができる。
スケジューリングロジック620は、対応するストレージデバイスにどの要求を発行すべ
きかを判断するとともに、要求を発行するタイミングを判断することができる。
ここで図7を参照すると、デバイスユニット600の1つの実施形態の汎用ブロック図
を示している。デバイスユニット600は、デバイスキュー710及びテーブル720を
含むことができる。デバイスキュー710は、読み込みキュー712、書き込みキュー7
14、及びその他の動作キュー716などの1又はそれ以上のその他のキューを含むこと
ができる。各キューは、1又はそれ以上の対応する要求を記憶するための複数のエントリ
730を含むことができる。例えば、対応するSSDのデバイスユニットは、少なくとも
読み込み要求、書き込み要求、トリム要求及び消去要求などを記憶するためのキューを含
むことができる。テーブル720は、1又はそれ以上の状態テーブル722a〜722b
を含み、これらの各々は、状態データを記憶するための複数のエントリ730を含むこと
ができる。様々な実施形態では、図7に示すキューを、物理的に及び/又は論理的に別個
のものとすることができる。また、キュー及びテーブルが特定数のエントリを含むように
示しているが、必ずしもこれらのエントリ自体が互いに対応するわけではない。また、キ
ュー及びテーブルの数は、図示のものと異なることもある。さらに、エントリには、所与
のキュー内で又は複数のキューにわたって優先順位を付けることができる。例えば、読み
込み要求は、デバイスに要求を発行する順序に影響を与える、高、中又は低の優先度を有
することができる。また、このような優先度は、様々な状況に応じて変更することができ
る。例えば、一定の寿命に達する優先度の低い読み込みの優先度を上げることができる。
当業者には、数多くのこのような優先順位付けスキーム及び技術が知られている。全ての
このような方法が企図されており、本明細書で説明するシステム及び方法に関連して使用
することができる。
ここで図8を参照すると、図7に示すような状態テーブルの1つの実施形態を示す汎用
ブロック図を示している。1つの実施形態では、このようなテーブルが、所与のストレー
ジデバイスの状態情報、エラー情報、摩耗レベル情報及びその他の情報に対応するデータ
を含むことができる。対応するI/Oスケジューラは、この情報にアクセスすることがで
き、これによりI/Oスケジューラは、ストレージデバイスへのI/O要求をより良好に
スケジュールすることができる。1つの実施形態では、この情報が、デバイス寿命802
、エラー率804、デバイス806上で検出された総エラー数、回復可能なエラー数80
8、回復不能なエラー数810、デバイスのアクセス速度812、記憶されたデータの寿
命814、対応するキャッシュサイズ816、対応するキャッシュフラッシュアイドル時
間818、1又はそれ以上の割り当て空間の割り当て状態820〜822、同時処理レベ
ル824、及び様々な動作の(単複の)予想時間826のうちの少なくとも1つ又はそれ
以上を含むことができる。割り当て状態は、使用中、空、及びエラーなどを含むことがで
きる。所与のデバイスの同時処理レベルは、デバイスの複数の動作を同時に処理する能力
に関する情報を含むことができる。例えば、あるデバイスが4つのフラッシュチップを有
し、各々が一度に1つの転送を行うことができる場合、このデバイスは、最大4つの並行
動作を行うことができる。特定の動作を並行して行うことができるか否かは、デバイス上
にデータがどのようにレイアウトされていたかに依存することができる。例えば、デバイ
ス内のデータが、要求によりアクセスされるデータが全て1つのチップ上に存在するよう
にレイアウトされている場合、このデータに関する動作を、異なるチップのデータにアク
セスする要求と並行して進めることができる。しかしながら、要求によりアクセスされる
データが複数のチップにわたってストライプ状になっている場合、この要求が他の1つに
干渉することがある。従って、デバイスは、最大N回(例えば、デバイスが4つのチップ
を有する上述の例では4回)の並行/同時動作を行うことができる。或いは、この最大同
時処理レベルは、関与する動作のタイプに基づくこともできる。いずれにせよ、動作をス
ケジュールする時には、スケジューラは、同時処理レベルN及び未処理のトランザクショ
ン数Mを示す記憶情報を考慮することができる。
ここで図9を参照すると、データストレージサブシステム上における予想外の可変I/
O応答時間を低減するようにI/Oスケジューリングを調整する方法900の別の実施形
態を示している。ネットワークアーキテクチャ100及びデータストレージアレイ120
a〜120b内で具体化される構成要素は、一般に方法900に従って動作することがで
きる。説明を目的として、この実施形態のステップを順番に示す。しかしながら、ステッ
プによっては、図示のものとは異なる順序で行なうことができるもの、同時に行うことが
できるもの、他のステップと組み合わせることができるもの、及び別の実施形態には存在
しないものもある。
ブロック902において、I/Oスケジューラは、ストレージデバイスの各々の挙動を
モニタすることができる。条件付きブロック904〜908には、方法300の条件付き
ステップ306に関して上述したような、I/Oパフォーマンスに影響を与え得る所与の
デバイスの特性を検出する1つの実施形態を示す。1つの実施形態では、I/Oスケジュ
ーラが、所与のデバイスが所与のアイドル時間を超えていることを検出した(条件付きブ
ロック904)場合、又は対応するキャッシュが占有率閾値を超えていることを検出した
(条件付きブロック906)場合、又はキャッシュデータがデータ寿命閾値を超えている
ことを検出した(条件付きブロック908)場合、ブロック910において、この所与の
ストレージデバイスに強制(事前対応)動作を発行することができる。このような場合、
スケジューラは、直ちに及び予測できない時点で内部キャッシュフラッシュが発生するで
あろうと予測することができる。このようなイベントの発生を避けるために、I/Oスケ
ジューラは、イベントを避ける動作を事前対応的にスケジュールする。
なお、上述したイベントの回避とは、イベントが発生しないこと、或いは予想外又は予
定外の時点で発生しないことを意味することができる。換言すれば、一般にスケジューラ
は、所与のイベントがスケジューラのタイミングに従って発生し、その他の場合には発生
しないことを好む。この意味では、スケジューラがスケジュールしたことによって発生す
るレイテンシの長いイベントのほうが、このような予想外に発生するイベントよりもまし
である。少なくともこれらの検出を行うために、スケジューリングロジック620内のタ
イマ及びカウンタをモニタ610と組み合わせて使用することができる。特定のストレー
ジデバイスに発行される強制的動作の一例として、キャッシュフラッシュを挙げることが
できる。強制的動作の別の例として、消去要求を挙げることもできる。強制的動作は、I
/Oスケジューラから、対応するデバイスユニット600内のデバイスキュー710内の
対応するキューにスケジューリングの一部として送ることができる。
ここで図10を参照すると、共有データストレージ上における相対的にレイテンシの短
い読み込み動作を維持する方法1000の1つの実施形態を示している。ネットワークア
ーキテクチャ100及びデータストレージアレイ120a〜120b内に具体化される構
成要素は、一般に方法1000に従って動作することができる。説明を目的として、この
実施形態のステップを順番に示す。しかしながら、ステップによっては、図示のものとは
異なる順序で行なうことができるもの、同時に行うことができるもの、他のステップと組
み合わせることができるもの、及び別の実施形態には存在しないものもある。
ブロック1002において、ストレージサブシステムのRAIDアーキテクチャ内の冗
長性の量を、所与のデバイスグループ173内で使用すべきと判断することができる。例
えば、4+2のRAIDグループでは、ストレージデバイスのうちの2つを使用して、パ
リティ情報などの消去訂正符号(ECC)情報を記憶することができる。この情報を、再
構成読み込み要求の一部として使用することができる。1つの実施形態では、この再構成
読み込み要求を通常のI/Oスケジューリング中に使用して、いくつかのストレージデバ
イスが可変I/O応答時間を示していることが検出されている間にデバイスグループのパ
フォーマンスを向上させることができる。ブロック1004において、デバイスグループ
内の同時に使用中の、又は可変応答時間を示している可能性のあるデバイスの最大数を求
める。この最大数は、目標数と呼ぶことができる。1つの実施形態では、ストレージデバ
イスが、書き込み要求、消去要求又はキャッシュフラッシュを実行することに起因して可
変応答時間を示すことがあるSSDである。1つの実施形態では、目標数が、引き続き再
構成読み込みを行うことができるように選択される。
1つの実施形態では、I/Oスケジューラが、再構成読み込みがそれ以上効率的でなく
なるレベルにまで目標数を引き上げることを保証する状態を検出することができる。例え
ば、所与のデバイスの未処理の書き込み要求数が、待機中閾値に達する(すなわち、書き
込み要求がかなりの期間にわたって未処理のままであり、これらをこれ以上待機させるべ
きでないと判断する)ことがある。或いは、上述したように、後で発行されるように蓄積
できない比較的優先度の高い一定数の書き込み要求を検出することができる。I/Oスケ
ジューラは、このような状態(条件付きブロック1006)を検出した場合、ブロック1
008において、1又はそれ以上の検出した状況に基づいて目標を増分又は減分すること
ができる。例えば、適当な数の高優先度の書き込み要求が未処理である場合、又は他の何
らかの条件が生じた場合、I/Oスケジューラは、サポートされる冗長性の量よりも目標
が上回るようにすることができる。ブロック1010において、I/Oスケジューラは、
デバイスグループ内のN個のストレージデバイスが可変I/O応答時間を示していると判
断することができる。Nが目標を上回る場合(条件付きブロック1012)、ブロック1
014において、Nを低減するようにストレージデバイスをスケジュールすることができ
る。そうでない場合、ブロック1016において、I/Oスケジューラは、パフォーマン
スを向上させるように要求をスケジュールすることができる。例えば、I/Oスケジュー
ラは、以下でさらに説明するような再構成読み込み要求の能力を利用することができる。
ここで図11を参照すると、可変I/O応答時間を示すストレージデバイスの数を低減
する方法1100の1つの実施形態を示している。この実施形態のステップを順番に示す
。しかしながら、ステップによっては、図示のものとは異なる順序で行なうことができる
もの、同時に行うことができるもの、他のステップと組み合わせることができるもの、及
び別の実施形態には存在しないものもある。
ブロック1102において、I/Oスケジューラは、予想外の時点で可変応答時間を引
き起こすレイテンシの長い動作を実行するストレージサブシステム内のストレージデバイ
スの数Nを低減すると判断することができる。ブロック1104において、I/Oスケジ
ューラは、レイテンシの長い動作を実行する所与のデバイスを選択することができる。ブ
ロック1106において、I/Oスケジューラは、この所与のデバイス上におけるレイテ
ンシの長い動作の実行を中止させてNを減分することができる。例えば、I/Oスケジュ
ーラは、この所与のストレージデバイスに対する書き込み要求及び消去要求の発行を停止
することができる。また、対応するI/Oスケジューラは、発行された書き込み要求及び
消去要求の実行を中止させることもできる。ブロック1108において、I/Oスケジュ
ーラは、この所与のデバイス上で、読み込み要求などのレイテンシの短い動作の実行を開
始することができる。これらの読み込み要求は、再構成読み込み要求を含むことができる
。このようにして、デバイスは、レイテンシの長い応答状態を放置し、Nを低減する。
ここで図12を参照すると、共有データストレージ上における効率的なレイテンシによ
る読み込み動作を維持する方法の1つの実施形態を示している。ネットワークアーキテク
チャ100及びデータストレージアレイ120a〜120b内に具体化される構成要素は
、一般にこの方法に従って動作することができる。説明を目的として、この実施形態のス
テップを順番に示す。しかしながら、ステップによっては、図示のものとは異なる順序で
行なうことができるもの、同時に行うことができるもの、他のステップと組み合わせるこ
とができるもの、及び別の実施形態には存在しないものもある。
図12で説明する方法は、方法1000のステップ1016を行うために取られるステ
ップの1つの実施形態を表すことができる。ブロック1201において、I/Oスケジュ
ーラは、可変応答時間挙動を示している第1のデバイスに向けられた最初の読み込み要求
を受け取る。第1のデバイスは、特定のスケジュール動作を受け取ったことにより(すな
わち、既知の理由)、又は何らかの未知の理由により可変応答時間を示していることがあ
る。様々な実施形態では、所与の動作の予想されるレイテンシに少なくとも部分的に基づ
いて、可変応答時間と考えられるものを特定することができる。例えば、デバイスの特性
及び/又は最近の動作履歴に基づいて、所与の読み込みに対する応答が一定期間内に発生
すると予想することができる。例えば、許容可能な応答レイテンシの範囲を反映すると判
断されるデルタを有するデバイスの平均応答レイテンシを特定することができる。このよ
うなデルタは、トランザクションの99%又は他のいずれかの好適な数のトランザクショ
ンを考慮するように選択することができる。予想される期間内に応答が受け取られなかっ
た場合、再構成読み込みの開始をトリガすることができる。
一般的に言えば、再構成読み込みが模倣されるか否かは、再構成読み込みを行うことに
関連するコストと、再構成読み込みの結果を取得する利点(見込み)とを比較する費用便
益分析に基づくことができる。例えば、所与のデバイスにおける最初の読み込み要求に対
する応答が一定時間内に受け取られない場合、このデバイスが、開始すべき再構成読み込
みのレイテンシを上回るレイテンシを生じる動作を行っていると予測することができる。
従って、再構成読み込みを開始することができる。このようなアクションは、(例えば)
一定レベルの読み込みサービスパフォーマンスを維持するために行うことができる。なお
、再構成読み込みを開始すべきかどうか判断する際には、現在の負荷、受け取られている
要求のタイプ、要求の優先度、システム内の他のデバイスの状態、並びに図7及び図8で
説明したような様々な特性などの他の要素を同様に考慮することができる。さらに、最初
の読み込みの応答レイテンシが比較的長いという理由で再構成読み込みを開始することが
できるが、最初の読み込み要求は実際に完了することが予想される。実際には、最初の読
み込み及び再構成読み込みがいずれも正常に完了して結果を提供することができる。従っ
て、再構成読み込みは、最初の要求が処理されるようにするために必要なものではない。
このことは、トランザクションが正常に完了しない(又はその可能性がある)ことを示す
レイテンシ及び何らかのエラー表示を検出することなどの、エラー状態に起因するレイテ
ンシとは対照的である。例えば、所与のストレージの場所を読み込めないことに起因する
デバイスタイムアウトは、完了することが予想されない応答を表す。このような場合、要
求を処理するために再構成読み込みが必要となり得る。従って、様々な実施形態では、シ
ステムが、所与のデバイスの少なくとも2つのタイムアウト状態を効果的に含むことがで
きる。第1のタイムアウトは、それ以降、必ずしも必要でなくても再構成読み込みを開始
できるようになる期間に対応する。このようにして、再構成読み込みを、非エラーに関連
するスケジューリングプロセスの通常部分としてスケジューリングアルゴリズムに組み込
むことができる。第1のタイムアウト後に発生する第2のタイムアウトは、それ以降、エ
ラー状態が発生したと考えられる期間を表す。この場合、エラーを示すデバイスが最初の
読み込みを処理しないと予想されることを理由として再構成読み込みを開始することもで
きる。
上記に照らして、I/Oスケジューラは、最初の読み込みに対応する再構成読み込みを
開始すべきかどうかを判断することができる(判断ブロック1202)。一般に、この再
構成読み込みは、第1のデバイス以外のデバイスによって処理される1又はそれ以上の読
み込みを伴う。再構成読み込みを開始すべきかどうかを判断する際には、多くの要因を考
慮することができる。一般的に言えば、I/Oスケジューラは、コスト/利益分析を行っ
て、第1のデバイスによって最初の読み込みを処理しようとする方が「良い」か、それと
も再構成読み込みを発行することによって最初の読み込みを処理しようとする方が「良い
」かを判断する。上述したように、再構成読み込みを開始すべきかどうかを判断する際に
は、いくつかの要素を考慮することができる。所与の状況においてどちらが「良い」かは
異なることがあり、プログラム可能であり、動的に判断することができる。例えば、アル
ゴリズムを、常により高速な読み込み応答時間を重んじるようなものとすることができる
。このような場合、最初のデバイスが最初の読み込みを処理する前に再構成読み込みの処
理を完了できる(又は完了してもよい)かどうかを判断することができる。或いは、アル
ゴリズムが、ある時点でシステム負荷を低減することを優先すると判断することもできる
。このような場合、I/Oスケジューラは、たとえ最初の読み込みよりも速く再構成読み
込みを完了できる場合でも、追加のオーバヘッドを伴う再構成読み込みを開始しないこと
を選択することができる。さらに、このような判断では、速度とオーバヘッドの微妙なバ
ランスを使用することができる。様々な実施形態では、アルゴリズムに、(例えば、負荷
に関わらず常に速度を優先するなどの)初期重み付けをプログラムすることができる。こ
のような重み付けは不変的なものであってもよく、又は様々な状況によって動的に変化す
るようにプログラム可能であってもよい。例えば、状況として、時刻、受け取ったI/O
要求の速度、受け取った要求の優先度、特定のタスクが検出されたかどうか(例えば、現
在バックアップ処理が行われているかどうか)、及び不具合の検出などを挙げることがで
きる。
スケジューラが、再構成読み込みを開始しないと決定した場合、元々対象になっていた
デバイスが読み込みを処理することができる(ブロック1203)。或いは、再構成読み
込みを開始することもできる(ブロック1204)。1つの実施形態では、再構成読み込
みを処理するために選択される他のデバイスが、非可変的挙動を示すものとして識別され
たものである。非可変的挙動(すなわち、より予測しやすい挙動)を示すデバイスを選択
することにより、I/Oスケジューラは、再構成読み込みを処理するのにどれほどの時間
が掛かるかをより良好に予測することができる。デバイスの所与の可変的/非可変的挙動
に加え、I/Oスケジューラは、各デバイスの他の側面を考慮することもできる。例えば
、再構成読み込みを処理するための特定のデバイスを選択する際に、I/Oスケジューラ
は、所与のデバイスに関する未処理要求の数(例えば、デバイスキューがどれほど埋まっ
ているか)、所与のデバイスに関する現在保留中の要求の優先度、及びデバイス自体の予
想処理速度(例えば、デバイスによっては、他のデバイスよりも古い又は本質的に別様に
低速の技術を示すものもある)などを評価することもできる。さらに、スケジューラは、
デバイスの各々からの対応する結果がほぼ同時に戻されるように再構成読み込みをスケジ
ュールしたいと望むことができる。このような場合、スケジューラは、再構成読み込みを
処理するための特定のデバイスの処理時間が他のデバイスとは有意に異なると予測される
場合、たとえこのデバイスが他のデバイスよりも大幅に高速であるとしても、このデバイ
スの優先度を下げることができる。数多くのこのような考慮すべき要因及び条件が可能で
あり、企図される。
1つの実施形態では、再構成読み込み要求が、最初の読み込み要求の優先度レベルを継
承することができる。他の実施形態では、再構成読み込み要求が、最初の読み込み要求と
は異なる優先度を有することができる。I/Oスケジューラは、対応する再構成読み込み
要求を受け取る選択した第2の(他の)デバイスが現在可変応答時間挙動(条件付きブロ
ック1205)を示していることを検出し、この第2のデバイスが、第1のデバイスが非
可変的になると予測される後まで可変的状態に留まると予測される場合、ブロック120
8において、第1のデバイスに最初の読み込み要求を発行することができる。1つの実施
形態では、タイマを使用して、可変応答時間を示すストレージデバイスがいつ再び非可変
応答時間を示すことができるかを予測することができる。方法1200の制御フローは、
ブロック1208からブロックCを介して条件付きブロック1212に移行する。第2の
デバイスが第1のデバイスよりも長く可変的状態に留まらない(条件付きブロック120
6)と予測される場合、方法1200の制御フローはブロック1210に移行する。ブロ
ック1210において、発行された再構成読み込み要求によって読み込み要求を処理する
I/Oスケジューラは、所与の可変的デバイスが非可変的になることを検出した(条件
付きブロック1212)場合、ブロック1214において、この所与のデバイスに最初の
読み込み要求を発行する。I/Oスケジューラは、この所与のデバイスを非可変的として
指定し、N(可変I/O応答時間を示していることが検出されたストレージデバイスの数
)を減分することができる。代替の再構成読み込み要求の前に最初の読み込み要求が終了
した(条件付きブロック1216)場合、ブロック1218において、I/Oスケジュー
ラは、最初の読み込み要求で読み込み要求に対応する。様々な実施形態では、スケジュー
ラが、再構成読み込み要求を除去することができる。或いは、再構成読み込み要求を完了
して、そのデータを単純に破棄することもできる。そうでない場合、ブロック1220に
おいて、I/Oスケジューラは、この読み込み要求を再構成読み込み要求で処理し、最初
の読み込み要求を除去する(又はその戻されたデータを破棄する)ことができる。
なお、上述の実施形態は、ソフトウェアを含むことができる。このような実施形態では
、方法及び/又は機構を実装するプログラム命令をコンピュータ可読媒体で搬送し、又は
これに記憶することができる。プログラム命令を記憶するように構成された数多くのタイ
プの媒体が利用可能であり、これらは、ハードディスク、フロッピー(登録商標)ディス
ク、CD−ROM、DVD、フラッシュメモリ、プログラマブルROM(PROM)、ラ
ンダムアクセスメモリ(RAM)及び他の様々な形態の揮発性又は不揮発性ストレージを
含む。
様々な実施形態では、本明細書で説明した方法及び機構の1又はそれ以上の部分が、ク
ラウドコンピューティング環境の一部を成すことができる。このような実施形態では、1
又はそれ以上の様々なモデルにより、インターネットを介してリソースをサービスとして
提供することができる。このようなモデルとして、インフラストラクチャ・アズ・ア・サ
ービス(IaaS)、プラットホーム・アズ・ア・サービス(PaaS)、及びソフトウ
ェア・アズ・ア・サービス(SaaS)を挙げることができる。IaaSでは、コンピュ
ータインフラストラクチャがサービスとして配信される。このような場合、一般にサービ
スプロバイダがコンピュータ設備を所有し運営する。PaaSモデルでは、開発者がソフ
トウェアソリューションを開発するために使用するソフトウェアツール及び基本設備をサ
ービスプロバイダがサービスとして供給しホストすることができる。通常、SaaSは、
サービスプロバイダのライセンスソフトウェアをサービスオンデマンドとして含む。サー
ビスプロバイダは、このソフトウェアをホストすることができ、又はこのソフトウェアを
一定期間にわたって顧客に展開することができる。上記のモデルの数多くの組み合わせが
可能であり、企図される。また、上記の説明はネットワーク化されたストレージ及びコン
トローラに焦点を当てたものであるが、上述の方法及び機構を、直接接続ストレージ及び
ホストオペレーティングシステムなどを有するシステムにおいて適用することもできる。
以上、実施形態についてかなり詳細に説明したが、上記開示を完全に理解すると、当業
者には数多くの変形及び修正が明らかになるであろう。以下の特許請求の範囲は、このよ
うな変形及び修正を全て含むと解釈すべきである。
400:方法
402:所与のストレージデバイスのI/O要求を受け取ってバッファ。
404:所与のストレージデバイスへのレイテンシの短いI/O要求を発行。
406:レイテンシの長いI/O要求に関し、要求の数又は対応するデータの量が所与の
閾値に達するかどうかを判断。
408:レイテンシの長いI/O要求の所与の閾値に達したか?
410:レイテンシの長いI/O要求を所与のストレージデバイスに発行。

Claims (20)

  1. データを記憶するように構成された複数のストレージデバイスを含むデータ記憶媒体と、
    前記データ記憶媒体に結合されたデータストレージコントローラと、を備え、前記データストレージコントローラは、
    前記データ記憶媒体を対象とする、第1のタイプの動作及び第2のタイプの動作を含む要求を受け取り、
    前記第1のタイプの対応として前記要求の1つ又はそれ以上の第1の要求を識別し、
    前記第2のタイプの対応として前記要求の1つ又はそれ以上の第2の要求を識別し、
    前記第1つ又はそれ以上の第1の要求を、前記複数のストレージデバイスによって直ちに処理されるようにスケジュールし、前記第1のタイプの対応として前記1つ又はそれ以上の第1の要求の識別に応答し、
    前記1つ又はそれ以上の第2の要求を、前記複数のストレージデバイスによって後で処理されるようにキューに入れ、前記第2のタイプの対応として前記1つ又はそれ以上の第2の要求の識別に応答し、
    前記第1のタイプの動作に対応する要求の処理を中断し、前記第2のタイプの動作に対応する要求のみを処理し、一定の時間にわたって新たな要求が受け取られなかったことの検出に応答する、
    ように構成される、ことを特徴とするコンピュータシステム。
  2. 前記第1のタイプの動作は、レイテンシが相対的に短いと予想される動作に対応し、前記第2のタイプの動作は、レイテンシが相対的に長いと予想される動作に対応する、ことを特徴とする請求項1に記載のコンピュータシステム。
  3. 前記第1のタイプの動作は、読み込み要求に対応し、前記第2のタイプの動作は、書き込み要求、キャッシュフラッシュ、又はトリム動作に対応する、ことを特徴とする請求項2に記載のコンピュータシステム。
  4. 前記複数のストレージデバイスは、ソリッドステートストレージデバイスであり、該ソリッドステートストレージデバイスの各々は、読み込み要求を相対的に短いレイテンシで処理し、書き込み要求を相対的に長いレイテンシで処理する、ことを特徴とする請求項1に記載のコンピュータシステム。
  5. 前記1又はそれ以上の第2の要求の多数が閾値に達したこと、前記1つ又はそれ以上の第2の要求に対応するデータの蓄積量が閾値に達したこと、前記第2のタイプの要求が処理されてからある時間が経過したこと、の少なくとも1つを検出することに応答し、前記ストレージコントローラは、前記第2のタイプの動作に対応する複数の要求をキューに入れた後、前記第1のタイプの動作に対応する要求の処理を中断し、前記第2のタイプの動作に対応する要求のみを処理するように構成されることを特徴とする請求項1に記載のコンピュータシステム。
  6. 前記第2のタイプの動作に対応する前記1つ又はそれ以上の第2の要求は、書き込み要求に対応し、前記ストレージコントローラは、前記書き込み要求の後に、所与のデバイスに対してダミーの読み込みを自動的にスケジュールするように構成される、ことを特徴とする請求項5に記載のコンピュータシステム。
  7. 前記ストレージコントローラは、前記複数のデバイスのうちの別のデバイスが相対的に短い応答レイテンシを示していることを検出したことに応答して、前記第2のタイプの動作に対応する要求の処理を中断するように構成される、ことを特徴とする請求項5に記載のコンピュータシステム。
  8. 前記第2のタイプの動作に対応する前記1つ又はそれ以上の第2の要求は、書き込み要求に対応し、前記ストレージコントローラは、前記書き込み要求を、処理するための複数の不連続単位のデータとしてストリーミングし、前記ストレージコントローラは、前記単位のいずれかの後に前記ストリーミングを停止することができる、ことを特徴とする請求項2に記載のコンピュータシステム。
  9. 前記ストレージコントローラは、所与の状態を検出したことに応答して、前記第1のタイプに対応する要求の処理を直ちに停止し、前記第2のタイプに対応するキューに入れられた要求の処理を開始するように構成される、ことを特徴とする請求項1に記載のコンピュータシステム。
  10. 前記状態は、特定数の前記第2のタイプの要求がキューに入ったこと、前記第2のタイプの要求が処理されてからある時間が経過したことのうちの少なくとも1つを含む、ことを特徴とする請求項9に記載のコンピュータシステム。
  11. コンピューティングシステムで使用するための方法であって、
    データを記憶するように構成された複数のストレージデバイスを含むデータ記憶媒体を対象とする、第1のタイプの動作及び第2のタイプの動作を含む要求を受け取るステップと、
    前記第1のタイプの対応として前記要求の1つ又はそれ以上の第1の要求を識別するステップと、
    前記第2のタイプの対応として前記要求の1つ又はそれ以上の第2の要求を識別するステップと、
    前記第1つ又はそれ以上の第1の要求を、前記複数のストレージデバイスによって直ちに処理されるようにスケジュールし、前記第1のタイプの対応として前記1つ又はそれ以上の第1の要求の識別に応答するステップと、
    前記1つ又はそれ以上の第2の要求を、前記複数のストレージデバイスによって後で処理されるようにキューに入れ、前記第2のタイプの対応として前記第2のタイプの1つ又はそれ以上の第2の要求の識別に応答するステップと、
    前記第1のタイプの動作に対応する要求の処理を中断し、前記第2のタイプの動作に対応する要求のみを処理し、一定の時間にわたって新たな要求が受け取られなかったことの検出に応答するするステップと、
    を含むことを特徴とする方法。
  12. 前記第1のタイプの動作は、レイテンシが相対的に短いと予想される動作に対応し、前記第2のタイプの動作は、レイテンシが相対的に長いと予想される動作に対応する、ことを特徴とする請求項11に記載の方法。
  13. 前記第1のタイプの動作は、読み込み要求に対応し、前記第2のタイプの動作は、書き込み要求、キャッシュフラッシュ、又はトリム動作に対応する、ことを特徴とする請求項12に記載の方法。
  14. 前記複数のストレージデバイスは、ソリッドステートストレージデバイスであり、該ソリッドステートストレージデバイスの各々は、読み込み要求を相対的に短いレイテンシで処理する、ことを特徴とする請求項11に記載の方法。
  15. 前記1又はそれ以上の第2の要求の多数が閾値に達したこと、前記1つ又はそれ以上の第2の要求に対応するデータの蓄積量が閾値に達したこと、前記第2のタイプの要求が処理されてからある時間が経過したこと、の少なくとも1つを検出することに応答し、
    前記第2のタイプの動作に対応する複数の要求をキューに入れた後、前記第1のタイプの動作に対応する要求の処理を中断し、前記第2のタイプの動作に対応する要求のみを処理するステップを含む、ことを特徴とする請求項11に記載の方法。
  16. 前記第2のタイプの動作に対応する前記1つ又はそれ以上の第2の要求は、書き込み要求に対応し、前記方法は、前記書き込み要求の後に、所与のデバイスに対してダミーの読み込みを自動的にスケジュールするステップを含む、ことを特徴とする請求項15に記載の方法。
  17. 前記複数のストレージデバイスのうちの別のデバイスが相対的に短い応答レイテンシを示していることを検出したことに応答して、前記第2のタイプの動作に対応する要求の処理を中断するステップを含む、ことを特徴とする請求項15に記載の方法。
  18. 前記第2のタイプの動作に対応する前記1つ又はそれ以上の第2の要求は、書き込み要求に対応し、前記方法は、前記書き込み要求を、処理するための複数の不連続単位のデータとしてストリーミングするステップを含み、前記方法は、前記単位のいずれかの後に前記ストリーミングを停止することができる、ことを特徴とする請求項12に記載の方法。
  19. プログラム命令を含む持続性コンピュータ可読記憶媒体であって、前記プログラム命令は、処理デバイスによる実行時に、
    データを記憶するように構成された複数のストレージデバイスを含むデータ記憶媒体を対象とする、第1のタイプの動作及び第2のタイプの動作を含む要求を受け取り、
    前記第1のタイプの対応として前記要求の1つ又はそれ以上の第1の要求を識別し、
    前記第2のタイプの対応として前記要求の1つ又はそれ以上の第2の要求を識別し、
    前記第1つ又はそれ以上の第1の要求を、前記複数のストレージデバイスによって直ちに処理されるようにスケジュールし、前記第1のタイプの対応として前記1つ又はそれ以上の第1の要求の識別に応答し、
    前記1つ又はそれ以上の第2の要求を、前記複数のストレージデバイスによって後で処理されるようにキューに入れ、前記第2のタイプの対応として前記1つ又はそれ以上の第2の要求の識別に応答し、
    前記第1のタイプの動作に対応する要求の処理を中断し、前記第2のタイプの動作に対応する要求のみを処理し、一定の時間にわたって新たな要求が受け取られなかったことの検出に応答する、
    ように動作可能であることを特徴とするコンピュータ可読記憶媒体。
  20. 前記第1のタイプの動作は、レイテンシが相対的に短いと予想される動作に対応し、前記第2のタイプの動作は、レイテンシが相対的に長いと予想される動作に対応する、ことを特徴とする請求項19に記載の持続性コンピュータ可読記憶媒体。
JP2016096062A 2010-09-15 2016-05-12 ストレージ環境におけるi/o書き込みのスケジューリング Active JP6298098B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/882,877 US8468318B2 (en) 2010-09-15 2010-09-15 Scheduling of I/O writes in a storage environment
US12/882,877 2010-09-15

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2013529322A Division JP5937598B2 (ja) 2010-09-15 2011-09-15 ストレージ環境におけるi/o書き込みのスケジューリング

Publications (2)

Publication Number Publication Date
JP2016167301A true JP2016167301A (ja) 2016-09-15
JP6298098B2 JP6298098B2 (ja) 2018-03-20

Family

ID=44759769

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2013529322A Active JP5937598B2 (ja) 2010-09-15 2011-09-15 ストレージ環境におけるi/o書き込みのスケジューリング
JP2016096062A Active JP6298098B2 (ja) 2010-09-15 2016-05-12 ストレージ環境におけるi/o書き込みのスケジューリング

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2013529322A Active JP5937598B2 (ja) 2010-09-15 2011-09-15 ストレージ環境におけるi/o書き込みのスケジューリング

Country Status (6)

Country Link
US (5) US8468318B2 (ja)
EP (2) EP3043255B1 (ja)
JP (2) JP5937598B2 (ja)
KR (1) KR101862892B1 (ja)
CN (1) CN103370685B (ja)
WO (1) WO2012037344A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022554137A (ja) * 2019-10-24 2022-12-28 マイクロン テクノロジー,インク. 重み付きメモリアクセス動作タイプを使用したメモリデバイスのサービスの品質

Families Citing this family (222)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11275509B1 (en) 2010-09-15 2022-03-15 Pure Storage, Inc. Intelligently sizing high latency I/O requests in a storage environment
US8732426B2 (en) 2010-09-15 2014-05-20 Pure Storage, Inc. Scheduling of reactive I/O operations in a storage environment
US8468318B2 (en) 2010-09-15 2013-06-18 Pure Storage Inc. Scheduling of I/O writes in a storage environment
US12008266B2 (en) 2010-09-15 2024-06-11 Pure Storage, Inc. Efficient read by reconstruction
US8589625B2 (en) 2010-09-15 2013-11-19 Pure Storage, Inc. Scheduling of reconstructive I/O read operations in a storage environment
US11614893B2 (en) 2010-09-15 2023-03-28 Pure Storage, Inc. Optimizing storage device access based on latency
US8589655B2 (en) 2010-09-15 2013-11-19 Pure Storage, Inc. Scheduling of I/O in an SSD environment
US8775868B2 (en) 2010-09-28 2014-07-08 Pure Storage, Inc. Adaptive RAID for an SSD environment
US9244769B2 (en) 2010-09-28 2016-01-26 Pure Storage, Inc. Offset protection data in a RAID array
US9606863B2 (en) * 2010-10-25 2017-03-28 SMART High Reliability Solutions, LLC Fabric-based solid state drive architecture
US9009391B2 (en) * 2010-10-25 2015-04-14 Fastor Systems, Inc. Solid state drive architecture
JP2012234363A (ja) * 2011-04-28 2012-11-29 Toshiba Corp メモリシステム
US8547845B2 (en) * 2011-05-24 2013-10-01 International Business Machines Corporation Soft error recovery for converged networks
US20130019052A1 (en) * 2011-07-14 2013-01-17 Vinay Ashok Somanache Effective utilization of flash interface
US8806112B2 (en) 2011-07-14 2014-08-12 Lsi Corporation Meta data handling within a flash media controller
US20130019057A1 (en) * 2011-07-15 2013-01-17 Violin Memory, Inc. Flash disk array and controller
US8589640B2 (en) 2011-10-14 2013-11-19 Pure Storage, Inc. Method for maintaining multiple fingerprint tables in a deduplicating storage system
US11636031B2 (en) 2011-08-11 2023-04-25 Pure Storage, Inc. Optimized inline deduplication
US8719540B1 (en) 2012-03-15 2014-05-06 Pure Storage, Inc. Fractal layout of data blocks across multiple devices
US8903994B2 (en) * 2012-03-20 2014-12-02 Drw Technologies Llc Read-throttled input/output scheduler
US8554963B1 (en) 2012-03-23 2013-10-08 DSSD, Inc. Storage system with multicast DMA and unified address space
US20130290601A1 (en) * 2012-04-26 2013-10-31 Lsi Corporation Linux i/o scheduler for solid-state drives
US8775762B2 (en) * 2012-05-07 2014-07-08 Advanced Micro Devices, Inc. Method and apparatus for batching memory requests
US10623386B1 (en) 2012-09-26 2020-04-14 Pure Storage, Inc. Secret sharing data protection in a storage system
US8745415B2 (en) 2012-09-26 2014-06-03 Pure Storage, Inc. Multi-drive cooperation to generate an encryption key
US11032259B1 (en) 2012-09-26 2021-06-08 Pure Storage, Inc. Data protection in a storage system
US8922930B1 (en) * 2012-10-11 2014-12-30 Seagate Technology Llc Limit disc nodes by band usage
EP2746958B1 (en) * 2012-12-18 2017-08-16 Telefonica S.A. Method and system of caching web content in a hard disk
US11733908B2 (en) 2013-01-10 2023-08-22 Pure Storage, Inc. Delaying deletion of a dataset
US10908835B1 (en) 2013-01-10 2021-02-02 Pure Storage, Inc. Reversing deletion of a virtual machine
US11768623B2 (en) 2013-01-10 2023-09-26 Pure Storage, Inc. Optimizing generalized transfers between storage systems
US9063967B2 (en) 2013-01-10 2015-06-23 Pure Storage, Inc. Performing copies in a storage system
US8775687B1 (en) 2013-04-15 2014-07-08 Lsi Corporation Method to ensure data coherency in a scalable aggregate neighbor-device interface
US9423978B2 (en) 2013-05-08 2016-08-23 Nexgen Storage, Inc. Journal management
US9152214B2 (en) * 2013-05-16 2015-10-06 Qualcomm Innovation Center, Inc. Dynamic load and priority based clock scaling for non-volatile storage devices
US10263770B2 (en) 2013-11-06 2019-04-16 Pure Storage, Inc. Data protection in a storage system using external secrets
US10365858B2 (en) 2013-11-06 2019-07-30 Pure Storage, Inc. Thin provisioning in a storage device
US11128448B1 (en) 2013-11-06 2021-09-21 Pure Storage, Inc. Quorum-aware secret sharing
US9516016B2 (en) * 2013-11-11 2016-12-06 Pure Storage, Inc. Storage array password management
JP2015114887A (ja) * 2013-12-12 2015-06-22 株式会社 日立産業制御ソリューションズ 監視用レコーダーおよびデータ記録方法
US9208086B1 (en) 2014-01-09 2015-12-08 Pure Storage, Inc. Using frequency domain to prioritize storage of metadata in a cache
US9740410B2 (en) * 2014-03-17 2017-08-22 Primaryio, Inc. Maximize IO throughput in hybrid storage solution
US10146437B2 (en) 2014-03-17 2018-12-04 Primaryio, Inc. Tier aware caching solution to increase application performance
US10133488B2 (en) 2014-03-17 2018-11-20 Primaryio, Inc. Apparatus and method for cache provisioning, configuration for optimal application performance
US10656864B2 (en) 2014-03-20 2020-05-19 Pure Storage, Inc. Data replication within a flash storage array
US10235053B1 (en) * 2014-03-31 2019-03-19 Emc Corporation Method and system for using host driver for flexible allocation fast-sideways data movements
US9513820B1 (en) 2014-04-07 2016-12-06 Pure Storage, Inc. Dynamically controlling temporary compromise on data redundancy
US9600314B2 (en) 2014-05-27 2017-03-21 Red Hat Israel, Ltd. Scheduler limited virtual device polling
US9779268B1 (en) 2014-06-03 2017-10-03 Pure Storage, Inc. Utilizing a non-repeating identifier to encrypt data
US9218244B1 (en) 2014-06-04 2015-12-22 Pure Storage, Inc. Rebuilding data across storage nodes
US11399063B2 (en) 2014-06-04 2022-07-26 Pure Storage, Inc. Network authentication for a storage system
US9218407B1 (en) 2014-06-25 2015-12-22 Pure Storage, Inc. Replication and intermediate read-write state for mediums
US10496556B1 (en) 2014-06-25 2019-12-03 Pure Storage, Inc. Dynamic data protection within a flash storage system
US10296469B1 (en) 2014-07-24 2019-05-21 Pure Storage, Inc. Access control in a flash storage system
CN105320466A (zh) * 2014-07-29 2016-02-10 广明光电股份有限公司 固态硬盘安排操作的方法
US9495102B2 (en) * 2014-07-31 2016-11-15 Samsung Electronics Co., Ltd. Input/output (I/O) interceptor that re-orders a plurality of write I/O into combined with I/O with intelligent flush control logic
US9558069B2 (en) 2014-08-07 2017-01-31 Pure Storage, Inc. Failure mapping in a storage array
US9495255B2 (en) 2014-08-07 2016-11-15 Pure Storage, Inc. Error recovery in a storage cluster
US9864761B1 (en) 2014-08-08 2018-01-09 Pure Storage, Inc. Read optimization operations in a storage system
US9112890B1 (en) * 2014-08-20 2015-08-18 E8 Storage Systems Ltd. Distributed storage over shared multi-queued storage device
CN104216836B (zh) * 2014-08-28 2018-01-23 华为技术有限公司 一种存储系统的并行读写方法和装置
KR101579941B1 (ko) * 2014-09-03 2015-12-23 서울대학교 산학협력단 가상머신 i/o 관리 방법 및 장치
US10430079B2 (en) 2014-09-08 2019-10-01 Pure Storage, Inc. Adjusting storage capacity in a computing system
US9274720B1 (en) 2014-09-15 2016-03-01 E8 Storage Systems Ltd. Distributed RAID over shared multi-queued storage devices
US10164841B2 (en) 2014-10-02 2018-12-25 Pure Storage, Inc. Cloud assist for storage systems
US9489132B2 (en) 2014-10-07 2016-11-08 Pure Storage, Inc. Utilizing unmapped and unknown states in a replicated storage system
US10430282B2 (en) 2014-10-07 2019-10-01 Pure Storage, Inc. Optimizing replication by distinguishing user and system write activity
US9766917B2 (en) 2014-10-29 2017-09-19 Red Hat Israel, Ltd. Limited virtual device polling based on virtual CPU pre-emption
US9389950B2 (en) 2014-11-14 2016-07-12 International Business Machines Corporation Techniques for information protection in a solid-state device based storage pool
US9727485B1 (en) 2014-11-24 2017-08-08 Pure Storage, Inc. Metadata rewrite and flatten optimization
US9519666B2 (en) 2014-11-27 2016-12-13 E8 Storage Systems Ltd. Snapshots and thin-provisioning in distributed storage over shared storage devices
US9773007B1 (en) 2014-12-01 2017-09-26 Pure Storage, Inc. Performance improvements in a storage system
US9588842B1 (en) 2014-12-11 2017-03-07 Pure Storage, Inc. Drive rebuild
US9552248B2 (en) 2014-12-11 2017-01-24 Pure Storage, Inc. Cloud alert to replica
US9864769B2 (en) 2014-12-12 2018-01-09 Pure Storage, Inc. Storing data utilizing repeating pattern detection
US10545987B2 (en) 2014-12-19 2020-01-28 Pure Storage, Inc. Replication to the cloud
US10761772B2 (en) * 2014-12-19 2020-09-01 Toshiba Memory Corporation Memory system including a plurality of chips and a selectively-connecting bus
US9569357B1 (en) 2015-01-08 2017-02-14 Pure Storage, Inc. Managing compressed data in a storage system
US11947968B2 (en) 2015-01-21 2024-04-02 Pure Storage, Inc. Efficient use of zone in a storage device
US10296354B1 (en) 2015-01-21 2019-05-21 Pure Storage, Inc. Optimized boot operations within a flash storage array
KR102317786B1 (ko) 2015-02-02 2021-10-26 삼성전자주식회사 스토리지 디바이스에서의 입출력 처리 방법 및 이를 적용하는 스토리지 디바이스 및 비휘발성 메모리 디바이스
US9710165B1 (en) 2015-02-18 2017-07-18 Pure Storage, Inc. Identifying volume candidates for space reclamation
CN106164888A (zh) * 2015-02-26 2016-11-23 斯特拉托斯卡莱有限公司 用于最小化工作负荷空闲时间和工作负荷间干扰的网络和存储i/o请求的排序方案
US10073714B2 (en) 2015-03-11 2018-09-11 Western Digital Technologies, Inc. Task queues
US10082985B2 (en) 2015-03-27 2018-09-25 Pure Storage, Inc. Data striping across storage nodes that are assigned to multiple logical arrays
US10178169B2 (en) 2015-04-09 2019-01-08 Pure Storage, Inc. Point to point based backend communication layer for storage processing
US9525737B2 (en) 2015-04-14 2016-12-20 E8 Storage Systems Ltd. Lockless distributed redundant storage and NVRAM cache in a highly-distributed shared topology with direct memory access capable interconnect
US9529542B2 (en) 2015-04-14 2016-12-27 E8 Storage Systems Ltd. Lockless distributed redundant storage and NVRAM caching of compressed data in a highly-distributed shared topology with direct memory access capable interconnect
US10140149B1 (en) 2015-05-19 2018-11-27 Pure Storage, Inc. Transactional commits with hardware assists in remote memory
US10496626B2 (en) 2015-06-11 2019-12-03 EB Storage Systems Ltd. Deduplication in a highly-distributed shared topology with direct-memory-access capable interconnect
US10310740B2 (en) 2015-06-23 2019-06-04 Pure Storage, Inc. Aligning memory access operations to a geometry of a storage device
US9547441B1 (en) 2015-06-23 2017-01-17 Pure Storage, Inc. Exposing a geometry of a storage device
KR102396441B1 (ko) 2015-08-11 2022-05-10 삼성전자주식회사 통신 중단시 데이터 손실을 방지하도록 동작하는 스토리지 장치
CN111475438B (zh) * 2015-08-12 2021-12-10 北京忆恒创源科技股份有限公司 提供服务质量的io请求处理方法及其装置
US20170060421A1 (en) * 2015-08-31 2017-03-02 Dell Products, Lp System and Method to Support Shingled Magnetic Recording Hard Drives in a Storage System
US11341136B2 (en) 2015-09-04 2022-05-24 Pure Storage, Inc. Dynamically resizable structures for approximate membership queries
US11269884B2 (en) 2015-09-04 2022-03-08 Pure Storage, Inc. Dynamically resizable structures for approximate membership queries
KR20170028825A (ko) 2015-09-04 2017-03-14 퓨어 스토리지, 아이앤씨. 압축된 인덱스들을 사용한 해시 테이블들에서의 메모리 효율적인 스토리지 및 탐색
US9843453B2 (en) 2015-10-23 2017-12-12 Pure Storage, Inc. Authorizing I/O commands with I/O tokens
CN106610883B (zh) * 2015-10-27 2020-09-11 腾讯科技(深圳)有限公司 一种检测方法及装置
WO2017141413A1 (ja) * 2016-02-19 2017-08-24 株式会社日立製作所 計算機、通信ドライバ、および通信制御方法
US20170262191A1 (en) * 2016-03-08 2017-09-14 Netapp, Inc. Reducing write tail latency in storage systems
US9747222B1 (en) * 2016-03-31 2017-08-29 EMC IP Holding Company LLC Dynamic ingestion throttling of data log
US9842084B2 (en) 2016-04-05 2017-12-12 E8 Storage Systems Ltd. Write cache and write-hole recovery in distributed raid over shared multi-queue storage devices
US10452297B1 (en) 2016-05-02 2019-10-22 Pure Storage, Inc. Generating and optimizing summary index levels in a deduplication storage system
US10133503B1 (en) 2016-05-02 2018-11-20 Pure Storage, Inc. Selecting a deduplication process based on a difference between performance metrics
CN107491265B (zh) * 2016-06-12 2021-05-25 杭州海康威视数字技术股份有限公司 分配网际协议ip磁盘的方法及装置
WO2018016659A1 (ko) * 2016-07-18 2018-01-25 주식회사 파두 플래시 스토리지 대역폭의 비례 지분 스케줄링을 위한 방법 및 시스템
US10203903B2 (en) 2016-07-26 2019-02-12 Pure Storage, Inc. Geometry based, space aware shelf/writegroup evacuation
US11886922B2 (en) 2016-09-07 2024-01-30 Pure Storage, Inc. Scheduling input/output operations for a storage system
US10613974B2 (en) 2016-10-04 2020-04-07 Pure Storage, Inc. Peer-to-peer non-volatile random-access memory
US10162523B2 (en) 2016-10-04 2018-12-25 Pure Storage, Inc. Migrating data between volumes using virtual copy operation
US10756816B1 (en) 2016-10-04 2020-08-25 Pure Storage, Inc. Optimized fibre channel and non-volatile memory express access
US10191662B2 (en) 2016-10-04 2019-01-29 Pure Storage, Inc. Dynamic allocation of segments in a flash storage system
KR20180041898A (ko) * 2016-10-17 2018-04-25 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US10481798B2 (en) 2016-10-28 2019-11-19 Pure Storage, Inc. Efficient flash management for multiple controllers
US10185505B1 (en) 2016-10-28 2019-01-22 Pure Storage, Inc. Reading a portion of data to replicate a volume based on sequence numbers
US10359942B2 (en) 2016-10-31 2019-07-23 Pure Storage, Inc. Deduplication aware scalable content placement
US10452290B2 (en) 2016-12-19 2019-10-22 Pure Storage, Inc. Block consolidation in a direct-mapped flash storage system
US11550481B2 (en) 2016-12-19 2023-01-10 Pure Storage, Inc. Efficiently writing data in a zoned drive storage system
JP6677627B2 (ja) * 2016-12-20 2020-04-08 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置およびメモリアクセス方法
US11093146B2 (en) 2017-01-12 2021-08-17 Pure Storage, Inc. Automatic load rebalancing of a write group
US10031872B1 (en) 2017-01-23 2018-07-24 E8 Storage Systems Ltd. Storage in multi-queue storage devices using queue multiplexing and access control
US10528488B1 (en) 2017-03-30 2020-01-07 Pure Storage, Inc. Efficient name coding
US10545664B2 (en) 2017-04-11 2020-01-28 Samsung Electronics Co., Ltd. System and method for identifying SSDs with lowest tail latencies
US11403019B2 (en) 2017-04-21 2022-08-02 Pure Storage, Inc. Deduplication-aware per-tenant encryption
US12045487B2 (en) 2017-04-21 2024-07-23 Pure Storage, Inc. Preserving data deduplication in a multi-tenant storage system
US10944671B2 (en) 2017-04-27 2021-03-09 Pure Storage, Inc. Efficient data forwarding in a networked device
JP7221585B2 (ja) * 2017-07-20 2023-02-14 富士通株式会社 情報処理装置、情報処理システム、情報処理装置制御方法及び情報処理装置制御プログラム
US10417096B2 (en) * 2017-07-20 2019-09-17 Vmware, Inc. Multi-virtual machine time consistent snapshots
US10402266B1 (en) 2017-07-31 2019-09-03 Pure Storage, Inc. Redundant array of independent disks in a direct-mapped flash storage system
US10831935B2 (en) 2017-08-31 2020-11-10 Pure Storage, Inc. Encryption management with host-side data reduction
CN112214166B (zh) * 2017-09-05 2022-05-24 华为技术有限公司 用于传输数据处理请求的方法和装置
US10685010B2 (en) 2017-09-11 2020-06-16 Amazon Technologies, Inc. Shared volumes in distributed RAID over shared multi-queue storage devices
US10776202B1 (en) 2017-09-22 2020-09-15 Pure Storage, Inc. Drive, blade, or data shard decommission via RAID geometry shrinkage
KR102549540B1 (ko) 2017-09-22 2023-06-29 삼성전자주식회사 스토리지 장치 및 그 동작 방법
US10789211B1 (en) 2017-10-04 2020-09-29 Pure Storage, Inc. Feature-based deduplication
US10884919B2 (en) 2017-10-31 2021-01-05 Pure Storage, Inc. Memory management in a storage system
US10860475B1 (en) 2017-11-17 2020-12-08 Pure Storage, Inc. Hybrid flash translation layer
US10929031B2 (en) 2017-12-21 2021-02-23 Pure Storage, Inc. Maximizing data reduction in a partially encrypted volume
US10503670B2 (en) * 2017-12-21 2019-12-10 Advanced Micro Devices, Inc. Dynamic per-bank and all-bank refresh
US11010233B1 (en) 2018-01-18 2021-05-18 Pure Storage, Inc Hardware-based system monitoring
US10970395B1 (en) 2018-01-18 2021-04-06 Pure Storage, Inc Security threat monitoring for a storage system
US11144638B1 (en) 2018-01-18 2021-10-12 Pure Storage, Inc. Method for storage system detection and alerting on potential malicious action
US10467527B1 (en) 2018-01-31 2019-11-05 Pure Storage, Inc. Method and apparatus for artificial intelligence acceleration
US11036596B1 (en) 2018-02-18 2021-06-15 Pure Storage, Inc. System for delaying acknowledgements on open NAND locations until durability has been confirmed
US10620880B2 (en) * 2018-02-20 2020-04-14 International Business Machines Corporation Using a delay timer to delay code load operations to process queued write requests
US11494109B1 (en) 2018-02-22 2022-11-08 Pure Storage, Inc. Erase block trimming for heterogenous flash memory storage devices
US11934322B1 (en) 2018-04-05 2024-03-19 Pure Storage, Inc. Multiple encryption keys on storage drives
US10963394B2 (en) * 2018-04-16 2021-03-30 Samsung Electronics Co., Ltd. System and method for optimizing performance of a solid-state drive using a deep neural network
US10657052B2 (en) * 2018-04-25 2020-05-19 Dell Products, L.P. Information handling system with priority based cache flushing of flash dual in-line memory module pool
US11995336B2 (en) 2018-04-25 2024-05-28 Pure Storage, Inc. Bucket views
US11385792B2 (en) 2018-04-27 2022-07-12 Pure Storage, Inc. High availability controller pair transitioning
US10678433B1 (en) 2018-04-27 2020-06-09 Pure Storage, Inc. Resource-preserving system upgrade
US10678436B1 (en) 2018-05-29 2020-06-09 Pure Storage, Inc. Using a PID controller to opportunistically compress more data during garbage collection
US11436023B2 (en) 2018-05-31 2022-09-06 Pure Storage, Inc. Mechanism for updating host file system and flash translation layer based on underlying NAND technology
US10776046B1 (en) 2018-06-08 2020-09-15 Pure Storage, Inc. Optimized non-uniform memory access
US11281577B1 (en) 2018-06-19 2022-03-22 Pure Storage, Inc. Garbage collection tuning for low drive wear
US11869586B2 (en) 2018-07-11 2024-01-09 Pure Storage, Inc. Increased data protection by recovering data from partially-failed solid-state devices
US11874782B1 (en) * 2018-07-20 2024-01-16 Robert Gezelter Fast mass storage access for digital computers
JP7128443B2 (ja) * 2018-08-06 2022-08-31 京セラドキュメントソリューションズ株式会社 処理実行システムおよび処理実行プログラム
US10545701B1 (en) * 2018-08-17 2020-01-28 Apple Inc. Memory arbitration techniques based on latency tolerance
US11133076B2 (en) 2018-09-06 2021-09-28 Pure Storage, Inc. Efficient relocation of data between storage devices of a storage system
US11194759B2 (en) 2018-09-06 2021-12-07 Pure Storage, Inc. Optimizing local data relocation operations of a storage device of a storage system
US10860078B2 (en) 2018-10-25 2020-12-08 Dell Products, L.P. Managing power request during cluster operations
US10846216B2 (en) 2018-10-25 2020-11-24 Pure Storage, Inc. Scalable garbage collection
US11048523B2 (en) 2018-10-25 2021-06-29 Dell Products, L.P. Enabling software sensor power operation requests via baseboard management controller (BMC)
US11126486B2 (en) * 2018-10-25 2021-09-21 Dell Products, L.P. Prediction of power shutdown and outage incidents
US11113409B2 (en) 2018-10-26 2021-09-07 Pure Storage, Inc. Efficient rekey in a transparent decrypting storage array
US11194473B1 (en) 2019-01-23 2021-12-07 Pure Storage, Inc. Programming frequently read data to low latency portions of a solid-state storage array
US11588633B1 (en) 2019-03-15 2023-02-21 Pure Storage, Inc. Decommissioning keys in a decryption storage system
US11334254B2 (en) 2019-03-29 2022-05-17 Pure Storage, Inc. Reliability based flash page sizing
US11397674B1 (en) 2019-04-03 2022-07-26 Pure Storage, Inc. Optimizing garbage collection across heterogeneous flash devices
US11775189B2 (en) 2019-04-03 2023-10-03 Pure Storage, Inc. Segment level heterogeneity
US10990480B1 (en) 2019-04-05 2021-04-27 Pure Storage, Inc. Performance of RAID rebuild operations by a storage group controller of a storage system
US12087382B2 (en) 2019-04-11 2024-09-10 Pure Storage, Inc. Adaptive threshold for bad flash memory blocks
US11099986B2 (en) 2019-04-12 2021-08-24 Pure Storage, Inc. Efficient transfer of memory contents
US10970210B2 (en) 2019-04-30 2021-04-06 EMC IP Holding Company LLC Managing data storage devices for spontaneous de-staging of cache
US11048632B2 (en) 2019-04-30 2021-06-29 EMC IP Holding Company LLC Data storage system with performance-based distribution of I/O requests to processing cores
JP2020184179A (ja) * 2019-05-08 2020-11-12 ファナック株式会社 加工制御システム及び加工システム
US11487665B2 (en) 2019-06-05 2022-11-01 Pure Storage, Inc. Tiered caching of data in a storage system
US11281394B2 (en) 2019-06-24 2022-03-22 Pure Storage, Inc. Replication across partitioning schemes in a distributed storage system
US10929046B2 (en) 2019-07-09 2021-02-23 Pure Storage, Inc. Identifying and relocating hot data to a cache determined with read velocity based on a threshold stored at a storage device
US11029884B2 (en) 2019-07-16 2021-06-08 International Business Machines Corporation Storage handling guidance for host input/output operations
US11422751B2 (en) 2019-07-18 2022-08-23 Pure Storage, Inc. Creating a virtual storage system
US11086713B1 (en) 2019-07-23 2021-08-10 Pure Storage, Inc. Optimized end-to-end integrity storage system
US11232036B2 (en) * 2019-08-02 2022-01-25 EMC IP Holding Company LLC Managing write access to data storage devices for spontaneous de-staging of cache
CN110531931B (zh) * 2019-08-22 2022-03-22 济南浪潮数据技术有限公司 一种存储设备的选取方法、装置和计算机可读存储介质
US11963321B2 (en) 2019-09-11 2024-04-16 Pure Storage, Inc. Low profile latching mechanism
US11403043B2 (en) 2019-10-15 2022-08-02 Pure Storage, Inc. Efficient data compression by grouping similar data within a data segment
US11163449B2 (en) 2019-10-17 2021-11-02 EMC IP Holding Company LLC Adaptive ingest throttling in layered storage systems
US11204872B2 (en) * 2019-10-25 2021-12-21 EMC IP Holding Company LLC Achieving guaranteed application performance using transactional I/O scheduling for SSD storage using known read/write latencies
US11263089B2 (en) * 2019-10-31 2022-03-01 EMC IP Holding Company LLC Achieving guaranteed application performance using transactional I/O scheduling for SSD storage by interleaving and splitting read/write I/Os with required latency configurations
US11500788B2 (en) 2019-11-22 2022-11-15 Pure Storage, Inc. Logical address based authorization of operations with respect to a storage system
US11675898B2 (en) 2019-11-22 2023-06-13 Pure Storage, Inc. Recovery dataset management for security threat monitoring
US11720714B2 (en) 2019-11-22 2023-08-08 Pure Storage, Inc. Inter-I/O relationship based detection of a security threat to a storage system
US11651075B2 (en) 2019-11-22 2023-05-16 Pure Storage, Inc. Extensible attack monitoring by a storage system
US11755751B2 (en) 2019-11-22 2023-09-12 Pure Storage, Inc. Modify access restrictions in response to a possible attack against data stored by a storage system
US12079333B2 (en) 2019-11-22 2024-09-03 Pure Storage, Inc. Independent security threat detection and remediation by storage systems in a synchronous replication arrangement
US12050683B2 (en) 2019-11-22 2024-07-30 Pure Storage, Inc. Selective control of a data synchronization setting of a storage system based on a possible ransomware attack against the storage system
US12050689B2 (en) 2019-11-22 2024-07-30 Pure Storage, Inc. Host anomaly-based generation of snapshots
US11657155B2 (en) 2019-11-22 2023-05-23 Pure Storage, Inc Snapshot delta metric based determination of a possible ransomware attack against data maintained by a storage system
US12079356B2 (en) 2019-11-22 2024-09-03 Pure Storage, Inc. Measurement interval anomaly detection-based generation of snapshots
US11720692B2 (en) 2019-11-22 2023-08-08 Pure Storage, Inc. Hardware token based management of recovery datasets for a storage system
US11615185B2 (en) 2019-11-22 2023-03-28 Pure Storage, Inc. Multi-layer security threat detection for a storage system
US11625481B2 (en) 2019-11-22 2023-04-11 Pure Storage, Inc. Selective throttling of operations potentially related to a security threat to a storage system
US12079502B2 (en) 2019-11-22 2024-09-03 Pure Storage, Inc. Storage element attribute-based determination of a data protection policy for use within a storage system
US11645162B2 (en) 2019-11-22 2023-05-09 Pure Storage, Inc. Recovery point determination for data restoration in a storage system
US11687418B2 (en) 2019-11-22 2023-06-27 Pure Storage, Inc. Automatic generation of recovery plans specific to individual storage elements
US11341236B2 (en) 2019-11-22 2022-05-24 Pure Storage, Inc. Traffic-based detection of a security threat to a storage system
US11941116B2 (en) 2019-11-22 2024-03-26 Pure Storage, Inc. Ransomware-based data protection parameter modification
US11520907B1 (en) 2019-11-22 2022-12-06 Pure Storage, Inc. Storage system snapshot retention based on encrypted data
US12067118B2 (en) 2019-11-22 2024-08-20 Pure Storage, Inc. Detection of writing to a non-header portion of a file as an indicator of a possible ransomware attack against a storage system
US11334384B2 (en) * 2019-12-10 2022-05-17 Advanced Micro Devices, Inc. Scheduler queue assignment burst mode
US11139042B2 (en) * 2019-12-19 2021-10-05 Micron Technology, Inc. Capacitor health check
KR20210080761A (ko) 2019-12-23 2021-07-01 삼성전자주식회사 컴플리션 타이밍을 관리하는 스토리지 컨트롤러, 및 이의 동작 방법
EP3842952B1 (en) 2019-12-23 2023-05-10 Samsung Electronics Co., Ltd. Storage controller managing completion timing, and operating method thereof
CN111338567B (zh) * 2020-02-13 2021-09-17 苏州浪潮智能科技有限公司 一种基于Protocol Buffer的镜像缓存方法
KR20210115576A (ko) * 2020-03-13 2021-09-27 에스케이하이닉스 주식회사 호스트 및 메모리 시스템을 포함하는 전자 시스템
US11513882B2 (en) * 2020-06-08 2022-11-29 EMC IP Holding Company LLC Dynamic modification of IO shaping mechanisms of multiple storage nodes in a distributed storage system
CN112015342B (zh) * 2020-08-27 2023-08-18 优刻得科技股份有限公司 一种io调度系统和调度方法以及相应的电子设备
US20240069807A1 (en) * 2022-08-31 2024-02-29 Micron Technology, Inc. Managing command completion notification pacing in a memory sub-system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004295860A (ja) * 2003-03-07 2004-10-21 Fujitsu Ltd ストレージシステム及びそのデイスク負荷バランス制御方法
JP2006251844A (ja) * 2005-03-08 2006-09-21 Hitachi Global Storage Technologies Netherlands Bv データ記憶装置及びそのライト・キャッシュ制御方法
JP2010026946A (ja) * 2008-07-23 2010-02-04 Hitachi Ltd ストレージサブシステム及びコントローラによるコマンド実行方法
WO2010071655A1 (en) * 2008-12-19 2010-06-24 Hewlett-Packard Development Company, L.P. Redundant data storage for uniform read latency

Family Cites Families (145)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5208813A (en) 1990-10-23 1993-05-04 Array Technology Corporation On-line reconstruction of a failed redundant array system
US5403639A (en) 1992-09-02 1995-04-04 Storage Technology Corporation File server having snapshot application data groups
DE9310582U1 (de) 1993-07-15 1993-09-23 Paul Hettich GmbH & Co, 32278 Kirchlengern Rasteinrichtung fuer schubkaesten o.dgl.
US6412045B1 (en) 1995-05-23 2002-06-25 Lsi Logic Corporation Method for transferring data from a host computer to a storage media using selectable caching strategies
US5832529A (en) 1996-10-11 1998-11-03 Sun Microsystems, Inc. Methods, apparatus, and product for distributed garbage collection
US5940838A (en) 1997-07-11 1999-08-17 International Business Machines Corporation Parallel file system and method anticipating cache usage patterns
US6038639A (en) 1997-09-09 2000-03-14 Storage Technology Corporation Data file storage management system for snapshot copy operations
US6041366A (en) 1998-02-02 2000-03-21 International Business Machines Corporation System and method for dynamic specification of input/output attributes
US6157963A (en) 1998-03-24 2000-12-05 Lsi Logic Corp. System controller with plurality of memory queues for prioritized scheduling of I/O requests from priority assigned clients
US6301640B2 (en) 1998-07-02 2001-10-09 Lucent Technologies, Inc. System and method for modeling and optimizing I/O throughput of multiple disks on a bus
US6799283B1 (en) 1998-12-04 2004-09-28 Matsushita Electric Industrial Co., Ltd. Disk array device
JP2000181803A (ja) 1998-12-18 2000-06-30 Fujitsu Ltd 鍵管理機能付電子データ保管装置および電子データ保管方法
US6292856B1 (en) 1999-01-29 2001-09-18 International Business Machines Corporation System and method for application influence of I/O service order post I/O request
US6834298B1 (en) 1999-09-21 2004-12-21 Siemens Information And Communication Networks, Inc. System and method for network auto-discovery and configuration
US6804755B2 (en) 2000-06-19 2004-10-12 Storage Technology Corporation Apparatus and method for performing an instant copy of data based on a dynamically changeable virtual mapping scheme
US6912537B2 (en) 2000-06-20 2005-06-28 Storage Technology Corporation Dynamically changeable virtual mapping scheme
US6871011B1 (en) 2000-09-28 2005-03-22 Matsushita Electric Industrial Co., Ltd. Providing quality of service for disks I/O sub-system with simultaneous deadlines and priority
JP2002108573A (ja) 2000-09-28 2002-04-12 Nec Corp ディスクアレイ装置、そのエラー制御方法、ならびにその制御プログラムを記録した記録媒体
US6718448B1 (en) 2000-11-28 2004-04-06 Emc Corporation Queued locking of a shared resource using multimodal lock types
US6757769B1 (en) 2000-11-28 2004-06-29 Emc Corporation Cooperative lock override procedure
US6850938B1 (en) 2001-02-08 2005-02-01 Cisco Technology, Inc. Method and apparatus providing optimistic locking of shared computer resources
AU2002306495A1 (en) 2001-02-13 2002-08-28 Candera, Inc. Storage virtualization and storage management to provide higher level storage services
US6973549B1 (en) 2001-12-10 2005-12-06 Incipient, Inc. Locking technique for control and synchronization
US6986015B2 (en) 2001-12-10 2006-01-10 Incipient, Inc. Fast path caching
US7539991B2 (en) 2002-03-21 2009-05-26 Netapp, Inc. Method and apparatus for decomposing I/O tasks in a raid system
US7260628B2 (en) 2002-09-06 2007-08-21 Hitachi, Ltd. Event notification in storage networks
US7216164B1 (en) 2002-10-09 2007-05-08 Cisco Technology, Inc. Methods and apparatus for determining the performance of a server
US7028218B2 (en) 2002-12-02 2006-04-11 Emc Corporation Redundant multi-processor and logical processor configuration for a file server
AU2004230005A1 (en) 2003-04-07 2004-10-28 Itracs Corporation Network security system based on physical location
US7424498B1 (en) 2003-06-30 2008-09-09 Data Domain, Inc. Probabilistic summary data structure based encoding for garbage collection
US7865485B2 (en) 2003-09-23 2011-01-04 Emc Corporation Multi-threaded write interface and methods for increasing the single file read and write throughput of a file server
US7127545B1 (en) 2003-11-19 2006-10-24 Veritas Operating Corporation System and method for dynamically loadable storage device I/O policy modules
JP4426262B2 (ja) 2003-11-26 2010-03-03 株式会社日立製作所 ディスクアレイ装置及びディスクアレイ装置の障害回避方法
US8560747B1 (en) 2007-02-16 2013-10-15 Vmware, Inc. Associating heartbeat data with access to shared resources of a computer system
JP4456909B2 (ja) 2004-03-29 2010-04-28 株式会社日立製作所 バックアップ方法、ストレージシステム及びそのプログラム
JP2005293774A (ja) 2004-04-02 2005-10-20 Hitachi Global Storage Technologies Netherlands Bv ディスク装置の制御方法
US7424482B2 (en) 2004-04-26 2008-09-09 Storwize Inc. Method and system for compression of data for block mode access storage
US20060074940A1 (en) 2004-10-05 2006-04-06 International Business Machines Corporation Dynamic management of node clusters to enable data sharing
US7363444B2 (en) 2005-01-10 2008-04-22 Hewlett-Packard Development Company, L.P. Method for taking snapshots of data
US7913300B1 (en) 2005-04-08 2011-03-22 Netapp, Inc. Centralized role-based access control for storage servers
US8364845B2 (en) 2005-05-19 2013-01-29 Wyse Technology Inc. Method and system for thin client configuration
JPWO2006123416A1 (ja) 2005-05-19 2008-12-25 富士通株式会社 ディスク故障復旧方法及びディスクアレイ装置
US7933936B2 (en) 2005-06-10 2011-04-26 Network Appliance, Inc. Method and system for automatic management of storage space
US7979613B2 (en) * 2005-07-15 2011-07-12 International Business Machines Corporation Performance of a storage system
JP2007087036A (ja) 2005-09-21 2007-04-05 Hitachi Ltd スナップショット維持装置及び方法
JP4662548B2 (ja) 2005-09-27 2011-03-30 株式会社日立製作所 スナップショット管理装置及び方法並びにストレージシステム
JP4927408B2 (ja) 2006-01-25 2012-05-09 株式会社日立製作所 記憶システム及びそのデータ復元方法
JP2007199953A (ja) 2006-01-25 2007-08-09 Fujitsu Ltd ディスクアレイ装置およびディスクアレイ制御方法
US7743197B2 (en) 2006-05-11 2010-06-22 Emulex Design & Manufacturing Corporation System and method for virtualizing PCIe devices
JP2007233903A (ja) 2006-03-03 2007-09-13 Hitachi Ltd 記憶制御装置及び記憶制御装置のデータ回復方法
US8832247B2 (en) 2006-03-24 2014-09-09 Blue Coat Systems, Inc. Methods and systems for caching content at multiple levels
US7987438B2 (en) 2006-08-10 2011-07-26 International Business Machines Corporation Structure for initializing expansion adapters installed in a computer system having similar expansion adapters
US7555599B2 (en) * 2006-09-06 2009-06-30 International Business Machines Corporation System and method of mirrored RAID array write management
US7475215B2 (en) 2006-09-08 2009-01-06 Lsi Corporation Identification of uncommitted memory blocks during an initialization procedure
JP4573898B2 (ja) 2006-11-27 2010-11-04 富士通株式会社 サーバ管理プログラム、メールサーバ管理プログラム、サーバ管理システム、管理サーバおよびサーバ管理方法
US8694712B2 (en) 2006-12-05 2014-04-08 Microsoft Corporation Reduction of operational costs of virtual TLBs
US20080155191A1 (en) 2006-12-21 2008-06-26 Anderson Robert J Systems and methods for providing heterogeneous storage systems
US8370562B2 (en) 2007-02-25 2013-02-05 Sandisk Il Ltd. Interruptible cache flushing in flash memory systems
JP4529990B2 (ja) 2007-03-30 2010-08-25 ブラザー工業株式会社 画像処理プログラム及び画像処理装置
JP4900811B2 (ja) 2007-03-30 2012-03-21 株式会社日立製作所 記憶システムおよび記憶制御方法
US7958303B2 (en) 2007-04-27 2011-06-07 Gary Stephen Shuster Flexible data storage system
US8086652B1 (en) 2007-04-27 2011-12-27 Netapp, Inc. Storage system-based hole punching for reclaiming unused space from a data container
CN101682503A (zh) 2007-05-30 2010-03-24 富士通株式会社 图像加密装置、图像解密装置、方法以及程序
US7765426B2 (en) 2007-06-07 2010-07-27 Micron Technology, Inc. Emerging bad block detection
US8874854B2 (en) 2007-07-30 2014-10-28 International Business Machines Corporation Method for selectively enabling and disabling read caching in a storage subsystem
US7877558B2 (en) * 2007-08-13 2011-01-25 Advanced Micro Devices, Inc. Memory controller prioritization scheme
JP2009080690A (ja) * 2007-09-26 2009-04-16 Nec Corp 情報記録再生システム,情報記録再生方法及びプログラム
US7877380B2 (en) 2008-02-25 2011-01-25 Yahoo! Inc. System for query scheduling to maximize work sharing
US7970994B2 (en) 2008-03-04 2011-06-28 International Business Machines Corporation High performance disk array rebuild
US8352540B2 (en) 2008-03-06 2013-01-08 International Business Machines Corporation Distinguishing data streams to enhance data storage efficiency
US7873619B1 (en) 2008-03-31 2011-01-18 Emc Corporation Managing metadata
US8621241B1 (en) 2008-04-25 2013-12-31 Netapp, Inc. Storage and recovery of cryptographic key identifiers
US8117464B1 (en) 2008-04-30 2012-02-14 Netapp, Inc. Sub-volume level security for deduplicated data
US9678879B2 (en) 2008-05-29 2017-06-13 Red Hat, Inc. Set partitioning for encoding file system allocation metadata
US8046551B1 (en) 2008-08-14 2011-10-25 Emc Corporation Techniques for processing I/O requests
US8296547B2 (en) 2008-08-27 2012-10-23 International Business Machines Corporation Loading entries into a TLB in hardware via indirect TLB entries
US20100057673A1 (en) 2008-09-04 2010-03-04 Boris Savov Reusable mapping rules for data to data transformation
US20100077205A1 (en) 2008-09-19 2010-03-25 Ekstrom Joseph J System and Method for Cipher E-Mail Protection
US8756369B2 (en) 2008-09-26 2014-06-17 Netapp, Inc. Priority command queues for low latency solid state drives
JP4399021B1 (ja) * 2008-10-29 2010-01-13 株式会社東芝 ディスクアレイ制御装置および記憶装置
US7945733B2 (en) * 2008-12-12 2011-05-17 Lsi Corporation Hierarchical storage management (HSM) for redundant array of independent disks (RAID)
US8200922B2 (en) 2008-12-17 2012-06-12 Netapp, Inc. Storage system snapshot assisted by SSD technology
US8312204B2 (en) 2009-01-23 2012-11-13 Seagate Technology Llc System and method for wear leveling in a data storage device
JP4869368B2 (ja) 2009-03-12 2012-02-08 株式会社東芝 ストレージ装置及び仮想化装置
US7941584B2 (en) 2009-03-26 2011-05-10 Arm Limited Data processing apparatus and method for performing hazard detection
US8560787B2 (en) 2009-03-30 2013-10-15 International Business Machines Corporation Incremental backup of source to target storage volume
US8205065B2 (en) 2009-03-30 2012-06-19 Exar Corporation System and method for data deduplication
TWI397009B (zh) 2009-04-30 2013-05-21 Inventec Corp 基本輸入輸出系統的資料處理裝置
US8180955B2 (en) 2009-05-06 2012-05-15 Via Telecom, Inc. Computing systems and methods for managing flash memory device
EP2302637B1 (fr) 2009-09-21 2014-09-03 STMicroelectronics (Rousset) SAS Méthode d'écriture de données dans une mémoire non volatile, protegée contre l'arrachement
US8510569B2 (en) 2009-12-16 2013-08-13 Intel Corporation Providing integrity verification and attestation in a hidden execution environment
US9134918B2 (en) 2009-12-31 2015-09-15 Sandisk Technologies Inc. Physical compression of data with flat or systematic pattern
US8452932B2 (en) 2010-01-06 2013-05-28 Storsimple, Inc. System and method for efficiently creating off-site data volume back-ups
WO2011104663A1 (en) 2010-02-23 2011-09-01 Confidato Security Solutions Ltd Method and computer program product for order preserving symbol based encryption
JP4892072B2 (ja) 2010-03-24 2012-03-07 株式会社東芝 ホスト装置と連携して重複データを排除するストレージ装置、同ストレージ装置を備えたストレージシステム、及び同システムにおける重複排除方法
US8738970B2 (en) 2010-07-23 2014-05-27 Salesforce.Com, Inc. Generating performance alerts
US8713268B2 (en) 2010-08-05 2014-04-29 Ut-Battelle, Llc Coordinated garbage collection for raid array of solid state disks
US8468318B2 (en) * 2010-09-15 2013-06-18 Pure Storage Inc. Scheduling of I/O writes in a storage environment
US8589625B2 (en) 2010-09-15 2013-11-19 Pure Storage, Inc. Scheduling of reconstructive I/O read operations in a storage environment
US8775868B2 (en) 2010-09-28 2014-07-08 Pure Storage, Inc. Adaptive RAID for an SSD environment
US20120117029A1 (en) 2010-11-08 2012-05-10 Stephen Gold Backup policies for using different storage tiers
WO2012106362A2 (en) 2011-01-31 2012-08-09 Fusion-Io, Inc. Apparatus, system, and method for managing eviction of data
US9563555B2 (en) 2011-03-18 2017-02-07 Sandisk Technologies Llc Systems and methods for storage allocation
US8595267B2 (en) 2011-06-27 2013-11-26 Amazon Technologies, Inc. System and method for implementing a scalable data storage service
US8751463B1 (en) 2011-06-30 2014-06-10 Emc Corporation Capacity forecasting for a deduplicating storage system
US8793467B2 (en) 2011-09-30 2014-07-29 Pure Storage, Inc. Variable length encoding in a storage system
US8806160B2 (en) 2011-08-16 2014-08-12 Pure Storage, Inc. Mapping in a storage system
US8527544B1 (en) 2011-08-11 2013-09-03 Pure Storage Inc. Garbage collection in a storage system
US8788788B2 (en) 2011-08-11 2014-07-22 Pure Storage, Inc. Logical sector mapping in a flash storage array
JP5768587B2 (ja) 2011-08-17 2015-08-26 富士通株式会社 ストレージシステム、ストレージ制御装置およびストレージ制御方法
US8700875B1 (en) 2011-09-20 2014-04-15 Netapp, Inc. Cluster view for storage devices
US9542413B2 (en) 2011-10-06 2017-01-10 Hitachi, Ltd. Stored data deduplication method, stored data deduplication apparatus, and deduplication program
US8825605B2 (en) 2011-10-11 2014-09-02 Netapp, Inc. Deduplication aware scheduling of requests to access data blocks
US8918579B2 (en) 2012-02-06 2014-12-23 Sandisk Technologies Inc. Storage device and method for selective data compression
US9075710B2 (en) 2012-04-17 2015-07-07 SanDisk Technologies, Inc. Non-volatile key-value store
US9519647B2 (en) 2012-04-17 2016-12-13 Sandisk Technologies Llc Data expiry in a non-volatile device
US8996881B2 (en) 2012-04-23 2015-03-31 International Business Machines Corporation Preserving redundancy in data deduplication systems by encryption
US8793466B2 (en) 2012-04-27 2014-07-29 Netapp, Inc. Efficient data object storage and retrieval
US9645177B2 (en) 2012-05-04 2017-05-09 Seagate Technology Llc Retention-drift-history-based non-volatile memory read threshold optimization
US8874850B1 (en) 2012-05-10 2014-10-28 Netapp, Inc. Hierarchically tagged cache
US20130318314A1 (en) 2012-05-25 2013-11-28 Red Hat, Inc. Managing copies of data on multiple nodes using a data controller node to avoid transaction deadlock
AU2013277351A1 (en) 2012-06-18 2015-01-22 Actifio, Inc. Enhanced data management virtualization system
US8959305B1 (en) 2012-06-29 2015-02-17 Emc Corporation Space reclamation with virtually provisioned devices
US9489293B2 (en) 2012-08-17 2016-11-08 Netapp, Inc. Techniques for opportunistic data storage
US9154298B2 (en) 2012-08-31 2015-10-06 Cleversafe, Inc. Securely storing data in a dispersed storage network
JP5954081B2 (ja) 2012-09-26 2016-07-20 富士通株式会社 ストレージ制御装置、ストレージ制御方法、およびストレージ制御プログラム
US9348757B2 (en) 2012-10-08 2016-05-24 International Business Machines Corporation System supporting multiple partitions with differing translation formats
WO2014076743A1 (en) 2012-11-19 2014-05-22 Hitachi, Ltd. Storage system
US9348840B2 (en) 2012-12-14 2016-05-24 Intel Corporation Adaptive data striping and replication across multiple storage clouds for high availability and performance
US9063967B2 (en) 2013-01-10 2015-06-23 Pure Storage, Inc. Performing copies in a storage system
US9886346B2 (en) 2013-01-11 2018-02-06 Commvault Systems, Inc. Single snapshot for multiple agents
US9652376B2 (en) 2013-01-28 2017-05-16 Radian Memory Systems, Inc. Cooperative flash memory control
US9335932B2 (en) 2013-03-15 2016-05-10 Bracket Computing, Inc. Storage unit selection for virtualized storage units
US9519575B2 (en) 2013-04-25 2016-12-13 Sandisk Technologies Llc Conditional iteration for a non-volatile device
US10263770B2 (en) 2013-11-06 2019-04-16 Pure Storage, Inc. Data protection in a storage system using external secrets
US9516016B2 (en) 2013-11-11 2016-12-06 Pure Storage, Inc. Storage array password management
JP6233086B2 (ja) 2014-02-20 2017-11-22 富士通株式会社 ストレージ制御装置,ストレージシステム及び制御プログラム
US10169121B2 (en) 2014-02-27 2019-01-01 Commvault Systems, Inc. Work flow management for an information management system
US10656864B2 (en) 2014-03-20 2020-05-19 Pure Storage, Inc. Data replication within a flash storage array
US9361469B2 (en) 2014-03-26 2016-06-07 Amazon Technologies, Inc. Electronic communication with secure screen sharing of sensitive information
US9513820B1 (en) 2014-04-07 2016-12-06 Pure Storage, Inc. Dynamically controlling temporary compromise on data redundancy
US9563509B2 (en) 2014-07-15 2017-02-07 Nimble Storage, Inc. Methods and systems for storing data in a redundant manner on a plurality of storage units of a storage system
US9489132B2 (en) 2014-10-07 2016-11-08 Pure Storage, Inc. Utilizing unmapped and unknown states in a replicated storage system
US10430282B2 (en) 2014-10-07 2019-10-01 Pure Storage, Inc. Optimizing replication by distinguishing user and system write activity
US9552248B2 (en) 2014-12-11 2017-01-24 Pure Storage, Inc. Cloud alert to replica

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004295860A (ja) * 2003-03-07 2004-10-21 Fujitsu Ltd ストレージシステム及びそのデイスク負荷バランス制御方法
JP2006251844A (ja) * 2005-03-08 2006-09-21 Hitachi Global Storage Technologies Netherlands Bv データ記憶装置及びそのライト・キャッシュ制御方法
JP2010026946A (ja) * 2008-07-23 2010-02-04 Hitachi Ltd ストレージサブシステム及びコントローラによるコマンド実行方法
WO2010071655A1 (en) * 2008-12-19 2010-06-24 Hewlett-Packard Development Company, L.P. Redundant data storage for uniform read latency
US20110258362A1 (en) * 2008-12-19 2011-10-20 Mclaren Moray Redundant data storage for uniform read latency

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022554137A (ja) * 2019-10-24 2022-12-28 マイクロン テクノロジー,インク. 重み付きメモリアクセス動作タイプを使用したメモリデバイスのサービスの品質

Also Published As

Publication number Publication date
CN103370685A (zh) 2013-10-23
CN103370685B (zh) 2016-09-14
US9684460B1 (en) 2017-06-20
KR101862892B1 (ko) 2018-05-30
JP6298098B2 (ja) 2018-03-20
US9423967B2 (en) 2016-08-23
US20140136808A1 (en) 2014-05-15
KR20140045286A (ko) 2014-04-16
US8468318B2 (en) 2013-06-18
JP2013541766A (ja) 2013-11-14
JP5937598B2 (ja) 2016-06-22
US20130275710A1 (en) 2013-10-17
US8645657B2 (en) 2014-02-04
US9037827B2 (en) 2015-05-19
WO2012037344A1 (en) 2012-03-22
EP3043255B1 (en) 2020-12-16
EP3043255A1 (en) 2016-07-13
EP2616923A1 (en) 2013-07-24
US20120066435A1 (en) 2012-03-15
US20150254004A1 (en) 2015-09-10

Similar Documents

Publication Publication Date Title
JP6298098B2 (ja) ストレージ環境におけるi/o書き込みのスケジューリング
JP6337042B2 (ja) ストレージ環境における再構成i/o読み込み動作のスケジューリング
JP6356720B2 (ja) ソリッドステートドライブ(ssd)環境におけるi/oのスケジューリング
US10228865B1 (en) Maintaining a target number of storage devices for variable I/O response times in a storage system

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170322

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170404

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170704

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170727

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171003

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171226

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180222

R150 Certificate of patent or registration of utility model

Ref document number: 6298098

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D02

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D04

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