(57)【要約】【課題】ホストＩ／Ｏ要求と内部Ｉ／Ｏ要求に応じて、デイスク装置をアクセスするストレージシステムにおいて、コマンド処理の停滞によるホストＩ／Ｏのタイムアウトエラーを防止する。【解決手段】ＤＴＣ（５４）において、ホストＩ／Ｏ（ホストリード）と、内部Ｉ／Ｏ（プリフェッチ、ライトバック）との仕掛り数を個別に管理するカウンタ（６７，６８）を設け、仮想デイスク（ＲＬＵ）２への処理要求の発行数を個別に制限する。ホストＩ／Ｏを優先して、ホストＩ／Ｏと内部Ｉ／Ｏとの負荷バランスを制御できる。又、リビルド／コピーバックについては、専用の負荷制御機構を設け、通常Ｉ／Ｏとリビルド／コピーバック間での負荷調整を行うため、ある程度のホストＩ／Ｏのレスポンスを維持しながら、リビルド／コピーバックの終了時間を保証の負荷を管理できる。【選択図】図８ 
2004295860.tif 000002
【特許請求の範囲】
【請求項１】
ホストから依頼されたＩ／Ｏ要求と内部で発生したＩ／Ｏ要求とに応じて、接続されたデイスク装置をアクセスし、Ｉ／Ｏ要求を実行するストレージシステムにおいて、
前記Ｉ／Ｏ要求に応じたコマンド処理を実行するコマンド処理部と、
前記処理結果に応じて、前記デイスク装置にアクセス要求を発行するアクセス実行部とを有し、
前記アクセス実行部は、前記デイスク装置に発行し、且つ前記デイスク装置がアクセス処理を完了していない仕掛り数を、前記ホストＩ／Ｏ要求によるアクセス要求による数と、前記内部Ｉ／Ｏ要求によるアクセス要求とによる数とを個別に制限する
ことを特徴とするストレージシステム。
【請求項２】
前記アクセス実行部は、前記アクセス要求を所定数発行する毎に、リビルド又はコピーバックの少なくとも一方のアクセス要求を発行する
ことを特徴とする請求項１のストレージシステム。
【請求項３】
前記コマンド処理部は、所定のスケジュールに従う、前記内部Ｉ／Ｏ要求であるライトバック要求処理を行うとともに、前記ライトバック要求処理は、前記アクセス実行部から前記デイスク装置を論理的に示すＲＬＵ単位の負荷状況を受け、前記内部Ｉ／Ｏ要求の負荷の少ないＲＬＵを優先してライトバック要求を発行することを特徴とする請求項１のストレージシステム。
【請求項４】
ホストから依頼されたＩ／Ｏ要求と内部で発生したＩ／Ｏ要求とに応じて、接続されたデイスク装置をアクセスし、Ｉ／Ｏ要求を実行するためのデイスク負荷バランス制御方法において、
前記Ｉ／Ｏ要求に応じて、前記デイスク装置にアクセス要求を発行するステップと、
前記デイスク装置に発行し、且つ前記デイスク装置がアクセス処理を完了していない仕掛り数を、前記ホストＩ／Ｏ要求によるアクセス要求による数と、前記内部Ｉ／Ｏ要求によるアクセス要求とによる数とを個別に制限するステップとを有する
ことを特徴とするデイスク負荷バランス制御方法。
【請求項５】
前記アクセス要求を所定数発行する毎に、リビルド又はコピーバックの少なくとも一方のアクセス要求を発行するステップを更に有することを特徴とする請求項４のデイスク負荷バランス制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、磁気デイスク等のストレージ装置を使用してデータの入出力を行うストレージシステム及びそのデイスク負荷バランス制御方法に関し、特に、ホストＩ／Ｏコマンドと内部Ｉ／Ｏコマンドとをバランス処理し、コマンド処理の滞留を防止するためのストレージシステム及びそのデイスク負荷バランス制御方法に関する。
【背景技術】
【０００２】
磁気デイスク、光磁気デイスク、光デイスク等の記憶媒体を利用したストレージ装置では、データ処理装置の要求で、記憶媒体を実アクセスする。データ処理装置が、大容量のデータを使用する場合には、複数のストレージ機器と制御装置とを備えたストレージシステムを利用する。
【０００３】
このようなストレージシステムでは、大量のアクセスに対し、システム内でリソース配分をダイナミックに最適化し、上位装置からのアクセスに対し、安定な性能を実現するＤＴＣ（Dynamic  Traffic  Control）機能を備えている。図２４は、従来技術の構成図、図２５は、従来技術の説明図である。
【０００４】
図２４に示すように、ストレージコントローラ１００は、ホストＩ／Ｏコマンドに応じて、複数のストレージ装置（磁気デイスク装置）１１０をアクセス制御する。このストレージコントローラ１００は、コマンド処理機能１０２、ＤＴＣ機能１０４、デイスクドライバ１０６、デバイスアダプタ１０８を有する。コマンド処理機能１０２は、ホストＩ／Ｏコマンドと内部Ｉ／Ｏコマンドを受ける。
【０００５】
内部Ｉ／Ｏコマンドは、ホストＩ／Ｏのバックグラウンドで実行するＩ／Ｏ制御であり、例えば、ホストからの連続ブロック群のコピー指示に応じて、ホストＩ／Ｏのバックグラウンドで、順次コピーを行うＯＰＣ（One  Point  Copy）や、ＲＡＩＤ再構築のリビルドや、リビルドによって使用したスペアデイスク上のデータを、保守作業によって交換された新規デイスクに書き戻すためのコピーバック等がある。
【０００６】
ＤＴＣ機能１０４は、ドライバ１０６、デバイスアダプタ１０８を介しストレージ装置１１０に発行するコマンド数を制御する。図２５に示すように、従来技術では、ＤＴＣ機能１０４は、各コマンドの応答時間（ストレージ装置１１０へのコマンド発行からストレージ装置１１０から応答を受けるまでの時間）を測定し、応答時間の平均を計算し、この平均応答時間が、所定時間より早い場合には、単位時間の発行コマンド数を増加し、所定時間より遅い場合には、単位時間の発行コマンド数を減少する。決定された発行コマンド数を越えたコマンドは、キュー待ちする。
【０００７】
コマンド処理機能１０２は、ホストＩ／Ｏ(ランダム、シーケンシャル）の受け入れ制限を付けず、優先して処理し、ＤＴＣ１０４に渡す。内部Ｉ／Ｏは、ホストＩ／Ｏのバックグラウンドで処理し、ＤＴＣ１０４に渡す。ＤＴＣ１０４は、ドライバ１０６、デバイスアダプタ１０８を介し、ストレージ装置１１０に発行コマンド数を越えない数のコマンドを発行する。
【０００８】
このように、ＤＴＣ１０４は、ストレージ装置１１０のレスポンス時間に応じて、起動数（コマンド数）を動的に変更し、Ｉ／Ｏコマンドの実行の最適化を行っていた（例えば、特許文献１参照）。
【特許文献１】特開２００１−４３０３２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
従来技術では、物理デイスク単位に、１個以上のコマンドをグループとして、このグループを超えて処理順序が前後しないこと前提に、時間を基準として管理するであった。即ち、デイスク装置の処理時間からある所定時間内に、デイスク処理が完了するからを見極めるものであり、処理時間が早ければ、それだけ多くのデイスク要求を発行するものであった。
【００１０】
ところが、ストライプ制御を行うＲＡＩＤ構成では、データが複数のデイスクに分散しているため、個別のデイスクの負荷制御を行っても、ＲＡＩＤグループに対応するＲＬＵ（Raid Logical Unit)としてのレスポンス時間にそのまま反映されるわけでない。即ち、ＲＬＵ単位の制御では、処理の順序性が保証されないことや、複数のデイスクのアクセスによって１つの処理が完了する場合があり、単純に時間を測定しても、有効に機能しないという問題があった。
【００１１】
即ち、従来の時間を用いたＤＴＣ制御では、１時的なデイスクの遅れにより、他の処理を遅らせるおそれがあり、ホストＩ／Ｏのタイムアウトが発生しやすくなる。
【００１２】
従って、本発明の目的は、ＲＡＩＤ構成におけるデイスクの負荷バランスを効率良く制御するためのストレージシステム及びそのデイスク負荷バランス制御方法を提供することにある。
【００１３】
又、本発明の他の目的は、ＲＡＩＤ構成におけるホストＩ／Ｏのコマンド処理の遅延によるタイムアウトを防止するためのストレージシステム及びそのデイスク負荷バランス制御方法を提供することにある。
【００１４】
更に、本発明の他の目的は、ＲＡＩＤ構成におけるホストＩ／Ｏ要求と、内部Ｉ／Ｏ要求をバランス良く、負荷管理を行い、ホストＩ／Ｏ処理を妨げずに、受け付けたホストＩ／Ｏの処理遅延によるタイムアウトを防止するためのストレージシステム及びそのデイスク負荷バランス制御方法を提供することにある。
【００１５】
更に、本発明の他の目的は、ＤＴＣ処理のオーバーヘッドを削減し、ストレージ装置の性能を充分に使用するためのストレージシステム及びそのデイスク負荷バランス制御方法を提供することにある。
更に、本発明の他の目的は、かかるデイスク負荷バランスを利用して、最適なライトバックスケジュール制御を行うためのストレージシステム及びそのデイスク負荷バランス制御方法を提供することにある。
【課題を解決するための手段】
【００１６】
この目的の達成のため、本発明のストレージシステムは、ホストから依頼されたＩ／Ｏ要求と内部で発生したＩ／Ｏ要求とに応じて、接続されたデイスク装置をアクセスし、Ｉ／Ｏ要求を実行するストレージシステムにおいて、前記Ｉ／Ｏ要求に応じたコマンド処理を実行するコマンド処理部と、前記処理結果に応じて、前記デイスク装置にアクセス要求を発行するアクセス実行部とを有し、前記アクセス実行部は、前記デイスク装置に発行し、且つ前記デイスク装置がアクセス処理を完了していない仕掛り数を、前記ホストＩ／Ｏ要求によるアクセス要求による数と、前記内部Ｉ／Ｏ要求によるアクセス要求とによる数とを個別に制限する。
【００１７】
又、本発明のデイスク負荷バランス制御方法は、ホストから依頼されたＩ／Ｏ要求と内部で発生したＩ／Ｏ要求とに応じて、接続されたデイスク装置をアクセスし、Ｉ／Ｏ要求を実行するためのデイスク負荷バランス制御方法において、前記Ｉ／Ｏ要求に応じて、前記デイスク装置にアクセス要求を発行するステップと、前記デイスク装置に発行し、且つ前記デイスク装置がアクセス処理を完了していない仕掛り数を、前記ホストＩ／Ｏ要求によるアクセス要求による数と、前記内部Ｉ／Ｏ要求によるアクセス要求とによる数とを個別に制限するステップとを有する。
【００１８】
本発明では、ホストＩ／Ｏ（ホストリード）と、内部Ｉ／Ｏ（プリフェッチ、ライトバック）とを個別に負荷管理するので、仮想デイスク（ＲＬＵ）への処理要求の発行数を個別に制限できるため、ホストＩ／Ｏを優先して、ホストＩ／Ｏと内部Ｉ／Ｏとのバランスを制御できる。
【００１９】
又、本発明では、好ましくは、前記アクセス実行部は、前記ホストＩ／Ｏ要求によるアクセス要求の仕掛り数をカウントする第１のカウンタと、前記内部Ｉ／Ｏ要求によるアクセス要求の仕掛り数をカウントする第２のカウンタとを有し、前記Ｉ／Ｏ要求が前記ホストＩ／Ｏ要求によるアクセス要求であるか前記内部Ｉ／Ｏ要求によるアクセス要求であるかを判定し、前記判定結果に応じて、前記第１又は第２のカウンタを参照して、前記仕掛り数を個別に制限する。この形態では、カウンタで個別に仕掛り数を管理し、制限するため、容易に正確に仕掛り数の個別制限が可能となる。
【００２０】
又、本発明では、好ましくは、前記アクセス実行部は、前記ホストＩ／Ｏ要求によるアクセス要求の仕掛り数の制限値を越えた前記ホストＩ／Ｏ要求によるアクセス要求を待たせるための第１の待ちキューと、前記内部Ｉ／Ｏ要求によるアクセス要求の仕掛り数の制限値を越えた前記内部Ｉ／Ｏ要求によるアクセス要求を待たせるための第２の待ちキューとを有する。この形態では、待ちアクセス要求も個別管理するため、仕掛り数の個別管理を待ちアクセス要求にも適用できる。
【００２１】
又、本発明では、好ましくは、前記アクセス実行部は、前記仕掛り中の前記ホストＩ／Ｏ要求によるアクセス要求の第１のリストと、前記仕掛り中の前記内部Ｉ／Ｏ要求によるアクセス要求の第２のリストとを有し、前記アクセス要求を受けた時に、前記第１又は第２のリストを参照し、前記アクセス要求の優先度を判定し、優先度の高い前記アクセス要求を前記デイスク装置に発行する。この形態では、個別管理しつつ、Ｉ／Ｏ優先度制御が可能となる。
【００２２】
又、本発明では、好ましくは、前記アクセス実行部は、前記第１のリストと前記第２のリストとに、前記アクセス要求を、優先度順に格納する。これにより、Ｉ／Ｏ優先度判定が容易となり、Ｉ／Ｏ優先度制御を高速化できる。
【００２３】
又、本発明では、好ましくは、前記アクセス実行部は、前記アクセス要求を前記デイスク装置に発行したことに応じて、前記第１又は第２のカウンタをインクリメントし、前記デイスク装置からの前記アクセス要求に対する応答に対し、前記第１又は第２のカウンタをデクリメントする。これにより、正確に仕掛り数の制限を個別にできる。
【００２４】
又、本発明では、好ましくは、前記アクセス実行部は、前記アクセス要求を、前記デイスク装置を論理的に示すＲＬＵ単位で発行する。これにより、ＲＡＩＤ構成において、負荷管理が容易となる。
【００２５】
又、本発明では、好ましくは、前記アクセス実行部は、前記アクセス要求を所定数発行する毎に、リビルド又はコピーバックの少なくとも一方のアクセス要求を発行する。これにより、ホストＩ／Ｏのレスポンスを維持しつつ、リビルド／コピーバックの終了時間を保証できる。
【００２６】
又、本発明では、好ましくは、前記アクセス実行部は、前記両仕掛り数がゼロである時に、前記リビルド又はコピーバックの少なくとも一方のアクセス要求を発行する。これにより、一層、ホストＩ／Ｏのレスポンスを維持しつつ、リビルド／コピーバックの終了時間を保証できる。
【００２７】
更に、本発明では、好ましくは、前記アクセス実行部は、前記リビルド又はコピーバックの少なくとも一方のアクセス要求を、前記アクセス要求を所定数発行していない時に、待ちキューに待たせる。これにより、リビルド／コピーバックのスケジュールを変更せず、ホストＩ／Ｏのレスポンスを維持しつつ、リビルド／コピーバックの終了時間を保証できる。
【００２８】
更に、本発明では、好ましくは、前記コマンド処理部は、所定のスケジュールに従う、前記内部Ｉ／Ｏ要求であるライトバック要求処理を行うとともに、前記ライトバック要求処理英は、前記アクセス実行部から前記デイスク装置を論理的に示すＲＬＵ単位の負荷状況を受け、前記内部Ｉ／Ｏ要求の負荷の少ないＲＬＵを優先してライトバック要求を発行する。
【００２９】
更に、本発明では、好ましくは、前記アクセス実行部は、対象とするＲＬＵに対する内部Ｉ／Ｏの待ち数が小さい時に、前記負荷が比較的軽いと判定し、前記ライトバック要求処理に前記対象ＲＬＵのライトバック要求発行を許可する。
【００３０】
更に、本発明では、好ましくは、前記アクセス実行部は、対象とするＲＬＵに対する内部Ｉ／Ｏの待ち数が大きい時に、前記アクセス実行部でのライトバック要求数と、前記内部Ｉ／Ｏの仕掛り数の上限値を基準としたライトバック許容値との比較結果から、前記ＲＬＵの負荷状況を判定する。
【発明の効果】
【００３１】
以上、説明したように、本発明によれば、ホストＩ／Ｏ（ホストリード）と、内部Ｉ／Ｏ（プリフェッチ、ライトバック）とを個別に負荷管理するので、仮想デイスク（ＲＬＵ）２への処理要求の発行数を個別に制限でき、ホストＩ／Ｏを優先して、ホストＩ／Ｏと内部Ｉ／Ｏとの負荷バランスを制御できる。
【００３２】
又に、リビルド／コピーバックについては、専用の負荷制御機構を設け、通常Ｉ／Ｏとリビルド／コピーバック間での負荷調整を行うため、ある程度のホストＩ／Ｏのレスポンスを維持しながら、リビルド／コピーバックの終了時間を保証できる。
【００３３】
更に、ライトバックを、負荷の軽いＲＬＵに優先して行うので、デイスク装置を有効利用でき、且つ早期に必要なキャッシュ領域を開放できる。
【発明を実施するための最良の形態】
【００３４】
以下、本発明の実施の形態を、ストレージシステム、動的負荷制御の第１の実施の形態、動的負荷制御の第２の実施の形態、動的負荷制御を利用したライトバックスケジュール制御、他の実施の形態の順で説明する。
【００３５】
［ストレージシステム］
図１は、本発明の一実施の形態のストレージシステムの構成図であり、磁気デイスクを使用したＲＡＩＤ（Redundant Arrays of Inexpensive Disk)システムを示す。図１に示すように、ストレージシステムは、磁気デイスクコントローラ（以下、コントローラという）１と、このコントローラ１にＦＣ＿ＡＬ（Fiber Channel  Arbitrated  Loop）４で接続されたデバイスエンクロージャー２とからなる。
【００３６】
このデバイスエンクロージャー２は、複数台の磁気デイスク装置（ストレージ装置）２０〜２Ｐを内蔵する。各磁気デイスク装置２０〜２Ｐは、一対のＦＣ＿ＡＬ４に接続される。
【００３７】
コントローラ１は、直接又はネットワーク機器を介し、クライアントやサーバー等のホスト３に接続され、ホスト３の大量のデータを、ＲＡＩＤデイスクドライブ（磁気デイスク装置）へ高速かつ、ランダムに読み書きが出来るシステムである。
【００３８】
コントローラ１は、ＣＡ（Channel Adapter)１０と、ＣＭ（Centralized Module)１２，１４と、ＤＡ（Device Adapter)１６のファンクションモジュールによって構成されている。
【００３９】
ＣＡ（Channel Adapter）１０は、ホストを結ぶホスト・インタフェースの制御をつかさどる回路であり、例えば、ファイバーチャネル回路（ＦＣ）やＤＭＡ（Direct Memory Access）回路等で構成される。ＤＡ（Device Adapter）１６は、デイスクデバイス（磁気デイスク装置）２０〜２Ｐを制御するため、デイスクデバイスとコマンド、データのやり取りを行う回路であり、例えば、ファイバーチャネル回路（ＦＣ）やＤＭＡ回路等で構成される。
【００４０】
ＣＭ（Centralized Module）は、ＣＰＵ１２と、メモリー（ＲＡＭ）１４と、図示しないプログラムメモリとを有する。メモリー１４は、バッテリーでバックアップされ、その一部が、キャッシュメモリ１８として使用される。
【００４１】
ＣＰＵ１２が実行する制御モジュールは、ＣＡ１０をドライブするＣＭ−ＣＡドライバ３０と、ストレージ装置へのアクセスが必要かを判定するフロントエンド処理モジュール３２と、ストレージ装置へのアクセスの処理を行うバックエンド処理モジュール３６と、ＤＡ４０をドライブするＣＭ−ＤＡドライバ４０と、システム制御を行うシステム制御モジュール３８とからなる。
【００４２】
フロントエンド処理モジュール３２は、リソース管理を行うリソースモジュール（図示せず）と、キャッシュメモリ１８の参照、リード、プリフェッチ、ライトバックを行うキャッシュ制御モジュール３４を有する。
【００４３】
バックエンド処理モジュール３６に対する負荷は、ホストＩ／Ｏによるものと、ホストＩ／Ｏに付随する内部Ｉ／Ｏと、ホストＩ／Ｏに付随しない内部Ｉ／Ｏとがある。ホスト３からのＩ／Ｏコマンドに付随するものとしては、ライトコマンド実行後のライトバック（キャッシュからのライトバック）のコマンド、プリフェッチ（リードされたデータの近辺のデータを前もってステージングする）のコマンドである。ホストＩ／Ｏに付随しない内部コマンドとしては、システム制御モジュール３８からの再構築やコピーバックによるコマンドがある。
【００４４】
本発明では、バックエンド処理モジュール３６において、これらのＩ／Ｏ要求をバランス制御するＤＴＣモジュール（図２にて、後述する）を設けている。
【００４５】
この構成の基本的動作を説明する。キャッシュメモリ１８は、各々、担当するデイスク装置（ＲＬＵ単位）のデータの一部を格納し、ホストからのライトデータや、プリフェッチされたデータを格納する。ＣＰＵ１２は、ＣＡ１０を介しホストからのリード要求を受けて、キャッシュメモリ１８を参照し、物理デイスクへのアクセスが必要かを判定し、必要であれば、デイスクアクセス要求をＤＡ１６に要求する。又、ＣＰＵ１２は、ホストからのライト要求を受けて、ライトデータをキャッシュメモリ１８に書込み、且つ内部でスケジュールされるライトバック等をＤＡ１６に要求する。
【００４６】
［動的負荷制御の第１の実施の形態］
図２は、本発明の動的負荷制御機構（ＤＴＣ）の第１の実施の形態の機能ブロック図、図３は、そのＡＣＢの説明図、図４は、動的負荷制御機構の説明図、図５は、バックエンド処理でのＩ／Ｏ種別の説明図である。
【００４７】
図５に示すように、本発明では、バックエンドモジュール３６に要求するＩ／Ｏ種別を、ホストＩ／Ｏと、内部Ｉ／Ｏに分類する。ホストＩ／Ｏは、ホストＩ／Ｏと同期するバックエンド処理であり、ホストのリード要求、ライトスルーモード時のライト要求が相当する。内部Ｉ／Ｏは、内部スケジュールのバックエンド処理であり、プリフェッチ、ライトバック等が相当する。
【００４８】
図２に示すように、フロントエンドモジュール３２のキャッシュ制御モジュール３４で、ホストのリード要求がミスヒット（対象データがキャッシュメモリ１８に存在しない）と判断した場合や、内部スケジュールで、リード要求に伴うプリフェッチ、ライト要求に伴うライトバックが発生した場合に、フロントエンドモジュール３２は、バックエンドへの起動許可を行い、バックエンドへ起動許可されたＩ／Ｏコマンドに対し、ＢＥ（ＢａｃｋＥｎｄ）−ＡＣＢ(Access Control Block)の獲得処理４２で、ＢＥ−ＡＣＢ（図３参照）が獲得され、バックエンドモジュール３６へのアクセスが可能となる。
【００４９】
図３に示すように、このＡＣＢは、優先度とＩ／Ｏ要求内容からなり、ホストリードに常に優先度が付され、リード以外の内部Ｉ／Ｏは、低優先度とする。このホスト３は、リード要求に、ホストリードの優先度を付する。又、内部Ｉ／Ｏも内部Ｉ／Ｏ間での優先度を付する。
【００５０】
バックエンドモジュール３６では、Ｉ／Ｏコマンドの要求内容の解釈処理５０を行い、この解釈（ホストリードかそれ以外かのＩ／Ｏ種別等）に従い、制御用の各資源の獲得処理５２が行われる。資源獲得処理５２は、内部バッファ領域（Extent）等を獲得し、排他権を設定する。
【００５１】
この資源獲得後、ＤＴＣ（動的負荷制御）処理５４で、負荷制御をＲＬＵ単位で行う。ＤＴＣ５４は、ホストＩ／Ｏの待ちキュー６３と、内部Ｉ／Ｏの待ちキュー６４と、ホストＩ／Ｏの仕掛りリスト６５と、そのリストの仕掛りＩ／Ｏ数をカウントするホストＩ／Ｏカウンタ６７と、内部Ｉ／Ｏの仕掛りリスト６６と、その仕掛りＩ／Ｏ数をカウントする内部Ｉ／Ｏカウンタ６８とを有する。
【００５２】
待ちキュー６３、６４は、デイスク装置（ＲＬＵ単位）へのＩ／Ｏ要求を待たせるためのキューであり、仕掛りリスト６５、６６は、デイスク装置（ＲＬＵ単位）へ発行し、処理が完了していないＩ／Ｏ要求のリストであり、カウンタ６７、６８は、デイスク装置（ＲＬＵ単位）へ発行し、処理が完了していないＩ／Ｏ要求数である。本発明では、図４に示すように、これらを、ホストＩ／Ｏと、内部Ｉ／Ｏとに個別に持ち、各々の発行個数を個別に管理する。
【００５３】
上位層からの要求処理６０は、図６で説明するように、上位層からのＩ／Ｏ要求が、ホストＩ／Ｏか内部Ｉ／Ｏかに応じて、優先度、仕掛り数カウンタ６７、６８を参照し、Ｉ／Ｏ要求の下位層への発行制御を行う。下位層からの要求処理６２は、図７で説明するように、下位層からの完了応答が、ホストＩ／Ｏか内部Ｉ／Ｏかに応じて、待ちキュー６３、６４を参照し、Ｉ／Ｏ要求の下位層への発行制御を行う。
【００５４】
バックエンドモジュール３６は、更に、ストライプ／冗長制御モジュール５６を有し、このモジュール５６は、ＲＬＵ単位のＩ／Ｏ要求を，デイスク単位のコマンドに分割し、Ｄｉｓｋ（デイスク）ドライバ４０−１／ＦＣ（ファイバーチャネル）ドライバ４０−２にデイスクコマンドを発行する。ドライバ４０からＤＡ１６に、デイスクコマンドが送信され、更に、ＦＣ＿ＡＬ４を通して、磁気デイスク装置２（２０〜２Ｐ）にデイスクコマンドが伝達される。これにより、磁気デイスク装置２（２０〜２Ｐ）は、このデイスクコマンドを実行する。このＤＡ１６は、磁気デイスク装置２にデイスクコマンドを発行する際に、ＤＴＣ５４で指定されたタグ（Head  of  QueueやSimple  Queue）を用いる。尚、Head  of  Queueは、デイスクでのリオーダリング対象とせずに、キューにつなぐ意味を持ち、Simple  Queueは、デイスクでのリオーダリングの対象となる。
【００５５】
図６は、図２の上位層からの要求処理フロー図である。
【００５６】
（Ｓ１０）上位層からＩ／Ｏ要求を受けると、そのＡＣＢの優先度と、そのＩ／Ｏ要求の種別（ホストＩ／Ｏ，内部Ｉ／Ｏ）の仕掛りリスト６５又は６６中のＡＣＢの最高優先度と比較する。
【００５７】
（Ｓ１２）Ｉ／Ｏ要求のＡＣＢの優先度が、そのＩ／Ｏ要求の種別（ホストＩ／Ｏ，内部Ｉ／Ｏ）の仕掛りリスト６５又は６６中のＡＣＢの最高優先度より高い場合には、ＡＣＢにHead  of  Queue（Queueの先頭）を付し、下位層（ここでは、ストライプ／冗長制御モジュール５６）に処理要求を発行する。更に、そのＩ／Ｏ種別の仕掛りリスト６５又は６６の先頭に、このＡＣＢをエンキューし、そのＩ／Ｏ種別の仕掛り数カウンタ６７又は６８の値をインクリメントする。そして、終了する。
【００５８】
（Ｓ１４）Ｉ／Ｏ要求のＡＣＢの優先度が、そのＩ／Ｏ要求の種別（ホストＩ／Ｏ，内部Ｉ／Ｏ）の仕掛りリスト６５又は６６中のＡＣＢの最高優先度以下の場合には、そのＩ／Ｏ種別の仕掛り数カウンタ６７又は６８の値が、上限値（ｎ又はｍ）であるかを判定する。
【００５９】
（Ｓ１６）上限値以下なら、ＡＣＢにSimple  Queue（特別でないQueue）を付し、下位層（ここでは、ストライプ／冗長制御モジュール５６）に処理要求を発行する。更に、そのＩ／Ｏ種別の仕掛りリスト６５又は６６の優先度の位置に、このＡＣＢをエンキューする。そして、終了する。
【００６０】
（Ｓ１８）上限値以上なら、ＡＣＢをそのＩ／Ｏ種別の待ちキュー６３又は６４の優先度の位置に、エンキューする。即ち、待ちキューにおいて、先頭のＡＣＢが、待ちとなっているホスト、内部のそれぞれのＩ／Ｏで最も高い優先度となるようにし、先頭ＡＣＢからデキューすることで、待ちを優先度順に解除する。これにより、Ｉ／Ｏ優先度制御する。そして、終了する。
【００６１】
次に、図７により、図２の下位層からの応答処理を説明する。
【００６２】
（Ｓ２０）下位層から処理完了は、そのＡＣＢとともに、通知される。処理完了のＡＣＢからＩ／Ｏ種別を判定し、判定されたＩ／Ｏ種別の仕掛りリスト（キュー）６５又は６６から処理完了したＡＣＢをデキューする。
【００６３】
（Ｓ２２）そして、そのＩ／Ｏ種別の待ちキュー６３又は６４を参照し、待ちキュー６３又は６４に待ちＡＣＢがない場合には、終了する。
【００６４】
（Ｓ２４）一方、待ちキュー６３又は６４に待ちＡＣＢがある場合には、そのＩ／Ｏ種別の待ちキュー６３又は６４の先頭ＡＣＢをデキューし、ＡＣＢにSimple Queueを設定し、下位層に処理要求する。そして、そのＩ／Ｏ種別の仕掛りリスト６５又は６６の優先度の位置に、このＡＣＢをエンキューし、そのＩ／Ｏ種別の仕掛り数カウンタ６７又は６８の値をインクリメントする。そして、終了する。
【００６５】
このように、ＤＴＣ６０が、ホストＩ／Ｏ（ホストリード）と、内部Ｉ／Ｏ（プリフェッチ、ライトバック）とを個別に負荷管理するので、図８に示すように、仮想デイスク（ＲＬＵ）２への処理要求の発行数を個別に制限できる。このため、ホストＩ／Ｏを優先して、ホストＩ／Ｏと内部Ｉ／Ｏとのバランスを制御できる。
【００６６】
具体的には、ホストＩ／Ｏは、最優先度が付されるため、ホストＩ／Ｏは、仮想デイスク２で優先的に処理され、且つホストＩ／Ｏは、仕掛り数を制限され、仮想デイスク２に発行される。一方、待ちキュー６３のホストＩ／Ｏの待ちがなくなると、内部Ｉ／Ｏの待ちキュー６４から内部Ｉ／Ｏから、仕掛り数を制限され、仮想デイスク２に発行される。
【００６７】
この間に、ホストＩ／Ｏが到来すると、ホストＩ／Ｏが仮想デイスク２に発行される。ホストＩ／Ｏは、最大で、内部Ｉ／Ｏの仕掛り数分しか待たされず、ホストＩ／Ｏのタイムアウトを防止して、内部Ｉ／Ｏを実行できる。又、デイスクデバイス２は、例えば、最大１６コマンドの待ちキューを持ち、連続処理ができるように、コマンドをリオーダリングするため、従来のように連続処理を意識したＩ／Ｏ要求の発行制御を行う必要がない。
【００６８】
又、リオーダリングにより、ホストＩ／Ｏが優先処理されれば、ホストＩ／Ｏの待ち時間は更に短縮できる。更に、ホストＩ／Ｏも仕掛り数の制限がなされるため、処理能力を越えた過剰なホストＩ／Ｏの発行を抑止でき、デイスクデバイスの能力を最大限引き出すことができる。
【００６９】
しかも、Ｉ／Ｏ種別毎に、待ちキューの検索を行うため、ＤＴＣのオーバーヘッドを削減でき、且つ仕掛りキュー、待ちキューも優先度順に格納するため、後続のＩ／Ｏ要求の優先度判定が簡単となり、高速な負荷バランス制御が可能となる。
【００７０】
［動的負荷制御の第２の実施の形態］
図９は、本発明の動的負荷制御機構（ＤＴＣ）の第２の実施の形態の機能ブロック図、図１０は、その上位層からの要求処理フロー図、図１１は、その下位層からの応答処理フロー図、図１２は、図１０及び図１１の再開判定処理フロー図、図１３は、図９のリビルド／コピーバック要求処理フロー図、図１４は、第２の実施の形態の動作説明図、図１５は、図９のリビルド動作の説明図、図１６は、コピーバック動作の説明図である。
【００７１】
図５に示すように、本発明では、バックエンドモジュール３６に要求するＩ／Ｏ種別を、ホストＩ／Ｏと、内部Ｉ／Ｏに分類する。ホストＩ／Ｏは、ホストＩ／Ｏと同期するバックエンド処理であり、ホストのリード要求、ライトスルーモード時のライト要求が相当する。内部Ｉ／Ｏは、内部スケジュールのバックエンド処理であり、プリフェッチ、ライトバック等が相当する。
【００７２】
この実施の形態は、図２以下で説明した第１の実施の形態に加え、リビルド／コピーバックの専用負荷制御機構を設けたものである。図１５に示すように、リビルド動作は、故障デイスクのデータを復元し、予備又は新デイスクに格納するものである。図１５は、ＲＡＩＤ５のリビルド動作を示し、故障デイスク＃０以外のデイスク＃１〜＃３のデータをキャッシュメモリに読出し、データのＸＯＲを取り、復元データを作成し、予備又は新デイスクＨＳに書き込む。
【００７３】
一方、コピーバック動作は、図１６に示すように、データをコピーデイスクにコピーするものである。即ち、図１６は、ＲＡＩＤ５のコピーバック動作を示し、デイスクＨＳのデータをキャッシュメモリに読み込み、新デイスクＮｅｗに書き込むものである。
【００７４】
この実施の形態では、リビルド／コピーバックの終了時間を保証しつつ、ホストＩ／Ｏのレスポンスを維持するものである。
【００７５】
図９に示すように、フロントエンドモジュール３２のキャッシュ制御モジュール３４で、ホストのリード要求がミスヒット（対象データがキャッシュメモリ１６に存在しない）と判断した場合や、内部スケジュールで、リード要求に伴うプリフェッチ、ライト要求に伴うライトバックが発生した場合や、システム制御モジュール３８のスケジュールでリビルド／コピーバックの要求が発生した場合に、フロントエンドモジュール３２は、バックエンドへの起動許可を行い、バックエンドへ起動許可されたＩ／Ｏコマンドに対し、ＢＥ（ＢａｃｋＥｎｄ）−ＡＣＢ(Access  Control  Block)の獲得処理４２で、ＢＥ−ＡＣＢ（図３参照）が獲得され、バックエンドモジュール３６へのアクセスが可能となる。
【００７６】
図３に示したように、このＡＣＢは、優先度とＩ／Ｏ要求内容からなり、ホストリードに常に優先度が付され、リード以外の内部Ｉ／Ｏは、低優先度とする。このホスト３は、リード要求に、ホストリードの優先度を付する。又、内部Ｉ／Ｏも内部Ｉ／Ｏ間での優先度を付する。
【００７７】
バックエンドモジュール３６では、Ｉ／Ｏコマンドの要求内容の解釈処理５０を行い、この解釈（ホストリードか内部Ｉ／Ｏかリビルド／コピーバックかのＩ／Ｏ種別等）に従い、制御用の各資源の獲得処理５２が行われる。資源獲得処理５２は、内部バッファ領域（Extent）等を獲得し、排他権を設定する。
【００７８】
この資源獲得後、ＤＴＣ（動的負荷制御）処理５４で負荷制御をＲＬＵ単位で行う。ＤＴＣ５４は、ホストＩ／Ｏの待ちキュー６３と、内部Ｉ／Ｏの待ちキュー６４と、ホストＩ／Ｏの仕掛りリスト６５と、そのリストの仕掛りＩ／Ｏ数をカウントするホストＩ／Ｏカウンタ６７と、内部Ｉ／Ｏの仕掛りリスト６６と、その仕掛りＩ／Ｏ数をカウントする内部Ｉ／Ｏカウンタ６８とを有する。更に、第２の実施の形態では、リビルド／コピーバックの待ちキュー７２を有する。
【００７９】
待ちキュー６３、６４，７２は、デイスク装置（ＲＬＵ単位）へのＩ／Ｏ要求を待たせるためのキューであり、仕掛りリスト６５、６６は、デイスク装置（ＲＬＵ単位）へ発行し、処理が完了していないＩ／Ｏ要求のリストであり、カウンタ６７、６８は、デイスク装置（ＲＬＵ単位）へ発行し、処理が完了していないＩ／Ｏ要求数である。本実施の形態でも、図４に示したように、これらを、ホストＩ／Ｏと、内部Ｉ／Ｏとに個別に持ち、各々の発行個数を個別に管理する。
【００８０】
上位層からの要求処理６０は、図１０で説明するように、上位層からのＩ／Ｏ要求が、ホストＩ／Ｏか内部Ｉ／Ｏかに応じて、優先度、仕掛り数カウンタ６７、６８を参照し、Ｉ／Ｏ要求の下位層への発行制御を行うとともに、リビルド／コピーバック再開判定処理７０（図１２にて後述）を行う。下位層からの要求処理６２は、図１１で説明するように、下位層からの完了応答が、ホストＩ／Ｏか内部Ｉ／Ｏかに応じて、待ちキュー６３、６４を参照し、Ｉ／Ｏ要求の下位層への発行制御を行うとともに、リビルド／コピーバック再開判定処理７０を行う。
【００８１】
又、Ｉ／Ｏ処理数カウンタ６９と、これを使用して、リビルド／コピーバック要求処理を行うモジュール７４（図１３にて後述）とが設けられている。
【００８２】
バックエンドモジュール３６は、更に、ストライプ／冗長制御モジュール５６を有し、このモジュール５６は、ＲＬＵ単位のＩ／Ｏ要求を，デイスク単位のコマンドに分割し、Ｄｉｓｋ（デイスク）ドライバ４０−１／ＦＣ（ファイバーチャネル）ドライバ４０−２にデイスクコマンドを発行する。ドライバ４０からＤＡ１６に、デイスクコマンドが送信され、更に、ＦＣ＿ＡＬ４を通して、磁気デイスク装置２（２０〜２Ｐ）にデイスクコマンドが伝達される。これにより、磁気デイスク装置２（２０〜２Ｐ）は、このデイスクコマンドを実行する。
【００８３】
図１０は、図９の上位層からの要求処理フロー図である。
【００８４】
（Ｓ３０）上位層からＩ／Ｏ要求を受けると、そのＡＣＢの優先度と、そのＩ／Ｏ要求の種別（ホストＩ／Ｏ，内部Ｉ／Ｏ）の仕掛りリスト６５又は６６中のＡＣＢの最高優先度と比較する。
【００８５】
（Ｓ３２）Ｉ／Ｏ要求のＡＣＢの優先度が、そのＩ／Ｏ要求の種別（ホストＩ／Ｏ，内部Ｉ／Ｏ）の仕掛りリスト６５又は６６中のＡＣＢの最高優先度より高い場合には、ＡＣＢにHead  of  Queue（Queueの先頭）を付し、下位層（ここでは、ストライプ／冗長制御モジュール５６）に処理要求を発行する。更に、そのＩ／Ｏ種別の仕掛りリスト６５又は６６の先頭に、このＡＣＢをエンキューし、そのＩ／Ｏ種別の仕掛り数カウンタ６７又は６８の値をインクリメントする。そして、ステップＳ４０に進む。
【００８６】
（Ｓ３４）Ｉ／Ｏ要求のＡＣＢの優先度が、そのＩ／Ｏ要求の種別（ホストＩ／Ｏ，内部Ｉ／Ｏ）の仕掛りリスト６５又は６６中のＡＣＢの最高優先度以下の場合には、そのＩ／Ｏ種別の仕掛り数カウンタ６７又は６８の値が、上限値（ｎ又はｍ）であるかを判定する。
【００８７】
（Ｓ３６）上限値以下なら、ＡＣＢにSimple  Queue（特別でないQueue）を付し、下位層（ここでは、ストライプ／冗長制御モジュール５６）に処理要求を発行する。更に、そのＩ／Ｏ種別の仕掛りリスト６５又は６６の優先度の位置に、このＡＣＢをエンキューする。そして、ステップＳ４０に進む。
【００８８】
（Ｓ３８）上限値以上なら、ＡＣＢをそのＩ／Ｏ種別の待ちキュー６３又は６４の優先度の位置に、エンキューする。即ち、待ちキューにおいて、先頭のＡＣＢが、待ちとなっているホスト、内部のそれぞれのＩ／Ｏで最も高い優先度となるようにし、先頭ＡＣＢからデキューすることで、待ちを優先度順に解除する。これにより、Ｉ／Ｏ優先度制御する。そして、終了する。
【００８９】
（Ｓ４０）図１２のリビルド／コピーバック再開判定処理を行い、終了する。
【００９０】
次に、図１２により、リビルド／コピーバック再開判定処理を説明する。
【００９１】
（Ｓ５０）通常Ｉ／Ｏ（ホスト／内部Ｉ／Ｏ）の処理数（ＤＡ１６に発行したＩ／Ｏ要求数）をカウントするカウンタ６９の処理数を「１」デクリメントする。
【００９２】
（Ｓ５２）リビルド／コピーバックの待ちキュー７２を参照し、リビルド／コピーバックの待ちがあるかを判定する。リビルド／コピーバックの待ちが無い場合には、再開判定処理を終了する。
【００９３】
（Ｓ５４）カウンタ６９の通常Ｉ／Ｏ処理数が「０」であるかを判定する。「０」でない場合には、再開判定処理を終了する。
【００９４】
（Ｓ５６）カウンタ６９の通常Ｉ／Ｏ処理数が「０」である場合には、所定数の通常Ｉ／Ｏ処理を行ったため、リビルド／コピーバックの待ちキュー７２の先頭のリビルド／コピーバックを下位層へ要求し、カウンタ６９の通常Ｉ／Ｏ処理数を所定のＩ／Ｏ比（例えば、４５）に初期化し、再開判定処理を終了する。
【００９５】
次に、図１１により、図９の下位層からの応答処理を説明する。
【００９６】
（Ｓ６０）下位層から処理完了は、そのＡＣＢとともに、通知される。処理完了のＡＣＢからＩ／Ｏ種別を判定し、判定されたＩ／Ｏ種別の仕掛りリスト（キュー）６５又は６６から処理完了したＡＣＢをデキューする。
【００９７】
（Ｓ６２）そして、そのＩ／Ｏ種別の待ちキュー６３又は６４を参照し、待ちキュー６３又は６４に待ちＡＣＢがない場合には、ステップＳ６６に進む。
【００９８】
（Ｓ６４）一方、待ちキュー６３又は６４に待ちＡＣＢがある場合には、そのＩ／Ｏ種別の待ちキュー６３又は６４の先頭ＡＣＢをデキューし、ＡＣＢにSimple Queueを設定し、下位層に処理要求する。そして、そのＩ／Ｏ種別の仕掛りリスト６５又は６６の優先度の位置に、このＡＣＢをエンキューし、そのＩ／Ｏ種別の仕掛り数カウンタ６７又は６８の値をインクリメントする。そして、図１２のリビルド／コピーバック再開判定処理を行い、終了する。
【００９９】
（Ｓ６６）待ちキュー６３又は６４に待ちＡＣＢが無い場合には、仕掛り数カウンタ６７及び６８を参照し、ホスト／インターナルとも、仕掛り数が「０」であるかを判定する。ホスト／インターナルの少なくとも一方の仕掛り数がゼロでない場合には、終了する。
【０１００】
（Ｓ６８）ホスト／インターナルの仕掛り数が「０」であれば、待ちキュー７２のリビルド／コピーバックを全て下位層に要求する。そして、カウンタ６９の通常Ｉ／Ｏ処理数を所定のＩ／Ｏ比（例えば、４５）に初期化し、処理を終了する。
【０１０１】
次に、図１３により、リビルド／コピーバック要求処理７４を説明する。
【０１０２】
（Ｓ７０）システム制御モジュール３８（図１参照）からリビルド／コピーバックのＩ／Ｏ要求を受けると、仕掛り数カウンタ６７及び６８を参照し、ホスト／インターナルとも、仕掛り数が「０」であるかを判定する。ホスト／インターナルの両方の仕掛り数がゼロである場合には、ステップＳ７４に進む。
【０１０３】
（Ｓ７２）ホスト／インターナルの仕掛り数の少なくとも一方が「０」でなければ、カウンタ６９の通常Ｉ／Ｏ処理数が「０」であるかを判定する。通常Ｉ／Ｏ処理数が「０」でなければ、リビルド／コピーバックの待ちキュー７２にエンキューし、処理を終了する。
【０１０４】
（Ｓ７４）ホスト／インターナルの仕掛り数が「０」である場合や通常Ｉ／Ｏ処理数が「０」であれば、要求されたリビルド／コピーバックを下位層に要求する。そして、カウンタ６９の通常Ｉ／Ｏ処理数を所定のＩ／Ｏ比（例えば、４５）に初期化し、処理を終了する。
【０１０５】
このように、ＤＴＣ６０が、ホストＩ／Ｏ（ホストリード）と、内部Ｉ／Ｏ（プリフェッチ、ライトバック）とを個別に負荷管理するので、図１４に示すように、仮想デイスク（ＲＬＵ）２への処理要求の発行数を個別に制限できる。このため、ホストＩ／Ｏを優先して、ホストＩ／Ｏと内部Ｉ／Ｏとのバランスを制御できる。
【０１０６】
具体的には、ホストＩ／Ｏは、最優先度が付されるため、ホストＩ／Ｏは、仮想デイスク２で優先的に処理され、且つホストＩ／Ｏは、仕掛り数を制限され、仮想デイスク２に発行される。一方、待ちキュー６３のホストＩ／Ｏの待ちがなくなると、内部Ｉ／Ｏの待ちキュー６４から内部Ｉ／Ｏから、仕掛り数を制限され、仮想デイスク２に発行される。
【０１０７】
この間に、ホストＩ／Ｏが到来すると、ホストＩ／Ｏが仮想デイスク２に発行される。ホストＩ／Ｏは、最大で、内部Ｉ／Ｏの仕掛り数分しか待たされず、ホストＩ／Ｏのタイムアウトを防止して、内部Ｉ／Ｏを実行できる。又、デイスクデバイス２は、例えば、最大１６コマンドの待ちキューを持ち、連続処理ができるように、コマンドをリオーダリングするため、従来のように連続処理を意識したＩ／Ｏ要求の発行制御を行う必要がない。
【０１０８】
又、リオーダリングにより、ホストＩ／Ｏが優先処理されれば、ホストＩ／Ｏの待ち時間は更に短縮できる。更に、ホストＩ／Ｏも仕掛り数の制限がなされるため、処理能力を越えた過剰なホストＩ／Ｏの発行を抑止でき、デイスクデバイスの能力を最大限引き出すことができる。
【０１０９】
しかも、Ｉ／Ｏ種別毎に、待ちキューの検索を行うため、ＤＴＣのオーバーヘッドを削減でき、且つ仕掛りキュー、待ちキューも優先度順に格納するため、後続のＩ／Ｏ要求の優先度判定が簡単となり、高速な負荷バランス制御が可能となる。
【０１１０】
又、リビルド／コピーバックについては、専用の負荷制御機構を設け、ホスト／インターナルＩ／Ｏの仕掛り数が「０」の場合に、リビルド／コピーバックのＩ／Ｏ要求を下位層に発行し、且つ通常Ｉ／Ｏ処理数がＩ／Ｏ比に到達する毎に、リビルド／コピーバックのＩ／Ｏ処理を発行する。
【０１１１】
このため、通常Ｉ／Ｏとリビルド／コピーバック間での負荷調整が可能となり、且つある程度のホストＩ／Ｏのレスポンスを維持しながら、リビルド／コピーバックの終了時間を保証できる。
【０１１２】
このＩ／Ｏ比は、調整可能であり、Ｉ／Ｏ比を大きく（例えば、４５）とると、ホスト性能重視の性能に、Ｉ／Ｏ比を小さく（例えば、１５）とすると、リビルド完了時間重視の性能に変更できる。
【０１１３】
［動的負荷処理制御を前提としたキャッシュバックスケジュール処理］
次に、ホストＩ／Ｏと内部Ｉ／Ｏとを個別に処理数を管理する前述の動的負荷管理において、内部Ｉ／Ｏを効率的に実行制御するためのキャッシュバックスケジューリング制御を説明する。
【０１１４】
図１７は、本発明の第３の実施の形態の動的負荷管理制御のシステム構成図、図１８は、本発明の第３の実施の形態の動的負荷制御機構の機能ブロック図、図１９は、図１８のライトバックモジュールの処理フロー図、図２０は、図１８の負荷確認処理モジュールの処理フロー図、図２１は、図１８のプリフェッチモジュールの処理フロー図、図２２及び図２３は、図１８の構成の動作説明図である。
【０１１５】
前述の図２乃至図８の動的負荷制御は、ＲＬＵ単位に行うことを説明した。図１７に示すように、２つの仮想デイスク（ＲＬＵ）２−１、２−２を、１つのコントローラ１（図１参照）が担当する場合には、ＤＴＣ６０が、各ＲＬＵ２−１、２−１に、ホストＩ／Ｏ（ホストリード）と、内部Ｉ／Ｏ（プリフェッチ、ライトバック）とを個別に負荷管理する。即ち、仮想デイスク（ＲＬＵ）２−１、２−２への処理要求の発行数を個別に制限する。
【０１１６】
具体的には、ホストＩ／Ｏは、最優先度が付されるため、ホストＩ／Ｏは、仮想デイスク２−１、２−２で優先的に処理され、且つホストＩ／Ｏは、仕掛り数を制限され、仮想デイスク２−１、２−２に発行される。一方、待ちキュー６３−１、６３−２のホストＩ／Ｏの待ちがなくなると、内部Ｉ／Ｏの待ちキュー６４−１、６４−２から内部Ｉ／Ｏが、仕掛り数を制限され、仮想デイスク２−１、２−２に各々、発行される。
【０１１７】
この間に、ホストＩ／Ｏが到来すると、ホストＩ／Ｏが仮想デイスク２−１、２−２に発行される。ホストＩ／Ｏは、最大で、内部Ｉ／Ｏの仕掛り数分しか待たされず、ホストＩ／Ｏのタイムアウトを防止して、内部Ｉ／Ｏを実行できる。
【０１１８】
このような負荷制御を行う構成において、内部Ｉ／Ｏであるライトバック処理は、ホストＩ／Ｏが一定時間途切れた時に、所定のスケジュールに従い、実行され、通常、キャッシュメモリ１８（図１参照）の必要性の低い（例えば、最も古く使用された）領域を対象として、実行される。
【０１１９】
この場合に、実際のキャッシュ領域は、仮想デイスク(ＲＬＵ)上のあるＬＢＡ（論理ブロックアドレス）の範囲を割り当てて運用される。ライトバックによってダーテイデータ（必要性の低い、例えば、最も古く使用されたデータ）をデイスクに書き戻すことで、キャッシュ領域の割り当てを開放して、別な仮想デイスク(ＲＬＵ)上のＬＢＡの範囲に対して割り当てることが可能となる。
【０１２０】
前述の内部Ｉ／ＯとホストＩ／Ｏを個別に管理する方法では、複数の仮想デイスクに、キャッシュ領域を割り当てる場合に、効率的に、キャッシュ領域を開放するライトバック処理が望ましい。
【０１２１】
図１８は、かかる効率的なライトバック制御を行うためのフロントエンド及びバックエンドモジュールの機能ブロック図であり、図２に示したものと同一のものは、同一の記号で示してある。
【０１２２】
即ち、フロントエンドモジュール３２のキャッシュ制御モジュール３４は、ホストのリード要求がミスヒット（対象データがキャッシュメモリ１８に存在しない）か否かを判断するモジュール３４−１と、内部スケジュールで、リード要求に伴うプリフェッチを要求するモジュール３４−３と、ライト要求にキャッシュメモリに書き込まれたデータや最も古いデータ等のダーテイデータを、キャッシュメモリからデイスクに書き戻すライトバックモジュール３４−２を有する。
【０１２３】
このモジュールの要求により、フロントエンドモジュール３２は、バックエンドへの起動許可を行い、バックエンドへ起動許可されたＩ／Ｏコマンドに対し、ＢＥ（ＢａｃｋＥｎｄ）−ＡＣＢ(Access Control Block)の獲得処理４２で、ＢＥ−ＡＣＢ（図３参照）が獲得され、バックエンドモジュール３６へのアクセスが可能となる。
【０１２４】
バックエンドモジュール３６では、Ｉ／Ｏコマンドの要求内容の解釈処理５０を行い、この解釈（ホストリードかそれ以外かのＩ／Ｏ種別等）に従い、制御用の各資源の獲得処理５２が行われる。資源獲得処理５２は、内部バッファ領域（Extent）等を獲得し、排他権を設定する。
【０１２５】
この資源獲得後、ＤＴＣ（動的負荷制御）処理５４で、負荷制御をＲＬＵ単位で行う。図１７で示したように、ＤＴＣ５４は、ＲＬＵ毎に、ホストＩ／Ｏの待ちキュー６３と、内部Ｉ／Ｏの待ちキュー６４と、ホストＩ／Ｏの仕掛りリスト６５と、そのリストの仕掛りＩ／Ｏ数をカウントするホストＩ／Ｏカウンタ６７と、内部Ｉ／Ｏの仕掛りリスト６６と、その仕掛りＩ／Ｏ数をカウントする内部Ｉ／Ｏカウンタ６８とを有する。
【０１２６】
待ちキュー６３、６４は、デイスク装置（ＲＬＵ単位）へのＩ／Ｏ要求を待たせるためのキューであり、仕掛りリスト６５、６６は、デイスク装置（ＲＬＵ単位）へ発行し、処理が完了していないＩ／Ｏ要求のリストであり、カウンタ６７、６８は、デイスク装置（ＲＬＵ単位）へ発行し、処理が完了していないＩ／Ｏ要求数である。ホストＩ／Ｏと、内部Ｉ／Ｏとに個別に持ち、各々の発行個数を個別に管理する。
【０１２７】
上位層からの要求処理６０は、図６で説明したように、上位層からのＩ／Ｏ要求が、ホストＩ／Ｏか内部Ｉ／Ｏかに応じて、優先度、仕掛り数カウンタ６７、６８を参照し、Ｉ／Ｏ要求の下位層への発行制御を行う。下位層からの要求処理６２は、図７で説明したように、下位層からの完了応答が、ホストＩ／Ｏか内部Ｉ／Ｏかに応じて、待ちキュー６３、６４を参照し、Ｉ／Ｏ要求の下位層への発行制御を行う。
【０１２８】
バックエンドモジュール３６は、更に、ストライプ／冗長制御モジュール５６を有し、このモジュール５６は、ＲＬＵ単位のＩ／Ｏ要求を，デイスク単位のコマンドに分割し、Ｄｉｓｋ（デイスク）ドライバ４０−１／ＦＣ（ファイバーチャネル）ドライバ４０−２にデイスクコマンドを発行する。ドライバ４０からＤＡ１６に、デイスクコマンドが送信され、更に、ＦＣ＿ＡＬ４を通して、磁気デイスク装置２（２０〜２Ｐ）にデイスクコマンドが伝達される。これにより、磁気デイスク装置２（２０〜２Ｐ）は、このデイスクコマンドを実行する。
【０１２９】
このＤＡ１６は、磁気デイスク装置２にデイスクコマンドを発行する際に、ＤＴＣ５４で指定されたタグ（Head  of  QueueやSimple  Queue）を用いる。尚、Head  of  Queueは、デイスクでのリオーダリング対象とせずに、キューにつなぐ意味を持ち、Simple  Queueは、デイスクでのリオーダリングの対象となる。
【０１３０】
このライトバック処理を効率的に行うため、ある仮想デイスク（ＲＬＵ）について、その内部Ｉ／Ｏの負荷状態を確認して，free状態あるいはbusy状態を判別する処理モジュール８０を設ける。本処理を以降で負荷確認処理と呼ぶ。
【０１３１】
又、キャッシュ制御３４のライトバックモジュール３４−２には、ライトバックをバックエンドモジュール３６に要求する前に、上記の負荷確認処理８０を呼び出して、freeであればライトバックを、バックエンドモジュール３６に要求し、busyであれば、対象となった仮想デイスク（ＲＬＵ）へのライトバックを保留し、別の仮想デイスク（ＲＬＵ）についてライトバックすべきキャッシュデータ(ダーテイデータ)が残っているかどうかを検索するという機能を追加する。
【０１３２】
具体的に、図１９乃至図２３を用いて、説明する。先ず、図１９は、キャッシュ制御３４のライトバックスケジュール処理フロー図である。
【０１３３】
（Ｓ８０）内部スケジュールに従い、ライトバックモジュール３４−２が起動されると、先ず、キャッシュメモリ（領域）１８のデータについて、ダーテイデータ（ライトバックすべきデータ、例えば、古いデータ）があるかをデータキューから判定する。ダーテイデータが、キャッシュメモリ（領域）にない場合には、終了する。
【０１３４】
（Ｓ８２）ある仮想デイスク（ＲＬＵ）のダーテイデータがある場合には、そのＲＬＵについて、データ負荷確認処理８０を呼び出す。そして、図２０で説明するように、そのＲＬＵについて、その内部Ｉ／Ｏの負荷状態を確認して，フリー状態あるいはビジー状態かを判別する処理を行わせる。
【０１３５】
（Ｓ８４）フリー状態であれば、バックエンドモジュール３６に、ライトバックを要求し、終了する。
【０１３６】
（Ｓ８６）一方、ビジー状態であれば、対象となった仮想デイスク（ＲＬＵ）へのライトバックを保留し、別の仮想デイスク（ＲＬＵ）についてライトバックすべきキャッシュデータ(ダーテイデータ)が残っているかどうかを検索する。そして、ステップＳ８０に戻る。
【０１３７】
次に、図２０により、負荷確認処理８０を説明する。
【０１３８】
（Ｓ９０）対象となる仮想デイスク（ＲＬＵ）について、ＤＴＣ５４の内部Ｉ／Ｏの待ちキュー６４の待ち数を確認して、待ちがなかったら（＝０）であれば、フリー状態と判断する。
【０１３９】
（Ｓ９２）一方、そのＲＬＵの内部Ｉ／Ｏの待ちキュー６４に、待ちがあったら（待ち数が「０」でない）、次の条件について判断する。対象となる仮想ディスク(ＲＬＵ)について、バックエンド以降での処理中ライトバック数(即ち、内部Ｉ／Ｏの待ちキュー６４内のライトバックの待ち数＋内部Ｉ／Ｏの仕掛りリスト６６のライトバックの仕掛り数）ａを求める。次に、内部Ｉ／Ｏの仕掛りＩ／Ｏ数の上限値（図４の「ｍ」）に、ある比率(以降、ライトバック許容比率と記述)を掛けた値ｂを求める。
【０１４０】
（Ｓ９４）ステップＳ９２の「ａ」と「ｂ」とを比較して、処理中ライトバック数ａが、ライトバック許容値ｂと同じか多ければ，ビジー状態と、そうでなければフリー状態と判断する。尚、ライトバック許容比率は、０％よりも大きい値（１００％を超えても構わない）を取り得る。
【０１４１】
この処理の動作を説明する。前述のように、キャッシュ領域は、仮想デイスク（ＲＬＵ）上のあるＬＢＡの範囲を割り当てて、運用されるので、ライトバックによってダーテイデータをデイスクに書き戻すことで、キャッシュ領域の割り当てを開放して、別な仮想デイスク（ＲＬＵ）上のＬＢＡの範囲に対して割り当てることが可能となる。
【０１４２】
そのため、内部Ｉ／Ｏの負荷の高い仮想デイスク（ＲＬＵ）よりも、内部Ｉ／Ｏの負荷の低い仮想デイスク（ＲＬＵ）に優先して，ライトバックを行った方が、デイスクの使用効率が良くなり、又、より早くキャッシュ領域を開放できる。これを実現するため負荷確認処理として、上述のステップＳ９０の対象仮想デイスクの待ち数の条件判断１を行う。
【０１４３】
また、この機能を実現させるための要件として、プリフェッチモジュール３４−３のプリフェッチ要求は、ホストリード性能に関わるため、バックエンドモジュール３６への処理要求を待たせてはならないということがある。一方、ライトバックのスケジュールは一定時間おきに行われるため、本機能によってライトバックを保留させても、後で再度スケジュールされる。
【０１４４】
ここで、上述のステップＳ９０の条件だけでは、プリフェッチの数が多いと、負荷確認処理８０が，慢性的にビジー状態と判別するため，ライトバック要求がバックエンド処理３６に要求されにくくなる。このようなプリフェッチの数が多くても、ライトバックを要求できるように、即ち前述の現象を回避するために、負荷確認処理として、上述のステップＳ９２，９４の条件判断２を行う。
【０１４５】
尚、図２１でプリフェッチモジュールの処理を説明する。
【０１４６】
（Ｓ１００）先ず、対象となる仮想デイスク（ＲＬＵ）のプリフェッチが必要かを判定する。プリフェッチが必要でない場合には、終了する。
【０１４７】
（Ｓ１０２）対象仮想デイスク（ＲＬＵ）のプリフェッチが必要であれば、そのＲＬＵについて、図６で説明した仕掛り数の判定条件により、プリフェッチの要求が可能かを判定する。
【０１４８】
（Ｓ１０４）フリー状態（プリフェッチ可能）であれば、バックエンドモジュール３６に、ライトバックを要求し、終了する。
【０１４９】
（Ｓ１０６）一方、ビジー状態（プリフェッチ否）であれば、対象となった仮想デイスク（ＲＬＵ）へのプリフェッチを保留し、別の仮想デイスク（ＲＬＵ）についてプリフェッチが必要かを判定する。そして、ステップＳ１００に戻る。
【０１５０】
図２２、図２３により、前述のライトバック制御を説明する。図２２に示すように、内部Ｉ／Ｏの仕掛り上限値が「２４」であり、ライトバック許容比率が７５％である場合を想定すると、判定条件２のライトバック要求許容数は、ｂ＝「１８」となる。
【０１５１】
条件判定１で、ある仮想デイスク（ＲＬＵ）に対して、ライトバックのみでバックエンド３６に、制限値である２４のＩ／Ｏ処理要求があった場合には、２４Ｉ／Ｏ全てがバックエンド以降で処理中となり、この状態での負荷確認処理は、ビジー状態と判断し、上記ライトバックのいずれかが完了するまでの間、ビジー状態と判断する。
【０１５２】
又、ある仮想デイスク（ＲＬＵ）に対して、プリフェッチのみで，バックエンド３６へ制限値である２４個のＩ／Ｏの処理要求があった場合には、２４Ｉ／Ｏ全てがバックエンド３６以降で処理中となり、この状態での負荷確認処理は、判定条件２でフリー状態と判断する。
【０１５３】
更に、プリフェッチがバックエンド以降で処理中であっても、あと１８個のＩ／Ｏ(制限値２４の７５％)のライトバックを、バックエンド３６が受け付けるまでフリー状態と判断する。そして、１８個のライトバックをバックエンド３６で受け付けたら、ビジー状態となる。
【０１５４】
そして、図２３に示すように、ある仮想デイスク（ＲＬＵ）で、フリー状態で、ライトバックを順次発行し、ビジー状態となると、他の仮想デイスク（ＲＬＵ）のライトバックに移行する。このため、Ｉ／Ｏ要求の待ちの多い、即ち、内部Ｉ／Ｏの負荷の高い仮想デイスク（ＲＬＵ）よりも、Ｉ／Ｏ要求の少ない、即ち、内部Ｉ／Ｏの負荷の低い仮想デイスク（ＲＬＵ）に優先して，ライトバックを行って、デイスクの使用効率を向上し、又、より早くキャッシュ領域を開放できる。
【０１５５】
又、内部Ｉ／Ｏの発行数の制限を考慮して、内部Ｉ／Ｏであるライトバックのバックエンドでの処理数を、内部Ｉ／Ｏの仕掛り数の上限値を基準として、許容するため、プリフェッチが多発しても、ライトバックの発行を保留される事態を防止でき、早期にキャッシュ領域を開放し、ホストのデータライト、プリフェッチの領域を確保し易くできる。
【０１５６】
［他の実施の形態］
前述の実施の形態では、図１のような冗長構成のＲＡＩＤで説明したが、これ以外の冗長構成のストレージシステムに適用できる。又、物理デイスクは、磁気デイスク、光デイスク、光磁気デイスク、各種のストレージデバイスを適用できる。
【０１５７】
又、内部Ｉ／Ｏとして、ホストＩ／Ｏのバックグラウンドで、順次コピーするワンポイントコピー等を適用しても良い。
【０１５８】
更に、図１８の実施の形態において、プリフェッチ３４−３の発行要求を、ライトバックと同様に、負荷確認処理８０を利用して、制御することもできる。
【０１５９】
以上、本発明を実施の形態により説明したが、本発明の趣旨の範囲内において、本発明は、種々の変形が可能であり、本発明の範囲からこれらを排除するものではない。
【０１６０】
（付記１）ホストから依頼されたＩ／Ｏ要求と内部で発生したＩ／Ｏ要求とに応じて、接続されたデイスク装置をアクセスし、Ｉ／Ｏ要求を実行するストレージシステムにおいて、前記Ｉ／Ｏ要求に応じたコマンド処理を実行するコマンド処理部と、前記処理結果に応じて、前記デイスク装置にアクセス要求を発行するアクセス実行部とを有し、前記アクセス実行部は、前記デイスク装置に発行し、且つ前記デイスク装置がアクセス処理を完了していない仕掛り数を、前記ホストＩ／Ｏ要求によるアクセス要求による数と、前記内部Ｉ／Ｏ要求によるアクセス要求とによる数とを個別に制限することを特徴とするストレージシステム。
【０１６１】
（付記２）前記アクセス実行部は、前記ホストＩ／Ｏ要求によるアクセス要求の仕掛り数をカウントする第１のカウンタと、前記内部Ｉ／Ｏ要求によるアクセス要求の仕掛り数をカウントする第２のカウンタとを有し、前記Ｉ／Ｏ要求が前記ホストＩ／Ｏ要求によるアクセス要求であるか前記内部Ｉ／Ｏ要求によるアクセス要求であるかを判定し、前記判定結果に応じて、前記第１又は第２のカウンタを参照して、前記仕掛り数を個別に制限することを特徴とする付記１のストレージシステム。
【０１６２】
（付記３）前記アクセス実行部は、前記ホストＩ／Ｏ要求によるアクセス要求の仕掛り数の制限値を越えた前記ホストＩ／Ｏ要求によるアクセス要求を待たせるための第１の待ちキューと、前記内部Ｉ／Ｏ要求によるアクセス要求の仕掛り数の制限値を越えた前記内部Ｉ／Ｏ要求によるアクセス要求を待たせるための第２の待ちキューとを有することを特徴とする付記１のストレージシステム。
【０１６３】
（付記４）前記アクセス実行部は、前記仕掛り中の前記ホストＩ／Ｏ要求によるアクセス要求の第１のリストと、前記仕掛り中の前記内部Ｉ／Ｏ要求によるアクセス要求の第２のリストとを有し、前記アクセス要求を受けた時に、前記第１又は第２のリストを参照し、前記アクセス要求の優先度を判定し、優先度の高い前記アクセス要求を前記デイスク装置に発行することを特徴とする付記１のストレージシステム。
【０１６４】
（付記５）前記アクセス実行部は、前記第１のリストと前記第２のリストとに、前記アクセス要求を、優先度順に格納することを特徴とする付記４のストレージシステム。
【０１６５】
（付記６）前記アクセス実行部は、前記アクセス要求を前記デイスク装置に発行したことに応じて、前記第１又は第２のカウンタをインクリメントし、前記デイスク装置からの前記アクセス要求に対する応答に対し、前記第１又は第２のカウンタをデクリメントすることを特徴とする付記２のストレージシステム。
【０１６６】
（付記７）前記アクセス実行部は、前記アクセス要求を、前記デイスク装置を論理的に示すＲＬＵ単位で発行することを特徴とする付記１のストレージシステム。
【０１６７】
（付記８）前記アクセス実行部は、前記アクセス要求を所定数発行する毎に、リビルド又はコピーバックの少なくとも一方のアクセス要求を発行することを特徴とする付記１のストレージシステム。
【０１６８】
（付記９）前記アクセス実行部は、前記両仕掛り数がゼロである時に、前記リビルド又はコピーバックの少なくとも一方のアクセス要求を発行することを特徴とする付記８のストレージシステム。
【０１６９】
（付記１０）前記アクセス実行部は、前記リビルド又はコピーバックの少なくとも一方のアクセス要求を、前記アクセス要求を所定数発行していない時に、待ちキューに待たせることを特徴とする付記８のストレージシステム。
【０１７０】
（付記１１）前記コマンド処理部は、所定のスケジュールに従う、前記内部Ｉ／Ｏ要求であるライトバック要求処理を行うとともに、前記ライトバック要求処理英は、前記アクセス実行部から前記デイスク装置を論理的に示すＲＬＵ単位の負荷状況を受け、前記内部Ｉ／Ｏ要求の負荷の少ないＲＬＵを優先してライトバック要求を発行することを特徴とする付記１のストレージシステム。
【０１７１】
（付記１２）前記アクセス実行部は、対象とするＲＬＵに対する内部Ｉ／Ｏの待ち数が小さい時に、前記負荷が比較的軽いと判定し、前記ライトバック要求処理に前記対象ＲＬＵのライトバック要求発行を許可することを特徴とする付記１１のストレージシステム。
【０１７２】
（付記１３）前記アクセス実行部は、対象とするＲＬＵに対する内部Ｉ／Ｏの待ち数が大きい時に、前記アクセス実行部でのライトバック要求数と、前記内部Ｉ／Ｏの仕掛り数の上限値を基準としたライトバック許容値との比較結果から、前記ＲＬＵの負荷状況を判定することを特徴とする付記１１のストレージシステム。
【０１７３】
（付記１４）ホストから依頼されたＩ／Ｏ要求と内部で発生したＩ／Ｏ要求とに応じて、接続されたデイスク装置をアクセスし、Ｉ／Ｏ要求を実行するためのデイスク負荷バランス制御方法において、前記Ｉ／Ｏ要求に応じて、前記デイスク装置にアクセス要求を発行するステップと、前記デイスク装置に発行し、且つ前記デイスク装置がアクセス処理を完了していない仕掛り数を、前記ホストＩ／Ｏ要求によるアクセス要求による数と、前記内部Ｉ／Ｏ要求によるアクセス要求とによる数とを個別に制限するステップとを有することを特徴とするデイスク負荷バランス制御方法。
【０１７４】
（付記１５）前記制限ステップは、前記ホストＩ／Ｏ要求によるアクセス要求の仕掛り数をカウントする第１のカウンタと、前記内部Ｉ／Ｏ要求によるアクセス要求の仕掛り数をカウントする第２のカウンタとを、前記Ｉ／Ｏ要求が前記ホストＩ／Ｏ要求によるアクセス要求であるか前記内部Ｉ／Ｏ要求によるアクセス要求であるかの判定結果に応じて、前記ホストＩ／Ｏ要求によるアクセス要求の仕掛り数をカウントする第１のカウンタと、前記内部Ｉ／Ｏ要求によるアクセス要求の仕掛り数をカウントする第２のカウンタとを参照して、前記仕掛り数を個別に制限するステップからなることを特徴とする付記１４のデイスク負荷バランス制御方法。
【０１７５】
（付記１６）前記ホストＩ／Ｏ要求によるアクセス要求の仕掛り数の制限値を越えた前記ホストＩ／Ｏ要求によるアクセス要求を第１の待ちキューに待たせる第１の待ちキューステップと、前記内部Ｉ／Ｏ要求によるアクセス要求の仕掛り数の制限値を越えた前記内部Ｉ／Ｏ要求によるアクセス要求を第２の待ちキューに待たせるための第２の待ちキューステップとを更に有することを特徴とする付記１４のデイスク負荷バランス制御方法。
【０１７６】
（付記１７）前記アクセス要求発行ステップは、前記仕掛り中の前記ホストＩ／Ｏ要求によるアクセス要求の第１のリストと、前記仕掛り中の前記内部Ｉ／Ｏ要求によるアクセス要求の第２のリストとを、前記アクセス要求を受けた時に、参照し、前記アクセス要求の優先度を判定し、優先度の高い前記アクセス要求を前記デイスク装置に発行するステップを更に有することを特徴とする付記１４のデイスク負荷バランス制御方法。
【０１７７】
（付記１８）前記第１のリストと前記第２のリストとに、前記アクセス要求を、優先度順に格納することを特徴とする付記１７のデイスク負荷バランス制御方法。
【０１７８】
（付記１９）前記アクセス要求を前記デイスク装置に発行したことに応じて、前記第１又は第２のカウンタをインクリメントし、前記デイスク装置からの前記アクセス要求に対する応答に対し、前記第１又は第２のカウンタをデクリメントするステップを更に有することを特徴とする付記１５のデイスク負荷バランス制御方法。
【０１７９】
（付記２０）前記アクセス実行発行ステップは、前記アクセス要求を、前記デイスク装置を論理的に示すＲＬＵ単位で発行するステップからなることを特徴とする付記１４のデイスク負荷バランス制御方法。
【０１８０】
（付記２１）前記アクセス要求を所定数発行する毎に、リビルド又はコピーバックの少なくとも一方のアクセス要求を発行するステップを更に有することを特徴とする付記１４のデイスク負荷バランス制御方法。
【０１８１】
（付記２２）前記両仕掛り数がゼロである時に、前記リビルド又はコピーバックの少なくとも一方のアクセス要求を発行するステップを更に有することを特徴とする付記２１のデイスク負荷バランス制御方法。
【０１８２】
（付記２３）前記リビルド又はコピーバックの少なくとも一方のアクセス要求を、前記アクセス要求を所定数発行していない時に、待ちキューに待たせるステップを更に有することを特徴とする付記２１のデイスク負荷バランス制御方法。
【０１８３】
（付記２４）前記アクセス要求発行ステップは、所定のスケジュールに従う、前記内部Ｉ／Ｏ要求であるライトバック要求発行処理を行い、且つ前記デイスク装置を論理的に示すＲＬＵ単位の負荷状況を判定し、前記内部Ｉ／Ｏ要求の負荷の少ないＲＬＵを優先してライトバック要求を発行するステップを含むことを特徴とする付記１４のデイスク負荷バランス制御方法。
【０１８４】
（付記２５）前記ライトバック要求発行ステップは、対象とするＲＬＵに対する内部Ｉ／Ｏの待ち数が小さい時に、前記負荷が比較的軽いと判定し、前記対象ＲＬＵのライトバック要求発行を許可することを特徴とする付記２４のデイスク負荷バランス制御方法。
【０１８５】
（付記２６）前記ライトバック要求発行ステップは、対象とするＲＬＵに対する内部Ｉ／Ｏの待ち数が大きい時に、前記ライトバック要求数と、前記内部Ｉ／Ｏの仕掛り数の上限値を基準としたライトバック許容値との比較結果から、前記ＲＬＵの負荷状況を判定することを特徴とする付記２４のデイスク負荷バランス制御方法。
【産業上の利用可能性】
【０１８６】
以上、説明したように、本発明によれば、ホストＩ／Ｏ（ホストリード）と、内部Ｉ／Ｏ（プリフェッチ、ライトバック）とを個別に負荷管理するので、仮想デイスク（ＲＬＵ）２への処理要求の発行数を個別に制限でき、ホストＩ／Ｏを優先して、ホストＩ／Ｏと内部Ｉ／Ｏとの負荷バランスを制御できる。
【０１８７】
更に、リビルド／コピーバックについては、専用の負荷制御機構を設け、通常Ｉ／Ｏとリビルド／コピーバック間での負荷調整を行うため、ある程度のホストＩ／Ｏのレスポンスを維持しながら、リビルド／コピーバックの終了時間を保証できる。
【図面の簡単な説明】
【０１８８】
【図１】本発明の一実施の形態のストレージシステムの構成図である。
【図２】本発明のＤＴＣの第１の実施の形態の機能ブロック図である。
【図３】図２のＡＣＢの詳細構成図である。
【図４】図２の負荷制限機構の説明図である。
【図５】図２のホストＩ／Ｏと内部Ｉ／Ｏの説明図である。
【図６】図２のＤＴＣの上位層からの要求処理フロー図である。
【図７】図２のＤＴＣの下位層からの応答処理フロー図である。
【図８】図２の第１の実施の形態の動作説明図である。
【図９】本発明のＤＴＣの第２の実施の形態の機能ブロック図である。
【図１０】図９のＤＴＣの上位層からの要求処理フロー図である。
【図１１】図９のＤＴＣの下位層からの応答処理フロー図である。
【図１２】図１０及び図１１のリビルド／コピーバック再開判定処理フロー図である。
【図１３】図９のＤＴＣのリビルド／コピーバック要求処理フロー図である。
【図１４】図９のＤＴＣの動作説明図である。
【図１５】図９のリビルド動作の説明図である。
【図１６】図９のコピーバック動作の説明図である。
【図１７】本発明の第３の実施の形態のシステム構成図である。
【図１８】図１７のＤＴＣの第３の実施の形態の機能ブロック図である。
【図１９】図１８のライトバック要求処理フロー図である。
【図２０】図１８の負荷確認処理フロー図である。
【図２１】図１８のプリフェッチ要求処理フロー図である。
【図２２】図１８のライトバック判定処理の動作説明図である。
【図２３】図１８のライトバック処理動作の説明図である。
【図２４】従来技術の構成図である。
【図２５】従来技術のＤＴＣ処理の流れ図である。
【符号の説明】
【０１８９】
１  ストレージコントローラ
２  仮想デイスク
３  ホスト
４  ＦＣ＿ＡＬ
１０  チャネルアダプター
１６  デバイスアダプター
１２  ＣＰＵ
１４  メモリ
１８  キャッシュメモリ
３２  フロントエンド
３６  バックエンド
５４  ＤＴＣ
６０  上位層からの要求処理
６２  下位層からの応答処理
６３，６４  待ちキュー
６５，６６  仕掛りリスト
６７，６８  仕掛り数カウンタ
６９  Ｉ／Ｏ処理数カウンタ
７０  リビルド／コピーバック再開判定処理
７４  リビルド／コピーバック要求処理
３４−１  ライトバック要求処理
８０  負荷確認処理
【図１】
2004295860.tif 000003
【図２】
2004295860.tif 000004
【図３】
2004295860.tif 000005
【図４】
2004295860.tif 000006
【図５】
2004295860.tif 000007
【図６】
2004295860.tif 000008
【図７】
2004295860.tif 000009
【図８】
2004295860.tif 000010
【図９】
2004295860.tif 000011
【図１０】
2004295860.tif 000012
【図１１】
2004295860.tif 000013
【図１２】
2004295860.tif 000014
【図１３】
2004295860.tif 000015
【図１４】
2004295860.tif 000016
【図１５】
2004295860.tif 000017
【図１６】
2004295860.tif 000018
【図１７】
2004295860.tif 000019
【図１８】
2004295860.tif 000020
【図１９】
2004295860.tif 000021
【図２０】
2004295860.tif 000022
【図２１】
2004295860.tif 000023
【図２２】
2004295860.tif 000024
【図２３】
2004295860.tif 000025
【図２４】
2004295860.tif 000026
【図２５】
2004295860.tif 000027