(57)【要約】【課題】ハードディスクドライブに対するアクセスを制御する複数のクラスタを備えているストレージ制御装置で、少ないクラスタ間パスで、クラスタ相互間のスループット等の性能を高める。【解決手段】  複数のクラスタ相互間は、２本の全２重通信パスで接続されている。クラスタ１０Ａがホストコンピュータ２からリード要求を受信し、リード要求が示すデータが他のクラスタ１０Ｂに格納されている場合、クラス１０Ａのプロセッサ部６は、他のクラスタ１０Ｂへ送る制御系パケットが使用するパスを、他のクラスタ１０Ｂからクラスタ１０Ａへ転送されるデータ系パケットであるリードデータのパケットが使用するパスと同じパスする。【選択図】図１３
2006018689.tif 000002
【特許請求の範囲】
【請求項１】
１以上の記憶装置がそれぞれに設けられ、該１以上の記憶装置を制御する複数のクラスタを備えているストレージ制御装置において、
複数の前記クラスタ相互間は、複数の全２重通信パスで接続され、
前記記憶装置に格納される又は格納されていた実データをリード処理及びライト処理する際に、該実データのリード処理及びライト処理を指示するパケット、その指示の処理状態を示すパケット、及び実データを含むパケットをデータ系パケットとすると、各クラスタは、該データ系パケットに対して、該データ系パケットの転送制御に必要な制御系パケットが同方向に同パスで送信されぬよう、該データ系パケットと該制御系パケットとのうちの一方のパケットが使用するパスに対する他方のパケットが使用するパスを選択する第１パス選択部を有する、
ことを特徴とするストレージ制御装置。
【請求項２】
請求項１に記載のストレージ制御装置において、
複数の前記クラスタは、それぞれ、外部と通信するための通信制御部を有し、
複数の前記クラスタのうちの一のクラスタの前記通信制御部が、前記外部からリード要求を受信し、該リード要求が示すデータが他のクラスタに設けられている前記記憶装置又は他のクラスタ内に格納されている場合、前記一のクラスタの前記第1パス選択部は、該他のクラスタへ送られる前記制御系パケットが使用するパスとして、該他のクラスタから該一のクラスタへ転送されるデータ系パケットであるリードデータのパケットが使用するパスと同じパスを選択する、
ことを特徴とするストレージ制御装置。
【請求項３】
請求項２に記載のストレージ制御装置において、
複数の前記クラスタのうちの一のクラスタの前記通信制御部が、前記外部からライト要求を受信し、該ライト要求が示すデータの格納先が他のクラスタに設けられている前記記憶装置である場合、前記一のクラスタの前記第1パス選択部は、該他のクラスタへ送られる前記制御系パケットが使用するパスとして、該一のクラスタから該他のクラスタへ転送されるデータ系パケットであるライトデータのパケットが使用するパスと異なるパスを選択する、
ことを特徴とするストレージ制御装置。
【請求項４】
請求項１に記載のストレージ制御装置において、
複数の前記クラスタは、それぞれ、外部と通信するための通信制御部と、該外部からの要求として、リード要求とライト要求とのうち、どちらの要求が多いかを把握する要求傾向把握部とを有し、
複数の前記クラスタのうちの一のクラスタの前記通信制御部が、前記外部からリード要求を受信し、該リード要求が示すデータが他のクラスタに設けられている前記記憶装置又は該他のクラスタ内に格納されている場合でも、さらに、該外部からライト要求を受信し、該ライト要求が示すデータの格納先が他のクラスタに設けられている該記憶装置である場合でも、該一のクラスタの前記要求傾向把握部が外部からの要求としてリード要求が多いと把握した際には、該一のクラスタの前記第１パス選択部は、該他のクラスタへ送られる制御系要求パケットが使用するパスとして、前記データ系パケットが使用するパスと同じパスを選択し、該要求傾向把握部が外部からの要求としてライト要求が多いと把握した際には、該一のクラスタの該パス選択部は、該他のクラスタへ送られる該制御系要求パケットが使用するパスとして、該データ系パケットが使用するパスと異なるパスを選択する、
ことを特徴とするストレージ制御装置。
【請求項５】
請求項２から４のいずれか一項に記載のストレージ制御装置において、
前記他のクラスタは、前記一のクラスタから送られてきた制御系要求パケットに対する制御系応答パケットが使用するパスとして、該制御系要求パケットと異なるパスを選択する第２パス選択部を有する、
ことを特徴とするストレージ制御装置。
【請求項６】
請求項１から５のいずれか一項に記載のストレージ制御装置において、
複数の前記全２重通信パスの通信障害を検知するパス障害検知部を有し、
前記第１パス選択部は、前記パス障害検知部が複数の前記全２重通信パスのうちのいずれかのパスの通信障害を検知すると、通信障害を起こしているパスを選択しない、
ことを特徴とするストレージ制御装置。
【請求項７】
請求項２から６のいずれか一項に記載のストレージ制御装置において、
複数の前記クラスタは、それぞれ、前記記憶装置に格納する又は該記憶装置に格納されていた実データを一時的に格納するキャッシュメモリ部と、該記憶装置に対してアクセスする記憶装置制御部と、クラスタ内外の該記憶装置制御部を制御するプロセッサ部と、を有し、
前記プロセッサは、前記第１パス選択部を有する、
ことを特徴とするストレージ制御装置。
【請求項８】
請求項５に記載のストレージ制御装置において、
複数の前記クラスタは、それぞれ、前記記憶装置に格納する又は該記憶装置に格納されていた前記実データを一時的に格納するキャッシュメモリ部と、該記憶装置に対してアクセスする記憶装置制御部と、クラスタ内外の該記憶装置制御部を制御するプロセッサ部と、前記制御系パケットのデータが格納される共有メモリ部と、を有し、
前記共有メモリ部は、前記第２パス選択部を有する、
ことを特徴とするストレージ制御装置。
【請求項９】
請求項７及び８のいずれか一項に記載のストレージ制御装置において、
前記通信制御部は、受信したパケットに対する応答のパケットを他のクラスタへ送る際に使用するパスを選択するパス選択部を有する、
ことを特徴とするストレージ制御装置。
【請求項１０】
請求項７から９のいずれか一項に記載のストレージ制御装置において、
前記記憶装置制御部は、受信したパケットに対する応答のパケットを他のクラスタへ送る際に使用するパスを選択するパス選択部を有する、
ことを特徴とするストレージ制御装置。
【請求項１１】
請求項７から１０のいずれか一項に記載のストレージ制御装置において、
前記キャッシュメモリ部は、受信したパケットに対する応答のパケットを他のクラスタへ送る際に使用するパスを選択するパス選択部を有する、
ことを特徴とするストレージ制御装置。
【請求項１２】
請求項１から１１のいずれか一項に記載のストレージ制御装置と、
前記記憶装置と、
を備えていることを特徴とするストレージ装置。
【請求項１３】
１以上の記憶装置がそれぞれに設けられ、該１以上の記憶装置を制御する複数のクラスタを備えているストレージ制御装置のクラスタ間データ通信方法において、
複数の前記クラスタ相互間を、複数の全２重通信パスで接続し、
前記記憶装置に格納される又は格納されていた実データをリード処理及びライト処理する際に、該実データのリード処理及びライト処理を指示するパケット、その指示の処理状態を示すパケット、及び実データを含むパケットをデータ系パケットとすると、各クラスタは、該データ系パケットに対して、該データ系パケットの転送制御に必要な制御系パケットが同方向に同パスで送信されぬよう、該データ系パケットと該制御系パケットとのうちの一方のパケットが使用するパスに対する他方のパケットが使用するパスを選択する第１パス選択工程を実行する、
ことを特徴とするストレージ制御装置のクラスタ間データ通信方法。
【請求項１４】
請求項１３に記載のストレージ制御装置のクラスタ間データ通信方法において、
複数のクラスタは、外部からリード要求及びライト要求を受ける受信工程を実行し、
複数の前記クラスタのうちの一のクラスタが、前記受信工程で、前記外部からリード要求を受信し、該リード要求が示すデータが他のクラスタに設けられている前記記憶装置又は他のクラスタ内に格納されている場合、前記第1パス選択工程では、該他のクラスタへ送られる前記制御系パケットが使用するパスとして、該他のクラスタから該一のクラスタへ転送されるデータ系パケットであるリードデータのパケットが使用するパスと同じパスを選択する、
ことを特徴とするストレージ制御装置のクラスタ間データ通信方法。
【請求項１５】
請求項１４に記載のストレージ制御装置のクラスタ間データ通信方法において、
複数の前記クラスタのうちの一のクラスタが、前記受信工程で、前記外部からライト要求を受信し、該ライト要求が示すデータの格納先が他のクラスタに設けられている前記記憶装置である場合、前記第1パス選択工程では、該他のクラスタへ送られる前記制御系パケットが使用するパスとして、該一のクラスタから該他のクラスタへ転送されるデータ系パケットであるライトデータのパケットが使用するパスと異なるパスを選択する、
ことを特徴とするストレージ制御装置のクラスタ間データ通信方法。
【請求項１６】
請求項１３に記載のストレージ制御装置のクラスタ間データ通信方法において、
複数の前記クラスタは、それぞれ、外部からリード要求及びライト要求を受ける受信工程と、該外部からの要求として、リード要求とライト要求とのうち、どちらの要求が多いかを把握する要求傾向把握工程と、を実行し、
複数の前記クラスタのうちの一のクラスタが、前記受信工程で、前記外部からリード要求を受信し、該リード要求が示すデータが他のクラスタに設けられている前記記憶装置又は該他のクラスタ内に格納されている場合でも、さらに、該外部からライト要求を受信し、該ライト要求が示すデータの格納先が他のクラスタに設けられている該記憶装置である場合でも、前記要求傾向把握工程で外部からの要求としてリード要求が多いと把握した際には、前記第１パス選択工程では、該他のクラスタへ送られる制御系要求パケットが使用するパスとして、前記データ系パケットが使用するパスと同じパスを選択し、該要求傾向把握工程で外部からの要求としてライト要求が多いと把握した際には、該第１パス選択部では、該他のクラスタへ送られる該制御系要求パケットが使用するパスとして、該データ系パケットが使用するパスと異なるパスを選択する、
ことを特徴とするストレージ制御装置のクラスタ間データ通信方法。
【請求項１７】
請求項１４から１６のいずれか一項に記載のストレージ制御装置のクラスタ間データ通信方法において、
前記他のクラスタは、前記一のクラスタから送られてきた制御系要求パケットに対する制御系応答パケットが使用するパスとして、該制御系パケットと異なるパスを選択する第２パス選択工程を実行する、
ことを特徴とするストレージ制御装置のクラスタ間データ通信方法。
【請求項１８】
請求項１３から１７のいずれか一項に記載のストレージ制御装置のクラスタ間データ通信方法において、
複数の前記全２重通信パスの通信障害を検知するパス障害検知工程を実行し、
前記第１パス選択工程では、前記パス障害検知部が複数の前記全２重通信パスのうちのいずれかのパスの通信障害を検知すると、通信障害を起こしているパスを選択しない、
ことを特徴とするストレージ制御装置のクラスタ間データ通信方法。
【請求項１９】
１以上の記憶装置がそれぞれに設けられ、該１以上の記憶装置を制御する複数のクラスタを備え、複数の該クラスタ相互間が複数の全２重通信パスで接続されているストレージ制御装置のクラスタ間通信制御プログラムにおいて、
前記記憶装置に格納される又は格納されていた実データをリード処理及びライト処理する際に、該実データのリード処理及びライト処理を指示するパケット、その指示の処理状態を示すパケット、及び実データを含むパケットをデータ系パケットとすると、該データ系パケットに対して、該データ系パケットの転送制御に必要な制御系パケットが同方向に同パスで送信されぬよう、該データ系パケットと該制御系パケットとのうちの一方のパケットが使用するパスに対する他方のパケットが使用するパスを選択する第１パス選択工程、
をプロセッサに実行させることを特徴とするストレージ制御装置のクラスタ間通信制御プログラム。
【請求項２０】
請求項１９に記載のストレージ制御装置のクラスタ間データ通信制御プログラムにおいて、
複数の前記クラスタのうちの一のクラスタが、前記外部からリード要求を受信し、該リード要求が示すデータが他のクラスタに設けられている前記記憶装置又は他のクラスタ内に格納されている場合、前記第1パス選択工程では、該他のクラスタへ送られる前記制御系パケットが使用するパスとして、該他のクラスタから該一のクラスタへ転送されるデータ系パケットであるリードデータのパケットが使用するパスと同じパスを選択する、
ことを特徴とするストレージ制御装置のクラスタ間通信制御プログラム。
【請求項２１】
請求項１９及び２０のいずれか一項に記載のストレージ制御装置のクラスタ間通信制御プログラムにおいて、
複数の前記クラスタのうちの一のクラスタが、前記外部からライト要求を受信し、該ライト要求が示すデータの格納先が他のクラスタに設けられている前記記憶装置である場合、前記第1パス選択工程では、該他のクラスタへ送られる前記制御系パケットが使用するパスとして、該一のクラスタから該他のクラスタへ転送されるデータ系パケットであるライトデータのパケットが使用するパスと異なるパスを選択する、
ことを特徴とするストレージ制御装置のクラスタ間通信制御プログラム。
【請求項２２】
請求項１９に記載のストレージ制御装置のクラスタ間通信制御プログラムにおいて、
外部からからの要求として、リード要求とライト要求とのうち、どちらの要求が多いかを把握する要求傾向把握工程をプロセッサに実行させ、
複数の前記クラスタのうちの一のクラスタが、前記外部からリード要求を受信し、該リード要求が示すデータが他のクラスタに設けられている前記記憶装置又は該他のクラスタ内に格納されている場合でも、さらに、該外部からライト要求を受信し、該ライト要求が示すデータの格納先が他のクラスタに設けられている該記憶装置である場合でも、前記要求傾向把握工程で外部からの要求としてリード要求が多いと把握した際には、前記第１パス選択工程では、該他のクラスタへ送られる制御系要求パケットが使用するパスとして、前記データ系パケットが使用するパスと同じパスを選択し、該要求傾向把握工程で外部からの要求としてライト要求が多いと把握した際には、該第１パス選択部では、該他のクラスタへ送られる該制御系要求パケットが使用するパスとして、該データ系パケットが使用するパスと異なるパスを選択する、
ことを特徴とするストレージ制御装置のクラスタ間通信制御プログラム。
【請求項２３】
請求項１９から２２のいずれか一項に記載のストレージ制御装置のクラスタ間通信制御プログラムにおいて、
複数の前記全２重通信パスの通信障害を検知するパス障害検知工程をプロセッサに実行させ、
前記第１パス選択工程では、前記パス障害検知部が複数の前記全２重通信パスのうちのいずれかのパスの通信障害を検知すると、通信障害を起こしているパスを選択しない、
ことを特徴とするストレージ制御装置のクラスタ間通信制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、１以上の記憶装置がそれぞれに設けられ、該１以上の記憶装置を制御する複数のクラスタを備えているストレージ制御装置、そのクラスタ間データ通信方法、及びそのクラスタ間通信制御プログラムに関する。
【背景技術】
【０００２】
半導体記憶装置を記憶媒体とするコンピュータの主記憶のＩ／Ｏ性能に比べて、ハードディスクドライブ（以下「ＨＤＤ」という。）を備えているディスクサブシステムのＩ／Ｏ性能は３〜４桁程度小さく、従来からこの差を縮めること、すなわちディスクサブシステムのＩ／Ｏ性能を向上させる努力がなされている。ディスクサブシステムのＩ／Ｏ性能を向上させるための１つの方法として、複数のＨＤＤでシステムを構成し、データを複数のＨＤＤに格納する、いわゆるディスクアレイと呼ばれるシステムが知られている。こういったストレージシステムでは、Ｉ／Ｏ性能と共に、高信頼性、高可用性、さらに接続可能なホストコンピュータやＨＤＤの数に対する拡張性が要求されている。
【０００３】
一般に、高信頼性を得るために、様々な処理において動作チェックを行い、障害を検知して、データの整合性を保っている。また、高可用性を得るために、ＨＤＤをはじめ、バスなども冗長化されている。しかし、高い拡張性を得るために、ディスアレイを制御するディスク制御装置の１台あたりのホストコンピュータやＨＤＤの接続可能数を大きくすることはコストの増大を招いてしまう。
【０００４】
そこで、低コストで実現可能な接続可能数の限られたディスク制御装置を１つのクラスタとし、それを複数、内部ネットワークで相互接続し、１つの大規模なディスクサブシステムとする技術が知られている。ここでは、こういったディスク制御装置をクラスタ型ディスク制御装置と呼ぶ。このクラスタ型ディスク制御装置に関しては、例えば、以下の特許文献１に記載されている。
【０００５】
一般にクラスタ型ディスク制御装置において、クラスタ間を結ぶパスの帯域は、１つのクラスタ内部のネットワークの帯域に比べると狭い。特許文献１に記載の技術では、キャッシュメモリに格納されるデータの転送を行うネットワークと、ディスクサブシステム内で制御を行うために必要なデータの転送を行うネットワークとをそれぞれ持たせている。一般に、前者のデータは、比較的データサイズが大きくデータの転送には大量のデータを転送するスループット性能が要求され、後者のデータは、比較的データサイズは小さいがデータの転送には短時間でデータの転送を終了するレスポンス性能が要求される。特許文献１に記載の技術では、クラスタ間をパスに関してもネットワークが分離されているため、クラスタ間のデータ転送に関しても、スループット性能、レスポンス性能に対する効果がある。具体的には、特許文献１に記載の技術では、各クラスタ間を複数のアクセスパスで接続している。複数のアクセスパスのうち、１つは、ＨＤＤに格納される又は格納されていた実データを転送するための専用パスとして使用され、他の１つは、実データの転送制御に必要な制御系データを転送するための制御系データ専用パスとして使用されている。また、各専用パスは、このシステムの信頼性を確保するために冗長構成が取られている、つまり、それぞれ、少なくとも２本ずつ設けられている。
【０００６】
なお、以下では、ディスク制御装置をストレージ制御装置、ディスク制御装置のクラスタを単にクラスタとも言う。
【０００７】
【特許文献１】ＵＳ６，６４７，４６１  Ｂ２    図６
【発明の開示】
【発明が解決しようとする課題】
【０００８】
以上のように、特許文献１に記載のクラスタ型ストレージ制御装置は、実データの転送用の専用パスと制御系データ専用パスとが設けられているため、データ系アクセスのスループット性能の向上及び制御系アクセスのレスポンス性能の向上の両立が図られている。しかし、それぞれ専用パスを設けることで、その製造コストが比較的高いものになってしまう。
【０００９】
そこで、本発明は、比較的簡単な構成で製造コストを抑えつつも、以上の従来技術と同等又はそれ以上の性能を有するストレージ制御装置、そのクラスタ間データ通信方法、及びそのクラスタ間通信制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
前記目的を達成するためのストレージ制御装置は、
１以上の記憶装置がそれぞれに設けられ、該１以上の記憶装置を制御する複数のクラスタを備えているストレージ制御装置において、
複数の前記クラスタ相互間は、複数の全２重通信パスで接続され、
前記記憶装置に格納される又は格納されていた実データをリード処理及びライト処理する際に、該実データのリード処理及びライト処理を指示するパケット、その指示の処理状態を示すパケット、及び実データを含むパケットをデータ系パケットとすると、各クラスタは、該データ系パケットに対して、該データ系パケットの転送制御に必要な制御系パケットが同方向に同パスで送信されぬよう、該データ系パケットと該制御系パケットとのうちの一方のパケットが使用するパスに対する他方のパケットが使用するパスを選択する第１パス選択部を有することを特徴とする。
【００１１】
ここで、前記ストレージ制御装置において、
複数の前記クラスタは、それぞれ、外部と通信するための通信制御部を有し、
複数の前記クラスタのうちの一のクラスタの前記通信制御部が、前記外部からリード要求を受信し、該リード要求が示すデータが他のクラスタに設けられている前記記憶装置又は他のクラスタ内に格納されている場合、前記一のクラスタの前記第1パス選択部は、該他のクラスタへ送られる前記制御系パケットが使用するパスとして、該他のクラスタから該一のクラスタへ転送されるデータ系パケットであるリードデータのパケットが使用するパスと同じパスを選択することが好ましい。また、複数の前記クラスタのうちの一のクラスタの前記通信制御部が、前記外部からライト要求を受信し、該ライト要求が示すデータの格納先が他のクラスタに設けられている前記記憶装置である場合、前記一のクラスタの前記第1パス選択部は、該他のクラスタへ送られる前記制御系パケットが使用するパスを、該一のクラスタから該他のクラスタへ転送されるデータ系パケットであるライトデータのパケットが使用するパスと異なるパスを選択することが好ましい。
【００１２】
さらに、前記ストレージ制御装置において、
複数の前記クラスタは、それぞれ、外部と通信するための通信制御部と、該外部からの要求として、リード要求とライト要求とのうち、どちらの要求が多いかを把握する要求傾向把握部とを有し、
複数の前記クラスタのうちの一のクラスタの前記通信制御部が、前記外部からリード要求を受信し、該リード要求が示すデータが他のクラスタに設けられている前記記憶装置又は該他のクラスタ内に格納されている場合でも、さらに、該外部からライト要求を受信し、該ライト要求が示すデータの格納先が他のクラスタに設けられている該記憶装置である場合でも、該一のクラスタの前記要求傾向把握部が外部からの要求としてリード要求が多いと把握した際には、該一のクラスタの前記パス選択部は、該他のクラスタへ送られる制御系要求パケットが使用するパスとして、前記データ系パケットが使用するパスと同じパスを選択し、該要求傾向把握部が外部からの要求としてライト要求が多いと把握した際には、該一のクラスタの該パス選択部は、該他のクラスタへ送られる該制御系要求パケットが使用するパスとして、該データ系パケットが使用するパスと異なるパスを選択する、ことが好ましい。
【００１３】
また、前記目的を達成するための他のストレージ制御装置は、
１以上の記憶装置がそれぞれに設けられ、該１以上の記憶装置を制御する複数のクラスタを備えているストレージ制御装置において、
複数の前記クラスタ相互間は、複数の全２重通信パスで接続され、
各クラスタは、前記記憶装置に格納される又は格納されていた実データを含むデータ系データに対して、該データ系データの転送制御に必要な制御系データが同方向に同パスで送信されぬよう、該データ系データと該制御系データとのうちの一方のデータが使用するパスに対する他方のデータが使用するパスを選択する第１パス選択部を有する、ことを特徴とする。
【００１４】
また、前記目的を達成するためのストレージ装置のクラスタ間データ通信方法は、
１以上の記憶装置がそれぞれに設けられ、該１以上の記憶装置を制御する複数のクラスタを備えているストレージ制御装置のクラスタ間データ通信方法において、
複数の前記クラスタ相互間を、複数の全２重通信パスで接続し、
前記記憶装置に格納される又は格納されていた実データをリード処理及びライト処理する際に、該実データのリード処理及びライト処理を指示するパケット、その指示の処理状態を示すパケット、及び実データを含むパケットをデータ系パケットとすると、各クラスタは、該データ系パケットに対して、該データ系パケットの転送制御に必要な制御系パケットが同方向に同パスで送信されぬよう、該データ系パケットと該制御系パケットとのうちの一方のパケットが使用するパスに対する他方のパケットが使用するパスを選択する第１パス選択工程を実行することを特徴とする。
【００１５】
また、前記目的を達成するためのストレージ装置のクラスタ間通信制御プログラムは、
１以上の記憶装置がそれぞれに設けられ、該１以上の記憶装置を制御する複数のクラスタを備え、複数の該クラスタ相互間が複数の全２重通信パスで接続されているストレージ制御装置のクラスタ間通信制御プログラムにおいて、
前記記憶装置に格納される又は格納されていた実データをリード処理及びライト処理する際に、該実データのリード処理及びライト処理を指示するパケット、その指示の処理状態を示すパケット、及び実データを含むパケットをデータ系パケットとすると、該データ系パケットに対して、該データ系パケットの転送制御に必要な制御系パケットが同方向に同パスで送信されぬよう、該データ系パケットと該制御系パケットとのうちの一方のパケットが使用するパスに対する他方のパケットが使用するパスを選択する第１パス選択工程をプロセッサに実行させることを特徴とする。
【発明の効果】
【００１６】
本発明によれば、データ系パケットと制御系パケットとが競合しないよう、クラスタ間パスを有効活用できるので、少ない数のクラスタ間パスでも、データ系アクセスのスループット性能の向上及び制御系アクセスのレスポンス性能の向上の両立を図ることができると共に、製造コストの向上を抑えることができる。
【発明を実施するための最良の形態】
【００１７】
以下、本発明に係るストレージシステムの一実施形態について、図面を参照して説明する。
【００１８】
本実施形態のストレージシステムは、図１に示すように、複数のクラスタ１０Ａ，１０Ｂを有するストレージ制御装置１と、各クラスタ１０Ａ，１０Ｂに接続されている複数のＨＤＤ３，３とを備えている。また、本実施形態のストレージシステムは、クラスタ１０が有するインタフェース（以下、「チャネル」とも言う）を介してホストコンピュータ２と接続されている。
【００１９】
ストレージ制御装置１は、チャネルを介してホストコンピュータ２に接続されていると共に、同じくチャネルを介して複数のＨＤＤ３，３と接続されている。チャネルとしては、例えば、ＳＣＳＩ(Small  Computer  System  Interface)やFibre  Channelなどが用いられる。特に、ストレージ制御装置１とホストコンピュータ２の間は、Fibre  Channelなどで構成されるＳＡＮ（Storage  Area  Network）を介して接続してもよい。
【００２０】
ストレージ制御装置１の各クラスタ１０Ａ，１０Ｂは、それぞれ、ホストコンピュータ２との間での通信制御を行うチャネル制御部４と、複数のＨＤＤ３に対するアクセスを制御するディスク制御部５と、プロセッサを有するプロセッサ部６と、ＨＤＤ３に書き込むデータ又は書き込まれていたデータが一時的に格納されるキャッシュメモリを有するキャッシュメモリ部７と、キャッシュメモリのディレクトリ情報や論理ボリュームの構成情報等が格納される共有メモリを有する共有メモリ部８と、以上の各部４〜８を相互に接続すると共に他のクラスタと接続される内部スイッチ９Ａ，９Ｂと、を備えている。
【００２１】
各クラスタ１０Ａ，１０Ｂのチャネル制御部４は、前述したチャネルにより、ホストコンピュータ２に接続され、各クラスタ１０Ａ，１０Ｂのディスク制御部５も、前述したチャネルにより、複数のＨＤＤ３と接続されている。なお、以下では、ＨＤＤ３に格納される又は格納されていたデータ（以下、「実データ」）の読み出し及び書き込みをストレージ制御装置１が行う際に、ストレージ制御装置１内で実データの読み出し及び書き込みを各部に指示するパケット、及びその指示の処理状態（結果）や実データを含むパケットをデータ系パケットとする。また、ストレージ制御装置１内でのデータ系パケットの送受信をデータ系アクセスとする。一方、例えば共有メモリ部８に格納されるデータ、具体的にはストレージ制御装置１の各部を制御するために必要な情報をストレージ制御装置１内でやりとりするパケットを制御系パケットとし、この制御系パケットの送受信を制御系アクセスとする。
【００２２】
複数のクラスタ１０Ａ，１０Ｂの相互間は、２本のクラスタ間パス１１Ａ，１１Ｂで接続されている。各クラスタ１０Ａ，１０Ｂ相互がクラスタ間パス１１Ａ，１１Ｂを用いて通信することにより、そのクラスタ自身に直接接続されていないＨＤＤ３に格納されたデータにアクセスでき、各ホストコンピュータ２，２には1台のストレージ制御装置１として認識させることが可能である。このように、本実施形態では、クラスタ１０Ａ，１０Ｂ相互間を２本のクラスタ間パス１１Ａ，１１Ｂで接続している関係で、各クラスタ１０Ａ，１０Ｂには、クラスタ間パス１１Ａに接続されている内部スイッチ９Ａと、クラスタ間パス１１Ｂに接続されている内部スイッチ９Ｂとがある。
【００２３】
各クラスタ間パス１１Ａ，１１Ｂは、いずれも、図２に示すように、全二重通信パスであり、１つのパスは、通信方向が異なる一対の物理信号線１２０，１２０を有している。なお、ここでは、送信方向が異なる一対の物理信号線１２０，１２０でクラスタ間パス１１を構成しているが、さらに多くの物理信号線１２０でクラスタ間パス１１を構成し、帯域を拡大してもよい。各物理信号線１２０の両端には、それぞれ、送信側に送信Ｉ／Ｆ部１２２が接続され、受信側に受信Ｉ／Ｆ部１２１が接続されている。これら受信Ｉ／Ｆ１２１及び送信Ｉ／Ｆ部１２２は、いずれも、内部スイッチ９内に設けられている。また、前述したクラスタ１０の各部４〜８の内部にも、内部スイッチ９と通信するために、同様に、受信Ｉ／Ｆ１２１及び送信Ｉ／Ｆ部１２２が設けられている。
【００２４】
例えば、前段から送信要求を受けた送信Ｉ／Ｆ部１２２は、送信するパケットに物理信号線１２０の両端での通信を保証するための付加情報を加え、物理信号線１２０で伝送できるように符号化（例えば８ｂ／１０ｂ変換）を行い伝送する。物理信号線１２０が光ファイバで構成される場合は、ここで電気−光変換も行う。反対に受信側では、物理信号線１２０が光ファイバで構成される場合は光−電気変換を行い、復号化をし、付加情報から正しくパケットを受信したことを確認し、次段にパケットを転送する。この際、受信Ｉ／Ｆ部１２１は、同じ側の送信Ｉ／Ｆ部１２２に受信通知信号線１２３を用いて受信を通知し、この送信Ｉ／Ｆ部１２２は、物理信号線１２０の両端での通信を保証するための受領確認パケットや流量制御パケットなどの下位プロトコルパケットをパケット送信元の受信Ｉ／Ｆ部１２１に送信する。この下位プロトコルパケットを受信したパケット送信元の受信Ｉ／Ｆ部１２１は、その内容に従って、同じ側の送信Ｉ／Ｆ部に対して、次のパケットの送信許可や送信抑制などを行う（下位プロトコルパケットは、前段から送信要求を受け送信するパケットとはプロトコル層が異なる）。
【００２５】
次に、図３を用いてプロセッサ部６の詳細構成について説明する。
【００２６】
プロセッサ部６は、各種プログラムを実行するプロセッサ６１と、メモリコントローラやバス変換回路といった回路を含む周辺回路部６２と、各種プログラムやデータ等が格納されているメインメモリ６３と、他の各部と通信するための内部ネットワークＩ／Ｆ部６４と、前述の送信Ｉ／Ｆ部１２２及び受信Ｉ／Ｆ部１２１と、を備えている。
【００２７】
プロセッサ６１は、周辺回路部６２を介して、メインメモリ６３や内部ネットワークＩ／Ｆ部６４に接続され、メインメモリ６３に格納された制御プログラム６３１に従って動作する。また、メインメモリ６３には、ストレージ制御装置１に接続されたホストコンピュータ２から発行されるＩ／Ｏがどのような傾向にあるかを示すホストアクセス統計情報６３２も格納されている。プロセッサ６１は、ホストコンピュータ２からのリード要求及びライト要求の数をそれぞれカウントし、メインメモリ６３に、ホストアクセス統計情報６３２として格納する。なお、このホストアクセス統計情報６３２は、単に、リード要求及びライト要求の数ではなく、どのような時間帯にリード要求が多く、ライト要求が少ないか等のように、一定の統計解析を行った結果であってもよい。
【００２８】
内部ネットワークＩ／Ｆ部６４は、パケットを作成するパケット作成部６４１と、受信パケットを分解してその内容を解析するパケット解析部６４２と、２本のクラスタ間パス１１，１１のうちどちらのパスを利用するかを選択するパス選択部６４３を有している。パケット作成部６４１は、プロセッサ６１の要求に従って後述のパケットを作成し、送信Ｉ／Ｆ部１２２に対して、作成したパケットの送信要求を行う。その際、パス選択部６４３は、プロセッサ６１により予め設定された設定レジスタ６４４の内容に従いパケットの要求発行先に応じて、どのパスにパケットを送信するか選択する。パケット解析部６４２は、発行した要求パケットに対して、各部から返信された応答パケットを受信Ｉ／Ｆ部１２１を介して受信し、要求パケットのシーケンスＩＤと応答パケットのシーケンスＩＤとの対応を確認し、応答パケットがリード応答パケットであれば周辺回路部６２を介してプロセッサ６１に、リード応答パケット中に含まれるデータを送付する。なお、設定レジスタ６４４の内容に関しては、後述する。
【００２９】
次に、図４を用いて、共有メモリ部８の詳細構成について説明する。
【００３０】
共有メモリ部８は、キャッシュメモリのディレクトリ情報や論理ボリュームの構成情報等が格納される共有メモリ８１と、この共有メモリ８１に対するアクセスを行うメモリコントローラ８２と、他の各部と通信するための内部ネットワークＩ／Ｆ部８３と、前述の送信Ｉ／Ｆ部１２２及び受信Ｉ／Ｆ部１２１と、を備えている。
【００３１】
内部ネットワークＩ／Ｆ部８３は、パケットを作成するパケット作成部８３１と、受信パケットを分解してその内容を解析するパケット解析部８３２と、２本のパスのうちどちらのパスを利用するかを選択するパス選択部８３３を有している。ところで、前述のプロセッサ部６は、要求パケットを発行するのに対し、この共有メモリ部８は、要求パケットを発行せずに応答パケットを発行する点で、両者は相違する。この相違により、内部ネットワークＩ／Ｆ部８３の構造、特に、パス選択部８３３の構造が、プロセッサ部６の内部ネットワークＩ／Ｆ部６４のパス選択部６４３と異なる。受信Ｉ／Ｆ部１２１が要求パケットを受信し、これをパケット解析部８３２が受け取ると、受信した要求パケットの転送に使用されたパスに対応するパス番号をパス選択部８３３の要求パケットパス情報部８３６に書き込むと共に、要求パケットに記載された要求をメモリコントローラ８２に送付する。メモリコントローラ８２は、この要求を処理し、共有メモリ８１からのデータ等をパケット作成部８３１に送って、応答パケットの作成を要求する。パケット作成部８３１は、メモリコントローラ８２からの要求に従って、メモリコントローラ８２からのデータ等を含む応答パケットを作成する。それと共に、パス選択部８３３は、後述のパス選択テーブル８３５を参照して、要求パケットパス情報部８３６に記載されたパス番号に対応するパスを選択する。パケット作成部８３１は、パス選択部８３３が選択したパスに、送信Ｉ／Ｆ部１２２から応答パケットを送信させる。
【００３２】
次に、図５を用いて、キャッシュメモリ部７の詳細構成について説明する。
【００３３】
キャッシュメモリ部７は、基本的に前述の共有メモリ部８と同様で、共有メモリ部８の共有メモリ８１の替わりに存在するキャッシュメモリ７１と、このキャッシュメモリ７１に対するアクセスを行うメモリコントローラ７２と、他の各部と通信するための内部ネットワークＩ／Ｆ部７３と、前述の送信Ｉ／Ｆ部１２２及び受信Ｉ／Ｆ部１２１と、を備えている。
【００３４】
内部ネットワークＩ／Ｆ部７３は、パケットを作成するパケット作成部７３１と、受信パケットを分解してその内容を解析するパケット解析部７３２と、２本のパスのうちどちらのパスを利用するかを選択するパス選択部７３３と、を有している。このパス選択部７３３は、共有メモリ部８のパス選択部８３３が要求パケットパス情報８３６とパス選択テーブル８３５とを有しているのに対して、要求パケットパス情報７３６のみを有している。キャッシュメモリ部７では、受信Ｉ／Ｆ部１２１が要求パケットを受信し、これをパケット解析部７３２が受け取ると、受信した要求パケットの転送に使用されたパスに対応する番号をパス選択部８３３の要求パケットパス情報部７３６に書き込むと共に、要求パケットに記載された要求をメモリコントローラ７２に送付する。メモリコントローラ７２は、この要求を処理し、キャッシュメモリ７１からのデータ等をパケット作成部７３１に送って、応答パケットの作成を要求する。パケット作成部７３１は、メモリコントローラ７２からの要求に従って、メモリコントローラ７２からのデータ等を含む応答パケットを作成する。それと共に、パス選択部７３３は、要求パケットパス情報部７３６に記載されたパス番号と同じパス番号のパスを選択する。パケット作成部７３１は、パス選択部７３３が選択したパスに、送信Ｉ／Ｆ部１２２から応答パケットを送信させる。
【００３５】
なお、キャッシュメモリ部７と共有メモリ部８とをまとめて一つのメモリ部とする場合、このメモリ部では、パケットを転送するパスを選択するときに、転送対象のパケットがデータ系パケットであるか制御系パケットであるかを識別する必要がある。この場合、このメモリ部は、上述した共有メモリ部８の要求パケットパス情報部８３６に格納された情報、及びパス選択テーブル８３５に格納された情報の双方を有する。そして、このメモリ部は、これらの情報を用いてパスの選択を実行する。
【００３６】
次に、図６を用いて、チャネル制御部４の詳細構成について説明する。
【００３７】
チャネル制御部４は、ホストコンピュータ２との間のチャネルを制御するチャネル制御回路４１と、他の各部と通信するための内部ネットワークＩ／Ｆ部８３と、を備えている。
【００３８】
内部ネットワークＩ／Ｆ部８３は、基本的に共有メモリ部８の内部ネットワークＩ／Ｆ部と同様である。但し、チャネル制御部４は、データ系アクセスと制御系アクセスの両方を行うので、前述したキャッシュメモリ部７と共有メモリ部８の共通化を行う場合のように、パケットの判断が必要となる。チャネル制御回路４１は、設定レジスタ４１２の設定内容に基づきチャネルを制御し、転送リスト４１１に基づきキャッシュメモリ部７にデータ系アクセスを発行して、ホストコンピュータ２へキャッシュメモリ上のデータの転送や、ホストコンピュータ２からのデータをキャッシュメモリ上に転送などを行う。なお、転送リスト４１１は、制御系アクセスにより使用するパスと転送アドレスおよびデータ長などを設定されたもので、プロセッサ部６により作成される。また、ディスク制御部５においても、ホストコンピュータ２の代わりにＨＤＤ３がチャネル制御回路４１に接続されるが、構造は同様である。
【００３９】
次に、図７を用いて、内部スイッチ部９Ａ，９Ｂの詳細構成について説明する。
【００４０】
各内部スイッチ９Ａ，９Ｂは、接続されるパスそれぞれに対して、受信Ｉ／Ｆ部１２１、送信Ｉ／Ｆ部１２２、アドレス解析部９４、競合解決部９３、セレクタ９５を持つ。受信Ｉ／Ｆ部１２１は、アドレス解析部９４に接続されている。また、送信Ｉ／Ｆ部１２２は、セレクタ９５に接続され、セレクタ９５は、セレクタ９５に対して指示を与える各アドレス解析部９４，９４に、データ信号線９１，９１を介して接続されている。競合解決部９３は、要求信号線９２及び許可信号線（図示せず）を介して、アドレス解析部９４と接続されている。以下に、受信Ｉ／Ｆ部１２１がパケットを受信し、受信したパケットを送信Ｉ／Ｆ部１２２に転送する流れを説明する。受信Ｉ／Ｆ部１２１が、パケットを受信すると、アドレス解析部９４は、受信Ｉ／Ｆ部１２１が受信したパケットの要求発行先アドレスまたは応答発行先アドレスを参照し、受信したパケットを転送すべきパスを決定する。さらにアドレス解析部９４は、転送すべきパスの送信Ｉ／Ｆ部１２２に接続されるセレクタ９５に指示を与える競合解決部９３に、要求信号線９２を介して転送の要求を行う。転送の要求を受けた競合解決部９３は、複数のアドレス解析部９４からの転送要求の状況を比較しラウンドロビンアルゴリズムなどに基づき、複数のアドレス解析部９４のうちの１つを決定する。そして、競合解決部９３は、決定した１つのアドレス解析部９４、つまりセレクタ９５に転送の許可を与えるアドレス解析部９４に対して、このセレクタ９５につながるデータ信号線９１を選択するように指示すると共に、許可信号線を介して転送の許可を通知する。転送の許可を受けたアドレス解析部９４は、データ信号線９１とセレクタ９５を経て、転送するべきパスに接続された送信Ｉ／Ｆ部１２２にパケットを転送する。
【００４１】
次に、図８を用いて、ストレージ制御装置１の内部で送受信されるパケットのデータ構成について説明する。なお、以下で説明するリード要求パケット、リード応答パケット、ライト要求パケット及びライト応答パケットのそれぞれは、データ系パケット及び制御系パケットの双方に存在する。そこで、これらを明確に区別するために、データ系パケットについては、データ系リード要求（リード応答、ライト要求、ライト応答）パケットと称し、制御系パケットについては、制御系リード要求（リード応答、ライト要求、ライト応答）パケットと称する。
【００４２】
同図（ａ）は、制御系及びデータ系リード要求パケット１４１のデータ構成を示している。制御系リード要求パケットは、例えば、プロセッサ部６のプロセッサ６１が共有メモリ部８の共有メモリ８１の内容を参照する際に発行される（図１１におけるＳ５）。この制御系リード要求パケットは、図３を用いて前述したプロセッサ部６において、プロセッサ６１からの指示に従って、パケット作成部６４１が作成する。また、データ系リード要求パケットは、例えば、チャネル制御部４がキャッシュメモリ部７の実データをリードする際に発行される（図１１におけるＳ１９）。このデータ系リード要求パケットは、図６を用いて前述したチャネル制御部４において、パケット作成部８３１が生成する。以上のリード要求パケット１４１は、このパケットがリード要求であることを示すパケット種別欄１３１と、リードしたいデータの長さを示すデータ長欄１３２と、後に返信されてくるリード応答パケットとの対応をとるためのシーケンスＩＤ欄１３３と、パケット発行元を示す要求発行元アドレス欄１３４と、パケットの送り先を示す要求発行先アドレス欄１３５を含む。
【００４３】
同図（ｂ）は、制御系及びデータ系リード応答パケット１４２のデータ構成を示している。制御系リード応答パケットは、例えば、プロセッサ部６から発行された制御系リード要求パケットを受け取った共有メモリ部８が、共有メモリ８１の内容を返信する際に発行される（図１１におけるＳ６）。また、データ系リード応答パケットは、例えば、チャネル制御部４からデータ系リード要求パケットを受け取ったキャッシュメモリ部７が、キャッシュメモリ７１内の実データを送信する際に発行される（図１１におけるＳ２０）。リード応答パケット１４２は、このパケットがリード応答であることを示すパケット種別欄１３１と、返信するデータの長さを示すデータ長欄１３２と、対応するリード要求パケット１４１と同じ内容のシーケンスＩＤ欄１３３と、パケット発行元を示す応答発行元アドレス欄１３６と、パケットの送り先を示す応答発行先アドレス欄１３７と、データ１３８と、メモリにおいて問題なく処理されたことやメモリによりエラー訂正がなされたなどの状態を示すステータス欄１３９を含む。応答発行先アドレス１３７は、対応するリード要求パケット１４１の要求発行元アドレス１３４と同じ内容になる。なお、制御系リード応答パケットは、図４を用いて前述した共有メモリ部８において、メモリコントローラ８２が共有メモリ８１から読み出すデータ１３８、及びこのデータ１３８と共にパケット作成部８３１に渡されるステータス１３９に基づいて、パケット作成部８３１によって作成される。また、データ系リード応答パケットは、図５を用いて前述したキャッシュメモリ部８において、メモリコントローラ７２がキャッシュメモリ７１から読み出す実データ１３８、及びこの実データ１３８と共にパケット作成部７３１に渡されるステータス１３９に基づいて、パケット作成部７３１によって作成される。
【００４４】
同図（ｃ）は、制御系及びデータ系ライト要求パケット１４３のデータ構成を示している。制御系ライト要求パケットは、例えば、プロセッサ部６がディスク制御部５のデータ転送を設定する場合などに発行され(図１４におけるＳ３８)、データ系ライト要求パケットは、例えば、チャネル制御部４がキャッシュメモリ部７に実データを書き込む場合などに発行される（図１４におけるＳ４９）。ライト要求パケット１４３は、このパケットがライト要求であることを示すパケット種別欄１３１と、リード要求パケット１４１と同様に、データ長欄１３２、シーケンスＩＤ欄１３３、要求発行元アドレス欄１３４と、要求発行先アドレス欄１３５を含み、さらに書き込むデータ１３８を持つ。
【００４５】
同図（ｄ）は、制御系及びデータ系ライト応答パケット１４４のデータ構成を示している。制御系ライト応答パケットは、例えば、制御系ライト要求パケットを受け取ったディスク制御部５が、正しく設定が終了したことを通知するために発行され（図１４におけるＳ３９）、データ系ライト応答パケットは、例えば、データ系ライト要求パケットを受け取ったキャッシュメモリ部７が、メモリライトが終了したことなどを通知するために発行される（図１４におけるＳ５０）。特に、高信頼性が要求されるストレージ制御装置１では、ライトアクセスであっても、正しく処理されたことを確認する必要がある。ライト応答パケット１４４は、このパケットがライト応答であることを示すパケット種別欄１３１と、データ長欄１３２、シーケンスＩＤ欄１３３、応答発行元アドレス欄１３６、応答発行先アドレス欄１３７と、ステータス欄１３９を含む。
【００４６】
次に、図９を用いて、以上で説明した各パケットにおけるパケット種別欄１３１の詳細構成について説明する。パケット種別欄１３１は、リード／ライトフィールド１３１１と、要求／応答フィールド１３１２と、使用パスフィールド１３１３とを有している。リード／ライトフィールド１３１１と、要求／応答フィールド１３１２とにより、そのパケットの種別が、リード要求、リード応答、ライト要求、ライト応答のいずれかであることを示している。また、使用パスフィールド１３１３は、２本のクラスタ間パス１１Ａ，１１Ｂのうちいずれを使用するかを示すデータが格納される。この使用パスフィールド１３１３のデータは、例えば、共通メモリ部９のパス選択部８３３で、受信したパケットの使用パスに応じて、送信するパケットの使用パスを決定する際に使用される。
【００４７】
次に、図１０（ａ）を用いて、共有メモリ部８やチャネル制御部４のパス選択部８３３に設けられているパス選択テーブル８３５について説明する。
【００４８】
このパス選択テーブル８３５は、受信した要求パケットの転送で使用されたパスのパス番号を記した制御系要求パケットパス番号欄８３５ａと、それに対する応答パケットを送信すべきパスのパス番号を記した制御系応答パケットパス番号欄８３５ｂとを持つ。制御系応答パケットパス番号欄８３５ｂは障害に対処するためなどから、プロセッサ６１により書き換えが可能である。しかし、正常状態においては、制御系要求パケットパス番号８３５ａと制御系応答パケットパス番号８３５ｂはそれぞれ異なるパス番号が設定されている。従って、例えば、共有メモリ部８やチャネル制御部４が、他のクラスタ１０Ｂからクラスタ間パス１１Ａで、要求パケットを受信した場合、正常状態では、クラスタ間パス１１Ｂを用いて、応答パケットを他のクラスタＢへ送信することになる。なお、同図では、例として、制御系要求パケットパス番号欄８３５ａのパス番号に対して、制御系応答パケットパス番号欄８３５ｂのパス番号を１つずらしてサイクリックに設定している。
【００４９】
次に、図１０（ｂ）を用いて、プロセッサ部６等のパス選択部６４３に設けられている設定レジスタ６４４について説明する。
【００５０】
プロセッサ部６の設定レジスタ６４４は、要求発行先欄６４４ａと要求パケット発行パス番号欄６４４ｂとを持つ。要求パケット発行パス番号欄６４４ｂは書き換え可能であり、プロセッサ６１が制御系パケット発行時やホストコンピュータ２からのＩ／Ｏ処理を開始した時、または定期的に行われるホストアクセス統計情報６３２の解析を行った場合などに、この欄は書き換えられる。
【００５１】
次に、図１１〜図１３を用いて、ホストコンピュータ２からリード要求を受け取った際のストレージ制御装置１の動作について説明する。なお、ここでは、リード要求を受けたクラスタ１０Ａとは異なるクラスタ１０Ｂに接続されているＨＤＤ３に該当データが存在し、このクラスタ１０Ｂのキャッシュメモリ部７にはホストコンピュータ２から要求されたデータがないものとする。
【００５２】
なお、本実施形態における制御系パケットの転送方法の概要は以下の通りになる。まず、制御系パケットを転送するクラスタ１０（以下、「転送元クラスタ１０」とする）は、自身がデータ系パケットの送信（ライト処理）又は受信（リード処理）を行っているか判断する。そして、ライト処理を行っている場合、転送元クラスタ１０は、そのライト処理に使用されるクラスタ間パス１１と異なるクラスタ間パス１１を用いて制御系パケットを他のクラスタ（以下、「転送先クラスタ１０」とする）へ転送する。また、リード処理を行っている場合、転送元クラスタ１０は、そのリード処理に使用されるクラスタ間パス１１と同じクラスタ間パス１１を用いて、制御系パケットを転送先クラスタ１０へ転送する。一方、制御系パケットを受け取った転送先クラスタ１０は、この制御系パケットの送信に使用されたクラスタ間パス１１とは異なるクラスタ間パスを用いて、この制御系パケットの応答である制御系応答パケットを、転送元クラスタ１０へ送信する。
【００５３】
なお、後述するように、転送元クラスタ１０は、自身がデータ１３８を含むデータ系パケットの送信（ライト処理）と受信(リード処理)とのうち、いずれを多くを処理しているかの傾向を把握して、この傾向に従って制御系パケットの転送に使用するパスを決定してもよい。
【００５４】
図１１に示すように、クラスタ１０Ａのチャネル制御部４は、ホストコンピュータ２からＩ／Ｏ（リード）要求を受信すると（Ｓ１）、このリード要求の受信をプロセッサ部６に通知するために、制御系ライト要求パケットをプロセッサ部６に送信し（Ｓ２）、この制御系ライト要求パケットに対する制御系ライト応答パケットを待つ（Ｓ３）。なお、このステップ３、更に、後述のステップ９，１４，１６，１８、図１４及び図１５中のステップ３３，３９，４４，４６，５２では、制御系応答パケットの受信を待たないで次の処理を行う場合もある。プロセッサ部６のパケット解析部６４２は、このＩ／Ｏ要求パケットを解析して、このＩ／Ｏ要求がリードであること、および対象データのアドレスとデータサイズを取得し、これをプロセッサ６１に渡す（Ｓ４）。
【００５５】
そして、プロセッサ６１は、図１７に示す処理を実行する。この処理では、ホストコンピュータ２からのＩ／Ｏ要求がリード要求であるかライト要求であるかを判断し（Ｓ５０）、リード要求であればデータ系パケットの転送パスと同じパスで制御系パケットを転送するよう、パス選択部６４３の設定レジスタ６４４を設定し（Ｓ５１）、ライト要求であればデータ系パケットの転送パスと異なるパスで制御系パケットを転送するよう、パス選択部６４３の設定レジスタ６４４を設定する（Ｓ５２）。この場合、Ｉ／Ｏ要求がリード要求であるため、パス選択部６４３の設定レジスタ６４４には、データ系パケットの転送パスと同じパスで制御系パケットを転送するよう、設定される。より、具体的には、データ系パケットの転送パスは、２つのクラスタ間パス１１Ａ，１１Ｂのうち、クラスタ間パス１１Ａに予め定めておく。したがって、ストレージ制御装置１がリード要求を受け取った後の制御系パケットの転送パスは、クラスタ間パス１１Ａとなる。例えば、ホストコンピュータ２からＩ／Ｏ要求を受けたクラスタ１０Ａの番号が「１」で、データ系パケットの転送パスがパス番号「０」のクラスタ間パス１１Ａに設定されている場合、図１０（ｂ）に示すように、このクラスタ番号「１」のクラスタ１０Ａから、クラスタ番号「０」のクラスタ１０Ｂに制御系パケットを転送する際には、制御用パケットの転送パスは、パス番号「０」のクラスタ間パス１１Ａになる。
【００５６】
さらに、プロセッサ部６は、他のクラスタ１０Ｂの構成情報や、このクラスタ１０Ｂのキャッシュメモリ部７のディレクトリ情報を取得すべく、このクラスタ１０Ｂの共有メモリ部８に対して制御系リード要求パケットを送信する（Ｓ５）。この際、プロセッサ部６のパケット作成部６４１は、プロセッサ６１からの指示で図８（ａ）に示す制御系リード要求パケット１４１を生成する。また、パス選択部６４３は、設定レジスタ６４４を参照して、このリード要求パケット１４１の転送に使用するクラスタ間パス１１Ａ，１１Ｂを決定する。この場合、図１０（ｂ）を用いて前述したように、設定レジスタ６４４には、転送先クラスタのクラスタ番号が「０」のときには、パス番号０、つまりクラスタ間パス１１Ａを使用するように設定されているので、パス選択部６４３は、クラスタ間パス１１Ａを使用するようにセレクタを設定する。この結果、制御系リード要求パケットは、クラスタ間パス１１Ａに接続されている送信Ｉ／Ｆ部１２２を介して、内部スイッチ部９Ａから、クラスタ間パス１１Ａ及び他のクラスタ１０Ｂの内部スイッチ９Ａを経て、他のクラスタ１０Ｂの共有メモリ部８へ転送される。
【００５７】
他のクラスタ１０Ｂの共有メモリ部８は、制御系リード要求パケットを受けて、構成情報やディレクトリ情報を含む制御系リード応答パケットを要求元クラスタ１０Ａのプロセッサ部６に返す（Ｓ６）。この際、他のクラスタ１０Ｂの共有メモリ部８のパケット解析部８３２は、制御系リード要求パケットを受けて、前述したように、このリード要求パケットを解析して、このパケット中に含まれている使用パスフィールド１３１３（図９）から、このリード要求パケットの受信で使用されたパスの番号を取得し、このパス番号をパス選択部８３３の要求パケットパス情報部８３６に書き込むと共に、要求パケットに記載された要求をメモリコントローラ８２に送付する。メモリコントローラ８２は、この要求を処理し、共有メモリ８１からの構成情報やディレクトリ情報等をパケット作成部８３１に送って、制御系応答パケットの作成を要求する。パケット作成部８３１は、メモリコントローラ８２からの要求に従って、メモリコントローラ８２からのデータ等を含む制御系応答パケットを作成する。それと共に、パス選択部８３３は、パス選択テーブル８３５を参照して、要求パケットパス情報部８３６に記載されたパス番号に対応するパスを選択する。この場合、図１０（ａ）に示すように、パス選択テーブル８３５には、制御系要求パケットのパス番号が「０」（クラスタ間パス１１Ａ）に対して、応答パケットパス番号が「１」（クラスタ間パス１１Ｂ）が設定されているので、パス選択部８３３は、クラスタ間パス１１Ｂを使用するようにセレクタを設定する。この結果、制御系リード応答パケットは、クラスタ間パス１１Ｂに接続されている送信Ｉ／Ｆ部１２２を介して、内部スイッチ部９Ｂから、クラスタ間パス１１Ｂ及び要求元クラスタ１０Ａの内部スイッチ９Ｂを経て、要求元クラスタ１０Ａのプロセッサ部６へ転送される。
【００５８】
要求元クラスタ１０Ａのプロセッサ６部は、他のクラスタ１０Ｂの共有メモリ部８から制御系リード応答パケットを受信すると（Ｓ６）、このリード応答パケットに含まれている構成情報やディレクトリ情報を参照し、ホストコンピュータ２に返すべきデータが他のクラスタ１０Ｂのキャッシュメモリ部７に存在するか判定する。ここでは前述したように、キャッシュメモリ部７に該当データが存在しないので、他のクラスタ１０Ｂのディスク制御部５にＨＤＤ３から該当データをキャッシュメモリ部７に転送させるために、転送リストを作成する。また、ここで、要求元のクラスタ１０Ａのチャネル制御部４に、他のクラスタ１０Ｂのキャッシュメモリ部７からホストコンピュータ２に転送させるための転送リストも作成しておく（Ｓ７）。そして、プロセッサ部６は、前述の転送リストのデータを含む制御系ライト要求パケットを、Ｉ／Ｏ要求の対象となるデータが存在するＨＤＤ３を制御するディスク制御部５に送付し（Ｓ８）、この応答を受信する（Ｓ９）。なお、プロセッサ部６から他のクラスタ１０Ｂに、転送リストを転送するクラスタ間パスとしては、ステップ５で制御系リード要求パケットの転送時に使用したクラスタ間パス１１Ａが使用され、他のクラスタ１０のディスク制御部５からの制御系応答パケットを転送するクラスタ間パスとしては、転送リストの転送時に使用したクラスタ間パス１１Ａとは異なるクラスタ間パス１１Ｂが使用される。
【００５９】
転送リストを受信した他のクラスタ１０Ｂのディスク制御部５は、転送リストに基づきＨＤＤ３を制御してデータをリードする（Ｓ１０）。さらに、ディスク制御部５は、このＨＤＤ３からのデータを転送リストに基づいたキャッシュメモリ部７のアドレス領域にライトし、つまりデータ系ライト要求パケットを送信し（Ｓ１１）、キャッシュメモリ部７からのデータ系ライト応答パケットを受信する（Ｓ１２）。ディスク制御部５は、この応答を受信すると、キャッシュメモリ部７にデータを格納したことを要求元クラスタ１０Ａのプロセッサ部６に通知すべく、制御系ライト要求パケットを送信し（Ｓ１３）、この応答を受信する（Ｓ１４）。
通知を受けた要求元クラスタ１０Ａのプロセッサ部６は、Ｓ７で作成した転送リストをチャネル制御部４に送付すると共に（Ｓ１５，Ｓ１６）、他のクラスタ１０Ｂのキャッシュメモリ部７にデータが格納されたので、他のクラスタ１０Ｂの共有メモリ部８のディレクトリ情報を更新する（Ｓ１７，Ｓ１８）。要求元のチャネル制御部４は、転送リストに基づき、他のクラスタ１０Ｂのキャッシュメモリ部７に該当データに関するデータ系リード要求パケットを送信する（Ｓ１９）。この際、要求元チャネル制御部４のパス選択部８３３は、このリード要求はデータ系アクセスであるため、設定レジスタ８３４を参照して、クラスタ間パス１１Ａを選択する。このため、Ｓ１９のデータ系リード要求パケットは、クラスタ間パス１１Ａを介して、他のクラスタ１０Ｂのキャッシュメモリ部７へ送られる。他のクラスタ１０Ｂのキャッシュメモリ部７は、このリード要求に対して、該当データを要求元チャネル制御部４へ転送する、つまり、データ系リード応答パケットを送信する（Ｓ２０）。この際、他のクラスタ１０Ｂのキャッシュメモリ部７では、パケット解析部７３２がデータ系リード要求パケットを解析して、このパケット中に含まれている使用パスフィールド１３１３（図９）からデータ系リード要求パケットの受信で使用されたパスの番号を取得し、このパス番号をパス選択部７３３の要求パケットパス情報部７３６に書き込むと共に、要求パケットに記載された要求をメモリコントローラ７２に送付する。メモリコントローラ７２は、この要求を処理し、キャッシュメモリ７１からの該当データをパケット作成部７３１に送って、リード応答パケットの作成を要求する。パケット作成部７３１は、メモリコントローラ７２からの要求に従って、メモリコントローラ７２からのデータ等を含むデータ系リード応答パケットを作成する。それと共に、パス選択部７３３は、要求パケットパス情報部７３６に記載されたパス番号と同じ番号のパスを選択する。つまり、データ系リード要求パケットのパス番号が「０」（クラスタ間パス１１Ａ）であるから、データ系リード応答パケットのパス番号も「０」となり、クラスタ間パス１１Ａを使用するようにセレクタが設定される。この結果、該当データを含むデータ系リード応答パケットは、クラスタ間パス１１Ａに接続されている送信Ｉ／Ｆ部１２２を介して、内部スイッチ部９Ａから、クラスタ間パス１１Ａ及び要求元のクラスタ１０Ａの内部スイッチ９Ａを経て、要求元クラスタ１０Ａのチャネル制御部４へ転送される。
【００６０】
他のクラスタ１０Ｂから、該当データを含むデータ系リード応答パケットを受信したチャネル制御部４は、この該当データをホストコンピュータ２に転送して、ホストコンピュータ２からのリード要求処理を終了する。
【００６１】
本実施形態では、図１３に示すように、クラスタ１０Ｂからクラスタ１０Ａへのデータ系リード応答パケットのパスとして、クラスタ間パス１１Ａを用いる場合（Ｓ２０）、クラスタ１０Ａからクラスタ１０Ｂの共有メモリ部８へ制御系リード要求パケットを送る場合（Ｓ５）には、データ系リード応答パケットが転送されるクラスタ間パス１１Ａが用いられ、クラスタ１０Ｂからクラスタ１０Ａへ制御系リード応答パケットを送る場合（Ｓ６）には、データ系リード応答パケットが転送されるクラスタ間パス１１Ａと異なるクラスタ間パス１１Ｂが用いられるので、データ系パケットと制御系パケットとがクラスタ間パス１１Ａ，１１Ｂで競合することがない。このため、仮に、クラスタ間パス１１Ａを用いて、クラスタ１０Ｂからクラスタ１０Ａへのデータ系リード応答パケットを転送している際中に、さらに、ホストコンピュータ２からリード要求を受け付けて、クラスタ１０Ａからクラスタ１０Ｂの共有メモリ部８へ制御系リード要求パケットを送っても（Ｓ５）、また、クラスタ１０Ｂからクラスタ１０Ａへ制御系リード応答パケットを送っても（Ｓ６）、これらの制御系パケットの転送が、先のリード要求によるデータ系リード応答パケットの転送（Ｓ２０）で、遅れてしまうことはない。
【００６２】
なお、以上では、他のクラスタ１０Ｂのディスク制御部５が読み出した実データを、他のクラスタ１０Ｂのキャッシュメモリ部７に一旦格納し（Ｓ１１，Ｓ１２）、このキャッシュメモリ部７に格納された実データを要求元クラスタ１０Ａのチャネル制御部４へ転送したが（Ｓ１９，Ｓ２０）、図１２に示すように、他のクラスタ１０Ｂのディスク制御部５が読み出した実データを、要求元クラスタ１０Ａのキャッシュメモリ部７に格納し（Ｓ１１ａ，Ｓ１２ａ）、このキャッシュメモリ部７に格納された実データを要求元クラスタ１０Ａのチャネル制御部４へ転送するようにしてもよい（Ｓ１９ａ，Ｓ２０ａ）。この場合、他のクラスタ１０Ｂのディスク制御部５が読み出した実データを、要求元クラスタ１０Ａのキャッシュメモリ部７に格納する際（Ｓ１１ａ）に使用するクラスタ間パスは、先の例と同様に、クラスタ間パス１１Ａであり、先の例と同様の効果を得ることができる。
【００６３】
また、以上の例で、他のクラスタ１０Ｂのキャッシュメモリ部７に該当データが存在する場合は、Ｓ８〜Ｓ１４ならびにＳ１７，Ｓ１８のアクセスは起こらない。
【００６４】
次に、図１４〜図１６を用いて、ホストコンピュータ２からライト要求を受け取った際のストレージ制御装置１の動作について説明する。なお、ここでは、ライト要求を受けたクラスタ１０Ａとは異なるクラスタ１０Ｂに接続されているＨＤＤ３に該当データを格納し、このクラスタ１０Ｂのキャッシュメモリ部７にはライト要求のデータを格納する空きがないものとする。
【００６５】
図１４に示すように、クラスタ１０Ａのチャネル制御部４は、ホストコンピュータ２からＩ／Ｏ（ライト）要求を受信すると（Ｓ３１）、ライト要求の受信を通知するために、制御系ライト要求パケットをプロセッサ部６に送信し（Ｓ３２）、その応答である制御系ライト応答パケットを待つ（Ｓ３３）。プロセッサ部６のパケット解析部６４２は、この制御系ライト要求パケットに含まれるＩ／Ｏ要求の内容を解析して、このＩ／Ｏ要求がライトであること、および対象データのアドレスとデータサイズを取得し、これをプロセッサ６１に渡す（Ｓ３４）。
【００６６】
そして、プロセッサ６１は、リード要求時と同様に、図１７に示す処理を実行する。この処理では、ホストコンピュータ２からのＩ／Ｏ要求がリード要求であるかライト要求であるかを判断し（Ｓ５０）、ここでは、Ｉ／Ｏ要求がライト要求であるので、データ系パケットの転送パスと異なるパスで制御系パケットを転送するよう、パス選択部６４３の設定レジスタ６４４を設定する（Ｓ５１）。この場合、データ系パケットの転送パスは、２つのクラスタ間パス１１Ａ，１１Ｂのうち、予めクラスタ間パス１１Ａに設定されているため、ライト要求時の制御系パケットの転送パスは、クラスタ間パス１１Ｂとなる。
【００６７】
さらに、プロセッサ６部は、他のクラスタ１０Ｂの構成情報や、このクラスタ１０Ｂのキャッシュメモリ部７のディレクトリ情報を取得すべく、このクラスタ１０Ｂの共有メモリ部８に対して制御系リード要求パケットを送信する（Ｓ３５）。この際、プロセッサ部６のパケット作成部６４１は、プロセッサ６１からの指示で図８（ａ）に示す制御系リード要求パケット１４３を作成する。また、パス選択部６４３は、設定レジスタ６４４を参照して、このリード要求パケット１４３の転送に使用するクラスタ間パス１１Ａ，１１Ｂを決定する。この場合、前述したように、設定レジスタ６４４には、制御系パケットの転送パスはクラスタ間パス１１Ｂが設定されているので、パス選択部６４３は、このクラスタ間パス１１Ｂを使用するようにセレクタを設定する。この結果、制御系リード要求パケットは、クラスタ間パス１１Ｂに接続されている送信Ｉ／Ｆ部１２２を介して、内部スイッチ部９Ｂから、クラスタ間パス１１Ｂ及び他のクラスタ１０Ｂの内部スイッチ９Ｂを経て、他のクラスタ１０Ｂの共有メモリ部８へ転送される。
【００６８】
他のクラスタ１０Ｂの共有メモリ部８は、制御系リード要求パケットを受けて（Ｓ３５）、構成情報やディレクトリ情報を含む制御系リード応答パケットを要求元クラスタ１０Ａのプロセッサ部６に返す（Ｓ３６）。この際、他のクラスタ１０Ｂの共有メモリ部８のパケット解析部８３２は、このリード要求パケットを受けて、前述したように、リード要求パケットを解析して、このパケット中に含まれている使用パスフィールド１３１３（図９）から、このリード要求パケットの受信で使用されたパスの番号を取得し、このパス番号をパス選択部８３３の要求パケットパス情報部８３６に書き込むと共に、要求パケットに記載された要求をメモリコントローラ８２に送付する。メモリコントローラ８２は、この要求を処理し、共有メモリ８１からの構成情報やディレクトリ情報等をパケット作成部８３１に送って、リード応答パケットの作成を要求する。パケット作成部８３１は、メモリコントローラ８２からの要求に従って、メモリコントローラ８２からのデータ等を含む制御系リード応答パケットを作成する。それと共に、パス選択部８３３は、パス選択テーブル８３５を参照して、要求パケットパス情報部８３６に記載されたパス番号に対応するパスを選択する。この場合、パス選択テーブル８３５には、要求パケットの受信で使用されたパスのパス番号に対して、送信する応答パケットで使用されるパスのパス番号が異なる番号に設定されているので、パス選択部８３３は、クラスタ間パス１１Ａを使用するようにセレクタを設定する。この結果、制御系リード応答パケットは、クラスタ間パス１１Ａに接続されている送信Ｉ／Ｆ部１２２を介して、内部スイッチ部９Ａから、クラスタ間パス１１Ａ及び要求元クラスタ１０Ａの内部スイッチ９Ａを経て、要求元クラスタ１０Ａのプロセッサ部６へ転送される。
【００６９】
要求元クラスタ１０Ａのプロセッサ６部は、他のクラスタ１０Ｂの共有メモリ部８から制御系リード応答パケットを受信すると（Ｓ３６）、このリード応答パケットに含まれている構成情報やディレクトリ情報を参照し、ホストコンピュータ２から要求されたデータを格納すべき領域が他のクラスタ１０Ｂのキャッシュメモリ部７に存在するか判定する。ここでは前述したように、キャッシュメモリ部７に該当データを格納する領域が存在しないので、キャッシュメモリ部７に格納されているデータの一部をＨＤＤ３に格納し、キャッシュメモリ部７のキャッシュメモリ７１に空き領域を作る。このため、要求元のプロセッサ部６のプロセッサ６１は、他のクラスタ１０Ｂのディスク制御部５に、キャッシュメモリ部７からＨＤＤ３にデータを転送させるために、転送リストを作成する。また、ここでは、要求元のチャネル制御部４から他のクラスタ１０Ｂのキャッシュメモリ部７にデータを転送させるための転送リストも作成しておく（Ｓ３７）。要求元のプロセッサ部６は、前述の転送リストを、空き領域となる領域に存在しているデータを格納するＨＤＤ３のディスク制御部５に送付する（Ｓ３８，Ｓ３９）。転送リストを受信したディスク制御部５は、転送リストに基づきキャッシュメモリ部７から該当データをリードし、つまりキャッシュメモリ部７へデータ系リード要求パケットを送信して（Ｓ４０）、キャッシュメモリ部７からデータ系リード応答パケットを受信し（Ｓ４１）、そのパケットに含まれているデータをＨＤＤ３に格納する（Ｓ４２）。データの格納が終了すると、ディスク制御部５は、ＨＤＤ３にデータを格納したことを要求元のプロセッサ部６に通知する（Ｓ４３，Ｓ４４）。通知を受けたプロセッサ部６は、Ｓ３７で作成した転送リストをチャネル制御部４に送付する（Ｓ４５，Ｓ４６）。チャネル制御部４は、データを受信する準備ができたことをホストコンピュータ２に通知し（Ｓ４７）、それに応じてホストコンピュータ２は、ライトデータを転送してくる（Ｓ４８）。ライトデータを受信したチャネル制御部４は、転送リストに基づき、ホストコンピュータ２から受信したライトデータを他のクラスタ１０Ｂのキャッシュメモリ部７にライトする、つまりキャッシュメモリ部７へデータ系ライト要求パケットを送信し（Ｓ４９）、キャッシュメモリ部７からデータ系ライト応答パケットを受信する（Ｓ５０）。この際、チャネル制御部４のパス選択部８３３は、設定レジスタ８４３に設定されているパス番号に基づいて、ライト要求パケットを送るクラスタ間パスを決定する。この場合、設定レジスタ８４３には、他のクラスタ１０Ｂにデータ系パケットを送る際の使用パスとして、クラスタ間パスＡが予め設定されているので、パス選択部８３３は、クラスタ間パス１１Ａを使用するようにセレクタを設定する。この結果、データ系ライト要求パケットは、クラスタ間パス１１Ａに接続されている送信Ｉ／Ｆ部１２２を介して、内部スイッチ部９Ａから、クラスタ間パス１１Ａ及び他のクラスタ１０Ｂの内部スイッチ９Ａを経て、他のクラスタ１０Ｂのキャッシュメモリ部７へ転送される。また、要求元のプロセッサ部６は、他のクラスタ１０Ｂのキャッシュメモリ部７にデータが格納されたので、他のクラスタ１０Ｂの共有メモリ部８のディレクトリ情報を更新し（Ｓ５１，Ｓ５２）、ホストコンピュータ２からのライト要求処理を終了する。なお、他のクラスタ１０Ｂでは、その後、キャッシュメモリ部７に格納されたライトデータをＨＤＤ３に格納する。
【００７０】
本実施形態では、図１６に示すように、クラスタ１０Ａからクラスタ１０Ｂへのデータ系ライト要求パケットのパスとして、クラスタ間パス１１Ａを用いる場合（Ｓ４９）、クラスタ１０Ａからクラスタ１０Ｂの共有メモリ部８へ制御系リード要求パケットを送る場合（Ｓ３５）には、データ系ライト要求パケットが転送されるクラスタ間パス１１Ａとは異なるクラスタ間パス１１Ｂが用いられ、クラスタＢからクラスタＡへ制御系リード応答パケットを送る場合（Ｓ３６）には、データ系ライト要求パケットが転送されるクラスタ間パス１１Ａが用いられるので、データ系パケットと制御系パケットとがクラスタ間パス１１Ａ，１１Ｂで競合することがない。このため、仮に、クラスタ間パス１１Ａを用いて、クラスタ１０Ａからクラスタ１０Ｂへのデータ系ライト要求パケットを転送している際中に、さらに、ホストコンピュータ２からライト要求を受け付けて、クラスタ１０Ａからクラスタ１０Ｂの共有メモリ部８へ制御系リード要求パケットを送っても（Ｓ３５）、また、クラスタ１０Ｂからクラスタ１０Ａへ制御系リード応答パケットを送っても（Ｓ３６）、これらの制御系パケットの転送が、先のライト要求によるデータ系ライト要求パケットの転送（Ｓ２０）で、遅れてしまうことはない。
【００７１】
なお、以上では、他のクラスタ１０Ｂのキャッシュメモリ部７からＨＤＤ３へ実データを格納した後（Ｓ４０，Ｓ４１）、要求元のチャネル制御部４から他のクラスタ１０Ｂのキャッシュメモリ部７へライトデータを転送したが（Ｓ４９，Ｓ５０）、図１５に示すように、要求元のキャッシュメモリ部７から他のクラスタ１０ＢのＨＤＤ３に実データを格納した後（Ｓ４０ａ，Ｓ４１ａ）、要求元のチャネル制御部４から同じく要求元のキャッシュメモリ部７へライトデータを格納するようにしてもよい（Ｓ４９ａ，Ｓ５０ａ）。この場合、要求元のキャッシュメモリ部７から他のクラスタ１０ＢのＨＤＤ３に実データを格納する際（ＳＳ４１ａ）に使用するクラスタ間パスは、先の例と同様に、クラスタ間パス１１Ａであり、先の例と同様の効果を得ることができる。
【００７２】
また、以上の例で、他のクラスタ１０Ｂのキャッシュメモリ部７に空き領域が存在する場合は、Ｓ３８〜Ｓ４４のアクセスは起こらない。
【００７３】
以上は、ホストコンピュータ２からＩ／Ｏ要求を受信する毎に、このＩ／Ｏ要求がリード要求であるかライト要求であるかを判断し、このＩ／Ｏ要求の内容に応じて、制御系パケットの転送に使用するクラスタ間パスを定めているが、必ずしも、Ｉ／Ｏ要求を受信する毎に、このＩ／Ｏ要求の内容に応じて、制御系パケットの転送に使用するクラスタ間パスを改めて定める必要はない。
【００７４】
例えば、ホストコンピュータ２からのＩ／Ｏ要求の傾向が、リード要求又はライト要求に偏った場合には、この傾向に応じて、制御系パケットの転送に使用するクラスタ間パスを定めるようにしてもよい。
【００７５】
具体的には、プロセッサ部６のプロセッサ６１が、ホストコンピュータ２からのＩ／Ｏ要求をチャネル制御部４を介して受信するとメインメモリ６３のホストアクセス統計情報６３２に、リード要求又はライト要求が１回あったことを格納すると共に、図１８に示す処理を実行する。この処理で、プロセッサ６１は、メインメモリ６３のホストアクセス統計情報６３２を参照して、ホストＩ／Ｏの回数が予め定めた回数、例えば、１００回を超えたか否かを判断する（Ｓ６１）。予め定められた回数を超えていなければ、前述の図１７に示すＳ５０の処理に移行し、予め定められた回数を超えていれば、再び、ホストアクセス統計情報６３２を参照して、今までの全Ｉ／Ｏ要求のうちリード要求が７０％を超えているか又はライト要求が７０％を超えているか、つまり、今までのＩ／Ｏ要求の傾向として、リード要求に偏っているか又はライト要求に偏っているかを判断する（Ｓ６２）。リード要求もライト要求も７０％を超えていなければ、図１７のＳ５０の処理に移行し、リード要求が７０％を超えていれば、データ系パケットの転送パスと同じパスで制御系パケットを転送するよう、パス選択部６４３の設定レジスタ６４４を設定する（Ｓ６３）。また、ライト要求が７０％を超えていれば、データ系パケットの転送パスと異なるパスで制御系パケットを転送するよう、パス選択部６４３の設定レジスタ６４４を設定する（Ｓ６４）。
【００７６】
すなわち、以上の処理では、Ｉ／Ｏ要求がリード要求に偏っている場合には、実際に、ホストコンピュータ２から受信したＩ／Ｏ要求がリード要求であるかライト要求であるかに関係なく、図１７において、リード要求を受信したときと同じ処理を行い、Ｉ／Ｏ要求がライト要求に偏っている場合には、実際に、ホストコンピュータ２から受信したＩ／Ｏ要求がリード要求であるかライト要求であるかに関係なく、図１７において、ライト要求を受信したときと同じ処理を行う。
【００７７】
例えば、Ｉ／Ｏ要求がリード要求に偏っている場合、データ系パケットの転送パスと同じパスで制御系パケットを転送するよう設定レジスタ６４４が設定されるので、リード要求を受けた直後に、ライト要求を受けた場合、データ系リード応答パケットを転送するパスと、制御系応答パケットを転送するパスとが競合してしまうが、最初にリード要求を受けてから、このリード要求の処理が終了するまでに、多くのリード要求を受けた場合には、全体として、データ系パケットと制御系パケットとの競合が少なくなる。従って、このように、Ｉ／Ｏ要求の傾向に基づいて、制御系パケットの転送パスを定めることで、データ系パケットと制御系パケットとの競合が一時生じることがあるものの、全体として両パケットの競合を少なくすることができる。
【００７８】
次に、２本のクラスタ間パス１１Ａ，１１Ｂのうち、いずれかに障害が発生した場合の処理について、図１９に示すフローチャートに従って説明する。
【００７９】
２本のクラスタ間パス１１Ａ，１１Ｂのうち、いずれかに障害が発生した場合、プロセッサ部６のプロセッサ６１は、例えば、要求パケットに対する応答パケットの返答がある期間以上ない場合には、応答パケットが送られてくるはずのクラスタ間パスに障害が発生したことを検知する（Ｓ７１）。なお、正常時において、応答パケットが送られるクラスタ間パスは、要求パケットを送るクラスタ間パスと異なるクラスタ間パスであるから、プロセッサ６１は、要求パケットを送るクラスタ間パスを認識している関係で、その応答パケットが送られてくるクラスタ間パスも認識している。
【００８０】
プロセッサ６１は、いずれかのクラスタ間パスに障害が発生したことを検知すると、パス選択部６４３の設定レジスタ６４４を、障害が発生したクラスタ間パスを使用しないように設定する（Ｓ７２）。次に、各チャネル制御部４、ディスク制御部５、共有メモリ部８のパス選択テーブル８３５の、制御系応答パケットパス番号欄８３５ｂ（図１０（ａ）に示す）に障害が発生したパス番号がなくなるように更新する。例えば、該当する欄に対しては、対応する制御系要求パケットパス番号８３５ａと同じに更新する（Ｓ７３）。そして、全ての部位の更新が完了するまでＳ７３，７４の処理を繰り返す。
【００８１】
以上のように、本実施形態では、クラスタ間パスの数量が少なくても、クラスタ間パスを有効に利用することにより、データ系アクセスのスループット性能の向上及び制御系アクセスのレスポンス性能の向上の両立を図ることができる。しかも、いずれかのクラスタ間パスに障害が発生しても、クラスタ間でパケット送信が保証されているので、信頼性も確保することができる。
【００８２】
なお、以上の実施形態では、２つのクラスタ１０Ａ，１０Ｂを備えているストレージ制御装置１を例にしたが、３以上のクラスタを備えている場合であっても、本発明を適用できることは言うまでもない。この場合も、図２０（ａ）に示すように、各クラスタ１０Ａ,１０Ｂ，１０Ｃ相互間で２本のクラスタ間パス１１Ａ，１１Ｂを設けるようにする。また、例えば、同図（ｂ）に示すように、中継装置Ｘを設け、この中継装置Ｘに対して、各クラスタから２本のクラスタ間パス１１Ａ，１１Ｂを接続するようにしてもよい。なお、同図（ａ）の内部スイッチ部９Ａ，９Ｂや同図（ｂ）の中継装置Ｘでは、クラスタ間パス１１Ａが２本以上、クラスタ間パス１１Ｂが２本以上接続されるので、これら内部スイッチ９Ａ，９Ｂ又は中継装置Ｘでは、パケット内の使用パスフィールド１３１３（図９に示す）を参照して、何番のクラス間パスを用いるべきか判断する必要がある。
【図面の簡単な説明】
【００８３】
【図１】本発明に係る一実施形態におけるストレージシステムの構成を示すブロック図である。
【図２】本発明に係る一実施形態におけるパスの構成を示す説明図である。
【図３】本発明に係る一実施形態におけるプロセッサ部の構成を示すブロック図である。
【図４】本発明に係る一実施形態における共有メモリ部の構成を示すブロック図である。
【図５】本発明に係る一実施形態におけるキャッシュメモリ部の構成を示すブロック図である。
【図６】本発明に係る一実施形態におけるチャネル制御部の構成を示すブロック図である。
【図７】本発明に係る一実施形態における内部スイッチ部の構成を示すブロック図である。
【図８】本発明に係る一実施形態における内部ネットワーク内で送受信されるパケットのデータ構成を示す説明図で、同図（ａ）はリード要求パケットのデータ構成を示し、同図（ｂ）はリード応答パケットのデータ構成を示し、同図（ｃ）はライト要求パケットのデータ構成を示し、同図（ｄ）はライト応答パケットのデータ構成を示している。
【図９】図８におけるパケット種別欄の詳細構成を示す説明図である。
【図１０】本発明に係る一実施形態におけるテーブル等の構成を示す説明図で、同図（ａ）はパス選択テーブルの構成を示し、同図（ｂ）は設定レジスタの構成を示している。
【図１１】本発明に係る一実施形態におけるストレージ制御装置のリード要求を受信した際の動作を示すシーケンス図である。
【図１２】本発明に係る一実施形態におけるストレージ制御装置のリード要求を受信した際の他の動作を示すシーケンス図である。
【図１３】本発明に係る一実施形態のリード要求受信時における各種パケットの利用クラスタ間パスを示す説明図である。
【図１４】本発明に係る一実施形態におけるストレージ制御装置のライト要求を受信した際の動作を示すシーケンス図である。
【図１５】本発明に係る一実施形態におけるストレージ制御装置のライト要求を受信した際の他の動作を示すシーケンス図である。
【図１６】本発明に係る一実施形態のライト要求受信時における各種パケットの利用クラスタ間パスを示す説明図である。
【図１７】本発明に係る一実施形態における設定レジスタの設定手順を示すフローチャートである。
【図１８】本発明に係る一実施形態における設定レジスタの設定手順を示す他のフローチャートである。
【図１９】本発明に係る一実施形態におけるパスに障害が発生したときのプロセッサの処理を示すフローチャートである。
【図２０】本発明に係る他の実施形態におけるクラスタ相互間の接続形態を示す説明図で、同図（ａ）はクラスタ相互間をクラスタ間パスでのみ接続する形態を示し、同図（ｂ）はクラスタ相互間をクラスタ間パス及び中継装置で接続する形態を示している。
【符号の説明】
【００８４】
１：ストレージ制御装置、２：ホストコンピュータ、３：ハードディスクドライブ、４：チャネル制御部、５：ディスク制御部、６：プロセッサ部、７：キャッシュメモリ部、８：共有メモリ部、９：内部スイッチ部、１０Ａ，１０Ｂ，１０Ｃ：クラスタ，１１Ａ，１１Ｂ：クラスタ間パス、４１：チャネル制御回路、６１：プロセッサ、６２：周辺回路部、６３：メインメモリ、６４,７３,８３：内部ネットワークＩ／Ｆ部、７１：キャッシュメモリ、７２，８２：メモリコントローラ、８１：メモリモジュール、１２０：物理信号線、１２１：受信Ｉ／Ｆ部、１２２：送信Ｉ／Ｆ部、１２３：受信通知信号、６３１：制御プログラム、６３２：ホストアクセス統計情報、６４１,７３１,８３１：パケット作成部、６４２,７３２,８３２：パケット解析部、６４３,７３３,８３３：パス選択部、６４４，８３４：設定レジスタ、７３６,８３６：要求パケットパス情報、８３５：パス選択テーブル。
【図１】
2006018689.tif 000003
【図２】
2006018689.tif 000004
【図３】
2006018689.tif 000005
【図４】
2006018689.tif 000006
【図５】
2006018689.tif 000007
【図６】
2006018689.tif 000008
【図７】
2006018689.tif 000009
【図８】
2006018689.tif 000010
【図９】
2006018689.tif 000011
【図１０】
2006018689.tif 000012
【図１１】
2006018689.tif 000013
【図１２】
2006018689.tif 000014
【図１３】
2006018689.tif 000015
【図１４】
2006018689.tif 000016
【図１５】
2006018689.tif 000017
【図１６】
2006018689.tif 000018
【図１７】
2006018689.tif 000019
【図１８】
2006018689.tif 000020
【図１９】
2006018689.tif 000021
【図２０】
2006018689.tif 000022