(57)【要約】【課題】重要度の高い制御フレームをＳＤＮコントローラと冗長化された仮想スイッチとの間で確実に送受信し、ネットワーク環境を安定化する。【解決手段】冗長化システム１００は、冗長化された仮想スイッチ１０１ａおよび仮想スイッチ１０１ｂと、これらの仮想スイッチを制御するＳＤＮコントローラ１０２とを備える。稼働中の仮想スイッチ１０１ａは、自らが稼働中であることを示す制御フレームをＳＤＮコントローラ１０２に定期的に送信する。ＳＤＮコントローラ１０２は、仮想スイッチ１０１ａが稼働中であることを示す制御フレームの受信状況に応じて、稼働中の仮想スイッチ１０１ａおよび待機中の仮想スイッチ１０１ｂ、または稼働中の仮想スイッチ１０１ａに所定の制御を指示する所定の制御フレームを送信する。【選択図】図１
2016174319.tif 000002
【特許請求の範囲】
【請求項１】
冗長化された仮想スイッチと、当該仮想スイッチを制御するＳＤＮコントローラとを備える冗長化システムであって、
稼働中の前記仮想スイッチが、当該仮想スイッチが稼働中であることを示す制御フレームを前記ＳＤＮコントローラに定期的に送信し、
前記ＳＤＮコントローラが、前記仮想スイッチが稼働中であることを示す制御フレームの受信状況に応じて、前記稼働中の仮想スイッチおよび待機中の前記仮想スイッチ、または前記稼働中の仮想スイッチに所定の制御を指示する所定の制御フレームを送信する、
ことを特徴とする冗長化システム。
【請求項２】
物理スイッチを備え、
前記稼働中の仮想スイッチが、前記稼働中であることを示す制御フレームを前記ＳＤＮコントローラに直接送信するとともに、前記仮想スイッチが稼働中であることを示す別の制御フレームを前記物理スイッチと前記待機中の仮想スイッチを経由して前記ＳＤＮコントローラに送信し、
前記ＳＤＮコントローラが、前記稼働中の仮想スイッチから直接送信される制御フレーム、および前記物理スイッチと前記待機中の仮想スイッチを経由して送信される別の制御フレームを所定の時間受信しない場合に、前記稼働中の仮想スイッチおよび前記待機中の仮想スイッチに稼働状態と待機状態の切り替えを指示する前記所定の制御フレームを送信し、
前記稼働中の仮想スイッチと前記待機中の仮想スイッチが、前記稼働状態と待機状態の切り替えを指示する所定の制御フレームを受信すると、稼働状態と待機状態を切り替える、
ことを特徴とする請求項１に記載の冗長化システム。
【請求項３】
前記ＳＤＮコントローラに直接送信される制御フレームが、前記稼働中の仮想スイッチ内での負荷が高いプログラムについての情報を含み、
前記ＳＤＮコントローラが、前記ＳＤＮコントローラに直接送信される制御フレームを定期的に受信するが、前記物理スイッチと前記待機中の仮想スイッチを経由して送信される別の制御フレームを所定の時間受信しない場合に、前記ＳＤＮコントローラに直接送信される制御フレームに含まれる負荷の高いプログラムについての情報を取得し、前記稼働中の仮想スイッチに、新規の仮想スイッチを追加して当該負荷の高いプログラムの処理を当該新規スイッチへ引き継がせることを指示する前記所定の制御フレームを送信し、
前記稼働中の仮想スイッチが、前記新規の仮想スイッチを追加して前記負荷の高いプログラムの処理を前記新規スイッチへ引き継がせることを指示する所定の制御フレームを受信すると、前記新規の仮想スイッチを追加して前記負荷の高いプログラムの処理を前記新規スイッチへ引き継がせる、
ことを特徴とする請求項２記載の冗長化システム。
【請求項４】
各前記仮想スイッチと前記ＳＤＮコントローラとが管理ネットワークを介して接続されており、
各前記仮想スイッチと前記物理スイッチとがデータネットワークを介して接続されており、
前記稼働中の仮想スイッチから前記ＳＤＮコントローラに直接送信される制御フレームが、前記管理ネットワークを介して送信され、
前記別の制御フレームが、前記稼働中の仮想スイッチから前記物理スイッチに送信されるとき、および前記物理スイッチから前記待機中の仮想スイッチに送信されるとき、前記データネットワークを介して送信され、前記待機中の仮想スイッチから前記ＳＤＮコントローラに送信されるとき、前記管理ネットワークを介して送信され、
前記ＳＤＮコントローラから前記仮想スイッチに送信される所定の制御フレームが、前記管理ネットワークを介して送信され、
各前記仮想スイッチが、
前記データネットワークを介して前記物理スイッチから送信される前記別の制御フレームをキューイングする格納領域と、前記管理ネットワークを介して前記ＳＤＮコントローラから送信される所定の制御フレームをキューイングする格納領域とを有するソフト受信キューと、
前記データネットワークを介して前記物理スイッチに送信する前記別の制御フレームをキューイングする格納領域と、前記管理ネットワークを介して前記ＳＤＮコントローラに直接送信する制御フレームおよび前記物理スイッチを経由し前記管理ネットワークを介して前記ＳＤＮコントローラに送信する別の制御フレームをキューイングする格納領域とを有するソフト送信キューと、
を備える、
ことを特徴とする請求項２または３に記載の冗長化システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、冗長化された仮想スイッチとそれらを制御するＳＤＮ（Ｓｏｆｔｗａｒｅ  Ｄｅｆｉｎｅｄ  Ｎｅｔｗｏｒｋｉｎｇ）コントローラとを備える冗長化システムに関する。
【背景技術】
【０００２】
近年、データセンターにおける設備リソース最適化を目的とした仮想化技術の導入が進んでいる。特にサーバ、ストレージを仮想化し、サービス特性や時間帯の状況に合わせて設定や配置を動的に変更する技術が使用されている（例えば、特許文献１参照）。
データセンター全体を仮想化するためには、サーバ、ストレージ以外にもネットワークを動的に変更する必要があるが、その要件を満たす技術の一つとして、ＳＤＮが提唱されている（例えば、非特許文献１参照）。ＳＤＮでは、経路制御機能とデータ転送機能を分離し、データ転送機能を賄う複数から構成されるスイッチの経路制御設定をＳＤＮコントローラにより一元的に管理制御する。複数スイッチの経路制御をＳＤＮコントローラが集中的に担うことで、ＳＤＮ技術を用いないネットワーク環境に比べ、ネットワーク構成変更をより動的かつ高度に制御することができる。また、仮想的なスイッチ等の技術を用いることで、サーバ上にネットワーク機能が生成可能であり、物理スイッチがなくても、サーバが存在する環境下に新たなネットワーク環境を作成することができる。
【０００３】
一方、従来からのネットワークシステムにおいて、サーバやルータの障害発生によりサービスが停止しないための方法として、冗長化システムが使用されている。レイヤ３スイッチやルータなどのパケット中継装置での冗長化システムを実現するプロトコルとして、ＶＲＲＰ（Ｖｉｒｔｕａｌ  Ｒｏｕｔｅｒ  Ｒｅｄｕｎｄａｎｃｙ  Ｐｒｏｔｏｃｏｌ）が知られている（例えば、非特許文献２参照）。ＶＲＲＰでは、複数のパケット中継装置を一つのグループとして扱い、グループ内のパケット中継装置に優先度が与えられる。そして、通常時は、優先度の低いパケット中継装置は待機し、優先度が高いパケット中継装置による通信が行われる。障害時には同じグループの他のパケット中継装置の中で優先度が高いパケット中継装置に自動的に切替えて通信が継続される。ＶＲＲＰでは、優先度の高い稼働中のパケット中継装置が制御フレーム（ＶＲＲＰパケット）を待機中のパケット中継装置に定期的に送信する。そして、稼働中のパケット中継装置に問題が発生して待機中のパケット中継装置が制御フレームを一定期間受信しなくなった場合に、待機中のパケット中継装置の中で優先度が高いパケット中継装置が自動的に稼動を開始して通信を継続する。
ＳＤＮにより仮想化したネットワークの信頼性を向上する手段として、ＶＲＲＰ等の冗長化システムも使用されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−２１００３２号公報
【非特許文献】
【０００５】
【非特許文献１】“Software-Defined Networking: The New Norm for Networks”, ONF White Paper. [online]. APR 13 2012. [retrieved on 2015-02-28]. Retrieved from the Internet: <URL:https://www.opennetworking.org/images/stories/downloads/sdn-resources/white-papers/wp-sdn-newnorm.pdf>.
【非特許文献２】“Virtual Router Redundancy Protocol (VRRP) Version 3 for IPv4 and IPv6”. [online]. [retrieved on 2015-02-28]. Retrieved from the Internet:〈http://tools.ietf.org/html/rfc5798〉.
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上述したＳＤＮ技術を用いた仮想スイッチ環境では、従来パケット転送等のハードウェアで行っていた処理を、サーバ上のソフトウェア上で行うため、メモリを多く消費するとともに、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）の負荷が高くなる。仮想スイッチに流入してくるパケットの処理がソフトウェア化されることでＣＰＵの処理時間が長くなる。
仮想スイッチ上では、パケットの送受信やプロトコル処理に加え、統計処理やＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）の処理など様々な処理が行われている。通信経路上にパケットが大量に流れている環境においては、パケットの処理負荷が高い。仮想スイッチに流入してきたパケットはキューなどに保管され、流入順に処理されることになるが、流入量がキューの許容量を超えた場合、キューあふれが発生し、以降の流入パケットは廃棄される。
ＶＲＲＰ等の冗長化プロトコルは冗長化された装置間で制御フレームの送受信によるヘルスチェックを行っている。負荷が高いことによってパケット受信漏れが発生すると、バックアップ側のシステムがマスタ障害だと誤検知してダブルマスタになったり、更にその後ダブルマスタを回復するためのマスタ停止命令を受信せず、ダブルマスタのままシステムが稼動し続けて不安定なネットワークから回復できない場合がある。
【０００７】
本発明の目的は、重要度の高い制御フレームをＳＤＮコントローラと冗長化された仮想スイッチとの間で確実に送受信し、ネットワーク環境を安定化することができる冗長化システムを提供することである。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、本発明に係る冗長化システムは、
冗長化された仮想スイッチと、当該仮想スイッチを制御するＳＤＮコントローラとを備える冗長化システムであって、
稼働中の前記仮想スイッチが、当該仮想スイッチが稼働中であることを示す制御フレームを前記ＳＤＮコントローラに定期的に送信し、
前記ＳＤＮコントローラが、前記仮想スイッチが稼働中であることを示す制御フレームの受信状況に応じて、前記稼働中の仮想スイッチおよび待機中の前記仮想スイッチ、または前記稼働中の仮想スイッチに所定の制御を指示する所定の制御フレームを送信する、
ことを特徴とする。
【０００９】
好ましくは、本発明に係る冗長化システムは、
物理スイッチを備え、
前記稼働中の仮想スイッチが、前記稼働中であることを示す制御フレームを前記ＳＤＮコントローラに直接送信するとともに、前記仮想スイッチが稼働中であることを示す別の制御フレームを前記物理スイッチと前記待機中の仮想スイッチを経由して前記ＳＤＮコントローラに送信し、
前記ＳＤＮコントローラが、前記稼働中の仮想スイッチから直接送信される制御フレーム、および前記物理スイッチと前記待機中の仮想スイッチを経由して送信される別の制御フレームを所定の時間受信しない場合に、前記稼働中の仮想スイッチおよび前記待機中の仮想スイッチに稼働状態と待機状態の切り替えを指示する前記所定の制御フレームを送信し、
前記稼働中の仮想スイッチと前記待機中の仮想スイッチが、前記稼働状態と待機状態の切り替えを指示する所定の制御フレームを受信すると、稼働状態と待機状態を切り替える、
ことを特徴とする。
【００１０】
好ましくは、本発明に係る冗長化システムは、
前記ＳＤＮコントローラに直接送信される制御フレームが、前記稼働中の仮想スイッチ内での負荷が高いプログラムについての情報を含み、
前記ＳＤＮコントローラが、前記ＳＤＮコントローラに直接送信される制御フレームを定期的に受信するが、前記物理スイッチと前記待機中の仮想スイッチを経由して送信される別の制御フレームを所定の時間受信しない場合に、前記ＳＤＮコントローラに直接送信される制御フレームに含まれる負荷の高いプログラムについての情報を取得し、前記稼働中の仮想スイッチに、新規の仮想スイッチを追加して当該負荷の高いプログラムの処理を当該新規スイッチへ引き継がせることを指示する前記所定の制御フレームを送信し、
前記稼働中の仮想スイッチが、前記新規の仮想スイッチを追加して前記負荷の高いプログラムの処理を前記新規スイッチへ引き継がせることを指示する所定の制御フレームを受信すると、前記新規の仮想スイッチを追加して前記負荷の高いプログラムの処理を前記新規スイッチへ引き継がせる、
ことを特徴とする。
【００１１】
好ましくは、本発明に係る冗長化システムは、
各前記仮想スイッチと前記ＳＤＮコントローラとが管理ネットワークを介して接続されており、
各前記仮想スイッチと前記物理スイッチとがデータネットワークを介して接続されており、
前記稼働中の仮想スイッチから前記ＳＤＮコントローラに直接送信される制御フレームが、前記管理ネットワークを介して送信され、
前記別の制御フレームが、前記稼働中の仮想スイッチから前記物理スイッチに送信されるとき、および前記物理スイッチから前記待機中の仮想スイッチに送信されるとき、前記データネットワークを介して送信され、前記待機中の仮想スイッチから前記ＳＤＮコントローラに送信されるとき、前記管理ネットワークを介して送信され、
前記ＳＤＮコントローラから前記仮想スイッチに送信される所定の制御フレームが、前記管理ネットワークを介して送信され、
各前記仮想スイッチが、
前記データネットワークを介して前記物理スイッチから送信される前記別の制御フレームをキューイングする格納領域と、前記管理ネットワークを介して前記ＳＤＮコントローラから送信される所定の制御フレームをキューイングする格納領域とを有するソフト受信キューと、
前記データネットワークを介して前記物理スイッチに送信する前記別の制御フレームをキューイングする格納領域と、前記管理ネットワークを介して前記ＳＤＮコントローラに直接送信する制御フレームおよび前記物理スイッチを経由し前記管理ネットワークを介して前記ＳＤＮコントローラに送信する別の制御フレームをキューイングする格納領域とを有するソフト送信キューと、
を備える、
ことを特徴とする。
【発明の効果】
【００１２】
本発明によれば、重要度の高い制御フレームをＳＤＮコントローラと冗長化された仮想スイッチとの間で確実に送受信し、ネットワーク環境を安定化することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施形態に係る冗長化システムの構成の一例を示す図である。
【図２】ＳＤＮコントローラの詳細な構成の一例を示す図である。
【図３】仮想スイッチの詳細な構成の一例を示す図である。
【図４】冗長化システムの切替処理の一例の流れを示す図である。
【図５】冗長化システムにおける仮想スイッチの追加による負荷分散の一例を示す図である。
【図６】冗長化システムにおける仮想スイッチの追加による負荷分散の一例の流れを示す図である。
【発明を実施するための形態】
【００１４】
以下、本発明の実施形態に係る冗長化システムについて、図面を参照しながら説明する。なお、実施形態を説明する全図において、共通の構成要素には同一の符号を付し、繰り返しの説明を省略する。
【００１５】
図１は、本発明の実施形態に係る冗長化システム１００の構成の一例を示す。
冗長化システム１００は、ＶＲＲＰにより冗長化された稼働中の仮想スイッチ１０１ａおよび待機中の仮想スイッチ１０１ｂと、ＳＤＮコントローラ１０２と、物理スイッチ（ハードウェアスイッチ）１０３とを備える。
仮想スイッチ１０１ａは、冗長化を担うＶＲＲＰ部１０１１ａと、仮想スイッチ１０１ａ内の負荷が高い（すなわち、ＣＰＵ使用率が高い）プログラムを監視するエージェント１０１２ａとを有する。同様に、仮想スイッチ１０１ｂも、ＶＲＲＰ部１０１１ｂと、エージェント１０１２ｂとを有する。仮想スイッチ１０１ａと仮想スイッチ１０１ｂは、物理的なサーバのＣＰＵが所定の仮想スイッチプログラムを実行することによって、そのサーバ上に生成される仮想的なスイッチである。なお、物理的なサーバは１台であってもよいし、複数であってもよい。
ＳＤＮコントローラ１０２は、仮想スイッチ１０１ａと仮想スイッチ１０１ｂの冗長化を制御する冗長化制御部１０２１を有する。冗長化制御部１０２１の機能は、コンピュータのＣＰＵが所定の冗長化制御プログラムを実行することによって実現される。そのコンピュータは、仮想スイッチ１０１ａと仮想スイッチ１０１ｂが生成されるサーバと同一であってもよいし、異なっていてもよい。
仮想スイッチ１０１ａと仮想スイッチ１０１ｂは、それぞれ管理ネットワーク１０４と管理ネットワーク１０５によりＳＤＮコントローラ１０２と接続される。なお、管理ネットワーク１０４と管理ネットワーク１０５は同一の１つのネットワークであってもよい。
また、仮想スイッチ１０１ａと仮想スイッチ１０１ｂは、それぞれデータネットワーク１０６とデータネットワーク１０７により物理スイッチ１０３と接続される。なお、データネットワーク１０６とデータネットワーク１０７も同一の１つのネットワークであってもよい。
【００１６】
稼働中の仮想スイッチ１０１ａは、自らが稼働中であることを示す制御フレームをＳＤＮコントローラ１０２に定期的に送信する。仮想スイッチ１０１ａが稼働中であることを示す制御フレームには、管理ネットワーク１０４を介してＳＤＮコントローラ１０２に直接送信される制御フレームと、物理スイッチ１０３と待機中の仮想スイッチ１０１ｂとを経由してＳＤＮコントローラ１０２に送信される別の制御フレームとの２種類がある。この別の制御フレームは、稼働中の仮想スイッチ１０１ａから物理スイッチ１０３に送信されるとき、データネットワーク１０６を介して送信され、物理スイッチ１０３から待機中の仮想スイッチ１０１ｂに送信されるとき、データネットワーク１０７を介して送信され、待機中の仮想スイッチ１０１ｂからＳＤＮコントローラ１０２に送信されるとき、管理ネットワーク１０５を介して送信される。
ＳＤＮコントローラ１０２は、これらの制御フレームの受信状況に応じて、稼働中の仮想スイッチ１０１ａおよび待機中の仮想スイッチ１０１ｂ、または稼働中の仮想スイッチ１０１ａに所定の制御を指示する所定の制御フレームを送信する。
【００１７】
図２は、ＳＤＮコントローラ１０２の詳細な構成の一例を示す。
ＳＤＮコントローラ１０２は、仮想スイッチ１０１ａと仮想スイッチ１０１ｂをそれぞれ管理ネットワーク１０４と管理ネットワーク１０５で接続するためのネットワークポート２０１とネットワークポート２０２を有する。冗長化制御部１０２１は、制御フレーム受信部２０５と、制御部２０６と、制御フレーム送信部２０７とを有する。
制御フレーム受信部２０５は、仮想スイッチ１０１ａおよび１０１ｂから送信された制御フレームを解読する。制御部２０６は、解読した制御フレームを元に通知判定を行う。通知を行うと判定した場合、制御フレーム送信部２０７は、通知する制御フレームを作成し、仮想スイッチ１０１ａまたは仮想スイッチ１０１ｂへ制御フレームを送信する。
【００１８】
図３は、仮想スイッチ１０１ａの詳細な構成の一例を示す。
仮想スイッチ１０１ａは、主メモリとハードウェア３０３とを有する。主メモリは、ユーザー空間３０１とカーネル空間３０２とを有する。ユーザー空間３０１は、アプリケーションが動作するメモリ空間である。カーネル空間３０２は、オペレーティングシステムのカーネルが存在するメモリ空間である。
ユーザー空間３０１は、ＶＲＲＰプログラムとエージェントプログラムを記憶している。仮想スイッチ１０１ａのＣＰＵがＶＲＲＰプログラムとエージェントプログラムを実行することにより、それぞれＶＲＲＰ部１０１１ａとエージェント１０１２ａの機能が実現される。
ユーザー空間３０１とカーネル空間３０２の間にソフト受信キュー３０８とソフト送信キュー３０９がある。
【００１９】
仮想スイッチ１０１ａのハードウェア３０３は、データネットワーク１０６と接続されたネットワークポート３０４、および管理ネットワーク１０４と接続されたネットワークポート３０５を有する。
ネットワークポート３０４で受信されたデータネットワーク１０６からの制御フレームは、ソフト受信キュー３０８のうちデータネットワーク１０６専用の格納領域３０８１へ格納される。格納領域３０８１には、データネットワーク１０６を経由して受信されるフレームであって制御フレーム以外のものも格納される。ネットワークポート３０５で受信された管理ネットワーク１０４からの制御フレームは、ソフト受信キュー３０８のうち管理ネットワーク１０４専用の格納領域３０８２へ格納される。
このように、データネットワーク１０６を介して物理スイッチ１０３から送信される制御フレームとそれ以外のフレームは、ポート３０４を経由して、格納領域３０８１に格納されてキューイングされる。また、管理ネットワーク１０４を介してＳＤＮコントローラ１０２から送信される制御フレームは、ポート３０５を経由して、格納領域３０８２に格納されてキューイングされる。このため、データネットワーク１０６上でフレームが大量に発生した場合においても、ＳＤＮコントローラ１０２から送信される制御フレームを確実に受信することができる。
【００２０】
仮想スイッチ１０１ａが送信する制御フレームは、データネットワーク１０６と管理ネットワーク１０４のいずれを経由して送信されるかに応じて、格納領域３０９１と格納領域３０９２に格納されてキューイングされる。すなわち、データネットワーク１０６を介して物理スイッチ１０３に送信される制御フレームは、ソフト送信キュー３０９のうちデータネットワーク１０６専用の格納領域３０９１へ格納される。格納領域３０９１には、データネットワーク１０６を経由して送信されるフレームであって制御フレーム以外のものも格納されてキューイングされる。また、管理ネットワーク１０４を介してＳＤＮコントローラ１０２に直接送信される制御フレームおよび物理スイッチ１０３を経由し管理ネットワーク１０４を介してＳＤＮコントローラ１０２に送信される制御フレームは、ソフト送信キュー３０９のうち管理ネットワーク１０４専用の格納領域３０９２へ格納されてキューイングされる。
格納領域３０９に格納された制御フレームはネットワークポート３０４とネットワークポート３０５より送信される。
稼働中のＶＲＲＰ部１０１１ａは、エージェント１０１２ａより負荷が一定値を超える仮想スイッチ１０１ａ内のプログラムの情報を定期的に取得し、その情報を含む独自フォーマットの制御フレームを作成し、ソフト送信キュー３０９２を経由して管理ネットワーク１０４に接続されたＳＤＮコントローラ１０２へと定期的に送信する。独自フォーマットの制御フレームは、管理ネットワーク１０４専用の格納領域３０９２でキューイングされて送信されるため、ＳＤＮコントローラ１０２に確実に送信することができる。
【００２１】
図４は、冗長化システム１００の切替処理の一例の流れを示す。
稼働中の仮想スイッチ１０１ａは、定期的に、データネットワーク１０６と物理スイッチ１０３とデータネットワーク１０７とを通して制御フレーム４０１ａを待機中の仮想スイッチ１０１ｂへ送信するとともに、管理ネットワーク１０４を通して独自フォーマットの制御フレーム４０２をＳＤＮコントローラ１０２へ送信する。待機中の仮想スイッチ１０１ｂは、仮想スイッチ１０１ａから送信される制御フレーム４０１ａを受信したとき、管理ネットワーク１０５を通してその制御フレーム４０１ａを制御フレーム４０１ｂとしてＳＤＮコントローラ１０２へ転送する。制御フレーム４０１ｂと制御フレーム４０２を定期的に受信するとき、ＳＤＮコントローラ１０２の冗長化制御部１０２１は、仮想スイッチ１０１ａが正常に稼働中であると判定する。
稼働中の仮想スイッチ１０１ａに障害４０３が発生し、仮想スイッチ１０１ａが制御フレーム４０１ａと制御フレーム４０２を送信できなくなるとする。このとき、当然ながら待機中の仮想スイッチ１０１ｂは、制御フレーム４０１ｂをＳＤＮコントローラ１０３に送信することはできない。ＳＤＮコントローラ１０３は、制御フレーム４０１ｂと制御フレーム４０２を一定時間受信できない場合、障害検出処理４０４により仮想スイッチ１０１ａの障害発生を検知する。そして、ＳＤＮコントローラ１０３は、管理ネットワーク１０４と管理ネットワーク１０５を通して、稼働状態と待機状態の切り替えを指示するための独自フォーマットの制御フレーム４０５ａと制御フレーム４０５ｂをそれぞれ仮想スイッチ１０１ａと仮想スイッチ１０１ｂへ送信する。
【００２２】
制御フレーム４０５ａと制御フレーム４０５ｂを受信した仮想スイッチ１０１ａと仮想スイッチ１０１ｂは、プロトコルに従った切替処理４０６ａと切替処理４０６ｂを行う。稼動を開始した仮想スイッチ１０１ｂは、データネットワーク１０７を通して物理スイッチ１０３へＡＲＰ（Ａｄｄｒｅｓｓ Ｒｅｓｏｌｕｔｉｏｎ Ｐｒｏｔｏｃｏｌ）パケット４０７を送信する。
物理スイッチ１０３は、受信したＡＲＰパケット４０８の情報を元に、経路情報の更新処理４０８を行う。
【００２３】
図５は、冗長化システム１００における仮想スイッチ５０１の追加による負荷分散の一例を示す。
エージェント１０１２ａがプログラム５０１１の処理が高負荷であると判定すると、仮想スイッチ１０１ａは、新規の仮想スイッチ５０１を作成し、プログラム５０１１の処理を仮想スイッチ５０１へ引き継ぐ。仮想スイッチ５０１のＣＰＵは、プログラム５０１１の処理を実行する。
仮想スイッチ５０１は、仮想スイッチ１０１ａおよび物理スイッチ１０３と、データネットワーク５０２およびデータネットワーク５０３で接続され、データネットワーク５０２およびデータネットワーク５０３を通して分散した処理に必要な情報を送受信する。
【００２４】
図６は、冗長化システム１００における仮想スイッチ５０１の追加による負荷分散の一例の流れを示す。
稼働中の仮想スイッチ１０１ａは、定期的に、データネットワーク１０６と物理スイッチ１０３とデータネットワーク１０７とを通して制御フレーム４０１ａを待機中の仮想スイッチ１０１ｂへ送信するとともに、管理ネットワーク１０４を通して独自フォーマットの制御フレーム４０２をＳＤＮコントローラ１０２へ送信する。制御フレーム４０２は、仮想スイッチ１０１ａ内での負荷が高いプログラムについての情報を含む。待機中の仮想スイッチ１０１ｂは、仮想スイッチ１０１ａから送信される制御フレーム４０１ａを受信したとき、管理ネットワーク１０５を通してその制御フレーム４０１ａを制御フレーム４０１ｂとしてＳＤＮコントローラ１０２へ転送する。
稼働中の仮想スイッチ１０１ａに負荷６０１が発生すると、仮想スイッチ１０１ａは制御フレーム４０２を定期的に送信するが、制御フレーム４０１ａの送信を停止する。ＳＤＮコントローラ１０２は、制御フレーム４０２を定期的に受信するが、制御フレーム４０１ｂを所定の時間受信しないとき、負荷検知処理６０２により仮想スイッチ１０１ａの負荷が高いと判定する。このとき、ＳＤＮコントローラ１０２は制御フレーム４０２に含まれる負荷の高いプログラムについての情報を取得し、負荷分散の実施を指示する独自フォーマットの制御フレーム６０３を作成する。そして、ＳＤＮコントローラ１０２は、管理ネットワーク１０４を通して、制御フレーム６０３を仮想スイッチ１０１ａへ送信する。制御フレーム６０３を受信した仮想スイッチ１０１ａは、新規の仮想スイッチ５０１を起動し(６０４)、仮想スイッチ５０１に負荷の高い処理を行っているプログラムを引き継がせる(６０６)。
新規の仮想スイッチ５０１は起動処理６０５を行い、引き継ぎ(６０６)されたプログラムの処理を開始する。
【００２５】
なお、上述した実施形態では、１台の仮想スイッチ１０１ｂが待機中である場合について説明したが、待機中の仮想スイッチは２台以上であってもよい。
【００２６】
本発明によれば、仮想スイッチで障害が発生したときに、冗長化システムを確実に切り替えて、不正な通信経路が発生することを防ぎ、通信の信頼性を高めることができる。
また、データネットワークの負荷が高い場合に、冗長化システムの制御フレームの消失による不正な切替を防ぎ、通信経路の安定性を高めることができる。
また、稼働中の仮想スイッチの負荷が重い場合に、仮想スイッチを新規に作成し、その新規仮想スイッチに稼働中の仮想スイッチの負荷の重い処理を引き継ぎ、負荷を分散することができる。
【符号の説明】
【００２７】
１０１ａ、１０１ｂ…仮想スイッチ、１０１１ａ、１０１１ｂ…ＶＲＲＰ部、１０１２ａ、１０１２ｂ…エージェント、１０２…ＳＤＮコントローラ、１０２１…冗長化制御部、１０３…物理スイッチ、１０４、１０５…管理ネットワーク、１０６、１０７…データネットワーク、２０１、２０２…ＳＤＮコントローラのネットワークポート、２０５…制御フレーム受信部、２０６…制御部、２０７…制御フレーム送信部、３０１…ユーザー空間、３０２…カーネル空間、３０３…ハードウェア、３０４、３０５…仮想スイッチ１０１ａのネットワークポート、３０８…ソフト受信キュー、３０８１…データネットワーク１０６専用の格納領域、３０８２…管理ネットワーク１０４専用の格納領域、３０９…ソフト送信キュー、３０９１…データネットワーク１０６専用の格納領域、３０９２…管理ネットワーク１０４専用の格納領域、５０１…新規の仮想スイッチ、５０１１…高負荷プログラム、５０２、５０３…データネットワーク
【図１】
2016174319.tif 000003
【図２】
2016174319.tif 000004
【図３】
2016174319.tif 000005
【図４】
2016174319.tif 000006
【図５】
2016174319.tif 000007
【図６】
2016174319.tif 000008