JP2004086914A - コンピュータシステム内の記憶装置のパフォーマンスの最適化 - Google Patents

コンピュータシステム内の記憶装置のパフォーマンスの最適化 Download PDF

Info

Publication number
JP2004086914A
JP2004086914A JP2003303987A JP2003303987A JP2004086914A JP 2004086914 A JP2004086914 A JP 2004086914A JP 2003303987 A JP2003303987 A JP 2003303987A JP 2003303987 A JP2003303987 A JP 2003303987A JP 2004086914 A JP2004086914 A JP 2004086914A
Authority
JP
Japan
Prior art keywords
host
storage device
queue
data storage
array
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.)
Pending
Application number
JP2003303987A
Other languages
English (en)
Inventor
Randy J Matthews
ランディ・ジェイ・マシューズ
Marc E Lefevre
マーク・イー・レフェブル
Richelle L Ahlvers
リチェル・エル・アールバーズ
Wade A Dolphin
ウェイド・エイ・ドルフィン
Douglas L Voigt
ダグラス・エル・ボイト
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 JP2004086914A publication Critical patent/JP2004086914A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】
 多数のホストを接続してもホスト側タイムアウトイベントや記憶装置側のQFULLイベントの発生を最小限に抑える記憶装置を提供すること。
【解決手段】
 データ記憶装置(101,102)は、ディスクアレイ(101)、該アレイを制御するためのアレイコントローラ(102)、及び、ホストシステムからディスクアレイ(101)へのコマンドを入れるためのキュー(103)で構成される。アレイコントローラ(102)にインストールされたプログラム(106)がキューの論理サイズ(104)を調節してパフォーマンスを最適化する。
【選択図】 図1

 

