JP5041805B2 - データストレージシステムのサービス品質コントローラ及びサービス品質方法 - Google Patents

データストレージシステムのサービス品質コントローラ及びサービス品質方法 Download PDF

Info

Publication number
JP5041805B2
JP5041805B2 JP2006509277A JP2006509277A JP5041805B2 JP 5041805 B2 JP5041805 B2 JP 5041805B2 JP 2006509277 A JP2006509277 A JP 2006509277A JP 2006509277 A JP2006509277 A JP 2006509277A JP 5041805 B2 JP5041805 B2 JP 5041805B2
Authority
JP
Japan
Prior art keywords
target
request
requests
queue
waiting time
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.)
Expired - Fee Related
Application number
JP2006509277A
Other languages
English (en)
Other versions
JP2006521640A (ja
JP2006521640A5 (ja
Inventor
マーチャント・アリフ
ラム・クリストファー
ギラーモ・アルバーツ
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.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
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 Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of JP2006521640A publication Critical patent/JP2006521640A/ja
Publication of JP2006521640A5 publication Critical patent/JP2006521640A5/ja
Application granted granted Critical
Publication of JP5041805B2 publication Critical patent/JP5041805B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4887Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、データストレージシステムに関する。
より詳細には、本発明は、サービス品質(QoS)についてのデータストレージシステムの制御に関する。
この出願は、2003年3月27日に出願された「Data Storage System Emulation」という発明の名称の米国出願第10/400,232号に関連したものである。
この米国出願の内容は、参照により本明細書に援用される。
[発明の背景]
技術の進歩といった要因により、コンピュータハードウェアのコストの削減、及び、デジタルデータの量を増加させるワールドワイドウェブの成長が、世界規模で起こっている。
例えば、企業、行政、及び家庭におけるコンピュータシステムは、テキスト形式及び他の文書形式のデータ、データベース、マルチメディアファイル、電子メール通信、ウェブページ、トランザクションレコード等を生成するのに使用される。
その結果、データストレージ要求は、非常に大きなものとなり、次第に増大している。
データストレージシステムは、この増加する要求により推進されて、より大きく、且つより複雑になっている。
例えば、現代のデータセンタは、数十個の大きなアレイならびに数千個の論理ボリューム及びファイルシステムを含む場合がある。
このようなデータセンタは、大きな組織、さらには複数の組織のストレージ要求に役立つことができる。
組織が、そのデータ記憶及び管理の要求をストレージサービスプロバイダ(SSP)に外部委託することがますます増加している。
SSPは、その顧客に利用可能とするストレージを自身のディスクアレイ上に割り当てる。
組織は、機器を購入し、適切な人材を雇うことによって内部で自身のストレージ要求を満たすことができると同時に、その別々の部門にストレージサービスを提供するためのSSPモデルに内部で従うこともできる。
各顧客が受け取るサービスレベルを、例えば容量、可用性、及び性能レベルの点で指定できることが望ましい。
しかしながら、これは、各顧客、キャッシュ空間、ディスク、バス、ネットワーク帯域幅等のストレージ資源、及び、ストレージコントローラのプロセスサイクルを得るために競争するSSPに独自の負荷を提供することから、SSPとの関連で困難になる可能性がある。
さらに、ストレージシステムは、通常、要求の発生元にかかわらず、すべての要求に対してベストエフォート型のサービスを提供するように設計される。
各仕事負荷が十分なサービスを受け取ることを確実にすることを試みる1つの手法は、過剰な容量及び帯域幅を有するストレージシステムを過剰供給することである。
しかしながら、この技法は、追加された資源がシステムのコストを増加させるので、一般にコスト効率が良くない。
別の手法は、各仕事負荷に別々の物理資源(例えば、1つ又は複数の専用ディスクアレイ)を割り当てることである。
この技法は、追加される容量又は帯域幅を一般に任意の増加量で追加できない代わりに、仕事負荷の要件が変化すると、広範囲の再構成が必要とされる場合がある点で、柔軟性に欠ける傾向がある。
米国特許第6170042号 米国特許第6434631号 米国特許第5680539号 米国特許第6157963号
したがって、特定の仕事負荷が、複数の仕事負荷をハンドリングするストレージシステムから受け取るサービスレベルを指定できる改善された機能が必要とされている。
本発明が対象とするのはこの目的である。
[発明の概要]
本発明は、データストレージシステムのサービス品質コントローラ及び関連した方法である。
1態様では、本発明は、データストレージのサービス品質方法及びサービス品質装置を提供する。
複数のストレージシステムの仕事負荷のそれぞれについての要求に優先順位が付けられる。
これらの要求は、ストレージデバイスキューを目標キュー深度に維持するために、その優先順位に従ってストレージデバイスキューへ選択的に転送される。
この目標キュー深度は、要求の待ち時間値に応じて調整される。この待ち時間値は、各仕事負荷について要求の到着時刻と完了時刻との差に基づいて計算される。
要求に優先順位を付けることは、要求の監視された到着時刻と仕事負荷の目標待ち時間とに基づいて要求の目標デッドラインを計算することにより行うことができる。
仕事負荷の目標待ち時間は、その仕事負荷の要求レートに基づくことができる。
待ち時間を削減するために、仕事負荷の目標待ち時間がその計算された待ち時間値よりも小さい場合に、目標キュー深度を削減することができる。
スループットを増加させるために、各仕事負荷の目標待ち時間が、計算された各待ち時間値よりも大きい場合に、目標キュー深度を増加させることができる。
要求をデバイスキューに上記転送した結果として、デバイスキューは到達キュー深度を有する。
したがって、目標キュー深度値を増加させることは、到達キュー深度が目標キュー深度によって制限される場合に実行することができる。
別の態様では、各仕事負荷が複数の要求を含んでいた場合に、関数が、複数の仕事負荷のそれぞれについて許容可能な待ち時間の統計値を指定する。
要求は、スケジューリングされて、データストレージデバイスへ転送され、監視された待ち時間統計値は、各仕事負荷の許容可能な待ち時間統計値の範囲内に概ね維持される。
各要求の目標デッドラインに従って要求に優先順位を付けることによって、それら要求をスケジューリングすることができる。
データストレージデバイスにおいて目標キュー深度を維持するために、要求を転送することができる。
仕事負荷の許容可能な待ち時間統計値が、監視された待ち時間統計値よりも小さい場合に、目標キュー深度を削減することができる。
さらに、許容可能な各待ち時間統計値が、監視された各待ち時間統計値よりも大きい場合に、目標キュー深度を増加させることができる。
本発明のこれらの態様及び他の態様は、本明細書でより詳細に説明される。
[好ましい実施の形態の詳細な説明]
本発明は、データストレージシステムのサービス品質コントローラ及び関連した方法を提供する。
本発明は、ホストからの入出力(I/O)要求を途中で捕捉して、それらI/O要求をストレージデバイスへ転送すると同時に、それらI/O要求が転送されるレートを選択的に調節することによって、1つ又は複数のホストと1つ又は複数のストレージデバイスとの間の仮想化レベルを追加する。
各要求は、ストレージデバイスへの配信についてスケジューリングされると同時に、その完了が監視される。
完了した要求から得られた統計的な情報に基づいて、その後、各仕事負荷の所望の性能を維持しようとして、スケジューリングを変更することができる。
本発明は、一定の性能分離(performance isolation)を提供して、或る仕事負荷が経験する性能が他の仕事負荷の変動による影響をあまり受けず、性能目標が満たされることをより確実にする。
ストレージ資源間で複数の仕事負荷をバランスさせることによって、資源が効率的に利用される。
図1は、本発明の1態様によるデータストレージ管理システム100を示している。
このシステム100は、容量計画器(capacity planner)102、サービス品質コントローラ104、及び1つ又は複数のハードディスクアレイ等のストレージデバイス(複数可)106を含む。
容量計画器102は、1つ又は複数の仕事負荷の仕様を入力として受け取る。
例えば、システムアドミニストレータがこの入力を提供することができる。
仕事負荷の仕様は、例えば、各仕事負荷によって必要とされる複数のストア(すなわち、仮想化されたストレージ空間)、及び、各仕事負荷によって必要とされる容量(すなわち、ストレージ空間の量)を含むことができる。
これに加えて、要求生成速度に基づく許容可能なI/O要求待ち時間等の仕事負荷の性能目標もシステム100に入力することができる。
容量計画器102は、デバイス106にストアを割り当てることによって、各仕事負荷のストレージをストレージデバイス106に割り当て、また、デバイス106が仕事負荷の集約した要求を満たすのに十分な容量及び帯域幅を確実に有するようにする。
この割り当ては、仕事負荷の変化する要件及びデバイス106の構成の変更を満たすように定期的に変更することができる。
容量計画器102は、容量計画ステップを実行するようにプログラミングされた汎用コンピュータシステムとして実施することができる。
容量計画器によって示されたデバイス106の物理構成は、例えば、システムアドミニストレータが実行することができる。
1態様では、容量計画器102は、2001年10月23日に出願された「Automated System Adaptation Technique Particularly for Data Storage Systems」という発明の名称の米国特許出願第10/046,463号に従って動作する。
この米国特許出願の内容は、参照により本明細書に援用される。
この計画器102では、仕事負荷の下でのストレージデバイス106のオペレーションを解析すること、その解析に基づいて新たな設計を生成すること、及び、その新たな設計に既存のシステムを移行させることを含む一連のステップが、繰り返しループで実行される。
これらのタスクをプログラムとして繰り返すことによって、容量計画は、過剰供給されることなく、仕事負荷をサポートする容量計画に収束する。
別の態様では、容量計画器102は、2001年8月7日に出願された「Simultaneous Array Configuration and Store Assignment for a Data Storage System」という発明の名称の米国特許出願第09/924,735号に従って動作する。
この米国特許出願の内容は、参照により本明細書に援用される。
この計画器102では、複数のノードを有するデータ構造体が、コンピュータ可読メモリに記憶される。
それらのノードの少なくともいくつかは、各属性を有する物理的なデータストレージデバイス106に対応する。
仕事負荷によって使用される複数のデータストアは、それぞれ、入力として提供される容量要件や帯域幅要件等のデータストレージ要件を有する。
これらのデータストアは、再帰的に階層に割り当てられ、各ノードにおいて、ストアの要件が属性のいずれも上回らないことがチェックされる。
ストアが割り当てられている間、ストアによりよく適合するように階層を変更することができる。
どの属性にも違反しない可能な割り当てを、システムの目標に従って互いに比較することができる。
図1のシステム100に使用される上述した容量計画器102は例示である。
したがって、別の計画器を選択できることは明らかである。
さらに、この容量計画は、従来の手動による技法に従って実行することもできる。
ホストシステム108は、例えば、1つ又は複数のアプリケーションが実行されて、それらのアプリケーションがストレージデバイス106に対するI/O要求(すなわち、読み出しオペレーション及び書き込みオペレーション)を生成するコンピュータシステムを含むことができる。
各仕事負荷は、1つ又は複数のホスト108、及び/又は、1つ又は複数のホスト108で実行されているアプリケーションによって生成された一続きのI/O要求を含む。
例えば、特定の仕事負荷は、ホスト108のうちの単一のホストによって、又は、ホスト108のうちのいくつかで実行されている特定のアプリケーションによって生成された要求のすべてから成ることがある。
別の例として、ホスト又はアプリケーションによって生成された要求は、読み出し要求及び書き込み要求に分割することができる。
この場合、読み出し要求が或る仕事負荷を表し、書き込み要求が別の仕事負荷を表す。
サービス品質コントローラ104は、1つ又は複数のホストシステム108によって生成されたI/O要求を受け取る。
これに応答して、コントローラ104は、ストレージデバイス106と通信して、それらの要求を完了する。
これに加えて、コントローラ104は、容量計画器102からストレージ割り当て情報を受け取ることもできる。
コントローラ104は、このストレージ割り当て情報を使用して、各要求が属する特定の仕事負荷を特定することができる。
コントローラ104が仕事負荷の性能目標を満たすのに使用可能でない場合、コントローラ104は、過負荷アラームを通信すること等によって、容量計画器102に信号で伝えることができる。
これが行われると、容量計画器102は、デバイス106にストアを再割り当てすること、デバイス106を、より多くの容量及び/又は帯域幅を有する他のデバイスと交換すること、又はデバイス106の個数又はデバイス106のコンポーネントの個数を増加させてデバイス106の全体の容量及び/又は帯域幅を増加させること等によって、適切な動作を取ることができる。
各仕事負荷の性能目標は、1対の曲線によって指定することができる。
この1対の曲線の各曲線は、時間ウィンドウwの期間で平均化されて提供された要求レートの関数としての読み出し待ち時間及び書き込み待ち時間を指定する。
図2A及び図2Bは、仕事負荷の例示の性能要件を示している。
より具体的には、図2Aは、横軸に、毎秒のI/Oの個数による読み出し要求の発行レートを有し、縦軸に、ミリ秒による上限の最大待ち時間(期間wで平均されたもの)を有するグラフを示している。
待ち時間は、所与の要求を処理するのに必要とされる時間である。
この待ち時間は、コントローラ104がホスト108から要求を受信した時と、ストレージデバイス106がその要求を完了した時との間に経過した時間として計測することができる。
図2Aに示すように、読み出し要求レートが毎秒10個のI/O未満である場合、10msの最大待ち時間が認められる。
読み出し要求レートが毎秒10個のI/Oと20個のI/Oとの間である場合、15msの最大待ち時間が認められ、読み出し要求レートが毎秒20個のI/Oと30個のI/Oとの間である場合、20msの最大待ち時間が認められる。
これに加えて、読み出し要求レートが毎秒30個のI/Oと40個のI/Oとの間である場合、25msの最大待ち時間が認められる。
必要ではないが、I/O要求レートが毎秒40個のI/Oを超える場合、待ち時間に対して制限は与えられない。
図2Bは、書き込み要求の待ち時間の制限のグラフを示している。
図2Bに示すように、書き込み要求レートが毎秒10個のI/O未満である場合、20msの最大待ち時間が認められる。
書き込み要求レートが毎秒10個のI/Oと20個のI/Oとの間である場合、30msの最大遅延時間が認められ、書き込み要求レートが毎秒20個のI/Oと30個のI/Oとの間である場合、40msの最大待ち時間が認められる。
これに加えて、書き込み要求レートが毎秒30個のI/Oと40個のI/Oとの間である場合、50msの最大待ち時間が認められる。
図2Aと同様に、I/O要求レートが毎秒40個のI/Oを超える場合、待ち時間に対して制限は与えられない。
読み出し要求についての図2Aに示す性能要件と書き込み要求についての図2Bに示す性能要件とは異なるが、同じ要件が双方に適用される場合があることは明らかであろう。
さらに、待ち時間の制限をより少なく指定することもできるし、より多く指定することもできる。
例えば、図3は、毎秒40個のI/O未満のすべての要求レートに対して、20msの単一の待ち時間制限が適用されるグラフを示している。
一般に、これらの2つの曲線は、3要素のベクトル(vector of triples)((r,tr,tw),(r,tr,tw),…,(r,tr,tw))として表すことができる。
ここで、0<r<…<rであり、rは要求レートであり、trは読み出し要求の最大待ち時間であり、twは書き込み要求の最大待ち時間である。
を超える要求レートについての待ち時間には制限が与えられないので、これは、trn+1=twn+1=∞として表すことができる。
したがって、図2Aの曲線及び図2Bの曲線は、((10IO/s,10ms,20ms),(20IO/s,15ms,30ms),(30IO/s,20ms,40ms),(40IO/s,25ms,50ms))として表すことができる。
時間は、wのウィンドウ(エポック(epoch))に分割することができる。
各ウィンドウwは、約1秒程度の長さとすることができるが、別のウィンドウの長さを選択することもできる。
したがって、最大待ち時間を超えるかどうかを判断するために、計測された待ち時間は、wの期間にわたって平均化される。
したがって、全I/O要求のうち読み出し要求の割合がfrである仕事負荷が性能要件を満たすには、どの時間ウィンドウwの平均待ち時間も、前のウィンドウwにわたる平均要求レートがrよりも小さい場合に、fr*tr+(1−fr)twを超えるべきではない。
この公式は、仕事負荷が読み出しのみである場合には待ち時間の限度がtrであることを意味し、仕事負荷が書き込みのみである場合には待ち時間の限度がtwであることを意味し、仕事負荷が読み出し/書き込みの混合したものである場合には待ち時間の限度が2つの限度を線形補間したものであることを意味する。
しかしながら、計測された待ち時間をこのように組み合わせる必要はない。
特に、仕事負荷が、観測された読み出し待ち時間又は観測された書き込み待ち時間によって支配される場合には、例えば、要求の調節は、その一方又は他方のみに基づくことができる。
また、待ち時間の目標が読み出し要求及び書き込み要求について同じである場合、それぞれについて観測された待ち時間を区別する必要もない。
一般に、仕事負荷の性能目標は、その仕事負荷の計測可能な特性の任意の組に基づいた、必要とされる待ち時間を特定する任意の計算可能な関数とすることができる。
例えば、待ち時間は、I/Oサイズの関数又はI/Oサイズの組み合わせとして、且つ、要求が読み出しであるのか、それとも書き込みであるのかで指定することができる。
この関数は、数学関数とすることもできるし、この場合のように、テーブルによって指定することもできる。
読み出し及び書き込みの性能目標は、ここでは、単一の目的関数に組み合わされるが、それら性能目標は別々にしておくこともできる。
例えば、仕事負荷からの読み出し要求及び書き込み要求は、別々の入力キューに入れることができ、別々の待ち時間の限度を各キューに関連付けることができる。
同様に、他の基準に基づいて、要求を別々の入力キューに分離することもできる。
例えば、性能目標が、小さなI/O(例えば、64KB未満)及び大きなI/O(例えば、64KB以上)について別々の待ち時間関数を指定する場合、大きなI/O要求及び小さなI/O要求を別々の入力キューに分離することができ、対応する性能要件をそれらI/O要求に別々に適用することができ、それによって、それらI/O要求を別々の仕事負荷として扱うことができる。
図4は、図1のサービス品質ストレージコントローラ104の1実施の形態をより詳細に示している。
コントローラ104は、入力キュー110、I/Oスケジューラ112、I/Oモニタ114、及びI/Oコントローラ116を含む。
キュー110は、バッファとして構成されたメモリデバイスによって実施することができる一方、スケジューラ112、モニタ114、及びコントローラ116は、汎用若しくは専用のハードウェア及び/又はソフトウェアによって実施することができる。
また、図4は、従来通りストレージシステムの一部であり、したがって、デバイス106に含まれるデバイスキュー118も示している。
QoSコントローラ104がない場合、要求は、ホスト108からデバイスキュー118へ直接非知的に配信される。
デバイスキュー118からの要求の削除及びデバイスキュー118内での要求のソートは、デバイス106の制御下で行うことができ、したがって、デバイスキュー118は、QoSコントローラ104から独立して動作する。
例えば、一般のストレージデバイス(デバイス106で使用できる)は、デバイスキュー118の要求の中でそれら要求をソートするための、デバイスの製造者に独自の方式を実施することができる。
したがって、本発明は、商用のストレージデバイスと互換性を有する。
一方、QoSコントローラ104は、デバイスキュー118への要求の流れを制御する。
(例えば、ホスト108から)QoSコントローラ104に到着した要求は、入力キュー110に入れられる。
入力キュー110では、各仕事負荷からの要求は、好ましくは、キュー100のうちの特定の1つに割り当てられる。
I/Oモニタ114及びI/Oコントローラ116からの繰り返される入力に基づいて、スケジューラ112は、デバイスキュー118の目標のキュー深度値、及び、スケジューラ112が維持しようと試みる仕事負荷ごとの待ち時間目標値を保持する。
スケジューラ112は、各仕事負荷についての要求に、その同じ仕事負荷における他の要求に対して優先順位を付ける。
これは、アーリストデッドラインファースト(EDF(earliest deadline first))スケジューリングを使用して行うことができる。
このEDFスケジューリングでは、仕事負荷Wからの要求のデッドラインは、その要求の到着時刻arrivalTime(W)に、その仕事負荷の待ち時間目標値latencyTarget(W)を加えたものとして計算される。
したがって、仕事負荷Wからの要求のデッドラインは、arrivalTime(W)+latencyTarget(W)として計算することができる。
この仕事負荷のデッドラインは、その仕事負荷における最も古い保留中の要求と同じであると考えられる。
スケジューラ112は、デバイスキュー118を定期的にポーリングして、その時点のキュー深度(すなわち、キュー118において保留中の要求の個数)を求める。
代替的に、例えば、デバイス106がデバイスキュー118の深度の報告をサポートしていない場合に、スケジューラ112は、モニタ114からのI/O要求の到着及び完了の情報に基づいて現在のデバイスキュー深度を計算することもできる。
好ましくは、キュー深度は、定期的に(例えば、1msごとに)ポーリングされ、また、I/O要求の完了時にもポーリングされる。
仕事負荷からの要求は、指定された状況下でデバイスキュー118へ転送される。
すなわち、デバイスキュー118の現在の深度がI/Oコントローラ116によって指定された目標値よりも小さい場合に、要求をデバイスキュー118へ転送することができる。
この場合、スケジューラ112は、最も早いデッドラインを有する仕事負荷を選択して、その対応するキュー110の最初の要求(すなわち、最も早いデッドラインを有する要求)をデバイスキュー118へ転送する。
スケジューラ112は、デバイスキュー118の現在の深度が目標深度に達するまで、次の最も早いデッドラインを有する仕事負荷を選択するステップ、及び、その仕事負荷の最初の要求をデバイスキュー118へ転送するステップを繰り返す。
このように、デバイスキュー118をその目標深度に維持するために、要求は、入力キュー110において優先順位付けされて、要求のうち最も高い優先順位の要求がデバイスキュー118へ転送される。
また、要求のデッドラインがすでに経過している時も、その要求をデバイスキュー118へ転送することができる。
期限が経過したすべての要求は、たとえ、この要求をデバイスキュー118へ転送することによって、デバイスキュー118の深度がその目標深度を超えさせることになっても、デバイスキュー118へ転送されることが好ましい。
これによって、新たに到着した、小さな待ち時間要件を有する仕事負荷の要求に直ちに対応することができる。
I/Oモニタ114は、I/O要求の到着及び完了を監視する。
より具体的には、モニタ114は、各仕事負荷についての新たな読み出し要求及び書き込み要求の、QoSコントローラ104への到着レートを監視することができ、また、この情報をI/Oコントローラ116へ報告することもできる。
性能目標が要求レートに基づいて最大待ち時間を指定できることを思い出されたい。
したがって、各仕事負荷の目標待ち時間は、その時点の要求レートに基づいて定期的に求めることができる。
より具体的には、性能目標が((r,tr,tw),(r,tr,tw),…,(r,tr,tw))として与えられる場合、読み出し要求及び書き込み要求を含む仕事負荷Wの待ち時間目標値は、次のように計算することができる。
latencyTarget(Wk) = fr*tri+(1−fr)twi,if ri−1?readRate(Wk)+writeRate(Wk)<ri
ここで、readRate(W)は仕事負荷Wの読み出し要求レートであり、writeRate(W)は仕事負荷Wの書き込み要求レートであり、r=0、rn+1=∞、trn+1=twn+1=∞である。
目標値は、好ましくは、P=0.05秒ごとに定期的に求められて報告される。
ただし、別の期間Pを選択できることは明らかである。
I/Oモニタ114は、要求到着レートを監視することに加えて、好ましくは、要求がQoSコントローラ104内に受信されると、各I/O要求の到着時刻も監視する。
これに加えて、モニタ114は、デバイス106によって報告された各要求の完了時刻も監視する。
モニタ114は、これから、各要求の待ち時間及び各仕事負荷の(wの期間にわたる)平均待ち時間を計算することができる。
この平均待ち時間は、次に、コントローラ116に報告される。
待ち時間の平均値は、好ましくは、P=0.05秒ごとに定期的に計算されて報告される。
ただし、別の期間を選択できることは明らかである。
コントローラ116は、平均待ち時間情報に応じて、デバイスキュー118の目標深度を調整することができる。
この制御は、デバイスキュー118の深度を削減すると、デバイス106における待ち時間が削減されることにつながるが、スループットも削減されることにつながるという仮定に基づいている。
逆に言えば、デバイスキュー118の深度を増加させると、待ち時間が増加することにつながり、スループットも増加することにつながる。
この仮定は、ほとんどのディスク及びディスクアレイに当てはまると予想される。
コントローラ116は、デバイスキュー118をフル(すなわち、その目標深度に)維持しようと試みる。
これは、デバイスキュー118に多くの要求を有すると、デバイス106の利用が改善され、したがって、スループットが最大になるからである。
しかしながら、デバイスキュー118にあまりにも多くの要求を有すると、待ち時間が許容できないものとなるおそれがある。
例えば、仕事負荷が小さな待ち時間を要求する場合、デバイスキュー118に多くの要求を有することは、仕事負荷からの次の要求が、キュー118の他の多くの未処理の要求と競合することを意味し、したがって、その要求は、キュー118が有する未処理の要求が少ない場合よりも遅く(大きな待ち時間で)完了することを意味する。
このように、デバイスキュー118をその目標深度に維持することは、待ち時間が過大になることなく、ストレージデバイス106の利用を最大にすることにつながる。
目標キュー深度は、このバランスを維持するように調整される。
特定のインプリメンテーションでは、コントローラ116は、各仕事負荷の現在の目標待ち時間を、前の期間中に計測されたその平均待ち時間と比較して、デバイスキュー118の目標深度を調整する。
いずれかの仕事負荷が、その前の計測された待ち時間よりも小さな新しい目標待ち時間を有すると、そのデバイスキュー118の目標深度は削減される。
目標深度の削減量は、好ましくは、各仕事負荷についての目標待ち時間と計測された待ち時間との差の中で最大の差に比例する。
例えば、2つの仕事負荷W及びWを有するシステムにおいて、仕事負荷Wの新たな目標待ち時間が、その計測された値よりも10%小さく、且つ、仕事負荷Wの新たな目標待ち時間が、その計測された目標値よりも5%小さい場合、デバイスキュー118の目標深度は、好ましくは、デバイスキュー118の前の目標深度から10%だけ削減される。
しかしながら、デバイスキュー118の目標値の削減は、別の方法で求めることもできることは明らかである。
例えば、削減量は、仕事負荷の2つ又は3つ以上についての目標値と計測された値との差から統計的に(例えば、平均化することによって)求めることができる。
逆に言えば、新たな目標待ち時間のすべてが、仕事負荷のすべてについて計測された待ち時間よりも長い場合、デバイスキュー118の目標深度は、より大きなスループットを可能にさせるために増加させることができる。
例えば、目標深度は、所定の乗数によって増加させることができる。
例えば、乗数が0.1である場合、目標深度は、その前の値の110%に増加される。
ただし、別の乗数を選択することもできる。
デバイスキュー118の目標深度を増加させると、実際の到達キュー深度がその目標深度によって制限された場合にのみ、スループットが増加すると予想される。
したがって、目標深度を増加させるかどうかは、到達キュー深度が目標深度によって制限されたかどうかに基づいて決定することができる。
これらの条件のいずれも当てはまらない場合には、デバイスキュー118の目標深度は変更しないでおくことができる。
このように、コントローラ116は、非線形フィードバックを実施して、デバイスの目標深度を調整することができる。
形式的に、上述したフィードバック方式は、以下によって表すことができる。
Figure 0005041805
ここで、Qnewは、デバイスキュー118の新たな目標深度であり、Qoldは、デバイスキュー118の前の目標深度であり、Qmaxは、前の期間に到達したデバイスキュー118の最大深度であり、L(W)は、仕事負荷Wの計測された平均待ち時間であり、εは、所定の小さな正の値(例えば、0.1)である。
最初に、目標キュー深度は、初期値(例えば、200エントリー)に設定される。
上記のように、データストレージのサービス品質システム及びサービス品質方法を説明してきた。
本発明は、一定の性能分離を提供して、或る仕事負荷が経験する性能が他の仕事負荷の変動による影響をあまり受けず、性能目標が満たされることをより確実にする。
ストレージ資源間で複数の仕事負荷をバランスさせることによって、資源が効率的に利用される。
上記は、本発明の特定の実施の形態に関するものであるが、本発明の原理及び精神から逸脱することなく、これらの実施の形態に変更を行えることが当業者には理解されよう。
本発明の範囲は、添付の特許請求の範囲によって画定される。
本発明の1態様によるデータストレージ管理システムを示す図である。 仕事負荷の例示の性能要件を示す図である。 仕事負荷の例示の性能要件を示す図である。 単一の待ち時間制限がしきい値未満のすべての要求レートに適用される代替的な例示の性能要件を示す図である。 本発明の1態様によるサービス品質ストレージコントローラを示す図である。
符号の説明
102・・・容量計画器,
104・・・QoSコントローラ,
106・・・ストレージ,
108・・・ホスト,
110・・・入力キュー,
112・・・I/Oスケジューラ,
114・・・I/Oモニタ,
116・・・I/Oコントローラ,

Claims (27)

  1. データストレージのサービス品質制御方法であって、
    QoSコントローラ(104)が、複数のワークロードのそれぞれについての複数の要求を、外部から受け入れて、受け入れた要求それぞれに優先順位を付けることと、
    QoSコントローラ(104)が、前記複数の要求から、前記優先順位が高い順に選択して、前記データストレージのキュー(118)へ、前記選択した順に要求を転送することと、
    QoSコントローラ(104)が、前記キューが保持する要求の数を、保持できる要求の目標数を示す目標キュー深度に維持することと、
    ストレージデバイス(106)が、前記要求に応じた処理が完了した場合に、この要求を前記キューから削除することと、
    QoSコントローラ(104)が、前記要求それぞれに応じた処理に要する待ち時間の目標値を示し、予め定められた期間に受け入れる要求の数を示す要求レートに応じて定められる各目標待ち時間と、前記要求それぞれに応じた処理に要する各待ち時間値とに基づいて、前記目標キュー深度を調整することと
    を含み、
    前記各待ち時間値は、前記QoSコントローラが前記要求を外部から受け入れた受入時間と、前記受け入れた要求に応じた前記データストレージにおける処理が完了した完了時間との差に基づいて、前記QoSコントローラにより計算され、
    前記目標待ち時間それぞれは、この目標待ち時間が定められる時点の要求レートに対応する予め定められた読み出し要求の最大待ち時間と、この目標待ち時間が定められる時点の要求レートに対応する予め定められた書き込み要求の最大待ち時間と、全要求に対する読み込み要求の割合と、全要求に対する書き込み要求の割合とに基づいて、前記QoSコントローラにより、予め定められた間隔で定期的に定められる
    方法。
  2. 前記優先順位を付けることは、
    要求に応じた処理が完了する時間の目標値を示す目標デッドラインを計算すること
    を含む請求項1に記載の方法。
  3. 前記QoSコントローラが、前記目標デッドラインを経過した要求を、前記キューに転送すること
    をさらに含む請求項2に記載の方法。
  4. 前記QoSコントローラが、前記要求の受入時間をモニタすること
    をさらに含む請求項2に記載の方法。
  5. 前記要求の前記目標デッドラインを前記計算することは、
    前記目標待ち時間と、前記要求の前記受入時間とに基づいて計算すること
    を含む
    請求項4に記載の方法。
  6. 前記ワークロードの要求レートをモニタすること
    をさらに含む請求項5に記載の方法。
  7. 前記キューは、
    ストレージデバイスの中に含まれるデバイスキュー(118)である
    請求項1に記載の方法。
  8. 前記QoSコントローラが、前記デバイスキュー(118)への前記要求の転送に先立って、前記要求それぞれを、対応する入力キュー(110)に割り当てる
    請求項7に記載の方法。
  9. 前記計算された待ち時間値は、目標待ち時間を有するワークロード用であり、
    前記目標キュー深度を前記調整することは、
    前記ワークロードの前記目標待ち時間が前記計算された待ち時間値よりも短いときに、前記目標キュー深度を削減すること
    を含む
    請求項1に記載の方法。
  10. 前記QoSコントローラが、前記目標待ち時間と、前記計算された待ち時間との比較値に基づいて、前記目標キュー深度を、比例的に削減する
    請求項9に記載の方法。
  11. 前記計算された待ち時間値は、目標待ち時間を有するワークロード用であり、
    ワークロードそれぞれは、
    目標待ち時間及び計算された待ち時間値
    を有し、
    前記目標キュー深度値を前記調整することは、
    目標待ち時間それぞれが計算された待ち時間値それぞれよりも長いときに、前記目標キュー深度を増加させること
    を含む請求項1に記載の方法。
  12. 前記要求をキューに転送することの結果として、前記デバイスキューは、前記転送された要求の数を示す到達キュー深度を有し、
    前記到達キュー深度が、前記目標キュー深度により制限されるときにのみ、 前記QoSコントローラが、前記目標キュー深度の値を増加させること
    をさらに含む請求項7に記載の方法。
  13. 前記目標キュー深度の値を増加させることは、所定の乗数により前記目標キュー深度を増加させる
    請求項12に記載の方法。
  14. ストレージシステムのサービス品質制御装置であって、
    複数のワークロードから要求を受け取る複数の入力キューであって、ワークロードそれぞれは、対応する前記入力キューに割り当てられ、入力キューそれぞれの要求は優先順位が付けられる複数の入力キューと、
    ワークロードそれぞれの要求の性能値をモニタするモニタと、
    前記入力キューから優先順位の高い順に前記要求を選択して、ストレージデバイスキューへ、前記選択した順に要求を転送するスケジューラであって、前記ストレージデバイスキューが保持する要求の数を、保持できる要求の目標数を示す目標キュー深度に維持するスケジューラと、
    前記要求それぞれに応じた処理に要する待ち時間の目標値を示し、予め定められた期間に受け入れる前記要求の数を示す要求レートに応じて定められる各目標待ち時間と、ワークロードそれぞれの前記要求の前記性能値とに基づいて、前記ストレージデバイスキューの前記目標キュー深度を調整するコントローラと
    を有し、
    前記目標待ち時間それぞれは、この目標待ち時間が定められる時点の要求レートに対応する予め定められた読み出し要求の最大待ち時間と、この目標待ち時間が定められる時点の要求レートに対応する予め定められた書き込み要求の最大待ち時間と、全要求に対する読み込み要求の割合と、全要求に対する書き込み要求の割合とに基づいて、前記QoSコントローラにより、予め定められた間隔で定期的に定められる
    装置。
  15. 前記キューそれぞれの中の前記要求は、要求それぞれに割り当てられた、要求に応じた処理が完了する時間の目標値を示す目標デッドラインに従って優先順位が付けられる
    請求項14に記載の装置。
  16. 要求それぞれの目標デッドラインは、前記要求の受入時間と、この要求の前記目標待ち時間とから決められる
    請求項15に記載の装置。
  17. 前記モニタは、前記要求レートをモニタする
    請求項14に記載の装置。
  18. ワークロードそれぞれの要求への前記性能値は、
    前記各要求に応じた処理に要する待ち時間値
    を含む
    請求項14に記載の装置。
  19. 前記コントローラは、前記要求それぞれに対する前記目標待ち時間が、いずれの要求に対する待ち時間値よりも短いときに、前記目標キュー深度を削減する
    請求項18に記載の装置。
  20. 前記目標待ち時間と、前記要求に対する待ち時間値との比較値に基づいて、前記計算された待ち時間との比較値に基づいて、前記目標キュー深度が、比例的に削減される
    請求項19に記載の装置。
  21. 前記コントローラは、前記要求それぞれに対する目標待ち時間それぞれが、対応する待ち時間値よりも長いときに、前記目標キュー深度を増加させる
    請求項18に記載の装置。
  22. 前記ストレージデバイスキューは、
    到達キュー深度
    を有し、
    前記コントローラは、前記目標キュー深度により前記到達キュー深度が制限されるときにのみ、前記目標キュー深度値を増加させる
    請求項18に記載の装置。
  23. 前記目標キュー深度は、所定の乗数により増加される
    請求項22に記載の装置。
  24. 前記コントローラは、前記データストレージデバイスの前記目標キュー深度を、下式に従って調整し、
    Figure 0005041805
    ここで、latencyTarget(Wk)は、ワークロードWkの要求に対する目標待ち時間であり、Qnewは、上記式に従って調整された新たな目標キュー深度であり、Qoldは、上記式に従って調整される前の元の目標キュー深度であり、Qmaxは、先の所定の期間において到達したストレージデバイスキューの最大の深度であり、L(Wk)は、ワークロードWkの要求に対する前記待ち時間値であり、∈は、所定の乗数である
    請求項18に記載の装置。
  25. 前記ワークロードそれぞれは、
    1つ以上の対応するデータ記憶
    を有し、
    記憶領域に前記データ記憶を割り当てるキャパシティプランナー
    をさらに有する請求項22に記載の装置。
  26. 機械により読み取り可能なプログラムストレージデバイスであって、
    ストレージシステムの複数のワークロードそれぞれについての複数の要求を、外部から受け入れて、受け入れた要求それぞれに優先順位を付けるステップと、
    前記複数の要求から、前記優先順位が高い順に選択して、前記ストレージシステムのキュー(118)へ、前記選択した順に前記要求をキューイングするステップであって、キューイングする要求の数を、保持できる要求の目標数を示す目標キュー深度に維持するステップと、
    前記要求それぞれに応じた処理に要する待ち時間の目標値を示す各目標待ち時間と、前記要求それぞれに応じた処理に要する各待ち時間値に応じて、前記目標キュー深度を調整するステップと
    を含む方法のステップを、前記機械により実行させるプログラムを記憶し、
    前記待ち時間値は、前記要求を外部から受け入れた受入時間と、前記受け入れた要求に応じた処理が完了した完了時間との間の差に基づいて計算され、
    前記目標待ち時間それぞれは、この目標待ち時間が定められる時点の要求レートに対応する予め定められた読み出し要求の最大待ち時間と、この目標待ち時間が定められる時点の要求レートに対応する予め定められた書き込み要求の最大待ち時間と、全要求に対する読み込み要求の割合と、全要求に対する書き込み要求の割合とに基づいて、前記QoSコントローラにより、予め定められた間隔で定期的に定められる
    プログラムストレージデバイス。
  27. 前記優先順位付けは、前記要求の受入時間と、前記目標待ち時間から決められ、要求それぞれに割り当てられる、要求に応じた処理が完了する時間の目標値を示す目標デッドラインに従って実行される
    請求項26に記載のプログラムストレージデバイス。
JP2006509277A 2003-03-27 2004-03-25 データストレージシステムのサービス品質コントローラ及びサービス品質方法 Expired - Fee Related JP5041805B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/400,556 US7917903B2 (en) 2003-03-27 2003-03-27 Quality of service controller and method for a data storage system
US10/400,556 2003-03-27
PCT/US2004/009119 WO2004088547A2 (en) 2003-03-27 2004-03-25 Quality of service controller and method for a data storage system

Publications (3)

Publication Number Publication Date
JP2006521640A JP2006521640A (ja) 2006-09-21
JP2006521640A5 JP2006521640A5 (ja) 2007-01-11
JP5041805B2 true JP5041805B2 (ja) 2012-10-03

Family

ID=32989240

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006509277A Expired - Fee Related JP5041805B2 (ja) 2003-03-27 2004-03-25 データストレージシステムのサービス品質コントローラ及びサービス品質方法

Country Status (3)

Country Link
US (1) US7917903B2 (ja)
JP (1) JP5041805B2 (ja)
WO (1) WO2004088547A2 (ja)

Families Citing this family (83)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7643983B2 (en) * 2003-03-28 2010-01-05 Hewlett-Packard Development Company, L.P. Data storage system emulation
US7058764B2 (en) * 2003-04-14 2006-06-06 Hewlett-Packard Development Company, L.P. Method of adaptive cache partitioning to increase host I/O performance
US8423662B1 (en) * 2003-04-28 2013-04-16 Akamai Technologies, Inc. Forward request queuing in a distributed edge processing environment
US20060161753A1 (en) * 2005-01-18 2006-07-20 Aschoff John G Method, apparatus and program storage device for providing automatic performance optimization of virtualized storage allocation within a virtualized storage subsystem
US7363399B2 (en) * 2005-08-17 2008-04-22 International Business Machines Corporation Method, apparatus and computer program product providing storage network dynamic tuning of I/O flow with Queue Depth
US20070156955A1 (en) * 2005-12-30 2007-07-05 Royer Robert J Jr Method and apparatus for queuing disk drive access requests
US20070189509A1 (en) * 2006-02-13 2007-08-16 Foody Daniel M Data path identification and analysis for distributed applications
US20070233449A1 (en) * 2006-03-31 2007-10-04 Microsoft Corporation Simulation of hierarchical storage systems
US8073671B2 (en) * 2006-03-31 2011-12-06 Microsoft Corporation Dynamic software performance models
US7792129B2 (en) 2006-12-01 2010-09-07 International Business Machines Corporation Multi-queue packet processing using Patricia tree
US7870335B2 (en) * 2007-06-26 2011-01-11 Seagate Technology Llc Host adaptive seek technique environment
US7797487B2 (en) * 2007-06-26 2010-09-14 Seagate Technology Llc Command queue loading
US8250197B2 (en) * 2008-10-28 2012-08-21 Vmware, Inc. Quality of service management
US7912951B2 (en) * 2008-10-28 2011-03-22 Vmware, Inc. Quality of service management
US8024498B2 (en) 2008-12-15 2011-09-20 International Business Machines Corporation Transitions between ordered and ad hoc I/O request queueing
US9323473B2 (en) 2009-01-09 2016-04-26 Hewlett Packard Enterprise Development Lp Virtual tape library
US8135924B2 (en) 2009-01-14 2012-03-13 International Business Machines Corporation Data storage device driver
JP5402226B2 (ja) 2009-05-13 2014-01-29 富士通株式会社 管理装置、情報処理システム、情報処理システムの制御プログラムおよび情報処理システムの制御方法
US8341314B2 (en) * 2009-06-30 2012-12-25 Hewlett-Packard Development Company, L.P. Managing I/O request in storage system
GB2473505B (en) * 2009-09-15 2016-09-14 Advanced Risc Mach Ltd A data processing apparatus and a method for setting priority levels for transactions
US8893146B2 (en) * 2009-11-13 2014-11-18 Hewlett-Packard Development Company, L.P. Method and system of an I/O stack for controlling flows of workload specific I/O requests
US9262346B2 (en) * 2010-06-21 2016-02-16 Hewlett Packard Enterprises Development LP Prioritizing input/outputs at a host bus adapter
US8719401B1 (en) * 2010-07-12 2014-05-06 Vmware, Inc. Decentralized input/output resource management
US8417812B1 (en) 2010-07-12 2013-04-09 Vmware, Inc. Methods and systems for detecting anomalies during IO accesses
US8468524B2 (en) * 2010-10-13 2013-06-18 Lsi Corporation Inter-virtual machine time profiling of I/O transactions
RU2533173C1 (ru) 2010-11-08 2014-11-20 Нек Корпорейшн Устройство обработки информации
CN102724103B (zh) * 2011-03-30 2015-04-01 国际商业机器公司 代理服务器、分层次网络***及分布式工作负载管理方法
WO2012170025A1 (en) * 2011-06-09 2012-12-13 Hewlett-Packard Development Company, L.P. Regulating power consumption of a mass storage system
US10877669B1 (en) * 2011-06-30 2020-12-29 Amazon Technologies, Inc. System and method for providing a committed throughput level in a data store
US8909764B2 (en) 2011-07-28 2014-12-09 Xyratex Technology Limited Data communication method and apparatus
WO2013070800A1 (en) * 2011-11-07 2013-05-16 Nexgen Storage, Inc. Primary data storage system with quality of service
US8452901B1 (en) 2011-12-30 2013-05-28 Emc Corporation Ordered kernel queue for multipathing events
US8788658B2 (en) 2012-02-03 2014-07-22 International Business Machines Corporation Allocation and balancing of storage resources
US9244742B2 (en) * 2012-05-31 2016-01-26 Vmware, Inc. Distributed demand-based storage quality of service management using resource pooling
US9292205B2 (en) * 2012-06-14 2016-03-22 Avago Technologies General Ip (Singapore) Pte. Ltd. Methods and systems for adaptive queue depth management
US9130969B2 (en) 2012-08-23 2015-09-08 Seagate Technology Llc Data storage I/O communication method and apparatus
US9647916B2 (en) * 2012-10-27 2017-05-09 Arris Enterprises, Inc. Computing and reporting latency in priority queues
US9684633B2 (en) 2013-01-24 2017-06-20 Samsung Electronics Co., Ltd. Adaptive service controller, system on chip and method of controlling the same
US9081741B2 (en) 2013-05-21 2015-07-14 International Business Machines Corporation Minimizing delay periods when accessing mirrored disks
US9317382B2 (en) 2013-05-21 2016-04-19 International Business Machines Corporation Storage device with error recovery indication
US10083465B2 (en) * 2013-09-06 2018-09-25 Facebook, Inc. Allocating information for content selection among computing resources of an online system
GB2519294A (en) 2013-10-15 2015-04-22 Ibm Storage controller quality of service
US9699032B2 (en) * 2013-10-29 2017-07-04 Virtual Instruments Corporation Storage area network queue depth profiler
US9465645B1 (en) * 2014-06-25 2016-10-11 Amazon Technologies, Inc. Managing backlogged tasks
US9298518B2 (en) * 2014-07-09 2016-03-29 International Business Machine Corporation Safe consolidation and migration
US10866742B1 (en) * 2014-08-04 2020-12-15 Nexgen Storage, Inc. Archiving storage volume snapshots
US9521089B2 (en) 2014-08-30 2016-12-13 International Business Machines Corporation Multi-layer QoS management in a distributed computing environment
US10366358B1 (en) 2014-12-19 2019-07-30 Amazon Technologies, Inc. Backlogged computing work exchange
WO2016132428A1 (ja) * 2015-02-16 2016-08-25 株式会社日立製作所 ストレージ装置
JP2016184310A (ja) 2015-03-26 2016-10-20 富士通株式会社 情報処理システム、制御装置および情報処理システムの制御方法
US9760281B2 (en) * 2015-03-27 2017-09-12 Intel Corporation Sequential write stream management
US9575664B2 (en) * 2015-04-08 2017-02-21 Prophetstor Data Services, Inc. Workload-aware I/O scheduler in software-defined hybrid storage system
US10235104B1 (en) * 2015-09-30 2019-03-19 EMC IP Holding Company LLC IO request system and method
DE202015105354U1 (de) 2015-10-09 2017-01-11 J.G. Hambrock Zahnbürste
US10785295B2 (en) * 2016-06-30 2020-09-22 Intel Corporation Fabric encapsulated resilient storage
US11886922B2 (en) 2016-09-07 2024-01-30 Pure Storage, Inc. Scheduling input/output operations for a storage system
US10735513B2 (en) 2016-09-08 2020-08-04 Toshiba Memory Corporation Remote NVMe activation
US10298442B2 (en) 2016-09-27 2019-05-21 International Business Machines Corporation Error recovery process
US10503544B2 (en) * 2016-10-17 2019-12-10 Toyota Jidosha Kabushiki Kaisha Efficient mapping from task graphs to dynamic system platforms
CN108009006B (zh) * 2016-11-02 2022-02-18 华为技术有限公司 I/o请求的调度方法及装置
CN110073321B (zh) 2016-12-29 2020-05-08 华为技术有限公司 一种存储控制器及io请求处理方法
CN109799956B (zh) 2017-01-05 2023-11-17 华为技术有限公司 一种存储控制器及io请求处理方法
US10732895B2 (en) * 2017-03-22 2020-08-04 Burlywood, Inc. Drive-level internal quality of service
US10592123B1 (en) * 2017-07-13 2020-03-17 EMC IP Holding Company LLC Policy driven IO scheduler to improve write IO performance in hybrid storage systems
US10599340B1 (en) * 2017-07-13 2020-03-24 EMC IP Holding LLC Policy driven IO scheduler to improve read IO performance in hybrid storage systems
US10719245B1 (en) 2017-07-13 2020-07-21 EMC IP Holding Company LLC Transactional IO scheduler for storage systems with multiple storage devices
US10346054B1 (en) * 2017-07-13 2019-07-09 EMC IP Holding Company LLC Policy driven IO scheduler resilient to storage subsystem performance
US10509739B1 (en) * 2017-07-13 2019-12-17 EMC IP Holding Company LLC Optimized read IO for mix read/write scenario by chunking write IOs
JP6956956B2 (ja) * 2017-08-08 2021-11-02 学校法人慶應義塾 細胞生産方法
KR102429904B1 (ko) * 2017-09-08 2022-08-05 삼성전자주식회사 PCIe P2P 접속의 밴드위스를 최대화할 수 있는 방법 및 시스템
US10528506B2 (en) * 2017-10-18 2020-01-07 Western Digital Technologies, Inc. Uniform performance monitor for a data storage device and method of operation
US11294810B2 (en) * 2017-12-12 2022-04-05 Advanced Micro Devices, Inc. Memory request throttling to constrain memory bandwidth utilization
US12026381B2 (en) 2018-10-26 2024-07-02 Pure Storage, Inc. Preserving identities and policies across replication
US10671302B1 (en) 2018-10-26 2020-06-02 Pure Storage, Inc. Applying a rate limit across a plurality of storage systems
US20200183838A1 (en) * 2018-12-10 2020-06-11 International Business Machines Corporation Dynamic cache resize taking into account underlying raid characteristics
US10802725B2 (en) * 2019-03-07 2020-10-13 Vmware, Inc. Management of unmap processing rates in distributed and shared data storage volumes
US11550631B2 (en) * 2019-06-17 2023-01-10 Hewlett Packard Enterprise Development Lp Distribution of quantities of an increased workload portion into buckets representing operations
CN111444012B (zh) * 2020-03-03 2023-05-30 中国科学院计算技术研究所 一种保证延迟敏感应用延迟slo的动态调控资源方法及***
CN113377277A (zh) * 2020-03-09 2021-09-10 伊姆西Ip控股有限责任公司 管理存储器的方法、设备和计算机程序产品
US20220374149A1 (en) * 2021-05-21 2022-11-24 Samsung Electronics Co., Ltd. Low latency multiple storage device system
US11782851B2 (en) * 2021-09-01 2023-10-10 Micron Technology, Inc. Dynamic queue depth adjustment
CN114489986A (zh) * 2022-01-25 2022-05-13 惠州Tcl移动通信有限公司 任务调度方法、装置、终端设备及存储介质
CN116560842B (zh) * 2023-05-12 2024-04-16 无锡众星微***技术有限公司 一种sas存储业务中的i/o队列调度方法

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5239659A (en) * 1991-06-19 1993-08-24 Storage Technology Corporation Phantom duplex copy group apparatus for a disk drive array data storge subsystem
US5459857A (en) * 1992-05-15 1995-10-17 Storage Technology Corporation Fault tolerant disk array data storage subsystem
US5426736A (en) * 1993-05-26 1995-06-20 Digital Equipment Corporation Method and apparatus for processing input/output commands in a storage system having a command queue
JPH0855071A (ja) * 1994-08-08 1996-02-27 Matsushita Electric Ind Co Ltd サーバ装置
US5680539A (en) * 1995-07-11 1997-10-21 Dell Usa, L.P. Disk array system which performs data reconstruction with dynamic load balancing and user-specified disk array bandwidth for reconstruction operation to maintain predictable degradation
US6078998A (en) * 1997-02-11 2000-06-20 Matsushita Electric Industrial Co., Ltd. Real time scheduling of prioritized disk requests
US6170042B1 (en) * 1998-02-24 2001-01-02 Seagate Technology Llc Disc drive data storage system and method for dynamically scheduling queued commands
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
US6434631B1 (en) * 1999-10-15 2002-08-13 Lucent Technologies Inc. Method and system for providing computer storage access with quality of service guarantees
US6862623B1 (en) * 2000-04-14 2005-03-01 Microsoft Corporation Capacity planning for server resources
US6738386B1 (en) * 2000-05-11 2004-05-18 Agere Systems Inc. Controlled latency with dynamically limited queue depth based on history and latency estimation
JP2002132698A (ja) * 2000-10-27 2002-05-10 Matsushita Electric Ind Co Ltd データ転送制御方法およびその装置
US6970936B2 (en) * 2000-12-19 2005-11-29 International Business Machines Corporation Data processing system and method of communication that employ a request-and-forget protocol
US7230923B2 (en) * 2001-03-09 2007-06-12 Vitesse Semiconductor Corporation Time based packet scheduling and sorting system
JP4175788B2 (ja) * 2001-07-05 2008-11-05 株式会社日立製作所 ボリューム制御装置
US7292580B2 (en) * 2002-06-10 2007-11-06 Lsi Corporation Method and system for guaranteeing quality of service in a multi-plane cell switch
US7783787B1 (en) * 2002-06-13 2010-08-24 Netapp, Inc. System and method for reprioritizing high-latency input/output operations
US7093256B2 (en) * 2002-12-13 2006-08-15 Equator Technologies, Inc. Method and apparatus for scheduling real-time and non-real-time access to a shared resource

Also Published As

Publication number Publication date
WO2004088547A2 (en) 2004-10-14
JP2006521640A (ja) 2006-09-21
US20040194095A1 (en) 2004-09-30
WO2004088547A3 (en) 2005-01-13
US7917903B2 (en) 2011-03-29

Similar Documents

Publication Publication Date Title
JP5041805B2 (ja) データストレージシステムのサービス品質コントローラ及びサービス品質方法
US7643983B2 (en) Data storage system emulation
US6711607B1 (en) Dynamic scheduling of task streams in a multiple-resource system to ensure task stream quality of service
US9703285B2 (en) Fair share scheduling for mixed clusters with multiple resources
EP3335119B1 (en) Multi-priority service instance allocation within cloud computing platforms
JP6100712B2 (ja) 記憶側記憶要求管理
JP2940450B2 (ja) クラスタ型コンピュータのジョブスケジュール方法及び装置
JP3944154B2 (ja) マルチスレッド・サーバ内のスレッド・プールを動的に調整する方法およびシステム
CA2942665C (en) Coordinated admission control for network-accessible block storage
US8087026B2 (en) Fair share scheduling based on an individual user's resource usage and the tracking of that usage
US20050055694A1 (en) Dynamic load balancing resource allocation
JP7018554B2 (ja) 適応型リソース割り当て方法及び装置
US9442763B2 (en) Resource allocation method and resource management platform
US6434631B1 (en) Method and system for providing computer storage access with quality of service guarantees
US9104482B2 (en) Differentiated storage QoS
US10394606B2 (en) Dynamic weight accumulation for fair allocation of resources in a scheduler hierarchy
WO2007071505A1 (en) Load-balancing metrics for adaptive dispatching of long asynchronous network requests
US20120221730A1 (en) Resource control system and resource control method
US10250673B1 (en) Storage workload management using redirected messages
US9772798B2 (en) Method and system for implementing workload management by monitoring disk utilizations
CN107430526B (zh) 用于调度数据处理的方法和节点
Kettimuthu et al. Differentiated scheduling of response-critical and best-effort wide-area data transfers
US20220179687A1 (en) Information processing apparatus and job scheduling method
JP2023032163A (ja) 情報処理装置およびジョブスケジューリング方法
Dandamudi The effect of scheduling discipline on sender-initiated and receiver-initiated adaptive load sharing in homogeneous distributed systems

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061107

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061107

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090825

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091120

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100107

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100428

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

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20100513

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20100806

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120611

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120710

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150720

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees
S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371