(57)【要約】【課題】迂回通信の効率化を図る。【解決手段】ストレージシステム１は、ストレージ装置１ａと、通信経路ｒ１、・・・、ｒ６で接続され、装置間で通信を行ってストレージ装置１ａの制御を行うストレージ制御装置１０−１、・・・、１０−４を備える。ストレージ制御装置１０−１、・・・、１０−４はそれぞれ、制御部１０ａ−１、・・・、１０ａ−４および記憶部ｍ１、・・・、ｍ４を含む。制御部１０ａ−１、・・・、１０ａ−４は、通信経路の閉塞状態の検出にもとづいて経路閉塞情報を生成し、経路閉塞情報にもとづいて通信先となるストレージ制御装置毎に設定した迂回経路情報を生成する。そして、制御部１０ａ−１、・・・、１０ａ−４は、経路閉塞情報と迂回経路情報とを記憶部ｍ１、・・・、ｍ４に格納し、他ストレージ制御装置への通信を行うとき迂回経路情報にもとづいて選択した迂回経路で迂回通信を行う。【選択図】図１
2019075032.tif 000002
【特許請求の範囲】
【請求項１】
ストレージ装置と、
前記ストレージ装置を制御対象とする複数のストレージ制御装置と、
前記複数のストレージ制御装置間を接続する通信経路と、
を含むストレージシステムであって、
前記ストレージ制御装置は、
前記通信経路の閉塞状態の検出にもとづいて経路閉塞情報を生成し、前記経路閉塞情報にもとづいて通信先となる前記ストレージ制御装置毎に設定した迂回経路情報を生成して、前記経路閉塞情報と前記迂回経路情報とを記憶部に格納し、他ストレージ制御装置への通信を行うとき前記迂回経路情報にもとづいて選択した迂回経路で迂回通信を行う制御部、
を有するストレージシステム。
【請求項２】
前記制御部は、記憶している前記経路閉塞情報を更新した場合、開通している前記通信経路を経由して更新後の前記経路閉塞情報を他ストレージ制御装置へ送信し、前記他ストレージ制御装置は、送信された前記経路閉塞情報を受信して、前記他ストレージ制御装置が記憶している前記経路閉塞情報を更新する請求項１記載のストレージシステム。
【請求項３】
前記制御部は、前記経路閉塞情報の更新に応じて前記迂回経路情報を更新し、前記迂回経路情報に複数の迂回先が存在する場合、優先度を前記迂回先に設定する請求項２記載のストレージシステム。
【請求項４】
前記制御部は、前記迂回通信を実行する際に、通信プロトコルのデータ乗換え処理を不要とする前記迂回先には、前記データ乗換え処理を要する前記迂回先よりも前記優先度を高く設定する請求項３記載のストレージシステム。
【請求項５】
前記制御部は、前記迂回通信を実行する際に、通信プロトコルのデータ乗換え処理の回数が少ない前記迂回先ほど前記優先度を高く設定する請求項３記載のストレージシステム。
【請求項６】
前記制御部は、通信制約を検出して通信制約情報を生成し、記憶している前記通信制約情報を更新した場合、開通している前記通信経路を経由して更新後の前記通信制約情報を他ストレージ制御装置へ送信し、前記他ストレージ制御装置は、送信された前記通信制約情報を受信して、前記他ストレージ制御装置が記憶している前記通信制約情報を更新する請求項１記載のストレージシステム。
【請求項７】
ストレージ装置を制御対象とするストレージ制御装置において、
記憶部と、
通信経路の閉塞状態の検出にもとづいて経路閉塞情報を生成し、前記経路閉塞情報にもとづいて通信先となる前記ストレージ制御装置毎に設定した迂回経路情報を生成して、前記経路閉塞情報と前記迂回経路情報とを前記記憶部に格納し、他ストレージ制御装置への通信を行うとき前記迂回経路情報にもとづいて選択した迂回経路で迂回通信を行う制御部と、
を有するストレージ制御装置。
【請求項８】
コンピュータに、
通信経路の閉塞状態の検出にもとづいて経路閉塞情報を生成し、
前記経路閉塞情報にもとづいて通信先となる装置毎に設定した迂回経路情報を生成し、
前記経路閉塞情報と前記迂回経路情報とをメモリに格納し、
他装置への通信を行うとき前記迂回経路情報にもとづいて選択した迂回経路で迂回通信を行う、
処理を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージシステム、ストレージ制御装置およびプログラムに関する。
【背景技術】
【０００２】
ストレージシステムは、ＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）等の記憶装置と、記憶装置を制御するためのサーバとを有して、情報処理で扱う大量のデータを記録管理する。また、サーバは、通常、２台以上のノードを含む装置で冗長構成が組まれている。
【０００３】
一方、システム性能を向上させる場合、近年では、ハードウェアを高性能にするスケールアップよりも、ハードウェアの数を増やして処理能力を上げるスケールアウトが主流になっている。このため、スケールアウトによるシステム拡張に伴い、システムの冗長構成が増加している。
【０００４】
多ノード構成でスケールアウト設計されたサーバでは、障害等の発生によりノード間の通信経路が閉塞した場合、迂回経路を介して迂回通信が行われることで、システム運用を継続することができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平０９−２５２３３１号公報
【特許文献２】特開平０５−００３４７５号公報
【特許文献３】特開２００６−３３３４８６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
迂回通信が行われる場合、通信経路の閉塞を検出したノードが、他ノードに対してノード間のルーティング情報を参照しに行き、ルーティング情報にもとづいて迂回経路の探索を起動する。しかし、このような制御では、迂回経路の設定までに時間を要し、また処理負荷も増えるため、効率のよい迂回通信を行うことが難しい。
【０００７】
１つの側面では、本発明は、迂回通信の効率化を図ったストレージシステム、ストレージ制御装置およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、ストレージシステムが提供される。ストレージシステムは、ストレージ装置と、ストレージ装置を制御対象とする複数のストレージ制御装置と、複数のストレージ制御装置間を接続する通信経路とを含む。ストレージ制御装置は、制御部を有する。制御部は、通信経路の閉塞状態の検出にもとづいて経路閉塞情報を生成し、経路閉塞情報にもとづいて通信先となるストレージ制御装置毎に設定した迂回経路情報を生成して、経路閉塞情報と迂回経路情報とを記憶部に格納し、他ストレージ制御装置への通信を行うとき迂回経路情報にもとづいて選択した迂回経路で迂回通信を行う。
【０００９】
また、上記課題を解決するために、上記ストレージシステムに含まれるストレージ制御装置が提供される。
さらに、上記課題を解決するために、コンピュータに上記ストレージ制御装置と同様の制御を実行させるプログラムが提供される。
【発明の効果】
【００１０】
１側面によれば、迂回通信の効率化を図ることが可能になる。
【図面の簡単な説明】
【００１１】
【図１】ストレージシステムの構成の一例を示す図である。
【図２】ストレージシステムの構成の一例を示す図である。
【図３】ストレージシステムの構成の一例を示す図である。
【図４】ノードの内部構成の一例を示す図である。
【図５】ＤＭＡ転送の一例を示す図である。
【図６】迂回通信によるＤＭＡ転送の一例を示す図である。
【図７】迂回通信の実行が不可となる状態の一例を示す図である。
【図８】迂回通信時に特定ノードに負荷が集中する状態の一例を示す図である。
【図９】ノードのハードウェア構成の一例を示す図である。
【図１０】ノードの機能ブロックの一例を示す図である。
【図１１】閉塞経路の発生から迂回通信が実行されるまでの動作を示すフローチャートである。
【図１２】監視情報のテーブル構成の一例を示す図である。
【図１３】各ノードにおける閉塞経路の管理の一例を示す図である。
【図１４】各ノードにおけるＨＢＡ故障情報の管理の一例を示す図である。
【図１５】迂回リストの一例を示す図である。
【図１６】監視情報の検出および他ノードへの監視情報の送信の一例を説明するための図である。
【図１７】監視情報の受信処理の動作を示すフローチャートである。
【図１８】迂回リストの更新処理の動作を示すフローチャートである。
【図１９】迂回通信処理の動作を示すフローチャートである。
【図２０】迂回通信の動作の一例を説明するための図である。
【図２１】迂回通信の動作の一例を説明するための図である。
【発明を実施するための形態】
【００１２】
以下、本実施の形態について図面を参照して説明する。
［第１の実施の形態］
第１の実施の形態について図１を用いて説明する。図１はストレージシステムの構成の一例を示す図である。ストレージシステム１は、ストレージ装置１ａと、サーバ装置１ｂを備える。
【００１３】
ストレージ装置１ａは、ＨＤＤ、ＳＳＤ等の記憶媒体１ａ−１、・・・、１ａ−ｎを含む。サーバ装置１ｂは、サーバ１ｂ−１、１ｂ−２を含む。サーバ１ｂ−１は、ストレージ制御装置１０−１、１０−２を含み、サーバ１ｂ−２は、ストレージ制御装置１０−３、１０−４を含む。
【００１４】
ストレージ制御装置１０−１、・・・、１０−４は、通信経路ｒ１、・・・、ｒ６で接続され、通信経路ｒ１、・・・、ｒ６を介して装置間で通信を行い、ストレージ装置１ａに対するＩＯ制御等を行う。
【００１５】
なお、ストレージ制御装置１０−１、１０−３は通信経路ｒ１で接続され、ストレージ制御装置１０−１、１０−４は通信経路ｒ２で接続される。また、ストレージ制御装置１０−２、１０−３は通信経路ｒ３で接続され、ストレージ制御装置１０−２、１０−４は通信経路ｒ４で接続される。
【００１６】
さらに、ストレージ制御装置１０−１、１０−２は通信経路ｒ５で接続され、ストレージ制御装置１０−３、１０−４は通信経路ｒ６で接続される。ストレージ制御装置１０−１、・・・、１０−４は、ストレージ装置１ａを制御対象とし、制御部１０ａ−１、・・・、１０ａ−４および記憶部ｍ１、・・・、ｍ４をそれぞれ含む。
【００１７】
制御部１０ａ−１、・・・、１０ａ−４は、通信経路の閉塞状態の検出にもとづいて経路閉塞情報を生成し、経路閉塞情報にもとづいて通信先となるストレージ制御装置毎に設定した迂回経路情報を生成する。そして、制御部１０ａ−１、・・・、１０ａ−４は、経路閉塞情報と迂回経路情報とを記憶部ｍ１、・・・、ｍ４に格納し、他ストレージ制御装置への通信を行うとき迂回経路情報にもとづいて選択した迂回経路で迂回通信を行う。
【００１８】
図１に示す例を用いて動作について説明する。
〔ステップＳ１〕通信経路ｒ１が閉塞したとする。ストレージ制御装置１０−１内の制御部１０ａ−１は、通信経路ｒ１の閉塞状態を検出する。
【００１９】
〔ステップＳ２〕制御部１０ａ−１は、通信経路ｒ１が閉塞状態である旨の経路閉塞情報ｋ１を生成する。なお、経路閉塞情報ｋ１は、開通している通信経路を介して、ストレージ制御装置１０−２、１０−３、１０−４へ伝搬されて、各装置で共有化される。
【００２０】
〔ステップＳ３〕制御部１０ａ−１は、経路閉塞情報ｋ１にもとづいて、宛先毎に迂回先を設定した迂回リストｋ２（迂回経路情報）を生成する。迂回リストｋ２は、「宛先」と「迂回先」の項目を有し、例えば、「宛先」がストレージ制御装置１０−３の場合、「迂回先」にストレージ制御装置１０−２、１０−４が設定される。
【００２１】
〔ステップＳ４〕制御部１０ａ−１は、迂回リストｋ２を用いて迂回先を選択して迂回通信を行う。なお、「迂回先」には優先度が設定され、この例では、「迂回先（優先）」がストレージ制御装置１０−４になっており、「迂回先（予備）」がストレージ制御装置１０−２になっている。
【００２２】
したがって、制御部１０ａ−１は、迂回先としてストレージ制御装置１０−４を優先的に選択し、通信経路ｒ２を介して、ストレージ制御装置１０−４に向けて所定データを迂回通信する。ストレージ制御装置１０−４は、ストレージ制御装置１０−１から送信された所定データを受信すると、通信経路ｒ６を介して、ストレージ制御装置１０−３へ所定データを送信する。
【００２３】
このように、ストレージシステム１は、ストレージ制御装置間の通信経路の閉塞状態を検出して経路閉塞情報を生成し、経路閉塞情報にもとづいて、宛先毎に迂回先を設定した迂回リストを生成し、迂回リストを用いて迂回先を選択して迂回通信を行う。
【００２４】
これにより、ストレージシステム１は、通信経路の閉塞時、他装置に対して装置間のルーティング情報を参照しに行き、ルーティング情報にもとづき迂回経路の探索を起動するといった流れの制御が不要になる。このため、ストレージシステム１は、迂回経路の設定時間の短縮や処理負荷を軽減でき、迂回通信の効率化を図ることが可能になる。
【００２５】
［第２の実施の形態］
次に第２の実施の形態について説明する。まず、システム構成について説明する。なお、以降の説明ではストレージ制御装置をノードとも表記する。
【００２６】
図２、図３はストレージシステムの構成の一例を示す図である。図２において、ストレージシステム１−１は、ストレージ装置２ａ、サーバ２ａ−１、２ａ−２を備える。サーバ２ａ−１は、ノードｎ１、ｎ２を含み、サーバ２ａ−２は、ノードｎ３、ｎ４を含む。
【００２７】
ノードｎ１は、通信経路ｒ１を介してノードｎ３と接続し、通信経路ｒ２を介してノードｎ４と接続する。そして、ノードｎ１、ｎ３間およびノードｎ１、ｎ４間でＩｎｆｉｎｉＢａｎｄによる通信が行われる。
【００２８】
また、ノードｎ２は、通信経路ｒ３を介してノードｎ３と接続し、通信経路ｒ４を介してノードｎ４と接続する。そして、ノードｎ２、ｎ３間およびノードｎ２、ｎ４間でＩｎｆｉｎｉＢａｎｄによる通信が行われる。
【００２９】
さらに、ノードｎ１は、通信経路ｒ５を介してノードｎ２と接続し、ノードｎ１、ｎ２間でＰＣＩ（Peripheral Component Interconnect）による通信が行われる。さらにまた、ノードｎ３は、通信経路ｒ６を介してノードｎ４と接続し、ノードｎ３、ｎ４間でＰＣＩによる通信が行われる。
【００３０】
図３において、ストレージシステム１−２は、ストレージ装置２ａ、サーバ２ａ−１、２ａ−２、スイッチｓｗ１、ｓｗ２を備える。ノードｎ１、・・・、ｎ４の各ノードは、スケールアウト用のスイッチｓｗ１、ｓｗ２に接続し、ノードｎ１、・・・、ｎ４の各ノードとスイッチｓｗ１、ｓｗ２間でＩｎｆｉｎｉＢａｎｄによる通信が行われる。その他の基本構成は図２と同じである。なお、図２、図３では、サーバを２台としているが３台以上のスケールアウトでシステム設計されていてもよい。また、１サーバ内のノードを３台以上にしてもよい。
【００３１】
上記のように、同じサーバ内のノード同士ではＰＣＩによる通信が行われ、サーバをまたいだノード間ではＩｎｆｉｎｉＢａｎｄによる通信が行われることにより、ノードの連携動作を可能としている。
【００３２】
また、上記のように、ノードｎ１、・・・、ｎ４には、１ノードにつき、ＰＣＩの１つのポートと、ＩｎｆｉｎｉＢａｎｄの２つのポートとが設けられている。ＩｎｆｉｎｉＢａｎｄの２つのポートが対向ノードやスイッチに接続されることにより、ＩｎｆｉｎｉＢａｎｄの通信経路の冗長化が図られている。
【００３３】
一方、ノードの通信としては、例えば、軽量なデータを送受信するメッセージ通信、および指定されたメモリ領域に格納されるデータの転送を行うＤＭＡ（Direct Memory Access）転送が行われる。
【００３４】
＜ノードの内部構成＞
図４はノードの内部構成の一例を示す図である。サーバ２ａ−１内のノードｎ１は、プロセッサ２１、メモリ２２およびＨＢＡ（Host Bus Adapter）２３を備える。ＨＢＡ２３は、ＩｎｆｉｎｉＢａｎｄ用の２つのポートを有しており、対向ノードやスイッチに接続する。なお、ノードｎ２およびサーバ２ａ−２内のノードｎ３、ｎ４も同様の構成を有する。
【００３５】
＜ＤＭＡ転送＞
次にＤＭＡ転送について、図５、図６を用いて説明する。図５はＤＭＡ転送の一例を示す図である。ノードｎ１は、通信経路ｒ１を介したＩｎｆｉｎｉＢａｎｄにより、ノードｎ３へＤＭＡ転送を行うものとする。この場合、ノードｎ１内のメモリ２２−１に格納されるデータが、ノードｎ３内のメモリ２２−３へ転送される。
【００３６】
図６は迂回通信によるＤＭＡ転送の一例を示す図である。ノードｎ１、ｎ３間の通信経路ｒ１が閉塞したとする。通信経路ｒ１が閉塞すると、ノードｎ１は、もう一方のＩｎｆｉｎｉＢａｎｄの通信経路ｒ２を介した迂回通信により、ノードｎ４へＤＭＡ転送を行うことができる。
【００３７】
この場合、ノードｎ１は、迂回ノードとなるノードｎ４にあらかじめ確保されているバッファ（例えば、ノードｎ４のメモリ内の一部の領域がバッファとして使用される）にＤＭＡ転送を行い、その後、ノードｎ４が目的のノードｎ３にＤＭＡ転送を行う。
【００３８】
すなわち、ノードｎ１内のメモリ２２−１に格納されるデータが、ノードｎ４内のバッファ２２ａ−４へ転送され、バッファ２２ａ−４にバッファリングされたデータがノードｎ４内のメモリ２２−３へ転送される。
【００３９】
＜迂回通信の実行不可状態＞
ここで、迂回通信の実行が不可となる状態について、図７を用いて説明する。図７は迂回通信の実行が不可となる状態の一例を示す図である。ストレージシステム２００は、サーバ２０１、２０２を備える（ストレージ装置は図示せず）。サーバ２０１は、ノードＮ１、Ｎ２を含み、サーバ２０２は、ノードＮ３、Ｎ４を含む。なお、接続関係は図２と同じである。
【００４０】
ストレージシステム２００では、ＩｎｆｉｎｉＢａｎｄの一方の通信経路が閉塞した場合、他方のＩｎｆｉｎｉＢａｎｄの通信経路が、迂回経路に設定される構成になっている。
【００４１】
ストレージシステム２００は、迂回経路の冗長性はＩｎｆｉｎｉＢａｎｄのみであり、ノードＮ１、ノードＮ２、ノードＮ３の順に流れる経路や、ノードＮ１、ノードＮ２、ノードｎ４、ノードＮ３の順に流れる経路が迂回経路として選択される機能は有していないとする。
【００４２】
このような構成において、ノードＮ１からノードＮ３へ通信経路ｒ１経由のＩｎｆｉｎｉＢａｎｄ通信でＤＭＡ転送を行う場合、図７に示すように、通信経路ｒ１、ｒ２に障害が発生すると、他の迂回経路の選択ができないため通信が途絶えてしまう。
【００４３】
このように、図７に示すような、１つのネットワークインタフェース部（ＨＢＡ）に繋がる通信経路に多重障害が発生すると、迂回通信の実行が不可となり、ノード間通信を行うことができなくなる。
【００４４】
＜迂回通信時の負荷集中状態＞
次に迂回通信時に特定ノードに負荷が集中する状態について、図８を用いて説明する。図８は迂回通信時に特定ノードに負荷が集中する状態の一例を示す図である。ストレージシステム２００において、ノードＮ１がノードＮ３へＤＭＡ転送を行い、ノードＮ２がノードＮ３へＤＭＡ転送を行う場合、ノードＮ１、Ｎ３間の通信経路ｒ１と、ノードＮ２、Ｎ３間の通信経路ｒ３に閉塞が発生したとする。
【００４５】
この場合、ノードＮ１は、通信経路ｒ２経由のＩｎｆｉｎｉＢａｎｄにより、ノードＮ４へＤＭＡ転送を行う。すなわち、ノードＮ１は、迂回ノードとなるノードＮ４にあらかじめ確保されているバッファにＤＭＡ転送を行い、その後、ノードＮ４が目的のノードＮ３にＤＭＡ転送を行う。
【００４６】
例えば、ノードＮ１内のメモリ２２−１に格納されるデータが、ノードＮ４内のバッファ２２ａ−４へ転送され、バッファ２２ａ−４にバッファリングされたデータがノードＮ３内のメモリ２２−３へ転送される。
【００４７】
一方、ノードＮ２は、通信経路ｒ４経由のＩｎｆｉｎｉＢａｎｄにより、ノードＮ４へＤＭＡ転送を行う。この場合、ノードＮ２は、迂回ノードとなるノードＮ４のバッファにＤＭＡ転送を行い、その後、ノードＮ４が目的のノードＮ３にＤＭＡ転送を行う。
【００４８】
例えば、ノードＮ２内のメモリ２２−２に格納されるデータが、ノードＮ４内のバッファ２２ａ−４へ転送され、バッファ２２ａ−４にバッファリングされたデータがノードＮ３内のメモリ２２−３へ転送される。
【００４９】
しかし、上記のような迂回通信では、ノードＮ１、Ｎ２がノードＮ４のバッファ２２ａ−４を利用するため、バッファ２２ａ−４の容量不足（枯渇）が生じる可能性があり、容量が不足した場合、ＤＭＡ転送待ち状態が発生するおそれがある（図８の例では、ノードＮ１に対してＤＭＡ転送の待ちが生じている）。このように、迂回通信の実行時、迂回経路上のノードに対して負荷が集中する可能性がある。
【００５０】
本発明はこのような点に鑑みてなされたものであり、複数の通信経路の障害発生時でも迂回経路を選択可能とし、また、迂回経路の設定時間の短縮、および処理負荷の軽減等を可能にして、迂回通信の効率化を図るものである。
【００５１】
＜ハードウェア構成＞
以降、第２の実施の形態の技術について詳しく説明する。図９はノードのハードウェア構成の一例を示す図である。ストレージ制御装置であるノードｎ１、・・・、ｎ４（以下、総称する場合はノードｎ０と表記）は、プロセッサ１００によって装置全体が制御されている（プロセッサ１００は、図４のプロセッサ２１に該当）。すなわち、プロセッサ１００は、ノードｎ０の制御部として機能する。
【００５２】
プロセッサ１００には、バス１０３を介してメモリ１０１と複数の周辺機器が接続されている（メモリ１０１は、図４のメモリ２２に該当）。プロセッサ１００は、マルチプロセッサであってもよい。プロセッサ１００は、例えば、ＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、またはＰＬＤ（Programmable Logic Device）である。またプロセッサ１００は、ＣＰＵ、ＭＰＵ、ＤＳＰ、ＡＳＩＣ、ＰＬＤのうちの２以上の要素の組み合わせであってもよい。
【００５３】
メモリ１０１は、ノードｎ０の主記憶装置として使用される。メモリ１０１には、プロセッサ１００に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ１０１には、プロセッサ１００による処理に要する各種データが格納される。
【００５４】
また、メモリ１０１は、ノードｎ０の補助記憶装置としても使用され、ＯＳのプログラム、アプリケーションプログラム、および各種メッセージが格納される。メモリ１０１は、補助記憶装置として、フラッシュメモリやＳＳＤ等の半導体記憶装置やＨＤＤ等の磁気記録媒体を含んでもよい。
【００５５】
バス１０３に接続されている周辺機器としては、入出力インタフェース１０２およびネットワークインタフェース１０４がある。入出力インタフェース１０２は、プロセッサ１００からの命令にしたがってノードｎ０の状態を表示する表示装置として機能するモニタ（例えば、ＬＥＤ（Light Emitting Diode）やＬＣＤ（Liquid Crystal Display）等）が接続されている。
【００５６】
また、入出力インタフェース１０２は、キーボードやマウス等の情報入力装置を接続可能であって、情報入力装置から送られてくる信号をプロセッサ１００に送信する。
入出力インタフェース１０２は、周辺機器を接続するための通信インタフェースとして機能する。例えば、入出力インタフェース１０２は、レーザ光等を利用して、光ディスクに記録されたメッセージの読み取りを行う光学ドライブ装置を接続することができる。光ディスクは、光の反射によって読み取り可能なようにメッセージが記録された可搬型の記録媒体である。光ディスクには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ（Random Access Memory）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（Rewritable）等がある。
【００５７】
また、入出力インタフェース１０２は、メモリ装置やメモリリーダライタを接続することができる。メモリ装置は、入出力インタフェース１０２との通信機能を搭載した記録媒体である。メモリリーダライタは、メモリカードへのメッセージの書き込み、またはメモリカードからのメッセージの読み出しを行う装置である。メモリカードは、カード型の記録媒体である。
【００５８】
ネットワークインタフェース１０４は、ＨＢＡやＰＣＩの通信プロトコルのインタフェース処理を実現する。また、ネットワークインタフェース１０４は、例えば、ＮＩＣ（Network Interface Card）、無線ＬＡＮ（Local Area Network）カード等の機能を有してもよい。ネットワークインタフェース１０４で受信された信号やメッセージ等は、プロセッサ１００に出力される。
【００５９】
以上のようなハードウェア構成によって、ノードｎ０の処理機能を実現することができる。例えば、ノードｎ０は、プロセッサ１００がそれぞれ所定のプログラムを実行することで、本発明の制御を行うことができる。
【００６０】
ノードｎ０は、例えば、コンピュータで読み取り可能な記録媒体に記録されたプログラムを実行することにより、本発明の処理機能を実現する。ノードｎ０に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。
【００６１】
例えば、ノードｎ０に実行させるプログラムを補助記憶装置に格納しておくことができる。プロセッサ１００は、補助記憶装置内のプログラムの少なくとも一部を主記憶装置にロードし、プログラムを実行する。また、光ディスク、メモリ装置、メモリカード等の可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えば、プロセッサ１００からの制御により、補助記憶装置にインストールされた後、実行可能となる。またプロセッサ１００が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
【００６２】
＜機能ブロック＞
図１０はノードの機能ブロックの一例を示す図である。ノードｎ０は、通信制御部１０を備え、通信制御部１０は、送受信処理部１１、監視処理部１２、監視情報管理部１３および迂回リスト管理部１４を備える。
【００６３】
送受信処理部１１は、他ノードと情報の共有をするために、他ノードへ所定情報を送信し、また他ノードからの所定情報を受信する処理を行う。監視処理部１２は、経路状態監視部１２ａ、通信コスト監視部１２ｂおよびＨＢＡ状態監視部１２ｃを含む。経路状態監視部１２ａは、通信経路の閉塞および開通を監視する。
【００６４】
通信コスト監視部１２ｂは、通信コスト（通信制約に該当）として例えば、ノードのメモリ容量の枯渇状態、またはプロセッサ処理負荷状態（通信負荷状態）の少なくとも１つを監視する。なお、以降では主に、ノードのバッファの格納状態（例えば、枯渇状態であるか等）を監視するものとして説明する。ＨＢＡ状態監視部１２ｃは、ＨＢＡの故障および復旧を監視する。
【００６５】
監視情報管理部１３は、閉塞情報管理部１３ａ、バッファ枯渇情報管理部１３ｂおよびＨＢＡ故障情報管理部１３ｃを含む。監視情報管理部１３は、自ノードの監視処理部１２で監視された監視情報を保持し、また他ノードから送信された監視情報を保持して、監視情報の変化に応じて更新する。
【００６６】
閉塞情報管理部１３ａは、閉塞状態になっている通信経路を記憶管理する。バッファ枯渇情報管理部１３ｂは、バッファが枯渇しているノードを記憶管理する。ＨＢＡ故障情報管理部１３ｃは、ノード内のどのＨＢＡが故障しているかを記憶管理する。
【００６７】
なお、監視情報管理部１３で記憶管理される監視情報は、送受信処理部１１によって他ノードへ送信される。また、他ノードから送信された監視情報は、送受信処理部１１で受信され、監視情報管理部１３は、受信した監視情報にもとづいて、監視情報を更新する。このような処理が行われることで、全ノードで最新の監視情報が共有される。
【００６８】
迂回リスト管理部１４は、監視情報管理部１３で管理される監視情報を、定期的にまたは監視情報が更新される度に参照し、監視情報の変化に伴って現在記憶している迂回経路に変化が生じる場合、迂回経路の更新を行う。
【００６９】
なお、迂回リスト管理部１４で管理される迂回経路のリスト（迂回リスト）は、送受信処理部１１によって他ノードへ送信される。また、他ノードから送信された迂回リスト情報は、送受信処理部１１で受信され、受信された迂回リスト情報にもとづいて、迂回リストが更新される。このような処理が行われることで、全ノードで最新の迂回リストが共有される。
【００７０】
なお、送受信処理部１１は、図９に示したネットワークインタフェース１０４で実現される。監視処理部１２は、図９に示したプロセッサ１００で実現される。監視情報管理部１３および迂回リスト管理部１４の記憶機能は、図９に示したメモリ１０１で実現される。
【００７１】
＜閉塞経路の発生から迂回通信までの流れ＞
図１１は閉塞経路の発生から迂回通信が実行されるまでの動作を示すフローチャートである。
【００７２】
〔ステップＳ１１〕通信制御部１０は、監視情報（閉塞情報、バッファ枯渇情報およびＨＢＡ故障情報）の更新を行う。
〔ステップＳ１２〕通信制御部１０は、更新した監視情報を他ノードへ転送する。この場合、転送先ノードが重複しないように転送される。ステップＳ１１、Ｓ１２の動作により、監視情報が全ノードに伝搬される。
【００７３】
〔ステップＳ１３〕通信制御部１０は、迂回を要する宛先ノードに対して、自ノードからどの隣接ノード（迂回先）にデータを転送するかを迂回リストに記録する。
〔ステップＳ１４〕通信制御部１０は、迂回リストにもとづき迂回経路を設定する。なお、通信制御部１０は、バッファ枯渇等を見越して、例えば、２つの迂回経路（優先迂回経路、予備迂回経路）を設定することができる。
【００７４】
〔ステップＳ１５〕通信制御部１０は、監視情報が更新される度に迂回リストを更新する。ステップＳ１３、Ｓ１４、Ｓ１５の動作により、迂回リストの生成および更新が行われる。
【００７５】
〔ステップＳ１６〕通信制御部１０は、迂回通信を行う場合、迂回リストを参照し、ステップＳ１４で記録された迂回ノードにデータを転送する。ステップＳ１６の動作により、迂回通信が実施される。
【００７６】
＜監視情報のテーブル構成＞
図１２は監視情報のテーブル構成の一例を示す図である。閉塞情報テーブルＴ１は、閉塞情報管理部１３ａで生成され、項目として閉塞ノード＃１および閉塞ノード＃２を有する。
【００７７】
図１２の例において、閉塞ノード＃１＝ｎ１、閉塞ノード＃２＝ｎ３となっており、これはノードｎ１、ｎ３間の通信経路が閉塞状態になっていることを示す。同様に、閉塞ノード＃１＝ｎ２、閉塞ノード＃２＝ｎ７は、ノードｎ２、ｎ７間の通信経路が閉塞状態になっていることを示す。
【００７８】
バッファ枯渇情報テーブルＴ２は、バッファ枯渇情報管理部１３ｂで生成され、項目としてバッファ枯渇ノードを有する。図１２の例において、バッファ枯渇ノード＝ｎ４となっており、これはノードｎ４のバッファ（ＤＭＡ転送で使用されるときのバッファ）の容量が枯渇していることを示す。
【００７９】
ＨＢＡ故障情報テーブルＴ３は、ＨＢＡ故障情報管理部１３ｃで生成され、項目としてＨＢＡ故障ノードを有する。図１２の例において、ＨＢＡ故障ノード＝ｎ５となっており、これはノードｎ５のＨＢＡが故障していることを示す。
【００８０】
なお、ノードのプロセッサの処理負荷が高い状態を監視情報として検出して、検出したプロセッサ処理負荷をテーブル管理してもよい。
＜各ノードにおける閉塞情報の管理＞
図１３は各ノードにおける閉塞経路の管理の一例を示す図である。ノードｎ１、・・・、ｎ４は各自で、閉塞情報を記憶管理する。なお、図中の［ｎ１］−［ｎ３］は、ノードｎ１とノードｎ３間の通信経路が閉塞していることを示し、［ｎ１］−［ｎ４］は、ノードｎ１とノードｎ４間の通信経路が閉塞していることを示す。
【００８１】
通信経路ｒ１、ｒ２が閉塞しているとする。この場合、ノードｎ１、・・・、ｎ４は各自で、閉塞情報として、［ｎ１］−［ｎ３］と［ｎ１］−［ｎ４］を記憶管理する。
このように、各ノードが同じ閉塞経路を共有して管理するので、通信の度に他ノードへルーティング情報を参照することが不要となる。また、閉塞経路の情報のみを保持するので全体のルーティングテーブルを記憶することが不要となり、メモリ容量を削減でき、さらにテーブル探索コストの削減にも繋がる。
【００８２】
＜各ノードにおけるＨＢＡ故障情報の管理＞
図１４は各ノードにおけるＨＢＡ故障情報の管理の一例を示す図である。図１４に示すシステム構成において、ノードｎ３内のＨＢＡが故障しているものとする。なお、図中のＨＢＡ［ｎ３］は、ノードｎ３のＨＢＡが故障していることを示す。
【００８３】
この場合、図１３で上述したような閉塞情報の管理方法では、例えば、ノードｎ１は、［ｎ１］−［ｎ３］、［ｎ２］−［ｎ３］、［ｎ５］−［ｎ３］、［ｎ６］−［ｎ３］、［ｎ７］−［ｎ３］、・・・というような情報を記憶することになる（ノードｎ２、ｎ３、ｎ４等も同様）。
【００８４】
しかし、実際は図１２で示したように、各ノードは、ＨＢＡ故障情報テーブルＴ３を有して、ＨＢＡ故障に関しては閉塞情報とは別管理を行っている。このため、各ノードは、ＨＢＡ［ｎ３］というＨＢＡ故障情報を記憶管理するので、ノードｎ３と繋がらない閉塞経路の情報を集約して記憶管理することができ、メモリ容量を削減することができる。
【００８５】
＜迂回リスト＞
図１５は迂回リストの一例を示す図である。迂回リストＬ１は、迂回リスト管理部１４で生成され、項目として宛先、優先、優先迂回種別、予備および予備迂回種別を有する。
【００８６】
例えば、欄ａ１では、（宛先、優先、優先迂回種別、予備、予備迂回種別）＝（ｎ３、ｎ２、［ＰＣＩ］［ＩＢ］、−、−）となっている。これは、目的の転送先ノードがノードｎ３、自ノードに隣接する優先迂回先ノードがノードｎ２であることが示されている。また、自ノードからノードｎ２を経由してノードｎ３への迂回通信では、ＰＣＩ、ＩＢ（ＩｎｆｉｎｉＢａｎｄ）の順にデータ乗換え処理が行われることが示されている。
【００８７】
欄ａ２では、（宛先、優先、優先迂回種別、予備、予備迂回種別）＝（ｎ４、ｎ３、［ＩＢ］［ＰＣＩ］、−、−）となっている。これは、目的の転送先ノードがノードｎ４、自ノードに隣接する優先迂回先ノードがノードｎ３であることが示されている。また、自ノードからノードｎ３を経由してノードｎ４への迂回通信では、ＩｎｆｉｎｉＢａｎｄ、ＰＣＩの順にデータ乗換え処理が行われることが示されている。
【００８８】
欄ａ３では、（宛先、優先、優先迂回種別、予備、予備迂回種別）＝（ｎ７、ｎ８、［ＩＢ］［ＰＣＩ］、ｎ２、［ＰＣＩ］［ＩＢ］［ＰＣＩ］）となっている。これは、目的の転送先ノードがノードｎ７、自ノードに隣接する優先迂回先ノードがノードｎ８であることが示されている。優先迂回先ノードがノードｎ８の場合、自ノードからノードｎ８を経由してノードｎ７への迂回通信では、ＩｎｆｉｎｉＢａｎｄ、ＰＣＩの順にデータ乗換え処理が行われることが示されている。
【００８９】
さらに欄ａ３では、自ノードに隣接する予備迂回先ノードがノードｎ２であることが示されている。また、予備迂回先ノードがノードｎ２の場合、自ノードからノードｎ２を経由してノードｎ７への迂回通信では、ＰＣＩ、ＩｎｆｉｎｉＢａｎｄ、ＰＣＩの順にデータ乗換え処理が行われることが示されている。
【００９０】
ここで、異なる通信プロトコル間によるデータ転送では、ソフトウェア上でデータの乗換え処理が行われる。データ乗換え処理が行われると、その分、データ転送の時間や通信コストが増大する。
【００９１】
このため、迂回通信を実施する場合、データ乗換え処理の回数が少ない経路を優先的に選択するように優先度を設定する。したがって、上記では欄ａ３のように、通信プロトコルのデータ乗換え回数が少ない迂回先（ノードｎ８）の方が、迂回先（ノードｎ２）よりも優先度が高く設定されている。なお、データ乗換え処理の回数以外にも、通信コストが小さい迂回先の優先度を高く設定してもよい。
【００９２】
＜監視情報の検出および他ノードへの監視情報の送信＞
図１６は監視情報の検出および他ノードへの監視情報の送信の一例を説明するための図である。なお、通信経路の閉塞として、ノードｎ１、ｎ３間の通信経路が閉塞したものとする。また、バッファ枯渇としてノードｎ１のバッファが枯渇したものとする。さらに、ＨＢＡ故障として、ノードｎ１のＨＢＡが故障したものとする。
【００９３】
〔ステップＳ２１ａ〕ノードｎ１の通信制御部１０は、ノードｎ１、ｎ３間の通信経路ｒ１の閉塞を検出する。
〔ステップＳ２２ａ〕ノードｎ１の通信制御部１０は、検出した閉塞情報として、（閉塞ノード＃１、閉塞ノード＃２）＝（ｎ１、ｎ３）を閉塞情報テーブルＴ１に記録する。
【００９４】
〔ステップＳ２１ｂ〕ノードｎ１の通信制御部１０は、ノードｎ１内のバッファの容量枯渇を検出する。
〔ステップＳ２２ｂ〕ノードｎ１の通信制御部１０は、バッファ枯渇情報テーブルＴ２にノードｎ１を記録する。
【００９５】
〔ステップＳ２１ｃ〕ノードｎ１の通信制御部１０は、ノードｎ１のＨＢＡの故障を検出する。
〔ステップＳ２２ｃ〕ノードｎ１の通信制御部１０は、ＨＢＡ故障情報テーブルＴ３にノードｎ１を記録する。
【００９６】
〔ステップＳ２３〕ノードｎ１の通信制御部１０は、閉塞情報テーブルＴ１、バッファ枯渇情報テーブルＴ２およびＨＢＡ故障情報テーブルＴ３に記録された各監視情報を、開通済みの通信経路を経由して通知する。なお、各監視情報を受信したノードは、開通済みの通信経路を経由して、受信した監視情報を他ノードへ送信して伝搬する。
【００９７】
閉塞情報（経路閉塞情報に該当）の伝搬において、ノードｎ１の通信制御部１０は、閉塞情報［（閉塞ノード＃１、閉塞ノード＃２）＝（ｎ１、ｎ３）］を、通信経路ｒ５を介して同一サーバ内のノードｎ２へ送信する。
【００９８】
また、ノードｎ３の通信制御部１０は、閉塞情報［（閉塞ノード＃１、閉塞ノード＃２）＝（ｎ１、ｎ３）］を、通信経路ｒ６を介して同一サーバ内のノードｎ４へ送信する。
バッファ枯渇情報（通信コスト情報に該当）の伝搬において、ノードｎ１の通信制御部１０は、バッファ枯渇情報［ｎ１］を、通信経路ｒ１を介して対向サーバ内のノードｎ３へ送信し、通信経路ｒ５を介して同一サーバ内のノードｎ２へ送信する。
【００９９】
ノードｎ３の通信制御部１０は、受信したバッファ枯渇情報［ｎ１］を、通信経路ｒ６を介して同一サーバ内のノードｎ４へ送信する。
ＨＢＡ故障情報（経路閉塞情報に該当）の伝搬において、ノードｎ１の通信制御部１０は、ＨＢＡ故障情報［ｎ１］を、通信経路ｒ５を介して同一サーバ内のノードｎ２へ送信する。ノードｎ２の通信制御部１０は、受信したＨＢＡ故障情報［ｎ１］を、通信経路ｒ３を介して対向するサーバ内のノードｎ３へ送信する。
【０１００】
ノードｎ３の通信制御部１０は、受信したＨＢＡ故障情報［ｎ１］を、通信経路ｒ６を介して同一サーバ内のノードｎ４へ送信する。
なお、通信経路の復旧時、バッファ枯渇状態の解消時およびＨＢＡ故障の普及時では、テーブル内で削除すべき情報が上記と同じような流れで伝搬され、テーブルから所定の情報が削除される。
【０１０１】
ここで、閉塞経路、バッファ枯渇またはＨＢＡ故障を検出した経路閉塞検出ノードが、これら監視情報を送信する際の対象ノード選択論理としては例えば、以下のようなものがある。
【０１０２】
（１）経路閉塞検出ノードは、同一サーバ内で自身に接続するノードへ監視情報を送信する（ＰＣＩ経由）。なお、ＩｎｆｉｎｉＢａｎｄ経由の通信経路が全閉塞している場合、送信すべき監視情報にその旨を示すフラグを付与して送信する。これにより、該フラグを受信したノードは、監視情報を中継送信するための対向ノードの探索処理を停止するので処理負荷を軽減することができる。
【０１０３】
（２）経路閉塞検出ノードは、自身のノードＩＤを境界にして、送信対象ノード数の少ない方向に位置するノードに監視情報を送信する。例えば、全ノードがノードｎ１、・・・、ｎ８の８台あり、自身がノードｎ５の場合、ノードｎ５を境界にして、送信対象ノード数の少ないノードｎ６、ｎ７、ｎ８のうちのいずれかのノードに対して監視情報を送信する。
【０１０４】
上記のような論理によって監視情報が他ノードへ送信されることで、同じノードに対して重複した監視情報が送信されることを抑制することができる。
＜監視情報の受信処理＞
図１７は監視情報の受信処理の動作を示すフローチャートである。
【０１０５】
〔ステップＳ３１〕通信制御部１０は、他ノードから送信された監視情報を受信する。
〔ステップＳ３２〕通信制御部１０は、受信した監視情報がテーブルに記録済みか否かを判定する。受信した監視情報がテーブルに記録済みの場合は該情報を破棄し、記録済みでない場合はステップＳ３３へ処理が進む。
【０１０６】
〔ステップＳ３３〕通信制御部１０は、受信した監視情報をテーブルに記録する（例えば、受信した監視情報が閉塞経路を示すものならば閉塞情報テーブルＴ１に記録する）。
〔ステップＳ３４〕閉塞情報テーブルＴ１、バッファ枯渇情報テーブルＴ２およびＨＢＡ故障情報テーブルＴ３に記録された各監視情報は、開通済みの通信経路を経由して通知・伝搬される。
【０１０７】
ここで、通知された監視情報を受信したノードが、他ノードに対して該監視情報を送信して伝搬する際の対象ノード選択論理としては例えば、ＩｎｆｉｎｉＢａｎｄ経由で受信した監視情報は、同一サーバ内の隣接ノードへ送信する。また、ＰＣＩ経由で受信した監視情報の場合は他ノードへの送信を停止する（ただし、隣接ノードのＩｎｆｉｎｉＢａｎｄ用の経路が全閉塞していれば、上記の経路閉塞検出ノードと同等の選択論理で送信する）。
【０１０８】
＜迂回リストの更新処理＞
図１８は迂回リストの更新処理の動作を示すフローチャートである。
〔ステップＳ４１〕通信制御部１０は、更新されたテーブル情報（図１２に示した各テーブルの情報）に自ノードが含まれているか否かを判定する。自ノードが含まれている場合、ステップＳ４２へ処理が進み、自ノードが含まれていない場合、ステップＳ４４へ処理が進む。
【０１０９】
〔ステップＳ４２〕通信制御部１０は、閉塞情報テーブルＴ１、バッファ枯渇情報テーブルＴ２およびＨＢＡ故障情報テーブルＴ３の中から、迂回通信に関係のある監視情報を抽出する。
【０１１０】
〔ステップＳ４３〕通信制御部１０は、抽出した監視情報から、優先度の高い２つの迂回経路を生成して、迂回リストＬ１の登録内容を更新する。
〔ステップＳ４４〕通信制御部１０は、迂回リストＬ１から既存の迂回経路を検出する。
【０１１１】
〔ステップＳ４５〕通信制御部１０は、更新した監視情報に含まれるノードＩＤが、検出した迂回経路の中に含まれるか否かを判定する。
すなわち、通信制御部１０は、既存の迂回経路を構築しているノードのうち、新たに生じた閉塞経路に接続しているノードや、バッファが枯渇となったノード、またはＨＢＡが故障したノードが含まれるか否かをノードＩＤにもとづいて判定する。
【０１１２】
当該ノードＩＤが既存の迂回経路の中に含まれる場合は、ステップＳ４６へ処理が進む。当該ノードＩＤが既存の迂回経路の中に含まれない場合は、既存の迂回経路に影響はないため、迂回リストＬ１の更新は行われない。
【０１１３】
〔ステップＳ４６〕通信制御部１０は、閉塞情報テーブルＴ１、バッファ枯渇情報テーブルＴ２およびＨＢＡ故障情報テーブルＴ３の中から、迂回通信に関係のある監視情報を抽出する。
【０１１４】
〔ステップＳ４７〕抽出した監視情報から、優先度の高い２つの迂回経路を生成して、迂回リストＬ１の登録内容を更新する。
なお、優先度の設定としては、例えば、優先度の高い順に［ＩＢ］［ＰＣＩ］＞［ＰＣＩ］［ＩＢ］＞［ＩＢ］［ＰＣＩ］［バッファ枯渇ノード経由］＞［ＰＣＩ］［ＩＢ］［バッファ枯渇ノード経由］＞［ＰＣＩ］［ＩＢ］［ＰＣＩ］＞（完全閉塞）となる。
【０１１５】
＜迂回通信処理＞
図１９は迂回通信処理の動作を示すフローチャートである。
〔ステップＳ５１〕通信制御部１０は、メッセージやデータを目的ノードに送信する場合、迂回リストＬ１を参照する。
【０１１６】
〔ステップＳ５２〕通信制御部１０は、迂回リストＬ１の中の「宛先」に目的ノードが含まれているか否かを判定する。「宛先」に目的ノードが含まれる場合、ステップＳ５３へ処理が進み、「宛先」に目的ノードが含まれない場合、目的ノードに向けてメッセージやデータを直接送信する。
【０１１７】
〔ステップＳ５３〕通信制御部１０は、迂回リストＬ１の中の「優先」に記載されているノードに対して、メッセージやデータを迂回通信する。例えば、図１５において、目的ノードがノードｎ７の場合、迂回リストＬ１にもとづき、ノードｎ８へ迂回通信が行われる。
【０１１８】
なお、迂回リストＬ１において、「宛先」に目的ノードが含まれ、「優先」と「予備」の２つの候補がある場合、原則は「優先」に記載されるノードへの迂回通信が行われるが、通信コスト（バッファ枯渇状態、プロセッサ処理負荷等）から判断して、「予備」に記載されるノードへ迂回通信を行うこともできる。
【０１１９】
例えば、図１５の迂回リストＬ１において、目的ノードがノードｎ７の場合、迂回リストＬ１の「優先」はノードｎ８と記載されているので、原則はノードｎ８への迂回通信が行われる。
【０１２０】
ただし、ノードｎ８のバッファが枯渇状態である場合や、ノードｎ８のプロセッサ処理負荷が高い場合等では、迂回リストＬ１の予備に記載されているノードｎ２が選択され、ノードｎ２に対して迂回通信を行うことも可能である。
【０１２１】
＜迂回通信の動作例＞
次に迂回通信の動作例についてさらに図２０、図２１を用いて説明する。図２０、図２１は迂回通信の動作の一例を説明するための図である。図２０において、ノードｎ１からノードｎ３へのデータ転送時、通信経路ｒ１に閉塞が発生したとする。ノードｎ１内の通信制御部１０は、迂回リストＬ１ａを生成管理する。
【０１２２】
迂回リストＬ１ａは、項目として宛先、優先および予備を有する（優先迂回種別、予備迂回種別は省略）。迂回リストＬ１ａには、（宛先、優先、予備）＝（ｎ３、ｎ４、ｎ２）と設定されている。
【０１２３】
ノードｎ１からノードｎ３への迂回通信時、ノードｎ４を経由する場合は、データ乗換えの順番は［ＩＢ］［ＰＣＩ］であり、ノードｎ２を経由する場合は、データ乗換えの順番は［ＰＣＩ］［ＩＢ］である。
【０１２４】
図１８で上述したように、優先度の高さは［ＩＢ］［ＰＣＩ］＞［ＰＣＩ］［ＩＢ］である。すなわち、ノードｎ１にとってデータ乗換え処理を不要とする迂回先（ノードｎ４）の方が、データ乗換え処理を要する迂回先（ノードｎ２）よりも優先度は高い。よって、迂回リストＬ１ａでは、ノードｎ４の方がノードｎ２よりも優先度が高く設定される。したがって、ノードｎ１、ノードｎ４、ノードｎ３の順に迂回通信が行われる。
【０１２５】
図２１において、ノードｎ３の通信コストがノードｎ２の通信コストよりも高いとする。例えば、ノードｎ３のバッファが枯渇状態になっている、またはノードｎ３のプロセッサ処理負荷が閾値を超えているとする。
【０１２６】
このような場合、ノードｎ１の通信制御部１０は、迂回リストＬ１ａに設定されている予備のノードｎ２を迂回先として選択する。したがって、ノードｎ１、ノードｎ２、ノードｎ３の順に迂回通信が行われる。
【０１２７】
以上説明したように、本発明によれば、通信経路の多重故障時の別迂回経路の探索を容易に実施することが可能になり、ノード間通信の信頼性の向上を図ることが可能になる。また、ＤＭＡ転送時に使用されるバッファが枯渇しやすい状況では、別迂回経路を選択して通ることができるので、効率よく負荷分散を行うことが可能になる。さらに、プロセッサ処理性能を重視するノードへの迂回を実施することも可能である。
【０１２８】
上記で説明した本発明のストレージシステムおよびノード（ストレージ制御装置）の処理機能は、コンピュータによって実現することができる。この場合、ストレージシステムおよびノードが有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。
【０１２９】
処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、半導体メモリ等がある。磁気記憶装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープ等がある。光ディスクには、ＣＤ−ＲＯＭ／ＲＷ等がある。
【０１３０】
プログラムを流通させる場合、例えば、そのプログラムが記録されたＣＤ−ＲＯＭ等の可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１３１】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。
【０１３２】
また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。また、上記の処理機能の少なくとも一部を、ＤＳＰ、ＡＳＩＣ、ＰＬＤ等の電子回路で実現することもできる。
【０１３３】
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の２以上の構成（特徴）を組み合わせたものであってもよい。
【０１３４】
（付記１）  ストレージ装置と、
前記ストレージ装置を制御対象とする複数のストレージ制御装置と、
前記複数のストレージ制御装置間を接続する通信経路と、
を含むストレージシステムであって、
前記ストレージ制御装置は、
前記通信経路の閉塞状態の検出にもとづいて経路閉塞情報を生成し、前記経路閉塞情報にもとづいて通信先となる前記ストレージ制御装置毎に設定した迂回経路情報を生成して、前記経路閉塞情報と前記迂回経路情報とを記憶部に格納し、他ストレージ制御装置への通信を行うとき前記迂回経路情報にもとづいて選択した迂回経路で迂回通信を行う制御部、
を有するストレージシステム。
【０１３５】
（付記２）  前記制御部は、記憶している前記経路閉塞情報を更新した場合、開通している前記通信経路を経由して更新後の前記経路閉塞情報を他ストレージ制御装置へ送信し、前記他ストレージ制御装置は、送信された前記経路閉塞情報を受信して、前記他ストレージ制御装置が記憶している前記経路閉塞情報を更新する付記１記載のストレージシステム。
【０１３６】
（付記３）  前記制御部は、前記経路閉塞情報の更新に応じて前記迂回経路情報を更新し、前記迂回経路情報に複数の迂回先が存在する場合、優先度を前記迂回先に設定する付記２記載のストレージシステム。
【０１３７】
（付記４）  前記制御部は、前記迂回通信を実行する際に、通信プロトコルのデータ乗換え処理を不要とする前記迂回先には、前記データ乗換え処理を要する前記迂回先よりも前記優先度を高く設定する付記３記載のストレージシステム。
【０１３８】
（付記５）  前記制御部は、前記迂回通信を実行する際に、通信プロトコルのデータ乗換え処理の回数が少ない前記迂回先ほど前記優先度を高く設定する付記３記載のストレージシステム。
【０１３９】
（付記６）  前記制御部は、通信制約が小さい前記迂回先ほど前記優先度を高く設定する付記３記載のストレージシステム。
（付記７）  前記制御部は、迂回経路上に位置する前記ストレージ制御装置内のメモリ容量の枯渇状態、または通信負荷状態の少なくとも１つを前記通信制約として検出する付記６記載のストレージシステム。
【０１４０】
（付記８）  前記制御部は、前記通信制約を検出して通信制約情報を生成し、記憶している前記通信制約情報を更新した場合、開通している前記通信経路を経由して更新後の前記通信制約情報を他ストレージ制御装置へ送信し、前記他ストレージ制御装置は、送信された前記通信制約情報を受信して、前記他ストレージ制御装置が記憶している前記通信制約情報を更新する付記６記載のストレージシステム。
【０１４１】
（付記９）  前記複数のストレージ制御装置として、第１から第４のストレージ制御装置を有し、
前記第１のストレージ制御装置と、前記第２のストレージ制御装置とが第１のサーバに含まれ、前記第３のストレージ制御装置と、前記第４のストレージ制御装置とが第２のサーバに含まれ、
前記第１のサーバと前記第２のサーバ間の装置接続は、第１の通信プロトコルを持つ第１から第４の通信経路で接続され、前記第１のサーバ内の装置接続は、前記第１の通信プロトコルとは異なる第２の通信プロトコルを持つ第５の通信経路で接続され、前記第２のサーバ内の装置接続は、前記第２の通信プロトコルを持つ第６の通信経路で接続され、
前記第１のストレージ制御装置は、前記第１の通信経路を介して前記第３のストレージ制御装置と接続し、前記第２の通信経路を介して前記第４のストレージ制御装置と接続し、
前記第２のストレージ制御装置は、前記第３の通信経路を介して前記第３のストレージ制御装置と接続し、前記第４の通信経路を介して前記第４のストレージ制御装置と接続し、
前記第１のストレージ制御装置と前記第２のストレージ制御装置は、前記第５の通信経路で接続し、
前記第３のストレージ制御装置と前記第４のストレージ制御装置は、前記第６の通信経路で接続し、
前記第１のストレージ制御装置内の前記制御部は、前記第１の通信経路の閉塞を検出した場合、前記第３のストレージ制御装置を宛先とする前記第１の通信プロトコルのデータ送信の迂回先として、前記第４のストレージ制御装置を第１の迂回先、前記第２のストレージ制御装置を第２の迂回先に設定した迂回経路情報を生成する、
付記１記載のストレージシステム。
【０１４２】
（付記１０）  前記第１のストレージ制御装置内の前記制御部は、前記第１の通信プロトコルのデータを前記第２の通信プロトコルに変換して前記第２のストレージ制御装置に送信する前記第２の迂回先よりも、前記第１の通信プロトコルのままでデータを前記第４のストレージ制御装置に送信する前記第１の迂回先を選択して迂回通信を行う付記９記載のストレージシステム。
【０１４３】
（付記１１）  前記第１の通信プロトコルはＩｎｆｉｎｉＢａｎｄであり、前記第２の通信プロトコルはＰＣＩである付記９記載のストレージシステム。
（付記１２）  前記第１のストレージ制御装置内の前記制御部は、前記第４のストレージ制御装置のメモリの枯渇状態、または前記第４のストレージ制御装置のプロセッサ処理負荷が閾値を超えることを検出した場合、前記第１の通信プロトコルのままでデータを送信可能な前記第４のストレージ制御装置に送信する前記第１の迂回先よりも、前記第１の通信プロトコルのデータを前記第２の通信プロトコルに変換して前記第２のストレージ制御装置に送信する前記第２の迂回先を選択して迂回通信を行う付記９記載のストレージシステム。
【０１４４】
（付記１３）  ストレージ装置を制御対象とするストレージ制御装置において、
記憶部と、
通信経路の閉塞状態の検出にもとづいて経路閉塞情報を生成し、前記経路閉塞情報にもとづいて通信先となる前記ストレージ制御装置毎に設定した迂回経路情報を生成して、前記経路閉塞情報と前記迂回経路情報とを前記記憶部に格納し、他ストレージ制御装置への通信を行うとき前記迂回経路情報にもとづいて選択した迂回経路で迂回通信を行う制御部と、
を有するストレージ制御装置。
【０１４５】
（付記１４）  コンピュータに、
通信経路の閉塞状態の検出にもとづいて経路閉塞情報を生成し、
前記経路閉塞情報にもとづいて通信先となる装置毎に設定した迂回経路情報を生成し、
前記経路閉塞情報と前記迂回経路情報とをメモリに格納し、
他装置への通信を行うとき前記迂回経路情報にもとづいて選択した迂回経路で迂回通信を行う、
処理を実行させるプログラム。
【符号の説明】
【０１４６】
１  ストレージシステム
１ａ  ストレージ装置
１ａ−１、・・・、１ａ−ｎ  記憶媒体
１ｂ  サーバ装置
１ｂ−１、１ｂ−２  サーバ
ｋ１  経路閉塞情報
ｋ２  迂回リスト
１０−１、・・・、１０−４  ストレージ制御装置
１０ａ−１、・・・、１０ａ−４  制御部
ｍ１、・・・、ｍ４  記憶部
ｒ１、・・・、ｒ６  通信経路
【図１】
2019075032.tif 000003
【図２】
2019075032.tif 000004
【図３】
2019075032.tif 000005
【図４】
2019075032.tif 000006
【図５】
2019075032.tif 000007
【図６】
2019075032.tif 000008
【図７】
2019075032.tif 000009
【図８】
2019075032.tif 000010
【図９】
2019075032.tif 000011
【図１０】
2019075032.tif 000012
【図１１】
2019075032.tif 000013
【図１２】
2019075032.tif 000014
【図１３】
2019075032.tif 000015
【図１４】
2019075032.tif 000016
【図１５】
2019075032.tif 000017
【図１６】
2019075032.tif 000018
【図１７】
2019075032.tif 000019
【図１８】
2019075032.tif 000020
【図１９】
2019075032.tif 000021
【図２０】
2019075032.tif 000022
【図２１】
2019075032.tif 000023