(57)【特許請求の範囲】
【請求項１】
上位装置に対するインタフェースとして機能するポート部と、
前記上位装置から前記ポート部を介して与えられるデータ入出力要求に応じて、対応する記憶装置にデータを入出力する複数の処理部と
を備え、
前記ポート部は、
各前記処理部にそれぞれ割り当てられたデータ入出力処理を担当すべき前記記憶装置又は前記記憶装置内の記憶領域が予め規定されたテーブルを保持し、前記上位装置から与えられる前記データ入出力要求を当該テーブルに従って対応する前記処理部に振り分け、
前記処理部は、
前記ポート部により自己に振り分けられた前記データ入出力要求に応じて、対応する前記記憶装置又は対応する前記記憶領域にデータを入出力する一方、他の前記処理部の障害による閉塞を検出したときには、当該他の処理部に割り当てられた前記記憶装置又は前記記憶領域を閉塞していない残りの前記処理部に割り振るように各前記ポート部がそれぞれ保持する前記テーブルを更新するようにした同一の構成を有する複数の記憶制御装置が通信ケーブルを介して接続され、
前記複数の記憶制御装置の各上位装置から対応する各ポート部に前記データ入出力要求が与えられたとき、各ポートは、前記テーブルを参照して対応する記憶制御装置内の各処理部を特定し、その特定した各処理部に前記データ入出力要求を転送し、
前記複数の記憶制御装置の各ポート部が前記テーブル上で転送先となる処理部を検出できなかったとき、前記データ入出力要求を前記通信ケーブルを介して他の記憶制御装置の処理部に転送する
ことを特徴とする記憶制御装置。
【請求項２】
前記複数の記憶制御装置における各処理部は、
障害により閉塞した前記他の処理部に割り当てられた前記記憶装置又は前記記憶領域を、前記閉塞していない残りの処理部に均等に割り振る
ことを特徴とする請求項１に記載の記憶制御装置。
【請求項３】
前記複数の記憶制御装置における各処理部は、
それぞれ各前記処理部がアクセス可能な共有メモリに定期的に現在時刻を格納すると共に、当該共有メモリに前記他の処理部が格納した時刻に基づいて、前記他の処理部の障害による閉塞の有無を定期的に判定する
ことを特徴とする請求項１に記載の記憶制御装置。
【請求項４】
前記複数の記憶制御装置における各ポート部は、
転送先の前記処理部が前記データ入出力要求を受信できないときには、当該データ入出力要求を他の前記処理部に転送し、
当該データ入出力要求を受信した前記処理部は、
当該データ入出力要求を本来送信すべき前記処理部が障害により閉塞していないか否かを、前記共有メモリに格納された当該処理部が格納した前記現在時刻に基づいて判定する
ことを特徴とする請求項３に記載の記憶制御装置。
【請求項５】
前記複数の記憶制御装置における各ポート部は、
転送先の前記処理部が前記データ入出力要求を受信できないときには、前記テーブルに登録された前記処理部の中から新たな転送先の前記処理部を選択して当該データ入出力要求を他の前記処理部に転送すると共に、当該転送先の処理部の識別子と、データ入出力要求に基づくデータ入出力先の記憶装置又は記憶領域の識別子とを記憶し、次に前記データ入出力要求を他の処理部に転送する際には、記憶した前回の前記データ入出力要求の転送先の処理部の識別子と、データ入出力要求に基づくデータ入出力先の記憶装置又は記憶領域の識別子とに基づいて、前記テーブルに登録された前記処理部の中から新たな転送先の前記処理部を選択する
ことを特徴とする請求項４に記載の記憶制御装置。
【請求項６】
前記複数の記憶制御装置における各処理部は、
外部からの指示に応じて閉塞する際、自己に割り当てられた前記記憶装置又は前記記憶領域を他の前記処理部に割り振るように各前記ポート部がそれぞれ保持する前記テーブルを更新する
ことを特徴とする請求項１に記載の記憶制御装置。
【請求項７】
前記複数の記憶制御装置における各テーブルは、
ユーザからの指示に応じてユーザの設定情報を基に所定の前記処理部が作成し、各ポート部に設定する
ことを特徴とする請求項１に記載の記憶制御装置。
【請求項８】
前記複数の記憶制御装置における各所定の処理部は、
各処理部にそれぞれ割り当てるべき前記記憶装置の個数がユーザにより指定されたときには、当該指定に応じた個数の前記記憶装置を各前記処理部にそれぞれ割り当て、各処理部にそれぞれ割り当てるべき前記記憶装置の個数がユーザにより指定されていないときには、各前記処理部に均等に前記記憶装置を割り当てる
ことを特徴とする請求項７に記載の記憶制御装置。
【請求項９】
前記複数の記憶制御装置の各処理部は、
ユーザから各処理部の処理を実行するように当該処理部のメモリに格納されている制御プログラムの交換指示が与えられたとき、前記ポート部に保持されている前記テーブルを更新した後、当該処理部に割り当てられた前記記憶装置又は前記記憶領域を閉塞し、次に前記制御プログラムの交換する指示を発行する一方、前記メモリに格納されていた制御プログラムを読み出し、その読み出した制御プログラムを前記自己のメモリの不揮発領域に格納すると共に、交換すべき制御プログラムを前記メモリに取り込む
ことを特徴とする請求項１に記載の記憶制御装置。
【請求項１０】
上位装置に対するインタフェースとして機能するポート部と、前記上位装置から前記ポート部を介して与えられるデータ入出力要求に応じて、対応する記憶装置にデータを入出力する複数の処理部とを備えた同一の構成を有する複数の記憶制御装置が通信ケーブルを介して接続されている記憶制御装置における記憶制御方法において、
前記複数の記憶制御装置における各ポート部が、各前記処理部にそれぞれ割り当てられたデータ入出力処理を担当すべき前記記憶装置又は前記記憶装置内の記憶領域が予め規定されたテーブルに従って、前記上位装置から与えられる前記データ入出力要求を対応する前記処理部に振り分ける第１のステップと、
前記複数の記憶制御装置における各処理部が、前記ポート部により自己に振り分けられた前記データ入出力要求に応じて、対応する前記記憶装置又は対応する前記記憶領域にデータを入出力する一方、他の前記処理部の障害による閉塞を検出したときには、当該他の処理部に割り当てられた前記記憶装置又は前記記憶領域を閉塞していない残りの前記処理部に割り振るように各前記ポート部がそれぞれ保持する前記テーブルを更新する第２のステップと
を有し、且つ、
前記複数の記憶制御装置の各上位装置から対応する各ポート部に前記データ入出力要求が与えられたとき、各ポートが、前記テーブルを参照して対応する記憶制御装置内の各処理部を特定し、その特定した各処理部に前記データ入出力要求を転送するステップと、
前記複数の記憶制御装置の各ポート部が前記テーブル上で転送先となる処理部を検出できなかったとき、前記データ入出力要求を前記通信ケーブルを介して他の記憶制御装置の処理部に転送するステップと
を有することを特徴とする記憶制御方法。
【請求項１１】
前記第２のステップにおいて、前記処理部は、
障害により閉塞した前記他の処理部に割り当てられた前記記憶装置又は前記記憶領域を、前記閉塞していない残りの処理部に均等に割り振る
ことを特徴とする請求項１０に記載の記憶制御方法。
【請求項１２】
前記複数の記憶制御装置における各処理部は、
それぞれ各前記処理部がアクセス可能な共有メモリに定期的に現在時刻を格納すると共に、当該共有メモリに前記他の処理部が格納した時刻に基づいて、前記他の処理部の障害による閉塞の有無を定期的に判定する
ことを特徴とする請求項１０に記載の記憶制御方法。
【請求項１３】
前記複数の記憶制御装置における各ポート部は、
転送先の前記処理部が前記データ入出力要求を受信できないときには、当該データ入出力要求を他の前記処理部に転送し、
当該データ入出力要求を受信した前記処理部は、
当該データ入出力要求を本来送信すべき前記処理部が障害により閉塞していないか否かを、前記共有メモリに格納された当該処理部が格納した前記現在時刻に基づいて判定する
ことを特徴とする請求項１２に記載の記憶制御方法。
【請求項１４】
前記第１のステップでは、
ポート部は、転送先の前記処理部が前記データ入出力要求を受信できないときには、前記テーブルに登録された前記処理部の中から新たな転送先の前記処理部を選択して当該データ入出力要求を他の前記処理部に転送すると共に、当該転送先の処理部の識別子と、データ入出力要求に基づくデータ入出力先の記憶装置又は記憶領域の識別子とを記憶し、次に前記データ入出力要求を他の処理部に転送する際には、記憶した前回の前記データ入出力要求の転送先の処理部の識別子と、データ入出力要求に基づくデータ入出力先の記憶装置又は記憶領域の識別子とに基づいて、前記テーブルに登録された処理部の中から新たな転送先の前記処理部を選択する
ことを特徴とする請求項１３に記載の記憶制御方法。
【請求項１５】
前記複数の記憶制御装置における各処理部は、
外部からの指示に応じて閉塞する際、自己に割り当てられた前記記憶装置又は前記記憶領域を他の前記処理部に割り振るように各前記ポート部がそれぞれ保持する前記テーブルを更新する
ことを特徴とする請求項１０に記載の記憶制御方法。
【請求項１６】
前記複数の記憶制御装置における各テーブルは、
ユーザからの指示に応じて所定の前記処理部が作成し、各ポート部に設定する
ことを特徴とする請求項１０に記載の記憶制御方法。
【請求項１７】
前記複数の記憶制御装置における各所定の処理部は、
各処理部にそれぞれ割り当てるべき前記記憶装置の個数がユーザにより指定されたときには、当該指定に応じた個数の前記記憶装置を各前記処理部にそれぞれ割り当て、各処理部にそれぞれ割り当てるべき前記記憶装置の個数がユーザにより指定されていないときは、各前記処理部に均等に前記記憶装置を割り当てる
ことを特徴とする請求項１６に記載の記憶制御方法。
【請求項１８】
前記複数の記憶制御装置の各処理部は、
ユーザから各処理部の処理を実行するように当該処理部のメモリに格納されている制御プログラムの交換指示が与えられたとき、前記ポート部に保持されている前記テーブルを更新した後、当該処理部に割り当てられた前記記憶装置又は前記記憶領域を閉塞するステップと、
前記制御プログラムの交換する指示を発行する一方、前記メモリに格納されていた制御プログラムを読み出し、その読み出した制御プログラムを前記自己のメモリの不揮発領域に格納すると共に、交換すべき制御プログラムを前記メモリに取り込むステップと
を有することを特徴とする請求項１０に記載の記憶制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶制御装置及び方法に関し、例えばホストに対するインタフェースとして機能するポート部と、記憶装置に対してデータ入出力処理を行なうマイクロプロセッサとをハード的に分離独立化したストレージ装置に適用して好適なものである。
【背景技術】
【０００２】
例えば、データセンタ等のような大規模なデータを取り扱うデータベースシステムでは、ホストコンピュータとは別に構成された記憶システムを用いてデータを管理する。この記憶システムは、例えば１又は複数のストレージ装置等から構成される。
【０００３】
ストレージ装置は、多数の記憶デバイスをアレイ状に配設して構成されるもので、例えば、ＲＡＩＤ（Redundant Array of Independent Inexpensive Disks）に基づいて構築される。記憶デバイス群が提供する物理的な記憶領域上には少なくとも１つ以上の論理的なボリュームが形成され、このボリュームがホストに提供される。ホストは、所定のコマンドを送信することにより、ボリュームに対してデータの書き込みや読み出しを行うことができる。
【０００４】
従来、このようなストレージ装置に関して、ホストに接続されるインタフェースと、ディスクドライブに対してデータ入出力処理を行なうプロセッサとを分離独立化し、インタフェースがホストからのアクセス要求を予め記憶したルーティング情報に基づいて対応するプロセッサに転送することにより、ストレージ装置のアクセス性能を向上させる技術が提案されている（特許文献１参照）。
【特許文献１】特開２００７−２０７００７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、近年、ユーザＩＴ（Information Technology）環境において、アプリケーション数、サーバ数及びデータ量が増加傾向にある。このような状況の下、ストレージ装置においても、アプリケーション数、サーバ数及びデータ量に応じて装置全体の性能を維持する上で、以下の問題がある。
【０００６】
障害等でプロセッサが閉塞した場合、閉塞したプロセッサで処理すべきホストからのデータ入出力要求を同一のパッケージ内の他のプロセッサで処理を行なうため、かかる他のプロセッサにデータ入出力要求が集中して過負荷となり、当該プロセッサにおけるデータ入出力性能が低下する問題がある。
【０００７】
また障害等でパッケージが閉塞した場合には、当該パッケージにおいてホストからのデータ入出力要求を受け付けることができない。このような場合に交替パスにデータ入出力要求を発行する交替パスソフトウェアを事前にホストにインストールすることにより、他のパッケージを利用したデータ入出力を行なうことはできるものの、交替パスが設定された他のパッケージにデータ入出力要求が集中して過負荷となり、かかる他のパッケージにおけるデータ入出力性能が低下する問題がある。
【０００８】
さらにホストからのデータ入出力要求を他のパッケージに依頼（以下、これを横振りと呼ぶ）する横振り機能をパッケージに搭載することによりデータ入出力要求が集中したパッケージの負荷の軽減を図ることができるが、ホストへの応答と横振り処理はポートと括り付けられたプロセッサが処理を行なわなければならないため、ポートに括り付けられたプロセッサのプロセッサネックが完全には解消し得ない問題がある。
【０００９】
本発明は以上の点を考慮してなされたもので、耐障害性を向上させ得る記憶制御装置及び方法を提案しようとするものである。
【課題を解決するための手段】
【００１０】
かかる課題を解決するため本発明においては、記憶装置にデータを入出力する複数の処理部と、上位装置からのデータ入出力要求を予め保持するテーブルに従って対応する処理部に振り分けるポート部とを備える複数の記憶制御装置が通信ケーブルを介して接続されている記憶制御装置において、各記憶制御装置それぞれの閉塞した処理部に割り当てられた記憶装置等を他の処理部に割り振るように、各ポート部がそれぞれ保持するテーブルを更新するようにした。
【００１１】
具体的には、上位装置に対するインタフェースとして機能するポート部と、前記上位装置から前記ポート部を介して与えられるデータ入出力要求に応じて、対応する記憶装置にデータを入出力する複数の処理部とを備え、前記ポート部は、各前記処理部にそれぞれ割り当てられたデータ入出力処理を担当すべき前記記憶装置又は前記記憶装置内の記憶領域が予め規定されたテーブルを保持し、前記上位装置から与えられる前記データ入出力要求を当該テーブルに従って対応する前記処理部に振り分け、前記処理部は、前記ポート部により自己に振り分けられた前記データ入出力要求に応じて、対応する前記記憶装置又は対応する前記記憶領域にデータを入出力する一方、他の前記処理部の障害による閉塞を検出したときには、当該他の処理部に割り当てられた前記記憶装置又は前記記憶領域を閉塞していない残りの前記処理部に割り振るように各前記ポート部がそれぞれ保持する前記テーブルを更新するようにした同一の構成を有する複数の記憶制御装置が通信ケーブルを介して接続され、前記複数の記憶制御装置の各上位装置から対応する各ポート部に前記データ入出力要求が与えられたとき、各ポートは、前記テーブルを参照して対応する記憶制御装置内の各処理部を特定し、その特定した各処理部に前記データ入出力要求を転送し、
前記複数の記憶制御装置の各ポート部が前記テーブル上で転送先となる処理部を検出できなかったとき、前記データ入出力要求を前記通信ケーブルを介して他の記憶制御装置の処理部に転送することを特徴とする。
【００１２】
また上位装置に対するインタフェースとして機能するポート部と、前記上位装置から前記ポート部を介して与えられるデータ入出力要求に応じて、対応する記憶装置にデータを入出力する複数の処理部とを備えた同一の構成を有する複数の記憶制御装置が通信ケーブルを介して接続されている記憶制御装置における記憶制御方法において、前記複数の記憶制御装置における各ポート部が、各前記処理部にそれぞれ割り当てられたデータ入出力処理を担当すべき前記記憶装置又は前記記憶装置内の記憶領域が予め規定されたテーブルに従って、前記上位装置から与えられる前記データ入出力要求を対応する前記処理部に振り分ける第１のステップと、前記複数の記憶制御装置における各処理部が、前記ポート部により自己に振り分けられた前記データ入出力要求に応じて、対応する前記記憶装置又は対応する前記記憶領域にデータを入出力する一方、他の前記処理部の障害による閉塞を検出したときには、当該他の処理部に割り当てられた前記記憶装置又は前記記憶領域を閉塞していない残りの前記処理部に割り振るように各前記ポート部がそれぞれ保持する前記テーブルを更新する第２のステップとを有し、且つ、前記複数の記憶制御装置の各上位装置から対応する各ポート部に前記データ入出力要求が与えられたとき、各ポートが、前記テーブルを参照して対応する記憶制御装置内の各処理部を特定し、その特定した各処理部に前記データ入出力要求を転送するステップと、前記複数の記憶制御装置の各ポート部が前記テーブル上で転送先となる処理部を検出できなかったとき、前記データ入出力要求を前記通信ケーブルを介して他の記憶制御装置の処理部に転送するステップとを有することを特徴とする。
【発明の効果】
【００１３】
本発明によれば、いずれかの処理部が障害により閉塞した場合においても、他の一部の処理部に負荷が集中することなく、また閉塞した処理部に割り当てられていた記憶装置又は記憶領域に対するデータ入出力処理を滞ることなく行なうことができ、かくして耐障害性を向上させ得る記憶制御装置及び方法を実現できる。
【発明を実施するための最良の形態】
【００１４】
以下図面について、本発明の一実施の形態を詳述する。
【００１５】
（１）第１の実施の形態
（１−１）本実施の形態による記憶システムの構成
図１において、１は全体として本実施の形態による記憶システムを示す。この記憶システム１は、複数の上位装置としてのホストサーバ２がそれぞれＳＡＮ（Storage Area Network）やＩＰ（Internet Protocol）ネットワークなどの通信ネットワーク３を介してストレージ装置４に接続されると共に、当該ストレージ装置４に管理コンソール５が接続されて構成される。
【００１６】
ホストサーバ２は、ＣＰＵ（Central Processing Unit）やメモリ等の情報処理資源を備えたコンピュータ装置であり、例えばパーソナルコンピュータやワークステーション、メインフレームなどから構成される。ホストサーバ２は、キーボード、スイッチやポインティングデバイス、マイクロホン等の情報入力装置と、モニタディスプレイやスピーカ等の情報出力装置とを備えている。またホストサーバ２には、通信ネットワーク３を介してストレージ装置４にアクセスするためのインタフェースとして機能するアダプタ（例えばＨＡＢ（Host BUS Adapter））が設けられている。
【００１７】
ストレージ装置４は複数の記憶装置１０と、これら記憶装置１０に対するデータの入出力を制御するコントロール部１１とから構成される。
【００１８】
記憶装置１０は、それぞれ複数のハードディスク装置から構成される。ハードディスク装置としては、例えばＦＣ（Fibre channel）ディスク等の高価なディスク又はＳＡＴＡ（Serial AT Attachment）ディスク等の安価なディスクが適用され、これらのハードディスク装置１０がコントロール部１１によりＲＡＩＤ（Redundant Array of Inexpensive Disks）方式で運用される。１又は複数のハードディスク装置が提供する記憶領域上に１又は複数の論理的なボリュームが作成され、これらボリュームがデータを読み書きするための領域としてホストサーバ２に提供される。なお、記憶装置１０をフレキシブルディスクや磁気テープ、フラッシュメモリ等の半導体メモリ及び又は光ディスクなどから構成するようにしてもよい。
【００１９】
コントロール部１１は、複数のポート部１２、接続部１３、複数のマイクロプロセッサ処理部１４、キャッシュメモリ１５、共有メモリ１６及び複数の記憶装置インタフェース部１７から構成される。
【００２０】
ポート部１２は、ホストサーバ２との間でデータの送受を行うインタフェースとして機能するもので、通信ポート（図示せず）及びメモリ１２Ａを備える。通信ポートには、通信ネットワーク上においてそれぞれを識別するためのＩＰ（Internet Protocol）アドレスやＷＷＮ（World Wide Address）などのポートアドレス（以下、ＷＷＮとする）が割り当てられる。
【００２１】
接続部１３は、各ポート部１２、各マイクロプロセッサ処理部１４、キャッシュメモリ１５、共有メモリ１６及び各記憶装置インタフェース部１７を相互に接続する機能を有するもので、例えば高速スイッチングによりデータ伝送を行う超高速クロスデバイススイッチなどのスイッチ又はバス等で構成される。各ポート部１２、各マイクロプロセッサ処理部１４、キャッシュメモリ１５、共有メモリ１６及び各記憶装置インタフェース部１７間のデータやコマンドの授受は、この接続部１３を介して行なわれる。
【００２２】
マイクロプロセッサ処理部１４は、１又は複数のマイクロプロセッサ１４Ａと、メモリ１４Ｂとなどを備えて構成される。マイクロプロセッサ１４Ａがメモリ１４Ｂに格納された制御プログラム（以下、これをマイクロプログラムと呼ぶ）を実行することにより、マイクロプロセッサ処理部１４全体として後述のような種々の処理を実行する。
【００２３】
キャッシュメモリ１５及び共有メモリ１６は、ポート部１２、マイクロプロセッサ処理部１４及び記憶装置インタフェース部１７により共有されるメモリである。キャッシュメモリ１５は、主に記憶装置１０に読み書きするデータを一時的に記憶するために利用される。また共有メモリ１６は、主にマイクロプロセッサ処理部１４が参照及び更新を行なう制御情報を記憶するために利用される。
【００２４】
記憶装置インタフェース部１７は、マイクロプロセッサ処理部１４からの要求に応じて、指定されたデータを対応する記憶装置１０に読み書きするためのインタフェースとして機能する。
【００２５】
管理コンソール５は、ＣＰＵ及びメモリ５Ａ等の情報処理資源を備えたコンピュータ装置であり、例えばパーソナルコンピュータから構成される。管理コンソール５は、キーボード、スイッチやポインティングデバイス、マイクロホン等の情報入力装置（図示せず）と、モニタディスプレイやスピーカ等の情報出力装置（図示せず）とを備える。管理コンソール５は、例えばユーザがストレージ装置４に対して各種設定を行ったり、ストレージ装置４内の障害を検出するために利用される。
【００２６】
（１−２）ストレージ装置に搭載されたデータ入出力要求振分け機能
（１−２−１）各種テーブルの構成
次に、ストレージ装置４に搭載されたデータ入出力要求振分け機能について説明する。なお以下においては、説明の都合上、マイクロプロセッサ処理部１４ごとにパッケージ化されており、１つのマイクロプロセッサ処理部１４には１つのマイクロプロセッサ１４Ａのみが搭載されているものとする。
【００２７】
本ストレージ装置４においては、各マイクロプロセッサ１４Ａに対してデータ入出力処理を担当すべき記憶装置１０が予め割り当てられている。そして各ポート部１２は、ホストサーバ２からデータ入出力要求が与えられた場合、当該データ入出力要求において指定された記憶装置１０に対するデータ入出力処理を行なうべきマイクロプロセッサ１４Ａが搭載されたマイクロプロセッサ処理部１４にそのデータ入出力要求を転送する。
【００２８】
各ポート部１２がこのようなデータ入出力要求の振分け処理を行なうための手段として、各ポート部１２のメモリ１２Ａには、図２に示すような分散配置テーブル２０が格納されている。
【００２９】
分散配置テーブル２０は、各マイクロプロセッサ処理部１４にそれぞれ割り当てられた記憶装置１０をポート部１２が管理し、ホストサーバ２からデータ入出力要求が与えられたときに当該データ入出力要求の転送先を決定する際に参照するテーブルであり、図２に示すように、マイクロプロセッサ処理部番号欄２０Ａ、ステータス欄２０Ｂ、有効ワードカウント欄２０Ｃ及び処理対象記憶装置ビットマップ欄２０Ｄから構成される。
【００３０】
そしてマイクロプロセッサ処理部番号欄２０Ａには、そのストレージ装置４内の各マイクロプロセッサ処理部１４にそれぞれ付与された識別番号（以下、これをマイクロプロセッサ処理部番号と呼ぶ）が格納される。
【００３１】
またステータス欄２０Ｂには、対応するマイクロプロセッサ処理部１４の現在のステータスが格納される。なお、マイクロプロセッサ処理部１４のステータスとしては、そのマイクロプロセッサ処理部１４が正常動作をしていることを表す「正常」と、そのマイクロプロセッサ処理部１４が閉塞していることを表す「閉塞」と、そのマイクロプロセッサ処理部１４が後述する保守閉塞状態に移行中であることを表す「保守閉塞移行中」と、そのマイクロプロセッサ処理部１４が実装されていない状態であることを表す「未実装」となどがある。
【００３２】
さらに処理対象記憶装置ビットマップ欄２０Ｄには、ストレージ装置４内の各記憶装置１０にそれぞれ対応してビットが設けられたビットマップ（以下、これを処理対象記憶装置ビットマップと呼ぶ）が格納される。そして処理対象記憶装置ビットマップにおいては、対応するマイクロプロセッサ処理部１４に割り当てられた記憶装置１０と対応付けられたビットのみが「オン（１）」に設定される。
【００３３】
さらに有効ワードカウント欄２０Ｃには、対応する処理対象記憶装置ビットマップ欄２０Ｄに格納された処理対象記憶装置ビットマップ上の有効ワード数が格納される。本実施の形態の場合、処理対象記憶装置ビットマップ上のビットを複数ビット（例えば３２ビット）単位で管理している。このときの管理単位とする複数ビットを１ワードと呼ぶ。有効ワード数とは、対応する処理対象記憶装置ビットマップにおいて、いずれかのビットが「オン」に設定されたワード（有効ワード）が先頭のワードから最大何ワード目までかを表すワード数を意味する。従って、例えば有効ワード数が「１２」である場合、対応するマイクロプロセッサ処理部１４には、１２ワード目までのいずれかのビットと対応付けられた記憶装置が１又は複数割り当てられていることになる。この場合、例えば対応するマイクロプロセッサ処理部１４に対して１ワード目から９ワード目までのビットと対応する記憶装置が全く割り当てられておらず、１０ワード目から１２ワード目のいずれのビットと対応する１又は複数の記憶装置が割り当てられているときにも有効ワード数は「１２」となる。
【００３４】
一方、共有メモリ１６には、後述のように必要時にマイクロプロセッサ処理部１４が参照する装置構成情報テーブル２１が格納されている。
【００３５】
この装置構成情報テーブル２１は、ストレージ装置４のハードウェア構成や、各ハードウェアの状態を管理するためのテーブルであり、図３に示すように、ポート部数欄２１Ａ、マイクロプロセッサ処理部数欄２１Ｂ、キャッシュメモリ数欄２１Ｃ、共有メモリ数欄２１Ｄ、記憶装置インタフェース部数欄２１Ｅ、記憶装置数欄２１Ｆ、ブロードキャストテーブル欄２１Ｇ、ポート部状態ビットマップ欄２１Ｈ、マイクロプロセッサ処理部状態ビットマップ欄２１Ｉ、キャッシュメモリ容量／状態ビットマップ欄２１Ｊ、共有メモリ容量／状態ビットマップ欄２１Ｋ、記憶装置インタフェース部状態ビットマップ欄２１Ｌ、記憶装置状態ビットマップ欄２１Ｍ及び予備エリア欄２１Ｎから構成される。
【００３６】
そしてポート部数欄２１Ａ、マイクロプロセッサ処理部数欄２１Ｂ、キャッシュメモリ数欄２１Ｃ、共有メモリ数欄２１Ｄ、記憶装置インタフェース部数欄２１Ｅ及び記憶装置数欄２１Ｆには、それぞれそのストレージ装置４内の対応するハードウェア（ポート部１２、マイクロプロセッサ処理部１４、キャッシュメモリ１５、共有メモリ１６、記憶装置インタフェース部１７又は記憶装置１０）の個数が格納され、ブロードキャストテーブル欄２１Ｇには、図６について後述するブロードキャストテーブル２３が格納される。
【００３７】
またポート部状態ビットマップ欄２１Ｈ、マイクロプロセッサ処理部状態ビットマップ欄２１Ｉ、キャッシュメモリ容量／状態ビットマップ欄２１Ｊ、共有メモリ容量／状態ビットマップ欄２１Ｋ、記憶装置インタフェース部状態ビットマップ欄２１Ｌ及び記憶装置状態ビットマップ欄２１Ｍには、それぞれ対応する各ハードウェアの状態（正常又は異常）を表す状態ビットマップが格納される。なお、キャッシュメモリ容量／状態ビットマップ欄２１Ｊ及び共有メモリ容量／状態ビットマップ欄２１Ｋには、それぞれかかる状態ビットマップに加えて、ストレージ装置４内に存在する各キャッシュメモリ１５又は各共有メモリ１６の容量もそれぞれ格納される。
【００３８】
（１−２−２）分散配置テーブルの設定及び更新
（１−２−２−１）テーブル初期設定処理
ところで上述の分散配置テーブル２０及び装置構成情報テーブル２１は、管理コンソール５を用いたユーザの設定操作に基づいて作成及び設定される。
【００３９】
図４は、このような分散配置テーブル２０及び装置構成情報テーブル２１の初期設定に関する管理コンソール５の処理内容を示している。管理コンソール５は、メモリ５Ａに格納された制御プログラムに基づいて、この図４に示す第１のテーブル初期設定処理を実行する。
【００４０】
すなわち管理コンソール５は、ユーザ操作に応じて対応する制御プログラムを起動すると、この第１のテーブル初期設定処理を開始し、まず、図示しない所定の第１の装置構成設定画面を表示する（ＳＰ１）。
【００４１】
次いで管理コンソール５は、ユーザにより第１の装置構成設定画面内の所定位置に、ストレージ装置４内のポート部１２、マイクロプロセッサ処理部１４、キャッシュメモリ１５、共有メモリ１６、記憶装置インタフェース部１７及び記憶装置１０の各個数と、各キャッシュメモリ１５及び各共有メモリ１６の容量となどの装置構成情報がそれぞれ入力されるのを待ち受ける（ＳＰ２）。
【００４２】
次いで管理コンソール５は、かかる装置構成情報が入力されると、第１の装置構成設定画面において、各マイクロプロセッサ処理部１４（正確には各マイクロプロセッサ１４Ａ）に対する記憶装置１０の割当て数をユーザが設定するモード（以下、これをユーザ設定モードと呼ぶ）が選択されたか否かを判断する（ＳＰ３）。
【００４３】
管理コンソール５は、この判断において否定結果を得るとステップＳＰ６に進み、これに対して肯定結果を得ると、図示しない所定の第２の装置構成設定画面を表示し（ＳＰ４）、この第２の装置構成設定画面を用いて、ユーザにより各マイクロプロセッサ処理部１４に対する記憶装置１０の割当て数がそれぞれ設定されるのを待ち受ける（ＳＰ５）。
【００４４】
そして管理コンソール５は、第２の装置構成設定画面を用いて各マイクロプロセッサ処理部１４に対する記憶装置１０の割当て数が設定されると、このとき第１及び第２の装置構成設定画面を用いて設定された上述の装置構成情報と、各マイクロプロセッサ処理部１４に対する記憶装置１０の割当て数の決定方法としてユーザ設定モードが選択されたか否かの情報と、当該ユーザ設定モードが選択されたときには各マイクロプロセッサ処理部１４にそれぞれ割り当てられた記憶装置１０の個数とをユーザ設定装置構成情報としてストレージ装置４に送信する（ＳＰ６）。そして管理コンソール５は、この後、この第１のテーブル初期設定処理を終了する。
【００４５】
一方、図５は、分散配置テーブル２０及び装置構成情報テーブル２１の初期設定に関するストレージ装置４のマイクロプロセッサ処理部１４の処理内容を示している。この図５に示す第２のテーブル初期設定処理は、管理コンソール５から送信される上述のユーザ設定装置構成情報を最初に受信したマイクロプロセッサ処理部１４により、当該マイクロプロセッサ処理部１４のメモリ１４Ｂに格納されたマイクロプログラムに従って実行される。
【００４６】
すなわちマイクロプロセッサ処理部１４は、かかるユーザ設定装置構成情報すると、この第２のテーブル初期設定処理を開始し、まず、受信したユーザ設定装置構成情報の整合性をチェックする。具体的に、マイクロプロセッサ処理部１４は、例えばチェックサムによりユーザ設定装置構成情報の整合性をチェックすることになる（ＳＰ１０）。
【００４７】
続いてマイクロプロセッサ処理部１４は、ユーザ設定装置構成情報に含まれるポート部数を装置構成情報テーブル２１のポート部数欄２１Ａに格納すると共に、このポート部数に基づいてポート部１２に対する状態ビットマップを作成し、これを装置構成情報テーブル２１のポート部状態ビットマップ欄２１Ｈに格納する（ＳＰ１１）。
【００４８】
またマイクロプロセッサ処理部１４は、ユーザ設定装置構成情報に含まれるマイクロプロセッサ処理部数を装置構成情報テーブル２１のマイクロプロセッサ処理部数欄２１Ｂに格納すると共に、このマイクロプロセッサ処理部数に基づいてマイクロプロセッサ処理部１４に対する状態ビットマップを作成し、これを装置構成情報テーブル２１のマイクロプロセッサ処理部状態ビットマップ欄２１Ｉに格納する（ＳＰ１２）。
【００４９】
さらにマイクロプロセッサ処理部１４は、ユーザ設定装置構成情報に含まれるキャッシュメモリ数及び各キャッシュメモリ１５の容量をそれぞれ装置構成情報テーブル２１のキャッシュメモリ数欄２１Ｃ及びキャッシュメモリ容量／状態ビットマップ欄２１Ｊに格納すると共に、このキャッシュメモリ数に基づいてキャッシュメモリに対する状態ビットマップを作成し、これを装置構成情報テーブル２１のキャッシュメモリ状態ビットマップ欄２１Ｊに格納する（ＳＰ１３）。
【００５０】
同様にして、マイクロプロセッサ処理部１４は、ユーザ設定装置構成情報に含まれる共有メモリ数及び各共有メモリ１６の容量をそれぞれ装置構成情報テーブル２１の共有メモリ数欄２１Ｄ及び共有メモリ容量／状態ビットマップ欄２１Ｋに格納すると共に、この共有メモリ数に基づいて共有メモリ１６に対する状態ビットマップを作成し、これを装置構成情報テーブル２１の共有メモリ容量／状態ビットマップ欄２１Ｋに格納する（ＳＰ１４）。
【００５１】
さらにマイクロプロセッサ処理部１４は、ステップＳＰ１１及びステップＳＰ１２と同様にして、ユーザ設定装置構成情報に含まれる記憶装置インタフェース部数及び記憶装置数をそれぞれ装置構成情報テーブル２１の記憶装置インタフェース部数欄２１Ｅ及び記憶装置数欄２１Ｆにそれぞれ格納すると共に、これら記憶装置インタフェース部数及び記憶装置数に基づいて記憶装置インタフェース部１７及び記憶装置１０に対する状態ビットマップをそれぞれ作成し、これらをそれぞれ装置構成情報テーブル２１の記憶装置インタフェース部状態ビットマップ欄２１Ｌ又は記憶装置状態ビットマップ欄２１Ｍにそれぞれ格納する（ＳＰ１５，ＳＰ１６）。
【００５２】
以上のような処理により、管理コンソール５からのユーザ設定装置構成情報に基づく装置構成情報テーブル２１が作成される。なお、これらステップＳＰ１０〜ステップＳＰ１６の処理は、かかるユーザ設定装置構成情報を受信したマイクロプロセッサ処理部１４内のメモリ１４Ｂ上で行なわれる。
【００５３】
続いてマイクロプロセッサ処理部１４は、他のマイクロプロセッサ処理部１４等が共有メモリ１６上の分散配置テーブル２０及び装置構成情報テーブル２１を更新できないようにするための排他設定を行い（ＳＰ１７）、この後、上述のようにして自マイクロプロセッサ処理部のメモリ１４Ｂ上で作成した装置構成情報テーブル２１を共有メモリ１６の所定領域に格納する（ＳＰ１８）。
【００５４】
次いでマイクロプロセッサ処理部１４は、ユーザ設定装置構成情報に基づいて、各マイクロプロセッサ処理部１４に対する記憶装置１０の割当て数の決定方法としてユーザ設定モードが選択されたか否かを判断する（ＳＰ１９）。そしてマイクロプロセッサ処理部１４は、この判断において肯定結果を得ると、ユーザが設定したマイクロプロセッサ処理部１４ごとの記憶装置数に従って各マイクロプロセッサ処理部１４に記憶装置１０を割り当てた処理対象記憶装置ビットマップをマイクロプロセッサ処理部１４ごとにそれぞれ作成する（ＳＰ２０）。
【００５５】
これに対してマイクロプロセッサ処理部１４は、ステップＳＰ１９の判断において否定結果を得ると、各マイクロプロセッサ処理部１４に記憶装置１０を記憶装置番号が小さいものから順番に同じ数だけ均等に割り当てた処理対象記憶装置ビットマップをマイクロプロセッサ処理部１４ごとにそれぞれ作成する（ＳＰ２１）。
【００５６】
そしてマイクロプロセッサ処理部１４は、この後、ステップＳＰ２０又はステップＳＰ２１において作成した処理対象記憶装置ビットマップに基づいて分散配置テーブル２０を作成し、作成した分散配置テーブル２０を共有メモリ１６内の所定領域にコピーする（ＳＰ２２）。
【００５７】
またマイクロプロセッサ処理部１４は、この後、図６に示すようなブロードキャストテーブル２３を作成する。このブロードキャストテーブル２３は、ストレージ装置４内の各マイクロプロセッサ処理部１４にそれぞれ対応させてビットが設けられたビットマップであり、対象とするマイクロプロセッサ処理部１４と対応付けられたビットが「オン（１）」、それ以外のマイクロプロセッサ処理部１４と対応付けられたビットが「オフ（０）」に設定される。
【００５８】
本実施の形態の場合、ステップＳＰ２０及びステップＳＰ２１において共有メモリ１６にそれぞれ格納された新たな分散配置テーブル２０及び装置構成情報テーブル２１を他のマイクロプロセッサ処理部１４に取り込ませるため、ステップＳＰ２３において作成されるブロードキャストテーブル２３は、新たな分散配置テーブル２０等を作成したマイクロプロセッサ処理部１４と対応付けられたビットが「オフ」に設定され、これ以外のマイクロプロセッサ処理部１４と対応付けられた各ビットがいずれも「オン」に設定される。
【００５９】
そしてマイクロプロセッサ処理部１４は、このようにして作成したブロードキャストテーブル２３を共有メモリ１６に格納された上述の装置構成情報テーブル２１（図３）のブロードキャストテーブル欄２１Ｇに格納し（ＳＰ２３）、この後、分散配置テーブル２０等に対する上述の排他設定を解除する（ＳＰ２４）。
【００６０】
続いてマイクロプロセッサ処理部１４は、ステップＳＰ２２において共有メモリ１６に格納した新たな分散配置テーブル２０を各ポート部１２に送信する（ＳＰ２５）。かくして各ポート部１２は、受信した分散配置テーブル２０を自ポート部内のメモリ１２Ａに格納する。
【００６１】
またマイクロプロセッサ処理部１４は、この分散配置テーブル２０及び装置構成情報テーブル２１の初期設定が完了した旨を管理コンソール５に通知し（ＳＰ２６）、この後このテーブル初期設定処理を終了する。
【００６２】
一方、上述のようにして作成された分散配置テーブル２０及び装置構成情報テーブル２１は、これらを作成したマイクロプロセッサ処理部１４以外の各マイクロプロセッサ処理部１４により共有メモリ１６から読み出されて、そのマイクロプロセッサ処理部１４内のメモリ１４Ｂに格納されて保持される。
【００６３】
図７は、このような散配置テーブル２０及び装置構成情報テーブル２１を取り込むテーブル取込み処理に関するマイクロプロセッサ処理部１４の具体的な処理内容を示している。マイクロプロセッサ処理部１４は、自マイクロプロセッサ処理部のメモリ１４Ｂに格納されたマイクロプログラムに従って、このテーブル取込み処理を定期的に実行する。
【００６４】
すなわちマイクロプロセッサ処理部１４は、このテーブル取込み処理を開始すると、まず、共有メモリ１６にアクセスし、装置構成情報テーブル２１のブロードキャストテーブル欄２１Ｇに格納されているブロードキャストテーブル２３を取り込む（ＳＰ３０）。
【００６５】
続いてマイクロプロセッサ処理部１４は、取り込んだブロードキャストテーブル２３を参照して、自マイクロプロセッサ処理部と対応付けられたビットが「オン」に設定されているか否かを判断する（ＳＰ３１）。
【００６６】
マイクロプロセッサ処理部１４は、この判断において否定結果を得ると、このテーブル取込み処理を終了する。これに対してマイクロプロセッサ処理部１４は、かかる判断において肯定結果を得ると、他のマイクロプロセッサ処理部１４等が共有メモリ１６上の分散配置テーブル２０及び装置構成情報テーブル２１を更新できないようにするための排他設定を行い（ＳＰ３２）、この後、かかるブロードキャストテーブル２３を共有メモリ１６から再度取り込む（ＳＰ３３）。
【００６７】
続いてマイクロプロセッサ処理部１４は、ステップＳＰ３３において取り込んだブロードキャストテーブル２３上の自マイクロプロセッサ処理部と対応付けられたビットが「オン」に設定されているか否かを判断する（ＳＰ３４）。
【００６８】
マイクロプロセッサ処理部１４は、この判断において否定結果を得るとステップＳＰ３８に進み、これに対して肯定結果を得ると、かかる最新の分散配置テーブル２０及び装置構成情報テーブル２１を共有メモリ１６から読み出して自マイクロプロセッサ処理部内のメモリ１４Ｂに格納する（ＳＰ３５，ＳＰ３６）。
【００６９】
そしてマイクロプロセッサ処理部１４は、この後、共有メモリ１６上の装置構成情報テーブル２１のブロードキャストテーブル欄２１Ｇに格納されたブロードキャストテーブル２３について、自マイクロプロセッサ処理部と対応付けられたビットを「オフ」に変更する（ＳＰ３７）。またマイクロプロセッサ処理部１４は、かかる分散配置テーブル２０及び置構成情報テーブル２１に対する排他設定を解除し（ＳＰ３８）、この後このテーブル更新処理を終了する。
【００７０】
以上のような一連の処理により、図８に示すように、各ポート部１２のメモリ１２Ａにおいて分散配置テーブル２０が保持され、共有メモリ１６及び各マイクロプロセッサ処理部１４のメモリ１４Ｂにおいて分散配置テーブル２０及び装置構成情報テーブル２１が保持される。この場合、各ポート部１２、共有メモリ１６及び各マイクロプロセッサ処理部１４がそれぞれ保持する分散配置テーブル２０の内容は同一となる。なお、各ポート部１２のメモリ１２Ａにおいて保持される転送先管理テーブル２４（図１１）については後述する。
【００７１】
（１−２−２−２）テーブル再設定処理
ところで、通常、各マイクロプロセッサ処理部１４のメモリ１４Ｂのうちのワークメモリとして使用される領域部分や共有メモリ１６としては揮発性メモリが用いられる。このため、上述のように各マイクロプロセッサ処理部１４のメモリ１４Ｂや共有メモリ１６に格納された分散配置テーブル２０及び装置構成情報テーブル２１は、ストレージ装置４の電源がオフされると、各マイクロプロセッサ処理部１４のメモリ１４Ｂ及び共有メモリ１６上から消滅する。
【００７２】
そこで本実施の形態の場合、各マイクロプロセッサ処理部１４は、スストレージ装置４の電源オフ時、それまでメモリ１４Ｂの揮発性のワーク領域において格納していた分散配置テーブル２０及び装置構成情報テーブル２１を当該メモリ１４の不揮発性領域に移動させて保持する。そしてストレージ装置４の電源がオンされたときには、最初に立ち上がったマイクロプロセッサ処理部１４が自マイクロプロセッサ処理部のメモリ１４Ｂから分散配置テーブル２０及び装置構成情報テーブル２１を読み出して共有メモリ１６に再設定するようになされている。
【００７３】
図９は、このような分散配置テーブル２０及び装置構成情報テーブル２１の再設定に関するマイクロプロセッサ処理部１４の処理内容を示す。ストレージ装置４の電源オン後に最初に立ち上がったマイクロプロセッサ処理部１４は、自己内部のメモリ１４Ｂに格納されたマイクロプログラムに従って、この図９に示すテーブル再設定処理を実行する。
【００７４】
すなわち、かかるマイクロプロセッサ処理部１４は、起動処理後、メモリ１４Ｂの不揮発性領域に保存された分散配置テーブル２０及び装置構成情報テーブル２１を当該メモリ１４Ｂのワーク領域に展開する（ＳＰ４０）。
【００７５】
続いてマイクロプロセッサ処理部１４は、他のマイクロプロセッサ処理部１４等が共有メモリ１６上の分散配置テーブル２０及び装置構成情報テーブル２１を更新できないようにするための排他設定を行い（ＳＰ４１）、この後メモリ１４Ｂのワーク領域に展開した分散配置テーブル２０及び装置構成情報テーブル２１を共有メモリ１６に格納する（ＳＰ４２）。
【００７６】
次いでマイクロプロセッサ処理部１４は、ステップＳＰ４２において共有メモリ１６に格納した装置構成情報テーブル２１のブロードキャストテーブル欄２１Ｇに格納されているブロードキャストテーブル２３（図６）について、自マイクロプロセッサ処理部以外のマイクロプロセッサ処理部１４と対応付けられたビットをすべて「１」に更新し（ＳＰ４３）、この後共有メモリ１６の分散配置テーブル２０及び装置構成情報テーブル２１に対する排他設定を解除する（ＳＰ４４）。
【００７７】
さらにマイクロプロセッサ処理部１４は、ステップＳＰ４２において共有メモリ１６に再設定した分散配置テーブル２０を各ポート部１２に送信する。かくして各ポート部１２は、かかるマイクロプロセッサ処理部１４から送信される分散配置テーブル２０を自己内部のメモリ１２Ａに格納する（ＳＰ４５）。これにより各ポート部１２に分散配置テーブル２０が再設定される。そしてマイクロプロセッサ処理部１４は、この後、このテーブル再設定処理を終了する。
【００７８】
（１−２−３）データ入出力処理
（１−２−３−１）データ入出力要求転送処理
次に、上述のようにして各ポート部１２及び共有メモリ１６に設定された分散配置テーブル２０に基づいてストレージ装置４内で行なわれるデータ入出力処理の具体的な処理の流れについて説明する。
【００７９】
図１０は、データ入出力処理に関するポート部１２の具体的な処理内容を示す。各ポート部１２は、それぞれ自ポート部内のメモリ１２Ａに格納された制御プログラムに従って、この図１０に示すデータ入出力要求転送処理を実行する。
【００８０】
すなわちポート部１２は、ホストサーバ２からデータ入出力要求が与えられると、このデータ入出力要求転送処理を開始し、まず、受信したデータ入出力要求に基づいてデータの入出力先となる記憶装置１０を決定する（ＳＰ５０）。
【００８１】
続いてポート部１２は、ステップＳＰ５０の決定結果及び自己内部のメモリ１２Ａに保持している分散配置テーブル２０に基づいて、データ入出力要求を転送すべきマイクロプロセッサ処理部１４を決定し（ＳＰ５１）、この後、共有メモリ１６に格納された装置構成情報テーブル２１を参照して、そのマイクロプロセッサ処理部１４が閉塞しているか否かを判断する（ＳＰ５２）。
【００８２】
ポート部１２は、この判断において肯定結果を得ると、そのマイクロプロセッサ処理部１４にデータ入出力要求を転送する（ＳＰ５４）。これに対してポート部１２は、この判断において否定結果を得ると、分散配置テーブル２０上の各マイクロプロセッサ処理部１４の処理対象記憶装置ビットマップを参照して、そのデータ入出力要求の新たな転送先とするマイクロプロセッサ処理部１４を決定した後（ＳＰ５３）、当該決定したマイクロプロセッサ処理部１４にそのデータ入出力要求を転送する（ＳＰ５４）。
【００８３】
次いでポート部１２は、そのデータ入出力要求の転送先のマイクロプロセッサ処理部１４の識別番号（マイクロプロセッサ処理部番号）と、そのデータ入出力要求において指定されたデータ入出力先の記憶装置１０の識別番号（記憶装置番号）とを、それぞれメモリ１２Ａに保持している図１１に示すような転送先管理テーブル２４のマイクロプロセッサ処理部番号欄１４Ａ及び記憶装置番号欄１４Ｂにそれぞれ登録し（ＳＰ５５）、この後このデータ入出力要求転送処理を終了する。
【００８４】
なお上述のデータ入出力要求転送処理のステップＳＰ５３において転送先のマイクロプロセッサ処理部１４を決定する際、毎回分散配置テーブル２０の先頭から参照して転送先となるマイクロプロセッサ処理部１４を決定すると、決定されるマイクロプロセッサ処理部１４に偏りが発生するおそれがある。そこで本実施の形態の場合、ポート部１２は、ステップＳＰ５３において転送先のマイクロプロセッサ処理部１４を決定する際、前記転送先管理テーブル２４を参照して、その転送先管理テーブル２４に登録されたマイクロプロセッサ処理部番号及び記憶装置番号の次のマイクロプロセッサ処理部番号及び記憶装置番号から転送先となり得るマイクロプロセッサ処理部１４の検索を開始するようになされている。
【００８５】
（１−２−３−２）データ入出力実行処理
一方、データ入出力処理に関するマイクロプロセッサ処理部１４の具体的な処理内容を図１２に示す。マイクロプロセッサ処理部１４は、ポート部１２から転送されてきたデータ入出力要求を受信すると、自マイクロプロセッサ処理部のメモリ１４Ｂに格納されたマイクロプログラムに従って、この図１２に示すデータ入出力実行処理を実行する。
【００８６】
すなわちマイクロプロセッサ処理部１４は、データ入出力要求を受信するとこのデータ入出力実行処理を開始し、まず、そのデータ入出力要求に含まれるデータ入出力先の記憶装置１０の記憶装置番号と、自マイクロプロセッサ処理部のメモリ１４Ｂに格納されている分散配置テーブル２０とに基づいて、そのデータ入出力要求を受信すべきマイクロプロセッサ処理部１４が自マイクロプロセッサ処理部であるか否かを判断する（ＳＰ６０）。
【００８７】
この判断において肯定結果を得ることは、そのデータ入出力要求を本来受信すべきマイクロプロセッサ処理部１４が自マイクロプロセッサ処理部であることを意味する。かくしてこのときマイクロプロセッサ処理部１４は、ステップＳＰ６２に進む。
【００８８】
これに対してステップＳＰ６０の判断において否定結果を得ることは、そのデータ入出力要求を本来受信すべきマイクロプロセッサ処理部１４が閉塞していることを意味する。かくしてこのときマイクロプロセッサ処理部１４は、その閉塞しているマイクロプロセッサ処理部（以下、これを閉塞マイクロプロセッサ処理部と呼ぶ）１４に割り当てられている記憶装置１０を、閉塞していない他のマイクロプロセッサ処理部１４に割り振る記憶装置割振り処理を実行する（ＳＰ６１）。
【００８９】
続いてマイクロプロセッサ処理部１４は、ポート部１２から転送されてきたデータ入出力要求のフレーム情報に基づいて当該ポート部１２の識別番号（ポート部番号）を抽出して記憶する（ＳＰ６２）。さらにマイクロプロセッサ処理部１４は、かかるデータ入出力要求に従ったデータ入出力処理を実行し（ＳＰ６３）、この後このデータ入出力実行処理を終了する。
【００９０】
なお、上述のデータ入出力実行処理のステップＳＰ６１における記憶装置割振り処理に関するマイクロプロセッサ処理部１４の具体的な処理内容を図１３に示す。
【００９１】
マイクロプロセッサ処理部１４は、図１２のステップＳＰ６１に進むと、この図１３に示す記憶装置割振り処理を開始し、まず、かかる閉塞マイクロプロセッサ処理部１４に対する新規のデータ入出力要求が他のマイクロプロセッサ処理部１４に転送されることを抑止するため、すべてのポート部１２に対して、当該ポート部１２が保持する分散配置テーブル２０における当該閉塞マイクロプロセッサ処理部１４のステータスを「閉塞」とするよう指示を与える（ＳＰ７０）。
【００９２】
続いてマイクロプロセッサ処理部１４は、かかる閉塞マイクロプロセッサ処理部１４に割り当てられていた記憶装置１０を閉塞していない他のマイクロプロセッサ処理部１４に割り振った新たな分散配置テーブル２０を作成する（ＳＰ７１）。またマイクロプロセッサ処理部１４は、作成した分散配置テーブル２０を共有メモリ１６に格納されている古い分散配置テーブル２０上に上書きする（ＳＰ７２）。
【００９３】
次いでマイクロプロセッサ処理部１４は、共有メモリ１６上の装置構成情報テーブル２１のブロードキャストテーブル欄２１Ｇに格納されたブロードキャストテーブル２３を、自マイクロプロセッサ処理部と対応付けられたビットを「オフ」、これら以外のマイクロプロセッサ処理部１４と対応付けられたビットをそれぞれ「オン」とするように更新する（ＳＰ７３）。この結果、このブロードキャストテーブル２３に従って、その後、かかるマイクロプロセッサ処理部１４以外のマイクロプロセッサ処理部１４がそれぞれ自マイクロプロセッサ処理部が保持する分散配置テーブル２０及び装置構成情報テーブル２１を、それぞれそのとき共有メモリ１６に格納された新たな分散配置テーブル２０及び装置構成情報テーブル２１に書き換えることになる。
【００９４】
さらにマイクロプロセッサ処理部１４は、各ポート部１２に対してステップＳＰ７１において作成した新たな分散配置テーブル２０を送信する（ＳＰ７４）。かくして各ポート部１２は、このとき受信した新たな分散配置テーブル２０を上書きするようにして、自己内部のメモリ１２Ａに保持している分散配置テーブル２０を更新する。この後マイクロプロセッサ処理部１４は、この記憶装置割振り処理を終了し、図１２について上述したデータ入出力実行処理に戻る。
【００９５】
また上述のデータ入出力実行処理のステップＳＰ６３におけるデータ入出力処理に関するマイクロプロセッサ処理部１４の具体的な処理内容を図１４に示す。マイクロプロセッサ処理部１４は、データ入出力実行処理のステップＳＰ６３に進むと、このデータ入出力処理を開始し、まず、データ入出力要求がリード要求であるか否かを判断する（ＳＰ８０）。
【００９６】
そしてマイクロプロセッサ処理部１４は、この判断において肯定結果を得ると、キャッシュメモリ１５上にリード対象のデータが存在するか否かを判断する（ＳＰ８１）。マイクロプロセッサ処理部１４は、この判断において肯定結果を得るとステップＳＰ８３に進み、これに対して否定結果を得ると、リード対象のデータが格納された記憶装置１０にアクセスして指定されたデータをキャッシュメモリ１５上に読み出す（ＳＰ８２）。
【００９７】
続いてマイクロプロセッサ処理部１４は、リード対象のデータをキャッシュメモリ１５から読み出し、これをデータ入出力要求を転送してきたポート部１２に転送する（ＳＰ８３）。またマイクロプロセッサ処理部１４は、処理終了ステータスを当該ポート部１２を介して対応するホストサーバ５に送信し（ＳＰ８７）、この後、このデータ入出力処理を終了してデータ入出力実行処理（図１２）に戻る。
【００９８】
一方、マイクロプロセッサ処理部１４は、ステップＳＰ８０の判断において否定結果を得ると、かかるデータ入出力要求がライト要求であるか否かを判断する（ＳＰ８４）。マイクロプロセッサ処理部１４は、この判断において肯定結果を得ると、そのデータをキャッシュメモリ１５に格納すると共に（ＳＰ８５）、処理終了ステータスを対応するポート部１２を介して対応するホストサーバ５に送信し（ＳＰ８７）、この後このデータ入出力処理を終了してデータ入出力実行処理（図１２）に戻る。
【００９９】
これに対してマイクロプロセッサ処理部１４は、ステップＳＰ８４の判断において否定結果を得ると（つまりデータ入出力要求がリード要求及びライト要求のいずれでもなかった場合）、そのデータ入出力要求に応じた処理を実行すると共に（ＳＰ８６）、処理終了ステータスを対応するポート部１２を介して対応するホストサーバ５に送信する（ＳＰ８７）。そしてマイクロプロセッサ処理部１４は、この後このデータ入出力処理を終了してデータ入出力実行処理（図１２）に戻る。
【０１００】
（１−２−４）保守処理
（１−２−４−１）保守閉塞処理
ところで、本実施の形態によるストレージ装置４においては、マイクロプロセッサ処理部１４を交換等する場合、ユーザが管理コンソール５を用いてストレージ装置４に指示を与えることにより、対象となるマイクロプロセッサ処理部（以下、これを保守該当マイクロプロセッサ処理部と呼ぶ）１４を閉塞させることができる。
【０１０１】
この際、保守該当マイクロプロセッサ処理部１４は、自マイクロプロセッサ処理部に割り当てられた記憶装置１０を他のマイクロプロセッサ処理部１４に割り振るように、各ポート部１２、各マイクロプロセッサ処理部１４及び共有メモリ１６の分散配置テーブル２０を更新し、その後に閉塞する。
【０１０２】
図１５は、このような保守閉塞処理に関する管理コンソール５及び保守該当マイクロプロセッサ処理部１４の一連の処理の流れを示している。
【０１０３】
この場合、管理コンソール５は、まず、ユーザ操作に応じて指定された保守該当マイクロプロセッサ処理部１４に対して保守閉塞指示を発行する（ＳＰ９０）。
【０１０４】
そしてこの保守閉塞指示を受信した保守該当マイクロプロセッサ処理部１４は、閉塞処理を開始し（ＳＰ９１）、まず、共有メモリ１６に格納された装置構成情報テーブル２１上の自マイクロプロセッサ処理部のステータスを「閉塞移行中」に変更する（ＳＰ９２）。具体的には、かかる装置構成情報テーブル２１のマイクロプロセッサ処理部状態ビットマップ欄２１Ｉ（図３）に格納された状態ビットマップを構成する各ビットのうち、自マイクロプロセッサ処理部と対応付けられたビットを「オン」上に変更する。
【０１０５】
続いて保守該当マイクロプロセッサ処理部１４は、自マイクロプロセッサ処理部に対する新規のデータ入出力要求が他のマイクロプロセッサ処理部１４に転送されることを抑止するため、すべてのポート部１２に対して、当該ポート部１２が保持する分散配置テーブル２０における自マイクロプロセッサ処理部のステータスを「閉塞」とするよう指示を与える（ＳＰ９３）。
【０１０６】
次いで保守該当マイクロプロセッサ処理部１４は、自マイクロプロセッサ処理部に割り当てられている記憶装置１０を他のマイクロプロセッサ処理部１４に割り振った新たな分散配置テーブル２０を作成し（ＳＰ９４）、作成した分散配置テーブル２０を共有メモリ１６に格納されている古い分散配置テーブル２０上に上書きする（ＳＰ９５）。
【０１０７】
また保守該当マイクロプロセッサ処理部１４は、共有メモリ１６上の装置構成情報テーブル２１のブロードキャストテーブル欄２１Ｇに格納されたブロードキャストテーブル２３（図６）を、自マイクロプロセッサ処理部と対応付けられたビットを「オフ」、これ以外のマイクロプロセッサ処理部１４とそれぞれ対応付けられた各ビットを「オン」とするように更新する（ＳＰ９６）。この結果、このブロードキャストテーブル２３に従って、その後、かかる保守該当マイクロプロセッサ処理部１４以外のマイクロプロセッサ処理部１４が、それぞれ自マイクロプロセッサ処理部が保持する分散配置テーブル２０及び装置構成情報テーブル２１を、それぞれそのとき共有メモリ１６に格納された新たな分散配置テーブル２０及び装置構成情報テーブル２１に書き換えることになる。
【０１０８】
続いて保守該当マイクロプロセッサ処理部１４は、各ポート部１２に対してステップＳＰ９４において作成した新たな分散配置テーブル２０を送信する（ＳＰ９７）。かくして各ポート部１２は、このとき受信した新たな分散配置テーブル２０を上書きするようにして、自己内部のメモリ１２Ａに保持している分散配置テーブル２０を更新する。
【０１０９】
この後、保守該当マイクロプロセッサ処理部１４は、共有メモリ１６に格納された装置構成情報テーブル２１上の自マイクロプロセッサ処理部に対応するステータスを「閉塞移行中」から「閉塞」に更新し、さらに自マイクロプロセッサ処理部のステータスが「閉塞」に移行したことを管理コンソール５に通知した後、閉塞する（ＳＰ９８）。
【０１１０】
そして管理コンソール５は、かかる通知を受信すると、かかる保守該当マイクロプロセッサ処理部１４が閉塞した旨の「マイクロプロセッサ処理部閉塞」画面を表示する（ＳＰ９９）。
【０１１１】
（１−２−４−２）マイクロ交換処理
また本実施の形態によるストレージ装置４の場合、マイクロプロセッサ処理部１４のマイクロプログラムを新たなバージョンのものに交換する場合、ユーザが管理コンソール５を用いてストレージ装置４に指示を与えることにより、対象となるマイクロプロセッサ処理部（保守該当マイクロプロセッサ処理部）１４を閉塞させることができる。
【０１１２】
この際、保守該当マイクロプロセッサ処理部１４は、上述と同様にして自マイクロプロセッサ処理部に割り当てられた記憶装置１０を他のマイクロプロセッサ処理部１４に割り振るように各ポート部１２、各マイクロプロセッサ処理部１４及び共有メモリ１６がそれぞれ保持する分散配置テーブル２０を更新し、その後閉塞する。
【０１１３】
そして保守該当マイクロプロセッサ処理部１４は、閉塞後に自マイクロプロセッサ処理部のメモリ１４Ｂに保持したマイクロプログラムを交換し、かかる交換を終了すると、自マイクロプロセッサ処理部にデータ入出力処理を担当すべき記憶装置１０を再度割り当てるように、各ポート部１２、各マイクロプロセッサ処理部１４及び共有メモリ１６の分散配置テーブル２０を更新する。
【０１１４】
図１６及び図１７は、このようなマイクロプログラムの交換処理（以下、これをマイクロ交換処理と呼ぶ）に関する一連の処理の流れを示している。この場合、管理コンソール５は、ユーザ操作に応じて新たなマイクロプログラムを共有メモリに格納し（ＳＰ１００）、この後、指定された保守該当マイクロプロセッサ処理部１４に対してマイクロプログラムの交換指示を発行する（ＳＰ１０１）。
【０１１５】
一方、管理コンソール５からかかるマイクロプログラムの交換指示が与えられた保守該当マイクロプロセッサ処理部１４は、図１５について上述した保守閉塞処理（ＳＰ９１〜ＳＰ９８）を実行することにより、自マイクロプロセッサ処理部に割り当てられている記憶装置１０を他のマイクロプロセッサ処理部１４に割り振るように、各ポート部１２、各マイクロプロセッサ処理部１４及び共有メモリ１６にそれぞれ保持された分散配置テーブル２０を更新した後に閉塞する（ＳＰ１０２〜ＳＰ１０９）。
【０１１６】
また管理コンソール５は、保守該当マイクロプロセッサ処理部１４から自マイクロプロセッサ処理部のステータスが「閉塞」に移行した旨の通知が与えられると、かかる保守該当マイクロプロセッサ処理部１４が閉塞した旨の「マイクロプロセッサ処理部閉塞」画面を表示する（ＳＰ１１０）。
【０１１７】
この後、管理コンソール５は、かかる保守該当マイクロプロセッサ処理部１４に対してマイクロプログラムを交換するようリプレース指示を発行すると共に（ＳＰ１１１）、これと併せて当該保守該当マイクロプロセッサ処理部１４のマイクロプログラムを交換中である旨の「マイクロ交換中」画面を表示する（ＳＰ１１２）。
【０１１８】
一方、リプレース指示を受信した保守該当マイクロプロセッサ処理部１４は、ステップＳＰ１００において管理コンソール５により共有メモリ１６に格納されたマイクロプログラムを読み出し、自マイクロプロセッサ処理部内のメモリ１４Ｂの不揮発領域に格納する（ＳＰ１１３）。
【０１１９】
次いで保守該当マイクロプロセッサ処理部１４は、リブート開始を管理コンソール５に通知する（ＳＰ１１４）。そしてこの通知を受けた管理コンソール５は、保守該当マイクロプロセッサ処理部１４がリブート中である旨の「リブート中」画面を表示する（ＳＰ１１５）。
【０１２０】
続いて保守該当マイクロプロセッサ処理部１４は、再起動するリブート処理を実施し（ＳＰ１１６）、このリブート処理の終了後、その旨を管理コンソール５に通知する（ＳＰ１１７）。かくしてこの通知を受けた管理コンソール５は、かかる保守該当マイクロプロセッサ処理部１４のリブートが終了した旨の「マイクロ交換終了画」面を表示する（ＳＰ１１８）。
【０１２１】
次いで保守該当マイクロプロセッサ処理部１４は、データ入出力処理を担当すべき記憶装置１０を自マイクロプロセッサ処理部に再割り当てした新たな分散配置テーブル２０を作成し（ＳＰ１１９）、作成した分散配置テーブル２０を共有メモリ１６に格納されている古い分散配置テーブル２０上に上書きする（ＳＰ１２０）。
【０１２２】
また保守該当マイクロプロセッサ処理部１４は、共有メモリ１６に格納されているブロードキャストテーブル２３（図６）を、自マイクロプロセッサ処理部と対応付けられたビットを「オフ」、これ以外のマイクロプロセッサ処理部１４と対応付けられたビットをそれぞれ「オン」とするように更新する（ＳＰ１２１）。この結果、このブロードキャストテーブル２３に従って、その後、かかる保守該当マイクロプロセッサ処理部１４以外のマイクロプロセッサ処理部１４が、それぞれ自マイクロプロセッサ処理部が保持する分散配置テーブル２０をそのとき共有メモリ１６に格納された新たな分散配置テーブル２０に書き換えることになる。
【０１２３】
さらに保守該当マイクロプロセッサ処理部１４は、各ポート部１２に対してステップＳＰ１１９において作成した新たな分散配置テーブル２０を送信する（ＳＰ１２２）。かくして各ポート部１２は、このとき受信した新たな分散配置テーブル２０を自己内部のメモリ１２Ａに格納された古い分散配置テーブル２０に上書きするようにして、分散配置テーブル２０を更新する。
【０１２４】
この後、保守該当マイクロプロセッサ処理部１４は、すべてのポート部１２に対して、当該ポート部１２が保持する分散配置テーブル２０における自マイクロプロセッサ処理部のステータスを「正常」とするよう指示を与え（ＳＰ１２３）、共有メモリ１６に格納された装置構成情報テーブル２１の自マイクロプロセッサ処理部と対応するステータスを「閉塞」から「正常」に更新する（ＳＰ１２４）。
【０１２５】
さらに保守該当マイクロプロセッサ処理部１４は、マイクロプログラムのリプレース処理が終了したことを管理コンソール５に通知し（ＳＰ１２５）、マイクロプログラムの交換処理を終了する。
【０１２６】
一方、この通知を受けた管理コンソール５は、かかる保守該当マイクロプロセッサ処理部１４のマイクロプログラムの交換が終了した旨の「リプレース完了」画面を表示し（ＳＰ１２６）、この後マイクロプログラムを交換すべき他のマイクロプロセッサ処理部（他の保守該当マイクロプロセッサ処理部）１４があるか否かを判断する（ＳＰ１２７）。
【０１２７】
そして管理コンソール７は、マイクロプログラムを交換すべき他の保守該当マイクロプロセッサ処理部１４があるときには、その保守該当マイクロプロセッサ処理部１４に対してステップＳＰ１０１について上述したマイクロプログラムの交換指示を発行する。この結果、その保守該当マイクロプロセッサ処理部１４と管理コンソール５とによって上述のステップＳＰ１０２〜ステップＳＰ１２６の処理が行なわれることになる。
【０１２８】
また管理コンソール５は、マイクロプログラムを交換すべきすべての保守該当マイクロプロセッサ処理部１４に対して同様の処理を繰り返す。この結果、該当するすべての保守該当マイクロプロセッサ処理部１４のマイクロプログラムが交換される。そして管理コンソールは、やがて該当するすべての保守該当マイクロプロセッサ処理部１４のマイクロプログラムの交換処理が終了すると、このマイクロ交換処理を終了する。
【０１２９】
（１−２−５）障害監視処理
次に障害監視処理について説明する。本実施の形態の場合、共有メモリ１６には、図１８に示すように、ストレージ装置４内の各マイクロプロセッサ処理部１４にそれぞれ対応させて更新タイマ欄２５Ａが設けられた障害監視テーブル２５が格納されている。そして各マイクロプロセッサ処理部１４は、一定時間ごとに、それぞれ障害監視テーブル２５上の自マイクロプロセッサ処理部と対応付けられた更新タイマ欄２５Ａに格納された時刻を現在時刻に更新する。
【０１３０】
また各マイクロプロセッサ処理部１４は、それぞれ障害監視テーブル２５上の他のマイクロプロセッサ処理部１４と対応付けられた各更新タイマ欄２５Ａの値を定期的にチェックする。そしてマイクロプロセッサ処理部１４は、所定期間更新されていない更新タイマ欄２５Ａがあるときには、その更新タイマ欄２５Ａと対応付けられたマイクロプロセッサ処理部１４が障害により閉塞しているものと判断して、そのマイクロプロセッサ処理部１４に割り当てられている記憶装置１０を残りの他のマイクロプロセッサ処理部１４に割り振るように、各ポート部１２、各マイクロプロセッサ処理部１４及び共有メモリ１６が保持する分散配置テーブル２０を変更する。
【０１３１】
図１９は、上述のような障害監視処理のうち、障害監視テーブル２５上の自マイクロプロセッサ処理部と対応付けられた更新タイマ欄２５Ａの時刻を更新する際のマイクロプロセッサ処理部１４の処理内容を示している。マイクロプロセッサ処理部１４は、メモリ１４Ｂに格納されたマイクロプログラムに従って、この図１９に示す時刻更新処理を実行する。
【０１３２】
すなわちマイクロプロセッサ処理部１４は、定期的にこの時刻更新処理を開始し、まず、共有メモリ１６上のかかる障害監視テーブル２５に他のマイクロプロセッサ処理部１６等がアクセスできないようにする排他設定を行い（ＳＰ１３０）、その後ストレージ装置４のコントロール部１１に設けられた図示しないタイマから現在時刻を取得する（ＳＰ１３１）。
【０１３３】
続いてマイクロプロセッサ処理部１４は、ステップＳＰ１３１において取得した現在時刻を障害監視テーブル２５上の自マイクロプロセッサ処理部に対応付けられた更新タイマ欄２５Ａに上書きするようにして、当該更新タイマ欄２５Ａに格納された時刻を更新する（ＳＰ１３２）。さらにマイクロプロセッサ処理部１４は、かかる障害監視テーブル２５に対する排他設定を解除し（ＳＰ１３３）、この後この時刻更新処理を終了する。
【０１３４】
一方、図２０は、上述の障害監視処理のうち、障害監視テーブル２５に基づいて他のマイクロプロセッサ処理部１４における障害の有無を監視する際のマイクロプロセッサ処理部１４の具体的な処理内容を示している。マイクロプロセッサ処理部１４は、メモリ１４Ｂに格納されたマイクロプログラムに従って、この図２０に示す障害監視及びテーブル更新処理を実行する。
【０１３５】
すなわちマイクロプロセッサ処理部１４は、定期的（例えば５秒ごと）にこの障害監視及びテーブル更新処理を開始し、まず、共有メモリ１６上のかかる障害監視テーブル２５に他のマイクロプロセッサ処理部１４がアクセスできないような排他設定を行い（ＳＰ１４０）、その後、１つの更新タイマ欄２５Ａを選択して（ＳＰ１４１）、その更新タイマ欄２５Ａが自マイクロプロセッサ処理部に対応付けられた更新タイマ欄２５Ａであるか否かを判断する（ＳＰ１４２）。
【０１３６】
マイクロプロセッサ処理部１４は、この判断において肯定結果を得るとステップＳＰ１４１に戻って他の更新タイマ欄２５Ａを選択し、これに対して否定結果を得ると、障害監視テーブル２５のすべての更新タイマ欄２５Ａについて、後述するステップＳＰ１４４〜ステップＳＰ１５０の処理を実行し終えたか否かを判断する（ＳＰ１４３）。
【０１３７】
マイクロプロセッサ処理部１４は、この判断において否定結果を得ると、障害監視テーブル２５のそのとき対象としている更新タイマ欄２５Ａ（そのときステップＳＰ１４１において選択した更新タイマ欄２５Ａ）に格納されている時刻を読み出し（ＳＰ１４４）、さらにコントロール部１１内の上述のタイマから現在時刻を取得する（ＳＰ１４５）。
【０１３８】
次いでマイクロプロセッサ処理部１４は、ステップＳＰ１４４において取得した時刻と、ステップＳＰ１４５において取得した現在時刻とを比較し、その差が所定時間（例えば５分）以上離れているか否かを判断する（ＳＰ１４６）。
【０１３９】
そしてマイクロプロセッサ処理部１４は、この判断において否定結果を得るとステップＳＰ１４１に戻る。またマイクロプロセッサ処理部１４は、かかる更新タイマ欄２５ＡにステップＳＰ１５０において後述する障害通知済フラグが格納されている場合にもステップＳＰ１４１に戻る。
【０１４０】
これに対してマイクロプロセッサ処理部１４は、かかる判断において肯定結果を得ると、そのとき対象としている更新タイム欄２５Ａと対応付けられたマイクロプロセッサ処理部１４が障害閉塞している旨の障害情報を作成し（ＳＰ１４７）、この障害情報を管理コンソール５に送信する（ＳＰ１４８）。
【０１４１】
続いてマイクロプロセッサ処理部１４は、自マイクロプロセッサ処理部のメモリ１４Ｂ上において管理している、各マイクロプロセッサ処理部１４にそれぞれ対応させて設けられたフラグ（以下、これを分散配置テーブル作成フラグと呼ぶ）のうち、そのとき対象としている更新タイム欄２５Ａと対応付けられたマイクロプロセッサ処理部１４に対応する分散配置テーブル作成フラグを「オン（１）」に設定する（ＳＰ１４９）。
【０１４２】
次いでマイクロプロセッサ処理部１４は、障害情報を管理コンソール５に通知済みであることを意味する所定の障害通知済みフラグを障害監視テーブル２５のそのとき対象としている更新タイム欄２５Ａに格納する（ＳＰ１５０）。これは、この後別のマイクロプロセッサ処理部１４が再度、その更新タイム欄２５Ａと対応付けられたマイクロプロセッサ処理部１４に障害が発生している旨の障害情報を管理コンソール５に通知するのを防止するためである。
【０１４３】
そしてマイクロプロセッサ処理部１４は、ステップＳＰ１４１に戻って、この後対象とする更新フラグ欄２５Ａを順次他の更新フラグ欄２５Ａに切り替えながら、ステップＳＰ１４３において肯定結果を得るまで同様の処理を繰り返す（ＳＰ１４１〜ＳＰ１５０−ＳＰ１４１）。
【０１４４】
そしてマイクロプロセッサ処理部１４は、やがてすべてのマイクロプロセッサ処理部１４に対するチェックを終えることによりステップＳＰ１４３において肯定結果を得ると、いずれかのマイクロプロセッサ処理部１４３に対応する分散配置テーブル作成フラグが「オン」となっているか否かを判断する（ＳＰ１５１）。
【０１４５】
マイクロプロセッサ処理部１４は、この判断において否定結果を得ると、ステップＳＰ１５３に進み、これに対して肯定結果を得ると、分散配置テーブル再作成処理を実行する（ＳＰ１５２）。
【０１４６】
具体的に、マイクロプロセッサ処理部１４は、分散配置テーブル作成フラグが「オン」に設定された各マイクロプロセッサ処理部１４にそれぞれ割り当てられている記憶装置１０を当該分散配置テーブル作成フラグが「オフ」に設定された各マイクロプロセッサ処理部１４にそれぞれ割り振った新たな分散配置テーブル２０を作成し、これを共有メモリ１６上の分散配置テーブル２０に上書きする。
【０１４７】
またマイクロプロセッサ処理部１４は、共有メモリ１６に格納されたブロードキャストテーブル２３（図６）上の各ビットのうち、自マイクロプロセッサ処理部と対応付けられたビットを「オン」に設定すると共に、これら以外のマイクロプロセッサ処理部１４と対応付けられたビットをすべて「オフ」に設定する。この結果、このブロードキャストテーブル２３に従って、その後、かかる保守該当マイクロプロセッサ処理部１４以外のマイクロプロセッサ処理部１４が、それぞれ自マイクロプロセッサ処理部が保持する分散配置テーブル２０をそのとき共有メモリ１６に格納された新たな分散配置テーブル２０に書き換えることになる。
【０１４８】
さらにマイクロプロセッサ処理部１４は、上述のようにして作成した新たな分散配置テーブル２０を各ポート部１２に送信する。かくして各ポート部１２は、このとき受信した新たな分散配置テーブル２０を自己内部のメモリ１２Ａに格納された古い分散配置テーブル２０に上書きするようにして、分散配置テーブル２０を更新する。
【０１４９】
次いでマイクロプロセッサ処理１４部は、障害監視テーブル２５に対する排他設定を解除し（ＳＰ１５３）、この後、この障害監視及びテーブル更新処理を終了する。
【０１５０】
（１−２−６）記憶装置再割当て処理
ところで、図１３について上述した記憶装置割振り処理のステップＳＰ７１や、図１５について上述した保守閉塞処理のステップＳＰ９４、及び図２０について上述した障害監視及びテーブル更新処理のステップＳＰ１５２において、閉塞した又は閉塞するマイクロプロセッサ処理部１４に割り当てられていた記憶装置１０を図２１のように他のマイクロプロセッサ処理部１４に割り振る方法としては、２の方法が考えられる。
【０１５１】
１つは、各マイクロプロセッサ処理部１４に割り当てられた記憶装置１０の個数が均等になるように割り振る方法であり、もう１つは、各記憶装置１０の稼働率に基づく各マイクロプロセッサ処理部１４の負荷状況に応じて各マイクロプロセッサ処理部１４の負荷が均等となるように記憶装置１０を割り振る方法である。そして本実施の形態においては、後者の方法が採用されている。
【０１５２】
そのための手段として、共有メモリ１６には、図２２に示すように、各記憶装置１０にそれぞれ対応させて稼働率欄２６Ａが設けられた記憶装置稼働率管理テーブル２６が格納されている。そして各マイクロプロセッサ処理部部１４は、自マイクロプロセッサ処理部に割り当てられた記憶装置１０ごとにデータ入出力要求を受け付けた回数をその記憶装置１０の稼働率として記憶しデータ入出力要求を処理するごとに、記憶装置稼働率管理テーブル２６の対応する稼働率欄２６Ａに格納された値をカウントアップする。
【０１５３】
そしてマイクロプロセッサ処理部１４は、閉塞した又は閉塞するマイクロプロセッサ処理部１４に割り当てられていた記憶装置１０を他のマイクロプロセッサ処理部に割り振る際には、かかる記憶装置稼働率管理テーブル２６を参照して、図２３に示すようなマイクロプロセッサ処理部稼働率管理テーブル２７を作成する。
【０１５４】
このマイクロプロセッサ処理部稼働率管理テーブル２７は、マイクロプロセッサ処理部番号欄２７Ａ、処理対象記憶装置数欄２７Ｂ及び記憶装置稼働率累積欄２７Ｃとから構成される。そしてマイクロプロセッサ処理部番号欄２７Ａには、各マイクロプロセッサ処理部１４のマイクロプロセッサ処理部番号が格納され、処理対象記憶装置欄２７Ｂには、そのマイクロプロセッサ処理部１４に割り当てられている記憶装置数が格納される。また記憶装置稼働率累積欄２７Ｃには、そのマイクロプロセッサ処理部１４の稼働率（単位時間当たりのデータ入出力数）が格納される。
【０１５５】
そしてマイクロプロセッサ処理部１４は、作成したマイクロプロセッサ処理部稼働率管理テーブル２７に基づいて、稼動している各マイクロプロセッサ処理部１４の負荷が均等化するように、より具体的には、各マイクロプロセッサ処理部１４の稼働率を均一化するように、かかる閉塞した又は閉塞するマイクロプロセッサ処理部１４に割り当てられていた記憶装置を他のマイクロプロセッサ処理部１４に割り振るようになされている。
【０１５６】
一方、障害閉塞等により交換した新たなマイクロプロセッサ処理部１４を稼動させる場合、ユーザは管理コンソール５を介してストレージ装置４に対して当該マイクロプロセッサ処理部１４に記憶装置１０を割り当てるように指示（以下、これを記憶装置割当て指示と呼ぶ）を与える。
【０１５７】
そしてこの記憶装置割当て指示を受け取ったストレージ装置４のマイクロプロセッサ処理部１４は、図２４に示すように、交換後の新たなマイクロプロセッサ処理部１４を含めて各マイクロプロセッサ処理部１４の負荷を均等化するように、その交換後の新たなマイクロプロセッサ処理部に記憶装置１４を割り当てる。なお、この際かかる新たなマイクロプロセッサ処理部１４に割り当てる記憶装置１０としては、元のマイクロプロセッサ処理部１４が障害閉塞する前に当該マイクロプロセッサ処理部１４に割り当てられていた記憶装置１０を割り当てるようにしても、またこれと異なる記憶装置１０を割り当てるようにしてもよい。
【０１５８】
（１−３）本実施の形態の効果
以上のように記憶システム１では、ポート部１２においてホストサーバ２からのデータ入出力要求を分散配置テーブル２０に従って対応するマイクロプロセッサ処理部１４に振り分ける一方、いずれかのマイクロプロセッサ処理部１４が障害等により閉塞したときには、当該閉塞したマイクロプロセッサ処理部１４に割り当てられている記憶装置１０を他のマイクロプロセッサ処理部１４に動的に割り振るように各ポート部１２の分散配置テーブル２０を更新するため、マイクロプロセッサ処理部１４が障害等により閉塞した場合においても、他の一部のマイクロプロセッサ処理部１４にその分の負荷が集中することなく、また閉塞したマイクロプロセッサ処理部１４に割り当てられていた記憶装置１０に対するデータ入出力処理を滞ることなく行なうことができ、かくして耐障害性の高い記憶システムを実現できる。
【０１５９】
またこの場合に、閉塞したマイクロプロセッサ処理部１４に割り当てられていた記憶装置１０を、他のマイクロプロセッサ処理部１４の負荷が均等化するように当該他のマイクロプロセッサ処理部１４に割り振るため、ストレージ装置４全体としてのデータ入出力性能が劣化するのを未然かつ有効に防止することができる。
【０１６０】
（２）第２の実施の形態
図１との対応部分に同一符号に添え字「Ａ」又は「Ｂ」を付して示す図２５は、第２の実施の形態による記憶システム３０を示す。この記憶システム３０は、それぞれ第１の実施の形態による記憶システム１（図１）と同様の構成を有する複数の記憶システム部１Ａ，１Ｂが通信ケーブル３１を介して接続されることにより構成されている。
【０１６１】
この場合通信ケーブル３１としては、ＦＣケーブル、ＩＰケーブル又は専用線などを適用することができる。ただし、通信ケーブル３１としてＦＣケーブル又はＩＰケーブルを適用する場合には、通信ケーブル３１及び各記憶システム部１Ａ，１Ｂ間に変換コネクタ等のインタフェースが必要となる。
【０１６２】
本記憶システム３０におけるデータ入出力動作は、各記憶システム部１Ａ，１Ｂ内のストレージ装置４Ａ，４Ｂの各ポート部１２Ａ，１２Ｂ、各マイクロプロセッサ処理部１４Ａ，１４Ｂ及び共有メモリ１６Ａ，１６Ｂにそれぞれ格納された第１の実施の形態と同様の分散配置テーブル（図２参照）を用いて行なわれる。
【０１６３】
実際上、記憶システム部１Ａ，１Ｂ内のストレージ装置４Ａ，４Ｂの各ポート部１２Ａ，１２Ｂは、ホストサーバ２Ａ，２Ｂからデータ入出力要求が与えられると、第１の実施の形態と同様に、分散配置テーブルを参照して転送先のマイクロプロセッサ処理部１４Ａ，１４Ｂを特定し、特定したマイクロプロセッサ処理部１４Ａ，１４Ｂにそのデータ入出力要求を転送する。
【０１６４】
この際、ポート部１２Ａ，１２Ｂは、分散配置テーブル上で転送先となり得るマイクロプロセッサ処理部１４Ａ，１４Ｂを検出できなかったときには、そのデータ入出力要求を通信ケーブル３１を介して他の記憶システム部１Ａ，１Ｂの任意又は特定のマイクロプロセッサ処理部１４Ａ，１４Ｂに転送する。これにより各ホストサーバ２Ａ，２Ｂは、自己に接続されたストレージ装置４Ａ，４Ｂだけでなく、他の記憶システム部１Ｂ，１Ａのストレージ装置４Ｂ，４Ａにもアクセスすることができる。
【０１６５】
以上のように本記憶システムによれば、第１の実施の形態により得られる効果に加えて、システムの拡張性を格段的に向上させることができる。
【０１６６】
（３）他の実施の形態
なお上述の実施の形態においては、記憶装置１０に対するデータの入出力制御を行なう記憶制御装置としてのストレージ装置４のコントロール部１１を図１のように構成された記憶システム１に適用するようにした場合について述べたが、本発明はこれに限らず、かかる記憶制御装置の構成としては、この他種々の構成を広く適用することができる。
【０１６７】
また上述の実施の形態においては、１つのマイクロプロセッサ処理部１４内に記憶装置１０に対してデータの入出力を行なう処理部としてのマイクロプロセッサ１４Ａが１つのみ搭載されている場合について述べたが、本発明はこれに限らず、１つのマイクロプロセッサ処理部１４内に複数のマイクロプロセッサ１４Ａが搭載されている場合にも本発明を適用することができる。この場合には、マイクロプロセッサ１４Ａごとに記憶装置１０を割り当てると共に分散配置テーブル２０や障害監視テーブル２５のエントリをマイクロプロセッサ１４Ａ単位とし、ポート部２１がホストサーバ２からのデータ入出力要求をマイクロプロセッサ１４Ａ単位で振り分けるようにする。そして閉塞したマイクロプロセッサ１４Ａに割り当てられていた記憶装置１０については、閉塞していないマイクロプロセッサ１４Ａに割り振るようにすれば良い。このようにすることによって、１つのパッケージであるマイクロプロセッサ処理部１４内の１つのマイクロプロセッサ１４Ａに障害が発生した場合においても同じパッケージ内の他のマイクロプロセッサ１４Ａに負荷が集中してデータ入出力性能が低下することを有効に防止することができる。
【０１６８】
さらに上述の実施の形態においては、データ入出力処理の担当対象を記憶装置単位でマイクロプロセッサ処理部１４（マイクロプロセッサ１４Ａ）に割り当てるようにした場合について述べたが、本発明はこれに限らず、例えば記憶装置１０内に設定されるボリューム（記憶領域）単位で各マイクロプロセッサ１４にデータ入出力処理の担当を割り当てるようにしても良い。この場合には、分散配置テーブル２０の処理対象記憶装置ビットマップ欄２０Ｄには、各ボリュームにそれぞれ対応させてビットが設けられたビットマップを格納するようにし、障害が発生したマイクロプロセッサ処理部１４に割り当てられたボリュームを他のマイクロプロセッサ４に割り振る際にもボリューム単位で割り振るようにすれば良い。
【産業上の利用可能性】
【０１６９】
本発明は記憶制御装置及び方法に関し、ホストに対するインタフェースとして機能するポート部と、記憶装置に対してデータ入出力処理を行なうマイクロプロセッサとをハード的に分離独立化した種々の構成のストレージ装置に広く適用することができる。
【図面の簡単な説明】
【０１７０】
【図１】第１の実施の形態による記憶システムの全体構成を示すブロック図である。
【図２】分散配置テーブルの説明に供する概念図である。
【図３】装置構成情報テーブルの説明に供する概念図である。
【図４】第１のテーブル初期化設定処理の処理手順を示すフローチャートである。
【図５】第２のテーブル初期化設定処理の処理手順を示すフローチャートである。
【図６】ブロードキャストテーブルの説明に供する概念図である。
【図７】テーブル取込み処理の処理手順を示すフローチャートである。
【図８】テーブル配置の説明に供する概念図である。
【図９】テーブル再設定処理の処理手順を示すフローチャートである。
【図１０】データ入出力処理に関するポート部の処理内容を示すフローチャートである。
【図１１】転送先管理テーブルの説明に供する概念図である。
【図１２】データ入出力実行処理の処理手順を示すフローチャートである。
【図１３】記憶装置割振り処理の処理手順を示すフローチャートである。
【図１４】データ入出力処理の処理手順を示すフローチャートである。
【図１５】保守閉塞処理に関する管理コンソール及び保守該当マイクロプロセッサ処理部の処理の流れを示すフローチャートである。
【図１６】マイクロ交換処理に関する管理コンソール及び保守該当マイクロプロセッサ処理部の処理の流れを示すフローチャートである。
【図１７】マイクロ交換処理に関する管理コンソール及び保守該当マイクロプロセッサ処理部の処理の流れを示すフローチャートである。
【図１８】障害監視テーブルの説明に供する概念図である。
【図１９】時刻更新処理の処理手順を示すフローチャートである。
【図２０】障害監視及びテーブル更新処理の処理手順を示すフローチャートである。
【図２１】記憶装置の割振り処理の説明に供する概念図である。
【図２２】記憶装置稼働率管理テーブルの説明に供する概念図である。
【図２３】マイクロプロセッサ処理部稼働率管理テーブルの説明に供する概念図である。
【図２４】記憶装置の再割振り処理の説明に供する概念図である。
【図２５】第２の実施の形態による記憶システムの構成を示すブロック図である。
【符号の説明】
【０１７１】
１，３０……記憶システム、１Ａ，１Ｂ……記憶システム部、２，２Ａ，２Ｂ……ホストサーバ、４，４Ａ，４Ｂ……ストレージ装置、５，５Ａ，５Ｂ……管理コンソール、１０……記憶装置、１２，１２Ａ，１２Ｂ……ポート部、１４，１４Ａ，１４Ｂ……マイクロプロセッサ処理部、１６……共有メモリ、２０……分散配置テーブル２０……装置構成情報テーブル、２３……ブロードキャストテーブル、２４……転送先管理テーブル、２５……障害監視テーブル、２６……記憶装置稼働率管理テーブル、２７……マイクロプロセッサ処理部稼働率管理テーブル。
【図１】
0005153392.tif 000002
【図２】
0005153392.tif 000003
【図３】
0005153392.tif 000004
【図４】
0005153392.tif 000005
【図５】
0005153392.tif 000006
【図６】
0005153392.tif 000007
【図７】
0005153392.tif 000008
【図８】
0005153392.tif 000009
【図９】
0005153392.tif 000010
【図１０】
0005153392.tif 000011
【図１１】
0005153392.tif 000012
【図１２】
0005153392.tif 000013
【図１３】
0005153392.tif 000014
【図１４】
0005153392.tif 000015
【図１５】
0005153392.tif 000016
【図１６】
0005153392.tif 000017
【図１７】
0005153392.tif 000018
【図１８】
0005153392.tif 000019
【図１９】
0005153392.tif 000020
【図２０】
0005153392.tif 000021
【図２１】
0005153392.tif 000022
【図２２】
0005153392.tif 000023
【図２３】
0005153392.tif 000024
【図２４】
0005153392.tif 000025
【図２５】
0005153392.tif 000026