(58)【調査した分野】(Int.Cl.,DB名)
VMがシャットダウンされるべきであるというVAgからの通知に応答して、前記VCMが、シャットダウンされるべきであるVMと関連するVSW中の状態情報をクリアし、前記VMはもはやポートにアタッチされていないことを前記CNAに通知し、前記通知は、前記CNAに前記VMと関連する状態を更新させるように適合される、
請求項1に記載の方法。
前記計算イベントが、仮想計算リソース、仮想ストレージリソース、および仮想計算リソースもしくはストレージリソースを使用するアクセスされる機器のうちの少なくとも1つを追加するまたは削除するよう求める要求を示す対話を含む、請求項1に記載の方法。
コンピュータによって実行されるとき、データセンタ(DC)内でネットワークサービスをインスタンス化するための方法を行うようにコンピュータの動作を適合させる命令を格納する、有形の非一時的コンピュータ可読記憶媒体であって、方法が、
検出された計算イベントに応答して生成された登録イベントと関連付けられたポリシー情報を、クラウドネットワーク自動化(CNA)エンティティによって取り出して、それにより、関連するタイプのサービスを識別するステップと、
検出された計算イベントが承認される場合、CNAエンティティによって、関連するタイプのサービスを提供するようにDCサービスを構成するステップと
を含み、
前記登録イベントが、仮想マシン(VM)をインスタンス化するように適合されたハイパーバイザを含む複数のDCサーバと関連するスイッチ内の仮想スイッチ制御モジュール(VCM)によって作成され、
前記計算イベントが、前記ハイパーバイザが仮想マシン(VM)をインスタンス化することに応答して、ハイパーバイザ内でインスタンス化される仮想エージェント(VAg)によって検出される、コンピュータ可読記憶媒体。
【発明を実施するための形態】
【0011】
理解を容易化するために、図に共通している同一の要素を示すため、可能であれば同一の参照符号が使用されている。
【0012】
本発明は、ハイパーバイザレベルで計算イベント(例えば、VMインスタンス化要求)を検出し、それに応じて、イベント承認およびデータセンタ(DC)リソース割当てに関してポリシーベースの決定が行われる登録イベントを生成することによって、データセンタ(DC)内でネットワークリソースのポリシーベースの管理を実行するシステム、方法、アーキテクチャ、機構、および/または装置に関連して説明される。しかしながら、本発明は、様々な実施形態に関して本明細書に記載するよりも広義の適用可能性を有することが当業者には理解されよう。
【0013】
さらに、特定の機器構成、プロトコル、機構などに関連させて、様々な実施形態が説明されるが、さらに多くの様々な機器構成、プロトコル、機構なども、様々な実施形態内で使用するために適用できるものとして、発明者により考えられる。例えば、様々な実施形態は、VM上もしくはToR制御プレーンモジュール内で動作している集中コントローラと、1つもしくは複数の物理サーバまたはサーバ要素とを含んだデータセンタ(DC)機器ラックに関連させて説明されることになる。
【0014】
一般的に言えば、物理サーバまたはサーバ要素のそれぞれが、ホストマシンを含み、このホストマシン上で、計算リソース/ストレージリソースを使用する仮想サービスが、サーバ上で動作している、またはサーバと関連付けられた、ハイパーバイザまたは仮想マシンモニタ(VMM)によってインスタンス化される。ハイパーバイザは、サーバ上で1つまたは複数の仮想化されたサービスをインスタンス化する、終了させる、および他の方法で制御するように適合されたソフトウェア、ハードウェア、またはソフトウェアとハードウェアの組合せを含む。様々な実施形態では、単一ラックと関連付けられたサーバは、例示的には40個の仮想スイッチ(VSW)のインスタンス化をサポートするように集合的に動作可能である。より多くのまたはより少ないサーバ、インスタンス化されたスイッチなどが、DC内の特定の機器ラックまたはクラスタ内に設けられてもよいことは理解されよう。したがって、時には仕様図は、特定の機能に対して40個の通信経路が使用されていることを示す。容易に理解されるであろうが、40個よりも多いまたは少ない通信経路が使用されることも可能であり、より多いまたはより少ないVSWが使用されることも可能であり、その他同様である。
【0015】
本明細書で説明する仮想化されたサービスは、概して、テナントに提供されることが可能である任意のタイプの仮想化された計算リソースおよび/またはストレージリソースを述べた。さらに、仮想化されたサービスは、仮想化された計算リソース/ストレージリソース、データセンタネットワークインフラストラクチャなどを使用する非仮想機器または他の装置へのアクセスも含む。
【0016】
図1は、様々な実施形態から恩恵を受けるシステムのハイレベルブロック図を示す。具体的には
図1は、1つまたは複数のネットワーク102を介して住宅サイトおよび/または企業サイトでアプリケーション要求を有する数多くの顧客105に計算リソースおよびストレージリソースを提供するように動作可能な複数のデータセンタ(DC)101−1から101−X(集合的にデータセンタ101)を含んだシステム100を示す。
【0017】
住宅サイトおよび/または企業サイトでアプリケーション要求を有する顧客105は、任意の標準的な有線または無線アクセスネットワークを介してネットワーク102と対話して、ローカルクライアントデバイス(例えば、コンピュータ、モバイルデバイス、セットトップボックス(STB)、ストレージエリアネットワーク構成要素、顧客エッジ(CE)ルータ、アクセスポイントなど)がデータセンタ101の1つまたは複数で仮想化された計算リソースおよびストレージリソースにアクセスできるようにする。
【0018】
ネットワーク102は、仮想プライベートネットワーク(VPN)、ロングタームエボリューション(LTE)、ボーダネットワークゲートウェイ(BNG)、インターネットネットワークなど、複数の利用可能なアクセスネットワークおよび/またはコアネットワークトポロジおよびプロトコルのいずれかを、単独で、または任意の組合せで、含むことができる。
【0019】
様々な実施形態は、一般的に、プロバイダエッジ(PE)ノード108間の通信を可能にするIPネットワークに関連させて述べられる。PEノード108のそれぞれが、複数のデータセンタ101をサポートすることができる。すなわち、ネットワーク102とDC101−Xとの間の通信として
図1に示される2つのPEノード108−1および108−2もまた、複数の他のデータセンタ101をサポートするように使用されることが可能である。
【0020】
データセンタ101(例示的にはDC101−X)は、複数のコアスイッチ110と、複数のサービス機器120と、第1のリソースクラスタ130と、第2のリソースクラスタ140と、第3のリソースクラスタ150とを含むものとして示される。
【0021】
例示的に、2つのPEノード108−1および108−2のそれぞれは、例示的に、2つのコアスイッチ110−1および110−2のそれぞれに接続される。より多いまたはより少ないPEノード108および/またはコアスイッチ110が使用されることもあり、一般的には冗長またはバックアップ能力が望まれる。PEルータ108は、DC101をネットワーク102と相互に接続し、それによって他のDC101およびエンドユーザ105と接続する。DC101は、一般的にセルにまとめられ、各セルが、何千ものサーバおよび仮想マシンをサポートすることができる。
【0022】
コアスイッチ110−1および110−2のそれぞれが、それぞれの(オプションの)サービス機器120−1および120−2と関連付けられる。サービス機器120は、ファイアウォールを提供する、ロードバランシングタスクを行うなど、上位層ネットワーキング機能を提供するために使用される。
【0023】
リソースクラスタ130−150は、マルチサーバブレードシャーシによって、または個々のサーバによって実装されたサーバのラックとして構成された計算リソースおよび/またはストレージリソースとして示されている。各ラックが、(アーキテクチャによって決まる)いくつかのサーバを保持し、各サーバが、いくつかのプロセッサをサポートすることができる。ネットワーク接続のセットが、サーバをトップオブラック(Top−of−Rack:ToR)、またはエンドオブラック(End−of−Rack:EoR)スイッチと接続する。本明細書では3つのリソースクラスタ130−150のみが示されているが、何百、何千ものリソースクラスタが使用されることも可能である。さらに、図示したリソースクラスタの構成は、説明のためのものであり、当業者には、より多くの多様なリソースクラスタ構成が知られている。また、DC101での関連で、特定の(すなわち、クラスタ化されていない)リソースが使用されて、計算リソースおよび/またはストレージリソースを提供することも可能である。
【0024】
例示のリソースクラスタ130は、(1つまたは複数の)大容量記憶装置またはストレージエリアネットワーク(SAN)133ならびに例示的には仮想マシン(VM)をサポートするように適合された複数のサーバブレード135と通信しているToRスイッチ131を含んでいるとして示される。例示のリソースクラスタ140は、複数の別々のサーバ145と通信しているEoRスイッチ141を含んでいるとして示される。例示のリソースクラスタ150は、例示的にはVMベースの機器をサポートするように適合された複数の仮想スイッチ155と通信しているToRスイッチ151を含んでいるとして示される。
【0025】
様々な実施形態では、ToRスイッチ/EoRスイッチは、PEルータ108と直接接続される。様々な実施形態では、コアスイッチまたは集約スイッチ120は、ToRスイッチ/EoRスイッチをPEルータ108に接続するために使用される。様々な実施形態では、コアスイッチまたは集約スイッチ120は、ToRスイッチ/EoRスイッチを相互に接続するために使用される。様々な実施形態では、ToRスイッチ/EoRスイッチの一部または全部の間で直接通信が行われることが可能である。
【0026】
以下にさらに詳細に述べるように、ToRスイッチ内で動作している仮想スイッチ制御モジュール(VirtualSwitch Control Module :VCM)が、DC内部および外部の他のルータおよびネットワーク要素から、接続性、ルーティング、到達可能性、および他の制御プレーン情報を収集する。VCMは、通常のサーバに配置されたVM上でも動作することができる。VCMは、仮想スイッチと関連付けられた仮想マシン(VM)に関連する特定のルーティング情報を用いて、仮想スイッチのそれぞれをプログラムする。このプログラミングは、仮想スイッチ内のL2および/またはL3転送テーブルまたは他のデータ構造を更新することによって行われることが可能である。このように、仮想スイッチで受信されたトラフィックは、IPトンネルを使用して発信元ハイパーバイザと宛先ハイパーバイザとの間のトンネルを通じて仮想スイッチから適切な次のホップへ伝搬される。ToRスイッチは、サービスアドレス指定を意識することなく、単にトンネル転送を行う。
【0027】
一般的に言えば、内部DCネットワークのための「エンドユーザ/顧客エッジ均等物」は、VMまたはサーバブレードホスト、サービス機器、および/またはストレージエリアを含む。同様に、データセンタゲートウェイ装置(例えば、PEサーバ108)は、外部の世界、すなわちインターネット、VPN(IP VPN/VPLS/VPWS)、他のDC位置、企業プライベートネットワークもしくは(住宅)加入者配備(BNG、無線(LTE他)、ケーブル)などへの接続性を提供する。
【0028】
ポリシー自動化機能
上述の様々な要素および機能に加えて、
図1のシステム100はさらに、ポリシーおよび自動化マネージャ192、ならびにコンピュータマネージャ194を含む。
【0029】
ポリシーおよび自動化マネージャ192は、次に述べるように、様々なポリシーベースのデータセンタネットワーク自動化機能をサポートするように適合される。
【0030】
ポリシーベースのデータセンタネットワーク自動化機能は、ポリシーに準拠した方法でデータセンタ内の計算リソースおよび/またはストレージリソースを使用する仮想マシン(VM)または仮想サービスの迅速なインスタンス化を可能にするように適合される。様々な実施形態は、ポリシーベースのサービス発見およびバインディング機能により、効率的なデータセンタ管理を提供する。
【0031】
前述の仮想スイッチ制御モジュール(VCM)および仮想スイッチエージェント(VAg)は、次の説明に特に興味深いものである。VCMは、ToRもしくはEoRスイッチ(もしくは何らかの他のスイッチ)内に含まれることが可能であり、または、独立した処理装置であることが可能である。1つまたは複数のVCMは、各データセンタに、データセンタのサイズおよび各VCMの容量に応じて配備されることが可能である。VAgは、VSW内に含まれてもよい。
【0032】
テナントVMが、サーバにあるハイパーバイザにアタッチする。VMがハイパーバイザにアタッチするとき、VMを特定のテナントネットワークインスタンスにマッピングするための機構が必要とされる。この機構は、VMに関する状態情報を配布し、この状態情報が使用されて、VMを特定のテナントネットワークセレクタにアタッチし、それによって必要なポリシーを提供する。
【0033】
テナントVMは、ToRまたはEoRスイッチに直接アタッチすることもでき、同様のテナントセレクタ機能が、テナントトラフィックを特定のVRF(virtual forwarding instances:仮想転送インスタンス)にマッピングする。トラフィックが、ある形式のトンネルヘッダでカプセル化され、トンネルセレクタ間で伝送される。制御層プロトコルにより、トンネルセレクタがパケットをそれらの宛先に基づいて特定のトンネルにマッピングできるようになる。ネットワークのコアでは、制御プレーンが使用されて、トンネルセレクタ間のトラフィックのルーティングが可能になる。選択された技術に応じて、パケットとトンネルとの間のマッピングは、一般に、L2もしくはL3ヘッダ、またはパケットヘッダ中のフィールドの任意の組合せに基づくことができる。
【0034】
様々な実施形態は、複数の構成ステップなしでサービスのインスタンス化を可能にする、スケーラブルなマルチテナントネットワークサービスを提供する。様々な実施形態は、テナント固有情報が拡張性のあるポリシーサーバに格納されるという原理に基づいている。ネットワーク要素が、サーバ、ストレージ、または他の構成要素によるネットワークサービスの要求を表す「イベント」を検出する。これらのイベントに基づいて、ネットワーク要素は、ポリシーサーバで要求を確認した後、要求されるサービスを自動的にセットアップする。
【0035】
具体的には、様々な実施形態は、エンドユーザが、クラウド管理ツールにより、計算リソース、ストレージリソース、および/または他のリソースを要求する仮想サービスをインスタンス化することを考える。所与のテナントだけが、その自身の特定のリソースにアクセスできるように、これらのリソースは、複数のテナントネットワークを通って相互に接続されなければならない。DCソリューションは、API(Application Programming Interface:アプリケーションプログラミングインタフェース)を使用してインフラストラクチャ構成要素または他のパケット情報を計算し、格納することによって、これらのイベントを取り込むように構成されなければならず、さらにDCソリューションは、テナントネットワークを自動的にインスタンス化しなければならない。ネットワークのエッジで仮想コントローラモジュールによってイベントが検出されるとき、ポリシーサーバは、正しいアクションプロファイルを識別するために調べられる。イベントが仮想マシンインスタンス化である場合、ポリシーサーバは、この仮想マシンと関連付けられたネットワークに使用されなければならない必要な情報を提供することになる。仮想コントローラモジュールは、この情報を使用して、ネットワークのエッジでポリシーを実施し、適切なヘッダでトラフィックをカプセル化する。
【0036】
ポリシー実施およびトラフィックカプセル化は、そのような機能性がエッジノードで利用できない場合は、対応するサーバにあるVSW、またはToRスイッチにおいてインスタンス化されることが可能である。
【0037】
本明細書で述べるデータセンタ(DC)101などのデータセンタ(DC)が、一般的に、サーバのラックを介して提供される計算リソース/ストレージリソースを含み、各サーバラックが、トップオブラック(ToR)またはエンドオブラック(EoR)スイッチなどの物理スイッチをそれと関連付ける。
【0038】
1つまたは複数の仮想スイッチ(VSW)は、例えば仮想化されたネットワーキングが配備されるとき、各サーバ内のそれぞれのハイパーバイザまたは仮想マシンマネージャを介してサーバのそれぞれの中でインスタンス化される。VSWエージェント(VAg)が、各VSWと関連付けられる。VAgは、インスタンス化されて、VSWと同じマシンで動作することができ、またはVAgは、異なるマシンで動作し、ハイパーバイザによって提供されるAPIを利用してVSWに届くことが可能である。
【0039】
ToRまたはEoRスイッチは、例示的には、高密度の10G/40G/100Gイーサネット(登録商標)スイッチングソリューションを提供する物理スイッチである。ToRスイッチは、特定のToRにアタッチされたすべてのVSWを制御することを担当する仮想スイッチコントローラモジュール(VCM)を含む。VCMは、ネットワーク管理者が対応するVSWの挙動を監視し、変更できるようにするインタフェースを提供する。VCMはまた、VSMおよびToRが統合されたスイッチクラスタとして動作できるようにする様々なプロトコル能力も含む。例えば、BGP IPVPNトンネルの場合、VSWは、トンネルカプセル化を行うが、VCMはBGPプロトコルに加わり、VSWへの正しいルートをプログラムする。ルートのプログラミングは、VCMとVAgとの間の通信経路(VSW制御)を有効にすることによって行われる。
【0040】
ToRは、PCを他のネットワークにつなげているプロバイダエッジ(PE)ルータと、またはToRとPEルータとの間のDCネットワークを形成している集約ルータ/コアルータと、直接通信する。集約ルータ/コアルータは、L2/L3スイッチング機能をサポートする大容量のイーサネットスイッチとして実装されることが可能である。
【0041】
ポリシーおよび自動化マネージャ192が、クラウドネットワーク自動化(CNA)エンティティとして動作し、ネットワークの動作を自動化するために構成された様々なソフトウェア構成要素を含んでいる。CNAは、ユーザ管理データベース、ポリシー構成および保守、システム間インタフェース、ならびに外部との接触(exposure)を担当する。CNAは、各テナントと関連付けられたすべてのポリシーを保持するポリシーサーバを含み、そのポリシーは、プロファイルを新しいネットワークサービスまたはVMと関連付けるために、新しいネットワークサービスまたはVMがインスタンス化されなければならないとき、VCMまたはToRによってアクセスされる。CNAは、すべてのテナントトラフィックに単一の管理インタフェースを提供するソリューションのテナントごとの表示を提供することができる。
【0042】
例えばコンピュータマネージャ194によって提供される、複数の知られている計算管理ポータルまたはツールのいずれかが、VMware vCenter/vCloud、HP CSA、Nimbula、Cloud.com、Oracleなど、計算マシンおよび仮想マシン管理に使用されることが可能である。具体的には、本明細書に記載する様々な実施形態は、一般的に、様々な計算管理ポータルまたはツールで動作可能である。計算マネージャおよび計算管理ポータルという用語は、ある実施形態においては異なるエンティティを指し、他の実施形態においては同じエンティティを指す可能性があることは理解されよう。すなわち、これらの2つの機能は、ある実施形態では結合されるが、他の実施形態では分けられる。
【0043】
一般的に言えば、様々な実施形態は、次により詳細に説明するように、分散された機構を使用してデータセンタ内でネットワークサービスのインスタンス化を自動化するように動作する。簡単に言えば、この機構は、部分的に次の原理に基づく:
(1)ネットワークサービスが、エッジネットワークデバイスによって常に自動インスタンス化される。
(2)ネットワークにあるインテリジェント機構が、仮想マシンまたはストレージ構成要素の追加/削除など、ネットワークのエッジにおける「計算イベント」を検出する。
(3)このようなイベントが検出されるとき、CNAは、検出された計算イベントに応答して1つまたは複数のネットワーク要素を介して提供されなければならないサービスのタイプを識別するために調べられる。
(4)CNAは、クラウド管理または他の管理ツールからの情報を投入されている。
(5)ネットワークサービスおよび関連するポリシーが識別されると、これらがネットワーク要素によって分散された方法で適用/提供され、CNAは、システムの各テナントに適用されたサービス、およびこれらのサービスに含まれるすべての物理要素および仮想要素の一貫性のある視点を維持する。
【0044】
図2は、一実施形態による方法の流れ図を示す。具体的には、
図2は、データセンタ内でネットワークサービスを自動的にインスタンス化するための方法200の流れ図を示す。
【0045】
ステップ210において、VCMは、DCネットワークのエッジにおいて、検出された計算イベントに応答して登録イベントを作成する。検出された計算イベントは、仮想計算リソースまたはストレージリソースを追加するまたは削除するよう求める要求を示す対話を含む。計算イベントは、仮想計算リソースまたはストレージリソースを使用するアクセスされる機器などを追加するまたは削除するよう求める要求を示す対話を含むこともある。ボックス215を参照すると、例えば計算管理ポータルまたはツール(または他の機構)を介して、仮想マシン(VM)、エッジデバイス、または他の仮想サービスをインスタンス化するようハイパーバイザに要求が行われるとき、ハイパーバイザ内でインスタンス化されたVAgによって計算イベントが検出されることが可能である。VAgは、取り込まれた計算イベントに関する情報をVCMに転送し、VCMはそれに応じて、登録イベントまたは機構を呼び出す。
【0046】
ステップ220において、VCMは要求側テナントを識別し、テナント識別子および計算イベントパラメータをCNAに伝える。ボックス225を参照すると、要求側テナントは、テナント識別子により明示的に、または発信元アドレスもしくは他の情報により暗黙的に、識別されることが可能である。計算イベントパラメータは、追加される、削除される、またはその他の処理をされる仮想計算リソースまたはストレージリソースを定義する。
【0047】
ステップ230において、CNAは、検出された計算イベントと関連付けられたポリシー情報、ならびに識別されたテナントと関連付けられたポリシー情報を取り出す。ボックス235を参照すると、検出されたイベントポリシー情報は、計算イベントに応答して様々なネットワーク要素によって提供されるサービスのタイプを識別し、テナントポリシー情報は、例えばサービスレベル合意(SLA)などによって定義される、識別されたテナントと関連付けられたポリシーを識別する。
【0048】
ステップ240において、CNAは、識別されたテナントが、要求されたサービス、ならびに要求されたサービスを提供するための仮想化された計算リソース/ストレージリソースの適切なプロビジョニングを受け取ることを承認されるかどうかを判定する。
【0049】
ステップ250において、テナントが、要求されたサービスを受け取ることを承認される場合、CNAは、要求されたサービスをテナントに提供するための様々な計算サービス/ストレージサービスを構成する。
【0050】
本明細書に記載する様々な実施形態は、ToRまたは他の物理スイッチにあるVCMを考えていることに留意されたい。しかしながら、様々な実施形態では、VCMは、他の物理的位置または仮想的位置にある。
【0051】
上述の方法は、様々な仮想サービスまたはマシンを実装するために計算リソース/ストレージリソースを要求しているDCテナントの自動アドミッション制御を提供する。
【0052】
オンボードテナントおよびゲストテナント。様々な実施形態では、自動化、およびミッション制御を、DCサービスプロバイダに知られているDCテナントに提供することが望ましい。これらの実施形態では、任意の機能がネットワークで行われる前に、テナントはシステムにオンボードされなければならない。このプロセスは、複数のインタフェースの1つを使用することができる。
【0053】
オンボードプロセスの主な目標は、CNAのポリシーサーバにテナント関連情報を投入するようになされる。テナントオンボードが使用されない様々な実施形態では、ポリシーのデフォルトセットが、未知のまたは「ゲスト」テナントに適用されることが可能である。
【0054】
テナント関連情報は、次のうちの1つまたは複数など、複数のポリシーを含むことができる:
(1)テナントユーザおよび/またはグループ。この情報は、ユーザ間の関係を提供し、これが使用されてポリシー決定を推進する。例えば、企業が、そのユーザを開発グループ、運営グループ、および経営グループに分割することができ、グループ毎に異なるポリシーを関連付けることができる。
(2)特定のユーザおよびグループと関連付けられたセキュリティポリシー。このようなポリシーが、例えば、特定のユーザによってインスタンス化されたVMが、システム中の他のVMと、または外部の世界と、通信することができるかどうかを定義する。セキュリティポリシーは、VM、アプリケーション、プロトコルおよびプロトコル番号、または任意の他の機構に基づくことができる。
(3)特定のユーザまたはグループと関連付けられたサービス品質(帯域幅、損失率、待ち時間)要件、例えば、VMがネットワークから要求することができる最大帯域幅、またはグループに属しているユーザの集合が要求することができる最大帯域幅など。
(4)ユーザがインスタンス化することができるVMまたはネットワークの最大数、または使用されるネットワークの最大数など、クォータ(quota)パラメータ。
【0055】
図3は、一実施形態による方法の流れ図を示す。具体的には、
図3は、一実施形態によるテナントインスタンス化および新しい仮想マシンのネットワーク接続のための方法の流れ図を示す。この説明のために、1つのテナントが新しい仮想マシンをインスタンス化すること、および新しい仮想マシンをネットワークに接続することを必要とする単純なシナリオを仮定する。
【0056】
ステップ310において、計算管理ポータルまたはツール(または他の機構)により、テナントが、新しい仮想マシンおよびその関連するパラメータを定義する。例えば、テナントは、使用されなければならないCPUの数、VMと関連するメモリ、VMのディスクなどを定義することができる。テナントは、マシンのネットワークインタフェースを定義することもできる。様々な実施形態では、計算マネージャもまた、この仮想マシンと関連する(1つまたは複数の)ネットワークを定義する。これらのネットワークのそれぞれに対して、ユーザは、特定のQoSおよび/またはセキュリティサービスを要求することができる。定義中のパラメータが、QoS要件、マシンへのL3アクセスのためのACL、レートシェーパ、ネットフロー(netflow)パラメータ、サブネットのIPアドレスなどを含むことができる。様々な実施形態では、仮想マシン定義は、次のサンプルXMLファイルなどのXMLファイルXMLファイルにカプセル化される:
【0058】
ステップ320において、コンピュータマネージャは、定義された仮想マシンを特定のサーバと関連付ける。1つの実施形態では、構成プロセスは、構成ファイル(ステップ310に関して上述した例示のXMLファイルなど)を対応するハイパーバイザに送信することによって起動される。VAgは、ハイパーバイザに登録し、このようなインスタンス化が行われるとき、VAgは、仮想マシンid、仮想マシン名、ネットワーク名、およびテナント関連情報を含む、構成パラメータを取り出す。この情報は、VMが属するテナント、およびテナントが希望するサービスを明示的に識別する。
【0059】
ステップ330において、VAgが専用通信チャネルを介して、対応する仮想スイッチコントローラに新しいイベントを知らせる。このプロセスでは、VCMは、特定のテナントからのVMが、ネットワークで起動され、特定のネットワークに接続する必要があることを知らされる。
【0060】
ステップ340において、VCMは、これが本当に受け入れ可能であるかどうか、および特定のテナントとの関連するポリシーに基づいて実施されなければならないポートプロファイルパラメータは何であるかを判定するために、ポリシーサーバにインスタンス化要求を送信する。VCMによってToRに送信される情報は、VMをインスタンス化するために使用されたフィールドの実質的にすべてを含む。
【0062】
ステップ350において、CNAまたはポリシーサーバは、受信される情報を使用して、この要求に関連する適切なポリシーまたはサービスを識別する。例えば、ポリシーサーバは、これは新しいネットワークであり、このネットワークに任意のネットワーク識別番号を割り当てることができると判定することができる。ポリシーサーバはまた、既存のポリシーのために、VMのQoSまたはACL要求の一部は拒否されなければならない一方で、追加パラメータが設定されなければならないと判定することもできる。したがって、ポリシーサーバは、PBBカプセル化のためのISID番号、またはMPLSカプセル化のためのラベル値、またはQoSパラメータ、ACL、レート制限パラメータなどのようなパラメータを決定することになる。L3設計については、ポリシーは、VRF構成、VPN id、ルートターゲットなどを含むことになる。ポリシーサーバがすべての情報を決定すると、ポリシーサーバは対応するポリシーをもとのVCMに送信する。送信される情報の一例を、次のXML記述に示す:
【0064】
ステップ360において、VCMがこの情報を受け取るとき、VCMは対応する制御/ルーティングプロトコルサービスをインスタンス化する。例えば、上記の説明は、ポリシーサーバが、ルート識別子を1000:1に等しく、ルートターゲットを2000:1に等しくしてBGP VRFサービスをインスタンス化することを必要とする。これらの制御/ルーティングサービスは、正しいルートを投入するためにネットワークの他のVCMと情報を交換する。VCMはまた、ポリシーサーバによって受信された命令により任意のACLまたはQoSパラメータをインスタンス化する。これらのインスタンス化は、ハイパーバイザにあるVSWにVCMプログラミング固有のエントリをもたらすことに留意されたい。VCMは、例示的には、VAgと通信し、適切な情報を伝搬することによってこれを達成する。
【0065】
ステップ370において、前のステップの間にインスタンス化された制御/ルーティングプロトコルが新しいルートまたは他のパラメータを識別する(例えば、システムにおいて特定のVMが別のVMと通信するために、パケットは特定のトンネルヘッダでカプセル化されなければならないことを判定する)いかなるときにも、VCMは、それに応じてVSWにおいて対応する転送エントリをプログラムする。
【0066】
ステップ380において、現在、VSW転送エントリのプログラムが作成されているので、VMがパケットの送信を開始するとき、パケットは、ポリシーサーバによって確立されたルールに基づいて転送されることになる。
【0067】
ステップ390において、代替的実行では、トンネルへのパケットのカプセル化は、ToRスイッチによって行われ、したがって転送エントリは、単にToRスイッチでプログラムされる。
【0068】
図4は、一実施形態による方法の流れ図を示す。具体的には、
図4は、一実施形態によるVMの削除のための方法400の流れ図を示す。VM消去(deletion)と関連するステップは、
図9の方法900に関して上述したように、VMインスタンス化と関連するステップとフロート(float)が同様である。
【0069】
ステップ410において、コンピュータ管理ポータルまたはツール(または他の機構)により、エンドユーザは、VM削除プロセスを起動する。
【0070】
ステップ420において、最も近いVAgが、VMがシャットダウンまたは削除されることになるハイパーバイザから通知を受け取る。
【0071】
ステップ430において、VAgは、イベントについてVCMに通知し、VCMは、削除されるVMと関連するいかなる状態もクリアする。VCMはまた、このVMのためにVSWに構成されたいかなる状態もクリアする。
【0072】
ステップ440において、これが特定のToRスイッチに届くテナントセグメントの最後のVMである場合、制御層プロトコル(例えばBGP)は、対応するルートが取り消されるように通知されることが可能である。
【0073】
ステップ450において、VCMは、VMはもはやそのポートの1つとアタッチされないことをCNAに通知する。
【0074】
ステップ460において、CNAは、そのローカルデータベースに仮想マシン状態に関するいかなる正確な状態も保持する。
【0075】
様々なデータセンタ環境において、要求の1つは、ライブVMを新しいサーバへ移行できるようにすることである。VM移行の使用事例は、通常、サーバにおける負荷再分配、エネルギー節約、および潜在的には障害回復などである。いくつかの例では、問題は、ライブマイグレーションによってではなく、新しいマシンでのウォームリブートによって対処されるが、ライブマイグレーションの利便性により、ライブマイグレーションは非常に普及した。したがって、様々な実施形態は、新しいサーバに対してVMのこのようなライブマイグレーションをサポートする。一般的に言えば、ライブVMの移行は、一般的に、VM消去およびVMインスタンス化を含む。
【0076】
図5は、1つの実施形態による方法の流れ図を示す。具体的には、
図5は、VMのライブマイグレーションのための方法500の流れ図を示す。
【0077】
ステップ510において、ライブマイグレーションが、新しい物理マシンにおいてリソースを割り当て、その後元のマシンと新しいマシンとの間でメモリコピーを開始する計算マネージャによって起動される。
【0078】
ステップ520において、計算マネージャが、対応するハイパーバイザに構成命令を送信する。ステップ520は、ステップ510と同時に行われてもよい。
【0079】
ステップ530において、最も近いVAgがこれらの要求を取り込み、新しいハイパーバイザのためのVCMを構成するプロセスを起動する。これにより、VCMは、対応するプロファイルをセットアップし、トラフィックフローを有効にすることができる。新しいVCMにおいてネットワークサービスを設定するプロセスは、他の仮想マシンインスタンス化中と同じものである。唯一の違いは、VCMがCNAに、これは仮想マシンの移行であり、したがってCNAはそのローカルデータベースに動作の記録をつけることができることを通知することである。
【0080】
ステップ540において、新しいマシンへのVMメモリコピー動作が完了した後、VMは、新しいマシン上で有効になる。
【0081】
ステップ550において、以前のマシンのVMは、停止されるおよび/または強制停止される(destroyed)。
【0082】
ステップ560において、以前のマシンのVAgは、強制停止コマンドを取り込み、VCMにメッセージを送信する。VCMは、いかなるローカル状態もクリアし、それが他の仮想マシン削除に役立つであろうから、CNAに通知する。
【0083】
上述の方法500は、VM画像ファイルシステムが、元のハイパーバイザとターゲットのハイパーバイザの両方にすでに実装されていると考える。要求に応じてファイルシステムをマウントすることは、ストレージオプションの概要を述べた後に説明するいくつかの追加アクションを必要とすることになる。これは、「ストレージ移行」のカテゴリに入る。
【0084】
上述の様々な実施形態は、インスタンス化、削除、移行などの、VM関連機能を考える。しかしながら、VM関連機能に加えて、様々な実施形態は、仮想技術に依存しない機器の領域を処理することもできる。例えば、このような機器は、ロードバランサ、ファイアウォール、トラフィックアクセラレータなどのネットワークサービス機器、ならびに、ベアメタルサーバ、ブレードシステム、ストレージシステム、グラフィックプロセッサアレイなどの、ネットワークサービスを消費する必要のある計算関連機器を含むことがある。これらの事例のそれぞれにおいて、本明細書に記載する様々な自動化方法および機構は、このような機器に対してDCネットワークサービスをインスタンス化し、相互に接続するように適合されることが可能である。
【0085】
図6は、本明細書に記載する機能を実行する際に使用するのに好適な、通信またはデータセンタネットワーク要素中のプロセッサのようなコンピューティングデバイスの高レベルブロック図を示す。具体的には、本明細書に記載するコンピューティングデバイス600は、様々なデータセンタ(DC)要素、ネットワーク要素、ノード、ルータ、管理エンティティなどに関して上述した様々な機能を、ならびに様々な図に関して述べた方法/機構を実行するようによく構成されている。
【0086】
図6に示すように、コンピューティングデバイス600は、プロセッサ要素603(例えば、中央処理装置(CPU)および/または(1つまたは複数の)他の好適なプロセッサ)と、メモリ604(例えば、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)など)と、連携モジュール/プロセス605と、様々な入力/出力装置606(例えば、ユーザ入力装置(例えばキーボード、キーパッド、マウスなど)、ユーザ出力装置(例えばディスプレイ、スピーカなど)、入力ポート、出力ポート、受信機、送信機、および記憶装置(例えば、永続的ソリッドステートドライブ、ハードディスクドライブ、コンパクトディスクドライブなど))とを含む。
【0087】
本明細書に示して説明した機能は、ソフトウェアで、および/またはソフトウェアとハードウェアの組合せで、例えば汎用コンピュータ、1つもしくは複数の特定用途向け集積回路(ASIC)、および/またはその他のハードウェア均等物を使用して、実装されることが可能であることは理解されよう。1つの実施形態では、連携プロセス605は、メモリ604にロードされ、プロセッサ603によって実行されて本明細書に説明する機能を実行することができる。したがって、連携プロセス605(関連するデータ構造を含む)は、例えばRAMメモリ、磁気または光学式ドライブまたはディスケットなど、コンピュータ可読記憶媒体に記憶されることが可能である。
【0088】
図6に示されるコンピューティングデバイス600は、本明細書に記載する機能要素または本明細書に記載する機能要素の一部を実行するために好適な、一般的なアーキテクチャおよび機能性を提供することは理解されよう。
【0089】
ソフトウェアの方法として本明細書に記載した諸ステップのいくつかは、例えばプロセッサと協力して様々な方法のステップを実行する回路として、ハードウェアの中に実装されることが可能であると考えられる。本明細書に記載する機能/要素の一部は、コンピュータ命令が、コンピューティングデバイスによって処理されるとき、本明細書に記載する方法および/または技法が呼び出される、または他の方法で提供されるようにコンピューティングデバイスの動作を構成する、コンピュータプログラム製品として実装されることが可能である。発明の方法を呼び出すための命令は、固定された、もしくは取り外し可能な媒体もしくはメモリなど、有形の非一時的コンピュータ可読媒体に格納される、ブロードキャストの、もしくは他の信号を載せる媒体の有形もしくは無形のデータストリームによって送信される、および/または命令により動作するコンピュータデバイス内のメモリ内に記憶されることが可能である。
【0090】
本発明の教示を組み込む様々な実施形態を本明細書で詳細に示して説明したが、これらの教示を依然として組み込んだ他の多くの変更形態を、当業者は容易に考案することができる。したがって、前述の内容は、本発明の様々な実施形態を対象としているが、本発明の基本的な範囲から逸脱することなく、本発明の他のさらなる実施形態が考案されることが可能である。したがって、本発明の適切な範囲は、特許請求の範囲により定められなければならない。