(57)【特許請求の範囲】
【請求項１】
少なくとも２つの物理マシン（１００ａ、１００ｂ）を有する第１のグループに接続可能であり、少なくとも２つの物理マシンを有する前記第１のグループ内の１つの物理マシンにある第１の仮想マシンの仮想マシン識別情報と、該１つの物理マシンの物理マシン識別情報とを含むデータセット（１１０ａ、１１０ｂ）を記憶する第１のローカルマイグレーションアンカポイント（１１０）と、
少なくとも２つの物理マシン（１２０ａ、１２０ｂ）を有する第２のグループに接続可能であり、少なくとも２つの物理マシンを有する前記第２のグループ内の１つの物理マシンにある第２の仮想マシンの仮想マシン識別情報と、該１つの物理マシンの物理マシン識別情報とを含むデータセット（１３０ａ、１３０ｂ）を記憶する第２のローカルマイグレーションアンカポイント（１３０）と、
前記第１のローカルマイグレーションアンカポイントと前記第２のローカルマイグレーションアンカポイントとに接続され、前記第１の仮想マシンによって実行されるアプリケーションに関する第１のサービス識別情報と、前記第１の仮想マシンに関連付けられた識別情報と、前記第１のローカルマイグレーションアンカポイントの識別情報とを第１のデータレコード（１４０ａ）として記憶するとともに、前記第２の仮想マシンによって実行されるアプリケーションの第２のサービス識別情報と、前記第２の仮想マシンに関連付けられた識別情報と、前記第２のローカルマイグレーションアンカポイントの識別情報とを第２のデータレコード（１４０ｂ）として記憶するグローバルマイグレーションアンカポイント（１４０）と、
前記第１のサービス識別情報と、前記第１の仮想マシンの識別情報と、前記第１のローカルマイグレーションアンカポイントの識別情報とを含む、前記第１の仮想マシンに関する第１のデータエントリ（１５０ａ）を記憶するとともに、前記第２のサービス識別情報と、前記第２の仮想マシンの識別情報と、前記第２の仮想マシンが位置づけられている物理マシンが接続することのできる前記第２のローカルマイグレーションアンカポイントの識別情報とを含む第２のデータエントリ（１５０ｂ）を有する仮想マシンロケーションレジスタ（１５０）と、
中央ネットワーク管理システム（１６０）と、
物理マシンの各グループのグループマネージャ（１０１、１２１）と
を備え、
前記中央ネットワーク管理システム（１６０）は、物理マシンの前記第１のグループから物理マシンの前記第２のグループ内の第１の物理マシンへと前記第１の仮想マシンをマイグレーションさせる旨の決定を受信する（３１５）か又は該決定を行うものであり、
前記第２のローカルマイグレーションアンカポイントは、前記第１の仮想マシンが物理マシンの前記第２のグループ内の前記第１の物理マシンにあるという情報を、物理マシンの前記第２のグループ内の前記第１の物理マシンから受信する（３２０）ものであり、
前記第２のローカルマイグレーションアンカポイントが、前記第１の仮想マシンが物理マシンの前記第２のグループにあるというメッセージを前記グローバルマイグレーションアンカポイントに送信する（３２５）か、前記グローバルマイグレーションアンカポイントが、以前のローカルマイグレーションアンカポイントに関する情報を受信する前記仮想マシンロケーションレジスタにアクセスする（３３０）か、又は前記第２のローカルマイグレーションアンカポイントが、前記以前のローカルマイグレーションアンカポイントに関する情報を得るために、前記仮想マシンロケーションレジスタに対して、あるメッセージを送信（３３５）し、
前記第１のローカルマイグレーションアンカポイントは、前記第１の仮想マシンを対象としたデータメッセージを、該データメッセージの宛先エントリを前記第２のローカルマイグレーションアンカポイントとすることにより該第２のローカルマイグレーションアンカポイントへと送信する（３４０）ものである、複数の仮想マシンを管理するための階層システム。
【請求項２】
第３のローカルマイグレーションアンカポイントと第４のローカルマイグレーションアンカポイントとに接続された第２のグローバルマイグレーションアンカポイントを更に備え、
前記仮想マシンロケーションレジスタ（１５０）が更に、各データエントリにおいて、該データエントリにより特定されるローカルマイグレーションアンカポイントが接続しているグローバルマイグレーションアンカポイントのグローバルマイグレーションアンカポイント識別情報を記憶する、請求項１に記載の階層システム。
【請求項３】
前記グローバルマイグレーションアンカポイントは、前記サービス識別情報によって特定されるあるサービスについてのデータメッセージをあるクライアントから受信する（２００）ものであり、前記データメッセージは、前記クライアントを特定する送信元エントリと、前記グローバルマイグレーションアンカポイントを特定する宛先エントリとを有するものであり、
前記グローバルマイグレーションアンカポイントは、前記サービス識別情報を有する、記憶しているデータレコードに基づいて、前記送信元エントリが前記グローバルマイグレーションアンカポイントを特定するものとなり、かつ前記宛先エントリが前記ローカルマイグレーションアンカポイントと前記仮想マシンとを特定するものとなるように前記データメッセージを処理する（２０５）ものである、請求項１又は２に記載の階層システム。
【請求項４】
前記ローカルマイグレーションアンカポイントは、前記グローバルマイグレーションアンカポイントからデータメッセージを受信し（２１０）、該データメッセージが示す仮想マシン識別情報を含む、記憶しているデータセットに基づいて、前記データメッセージ内のローカルマイグレーションアンカポイント識別情報を物理マシン識別情報へと置き換える（２１５）ものである、請求項１〜３のいずれか１項に記載の階層システム。
【請求項５】
前記ローカルマイグレーションアンカポイントは、仮想マシン識別情報を送信元として含むとともにグローバルマイグレーションアンカポイントを宛先として含むデータメッセージ（８０６）を受信し、当該仮想マシンの識別情報を含むデータエントリにおいて特定されるグローバルマイグレーションアンカポイントに向けて前記データメッセージ（８０７）を転送するものである、請求項１〜４のいずれか１項に記載の階層システム。
【請求項６】
前記グローバルマイグレーションアンカポイントは、あるローカルマイグレーションアンカポイントからデータメッセージ（８０７）を受信するものであり、該データメッセージは、送信元として仮想マシン識別情報を有するとともに宛先として当該グローバルマイグレーションアンカポイントを有するものであり、
前記グローバルマイグレーションアンカポイントは、前記仮想マシンの識別情報を含むデータレコードに基づいて、前記データメッセージを処理し、前記宛先としての前記グローバルマイグレーションアンカポイントをクライアント識別情報へ置き換え、前記送信元としての前記仮想マシンを当該グローバルマイグレーションアンカポイントのグローバルマイグレーションアンカポイント識別情報へ置き換えるものである、請求項１〜５のいずれか１項に記載の階層システム。
【請求項７】
前記中央ネットワーク管理システム（１１００）は、前記第１のグループ内の第１の物理マシンから前記第１のグループ内の第２の物理マシンへと前記第１の仮想マシンをマイグレーションさせる要求を受信する（３００）ものであり、
前記第１のローカルマイグレーションアンカポイントは、前記決定に応じて前記グループマネージャ（１０２０、１１１０）から前記第２の物理マシンの識別情報を受信する（３０５）ものであり、
前記ローカルマイグレーションアンカポイントは、前記データセット内の前記第１の物理マシンの識別情報を前記第２の物理マシンの識別情報へと置き換える（３１０）ものである、請求項１に記載の階層システム。
【請求項８】
前記第１のローカルマイグレーションアンカポイント及び前記第２のローカルマイグレーションアンカポイントと、前記グローバルマイグレーションアンカポイントと、前記仮想マシンロケーションレジスタとのうちの少なくとも１つが、前記仮想マシンロケーションレジスタか、前記第１のローカルマイグレーションアンカポイント及び前記第２のローカルマイグレーションアンカポイントか、前記グローバルマイグレーションアンカポイントかにおけるデータが有効ではない場合にページング処理を行うものである、請求項１〜７のいずれか１項に記載の階層システム。
【請求項９】
前記仮想マシンロケーションレジスタと、前記グローバルマイグレーションアンカポイントと、前記第１のローカルマイグレーションアンカポイント及び前記第２のローカルマイグレーションアンカポイントとのうちの少なくとも１つが、仮想マシンが過去においてのみ登録されていた全てのローカルマイグレーションアンカポイントにページング処理を行うよう依頼するか、又は
前記仮想マシンロケーションレジスタが、前記グローバルマイグレーションアンカポイントにページング処理を行うよう依頼し、該グローバルマイグレーションアンカポイントが、当該グローバルマイグレーションアンカポイントに接続されているローカルマイグレーションアンカポイントにページング処理を行うよう依頼する、請求項８に記載の階層システム。
【請求項１０】
前記ローカルマイグレーションアンカポイントが、ある仮想マシンを特定したロケーション登録又は更新要求を、接続可能な物理マシンのグループ内の全ての物理マシンへ送信し（３５０）、
前記ローカルマイグレーションアンカポイントは、前記ある仮想マシンを有している物理マシンから返答を受信し（３５５）、
前記ローカルマイグレーションアンカポイントは、前記仮想マシンロケーションレジスタ、あるいはこれに加えて前記グローバルマイグレーションアンカポイントに対し、前記ある仮想マシンが存在している物理マシンを通知する（３６０）ものである、請求項１〜９のいずれか１項に記載の階層システム。
【請求項１１】
各物理マシンが、前記第１のローカルマイグレーションアンカポイントと通信するように構成されているマイグレーション管理制御機能と仮想マシン機能とを有するものである、物理マシンの前記第１のグループを更に備えている請求項１〜１０のいずれか１項に記載の階層システム。
【請求項１２】
前記第１のローカルマイグレーションアンカポイントと前記第２のローカルマイグレーションアンカポイントとがそれぞれ満了期間を示すタイマ（１１０ｃ、１３０ｃ）を有し、
前記物理マシン又は前記仮想マシンは、前記満了期間内にロケーション登録メッセージを前記ローカルマイグレーションアンカポイントに送信し、対応するデータセットが更なる期間にわたり延長されるか、又は、
前記ロケーション登録メッセージを前記満了期間内に受信しなかった場合には、前記第１のローカルマイグレーションアンカポイントと前記第２のローカルマイグレーションアンカポイントとが、ある仮想マシンを特定した前記対応するデータセットを削除する、請求項１〜１１のいずれか１項に記載の階層システム。
【請求項１３】
前記グローバルマイグレーションアンカポイントが、あるクライアントから受信したサービス識別情報を仮想マシンのＩＰアドレスへと変換する、請求項１〜１２のいずれか１項に記載の階層システム。
【請求項１４】
少なくとも２つのグローバルマイグレーションアンカポイントを備え、
第１のグローバルマイグレーションアンカポイントが、サービス識別情報を有するクライアント要求を受信し（３７０）、
前記第１のグローバルマイグレーションアンカポイントは、前記サービス識別情報に関してデータレコードを調べ（３７５）、
前記第１のグローバルマイグレーションアンカポイントが記憶しているデータレコードにおいて前記サービス識別情報が見つからない場合には、前記第１のグローバルマイグレーションアンカポイントは、前記サービス識別情報と関連付けられているグローバルマイグレーションアンカポイントの識別情報を前記仮想マシンロケーションレジスタに要求し（３８０）、
前記グローバルマイグレーションアンカポイントは、前記サービス識別情報をデータレコード内に有する第２のグローバルマイグレーションアンカポイントの識別情報を受信し（３８５）、
前記第１のグローバルマイグレーションアンカポイントは、前記仮想マシンロケーションレジスタによって特定された前記第２のグローバルマイグレーションアンカポイントに対し、前記サービス識別情報によって特定されたサービスを要求しているクライアントを通知する（３９０）、請求項１〜１３のいずれか１項に記載の階層システム。
【請求項１５】
少なくとも２つの物理マシンを有する第１のグループ内の１つの物理マシンにある第１の仮想マシンの仮想マシン識別情報と、該１つの物理マシンの物理マシン識別情報とを含むデータセットを記憶する第１のローカルマイグレーションアンカポイント（１１０）を、少なくとも２つの物理マシンを有する前記第１のグループに接続するステップと、
少なくとも２つの物理マシンを有する第２のグループ内の１つの物理マシンにある第２の仮想マシンの仮想マシン識別情報と、該１つの物理マシンの物理マシン識別情報とを含むデータセットを記憶する第２のローカルマイグレーションアンカポイント（１３０）を、少なくとも２つの物理マシンを有する前記第２のグループに接続するステップと、
前記第１の仮想マシンによって実行されるアプリケーションに関する第１のサービス識別情報と、前記第１の仮想マシンに関連付けられた識別情報と、前記第１のローカルマイグレーションアンカポイントの識別情報とを第１のデータレコードとして記憶するとともに、前記第２の仮想マシンによって実行されるアプリケーションの第２のサービス識別情報と、前記第２の仮想マシンに関連付けられた識別情報と、前記第２のローカルマイグレーションアンカポイントの識別情報とを第２のデータレコードとして記憶するグローバルマイグレーションアンカポイント（１４０）を、前記第１のローカルマイグレーションアンカポイントと前記第２のローカルマイグレーションアンカポイントとに接続するステップと、
仮想マシンロケーションレジスタ（１５０）が、前記第１のサービス識別情報と、前記第１の仮想マシンの識別情報と、前記第１のローカルマイグレーションアンカポイントの識別情報とを含む、前記第１の仮想マシンに関する第１のデータエントリを記憶するとともに、前記第２のサービス識別情報と、前記第２の仮想マシンの識別情報と、前記第２の仮想マシンが置かれている物理マシンが接続することのできる前記第２のローカルマイグレーションアンカポイントの識別情報とを含む第２のデータエントリを有するステップと、
中央ネットワーク管理システム（１６０）が、物理マシンの前記第１のグループから物理マシンの前記第２のグループ内の第１の物理マシンへと前記第１の仮想マシンをマイグレーションさせる旨の決定を受信する（３１５）か又は該決定を行うステップと、
前記第２のローカルマイグレーションアンカポイントが、前記第１の仮想マシンが物理マシンの前記第２のグループ内の前記第１の物理マシンに置かれているという情報を、物理マシンの前記第２のグループ内の前記第１の物理マシンから受信する（３２０）ステップと、
前記第２のローカルマイグレーションアンカポイントが、前記第１の仮想マシンが物理マシンの前記第２のグループにあるというメッセージを前記グローバルマイグレーションアンカポイントに送信する（３２５）か、前記グローバルマイグレーションアンカポイントが、以前のローカルマイグレーションアンカポイントに関する情報を受信する前記仮想マシンロケーションレジスタにアクセスする（３３０）か、又は前記第２のローカルマイグレーションアンカポイントが、前記以前のローカルマイグレーションアンカポイントに関する情報を得るために、前記仮想マシンロケーションレジスタに対して、あるメッセージを送信する（３３５）ステップと、
前記第１のローカルマイグレーションアンカポイントが、前記第１の仮想マシンを対象としたデータメッセージを、該データメッセージの宛先エントリを前記第２のローカルマイグレーションアンカポイントとすることにより該第２のローカルマイグレーションアンカポイントへと送信する（３４０）ステップと
を含む、複数の仮想マシンを管理する方法。
【請求項１６】
請求項１５に記載の複数の仮想マシンを管理する方法をコンピュータに実行させるプログラムコードを含むコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はコンピュータシステムに関し、特に種々の物理マシン（physical machine）にある仮想マシン（virtual machine）の管理に関する。
【背景技術】
【０００２】
仮想化、仮想マシン、マイグレーション管理、クラウドコンピューティングは、ますます重要となってきている手段である。仮想マシンの管理は、特に、クラウドサービス、ネットワークベースのマイグレーション管理、災害管理、又はエネルギー節約の目的で有用であるとともに適用可能である。
【０００３】
基本的に、仮想マシンコンピューティングは、種々のマシンすなわち物理マシンにおいて特定のサービスを実行することを可能にする。物理マシンは、あるロケーションに置かれているコンピュータである。仮想マシンは、あるサービスを実行するためにインプリメントされるものであるが、ある物理マシンから別の物理マシンへと移行又は移動（マイグレーション）することができるように設計される。特にこのことは、仮想マシンをインプリメントするためにある物理マシンが提供する計算リソースをその仮想マシンが第１の期間において用いることができ、ある物理マシンから別の物理マシンへのマイグレーションの後は、それまでの物理マシンが提供する計算リソースを他のサービス用に自由に利用でき、仮想マシンは、新たな物理マシンの計算リソースを、新たなサービスの実行又は現在動作中のプロセスの継続のために利用するということを意味する。
【０００４】
ある物理マシンから別の物理マシンへの仮想マシンのマイグレーションは、セッション継続の観点で問題であり、仮想マシンのロケーションに関するネットワーク全体の更新に関しても問題である。特に、「クラウド」とも呼ばれる物理マシンのグループが幾つかあって別々に制御されている場合には、あるクラウドから別のクラウドへの仮想マシンのマイグレーションも難しい処理である。
【０００５】
レイヤ２仮想プライベートネットワーク（layer 2 virtual private network, Ｌ２ＶＰＮ）のワーキンググループが存在する。このワーキンググループは、プロバイダから提供されるレイヤ２仮想プライベートネットワークをサポートするための限られた数の解決策を規定し、特定することを担当する。クラウド内のマイグレーションの管理の場合、Ｌ２ＶＰＮが主に用いられる解決策である。Ｌ２ＶＰＮにおいては、レイヤ２スイッチは、仮想マシンがどのポートを通じて到達可能であるのかを記憶している。仮想マシンがある物理マシンから別の物理マシンに移動すると、その仮想マシン用のポートが変化する。しかし、現在のＬ２スイッチは学習機能を有しており、あるポートを通じて到着したパケットのＭＡＣアドレスを調べることができる。仮想マシンのＭＡＣアドレスはマイグレーションするまで変わらないため、Ｌ２スイッチは、仮想マシンから別のポートを通じて到着したパケットをスヌーピングする（snoop）ことにより、その仮想マシンを特定することができる。特に、Ｌ２スイッチは、仮想マシンをそのＭＡＣアドレスによって特定するとともに、その仮想マシンがどのポートを通じて到達可能であるのかを特定する。しかし、現在のクラウドの非常に大規模な展開を考慮すると、Ｌ２ＶＰＮは、拡張性（scalablity）という点でみると全く拡張させることができない。Ｌ２ＶＰＮは手動で設定され、ＶＬＡＮタグは１２バイトの長さしかないゆえＶＬＡＮを４０９６個しか作成できないからである。加えて、この解決策は、クラウド間マイグレーションのシナリオに適用することもできない。
【０００６】
この研究分野における別の主な解決策は、オープンフロー（Open Flow）に基づいた解決策である。クラウド内のシナリオの場合、この解決策はＬ２ＶＰＮと同じである。特に、マイグレーションするまでフローをある仮想マシンへと再ルーティングするのは、オープンフローコントローラ（Open Flow controller）である。仮想マシンのマイグレーションは、オープンフローコントローラによって監視することができる。マイグレーションの後、オープンフローコントローラは、オープンフロースイッチの転送用テーブルを書き換えて、そのスイッチが適切なポートを通じてパケットを転送することができるようにする。しかし、この解決策も、クラウド間マイグレーションのシナリオには適用できない。
【０００７】
特許文献１は、サーバ間の仮想マシンマイグレーションを開示している。仮想マシンのマイグレーションは、２つのサーバ間で行われる。第１のサーバでは、仮想マシンに関係した全てのファイルが記憶されているボリュームがディスマウントされる。第２のサーバでは、仮想マシンに関係した全てのファイルが記憶されている該ボリュームがマウントされ、第２のサーバは、仮想マシンをホストすることができるようになる。このようにして、第１のサーバから第２のサーバに全てのファイルをコピーする必要はなく、仮想マシンのマイグレーションを行うことができる。仮想マシンに関係したファイルは、ストレージエリアネットワーク（storage-area network, ＳＡＮ）に記憶されている。しかし、この解決策によりクラウド間マイグレーションをサポートするのは、ある１つのクラウドのＳＡＮに対し別のクラウドがアクセスできることが想起されるため現実的ではない。もしこれがインプリメントされたとしても、仮想マシンの新たなロケーションへのルートを変更することに対処しなければならない。
【０００８】
特許文献２は、各データセンタとＷＡＮとの協調により、仮想マシンのマイグレーションが、その処理が中断することなく、効果的な電力節約の実施、負荷分散、又は障害対応処理が可能となるように行われることを開示している。ＷＡＮと別のネットワークとの境界ポイントに置かれている各ノードには、仮想マシンのマイグレーションに起因したアドレス重複を回避するために動的に設定可能なネットワークアドレス変換（network address translation, ＮＡＴ）機能が設けられる。あるいは、ＷＡＮ内の各ノードにネットワーク仮想化機能を設け、マイグレーションの前にある仮想マシンを含めるためにデータセンタに接続された仮想ネットワークと、マイグレーションの後にその仮想マシンを含めるためにデータセンタに接続された仮想ネットワークとがインプリメントされ、それによって、同一アドレスの共存した提供（coexistent provision）が可能となる。したがって、仮想マシンのマイグレーション時にネットワークルーティング情報を変更する必要性をなくすことができ、マイグレーションのための設定変更を迅速に行うことができる。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】米国特許第８，０４２，１０８号公報
【特許文献２】米国特許出願公開第２０１１／０１６１４９１号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
本発明の目的は、複数の仮想マシンを管理するための改善された階層のコンセプトを提供することにある。
【課題を解決するための手段】
【００１１】
上記目的は、請求項１に記載の複数の仮想マシンを管理するための階層システムと、請求項１５に記載の複数の仮想マシンを管理する方法と、請求項１６に記載のコンピュータプログラムとのいずれかによって達成される。
【００１２】
本発明は、複数の仮想マシンを管理するための階層システムに関する。この階層システムは、少なくとも２つの物理マシンを有する第１のグループに接続可能であり、少なくとも２つの物理マシンを有する前記第１のグループ内の１つの物理マシンにある第１の仮想マシンの仮想マシン識別情報と、該１つの物理マシンの物理マシン識別情報とを含むデータセットを記憶する第１のローカルマイグレーションアンカポイント又はローカルモビリティアンカポイントと、少なくとも２つの物理マシンを有する第２のグループに接続可能であり、少なくとも２つの物理マシンを有する前記第２のグループ内の１つの物理マシンにある第２の仮想マシンの仮想マシン識別情報と、該１つの物理マシンの物理マシン識別情報とを含むデータセットを記憶する第２のローカルマイグレーションアンカポイント又はローカルモビリティアンカポイントと、前記第１のローカルマイグレーションアンカポイントと前記第２のローカルマイグレーションアンカポイントとに接続され、前記第１の仮想マシンによって実行されるアプリケーションに関する第１のサービス識別情報と、前記第１の仮想マシンに関連付けられた識別情報と、前記第１のローカルマイグレーションアンカポイントの識別情報とを第１のデータレコードとして記憶するとともに、前記第２の仮想マシンによって実行されるアプリケーションのサービス識別情報と、前記第２の仮想マシンに関連付けられた識別情報と、前記第２のローカルマイグレーションアンカポイントの識別情報とを第２のデータレコードとして記憶するグローバルマイグレーションアンカポイント又はグローバルモビリティアンカポイントと、前記第１のサービス識別情報と、前記第１の仮想マシンの識別情報と、前記第１のローカルマイグレーションアンカポイントの識別情報とを含む、前記第１の仮想マシンに関する第１のデータエントリを記憶するとともに、前記第２のサービス識別情報と、前記第２の仮想マシンの識別情報と、前記第２の仮想マシンが置かれている物理マシンが接続することのできる前記第２のローカルマイグレーションアンカポイントの識別情報とを含む第２のデータエントリを有する仮想マシンロケーションレジスタとを備えている。
【００１３】
本発明の別の態様は、これに対応する方法及び対応するコンピュータプログラムに関係している。
【００１４】
本発明は、セッション継続の観点から及び仮想マシンのロケーションに関してネットワーク全体を更新するという問題からも、ある物理マシンから別の物理マシンへの仮想マシンのマイグレーションを実行する問題に対処するものである。特に、本発明は、仮想マシンが物理マシンのあるグループすなわちクラウドから物理マシンの別のグループすなわちクラウドへとマイグレーションする状況にも有用である。
【００１５】
本発明の実施の形態は、マイグレーション管理のための３層（3-tier）アーキテクチャに関する。１つのクラウドは、１つのローカルマイグレーションアンカポイント（local migration anchor point, ＬＰ）によって管理され、複数のＬＰは、グローバルマイグレーションアンカポイント（global migration anchor point, ＧＰ）によって管理される。さらに、仮想マシンロケーションレジストラ（virtual machine location registrar, ＶＭＬＲ）があり、これは、仮想マシンのロケーションを示すデータベースを維持するものである。すなわち、仮想マシンは、ＬＰ及びＧＰを通じて到達可能である。特に、仮想マシンロケーションレジスタすなわち仮想マシンロケーションレジストラは、データベース内にデータエントリを有している。マイグレーションの際又はその後に、仮想マシンのロケーション情報は、関連するＬＰ、ＧＰ、及びＶＭＬＲへのシグナリングを通じて更新されるため、仮想マシンのロケーション情報は常に利用可能である。好ましい実施の形態は、正確なデータパスのセットアップ及び正確な変更手順に関する。
【００１６】
本発明の実施の形態は、システムが技術に依存しないという利点を有する。本発明は、例えば、オープンフロー（Open Flow）において用いられるような特定のルーティング、転送方法を前提としていない。さらに、本発明は、ある特定の実施の形態に関して管理が容易である。なぜならば、少数（２０個未満等）のグローバルマイグレーションアンカポイント（ＧＰ）しか必要としないか、又は必要でありかつ更新する必要があるＧＰは１つでもよい。このシステムは、クラウド内及びクラウド間のマイグレーションの管理を同時にサポートすることができるため、２つの別々のマイグレーション管理方式は必ずしも必要ではない。
【００１７】
さらに、実施の形態は、セルラネットワークに対して親和性を有する。なぜならば、アーキテクチャ及びマイグレーション（マイグレーション管理）の手順が、高いレベルにおいてではあるが、セルラネットワーキングの手法に類似しているからである。したがって、セルラネットワークの手法を実施する際に得られた経験は、複数の仮想マシンを管理するための階層システムを実施する際にも使用及び適用することができる。本発明によって、自然災害の前、その間、又はその後のネットワークの再構成が可能となる。仮想マシンをより安全なロケーションにマイグレーションすることができ、これによって、サービス継続性が確保されるため、顧客の満足が確保される。仮想マシンをある特定のロケーションにマイグレーションし、残りのもの、すなわち不要なリソースをシャットダウンする等のネットワーク再構成が、例えば夜間において容易に行うことができる。これによって、エネルギー消費も削減され、グリーンネットワーク化が実現されることになる。以下の説明において、物理マシンの１つのグループをクラウドとも呼び、このクラウドは、ウェブサーバ、ビデオサーバ等の、仮想マシンベースのアプリケーションサービスを提供する単一の管理エンティティとして表現されるように編成された複数の物理マシンとして見ることもできる。
【００１８】
本発明とは対照的に、特許文献２の構想は集中型方式である。本発明は分散型方式である。実施の形態では、仮想マシンは自らを、関連したエンティティ、例えば、ローカルモビリティアンカポイント、グローバルモビリティアンカポイントに登録する。ルートをＶＭの新たなロケーションへと更新又は変更する中央エンティティは存在しない。
【００１９】
本発明の方式による中央ネットワーク管理システムは、マイグレーションそのものを管理せず、ルートをＶＭの新たなロケーションに変更することもしない。中央ネットワーク管理システムは、クラウド又はＶＭに、リソースが利用可能な別のクラウドにマイグレーションするように通知するだけである。それ以外のものは、本発明の実施の形態では自律的に行われる。
【００２０】
上記従来技術の文献とは異なり、実施の形態は、ＷＡＮ内の各ノードを仮想化しない。その仮想化には非常に多くのコストを要する。実施の形態によれば、限られた数のノードでのみ、カプセル化、すなわちアンカポイントをサポートすればよい。それで十分である。
【００２１】
さらに、ＬＡＮ又はサブネットのルーティング情報をＷＡＮ内に広めることはおよそあり得ず、拡張性のあるシナリオでないと言うべきである。この情報をどこまで広めなければならないかという問題が依然として残る。ＷＡＮには数百ものルータあるいはスイッチがある。したがって、本発明の実施の形態では、数個のアンカポイントだけが定められる。
【００２２】
実施の形態によれば、バッファリングを行わない。音声電話のようなリアルタイムのアプリケーションの場合は、バッファリングは何ら利点をもたらさない。
【００２３】
さらに、従来技術の文献によれば、ＶＭのマイグレーションは、マネージャにより中央で制御される。これは、拡張性を欠いている。これは、ＶＭのマイグレーションの数が多くなり、例えば数千になると、拡張できなくなる。これとは対照的に、実施の形態は、自己管理されるとともに分散されたＶＭのマイグレーションを有する。
【００２４】
従来技術では、切換え（changeover）の命令が、ＶＭのロケーションの変更をノードに知らせる。これも、同様に集中型の方法である。マイグレーションの数に応じて、同じ数のノードに知らせなければならない。これも同様に拡張性の問題をもたらす。
【００２５】
さらに、影響を受けるノードは、送信元クラウド及び宛先クラウドの数に等しい。これは、拡張性の欠如を引き起こす。クラウドの数が増加するにつれて、影響を受けるノードの数も増加する。その一方で、本発明の実施の形態では、ローカルモビリティアンカポイントの数が、クラウド数に１つのグローバルモビリティアンカポイントを加えた数に等しいことが好ましい。その数は、上記従来技術の文献において必要とされる数の半分である。
【００２６】
実施の形態では、ＶＭの以前のロケーションに対しＶＭの新たなロケーションが通知される結果、パケットを新たなロケーションに転送することができる。さらに、以前のロケーションに向かうパケットを新たなロケーションに転送することができるようなカプセル化方式が好ましい。カプセル化とは、ネットワークアドレス変換（network address translation, ＮＡＴ）を実行することではない。
【００２７】
全体的には、各セッションについて、上記従来技術の文献におけるネットワークアドレス変換の回数は２（クライアント側で１つとＶＭ側で１つ）である。他方、本発明の実施の形態では、ネットワークアドレス変換は、グローバルモビリティアンカポイントでしか実行されない。宛先アドレス（すなわちＶＭのアドレス）は置き換えられない。その代わり、アドレスは、ＶＭに到達するまで、ローカルモビリティアンカポイント等によりカプセル化される。
【００２８】
以下、添付図面を参照して本発明の好ましい実施形態を説明する。
【図面の簡単な説明】
【００２９】
【図１】複数の仮想マシンを管理するための階層システムの一実施形態のブロック図である。
【図２ａ】グローバルマイグレーションアンカポイントによって実行される処理のフローチャートである。
【図２ｂ】ローカルマイグレーションアンカポイントによって実行される処理のフローチャートである。
【図３ａ】内部マイグレーション用に実行されるプロセスを示すフローチャートである。
【図３ｂ】クラウド間マイグレーションにおいて行われる処理のフローチャートである。
【図３ｃ】ページングプロセスの際に行われる処理を示す説明図である。
【図３ｄ】複数のグローバルマイグレーションアンカポイントが存在する場合に行われるプロセスを示す説明図である。
【図４】本発明の利用のシナリオのための対象となる構成を示す説明図である。
【図５】セルラネットワークのマイグレーション管理アーキテクチャと比較した本発明のシステム及び方法の概要を示す説明図である。
【図６】詳細な初期化手順を示す説明図である。
【図７】サービス発見及びセッション確立の詳細な手順を示す説明図である。
【図８】セッション確立後のデータパスを示す説明図である。
【図９ａ】開始モードにおけるマイグレーションサポート及びハンドオーバ手順を示す説明図である。
【図９ｂ】クラウド内マイグレーション用のマイグレーションサポート及びハンドオーバ手順を示す説明図である。
【図９ｃ】クラウド間マイグレーション用のマイグレーションサポート及びハンドオーバ手順を示す説明図である。
【図９ｄ】クラウド間マイグレーションの最終状態を示す説明図である。
【図１０】ロケーション更新処理のフローチャートである。
【図１１】ネットワーク構成プラットフォームを有する高レベルの説明図である。
【図１２】ロケーション登録及び更新処理を示す説明図である。
【発明を実施するための形態】
【００３０】
実施形態を詳細に説明する前に、仮想マシン技術に関係する幾つかの基本的事項を説明する。１つの手順は、仮想マシンのインスタンス作成（instantiation）である。まず、ハイパーバイザ（hypervisor）へのログインが行われ、次に発行コマンドが与えられる。この発行コマンドは、ある仮想マシンのインスタンスが作成されるべきということを意味し、その仮想マシンには、ある識別情報（ＩＤ）が与えられる。さらに、１２８Ｍｂｐｓ等のあるメモリが定められる。さらに、例えば１つ以上のコアを有するＣＰＵが定められ、ｗ．ｘ．ｙ．ｚといったＩＰアドレスが与えられる。このデータは、本例では、あるハードウェア又は物理マシン上に仮想マシンのインスタンスを作成するため、すなわちインプリメントするために必要となる。仮想マシンの特定の実施態様は、本発明の範囲外である。幾つかの実施態様の例は、ＸＥＮ、ＶＭＷａｒｅ、ＫＶＭ等である。
【００３１】
仮想マシンのマイグレーションにおいては、このインプリメントされた仮想マシンを第１の物理サーバすなわち物理マシンＡから第２の物理サーバすなわち物理マシンＢへとマイグレーションする必要がある。物理サーバＡ上で事前にインスタンスが作成されている仮想マシンは、その仮想マシン用に定められたリソースを用いてあるセッションを実行する。通常、仮想マシンのマイグレーションは、第２の物理サーバＢ上で同じ仮想マシンのインスタンスを作成し、物理サーバＡから物理サーバＢへとメモリのコピーを開始することによって行われる。
【００３２】
次に、仮想マシンが、実際に物理サーバＡから移動して物理サーバＢに置か（place）れ、続いて、セッションが物理サーバＢ上で実行され、その仮想マシンにより用いられていた物理サーバＡ上のリソースが、このとき開放される。しかし、これは、１つのクラウド内などの１つの管理ドメイン内でしか実行できない。
【００３３】
続いて、図４について説明する。図４は、例えば日本のコア伝送ネットワークといったコア伝送ネットワーク４００を示している。さらに、インターネットが、１つのクラウド４０２として示され、日本の都市である大阪及び仙台用の個々のノードクラウド４０４、４０６も同様に示されている。
【００３４】
さらに、日本の首都である東京用の２つのサービスクラウドが、符号４０８及び４１０として示され、日本の首都用の３つのノードクラウドが、符号４１２、４１４、４１６として示されている。さらに、エリアＡ及びエリアＢといった２つのエリアが、符号４１８及び４２０として示されている。基本的に、本発明の構想は、固定電話が可動性を持つ（mobile）ようになれば、固定サーバとすることができるという点に基づいている。このような手順の使用事例は災害管理である。この目的のために、例えば、サービスクラウド東京４０８上に置かれているアプリケーションを、サービスクラウド大阪４１０へとマイグレーションすることができる。別の使用事例はメンテナンスである。この目的のために、例えば、１つのアプリケーションを符号４１２に示したノードクラウド東京１からノードクラウド東京３へとマイグレーションすることができる。他の手順は、例えば、ノードクラウド東京２（符号４１４）から符号４１６へとアプリケーションを移動させることとすることができる。さらに別の使用事例は、エネルギー節約である。特に災害管理のためには、マイグレーション時間が１分未満であることが求められる。
【００３５】
地理的に分散したクラウドシステムでは、クラウド内マイグレーション（マイクロマイグレーション）の管理及びクラウド間マイグレーション（マクロマイグレーション）の管理が有用となる。課題は、仮想化技術の普及により、仮想マシンがもはやいかなる物理的ロケーションにも結び付けられていないということである。仮想マシンを完全に可動性のあるものとするためには、これらの課題は特に、シームレスなセッションマイグレーションと、マイグレーション後の仮想マシンの発見と、ルート最適化、すなわちコア伝送ネットワークを通じてあるクラウドに向かい、次いで、ある仮想マシン又は（その仮想マシンが動作している）物理マシンへと向かう通信ルートの最適化とに関係する。
【００３６】
本発明の基本的構想を図５に具体的に示している。本発明の構想に基づく構造を図５の右側に示している。同図では、物理マシンの第１のグループ１００が、ローカルマイグレーションアンカポイント１１０へと接続され、物理マシンの第２のグループ１２０が、第２のマイグレーションアンカポイント１３０へと接続されている。さらに、ローカルマイグレーションアンカポイント１１０、１３０の双方は、グローバルマイグレーションアンカポイント１４０に接続されている一方で、さらに仮想マシンロケーションレジスタ１５０とも通信できるように接続されている。グローバルマイグレーションアンカポイント１４０はさらに、仮想マシンロケーションレジスタ（virtual machine location register, ＶＭＬＲ）１５０への通信接続を有している。続いて、図１を詳細に説明する。図１は、複数の仮想マシンを管理するための階層システムを示している。
【００３７】
本システムは、少なくとも２つの別々の物理マシン１００ａ、１００ｂ、１００ｃを有する第１のグループに接続可能な第１のローカルマイグレーションアンカポイント１１０を有している。ローカルマイグレーションアンカポイント１１０は、別々のデータセット１１０ａ、１１０ｂを記憶するものである。各データセットは、物理マシン１００ｂすなわちＰＭ２に置かれているような、少なくとも２つの物理マシンを有する第１のグループ内のある物理マシンに置かれた（located）ＶＭ１等の第１の仮想マシンの仮想マシン識別情報と、その物理マシンすなわちＰＭ２の物理マシン識別情報とを含んでいる。これと並行して、符号１２０ａ、１２０ｂ、１２０ｃといった少なくとも２つの物理マシンを有する第２のグループに接続可能な第２のローカルマイグレーションアンカポイント１３０は、対応するデータセット１３０ａ、１３０ｂを記憶するものである。各データセット１３０ａ、１３０ｂは同様に、少なくとも２つの物理マシンを有する第２のグループ内のある物理マシンに置かれた仮想マシンの仮想マシン識別情報と、これに対応する上記物理マシンの物理マシン識別情報とを含んでいる。具体的には、仮想マシンｎが、物理マシン識別情報ＰＭ４を有する物理マシン１２０ｃに置かれている場合には、データセットは、仮想マシンｎが置かれている物理マシンのＩＤであるＰＭ４と関連付けられたＶＭ  ＩＤであるＶＭｎを含むことになる。一例として、別の仮想マシンＶＭ（ｎ＋１）が、物理マシンＩＤとしてＰＭ５を有する物理マシン１２０ｂに置かれると、第２のデータセット１３０ｂは、仮想マシンＶＭ（ｎ＋１）というＩＤと、それに関連する物理マシンＰＭ５というＩＤとを互いに関連付けて有することになる。当然のことながら、物理マシンは、さらに多くの仮想マシンを追加的にホストすることができる。この場合、各仮想マシンは、特定の物理マシンに置かれた各仮想マシンに対して同一の物理マシンＩＤを含んだデータセットを有する。
【００３８】
さらに、ＧＰ１として示されているグローバルマイグレーションアンカポイント１４０は、第１の接続ライン１４１ａを通じて第１のローカルマイグレーションアンカポイントＬＰ１に接続され、別の接続ライン１４１ｂを通じて第２のローカルマイグレーションアンカポイントＬＰ２に接続されている。
【００３９】
グローバルマイグレーションアンカポイントＧＰ１は、第１の仮想マシンによって実行されるアプリケーションに関する第１のサービス識別情報をデータレコードに記憶する。この第１のサービス識別情報は、データレコード１４０ａにおいてはＩＤ１として示しており、第２のデータレコード１４０ｂにおいてはＩＤ２として示している。さらに、データレコード１４０ａは、第１の仮想マシンＶＭ１に関連付けられた識別情報と、第１のローカルマイグレーションアンカポイントＬＰ１の識別情報とを含んでいる。さらに、第２のデータレコード１４０ｂは、物理ＩＤとしてＰＭ４を有する物理マシン１２０ｃにおいてＶＭｎ等の第２の仮想マシンによって実行されるアプリケーションのサービス識別情報ＩＤ２を有している。その一方で、本発明は階層的な２層構造を有するため、グローバルマイグレーションアンカポイントのデータレコードにおいて物理マシンＩＤは必要とされない。
【００４０】
仮想マシンロケーションレジスタは、ハッチング線１５１ａ及び１５１ｂによって示しているようにローカルマイグレーションアンカポイントに接続することができるが、必ずしもそうとも限らない。その一方で、ＶＭＬＲ１５０は、接続ライン１５１ｃを通じてグローバルマイグレーションアンカポイントに接続されるとともに、接続ライン１５１ｄを通じてＧＰ２等の他の任意のグローバルマイグレーションアンカポイントに接続される。
【００４１】
ＶＭＬＲは、当該ＶＭＬＲに接続されたグローバルマイグレーションアンカポイントと関連付けられたいずれかの物理マシンにおいて動作する各仮想マシン用のデータエントリを有している。したがって、１つのＶＭＬＲが、複数の異なるクラウドを有するネットワーク全体に用いられ、このＶＭＬＲは、これらのクラウドのうちのいずれかにおいて動作するありとあらゆる仮想マシン用のデータエントリを有する。さらに、このＶＭＬＲは、ＩＤ１、ＩＤ２といったサービスの識別情報と、仮想マシンの識別情報と、その仮想マシンを有する物理マシンが接続されているローカルマイグレーションアンカポイントの識別情報とを有し、加えて、このＶＭＬＲは、各ＩＤにつき、対応するグローバルマイグレーションアンカポイントを有する。仮想マシンＶＭ１、ＶＭｎの双方がＧＰ１に接続されているため、双方のデータエントリは、同じＧＰ１エントリを有している。単一のグローバルマイグレーションアンカポイントしか用いない場合には、ＶＭＬＲ内のＧＰのエントリは不要となる。
【００４２】
この階層システムは更に、中央ネットワーク管理システム１６０と、第１のグループ１００用のグループマネージャ１０１と、物理マシンの第２のグループ用の別のグループマネージャ１２１とを有している。
【００４３】
さらに、後で説明するように、各ローカルマイグレーションアンカポイントは、ＬＰ１用の符号１１０ｃ及びＬＰ２用の符号１３０ｃとして示されている、満了期間を示すタイマを備えていることが好ましい。特に、図１に示した各デバイスは、必要に応じて、あるメッセージを別の通信相手に送信し、及び／又は別の通信相手からメッセージを受信して解釈し処理をする。
【００４４】
そして、図２ａに示すように、グローバルマイグレーションアンカポイント１４０は、ブロック２００に示すように、サービス識別情報（ＩＤ）によって特定されるサービスを求めているクライアントからデータメッセージを受信する。ブロック２００の右に示したデータメッセージは、送信元エントリ２０１と、宛先エントリ２０２と、ペイロードエントリ２０３とを有している。送信元エントリは、あるサービスによるサービス提供を受けようとするクライアントを示し、宛先エントリは、このデータメッセージを受信するグローバルマイグレーションアンカポイントを特定するものである。次に、ステップ２０５に略述するように、グローバルマイグレーションアンカポイントは、受信したデータメッセージを処理して、送信元エントリ２０１がグローバルマイグレーションアンカポイントを特定するものとなるように、そして宛先エントリがローカルマイグレーションアンカポイントＬＰを特定する一方で、仮想マシンを特定するものとなるようにする。グローバルマイグレーションアンカポイントは、特定のサービス識別情報を含む、記憶されたデータレコードにより上記を行う立場にある。
【００４５】
図２ｂに示すように、ローカルマイグレーションアンカポイントは、符号２１０に示すように、グローバルマイグレーションアンカポイントからデータメッセージを受信する。そして特に、ローカルマイグレーションアンカポイントは、宛先フィールド２０２に示すような、データメッセージが示す仮想マシン識別情報を含む記憶されたデータセットに基づいて、データメッセージ内におけるローカルマイグレーションアンカポイント識別情報を物理マシン識別情報へと置き換える。具体的には、宛先エントリの、特定の物理マシンへのこのような置換えをブロック２１５にも示している。
【００４６】
続いて、図３ａについて説明する。図３ａは、図１に示した中央ネットワークマネージャ（central network manager, ＣＮＭＳ）１６０の１つの機能を示している。具体的には、ＣＮＭＳは符号３００に示すように、グループ内マイグレーションの要求又は決定を受信する。ローカルマイグレーションアンカポイントは符号３０５に示すように、図１の符号１０１等の、対応するグループマネージャから新たな物理マシンのＩＤを受信する。続いて、ローカルマイグレーションアンカポイントは、データセット内の第１の物理マシンの識別情報を第２の（新たな）物理マシンの識別情報に置き換える。これを符号３１０に示している。したがって、グループ内又はクラウド内のマイグレーションは、ローカルマイグレーションアンカポイントに記憶されているデータセットにのみ影響を与え、グローバルマイグレーションアンカポイントに記憶されているデータレコードには何ら影響を与えない。ＶＭＬＲは、物理マシン識別情報を何ら記憶しておらず、ＬＰ及びＧＰデータ並びにサービスＩＤデータのみを記憶しているため、ＶＭＬＲにおける変更も不要である。
【００４７】
図３ｂは、中央ネットワークマネージャ１６０が、グループ間マイグレーションを決定する状況、すなわち、第１のローカルマイグレーションアンカポイントに関連付けられている第１の物理マシンから別のローカルマイグレーションアンカポイントに関連付けられている第２の物理マシンへの仮想マシンのマイグレーションによるグループ間マイグレーションを決定する状況を示している。そのために、図１のＣＮＭＳ１６０は符号３１５に示すように、グループ間マイグレーションの要求又は決定を受信する。次に、マイグレーションの宛先である第２のローカルマイグレーションアンカポイントは符号３２０に示すように、物理マシンの第２のグループ内の第１の物理マシンから、物理マシンの第２のグループ内のその第１の物理マシンすなわち新たな物理マシンに第１の仮想マシンが置かれているという情報を受信する。さらに、第２のローカルマイグレーションアンカポイントは符号３２５に示すように、グローバルマイグレーションアンカポイントにメッセージを送信する。このメッセージは、第１の仮想マシンが現時点で物理マシンの第２のグループに置かれていることを示すものである。符号３３０に示すように、グローバルマイグレーションアンカポイントは、以前のローカルマイグレーションアンカポイント３３０に関する情報を受信する仮想マシンロケーションレジスタＶＭＬＲ１５０にアクセスする。代替的に又はこれに加えて、第２のローカルマイグレーションアンカポイントは符号３３５に示すように、以前のローカルマイグレーションアンカポイントに関する情報を取得するためにあるメッセージをＶＭＬＲに送信する。基本的には、ステップ３３０及び３３５のうちの一方のみで十分であるが、実施態様に応じて、双方のステップを累積的に実行することもできる。
【００４８】
ステップ３４０では、第１のローカルマイグレーションアンカポイントは、第１の仮想マシンへと指定されたデータメッセージの宛先エントリに第２のローカルマイグレーションアンカポイントを示すことによって、そのデータメッセージを第２のローカルマイグレーションアンカポイントに送信し、そのデータメッセージが、求められている仮想マシンが置かれている正しい物理マシンへとルーティングされるようにする。加えて、第１の仮想マシンは、マイグレーション後に第１のローカルモビリティアンカポイントを第２のローカルモビリティアンカポイントに知らせることができる。
【００４９】
続いて、ある特定のページング（paging）機能を示す図３ｃについて説明する、ステップ３５０において、ローカルマイグレーションアンカポイントは、ある仮想マシンを特定したロケーション登録更新要求を、そのローカルマイグレーションアンカポイントに接続されている物理マシンのグループ内の全ての物理マシンに送信する。ローカルマイグレーションアンカポイントは、ステップ３５５において、上記仮想マシンが置かれている物理マシンから応答を受信する。ステップ３６０では、ローカルマイグレーションアンカポイントは、仮想マシンロケーションレジスタ又はこの仮想マシンロケーションレジスタに加えてグローバルマイグレーションアンカポイントに対し、上記仮想マシンが存在する物理マシンを通知する。さらに、ＶＭはＬＰに直接返答することができ、そのため、全体のトラフィックはＰＭにとって透過的なもの（transparent）として保たれる。
【００５０】
図３ｄは、ＧＰ１及びＧＰ２といった２つのグローバルマイグレーションアンカポイントを有するシステムにおいて実行されることが好ましい処理を示している。ステップ３７０において、ＧＰ１は、あるサービスＩＤを有するサービスのクライアント要求を受信する。次にステップ３７５において、ＧＰ１は、そのサービスＩＤに関し自己のデータレコードを調べる。ステップ３８０に示すように、メッセージに含まれているサービスＩＤが見つからない場合には、ＧＰ１はＶＭＬＲにアクセスする。次のステップ３８５において、ＧＰ１は、ＧＰ２からのＩＤをＶＭＬＲから受信する。次のステップ３９０において、ＧＰ１はＧＰ２に対し、クライアントとそのサービスＩＤを有するサービスと少なくとも一方を通知する。ステップ３９５において、ＧＰ２は、クライアントを直接、アドレス指定するか、又は通信がＧＰ１を通じてＧＰ２及びクライアントへとルーティングされる。しかし、データメッセージの受信者すなわちあるローカルマイグレーションアンカポイントが、サービス識別情報によってアドレス指定されたある仮想マシンがこの階層ネットワーク内で接続している実際のグローバルマイグレーションアンカポイントを特定するとすぐに、別の代替形態も同様に実行することができる。
【００５１】
続いて、初期化処理のための詳細な実施形態を示すために、図６を詳細に説明する。
【００５２】
符号６００に示す物理マシンは、マイグレーション管理モジュール６０１を備えている。ある仮想マシンについて、その仮想マシンのＩＤと、ＩＰアドレスと、メモリと、例えばコア１等のある特定のハードウェアリソースとを定めることによりインスタンスが作成された後、その仮想マシン６０２が物理マシンに存在することになる。次に、物理マシンコントローラ６０３は自己の物理マシンＩＤを送信する。この物理マシンＩＤをＰＭ  ＩＤとして示している。次に、仮想マシンのマイグレーション管理モジュール６０４は、このＰＭ  ＩＤを記憶し、自己のＶＭ  ＩＤ又は「サービスＩＤ」を物理マシンのマイグレーション管理６０１に返信する。このサービスＩＤは、この分野において知られているように、アプリケーションＩＤ又はＵＲＬと同義であることに留意すべきである。次に、物理マシンのマイグレーション管理機能は、符号６０５に示すように、仮想マシンのサービスＩＤ及び物理マシンの物理マシンＩＤを、指定されたマイグレーションアンカポイントに送信する。次に、ローカルマイグレーションアンカポイントは、仮想マシンＩＤ、物理マシンＩＤを記憶し、次いで、ステップ６０６に示すように、サービスＩＤと仮想マシンＩＤと物理マシンＩＤとローカルマイグレーションアンカポイントＩＤとをグローバルマイグレーションアンカポイントに知らせる。次に、グローバルマイグレーションアンカポイントは、サービスＩＤと仮想マシンＩＤとローカルマイグレーションアンカポイントＩＤとを記憶し、符号６０７に示すように、サービスＩＤと仮想マシンＩＤとローカルマイグレーションアンカポイントＩＤとグローバルマイグレーションアンカポイントＩＤとをＶＭＬＲに知らせる。次に、ＶＭＬＲは、エントリを作成して、サービスＩＤと仮想マシンＩＤとローカルマイグレーションアンカポイントＩＤとグローバルマイグレーションアンカポイントＩＤとを互いに関連付けて記憶する。さらに、全体の登録プロセスは、登録情報を受信したあらゆるモジュールからのＡＣＫ（確認応答）メッセージ及び応答を用いて行われることが好ましい。すなわち、ＬＰは応答を物理マシンに返信し、ＧＰは応答をＬＰに返信し、ＶＭＬＲは応答をＧＰに返信することが好ましい。
【００５３】
次に、図７を参照してサービス発見及びセッションの確立について説明する。
【００５４】
まず、図７の符号７００に示すクライアントが、メッセージをいわゆるＤＮＳサーバに送信する。具体的には、このクライアントは、ある特定のサービスにアクセスしようとしており、この特定のサービスはそのクライアントが当然知らない仮想マシン上で動作している。しかし、クライアントはウェブアドレスを知っているため、クライアントは、このＵＲＬのサーバＩＤに関する情報を見つけるために、第１のメッセージを用いてＤＮＳサーバ７０１にアクセスする（符号７１１）。次に、ＤＮＳサーバ７０２は、仮想マシンが関連付けられているグローバルマイグレーションアンカポイントのＩＤを示す第２のメッセージにより応答する。この情報は、ステップ７１２に示すように、ＤＮＳサーバが提供することができる。なぜならば、ＤＮＳサーバは、一方でグローバルマイグレーションアンカポイントとの関連付け、他方ではサービスＩＤ又はＵＲＬとの関連付けに関して更新されるからである。次に、第３のステップにおいて、クライアント７００は、符号７１３に示すように、メッセージ７１２にて示されたＧＰにアクセスし、当該クライアントがこのＵＲＬ用のセッションを確立しようとしていることを要求する。
【００５５】
次に、ＧＰ１は、符号７１４に示すように、（クライアント７００そのものではなく）ＧＰ１がこのＵＲＬのセッションを確立しようとすることをＬＰ１に知らせることにより、関連付けられているＬＰ１をアドレス指定する。ＧＰ１は、そのセッションがクライアントのためのものではなくＧＰ１のためのものであることを示す。この情報は、ＬＰ１等の対応するＬＰを通じて第１のクラウド７２０へとルーティングされ、ＬＰ１は、メッセージ７１４に示されている仮想マシンＩＤが属する物理マシンＩＤ７２１を知る。仮想マシンＩＤを符号７２２に示されている。次に、物理マシン、特に物理マシンのマイグレーション管理部及び仮想マシンのマイグレーション管理部、又は図６において説明したマイグレーション管理要素のみが、セッション確立がＯＫであること及びセッションの所有者がＧＰ１であることを伝えるメッセージ７１５を通じて応答する。次に、符号７１６によって示すように、ＧＰ１は、セッションがＯＫであること及びセッションがクライアント用であることをクライアントに返信して報告する。しかし、クライアントは、特定のセッションの所有者がクライアント自身ではなくＧＰ１であることは知らない。
【００５６】
続いて、図８を参照してデータパスを説明する。セッションが図７の手順によって確立された後、クライアント７００はこの時点でペイロードの通信を開始する。これは、メッセージ８００によって行われる。このメッセージは、クライアントから送信されるメッセージの宛先としてＧＰ１を表す宛先セクションを有しており、送信元としてクライアントを表す送信元セクションを有しており、そして、ペイロードセクションを有している。次にＧＰ１はメッセージ８０２を、特定のサービスＩＤと関連付けられたローカルマイグレーションアンカポイントまで送信する。この目的のために、メッセージ８０２に示しているように、送信元フィールドは、クライアント１からＧＰ１へ変更され、宛先フィールドは、一方では仮想マシンに変更されるとともに他方ではローカルマイグレーションアンカポイントＩＤへ変更される。次に、ローカルマイグレーションアンカポイントは、メッセージ８０３を特定の物理マシンに送信する。この場合も、送信元フィールドは、変更されずＧＰ１のままであるが、宛先フィールドは、メッセージ８０２のようなローカルマイグレーションアンカポイントＩＤ及び仮想マシンではなく、物理マシンＩＤ及び仮想マシンを表すものとなるように変更される。次に、示された物理マシンＩＤを有する物理マシンは、宛先フィールドによって示されている仮想マシンにメッセージ８０４を送信し、次いで仮想マシンはそのメッセージを処理し、その結果をメッセージ８０５として返信する。この場合、このメッセージは、宛先ＧＰ１と、クラウド１（符号７２０）内でこのメッセージを実際に生成した仮想マシンである送信元とを有している。次に、仮想マシンをホストする物理マシンに関連付けられたマイグレーション管理マネージャは、仮想マシンに関連付けられたマイグレーションマネージャからメッセージ８０５を受信する。次に、物理マシンは、メッセージ８０６をローカルマイグレーションアンカポイントまで送信する。このメッセージは、送信元フィールドがＶＭのままであり、宛先フィールドはＧＰ１のままであるとともに、宛先にはＬＰ１が追加して示されている。しかし、これは、ＬＰがクラウドの外部ゲートウェイ（outgoing gateway）として構成されていない場合にのみ必要である。その一方で、ＬＰ１がクラウド７２０内の全ての物理マシンのための外部ゲートウェイとなるように自動的に構成されている場合には、メッセージ８０６内でＬＰ１は必要なく、メッセージ８０５及び８０６は同一となる。
【００５７】
次に、ＬＰ１は、送信元フィールド及び宛先フィールドが、ＬＰ１の識別情報が削除されていることを除いて変更のないメッセージ８０７をＧＰ１に送信する。次に、ＵＲＬとＶＭのエントリを実際に有するＧＰ１が、ファイルメッセージ８０８をクライアント７００へ送信し、クライアントは、そのクライアントのサービスがＧＰ１から提供されていることを実際に認識する。したがって、図８は、本発明の階層システムの重要な利点、すなわちクライアントが階層システム内の下層については何も気にする必要がなく、メッセージが送信されるグローバルマイグレーションアンカポイントにのみ対応するだけでよいことを示している。
【００５８】
続いて、マイグレーションのサポート及びハンドオーバを説明するために図９ａを参照する。３つのクラウド９０１、９０２、９０３が示されており、物理マシン９０４及び別の物理マシン９０５が示されている。さらに、ＶＭＬＲ１５０と、ＬＰ１（符号１１０）と、ＬＰ２（符号１３０）と、番号ｎを有する別のローカルマイグレーションアンカポイントとが示されており、さらに、２つのグローバルマイグレーションアンカポイント１４０及び別のグローバルマイグレーションアンカポイント９１０が示されている。メッセージ９１１は、ペイロードセクションと、ＶＭ  ＩＤ及び物理マシン９０４の物理マシンＩＤを有する宛先セクションとを有している。ここで、図９ｂに示しているように、仮想マシンが、物理マシン９０４から物理マシン９０５へと、すなわちクラウド内でマイグレーションすることになる。このことは、物理マシンからメッセージ９１２を通じてローカルマイグレーションアンカポイントに通信され、次いで、ローカルマイグレーションアンカポイントＬＰ１は、メッセージ９１１内の物理ＩＤエントリをマシン９０４の物理ＩＤからマシン９０５の物理ＩＤへ変更する。しかし、仮想マシンがクラウド９０１内の物理マシン９０５から第２のクラウド内の物理マシン９１５に移動する場合は、追加の手順が必要である。続いて、これらの手順を図９ｃを参照して説明する。第１のステップにおいて、仮想マシンＩＤを有する仮想マシンが、符号９２０に示すように、物理マシン９０５から物理マシン９１５に移動する。次のステップでは、物理マシン９１５が、その関連付けられたローカルマイグレーションアンカポイント１３０にこの新たな状況を通知する。これは、メッセージ９２１により行われる。次に、ローカルマイグレーションアンカポイント１３０は、それに関連付けられているグローバルマイグレーションアンカポイントに対しメッセージ９２２によりこの新たな状況を通知する。加えて、この新たな状況は、メッセージ９２３によりＬＰ２（符号１３０）からＬＰ１（符号１１０）に通知することもできるし、メッセージ９２４によりＧＰ１（符号１４０）からＶＭＬＲに通知することもできる。次に、図９ｂのメッセージ９１１をまだ所有しているローカルマイグレーションアンカポイント１１０は、このメッセージを処理しなければならない。この目的のために、それまで物理マシン９０５を示していた宛先フィールドは、いまでは、図９ｃの符号９２５に示すように、ローカルマイグレーションアンカポイント１３０を示す。次に、このメッセージは、ローカルマイグレーションアンカポイント１３０に実際に到達することができる。次に、図９ｄに示すように、ＬＰ２（符号１３０）は、それ自身すなわちそのローカルマイグレーションアンカポイントの物理ＩＤを、物理マシン９１５の物理マシンＩＤに置き換える。次に、図９ｄに示しているように、グローバルマイグレーションアンカポイントが受信したメッセージは、ブロック９１５に現在存在する仮想マシンに最終的に到達するように、ローカルマイグレーションアンカポイント１１０にルーティングされ、そこからローカルマイグレーションアンカポイント１３０にルーティングされる。しかし、パケットの順���付け（ordering）が問題とならない場合、すなわち、仮想マシンがパケット再順序付け（packet re-ordering）機能を有している場合には、グローバルマイグレーションアンカポイント１４０は、符号９３９に示すＬＰ１を通じた間接ルートではなく、符号９４０に示す直接ルートを取ることができる。
【００５９】
したがって、この手順によれば、マイグレーションによるセッション切断を回避することができる。なぜならば、再ルーティングは、クライアントが何らの処理を行うことなくスムーズに行われるからである。さらに、全ての再ルーティングの手順は、利用可能な情報を用いて行われるため、ＬＰ１（符号１１０、１１３）又はＧＰは、上記で説明したように、送信元フィールド又は宛先フィールドに対応した処理によってメッセージを容易に転送することができる。中央コントローラのみが存在する集中型の方法と比較すると、ルート９３９、９４０は大幅に短い。
【００６０】
続いて、個々のエンティティの協調処理に関するフローチャートを説明するために図１０を参照する。ブロック１０００において、ＶＭのインスタンス作成又はＶＭのマイグレーションが行われたか否かが判断される。行われていないと判断された場合にはこの手順は終了する。他方、インスタンス作成又はマイグレーションに該当すると判断された場合にはステップ１０１０が行われる。本ステップでは仮想マシンは自己を物理マシンに登録する。物理マシンが有効な仮想マシン情報を既に有している場合には、本ステップを省略することができる。ステップ１０２０において、仮想マシン及び対応する物理マシンは、それらに対応するローカルマイグレーションアンカポイントに登録を行う。クラウド内のプロセスの場合には、ブロック１０３０に示している手順が実行される。他方、ブロック１０２５において、クラウド間処理に該当すると判断された場合には、ブロック１０３５に示すように、仮想マシンを現在有しているローカルマイグレーションアンカポイントは、それまでのローカルマイグレーションアンカポイントとグローバルマイグレーションアンカポイントとＶＭＬＲとに対しクラウド間マイグレーションであることを知らせる。その一方で、ブロック１０２５にてクラウド内マイグレーションと判断された場合には、ブロック１０３０が行われる。ブロック１０３０は、登録タイマの満了、又はＬＰ、ＧＰ若しくはＶＭＬＲによって発行される意図的な更新要求を示している。このタイマは、ブロック１１０ｃ、１３０ｃに示したように、ローカルマイグレーションアンカポイントに配置されている。このタイマが満了すると、ＬＰ、ＧＰ若しくはＶＭＬＲ又は個々の全てのエンティティによってロケーションの更新が行われる。他方、タイマが満了していない場合には、ブロック１０４０が、登録タイマが満了するまで何も起きないことを示している。したがって、ブロック１０１０及び後続のブロックに示す手順は、個々のトリガに応じて行われる。トリガの１つは登録タイマの満了であり、別のトリガは、ＬＰのいずれか、ＧＰのいずれか、又はＶＭＬＲからのロケーション更新要求である。
【００６１】
続いて、特定の好ましいページング機能を説明する。ＶＭＬＲ、ＧＰ、ＬＰにおいて有効なエントリが何らかの理由で利用可能でない場合には（１つの理由は、データ破損若しくはデータ送信エラー又はそれに類似のものである）、ＶＭＬＲとＧＰとＬＰとの少なくともいずれかが、全てのＬＰ（又は仮想マシンが近時において最後に存在していた幾つかのＬＰ）に対しページングを行うように依頼することができる。これは、ＧＰを通じて行うこともでき、加えて、ＶＭＬＲが単独でページングを行うこともできれば、ＧＰにページングを行うように依頼し、そのＧＰがその配下にあるＬＰにページングを行うように依頼することもできる。
【００６２】
次に、各ＬＰは、自己の各クラウド内にある全ての物理マシン（ＰＭ）に対しロケーション登録、更新要求をブロードキャストする。次に、対象となっているＶＭをホストしている物理マシン（又はＶＭ自体）は、ＬＰ、具体的にはロケーション登録、更新要求に対して応答し、このとき、ＬＰは、どの物理マシンが仮想マシンをホストしているのかを知る。次にＬＰはＶＭＬＲに通知し、また、ＧＰ又はより多くのグローバルマイグレーションアンカポイントに知らせることもできる。この目的のために、ＬＰは次に、それ自身のＬＰ  ＩＤをＶＭＬＲに転送し、次いでＶＭＬＲはクライアントからの新たなセッション要求を正しいＧＰを通じて正しいＬＰに、そしてそこから正しい物理マシンに実際に転送することができるように、サービスＩＤに対応するデータエントリを更新することができる。
【００６３】
図１１は、マイグレーションに関する決定を見いだすための更なる手順を示している。符号１１００に示すネットワーク構成プラットフォーム（network configuration platform）ＮＣＰは、種々のクラウド、具体的には種々のクラウドコントローラ１１１０及び１１２０とのインタフェースを維持するものである。ネットワーク構成プラットフォームＮＣＰは、これらの種々のクラウドコントローラ（クラウドＯ＆Ｍ）とのこのようなインタフェースを維持し、それ自体が行う監視に基づいて又はクラウドコントローラ１１２０、１１１０からの信号に基づいて決定を行うことが好ましい。この決定は、仮想マシンがどのクラウドからどのクラウドにマイグレーションすべきであるかを示すものである。クラウドコントローラ１１２０、１１１０は、これらのクラウドコントローラの制御下にある物理マシン上の仮想マシンにリソースを割り当てることを担当する。これらのクラウドコントローラは、図１にてグループマネージャ１０１、１２１としても示したものである。特に、ＶＭＬＲは、サービスＩＤ又は「ＵＲＬ」、関連付けられている仮想マシンＩＤと、ＬＰ  ＩＤと、ＧＰ  ＩＤとを記憶する。
【００６４】
ルートの変更と、サービス提供と、仮想マシンの発見とは、ＧＰと共同して行われ、これは上記で説明したとおりである。
【００６５】
本発明は、次の理由から有利である。本発明の階層システムは、ＬＰ及びＧＰといった少数のアンカポイントしか必要としないため拡張性を有している。これによって、例えばシグナリングの観点で複雑度が減少する。さらに、本発明の手順は、セルラネットワークに対して親和的であり、世界中で広範囲にわたって稼動しているセルラネットワークの動作に基づく経験（experience）をクラウドコンピューティングにも用いることができる。本発明の好ましい実施形態は、クラウドか、又は少なくとも２つの物理マシンを有する１つのグループかを有するシステムに関する。このシステムでは、複数の物理コンピューティングマシン（ＰＭ）が、複数の仮想マシンをホストする。さらに、このシステムは、１つ以上のローカルマイグレーションアンカポイント（ＬＰ）と、１つ以上のグローバルマイグレーションアンカポイントＧＰと、仮想マシンロケーションレジストラ（virtual machine location registrar）を備えており、これらのエンティティのそれぞれが、特定されるための一意のＩＤを保持するとともに仮想マシンのロケーションへのポインタを保持する。
【００６６】
本発明の１つの特徴は、ＶＭ、ＰＭ、ＬＰ及び／又はＧＰにおいて行われるロケーション登録ステップである。本ステップを通じて、ＶＭ、ＰＭ、ＬＰ、ＧＰ及び／又はＶＭＬＲは、前述したＶＭがネットワークのどこに置かれているのか、すなわちこのＶＭがどのＰＭに存在するのか、及びこのＶＭがサービスＩＤ又はＵＲＬによって特定されるどのような種類のサービスを提供するものであるのかという情報を受信する。
【００６７】
本発明は更に、サービスＩＤあるいはＵＲＬ等のアプリケーションプログラム用アクセスＩＤと、それをホストする仮想マシンと、その仮想マシンが置かれている物理マシンと、物理マシンとＬＰの関連付けと、ＬＰとＧＰの関連付けとのマッピングを保持するデータベースシステムに関する。これによれば、これらのエンティティ、すなわち物理マシンと、ローカルマイグレーションアンカポイントと、グローバルマイグレーションアンカポイントとは、それらのＩＤによって特定される。
【００６８】
本発明の別の態様では、ローカルマイグレーションアンカポイントは、仮想マシンが同じクラウド内に存在する場合にその仮想マシンのマイグレーションをサポートし、どの仮想マシンがどの物理マシンに置かれているのかに関する情報を保持する。特に、ローカルマイグレーションアンカポイントは、仮想マシンが新たな物理マシンに移動した場合には物理マシンＩＤを変更する。したがって、ローカルマイグレーションアンカポイントは、その仮想マシンを宛先とするデータを、その仮想マシンが置かれている適切な物理マシンへとルーティングするものであり、これは、データヘッダの前に適切な物理マシンＩＤを追加することによって行われることが好ましい。
【００６９】
ローカルマイグレーションアンカポイントは、当該ローカルマイグレーションアンカポイントが担当するクラウド内に置かれていた仮想マシンを宛先とするデータを、マイグレーション後には、例えば新たなＬＰ−ＩＤをデータヘッダに追加することによって、その仮想マシンの新たなローカルマイグレーションアンカポイントに転送することを担当する。
【００７０】
ローカルマイグレーションアンカポイントは、ＶＭがあるクラウドから別のクラウドにマイグレーションするか否かをＶＭＬＲ及びＧＰに更に知らせ、加えて、以前のＬＰにも同様に知らせる。
【００７１】
ローカルマイグレーションアンカポイントは、ＶＭＬＲ若しくはＧＰからの要求に応じて又は単独でブロードキャストページングメッセージをそのクラウド内の全ての物理マシンに対して発行し、このページングメッセージ内に特定の仮想マシンＩＤを明示的に挙げておくことによって、全ての仮想マシン又は１つ若しくは幾つかの仮想マシンについての仮想マシンのロケーションの更新を開始することができる。
【００７２】
グローバルマイグレーションアンカポイント（ＧＰ）は、クラウド間での仮想マシンのマイグレーションをサポートし、どのローカルマイグレーションアンカポイントを通ってどのように仮想マシンに到達することができるのかに関する情報を保持する。ＧＰは、アプリケーションＩＤと、ＶＭ等のアプリケーションマシンのホストとの間の関係を解決するためのソルバとして更に機能し、ＧＰは、それ自身のＩＤを、クライアントが検索しているアプリケーションのＩＤとして、問い合わせたクライアントに返す。ＧＰは、Ａｐｐ−ＩＤとＶＭとＬＰとＧＰとの情報又は少なくともその一部を保持する。
【００７３】
ＧＰは、クライアントに代わり、アプリケーションが置かれている仮想マシンとのセッションをセットアップ又はオープンすることが好ましく、送信元自体であるかのように振る舞う。これは、セッションの分割（session splitting）を参照して説明したものでもある。
【００７４】
ＧＰは、送信元であるクライアントＩＤをそれ自体のＩＤに置き換えることによって、クライアントからのデータを転送することが好ましい。次に、ＧＰは、データヘッダの前に適切なＬＰ  ＩＤを追加する。
【００７５】
ＧＰは、ローカルマイグレーションアンカポイントからある仮想マシンのロケーション更新を受信すると、以前のＬＰに代えて新たなＬＰのＩＤを追加することにより、継続中のセッションのルートをその仮想マシンの新たなロケーションへと変更することができる。
【００７６】
ＧＰは、クライアントを宛先とするデータを仮想マシンから受信すると、仮想マシンの送信元ＩＤを置き換えるように更に構成されており、ＧＰはこれを単独で行い、当該ＧＰがデータの送信元であるかのように見せかける。また、ＧＰは、データの宛先を自身からクライアントＩＤに置き換える。
【００７７】
仮想マシンロケーションレジストラ又は仮想マシンロケーションレジスタは、どのアプリケーションＩＤが、どのグローバルマイグレーションアンカポイントによってカバーされたどのローカルマイグレーションアンカポイントによってカバーされているどの仮想マシンに置かれているのかに関する情報（ＵＲＬ、ＶＭ、ＬＰ、ＧＰ）又は少なくともこの情報の一部を保持する。アプリケーションＩＤは、ウェブアプリケーション、ビデオ等のアプリケーションサービスに対する識別子を示すものである。ＵＲＬが、アプリケーションＩＤの１つの例である。
【００７８】
ＬＰ、ＧＰ、ＶＭＬＲのロケーションは、互いに対して任意であることに留意すべきである。これらのエンティティは、物理的又は機能的に同じ場所にデプロイ（deploy）することもできるし、機能に合わせてデプロイすることもできるし、それらの物理ロケーション又は機能的ロケーションに関して別々のままとすることもできる。
【００７９】
一実施形態では、ＧＰをＬＰと統合することができる。この場合、ＧＰの機能は、ＬＰによって行われる。それにもかかわらず、この統合デバイスは、ＧＰの機能すなわちデータレコードと、ＬＰの機能すなわちデータセットとを有する。
【００８０】
セッションが分割されていない場合、すなわち、カプセル化が行われていない場合には、クライアントは、仮想マシンＩＤを宛先として有するデータを幅広く送信し、以前のＬＰは、マイグレーション後にデータを新たなＬＰに転送する。そのような場合、ＬＰは、クラウドの入口又は出口ゲートウェイとして機能する。
【００８１】
したがって、本発明は更に、各サーバファームが複数の物理サーバマシンを有する複数のサーバファームに関する。各物理サーバマシンは、複数の仮想サーバマシンを保持し、各サーバファームは、ローカルマイグレーションアンカポイントに接続され、複数のローカルマイグレーションアンカポイントは、グローバルマイグレーションアンカポイントに接続されている。ローカルマイグレーションアンカポイント及びグローバルマイグレーションアンカポイントは、どのアプリケーションがどの仮想マシンに置かれているのか、並びにどの仮想マシンがどのＬＰによってカバーされているのか及びどのＬＰがどのＧＰによってカバーされているのかに関する情報を保持する仮想サーバマシンロケーションレジストラに接続されている。特に、ＶＭ、ＰＭ、ＬＰ、ＧＰは、マイグレーション管理機能を装備しており、仮想マシンのロケーションは、ＧＰとＬＰとＰＭのつながりを通じて突き止めることができる。
【００８２】
更なる実施形態によれば、種々のクラウドコントローラ又はグループマネージャ（図１の符号１０１及び１２１等）とのインタフェースを維持するネットワーク構成プラットフォームが提供される。図１１の符号１１００等のネットワーク構成プラットフォーム又はクラウド間マイグレーション管理モジュールは、それ自身が行う監視に基づいて又はグループマネージャからの信号に基づいて、マイグレーションをどのように行うべきであるか及び／又はどの仮想マシンがどのクラウドから他のどのクラウドにマイグレーションすべきであるかの決定を行う。各クラウドのグループマネージャ又は「クラウドＯ＆Ｍ」は、対応するグループマネージャによって管理されている物理マシン上の仮想マシンにリソースを割り当てることを担当する。
【００８３】
続いて、ロケーション登録、更新プロセスをより詳細に説明する。オリジナルのＩＤを有する仮想マシンは、自身を、現在存在する物理マシンＰＭに登録する。
【００８４】
いずれかの仮想マシンが、ロケーション登録メッセージをローカルマイグレーションアンカポイントに送信する。この場合、この仮想マシンは、物理マシンのＩＤ及びＬＰのＩＤを、当該仮想マシンが存在している物理マシンから受信する。あるいは、ＰＭは仮想マシンに代わってロケーション登録を行う。その場合、物理マシンは、それ自身のＩＤ及びＶＭ  ＩＤをＬＰに送信し、ＬＰが、このＶＭがこの特定のＰＭに存在していることを知るようになる。ＬＰは、物理マシンへの仮想マシンのマッピングをそのデータベース又はその複数のデータセット内に保持する。このエントリの有効性は、ＬＰ内の対応するタイマによって定められることが好ましい所定の期間の満了を条件とする。ロケーション登録プロセスは、この期間内に仮想マシン又は物理マシンによって再び行われなければならない。
【００８５】
ＰＭが、仮想マシン、物理マシンのエントリ用のロケーション更新メッセージを受信しない場合には、そのＰＭは、ロケーション更新要求を仮想マシン、物理マシンに発行する。
【００８６】
肯定的な返答を受信した場合には、ＶＭとＰＭのエントリの有効性は、所定の期間に延長される。
【００８７】
ＰＭは、否定的な返答、すなわち、ＶＭが当該ＰＭにもはや存在しないことを送信することもできるし、そのようなメッセージを無視することもできる。ＬＰが、そのロケーション更新要求に対して否定的な返答を受け取るか又は返答を受け取らなかった場合は、ＬＰは、この特定のエントリを複数のデータセットから削除する。ＬＰは、この特定のＶＭに関するＶＭとＬＰのエントリ用のエントリがもはや有効でないことをＶＭＬＲに知らせることもできる。
【００８８】
ロケーション登録は、仮想マシンのインスタンスが作成されるか又は別のＰＭに移動するときに行われる。
【００８９】
ＬＰはまた、その範囲内の全てのＰＭに対しロケーション登録、更新を行うよういつでも、例えばＬＰが自身をリブートしなければならず、全てのＶＭとＰＭとのマッピングを失う場合に依頼することができる。そのような場合、ＰＭは、ＰＭ  ＩＤと全てのＶＭ  ＩＤとを１つのメッセージに含めた単一のメッセージによってロケーション登録、更新を行うことができる。
【００９０】
続いて、インスタンス作成、マイグレーション、リブートの後に仮想マシンによって行われる手順を示した図１２について説明する。
【００９１】
第一に、図１２の符号１２００に示しているように、ＶＭはそのＶＭ−ＩＤを当該ＶＭが位置づけられているＰＭに送信する。次に、符号１２０２に示すように、ＰＭは、メッセージ内においてＶＭ−ＩＤとそれ自身のＰＭ−ＩＤを、接続されているＬＰに送信する。特に、ＬＰは、受信したメッセージの送信元からＰＭ−ＩＤを推測することができ、これはＰＭ−ＩＤの暗黙的な通知であり、この場合、ＰＭ−ＩＤはメッセージ１２０２において必要ない。
【００９２】
次に、ＬＰは、ＶＭ−ＩＤ及びＬＰ−ＩＤを、接続されたＧＰにメッセージ１２０４で送信し、符号１２０６に示すように、この情報を以前のＬＰに送信し、この情報をＶＭＬＲに対しメッセージ１２０８により送信する。代替的に又はこれに加えて、符号１２１０に示すように、ＧＰはこの情報をＶＭＬＲに、すなわちメッセージ１２０８の代わりとして又はメッセージ１２０８に加えて送信する。
【００９３】
続いて、本発明の好ましい実施形態を説明するために、セッションのセットアップに関する更なる説明を提供する。
【００９４】
クライアントはまず、ＵＲＬとＶＭ−ＩＤとの変換に関して当該クライアントのＤＮＳサーバを調べる。シナリオは、例えばＧＰがＤＮＳの処理と類似した、ＵＲＬとＶＭ−ＩＤとの変換装置として機能するというものである。したがって、全てのクライアントが、ＧＰに対し、ＵＲＬからルーティング可能なＩＤへの変換を依頼する。この場合、全てのクライアントは、ＵＲＬとルーティング可能なＩＤとの解決をＧＰに依頼するようにプログラムされている。
【００９５】
他のＵＲＬとＶＭ−ＩＤの変換装置は、ＵＲＬとＶＭ−ＩＤとの解決要求を、ＤＮＳリダイレクションに相当するＧＰにリダイレクトすることができる。
【００９６】
ＧＰは、有効な（満了していない）ＶＭ−ＩＤとＬＰ−ＩＤのマッピングについてそれ自身の内部データベースを調べる。このようなマッピングが見つからない場合には、ＧＰはＶＭＬＲに対し、ＵＲＬとＧＰ−ＩＤとＬＰ−ＩＤとＶＭ−ＩＤとの適切なマッピングを要求する。ＧＰが、ＬＰがそのＧＰ自身の範囲下にあることを確認し、かつＧＰが（負荷又はオペレータのポリシー上の理由から）サービス提供したい場合には、ＶＭＬＲからの応答に従って、ＧＰは、クライアントが要求しているＵＲＬに対してそれ自身のＩＤを宛先ＩＤとして返信する（そして、ＵＲＬとＧＰとＬＰとＶＭとのマッピングをそのＧＰのデータベースに記憶する）。
【００９７】
ＶＭがこのＧＰの配下にないＬＰにアタッチされている場合、ＧＰは、クライアントからの解決要求を、その仮想マシンのグローバルマイグレーションアンカポイントとして機能しているＧＰにリダイレクトする。ここで、この情報はＶＭＬＲからの応答に含まれていたものである。
【００９８】
ＧＰは、データセッションを開始する前にも、仮想マシンとのセッションを確立する必要がある。クライアントは、宛先としてルーティング可能なＩＤ（ＧＰ−ＩＤ等）を得た後、データ送信に先立ってセッション確立の手順を開始する。セッション確立メッセージにおいて、ＧＰは、送信元ＩＤ（すなわちクライアントＩＤ）をそのＧＰ自身のＩＤに置き換え、宛先ＩＤ（すなわちＧＰ自身のＩＤ）をＶＭ−ＩＤに置き換える。次に、ＧＰは、担当するＬＰのＩＤを追加し、このように処理したメッセージを転送する。
【００９９】
したがって、ＶＭを宛先とするデータパケットは、まずＧＰに到着する。ＧＰは、それ自身のＩＤを宛先となるＶＭ−ＩＤに置き換え、そのデータパケットを転送する。この宛先となるＶＭ−ＩＤはＧＰのみが知っている。なぜならば、送信元クライアントは、実際のアプリケーションが置かれているＶＭではなくＧＰを宛先として認識しているからである。したがって、ＧＰは、ＮＡＴの特徴と類似した、クライアントとＧＰとＧＰとＶＭとのセッションのマッピングを行うテーブルを維持するものである。
【０１００】
ＧＰは、データをＶＭに転送する前に、このデータをＬＰ−ＩＤを用いてカプセル化し、データがＶＭに向かう途中でＬＰに到達するようにする。ＬＰは、このデータを受信すると、外側にあるＩＤ、すなわちそれ自身のＩＤを取り除く。ＬＰは、次のＩＤとしてＶＭ−ＩＤを見つけ出す。ＬＰは、そのデータベースを調べて、ＶＭ−ＩＤとＰＭ−ＩＤとのマッピングを見つけ出す。次にＬＰは、宛先としてのＰＭ−ＩＤを用いてデータをカプセル化する。
【０１０１】
したがって、ＰＭはデータを受信し、次いで、ＰＭは外側のＩＤ（それ自身のＩＤ）を取り除き、そのためＶＭ−ＩＤを認識できるようになる。そして、そのデータは、このとき認識可能なＶＭ−ＩＤによって特定される適切なＶＭへと配信される。
【０１０２】
幾つかの態様を装置との関連で説明してきたが、これらの態様は、対応する方法の記述も表していることは明らかであり、この対応する方法では、ブロック又はデバイスが、方法ステップ又は方法ステップの特徴に相当する。同様に、方法ステップとの関連で説明した態様も、対応する装置の対応するブロック又は項目又は特徴の記述を表している。
【０１０３】
ある特定の実施態様の要件に応じて、本発明の実施形態はハードウェア又はソフトウェアにおいて実施することができる。実施態様は、電子的に読取り可能な制御信号が記憶されたデジタル記憶媒体、例えばフロッピー（登録商標）ディスク、ＤＶＤ、ＣＤ、ＲＯＭ、ＰＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、又はフラッシュメモリを用いて実行することができ、それらは、それぞれの方法が実行されるようにプログラム可能なコンピュータシステムと連携する（又は連携可能である）。
【０１０４】
本発明による幾つかの実施形態は、本明細書に記載される方法のうちの１つが実行されるように又は第１の取得信号若しくは第２の取得信号又は第１の混合信号若しくは第２の混合信号を記憶するようにプログラム可能なコンピュータシステムと連携することができる電子的に読取り可能な制御信号を有する非一時的データキャリアを含む。
【０１０５】
概して、本発明の実施形態は、プログラムコードを有するコンピュータプログラム製品としてインプリメントすることができる。該プログラムコードは、コンピュータプログラム製品がコンピュータ上で実行されると、方法のうちの１つを実行するように動作可能である。プログラムコードは、例えば機械可読キャリア上に記憶することができる。
【０１０６】
他の実施形態は、機械可読キャリア上に記憶された、本明細書に記載された方法のうちの１つを実行するコンピュータプログラムを含む。
【０１０７】
したがって、換言すれば、本発明の方法の一実施形態は、コンピュータプログラムがコンピュータ上で実行されるときに本明細書に記載された方法のうちの１つを実行するためのプログラムコードを有するコンピュータプログラムである。
【０１０８】
したがって、本発明の方法の更なる実施形態は、データキャリア（又はデジタル記憶媒体若しくはコンピュータ可読媒体）であって、該データキャリア上に記録された、本明細書に記載された方法のうちの１つを実行するためのコンピュータプログラムを含む、データキャリアである。
【０１０９】
したがって、本発明の方法の更なる実施形態は、本明細書に記載された方法のうちの１つを実行するコンピュータプログラムを表すデータストリーム又は信号シーケンスである。データストリーム又は信号シーケンスは、例えば、データ通信接続を介して、例えばインターネットを介して転送されるように構成することができる。
【０１１０】
更なる実施形態は、本明細書に記載された方法のうちの１つを実行するように構成又は適合された処理手段、例えばコンピュータ又はプログラム可能な論理デバイスを含む。
【０１１１】
更なる実施形態は、本明細書に記載された方法のうちの１つを実行するためのコンピュータプログラムがインストールされたコンピュータを含む。
【０１１２】
幾つかの実施形態では、プログラム可能な論理デバイス（例えばフィールドプログラマブルゲートアレイ）を用いて、本明細書に記載された方法の機能のうちの幾つか又は全てを実行することができる。幾つかの実施形態では、フィールドプログラマブルゲートアレイは、本明細書に記載された方法のうちの１つを実行するためにマイクロプロセッサと連携することができる。概して、本方法は任意のハードウェア装置によって実行されることが好ましい。
【０１１３】
上述した実施形態は、単に本発明の原理を説明するものである。本明細書において記載した構成並びに詳細の変更及び変形は当業者には明らかであることが理解される。したがって、特許請求の範囲によってのみ限定され、本明細書における実施形態の記述及び説明のために提示された特定の詳細によって限定されるものではないことが意図される。
【図１】
0005608794.tif 000002
【図２ａ】
0005608794.tif 000003
【図２ｂ】
0005608794.tif 000004
【図３ａ】
0005608794.tif 000005
【図３ｂ】
0005608794.tif 000006
【図３ｃ】
0005608794.tif 000007
【図３ｄ】
0005608794.tif 000008
【図４】
0005608794.tif 000009
【図５】
0005608794.tif 000010
【図６】
0005608794.tif 000011
【図７】
0005608794.tif 000012
【図８】
0005608794.tif 000013
【図９ａ】
0005608794.tif 000014
【図９ｂ】
0005608794.tif 000015
【図９ｃ】
0005608794.tif 000016
【図９ｄ】
0005608794.tif 000017
【図１０】
0005608794.tif 000018
【図１１】
0005608794.tif 000019
【図１２】
0005608794.tif 000020