JP6005706B2 - 異種移動環境用の仮想マシンモーフィング - Google Patents

異種移動環境用の仮想マシンモーフィング Download PDF

Info

Publication number
JP6005706B2
JP6005706B2 JP2014204302A JP2014204302A JP6005706B2 JP 6005706 B2 JP6005706 B2 JP 6005706B2 JP 2014204302 A JP2014204302 A JP 2014204302A JP 2014204302 A JP2014204302 A JP 2014204302A JP 6005706 B2 JP6005706 B2 JP 6005706B2
Authority
JP
Japan
Prior art keywords
virtual machine
component
virtual
type
implementation
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
JP2014204302A
Other languages
English (en)
Other versions
JP2014241178A (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.)
Amazon Technologies Inc
Original Assignee
Amazon Technologies 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 Amazon Technologies Inc filed Critical Amazon Technologies Inc
Publication of JP2014241178A publication Critical patent/JP2014241178A/ja
Application granted granted Critical
Publication of JP6005706B2 publication Critical patent/JP6005706B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/151Emulated environment, e.g. virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

個人および組織が、多種多様なタスクを行い、それを支援するために、ネットワークコンピュータを使用することが一般的となってきている。物理的なコンピュータハードウェアおよび好適なデータネットワーキング環境を所有して維持するよりもむしろ、仮想コンピュータシステムの専門プロバイダにおいて、そのような仮想システムを整備することが、ますます一般的になりつつある。仮想コンピュータシステムの使用は、費用利益および/または変化するコンピューティングリソースの必要性に急速に適応する能力を含む、いくつかの利点を提供することができる。しかしながら、従来の仮想コンピュータシステムプロビジョニングには、いくつかの欠点がある。
仮想コンピュータシステムは、最終的に、物理的コンピューティングハードウェアおよび他の実装リソースで実装される。それにもかかわらず、仮想コンピュータシステムは、存在、および基礎的実装リソースから独立している構成を有してもよい。特定の実装リソース、および実装リソースセット全体でさえも、それらが実装する仮想コンピュータシステムを終了させることなく、置換されることは珍しくない。このようにして、仮想コンピュータシステムは、比較的長い寿命を有することができる。しかしながら、そのような寿命がより長くなるにつれて、基礎的実装リソースに関する種々の問題が発生し得る。
特定の仮想コンピュータシステムプロバイダによって使用される実装リソースは、技術および/または費用性能を増進することを含む、種々の理由で変化させることができる。例えば、ハードウェア製造業者による技術の進歩が、仮想コンピュータシステムのより効率的な実装を可能にしてもよい。しかしながら、実装リソース変化は、不変仮想コンピュータシステムと互換性がない場合があり、または仮想コンピュータシステムは、新しい実装リソースを十分に活用するために再構成を必要とする場合がある。比較的寿命の長い仮想コンピュータシステムを変化した実装リソースに適合させるための十分に強力ではない、および/または融通性がない機構は、仮想コンピュータシステムを使用不可能にするか、または許容し難いレベルの効率で動作させ得る。
本開示による種々の実施形態を、図面を参照して説明する。
少なくとも1つの実施形態による態様を実装するための環境例を図示する、概略図である。 少なくとも1つの実施形態による、仮想リソースプロビジョニングアーキテクチャ例の態様を描写する、概略図である。 少なくとも1つの実施形態による、仮想リソースプロバイダ例の態様を描写する、概略図である。 少なくとも1つの実施形態による、仮想リソースプロバイダ制御プレーン例の態様を描写する、概略図である。 少なくとも1つの実施形態による、移動エージェント例の態様を描写する、概略図である。 少なくとも1つの実施形態による、移動テンプレート例の態様を描写する、概略図である。 少なくとも1つの実施形態による、一組の仮想マシンを移動させるためのステップ例を描写する、フローチャートである。 少なくとも1つの実施形態による、移動オプションクエリを処理するためのステップ例を描写する、フローチャートである。 少なくとも1つの実施形態による、移動オプション選択を処理するためのステップ例を描写する、フローチャートである。 少なくとも1つの実施形態による、能力増強のためのステップ例を描写する、フローチャートである。 少なくとも1つの実施形態による、ワークフロー管理のためのステップ例を描写する、フローチャートである。
類似構成要素および特徴を参照するために、同じ番号が本開示および図の全体を通して使用されるが、そのような番号の反復は、説明および理解を簡単にする目的のためであり、種々の実施形態への制限として見なされるべきではない。
以下の説明では、種々の実施形態を説明する。説明の目的で、実施形態の徹底的な理解を提供するために、具体的な構成および詳細が記載される。しかしながら、具体的な詳細なしで実施形態が実装されてもよいことも、当業者に明白となるであろう。さらに、説明されている実施形態を曖昧にしないために、周知の特徴が省略または簡略化されてもよい。
仮想リソースプロバイダは、物理的コンピューティングハードウェアおよび他の実装リソースの種々のセットを伴う、種々のタイプの仮想コンピューティングマシン(「仮想マシン」)等の種々の仮想リソース(すなわち、模倣コンピューティングリソース)を整備してもよい。例えば、物理的仮想マシン(VM)サーバは、複数の仮想マシンを維持してもよく、異なるタイプの仮想マシンが、VMサーバリソースの異なる部分を必要とする。仮想マシンは、仮想マシンが効率的かつ効果的に新しい実装リソースに適応することを可能にする方式で、実装リソースの異なる(例えば、異種)セット間を移動してもよい(すなわち、連続的に実装リソースの異なるセットによって実装されてもよい)。例えば、仮想マシンは、処理装置(例えば、中央処理装置)のタイプあるいは数、メモリモジュールのタイプあるいは数、および/またはハードドライブのタイプあるいは数の変化に最適に適応しながら、古くなったVMサーバから新しいVMサーバへ移動してもよい。さらに、仮想マシンは、終了させることなくタイプを変化させてもよい(「モーフィングする」)。例えば、新しいVMサーバは、現在のタイプの特定の仮想マシンをサポートしない場合があり、仮想マシンは、新しいVMサーバへ移動することの一部として、サポートされたタイプにモーフィングしてもよい。少なくとも1つの実施形態では、仮想マシンモーフィングは、仮想マシンの移動から独立している。例えば、一組の仮想マシンは、一組の仮想マシンを実装するために使用される一組の実装リソースを変化させることなく、第1のタイプの仮想マシンから第2のタイプの仮想マシンにモーフィングしてもよい。
第1のタイプの仮想マシンから第2のタイプの仮想マシンの移動は、2つのタイプのための移動テンプレートに従って行われてもよい。移動テンプレートは、1つ以上の仮想マシン、仮想化層、および/または仮想マシンの移動の前、間および/または後に行われる実装リソース再構成を特定してもよい。仮想マシンの管理者および/または他の承認されたユーザ(集合的に「管理者」)が、移動テンプレートを確立するためにユーザインターフェース(例えば、ウェブベース、プログラマチック、および/またはグラフィカルユーザインターフェース)を利用してもよい。移動テンプレートは、少なくとも部分的に、一組の提示された移動オプションのユーザ選択によって特定されてもよい。代替として、または加えて、移動テンプレートは、移動させられる仮想マシンの構成に少なくとも部分的に基づいて特定されてもよい。
承認された時に、移動エージェントは、移動のために選択された仮想マシンに追加されてもよい。移動エージェントは、特定のタイプの仮想マシンおよび/またはその構成要素に適合されてもよい。例えば、移動エージェントタイプは、仮想マシンによって維持されるオペレーティングシステムのタイプに対応してもよい。移動エージェントは、任意の好適な仮想マシン能力の存在を検出するように構成されてもよい。加えて、移動エージェントは、移動の目的で特定の仮想マシンの能力を増補するように構成されてもよい。検出および/または増補された仮想マシンの能力は、移動テンプレートエディタに報告されてもよく、対応する移動テンプレートは、そのような報告に少なくとも部分的に基づく。能力検出に加えて、移動マネージャが、管理者によって特定されるカスタム再構成を含む、種々のタイプの仮想マシン再構成をトリガするように移動エージェントと相互作用してもよい。
種々のアプローチが、種々の用途のために種々の環境で実装されてもよい。例えば、図1は、種々の実施形態による態様を実装するための環境例100の態様を図示する。理解されるように、説明の目的でウェブベースの環境が利用されてもよいが、種々の実施形態を実装するために、異なる環境が適宜に利用されてもよい。示される環境100は、試験または開発部分(側)および製品部分の両方を含む。製品部分は、適切なネットワーク104上で要求、メッセージ、または情報を送受信し、デバイス102のユーザに情報を送り返すように動作可能である、任意の適切なデバイスを含んでもよい、電子クライアントデバイス102を含む。そのようなクライアントデバイスの実施例は、パーソナルコンピュータ、携帯電話、手持ち式メッセージングデバイス、ラップトップコンピュータ、タブレットコンピュータ、セットトップボックス、パーソナルデータアシスタント、電子書籍リーダ、および同等物を含む。
ネットワーク104は、イントラネット、インターネット、セルラーネットワーク、ローカルエリアネットワーク、広域ネットワーク、無線データネットワーク、または任意の他のそのようなネットワーク、あるいはそれらの組み合わせを含む、任意の適切なネットワークを含んでもよい。そのようなシステムに利用される構成要素は、選択されるネットワークおよび/またな環境の種類に少なくとも部分的に依存してもよい。そのようなネットワークを介して通信するためのプロトコルおよび構成要素は、本明細書では詳細に論議されない。ネットワーク上の通信は、有線または無線接続、およびそれらの組み合わせによって有効にされてもよい。この実施例では、環境が、要求を受信し、それに応じてコンテンツを供給するためのウェブサーバ106を含むため、ネットワーク104は、インターネットを含むが、他のネットワークについては、当業者に明白となるように、同様の目的を果たす代替的なデバイスを利用することができる。
例証的な環境100は、少なくとも1つのアプリケーションサーバ108と、データ記憶部110とを含む。連鎖され、または別様に構成されてもよく、適切なデータ記憶部からデータを取得すること等のタスクを行うように相互作用してもよい、いくつかのアプリケーションサーバ、層、または他の要素、プロセス、または構成要素があってもよいことを理解されたい。本明細書で使用されるように、「データ記憶部」という用語は、任意の標準、分散、またはクラスタ化環境で、任意の組み合わせおよび数のデータサーバ、データベース、データ記憶デバイス、およびデータ記憶媒体を含んでもよい、データを記憶する、データにアクセスする、および/またはデータを取り出すことが可能な任意のデバイスおよびデバイスの組み合わせを指す。
アプリケーションサーバ108は、クライアントデバイス102用の1つ以上のアプリケーションの態様を実行するために必要に応じて、データ記憶部と統合するための任意の適切なハードウェアおよびソフトウェアを含んでもよく、アプリケーション用のデータアクセスおよびビジネスロジックの大部分を処理してもよい。アプリケーションサーバ108は、データ記憶部110と協働してアクセス制御サービスを提供し、HTML、XML、またはこの実施例では別の適切な構造化言語の形態でウェブサーバ106によってユーザに供給されてもよい、ユーザに転送されるテキスト、グラフィックス、音声、および/またはビデオ等のコンテンツを生成することができる。
全ての要求および応答の処理、ならびにクライアントデバイス102とアプリケーションサーバ108との間のコンテンツの送達は、ウェブサーバ106によって処理されてもよい。本明細書で論議される構造化コードが、本明細書の他の場所で論議されるように、任意の好適なデバイスまたはホストマシン上で実行されてもよいため、ウェブおよびアプリケーションサーバ106、108は、必要とされず、構成要素例にすぎないことを理解されたい。さらに、環境100は、ユーザまたはアプリケーションが登録し得るサービスとして、試験自動化フレームワークが提供されてもよいような方法で、設計されてもよい。試験自動化フレームワークは、本明細書で論議される種々の試験パターンのうちのいずれかの実装として提供されてもよいが、本明細書で論議または提案されるように、種々の他の実装も利用されてもよい。
環境100はまた、開発者、データ管理者、または試験者等のユーザがシステムにアクセスすることを可能にする、ユーザデバイス118を含む、開発および/または試験側を含んでもよい。ユーザデバイス118は、クライアントデバイス102に関して上記で説明されるような、任意の適切なデバイスまたはマシンであってもよい。環境100はまた、アプリケーションサーバ108と同様に機能するが、典型的には、例えば、コードが展開されて製品側で実行され、外部ユーザにアクセス可能となる前に、開発および試験中にコードを実行する、開発サーバ120を含んでもよい。いくつかの実施形態では、アプリケーションサーバは、開発サーバとして機能してもよく、別個の製品および試験記憶装置が利用されなくてもよい。
データ記憶部110は、特定の態様に関するデータを記憶するためのいくつかのデータ表、データベース、または他のデータ記憶機構および媒体を含んでもよい。例えば、図示されるデータ記憶部110は、製品側のためのコンテンツを供給するために利用されてもよい、製品データ112およびユーザ情報116を記憶するための機構を含む。データ記憶部110はまた、試験側のためのユーザ情報とともに利用されてもよい、試験データ114を記憶するための機構を含むことも示されている。適宜の上記の機構のうちのいずれかに、またはデータ記憶部110の中の付加的な機構に記憶され得る、ページ画像情報およびアクセス権情報等のためのデータ記憶部110に記憶される、多くの他の態様があってもよいことを理解されたい。
データ記憶部110は、それと関連付けられる論理を通して、アプリケーションサーバ108または開発サーバ120から命令を受信し、それに応じてデータを取得、更新、または別様に処理するように動作可能である。一実施例では、ユーザは、あるタイプの項目に対する検索要求を提出する場合がある。この場合、データ記憶部110は、ユーザの識別を検証するようにユーザ情報116にアクセスする場合があり、そのタイプの項目に関する情報を取得するようにカタログ詳細情報にアクセスしてもよい。次いで、情報は、ユーザがユーザデバイス102上のブラウザを介して閲覧することができるウェブページ上の結果一覧等で、ユーザに返信されてもよい。特定の関心項目の情報は、ブラウザの専用ページまたはウィンドウの中で閲覧されてもよい。
各サーバは、典型的には、そのサーバの一般管理および動作のための実行可能プログラム命令を提供するオペレーティングシステムを含み、典型的には、サーバのプロセッサによって実行された時に、サーバがその意図した機能を果たすことを可能にする、命令を記憶するコンピュータ可読媒体を含む。オペレーティングシステムのための好適な実装およびサーバの一般機能性は、公知であるか、または市販されており、特に本明細書の開示に照らして、当業者によって容易に実装される。
一実施形態での環境100は、1つ以上のコンピュータネットワークまたは直接接続を使用して、通信リンクを介して相互接続される、いくつかのコンピュータシステムおよび構成要素を利用した分散コンピューティング環境である。しかしながら、そのようなシステムは、図1で図示されるよりも少数または多数の構成要素を有するシステムで、同等によく動作できることが当業者によって理解されるであろう。したがって、図1のシステム100の描写は、本開示の範囲を限定するものではなく、本質的に例証的であるものとして解釈されるべきである。
少なくとも1つの実施形態では、環境100の1つ以上の態様は、仮想リソースプロビジョニングアーキテクチャを組み込んでもよく、および/または仮想リソースプロビジョニングアーキテクチャに組み込まれてもよい。図2は、少なくとも1つの実施形態による、仮想リソースプロビジョニングアーキテクチャ例200の態様を描写する。仮想リソースプロビジョニングアーキテクチャ例200は、ネットワーク208上で仮想リソースプロバイダ206に通信可能に接続される、複数のクライアント202−204を含む。例えば、クライアント202−204は、図1のコンピュータデバイス102等のコンピュータデバイスおよび/またはそのようなコンピュータデバイスに組み込まれたクライアントプログラムに対応してもよい。クライアント202とクライアント204との間の省略記号は、仮想リソースプロビジョニングアーキテクチャ200が、任意の好適な数のクライアントを含んでもよいことを示すが、明確にするために、2つだけが図2で示されている。省略記号は、図面の全体を通して同様に使用される。
クライアント202−204のうちの1つ以上は、仮想リソースプロバイダ206の制御プレーン210と相互作用し、それにより、1つ以上の仮想リソース212を整備するために、仮想リソースプロバイダ206の1人以上の顧客によって利用されてもよい。代替として、または加えて、クライアント202−204のうちの1つ以上は、整備された仮想リソース212と相互作用するために、(必ずしも仮想リソースプロバイダ206の顧客によってではないが)利用されてもよい。整備された仮想リソース212は、任意の好適なタイプおよび/または数の仮想リソース214−216を含んでもよい。好適な仮想リソース212の実施例は、仮想コンピュータシステム等の仮想マシン、仮想ネットワーク接続、仮想データ記憶部、特殊データ処理エージェント、音声およびビデオストリーミングエージェントを含むメディアストリーミングエージェント、メッセージ待ち行列、公開・登録トピックに公開されたイベントに合致する登録を有する加入者に通知するように構成される、公開・登録トピック、監視エージェント、負荷バランシングエージェント、およびそれらの好適な組み合わせを含む。
仮想リソースプロバイダ206は、任意の好適なタイプおよび/または数の実装リソース220−222を含んでもよい。仮想リソース214−216のうちのそれぞれは、一組の実装リソース218によって実装されてもよい。少なくとも1つの実施形態では、実装リソース218の種々の実装リソースは、少なくとも部分的に、仮想リソース212の複数の仮想リソースを実装することに関与するように構成されてもよい。好適な実装リソース220−222の実施例は、VMサーバ、データ記憶部サーバ、コンピュータ、サーバラック、スイッチ、ルータ、ゲートウェイ、ブリッジ、ハブ、リピータ、ファイアウォール、および無線送受信機を含む、ネットワーキングハードウェア、電源、発電機、データセンター、データセンター内の部屋、移動データセンター、ならびにハードドライブを含む不揮発性記憶デバイス、中央処理装置(CPU)等の処理装置、処理装置の中のキャッシュ、マルチコア処理装置の中の処理コア、ランダムアクセスメモリ(RAM)モジュールを含むメモリモジュールおよびマルチチップメモリモジュールのRAMチップ等の揮発性記憶デバイス、ネットワークインターフェースハードウェア、およびそれらの好適な組み合わせを含む。制御プレーン210は、仮想リソースプロビジョニング要求を処理し、実装リソース218への仮想リソース212の割付を管理し、および/または仮想リソース212への実装リソース218の割付を管理してもよい。少なくとも1つの実施形態による仮想リソースプロバイダ制御プレーン例は、図4を参照して以下でより詳細に説明される。
仮想マシンは、特に遠隔でアクセス可能なコンピュータシステム機能性に関して、物理的コンピュータシステムの機能性のうちのいくらかまたは全てを提供してもよい。図3は、少なくとも1つの実施形態による、仮想リソースプロバイダ300において整備された仮想マシン例302−304の態様を描写する。仮想リソースプロバイダ300は、図2の仮想リソースプロバイダ206の実施例であり、対応する実装リソース306と、仮想マシン302−304を含む仮想リソース308とを有する。図3では、仮想化層310は、実装リソース306と仮想リソース308との間に位置して明示的に示されている。仮想化層310は、基礎的実装リソース306から仮想マシン302−304を分断し、特定の実装リソースを共有する時でさえも仮想マシン302−304を相互から区分化してもよい。例えば、仮想化層310は、実装リソース306のVMサーバによって実行される、いわゆる「ハイパーバイザ」を組み込んでもよい。そのようなハイパーバイザおよび仮想化層は、当技術分野で公知であるため、それらの詳細のうちのいくつかのみが本明細書で説明される。
各仮想マシン302、304は、それぞれ、オペレーティングシステム312、314および複数のアプリケーション316−318、320−322を含むものとして示されている。仮想マシン302−304は、任意の好適なコンピュータオペレーティングシステム(例えば、UNIX(登録商標)オペレーティングシステム)を含んでもよく、異なる仮想マシン302、304が、異なるオペレーティングシステム312、314および/または異なるオペレーティングシステムバージョンおよび構成を含んでもよい。各仮想マシン302、304は、複数のオペレーティングシステムを含んでもよいが、これは、明確にするために図3では示されていない。アプリケーション316−322は、任意の好適なコンピュータ実行可能命令を含む、任意の好適なコンピュータアプリケーションであってもよい。アプリケーション316−322は、図1のウェブサーバ106、アプリケーションサーバ108、開発サーバ120、および/またはデータ記憶部110によって提供されるものに対応するサービスを含む、任意の好適なサービスを仮想マシンのユーザに提供してもよい。仮想マシン302−304は、オペレーティングシステム312−314から分離したアプリケーション316−322を有する必要がない。
仮想マシン302−304を含む仮想リソース308のプロビジョニング、構成、再構成、および/またはデプロビジョニング(集合的に「プロビジョニング」)は、仮想リソースプロバイダ206の図4の制御プレーン210(図2)によって制御されてもよい。図4は、少なくとも1つの実施形態による、制御プレーン例402の態様を描写する。図4の制御プレーン402は、図2の制御プレーン210の実施例である。制御プレーン402は、少なくとも、クライアント202−204のうちの1つ以上から仮想リソース212プロビジョニング要求を受信するように構成される、プロビジョニングインターフェース404と、少なくとも、1つ以上のプロビジョニングワークフローに従ってプロビジョニング要求への応答を誘導するように構成される、ワークフロー構成要素406と、少なくとも、仮想リソース212への実装リソース218の割付を管理するように構成される、リソース割付構成要素408とを含んでもよい。
プロビジョニングインターフェース404は、任意の好適なプロビジョニングインターフェース要素を含んでもよい。好適なプロビジョニングインターフェース要素の実施例、仮想リソース212(図2)を整備する要求に対応するインターフェース要素、仮想リソース212構成情報へのアクセスを提供するインターフェース要素、およびそのようなプロビジョニング関連動作のための権限を確立するための認証を有効にする1つ以上のインターフェース要素を含む。プロビジョニングインターフェース404は、グラフィカルユーザインターフェース(GUI)等のユーザインターフェース(UI)、ウェブベースのインターフェース、アプリケーションプログラミングインターフェース(API)および/またはプロビジョニングインターフェース要素に対応する一組のリモートプロシージャコール(RPC)等のプログラミングインターフェース、プロビジョニングインターフェース404のインターフェース要素が通信プロトコルのメッセージに対応する、メッセージングインターフェース等のメッセージングインターフェース、および/またはそれらの任意の好適な組み合わせを組み込んでもよく、および/またはそれらに組み込まれてもよい。
少なくとも1つの実施形態では、プロビジョニングインターフェース404およびリソース割付構成要素408は、ワークフロー構成要素406によって維持される1つ以上のワークフローを作成してもよく、および/またはワークフロー構成要素406にそれらを作成させてもよい。プロビジョニングワークフローおよびポリシー施行ワークフロー等のワークフローは、プロビジョニングまたはポリシー施行等のジョブを行うように実行される、タスクの1つ以上のシーケンスを含んでもよい。本明細書で使用される用語としてのワークフローは、タスク自体ではないが、タスクへ、およびタスクからの情報の流れ、ならびにそれが制御するタスクの実行の順序を制御してもよい、タスク制御構造である。例えば、ワークフローは、実行中にいつでもプロセスの状態を管理し、戻すことができる、状態マシンと見なされてもよい。ワークフローは、ワークフローテンプレートから作成されてもよい。例えば、プロビジョニングワークフローは、リソース割付構成要素408によってパラメータを伴って構成されるプロビジョニングワークフローテンプレートから作成されてもよい。
ワークフロー構成要素406は、確立されたワークフローを修正し、さらに特定し、および/またはさらに構成してもよい。例えば、ワークフロー構成要素406は、実行する、および/または特定のタスクに割り当てられる、仮想リソースプロバイダ206の特定の実装リソース218(図2)を選択してもよい。そのような選択は、ワークフロー構成要素406によって評価されるような特定のタスクのコンピューティングリソースの必要性に少なくとも部分的に基づいてもよい。別の実施例として、ワークフロー構成要素406は、付加的および/または重複タスクを確立されたワークフローに追加し、および/または確立されたワークフローの中のタスク間の情報の流れを再構成してもよい。確立されたワークフローのそのような修正は、ワークフロー構成要素406による実行効率分析に少なくとも部分的に基づいてもよい。例えば、いくつかのタスクが並行して効率的に行われてもよい一方で、他のタスクは以前のタスクの成功した完了に依存してもよい。
プロビジョニングの一部として、仮想リソース、プロビジョニングインターフェース404、および/またはワークフロー構成要素406は、リソース割付構成要素408が、仮想リソースを実装するために必要とされる適切な一組の実装リソース218(図2)を判定し、要求された実装リソースが利用可能である、および/または仮想リソースプロバイダ206の割付方針に従っているかどうかを判定し、および/または要求された実装リソースを割り付けることを要求してもよい。リソース割付構成要素408は、任意の好適なリソース割付および/またはリソーススケジューリングアルゴリズムを組み込んでもよい。そのようなアルゴリズムの種々の態様は、当業者に周知であるため、いくつかの詳細のみが本明細書で説明される。
制御プレーン402はさらに、少なくとも、実装リソース306の異なるセット間で仮想マシン302−304(図3)を移動させるように構成される、仮想マシン移動構成要素410を含んでもよい。仮想マシン移動構成要素410は、仮想マシン移動を特定および要求するように、クライアント202−204(図2)が相互作用し得る、ユーザインターフェース412を含んでもよい。ユーザインターフェース412は、少なくとも、ユーザが1つ以上の移動テンプレート416を作成する、読み取る、更新する、および削除する(集合的に「編集する」)ことを可能にするように構成される、移動テンプレートエディタ414へのアクセスを提供してもよい。例えば、ユーザインターフェース412は、少なくとも、承認されたユーザが移動テンプレート416を編集することを可能にするように構成される、グラフィカルユーザインターフェース(GUI)418を含んでもよい。少なくとも1つの実施形態による、移動テンプレートの実施例は、図6を参照して以下でより詳細に説明される。
ユーザインターフェース412はさらに、ユーザが特定の一組の仮想マシン302−304(図3)に対する一組の移動オプションを要求することを可能にしてもよい。例えば、特定の一組の仮想マシン302−304は、1つ以上の特定のタイプおよび/または構成の仮想マシンを含んでもよく、移動オプションは、特定のタイプおよび/または構成によって制約されてもよい。要求および/または明示的な承認に応答して、仮想マシン移動構成要素410は、1つ以上の移動エージェント420を特定の一組の仮想マシン302−304のうちの1つ以上に追加してもよく、追加された移動エージェント420は、それらが追加された仮想マシンの特定のタイプおよび/または構成を特徴付ける情報を判定および/または提供してもよい。少なくとも1つの実施形態による移動エージェントの実施例は、図5を参照して以下でより詳細に説明される。
仮想マシン302(図3)に追加された移動エージェント420は、移動エージェントインターフェース422を通して、仮想マシン302を特徴付ける情報を仮想マシン移動構成要素410に提供し返してもよい。代替として、または加えて、任意の好適なエージェント(例えば、顧客ユーザエージェント)が、移動エージェントインターフェース422を通して特性化情報を提供してもよい。仮想マシン302を特徴付ける情報は、仮想マシンを変換および/または再構成して効果的および/または効率的に仮想マシンを移動させるために必要および/または望ましい措置を判定するために好適である、任意の情報であってもよい。そのような特性化情報の実施例は、仮想マシンに割り付けられたいくつかの物理的処理装置、仮想マシンに割り付けられたいくつかの処理コア、仮想マシンに割り付けられた1つ以上のタイプの物理的処理装置、仮想マシンに割り付けられた、あるサイズおよび/またはタイプの揮発性データ記憶装置、仮想マシンに割り付けられた、あるサイズおよび/またはタイプの不揮発性データ記憶装置、仮想マシンに割り付けられる、ネットワークインターフェースデバイス等のネットワーキングデバイスを含む、いくつかおよび/またはあるタイプのネットワーキングリソースを含む。そのような特性化情報のさらなる実施例は、オペレーティングシステム312が、物理的処理装置、処理コア、メモリモジュール等の揮発性記憶デバイス、およびハードドライブ等の不揮発性記憶デバイス等の特定の実装リソース306に関するホットプラグ機能性を含むかどうか等の、仮想マシン302のオペレーティングシステム312の1つ以上の構成要素の特性を含む。
仮想マシン移動構成要素412は、一組の移動オプション候補(例えば、VMタイプAからVMタイプC、DおよびKへ)を判定するように、移動エージェントインターフェース422および/またはユーザインターフェース412において受信される特性化情報に基づいて、一組の利用可能な移動オプション(例えば、VMタイプAからVMタイプB−Zへ)をフィルタにかけてもよく、一組の移動オプション候補は、選択のために管理者に提示されてもよい。仮想マシンへの移動エージェント420の追加が承認されない時に、仮想マシン移動構成要素410は、フィルタとして特性化情報の保守的なデフォルトセットを使用してもよく、おそらく、より少数の候補セットをもたらす。管理者は、所望であれば、より多数の候補セットを生成しようとするために、付加的なそのような承認とともに移動オプション要求を再提出してもよい。移動オプションは、移動テンプレート416に対応してもよい。代替として、または加えて、提示された一組の移動オプション候補の間から選択することは、一組の利用可能な移動テンプレート416をフィルタにかけてもよい。さらなる代替案として、またはさらに加えて、移動オプション選択は、移動テンプレート416の1つ以上の部分を構成および/または特定してもよい。
いったん好適な移動オプションおよび/または移動テンプレート416が利用可能になると、管理者は、特定の移動テンプレート416を特定の複数組の仮想マシン302−304(図3)に割り当ててもよい。次いで、移動管理構成要素424は、割り当てられた移動テンプレート416に従って、複数組の仮想マシン302−304を移動させてもよい。移動テンプレート416は、1つ以上の仮想マシン302−304、仮想化層310、および/または対応する仮想マシン302−304の移動の前、間、および/または後に行われる実装リソース306の再構成を特定してもよい。特定された再構成が仮想マシン302−304の内部にある時に、移動管理424および仮想マシン302−304は、移動エージェント420のうちの好適な1つを追加させ、移動管理構成要素424は、移動エージェントインターフェース422を通して、追加された移動エージェント420と相互作用することによって、内部再構成をトリガしてもよい。
移動エージェント420は、1つ以上の移動タスクを行うように仮想マシン302−304(図3)によって実行可能である命令を含んでもよい。図5は、少なくとも1つの実施形態による、移動エージェント例502の態様を描写する。移動エージェント502は、図4の移動エージェント420の実施例である。移動エージェント502は、能力検出構成要素504を含んでもよい。能力検出構成要素504は、1つ以上の仮想マシン302−304能力を検出してもよい。例えば、能力検出構成要素504は、オペレーティングシステム312が特定の実装リソース306に関するホットプラグ機能性を含むかどうかを検出してもよい。能力検出構成要素504は、少なくとも、特定のタイプの仮想マシンの特定の能力を検出するように構成される、1つ以上の検出器506−508を含んでもよい。例えば、能力検出構成要素504は、移動エージェント502が追加される仮想マシン302のオペレーティングシステム312の検出されたタイプおよび/またはバージョンに少なくとも部分的に基づいて、特定の一組の検出器506−508を選択してもよい。
能力検出構成要素504は、特定の仮想マシン302(図3)が移動に関して特定の能力を持たないことを検出してもよい。そのような場合において、能力増強構成要素510が、承認された時に、仮想マシン302の能力を一時的または永久に増強してもよい。例えば、能力増強構成要素510は、物理的処理装置、処理コア、メモリモジュール等の揮発性記憶デバイス、およびハードドライブ等の不揮発性記憶デバイス等の、特定の実装リソース306に関するホットプラグ機能性を含むように、仮想マシン302のオペレーティングシステム312を増強してもよい。能力増強構成要素510は、仮想マシン302に展開される、1つ以上の増強パッケージ512−514を含んでもよい。例えば、増強パッケージ512−514は、増強機能性の特定のパッケージおよび/またはオペレーティングシステム312のタイプおよび/またはバージョン等の特定の仮想マシン302の構成要素タイプおよび/またはバージョンに対応してもよい。
いったん仮想マシン302(図3)に追加されると、移動エージェント502は、能力検出および増強の役割を超えた役割を果たすことができる。移動エージェント502はさらに、少なくとも、移動テンプレート416のうちの1つ以上に従って、移動管理構成要素424(図4)によって指図されるように仮想マシン302を再構成するように構成される、再構成構成要素516を含んでもよい。移動エージェント502が仮想マシン302とともに新しい実装リソースセットに移動させられるため、再構成構成要素516は、移動前および後の両方で仮想マシン302を再構成してもよい。例えば、移動が、第1のタイプから、より少ない物理的プロセッサが割り付けられる第2のタイプへ、仮想マシン302をモーフィングすると仮定されたい。再構成構成要素516は、移動に備えて、より少ない物理的プロセッサにアクセスするように仮想マシン302を再構成してもよい。別の実施例として、移動が、第1のタイプから、より大型の不揮発性データ記憶装置の割付を有する第2のタイプへ、仮想マシン302をモーフィングすると仮定されたい。移動後に、再構成構成要素516は、より大型の割付を活用するように、ファイルシステムおよび論理データ記憶容量をサイズ変更してもよい。再構成構成要素516は、移動エージェントが追加される仮想マシン302のために適合される、1つ以上のコンフィギュレータ518−520を含んでもよい。例えば、コンフィギュレータ518−520は、オペレーティングシステム312のタイプおよび/またはバージョン等の特定の仮想マシン302の構成要素タイプおよび/またはバージョンに適合されてもよい。
多くのオペレーティングシステム312−314(図3)およびアプリケーション316−322が標準化される一方で、仮想マシン302−304は、カスタムアプリケーションおよびオペレーティングシステムを含んでもよく、標準化アプリケーションでさえも、非標準特性を伴うデータ構造を管理するように構成されてもよい。したがって、移動エージェント502は、少なくとも、移動テンプレート416のうちの1つ以上に従って、移動管理構成要素424(図4)によって指図されるように1つ以上のユーザ提供された構成要素524−526を起動するように構成される、カスタム措置構成要素522を含んでもよい。例えば、管理者は、移動テンプレート416の作成中に構成要素524−526のうちの1つ以上を提供してもよい。ユーザ提供された構成要素524−526は、解釈されたプログラミング言語および/またはスクリプト言語を含む、任意の好適なプログラミング言語で仮想マシン302によって実行可能である命令を含んでもよい。例えば、ユーザ提供された構成要素524−526は、割り付けられた実装リソース306の増加および/または減少に応答して、アプリケーションレベル再構成を行ってもよい。
移動エージェント502の活動は、移動テンプレート416のうちの1つ以上に従って、移動管理構成要素424(図4)によって制御されてもよい。図6は、少なくとも1つの実施形態に従って、移動テンプレート例602の態様を描写する。移動テンプレート602は、制御プレーン402のワークフロー構成要素406によって管理される仮想マシン移動ワークフローを確立するために好適な1つ以上のタスクを特定してもよい。移動テンプレート602によって特定されるタスクは、移動前再構成タスク604、ホットアンプラグ措置606、1つ以上の移動タスク608、ホットプラグ措置610、および移動後再構成タスク612を含んでもよい。
ホットアンプラグ措置606は、仮想マシン302に現在利用可能である実装リソース306(図3)のうちの1つ以上の除去に対応する、1つ以上のタスクを含んでもよい。例えば、ホットアンプラグ措置606は、仮想マシン302に利用可能な物理的処理装置および/または処理コアの数を減少させること、仮想マシン302に利用可能である物理的メモリモジュールの数および/または割り付けられた揮発性データ記憶サイズを減少させること、および仮想マシン302に利用可能である物理的ハードドライブの数および/または割り付けられた不揮発性データ記憶サイズを減少させることを含んでもよい。そのような措置606は、物理的コンピュータシステムから物理的構成要素を抜くことに対応する効果を有してもよい。したがって、いくつかのアプリケーションレベルおよび/またはオペレーティングシステムレベル準備が望ましくてもよく、および/または必要であってもよい。移動テンプレート602の移動前再構成タスク604部分は、ホットアンプラグ措置606に備えて行われる1つ以上のタスクを含んでもよい。
同様に、ホットプラグ措置610は、仮想マシン302に現在利用不可能である実装リソース306(図3)のうちの1つ以上の追加に対応する、1つ以上のタスクを含んでもよい。例えば、ホットプラグ措置610は、仮想マシン302に利用可能な物理的処理装置および/または処理コアの数を増加させること、仮想マシン302に利用可能である物理的メモリモジュールの数および/または割り付けられた揮発性データ記憶サイズを増加させること、および仮想マシン302に利用可能である物理的ハードドライブの数および/または割り付けられた不揮発性データ記憶サイズを増加させることを含んでもよい。そのような措置610は、物理的構成要素を物理的コンピュータシステムに差し込むことに対応する効果を有してもよい。したがって、いくつかのアプリケーションレベルおよび/またはオペレーティングシステムレベル再構成が、付加的な実装リソースを活用するために望ましくてもよく、および/または必要であってもよい。移動テンプレート602の移動後再構成タスク612部分は、ホットプラグ措置610によって追加されるリソースに適応するように行われる、1つ以上のタスクを含んでもよい。
移動テンプレート602の移動タスク608部分は、第1組の実装リソースから第2組の実装リソースへ、および/または第1のタイプの仮想マシンから第2のタイプの仮想マシンへ、仮想マシン302(図3)を移動させるために必要とされる、1つ以上のタスクを特定してもよい。移動は、仮想マシン302の動作が中断されない、または最小限に(例えば、1秒未満にわたって)中断されるという点で、「生」であってもよい。代替として、または加えて、移動は、仮想マシン動作へのより有意な中断を伴う「保存および復元」移動であってもよく、および/または仮想マシンの「再起動」を伴ってもよい。仮想マシンのためのそのような移動および/または生移動技法は、当業者に公知であるため、詳細のうちのいくつかのみが本明細書で説明される。少なくとも1つの実施形態では、移動タスク608は、例えば、仮想マシン302のタイプを転換するように、仮想マシン302の移動中に行われる、1つ以上のタスクを特定してもよい。移動テンプレート602の部分604−612のうちの1つ以上は、空であってもよい。例えば、第2組の実装リソースが第1組の実装リソースとは異ならない(例えば、仮想マシン302がモーフィングされるが、移動させられない)時の移動テンプレート602の移動タスク608部分である。そのような場合において、移動テンプレート602は、モーフィングテンプレートと呼ばれてもよい。
ここで、説明は、少なくとも1つの実施形態に従って行われてもよい、ステップおよび/またはプロシージャ例に取り掛かる。図7は、少なくとも1つの実施形態による、一組の仮想マシンを移動させるためのステップ例を描写する。ステップ702では、第1のタイプ(「タイプA」)の1つ以上の仮想マシンが整備されてもよい。例えば、仮想マシン302−304(図3)は、制御プレーン402のプロビジョニングインターフェース404(図4)を用いて整備されてもよい。ステップ704では、1つ以上のサービスが、ステップ702で整備された仮想マシンに提供されてもよい。例えば、仮想マシン302は、ウェブベースのサービスを提供するアプリケーション316を維持してもよい。
整備された仮想マシンは、しばらくの間、サービスを提供してもよく、その後、移動が望ましく、および/または必要になる。ステップ706では、移動を促進するために、整備された仮想マシンを移動させるために好適な移動テンプレートが確立されてもよい。例えば、移動テンプレート416(図4)のうちの1つが、グラフィカルユーザインターフェース418を用いて確立されてもよい。この実施例では、移動は、第1のタイプの仮想マシンから第2のタイプの仮想マシン(「タイプB」)への仮想マシンの変換を伴う。ステップ708では、整備された仮想マシンが、移動のために選択されてもよい。例えば、一組の仮想マシンが、仮想マシン移動構成要素410のグラフィカルユーザインターフェース418を用いて選択され、ステップ706で確立された移動テンプレートと関連付けられてもよい。
ステップ710では、特定の一組の仮想マシンのうちの次の(例えば、第1の)ものが、移動のために選択されてもよい。ステップ712では、選択された仮想マシンが、ステップ706で確立された移動テンプレートに従って移動させられてもよい。例えば、移動管理構成要素424は、移動テンプレートに従って、移動をトリガし、および/または行ってもよい。代替として、または加えて、移動管理構成要素424は、仮想マシン移動を達成するようにワークフロー構成要素406と協働してもよい。移動ワークフローは、関連移動テンプレートに少なくとも部分的に基づいてもよい。ステップ714では、特定の一組の中のより多くの仮想マシンが移動させられるべきかどうかを判定してもよい。もしそうであれば、ステップ714を組み込むプロシージャは、移動のための一組の仮想マシンのうちの次のものを選択するように、ステップ710へ進んでもよい。そうでなければ、プロシージャは、ステップ716へ進んでもよい。ステップ716では、移動させられ、変換された仮想マシンが、ステップ704のサービスを提供し続けてもよい。
移動テンプレート602(図6)を確立することは、複雑なプロセスとなり得る。仮想マシン移動構成要素410(図4)は、移動テンプレート602を確立するのに管理者を支援するツールを提供してもよい。図8は、少なくとも1つの実施形態による、移動オプションクエリを処理するためのステップ例を描写する。ステップ802では、移動オプションクエリが受信されてもよい。例えば、クエリは、仮想マシン移動構成要素410のグラフィカルユーザインターフェース418によって受信されてもよい。クエリは、管理者が移動オプションを考慮している、特定の一組の仮想マシンと関連付けられてもよい。ステップ804では、1つ以上の移動エージェントを一組の仮想マシンに追加する承認が、要求されてもよい。例えば、グラフィカルユーザインターフェース418が、ステップ802のクエリを発行して、管理者からの承認を要求してもよい。
ステップ806では、要求された承認が受信されたかどうかが判定されてもよい。例えば、管理者が、追加を承認する、一組の暗号証明書を提供してもよい。承認が受信された場合、ステップ806を組み込むプロシージャは、ステップ808へ進んでもよい。そうでなければ、プロシージャは、ステップ810へ進んでもよい。
ステップ808では、好適な一組の移動エージェントが、一組の仮想マシンに追加されてもよい。例えば、仮想マシン移動構成要素410(図4)は、好適な移動エージェント420を仮想マシン302(図3)に追加してもよい。特定の仮想マシンに追加するために選択される特定の移動エージェントは、仮想マシンとの互換性、例えば、仮想マシンのオペレーティングシステムとの互換性のために選択されてもよい。代替として、移動エージェント420は、各利用可能なタイプの仮想マシン302−304と互換性がある構成要素を組み込んでもよく、および/または互換性を持つよう、そのような構成要素を伴ってそれ自体を構成することが可能であってもよい。ステップ812では、追加された移動エージェントが、例えば、移動エージェント502(図5)の能力検出構成要素504を用いて、一組の仮想マシンおよび/またはその構成要素を特徴付けてもよい。ステップ814では、特性化情報が受信されてもよい。例えば、追加された移動エージェントは、仮想マシン移動構成要素410の移動エージェントインターフェース422に特性化情報を提供してもよい。
ステップ814の特性化情報を確認するように、移動エージェントを一組の仮想マシンに追加するための承認が受信されない場合には、ステップ810で、一組の「フェイルセーフ」デフォルトが、特性化情報の代わりに識別されてもよい。デフォルトは、仮想マシンタイプおよび/または実装リソースの非互換性により、移動を失敗させる場合がある移動オプションを除外するという意味で、フェイルセーフであってもよい。ステップ816では、ステップ814で受信された特性化情報またはステップ810のフェイルセーフデフォルトに基づいて、一組の移動オプションが判定されてもよい。例えば、仮想マシン移動構成要素410(図4)が、一組の移動オプションを判定してもよい。ステップ818では、一組の移動オプションが、例えば、グラフィカルユーザインターフェース418のステップ802のクエリを提出した管理者に提示されてもよい。
一組の移動オプションは、(もしあれば)どの増強パッケージ512−514(図5)を展開するか、互換性がない実装リソースを模倣する(潜在的に宛先VMタイプの数を増加させる)かどうか、互換性があるが異なる実装リソースを移動後に「暴露する」(またはそれらの移動前タイプとして新しい実装リソースを「隠す」)かどうか、ならびに一組の候補宛先VMタイプ等の移動テンプレート602(図6)の構成オプションを含んでもよい。図9は、少なくとも1つの実施形態による、移動オプション選択を処理するためのステップ例を描写する。ステップ902では、移動オプション選択が受信されてもよい。例えば、仮想マシン移動構成要素410(図4)が、グラフィカルユーザインターフェース418を通して管理者から選択を受信してもよい。ステップ904では、1つ以上の移動テンプレートは、受信した移動オプション選択に少なくとも部分的に基づいて選択されてもよい。例えば、移動テンプレートエディタ414は、受信した移動オプション選択に基づいて、移動テンプレート416を確立および/または構成してもよい。
ステップ906では、選択された仮想マシンが、例えば、図7を参照して上記で説明されるように、確立された移動テンプレートに従って移動させられてもよい。ステップ906の移動は、それ自体が複数のステップを含んでもよい。例えば、図3の仮想マシン302が、図6の移動テンプレート602に従って移動させられると仮定されたい。ステップ908では、仮想マシン302の1つ以上の構成要素の移動前再構成が行われてもよい。例えば、移動前再構成タスク604およびホットアンプラグ措置606が行われてもよい。ステップ910では、仮想マシン302が、状態転送を完了する(ステップ912)ために一時停止されてもよい。仮想マシン302を再開する(ステップ916)前に、仮想マシンの1つ以上の構成要素の移動内(または移動中)再構成が行われてもよい。例えば、アプリケーション316−318が、異なるオペレーティングシステム312の構成要素に再リンクされてもよく、および/またはデバイス再発見が、オペレーティングシステム312のレベルでトリガされてもよい。ステップ918では、仮想マシン302の1つ以上の構成要素の移動後再構成が行われてもよい。例えば、ホットプラグ措置610および移動後再構成タスク612が、移動テンプレート602によって特定されるように行われてもよい。
図5を参照して上記で説明されるように、移動エージェント502は、能力増強構成要素510を含んでもよい。図10は、少なくとも1つの実施形態による、能力増強のためのステップ例を描写する。ステップ1002では、仮想マシン能力検出は、例えば、移動エージェント502の特定の検出器506によって行われてもよい。ステップ1004では、能力が検出されたかどうかが判定されてもよい。もしそうであれば、ステップ1004を組み込むプロシージャは、ステップ1006へ進んでもよい。そうでなければ、プロシージャは、ステップ1008へ進んでもよい。
ステップ1008では、検出されていない能力を移動エージェント502(図5)によって追加することができるかどうかが判定されてもよい。例えば、能力増強構成要素510は、増強パッケージ512−514のうちの1つが能力を提供し、移動エージェント502が追加された仮想マシンと互換性があるかどうかを判定してもよい。能力を追加することができる場合、プロシージャは、ステップ1010へ進んでもよい。そうでなければ、プロシージャは、ステップ1006へ進んでもよい。
ステップ1010では、移動エージェント502(図5)が能力を追加する権限を与えられているかどうかが判定されてもよい。例えば、管理者が、利用可能な増強パッケージ512−514の特定の一部を追加するように移動エージェント502を承認していてもよく、移動エージェント502は、ステップ1008で識別された特定の増強パッケージを追加する権限を与えられていることをチェックしてもよい。もしそうであれば、プロシージャは、ステップ1012へ進んでもよい。そうでなければ、プロシージャは、ステップ1006へ進んでもよい。
ステップ1012では、能力が仮想マシン302に追加されてもよい。例えば、移動エージェント502が、増強パッケージ512を仮想マシン302のオペレーティングシステム312に追加してもよい。ステップ1006では、ステップ1002、ステップ1008、ステップ1010、およびステップ1012の結果を含む、能力検出プロセスの結果が報告されてもよい。例えば、報告は、移動エージェントインターフェース422を用いて仮想マシン移動構成要素410(図4)に提供されてもよい。
図4を参照して上記で説明されるように、制御プレーン402は、ワークフロー構成要素406によって維持される、1つ以上のワークフローによって促進されてもよい。図11は、少なくとも1つの実施形態による、ワークフロー管理のためのステップ例を描写する。ステップ1102では、要求が制御プレーン402(図4)のインターフェースによって受信されてもよい。例えば、制御プレーン402のユーザインターフェースのうちの1つが、仮想リソースプロバイダ206(図2)のユーザ、顧客、および/または管理者から要求を受信してもよい。要求は、例えば、シンプルオブジェクトアクセスプロトコル(SOAP)呼び出しを利用した、アプリケーションプログラミングインターフェース(API)またはウェブサービスインターフェース等のプログラマチックインターフェースへの呼び出しであってもよい。代替として、または加えて、要求は、ウェブベースのGUI等のグラフィカルユーザインターフェース(GUI)を通して受信されてもよい。ステップ1104では、要求が、要求を成功裏に完了するために必要とされる1つ以上の措置を判定するように分析されてもよい。例えば、プロビジョニングインターフェース404が、要求を分析し、一組の仮想リソース212を整備するために必要とされる一組の措置を判定してもよい。要求を受信するインターフェース要素が、行われる特定の措置に対応する時に、インターフェースは、行われる措置の態様および/またはパラメータを判定する際に利用される情報を要求から抽出してもよい。
ステップ1106では、ステップ1104で判定された1つ以上の措置に少なくとも部分的に基づいて、ワークフローを作成するように、要求が送信されてもよい。例えば、プロビジョニングインターフェース404(図4)は、要求をワークフロー構成要素406に送信してもよい。ワークフローを作成する要求は、措置、措置のタイプ等の措置メタデータ、および/または措置パラメータを含んでもよい。少なくとも1つの実施形態では、制御プレーン402および/またはワークフロー構成要素406が、そのような要求のためのジョブ待ち行列を維持し、ジョブ待ち行列への新しい追加に応答して、ワークフローが作成される。ステップ1108では、ワークフローおよび1つ以上の構成要素タスクが作成されてもよい。例えば、ワークフロー構成要素406が、作成する適切なワークフローおよび構成要素タスクを判定するように、ステップ1106の要求を分析してもよい。
ステップ1110では、構成要素タスクの実行が、ワークフローに従って誘導されてもよい。例えば、ワークフロー構成要素406(図4)が、一組の仮想リソースを整備するように、種々の実装リソースのインターフェースの要素を起動してもよい。代替として、または加えて、ワークフロー構成要素406は、仮想リソースプロバイダ206(図2)の構成要素による構成要素タスクの実行のためにビッドを管理してもよい。ステップ1112では、ワークフローが終了したかどうかが判定されてもよい。例えば、ワークフロー構成要素406は、ワークフローによって管理される一連のタスクの中の最終タスクが完了したかどうかを判定してもよい。もしそうであれば、ステップ1112を組み込むプロシージャは、ステップ1114へ進んでもよい。そうでなければ、プロシージャは、次のタスクおよび/またはタスクシーケンスのためにステップ1110に戻ってもよい。ワークフローは、並行して実行する複数のタスクシーケンスを誘導してもよい。この場合、複数のタスクシーケンスのうちのそれぞれが完了する、および/または明示的なワークフロー終了フラグが構成要素タスクのうちの1つによって設定されるまで、ワークフローが終了しなくてもよい。ステップ1114では、ステップ1102の要求の送信者が、措置の結果を知らされてもよい。
付記:
付記1.
実行可能命令で構成される、1つ以上のコンピュータシステムの制御下で、
仮想マシンであって、第1の仮想マシンタイプであり、第1組の実装リソースを伴って維持される、仮想マシンを用いて、サービスをユーザに提供することと、
移動エージェントを仮想マシンに追加し、仮想マシンの少なくとも1つの構成要素を特徴付ける情報を含む、移動エージェントから受信される情報に少なくとも部分的に基づいて、移動テンプレートを確立することと、
移動テンプレートの移動前部分に従って、移動エージェントを用いて、少なくとも仮想マシンの第1の構成要素の再構成をトリガすることと、
移動後に、仮想マシンが第2の仮想マシンタイプであるように、第1組の実装リソースから第2組の実装リソースへ、移動テンプレートに従って仮想マシンを移動させることと、
移動テンプレートの移動後部分に従って、移動エージェントを用いて、少なくとも仮想マシンの第2の構成要素の再構成をトリガすることと、
第2の仮想マシンタイプの仮想マシンを用いて、サービスをユーザに提供し続けることと、
を含む、仮想マシンの移動のためのコンピュータ実装方法。
付記2.
第2組の実装リソースは、物理的処理装置の数、1つの物理的処理装置あたりの処理コアの数、物理的処理装置のタイプ、揮発性データ記憶デバイスの数、揮発性データ記憶デバイスのタイプ、不揮発性データ記憶デバイスの数、不揮発性データ記憶デバイスのタイプ、ネットワーキングデバイスの数、およびネットワーキングデバイスのタイプのうちの少なくとも1つに関して、第1組の実装リソースとは異なる、付記1に記載のコンピュータ実装方法。
付記3.
第2の仮想マシンタイプは、物理的処理装置の割り付けられた数、処理コアの割り付けられた数、物理的処理装置の割り付けられたタイプ、割り付けられた揮発性データ記憶サイズ、割り付けられた不揮発性データ記憶サイズ、および割り付けられたネットワーキングリソースのうちの少なくとも1つに関して、第1の仮想マシンタイプとは異なる、付記1に記載のコンピュータ実装方法。
付記4.
仮想マシンは、仮想リソースプロバイダの顧客のために仮想リソースプロバイダによって維持され、
方法はさらに、移動エージェントを仮想マシンに追加するように、顧客からの承認を要求して受信することを含む、
付記1に記載のコンピュータ実装方法。
付記5.
移動エージェントから受信される情報は、仮想マシンのオペレーティングシステムを特徴付ける、付記1に記載のコンピュータ実装方法。
付記6.
実行可能命令で構成される、1つ以上のコンピュータシステムの制御下で
仮想マシンであって、第1の仮想マシンタイプであり、第1組の実装リソースを伴って維持される、仮想マシンの少なくとも1つの構成要素を特徴付ける情報を受信することと、
受信した情報に少なくとも基づく移動テンプレートであって、第1の仮想マシンタイプから第2の仮想マシンタイプへの仮想マシン移動に対応する移動テンプレートを確立することと、
仮想マシンが第2の仮想マシンタイプを有するよう変換されるように、第1組の実装リソースから第2組の実装リソースへ、移動テンプレートに従って仮想マシンを移動させることと、
移動テンプレートに従って、仮想マシンの該少なくとも1つの構成要素の再構成をトリガすることと、
仮想マシンを用いてサービスをユーザに提供することと、
を含む、仮想マシンの移動のためのコンピュータ実装方法
付記7.
移動テンプレートを確立することは、受信した情報に少なくとも部分的に基づいて、一組の移動オプションを判定することを含む、付記6に記載のコンピュータ実装方法。
付記8.
一組の移動オプションを仮想マシンの管理者に提示することと、
管理者によって行われた一組の移動オプションに関する選択に少なくとも部分的に基づいて、移動テンプレートを構成することと、
さらに含む、付記7に記載のコンピュータ実装方法。
付記9.
仮想マシンの該少なくとも1つの構成要素の再構成は、仮想マシンのオペレーティングシステムへの少なくとも1つのさらなる構成要素の追加を含む、付記6に記載のコンピュータ実装方法。
付記10.
該少なくとも1つのさらなる構成要素は、ハードウェア構成要素ホットプラグ能力を提供するように、オペレーティングシステムを再構成する、付記9に記載のコンピュータ実装方法。
付記11.
仮想マシンを移動させることは、仮想マシンを一時停止すること、および仮想マシンを再開することを含む、複数のステップを含み、仮想マシンの該なくとも1つの構成要素の再構成は、仮想マシンを一時停止した後、および仮想マシンを再開する前に起こる、
付記6に記載のコンピュータ実装方法。
付記12.
該少なくとも1つの構成要素は、仮想マシンのオペレーティングシステムの少なくとも1つの構成要素にリンクされるアプリケーションを備え、アプリケーションの再構成は、アプリケーションをオペレーティングシステムの少なくとも1つの異なる構成要素に再リンクすることを含む、付記6に記載のコンピュータ実装方法。
付記13.
移動テンプレートは、第1組の実装リソースのうちの少なくとも1つが、第2組の実装リソースのうちの少なくとも1つで模倣されることを特定する、付記6に記載のコンピュータ実装方法。
付記14.
実行可能命令で構成される、1つ以上のコンピュータシステムの制御下で、
仮想マシンであって、第1のタイプであり、第1組の実装リソースを伴って維持される、仮想マシンに移動エージェントを追加することと、
仮想マシンの少なくとも1つの構成要素を特徴付ける情報を移動エージェントから受信することと、
仮想マシンが第2のタイプになるよう変換されるように、第1組の実装リソースから第2組の実装リソースへ、仮想マシンを移動させることと、
移動エージェントを用いて、仮想マシンの該少なくとも1つの構成要素の再構成をトリガすることと、
仮想マシンを用いてサービスをユーザに提供することと、
を含む、仮想マシンの移動のためのコンピュータ実装方法。
付記15.
該少なくとも1つの構成要素は、実装リソース容量と関連付けられる、
該少なくとも1つの構成要素の再構成は、実装リソース容量を減少させることを含み、
再構成は、第1組の実装リソースから仮想マシンを移動させる前に起こる、
付記14に記載のコンピュータ実装方法。
付記16.
実装リソース能力は、仮想マシンの少なくとも1つのデータ記憶部の実装に関与する、データ記憶デバイスの容量に対応し、
該少なくとも1つの構成要素の再構成はさらに、実装リソース容量を減少させる前に、該少なくとも1つのデータ記憶部を再構成することを含む、
付記15に記載のコンピュータ実装方法。
付記17.
該少なくとも1つのデータ記憶部は、仮想マシンのオペレーティングシステムによって維持され、
該少なくとも1つの構成要素の再構成はさらに、該少なくとも1つのデータ記憶部を再構成する前に、仮想マシンのアプリケーションレベル構成要素を通知することを含む、
付記16に記載のコンピュータ実装方法。
付記18.
該少なくとも1つの構成要素は、実装リソース能力と関連付けられ、
該少なくとも1つの構成要素の再構成は、実装リソース能力を増加させることを含み、
再構成は、第2組の実装リソースへ仮想マシンを移動させた後に起こる、
付記14に記載のコンピュータ実装方法。
付記19.
集合的に複数の仮想マシンを維持することが可能な複数の実装リソースと、
ユーザインターフェースであって、少なくとも、
第1のタイプの仮想マシンから第2のタイプの仮想マシンへの仮想マシン移動であって、第1のタイプの仮想マシンの少なくとも1つの構成要素の再構成を含む、仮想マシン移動に対応する、移動テンプレートをユーザが確立をすることを可能にし、
移動テンプレートに従って移動させられる、第1のタイプの一組の仮想マシンをユーザが選択することを可能にするように構成される、
ユーザインターフェースと、
少なくとも、第1のタイプの仮想マシンの該少なくとも1つの構成要素を特徴付ける情報を受信するように構成される、移動エージェントインターフェースと、
移動テンプレートに従って、および受信した情報に少なくとも部分的に基づいて、一組の仮想マシンが、第2のタイプの仮想マシンに変換されるように、少なくとも、第1組の複数の実装リソースから第2組の複数の実装リソースへ一組の仮想マシンを移動させるように構成される、移動管理構成要素と、
を備える、仮想マシンの移動のためのコンピュータ化システム。
付記20.
ユーザインターフェースはさらに、少なくとも、ユーザが一組の仮想マシンへの一組の移動エージェントの追加を承認することを可能にするように構成され、
移動管理構成要素はさらに、少なくとも、一組の仮想マシンを移動させる前に、一組の移動エージェントを一組の仮想マシンに追加するように構成される、
付記19に記載のコンピュータ化システム。
付記21.
一組の移動エージェントは、少なくとも、該少なくとも1つの構成要素を特徴付け、特性化情報を移動エージェントインターフェースに提供するように構成される、少なくとも1つの移動エージェントを備える、付記20に記載のコンピュータ化システム。
付記22.
一組の移動エージェントは、一組の仮想マシンによって維持される、複数のタイプのオペレーティングシステムに対応する、複数のタイプの移動エージェントを備える、付記20に記載のコンピュータ化システム。
付記23.
該少なくとも1つの構成要素を特徴付ける情報は、該少なくとも1つの構成要素がハードウェア構成要素ホットプラグ機能性を組み込むかどうかという指示を含む、付記19に記載のコンピュータ化システム。
付記24.
該少なくとも1つの構成要素を特徴付ける情報は、該少なくとも1つの構成要素がハードウェア構成要素ホットプラグ機能性を組み込むことが可能であるかどうかを判定するのに十分な情報を含む、付記19に記載のコンピュータ化システム。
付記25.
少なくとも、
第1のタイプの仮想マシンの少なくとも1つの構成要素を特徴付ける情報を受信し、
受信した情報に少なくとも部分的に基づく、モーフィングテンプレートであって、少なくとも、第1のタイプの仮想マシンから第2のタイプの仮想マシンへの仮想マシンの変換を構成する、モーフィングテンプレートを確立し、
モーフィングテンプレートに従って、仮想マシンの該少なくとも1つの構成要素の再構成をトリガし、
モーフィングテンプレートに従って、第1のタイプの仮想マシンから第2のタイプの仮想マシンへ仮想マシンを変換し、
仮想マシンを用いてサービスをユーザに提供するように、
1つ以上のコンピュータを集合的に構成する、コンピュータ実行可能命令をその上に集合的に有する、1つ以上のコンピュータ可読媒体。
本明細書で説明される種々の実施形態は、場合によっては、いくつかのアプリケーションのうちのいずれかを操作するために利用され得る、1つ以上のユーザコンピュータ、コンピュータデバイス、または処理デバイスを含み得る、多種多様な動作環境で実装されてもよい。ユーザまたはクライアントデバイスは、標準オペレーティングシステムを実行するデスクトップまたはラップトップコンピュータ等のいくつかの汎用パーソナルコンピュータのうちのいずれか、ならびにモバイルソフトウェアを実行し、いくつかのネットワーキングおよびメッセージングプロトコルをサポートすることが可能であるセルラー、無線、および手持ち式デバイスを含んでもよい。そのようなシステムはまた、開発およびデータベース管理等の目的で、種々の市販のオペレーティングシステムおよび他の既知のアプリケーションのうちのいずれかを実行する、いくつかのワークステーションを含んでもよい。これらのデバイスはまた、ダミー端末、シンクライアント、ゲーム機、およびネットワークを介して通信することが可能な他のデバイス等の他の電子デバイスを含んでもよい。
ほとんどの実施形態は、TCP/IP、OSI、FTP、UPnP、NFS、CIFS、およびAppleTalk等の種々の市販のプロトコルのうちのいずれかを使用した通信をサポートするために、当業者に周知となる、少なくとも1つのネットワークを利用する。そのようなネットワークは、例えば、ローカルエリアネットワーク、広域ネットワーク、仮想プライベートネットワーク、インターネット、イントラネット、エクストラネット、公衆交換電話ネットワーク、赤外線ネットワーク、無線ネットワーク、およびそれらの任意の組み合わせを含んでもよい。ネットワークは、さらに、任意の好適なネットワークトポロジーを組み込んでもよい。好適なネットワークトポロジーの実施例は、単純ポイントツーポイント、スタートポロジー、自己組織化ピアツーピアトポロジー、およびそれらの組み合わせを含むが、それらに限定されない。
ウェブサーバを利用する実施形態では、ウェブサーバは、HTTPサーバ、FTPサーバ、CGIサーバ、データサーバ、Javaサーバ、およびビジネスアプリケーションサーバを含む、種々のサーバまたはミッドティアアプリケーションのうちのいずれかを実行してもよい。サーバはまた、Java(登録商標)、C、C#、またはC++等の任意のプログラミング言語、あるいはPerl、Python、またはTCL等の任意のスクリプト言語、ならびにそれらの組み合わせで書かれた、1つ以上のスクリプトまたはプログラムとして実装されてもよい、1つ以上のウェブアプリケーションを実行すること等によって、ユーザデバイスからの要求に応じて、プログラムまたはスクリプトを実行することが可能であってもよい。サーバはまた、Oracle(登録商標)、Microsoft(登録商標)、Sybase(登録商標)、およびIBM(登録商標)から市販されているものを制限なく含む、データベースサーバを含んでもよい。
環境は、上記で論議されるように、種々のデータ記憶部ならびに他のメモリおよび記憶媒体を含んでもよい。これらは、コンピュータのうちの1つ以上のローカルにある(および/またはその中に常駐する)、またはネットワークにわたるコンピュータのうちのいずれかまたは全てから遠隔にある、記憶媒体上等の種々の場所に存在してもよい。特定の一組の実施形態では、情報は、当業者に周知である記憶領域ネットワーク(「SAN」)内に存在してもよい。同様に、コンピュータ、サーバ、または他のネットワークデバイスに起因する機能を果たすための必要なファイルが、適宜に、ローカルおよび/または遠隔に記憶されてもよい。システムがコンピュータ化デバイスを含む場合、そのような各デバイスは、バスを介して電気的に連結され得る、ハードウェア要素を含んでもよく、要素は、例えば、少なくとも1つの中央処理装置(CPU)、少なくとも1つの入力デバイス(例えば、マウス、キーボード、コントローラ、タッチスクリーン、またはキーパッド)、および少なくとも1つの出力デバイス(例えば、表示デバイス、プリンタ、またはスピーカ)を含む。そのようなシステムはまた、ディスクドライブ、光学記憶デバイス、およびランダムアクセスメモリ(「RAM」)または読み出し専用メモリ(「ROM」)等の固体記憶デバイス等の1つ以上の記憶デバイス、あるいは可撤性メディアデバイス、メモリカード、フラッシュカード等を含んでもよい。
そのようなデバイスはまた、コンピュータ可読記憶媒体リーダ、通信デバイス(例えば、モデム、ネットワークカード(無線または有線)、赤外線通信デバイス等)、および上記で説明されるような作業メモリを含んでもよい。コンピュータ可読記憶媒体リーダは、遠隔、ローカル、固定、および/または可撤性記憶デバイスを表すコンピュータ可読記憶媒体、ならびにコンピュータ可読情報を一時的および/またはより永久に含有、記憶、伝送、および回収するための記憶媒体と接続されてもよく、またはそれらを受容するように構成されてもよい。システムおよび種々のデバイスはまた、典型的には、いくつかのソフトウェアアプリケーション、プログラムモジュールを含むモジュール、サービス、またはクライアントアプリケーションあるいはウェブブラウザ等のオペレーティングシステムおよびアプリケーションプログラムを含む、少なくとも1つの作業メモリデバイス内に位置する他の要素を含む。代替的な実施形態は、上記で説明されるものからの多数の変化例を有してもよいことを理解されたい。例えば、カスタマイズされたハードウェアも、利用される場合があり、および/または特定の要素が、ハードウェア、ソフトウェア(アプレット等の高移植性ソフトウェアを含む)、あるいは両方で実装される場合がある。さらに、ネットワーク入出力デバイス等の他のコンピュータデバイスへの接続が採用されてもよい。
コードまたはコードの部分を含有するための記憶媒体およびコンピュータ可読媒体は、RAM、ROM、EEPROM、フラッシュメモリまたは他のメモリ技術、CD−ROM、デジタル多用途ディスク(DVD)または他の光学記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶デバイス、あるいは所望の情報を記憶するために使用され得て、システムデバイスによってアクセスされ得る、任意の他の媒体を含む、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータ等の情報の記憶および/または伝送のための任意の方法または技術で実装される、揮発性および不揮発性、可撤性および不可撤性媒体等であるが、それらに限定されない、記憶媒体および通信媒体を含む、当技術分野で公知である、または使用されている任意の適切な媒体を含んでもよい。プログラムモジュール、プログラム構成要素、および/またはプログラマチックオブジェクトは、任意の好適なコンピュータプログラミング言語の、および/または任意の好適なコンピュータプログラミング言語に対応する、コンピュータ可読および/またはコンピュータ実行可能命令を含んでもよい。少なくとも1つの実施形態では、各コンピュータ可読媒体は、有形であってもよい。少なくとも1つの実施形態では、各コンピュータ可読媒体は、時間的に非一過性であってもよい。本開示および本明細書で提供される教示に基づいて、当業者であれば、種々の実施形態を実装するための他の方式および/または方法を理解するであろう。
したがって、本明細書および図面は、制限的な意味よりもむしろ例証的な意味で見なされるものとする。しかしながら、特許請求の範囲に記載されるような本発明のより広い精神および範囲から逸脱することなく、それに種々の修正および変更が行われてもよいことが明白となるであろう。
実施形態を説明する関連での(特に、以下の請求項との関連での)「1つの」および「該」という用語および同様の指示対象の使用は、本明細書で特に指示されない、または文脈によって明確に矛盾しない限り、単数形および複数形の両方を対象とすると解釈されるものである。「を備える」、「を有する」、「を含む」、および「を含有する」という用語は、特に注記がない限り、制約のない用語として解釈されるものである(すなわち、「を含むが、それに限定されない」を意味する)。「接続される」という用語は、たとえ介在するものがあっても、部分的または完全に内側に含有される、取り付けられる、またはともに接合されるとして解釈されるものである。本明細書の値の範囲の記載は、本明細書で特に指示されない限り、範囲内に入る各別個の値を個別に参照する簡便な方法としての機能を果たすことを目的としているにすぎず、各別個の値は、本明細書で個別に記載されたかのように、本明細書に組み込まれる。本明細書で説明される全ての方法は、本明細書で特に指示されない、または文脈によって明確に矛盾しない限り、任意の好適な順序で行うことができる。本明細書で提供される、ありとあらゆる実施例または例示的な用語(例えば、「等の」)の使用は、実施形態をより良く明らかにすることを目的としているにすぎず、特に請求されない限り、範囲に制限を課さない。本明細書中のいずれの用語も、少なくとも1つの実施形態の実践に不可欠なものとして、請求されていない要素を示すものとして解釈されるべきではない。
発明者らに公知である最良の様態を含む、好ましい実施形態が本明細書で説明される。これらの好ましい実施形態の変化例は、前述の説明を読むと、当業者に明白となってもよい。発明者らは、当業者がそのような変化例を適宜に採用することを期待し、発明者らは、本明細書で具体的に説明されるのとは他の方法で実施形態が構築されることを意図する。したがって、好適な実施形態は、適用法令によって許可されるように本明細書に添付される請求項に記載される、主題の全ての修正および同等物を含む。また、その全ての可能な変化例の中の上記の要素の任意の組み合わせは、本明細書で特に指示されない、または文脈によって明確に矛盾しない限り、いくつかの好適な実施形態に組み込まれるものとして検討される。
本明細書で引用される出版物、特許出願、および特許を含む、全ての参考文献は、各参考文献が、参照することにより組み込まれることが個別かつ特異的に示され、その全体で本明細書に記載されるのと同じ程度に、参照することにより本明細書に組み込まれる。

