特許第6835444号(P6835444)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ホアウェイ・テクノロジーズ・カンパニー・リミテッドの特許一覧

特許6835444ソフトウェア定義型データセンター、並びにそのためのサービスクラスタスケジューリング方法及びトラフィック監視方法
<>
  • 特許6835444-ソフトウェア定義型データセンター、並びにそのためのサービスクラスタスケジューリング方法及びトラフィック監視方法 図000005
  • 特許6835444-ソフトウェア定義型データセンター、並びにそのためのサービスクラスタスケジューリング方法及びトラフィック監視方法 図000006
  • 特許6835444-ソフトウェア定義型データセンター、並びにそのためのサービスクラスタスケジューリング方法及びトラフィック監視方法 図000007
  • 特許6835444-ソフトウェア定義型データセンター、並びにそのためのサービスクラスタスケジューリング方法及びトラフィック監視方法 図000008
  • 特許6835444-ソフトウェア定義型データセンター、並びにそのためのサービスクラスタスケジューリング方法及びトラフィック監視方法 図000009
  • 特許6835444-ソフトウェア定義型データセンター、並びにそのためのサービスクラスタスケジューリング方法及びトラフィック監視方法 図000010
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6835444
(24)【登録日】2021年2月8日
(45)【発行日】2021年2月24日
(54)【発明の名称】ソフトウェア定義型データセンター、並びにそのためのサービスクラスタスケジューリング方法及びトラフィック監視方法
(51)【国際特許分類】
   H04L 12/803 20130101AFI20210215BHJP
   H04L 12/70 20130101ALI20210215BHJP
   H04L 12/717 20130101ALI20210215BHJP
【FI】
   H04L12/803
   H04L12/70 D
   H04L12/717
