(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6574500
(24)【登録日】2019年8月23日
(45)【発行日】2019年9月11日
(54)【発明の名称】マルチテナントソフトウェア定義ネットワークにおける仮想ネットワークのフローテーブル動的分割システムおよび方法
(51)【国際特許分類】
H04L 12/717 20130101AFI20190902BHJP
H04L 12/729 20130101ALI20190902BHJP
【FI】
H04L12/717
H04L12/729
【請求項の数】18
【全頁数】16
(21)【出願番号】特願2018-26660(P2018-26660)
(22)【出願日】2018年2月19日
(65)【公開番号】特開2018-137746(P2018-137746A)
(43)【公開日】2018年8月30日
【審査請求日】2018年2月19日
(31)【優先権主張番号】106106075
(32)【優先日】2017年2月23日
(33)【優先権主張国】TW
(73)【特許権者】
【識別番号】501027245
【氏名又は名称】中華電信股▲分▼有限公司
(74)【代理人】
【識別番号】110001195
【氏名又は名称】特許業務法人深見特許事務所
(72)【発明者】
【氏名】林 盈 達
(72)【発明者】
【氏名】陳 建 豪
(72)【発明者】
【氏名】劉 徳 隆
(72)【発明者】
【氏名】頼 源 正
(72)【発明者】
【氏名】朱 ▲ユ▼ 煌
(72)【発明者】
【氏名】王 耀 駿
(72)【発明者】
【氏名】劉 景 豊
【審査官】
鈴木 肇
(56)【参考文献】
【文献】
国際公開第2014/098117(WO,A1)
【文献】
国際公開第2013/133400(WO,A1)
【文献】
国際公開第2016/013200(WO,A1)
【文献】
特開2015−204614(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 12/00−12/26
H04L 12/44−12/955
(57)【特許請求の範囲】
【請求項1】
マルチテナントソフトウェア定義ネットワークにおける仮想ネットワークのフローテーブル動的分割システムであって、前記システムは、前記ソフトウェア定義ネットワーク環境において、オープンフロースイッチを用いてフローテーブルリソースを分割することによって、マルチテナント仮想ネットワークサービスシステムを提供するように構成され、前記マルチテナントソフトウェア定義ネットワークにおける仮想ネットワークのフローテーブル動的分割システムのシステム構成は、
管理プレーンを備え、前記管理プレーンは、リソースを管理するプレーンとして構成され、テナント管理インターフェイスと、ルート管理インターフェイスと、ソフト分割リソースマネージャ管理モジュールとを含み、
前記ソフト分割リソースマネージャ管理モジュールは、リソースが利用可能であるか否かをチェックする管理プロセスモジュールとして構成され、テナントリソース動的上限値設定モジュールと、最低使用頻度−部分タイムアウトリセット実行モジュールとを含み、
テナントコントローラを備え、前記テナントコントローラは、各々のテナントが各自のソフトウェア定義ネットワーク環境を管理するように、前記ソフトウェア定義ネットワーク環境において各々のテナントに設けられ、
仲介コントローラを備え、前記仲介コントローラは、前記マルチテナントソフトウェア定義ネットワーク環境内のネットワーク仮想化仲介プレーンとして機能し、基盤となる物理リソースを仮想化し、1つ以上の仮想のソフトウェア定義ネットワーク環境を上層の前記テナントコントローラに提供するように構成され、
前記物理リソースを備え、前記物理リソースは、オープンフロースイッチを含む物理的なネットワークリソースを含み、
ハイブリッドモード切替モジュールを備え、前記ハイブリッドモード切替モジュールは、どの管理プロセスを使用すべきかを判断するモジュールとして構成される、マルチテナントソフトウェア定義ネットワークにおける仮想ネットワークのフローテーブル動的分割システム。
【請求項2】
前記ハイブリッドモード切替モジュールは、
監視プロセスを含み、このプロセスにおいて、前記管理プレーンは、まず、テナントコントローラから送信されたリクエストをチェックし、前記テナントコントローラからのリクエストの可用性を確認してから、前記管理プレーンは、前記テナントコントローラからのリクエストを正しく処理するように前記仲介コントローラに通知するための命令を送信し、
サイドローディングプロセスを含み、このプロセスにおいて、前記管理プレーンは、前記テナントコントローラからのリクエストをサイドローディングしてチェックし、前記リクエストが正当ではないと判断した場合、前記管理プレーンは、事後調整動作を実行するように前記仲介コントローラに通知するための命令を送信する、請求項1に記載のマルチテナントソフトウェア定義ネットワークにおける仮想ネットワークのフローテーブル動的分割システム。
【請求項3】
前記監視プロセスは、テナントコントローラリクエストと、リクエストの転送と、結果の通知と、命令の送信と、命令の実行とを含み、
前記テナントコントローラリクエストは、前記テナントコントローラから前記仲介コントローラに送信され、前記ハイブリッドモード切替モジュールは、前記監視プロセスを実行するか否かを判断し、
前記ハイブリッドモード切替モジュールは、前記監視プロセスを実行すると判断した場合、前記テナントコントローラリクエストを前記ソフト分割リソースマネージャ管理モジュールに転送して前記ソフト分割リソースマネージャ管理モジュールがチェックを実行し、
前記結果の通知において、前記チェックの結果を前記テナント管理インターフェイスに通知すると共に、命令を仲介コントローラに送信し、
最後に、前記命令の実行において、前記仲介コントローラは、前記命令を受信すると、必要な動作を前記物理リソースで実行する、請求項2に記載のマルチテナントソフトウェア定義ネットワークにおける仮想ネットワークのフローテーブル動的分割システム。
【請求項4】
前記サイドローディングプロセスは、テナントコントローラリクエストと、リクエストの転送と、テナントリクエストの実行と、結果の通知と、命令の送信と、命令の実行とを含み、
前記テナントコントローラリクエストが、前記テナントコントローラから前記仲介コントローラに送信され、前記ハイブリッドモード切替モジュールは、前記サイドローディングプロセスを実行するか否かを判断し、
前記ハイブリッドモード切替モジュールは、前記サイドローディングプロセスを実行すると判断した場合、前記テナントコントローラリクエストを前記ソフト分割リソースマネージャ管理モジュールに転送し、前記ソフト分割リソースマネージャ管理モジュールがチェックを実行すると共に、前記テナントコントローラリクエストの実行を介して、前記テナントコントローラリクエストを前記物理リソースで実行し、
前記結果の通知において、前記チェックの結果を前記テナント管理インターフェイスに通知すると共に、命令の送信を介して、調整動作を実行するために必要な命令を前記仲介コントローラに送信し、
前記命令の実行において、前記サイドローディングプロセスの最終の調整動作を実行するために必要な命令、主にフローエントリを削除するための命令を実行し、調整動作を実行する必要がない場合、命令の実行を行わない、請求項2に記載のマルチテナントソフトウェア定義ネットワークにおける仮想ネットワークのフローテーブル動的分割システム。
【請求項5】
前記ソフト分割リソースマネージャ管理モジュールは、リソース残量比較と、テナントのリソース使用量と利用可能なリソース量との比較と、超過使用動的スペース比較と、スペース置換ユーザ設定と、フローエントリ削除命令送信と、フローエントリ設定命令送信と、前記テナントリソース動的上限値設定モジュールと、前記最低使用頻度−部分タイムアウトリセット実行モジュールとを含み、
前記リソース残量比較は、後続処理のために物理リソースに残量があるか否かをチェックするように構成され、肯定の場合、前記物理リソースには利用可能なリソース残量が多くあることを示し、否定の場合、リソース残量が不足であることを示し、
前記テナントのリソース使用量と利用可能なリソース量との比較は、テナントが利用可能なリソース量の下限値を超過使用しているか否かをチェックするよう構成され、肯定の場合、前記テナントが超過使用しているとみなされ、否定の場合、前記テナントが超過使用していないとみなされ、
前記超過使用動的スペース比較は、各テナントが利用可能なリソース量の動的上限値を超過使用しているか否かをチェックするよう構成され、肯定の場合、スペース置換ユーザをユーザ自身に設定すると共に、前記最低使用頻度−部分タイムアウトリセット実行モジュールを実行することによって、フローエントリを削除するための命令を前記仲介コントローラに送信し、否定の場合、処理を行わず、
前記テナントリソース動的上限値設定モジュールは、設定可能な動的使用量を計算して、テナント一時リソースとして与えるよう構成され、前記リソース残量比較による判定結果が肯定であって且つ前記テナントのリソース使用量と利用可能なリソース量との比較による判定結果が超過使用である場合にのみ使用され、
前記最低使用頻度−部分タイムアウトリセット実行モジュールは、スペースを置換する必要があると判断された場合に使用され、長時間アイドル状態のフローエントリを判定した後、フローエントリを削除するための命令を送信することによって、スペースを解放し、必要に応じて、フローエントリ設定命令送信を介して、現在のリクエストを仲介コントローラに通知することによって、テナントがリクエストしたフローエントリを、解放したスペースに設置する、請求項1に記載のマルチテナントソフトウェア定義ネットワークにおける仮想ネットワークのフローテーブル動的分割システム。
【請求項6】
前記テナントリソース動的上限値設定モジュールは、テナント予約スペース計算と、スペース残量計算と、動的上限値設定とを含み、
前記テナント予約スペース計算は、他のテナントの使用権利を保護するために、他のテナントのために一部のスペースを予約し、およびその後、スペース置換方法を使用する時の負荷を軽減するように構成され、
前記スペース残量計算は、前記テナント予約スペース計算によって各テナントのために予約したスペースの合計を計算し、システムのリソース残量から前記予約したスペースの合計を減算することによって、割当可能なスペースを計算するように構成され、
前記動的上限値設定は、前記スペース残量計算の計算結果をテナント下限値に加算することによって、動的上限値を設定するように構成される、請求項5に記載のマルチテナントソフトウェア定義ネットワークにおける仮想ネットワークのフローテーブル動的分割システム。
【請求項7】
前記テナント予約スペース計算は、以下のステップを含み、すなわち、
a.テナントのリソース現在使用量と利用可能なリソース量とを比較するステップを含み、リソース現在使用量が利用可能なリソース量を超える場合には、前記テナントが超過使用しており、スペースを予約しないが、そうでない場合には、ステップbに進み、
b.テナントのリソース現在使用量とリソース平均使用量とを比較するステップを含み、ステップaの結果が否定である場合、リソース現在使用量とリソース平均使用量とを比較し、リソース現在使用量がリソース平均使用量を超える場合には、前記テナントが将来的にスペースを必要とすると判断し、予約スペース合理性を比較するステップdを実行するが、そうでない場合には、ステップcに進み、リソース平均使用量と利用可能なリソース量とを比較するステップを行い、
c.テナントのリソース平均使用量と利用可能なリソース量とを比較するステップを含み、ステップbの結果が否定である場合、リソース現在使用量が利用可能なリソース量およびリソース平均使用量よりも小さいと判断し、リソース平均使用量と利用可能なリソース量とを比較し、リソース平均使用量が利用可能なリソース量よりも小さい場合には、リソース平均使用量からリソース現在使用量を減算したリソース量を予約スペースとして設定するが、そうでない場合には、利用可能なリソース量からリソース現在使用量を減算したリソース量を予約スペースとして設定し、
d.予約スペース合理性を比較するステップを含み、ステップbの結果が肯定である場合には、リソース現在使用量が利用可能なリソース量よりも少なく、且つリソース現在使用量がリソース平均使用量よりも大きいと判断し、この場合、リソース現在使用量からリソース平均使用量を減算したリソース量を予約スペースとして設定すると、利用可能なリソース量を超える可能性があり、不合理であるため、合理性を比較するステップを行い、結果が肯定である場合、利用可能なリソース量からリソース現在使用量を減算したリソース量を予約スペースとして設定し、そうでない場合には、リソース現在使用量からリソース平均使用量を減算したリソース量を予約スペースとして設定する、請求項6に記載のマルチテナントソフトウェア定義ネットワークにおける仮想ネットワークのフローテーブル動的分割システム。
【請求項8】
最低使用頻度−部分タイムアウトリセット実行モジュールにより実行されるステップは、
a.フローエントリのアイドル状態を判断するステップを含み、前記仲介コントローラは、前記物理リソースからフローエントリを削除するための情報を受信すると、直ちに現在時間を記録するが、現在時間から前回の更新時間を減算した値が部分アイドル時間削除設定値よりも大きい場合には、フローエントリが使用されたと判断し、フラグをYESに
設定すると共に、更新時間を現在時間に設定し、アイドル時間を部分アイドル時間設定値に設定し、そうでない場合には、更新時間を現在時間に設定し、総アイドル時間に部分アイドル時間設定値を加算し、削除回数に1を加算して、次のステップに進み、
b.総アイドル時間と元のリクエストとを比較するステップを含み、部分アイドル時間削除設定値にステップaの削除回数を乗算した値を初期アイドル時間削除設定値と比較し、乗算した値がアイドル時間初期削除設定値以上である場合には、前記フローエントリが初期アイドル時間に達したと判断して、当該フローエントリを削除し、そうでない場合には、前記フローエントリを前記物理リソースに再設定し、
c.最大アイドル時間を有するフローエントリを選択するステップを含み、データテーブルの全体から、最大アイドル時間を有するフローエントリを置換対象のフローエントリとして選択し、この場合、最低使用頻度アルゴリズムに従って、アイドル時間が最も長いフローエントリを置換する、請求項5に記載のマルチテナントソフトウェア定義ネットワークにおける仮想ネットワークのフローテーブル動的分割システム。
【請求項9】
マルチテナントソフトウェア定義ネットワークにおける仮想ネットワークのフローテーブル動的分割方法であって、
前記分割方法は、前記ソフトウェア定義ネットワーク環境において、オープンフロースイッチを用いてフローテーブルリソースを分割することによって、マルチテナント仮想ネットワークサービスを提供し、
テナントコントローラがリクエストを送信すると、前記分割方法は、ソフト分割リソースマネージャを用いてフローテーブルリソースを管理することによって、各々のテナントの利用可能なリソースの範囲を決定し、後続のリソース解放処理を実行することによって、リソースを共有し、
前記ソフト分割リソースマネージャは、ソフト分割を用いてリソース管理を行い、ハイブリッドモード切替モジュールを用いて、後続処理のために物理リソースに残量があるか否かをチェックし、且つテナントのリソース使用量が利用可能なリソース量の下限値を超過しているか否かをチェックすることにより、環境が複数の状態のいずれにあるかに基づいて、複数の管理プロセスから管理プロセスを決定し、テナントリソース動的上限値設定モジュールおよび最低使用頻度−部分タイムアウトリセット実行モジュールを使用するか否かを決定し、
前記複数の状態は、
テナントが物理リソースを正常に使用しており、物理リソースが十分である状態と、
テナントが物理リソースを超過使用したいが、物理リソースが十分である状態と、
テナントが物理リソースを正常に使用しているが、物理リソースが不十分である状態と、
テナントが物理リソースを超過使用したいが、物理リソースが不十分である状態とを含み、
前記複数の管理プロセスは、
監視プロセスを含み、このプロセスにおいて、管理プレーンは、まず、テナントコントローラから送信されたリクエストをチェックし、前記テナントコントローラからの前記リクエストの可用性を確認してから、前記管理プレーンは、前記テナントコントローラからの前記リクエストを正しく処理するように仲介コントローラに通知するための命令を送信し、
サイドローディングプロセスを含み、このプロセスにおいて、前記管理プレーンは、前記テナントコントローラからのリクエストをサイドローディングしてチェックし、前記リクエストが正当ではないと判断した場合、前記管理プレーンは、事後調整動作を実行するように前記仲介コントローラに通知するための命令を送信する、マルチテナントソフトウェア定義ネットワークにおける仮想ネットワークのフローテーブル動的分割方法。
【請求項10】
テナントが物理リソースを正常に使用しており、物理リソースが十分である状態の場合、テナントが正常に使用され得る前記サイドローディングプロセスを管理プロセスとして使用し、管理プレーンが調整動作を実行しない、請求項9に記載のマルチテナントソフトウェア定義ネットワークにおける仮想ネットワークのフローテーブル動的分割方法。
【請求項11】
テナントが物理リソースを超過使用したいが、物理リソースが十分である状態の場合、前記サイドローディングプロセスを用いてテナントリソース動的上限値を設定し、テナントのリソース使用量が前記テナントリソース動的上限値を超えると、当該テナント自身を置換テナントとし、スペース置換処理を実行し、その後、管理プレーンが命令を仲介コントローラに送信し、そうでない場合、テナントが物理リソースを正常に使用する、請求項9に記載のマルチテナントソフトウェア定義ネットワークにおける仮想ネットワークのフローテーブル動的分割方法。
【請求項12】
テナントが物理リソースを正常に使用しているが、物理リソースが不十分である状態の場合、前記監視プロセスを用いて、現在最大超過使用率のテナントを置換テナントとし、スペース置換処理を実行する、請求項9に記載のマルチテナントソフトウェア定義ネットワークにおける仮想ネットワークのフローテーブル動的分割方法。
【請求項13】
テナントが物理リソースを超過使用したいが、物理リソースが不十分である状態の場合、前記監視プロセスを用いて、当該テナント自身を置換テナントとし、スペース置換処理を実行する、請求項9に記載のマルチテナントソフトウェア定義ネットワークにおける仮想ネットワークのフローテーブル動的分割方法。
【請求項14】
前記テナント動的リソース上限値の設定は、動的に変化するように行われ、
テナントの各種情報に従って決定された超過使用率は、前記テナントリソース動的上限値として使用される、請求項11に記載のマルチテナントソフトウェア定義ネットワークにおける仮想ネットワークのフローテーブル動的分割方法。
【請求項15】
前記テナントリソース動的上限値の設定における前記テナントの各種情報は、
テナント過去の平均使用状況と、
利用可能なリソース量の下限値と、
リソース現在使用量とを含む、請求項14に記載のマルチテナントソフトウェア定義ネットワークにおける仮想ネットワークのフローテーブル動的分割方法。
【請求項16】
前記スペース置換処理は、アルゴリズムを用いて、置換されるフローエントリを決定した後、前記フローエントリを削除する、請求項11に記載のマルチテナントソフトウェア定義ネットワークにおける仮想ネットワークのフローテーブル動的分割方法。
【請求項17】
置換されるフローエントリを決定するアルゴリズムは、最低使用頻度−部分タイムアウトリセットアルゴリズムであり、
前記アルゴリズムは、各フローエントリのアイドル時間を計算してから、最大アイドル時間を有するフローエントリを、置換されるフローエントリとして選択する、請求項16に記載のマルチテナントソフトウェア定義ネットワークにおける仮想ネットワークのフローテーブル動的分割方法。
【請求項18】
各フローエントリのアイドル時間の計算は、アイドルタイムアウト値の分割およびフラグの使用によって、スイッチにフローエントリの状態を自動的に送信させることを含む、請求項17に記載のマルチテナントソフトウェア定義ネットワークにおける仮想ネットワークのフローテーブル動的分割方法。
【発明の詳細な説明】
【技術分野】
【0001】
技術分野
本発明は、マルチテナント(Multi-tenant)ソフトウェア定義ネットワーク(Software defined Network、SDN)に適用されるメカニズムおよび方法に関する。フローテーブル(flow table)リソースに対して分割管理を行わない場合、リソース競合の問題を引き起こし、その結果、大量のパケットイン(packet_in)イベントが生じてしまい、ネットワーク待ち時間が長くなる。ハード分割方式でフローテーブルリソースを管理する場合、リソースの浪費という問題を引き起こし、その結果、フローテーブルの使用率が減少し、大量のパケットインイベントが生じてしまい、ネットワーク待ち時間が長くなる。本発明の方法は、パケットインを大幅に低減することによって、リソース利用率を向上させることができ、リソース競合の問題を生じさせないものである。
【背景技術】
【0002】
背景技術
ソフトウェア定義ネットワーク(SDN)は、近年に現れてきた新興ネットワークアーキテクチャである。SDNという概念は、ネットワークのコントロールプレーン(control plane)機能とデータプレーン(data plane)機能を分離し、データプレーンによるパケットの転送において、対応の条件に合致するフローエントリに従って対応の動作を実行することである。しかしながら、フローテーブルリソースには限りがあるため、複数のテナントが同一のフローテーブルを同時に使用すると、リソースの分配管理に問題が生じる可能性がある。
【0003】
本発明は、マルチテナントSDNネットワークに使用され、フローテーブルリソースを管理するメカニズムを設計する。SDNネットワーク環境に使用された従来の技術は、主に複数のアプリケーションを用いて、フローテーブルの使用状況を管理する。類似概念が以下の従来の特許技術に記載されている:US9065724(フローテーブルの管理(Managing a flow table))。一方、マルチテナントSDN環境におけるリソース管理は、主にネットワークトラフィックまたは帯域幅リソースを管理および制御している。フローテーブルに対する管理方法があったとしても、殆どハード分割方式で行われている。しかしながら、ハード分割方式管理は、リソースを浪費するという問題を抱えている。
【0004】
したがって、上述した一般的方法は、多くの欠点を有し、良い設計ではないため、切迫の改良を行う必要がある。
【0005】
本発明の発明者らは、上述した一般的方法の様々な欠点を鑑み、これらの方法の切迫の改良を行うために、長年研究に専念した後、マルチテナント(Multi-tenant)ソフトウェア定義ネットワーク(SDN)に使用される本発明のリソース動的管理メカニズムの研究開発を成功裏に完成した。
【発明の概要】
【発明が解決しようとする課題】
【0006】
発明の目的
本発明の目的は、マルチテナントソフトウェア定義ネットワーク(SDN)ネットワーク環境のためのリソース管理方法を設計することである。このような環境において、複数のテナントが同一の物理リソースを共有する。複数のユーザは、フローエントリを設定したい場合、仲介コントローラを介して設定しなければならない。しかしながら、物理リソースのフローテーブルのサイズには制限があるため、フローテーブルが満杯になると、仲介コントローラは、後続のリクエストを拒否する。したがって、このリクエストを送信したユーザがフローエントリを設定することができないため、大量のパケットイン(packet_in)が生じてしまい、テナントコントローラに大きな負荷を与え、ネットワーク待ち時間が長くなる。リソースを共有するものの分割せず、かつフローテーブルを満杯にさせた原因が、あるユーザの大量使用によるものであれば、それはリソース占有と呼ばれる。ハード分割方式を使用する場合、多くのリクエストを送信したユーザが空きリソースを使用することができず、リソースを浪費してしまう。本発明の管理メカニズムおよび方法は、これらの問題の両方を解決するように設計されたものである。
【課題を解決するための手段】
【0007】
発明の内容
上記の本発明の目的を達成するためのマルチテナントソフトウェア定義ネットワーク(SDN)リソース管理メカニズムは、仲介コントローラがテナントコントローラリクエストを設定する前に、リクエストを検査モジュールに転送してチェックを行い、テナントに使用されるフローエントリ(flow entry)の使用状況および現在のリソースの利用率に応じて、対応する処理方法を選択する。管理メカニズムによるチェックの後、対応する処理動作を命令として集積し、この命令を仲介コントローラに送信し、物理リソースで実行する。
【0008】
本発明のマルチテナントソフトウェア定義ネットワーク(SDN)リソース管理メカニズムは、3つのモジュールを含み、すなわち、(1)ハイブリッドモード切替モジュールを含み、ソフト分割リソースマネージャ(Soft Partitioning Resource Manager、SPRM)は、管理プロセスにおいて、2つのモードのハイブリッド処理を用いる。監視プロセスは、仲介コントローラがフローエントリをダウンロードする前にチェック処理を実行し、サイドローディングプロセスは、フローエントリ処理の後にリリース処理を実行し、時間の遅延を低減する。(2)最低使用頻度−部分タイムアウトリセット(Least recently used-Partial Timeout Reset、LRU−PTR)実行モジュールを含み、SPRMは、フローエントリを分割することによって、スイッチから自動的に送信されたフローエントリのアイドル状態に応じて、置換する必要のある対象を選択する。(3)テナントリソース動的上限値設定モジュールを含み、SPRMは、各々のテナントの使用量の動的上限値を設定する。
【図面の簡単な説明】
【0009】
【
図1】本発明のマルチテナントSDNリソース動的管理メカニズムのシステム構成図である。
【
図2】本発明のマルチテナントSDNリソース動的管理メカニズムのハイブリッドモード切替モジュールを示す構成図である。
【
図3】本発明のマルチテナントSDNリソース動的管理メカニズムの監視プロセスの動作を示すフローチャートである。
【
図4】本発明のマルチテナントSDNリソース動的管理メカニズムのサイドローディングプロセスの動作を示すフローチャートである。
【
図5】本発明のマルチテナントSDNリソース動的管理メカニズムのSPRM管理モジュールのフローチャートである。
【
図6】本発明のマルチテナントSDNリソース動的管理メカニズムのテナントリソース動的上限値設定モジュールのフローチャートである。
【
図7】本発明のマルチテナントSDNリソース動的管理メカニズムのテナント予約スペースの計算を示すフローチャートである。
【
図8】本発明のマルチテナントSDNリソース動的管理メカニズムのLRU−PTR実行モジュールのフローチャートである。
【発明を実施するための形態】
【0010】
発明の詳細な説明
本発明は、ソフトウェア定義ネットワーク(Software Defined Network)環境において、オープンフロースイッチ(OpenFlow Switch)を用いてフローテーブルリソースを分割することによって、マルチテナント仮想ネットワーク(multi-tenant virtual network)サービスを提供する分割方法であって、テナントコントローラがリクエストを送信すると、分割方法は、ソフト分割リソースマネージャ(Soft Partitioning Resource Manager、SPRM)を用いてフローテーブルリソースを管理することによって、各々のテナントの利用可能なリソースの範囲を決定し、後続のリソース解放処理を実行することによって、リソースを共有する。
【0011】
本発明のSPRMメカニズムは、ソフト分割(Soft Partitioning)を用いてリソース管理を行うメカニズムであり、ハイブリッドモード(Hybrid Mode)切替モジュールを用いて、複数の状態のうち、環境が存在する状態を判断し、テナントリソース動的上限値設定モジュールおよびLRU−PTR実行モジュールを使用するか否かを決定する。ハイブリッドモード切替モジュールは、リソースの使用状況に応じて、複数の管理プロセスから、実行すべき管理プロセスを決定する。
【0012】
本発明の複数の管理プロセスは、以下を含む:
監視プロセス(In-line mode):管理プレーンは、まず、テナントコントローラから送信されたリクエストをチェックし、テナントコントローラからのリクエストの可用性を確認してから、管理プレーンは、テナントコントローラからのリクエストを正しく処理するように仲介コントローラに通知するための命令を送信し、
サイドローディングプロセス(Sniff mode):管理プレーンは、テナントコントローラからのリクエストをサイドローディングしてチェックする。リクエストが正当ではないと判断した場合、管理プレーンは、事後調整動作を実行するように仲介コントローラに通知するための命令を送信する。
【0013】
さらに、本発明により判断される環境の複数の状態は、以下を含む。
【0014】
テナントが物理リソースを正常に使用しており、物理リソースが十分である状態。この場合、テナントが正常に使用され得る前記サイドローディングプロセスを管理プロセスとして使用し、管理プレーンが調整動作を実行しない。
【0015】
テナントが物理リソースを超過使用したいが、物理リソースが十分である状態。この場合、サイドローディングプロセスを用いてテナントリソース動的上限値を設定し、テナントのリソース使用量がテナントリソース動的上限値を超えると、当該テナント自身を置換テナントとし、スペース置換処理を実行し、その後、管理プレーンが命令を仲介コントローラに送信し、そうでない場合、テナントが物理リソースを正常に使用する。
【0016】
テナントが物理リソースを正常に使用しているが、物理リソースが不十分である状態。この場合、監視プロセスを用いて、現在最大超過使用率のテナントを置換テナントとし、スペース置換処理を実行する。
【0017】
テナントが物理リソースを超過使用したいが、物理リソースが不十分である状態。この場合、監視プロセスを用いて、当該テナント自身を置換テナントとし、スペース置換処理を実行する。
【0018】
本発明のテナント動的リソース上限値の設定は、動的に変化するように行われ、テナントの各種情報に従って決定された超過使用率は、テナント動的リソース上限値として使用される。テナントの各種情報は:
テナント過去の平均使用状況と、
利用可能なリソース量の下限値と、
リソース現在使用量とを含む。
【0019】
本発明のスペース置換法は、アルゴリズムを用いて、置換されるフローエントリを決定した後、このフローエントリを削除する。置換されるフローエントリを決定するアルゴリズムは、最低使用頻度−部分タイムアウトリセット(Least Recently Used-Partial Timeout Reset,LRU-PTR)アルゴリズムである。このアルゴリズムは、各フローエントリのアイドル時間を計算してから、最大アイドル時間を有するフローエントリを、置換されるフローエントリとして選択する。各フローエントリのアイドル時間の計算は、アイドルタイムアウト値(idle_timeout value)の分割およびフラグ(flag)の使用によって、スイッチにフローエントリの状態を自動的に送信させることを含む。
【0020】
図1を参照して、
図1は、本発明のマルチテナントSDNリソース動的管理メカニズムのシステム構成図である。このメカニズムは、管理プレーン10と、SPRM管理モジュール20と、テナントコントローラ30と、仲介コントローラ40と、物理リソース50と、ハイブリッドモード切替モジュール60とを含む。本発明のメカニズムは:
管理プレーン10を備え、この管理プレーンは、リソースを管理するプレーンとして構成され、テナント管理インターフェイス101と、ルート(Root)管理インターフェイス102と、SPRM管理モジュール20とを含み、
SPRM管理モジュール20を備え、このSPRM管理モジュールは、リソースが利用可能であるか否かをチェックする管理プロセスモジュールとして構成され、テナントリソース動的上限値設定モジュール70と、LRU−PTR実行モジュール80とを含み、
テナントコントローラ30を備え、このテナントコントローラは、各々のテナントが各自のソフトウェア定義ネットワーク環境を管理するように、ソフトウェア定義ネットワーク環境において各々のテナントに設けられ、
仲介コントローラ40を備え、この仲介コントローラは、マルチテナントソフトウェア定義ネットワーク環境内のネットワーク仮想化仲介プレーンとして機能し、基盤となる物理リソース50を仮想化し、1つ以上の仮想のソフトウェア定義ネットワークを上層のテナントコントローラ30に提供するように構成され、
物理リソース50を備え、この物理リソースは、物理的なネットワークリソースであり、ここではオープンフロー(OpenFlow)スイッチを指し、
ハイブリッドモード切替モジュール60を備え、このハイブリッドモード切替モジュールは、どの管理プロセスを使用すべきかを判断するモジュールとして構成される。
【0021】
図2を参照して、ハイブリッドモード切替モジュール60は、監視プロセス601と、サイドローディングプロセス602とを含む。リソース使用率が非常に高い場合、監視プロセス601を使用するのがより安全である。テナントコントローラ30から送信されたリクエストを監視プロセス601によって管理した後、物理リソース50でリクエストが実行される。リソース使用率が比較的に低い場合、サイドローディングプロセス602を使用することによって、リクエストの遅延時間を低減する。テナントコントローラ30がリクエストを送信した後、そのリクエストを、サイドローディングプロセス602によって管理およびチェックしてから、物理リソース50で実行する。
【0022】
図3を参照して、
図3は、本発明のマルチテナントSDNリソース動的管理メカニズムの監視プロセス601の動作を示すフローチャートである。フローチャートは、テナントコントローラリクエスト(6011)と、リクエストの転送(6012)と、結果の通知(6013)と、命令の送信(6014)と、命令の実行(6015)とを含む。テナントコントローラリクエスト(6011)は、テナントコントローラから仲介コントローラ40に送信されて、ハイブリッドモード切替モジュール60は監視プロセス601を実行するか否かを判断する。ハイブリッドモード切替モジュール60は、監視プロセス601を実行すると判断した場合、リクエストを転送し(6012)、すなわち、テナントコントローラリクエストをSPRM管理モジュール20に転送して、SPRM管理モジュール20がチェックを実行する。結果の通知(6013)において、チェックの結果をテナント管理インターフェイス101に通知すると共に、仲介コントローラ40に命令を送信する(6014)。最後に、命令の実行(6015)において、仲介コントローラ40は命令を受信すると、必要な動作を物理リソース50で実行する。
【0023】
図4を参照して、
図4は、本発明のマルチテナントSDNリソース動的管理メカニズムのサイドローディングプロセス602の動作を示すフローチャートである。フローチャートは、テナントコントローラリクエスト(6021)と、リクエストの転送(6022)と、テナントリクエストの実行(6023)と、結果の通知(6024)と、命令の送信(6025)と、命令の実行(6026)とを含む。
【0024】
テナントコントローラリクエスト(6021)がテナントコントローラから仲介コントローラ40に送信され、ハイブリッドモード切替モジュール60は、サイドローディングプロセス602を実行するか否かを判断する。
【0025】
ハイブリッドモード切替モジュールは、サイドローディングプロセス602を実行すると判断した場合、リクエストを転送し(6022)、すなわち、リクエストをSPRM管理モジュール20に転送し、SPRM管理モジュール20がチェックを実行すると共に、テナントリクエストの実行(6023)を介して、テナントコントローラリクエスト(6021)を物理リソース50で実行する。
【0026】
結果の通知(6024)において、チェックの結果をテナント管理インターフェイス101に通知すると共に、命令の送信(6025)を介して、調整動作を実行するために必要な命令を仲介コントローラ40に送信する。
【0027】
命令の実行(6026)において、サイドローディングプロセス602の最終の調整動作を実行するために必要な命令、主にフローエントリを削除するための命令を実行する。調整動作を実行する必要がない場合、命令の実行(6026)を行わない。
【0028】
図5を参照して、
図5は、本発明のマルチテナントSDNリソース動的管理メカニズムのSPRM管理モジュール20のフローチャートである。SPRM管理モジュール20は、リソース残量比較201と、テナントのリソース使用量と利用可能なリソース量との比較202と、超過使用動的スペース比較203と、スペース置換ユーザ設定204と、フローエントリ削除命令送信205と、フローエントリ設定命令送信206と、テナントリソース動的上限値設定モジュール70と、LRU−PTR実行モジュール80とを含む。
【0029】
リソース残量比較201は、後続処理のために物理リソースに残量があるか否かをチェックするように構成され、肯定の場合、物理リソース50には利用可能なリソース残量が多くあることを示し、否定の場合、リソース残量が不足であることを示す。
【0030】
テナントのリソース使用量と利用可能なリソース量との比較202は、テナントのリソース使用量が利用可能なリソース量の下限値を超過しているか否かをチェックするように構成され、肯定の場合、テナントが超過使用しているとみなされ、否定の場合、テナントが超過使用していないとみなされる。
【0031】
超過使用動的スペース比較203は、テナントが利用可能なリソース量の動的上限値を超過使用しているか否かをチェックするように構成され、肯定の場合、スペース置換ユーザをユーザ自身に設定する(204)と共に、LRU−PTR実行モジュール80を実行することによって、フローエントリを削除するための命令を仲介コントローラ40に送信(205)し、否定の場合、処理を行わない。
【0032】
テナントリソース動的上限値設定モジュール70は、設定可能な動的使用量を計算して、テナント一時リソースとして与えるが、テナントリソース動的上限値設定モジュール70は、リソース残量比較201による判定結果が肯定であって且つ、テナントのリソース使用量と利用可能なリソース量との比較202による判定結果が超過使用である場合にのみ使用される。
【0033】
LRU−PTR実行モジュール80は、スペースを置換する必要があると判断された場合に使用され、長時間アイドル状態のフローエントリを判定し、フローエントリ削除命令送信(205)によって、スペースを解放し、必要に応じて、フローエントリ設定命令送信(206)を介して、現在のリクエストを仲介コントローラ40に通知することによって、テナントがリクエストしたフローエントリを、解放したスペースに設定する。
【0034】
図6を参照して、
図6は、本発明のマルチテナントSDNリソース動的管理メカニズムのテナントリソース動的上限値設定モジュール70のフローチャートである。テナントリソース動的上限値設定モジュール70は、テナント予約スペース計算701と、スペース残量計算702と、動的上限値設定703とを含む。
【0035】
テナント予約スペース計算701は、他のテナントの使用権利を保護するために、他のテナントのために一部のスペースを予約し、およびその後、スペース置換方法を使用する時の負荷を軽減するように構成される。
【0036】
スペース残量計算702は、テナント予約スペース計算701によって各テナントのために予約したスペースの合計を計算し、システムのリソース残量から予約スペースの合計を減算することによって、割当可能なスペースを計算するように構成される。
【0037】
動的上限値設定703は、スペース残量計算702の計算結果をテナント下限値に加算することによって、動的上限値を設定するように構成される。
【0038】
本発明は、主に、テナントが物理リソースを超過使用したいが、物理リソースが十分である場合、リソースの浪費を避けるために、動的上限値を設定して、リソースを超過使用したいテナントに動的上限値を提供する。この動的上限値は、テナントがリクエストを送信するたびに、システムの現在状況に基づいて変更されて、リソースの利用率を向上させる。
【0039】
図7を参照して、本発明のマルチテナントSDNに適用されたリソース動的管理メカニズムのテナント予約スペース計算701の方法は、以下のステップを含み、すなわち、
a.テナントのリソース現在使用量と利用可能なリソース量とを比較するステップ(7011)を含み、テナントのリソース現在使用量が利用可能なリソース量を超える場合には、テナントが超過使用しており、スペースを予約しないが、そうでない場合には、ステップbに進み、
b.テナントのリソース現在使用量とリソース平均使用量とを比較するステップ(7012)を含み、ステップaの結果が否定である場合、リソース現在使用量とリソース平均使用量とを比較する。リソース現在使用量がリソース平均使用量を超える場合には、テナントが将来的にスペースを必要とすると判断し、d)予約スペース合理性を比較するステップ(7014)を実行するが、そうでない場合には、ステップcに進んで、リソース平均使用量と利用可能なリソース量とを比較するステップ(7013)を実行し、
c.テナントのリソース平均使用量と利用可能なリソース量とを比較するステップ(7013)を含み、ステップbの結果が否定である場合、リソース現在使用量が利用可能なリソース量およびリソース平均使用量よりも小さいと判断し、リソース平均使用量と利用可能なリソース量とを比較する。リソース平均使用量が利用可能なリソース量よりも小さい場合には、リソース平均使用量からリソース現在使用量を減算したリソース量を予約スペースとして設定するが、そうでない場合には、利用可能なリソース量からリソース現在使用量を減算したリソース量を予約スペースとして設定し、
d.予約スペース合理性を比較するステップ(7014)を含み、ステップbの結果が肯定である場合には、リソース現在使用量が利用可能なリソース量よりも少なく、且つリソース現在使用量が平均使用量よりも大きいと判断する。この場合、リソース現在使用量からリソース平均使用量を減算したリソース量を予約スペースとして設定すると、利用可能なリソース量を超える可能性があり、不合理である。したがって合理性を比較するステップを行い、結果が肯定である(元の利用可能なリソース量を超える)場合には、利用可能なリソース量からリソース現在使用量を減算したリソース量を予約スペースとして設定し、そうでない場合には、リソース現在使用量からリソース平均使用量を減算したリソース量を予約スペースとして設定する。
【0040】
図8を参照して、
図8は、本発明のマルチテナントSDNリソース動的管理メカニズムのLRU−PTR実行モジュール80のフローチャートである。このフローチャートは、
a.フローエントリのアイドル状態を判断するステップ(801)を含み、仲介コントローラ40は、物理リソースからフローエントリを削除するための情報を受信すると、直ちに現在時間を記録する。現在時間から前回の更新時間を減算した値が部分アイドル時間削除設定値よりも大きい場合には、フローエントリが使用されたと判断し、フラグをYESに設定すると共に、更新時間を現在時間に設定し、アイドル時間を部分アイドル時間設定値に設定し、そうでない場合には、更新時間を現在時間に設定し、総アイドル時間に部分アイドル時間設定値を加算し、削除回数に1を加算して、次のステップに進み、
b.総アイドル時間と元のリクエストとを比較するステップ(802)を含み、部分アイドル時間削除設定値にステップaの削除回数を乗算した値を初期アイドル時間削除設定値と比較し、乗算した値が初期アイドル時間削除設定値以上である場合には、フローエントリが初期アイドル時間に達したと判断して、当該フローエントリを削除し、そうでない場合には、フローエントリを物理リソースに再設定し、
c.最大アイドル時間を有するフローエントリを選択するステップ(803)を含み、データテーブルの全体から、最大アイドル時間を有するフローエントリを置換対象のフローエントリとして選択する。この場合、LRUアルゴリズムに従って、アイドル時間が最も長いフローエントリを置換する。
【0041】
特徴および効果
マルチテナントソフトウェア定義ネットワークに適用された従来の技術は、主に帯域幅の管理またはハード分割管理によって、リソースの割り当てを行うため、ハード分割によってフローテーブルを管理する時に生じたリソースの浪費の影響を考慮せず、テナントのネットワーク効率に影響を与えてしまう。本発明のマルチテナントSDN管理メカニズムは、他の一般的技術に比べて、いくつかの利点を有する。詳しくは、
a.本発明は、ハイブリッドモード切替モジュールを使用することによって、大量のリクエストを実行する時の遅延を低減することができる。
【0042】
b.本発明は、テナントリソース動的上限値設定モジュール使用することによって、フローテーブルのリソース利用率を増加することができる。
【0043】
c.本発明は、LRU−PTR実行モジュールを使用することによって、テナントリクエストの拒否回数を減らし、ネットワーク待ち時間を大幅に低減することができる。
【0044】
上記の詳細な説明において、本発明の可能な実施形態を詳しく説明したが、これらの実施形態は、本発明の範囲を限定することを意図しておらず、本発明の技術的思想から逸脱することなく行われた全ての他の実施例または同等の変更例は、本発明の範囲に含まれるべきである。
【符号の説明】
【0045】
10 管理プレーン
20 SPRM管理モジュール
30 テナントコントローラ
40 仲介コントローラ
50 物理リソース
60 ハイブリッドモード切替モジュール
70 テナントリソース動的上限値設定モジュール
80 LRU−PTR実行モジュール
101 テナント管理インターフェイス
102 ルート(Root)管理インターフェイス
201 リソース残量の比較
202 テナントのリソース使用量と利用可能なリソース量との比較
203 超過使用動的スペースの比較
204 スペース置換ユーザの設定
205 フローエントリを削除するための命令の送信
206 フローエントリを設定するための命令の送信
601 監視プロセス
602 サイドローディングプロセス
6011 テナントコントローラリクエスト
6012 リクエストの転送
6013 結果の通知
6014 命令の送信
6015 命令の実行
6021 テナントコントローラリクエスト
6022 リクエストの転送
6023 テナントリクエストの実行
6024 結果の通知
6025 命令の送信
6026 命令の実行
701 テナント予約スペースの計算
702 スペース残量の計算
703 動的上限値の設定
7011 テナント現在使用量と利用可能なリソース量との比較
7012 テナント現在使用量と平均使用量との比較
7013 テナント平均使用量と利用可能なリソース量との比較
7014 予約スペース合理性の比較
801 フローエントリのアイドル状態の判断
802 総アイドル時間と元のリクエストとの比較
803 最大アイドル時間を有するフローエントリの選択