Claims (15)

  1. 仮想マシンの移動のためのコンピュータ実行方法であって、
    実行可能命令で構成される、1つ以上のコンピュータシステムの制御下で、
    仮想マシンを用いて、サービスをユーザに提供するステップであって、前記仮想マシンは、第1の仮想マシンタイプであり、第1組の実装リソースを伴って維持される、ステップと、
    前記仮想マシンに移動エージェントを追加して、前記仮想マシンの少なくとも1つの構成要素を特徴付ける情報を含む、前記移動エージェントから受信される情報に少なくとも部分的に基づいて、移動テンプレートを確立するステップと、
    前記移動テンプレートの移動前部分に従って、前記移動エージェントを用いて、少なくとも前記仮想マシンの第1の構成要素の再構成をトリガするステップと、
    移動後に、前記仮想マシンが第2の仮想マシンタイプであるように、前記第1組の実装リソースから第2組の実装リソースへ、前記移動テンプレートに従って前記仮想マシンを移動させるステップと、
    前記移動テンプレートの移動後部分に従って、前記移動エージェントを用いて、少なくとも前記仮想マシンの第2の構成要素の再構成をトリガするステップと、
    前記第2の仮想マシンタイプの前記仮想マシンを用いて、前記サービスを前記ユーザに提供し続けるステップと
    を含むことを特徴とする方法。
  2. 前記第2組の実装リソースは、物理的処理装置の数、1つの物理的処理装置あたりの処理コアの数、物理的処理装置のタイプ、揮発性データ記憶デバイスの数、揮発性データ記憶デバイスのタイプ、不揮発性データ記憶デバイスの数、不揮発性データ記憶デバイスのタイプ、ネットワーキングデバイスの数、およびネットワーキングデバイスのタイプのうちの少なくとも1つに関して、前記第1組の実装リソースとは異なることを特徴とする請求項1に記載の方法。
  3. 前記第2の仮想マシンタイプは、物理的処理装置の割り付けられた数、処理コアの割り付けられた数、物理的処理装置の割り付けられたタイプ、割り付けられた揮発性データ記憶サイズ、割り付けられた不揮発性データ記憶サイズ、および割り付けられたネットワーキングリソースのうちの少なくとも1つに関して、前記第1の仮想マシンタイプとは異なることを特徴とする請求項1に記載の方法。
  4. 前記仮想マシンは、仮想リソースプロバイダの顧客のために前記仮想リソースプロバイダによって維持され、
    前記方法はさらに、前記移動エージェントを前記仮想マシンに追加するように、前記顧客からの承認を要求して受信するステップを含むことを特徴とする請求項1に記載の方法。
  5. 前記移動エージェントから受信される情報は、前記仮想マシンのオペレーティングシステムを特徴付けることを特徴とする請求項1に記載の方法。
  6. 前記仮想マシンのタイプは、前記ユーザに提供される前記サービスに少なくとも部分的に基づいて判定され、前記サービスは前記ユーザによって購入されていることを特徴とする請求項1に記載の方法。
  7. 前記サービスは、前記第1の仮想マシンタイプに関連付けられる第1のサービスと、前記第2の仮想マシンタイプに関連付けられる第2のサービスとを含み、前記第1のサービスは、前記ユーザが仮想リソースの第1の量にアクセスすることを可能にし、前記第2のサービスは、前記ユーザが仮想リソースの第2の量にアクセスすることを可能にすることを特徴とする前記請求項1に記載の方法。
  8. 前記仮想リソースの第1の量および前記仮想リソースの第2の量は前記ユーザにアクセス可能であり、物理的処理装置の数、物理的処理コアの数、1秒当たりのサイクルの物理的処理能力、揮発性記憶デバイスの量、揮発性記憶デバイスの容量、不揮発性記憶デバイスの数、または不揮発性記憶デバイスの容量のうちの1または複数に関して表されることを特徴とする請求項7に記載の方法。
  9. 前記第1の構成要素はオペレーティングシステムを含み、前記第2の構成要素はアプリケーションを含むことを特徴とする請求項1に記載の方法。
  10. 前記第1の構成要素は、標準化アプリケーション、カスタムアプリケーション、非標準特性を伴うデータ構造を管理するように構成される標準化アプリケーション、標準化オペレーティングシステム、カスタムオペレーティングシステム、および前記第1組の実装リソースの仮想化層に組み込まれる要素の少なくとも1つを含むことを特徴とする請求項1に記載の方法。
  11. 仮想マシンの移動のためのコンピュータ実装方法であって、
    実行可能命令で構成される、1つ以上のコンピュータシステムの制御下で、
    仮想マシンの能力を表す情報を、前記仮想マシン内で動作する移動エージェントから受信するステップであって、前記仮想マシンは、第1のタイプであり、第1組の実装リソースを伴って維持され、前記情報は、前記仮想マシンの少なくとも1つの構成要素を特徴付ける、ステップと、
    前記仮想マシンが第2のタイプになるよう変換されるように、前記第1組の実装リソースから第2組の実装リソースへ、前記仮想マシンを移動させるステップと、
    前記移動エージェントを用いて、移動テンプレートに従って、前記仮想マシンの前記少なくとも1つの構成要素の再構成をトリガするステップであって、前記移動テンプレートは、移動前部分と移動後部分とを含む、ステップ
    含むことを特徴とする方法。
  12. 前記少なくとも1つの構成要素は、実装リソース容量と関連付けられ、
    前記少なくとも1つの構成要素の再構成は、前記実装リソース容量を減少させることを含み、
    前記再構成は、前記第1組の実装リソースから前記仮想マシンを移動させる前に起こることを特徴とする請求項11に記載の方法。
  13. 仮想マシンの移動のためのコンピュータ実装方法であって、
    実行可能命令で構成される、1つ以上のコンピュータシステムの制御下で、
    仮想マシンに移動エージェントを追加するステップであって、前記仮想マシンは、第1のタイプであり、第1組の実装リソースを伴って維持される、ステップと、
    前記仮想マシンの少なくとも1つの構成要素を特徴付ける情報を前記移動エージェントから受信するステップと、
    前記仮想マシンが第2のタイプになるよう変換されるように、前記第1組の実装リソースから第2組の実装リソースへ、前記仮想マシンを移動させるステップと、
    前記移動エージェントを用いて、前記仮想マシンの前記少なくとも1つの構成要素の再構成をトリガするステップと、
    前記仮想マシンを用いてサービスをユーザに提供するステップと
    を含み、
    前記少なくとも1つの構成要素は、実装リソース容量と関連付けられ、
    前記少なくとも1つの構成要素の再構成は、前記実装リソース容量を減少させることを含み、
    前記再構成は、前記第1組の実装リソースから前記仮想マシンを移動させる前に起こり、
    前記実装リソース容量は、前記仮想マシンの少なくとも1つのデータ記憶部の実装に関与する、データ記憶デバイスの容量に対応し、
    前記少なくとも1つの構成要素の再構成はさらに、前記実装リソース容量を減少させる前に、前記少なくとも1つのデータ記憶部を再構成することを含むことを特徴とする方法。
  14. 前記少なくとも1つのデータ記憶部は、前記仮想マシンのオペレーティングシステムによって維持され、
    前記少なくとも1つの構成要素の再構成はさらに、前記少なくとも1つのデータ記憶部を再構成する前に、前記仮想マシンのアプリケーションレベル構成要素を通知することを含むことを特徴とする請求項13に記載の方法。
  15. 前記少なくとも1つの構成要素は、実装リソース容量と関連付けられ、
    前記少なくとも1つの構成要素の再構成は、前記実装リソース容量を増加させることを含み、
    前記再構成は、前記第2組の実装リソースへ前記仮想マシンを移動させた後に起こることを特徴とする請求項11に記載の方法。
