JP5608794B2 - 複数の仮想マシンを管理するための階層システム、方法、及びコンピュータプログラム - Google Patents

複数の仮想マシンを管理するための階層システム、方法、及びコンピュータプログラム Download PDF

Info

Publication number
JP5608794B2
JP5608794B2 JP2013144451A JP2013144451A JP5608794B2 JP 5608794 B2 JP5608794 B2 JP 5608794B2 JP 2013144451 A JP2013144451 A JP 2013144451A JP 2013144451 A JP2013144451 A JP 2013144451A JP 5608794 B2 JP5608794 B2 JP 5608794B2
Authority
JP
Japan
Prior art keywords
anchor point
virtual machine
migration anchor
identification information
physical
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2013144451A
Other languages
English (en)
Other versions
JP2014021979A (ja
Inventor
アシック・カーン
和志 神津
イシャーン・ヴァイシュナーヴィ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NTT Docomo Inc
Original Assignee
NTT Docomo Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NTT Docomo Inc filed Critical NTT Docomo Inc
Publication of JP2014021979A publication Critical patent/JP2014021979A/ja
Application granted granted Critical
Publication of JP5608794B2 publication Critical patent/JP5608794B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/78Architectures of resource allocation
    • H04L47/781Centralised allocation of resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Mobile Radio Communication Systems (AREA)

Description

本発明はコンピュータシステムに関し、特に種々の物理マシン(physical machine)にある仮想マシン(virtual machine)の管理に関する。
仮想化、仮想マシン、マイグレーション管理、クラウドコンピューティングは、ますます重要となってきている手段である。仮想マシンの管理は、特に、クラウドサービス、ネットワークベースのマイグレーション管理、災害管理、又はエネルギー節約の目的で有用であるとともに適用可能である。
基本的に、仮想マシンコンピューティングは、種々のマシンすなわち物理マシンにおいて特定のサービスを実行することを可能にする。物理マシンは、あるロケーションに置かれているコンピュータである。仮想マシンは、あるサービスを実行するためにインプリメントされるものであるが、ある物理マシンから別の物理マシンへと移行又は移動(マイグレーション)することができるように設計される。特にこのことは、仮想マシンをインプリメントするためにある物理マシンが提供する計算リソースをその仮想マシンが第1の期間において用いることができ、ある物理マシンから別の物理マシンへのマイグレーションの後は、それまでの物理マシンが提供する計算リソースを他のサービス用に自由に利用でき、仮想マシンは、新たな物理マシンの計算リソースを、新たなサービスの実行又は現在動作中のプロセスの継続のために利用するということを意味する。
ある物理マシンから別の物理マシンへの仮想マシンのマイグレーションは、セッション継続の観点で問題であり、仮想マシンのロケーションに関するネットワーク全体の更新に関しても問題である。特に、「クラウド」とも呼ばれる物理マシンのグループが幾つかあって別々に制御されている場合には、あるクラウドから別のクラウドへの仮想マシンのマイグレーションも難しい処理である。
レイヤ2仮想プライベートネットワーク(layer 2 virtual private network, L2VPN)のワーキンググループが存在する。このワーキンググループは、プロバイダから提供されるレイヤ2仮想プライベートネットワークをサポートするための限られた数の解決策を規定し、特定することを担当する。クラウド内のマイグレーションの管理の場合、L2VPNが主に用いられる解決策である。L2VPNにおいては、レイヤ2スイッチは、仮想マシンがどのポートを通じて到達可能であるのかを記憶している。仮想マシンがある物理マシンから別の物理マシンに移動すると、その仮想マシン用のポートが変化する。しかし、現在のL2スイッチは学習機能を有しており、あるポートを通じて到着したパケットのMACアドレスを調べることができる。仮想マシンのMACアドレスはマイグレーションするまで変わらないため、L2スイッチは、仮想マシンから別のポートを通じて到着したパケットをスヌーピングする(snoop)ことにより、その仮想マシンを特定することができる。特に、L2スイッチは、仮想マシンをそのMACアドレスによって特定するとともに、その仮想マシンがどのポートを通じて到達可能であるのかを特定する。しかし、現在のクラウドの非常に大規模な展開を考慮すると、L2VPNは、拡張性(scalablity)という点でみると全く拡張させることができない。L2VPNは手動で設定され、VLANタグは12バイトの長さしかないゆえVLANを4096個しか作成できないからである。加えて、この解決策は、クラウド間マイグレーションのシナリオに適用することもできない。
この研究分野における別の主な解決策は、オープンフロー(Open Flow)に基づいた解決策である。クラウド内のシナリオの場合、この解決策はL2VPNと同じである。特に、マイグレーションするまでフローをある仮想マシンへと再ルーティングするのは、オープンフローコントローラ(Open Flow controller)である。仮想マシンのマイグレーションは、オープンフローコントローラによって監視することができる。マイグレーションの後、オープンフローコントローラは、オープンフロースイッチの転送用テーブルを書き換えて、そのスイッチが適切なポートを通じてパケットを転送することができるようにする。しかし、この解決策も、クラウド間マイグレーションのシナリオには適用できない。
特許文献1は、サーバ間の仮想マシンマイグレーションを開示している。仮想マシンのマイグレーションは、2つのサーバ間で行われる。第1のサーバでは、仮想マシンに関係した全てのファイルが記憶されているボリュームがディスマウントされる。第2のサーバでは、仮想マシンに関係した全てのファイルが記憶されている該ボリュームがマウントされ、第2のサーバは、仮想マシンをホストすることができるようになる。このようにして、第1のサーバから第2のサーバに全てのファイルをコピーする必要はなく、仮想マシンのマイグレーションを行うことができる。仮想マシンに関係したファイルは、ストレージエリアネットワーク(storage-area network, SAN)に記憶されている。しかし、この解決策によりクラウド間マイグレーションをサポートするのは、ある1つのクラウドのSANに対し別のクラウドがアクセスできることが想起されるため現実的ではない。もしこれがインプリメントされたとしても、仮想マシンの新たなロケーションへのルートを変更することに対処しなければならない。
特許文献2は、各データセンタとWANとの協調により、仮想マシンのマイグレーションが、その処理が中断することなく、効果的な電力節約の実施、負荷分散、又は障害対応処理が可能となるように行われることを開示している。WANと別のネットワークとの境界ポイントに置かれている各ノードには、仮想マシンのマイグレーションに起因したアドレス重複を回避するために動的に設定可能なネットワークアドレス変換(network address translation, NAT)機能が設けられる。あるいは、WAN内の各ノードにネットワーク仮想化機能を設け、マイグレーションの前にある仮想マシンを含めるためにデータセンタに接続された仮想ネットワークと、マイグレーションの後にその仮想マシンを含めるためにデータセンタに接続された仮想ネットワークとがインプリメントされ、それによって、同一アドレスの共存した提供(coexistent provision)が可能となる。したがって、仮想マシンのマイグレーション時にネットワークルーティング情報を変更する必要性をなくすことができ、マイグレーションのための設定変更を迅速に行うことができる。
米国特許第8,042,108号公報 米国特許出願公開第2011/0161491号公報
本発明の目的は、複数の仮想マシンを管理するための改善された階層のコンセプトを提供することにある。
上記目的は、請求項1に記載の複数の仮想マシンを管理するための階層システムと、請求項15に記載の複数の仮想マシンを管理する方法と、請求項16に記載のコンピュータプログラムとのいずれかによって達成される。
本発明は、複数の仮想マシンを管理するための階層システムに関する。この階層システムは、少なくとも2つの物理マシンを有する第1のグループに接続可能であり、少なくとも2つの物理マシンを有する前記第1のグループ内の1つの物理マシンにある第1の仮想マシンの仮想マシン識別情報と、該1つの物理マシンの物理マシン識別情報とを含むデータセットを記憶する第1のローカルマイグレーションアンカポイント又はローカルモビリティアンカポイントと、少なくとも2つの物理マシンを有する第2のグループに接続可能であり、少なくとも2つの物理マシンを有する前記第2のグループ内の1つの物理マシンにある第2の仮想マシンの仮想マシン識別情報と、該1つの物理マシンの物理マシン識別情報とを含むデータセットを記憶する第2のローカルマイグレーションアンカポイント又はローカルモビリティアンカポイントと、前記第1のローカルマイグレーションアンカポイントと前記第2のローカルマイグレーションアンカポイントとに接続され、前記第1の仮想マシンによって実行されるアプリケーションに関する第1のサービス識別情報と、前記第1の仮想マシンに関連付けられた識別情報と、前記第1のローカルマイグレーションアンカポイントの識別情報とを第1のデータレコードとして記憶するとともに、前記第2の仮想マシンによって実行されるアプリケーションのサービス識別情報と、前記第2の仮想マシンに関連付けられた識別情報と、前記第2のローカルマイグレーションアンカポイントの識別情報とを第2のデータレコードとして記憶するグローバルマイグレーションアンカポイント又はグローバルモビリティアンカポイントと、前記第1のサービス識別情報と、前記第1の仮想マシンの識別情報と、前記第1のローカルマイグレーションアンカポイントの識別情報とを含む、前記第1の仮想マシンに関する第1のデータエントリを記憶するとともに、前記第2のサービス識別情報と、前記第2の仮想マシンの識別情報と、前記第2の仮想マシンが置かれている物理マシンが接続することのできる前記第2のローカルマイグレーションアンカポイントの識別情報とを含む第2のデータエントリを有する仮想マシンロケーションレジスタとを備えている。
本発明の別の態様は、これに対応する方法及び対応するコンピュータプログラムに関係している。
本発明は、セッション継続の観点から及び仮想マシンのロケーションに関してネットワーク全体を更新するという問題からも、ある物理マシンから別の物理マシンへの仮想マシンのマイグレーションを実行する問題に対処するものである。特に、本発明は、仮想マシンが物理マシンのあるグループすなわちクラウドから物理マシンの別のグループすなわちクラウドへとマイグレーションする状況にも有用である。
本発明の実施の形態は、マイグレーション管理のための3層(3-tier)アーキテクチャに関する。1つのクラウドは、1つのローカルマイグレーションアンカポイント(local migration anchor point, LP)によって管理され、複数のLPは、グローバルマイグレーションアンカポイント(global migration anchor point, GP)によって管理される。さらに、仮想マシンロケーションレジストラ(virtual machine location registrar, VMLR)があり、これは、仮想マシンのロケーションを示すデータベースを維持するものである。すなわち、仮想マシンは、LP及びGPを通じて到達可能である。特に、仮想マシンロケーションレジスタすなわち仮想マシンロケーションレジストラは、データベース内にデータエントリを有している。マイグレーションの際又はその後に、仮想マシンのロケーション情報は、関連するLP、GP、及びVMLRへのシグナリングを通じて更新されるため、仮想マシンのロケーション情報は常に利用可能である。好ましい実施の形態は、正確なデータパスのセットアップ及び正確な変更手順に関する。
本発明の実施の形態は、システムが技術に依存しないという利点を有する。本発明は、例えば、オープンフロー(Open Flow)において用いられるような特定のルーティング、転送方法を前提としていない。さらに、本発明は、ある特定の実施の形態に関して管理が容易である。なぜならば、少数(20個未満等)のグローバルマイグレーションアンカポイント(GP)しか必要としないか、又は必要でありかつ更新する必要があるGPは1つでもよい。このシステムは、クラウド内及びクラウド間のマイグレーションの管理を同時にサポートすることができるため、2つの別々のマイグレーション管理方式は必ずしも必要ではない。
さらに、実施の形態は、セルラネットワークに対して親和性を有する。なぜならば、アーキテクチャ及びマイグレーション(マイグレーション管理)の手順が、高いレベルにおいてではあるが、セルラネットワーキングの手法に類似しているからである。したがって、セルラネットワークの手法を実施する際に得られた経験は、複数の仮想マシンを管理するための階層システムを実施する際にも使用及び適用することができる。本発明によって、自然災害の前、その間、又はその後のネットワークの再構成が可能となる。仮想マシンをより安全なロケーションにマイグレーションすることができ、これによって、サービス継続性が確保されるため、顧客の満足が確保される。仮想マシンをある特定のロケーションにマイグレーションし、残りのもの、すなわち不要なリソースをシャットダウンする等のネットワーク再構成が、例えば夜間において容易に行うことができる。これによって、エネルギー消費も削減され、グリーンネットワーク化が実現されることになる。以下の説明において、物理マシンの1つのグループをクラウドとも呼び、このクラウドは、ウェブサーバ、ビデオサーバ等の、仮想マシンベースのアプリケーションサービスを提供する単一の管理エンティティとして表現されるように編成された複数の物理マシンとして見ることもできる。
本発明とは対照的に、特許文献2の構想は集中型方式である。本発明は分散型方式である。実施の形態では、仮想マシンは自らを、関連したエンティティ、例えば、ローカルモビリティアンカポイント、グローバルモビリティアンカポイントに登録する。ルートをVMの新たなロケーションへと更新又は変更する中央エンティティは存在しない。
本発明の方式による中央ネットワーク管理システムは、マイグレーションそのものを管理せず、ルートをVMの新たなロケーションに変更することもしない。中央ネットワーク管理システムは、クラウド又はVMに、リソースが利用可能な別のクラウドにマイグレーションするように通知するだけである。それ以外のものは、本発明の実施の形態では自律的に行われる。
上記従来技術の文献とは異なり、実施の形態は、WAN内の各ノードを仮想化しない。その仮想化には非常に多くのコストを要する。実施の形態によれば、限られた数のノードでのみ、カプセル化、すなわちアンカポイントをサポートすればよい。それで十分である。
さらに、LAN又はサブネットのルーティング情報をWAN内に広めることはおよそあり得ず、拡張性のあるシナリオでないと言うべきである。この情報をどこまで広めなければならないかという問題が依然として残る。WANには数百ものルータあるいはスイッチがある。したがって、本発明の実施の形態では、数個のアンカポイントだけが定められる。
実施の形態によれば、バッファリングを行わない。音声電話のようなリアルタイムのアプリケーションの場合は、バッファリングは何ら利点をもたらさない。
さらに、従来技術の文献によれば、VMのマイグレーションは、マネージャにより中央で制御される。これは、拡張性を欠いている。これは、VMのマイグレーションの数が多くなり、例えば数千になると、拡張できなくなる。これとは対照的に、実施の形態は、自己管理されるとともに分散されたVMのマイグレーションを有する。
従来技術では、切換え(changeover)の命令が、VMのロケーションの変更をノードに知らせる。これも、同様に集中型の方法である。マイグレーションの数に応じて、同じ数のノードに知らせなければならない。これも同様に拡張性の問題をもたらす。
さらに、影響を受けるノードは、送信元クラウド及び宛先クラウドの数に等しい。これは、拡張性の欠如を引き起こす。クラウドの数が増加するにつれて、影響を受けるノードの数も増加する。その一方で、本発明の実施の形態では、ローカルモビリティアンカポイントの数が、クラウド数に1つのグローバルモビリティアンカポイントを加えた数に等しいことが好ましい。その数は、上記従来技術の文献において必要とされる数の半分である。
実施の形態では、VMの以前のロケーションに対しVMの新たなロケーションが通知される結果、パケットを新たなロケーションに転送することができる。さらに、以前のロケーションに向かうパケットを新たなロケーションに転送することができるようなカプセル化方式が好ましい。カプセル化とは、ネットワークアドレス変換(network address translation, NAT)を実行することではない。
全体的には、各セッションについて、上記従来技術の文献におけるネットワークアドレス変換の回数は2(クライアント側で1つとVM側で1つ)である。他方、本発明の実施の形態では、ネットワークアドレス変換は、グローバルモビリティアンカポイントでしか実行されない。宛先アドレス(すなわちVMのアドレス)は置き換えられない。その代わり、アドレスは、VMに到達するまで、ローカルモビリティアンカポイント等によりカプセル化される。
以下、添付図面を参照して本発明の好ましい実施形態を説明する。
複数の仮想マシンを管理するための階層システムの一実施形態のブロック図である。 グローバルマイグレーションアンカポイントによって実行される処理のフローチャートである。 ローカルマイグレーションアンカポイントによって実行される処理のフローチャートである。 内部マイグレーション用に実行されるプロセスを示すフローチャートである。 クラウド間マイグレーションにおいて行われる処理のフローチャートである。 ページングプロセスの際に行われる処理を示す説明図である。 複数のグローバルマイグレーションアンカポイントが存在する場合に行われるプロセスを示す説明図である。 本発明の利用のシナリオのための対象となる構成を示す説明図である。 セルラネットワークのマイグレーション管理アーキテクチャと比較した本発明のシステム及び方法の概要を示す説明図である。 詳細な初期化手順を示す説明図である。 サービス発見及びセッション確立の詳細な手順を示す説明図である。 セッション確立後のデータパスを示す説明図である。 開始モードにおけるマイグレーションサポート及びハンドオーバ手順を示す説明図である。 クラウド内マイグレーション用のマイグレーションサポート及びハンドオーバ手順を示す説明図である。 クラウド間マイグレーション用のマイグレーションサポート及びハンドオーバ手順を示す説明図である。 クラウド間マイグレーションの最終状態を示す説明図である。 ロケーション更新処理のフローチャートである。 ネットワーク構成プラットフォームを有する高レベルの説明図である。 ロケーション登録及び更新処理を示す説明図である。
実施形態を詳細に説明する前に、仮想マシン技術に関係する幾つかの基本的事項を説明する。1つの手順は、仮想マシンのインスタンス作成(instantiation)である。まず、ハイパーバイザ(hypervisor)へのログインが行われ、次に発行コマンドが与えられる。この発行コマンドは、ある仮想マシンのインスタンスが作成されるべきということを意味し、その仮想マシンには、ある識別情報(ID)が与えられる。さらに、128Mbps等のあるメモリが定められる。さらに、例えば1つ以上のコアを有するCPUが定められ、w.x.y.zといったIPアドレスが与えられる。このデータは、本例では、あるハードウェア又は物理マシン上に仮想マシンのインスタンスを作成するため、すなわちインプリメントするために必要となる。仮想マシンの特定の実施態様は、本発明の範囲外である。幾つかの実施態様の例は、XEN、VMWare、KVM等である。
仮想マシンのマイグレーションにおいては、このインプリメントされた仮想マシンを第1の物理サーバすなわち物理マシンAから第2の物理サーバすなわち物理マシンBへとマイグレーションする必要がある。物理サーバA上で事前にインスタンスが作成されている仮想マシンは、その仮想マシン用に定められたリソースを用いてあるセッションを実行する。通常、仮想マシンのマイグレーションは、第2の物理サーバB上で同じ仮想マシンのインスタンスを作成し、物理サーバAから物理サーバBへとメモリのコピーを開始することによって行われる。
次に、仮想マシンが、実際に物理サーバAから移動して物理サーバBに置か(place)れ、続いて、セッションが物理サーバB上で実行され、その仮想マシンにより用いられていた物理サーバA上のリソースが、このとき開放される。しかし、これは、1つのクラウド内などの1つの管理ドメイン内でしか実行できない。
続いて、図4について説明する。図4は、例えば日本のコア伝送ネットワークといったコア伝送ネットワーク400を示している。さらに、インターネットが、1つのクラウド402として示され、日本の都市である大阪及び仙台用の個々のノードクラウド404、406も同様に示されている。
さらに、日本の首都である東京用の2つのサービスクラウドが、符号408及び410として示され、日本の首都用の3つのノードクラウドが、符号412、414、416として示されている。さらに、エリアA及びエリアBといった2つのエリアが、符号418及び420として示されている。基本的に、本発明の構想は、固定電話が可動性を持つ(mobile)ようになれば、固定サーバとすることができるという点に基づいている。このような手順の使用事例は災害管理である。この目的のために、例えば、サービスクラウド東京408上に置かれているアプリケーションを、サービスクラウド大阪410へとマイグレーションすることができる。別の使用事例はメンテナンスである。この目的のために、例えば、1つのアプリケーションを符号412に示したノードクラウド東京1からノードクラウド東京3へとマイグレーションすることができる。他の手順は、例えば、ノードクラウド東京2(符号414)から符号416へとアプリケーションを移動させることとすることができる。さらに別の使用事例は、エネルギー節約である。特に災害管理のためには、マイグレーション時間が1分未満であることが求められる。
地理的に分散したクラウドシステムでは、クラウド内マイグレーション(マイクロマイグレーション)の管理及びクラウド間マイグレーション(マクロマイグレーション)の管理が有用となる。課題は、仮想化技術の普及により、仮想マシンがもはやいかなる物理的ロケーションにも結び付けられていないということである。仮想マシンを完全に可動性のあるものとするためには、これらの課題は特に、シームレスなセッションマイグレーションと、マイグレーション後の仮想マシンの発見と、ルート最適化、すなわちコア伝送ネットワークを通じてあるクラウドに向かい、次いで、ある仮想マシン又は(その仮想マシンが動作している)物理マシンへと向かう通信ルートの最適化とに関係する。
本発明の基本的構想を図5に具体的に示している。本発明の構想に基づく構造を図5の右側に示している。同図では、物理マシンの第1のグループ100が、ローカルマイグレーションアンカポイント110へと接続され、物理マシンの第2のグループ120が、第2のマイグレーションアンカポイント130へと接続されている。さらに、ローカルマイグレーションアンカポイント110、130の双方は、グローバルマイグレーションアンカポイント140に接続されている一方で、さらに仮想マシンロケーションレジスタ150とも通信できるように接続されている。グローバルマイグレーションアンカポイント140はさらに、仮想マシンロケーションレジスタ(virtual machine location register, VMLR)150への通信接続を有している。続いて、図1を詳細に説明する。図1は、複数の仮想マシンを管理するための階層システムを示している。
本システムは、少なくとも2つの別々の物理マシン100a、100b、100cを有する第1のグループに接続可能な第1のローカルマイグレーションアンカポイント110を有している。ローカルマイグレーションアンカポイント110は、別々のデータセット110a、110bを記憶するものである。各データセットは、物理マシン100bすなわちPM2に置かれているような、少なくとも2つの物理マシンを有する第1のグループ内のある物理マシンに置かれた(located)VM1等の第1の仮想マシンの仮想マシン識別情報と、その物理マシンすなわちPM2の物理マシン識別情報とを含んでいる。これと並行して、符号120a、120b、120cといった少なくとも2つの物理マシンを有する第2のグループに接続可能な第2のローカルマイグレーションアンカポイント130は、対応するデータセット130a、130bを記憶するものである。各データセット130a、130bは同様に、少なくとも2つの物理マシンを有する第2のグループ内のある物理マシンに置かれた仮想マシンの仮想マシン識別情報と、これに対応する上記物理マシンの物理マシン識別情報とを含んでいる。具体的には、仮想マシンnが、物理マシン識別情報PM4を有する物理マシン120cに置かれている場合には、データセットは、仮想マシンnが置かれている物理マシンのIDであるPM4と関連付けられたVM IDであるVMnを含むことになる。一例として、別の仮想マシンVM(n+1)が、物理マシンIDとしてPM5を有する物理マシン120bに置かれると、第2のデータセット130bは、仮想マシンVM(n+1)というIDと、それに関連する物理マシンPM5というIDとを互いに関連付けて有することになる。当然のことながら、物理マシンは、さらに多くの仮想マシンを追加的にホストすることができる。この場合、各仮想マシンは、特定の物理マシンに置かれた各仮想マシンに対して同一の物理マシンIDを含んだデータセットを有する。
さらに、GP1として示されているグローバルマイグレーションアンカポイント140は、第1の接続ライン141aを通じて第1のローカルマイグレーションアンカポイントLP1に接続され、別の接続ライン141bを通じて第2のローカルマイグレーションアンカポイントLP2に接続されている。
グローバルマイグレーションアンカポイントGP1は、第1の仮想マシンによって実行されるアプリケーションに関する第1のサービス識別情報をデータレコードに記憶する。この第1のサービス識別情報は、データレコード140aにおいてはID1として示しており、第2のデータレコード140bにおいてはID2として示している。さらに、データレコード140aは、第1の仮想マシンVM1に関連付けられた識別情報と、第1のローカルマイグレーションアンカポイントLP1の識別情報とを含んでいる。さらに、第2のデータレコード140bは、物理IDとしてPM4を有する物理マシン120cにおいてVMn等の第2の仮想マシンによって実行されるアプリケーションのサービス識別情報ID2を有している。その一方で、本発明は階層的な2層構造を有するため、グローバルマイグレーションアンカポイントのデータレコードにおいて物理マシンIDは必要とされない。
仮想マシンロケーションレジスタは、ハッチング線151a及び151bによって示しているようにローカルマイグレーションアンカポイントに接続することができるが、必ずしもそうとも限らない。その一方で、VMLR150は、接続ライン151cを通じてグローバルマイグレーションアンカポイントに接続されるとともに、接続ライン151dを通じてGP2等の他の任意のグローバルマイグレーションアンカポイントに接続される。
VMLRは、当該VMLRに接続されたグローバルマイグレーションアンカポイントと関連付けられたいずれかの物理マシンにおいて動作する各仮想マシン用のデータエントリを有している。したがって、1つのVMLRが、複数の異なるクラウドを有するネットワーク全体に用いられ、このVMLRは、これらのクラウドのうちのいずれかにおいて動作するありとあらゆる仮想マシン用のデータエントリを有する。さらに、このVMLRは、ID1、ID2といったサービスの識別情報と、仮想マシンの識別情報と、その仮想マシンを有する物理マシンが接続されているローカルマイグレーションアンカポイントの識別情報とを有し、加えて、このVMLRは、各IDにつき、対応するグローバルマイグレーションアンカポイントを有する。仮想マシンVM1、VMnの双方がGP1に接続されているため、双方のデータエントリは、同じGP1エントリを有している。単一のグローバルマイグレーションアンカポイントしか用いない場合には、VMLR内のGPのエントリは不要となる。
この階層システムは更に、中央ネットワーク管理システム160と、第1のグループ100用のグループマネージャ101と、物理マシンの第2のグループ用の別のグループマネージャ121とを有している。
さらに、後で説明するように、各ローカルマイグレーションアンカポイントは、LP1用の符号110c及びLP2用の符号130cとして示されている、満了期間を示すタイマを備えていることが好ましい。特に、図1に示した各デバイスは、必要に応じて、あるメッセージを別の通信相手に送信し、及び/又は別の通信相手からメッセージを受信して解釈し処理をする。
そして、図2aに示すように、グローバルマイグレーションアンカポイント140は、ブロック200に示すように、サービス識別情報(ID)によって特定されるサービスを求めているクライアントからデータメッセージを受信する。ブロック200の右に示したデータメッセージは、送信元エントリ201と、宛先エントリ202と、ペイロードエントリ203とを有している。送信元エントリは、あるサービスによるサービス提供を受けようとするクライアントを示し、宛先エントリは、このデータメッセージを受信するグローバルマイグレーションアンカポイントを特定するものである。次に、ステップ205に略述するように、グローバルマイグレーションアンカポイントは、受信したデータメッセージを処理して、送信元エントリ201がグローバルマイグレーションアンカポイントを特定するものとなるように、そして宛先エントリがローカルマイグレーションアンカポイントLPを特定する一方で、仮想マシンを特定するものとなるようにする。グローバルマイグレーションアンカポイントは、特定のサービス識別情報を含む、記憶されたデータレコードにより上記を行う立場にある。
図2bに示すように、ローカルマイグレーションアンカポイントは、符号210に示すように、グローバルマイグレーションアンカポイントからデータメッセージを受信する。そして特に、ローカルマイグレーションアンカポイントは、宛先フィールド202に示すような、データメッセージが示す仮想マシン識別情報を含む記憶されたデータセットに基づいて、データメッセージ内におけるローカルマイグレーションアンカポイント識別情報を物理マシン識別情報へと置き換える。具体的には、宛先エントリの、特定の物理マシンへのこのような置換えをブロック215にも示している。
続いて、図3aについて説明する。図3aは、図1に示した中央ネットワークマネージャ(central network manager, CNMS)160の1つの機能を示している。具体的には、CNMSは符号300に示すように、グループ内マイグレーションの要求又は決定を受信する。ローカルマイグレーションアンカポイントは符号305に示すように、図1の符号101等の、対応するグループマネージャから新たな物理マシンのIDを受信する。続いて、ローカルマイグレーションアンカポイントは、データセット内の第1の物理マシンの識別情報を第2の(新たな)物理マシンの識別情報に置き換える。これを符号310に示している。したがって、グループ内又はクラウド内のマイグレーションは、ローカルマイグレーションアンカポイントに記憶されているデータセットにのみ影響を与え、グローバルマイグレーションアンカポイントに記憶されているデータレコードには何ら影響を与えない。VMLRは、物理マシン識別情報を何ら記憶しておらず、LP及びGPデータ並びにサービスIDデータのみを記憶しているため、VMLRにおける変更も不要である。
図3bは、中央ネットワークマネージャ160が、グループ間マイグレーションを決定する状況、すなわち、第1のローカルマイグレーションアンカポイントに関連付けられている第1の物理マシンから別のローカルマイグレーションアンカポイントに関連付けられている第2の物理マシンへの仮想マシンのマイグレーションによるグループ間マイグレーションを決定する状況を示している。そのために、図1のCNMS160は符号315に示すように、グループ間マイグレーションの要求又は決定を受信する。次に、マイグレーションの宛先である第2のローカルマイグレーションアンカポイントは符号320に示すように、物理マシンの第2のグループ内の第1の物理マシンから、物理マシンの第2のグループ内のその第1の物理マシンすなわち新たな物理マシンに第1の仮想マシンが置かれているという情報を受信する。さらに、第2のローカルマイグレーションアンカポイントは符号325に示すように、グローバルマイグレーションアンカポイントにメッセージを送信する。このメッセージは、第1の仮想マシンが現時点で物理マシンの第2のグループに置かれていることを示すものである。符号330に示すように、グローバルマイグレーションアンカポイントは、以前のローカルマイグレーションアンカポイント330に関する情報を受信する仮想マシンロケーションレジスタVMLR150にアクセスする。代替的に又はこれに加えて、第2のローカルマイグレーションアンカポイントは符号335に示すように、以前のローカルマイグレーションアンカポイントに関する情報を取得するためにあるメッセージをVMLRに送信する。基本的には、ステップ330及び335のうちの一方のみで十分であるが、実施態様に応じて、双方のステップを累積的に実行することもできる。
ステップ340では、第1のローカルマイグレーションアンカポイントは、第1の仮想マシンへと指定されたデータメッセージの宛先エントリに第2のローカルマイグレーションアンカポイントを示すことによって、そのデータメッセージを第2のローカルマイグレーションアンカポイントに送信し、そのデータメッセージが、求められている仮想マシンが置かれている正しい物理マシンへとルーティングされるようにする。加えて、第1の仮想マシンは、マイグレーション後に第1のローカルモビリティアンカポイントを第2のローカルモビリティアンカポイントに知らせることができる。
続いて、ある特定のページング(paging)機能を示す図3cについて説明する、ステップ350において、ローカルマイグレーションアンカポイントは、ある仮想マシンを特定したロケーション登録更新要求を、そのローカルマイグレーションアンカポイントに接続されている物理マシンのグループ内の全ての物理マシンに送信する。ローカルマイグレーションアンカポイントは、ステップ355において、上記仮想マシンが置かれている物理マシンから応答を受信する。ステップ360では、ローカルマイグレーションアンカポイントは、仮想マシンロケーションレジスタ又はこの仮想マシンロケーションレジスタに加えてグローバルマイグレーションアンカポイントに対し、上記仮想マシンが存在する物理マシンを通知する。さらに、VMはLPに直接返答することができ、そのため、全体のトラフィックはPMにとって透過的なもの(transparent)として保たれる。
図3dは、GP1及びGP2といった2つのグローバルマイグレーションアンカポイントを有するシステムにおいて実行されることが好ましい処理を示している。ステップ370において、GP1は、あるサービスIDを有するサービスのクライアント要求を受信する。次にステップ375において、GP1は、そのサービスIDに関し自己のデータレコードを調べる。ステップ380に示すように、メッセージに含まれているサービスIDが見つからない場合には、GP1はVMLRにアクセスする。次のステップ385において、GP1は、GP2からのIDをVMLRから受信する。次のステップ390において、GP1はGP2に対し、クライアントとそのサービスIDを有するサービスと少なくとも一方を通知する。ステップ395において、GP2は、クライアントを直接、アドレス指定するか、又は通信がGP1を通じてGP2及びクライアントへとルーティングされる。しかし、データメッセージの受信者すなわちあるローカルマイグレーションアンカポイントが、サービス識別情報によってアドレス指定されたある仮想マシンがこの階層ネットワーク内で接続している実際のグローバルマイグレーションアンカポイントを特定するとすぐに、別の代替形態も同様に実行することができる。
続いて、初期化処理のための詳細な実施形態を示すために、図6を詳細に説明する。
符号600に示す物理マシンは、マイグレーション管理モジュール601を備えている。ある仮想マシンについて、その仮想マシンのIDと、IPアドレスと、メモリと、例えばコア1等のある特定のハードウェアリソースとを定めることによりインスタンスが作成された後、その仮想マシン602が物理マシンに存在することになる。次に、物理マシンコントローラ603は自己の物理マシンIDを送信する。この物理マシンIDをPM IDとして示している。次に、仮想マシンのマイグレーション管理モジュール604は、このPM IDを記憶し、自己のVM ID又は「サービスID」を物理マシンのマイグレーション管理601に返信する。このサービスIDは、この分野において知られているように、アプリケーションID又はURLと同義であることに留意すべきである。次に、物理マシンのマイグレーション管理機能は、符号605に示すように、仮想マシンのサービスID及び物理マシンの物理マシンIDを、指定されたマイグレーションアンカポイントに送信する。次に、ローカルマイグレーションアンカポイントは、仮想マシンID、物理マシンIDを記憶し、次いで、ステップ606に示すように、サービスIDと仮想マシンIDと物理マシンIDとローカルマイグレーションアンカポイントIDとをグローバルマイグレーションアンカポイントに知らせる。次に、グローバルマイグレーションアンカポイントは、サービスIDと仮想マシンIDとローカルマイグレーションアンカポイントIDとを記憶し、符号607に示すように、サービスIDと仮想マシンIDとローカルマイグレーションアンカポイントIDとグローバルマイグレーションアンカポイントIDとをVMLRに知らせる。次に、VMLRは、エントリを作成して、サービスIDと仮想マシンIDとローカルマイグレーションアンカポイントIDとグローバルマイグレーションアンカポイントIDとを互いに関連付けて記憶する。さらに、全体の登録プロセスは、登録情報を受信したあらゆるモジュールからのACK(確認応答)メッセージ及び応答を用いて行われることが好ましい。すなわち、LPは応答を物理マシンに返信し、GPは応答をLPに返信し、VMLRは応答をGPに返信することが好ましい。
次に、図7を参照してサービス発見及びセッションの確立について説明する。
まず、図7の符号700に示すクライアントが、メッセージをいわゆるDNSサーバに送信する。具体的には、このクライアントは、ある特定のサービスにアクセスしようとしており、この特定のサービスはそのクライアントが当然知らない仮想マシン上で動作している。しかし、クライアントはウェブアドレスを知っているため、クライアントは、このURLのサーバIDに関する情報を見つけるために、第1のメッセージを用いてDNSサーバ701にアクセスする(符号711)。次に、DNSサーバ702は、仮想マシンが関連付けられているグローバルマイグレーションアンカポイントのIDを示す第2のメッセージにより応答する。この情報は、ステップ712に示すように、DNSサーバが提供することができる。なぜならば、DNSサーバは、一方でグローバルマイグレーションアンカポイントとの関連付け、他方ではサービスID又はURLとの関連付けに関して更新されるからである。次に、第3のステップにおいて、クライアント700は、符号713に示すように、メッセージ712にて示されたGPにアクセスし、当該クライアントがこのURL用のセッションを確立しようとしていることを要求する。
次に、GP1は、符号714に示すように、(クライアント700そのものではなく)GP1がこのURLのセッションを確立しようとすることをLP1に知らせることにより、関連付けられているLP1をアドレス指定する。GP1は、そのセッションがクライアントのためのものではなくGP1のためのものであることを示す。この情報は、LP1等の対応するLPを通じて第1のクラウド720へとルーティングされ、LP1は、メッセージ714に示されている仮想マシンIDが属する物理マシンID721を知る。仮想マシンIDを符号722に示されている。次に、物理マシン、特に物理マシンのマイグレーション管理部及び仮想マシンのマイグレーション管理部、又は図6において説明したマイグレーション管理要素のみが、セッション確立がOKであること及びセッションの所有者がGP1であることを伝えるメッセージ715を通じて応答する。次に、符号716によって示すように、GP1は、セッションがOKであること及びセッションがクライアント用であることをクライアントに返信して報告する。しかし、クライアントは、特定のセッションの所有者がクライアント自身ではなくGP1であることは知らない。
続いて、図8を参照してデータパスを説明する。セッションが図7の手順によって確立された後、クライアント700はこの時点でペイロードの通信を開始する。これは、メッセージ800によって行われる。このメッセージは、クライアントから送信されるメッセージの宛先としてGP1を表す宛先セクションを有しており、送信元としてクライアントを表す送信元セクションを有しており、そして、ペイロードセクションを有している。次にGP1はメッセージ802を、特定のサービスIDと関連付けられたローカルマイグレーションアンカポイントまで送信する。この目的のために、メッセージ802に示しているように、送信元フィールドは、クライアント1からGP1へ変更され、宛先フィールドは、一方では仮想マシンに変更されるとともに他方ではローカルマイグレーションアンカポイントIDへ変更される。次に、ローカルマイグレーションアンカポイントは、メッセージ803を特定の物理マシンに送信する。この場合も、送信元フィールドは、変更されずGP1のままであるが、宛先フィールドは、メッセージ802のようなローカルマイグレーションアンカポイントID及び仮想マシンではなく、物理マシンID及び仮想マシンを表すものとなるように変更される。次に、示された物理マシンIDを有する物理マシンは、宛先フィールドによって示されている仮想マシンにメッセージ804を送信し、次いで仮想マシンはそのメッセージを処理し、その結果をメッセージ805として返信する。この場合、このメッセージは、宛先GP1と、クラウド1(符号720)内でこのメッセージを実際に生成した仮想マシンである送信元とを有している。次に、仮想マシンをホストする物理マシンに関連付けられたマイグレーション管理マネージャは、仮想マシンに関連付けられたマイグレーションマネージャからメッセージ805を受信する。次に、物理マシンは、メッセージ806をローカルマイグレーションアンカポイントまで送信する。このメッセージは、送信元フィールドがVMのままであり、宛先フィールドはGP1のままであるとともに、宛先にはLP1が追加して示されている。しかし、これは、LPがクラウドの外部ゲートウェイ(outgoing gateway)として構成されていない場合にのみ必要である。その一方で、LP1がクラウド720内の全ての物理マシンのための外部ゲートウェイとなるように自動的に構成されている場合には、メッセージ806内でLP1は必要なく、メッセージ805及び806は同一となる。
次に、LP1は、送信元フィールド及び宛先フィールドが、LP1の識別情報が削除されていることを除いて変更のないメッセージ807をGP1に送信する。次に、URLとVMのエントリを実際に有するGP1が、ファイルメッセージ808をクライアント700へ送信し、クライアントは、そのクライアントのサービスがGP1から提供されていることを実際に認識する。したがって、図8は、本発明の階層システムの重要な利点、すなわちクライアントが階層システム内の下層については何も気にする必要がなく、メッセージが送信されるグローバルマイグレーションアンカポイントにのみ対応するだけでよいことを示している。
続いて、マイグレーションのサポート及びハンドオーバを説明するために図9aを参照する。3つのクラウド901、902、903が示されており、物理マシン904及び別の物理マシン905が示されている。さらに、VMLR150と、LP1(符号110)と、LP2(符号130)と、番号nを有する別のローカルマイグレーションアンカポイントとが示されており、さらに、2つのグローバルマイグレーションアンカポイント140及び別のグローバルマイグレーションアンカポイント910が示されている。メッセージ911は、ペイロードセクションと、VM ID及び物理マシン904の物理マシンIDを有する宛先セクションとを有している。ここで、図9bに示しているように、仮想マシンが、物理マシン904から物理マシン905へと、すなわちクラウド内でマイグレーションすることになる。このことは、物理マシンからメッセージ912を通じてローカルマイグレーションアンカポイントに通信され、次いで、ローカルマイグレーションアンカポイントLP1は、メッセージ911内の物理IDエントリをマシン904の物理IDからマシン905の物理IDへ変更する。しかし、仮想マシンがクラウド901内の物理マシン905から第2のクラウド内の物理マシン915に移動する場合は、追加の手順が必要である。続いて、これらの手順を図9cを参照して説明する。第1のステップにおいて、仮想マシンIDを有する仮想マシンが、符号920に示すように、物理マシン905から物理マシン915に移動する。次のステップでは、物理マシン915が、その関連付けられたローカルマイグレーションアンカポイント130にこの新たな状況を通知する。これは、メッセージ921により行われる。次に、ローカルマイグレーションアンカポイント130は、それに関連付けられているグローバルマイグレーションアンカポイントに対しメッセージ922によりこの新たな状況を通知する。加えて、この新たな状況は、メッセージ923によりLP2(符号130)からLP1(符号110)に通知することもできるし、メッセージ924によりGP1(符号140)からVMLRに通知することもできる。次に、図9bのメッセージ911をまだ所有しているローカルマイグレーションアンカポイント110は、このメッセージを処理しなければならない。この目的のために、それまで物理マシン905を示していた宛先フィールドは、いまでは、図9cの符号925に示すように、ローカルマイグレーションアンカポイント130を示す。次に、このメッセージは、ローカルマイグレーションアンカポイント130に実際に到達することができる。次に、図9dに示すように、LP2(符号130)は、それ自身すなわちそのローカルマイグレーションアンカポイントの物理IDを、物理マシン915の物理マシンIDに置き換える。次に、図9dに示しているように、グローバルマイグレーションアンカポイントが受信したメッセージは、ブロック915に現在存在する仮想マシンに最終的に到達するように、ローカルマイグレーションアンカポイント110にルーティングされ、そこからローカルマイグレーションアンカポイント130にルーティングされる。しかし、パケットの順序付け(ordering)が問題とならない場合、すなわち、仮想マシンがパケット再順序付け(packet re-ordering)機能を有している場合には、グローバルマイグレーションアンカポイント140は、符号939に示すLP1を通じた間接ルートではなく、符号940に示す直接ルートを取ることができる。
したがって、この手順によれば、マイグレーションによるセッション切断を回避することができる。なぜならば、再ルーティングは、クライアントが何らの処理を行うことなくスムーズに行われるからである。さらに、全ての再ルーティングの手順は、利用可能な情報を用いて行われるため、LP1(符号110、113)又はGPは、上記で説明したように、送信元フィールド又は宛先フィールドに対応した処理によってメッセージを容易に転送することができる。中央コントローラのみが存在する集中型の方法と比較すると、ルート939、940は大幅に短い。
続いて、個々のエンティティの協調処理に関するフローチャートを説明するために図10を参照する。ブロック1000において、VMのインスタンス作成又はVMのマイグレーションが行われたか否かが判断される。行われていないと判断された場合にはこの手順は終了する。他方、インスタンス作成又はマイグレーションに該当すると判断された場合にはステップ1010が行われる。本ステップでは仮想マシンは自己を物理マシンに登録する。物理マシンが有効な仮想マシン情報を既に有している場合には、本ステップを省略することができる。ステップ1020において、仮想マシン及び対応する物理マシンは、それらに対応するローカルマイグレーションアンカポイントに登録を行う。クラウド内のプロセスの場合には、ブロック1030に示している手順が実行される。他方、ブロック1025において、クラウド間処理に該当すると判断された場合には、ブロック1035に示すように、仮想マシンを現在有しているローカルマイグレーションアンカポイントは、それまでのローカルマイグレーションアンカポイントとグローバルマイグレーションアンカポイントとVMLRとに対しクラウド間マイグレーションであることを知らせる。その一方で、ブロック1025にてクラウド内マイグレーションと判断された場合には、ブロック1030が行われる。ブロック1030は、登録タイマの満了、又はLP、GP若しくはVMLRによって発行される意図的な更新要求を示している。このタイマは、ブロック110c、130cに示したように、ローカルマイグレーションアンカポイントに配置されている。このタイマが満了すると、LP、GP若しくはVMLR又は個々の全てのエンティティによってロケーションの更新が行われる。他方、タイマが満了していない場合には、ブロック1040が、登録タイマが満了するまで何も起きないことを示している。したがって、ブロック1010及び後続のブロックに示す手順は、個々のトリガに応じて行われる。トリガの1つは登録タイマの満了であり、別のトリガは、LPのいずれか、GPのいずれか、又はVMLRからのロケーション更新要求である。
続いて、特定の好ましいページング機能を説明する。VMLR、GP、LPにおいて有効なエントリが何らかの理由で利用可能でない場合には(1つの理由は、データ破損若しくはデータ送信エラー又はそれに類似のものである)、VMLRとGPとLPとの少なくともいずれかが、全てのLP(又は仮想マシンが近時において最後に存在していた幾つかのLP)に対しページングを行うように依頼することができる。これは、GPを通じて行うこともでき、加えて、VMLRが単独でページングを行うこともできれば、GPにページングを行うように依頼し、そのGPがその配下にあるLPにページングを行うように依頼することもできる。
次に、各LPは、自己の各クラウド内にある全ての物理マシン(PM)に対しロケーション登録、更新要求をブロードキャストする。次に、対象となっているVMをホストしている物理マシン(又はVM自体)は、LP、具体的にはロケーション登録、更新要求に対して応答し、このとき、LPは、どの物理マシンが仮想マシンをホストしているのかを知る。次にLPはVMLRに通知し、また、GP又はより多くのグローバルマイグレーションアンカポイントに知らせることもできる。この目的のために、LPは次に、それ自身のLP IDをVMLRに転送し、次いでVMLRはクライアントからの新たなセッション要求を正しいGPを通じて正しいLPに、そしてそこから正しい物理マシンに実際に転送することができるように、サービスIDに対応するデータエントリを更新することができる。
図11は、マイグレーションに関する決定を見いだすための更なる手順を示している。符号1100に示すネットワーク構成プラットフォーム(network configuration platform)NCPは、種々のクラウド、具体的には種々のクラウドコントローラ1110及び1120とのインタフェースを維持するものである。ネットワーク構成プラットフォームNCPは、これらの種々のクラウドコントローラ(クラウドO&M)とのこのようなインタフェースを維持し、それ自体が行う監視に基づいて又はクラウドコントローラ1120、1110からの信号に基づいて決定を行うことが好ましい。この決定は、仮想マシンがどのクラウドからどのクラウドにマイグレーションすべきであるかを示すものである。クラウドコントローラ1120、1110は、これらのクラウドコントローラの制御下にある物理マシン上の仮想マシンにリソースを割り当てることを担当する。これらのクラウドコントローラは、図1にてグループマネージャ101、121としても示したものである。特に、VMLRは、サービスID又は「URL」、関連付けられている仮想マシンIDと、LP IDと、GP IDとを記憶する。
ルートの変更と、サービス提供と、仮想マシンの発見とは、GPと共同して行われ、これは上記で説明したとおりである。
本発明は、次の理由から有利である。本発明の階層システムは、LP及びGPといった少数のアンカポイントしか必要としないため拡張性を有している。これによって、例えばシグナリングの観点で複雑度が減少する。さらに、本発明の手順は、セルラネットワークに対して親和的であり、世界中で広範囲にわたって稼動しているセルラネットワークの動作に基づく経験(experience)をクラウドコンピューティングにも用いることができる。本発明の好ましい実施形態は、クラウドか、又は少なくとも2つの物理マシンを有する1つのグループかを有するシステムに関する。このシステムでは、複数の物理コンピューティングマシン(PM)が、複数の仮想マシンをホストする。さらに、このシステムは、1つ以上のローカルマイグレーションアンカポイント(LP)と、1つ以上のグローバルマイグレーションアンカポイントGPと、仮想マシンロケーションレジストラ(virtual machine location registrar)を備えており、これらのエンティティのそれぞれが、特定されるための一意のIDを保持するとともに仮想マシンのロケーションへのポインタを保持する。
本発明の1つの特徴は、VM、PM、LP及び/又はGPにおいて行われるロケーション登録ステップである。本ステップを通じて、VM、PM、LP、GP及び/又はVMLRは、前述したVMがネットワークのどこに置かれているのか、すなわちこのVMがどのPMに存在するのか、及びこのVMがサービスID又はURLによって特定されるどのような種類のサービスを提供するものであるのかという情報を受信する。
本発明は更に、サービスIDあるいはURL等のアプリケーションプログラム用アクセスIDと、それをホストする仮想マシンと、その仮想マシンが置かれている物理マシンと、物理マシンとLPの関連付けと、LPとGPの関連付けとのマッピングを保持するデータベースシステムに関する。これによれば、これらのエンティティ、すなわち物理マシンと、ローカルマイグレーションアンカポイントと、グローバルマイグレーションアンカポイントとは、それらのIDによって特定される。
本発明の別の態様では、ローカルマイグレーションアンカポイントは、仮想マシンが同じクラウド内に存在する場合にその仮想マシンのマイグレーションをサポートし、どの仮想マシンがどの物理マシンに置かれているのかに関する情報を保持する。特に、ローカルマイグレーションアンカポイントは、仮想マシンが新たな物理マシンに移動した場合には物理マシンIDを変更する。したがって、ローカルマイグレーションアンカポイントは、その仮想マシンを宛先とするデータを、その仮想マシンが置かれている適切な物理マシンへとルーティングするものであり、これは、データヘッダの前に適切な物理マシンIDを追加することによって行われることが好ましい。
ローカルマイグレーションアンカポイントは、当該ローカルマイグレーションアンカポイントが担当するクラウド内に置かれていた仮想マシンを宛先とするデータを、マイグレーション後には、例えば新たなLP−IDをデータヘッダに追加することによって、その仮想マシンの新たなローカルマイグレーションアンカポイントに転送することを担当する。
ローカルマイグレーションアンカポイントは、VMがあるクラウドから別のクラウドにマイグレーションするか否かをVMLR及びGPに更に知らせ、加えて、以前のLPにも同様に知らせる。
ローカルマイグレーションアンカポイントは、VMLR若しくはGPからの要求に応じて又は単独でブロードキャストページングメッセージをそのクラウド内の全ての物理マシンに対して発行し、このページングメッセージ内に特定の仮想マシンIDを明示的に挙げておくことによって、全ての仮想マシン又は1つ若しくは幾つかの仮想マシンについての仮想マシンのロケーションの更新を開始することができる。
グローバルマイグレーションアンカポイント(GP)は、クラウド間での仮想マシンのマイグレーションをサポートし、どのローカルマイグレーションアンカポイントを通ってどのように仮想マシンに到達することができるのかに関する情報を保持する。GPは、アプリケーションIDと、VM等のアプリケーションマシンのホストとの間の関係を解決するためのソルバとして更に機能し、GPは、それ自身のIDを、クライアントが検索しているアプリケーションのIDとして、問い合わせたクライアントに返す。GPは、App−IDとVMとLPとGPとの情報又は少なくともその一部を保持する。
GPは、クライアントに代わり、アプリケーションが置かれている仮想マシンとのセッションをセットアップ又はオープンすることが好ましく、送信元自体であるかのように振る舞う。これは、セッションの分割(session splitting)を参照して説明したものでもある。
GPは、送信元であるクライアントIDをそれ自体のIDに置き換えることによって、クライアントからのデータを転送することが好ましい。次に、GPは、データヘッダの前に適切なLP IDを追加する。
GPは、ローカルマイグレーションアンカポイントからある仮想マシンのロケーション更新を受信すると、以前のLPに代えて新たなLPのIDを追加することにより、継続中のセッションのルートをその仮想マシンの新たなロケーションへと変更することができる。
GPは、クライアントを宛先とするデータを仮想マシンから受信すると、仮想マシンの送信元IDを置き換えるように更に構成されており、GPはこれを単独で行い、当該GPがデータの送信元であるかのように見せかける。また、GPは、データの宛先を自身からクライアントIDに置き換える。
仮想マシンロケーションレジストラ又は仮想マシンロケーションレジスタは、どのアプリケーションIDが、どのグローバルマイグレーションアンカポイントによってカバーされたどのローカルマイグレーションアンカポイントによってカバーされているどの仮想マシンに置かれているのかに関する情報(URL、VM、LP、GP)又は少なくともこの情報の一部を保持する。アプリケーションIDは、ウェブアプリケーション、ビデオ等のアプリケーションサービスに対する識別子を示すものである。URLが、アプリケーションIDの1つの例である。
LP、GP、VMLRのロケーションは、互いに対して任意であることに留意すべきである。これらのエンティティは、物理的又は機能的に同じ場所にデプロイ(deploy)することもできるし、機能に合わせてデプロイすることもできるし、それらの物理ロケーション又は機能的ロケーションに関して別々のままとすることもできる。
一実施形態では、GPをLPと統合することができる。この場合、GPの機能は、LPによって行われる。それにもかかわらず、この統合デバイスは、GPの機能すなわちデータレコードと、LPの機能すなわちデータセットとを有する。
セッションが分割されていない場合、すなわち、カプセル化が行われていない場合には、クライアントは、仮想マシンIDを宛先として有するデータを幅広く送信し、以前のLPは、マイグレーション後にデータを新たなLPに転送する。そのような場合、LPは、クラウドの入口又は出口ゲートウェイとして機能する。
したがって、本発明は更に、各サーバファームが複数の物理サーバマシンを有する複数のサーバファームに関する。各物理サーバマシンは、複数の仮想サーバマシンを保持し、各サーバファームは、ローカルマイグレーションアンカポイントに接続され、複数のローカルマイグレーションアンカポイントは、グローバルマイグレーションアンカポイントに接続されている。ローカルマイグレーションアンカポイント及びグローバルマイグレーションアンカポイントは、どのアプリケーションがどの仮想マシンに置かれているのか、並びにどの仮想マシンがどのLPによってカバーされているのか及びどのLPがどのGPによってカバーされているのかに関する情報を保持する仮想サーバマシンロケーションレジストラに接続されている。特に、VM、PM、LP、GPは、マイグレーション管理機能を装備しており、仮想マシンのロケーションは、GPとLPとPMのつながりを通じて突き止めることができる。
更なる実施形態によれば、種々のクラウドコントローラ又はグループマネージャ(図1の符号101及び121等)とのインタフェースを維持するネットワーク構成プラットフォームが提供される。図11の符号1100等のネットワーク構成プラットフォーム又はクラウド間マイグレーション管理モジュールは、それ自身が行う監視に基づいて又はグループマネージャからの信号に基づいて、マイグレーションをどのように行うべきであるか及び/又はどの仮想マシンがどのクラウドから他のどのクラウドにマイグレーションすべきであるかの決定を行う。各クラウドのグループマネージャ又は「クラウドO&M」は、対応するグループマネージャによって管理されている物理マシン上の仮想マシンにリソースを割り当てることを担当する。
続いて、ロケーション登録、更新プロセスをより詳細に説明する。オリジナルのIDを有する仮想マシンは、自身を、現在存在する物理マシンPMに登録する。
いずれかの仮想マシンが、ロケーション登録メッセージをローカルマイグレーションアンカポイントに送信する。この場合、この仮想マシンは、物理マシンのID及びLPのIDを、当該仮想マシンが存在している物理マシンから受信する。あるいは、PMは仮想マシンに代わってロケーション登録を行う。その場合、物理マシンは、それ自身のID及びVM IDをLPに送信し、LPが、このVMがこの特定のPMに存在していることを知るようになる。LPは、物理マシンへの仮想マシンのマッピングをそのデータベース又はその複数のデータセット内に保持する。このエントリの有効性は、LP内の対応するタイマによって定められることが好ましい所定の期間の満了を条件とする。ロケーション登録プロセスは、この期間内に仮想マシン又は物理マシンによって再び行われなければならない。
PMが、仮想マシン、物理マシンのエントリ用のロケーション更新メッセージを受信しない場合には、そのPMは、ロケーション更新要求を仮想マシン、物理マシンに発行する。
肯定的な返答を受信した場合には、VMとPMのエントリの有効性は、所定の期間に延長される。
PMは、否定的な返答、すなわち、VMが当該PMにもはや存在しないことを送信することもできるし、そのようなメッセージを無視することもできる。LPが、そのロケーション更新要求に対して否定的な返答を受け取るか又は返答を受け取らなかった場合は、LPは、この特定のエントリを複数のデータセットから削除する。LPは、この特定のVMに関するVMとLPのエントリ用のエントリがもはや有効でないことをVMLRに知らせることもできる。
ロケーション登録は、仮想マシンのインスタンスが作成されるか又は別のPMに移動するときに行われる。
LPはまた、その範囲内の全てのPMに対しロケーション登録、更新を行うよういつでも、例えばLPが自身をリブートしなければならず、全てのVMとPMとのマッピングを失う場合に依頼することができる。そのような場合、PMは、PM IDと全てのVM IDとを1つのメッセージに含めた単一のメッセージによってロケーション登録、更新を行うことができる。
続いて、インスタンス作成、マイグレーション、リブートの後に仮想マシンによって行われる手順を示した図12について説明する。
第一に、図12の符号1200に示しているように、VMはそのVM−IDを当該VMが位置づけられているPMに送信する。次に、符号1202に示すように、PMは、メッセージ内においてVM−IDとそれ自身のPM−IDを、接続されているLPに送信する。特に、LPは、受信したメッセージの送信元からPM−IDを推測することができ、これはPM−IDの暗黙的な通知であり、この場合、PM−IDはメッセージ1202において必要ない。
次に、LPは、VM−ID及びLP−IDを、接続されたGPにメッセージ1204で送信し、符号1206に示すように、この情報を以前のLPに送信し、この情報をVMLRに対しメッセージ1208により送信する。代替的に又はこれに加えて、符号1210に示すように、GPはこの情報をVMLRに、すなわちメッセージ1208の代わりとして又はメッセージ1208に加えて送信する。
続いて、本発明の好ましい実施形態を説明するために、セッションのセットアップに関する更なる説明を提供する。
クライアントはまず、URLとVM−IDとの変換に関して当該クライアントのDNSサーバを調べる。シナリオは、例えばGPがDNSの処理と類似した、URLとVM−IDとの変換装置として機能するというものである。したがって、全てのクライアントが、GPに対し、URLからルーティング可能なIDへの変換を依頼する。この場合、全てのクライアントは、URLとルーティング可能なIDとの解決をGPに依頼するようにプログラムされている。
他のURLとVM−IDの変換装置は、URLとVM−IDとの解決要求を、DNSリダイレクションに相当するGPにリダイレクトすることができる。
GPは、有効な(満了していない)VM−IDとLP−IDのマッピングについてそれ自身の内部データベースを調べる。このようなマッピングが見つからない場合には、GPはVMLRに対し、URLとGP−IDとLP−IDとVM−IDとの適切なマッピングを要求する。GPが、LPがそのGP自身の範囲下にあることを確認し、かつGPが(負荷又はオペレータのポリシー上の理由から)サービス提供したい場合には、VMLRからの応答に従って、GPは、クライアントが要求しているURLに対してそれ自身のIDを宛先IDとして返信する(そして、URLとGPとLPとVMとのマッピングをそのGPのデータベースに記憶する)。
VMがこのGPの配下にないLPにアタッチされている場合、GPは、クライアントからの解決要求を、その仮想マシンのグローバルマイグレーションアンカポイントとして機能しているGPにリダイレクトする。ここで、この情報はVMLRからの応答に含まれていたものである。
GPは、データセッションを開始する前にも、仮想マシンとのセッションを確立する必要がある。クライアントは、宛先としてルーティング可能なID(GP−ID等)を得た後、データ送信に先立ってセッション確立の手順を開始する。セッション確立メッセージにおいて、GPは、送信元ID(すなわちクライアントID)をそのGP自身のIDに置き換え、宛先ID(すなわちGP自身のID)をVM−IDに置き換える。次に、GPは、担当するLPのIDを追加し、このように処理したメッセージを転送する。
したがって、VMを宛先とするデータパケットは、まずGPに到着する。GPは、それ自身のIDを宛先となるVM−IDに置き換え、そのデータパケットを転送する。この宛先となるVM−IDはGPのみが知っている。なぜならば、送信元クライアントは、実際のアプリケーションが置かれているVMではなくGPを宛先として認識しているからである。したがって、GPは、NATの特徴と類似した、クライアントとGPとGPとVMとのセッションのマッピングを行うテーブルを維持するものである。
GPは、データをVMに転送する前に、このデータをLP−IDを用いてカプセル化し、データがVMに向かう途中でLPに到達するようにする。LPは、このデータを受信すると、外側にあるID、すなわちそれ自身のIDを取り除く。LPは、次のIDとしてVM−IDを見つけ出す。LPは、そのデータベースを調べて、VM−IDとPM−IDとのマッピングを見つけ出す。次にLPは、宛先としてのPM−IDを用いてデータをカプセル化する。
したがって、PMはデータを受信し、次いで、PMは外側のID(それ自身のID)を取り除き、そのためVM−IDを認識できるようになる。そして、そのデータは、このとき認識可能なVM−IDによって特定される適切なVMへと配信される。
幾つかの態様を装置との関連で説明してきたが、これらの態様は、対応する方法の記述も表していることは明らかであり、この対応する方法では、ブロック又はデバイスが、方法ステップ又は方法ステップの特徴に相当する。同様に、方法ステップとの関連で説明した態様も、対応する装置の対応するブロック又は項目又は特徴の記述を表している。
ある特定の実施態様の要件に応じて、本発明の実施形態はハードウェア又はソフトウェアにおいて実施することができる。実施態様は、電子的に読取り可能な制御信号が記憶されたデジタル記憶媒体、例えばフロッピー(登録商標)ディスク、DVD、CD、ROM、PROM、EPROM、EEPROM、又はフラッシュメモリを用いて実行することができ、それらは、それぞれの方法が実行されるようにプログラム可能なコンピュータシステムと連携する(又は連携可能である)。
本発明による幾つかの実施形態は、本明細書に記載される方法のうちの1つが実行されるように又は第1の取得信号若しくは第2の取得信号又は第1の混合信号若しくは第2の混合信号を記憶するようにプログラム可能なコンピュータシステムと連携することができる電子的に読取り可能な制御信号を有する非一時的データキャリアを含む。
概して、本発明の実施形態は、プログラムコードを有するコンピュータプログラム製品としてインプリメントすることができる。該プログラムコードは、コンピュータプログラム製品がコンピュータ上で実行されると、方法のうちの1つを実行するように動作可能である。プログラムコードは、例えば機械可読キャリア上に記憶することができる。
他の実施形態は、機械可読キャリア上に記憶された、本明細書に記載された方法のうちの1つを実行するコンピュータプログラムを含む。
したがって、換言すれば、本発明の方法の一実施形態は、コンピュータプログラムがコンピュータ上で実行されるときに本明細書に記載された方法のうちの1つを実行するためのプログラムコードを有するコンピュータプログラムである。
したがって、本発明の方法の更なる実施形態は、データキャリア(又はデジタル記憶媒体若しくはコンピュータ可読媒体)であって、該データキャリア上に記録された、本明細書に記載された方法のうちの1つを実行するためのコンピュータプログラムを含む、データキャリアである。
したがって、本発明の方法の更なる実施形態は、本明細書に記載された方法のうちの1つを実行するコンピュータプログラムを表すデータストリーム又は信号シーケンスである。データストリーム又は信号シーケンスは、例えば、データ通信接続を介して、例えばインターネットを介して転送されるように構成することができる。
更なる実施形態は、本明細書に記載された方法のうちの1つを実行するように構成又は適合された処理手段、例えばコンピュータ又はプログラム可能な論理デバイスを含む。
更なる実施形態は、本明細書に記載された方法のうちの1つを実行するためのコンピュータプログラムがインストールされたコンピュータを含む。
幾つかの実施形態では、プログラム可能な論理デバイス(例えばフィールドプログラマブルゲートアレイ)を用いて、本明細書に記載された方法の機能のうちの幾つか又は全てを実行することができる。幾つかの実施形態では、フィールドプログラマブルゲートアレイは、本明細書に記載された方法のうちの1つを実行するためにマイクロプロセッサと連携することができる。概して、本方法は任意のハードウェア装置によって実行されることが好ましい。
上述した実施形態は、単に本発明の原理を説明するものである。本明細書において記載した構成並びに詳細の変更及び変形は当業者には明らかであることが理解される。したがって、特許請求の範囲によってのみ限定され、本明細書における実施形態の記述及び説明のために提示された特定の詳細によって限定されるものではないことが意図される。

Claims (16)

  1. 少なくとも2つの物理マシン(100a、100b)を有する第1のグループに接続可能であり、少なくとも2つの物理マシンを有する前記第1のグループ内の1つの物理マシンにある第1の仮想マシンの仮想マシン識別情報と、該1つの物理マシンの物理マシン識別情報とを含むデータセット(110a、110b)を記憶する第1のローカルマイグレーションアンカポイント(110)と、
    少なくとも2つの物理マシン(120a、120b)を有する第2のグループに接続可能であり、少なくとも2つの物理マシンを有する前記第2のグループ内の1つの物理マシンにある第2の仮想マシンの仮想マシン識別情報と、該1つの物理マシンの物理マシン識別情報とを含むデータセット(130a、130b)を記憶する第2のローカルマイグレーションアンカポイント(130)と、
    前記第1のローカルマイグレーションアンカポイントと前記第2のローカルマイグレーションアンカポイントとに接続され、前記第1の仮想マシンによって実行されるアプリケーションに関する第1のサービス識別情報と、前記第1の仮想マシンに関連付けられた識別情報と、前記第1のローカルマイグレーションアンカポイントの識別情報とを第1のデータレコード(140a)として記憶するとともに、前記第2の仮想マシンによって実行されるアプリケーションの第2のサービス識別情報と、前記第2の仮想マシンに関連付けられた識別情報と、前記第2のローカルマイグレーションアンカポイントの識別情報とを第2のデータレコード(140b)として記憶するグローバルマイグレーションアンカポイント(140)と、
    前記第1のサービス識別情報と、前記第1の仮想マシンの識別情報と、前記第1のローカルマイグレーションアンカポイントの識別情報とを含む、前記第1の仮想マシンに関する第1のデータエントリ(150a)を記憶するとともに、前記第2のサービス識別情報と、前記第2の仮想マシンの識別情報と、前記第2の仮想マシンが位置づけられている物理マシンが接続することのできる前記第2のローカルマイグレーションアンカポイントの識別情報とを含む第2のデータエントリ(150b)を有する仮想マシンロケーションレジスタ(150)と、
    中央ネットワーク管理システム(160)と、
    物理マシンの各グループのグループマネージャ(101、121)と
    を備え、
    前記中央ネットワーク管理システム(160)は、物理マシンの前記第1のグループから物理マシンの前記第2のグループ内の第1の物理マシンへと前記第1の仮想マシンをマイグレーションさせる旨の決定を受信する(315)か又は該決定を行うものであり、
    前記第2のローカルマイグレーションアンカポイントは、前記第1の仮想マシンが物理マシンの前記第2のグループ内の前記第1の物理マシンにあるという情報を、物理マシンの前記第2のグループ内の前記第1の物理マシンから受信する(320)ものであり、
    前記第2のローカルマイグレーションアンカポイントが、前記第1の仮想マシンが物理マシンの前記第2のグループにあるというメッセージを前記グローバルマイグレーションアンカポイントに送信する(325)か、前記グローバルマイグレーションアンカポイントが、以前のローカルマイグレーションアンカポイントに関する情報を受信する前記仮想マシンロケーションレジスタにアクセスする(330)か、又は前記第2のローカルマイグレーションアンカポイントが、前記以前のローカルマイグレーションアンカポイントに関する情報を得るために、前記仮想マシンロケーションレジスタに対して、あるメッセージを送信(335)し、
    前記第1のローカルマイグレーションアンカポイントは、前記第1の仮想マシンを対象としたデータメッセージを、該データメッセージの宛先エントリを前記第2のローカルマイグレーションアンカポイントとすることにより該第2のローカルマイグレーションアンカポイントへと送信する(340)ものである、複数の仮想マシンを管理するための階層システム。
  2. 第3のローカルマイグレーションアンカポイントと第4のローカルマイグレーションアンカポイントとに接続された第2のグローバルマイグレーションアンカポイントを更に備え、
    前記仮想マシンロケーションレジスタ(150)が更に、各データエントリにおいて、該データエントリにより特定されるローカルマイグレーションアンカポイントが接続しているグローバルマイグレーションアンカポイントのグローバルマイグレーションアンカポイント識別情報を記憶する、請求項1に記載の階層システム。
  3. 前記グローバルマイグレーションアンカポイントは、前記サービス識別情報によって特定されるあるサービスについてのデータメッセージをあるクライアントから受信する(200)ものであり、前記データメッセージは、前記クライアントを特定する送信元エントリと、前記グローバルマイグレーションアンカポイントを特定する宛先エントリとを有するものであり、
    前記グローバルマイグレーションアンカポイントは、前記サービス識別情報を有する、記憶しているデータレコードに基づいて、前記送信元エントリが前記グローバルマイグレーションアンカポイントを特定するものとなり、かつ前記宛先エントリが前記ローカルマイグレーションアンカポイントと前記仮想マシンとを特定するものとなるように前記データメッセージを処理する(205)ものである、請求項1又は2に記載の階層システム。
  4. 前記ローカルマイグレーションアンカポイントは、前記グローバルマイグレーションアンカポイントからデータメッセージを受信し(210)、該データメッセージが示す仮想マシン識別情報を含む、記憶しているデータセットに基づいて、前記データメッセージ内のローカルマイグレーションアンカポイント識別情報を物理マシン識別情報へと置き換える(215)ものである、請求項1〜3のいずれか1項に記載の階層システム。
  5. 前記ローカルマイグレーションアンカポイントは、仮想マシン識別情報を送信元として含むとともにグローバルマイグレーションアンカポイントを宛先として含むデータメッセージ(806)を受信し、当該仮想マシンの識別情報を含むデータエントリにおいて特定されるグローバルマイグレーションアンカポイントに向けて前記データメッセージ(807)を転送するものである、請求項1〜4のいずれか1項に記載の階層システム。
  6. 前記グローバルマイグレーションアンカポイントは、あるローカルマイグレーションアンカポイントからデータメッセージ(807)を受信するものであり、該データメッセージは、送信元として仮想マシン識別情報を有するとともに宛先として当該グローバルマイグレーションアンカポイントを有するものであり、
    前記グローバルマイグレーションアンカポイントは、前記仮想マシンの識別情報を含むデータレコードに基づいて、前記データメッセージを処理し、前記宛先としての前記グローバルマイグレーションアンカポイントをクライアント識別情報へ置き換え、前記送信元としての前記仮想マシンを当該グローバルマイグレーションアンカポイントのグローバルマイグレーションアンカポイント識別情報へ置き換えるものである、請求項1〜5のいずれか1項に記載の階層システム。
  7. 前記中央ネットワーク管理システム(1100)は、前記第1のグループ内の第1の物理マシンから前記第1のグループ内の第2の物理マシンへと前記第1の仮想マシンをマイグレーションさせる要求を受信する(300)ものであり、
    前記第1のローカルマイグレーションアンカポイントは、前記決定に応じて前記グループマネージャ(1020、1110)から前記第2の物理マシンの識別情報を受信する(305)ものであり、
    前記ローカルマイグレーションアンカポイントは、前記データセット内の前記第1の物理マシンの識別情報を前記第2の物理マシンの識別情報へと置き換える(310)ものである、請求項1に記載の階層システム。
  8. 前記第1のローカルマイグレーションアンカポイント及び前記第2のローカルマイグレーションアンカポイントと、前記グローバルマイグレーションアンカポイントと、前記仮想マシンロケーションレジスタとのうちの少なくとも1つが、前記仮想マシンロケーションレジスタか、前記第1のローカルマイグレーションアンカポイント及び前記第2のローカルマイグレーションアンカポイントか、前記グローバルマイグレーションアンカポイントかにおけるデータが有効ではない場合にページング処理を行うものである、請求項1〜7のいずれか1項に記載の階層システム。
  9. 前記仮想マシンロケーションレジスタと、前記グローバルマイグレーションアンカポイントと、前記第1のローカルマイグレーションアンカポイント及び前記第2のローカルマイグレーションアンカポイントとのうちの少なくとも1つが、仮想マシンが過去においてのみ登録されていた全てのローカルマイグレーションアンカポイントにページング処理を行うよう依頼するか、又は
    前記仮想マシンロケーションレジスタが、前記グローバルマイグレーションアンカポイントにページング処理を行うよう依頼し、該グローバルマイグレーションアンカポイントが、当該グローバルマイグレーションアンカポイントに接続されているローカルマイグレーションアンカポイントにページング処理を行うよう依頼する、請求項8に記載の階層システム。
  10. 前記ローカルマイグレーションアンカポイントが、ある仮想マシンを特定したロケーション登録又は更新要求を、接続可能な物理マシンのグループ内の全ての物理マシンへ送信し(350)、
    前記ローカルマイグレーションアンカポイントは、前記ある仮想マシンを有している物理マシンから返答を受信し(355)、
    前記ローカルマイグレーションアンカポイントは、前記仮想マシンロケーションレジスタ、あるいはこれに加えて前記グローバルマイグレーションアンカポイントに対し、前記ある仮想マシンが存在している物理マシンを通知する(360)ものである、請求項1〜9のいずれか1項に記載の階層システム。
  11. 各物理マシンが、前記第1のローカルマイグレーションアンカポイントと通信するように構成されているマイグレーション管理制御機能と仮想マシン機能とを有するものである、物理マシンの前記第1のグループを更に備えている請求項1〜10のいずれか1項に記載の階層システム。
  12. 前記第1のローカルマイグレーションアンカポイントと前記第2のローカルマイグレーションアンカポイントとがそれぞれ満了期間を示すタイマ(110c、130c)を有し、
    前記物理マシン又は前記仮想マシンは、前記満了期間内にロケーション登録メッセージを前記ローカルマイグレーションアンカポイントに送信し、対応するデータセットが更なる期間にわたり延長されるか、又は、
    前記ロケーション登録メッセージを前記満了期間内に受信しなかった場合には、前記第1のローカルマイグレーションアンカポイントと前記第2のローカルマイグレーションアンカポイントとが、ある仮想マシンを特定した前記対応するデータセットを削除する、請求項1〜11のいずれか1項に記載の階層システム。
  13. 前記グローバルマイグレーションアンカポイントが、あるクライアントから受信したサービス識別情報を仮想マシンのIPアドレスへと変換する、請求項1〜12のいずれか1項に記載の階層システム。
  14. 少なくとも2つのグローバルマイグレーションアンカポイントを備え、
    第1のグローバルマイグレーションアンカポイントが、サービス識別情報を有するクライアント要求を受信し(370)、
    前記第1のグローバルマイグレーションアンカポイントは、前記サービス識別情報に関してデータレコードを調べ(375)、
    前記第1のグローバルマイグレーションアンカポイントが記憶しているデータレコードにおいて前記サービス識別情報が見つからない場合には、前記第1のグローバルマイグレーションアンカポイントは、前記サービス識別情報と関連付けられているグローバルマイグレーションアンカポイントの識別情報を前記仮想マシンロケーションレジスタに要求し(380)、
    前記グローバルマイグレーションアンカポイントは、前記サービス識別情報をデータレコード内に有する第2のグローバルマイグレーションアンカポイントの識別情報を受信し(385)、
    前記第1のグローバルマイグレーションアンカポイントは、前記仮想マシンロケーションレジスタによって特定された前記第2のグローバルマイグレーションアンカポイントに対し、前記サービス識別情報によって特定されたサービスを要求しているクライアントを通知する(390)、請求項1〜13のいずれか1項に記載の階層システム。
  15. 少なくとも2つの物理マシンを有する第1のグループ内の1つの物理マシンにある第1の仮想マシンの仮想マシン識別情報と、該1つの物理マシンの物理マシン識別情報とを含むデータセットを記憶する第1のローカルマイグレーションアンカポイント(110)を、少なくとも2つの物理マシンを有する前記第1のグループに接続するステップと、
    少なくとも2つの物理マシンを有する第2のグループ内の1つの物理マシンにある第2の仮想マシンの仮想マシン識別情報と、該1つの物理マシンの物理マシン識別情報とを含むデータセットを記憶する第2のローカルマイグレーションアンカポイント(130)を、少なくとも2つの物理マシンを有する前記第2のグループに接続するステップと、
    前記第1の仮想マシンによって実行されるアプリケーションに関する第1のサービス識別情報と、前記第1の仮想マシンに関連付けられた識別情報と、前記第1のローカルマイグレーションアンカポイントの識別情報とを第1のデータレコードとして記憶するとともに、前記第2の仮想マシンによって実行されるアプリケーションの第2のサービス識別情報と、前記第2の仮想マシンに関連付けられた識別情報と、前記第2のローカルマイグレーションアンカポイントの識別情報とを第2のデータレコードとして記憶するグローバルマイグレーションアンカポイント(140)を、前記第1のローカルマイグレーションアンカポイントと前記第2のローカルマイグレーションアンカポイントとに接続するステップと、
    仮想マシンロケーションレジスタ(150)が、前記第1のサービス識別情報と、前記第1の仮想マシンの識別情報と、前記第1のローカルマイグレーションアンカポイントの識別情報とを含む、前記第1の仮想マシンに関する第1のデータエントリを記憶するとともに、前記第2のサービス識別情報と、前記第2の仮想マシンの識別情報と、前記第2の仮想マシンが置かれている物理マシンが接続することのできる前記第2のローカルマイグレーションアンカポイントの識別情報とを含む第2のデータエントリを有するステップと、
    中央ネットワーク管理システム(160)が、物理マシンの前記第1のグループから物理マシンの前記第2のグループ内の第1の物理マシンへと前記第1の仮想マシンをマイグレーションさせる旨の決定を受信する(315)か又は該決定を行うステップと、
    前記第2のローカルマイグレーションアンカポイントが、前記第1の仮想マシンが物理マシンの前記第2のグループ内の前記第1の物理マシンに置かれているという情報を、物理マシンの前記第2のグループ内の前記第1の物理マシンから受信する(320)ステップと、
    前記第2のローカルマイグレーションアンカポイントが、前記第1の仮想マシンが物理マシンの前記第2のグループにあるというメッセージを前記グローバルマイグレーションアンカポイントに送信する(325)か、前記グローバルマイグレーションアンカポイントが、以前のローカルマイグレーションアンカポイントに関する情報を受信する前記仮想マシンロケーションレジスタにアクセスする(330)か、又は前記第2のローカルマイグレーションアンカポイントが、前記以前のローカルマイグレーションアンカポイントに関する情報を得るために、前記仮想マシンロケーションレジスタに対して、あるメッセージを送信する(335)ステップと、
    前記第1のローカルマイグレーションアンカポイントが、前記第1の仮想マシンを対象としたデータメッセージを、該データメッセージの宛先エントリを前記第2のローカルマイグレーションアンカポイントとすることにより該第2のローカルマイグレーションアンカポイントへと送信する(340)ステップと
    を含む、複数の仮想マシンを管理する方法。
  16. 請求項15に記載の複数の仮想マシンを管理する方法をコンピュータに実行させるプログラムコードを含むコンピュータプログラム。
JP2013144451A 2012-07-16 2013-07-10 複数の仮想マシンを管理するための階層システム、方法、及びコンピュータプログラム Active JP5608794B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP12176591.1 2012-07-16
EP12176591.1A EP2687982A1 (en) 2012-07-16 2012-07-16 Hierarchical system for managing a plurality of virtual machines, method and computer program

Publications (2)

Publication Number Publication Date
JP2014021979A JP2014021979A (ja) 2014-02-03
JP5608794B2 true JP5608794B2 (ja) 2014-10-15

Family

ID=48703360

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013144451A Active JP5608794B2 (ja) 2012-07-16 2013-07-10 複数の仮想マシンを管理するための階層システム、方法、及びコンピュータプログラム

Country Status (4)

Country Link
US (1) US20140019621A1 (ja)
EP (2) EP2687982A1 (ja)
JP (1) JP5608794B2 (ja)
CN (1) CN103544043A (ja)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140259012A1 (en) * 2013-03-06 2014-09-11 Telefonaktiebolaget L M Ericsson (Publ) Virtual machine mobility with evolved packet core
US10230567B2 (en) * 2013-04-01 2019-03-12 Dell Products L.P. Management of a plurality of system control networks
US10764323B1 (en) * 2015-12-21 2020-09-01 Amdocs Development Limited System, method, and computer program for isolating services of a communication network in response to a distributed denial of service (DDoS) attack
WO2015172803A1 (en) * 2014-05-12 2015-11-19 Nokia Solutions And Networks Management International Gmbh Controlling of communication network comprising virtualized network functions
US20150347170A1 (en) * 2014-05-27 2015-12-03 Vmware, Inc. Grouping virtual machines in a cloud application
US9727439B2 (en) 2014-05-28 2017-08-08 Vmware, Inc. Tracking application deployment errors via cloud logs
US9712604B2 (en) 2014-05-30 2017-07-18 Vmware, Inc. Customized configuration of cloud-based applications prior to deployment
US9652211B2 (en) 2014-06-26 2017-05-16 Vmware, Inc. Policy management of deployment plans
US11228637B2 (en) 2014-06-26 2022-01-18 Vmware, Inc. Cloud computing abstraction layer for integrating mobile platforms
US9639691B2 (en) 2014-06-26 2017-05-02 Vmware, Inc. Dynamic database and API-accessible credentials data store
US10324743B2 (en) 2014-08-27 2019-06-18 Red Hat Israel, Ltd. Announcing virtual machine migration
CN104239122B (zh) * 2014-09-04 2018-05-11 华为技术有限公司 一种虚拟机迁移方法和装置
US9342338B2 (en) 2014-10-15 2016-05-17 Red Hat, Inc. Application migration in a process virtual machine environment
US9348655B1 (en) 2014-11-18 2016-05-24 Red Hat Israel, Ltd. Migrating a VM in response to an access attempt by the VM to a shared memory page that has been migrated
WO2016121882A1 (ja) * 2015-01-29 2016-08-04 日本電気株式会社 データファイル登録管理システム、方法、管理装置とプログラム
WO2016157822A1 (ja) * 2015-03-31 2016-10-06 日本電気株式会社 制御装置、通信システム、制御方法及び記録媒体
US10228969B1 (en) * 2015-06-25 2019-03-12 Amazon Technologies, Inc. Optimistic locking in virtual machine instance migration
US10970110B1 (en) 2015-06-25 2021-04-06 Amazon Technologies, Inc. Managed orchestration of virtual machine instance migration
CN106817433B (zh) * 2015-11-30 2019-08-09 中国电信股份有限公司 用于层次化分配ip地址块的方法、装置和系统
US9933957B1 (en) * 2015-12-30 2018-04-03 EMC IP Holding Company LLC Non-disruptively migrating virtual disks using virtualization appliance
CN107040441B (zh) * 2016-02-04 2020-01-21 华为技术有限公司 跨数据中心的数据传输方法、装置及系统
CN107179957B (zh) * 2016-03-10 2020-08-25 阿里巴巴集团控股有限公司 物理机故障分类处理方法、装置和虚拟机恢复方法、系统
US10108328B2 (en) 2016-05-20 2018-10-23 Vmware, Inc. Method for linking selectable parameters within a graphical user interface
US10157071B2 (en) * 2016-08-30 2018-12-18 Vmware, Inc. Method for migrating a virtual machine between a local virtualization infrastructure and a cloud-based virtualization infrastructure
US10108447B2 (en) 2016-08-30 2018-10-23 Vmware, Inc. Method for connecting a local virtualization infrastructure with a cloud-based virtualization infrastructure
KR101899298B1 (ko) * 2016-12-12 2018-09-17 (주)아이엔소프트 클라우드 및 가상화 기반의 프로세스 자동화 처리 시스템 및 그 처리 방법
CN109992424B (zh) * 2017-12-29 2024-04-02 北京华胜天成科技股份有限公司 本地网络的业务关联关系的确定方法及装置
CN110633127A (zh) * 2018-06-25 2019-12-31 华为技术有限公司 一种数据处理方法及相关设备
CN111338941B (zh) * 2020-02-21 2024-02-20 北京金堤科技有限公司 信息处理方法和装置、电子设备和存储介质
CN114143252B (zh) * 2021-11-29 2022-11-01 中电信数智科技有限公司 一种虚拟机迁移时组播流量不间断的实现方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8042108B2 (en) 2006-03-18 2011-10-18 International Business Machines Corporation Virtual machine migration between servers
US8468230B2 (en) * 2007-10-18 2013-06-18 Fujitsu Limited Method, apparatus and recording medium for migrating a virtual machine
US8117495B2 (en) * 2007-11-26 2012-02-14 Stratus Technologies Bermuda Ltd Systems and methods of high availability cluster environment failover protection
US9842004B2 (en) * 2008-08-22 2017-12-12 Red Hat, Inc. Adjusting resource usage for cloud-based networks
JP5079665B2 (ja) * 2008-11-18 2012-11-21 Kddi株式会社 仮想計算機送信方法、システム、管理装置及びプログラム
US8316125B2 (en) * 2009-08-31 2012-11-20 Red Hat, Inc. Methods and systems for automated migration of cloud processes to external clouds
US8875128B2 (en) * 2009-11-30 2014-10-28 Red Hat Israel, Ltd. Controlling permissions in virtualization environment using hierarchical labeling
JP5454135B2 (ja) * 2009-12-25 2014-03-26 富士通株式会社 仮想マシン移動制御装置、仮想マシン移動制御方法および仮想マシン移動制御プログラム
JP2011198299A (ja) * 2010-03-23 2011-10-06 Fujitsu Ltd プログラム、コンピュータ、通信装置および通信制御システム
JP5190084B2 (ja) * 2010-03-30 2013-04-24 株式会社日立製作所 仮想マシンのマイグレーション方法およびシステム
US20110307716A1 (en) * 2010-06-10 2011-12-15 Broadcom Corporation Global control policy manager
JP5652475B2 (ja) * 2010-09-09 2015-01-14 日本電気株式会社 ネットワークシステム、及びネットワーク管理方法
CN102073462B (zh) * 2010-11-29 2013-04-17 华为技术有限公司 虚拟存储迁移方法、系统和虚拟机监控器
US9292329B2 (en) * 2011-02-10 2016-03-22 Microsoft Technology Licensing, Llc Virtual switch interceptor

Also Published As

Publication number Publication date
US20140019621A1 (en) 2014-01-16
CN103544043A (zh) 2014-01-29
JP2014021979A (ja) 2014-02-03
EP2687983A1 (en) 2014-01-22
EP2687982A1 (en) 2014-01-22

Similar Documents

Publication Publication Date Title
JP5608794B2 (ja) 複数の仮想マシンを管理するための階層システム、方法、及びコンピュータプログラム
CN112470436B (zh) 用于提供多云连通性的系统、方法、以及计算机可读介质
US11237858B2 (en) Software-defined data center, and deployment method for service cluster therein
EP3229405B1 (en) Software defined data center and scheduling and traffic-monitoring method for service cluster therein
US20230300105A1 (en) Techniques for managing software defined networking controller in-band communications in a data center network
EP2982097B1 (en) Method and apparatus for exchanging ip packets among network layer 2 peers
US9477506B2 (en) Dynamic virtual machines migration over information centric networks
CN108347493B (zh) 混合云管理方法、装置和计算设备
CN109937401B (zh) 经由业务旁路进行的负载均衡虚拟机的实时迁移
Mann et al. CrossRoads: Seamless VM mobility across data centers through software defined networking
US9461943B2 (en) Network assisted virtual machine mobility
JP5953421B2 (ja) 仮想サーバおよび非仮想サーバ混在環境におけるテナントネットワーク構成の管理方法
US9800496B2 (en) Data center networks
JP6574304B2 (ja) 仮想ネットワーク管理
WO2015150756A1 (en) Data center networks
WO2014000292A1 (zh) 跨数据中心的虚拟机迁移方法、服务控制网关及系统
US9203753B2 (en) Traffic optimization using network address and port translation in a computer cluster
JP2014049773A (ja) ネットワークシステム及び仮想ノードのマイグレーション方法
CN105556929A (zh) 在云计算系统中运行应用的网络元件和方法
US20190132278A1 (en) Method and system for host discovery and tracking in a network
US9438475B1 (en) Supporting relay functionality with a distributed layer 3 gateway
US9763135B1 (en) Load balancing with mobile resources
KR102567139B1 (ko) 엣지 플랫폼 관리장치 및 엣지 플랫폼 관리장치의 동작 방법
WO2016110897A1 (ja) 通信システム、通信装置、通信方法および制御プログラム
Shen et al. S-fabric: towards scalable and incremental SDN deployment in data centers

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140522

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140610

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140718

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140805

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140901

R150 Certificate of patent or registration of utility model

Ref document number: 5608794

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250