(57)【要約】      （修正有）【課題】マルチテナントソフトウェア定義ネットワーク（ＳＤＮ）環境において、フローテーブルリソースを管理する。【解決手段】ソフト分割リソースマネージャは、３つのモジュールを含む。ＳＰＲＭ管理モジュールは、ハイブリッドモード切替モジュールを含み、管理プロセスにおいて、２つのモードのハイブリッド処理を用いる。また、最低使用頻度−部分タイムアウトリセット（ＬＲＵ−ＰＴＲ）実行モジュールを含み、フローエントリを分割することによって、スイッチから自動的に送信されたフローエントリのアイドル状態に応じて、置換する必要のある対象を選択する。さらに、テナントリソース動的上限値設定モジュールを含み、各々のテナントの使用量の動的上限値を設定する。【選択図】図３
2018137746.tif 000002
【特許請求の範囲】
【請求項１】
マルチテナントソフトウェア定義ネットワークにおける仮想ネットワークのフローテーブル動的分割システムであって、前記システムは、前記ソフトウェア定義ネットワーク環境において、オープンフロースイッチを用いてフローテーブルリソースを分割することによって、マルチテナント仮想ネットワークサービスシステムを提供するように構成され、前記マルチテナントソフトウェア定義ネットワークにおける仮想ネットワークのフローテーブル動的分割システムのシステム構成は、
管理プレーンを備え、前記管理プレーンは、リソースを管理するプレーンとして構成され、テナント管理インターフェイスと、ルート管理インターフェイスと、ソフト分割リソースマネージャ管理モジュールとを含み、
前記ソフト分割リソースマネージャ管理モジュールは、リソースが利用可能であるか否かをチェックする管理プロセスモジュールとして構成され、テナントリソース動的上限値設定モジュールと、最低使用頻度−部分タイムアウトリセット実行モジュールとを含み、
テナントコントローラを備え、前記テナントコントローラは、各々のテナントが各自のソフトウェア定義ネットワーク環境を管理するように、前記ソフトウェア定義ネットワーク環境において各々のテナントに設けられ、
仲介コントローラを備え、前記仲介コントローラは、前記マルチテナントソフトウェア定義ネットワーク環境内のネットワーク仮想化仲介プレーンとして機能し、基盤となる物理リソースを仮想化し、１つ以上の仮想のソフトウェア定義ネットワーク環境を上層の前記テナントコントローラに提供するように構成され、
前記物理リソースを備え、前記物理リソースは、オープンフロースイッチを含む物理的なネットワークリソースを含み、
ハイブリッドモード切替モジュールを備え、前記ハイブリッドモード切替モジュールは、どの管理プロセスを使用すべきかを判断するモジュールとして構成される、マルチテナントソフトウェア定義ネットワークにおける仮想ネットワークのフローテーブル動的分割システム。
【請求項２】
前記ハイブリッドモード切替モジュールは、
監視プロセスを含み、このプロセスにおいて、前記管理プレーンは、まず、テナントコントローラから送信されたリクエストをチェックし、前記テナントコントローラからのリクエストの可用性を確認してから、前記管理プレーンは、前記テナントコントローラからのリクエストを正しく処理するように前記仲介コントローラに通知するための命令を送信し、
サイドローディングプロセスを含み、このプロセスにおいて、前記管理プレーンは、前記テナントコントローラからのリクエストをサイドローディングしてチェックし、前記リクエストが正当ではないと判断した場合、前記管理プレーンは、事後調整動作を実行するように前記仲介コントローラに通知するための命令を送信する、請求項１に記載のマルチテナントソフトウェア定義ネットワークにおける仮想ネットワークのフローテーブル動的分割システム。
【請求項３】
前記監視プロセスは、テナントコントローラリクエストと、リクエストの転送と、結果の通知と、命令の送信と、命令の実行とを含み、
前記テナントコントローラリクエストは、前記テナントコントローラから前記仲介コントローラに送信され、前記ハイブリッドモード切替モジュールは、前記監視プロセスを実行するか否かを判断し、
前記ハイブリッドモード切替モジュールは、前記監視プロセスを実行すると判断した場合、前記テナントコントローラリクエストを前記ソフト分割リソースマネージャモジュールに転送して前記ソフト分割リソースマネージャモジュールがチェックを実行し、
前記結果の通知において、前記チェックの結果を前記テナント管理インターフェイスに通知すると共に、命令を仲介コントローラに送信し、
最後に、前記命令の実行において、前記仲介コントローラは、前記命令を受信すると、必要な動作を前記物理リソースで実行する、請求項２に記載のマルチテナントソフトウェア定義ネットワークにおける仮想ネットワークのフローテーブル動的分割システム。
【請求項４】
前記サイドローディングプロセスは、テナントコントローラリクエストと、リクエストの転送と、テナントリクエストの実行と、結果の通知と、命令の送信と、命令の実行とを含み、
前記テナントコントローラリクエストが、前記テナントコントローラから前記仲介コントローラに送信され、前記ハイブリッドモード切替モジュールは、前記サイドローディングプロセスを実行するか否かを判断し、
前記ハイブリッドモード切替モジュールは、前記サイドローディングプロセスを実行すると判断した場合、前記テナントコントローラリクエストを前記ソフト分割リソースマネージャモジュールに転送し、前記ソフト分割リソースマネージャモジュールがチェックを実行すると共に、前記テナントコントローラリクエストの実行を介して、前記テナントコントローラリクエストを前記物理リソースで実行し、
前記結果の通知において、前記チェックの結果を前記テナント管理インターフェイスに通知すると共に、命令の送信を介して、調整動作を実行するために必要な命令を前記仲介コントローラに送信し、
前記命令の実行において、前記サイドローディングプロセスの最終の調整動作を実行するために必要な命令、主にフローエントリを削除するための命令を実行し、調整動作を実行する必要がない場合、命令の実行を行わない、請求項２に記載のマルチテナントソフトウェア定義ネットワークにおける仮想ネットワークのフローテーブル動的分割システム。
【請求項５】
前記ソフト分割リソースマネージャ管理モジュールは、リソース残量比較と、テナントのリソース使用量と利用可能なリソース量との比較と、超過使用動的スペース比較と、スペース置換ユーザ設定と、フローエントリ削除命令送信と、フローエントリ設定命令送信と、前記テナントリソース動的上限値設定モジュールと、前記最低使用頻度−部分タイムアウトリセット実行モジュールとを含み、
前記リソース残量比較は、後続処理のために物理リソースに残量があるか否かをチェックするように構成され、肯定の場合、前記物理リソースには利用可能なリソース残量が多くあることを示し、否定の場合、リソース残量が不足であることを示し、
前記テナントのリソース使用量と利用可能なリソース量との比較は、テナントが利用可能なリソース量の下限値を超過使用しているか否かをチェックするよう構成され、肯定の場合、前記テナントが超過使用しているとみなされ、否定の場合、前記テナントが超過使用していないとみなされ、
前記超過使用動的スペース比較は、各テナントが利用可能なリソース量の動的上限値を超過使用しているか否かをチェックよう構成され、肯定の場合、前記スペース置換ユーザを前記ユーザ自身に設定すると共に、前記最低使用頻度−部分タイムアウトリセット実行モジュールを実行することによって、フローエントリを削除するための命令を前記仲介コントローラに送信し、否定の場合、処理を行わず、
前記テナントリソース動的上限値設定モジュールは、設定可能な動的使用量を計算して、テナント一時リソースとして与えるよう構成され、前記リソース残量比較による判定結果が肯定であって且つ前記テナントのリソース使用量と利用可能なリソース量との比較による判定結果が超過使用である場合にのみ使用され、
前記最低使用頻度−部分タイムアウトリセット実行モジュールは、スペースを置換する必要があると判断された場合に使用され、長時間アイドル状態のフローエントリを判定した後、フローエントリを削除するための命令を送信することによって、スペースを解放し、必要に応じて、フローエントリ設定命令送信を介して、現在のリクエストを仲介コントローラに通知することによって、テナントがリクエストしたフローエントリを、解放したスペースに設置する、請求項１に記載のマルチテナントソフトウェア定義ネットワークにおける仮想ネットワークのフローテーブル動的分割システム。
【請求項６】
前記テナントリソース動的上限値設定モジュールは、テナント予約スペース計算と、スペース残量計算と、動的上限値設定とを含み、
前記テナント予約スペース計算は、他のテナントの使用権利を保護するために、他のテナントのために一部のスペースを予約し、およびその後、スペース置換方法を使用する時の負荷を軽減するように構成され、
前記スペース残量計算は、前記テナント予約スペース計算によって各テナントのために予約したスペースの合計を計算し、システムのリソース残量から前記予約スペースの合計を減算することによって、割当可能なスペースを計算するように構成され、
前記動的上限値設定は、前記スペース残量計算の計算結果をテナント下限値に加算することによって、動的上限値を設定するように構成される、請求項５に記載のマルチテナントソフトウェア定義ネットワークにおける仮想ネットワークのフローテーブル動的分割システム。
【請求項７】
前記テナント予約スペース計算方法は、以下のステップを含み、すなわち、
ａ．テナントのリソース現在使用量と利用可能なリソース量とを比較するステップを含み、リソース現在使用量が利用可能なリソース量を超える場合には、前記テナントが超過使用しており、スペースを予約しないが、そうでない場合には、ステップｂに進み、
ｂ．テナントのリソース現在使用量とリソース平均使用量とを比較するステップを含み、ステップａの結果が否定である場合、リソース現在使用量とリソース平均使用量とを比較し、リソース現在使用量がリソース平均使用量を超える場合には、前記テナントが将来的にスペースを必要とすると判断し、予約スペース合理性を比較するステップｄを実行するが、そうでない場合には、ステップｃに進み、リソース平均使用量と利用可能なリソース量とを比較するステップを行い、
ｃ．テナントのリソース平均使用量と利用可能なリソース量とを比較するステップを含み、ステップｂの結果が否定である場合、リソース現在使用量が利用可能なリソース量およびリソース平均使用量よりも小さいと判断し、リソース平均使用量と利用可能なリソース量とを比較し、リソース平均使用量が利用可能なリソース量よりも小さい場合には、リソース平均使用量からリソース現在使用量を減算したリソース量を予約スペースとして設定するが、そうでない場合には、利用可能なリソース量からリソース現在使用量を減算したリソース量を予約スペースとして設定し、
ｄ．予約スペース合理性を比較するステップを含み、ステップｂの結果が肯定である場合には、リソース現在使用量が利用可能なリソース量よりも少なく、且つリソース現在使用量がリソース平均使用量よりも大きいと判断し、この場合、リソース現在使用量からリソース平均使用量を減算したリソース量を予約スペースとして設定すると、利用可能なリソース量を超える可能性があり、不合理であるため、合理性を比較するステップを行い、結果が肯定である場合、利用可能なリソース量からリソース現在使用量を減算したリソース量を予約スペースとして設定し、そうでない場合には、リソース現在使用量からリソース平均使用量を減算したリソース量を予約スペースとして設定する、請求項６に記載のマルチテナントソフトウェア定義ネットワークにおける仮想ネットワークのフローテーブル動的分割システム。
【請求項８】
最低使用頻度−部分タイムアウトリセット実行モジュールにより実行されるステップは、
ａ．フローエントリのアイドル状態を判断するステップを含み、前記仲介コントローラは、前記物理リソースからフローエントリを削除するための情報を受信すると、直ちに現在時間を記録するが、現在時間から前回の更新時間を減算した値が部分アイドル時間削除設定値よりも大きい場合には、フローエントリが使用されたと判断し、フラグをＹＥＳに設定すると共に、更新時間を現在時間に設定し、アイドル時間を部分アイドル時間設定値に設定し、そうでない場合には、更新時間を現在時間に設定し、総アイドル時間に部分アイドル時間設定値を加算し、削除回数に１を加算して、次のステップに進み、
ｂ．総アイドル時間と元のリクエストとを比較するステップを含み、部分アイドル時間削除設定値にステップａの削除回数を乗算した値を初期アイドル時間削除設定値と比較し、乗算した値がアイドル時間初期削除設定値以上である場合には、前記フローエントリが初期アイドル時間に達したと判断して、当該フローエントリを削除し、そうでない場合には、前記フローエントリを前記物理リソースに再設定し、
ｃ．最大アイドル時間を有するフローエントリを選択するステップを含み、データテーブルの全体から、最大アイドル時間を有するフローエントリを置換対象のフローエントリとして選択し、この場合、最低使用頻度アルゴリズムに従って、アイドル時間が最も長いフローエントリを置換する、請求項５に記載のマルチテナントソフトウェア定義ネットワークにおける仮想ネットワークのフローテーブル動的分割システム。
【請求項９】
マルチテナントソフトウェア定義ネットワークにおける仮想ネットワークのフローテーブル動的分割方法であって、
前記分割方法は、前記ソフトウェア定義ネットワーク環境において、オープンフロースイッチを用いてフローテーブルリソースを分割することによって、マルチテナント仮想ネットワークサービスを提供し、
テナントコントローラがリクエストを送信すると、前記分割方法は、ソフト分割リソースマネージャを用いてフローテーブルリソースを管理することによって、各々のテナントの利用可能なリソースの範囲を決定し、後続のリソース解放処理を実行することによって、リソースを共有する、マルチテナントソフトウェア定義ネットワークにおける仮想ネットワークのフローテーブル動的分割方法。
【請求項１０】
前記ソフト分割リソースマネージャは、ソフト分割を用いてリソース管理を行い、ハイブリッドモード切替モジュールを用いて、複数の状態のうち、環境が存在する状態を判断し、テナントリソース動的上限値設定モジュールおよび最低使用頻度−部分タイムアウトリセット実行モジュールを使用するか否かを決定する、請求項９に記載のマルチテナントソフトウェア定義ネットワークにおける仮想ネットワークのフローテーブル動的分割方法。
【請求項１１】
前記ハイブリッドモード切替モジュールは、リソースの使用状況に応じて、複数の管理プロセスから、実行すべき管理プロセスを決定する、請求項１０に記載のマルチテナントソフトウェア定義ネットワークにおける仮想ネットワークのフローテーブル動的分割方法。
【請求項１２】
前記複数の管理プロセスは、
監視プロセスを含み、このプロセスにおいて、前記管理プレーンは、まず、テナントコントローラから送信されたリクエストをチェックし、前記テナントコントローラからの前記リクエストの可用性を確認してから、前記管理プレーンは、前記テナントコントローラからの前記リクエストを正しく処理するように前記仲介コントローラに通知するための命令を送信し、
サイドローディングプロセスを含み、このプロセスにおいて、前記管理プレーンは、前記テナントコントローラからのリクエストをサイドローディングしてチェックし、前記リクエストが正当ではないと判断した場合、前記管理プレーンは、事後調整動作を実行するように前記仲介コントローラに通知するための命令を送信する、請求項１１に記載のマルチテナントソフトウェア定義ネットワークにおける仮想ネットワークのフローテーブル動的分割方法。
【請求項１３】
前記複数の状態は、
テナントが物理リソースを正常に使用しており、物理リソースが十分である状態と、
テナントが物理リソースを超過使用したいが、物理リソースが十分である状態と、
テナントが物理リソースを正常に使用しているが、物理リソースが不十分である状態と、
テナントが物理リソースを超過使用したいが、物理リソースが不十分である状態とを含む、請求項１０に記載のマルチテナントソフトウェア定義ネットワークにおける仮想ネットワークのフローテーブル動的分割方法。
【請求項１４】
テナントが物理リソースを正常に使用しており、物理リソースが十分である状態の場合、テナントが正常に使用され得る前記サイドローディングプロセスを管理プロセスとして使用し、管理プレーンが調整動作を実行しない、請求項１３に記載のマルチテナントソフトウェア定義ネットワークにおける仮想ネットワークのフローテーブル動的分割方法。
【請求項１５】
テナントが物理リソースを超過使用したいが、物理リソースが十分である状態の場合、前記サイドローディングプロセスを用いてテナントリソース動的上限値を設定し、テナントのリソース使用量が前記テナントリソース動的上限値を超えると、当該テナント自身を置換テナントとし、スペース置換処理を実行し、その後、管理プレーンが命令を仲介コントローラに送信し、そうでない場合、テナントが物理リソースを正常に使用する、請求項１３に記載のマルチテナントソフトウェア定義ネットワークにおける仮想ネットワークのフローテーブル動的分割方法。
【請求項１６】
テナントが物理リソースを正常に使用しているが、物理リソースが不十分である状態の場合、前記監視プロセスを用いて、現在最大超過使用率のテナントを置換テナントとし、スペース置換処理を実行する、請求項１３に記載のマルチテナントソフトウェア定義ネットワークにおける仮想ネットワークのフローテーブル動的分割方法。
【請求項１７】
テナントが物理リソースを超過使用したいが、物理リソースが不十分である状態の場合、前記監視プロセスを用いて、当該テナント自身を置換テナントとし、スペース置換処理を実行する、請求項１３に記載のマルチテナントソフトウェア定義ネットワークにおける仮想ネットワークのフローテーブル動的分割方法。
【請求項１８】
前記テナント動的リソース上限値の設定は、動的に変化するように行われ、
テナントの各種情報に従って決定された超過使用率は、前記テナント動的リソース上限値として使用される、請求項１５に記載のマルチテナントソフトウェア定義ネットワークにおける仮想ネットワークのフローテーブル動的分割方法。
【請求項１９】
前記テナント動的リソース上限値の設定における前記テナントの各種情報は、
テナント過去の平均使用状況と、
利用可能なリソース量の下限値と、
リソース現在使用量とを含む、請求項１８に記載のマルチテナントソフトウェア定義ネットワークにおける仮想ネットワークのフローテーブル動的分割方法。
【請求項２０】
前記スペース置換法は、アルゴリズムを用いて、置換されるフローエントリを決定した後、前記フローエントリを削除する、請求項１５に記載のマルチテナントソフトウェア定義ネットワークにおける仮想ネットワークのフローテーブル動的分割方法。
【請求項２１】
置換されるフローエントリを決定するアルゴリズムは、最低使用頻度−部分タイムアウトリセットアルゴリズムであり、
前記アルゴリズムは、各フローエントリのアイドル時間を計算してから、最大アイドル時間を有するフローエントリを、置換されるフローエントリとして選択する、請求項２０に記載のマルチテナントソフトウェア定義ネットワークにおける仮想ネットワークのフローテーブル動的分割方法。
【請求項２２】
各フローエントリのアイドル時間の計算は、アイドルタイムアウト値の分割およびフラグの使用によって、スイッチにフローエントリの状態を自動的に送信させることを含む、請求項２１に記載のマルチテナントソフトウェア定義ネットワークにおける仮想ネットワークのフローテーブル動的分割方法。
【発明の詳細な説明】
【技術分野】
【０００１】
技術分野
本発明は、マルチテナント（Multi-tenant）ソフトウェア定義ネットワーク（Software defined Network、ＳＤＮ）に適用されるメカニズムおよび方法に関する。フローテーブル（flow table）リソースに対して分割管理を行わない場合、リソース競合の問題を引き起こし、その結果、大量のパケットイン（packet_in）イベントが生じてしまい、ネットワーク待ち時間が長くなる。ハード分割方式でフローテーブルリソースを管理する場合、リソースの浪費という問題を引き起こし、その結果、フローテーブルの使用率が減少し、大量のパケットインイベントが生じてしまい、ネットワーク待ち時間が長くなる。本発明の方法は、パケットインを大幅に低減することによって、リソース利用率を向上させることができ、リソース競合の問題を生じさせないものである。
【背景技術】
【０００２】
背景技術
ソフトウェア定義ネットワーク（ＳＤＮ）は、近年に現れてきた新興ネットワークアーキテクチャである。ＳＤＮという概念は、ネットワークのコントロールプレーン（control plane）機能とデータプレーン（data plane）機能を分離し、データプレーンによるパケットの転送において、対応の条件に合致するフローエントリに従って対応の動作を実行することである。しかしながら、フローテーブルリソースには限りがあるため、複数のテナントが同一のフローテーブルを同時に使用すると、リソースの分配管理に問題が生じる可能性がある。
【０００３】
本発明は、マルチテナントＳＤＮネットワークに使用され、フローテーブルリソースを管理するメカニズムを設計する。ＳＤＮネットワーク環境に使用された従来の技術は、主に複数のアプリケーションを用いて、フローテーブルの使用状況を管理する。類似概念が以下の従来の特許技術に記載されている：ＵＳ９０６５７２４（フローテーブルの管理（Managing a flow table））。一方、マルチテナントＳＤＮ環境におけるリソース管理は、主にネットワークトラフィックまたは帯域幅リソースを管理および制御している。フローテーブルに対する管理方法があったとしても、殆どハード分割方式で行われている。しかしながら、ハード分割方式管理は、リソースを浪費するという問題を抱えている。
【０００４】
したがって、上述した一般的方法は、多くの欠点を有し、良い設計ではないため、切迫の改良を行う必要がある。
【０００５】
本発明の発明者らは、上述した一般的方法の様々な欠点を鑑み、これらの方法の切迫の改良を行うために、長年研究に専念した後、マルチテナント（Multi-tenant）ソフトウェア定義ネットワーク（ＳＤＮ）に使用される本発明のリソース動的管理メカニズムの研究開発を成功裏に完成した。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
発明の目的
本発明の目的は、マルチテナントソフトウェア定義ネットワーク（ＳＤＮ）ネットワーク環境のためのリソース管理方法を設計することである。このような環境において、複数のテナントが同一の物理リソースを共有する。複数のユーザは、フローエントリを設定したい場合、仲介コントローラを介して設定しなければならない。しかしながら、物理リソースのフローテーブルのサイズには制限があるため、フローテーブルが満杯になると、仲介コントローラは、後続のリクエストを拒否する。したがって、このリクエストを送信したユーザがフローエントリを設定することができないため、大量のパケットイン（packet_in）が生じてしまい、テナントコントローラに大きな負荷を与え、ネットワーク待ち時間が長くなる。リソースを共有するものの分割せず、かつフローテーブルを満杯にさせた原因が、あるユーザの大量使用によるものであれば、それはリソース占有と呼ばれる。ハード分割方式を使用する場合、多くのリクエストを送信したユーザが空きリソースを使用することができず、リソースを浪費してしまう。本発明の管理メカニズムおよび方法は、これらの問題の両方を解決するように設計されたものである。
【課題を解決するための手段】
【０００７】
発明の内容
上記の本発明の目的を達成するためのマルチテナントソフトウェア定義ネットワーク（ＳＤＮ）リソース管理メカニズムは、仲介コントローラがテナントコントローラリクエストを設定する前に、リクエストを検査モジュールに転送してチェックを行い、テナントに使用されるフローエントリ（flow entry）の使用状況および現在のリソースの利用率に応じて、対応する処理方法を選択する。管理メカニズムによるチェックの後、対応する処理動作を命令として集積し、この命令を仲介コントローラに送信し、物理リソースで実行する。
【０００８】
本発明のマルチテナントソフトウェア定義ネットワーク（ＳＤＮ）リソース管理メカニズムは、３つのモジュールを含み、すなわち、（１）ハイブリッドモード切替モジュールを含み、ソフト分割リソースマネージャ（Soft Partitioning Resource Manager、ＳＰＲＭ）は、管理プロセスにおいて、２つのモードのハイブリッド処理を用いる。監視プロセスは、仲介コントローラがフローエントリをダウンロードする前にチェック処理を実行し、サイドローディングプロセスは、フローエントリ処理の後にリリース処理を実行し、時間の遅延を低減する。（２）最低使用頻度−部分タイムアウトリセット（Least recently used-Partial Timeout Reset、ＬＲＵ−ＰＴＲ）実行モジュールを含み、ＳＰＲＭは、フローエントリを分割することによって、スイッチから自動的に送信されたフローエントリのアイドル状態に応じて、置換する必要のある対象を選択する。（３）テナントリソース動的上限値設定モジュールを含み、ＳＰＲＭは、各々のテナントの使用量の動的上限値を設定する。
【図面の簡単な説明】
【０００９】
【図１】本発明のマルチテナントＳＤＮリソース動的管理メカニズムのシステム構成図である。
【図２】本発明のマルチテナントＳＤＮリソース動的管理メカニズムのハイブリッドモード切替モジュールを示す構成図である。
【図３】本発明のマルチテナントＳＤＮリソース動的管理メカニズムの監視プロセスの動作を示すフローチャートである。
【図４】本発明のマルチテナントＳＤＮリソース動的管理メカニズムのサイドローディングプロセスの動作を示すフローチャートである。
【図５】本発明のマルチテナントＳＤＮリソース動的管理メカニズムのＳＰＲＭ管理モジュールのフローチャートである。
【図６】本発明のマルチテナントＳＤＮリソース動的管理メカニズムのテナントリソース動的上限値設定モジュールのフローチャートである。
【図７】本発明のマルチテナントＳＤＮリソース動的管理メカニズムのテナント予約スペースの計算を示すフローチャートである。
【図８】本発明のマルチテナントＳＤＮリソース動的管理メカニズムのＬＲＵ−ＰＴＲ実行モジュールのフローチャートである。
【発明を実施するための形態】
【００１０】
発明の詳細な説明
本発明は、ソフトウェア定義ネットワーク（Software Defined Network）環境において、オープンフロースイッチ（OpenFlow Switch）を用いてフローテーブルリソースを分割することによって、マルチテナント仮想ネットワーク（multi-tenant virtual network）サービスを提供する分割方法であって、テナントコントローラがリクエストを送信すると、分割方法は、ソフト分割リソースマネージャ（Soft Partitioning Resource Manager、ＳＰＲＭ）を用いてフローテーブルリソースを管理することによって、各々のテナントの利用可能なリソースの範囲を決定し、後続のリソース解放処理を実行することによって、リソースを共有する。
【００１１】
本発明のＳＰＲＭメカニズムは、ソフト分割（Soft Partitioning）を用いてリソース管理を行うメカニズムであり、ハイブリッドモード（Hybrid Mode）切替モジュールを用いて、複数の状態のうち、環境が存在する状態を判断し、テナントリソース動的上限値設定モジュールおよびＬＲＵ−ＰＴＲ実行モジュールを使用するか否かを決定する。ハイブリッドモード切替モジュールは、リソースの使用状況に応じて、複数の管理プロセスから、実行すべき管理プロセスを決定する。
【００１２】
本発明の複数の管理プロセスは、以下を含む：
監視プロセス（In-line mode）：管理プレーンは、まず、テナントコントローラから送信されたリクエストをチェックし、テナントコントローラからのリクエストの可用性を確認してから、管理プレーンは、テナントコントローラからのリクエストを正しく処理するように仲介コントローラに通知するための命令を送信し、
サイドローディングプロセス（Sniff mode）：管理プレーンは、テナントコントローラからのリクエストをサイドローディングしてチェックする。リクエストが正当ではないと判断した場合、管理プレーンは、事後調整動作を実行するように仲介コントローラに通知するための命令を送信する。
【００１３】
さらに、本発明により判断される環境の複数の状態は、以下を含む。
【００１４】
テナントが物理リソースを正常に使用しており、物理リソースが十分である状態。この場合、テナントが正常に使用され得る前記サイドローディングプロセスを管理プロセスとして使用し、管理プレーンが調整動作を実行しない。
【００１５】
テナントが物理リソースを超過使用したいが、物理リソースが十分である状態。この場合、サイドローディングプロセスを用いてテナントリソース動的上限値を設定し、テナントのリソース使用量がテナントリソース動的上限値を超えると、当該テナント自身を置換テナントとし、スペース置換処理を実行し、その後、管理プレーンが命令を仲介コントローラに送信し、そうでない場合、テナントが物理リソースを正常に使用する。
【００１６】
テナントが物理リソースを正常に使用しているが、物理リソースが不十分である状態。この場合、監視プロセスを用いて、現在最大超過使用率のテナントを置換テナントとし、スペース置換処理を実行する。
【００１７】
テナントが物理リソースを超過使用したいが、物理リソースが不十分である状態。この場合、監視プロセスを用いて、当該テナント自身を置換テナントとし、スペース置換処理を実行する。
【００１８】
本発明のテナント動的リソース上限値の設定は、動的に変化するように行われ、テナントの各種情報に従って決定された超過使用率は、テナント動的リソース上限値として使用される。テナントの各種情報は：
テナント過去の平均使用状況と、
利用可能なリソース量の下限値と、
リソース現在使用量とを含む。
【００１９】
本発明のスペース置換法は、アルゴリズムを用いて、置換されるフローエントリを決定した後、このフローエントリを削除する。置換されるフローエントリを決定するアルゴリズムは、最低使用頻度−部分タイムアウトリセット（Least Recently Used-Partial Timeout Reset，LRU-PTR）アルゴリズムである。このアルゴリズムは、各フローエントリのアイドル時間を計算してから、最大アイドル時間を有するフローエントリを、置換されるフローエントリとして選択する。各フローエントリのアイドル時間の計算は、アイドルタイムアウト値（idle_timeout value）の分割およびフラグ（flag）の使用によって、スイッチにフローエントリの状態を自動的に送信させることを含む。
【００２０】
図１を参照して、図１は、本発明のマルチテナントＳＤＮリソース動的管理メカニズムのシステム構成図である。このメカニズムは、管理プレーン１０と、ＳＰＲＭ管理モジュール２０と、テナントコントローラ３０と、仲介コントローラ４０と、物理リソース５０と、ハイブリッドモード切替モジュール６０とを含む。本発明のメカニズムは：
管理プレーン１０を備え、この管理プレーンは、リソースを管理するプレーンとして構成され、テナント管理インターフェイス１０１と、ルート（Root）管理インターフェイス１０２と、ＳＰＲＭ管理モジュール２０とを含み、
ＳＰＲＭ管理モジュール２０を備え、このＳＰＲＭ管理モジュールは、リソースが利用可能であるか否かをチェックする管理プロセスモジュールとして構成され、テナントリソース動的上限値設定モジュール７０と、ＬＲＵ−ＰＴＲ実行モジュール８０とを含み、
テナントコントローラ３０を備え、このテナントコントローラは、各々のテナントが各自のソフトウェア定義ネットワーク環境を管理するように、ソフトウェア定義ネットワーク環境において各々のテナントに設けられ、
仲介コントローラ４０を備え、この仲介コントローラは、マルチテナントソフトウェア定義ネットワーク環境内のネットワーク仮想化仲介プレーンとして機能し、基盤となる物理リソース５０を仮想化し、１つ以上の仮想のソフトウェア定義ネットワークを上層のテナントコントローラ３０に提供するように構成され、
物理リソース５０を備え、この物理リソースは、物理的なネットワークリソースであり、ここではオープンフロー（OpenFlow）スイッチを指し、
ハイブリッドモード切替モジュール６０を備え、このハイブリッドモード切替モジュールは、どの管理プロセスを使用すべきかを判断するモジュールとして構成される。
【００２１】
図２を参照して、ハイブリッドモード切替モジュール６０は、監視プロセス６０１と、サイドローディングプロセス６０２とを含む。リソース使用率が非常に高い場合、監視プロセス６０１を使用するのがより安全である。テナントコントローラ３０から送信されたリクエストを監視プロセス６０１によって管理した後、物理リソース５０でリクエストが実行される。リソース使用率が比較的に低い場合、サイドローディングプロセス６０２を使用することによって、リクエストの遅延時間を低減する。テナントコントローラ３０がリクエストを送信した後、そのリクエストを、サイドローディングプロセス６０２によって管理およびチェックしてから、物理リソース５０で実行する。
【００２２】
図３を参照して、図３は、本発明のマルチテナントＳＤＮリソース動的管理メカニズムの監視プロセス６０１の動作を示すフローチャートである。フローチャートは、テナントコントローラリクエスト（６０１１）と、リクエストの転送（６０１２）と、結果の通知（６０１３）と、命令の送信（６０１４）と、命令の実行（６０１５）とを含む。テナントコントローラリクエスト（６０１１）は、テナントコントローラから仲介コントローラ４０に送信されて、ハイブリッドモード切替モジュール６０は監視プロセス６０１を実行するか否かを判断する。ハイブリッドモード切替モジュール６０は、監視プロセス６０１を実行すると判断した場合、リクエストを転送し（６０１２）、すなわち、テナントコントローラリクエストをＳＰＲＭ管理モジュール２０に転送して、ＳＰＲＭ管理モジュール２０がチェックを実行する。結果の通知（６０１３）において、チェックの結果をテナント管理インターフェイス１０１に通知すると共に、仲介コントローラ４０に命令を送信する（６０１４）。最後に、命令の実行（６０１５）において、仲介コントローラ４０は命令を受信すると、必要な動作を物理リソース５０で実行する。
【００２３】
図４を参照して、図４は、本発明のマルチテナントＳＤＮリソース動的管理メカニズムのサイドローディングプロセス６０２の動作を示すフローチャートである。フローチャートは、テナントコントローラリクエスト（６０２１）と、リクエストの転送（６０２２）と、テナントリクエストの実行（６０２３）と、結果の通知（６０２４）と、命令の送信（６０２５）と、命令の実行（６０２６）とを含む。
【００２４】
テナントコントローラリクエスト（６０２１）がテナントコントローラから仲介コントローラ４０に送信され、ハイブリッドモード切替モジュール６０は、サイドローディングプロセス６０２を実行するか否かを判断する。
【００２５】
ハイブリッドモード切替モジュールは、サイドローディングプロセス６０２を実行すると判断した場合、リクエストを転送し（６０２２）、すなわち、リクエストをＳＰＲＭ管理モジュール２０に転送し、ＳＰＲＭ管理モジュール２０がチェックを実行すると共に、テナントリクエストの実行（６０２３）を介して、テナントコントローラリクエスト（６０２１）を物理リソース５０で実行する。
【００２６】
結果の通知（６０２４）において、チェックの結果をテナント管理インターフェイス１０１に通知すると共に、命令の送信（６０２５）を介して、調整動作を実行するために必要な命令を仲介コントローラ４０に送信する。
【００２７】
命令の実行（６０２６）において、サイドローディングプロセス６０２の最終の調整動作を実行するために必要な命令、主にフローエントリを削除するための命令を実行する。調整動作を実行する必要がない場合、命令の実行（６０２６）を行わない。
【００２８】
図５を参照して、図５は、本発明のマルチテナントＳＤＮリソース動的管理メカニズムのＳＰＲＭ管理モジュール２０のフローチャートである。ＳＰＲＭ管理モジュール２０は、リソース残量比較２０１と、テナントのリソース使用量と利用可能なリソース量との比較２０２と、超過使用動的スペース比較２０３と、スペース置換ユーザ設定２０４と、フローエントリ削除命令送信２０５と、フローエントリ設定命令送信２０６と、テナントリソース動的上限値設定モジュール７０と、ＬＲＵ−ＰＴＲ実行モジュール８０とを含む。
【００２９】
リソース残量比較２０１は、後続処理のために物理リソースに残量があるか否かをチェックするように構成され、肯定の場合、物理リソース５０には利用可能なリソース残量が多くあることを示し、否定の場合、リソース残量が不足であることを示す。
【００３０】
テナントのリソース使用量と利用可能なリソース量との比較２０２は、テナントのリソース使用量が利用可能なリソース量の下限値を超過しているか否かをチェックするように構成され、肯定の場合、テナントが超過使用しているとみなされ、否定の場合、テナントが超過使用していないとみなされる。
【００３１】
超過使用動的スペース比較２０３は、テナントが利用可能なリソース量の動的上限値を超過使用しているか否かをチェックするように構成され、肯定の場合、スペース置換ユーザをユーザ自身に設定する（２０４）と共に、ＬＲＵ−ＰＴＲ実行モジュール８０を実行することによって、フローエントリを削除するための命令を仲介コントローラ４０に送信（２０５）し、否定の場合、処理を行わない。
【００３２】
テナントリソース動的上限値設定モジュール７０は、設定可能な動的使用量を計算して、テナント一時リソースとして与えるが、テナントリソース動的上限値設定モジュール７０は、リソース残量比較２０１による判定結果が肯定であって且つ、テナントのリソース使用量と利用可能なリソース量との比較２０２による判定結果が超過使用である場合にのみ使用される。
【００３３】
ＬＲＵ−ＰＴＲ実行モジュール８０は、スペースを置換する必要があると判断された場合に使用され、長時間アイドル状態のフローエントリを判定し、フローエントリ削除命令送信（２０５）によって、スペースを解放し、必要に応じて、フローエントリ設定命令送信（２０６）を介して、現在のリクエストを仲介コントローラ４０に通知することによって、テナントがリクエストしたフローエントリを、解放したスペースに設定する。
【００３４】
図６を参照して、図６は、本発明のマルチテナントＳＤＮリソース動的管理メカニズムのテナントリソース動的上限値設定モジュール７０のフローチャートである。テナントリソース動的上限値設定モジュール７０は、テナント予約スペース計算７０１と、スペース残量計算７０２と、動的上限値設定７０３とを含む。
【００３５】
テナント予約スペース計算７０１は、他のテナントの使用権利を保護するために、他のテナントのために一部のスペースを予約し、およびその後、スペース置換方法を使用する時の負荷を軽減するように構成される。
【００３６】
スペース残量計算７０２は、テナント予約スペース計算７０１によって各テナントのために予約したスペースの合計を計算し、システムのリソース残量から予約スペースの合計を減算することによって、割当可能なスペースを計算するように構成される。
【００３７】
動的上限値設定７０３は、スペース残量計算７０２の計算結果をテナント下限値に加算することによって、動的上限値を設定するように構成される。
【００３８】
本発明は、主に、テナントが物理リソースを超過使用したいが、物理リソースが十分である場合、リソースの浪費を避けるために、動的上限値を設定して、リソースを超過使用したいテナントに動的上限値を提供する。この動的上限値は、テナントがリクエストを送信するたびに、システムの現在状況に基づいて変更されて、リソースの利用率を向上させる。
【００３９】
図７を参照して、本発明のマルチテナントＳＤＮに適用されたリソース動的管理メカニズムのテナント予約スペース計算７０１の方法は、以下のステップを含み、すなわち、
ａ．テナントのリソース現在使用量と利用可能なリソース量とを比較するステップ（７０１１）を含み、テナントのリソース現在使用量が利用可能なリソース量を超える場合には、テナントが超過使用しており、スペースを予約しないが、そうでない場合には、ステップｂに進み、
ｂ．テナントのリソース現在使用量とリソース平均使用量とを比較するステップ（７０１２）を含み、ステップａの結果が否定である場合、リソース現在使用量とリソース平均使用量とを比較する。リソース現在使用量がリソース平均使用量を超える場合には、テナントが将来的にスペースを必要とすると判断し、ｄ）予約スペース合理性を比較するステップ（７０１４）を実行するが、そうでない場合には、ステップｃに進んで、リソース平均使用量と利用可能なリソース量とを比較するステップ（７０１３）を実行し、
ｃ．テナントのリソース平均使用量と利用可能なリソース量とを比較するステップ（７０１３）を含み、ステップｂの結果が否定である場合、リソース現在使用量が利用可能なリソース量およびリソース平均使用量よりも小さいと判断し、リソース平均使用量と利用可能なリソース量とを比較する。リソース平均使用量が利用可能なリソース量よりも小さい場合には、リソース平均使用量からリソース現在使用量を減算したリソース量を予約スペースとして設定するが、そうでない場合には、利用可能なリソース量からリソース現在使用量を減算したリソース量を予約スペースとして設定し、
ｄ．予約スペース合理性を比較するステップ（７０１４）を含み、ステップｂの結果が肯定である場合には、リソース現在使用量が利用可能なリソース量よりも少なく、且つリソース現在使用量が平均使用量よりも大きいと判断する。この場合、リソース現在使用量からリソース平均使用量を減算したリソース量を予約スペースとして設定すると、利用可能なリソース量を超える可能性があり、不合理である。したがって合理性を比較するステップを行い、結果が肯定である（元の利用可能なリソース量を超える）場合には、利用可能なリソース量からリソース現在使用量を減算したリソース量を予約スペースとして設定し、そうでない場合には、リソース現在使用量からリソース平均使用量を減算したリソース量を予約スペースとして設定する。
【００４０】
図８を参照して、図８は、本発明のマルチテナントＳＤＮリソース動的管理メカニズムのＬＲＵ−ＰＴＲ実行モジュール８０のフローチャートである。このフローチャートは、
ａ．フローエントリのアイドル状態を判断するステップ（８０１）を含み、仲介コントローラ４０は、物理リソースからフローエントリを削除するための情報を受信すると、直ちに現在時間を記録する。現在時間から前回の更新時間を減算した値が部分アイドル時間削除設定値よりも大きい場合には、フローエントリが使用されたと判断し、フラグをＹＥＳに設定すると共に、更新時間を現在時間に設定し、アイドル時間を部分アイドル時間設定値に設定し、そうでない場合には、更新時間を現在時間に設定し、総アイドル時間に部分アイドル時間設定値を加算し、削除回数に１を加算して、次のステップに進み、
ｂ．総アイドル時間と元のリクエストとを比較するステップ（８０２）を含み、部分アイドル時間削除設定値にステップａの削除回数を乗算した値を初期アイドル時間削除設定値と比較し、乗算した値が初期アイドル時間削除設定値以上である場合には、フローエントリが初期アイドル時間に達したと判断して、当該フローエントリを削除し、そうでない場合には、フローエントリを物理リソースに再設定し、
ｃ．最大アイドル時間を有するフローエントリを選択するステップ（８０３）を含み、データテーブルの全体から、最大アイドル時間を有するフローエントリを置換対象のフローエントリとして選択する。この場合、ＬＲＵアルゴリズムに従って、アイドル時間が最も長いフローエントリを置換する。
【００４１】
特徴および効果
マルチテナントソフトウェア定義ネットワークに適用された従来の技術は、主に帯域幅の管理またはハード分割管理によって、リソースの割り当てを行うため、ハード分割によってフローテーブルを管理する時に生じたリソースの浪費の影響を考慮せず、テナントのネットワーク効率に影響を与えてしまう。本発明のマルチテナントＳＤＮ管理メカニズムは、他の一般的技術に比べて、いくつかの利点を有する。詳しくは、
ａ．本発明は、ハイブリッドモード切替モジュールを使用することによって、大量のリクエストを実行する時の遅延を低減することができる。
【００４２】
ｂ．本発明は、テナントリソース動的上限値設定モジュール使用することによって、フローテーブルのリソース利用率を増加することができる。
【００４３】
ｃ．本発明は、ＬＲＵ−ＰＴＲ実行モジュールを使用することによって、テナントリクエストの拒否回数を減らし、ネットワーク待ち時間を大幅に低減することができる。
【００４４】
上記の詳細な説明において、本発明の可能な実施形態を詳しく説明したが、これらの実施形態は、本発明の範囲を限定することを意図しておらず、本発明の技術的思想から逸脱することなく行われた全ての他の実施例または同等の変更例は、本発明の範囲に含まれるべきである。
【符号の説明】
【００４５】
１０  管理プレーン
２０  ＳＰＲＭ管理モジュール
３０  テナントコントローラ
４０  仲介コントローラ
５０  物理リソース
６０  ハイブリッドモード切替モジュール
７０  テナントリソース動的上限値設定モジュール
８０  ＬＲＵ−ＰＴＲ実行モジュール
１０１  テナント管理インターフェイス
１０２  ルート(Root)管理インターフェイス
２０１  リソース残量の比較
２０２  テナントのリソース使用量と利用可能なリソース量との比較
２０３  超過使用動的スペースの比較
２０４  スペース置換ユーザの設定
２０５  フローエントリを削除するための命令の送信
２０６  フローエントリを設定するための命令の送信
６０１  監視プロセス
６０２  サイドローディングプロセス
６０１１  テナントコントローラリクエスト
６０１２  リクエストの転送
６０１３  結果の通知
６０１４  命令の送信
６０１５  命令の実行
６０２１  テナントコントローラリクエスト
６０２２  リクエストの転送
６０２３  テナントリクエストの実行
６０２４  結果の通知
６０２５  命令の送信
６０２６  命令の実行
７０１  テナント予約スペースの計算
７０２  スペース残量の計算
７０３  動的上限値の設定
７０１１  テナント現在使用量と利用可能なリソース量との比較
７０１２  テナント現在使用量と平均使用量との比較
７０１３  テナント平均使用量と利用可能なリソース量との比較
７０１４  予約スペース合理性の比較
８０１  フローエントリのアイドル状態の判断
８０２  総アイドル時間と元のリクエストとの比較
８０３  最大アイドル時間を有するフローエントリの選択
【図１】
2018137746.tif 000003
【図２】
2018137746.tif 000004
【図３】
2018137746.tif 000005
【図４】
2018137746.tif 000006
【図５】
2018137746.tif 000007
【図６】
2018137746.tif 000008
【図７】
2018137746.tif 000009
【図８】
2018137746.tif 000010