Description

 本発明は、コンピュータシステムの分野に関し、特に、ホスト装置の要求とデータ記憶装置の容量とのバランスをとる手段および方法を提供する。
 コンピュータシステムには、通常、ホストと呼ばれる1つまたは複数のコンピュータが含まれる。複数のコンピュータが使用される場合、それらのコンピュータは、データの共有を可能にするネットワークによって相互接続される。通常、そのようなネットワークは、ネットワーク接続されたそれらのコンピュータに対して追加のデータ記憶容量を提供するための1つまたは複数のデータ記憶装置も含む。一般的なデータ記憶装置はディスクアレイであり、RAID(Redundant Array of Independent(またはInexpensive)Disks)と呼ばれることもある。ディスクアレイは、接続されたホストに対してデータ記憶装置を提供する2つ以上のハードディスクまたは同種のディスクである。
 コンピュータシステムは、システム中の全コンポーネントを均等なバランスのパフォーマンスにした時に最適に動作する。ホストシステムおよび接続された記憶装置は、記憶装置のホスト要求を満たす能力がホストによって生成された作業負荷とおよそ等価になるように、通常バランスを取らなければならない。さらに複雑な構成の場合、多数のホストが1つまたは複数の記憶装置との間でデータを転送することが可能になっている場合がある。複数のホストが1つの記憶装置にアクセスする場合、その記憶装置は、接続されたすべてのホストのパフォーマンス要求に対応できることが重要である。パフォーマンスの観点から記憶装置の能力がホストの能力よりも大幅に低い場合、記憶装置はシステムパフォーマンス全体における制限要素になる可能性がある。
 ファイバーチャネル(FC)テクノロジは、ホスト装置と記憶装置とを接続またはネットワーク化するテクノロジである。ファイバーチャネルテクノロジは、1つの記憶装置に接続された何千ものホストを含むことが可能な構成を可能にする。ファイバーチャネルは、SCSI(小型コンピュータシステムインタフェース)プロトコル、たとえばSCSI−3通信プロトコルを使用する。したがって、何千に及ぶ可能性があるホストの各々は、ディスクアレイ内で最大65,536までの論理記憶装置(LUN)をアドレス指定することができる。今日では、何千ものLUNを作成する能力を有するファイバーチャネルテクノロジを用いて通信するディスクアレイが出荷されている。
 ディスクアレイ構成は、4つ以下のドライブを有するアレイから100を超えるドライブを有するアレイまで、さまざまである。最終的に、ディスクアレイのパフォーマンスは、アレイ中のディスク数によって制限される。これは、すべての作業が最終的にディスクに渡されることになるからである。
 明らかに、ファイバーチャネルテクノロジは、1つの記憶装置に多数のホストを接続することをユーザに勧めるものである。多数のホストは、ディスクアレイ等の記憶装置に対して莫大な量の作業を命令する可能性がある。したがって、そのような環境にいるユーザは、何百ものディスクを有するエンタープライズディスクアレイを用いた作業に慣れているので、多数のホストをサポートするのに必要なパフォーマンスを受け入れることができる場合がある。
 高要求環境では、各ホストが複数のLUNに対する複数の入出力(I/O)要求を常に有する場合がある。そうした要求の各々は、処理されるまでキューに入れる必要があり、キューが一杯の場合は拒絶する必要がある。
 システムパフォーマンスは、広範囲に研究されてきた複雑な課題である。多数のパフォーマンス要因および変形を考慮すると、ホスト/アプリケーション構成によって生成される作業負荷が記憶システムの能力を超えしまうか否かをユーザが設計の時点で知ることは、不可能ではないが非常に困難なものとなりうる。したがって、記憶パフォーマンスとのバランスがとれていないシステムをユーザが設定してしまうことは、決してめずらしいことではない。
 1つのアンバランスなシステムにおいて、ユーザは、接続されたホストによって生成される作業負荷を大幅に超える記憶装置のパフォーマンス能力を有する場合がある。ユーザは、そのソリューション全体のパフォーマンスに満足できず、所望のパフォーマンス結果を達成するために、さらにホスト容量を追加しなければならない場合がある。
 本発明は、ホスト/アプリケーションの作業負荷が接続された記憶装置の能力を超過する相補的なシナリオを扱う。本明細書で使用する「過剰構成(over-configuration)」という用語は、ホスト/アプリケーションのパフォーマンス要求が記憶装置のパフォーマンス能力を超過するシナリオを説明するのに用いられる。別の言い方をすると、システム設計者がソリューション全体の要求に対して記憶装置を十分に供給しなかったということである。
 過剰構成されたシステムは、不満よりも、もっと深刻な問題を引き起こす場合がある。データ記憶アレイがシステムパフォーマンス要求を満たすことができない場合、ユーザアプリケーションの応答回数が許容できないほど多くなる。もっと極端な場合、アプリケーションエラー、サーバクラッシュおよびホストクラスタ障害などの悲惨な事態の兆候が現れる場合もある。それらの悲惨な事態が発生する理由は、ホストのソフトウェア(ドライバ、アプリケーション、ボリュームマネージャなど)が、記憶装置によって要求が完了されるのを待つ時間を制限しているからである。ディスクアレイ等の記憶装置の応答時間がホストソフトウェアによって課せられた制限時間を超えると、悲惨な事態が発生する可能性がある。明らかに、過剰構成を検出する方法および過剰構成を完全に回避する方法が必要とされている。
 現在、過剰構成問題は、ユーザが試行錯誤によって発見している。この発見は、大抵の場合サポート要求によって行なわれ、その場合、サポート要員はシステムがアンバランスな状態で動作していることを推測できるにすぎない。これは、パフォーマンス問題が発生した際に、それらのアンバランスな構成を回避する方法をユーザに知らせることに重点をおく受動的な解決方法であり、それらのアンバランスな構成を検出および軽減する方法をユーザに知らせるものではない。
 パフォーマンスの複雑性および動的性質が原因で、この発見は、非常に誤りを引き起こしがちな処理になる可能性がある。アンバランスな構成は極めて一般的である。アンバランスな構成が設定されると、ユーザはまず、システム全体のパフォーマンスが許容できないものであることを確認しなければならない。ユーザは、手がかりを提供する様々なツールを用いて、十分に実行されていないシステムを確認する。しかしながら、この処置には、構成、アプリケーション、及び、様々な情報源から取得したその他多数の情報の断片を手作業で検査することが含まれる。この処置は専門家による自学自習の分析で終わるのが常であり、専門家はそのシステムがアンバランスであると結論する。この結論が得られると、次のステップとして、さらに記憶装置を追加し、パフォーマンス問題が解決されることを期待することになる。
 一般に、I/O要求が記憶装置に送信されると、そのI/O要求は、許容または拒絶される。許容された要求は、サービスキューに配置され、さらなる処理を待つ。新たな要求を取り込んでキューに入れる記憶装置の能力を超えると、その要求は拒絶され、キューが満杯であるというステータス(QFULL)とともにホストシステムに返される。QFULLはこの状態についての適当な戻りステータスであるが、記憶装置によっては、QFULLではなくBUSYを返す場合もある。これは、ホストシステムドライバがBUSY状態およびQFULL状態について一般に異なる再試行挙動を示すという点で重要である。
 記憶装置はQFULLイベントが発生し得ないほどそのサービスキューを大きくすることもできるが、この解決方法にも限界がある。サービスキューのサイズは、実際には、ホストシステムドライバおよびアプリケーションによって課せられたタイムアウト時間によって制限される。記憶装置によりアプリケーションが永久待機させられるということが絶対に起こらないようにするため、ホストシステムドライバ及びいくつかのソフトウェアアプリケーションは、I/O要求に対してタイムアウトを課している。要求がタイムアウトすると、ホストは、記憶装置に何らかの問題があることを推定する。この状態から復帰するため、ホストシステムは、そのI/Oを中止すべきことを記憶装置に命令し、その後その要求を再試行する(何らかの有限数の再試行回数まで)。
 キューに入るI/O要求の数が極めて多い場合、それらの要求を処理する際の待ち時間は、ホストシステムのドライバ及び/又はホストシステムのアプリケーションによって課せられたタイムアウト制限を超えてしまう場合がある。そうしたタイムアウトが発生する理由は、単に、記憶装置がサービスキュー中にある要求の数を許容時間内に処理することができないからである。そのような理由から、記憶装置のサービスキューのサイズについては実際上制限がある。
 QFULLイベントおよびタイムアウトの両方に対するホストの反応動作は、パフォーマンスの点で費用がかかる。実際に、両イベントはシステム内を伝搬し、実際の、すなわち知覚される障害を生じさせる可能性がある。両イベントは、ホストプログラム(すなわち、ファイバーチャネルドライバ)においてエラー事象として扱われる。それらのイベントは、ホストシステムのログに現れ、重大な障害として扱われる場合が多い。この解釈は、他の挙動次第で正しい場合もあればそうでない場合もある。
 QFULLイベントおよびタイムアウトイベントの処理は、記憶装置の設計者にジレンマを残す。一方、記憶サービスキューのサイズは、最大まで大きくすることが望ましい。キューを大きくすることは、より多数のホストが接続できるようになることを意味する。これにより、不要なQFULLイベントを生じさせることなくアレイの接続性を向上させることができる。ホストおよびアプリケーションのI/O要求特性が適当なものであれば、比較的低速な記憶装置についても、大量のホストを備えたバランスのとれたシステムを構成することが可能であるかもしれない。一方、記憶装置の設計者は、最悪の場合のアクセスパターンを有する大型の構成であってもタイムアウトイベントを発生させることなく対処することができるように、キューサイズを十分小さく保つことを望んでいる。明らかに、システム設計者がこれらの競合する考慮事項のバランスをとろうとすることは、従来は極めて困難であった。
 多数の考え得る実施形態のうちの1つにおいて、本発明は、ディスクアレイと、ディスクアレイを制御するアレイコントローラと、ホストシステムからディスクアレイへのコマンドを入れるためのキューとを有するデータ記憶装置を提供する。アレイコントローラにインストールされた例えばファームウェアなどのプログラムは、パフォーマンスを最適化するためにキューの論理サイズを調節する。
 本発明の他の実施形態は、少なくとも1つのホスト装置と少なくとも1つのデータ記憶装置とを有するコンピュータシステム内のパフォーマンスを最適化する方法であって、データ記憶装置のキューの論理サイズを調節することを含む方法も提供する。
 本発明の他の実施形態は、少なくとも1つのホスト装置と、少なくとも1つのデータ記憶装置と、少なくとも1つのホスト装置と少なくとも1つのデータ記憶装置とを接続するネットワークとを有するコンピュータシステムも提供する。データ記憶装置は、ディスクアレイと、ディスクアレイを制御するアレイコントローラと、ホストシステムからディスクアレイへのコマンドを入れるキューとを有する。アレイコントローラにインストールされたプログラムは、パフォーマンスを最適化するためにキューの論理サイズを調節する。
 本発明の他の実施形態は、少なくとも1つのホスト装置と、少なくとも1つのデータ記憶装置と、少なくとも1つのホスト装置と少なくとも1つのデータ記憶装置とを接続するネットワークとを有するコンピュータシステムであって、前記少なくとも1つのデータ記憶装置がディスクアレイと、ディスクアレイを制御するアレイコントローラと、ホストシステムからディスクアレイへのコマンドを入れるキューとを有するコンピュータシステム内のパフォーマンスを最適化する方法も提供する。この方法は、少なくとも1つのホスト装置によって課せられた少なくとも1つのデータ記憶装置への要求に応じて、キューの論理サイズを調節することを含む。
 添付の図面は、本発明の様々な実施形態を例示する。図面は、下記の説明とあわせて本発明の原理を例示および説明するものである。例示の実施形態は本発明の例であり、本発明の特許請求の範囲を限定するものではない。
 図面を通して同一の符号は類似要素を指すものであり、必ずしも同一の要素を指すものではない。
 本発明は、ユーザおよびサポート要員がキューサイズおよび応答時間に関してシステムについて最適な選択を行うことを可能にする新たなアレイキュー手段を導入している。本発明の原理に従う記憶装置のファームウェア又は他のプログラムによって、サポート要員は、システムの動作中にアレイのサービスキューのサイズを動的に変更することができる。変更はほぼ瞬時に反映される。
 図1は、本発明の一実施形態による、ホスト装置とデータ記憶装置とを備えた改良されたコンピュータシステムを示すブロック図である。本明細書および特許請求の範囲で使用する「記憶装置」という用語は、ディスクアレイ、ディスクドライブ、テープドライブ、任意のSCSIデバイスまたはファイバーチャネル装置を含む任意のデータ記憶装置を指すものとして使用するが、それらに限定はしない。図1に示すように、例示のシステムは、1つまたは複数のディスクアレイ(101)を含むデータ記憶装置に接続された1つまたは複数のホスト装置(110)を含む。
 ディスクアレイ(101)はアレイコントローラ(102)によって制御される。アレイコントローラ(102)は、ホスト装置(110)からI/O要求を受信し、それらの要求に応じてディスクアレイ(101)を制御する。アレイコントローラ(102)は、ホスト要求を処理することができるようになるまでそれらをキュー(103)に入れておく。様々なホスト装置(110)がこの1つの共通キューに対して要求を提出する。
 本発明の原理によると、キューの物理サイズ(105)はキューの論理サイズ(104)と区別される。キューの物理サイズ(105)は、ファームウェア、ソフトウェアまたは他のプログラム(以下「ファームウェア」と呼ぶ)(106)がアレイコントローラ(102)にインストールされた時点でサポートされていた最大論理キューサイズ(104)を収容できるように設定される。論理キューサイズ(104)は、キュー(103)がホスト(110)にQFULLイベントを返す前に格納しているホストI/O要求の数である。論理キューサイズ(104)は、システム動作中に、アレイコントローラ(102)のファームウェア(106)により、物理キューサイズ(105)の最大値まで動的に調節することができる。ファームウェア(106)のアルゴリズムは、論理キューサイズ(104)を物理キューサイズ(105)よりも増大させようとする試みを防止するように構成することが好ましい。
 また、本発明によるディスクアレイファームウェア(106)は、本記憶装置システムの診断および調節に利用可能なキューパフォーマンス情報を追跡してログ記録する3つのイベントカウンタも導入している。それらのカウンタは、記憶装置が遭遇したホスト要求(107)、QFULLイベント(108)およびタイムアウトイベント(109)の数を追跡する。実際には、記憶装置は、要求の処理の中止を通知された回数をカウントすることにより、タイムアウトイベントを間接的にカウントすることができる。中止の大半がタイムアウトの結果生じるものであると仮定した場合。
 ユーザおよびサポートチームメンバは、調節可能な論理キューサイズ(104)とともに、記憶装置のそれらのカウンタ(107〜109)を用いて取り込んだ情報を用いて、自分達のシステムの作業負荷・パフォーマンスを調節することができる。目的は、QFULLイベントを実質的になくすのに十分な程度大きいと同時に、タイムアウトイベントを最小限にするのに十分な程度小さい論理キューサイズ(104)を見つけることである。QFULLイベントやタイムアウトを完全になくすことは、実際的でない。良くバランスのとれた正常なコンピュータシステムであっても、QFULLイベントおよびタイムアウトは、稀なイベント又は異常なイベント(作業負荷の予期せぬスパイク等)に起因して発生する場合がある。
 目的は、より正確には、論理キューサイズ(104)を操作して2つの割合、すなわちホスト要求の数に対するQFULLイベントの数の割合(QFULL率)と、ホスト要求の数に対するタイムアウトイベントの数の割合(タイムアウト率)とを最小化することであるべきである。目的は、QFULL率とタイムアウト率との両方をゼロに近づける論理キューサイズ(104)を見付けることになる。
 図2は、本発明の一実施形態による、ホスト装置およびデータ記憶装置を備えたコンピュータシステムを動作させる方法を示すフロー図である。図2に示すように、論理キューサイズを最適化するプロセスは、QFULL率およびタイムアウト率を最小化すなわちゼロに近づけようと試みる。
 まず、コントローラファームウェアのカウンタがホスト要求をカウントする。ホスト要求を受信(200)する毎に、ホスト要求カウンタをインクリメントする(201)。ホスト要求によってQFULLイベントが生じた場合(202−1)、QFULLイベントカウンタをインクリメントする(202−2)。同様に、ホスト要求が処理されなかったためにタイムアウトイベントが生じた場合(203−1)、タイムアウトカウンタをインクリメントする(203−2)。
 次に、QFULLイベントの数を受信したホスト要求の現在の数で除算することにより、QFULL率を計算する(204)。そして、このQFULL率を閾値と比較する(205)。理想的なシステムではこの閾値がゼロであるが、実際のシステムではそれよりも高く設定される。QFULL率が許容可能な閾値を超過すると(205)、アルゴリズムは論理キューサイズを増大させる(207)。このようにして追加のキュー容量を与えることにより、QFULLイベントの数が減少する。
 次に、タイムアウトイベントの数を受信したホスト要求の現在の数で除算することにより、タイムアウト率を計算する(206)。ここでも、理想的なシステムではこの閾値がゼロであるが、実際のシステムではそれよりも高くすることが多い。タイムアウト率が許容可能な閾値を超過すると(208)、アルゴリズムは論理キューサイズを減少させる(209)。このようにして実行待ちの要求の数を制限することにより、タイムアウトイベントが防止される。
 両方の割合がそれぞれの閾値を超過した場合(210)、記憶装置は、生成されているホスト作業負荷に対処することができなくなる。これは、異常に高いホスト作業負荷に起因した一時的な状態である可能性もある。しかしながら、この状態が持続するならば、システムは恐らく過剰構成されている。そのような場合、ファームウェアは、システム管理者に対し、システムが過剰構成されている可能性があるということの通知を生成することができる。そして、システム管理者は正しい処置を考えることができる。正しい対応は、ディスクアレイの能力を増大させる(キャッシュ、アレイコントローラまたはディスクを追加することにより)ことや、単に別のディスクアレイを追加することになるであろう。
 上記の説明では、ディスクアレイその他の記憶装置のキューに重点を置いている。しかしながら、ホスト要求はホスト自体のキューも通過する。また、ホストドライバおよびホストバスアダプタ(HBA)も、それら自体の内部キューで要求を処理する。それらのキューも本発明の原理に基づいて動的に調節することができるので、ホスト内で使用されるアルゴリズムを理解することは重要である。
 記憶装置では、I/O要求を管理する手段としてコマンドサービスキューが使用される。コマンドサービスキューは、低頻度、短期間の高い要求も受け入れるとともに、通常の負荷も処理できる程度に十分大きいものである必要がある。ディスクアレイのI/O処理速度がホストのI/O要求速度と同じかそれよりも速い場合、サービスキューの利用率は、長期にわたって変化しないかまたは減少してゆく。ホストのI/O要求速度がそれらの要求をディスクアレイが処理できる速度を超過した場合、キュー容量を使い果たすまでサービスキューレベルが増大してゆく。
 複雑なストレージエリアネットワーク(SAN)環境におけるディスクアレイには、複数のホストによって要求がポストされる。それらのホストの各々は、バースト要求を送信することができる。本明細書で使用する「バースト」という用語は、要求の数が一定であること、及び、それらの要求がディスクアレイの要求を処理する能力を超える速度で伝達されることを意味する。従って、バースト要は、アレイのサービスキューの需要量を増大させる結果となる。各ホストは、自分が送信するバーストのサイズをホストバスアダプタ(HBA)ドライバによって課されたコマンドキュー制限に従って制限する。
 ビジー環境においてホストが示す通常の挙動は、ホストがバースト要求(ホストのキューで制限されたもの)を送信した後、それらの要求がアレイによって処理されるのを待つというものになる。ディスクアレイがそれらの要求を処理するのに従って、ホスト側のコマンドキューが減少し、ホストはより多くの要求を送信できるようになる。ホスト側のコマンドキューサイズを低減することを含む策により、QFULLの戻りステータスで拒絶されるコマンド数を最低限に抑えることができる。
 実際には、ホストの要求速度が一定でないように、アレイのI/O処理速度も一定ではない。上記のように、本発明の原理に基づくと、記憶装置は、システムの必要性に合わせてサービスキュー制限値を調節することが可能になる。さらに、ホスト装置(単数の場合も複数の場合もある)のコマンドキューも、システムの必要性に合わせて調節することが可能である。
 図3は、本発明の他の実施形態によるシステムを示す。このシステムは、少なくとも1つのホスト装置と少なくとも1つの記憶装置とを有し、ホスト装置(単数の場合も複数の場合もある)のコマンドキューのサイズを調節して、システムを均等にすることができる。
 たとえば、キュー(103)を有する特定のディスクアレイ(101)が、750コマンドの論理サイズ(104)を有するものと仮定する。この容量にも関らず、この特定のディスクアレイのキュー深さ、すなわち接続されたホスト装置(110)によりキュー(103)に配置される要求は、通常の動作中に約100コマンドであり、適度な数のコマンドを完了するのに0.2秒よりも長くかかることが分かっている。
 この実施例では、論理キューサイズ(104)をデフォルトの750コマンドから実際の使用数である100コマンドに変更することにより、ディスクアレイ(101)のコマンドレイテンシ曲線がさらに広がるのを防止することができる。そして、ホスト(110)がもっとアクティブになると、アレイコントローラ(102)は、この活力の増加によって生じるコマンドを、QFULLステータスの指示を用いて拒絶することにより応答する。
 本発明の原理に基づくと、ホストドライバ(301)は、ホスト側のコマンドキュー(302)を減少させることにより応答することが好ましい。これにより、ホスト(110)から記憶装置(101〜103)に送信されるコマンドの速度が減少する。
 平衡状態に達した後、アレイ(101)は、作業負荷が増大する前と同じコマンドレイテンシレベルでコマンドを処理することになる。ホスト側では、システムコールインタフェースのブロッキングの性質により、アプリケーションに要求速度を「キュー満杯閾値」で管理されたレベルに強制的に維持させる。このシナリオは、応答時間を所望のレベルに維持するが、要求間の最小時間は増大する。この要求間の時間の増大は、長い目で見ればほとんどのユーザが満足しないことになるということの兆候である。もっと良い解決方法は、構成にさらなる記憶処理能力を追加することである。
 また、この「キュー満杯閾値」の調節を利用して、長いドライバ関連タイムアウトが発生する割合に影響を与えることもできる。特定の作業負荷について、オペレーティングシステム(O/S)ドライバ(301)が5秒毎に1回の割合でタイムアウトイベントを報告している間、記憶装置(101〜103)が400コマンドの論理キュー深さを維持しているものと仮定する。その場合、コマンドレイテンシ分布の末尾を短くするためには、キューの論理サイズ(104)を300まで縮小することが好ましい。
 すると、アレイコントローラ(102)は、QFULLステータスによって大量のコマンドを拒絶することになる。ホスト側のドライバ(301)は、QFULL戻りステータスがなくなるまでホスト側のキュー(302)の深さを縮小することにより、QFULLステータスに応じることが好ましい。今度は記憶装置(101〜103)がもっと短いコマンドキュー(104)で動作しているので、著しい待ち時間(例えば30秒など)をもつコマンドの割合が大幅に減少するはずである。
 ホスト側のドライバ(301)は、ホスト側のコマンドキュー(302)の深さを再度増大させることにより、記憶装置(101〜103)を時々検査する。