JP2014204302A 2010-12-10 2014-10-02 異種移動環境用の仮想マシンモーフィング Active JP6005706B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/965,723 2010-12-10
US12/965,723 US9329886B2 (en) 2010-12-10 2010-12-10 Virtual machine morphing for heterogeneous migration environments

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2013542215A Division JP5629018B2 (ja) 2010-12-10 2011-12-02 異種移動環境用の仮想マシンモーフィング

Publications (2)

Publication Number Publication Date
JP2014241178A JP2014241178A (ja) 2014-12-25
JP6005706B2 true JP6005706B2 (ja) 2016-10-12

Family

ID=46200811

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2013542215A Active JP5629018B2 (ja) 2010-12-10 2011-12-02 異種移動環境用の仮想マシンモーフィング
JP2014204302A Active JP6005706B2 (ja) 2010-12-10 2014-10-02 異種移動環境用の仮想マシンモーフィング

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2013542215A Active JP5629018B2 (ja) 2010-12-10 2011-12-02 異種移動環境用の仮想マシンモーフィング

Country Status (7)

Country Link
US (4) US9329886B2 (ja)
EP (1) EP2649525B1 (ja)
JP (2) JP5629018B2 (ja)
CN (1) CN103238136B (ja)
CA (1) CA2817760C (ja)
SG (1) SG190792A1 (ja)
WO (1) WO2012078471A1 (ja)

