情報処理装置、前記情報処理装置と自装置との間のインターフェースであるポート、及び自装置が有する記憶装置に設定された優先度に基づいて決定される入出力処理数の上限値を算出する算出部と、前記情報処理装置から受付けた入出力処理数と、算出された前記上限値とに基づいて、入出力処理の実行順をスケジュールするスケジュール部と、前記スケジュール部によりスケジュールされた前記実行順で入出力処理を実行する実行部とを有することを特徴とするストレージ装置。前記ストレージ装置が、入出力処理の実行数と、自装置が有する入出力処理の処理容量とに基づいて、特定の入出力処理の負荷状況が変化したか否かを判定する判定部と、前記判定部により入出力処理の負荷状況が変化したと判定された場合、前記特定の入出力処理の入出力処理数を決定する前記優先度を変更する変更部とを更に有し、前記スケジュール部は、前記変更部により変更された優先度から決定される入出力処理数の上限値と、前記情報処理装置から受付けた入出力処理数とに基づいて、入出力処理の実行順をスケジュールすることを特徴とする請求項1に記載のストレージ装置。前記判定部は、特定の入出力処理の実行数が、前記処理容量に基づく実行可能な入出力処理数を所定の時間継続して下回り続けた場合に、特定の入出力処理の負荷状況が変化したと判定し、前記変更部は、前記判定部により特定の入出力処理の負荷状況が変化したと判定された場合、前記特定の入出力処理の入出力処理数を決定する前記優先度を変更することを特徴とする請求項2に記載のストレージ装置。前記判定部は、前記優先度を変更後、特定の入出力処理の実行数が、前記処理容量に基づく実行可能な入出力処理数を所定の時間継続して下回り続けているか否かを判定し、前記変更部は、前記判定部により特定の入出力処理の実行数が、前記処理容量に基づく実行可能な入出力処理数を所定の時間継続して下回り続けていないと判定された場合に、前記優先度を変更前の値に変更することを特徴とする請求項3に記載のストレージ装置。前記判定部は、特定の入出力処理が、前記処理容量に基づく実行可能な入出力処理数を所定の時間継続して占有した場合に、特定の入出力処理の負荷状況が変化したと判定し、前記変更部は、前記判定部により特定の入出力処理の負荷状況が変化したと判定された場合、前記特定の入出力処理の入出力処理数を決定する前記優先度を設定された値より低い値に変更することを特徴とする請求項2に記載のストレージ装置。前記判定部は、前記優先度を設定された値より低い値に変更後、特定の入出力処理が、前記処理容量に基づく実行可能な入出力処理数を所定の時間継続して占有しているか否かを判定し、前記変更部は、前記判定部により特定の入出力処理が、前記処理容量に基づく実行可能な入出力処理数を所定の時間継続して占有していないと判定された場合に、前記優先度を変更前の値に変更することを特徴とする請求項5に記載のストレージ装置。前記ストレージ装置が、前記情報処理装置から入出力処理を受付けるとともに、実行待ちの入出力処理があるか否かを判定する受信部を更に有し、前記スケジュール部は、前記受信部により実行待ちの入出力処理があると判定された場合、前記所定の時間が経過した後に入出力処理の実行順をスケジュールすることを特徴とする請求項1に記載のストレージ装置。情報処理装置、前記情報処理装置と自装置との間のインターフェースであるポート、及び記憶装置のそれぞれに設定された優先度を示す情報を記憶する記憶部と、自装置と接続する情報処理装置、前記情報処理装置が使用する記憶装置が変化した場合に、前記記憶部が記憶する情報を更新する更新部とを更に有することを特徴とする請求項1に記載のストレージ装置。ストレージ装置が、情報処理装置、前記情報処理装置と自装置との間のインターフェースであるポート、及び自装置が有する記憶装置に設定された優先度に基づいて決定される入出力処理数の上限値を算出し、前記情報処理装置から受付けた入出力処理数と、算出した前記上限値とに基づいて、入出力処理の実行順をスケジュールし、スケジュールされた前記実行順で入出力処理を実行することを特徴とするストレージ装置の制御方法。ストレージ装置に、情報処理装置、前記情報処理装置と自装置との間のインターフェースであるポート、及び自装置が有する記憶装置に設定された優先度に基づいて決定される入出力処理数の上限値を算出し、前記情報処理装置から受付けた入出力処理数と、算出した前記上限値とに基づいて、入出力処理の実行順をスケジュールし、スケジュールされた前記実行順で入出力処理を実行させるためのストレージ装置制御プログラム。しかしながら、上述した従来の技術では、ストレージのQoS機能を容易に実現することができない場合がある。具体的には、サーバAが優先度を指定してコマンドを送信する場合、ストレージ装置は、サーバごとに相対的な性能を割当てる。言い換えると、優先度は、ストレージ装置を共有するサーバの台数に依存し、絶対的なリソースを分配することはできない。このため、ストレージ装置を共有するサーバの台数が増えた場合、サーバAが優先度を指定してコマンドを送信しても、ストレージ装置がサーバAの処理に割当てるリソースは低下する。さらに、この場合、ストレージ装置とサーバとを連携する専用のソフトウェアも必要になる。また、ストレージ装置側でサーバやLUNごとに目標性能や性能制限を設定する場合、優先度の高いサーバだけがリソースを占有し、優先度の低いサーバは処理を実行できない場合が起こりうる。また、この場合、サーバごとLUNごとに具体的な性能値を設定することが煩雑である。1つの側面では、ストレージのQoS機能を容易に実現することができるストレージ装置、ストレージ装置の制御方法及びストレージ装置制御プログラムを提供することを目的とする。本件のストレージ装置は、情報処理装置、情報処理装置と自装置との間のインターフェースであるポート、及び自装置が有する記憶装置に設定された優先度に基づいて決定される入出力処理数の上限値を算出する。また、ストレージ装置は、情報処理装置から受付けた入出力処理数と、算出した上限値とに基づいて、入出力処理の実行順をスケジュールする。そして、ストレージ装置は、スケジュールされた実行順で入出力処理を実行する。ストレージのQoS機能を容易に実現することができる。以下に、本願の開示するストレージ装置、ストレージ装置の制御方法及びストレージ装置制御プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。[実施例1に係るストレージシステムの構成]図1は、実施例1に係るストレージシステムの構成の一例を示す図である。図1に示すように、ストレージシステム1は、ホスト10a、ホスト10b及びストレージ装置100を有する。また、ストレージシステム1において、ストレージ装置100は、ホスト10a及びホスト10bと接続される。なお、ストレージ装置100と接続するホストの数は図示に限定されるものではなく、変更可能である。[ホストの構成]続いて、図1を用いて、ホスト10a及びホスト10bの構成を説明する。ホスト10a及びホスト10bは、サーバなどの情報処理装置である。ホスト10aは、FCFibreChannel-AAdapter11a、FC-A12a、iSCSISmallComputerSystemInterface-A13a、iSCSI-A14aを有する。FC-Aは通常FC-HBAHostBusAdapterの形態であり、iSCSI-Aは通常NICNetworkInterfaceCardを使用しそこでiSCSIプロトコルを動作させる形態である。FC-A11aは、後述するCMControllerModule200a内のFC-CA201aとFCで接続するインターフェースである。また、同様に、FC-A12aは、後述するCM200b内のFC-CA201bとFCで接続するインターフェースである。また、iSCSI-A13aは、後述するCM200a内のiSCSI-CA202aとiSCSIで接続するインターフェースである。同様に、iSCSI-A14aは、後述するCM200b内のiSCSI-CA202bとiSCSIで接続するインターフェースである。ホスト10bは、FC-A11b、FC-A12b、iSCSI-A13b、iSCSI-A14bを有する。FC-A11bは、FC-A11aに対応し、FC-A12bは、FC-A12aに対応する。また、iSCSI-A13bは、iSCSI-A13aに対応し、iSCSI-A14bは、iSCSI-A14aに対応する。なお、以下の説明では、ホスト10aとホスト10bとを区別せず一般化して称する場合には、ホスト10として記載する。[実施例1に係るストレージ装置の構成]続いて、図1を用いて、実施例1に係るストレージ装置100の構成を説明する。実施例1に係るストレージ装置100は、HDDHardDiskDrive101a~101dと、CM200a、200bを有する。HDD101a~101dは、RAIDRedundantArraysofInexpensiveDisksを構成し、ユーザデータを記憶する。なお、ストレージ装置100が有するHDD、CMの数は図示したものに限定されるものではなく、変更可能である。また、ストレージ装置100は、HDD101a~101dを論理的に分割したLUNとして使用される。このLUNは、それぞれが論理的な1台のHDDとしてホスト10a、10bにより認識される。CM200aは、FC-CA201a、iSCSI-CA202a、SASSerialAttachedSCSI203a、メモリ210a及びCPUCentralProcessingUnit220aを有する。FC-CA201aは、ホスト10a及びホスト10bとFCで接続するインターフェースである。iSCSI-CA202aは、ホスト10a及びホスト10bとiSCSIで接続するインターフェースである。SAS203aは、HDD101a~101dと、SASで接続するインターフェースである。なお、以下の説明では、FC-CA201及びiSCSI-CA202のことを一般化して称する場合には適宜ポートと記載する。メモリ210aは、例えば、RAMなどの半導体メモリ素子であり、キャッシュ域211aと制御域212aとを有する。キャッシュ域211aは、ホスト10aまたはホスト10bと、HDD101a~101dのいずれかとの間でやり取りされるデータを一時的に保持する。制御域212aは、ストレージ装置100が実行する各種の処理に要する情報を保持する。また、制御域212aは各種プログラム等も格納されている。CPU220aは、演算や制御などの各種処理を行う電子回路である。CM200bは、FC-CA201b、iSCSI-CA202b、SAS203b、メモリ210b及びCPU220bを有する。FC-CA201bは、FC-CA201aに対応し、iSCSICA202bは、iSCSICA202aに対応し、SAS203bは、SAS203aに対応する。また、メモリ210bは、メモリ210aに対応し、CPU220bは、CPU220aに対応する。このようなストレージシステム1では、ストレージ装置100のCPU220a、220bは、ファームウェアによって以下の処理を実行する。すなわち、ストレージ装置100は、ホスト10と、ポートと、LUNとに設定された優先度に基づいて決定される入出力処理数の上限値を所定の時間毎に算出する。また、ストレージ装置100は、ホスト10から受付けた入出力処理数と、算出された上限値とに基づいて、入出力処理の実行順をスケジュールする。そして、ストレージ装置100は、スケジュールされた入出力処理を実行する。このようにして、ストレージ装置100は、ホストIOの状況やホストの接続環境の変化に応じて、ストレージ性能を最適に制御する。[ファームウェアにより実現される処理部の機能構成]次に、図2を用いて、ストレージ装置100により実行されるファームウェアにより実現される処理部の機能構成を説明する。図2は、ストレージ装置により実行されるファームウェアにより実現される処理部の機能構成を示す機能ブロック図である。なお、ストレージ装置100により実行されるファームウェアにより実現される処理部300は、メモリ210a及びメモリ210bと、CPU220a及びCPU220bとが協働して実現される。図2に示すように、処理部300は、FCI/F制御部301、iSCSII/F制御部302、SCSIターゲット制御部303、SCSIコマンド制御部304、リソース制御部305、キャッシュ制御部306、RAID制御部307を有する。また、処理部300は、ディスク制御部308、SASI/F制御部309、メモリ制御部310、カーネル部311、システム構成制御部312、保守インターフェース制御部313を有する。FCI/F制御部301は、ホストとFC接続する場合のFCプロトコルチップの制御を行う。iSCSII/F制御部302は、ホストとiSCSI接続する場合のiSCSIプロトコルチップの制御を行う。SCSIターゲット制御部303は、SCSIターゲットの制御を行う。例えば、SCSIターゲット制御部303は、ホスト管理、LUN管理、コマンド実行管理、コマンド以外の異常系イベント管理などを行う。なお、SCSIターゲット制御部303の詳細な機能については後述する。SCSIコマンド制御部304は、SCSIコマンド種ごとの制御を行う。リソース制御部305は、全CMをまたいでの論理ボリューム管理、ホストパス管理、負荷管理を行う。キャッシュ制御部306は、キャッシュメモリの管理を行う。RAID制御部307は、RAIDグループの管理を行う。ディスク制御部308は、ディスクコマンド制御を行う。SASI/F制御部309は、ディスクとSAS接続するプロトコルチップの制御を行う。メモリ制御部310は、各制御部が使用する制御メモリを管理する。カーネル部311は、基本ソフト部であり、各制御部の下位に位置する。システム構成制御部312は、ストレージ装置100の構成情報を管理する。保守インターフェース制御部313は、保守用のユーザインターフェースを制御する。[実施例1に係るSCSIターゲット制御部の機能構成]次に、図3を用いて、SCSIターゲット制御部303の機能構成を説明する。図3は、SCSIターゲット制御部の機能構成を示す機能ブロック図である。図3に示すように、SCSIターゲット制御部303は、QoS管理テーブル501、待ちキュー格納部502、性能設定部503、コマンド受信部504、算出部505、スケジュール部506、実行部507を有する。QoS管理テーブル501は、対象ごとに、優先順位、性能値、実行可能な入出力処理数、実行した入出力処理数を対応付けた情報を記憶する。ここでは、QoS管理テーブル501の詳細な説明をする前に、まず、図4を用いて優先順位と性能値との対応関係について説明する。図4は、優先順位と性能値との対応関係の一例を示す図である。図4に示すように、優先順位は、優先度を示し、例えば、1から15までの15段階のレベルが設定される。なお、優先順位のレベルは、例示に過ぎず、1から15の15段階に限定されるものではない。また、優先順位の段階ごとに性能値が対応付けられる。言い換えると、優先順位は、性能制限を示す。この性能値として、単位時間当たりの通信量であるMB/s、単位時間当たりに実行可能な入出力処理数であるIOPSInputOutputPerSecondが用いられる。図4に示す例では、優先順位が1に設定される場合、単位時間当たりの通信量が750MB/sであり、単位時間当たりに37500の入出力処理を実行することを示す。また、同様に、優先順位が3に設定される場合、単位時間当たりの通信量が650MB/sであり、単位時間当たりに32500の入出力処理を実行することを示す。次に、図5を用いてQoS管理テーブル501の一例を説明する。図5は、QoS管理テーブルの一例を示す図である。図5に示すように、QoS管理テーブル501は、対象、優先順位、Nミリ秒IO数、Nミリ秒ブロック数、限界IO数、限界ブロック数、現IO数及び現ブロック数を対応付けた情報を記憶する。ここで、QoS管理テーブル501が記憶する対象は、優先順位を設定する対象を示す。ここで、ポート、ホスト、ホストとLUNとの組合せのそれぞれが優先順位を設定する対象となる。例えば、対象には、FC-CA201a、ホスト10a、ホスト10a-LUN-Aなどが格納される。なお、以下の説明では、対象としてホストとLUNとの組合せを指す場合については、単に、LUNとして適宜記載する。優先順位は、対象に設定された優先度を示す。ここでは、優先順位のレベルが1から15までの15段階のいずれかのレベルが設定されるものとする。例えば、優先順位には、3、5、7などのレベルが格納される。Nミリ秒IO数は、所定の時間の間に実行可能なIO数を示す。ここで、所定の時間として、例えば10ミリ秒が設定される。また、Nミリ秒IO数には、例えば、325、275、225などの値が格納される。Nミリ秒ブロック数は、所定の時間の間に書込み可能なブロック数を示す。この、ブロック数は、1ブロックを512Byteとして、単位時間当たりの通信量MB/sから算出される。なお、ここでは、所定の時間として、例えば10ミリ秒が設定される。すなわち、Nミリ秒ブロック数には、10ミリ秒間に書込み可能なブロック数として、例えば、13312、11264、9216などの値が格納される。限界IO数は、現時点での実行可能なIO数の上限値を示す。この限界IO数は、Nミリ秒IO数にNミリ秒が経過した回数nを乗じた値から、後述する現IO数を減算することによって算出される。例えば、限界IO数には、325×n-a、275×n-b、225×n-cなどの値が格納される。なお、nは、Nミリ秒が経過した回数であり、aからcは、後述するように、対応する現IO数の値である。限界ブロック数は、現時点での書込み可能なブロック数の上限値を示す。この限界ブロック数は、Nミリ秒ブロック数にNミリ秒が経過した回数nを乗じた値から、後述する現ブロック数を減算することによって算出される。例えば、限界ブロック数には、13312×n-A、11264×n-B、9216×n-Cなどの値が格納される。なお、nは、Nミリ秒が経過した回数であり、AからCは、後述するように、対応する現ブロック数の値である。現IO数は、所定の時間までに要求されたIO数の累積値を示す。例えば、現IO数には、a、b、cなどが格納される。現ブロック数は、所定の時間までに要求されたブロック数の累積値を示す。例えば、現ブロック数には、A、B、Cなどが格納される。図5に示す例では、QoS管理テーブル501は、ポートの優先順位が3であり、Nミリ秒IO数が325であり、Nミリ秒ブロック数が13312であることを示す。また、QoS管理テーブル501は、限界IO数が325×n-aであり、限界ブロック数が13312×n-Aであり、現IO数がaであり、現ブロック数がAであることを示す。なお、QoS管理テーブル501が記憶する対象、優先順位、Nミリ秒IO数、Nミリ秒ブロック数は、後述する性能設定部503により初期設定される値である。また、QoS管理テーブル501が記憶する限界IO数、限界ブロック数、現IO数及び現ブロック数はNミリ秒ごとに更新される値である。待ちキュー格納部502は、キューであり、コマンド受信部504が受信したコマンドのうち、所定時間経過後にスケジュールされるコマンドを格納する。また、この待ちキュー格納部502は、ホストとLUNとの組合せごとに設けられる。性能設定部503は、QoS管理テーブル501が記憶する情報のうち、対象、優先順位、Nミリ秒IO数、Nミリ秒ブロック数のそれぞれに管理者から受付けた値を設定する。なお、管理者は、ホストの性能やホストが実行するアプリケーションなどを加味して優先順位を設定する。また、性能設定部503は、ストレージ装置100に接続するホスト、ホストが使用するLUNの組合せが変化した場合に、QoS管理テーブル501が記憶する情報を更新する。コマンド受信部504は、いずれからのホストからコマンドを受付けるとともに、実行待ちのコマンドがあるか否かを判定する。例えば、コマンド受信部504は、実行待ちのコマンドがあると判定した場合、受信したコマンドを待ちキュー格納部502に格納させる。また、コマンド受信部504は、実行待ちのコマンドがないと判定した場合、後述するスケジュール部506に受信したコマンドの実行順をスケジュールさせる。算出部505は、ホスト10、ポート及びLUNごとに設定された優先順位に基づいて決定される限界IO数と限界ブロック数とを所定の時間毎に算出する。ここでは、算出部505は、10ミリ秒ごとに限界IO数と限界ブロック数とを算出するものとして説明する。例えば、算出部505は、10ミリ秒ごとに、限界IO数の値に、Nミリ秒IO数を加算する。また、算出部505は、10ミリ秒ごとに、限界ブロック数の値に、Nミリ秒ブロック数を加算する。算出部505は、算出した限界IO数と限界ブロック数とをQoS管理テーブル501に格納させる。スケジュール部506は、ホストから受付けたコマンド数と、算出部505により算出された限界IO数及び限界ブロック数とに基づいて、コマンドの実行順をスケジュールする。例えば、スケジュール部506は、所定の時間が経過するごとに、コマンドの実行順をスケジュールする。スケジュール部506は、マークしたホストとマークしたLUNとを復元する。そして、スケジュール部506は、復元したホストとLUNとの組合せから順に、以下の処理を実行する。なお、ホストのマーク及びLUNのマークについては後述する。まず、スケジュール部506は、ホストから受付けたコマンド数が、算出部505により算出されたホスト、ポート、LUNそれぞれの限界IO数及び限界ブロック数以内で処理可能であるか否かを判定する。ここで、スケジュール部506は、受付けたコマンド数が限界IO数及び限界ブロック数以内であり、処理可能であると判定した場合、実行部507にコマンドを起動させる。また、スケジュール部506は、処理可能であると判定した場合、QoS管理テーブル501が記憶する現IO数に、起動したコマンド分のIO数を加算した値を格納させる。同様に、スケジュール部506は、処理可能であると判定した場合、QoS管理テーブル501が記憶する現ブロック数に、起動したコマンド分のブロック数を加算した値を格納させる。また、スケジュール部506は、処理可能であると判定した場合、QoS管理テーブル501が記憶する限界IO数に、起動したコマンド分のIO数を減算した値を格納させる。同様に、スケジュール部506は、処理可能であると判定した場合、QoS管理テーブル501が記憶する限界ブロック数に、起動したコマンド分のブロック数を減算した値を格納させる。一方、スケジュール部506は、受付けたコマンド数が限界IO数及び限界ブロック数以内ではないと判定した場合、所定の時間が経過した後に、ホストから受付けたコマンド数が、新たに算出された限界IO数及び限界ブロック数以内であるか否かを判定する。例えば、スケジュール部506は、受付けたコマンド数がポートの限界IO数及び限界ブロック数以内ではないと判定した場合、ホストとLUNの組合せをマークし、所定の時間が経過後に、マークしたホストとLUNの組合せからスケジュールを実行する。また、例えば、スケジュール部506は、ポートの限界IO数及び限界ブロック数以内ではあるが、ホストの限界IO数及び限界ブロック数以内ではないと判定した場合、LUNをマークする。そして、スケジュール部506は、次のLUNをセットし、ホストから受付けたコマンド数が、新たに算出された限界IO数及び限界ブロック数以内であるか否かを判定する。ここで、次のLUNが無い場合、スケジュール部506は、次のホストをセットし、受付けたコマンド数が、新たに算出された限界IO数及び限界ブロック数以内であるか否かを判定する。また、スケジュール部506は、コマンド受信部504により実行待ちのコマンドがないと判定された場合、所定の時間が経過するのを待つことなくコマンドの実行順をスケジュールする。例えば、スケジュール部506は、ホストから受付けたコマンド数が、算出部505により算出されたホスト、ポート、LUNそれぞれの限界IO数及び限界ブロック数以内で処理可能であるか否かを判定する。ここで、スケジュール部506は、ホストから受付けたコマンド数が、ポート、ホスト、LUNのいずれかの限界IO数及び限界ブロック数以内で処理可能ではないと判定した場合、コマンドを待ちキュー格納部502に格納する。そして、スケジュール部506は、所定の時間が経過した後に、ホストから受付けたコマンド数が、新たに算出された限界IO数及び限界ブロック数以内であるか否かを判定する。実行部507は、スケジュール部506によりスケジュールされた実行順でコマンドを待ちキュー格納部502からデキューし、コマンドを起動して入出力処理を実行する。なお、SCSIターゲット制御部303の各機能は、メモリ210a及びメモリ210bと、CPU220a及びCPU220bとが協働して実現される。[実施例1に係るストレージ装置よる処理の処理手順]次に図6から図8を用いて、実施例1に係るストレージ装置100による処理の処理手順を説明する。ここでは、図6を用いて、Nミリ秒タイマスケジュール処理の処理手順について説明し、図7を用いて、QoSIOスケジュール処理の処理手順について説明し、図8を用いて、ストレージ装置100によるコマンド受信時の処理の処理手順を説明する。Nミリ秒タイマスケジュール処理図6は、Nミリ秒タイマスケジュール処理の処理手順を示すフローチャートである。図6に示すように、算出部505は、ポート限界値を加算するステップS101。また、算出部505は、全ホスト限界値を加算するステップS102。また、算出部505は、全LUN限界値を加算するステップS103。そして、スケジュール部506は、QoSIOスケジュール処理を実行するステップS104。QoSIOスケジュール処理図7は、QoSIOスケジュール処理の処理手順を示すフローチャートである。Nミリ秒タイマスケジュール処理のステップS104の詳細処理である。図7に示すように、スケジュール部506は、マークしたホストを復元するステップS201。続いて、スケジュール部506は、マークしたLUNを復元するステップS202。そして、スケジュール部506は、待ちキュー格納部502内に次のコマンドがあるか否かを判定するステップS203。ここで、スケジュール部506は、待ちキュー格納部502内に次のコマンドがあると判定した場合ステップS203、Yes、コマンド数がポートの限界IO数、限界ブロック数以内であるか否かを判定するステップS204。そして、スケジュール部506は、コマンド数がポートの限界IO数、限界ブロック数以内であると判定した場合ステップS204、Yes、コマンド数がホストの限界IO数、限界ブロック数以内であるか否かを判定するステップS205。ここで、スケジュール部506は、コマンド数がホストの限界IO数、限界ブロック数以内であると判定した場合ステップS205、Yes、コマンド数がLUNの限界IO数、限界ブロック数以内であるか否かを判定するステップS206。そして、スケジュール部506は、コマンド数がLUNの限界IO数、限界ブロック数以内であると判定した場合ステップS206、Yes、ポートの限界値からコマンド分のIO数分とブロック数分とを減算するステップS207。また、スケジュール部506は、ホストの限界値からコマンド分のIO数分とブロック数分とを減算するステップS208。続いて、スケジュール部506は、LUNの限界値からコマンド分のIO数分とブロック数分とを減算するステップS209。そして、実行部507は、コマンドを起動するステップS210。また、コマンドを起動した後、実行部507は、コマンドを待ちキュー格納部502からデキューするステップS211。この処理の後、ストレージ装置100は、ステップS203に移行する。また、スケジュール部506は、コマンド数がポートの限界IO数、限界ブロック数以内ではないと判定した場合ステップS204、No、ホストとLUNとをマークしステップS212、処理を終了する。また、スケジュール部506は、コマンド数がホストの限界IO数、限界ブロック数以内ではないと判定した場合ステップS205、No、LUNをマークしステップS213、ステップS216に移行する。また、スケジュール部506は、待ちキュー格納部502内に次のコマンドがないと判定した場合ステップS203、No、ステップS214に移行する。また、スケジュール部506は、コマンド数がLUNの限界IO数、限界ブロック数以内ではないと判定した場合ステップS206、No、ステップS214に移行する。ステップS214において、スケジュール部506は、次のLUNをセットする。そして、スケジュール部506は、次のLUNがマークしたLUNと同じLUNであるか否かを判定するステップS215。ここで、スケジュール部506は、次のLUNがマークしたLUNと同じLUNではないと判定した場合ステップS215、No、ステップS203に移行する。一方、スケジュール部506は、次のLUNがマークしたLUNと同じLUNであると判定した場合ステップS215、Yes、次のホストをセットするステップS216。続いて、スケジュール部506は、次のホストがマークしたホストと同じホストであるか否かを判定するステップS217。ここで、スケジュール部506は、次のホストがマークしたホストと同じホストではないと判定した場合ステップS217、No、ステップS202に移行する。一方、スケジュール部506は、次のホストがマークしたホストと同じホストであると判定した場合ステップS217、Yes、処理を終了する。コマンド受信時の処理図8は、ストレージ装置によるコマンド受信時の処理の処理手順を示すフローチャートである。ストレージ装置100は、例えば、コマンドを受信したことを契機にこの処理を実行する。図8に示すように、コマンド受信部504は、受信したコマンドのホストとLUNとの間で待ちIOがないか否かを判定するステップS301。ここで、コマンド受信部504により受信したコマンドのホストとLUNとの間で待ちIOがないと判定された場合ステップS301、Yes、スケジュール部506は、以下の処理を実行する。すなわち、スケジュール部506は、コマンド数がポートの限界IO数、限界ブロック数以内であるか否かを判定するステップS302。そして、スケジュール部506は、コマンド数がポートの限界IO数、限界ブロック数以内であると判定した場合ステップS302、Yes、コマンド数がホストの限界IO数、限界ブロック数以内であるか否かを判定するステップS303。ここで、スケジュール部506は、コマンド数がホストの限界IO数、限界ブロック数以内であると判定した場合ステップS303、Yes、コマンド数がLUNの限界IO数、限界ブロック数以内であるか否かを判定するステップS304。そして、スケジュール部506は、コマンド数がLUNの限界IO数、限界ブロック数以内であると判定した場合ステップS304、Yes、ポートの限界値からコマンド分のIO数分とブロック数分とを減算するステップS305。また、スケジュール部506は、ホストの限界値からコマンド分のIO数分とブロック数分とを減算するステップS306。続いて、スケジュール部506は、LUNの限界値からコマンド分のIO数分とブロック数分とを減算するステップS307。また、実行部507は、コマンドを起動するステップS308。ストレージ装置100は、ステップS308の終了後、処理を終了する。コマンド受信部504は、受信したコマンドのホストとLUNとの間で待ちIOがあると判定した場合ステップS301、No、ステップS309に移行する。また、スケジュール部506は、コマンド数がポートの限界IO数、限界ブロック数以内ではないと判定した場合ステップS302、No、ステップS309に移行する。また、スケジュール部506は、コマンド数がホストの限界IO数、限界ブロック数以内ではないと判定した場合ステップS303、No、ステップS309に移行する。また、スケジュール部506は、コマンド数がLUNの限界IO数、限界ブロック数以内ではないと判定した場合ステップS304、No、ステップS309に移行する。そして、コマンド受信部504は、ステップS309において、コマンドを待ちキュー格納部502にエンキューし、処理を終了する。[実施例1の効果]このように、実施例1に係るストレージ装置100は、ストレージのQoS機能を容易に実現することができる。次に、図9を用いて、実施例1に係るストレージ装置100による効果の一例を説明する。図9は、実施例1に係るストレージ装置による効果の一例を示す図である。図9に示す例では、ホストAがLUN-A、LUN-Bにアクセス可能であり、ホストBがLUN-Cにアクセス可能である場合を説明する。また、ここでは、ホストAの性能制限が200MB/s、ホストBの性能制限が150MB/sであるものと仮定する。また、LUN-Aの性能制限が150MB/s、LUN-Bの性能制限が100MB/s、LUN-Cの性能制限が100MB/s、ポートの性能制限が250MB/sであるものと仮定する。まず、ホストAのみが、LUN-Aのみを150MB/sの通信量で使用する場合を説明する。この通信量は、LUN-Aの性能150MB/s、ホストAの性能制限200MB/s、ポートの性能制限250MB/sのいずれにも到達しない。このため、スケジュール部506は、受付けたコマンドを所定の時間を待つことなく、性能制限までスケジュールする。この結果、ストレージ装置100では、ホストAによるLUN-Aへのアクセスを150MB/sで処理できる。次に、ホストAのみが、LUN-Aを150MB/sの通信量で使用し、LUN-Bを100MB/sの通信量で使用する場合を説明する。この通信量の和は、LUN-Aの性能150MB/s、LUN-Bの性能100MB/s、ポートの性能制限250MB/sのいずれにも到達しないが、ホストAの性能制限200MB/sを越える。このため、ホストAから受付けたコマンドは、その場でスケジュールされるものと、待ちキュー格納部502に格納した後、スケジュール部506により、Nミリ秒タイマスケジュールによりスケジュールされるものが出てくる。この結果、LUN-AとLUN-Bのそれぞれの性能はおおよそ以下の通り制限される。ホストAによるLUN-Aへのアクセスは、200MB/s×150/150100=120MB/s、ホストAによるLUN-Bへのアクセスは、200MB/s×100/150100=80MB/sとなる。次に、ホストAが、LUN-Aを150MB/sの通信量で使用し、LUN-Bを100MB/sの通信量で使用し、ホストBがLUN-Cを100MB/sの通信量で使用する場合を説明する。この通信量の総和350MB/sは、ポートの性能制限250MB/sを超える。このため、ホストA及びホストBから受付けたコマンドは、その場でスケジュールされるものと、待ちキュー格納部502に格納した後、スケジュール部506により、Nミリ秒タイマスケジュールによりスケジュールされるものが出てくる。この結果、ストレージ装置100では、例えばおおよそ以下のようなそれぞれの性能で処理を実行する。すなわち、ホストAによるLUN-Aへのアクセスは、250MB/s×150/150100100=107MB/sとなる。また、ホストAによるLUN-Bへのアクセスは、250MB/s×100/150100100=71MB/sとなる。また、ホストBによるLUN-Cへのアクセスは、250MB/s×100/150100100=71MB/sとなる。このように、実施例1に係るストレージ装置100は、使用されるホストとLUNとの組合せの性能レベルに従って、ストレージ装置100の性能を配分し、ストレージのQoS機能を容易に実現することができる。実施例1では、使用されるホストとLUNとの組合せの性能レベルに従って、ストレージ装置100の性能を配分する例について説明した。ところで、ストレージ装置100において、ある時間帯では特定のホスト、あるいは特定のLUNのみ使用される場合がある。このようなことから、ホストやLUNの使用状況に応じて、性能の配分を動的に調整してもよいものである。そこで、実施例2では、ストレージ装置100が、Nミリ秒タイマスケジュール内の処理で、限界値を変更する場合を説明する。例えば、ストレージ装置100は、所定の時間継続して、実際のI/Oの性能がストレージ全体の性能を下回り続けたことを検出した場合、限界までI/OがあったLUNなどで、設定された性能レベルを格上げする。[実施例2に係るストレージシステム及びストレージ装置の構成]実施例2に係るストレージシステムの構成は、ストレージ装置が実行するファームウェアにおいて、SCSIターゲット制御部の機能構成が異なる点を除いて、図1に示した実施例1に係るストレージシステムの構成と同様である。このため、実施例2に係るストレージシステムの構成、実施例2に係るストレージ装置の構成については、説明を省略する。[実施例2に係るSCSIターゲット制御部の機能構成]次に、図10を用いて、実施例2に係るSCSIターゲット制御部の機能構成を説明する。図10は、実施例2に係るSCSIターゲット制御部の機能構成を示す機能ブロック図である。なお、実施例1に係るSCSIターゲット制御部と同様の構成については同一の符号を付与し、説明を省略する。図10に示すように、実施例2に係るSCSIターゲット制御部600は、QoS管理テーブル501、待ちキュー格納部502、性能設定部503、コマンド受信部504、算出部505、スケジュール部506、実行部507、判定部602、変更部603を有する。判定部602は、コマンドの実行数と、ストレージ装置100の全体性能とに基づいて、入出力処理の負荷状況が変化したか否かを判定する。なお、ここでいうストレージ装置100の全体性能とは、ストレージ装置100の物理的な性能であり、例えば、HDD101a~101dの転送速度、RAIDの容量、CPUの処理効率などストレージ装置100が有する処理容量を示す。例えば、判定部602は、コマンドの実行数が、ストレージ装置100の全体性能に基づく実行可能な入出力処理数を所定の時間継続して下回り続けた場合に、特定の入出力処理の負荷状況が変化したと判定する。一例を挙げると、判定部602は、HDDが本来有する転送速度と実際の書込み処理の速度とを比較する。そして、判定部602は、HDDが本来有する転送速度よりも実際の書込み処理の速度が所定の時間継続して遅い場合に、ストレージ装置100の全体性能が発揮されていないと判定する。ここで、所定の時間として30秒を例にする。続いて、判定部602は、ストレージ装置100の全体性能が発揮されていない状態が30秒以上経過したと判定した場合、性能値の限界までコマンドを実行したLUNが存在するか否かを判定する。例えば、判定部602は、限界IO数が0または限界ブロック数が0に近づいている場合に、性能値の限界までコマンドを実行したと判定する。判定部602は、限界IO数が0または限界ブロック数が0に近づいていると判定した場合、変更部601に、性能値の限界までコマンドを実行したLUNの優先順位を例えば1段階上げる旨を通知する。また、判定部602は、優先順位を1段階上げる旨を通知した後、コマンドの実行数が、ストレージ装置100の全体性能に基づく実行可能な入出力処理数を所定の時間継続して下回り続けているか否かを判定する。変更部603は、判定部602により入出力処理の負荷状況が変化したと判定された場合、QoS管理テーブル501が記憶する優先順位のうち、特定のLUNを対象とする優先順位を変更する。例えば、変更部603は、判定部602により特定の入出力処理の負荷状況が変化したと判定された場合、特定のLUNを対象とする優先順位を設定された値より例えば1段階高い値に変更する。なお、変更部603が格上げする優先順のレベルは、1段階に限定されるものではなく、例えば2段階格上げしてもよい。また、変更部603は、判定部602によりコマンドの実行数が、ストレージ装置の全体性能に基づく実行可能な入出力処理数を所定の時間継続して下回り続けていないと判定された場合に、優先順位を1段階上げたLUNの優先順位を、変更前の値に戻す。なお、判定部602及び変更部603の各機能は、メモリ210a及びメモリ210bと、CPU220a及びCPU220bとが協働して実現される。[実施例2に係るストレージ装置による処理の処理手順]次に図11と図12とを用いて、実施例2に係るストレージ装置100による処理の処理手順を説明する。ここでは、図11を用いて、実施例2に係るストレージ装置100によるNミリ秒タイマスケジュール処理の処理手順について説明し、図12を用いて、実施例2に係るストレージ装置100による限界値設定調整処理の処理手順について説明する。Nミリ秒タイマスケジュール処理図11は、実施例2に係るストレージ装置によるNミリ秒タイマスケジュール処理の処理手順を示すフローチャートである。なお、図11に示すステップS401からステップS404までの各処理は、図6に示すステップS101からステップS104までの各処理に対応するので、ここでは説明を省略する。図11に示すように、実施例2に係るストレージ装置100は、ステップS404の終了後、限界値設定調整処理を実行するステップS405。限界値設定調整処理図12は、実施例2に係るストレージ装置による限界値設定調整処理の処理手順を示すフローチャートである。図12に示すように、判定部602は、ストレージ装置100の全体性能が発揮されていない状態が30秒以上経過したか否かを判定するステップS501。ここで、判定部602は、ストレージ装置100の全体性能が発揮されていない状態が30秒以上経過したと判定した場合ステップS501、Yes、性能限界値に達したLUNが存在するか否かを判定するステップS502。ここで、判定部602により、性能限界値に達したLUNが存在すると判定された場合ステップS502、Yes、変更部603は、性能限界値に達したLUNの設定レベルを1段階上げステップS503、処理を終了する。一方、判定部602は、性能限界値に達したLUNが存在しないと判定した場合ステップS502、No、処理を終了する。また、判定部602は、ストレージ装置100の全体性能が発揮されていない状態が30秒以上経過していないと判定した場合ステップS501、No、設定レベルを上げた後に30秒以上経過したか否かを判定するステップS504。ここで、判定部602により、設定レベルを上げた後に30秒以上経過したと判定された場合ステップS504、Yes、変更部603は、設定レベルを1段階上げたLUNの設定レベルを1段階下げステップS505、処理を終了する。一方、判定部602は、設定レベルを上げた後に30秒以上経過していないと判定した場合ステップS504、No、処理を終了する。[実施例2の効果]次に、図13を用いて、実施例2に係るストレージ装置100による効果を説明する。図13は、実施例2に係るストレージ装置による効果の一例を示す図である。図13では、ストレージ装置100にはホストAのみ接続され、ホストAがLUN-A、LUNBにアクセスする場合を例に説明する。また、ここでは、ホストAの性能制限が200MB/s、LUN-Aの性能制限が150MB/s、LUN-Bの性能制限が100MB/s、ポートの性能制限が250MB/sであるものとする。まず、ホストAが、LUN-AとLUN-Bを同程度に使用する場合を説明する。LUN-AとLUN-Bの性能は、図9の説明と同様以下のように制限されているものとする。例えば、ストレージ装置100は、ホストAによるLUN-Aへのアクセスを120MB/sで処理し、ホストAによるLUN-Bへのアクセスを80MB/sで処理する。ここで、ホストAがLUN-Aを使用する割合が著しく多くなった場合、スケジュール部506は、例えば、LUN-Aの性能制限まで処理するようにスケジュールする。この結果、実施例2に係るストレージ装置100では、ホストAによるLUN-Aへのアクセスを150MB/sで処理し、ホストAによるLUN-Bへのアクセスを50MB/sで処理する。ここで、ストレージ装置100が、ホストAによるLUN-Aへのアクセスを150MB/sで処理する一方、ホストAからLUN-Bへのアクセスが30秒以上なくなった場合について説明する。この場合、判定部602は、ストレージ装置100の全体性能が発揮されていない状態が30秒以上経過したと判定し、ホストAによるLUN-Aへのアクセスの優先順位を1段階上げる。この結果、実施例2に係るストレージ装置100は、LUN-Aの性能制限以上に性能を配分し、例えば、ホストAによるLUN-Aへのアクセスを200MB/sで処理できる。また、この後、ホストAからLUN-Bへのアクセスが発生した場合について説明する。この場合、実施例2に係るストレージ装置100は、LUN-Aへのアクセスの優先順位を1段階下げ、ホストAによるLUN-Aへのアクセスを150MB/sで処理し、ホストAによるLUN-Bへのアクセスを50MB/sで処理する。なお、実施例2に係るストレージ装置100は、LUN-AとLUN-Bのアクセス状況に応じ、例えば、LUN-Aへのアクセスを120MB/sで処理し、ホストAによるLUN-Bへのアクセスを80MB/sで処理するようにスケジュールする。実施例2では、ストレージ装置100の全体性能が発揮されていない状態が所定の時間以上経過した場合、優先順位を1段階上げることで性能制限以上に性能を配分して処理を実行する例について説明した。ところで、ストレージ装置100において、優先度の高い処理については、性能制限を設けずに処理させたい場合がある。また、一方で、性能制限を設けずに処理した場合には、優先度の高い処理がストレージ装置の性能を占有し、他の処理を実行できない場合が起こりうる。そこで、実施例3では、優先度の高い処理については、それぞれの対象を指定して性能制限を設けない無制限設定を行い、優先度の高い処理がストレージ装置の性能を占有した場合、無制限設定を有限設定の最高値まで格下げする場合を例に説明する。[実施例3に係るストレージシステム及びストレージ装置の構成]実施例3に係るストレージシステムの構成は、ストレージ装置が実行するファームウェアにおいて、SCSIターゲット制御部の機能構成が異なる点を除いて、図1に示した実施例1に係るストレージシステムの構成と同様である。このため、実施例3に係るストレージシステムの構成、実施例3に係るストレージ装置の構成については、説明を省略する。[実施例3に係るSCSIターゲット制御部の機能構成]実施例3に係るSCSIターゲット制御部の機能構成は、QoS管理テーブルが記憶する情報、判定部及び変更部の動作が異なる点を除いて、図10に示した実施例2に係るSCSIターゲット制御部の機能構成と同様である。このため実施例3では、図10において、SCSIターゲット制御部600をSCSIターゲット制御部700に、QoS管理テーブル501をQoS管理テーブル701に、判定部602を判定部702に、変更部603を変更部703に置換えて説明する。図10に示すように、実施例3に係るSCSIターゲット制御部700は、QoS管理テーブル701、待ちキュー格納部502、性能設定部503、コマンド受信部504、算出部505、スケジュール部506、実行部507、判定部702、変更部703を有する。QoS管理テーブル701は、実施例1に係るQoS管理テーブルが記憶する情報に追加して、以下の情報を記憶する。例えば、実施例3に係るQoS管理テーブル701は、優先順位として、0から15の16段階の優先度から選択された値を記憶する。ここで、優先順位が0に設定された対象は、限界IO数及び限界ブロック数がストレージ装置100の全体性能以内で無制限となる。なお、優先順位の1から15については、実施例1に係る優先順と同様である。判定部702は、コマンドの実行数と、ストレージ装置100の全体性能とに基づいて、入出力処理の負荷状況が変化したか否かを判定する。例えば、判定部702は、優先順位が0に設定されたLUNの入出力処理が、ストレージ装置100の全体性能に基づく実行可能な入出力処理数を所定の時間継続して占有した場合に、入出力処理の負荷状況が変化したと判定する。一例を挙げると、判定部702は、QoS管理テーブル701が記憶する優先順位が0ではないLUNの現IO数及び現ブロック数が所定の時間変化したか否かを判定する。ここで、所定の時間として30秒を例にする。なお、優先順位が0ではないLUNとは、すなわち、性能値の制限されたLUNを意味する。続いて、判定部702は、優先順位が0に設定されたLUNによりストレージ装置100の全体性能を所定の時間継続して占有された状態が30秒以上経過したと判定した場合、性能値の制限されたLUNにコマンドが存在するか否かを判定する。例えば、判定部702は、性能値の制限されたLUNにコマンドが存在する場合に、優先順位が0に設定されたLUNの優先順位を1に下げる旨を変更部703に通知する。また、判定部702は、優先順位が0に設定されたLUNの優先順位を1に下げた後も、ストレージ装置100の全体性能を所定の時間継続して占有しているか否かを判定する。変更部703は、判定部702により入出力処理の負荷状況が変化したと判定された場合、優先順位が0に設定されたLUNの優先順位を1に変更する。なお、ここでは、変更部703は、優先順位が0に設定されたLUNの優先順位を1に格下げする場合を例に説明したが、これに限定されるものではない。例えば、変更部703は、優先順位が0に設定されたLUNの優先順位を2に格下げしてもよい。また、変更部703は、判定部702により優先順位が0から1に変更されたLUNが、ストレージ装置100の全体性能に基づく実行可能な入出力処理数を所定の時間継続して占有していないと判定された場合に、優先度を変更前の0に戻す。なお、QoS管理テーブル701、判定部702及び変更部703の各機能は、メモリ210a及びメモリ210bと、CPU220a及びCPU220bとが協働して実現される。[実施例3に係るストレージ装置による処理の処理手順]次に図14を用いて、実施例3に係るストレージ装置100による処理の処理手順を説明する。ここでは、図14を用いて、実施例3に係るストレージ装置による限界値設定調整処理の処理手順について説明する。限界値設定調整処理図14は、実施例3に係るストレージ装置による限界値設定調整処理の処理手順を示すフローチャートである。図14に示すように、判定部702は、30秒間ストレージ装置100の全体性能がほぼ無制限設定のLUNのみで消費されたか否かを判定するステップS601。ここで、判定部702は、30秒間ストレージ装置の全体性能100がほぼ無制限設定のLUNのみで消費されたと判定した場合ステップS601、Yes、有限設定のLUNにIOアクセスがあるか否かを判定するステップS602。ここで、判定部702により、有限設定のLUNにIOアクセスがあると判定された場合ステップS602、Yes、変更部703は、無制限設定のLUNの設定レベルをレベル1に設定しステップS603、処理を終了する。一方、判定部702は、有限設定のLUNにIOアクセスがないと判定した場合ステップS602、No、処理を終了する。また、判定部702は、30秒間ストレージ装置100の全体性能がほぼ無制限設定のLUNのみで消費されていないと判定した場合ステップS601、No、設定レベルをレベル1に設定した後に30秒以上経過したか否かを判定するステップS604。ここで、判定部702により、設定レベルをレベル1に設定した後に30秒以上経過したと判定された場合ステップS604、Yes、変更部703は、以下の処理を実行する。すなわち、変更部703は、設定レベルが1に設定された無制限設定のLUNの設定レベルを無制限に戻しステップS605、処理を終了する。一方、判定部702は、設定レベルをレベル1に設定した後に30秒以上経過していないと判定した場合ステップS604、No、処理を終了する。[実施例3の効果]次に、図15を用いて、実施例3に係るストレージ装置100による効果の一例を説明する。図15は、実施例3に係るストレージ装置による効果の一例を示す図である。図15に示す例では、ホストAがLUN-A、LUN-Bにアクセス可能であり、ホストBがLUN-Cにアクセス可能である場合を説明する。また、ここでは、ホストAの性能制限が無制限MB/s、ホストBの性能制限が150MB/sであるものとする。また、LUN-Aの性能制限が無制限MB/s、LUN-Bの性能制限が100MB/s、LUN-Cの性能制限が100MB/s、ポートの性能制限が無制限MB/sであるものとする。また、実際のストレージ装置100の全体性能が例えば1000MB/sである場合を仮定する。まず、ホストAがLUN-Aを使用する性能が800MB/s以下である場合について説明する。実施例3では、無制限設定と通常の性能制限設定が混在する場合、基本は無制限設定の対象が使用する性能を差し引いた分の性能を性能制限設定された対象が分け合う形とする。例えば、この場合、ホストA-LUN-BとホストB-LUN-Cの性能は100MB/s配分される。次に、ホストAがLUN-Aを使用する性能が900MB/sになった場合について説明する。この場合、ホストAによるLUN-BへのアクセスとホストBによるLUN-Cへのアクセス性能はそれぞれ50MB/sとなる。次に、ホストAによりLUN-Aを常に1000MB/s以上使用しようとする場合について説明する。この場合、判定部702は、ホストAによるLUN-Aへのアクセスのみでストレージ装置100の性能が占有されてしまう状態が一定時間以上経過したと判定する。そして、変更部703は、ホストAによるLUN-Aへのアクセス性能を優先順位の最高値である750MB/sに設定を変更する。続いて、スケジュール部506は、変更された優先順位に基づいてスケジュールする。このように、実施例3では、無制限設定が極度に性能を使用し続ける場合は、無制限設定を通常の性能制限設定の最高レベルと同等の性能に落として制御するようにする。例えば、単位時間30秒の間継続して、無制限設定のLUNに対するI/Oの性能がストレージ全体の性能のほとんどを使用していることを検出した場合、無制限設定のLUNの性能レベルを有限設定の最高レベルに格下げする。この結果、実施例3に係るストレージ装置100は、ホストAによるLUN-Aへのアクセスを優先して処理しつつ、ホストAによるLUN-BへのアクセスとホストBによるLUN-Cへのアクセスとを保証できる。ところで、本発明は、上述した実施例以外にも、種々の異なる形態にて実施されてよい。そこで、実施例4では、本発明に含まれる他の実施例について説明する。システム構成等本実施例において説明した各処理のうち自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともできる。あるいは、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。この他、上記文章中や図面中で示した処理手順、制御手順、具体的名称については、特記する場合を除いて任意に変更することができる。また、ストレージ装置100は、LUN故障時やホストのログアウト時など対象が削除された場合、あるいはLUN追加時やホストログイン時など対象が追加された場合、該当のポートに関連する全対象で性能を動的に再配分するようにしてもよい。そこで、ストレージ装置100が、対象を削除、追加した直後のNミリ秒タイマスケジュールで、スケジュール対象を削除、追加する機能を有する場合を実施例4として説明する。なお、このスケジュール対象を削除、追加する機能は性能設定部503が有するものとする。図16を用いて、実施例4に係るストレージ装置100による効果の一例を説明する。図16は、実施例4に係るストレージ装置による効果の一例を示す図である。図16に示す例では、ホストAがLUN-A、LUN-Bにアクセス可能であり、ホストBがLUN-Cにアクセス可能であり、新たにホストBがアクセス可能であるLUN-Dを追加する場合を説明する。また、ここでは、ホストAの性能制限が200MB/s、ホストBの性能制限が150MB/sであるものとする。また、LUN-Aの性能制限が150MB/s、LUN-Bの性能制限が100MB/s、LUN-Cの性能制限が100MB/s、LUN-Dの性能制限が100MB/s、ポートの性能制限が250MB/sであるものとする。例えば、LUN-Dを追加する前では、ホストAがLUN-Aを107MB/sで使用し、LUN-Bを71MB/sで使用する。また、ホストBがLUN-Cを71MB/sで使用する。そして、LUN-Dを追加した後では、ホストAがLUN-Aを83MB/sで使用し、LUN-Bを56MB/sで使用する。また、ホストBがLUN-Cを56MB/sで使用し、LUN-Dを56MB/sで使用する。また、ホストBがログアウトし、しばらく再ログインしない場合、ホストAがLUN-Aを120MB/sで使用し、LUN-Bを80MB/sで使用する。このように、実施例4に係るストレージ装置100は、使用されるホストとLUNとの組合せが変更された場合でも、ストレージ装置100の性能を動的に配分し、ストレージのQoS機能を容易に実現することができる。また、図示した各構成部は、機能概念的なものであり、必ずしも物理的に図示のごとく構成されていることを要しない。例えば、SCSIコマンド制御部304では、コマンド受信部504とスケジュール部506とは統合されてもよい。さらに、各装置にて行われる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。また、上記実施例で説明した各種の処理は、あらかじめ用意されたプログラムをストレージ装置が有するコンピュータで実行することによって実現することができる。そこで、以下では、図17を用いて、上記実施例と同様の機能を有するストレージ装置制御プログラムを実行するコンピュータの一例を説明する。図17は、ストレージ装置制御プログラムを実行するコンピュータを示す図である。図17に示すように、コンピュータ1000は、ホストとのインターフェースであるFC-CA1010、ホストとのインターフェースであるiSCSI-CA1020、ディスク装置とのインターフェースであるSAS1030を有する。また、コンピュータ1000は、各種情報を一時記憶するRAM1040、書き換え可能であり、電源を切ってもデータが消えない不揮発性のフラッシュメモリ1050を有する。また、コンピュータ1000は、読み出し専用メモリであるROMReadOnlyMemory1060、各種演算処理を実行するCPU1070を有する。また、コンピュータ1000が有する各部は、バス1080で接続される。そして、フラッシュメモリ1050には、図3に示したQoS管理テーブル501に対応するQoS管理テーブル1051が記憶される。また、ROM1060には、図3に示した算出部505とスケジュール部506と実行部507と同様の機能を有するストレージ装置制御プログラム1061が記憶される。そして、CPU1070は、フラッシュメモリ1050から読み出したQoS管理テーブル1051を参照し、ROM1060から読み出したストレージ装置制御プログラム1061をストレージ装置制御プロセス1071として実行する。なお、上記のストレージ装置制御プログラム1061は、必ずしもROM1060に格納されている必要はなく、CD-ROM等の記憶媒体に記憶されたこのプログラムを、コンピュータ1000が読み出して実行するようにしてもよい。また、公衆回線、インターネット、LAN、WANWideAreaNetwork等を介してコンピュータ1000に接続される他のコンピュータまたはサーバ等にこのプログラムを記憶させておき、コンピュータ1000がこれらからプログラムを読み出して実行するようにしてもよい。以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。付記1情報処理装置、前記情報処理装置と自装置との間のインターフェースであるポート、及び自装置が有する記憶装置に設定された優先度に基づいて決定される入出力処理数の上限値を算出する算出部と、前記情報処理装置から受付けた入出力処理数と、算出された前記上限値とに基づいて、入出力処理の実行順をスケジュールするスケジュール部と、前記スケジュール部によりスケジュールされた前記実行順で入出力処理を実行する実行部とを有することを特徴とするストレージ装置。付記2前記ストレージ装置が、入出力処理の実行数と、自装置が有する入出力処理の処理容量とに基づいて、特定の入出力処理の負荷状況が変化したか否かを判定する判定部と、前記判定部により入出力処理の負荷状況が変化したと判定された場合、前記特定の入出力処理の入出力処理数を決定する前記優先度を変更する変更部とを更に有し、前記スケジュール部は、前記変更部により変更された優先度から決定される入出力処理数の上限値と、前記情報処理装置から受付けた入出力処理数とに基づいて、入出力処理の実行順をスケジュールすることを特徴とする付記1に記載のストレージ装置。付記3前記判定部は、特定の入出力処理の実行数が、前記処理容量に基づく実行可能な入出力処理数を所定の時間継続して下回り続けた場合に、特定の入出力処理の負荷状況が変化したと判定し、前記変更部は、前記判定部により特定の入出力処理の負荷状況が変化したと判定された場合、前記特定の入出力処理の入出力処理数を決定する前記優先度を変更することを特徴とする付記2に記載のストレージ装置。付記4前記判定部は、前記優先度を変更後、特定の入出力処理の実行数が、前記処理容量に基づく実行可能な入出力処理数を所定の時間継続して下回り続けているか否かを判定し、前記変更部は、前記判定部により特定の入出力処理の実行数が、前記処理容量に基づく実行可能な入出力処理数を所定の時間継続して下回り続けていないと判定された場合に、前記優先度を変更前の値に変更することを特徴とする付記3に記載のストレージ装置。付記5前記判定部は、特定の入出力処理が、前記処理容量に基づく実行可能な入出力処理数を所定の時間継続して占有した場合に、特定の入出力処理の負荷状況が変化したと判定し、前記変更部は、前記判定部により特定の入出力処理の負荷状況が変化したと判定された場合、前記特定の入出力処理の入出力処理数を決定する前記優先度を設定された値より低い値に変更することを特徴とする付記2に記載のストレージ装置。付記6前記判定部は、前記優先度を設定された値より低い値に変更後、特定の入出力処理が、前記処理容量に基づく実行可能な入出力処理数を所定の時間継続して占有しているか否かを判定し、前記変更部は、前記判定部により特定の入出力処理が、前記処理容量に基づく実行可能な入出力処理数を所定の時間継続して占有していないと判定された場合に、前記優先度を変更前の値に変更することを特徴とする付記5に記載のストレージ装置。付記7前記ストレージ装置が、前記情報処理装置から入出力処理を受付けるとともに、実行待ちの入出力処理があるか否かを判定する受信部を更に有し、前記スケジュール部は、前記受信部により実行待ちの入出力処理があると判定された場合、前記所定の時間が経過した後に入出力処理の実行順をスケジュールすることを特徴とする付記1に記載のストレージ装置。付記8前記スケジュール部は、前記受信部により実行待ちの入出力処理がないと判定された場合、前記所定の時間が経過するのを待つことなく入出力処理の実行順をスケジュールすることを特徴とする付記7に記載のストレージ装置。付記9前記スケジュール部は、前記情報処理装置から受付けた入出力処理数が、算出された前記上限値以内であるか否かを判定し、前記受付けた入出力処理数が前記上限値以内であると判定した場合、前記上限値から受付けた入出力処理数を減算することにより、入出力処理の実行順をスケジュールすることを特徴とする付記7または8に記載のストレージ装置。付記10前記スケジュール部は、前記受付けた入出力処理数が前記上限値以内ではないと判定した場合、前記所定の時間が経過した後に、前記情報処理装置から受付けた入出力処理数が、算出された前記上限値以内であるか否かを判定することを特徴とする付記9に記載のストレージ装置。付記11情報処理装置、前記情報処理装置と自装置との間のインターフェースであるポート、及び記憶装置のそれぞれに設定された優先度を示す情報を記憶する記憶部と、自装置と接続する情報処理装置、前記情報処理装置が使用する記憶装置が変化した場合に、前記記憶部が記憶する情報を更新する更新部とを更に有することを特徴とする付記1に記載のストレージ装置。付記12ストレージ装置が、情報処理装置、前記情報処理装置と自装置との間のインターフェースであるポート、及び自装置が有する記憶装置に設定された優先度に基づいて決定される入出力処理数の上限値を算出し、前記情報処理装置から受付けた入出力処理数と、算出した前記上限値とに基づいて、入出力処理の実行順をスケジュールし、スケジュールされた前記実行順で入出力処理を実行することを特徴とするストレージ装置の制御方法。付記13前記ストレージ装置が、更に入出力処理の実行数と、自装置が有する入出力処理の処理容量とに基づいて、特定の入出力処理の負荷状況が変化したか否かを判定し、入出力処理の負荷状況が変化したと判定した場合、前記特定の入出力処理の入出力処理数を決定する前記優先度を変更し、変更された優先度から決定される入出力処理数の上限値と、前記情報処理装置から受付けた入出力処理数とに基づいて、入出力処理の実行順をスケジュールすることを特徴とする付記12に記載のストレージ装置の制御方法。付記14特定の入出力処理の実行数が、前記処理容量に基づく実行可能な入出力処理数を所定の時間継続して下回り続けた場合に、特定の入出力処理の負荷状況が変化したと判定し、特定の入出力処理の負荷状況が変化したと判定した場合、前記特定の入出力処理の入出力処理数を決定する前記優先度を変更することを特徴とする付記13に記載のストレージ装置の制御方法。付記15前記優先度を変更後、特定の入出力処理の実行数が、前記処理容量に基づく実行可能な入出力処理数を所定の時間継続して下回り続けているか否かを判定し、特定の入出力処理の実行数が、前記処理容量に基づく実行可能な入出力処理数を所定の時間継続して下回り続けていないと判定した場合に、前記優先度を変更前の値に変更することを特徴とする付記14に記載のストレージ装置の制御方法。付記16特定の入出力処理が、前記処理容量に基づく実行可能な入出力処理数を所定の時間継続して占有した場合に、特定の入出力処理の負荷状況が変化したと判定し、特定の入出力処理の負荷状況が変化したと判定した場合、前記特定の入出力処理の入出力処理数を決定する前記優先度を設定された値より低い値に変更することを特徴とする付記13に記載のストレージ装置の制御方法。付記17前記優先度を設定された値より低い値に変更後、特定の入出力処理が、前記処理容量に基づく実行可能な入出力処理数を所定の時間継続して占有しているか否かを判定し、特定の入出力処理が、前記処理容量に基づく実行可能な入出力処理数を所定の時間継続して占有していないと判定した場合に、前記優先度を変更前の値に変更することを特徴とする付記16に記載のストレージ装置の制御方法。付記18前記ストレージ装置が、更に前記情報処理装置から入出力処理を受付けるとともに、実行待ちの入出力処理があるか否かを判定し、実行待ちの入出力処理があると判定した場合、前記所定の時間が経過した後に入出力処理の実行順をスケジュールすることを特徴とする付記12に記載のストレージ装置の制御方法。付記19実行待ちの入出力処理がないと判定した場合、前記所定の時間が経過するのを待つことなく入出力処理の実行順をスケジュールすることを特徴とする付記18に記載のストレージ装置の制御方法。付記20前記情報処理装置から受付けた入出力処理数が、算出された前記上限値以内であるか否かを判定し、前記受付けた入出力処理数が前記上限値以内であると判定した場合、前記上限値から受付けた入出力処理数を減算することにより、入出力処理の実行順をスケジュールすることを特徴とする付記18または19に記載のストレージ装置の制御方法。付記21前記受付けた入出力処理数が前記上限値以内ではないと判定した場合、前記所定の時間が経過した後に、前記情報処理装置から受付けた入出力処理数が、算出された前記上限値以内であるか否かを判定することを特徴とする付記20に記載のストレージ装置の制御方法。付記22自装置と接続する情報処理装置、前記情報処理装置が使用する記憶装置が変化した場合に、記憶部が記憶する情報処理装置、前記情報処理装置と自装置との間のインターフェースであるポート、及び記憶装置のそれぞれに設定された優先度を示す情報を更新することを特徴とする付記12に記載のストレージ装置の制御方法。付記23ストレージ装置に、情報処理装置、前記情報処理装置と自装置との間のインターフェースであるポート、及び自装置が有する記憶装置に設定された優先度に基づいて決定される入出力処理数の上限値を算出し、前記情報処理装置から受付けた入出力処理数と、算出した前記上限値とに基づいて、入出力処理の実行順をスケジュールし、スケジュールされた前記実行順で入出力処理を実行させるためのストレージ装置制御プログラム。付記24前記ストレージ装置に、更に入出力処理の実行数と、自装置が有する入出力処理の処理容量とに基づいて、特定の入出力処理の負荷状況が変化したか否かを判定し、入出力処理の負荷状況が変化したと判定した場合、前記特定の入出力処理の入出力処理数を決定する前記優先度を変更し、変更された優先度から決定される入出力処理数の上限値と、前記情報処理装置から受付けた入出力処理数とに基づいて、入出力処理の実行順をスケジュールすることを実行させるための付記23に記載のストレージ装置制御プログラム。付記25特定の入出力処理の実行数が、前記処理容量に基づく実行可能な入出力処理数を所定の時間継続して下回り続けた場合に、特定の入出力処理の負荷状況が変化したと判定し、特定の入出力処理の負荷状況が変化したと判定した場合、前記特定の入出力処理の入出力処理数を決定する前記優先度を変更することを実行させるための付記24に記載のストレージ装置制御プログラム。付記26前記優先度を変更後、特定の入出力処理の実行数が、前記処理容量に基づく実行可能な入出力処理数を所定の時間継続して下回り続けているか否かを判定し、特定の入出力処理の実行数が、前記処理容量に基づく実行可能な入出力処理数を所定の時間継続して下回り続けていないと判定した場合に、前記優先度を変更前の値に変更することを実行させるための付記25に記載のストレージ装置制御プログラム。付記27特定の入出力処理が、前記処理容量に基づく実行可能な入出力処理数を所定の時間継続して占有した場合に、特定の入出力処理の負荷状況が変化したと判定し、特定の入出力処理の負荷状況が変化したと判定した場合、前記特定の入出力処理の入出力処理数を決定する前記優先度を設定された値より低い値に変更することを実行させるための付記24に記載のストレージ装置制御プログラム。付記28前記優先度を設定された値より低い値に変更後、特定の入出力処理が、前記処理容量に基づく実行可能な入出力処理数を所定の時間継続して占有しているか否かを判定し、特定の入出力処理が、前記処理容量に基づく実行可能な入出力処理数を所定の時間継続して占有していないと判定した場合に、前記優先度を変更前の値に変更することを実行させるための付記27に記載のストレージ装置制御プログラム。付記29前記ストレージ装置に、更に前記情報処理装置から入出力処理を受付けるとともに、実行待ちの入出力処理があるか否かを判定し、実行待ちの入出力処理があると判定した場合、前記所定の時間が経過した後に入出力処理の実行順をスケジュールすることを実行させるための付記23に記載のストレージ装置制御プログラム。付記30実行待ちの入出力処理がないと判定した場合、前記所定の時間が経過するのを待つことなく入出力処理の実行順をスケジュールすることを実行させるための付記29に記載のストレージ装置制御プログラム。付記31前記情報処理装置から受付けた入出力処理数が、算出された前記上限値以内であるか否かを判定し、前記受付けた入出力処理数が前記上限値以内であると判定した場合、前記上限値から受付けた入出力処理数を減算することにより、入出力処理の実行順をスケジュールすることを実行させるための付記29または30に記載のストレージ装置制御プログラム。付記32前記受付けた入出力処理数が前記上限値以内ではないと判定した場合、前記所定の時間が経過した後に、前記情報処理装置から受付けた入出力処理数が、算出された前記上限値以内であるか否かを判定することを実行させるための付記31に記載のストレージ装置制御プログラム。付記33自装置と接続する情報処理装置、前記情報処理装置が使用する記憶装置が変化した場合に、記憶部が記憶する情報処理装置、前記情報処理装置と自装置との間のインターフェースであるポート、及び記憶装置のそれぞれに設定された優先度を示す情報を更新することを実行させるための付記23に記載のストレージ装置制御プログラム。