これを行なう場合、ホスト側のドライバ(301)がホスト側のキュー(302)の深さを再度縮小させることを判断するまで、QFULL応答が生じることになる。
 先の説明は、本発明の例示及び説明のために提供したものに過ぎない。その説明は、網羅的なものにすることも、本発明を開示したいずれかの形態そのままに制限することも意図していない。上記の示唆を考慮して、多数の変更および変形が可能である。
 好ましい実施形態は、本発明の原理とその実際の使用を最もよく例示する目的で選択され、説明されている。先の説明は、他の当業者が本発明を様々な実施形態で意図する特定の用途に適するように様々な変更を加えて最もよく利用できるようにすることを意図している。本発明の範囲は、特許請求の範囲で規定されることを意図している。
本発明の一実施形態による改良されたコンピュータシステムを示すブロック図であり、該システムは、少なくとも1つのホスト装置と、調節可能なキューを有する少なくとも1つのデータ記憶装置とを有する。 本発明の一実施形態による、ホスト装置とデータ記憶装置とを備えたコンピュータシステムを動作させる方法を示すフロー図である。 本発明の他の実施形態によるコンピュータシステムを示す図であり、該システムは、少なくとも1つのホスト装置と少なくとも1つの記憶装置とを有し、ホスト装置のコマンドキューのサイズを調節して、システムを均等にすることができるようになっている。

