(57)【要約】  本発明の実施形態は、ソフトウェア定義型データセンター、並びにそのためのサービスクラスタスケジューリング方法及びトラフィック監視方法を開示する。ＳＤＮコントローラは、負荷分散のスケジューリング機能及び決定機能を実装する。負荷分散装置として、ＳＤＮコントローラはサービングノードの負荷分散原理に従い、パケット転送フローテーブルをカスタマイズして、ユーザトラフィックを特定のサービングノードに送信するようエッジスイッチに命令する。ＳＤＮコントローラは、サービスクラスタ内のサービングノードの負荷を監視し、負荷監視結果に従って負荷分散装置の負荷分散機能を実行し、ターゲット仮想マシンを選択することができる。ＳＤＮコントローラを負荷分散装置として用いることで、ＳＤＮの動的拡張能力は制御層において多重化されることができ、ＳＤＮネットワークのネットワークリソースはネットワーク転送層において多重化されることができる。実装の複雑性は低く、投資コストは低い。
2018504038.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェア定義型データセンターにおけるサービスクラスタスケジューリング方法であって、前記ソフトウェア定義型データセンターは、ＳＤＮコントローラと複数のエッジスイッチとを備え、前記複数のエッジスイッチは前記ＳＤＮコントローラに通信可能に接続され、サービスクラスタが前記ソフトウェア定義型データセンターに展開され、少なくとも２つのオンライン仮想マシンが前記サービスクラスタのサービングノードとして用いられ、前記少なくとも２つのオンライン仮想マシンのＩＰアドレスが共有ＩＰアドレスとして設定され、
前記ＳＤＮコントローラが、第２のエッジスイッチにより報告されたユーザのサービス要求パケットを受信する段階であって、前記第２のエッジスイッチは前記ユーザがアクセスするエッジスイッチである、受信する段階と、
前記ＳＤＮコントローラが、前記サービス要求パケット内の宛先ＩＰアドレス情報に従って、前記サービス要求パケットに対応するサービスクラスタを判定する段階と、
前記ＳＤＮコントローラが負荷分散ポリシに従って、前記サービスクラスタ内の前記オンライン仮想マシンからターゲット仮想マシンを選択する段階であって、前記ターゲット仮想マシンは前記ユーザにサービスを提供するよう構成される、選択する段階と、
前記ＳＤＮコントローラが前記ターゲット仮想マシンと前記ユーザとの間の転送情報を決定する段階と、
前記転送情報に従って、第１の転送フローテーブル及び第２の転送フローテーブルを生成する段階であって、前記第１の転送フローテーブルは、前記ターゲット仮想マシンのエッジスイッチがパケットを転送するのに用いられ、前記第２の転送フローテーブルは、前記第２のエッジスイッチがパケットを転送するのに用いられる、生成する段階と、
前記ＳＤＮコントローラが、前記第１の転送フローテーブルを前記ターゲット仮想マシンの前記エッジスイッチに送出する段階と、
前記第２の転送フローテーブルを前記第２のエッジスイッチに送出する段階と
を備える
方法。
【請求項２】
前記ＳＤＮコントローラが負荷分散ポリシに従って、前記サービスクラスタ内の前記オンライン仮想マシンからターゲット仮想マシンを前記選択する段階は、
前記ＳＤＮコントローラが、前記サービスクラスタ内の各オンライン仮想マシンのリソース負荷情報又はトラフィック負荷情報を取得して、最小リソース負荷又は最小トラフィック負荷を有する仮想マシンを前記ターゲット仮想マシンとして選択する段階を含む、
請求項１に記載の方法。
【請求項３】
前記ＳＤＮコントローラが、前記サービスクラスタ内の前記オンライン仮想マシンに対して負荷監視を実行し、負荷監視結果を定期的に取得する段階であって、前記負荷監視はリソース負荷監視又はトラフィック負荷監視を含む、取得する段階をさらに備え、
前記ＳＤＮコントローラが、前記サービスクラスタ内の各オンライン仮想マシンのリソース負荷情報又はトラフィック負荷情報を前記取得する段階は、
前記ＳＤＮコントローラが、前記サービスクラスタ内の各オンライン仮想マシンのリソース負荷情報又はトラフィック負荷情報を前記負荷監視結果から取得する段階を含む、
請求項２に記載の方法。
【請求項４】
前記ＳＤＮコントローラが、前記サービスクラスタ内の前記オンライン仮想マシンに対してトラフィック負荷監視を前記実行する段階は、
前記ＳＤＮコントローラが、前記サービスクラスタ内の各オンライン仮想マシンのエッジスイッチにトラフィック統計データ抽出要求を定期的に送出し、各オンライン仮想マシンの前記エッジスイッチによりフィードバックされるＴ１時点におけるトラフィック統計データ及びＴ２時点におけるトラフィック統計データを別々に受信する段階と、
前記ＳＤＮコントローラが、各オンライン仮想マシンの前記エッジスイッチの前記Ｔ１時点における前記トラフィック統計データと前記Ｔ２時点における前記トラフィック統計データとの間の差異に従って、各オンライン仮想マシンの前記トラフィック負荷情報を取得する段階と
を含む、
請求項３に記載の方法。
【請求項５】
前記ＳＤＮコントローラが、前記サービスクラスタ内の各オンライン仮想マシンのエッジスイッチにトラフィック統計データ抽出要求を定期的に前記送出する段階の前に、
前記ＳＤＮコントローラが、前記サービスクラスタ内の各オンライン仮想マシンの前記エッジスイッチにトラフィック監視命令を送出する段階をさらに備え、
前記トラフィック監視命令は、前記サービスクラスタ内の各オンライン仮想マシンの前記エッジスイッチに、前記ＳＤＮコントローラが送出した前記転送フローテーブルに対応するパケットトラフィック統計データを収集するよう命令するのに用いられる、
請求項４に記載の方法。
【請求項６】
前記ＳＤＮコントローラが、各オンライン仮想マシンの前記エッジスイッチの前記Ｔ１時点における前記トラフィック統計データと前記Ｔ２時点における前記トラフィック統計データとの間の差異に従って、各オンライン仮想マシンの前記トラフィック負荷情報を前記取得する段階の前に、
前記ＳＤＮコントローラが、前記Ｔ１時点における各オンライン仮想マシンのサービス応答トラフィックを前記Ｔ１時点における前記トラフィック統計データから抽出する段階、及び前記ＳＤＮコントローラが、前記Ｔ２時点における各オンライン仮想マシンのサービス応答トラフィックを前記Ｔ２時点における前記トラフィック統計データから抽出する段階と
前記ＳＤＮコントローラが、前記Ｔ１時点における前記サービス応答トラフィックと前記Ｔ２時点における前記サービス応答トラフィックとの間の差異を各オンライン仮想マシンの前記トラフィック負荷情報として用いる段階と
をさらに備える
請求項５に記載の方法。
【請求項７】
ソフトウェア定義型データセンターにおけるサービスクラスタトラフィック監視方法であって、前記ソフトウェア定義型データセンターは、ＳＤＮコントローラと複数のエッジスイッチとを備え、前記複数のエッジスイッチは前記ＳＤＮコントローラに通信可能に接続され、サービスクラスタが前記ソフトウェア定義型データセンターにさらに展開され、少なくとも２つのオンライン仮想マシンが前記サービスクラスタのサービングノードとして用いられ、前記少なくとも２つのオンライン仮想マシンのＩＰアドレスが共有ＩＰアドレスとして設定され、
前記ＳＤＮコントローラが、前記サービスクラスタ内の各オンライン仮想マシンのエッジスイッチにトラフィック統計データ抽出要求を定期的に送出する段階と、
前記ＳＤＮコントローラが、各オンライン仮想マシンの前記エッジスイッチによりフィードバックされるＴ１時点におけるトラフィック統計データ及びＴ２時点におけるトラフィック統計データを別々に受信する段階と、
前記ＳＤＮコントローラが、各オンライン仮想マシンの前記エッジスイッチの前記Ｔ１時点における前記トラフィック統計データと前記Ｔ２時点における前記トラフィック統計データとの間の差異に従って、各オンライン仮想マシンのトラフィック負荷情報を取得する段階と
を備える
方法。
【請求項８】
前記ＳＤＮコントローラが、前記サービスクラスタ内の各オンライン仮想マシンの前記エッジスイッチにトラフィック監視命令を送出する段階であって、前記トラフィック監視命令は、前記サービスクラスタ内の各オンライン仮想マシンの前記エッジスイッチに、前記ＳＤＮコントローラが送出した転送フローテーブルに対応するパケットトラフィック統計データを収集するよう命令するのに用いられる、送出する段階をさらに備える、
請求項７に記載の方法。
【請求項９】
前記ＳＤＮコントローラが、各オンライン仮想マシンの前記エッジスイッチの前記Ｔ１時点における前記トラフィック統計データと前記Ｔ２時点における前記トラフィック統計データとの間の差異に従って、各オンライン仮想マシンのトラフィック負荷情報を前記取得する段階は特に、
前記ＳＤＮコントローラが、前記Ｔ１時点における各オンライン仮想マシンのサービス応答トラフィックを前記Ｔ１時点における前記トラフィック統計データから抽出する段階、及び前記ＳＤＮコントローラが、前記Ｔ２時点における各オンライン仮想マシンのサービス応答トラフィックを前記Ｔ２時点における前記トラフィック統計データから抽出する段階と
前記ＳＤＮコントローラが、前記Ｔ１時点における前記サービス応答トラフィックと前記Ｔ２時点における前記サービス応答トラフィックとの間の差異を各オンライン仮想マシンの前記トラフィック負荷情報として用いる段階と
を備える
請求項７又は８に記載の方法。
【請求項１０】
ＳＤＮコントローラと複数のエッジスイッチとを備えたソフトウェア定義型データセンターであって、前記複数のエッジスイッチは前記ＳＤＮコントローラに通信可能に接続され、サービスクラスタが前記ソフトウェア定義型データセンターに展開され、少なくとも２つのオンライン仮想マシンが前記サービスクラスタのサービングノードとして用いられ、前記少なくとも２つのオンライン仮想マシンのＩＰアドレスが共有ＩＰアドレスとして設定され、
前記複数のエッジスイッチは、前記ＳＤＮコントローラにパケット転送情報を要求し、前記ＳＤＮコントローラが送出した転送フローテーブルに従ってパケットを転送するよう構成され、
前記ＳＤＮコントローラは、ユーザがアクセスするエッジスイッチである第２のエッジスイッチにより報告された前記ユーザのサービス要求パケットを受信し、前記サービス要求パケット内の宛先ＩＰアドレス情報に従って、前記サービス要求パケットに対応するサービスクラスタを判定し、負荷分散ポリシに従って、前記サービスクラスタ内の前記オンライン仮想マシンから、前記ユーザにサービスを提供するよう構成されたターゲット仮想マシンを選択し、前記ターゲット仮想マシンと前記ユーザとの間の転送情報を決定し、前記転送情報に従って、第１の転送フローテーブル及び第２の転送フローテーブルを生成し、前記第１の転送フローテーブルを前記ターゲット仮想マシンの前記エッジスイッチに送出し、前記第２の転送フローテーブルを前記第２のエッジスイッチに送出するよう構成され、前記第１の転送フローテーブルは、前記ターゲット仮想マシンのエッジスイッチがパケットを転送するのに用いられ、前記第２の転送フローテーブルは、前記第２のエッジスイッチがパケットを転送するのに用いられる、
ソフトウェア定義型データセンター。
【請求項１１】
前記ＳＤＮコントローラが前記ターゲット仮想マシンを選択することは特に、前記サービスクラスタ内の各オンライン仮想マシンのリソース負荷情報又はトラフィック負荷情報を取得すること、及び最小リソース負荷又は最小トラフィック負荷を有する仮想マシンを前記ターゲット仮想マシンとして選択することを含む、
請求項１０に記載のソフトウェア定義型データセンター。
【請求項１２】
前記ＳＤＮコントローラはさらに、前記サービスクラスタ内の前記オンライン仮想マシンに対して負荷監視を実行し、負荷監視結果を定期的に取得するよう構成され、前記負荷監視はリソース負荷監視又はトラフィック負荷監視を含み、前記負荷監視結果は、前記サービスクラスタ内の各オンライン仮想マシンのリソース負荷情報又はトラフィック負荷情報を含む、
請求項１１に記載のソフトウェア定義型データセンター。
【請求項１３】
ＳＤＮコントローラと複数のエッジスイッチとを備えたソフトウェア定義型データセンターであって、前記複数のエッジスイッチは前記ＳＤＮコントローラに通信可能に接続され、サービスクラスタが前記ソフトウェア定義型データセンターに展開され、少なくとも２つのオンライン仮想マシンが前記サービスクラスタのサービングノードとして用いられ、前記少なくとも２つのオンライン仮想マシンのＩＰアドレスが共有ＩＰアドレスとして設定され、
前記複数のエッジスイッチは、前記ＳＤＮコントローラにパケット転送情報を要求し、前記ＳＤＮコントローラが送出した転送フローテーブルに従ってパケットを転送するよう構成され、
前記ＳＤＮコントローラは、前記サービスクラスタ内の各オンライン仮想マシンのエッジスイッチにトラフィック統計データ抽出要求を定期的に送出し、各オンライン仮想マシンの前記エッジスイッチによりフィードバックされるＴ１時点におけるトラフィック統計データ及びＴ２時点におけるトラフィック統計データを別々に受信し、各オンライン仮想マシンの前記エッジスイッチの前記Ｔ１時点における前記トラフィック統計データと前記Ｔ２時点における前記トラフィック統計データとの間の差異に従って、各オンライン仮想マシンのトラフィック負荷情報を取得するよう構成される、
ソフトウェア定義型データセンター。
【請求項１４】
前記ＳＤＮコントローラはさらに、前記サービスクラスタ内の各オンライン仮想マシンの前記エッジスイッチにトラフィック監視命令を送出するよう構成され、前記トラフィック監視命令は、前記サービスクラスタの各オンライン仮想マシンの前記エッジスイッチに、前記ＳＤＮコントローラが送出した前記転送フローテーブルに対応するパケットトラフィック統計データを収集するよう命令するのに用いられる、
請求項１３に記載のソフトウェア定義型データセンター。
【請求項１５】
前記ＳＤＮコントローラは特に、前記Ｔ１時点における各オンライン仮想マシンのサービス応答トラフィックを前記Ｔ１時点における前記トラフィック統計データから抽出し、前記Ｔ２時点における各オンライン仮想マシンのサービス応答トラフィックを前記Ｔ２時点における前記トラフィック統計データから抽出し、前記Ｔ１時点における前記サービス応答トラフィックと前記Ｔ２時点における前記サービス応答トラフィックとの間の差異を各オンライン仮想マシンの前記トラフィック負荷情報として用いるよう構成される、
請求項１３又は１４に記載のソフトウェア定義型データセンター。
【請求項１６】
プロセッサと、
メモリと、
バスと、
通信インタフェースと
を備えたコンピューティングデバイスであって、
前記メモリは実行命令を格納するよう構成され、前記プロセッサ及び前記メモリは前記バスを用いて接続され、前記コンピューティングデバイスが動作すると、前記デバイスが請求項１から６のいずれか一項に記載の方法を実行するように、前記プロセッサは前記メモリに格納された前記実行命令を実行する、
コンピューティングデバイス。
【請求項１７】
プロセッサと、
メモリと、
バスと、
通信インタフェースと
を備えたコンピューティングデバイスであって、
前記メモリは実行命令を格納するよう構成され、前記プロセッサ及び前記メモリは前記バスを用いて接続され、前記コンピューティングデバイスが動作すると、前記デバイスが請求項７から９のいずれか一項に記載の方法を実行するように、前記プロセッサは前記メモリに格納された前記実行命令を実行する、
コンピューティングデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はＩＴ技術に関し、具体的には、ソフトウェア定義型データセンター、並びにそのためのサービスクラスタスケジューリング方法及びトラフィック監視方法に関する。
【背景技術】
【０００２】
クラウドには、一般的に３つの展開モデルがある。つまり、パブリッククラウド（Ｐｕｂｌｉｃ  Ｃｌｏｕｄ：いくつかの企業が所有、運営し、コンピューティングリソースへの迅速なアクセスを別の組織又は個人に対して適正価格で提供する）、プライベートクラウド（Ｐｒｉｖａｔｅ  Ｃｌｏｕｄ：単一の企業又は個人が所有する）、及びハイブリッドクラウド（Ｈｙｂｒｉｄ  Ｃｌｏｕｄ：プライベートクラウドに基づき、戦略的なレベルでパブリッククラウドサービスと組み合わせる）である。仮想プライベートクラウド（Ｖｉｒｔｕａｌ  Ｐｒｉｖａｔｅ  Ｃｌｏｕｄ：ＶＰＣ）は、パブリッククラウドが提供する共有コンピューティングリソースに基づいて確立された動的な構成プールである。パブリッククラウドでは、全てのＶＰＣは互いに分離され、テナントがＶＰＣの要求に応じて様々な仮想化リソースを求めることができる。テナントは、パブリックネットワークのＩＰアドレスを用いて、ＶＰＣをパブリックネットワークに接続することができ、あるいは仮想プライベートネットワーク（Ｖｉｒｔｕａｌ  Ｐｒｉｖａｔｅ  Ｃｌｏｕｄ：ＶＰＮ）を用いて、ＶＰＣを従来型のＤＣ（Ｄａｔａ  Ｃｅｎｔｅｒ：ＤＣ）に接続することができる。
【０００３】
ソフトウェア定義型ネットワーキング（Ｓｏｆｔｗａｒｅ  Ｄｅｆｉｎｅｄ  Ｎｅｔｗｏｒｋｉｎｇ：ＳＤＮ）は、スタンフォード大学（米国）のクリーンスレートリサーチグループによって提唱されたネットワーク設計コンセプトである。核となる概念は、制御プレーンをネットワークデバイスのデータプレーンから分離し、ネットワーク制御権限を集中化し、オープンなプログラマブルインタフェースを提供することである。ＳＤＮコントローラは、リソースの仮想化を実装するために、良く知られたＯｐｅｎＦｌｏｗプロトコルなどの標準的なサウスバウンドインタフェースを用いて、最下層の物理転送デバイス間の差異をシールドし、上位層のサービスがネットワーク構成を実行し、要求に応じてネットワークリソースを呼び出すために柔軟なノースバウンドインタフェースを提供する。
【０００４】
ＳＤＮ技術及び仮想化技術を用いて確立されたデータセンターは、ソフトウェア定義型データセンター（Ｓｏｆｔｗａｒｅｓ  Ｄｅｆｉｎｅｄ  Ｄａｔａ  Ｃｅｎｔｅｒ：ＳＤＤＣ）と呼ばれ、データセンターのネットワークは、ソフトウェア定義型データセンターネットワーク（Ｓｏｆｔｗａｒｅ  Ｄｅｆｉｎｅｄ  Ｄａｔａ  Ｃｅｎｔｅｒ  Ｎｅｔｗｏｒｋ：ＳＤＤＣＮ）である。
【０００５】
従来のデータセンターでは、効率的で信頼できるセキュアで安定したサービスをユーザに提供するために、複数の同等のサーバが、サービスを提供し得るサーバクラスタを構成する。サーバクラスタは、サーバクラスタ内の全てのサーバの間に負荷分散を実装するために、負荷分散技術を用いて、全てのサーバの間でサービストラフィックを均等に共有し、サーバクラスタ内のサーバ群に要求を一様に割り当てる。現在のソフトウェア定義型データセンターＳＤＤＣでは、既存の技術を用いてＳＤＤＣＮ内に負荷分散装置を確立することができ、負荷分散装置はサーバクラスタ内のサービングノードにタスクを割り当てる。しかし、ＳＤＤＣでは、テナントが負荷分散装置クラスタを柔軟に構成することができ（例えば、仮想マシンを用いて実装される）、ＶＰＣのサービスクラスタはこの解決手法では考慮されないという特性は、サービスクラスタにおいて柔軟性のないサービングノードのスケジューリングを引き起こす。
【発明の概要】
【０００６】
本発明の実施形態は、クラウド環境に、より適した柔軟なサービスクラスタ管理方式を提供するために、ソフトウェア定義型データセンター、並びにそのためのサービスクラスタスケジューリング方法及びトラフィック監視方法を提供する。
【０００７】
第１の態様によれば、本出願はソフトウェア定義型データセンターにおいてサービスクラスタスケジューリング方法を提供し、ソフトウェア定義型データセンターはＳＤＮコントローラと複数のエッジスイッチとを含み、複数のエッジスイッチはＳＤＮコントローラに通信可能に接続され、サービスクラスタがソフトウェア定義型データセンターに展開され、少なくとも２つのオンライン仮想マシンがサービスクラスタのサービングノードとして用いられ、少なくとも２つのオンライン仮想マシンのＩＰアドレスが共有ＩＰアドレスとして設定される。スケジューリング方法は、ＳＤＮコントローラが第２のエッジスイッチにより報告されたユーザのサービス要求パケットを受信する段階であって、第２のエッジスイッチはユーザがアクセスするエッジスイッチである、受信する段階と、サービス要求パケット内の宛先ＩＰアドレス情報に従って、サービス要求パケットに対応するサービスクラスタを判定する段階と、ＳＤＮコントローラが負荷分散ポリシに従って、サービスクラスタ内のオンライン仮想マシンからターゲット仮想マシンを選択する段階であって、ターゲット仮想マシンはユーザにサービスを提供するよう構成される、選択する段階と、ＳＤＮコントローラがターゲット仮想マシンとユーザとの間の転送情報を決定し、転送情報に従って、第１の転送フローテーブルと第２の転送フローテーブルとを生成する段階であって、第１の転送フローテーブルは、ターゲット仮想マシンのエッジスイッチがパケットを転送するのに用いられ、第２の転送フローテーブルは、第２のエッジスイッチがパケットを転送するのに用いられる、生成する段階と、ＳＤＮコントローラが第１の転送フローテーブルをターゲット仮想マシンのエッジスイッチに送出し、第２の転送フローテーブルを第２のエッジスイッチに送出する段階とを含む。
【０００８】
上述のスケジューリング方法を用いることで、ＬＢｅｒ又はＬＢｅｒクラスタが別々に確立され、ＳＤＮコントローラはＬＢｅｒの機能を実装するのに用いられる。ＳＤＤＣＮネットワークの核として、ＳＤＮコントローラは、比較的強力な能力を備えて構成される。本発明のこの実施形態では、ＳＤＮコントローラはＬＢｅｒとして用いられる。ＳＤＮの動的拡張能力が制御層で多重化されることができ、ＳＤＮネットワークのネットワークリソースはネットワーク転送層で多重化されることができる。実装の複雑性は低く、投資コストは低い。さらに、ＳＤＮコントローラはＬＢｅｒとして用いられ、これにより、転送経路が長く転送効率が低いという従来技術の問題を回避する。なぜなら、別個のＬＢｅｒが用いられる場合、ユーザトラフィックは常にＬＢｅｒにルーティングされ、その後サービングノードに転送又は再ルーティングされるからである。ユーザトラフィックは、ＳＤＮネットワークの入り口でエッジスイッチに分配され、ＳＤＮコントローラは最適経路を選択する。転送経路は短く、転送効率は高い。
【０００９】
第１の態様の実装方式では、ＳＤＮコントローラは、サービスクラスタ内の各オンライン仮想マシンのリソース負荷情報又はトラフィック負荷情報を取得し、最小リソース負荷又は最小トラフィック負荷を有する仮想マシンをターゲット仮想マシンとして選択する。
【００１０】
ＳＤＮコントローラは、サービスクラスタ内のオンライン仮想マシンに対して負荷監視を実行して、負荷監視結果を定期的に取得することが好ましく、負荷監視には、リソース負荷監視又はトラフィック負荷監視が含まれる。ＳＤＮコントローラは、サービスクラスタ内の各オンライン仮想マシンのリソース負荷情報又はトラフィック負荷情報を負荷監視結果から取得する。
【００１１】
上述の実装方式では、ＳＤＮコントローラは、より適したターゲット仮想マシンを選択するために、サービスクラスタのリソース又はトラフィックの状態をアクティブに監視し、監視したリアルタイムの情報に従って、負荷分散ポリシをいつ実行するかを決定する。
【００１２】
第２の態様によれば、本出願はソフトウェア定義型データセンターにおけるサービスクラスタトラフィック監視方法を提供し、ソフトウェア定義型データセンターはＳＤＮコントローラと複数のエッジスイッチとを含み、複数のエッジスイッチはＳＤＮコントローラに通信可能に接続され、サービスクラスタがソフトウェア定義型データセンターにさらに展開され、少なくとも２つのオンライン仮想マシンがサービスクラスタのサービングノードとして用いられ、少なくとも２つのオンライン仮想マシンのＩＰアドレスが共有ＩＰアドレスとして設定される。本方法は、ＳＤＮコントローラがサービスクラスタ内の各オンライン仮想マシンのエッジスイッチにトラフィック統計データ抽出要求を定期的に送出する段階と、ＳＤＮコントローラが各オンライン仮想マシンのエッジスイッチによりフィードバックされるＴ１時点におけるトラフィック統計データ及びＴ２時点におけるトラフィック統計データを別々に受信する段階と、ＳＤＮコントローラが各オンライン仮想マシンのエッジスイッチのＴ１時点におけるトラフィック統計データとＴ２時点におけるトラフィック統計データとの間の差異に従って、各オンライン仮想マシンのトラフィック負荷情報を取得する段階とを含む。
【００１３】
トラフィック監視方法を用いることで、本発明において提供されるＳＤＮコントローラは、各サービングノードのトラフィック負荷の状態に従って、ユーザにサービスを提供する適切なサービングノードを選択するために、サービスクラスタ内のサービングノードに関するリアルタイムのトラフィック状態を取得することができ、又は各サービングノードのトラフィック負荷の状態に従って、サービスクラスタのキャパシティ拡大又はキャパシティ縮小の操作を実行することができる。
【００１４】
第３の態様によれば、本出願はソフトウェア定義型データセンターを提供し、ソフトウェア定義型データセンターはＳＤＮコントローラと複数のエッジスイッチとを含み、複数のエッジスイッチはＳＤＮコントローラに通信可能に接続され、サービスクラスタがソフトウェア定義型データセンターに展開され、少なくとも２つのオンライン仮想マシンがサービスクラスタのサービングノードとして用いられ、少なくとも２つのオンライン仮想マシンのＩＰアドレスが共有ＩＰアドレスとして設定される。複数のエッジスイッチはＳＤＮコントローラにパケット転送情報を要求し、ＳＤＮコントローラが送出した転送フローテーブルに従ってパケットを転送するよう構成され、ＳＤＮコントローラは第２の態様のサービスクラスタスケジューリング方法を実装するよう構成される。
【００１５】
第４の態様によれば、本出願はソフトウェア定義型データセンターを提供し、ソフトウェア定義型データセンターはＳＤＮコントローラと複数のエッジスイッチとを含み、複数のエッジスイッチはＳＤＮコントローラに通信可能に接続され、サービスクラスタがソフトウェア定義型データセンターに展開され、少なくとも２つのオンライン仮想マシンがサービスクラスタのサービングノードとして用いられ、少なくとも２つのオンライン仮想マシンのＩＰアドレスが共有ＩＰアドレスとして設定される。複数のエッジスイッチはＳＤＮコントローラにパケット転送情報を要求し、ＳＤＮコントローラが送出した転送フローテーブルに従ってパケットを転送するよう構成され、ＳＤＮコントローラは第３の態様のサービスクラスタトラフィック監視方法を実装するよう構成される。
【００１６】
第５の態様によれば、本出願はコンピューティングデバイスを提供し、コンピューティングデバイスは、プロセッサと、メモリと、バスと、通信インタフェースとを含む。メモリは実行命令を格納するよう構成され、プロセッサ及びメモリはバスを用いて接続され、コンピューティングデバイスが動作すると、プロセッサはメモリに格納された実行命令を実行し、その結果、デバイスは第２の態様のサービスクラスタスケジューリング方法を実行する。
【００１７】
第６の態様によれば、本出願はコンピューティングデバイスを提供し、コンピューティングデバイスは、プロセッサと、メモリと、バスと、通信インタフェースとを含む。メモリは実行命令を格納するよう構成され、プロセッサ及びメモリはバスを用いて接続され、コンピューティングデバイスが動作すると、プロセッサはメモリに格納された実行命令を実行し、その結果、デバイスは第３の態様のサービスクラスタトラフィック監視方法を実行する。
【００１８】
それに応じて、この実施形態は対応するコンピュータ可読媒体をさらに提供する。コンピュータ可読媒体は、サービスクラスタ展開、スケジューリング、又はトラフィック監視方法のうちいずれか１つをコンピュータが実行することを可能にするコンピュータ実行可能命令を格納するよう構成される。
【００１９】
本出願では、ＳＤＮコントローラがＬＢｅｒとして用いられ、ＳＤＮの動的拡張能力は制御層で多重化されることができ、ＳＤＮネットワークにネットワークリソースはネットワーク転送層で多重化されることができる。実装の複雑性は低く、投資コストは低い。さらに、ＳＤＮコントローラはＬＢｅｒとして用いられ、これにより、転送経路が長く転送効率が低いという従来技術の問題を回避する。なぜなら、別個のＬＢｅｒが用いられる場合、ユーザトラフィックは常にＬＢｅｒにルーティングされ、その後サービングノードに転送又は再ルーティングされるからである。ユーザトラフィックは、ＳＤＮネットワークの入り口でエッジスイッチに分配され、ＳＤＮコントローラは最適経路を選択する。転送経路は短く、転送効率は高い。
【図面の簡単な説明】
【００２０】
本発明の実施形態において技術的解決手法をより明確に説明するために、以下では実施形態を説明するのに必要な添付図面を簡潔に説明する。以下の説明における添付図面は本発明のいくつかの実施形態を示しており、当業者は創造的努力をせずにこれらの添付図面から他の図面をさらに導出できることは明らかである。
【００２１】
【図１】本発明のある実施形態によるソフトウェア定義型データセンターの概略構造図である。
【００２２】
【図２】本発明のある実施形態による別のソフトウェア定義型データセンターの概略構造図である。
【００２３】
【図３】本発明のある実施形態による、新たなオンライン仮想マシンの識別に関する概略フローチャートである。
【００２４】
【図４】本発明のある実施形態による、ＡＲＰパケットのフォーマット構成の概略図である。
【００２５】
【図５】本発明のある実施形態による、サービスクラスタのトラフィック分配の概略フローチャートである。
【００２６】
【図６】本発明のある実施形態による汎用コンピューティングデバイスの概略構造図である。
【発明を実施するための形態】
【００２７】
以下では、本発明の実施形態における技術的解決手法を、本発明の実施形態における添付図面を参照して明確且つ十分に説明する。説明される実施形態は、本発明の実施形態の一部であって全てではないことは明らかである。当業者が本発明の実施形態に基づいて創造的努力をすることなく取得した他の全ての実施形態は、本発明の保護範囲内に含まれることになる。
【００２８】
本発明の詳細な説明を容易にするために、本発明に関わるコンセプトがまず以下に説明される。
【００２９】
テナントネットワーク：ＳＤＤＣにおいてテナントが確立したネットワーク。一般的に、テナントネットワークはＶＰＣに対応する。
【００３０】
サービスクラスタ：同じサービスをユーザに提供するサービングノード群から構成されるクラスタ。
【００３１】
サービングノード及び仮想マシン：サービングノードはサービスクラスタにおいてサービスを提供するノードを指し、仮想マシンはクラウド環境において仮想化によって得られるノードである。本発明の実施形態では、サービングノードは仮想マシンを用いることで実装されるが、ＳＤＤＣにおける全ての仮想マシンがサービングノードを実装するよう構成されるわけではない。別のサービスを実行する仮想マシンが存在してもよい。
【００３２】
静的仮想マシン：クラウド管理プラットフォームにより、静的設定情報を用いて構成される仮想マシン。仮想マシンはオンライン化されない、つまり仮想マシンはエッジスイッチに接続されない。
【００３３】
オンライン仮想マシン：アクティブ状態の仮想マシンを表す。オンライン仮想マシンは、オペレーションを実行することができ、別の関連デバイスと通信することができる。
【００３４】
仮想マシンのオンライン化：仮想マシンがアクティブ状態に入った場合に起こる関連動作又はイベントを表す。
【００３５】
共有ＩＰアドレス：同じサービスクラスタに属するサービングノード群が共有ＩＰアドレスとして設定される。共有ＩＰアドレスは同じＩＰアドレスであってよく、又は複数の異なるＩＰアドレスのセットであってよい。ＩＰアドレスのセットは、サービスクラスタ内のサービングノードにより共有される。例えば、サービスクラスタ内の全てのサービングノードのＩＰアドレスがＩＰ１として設定されると、ＩＰ１は共有ＩＰアドレスである。別の例では、サービスクラスタにおける共有ＩＰアドレスがＩＰ１及びＩＰ２であると、サービスクラスタ内のサービングノードのＩＰアドレスがＩＰ１又はＩＰ２として設定されてもよい。
【００３６】
図１は、本発明において例示されるクラウドデータセンターの構成図である。図１において、インフラストラクチャ層１には、コンピューティングデバイス、ストレージデバイス、物理スイッチングデバイスなど、クラウドデータセンターを構成するハードウェア装置が含まれる。ハードウェア装置は、単一タイプの専用デバイスであってよく、又はコンピューティング、ストレージ、及びスイッチングを統合した統合デバイスであってもよい。インフラストラクチャ層１内の物理スイッチングデバイスは、指定されたアーキテクチャに従ってネットワークを形成し、ネットワークコア領域を形成する。仮想スイッチはネットワークコア領域において仮想化されることができる。仮想スイッチは、ネットワークコア領域を越えた先にネットワークエッジ領域を形成する。コア領域及びエッジ領域におけるスイッチングデバイスは相互接続され、ＳＤＤＣインフラストラクチャネットワークを共同で構成する。インフラストラクチャ層１のリソースは、仮想化層２により仮想化された後に、仮想マシン（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ：仮想マシン）を派生することができる。仮想マシンは、ネットワークにアクセスするために、仮想スイッチにアクセスする。図１に示されるように、仮想マシン６１、仮想マシン６２、仮想マシン７１、仮想マシン７２、及び仮想マシン７３が仮想マシンであり、エッジスイッチ５１、５２、５３、５４、及び５５が仮想スイッチである。
【００３７】
仮想スイッチはＳＤＤＣＮネットワークを形成する。ＳＤＤＣＮネットワークはＳＤＮネットワークであり、ＳＤＮコントローラ３０を含む。エッジスイッチ５１〜５５は、ＳＤＮコントローラ３０の命令に従ってパケットを交換する。ＳＤＮコントローラ３０はさらに、図１のテナントネットワーク３１及びテナントネットワーク３２など、一連のネットワークインフラストラクチャ上の複数のテナントネットワーク（又はＶＰＣと呼ばれることもある）をカスタマイズすることができる。全てのテナントネットワークは互いに論理的に分離されている。各テナントは仮想マシンを展開し、アプリケーションソフトウェアをインストールし、排他的なテナントネットワーク内のユーザにサービスを公開することができる。可用性と性能を考慮すると、テナントはさらに、サービスに関してマルチポイント展開を実行してサービスクラスタを構築することができ、全てのサービングノードは同種のサービスを外部に提供する。図１に示されるように、テナントネットワーク３１はサービスクラスタ７を画定する。ＳＤＤＣネットワークはまた、図１の外部ネットワーク４などの外部ネットワークと相互に作用することができる。ユーザ６３は、外部ネットワーク４を用いて、ＳＤＤＣ内のユーザ又はサービスに接続する。
【００３８】
クラウド環境では、ＬＢ負荷分散装置（Ｌｏａｄ  Ｂａｌａｎｃｅｒ：ＬＢｅｒ）の担い手は仮想マシンである。各仮想マシンの単体の性能は限られている。テナントネットワークＶＰＣにおいて負荷分散のスケジューリング能力を保証し、サービスクラスタにおいて直線的に増加する必要条件を満たすために、一般的に複数の仮想マシンがＬＢｅｒクラスタを構築するのに用いられる必要がある。継続的に調整されるＬＢｅｒクラスタの場合、ＬＢｅｒ間の同期の一貫性及び適時性がサービスのオンライン化レートに影響を及ぼす可能性がある。その一方で、クラウド環境におけるサービスクラスタ構成は柔軟である。テナントはサービスクラスタをいつでも柔軟に構成することができ、キャパシティ拡大及びキャパシティ縮小は比較的頻繁に行われる。サービスクラスタの確立、キャパシティ拡大、キャパシティ縮小、及び削除は、テナントの手動による介入を必要とし、柔軟性が不十分である。
【００３９】
上述の問題を解決するために、本発明のこの実施形態は、図１のＳＤＮコントローラ３０などのＳＤＮコントローラがＬＢｅｒのスケジューリング機能及び決定機能を実装するのに用いられ、ＳＤＮコントローラは、同じサービスクラスタ内のサービングノードの同じＩＰアドレス又は共有ＩＰアドレスに従って、サービスクラスタに対して自動化された管理を実行するという技術的解決手法を提供する。第１に、本発明のこの実施形態では、ＬＢｅｒ又はＬＢｅｒクラスタが別々に確立されるのではなく、ＳＤＮコントローラがＬＢｅｒのスケジューリング機能及び決定機能を実装するのに用いられる。第２に、サービスクラスタ内の全てのノードが共有ＩＰアドレスとして設定される。ＳＤＮコントローラは、テナントネットワーク内のＩＰアドレスの競合をキャプチャし、共有ＩＰアドレスを識別して共有ＩＰアドレスに基づいてサービスクラスタを管理し、メディアアクセス制御（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ：ＭＡＣ）アドレスを用いてサービスクラスタ内の異なるサービングノードを区別する。さらに、ＳＤＮコントローラはサービングノードのＬＢ原理に従い、パケット転送フローテーブルをカスタマイズして、ユーザトラフィックを特定のサービングノードに送信するようスイッチに命令する。スイッチは、ＳＤＮコントローラが送出した転送フローテーブルを受信し、転送フローテーブルの命令に従ってトラフィックを分配する。
【００４０】
ＳＤＤＣＮネットワークの核として、ＳＤＮコントローラは、比較的強力な能力を備えて構成される。本発明のこの実施形態では、ＳＤＮコントローラはＬＢｅｒのスケジューリング機能及び決定機能を実装するのに用いられる。ＳＤＮの動的拡張能力は制御層で多重化されることができ、ＳＤＮネットワークのネットワークリソースはネットワーク転送層で多重化されることができる。実装の複雑性は低く、投資コストは低い。そのほかに、ＳＤＮコントローラは共有ＩＰアドレスを用いてクラスタを管理し、ＳＤＮコントローラは、サービスクラスタの確立、キャパシティ拡大、キャパシティ縮小、及び削除を、テナントの手動による介入を必要とすることなく自動的に完了し、テナント体験は良好である。さらに、ＳＤＮコントローラはＬＢｅｒとして用いられ、これにより、転送経路が長く転送効率が低いという従来技術の問題を回避する。なぜなら、別個のＬＢｅｒが用いられる場合、ユーザトラフィックは常にＬＢｅｒにルーティングされ、その後サービングノードに転送又は再ルーティングされるからである。ユーザトラフィックは、ＳＤＮネットワークの入り口でエッジスイッチに分配され、ＳＤＮコントローラは最適経路を選択する。転送経路は短く、転送効率は高い。
【００４１】
以下では、本発明のこの実施形態における特定の実装の細部を特定の実装方式を参照して詳細に説明する。
［サービスクラスタの展開と管理］
【００４２】
本発明のこの実施形態では、ＳＤＮコントローラがサービスクラスタを管理し、その管理には、サービスクラスタの確立、キャパシティ拡大、キャパシティ縮小、及び削除が含まれる。サービスクラスタの管理には、サービスクラスタの健全性チェックがさらに含まれてもよい。
【００４３】
図２を参照すると（図１及び図２においてテナントが構成したエッジスイッチ及びサービスクラスタの状態が異なり、この差異は特定の実装におけるテナント構成状態の多様性を表すためだけに用いられるが、図１及び図２がシステム構成及び方法の実装において本質的な差異を有することを表してはいない）、図２は、同じテナントが確立したサービスクラスタＡ及びサービスクラスタＢを示す。サービスクラスタＡの共有ＩＰアドレスはＩＰ０として設定され、サービスクラスタＡの共有ＩＰアドレスはＩＰ１として設定される。テナントが構成したサービスクラスタＡは３つのサービングノードを含み、サービングノードＡ１のＩＰアドレス及びＭＡＣアドレスはそれぞれ（ＩＰ０、ＭＡＣ１）、サービングノードＡ２のＩＰアドレス及びＭＡＣアドレスはそれぞれ（ＩＰ０、ＭＡＣ２）、サービングノードＡ３のＩＰアドレス及びＭＡＣアドレスはそれぞれ（ＩＰ０、ＭＡＣ３）であると考えられる。サービスクラスタＢは３つのサービングノードを含み、サービングノードＢ１のＩＰアドレス及びＭＡＣアドレスはそれぞれ（ＩＰ１、ＭＡＣ４）、サービングノードＢ２のＩＰアドレス及びＭＡＣアドレスはそれぞれ（ＩＰ１、ＭＡＣ５）、サービングノードＢ３のＩＰアドレス及びＭＡＣアドレスはそれぞれ（ＩＰ１、ＭＡＣ６）である。
【００４４】
ＳＤＮコントローラ３０は共有ＩＰアドレスに従ってテナントのサービスクラスタを管理し、テナントネットワークにおいて共有ＩＰアドレスのサービングノードを識別し、共有ＩＰアドレスのサービングノードに基づいて、サービスクラスタを確立してサービスクラスタのキャパシティを拡大し、サービスクラスタ内の各ノードの健全性ステータスを定期的に検出し、健全性チェック結果に従ってサービスクラスタのキャパシティを縮小する、又はサービスクラスタを削除する。
【００４５】
（１）サービスクラスタの確立又はサービスクラスタのキャパシティ拡大
【００４６】
ＳＤＮコントローラ３０は、サービングノードを（仮想マシンを用いるなどして）サービスクラスタに追加する、又はサービングノードによる新たなサービスクラスタを確立する。それには、仮想マシンがオンラインであり且つ動作していると判定される必要がある。なぜなら、オンラインであり且つ動作している、という状態にない仮想マシンがサービスクラスタに追加され、その仮想マシンはサービスクラスタにおいてタスクを実行するよう構成されているが、オンラインでない場合、サービスクラスタのサービス処理が影響を受けるからである。したがって、ＳＤＮコントローラ３０は、仮想マシンがオンラインで動作している場合、オンラインで動作している仮想マシンをサービスクラスタに追加する必要がある、又は仮想マシンによる新たなサービスクラスタを確立する必要がある。本発明のこの実施形態では、サービングノードはＳＤＤＣ内の仮想マシンを用いて実装される。ネットワークにつながった後に、ＳＤＮコントローラ３０は、ＳＤＤＣ内の各静的仮想マシンの静的設定情報、例えば、各静的仮想マシンが属するテナント及びサブネット、並びにＭＡＣアドレス、ＩＰアドレス、及びゲートウェイなどの情報（これらは仮想マシンのものである）をクラウド管理プラットフォームから取得することができる。しかし、ＳＤＮコントローラ３０は、各静的仮想マシンの実稼働状態が分からず、静的仮想マシンがテナントネットワークのエッジスイッチにアクセスするか直接確認することができない。本発明のこの実施形態は、オンライン仮想マシンを識別するために、ＳＤＮコントローラ３０により用いられる方法を提供する。オンライン仮想マシンを識別した後に、ＳＤＮコントローラ３０はサービスクラスタを確立する、又は確立したサービスクラスタに仮想マシンを追加する。具体的には、ＳＤＮコントローラ３０は、新たなオンライン仮想マシンのエッジスイッチにより送信される仮想マシンのオンライン化イベントを取得する。ＳＤＮコントローラ３０は、新たなオンライン仮想マシンのＭＡＣアドレスを取得し、新たなオンライン仮想マシンのＭＡＣアドレスを、複数の静的仮想マシンから選択した仮想マシン候補のＩＰアドレスと照合し、仮想マシン候補のＭＡＣアドレスが新たなオンライン仮想マシンのＭＡＣアドレスと一致する場合、仮想マシン候補を新たなオンライン仮想マシンとして決定し、新たなオンライン仮想マシンのエッジスイッチを仮想マシン候補にバインドする。ＳＤＮコントローラ３０はさらに、新たなオンライン仮想マシンのＩＰアドレスが共有ＩＰアドレスであるかどうかを識別し、新たなオンライン仮想マシンのＩＰアドレスが共有ＩＰアドレスである場合、共有ＩＰアドレスに対応するサービスクラスタに新たなオンライン仮想マシンを展開する。
【００４７】
本発明のこの実施形態では、ＳＤＮコントローラ３０は、アクティブ識別及びパッシブキャプチャという２つの方式のいずれかでオンライン仮想マシンを識別することができる。ＳＤＮコントローラ３０によるアクティブ識別は、仮想マシンがエッジスイッチにおいて最近オンライン化したことが分かった後に、新たなオンライン仮想マシンを識別するために、ＳＤＮコントローラ３０が、識別要求メッセージを新たなオンライン仮想マシンにアクティブに送信して、仮想マシンのＭＡＣアドレスを取得することであり得る。ＳＤＮコントローラ３０によるパッシブキャプチャは、新たなオンライン仮想マシンを識別するために、ＳＤＮコントローラ３０が新たなオンライン仮想マシンのＭＡＣアドレスをチェックすることであり得る。
【００４８】
図３は、ＳＤＮコントローラ３０による仮想マシンのアクティブな識別の実装フローチャートである（仮想マシンを用いることで、サービングノードが実装される）。Ｓ３１．新たなオンライン仮想マシンが第１のエッジスイッチに接続されている場合（新たなオンライン仮想マシンは、現在のＳＤＤＣ内のテナント用に構成された複数の仮想マシンのうちいずれか１つであり、第１のエッジスイッチは、新たなオンライン仮想マシンへの接続を確立し、ＳＤＤＣネットワーク内の複数のエッジスイッチからなるものであるエッジスイッチである）、ＳＤＮコントローラ３０は、インタフェースアップ（ｉｎｔｅｒｆａｃｅ  ＵＰ）イベントなど、第１のエッジスイッチにより送信された仮想マシンのオンライン化イベントを受信する。
【００４９】
Ｓ３２．ＳＤＮコントローラ３０は仮想マシン候補を選択する。
【００５０】
第１のエッジスイッチのインタフェース報告イベントを受信した後に、ＳＤＮコントローラ３０は、仮想マシンのオンライン化イベントが発生したと判定し、また複数の静的に構成された仮想マシン（その静的設定情報はＳＤＮコントローラ３０に格納されている）のうちどれが、新たなオンライン仮想マシンであるかをさらに判定する必要がある。この実施形態では、ＳＤＮコントローラ３０はまず、静的に構成された仮想マシン（その静的設定情報はＳＤＮコントローラ３０に格納されている）から仮想マシン候補を選択する（ＳＤＮコントローラ３０が選択した仮想マシン候補は、仮想マシン候補セットを構成し、仮想マシン候補セットには、１つ又は少なくとも２つの仮想マシン候補が含まれ、本発明のこの実施形態は、仮想マシン候補セットには１つの仮想マシン候補が含まれる可能性があるという特別なシナリオを提供する）。仮想マシン候補を選択する目的は、仮想マシン候補が新たなオンライン仮想マシンであるかどうかを検証することである。検証の精度を保証するために、選択した仮想マシン候補セットの範囲は、ＳＤＮコントローラ上に静的に構成された全ての仮想マシンであってよい。選択した仮想マシン候補はさらに選別されてよく、例えば、特定のエッジスイッチにバインドされた仮想マシンが、静的に構成された全ての仮想マシンから除去される。ある特定の選択方式は次の通りである。ＳＤＮコントローラ３０はまず、特定のエッジスイッチにバインドされていない静的に構成された仮想マシンのセットを決定し、ＳＤＮコントローラ３０が新たなオンライン仮想マシンの識別を完了するまで、決定したセット内の静的に構成された仮想マシンを１つ１つ選択する。
【００５１】
Ｓ３３．ＳＤＮコントローラ３０は仮想マシン候補のゲートウェイをシミュレートして、新たなオンライン仮想マシンに識別要求メッセージを送信する。識別要求メッセージは、新たなオンライン仮想マシンに、そのＭＡＣアドレスを報告するよう命令するのに用いられる。
【００５２】
識別要求メッセージの１つの特定の実装方式は、アドレス解決プロトコル（Ａｄｒｅｓｓ  Ｒｅｓｏｌｕｔｉｏｎ  Ｐｒｏｔｏｃｏｌ：ＡＲＰ）要求を用いている。ＡＲＰ要求は、仮想マシン候補のゲートウェイをシミュレートすることで、ＳＤＮコントローラ３０により送信される。ＡＲＰ要求の目的は、仮想マシン候補に、そのメディアアクセス制御（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ：ＭＡＣ）アドレスを報告するよう要求することである。
【００５３】
図４は、イーサネット（登録商標）に基づくＡＲＰパケットのフォーマット構成の概略図である。ＡＲＰデータパケットには２つの部分があり、最初の部分がイーサネット（登録商標）ヘッダ、２番目の部分がＡＰＲ要求／応答部である。この実施形態において、仮想マシン候補のゲートウェイをシミュレートすることでＳＤＮコントローラ３０により構築されるＡＲＰ要求パケットのイーサネット（登録商標）ヘッダ内の宛先ＭＡＣアドレスには、ＦＦ：ＦＦ：ＦＦ：ＦＦ：ＦＦ：ＦＦが書き込まれる。これは、ＡＲＰパケットがブロードキャストの形態で送信されることを表す。ＡＲＰ要求パケットのイーサネット（登録商標）ヘッダ内の送信元ＭＡＣアドレスには、仮想マシン候補のゲートウェイのＭＡＣアドレスが書き込まれる。これは、ＡＲＰ要求パケットの最初のホップが仮想マシン候補のゲートウェイを介して送信されることを表す。ＡＲＰ要求パケットのＡＰＲ要求部の送信元ＩＰアドレス及び送信元ＭＡＣアドレスには、仮想マシン候補のゲートウェイのＩＰアドレス及びＭＡＣアドレスがそれぞれ書き込まれる。これは、ＡＲＰ要求パケットが、仮想マシン候補のゲートウェイにより生成され送信されることを表す。ＡＲＰ要求パケットのＡＰＲ要求部の宛先ＩＰアドレスには、仮想マシン候補のＩＰアドレスが書き込まれる。ＡＲＰ要求パケットのＡＰＲ要求部の宛先ＭＡＣアドレスには、００：００：００：００：００：００などの特別なフィールドが書き込まれる。これは、宛先ＭＡＣアドレスが応答側により書き込まれることを表す。
【００５４】
ＳＤＮコントローラ３０は、仮想マシン候補セットの仮想マシン候補ごとに１つのＡＲＰ要求パケットを構築し、各ＡＲＰ要求パケットは、各仮想マシン候補に対応する。この段階では、ＳＤＮコントローラは、静的に構成された仮想マシンを１つ１つトラバースし、１つの仮想マシン候補が決定されると１つのＡＲＰ要求パケットを構築し、構築したＡＲＰ要求パケットを送信してよい、又は全ての仮想マシン候補が選択された後に、仮想マシン候補ごとにＡＲＰ要求パケットを構築して、構築した複数のＡＲＰ要求パケットを同時に送信してもよい。上述の２つの特定の実装方式は両方とも、本発明のこの実施形態に適用できる。
【００５５】
Ｓ３４．ＳＤＮコントローラ３０は、新たなオンライン仮想マシンが送信した識別要求応答メッセージを受信する。識別要求応答メッセージは、新たなオンライン仮想マシンのＭＡＣアドレスを保持している。
【００５６】
具体的には、ＳＤＮコントローラ３０は、第１のエッジスイッチにより報告されたＰａｃｋｅｔＩｎイベントを受信し、ＡＲＰ応答パケットを取得するためにパケットをパースする。
【００５７】
Ｓ３５．ＳＤＮコントローラ３０は、ＡＲＰ応答パケット内の送信元ＭＡＣアドレスが仮想マシン候補の静的設定情報内のＭＡＣアドレスと一致するかチェックする。ＡＲＰ応答パケット内の送信元ＭＡＣアドレスが仮想マシン候補の静的設定情報内のＭＡＣアドレスと一致する場合、新たなオンライン仮想マシンはＳＤＮコントローラ３０により識別され、仮想マシン候補は、ＡＲＰ応答を送信する新たなオンライン仮想マシンに適合し、第１のエッジスイッチは仮想マシン候補にバインドされる。
【００５８】
具体的には、第１のエッジスイッチについての情報が、決定した仮想マシン候補の静的設定情報に記録される。
【００５９】
この実施形態では、非同期モードが、Ｓ３３、Ｓ３４、及びＳ３５において用いられてもよい。つまり、Ｓ３３では、仮想マシン候補が選択された後に、ＡＲＰ要求パケットは選択した仮想マシン候補に向けて送信される。Ｓ３４では、ＡＲＰ応答パケットが受信された後に、事前に送信されたＡＲＰ要求応答パケットがどの仮想マシン候補向けのものか判定することができない。この場合、Ｓ３５では、仮想マシン候補セット内の仮想マシン候補が１つ１つチェックされる可能性がある。
【００６０】
新たなオンラインサービングノードをアクティブに識別する実装方式に加えて、ＳＤＮコントローラ３０はさらに、パッシブキャプチャ方式で新たなオンラインサービングノードを識別することもできる。新たなオンライン仮想マシンにより送信され、エッジスイッチにより転送される識別要求メッセージを受信した後に、ＳＤＮコントローラ３０は、新たなオンライン仮想マシンを識別するために、識別要求メッセージが保持する新たなオンライン仮想マシンのＭＡＣアドレスと、仮想マシン候補のＭＡＣアドレスとの間の一貫性を検出する。新たなオンライン仮想マシンにより送信される識別要求メッセージは、ＡＲＰ要求パケット（フリーのＡＲＰ要求を含む）であってもよい。ＳＤＮコントローラ３０は、受信したＡＲＰ要求パケットに従って、ＡＲＰ要求を送信する仮想マシンを新たなオンライン仮想マシンとして決定し、さらにＡＲＰ要求の送信元ＭＡＣと仮想マシン候補の静的設定情報のＭＡＣとの間の一貫性をチェックする。ＡＲＰ要求の送信元ＭＡＣが仮想マシン候補の静的設定情報のＭＡＣと一致する場合、新たなオンライン仮想マシンが仮想マシン候補に適合すると判定され、新たなオンライン仮想マシンはＳＤＮコントローラ３０により識別され、新たなオンライン仮想マシンのエッジスイッチが仮想マシン候補にバインドされる。
【００６１】
ＳＤＮコントローラ３０が新たなオンライン仮想マシンを識別した後に、ＳＤＮコントローラ３０は、新たなオンライン仮想マシンのＩＰアドレスと、テナントの別の仮想マシンのＩＰアドレスとが同じであるかチェックする（又は、新たなオンライン仮想マシンのＩＰアドレスと、サービスクラスタの予め設定した共有ＩＰアドレスとが同じであるかチェックする）。新たなオンライン仮想マシンのＩＰアドレスと、テナントの別の仮想マシンのＩＰアドレスとが同じである場合、ＳＤＮコントローラ３０は、新たなオンライン仮想マシンのＩＰアドレスが確立したサービスクラスタに対応しているかチェックする。新たなオンライン仮想マシンのＩＰアドレスが確立したサービスクラスタに対応する場合、ＳＤＮコントローラ３０は、確立したサービスクラスタに新たなオンライン仮想マシンを追加する。新たなオンライン仮想マシンのＩＰアドレスが確立したサービスクラスタに対応しない場合、新たなオンライン仮想マシンのＩＰアドレスを識別子として用いることで、新たなサービスクラスタが確立され、新たなオンライン仮想マシンが新たに確立したサービスクラスタに展開される。ＳＤＮコントローラ３０はまた、新たなオンライン仮想マシンのＩＰアドレスと、サービスクラスタの予め設定した共有ＩＰアドレスとが同じであるかチェックすることができる。新たなオンライン仮想マシンのＩＰアドレスとサービスクラスタに予め設定した共有ＩＰアドレスとが同じである場合、ＳＤＮコントローラ３０は、共有ＩＰアドレスに対応する確立したサービスクラスタに新たなオンライン仮想マシンを追加する、又は共有ＩＰアドレスを識別子として用いることで新たなサービスクラスタを確立して、確立したサービスクラスタに新たなオンライン仮想マシンを追加する。
【００６２】
本発明のこの実施形態では、ＳＤＮコントローラ３０は、全てのユーザアクセスのトラフィックを共有するために、共有ＩＰアドレスを用いて構成される複数の仮想マシン用のサービスクラスタを確立する。図２に示されるように、テナントネットワークは２つのサービスクラスタを有する。サービングノードＡ１、サービングノードＡ２、及びサービングノードＡ３はＩＰアドレスＩＰ０を共有し、ＭＡＣアドレスはそれぞれ、ＭＡＣ１、ＭＡＣ２、及びＭＡＣ３である。サービングノードＢ１、サービングノードＢ２、及びサービングノードＢ３はＩＰアドレスＩＰ１を共有し、ＭＡＣアドレスはそれぞれ、ＭＡＣ４、ＭＡＣ５、及びＭＡＣ６である。テナントネットワークは、共通部分を持つことを許可しているので、ＳＤＤＣＮにおいてＳＤＮコントローラ３０は、テナントとＩＰとの組み合わせを用いて、サービスクラスタを一意に識別することができる。
【００６３】
上述の仮想マシンのオンライン化には、新たに確立した仮想マシンが動作を開始するシナリオが含まれるだけでなく、仮想マシンを新たに追加する、又はＩＰアドレスを変更するなど、仮想マシンの新たなＩＰアドレスが有効になるようトリガするという別のシナリオも含まれる。
【００６４】
（２）サービスクラスタの削除又はサービスクラスタのキャパシティ縮小
【００６５】
サービスクラスタは動的に拡大縮小可能である。共有ＩＰを用いて構成された仮想マシンがテナントネットワークにおいてオンライン化されたことをＳＤＮコントローラが検出した場合には、ＳＤＮコントローラは指定したＩＰアドレスに対応するサービスクラスタのキャパシティを拡大し、サービスクラスタのキャパシティ縮小イベントが発生したことをＳＤＮコントローラが発見した場合には、ＳＤＮコントローラはサービスクラスタのキャパシティを縮小する。
【００６６】
サービングノード又は別の管理ノードが、サービスクラスタのキャパシティ縮小イベントをＳＤＮコントローラ３０に通知することができ、又はＳＤＮコントローラ３０は、ＳＤＮコントローラを用いて開始されるサービスクラスタの健全性チェックなど、サービスクラスタのキャパシティ縮小イベントをアクティブに検出し発見することができる。サービスクラスタのキャパシティ縮小イベントには、サービングノードのＩＰアドレスの機能停止が含まれてもよい。サービングノードが仮想マシンを用いて実装される場合、サービングノードのＩＰアドレスの機能停止が、仮想マシンのオフライン化、変更、障害、又はＩＰアドレス削除などのあらゆる条件になる可能性がある。
【００６７】
ＩＰアドレスを有する仮想マシンが故障していると判定された場合、ＳＤＮコントローラ３０は、故障状態にある仮想マシンのＩＰアドレスがサービスクラスタに対応するかチェックする。故障状態にある仮想マシンのＩＰアドレスがサービスクラスタに対応している場合、ＳＤＮコントローラ３０は、故障した仮想マシンのＩＰアドレスに対応するサービスクラスタから故障した仮想マシンを削除し、サービスクラスタの残りのサービングノードの数量が１より大きいかチェックする。サービスクラスタの残りのサービングノードの数量が１より小さいか１に等しい場合、ＩＰアドレスに対応するサービスクラスタは削除される。
【００６８】
（３）サービスクラスタの健全性チェック
【００６９】
本発明のこの実施形態では、ＳＤＮコントローラ３０は、サーバのキャパシティ縮小イベントが発生したかアクティブに検出することができる。例えば、障害のあるサービングノードをサービスクラスタからタイムリーに削除して、次のアクセストラフィックが障害のあるサービングノードに送信されないことを保証し、それにより、テナントサービスの高い可用性を保証するために、ＳＤＮコントローラ３０は、サービスクラスタ内のサービングノードに対して健全性チェックを定期的に実行し、健全性ステータスが必要条件を満たさないサービングノードの元のＩＰアドレスを無効にする。この実施形態では、ＳＤＮコントローラ３０は、ポートステータス監視、リンクステータス検出、又はフローテーブル監視の３つの方式のうちいずれか１つ又はこれらの組み合わせで、サービスクラスタ内のサービングノードの健全性ステータスを異なるネットワークレベルからチェックし、健全性チェック結果に従って、サービスクラスタの、ＩＰアドレスを有する任意のオンライン仮想マシンが故障しているか判定することができる。
【００７０】
ポートステータス監視：ポートステータス監視の方式は、サービングノードの物理層障害を検出するのに一般的に用いられる。ＳＤＮコントローラ３０は、管理者のリアルタイムコマンド又は静的構成を用いて、各エッジスイッチにポートステータス監視のロジックを構成することができ、これにより、ＳＤＤＣＮ内の各エッジスイッチは、サービスクラスタ内の各サービングノードのインタフェースステータスをリアルタイムで検出する。サービングノードのインタフェースステータスが変わった場合、ポートステータス（ＰｏｒｔＳｔａｔｕｓ）イベントがＳＤＮコントローラ３０に報告される。例えば、サービングノードとして用いられる仮想マシンの電源オフ、再起動、インタフェース障害、又はシャットダウンが、仮想マシンのインタフェースステータスがオンライン（ＵＰ）からオフライン（ＤＯＷＮ）に変更されるきっかけとなる可能性がある。ＳＤＮコントローラ３０は、少なくとも１つのエッジスイッチにより送信されたポートステータスイベントＰｏｒｔＳｔａｔｕｓ（仮想マシンインタフェースのオフラインなど）を受信し、ポートステータスイベントに従って異常なインタフェースステータスを有するポートを判定し、異常なインタフェースステータスを有するポートに対応する、ＩＰアドレスを有するオンライン仮想マシンが故障していると判定する。
【００７１】
リンクステータス検出：リンクステータス検出の方式は、サービングノードのリンク層障害を検出するのに一般的に用いられる。ＳＤＮコントローラ３０は、サービスクラスタ内の各サービングノードのゲートウェイをシミュレートし、仮想マシンのＩＰアドレスに従ってＡＲＰ要求を構築するなど、リンクステータス検出の要求メッセージを定期的に構築し、構築したＡＲＰ要求のパケットＰａｃｋｅｔＯｕｔを仮想マシンに対応するエッジスイッチに送信する。ＡＲＰ要求を受信した後、サービングノードがタイムリーに応答しない場合、ＡＲＰ応答が失効する可能性がある。有効期限の長さが予め設定した閾値を超えた場合、ＳＤＮコントローラ３０は、失効したＡＲＰ要求の宛先ＩＰアドレス（つまり、仮想マシンのＩＰアドレス）を故障状態として記録する。
【００７２】
フローテーブル監視：フローテーブル監視の方式は、サービングノードのネットワーク層障害及びトランスポート層障害を検出するのに一般的に用いられる。ＳＤＮコントローラ３０は、ユーザのサービス要求及びサービングノードのサービス応答を転送するために、各エッジスイッチに転送フローテーブルを送出する。エッジスイッチは、転送フローテーブルのアイドル時間をリアルタイムで検出するよう構成される。転送フローテーブルがどのパケットにも適合しない場合、アイドル時間が増え続ける。アイドル時間がエージングタイムに達すると、エッジスイッチは、転送フローテーブルを削除し、フローテーブル除去ＦｌｏｗＲｅｍｏｖｅｄイベント又はフローテーブル終了（Ｆｌｏｗ  Ｅｘｐｉｒｙ）イベントなど、転送フローテーブルのエージングイベントをＳＤＮコントローラ３０に報告する。ＦｌｏｗＲｅｍｏｖｅｄ（Ｅｘｐｉｒｙ）イベントを受信した後に、ＳＤＮコントローラ３０は、除去したフローテーブル又はフローテーブル終了イベントに対応する仮想マシンのＩＰアドレスを故障状態として記録する。
【００７３】
上述の３つの方式のうちいずれか１つで健全性チェックを実行することで、ＩＰアドレスを有する仮想マシンが故障していると判定された後に、サービスクラスタのキャパシティ縮小又は削除に関する上述の作業プロセスに従って、ＳＤＮコントローラ３０は、故障したＩＰアドレスを有する仮想マシンをサービスクラスタから削除することができる。
［ＳＤＮコントローラによるＬＢトラフィック分配の実行］
【００７４】
ＳＤＮコントローラ３０がサービスクラスタを確立した後、又はサービングノードをサービスクラスタに新たに追加した後、ＳＤＮコントローラ３０は、負荷分散原理に従ってサービスクラスタ内のサービングノードにトラフィックを分配することができる。図２に示されるように、ユーザ１のサービス要求は、ユーザ側に面したエッジスイッチ２００を用いてテナントネットワークに送信され、ＳＤＮコントローラ３０により送信された後にネットワークコア領域を横断し、サービス側に面したエッジスイッチ２０１を用いてテナントネットワークから外へ送信され、最終的にサービスクラスタＡ内のサービングノードＡ１に流れる。一方、サービングノードＡ１のサービス応答は、エッジスイッチ２０１を用いてテナントネットワークに送信され、ＳＤＮコントローラ３０により送信された後にネットワークコア領域を横断し、エッジスイッチ２００を用いてテナントネットワークから外へ送信され、最終的にユーザ１に流れる。転送プロセス全体では、ＳＤＮコントローラ３０はエッジスイッチを制御し、エッジスイッチ用の転送フローテーブルをカスタマイズして送出し、パケット送信元情報及び宛先情報を照合し、転送経路をパケットにカプセル化し、パケットを転送する必要がある。
【００７５】
図２のデータセンターに関連して、図５は、ユーザトラフィック分配のフローチャートである。具体的な段階は以下の通りである。
【００７６】
Ｓ５１．ユーザ１は、サービスクラスタ内のサービングノードにサービスを提供するよう要求し、ユーザ１のサービス要求パケットがユーザ１のエッジスイッチ２００に送られる。
【００７７】
Ｓ５２．ユーザのエッジスイッチ２００は、サービス要求パケットを受信した後に、適合した転送フローテーブルを見つけ出せず、ＰａｃｋｅｔＩｎイベントをＳＤＮコントローラ３０に報告して、ＳＤＮコントローラ３０にルーティング情報を送出するよう要求する。
【００７８】
Ｓ５３．ＳＤＮコントローラ３０は、サービス要求パケットのパケット送信元情報及び宛先情報をパースし、サービス要求パケットの宛先ＩＰアドレス情報に従って、サービス要求パケットに対応するサービスクラスタを判定し、予め設定した負荷分散ポリシに従って、サービスクラスタＡ内のサービングノードＡ１をターゲットサービングノードとして選択し、ユーザ１とサービングノードＡ１のエッジスイッチ２０１との間の転送情報を計算し、決定した転送情報に従って、エッジスイッチ２０１及びエッジスイッチ２００の転送フローテーブルをそれぞれ生成し、それぞれの転送フローテーブルをサービングノードＡ１のエッジスイッチ２０１及びユーザ１のエッジスイッチ２００にそれぞれ送出する。
【００７９】
ＳＤＮコントローラ３０は、ユーザ１及びサービングノードＡ１にそれぞれ対応する転送フローテーブルをそれぞれ生成し、これらの転送フローテーブルをエッジスイッチ２００及びエッジスイッチ２０１にそれぞれ送出する。ＳＤＮコントローラ３０は、これらのフローテーブルを同時に送出することができ、又はエッジスイッチ２０１の転送フローテーブルを最初に送出することができ、又はエッジスイッチ２００の転送フローテーブルを最初に送出することができる。転送フローテーブルをエッジスイッチ２０１に最初に送出することは、主に、サービングノードＡ１のエッジスイッチ２０１が、パケットが到着する前に、利用可能な転送フローテーブルを有することを保証し、サービングノードＡ１のエッジスイッチ２０１がＰａｃｋｅｔＩｎイベントをＳＤＮコントローラ３０に報告することを防止することである。エンドツーエンドの通信は常に相互に行われる。ＳＤＮコントローラ３０がエッジスイッチ２００及びエッジスイッチ２０１に送出した転送フローテーブルには、順方向と逆方向という２つの方向が含まれ、順フローテーブルはユーザ１の要求をサービングノードＡ１に転送するのに適用でき、逆フローテーブルはサービングノードＡ１のサービス応答をユーザ１に転送するのに適用できる。
【００８０】
Ｓ５４．エッジスイッチ２００は、ＳＤＮコントローラが送出した転送フローテーブルに従って、サービングノードＡ１のエッジスイッチ２０１にサービス要求パケットを転送する。
【００８１】
Ｓ５５．サービングノードＡ１のエッジスイッチ２０１は、サービス要求パケットをサービングノードＡ１に転送する。エッジスイッチとして、サービングノードＡ１のエッジスイッチ２０１は、アクセス先のホストが明確である場合、パケット内の宛先ＭＡＣアドレスに従ってパケットを転送するだけでよい。
【００８２】
Ｓ５６．サービングノードＡ１はユーザ１の要求に応答して、サービングノードＡ１のエッジスイッチ２０１にサービス応答を送信する。
【００８３】
Ｓ５７．サービングノードＡ１のエッジスイッチ２０１は、ＳＤＮコントローラ３０が送出した転送フローテーブルに従ってサービス応答を転送し、ユーザ１のエッジスイッチ２００にサービス応答パケットを転送する。
【００８４】
Ｓ５８．ユーザ１のエッジスイッチ２００は、サービス応答をユーザ１に転送する。ユーザ１のエッジスイッチ２００は、アクセス先のホストが明確である場合、パケット内の宛先ＭＡＣアドレスに従ってパケットを転送するだけでよい。
【表１】
2018504038.tif 000003
【００８５】
上述の表には、ユーザ１とサービングノードＡ１との間のインタラクションプロセスにおいて、関連するエッジスイッチ用にＳＤＮコントローラがカスタマイズして送出した転送フローテーブルが記載されている。ユーザ１の要求に対して、エッジスイッチ２００は、パケット送信元ＩＰ１１及び宛先ＩＰ０を照合し、エッジスイッチ２００への転送経路をパケットにカプセル化し、コアネットワークの入り口にパケットを送信する。ＩＰ１１及びＩＰ０が同じネットワークセグメントに属する場合、パケットの宛先ＭＡＣアドレスにはサービングノードＡ１のＭＡＣアドレスＭＡＣ１が直接書き込まれ、これは変更されない。ＩＰ１１及びＩＰ０が同じネットワークセグメントに存在しない場合、パケットの宛先ＭＡＣアドレスにはサービングノードＡ１のゲートウェイＭＡＣアドレスが書き込まれる。エッジスイッチ２０１は、パケットの宛先ＭＡＣアドレスをサービングノードＡ１のＭＡＣアドレスＭＡＣ１に変更する必要がある。エッジスイッチ２０１はパケットの宛先ＭＡＣ１を照合し、パケットをサービングノードＡ１に送信する。サービングノードＡ１の応答に対して、エッジスイッチ２０１はパケットの宛先ＩＰ１１を照合し、エッジスイッチ２００への転送経路をパケットにカプセル化し、コアネットワークの入り口にパケットを送信する。エッジスイッチ２００は、パケットの宛先ＭＡＣ１１の照合を実行して、パケットをユーザ１に送信する。
【００８６】
ユーザ１とサービングノードＡ１１との間のサービス要求及びサービス応答の次の転送プロセスは、最初のサービス要求パケット及び最初のサービス応答パケットの転送プロセスと同様である。
【００８７】
上述の解決手法は、負荷分散原理に従って、ＳＤＮコントローラ３０がどのようにしてユーザの最初のパケット用にサービングノードを最初に分配するかを説明している。実際のサービスでは、トラフィック分配について別のシナリオが存在する。サービスクラスタのサービングノードが障害を受けると、ＳＤＮコントローラ３０は新たなオンラインユーザトラフィックを障害のあるサービングノードに送信することができず、さらに、障害のあるサービングノードに送信されるユーザトラフィックを、サービスクラスタ内の別の正常なサービングノードに再送信する必要がある。ＳＤＮコントローラ３０は、エッジスイッチに関する、ユーザ及びサービングノードに対応する送出された転送フローテーブルをタイムリーに削除し、ユーザトラフィック分配プロセスに従ってユーザトラフィックに新たなサービングノードを再指定し、新たな転送フローテーブルを送出する必要がある。
［サービスクラスタ内のサービングノードの負荷監視］
【００８８】
本発明のこの実施形態では、ＬＢｅｒとして、ＳＤＮコントローラ３０はサービングノードのＬＢ原理に従い、パケット転送フローテーブルをカスタマイズして、ユーザトラフィックを特定のサービングノードに送信するようエッジスイッチに命令する。ＳＤＮコントローラ３０は、サービスクラスタ内のサービングノードの負荷を監視し、負荷監視結果に従ってＬＢｅｒの負荷分散機能を実行し、ターゲット仮想マシンを選択することができる。負荷監視の一般的なやり方では、ＳＤＮコントローラ３０は各サービングノードのリソース使用量ステータスを監視することができ、例えば、各サービングノードのＣＰＵリソース利用率、メモリ利用率、キャッシュ利用率、ハードディスク利用率、帯域幅利用率、又はこれらのリソースのあらゆる組み合わせなどのうち任意のリソースの使用量ステータスを監視することができる。本発明のこの実施形態では、ＳＤＮコントローラ３０による負荷分散を実装するために、従来技術におけるサービングノードのリソース使用量ステータスに従って負荷分散の決定を行うことに加えて、新たな実装方式がさらに提供される。ＳＤＮコントローラ３０は、サービングノードトラフィックの負荷分散原理に基づいて、負荷分散のスケジューリングを実行し、対応する転送フローテーブルをカスタマイズして、エッジスイッチにトラフィックを分配するよう命令する。
【００８９】
ＳＤＮコントローラ３０は、サービスクラスタ内のオンライン仮想マシンに対してリソース負荷監視又はトラフィック負荷監視を実行し、サービスクラスタ内の各オンライン仮想マシンのリソース負荷情報又はトラフィック負荷情報を負荷監視結果から定期的に取得する。ＳＤＮコントローラ３０は、サービスクラスタ内の各オンライン仮想マシンのリソース負荷情報又はトラフィック負荷情報を取得した後に、最小リソース負荷又は最小トラフィック負荷を有する仮想マシンをターゲット仮想マシンとして選択する。
【００９０】
ＳＤＮコントローラ３０は、各エッジスイッチに転送フローテーブルを送出すると、転送フローテーブルごとにトラフィックを監視するよう各エッジスイッチに命令することができる。又は、システムは、各エッジスイッチが転送フローテーブルごとにトラフィックを監視するというロジックを各エッジスイッチに構成することができる。ＳＤＤＣネットワーク内のエッジスイッチは、ＳＤＮコントローラ３０が送出した転送フローテーブルに従ってユーザのサービス要求及びサービングノードのサービス応答を転送し、各転送フローテーブルによって累積的に処理されたパケット量又はパケット長をリアルタイムで統計的に収集する。サービングノードのエッジスイッチにおいて、サービングノードのサービス応答によって累積的に処理されたパケット量は、サービングノードが応答したユーザ要求量を表し、サービングノードの負荷を間接的に反映する。ＳＤＮコントローラ３０は、サービングノードのトラフィック負荷の監視を実装するために、エッジスイッチが統計的に収集した各転送フローテーブルのトラフィック統計結果をサービングノードのエッジスイッチから定期的に収集し、各転送フローテーブルのトラフィック統計結果からサービス応答トラフィックデータを選別する。
【００９１】
図２に示されるように、テナントネットワーク内のサービスクラスタＢは３つのサービングノードであるＢ１、Ｂ２、及びＢ３を有し、これらは１つのＩＰアドレスＩＰ１を共有する。合計５人のユーザがサービスクラスタからサービスを要求する。ユーザ１及びユーザ４にはサービングノードＢ１がサービス提供し、ユーザ２及びユーザ５にはサービングノードＢ２がサービス提供し、ユーザ３にはサービングノードＢ３がサービス提供する。各サービングノードのエッジスイッチがサービス要求及び応答パケットを転送し且つ統計的に収集し、関連する転送フローテーブルの統計データフィールドに統計データを記録する。ＳＤＮコントローラは、転送フローテーブルのトラフィック統計データ抽出要求を周期的に又は定期的に送出し、抽出要求応答を受信した後に、サービス応答によって累積的に処理されたパケット量を取得する。過去のサンプリングデータを参照して、特定のサービングノードによって特定の期間内にユーザに提供されたサービストラフィックを計算することができ、そのサービストラフィックに従ってサービングノードの負荷が決定される。
【表２】
2018504038.tif 000004
【００９２】
ＳＤＮコントローラは、ある期間に従ってエッジスイッチのトラフィック統計データを収集する。表２には、異なる時点における各エッジスイッチに関して、異なる転送フローテーブルのサービス応答に対応するトラフィック統計データが記載されている。サービングノードＢ１は、ユーザ１及びユーザ４のサービス応答フローテーブル用のＮ１１パケット及びＮ１４パケットをＴ１時点において別々に処理し、［Ｎ１１＋ΔＮ１１］パケット及び［Ｎ１４＋ΔＮ１４］パケットをＴ２時点において別々に処理する。サービングノードＢ２は、ユーザ２及びユーザ５のサービス応答フローテーブル用のＮ２２パケット及びＮ２５パケットをＴ１時点において別々に処理し、［Ｎ２２＋ΔＮ２２］パケット及び［Ｎ２５＋ΔＮ２５］パケットをＴ２時点において別々に処理する。サービングノードＢ２は、ユーザ３のサービス応答フローテーブル用にＮ３３パケットをＴ１時点において処理し、［Ｎ３３＋ΔＮ３３］パケットをＴ２時点において処理する。
【００９３】
ＳＤＮコントローラ３０は、ある期間内の特定のサービングノードの負荷を取得するために、異なるユーザのサービス応答フローテーブルに関してサンプリング期間内に各サービングノードが処理したパケット量の増加を合計する。
【表３】
2018504038.tif 000005
【００９４】
表３には、ＳＤＮコントローラが計算した期間Ｔにおける各サービングノードのノード負荷が記載されている。期間ＴにおけるサービングノードＢ１のノード負荷は［ΔＮ１１＋ΔＮ１４］であり、期間ＴにおけるサービングノードＢ２のノード負荷は［ΔＮ２２＋ΔＮ２５］であり、期間ＴにおけるサービングノードＢ３のノード負荷はΔＮ３３である。
【００９５】
実施形態の全ての段階又は一部の段階が、ハードウェア又は関連するハードウェアに命令するプログラムにより実装されてよいことを、当業者は理解することができる。プログラムは、コンピュータ可読記憶媒体に格納されてよい。記憶媒体には、リードオンリメモリ、磁気ディスク、又は光ディスクが含まれてよい。
【００９６】
本発明のこの実施形態におけるＳＤＮコントローラは、ソフトウェアコンポーネント／プログラム、又は特定の回路モジュールなどのハードウェアモジュールを用いて実装されてよい。ＳＤＮコントローラがソフトウェアコンポーネントを用いて実装される場合、ソフトウェアコンポーネントは、コンピュータデバイス上で動作することができ、又はメディア媒体に格納することができる。ソフトウェアコンポーネントをロードするコンピュータデバイス、又はソフトウェアコンポーネントを格納するメディア媒体は、本発明のこの実施形態に関する特定の実装にも関連する。
【００９７】
図６に示されるコンピューティングデバイス６００には、プロセッサ６０２、メモリユニット６０４、入出力インタフェース６０６、通信インタフェース６０８、バス６１０、及びストレージデバイス６１２が含まれる。プロセッサ６０２、メモリユニット６０４、入出力インタフェース６０６、通信インタフェース６０８、及びストレージデバイス６１２は、バス６１０を用いて相互通信接続を実装する。
【００９８】
プロセッサ６０２はコンピューティングデバイス６００のコントロールセンターであり、本発明のこの実施形態において提供される技術的解決手法を実装するために、関連プログラムを実行するよう構成される。任意選択で、プロセッサ６０２には、１つ又は複数の中央処理装置（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ：ＣＰＵ）、例えば、図６に示される中央処理装置１及び中央処理装置２が含まれる。任意選択で、コンピューティングデバイス６００にはさらに、複数のプロセッサ６０２が含まれてよく、各プロセッサ６０２は、シングルコアプロセッサ（１つのＣＰＵを含む）でも、マルチコアプロセッサ（複数のＣＰＵを含む）でもよい。プロセッサ６０２は、汎用中央処理装置、マイクロプロセッサを用いてもよく、特定用途向け集積回路（Ａｐｐｌｉｃａｔｉｏｎ  ＳＱｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ：ＡＳＩＣ）、又は１つ又は複数の集積回路を用いてもよい。
【００９９】
プロセッサ６０２は、バス６１０を用いて、１つ又は複数のストレージソリューションに接続されてよい。ストレージソリューションには、メモリユニット６０４及びストレージデバイス６１２が含まれてよい。ストレージデバイス６１２は、リードオンリメモリ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ：ＲＯＭ）、スタティックストレージデバイス、ダイナミックストレージデバイス、又はランダムアクセスメモリ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ：ＲＡＭ）であってよい。メモリユニット６０４は、ランダムアクセスメモリであってよい。メモリユニット６０４は、プロセッサ６０２と統合されても、プロセッサ６０２の中に統合されてもよく、又はプロセッサ６０２から独立した１つ又は複数のストレージユニットであってもよい。
【０１００】
プロセッサ６０２、又はプロセッサ６０２内部のＣＰＵにより実行されるプログラムコードは、ストレージデバイス６１２又はメモリユニット６０４に格納されてよい。任意選択で、ストレージデバイス６１２内部に格納されたプログラムコード（オペレーティングシステム、アプリケーションプログラム、リソース割当てモジュール、又は通信モジュールなど）は、プロセッサ６０２により実行されるようメモリユニット６０４にコピーされる。
【０１０１】
ストレージデバイス６１２は、物理ハードディスク又は物理ハードディスクのパーティション（小型コンピュータシステムのインタフェースメモリ、又はグローバルネットワークブロックのデバイスボリュームを含む）、ネットワークストレージプロトコル（ネットワークファイルシステムＮＦＳなどのネットワークファイルシステム又はクラスタファイルシステムを含む）、ファイルに基づく仮想ストレージデバイス（仮想ディスクミラーリング）、又は論理ボリュームに基づくストレージデバイスであってもよい。ストレージデバイス６１２には、高速ランダムアクセスメモリ（ＲＡＭ）が含まれてよく、不揮発性メモリ、例えば、１つ又は複数のディスクメモリ、フラッシュメモリ、又は他の不揮発性メモリも含まれてよい。実施形態によっては、ストレージデバイスにはさらに、１つ又は複数のプロセッサ２０２から分離したリモートメモリ（通信インタフェース６０８を用いて通信ネットワークにアクセスするウェブディスクなど）が含まれてよく、通信ネットワークは、インターネット、イントラネット、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＬＡＮ）、ストレージエリアネットワーク（ＳＡＮ）、又は上述のネットワークの組み合わせであってよい。
【０１０２】
オペレーティングシステム（Ｄａｒｗｉｎ、ＲＴＸＣ、Ｌｉｎｕｘ（登録商標）、ＵＮＩＸ（登録商標）、ＯＳ  Ｘ、Ｗｉｎｄｏｗｓ（登録商標）など、又はＶｘＷｏｒｋｓなどの組み込みオペレーティングシステム）には、決まったシステムタスク（メモリ管理、ストレージデバイス制御、電源管理など）の制御及び管理を行い、様々なソフトウェアコンポーネントとハードウェアコンポーネントとの間の通信を容易にするよう構成された、様々なソフトウェアコンポーネント及び／又はドライバが含まれる。
【０１０３】
入出力インタフェース６０６は、入力したデータ及び情報を受信し、オペレーション結果などのデータを出力するよう構成される。
【０１０４】
通信インタフェース６０８は、コンピューティングデバイス６００と別のデバイス又は通信ネットワークとの間の通信を実装するために、例えば、限定されないが送受信機などのトランシーバ装置を用いる。
【０１０５】
バス６１０には、コンピューティングデバイス６００内の各コンポーネント（プロセッサ６０２、メモリユニット６０４、入出力インタフェース６０６、通信インタフェース６０８、及びストレージデバイス６１２など）の間で情報が送信されるチャネルが含まれてよい。任意選択で、バス６１０は、有線接続方式を用いてよく、又は無線通信方式を用いてよいが、本出願はこれに何も制限を設けてはいない。
【０１０６】
コンピューティングデバイス６００には、プロセッサ６０２、メモリユニット６０４、入出力インタフェース６０６、通信インタフェース６０８、バス６１０、及びストレージデバイス６１２だけが図６に示されていることに留意されたい。しかし、特定の実装プロセスでは、コンピューティングデバイス６００にはさらに、正常なオペレーションを実装するのに必要な別のコンポーネントが含まれることを、当業者は理解されたい。
【０１０７】
図６に示されるコンピューティングデバイスは、本発明の実施形態において提供されるサービスクラスタ展開方法、サービスクラスタスケジューリング方法、サービスクラスタ健全性チェック方法、又はサービスクラスタトラフィック監視方法を実行するのに適用されてよい。
【０１０８】
例えば、サービスクラスタ展開方法を実装するために、コンピューティングデバイス６００のメモリユニット６０４には展開モジュールが含まれ、プロセッサ６０２は展開モジュールにおいてプログラムコードを実行する。
【０１０９】
例えば、サービスクラスタスケジューリング方法を実装するために、コンピューティングデバイス６００のメモリユニット６０４にはスケジューリングモジュールが含まれ、プロセッサ６０２は展開モジュールにおいてプログラムコードを実行する。
【０１１０】
例えば、サービスクラスタ健全性チェック方法を実装するために、コンピューティングデバイス６００のメモリユニット６０４には健全性チェックモジュールが含まれ、プロセッサ６０２は展開モジュールにおいてプログラムコードを実行する。
【０１１１】
例えば、サービスクラスタトラフィック監視方法を実装するために、コンピューティングデバイス６００のメモリユニット６０４にはトラフィック監視モジュールが含まれ、プロセッサ６０２は展開モジュールにおいてプログラムコードを実行する。
【０１１２】
展開モジュール、スケジューリングモジュール、健全性チェックモジュール、又はトラフィック監視モジュールのうちいずれか１つは、１つ又は複数の動作命令を含むことができ、これにより、コンピューティングデバイス６００は、上述の説明に従って方法の１つ又は複数の段階を実行する。ＳＤＮコントローラのサービスクラスタ管理の機能コンポーネントなど、サービスクラスタ管理用の完全な解決手法を提供するために、展開モジュール、スケジューリングモジュール、健全性チェックモジュール、又はトラフィック監視モジュールは、１つの機能モジュールに統合されることもできる。
【０１１３】
上述の説明は単に本発明の例示的な実施形態にすぎないが、本発明を限定するよう意図されてはいない。本発明の精神及び原理から逸脱することなく行われたあらゆる変更、均等な置換、及び改良は、本発明の保護範囲内に含まれることになる。
【図１】
2018504038.tif 000006
【図２】
2018504038.tif 000007
【図３】
2018504038.tif 000008
【図４】
2018504038.tif 000009
【図５】
2018504038.tif 000010
【図６】
2018504038.tif 000011
【手続補正書】
【提出日】平成29年7月26日(2017.7.26)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ソフトウェア定義型データセンターにおけるサービスクラスタスケジューリング方法であって、前記ソフトウェア定義型データセンターは、ソフトウェア定義型ネットワーキング（ＳＤＮ）コントローラと複数のエッジスイッチとを備え、前記複数のエッジスイッチは前記ＳＤＮコントローラに通信可能に接続され、サービスクラスタが前記ソフトウェア定義型データセンターに展開され、少なくとも２つのオンライン仮想マシンが前記サービスクラスタのサービングノードとして用いられ、前記少なくとも２つのオンライン仮想マシンのＩＰアドレスが共有ＩＰアドレスとして設定され、
前記ＳＤＮコントローラが、第２のエッジスイッチにより報告されたユーザのサービス要求パケットを受信する段階であって、前記第２のエッジスイッチは前記ユーザがアクセスするエッジスイッチである、受信する段階と、
前記ＳＤＮコントローラが、前記サービス要求パケット内の宛先ＩＰアドレス情報に従って、前記サービス要求パケットに対応するサービスクラスタを判定する段階と、
前記ＳＤＮコントローラが負荷分散ポリシに従って、前記サービスクラスタ内の前記少なくとも２つのオンライン仮想マシンからターゲット仮想マシンを選択する段階であって、前記ターゲット仮想マシンは前記ユーザにサービスを提供する、選択する段階と、
前記ＳＤＮコントローラが前記ターゲット仮想マシンと前記ユーザとの間の転送情報を決定する段階と、
前記ＳＤＮコントローラが前記転送情報に従って、第１の転送フローテーブル及び第２の転送フローテーブルを生成する段階であって、前記第１の転送フローテーブルは、前記ターゲット仮想マシンのエッジスイッチがパケットを転送するのに用いられ、前記第２の転送フローテーブルは、前記第２のエッジスイッチがパケットを転送するのに用いられる、生成する段階と、
前記ＳＤＮコントローラが、前記第１の転送フローテーブルを前記ターゲット仮想マシンの前記エッジスイッチに送出する段階と、
前記ＳＤＮコントローラが、前記第２の転送フローテーブルを前記第２のエッジスイッチに送出する段階と
を備える
方法。
【請求項２】
前記ＳＤＮコントローラが負荷分散ポリシに従って、前記サービスクラスタ内の前記少なくとも２つのオンライン仮想マシンからターゲット仮想マシンを前記選択する段階は、
前記ＳＤＮコントローラが、前記サービスクラスタ内の各オンライン仮想マシンのリソース負荷情報又はトラフィック負荷情報を取得して、最小リソース負荷を有する仮想マシンを前記ターゲット仮想マシンとして選択する段階、又は最小トラフィック負荷を有する仮想マシンを前記ターゲット仮想マシンとして選択する段階を含む、
請求項１に記載の方法。
【請求項３】
前記ＳＤＮコントローラが、前記サービスクラスタ内の前記少なくとも２つのオンライン仮想マシンに対して負荷監視を実行し、負荷監視結果を定期的に取得する段階であって、前記負荷監視はリソース負荷監視又はトラフィック負荷監視を含む、取得する段階をさらに備え、
前記ＳＤＮコントローラが、前記サービスクラスタ内の各オンライン仮想マシンのリソース負荷情報又はトラフィック負荷情報を前記取得する段階は、
前記ＳＤＮコントローラが、前記サービスクラスタ内の各オンライン仮想マシンのリソース負荷情報又はトラフィック負荷情報を前記負荷監視結果から取得する段階を含む、
請求項２に記載の方法。
【請求項４】
前記ＳＤＮコントローラが、前記サービスクラスタ内の前記少なくとも２つのオンライン仮想マシンに対してトラフィック負荷監視を前記実行する段階は、
前記ＳＤＮコントローラが、前記サービスクラスタ内の各オンライン仮想マシンのエッジスイッチにトラフィック統計データ抽出要求を定期的に送出し、各オンライン仮想マシンの前記エッジスイッチによりフィードバックされるＴ１時点におけるトラフィック統計データ及びＴ２時点におけるトラフィック統計データを別々に受信する段階と、
前記ＳＤＮコントローラが、各オンライン仮想マシンの前記エッジスイッチの前記Ｔ１時点における前記トラフィック統計データと前記Ｔ２時点における前記トラフィック統計データとの間の差異に従って、各オンライン仮想マシンの前記トラフィック負荷情報を取得する段階と
を含む、
請求項３に記載の方法。
【請求項５】
前記ＳＤＮコントローラが、前記サービスクラスタ内の各オンライン仮想マシンのエッジスイッチにトラフィック統計データ抽出要求を定期的に前記送出する段階の前に、
前記ＳＤＮコントローラが、前記サービスクラスタ内の各オンライン仮想マシンの前記エッジスイッチにトラフィック監視命令を送出する段階をさらに備え、
前記トラフィック監視命令は、前記サービスクラスタ内の各オンライン仮想マシンの前記エッジスイッチに、前記ＳＤＮコントローラが送出した転送フローテーブルに対応するパケットトラフィック統計データを収集するよう命令するのに用いられる、
請求項４に記載の方法。
【請求項６】
前記ＳＤＮコントローラが、各オンライン仮想マシンの前記エッジスイッチの前記Ｔ１時点における前記トラフィック統計データと前記Ｔ２時点における前記トラフィック統計データとの間の差異に従って、各オンライン仮想マシンの前記トラフィック負荷情報を前記取得する段階の前に、
前記ＳＤＮコントローラが、前記Ｔ１時点における各オンライン仮想マシンのサービス応答トラフィックを前記Ｔ１時点における前記トラフィック統計データから抽出する段階、及び前記ＳＤＮコントローラが、前記Ｔ２時点における各オンライン仮想マシンのサービス応答トラフィックを前記Ｔ２時点における前記トラフィック統計データから抽出する段階と
前記ＳＤＮコントローラが、前記Ｔ１時点における前記サービス応答トラフィックと前記Ｔ２時点における前記サービス応答トラフィックとの間の差異を各オンライン仮想マシンの前記トラフィック負荷情報として用いる段階と
をさらに備える
請求項５に記載の方法。
【請求項７】
ソフトウェア定義型データセンターにおけるサービスクラスタトラフィック監視方法であって、前記ソフトウェア定義型データセンターは、ソフトウェア定義型ネットワーキング（ＳＤＮ）コントローラと複数のエッジスイッチとを備え、前記複数のエッジスイッチは前記ＳＤＮコントローラに通信可能に接続され、サービスクラスタが前記ソフトウェア定義型データセンターにさらに展開され、少なくとも２つのオンライン仮想マシンが前記サービスクラスタのサービングノードとして用いられ、前記少なくとも２つのオンライン仮想マシンのＩＰアドレスが共有ＩＰアドレスとして設定され、
前記ＳＤＮコントローラが、前記サービスクラスタ内の各オンライン仮想マシンのエッジスイッチにトラフィック統計データ抽出要求を定期的に送出する段階と、
前記ＳＤＮコントローラが、各オンライン仮想マシンの前記エッジスイッチによりフィードバックされるＴ１時点におけるトラフィック統計データ及びＴ２時点におけるトラフィック統計データを別々に受信する段階と、
前記ＳＤＮコントローラが、各オンライン仮想マシンの前記エッジスイッチの前記Ｔ１時点における前記トラフィック統計データと前記Ｔ２時点における前記トラフィック統計データとの間の差異に従って、各オンライン仮想マシンのトラフィック負荷情報を取得する段階と
を備える
方法。
【請求項８】
前記ＳＤＮコントローラが、前記サービスクラスタ内の各オンライン仮想マシンの前記エッジスイッチにトラフィック監視命令を送出する段階であって、前記トラフィック監視命令は、前記サービスクラスタ内の各オンライン仮想マシンの前記エッジスイッチに、前記ＳＤＮコントローラが送出した転送フローテーブルに対応するパケットトラフィック統計データを収集するよう命令するのに用いられる、送出する段階をさらに備える、
請求項７に記載の方法。
【請求項９】
前記ＳＤＮコントローラが、各オンライン仮想マシンの前記エッジスイッチの前記Ｔ１時点における前記トラフィック統計データと前記Ｔ２時点における前記トラフィック統計データとの間の差異に従って、各オンライン仮想マシンのトラフィック負荷情報を前記取得する段階は特に、
前記ＳＤＮコントローラが、前記Ｔ１時点における各オンライン仮想マシンのサービス応答トラフィックを前記Ｔ１時点における前記トラフィック統計データから抽出する段階、及び前記ＳＤＮコントローラが、前記Ｔ２時点における各オンライン仮想マシンのサービス応答トラフィックを前記Ｔ２時点における前記トラフィック統計データから抽出する段階と
前記ＳＤＮコントローラが、前記Ｔ１時点における前記サービス応答トラフィックと前記Ｔ２時点における前記サービス応答トラフィックとの間の差異を各オンライン仮想マシンの前記トラフィック負荷情報として用いる段階と
を備える
請求項７又は８に記載の方法。
【請求項１０】
ソフトウェア定義型ネットワーキング（ＳＤＮ）コントローラと複数のエッジスイッチとを備えたソフトウェア定義型データセンターであって、前記複数のエッジスイッチは前記ＳＤＮコントローラに通信可能に接続され、サービスクラスタが前記ソフトウェア定義型データセンターに展開され、少なくとも２つのオンライン仮想マシンが前記サービスクラスタのサービングノードとして用いられ、前記少なくとも２つのオンライン仮想マシンのＩＰアドレスが共有ＩＰアドレスとして設定され、
前記複数のエッジスイッチは、前記ＳＤＮコントローラにパケット転送情報を要求し、前記ＳＤＮコントローラが送出した転送フローテーブルに従ってパケットを転送し、
前記ＳＤＮコントローラは、ユーザがアクセスするエッジスイッチである第２のエッジスイッチにより報告された前記ユーザのサービス要求パケットを受信し、前記サービス要求パケット内の宛先ＩＰアドレス情報に従って、前記サービス要求パケットに対応するサービスクラスタを判定し、負荷分散ポリシに従って、前記サービスクラスタ内の前記少なくとも２つのオンライン仮想マシンから、前記ユーザにサービスを提供するターゲット仮想マシンを選択し、前記ターゲット仮想マシンと前記ユーザとの間の転送情報を決定し、前記転送情報に従って、第１の転送フローテーブル及び第２の転送フローテーブルを生成し、前記第１の転送フローテーブルを前記ターゲット仮想マシンの前記エッジスイッチに送出し、前記第２の転送フローテーブルを前記第２のエッジスイッチに送出し、前記第１の転送フローテーブルは、前記ターゲット仮想マシンの前記エッジスイッチがパケットを転送するのに用いられ、前記第２の転送フローテーブルは、前記第２のエッジスイッチがパケットを転送するのに用いられる、
ソフトウェア定義型データセンター。
【請求項１１】
前記ＳＤＮコントローラが前記ターゲット仮想マシンを選択することは特に、前記サービスクラスタ内の各オンライン仮想マシンのリソース負荷情報又はトラフィック負荷情報を取得すること、及び最小リソース負荷を有する仮想マシンを前記ターゲット仮想マシンとして選択すること、又は最小トラフィック負荷を有する仮想マシンを前記ターゲット仮想マシンとして選択することを含む、
請求項１０に記載のソフトウェア定義型データセンター。
【請求項１２】
前記ＳＤＮコントローラはさらに、前記サービスクラスタ内の前記少なくとも２つのオンライン仮想マシンに対して負荷監視を実行し、負荷監視結果を定期的に取得し、前記負荷監視はリソース負荷監視又はトラフィック負荷監視を含み、前記負荷監視結果は、前記サービスクラスタ内の各オンライン仮想マシンのリソース負荷情報又はトラフィック負荷情報を含む、
請求項１１に記載のソフトウェア定義型データセンター。
【請求項１３】
ソフトウェア定義型ネットワーキング（ＳＤＮ）コントローラと複数のエッジスイッチとを備えたソフトウェア定義型データセンターであって、前記複数のエッジスイッチは前記ＳＤＮコントローラに通信可能に接続され、サービスクラスタが前記ソフトウェア定義型データセンターに展開され、少なくとも２つのオンライン仮想マシンが前記サービスクラスタのサービングノードとして用いられ、前記少なくとも２つのオンライン仮想マシンのＩＰアドレスが共有ＩＰアドレスとして設定され、
前記複数のエッジスイッチは、前記ＳＤＮコントローラにパケット転送情報を要求し、前記ＳＤＮコントローラが送出した転送フローテーブルに従ってパケットを転送し、
前記ＳＤＮコントローラは、前記サービスクラスタ内の各オンライン仮想マシンのエッジスイッチにトラフィック統計データ抽出要求を定期的に送出し、各オンライン仮想マシンの前記エッジスイッチによりフィードバックされるＴ１時点におけるトラフィック統計データ及びＴ２時点におけるトラフィック統計データを別々に受信し、各オンライン仮想マシンの前記エッジスイッチの前記Ｔ１時点における前記トラフィック統計データと前記Ｔ２時点における前記トラフィック統計データとの間の差異に従って、各オンライン仮想マシンのトラフィック負荷情報を取得する、
ソフトウェア定義型データセンター。
【請求項１４】
前記ＳＤＮコントローラはさらに、前記サービスクラスタ内の各オンライン仮想マシンの前記エッジスイッチにトラフィック監視命令を送出し、前記トラフィック監視命令は、前記サービスクラスタの各オンライン仮想マシンの前記エッジスイッチに、前記ＳＤＮコントローラが送出した前記転送フローテーブルに対応するパケットトラフィック統計データを収集するよう命令するのに用いられる、
請求項１３に記載のソフトウェア定義型データセンター。
【請求項１５】
前記ＳＤＮコントローラは特に、前記Ｔ１時点における各オンライン仮想マシンのサービス応答トラフィックを前記Ｔ１時点における前記トラフィック統計データから抽出し、前記Ｔ２時点における各オンライン仮想マシンのサービス応答トラフィックを前記Ｔ２時点における前記トラフィック統計データから抽出し、前記Ｔ１時点における前記サービス応答トラフィックと前記Ｔ２時点における前記サービス応答トラフィックとの間の差異を各オンライン仮想マシンの前記トラフィック負荷情報として用いる、
請求項１３又は１４に記載のソフトウェア定義型データセンター。
【請求項１６】
プロセッサと、
メモリと、
バスと、
通信インタフェースと
を備えたコンピューティングデバイスであって、
前記メモリは実行命令を格納し、前記プロセッサ及び前記メモリは前記バスを用いて接続され、前記コンピューティングデバイスが動作すると、前記コンピューティングデバイスが請求項１から６のいずれか一項に記載の方法を実行するように、前記プロセッサは前記メモリに格納された前記実行命令を実行する、
コンピューティングデバイス。
【請求項１７】
プロセッサと、
メモリと、
バスと、
通信インタフェースと
を備えたコンピューティングデバイスであって、
前記メモリは実行命令を格納し、前記プロセッサ及び前記メモリは前記バスを用いて接続され、前記コンピューティングデバイスが動作すると、前記コンピューティングデバイスが請求項７から９のいずれか一項に記載の方法を実行するように、前記プロセッサは前記メモリに格納された前記実行命令を実行する、
コンピューティングデバイス。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００２
【補正方法】変更
【補正の内容】
【０００２】
クラウドには、一般的に３つの展開モデルがある。つまり、パブリッククラウド（Ｐｕｂｌｉｃ  Ｃｌｏｕｄ：いくつかの企業が所有、運営し、コンピューティングリソースへの迅速なアクセスを別の組織又は個人に対して適正価格で提供する）、プライベートクラウド（Ｐｒｉｖａｔｅ  Ｃｌｏｕｄ：単一の企業又は個人が所有する）、及びハイブリッドクラウド（Ｈｙｂｒｉｄ  Ｃｌｏｕｄ：プライベートクラウドに基づき、戦略的なレベルでパブリッククラウドサービスと組み合わせる）である。仮想プライベートクラウド（Ｖｉｒｔｕａｌ  Ｐｒｉｖａｔｅ  Ｃｌｏｕｄ：ＶＰＣ）は、パブリッククラウドが提供する共有コンピューティングリソースに基づいて確立された動的な構成プールである。パブリッククラウドでは、全てのＶＰＣは互いに分離され、テナントがＶＰＣの要求に応じて様々な仮想化リソースを求めることができる。テナントは、パブリックネットワークのＩＰアドレスを用いて、ＶＰＣをパブリックネットワークに接続することができ、あるいは仮想プライベートネットワーク（Ｖｉｒｔｕａｌ  Ｐｒｉｖａｔｅ  Ｎｅｔｗｏｒｋ：ＶＰＮ）を用いて、ＶＰＣを従来型のＤＣ（Ｄａｔａ  Ｃｅｎｔｅｒ：ＤＣ）に接続することができる。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００２７
【補正方法】変更
【補正の内容】
【００２７】
以下では、本発明の実施形態における技術的解決手法を、本発明の実施形態における添付図面を参照して明確且つ十分に説明する。説明される実施形態は、本発明の実施形態の一部であって全てではないことは明らかである。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００４３
【補正方法】変更
【補正の内容】
【００４３】
図２を参照すると（図１及び図２においてテナントが構成したエッジスイッチ及びサービスクラスタの状態が異なり、この差異は特定の実装におけるテナント構成状態の多様性を表すためだけに用いられるが、図１及び図２がシステム構成及び方法の実装において本質的な差異を有することを表してはいない）、図２は、同じテナントが確立したサービスクラスタＡ及びサービスクラスタＢを示す。サービスクラスタＡの共有ＩＰアドレスはＩＰ０として設定され、サービスクラスタＢの共有ＩＰアドレスはＩＰ１として設定される。テナントが構成したサービスクラスタＡは３つのサービングノードを含み、サービングノードＡ１のＩＰアドレス及びＭＡＣアドレスはそれぞれ（ＩＰ０、ＭＡＣ１）、サービングノードＡ２のＩＰアドレス及びＭＡＣアドレスはそれぞれ（ＩＰ０、ＭＡＣ２）、サービングノードＡ３のＩＰアドレス及びＭＡＣアドレスはそれぞれ（ＩＰ０、ＭＡＣ３）であると考えられる。サービスクラスタＢは３つのサービングノードを含み、サービングノードＢ１のＩＰアドレス及びＭＡＣアドレスはそれぞれ（ＩＰ１、ＭＡＣ４）、サービングノードＢ２のＩＰアドレス及びＭＡＣアドレスはそれぞれ（ＩＰ１、ＭＡＣ５）、サービングノードＢ３のＩＰアドレス及びＭＡＣアドレスはそれぞれ（ＩＰ１、ＭＡＣ６）である。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００５３
【補正方法】変更
【補正の内容】
【００５３】
図４は、イーサネット（登録商標）に基づくＡＲＰパケットのフォーマット構成の概略図である。ＡＲＰデータパケットには２つの部分があり、最初の部分がイーサネット（登録商標）ヘッダ、２番目の部分がＡＲＰ要求／応答部である。この実施形態において、仮想マシン候補のゲートウェイをシミュレートすることでＳＤＮコントローラ３０により構築されるＡＲＰ要求パケットのイーサネット（登録商標）ヘッダ内の宛先ＭＡＣアドレスには、ＦＦ：ＦＦ：ＦＦ：ＦＦ：ＦＦ：ＦＦが書き込まれる。これは、ＡＲＰパケットがブロードキャストの形態で送信されることを表す。ＡＲＰ要求パケットのイーサネット（登録商標）ヘッダ内の送信元ＭＡＣアドレスには、仮想マシン候補のゲートウェイのＭＡＣアドレスが書き込まれる。これは、ＡＲＰ要求パケットの最初のホップが仮想マシン候補のゲートウェイを介して送信されることを表す。ＡＲＰ要求パケットのＡＲＰ要求部の送信元ＩＰアドレス及び送信元ＭＡＣアドレスには、仮想マシン候補のゲートウェイのＩＰアドレス及びＭＡＣアドレスがそれぞれ書き込まれる。これは、ＡＲＰ要求パケットが、仮想マシン候補のゲートウェイにより生成され送信されることを表す。ＡＲＰ要求パケットのＡＲＰ要求部の宛先ＩＰアドレスには、仮想マシン候補のＩＰアドレスが書き込まれる。ＡＲＰ要求パケットのＡＲＰ要求部の宛先ＭＡＣアドレスには、００：００：００：００：００：００などの特別なフィールドが書き込まれる。これは、宛先ＭＡＣアドレスが応答側により書き込まれることを表す。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００９１
【補正方法】変更
【補正の内容】
【００９１】
図２に示されるように、テナントネットワーク内のサービスクラスタＢは３つのサービングノードであるＢ１、Ｂ２、及びＢ３を有し、これらは１つのＩＰアドレスＩＰ１を共有する。合計５人のユーザがサービスクラスタからサービスを要求する。ユーザ１及びユーザ４にはサービングノードＢ１がサービス提供し、ユーザ２及びユーザ５にはサービングノードＢ２がサービス提供し、ユーザ３にはサービングノードＢ３がサービス提供する。各サービングノードのエッジスイッチがサービス要求及び応答パケットを転送し且つ統計的に収集し、関連する転送フローテーブルの統計データフィールドに統計データを記録する。ＳＤＮコントローラは、転送フローテーブルのトラフィック統計データ抽出要求を周期的に又は定期的に送出し、抽出要求応答を受信した後に、サービス応答によって累積的に処理されたパケット量を取得する。過去のサンプリングデータを参照して、特定のサービングノードによって特定の期間内にユーザに提供されたサービストラフィックを計算することができ、そのサービストラフィックに従ってサービングノードの負荷が決定される。
【表２】
2018504038.tif 000012
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００９２
【補正方法】変更
【補正の内容】
【００９２】
ＳＤＮコントローラは、ある期間に従ってエッジスイッチのトラフィック統計データを収集する。表２には、異なる時点における各エッジスイッチに関して、異なる転送フローテーブルのサービス応答に対応するトラフィック統計データが記載されている。サービングノードＢ１は、ユーザ１及びユーザ４のサービス応答フローテーブル用のＮ１１パケット及びＮ１４パケットをＴ１時点において別々に処理し、［Ｎ１１＋ΔＮ１１］パケット及び［Ｎ１４＋ΔＮ１４］パケットをＴ２時点において別々に処理する。サービングノードＢ２は、ユーザ２及びユーザ５のサービス応答フローテーブル用のＮ２２パケット及びＮ２５パケットをＴ１時点において別々に処理し、［Ｎ２２＋ΔＮ２２］パケット及び［Ｎ２５＋ΔＮ２５］パケットをＴ２時点において別々に処理する。サービングノードＢ３は、ユーザ３のサービス応答フローテーブル用にＮ３３パケットをＴ１時点において処理し、［Ｎ３３＋ΔＮ３３］パケットをＴ２時点において処理する。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】００９８
【補正方法】変更
【補正の内容】
【００９８】
プロセッサ６０２はコンピューティングデバイス６００のコントロールセンターであり、本発明のこの実施形態において提供される技術的解決手法を実装するために、関連プログラムを実行するよう構成される。任意選択で、プロセッサ６０２には、１つ又は複数の中央処理装置（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ：ＣＰＵ）、例えば、図６に示される中央処理装置１及び中央処理装置２が含まれる。任意選択で、コンピューティングデバイス６００にはさらに、複数のプロセッサ６０２が含まれてよく、各プロセッサ６０２は、シングルコアプロセッサ（１つのＣＰＵを含む）でも、マルチコアプロセッサ（複数のＣＰＵを含む）でもよい。プロセッサ６０２は、汎用中央処理装置、マイクロプロセッサを用いてもよく、特定用途向け集積回路（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ：ＡＳＩＣ）、又は１つ又は複数の集積回路を用いてもよい。
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】０１０１
【補正方法】変更
【補正の内容】
【０１０１】
ストレージデバイス６１２は、物理ハードディスク又は物理ハードディスクのパーティション（小型コンピュータシステムのインタフェースメモリ、又はグローバルネットワークブロックのデバイスボリュームを含む）、ネットワークストレージプロトコル（ネットワークファイルシステムＮＦＳなどのネットワークファイルシステム又はクラスタファイルシステムを含む）、ファイルに基づく仮想ストレージデバイス（仮想ディスクミラーリング）、又は論理ボリュームに基づくストレージデバイスであってもよい。ストレージデバイス６１２には、高速ランダムアクセスメモリ（ＲＡＭ）が含まれてよく、不揮発性メモリ、例えば、１つ又は複数のディスクメモリ、フラッシュメモリ、又は他の不揮発性メモリも含まれてよい。実施形態によっては、ストレージデバイスにはさらに、１つ又は複数のプロセッサ６０２から分離したリモートメモリ（通信インタフェース６０８を用いて通信ネットワークにアクセスするウェブディスクなど）が含まれてよく、通信ネットワークは、インターネット、イントラネット、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、ストレージエリアネットワーク（ＳＡＮ）、又は上述のネットワークの組み合わせであってよい。
【国際調査報告】
2018504038.tif 000013
2018504038.tif 000014
2018504038.tif 000015
2018504038.tif 000016