(57)【要約】      （修正有）【課題】冗長な経路を持つストレージエリアネットワークにおいて経路数の増加に伴うサーバ処理負荷の増加及び障害発生時におけるサーバの負荷の低減。【解決手段】外部設定信号に基づき仮想ポートを生成し、ノードの冗長なポートと仮想ポートを対応付け、スイッチに入力されたフレームが前記仮想ポート宛だった場合、前記フレームを仮想ポートに対応付けられたノードのポート宛にフレームを送出することを特徴とする。【選択図】図１
2008228150.tif 000002
【特許請求の範囲】
【請求項１】
ノードから送出されたフレームのスイッチングを行うスイッチ装置と冗長なポートを備えたノードからなるシステムにおいて、前記スイッチ装置は、  外部設定信号に基づき仮想ポートを生成し、前記冗長なポートと仮想ポートを対応付け、スイッチに入力されたフレームが前記仮想ポート宛だった場合、前記フレームを仮想ポートに対応付けられたノードのポート宛にフレームを送出することを特徴とするスイッチ装置。
【請求項２】
前記スイッチ装置は、仮想ポートのＩＤとポートのＩＤの対応関係を記憶する仮想ポート記憶部と、外部設定信号に基づき、仮想ポートを作成し、仮想ポートのＩＤとノードのＩＤを仮想ポート記憶部に記憶させる仮想ポート管理部と、フレームの宛先ＩＤが仮想ポートであるか判定し、仮想ポートであった場合フレーム書き換え部に送出するスイッチ部と、前記仮想ポートに対応付けられたポートを仮想ポート記憶部から検索し、そのうち一のポートを選択し、前記ポートのＩＤを返す仮想ポート検索部と、前記スイッチ部から送出されたフレームの宛先ＩＤを、前記仮想ポート検索部で検索して得られたＩＤに書き換える、スイッチ部に送出するフレーム書き換え部とを持つことを特徴とする請求項１に記載のスイッチ装置。
【請求項３】
前記仮想ポート管理部は、  仮想ポートに対応付けされた各ポートの通信可能容量をノードから取得し、前記各ポートの通信可能容量から仮想ポートの通信可能容量を決定し仮想ポート記憶部に設定し、前記仮想ポート記憶部は、  前記仮想ポートの通信可能容量を記憶することを特徴とする請求項２に記載のスイッチ装置。
【請求項４】
前記仮想ポート管理部は、  前記仮想ポートの通信可能容量として、仮想ポートに対応づけられたポートの通信可能容量の総和した値以下を設定することを特徴とする請求項３に記載のスイッチ装置。
【請求項５】
前記仮想ポート検索部が仮想ポートに対応付けられたポートの一を選択する際に、各ポートの使用量に基づきポートを選択することを特徴とする請求項３乃至４に記載のスイッチ装置。
【請求項６】
前記仮想ポート管理部は、  仮想ポートを構成するポートが故障した際、仮想ポートに接続したノードに障害通知するか否か判定するエラーレベルを前記仮想ポート毎に仮想ポート記憶部に記憶させ、仮想ポートを構成するポートが故障した場合、仮想ポート記憶部の該当するポートに使用不可である情報を設定するとともにポートの故障状況から障害度を決定し、前記仮想ポート検索部は、  使用可能なポートのうちからポートの一を選択し、障害度がエラーレベル以上となった場合には、エラーをフレーム書き換え部に通知し、前記フレーム書き換え部は、  前記仮想ポート検索部よりエラーが通知された場合、フレームの送り元ＩＤにエラーを通知することを特徴とする請求項２乃至５いずれか１項に記載のスイッチ装置。
【請求項７】
前記障害度は仮想ポートを構成するポートのうち故障したポートの数であることを特徴とする請求項６に記載のスイッチ装置。
【請求項８】
冗長なポートを備えたノードとスイッチ装置におけるフレーム交換方法であって、前記フレーム交換方法は、外部設定信号に基づき仮想ポートを生成し、前記ノードの一つもしくは複数の冗長なポートと仮想ポートを対応づけるステップと、フレームの宛先が、前記仮想ポートであった場合に、前記仮想ポートに対応付けられたポートの一つにフレームを送出するステップとを含むことを特徴とするフレーム交換方法。
【請求項９】
前記フレームの宛先ＩＤが仮想ポートの場合、仮想ポートに対応付けられたポートの一つを選択し、該宛先ＩＤを該選択されたポートのＩＤに書き換えるステップを含むことを特徴とする請求項８に記載のフレーム交換方法。
【請求項１０】
前記仮想ポートに対応づけられた各ポートの通信可能容量に基づき前記仮想ポートに通信可能容量を設定するステップとを含むことを特徴とする請求項９に記載のフレーム交換方法。
【請求項１１】
前記仮想ポートの通信可能容量を設定するステップは、  前記ノードから取得された各ポートの通信可能容量を総和した値以下の値を設定することを特徴とする請求項１０に記載のフレーム交換方法。
【請求項１２】
前記仮想ポートに対応付けられたポートの一つにフレームを送出するステップにおいて、仮想ポートに対応付けられたポートを選択する際に、使用可能なポートのうち、利用可能な通信可能容量に基づきポートを選択することを特徴とする請求項８乃至１１いずれか１項に記載のフレーム交換方法。
【請求項１３】
仮想ポートを構成するポートが故障した際に障害通知するか否か判定するエラーレベルを設定するステップと、仮想ポートの構成するポートが故障した場合、障害度を前記エラーレベルと比較し、エラーレベル未満の場合は、仮想ポートを構成する残りのポートでフレームを送出し、エラーレベル以上の場合はエラーを送出元に返すステップを含むことを特徴とする請求項９乃至１２いずれか１項に記載のフレーム交換方法。
【請求項１４】
前記障害度は仮想ポートを構成するポートのうち故障したポートの数であることを特徴とする請求項１３に記載のフレーム交換方法。
【請求項１５】
外部設定信号に基づき仮想ポートを生成する処理と、  ノードの一つもしくは複数の冗長なポートと仮想ポートを対応づける処理と、フレームの宛先が、前記仮想ポートであった場合に、前記仮想ポートに対応付けられたポートの一つにフレームを送出する処理とを含むことを特徴とするプログラム。
【請求項１６】
前記フレームの宛先ＩＤが仮想ポートの場合、仮想ポートに対応付けられたポートの一つを選択し、該宛先ＩＤを該選択されたポートのＩＤに書き換える処理を含むことを特徴とする請求項１５に記載のプログラム。
【請求項１７】
前記仮想ポートに対応づけられた各ポートの通信可能容量に基づき前記仮想ポートに通信可能容量を設定する処理とを含むことを特徴とする請求項１６に記載のプログラム。
【請求項１８】
前記仮想ポートの通信可能容量を設定する処理は、前記ノードから取得された各ポートの通信可能容量を総和した値以下の値を設定することを特徴とする請求項１７に記載のプログラム。
【請求項１９】
前記仮想ポートに対応付けられたポートの一つにフレームを送出する処理において、仮想ポートに対応付けられたポートを選択する際に、使用可能なポートのうち、利用可能な通信可能容量に基づきポートを選択することを特徴とする請求項１５乃至１８いずれか１項に記載のプログラム。
【請求項２０】
仮想ポートを構成するポートが故障した際に障害通知するか否か判定するエラーレベルを設定する処理と、仮想ポートの構成するポートが故障した場合、障害度を前記エラーレベルと比較し、エラーレベル未満の場合は、仮想ポートを構成する残りのポートでフレームを送出し、エラーレベル以上の場合はエラーを送出元に返す処理を含むことを特徴とする請求項１６乃至１９いずれか１項に記載のプログラム。
【請求項２１】
前記障害度は仮想ポートを構成するポートのうち故障したポートの数であることを特徴とする請求項２０に記載のプログラム。 
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はネットワークを構築するスイッチ装置に関して、障害発生時の処理の軽減を行う技術に関する。
【背景技術】
【０００２】
スイッチ装置を利用したストレージエリアネットワーク（ＳＡＮ）環境では、一般的にサーバからディスク装置内のデータ記録場所に至る経路は複数存在している。これはスイッチ装置が中間の経路を網状に接続することにより、どこかひとつの経路が障害により使用不可能になっても他の経路を利用し、また負荷分散により特定の経路に転送が集中して応答時間が長くなることを防止する目的で利用されている。  
【０００３】
特許文献１では、ファイバチャンネル・スイッチの故障を自動的に回避するために、ファイバチャネル・スイッチのポート制御部やスイッチング回路に故障が発生した場合に、ポート制御部相互間でデータを送るように迂回することでネットワークの継続運用を行う技術が記載されている。  
【０００４】
【特許文献１】特開２００５−２１０１６６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
従来のスイッチ装置においては、転送性能の増加や、負荷分散の実現、または障害発生時の予備のパスを確保する目的で、サーバとディスク装置間を複数のパスで接続される。  
【０００６】
具体的にはサーバは複数のＨＢＡ（Ｈｏｓｔ  Ｂｕｓ  Ａｄａｐｔｅｒ）を備え、冗長構成で各々スイッチに接続される。また、ディスク装置も複数の冗長なポートを備え、これらのポートも各々スイッチへ接続される。このように構成することで、ＨＢＡまたはディスク装置のポートの一つが故障した場合でも残りのＨＢＡまたはディスク装置のポートを用いて通信を継続することで可用性を高めた運用が可能となる。  
【０００７】
しかし、この場合サーバからディスク装置内部の任意の記録用ディスク至る経路（パス）の数は、サーバとスイッチ間を接続するパスの数とディスク装置とスイッチ間を接続するパスの数の積となる。そのためサーバとディスク装置間を接続するパスを増やそうとした場合、これらの積に比例してパスが増加してしまうという問題がある。  
【０００８】
この結果サーバ側で管理しなければならないパスの本数が飛躍的に増加し、サーバにおいてフレームを転送するパスを管理するための資源が大幅に増加してしまう。例えばディスク装置の一つのポートに障害が発生した場合、このポートに接続されている全てのパスに対してエラーが発生するため、サーバ側ではこれらのパス全てを使用不可とするエラー処理を行う必要があるためサーバの資源を浪費してしまうという問題があった。
【課題を解決するための手段】
【０００９】
上記課題を解決するため、本発明のスイッチ装置は、外部設定信号に基づき仮想ポートを生成し、ノードの冗長なポートと仮想ポートを対応付け、スイッチに入力されたフレームが前記仮想ポート宛だった場合、前記フレームを仮想ポートに対応付けられたノードのポート宛にフレームを送出することを特徴とする。
【発明の効果】
【００１０】
スイッチ装置から特定のノードにいたる経路が一つ以上ある複数のポートを仮想的に一つのポートとすることにより、サーバ側で管理するパスの数を削減し、ポートで障害が起きた際の処理を低減することができる。
【発明を実施するための最良の形態】
【００１１】
次に、本発明を実施するための最良の形態について、図面を参照して詳細に説明する。（第１の実施形態）図１に本実施の形態におけるスイッチ装置の詳細な構成を示す。図１を参照すると第１の実施形態におけるスイッチ装置は、ポート２０、スイッチ部２１、制御部２２、経路情報記憶部２３、仮想ポート管理部２４、仮想ポート記憶部２５、仮想ポート検索部２６、フレーム書換部２７を備える。  
【００１２】
ポート２
０には図示されていないサーバのＨＢＡ及び複数のポートを備えたディスク装置が接続される。またスイッチ２に直接サーバやディスク装置が接続される構成以外にも複数のスイッチを介してサーバとディスク装置が接続される構成にしてもよい。この場合スイッチ２のポート２０には別のスイッチが接続され、サーバから送出されたフレームは複数のスイッチを経由してディスク装置に到達することになる。  
【００１３】
図２に本実施例でスイッチ部２１が転送するフレームの構造を示す。フレームはＳＯＦ（Ｓｔａｒｔ  Ｏｆ  Ｆｒａｍｅ）で始まりＥＯＦ（Ｅｎｄ  Ｏｆ  Ｆｒａｍｅ）で終わり、この間にヘッダ部、可変長データ部、ＣＲＣ（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ）部が入る。  
【００１４】
ヘッダ部にはフレームの送り先の装置のＩＤである宛先ＩＤ、及びフレームを送り元の装置のＩＤである送り元ＩＤが設定されている。また可変長データ部にはフレームで転送するデータがおかれ、ＣＲＣ部ではフレームのデータの正当性を検査するためにフレームのＣＲＣを計算した値が設定されている。  
【００１５】
尚、本実施例では転送するフレームとしてファイバチャンネル・フレームを想定しているが、フレームの構造は上記構造に限定する必要はなく、少なくとも相手先ＩＤ及び送り元ＩＤによりフレームの宛先が決定されるものであれば良い。  
【００１６】
次に、図１に示す各構成について、それぞれ詳細に説明する。スイッチ装置２へのフレームの入出力はポート２０を介して行われる。前述したようにポート２０にはサーバやディスク装置の他に他のスイッチを接続することも可能である。  
【００１７】
サーバがフレームを送出する場合、フレームには宛先ＩＤと送り元ＩＤが設定される。宛先ＩＤにはサーバがアクセスを行う対象であるディスク装置のポートのＩＤが、また送り元ＩＤにはフレームを送出したサーバのＨＢＡのポートのＩＤが設定される。ポート２０から入力されたフレームはスイッチ部２１に渡される。  
【００１８】
スイッチ部２１はポートからフレームが入力されると、フレームに設定されたフレームの宛先ＩＤを用いて経路情報記憶部２３を検索する。フレームを送出すべきポートが経路情報記憶部２３に記憶された経路情報より求められると、スイッチ部２１は当該フレームを送出すべきポートより出力する。  
【００１９】
経路情報情報記憶部２３は、ある宛先ＩＤを持つフレームをスイッチ部２１がどのポートに送出すれば該当する宛先ＩＤを持つノードに到達することができるかという経路情報を記憶している。  
【００２０】
制御部２２はスイッチ装置２のポート２０に直接サーバのＨＢＡやディスク装置のポートが接続された場合、当該ポートに接続されたノードのＩＤを元に経路情報の設定を行う。この場合、当該ＩＤを宛先ＩＤとして持つフレームは、前記ポートに送出されるように経路情報が設定される。  
【００２１】
また、ポート２０にスイッチ装置が接続される場合には、各スイッチ装置の持つ経路情報をスイッチ装置間で交換することにより、複数のスイッチ装置から構成されるネットワークにおいて、ネットワーク中のノードのポートから送出されたフレームが、そのフレームの宛先ＩＤで指定される特定のノードのポートのポートに到達できるように、経路情報記憶部２３に記憶される経路情報を設定する。  
【００２２】
経路情報にはフレームの宛先ＩＤと対応付けられて、フレームを転送すべきポート２０が設定されており、制御部２２は経路情報をあらわす特別なフレームをスイッチ間で交換することにより、経路情報記憶部２３に記憶された経路情報を随時更新する。  
【００２３】
スイッチ間で経路情報を交換するためのルーティングプロトコルとしてはファイバチャンネルではＦＳＰＦ（Ｆｉｂｒｅｃｈａｎｎｅｌ  Ｓｈｏｒｔｅｓｔ  Ｐａｔｈ  Ｆｉｒｓｔ）プロトコルなどが知られており、本実施例でもスイッチ装置２がファイバチャンネルフレームを転送する場合にはＦＳＰＦプロトコルを用いてもよい。  
【００２４】
尚、ルーティングプロトコルはＦＳＰＦプロトコルに限定されるものではなく、スイッチ間の経路情報を交換し、各スイッチの経路情報を決定できるものであれば良い。  
【００２５】
仮想ポート管理部２４は、仮想ポートの生成及び仮想ポートの経路情報記憶部２３への登録及び仮想ポートの設定を行う。仮想ポート管理部２４はサーバもしくは図示しないスイッチの管理装置からの外部設定信号に基づき仮想ポートの作成を行う。サーバもしくは管理装置からの外部設定信号は、ポート２０から入力されるフレームに当該フレームの宛先を仮想ポート管理部とし、更にフレームのデータに仮想ポートの構成情報を含めることで実現することができる。またポート２０とは別に、スイッチ装置に外部設定信号用の入力を設ける構成としてもよい。  
【００２６】
更に仮想ポート管理部は作成された仮想ポートを経路情報記憶部２３にも登録する。また仮想ポート管理部は仮想ポートの構成情報として、仮想ポートを構成するポートや、それらのポートに関連する属性情報を管理し、これを仮想ポート記憶部２５に記憶する。  
【００２７】
仮想ポート記憶部２５は、仮想ポート管理部２４によって設定される仮想ポートの構成情報を記憶する。仮想ポート記憶部２５に記憶される構成情報は前述した仮想ポートのＩＤから仮想ポートを構成するポートのＩＤを、また仮想ポートを構成するポートのＩＤから仮想ポートのＩＤと、両方の検索が可能な形に格納されている。  
【００２８】
仮想ポート検索部２６は、フレーム書き換え部２７から渡される仮想ポートのＩＤに基づき仮想ポート記憶部を検索し、ＩＤによって特定された仮想ポートを構成するポートＩＤのうち一つを選んでフレーム書き換え部に返す。  
【００２９】
フレーム書き換え部２７にはスイッチ部２１から送出される仮想ポート宛のフレームの送り先ＩＤを、仮想ポート検索部に送り、仮想ポートを構成するポートのＩＤの一つを得る。次にこのＩＤをフレームの送り先ＩＤに設定してスイッチ部２１に送出する。  
【００３０】
次に本発明の第１の実施形態に基づくスイッチ装置を用いたネットワークの構成とその動作の概要について述べる。  
【００３１】
図３は複数のホストアダプタを備えたサーバ１と、そのサーバに接続されるスイッチ装置２、及び複数のポートを備えたディスク装置３の物理的な接続関係を示している。  
【００３２】
サーバ１は３つのホストバスアダプタＨＢＡ１１、ＨＢＡ１２、ＨＢＡ１３を備えている。各ホストバスアダプタは各々スイッチ２のポート２０１、ポート２０２、ポート２０３に接続されている。  
【００３３】
またディスク装置３は３つのポート３１、ポート３２、ポート３３を備えており、各ポートはディスク装置３に内蔵された各ディスクアレイ（ディスクアレイ１、ディスクアレイ２、ディスクアレイ３）接続されており、各ポートからは内蔵された全てのディスクアレイにアクセスすることができる。これらディスク装置３の各ポートは各々スイッチ２のポート２１１、ポート２１２、ポート２１３に接続されている。  
【００３４】
なお、図３ではサーバ１、スイッチ２、ディスク装置３は各々１台ずつ記載されているが、本発明はこのようなシステムの構成に限定されるものではない。すなわち、任意の数のホストアダプタを備えた複数台のサーバを、複数のスイッチを介して、任意の数のポートを備えた複数台のディスク装置に接続する構成をとることもできる。また各スイッチが各々有するポートの数も本実施例に限定されるものではなく、スイッチからディスク装置への接続する経路が複数あるような冗長構成となる接続関係を実現できれば良い。  
【００３５】
図４に、図３に示すシステムにおいて、スイッチ２に仮想ポートを生成しないで、通常のスイッチとして動作させた場合におけるサーバ１とディスク装置３間の論理的な接続関係を示す。  
【００３６】
図４において、サーバとディスク装置との通信は次のように行われる。まずサーバから送出されるフレームは、サーバの備えるホストバスアダプタＨＢＡ１ｎ（ｎ＝１〜３）のうちのいずれか一つを経由してスイッチ２に送られる。サーバが同一のスイッチ２に接続される複数のホストアダプタを備えることにより、サーバ１、スイッチ２間の接続経路を冗長化することができる。  
【００３７】
サーバ１から送られたフレームは、スイッチ２において、フレームが入力されたポートから、スイッチ２の持つ経路情報に基づきディスク装置に接続されるポートが選択され、当該ポートへフレームが送出される。ディスク装置３もサーバ１と同様に内部のディスクアレイにアクセスできる複数のポートを備えているため、スイッチ２、ディスク装置３間の接続経路を冗長化することができる。  
【００３８】
このような構成により、サーバ１、ディスク装置３の間は複数の冗長な接続経路によって接続されるため、サーバのホストバスアダプタや各機器のポート、ケーブルの故障により一部の経路が使用不能となった場合でも、残りの経路を経由したアクセスが可能になり、システムの可用性が高くなるという効果がある一方、サーバの監視する経路が組み合わせ的に増大するため、障害時のサーバの監視コストがかかるという問題がある。  
【００３９】
図５に、図４に示すシステムにおいて、スイッチ２に本実施例の構成に基づき、仮想ポートを作成した場合におけるサーバ１とディスク装置３間の論理的な接続関係を示す。図５ではスイッチ２にディスク装置３のポート３１〜３３に接続されているポート２１１〜２１３をまとめた仮想ポート１０が作成される。仮想ポート１０はディスク装置３の仮想的なポートとして機能し、サーバ１からのディスク装置３へのアクセスは全てこの仮想ポート１０を経由して行われる。  
【００４０】
仮想ポートで送られたフレームはスイッチ２内で、適宜選択されたディスク装置のポートに対してフレームが送出される。  
【００４１】
ディスク装置のポートは見かけ上、仮想ポートのみとなるため、サーバ１が管理しなければならないディスク装置への経路はサーバのホストバスアダプタとスイッチ間の冗長経路のみとなり見掛けの経路の数は、ホストバスアダプタとスイッチ間の接続数をｎ、スイッチとディスク装置間の接続数をｍとした場合、図４の仮想ポートを作成しない場合ではｎ×ｍであるのに対し、図５の仮想ポートを作成した場合ではｎ×１に減少する。この結果、障害発生時にサーバが管理すべきパスはｍ分の１に減少しサーバの監視コストを低減することができる。  
【００４２】
次に本実施例の動作について説明する。仮想ポートの作成及び経路情報への登録は、スイッチの初期設定時もしくは構成変更時に行う。サーバ１は仮想ポートをスイッチ２に作成するために、外部設定信号として構成情報設定用フレームを仮想ポート管理部２４宛に送る。仮想ポート管理部２４は管理用の特別なＩＤが付与され、このＩＤを送り先ＩＤとするフレームはスイッチ部２１により、仮想ポート管理部２４に送られる。仮想ポート管理部はこのフレームの内容に基づき仮想ポート記憶部２５に仮想ポートの構成情報の設定を行う。  
【００４３】
構成情報設定用のフレームは仮想ポート管理部に対する、新規な仮想ポートの作成の指示コマンド、新規に作成する仮想ポートのＩＤ及び、仮想ポートを構成するディスク装置３等のポートを指定できるものではあれば具体的な構造は特に限定されない。また新規に作成する仮想ポートのＩＤは構成情報設定用のフレームで設定する以外に、仮想ポート管理部が使われていない新たなＩＤを自動的に付与する構成としても良い。  
【００４４】
尚、本実施例では構成情報設定をフレームによって行っているが、これ以外にスイッチに設けられたＩＰ通信による管理インタフェースを用いた実施形態をとることも可能であり、スイッチ間・サーバ間の通信方法は構成情報を送ることができるものであれば良い。  
【００４５】
また本実施例ではディスク装置をアクセスするサーバが構成情報設定を行っているが、これ以外にディスク構成を管理する専用の装置を用いて構成情報を設定することも可能であり、スイッチに所定の情報の設定で
きるシステム構成であれば、特に本実施例の構成に限定されるものではない。  
【００４６】
仮想ポート管理部は前述の構成情報設定を用いて仮想ポートの構成情報として、仮想ポート記憶部に図６に示す情報を設定する。仮想ポートの構成情報にはその仮想ポートのＩＤ、及びその仮想ポートに属するディスク装置のポートのＩＤが設定される。  
【００４７】
仮想ポートに送られたフレームを仮想ポートを構成するポートの一つに転送する際に、構成するポートの一つをランダムに選択し負荷分散を図る他に、仮想ポートを構成するポート情報に加えて、各ポートで処理可能なフレームの量を通信可能容量として管理することで、転送時に使用可能な容量が大きなポートを選択し、フレームを送出することで負荷分散を行うことができる。  
【００４８】
例えば、ファイバチャンネルでは通信可能容量は各ポートに割り当てられた受信バッファの容量に比例するクレジット数や、各ポートで処理可能なエクスチェンジ数とすることができる。ディスク装置のポートにフレームを転送する際にはポートの備える受信バッファの範囲で転送を行う必要があり、フレーム転送量がバッファの容量を超えた場合、フレーム転送は一次的に中断される。ディスク装置で処理が終了しバッファに余裕ができると、中断されていたフレーム転送を開始する。  
【００４９】
また仮想ポートの通信可能容量として、仮想ポートを構成する各ポートの通信可能容量を設定することができる。仮想ポートはディスク装置の複数のポートにより構成されているため、各ポートにサーバからもしくはサーバへのトラフィックを振り分けることにより、実際に使用可能な通信可能容量として仮想ポートを構成する各ポートの通信可能容量の総和を設定することができる。  
【００５０】
仮想ポートに通信可能容量を設定した場合、仮想ポートを構成するポートのうち実際にフレームを転送する際に使用したポートの使用量を増やし、当該ポートでの処理が終了したことを通知するフレームが到達した時点で当該ポートの使用量を減ずることで、該当するポートで現在利用可能な通信可能容量を把握することができる。例えば、通信可能容量としてポートのクレジット数を用いた場合、仮想ポートのクレジット数として、仮想ポートを構成する各ポートのクレジット数の総和が設定されることで、仮想ポートは仮想ポートを構成するクレジット数と同等のバッファを仮想的に備えることとなる。  
【００５１】
仮想ポートに送られたフレームは、仮想ポートを構成するポートの一つを適宜選択されたポートに送出されるが、ポートを選択する際にポートの使用可能なクレジット数に余裕があるものを選択することで、仮に一つのポートの使用可能なクレジット数がなくなった場合、即ちポートのバッファがなくなったことで、フレームの送出が行えなくなった場合でも、他のポートを介して通信を継続することができる。  
【００５２】
また、あるノードに属するポートへ送られたフレームが処理されると、ノードよりＡＣＫフレームが返されるため、このフレームを仮想ポートを管理するスイッチで識別することで、ポートで現在利用可能なクレジット数を把握することができる。  
【００５３】
また、この仮想ポートの通信可能容量として、各ポートの通信可能容量の総和値より少ない値を設定してもよい。総和値より小さい値を設定することで、仮想ポートを介して行われるトラフィックの総和を抑え、これにより障害が発生していない場合には仮想ポートを構成する各ポートの通信可能容量に対して余裕を持って通信を行うことができる。  
【００５４】
これにより仮想ポートを構成するポートや、ポートに至る経路上に障害が発生し通信が不能になった場合においても仮想ポートに設定した通信可能容量の範囲内で通信が可能な場合には、サーバに対して障害通知することなく運用を継続することができる。  
【００５５】
図６に、図５に示す仮想ポートを作成するために、仮想ポート記憶部２５に作成される仮想ポートの構成情報を示す。図７の構成情報は、スイッチ２に仮想ポートが一つ作成され、その仮想ポートのＩＤが１０として設定されていることを示している。  
【００５６】
仮想ポートのＩＤを決定する際には、ネットワーク内でユニークなＩＤを選択し、前述した構成情報を設定するサーバが設定する。次に仮想ポートの構成情報として、仮想ポートを構成するディスク装置のポートアドレスが設定される。  
【００５７】
図６に示す例では、図５のディスク装置３のポートのＩＤがそれぞれ４、５、６として設定されている。このように同じディスク装置に属するポートがどのディスク装置に対して透過なアクセスをすることが可能な冗長なポートであるかという情報はあらかじめシステムの設計者が構成情報として与えておく。  
【００５８】
また図６の例では、ディスク装置の各ポートのクレジット数を表す通信可能容量の合計値が仮想ポートのクレジット数である通信可能容量として設定されている。ここではポートＩＤ４〜ポートＩＤ６までクレジットの総和である６が仮想ポートのクレジット数として登録されている。また各ポートはフレームの送信に使われた際のクレジット数として使用量が格納されている。また各ポートの故障状況を管理するために各ポートの状態を保持しており、使用可能な場合は通信可能容量の範囲で通信が行うことを許可され、ディスク装置３のポートの障害や、スイッチ２からディスク装置３のポートまでの経路上に障害があり通信が出来ない場合は使用不可能という状態が設定される。  
【００５９】
次に仮想ポートが作成された場合におけるスイッチ各部の動作の詳細についてのべる。  
【００６０】
図７にスイッチ装置の各部の詳細な動作をフローチャートで示す。まず仮想ポートが作成されると、仮想ポートはサーバ側からみると仮想的なディスク装置のポートとして認識される。サーバ１は通信を開始する前に、この仮想ポートに対してポートログインを行う。次に仮想ポート管理部は仮想ポート記憶部からサーバ１が指定した仮想ポートのＩＤを検索し、該当する仮想ポートの通信可能容量等のパラメータをサーバ１に返す（ステップＳ０）。  
【００６１】
サーバ１から送出されたフレームはスイッチ部２１に入力される（ステップＳ１）。  
【００６２】
次にスイッチ部２１では経路情報記憶部２３を検索し、フレームに設定された宛先アドレスをどのポートに送出するか決定する。フレームの宛先ＩＤが仮想ポートＩＤを示していた場合はフレーム書き換え部２７にフレームを送出される（ステップＳ２のＹＥＳの場合）。  
【００６３】
またスイッチ部２１はフレームの送り元ＩＤが仮想ポートを構成するディスク装置のポートである場合にもフレーム書き換え部２７にフレームを送出する（ステップＳ１０でＹＥＳの場合）。  
【００６４】
上記どちらにも該当しない場合（ステップＳ１０でＮＯの場合）は、フレームは仮想ポート宛に、もしくは仮想ポートを構成するポートから送出されたものではないということになる。この場合、フレームはスイッチ部２１で仮想ポートが設定されていない場合の通常のスイッチ動作と同じように、経路情報記憶部２３に記憶された経路情報に基づき出力するポート２０を選択しフレームを出力するという処理を行う。  
【００６５】
フレームが仮想ポート宛に送出された場合（ステップＳ２でＹＥＳの場合）、フレーム書き換え部２７はフレームの宛先ＩＤを仮想ポート検索部２６に送り、仮想ポートを構成するディスク装置のポートを検索する（ステップＳ３）。  
【００６６】
仮想ポート検索部２６は仮想ポートのＩＤに対応するディスク装置３のポートを仮想ポート記憶部２５から検索し、ディスク装置に使用可能なポートがあるか判定する（ステップＳ４）。  
【００６７】
ディスク装置３のポートが故障により全て使用不能な場合（ステップＳ４でＹＥＳの場合）、フレームを送出するポートが存在しないため検索はエラーとなり、フレーム書き換え部２７はフレームの送信元ＩＤのサーバ１にエラーを表すフレームを送出し、障害通知を行う（ステップＳ９）。  
【００６８】
送出可能なディスク装置３のポートがあった場合、仮想ポート検索部２６は前記ポートで使用可能なポートのうち、最も使用量の少ないポートを選択する（ステップＳ５）。  
【００６９】
次に仮想ポート検索部２６は前記選択したポートの使用量を１増加させる（ステップＳ６）。  
【００７０】
フレーム書き換え部２７はフレームの宛先ＩＤをステップＳ５で選択されたポートのＩＤに書き換え、スイッチ部２１に送出する（ステップＳ７）。  
【００７１】
スイッチ部２１は宛先ＩＤが書き換えられたフレームに対して、新しい宛先ＩＤで経路情報記憶部２３を検索し送出するポート２０を決定し、当該ポートへフレームを送出する（ステップＳ８）。  
【００７２】
次にステップＳ１０でＹＥＳの場合、当該フレームは仮想ポートを構成するディスク装置のポートから送出されたフレームである。フレーム書き換え部２７は、当該フレームの送元ＩＤに設定されているディスクのポートＩＤから、当該ポートを含む仮想ポートを仮想ポート検索部２６で検索する。  
【００７３】
仮想ポート検索部２６は該当する仮想ポートのＩＤをポート書き換え部２７に返し、フレーム書き換え部２７は当該フレームの送元ＩＤを仮想ポートのＩＤで置き換える（ステップＳ１２）。  
【００７４】
次にポート書き換え部２７は、当該フレームが、ディスク装置のポートへ送出したフレームに対するＡＣＫフレームである場合と判断された場合（ステップＳ１３でＹＥＳの場合）、当該ポートに該当する仮想ポート検索部２６にたいして、前記検索を行ったポートの使用量を１減少させるよう指示し、仮想ポート検索部２６は仮想ポート記憶部２５の該当するポートの使用量を１減少させる（ステップＳ１４）。  
【００７５】
ポート書き換え部２７で当該フレームがＡＣＫフレームでないと判断された場合及びＡＣＫフレームと判断されステップＳ１４でポート使用量が減らされたあと、当該フレームはスイッチ部２１に送出される。  
【００７６】
次にスイッチ部２１は当該フレームの宛先ＩＤで経路情報記憶部２３を検索し送出するポート２０を検索し、当該ポートへフレームを送出する（ステップＳ８）。  
【００７７】
（第２の実施形態）次に本発明の第２の実施形態について説明する。第２の実施形態においてもスイッチの構成は第１の実施形態と同様で図１に示す構成となっている。  
【００７８】
第２の実施形態では、仮想ポート管理部２４が仮想ポート記憶部２５に設定する仮想ポートの記憶情報として、図８に示すように仮想ポート毎にエラーレベルが設定されている点が異なる。  
【００７９】
仮想ポート管理部２４は仮想ポートを作成する際に、仮想ポートを構成するポートのうち障害通知を仮想ポートに接続されたノードに通知しないで通信を継続する最大許容するポートの故障の数をエラーレベルとして設定する。  
【００８０】
更に仮想ポート管理部２４は仮想ポートを構成するポートの状態を監視しエラーとなった場合には、当該ポートを使用不可の状態とする。  
【００８１】
図８に示す例では仮想ポートを構成するポートは３つあるが、この場合は１つのポートが故障した場合は障害通知を行わないで通信を継続し、２つ以上のポートが故障した場合には障害通知を行うことを示している。  
【００８２】
また図８の例では仮想ポートの通信可能容量として４が設定されている。各ポートの通信可能容量の総和である６よりも小さい。この為、通信可能容量が２であるポートＩＤ６のポートが故障した場合でも、予め利用可能な通信可能容量に変化がないため、仮想ポートに接続したノードに障害通知を行うことなく仮想ポートを介した通信を行うことが可能になる。  
【００８３】
図９に本実施例におけるスイッチの各部の動作を示す。図９は第１の実施例の動作を示す図１とほぼ同一であるが、ステップＳ３において仮想ポート検索部２６が仮想ポートを検索した場合に、仮想ポートを構成するポートのうち使用不可となっているポートの数がエラーレベルを超える場合、フレーム書き換え部２７に通知する点が異なる（ステップＳ４１）。  
【００８４】
フレーム書き換え部２７はエラーが通知された場合（ステップＳ４１のＹＥＳの場合）、フレームの送り元ＩＤにエラーを通知することで仮想ポートに障害が発生したことを通知する。
【図面の簡単な説明】
【００８５】
【図１】本発明の第１の実施形態におけるシステムの構成を示すブロック図である。
【図２】本発明の第１の実施形態におけるフレームの構造を示す図である。
【図３】本発明の第１の実施形態におけるシステムの物理的な接続関係を示す図である。
【図４】本発明の第１の実施形態において仮想ポートを使用しない場合のシステムの論理的な接続関係を示すブロック図である。
【図５】本発明の第１の実施形態において仮想ポートを使用した場合のシステムの論理的な接続関係を示すブロック図である。
【図６】本発明の第１の実施形態における仮想ポート記憶部２５に記憶される仮想ポートの構成情報を示す図である。
【図７】本発明の第１の実施形態におけるスイッチの動作を示すフローチャートである。
【図８】本発明の第２の実施形態における仮想ポート記憶部２５に記憶される仮想ポートの構成情報を示す図である。
【図９】本発明の第２の実施形態におけるスイッチの動作を示すフローチャートである。
【符号の説明】
【００８６】
１            サーバ２            スイッチ３            ディスク装置１１〜１３  ホストバスアダプタ２０            ポート２１            スイッチ部２２            制御部２３            経路情報記憶部２４            仮想ポート管理部２５            仮想ポート記憶部２６            仮想ポート検索部２７            フレーム書き換え部２０１〜２０３  スイッチ  ポート２０４  スイッチ  仮想ポート２１１〜２１３  スイッチ  ポート３１〜３３  ディスク装置  ポート  
【図１】
2008228150.tif 000003
【図２】
2008228150.tif 000004
【図３】
2008228150.tif 000005
【図４】
2008228150.tif 000006
【図５】
2008228150.tif 000007
【図６】
2008228150.tif 000008
【図７】
2008228150.tif 000009
【図８】
2008228150.tif 000010
【図９】
2008228150.tif 000011