Claims (10)

  1.  ディスクアレイ(101)と、
     前記アレイ(101)を制御するためのアレイコントローラ(102)と、
     ホストシステムから前記ディスクアレイ(101)へのコマンドを入れるためのキュー(103)とからなり、
     前記アレイコントローラ(102)にインストールされたプログラム(106)が前記キュー(104)の論理サイズを調節してパフォーマンスを最適化する、データ記憶装置(101,102)。
  2.  少なくとも1つのホスト装置(110)と少なくとも1つのデータ記憶装置(101,102)とを含むコンピュータシステム内のパフォーマンスを最適化する方法であって、前記データ記憶装置(101,102)のキューの論理サイズを調節するステップ(207,209)を含む方法。
  3.  前記データ記憶装置(101,102)にさらなる記憶容量を追加するステップをさらに含む、請求項2の方法。
  4.  ホスト要求をカウントするステップ(201)と、
     QFULLイベントをカウントするステップ(202-2)と、
     タイムアウトイベントをカウントするステップ(203-2)と、
     をさらに含む、請求項2の方法。
  5.  発生したQFULLイベントの総数を受信したホスト要求の現在の数で割ることによりQFULL率を計算するステップ(204)と、
     前記QFULL率が所定の閾値を超えた場合、前記キューの論理サイズを増大させるステップ(207)と、
     をさらに含む、請求項4の方法。
  6.  発生したタイムアウトイベントの総数を受信したホスト要求の現在の数で割ることによりタイムアウト率を計算するステップ(206)と、
     前記タイムアウト率が所定の閾値を超えた場合、前記キューの論理サイズを減少させるステップ(209)と、
     をさらに含む、請求項4の方法。
  7.  少なくとも1つのホスト装置(110)と、
     少なくとも1つのデータ記憶装置(101,102)と、
     前記少なくとも1つのホスト装置(110)と前記少なくとも1つのデータ記憶装置(101,102)とを接続するネットワークとからなるコンピュータシステムであって、
     前記少なくとも1つのデータ記憶装置(101,102)が、
      ディスクアレイ(101)と、
      前記アレイ(101)を制御するためのアレイコントローラ(102)と、
      ホストシステムから前記ディスクアレイへのコマンドを入れるキュー(103)とからなり、
     前記アレイコントローラ(102)にインストールされたプログラム(106)が前記キューの論理サイズ(104)を調節してパフォーマンスを最適化する、コンピュータシステム。
  8.  前記少なくとも1つのホスト装置(110)にインストールされたドライバ(301)と、
     前記少なくとも1つのホスト装置(110)上のコマンドキュー(302)とをさらに含み、
     前記ドライバ(301)が、前記少なくとも1つのデータ記憶装置(101,102)上のQFULLイベント(108)又はタイムアウトイベント(109)に応答して、前記ホスト装置(110)上の前記コマンドキュー(302)のサイズを調節する、請求項7のコンピュータシステム。
  9.  少なくとも1つのホスト装置(110)と、少なくとも1つのデータ記憶装置(101,102)と、前記少なくとも1つのホスト装置(110)と前記少なくとも1つのデータ記憶装置(101,102)とを接続するネットワークとを含み、前記少なくとも1つのデータ記憶装置(101,102)がディスクアレイ(101)と、該アレイ(101)を制御するためのアレイコントローラ(102)と、ホストシステムから前記ディスクアレイへのコマンドを入れるためのキュー(103)とを含む、コンピュータシステムにおいてパフォーマンスを最適化する方法であって、
     前記少なくとも1つのホスト装置(110)によって課せられた前記少なくとも1つのデータ記憶装置(101,102)に対する要求に応じて前記キューの論理サイズを調節するステップ(207,209)を含む方法。
  10.  前記少なくとも1つのデータ記憶装置(101,102)上のQFULLイベント(108)又はタイムアウトイベント(109)に応じて前記少なくとも1つのホスト装置(110)上のコマンドキューのサイズを調節するステップをさらに含む、請求項9の方法。