Families Citing this family (84)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2341431A1 (en) 2004-03-13 2011-07-06 Adaptive Computing Enterprises, Inc. System and method of providing a self-optimizing reservation in space of compute resources
US8782654B2 (en) 2004-03-13 2014-07-15 Adaptive Computing Enterprises, Inc. Co-allocating a reservation spanning different compute resources types
US20070266388A1 (en) 2004-06-18 2007-11-15 Cluster Resources, Inc. System and method for providing advanced reservations in a compute environment
US8176490B1 (en) 2004-08-20 2012-05-08 Adaptive Computing Enterprises, Inc. System and method of interfacing a workload manager and scheduler with an identity manager
WO2006053093A2 (en) 2004-11-08 2006-05-18 Cluster Resources, Inc. System and method of providing system jobs within a compute environment
US8863143B2 (en) 2006-03-16 2014-10-14 Adaptive Computing Enterprises, Inc. System and method for managing a hybrid compute environment
US9231886B2 (en) 2005-03-16 2016-01-05 Adaptive Computing Enterprises, Inc. Simple integration of an on-demand compute environment
EP3203374B1 (en) 2005-04-07 2021-11-24 III Holdings 12, LLC On-demand access to compute resources
US8041773B2 (en) 2007-09-24 2011-10-18 The Research Foundation Of State University Of New York Automatic clustering for self-organizing grids
US10877695B2 (en) 2009-10-30 2020-12-29 Iii Holdings 2, Llc Memcached server functionality in a cluster of data processing nodes
US11720290B2 (en) 2009-10-30 2023-08-08 Iii Holdings 2, Llc Memcached server functionality in a cluster of data processing nodes
US9329886B2 (en) 2010-12-10 2016-05-03 Amazon Technologies, Inc. Virtual machine morphing for heterogeneous migration environments
US8667399B1 (en) 2010-12-29 2014-03-04 Amazon Technologies, Inc. Cost tracking for virtual control planes
US8954978B1 (en) 2010-12-29 2015-02-10 Amazon Technologies, Inc. Reputation-based mediation of virtual control planes
US8667495B1 (en) 2010-12-29 2014-03-04 Amazon Technologies, Inc. Virtual resource provider with virtual control planes
US9612855B2 (en) * 2011-01-10 2017-04-04 International Business Machines Corporation Virtual machine migration based on the consent by the second virtual machine running of the target host
US8566838B2 (en) * 2011-03-11 2013-10-22 Novell, Inc. Techniques for workload coordination
US10514941B2 (en) 2011-11-15 2019-12-24 Nicira, Inc. Load balancing and destination network address translation middleboxes
US20130152076A1 (en) * 2011-12-07 2013-06-13 Cisco Technology, Inc. Network Access Control Policy for Virtual Machine Migration
US9098378B2 (en) * 2012-01-31 2015-08-04 International Business Machines Corporation Computing reusable image components to minimize network bandwidth usage
US8825817B1 (en) * 2012-03-19 2014-09-02 Amazon Technologies, Inc. Using a template to update a stack of resources
TWI610166B (zh) 2012-06-04 2018-01-01 飛康國際網路科技股份有限公司 自動災難復原和資料遷移系統及方法
US8880638B2 (en) 2012-06-18 2014-11-04 International Business Machines Corporation Distributed image cache for servicing virtual resource requests in the cloud
US8418230B1 (en) * 2012-08-28 2013-04-09 Netcomm Wireless Limited Apparatus and method for mobile communications and computing
US10270709B2 (en) 2015-06-26 2019-04-23 Microsoft Technology Licensing, Llc Allocating acceleration component functionality for supporting services
JP6003590B2 (ja) * 2012-11-30 2016-10-05 富士通株式会社 データセンタ,仮想システムの複写サービスの提供方法,データセンタの管理サーバ及び仮想システムの複写プログラム
US9712375B2 (en) * 2012-12-12 2017-07-18 Microsoft Technology Licensing, Llc Workload deployment with infrastructure management agent provisioning
US9608933B2 (en) * 2013-01-24 2017-03-28 Hitachi, Ltd. Method and system for managing cloud computing environment
US9183062B2 (en) * 2013-02-25 2015-11-10 International Business Machines Corporation Automated application reconfiguration
US9582219B2 (en) 2013-03-12 2017-02-28 Netapp, Inc. Technique for rapidly converting between storage representations in a virtualized computing environment
EP2991538B1 (en) 2013-04-30 2020-08-12 Idx Llc Parallel optical coherence tomography apparatuses, systems, and related methods
US9870268B2 (en) * 2013-08-05 2018-01-16 Amazon Technologies, Inc. Virtual computing instance migration
US20150081400A1 (en) * 2013-09-19 2015-03-19 Infosys Limited Watching ARM
US9336266B2 (en) 2013-10-11 2016-05-10 Vmware, Inc. Methods and apparatus to manage deployments of virtual machines
US11269926B1 (en) * 2013-10-22 2022-03-08 Amazon Technologies, Inc. Flexible storage volumes
JP6096647B2 (ja) * 2013-11-27 2017-03-15 日本電信電話株式会社 マネジメントシステム及び移動制御方法
US10129105B2 (en) * 2014-04-09 2018-11-13 International Business Machines Corporation Management of virtual machine placement in computing environments
US10142192B2 (en) * 2014-04-09 2018-11-27 International Business Machines Corporation Management of virtual machine resources in computing environments
EP2940582A1 (en) * 2014-04-30 2015-11-04 DoCoMo Communications Laboratories Europe GmbH Automated configuration of virtual infrastructure manager access for the virtual network function manager
US9811365B2 (en) * 2014-05-09 2017-11-07 Amazon Technologies, Inc. Migration of applications between an enterprise-based network and a multi-tenant network
US10216531B2 (en) 2014-05-12 2019-02-26 Netapp, Inc. Techniques for virtual machine shifting
DK3127300T3 (da) * 2014-05-12 2019-10-07 Google Llc Håndtering af nic-krypterede flows til at migrere gæster eller opgaver
US9841991B2 (en) * 2014-05-12 2017-12-12 Netapp, Inc. Techniques for virtual machine migration
JP2016071562A (ja) 2014-09-29 2016-05-09 富士通株式会社 判定プログラム、方法及び装置
US9612765B2 (en) * 2014-11-19 2017-04-04 International Business Machines Corporation Context aware dynamic composition of migration plans to cloud
US10146567B2 (en) * 2014-11-20 2018-12-04 Red Hat Israel, Ltd. Optimizing virtual machine allocation to cluster hosts
US9946614B2 (en) 2014-12-16 2018-04-17 At&T Intellectual Property I, L.P. Methods, systems, and computer readable storage devices for managing faults in a virtual machine network
US10715460B2 (en) * 2015-03-09 2020-07-14 Amazon Technologies, Inc. Opportunistic resource migration to optimize resource placement
US9667656B2 (en) * 2015-03-30 2017-05-30 Amazon Technologies, Inc. Networking flow logs for multi-tenant environments
US10198294B2 (en) 2015-04-17 2019-02-05 Microsoft Licensing Technology, LLC Handling tenant requests in a system that uses hardware acceleration components
US9792154B2 (en) 2015-04-17 2017-10-17 Microsoft Technology Licensing, Llc Data processing system having a hardware acceleration plane and a software plane
EP3295358B1 (en) * 2015-05-08 2020-07-08 Telefonaktiebolaget LM Ericsson (publ) Migration service method and module for software modules
US10216555B2 (en) * 2015-06-26 2019-02-26 Microsoft Technology Licensing, Llc Partially reconfiguring acceleration components
US10122649B2 (en) * 2015-08-26 2018-11-06 Vmware, Inc. Methods and apparatus to manage and execute actions in computing environments based on a routing path
US10110505B2 (en) 2015-08-26 2018-10-23 Vmware, Inc. Methods and apparatus to manage and execute actions in computing environments using a graphical user interface
US10108455B2 (en) 2015-08-26 2018-10-23 Vmware, Inc. Methods and apparatus to manage and execute actions in computing environments based on a type of virtual compute node
US9898323B2 (en) 2015-11-18 2018-02-20 International Business Machines Corporation Composite virtual machine template for virtualized computing environment
US10133593B1 (en) * 2016-03-31 2018-11-20 Amazon Technologies, Inc. Virtual machine migration
US9817592B1 (en) 2016-04-27 2017-11-14 Netapp, Inc. Using an intermediate virtual disk format for virtual disk conversion
CN106775928B (zh) * 2016-11-25 2020-12-01 国家电网公司 一种异构云平台间的虚拟机自动迁移系统及方法
US11231912B2 (en) * 2016-12-14 2022-01-25 Vmware, Inc. Post-deployment modification of information-technology application using lifecycle blueprint
US11231910B2 (en) * 2016-12-14 2022-01-25 Vmware, Inc. Topological lifecycle-blueprint interface for modifying information-technology application
CN107256167B (zh) * 2017-05-27 2020-07-03 中国科学院深圳先进技术研究院 应用于应用系统迁移的升级控制方法及升级控制设备
EP3644180A4 (en) 2017-06-23 2020-06-17 Nokia Solutions and Networks Oy METHOD AND APPARATUS FOR MANAGING RESOURCES IN A PERIPHERAL CLOUD
US11048537B2 (en) 2017-11-10 2021-06-29 Microsoft Technology Licensing, Llc Virtual machine compute re-configuration
US11474847B2 (en) * 2017-12-04 2022-10-18 British Telecommunications Public Limited Company Portable virtual machine image
US11048538B2 (en) * 2018-02-26 2021-06-29 Amazon Technologies, Inc. Autonomous cell-based control plane for scalable virtualized computing
US10698709B2 (en) 2018-03-07 2020-06-30 Microsoft Technology Licensing, Llc Prediction of virtual machine demand
US10990429B2 (en) * 2018-03-12 2021-04-27 Vmware, Inc. Rule-based reallocation of hosted compute resources
US11340929B2 (en) * 2018-05-22 2022-05-24 Vmware, Inc. Hypervisor agnostic cloud mobility across virtual infrastructures
US11121981B1 (en) 2018-06-29 2021-09-14 Amazon Technologies, Inc. Optimistically granting permission to host computing resources
CN109358952A (zh) * 2018-10-30 2019-02-19 张家口浩扬科技有限公司 一种虚拟机迁移方法和系统
CN109656680A (zh) * 2018-11-29 2019-04-19 国云科技股份有限公司 一种虚拟机创建方法
US11474848B2 (en) 2019-10-24 2022-10-18 Red Hat, Inc. Fail-safe post copy migration of virtual machines
US11362895B2 (en) * 2020-02-10 2022-06-14 Nokia Solutions And Networks Oy Automatic configuration of an extended service appliance for network routers
US11736415B2 (en) 2020-02-10 2023-08-22 Nokia Solutions And Networks Oy Backpressure from an external processing system transparently connected to a router
US10958523B1 (en) 2020-07-28 2021-03-23 Bank Of America Corporation Consistent deployment of monitoring configurations on multiple computing systems
US11188437B1 (en) 2020-07-30 2021-11-30 Bank Of America Corporation Remote deployment of monitoring agents on computing systems
US11714615B2 (en) 2020-09-18 2023-08-01 International Business Machines Corporation Application migration using cost-aware code dependency graph
US11803407B1 (en) * 2020-09-29 2023-10-31 Amazon Technologies, Inc. Emulation layer for overcoming incompatibilities in virtual machine instance migration
CN112688988A (zh) * 2020-11-25 2021-04-20 紫光云技术有限公司 一种跨平台迁移网络虚拟资源的方法
CN113192322B (zh) * 2021-03-19 2022-11-25 东北大学 一种基于云边协同的高速公路交通流量计数方法
US11853783B1 (en) * 2021-03-29 2023-12-26 Amazon Technologies, Inc. Identifying hosts for dynamically enabling specified features when resuming operation of a virtual compute instance
EP4327205A1 (en) * 2021-04-23 2024-02-28 Transitional Data Services, Inc. Transition manager system

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5629018B2 (ja) 1973-03-07 1981-07-06
US7080159B2 (en) 2000-12-15 2006-07-18 Ntt Docomo, Inc. Method and system for effecting migration of application among heterogeneous devices
US6970902B1 (en) * 2001-05-24 2005-11-29 Cisco Technology, Inc. Method and apparatus for providing a distributed service in a network
CA2486103A1 (en) * 2004-10-26 2006-04-26 Platespin Ltd. System and method for autonomic optimization of physical and virtual resource use in a data center
US7761573B2 (en) 2005-12-07 2010-07-20 Avaya Inc. Seamless live migration of virtual machines across optical networks
US8661216B2 (en) * 2005-12-19 2014-02-25 Commvault Systems, Inc. Systems and methods for migrating components in a hierarchical storage network
JP2007183747A (ja) 2006-01-05 2007-07-19 Hitachi Ltd 物理サーバ間のシステム移動方法およびシステム移動システム
JP4810349B2 (ja) 2006-08-11 2011-11-09 日本電気株式会社 I/o装置及び方法
US9038062B2 (en) 2006-10-17 2015-05-19 Manageiq, Inc. Registering and accessing virtual systems for use in a managed system
US20100306773A1 (en) * 2006-11-06 2010-12-02 Lee Mark M Instant on Platform
JP4438807B2 (ja) 2007-03-02 2010-03-24 日本電気株式会社 仮想マシンシステム、管理サーバ、仮想マシン移行方法及びプログラム
US8196138B2 (en) * 2007-04-19 2012-06-05 International Business Machines Corporation Method and system for migrating virtual machines between hypervisors
US9086901B2 (en) * 2008-03-07 2015-07-21 Sap Se Migration of applications from physical machines to virtual machines
US7506037B1 (en) * 2008-05-13 2009-03-17 International Business Machines Corporation Method determining whether to seek operator assistance for incompatible virtual environment migration
JP5119077B2 (ja) 2008-07-28 2013-01-16 西日本電信電話株式会社 仮想サーバリソース調整システム、リソース調整装置、仮想サーバリソース調整方法、及び、コンピュータプログラム
US8458717B1 (en) * 2008-09-23 2013-06-04 Gogrid, LLC System and method for automated criteria based deployment of virtual machines across a grid of hosting resources
JP5223596B2 (ja) 2008-10-30 2013-06-26 富士通株式会社 仮想計算機システム及びその管理方法、管理プログラム並びに記録媒体、制御方法
JP2010123055A (ja) * 2008-11-21 2010-06-03 Fujitsu Ltd データ移行プログラム,データ移行方法及びデータ移行装置
CN101765225B (zh) 2008-12-24 2012-05-23 华为技术有限公司 一种虚拟化的集群管理方法和集群节点
US9594582B2 (en) * 2009-01-05 2017-03-14 International Business Machines Corporation Detection and management of dynamic migration of virtual environments
US8321862B2 (en) * 2009-03-20 2012-11-27 Oracle America, Inc. System for migrating a virtual machine and resource usage data to a chosen target host based on a migration policy
US20100306486A1 (en) * 2009-05-29 2010-12-02 Sridhar Balasubramanian Policy-based application aware storage array snapshot backup and restore technique
US8150971B2 (en) * 2009-05-31 2012-04-03 Red Hat Israel, Ltd. Mechanism for migration of client-side virtual machine system resources
US20110138382A1 (en) * 2009-12-03 2011-06-09 Recursion Software, Inc. System and method for loading resources into a virtual machine
US9626206B2 (en) * 2010-03-18 2017-04-18 Microsoft Technology Licensing, Llc Virtual machine homogenization to enable migration across heterogeneous computers
US8984507B2 (en) * 2010-04-26 2015-03-17 International Business Machines Corporation Cross architecture virtual machine migration
US8171349B2 (en) * 2010-06-18 2012-05-01 Hewlett-Packard Development Company, L.P. Associating a monitoring manager with an executable service in a virtual machine migrated between physical machines
US8484653B2 (en) * 2010-07-28 2013-07-09 Red Hat Israel, Ltd. Mechanism for delayed hardware upgrades in virtualization systems
EP2975027A1 (en) 2010-11-01 2016-01-20 Portola Pharmaceuticals, Inc. Nicotinamides as jak kinase modulators
US9329886B2 (en) 2010-12-10 2016-05-03 Amazon Technologies, Inc. Virtual machine morphing for heterogeneous migration environments
US20130086298A1 (en) * 2011-10-04 2013-04-04 International Business Machines Corporation Live Logical Partition Migration with Stateful Offload Connections Using Context Extraction and Insertion