【請求項の数】17
【全頁数】29
(21)【出願番号】特願2017-534615(P2017-534615)
(86)(22)【出願日】2015年12月31日
(65)【公表番号】特表2018-504038(P2018-504038A)
(43)【公表日】2018年2月8日
(86)【国際出願番号】CN2015100073
(87)【国際公開番号】WO2017113273
(87)【国際公開日】20170706
【審査請求日】2017年7月26日
【審判番号】不服2019-7014(P2019-7014/J1)
【審判請求日】2019年5月29日
(73)【特許権者】
【識別番号】504161984
【氏名又は名称】ホアウェイ・テクノロジーズ・カンパニー・リミテッド
(74)【代理人】
【識別番号】110000877
【氏名又は名称】龍華国際特許業務法人
(72)【発明者】
【氏名】ウー、チエ
(72)【発明者】
【氏名】ツオ、シャオフー
【合議体】
【審判長】 稲葉 和生
【審判官】 林 毅
【審判官】 北川 純次
(56)【参考文献】
【文献】 特開2013−105308(JP,A)
【文献】 国際公開第2015/037604(WO,A1)
【文献】 特開2015−91106(JP,A)
【文献】 国際公開第2012/098786(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L12/803
H04L12/70
H04L12/717
(57)【特許請求の範囲】
【請求項1】
ソフトウェア定義型データセンターにおけるサービスクラスタスケジューリング方法であって、前記ソフトウェア定義型データセンターは、ソフトウェア定義型ネットワーキング(SDN)コントローラと複数のエッジスイッチとを備え、前記複数のエッジスイッチは前記SDNコントローラに通信可能に接続され、第1のサービスクラスタ及び第2のサービスクラスタが前記ソフトウェア定義型データセンターに展開され、
前記SDNコントローラが、第2のエッジスイッチにより報告されたユーザのサービス要求パケットを受信する段階であって、前記第2のエッジスイッチは前記ユーザがアクセスするエッジスイッチである、受信する段階と、
前記SDNコントローラが、前記サービス要求パケット内の宛先IPアドレス情報に従って、前記第1のサービスクラスタ及び前記第2のサービスクラスタから前記サービス要求パケットに対応するサービスクラスタを判定する段階であって、前記第1のサービスクラスタは、第1のIPアドレスを共有する少なくとも2つのオンライン仮想マシンを含み、前記第2のサービスクラスタは、第2のIPアドレスを共有する少なくとも2つのオンライン仮想マシンを含み、前記第1のIPアドレスは前記第2のIPアドレスとは異な、段階と、
前記SDNコントローラが負荷分散ポリシに従って、判定された前記サービスクラスタ内の前記少なくとも2つのオンライン仮想マシンからターゲット仮想マシンを選択する段階であって、前記ターゲット仮想マシンは前記ユーザにサービスを提供する、選択する段階と、
前記SDNコントローラが前記ターゲット仮想マシンと前記ユーザとの間の転送情報を決定する段階と、
前記SDNコントローラが前記転送情報に従って、第1の転送フローテーブル及び第2の転送フローテーブルを生成する段階であって、前記第1の転送フローテーブルは、前記ターゲット仮想マシンのエッジスイッチがパケットを転送するのに用いられ、前記第2の転送フローテーブルは、前記第2のエッジスイッチがパケットを転送するのに用いられる、生成する段階と、
前記SDNコントローラが、前記第1の転送フローテーブルを前記ターゲット仮想マシンの前記エッジスイッチに送出する段階と、
前記SDNコントローラが、前記第2の転送フローテーブルを前記第2のエッジスイッチに送出する段階と
前記SDNコントローラが、判定された前記サービスクラスタ内の前記少なくとも2つのオンライン仮想マシンに対して負荷監視を実行し、負荷監視結果を定期的に取得する段階であって、前記負荷監視はリソース負荷監視又はトラフィック負荷監視を含む、取得する段階と
を備え
前記SDNコントローラは、負荷分散装置としての機能を有し、ユーザトラフィックをSDNネットワークの入り口でエッジスイッチに分配し、前記サービスクラスタの健全性チェックと、前記リソース負荷監視又は前記トラフィック負荷監視とに基づいて最適経路を選択す
方法。
【請求項2】
前記SDNコントローラが負荷分散ポリシに従って、判定された前記サービスクラスタ内の前記少なくとも2つのオンライン仮想マシンからターゲット仮想マシンを前記選択する段階は、
前記SDNコントローラが、判定された前記サービスクラスタ内の各オンライン仮想マシンのリソース負荷情報又はトラフィック負荷情報を取得して、最小リソース負荷を有する仮想マシンを前記ターゲット仮想マシンとして選択する段階、又は最小トラフィック負荷を有する仮想マシンを前記ターゲット仮想マシンとして選択する段階を含む、
請求項1に記載の方法。
【請求項3】
前記SDNコントローラが、判定された前記サービスクラスタ内の各オンライン仮想マシンのリソース負荷情報又はトラフィック負荷情報を前記取得する段階は、
前記SDNコントローラが、判定された前記サービスクラスタ内の各オンライン仮想マシンのリソース負荷情報又はトラフィック負荷情報を前記負荷監視結果から取得する段階を含む、
請求項2に記載の方法。
【請求項4】
前記SDNコントローラが、判定された前記サービスクラスタ内の前記少なくとも2つのオンライン仮想マシンに対してトラフィック負荷監視を前記実行する段階は、
前記SDNコントローラが、判定された前記サービスクラスタ内の各オンライン仮想マシンのエッジスイッチにトラフィック統計データ抽出要求を定期的に送出し、各オンライン仮想マシンの前記エッジスイッチによりフィードバックされるT時点におけるトラフィック統計データ及びT時点におけるトラフィック統計データを別々に受信する段階と、
前記SDNコントローラが、各オンライン仮想マシンの前記エッジスイッチの前記T時点における前記トラフィック統計データと前記T時点における前記トラフィック統計データとの間の差異に従って、各オンライン仮想マシンの前記トラフィック負荷情報を取得する段階と
を含む、
請求項3に記載の方法。
【請求項5】
前記SDNコントローラが、判定された前記サービスクラスタ内の各オンライン仮想マシンのエッジスイッチにトラフィック統計データ抽出要求を定期的に前記送出する段階の前に、
前記SDNコントローラが、判定された前記サービスクラスタ内の各オンライン仮想マシンの前記エッジスイッチにトラフィック監視命令を送出する段階をさらに備え、
前記トラフィック監視命令は、判定された前記サービスクラスタ内の各オンライン仮想マシンの前記エッジスイッチに、前記SDNコントローラが送出した転送フローテーブルに対応するパケットトラフィック統計データを収集するよう命令するのに用いられる、
請求項4に記載の方法。
【請求項6】
前記SDNコントローラが、各オンライン仮想マシンの前記エッジスイッチの前記T時点における前記トラフィック統計データと前記T時点における前記トラフィック統計データとの間の差異に従って、各オンライン仮想マシンの前記トラフィック負荷情報を前記取得する段階の前に、
前記SDNコントローラが、前記T時点における各オンライン仮想マシンのサービス応答トラフィックを前記T時点における前記トラフィック統計データから抽出する段階、及び前記SDNコントローラが、前記T時点における各オンライン仮想マシンのサービス応答トラフィックを前記T時点における前記トラフィック統計データから抽出する段階と
前記SDNコントローラが、前記T時点における前記サービス応答トラフィックと前記T時点における前記サービス応答トラフィックとの間の差異を各オンライン仮想マシンの前記トラフィック負荷情報として用いる段階と
をさらに備える
請求項5に記載の方法。
【請求項7】
ソフトウェア定義型データセンターにおけるサービスクラスタトラフィック監視方法であって、前記ソフトウェア定義型データセンターは、ソフトウェア定義型ネットワーキング(SDN)コントローラと複数のエッジスイッチとを備え、前記複数のエッジスイッチは前記SDNコントローラに通信可能に接続され、第1のサービスクラスタ及び第2のサービスクラスタが前記ソフトウェア定義型データセンターにさらに展開され、
前記SDNコントローラが、サービスクラスタ内の各オンライン仮想マシンのエッジスイッチにトラフィック統計データ抽出要求を定期的に送出する段階であって、前記サービスクラスタは、前記第1のサービスクラスタ及び前記第2のサービスクラスタからのサービスリクエストパケット中の宛先IPアドレス情報に従って前記SDNコントローラにより判定され、前記第1のサービスクラスタは第1のIPアドレスを共有する少なくとも2つのオンライン仮想マシンを含み、前記第2のサービスクラスタは第2のIPアドレスを共有する少なくとも2つの仮想マシンを含み、前記第1のIPアドレスは前記第2のIPアドレスとは異なり、前記サービスリクエストパケットは第2のエッジスイッチにより前記SDNコントローラに報告され、段階と、
前記SDNコントローラが、各オンライン仮想マシンの前記エッジスイッチによりフィードバックされるT時点におけるトラフィック統計データ及びT時点におけるトラフィック統計データを別々に受信する段階と、
前記SDNコントローラが、各オンライン仮想マシンの前記エッジスイッチの前記T時点における前記トラフィック統計データと前記T時点における前記トラフィック統計データとの間の差異に従って、各オンライン仮想マシンのトラフィック負荷情報を取得する段階と
前記SDNコントローラが、判定された前記サービスクラスタ内の前記少なくとも2つのオンライン仮想マシンに対して負荷監視を実行し、負荷監視結果を定期的に取得する段階であって、前記負荷監視はリソース負荷監視又はトラフィック負荷監視を含む、取得する段階と
を備え
前記SDNコントローラは、負荷分散装置としての機能を有し、ユーザトラフィックをSDNネットワークの入り口でエッジスイッチに分配し、前記サービスクラスタの健全性チェックと、前記リソース負荷監視又は前記トラフィック負荷監視とに基づいて最適経路を選択す
方法。
【請求項8】
前記SDNコントローラが、判定された前記サービスクラスタ内の各オンライン仮想マシンの前記エッジスイッチにトラフィック監視命令を送出する段階であって、前記トラフィック監視命令は、判定された前記サービスクラスタ内の各オンライン仮想マシンの前記エッジスイッチに、前記SDNコントローラが送出した転送フローテーブルに対応するパケットトラフィック統計データを収集するよう命令するのに用いられる、送出する段階をさらに備える、
請求項7に記載の方法。
【請求項9】
前記SDNコントローラが、各オンライン仮想マシンの前記エッジスイッチの前記T時点における前記トラフィック統計データと前記T時点における前記トラフィック統計データとの間の差異に従って、各オンライン仮想マシンのトラフィック負荷情報を前記取得する段階は特に、
前記SDNコントローラが、前記T時点における各オンライン仮想マシンのサービス応答トラフィックを前記T時点における前記トラフィック統計データから抽出する段階、及び前記SDNコントローラが、前記T時点における各オンライン仮想マシンのサービス応答トラフィックを前記T時点における前記トラフィック統計データから抽出する段階と
前記SDNコントローラが、前記T時点における前記サービス応答トラフィックと前記T時点における前記サービス応答トラフィックとの間の差異を各オンライン仮想マシンの前記トラフィック負荷情報として用いる段階と
を備える
請求項7又は8に記載の方法。
【請求項10】
ソフトウェア定義型ネットワーキング(SDN)コントローラと複数のエッジスイッチとを備えたソフトウェア定義型データセンターであって、前記複数のエッジスイッチは前記SDNコントローラに通信可能に接続され、第1のサービスクラスタ及び第2のサービスクラスタが前記ソフトウェア定義型データセンターに展開され、
前記複数のエッジスイッチは、前記SDNコントローラにパケット転送情報を要求し、前記SDNコントローラが送出した転送フローテーブルに従ってパケットを転送し、
前記SDNコントローラは、ユーザがアクセスするエッジスイッチである第2のエッジスイッチにより報告された前記ユーザのサービス要求パケットを受信し、前記サービス要求パケット内の宛先IPアドレス情報に従って、前記第1のサービスクラスタ及び前記第2のサービスクラスタからの前記サービス要求パケットに対応するサービスクラスタを判定し、前記第1のサービスクラスタは、第1のIPアドレスを共有する少なくとも2つのオンライン仮想マシンを含み、前記第2のサービスクラスタは、第2のIPアドレスを共有する少なくとも2つのオンライン仮想マシンを含み、前記第1のIPアドレスは前記第2のIPアドレスとは異なり前記SDNコントローラは、負荷分散ポリシに従って、判定された前記サービスクラスタ内の前記少なくとも2つのオンライン仮想マシンから、前記ユーザにサービスを提供するターゲット仮想マシンを選択し、前記ターゲット仮想マシンと前記ユーザとの間の転送情報を決定し、前記転送情報に従って、第1の転送フローテーブル及び第2の転送フローテーブルを生成し、前記第1の転送フローテーブルを前記ターゲット仮想マシンの前記エッジスイッチに送出し、前記第2の転送フローテーブルを前記第2のエッジスイッチに送出し、前記第1の転送フローテーブルは、前記ターゲット仮想マシンの前記エッジスイッチがパケットを転送するのに用いられ、前記第2の転送フローテーブルは、前記第2のエッジスイッチがパケットを転送するのに用いられ、前記SDNコントローラは、判定された前記サービスクラスタ内の前記少なくとも2つのオンライン仮想マシンに対して負荷監視を実行し、負荷監視結果を定期的に取得し、前記負荷監視はリソース負荷監視又はトラフィック負荷監視を含み、
前記SDNコントローラは、負荷分散装置としての機能を有し、ユーザトラフィックをSDNネットワークの入り口でエッジスイッチに分配し、前記サービスクラスタの健全性チェックと、前記リソース負荷監視又は前記トラフィック負荷監視とに基づいて最適経路を選択する、
ソフトウェア定義型データセンター。
【請求項11】
前記SDNコントローラが前記ターゲット仮想マシンを選択することは特に、判定された前記サービスクラスタ内の各オンライン仮想マシンのリソース負荷情報又はトラフィック負荷情報を取得すること、及び最小リソース負荷を有する仮想マシンを前記ターゲット仮想マシンとして選択すること、又は最小トラフィック負荷を有する仮想マシンを前記ターゲット仮想マシンとして選択することを含む、
請求項10に記載のソフトウェア定義型データセンター。
【請求項12】
記負荷監視結果は、判定された前記サービスクラスタ内の各オンライン仮想マシンのリソース負荷情報又はトラフィック負荷情報を含む、
請求項11に記載のソフトウェア定義型データセンター。
【請求項13】
ソフトウェア定義型ネットワーキング(SDN)コントローラと複数のエッジスイッチとを備えたソフトウェア定義型データセンターであって、前記複数のエッジスイッチは前記SDNコントローラに通信可能に接続され、第1のサービスクラスタ及び第2のサービスクラスタが前記ソフトウェア定義型データセンターに展開され、
前記複数のエッジスイッチは、前記SDNコントローラにパケット転送情報を要求し、前記SDNコントローラが送出した転送フローテーブルに従ってパケットを転送し、
前記SDNコントローラは、サービスクラスタ内の各オンライン仮想マシンのエッジスイッチにトラフィック統計データ抽出要求を定期的に送出し、前記サービスクラスタは、前記第1のサービスクラスタ及び前記第2のサービスクラスタからのサービスリクエストパケット中の宛先IPアドレス情報に従って、前記SDNコントローラにより判定され、前記第1のサービスクラスタは、第1のIPアドレスを共有する少なくとも2つのオンライン仮想マシンを含み、前記第2のサービスクラスタは、第2のIPアドレスを共有する少なくとも2つのオンライン仮想マシンを含み、前記第1のIPアドレスは前記第2のIPアドレスとは異なり前記サービスリクエストパケットは第2のエッジスイッチにより前記SDNコントローラに報告され、前記SDNコントローラは、各オンライン仮想マシンの前記エッジスイッチによりフィードバックされるT時点におけるトラフィック統計データ及びT時点におけるトラフィック統計データを別々に受信し、各オンライン仮想マシンの前記エッジスイッチの前記T時点における前記トラフィック統計データと前記T時点における前記トラフィック統計データとの間の差異に従って、各オンライン仮想マシンのトラフィック負荷情報を取得し、前記SDNコントローラは、判定された前記サービスクラスタ内の前記少なくとも2つのオンライン仮想マシンに対して負荷監視を実行し、負荷監視結果を定期的に取得し、前記負荷監視はリソース負荷監視又はトラフィック負荷監視を含み、
前記SDNコントローラは、負荷分散装置としての機能を有し、ユーザトラフィックをSDNネットワークの入り口でエッジスイッチに分配し、前記サービスクラスタの健全性チェックと、前記リソース負荷監視又は前記トラフィック負荷監視とに基づいて最適経路を選択する、
ソフトウェア定義型データセンター。
【請求項14】
前記SDNコントローラはさらに、判定された前記サービスクラスタ内の各オンライン仮想マシンの前記エッジスイッチにトラフィック監視命令を送出し、前記トラフィック監視命令は、判定された前記サービスクラスタの各オンライン仮想マシンの前記エッジスイッチに、前記SDNコントローラが送出した前記転送フローテーブルに対応するパケットトラフィック統計データを収集するよう命令するのに用いられる、
請求項13に記載のソフトウェア定義型データセンター。
【請求項15】
前記SDNコントローラは特に、前記T時点における各オンライン仮想マシンのサービス応答トラフィックを前記T時点における前記トラフィック統計データから抽出し、前記T時点における各オンライン仮想マシンのサービス応答トラフィックを前記T時点における前記トラフィック統計データから抽出し、前記T時点における前記サービス応答トラフィックと前記T時点における前記サービス応答トラフィックとの間の差異を各オンライン仮想マシンの前記トラフィック負荷情報として用いる、
請求項13又は14に記載のソフトウェア定義型データセンター。
【請求項16】
プロセッサと、
メモリと、
バスと、
通信インタフェースと
を備えたコンピューティングデバイスであって、
前記メモリは実行命令を格納し、前記プロセッサ及び前記メモリは前記バスを用いて接続され、前記コンピューティングデバイスが動作すると、前記コンピューティングデバイスが請求項1から6のいずれか一項に記載の方法を実行するように、前記プロセッサは前記メモリに格納された前記実行命令を実行する、
コンピューティングデバイス。
【請求項17】
プロセッサと、
メモリと、
バスと、
通信インタフェースと
を備えたコンピューティングデバイスであって、
前記メモリは実行命令を格納し、前記プロセッサ及び前記メモリは前記バスを用いて接続され、前記コンピューティングデバイスが動作すると、前記コンピューティングデバイスが請求項7から9のいずれか一項に記載の方法を実行するように、前記プロセッサは前記メモリに格納された前記実行命令を実行する、
コンピューティングデバイス。
【発明の詳細な説明】
【技術分野】
【0001】
本発明はIT技術に関し、具体的には、ソフトウェア定義型データセンター、並びにそのためのサービスクラスタスケジューリング方法及びトラフィック監視方法に関する。
【背景技術】
【0002】
クラウドには、一般的に3つの展開モデルがある。つまり、パブリッククラウド(Public Cloud:いくつかの企業が所有、運営し、コンピューティングリソースへの迅速なアクセスを別の組織又は個人に対して適正価格で提供する)、プライベートクラウド(Private Cloud:単一の企業又は個人が所有する)、及びハイブリッドクラウド(Hybrid Cloud:プライベートクラウドに基づき、戦略的なレベルでパブリッククラウドサービスと組み合わせる)である。仮想プライベートクラウド(Virtual Private Cloud:VPC)は、パブリッククラウドが提供する共有コンピューティングリソースに基づいて確立された動的な構成プールである。パブリッククラウドでは、全てのVPCは互いに分離され、テナントがVPCの要求に応じて様々な仮想化リソースを求めることができる。テナントは、パブリックネットワークのIPアドレスを用いて、VPCをパブリックネットワークに接続することができ、あるいは仮想プライベートネットワーク(Virtual Private Network:VPN)を用いて、VPCを従来型のDC(Data Center:DC)に接続することができる。
【0003】
ソフトウェア定義型ネットワーキング(Software Defined Networking:SDN)は、スタンフォード大学(米国)のクリーンスレートリサーチグループによって提唱されたネットワーク設計コンセプトである。核となる概念は、制御プレーンをネットワークデバイスのデータプレーンから分離し、ネットワーク制御権限を集中化し、オープンなプログラマブルインタフェースを提供することである。SDNコントローラは、リソースの仮想化を実装するために、良く知られたOpenFlowプロトコルなどの標準的なサウスバウンドインタフェースを用いて、最下層の物理転送デバイス間の差異をシールドし、上位層のサービスがネットワーク構成を実行し、要求に応じてネットワークリソースを呼び出すために柔軟なノースバウンドインタフェースを提供する。
【0004】
SDN技術及び仮想化技術を用いて確立されたデータセンターは、ソフトウェア定義型データセンター(Softwares Defined Data Center:SDDC)と呼ばれ、データセンターのネットワークは、ソフトウェア定義型データセンターネットワーク(Software Defined Data Center Network:SDDCN)である。
【0005】
従来のデータセンターでは、効率的で信頼できるセキュアで安定したサービスをユーザに提供するために、複数の同等のサーバが、サービスを提供し得るサーバクラスタを構成する。サーバクラスタは、サーバクラスタ内の全てのサーバの間に負荷分散を実装するために、負荷分散技術を用いて、全てのサーバの間でサービストラフィックを均等に共有し、サーバクラスタ内のサーバ群に要求を一様に割り当てる。現在のソフトウェア定義型データセンターSDDCでは、既存の技術を用いてSDDCN内に負荷分散装置を確立することができ、負荷分散装置はサーバクラスタ内のサービングノードにタスクを割り当てる。しかし、SDDCでは、テナントが負荷分散装置クラスタを柔軟に構成することができ(例えば、仮想マシンを用いて実装される)、VPCのサービスクラスタはこの解決手法では考慮されないという特性は、サービスクラスタにおいて柔軟性のないサービングノードのスケジューリングを引き起こす。
【発明の概要】
【0006】
本発明の実施形態は、クラウド環境に、より適した柔軟なサービスクラスタ管理方式を提供するために、ソフトウェア定義型データセンター、並びにそのためのサービスクラスタスケジューリング方法及びトラフィック監視方法を提供する。
【0007】
第1の態様によれば、本出願はソフトウェア定義型データセンターにおいてサービスクラスタスケジューリング方法を提供し、ソフトウェア定義型データセンターはSDNコントローラと複数のエッジスイッチとを含み、複数のエッジスイッチはSDNコントローラに通信可能に接続され、サービスクラスタがソフトウェア定義型データセンターに展開され、少なくとも2つのオンライン仮想マシンがサービスクラスタのサービングノードとして用いられ、少なくとも2つのオンライン仮想マシンのIPアドレスが共有IPアドレスとして設定される。スケジューリング方法は、SDNコントローラが第2のエッジスイッチにより報告されたユーザのサービス要求パケットを受信する段階であって、第2のエッジスイッチはユーザがアクセスするエッジスイッチである、受信する段階と、サービス要求パケット内の宛先IPアドレス情報に従って、サービス要求パケットに対応するサービスクラスタを判定する段階と、SDNコントローラが負荷分散ポリシに従って、サービスクラスタ内のオンライン仮想マシンからターゲット仮想マシンを選択する段階であって、ターゲット仮想マシンはユーザにサービスを提供するよう構成される、選択する段階と、SDNコントローラがターゲット仮想マシンとユーザとの間の転送情報を決定し、転送情報に従って、第1の転送フローテーブルと第2の転送フローテーブルとを生成する段階であって、第1の転送フローテーブルは、ターゲット仮想マシンのエッジスイッチがパケットを転送するのに用いられ、第2の転送フローテーブルは、第2のエッジスイッチがパケットを転送するのに用いられる、生成する段階と、SDNコントローラが第1の転送フローテーブルをターゲット仮想マシンのエッジスイッチに送出し、第2の転送フローテーブルを第2のエッジスイッチに送出する段階とを含む。
【0008】
上述のスケジューリング方法を用いることで、LBer又はLBerクラスタが別々に確立され、SDNコントローラはLBerの機能を実装するのに用いられる。SDDCNネットワークの核として、SDNコントローラは、比較的強力な能力を備えて構成される。本発明のこの実施形態では、SDNコントローラはLBerとして用いられる。SDNの動的拡張能力が制御層で多重化されることができ、SDNネットワークのネットワークリソースはネットワーク転送層で多重化されることができる。実装の複雑性は低く、投資コストは低い。さらに、SDNコントローラはLBerとして用いられ、これにより、転送経路が長く転送効率が低いという従来技術の問題を回避する。なぜなら、別個のLBerが用いられる場合、ユーザトラフィックは常にLBerにルーティングされ、その後サービングノードに転送又は再ルーティングされるからである。ユーザトラフィックは、SDNネットワークの入り口でエッジスイッチに分配され、SDNコントローラは最適経路を選択する。転送経路は短く、転送効率は高い。
【0009】
第1の態様の実装方式では、SDNコントローラは、サービスクラスタ内の各オンライン仮想マシンのリソース負荷情報又はトラフィック負荷情報を取得し、最小リソース負荷又は最小トラフィック負荷を有する仮想マシンをターゲット仮想マシンとして選択する。
【0010】
SDNコントローラは、サービスクラスタ内のオンライン仮想マシンに対して負荷監視を実行して、負荷監視結果を定期的に取得することが好ましく、負荷監視には、リソース負荷監視又はトラフィック負荷監視が含まれる。SDNコントローラは、サービスクラスタ内の各オンライン仮想マシンのリソース負荷情報又はトラフィック負荷情報を負荷監視結果から取得する。
【0011】
上述の実装方式では、SDNコントローラは、より適したターゲット仮想マシンを選択するために、サービスクラスタのリソース又はトラフィックの状態をアクティブに監視し、監視したリアルタイムの情報に従って、負荷分散ポリシをいつ実行するかを決定する。
【0012】
第2の態様によれば、本出願はソフトウェア定義型データセンターにおけるサービスクラスタトラフィック監視方法を提供し、ソフトウェア定義型データセンターはSDNコントローラと複数のエッジスイッチとを含み、複数のエッジスイッチはSDNコントローラに通信可能に接続され、サービスクラスタがソフトウェア定義型データセンターにさらに展開され、少なくとも2つのオンライン仮想マシンがサービスクラスタのサービングノードとして用いられ、少なくとも2つのオンライン仮想マシンのIPアドレスが共有IPアドレスとして設定される。本方法は、SDNコントローラがサービスクラスタ内の各オンライン仮想マシンのエッジスイッチにトラフィック統計データ抽出要求を定期的に送出する段階と、SDNコントローラが各オンライン仮想マシンのエッジスイッチによりフィードバックされるT時点におけるトラフィック統計データ及びT時点におけるトラフィック統計データを別々に受信する段階と、SDNコントローラが各オンライン仮想マシンのエッジスイッチのT時点におけるトラフィック統計データとT時点におけるトラフィック統計データとの間の差異に従って、各オンライン仮想マシンのトラフィック負荷情報を取得する段階とを含む。
【0013】
トラフィック監視方法を用いることで、本発明において提供されるSDNコントローラは、各サービングノードのトラフィック負荷の状態に従って、ユーザにサービスを提供する適切なサービングノードを選択するために、サービスクラスタ内のサービングノードに関するリアルタイムのトラフィック状態を取得することができ、又は各サービングノードのトラフィック負荷の状態に従って、サービスクラスタのキャパシティ拡大又はキャパシティ縮小の操作を実行することができる。
【0014】
第3の態様によれば、本出願はソフトウェア定義型データセンターを提供し、ソフトウェア定義型データセンターはSDNコントローラと複数のエッジスイッチとを含み、複数のエッジスイッチはSDNコントローラに通信可能に接続され、サービスクラスタがソフトウェア定義型データセンターに展開され、少なくとも2つのオンライン仮想マシンがサービスクラスタのサービングノードとして用いられ、少なくとも2つのオンライン仮想マシンのIPアドレスが共有IPアドレスとして設定される。複数のエッジスイッチはSDNコントローラにパケット転送情報を要求し、SDNコントローラが送出した転送フローテーブルに従ってパケットを転送するよう構成され、SDNコントローラは第2の態様のサービスクラスタスケジューリング方法を実装するよう構成される。
【0015】
第4の態様によれば、本出願はソフトウェア定義型データセンターを提供し、ソフトウェア定義型データセンターはSDNコントローラと複数のエッジスイッチとを含み、複数のエッジスイッチはSDNコントローラに通信可能に接続され、サービスクラスタがソフトウェア定義型データセンターに展開され、少なくとも2つのオンライン仮想マシンがサービスクラスタのサービングノードとして用いられ、少なくとも2つのオンライン仮想マシンのIPアドレスが共有IPアドレスとして設定される。複数のエッジスイッチはSDNコントローラにパケット転送情報を要求し、SDNコントローラが送出した転送フローテーブルに従ってパケットを転送するよう構成され、SDNコントローラは第3の態様のサービスクラスタトラフィック監視方法を実装するよう構成される。
【0016】
第5の態様によれば、本出願はコンピューティングデバイスを提供し、コンピューティングデバイスは、プロセッサと、メモリと、バスと、通信インタフェースとを含む。メモリは実行命令を格納するよう構成され、プロセッサ及びメモリはバスを用いて接続され、コンピューティングデバイスが動作すると、プロセッサはメモリに格納された実行命令を実行し、その結果、デバイスは第2の態様のサービスクラスタスケジューリング方法を実行する。
【0017】
第6の態様によれば、本出願はコンピューティングデバイスを提供し、コンピューティングデバイスは、プロセッサと、メモリと、バスと、通信インタフェースとを含む。メモリは実行命令を格納するよう構成され、プロセッサ及びメモリはバスを用いて接続され、コンピューティングデバイスが動作すると、プロセッサはメモリに格納された実行命令を実行し、その結果、デバイスは第3の態様のサービスクラスタトラフィック監視方法を実行する。
【0018】
それに応じて、この実施形態は対応するコンピュータ可読媒体をさらに提供する。コンピュータ可読媒体は、サービスクラスタ展開、スケジューリング、又はトラフィック監視方法のうちいずれか1つをコンピュータが実行することを可能にするコンピュータ実行可能命令を格納するよう構成される。
【0019】
本出願では、SDNコントローラがLBerとして用いられ、SDNの動的拡張能力は制御層で多重化されることができ、SDNネットワークにネットワークリソースはネットワーク転送層で多重化されることができる。実装の複雑性は低く、投資コストは低い。さらに、SDNコントローラはLBerとして用いられ、これにより、転送経路が長く転送効率が低いという従来技術の問題を回避する。なぜなら、別個のLBerが用いられる場合、ユーザトラフィックは常にLBerにルーティングされ、その後サービングノードに転送又は再ルーティングされるからである。ユーザトラフィックは、SDNネットワークの入り口でエッジスイッチに分配され、SDNコントローラは最適経路を選択する。転送経路は短く、転送効率は高い。
【図面の簡単な説明】
【0020】
本発明の実施形態において技術的解決手法をより明確に説明するために、以下では実施形態を説明するのに必要な添付図面を簡潔に説明する。以下の説明における添付図面は本発明のいくつかの実施形態を示しており、当業者は創造的努力をせずにこれらの添付図面から他の図面をさらに導出できることは明らかである。
【0021】
図1】本発明のある実施形態によるソフトウェア定義型データセンターの概略構造図である。
【0022】
図2】本発明のある実施形態による別のソフトウェア定義型データセンターの概略構造図である。
【0023】
図3】本発明のある実施形態による、新たなオンライン仮想マシンの識別に関する概略フローチャートである。
【0024】
図4】本発明のある実施形態による、ARPパケットのフォーマット構成の概略図である。
【0025】
図5】本発明のある実施形態による、サービスクラスタのトラフィック分配の概略フローチャートである。
【0026】
図6】本発明のある実施形態による汎用コンピューティングデバイスの概略構造図である。
【発明を実施するための形態】
【0027】
以下では、本発明の実施形態における技術的解決手法を、本発明の実施形態における添付図面を参照して明確且つ十分に説明する。説明される実施形態は、本発明の実施形態の一部であって全てではないことは明らかである
【0028】
本発明の詳細な説明を容易にするために、本発明に関わるコンセプトがまず以下に説明される。
【0029】
テナントネットワーク:SDDCにおいてテナントが確立したネットワーク。一般的に、テナントネットワークはVPCに対応する。
【0030】
サービスクラスタ:同じサービスをユーザに提供するサービングノード群から構成されるクラスタ。
【0031】
サービングノード及び仮想マシン:サービングノードはサービスクラスタにおいてサービスを提供するノードを指し、仮想マシンはクラウド環境において仮想化によって得られるノードである。本発明の実施形態では、サービングノードは仮想マシンを用いることで実装されるが、SDDCにおける全ての仮想マシンがサービングノードを実装するよう構成されるわけではない。別のサービスを実行する仮想マシンが存在してもよい。
【0032】
静的仮想マシン:クラウド管理プラットフォームにより、静的設定情報を用いて構成される仮想マシン。仮想マシンはオンライン化されない、つまり仮想マシンはエッジスイッチに接続されない。
【0033】
オンライン仮想マシン:アクティブ状態の仮想マシンを表す。オンライン仮想マシンは、オペレーションを実行することができ、別の関連デバイスと通信することができる。
【0034】
仮想マシンのオンライン化:仮想マシンがアクティブ状態に入った場合に起こる関連動作又はイベントを表す。
【0035】
共有IPアドレス:同じサービスクラスタに属するサービングノード群が共有IPアドレスとして設定される。共有IPアドレスは同じIPアドレスであってよく、又は複数の異なるIPアドレスのセットであってよい。IPアドレスのセットは、サービスクラスタ内のサービングノードにより共有される。例えば、サービスクラスタ内の全てのサービングノードのIPアドレスがIP1として設定されると、IP1は共有IPアドレスである。別の例では、サービスクラスタにおける共有IPアドレスがIP1及びIP2であると、サービスクラスタ内のサービングノードのIPアドレスがIP1又はIP2として設定されてもよい。
【0036】
図1は、本発明において例示されるクラウドデータセンターの構成図である。図1において、インフラストラクチャ層1には、コンピューティングデバイス、ストレージデバイス、物理スイッチングデバイスなど、クラウドデータセンターを構成するハードウェア装置が含まれる。ハードウェア装置は、単一タイプの専用デバイスであってよく、又はコンピューティング、ストレージ、及びスイッチングを統合した統合デバイスであってもよい。インフラストラクチャ層1内の物理スイッチングデバイスは、指定されたアーキテクチャに従ってネットワークを形成し、ネットワークコア領域を形成する。仮想スイッチはネットワークコア領域において仮想化されることができる。仮想スイッチは、ネットワークコア領域を越えた先にネットワークエッジ領域を形成する。コア領域及びエッジ領域におけるスイッチングデバイスは相互接続され、SDDCインフラストラクチャネットワークを共同で構成する。インフラストラクチャ層1のリソースは、仮想化層2により仮想化された後に、仮想マシン(Virtual Machine:仮想マシン)を派生することができる。仮想マシンは、ネットワークにアクセスするために、仮想スイッチにアクセスする。図1に示されるように、仮想マシン61、仮想マシン62、仮想マシン71、仮想マシン72、及び仮想マシン73が仮想マシンであり、エッジスイッチ51、52、53、54、及び55が仮想スイッチである。
【0037】
仮想スイッチはSDDCNネットワークを形成する。SDDCNネットワークはSDNネットワークであり、SDNコントローラ30を含む。エッジスイッチ51〜55は、SDNコントローラ30の命令に従ってパケットを交換する。SDNコントローラ30はさらに、図1のテナントネットワーク31及びテナントネットワーク32など、一連のネットワークインフラストラクチャ上の複数のテナントネットワーク(又はVPCと呼ばれることもある)をカスタマイズすることができる。全てのテナントネットワークは互いに論理的に分離されている。各テナントは仮想マシンを展開し、アプリケーションソフトウェアをインストールし、排他的なテナントネットワーク内のユーザにサービスを公開することができる。可用性と性能を考慮すると、テナントはさらに、サービスに関してマルチポイント展開を実行してサービスクラスタを構築することができ、全てのサービングノードは同種のサービスを外部に提供する。図1に示されるように、テナントネットワーク31はサービスクラスタ7を画定する。SDDCネットワークはまた、図1の外部ネットワーク4などの外部ネットワークと相互に作用することができる。ユーザ63は、外部ネットワーク4を用いて、SDDC内のユーザ又はサービスに接続する。
【0038】
クラウド環境では、LB負荷分散装置(Load Balancer:LBer)の担い手は仮想マシンである。各仮想マシンの単体の性能は限られている。テナントネットワークVPCにおいて負荷分散のスケジューリング能力を保証し、サービスクラスタにおいて直線的に増加する必要条件を満たすために、一般的に複数の仮想マシンがLBerクラスタを構築するのに用いられる必要がある。継続的に調整されるLBerクラスタの場合、LBer間の同期の一貫性及び適時性がサービスのオンライン化レートに影響を及ぼす可能性がある。その一方で、クラウド環境におけるサービスクラスタ構成は柔軟である。テナントはサービスクラスタをいつでも柔軟に構成することができ、キャパシティ拡大及びキャパシティ縮小は比較的頻繁に行われる。サービスクラスタの確立、キャパシティ拡大、キャパシティ縮小、及び削除は、テナントの手動による介入を必要とし、柔軟性が不十分である。
【0039】
上述の問題を解決するために、本発明のこの実施形態は、図1のSDNコントローラ30などのSDNコントローラがLBerのスケジューリング機能及び決定機能を実装するのに用いられ、SDNコントローラは、同じサービスクラスタ内のサービングノードの同じIPアドレス又は共有IPアドレスに従って、サービスクラスタに対して自動化された管理を実行するという技術的解決手法を提供する。第1に、本発明のこの実施形態では、LBer又はLBerクラスタが別々に確立されるのではなく、SDNコントローラがLBerのスケジューリング機能及び決定機能を実装するのに用いられる。第2に、サービスクラスタ内の全てのノードが共有IPアドレスとして設定される。SDNコントローラは、テナントネットワーク内のIPアドレスの競合をキャプチャし、共有IPアドレスを識別して共有IPアドレスに基づいてサービスクラスタを管理し、メディアアクセス制御(Media Access Control:MAC)アドレスを用いてサービスクラスタ内の異なるサービングノードを区別する。さらに、SDNコントローラはサービングノードのLB原理に従い、パケット転送フローテーブルをカスタマイズして、ユーザトラフィックを特定のサービングノードに送信するようスイッチに命令する。スイッチは、SDNコントローラが送出した転送フローテーブルを受信し、転送フローテーブルの命令に従ってトラフィックを分配する。
【0040】
SDDCNネットワークの核として、SDNコントローラは、比較的強力な能力を備えて構成される。本発明のこの実施形態では、SDNコントローラはLBerのスケジューリング機能及び決定機能を実装するのに用いられる。SDNの動的拡張能力は制御層で多重化されることができ、SDNネットワークのネットワークリソースはネットワーク転送層で多重化されることができる。実装の複雑性は低く、投資コストは低い。そのほかに、SDNコントローラは共有IPアドレスを用いてクラスタを管理し、SDNコントローラは、サービスクラスタの確立、キャパシティ拡大、キャパシティ縮小、及び削除を、テナントの手動による介入を必要とすることなく自動的に完了し、テナント体験は良好である。さらに、SDNコントローラはLBerとして用いられ、これにより、転送経路が長く転送効率が低いという従来技術の問題を回避する。なぜなら、別個のLBerが用いられる場合、ユーザトラフィックは常にLBerにルーティングされ、その後サービングノードに転送又は再ルーティングされるからである。ユーザトラフィックは、SDNネットワークの入り口でエッジスイッチに分配され、SDNコントローラは最適経路を選択する。転送経路は短く、転送効率は高い。
【0041】
以下では、本発明のこの実施形態における特定の実装の細部を特定の実装方式を参照して詳細に説明する。
[サービスクラスタの展開と管理]
【0042】
本発明のこの実施形態では、SDNコントローラがサービスクラスタを管理し、その管理には、サービスクラスタの確立、キャパシティ拡大、キャパシティ縮小、及び削除が含まれる。サービスクラスタの管理には、サービスクラスタの健全性チェックがさらに含まれてもよい。
【0043】
図2を参照すると(図1及び図2においてテナントが構成したエッジスイッチ及びサービスクラスタの状態が異なり、この差異は特定の実装におけるテナント構成状態の多様性を表すためだけに用いられるが、図1及び図2がシステム構成及び方法の実装において本質的な差異を有することを表してはいない)、図2は、同じテナントが確立したサービスクラスタA及びサービスクラスタBを示す。サービスクラスタAの共有IPアドレスはIPとして設定され、サービスクラスタの共有IPアドレスはIPとして設定される。テナントが構成したサービスクラスタAは3つのサービングノードを含み、サービングノードA1のIPアドレス及びMACアドレスはそれぞれ(IP、MAC)、サービングノードA2のIPアドレス及びMACアドレスはそれぞれ(IP、MAC)、サービングノードA3のIPアドレス及びMACアドレスはそれぞれ(IP、MAC)であると考えられる。サービスクラスタBは3つのサービングノードを含み、サービングノードB1のIPアドレス及びMACアドレスはそれぞれ(IP、MAC)、サービングノードB2のIPアドレス及びMACアドレスはそれぞれ(IP、MAC)、サービングノードB3のIPアドレス及びMACアドレスはそれぞれ(IP、MAC)である。
【0044】
SDNコントローラ30は共有IPアドレスに従ってテナントのサービスクラスタを管理し、テナントネットワークにおいて共有IPアドレスのサービングノードを識別し、共有IPアドレスのサービングノードに基づいて、サービスクラスタを確立してサービスクラスタのキャパシティを拡大し、サービスクラスタ内の各ノードの健全性ステータスを定期的に検出し、健全性チェック結果に従ってサービスクラスタのキャパシティを縮小する、又はサービスクラスタを削除する。
【0045】
(1)サービスクラスタの確立又はサービスクラスタのキャパシティ拡大
【0046】
SDNコントローラ30は、サービングノードを(仮想マシンを用いるなどして)サービスクラスタに追加する、又はサービングノードによる新たなサービスクラスタを確立する。それには、仮想マシンがオンラインであり且つ動作していると判定される必要がある。なぜなら、オンラインであり且つ動作している、という状態にない仮想マシンがサービスクラスタに追加され、その仮想マシンはサービスクラスタにおいてタスクを実行するよう構成されているが、オンラインでない場合、サービスクラスタのサービス処理が影響を受けるからである。したがって、SDNコントローラ30は、仮想マシンがオンラインで動作している場合、オンラインで動作している仮想マシンをサービスクラスタに追加する必要がある、又は仮想マシンによる新たなサービスクラスタを確立する必要がある。本発明のこの実施形態では、サービングノードはSDDC内の仮想マシンを用いて実装される。ネットワークにつながった後に、SDNコントローラ30は、SDDC内の各静的仮想マシンの静的設定情報、例えば、各静的仮想マシンが属するテナント及びサブネット、並びにMACアドレス、IPアドレス、及びゲートウェイなどの情報(これらは仮想マシンのものである)をクラウド管理プラットフォームから取得することができる。しかし、SDNコントローラ30は、各静的仮想マシンの実稼働状態が分からず、静的仮想マシンがテナントネットワークのエッジスイッチにアクセスするか直接確認することができない。本発明のこの実施形態は、オンライン仮想マシンを識別するために、SDNコントローラ30により用いられる方法を提供する。オンライン仮想マシンを識別した後に、SDNコントローラ30はサービスクラスタを確立する、又は確立したサービスクラスタに仮想マシンを追加する。具体的には、SDNコントローラ30は、新たなオンライン仮想マシンのエッジスイッチにより送信される仮想マシンのオンライン化イベントを取得する。SDNコントローラ30は、新たなオンライン仮想マシンのMACアドレスを取得し、新たなオンライン仮想マシンのMACアドレスを、複数の静的仮想マシンから選択した仮想マシン候補のIPアドレスと照合し、仮想マシン候補のMACアドレスが新たなオンライン仮想マシンのMACアドレスと一致する場合、仮想マシン候補を新たなオンライン仮想マシンとして決定し、新たなオンライン仮想マシンのエッジスイッチを仮想マシン候補にバインドする。SDNコントローラ30はさらに、新たなオンライン仮想マシンのIPアドレスが共有IPアドレスであるかどうかを識別し、新たなオンライン仮想マシンのIPアドレスが共有IPアドレスである場合、共有IPアドレスに対応するサービスクラスタに新たなオンライン仮想マシンを展開する。
【0047】
本発明のこの実施形態では、SDNコントローラ30は、アクティブ識別及びパッシブキャプチャという2つの方式のいずれかでオンライン仮想マシンを識別することができる。SDNコントローラ30によるアクティブ識別は、仮想マシンがエッジスイッチにおいて最近オンライン化したことが分かった後に、新たなオンライン仮想マシンを識別するために、SDNコントローラ30が、識別要求メッセージを新たなオンライン仮想マシンにアクティブに送信して、仮想マシンのMACアドレスを取得することであり得る。SDNコントローラ30によるパッシブキャプチャは、新たなオンライン仮想マシンを識別するために、SDNコントローラ30が新たなオンライン仮想マシンのMACアドレスをチェックすることであり得る。
【0048】
図3は、SDNコントローラ30による仮想マシンのアクティブな識別の実装フローチャートである(仮想マシンを用いることで、サービングノードが実装される)。S31.新たなオンライン仮想マシンが第1のエッジスイッチに接続されている場合(新たなオンライン仮想マシンは、現在のSDDC内のテナント用に構成された複数の仮想マシンのうちいずれか1つであり、第1のエッジスイッチは、新たなオンライン仮想マシンへの接続を確立し、SDDCネットワーク内の複数のエッジスイッチからなるものであるエッジスイッチである)、SDNコントローラ30は、インタフェースアップ(interface UP)イベントなど、第1のエッジスイッチにより送信された仮想マシンのオンライン化イベントを受信する。
【0049】
S32.SDNコントローラ30は仮想マシン候補を選択する。
【0050】
第1のエッジスイッチのインタフェース報告イベントを受信した後に、SDNコントローラ30は、仮想マシンのオンライン化イベントが発生したと判定し、また複数の静的に構成された仮想マシン(その静的設定情報はSDNコントローラ30に格納されている)のうちどれが、新たなオンライン仮想マシンであるかをさらに判定する必要がある。この実施形態では、SDNコントローラ30はまず、静的に構成された仮想マシン(その静的設定情報はSDNコントローラ30に格納されている)から仮想マシン候補を選択する(SDNコントローラ30が選択した仮想マシン候補は、仮想マシン候補セットを構成し、仮想マシン候補セットには、1つ又は少なくとも2つの仮想マシン候補が含まれ、本発明のこの実施形態は、仮想マシン候補セットには1つの仮想マシン候補が含まれる可能性があるという特別なシナリオを提供する)。仮想マシン候補を選択する目的は、仮想マシン候補が新たなオンライン仮想マシンであるかどうかを検証することである。検証の精度を保証するために、選択した仮想マシン候補セットの範囲は、SDNコントローラ上に静的に構成された全ての仮想マシンであってよい。選択した仮想マシン候補はさらに選別されてよく、例えば、特定のエッジスイッチにバインドされた仮想マシンが、静的に構成された全ての仮想マシンから除去される。ある特定の選択方式は次の通りである。SDNコントローラ30はまず、特定のエッジスイッチにバインドされていない静的に構成された仮想マシンのセットを決定し、SDNコントローラ30が新たなオンライン仮想マシンの識別を完了するまで、決定したセット内の静的に構成された仮想マシンを1つ1つ選択する。
【0051】
S33.SDNコントローラ30は仮想マシン候補のゲートウェイをシミュレートして、新たなオンライン仮想マシンに識別要求メッセージを送信する。識別要求メッセージは、新たなオンライン仮想マシンに、そのMACアドレスを報告するよう命令するのに用いられる。
【0052】
識別要求メッセージの1つの特定の実装方式は、アドレス解決プロトコル(Adress Resolution Protocol:ARP)要求を用いている。ARP要求は、仮想マシン候補のゲートウェイをシミュレートすることで、SDNコントローラ30により送信される。ARP要求の目的は、仮想マシン候補に、そのメディアアクセス制御(Media Access Control:MAC)アドレスを報告するよう要求することである。
【0053】
図4は、イーサネット(登録商標)に基づくARPパケットのフォーマット構成の概略図である。ARPデータパケットには2つの部分があり、最初の部分がイーサネット(登録商標)ヘッダ、2番目の部分がARP要求/応答部である。この実施形態において、仮想マシン候補のゲートウェイをシミュレートすることでSDNコントローラ30により構築されるARP要求パケットのイーサネット(登録商標)ヘッダ内の宛先MACアドレスには、FF:FF:FF:FF:FF:FFが書き込まれる。これは、ARPパケットがブロードキャストの形態で送信されることを表す。ARP要求パケットのイーサネット(登録商標)ヘッダ内の送信元MACアドレスには、仮想マシン候補のゲートウェイのMACアドレスが書き込まれる。これは、ARP要求パケットの最初のホップが仮想マシン候補のゲートウェイを介して送信されることを表す。ARP要求パケットのARP要求部の送信元IPアドレス及び送信元MACアドレスには、仮想マシン候補のゲートウェイのIPアドレス及びMACアドレスがそれぞれ書き込まれる。これは、ARP要求パケットが、仮想マシン候補のゲートウェイにより生成され送信されることを表す。ARP要求パケットのARP要求部の宛先IPアドレスには、仮想マシン候補のIPアドレスが書き込まれる。ARP要求パケットのARP要求部の宛先MACアドレスには、00:00:00:00:00:00などの特別なフィールドが書き込まれる。これは、宛先MACアドレスが応答側により書き込まれることを表す。
【0054】
SDNコントローラ30は、仮想マシン候補セットの仮想マシン候補ごとに1つのARP要求パケットを構築し、各ARP要求パケットは、各仮想マシン候補に対応する。この段階では、SDNコントローラは、静的に構成された仮想マシンを1つ1つトラバースし、1つの仮想マシン候補が決定されると1つのARP要求パケットを構築し、構築したARP要求パケットを送信してよい、又は全ての仮想マシン候補が選択された後に、仮想マシン候補ごとにARP要求パケットを構築して、構築した複数のARP要求パケットを同時に送信してもよい。上述の2つの特定の実装方式は両方とも、本発明のこの実施形態に適用できる。
【0055】
S34.SDNコントローラ30は、新たなオンライン仮想マシンが送信した識別要求応答メッセージを受信する。識別要求応答メッセージは、新たなオンライン仮想マシンのMACアドレスを保持している。
【0056】
具体的には、SDNコントローラ30は、第1のエッジスイッチにより報告されたPacketInイベントを受信し、ARP応答パケットを取得するためにパケットをパースする。
【0057】
S35.SDNコントローラ30は、ARP応答パケット内の送信元MACアドレスが仮想マシン候補の静的設定情報内のMACアドレスと一致するかチェックする。ARP応答パケット内の送信元MACアドレスが仮想マシン候補の静的設定情報内のMACアドレスと一致する場合、新たなオンライン仮想マシンはSDNコントローラ30により識別され、仮想マシン候補は、ARP応答を送信する新たなオンライン仮想マシンに適合し、第1のエッジスイッチは仮想マシン候補にバインドされる。
【0058】
具体的には、第1のエッジスイッチについての情報が、決定した仮想マシン候補の静的設定情報に記録される。
【0059】
この実施形態では、非同期モードが、S33、S34、及びS35において用いられてもよい。つまり、S33では、仮想マシン候補が選択された後に、ARP要求パケットは選択した仮想マシン候補に向けて送信される。S34では、ARP応答パケットが受信された後に、事前に送信されたARP要求応答パケットがどの仮想マシン候補向けのものか判定することができない。この場合、S35では、仮想マシン候補セット内の仮想マシン候補が1つ1つチェックされる可能性がある。
【0060】
新たなオンラインサービングノードをアクティブに識別する実装方式に加えて、SDNコントローラ30はさらに、パッシブキャプチャ方式で新たなオンラインサービングノードを識別することもできる。新たなオンライン仮想マシンにより送信され、エッジスイッチにより転送される識別要求メッセージを受信した後に、SDNコントローラ30は、新たなオンライン仮想マシンを識別するために、識別要求メッセージが保持する新たなオンライン仮想マシンのMACアドレスと、仮想マシン候補のMACアドレスとの間の一貫性を検出する。新たなオンライン仮想マシンにより送信される識別要求メッセージは、ARP要求パケット(フリーのARP要求を含む)であってもよい。SDNコントローラ30は、受信したARP要求パケットに従って、ARP要求を送信する仮想マシンを新たなオンライン仮想マシンとして決定し、さらにARP要求の送信元MACと仮想マシン候補の静的設定情報のMACとの間の一貫性をチェックする。ARP要求の送信元MACが仮想マシン候補の静的設定情報のMACと一致する場合、新たなオンライン仮想マシンが仮想マシン候補に適合すると判定され、新たなオンライン仮想マシンはSDNコントローラ30により識別され、新たなオンライン仮想マシンのエッジスイッチが仮想マシン候補にバインドされる。
【0061】
SDNコントローラ30が新たなオンライン仮想マシンを識別した後に、SDNコントローラ30は、新たなオンライン仮想マシンのIPアドレスと、テナントの別の仮想マシンのIPアドレスとが同じであるかチェックする(又は、新たなオンライン仮想マシンのIPアドレスと、サービスクラスタの予め設定した共有IPアドレスとが同じであるかチェックする)。新たなオンライン仮想マシンのIPアドレスと、テナントの別の仮想マシンのIPアドレスとが同じである場合、SDNコントローラ30は、新たなオンライン仮想マシンのIPアドレスが確立したサービスクラスタに対応しているかチェックする。新たなオンライン仮想マシンのIPアドレスが確立したサービスクラスタに対応する場合、SDNコントローラ30は、確立したサービスクラスタに新たなオンライン仮想マシンを追加する。新たなオンライン仮想マシンのIPアドレスが確立したサービスクラスタに対応しない場合、新たなオンライン仮想マシンのIPアドレスを識別子として用いることで、新たなサービスクラスタが確立され、新たなオンライン仮想マシンが新たに確立したサービスクラスタに展開される。SDNコントローラ30はまた、新たなオンライン仮想マシンのIPアドレスと、サービスクラスタの予め設定した共有IPアドレスとが同じであるかチェックすることができる。新たなオンライン仮想マシンのIPアドレスとサービスクラスタに予め設定した共有IPアドレスとが同じである場合、SDNコントローラ30は、共有IPアドレスに対応する確立したサービスクラスタに新たなオンライン仮想マシンを追加する、又は共有IPアドレスを識別子として用いることで新たなサービスクラスタを確立して、確立したサービスクラスタに新たなオンライン仮想マシンを追加する。
【0062】
本発明のこの実施形態では、SDNコントローラ30は、全てのユーザアクセスのトラフィックを共有するために、共有IPアドレスを用いて構成される複数の仮想マシン用のサービスクラスタを確立する。図2に示されるように、テナントネットワークは2つのサービスクラスタを有する。サービングノードA1、サービングノードA2、及びサービングノードA3はIPアドレスIPを共有し、MACアドレスはそれぞれ、MAC、MAC、及びMACである。サービングノードB1、サービングノードB2、及びサービングノードB3はIPアドレスIPを共有し、MACアドレスはそれぞれ、MAC、MAC、及びMACである。テナントネットワークは、共通部分を持つことを許可しているので、SDDCNにおいてSDNコントローラ30は、テナントとIPとの組み合わせを用いて、サービスクラスタを一意に識別することができる。
【0063】
上述の仮想マシンのオンライン化には、新たに確立した仮想マシンが動作を開始するシナリオが含まれるだけでなく、仮想マシンを新たに追加する、又はIPアドレスを変更するなど、仮想マシンの新たなIPアドレスが有効になるようトリガするという別のシナリオも含まれる。
【0064】
(2)サービスクラスタの削除又はサービスクラスタのキャパシティ縮小
【0065】
サービスクラスタは動的に拡大縮小可能である。共有IPを用いて構成された仮想マシンがテナントネットワークにおいてオンライン化されたことをSDNコントローラが検出した場合には、SDNコントローラは指定したIPアドレスに対応するサービスクラスタのキャパシティを拡大し、サービスクラスタのキャパシティ縮小イベントが発生したことをSDNコントローラが発見した場合には、SDNコントローラはサービスクラスタのキャパシティを縮小する。
【0066】
サービングノード又は別の管理ノードが、サービスクラスタのキャパシティ縮小イベントをSDNコントローラ30に通知することができ、又はSDNコントローラ30は、SDNコントローラを用いて開始されるサービスクラスタの健全性チェックなど、サービスクラスタのキャパシティ縮小イベントをアクティブに検出し発見することができる。サービスクラスタのキャパシティ縮小イベントには、サービングノードのIPアドレスの機能停止が含まれてもよい。サービングノードが仮想マシンを用いて実装される場合、サービングノードのIPアドレスの機能停止が、仮想マシンのオフライン化、変更、障害、又はIPアドレス削除などのあらゆる条件になる可能性がある。
【0067】
IPアドレスを有する仮想マシンが故障していると判定された場合、SDNコントローラ30は、故障状態にある仮想マシンのIPアドレスがサービスクラスタに対応するかチェックする。故障状態にある仮想マシンのIPアドレスがサービスクラスタに対応している場合、SDNコントローラ30は、故障した仮想マシンのIPアドレスに対応するサービスクラスタから故障した仮想マシンを削除し、サービスクラスタの残りのサービングノードの数量が1より大きいかチェックする。サービスクラスタの残りのサービングノードの数量が1より小さいか1に等しい場合、IPアドレスに対応するサービスクラスタは削除される。
【0068】
(3)サービスクラスタの健全性チェック
【0069】
本発明のこの実施形態では、SDNコントローラ30は、サーバのキャパシティ縮小イベントが発生したかアクティブに検出することができる。例えば、障害のあるサービングノードをサービスクラスタからタイムリーに削除して、次のアクセストラフィックが障害のあるサービングノードに送信されないことを保証し、それにより、テナントサービスの高い可用性を保証するために、SDNコントローラ30は、サービスクラスタ内のサービングノードに対して健全性チェックを定期的に実行し、健全性ステータスが必要条件を満たさないサービングノードの元のIPアドレスを無効にする。この実施形態では、SDNコントローラ30は、ポートステータス監視、リンクステータス検出、又はフローテーブル監視の3つの方式のうちいずれか1つ又はこれらの組み合わせで、サービスクラスタ内のサービングノードの健全性ステータスを異なるネットワークレベルからチェックし、健全性チェック結果に従って、サービスクラスタの、IPアドレスを有する任意のオンライン仮想マシンが故障しているか判定することができる。
【0070】
ポートステータス監視:ポートステータス監視の方式は、サービングノードの物理層障害を検出するのに一般的に用いられる。SDNコントローラ30は、管理者のリアルタイムコマンド又は静的構成を用いて、各エッジスイッチにポートステータス監視のロジックを構成することができ、これにより、SDDCN内の各エッジスイッチは、サービスクラスタ内の各サービングノードのインタフェースステータスをリアルタイムで検出する。サービングノードのインタフェースステータスが変わった場合、ポートステータス(PortStatus)イベントがSDNコントローラ30に報告される。例えば、サービングノードとして用いられる仮想マシンの電源オフ、再起動、インタフェース障害、又はシャットダウンが、仮想マシンのインタフェースステータスがオンライン(UP)からオフライン(DOWN)に変更されるきっかけとなる可能性がある。SDNコントローラ30は、少なくとも1つのエッジスイッチにより送信されたポートステータスイベントPortStatus(仮想マシンインタフェースのオフラインなど)を受信し、ポートステータスイベントに従って異常なインタフェースステータスを有するポートを判定し、異常なインタフェースステータスを有するポートに対応する、IPアドレスを有するオンライン仮想マシンが故障していると判定する。
【0071】
リンクステータス検出:リンクステータス検出の方式は、サービングノードのリンク層障害を検出するのに一般的に用いられる。SDNコントローラ30は、サービスクラスタ内の各サービングノードのゲートウェイをシミュレートし、仮想マシンのIPアドレスに従ってARP要求を構築するなど、リンクステータス検出の要求メッセージを定期的に構築し、構築したARP要求のパケットPacketOutを仮想マシンに対応するエッジスイッチに送信する。ARP要求を受信した後、サービングノードがタイムリーに応答しない場合、ARP応答が失効する可能性がある。有効期限の長さが予め設定した閾値を超えた場合、SDNコントローラ30は、失効したARP要求の宛先IPアドレス(つまり、仮想マシンのIPアドレス)を故障状態として記録する。
【0072】
フローテーブル監視:フローテーブル監視の方式は、サービングノードのネットワーク層障害及びトランスポート層障害を検出するのに一般的に用いられる。SDNコントローラ30は、ユーザのサービス要求及びサービングノードのサービス応答を転送するために、各エッジスイッチに転送フローテーブルを送出する。エッジスイッチは、転送フローテーブルのアイドル時間をリアルタイムで検出するよう構成される。転送フローテーブルがどのパケットにも適合しない場合、アイドル時間が増え続ける。アイドル時間がエージングタイムに達すると、エッジスイッチは、転送フローテーブルを削除し、フローテーブル除去FlowRemovedイベント又はフローテーブル終了(Flow Expiry)イベントなど、転送フローテーブルのエージングイベントをSDNコントローラ30に報告する。FlowRemoved(Expiry)イベントを受信した後に、SDNコントローラ30は、除去したフローテーブル又はフローテーブル終了イベントに対応する仮想マシンのIPアドレスを故障状態として記録する。

【0073】
上述の3つの方式のうちいずれか1つで健全性チェックを実行することで、IPアドレスを有する仮想マシンが故障していると判定された後に、サービスクラスタのキャパシティ縮小又は削除に関する上述の作業プロセスに従って、SDNコントローラ30は、故障したIPアドレスを有する仮想マシンをサービスクラスタから削除することができる。
[SDNコントローラによるLBトラフィック分配の実行]
【0074】
SDNコントローラ30がサービスクラスタを確立した後、又はサービングノードをサービスクラスタに新たに追加した後、SDNコントローラ30は、負荷分散原理に従ってサービスクラスタ内のサービングノードにトラフィックを分配することができる。図2に示されるように、ユーザ1のサービス要求は、ユーザ側に面したエッジスイッチ200を用いてテナントネットワークに送信され、SDNコントローラ30により送信された後にネットワークコア領域を横断し、サービス側に面したエッジスイッチ201を用いてテナントネットワークから外へ送信され、最終的にサービスクラスタA内のサービングノードA1に流れる。一方、サービングノードA1のサービス応答は、エッジスイッチ201を用いてテナントネットワークに送信され、SDNコントローラ30により送信された後にネットワークコア領域を横断し、エッジスイッチ200を用いてテナントネットワークから外へ送信され、最終的にユーザ1に流れる。転送プロセス全体では、SDNコントローラ30はエッジスイッチを制御し、エッジスイッチ用の転送フローテーブルをカスタマイズして送出し、パケット送信元情報及び宛先情報を照合し、転送経路をパケットにカプセル化し、パケットを転送する必要がある。
【0075】
図2のデータセンターに関連して、図5は、ユーザトラフィック分配のフローチャートである。具体的な段階は以下の通りである。
【0076】
S51.ユーザ1は、サービスクラスタ内のサービングノードにサービスを提供するよう要求し、ユーザ1のサービス要求パケットがユーザ1のエッジスイッチ200に送られる。
【0077】
S52.ユーザのエッジスイッチ200は、サービス要求パケットを受信した後に、適合した転送フローテーブルを見つけ出せず、PacketInイベントをSDNコントローラ30に報告して、SDNコントローラ30にルーティング情報を送出するよう要求する。
【0078】
S53.SDNコントローラ30は、サービス要求パケットのパケット送信元情報及び宛先情報をパースし、サービス要求パケットの宛先IPアドレス情報に従って、サービス要求パケットに対応するサービスクラスタを判定し、予め設定した負荷分散ポリシに従って、サービスクラスタA内のサービングノードA1をターゲットサービングノードとして選択し、ユーザ1とサービングノードA1のエッジスイッチ201との間の転送情報を計算し、決定した転送情報に従って、エッジスイッチ201及びエッジスイッチ200の転送フローテーブルをそれぞれ生成し、それぞれの転送フローテーブルをサービングノードA1のエッジスイッチ201及びユーザ1のエッジスイッチ200にそれぞれ送出する。
【0079】
SDNコントローラ30は、ユーザ1及びサービングノードA1にそれぞれ対応する転送フローテーブルをそれぞれ生成し、これらの転送フローテーブルをエッジスイッチ200及びエッジスイッチ201にそれぞれ送出する。SDNコントローラ30は、これらのフローテーブルを同時に送出することができ、又はエッジスイッチ201の転送フローテーブルを最初に送出することができ、又はエッジスイッチ200の転送フローテーブルを最初に送出することができる。転送フローテーブルをエッジスイッチ201に最初に送出することは、主に、サービングノードA1のエッジスイッチ201が、パケットが到着する前に、利用可能な転送フローテーブルを有することを保証し、サービングノードA1のエッジスイッチ201がPacketInイベントをSDNコントローラ30に報告することを防止することである。エンドツーエンドの通信は常に相互に行われる。SDNコントローラ30がエッジスイッチ200及びエッジスイッチ201に送出した転送フローテーブルには、順方向と逆方向という2つの方向が含まれ、順フローテーブルはユーザ1の要求をサービングノードA1に転送するのに適用でき、逆フローテーブルはサービングノードA1のサービス応答をユーザ1に転送するのに適用できる。
【0080】
S54.エッジスイッチ200は、SDNコントローラが送出した転送フローテーブルに従って、サービングノードA1のエッジスイッチ201にサービス要求パケットを転送する。
【0081】
S55.サービングノードA1のエッジスイッチ201は、サービス要求パケットをサービングノードA1に転送する。エッジスイッチとして、サービングノードA1のエッジスイッチ201は、アクセス先のホストが明確である場合、パケット内の宛先MACアドレスに従ってパケットを転送するだけでよい。
【0082】
S56.サービングノードA1はユーザ1の要求に応答して、サービングノードA1のエッジスイッチ201にサービス応答を送信する。
【0083】
S57.サービングノードA1のエッジスイッチ201は、SDNコントローラ30が送出した転送フローテーブルに従ってサービス応答を転送し、ユーザ1のエッジスイッチ200にサービス応答パケットを転送する。
【0084】
S58.ユーザ1のエッジスイッチ200は、サービス応答をユーザ1に転送する。ユーザ1のエッジスイッチ200は、アクセス先のホストが明確である場合、パケット内の宛先MACアドレスに従ってパケットを転送するだけでよい。
【表1】
【0085】
上述の表には、ユーザ1とサービングノードA1との間のインタラクションプロセスにおいて、関連するエッジスイッチ用にSDNコントローラがカスタマイズして送出した転送フローテーブルが記載されている。ユーザ1の要求に対して、エッジスイッチ200は、パケット送信元IP11及び宛先IP0を照合し、エッジスイッチ200への転送経路をパケットにカプセル化し、コアネットワークの入り口にパケットを送信する。IP11及びIP0が同じネットワークセグメントに属する場合、パケットの宛先MACアドレスにはサービングノードA1のMACアドレスMACが直接書き込まれ、これは変更されない。IP11及びIP0が同じネットワークセグメントに存在しない場合、パケットの宛先MACアドレスにはサービングノードA1のゲートウェイMACアドレスが書き込まれる。エッジスイッチ201は、パケットの宛先MACアドレスをサービングノードA1のMACアドレスMACに変更する必要がある。エッジスイッチ201はパケットの宛先MACを照合し、パケットをサービングノードA1に送信する。サービングノードA1の応答に対して、エッジスイッチ201はパケットの宛先IP11を照合し、エッジスイッチ200への転送経路をパケットにカプセル化し、コアネットワークの入り口にパケットを送信する。エッジスイッチ200は、パケットの宛先MAC11の照合を実行して、パケットをユーザ1に送信する。
【0086】
ユーザ1とサービングノードA11との間のサービス要求及びサービス応答の次の転送プロセスは、最初のサービス要求パケット及び最初のサービス応答パケットの転送プロセスと同様である。
【0087】
上述の解決手法は、負荷分散原理に従って、SDNコントローラ30がどのようにしてユーザの最初のパケット用にサービングノードを最初に分配するかを説明している。実際のサービスでは、トラフィック分配について別のシナリオが存在する。サービスクラスタのサービングノードが障害を受けると、SDNコントローラ30は新たなオンラインユーザトラフィックを障害のあるサービングノードに送信することができず、さらに、障害のあるサービングノードに送信されるユーザトラフィックを、サービスクラスタ内の別の正常なサービングノードに再送信する必要がある。SDNコントローラ30は、エッジスイッチに関する、ユーザ及びサービングノードに対応する送出された転送フローテーブルをタイムリーに削除し、ユーザトラフィック分配プロセスに従ってユーザトラフィックに新たなサービングノードを再指定し、新たな転送フローテーブルを送出する必要がある。
[サービスクラスタ内のサービングノードの負荷監視]
【0088】
本発明のこの実施形態では、LBerとして、SDNコントローラ30はサービングノードのLB原理に従い、パケット転送フローテーブルをカスタマイズして、ユーザトラフィックを特定のサービングノードに送信するようエッジスイッチに命令する。SDNコントローラ30は、サービスクラスタ内のサービングノードの負荷を監視し、負荷監視結果に従ってLBerの負荷分散機能を実行し、ターゲット仮想マシンを選択することができる。負荷監視の一般的なやり方では、SDNコントローラ30は各サービングノードのリソース使用量ステータスを監視することができ、例えば、各サービングノードのCPUリソース利用率、メモリ利用率、キャッシュ利用率、ハードディスク利用率、帯域幅利用率、又はこれらのリソースのあらゆる組み合わせなどのうち任意のリソースの使用量ステータスを監視することができる。本発明のこの実施形態では、SDNコントローラ30による負荷分散を実装するために、従来技術におけるサービングノードのリソース使用量ステータスに従って負荷分散の決定を行うことに加えて、新たな実装方式がさらに提供される。SDNコントローラ30は、サービングノードトラフィックの負荷分散原理に基づいて、負荷分散のスケジューリングを実行し、対応する転送フローテーブルをカスタマイズして、エッジスイッチにトラフィックを分配するよう命令する。
【0089】
SDNコントローラ30は、サービスクラスタ内のオンライン仮想マシンに対してリソース負荷監視又はトラフィック負荷監視を実行し、サービスクラスタ内の各オンライン仮想マシンのリソース負荷情報又はトラフィック負荷情報を負荷監視結果から定期的に取得する。SDNコントローラ30は、サービスクラスタ内の各オンライン仮想マシンのリソース負荷情報又はトラフィック負荷情報を取得した後に、最小リソース負荷又は最小トラフィック負荷を有する仮想マシンをターゲット仮想マシンとして選択する。
【0090】
SDNコントローラ30は、各エッジスイッチに転送フローテーブルを送出すると、転送フローテーブルごとにトラフィックを監視するよう各エッジスイッチに命令することができる。又は、システムは、各エッジスイッチが転送フローテーブルごとにトラフィックを監視するというロジックを各エッジスイッチに構成することができる。SDDCネットワーク内のエッジスイッチは、SDNコントローラ30が送出した転送フローテーブルに従ってユーザのサービス要求及びサービングノードのサービス応答を転送し、各転送フローテーブルによって累積的に処理されたパケット量又はパケット長をリアルタイムで統計的に収集する。サービングノードのエッジスイッチにおいて、サービングノードのサービス応答によって累積的に処理されたパケット量は、サービングノードが応答したユーザ要求量を表し、サービングノードの負荷を間接的に反映する。SDNコントローラ30は、サービングノードのトラフィック負荷の監視を実装するために、エッジスイッチが統計的に収集した各転送フローテーブルのトラフィック統計結果をサービングノードのエッジスイッチから定期的に収集し、各転送フローテーブルのトラフィック統計結果からサービス応答トラフィックデータを選別する。
【0091】
図2に示されるように、テナントネットワーク内のサービスクラスタBは3つのサービングノードであるB1、B2、及びB3を有し、これらは1つのIPアドレスIP1を共有する。合計5人のユーザがサービスクラスタからサービスを要求する。ユーザ1及びユーザ4にはサービングノードB1がサービス提供し、ユーザ2及びユーザ5にはサービングノードB2がサービス提供し、ユーザ3にはサービングノードB3がサービス提供する。各サービングノードのエッジスイッチがサービス要求及び応答パケットを転送し且つ統計的に収集し、関連する転送フローテーブルの統計データフィールドに統計データを記録する。SDNコントローラは、転送フローテーブルのトラフィック統計データ抽出要求を周期的に又は定期的に送出し、抽出要求応答を受信した後に、サービス応答によって累積的に処理されたパケット量を取得する。過去のサンプリングデータを参照して、特定のサービングノードによって特定の期間内にユーザに提供されたサービストラフィックを計算することができ、そのサービストラフィックに従ってサービングノードの負荷が決定される。
【表2】
【0092】
SDNコントローラは、ある期間に従ってエッジスイッチのトラフィック統計データを収集する。表2には、異なる時点における各エッジスイッチに関して、異なる転送フローテーブルのサービス応答に対応するトラフィック統計データが記載されている。サービングノードB1は、ユーザ1及びユーザ4のサービス応答フローテーブル用のN11パケット及びN14パケットをT1時点において別々に処理し、[N11+ΔN11]パケット及び[N14+ΔN14]パケットをT2時点において別々に処理する。サービングノードB2は、ユーザ2及びユーザ5のサービス応答フローテーブル用のN22パケット及びN25パケットをT1時点において別々に処理し、[N22+ΔN22]パケット及び[N25+ΔN25]パケットをT2時点において別々に処理する。サービングノードB3は、ユーザ3のサービス応答フローテーブル用にN33パケットをT1時点において処理し、[N33+ΔN33]パケットをT2時点において処理する。
【0093】
SDNコントローラ30は、ある期間内の特定のサービングノードの負荷を取得するために、異なるユーザのサービス応答フローテーブルに関してサンプリング期間内に各サービングノードが処理したパケット量の増加を合計する。
【表3】
【0094】
表3には、SDNコントローラが計算した期間Tにおける各サービングノードのノード負荷が記載されている。期間TにおけるサービングノードB1のノード負荷は[ΔN11+ΔN14]であり、期間TにおけるサービングノードB2のノード負荷は[ΔN22+ΔN25]であり、期間TにおけるサービングノードB3のノード負荷はΔN33である。
【0095】
実施形態の全ての段階又は一部の段階が、ハードウェア又は関連するハードウェアに命令するプログラムにより実装されてよいことを、当業者は理解することができる。プログラムは、コンピュータ可読記憶媒体に格納されてよい。記憶媒体には、リードオンリメモリ、磁気ディスク、又は光ディスクが含まれてよい。
【0096】
本発明のこの実施形態におけるSDNコントローラは、ソフトウェアコンポーネント/プログラム、又は特定の回路モジュールなどのハードウェアモジュールを用いて実装されてよい。SDNコントローラがソフトウェアコンポーネントを用いて実装される場合、ソフトウェアコンポーネントは、コンピュータデバイス上で動作することができ、又はメディア媒体に格納することができる。ソフトウェアコンポーネントをロードするコンピュータデバイス、又はソフトウェアコンポーネントを格納するメディア媒体は、本発明のこの実施形態に関する特定の実装にも関連する。
【0097】
図6に示されるコンピューティングデバイス600には、プロセッサ602、メモリユニット604、入出力インタフェース606、通信インタフェース608、バス610、及びストレージデバイス612が含まれる。プロセッサ602、メモリユニット604、入出力インタフェース606、通信インタフェース608、及びストレージデバイス612は、バス610を用いて相互通信接続を実装する。
【0098】
プロセッサ602はコンピューティングデバイス600のコントロールセンターであり、本発明のこの実施形態において提供される技術的解決手法を実装するために、関連プログラムを実行するよう構成される。任意選択で、プロセッサ602には、1つ又は複数の中央処理装置(Central Processing Unit:CPU)、例えば、図6に示される中央処理装置1及び中央処理装置2が含まれる。任意選択で、コンピューティングデバイス600にはさらに、複数のプロセッサ602が含まれてよく、各プロセッサ602は、シングルコアプロセッサ(1つのCPUを含む)でも、マルチコアプロセッサ(複数のCPUを含む)でもよい。プロセッサ602は、汎用中央処理装置、マイクロプロセッサを用いてもよく、特定用途向け集積回路(Application Specific Integrated Circuit:ASIC)、又は1つ又は複数の集積回路を用いてもよい。
【0099】
プロセッサ602は、バス610を用いて、1つ又は複数のストレージソリューションに接続されてよい。ストレージソリューションには、メモリユニット604及びストレージデバイス612が含まれてよい。ストレージデバイス612は、リードオンリメモリ(Read Only Memory:ROM)、スタティックストレージデバイス、ダイナミックストレージデバイス、又はランダムアクセスメモリ(Random Access Memory:RAM)であってよい。メモリユニット604は、ランダムアクセスメモリであってよい。メモリユニット604は、プロセッサ602と統合されても、プロセッサ602の中に統合されてもよく、又はプロセッサ602から独立した1つ又は複数のストレージユニットであってもよい。
【0100】
プロセッサ602、又はプロセッサ602内部のCPUにより実行されるプログラムコードは、ストレージデバイス612又はメモリユニット604に格納されてよい。任意選択で、ストレージデバイス612内部に格納されたプログラムコード(オペレーティングシステム、アプリケーションプログラム、リソース割当てモジュール、又は通信モジュールなど)は、プロセッサ602により実行されるようメモリユニット604にコピーされる。
【0101】
ストレージデバイス612は、物理ハードディスク又は物理ハードディスクのパーティション(小型コンピュータシステムのインタフェースメモリ、又はグローバルネットワークブロックのデバイスボリュームを含む)、ネットワークストレージプロトコル(ネットワークファイルシステムNFSなどのネットワークファイルシステム又はクラスタファイルシステムを含む)、ファイルに基づく仮想ストレージデバイス(仮想ディスクミラーリング)、又は論理ボリュームに基づくストレージデバイスであってもよい。ストレージデバイス612には、高速ランダムアクセスメモリ(RAM)が含まれてよく、不揮発性メモリ、例えば、1つ又は複数のディスクメモリ、フラッシュメモリ、又は他の不揮発性メモリも含まれてよい。実施形態によっては、ストレージデバイスにはさらに、1つ又は複数のプロセッサ602から分離したリモートメモリ(通信インタフェース608を用いて通信ネットワークにアクセスするウェブディスクなど)が含まれてよく、通信ネットワークは、インターネット、イントラネット、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、ストレージエリアネットワーク(SAN)、又は上述のネットワークの組み合わせであってよい。
【0102】
オペレーティングシステム(Darwin、RTXC、Linux(登録商標)、UNIX(登録商標)、OS X、Windows(登録商標)など、又はVxWorksなどの組み込みオペレーティングシステム)には、決まったシステムタスク(メモリ管理、ストレージデバイス制御、電源管理など)の制御及び管理を行い、様々なソフトウェアコンポーネントとハードウェアコンポーネントとの間の通信を容易にするよう構成された、様々なソフトウェアコンポーネント及び/又はドライバが含まれる。
【0103】
入出力インタフェース606は、入力したデータ及び情報を受信し、オペレーション結果などのデータを出力するよう構成される。
【0104】
通信インタフェース608は、コンピューティングデバイス600と別のデバイス又は通信ネットワークとの間の通信を実装するために、例えば、限定されないが送受信機などのトランシーバ装置を用いる。
【0105】
バス610には、コンピューティングデバイス600内の各コンポーネント(プロセッサ602、メモリユニット604、入出力インタフェース606、通信インタフェース608、及びストレージデバイス612など)の間で情報が送信されるチャネルが含まれてよい。任意選択で、バス610は、有線接続方式を用いてよく、又は無線通信方式を用いてよいが、本出願はこれに何も制限を設けてはいない。
【0106】
コンピューティングデバイス600には、プロセッサ602、メモリユニット604、入出力インタフェース606、通信インタフェース608、バス610、及びストレージデバイス612だけが図6に示されていることに留意されたい。しかし、特定の実装プロセスでは、コンピューティングデバイス600にはさらに、正常なオペレーションを実装するのに必要な別のコンポーネントが含まれることを、当業者は理解されたい。
【0107】
図6に示されるコンピューティングデバイスは、本発明の実施形態において提供されるサービスクラスタ展開方法、サービスクラスタスケジューリング方法、サービスクラスタ健全性チェック方法、又はサービスクラスタトラフィック監視方法を実行するのに適用されてよい。
【0108】
例えば、サービスクラスタ展開方法を実装するために、コンピューティングデバイス600のメモリユニット604には展開モジュールが含まれ、プロセッサ602は展開モジュールにおいてプログラムコードを実行する。
【0109】
例えば、サービスクラスタスケジューリング方法を実装するために、コンピューティングデバイス600のメモリユニット604にはスケジューリングモジュールが含まれ、プロセッサ602は展開モジュールにおいてプログラムコードを実行する。
【0110】
例えば、サービスクラスタ健全性チェック方法を実装するために、コンピューティングデバイス600のメモリユニット604には健全性チェックモジュールが含まれ、プロセッサ602は展開モジュールにおいてプログラムコードを実行する。
【0111】
例えば、サービスクラスタトラフィック監視方法を実装するために、コンピューティングデバイス600のメモリユニット604にはトラフィック監視モジュールが含まれ、プロセッサ602は展開モジュールにおいてプログラムコードを実行する。
【0112】
展開モジュール、スケジューリングモジュール、健全性チェックモジュール、又はトラフィック監視モジュールのうちいずれか1つは、1つ又は複数の動作命令を含むことができ、これにより、コンピューティングデバイス600は、上述の説明に従って方法の1つ又は複数の段階を実行する。SDNコントローラのサービスクラスタ管理の機能コンポーネントなど、サービスクラスタ管理用の完全な解決手法を提供するために、展開モジュール、スケジューリングモジュール、健全性チェックモジュール、又はトラフィック監視モジュールは、1つの機能モジュールに統合されることもできる。
【0113】
上述の説明は単に本発明の例示的な実施形態にすぎないが、本発明を限定するよう意図されてはいない。本発明の精神及び原理から逸脱することなく行われたあらゆる変更、均等な置換、及び改良は、本発明の保護範囲内に含まれることになる。
図1
図2
図3
図4
図5
図6