JP2003303987A 2002-08-28 2003-08-28 コンピュータシステム内の記憶装置のパフォーマンスの最適化 Pending JP2004086914A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/233,107 US6898664B2 (en) 2002-08-28 2002-08-28 Optimizing performance for a storage device within a computer system

Publications (1)

Publication Number Publication Date
JP2004086914A true JP2004086914A (ja) 2004-03-18

Family

ID=31977152

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003303987A Pending JP2004086914A (ja) 2002-08-28 2003-08-28 コンピュータシステム内の記憶装置のパフォーマンスの最適化

Country Status (2)

Country Link
US (1) US6898664B2 (ja)
JP (1) JP2004086914A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014002642A (ja) * 2012-06-20 2014-01-09 Nec Corp ストレージシステム、入出力制御装置、入出力制御方法、および、コンピュータ・プログラム
JP2016076204A (ja) * 2014-09-22 2016-05-12 エイチジーエスティーネザーランドビーブイ データ記憶装置の性能を意識した電力キャッピング制御

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7421502B2 (en) * 2002-12-06 2008-09-02 International Business Machines Corporation Method and system for storage-aware flow resource management
US8375114B2 (en) * 2004-04-09 2013-02-12 Hewlett-Packard Development Company, L.P. Device loading in storage networks
US7587532B2 (en) * 2005-01-31 2009-09-08 Texas Instruments Incorporated Full/selector output from one of plural flag generation count outputs
US7543128B2 (en) * 2006-07-25 2009-06-02 Hewlett-Packard Development Company, L.P. Method and apparatus for repurposing compute resources to implement, or not implement, storage access protocols
US7925809B2 (en) * 2006-10-24 2011-04-12 Apple Inc. Systems and methods for storage management in a data processing device
US20080104259A1 (en) * 2006-10-28 2008-05-01 Lefevre Marc Methods and systems for communicating with storage devices in a storage system
US7853759B2 (en) * 2007-04-23 2010-12-14 Microsoft Corporation Hints model for optimization of storage devices connected to host and write optimization schema for storage devices
US8090767B2 (en) * 2008-01-07 2012-01-03 Apple Inc. Pairing and storage access scheme between a handheld device and a computing system
US8495238B1 (en) * 2008-05-28 2013-07-23 Google Inc. Facilitating self-tuning traffic shaping without a central traffic manager
US20110041128A1 (en) * 2009-08-13 2011-02-17 Mathias Kohlenz Apparatus and Method for Distributed Data Processing
US9038073B2 (en) * 2009-08-13 2015-05-19 Qualcomm Incorporated Data mover moving data to accelerator for processing and returning result data based on instruction received from a processor utilizing software and hardware interrupts
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
US8769541B2 (en) * 2009-12-31 2014-07-01 Facebook, Inc. Load balancing web service by rejecting connections
US8458145B2 (en) * 2011-01-20 2013-06-04 Infinidat Ltd. System and method of storage optimization
US8452901B1 (en) 2011-12-30 2013-05-28 Emc Corporation Ordered kernel queue for multipathing events
US9292205B2 (en) 2012-06-14 2016-03-22 Avago Technologies General Ip (Singapore) Pte. Ltd. Methods and systems for adaptive queue depth management
US9183016B2 (en) * 2013-02-27 2015-11-10 Vmware, Inc. Adaptive task scheduling of Hadoop in a virtualized environment
US9208010B2 (en) 2013-07-01 2015-12-08 International Business Machines Corporation Failure interval determination
US10228880B2 (en) 2016-09-06 2019-03-12 HGST Netherlands B.V. Position-aware primary command queue management
CN106936827B (zh) * 2017-03-10 2019-03-08 Oppo广东移动通信有限公司 一种广播接收者队列调整方法、装置及终端
US11323393B2 (en) * 2018-01-25 2022-05-03 Nvidia Corporation System and method for improving network storage accessibility

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5249271A (en) * 1990-06-04 1993-09-28 Emulex Corporation Buffer memory data flow controller
US5150279A (en) * 1991-03-18 1992-09-22 International Business Machines Corporation High performance computer system with platters and unidirectional storage modules therebetween
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
US5623598A (en) * 1994-11-22 1997-04-22 Hewlett-Packard Company Method for identifying ways to improve performance in computer data storage systems
JP3400328B2 (ja) * 1997-12-26 2003-04-28 株式会社日立製作所 データ記憶方法およびデータ記憶装置
US6178460B1 (en) * 1998-06-30 2001-01-23 International Business Machines Corporation Method of efficiently retrieving data on a computer network by monitoring performance of mirrored network locations
US6330687B1 (en) * 1998-11-13 2001-12-11 Digi-Data Corporation System and method to maintain performance among N single raid systems during non-fault conditions while sharing multiple storage devices during conditions of a faulty host computer or faulty storage array controller
JP2001005724A (ja) * 1999-06-11 2001-01-12 Internatl Business Mach Corp <Ibm> ライト・キャッシュ転送の制御方法およびディスク装置
US6385673B1 (en) * 1999-10-06 2002-05-07 Sun Microsystems, Inc. System and method for adjusting performance of a media storage by decreasing a maximum throughput by a primary derate parameter to specify available & guaranteed rate parameters and determining ring buffer sizes for streams
US6944717B2 (en) * 2001-07-27 2005-09-13 Fujitsu Limited Cache buffer control apparatus and method using counters to determine status of cache buffer memory cells for writing and reading data therefrom

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014002642A (ja) * 2012-06-20 2014-01-09 Nec Corp ストレージシステム、入出力制御装置、入出力制御方法、および、コンピュータ・プログラム
JP2016076204A (ja) * 2014-09-22 2016-05-12 エイチジーエスティーネザーランドビーブイ データ記憶装置の性能を意識した電力キャッピング制御

