(57)【特許請求の範囲】
【請求項１】
複数の制御ノードを有し、データプレーンと分離した制御プレーン上のサブネットを構成し、少なくとも１つの制御ノードがパケットハンドリング規則を前記データプレーン上の複数のスイッチ装置へ送信することで前記複数のスイッチ装置の各々を制御する制御システムの構成制御装置であって、
少なくとも１つのスイッチ装置を制御している、第一制御ノードを含む使用中の制御ノードの負荷を監視する監視手段と、
前記監視結果に基づいて予測される前記第一制御ノードの将来の予測負荷である第１の負荷情報と、前記第一制御ノード以外の制御ノードから定期的に報告される当該制御ノードの将来の予測負荷である第２の負荷情報とに基づいて、前記第一制御ノードが前記複数の制御ノードのうち未使用の制御ノードを追加し、および／または前記第一制御ノード以外の使用中の少なくとも１つの第二制御ノードを除去するように、第二制御ノードの使用数を変化させる制御手段と、
を有することを特徴とする構成制御装置。
【請求項２】
前記制御手段は、前記第一制御ノードの将来の予測負荷である前記第１の負荷情報に基づいて、第二制御ノードの使用数を変化させることを特徴とする請求項１に記載の構成制御装置。
【請求項３】
前記第一制御ノードは常時使用中のノンストップノードであることを特徴とする請求項２に記載の構成制御装置。
【請求項４】
前記制御手段は、前記第一制御ノードの将来の予測負荷である前記第１の負荷情報が所定負荷基準より高くなると、未使用の第二制御ノードを起動させ、当該起動された第二制御ノードが前記第一制御ノードから少なくとも１つのスイッチ装置の制御を引き継ぐように制御することを特徴とする請求項２または３に記載の構成制御装置。
【請求項５】
前記制御手段は、前記第一制御ノードの将来の予測負荷である前記第１の負荷情報が所定負荷基準より低くなると、前記第一制御ノードが使用中の第二制御ノードから少なくとも１つのスイッチ装置の制御を引き継ぎ、当該使用中の第二制御ノードをシャットダウンするように制御する、ことを特徴とする請求項２−４のいずれか１項に記載の構成制御装置。
【請求項６】
複数の制御ノードを有し、データプレーンと分離した制御プレーン上のサブネットを構成し、少なくとも１つの制御ノードがパケットハンドリング規則を前記データプレーン上の複数のスイッチ装置へ送信することで前記複数のスイッチ装置の各々を制御する制御システムであって、
少なくとも１つのスイッチ装置を制御している、第一制御ノードを含む使用中の制御ノードの負荷を監視する監視手段と、
前記監視結果に基づいて予測される前記第一制御ノードの将来の予測負荷である第１の負荷情報と、前記第一制御ノード以外の制御ノードから定期的に報告される当該制御ノードの将来の予測負荷である第２の負荷情報とに基づいて、前記第一制御ノードが前記複数の制御ノードのうち未使用の制御ノードを追加し、および／または前記第一制御ノード以外の使用中の少なくとも１つの第二制御ノードを除去するように、第二制御ノードの使用数を変化させる制御手段と、
を有することを特徴とする制御システム。
【請求項７】
前記第一制御ノードが、前記監視手段および前記制御手段を含み、常時使用中のノンストップノードであることを特徴とする請求項６に記載の制御システム。
【請求項８】
複数の制御ノードを有し、データプレーンと分離した制御プレーン上のサブネットを構成し、少なくとも１つの制御ノードがパケットハンドリング規則を前記データプレーン上の複数のスイッチ装置へ送信することで前記複数のスイッチ装置の各々を制御する制御システムの構成制御方法であって、
監視手段が、少なくとも１つのスイッチ装置を制御している、第一制御ノードを含む使用中の制御ノードの負荷を監視し、
制御手段が、前記監視結果に基づいて予測される前記第一制御ノードの将来の予測負荷である第１の負荷情報と、前記第一制御ノード以外の制御ノードから定期的に報告される当該制御ノードの将来の予測負荷である第２の負荷情報とに基づいて、前記第一制御ノードが前記複数の制御ノードのうち未使用の制御ノードを追加し、および／または前記第一制御ノード以外の使用中の少なくとも１つの第二制御ノードを除去するように、第二制御ノードの使用数を変化させる、
ことを特徴とする構成制御方法。
【請求項９】
複数の制御ノードを有し、データプレーンと分離した制御プレーン上のサブネットを構成し、少なくとも１つの制御ノードがパケットハンドリング規則を前記データプレーン上の複数のスイッチ装置へ送信することで前記複数のスイッチ装置の各々を制御する制御システムの構成制御装置として
コンピュータを機能させるプログラムであって、
監視手段が、少なくとも１つのスイッチ装置を制御している、第一制御ノードを含む使用中の制御ノードの負荷を監視し、
制御手段が、前記監視結果に基づいて予測される前記第一制御ノードの将来の予測負荷である第１の負荷情報と、前記第一制御ノード以外の制御ノードから定期的に報告される当該制御ノードの将来の予測負荷である第２の負荷情報とに基づいて、前記第一制御ノードが前記複数の制御ノードのうち未使用の制御ノードを追加し、および／または前記第一制御ノード以外の使用中の少なくとも１つの第二制御ノードを除去するように、第二制御ノードの使用数を変化させる、
ことを特徴とするプログラム。
【請求項１０】
請求項１−５のいずれか１項に記載の構成制御装置を備えた制御ノード。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はソフトウエアネットワーキング（Software Defined Networking：ＳＤＮ）技術に係り、特にスイッチ装置を制御するシステム、その構成制御装置および構成制御方法に関する。
【背景技術】
【０００２】
近年、ソフトウエアネットワーキング（ＳＤＮ）という新たなネットワーク技術が提案され、たとえばオープンフロー(OpenFlow)のようなネットワークプラットフォームの開発がオープンソースで進められている（非特許文献１など）。オープンフロー技術の基本的アイデアはデータプレーンと制御プレーンとを分離し、それらを独立に展開可能にしたことにある。この分離構成によりスイッチは閉じたシステムからプログラム可能なオープンプラットフォームとなり、スイッチを制御する制御システムに関しても次のような種々の提案がなされている。
【０００３】
非特許文献２には、ＮＯＸと呼ばれるネットワークの「オペレーティングシステム」が提案されており、そこではオープンフローコントローラが中央制御サーバで動作する単一のプロセスプログラムとして実装されている。非特許文献３には、１個以上の物理的なサーバのクラスタ上で動作する分散型制御プラットフォーム（Ｏｎｉｘ）が提案されている。さらに、非特許文献４には、上記ＮＯＸプラットフォームをベースにして、複数のＮＯＸ制御サーバを接続し分散型コントローラクラスタを形成する分散型制御プレーン（ＨｙｐｅｒＦｌｏｗ）が提案されている。
【０００４】
特に、分散型コントローラを複数のサーバで構成されたクラスタ上に実装するシステムはスケーラブルなコントローラ性能が得られる等の利点がある。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】N. McKeown et al. “OpenFlow: Enabling Innovation in Campus Networks” ACM SIGCOMM Computer Communication Review, 38(2):69-74, April 2008
【非特許文献２】N. Gude et al. “NOX: Towards an operating system for networks,” ACM SIGCOMM Computer Communication Review, July 2008
【非特許文献３】K. Koponen et al. “Onix: A Distributed Control Platform for Large-scale Production Networks,” In the Proc. of the 9th USENIX Symposium on Operating System Design and Implementation (OSDI 10), Vancouver, Canada, October 2010.
【非特許文献４】A. Tootocian and Y. Ganjali “HyperFlow: A Distributed Control Plane for OpenFlow,” In the Proc. of NSDI Internet Netwrok Management Workshop/Workshop on Research on Enterprise Networking (INM/WREN), San Jose, CA, USA, April 2010.
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、分散型コントローラを複数サーバのクラスタ上に実装するシステムでは、サーバの台数に比例して制御プレーンの消費電力が増大してしまい、近年益々重要視されている消費電力削減の課題を解決することができない。
そこで、本発明の目的は、ソフトウエアネットワーキング（ＳＤＮ）における制御プレーンの消費電力を性能低下なしに削減することができる制御システム、その構成制御装置および構成制御方法を提供することにある。
【課題を解決するための手段】
【０００７】
本発明による構成制御装置は、複数の制御ノードを有し、データプレーンと分離した制御プレーン上のサブネットを構成し、少なくとも１つの制御ノードがパケットハンドリング規則を前記データプレーン上の複数のスイッチ装置へ送信することで前記複数のスイッチ装置の各々を制御する制御システムの構成制御装置であって、少なくとも１つのスイッチ装置を制御している、第一制御ノードを含む使用中の制御ノードの負荷を監視する監視手段と、前記監視結果である負荷情報に基づいて、前記第一制御ノードが前記複数の制御ノードのうち未使用の制御ノードを追加し、および／または前記第一制御ノード以外の使用中の少なくとも１つの第二制御ノードを除去するように、第二制御ノードの使用数を変化させる制御手段と、を有することを特徴とする。
【０００８】
本発明による制御システムは、複数の制御ノードを有し、データプレーンと分離した制御プレーン上のサブネットを構成し、少なくとも１つの制御ノードがパケットハンドリング規則を前記データプレーン上の複数のスイッチ装置へ送信することで前記複数のスイッチ装置の各々を制御する制御システムであって、少なくとも１つのスイッチ装置を制御している、第一制御ノードを含む使用中の制御ノードの負荷を監視する監視手段と、前記監視結果である負荷情報に基づいて、前記第一制御ノードが前記複数の制御ノードのうち未使用の制御ノードを追加し、および／または前記第一制御ノード以外の使用中の少なくとも１つの第二制御ノードを除去するように、第二制御ノードの使用数を変化させる制御手段と、を有することを特徴とする。
【０００９】
本発明による構成制御方法は、複数の制御ノードを有し、データプレーンと分離した制御プレーン上のサブネットを構成し、少なくとも１つの制御ノードがパケットハンドリング規則を前記データプレーン上の複数のスイッチ装置へ送信することで前記複数のスイッチ装置の各々を制御する制御システムの構成制御方法であって、監視手段が、少なくとも１つのスイッチ装置を制御している、第一制御ノードを含む使用中の制御ノードの負荷を監視し、制御手段が、前記監視結果である負荷情報に基づいて、前記第一制御ノードが前記複数の制御ノードのうち未使用の制御ノードを追加し、および／または前記第一制御ノード以外の使用中の少なくとも１つの第二制御ノードを除去するように、第二制御ノードの使用数を変化させる、ことを特徴とする。
【発明の効果】
【００１０】
本発明によれば、制御ノードの負荷情報に基づいて制御ノードの使用数を変化させることで、ソフトウエアネットワーキング（ＳＤＮ）における制御プレーンの消費電力を性能低下なしに削減することができる。
【図面の簡単な説明】
【００１１】
【図１】図１は本発明の一実施形態による分散型コントローラクラスタからなる制御システムを用いたソフトウエアネットワーキング（ＳＤＮ）システムの概略的構成図である。
【図２】図２は本実施形態による分散型制御システムの構成方法を概略的に説明するための模式図である。
【図３】図３は本実施形態による制御システムの機能的構成例を示すブロック図である。
【図４】図４は本実施形態による分散型コントローラクラスタの構成制御方法の一例を示すフローチャートである。
【発明を実施するための形態】
【００１２】
本発明によれば、制御プレーンにおけるコントローラクラスタを構成するクラスタノードの使用数を制御負荷に応じて変更することにより、制御プレーンの制御性能を低下させることなく消費電力を削減することができる。以下、ソフトウエアネットワーキング（ＳＤＮ）としてオープンフロー(OpenFlow)を取り上げ、本発明の一実施形態およびその具体的な構成例について詳細に説明する。
【００１３】
１．システム
図１に示すように、オープンフローシステムは制御プレーンとデータプレーンとに分離されている。ここでは、データプレーンがｎ個（ｎ＞１）のオープンフロースイッチＯＦＳ［１］〜ＯＦＳ［ｎ］に実装され、制御プレーンがオープンフロースイッチＯＦＳ［１］〜ＯＦＳ［ｎ］を制御する分散型コントローラクラスタ１０に実装されているものとする。分散型コントローラクラスタ１０は制御プレーンのサブネットを構成し、ここではｍ個（ｍ＞１）のクラスタノードＣＮ［１］〜ＣＮ［ｍ］が使用可能であるとする。
【００１４】
クラスタノードＣＮ［１］〜ＣＮ［ｍ］の各々はセキュアチャネル(Secure Channel)２０で１個あるいは複数個のオープンフロースイッチと接続可能であり、接続されたオープンフロースイッチのフローテーブルをプログラムする。各クラスタノードは物理的な制御装置としてのサーバであり、後述するように、自ノードのオープンフローコントローラの負荷を監視する機能と、外部制御によりコントローラの起動／シャットダウン、セキュアチャネルの接続／切断を行う機能とを有する。
【００１５】
本実施形態によれば、ｍ個（ｍ＞１）のクラスタノードＣＮ［１］〜ＣＮ［ｍ］のうち１つのノードがマスタノードＭとして機能し、残りの（ｍ−１）個のクラスタノードがスレーブノードＳ［１］〜Ｓ［ｍ−１］として機能する。マスタノードＭは、後述するように、任意のスレーブノードの起動／シャットダウン、当該スレーブノードのセキュアチャネルの接続／切断、当該スレーブノードへの／からのオープンフロースイッチ制御処理のテイクオーバ（引渡し／引継ぎ）などを自ノードの制御負荷に応じて動的に実行する。マスタノードＭはノンストップで動作するので、特定の１つのクラスタノードをマスタノードＭとして予め決定しておくことが望ましい。図１ではクラスタノードＣＮ［１］がマスタノードＭとなっている。ただし、マスタノードとしての機能を他の任意のクラスタノードへ移転することも可能である。以下、機能的観点から、分散型コントローラクラスタ１０が単一のマスタノードＭと少なくとも１個のスレーブノード（Ｓ［１］〜Ｓ［ｍ−１］）からなるものとして説明する。
【００１６】
２．システム動作
図２に示すように、本実施形態による制御システムでは、単一のマスタノードＭが各クラスタノードの負荷を監視し、負荷状態に応じてスレーブノードへの制御の引き渡しあるいはスレーブノードからの制御の引継ぎを実行する。たとえば、マスタノードＭが単独でオープンフロースイッチＯＦＳ［１］〜ＯＦＳ［ｎ］を制御し、定期的に自ノードの負荷を監視しているとする。
【００１７】
マスタノードＭの制御負荷が処理能力を超える可能性が高くなると、マスタノードＭはオープンフロースイッチの制御に使用されていないスレーブノード（Ｓ［１］とする。）を選択して起動し、負荷が最も大きいオープンフロースイッチＯＦＳ［ｊ］の制御をスレーブノードＳ［１］へ引き渡す（ステップＳ３１）。これにより、スレーブノードＳ［１］はオープンフロースイッチＯＦＳ［ｊ］の制御を引き継ぎ、その分、マスタノードＭの負荷が軽減する。マスタノードＭとスレーブノードＳ［１］とは互いの管理データベースを同期させ、分散管理データベースクラスタを構成する。マスタノードＭは、自ノードとスレーブノードＳ［１］の負荷状況をモニタしながら、マスタノードＭの制御負荷が処理能力を超える可能性が高くなれば、負荷が最も大きいオープンフロースイッチＯＦＳの制御を別の未使用スレーブノード（Ｓ［ｍ−１］とする。）へ引き渡す（ステップＳ３２）。これにより、スレーブノードＳ［ｍ−１］はオープンフロースイッチＯＦＳ［ｋ］の制御を引き継ぎ、その分、マスタノードＭの負荷が軽減する。以下同様に、マスタノードＭの制御負荷が処理能力を超える可能性が高くなるごとに、最大負荷のオープンフロースイッチＯＦＳの制御を別の未使用スレーブノードＳへ引き渡す、というテイクオーバ処理を繰り返す。
【００１８】
別の方法として、マスタノードＭは、自ノードの制御負荷が処理能力を超える可能性が高くなるごとに、スレーブノードＳ［１］の処理能力の範囲内でオープンフロースイッチＯＦＳの制御を当該スレーブノードへ順次引き渡すこともできる。この場合、スレーブノードＳ［１］の処理能力を超える可能性が高くなると判断すると、マスタノードＭは、新たな未使用のスレーブノードＳ［ｍ−１］を選択して起動し、負荷が最も大きいオープンフロースイッチＯＦＳ［ｋ］の制御をスレーブノードＳ［ｍ−１］へ引き渡す（ステップＳ３２）。以下同様に、マスタノードＭは、自ノード、スレーブノードＳ［１］およびＳ［ｍ−１］の負荷状況をモニタしながら、マスタノードＭおよび現在使用中のスレーブノードの制御負荷が処理能力を超える可能性が高くなれば、さらに別の未使用スレーブノードを起動し、負荷の大きいオープンフロースイッチＯＦＳの制御を新たなスレーブノードへ引き渡す。
【００１９】
逆にマスタノードＭの制御負荷が十分低くなれば、マスタノードＭは、使用中のスレーブノードの中から最も小さい負荷で動作しているスレーブノードを選択し、選択されたスレーブノードのオープンフロースイッチ制御を処理する余裕があれば、その制御を引き継ぎ、当該選択されたスレーブノードをシャットダウンする（ステップＳ３３、Ｓ３４）。未使用のスレーブノードをシャットダウンすることで制御プレーンの電力消費量が低減する。
【００２０】
このように分散型コントローラクラスタ１０で動作するスレーブノードの数を負荷状況に応じて増減させることにより、制御能力を低下させることなく制御プレーンの電力消費量を削減することができる。
【００２１】
３．クラスタノードの機能構成
図３に示すように、マスタノードＭは、オープンフロースイッチを制御するオープンフローコントローラ１０１と管理情報を格納する管理データベース１０２とを有し、さらにマスタノードＭの動作を制御するノード制御部１０３、オープンフローコントローラ１０１の負荷を監視する負荷モニタ１０４および動的なクラスタ構成を実行するクラスタ構成制御部１０５をそれぞれ機能的に備えている。負荷モニタ１０４はオープンフローコントローラ１０１の制御負荷を定期的に検出し、その平均値および増減傾向などから将来の予測負荷を負荷情報として生成してもよい。クラスタ構成制御部１０５は、所定の再構成しきい値Ｈｉｇｈ−ＴＨを予め格納し、後述するクラスタ構成機能およびオープンフロースイッチの制御のスレーブノードへの引渡しおよび引継ぎ機能を有する。再構成しきい値Ｈｉｇｈ−ＴＨは、マスタノードＭのオープンフローコントローラ１０１の処理能力に依存して予め決定された値である。
【００２２】
なお、通信機能の図示は省略されている。またオープンフローコントローラ１０１、ノード制御部１０３、負荷モニタ１０４およびクラスタ構成制御部１０５のそれぞれの機能は、図示しないメモリに格納されたプログラムをコンピュータ（プログラム制御プロセッサ）上で実行することにより実現することができる。
【００２３】
スレーブノードＳ［ｉ］（ｉ＝１，２，・・・ｍ−１）は、オープンフロースイッチを制御するオープンフローコントローラ２０１とローカルに使用される情報を格納する管理データベース２０２とを有し、さらにスレーブノードの動作を制御するノード制御部２０３と、オープンフローコントローラ２０１の負荷を監視する負荷モニタ２０４と、マスタノードＭとの間でオープンフロースイッチ制御の引継ぎ／引渡しを制御するテイクオーバ制御部２０５とをそれぞれ機能的に備えている。負荷モニタ２０４はオープンフローコントローラ２０１の制御負荷を定期的に検出し、その平均値および増減傾向などから将来の予測負荷を負荷情報として生成してもよい。各スレーブノードのノード制御部２０３は自ノードの負荷情報をマスタノードＭへ定期的に報告する。なお、通信機能の図示は省略されている。またオープンフローコントローラ２０１、ノード制御部２０３、負荷モニタ２０４、およびテイクオーバ制御部２０５のそれぞれの機能は、図示しないメモリに格納されたプログラムをコンピュータ（プログラム制御プロセッサ）上で実行することにより実現することができる。
【００２４】
マスタノードＭのクラスタ構成制御部１０５は、全ての使用可能なスレーブノードと使用中のスレーブノードとを管理しており、負荷モニタ１０４からの自ノード負荷情報と使用中のスレーブノードからそれぞれ受信した負荷情報とを監視しながら、選択したスレーブノードとの間で制御信号のやりとりおよびデータベース情報の引継ぎなどを行う。以下、マスタノードＭによるクラスタ構成制御について説明する。
【００２５】
４．クラスタ構成制御
図４において、マスタノードＭのクラスタ構成制御部１０５は、全ての使用可能なスレーブノード数（ｍ−１）と現在使用中のスレーブノードの数および識別情報とを管理し、負荷モニタ１０４により検出された負荷情報ＷＬ（ｍａｓ）と使用中のスレーブノードからそれぞれ受信した負荷情報ＷＬ（Ｓ［・］）とを定期的に監視する（ステップ３０１）。負荷情報が取得されると、クラスタ構成制御部１０５はマスタノードＭの負荷情報ＷＬ（ｍａｓ）が再構成しきい値Ｈｉｇｈ−ＴＨを超えているか否かを判断する（ステップ３０２）。
【００２６】
４．１）スレーブノードの追加
負荷情報ＷＬ（ｍａｓ）が再構成しきい値Ｈｉｇｈ−ＴＨを超えている場合（ステップ３０２のＹＥＳ）、クラスタ構成制御部１０５は現在使用中のスレーブノード数が全スレーブノード数ｍ−１未満かどうかにより未使用スレーブノードの有無を判断する（ステップ３０３）。
【００２７】
未使用スレーブノードが存在すれば（ステップ３０３のＹＥＳ）、１つの未使用スレーブノードＳ［ｐ］を選択して起動する（ステップ３０４）。たとえば、クラスタ構成制御部１０５は、未使用スレーブノードＳ［ｐ］を起動するために、wake-on-LANマジックパケットをスレーブノードＳ［ｐ］へ送信する。スレーブノードＳ［ｐ］のノード制御部２０３は、wake-on-LANマジックパケットを受信すると、テイクオーバ制御部２０５を起動し、マスタノードＭからのオープンフロースイッチ制御の引継ぎを開始する。クラスタ構成制御部１０５はＩＣＭＰエコーパケットを送信し、その応答をスレーブノードＳ［ｐ］から受信することで、スレーブノードＳ［ｐ］が正常に起動したことを確認する。正常に起動したことを確認すると、クラスタ構成制御部１０５はスレーブノードＳ［ｐ］との間にＴＣＰコネクションを確立し、このＴＣＰコネクションに基づくパス解決やトポロジサービスのような上位レイヤアプリケーションを起動する。
【００２８】
スレーブノードＳ［ｐ］を起動すると、クラスタ構成制御部１０５は、オープンフローコントローラ１０１が現在制御しているオープンフロースイッチのうち最も負荷が高いもの（ＯＦＳ［ｊ］とする。）を選択し、そのセキュアチャネルを切断するとともに（ステップ３０５）、スレーブノードＳ［ｐ］に対してオープンフロースイッチＯＦＳ［ｊ］とのセキュアチャネルの接続を指示する（ステップ３０６）。そして、クラスタ構成制御部１０５は当該スレーブノードＳ［ｐ］を「使用中」に設定する。こうして、スレーブノードＳ［ｐ］のテイクオーバ制御部２０５はオープンフロースイッチＯＦＳ［ｊ］の制御をマスタノードＭから引き継ぐ。未使用スレーブノードが存在しなかった場合（ステップ３０３のＮＯ）あるいはオープンフロースイッチＯＦＳ［ｊ］の制御の引継ぎが完了すれば、クラスタ構成制御部１０５は処理を終了する。
【００２９】
４．２）スレーブノードの排除
負荷情報ＷＬ（ｍａｓ）が再構成しきい値Ｈｉｇｈ−ＴＨ以下である場合（ステップ３０２のＮＯ）、クラスタ構成制御部１０５は、使用中のスレーブノードから報告された負荷情報を参照して、最も負荷が小さいスレーブノードＳ［ｑ］を選択する（ステップ３０８）。続いて、クラスタ構成制御部１０５は、現在の負荷情報ＷＬ（ｍａｓ）にスレーブノードＳ［ｑ］の負荷情報ＷＬ（Ｓ［ｑ］）を加えた結果が再構成しきい値Ｈｉｇｈ−ＴＨより小さいか否かを判断する（ステップ３０９）。ＷＬ（ｍａｓ）＋ＷＬ（Ｓ［ｑ］）＜Ｈｉｇｈ−ＴＨであれば（ステップ３０９のＹＥＳ）、クラスタ構成制御部１０５は、スレーブノードＳ［ｑ］が制御している全てのオープンフロースイッチ（ＯＦＳ［ｋ］とする。）のセキュアチャネルを切断すると共に（ステップ３１０）、マスタノードＭのオープンコントローラ１０１とオープンフロースイッチＯＦＳ［ｋ］とのセキュアチャネルを接続する（ステップ３１１）。そして、クラスタ構成制御部１０５は、スレーブノードＳ［ｑ］に関する全てのアプリケーションを終了し、当該スレーブノードＳ［ｑ］へシャットダウン指示を送信し、ＩＣＭＰエコーパケットに対する応答がないことを確認して「未使用」に設定する（ステップ３１２）。
【００３０】
こうして、マスタノードＭは、自身の処理能力に余裕があれば、最小負荷で動作しているスレーブノードからオープンフロースイッチの制御を引き継ぎ、当該スレーブノードをシャットダウンすることで制御プレーンの消費電力を削減することができる。スレーブノードのシャットダウンが完了した場合、あるいはＷＬ（ｍａｓ）＋ＷＬ（Ｓ［ｑ］）がＨｉｇｈ−ＴＨ以上である場合（ステップ３０９のＮＯ）、クラスタ構成制御部１０５は処理を終了する。
【００３１】
なお、マスタノードＭのデータベース１０２と各スレーブノードＳ［ｉ］のデータベース２０２とは同期するように互いに更新される。すなわち、スレーブノードＳ［ｉ］のデータベース２０２において新たなフローエントリの生成あるいは既存のフローエントリの変更があれば、マスタノードＭのデータベース１０２に反映される。逆に、マスタノードＭのデータベース１０２において新たなフローエントリの生成あるいは既存のフローエントリの変更があれば、スレーブノードＳ［ｉ］のデータベース２０２に反映される。
【００３２】
５．効果
上述したように、本実施形態によれば、マスタノードＭが、自ノードの制御負荷に応じて、任意のスレーブノードの起動／シャットダウン、当該スレーブノードへのオープンフロースイッチ制御の引渡しあるいは当該スレーブノードからの引継ぎを動的に実行する。すなわち、分散型コントローラクラスタ１０で動作するスレーブノードの数を負荷状況に応じて増減させることにより、制御能力を低下させることなく制御プレーンの電力消費量を削減することができる。
【００３３】
６．他の実施形態
上述した実施形態では、図３に示すように、クラスタ構成制御部１０５がマスタノードＭに設けられているが、本発明はこれに限定されるものではない。他の実施形態として、クラスタ構成制御部１０５の機能を同じクラスタ内でクラスタノードとは別個のノードに設けることも可能である。その場合、クラスタ構成制御ノードとマスタノードＭとの間の通信を除けば、基本的動作は上述した実施形態と同様である。
【００３４】
７．付記
上述した実施形態の一部あるいは全部は、以下の付記のようにも記載されうるが、これらに限定されるものではない。
（付記１）
複数の制御ノードを有し、少なくとも１つの制御ノードがパケットハンドリング規則を送信することで複数のスイッチ装置の各々を制御する制御システムの構成制御装置であって、
少なくとも１つのスイッチ装置を制御している使用中の制御ノードの負荷を監視する監視手段と、
前記監視結果である負荷情報に基づいて制御ノードの使用数を変化させる制御手段と、
を有することを特徴とする構成制御装置。
（付記２）
前記制御手段は、前記複数の制御ノードのうちの１つの制御ノードの負荷情報に基づいて、それ以外の制御ノードの使用数を変化させることを特徴とする付記１に記載の構成制御装置。
（付記３）
前記１つの制御ノードは常時使用中のノンストップノードであることを特徴とする付記２に記載の構成制御装置。
（付記４）
前記制御手段は、前記１つの制御ノードの負荷情報が所定負荷基準より高くなると、未使用の制御ノードを起動させ、当該起動された制御ノードが前記１つの制御ノードから少なくとも１つのスイッチ装置の制御を引き継ぐように制御することを特徴とする付記２または３に記載の構成制御装置。
（付記５）
前記制御手段は、前記１つの制御ノードの負荷情報が所定負荷基準より低くなると、前記１つの制御ノードが使用中の制御ノードから少なくとも１つのスイッチ装置の制御を引き継ぎ、当該使用中の制御ノードをシャットダウンするように制御する、ことを特徴とする付記２−４のいずれか１項に記載の構成制御装置。
（付記６）
複数の制御ノードを有し、少なくとも１つの制御ノードがパケットハンドリング規則を送信することで複数のスイッチ装置の各々を制御する制御システムであって、
少なくとも１つのスイッチ装置を制御している使用中の制御ノードの負荷を監視する監視手段と、
前記監視結果である負荷情報に基づいて制御ノードの使用数を変化させる制御手段と、
を有することを特徴とする制御システム。
（付記７）
前記監視手段および前記制御手段は、前記複数の制御ノードのうち常時使用中のノンストップノードに設けられていることを特徴とする付記６に記載の制御システム。
（付記８）
前記制御手段は、前記ノンストップノードの負荷情報に基づいて、それ以外の制御ノードの使用数を変化させることを特徴とする付記７に記載の制御システム。
（付記９）
前記制御手段は、前記ノンストップノードの負荷情報が所定負荷基準より高くなると、未使用の制御ノードを起動させ、当該起動された制御ノードが前記ノンストップノードから少なくとも１つのスイッチ装置の制御を引き継ぐように制御することを特徴とする付記７または８に記載の制御システム。
（付記１０）
前記制御手段は、前記ノンストップノードの負荷情報が所定負荷基準より低くなると、前記ノンストップノードが使用中の制御ノードから少なくとも１つのスイッチ装置の制御を引き継ぎ、当該使用中の制御ノードをシャットダウンするように制御する、ことを特徴とする付記７−９のいずれか１項に記載の制御システム。
（付記１１）
複数の制御ノードを有し、少なくとも１つの制御ノードがパケットハンドリング規則を送信することで複数のスイッチ装置の各々を制御する制御システムの構成制御方法であって、
監視手段が少なくとも１つのスイッチ装置を制御している使用中の制御ノードの負荷を監視し、
制御手段が前記監視結果である負荷情報に基づいて制御ノードの使用数を変化させる、
ことを特徴とする構成制御方法。
（付記１２）
前記制御手段が、前記複数の制御ノードのうちの１つの制御ノードの負荷情報に基づいて、それ以外の制御ノードの使用数を変化させることを特徴とする付記１１に記載の構成制御方法。
（付記１３）
前記１つの制御ノードは常時使用中のノンストップノードであることを特徴とする付記１２に記載の構成制御方法。
（付記１４）
前記制御手段が、前記１つの制御ノードの負荷情報が所定負荷基準より高くなると、未使用の制御ノードを起動させ、当該起動された制御ノードが前記１つの制御ノードから少なくとも１つのスイッチ装置の制御を引き継ぐように制御することを特徴とする付記１２または１３に記載の構成制御方法。
（付記１５）
前記制御手段が、前記１つの制御ノードの負荷情報が所定負荷基準より低くなると、前記１つの制御ノードが使用中の制御ノードから少なくとも１つのスイッチ装置の制御を引き継ぎ、当該使用中の制御ノードをシャットダウンするように制御する、ことを特徴とする付記１２−１４のいずれか１項に記載の構成制御方法。
（付記１６）
複数の制御ノードを有し、少なくとも１つの制御ノードがパケットハンドリング規則を送信することで複数のスイッチ装置の各々を制御する制御システムの構成制御装置としてコンピュータを機能させるプログラムであって、
監視手段が少なくとも１つのスイッチ装置を制御している使用中の制御ノードの負荷を監視し、
制御手段が前記監視結果である負荷情報に基づいて制御ノードの使用数を変化させる、
ことを特徴とするプログラム。
（付記１７）
前記制御手段が、前記複数の制御ノードのうちの１つの制御ノードの負荷情報に基づいて、それ以外の制御ノードの使用数を変化させることを特徴とする付記１６に記載のプログラム。
（付記１８）
前記１つの制御ノードは常時使用中のノンストップノードであることを特徴とする付記１７に記載のプログラム。
（付記１９）
前記制御手段が、前記１つの制御ノードの負荷情報が所定負荷基準より高くなると、未使用の制御ノードを起動させ、当該起動された制御ノードが前記１つの制御ノードから少なくとも１つのスイッチ装置の制御を引き継ぐように制御することを特徴とする付記１７または１８に記載のプログラム。
（付記２０）
前記制御手段が、前記１つの制御ノードの負荷情報が所定負荷基準より低くなると、前記１つの制御ノードが使用中の制御ノードから少なくとも１つのスイッチ装置の制御を引き継ぎ、当該使用中の制御ノードをシャットダウンするように制御する、ことを特徴とする付記１７−１９のいずれか１項に記載のプログラム。
（付記２１）
付記１−５のいずれか１項に記載の構成制御装置を備えた制御ノード。
【産業上の利用可能性】
【００３５】
本発明はソフトウエアネットワーキング（ＳＤＮ）における分散型制御プレーンの制御システムに適用可能である。
【符号の説明】
【００３６】
１０  分散型コントローラクラスタ
２０  セキュアチャネル
１０１  オープンフローコントローラ
１０２  データベース
１０３  ノード制御部
１０４  負荷モニタ
１０５  クラスタ構成制御部
２０１  オープンフローコントローラ
２０２  データベース
２０３  ノード制御部
２０４  負荷モニタ
２０５  テイクオーバ制御部
ＣＮ  クラスタノード
Ｍ  マスタノード
Ｓ  スレーブノード
ＯＦＳ  オープンフロースイッチ
【図１】
0005910811.tif 000002
【図２】
0005910811.tif 000003
【図３】
0005910811.tif 000004
【図４】
0005910811.tif 000005