(57)【特許請求の範囲】
【請求項１】
第１の種類のフレームおよび前記第１の種類のフレームを含めることが可能な第２の種類のフレームを中継するために用いられる中継装置であって、
複数の他の中継装置に対して前記第１の種類のフレームを送信するための複数の第１のポートと、
前記複数の他の中継装置に対して前記第２の種類のフレームを送信するための複数の第２のポートと、
前記複数の第２のポートと前記複数の他の中継装置との対応を示す第１の転送情報を記憶する記憶部と、
前記第１の種類のフレームの転送先のポートを特定するための第２の転送情報に基づいて、他の中継装置に接続されたノードへアクセスするための前記第１の種類のフレームの転送先のポートを前記複数の第１のポートの中から特定した後に、特定した第１のポートの負荷に応じて前記第１の種類のフレームを含む前記第２の種類のフレームを生成し、前記第１の転送情報に基づいて、前記複数の第２のポートの中から前記第２の種類のフレームの転送先の第２のポートを特定し、前記第１の種類のフレームを前記特定した第１のポートから送信する代わりに、前記第２の種類のフレームを前記特定した第２のポートから送信する制御部と、
を有する中継装置。
【請求項２】
前記制御部は、前記特定した第１のポートの状態に基づいて算出される負荷値が所定の閾値よりも高い場合に、前記第１の種類のフレームを含む前記第２の種類のフレームを送信すると決定する、請求項１記載の中継装置。
【請求項３】
前記制御部は、前記負荷値が所定の閾値よりも高いかを判断する際に、前記第１の種類のフレームに含まれる送信元アドレスと宛先アドレスとの組に応じた閾値を用いる、請求項２記載の中継装置。
【請求項４】
第１の種類のフレームおよび前記第１の種類のフレームを含めることが可能な第２の種類のフレームを中継するために用いられる中継装置であって、
複数の他の中継装置に対して前記第１の種類のフレームを送信するための複数の第１のポートと、
前記複数の他の中継装置に対して前記第２の種類のフレームを送信するための複数の第２のポートと、
前記複数の第１のポートと前記複数の他の中継装置との対応を示す第１の転送情報を記憶する記憶部と、
前記第１の種類のフレームの転送先のポートを特定するための第２の転送情報に基づいて、他の中継装置に接続されたノードへアクセスするための前記第１の種類のフレームの転送先のポートを前記複数の第２のポートの中から特定した後に、特定した第２のポートの負荷に応じて、前記第１の転送情報を基に前記複数の第１のポートの中から前記第１の種類のフレームの転送先の第１のポートを特定し、前記第１の種類のフレームを含む前記第２の種類のフレームを前記特定した第２のポートから送信する代わりに、前記第１の種類のフレームを前記特定した第１のポートから送信する制御部と、
を有する中継装置。
【請求項５】
第１の種類のフレームおよび前記第１の種類のフレームを含めることが可能な第２の種類のフレームを中継するための中継方法であって、
複数の他の中継装置に対して前記第１の種類のフレームを送信するための複数の第１のポートと、前記複数の他の中継装置に対して前記第２の種類のフレームを送信するための複数の第２のポートと、前記複数の第２のポートと前記複数の他の中継装置との対応を示す第１の転送情報を記憶する記憶部と、を有する中継装置が、
前記第１の種類のフレームの転送先のポートを特定するための第２の転送情報に基づいて、他の中継装置に接続されたノードへアクセスするための前記第１の種類のフレームの転送先のポートを前記複数の第１のポートの中から特定した後に、特定した第１のポートの負荷に応じて前記第１の種類のフレームを含む前記第２の種類のフレームを生成し、
前記第１の転送情報に基づいて、前記複数の第２のポートの中から前記第２の種類のフレームの転送先の第２のポートを特定し、
前記第１の種類のフレームを前記特定した第１のポートから送信する代わりに、前記第２の種類のフレームを前記特定した第２のポートから送信する、
中継方法。
【請求項６】
第１の種類のフレームおよび前記第１の種類のフレームを含めることが可能な第２の種類のフレームを中継するための中継方法であって、
複数の他の中継装置に対して前記第１の種類のフレームを送信するための複数の第１のポートと、前記複数の他の中継装置に対して前記第２の種類のフレームを送信するための複数の第２のポートと、前記複数の第１のポートと前記複数の他の中継装置との対応を示す第１の転送情報を記憶する記憶部と、を有する中継装置が、
前記第１の種類のフレームの転送先のポートを特定するための第２の転送情報に基づいて、他の中継装置に接続されたノードへアクセスするための前記第１の種類のフレームの転送先のポートを前記複数の第２のポートの中から特定した後に、特定した第２のポートの負荷に応じて、前記第１の転送情報を基に前記複数の第１のポートの中から前記第１の種類のフレームの転送先の第１のポートを特定し、前記第１の種類のフレームを含む前記第２の種類のフレームを前記特定した第２のポートから送信する代わりに、前記第１の種類のフレームを前記特定した第１のポートから送信する、
中継方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は中継装置および中継方法に関する。
【背景技術】
【０００２】
コンピュータなどの情報処理装置とストレージ装置とをネットワークに接続したストレージシステムが利用されている。ネットワークはノード（情報処理装置やストレージ装置など）間の通信を中継する中継装置を含む。情報処理装置は、ネットワークを介してストレージ装置にアクセスする。ストレージシステムのためのネットワークをＳＡＮ（Storage Area Network）と呼ぶことがある。ＳＡＮでは、ネットワークのインタフェースとして、例えばファイバチャネル（ＦＣ：Fibre Channel）やイーサネット（イーサネットおよびＥｔｈｅｒｎｅｔは登録商標）を用いる。
【０００３】
ここで、ＦＣおよびイーサネットの両方のネットワークに情報処理装置を接続することがある。例えば、ＦＣを用いたＳＡＮおよびイーサネットを用いたＳＡＮに接続する場合や、ＦＣを用いたＳＡＮおよびＬＡＮ（Local Area Network）に接続する場合である。この場合、ＦＣ用のアダプタおよびイーサネット用のアダプタを別個に情報処理装置に設けることが考えられる。しかし、アダプタを別個に設けると、アダプタごとに配線を行うため、配線が複雑化するおそれがある。そこで、ファイバチャネル・オーバー・イーサネット（ＦＣｏＥ：Fibre Channel over Ethernet）に対応したアダプタを用いる提案がある。ＦＣｏＥ対応の単一のアダプタを用いて、ＦＣおよびイーサネットの両方のネットワークにアクセス可能とすることで、配線の簡素化を図れる。
【０００４】
ＦＣｏＥでは、ＦＣの通信単位（ＦＣフレーム）をイーサネットの通信単位（イーサネットフレーム）内にカプセル化する。ＦＣｏＥでは、ＦＣフレームをカプセル化して通信するために拡張したイーサネットを用いる。当該拡張したイーサネットをデータセンタブリッジング（ＤＣＢ：Data Center Bridging）と呼ぶことがある。例えば、ＦＣｏＥ対応の中継装置は、ＦＣおよびＤＣＢの両方のポートを備える。中継装置は、イーサネットフレームからＦＣフレームを抽出してＦＣポートから転送したり、イーサネットフレームをＤＣＢポートから転送したりする。
【０００５】
フレームを転送する際の経路は、例えば所定のプロトコルを用いて中継装置間で事前に選択され、転送情報として各中継装置で保持される。中継装置は、フレームを転送する際、転送情報に基づいて、フレームを転送するポートを特定する。転送情報は、例えば、ネットワークに変更（経路の切断など）があった場合に書き換えられる。
【０００６】
なお、データの中継に複数の通信経路（パス）を利用できるとき、複数のパスのうち故障しているパスを管理し、データの転送経路を故障しているパスから故障していないパスに切り替えるように制御するクロスコネクト構成が提案されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１１−５０８５２３号公報
【特許文献２】特開２００８−５２４９３６号公報
【特許文献３】特開２００５−２６７５９９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上記のように、中継装置には、第１の種類のフレームおよび第１の種類のフレームを含めることが可能な第２の種類のフレームを中継可能なものがある。このような中継装置において、転送情報により特定されたポートからフレームを送出することが必ずしも効率的であるとは限らない。なぜなら、そのポートの負荷が高いことがあり、当該ポートから更にフレームを送出すると負荷を更に増大させ、通信遅延の要因になり得るからである。
【０００９】
このとき、アクセス先のノードが接続する他の中継装置に対して別の種類のポート（例えば、ＦＣに対するＤＣＢ）を介した経路が存在することがある。他の中継装置に対してフレームを送信する際、転送情報により定められたポートが通常は利用されるため、当該別の種類のポートの負荷が低い可能性がある。ところが、転送情報が書き換わらない限り、当該フレームは転送情報で定められた同じポートから送出される。このため、当該ポートの代わりに、別の種類のポートを転送先ポートとして利用することが困難であった。
【００１０】
一側面では、本発明は、通信経路を効率的に利用することができる中継装置および中継方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
一実施態様によれば、第１の種類のフレームおよび第１の種類のフレームを含めることが可能な第２の種類のフレームを中継するために用いられる中継装置が提供される。中継装置は、複数の第１のポートと複数の第２のポートと記憶部と制御部とを有する。複数の第１のポートは、複数の他の中継装置に対して第１の種類のフレームを送信するためのポートである。複数の第２のポートは、複数の他の中継装置に対して第２の種類のフレームを送信するためのポートである。記憶部は、複数の第２のポートと複数の他の中継装置との対応を示す第１の転送情報を記憶する。制御部は、第１の種類のフレームの転送先のポートを特定するための第２の転送情報に基づいて、他の中継装置に接続されたノードへアクセスするための第１の種類のフレームの転送先のポートを複数の第１のポートの中から特定した後に、特定した第１のポートの負荷に応じて第１の種類のフレームを含む第２の種類のフレームを生成し、第１の転送情報に基づいて、複数の第２のポートの中から第２の種類のフレームの転送先の第２のポートを特定し、第１の種類のフレームを特定した第１のポートから送信する代わりに、第２の種類のフレームを特定した第２のポートから送信する。
【００１２】
また、一実施態様によれば、第１の種類のフレームおよび第１の種類のフレームを含めることが可能な第２の種類のフレームを中継するために用いられる中継装置が提供される。中継装置は、複数の第１のポートと複数の第２のポートと記憶部と制御部とを有する。複数の第１のポートは、複数の他の中継装置に対して第１の種類のフレームを送信するためのポートである。複数の第２のポートは、複数の他の中継装置に対して第２の種類のフレームを送信するためのポートである。記憶部は、複数の第１のポートと複数の他の中継装置との対応を示す第１の転送情報を記憶する。制御部は、第１の種類のフレームの転送先のポートを特定するための第２の転送情報に基づいて、他の中継装置に接続されたノードへアクセスするための第１の種類のフレームの転送先のポートを複数の第２のポートの中から特定した後に、特定した第２のポートの負荷に応じて、第１の転送情報を基に複数の第１のポートの中から第１の種類のフレームの転送先の第１のポートを特定し、第１の種類のフレームを含む第２の種類のフレームを特定した第２のポートから送信する代わりに、第１の種類のフレームを特定した第１のポートから送信する。
【００１３】
また、一実施態様によれば、第１の種類のフレームおよび第１の種類のフレームを含めることが可能な第２の種類のフレームを中継するための中継方法が提供される。中継方法では、複数の他の中継装置に対して第１の種類のフレームを送信するための複数の第１のポートと、複数の他の中継装置に対して第２の種類のフレームを送信するための複数の第２のポートと、複数の第２のポートと複数の他の中継装置との対応を示す第１の転送情報を記憶する記憶部と、を有する中継装置が、第１の種類のフレームの転送先のポートを特定するための第２の転送情報に基づいて、他の中継装置に接続されたノードへアクセスするための第１の種類のフレームの転送先のポートを複数の第１のポートの中から特定した後に、特定した第１のポートの負荷に応じて第１の種類のフレームを含む第２の種類のフレームを生成し、第１の転送情報に基づいて、複数の第２のポートの中から第２の種類のフレームの転送先の第２のポートを特定し、第１の種類のフレームを特定した第１のポートから送信する代わりに、第２の種類のフレームを特定した第２のポートから送信する。
【００１４】
また、一実施態様によれば、第１の種類のフレームおよび第１の種類のフレームを含めることが可能な第２の種類のフレームを中継するための中継方法が提供される。中継方法では、複数の他の中継装置に対して第１の種類のフレームを送信するための複数の第１のポートと、複数の他の中継装置に対して第２の種類のフレームを送信するための複数の第２のポートと、複数の第１のポートと複数の他の中継装置との対応を示す第１の転送情報を記憶する記憶部と、を有する中継装置が、第１の種類のフレームの転送先のポートを特定するための第２の転送情報に基づいて、他の中継装置に接続されたノードへアクセスするための第１の種類のフレームの転送先のポートを複数の第２のポートの中から特定した後に、特定した第２のポートの負荷に応じて、第１の転送情報を基に複数の第１のポートの中から第１の種類のフレームの転送先の第１のポートを特定し、第１の種類のフレームを含む第２の種類のフレームを特定した第２のポートから送信する代わりに、第１の種類のフレームを特定した第１のポートから送信する。
【発明の効果】
【００１５】
一実施態様によれば、通信経路を効率的に利用することができる。
【図面の簡単な説明】
【００１６】
【図１】第１の実施の形態の中継装置を示す図である。
【図２】第２の実施の形態のストレージシステムを示す図である。
【図３】第２の実施の形態の中継装置のハードウェア例を示す図である。
【図４】第２の実施の形態の中継装置のソフトウェア例を示す図である。
【図５】第２の実施の形態のＦＣ転送テーブルの例を示す図である。
【図６】第２の実施の形態のネームサーバＤＢの例を示す図である。
【図７】第２の実施の形態のＭＡＣ転送テーブルの例を示す図である。
【図８】第２の実施の形態のポリシー管理テーブルの例を示す図である。
【図９】第２の実施の形態のフレームの例を示す図である。
【図１０】第２の実施の形態のＭＡＣアドレス登録例を示すフローチャートである。
【図１１】第２の実施の形態のフレーム転送例を示すフローチャートである。
【図１２】第３の実施の形態のストレージシステムの接続の例を示す図である。
【図１３】第３の実施の形態のＦＣ転送テーブルの例を示す図である。
【図１４】第３の実施の形態のＭＡＣ転送テーブルの例を示す図である。
【図１５】第４の実施の形態のフレーム転送例を示すフローチャートである。
【発明を実施するための形態】
【００１７】
以下、本実施の形態を図面を参照して説明する。
［第１の実施の形態］
図１は、第１の実施の形態の中継装置を示す図である。中継装置１は、第１の種類のフレーム５および第１の種類のフレーム５を含めることが可能な第２の種類のフレーム６を中継する。中継装置１は、中継装置２と接続されている。中継装置２は、ノード３と接続されている。中継装置１は、ノード４と接続されている。ノード３，４は、情報処理装置やストレージ装置などである。中継装置１は、ポート１ａ，１ｂ、記憶部１ｃおよび制御部１ｄを有する。中継装置２も中継装置１と同様の機能を有する。
【００１８】
ポート１ａは、中継装置２に対して第１の種類のフレーム５を送信する。ポート１ａは、例えばＦＣポートである。第１の種類のフレーム５は、例えばＦＣフレームである。
ポート１ｂは、中継装置２に対して第２の種類のフレーム６を送信する。ポート１ｂは、例えばＤＣＢポートである。第２の種類のフレーム６は、例えばＦＣフレームをカプセル化可能なイーサネットフレームである。すなわち、中継装置１は、異なる種類のポート１ａ，１ｂを介した２つの通信経路で中継装置２に対して接続されている。なお、中継装置１は中継装置２と直接接続されてもよいし、間接的に接続されてもよい。例えば、中継装置１，２の間に別の中継装置を設けてもよい。
【００１９】
記憶部１ｃは、第１の種類のフレームの転送先のポートを特定するための転送情報を記憶する。転送情報はルーティング情報やルーティングテーブルなどと呼ばれることもある。例えば、ＦＣｏＥではＦＳＰＦ（Fabric Shortest Path First）のプロトコルを用いて、中継装置間で事前にネットワークのトポロジ情報を共有し、転送情報を作成する。転送情報は各中継装置で保持され、フレームの転送先のポートを特定するために用いられる。
【００２０】
制御部１ｄは、記憶部１ｃに記憶された転送情報に基づいて、中継装置２に接続されたノード３へアクセスするための第１の種類のフレーム５の転送先のポートをポート１ａと特定した後に、ポート１ａの負荷を確認する。制御部１ｄは、ポート１ａの負荷に応じて第１の種類のフレーム５を含む第２の種類のフレーム６を生成する。制御部１ｄは、第１の種類のフレーム５をポート１ａから送信する代わりに、第２の種類のフレーム６をポート１ｂから送信する。例えば、制御部１ｄは、ポート１ａの状態に応じた負荷を示す値が所定の閾値よりも高い場合に、第２の種類のフレーム６を生成し、ポート１ｂから送信することが考えられる。
【００２１】
中継装置１によれば、制御部１ｄにより、転送情報に基づいて、中継装置２に接続されたノード３へアクセスするための第１の種類のフレーム５の転送先のポートがポート１ａと特定される。その後、制御部１ｄにより、ポート１ａの負荷に応じて、第１の種類のフレーム５を含む第２の種類のフレーム６が生成される。更に、制御部１ｄにより、第１の種類のフレームがポート１ａから送信される代わりに、第２の種類のフレーム６がポート１ｂから送信される。
【００２２】
これにより、通信経路を効率的に利用することができる。例えば、中継装置１は中継装置２とポート１ａ，１ｂを介して接続される。すると、ノード４からノード３にアクセスする場合、中継装置１上ではポート１ａ，１ｂの両方を介した２種類（例えばＦＣおよびＤＣＢ）の通信経路が形成される。
【００２３】
ここで、例えば転送情報に従ってポート１ａが転送先に選択されると、ポート１ｂを介した通信経路が存在していたとしても、ポート１ｂを転送先のポートとして利用することが困難であった。このため、ポート１ａの負荷が高い場合にも、ポート１ａから第１の種類のフレーム５を送出してしまい、通信遅延の要因となっていた。
【００２４】
そこで、第１の実施の形態の中継装置１では、転送情報に従ってポート１ａを転送先と特定した後に、ポート１ａの負荷に応じて、第１の種類のフレーム５を含む第２の種類のフレーム６を生成して、ポート１ｂから代替で送出可能とした。これにより、例えば、ポート１ａの負荷が高い場合に、ポート１ａが転送先ポートと特定されたとしても、当該ポート１ａに対する迂回経路としてポート１ｂを有効に利用することができる。
【００２５】
なお、第１の実施の形態では、中継装置１が、第１の種類のフレーム５をポート１ａから転送すると特定した場合を説明した。一方、転送情報の内容によっては、中継装置１が、第１の種類のフレーム５をポート１ｂから転送すると特定する場合も考えられる。この場合にも、ポート１ｂの負荷に応じて、第１の種類のフレーム５を含む第２の種類のフレーム６をポート１ｂから送信する代わりに、第１の種類のフレーム５をポート１ａから送信することもできる。よって、この場合にも２つの通信経路を効率的に利用できる。
【００２６】
［第２の実施の形態］
図２は、第２の実施の形態のストレージシステムを示す図である。第２の実施の形態のストレージシステムは、サーバ１０，１０ａ、ストレージ装置２０，２０ａおよび中継装置１００，２００を含む。第２の実施の形態のストレージシステムは、サーバ１０，１０ａがＳＡＮを介してストレージ装置２０，２０ａにアクセスするシステムである。サーバ１０，１０ａおよびストレージ装置２０，２０ａは、ＳＡＮに接続するノードである。ＳＡＮは、中継装置１００，２００を含む。
【００２７】
サーバ１０，１０ａは、ストレージ装置２０，２０ａにデータを書き込んだり、ストレージ装置２０，２０ａに格納されたデータを読み出したりするサーバコンピュータである。
【００２８】
ストレージ装置２０，２０ａは、サーバ１０，１０ａの処理に用いるデータを格納するための外部記憶装置である。
中継装置１００，２００は、サーバ１０，１０ａおよびストレージ装置２０，２０ａの間の通信を中継する装置である。中継装置１００，２００は、２種類のインタフェースを介してカスケード接続されている。第１のインタフェースはＦＣである。第２のインタフェースはＤＣＢである。第２のインタフェースは、ＣＥＥ（Converged Enhanced Ethernet）やＤＣＥ（Data Center Ethernet）などと呼ばれる拡張したイーサネットでもよい。ＤＣＢ，ＣＥＥ，ＤＣＥなどのようにＦＣフレームをカプセル化し、ＦＣと同様の信頼性をもった拡張したイーサネットを無損失（loss less）イーサネットと呼ぶことがある。
【００２９】
中継装置１００，２００は、ＦＣにおけるファブリックと呼ばれるトポロジの要素であり、複数のノード間の通信を行う。ファブリックという用語は、複数の中継装置を含む１つのネットワークの単位を指す用語として用いられることもある。
【００３０】
なお、中継装置１００のドメイン番号を“０ｘ０１”、中継装置２００のドメイン番号を“０ｘ０２”とする。ドメイン番号とは、ファブリック内で中継装置１００，２００に一意に割り当てられる識別情報である。中継装置１００，２００は、ＦＣｏＥに対応している。中継装置１００，２００は、イーサネットフレーム内にＦＣフレームをカプセル化したり、イーサネットフレームからＦＣフレームを抽出したりする機能を有する。以下の説明では、ＦＣフレームをカプセル化したイーサネットフレームを、ＦＣｏＥフレームと呼ぶことがある。
【００３１】
図３は、第２の実施の形態の中継装置のハードウェア例を示す図である。中継装置１００は、制御部１１０、メモリ１２０、スイッチ１３０，１４０、ＤＣＢポート１３１，１３２，１３３，１３４およびＦＣポート１４１，１４２，１４３，１４４を有する。
【００３２】
制御部１１０は、中継装置１００における各種フレームの転送処理を制御する電子回路である。制御部１１０は、例えばＡＳＩＣ（Application Specific Integrated Circuit）やＦＰＧＡ（Field Programmable Gate Array）でもよく、メモリ１２０に記憶されたファームウェアのプログラムを実行する汎用のプロセッサでもよい。
【００３３】
メモリ１２０は、制御部１１０が実行するプログラムや処理に用いるデータを記憶する記憶部である。メモリ１２０は、揮発性および不揮発性のメモリを含む。例えば、メモリ１２０は、フレーム転送に用いる各種情報を記憶する。
【００３４】
スイッチ１３０，１４０は、制御部１１０からの指示に応じて各種フレームの振り分けを行う装置内スイッチである。
スイッチ１３０は、ＤＣＢポート１３１，１３２，１３３，１３４に接続されている。ＤＣＢポート１３１，１３２，１３３，１３４は、ＤＣＢのインタフェースである。
【００３５】
スイッチ１４０は、ＦＣポート１４１，１４２，１４３，１４４に接続されている。ＦＣポート１４１，１４２，１４３，１４４は、ＦＣのインタフェースである。
中継装置２００は、制御部２１０、メモリ２２０、スイッチ２３０，２４０、ＤＣＢポート２３１，２３２，２３３，２３４およびＦＣポート２４１，２４２，２４３，２４４を有する。各ユニットは、中継装置１００の同名のユニットと同様である。
【００３６】
ここで、サーバ１０はＣＮＡ（Converged Network Adapter）１１を有している。ＣＮＡ１１は、ＦＣｏＥフレームをＤＣＢポートから送信可能なアダプタである。ＣＮＡ１１が備えるＤＣＢポートを仮想ノードポート（ＶＮ＿Ｐｏｒｔ：Virtual Node Port）と呼ぶことがある。
【００３７】
また、サーバ１０ａは、ＨＢＡ（Host Bus Adapter）１１ａを有している。ＨＢＡ１１ａは、ＦＣフレームをＦＣポートから送信するアダプタである。ＨＢＡ１１ａが備えるＦＣポートをノードポート（Ｎ＿Ｐｏｒｔ：Node Port）と呼ぶことがある。
【００３８】
ストレージ装置２０もサーバ１０と同様にＣＮＡを有している。ストレージ装置２０は、ＦＣｏＥフレームからＦＣフレームを抽出し、ＦＣフレームに応じたデータ操作を行う。このため、サーバ１０は、ストレージ装置２０にアクセスする場合、ＦＣｏＥフレームを中継装置１００に送信する。なお、ストレージ装置２０は、ＦＣｏＥ以外のイーサネットを用いた他のプロトコルによりアクセス可能でもよい。他のプロトコルとしては、例えば、ｉＳＣＳＩ（internet Small Computer System Interface）、ｉＦＣＰ（internet Fibre Channel Protocol）、ＦＣＩＰ（Fibre Channel over Internet Protocol）などが考えられる。ストレージ装置２０をＮＡＳ（Network Attached Storage）として利用する場合には、当該ＮＡＳにアクセスするためのプロトコルでもよい。その場合、制御部１１０，２１０は、ＦＣとこれら何れかのプロトコルとを相互に変換するゲートウェイの機能を有してもよい。
【００３９】
ストレージ装置２０ａもサーバ１０ａと同様にＦＣ接続用のアダプタを有している。
更に、第２の実施の形態のストレージシステムは、パスＲ１１，Ｒ１２，Ｒ２１，Ｒ２２，Ｒ３１，Ｒ３２を有する。何れのパスも、例えばＦＣケーブルにより相互のポートが物理的に結ばれることで形成される。
【００４０】
パスＲ１１は、ＣＮＡ１１とＤＣＢポート１３１とを接続したパスである。パスＲ１２は、ＨＢＡ１１ａとＦＣポート１４１とを接続したパスである。パスＲ２１は、ＤＣＢポート１３３，２３１を接続したパスである。パスＲ２２は、ＦＣポート１４３，２４１を接続したパスである。パスＲ３１は、ＤＣＢポート２３３とストレージ装置２０のＣＮＡとを接続したパスである。パスＲ３２は、ＦＣポート２４３とストレージ装置２０ａのＦＣ用のアダプタとを接続したパスである。
【００４１】
このように、中継装置１００，２００の間にプロトコルの異なる２種類のパスＲ２１，Ｒ２２が存在している。パスＲ２１はＤＣＢパスである。パスＲ２２はＦＣパスである。
ここで、中継装置１００では、ＤＣＢポート１３１，１３２，１３３，１３４のそれぞれに対して、各中継装置上で各ポートを識別するためのポート番号“０ｘ０１”、“０ｘ０２”、“０ｘ０３”、“０ｘ０４”が仮想的に割り当てられているとする。図３ではポート番号の１桁のみを、例えば、“０ｘ０１”であれば“（１）”のように括弧記号で括った番号により示している。また、中継装置１００では、ＦＣポート１４１，１４２，１４３，１４４のそれぞれに対して、ポート番号“０ｘ０５”、“０ｘ０６”、“０ｘ０７”、“０ｘ０８”が割り当てられているとする。
【００４２】
同様に、中継装置２００では、ＤＣＢポート２３１，２３２，２３３，２３４のそれぞれに対して、ポート番号“０ｘ０１”、“０ｘ０２”、“０ｘ０３”、“０ｘ０４”が仮想的に割り当てられているとする。また、中継装置２００では、ＦＣポート２４１，２４２，２４３，２４４のそれぞれに対して、ポート番号“０ｘ０５”、“０ｘ０６”、“０ｘ０７”、“０ｘ０８”が割り当てられているとする。
【００４３】
図４は、第２の実施の形態の中継装置のソフトウェア例を示す図である。制御部１１０は、中継部１１１、経路選択部１１２およびネームサーバ１１３を有する。ここで、制御部１１０の各ユニットの機能は、別個のＡＳＩＣやＦＰＧＡにより実装されてもよい。また、各ユニットの機能は、プロセッサとして実装された制御部１１０が実行するプログラムのモジュールにより実装されてもよい。中継装置２００も中継装置１００と同様の機能を有する。
【００４４】
中継部１１１は、ＦＣフレーム用の転送情報を生成し、メモリ１２０に格納する。当該転送情報は、ＦＣフレームの宛先と自身が備えるＦＣポートとの対応関係を定義した情報である。例えば、中継部１１１は、ファブリックの構成時にＦＳＰＦの方法に従ってＦＣフレーム用の転送情報を生成する。より具体的には、各ＦＣポートにつき、あるドメイン番号に対するホップ数や所定のリンクコストの比較を行って、当該ドメイン番号に対して最短の通信経路となるＦＣポートを割り当てる。
【００４５】
また、中継部１１１は、ＦＳＰＳとは異なる方法（詳細は後述する）でＦＣｏＥフレーム用の転送情報を生成し、メモリ１２０に格納する。当該転送情報は、転送先のＭＡＣ（Media Access Control）アドレスとＦＣフレームの宛先と自身が備えるＤＣＢポートとの対応関係を定義した情報である。
【００４６】
なお、中継部１１１は、通常のイーサネットフレームの転送先の情報を生成し、メモリ１２０に格納してもよい。ここで、通常のイーサネットフレームとは、ＦＣフレームをカプセル化していないイーサネットフレームである。通常のイーサネットフレームの転送情報は、各ＤＣＢポートを介したＭＡＣアドレスの学習により行える。中継部１１１は、当該転送情報に基づき通常のイーサネットフレームの中継を行ってもよい。イーサネットのＭＡＣ機能を有するＡＳＩＣなどを、制御部１１０とは別個に（例えば、制御部１１０とスイッチ１３０との間に）設けてもよい。その場合、当該ＭＡＣ機能を有するＡＳＩＣなどは後述するＶＬＡＮタグに基づいてＦＣｏＥフレームを特定し、制御部１１０に出力できる。
【００４７】
中継部１１１は、ＤＣＢポート１３１を介してサーバ１０から受信したＦＣｏＥフレームからＦＣフレームを取得し、経路選択部１１２に出力する。ここで、サーバ１０は、ＦＣフレームをカプセル化して送信する際、ＦＣｏＥフレームに所定のＶＬＡＮ（Virtual LAN）タグを挿入する。すると、中継部１１１はＶＬＡＮタグによって当該ＦＣｏＥフレームがＦＣフレームをカプセル化したものであることを識別できる。何れのＶＬＡＮタグを指定すればよいかは、中継装置１００，２００間で予め決定される。中継部１１１は、何れのＶＬＡＮタグを指定すればよいかを、サーバ１０に予め指定する。また、中継部１１１は、ＦＣポート１４１を介してサーバ１０ａから受信したＦＣフレームを経路選択部１１２に出力する。
【００４８】
更に、中継部１１１は、経路選択部１１２が決定した転送先のポート（転送先ポート）を用いてＦＣフレームを転送する。このとき、転送先ポートがＦＣポートである場合はＦＣフレームのままでよい。転送先ポートがＤＣＢポートである場合は、ＦＣフレームをイーサネットフレーム内にカプセル化してＦＣｏＥフレームを生成し、ＦＣフレームの代わりとする。
【００４９】
経路選択部１１２は、中継部１１１から取得したＦＣフレームの宛先を参照し、メモリ１２０に記憶されたＦＣフレーム転送用の転送情報に基づいて転送先のＦＣポートを特定する。経路選択部１１２は、転送先のＦＣポートを特定すると、当該ＦＣポートの負荷状態を確認する。経路選択部１１２は、確認結果に応じて転送先ポートを当該ＦＣポートおよびＤＣＢポートの何れにするかを更に決定する。
【００５０】
ネームサーバ１１３は、あるノード（アクセス元）が別のノード（アクセス先）にアクセスする際に、アクセス先のノードの宛先を解決するサーバである。例えば、サーバ１０，１０ａおよびストレージ装置２０，２０ａが備えるアダプタのポートには、当該ポートを一意に識別するためのポート名がベンダにより予め付与されている。当該ポート名をＷＷＰＮ（World Wide Port Name）と呼ぶことがある。
【００５１】
ネームサーバ１１３は、例えば、ノードが中継装置１００に接続された際に、ノードからＷＷＰＮを取得する。ネームサーバ１１３は、取得したＷＷＰＮに対してファブリック内で一意のポートＩＤ（IDentifier）を付与する。ポートＩＤは、ファブリック内でのアドレスに相当する情報である。ＤＣＢポートに対しても仮想的なポートＩＤを割り当てる。ＷＷＰＮとポートＩＤとの対応関係を含む情報をネームサーバＤＢ（DataBase）と呼ぶことがある。ネームサーバＤＢは、中継装置１００，２００間で共有される。ネームサーバ１１３は、ネームサーバＤＢをメモリ１２０に格納する。
【００５２】
ここで、各ノードでは、例えば、アクセスを予定するノードのＷＷＰＮがシステム管理者により予め指定される。各ノードは、別のノードにＦＣでアクセスする際、アクセス先ノードのＷＷＰＮに対応するポートＩＤをネームサーバ１１３により解決し、当該ポートＩＤをＦＣフレームの宛先に設定する。経路選択部１１２は、ＦＣフレームの宛先に設定されたポートＩＤを参照して、転送先ポートを決定する。
【００５３】
なお、ネームサーバ１１３は、中継装置１００，２００の両方に設けてもよいし、何れか一方に設けてもよい。
図５は、第２の実施の形態のＦＣ転送テーブルの例を示す図である。図５（Ａ）はメモリ１２０に格納されるＦＣ転送テーブル１２１を例示している。図５（Ｂ）はメモリ２２０に格納されるＦＣ転送テーブル２２１を例示している。ＦＣ転送テーブル１２１，２２１は、ＦＣフレーム転送用の転送情報である。
【００５４】
ＦＣ転送テーブル１２１，２２１は、ドメイン番号およびポート番号の項目を含む。ドメイン番号の項目には、宛先のドメイン番号が登録される。ポート番号の項目には、宛先のドメイン番号に対する転送先ＦＣポートのポート番号が登録される。
【００５５】
例えば、ＦＣ転送テーブル１２１には、ドメイン番号“０ｘ０２”に対してポート番号“０ｘ０７”が登録されている。これは、中継装置２００（ドメイン番号“０ｘ０２”）に対する転送先ＦＣポートのポート番号が“０ｘ０７”であることを示す。ポート番号“０ｘ０７”は、ＦＣポート１４３に対応する。
【００５６】
また、例えば、ＦＣ転送テーブル２２１にはドメイン番号“０ｘ０１”に対してポート番号“０ｘ０５”が登録されている。これは、中継装置１００（ドメイン番号“０ｘ０１”）に対する転送先ＦＣポートのポート番号が“０ｘ０５”であることを示す。ポート番号“０ｘ０５”は、ＦＣポート２４１に対応する。
【００５７】
このように、中継装置１００，２００は、ポートＩＤおよびＦＣ転送テーブル１２１，２２１に基づいて、ＦＣフレームのエンドツーエンド（ｅｎｄ−ｔｏ−ｅｎｄ）の中継を行える。
【００５８】
図６は、第２の実施の形態のネームサーバＤＢの例を示す図である。ネームサーバＤＢ１２２は、メモリ１２０，１３０に格納される。ネームサーバＤＢ１２２は、ＷＷＰＮおよびポートＩＤの項目を含む。
【００５９】
ＷＷＰＮの項目には、ファブリックに接続するノード側ポート（ノードポートおよび仮想ノードポートを含む）に付与されたＷＷＰＮが登録される。ポートＩＤには、ＷＷＰＮに対応するポートＩＤが登録される。ここで、ＦＣではポートＩＤは、２４ｂｉｔの情報である。例えば、ポートＩＤの最上位の８ｂｉｔに中継装置のドメイン番号がマッピングされる。次の８ｂｉｔに当該中継装置が備えるポートのポート番号がマッピングされる。最下位の８ｂｉｔは例えば“０ｘ００”である。ポートＩＤは、ノード側ポートのアドレスに相当する。
【００６０】
ネームサーバＤＢ１２２では、例えば、ＷＷＰＮ“ＷＷＰＮ１”に対してポートＩＤ“０ｘ０１０１００”が割り当てられている。これは、ＷＷＰＮ“ＷＷＰＮ１”のノード側ポートが、中継装置１００（ドメイン番号“０ｘ０１”）のＤＣＢポート１３１（ポート番号“０ｘ０１”）に接続されていることを示す。
【００６１】
ここで、“ＷＷＰＮ１”は、ＣＮＡ１１上のポートのＷＷＰＮである。“ＷＷＰＮ２”は、ＨＢＡ１１ａ上のポートのＷＷＰＮである。“ＷＷＰＮ３”は、ストレージ装置２０のアダプタ上のポートのＷＷＰＮである。“ＷＷＰＮ４”は、ストレージ装置２０ａのアダプタ上のポートのＷＷＰＮである。
【００６２】
図７は、第２の実施の形態のＭＡＣ転送テーブルの例を示す図である。図７（Ａ）は、メモリ１２０に格納されるＭＡＣ転送テーブル１２３である。図７（Ｂ）は、メモリ２２０に格納されるＭＡＣ転送テーブル２２３である。ＭＡＣ転送テーブル１２３，２２３は、ＦＣｏＥフレーム転送用の転送情報である。
【００６３】
ＭＡＣ転送テーブル１２３，２２３は、ＭＡＣアドレス、ドメイン番号、状態およびポート番号の項目を含む。ＭＡＣアドレスの項目には、ＦＣｏＥフレームの転送先の中継装置のＭＡＣアドレスが登録される。ドメイン番号の項目には、宛先のドメイン番号が登録される。状態の項目には、ＦＣｏＥフレームの転送先ポートの状態が登録される。ポート番号の項目には、ＦＣｏＥフレームの転送先ＤＣＢポートのポート番号が登録される。
【００６４】
例えば、ＭＡＣ転送テーブル１２３には、ＭＡＣアドレスが“ＭＡＣ２”、ドメイン番号が“０ｘ０２”、状態が“接続”、ポート番号が“０ｘ０３”という情報が登録されている。これは、中継装置２００（ドメイン番号“０ｘ０２”）に対し、ＤＣＢポートを用いてＦＣｏＥフレームを転送する場合、ＤＣＢポート１３３（ポート番号“０ｘ０３”）から送信すればよいことを示す。また、ＦＣｏＥフレームの宛先ＭＡＣアドレスを“ＭＡＣ２”に設定すればよいことを示す。ここで、ＭＡＣアドレス“ＭＡＣ２”は、中継装置２００のＭＡＣアドレスである。
【００６５】
また、例えば、ＭＡＣ転送テーブル２２３には、ＭＡＣアドレスが“ＭＡＣ１”、ドメイン番号が“０ｘ０１”、状態が“接続”、ポート番号が“０ｘ０１”という情報が登録されている。これは、中継装置１００（ドメイン番号“０ｘ０１”）に対し、ＤＣＢポートを用いてＦＣｏＥフレームを転送する場合、ＤＣＢポート２３１（ポート番号“０ｘ０１”）から送信すればよいことを示す。また、ＦＣｏＥフレームの宛先ＭＡＣアドレスを“ＭＡＣ１”に設定すればよいことを示す。ここで、ＭＡＣアドレス“ＭＡＣ１”は、中継装置１００のＭＡＣアドレスである。
【００６６】
このように、中継装置１００，２００は、ＭＡＣアドレスおよびＭＡＣ転送テーブル１２３，２２３に基づいて、ＦＣｏＥフレームのホップバイホップ（ｈｏｐ−ｂｙ−ｈｏｐ）の中継を行うこともできる。
【００６７】
図８は、第２の実施の形態のポリシー管理テーブルの例を示す図である。ポリシー管理テーブル１２４は、メモリ１２０，２２０に格納される。ポリシー管理テーブル１２４は、ポリシーＩＤ、設定名および値の項目を含む。
【００６８】
ポリシーＩＤの項目には、ポリシーの識別情報が登録される。設定名の項目には、ポリシーの設定名が登録される。値の項目には、設定名に対する設定値が登録される。
例えば、ポリシー管理テーブル１２４には、ポリシーＩＤ“１”に対応するポリシーが登録されている。
【００６９】
例えば、設定名が“ＤＣＢ迂回処理”、値が“有効”という情報が登録されている。これは、ＦＣポートの負荷に応じてＤＣＢポートを迂回経路に利用するか否かの設定である。値“有効”は利用することを示す。値“無効”は利用しないことを示す。
【００７０】
また、例えば、設定名が“迂回負荷閾値”、値が“７５％”という情報が登録されている。これは、ＦＣポートに対してＤＣＢポートを迂回経路に利用する場合のＦＣポートの負荷の閾値を定義するものである。値“７５％”は、所定の負荷値が“７５％”以上（かつ、“ＤＣＢ迂回処理”が“有効”）の場合に、ＤＣＢポートを用いて迂回することを示す。
【００７１】
負荷値としては、例えば、現在の転送データ量が当該ポートの全帯域のどれほどの割合を占めているかを示す値が考えられる。当該割合は、過去の所定期間内の平均などにより求めてもよい。迂回負荷閾値は、運用に応じて適切な値を決定する。例えば、“５０％”や“１００％”などとしてもよい。他の負荷値としては、例えば、ＢＢ（Buffer to Buffer）クレジット（ポートがもつ受信バッファの数）の過去の所定期間内の遷移（例えば、ＢＢクレジットが所定値以下となった回数）が考えられる。ＢＢクレジットが０となった回数により、所定時間内のＢＢクレジットの枯渇回数を取得して、負荷の判断に用いてもよい。
【００７２】
また、例えば、設定名が“フェイルオーバ”、値が“有効”という情報が登録されている。これは、ＦＣポートが利用できなくなったとき（ＦＣパスが切断したとき）に、ＤＣＢポートを迂回経路に利用するか否かの設定である。値“有効”は利用することを示す。値“無効”は利用しないことを示す。
【００７３】
また、例えば、設定名が“適用範囲”、値が“Ｌｉｓｔ１”という情報が登録されている。これは、上記の各ポリシー設定を値“Ｌｉｓｔ１”で示されるノードのペア間に用いることを示す。例えば、“Ｌｉｓｔ１”はサーバ１０とストレージ装置２０とのペアである。
【００７４】
例えば、システムの管理者は、ポリシー管理テーブル１２４とは別個に、サーバ１０のＷＷＰＮ“ＷＷＰＮ１”とストレージ装置２０のＷＷＰＮ“ＷＷＰＮ３”との組を“Ｌｉｓｔ１”に対応付けた情報をメモリ１２０に登録しておく。これにより、当該組ごとにポリシーを細かく定義できる。このとき、宛先ＷＷＰＮと送信元ＷＷＰＮとを区別してもよいし、区別しなくてもよい。区別すれば、宛先／送信元ごとに一層細かくポリシーを設定できる。また、“Ｌｉｓｔ１”は複数のペアを含んでもよい。“適用範囲”に複数の値（例えば、“Ｌｉｓｔ１”および“Ｌｉｓｔ２”など）を登録してもよい。ポリシー管理テーブル１２４には、更に複数のポリシーを登録してもよい。例えば、適用範囲“Ｌｉｓｔ３”に対して、上記とは異なるポリシーＩＤのポリシーを登録することもできる。
【００７５】
図９は、第２の実施の形態のフレームの例を示す図である。図９ではＦＣｏＥフレーム５０およびＦＣフレーム６０を例示している。ＦＣｏＥフレーム５０は、ＳＯＦ（Start Of Frame）、宛先ＭＡＣアドレス、送信元ＭＡＣアドレス、ＶＬＡＮタグ、タイプ、データおよびＥＯＦ（End Of Frame）のフィールドを含む。データのフィールドよりも前側（ＳＯＦ側）のフィールドのうちＳＯＦを除くフィールド群がヘッダである。
【００７６】
ＳＯＦは、ＦＣｏＥフレーム５０の開始を示す情報を設定するフィールドである。宛先ＭＡＣアドレスは、ＦＣｏＥフレーム５０の宛先の中継装置またはノードのＭＡＣアドレスを設定するフィールドである。送信元ＭＡＣアドレスは、ＦＣｏＥフレーム５０の送信元の中継装置またはノードのＭＡＣアドレスを設定するフィールドである。ＶＬＡＮタグは、ＶＬＡＮタグ番号を設定するフィールドである。ＦＣフレーム６０をカプセル化する場合、所定のＶＬＡＮタグ番号を設定する。タイプは、ＦＣｏＥフレーム５０のタイプを設定するフィールドである。例えば、ＦＣフレーム６０をカプセル化する場合、タイプにＦＣｏＥを示す所定の値を設定する。データは、ＦＣフレーム６０をカプセル化する際に、ＦＣフレーム６０を含めることができるフィールドである。ＥＯＦは、ＦＣｏＥフレーム５０の終了を示す情報を設定するフィールドである。
【００７７】
ＦＣフレーム６０は、ＳＯＦ、宛先アドレス、送信元アドレス、ＦＣペイロードおよびＥＯＦのフィールドを含む。ＦＣペイロードのフィールドよりも前側（ＳＯＦ側）のフィールドのうちＳＯＦを除くフィールド群がヘッダである。
【００７８】
ＳＯＦは、ＦＣフレーム６０の開始を示す情報を設定するフィールドである。宛先アドレスは、ＦＣフレーム６０の宛先のポートＩＤ（Ｄ＿ＩＤ：Destination ID）を設定するフィールドである。送信元アドレスは、ＦＣフレーム６０の送信元のポートＩＤ（Ｓ＿ＩＤ：Source ID）を設定するフィールドである。ＦＣペイロードは、ＦＣアクセスの要求や応答に応じたデータを設定するフィールドである。ＥＯＦは、ＦＣフレーム６０の終了を示す情報を設定するフィールドである。
【００７９】
次に、以上の構成のストレージシステムの処理手順を説明する。まず、中継装置１００，２００におけるＭＡＣ転送テーブル１２３，２２３へのＭＡＣアドレスの登録手順を説明する。
【００８０】
図１０は、第２の実施の形態のＭＡＣアドレス登録例を示すフローチャートである。以下、図１０に示す処理をステップ番号に沿って説明する。なお、以下では、中継装置１００の手順を説明するが、中継装置２００も同様の手順を実行する。ここで、以下のステップＳ１１の直前では、パスＲ２１，２２は接続されていないものとする。
【００８１】
（ステップＳ１１）中継装置１００，２００の間でパスＲ２２が接続される。すると、中継装置１００，２００の間でＦＣ接続が確立する。中継部１１１は、中継装置２００との間でパスＲ２２によるＦＣ接続が確立したことを検知する。中継部１１１は、中継装置２００との間で通信開始のための所定の手順を実行する。そのために、例えば、ＳＷ＿ＩＬＳ（Switch Fabric Internal Link Service）と呼ばれる一群のコマンドを実行する。その中で、ＦＳＰＳによるパス選択を行う。これにより、中継装置１００，２００は、ＦＣ転送テーブル１２１，２２１を作成する。
【００８２】
（ステップＳ１２）中継部１１１は、中継装置２００のＭＡＣアドレス“ＭＡＣ２”およびドメイン番号“０ｘ０２”を、パスＲ２２を介して制御部２１０から取得し、メモリ１２０に記憶されたＭＡＣ転送テーブル１２３に登録する。当該ＭＡＣアドレスに対応する状態およびポート番号は未定のため、ＭＡＣ転送テーブル１２３の状態およびポート番号の項目は設定なしとなる。ここで、中継装置２００が他の中継装置と更に接続されており、中継装置２００は他の中継装置のドメイン番号をＭＡＣ転送テーブル２２３に登録していることもある。その場合、中継部１１１は、当該他の中継装置のドメイン番号も中継装置２００から取得し、中継装置２００のＭＡＣアドレスに対応付けてＭＡＣ転送テーブル１２３に登録する。ただし、状態およびポート番号の項目は未定のため、設定なしとする。
【００８３】
（ステップＳ１３）中継装置１００，２００の間でパスＲ２１が接続される。すると、中継装置１００，２００の間でＤＣＢ接続が確立する。中継部１１１は、中継装置２００との間でパスＲ２１によりＤＣＢ接続が確立したことを検知する。
【００８４】
（ステップＳ１４）中継部１１１は、パスＲ２１を介して中継装置２００のＭＡＣアドレスを確認する。例えば、中継部１１１は、他の中継装置の死活監視用のマルチキャストフレームをパスＲ２１から周期的に送信する。中継部１１１は、パスＲ２１を介して中継装置２００から応答（イーサネットフレーム）を受信する。中継部１１１は、当該イーサネットフレームの送信元ＭＡＣアドレスを確認する。これにより、パスＲ２１で接続された（ＤＣＢポート１３３の先に接続された）中継装置２００のＭＡＣアドレスの存在を確認できる。中継部１１１は、ＤＣＢポート１３３の接続先のＭＡＣアドレスが、ステップＳ１２でＭＡＣ転送テーブル１２３に登録した中継装置２００のＭＡＣアドレスに一致することを確認する。
【００８５】
（ステップＳ１５）中継部１１１は、ＭＡＣ転送テーブル１２３の当該ＭＡＣアドレスに対応するポート番号の項目にＤＣＢポート１３３のポート番号“０ｘ０３”を設定し、状態の項目に“接続”を設定する。
【００８６】
このようにして、中継装置１００は、中継装置２００のＭＡＣアドレスとＤＣＢポート１３３と中継装置２００のドメイン番号との対応関係をＭＡＣ転送テーブル１２３に登録する。このとき、中継装置１００は、ＭＡＣ転送テーブル１２３をＦＳＰＳとは異なる方法で生成することで、ＦＳＰＳで生成されたＦＣ転送テーブル１２１とは別個に、ＭＡＣ転送テーブル１２３を保持できる。
【００８７】
なお、中継部１１１は、ＭＡＣ転送テーブル１２３に登録されたＤＣＢポートの状態を監視する。例えば、中継部１１１は、パスＲ２１（ＤＣＢパス）が切断された場合は、対応するＭＡＣアドレスの状態を“切断”に変更する。中継部１１１は、“切断”の状態のまま所定時間が経過したＭＡＣアドレスのエントリを、ＭＡＣ転送テーブル１２３から削除する。これにより、ＭＡＣ転送テーブル１２３に無駄なエントリが残留するのを防げる。更に、中継部１１１は、“切断”の状態になった後もマルチキャストフレームを周期的に送信して、ＭＡＣ転送テーブル１２３にエントリされたＭＡＣアドレスの死活監視を行う。“切断”の状態になった後、所定時間内に応答のイーサネットフレームを受信できた場合は、当該ＭＡＣアドレスの状態を“接続”に変更する。
【００８８】
次に、ＭＡＣ転送テーブル１２３に基づくフレーム転送の手順を説明する。以下の説明は、上記ステップＳ１５が完了した後の手順である。また、中継装置１００，２００の間でＦＣ転送テーブル１２１，２２１を作成済であり、サーバ１０，１０ａおよびストレージ装置２０，２０ａに対するネームサーバＤＢ１２２を作成済であるとする。
【００８９】
ここで、以下の手順は、ＭＡＣ転送テーブル１２３，２２３よりもＦＣ転送テーブル１２１，２２１を優先的に用いて、ＦＣフレームの転送先を決定する場合である。
ＦＣ転送テーブルおよびＭＡＣ転送テーブルの何れを優先的に用いるかは、所定の基準に基づいて決定される。例えば、ＦＳＰＳで作成されたＦＣ転送テーブル１２１，２２１を優先的に用いる。または、例えば、先に生成された方の転送テーブルを優先的に利用するようにしてもよい。上記の例では、ＦＣのパスＲ２２の方がＤＣＢのパスＲ２１よりも早く接続される。このため、ＦＣ転送テーブル１２１，２２１の方がＭＡＣ転送テーブル１２３，２２３よりも早く生成されることになる。よって、ＦＣ転送テーブル１２１，２２１を優先的に用いる。
【００９０】
図１１は、第２の実施の形態のフレーム転送例を示すフローチャートである。以下、図１１に示す処理をステップ番号に沿って説明する。以下の説明では、サーバ１０がストレージ装置２０にアクセスする場合を例示する。
【００９１】
（ステップＳ２１）中継部１１１は、サーバ１０からパスＲ１１を介してＦＣｏＥフレームを受信する。ＦＣｏＥフレームの宛先ＭＡＣアドレスは、中継装置１００のＭＡＣアドレス“ＭＡＣ１”である。中継装置１００のＭＡＣアドレスは、例えば、サーバ１０がファブリックへの所定の接続手順を開始する前に、中継装置１００からサーバ１０に予め通知される。送信元ＭＡＣアドレスは、例えばＣＮＡ１１に予め付与された所定のＭＡＣアドレスである。ＦＣｏＥフレームに含まれるＦＣフレームの宛先アドレスは、ストレージ装置２０のポートＩＤ“０ｘ０２０３００”である。送信元アドレスは、サーバ１０のポートＩＤ“０ｘ０１０１００”である。サーバ１０は、ストレージ装置２０のＷＷＰＮ“ＷＷＰＮ３”を、ネームサーバ１１３に問い合わせることで、宛先アドレスに相当するポートＩＤ“０ｘ０２０３００”を解決できる。
【００９２】
（ステップＳ２２）中継部１１１は、ＦＣｏＥフレームのヘッダを除去して、ＦＣフレームを抽出し、経路選択部１１２に出力する。
（ステップＳ２３）経路選択部１１２は、ＦＣフレームに設定された宛先アドレスの上位８ｂｉｔから宛先のドメイン番号“０ｘ０２”を取得する。経路選択部１１２は、メモリ１２０に記憶されたＦＣ転送テーブル１２１を参照して、ＦＣポート１４３のポート番号“０ｘ０７”を取得する。
【００９３】
（ステップＳ２４）経路選択部１１２は、ＦＣポート１４３の状態を確認する。例えば、ＦＣポート１４３の現在の転送データ量や過去の所定期間内の転送データ量の平均などから、全帯域に対する使用帯域の割合を取得する。ＦＣポート１４３の接続／切断状況を確認してもよい。
【００９４】
（ステップＳ２５）経路選択部１１２は、メモリ１２０に記憶されたポリシー管理テーブル１２４を参照して、ポリシーを確認する。そして、経路選択部１１２は、ＦＣポート１４３の状態がポリシーに設定された条件（経路迂回のための条件）を満たすか否かを判定する。満たす場合、処理をステップＳ２６に進める。満たさない場合、処理をステップＳ３１に進める。ここで、経路選択部１１２は、何れのポリシーを確認すればよいかを、適用範囲により特定できる。本例では、ＦＣフレームの宛先アドレスが“０ｘ０２０３００”であり、送信元アドレスがポートＩＤ“０ｘ０１０１００”である。経路選択部１１２は、ネームサーバＤＢ１２２によりＷＷＰＮを逆引きし、宛先および送信元のＷＷＰＮの組（“ＷＷＰＮ３”、“ＷＷＰＮ１”）がセットされた“Ｌｉｓｔ１”を取得する。経路選択部１１２は、ポリシー管理テーブル１２４に登録されたポリシーのうち、適用範囲が“Ｌｉｓｔ１”であるポリシーＩＤ“１”のポリシーを確認すればよい。
【００９５】
（ステップＳ２６）経路選択部１１２は、メモリ１２０に記憶されたＭＡＣ転送テーブル１２３を参照して、迂回経路として利用するＤＣＢポート１３３を検索する。具体的には、経路選択部１１２は、ステップＳ２３で取得したＦＣフレームの宛先のドメイン番号“０ｘ０２”に対応するＭＡＣアドレス“ＭＡＣ２”およびポート番号“０ｘ０３”を検索する。
【００９６】
（ステップＳ２７）経路選択部１１２は、ステップＳ２６でＤＣＢポートを検索できたか否か、すなわち、迂回経路として利用するＤＣＢポートがあるか否か判定する。ある場合、処理をステップＳ２８に進める。ない場合、処理をステップＳ３１に進める。
【００９７】
（ステップＳ２８）経路選択部１１２は、ＭＡＣ転送テーブル１２３を参照して、ステップＳ２６で検索したＤＣＢポート（ここでは、ＤＣＢポート１３３）の状態が“接続”であるか否かを判定する。“接続”である場合、処理をステップＳ２９に進める。“接続”でない（例えば、“切断”）である場合、処理をステップＳ３１に進める。
【００９８】
（ステップＳ２９）経路選択部１１２は、ステップＳ２６で検索したＤＣＢポート（ここでは、ＤＣＢポート１３３）のポート番号“０ｘ０３”と、対応するＭＡＣアドレス“ＭＡＣ２”とを中継部１１１に通知する。中継部１１１は、ＦＣフレームをイーサネットフレーム内にカプセル化して、ＦＣｏＥフレームを生成する。当該ＦＣｏＥフレームの宛先ＭＡＣアドレスは“ＭＡＣ２”である。送信元ＭＡＣアドレスは中継装置１００のＭＡＣアドレス“ＭＡＣ１”である。ＶＬＡＮタグには、ＦＣｏＥに対応した所定の値を設定する。タイプには、ＦＣｏＥを示す所定の値を設定する。
【００９９】
（ステップＳ３０）中継部１１１は、ステップＳ２９で生成したＦＣｏＥフレームをポート番号“０ｘ０３”に対応するＤＣＢポート１３３から送信する。そして、処理を終了する。
【０１００】
（ステップＳ３１）中継部１１１は、ＦＣフレームをステップＳ２３で取得したポート番号“０ｘ０７”に対応するＦＣポート１４３から送信する。そして、処理を終了する。
このようにして、中継装置１００は、ＦＣで通常用いられる経路選択の方法で転送先のＦＣポートを特定した後に、ＦＣポートの状態に応じて、ＦＣｏＥフレームを生成する。中継装置１００は、ＦＣフレームをＦＣポートから送信する代わりに、生成したＦＣｏＥフレームをＤＣＢポートから送信する。
【０１０１】
なお、ステップＳ２５においてポリシー条件を満たす場合とは、例えば次の場合が考えられる。ポリシー管理テーブル１２４に登録されたポリシーＩＤ“１”では、ＤＣＢ迂回処理が“有効”、迂回負荷閾値が“７５％”である。よって、ＦＣポート１４３が接続中であり、ＦＣポート１４３の負荷値が７５％以上であれば、ＤＣＢポートを用いて迂回すると判断する。また、当該ポリシーでは、フェイルオーバが“有効”である。よって、ＦＣポート１４３が切断状態の場合にも、ＤＣＢポートを用いて迂回すると判断する。
【０１０２】
負荷を示す情報としては、上述したようにＢＢクレジットの所定時間内における枯渇回数などの他の情報を用いてもよい。例えば、ＢＢクレジットの所定時間内における枯渇回数が閾値に達していれば迂回し、当該閾値に達していなければ迂回しないなどの制御も可能である。
【０１０３】
また、ポリシーには、その他の条件を設定してもよい。例えば、ポリシーＩＤ“１”において、「迂回先のＤＣＢポートの負荷値がＦＣポートの負荷値よりも小さいときに、当該ＤＣＢポートを用いて迂回する」という条件を設定してもよい。このようにすれば、迂回することで却ってＤＣＢポートが過負荷となり、ＤＣＢ側の通信が遅延してしまうような事態を抑制できる。
【０１０４】
更に、ステップＳ２４，Ｓ２５は、ステップＳ２９の直前（ステップＳ２８のＹｅｓの判定の直後）に実行されてもよい。その場合、ステップＳ２３の次にステップＳ２６を実行する。
【０１０５】
ステップＳ３０の後、中継装置２００はＤＣＢポート２３１を介してＦＣｏＥフレームを受信する。中継装置２００は、ＦＣｏＥフレームのカプセル化を解除して、ＦＣフレームを取り出す。中継装置２００は、ＦＣフレームから宛先アドレス“０ｘ０２０３００”を取得する。中継装置２００は、宛先アドレスの上位８ｂｉｔから当該宛先が自身のドメイン番号を指定したものであることを検知する。また、宛先アドレスの次の８ｂｉｔから当該宛先がポート番号“０ｘ０３”を指定したものであることを検知する。すると、中継装置２００は、ＦＣフレームをカプセル化したＦＣｏＥフレームを生成し、ポート番号“０ｘ０３”に対応するＤＣＢポート２３３から送信する。こうして、サーバ１０は、パスＲ２１を介してもストレージ装置２０にアクセスできる。
【０１０６】
図１１では、サーバ１０からストレージ装置２０にアクセスする場合を例示したが、サーバ１０からストレージ装置２０ａにアクセスする場合にも同様にして、パスＲ２１をパスＲ２２の迂回経路として利用できる。ただし、中継装置２００とストレージ装置２０ａとは、ＦＣパスで接続されている。よって、中継装置２００はＦＣフレームを（カプセル化せずに）ＦＣポート２４３から送信すればよい。
【０１０７】
また、サーバ１０ａから、ストレージ装置２０，２０ａにアクセスする場合にも同様にして、パスＲ２１をパスＲ２２の迂回経路として利用できる。ただし、サーバ１０ａからアクセスする場合、中継部１１１はサーバ１０ａからＦＣフレームを受信する。経路選択部１１２は、中継部１１１から当該ＦＣフレームを取得し、上記ステップＳ２３からフレーム転送の手順を実行すればよい（この場合、ステップＳ２１，Ｓ２２をスキップする）。
【０１０８】
ストレージ装置２０，２０ａからサーバ１０，１０ａに対する応答の通信経路も、サーバ１０，１０ａからストレージ装置２０，２０ａにアクセスする場合と同様にして決定することができる。
【０１０９】
以上のように、第２の実施の形態のストレージシステムでは、異なるプロトコルのパスＲ２１，Ｒ２２について、両方のパスを有効に利用できる。
ここで、転送情報に従いＦＣフレームの転送先としてＦＣポートが選択された後では、ＤＣＢポートを介した通信経路が存在していたとしても、ＤＣＢポートを転送先のポートとして利用することが困難であった。このため、ＦＣポートの負荷が高い場合でもＦＣポートからＦＣフレームを送出してしまい、通信遅延の要因となっていた。
【０１１０】
そこで、第２の実施の形態の中継装置１００，２００は、ＦＣおよびＤＣＢ両方についての転送テーブルを保持する。そして、中継装置１００，２００は、ＦＣ転送先のＦＣポートを特定した後、当該ＦＣポートの状態を確認する。当該ＦＣポートが負荷の高い状態である場合、ＦＣフレームを含む（カプセル化した）イーサネットフレーム（ＦＣｏＥフレーム）を生成する。そして、ＦＣポートからＦＣフレームを送信する代わりに、ＤＣＢポートからＦＣｏＥフレームを送信する。これにより、ＦＣポートがリンクアップしていても、ＤＣＢポートをＦＣポートの迂回経路に活用できる。ＦＣポート側の転送情報は残るため、ＦＣポートの負荷が下がれば再びＦＣポートからフレームを転送でき、ＤＣＢポートを一時的な迂回路として利用できることになる。このようにして、ＦＣポートの負荷が過大となるのを抑制し、ＤＣＢポートおよびＦＣポートを介した通信経路を効率的に利用することができる。
【０１１１】
更に、転送情報を１つしかもたない場合、リンクダウンなどが生じてある経路が利用不可になると、当該転送情報を再作成して別の経路を利用可能とすることが考えられる。しかし、この場合、転送情報が再作成されるまで別の経路を利用できない。これに対し、中継装置１００，２００では、ＦＣおよびＤＣＢの両方についての転送テーブルを保持する。このため、ＦＣポートがリンクダウンしたとき、転送情報の書き換えを待つ場合よりも早く、ＤＣＢポートを迂回経路として利用開始できる。
【０１１２】
［第３の実施の形態］
以下、第３の実施の形態を説明する。前述の第２の実施の形態との相違点を主に説明し、共通の事項の説明を省略する。
【０１１３】
第２の実施の形態では、２台の中継装置１００，２００をパスＲ２１，Ｒ２２でカスケード接続する場合を例示した。一方、３台以上の中継装置を多段にカスケード接続して、接続するノード数の増加に対応することもできる。そこで、第３の実施の形態では中継装置の接続の他の例を説明する。
【０１１４】
図１２は、第３の実施の形態のストレージシステムの接続の例を示す図である。第３の実施の形態のストレージシステムでは、中継装置２００に中継装置３００を更に接続する。中継装置３００には、ストレージ装置２０ｂ，２０ｃを接続する。ストレージ装置２０ｂ，２０ｃは、ストレージ装置２０，２０ａと同様の外部記憶装置である。他の例では、サーバ１０，１０ａからストレージ装置２０ｂ，２０ｃへもアクセス可能にする。
【０１１５】
ここで、中継装置３００は、ＦＣｏＥ対応の中継装置である。中継装置３００のハードウェア例および機能例は、図３，４で説明した中継装置１００，２００のハードウェア例および機能例と同様である。ただし、中継装置３００にはドメイン番号“０ｘ０３”が付与されている。また、中継装置３００は、ＤＣＢポート３３１，３３２，３３３，３３４およびＦＣポート３４１，３４２，３４３，３４４を有する。
【０１１６】
ＤＣＢポート３３１，３３２，３３３，３３４は、ＤＣＢのインタフェースである。ＦＣポート３４１，３４２，３４３，３４４は、ＦＣのインタフェースである。ＤＣＢポート３３１，３３２，３３３，３３４には、それぞれポート番号“０ｘ０１”、“０ｘ０２”、“０ｘ０３”、“０ｘ０４”が仮想的に割り当てられているとする。また、ＦＣポート３４１，３４２，３４３，３４４には、それぞれポート番号“０ｘ０５”、“０ｘ０６”、“０ｘ０７”、“０ｘ０８”が割り当てられているとする。
【０１１７】
第３の実施の形態のストレージシステムは、パスＲ１１，Ｒ１２，Ｒ２１，Ｒ２２，Ｒ３１，Ｒ３２に加えて、パスＲ３３，Ｒ３４，Ｒ４１，Ｒ４２を有する。何れのパスも、例えばＦＣケーブルにより相互のポートが物理的に結ばれることで形成される。
【０１１８】
パスＲ３３は、ＤＣＢポート２３４，３３２を接続したパスである。パスＲ３４は、ＦＣポート２４４，３４２を接続したパスである。パスＲ４１は、ＤＣＢポート３３３とストレージ装置２０ｂのＣＮＡとを接続したパスである。パスＲ４２は、ＦＣポート３４３とストレージ装置２０ｃのＦＣ用アダプタとを接続したパスである。
【０１１９】
図１３は、第３の実施の形態のＦＣ転送テーブルの例を示す図である。図１３（Ａ）は、メモリ１２０に格納されるＦＣ転送テーブル１２１ａの例である。図１３（Ｂ）は、メモリ２２０に格納されるＦＣ転送テーブル２２１ａの例である。図１３（Ｃ）は、中継装置３００が保持するＦＣ転送テーブル３２１の例である。
【０１２０】
ＦＣ転送テーブル１２１ａ，２２１ａ，３２１は、ドメイン番号およびポート番号の項目を含む。各項目の設定内容は、図５で説明したＦＣ転送テーブル１２１，２２１と同様である。
【０１２１】
例えば、ＦＣ転送テーブル１２１ａには、ドメイン番号が“０ｘ０３”、ポート番号が“０ｘ０７”という情報が登録されている。これは、中継装置１００が中継装置３００（ドメイン番号“０ｘ０３”）に対してＦＣフレームを転送する場合、ＦＣポート１４３（ポート番号“０ｘ０７”）から送信すればよいことを示す。ここで、中継装置３００に対するＦＣフレームとは、ＦＣフレームのＤ＿ＩＤのドメイン番号部分に“０ｘ０３”が設定されたＦＣフレームである。
【０１２２】
また、例えば、ＦＣ転送テーブル２２１ａには、ドメイン番号が“０ｘ０３”、ポート番号が“０ｘ０８”という情報が登録されている。これは、中継装置２００が中継装置３００に対してＦＣフレームを転送する場合、ＦＣポート２４４（ポート番号“０ｘ０８”）から送信すればよいことを示す。
【０１２３】
また、例えば、ＦＣ転送テーブル３２１には、ドメイン番号が“０ｘ０１”、ポート番号が“０ｘ０６”という情報が登録されている。これは、中継装置３００が中継装置１００（ドメイン番号“０ｘ０１”）に対してＦＣフレームを転送する場合、ＦＣポート３４２（ポート番号“０ｘ０６”）から送信すればよいことを示す。
【０１２４】
図１４は、第３の実施の形態のＭＡＣ転送テーブルの例を示す図である。図１４（Ａ）は、メモリ１２０に格納されるＭＡＣ転送テーブル１２３ａの例である。図１４（Ｂ）は、メモリ２２０に格納されるＭＡＣ転送テーブル２２３ａの例である。図１４（Ｃ）は、中継装置３００が保持するＭＡＣ転送テーブル３２３の例である。
【０１２５】
ＭＡＣ転送テーブル１２３ａ，２２３ａ，３２３は、ＭＡＣアドレス、ドメイン番号、状態およびポート番号の項目を含む。各項目の設定内容は、図７で説明したＭＡＣ転送テーブル１２３，２２３と同様である。
【０１２６】
例えば、ＭＡＣ転送テーブル１２３ａには、ＭＡＣアドレスが“ＭＡＣ２”、ドメイン番号が“０ｘ０３”、状態が“接続”、ポート番号が“０ｘ０３”という情報が登録されている。これは、中継装置３００（ドメイン番号“０ｘ０３”）に対し、ＤＣＢポートを用いてＦＣｏＥフレームを転送する場合、ＤＣＢポート１３３（ポート番号“０ｘ０３”）から送信すればよいことを示す。また、ＦＣｏＥフレームの宛先ＭＡＣアドレスを“ＭＡＣ２”に設定すればよいことを示す。
【０１２７】
また、例えば、ＭＡＣ転送テーブル２２３ａには、ＭＡＣアドレスが“ＭＡＣ３”、ドメイン番号が“０ｘ０３”、状態が“接続”、ポート番号が“０ｘ０４”という情報が登録されている。これは、中継装置３００（ドメイン番号“０ｘ０３”）に対し、ＤＣＢポートを用いてＦＣｏＥフレームを転送する場合、ＤＣＢポート２３４（ポート番号“０ｘ０４”）から送信すればよいことを示す。また、ＦＣｏＥフレームの宛先ＭＡＣアドレスを“ＭＡＣ３”に設定すればよいことを示す。
【０１２８】
また、例えば、ＭＡＣ転送テーブル３２３には、ＭＡＣアドレスが“ＭＡＣ２”、ドメイン番号が“０ｘ０１”、状態が“接続”、ポート番号が“０ｘ０２”という情報が登録されている。これは、中継装置１００（ドメイン番号“０ｘ０１”）に対し、ＤＣＢポートを用いてＦＣｏＥフレームを転送する場合、ＤＣＢポート３３２（ポート番号“０ｘ０２”）から送信すればよいことを示す。また、ＦＣｏＥフレームの宛先ＭＡＣアドレスを“ＭＡＣ２”に設定すればよいことを示す。
【０１２９】
中継装置１００，２００，３００は、図１０で説明した手順により、ＭＡＣ転送テーブル１２３ａ，２２３ａ，３２３を作成する。ここで、ＭＡＣ転送テーブル１２３ａは、ＭＡＣ転送テーブル１２３と比べてドメイン番号“０ｘ０３”のエントリがある点が相違する。このエントリは、例えば次のようにしてＭＡＣ転送テーブル１２３ａに登録されたものである。
【０１３０】
中継装置３００が中継装置２００に接続されると、中継装置２００は図１０で説明した手順で中継装置３００への転送用のエントリをＭＡＣ転送テーブル２２３ａに登録する。当該エントリは、ＭＡＣアドレス“ＭＡＣ３”、ドメイン番号“０ｘ０３”、ポート番号“０ｘ０４”の対応関係を定義したものである。
【０１３１】
中継装置１００は、中継装置２００に新たなエントリが追加登録されると、当該エントリに含まれるドメイン番号（ここでは、“０ｘ０３”）を取得する。中継装置１００は、取得したドメイン番号“０ｘ０３”を取得元の中継装置２００のＭＡＣアドレス“ＭＡＣ２”に対応付けたエントリを、ＭＡＣ転送テーブル１２３ａに登録する。このとき、ＭＡＣアドレス“ＭＡＣ２”に対して、ドメイン番号“０ｘ０２”のエントリが既に存在しており、“ＭＡＣ２”に対してポート番号“０ｘ０３”、状態“接続”が登録済である。したがって、同一のＭＡＣアドレス“ＭＡＣ２”に対応するドメイン番号“０ｘ０３”のエントリについても、ポート番号“０ｘ０３”、状態“接続”を登録できる。ただし、ＤＣＢポート側に周期的に送信する死活監視用のマルチキャストフレームに対し、ＭＡＣアドレス“ＭＡＣ２”からの応答を受信したタイミングで、ドメイン番号“０ｘ０３”に対応するポート番号“０ｘ０３”および状態“接続”を登録してもよい。
【０１３２】
なお、中継装置１００，２００，３００は、死活監視用のマルチキャストフレームに対する応答に、自身のドメイン番号を含めてもよい。例えば、イーサネットフレームのデータフィールドにドメイン番号を含めることが考えられる。このようにすれば、各中継装置は、他の中継装置につき個々に、起動中か停止中かなどを詳細に確認できる。
【０１３３】
ここで、例えば、第３の実施の形態でも、第２の実施の形態と同様に、ＦＣ転送テーブル１２１ａ，２２１ａ，３２１を、ＭＡＣ転送テーブル１２３よりも優先的に用いて、ＦＣフレームの中継を行うことが考えられる。この場合にも、中継装置１００，２００，３００は、自身が保持するＭＡＣ転送テーブルに基づき、図１１で説明したフレーム転送の手順を実行することで、ＦＣパスがリンクアップしていたとしても、ＤＣＢパスをＦＣパスの迂回経路に利用できる。例えば、サーバ１０からストレージ装置２０ｂにアクセスする場合に、パスＲ２１をパスＲ２２の迂回経路に利用することもできるし、パスＲ３３をパスＲ３４の迂回経路に利用することもできる。これにより、第３の実施の形態のストレージシステムのように中継装置１００，２００，３００を３以上の複数段でカスケード接続する場合でも、ＦＣのパスＲ２２，Ｒ２４に対し、ＤＣＢのパスＲ２１，Ｒ３３を有効に利用することが可能となる。
【０１３４】
［第４の実施の形態］
以下、第４の実施の形態を説明する。前述の第２，第３の実施の形態との相違点を主に説明し、共通の事項の説明を省略する。
【０１３５】
第２，第３の実施の形態では、ＦＣ転送テーブルに基づいてＦＣポートを転送先ポートと特定した後に、当該ＦＣポートの負荷に応じて、転送先ポートをＤＣＢポートに変更することを例示した。一方、ＭＡＣ転送テーブルに基づいてＤＣＢポートを転送先ポートと特定した後に、当該ＤＣＢポートの負荷に応じて、転送先ポートをＦＣポートに変更することも考えられる。例えば、次のような場合である。
【０１３６】
第２の実施の形態において、ＦＣのパスＲ２２がリンクダウンして、ＤＣＢのパスＲ２１のみになった場合を考える。この場合、中継装置１００は、ＭＡＣ転送テーブル１２３に基づいて、ＦＣフレームをＦＣｏＥフレームにカプセル化し、パスＲ２１を用いてＦＣｏＥフレームを転送する。その後、ＦＣのパスＲ２２のリンクが、保守作業などによって回復することがある。このとき、中継装置１００は、既に利用しているＤＣＢのパスＲ２１を継続して利用するように制御することがある。このような場合も、ＤＣＢのパスＲ２１に対して、ＦＣのパスＲ２２を迂回経路に利用できることが好ましい。そこで、そのための手順を説明する。
【０１３７】
ここで、第４の実施の形態のストレージシステムは、第２の実施の形態のストレージシステムと同様である。また、以下の説明では、中継装置１００，２００において、ＦＣ転送テーブル１２１，２２１、ネームサーバＤＢ１２２、ＭＡＣ転送テーブル１２３，２２３およびポリシー管理テーブル１２４が作成済であるとする。ただし、ポリシー管理テーブル１２４には、ＤＣＢのパスＲ２１に対し、ＦＣのパスＲ２２を迂回経路として使用可能とするためのポリシーが登録されているとする。
【０１３８】
図１５は、第４の実施の形態のフレーム転送例を示すフローチャートである。以下、図１５に示す処理をステップ番号に沿って説明する。以下の説明では、サーバ１０がストレージ装置２０にアクセスする場合を例示する。
【０１３９】
（ステップＳ４１）中継部１１１は、サーバ１０からパスＲ１１を介してＦＣｏＥフレームを受信する。ＦＣｏＥフレームの宛先ＭＡＣアドレスは、中継装置１００のＭＡＣアドレス“ＭＡＣ１”である。ＦＣｏＥフレームに含まれるＦＣフレームの宛先アドレスは、ストレージ装置２０のポートＩＤ“０ｘ０２０３００”である。
【０１４０】
（ステップＳ４２）中継部１１１は、ＦＣｏＥフレームのヘッダを除去して、ＦＣフレームを抽出し、経路選択部１１２に出力する。
（ステップＳ４３）経路選択部１１２は、ＦＣフレームに設定された宛先アドレスの上位８ｂｉｔから宛先のドメイン番号“０ｘ０２”を取得する。経路選択部１１２は、メモリ１２０に記憶されたＭＡＣ転送テーブル１２３を参照して、ＤＣＢポート１３３のポート番号“０ｘ０３”を取得する。
【０１４１】
（ステップＳ４４）経路選択部１１２は、ＤＣＢポート１３３の状態を確認する。例えば、ＤＣＢポート１３３の現在の転送データ量や過去の所定期間内の転送データ量の平均などから、全帯域に対する使用帯域の割合を取得する。ＤＣＢポート１３３の接続／切断状況を確認してもよい。
【０１４２】
（ステップＳ４５）経路選択部１１２は、メモリ１２０に記憶されたポリシー管理テーブル１２４を参照して、ポリシーを確認する。そして、経路選択部１１２は、ＦＣポート１４３の状態がポリシーに設定された条件（経路迂回のための条件）を満たすか否かを判定する。満たす場合、処理をステップＳ４６に進める。満たさない場合、処理をステップＳ５０に進める。
【０１４３】
（ステップＳ４６）経路選択部１１２は、メモリ１２０に記憶されたＦＣ転送テーブル１２１を参照して、迂回経路として利用するＦＣポート１４３を検索する。具体的には、経路選択部１１２は、ステップＳ４３で取得したＦＣフレームの宛先のドメイン番号“０ｘ０２”に対応するポート番号“０ｘ０７”を検索する。
【０１４４】
（ステップＳ４７）経路選択部１１２は、ステップＳ４６でＦＣポートを検索できたか否か、すなわち、迂回経路として利用するＦＣポートがあるか否か判定する。ある場合、処理をステップＳ４８に進める。ない場合、処理をステップＳ５０に進める。
【０１４５】
（ステップＳ４８）経路選択部１１２は、ステップＳ４６で検索したＦＣポート（ここでは、ＦＣポート１４３）がリンクアップしているか否かを判定する。リンクアップしている場合、処理をステップＳ４９に進める。リンクアップしていない場合、処理をステップＳ５０に進める。例えば、ＦＣ転送テーブル１２１において、ＭＡＣ転送テーブル１２３と同様に各ＦＣポートにつき“接続”（リンクアップ中）、“切断”（リンクダウン中）などの状態を管理してもよい。そうすれば、本ステップＳ４８において、ＦＣ転送テーブル１２１において、ＦＣポート１４３の状態が“接続”の場合にリンクアップしていると判断できる。一方、状態が“切断”の場合にリンクアップしていないと判断できる。
【０１４６】
（ステップＳ４９）経路選択部１１２は、ステップＳ４６で検索したＦＣポート（ここでは、ＦＣポート１４３）のポート番号“０ｘ０７”を中継部１１１に通知する。中継部１１１は、ステップＳ４２で抽出されたＦＣフレームをポート番号“０ｘ０７”に対応するＦＣポート１４３から送信する。そして、処理を終了する。
【０１４７】
（ステップＳ５０）経路選択部１１２は、ステップＳ４３で特定したＤＣＢポート（ここでは、ＤＣＢポート１３３）のポート番号“０ｘ０３”と、対応するＭＡＣアドレス“ＭＡＣ２”とを中継部１１１に通知する。中継部１１１は、ステップＳ４２で抽出したＦＣフレームをイーサネットフレーム内にカプセル化して、ＦＣｏＥフレームを生成する。当該ＦＣｏＥフレームの宛先ＭＡＣアドレスは“ＭＡＣ２”である。送信元ＭＡＣアドレスは中継装置１００のＭＡＣアドレス“ＭＡＣ１”である。ＶＬＡＮタグには、ＦＣｏＥに対応した所定の値を設定する。タイプには、ＦＣｏＥを示す所定の値を設定する。
【０１４８】
（ステップＳ５１）中継部１１１は、ステップＳ５０で生成したＦＣｏＥフレームをポート番号“０ｘ０３”に対応するＤＣＢポート１３３から送信する。そして、処理を終了する。
【０１４９】
このようにして、中継装置１００は、転送先のＤＣＢポートを特定した後に、当該ＤＣＢポートの状態に応じて、選択したＤＣＢポートからＦＣフレームをカプセル化したＦＣｏＥフレームを送信する代わりに、当該ＦＣフレームをＦＣポートから送信する。
【０１５０】
ここで、ステップＳ４４，Ｓ４５は、ステップＳ４９の直前（ステップＳ４８のＹｅｓの判定の直後）に実行されてもよい。その場合、ステップＳ４３の次にステップＳ４６を実行する。
【０１５１】
なお、図１５では、サーバ１０からストレージ装置２０にアクセスする場合を例示したが、サーバ１０からストレージ装置２０ａにアクセスする場合にも同様にして、パスＲ２２をパスＲ２１の迂回経路として利用できる。
【０１５２】
また、サーバ１０ａから、ストレージ装置２０，２０ａにアクセスする場合にも同様にして、パスＲ２２をパスＲ２１の迂回経路として利用できる。ただし、サーバ１０ａからアクセスする場合、中継部１１１はサーバ１０ａからＦＣフレームを受信する。経路選択部１１２は、中継部１１１から当該ＦＣフレームを取得し、上記ステップＳ４３からフレーム転送の手順を実行すればよい（この場合、ステップＳ４１，Ｓ４２をスキップする）。
【０１５３】
これにより、第４の実施の形態の場合も、第２，第３の実施の形態と同様に、ＤＣＢのパスＲ２１に対して、ＦＣのパスＲ２２を有効に利用することが可能となる。
【符号の説明】
【０１５４】
１，２  中継装置
１ａ，１ｂ  ポート
１ｃ  記憶部
１ｄ  制御部
３，４  ノード
【図１】
0005891877.tif 000002
【図２】
0005891877.tif 000003
【図３】
0005891877.tif 000004
【図４】
0005891877.tif 000005
【図５】
0005891877.tif 000006
【図６】
0005891877.tif 000007
【図７】
0005891877.tif 000008
【図８】
0005891877.tif 000009
【図９】
0005891877.tif 000010
【図１０】
0005891877.tif 000011
【図１１】
0005891877.tif 000012
【図１２】
0005891877.tif 000013
【図１３】
0005891877.tif 000014
【図１４】
0005891877.tif 000015
【図１５】
0005891877.tif 000016