(57)【要約】【解決課題】優先したいデータの入出力性能を保障し得る信頼性の高い記憶システム及びデータ入出力制御方法を提案する。【解決手段】ストレージ装置におけるデータ入出力処理の限界性能を検出し、検出した限界性能と、予め指定されたデータ入出力処理を優先すべきターゲットでなる優先ターゲットごとの予め設定されたデータ入出力処理の目標性能とに基づいて、優先ターゲット及び他のターゲットからなる非優先ターゲット群ごとの処理割合をそれぞれ決定し、ストレージ装置が、優先ターゲット及び非優先ターゲット群についてのデータ入出力処理を、それぞれ処理割合決定部により決定された対応する処理割合に応じた頻度で実行するようにした。【選択図】図５
2008059478.tif 000002
【特許請求の範囲】
【請求項１】
上位装置から与えられるデータ入出力要求に応じたデータ入出力処理を行うストレージ装置を有する記憶システムにおいて、
前記ストレージ装置における単位時間当たりの限界データ入出力処理数である限界性能を検出する限界性能検出部と、
前記限界性能検出部により検出された前記限界性能と、Ｉ／Ｏ処理要求の種別であるターゲットのうちデータ入出力処理を優先すべきターゲットでなる優先ターゲット毎の予め設定された単位時間当たりの目標データ入出力処理数である目標性能と、に基づいて、前記データ入出力処理を優先ターゲット及びその他のターゲットからなる非優先ターゲット群ごとの処理割合をそれぞれ決定する処理割合決定部と、
を備え、
前記ストレージ装置は、
前記優先ターゲット及び前記非優先ターゲット群についてのデータ入出力処理を、それぞれ処理割合決定部により決定された対応する前記処理割合に応じた頻度で実行する
ことを特徴とする記憶システム。
【請求項２】
各前記ターゲットは、
該Ｉ／Ｏ処理要求を発行したアプリケーション毎又は、データの読み書きの対象となるデバイス毎である
ことを特徴とする請求項１に記載の記憶システム。
【請求項３】
前記優先ターゲット及び前記非優先ターゲット群ごとの単位時間あたりのデータ入出力処理回数をそれぞれ計測する計測部
を備え、
前記処理割合決定部は、
前記計測部により計測された前記優先ターゲット及び前記非優先ターゲット群の単位時間あたりのデータ入出力処理回数の実測値でなる前記優先ターゲット及び前記非優先ターゲットごとの性能実測値と、前記限界性能検出部により検出された前記限界性能と、前記優先ターゲットごとの前記目標性能とに基づいて、周期的に、前記優先ターゲット及び前記非優先ターゲット群ごとの新たな前記処理割合をそれぞれ決定する
ことを特徴とする請求項１に記載の記憶システム。
【請求項４】
前記処理割合決定部は、
前記優先ターゲット又は前記非優先ターゲット群の前記性能実測値が予め定められた下限値以下であったときには、前記限界性能検出部により検出された前記限界性能と、前記優先ターゲットごとの前記目標性能とに基づいて、前記優先ターゲット及び前記非優先ターゲット群ごとの新たな前記処理割合を決定する
ことを特徴とする請求項３に記載の記憶システム。
【請求項５】
前記処理割合決定部は、
前記優先ターゲット及び前記非優先ターゲット群ごとの前記処理割合を、時間帯ごとに当該時間帯について予め定められた前記処理割合にそれぞれ変更する
ことを特徴とする請求項１に記載の記憶システム。
【請求項６】
上位装置から与えられるデータ入出力要求に応じたデータ入出力処理を行うストレージ装置のデータ入出力を制御するデータ入出力制御方法において、
前記ストレージ装置における単位時間当たりの限界データ入出力処理数である限界性能を検出する第１のステップと、
検出された前記限界性能と、Ｉ／Ｏ処理要求の種別であるターゲットのうちデータ入出力処理を優先すべきターゲットでなる優先ターゲット毎の予め設定された単位時間当たりの目標データ入出力処理数である目標性能と、に基づいて、前記データ入出力処理を優先ターゲット及びその他のターゲットからなる非優先ターゲット群ごとの処理割合をそれぞれ決定する第２のステップと、
前記ストレージ装置が、前記データ入出力処理を優先ターゲット及びその他のターゲットからなる非優先ターゲット群ごとの処理割合をそれぞれ決定する処理割合決定部により決定された対応する前記処理割合に応じた頻度で実行する第３のステップと、
を備えることを特徴とするデータ入出力制御方法。
【請求項７】
各前記ターゲットは、
該Ｉ／Ｏ処理要求を発行したアプリケーション毎又は、データの読み書きの対象となるデバイス毎である
ことを特徴とする請求項６に記載のデータ入出力制御方法。
【請求項８】
前記第３のステップでは、
前記優先ターゲット及び前記非優先ターゲット群ごとの単位時間あたりのデータ入出力処理回数をそれぞれ計測し、
計測した前記優先ターゲット及び前記非優先ターゲット群の単位時間あたりのデータ入出力処理回数の実測値でなる前記優先ターゲット及び前記非優先ターゲットごとの性能実測値と、前記限界性能検出部により検出された前記限界性能と、前記優先ターゲットごとの前記目標性能とに基づいて、周期的に、前記優先ターゲット及び前記非優先ターゲット群ごとの新たな前記処理割合をそれぞれ決定する第４のステップを備える
ことを特徴とする請求項６に記載のデータ入出力制御方法。
【請求項９】
前記第４のステップでは、
前記優先ターゲット又は前記非優先ターゲット群の前記性能実測値が予め定められた下限値以下であったときには、前記限界性能検出部により検出された前記限界性能と、前記優先ターゲットごとの前記目標性能とに基づいて、前記優先ターゲット及び前記非優先ターゲット群ごとの新たな前記処理割合を決定する
ことを特徴とする請求項８に記載のデータ入出力制御方法。
【請求項１０】
前記第２のステップでは、
前記優先ターゲット及び前記非優先ターゲット群ごとの前記処理割合を、時間帯ごとに当該時間帯について予め定められた前記処理割合にそれぞれ変更する
ことを特徴とする請求項６に記載のデータ入出力制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶システム及びデータ入出力制御方法に関し、例えばホスト装置がアプリケーションプログラムに基づき各種業務の処理を実行する記憶システムに適用して好適なものである。
【背景技術】
【０００２】
従来、ストレージ装置においては、ホスト装置からのデータ入出力要求に対するデータ入出力処理は、そのホスト装置に接続されたポートに対応したプロセッサが行なう。このため、優先度の高い業務及び優先度の低い業務のデータ入出力処理が同一のプロセッサにより行われる場合がある。このような状況では、優先度の低い業務の負荷が大きい場合に、その影響を受けて優先度の高い業務の帯域が確保されないことがあった。
【０００３】
かかる問題を解決するための方法として、従来、単一のストレージ装置において、ポートや、ＷＷＮ（World Wide Name）又はデバイスを単位とするデータ入出力処理の上限値又は閾値をユーザが設定し、非優先のホスト装置のデータの入出力を抑止し、優先したいホスト装置のデータの入出力の帯域を確保する方法が提案されている（特許文献１参照）。
【０００４】
【特許文献１】特開２００２−１０８５６７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところが、かかる特開２００２−１０８５６７号公報に開示された方法は、非優先のデータの入出力を抑止するのみで、優先したいデータの入出力性能が保障されない問題があった。
【０００６】
本発明は以上の点を考慮してなされたもので、優先したいデータの入出力性能を保障し得る信頼性の高い記憶システム及びデータ入出力制御方法を提案しようとするものである。
【課題を解決するための手段】
【０００７】
かかる課題を解決するため本発明においては、上位装置から与えられるデータ入出力要求に応じたデータ入出力処理を行うストレージ装置を有する記憶システムにおいて、前記ストレージ装置における単位時間当たりの限界データ入出力処理数である限界性能を検出する限界性能検出部と、前記限界性能検出部により検出された前記限界性能と、Ｉ／Ｏ処理要求の種別であるターゲットのうちデータ入出力処理を優先すべきターゲットでなる優先ターゲット毎の予め設定された単位時間当たりの目標データ入出力処理数である目標性能と、に基づいて、前記データ入出力処理を優先ターゲット及びその他のターゲットからなる非優先ターゲット群ごとの処理割合をそれぞれ決定する処理割合決定部と、を備え、前記ストレージ装置は、前記優先ターゲット及び前記非優先ターゲット群についてのデータ入出力処理を、それぞれ処理割合決定部により決定された対応する前記処理割合に応じた頻度で実行することを特徴とする。
【０００８】
この結果、この記憶システムでは、優先ターゲット及び前記非優先ターゲット群についてのデータ入出力処理を、それぞれ処理割合決定部により決定された対応する前記処理割合に応じた頻度で実行することができる。
【０００９】
また本発明においては、上位装置から与えられるデータ入出力要求に応じたデータ入出力処理を行うストレージ装置のデータ入出力を制御するデータ入出力制御方法において、前記ストレージ装置における単位時間当たりの限界データ入出力処理数である限界性能を検出する第１のステップと、検出された前記限界性能と、Ｉ／Ｏ処理要求の種別であるターゲットのうちデータ入出力処理を優先すべきターゲットでなる優先ターゲット毎の予め設定された単位時間当たりの目標データ入出力処理数である目標性能と、に基づいて、前記データ入出力処理を優先ターゲット及びその他のターゲットからなる非優先ターゲット群ごとの処理割合をそれぞれ決定する第２のステップと、前記ストレージ装置が、前記データ入出力処理を優先ターゲット及びその他のターゲットからなる非優先ターゲット群ごとの処理割合をそれぞれ決定する処理割合決定部により決定された対応する前記処理割合に応じた頻度で実行する第３のステップと、を備えることを特徴とする。
【００１０】
この結果、このデータ入出力制御方法では、優先ターゲット及び前記非優先ターゲット群についてのデータ入出力処理を、それぞれ処理割合決定部により決定された対応する前記処理割合に応じた頻度で実行することができる。
【００１１】
この結果、このデータ入出力制御方法によれば、優先ターゲット及び前記非優先ターゲット群についてのデータ入出力処理を、それぞれ処理割合決定部により決定された対応する前記処理割合に応じた頻度で実行することができる。
【発明の効果】
【００１２】
本発明によれば、優先したいデータの入出力性能を保障し得る信頼性の高い記憶システム及びデータ入出力制御方法を実現できる。
【発明を実施するための最良の形態】
【００１３】
以下、各図を参照しながら本発明の一実施形態について説明する。
【００１４】
（１）記憶システムの全体構成
図１において、１は全体として本実施の形態による記憶システムを示す。この記憶システム１は、ホスト装置２がスイッチ３を介してストレージ装置４に接続されると共に、当該ストレージ装置４にＩＰ（Internet Protocol）ネットワーク５を介して管理サーバ６が接続されることにより構成されている。
【００１５】
上位装置としてのホスト装置２は、ＣＰＵ（Central Processing Unit）１０、メモリ１１、パス制御部１３等の情報処理資源を備えたコンピュータ装置であり、パーソナルコンピュータや、ワークステーション、メインフレームなどから構成される。ホスト装置２は、例えばキーボード、スイッチやポインティングデバイス、マイクロフォン等の情報入力装置（図示せず）と、モニタディスプレイやスピーカ等の情報出力装置（図示せず）とを備える。
【００１６】
ＣＰＵ１０は、ホスト装置２全体の動作制御を司るプロセッサである。またメモリ１１は、ユーザ業務で使用されるアプリケーションプログラムを保持するために使用されるほか、ＣＰＵ１０のワークメモリとしても用いられる。このメモリ１１に保持されたアプリケーションプログラムをＣＰＵ１０が実行することにより、ホスト装置２全体として対応する業務に関する各種処理が行われる。パス制御部１３は、パスを複数使用する場合に、全てのパスに均等に処理コマンドを発行する制御を行う。
【００１７】
スイッチ３は、ファイバーチャネルネットワークを構成するもので、複数のファイバーチャネルスイッチから構成される。このスイッチ３を介したホスト装置２及びストレージ装置４間の通信は、ファイバーチャネルプロトコルに従って行われる。
【００１８】
ストレージ装置４は、図１に示すように、データを記憶するための記憶領域を提供するディスクデバイス部３０と、ディスクデバイス部３０に対するデータの入出力を制御する複数のコントロール部（ＤＫＣ）２０とから構成される。
【００１９】
ディスクデバイス部３０は、複数のディスクデバイス（図示せず）及び複数のポート３１を備える。ディスクデバイスは、例えばＳＣＳＩ（Small Computer System Interface）ディスク等の高価なディスクドライブ、及びＳＡＴＡ（Serial AT Attachment）ディスクや光ディスク等の安価なディスクドライブから構成される。
【００２０】
これらディスクデバイスは、コントロール部２０によりＲＡＩＤ方式で運用される。１又は複数のディスクデバイスにより提供される物理的な記憶領域上に、１又は複数の論理デバイス（LDEV）３２が構成される。そしてホスト装置２からのデータは、この論理デバイス３２内に所定の大きさのブロック（以下、これを論理ブロックと呼ぶ）を単位として記憶される。
【００２１】
各論理デバイス３２には、それぞれ固有の識別番号が付与される。本実施の形態の場合、データの入出力は、この識別番号と、各論理ブロックにそれぞれ付与されるその論理ブロックに固有の番号（以下、これをＬＢＡ（Logical Block Address）と呼ぶ）との組み合わせたものをアドレスとして、当該アドレスを指定して行われる。
【００２２】
一方、コントロール部２０は、複数のチャネルプロセッサ（CHP）２１、複数のディスク側ポート２２及び管理端末（SVP）２４を備えて構成される。
【００２３】
各チャネルプロセッサ２１は、それぞれマイクロプロセッサ、メモリ及び通信インタフェース等を備えたマイクロコンピュータシステムとして構成されており、それぞれスイッチ３に接続するためのホスト側ポート２２Ａを備える。チャネルプロセッサ２１は、ホスト装置２から送信される各種コマンドを解釈して、必要な処理を実行する。各チャネルアダプタ２１のホスト側ポート２２Ａには、それぞれを識別するためのネットワークアドレス（例えば、ＩＰアドレスやＷＷＮ）が割り当てられており、これにより各チャネルプロセッサ２１がそれぞれ個別にＮＡＳ（Network Attached Storage）装置として振る舞うことができるようになされている。
【００２４】
ディスク側ポート２２Ｂは、例えばファイバチャネル規格に準拠したポートであり、ディスクデバイス部３０の対応するポート３１とケーブルを介して接続される。コントロール部２０におけるディクスデバイス部３０との間のデータ授受は、このディスク側ポート２２Ｂを介して行なわれる。
【００２５】
また管理端末２４は、ストレージ装置４を保守又は管理するための端末装置である。記憶システム１の保守員は、この管理端末２４を操作することにより、例えば、ディスクデバイス部２０におけるディスクデバイスの増設等、ＲＡＩＤ構成やＥＣＣ（Error Correcting Code）グループ構成の設定変更等を行うことができる。
【００２６】
管理端末２４は、メモリ２５やＣＰＵ２６等の情報処理資源を備えたマイクロコンピュータシステムとして構成される。メモリ２５は、各種制御プログラムや各種テーブルを記憶保持するために使用されるほか、ＣＰＵ２６のワークメモリとしても用いられる。後述の目標性能設定テーブル５０もこのメモリ２５に記憶保持される。メモリ２５に格納された制御プログラムをＣＰＵ２６が実行することにより、管理端末２４全体として種々の処理を実行する。
【００２７】
管理サーバ６は、ストレージ装置４の監視及び管理を行うためのサーバであり、稼動情報監視部７及び負荷制御部８から構成される。これら稼動情報監視部７及び負荷制御部８は、ＩＰネットワーク５を介してホスト装置２及びストレージ装置４と接続されている。
【００２８】
稼動情報監視部７は、ストレージ装置４の稼動情報を収集及び管理する機能を有し、ＣＰＵ４０及びメモリ４１等の情報処理資源を備えて構成される。メモリ４１には各種制御プログラムや、後述の性能実測値テーブル５２及び業務別性能実測値テーブル５３が格納される。このメモリ４１に格納された制御プログラムをＣＰＵ４０が実行することにより、各種の処理が実行される。
【００２９】
また負荷制御部８は、各チャネルアダプタ２１におけるデータ入出力処理の負荷を制御する機能を有し、ＣＰＵ４２及びメモリ４３等の情報処理資源を備えて構成される。メモリ４３には各種制御プログラムや、後述の目標性能設定テーブル５０が格納される。メモリ４３に格納された制御プログラムをＣＰＵ４２が実行することにより、各種の処理が実行される。
【００３０】
（２）本実施の形態によるデータ入出力制御機能
（２−１）各種テーブルの構成
次に、この記憶システム１に採用されたデータ入出力制御機能について説明する。
【００３１】
本実施の形態による記憶システム１は、ホスト装置２がそれぞれ対応するアプリケーションプログラムに基づいて各種処理を行う業務のうち、優先したい業務のデータ入出力処理をユーザが設定した性能に応じた頻度で行うように制御するデータ入出力制御機能が採用されている点を特徴とする。
【００３２】
このようなデータ入出力制御機能に関する各種処理を行うための手段として、コントローラ部２０内の管理端末２４のメモリ２５及び負荷制御部８のメモリ４３に目標性能設定テーブル５０が格納され、稼動情報制御部７のメモリ４０に性能実測値テーブル５２，業務別性能実測値テーブル５３が格納されている。
【００３３】
目標性能設定テーブル５０は、ホスト装置２が行う各業務のうち、特にデータ入出処理を優先すべき業務（以下、これを優先指定業務と呼ぶ）及びこれ以外の業務群（以下、これを非優先指定業務群と呼ぶ）についてユーザがそれぞれ設定した目標性能を管理するために用いるテーブルである。ここで「目標性能」とは、その優先指定業務又は非優先指定業務群について行う１秒あたりのデータ入出力処理の処理回数（ＩＯＰＳ）をいう。そしてこの目標性能設定テーブル５０は、図２に示すように、ターゲットフィールド５０Ａ、目標性能フィールド５０Ｂ及び処理割合フィールド５０Ｃから構成される。
【００３４】
このうちターゲットフィールド５０Ａには、対応する優先指定業務又は非優先指定業務群に付与されたＩＤが格納される。また、各優先指定業務に対応する目標性能フィールド５０Ｂには、ユーザが設定したその優先指定業務について期待する目標性能が格納される。さらに、処理割合フィールド５０Ｃには、予め測定した記憶システム１全体の１秒あたりのデータ入出力処理回数（以下、これを限界性能と呼ぶ）に対するその優先指定業務又は非優先指定業務群の目標性能の割合（以下、これを処理割合と呼ぶ）が格納される。さらに目標性能設定テーブル５０の最下段の行５０Ｄには、予め測定した限界性能が格納される。
【００３５】
従って、図２の例では、優先指定業務として「業務１」〜「業務３」があり、このうち例えば「業務１」という優先指定業務については、ユーザにより設定された目標性能が「10000」、その処理割合は「50％」であり、限界性能は「20000」回であることが分かる。
【００３６】
なお、後述のように、各優先指定業務の処理割合は、ユーザが設定したその優先指定業務の目標性能及び予め測定した限界性能に基づいて算出され、非優先指定業務群の目標性能及び処理割合は、かかる各優先指定業務の目標性能及びかかる限界性能に基づいて算出される。このため、目標性能設定テーブル５０における非優先指定業務群に対応する目標性能フィールド５０Ｂ（図２において「その他」の行の目標性能フィールド５０Ｂ）内には目標性能が格納されない。
【００３７】
また性能実測値テーブル５２は、優先指定業務及び非優先指定業務群ごとの１秒あたりのデータ入出力処理の処理回数の実測値（以下、これを性能実測値と呼ぶ）を管理するためのテーブルであり、図３に示すように、ターゲットフィールド５２Ａ、目標性能フィールド５２Ｂ、処理割合フィールド５２Ｃ及び性能実測値フィールド５２Ｄから構成される。
【００３８】
このうちターゲットフィールド５２Ａ、目標性能フィールド５２Ｂ及び処理割合フィールド５２Ｃには、それぞれ図２について上述した目標性能設定テーブル５０のターゲットフィールド５０Ａ、目標性能フィールド５０Ｂ及び処理割合フィールド５０Ｃと同様の情報が格納される。また性能実測値フィールド５２Ｄには、その優先指定業務又は非優先指定業務群について取得された上述の性能実測値が格納される。
【００３９】
従って、図３では、例えば「業務１」という優先指定業務は、目標性能が「10000」であったのに対し、性能実測値が「8000」であったことが示されている。
【００４０】
さらに業務別性能実測値テーブル５３は、優先指定業務及び非優先指定業務群ごとの複数回分の性能実測値を管理するために用いられるテーブルであり、図４に示すように、ターゲットフィールド５３Ａ、目標性能フィールド５３Ｂ、第１及び第２の処理割合フィールド５３Ｃ、５３Ｅ並びに第１及び第２の性能実測値フィールド５３Ｄ、５３Ｆから構成されている。
【００４１】
そしてターゲットフィールド５３Ａ、目標性能フィールド５３Ｂ及び処理割合フィールド５３Ｃには、それぞれ図２について上述した目標性能設定テーブル５０のターゲットフィールド５０Ａ、目標性能フィールド５０Ｂ及び処理割合フィールド５０Ｃと同様の情報が格納される。
【００４２】
また第１の性能実測値フィールド５３Ｄには、最後から２番目に取得されたその優先指定業務又は非優先指定業務群に関する上述の性能実測値が格納され、第２の処理割合フィールド５３Ｅには、当該性能実測値に基づき算出されたその優先指定業務及び非優先指定業務群に対する上述の処理割合が格納される。
【００４３】
さらに第２の性能実測値フィールド５３Ｆには、その優先指定業務又は非優先指定業務の処理割合を第２の処理割合フィールド５３Ｅに設定した場合に得られたその優先指定業務又は非優先指定業務群に関する上述の性能実測値（つまり最後に得られた性能実測値）が格納される。
【００４４】
従って、図４では、例えば、「業務１」という優先指定業務は、目標性能が「10000」で処理割合が「50％」のときの性能実測値が「8000」であったのに対し、処理割合を「63％」に変更したところ性能実測値が「9800」となったことが示されている。
【００４５】
（２−２）データの入出力優先処理
次に、本実施の形態の記憶システム１におけるデータの入出力優先処理について説明する。図５は、記憶システム１におけるデータ入出力制御機能に関する一連の処理の流れを示すフローチャートである。
【００４６】
この記憶システム１の場合、かかるデータ入出力制御機能に関し、まず、記憶システム１が稼動前であればシステムテストの段階で、また記憶システム１が稼働中であれば運用時におけるストレージ装置４の限界性能を管理端末２４が採取する（ＳＰ１）。このようにして採取された限界性能は、管理端末２４内のメモリ２５に保持された上述の目標性能設定テーブル５０（図２）の最下段に格納されて保持される。
【００４７】
続いて、ユーザが管理端末２４を操作して、所望する１又は複数の優先指定業務を指定すると共に、ステップＳＰ１で採取した限界性能を参照しながら、その優先指定業務ごとの目標性能をそれぞれ設定する（ＳＰ２）。
【００４８】
このとき管理端末２４のＣＰＵ２６は、指定された各優先指定業務に対してそれぞれ固有のＩＤを付与し、これらＩＤと、そのＩＤに対応する優先指定業務について設定された目標性能とを、それぞれ目標性能設定テーブル５０の対応するターゲットフィールド５０Ａ及び目標性能フィールド５０Ｂに格納する。また管理端末２４ＡのＣＰＵ２６は、これら各優先指定業務のＩＤと、そのＩＤに対応する優先指定業務について設定された目標性能と、ステップＳＰ１において採取したストレージ装置４の性能限界とを稼動情報監視部７及び負荷制御部８に送信する。
【００４９】
稼動情報監視部７のＣＰＵ４０は、管理端末２４から送信されるこれらの情報のうち、各優先指定業務のＩＤ及びその目標性能を、性能実測値テーブル５２の対応するターゲットフィールド５２Ａ及び目標値性能フィールド５２Ｂと、業務別性能実測値テーブル５３の対応するターゲットフィールド５３Ａ及び目標性能フィールド５３Ｂとにそれぞれ格納する。
【００５０】
また負荷制御部８のＣＰＵ４２は、管理端末２４から送信されるこれらの情報に基づいて、管理端末２４のメモリ２５に保持された目標性能設定テーブル５０と同じ内容の目標性能設定テーブル５０を作成し、これをメモリ４３に格納する。
【００５１】
この後、負荷制御部８のＣＰＵ４２は、上述のようにしてメモリ４３に格納された目標性能設定テーブル５０に登録されている各優先指定業務の目標性能及びストレージ装置４の限界性能に基づいて、優先指定業務及び非優先指定業務群ごとの処理割合を算出及び決定する（ＳＰ３）。
【００５２】
具体的にＣＰＵ４２は、図４に示すように、優先指定業務として「業務１」〜「業務３」が存在し、これらの目標性能がそれぞれ「10000」、「5000」及び「2000」であり、ストレージ装置４の限界性能が「20000」であった場合、「業務１」については、次式
(数１)
10000／20000×100＝50〔％〕                                       ……（１）
のように処理割合を算出及び決定し、「業務２」については、次式
(数２)
5000／20000×100＝25〔％〕                                        ……（２）
のように処理割合を算出する。
【００５３】
またＣＰＵは、「業務３」については、次式
(数３)
2000／20000×100＝10〔％〕                                        ……（３）
のように処理割合を算出して決定し、非優先指定業務群（図４の「その他」）については、「業務１」〜「業務３」について算出した各処理割合を利用して、次式
(数４)
100−（50＋25＋10）＝15〔％〕                                     ……（４）
のように処理割合を算出して決定する。
【００５４】
そしてＣＰＵ４２は、このようにして各優先指定業務及び非優先指定業務群の処理割合を決定すると、これら各優先指定業務及び非優先指定業務群の処理割合を、目標性能設定テーブル５０の処理割合フィールド５０Ｃに格納すると共に稼動情報監視部７に報告する（ＳＰ４）。
【００５５】
また稼動情報監視部７のＣＰＵ４０は、かかる報告を受けると、各優先指定業務及び非優先指定業務群の処理割合をそれぞれ性能実測値テーブル５２の処理割合フィールド５２Ｃと、業務別性能実測値テーブル５３の第１の処理割合フィールド５３Ｃとにそれぞれ格納すると共に、これら各処理割合を各管理端末２４に報告する（ＳＰ４）。
【００５６】
さらに各管理端末２４は、かかる報告を受けると、各優先指定業務及び非優先指定業務群の処理割合をそれぞれ目標性能設定テーブル５０の目標性能フィールド５０Ｂに格納すると共に、これら各処理割合を自己の管理下にある各チャネルプロセッサ２１に報告する（ＳＰ４）。
【００５７】
一方、かかる報告を受けた各チャネルプロセッサ２１は、各優先指定業務及び非優先指定業務群に対する処理割合を、指定された処理割合として内部設定する。そして各チャネルプロセッサ２１は、この後、ホスト装置２のパス制御部１３から送信されるデータ入出力要求コマンドに応じて、上述のように内部設定した処理割合を満たすように、例えば図６の「ＩＯ処理順序」欄５１Ｃに示すような順番で各優先指定業務及び非優先指定業務群の各業務についてのデータ入出力処理を実行する（ＳＰ５）。
【００５８】
この場合において、チャネルプロセッサ２１は、当該チャネルプロセッサ２１においてデータ入出力要求コマンド処理を行った各優先指定業務及び非優先指定業務群全体のデータ入出力処理の処理回数と、各優先指定業務及び非優先指定業務群ごとのデータ入出力処理の処理回数とを、それぞれ個別にカウンタ（図示せず）によりカウントするようにして計測する。
【００５９】
そしてチャネルプロセッサ２１は、各優先指定業務及び非優先指定業務群に対してそれぞれその処理割合に基づいて予め設定された処理回数、例えば図６の場合であれば、「業務１」については５０回、「業務２」については２５回、「業務３」については１０回及び「その他」については１５回のデータ入出力処理を行った段階で、その優先指定業務又は非優先指定業務群についてのデータ入出力処理を中止する。さらにチャネルプロセッサ２１は、各優先指定業務及び非優先指定業務群全体のデータ入出力処理の処理回数の総数が各優先指定業務及び非優先指定業務群に対してそれぞれ設定された処理回数の合計値（例えば「100回」）に達した段階で各カウンタのカウント値をクリアする（「０」に戻す）。このようにしてチャネルプロセッサ２１は、内部設定した処理割合に応じた頻度で、各優先指定業務及び非優先指定業務群についてのデータ入出力処理を実行する。
【００６０】
この際、チャネルプロセッサ２１は、いずれかの優先指定業務又は非優先指定業務群についてのデータ入出力要求コマンドを受信しなかった場合には、その分のデータ入出力処理を他の優先指定業務又は非優先指定業務群に割り当てる。ただし、このままかかる優先指定業務又は非優先指定業務群についてのデータ入出力要求コマンドを全く受信しなかった場合、他の優先指定業務及び非優先指定業務群についてのデータ入出力処理の処理回数がそれぞれ対応する既定数に達した段階でその後のデータ入出力処理が行われなくなる問題がある。そこで本実施の形態の場合、チャネルプロセッサ２１は、限界性能を基準に各カウンタのカウント値をクリアする。具体的には、限界性能が「20000」である場合、１００回のデータ入出力処理を行うために要する時間は、次式
(数５)
100／20000×100＝0.005〔ｓ〕＝5〔ms〕                            ……（５）
のように５〔ms〕であるため、チャネルプロセッサ２１は、５〔ms〕周期で各カウンタのカウント値をクリアすることとなる。
【００６１】
なお、チャネルアダプタ２１がこのような処理を行い得るようにするため、ホスト装置２のパス制御部１３は、データ入出力要求コマンドがいずれの業務についてのものかをチャネルプロセッサ２１が認識できるように、業務ごとに異なるＩＤを付加したデータ入出力要求コマンドを発行する。
【００６２】
他方、チャネルプロセッサ２１は、上述のようなデータ入出力処理の実行中に、既存の技術を利用して優先指定業務及び非優先指定業務群ごとの性能実測値を所定周期（例えば１秒周期）で採取する（ＳＰ６）。そしてチャネルプロセッサ２１は、採取した優先指定業務及び非優先指定業務群ごとの性能実測値を、管理端末２４を経由して稼動情報制御部７に報告する（ＳＰ７）。
【００６３】
そして稼動情報制御部７のＣＰＵ４０は、この報告を受信すると、取得した各優先指定業務及び非優先指定業務群の性能実測値を、性能実測値テーブル５２の対応する性能実測値フィールド５２Ｄと、業務別性能実測値テーブル５３の対応する第１又は第２の性能実測値フィールド５３Ｄ，５３Ｆとにそれぞれ格納して管理する（ＳＰ８）。
【００６４】
この後、記憶システム１では、処理割合の決定（ＳＰ３）以降の処理が一定周期（以下、これを処理割合決定周期と呼ぶ）を繰り返す（ＳＰ３〜ＳＰ８）。
【００６５】
この場合において、かかる処理割合決定周期は一定時間であるものとし、かかる一定時間における平均性能実測値を元に、次の処理割合決定周期における各優先指定業務及び非優先指定業務群の性能実測値の処理割合をそれぞれ決定する。ただし、性能が安定しているときなど、各優先指定業務及び非優先指定業務群の処理割合を頻繁に変更する必要がない場合には、処理割合決定周期を管理端末２４から所定時間単位（例えば１０分単位）で変更できるようにしても良い。
【００６６】
以上のように、チャネルアダプタ２１におけるデータの入出力処理はステップＳＰ３において決定された処理割合に基づいて行われるが、実際にはチャネルアダプタ２１以外の部位も各優先指定業務及び非優先指定業務群のデータ入出力処理の処理割合の決定に影響する。このため、かかる処理割合に基づいて上述のようなデータ入出力処理を行った場合においても、性能実測値が目標性能に達しないときや、目標性能以上の性能がでていることがある。なお、チャネルアダプタ２１の性能が目標性能以下となるときの例としては、データ入出力処理に時間がかかり、記憶システム１全体のデータ入出力処理回数が既定回数（例えば「100回」）に達する前に、次の処理割合決定周期が到来した場合などが挙げられる。またチャネルアダプタ２１の性能が目標性能以上となるときの例としては、次の処理割合決定周期が到来する前に記憶システム１全体のデータ入出力処理の処理回数が既定回数に達した場合などが挙げられる。
【００６７】
そこで本実施の形態の場合、負荷制御部８は、１つ前の処理割合決定周期において決定した優先指定業務及び非優先指定業務群ごとの処理割合と、そのとき得られた優先指定業務及び非優先指定業務群ごとの性能実測値と、各優先指定業務及び非優先指定業務群についてそれぞれ設定されている目標性能とに基づいて、次式
(数６)
目標性能：次の処理割合＝性能実測値：前の処理割合                    ……（６）
で与えられる関係を満たすように、次の処理割合決定周期における各優先指定業務及び非優先指定業務群の処理割合を決定する。
【００６８】
例えば、図３における性能実測値テーブル５２を例にとると、「業務１」については、目標性能が「10000」、処理割合が「50％」とされているところ、そのときの性能実測値が「8000」であったため、次の処理割合決定周期における「業務１」の処理割合ａは、（６）式を用いて次式
(数７)
ａ＝10000×50／8000＝63〔％〕
のように求めることができる。同様にして、次の処理割合決定周期における「業務２」の処理割合は「25%」、「業務３」の処理割合は「7%」、非優先指定業務群の処理割合は「5%」と求められる。
【００６９】
また、非優先指定業務群の処理割合は、優先指定業務の処理割合の決定後に残りを割り当てるため、優先指定業務の処理割合の合計が「100」に達してしまった場合、非優先指定業務の処理割合が「０」又はマイナスの値となり、非優先指定業務群についてのデータ入出力処理が実施されないことになる。同様に、いずれかの優先指定業務の処理割合が「100」に決定されたときも、非優先指定業務の処理が実施されないことになる。
【００７０】
例えば、図８を例にとると、「業務１」については、目標性能が「10000」、処理割合が「50％」、性能実測値が「5000」であるため、次の処理割合決定周期における処理割合が、次式
(数８)
10000×50／5000＝100〔％〕                                      ……（８）
のように算出される。
【００７１】
同様に、「業務２」については、次式
(数９)
5000×25／5000＝25〔％〕                                        ……（９）
「業務３」については、次式
(数１０)
2000×10／5000＝4〔％〕                                        ……（１０）
非優先指定業務群については、次式
(数１１)
100−（100＋25＋4）＝−29〔％〕                                ……（１１）
のように処理割合がそれぞれ算出及び決定される。
【００７２】
そして、このように非優先指定業務群の処理割合がマイナスになると、非優先指定業務群が処理されなくなる不都合が生じる。そこで、本実施の形態においては、上述した各優先指定業務及び非優先指定業務群の処理割合の下限値がいずれも「１」に設定されており、これら優先指定業務及び非優先指定業務群について、最低「１」の処理分を確保し得るようになされている。そして負荷制御部８は、優先指定業務及び非優先指定業務群のいずれかの処理割合が「０」又はマイナスになった場合、全体の平均をとって処理割合を決定する。
【００７３】
例えば、図８に示す例の場合、「業務１」については、次式
(数１２)
100／（100＋25＋4＋1）×100＝77〔％〕                          ……（１２）
のように処理割合を算出及び決定し、「業務２」については、次式
(数１３)
25／（100＋25＋4＋1）×100＝19〔％〕                            ……（１３）
のように処理割合を算出及び決定し、「業務３」については、次式
(数１４)
4／（100＋25＋4＋1）×100＝3〔％〕                              ……（１４）
のように処理割合を算出及び決定し、非優先指定業務については、次式
(数１５)
100−（77＋19＋3）＝1〔％〕                                      ……（１５）
のように処理割合を算出及び決定する。
【００７４】
このようにすることによって、各優先指定業務及び非優先指定業務の処理割合の総和が「100」となり、各業務の処理割合が「０」又はマイナスとなることはない。
【００７５】
続いて、図５のステップＳＰ５において説明したチャネルプロセッサ２１の処理について、図７を参照して説明する。図７は、ホスト装置２からのデータ入出力要求コマンドを受信したチャネルプロセッサ２１が行う処理の一連の手順を示したフローチャートである。
【００７６】
チャネルプロセッサ２１は、この処理割合に基づくデータ入出力処理を開始すると、まず、負荷制御部８により算出された各優先指定業務及び非優先指定業務群に対する処理割合の報告を受けているかを確認する（ＳＰ１０）。
【００７７】
そしてチャネルプロセッサ２１は、かかる処理割合の報告を受けているときには（ＳＰ１０：ＹＥＳ）、処理割合の受信内容を設定する（ＳＰ１１）。これに対してチャネルプロセッサ２１は、処理割合の受信内容が設定されるか、処理割合の報告を受けていないときには（ＳＰ１０：ＮＯ）、後述するステップＳＰ１２に進み、ホスト装置２からのコマンド指示を待ち受ける。
【００７８】
この後、チャネルプロセッサ２１は、ホスト装置２からのコマンド又はコマンドキューを受領すると（ＳＰ１２）、コマンド毎に付与されたＩＤがあるときは、かかるＩＤに基づいて、かかるコマンドがどの業務に対するコマンドであるかを判別する。またチャネルプロセッサ２１は、当該業務における処理回数の割合が、記憶システム１全体としての目標の処理割合以下であるかを確認する（ＳＰ１３）。
【００７９】
そしてチャネルプロセッサ２１は、コマンドが目標の処理割合以下であるときには（ＳＰ１３：ＹＥＳ）コマンド処理を実行する（ＳＰ１４）。これに対してチャネルプロセッサ２１は、コマンドが目標処理割合を超えているときには（ＳＰ１３：ＮＯ）、コマンド処理を行うことなく、コマンドを溜めるコマンドキューイングを行う（ＳＰ２１）。
【００８０】
チャネルプロセッサ２１は、コマンド処理を実行した後、当該業務における限界性能に加算を行うとともに（ＳＰ１５）、当該業務のコマンド処理回数及び記憶システム１全体の処理回数を確認する（ＳＰ１６）。チャネルプロセッサ２１は、処理回数の確認が終わるとき（ＳＰ１６）、又はコマンドキューイングが終了したときには（ＳＰ２１）、記憶システム１全体としての処理回数が１００になったか、又はカウンタクリア周期を経過したかを確認する（ＳＰ１７）。
【００８１】
チャネルプロセッサ２１は、記憶システム１全体の処理回数が１００になるか、カウンタクリア周期が経過しているときには（ＳＰ１７：ＹＥＳ）、記憶システム１全体の処理回数又はカウンタクリア周期をクリアして（ＳＰ１８）、さらに１秒間が経過するのを待ちうけ（ＳＰ１９：ＹＥＳ）、管理端末２４に対して限界性能を報告し（ＳＰ２０）、処理を終了する。さらに続けて処理を行うときには、ステップＳＰ１０に戻り、対象とする処理を続けて行う処理に順次切り替えながら同様の処理を繰り返す（ステップＳＰ１０〜ステップＳＰ２０）。１秒間経過するのを待ち受けないときには（ＳＰ１９：ＮＯ）、管理端末２４に対して限界性能を報告することなく、ステップＳＰ１０に戻り、対象とする処理を、続けて行う処理に順次切り替えながら同様の処理を繰り返す（ステップＳＰ１０〜ステップＳＰ２０）。
【００８２】
次に、図５に示したフローチャートにおいて、ステップＳＰ８終了後に、ステップＳＰ３に戻る場合の処理割合の決定方法について説明する。
【００８３】
図９は、第１回目の処理を終えた後に、第２回目の処理割合を決定するための一連の手順を示したフローチャートである。負荷制御部８のＣＰＵ４２は、優先指定業務群について、第２回目の処理割合を算出する（ＳＰ３０）。ＣＰＵ４２はさらに、非優先指定業務群の第２回目の処理割合を算出する（ＳＰ３１）。ＣＰＵ４２は、非優先指定業務の処理割合が０以下であるかを確認する（ＳＰ３２）。ＣＰＵ４２は、非優先指定業務の処理割合が０以下であるときには（ＳＰ３２：ＹＥＳ）、非優先指定業務の処理割合を「１」にし（ＳＰ３３）、優先指定業務群の処理割合を補正する（ＳＰ３４）。さらにＣＰＵ４２は、再度、非優先指定業務の処理割合を算出する（ＳＰ３５）。ＣＰＵ４２は、すべての業務の処理割合を決定すると、その処理割合を、各チャネルプロセッサ２１Ａ，２１Ｂ，２１Ｃ，２１Ｄ等に報告し（ＳＰ３６）、処理を終了する。
【００８４】
（２−３）本実施形態の効果
本実施形態によれば、優先指定業務について、ユーザが所望する目標性能に応じた頻度でデータ入出力処理を行うことができる。さらに、処理割合について、前の処理割合決定周期において取得した各優先指定業務及び非優先指定業務群の性能実測値に基づいた変更を行うことにより、優先指定業務についてのデータ入出力処理の頻度をより精度良く目標性能に近づけるような制御を行なうことができる。
【００８５】
（３）他の実施の形態
なお、本実施形態においては、同一のストレージ装置４内において、複数のコントローラ部２０を有する場合について述べた。しかし、本発明はこれに限らず、図１１に示すように、単数のコントローラ部２０を有してもよい。
【００８６】
また、本実施形態においては、ストレージ装置４が一つのホスト装置２に接続される場合について述べた。しかし、本発明はこれに限らず、図１２に示すように、複数のホスト装置２に接続されてもよい。
【００８７】
さらに、本実施形態においては特に言及していないが、時間帯により業務の使用頻度が変わり、時間帯により業務の処理割合を変更したいときには、時間帯ごとに目標性能を管理端末２４にてあらかじめ設定しておき、負荷制御部８のＣＰＵ４２がその設定に従って当該時刻毎になったところで目標性能を再設定することにより、記憶システム１の運用開始時に一通りの設定を行うだけで連続稼動が可能となるように設定してもよい。図１０に示すように、「業務１」というＩＤの優先指定業務について、６時から７時は目標性能値を「10000」とし、７時から８時には「5000」、８時から９時には「2000」のように時間帯に応じて目標性能値を変更するようにしてもよい。
【００８８】
また、本実施形態では、データ入出力優先処理の制御対象となるデータ入出力処理要求の種別であるターゲットが、データ入出力要求を発行した業務（アプリケーション）毎に区別される例を述べた。しかし、本発明はこれに限らず、図１３に示すように、データの読書きをする対象となるデバイス（ＬＤＥＶ）でもよい。また、ターゲットとは、データ処理を行うための処理の単位としてもよく、データ処理をするプログラムごとに区別してもよいし、データを格納する領域ごとに区別してもよいし、その他でもよい。
【産業上の利用可能性】
【００８９】
本発明は、種々の構成の記憶システムに広く適用することができる。
【図面の簡単な説明】
【００９０】
【図１】本実施の形態による記憶システム１を示すブロック図である。
【図２】本実施の形態による目標性能設定テーブル５０の構成を示す図である。
【図３】本実施の形態による性能実測値テーブル５２の構成を示す図である。
【図４】本実施の形態による性能実測値テーブル５３の構成を示す図である。
【図５】本実施の形態による処理フローを示すフローチャートである。
【図６】本実施の形態によるデータ入出力処理順序表を示す図である。
【図７】チャネルプロセッサ２１による処理フローを示すフローチャートである。
【図８】本実施の形態による性能実測値テーブルの構成を示す図である。
【図９】処理割合を再設定する処理フローを示すフローチャートである。
【図１０】時間帯ごとに業務の処理割合を変更する場合のテーブルの構成を示す図である。
【図１１】単数のコントロール部２０を備えた記憶システム１を示すブロック図である。
【図１２】複数のホスト装置２を備えた記憶システム１を示すブロック図である。
【図１３】本実施の形態によるデータ入出力処理順序表を示す図である。
【符号の説明】
【００９１】
１……記憶システム、２……ホスト装置、４……ストレージ装置、５……ＩＰネットワーク、６……管理サーバ、７……稼動情報監視部、８・……負荷制御部、１０……ＣＰＵ、１１……メモリ、２０……コントロール部、２１……チャネルアダプタ、２２……ポート、２４……管理端末、３０……ディスクデバイス部。
【図１】
2008059478.tif 000003
【図２】
2008059478.tif 000004
【図３】
2008059478.tif 000005
【図４】
2008059478.tif 000006
【図５】
2008059478.tif 000007
【図６】
2008059478.tif 000008
【図７】
2008059478.tif 000009
【図８】
2008059478.tif 000010
【図９】
2008059478.tif 000011
【図１０】
2008059478.tif 000012
【図１１】
2008059478.tif 000013
【図１２】
2008059478.tif 000014
【図１３】
2008059478.tif 000015