(57)【要約】      （修正有）【課題】データの受信が不可であることを送信側に通知するクレジットブロックの送信によるデータ転送遅延の発生を抑制する。【解決手段】送信先６０に対して発行したコマンドへの応答レスポンス時間に基づいて、比較基準値を設定する基準情報設定部１５と、コマンド発行時に、送信先に対して発行中のコマンドにかかる発行データ量と送信先から応答中のデータにかかる応答データ量との差分である差分データ量と比較基準値とを比較し、差分データ量が比較基準値を超えた場合に、コマンドの発行を抑止する抑止部１４とを備える。【選択図】図１
2014010519.tif 000002
【特許請求の範囲】
【請求項１】
送信先に対して発行したコマンドへの応答レスポンス時間に基づいて、比較基準値を設定する基準情報設定部と、
コマンド発行時に、前記送信先に対して発行中のコマンドにかかる発行データ量と前記送信先から応答中のデータにかかる応答データ量との差分である差分データ量と前記比較基準値とを比較し、前記差分データ量が前記比較基準値を超えた場合に、前記コマンドの発行を抑止する抑止部とを備えることを特徴とする、制御装置。
【請求項２】
請求項１において、前記基準情報設定部が、
前記応答レスポンス時間が所定のレスポンス基準値以下の場合に、前記比較基準値を増大させる、制御装置
【請求項３】
請求項２において、前記基準情報設定部が、
前記応答レスポンス時間が所定のレスポンス基準値以下の場合に、前記比較基準値を前記差分データ量で置換することで変更する、制御装置。
【請求項４】
請求項１〜３のいずれか１項において、前記基準情報設定部が、
前記応答レスポンス時間が所定のレスポンス基準値よりも長い場合に、前記比較基準値を減少させる、制御装置
【請求項５】
請求項４において、前記基準情報設定部が、
前記応答レスポンス時間が所定のレスポンス基準値よりも長い場合に、前記比較基準値を前前記差分データ量よりも小さい値で置換することで更新する、制御装置。
【請求項６】
請求項１〜５のいずれか１項において、前記基準情報設定部が、
前記送信先からの応答コマンドデータ量が所定量以上である場合に、前記比較基準値を変更する、制御装置。
【請求項７】
請求項１〜６のいずれか１項において、前記抑止部が、
前記コマンドをコマンドキューに格納することにより、当該コマンドの発行を抑止する、制御装置。
【請求項８】
請求項１〜７のいずれか１項において、前記送信先に対して発行したコマンドへの応答レスポンス時間の平均値を算出するレスポンス平均算出部を備え、
前記基準情報設定部が、
前記レスポンス平均算出部によって算出された、前記応答レスポンス時間の平均値に基づいて、前記比較基準値を設定する、制御装置。
【請求項９】
請求項８において、前記レスポンス平均算出部が、
当該算出時から所定期間内における前記応答レスポンス時間の平均値を算出する、制御装置。
【請求項１０】
記憶装置と、
前記記憶装置に対して発行したコマンドへの応答レスポンス時間に基づいて、比較基準値を設定する基準情報設定部と、
コマンド発行時に、前記送信先に対して発行中のコマンドにかかる発行データ量と前記送信先から応答中のデータにかかる応答データ量との差分である差分データ量と前記比較基準値とを比較し、前記差分データ量が前記比較基準値を超えた場合に、前記コマンドの発行を抑止する抑止部とを備える、ストレージ装置。
【請求項１１】
送信先に対して発行したコマンドへの応答レスポンス時間に基づいて、比較基準値を設定する工程と、
コマンド発行時に、前記送信先に対して発行中のコマンドにかかる発行データ量と前記送信先から応答中のデータにかかる応答データ量との差分である差分データ量と前記比較基準値とを比較し、前記差分データ量が前記比較基準値を超えた場合に、前記コマンドの発行を抑止する工程とを備えることを特徴とする、制御方法。
【請求項１２】
送信先に対して発行したコマンドへの応答レスポンス時間に基づいて、比較基準値を設定し、
コマンド発行時に、前記送信先に対して発行中のコマンドにかかる発行データ量と前記送信先から応答中のデータにかかる応答データ量との差分である差分データ量と前記比較基準値とを比較し、前記差分データ量が前記比較基準値を超えた場合に、前記コマンドの発行を抑止する、
処理をコンピュータに実行させる制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本件は制御装置、ストレージ装置、制御方法及び制御プログラムに関する。
【背景技術】
【０００２】
例えば、Redundant Arrays of Inexpensive Disks（ＲＡＩＤ）等のストレージシステムにおいて、Hard Disk Drive（ＨＤＤ）等のディスク装置は、Controller Module（ＣＭ）のInput Output Controller（ＩＯＣ）に接続されている。ＩＯＣはディスク装置とＣＭとのデータ転送を実施し、例えば、専用チップとして構成されている。
例えば、Serial Attached SCSI（ＳＡＳ）規格に準拠したシステムにおいては、送信側は、クレジット（Credit）と呼ばれる送信許可を受信側から受け取ってからフレーム（Frame）を送信する。クレジットは、フレームを受け取るためのバッファが利用可能な状況にあるかどうかを知らせるために、受信側から送信側へ送られるReceiver Ready （ＲＲＤＹ)の一種である。
【０００３】
なお、クレジットは、ＩＯＣとディスク装置との間での送受信に使用され、ＣＭのCentral Processing Unit（ＣＰＵ）等がクレジットを検知することはない。
また、受信側においてバッファが利用できずフレームを受け取れない場合には、受信側はクレジットブロック（Credit Blocked）を送信し、受信不可であることを送信側に通知する。送信側においては、クレジットブロックを受け取るとデータ転送を中断し、再びクレジットを受信するまでデータ転送を待ち合わせる。
【０００４】
例えば、ストレージシステムにおけるデータのリード時には、受信側であるＩＯＣから送信側であるディスク装置に対して、転送フレーム毎にクレジットを送信しつつデータ転送が実施される。
そして、例えば、一つのディスク装置に対するデータ流量を急激に増やした場合には、ハードの論理的な限界値に達していない場合であっても、その瞬間バスが高負荷状態になる。これにより、データリード開始時に受信側のＩＯＣにおいてバッファ枯渇状態が生じ、ＩＯＣがディスク装置に対してクレジットブロックを発行する。
【０００５】
クレジットブロックを受けたディスク装置は、データ転送を中断し、その後、クレジットの発行を待ってデータ転送をやり直すこととなる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特表２０１０−５１５１５６号公報
【特許文献２】特開２０１０−１０２４５８号公報
【特許文献３】特開平１１−１２００９１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、クレジットブロックによる中断後のデータ転送の再開時には、データ転送が中断された箇所ではなく、データの先頭から、再度、データの転送が行なわれる。このため、クレジットブロックが発生すると、データ転送に時間がかかってしまう。
また、前述の如く、クレジットブロックはＩＯＣとディスク装置との間で行なわれる閉じた処理であるので、ＣＭのＣＰＵにはコマンドが遅延したという情報しか伝わらない。すなわち、ＣＰＵにおいてはクレジットブロックが発生していることが分からないため、クレジットブロックが多発する状況でもコマンドを発行し、データ転送の完了を待ち合わせることとなる。
【０００８】
クレジットブロックが複数回繰り返される状況においては、データ転送が規定のタイムアウト時間に間に合わずコマンドタイムアウトになる場合がある。このコマンドタイムアウトになると、例えば、統計加点を実施してディスクフォールト（Disk Fault）が生じ、装置停止に至るおそれも生じる。
近年、ＳＡＳ規格が１．０から２．０に上がり、更に、３．０が登場する等、インタフェースのデータレートの高速化が著しい。これまでボトルネックとなっていた経路のデータレートが高速化することで、バスのボトルネックが解消され、装置のスループットは改善する。しかし、その代わりに、経路以外の箇所で新たなボトルネックが発生することが懸念される。
【０００９】
クレジットブロックによるデータ転送遅延も、従来においてはバスがボトルネックとなることで表面化していなかった問題であり、近年のバス性能の向上により顕在化したものと考えられる。
１つの側面では、本発明は、コマンドブロックの発生を抑制することを目的とする。
なお、前記目的に限らず、後述する発明を実施するための形態に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本発明の他の目的の１つとして位置付けることができる。
【課題を解決するための手段】
【００１０】
この制御装置の一観点によれば、送信先に対して発行したコマンドへの応答レスポンス時間に基づいて、比較基準値を設定する基準情報設定部と、コマンド発行時に、前記送信先に対して発行中のコマンドにかかる発行データ量と前記送信先から応答中のデータにかかる応答データ量との差分である差分データ量と前記比較基準値とを比較し、前記差分データ量が前記比較基準値を超えた場合に、前記コマンドの発行を抑止する抑止部とが提供される。
【発明の効果】
【００１１】
データ転送速度を向上させることができる。
【図面の簡単な説明】
【００１２】
【図１】実施形態の一例としてのストレージシステムに備えられたＣＭの機能構成を模式的に示す図である。
【図２】実施形態の一例としてのストレージシステムのハードウェア構成を模式的に示す図である。
【図３】実施形態の一例としてのストレージシステムにおける基準情報を例示する図である。
【図４】実施形態の一例としてのストレージシステムにおける基準情報の引き上げ方法を説明する図である。
【図５】実施形態の一例としてのストレージシステムにおける基準情報の引き下げ方法を説明する図である。
【図６】実施形態の一例としてのストレージシステムのＣＭにおける要求コマンド発行時の処理を説明するフローチャートである。
【図７】実施形態の一例としてのストレージシステムのＣＭにおける応答コマンド受信時の処理を説明するフローチャートである。
【図８】実施形態の一例としてのストレージシステムのＣＭにおけるレスポンス平均値のリセット手法を説明するフローチャートである。
【発明を実施するための形態】
【００１３】
以下、図面を参照して本制御装置、ストレージ装置、制御方法及び制御プログラムに係る実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。又、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能等を含むことができる。
【００１４】
図１は実施形態の一例としてのストレージシステム１に備えられたＣＭの機能構成を示す図、図２はそのハードウェア構成を示す図である。
本ストレージシステム１は、図２に示すように、ストレージ装置１０を備え、１以上（図１に示す例では１つ）のホスト装置２に対して通信可能に接続されている。本ストレージシステム１においては、ホスト装置２とストレージ装置１０とが、例えばInternet Small Computer System Interface（ｉＳＣＳＩ）により接続されている。
【００１５】
ホスト装置２は、例えば、サーバ機能を備えたコンピュータ（情報処理装置）であり、ストレージ装置１０との間において、SCSIコマンドやレスポンス等の各種データをTCP／IP等を用いて送受信する。このホスト装置２は、ストレージ装置１０に対してリード／ライト等のディスクアクセスコマンドを送信することにより、ストレージ装置１０が提供する記憶領域にデータの書き込みや読み出しを行なう。
【００１６】
ストレージ装置１０は、図２に示すように、コントローラモジュール（以下ＣＭという）３０ａ，３０ｂ，エキスパンダ３０４，３０４及び記憶装置６０を備える。
ストレージ装置１０は、Local Area Network（ＬＡＮ）等のネットワーク５０を介してホスト装置２に接続されるとともに、図示しないドライブエンクロージャ等が接続される。
【００１７】
エキスパンダ３０４は、例えばＳＡＳエキスパンダであり、ＣＭ３０ａ，３０ｂにＨＤＤ６０を接続するディスク接続機構である。
記憶装置６０は、データを読み書き可能に格納する記憶装置であり、ホスト装置２から受信したデータを記憶可能な記憶部として機能する。本実施形態においては、記憶装置６０としてＨＤＤを用いる例について示す。以下、記憶装置６０をＨＤＤ６０と表す場合もある。
【００１８】
また、図２中においては、便宜上、ストレージ装置１０に４つのＨＤＤ６０を示しているが、これに限定されるものではなく、３つ以下もしくは５つ以上のＨＤＤ６０を備えてもよい。そして、ストレージ装置１０は、これらの複数のＨＤＤ６０を組み合わせて、冗長化された１つのストレージとして管理する、Redundant Arrays of Inexpensive Disks（ＲＡＩＤ）装置であってもよい。
【００１９】
エキスパンダ３０４は、ＨＤＤ６０や図示しないドライブエンクロージャ等と通信可能に接続するためのインタフェースであり、デバイスアダプタ等を備える。ＣＭ３０ａ，３０ｂは、このエキスパンダ３０４を介して、ＨＤＤ６０に対するデータの書き込みや読み出しを行なう。
ＣＭ３０ａ，３０ｂは、ストレージ装置１０内の動作を制御するコントローラ（制御装置）であり、ホスト装置２からのリード／ライト等のコマンドを受け取り、種々の制御を行なう。ＣＭ３０ａ，３０ｂはそれぞれＣＡ３０６を介して、それぞれネットワークに接続される。そして、これらのＣＭ３０ａ，３０ｂは、ホスト装置２から送信されるリード／ライト等のコマンドを受信し、エキスパンダ３０４等を介してＨＤＤ６０の制御を行なう。
【００２０】
ＣＭ３０ａ，３０ｂは、それぞれ、図２に示すように、複数（図２に示す例では２つ）のＣＡ３０６を備えるとともに、ＣＰＵ３０１，ＲＡＭ３０２，ＲＯＭ３０３，エキスパンダ３０４及びＩＯＣ３０５を備える。すなわち、ＣＭ３０ａ，３０ｂは互いに同様の構成を有している。又、ＣＭ３０ａとＣＭ３０ｂとは通信回線を介して相互に接続されている。これにより、ＣＭ３０ａ，３０ｂは冗長化された構成を形成する。
【００２１】
以下、ＣＭを示す符号としては、複数のＣＭのうち１つを特定する必要があるときには符号３０ａ，３０ｂを用いるが、任意のＣＭを指すときには符号３０を用いる。
また、図中、同一の符号は同一もしくは略同一の部分を示しているので、その詳細な説明は省略する。
ＣＡ３０６は、ホスト装置２等と通信可能に接続するインタフェースコントローラ（通信アダプタ）である。ＣＡ３０６は、ホスト装置２等から送信されたデータを受信したり、ＣＭ３０から出力するデータをホスト装置２等に送信する。すなわち、ＣＡ３０６は、ホスト装置２等の外部装置との間でのデータの入出力（Ｉ／Ｏ）を制御する。
【００２２】
ＩＯＣ３０５は、ＣＭ１０とのＨＤＤ６０との間においてデータ転送を実施し、例えば、専用チップとして構成されている。このＩＯＣ３０５は、ＨＤＤ６０との間でクレジット及びクレジットブロックを用いたフロー制御を行なう。
例えば、ＩＯＣ３０５は、ＨＤＤ６０からのデータ（フレーム）受信時において、フレームの送信元であるＨＤＤ６０に対して、フレームを受け取るためのバッファが利用可能な状況にある場合にクレジットを、又、バッファが利用可能な状態ではない場合に、クレジットブロックを送信する。
【００２３】
ＩＯＣ３０５は、ＨＤＤ６０へのデータ送信時には、フレームの送信先であるＨＤＤ６０からクレジットを受信した場合にフレームの送信を行ない、又、ＨＤＤ６０からクレジットブロックを受信した場合には、クレジットが送信されるまでフレームの発送を抑止する。又、その後、ＨＤＤ６０からクレジットを受信した場合には、先頭のフレームから再度データ送信を行なう。
【００２４】
このＩＯＣ３０５は、後述するディスク制御部１２から発行（送信）を指示されるコマンドを送信先のＨＤＤ６０に対して発行する。
ＲＯＭ３０３は、ＣＰＵ３０１が実行するプログラムや種々のデータを格納する記憶装置であり、例えば、フラッシュＲＯＭである。
ＲＡＭ３０２は、種々のデータやプログラムを格納する記憶領域であって、ＣＰＵ１０１がプログラムを実行する際に、データやプログラムを格納・展開して用いる。又、このＲＡＭ３０２は、ホスト装置２から受信したデータや、ＨＤＤ６０から読み出したデータを格納するバッファとしての機能を備える。ただし、これに限定されるものではなく、ＲＡＭ３０２とは別にメモリを備え、このメモリをバッファとして機能させてもよい。
【００２５】
また、このＲＡＭ３０２には、図１に示すように、流量ブロック数４０１，コマンド流量基準値（基準情報，比較基準値）４０３及びコマンドキュー４０４が格納される。
コマンドキュー４０４は、ディスク制御部１２からＨＤＤ６０等に対して発行されるコマンドが登録される待ち行列であり、後述する抑止部１３２によって、コマンドが登録される。
【００２６】
後述するディスク制御部（コマンド発行指示部）１２が、コマンドキュー４０４に登録されたコマンドを、その先頭に登録されているものから順番に、すなわち、First In, First Out（ＦＩＦＯ）で、ＩＯＣ３０５に対して送信先のＨＤＤ６０に発行するよう指示を行なう。
なお、流量ブロック数４０１及びコマンド流量基準値４０３については後述する。
【００２７】
ＣＰＵ３０１は、種々の制御や演算を行なう処理装置であり、ＲＯＭ３０３に格納されたプログラムを実行することにより、種々の機能を実現する。
例えば、ＣＰＵ３０１は、システム制御部１１としての機能を備え、ＲＡＩＤの実現や、アラーム監視機能，経路制御機能，ＲＡＳ機能等の種々の機能を実現する。
アラーム監視機能は、ＨＤＤ６０やシステム内に備えられた各機器から通知されるアラームを監視し、システム内における異常を検知する。経路制御機能は、コマンド等の転送経路を制御するものであり、例えば、ネットワーク経路上において異常が検知された場合に、異常発生箇所を回避する経路を決定し、この決定した経路でのデータ転送を行なう。ＲＡＳは、信頼性／可用性／保守性を実現するための機能であり、例えば、キャッシュメモリ部の縮退やＥＣＣ，各種エラー検出等を行なう。
【００２８】
なお、システム制御部１１としての機能は、これらに限定されるものではなく、ＣＭとして公知の種々の機能を備えてもよい。
さらに、ＣＰＵ３０１は、図１に示すように、ディスク制御部１２としての機能を備える。
ディスク制御部１２は、ＨＤＤ６０へのアクセス制御等を行なう。例えば、ディスク制御部１２は、ホスト装置２からのホストＩ／Ｏに応じてＨＤＤ６０へのアクセス制御等を行なう。
【００２９】
このディスク制御部１２は、ＨＤＤ６０との間において授受するコマンドの処理を行なう機能（コマンド処理機能）を備え、ＨＤＤ６０に対してリードコマンドやライトコマンド等の各種コマンド（要求コマンド）を発行する。
ディスク制御部１２は、ＨＤＤ６０に対して要求コマンドを送信した場合には、その要求コマンドを送信してから、この要求コマンドに対する応答コマンドがＨＤＤ６０から送信されるまでの経過時間を計時する。そして、ディスク制御部１２は、この経過時間を所定のタイムアウト基準時間（例えば、５秒）と比較する。要求コマンドを送信してからの経過時間がタイムアウト基準時間を超えた場合には、ディスク制御部１２はタイムアウトエラーが発生したと判断する。タイムアウトエラーが発生した場合には、ディスク制御１２は、例えば、オペレータ等に対してタイムアウトエラーの通知を行なったり、要求コマンドの再送信を行なう。
【００３０】
なお、本実施形態においては、後述するレスポンス時間及びレスポンス平均値をリセットする間隔としてのリセット基準時間は、このタイムアウト基準時間に基づいて決定される。例えば、リセット基準時間（例えば、０．５秒）としては、タイムアウト基準時間の１０分の１の値が用いられる。
また、ディスク制御部１２は、図１に示すように、差分データ量管理部１３，抑止部１４，レスポンス時間算出部１６及び基準情報設定部１５としての機能を備える。
【００３１】
差分データ量管理部１３は、ＣＭ３０から配下の１以上のＨＤＤ６０（送信先）に対して発行中のコマンドにかかる発行データ量と、これらの１以上のＨＤＤ６０から当該ＣＭ３０へ応答中のデータ（コマンド）にかかる応答データ量との差分である差分データ量を管理する。
本実施形態においては、差分データ量管理部１３は、発行データ量及び応答データ量を、各コマンドデータを構成するブロック（１ブロック＝512byte）の数（ブロック数）で管理する。そして、差分データ量管理部１３は、発行データ量のブロック数と応答データ量のブロック数との差分である差分データ量を流量ブロック数４０１としてＲＡＭ３０２に格納する。
【００３２】
具体的には、ディスク制御部１２がＨＤＤ６０に対して要求コマンドを送信する際に、差分データ量管理部１３は、要求コマンドにかかるデータ（要求コマンドデータ）を構成するブロック数を、流量ブロック数４０１の値に加算する。又、ＨＤＤ６０から応答コマンドを受信する際に、差分データ量管理部１３は、応答コマンドにかかるデータ（応答コマンドデータ）を構成するブロック数を、流量ブロック数４０１の値から減算する。これにより、流量ブロック数４０１の値は、その時点における差分データ量をリアルタイムに表す。なお、以下、差分データ量をコマンド流量差分という場合がある。
【００３３】
また、差分データ量管理部１３は、そのＣＭ３０に接続された複数のＨＤＤ６０に対してそれぞれ要求コマンドを発行する場合には、これらの複数のＨＤＤ６０に対する各要求コマンドのブロック数を流量ブロック数４０１に加算する。又、差分データ量管理部１３は、そのＣＭ３０に接続された各ＨＤＤ６０からそれぞれ応答コマンドを受信する場合には、これらの各応答コマンドのブロック数を流量ブロック数４０１から減算する。
【００３４】
なお、発行中のコマンドデータ量は、ＣＭ３０からＨＤＤ６０に対してコマンドを発行する際に採取される。又、差分データ量管理部１３は、ＨＤＤ６０からデータ応答を受信する際に応答データ量も採取する。なお、これらの発行データ量及び応答データ量は既知の種々の手法を用いて採取することができ、その詳細な説明は省略する。
例えば、ＣＭ３０から４つのＨＤＤ６０に対して、それぞれ、5，10，15，10Mbyteのデータのリード要求を発行する場合には、発行データ量＝5+10+15+10=40Mbyte（81,920ブロック）となる。又、かかるリード要求に対する応答として、４つのＨＤＤ６０から、それぞれ、5，10，15，10Mbyteのデータが送信されると、応答データ量＝5+10+15+10=40Mbyte（81,920ブロック）となる。
【００３５】
そして、過負荷状態等の理由により、ＨＤＤ６０の少なくとも一部がリード要求に対する応答データを送信できない場合には、その時点において、発行データ量と応答データ量とに差分（差分データ量）が生じる。流量ブロック数４０１はこの差分データ量を示す。
抑止部１４は、ＨＤＤ６０へのコマンドの発行を抑止する。具体的には、抑止部１４は、コマンドの発行時において、発行する要求コマンドをコマンドキュー４０４に設定（登録）することにより、この要求コマンドがただちにＩＯＣ３０５に転送されることを抑止する。
【００３６】
抑止部１４は、記差分データ量管理部１３によって算出された流量ブロック数４０１の値を、ＲＡＭ３０２に記憶されたコマンド流量基準値（基準情報，比較基準値）４０３と比較する。そして、差分データ量がコマンド流量基準値４０３以下である場合、すなわち、コマンド発行流量差分に余裕がある場合には、ＩＯＣ３０５を介して、そのコマンドを送信先のＨＤＤ６０に対して発行させる。又、抑止部１４は、差分データ量がコマンド流量基準値４０３よりも大きい場合には、発行するコマンドをコマンドキュー４０４に設定する。
【００３７】
コマンドキュー４０４に登録されたコマンドは、ディスク制御部１２が、コマンド発行が可能であると判断した場合に、その先頭に登録されているものから順番に、ＩＯＣ３０５に送信先のＨＤＤ６０に対して発行させる。
図３は実施形態の一例としてのストレージシステム１におけるコマンド流量基準値４０３を例示する図である。
【００３８】
図３に示す例では、コマンド流量基準値４０３は10Mbyte（20,480ブロック）であり、現在の差分データ量（コマンド流量差分）の値が7Mbyte（14,336ブロック）である。この現在の差分データ量の値（7Mbyte）はコマンド流量基準値４０３以下であるので、抑止部１４はコマンドをコマンドキュー４０４に格納させることなく、ディスク制御部１２がＩＯＣ３０５に送信元のＨＤＤ６０に対してコマンドを発行させる。
【００３９】
また、後述するレスポンス時間算出部１６によって算出されたレスポンス平均値がタイムアウト基準値以下である場合には、コマンド発行に余裕があると考えられる。このような場合にも、抑止部１４は、ＨＤＤ６０へのコマンド発行の抑止を行なわず、すなわち、そのコマンドをコマンドキュー４０４に登録することなく、ＩＯＣ３０５から送信先のＨＤＤ６０へ送信させる。
【００４０】
レスポンス時間算出部１６は、送信先のＨＤＤ６０に対して発行したコマンドへの応答レスポンス時間の平均値を算出する。このレスポンス時間算出部１６は、ＨＤＤ６０から応答コマンドを受信すると、その応答コマンドについて、対応する発行コマンドを発行してからの経過時間（レスポンス時間）を取得する。レスポンス時間算出部１６は、取得したレスポンス時間をＲＡＭ３０２の所定の記憶領域に格納する。
【００４１】
そして、レスポンス時間算出部１６は、ＲＡＭ３０２に格納されている、先に受信した応答コマンドについてのレスポンス時間との平均値（レスポンス平均値）を算出する。レスポンス時間算出部１６は、算出したレスポンス平均値もＲＡＭ３０２の所定の記憶領域に格納する。
また、ＲＡＭ３０２に記憶されたレスポンス時間及びレスポンス平均値は、予め設定されたリセット基準時間（例えば、０．５秒）毎にリセットされる。これにより、レスポンス時間算出部１６は、レスポンス平均値の算出時から最大でリセット基準時間（例えば、０．５秒）内に取得されたレスポンス時間の平均値を算出する。
【００４２】
レスポンス平均値としては、古い値を維持していても意味がなく、常に最新のコマンド流量基準値４０３に基づいた値を用いることが望ましい。しかしながら、本ストレージシステム１においては、後述の如く基準情報設定部１５によりコマンド流量基準値４０３の値は常に変動する。このため、コマンド流量基準値４０３を変更するたびにレスポンス平均値をリセットすると、レスポンス平均値を算出するために平均をとるレスポンス時間の母数が少なくなる。これにより、レスポンス平均値が極端な値となる可能性がある。
【００４３】
そこで、本ストレージシステム１においては、ディスク制御部１２は、リセット基準時間毎にタイマ割り込みを行ない、この割り込みのタイミングでレスポンス平均値をリセットする。このように、レスポンス平均値を定期的にリセットすることで、常に最新のレスポンス平均値を確認することができ、装置の信頼性を向上させることができる。
なお、リセット基準時間としては、例えば、前述したタイムアウト基準時間（例えば、５秒）の１０分の１の値を用いる。
【００４４】
基準情報設定部１５は、レスポンス時間算出部１６によって算出されたレスポンス平均値及び差分データ量管理部１３によって算出されたその時点でのコマンド流量差分の値に基づいてコマンド流量基準値４０３を設定する。
基準情報設定部（基準範囲設定部）１５は、ＨＤＤ６０に対して発行したコマンドへの応答レスポンス時間に基づいて、コマンド流量基準値４０３を設定する。
【００４５】
ただし、基準情報設定部１５は、ＨＤＤ６０からの応答コマンドデータ量が所定量（例えば、4Kbyte＝8ブロック）以上である場合にのみコマンド流量基準値４０３を変更し、応答コマンドデータ量が所定量よりも小さい場合には、コマンド流量基準値４０３を変更しない。
データ量が所定量よりも小さい応答コマンドは、コマンドブロックが発生する可能性は低く、又、他のコマンドに影響を及ぼす可能性が低いことから、コマンド流量基準値４０３の変更処理の対象外とする。すなわち、コマンドブロックが発生する可能性のあるコマンドのみを対象とすることにより、影響範囲を狭める。
【００４６】
なお、この応答コマンドデータ量は、例えば、応答コマンドデータを構成するブロック数に代えてデータサイズで判断してもよく、適宜変更して実施することができる。
コマンド流量基準値４０３には下限値が設けられており、コマンド流量基準値４０３はこの下限値よりも小さく設定されることはない。下限値には、試験結果等に基づき、経験上、コマンド処理を余裕を持って実施できる値（例えば、5Mbyte）が設定される。
【００４７】
（ａ）コマンド流量基準値の引き上げ
基準情報設定部１５は、レスポンス平均値が予め設定されたレスポンス基準値（所定の基準値）以下であって、且つ、コマンド流量差分がコマンド流量基準値４０３よりも大きい場合に、コマンド流量基準値４０３を引き上げる（値を増大させる）。
ここで、レスポンス基準値は、前述したタイムアウト値よりも小さい値であり、例えば、タイムアウト値に係数Ｍ（ただし、Ｍ＜１）を乗算した値を用いる。本実施形態においては、レスポンス基準値として、タイムアウト値に0.9を乗算した値（Ｍ＝0.9）である４．５（単位；秒）を用いる。
【００４８】
レスポンス平均値が予め設定されたレスポンス基準値以下であるということは、コマンド発行に余裕があると判断することができる。そこで、基準情報設定部１５は、発行するコマンドのデータ量、すなわち、発行データ量を増大させるべく、コマンド流量基準値４０３を引き上げる。
差分データ量管理部１３によって算出されたその時点でのコマンド流量差分（現在のコマンド流量差分）の値がコマンド流量基準値４０３よりも大きい場合に、その現在のコマンド流量差分の値を用いて、コマンド流量基準値４０３を置換する。
【００４９】
図４は実施形態の一例としてのストレージシステム１におけるコマンド流量基準値４０３の引き上げ方法を説明する図である。
この図４に示す例においては、レスポンス平均値が予め設定されたレスポンス基準値以下であり、且つ、コマンド流量差分（12Mbyte）がコマンド流量基準値４０３（10MByte）よりも大きい場合を示す。そして、変更前のコマンド流量基準値４０３は10Mbyteである。
【００５０】
このような場合には、基準情報設定部１５は、コマンド流量基準値４０３を現在のコマンド流量差分で置換する。これにより、変更後のコマンド流量基準値４０３は12Mbyteとなる。
（ｂ）コマンド流量基準値の引き下げ
また、基準情報設定部１５は、レスポンス平均値が予め設定されたレスポンス基準値よりも大きく、且つ、コマンド流量差分がコマンド流量基準値４０３以下の場合に、コマンド流量基準値４０３を引き下げる（値を減少させる）。
【００５１】
レスポンス平均値が予め設定されたレスポンス基準値よりも大きいということは、コマンド発行に余裕が無くなりつつあり、タイムアウト基準時間に到達してタイムアウトエラーとなる可能性が高いと判断することができる。
そこで、基準情報設定部１５は、発行するコマンドのデータ量、すなわち、発行データ量を減少させるべく、コマンド流量基準値４０３を引き下げる。
【００５２】
具体的には、コマンド流量基準値４０３を、差分データ量管理部１３によって算出されたその時点でのコマンド流量差分の値に、係数ｋ（ただし、ｋ＜１）を乗算した値を用いて置換する。
図５は実施形態の一例としてのストレージシステム１におけるコマンド流量基準値４０３の引き下げ方法を説明する図である。
【００５３】
この図５に示す例においては、レスポンス平均値が予め設定されたタイムアウト基準値よりも大きく、且つ、コマンド流量差分（9Mbyte）がコマンド流量基準値４０３（10MByte）以下の場合を示す。そして、変更前のコマンド流量基準値４０３は10Mbyteである。
このような場合には、基準情報設定部１５は、現在のコマンド流量差分に係数ｋ（例えば、ｋ＝0.9）を乗算した値（＝8.1）を算出する。そして、基準情報設定部１５は、コマンド流量基準値４０３をこの現在のコマンド流量差分に基づいて算出した値（8.1）で置換する。これにより、変更後のコマンド流量基準値４０３は8.1Mbyteである。
【００５４】
ただし、基準情報設定部１５は、コマンド流量基準値４０３を下限値よりも小さくすることはない。前述の如く、コマンド流量基準値４０３は、試験結果等に基づき、経験上、コマンド処理を余裕を持って実施できる値（例えば、5Mbyte）が設定されるからである。
なお、レスポンス平均値が予め設定されたレスポンス基準値よりも大きく、且つ、コマンド流量差分がコマンド流量基準値４０３よりも大きい場合にも、基準情報設定部１５は、発行するコマンドのデータ量、すなわち、発行データ量を減少させるべく、コマンド流量基準値４０３を引き下げることが望ましい。
【００５５】
例えば、基準情報設定部１５は、差分データ量管理部１３によって算出されたその時点でのコマンド流量差分の値に係数ｋ（ただし、ｋ＜１）を乗算した値が、コマンド流量基準値４０３よりも小さくなる場合には、その値を用いて、コマンド流量基準値４０３を置換する。
また、レスポンス平均値が予め設定されたレスポンス基準値以下であって、且つ、コマンド流量差分がコマンド流量基準値４０３以下の場合には、コマンド流量基準値４０３を、その上限値に計数ｋを乗算した値で更新してもよく、又、コマンド流量基準値４０３を変更しないようにしてもよい。
【００５６】
さらに、コマンド流量差分がコマンド流量基準値４０３以下の場合には、基準情報設定部１５は、コマンド流量基準値４０３を下限値に一致させる。
なお、これらの各機能を実現するためのプログラム（制御プログラム）は、例えばフレキシブルディスク，ＣＤ（ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＣＤ−ＲＷ等），ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−ＲＡＭ，ＤＶＤ−Ｒ，ＤＶＤ＋Ｒ，ＤＶＤ−ＲＷ，ＤＶＤ＋ＲＷ，ＨＤ  ＤＶＤ等），ブルーレイディスク，磁気ディスク，光ディスク，光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供される。そして、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。又、そのプログラムを、例えば磁気ディスク，光ディスク，光磁気ディスク等の記憶装置（記録媒体）に記録しておき、その記憶装置から通信経路を介してコンピュータに提供するようにしてもよい。
【００５７】
システム制御部１１及びディスク制御部１２（差分データ量管理部１３，抑止部１４レスポンス時間算出部１６及び基準情報設定部１５）としての機能を実現する際には、内部記憶装置（本実施形態ではＣＭ３０のＲＡＭ３０２やＲＯＭ３０３）に格納された制御プログラムがコンピュータのマイクロプロセッサ（本実施形態ではＣＰＵ３０１）によって実行される。このとき、記録媒体に記録されたプログラムをコンピュータが読み取って実行するようにしてもよい。
【００５８】
なお、本実施形態において、コンピュータとは、ハードウェアとオペレーティングシステムとを含む概念であり、オペレーティングシステムの制御の下で動作するハードウェアを意味している。又、オペレーティングシステムが不要でアプリケーションプログラム単独でハードウェアを動作させるような場合には、そのハードウェア自体がコンピュータに相当する。ハードウェアは、少なくとも、ＣＰＵ等のマイクロプロセッサと、記録媒体に記録されたコンピュータプログラムを読み取るための手段とを備えており、本実施形態においては、ＣＭ３０がコンピュータとしての機能を有しているのである。
【００５９】
上述の如く構成された実施形態の一例としてのストレージシステム１のＣＭ３０における要求コマンド発行時の処理を、図６に示すフローチャート（ステップＡ１〜Ａ５）に従って説明する。以下、ＣＭ１０からＨＤＤ６０に対してリード要求を行なう例について説明する。
差分データ量管理部１３は、ＨＤＤ６０に対して送信するリード要求コマンドにかかるデータ量（要求コマンドデータ量）を確認する。要求コマンドデータ量は、例えば、要求コマンドデータを構成するブロック数で判断する。
【００６０】
差分データ量管理部１３は、要求コマンドデータのブロック数が所定量（例えば、4Kbyte＝8ブロック）以上であるか否かを確認する（ステップＡ１）。
要求コマンドデータ量が所定量以上である場合に、以下のステップＡ２〜Ａ４において行なう流量制御の対象とする。
データ量が所定量よりも小さい応答コマンドは、コマンドブロックが発生する可能性は低く、又、他のコマンドに影響を及ぼす可能性が低いことから、流量制御の対象外とする。すなわち、コマンドブロックが発生する可能性のあるコマンドのみを対象として流量制御を行なう。
【００６１】
流量に影響するのはコマンド辺りのサイズが大きいシーケンシャルＩＯ（Sequential IO）であるので、このシーケンシャルＩＯを対象としてコマンド発行を抑制する。すなわち、流量のカウントを一定以上のサイズのコマンドに限定し、それ未満は流量制御の対象外とする。
ランダムＩＯ（Random IO）は、コマンドあたりのサイズが小さく、流量の急増への影響度が低いので、流量管理の対象外として、キューイングせずにコマンドを発行する（サイズの小さいシーケンシャルＩＯも同様である）。
これにより、ランダムＩＯがシーケンシャルＩＯを追い抜くことになるが、コマンド順序の保障はＲＡＩＤ制御で実現することができるので、DiskDrvでコマンドの追い抜きが発生しても処理に影響は生じない。
【００６２】
ＨＤＤ６０に対する要求コマンドデータのブロック数が８ブロック以上である場合には（ステップＡ１のＹＥＳルート参照）、抑止部１４が、差分データ量管理部１３によって算出したコマンド流量差分をコマンド流量基準値４０３と比較する。すなわち、抑止部１４は、コマンド流量差分がコマンド流量基準値４０３以下であるかを判断することにより、コマンド発行流量差分に余裕があるか否かを確認する（ステップＡ２）。
【００６３】
コマンド発行流量差分に余裕がある場合、すなわち、コマンド流量差分がコマンド流量基準値４０３以下である場合には（ステップＡ２のＹＥＳルート参照）、ディスク制御部１２は、ＲＡＭ４０２における流量ブロック数４０１の値に、ステップＡ１において確認した要求コマンドにかかるブロック数を加算する（ステップＡ３）。
ディスク制御部１２は、その要求コマンドをＩＯＣ３０５に転送させ、対象のＨＤＤ６０に対して発行させ（ステップＡ５）、処理を終了する。
【００６４】
一方、コマンド発行流量差分に余裕がない、すなわち、コマンド流量差分がコマンド流量基準値４０３よりも大きい場合には（ステップＡ２のＮＯルート参照）、抑止部１４は、その要求コマンドをコマンドキュー４０４に設定（コマンドキューイング）し（ステップＡ４）、処理を終了する。要求コマンドをコマンドキュー４０４に設定することにより、その要求コマンドがただちにＩＯＣ３０５に転送されることがなくなる。
【００６５】
また、ＨＤＤ６０に対する要求コマンドデータのブロック数が７ブロック以下である場合には（ステップＡ１のＮＯルート参照）、ステップＡ２〜Ａ４の流量制御を行なわずに、ステップＡ５において、ＩＯＣ３０５を介して対象のＨＤＤ６０に発行する。
前述の如く、データ量が所定量よりも小さい要求コマンドは、コマンドブロックが発生する可能性は低く、又、他のコマンドに影響を及ぼす可能性が低いことから、流量制御の対象外とするのである。
【００６６】
次に、実施形態の一例としてのストレージシステム１のＣＭ３０における応答コマンド受信時の処理を、図７に示すフローチャート（ステップＢ１〜Ｂ１１）に従って説明する。以下、ＣＭ１０からＨＤＤ６０に対してリード要求を行なう例について説明する。以下、ＣＭ１０からＨＤＤ６０に発行されたリード要求に対する応答コマンドを受信する例について説明する。
【００６７】
差分データ量管理部１３は、ＨＤＤ６０から受信するリード応答コマンドにかかるデータ量（応答コマンドデータ量）を確認する。応答コマンドデータ量は、例えば、応答コマンドデータを構成するブロック数で判断する。
差分データ量管理部１３は、応答コマンドデータのブロック数が所定量（例えば、4Kbyte＝8ブロック）以上であるか否かを確認する（ステップＢ１）。
【００６８】
応答コマンドデータ量が所定量以上である場合に、以下のステップＢ２〜Ｂ５，Ｂ９，Ｂ１０において行なうコマンド流量基準値４０３の変更処理の対象とする。
データ量が所定量よりも小さい応答コマンドは、コマンドブロックが発生する可能性は低く、又、他のコマンドに影響を及ぼす可能性が低いことから、コマンド流量基準値４０３の変更処理の対象外とする。すなわち、コマンドブロックが発生する可能性のあるコマンドのみを対象とすることにより、影響範囲を狭める。
【００６９】
応答コマンドデータのブロック数が８ブロック以上である場合には（ステップＢ１のＹＥＳルート参照）、差分データ量管理部１３は、流量ブロック数４０１から応答コマンドデータのブロック数（応答ブロック数）を減算することにより、流量ブロック数４０１を更新する。又、レスポンス時間算出部１６が、ＲＡＭ３０２に格納されている、先に受信した応答コマンドについてのレスポンス時間との平均値（レスポンス平均値）を算出する（ステップＢ２）。
【００７０】
基準情報設定部１５は、算出されたレスポンス平均値と予め設定されたレスポンス基準値とを比較し、レスポンス平均値がレスポンス基準値を超えるか否かを確認する（ステップＢ３）。
レスポンス平均値がレスポンス基準値を超える場合には（ステップＢ３のＹＥＳルート参照）、コマンド流量基準値４０３が下限値に達しているか否かを確認する（ステップＢ４）。すなわち、コマンド流量基準値４０３を更に引き下げる余地があるか否かを確認する。
【００７１】
コマンド流量基準値４０３が下限値に達していない場合には（ステップＢ４のＮＯルート参照）、基準情報設定部１５は、コマンド流量基準値４０３を引き下げる（ステップＢ５）。
このステップＢ５において、基準情報設定部１５は、現在のコマンド流量差分の値、すなわち、流量ブロック数４０１の値とコマンド流量基準値４０３とを比較する。
【００７２】
流量ブロック数４０１の値が、コマンド流量基準値４０３以下である場合には、基準情報設定部１５は、現在のコマンド流量差分に係数ｋ（例えば、ｋ＝0.9）を乗算した値（＝８．１）を算出する。そして、基準情報設定部１５は、コマンド流量基準値４０３をこの現在のコマンド流量差分に基づいて算出した値（8.1）で置換することで、その値を引き下げる。
【００７３】
また、流量ブロック数４０１の値が、コマンド流量基準値４０３よりも大きい場合であって、現在のコマンド流量差分に係数ｋを乗算した値がコマンド流量基準値４０３よりも小さくなる場合にも、基準情報設定部１５は、コマンド流量基準値４０３をこの現在のコマンド流量差分に基づいて算出した値で置換する。
なお、現在のコマンド流量差分に係数ｋを乗算した値がコマンド流量基準値４０３以上となる場合には、コマンド流量基準値４０３を、その上限値に計数ｋを乗算した値で更新してもよく、又、コマンド流量基準値４０３を変更しないようにしてもよい。
【００７４】
また、流量ブロック数４０１の値が、コマンド流量基準値４０３よりも小さい場合には、コマンド流量基準値４０３をその下限値に一致させる。すなわち、コマンド流量基準値４０３を下限値まで引き下げる。
その後、ステップＢ６において、ディスク制御部１２が、コマンドキュー４０４に登録されている要求コマンド（キューイングコマンド）の有無を確認する（ステップＢ６）。キューイングコマンドがない場合には（ステップＢ６のＮＯルート参照）、処理を終了する。
【００７５】
キューイングコマンドがある場合には（ステップＢ６のＹＥＳルート参照）、次に、ステップＢ７において、コマンド流量差分がコマンド流量基準値４０３以下であるか否かを確認する。すなわち、コマンド発行流量に余裕があるか否かを確認する（ステップＢ７）。
コマンド流量差分が、コマンド流量基準値４０３以下である場合、すなわち、コマンド発行流量に余裕がある場合は（ステップＢ７のＹＥＳルート参照）、ディスク制御部１２は、コマンドキュー４０４に設定された先頭の要求コマンドをＩＯＣ３０５に転送させる。すなわち、ディスク制御部１２は、キューイングされているコマンドを対象のＨＤＤ６０に対して発行させて（ステップＢ８）、処理を終了する。
【００７６】
コマンド流量差分が、コマンド流量基準値４０３より大きい場合、すなわち、コマンド発行流量に余裕がない場合は（ステップＢ７のＮＯルート参照）、要求コマンドを転送する余裕がないと判断し、そのまま処理を終了する。
また、応答コマンドデータのブロック数が７ブロック以下である場合には（ステップＢ１のＮＯルート参照）、ステップＢ２〜Ｂ５の処理をスキップし、基準情報設定部１５がコマンド流量基準値４０３を変更することなく、ステップＢ６に移行する。データ量が所定量よりも小さい要求コマンドは、コマンドブロックが発生する可能性は低く、又、他のコマンドに影響を及ぼす可能性が低いことから、基準情報設定部１５によるコマンド流量基準値４０３の変更処理の対象外とするのである。
【００７７】
さらに、レスポンス平均値がレスポンス基準値以下の場合には（ステップＢ３のＮＯルート参照）、基準情報設定部１５は、現在のコマンド流量差分の値、すなわち、流量ブロック数４０１の値とコマンド流量基準値４０３とを比較する（ステップＢ９）。
流量ブロック数４０１の値がコマンド流量基準値４０３よりも大きい場合には（ステップＢ９のＹＥＳルート参照）、基準情報設定部１５は、コマンド流量基準値４０３を、現在のコマンド流量差分を用いて置換する。これにより、基準情報設定部１５はコマンド流量基準値４０３を引き上げる（ステップＢ１０）。その後、ステップＢ６に移行する。
【００７８】
流量ブロック数４０１の値がコマンド流量基準値４０３以下の場合には（ステップＢ９のＮＯルート参照）、基準情報設定部１５はコマンド流量基準値４０３を変更せずに（ステップＢ１１）、ステップＢ６に移行する。ただし、コマンド流量差分がコマンド流量基準値４０３の下限値よりも小さい場合は、上限値を下限値に一致させるよう変更する。
また、コマンド流量基準値４０３が下限値に達している場合にも（ステップＢ４のＹＥＳルート参照）、ステップＢ１１に移行し、基準情報設定部１５はコマンド流量基準値４０３を変更せずに（ステップＢ１１）、ステップＢ６に移行する。
【００７９】
次に、実施形態の一例としてのストレージシステム１のＣＭ３０におけるレスポンス平均値のリセット手法を、図８に示すフローチャート（ステップＣ１）を用いて説明する。
レスポンス時間算出部１６には、タイマ割込みによりリセット基準時間（例えば、０．５秒）毎にリセット指示信号が入力される（ステップＣ１）。レスポンス時間算出部１６は、このリセット指示信号が入力されると、ＲＡＭ３０２に記憶されたレスポンス時間及びレスポンス平均値を削除（リセット）させるのである。これにより、ＲＡＭ３０２には古いレスポンス時間やレスポンス平均値が残ることがなく、レスポンス時間算出部１６は、リセット基準時間（例えば、０．５秒）内に取得されたレスポンス時間の平均値を算出する。すなわち、レスポンス時間算出部１６は、本ストレージシステム１１における最新の状態に合った、レスポンス時間の平均値を算出することができる。
【００８０】
このように、実施形態の一例としてのストレージシステム１によれば、ディスク制御部１２が要求コマンドを発行する際において、差分データ量がコマンド流量基準値４０３よりも大きい場合に、抑止部１４が、その要求コマンドをコマンドキュー４０４に登録する。これにより、要求コマンドがＩＯＣ３０５に転送されることを抑止し、ＩＯＣ３０５のバッファへの要求コマンドにかかるデータの格納を阻止する。すなわち、ＩＯＣ３０５がキャッシュフルの状態になることを未然に防ぎ、クレジットブロックの発生を抑止することができる。
【００８１】
これにより、ＣＭ３０とＨＤＤ６０との間におけるコマンド及びデータの転送効率を工場させることができる。又、コマンドタイムアウトの発生を防止することで、コマンドタイムアウトを契機とするディスクフォルトやＣＭパニックを防止することができる。
また、ＨＤＤ６０に対する要求コマンドデータのブロック数（データサイズ）が所定数（所定量）以下である場合には、抑止部１４がその要求コマンドの発行を抑止せずに、ＩＯＣ３０５を介して対象のＨＤＤ６０に発行する。すなわち、データ量が所定量よりも小さい要求コマンドは流量制御の対象外とする。これにより、コマンド処理速度を向上させるとともに、ＣＰＵ３０１の処理負荷を軽減することができる。
【００８２】
また、応答コマンドを受信する際に、基準情報設定部１５が現在の差分データ量に基づいてコマンド流量基準値４０３を更新する。これにより、システムの転送状態に応じた最適なコマンド流量基準値４０３が設定される。例えば、レスポンス平均値がレスポンス基準値を超えていない場合には、コマンド処理性能に余裕があると判断し、コマンド流量基準値４０３を引き上げる。これにより、発行される要求コマンド数を増やすことができ、処理速度を向上させることができる。
【００８３】
また、基準情報設定部１５は、コマンド流量基準値４０３を引き上げる際に、コマンド流量基準値４０３を、その時点での差分データ量で置換することで更新する。すなわち、レスポンス平均値がレスポンス基準値を超えていない状態、すなわち、データ転送性能が保障されている状態での差分データ量を新たなコマンド流量基準値４０３として使用する。これにより、データ性能保障がされた状態でコマンド流量基準値４０３を引き上げることができ、信頼性を向上させることができる。
【００８４】
さらに、基準情報設定部１５は、コマンド流量基準値４０３を引き下げる際には、コマンド流量基準値４０３を、その時点での差分データ量に係数ｋ（ｋ＜１）を乗算した値で置換する。これにより、その時点における差分データ量に合わせてコマンド流量基準値４０３を引き下げることができ、信頼性を向上させることができる。
そして、開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。
【００８５】
例えば、上述した実施形態においては、要求コマンドや応答コマンドのコマンドデータ量をブロック単位で取り扱っているが、これに限定されるものではない。すなわち、コマンドデータ量は、例えば、コマンドを構成するブロック数に代えてデータサイズで取り扱ってもよく、適宜変更して実施することができる。
また、上述した実施形態では、２つのＣＭ３０ａ，３０ｂやエキスパンダ３０４を備えて構成されているが、これに限定されるものではない。すなわち、１つもしくは３つ以上のＣＭ３０やエキスパンダ３０４を備えてもよい。
【００８６】
また、記憶装置６０はＨＤＤに限定されるものではなく、ＳＳＤ（Solid State Drive）等の記憶装置であってもよい。
本実施形態の各構成及び各処理は、必要に応じて取捨選択することができ、あるいは適宜組み合わせてもよい。
また、上述した開示により本実施形態を当業者によって実施・製造することが可能である。
【００８７】
以上の実施形態に関し、更に以下の付記を開示する。
（付記１）
送信先に対して発行したコマンドへの応答レスポンス時間に基づいて、比較基準値を設定する基準情報設定部と、
コマンド発行時に、前記送信先に対して発行中のコマンドにかかる発行データ量と前記送信先から応答中のデータにかかる応答データ量との差分である差分データ量と前記比較基準値とを比較し、前記差分データ量が前記比較基準値を超えた場合に、前記コマンドの発行を抑止する抑止部とを備えることを特徴とする、制御装置。
【００８８】
（付記２）
付記１において、前記基準情報設定部が、
前記応答レスポンス時間が所定のレスポンス基準値以下の場合に、前記比較基準値を増大させる、制御装置。
（付記３）
付記２において、前記基準情報設定部が、
前記応答レスポンス時間が所定のレスポンス基準値以下の場合に、前記比較基準値を前記差分データ量で置換することで変更する、制御装置。
【００８９】
（付記４）
付記１〜３のいずれか１項において、前記基準情報設定部が、
前記応答レスポンス時間が所定のレスポンス基準値よりも長い場合に、前記比較基準値を減少させる、制御装置。
（付記５）
付記４において、前記基準情報設定部が、
前記応答レスポンス時間が所定のレスポンス基準値よりも長い場合に、前記比較基準値を前前記差分データ量よりも小さい値で置換することで更新する、制御装置。
【００９０】
（付記６）
付記１〜５のいずれか１項において、前記基準情報設定部が、
前記送信先からの応答コマンドデータ量が所定量以上である場合に、前記比較基準値を変更する、制御装置。
（付記７）
付記１〜６のいずれか１項において、前記抑止部が、
前記コマンドをコマンドキューに格納することにより、当該コマンドの発行を抑止する、制御装置。
【００９１】
（付記８）
付記１〜７のいずれか１項において、前記送信先に対して発行したコマンドへの応答レスポンス時間の平均値を算出するレスポンス平均算出部を備え、
前記基準情報設定部が、
前記レスポンス平均算出部によって算出された、前記応答レスポンス時間の平均値に基づいて、前記比較基準値を設定する、制御装置。
【００９２】
（付記９）
付記８において、前記レスポンス平均算出部が、
当該算出時から所定期間内における前記応答レスポンス時間の平均値を算出する、制御装置。
（付記１０）
記憶装置と、
前記記憶装置に対して発行したコマンドへの応答レスポンス時間に基づいて、比較基準値を設定する基準情報設定部と、
コマンド発行時に、前記送信先に対して発行中のコマンドにかかる発行データ量と前記送信先から応答中のデータにかかる応答データ量との差分である差分データ量と前記比較基準値とを比較し、前記差分データ量が前記比較基準値を超えた場合に、前記コマンドの発行を抑止する抑止部とを備える、ストレージ装置。
【００９３】
（付記１１）
付記１０において、前記基準情報設定部が、
前記応答レスポンス時間が所定のレスポンス基準値以下の場合に、前記比較基準値を増大させる、ストレージ装置。
（付記１２）
付記１１において、前記基準情報設定部が、
前記応答レスポンス時間が所定のレスポンス基準値以下の場合に、前記比較基準値を前記差分データ量で置換することで変更する、ストレージ装置。
【００９４】
（付記１３）
付記１０〜１２のいずれか１項において、前記基準情報設定部が、
前記応答レスポンス時間が所定のレスポンス基準値よりも長い場合に、前記比較基準値を減少させる、ストレージ装置。
（付記１４）
付記１３において、前記基準情報設定部が、
前記応答レスポンス時間が所定のレスポンス基準値よりも長い場合に、前記比較基準値を前前記差分データ量よりも小さい値で置換することで更新する、ストレージ制御装置。
【００９５】
（付記１５）
付記１０〜１４のいずれか１項において、前記基準情報設定部が、
前記送信先からの応答コマンドデータ量が所定量以上である場合に、前記比較基準値を変更する、ストレージ装置。
（付記１６）
付記１０〜１５のいずれか１項において、前記抑止部が、
前記コマンドをコマンドキューに格納することにより、当該コマンドの発行を抑止する、ストレージ装置。
【００９６】
（付記１７）
付記１０〜１６のいずれか１項において、前記送信先に対して発行したコマンドへの応答レスポンス時間の平均値を算出するレスポンス平均算出部を備え、
前記基準情報設定部が、
前記レスポンス平均算出部によって算出された、前記応答レスポンス時間の平均値に基づいて、前記比較基準値を設定する、ストレージ装置。
【００９７】
（付記１８）
付記１７において、前記レスポンス平均算出部が、
当該算出時から所定期間内における前記応答レスポンス時間の平均値を算出する、ストレージ装置。
（付記１９）
送信先に対して発行したコマンドへの応答レスポンス時間に基づいて、比較基準値を設定する工程と、
コマンド発行時に、前記送信先に対して発行中のコマンドにかかる発行データ量と前記送信先から応答中のデータにかかる応答データ量との差分である差分データ量と前記比較基準値とを比較し、前記差分データ量が前記比較基準値を超えた場合に、前記コマンドの発行を抑止する工程とを備えることを特徴とする、制御方法。
【００９８】
（付記２０）
付記１９において、前記比較基準値を設定する工程は、
前記応答レスポンス時間が所定のレスポンス基準値以下の場合に、前記比較基準値を増大させる、制御方法。
（付記２１）
付記２０において、前記比較基準値を設定する工程は、
前記応答レスポンス時間が所定のレスポンス基準値以下の場合に、前記比較基準値を前記差分データ量で置換することで変更する、制御方法。
【００９９】
（付記２２）
付記１９〜２１のいずれか１項において、前記比較基準値を設定する工程は、
前記応答レスポンス時間が所定のレスポンス基準値よりも長い場合に、前記比較基準値を減少させる、制御方法。
（付記２３）
付記２２において、前記比較基準値を設定する工程は、
前記応答レスポンス時間が所定のレスポンス基準値よりも長い場合に、前記比較基準値を前前記差分データ量よりも小さい値で置換する、制御方法。
【０１００】
（付記２４）
付記１９〜２３のいずれか１項において、前記比較基準値を設定する工程は、
前記送信先からの応答コマンドデータ量が所定量以上である場合に、前記比較基準値を変更する、制御方法。
（付記２５）
付記１９〜２４のいずれか１項において、前記コマンドの発行を抑止する工程は、
前記コマンドをコマンドキューに格納することにより、当該コマンドの発行を抑止する、制御方法。
【０１０１】
（付記２６）
付記１９〜２５のいずれか１項において、
前記送信先に対して発行したコマンドへの応答レスポンス時間の平均値を算出する工程を備え、
前記比較基準値を設定する工程は、算出された前記応答レスポンス時間の平均値に基づいて、前記比較基準値を設定する、制御方法。
【０１０２】
（付記２７）
付記２６において、前記応答レスポンス時間の平均値を算出する工程は、
当該算出時から所定期間内における前記応答レスポンス時間の平均値を算出する、制御方法。
（付記２８）
送信先に対して発行したコマンドへの応答レスポンス時間に基づいて、比較基準値を設定し、
コマンド発行時に、前記送信先に対して発行中のコマンドにかかる発行データ量と前記送信先から応答中のデータにかかる応答データ量との差分である差分データ量と前記比較基準値とを比較し、前記差分データ量が前記比較基準値を超えた場合に、前記コマンドの発行を抑止する、
処理をコンピュータに実行させる制御プログラム。
【０１０３】
（付記２９）
付記２８において、前記応答レスポンス時間が所定のレスポンス基準値以下の場合に、前記比較基準値を増大させる、
処理をコンピュータに実行させる制御プログラム。
（付記３０）
付記２９において、前記応答レスポンス時間が所定のレスポンス基準値以下の場合に、前記比較基準値を前記差分データ量で置換することで変更する、
処理をコンピュータに実行させる制御プログラム。
【０１０４】
（付記３１）
付記２８〜３０のいずれか１項において、前記応答レスポンス時間が所定のレスポンス基準値よりも長い場合に、前記比較基準値を減少させる、
処理をコンピュータに実行させる制御プログラム。
（付記３２）
付記３１において、前記応答レスポンス時間が所定のレスポンス基準値よりも長い場合に、前記比較基準値を前前記差分データ量よりも小さい値で置換する、
処理をコンピュータに実行させる制御プログラム。
【０１０５】
（付記３３）
付記２８〜３２のいずれか１項において、前記送信先からの応答コマンドデータ量が所定量以上である場合に、前記比較基準値を変更する、
処理をコンピュータに実行させる制御プログラム。
（付記３４）
付記２８〜３３のいずれか１項において、前記コマンドをコマンドキューに格納することにより、当該コマンドの発行を抑止する、
処理をコンピュータに実行させる制御プログラム。
【０１０６】
（付記３５）
付記２８〜３４のいずれか１項において、
前記送信先に対して発行したコマンドへの応答レスポンス時間の平均値を算出し、
算出された前記応答レスポンス時間の平均値に基づいて、前記比較基準値を設定する、
処理をコンピュータに実行させる制御プログラム。
【０１０７】
（付記３６）
付記３５において、当該算出時から所定期間内における前記応答レスポンス時間の平均値を算出する、
処理をコンピュータに実行させる制御プログラム。
（付記３７）
送信先に対して発行したコマンドへの応答レスポンス時間に基づいて、比較基準値を設定し、
コマンド発行時に、前記送信先に対して発行中のコマンドにかかる発行データ量と前記送信先から応答中のデータにかかる応答データ量との差分である差分データ量と前記比較基準値とを比較し、前記差分データ量が前記比較基準値を超えた場合に、前記コマンドの発行を抑止する、
処理をコンピュータに実行させる制御プログラムを記録したコンピュータ読取可能な記録媒体。
【０１０８】
（付記３８）
付記３７において、前記応答レスポンス時間が所定のレスポンス基準値以下の場合に、前記比較基準値を増大させる、
処理をコンピュータに実行させる制御プログラムを記録したコンピュータ読取可能な記録媒体。
【０１０９】
（付記３９）
付記３８において、前記応答レスポンス時間が所定のレスポンス基準値以下の場合に、前記比較基準値を前記差分データ量で置換することで変更する、
処理をコンピュータに実行させる制御プログラムを記録したコンピュータ読取可能な記録媒体。
【０１１０】
（付記４０）
付記３７〜３９のいずれか１項において、前記応答レスポンス時間が所定のレスポンス基準値よりも長い場合に、前記比較基準値を減少させる、
処理をコンピュータに実行させる制御プログラムを記録したコンピュータ読取可能な記録媒体。
【０１１１】
（付記４１）
付記４０において、前記応答レスポンス時間が所定のレスポンス基準値よりも長い場合に、前記比較基準値を前前記差分データ量よりも小さい値で置換する、
処理をコンピュータに実行させる制御プログラムを記録したコンピュータ読取可能な記録媒体。
【０１１２】
（付記４２）
付記３７〜４１のいずれか１項において、前記送信先からの応答コマンドデータ量が所定量以上である場合に、前記比較基準値を変更する、
処理をコンピュータに実行させる制御プログラムを記録したコンピュータ読取可能な記録媒体。
【０１１３】
（付記４３）
付記３７〜４２のいずれか１項において、前記コマンドをコマンドキューに格納することにより、当該コマンドの発行を抑止する、
処理をコンピュータに実行させる制御プログラムを記録したコンピュータ読取可能な記録媒体。
【０１１４】
（付記４４）
付記３７〜４３のいずれか１項において、
前記送信先に対して発行したコマンドへの応答レスポンス時間の平均値を算出し、
算出された前記応答レスポンス時間の平均値に基づいて、前記比較基準値を設定する、
処理をコンピュータに実行させる制御プログラムを記録したコンピュータ読取可能な記録媒体。
【０１１５】
（付記４５）
付記４４において、当該算出時から所定期間内における前記応答レスポンス時間の平均値を算出する、
処理をコンピュータに実行させる制御プログラムを記録したコンピュータ読取可能な記録媒体。
【符号の説明】
【０１１６】
１    ストレージシステム
２    ホスト装置
１０    ストレージ装置
１１    システム制御部
１２    ディスク制御部
１３    差分データ量管理部
１４    抑止部
１５    基準情報設定部
１６    レスポンス時間算出部
３０，３０ａ，３０ｂ    ＣＭ（制御装置）
５０    ネットワーク
６０    ＨＤＤ
３０１    ＣＰＵ
３０２    ＲＡＭ
３０３    ＲＯＭ
３０４    エキスパンダ
３０５    ＩＯＣ
３０６    ＣＡ
４０１    流量ブロック数
４０３    基準情報（比較基準値）
４０４    コマンドキュー
【図１】
2014010519.tif 000003
【図２】
2014010519.tif 000004
【図３】
2014010519.tif 000005
【図４】
2014010519.tif 000006
【図５】
2014010519.tif 000007
【図６】
2014010519.tif 000008
【図７】
2014010519.tif 000009
【図８】
2014010519.tif 000010