Also Published As

Publication number Publication date
US6898664B2 (en) 2005-05-24
US20040044846A1 (en) 2004-03-04

Similar Documents

Publication Publication Date Title
US6898664B2 (en) Optimizing performance for a storage device within a computer system
US6421723B1 (en) Method and system for establishing a storage area network configuration
US8220000B2 (en) System and method for executing files stored in logical units based on priority and input/output load of the logical units
US7668981B1 (en) Storage paths
US8898385B2 (en) Methods and structure for load balancing of background tasks between storage controllers in a clustered storage environment
US7111084B2 (en) Data storage network with host transparent failover controlled by host bus adapter
US8027263B2 (en) Method to manage path failure threshold consensus
US20020103923A1 (en) System and method for matching storage device queue depth to server command queue depth
US8843613B2 (en) Information processing system, and management method for storage monitoring server
US20060235901A1 (en) Systems and methods for dynamic burst length transfers
US6820172B2 (en) Method, system, and program for processing input/output (I/O) requests to a storage space having a plurality of storage devices
US8639808B1 (en) Method and apparatus for monitoring storage unit ownership to continuously balance input/output loads across storage processors
US10514856B2 (en) Storage system and storage control apparatus
US9747040B1 (en) Method and system for machine learning for write command selection based on technology feedback
US11829803B2 (en) Methods for dynamic throttling to satisfy minimum throughput service level objectives and devices thereof
US20120047327A1 (en) Disk array device and control method for the same
US9459799B1 (en) Identifying problematic application workloads based on associated response times
US20130132766A1 (en) Method and apparatus for failover and recovery in storage cluster solutions using embedded storage controller
US7983171B2 (en) Method to manage path failure thresholds
US20090228610A1 (en) Storage system, storage apparatus, and control method for storage system
US11122123B1 (en) Method for a network of storage devices
US8761018B2 (en) Systems and methods for throttling a fabric login in a Fibre Channel adapter
US11301139B2 (en) Building stable storage area networks for compute clusters
JP2007122713A (ja) インテリジェント論理ユニットプロビジョニング
US20070156879A1 (en) Considering remote end point performance to select a remote end point to use to transmit a task

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060202

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071106

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080205

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080208

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080507

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080610