(57)【要約】【課題】本発明は、全体として要求に対する処理性能を向上させ得るストレージ装置を提案する。【解決手段】ホスト装置から送信される要求を解釈して処理する複数の制御プロセッサを有するストレージ装置において、所定の制御プロセッサが前記ホスト装置から送信される前記要求を受信したときに、前記要求に対応する処理を、自己の制御プロセッサから他の制御プロセッサに分散するか否かを判断する分散判断部と、前記分散判断部により分散されると判断された場合に、割振り先の制御プロセッサを選択する制御プロセッサ選択部とを備えることを特徴とする。【選択図】図２
2008181382.tif 000002
【特許請求の範囲】
【請求項１】
ホスト装置から送信される要求を解釈して処理する複数の制御プロセッサを有するストレージ装置において、
所定の制御プロセッサが前記ホスト装置から送信される前記要求を受信したときに、前記要求に対応する処理を、自己の制御プロセッサから他の制御プロセッサに分散するか否かを判断する分散判断部と、
前記分散判断部により分散されると判断された場合に、割振り先の制御プロセッサを選択する制御プロセッサ選択部と
を備えることを特徴とするストレージ装置。
【請求項２】
前記分散判断部は、
所定の周期単位ごとの前記自己の制御プロセッサのすべての前記要求の回数及び前記他の制御プロセッサに割り振るすべての前記要求の回数に基づいて、分散するか否かを判断する
ことを特徴とする請求項１に記載のストレージ装置。
【請求項３】
前記分散判断部は、
所定の周期単位ごとの前記自己の制御プロセッサの前記処理に対する平均応答時間に基づいて、前記他の制御プロセッサに割り振るすべての前記要求の回数を決定する
ことを特徴とする請求項２に記載のストレージ装置。
【請求項４】
前記分散判断部は、
前記要求の種類ごとの平均応答時間、前記要求の種類ごとの受信回数及び前記他の制御プロセッサに割り振るすべての前記要求の回数に基づいて、前記他の制御プロセッサに割り振る前記要求の種類ごとの前記要求の回数を算出する
ことを特徴とする請求項３に記載のストレージ装置。
【請求項５】
前記分散判断部は、
前記自己の制御プロセッサの前記処理に対する平均応答時間が第１の閾値を越えた場合に、前記他の制御プロセッサから分散されるのを禁止し、前記他の制御プロセッサの前記処理に対する平均応答時間が第２の閾値を越えた場合に、他の制御プロセッサからの分散されるのを再開する
ことを特徴とする請求項３に記載のストレージ装置。
【請求項６】
前記制御プロセッサ選択部は、
前記他の制御プロセッサの前記処理に対する平均応答時間の早い順に、前記制御プロセッサを選択する
ことを特徴とする請求項１に記載のストレージ装置。
【請求項７】
前記制御プロセッサ選択部は、
分散対象となるすべての前記制御プロセッサを選択するまでは、一度選択した前記制御プロセッサを選択しない
ことを特徴とする請求項６に記載のストレージ装置。
【請求項８】
ホスト装置から送信される要求を解釈して処理する複数の制御プロセッサを有するストレージ装置の負荷分散方法において、
所定の制御プロセッサが前記ホスト装置から送信される前記要求を受信したときに、前記要求に対応する処理を、自己の制御プロセッサから他の制御プロセッサに分散するか否かを判断する第１のステップと、
前記第１のステップにおいて分散されると判断した場合に、割振り先の制御プロセッサを選択する第２のステップと
を備えることを特徴とする負荷分散方法。
【請求項９】
前記１のステップでは、
所定の周期単位ごとの前記自己の制御プロセッサのすべての前記要求の回数及び前記他の制御プロセッサに割り振るすべての前記要求の回数に基づいて、分散するか否かを判断する
ことを特徴とする請求項８に記載の負荷分散方法。
【請求項１０】
前記第１のステップでは、
所定の周期単位ごとの前記自己の制御プロセッサの前記処理に対する平均応答時間に基づいて、前記他の制御プロセッサに割り振るすべての前記要求の回数を決定する
ことを特徴とする請求項９に記載の負荷分散方法。
【請求項１１】
前記第１のステップでは、
前記要求の種類ごとの平均応答時間、前記要求の種類ごとの受信回数及び前記他の制御プロセッサに割り振るすべての前記要求の回数に基づいて、前記他の制御プロセッサに割り振る前記要求の種類ごとの前記要求の回数を算出する
ことを特徴とする請求項１０に記載の負荷分散方法。
【請求項１２】
前記第１のステップでは、
前記自己の制御プロセッサの前記処理に対する平均応答時間が第１の閾値を越えた場合に、前記他の制御プロセッサから分散されるのを禁止し、前記他の制御プロセッサの前記処理に対する平均応答時間が第２の閾値を越えた場合に、他の制御プロセッサからの分散されるのを再開する
ことを特徴とする請求項１０に記載の負荷分散方法。
【請求項１３】
前記第２のステップは、
前記他の制御プロセッサの前記処理に対する平均応答時間の早い順に、前記制御プロセッサを選択する
ことを特徴とする請求項８に記載の負荷分散方法。
【請求項１４】
前記第２のステップでは、
分散対象となるすべての前記制御プロセッサを選択するまでは、一度選択した前記制御プロセッサを選択しない
ことを特徴とする請求項１３に記載の負荷分散方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ装置及び負荷分散方法に関し、例えば、複数のマイクロプロセッサを有するストレージ装置に適用して好適なものである。
【背景技術】
【０００２】
近年、ホストコンピュータから送信される入出力要求を処理する複数のマイクロプロセッサを有するストレージ装置において、複数のマイクロプロセッサ間の負荷を分散する負荷分散技術が実用化されている。
【０００３】
例えば、特許文献１では、上位外部から受け取った入出力要求に応じて下位側の記憶媒体の駆動装置との間で入出力データの転送を制御する記憶サブシステムにおいて、上位外部とのインタフェースに応じて入出力要求を受け取る少なくとも１台の外部インタフェースコントローラと、入出力要求の処理をする少なくとも１台の制御プロセッサと、外部インタフェースコントローラと制御プロセッサとの間に介在し、両者間の情報伝送の伝送路となるファイバチャネルインタフェースのループとを有する記憶サブシステムが提案されている。
【０００４】
これにより、記憶サブシステムでは、ホストコンピュータから送信される入出力要求を複数の制御プロセッサによって並列処理するとともに、制御プロセッサ間で負荷の分散をするようになされている。
【特許文献１】特開２００１−１６７０４０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、このような記憶サブシステムでは、負荷分散処理を実行することによって、当該負荷分散処理における分割損によるオーバーヘッドにより、自らの制御プロセッサにおいて処理を完結する場合に比して、却って、ホストコンピュータから入出力要求を受信してから、当該入出力要求に対応するデータを処理した旨を通知するまでの応答時間が悪化する場合があるという問題がある。
【０００６】
本発明は以上の点を考慮してなされたもので、全体として要求に対する処理性能を向上させ得るストレージ装置及び負荷分散方法を提案するものである。
【課題を解決するための手段】
【０００７】
かかる課題を解決するために本発明では、ホスト装置から送信される要求を解釈して処理する複数の制御プロセッサを有するストレージ装置において、所定の制御プロセッサが前記ホスト装置から送信される前記要求を受信したときに、前記要求に対応する処理を、自己の制御プロセッサから他の制御プロセッサに分散するか否かを判断する分散判断部と、前記分散判断部により分散されると判断された場合に、割振り先の制御プロセッサを選択する制御プロセッサ選択部とを備えることを特徴とする。
【０００８】
従って、負荷分散処理における分割損によるオーバーヘッドにより、自らの制御プロセッサにおいて処理を完結する場合に比して、却って、ホスト装置から要求を受信してから、当該要求に対応するデータを処理した旨を通知するまでの応答時間が悪化するといった事態を未然かつ有効に防止することができる。
【０００９】
また、本発明では、ホスト装置から送信される要求を解釈して処理する複数の制御プロセッサを有するストレージ装置の負荷分散方法において、所定の制御プロセッサが前記ホスト装置から送信される前記要求を受信したときに、前記要求に対応する処理を、自己の制御プロセッサから他の制御プロセッサに分散するか否かを判断する第１のステップと、前記第１のステップにおいて分散されると判断した場合に、割振り先の制御プロセッサを選択する第２のステップとを備えることを特徴とする。
【００１０】
従って、負荷分散処理における分割損によるオーバーヘッドにより、自らの制御プロセッサにおいて処理を完結する場合に比して、却って、ホスト装置から要求を受信してから、当該要求に対応するデータを処理した旨を通知するまでの応答時間が悪化するといった事態を未然かつ有効に防止することができる。
【発明の効果】
【００１１】
本発明によれば、所定の制御プロセッサがホスト装置から送信された要求を受信したときに、要求に対応する処理を、自己の制御プロセッサから他の制御プロセッサに分散するか否かを判断し、分散されると判断した場合に、割振り先の制御プロセッサを選択することにより、負荷分散処理における分割損によるオーバーヘッドにより、自らの制御プロセッサにおいて処理を完結する場合に比して、却って、ホスト装置から要求を受信してから、当該要求に対応するデータを処理した旨を通知するまでの応答時間が悪化するといった事態を未然かつ有効に防止することができ、かくして、全体として要求に対する処理性能を向上させ得るストレージ装置及び負荷分散方法を実現できる。
【発明を実施するための最良の形態】
【００１２】
以下図面について、本発明の一実施の形態を詳述する。
【００１３】
図１は、本実施の形態によるストレージシステム１の構成の一例を示している。このストレージシステム１は、例えば、複数のホスト装置２がネットワーク３を介してストレージ装置４に接続されることにより構成されている。
【００１４】
上位装置としてのホスト装置２は、ＣＰＵ（Central Processing Unit）やメモリ等の情報処理資源を備えたコンピュータ装置であり、例えば、パーソナルコンピュータや、ワークステーション、メインフレームコンピュータ等から構成される。また、ホスト装置２は、キーボード、スイッチやポインティングデバイス、マイクロフォン等の情報入力装置（図示せず）、モニタディスプレイやスピーカ等の情報出力装置（図示せず）等を備えている。
【００１５】
この場合、ホスト装置２は、例えば、自己が取り扱うファイル等の書込み対象のデータ及び当該書込み対象のデータをトレージ装置４に書き込ませる書込み要求（入出力要求）や、ストレージ装置４に格納されているファイル等の読出し対象のデータを読み出させる読出し要求（入出力要求）、ストレージ装置４に格納されている読出し対象のデータを他のストレージ装置（図示せず）に複製させるリモートコピーを実行させるリモートコピー要求をストレージ装置４に送信するようになされている。
【００１６】
また、ホスト装置２は、この他にも、ストレージ装置４内の論理ボリューム（後述）のある時点での複製（レプリカ）を、同一ストレージ装置内に作成させるＭＲＣＦ（Multiple RAID Coupling Feature）実行要求や、ジャーナルボリュームを利用した長距離リモートコピーを実行させるＵＲ（Universal Replicator）実行要求、指示した時点のスナップショットにより、ソフトウェア障害時に任意の時点のレプリカからデータを回復させるＱＳ（Quick Shadow）実行要求、書き込み要求の対象となる論理ボリューム（後述）における領域に、動的に記憶領域を割当てるＡＯＵ（Allocation On Use）実行要求等の各種の要求をストレージ装置４に送信するようになされている。
【００１７】
ネットワーク３は、例えば、ＳＡＮ（Storage Area Network）、ＬＡＮ（Local Area Network）、インターネット、公衆回線又は専用回線等から構成されている。このネットワーク３を介したホスト装置２及びストレージシステム４間の通信は、例えば、ネットワーク３がＳＡＮである場合にはファイバーチャネルプロトコルに従って行われ、ネットワーク３がＬＡＮである場合にはＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）プロトコルに従って行われる。
【００１８】
ストレージ装置４は、データの入出力を制御するコントロール部１０と、データを記憶する複数のディスクデバイス２１からなる記憶デバイス部２０とを備えて構成されている。
【００１９】
コントロール部１０は、例えば、複数のチャネルアダプタ１１、接続部１２、共有メモリ１３、キャッシュメモリ１４、複数のディスクアダプタ１５及び管理端末１６を備えて構成されている。
【００２０】
各チャネルアダプタ１１は、ホスト装置２からネットワーク３を介して送信される各種要求を解釈して対応する処理を実行する。なお、本実施の形態におけるチャネルアダプタ１１の構成については、図２において後述する。
【００２１】
接続部１２は、チャネルアダプタ１１、共有メモリ１３、キャッシュメモリ１４及びディスクアダプタ１５と接続されている。チャネルアダプタ１１、共有メモリ１３、キャッシュメモリ１４及びディスクアダプタ１５間での各種データや各種要求の授受は、この接続部１２を介して行われる。接続部１２は、例えば、高速スイッチングによりデータ伝送を行う超高速クロスバススイッチなどのスイッチ又はバス等で構成されている。
【００２２】
共有メモリ１３及びキャッシュメモリ１４は、チャネルアダプタ１１及びディスクアダプタ１５により共有される記憶メモリである。共有メモリ１３は、ストレージ装置４全体の構成に関する種々のシステム構成情報、各種プログラムや各種テーブル等を記憶したり、入出力要求等の各種要求を記憶したりするために利用される。なお、本実施の形態における共有メモリ１３に記憶されている各種プログラムや各種テーブルの一例については、図４において後述する。また、キャッシュメモリ１４は、主に、ストレージ装置４に入出力する書込み対象のデータや読出し対象のデータ等の各種データを一時的に記憶するために利用される。
【００２３】
各ディスクアダプタ１５は、マイクロプロセッサやメモリ等を備えたマイクロコンピュータシステムとして構成され、記憶デバイス部２０内のディスクデバイス２１との通信時におけるプロトコル制御を行うインタフェースとして機能する。これらディスクアダプタ１５は、例えば、ファイバチャネルケーブルを介して記憶デバイス部２０内の対応するディスクデバイス２１と接続されており、ファイバーチャネルプロトコルに従ってこれらディスクデバイス２１との間のデータの授受を行う。
【００２４】
管理端末１６は、ストレージ装置４全体の動作を制御する端末装置であり、例えば、ノート型のパーソナルコンピュータから構成される。管理端末１６は、ＬＡＮ１７を介して各チャネルアダプタ１１とそれぞれ接続され、ＬＡＮ１８を介して各ディスクアダプタ１５Ａとそれぞれ接続されている。オペレータは、管理端末１６を用いてシステム構成情報を定義することができ、またこの定義したシステム構成情報を、チャネルアダプタ１１又はディスクアダプタ１５と接続部１２とを経由して、共有メモリ１３に格納することができる。
【００２５】
一方、記憶デバイス部２０のディスクデバイス２１としては、例えば、ＳＣＳＩ（Small Computer System Interface）ディスク等の高価なディスク、又はＳＡＴＡ（Serial AT Attachment）ディスクや光ディスク等の安価なディスクが適用される。
【００２６】
記憶デバイス部２０の各ディスクデバイス２１は、コントロール部１０によりＲＡＩＤ（Redundant Arrays of Inexpensive Disks）方式で運用される。１又は複数のディスクデバイス２１により提供される物理的な記憶領域上に、１又は複数の論理的なボリューム（以下、これを論理ボリュームと呼ぶ）が設定される。そしてデータは、この論理ボリューム内に所定大きさのブロック（以下、これを論理ブロックと呼ぶ）単位で記憶される。
【００２７】
各論理ボリュームには、それぞれ固有の識別子（以下、これをＬＵＮ（Logical Unit Number）と呼ぶ）が付与される。本実施の形態の場合、データの入出力は、このＬＵＮと、各論理ブロックにそれぞれ付与されるその論理ブロックに固有の番号（ＬＢＡ：Logical Block Address）とを組み合わせたものをアドレスとして、当該アドレスを指定して行われる。
【００２８】
図２は、チャネルアダプタ１１の構成の一例を示している。このチャネルアダプタ１１は、例えば、複数のインタフェース部３１、チャネルアダプタ接続部３２、複数のバッファメモリ３３、複数のチャネルプロセッサ３４、複数のローカルメモリ３５及び内部接続端子３６を備えて構成されている。
【００２９】
各インタフェース部３１は、ネットワーク３を介してホスト装置２や他のストレージ装置（図示せず）等と接続されており、各種データや各種要求の送受信を行う。各インタフェース部３１は、例えば、ホスト装置２から入出力要求や書込み対象のデータを受信し、また、読出し対象のデータをホスト装置２に送信する。
【００３０】
チャネルアダプタ接続部３２は、インタフェース部３１、バッファメモリ３３及び内部接続端子３６と接続されている。インタフェース部３１、バッファメモリ３３及び内部接続端子３６間での各種データや各種要求の授受は、このチャネルアダプタ接続部３２を介して行われる。チャネルアダプタ接続部３２は、例えば、各部に接続され、データの中継を行うＯＨＵＢ（Optical Hub）等で構成されている。
【００３１】
各バッファメモリ３３は、各種データや各種要求を一時的に記憶するために利用される。本実施の形態の場合には、チャネルアダプタ接続部３２の左右に２つのバッファメモリ３３が接続されることにより構成されている。
【００３２】
各チャネルプロセッサ３４は、バッファメモリ３３に格納された各種要求を解釈して対応する処理を実行する。本実施の形態の場合には、チャネルアダプタ接続部３２の左右の各バッファメモリ３３の外側にそれぞれ２つのチャネルプロセッサ３４が接続されることにより構成されている。
【００３３】
各ローカルメモリ３５は、チャネルプロセッサ３４が各種要求に基づく処理を実行するために必要な各種プログラムや各種テーブルを記憶するために利用される。本実施の形態の場合には、各チャネルプロセッサの外側にそれぞれローカルメモリ３５が接続されることにより構成されている。なお、本実施の形態におけるローカルメモリ３５に記憶されている各種プログラムや各種テーブルの一例については、図６において後述する。
【００３４】
内部接続端子３６は、接続部１２と接続されており、接続部１２及びチャネルアダプタ接続部３２間における各種データや各種要求の授受を行う。
【００３５】
図３は、ストレージ装置４の共有メモリ１３に格納されている各種テーブルの一例を示している。ストレージ装置４の共有メモリ１３には、チャネルプロセッサ３４ごとに分散処理の受付が可能か否かを管理する分散処理受付禁止情報管理テーブル４１及びチャネルプロセッサ３４ごとに分散処理の割振りの追加が可能か否かを管理する分散処理追加禁止情報管理テーブル４２が格納されている。
【００３６】
図４は、分散処理受付禁止情報管理テーブル４１の構成の一例を示している。分散処理受付禁止情報管理テーブル４１は、すべてのチャネルアダプタ１１内における複数のチャネルプロセッサ３４を一意に識別するための識別子であるチャネルプロセッサＩＤを管理するチャネルプロセッサＩＤ欄４１Ａ及び受付禁止フラグが「オン」であるか「オフ」であるかを管理する受付禁止フラグ欄４１Ｂから構成されている。
【００３７】
この場合、あるチャネルプロセッサ３４に対応する受付禁止フラグ欄４１Ｂに「１」が格納されている場合には、受付禁止フラグが「オン」であることを示しており、当該チャネルプロセッサ３４の分散処理の受付を禁止して、分散処理の割振り対象から除外するようになされている。また、あるチャネルプロセッサ３４に対応する受付禁止フラグ欄４１Ｂに「０」が格納されている場合には、受付禁止フラグが「オフ」であることを示しており、当該チャネルプロセッサ３４に対して分散処理の受付をして、分散処理の割振り対象とすることができるようになされている。
【００３８】
また、チャネルプロセッサ３４に対応する受付禁止フラグ欄４１Ｂが「１」に変更されるときには、当該チャネルプロセッサ３４に何らかの障害等があって、自己のチャネルプロセッサ３４では変更することができないことがある。従って、他のチャネルプロセッサ３４が障害等の発生したチャネルプロセッサ３４にアクセスし、当該障害等の発生したチャネルプロセッサ３４にアクセスできない等の場合に、他のチャネルプロセッサ３４が強制的に当該障害等の発生したチャネルプロセッサ３４に対応する受付禁止フラグ欄４１Ｂを「１」に変更するようになされている。
【００３９】
さらに、あるチャネルプロセッサ３４に対応する受付禁止フラグ欄４１Ｂに「１」が格納されている場合に、当該チャネルプロセッサ３４が障害等から回復したときには、当該チャネルプロセッサ３４が、自己のチャネルプロセッサ３４の受付禁止フラグ欄４１Ｂを「０」に変更するようになされている。
【００４０】
図５は、分散処理追加禁止情報管理テーブル４２の構成の一例を示している。分散処理受付追加情報管理テーブル４２は、チャネルプロセッサＩＤを管理するチャネルプロセッサＩＤ欄４２Ａ及び追加禁止フラグが「オン」であるか「オフ」であるかを管理する追加禁止フラグ欄４２Ｂから構成されている。
【００４１】
この場合、チャネルプロセッサ３４に対応する追加禁止フラグ欄４２Ｂに「１」が格納されている場合には、追加禁止フラグが「オン」であることを示しており、分散処理の割振りの追加を禁止して、以後の分散処理の割振り対象から除外するようになされている。また、チャネルプロセッサ３４に対応する追加禁止フラグ欄４２Ｂに「０」が格納されている場合には、禁止フラグが「オフ」であることを示しており、分散処理の割振りの追加をすることができるようになされている。
【００４２】
また、各チャネルプロセッサ３４は、自己が直接ホスト装置２から受信する各種要求と、他のチャネルプロセッサ３４から分散処理により割り振られた各種要求とが混在している。このため、各チャネルプロセッサ３４は、自己が直接ホスト装置２から受信する各種要求の加減によっては、他のチャネルプロセッサ３４から割り振られる分散処理を禁止しなければ、分散処理における自己チャネルプロセッサ応答時間（後述）が急激に増加する可能性がある。
【００４３】
従って、各チャネルプロセッサ３４は、例えば、自己のチャネルプロセッサ３４の稼働率が所定の閾値を越えた場合や、分散処理における自己チャネルプロセッサ応答時間（後述）が閾値を越えた場合には、自己のチャネルプロセッサ３４に対応する受付禁止フラグ欄４２Ｂを「１」に変更するようになされている。
【００４４】
さらに、各チャネルプロセッサ３４は、当該各チャネルプロセッサ３４に対応する追加禁止フラグ欄４２Ｂに「１」が格納されている場合に、例えば、自己のチャネルプロセッサ３４の稼働率が所定の閾値以下となった場合や、分散処理における自己チャネルプロセッサ応答時間（後述）が閾値以下となった場合には、自己のチャネルプロセッサ３４に対応する受付禁止フラグ欄４２Ｂを「０」に変更するようになされている。
【００４５】
なお、各チャネルプロセッサ３４は、自己のチャネルプロセッサ３４の稼働率及び自己チャネルプロセッサ応答時間（後述）を算出し、稼働率その閾値並びに自己チャネルプロセッサ応答時間及びその閾値を管理することができるようになされている。
【００４６】
図６は、ストレージ装置４におけるチャネルアダプタ１１の各ローカルメモリ３５に格納されている各種テーブルの一例を示している。各ローカルメモリ３５には、自己のチャネルプロセッサ３４が各種要求に対応する処理を開始してから当該処理が終了するまでの時間である自己チャネルプロセッサ応答時間を管理する自己チャネルプロセッサ応答時間管理テーブル５１、自己のチャネルプロセッサ３４が分散処理により他のチャネルプロセッサ３４に、各種要求に対応する処理を割り振ってから当該処理が終了するまでの時間である他チャネルプロセッサ応答時間を、他のチャネルプロセッサ３４ごとに管理する他チャネルプロセッサ応答時間管理テーブル５２、所定の周期ごとのホスト装置２から送信される各種要求の回数である要求回数のうち、分散処理により他のチャネルプロセッサ３４に各種要求に対応する処理を割り振る割振り回数を管理する要求割振り回数管理テーブル５３及び分散処理の割振りの追加を禁止する自己チャネルプロセッサ応答時間である追加禁止応答時間を管理する追加禁止応答時間管理テーブル５４が格納されている。
【００４７】
また、各ローカルメモリ３５には、割振り回数、当該割振り回数のうちの通常の書込み要求の回数である書込み割振り回数及び当該割振り回数のうちのリモートコピー要求の回数であるリモートコピー割振り回数を算出するプログラムである周期処理プログラム５５、ホスト装置２から送信される各種要求を解釈して処理するプログラムである要求処理プログラム５６及び分散処理についての処理を実行するプログラムである分散処理プログラム５７が格納されている。
【００４８】
図７は、自己チャネルプロセッサ応答時間管理テーブル５１の構成の一例を示している。自己チャネルプロセッサ応答時間管理テーブル５１は、通常の書込み要求に対応する処理における自己チャネルプロセッサ応答時間の平均である通常書込み平均応答時間（自）を管理する通常書込み平均応答時間（自）欄５１Ａ、リモートコピー要求に対応する処理における自己チャネルプロセッサ応答時間の平均であるリモートコピー平均応答時間（自）を管理するリモートコピー平均応答時間（自）欄５１Ｂ及びすべての要求に対応する処理における自己チャネルプロセッサ応答時間の平均である平均応答時間（自）を管理するリ平均応答時間（自）欄５１Ｃから構成されている。
【００４９】
各チャネルプロセッサ３４は、は、実際の各種要求に対応する処理を開始してから当該処理が終了するまでの時間である自己チャネルプロセッサ応答時間の実績値を、ホスト装置２から送信された要求と対応付けて記録しておく。
【００５０】
図８は、他チャネルプロセッサ応答時間管理テーブル５２の構成の一例を示している。他チャネルプロセッサ応答時間管理テーブル５２は、チャネルプロセッサＩＤのうち自己のチャネルプロセッサ３４のチャネルプロセッサＩＤを除いたチャネルプロセッサＩＤを管理するチャネルプロセッサＩＤ欄５２Ａ、通常の書込み要求に対応する処理における他チャネルプロセッサ応答時間の平均である通常書込み平均応答時間（他）を管理する通常書込み平均応答時間（他）欄５２Ｂ、リモートコピー要求に対応する処理における自己チャネルプロセッサ応答時間の平均であるリモートコピー平均応答時間（他）を管理するリモートコピー平均応答時間（他）欄５２Ｃ及び選択済フラグが「オン」であるか「オフ」であるかを管理する選択済フラグ欄５２Ｄから構成されている。
【００５１】
各チャネルプロセッサ３４は、実際の各種要求に対応する処理を割り振ってから当該処理が終了するまでの時間である他チャネルプロセッサ応答時間の実績値を、他のチャネルプロセッサ３４ごとに、ホスト装置２から送信された要求と対応付けて記録しておく。また、他チャネルプロセッサ応答時間テーブル５２は、自己のチャネルプロセッサ３４と他のチャネルプロセッサ３４との通常書込み平均応答時間及びリモートコピー平均応答時間の比較を行う際に使用される。
【００５２】
また、この場合、チャネルプロセッサ３４に対応する選択済フラグ欄５２Ｄに「１」が格納されている場合には、選択済フラグが「オン」であることを示しており、分散処理における割振り対象として既に選択されたことを示しており、以後の分散処理の割振り対象から除外するようになされている。また、チャネルプロセッサ３４に対応する選択済フラグ欄５２Ｄに「０」が格納されている場合には、選択済フラグが「オフ」であることを示しており、分散処理の割振り対象とすることができるようになされている。
【００５３】
図９は、要求割振り回数管理テーブル５３の構成の一例を示している。要求割振り回数管理テーブル５３は、割振り回数を管理する割振り回数管理欄５３Ａ、書込み割振り回数を管理する書込み割振り回数欄５３Ｂ及びリモートコピー割振り回数を管理するリモートコピー割振り回数欄５３Ｃから構成されている。
【００５４】
図１０は、追加禁止応答時間管理テーブル５４の構成の一例を示している。追加禁止応答時間管理テーブル５４は、チャネルプロセッサＩＤのうち自己のチャネルプロセッサ３４のチャネルプロセッサＩＤを除いたチャネルプロセッサＩＤを管理するチャネルプロセッサＩＤ欄５４Ａ、追加禁止応答時間を管理する追加禁止応答時間欄５４Ｂ、当該追加禁止応答時間を越えた場合であっても他のチャネルプロセッサ３４からの分散処理の割振りの追加を再開する他のチャネルプロセッサの自己チャネルプロセッサ応答時間である追加再開応答時間を管理する追加再開応答時間欄５４Ｃ及び再開禁止フラグが「オン」であるか「オフ」であるかを管理する再開禁止フラグ欄５４Ｄから構成されている。
【００５５】
この場合、チャネルプロセッサ３４に対応する再開禁止フラグ欄５４Ｄに「１」が格納されている場合には、再開禁止フラグが「オン」であることを示しており、追加再開応答時間を越えた場合であっても他のチャネルプロセッサ３４からの分散処理の割振りの追加の再開をしないことを示しており、分散処理の割振り対象から除外するようになされている。また、チャネルプロセッサ３４に対応する再開禁止フラグ欄５４Ｄに「０」が格納されている場合には、再開禁止フラグが「オフ」であることを示しており、追加再開応答時間を越えた場合には、当該チャネルプロセッサに対応する追加禁止フラグ欄４２Ｂに格納されている「１」を「０」に変更して、追加再開応答時間を越えた他のチャネルプロセッサ３４からの分散処理の割振りの追加を再開するようになされている。
【００５６】
すなわち、追加禁止応答時間管理テーブル５４は、追加禁止応答時間及び追加再開応答時間の２つの閾値を有している。各チャネルプロセッサ３４は、他チャネルプロセッサ応答時間管理テーブル５２を参照することにより、他のチャネルプロセッサ３４の救済をどの段階で行うのかを設定しておくことができるようになされている。
【００５７】
負荷を低く抑えておきたいチャネルプロセッサ３４に関しては、他のチャネルプロセッサ３４からの割振りの追加を禁止する追加禁止応答時間の閾値を設定しておく。
【００５８】
また、他のチャネルプロセッサ３４が追加再開応答時間の閾値を越えて過負荷になった場合には、追加禁止応答時間管理テーブル５４を参照することにより、追加再開応答時間を越えた他のチャネルプロセッサ３４の再開禁止フラグが「オフ」となっているチャネルプロセッサを検索し、当該チャネルプロセッサ３４に対応する追加禁止フラグを「オフ」にする。これにより、当該追加禁止フラグを「オフ」にしたチャネルプロセッサ３４は、追加再開応答時間を越えた他のチャネルプロセッサ３４の分散処理の割振りの追加を再開する。
【００５９】
例えば、第２のチャネルプロセッサ３４は、第１のチャネルプロセッサ３４に対する追加禁止応答時間が３０（ｍｓ）、追加再開応答時間が６０（ｍｓ）に設定されているとする。第１のチャネルプロセッサ３４は、分散処理を開始する。そして、第２のチャネルプロセッサ３４の自己チャネルプロセッサ応答時間が３０（ｍｓ）を越えた場合には、第２のチャネルプロセッサ３４は、当該第２のチャネルプロセッサ３４に対応する追加禁止フラグを「オン」にして、分散処理の割振りの追加を禁止する。しかしながら、第１のチャネルプロセッサ３４の自己チャネルプロセッサ応答時間が６０（ｍｓ）を越えた場合には、第２のチャネルプロセッサ３４は、当該第２のチャネルプロセッサ３４に対応する追加禁止フラグを「オン」にして、分散処理の割振りの追加を再開する。
【００６０】
このようにして、負荷の低いチャネルプロセッサ３４を用意して、突発的な要求の増加による自己チャネルプロセッサ応答時間の増加について対処することができるようになされている。また、負荷を低く抑えておきたいチャネルプロセッサ３４を設定することができ、さらに、高負荷となったチャネルプロセッサ３４を救済するように設定することができるようになされている。
【００６１】
図１１は、このストレージシステム１におけるストレージ装置４の周期処理に関する、ストレージ装置４のチャネルプロセッサ３４の具体的な処理手順を示したフローチャートの一例である。
【００６２】
チャネルプロセッサ３４は、当該ストレージ装置４が起動すると、例えば、数秒間隔ごと等の所定の周期ごとに、周期処理プログラム５５の周期処理プログラムを実行することにより、図１１に示す周期処理手順ＲＴ１に従って、前回の周期処理が終了してから今回の周期処理が開始するまでの、ホスト装置２から送信された要求及び自己チャネルプロセッサ応答時間の実績値に基づいて、通常書込み平均応答時間（自）、リモートコピー書込み平均応答時間（自）及び平均応答時間（自）を算出し、当該通常書込み平均応答時間（自）、リモートコピー書込み平均応答時間（自）及び平均応答時間（自）を自己チャネルプロセッサ応答時間管理テーブル５１に格納する（ＳＰ１）。
【００６３】
続いて、チャネルプロセッサ３４は、分散処理受付禁止情報管理テーブル４１及び分散処理追加禁止情報管理テーブル４２を参照することにより、受付禁止フラグ及び追加禁止フラグが「オン」でない、すなわち分散処理の割振り対象となる他のチャネルプロセッサ３４を算出する（ＳＰ２）。
【００６４】
続いて、チャネルプロセッサ３４は、前回の周期処理が終了してから今回の周期処理が開始するまでの、他のチャネルプロセッサ３４ごとに記憶された、ホスト装置２から送信された要求及び自己チャネルプロセッサ応答時間の実績値に基づいて、通常書込み平均応答時間（他）及びリモートコピー書込み平均応答時間（他）を算出し、他のチャネルプロセッサ３４ごとに、当該通常書込み平均応答時間（他）及びリモートコピー書込み平均応答時間（他）を他チャネルプロセッサ応答時間管理テーブル５２に格納する（ＳＰ３）。
【００６５】
続いて、チャネルプロセッサ３４は、分散処理の割振り対象となる他のチャネルプロセッサ３４の通常書込み平均応答時間（他）及びリモートコピー書込み平均応答時間（他）並びに平均応答時間（自）に基づいて、全体の平均応答時間を算出する（ＳＰ４）。
【００６６】
続いて、チャネルプロセッサ３４は、算出した全体の平均応答時間と、当該チャネルプロセッサ３４に記憶している前回の全体の平均応答時間とを比較して、平均応答時間が早くなったか否かをチェックする（ＳＰ５）。
【００６７】
そして、チャネルプロセッサ３４は、平均応答時間が早くなった場合（ＳＰ５：ＹＥＳ）には、自己のチャネルプロセッサ３４の負荷分散処理を実行したことによる効果が認められたこととなるので、さらなる負荷分散処理の効果を得るため、前回の周期処理が終了してから今回の周期処理が開始するまでの、ホスト装置２から送信された要求回数のうち、割振り回数を所定回数増加（例えば、割振り回数の５％〜１０％ずつ増加）する（ＳＰ６）。
【００６８】
これに対して、チャネルプロセッサ３４は、平均応答時間が遅くなった場合（ＳＰ５：ＮＯ）には、自己のチャネルプロセッサ３４の負荷分散処理を実行したことにより却って平均応答時間が遅くなり、負荷分散処理が逆効果だったため、前回の周期処理が終了してから今回の周期処理が開始するまでの、ホスト装置２から送信された要求回数のうち、割振り回数を所定回数減少（例えば、割振り回数の５％〜１０％ずつ減少）する（ＳＰ７）。
【００６９】
なお、割振り回数については、初期時には、管理者が設定するようにしても良く、この他種々の場合にも適応することができる。
【００７０】
続いて、チャネルプロセッサ３４は、割振り回数を所定回数増減して割振り回数が決定すると、個別割振り回数算出処理手順ＲＴ２を実行する。なお、個別割振り回数算出処理手順ＲＴ２については、図１２において後述する。
【００７１】
続いて、チャネルプロセッサ３４は、割振り回数並びに個別割振り回数算出処理手順ＲＴ２により算出された通常書込み割振り回数及びリモートコピー割振り回数を割振り回数管理テーブル５３に格納する（ＳＰ８）。
【００７２】
そして、チャネルプロセッサ３４は、この後、この図１１に示す周期処理手順ＲＴ１を終了する（ＳＰ９）。
【００７３】
このようにして、チャネルプロセッサ３４は、各種要求に対する処理を行った結果をフィードバックし、割り振る回数を変化させるようになされており、自己のチャネルプロセッサ３４で行う各種要求に対する処理を最適化することができる。
【００７４】
図１２は、このストレージシステム１におけるストレージ装置４の個別割振り回数算出処理に関する、ストレージ装置４のチャネルプロセッサ３４の具体的な処理手順を示したフローチャートの一例である。
【００７５】
チャネルプロセッサ３４は、割振り回数を所定回数増減して割振り回数が決定されると、割振り回数のうちの個別の要求ごとの割振り回数を算出する周期処理プログラム５５の個別割振り回数算出処理プログラムを実行することにより、図１２に示す個別割振り回数算出処理手順ＲＴ２に従って、自己チャネルプロセッサ応答時間管理テーブル５１に格納された通常書込み平均応答時間（自）を読み出す（ＳＰ１１）。
【００７６】
続いて、チャネルプロセッサ３４は、自己チャネルプロセッサ応答時間管理テーブル５１に格納されたリモートコピー平均応答時間（自）を読み出す（ＳＰ１２）。
【００７７】
続いて、チャネルプロセッサ３４は、実際の各種要求に対応する処理を開始してから当該処理が終了するまでの時間である自己チャネルプロセッサ応答時間の実績値に対応付けられたホスト装置２から送信された要求に基づいて、要求回数のうち、通常の書込み要求の回数である通常書込み回数を算出する（ＳＰ１３）。
【００７８】
続いて、チャネルプロセッサ３４は、実際の各種要求に対応する処理を開始してから当該処理が終了するまでの時間である自己チャネルプロセッサ応答時間の実績値に対応付けられたホスト装置２から送信された要求に基づいて、要求回数のうち、リモートコピー要求の回数であるリモートコピー回数を算出する（ＳＰ１４）。
【００７９】
続いて、チャネルプロセッサ３４は、通常書込み平均応答時間（自）、リモートコピー平均応答時間（自）及び通常書込み回数に基づいて、通常書込み割振り回数を算出する（ＳＰ１５）。
【００８０】
この場合、チャネルプロセッサ３４は、通常書込み平均応答時間（自）を「Ｖ」、リモートコピー平均応答時間（自）を「ｖ」、通常書込み回数を「Ｔ」とし、通常書込み割振り回数の割合を「Ｘ」とすると、
【００８１】
【数１】
2008181382.tif 000003
【００８２】
により、通常書込み割振り回数の割合である「Ｘ」を算出することができる。そして、チャネルプロセッサ３４は、決定した割振り回数に対応する通常書込み割振り回数の割合を計算することにより、通常書込み割振り回数を算出することができる。
【００８３】
続いて、チャネルプロセッサ３４は、通常書込み平均応答時間（自）、リモートコピー平均応答時間（自）及びリモートコピー回数に基づいて、リモートコピー割振り回数を算出する（ＳＰ１６）。
【００８４】
この場合、チャネルプロセッサ３４は、通常書込み平均応答時間（自）を「Ｖ」、リモートコピー平均応答時間（自）を「ｖ」、リモートコピー回数を「ｔ」とし、リモートコピー割振り回数の割合を「Ｙ」とすると、
【００８５】
【数２】
2008181382.tif 000004
【００８６】
により、リモートコピー割振り回数の割合である「Ｙ」を算出することができる。そして、チャネルプロセッサ３４は、決定した割振り回数に対応するリモートコピー割振り回数の割合を計算することにより、通常書込み割振り回数を算出することができる。
【００８７】
そして、チャネルプロセッサ３４は、この後、この図１２に示す個別割振り回数算出処理手順ＲＴ２を終了する（ＳＰ１７）。
【００８８】
ここで、通常の書込み要求とリモートコピー要求とでは、平均応答時間が大きく異なる。この場合、リモートコピー要求に対応する処理にほうが平均応答時間が長いために、リモートコピー要求を優先して割り振ったほうが効果が大きいこととなる。そこで、チャネルプロセッサ３４は、ホスト装置２から送信される通常の書込み要求及びリモートコピー要求の比率と、それぞれの応答時間からそれぞれの割振り回数を算出する。
【００８９】
なお、本実施の形態においては、通常の書込み要求及びリモートコピー要求における割振り回数の算出について述べたが、本発明はこれに限らず、上述に示したＭＲＣＦ実行要求や、ＵＲ実行要求、ＱＳ実行要求、ＡＯＵ実行要求等の各種の応答時間が大きく異なるについては、同様に、個別の応答時間、個別の要求回数により、それぞれ個別の割振り回数を算出することができる。なお、これらの本発明に含まれる種々の場合について適用するにあたり、各種プログラムや各種テーブルを必要に応じて変更することは言うまでもない。
【００９０】
図１３は、このストレージシステム１におけるストレージ装置４の分散処理実行判定処理に関する、ストレージ装置４のチャネルプロセッサ３４の具体的な処理手順を示したフローチャートの一例である。
【００９１】
なお、以下については、ホスト装置２から通常の書込み要求が送信された場合における書込み処理について説明を行うが、この他のリモートコピー要求や、ＭＲＣＦ実行要求や、ＵＲ実行要求、ＱＳ実行要求、ＡＯＵ実行要求等の各種の要求に対応する各種処理を実行する場合についても、当該要求にかかる処理内容が異なる以外は同様である。
【００９２】
チャネルプロセッサ３４は、ホスト装置２から書込み要求が送信されると、分散処理を実行するか否かを判定する分散処理プログラム５６の分散処理実行判定処理プログラムを実行することにより、図１３に示す分散処理実行判定処理手順ＲＴ３に従って、書込み対象のデータが所定の容量より大きいか否かをチェックする（ＳＰ２１）。
【００９３】
そして、チャネルプロセッサ３４は、書込み対象のデータが所定の容量より大きい場合（ＳＰ２１：ＹＥＳ）には、分散処理における書込み対象のデータのデータ転送が複雑になるおそれがあるため、分散処理を中止して、通常の書込み処理である通常書込み処理手順ＲＴ８（後述）を実行し、この後、図１３に示す分散処理実行判定処理手順ＲＴ３を終了する（ＳＰ２５）。
【００９４】
具体的に、チャネルプロセッサ３４は、書込み対象のデータの容量が１（ＭＢ）より大きい場合には、当該チャネルプロセッサ３４に対応する１つのバッファメモリ３３の容量を越えてしまい、データ転送が著しく複雑になるため、分散処理を中止するものである。
【００９５】
これに対して、チャネルプロセッサ３４は、書込み対象のデータが所定の容量より大きくない、すなわち所定の容量以下である場合（ＳＰ２１：ＮＯ）には、キャッシュメモリ１４が正常でないか否かをチェックする（ＳＰ２２）。
【００９６】
そして、チャネルプロセッサ３４は、キャッシュメモリ１４が正常でない場合（ＳＰ２２：ＹＥＳ）には、バッファメモリ３３の解放やキャッシュメモリ１４のパッケージ交換が行われるおそれがあるため、分散処理を中止して、通常書込み処理手順ＲＴ８（後述）を実行し、この後、図１３に示す分散処理実行判定処理手順ＲＴ３を終了する（ＳＰ２５）。
【００９７】
これに対して、チャネルプロセッサ３４は、キャッシュメモリ１４が正常である場合（ＳＰ２２：ＮＯ）には、当該チャネルプロセッサ３４に対応する追加禁止フラグが「オフ」となっているか否かをチェックする（ＳＰ２３）。
【００９８】
そして、チャネルプロセッサ３４は、当該チャネルプロセッサ３４に対応する追加禁止フラグが「オフ」となっている場合（ＳＰ２３：ＹＥＳ）には、当該チャネルプロセッサ３４の平均応答時間（自）が追加禁止応答時間を越えていないことから、当該チャネルプロセッサ３４がボトルネックとなっているわけではなく、分散処理の効果が期待できないため、分散処理を中止して、通常書込み処理手順ＲＴ８（後述）を実行し、この後、図１３に示す分散処理実行判定処理手順ＲＴ３を終了する（ＳＰ２５）。
【００９９】
これに対して、チャネルプロセッサ３４は、当該チャネルプロセッサ３４に対応する追加禁止フラグが「オフ」となっていない、すなわち追加禁止フラグが「オン」となっている場合（ＳＰ２３：ＮＯ）には、当該チャネルプロセッサ３４のマイクロプログラムを交換しているか否かをチェックする（ＳＰ２４）。
【０１００】
そして、チャネルプロセッサ３４は、当該チャネルプロセッサ３４のマイクロプログラムを交換している場合（ＳＰ２４：ＹＥＳ）には、マイクロプログラムの交換が終了して当該チャネルプロセッサ３４の再起動が行われるおそれがあるため、分散処理を中止して、通常書込み処理手順ＲＴ８（後述）を実行し、この後、図１３に示す分散処理実行判定処理手順ＲＴ３を終了する（ＳＰ２５）。
【０１０１】
これに対して、チャネルプロセッサ３４は、当該チャネルプロセッサ３４のマイクロプログラムを交換していない場合（ＳＰ２４：ＮＯ）には、分散処理を実行すべきと判定し、割振り先チャネルプロセッサ決定処理手順ＲＴ４（後述）を実行し、この後、図１３に示す分散処理実行判定処理手順ＲＴ３を終了する（ＳＰ２５）。
【０１０２】
図１４は、このストレージシステム１におけるストレージ装置４の分散処理実行判断処理に関する、ストレージ装置４のチャネルプロセッサ３４の具体的な処理手順を示したフローチャートの一例である。
【０１０３】
チャネルプロセッサ３４は、分散処理を実行すべきと判定されると、分散処理を実行するか否かを判断する分散処理プログラム５６の分散処理実行判断処理プログラムを実行することにより、図１４に示す分散処理実行判断処理手順ＲＴ４に従って、要求割振り回数テーブル５３を参照することにより、割振り回数を読み出す（ＳＰ３１）。
【０１０４】
続いて、チャネルプロセッサ３４は、要求回数及び割振り回数に基づいて、分散処理を実行するか否かを判断する（ＳＰ３２）。
【０１０５】
この場合、チャネルプロセッサ３４は、要求回数を「Ｗ」、割振り回数を「ｗ」とし、分散処理を実行する回数の割合を「Ｚ」とすると、
【０１０６】
【数３】
2008181382.tif 000005
【０１０７】
により、分散処理を実行する回数の割合である「Ｚ」（回）ごとに分散処理を実行すると判断することができる。
【０１０８】
続いて、チャネルプロセッサ３４は、分散処理を実行するか否かをチェックする（ＳＰ３３）。そして、チャネルプロセッサ３４は、今回の書込み要求では分散処理を実行すべきでない回であると判断され、分散処理を実行しない場合（ＳＰ３３：ＮＯ）には、分散処理を実行すべきであると判定されても、分散処理を中止して、通常書込み処理手順ＲＴ８（後述）を実行し、この後、図１４に示す分散処理実行判断処理手順ＲＴ４を終了する（ＳＰ３４）。これに対して、チャネルプロセッサ３４は、今回の書込み要求においては分散処理を実行すべき回であると判断され、分散処理を実行する場合（ＳＰ３３：ＹＥＳ）には、割振り先チャネルプロセッサ選択処理手順ＲＴ５（後述）及び分散処理手順ＲＴ６を実行し、この後、図１４に示す分散処理実行判断処理手順ＲＴ４を終了する（ＳＰ３４）。
【０１０９】
図１５は、このストレージシステム１におけるストレージ装置４の割振り先チャネルプロセッサ選択処理に関する、ストレージ装置４のチャネルプロセッサ３４の具体的な処理手順を示したフローチャートの一例である。
【０１１０】
チャネルプロセッサ３４は、分散処理を実行すべきと判断されると、割振り先のチャネルプロセッサを選択する分散処理プログラム５６の割振り先チャネルプロセッサ選択処理プログラムを実行することにより、図１５に示す割振り先チャネルプロセッサ選択処理手順ＲＴ５に従って、他チャネルプロセッサ応答時間管理テーブル５２を参照することにより、すべての選択済フラグが「オン」となっているか否かをチェックする（ＳＰ４１）。  
【０１１１】
そして、チャネルプロセッサ３４は、すべての選択済フラグが「オン」となっていない場合（ＳＰ４１：ＮＯ）には、ステップＳＰ４３に進む。これに対して、チャネルプロセッサ３４は、すべての選択済フラグが「オン」となっている場合（ＳＰ４１：ＹＥＳ）には、すべてのチャネルプロセッサ３４が一度選択されたため、すべての選択済フラグを「オフ」に変更し、すべてのチャネルプロセッサ３４を選択することができる状態に戻す（ＳＰ４２）。
【０１１２】
やがて、チャネルプロセッサ３４は、分散処理受付禁止情報管理テーブル４１及び分散処理追加禁止情報管理テーブル４２を参照することにより、受付禁止フラグ及び追加禁止フラグがいずれも「オフ」となっているチャネルプロセッサ３４であり、かつ、他チャネルプロセッサ応答時間管理テーブル５２を参照することにより、選択済フラグが「オフ」であり、通常書込み平均応答時間（自）と比較して通常書込み平均応答時間（他）が早い順に、該当するチャネルプロセッサ３４を、割振り先のチャネルプロセッサ３４として選択する（ＳＰ４３）。
【０１１３】
やがて、チャネルプロセッサ３４は、割振り先のチャネルプロセッサ３４に対応する選択済フラグを「オン」に変更する（ＳＰ４４）。
【０１１４】
そして、チャネルプロセッサ３４は、この後、この図１５に示す割振り先チャネルプロセッサ選択処理手順ＲＴ５を終了する（ＳＰ４５）。
【０１１５】
なお、本実施の形態においては、複数の他のチャネルプロセッサ３４が同時に割振り先チャネルプロセッサ選択処理手順ＲＴ５を実行した場合に、自己チャネルプロセッサ応答時間の短いチャネルプロセッサ３４に分散処理が集中することを防止するため、複数の他のチャネルプロセッサ３４が同時に割振り先チャネルプロセッサ選択処理手順ＲＴ５を実行した場合には、各チャネルプロセッサ３４ごとにタイミングをずらして割振り先チャネルプロセッサ選択処理手順ＲＴ５を実行するようになされている。
【０１１６】
これにより、複数の他のチャネルプロセッサ３４から分散処理により各種要求が自己のチャネルプロセッサに割振られることによる自己チャネルプロセッサ応答時間の急激な増加を防止することができる。
【０１１７】
図１６は、このストレージシステム１におけるストレージ装置４の分散処理に関する、ストレージ装置４のチャネルプロセッサ３４の具体的な処理手順を示したフローチャートの一例である。
【０１１８】
チャネルプロセッサ３４は、割振り先のチャネルプロセッサ３４が選択されると、分散処理を実行する分散処理プログラム５６の分散処理プログラムを実行することにより、図１６に示す分散処理手順ＲＴ６に従って、ホスト装置２から送信される書込み要求に対応する書込み対象のデータをインタフェース部３１及びチャネルアダプタ接続部３２を介して当該チャネルプロセッサに対応するバッファメモリ３３に転送する（ＳＰ５１）。
【０１１９】
続いて、チャネルプロセッサ３４は、書込み処理要求を作成し、当該書込み処理要求を割振り先のチャネルプロセッサ３４に送信する（ＳＰ５２）。この場合、チャネルプロセッサ３４は、割振り先のチャネルプロセッサ３４がバッファメモリ３３を共有している場合には、当該バッファメモリ３３を介して割振り先のチャネルプロセッサ３４に書込み処理要求を送信する。また、チャネルプロセッサ３４は、割振り先のチャネルプロセッサ３４がバッファメモリ３３を共有しておらず、同一のチャネルアダプタ１１内である場合には、当該バッファメモリ３３、チャネルアダプタ接続部３２及び割振り先のチャネルプロセッサ２３に対応するバッファメモリ３３を介して割振り先のチャネルプロセッサ３４に書込み処理要求を送信する。また、チャネルプロセッサ３４は、割振り先のチャネルプロセッサ３４が同一のチャネルアダプタ１１内でない場合には、当該バッファメモリ３３、チャネルアダプタ接続部３２、内部接続端子３６、接続部１２並びに割振り先のチャネルプロセッサ３４のチャネルアダプタ１１内の内部接続端子３６、接続部１２、チャネルアダプタ接続部３２及びバッファメモリ３３を介して割振り先のチャネルプロセッサ３４に書込み処理要求を送信する。
【０１２０】
割振り先のチャネルプロセッサ３４は、チャネルプロセッサ（割振り元）から書込み処理要求を受信すると、書込み処理要求解釈して処理を実行する要求処理プログラム５６を実行することにより、図１６に示す要求処理手順ＲＴ７に従って、キャッシュメモリ１４及びディスクデバイス２１に書込み領域を確保する（ＳＰ５３）。
【０１２１】
続いて、割振り先のチャネルプロセッサ３４は、チャネルプロセッサ３４（割振り元）に対応するバッファメモリ３３から書込み対象のデータを割振り先のチャネルプロセッサ３４に対応するバッファメモリ３３に転送する（ＳＰ５４）。
【０１２２】
この場合、割振り先のチャネルプロセッサ３４は、チャネルプロセッサ３４（割振り元）がバッファメモリ３３を共有している場合には、書込み対象のデータを転送する必要がない。また、割振り先のチャネルプロセッサ３４は、チャネルプロセッサ３４（割振り元）がバッファメモリ３３を共有しておらず、同一のチャネルアダプタ１１内である場合には、チャネルプロセッサ３４（割振り元）に対応するバッファメモリ３３及びチャネルアダプタ接続部３２を介して当該割振り先のチャネルプロセッサ３４に対応するバッファメモリ３３に書込み対象のデータを転送する。さらに、割振り先のチャネルプロセッサ３４は、チャネルプロセッサ３４（割振り元）が同一のチャネルアダプタ１１内でない場合には、書込み対象のデータがチャネルプロセッサ３４（割振り元）によりキャッシュメモリ１４のワークスロットに格納されるのを監視し、書込み対象のデータがチャネルプロセッサ３４（割振り元）によりキャッシュメモリ１４のワークスロットに格納されると、接続部１２、内部接続端子３６及びチャネルアダプタ接続部３２を介して当該割振り先のチャネルプロセッサ３４に対応するバッファメモリ３３に書込み対象のデータを転送する。
【０１２３】
続いて、割振り先のチャネルプロセッサ３４は、キャッシュヒット／ミス判定を行う（ＳＰ５５）。この場合、割振り先のチャネルプロセッサ３４は、ステップＳＰ５３においてキャッシュメモリ１４に書込み領域を確保していることから、必ずキャッシュヒットとなる。
【０１２４】
続いて、割振り先のチャネルプロセッサ３４は、バッファメモリ３３からチャネルアダプタ接続部３２、内部接続端子３６及び接続部１２を介して書込み対象のデータをキャッシュメモリ１４の確保した書込み領域に転送する（ＳＰ５６）。
【０１２５】
続いて、割振り先のチャネルプロセッサ３４は、チャネルプロセッサ３４（割振り元）に書込み処理が終了した旨の通知を送信する（ＳＰ５７）。この場合、割振り先のチャネルプロセッサ３４は、チャネルプロセッサ３４（割振り元）の位置に応じてステップＳＰ５２における送信ルートとは反対のルートで送信するようになされている。
【０１２６】
続いて、割振り先のチャネルプロセッサ３４は、バッファメモリ３３及び確保したキャッシュメモリ１４の書込み領域を解放し（ＳＰ５８）、この後、図１６に示す要求処理手順ＲＴ７を終了する（ＳＰ６２）。
【０１２７】
一方、チャネルプロセッサ（割振り元）は、割振り先のチャネルプロセッサ３４から書込み処理が終了した旨の通知を受信すると、書込み処理が終了した旨の通知をバッファメモリ３３、チャネルアダプタ接続部３２及びインタフェース部３１を介してホスト装置２に送信する（ＳＰ５９）。
【０１２８】
続いて、チャネルプロセッサ３４は、バッファメモリ３３を解放し（ＳＰ６０）、この後、図１６に示す分散処理手順ＲＴ６を終了する（ＳＰ６１）。
【０１２９】
図１７は、このストレージシステム１におけるストレージ装置４の通常書込み処理に関する、ストレージ装置４のチャネルプロセッサ３４の具体的な処理手順を示したフローチャートの一例である。
【０１３０】
チャネルプロセッサ３４は、分散処理を実行すべきと判定されなかった場合及び分散処理を実行すべきでない回であった場合に、要求処理プログラム５６を実行することにより、図１７に示す通常書込み要求処理手順ＲＴ８に従って、ホスト装置２から送信される書込み要求に対応する書込み対象のデータをインタフェース部３１及びチャネルアダプタ接続部３２を介して当該チャネルプロセッサに対応するバッファメモリ３３に転送する（ＳＰ７１）。
【０１３１】
続いて、チャネルプロセッサ３４は、キャッシュメモリ１４及びディスクデバイス２１に書込み領域を確保する（ＳＰ７２）。
【０１３２】
続いて、チャネルプロセッサ３４は、キャッシュヒット／ミス判定を行う（ＳＰ７３）。この場合、チャネルプロセッサ３４は、ステップＳＰ７１においてキャッシュメモリ１４に書込み領域を確保していることから、必ずキャッシュヒットとなる。
【０１３３】
続いて、チャネルプロセッサ３４は、バッファメモリ３３からチャネルアダプタ接続部３２、内部接続端子３６及び接続部１２を介して書込み対象のデータをキャッシュメモリ１４の確保した書込み領域に転送する（ＳＰ７４）。
【０１３４】
続いて、チャネルプロセッサは、書込み処理が終了した旨の通知をバッファメモリ３３、チャネルアダプタ接続部３２及びインタフェース部３１を介してホスト装置２に送信する（ＳＰ７５）。
【０１３５】
続いて、チャネルプロセッサ３４は、バッファメモリ３３及び確保したキャッシュメモリ１４の書込み領域を解放し（ＳＰ７６）、この後、図１７に示す通常書込み要求処理手順ＲＴ８を終了する（ＳＰ７７）。
【０１３６】
このようにしてストレージシステム１では、ストレージ装置４において、ホスト装置２から送信される書込み要求をチャネルプロセッサ３４が受信したときに、当該チャネルプロセッサ３４から他のチャネルプロセッサ３４に分散処理を実行するか否かを判断し、分散処理を実行すると判断された場合には、割振り先のチャネルプロセッサ３４を選択する。
【０１３７】
従って、負荷分散処理における分割損によるオーバーヘッドにより、自己のチャネルプロセッサ３４において書込み要求に対する処理を完結する場合に比して、却って、ホスト装置２から書込み要求を受信してから、当該書込み要求に対応して書込み対象のデータを書き込んだ旨を通知するまでの応答時間が悪化するといった事態を未然かつ有効に防止することができる。
【０１３８】
また、各チャネルプロセッサ３４の他チャネルプロセッサ応答時間を基準に割振り先のチャネルプロセッサ３４を選択するため、稼働率が高くても他チャネルプロセッサ応答時間の短いチャネルプロセッサ３４には要求に対応する処理を割り振ることができる。さらに、各種要求ごとに個別に割振り回数を変化させることができるため、様々な要求を同時に扱った場合にも各種要求に対する処理を最適化することができる。
【０１３９】
なお、本実施の形態における、応答時間が影響を受ける要因としては、例えば、チャネルプロセッサ内のキューや、キャッシュメモリの応答、ディスクアダプタ内のキュー、ディスクデバイスの応答、リモートコピーの応答、ＭＲＣＦの応答等が考えられる。
【０１４０】
また、本実施の形態においては、ジョブの種類が頻繁に変わる場合には、有効な割振り先のチャネルプロセッサを選択することができないことがあるため、分散処理を実行するか否かを管理者が手動で切り替えられるようにしても良い。また、上述の追加禁止応答時間及び追加再開応答時間の変形例として、所定台数以上のホスト装置からの要求を受け付けている場合には、分散処理を中止し、要求が少なくなった場合に、再開するようにしても良い。管理端末では、どのチャネルアダプタにどのホスト装置が接続されているかの情報を有しているため、それを参照するようにしても良い。
【０１４１】
さらに、本実施の形態においては、分散処理を割り振るチャネルプロセッサとしては、すべての範囲のチャネルプロセッサに割り振った場合について述べたが、本発明はこれに限らず、例えば、管理端末上で分散処理グループを定義し、分散処理は同一グループ内のみで行うようにしても良い。また、グループ定義は、例えば、グループに属するチャネルプロセッサＩＤで行うようにしても良い。
【産業上の利用可能性】
【０１４２】
本発明は、複数の独立した制御機能を有するストレージ装置に広く適用することができる。
【図面の簡単な説明】
【０１４３】
【図１】本実施の形態によるストレージシステムの概略的な構成を示すブロック図である。
【図２】チャネルアダプタの概略的な構成を示すブロック図である。
【図３】共有メモリの概略的な構成を示すブロック図である。
【図４】分散処理受付禁止情報管理テーブルの説明に供する概念図である。
【図５】分散処理追加禁止情報管理テーブルの説明に供する概念図である。
【図６】ローカルメモリの概略的な構成を示すブロック図である。
【図７】自己チャネルプロセッサ応答時間管理テーブルの説明に供する概念図である。
【図８】他チャネルプロセッサ応答時間管理テーブルの説明に供する概念図である。
【図９】要求割振り回数管理テーブルの説明に供する概念図である。
【図１０】追加禁止応答時間管理テーブルの説明に供する概念図である。
【図１１】周期処理手順を示すフローチャートである。
【図１２】個別割振り回数算出処理手順を示すフローチャートである。
【図１３】分散処理実行判定処理手順を示すフローチャートである。
【図１４】分散処理実行判断処理手順を示すフローチャートである。
【図１５】割振り先チャネルプロセッサ選択処理手順を示すフローチャートである。
【図１６】分散処理手順を示すフローチャートである。
【図１７】通常書込み処理手順を示すフローチャートである。
【符号の説明】
【０１４４】
１……ストレージシステム、２……ホスト装置、４……ストレージ装置、１１……チャネルアダプタ、３３……バッファメモリ、３４……チャネルプロセッサ、３５……ローカルメモリ、４１……分散処理受付禁止情報管理テーブル、４２……分散処理追加禁止情報管理テーブル、５１……自己チャネルプロセッサ応答時間管理テーブル、５２……他チャネルプロセッサ応答時間管理テーブル、５３……要求割振り回数管理テーブル、５４……追加禁止応答時間管理テーブル、５５……周期処理プログラム、５６……要求処理プログラム、５７……分散処理プログラム
【図１】
2008181382.tif 000006
【図２】
2008181382.tif 000007
【図３】
2008181382.tif 000008
【図４】
2008181382.tif 000009
【図５】
2008181382.tif 000010
【図６】
2008181382.tif 000011
【図７】
2008181382.tif 000012
【図８】
2008181382.tif 000013
【図９】
2008181382.tif 000014
【図１０】
2008181382.tif 000015
【図１１】
2008181382.tif 000016
【図１２】
2008181382.tif 000017
【図１３】
2008181382.tif 000018
【図１４】
2008181382.tif 000019
【図１５】
2008181382.tif 000020
【図１６】
2008181382.tif 000021
【図１７】
2008181382.tif 000022