(57)【要約】【課題】マルチシャーシを構成する複数のスイッチで負荷分散を可能にしつつ、制御インタフェースにおける輻輳を回避するネットワークスイッチ、及びそのネットワークスイッチを制御するネットワークスイッチ制御プログラムとネットワークスイッチ制御方法を提供する。【解決手段】スイッチ２０００は、自身がパケットを中継している「送信元のノード１０、送信先のノード２０」の組み合わせにおける送信元のノード１０又は送信先のノード２０と通信ができなくなった場合に、上記中継を行うスイッチ２０００を変更する。その際、上記組み合わせの間で送信されるパケットを新たに中継するスイッチ２０００として、上記送信元のノード１０及び送信先のノード２０の双方と、別のスイッチ２０００を介さずに通信可能であるスイッチ２０００を選択する。【選択図】図１
2014060567.tif 000002
【特許請求の範囲】
【請求項１】
通信可能に接続されている複数のノードとの間でパケットの送受信を行い、通信可能に接続されている他のネットワークスイッチと共に１台の仮想ネットワークスイッチとして機能するネットワークスイッチであって、
当該ネットワークスイッチがパケットの中継を行う「パケット送信元のノード、パケット送信先のノード」の組み合わせを示す振り分け情報を格納する振り分け情報格納手段と、
当該ネットワークスイッチと通信できなくなった前記ノードを特定する障害情報を取得する障害情報取得手段と、
前記他のネットワークスイッチのそれぞれについて、前記ノードとの通信の可否を示すスイッチ情報を取得するスイッチ情報取得手段と、
前記振り分け情報が示す「パケット送信元のノード、パケット送信先のノード」の組み合わせの中に、パケット送信元のノード又はパケット送信先のノードのいずれかが前記障害情報で特定されるノードに該当する組み合わせがある場合は、
前記該当する組み合わせが示すパケット送信元のノードから、前記該当する組み合わせが示すパケット送信先のノードへ送信されるパケットを、当該ネットワークスイッチが中継しないことを示すように前記振り分け情報を更新し、
前記スイッチ情報に基づいて、前記他のネットワークスイッチのうち、前記仮想ネットワークスイッチを構成している別のネットワークスイッチを介さずに、前記該当する組み合わせが示すパケット送信元のノード及びパケット送信先のノードの双方と通信可能であるネットワークスイッチのいずれか一つを選択し、選択したネットワークスイッチを、前記該当する組み合わせと共に示す振り分け更新情報を生成する振り分け更新情報生成手段と、
前記振り分け更新情報が示すネットワークスイッチに対し、前記振り分け更新情報が示す「パケット送信元のノード、パケット送信先のノード」の組み合わせを送信する振り分け更新情報送信手段と、
前記他のネットワークスイッチから、「パケット送信元のノード、パケット送信先のノード」を受信する振り分け更新情報受信手段と、
前記振り分け更新情報受信手段から「パケット送信元のノード、パケット送信先のノード」の組み合わせを取得し、取得した組み合わせが示すパケット送信元のノードに対し、取得した組み合わせが示すパケット送信先のノードへパケットを送信する場合は、当該ネットワークスイッチへパケットを送信するように指示するスイッチ指定手段と、
前記振り分け更新情報受信手段から「パケット送信元のノード、パケット送信先のノード」の組み合わせを取得し、取得した組み合わせが示すパケット送信元のノードから、取得した組み合わせが示すパケット送信先のノードへ送信されるパケットを当該ネットワークスイッチが中継することを示すように前記振り分け情報を更新する振り分け情報更新手段と、
を有するネットワークスイッチ。
【請求項２】
通信可能に接続されている複数のノードとの間で、前記ノードが所属するグループの識別子であるグループＩＤが付与されたパケットの送受信を行い、通信可能に接続されている他のネットワークスイッチと共に１台の仮想ネットワークスイッチとして機能するネットワークスイッチであって、
当該ネットワークスイッチが、どの前記グループＩＤが付与されているパケットの中継を行うかを示す振り分け情報を格納する振り分け情報格納手段と、
「前記グループＩＤ、該グループに所属している前記ノード」の組み合わせを示すグループ情報を取得するグループ情報取得手段と、
当該ネットワークスイッチと通信できなくなった前記ノードを特定する障害情報を取得する障害情報取得手段と、
前記他のネットワークスイッチのそれぞれについて、前記ノードとの通信の可否を示すスイッチ情報を取得するスイッチ情報取得手段と、
前記障害情報で特定される前記ノードに関して前記グループ情報を参照し、該ノードが所属するグループのグループＩＤを抽出し、抽出したグループＩＤが前記振り分け情報に示されている場合は、
該抽出したグループＩＤが付与されたパケットを、当該ネットワークスイッチが中継しないことを示すように前記振り分け情報を更新し、
前記スイッチ情報及び前記グループ情報に基づいて、前記他のネットワークスイッチのうち、前記仮想ネットワークスイッチを構成している別のネットワークスイッチを介さずに、該抽出したグループＩＤで特定されるグループに所属している全ての前記ノードと通信可能であるネットワークスイッチのいずれか一つを選択し、選択したネットワークスイッチを、該抽出したグループＩＤと共に示す振り分け更新情報を生成する振り分け更新情報生成手段と、
前記振り分け更新情報が示すネットワークスイッチに対し、該振り分け更新情報が示す前記グループＩＤを送信する振り分け更新情報送信手段と、
前記他のネットワークスイッチから前記振り分け更新情報を受信する振り分け更新情報受信手段と、
前記振り分け更新情報受信手段から前記グループＩＤを取得し、該グループＩＤで特定される前記グループに所属しているノードに対し、該グループＩＤが付与されたパケットを送信する場合は、当該ネットワークスイッチへ送信するように指示するスイッチ指定手段と、
前記振り分け更新情報受信手段から前記グループＩＤを取得し、取得したグループＩＤが付与されたパケットを、当該ネットワークスイッチが中継することを示すように、前記振り分け情報を更新する振り分け情報更新手段と、
を有するネットワークスイッチ。
【請求項３】
コンピュータを、通信可能に接続されている複数のノードとの間でパケットの送受信を行い、通信可能に接続されている他のネットワークスイッチと共に１台の仮想ネットワークスイッチとして動作するネットワークスイッチとして機能させるネットワークスイッチ制御プログラムであって、
当該プログラムは、前記コンピュータに、
前記コンピュータがパケットの中継を行う「パケット送信元のノード、パケット送信先のノード」の組み合わせを示す振り分け情報を格納する振り分け情報格納機能と、
前記コンピュータと通信できなくなった前記ノードを特定する障害情報を取得する障害情報取得機能と、
前記他のネットワークスイッチのそれぞれについて、前記ノードとの通信の可否を示すスイッチ情報を取得するスイッチ情報取得機能と、
前記振り分け情報が示す「パケット送信元のノード、パケット送信先のノード」の組み合わせの中に、パケット送信元のノード又はパケット送信先のノードのいずれかが前記障害情報で特定されるノードに該当する組み合わせがある場合は、
前記該当する組み合わせが示すパケット送信元のノードから、前記該当する組み合わせが示すパケット送信先のノードへ送信されるパケットを、前記コンピュータが中継しないことを示すように前記振り分け情報を更新し、
前記スイッチ情報に基づいて、前記他のネットワークスイッチのうち、前記仮想ネットワークスイッチを構成している別のネットワークスイッチを介さずに、前記該当する組み合わせが示すパケット送信元のノード及びパケット送信先のノードの双方と通信可能であるネットワークスイッチのいずれか一つを選択し、選択したネットワークスイッチを、前記該当する組み合わせと共に示す振り分け更新情報を生成する振り分け更新情報生成機能と、
前記振り分け更新情報が示すネットワークスイッチに対し、前記振り分け更新情報が示す「パケット送信元のノード、パケット送信先のノード」の組み合わせを送信する振り分け更新情報送信機能と、
前記他のネットワークスイッチから、「パケット送信元のノード、パケット送信先のノード」を受信する振り分け更新情報受信機能と、
前記振り分け更新情報受信機能が受信した「パケット送信元のノード、パケット送信先のノード」の組み合わせを取得し、取得した組み合わせが示すパケット送信元のノードに対し、取得した組み合わせが示すパケット送信先のノードへパケットを送信する場合は、前記コンピュータへパケットを送信するように指示するスイッチ指定機能と、
前記振り分け更新情報受信機能が受信した「パケット送信元のノード、パケット送信先のノード」の組み合わせを取得し、取得した組み合わせが示すパケット送信元のノードから、取得した組み合わせが示すパケット送信先のノードへ送信されるパケットを前記コンピュータが中継することを示すように前記振り分け情報を更新する振り分け情報更新機能と、
を持たせるネットワークスイッチ制御プログラム。
【請求項４】
コンピュータを、通信可能に接続されている複数のノードとの間で、前記ノードが所属するグループの識別子であるグループＩＤが付与されたパケットの送受信を行い、通信可能に接続されている他のネットワークスイッチと共に１台の仮想ネットワークスイッチとして動作するネットワークスイッチとして機能させるネットワークスイッチ制御プログラムであって、
当該プログラムは、前記コンピュータに、
前記コンピュータが、どの前記グループＩＤが付与されているパケットを中継するかを示す振り分け情報を格納する振り分け情報格納機能と、
「前記グループＩＤ、該グループに所属している前記ノード」の組み合わせを示すグループ情報を取得するグループ情報取得機能と、
前記コンピュータと通信できなくなった前記ノードを特定する障害情報を取得する障害情報取得機能と、
前記他のネットワークスイッチのそれぞれについて、前記ノードとの通信の可否を示すスイッチ情報を取得するスイッチ情報取得機能と、
前記障害情報で特定される前記ノードに関して前記グループ情報を参照し、該ノードが所属するグループのグループＩＤを抽出し、抽出したグループＩＤが前記振り分け情報に示されている場合は、
該抽出したグループＩＤが付与されたパケットを、前記コンピュータが中継しないことを示すように前記振り分け情報を更新し、
前記スイッチ情報及び前記グループ情報に基づいて、前記他のネットワークスイッチのうち、前記仮想ネットワークスイッチを構成している別のネットワークスイッチを介さずに、該抽出したグループＩＤで特定されるグループに所属している全ての前記ノードと通信可能であるネットワークスイッチのいずれか一つを選択し、選択したネットワークスイッチを、該抽出したグループＩＤと共に示す振り分け更新情報を生成する振り分け更新情報生成機能と、
前記振り分け更新情報が示すネットワークスイッチに対し、該振り分け更新情報が示す前記グループＩＤを送信する振り分け更新情報送信機能と、
前記他のネットワークスイッチから前記振り分け更新情報を受信する振り分け更新情報受信機能と、
前記振り分け更新情報受信機能が受信した前記グループＩＤを取得し、該グループＩＤで特定される前記グループに所属しているノードに対し、該グループＩＤが付与されたパケットを送信する場合は、前記コンピュータへ送信するように指示するスイッチ指定機能と、
前記振り分け更新情報受信機能が受信した前記グループＩＤを取得し、取得したグループＩＤが付与されたパケットを、前記コンピュータが中継することを示すように、前記振り分け情報を更新する振り分け情報更新機能と、
を持たせるネットワークスイッチ制御プログラム。
【請求項５】
コンピュータを、通信可能に接続されている複数のノードとの間でパケットの送受信を行い、通信可能に接続されている他のネットワークスイッチと共に１台の仮想ネットワークスイッチとして機能するネットワークスイッチとして動作させるネットワークスイッチ制御方法であって、
前記コンピュータが、前記コンピュータによってパケットの中継を行う「パケット送信元のノード、パケット送信先のノード」の組み合わせを示す振り分け情報を格納する振り分け情報格納ステップと、
前記コンピュータが、前記コンピュータと通信できなくなった前記ノードを特定する障害情報を取得する障害情報取得ステップと、
前記コンピュータが、前記他のネットワークスイッチのそれぞれについて、前記ノードとの通信の可否を示すスイッチ情報を取得するスイッチ情報取得ステップと、
前記振り分け情報が示す「パケット送信元のノード、パケット送信先のノード」の組み合わせの中に、パケット送信元のノード又はパケット送信先のノードのいずれかが前記障害情報で特定されるノードに該当する組み合わせがある場合は、
前記コンピュータが、前記該当する組み合わせが示すパケット送信元のノードから、前記該当する組み合わせが示すパケット送信先のノードへ送信されるパケットを、前記コンピュータが中継しないことを示すように前記振り分け情報を更新し、
前記コンピュータが、前記スイッチ情報に基づいて、前記他のネットワークスイッチのうち、前記仮想ネットワークスイッチを構成している別のネットワークスイッチを介さずに、前記該当する組み合わせが示すパケット送信元のノード及びパケット送信先のノードの双方と通信可能であるネットワークスイッチのいずれか一つを選択し、選択したネットワークスイッチを、前記該当する組み合わせと共に示す振り分け更新情報を生成する振り分け更新情報生成ステップと、
前記コンピュータが、前記振り分け更新情報が示すネットワークスイッチに対し、前記振り分け更新情報が示す「パケット送信元のノード、パケット送信先のノード」の組み合わせを送信する振り分け更新情報送信ステップと、
前記コンピュータが、前記他のネットワークスイッチから、「パケット送信元のノード、パケット送信先のノード」を受信する振り分け更新情報受信ステップと、
前記コンピュータが、前記振り分け更新情報受信ステップで受信した「パケット送信元のノード、パケット送信先のノード」の組み合わせを取得し、取得した組み合わせが示すパケット送信元のノードに対し、取得した組み合わせが示すパケット送信先のノードへパケットを送信する場合は、前記コンピュータへパケットを送信するように指示するスイッチ指定ステップと、
前記コンピュータが、前記振り分け更新情報受信ステップで受信した「パケット送信元のノード、パケット送信先のノード」の組み合わせを取得し、取得した組み合わせが示すパケット送信元のノードから、取得した組み合わせが示すパケット送信先のノードへ送信されるパケットを前記コンピュータが中継することを示すように前記振り分け情報を更新する振り分け情報更新ステップと、
を有するネットワークスイッチ制御方法。
【請求項６】
コンピュータを、通信可能に接続されている複数のノードとの間で、前記ノードが所属するグループの識別子であるグループＩＤが付与されたパケットの送受信を行い、通信可能に接続されている他のネットワークスイッチと共に１台の仮想ネットワークスイッチとして機能するネットワークスイッチとして動作させるネットワークスイッチ制御方法であって、
前記コンピュータが、前記コンピュータによってどの前記グループＩＤが付与されているパケットの中継を行うかを示す振り分け情報を格納する振り分け情報格納ステップと、
「前記グループＩＤ、該グループに所属している前記ノード」の組み合わせを示すグループ情報を取得するグループ情報取得ステップと、
前記コンピュータが、前記コンピュータと通信できなくなった前記ノードを特定する障害情報を取得する障害情報取得ステップと、
前記コンピュータが、前記他のネットワークスイッチのそれぞれについて、前記ノードとの通信の可否を示すスイッチ情報を取得するスイッチ情報取得ステップと、
前記障害情報で特定される前記ノードに関して前記グループ情報を参照し、該ノードが所属するグループのグループＩＤを抽出し、抽出したグループＩＤが前記振り分け情報に示されている場合は、
前記コンピュータが、該抽出したグループＩＤが付与されたパケットを、前記コンピュータが中継しないことを示すように前記振り分け情報を更新し、
前記コンピュータが、前記スイッチ情報及び前記グループ情報に基づいて、前記他のネットワークスイッチのうち、前記仮想ネットワークスイッチを構成している別のネットワークスイッチを介さずに、該抽出したグループＩＤで特定されるグループに所属している全ての前記ノードと通信可能であるネットワークスイッチのいずれか一つを選択し、選択したネットワークスイッチを、該抽出したグループＩＤと共に示す振り分け更新情報を生成する振り分け更新情報生成ステップと、
前記コンピュータが、前記振り分け更新情報が示すネットワークスイッチに対し、該振り分け更新情報が示す前記グループＩＤを送信する振り分け更新情報送信ステップと、
前記コンピュータが、前記他のネットワークスイッチから前記振り分け更新情報を受信する振り分け更新情報受信ステップと、
前記コンピュータが、前記振り分け更新情報受信ステップで受信した前記グループＩＤを取得し、該グループＩＤで特定される前記グループに所属しているノードに対し、該グループＩＤが付与されたパケットを送信する場合は、前記コンピュータへ送信するように指示するスイッチ指定ステップと、
前記コンピュータが、前記振り分け更新情報受信ステップで受信した前記グループＩＤを取得し、取得したグループＩＤが付与されたパケットを、前記コンピュータが中継することを示すように、前記振り分け情報を更新する振り分け情報更新ステップと、
を有するネットワークスイッチ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークスイッチ、ネットワークスイッチ制御方法、及びネットワークスイッチ制御プログラムに関する。
【背景技術】
【０００２】
ネットワークスイッチの可用性を高めるため、複数のネットワークスイッチを仮想的に１台の装置として動作させるマルチシャーシという技術がある。以下、ネットワークスイッチのことを、スイッチとも表記する。また、マルチシャーシにより、複数のスイッチで仮想的に構成された１台のスイッチを、マルチシャーシスイッチと呼ぶ。マルチシャーシスイッチを構成する各スイッチは、同じマルチシャーシスイッチを構成する他のスイッチのいずれか１つ以上と、制御インタフェースで接続されている。
【０００３】
マルチシャーシを構成する各スイッチは、あるノードから別のノードへ送信されるデータを中継する。ここでノードとは、ネットワークに対して論理的に１つの通信回線で接続されている１つ以上のネットワークインタフェースの組みを指す。ネットワークインタフェースは、例えばパーソナルコンピュータ（ＰＣ）、サーバ、又はスイッチなどに備えられている。１つ以上のネットワークインタフェースを論理的に１つの通信回線でネットワークに接続する技術として、リンクアグリゲーションがある。例えば１つのノードが、２つのネットワークインタフェース１及び２で構成されているとする。また、マルチシャーシスイッチがスイッチ１及び２で構成されているとする。そして、ネットワークインタフェース１はスイッチ１に、ネットワークインタフェース２はスイッチ２にそれぞれ接続されているとする。この場合、スイッチ１とネットワークインタフェース１の間、又はスイッチ２とネットワークインタフェース２の間のいずれかでデータを送受信することで、マルチシャーシスイッチとノードはデータの送受信を行うことができる。以下、ノードが送信又は受信するデータをパケットと呼ぶ。
【０００４】
マルチシャーシスイッチを構成する従来のスイッチは、あるノードと通信ができなくなった場合にそのノードを宛先とするパケットを受信すると、自身と共にマルチシャーシを構成している他のスイッチのうち、そのノードと通信可能なスイッチへパケットを転送する。このパケットの転送は、２つのスイッチ間を接続する制御インタフェースを介して行われる。転送されたパケットを受信したスイッチは、そのパケットを宛先のノードへ送信する。このように、マルチシャーシを構成する従来のスイッチは、ノードとの間で直接パケットを送受信できなくなった場合に、制御インタフェースを経由して他のスイッチを利用することで、パケットを送受信する。
【０００５】
しかし、制御インタフェースを経由してパケットを送受信する場合、制御インタフェースの帯域を越えたパケットデータを転送すると、制御インタフェースで輻輳が発生する。その結果、マルチシャーシスイッチ内でパケット廃棄が発生し、パケットデータが転送されない可能性がある。
【０００６】
特許文献１記載のパケット中継装置は、マルチシャーシを構成するパケット中継装置である。そして、特許文献１記載のパケット中継装置は、マルチシャーシを構成する複数のパケット中継装置間を接続するスタックポート（上述の制御インタフェースに相当）の輻輳を回避する。パケットの送受信を行うパケット中継装置（上述のノードに相当）は、マルチシャーシを構成する各パケット中継装置と、通信回線を介して接続されている。そして、上記マルチシャーシを介して、パケットの送受信を行う別のパケット中継装置との間で、パケットの送受信を行う。特許文献１記載のパケット中継装置は、パケットの送受信を行うパケット中継装置間の通信量を監視する。そして、特許文献１記載のパケット中継装置は、スタックポートにおける通信量が少なくなるように、パケットを送受信する各パケット中継装置について、マルチシャーシを構成する複数のパケット中継装置の中から、パケットを経由させるパケット中継装置を１つに定める。
【０００７】
特許文献２記載の通信中継システムは、仮想的な通信装置として認識される制御部を複数有する通信装置同士を接続して構成される。上記通信装置は、ある通信装置内の制御部の１つで障害が発生した場合に、その通信装置が有する別の制御部を迂回路として設定することで、データの中継を継続することができる。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０１２−１２９７５９
【特許文献２】特開２０１１−１９９７９９
【発明の概要】
【発明が解決しようとする課題】
【０００９】
本発明者は、制御インタフェースにおける輻輳を回避する際に、マルチシャーシスイッチを構成する複数のスイッチでパケットの送受信にかかる通信負荷を分散可能にする必要性を見出した。特許文献１の技術において、上述のノードに当たるパケット中継装置は、マルチシャーシを構成する複数のパケット中継装置のうちのいずれか１つのみを経由して全てのパケットの送信又は受信を行う。そのため、１つのパケット中継装置に負荷が集中してしまい、その通信回線上でパケットデータが破棄される可能性がある。
【００１０】
本発明の目的は、マルチシャーシを構成する複数のスイッチで負荷分散を可能にしつつ、制御インタフェースにおける輻輳を回避するネットワークスイッチ、及びそのネットワークスイッチを制御するネットワークスイッチ制御プログラムとネットワークスイッチ制御方法を提供することである。
【課題を解決するための手段】
【００１１】
本発明が提供する第１のネットワークスイッチは、通信可能に接続されている複数のノードとの間でパケットの送受信を行い、通信可能に接続されている他のネットワークスイッチと共に１台の仮想ネットワークスイッチとして機能するネットワークスイッチである。当該ネットワークスイッチは、当該ネットワークスイッチがパケットの中継を行う「パケット送信元のノード、パケット送信先のノード」の組み合わせを示す振り分け情報を格納する振り分け情報格納手段と、当該ネットワークスイッチと通信できなくなった前記ノードを特定する障害情報を取得する障害情報取得手段と、前記他のネットワークスイッチのそれぞれについて、前記ノードとの通信の可否を示すスイッチ情報を取得するスイッチ情報取得手段を有する。さらに、当該ネットワークスイッチは、前記振り分け情報が示す「パケット送信元のノード、パケット送信先のノード」の組み合わせの中に、パケット送信元のノード又はパケット送信先のノードのいずれかが前記障害情報で特定されるノードに該当する組み合わせがある場合は、前記該当する組み合わせが示すパケット送信元のノードから、前記該当する組み合わせが示すパケット送信先のノードへ送信されるパケットを、当該ネットワークスイッチが中継しないことを示すように前記振り分け情報を更新し、前記スイッチ情報に基づいて、前記他のネットワークスイッチのうち、前記仮想ネットワークスイッチを構成している別のネットワークスイッチを介さずに、前記該当する組み合わせが示すパケット送信元のノード及びパケット送信先のノードの双方と通信可能であるネットワークスイッチのいずれか一つを選択し、選択したネットワークスイッチを、前記該当する組み合わせと共に示す振り分け更新情報を生成する振り分け更新情報生成手段を有する。さらに、当該ネットワークスイッチは、前記振り分け更新情報が示すネットワークスイッチに対し、前記振り分け更新情報が示す「パケット送信元のノード、パケット送信先のノード」の組み合わせを送信する振り分け更新情報送信手段と、前記他のネットワークスイッチから、「パケット送信元のノード、パケット送信先のノード」を受信する振り分け更新情報受信手段と、前記振り分け更新情報受信手段から「パケット送信元のノード、パケット送信先のノード」の組み合わせを取得し、取得した組み合わせが示すパケット送信元のノードに対し、取得した組み合わせが示すパケット送信先のノードへパケットを送信する場合は、当該ネットワークスイッチへパケットを送信するように指示するスイッチ指定手段と、前記振り分け更新情報受信手段から「パケット送信元のノード、パケット送信先のノード」の組み合わせを取得し、取得した組み合わせが示すパケット送信元のノードから、取得した組み合わせが示すパケット送信先のノードへ送信されるパケットを当該ネットワークスイッチが中継することを示すように前記振り分け情報を更新する振り分け情報更新手段を有する。
【００１２】
本発明が提供する第１のネットワークスイッチ制御プログラムは、上記本発明が提供する第１のネットワークスイッチの各機能構成部を実現するプログラムである。
【００１３】
本発明が提供する第１のネットワークスイッチ制御方法は、コンピュータを、通信可能に接続されている複数のノードとの間でパケットの送受信を行い、通信可能に接続されている他のネットワークスイッチと共に１台の仮想ネットワークスイッチとして機能するネットワークスイッチとして動作させるネットワークスイッチ制御方法である。当該制御方法は、前記コンピュータが、前記コンピュータによってパケットの中継を行う「パケット送信元のノード、パケット送信先のノード」の組み合わせを示す振り分け情報を格納する振り分け情報格納ステップと、前記コンピュータが、前記コンピュータと通信できなくなった前記ノードを特定する障害情報を取得する障害情報取得ステップと、前記コンピュータが、前記他のネットワークスイッチのそれぞれについて、前記ノードとの通信の可否を示すスイッチ情報を取得するスイッチ情報取得ステップを有する。さらに、当該制御方法は、前記振り分け情報が示す「パケット送信元のノード、パケット送信先のノード」の組み合わせの中に、パケット送信元のノード又はパケット送信先のノードのいずれかが前記障害情報で特定されるノードに該当する組み合わせがある場合は、前記コンピュータが、前記該当する組み合わせが示すパケット送信元のノードから、前記該当する組み合わせが示すパケット送信先のノードへ送信されるパケットを、前記コンピュータが中継しないことを示すように前記振り分け情報を更新し、前記コンピュータが、前記スイッチ情報に基づいて、前記他のネットワークスイッチのうち、前記仮想ネットワークスイッチを構成している別のネットワークスイッチを介さずに、前記該当する組み合わせが示すパケット送信元のノード及びパケット送信先のノードの双方と通信可能であるネットワークスイッチのいずれか一つを選択し、選択したネットワークスイッチを、前記該当する組み合わせと共に示す振り分け更新情報を生成する振り分け更新情報生成ステップを有する。さらに、当該制御方法は、前記コンピュータが、前記振り分け更新情報が示すネットワークスイッチに対し、前記振り分け更新情報が示す「パケット送信元のノード、パケット送信先のノード」の組み合わせを送信する振り分け更新情報送信ステップと、前記コンピュータが、前記他のネットワークスイッチから、「パケット送信元のノード、パケット送信先のノード」を受信する振り分け更新情報受信ステップと、前記コンピュータが、前記振り分け更新情報受信で受信した「パケット送信元のノード、パケット送信先のノード」の組み合わせを取得し、取得した組み合わせが示すパケット送信元のノードに対し、取得した組み合わせが示すパケット送信先のノードへパケットを送信する場合は、前記コンピュータへパケットを送信するように指示するスイッチ指定ステップと、前記コンピュータが、前記振り分け更新情報受信ステップで受信した「パケット送信元のノード、パケット送信先のノード」の組み合わせを取得し、取得した組み合わせが示すパケット送信元のノードから、取得した組み合わせが示すパケット送信先のノードへ送信されるパケットを前記コンピュータが中継することを示すように前記振り分け情報を更新する振り分け情報更新ステップを有する。
【００１４】
本発明が提供する第２のネットワークスイッチは、通信可能に接続されている複数のノードとの間で、前記ノードが所属するグループの識別子であるグループＩＤが付与されたパケットの送受信を行い、通信可能に接続されている他のネットワークスイッチと共に１台の仮想ネットワークスイッチとして機能するネットワークスイッチである。当該ネットワークスイッチは、当該ネットワークスイッチが、どの前記グループＩＤが付与されているパケットの中継を行うかを示す振り分け情報を格納する振り分け情報格納手段と、「前記グループＩＤ、該グループに所属している前記ノード」の組み合わせを示すグループ情報を取得するグループ情報取得手段と、当該ネットワークスイッチと通信できなくなった前記ノードを特定する障害情報を取得する障害情報取得手段と、前記他のネットワークスイッチのそれぞれについて、前記ノードとの通信の可否を示すスイッチ情報を取得するスイッチ情報取得手段と、前記障害情報で特定される前記ノードに関して前記グループ情報を参照し、該ノードが所属するグループのグループＩＤを抽出し、抽出したグループＩＤが前記振り分け情報に示されている場合は、該抽出したグループＩＤが付与されたパケットを、当該ネットワークスイッチが中継しないことを示すように前記振り分け情報を更新し、前記スイッチ情報及び前記グループ情報に基づいて、前記他のネットワークスイッチのうち、前記仮想ネットワークスイッチを構成している別のネットワークスイッチを介さずに、該抽出したグループＩＤで特定されるグループに所属している全ての前記ノードと通信可能であるネットワークスイッチのいずれか一つを選択し、選択したネットワークスイッチを、該抽出したグループＩＤと共に示す振り分け更新情報を生成する振り分け更新情報生成手段と、前記振り分け更新情報が示すネットワークスイッチに対し、該振り分け更新情報が示す前記グループＩＤを送信する振り分け更新情報送信手段と、前記他のネットワークスイッチから前記振り分け更新情報を受信する振り分け更新情報受信手段と、前記振り分け更新情報受信手段から前記グループＩＤを取得し、該グループＩＤで特定される前記グループに所属しているノードに対し、該グループＩＤが付与されたパケットを送信する場合は、当該ネットワークスイッチへ送信するように指示するスイッチ指定手段と、前記振り分け更新情報受信手段から前記グループＩＤを取得し、取得したグループＩＤが付与されたパケットを、当該ネットワークスイッチが中継することを示すように、前記振り分け情報を更新する振り分け情報更新手段を有する。
【００１５】
本発明が提供する第２のネットワークスイッチ制御プログラムは、上記本発明が提供する第２のネットワークスイッチの各機能構成部を実現するプログラムである。
【００１６】
本発明が提供する第２のネットワークスイッチ制御方法は、コンピュータを、通信可能に接続されている複数のノードとの間で、前記ノードが所属するグループの識別子であるグループＩＤが付与されたパケットの送受信を行い、通信可能に接続されている他のネットワークスイッチと共に１台の仮想ネットワークスイッチとして機能するネットワークスイッチとして動作させるネットワークスイッチ制御方法である。当該制御方法は、前記コンピュータが、前記コンピュータによってどの前記グループＩＤが付与されているパケットの中継を行うかを示す振り分け情報を格納する振り分け情報格納ステップと、「前記グループＩＤ、該グループに所属している前記ノード」の組み合わせを示すグループ情報を取得するグループ情報取得ステップと、前記コンピュータが、前記コンピュータと通信できなくなった前記ノードを特定する障害情報を取得する障害情報取得ステップと、前記コンピュータが、前記他のネットワークスイッチのそれぞれについて、前記ノードとの通信の可否を示すスイッチ情報を取得するスイッチ情報取得ステップと、前記障害情報で特定される前記ノードに関して前記グループ情報を参照し、該ノードが所属するグループのグループＩＤを抽出し、抽出したグループＩＤが前記振り分け情報に示されている場合は、前記コンピュータが、該抽出したグループＩＤが付与されたパケットを、前記コンピュータが中継しないことを示すように前記振り分け情報を更新し、前記コンピュータが、前記スイッチ情報及び前記グループ情報に基づいて、前記他のネットワークスイッチのうち、前記仮想ネットワークスイッチを構成している別のネットワークスイッチを介さずに、該抽出したグループＩＤで特定されるグループに所属している全ての前記ノードと通信可能であるネットワークスイッチのいずれか一つを選択し、選択したネットワークスイッチを、該抽出したグループＩＤと共に示す振り分け更新情報を生成する振り分け更新情報生成ステップと、前記コンピュータが、前記振り分け更新情報が示すネットワークスイッチに対し、該振り分け更新情報が示す前記グループＩＤを送信する振り分け更新情報送信ステップと、前記コンピュータが、前記他のネットワークスイッチから前記振り分け更新情報を受信する振り分け更新情報受信ステップと、前記コンピュータが、前記振り分け更新情報受信ステップで受信した前記グループＩＤを取得し、該グループＩＤで特定される前記グループに所属しているノードに対し、該グループＩＤが付与されたパケットを送信する場合は、前記コンピュータへ送信するように指示するスイッチ指定ステップと、前記コンピュータが、前記振り分け更新情報受信ステップで受信した前記グループＩＤを取得し、取得したグループＩＤが付与されたパケットを、前記コンピュータが中継することを示すように、前記振り分け情報を更新する振り分け情報更新ステップを有する。
【発明の効果】
【００１７】
本発明によれば、マルチシャーシを構成する複数のスイッチで負荷分散を可能にしつつ、制御インタフェースにおける輻輳を回避するネットワークスイッチ、及びそのネットワークスイッチを制御するネットワークスイッチ制御プログラムとネットワークスイッチ制御方法を提供することができる。
【図面の簡単な説明】
【００１８】
【図１】実施形態１に係るスイッチを、その使用環境と共に示すブロック図である。
【図２】振り分け情報テーブルの構成を示す図である。
【図３】スイッチ情報テーブルの構成を示す図である。
【図４】実施形態１に係る振り分け更新情報の構成を示す図である。
【図５】実施形態１に係るスイッチの動作の流れの一例を示すフローチャートである。
【図６】実施形態２に係るスイッチを、その使用環境と共に示すブロック図である。
【図７】振り分け情報リストの構成を示す図である。
【図８】実施形態２に係る振り分け更新情報の構成を示す図である。
【図９】グループ情報テーブルの構成を示す図である。
【図１０】実施形態２に係るスイッチの動作の流れの一例を示すフローチャートである。
【発明を実施するための形態】
【００１９】
以下、本発明の実施の形態について、図面を用いて説明する。尚、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。
【００２０】
なお、以下に示す説明において、各装置の各構成要素は、ハードウエア単位の構成ではなく、機能単位のブロックを示している。各装置の各構成要素は、任意のコンピュータのＣＰＵ、メモリ、メモリにロードされた本図の構成要素を実現するプログラム、そのプログラムを格納するハードディスクなどの記憶メディア、ネットワーク接続用インタフェースを中心に、ハードウエア、ソフトウエア、又はハードウエア及びソフトウエアの組合せによって実現される。そして、その実現方法、装置には様々な変形例がある。
【００２１】
[実施形態１]
＜概要＞
図１は、本実施形態に係るスイッチ２０００を、その使用環境と共に示す図である。図１において、矢印は情報の流れを表している。
【００２２】
スイッチ２０００は、通信回線を介して接続されている他のスイッチ２０００と共に、１つの仮想的なスイッチである仮想スイッチ３０００として機能する。ここで、仮想スイッチ３０００を構成するスイッチ２０００同士を接続する通信回線を、制御インタフェース２３００と呼ぶ。仮想スイッチ３０００を構成する各スイッチ２０００は、パケットの送信又は受信を行う複数のノードと、通信回線を介して接続されている。ここで、パケットを送信するノードを送信元のノード１０、送信元のノード１０が送信したパケットの宛先であるノードを送信先のノード２０と呼ぶ。スイッチ２０００は、送信元のノード１０からパケットを受信し、送信先のノード２０へパケットを送信する中継装置として機能する。
【００２３】
スイッチ２０００は、振り分け情報格納部２０２０を有する。振り分け情報格納部２０２０は、振り分け情報を格納する。振り分け情報とは、スイッチ２０００がパケットを中継する「パケット送信元のノード１０、パケット送信先のノード２０」の各組み合わせを示す情報である。例えば、振り分け情報が「ノード１、ノード２」という組み合わせを示しているとする。この場合、スイッチ２０００は、ノード２を宛先とするパケットをノード１から受信し、ノード２へ送信する。
【００２４】
スイッチ２０００は、障害情報取得部２０４０を有する。障害情報取得部２０４０は、障害情報を取得する。障害情報は、スイッチ２０００と通信回線を介して接続されているノードのうち、スイッチ２０００と通信ができなくなったノードを特定する情報である。以下、障害情報で特定されるノードを、障害ノードと呼ぶ。
【００２５】
スイッチ２０００は、スイッチ情報取得部２０６０を有する。スイッチ情報取得部２０６０は、スイッチ情報を取得する。スイッチ情報は、スイッチ２０００と共に仮想スイッチ３０００を構成するスイッチ２０００それぞれについて、別のスイッチ２０００を介さずに通信可能であるノードを示す情報である。
【００２６】
スイッチ２０００は、振り分け更新情報生成部２０８０を有する。振り分け更新情報生成部２０８０は、振り分け更新情報を生成する。振り分け更新情報とは、振り分け情報が示す「送信元のノード１０、送信先のノード２０」の組み合わせについて、パケットを中継するスイッチ２０００を変更するための情報である。振り分け更新情報生成部２０８０は、障害情報取得部２０４０から障害情報を取得する。そして、振り分け更新情報生成部２０８０は、障害ノードが、振り分け情報格納部２０２０に格納されている振り分け情報が示すパケット送信元のノード１０又はパケット送信先のノード１０に該当するか否かを判定する。
【００２７】
障害ノードが、振り分け情報が示すノードに該当する場合、振り分け更新情報生成部２０８０は、次のように動作して振り分け更新情報を生成する。振り分け更新情報生成部２０８０は、振り分け情報格納部２０２０に格納されている振り分け情報から、送信元のノード１０又は送信先のノード２０が障害ノードに該当する「送信元のノード１０、送信先のノード２０」の組み合わせを抽出する。振り分け更新情報生成部２０８０は、抽出した組み合わせについて当該スイッチ２０００がパケットを中継しないことを示すように、抽出した組み合わせに関する振り分け情報を更新する。振り分け更新情報生成部２０８０は、スイッチ情報取得部２０６０からスイッチ情報を取得する。振り分け更新情報生成部２０８０は、スイッチ情報に基づき、仮想スイッチ３０００を構成する他のスイッチ２０００の中から、抽出した組み合わせが示す送信元のノード１０及び送信先のノード２０の双方と、別のスイッチ２０００を介さずに通信可能であるスイッチ２０００を選択する。そして、振り分け更新情報生成部２０８０は、「送信元のノード１０、送信先のノード２０、選択したスイッチ２０００」の組み合わせを示す振り分け更新情報を生成する。
【００２８】
抽出した「送信元のノード１０、送信先のノード２０」の組み合わせが複数ある場合は、組み合わせごとに振り分け更新情報を生成する。つまり、障害ノードが送信元のノード１０又は送信先のノード２０に該当する「送信元のノード１０、送信先のノード２０」の組み合わせごとに、送信元のノード１０から送信先のノード２０へ送信されるパケットを中継させるスイッチ２０００を新たに選択する。
【００２９】
スイッチ２０００は、振り分け更新情報送信部２１２０を有する。振り分け更新情報送信部２１２０は、振り分け更新情報が示すスイッチ２０００へ、その振り分け更新情報が示す「送信元のノード１０、送信先のノード２０」の組み合わせを送信する。
【００３０】
スイッチ２０００は、振り分け更新情報受信部２１３０を有する。振り分け更新情報受信部２１３０は、他のスイッチ２０００の振り分け更新情報送信部２１２０から、「送信元のノード１０、送信先のノード２０」の組み合わせを取得する。
【００３１】
スイッチ２０００は、振り分け情報更新部２１４０を有する。振り分け情報更新部２１４０は、振り分け更新情報受信部２１３０が受信した「送信元のノード１０、送信先のノード２０」の組み合わせを取得する。そして、振り分け情報更新部２１４０は、当該スイッチ２０００が、取得した組み合わせの間で送信されるパケットの中継を行うことを示すように、振り分け情報を更新する。
【００３２】
スイッチ２０００は、スイッチ指定部２１００を有する。スイッチ指定部２１００は、振り分け更新情報受信部２１３０が受信した「送信元のノード１０、送信先のノード２０」の組み合わせを取得する。そして、スイッチ指定部２１００は、取得した組み合わせが示す送信元のノード１０に対し、取得した組み合わせが示す送信先のノード２０を宛先とするパケットを、当該スイッチ２０００に対して送信するように指示する。
【００３３】
以上のように、本実施形態のスイッチ２０００は、自身がパケットを中継している「送信元のノード１０、送信先のノード２０」の組み合わせにおける送信元のノード１０又は送信先のノード２０と通信ができなくなった場合に、上記組み合わせの間で送信されるパケットを中継するスイッチ２０００を変更する動作を行う。その際、新たに中継を行うスイッチ２０００として、上記送信元のノード１０及び送信先のノード２０の双方と、別のスイッチ２０００を介さずに通信可能であるスイッチ２０００を選択する。こうすることで、スイッチ２０００とスイッチ２０００間でパケットの転送が行われないようにする。その結果、スイッチ２０００とスイッチ２０００の間を接続する制御インタフェース２３００で輻輳が発生することを防ぐことができる。
【００３４】
また、本実施形態のスイッチ２０００は、「送信元のノード１０、送信先のノード２０」の組み合わせごとに、パケットを中継するスイッチ２０００を決定する。したがって、スイッチ２０００は、仮想スイッチ３０００を構成する複数のスイッチ２０００で、通信負荷を分散させることが可能である。
【００３５】
以下、本実施形態の詳細を述べる。
【００３６】
＜構成詳細＞
スイッチ２０００は、ノードとの間でパケットの送受信を行うパケット送受信部２２００を有する。ここで、スイッチにおいて、受信した各パケットをどのノードへ送信するかを判断する方法は、既知の技術であるため、説明を省略する。
【００３７】
＜振り分け情報格納部２０２０の詳細＞
振り分け情報格納部２０２０が有する振り分け情報は、例えば図２に示す振り分けテーブル２００を有する。振り分けテーブル２００は例えば、送信元ノードＩＤ２０２及び送信先ノードＩＤ２０４を有する。送信元ノードＩＤ２０２、送信先ノードＩＤ２０４はそれぞれ、送信元のノード１０、送信先のノード２０を特定する識別子である。振り分けテーブル２００の各レコードは、送信元ノードＩＤ２０２で特定される送信元のノード１０から、送信先ノードＩＤ２０４で特定される送信先のノード２０を宛先として送信されるパケットを、上記振り分け情報を有するスイッチ２０００が中継することを示す。
【００３８】
振り分け情報は、全ての「送信元のノード１０、送信先のノード２０」の組み合わせについて、その組み合わせの間で送信されるパケットを中継するスイッチ２０００を示す情報であってもよい。
【００３９】
送信元ノードＩＤ２０２及び送信先ノードＩＤ２０４がノードを特定するために示す識別子は様々である。その識別子は例えば、ノードのＭＡＣアドレスである。その他にも例えば、上記識別子は、ノードのＵＵＩＤ（Ｕｎｉｖｅｒｓａｌ  Ｕｎｉｑｕｅ  Ｉｄｅｎｔｉｆｉｅｒ）などでもよい。
【００４０】
＜障害情報取得部２０４０の詳細＞
障害情報取得部２０４０が障害情報を取得する方法は様々である。例えば、スイッチ２０００は、自身と接続されている各ノードとの通信可否を検知する障害検知部を有していてもよい。この場合、障害情報取得部２０４０は、上記障害検知部が生成した障害情報を取得する。一般に、ネットワークスイッチは、ポートごとに、そのポートに接続されているノードと通信できるか否かを検知する機能を有する。上記障害検知部は、あるポートに接続されているノードと通信できない場合に、そのポートに接続されているノードを示す障害情報を生成する。その他にも例えば、障害情報取得部２０４０は、スイッチ２０００の状態や、スイッチ２０００とノードの間の通信回線の状態を監視する外部装置から障害情報を取得してもよい。
【００４１】
＜スイッチ情報取得部２０６０の詳細＞
スイッチ情報取得部２０６０が取得するスイッチ情報は、例えば図３に示すスイッチ情報テーブル３００で示される。スイッチ情報テーブル３００は、例えばスイッチの識別子であるスイッチＩＤ３０２、及びノードの識別子であるノードＩＤ３０４を有する。スイッチ情報テーブル３００の各レコードは、スイッチＩＤ３０２で特定されるスイッチ２０００が、ノードＩＤ３０４で特定されるノードと通信可能であることを示す。
【００４２】
スイッチＩＤ３０２が示すスイッチの識別子は、例えば、仮想スイッチ３０００を構成する各スイッチ２０００を識別するために、各スイッチ２０００に付与されたＩＤである。一般にマルチシャーシ機能を有するスイッチは、協調してマルチシャーシを構成する各スイッチを管理する機能を有する。上記管理機能は、マルチシャーシを構成する各スイッチを識別するために、各スイッチにＩＤを付与する場合がある。スイッチＩＤ３０２は、このようにマルチシャーシを管理する機能によって付与されたＩＤである。その他にも例えば、スイッチＩＤ３０２は、スイッチ２０００のＵＵＩＤでもよい。
【００４３】
スイッチ情報は、スイッチ２０００と、スイッチ２０００と通信回線で接続されている各ノードとの組み合わせそれぞれについて、スイッチ２０００とノードが通信可能か否かを示す情報であってもよい。以降の説明では、スイッチ情報は、スイッチ情報テーブル３００で示されるとする。
【００４４】
＜振り分け更新情報生成部２０８０の詳細＞
振り分け更新情報生成部２０８０は、振り分け情報の中から、送信元のノード１０又は送信先のノード２０のいずれかが障害ノードに該当する「送信元のノード１０、送信先のノード２０」の組み合わせを抽出する。そして、振り分け更新情報生成部２０８０は、当該スイッチ２０００が、抽出した組み合わせについてパケットの中継を行わないことを示すように、振り分け情報を更新する。例えば、振り分け情報が、振り分け情報テーブル２００のように、当該スイッチ２０００がパケットの中継を行う「送信元のノード１０、送信先のノード２０」の組み合わせを示しているとする。この場合、振り分け更新情報生成部２０８０は、抽出した「送信元のノード１０、送信先のノード２０」の組み合わせを、振り分け情報から削除する。
【００４５】
振り分け情報が、「送信元のノード１０、送信先のノード２０」の全ての組み合わせそれぞれについて、パケットの中継を行うスイッチ２０００を対応付けているとする。この場合、振り分け更新情報生成部２０８０は、抽出した「送信元のノード１０、送信先のノード２０」に対応付けられているスイッチ２０００が無いことを示すように、振り分け情報を更新する。例えば、振り分け更新情報生成部２０８０は、抽出した「送信元のノード１０、送信先のノード２０」に対応付けられているスイッチ２０００を示すＩＤとして、空文字などを設定する。
【００４６】
振り分け更新情報生成部２０８０が生成する振り分け更新情報は、例えば図４に示す振り分け更新情報４００で示される。振り分け更新情報４００は、例えば送信元のノード１０のＩＤを示す送信元ノードＩＤ４０２、送信先のノード２０のＩＤを示す送信先ノードＩＤ４０４、及びスイッチのＩＤを示すスイッチＩＤ４０６を有する。振り分け更新情報は、送信元ノードＩＤ４０２で特定される送信元のノード１０から送信先ノードＩＤ４０４で特定される送信先のノード２０を宛先として送信されるパケットを中継するスイッチ２０００を、スイッチＩＤ４０６で特定するスイッチ２０００に変更することを示す。
【００４７】
送信元ノードＩＤ４０２及び送信先ノードＩＤ４０４がノードを特定するために示す識別子は、振り分けテーブル２００における送信元ノードＩＤ２０２及び送信先ノードＩＤ２０４と同様である。また、スイッチＩＤ４０６が示すスイッチの識別子は、スイッチ情報テーブル３００におけるスイッチＩＤ３０２と同様である。
【００４８】
＜振り分け更新情報送信部２１２０及び振り分け更新情報受信部２１３０の詳細＞
振り分け更新情報送信部２１２０は、制御インタフェース２３００を介し、振り分け更新情報が示すスイッチ２０００の振り分け更新情報受信部２１３０へ、振り分け更新情報が示す「送信元のノード１０、送信先のノード２０」の組み合わせを送信する。振り分け更新情報受信部２１３０は、制御インタフェース２３００を介して、別のスイッチ２０００の振り分け更新情報送信部２１２０から、「送信元のノード１０、送信先のノード２０」の組み合わせを受信する。ここで、振り分け更新情報送信部２１２０は、振り分け更新情報受信部２１３０に対して、振り分け更新情報を送信してもよい。
【００４９】
＜振り分け情報更新部２１４０の詳細＞
振り分け情報更新部２１４０は、振り分け更新情報受信部２１３０から、「送信元のノード１０、送信先のノード２０」の組み合わせを取得する。そして、振り分け情報更新部２１４０は、当該スイッチ２０００が、取得した組み合わせの間で送信されるパケットの中継を行うことを示すように、振り分け情報を更新する。例えば、振り分け情報が、振り分け情報テーブル２００のように、当該スイッチ２０００がパケットの中継を行う「送信元のノード１０、送信先のノード２０」の組み合わせを示しているとする。この場合、振り分け情報更新部２１４０は、取得した「送信元のノード１０、送信先のノード２０」の組み合わせを、振り分け情報に登録する。
【００５０】
振り分け情報が、「送信元のノード１０、送信先のノード２０」の全ての組み合わせそれぞれについて、パケットの中継を行うスイッチ２０００を対応付けているとする。この場合、振り分け更新情報生成部２１４０は、取得した「送信元のノード１０、送信先のノード２０」に当該スイッチ２０００を対応付けるように、振り分け情報を更新する。
【００５１】
＜動作の流れ＞
図５は、スイッチ２０００が、あるノードと通信できなくなった際に振り分け情報を更新する処理の流れの一例を示すフローチャートである。
【００５２】
ステップＳ１０２において、障害情報取得部２０４０は、障害情報を取得する。
【００５３】
ステップＳ１０４において、振り分け更新情報生成部２０８０は、上記障害情報で特定される障害ノードのＩＤをキーとして、振り分け情報格納部２０２０に格納されている振り分け情報テーブル２００を検索する。具体的には、振り分け情報テーブル２００から、送信元ノードＩＤ２０２又は送信先ノードＩＤ２０４が障害ノードのＩＤを示すレコードを検索する。
【００５４】
ステップＳ１０６において、振り分け更新情報生成部２０８０は、ステップＳ１０４の検索の結果を判定する。該当するレコードがある場合は、ステップＳ１０８に進む。該当するレコードがない場合は、図５のフローチャートで示す処理を終了する。
【００５５】
ステップＳ１０８において、スイッチ情報取得部２０６０は、スイッチ情報を取得する。
【００５６】
ステップＳ１１０〜ステップＳ１２０は、ステップＳ１０４において振り分け情報テーブル２００を検索して取得した各レコードについて行うループ処理である。ステップＳ１１０において、検索結果の全てのレコードについて処理を行ったかを判定する。まだ処理を行っていないレコードがある場合は、その中の１つを選択する。選択したレコードをレコードｉとする。そして、ステップＳ１１２に進む。全てのレコードについて処理を終えている場合は、図５のフローチャートに示す処理を終了する。
【００５７】
ステップＳ１１２において、振り分け更新情報生成部２０８０は、振り分け情報格納部２０２０に格納されている振り分け情報テーブル２００から、レコードｉを削除する。
【００５８】
ステップＳ１１４において、振り分け更新情報生成部２０８０は、スイッチ情報取得部２０６０が取得したスイッチ情報に基づいて、レコードｉに示されている「送信元のノード１０、送信先のノード２０」の組み合わせについて、振り分け更新情報４００を生成する。
【００５９】
ステップＳ１１８において、振り分け更新情報送信部２１２０は、上記振り分け更新情報４００が示す「送信元のノード１０、送信先のノード２０」を、上記振り分け更新情報４００が示すスイッチ２０００へ送信する。以下、上記振り分け更新情報４００が示すスイッチ２０００を、変更先スイッチ２０００と表記する。
【００６０】
変更先スイッチ２０００が有する振り分け更新情報受信部２１３０は、上記振り分け更新情報４００を受信する。そして、変更先スイッチ２０００が有するスイッチ指定部２１００は、振り分け更新情報受信部２１３０が受信した「送信元のノード１０、送信先のノード２０」の組み合わせを取得する。そして、上記スイッチ指定部２１００は、取得した組み合わせが示す送信元のノード１０へ、取得した組み合わせが示す送信先のノード２０を宛先とするパケットを送信する場合は、変更先スイッチ２０００へ送信するように指示する。
【００６１】
さらに、変更先スイッチ２０００が有する振り分け情報更新部２１４０は、振り分け更新情報受信部２１３０が受信した振り分け更新情報４００が示す「送信元のノード１０、送信先のノード２０」の組み合わせを、変更先スイッチ２０００が有する振り分け情報格納部２０２０に格納されている振り分け情報テーブル２００へ登録する。
【００６２】
ステップＳ１２０は、ステップＳ１１０から始まるループ処理の終端である。したがって、ステップＳ１１０に戻る。
【００６３】
スイッチ２０００が、通信ができなくなったノードとの間でパケットをやりとりするスイッチ２０００を変更する処理の流れは、上記に限定されない。例えば振り分け更新情報送信部２１２０は、ステップＳ１１８で行う「送信元のノード１０、送信先のノード２０」の組み合わせの送信を、全てのレコードｉについて振り分け更新情報４００を生成した後で行ってもよい。この場合、例えば振り分け更新情報送信部２１２０は、同じスイッチ２０００へ送信する「送信元のノード１０、送信先のノード２０」の組み合わせを、そのスイッチ２０００に対してまとめて送信する。これにより、スイッチ２０００の間を接続する制御用ポートにかかる通信負荷を低減することができる。
【００６４】
＜作用・効果＞
以上の構成により、本実施形態によれば、スイッチ２０００は、自身がパケットを中継している「送信元のノード１０、送信先のノード２０」の組み合わせにおける送信元のノード１０又は送信先のノード２０と通信ができなくなった場合に、上記中継を行うスイッチ２０００を変更する。その際、新たに中継を行うスイッチ２０００として、上記送信元のノード１０及び送信先のノード２０の双方と、別のスイッチ２０００を介さずに通信可能であるスイッチ２０００を選択する。こうすることで、送信元のノード１０から送信先のノード２０へパケットを送信する際に、スイッチ２０００から別のスイッチ２０００へパケットを転送しないようにする。その結果、スイッチ２０００とスイッチ２０００を接続する制御インタフェース２３００で輻輳が発生することを防ぐことができる。
【００６５】
また、本実施形態のスイッチ２０００は、「送信元のノード１０、送信先のノード２０」の組み合わせごとに、パケットを中継するスイッチ２０００を決定する。したがって、スイッチ２０００は、仮想スイッチ３０００を構成する他のスイッチ２０００との間で、パケットの送受信にかかる通信負荷を分散させることが可能である。
【００６６】
[実施形態２]
＜概要＞
図６は、実施形態２に係るスイッチ４０００を、その使用環境と共に示すブロック図である。ここで、図６における矢印は、情報の流れを示している。
【００６７】
スイッチ４０００は、通信回線を介して接続されている他のスイッチ４０００と共に、１つの仮想的なスイッチである仮想スイッチ５０００として機能する。ここで、仮想スイッチ５０００を構成するスイッチ４０００同士を接続する通信回線を、制御インタフェース４３００と呼ぶ。仮想スイッチ５０００を構成する各スイッチ４０００は、パケットの送信又は受信を行う複数のノード３０と、通信回線を介して接続されている。スイッチ４０００は、ノード３０からパケットを受信し、別のノード３０へパケットを送信する中継装置として機能する。
【００６８】
ノード３０は、１つ以上のノード３０のまとまりであるグループに所属する。各グループに所属するノード３０は、自身が所属するグループの識別子であるグループＩＤが付与されたパケットを送信、又は受信する。ノード３０は、複数のグループに所属していてもよい。
【００６９】
スイッチ４０００は、振り分け情報格納部４０２０を有する。振り分け情報格納部４０２０は、振り分け情報を格納する。本実施形態における振り分け情報は、当該スイッチ４０００が、どのグループＩＤが付与されたパケットを中継するかを示す情報である。
【００７０】
スイッチ４０００は、グループ情報取得部４１６０を有する。グループ情報取得部４１６０は、グループ情報を取得する。グループ情報は、グループごとに、そのグループに所属するノード３０を示す情報である。
【００７１】
スイッチ４０００は、障害情報取得部４０４０を有する。障害情報取得部４０４０は、障害情報を取得する。障害情報は、スイッチ４０００と通信回線を介して接続されているノード３０のうち、スイッチ４０００と通信ができなくなったノード３０を特定する情報である。以下、実施形態１の場合と同様に、障害情報で特定されるノードを障害ノードと呼ぶ。
【００７２】
スイッチ４０００は、スイッチ情報取得部４０６０を有する。スイッチ情報取得部４０６０は、スイッチ情報を取得する。スイッチ情報は、スイッチ４０００と共に仮想スイッチ５０００を構成する他のスイッチ４０００それぞれについて、通信可能であるノード３０を示す情報である。
【００７３】
スイッチ４０００は、振り分け更新情報生成部４０８０を有する。振り分け更新情報生成部４０８０は、振り分け更新情報を生成する。本実施形態における振り分け更新情報は、振り分け情報が示すグループについて、そのグループＩＤが付与されたパケットの中継を行うスイッチ４０００を変更するための情報である。振り分け更新情報生成部４０８０は、障害情報取得部４０４０が取得する障害情報、振り分け情報格納部４０２０に格納されている振り分け情報、及びグループ情報取得部４１６０が取得するグループ情報を参照し、障害ノードが、上記振り分け情報で示されているグループに所属しているか否かを判定する。
【００７４】
障害ノードが、上記振り分け情報で示されているグループに所属している場合、振り分け更新情報生成部４０８０は、次のように動作して振り分け更新情報を生成する。まず、振り分け更新情報生成部４０８０は、上記振り分け情報の中から、障害ノードが所属しているグループのグループＩＤを抽出する。そして、振り分け更新情報生成部４０８０は、当該スイッチ４０００が、抽出したグループＩＤが付与されたパケットを中継しないことを示すように、抽出したグループＩＤに関する振り分け情報を更新する。振り分け更新情報生成部４０８０は、スイッチ情報取得部４０６０からスイッチ情報を取得する。振り分け更新情報生成部４０８０は、スイッチ情報に基づき、仮想スイッチ５０００を構成する他のスイッチ４０００の中から、抽出したグループＩＤで特定されるグループに所属している全てのノード３０と、別のスイッチ４０００を介さずに通信可能であるスイッチ４０００を選択する。そして、振り分け更新情報生成部４０８０は、「抽出したグループＩＤ、選択したスイッチ４０００」の組み合わせを示す振り分け更新情報を生成する。
【００７５】
障害ノードが複数のグループに所属している場合は、そのグループごとに、振り分け更新情報を生成する。つまり、障害ノードが所属しているグループごとに、そのグループのグループＩＤが付与されたパケットを中継するスイッチ４０００を新たに選択する。
【００７６】
スイッチ４０００は、振り分け更新情報送信部４１２０を有する。振り分け更新情報送信部４１２０は、振り分け更新情報が示すスイッチ４０００へ、その振り分け更新情報が示すグループＩＤを送信する。
【００７７】
スイッチ４０００は、振り分け更新情報受信部４１３０を有する。振り分け更新情報受信部４１３０は、別のスイッチ４０００が送信したグループＩＤを取得する。
【００７８】
スイッチ４０００は、振り分け情報更新部４１４０を有する。振り分け更新情報受信部４１３０が受信したグループＩＤを取得する。そして、当該スイッチ４０００が、取得したグループＩＤが付与されたパケットを中継するように、振り分け情報を更新する。
【００７９】
スイッチ４０００は、スイッチ指定部４１００を有する。スイッチ指定部４１００は、振り分け更新情報受信部４１３０が受信したグループＩＤを取得する。そして、取得したグループＩＤで特定されるグループに所属しているノード３０に対し、取得したグループＩＤが付与されたパケットを、当該スイッチ４０００へ送信するように指示する。
【００８０】
以上のように、本実施形態のスイッチ４０００は、自身との間でパケットをやりとりしているノード３０と通信ができなくなった場合に、上記ノード３０が所属するグループのグループＩＤが付与されたパケットを中継するスイッチ４０００を変更する。その際、新たに中継を行うスイッチ４０００として、上記ノード３０が所属するグループに所属している全てのノード３０と、別のスイッチ４０００を介さずに通信可能であるスイッチ４０００を選択する。こうすることで、スイッチ４０００とスイッチ４０００との間で、上記グループＩＤが付与されたパケットの転送が行われないようにする。その結果、スイッチ４０００とスイッチ４０００を接続する制御インタフェース４３００で輻輳が発生することを防ぐことができる。
【００８１】
また、本実施形態のスイッチ４０００は、パケットを中継するスイッチ４０００をグループごとに決定することができる。これにより、パケットの中継にかかる通信負荷を、仮想スイッチ５０００を構成する複数のスイッチ４０００の間で分散することができる。
【００８２】
以下、本実施形態の詳細を述べる。
【００８３】
＜構成詳細＞
仮想スイッチ５０００を構成する複数のスイッチ４０００は、制御インタフェース４３００により、互いに通信可能に接続されている。スイッチ４０００の振り分け更新情報送信部４１２０は、制御インタフェース４３００を介して、別のスイッチ４０００の振り分け情報更新部４１４０へ振り分け更新情報を送信する。
【００８４】
スイッチ４０００は、ノード３０との間でパケットの送受信を行うパケット送受信部４２００を有する。
【００８５】
本実施形態におけるグループは、例えばＶＬＡＮ（Ｖｉｒｔｕａｌ  Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）のグループである。同じグループに属するノード３０は、同じＶＬＡＮに属する。この場合、グループＩＤは、ＶＬＡＮのＩＤである。また、グループは、複数のＶＬＡＮをまとめたものであってもよい。
【００８６】
＜振り分け情報格納部４０２０の詳細＞
振り分け情報格納部４０２０が有する振り分け情報は、例えば図７に示すように、振り分け情報リスト５００を有する。振り分け情報リスト５００は例えば、グループＩＤのリストである。スイッチ４０００は、振り分け情報リスト５００に示される各グループＩＤで特定されるグループに所属しているノード３０との間で、そのグループのグループＩＤが付与されているパケットをやりとりする。
【００８７】
振り分け情報は、全てのグループＩＤそれぞれについて、各グループＩＤが付与されたパケットを中継するスイッチ４０００を示す情報であってもよい。
【００８８】
＜障害情報取得部４０４０の詳細＞
障害情報取得部４０４０が障害情報を取得する方法は、実施形態１における障害情報取得部２０４０が障害情報を取得する方法と同様である。
【００８９】
＜スイッチ情報取得部４０６０の詳細＞
スイッチ情報取得部４０６０が取得するスイッチ情報は、例えば実施形態１におけるスイッチ情報と同様である（図３参照）。
【００９０】
＜振り分け更新情報生成部４０８０の詳細＞
振り分け更新情報生成部４０８０は、振り分け情報の中から、障害ノードが所属するグループのグループＩＤを抽出する。そして、振り分け更新情報生成部４０８０は、当該スイッチ２０００が、抽出したグループＩＤが付与されたパケットの中継を行わないことを示すように、振り分け情報を更新する。例えば、振り分け情報が、振り分け情報リスト５００のように、当該スイッチ４０００がパケットの中継を行うグループのグループＩＤを示しているとする。この場合、振り分け更新情報生成部４０８０は、抽出したグループＩＤを、振り分け情報から削除する。
【００９１】
振り分け情報が、各グループＩＤについて、そのグループＩＤが付与されたパケットの中継を行うスイッチ４０００を対応付けているとする。この場合、振り分け更新情報生成部４０８０は、抽出したグループＩＤに対応付けられているスイッチ４０００が無いことを示すように、振り分け情報を更新する。例えば、振り分け更新情報生成部４０８０は、抽出したグループＩＤに対応付けられているスイッチ４０００を示すＩＤとして、空文字などを設定する。
【００９２】
振り分け更新情報生成部４０８０が生成する振り分け更新情報は、例えば図８に示す振り分け更新情報６００で表される。振り分け更新情報６００は、例えばグループＩＤ６０２及びスイッチＩＤ６０４を有する。振り分け更新情報６００の各レコードは、グループＩＤ６０２が付与されたパケットを中継するスイッチ４０００を、スイッチＩＤ６０４で特定されるスイッチ４０００に更新することを示す。
【００９３】
＜グループ情報取得部４１６０の詳細＞
グループ情報取得部４１６０が取得するグループ情報は、例えば図９に示すグループ情報テーブル７００で表される。グループ情報テーブル７００は、グループＩＤ７０２及びノードＩＤ７０４を有する。グループ情報テーブル７００のレコードは、グループＩＤ７０２で特定されるグループに、ノードＩＤ７０４で特定されるノード３０が所属していることを表す。言い換えると、ノードＩＤ７０４で特定されるノード３０は、グループＩＤ７０２が示すグループＩＤが付与されたパケットの送信又は受信を行うことを表す。
【００９４】
＜振り分け更新情報送信部４１２０及び振り分け更新情報受信部４１３０の詳細＞
振り分け更新情報送信部４１２０は、制御インタフェース４３００を介し、振り分け更新情報が示すスイッチ４０００の振り分け更新情報受信部４１３０へ、振り分け更新情報が示すグループＩＤを送信する。振り分け更新情報受信部４１３０は、制御インタフェース４３００を介して、別のスイッチ４０００の振り分け更新情報送信部４１２０から、グループＩＤを受信する。ここで、振り分け更新情報送信部４１２０は、振り分け更新情報受信部４１３０に対して、振り分け更新情報を送信してもよい。
【００９５】
＜振り分け情報更新部４１４０の詳細＞
振り分け情報更新部４１４０は、振り分け更新情報受信部４１３０から、グループＩＤを取得する。そして、振り分け情報更新部４１４０は、当該スイッチ４０００が、取得したグループＩＤが付与されたパケットの中継を行うことを示すように、振り分け情報を更新する。例えば、振り分け情報が、振り分け情報リスト５００のように、当該スイッチ４０００が、どのグループＩＤが付与されたパケットを中継するかを示しているとする。この場合、振り分け情報更新部４１４０は、取得したグループＩＤを、振り分け情報に登録する。
【００９６】
振り分け情報が、各グループＩＤについて、そのグループＩＤが付与されたパケットの中継を行うスイッチ４０００を対応付けているとする。この場合、振り分け情報更新部４１４０は、取得したグループＩＤに当該スイッチ４０００を対応付けるように、振り分け情報を更新する。
【００９７】
＜動作の流れ＞
図１０は、スイッチ４０００が、あるノード３０との間で通信ができなくなった際に振り分け情報を更新する処理の流れの一例を示すフローチャートである。
【００９８】
ステップＳ２０２において、障害情報取得部４０４０は、障害情報を取得する。
【００９９】
ステップＳ２０４において、グループ情報取得部４１６０は、グループ情報テーブル７００を取得する。
【０１００】
ステップＳ２０６において、振り分け更新情報生成部４０８０は、上記障害情報で特定される障害ノードのＩＤをキーとして、グループ情報取得部４１６０が取得したグループ情報テーブル７００を検索する。具体的には、グループ情報テーブル７００から、ノードＩＤ７０４が障害ノードのＩＤを示すレコードを検索する。
【０１０１】
ステップＳ２０８〜ステップＳ２２４は、ステップＳ２０６において振り分け情報テーブル２００を検索して取得した各レコードについて行うループ処理Ａである。ステップＳ２０８において、検索結果の全てのレコードについて処理を行ったかを判定する。まだ処理を行っていないレコードがある場合は、その中の１つを選択する。選択したレコードをレコードｉとする。そして、ステップＳ２１０に進む。全てのレコードについて処理を終えている場合は、図１０のフローチャートに示す処理を終了する。なお、障害ノードがいずれのグループにも属していない場合は、ステップＳ２０６における検索でレコードが取得されない。したがって、スイッチ２０００は、一度もループ処理Ａを実行せずに、図１０のフローチャートに示す処理を終了する。
【０１０２】
ステップＳ２１０において、振り分け更新情報生成部４０８０は、レコードｉが示すグループのＩＤをキーとして、振り分け情報リスト５００を検索する。以降、レコードｉが示すグループを、グループｇと呼ぶ。
【０１０３】
ステップＳ２１２において、ステップＳ２１０における検索の結果を判定する。グループｇが振り分け情報リスト５００に含まれている場合は、ステップＳ２１４に進む。グループｇが振り分け情報リスト５００に含まれていない場合は、ステップＳ２２４に進む。
【０１０４】
ステップＳ２１４において、スイッチ情報取得部４０６０は、スイッチ情報を取得する。
【０１０５】
ステップＳ２１６において、振り分け更新情報生成部４０８０は、振り分け情報を更新する。具体的には、振り分け更新情報生成部４０８０は、振り分け情報リスト５００からグループｇを削除する。
【０１０６】
ステップＳ２１８において、振り分け更新情報生成部４０８０は、スイッチ情報取得部４０６０が取得したスイッチ情報に基づいて、グループｇについて、振り分け更新情報６００を生成する。
【０１０７】
ステップＳ２２２において、振り分け更新情報送信部４１２０は、上記振り分け更新情報６００が示すグループＩＤを、上記振り分け更新情報が示すスイッチ４０００へ送信する。以下、上記振り分け更新情報が示すスイッチ４０００を、変更先スイッチ４０００と表記する。
【０１０８】
変更先スイッチ４０００が有する振り分け更新情報受信部４１３０は、上記グループＩＤを受信する。そして、変更先スイッチ４０００が有するスイッチ指定部４１００は、振り分け更新情報受信部４１３０が受信したグループＩＤを取得する。そして、上記スイッチ指定部４１００は、取得したグループＩＤで特定されるグループに属しているノード３０に対し、取得したグループＩＤが付与されたパケットを送信する場合は、変更先スイッチ４０００へ送信するように指示する。
【０１０９】
さらに、変更先スイッチ４０００の振り分け情報更新部４１４０は、振り分け更新情報受信部４１３０がグループＩＤを、変更先スイッチ４０００の振り分け情報格納部４０２０に格納されている振り分け情報リスト５００へ登録する。
【０１１０】
ステップＳ２２４は、ステップＳ２０８から始まるループ処理Ａの終端である。したがって、ステップＳ２０８に戻る。
【０１１１】
スイッチ４０００が、ノード３０と通信ができなくなった際に振り分け情報を更新する処理の流れは、上記に限定されない。例えば振り分け更新情報送信部４１２０は、ステップＳ２２２で行う振り分け更新情報６００の送信を、全てのレコードｉについて振り分け更新情報６００を生成した後で行ってもよい。この場合、例えば振り分け更新情報送信部４１２０は、同じスイッチ４０００を示す振り分け更新情報６００を、そのスイッチ４０００に対してまとめて送信する。これにより、スイッチ４０００の間を接続する制御用ポートにかかる通信負荷を低減することができる。
【０１１２】
＜作用・効果＞
以上の構成により、本実施形態によれば、スイッチ４０００は、自身との間でパケットをやりとりしているノード３０と通信ができなくなった場合に、上記ノード３０が所属するグループのグループＩＤが付与されたパケットを中継するスイッチ４０００を変更する。その際、新たに中継を行うスイッチ４０００として、上記ノード３０が所属するグループに所属している全てのノード３０と、別のスイッチ４０００を介さずに通信可能であるスイッチ４０００を選択する。こうすることで、スイッチ４０００とスイッチ４０００との間で、上記グループＩＤが付与されたパケットの転送が行われないようにする。その結果、スイッチ４０００とスイッチ４０００を接続する制御インタフェース４３００で輻輳が発生することを防ぐことができる。
【０１１３】
また、本実施形態のスイッチ４０００は、パケットを中継するスイッチ４０００をグループごとに決定することができる。これにより、パケットの中継にかかる通信負荷を、仮想スイッチ５０００を構成する複数のスイッチ４０００の間で分散することができる。
【０１１４】
以上、図面を参照して本発明の実施形態及び実施例について述べたが、これらは本発明の例示であり、上記以外の様々な構成を採用することもできる。
【符号の説明】
【０１１５】
１０ 送信元のノード
２０ 送信先のノード
３０ ノード
２００ 振り分け情報テーブル
２０２ 送信元ノードＩＤ
２０４ 送信先ノードＩＤ
３００ スイッチ情報テーブル
３０２ スイッチＩＤ
３０４ ノードＩＤ
４００ 振り分け更新情報
４０２ 送信元ノードＩＤ
４０４ 送信先ノードＩＤ
４０６ スイッチＩＤ
５００ 振り分け情報リスト
６００ 振り分け更新情報
６０２ グループＩＤ
６０４ スイッチＩＤ
７００ グループ情報テーブル
７０２ グループＩＤ
７０４ スイッチＩＤ
２０００ スイッチ
２０２０ 振り分け情報格納部
２０４０ 障害情報取得部
２０６０ スイッチ情報取得部
２０８０ 振り分け更新情報生成部
２１００ スイッチ指定部
２１２０ 振り分け更新情報送信部
２１３０ 振り分け更新情報受信部
２１４０ 振り分け情報更新部
２２００ パケット送受信部
２３００ 制御インタフェース
３０００ 仮想スイッチ
４０００ スイッチ
４０２０ 振り分け情報格納部
４０４０ 障害情報取得部
４０６０ スイッチ情報取得部
４０８０ 振り分け更新情報生成部
４１００ スイッチ指定部
４１２０ 振り分け更新情報送信部
４１３０ 振り分け更新情報受信部
４１４０ 振り分け情報更新部
４１６０ グループ情報取得部
４２００ パケット送受信部
４３００ 制御インタフェース
５０００ 仮想スイッチ
【図１】
2014060567.tif 000003
【図２】
2014060567.tif 000004
【図３】
2014060567.tif 000005
【図４】
2014060567.tif 000006
【図５】
2014060567.tif 000007
【図６】
2014060567.tif 000008
【図７】
2014060567.tif 000009
【図８】
2014060567.tif 000010
【図９】
2014060567.tif 000011
【図１０】
2014060567.tif 000012