Also Published As

Publication number Publication date
EP2649525A4 (en) 2017-05-03
US9329886B2 (en) 2016-05-03
US20210042144A1 (en) 2021-02-11
CA2817760C (en) 2017-06-13
EP2649525B1 (en) 2019-04-17
JP5629018B2 (ja) 2014-11-19
US20120151476A1 (en) 2012-06-14
CN103238136B (zh) 2016-11-09
US10877794B2 (en) 2020-12-29
US20190213034A1 (en) 2019-07-11
US10282225B2 (en) 2019-05-07
SG190792A1 (en) 2013-07-31
EP2649525A1 (en) 2013-10-16
CA2817760A1 (en) 2012-06-14
US20160246640A1 (en) 2016-08-25
CN103238136A (zh) 2013-08-07
WO2012078471A1 (en) 2012-06-14
JP2013544417A (ja) 2013-12-12
JP2014241178A (ja) 2014-12-25

Similar Documents

Publication Publication Date Title
JP6005706B2 (ja) 異種移動環境用の仮想マシンモーフィング
US10768955B1 (en) Executing commands within virtual machine instances
US11178207B2 (en) Software version control without affecting a deployed container
JP6928055B2 (ja) データボリュームの動的な構成
US9667489B2 (en) Generation and management of computing infrastructure instances
US9674103B2 (en) Management of addresses in virtual machines
US10324754B2 (en) Managing virtual machine patterns
JP2018517189A5 (ja)
US20220200929A1 (en) Multi-cloud deployment and validation
US9424120B1 (en) Prioritizing first failure data capture (FFDC) data for analysis
US9298597B2 (en) Automated testing of websites based on mode
US11487839B2 (en) Resource link engine

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141121

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151218

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160105

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20160405

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160606

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: 20160809

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160907

R150 Certificate of patent or registration of utility model

Ref document number: 6005706

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