(57)【要約】【課題】データ転送に仮想化技術が適用されたサーバ等のデータ処理装置が中継装置によるネットワークに発生したイベントの検出結果に適切に対応するための技術を提供する。【解決手段】中継装置は、サーバ３００のアダプタ３１０と接続されたサーバ側ポートに複数のネットワーク側ポートを対応付けることができる。中継装置は、そのサーバ側ポートに対応付けられたネットワーク側ポート毎に、イベントとして障害、及びその復旧の検出を行い、イベントが検出されたネットワーク側ポート、及びその種類を表す制御フレームをサーバ３００に送信する。その制御フレームは、アダプタ３１０によって受信され、リンク状態管理部３２０により処理される。リンク状態管理部３２０は、制御フレームに従って、仮想レイヤ部３１２上に構成された仮想インターフェース３１２ａのなかで対応する仮想インターフェース３１２ａを個別にオン／オフする。【選択図】図８
2013197627.tif 000002
【特許請求の範囲】
【請求項１】
ポートを介してデータの送受信が可能なデータ処理装置において、
第１のポートと、該第１のポートとの対応関係を任意に設定可能な複数の第２のポートとを備えた中継装置の該第１のポートが前記ポートと接続されている場合に、該第１のポートと対応付けられた第２のポート毎に、データの送受信を仮想的に行うための仮想インターフェースを構成可能な送受信手段と、
前記中継装置が前記第２のポートの何れかでイベントを検出した場合に、該イベントが検出された第２のポートに対応する仮想インターフェースを特定し、該イベントの内容に応じた制御を行う制御手段と、
を具備することを特徴とするデータ処理装置。
【請求項２】
前記イベントが検出された第２のポートを表す識別情報を含む制御情報を前記中継装置が該第２のポートと対応付けられた第１のポートから送信する場合、前記制御手段は、前記ポートを介して受信する制御情報を基に、前記対応する仮想インターフェースを特定して制御を行う、
ことを特徴とする請求項１記載のデータ処理装置。
【請求項３】
前記前記イベントが検出された第２のポートを表す識別情報を含む制御情報を前記中継装置が該第２のポートと対応付けられた第１のポート以外から送信する場合、該制御情報を受信する他の送受信手段、を更に具備し、
前記制御手段は、前記他の送受信手段が受信する制御情報を基に、前記対応する仮想インターフェースを特定して制御を行う、
ことを特徴とする請求項１、または２記載のデータ処理装置。
【請求項４】
前記イベントは、前記第２のポートに接続されたネットワークに発生した障害、及び該障害の復旧である、
ことを特徴とする請求項１、２、または３記載のデータ処理装置。
【請求項５】
ポートを介してデータの送受信が可能なデータ送受信装置において、
第１のポートと、該第１のポートとの対応関係を任意に設定可能な複数の第２のポートとを備えた中継装置の該第１のポートが前記ポートと接続されている場合に、該第１のポートと対応付けられた第２のポート毎に、データの送受信を仮想的に行うための仮想インターフェースを構成可能な送受信手段と、
前記中継装置が前記第２のポートの何れかでイベントを検出した場合に、該イベントが検出された第２のポートに対応する仮想インターフェースを特定し、該イベントの内容に応じた制御を行う制御手段と、
を具備することを特徴とするデータ送受信装置。
【請求項６】
ポートを介してデータ処理装置がデータの送受信を行うための制御方法において、
第１のポートと、該第１のポートとの対応関係を任意に設定可能な複数の第２のポートとを備えた中継装置の該第１のポートが前記ポートと接続されている場合に、該第１のポートと対応付けられた第２のポート毎に、データの送受信を仮想的に行うための仮想インターフェースを前記データ処理装置上に構成し、
前記中継装置が前記第２のポートの何れかでイベントを検出した場合に、該イベントが検出された第２のポートに対応する仮想インターフェースを特定し、該イベントの内容に応じた制御を前記データ処理装置に行わせる、
ことを特徴とするデータ送受信制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ポートを介してデータ処理装置がデータの送受信を行うための技術に関する。
【背景技術】
【０００２】
従来、サーバ（データ処理装置）とネットワークとの間に中継装置（スイッチ）を配置することが行われている。 その中継装置としては、ネットワーク側のポートと、サーバ側のポートとの間の接続関係を任意に設定可能な中継装置が採用されることがある。 そのような中継装置をサーバとネットワークとの間に配置することにより、サーバは中継装置を介して、任意のネットワークとデータの送受信を行うことができる。
【０００３】
中継装置には、接続されたネットワークに発生した障害（リンクダウン）をイベントとして検出する検出機能が搭載されるようになっている。そのような検出機能が搭載された中継装置は、障害が検出されたネットワークと接続されたポートに対応付けられたサーバ側のポートから、障害の発生を通知するようになっている。その通知は、例えばそのサーバ側のポートを切断することで行われる。そのような通知により、中継装置を介して、障害が検出されたネットワークと接続されたサーバは、その障害に対応することができる。このことから、障害を検出する中継装置と接続されたサーバのようなデータ処理装置では、その中継装置による障害（イベント）の検出結果に適切に対応することが必要と考えられる。
【０００４】
近年、仮想化技術の適用により、データの送受信が行われる１つの物理リンクに複数の仮想リンクを割り当てることが行われている。そのような仮想化技術が適用されたサーバでは、１つのポートを介して、複数の仮想リンクを用いたデータの送受信を行うことができる。
【０００５】
上記のような中継装置のなかには、データの送受信（通信）に仮想化技術を適用したサーバに対応しているものがある。そのような中継装置では、サーバの１つのポートが接続されたサーバ側のポートに複数のネットワーク側のポートを対応付けることが可能となっている。
【０００６】
中継装置において、サーバの１つのポートが接続されたサーバ側のポートに複数のネットワーク側のポートが対応付けられていた場合、そのサーバには、１つのポートに複数のネットワークが接続された形となる。このことから、ネットワークに発生する障害（イベント）への対応では、そのような接続の形を考慮するのが望ましいと思われる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１０−２８３８１１号公報
【特許文献２】特開平９−２４７２０１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
１側面では、本発明は、データ転送に仮想化技術が適用されたサーバ等のデータ処理装置が中継装置によるネットワークに発生したイベントの検出結果に適切に対応するための技術を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明を適用した１システムでは、ポートを介してデータの送受信が可能であり、第１のポートと、該第１のポートとの対応関係を任意に設定可能な複数の第２のポートとを備えた中継装置の該第１のポートがポートと接続されている場合に、該第１のポートと対応付けられた第２のポート毎に、データの送受信を仮想的に行うための仮想インターフェースを構成可能な送受信手段と、中継装置が第２のポートの何れかでイベントを検出した場合に、該イベントが検出された第２のポートに対応する仮想インターフェースを特定し、該イベントの内容に応じた制御を行う制御手段と、を具備する。
【発明の効果】
【００１０】
本発明を適用した場合には、サーバ等のデータ処理装置が中継装置によるイベントの検出結果に適切に対応することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施形態を適用可能なデータ処理システムの構成を説明する図である。
【図２】中継装置の機能構成を表すブロック図である。
【図３】中継装置の設定例を説明する図である。
【図４】ネットワーク側ポートに対応付けたサーバ側ポートの例を説明する図である。
【図５】フローＤＢの内容例を説明する図である。
【図６】中継装置と接続されているサーバ上に作成された仮想インターフェースの例を説明する図である。
【図７】本発明の実施形態が適用されたデータ処理システムの構成を説明する図である。
【図８】本実施形態によるサーバの構成を表す図である。
【図９】本実施形態によるサーバに搭載されたアダプタの構成例を表す図である。
【図１０】障害／復旧検出処理のフローチャートである。
【図１１】障害／復旧通知処理のフローチャートである。
【図１２】通知送信処理のフローチャートである。
【図１３】中継装置によるイベントの検出結果の通知に用いられる制御フレームの構成を説明する図である。
【図１４】リンク状態管理部による処理の流れを表すフローチャートである。
【図１５】アダプタとＣＰＵによって実装されたリンク状態管理部による処理の流れを表すフローチャートである。
【図１６】アウトバンド処理を採用した場合に、中継装置からイベントの検出によって送信される仮想リンク制御コマンドの例を説明する図である。
【発明を実施するための形態】
【００１２】
先ず、本発明の実施形態を適用可能なネットワークシステムについて、図１〜図５を参照して詳細に説明する。
【００１３】
図１は、本発明の実施形態を適用可能なデータ処理システムの構成を説明する図である。図１に表すように、このデータ処理システムは、例えばイーサネットスイッチである中継装置１に、サーバ３１〜３４、並びにネットワーク５及び７が接続されたコンピュータシステムである。
【００１４】
この中継装置１は、サーバとの接続を想定した複数のサーバ側ポートと、ネットワークとの接続を想定した複数のネットワーク側ポートと、を備えており、各サーバ３１〜３４はそれぞれ異なるサーバ側ポートと接続されている。各ネットワーク５及び７は、それぞれ異なるネットワーク側ポートと接続されている。図１では、サーバ側ポートと、ネットワーク側ポートとは、中継装置１の異なる側に配置されていると想定している。
【００１５】
なお、ネットワーク５及び７は、例えばＬＡＮ（Local Area Network）及びＳＡＮ（Storage Area Network）である。図１では４台のサーバ３１〜３４を表しているが、中継装置１に接続可能なサーバの台数は特に限定されない。中継装置１に接続可能なネットワークの数も２つに限定されない。
【００１６】
図２は、中継装置の機能構成を表すブロック図である。上記中継装置１は、受信ポート１０１−１〜１０１−４を含む複数の受信ポート１０１と、特定部１１と、宛先データベース（ＤＢ）を格納した第１の記憶部１２と、フローＤＢ１３を格納した第２の記憶部１３と、送信ポート１４１−１〜１４１−４を含む複数の送信ポート１４１と、を有する。
【００１７】
各受信ポート１０１は、データを受信すると、受信したデータを特定部１１に出力する。特定部１１は、第１の記憶部１１に格納された宛先ＤＢ、及び第２の記憶部１３に格納されたフローＤＢを参照し、受信ポート１０１から入力したデータの出力先とする送信ポート１４１を特定し、特定した送信ポート１４１にそのデータを出力する。送信ポート１４１は、特定部１１から入力したデータを出力する。
【００１８】
各サーバ側ポート、及び各ネットワーク側ポートは、データの送受信を行う。このことから、各サーバ側ポート、及び各ネットワーク側ポートには、それぞれ１つの受信ポート１０１、及び１つの送信ポート１４１が割り当てられる。
【００１９】
通常、ネットワークを介したデータの送受信では、データはパケット、或いはフレーム等の予め定められたフォーマットで扱われる。このことから、以降、便宜的に送受信の対象となるデータは「フレーム」と表記する。
【００２０】
上記宛先ＤＢは、例えば各エントリ（レコード）に、宛先アドレス（通常、ＭＡＣ（Media Access Control）アドレス）と、ＶＬＡＮ（Virtual LAN）の識別子と、送信ポート１４１の識別子とを格納したＤＢである。それにより、宛先ＤＢは、フレーム中に存在する宛先アドレスから、そのフレームを出力すべき送信ポート１４１を特定できるＤＢとなっている。ＶＬＡＮの識別子は、例えばＩＤ（IDentifier）として割り当てられた番号である。
【００２１】
フローＤＢは、サーバ側ポートとネットワーク側ポートとの間でフレームを中継するためのＤＢである。各エントリ（レコード）には、サーバ側ポートに識別用に割り当てられた番号（サーバ側ポート番号）、フロー識別タイプ（通信種別）、フローＩＤ、サーバ側ポートに対応付けられたネットワーク側ポートに識別用に割り当てられた番号（ネットワーク側ポート番号）、が格納される。
【００２２】
中継装置１は、１つのサーバ側ポートに複数のネットワーク側ポートを対応付けることができるようになっている。そのため、複数のネットワーク側ポートが対応付けられたサーバ側ポートでは、ネットワーク側ポート毎に、フロー識別タイプ、フローＩＤが格納される。それにより、フローＩＤは、同じサーバ側ポートに入力されたフレームを、そのフレームに格納されたフロー識別タイプ、及びフローＩＤにより出力すべきネットワーク側ポートを特定できるＤＢとなっている。このフローＤＢについては後述する。
【００２３】
図３は、中継装置の設定例を説明する図である。図３において、「１」〜「４」はサーバ側ポート１５に割り当てられたポート番号、「１９」〜「２２」はネットワーク側ポート１６に割り当てられたポート番号、をそれぞれ表している。サーバ側ポート１５の符号として表記した「１５−１」は、そのサーバ側ポート１５に割り当てられたポート番号が「１」であることを表している。同様に、ネットワーク側ポート１６の符号として表記した「１６−１９」は、そのネットワーク側ポート１６に割り当てられたポート番号が「１９」であることを表している。この表記法は、同様のケースでも用いる。 
【００２４】
「ＦＩＤ」はフローＩＤの略記であり、例えば｛ＦＩＤ＝１００」はフローＩＤが１００を表している。「ＦＩＤ＝１００」を表記することにより、図３では、ネットワーク側ポート１６−１９は、フローＩＤが１００のフレームの送受信を行うことを表している。これは、ネットワーク側ポート１６−２０、１６−２１及び１６−２２でも同様である。図３に表す構成例では、各ネットワーク側ポート１６から出力されたフレームはスイッチ２を介して対応するネットワークに送信される。
【００２５】
サーバ側ポート１５とネットワーク側ポート１６とを結ぶ線（実線、或いは破線）は、サーバ側ポート１５とネットワーク側ポート１６との間の対応（接続）関係を表している。それにより、例えばサーバ側ポート１５−１に入力されたフレームは、そのフロー識別タイプ、及びフローＩＤにより、ネットワーク側ポート１６−１９或いは１６−２０を介して出力される。サーバ側ポート１５−２に入力されたフレームは、そのフロー識別タイプ、及びフローＩＤにより、ネットワーク側ポート１６−１９或いは１６−２０を介して出力される。
【００２６】
図３に表記の「Ｅｇｒ＿Ｐｅｒｍｉｔ＝｛１，２｝」、「Ｅｇｒ＿Ｐｅｒｍｉｔ＝｛３，４｝」、「Ｅｇｒ＿Ｐｅｒｍｉｔ＝｛１−４，１９，２０｝」、「Ｅｇｒ＿Ｐｅｒｍｉｔ＝｛１−４，２１，２２｝」は、それぞれ、上記のような対応関係の設定に係わる。具体的には、それらＥｇｒ＿Ｐｅｒｍｉｔ情報は以下のような内容の設定情報である。Ｅｇｒ＿Ｐｅｒｍｉｔ情報は「Ｅｇｒｅｓｓ  Ｐｅｒｍｉｔ情報」とも表記する。
【００２７】
ネットワーク側ポート１６−１９及び１６−２０を対象にした「Ｅｇｒ＿Ｐｅｒｍｉｔ＝｛１，２｝」は、ネットワーク側ポート１６−１９及び１６−２０がサーバ側ポート１５−１或いは１５−２に入力されたフレームのみを出力（通過）することを設定する。同様に、ネットワーク側ポート１６−２１及び１６−２２を対象にした「Ｅｇｒ＿Ｐｅｒｍｉｔ＝｛３，４｝」は、ネットワーク側ポート１６−２１及び１６−２２がサーバ側ポート１５−３或いは１５−４に入力されたフレームのみを出力（通過）することを設定する。
【００２８】
サーバ側ポート１５−１及び１５−２を対象にした「Ｅｇｒ＿Ｐｅｒｍｉｔ＝｛１−４，１９，２０｝」は、サーバ側ポート１５−１及び１５−２が、サーバ側ポート１５−１〜１５−４、ネットワーク側ポート１６−１９、及び１６−２０のうちの何れかに入力されたフレームのみを出力することを設定する。同様に、サーバ側ポート１５−３及び１５−４を対象にした「Ｅｇｒ＿Ｐｅｒｍｉｔ＝｛１−４，２１，２２｝」は、サーバ側ポート１５−３及び１５−４が、サーバ側ポート１５−１〜１５−４、ネットワーク側ポート１６−２１、及び１６−２２のうちの何れかに入力されたフレームのみを出力することを設定する。
【００２９】
サーバ側ポート１５−１及び１５−２には、更に「Ｕｐｌｉｎｋ  Ｆｉｌｔｅｒ＝｛３，４，２１，２２｝」が設定され、サーバ側ポート１５−１及び１５−２には、更に「Ｕｐｌｉｎｋ  Ｆｉｌｔｅｒ＝｛１，２，１９，２０｝」が設定されている。これらは、フラッディング防止用の設定情報である。その設定情報により、サーバ側ポート１５−１及び１５−２は、サーバ側ポート１５−３、及び１５−４、ネットワーク側ポート１６−２１、及び１６−２２の何れに入力されたブロードキャストフレーム、及び宛先不明のユニキャストフレームも出力しない。同様に、サーバ側ポート１５−３及び１５−４は、サーバ側ポート１５−１、及び１５−２、ネットワーク側ポート１６−１９、及び１６−２０の何れに入力されたブロードキャストフレーム、及びマルチキャストフレームも出力しない。 
【００３０】
各ネットワーク側ポート１６−１９〜１６−２２には、「Ｌｅａｒｎｉｎｇ  Ｄｉｓａｂｌｅｄ」が設定されている。この設定情報は、各ネットワーク側ポート１６−１９〜１６−２２から出力されるフレームの宛先アドレス（例えばＭＡＣアドレス）の学習を行わないことを指定する。この設定情報により、上記宛先ＤＢに格納される宛先アドレスは、サーバ側ポート１５−１〜１５−４にそれぞれ接続されたサーバ３１〜３４が所有するものとなる。それにより、各ネットワーク側ポート１６−１９〜１６−２２の何れかに入力されたフレームのなかでフロー識別タイプ、及びフローＩＤから出力先とするサーバ側ポート１５を特定できないフレームは、宛先ＤＢを参照して出力先を特定することとなる。
【００３１】
各サーバ側ポート１５−１〜１５−４に対する「Ｆｌｏｏｄｉｎｇ  Ｆｉｌｔｅｒ  Ｅｎａｂｌｅｄ」、及び各ネットワーク側ポート１６−１９〜１６−２２に対する「Ｆｌｏｏｄｉｎｇ  Ｆｉｌｔｅｒ  Ｄｉｓａｂｌｅｄ」もフラッディングに係わる設定情報である。「Ｆｌｏｏｄｉｎｇ  Ｆｉｌｔｅｒ  Ｅｎａｂｌｅｄ」は、宛先不明のユニキャストフレームをフィルタし、出力しないことを指定する。そのため、各サーバ側ポート１５−１〜１５−４は、宛先不明のユニキャストフレームを出力しない。一方、「Ｆｌｏｏｄｉｎｇ  Ｆｉｌｔｅｒ  Ｄｉｓａｂｌｅｄ」は、宛先不明のユニキャストフレームをフィルタすることなく出力することを指定する。そのため、各ネットワーク側ポート１６−１９〜１６−２２は、宛先不明のユニキャストフレームを出力する。
【００３２】
図４は、ネットワーク側ポートに対応付けたサーバ側ポートの例を説明する図である。図４では、ネットワーク側ポート番号毎に、その番号のネットワーク側ポート１６に対応付けられたサーバ側ポート１５をそのポート番号で表している。図４に表すように、図３に表すような設定が行われた場合、各ネットワーク側ポート１６には、それぞれ２つのサーバ側ポート１５が対応付けられる。
【００３３】
図５は、フローＤＢの内容例を説明する図である。この図５は、図３に表すように、中継装置１に対する設定が行われた場合のものである。上記のように、フローＤＢの各エントリ（レコード）には、サーバ側ポート番号、フロー識別タイプ（通信種別）、フローＩＤ、ネットワーク側ポート番号（図５では「固定するネットワーク側ポート番号」と表記）、の各データが格納される。各サーバ側ポート１５は、それぞれ２つのネットワーク側ポート１６と対応付けられている。そのため、各エントリには、フロー識別タイプ、フローＩＤ、及びネットワーク側ポート番号の組を２つ表記している。
【００３４】
図５中の「ＶＬＡＮ」は、フロー識別タイプを表す情報として表記している。フローＩＤとしては、ＶＬＡＮ  ＩＤを用いることができる。フローＩＤは、送受信されるフレームを識別できれば良いことから、他に、プライオリティ、プライオリティグループ、ＴＯＳ（Type Of Service）、通信プロトコル、送信元アドレス（例えばＭＡＣアドレス、或いはＩＰ（Internet Protocol）アドレス）等を表すデータであっても良い。
【００３５】
サーバ側ポート１５に入力されたフレームの出力先とするネットワーク側ポート１６は、フロー識別タイプとフローＩＤから特定することができる。しかし、ネットワーク側ポート１６に入力されたフレームの出力先とするサーバ側ポート１５は、フロー識別タイプとフローＩＤから特定できるとは限らない。特定できない場合、上記のように、宛先ＤＢから出力先とするサーバ側ポート１５が特定される。
【００３６】
上記のように、中継装置１は、１つのサーバ側ポート１５に複数のネットワーク側ポート１６を対応付けることができる。複数のネットワーク側ポート１６と対応付けられたサーバ側ポート１５に接続されるサーバには、任意のネットワーク側ポート１６を介したフレームの送受信を行えるように、仮想化された仮想インターフェースの作成が求められる。仮想インターフェースは、その用途等により、ｖＮＩＣ（virtual Network Interface Card）、vＨＢＡ（virtual Host Bus Adapter）等と呼称される。
【００３７】
図６は、中継装置と接続されているサーバ上に作成された仮想インターフェースの例を説明する図である。図６では、中継装置１は、サーバ側ポート１５ａにネットワーク側ポート１６ａ、１６ｃ及び１６ｅが対応付けられ、サーバ側ポート１５ｂにネットワーク側ポート１６ｂ、１６ｄ及び１６ｆが対応付けられている。そのため、サーバ側ポート１５ａと接続されたサーバ３１に搭載されたアダプタ６０上には仮想インターフェースとして２つのｖＮＩＣ６１及び６２、及び１つのｖＨＢＡ６３が作成されている。同様にサーバ側ポート１５ｂと接続されたサーバ３２に搭載されたアダプタ６０上にも仮想インターフェースとして２つのｖＮＩＣ６５及び６６、１つのｖＨＢＡ６７が作成されている。
【００３８】
中継装置１は、各ネットワーク側ポート１６と接続されているネットワーク上で発生した障害をイベントとして検出し、障害を検出した場合に、その旨を通知する機能を備えている。その機能は、例えば障害が検出されたネットワークと接続されたネットワーク側ポートと対応付けられているサーバ側ポート１５を切断（オフ）することで通知を行う。その機能により、中継装置１は、ネットワーク側ポート１６毎に、発生した障害をサーバ３１、或いは３２に認識させることができる。 
【００３９】
各サーバ３１及び３２への通知は、アダプタ６０によって受信される。その通知に応じてアダプタ６０によるフレームの送受信を停止させると、各サーバ３１及び３２のアダプタ６０上で作成されている全ての仮想インターフェースを停止させることとなる。
【００４０】
図６は、ネットワーク７上で発生した障害を中継装置１がネットワーク側ポート１６ｆで検出し、その検出結果をサーバ側ポート１５ｂからサーバ３２に通知したケースを表している。このケースを例にとって、上記不具合について具体的に説明する。
【００４１】
このケースでは、サーバ３２に搭載のアダプタ６０上には２つのｖＮＩＣ６５、６６と、１つのｖＨＢＡ６７が作成されている。それにより、ｖＮＩＣ６５、６６、及びｖＨＢＡ６７は、サーバ側ポート１５ｂと対応付けられたネットワーク側ポート１６ｂ、１２ｄ、或いは１６ｆを介したフレームの送受信を実現させる。
【００４２】
ネットワーク７に発生した障害によって、ネットワーク側ポート１６ｆを介したフレームの送受信が行えない状況時に、ネットワーク側ポート１６ｂ及び１６ｄにそれぞれ接続されたネットワーク５及び９に共に障害が発生しているとは限らない。このため、ネットワーク側ポート１６ｆに接続されたネットワーク７に発生した障害によって全ての仮想インターフェースを停止させた場合、ネットワーク５及び９のうちで障害が発生していないネットワークを介したフレームの送受信も行えなくなる。障害の発生していないネットワークを介したフレームの送受信の停止は、サーバにおける処理効率を著しく低下させる。このことから、上記のような中継装置１にサーバを接続させた場合、ネットワークに発生した障害（イベント）に適切に対応するうえでは、そのサーバが接続されたサーバ側ポート１５に対応付けられているネットワーク側ポート１６を考慮する必要があると云える。
【００４３】
このようなことから、本発明の実施形態は、上記のような中継装置１に接続された場合に、その中継装置１によるネットワークに発生したイベントの検出結果に適切に対応できるようにしたものである。以下、本発明の実施形態について、図面を参照しながら詳細に説明する。
【００４４】
図７は、本発明の実施形態が適用されたデータ処理システムの構成を説明する図である。図７に表すように、このデータ処理システムは、上記中継装置１に、２台のサーバ３００（３００−１、３００−２）、並びにネットワーク５、７及び９が接続されたコンピュータシステムである。本実施形態は、中継装置１のサーバ側ポート１５ａ及び１５ｂにそれぞれ接続されたサーバ（データ処理装置）３００として実現されている。
【００４５】
図７に表す中継装置１は、図１〜図６を参照して説明した中継装置１と同じものであっても良い。ネットワーク５、７及び９も、図１或いは図６に表すものと同じで良い。このことから、それらには同一の符号を付している。
【００４６】
本実施形態によるサーバ３００は、中継装置１のサーバ側ポート１５と接続されるアダプタ３１０、及びリンク状態管理部３２０を搭載している。
【００４７】
アダプタ３１０は、接続されたサーバ側ポート１５と対応付けられたネットワーク側ポート１６単位で仮想インターフェースを作成可能である。図７でも、図６と同様に、中継装置１は、サーバ側ポート１５ａにネットワーク側ポート１６ａ、１６ｃ及び１６ｅが対応付けられ、サーバ側ポート１５ｂにネットワーク側ポート１６ｂ、１６ｄ及び１６ｆが対応付けられている。そのため、サーバ側ポート１５ａ及び１５ｂとそれぞれ接続されているサーバ３００−１及び３００−２に搭載されたアダプタ３１０上には仮想インターフェースとして２つのｖＮＩＣ３１０ａ、３００ｂ及びｖＨＡＢ３００ｃが作成されている。
【００４８】
リンク状態管理部３２０は、ネットワーク側ポート１６単位で中継装置１が行うネットワークに発生したイベントの検出結果に応じて、アダプタ３１０上に作成された仮想インターフェースを個別に動作（オン）／停止（オフ）させる。それにより、リンク状態管理部３２０は、各サーバ３００に、通信が可能なネットワークのうちの何れかに障害が発生しても、障害が発生していないネットワークとの通信が可能な状態を維持させる。このため、各サーバ３００は、或るネットワークに障害が発生したとしても、障害が発生していないネットワークとの通信は継続して行うことができる。このことから、各サーバ３００は、通信可能なネットワークとの通信を停止させることに伴う処理効率の低下は回避、或いは抑えることができる。
【００４９】
図８は、本実施形態によるサーバの構成を表す図であり、図９は、本実施形態によるサーバに搭載されたアダプタの構成例を表す図である。図８、及び図９を用いて本実施形態によるサーバを説明する前に、図１０〜図１３を参照し、ネットワークに発生するイベントに対応するための中継装置１の動作について詳細に説明する。ここでは、便宜的に、イベントとして、障害、及びその障害の復旧のみを想定する。
【００５０】
図１０は、障害／復旧検出処理のフローチャートである。この障害／復旧検出処理は、ネットワーク側ポート１６の何れかに接続されたネットワーク上に発生したイベント（障害、及びその障害の復旧）を検出するために実行される処理である。図２に表す中継装置１の構成では、この障害／復旧検出処理は、特定部１１に実行させることができる。始めに図１０を参照して、この障害／復旧検出処理について詳細に説明する。
【００５１】
ネットワークの障害は、例えば定期的に交換されるフレーム（パケットでは例えば「Helloパケット」が相当。以降「観測用フレーム」と表記）を監視することで検出することができる。予め定めた一定時間内の間に、その観測用フレームを受信しない場合に、ネットワークに障害が発生したと見なすことができる。ネットワーク上のノードとケーブル等で直接、中継装置１が接続されている場合、そのノードとのリンク障害（リンクダウン）の発生を、ネットワークの障害と見なすことができる。障害の復旧は、観測用フレームの受信回復、リンクアップ、等により検出することができる。
【００５２】
先ず、特定部１１は、何れかのネットワーク側ポート１６（ネットワーク）で新たに障害が検出されたか否か判定する（Ｓ１）。障害が検出されていないネットワーク側ポート１６に割り当てられた受信ポート１０１の何れかで観測用フレームの受信が一定時間以上、途絶えるか、或いはリンクダウンが発生したような場合、Ｓ１の判定はＹ（ＹＥＳ）となる。その場合、特定部１１は変数である検出イベントに１を設定（代入）し（Ｓ５）、Ｓ４に移行する。障害が検出されていないネットワーク側ポート１６に割り当てられた受信ポート１０１の全てで観測用フレームの受信が途絶えず、且つリンクダウンも発生していないような場合、Ｓ１の判定はＮ（ＮＯ）となってＳ２に移行する。
【００５３】
上記検出イベントは、イベントの検出結果、つまり検出されたイベントが障害か復旧の何れであるかを表す情報の保持に用いられる。ネットワーク側ポート１６毎のイベントの検出結果の保存には、後述する変数である障害マークが用いられる。この障害マークにより、各ネットワーク側ポート１６で検出されているイベントの種類は特定することができる。イベントとして障害が検出されたネットワーク側ポート１６では障害マークが設定、例えば障害マークの値として１が代入される。イベントとして復旧が検出されたネットワーク側ポート１６では障害マークが解除、例えば障害マークの値として０が代入される。
【００５４】
なお、「障害が検出された」或いは「障害が発生した」等の表現は、広義には、障害を検出してから、或いは障害が発生してから、復旧が検出される、或いは復旧する直前までの間の状態を指す意味で用いている。同様に、「障害の復旧が検出された」或いは「障害が復旧した」他の表現は、広義には、障害の復旧が検出されてから、或いは障害が復旧してから、次に障害が検出される、或いは次に障害が発生するまでの間の状態を指す行きで用いている。
【００５５】
Ｓ２では、特定部１１は、障害が検出されたネットワーク側ポート１６（ネットワーク）の何れかで障害の復旧が検出されたか否か判定する。障害が検出されたネットワーク側ポート１６に割り当てられている受信ポート１０１の何れかで観測用フレームを受信した、或いはリンクアップが発生したような場合、Ｓ２の判定はＹとなる。その場合、特定部１１は検出イベントに２を設定（代入）し（Ｓ３）、Ｓ４に移行する。障害が検出されたネットワーク側ポート１６に割り当てられている受信ポート１０１の全てで観測用フレームを受信せず、且つリンクアップも発生しなかったような場合、Ｓ２の判定はＮとなって上記Ｓ１に戻る。それにより、特定部１１は、障害、及び障害の復旧の検出を継続して行う。
【００５６】
Ｓ４では、特定部１１は、障害、或いは復旧がイベントとして検出されたネットワーク側ポート１６のポート番号Ｎを取得する。続いて、特定部１１は、ポート番号Ｎのネットワーク側ポート１６（図１０中「ポートＮ」と表記）は障害伝搬機能、つまり検出されたイベントの通知が有効となっているか否か判定する。障害伝搬機能が有効となっていた場合、Ｓ６の判定はＹとなってＳ７に移行する。障害伝搬機能が無効となっていた場合、Ｓ６の判定はＮとなって上記Ｓ１に戻る。障害伝搬機能の設定は、図３に表していない設定情報により行われる。
【００５７】
Ｓ７では、特定部１１は、検出イベントの値が１か否か判定する。その検出イベントの値が１であった場合、Ｓ７の判定はＹとなり、特定部１１は、ポート番号Ｎのネットワーク側ポート１６の障害マークを設定し（Ｓ８）、Ｓ１０に移行する。その検出イベントの値が２であった場合、Ｓ７の判定はＮとなり、特定部１１は、ポート番号Ｎのネットワーク側ポート１６の障害マークを解除し（Ｓ９）、Ｓ１０に移行する。
【００５８】
Ｓ１０では、特定部１１は、ポート番号Ｎのネットワーク側ポート１６と対応付けられた各サーバ側ポート１５から、検出されたイベントを通知するための障害／復旧通知処理を実行する。その実行後は上記Ｓ１に戻る。
【００５９】
このようにして、中継装置１は、何れかのネットワーク側ポート１６で発生するイベントの検出を行い、イベントが検出されたネットワーク側ポート１６と対応付けられた各サーバ側ポート１５から、その検出結果を通知する。本実施形態によるサーバ３００は、その通知をインバンド処理、つまりアダプタ３１０内で処理し、仮想インターフェース３１２ａを制御する。そのために、リンク状態管理部３２０はアダプタ３１０内に実装されている。このことから、本実施形態によるデータ送受信装置は、アダプタ３１０として実現されている。
【００６０】
ここで、図１３を参照し、イベントの検出結果の通知に用いられる制御フレームの構成について説明する。
【００６１】
図１３に表すように、その制御フレームは、宛先アドレス、送信元アドレス、この制御フレームの長さ、或いはタイプを表すデータ、操作コード、仮想リンク・タイプを表すデータ、仮想リンクＩＤ、等を含む。
【００６２】
操作コードは、制御フレームの宛先で行うべき操作内容を表す。図１３に表記の「仮想リンクＯＦＦ」は、その制御フレームを受信するアダプタ３１０に仮想インターフェース３１２ａの停止を要求する。このことから、操作コードは、検出されたイベントの種類を表すデータとなっている。アダプタ３１０の動作を要求する操作コードは「仮想リンクＯＮ」と表記する。
【００６３】
仮想リンク・タイプは、図４に表すフロー識別タイプと同種のデータである。フロー識別タイプは、仮想リンク・タイプのデータとして制御フレームに格納される。仮想リンクＩＤのデータとして、図４に表すフローＩＤが格納される。このことから、仮想リンク・タイプ、及び仮想リンクＩＤは、ポート番号Ｎを用いてフローＤＢを参照することで抽出できる。
【００６４】
図１１は、障害／復旧通知処理のフローチャートである。次に図１１を参照して、上記Ｓ１０で実行される障害／復旧通知処理について詳細に説明する。
【００６５】
先ず、特定部１１は、検出イベントの値が１か否か判定する（Ｓ２１）。その検出イベントの値が１であった場合、Ｓ２１の判定はＹとなり、特定部１１は、制御フレームに格納する操作コードとして「仮想リンクＯＦＦ」をセットし（Ｓ２２）、Ｓ２４に移行する。その検出イベントの値が２であった場合、Ｓ２１の判定はＮとなり、特定部１１は、制御フレームに格納する操作コードとして「仮想リンクＯＮ」をセットし（Ｓ２３）、Ｓ２４に移行する。
【００６６】
Ｓ２４では、特定部１１は、Ｅｇｒｅｓｓ  Ｐｅｒｍｉｔ情報から、ポート番号Ｎのネットワーク側ポート１６に対応付けられたサーバ側ポート１５のポート番号を抽出し、抽出したポート番号をまとめたサーバ側ポートリストを取得（作成）する。
【００６７】
上記サーバ側ポートリストは、実際には、抽出したポート番号を格納した格納領域である。図１３に表すような制御フレームの送信は、サーバ側ポートリストに格納されたポート番号のサーバ側ポート１５毎に、そのポート番号を削除しながら行われる。
【００６８】
次に特定部１１は、サーバ側ポートリストは空、つまり格納されているポート番号が存在しないか否か判定する。サーバ側ポートリストにポート番号が存在しない場合、Ｓ２５の判定はＹとなり、ここで障害／復旧通知処理が終了する。サーバ側ポートリストにポート番号が存在する場合、Ｓ２５の判定はＮとなってＳ２６に移行する。
【００６９】
Ｓ２６では、特定部１１は、サーバ側ポートリストから一つのポート番号を取得し、取得したポート番号が割り当てられているサーバ側ポート１５から送信すべき制御フレームを作成し送信する通知送信処理を実行する。その実行後は上記Ｓ２５に戻る。それにより、制御フレームの作成・送信は、サーバ側ポート１５毎に行われる。
【００７０】
図１２は、通知送信処理のフローチャートである。ネットワークに発生するイベントに対応するための中継装置１の動作として、最後に図１２を参照し、上記通知送信処理について詳細に説明する。
【００７１】
先ず、特定部１１は、サーバ側ポートリストからポート番号を一つ取得し、取得したポート番号を変数Ｍに代入し、取得したポート番号をサーバ側ポートリストから削除する（Ｓ３１）。次に特定部１１は、フローＤＢを参照し、変数Ｍの値をポート番号とするサーバ側ポート１５（図１２中「ポートＭ」と表記）とポート番号Ｎのネットワーク側ポート１６との間で設定されたフロー識別タイプ、及びフローＩＤを特定する（Ｓ３２）。
【００７２】
続いて、特定部１１は、宛先ＤＢを参照し、変数Ｍの値をポート番号とするサーバ側ポート１５に接続されたサーバ３００のアドレスを宛先アドレスとして取得し、制御フレーム（図１２中「制御通知」と表記）を作成し、そのサーバ側ポート１５から送信する（Ｓ３３）。その後、通知送信処理を終了する。
【００７３】
作成される制御フレームは、取得した宛先アドレス、Ｓ３２で特定したフロー識別タイプ（仮想リンク・タイプ）及びフローＩＤ（仮想リンクＩＤ）、及び図１１のＳ２２或いはＳ２３でセットされた操作コードが格納される。そのような制御フレームが、イベントが検出されたネットワーク側ポート１６と対応付けられた各サーバ側ポート１５から送信される。
【００７４】
本実施形態によるサーバ３００は、その制御フレームを中継装置１から受信することを前提とする。以降、本実施形態によるサーバ３００について説明する。
【００７５】
図８に表すように、本実施形態によるサーバ３００は、アダプタ３１０、そのアダプタ３１０内に実装されたリンク状態管理部３２０の他に、ＣＰＵ（Central Processing Unit）３３０、メモリ３４０、ディスク装置３５０、ＢＭＣ（Baseboard Management Controller)３６０、及びバス３７０を備えている。バス３７０は、アダプタ３１０、ＣＰＵ３３０、メモリ３４０、ディスク装置３５０及びＢＭＣ３６０を互いに接続させる。
【００７６】
ディスク装置３５０は、ＣＰＵ３３０が実行する各種プログラム、各種データ、等を格納している。各種プログラムとしては、各種アプリケーション・プログラム、ＯＳ（Operating System）３５１、及び各種デバイス・ドライバ（以降「ドライバ」と略記）が存在する。各種ドライバのうちの一つとして、アダプタ３１０用のドライバ３５２が存在する。
【００７７】
図８では、ドライバ３５２はＯＳ３５１とは別に表している。これは、ドライバ３５２は必ずしもＯＳ３５１に組み込まれていなくとも良いからである。このことから、ドライバ３２は既に運用中のサーバ３００に新たにインストールして用いても良い。
【００７８】
ＢＭＣ３６０は、サーバ３００の電源のオン／オフ、障害の検出、等を行う管理装置である。このＢＭＣ３６０は、ネットワーク５、７及び９とは異なる専用ネットワークを介してサーバ管理装置４００と接続されている。サーバ管理装置４００は、中継装置１に接続された各サーバ３００を含む管理を行う。サーバ管理装置４００は、中継装置１への各種設定も行うことができる。
【００７９】
サーバ３００は、ＢＭＣ３６０の代わりに、ＢＭＣ３６０に拡張機能が追加されたＢＭＣであるiRMC（integrated Remote Management Controller）を搭載しても良い。通常のＮＩＣを搭載させても良い。
【００８０】
アダプタ３１０は、実装されたリンク状態管理部３２０の他に、送受信部３１１、及び仮想化レイヤ部３１２を備える。送受信部３１１は、サーバ３００のバス３７０と、サーバ３００が接続された中継装置１との間でデータの送受信を行うための構成要素である。仮想化レイヤ部３１２は、アダプタ３１０を仮想化するための構成要素であり、送受信部３１１との間でデータの入出力を行う。仮想化レイヤ部３１２には、設定に従って、送受信部３１１との間で仮想的にデータを送受信する構成要素としての仮想インターフェース（図８中「仮想Ｉ／Ｆ」と表記）３１２ａが作成される。その仮想インターフェース３１２ａの作成によって、アダプタ３１０上に図７に表すｖＮＩＣ３１０ａ、３１０ｂ及びｖＨＢＡ３１０ｃが実現される。つまり、図７に表すｖＮＩＣ３１０ａ、３１０ｂ及びｖＨＢＡ３１０ｃは、仮想化レイヤ部３１２上に構成される仮想インターフェース３１２ａによって実現される
アダプタ３１０は、図９に表すように、アダプタ制御部３１５を備えている。アダプタ制御部３１５は、アダプタ３１０全体を制御する。仮想レイヤ部３１２は、アダプタ制御部３１５からの指示に従って、仮想インターフェース３１２ａを構成する。仮想レイヤ部３１２は、構成した仮想インターフェース３１２ａのオン（動作）／オフ（停止）もアダプタ制御部３１５からの指示に従って行う。
【００８１】
送受信部３１１は、バスインターフェース（図９中「インターフェース」は「Ｉ／Ｆ」と表記）９０１、複数の受信キュー９０２（９０２−１〜９０２−ｎ）、複数の送信キュー９０３（９０３−１〜９０３−ｎ）、制御フレーム用受信キュー９０４、制御フレーム用送信キュー９０５、受信ポート９０６、送信ポート９０７、分配部９０８、及び送信スケジューラ９０９を含む。
【００８２】
バスインターフェース９０１は、バス３７０を介してＣＰＵ３３０との間でデータの入出力を行う。バスインターフェース９０１は、仮想レイヤ部３１２から入力したデータをバス３７０に出力し、バス３７０から入力したデータを仮想レイヤ部３１２、或いはアダプタ制御部３１５に出力する。仮想レイヤ部３１２に入力されたデータは、対応する仮想インターフェース３１２ａに振り分けられる。ＣＰＵ３３０は、バス３７０を介したアダプタ３１０との間のデータの入出力を、ＯＳ３５１及びドライバ３５２を用いて行う。
【００８３】
仮想レイヤ部３１２の仮想インターフェース３１２ａからフレームの形で出力されたデータは、対応する送信キュー９０３に格納される。送信スケジューラ９０９は、アダプタ制御部３１５による設定に従い、制御フレーム用送信キュー９０５、及び各送信キュー９０３の何れかに格納されているフレームを選択し、選択したフレームを送信ポート９０７に出力する。その結果、サーバ３００の送信ポート９０７から中継装置１にフレームが送信される。アダプタ制御部３１５は、制御フレーム用送信キュー９０５に格納する制御フレームを作成する。
【００８４】
受信ポート９０６は、中継装置１から送信されたフレームを受信し、受信したフレームを分配部９０８に出力する。アダプタ制御部３１５は、分配部９０８に対し、例えば宛先アドレス、或いはフローＩＤ毎に、対応する受信キュー９０３を設定（分配設定）する。それにより、分配部９０８は、受信ポート９０６から受信したフレーム中の宛先アドレス、或いはフローＩＤを参照し、受信したフレームを対応する受信キュー９０２に格納する。受信キュー９０２に格納されたフレームは、仮想レイヤ部３１２の対応する仮想インターフェース３１２ａに出力される。
【００８５】
分配部９０８は、アダプタ制御部３１５による設定（フィルタ設定）に従い、受信キュー９０２に出力すべきでないフレームを特定し、特定したフレームは廃棄する。そのようなフィルタ機能により、各受信キュー９０２には、格納すべきフレームのみが格納される。
【００８６】
図１３に表すような制御フレームを受信ポート９０６が受信した場合、その制御フレームは分配部９０８によって制御フレーム用受信キュー９０４に格納される。その受信キュー９０４に格納された制御フレームはアダプタ制御部３１５に入力され処理される。
【００８７】
アダプタ制御部３１５は、制御フレーム処理部３１５ａ、及び仮想リンク制御部３１５ｂを備える。
【００８８】
制御フレーム処理部３１５ａは、受信ポート９０６により受信された制御フレームを処理し、例えば仮想リンク制御部３１５ｂに必要な情報を出力する。また、制御フレーム処理部３１５ａは、ＣＰＵ３３０からの指示に従い、送信すべき制御フレームを作成し、作成した制御フレームを制御フレーム用送信キュー９０５に格納する。図１３に表すような制御フレームを処理する場合、制御フレーム処理部３１５ａは、例えば制御フレームから操作コード、仮想リンク・タイプ（フロー識別タイプ）、及び仮想リンクＩＤ（フローＩＤ）を抽出し、仮想リンク制御部３１５ｂに出力する。
【００８９】
仮想リンク制御部３１５ｂは、仮想化レイヤ部３１２の制御を行う。上記のように、仮想リンク制御部３１５ｂは、図１３に表すような制御フレームを受信ポート９０６が受信した場合、制御フレーム処理部３１５ａから操作コード、仮想リンク・タイプ（フロー識別タイプ）、及び仮想リンクＩＤ（フローＩＤ）を入力する。その場合、仮想リンク制御部３１５ｂは、仮想リンク・タイプ、及び仮想リンクＩＤから制御の対象となる仮想インターフェース３１２ａを特定し、特定した仮想インターフェース３１２ａに対し、操作コードに応じた制御を行う。それにより、アダプタ３１０上の各仮想インターフェース３１２ａは、図１３に表すような制御フレームの受信により、個別にオン／オフされる。その結果、中継装置１がイベント（障害、或いは復旧）を検出したネットワーク側ポート１６に対応するアダプタ３１０上の仮想インターフェース３１２ａは、そのネットワーク側ポート１６、及びそのイベントの種類に応じて個別にオン／オフされることになる。このようなことから、リンク状態管理部３２０は、アダプタ制御部３１５上に搭載された制御フレーム処理部３１５ａ、及び仮想リンク制御部３１５ｂを用いて実現されている。
【００９０】
図１４は、リンク状態管理部による処理の流れを表すフローチャートである。図１４は、制御フレーム処理部３１５ａ、及び仮想リンク制御部３１５ｂを用いて実現されるリンク状態管理部３２０が、受信された１つの制御フレームを処理する場合の処理（動作）の流れを表している。次に図１４を参照し、制御フレーム処理部３１５ａ、及び仮想リンク制御部３１５ｂを用いて実現されるリンク状態管理部３２０の動作について詳細に説明する。
【００９１】
先ず、制御フレーム処理部３１５ａは、制御フレーム用受信キュー９０４から取り出した制御フレームが図１３に表すような仮想インターフェース３１２ａのオン／オフに係わる制御フレーム（図１４中「仮想リンク制御フレーム」と表記。以降、この表記を用いる）か否か判定する（Ｓ４１）。制御フレームが仮想リンク制御フレームであった場合、Ｓ４１の判定はＹとなり、Ｓ４３に移行する。制御フレームが仮想リンク制御フレームでなかった場合、Ｓ４１の判定はＮとなり、Ｓ４２に移行する。
【００９２】
Ｓ４２では、制御フレーム処理部３１５ａは、取り出した制御フレームの内容に応じた処理を行う。制御フレームがアダプタ３１０内での制御を要求するものであった場合、制御フレーム処理部３１５ａは、制御フレームが要求する制御を行い、バスインターフェース９０１を介して、必要な情報のＣＰＵ３３０への出力を行う。制御フレームがアダプタ３１０内での制御を要求するものでなかった場合、制御フレーム処理部３１５ａは、バスインターフェース９０１を介して、制御フレームの内容をＣＰＵ３３０に出力するための通常受信処理を行う。そのような処理がＳ４２で行われた後、一連の処理が終了する。
【００９３】
Ｓ４３では、制御フレーム処理部３１５ａは、制御フレームから操作コード、仮想リンク・タイプ（フロー識別タイプ）、及び仮想リンクＩＤ（フローＩＤ）を抽出し、仮想リンク制御部３１５ｂに出力する。仮想リンク制御部３１５ｂは、仮想リンク・タイプ、及び仮想リンクＩＤから制御の対象となる仮想インターフェースを特定し、特定した仮想インターフェースに対し、操作コードに応じてオン／オフを行う（Ｓ４３）。そのような処理がＳ４３で行われた後、一連の処理が終了する。
【００９４】
上記のように仮想インターフェース３１２ａをオン／オフするアダプタ３１０の制御は、中継装置１がサーバ側ポート１５から仮想リンク制御フレームを送信することを前提としたインバンド処理によりアダプタ３１０自身で行われる。しかし、インバンド処理は異なる形で行っても良い。具体的には、例えばアダプタ３１０に仮想リンク制御フレームをそのまま、或いはそれから抽出した情報をＣＰＵ３３０（ドライバ３５２）に転送させることにより、ＣＰＵ３３０からの指示に従ってアダプタ３１０に仮想インターフェース３１２ａのオン／オフを行わせても良い。そのようにした場合、リンク状態管理部３２０は、アダプタ３１０（のアダプタ制御部３１５）と、ＣＰＵ３３０とを用いて実現されることになる。
【００９５】
図１５は、アダプタとＣＰＵによって実装されたリンク状態管理部による処理の流れを表すフローチャートである。図１５では、アダプタ３１０、ＣＰＵ３３０の各動作（処理）を明確にするために、フローチャートは分けて表している。ＣＰＵ３３０における処理を実現させるプログラムとしてはドライバ３５２を想定し、「ドライバ」を表記している。図１４と内容が同じ、或いはほぼ同じ処理には同一の符号を付している。それにより、図１４から異なる部分にのみ注目する形で説明を行う。
【００９６】
アダプタ３１０の制御フレーム処理部３１５ａは、Ｓ４１の判定がＹとなった場合、Ｓ５１に移行し、例えば仮想リンク制御フレームをそのままＣＰＵ３３０に転送する。その転送は、バスインターフェース９０１、及びバス３７０を介して行われる。
【００９７】
ＣＰＵ３３０（が実行するドライバ３５２）は、アダプタ３１０から転送された仮想リンクフレームの処理を行う（Ｓ６１）。次にＣＰＵ３３０は、バス３７０を介して、アダプタ３１０に仮想インターフェース３１２ａをオン／オフさせるための制御指示を行う（Ｓ６２）。その制御指示を行うことで、ＣＰＵ３３０側の一連の処理は終了する。
【００９８】
その制御指示において、オン／オフの対象となる仮想インターフェース３１２ａは、仮想リンク制御フレームから抽出した仮想リンク・タイプ（フロー識別タイプ）、及び仮想リンクＩＤ（フローＩＤ）により指定することができる。指定した仮想インターフェース３１２ａのオン／オフは、仮想リンク制御フレームから抽出した操作コードに対応する制御コマンドにより指示すれば良い。
【００９９】
アダプタ３１０は、仮想リンク制御フレームをＣＰＵ３３０に転送した後、ＣＰＵ３３０からの制御指示を入力するのを待つ。制御指示を入力すると、入力した制御指示に従って、仮想インターフェース３１２ａをオン／オフする（以上Ｓ５２）。そのようなオン／オフを行った後、アダプタ３１０側の一連の処理が終了する。
【０１００】
インバンド処理を想定した場合、アダプタ３１０上に作成された仮想インターフェース３１２ａの個別のオン／オフ制御では、上記のような変形例を採用することもできる。他の変形例を採用しても良い。このことから明らかなように、インバンド処理を採用した場合の制御方法には様々な変形を行うことができる。
【０１０１】
図８に表すサーバ管理装置４００が存在するような場合、各サーバ３００は、サーバ管理装置４００を介して、中継装置１による各ネットワーク側ポート１６で検出されたイベントを認識することができる。このことから、サーバ管理装置４００のような外部装置が存在する場合、中継装置１にサーバ側ポート１５から仮想リンク制御フレームを送信させることなく、アダプタ３１０上に構成された仮想インターフェース３１２ａを制御するアウトバンド処理を採用することもできる。そのアウトバンド処理は、中継装置１と各サーバ３００が専用の別のネットワーク（或いはバス）により接続されているシステム環境であっても採用できる。
【０１０２】
サーバ管理装置４００の存在を想定する場合、中継装置１は、例えば図１６に表すような制御コマンド（仮想リンク制御コマンド）をサーバ管理装置４００に送信する。その制御コマンド中に格納された物理サーバＩＤは、図１２のＳ３１において、サーバ側ポートリストから取得されたポート番号に対応するサーバ３００、つまりそのポート番号のサーバ側ポート１５に接続されたサーバ３００を一意に表す識別情報である。アウトバンド処理が採用される場合、中継装置１は、図１６に表すような仮想リンク制御コマンドを図１２のＳ３３で仮想リンク制御フレームの代わりにサーバ管理装置４００に送信すれば良い。サーバ管理装置４００は、中継装置１から受信した仮想リンク制御コマンドを物理サーバＩＤによって特定されるサーバ３００に転送すれば良い。
【０１０３】
サーバ管理装置４００からのデータは、サーバ３００のＢＭＣ３６０によって受信される。サーバ３００側では、受信された仮想リンク制御コマンドをＢＭＣ３６０から直接アダプタ３１０に転送し、アダプタ３１０に処理させても良い。或いは受信された仮想リンク制御コマンドをＢＭＣ３６０からＣＰＵ３３０に転送し、ＣＰＵ３３０にその制御コマンドを処理させて、ＣＰＵ３３０にアダプタ３１０を制御させても良い。このようなことから、アウトバンド処理を採用する場合であっても、様々な制御方法を用いることができる。
【０１０４】
インバンド処理を採用した場合、サーバ３００は中継装置１のサーバ側ポート１５から直接、仮想リンク制御フレームを受信する。このため、アウトバンド処理を採用した場合とは異なり、中継装置１と直接的に、或いは間接的に接続する他のネットワーク等を用いなくとも良い。このことから、インバンド処理は、システム環境に係わらず、採用できるという利点がある。言い換えれば、インバンド処理は、アウトバンド処理と比較して、より幅広いデータ処理システムに適用することができる。
【０１０５】
しかし、インバンド処理では、そのインバンド処理をサポートするアダプタ３１０をサーバ３００に搭載する必要がある。これに対し、アウトバンド処理では、ＣＰＵ３３０側でのソフトウェアによる制御が可能なことから、新たな機能を搭載させたアダプタをサーバに搭載させなくとも済む。アウトバンド処理をサポートするドライバ３５２（或いはＯＳ３５１）をサーバに実行させれば良い。
【０１０６】
このことから、アウトバンド処理では、インバンド処理と比較して、既存のサーバへの適用が比較的に容易である。また、アダプタの交換等を行わなくとも済むことから、ハードウェア面におけるコストもより抑えることができる。より短い時間での対応も可能である。アウトバンド処理では、これらがインバンド処理と比較した場合の利点として挙げることができる。
【０１０７】
このようなことから、インバンド処理、及びアウトバンド処理の何れを採用するかは、システム環境、緊急度、或いはコスト等を考慮して決定するのが望ましい。インバンド処理、及びアウトバンド処理の両方をサポートし、そのうちの何れかを設定に応じて、或いは自動的に選択できるようにしても良い。
【０１０８】
なお、本実施形態は、データ処理装置としてサーバに本発明を適用しているが、サーバとは異なる種類のデータ処理装置に本発明を適用しても良い。データ処理装置は、中継装置１のサーバ側ポート１５に接続の対象となるデータ処理装置であれば良い。
【符号の説明】
【０１０９】
１    中継装置
５、７、９    ネットワーク
１５、１５ａ、１５ｂ  サーバ側ポート
１６、１６ａ〜１６ｆ    ネットワーク側ポート
３００、３００−１、３００−２    サーバ
３１０    アダプタ
３１０ａ、３１０ｂ    ｖＮＩＣ
３１０ｃ    ｖＨＢＡ
３１１    送受信部
３１２    仮想レイヤ部
３１２ａ    仮想インターフェース
３１５    アダプタ制御部
３１５ａ    制御フレーム処理部
３１５ｂ    仮想リンク制御部
３２０    リンク状態管理部
３３０    ＣＰＵ
３４０    メモリ
３５０    ディスク装置
３５１    ＯＳ
３５２    ドライバ
３６０    ＢＭＣ
３７０    バス
４００    サーバ管理装置
【図１】
2013197627.tif 000003
【図２】
2013197627.tif 000004
【図３】
2013197627.tif 000005
【図４】
2013197627.tif 000006
【図５】
2013197627.tif 000007
【図８】
2013197627.tif 000008
【図９】
2013197627.tif 000009
【図１０】
2013197627.tif 000010
【図１１】
2013197627.tif 000011
【図１２】
2013197627.tif 000012
【図１３】
2013197627.tif 000013
【図１４】
2013197627.tif 000014
【図１５】
2013197627.tif 000015
【図１６】
2013197627.tif 000016
【図６】
2013197627.tif 000017
【図７】
2013197627.tif 000018