JP6258494B2 - 仮想コンピュータ処理のインスタンス移動 - Google Patents

仮想コンピュータ処理のインスタンス移動 Download PDF

Info

Publication number
JP6258494B2
JP6258494B2 JP2016533347A JP2016533347A JP6258494B2 JP 6258494 B2 JP6258494 B2 JP 6258494B2 JP 2016533347 A JP2016533347 A JP 2016533347A JP 2016533347 A JP2016533347 A JP 2016533347A JP 6258494 B2 JP6258494 B2 JP 6258494B2
Authority
JP
Japan
Prior art keywords
virtual machine
computer system
machine instance
physical host
customer
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
JP2016533347A
Other languages
English (en)
Other versions
JP2016527648A (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 JP2016527648A publication Critical patent/JP2016527648A/ja
Application granted granted Critical
Publication of JP6258494B2 publication Critical patent/JP6258494B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • 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/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
    • 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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load

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)
  • Computer And Data Communications (AREA)

Description

関連出願の相互参照
本出願は、2013年8月5日に出願された同時係属出願中の米国特許出願第13/959,550号に対して優先権を主張し、その出願の内容は参照によって本明細書にその全体が組み込まれている。
本出願は、仮想コンピュータ処理のインスタンス移動に関する。
仮想コンピュータシステムは、それらを使用する組織の要求に遅れずについていくために発展を遂げ、発展し続ける。例えば、多くの組織は、とりわけ、ウェブ・アプリケーションの開発のためを含め、1つ以上の仮想サーバを遠隔で操作する目的のために仮想コンピュータシステムを利用する。仮想コンピュータシステムは、おおまかな次元によって分類されることが多い。例えば、これらのシステムは、プロセッサコアの数、付属の記憶装置のタイプ及び(または)量あるいは他の要因によって分類されてもよい。このことは、コンピュータ処理リソースサービス・プロバイダが効率的な方法で物理的なシステムを別の目的に振り向けることまたは細分化することを、特に容量管理のために可能にする。多くの利点にもかかわらず、現代の仮想コンピュータシステムサービスは、顧客が仮想マシンインスタンスを作成するか移動する要求を提起した場合に、顧客に要求されたハードウェアを提供する機能が不足することが多い。
米国特許公開第2010/0242045号
いくつかの実例では、ハードウェアの変化するタイプまたは世代を使用して、あるタイプの仮想マシンインスタンスが実装されることが可能であり得る。新規なハードウェアが一群のハードウェア装置の中に統合されたときは、新規なハードウェアは既存のハードウェアに不足している様々な特徴を含んでもよい。例えば、新規なハードウェアは、ハードウェアが前述のおおまかな次元内に適合するかどうかを判断する際には使用されない特徴(例えば暗号の加速を組込むチップセット)を含んでもよい。従って、新規な仮想マシンインスタンスの生成はこれらの新規な、恐らく魅力的な特徴を含んでもよい。そのような環境では、顧客は仮想マシンインスタンスを設定してもよいし、割り当てられた物理的ホストが所望のハードウェアの必要条件に合わない場合は直ちにインスタンスを終了してもよい。顧客は、所望のハードウェア構成を含んでいる物理的ホスト上で実装されるインスタンスが作成されるまで、このプロセスを繰り返してもよい。このことは、理想的な顧客経験からはほど遠く且つ他の不都合な結果を生じることになることがある。これらの問題を解決するいくつかの方法は、例えば、顧客ニーズを満たす様々な構成を備えた追加のサーバシステムの購入及び準備によって、多大な追加費用及び管理上の負担を引き起こすことがある。
本開示における様々な実施形態は以下の図面を参照して説明される。
様々な実施形態を実装することができる環境の実例を示す図である。 様々な実施形態を実装することができる環境の実例を示す図である。 様々な実施形態を実装することができる環境の実例を示す図である。 様々な実施形態を実装することができる環境の実例を示す図である。 少なくとも1つの実施形態に従って1つ以上の仮想マシンインスタンスを割り当てる実例を示す図である。 少なくとも1つの実施形態に従って1つの物理的ホストから別の物理的ホストに仮想マシンインスタンスを移動する実例を示す図である。 少なくとも1つの実施形態に従って顧客要求に基づいて仮想マシンインスタンスを割り当てるプロセスの実例を示す図である。 少なくとも1つの実施形態に従ってスロットの可用性に基づいて仮想マシンインスタンスを移動するプロセスの実例を示す図である。 少なくとも1つの実施形態に従って仮想マシンインスタンスを作成し且つ移動するプロセスの実例を示す図である。 少なくとも1つの実施形態に従って既存の仮想マシンインスタンスに対するハードウェア割当のための要求を処理するプロセスの実例を示す図である。 様々な実施形態を実装することができる環境を示す図である。
次の記述では、様々な実施形態が記載される。説明の目的のために、特定の構成及び詳細は実施形態についての完全な理解を提供するために述べられる。しかしながら、特定の詳細がなくても実施形態が実行される得ることは、当業者にとって明らかでもある。さらに、周知の特徴は記述されている実施形態を不明瞭にしないために省略されてもよいし単純化されてもよい。
ここに記述され且つ示唆された技術は、特定のハードウェア構成がインスタンスを実体化し且つサポートする顧客の選好設定に基づく仮想マシンインスタンスの割当及び移動に関する。実施形態では、仮想マシンインスタンスの生成または移動を要求するために、実体(例えば組織)は、例えば、サービスに対する適切に構成されたアプリケーションプログラムインターフェイス(API)コールを通じて、仮想コンピュータシステムサービスと通信してもよい。実体は、データ保存サービス、仮想コンピュータシステムサービス及び(または)データベースサービスなどの様々なサービスを運用するコンピュータ処理リソースサービス・プロバイダの顧客でもよい。顧客は、例えば、仮想マシンインスタンスの生成または移動の要求を通じてなど、様々な方法でハードウェア選好設定を表わしてもよい。要求されたハードウェア構成は、仮想コンピュータシステムサービスによって提供され得る1つ以上の物理的ホストで具体化されてもよい。物理的ホストは様々なハードウェア構成要素を含んでもよい。例えば、物理的ホストは、仮想マシンインスタンスを実体化し且つサポートするのに必要な1つ以上のプロセッサ、1つ以上のデータ記憶装置(例えば、半導体駆動装置または磁気ディスク駆動装置)、ランダム・アクセス・メモリ(RAM)及び他の構成要素を含んでもよい。いくつかの実施形態では、仮想コンピュータシステムサービスは、個々の物理的ホストが仮想マシンインスタンスを実体化する多くのスロットを含むように構成してもよい。これらのスロットは、基礎を成すコンピュータシステムの様々なハードウェアリソースの割当に対応することにより、仮想マシンインスタンスが有効な間スロットに対して平均性能の保証を供給する役割を果たしてもよい。従って、仮想マシンインスタンスが物理的ホストの中で実体化される場合、インスタンスは、仮想マシンインスタンスを実体化し且つサポートするのに必要なハードウェア仕様に基づいて1つ以上のスロットの中で実体化されてもよい。
いくつかの実施形態では、仮想コンピュータシステムサービスは、インスタンスを実体化するハードウェア仕様に対する必要条件または選好設定を含み得る仮想マシンインスタンスに対する顧客要求を受信してもよい。従って、仮想コンピュータシステムサービスは、要求されたハードウェア仕様を備えた物理的ホストが割当に使用可能かどうか判断してもよい。要求されたハードウェア仕様を備えた物理的ホストが使用可能な場合、仮想コンピュータシステムサービスは使用可能な物理的ホストに仮想マシンインスタンスを割り当ててもよい。要求されたハードウェアが使用可能でない場合、仮想コンピュータシステムサービスは特定のハードウェアに対する要求が顧客によって主張された選好設定または必要条件かどうか判断してもよい。要求されたハードウェア仕様を備えた物理的ホストが使用可能でなく、及び顧客要求が仮想マシンインスタンスをサポートし且つ実体化するある特定のハードウェア仕様に対する選好設定である場合には、仮想コンピュータシステムサービスは、準拠しない物理的ホストにインスタンスを割り当ててもよい。しかしながら、要求されたハードウェア仕様を備えた物理的ホストが使用可能でなく、及び要求が顧客によって主張された確定した必要条件である場合、仮想コンピュータシステムサービスは準拠しない物理的ホストにインスタンスを割り当てることを控えて、代わりに、例えば、適切な物理的ホストが使用可能になるまでの見積時間、及び要求された仮想マシンインスタンスに関して顧客が使用可能な他の使用可能なオプションを含むエラーメッセージを表示してもよい。
いくつかの実施形態では、仮想コンピュータシステムサービスは、仮想マシンインスタンスに関連したメタデータに顧客のハードウェア仕様の選好設定を持続的に格納してもよい。物理的ホスト内の1つ以上のスロットが使用可能になったことを仮想コンピュータシステムサービスが検出した場合、仮想コンピュータシステムサービスは、顧客要求に含まれている仕様と合致するハードウェア仕様を備えた物理的ホストにインスタンスが移動されることを顧客が要求したかどうか判断するために、任意の既存の仮想マシンインスタンスのメタデータに照会してもよい。多数の仮想マシンインスタンスに関連するメタデータが特定のハードウェア仕様を備えた物理的ホストへの移動の要求を示し、及び今使用可能な物理的ホストがこれらの仮想マシンインスタンスについて合致するハードウェア仕様を含んでいる場合には、仮想コンピュータシステムサービスは、どの仮想マシンインスタンスが物理的ホストに移動されてもよいか判断するために1つ以上の基準を適用してもよい。従って、仮想コンピュータシステムサービスは、選択された仮想マシンインスタンスの1つ以上のスナップショットを取得して、物理的ホストにおける目標スロットにスナップショットを転送してもよい。その後、仮想マシンインスタンスは一時停止され、物理的ホストの中の目標とされたスロットに転送されてもよい。従って、仮想マシンインスタンスは、インスタンスのメタデータの中で指定された要求されたハードウェア仕様を備えた物理的ホストの中に移動され且つ活性化されてもよい。
いくつかの実施形態では、仮想コンピュータシステムサービスは、既存のインスタンスをサポートするある特定のハードウェア仕様の要求を受信してもよい。上記したように、物理的ホストが1つ以上の使用可能なスロットを含み、且つ要求されたハードウェア仕様を備える場合、仮想コンピュータシステムサービスは上記したのと同様のプロセスを使用して、物理的ホストのスロットに既存のインスタンスを割り当ててもよい。しかしながら、要求されたハードウェア仕様を備えた物理的ホストが使用可能でない場合、仮想コンピュータシステムサービスは、上記したように、要求が選好設定または必要条件かどうか判断するために要求を評価してもよい。従って、要求がハードウェア仕様のある特定のセットに対する選好設定のみである場合、仮想コンピュータシステムサービスは、要求されたハードウェア仕様を備えた物理的ホストにおける1つ以上のスロットが使用可能にされる時間まで、既存のインスタンスを移動させなくてもよい。あるいは、要求が顧客の必要条件のセットである場合、仮想コンピュータシステムサービスはエラーメッセージを表示して、移動のための任意の新たな顧客要求を待ってもよい。
このように、仮想コンピュータシステムサービスは、顧客のハードウェア仕様の必要条件を満たす物理的ホストに1つ以上の仮想マシンインスタンスを割り当ててもよい。さらに、ここに記述され且つ示唆された技術は追加の技術的な利点を促進する。例えば、いくつかの実施形態では、仮想コンピュータシステムサービスが顧客の選好設定または必要条件に基づいて物理的ホストに既存の仮想マシンインスタンスを移動させてもよいので、このことはインスタンスを実体化するために使用される物理的ホストが顧客のハードウェア仕様の必要条件に当初合致しない場合に、仮想マシンインスタンスを生成し且つ終了する慣例を排除できる。さらに、実施形態では、仮想コンピュータシステムサービスが顧客のハードウェア仕様の必要条件に基づいて異なる物理的ホストに仮想マシンインスタンスを自動的に移動してもよいので、顧客はもはや要求されたハードウェア仕様を備えた物理的ホストに既存の仮想マシンインスタンスを割り当てる要求を連続的に提起する必要がない。このことは、次には、顧客要求をサポートする新たなハードウェアの必要性を縮小し得るので、任意の新たなハードウェア構成要素のコスト及びこれらの構成要素のメンテナンスの関連するコストを低減し得る。ある特定のハードウェア仕様の顧客要求の未処理分は、さらにコンピュータ処理リソースサービス・プロバイダに価値のある情報を提供し得る。例えば、未処理分はシステム容量見積及び(または)ハードウェア購買決定を通知するために使用されてもよい。追加の用途もそこに記述された様々な技術によって可能になる。
図1は、様々な実施形態が実行され得る環境100の実例を示す。環境100では、コンピュータ処理リソースサービス・プロバイダ102はコンピュータ処理リソースサービス・プロバイダの顧客に様々なコンピュータ処理リソースサービスを提供してもよい。コンピュータ処理リソースサービス・プロバイダ102は、1人以上の顧客を代表して様々なコンピュータ処理リソースをホストする組織でもよい。例えば、コンピュータ処理リソースサービス・プロバイダは、ハードウェアサーバ、データ記憶装置、ネットワーク装置のような様々なコンピュータ処理ハードウェアリソース、及びサーバラック、ネットワーキング・ケーブル等のような他の備品をホストするのに使用される1つ以上の設備を運用してもよい。コンピュータ処理リソースサービス・プロバイダ102は、1つ以上のサービスを運用するためにそのコンピュータ処理ハードウェアリソースを利用してもよい。そのようなサービスは、物理的機器に投資する顧客の必要性を縮小するかまたは排除さえもすると同時に、コンピュータ処理リソースサービス・プロバイダの顧客が顧客の操作をサポートするコンピュータ処理リソースを遠隔的に管理することを可能にするサービスを含んでもよい。例示のサービスは、制限されないが、様々なデータ保存サービス(オブジェクト・ベースのデータ保存サービス、アーカイブのデータ保存サービス、データベースサービス等)、プログラム実行サービス及び他のサービスを含む。そのサービスは、ウェブサイトを操作すること、組織、分配された計算及び(または)他の活動を支援する企業システムを操作することのように、多様性に富んだ活動をサポートするために顧客によって使用されてもよい。
従って、図1に示されるように、環境100は顧客104を含む。顧客104は、ウェブ・ページ開発またはデータベース管理などの顧客の運用をサポートするコンピュータ処理リソースを遠隔に管理するコンピュータ処理リソースサービス・プロバイダ102によって提供される1つ以上のサービスを利用することができる個人でもよいしまたは組織でもよい。顧客104は、顧客のコンピュータ処理によって、顧客のニーズをサポートするために使用され得る仮想マシンインスタンスを構成するコンピュータ処理システムサービスプロバイダ102によって提供される仮想コンピュータシステムサービスに1つ以上の要求を提起してもよい。1つ以上の要求は、オペレーティング・システム及び(または)仮想マシンインスタンスに含まれているアプリケーションをさらにサポートする役目を果たし得るハードウェア仕様の必要条件または選好設定を含んでもよい。例えば、顧客104がリソース集約型アプリケーションを作成し且つテストするために仮想マシンインスタンスを使用する場合、顧客104はこれらのアプリケーションをサポートするために重要な処理能力及び記憶容量を要求してもよい。あるいは、顧客104がワードプロセッサ及び表計算操作のための仮想マシンインスタンスを利用する場合、広範囲なリソースは必要でない。従って、仮想コンピュータシステムサービスは、物理的ホスト106上に仮想マシンインスタンスを実体化してもよい。
物理的ホスト106は、上記したように、複数のハードウェア構成要素を含んでもよい。例えば、物理的ホスト106は、1つ以上のプロセッサ、いくつかのRAMチップセット及び仮想マシンインスタンス108を持続的に格納し且つ実体化するように構成された1つ以上の記憶装置(例えば、半導体駆動装置または磁気ディスク駆動装置)を含んでもよい。図4に関連してより詳細に説明されるように、各物理的ホスト106は、1つ以上の仮想マシンインスタンス108を実体化し且つサポートするために1つ以上のスロットを含むように構成されてもよい。これらのスロットは、そこに実体化された仮想マシンインスタンス108の各々に性能メトリクスの平均セットを割り当てる役目を果たす。例えば、要求されたタイプの仮想マシンインスタンス108によって、仮想コンピュータシステムサービスは仮想マシンインスタンス108に1つ以上のスロットを割り当ててもよい。
仮想マシンインスタンス108が物理的ホスト106中の1つ以上のスロットの中で実体化された後のどの時点でも、顧客104は、仮想マシンインスタンス108を実体化し且つサポートするために使用されるべき特定のハードウェア仕様に対する選好設定または必要条件を含み得る仮想コンピュータシステムサービスに要求を提起してもよい。従って、仮想コンピュータシステムサービスは、システム内の使用可能ないずれかの物理的ホスト106が、要求された仕様を提供するために使用することができる使用可能な配置領域を備えているかどうか判断してもよい。例えば、配置領域は、要求された特定のハードウェア仕様を備えた物理的ホストの中の1つ以上の使用可能なスロットを検索することに基づいて識別されてもよい。従って、物理的ホスト106が要求を満たすために使用され得ることが見出され、及び物理的ホストが仮想マシンインスタンス108を実体化するために十分なスロットを有する場合、仮想コンピュータシステムサービスは仮想マシンインスタンス108をこの物理的ホスト106に移動し、且つ、このインスタンスを実体化するために以前に使用されたスロットを解放してもよい。しかしながら、物理的ホスト106が要求を満たすために使用可能でない場合、仮想コンピュータシステムサービスは仮想マシンインスタンス108を移動する必要はなく、及び(または)エラーメッセージを表示してもよい。
図2は、本開示の様々な実施形態が実行され得る環境200の例示を示す。環境200では、コンピュータ処理リソースサービス・プロバイダ202は、顧客204に対する様々なサービスを提供してもよい。顧客204は、1つ以上のウェブサーバまたはアプリケーションを遠隔的に生成し、テストし、及びメンテナンスするコンピュータ処理リソースサービス・プロバイダ202によって提供される様々なサービスを利用し得る組織であってもよい。図2に示されるように、顧客204は、インターネットなどの1つ以上の通信ネットワーク206を介してコンピュータ処理リソースサービス・プロバイダ202と通信してもよい。顧客204からコンピュータ処理リソースサービス・プロバイダ202へのいくつかの通信は、コンピュータ処理リソースサービス・プロバイダ202に、ここに記述された様々な技術またはその変形に従って運用させてもよい。
上記したように、コンピュータ処理リソースサービス・プロバイダ202は、その顧客に様々なコンピュータ処理リソースサービスを提供してもよい。例えば、特にこの実例において、コンピュータ処理リソースサービス・プロバイダ202は少なくとも2つのタイプのサービスを提供する。コンピュータ処理リソースサービス・プロバイダによって提供されるサービスは、この例において、仮想コンピュータシステムサービス208、データ保存サービス210及び1つ以上の他のサービス212を含み、本開示のすべての実施形態がすべてのそのようなサービスを含むものではないが、追加サービスがここに明確に記載されたサービスに追加されまたは代替として提供されてもよい。
仮想コンピュータシステムサービス208は、コンピュータ処理リソースサービス・プロバイダ202の顧客204に代わって仮想コンピュータシステム上に仮想マシンインスタンスを実体化するように構成されたコンピュータ処理リソースの集合であってもよい。コンピュータ処理リソースサービス・プロバイダ202の顧客204は、仮想コンピュータシステムサービス208と対話して、コンピュータ処理リソースサービス・プロバイダ202によってホストされ且つ運用された物理的コンピュータ処理装置(例えば物理的ホスト)上で実体化される仮想コンピュータシステムを設定し且つ運用してもよい。仮想コンピュータシステムはウェブサイトをサポートするサーバとして作動するように様々な目的に使用されてもよい。仮想コンピュータシステムに対する他のアプリケーションは、データベース・アプリケーション、電子商取引アプリケーション、ビジネス・アプリケーション及び(または)他のアプリケーションをサポートすることでもよい。
顧客204が仮想コンピュータシステムサービス208と対話し、及び仮想マシンインスタンスを設定する場合、顧客204は様々なリソースへのアクセスを取得してもよい。例えば、仮想マシンインスタンスはオペレーティング・システム、及び顧客のニーズに応じて様々なアプリケーションを設定してもよい。仮想マシンインスタンスは、上記したように、コンピュータ処理リソースサービス・プロバイダ202によって運用され得る物理的ホスト上で実体化されてもよい。従って、物理的ホストは、仮想マシンインスタンスを運用し且つサポートするのに必要なコンピュータ処理リソースを提供するために一括して役目を果たすように構成され得るいくつかのハードウェア構成要素を備える必要があるかもしれない。従って、仮想コンピュータシステムサービス208は、デフォルトで、特定のインスタンスをサポートするのに必要なリソースを備えた物理的ホスト上に仮想マシンインスタンスを実体化してもよい。
いくつかの実施形態では、顧客204は、ハードウェア仕様の特定のセットを備えた物理的ホストの中で仮想マシンインスタンスが実体化されることを要求してもよい。ハードウェア仕様が仮想コンピュータシステムサービス208によるデフォルトで選択されなかった可能性があるが、顧客204はそのニーズをサポートすることをこれらの仕様に要求してもよい。上記したように、顧客204は広範囲なリソースが作動することを要求する仮想マシンインスタンス上のソフトウェアを開発し且つテストしてもよい。従って、仮想コンピュータシステムサービス208によって提供されたデフォルトのハードウェア仕様は、これらの目的に対して妥当でない可能性がある。ハードウェア仕様の特定のセットを備えた物理的ホストが仮想マシンインスタンスに対して割り当てられるべきであることを顧客204が指定している場合、仮想コンピュータシステムサービス208はいずれかの使用可能な物理的ホストがこれらの仕様を現在備えているかどうか判断してもよい。少なくとも顧客の要求で指定されたハードウェア仕様の特定のセットを備えた使用可能な物理的ホストがない場合で、且つ顧客のハードウェア要求が選好設定である場合には、仮想コンピュータシステムサービス208は、仮想マシンインスタンスを実体化するために、及び指定されたハードウェア構成要素を備えた物理的ホストが一旦使用可能になればそれに仮想マシンインスタンスが移動させられるべきであることを明確にするべく起動されるフラグをインスタンスのメタデータの中で維持するために、最小のハードウェア仕様を備えた物理的ホストの中の仮想マシンインスタンスを実体化してもよい。しかしながら、新たな仮想マシンインスタンスを作成する要求に含まれているハードウェア仕様要求が必要条件である場合には、仮想コンピュータシステムサービス208はエラーメッセージを表示し、ハードウェア仕様の必要条件を満たすことができる物理的ホストが使用可能でない場合には要求を拒否してもよい。
さらに、いくつかの実施形態では、顧客204は、顧客204のニーズをサポートするのに必要であり得るハードウェア仕様の特定のセットを備えた物理的ホストに既存の仮想マシンインスタンスを移動する要求を提起できるようにしてもよい。少なくとも要求の中で提供されたハードウェア仕様を備えた物理的ホストが現在存在しない場合、仮想コンピュータシステムサービス208は、新たな物理的ホストにインスタンスを移動せずに、既存の仮想マシンインスタンスをそれが実体化されている物理的ホストの中に維持してもよい。さらに、要求されたハードウェア仕様がインスタンスをサポートするために必要とされる場合、仮想コンピュータシステムサービス208はエラーメッセージを表示し、顧客204にある特定のオプションを与えてもよい。例えば、顧客204は、顧客の必要条件によりぴったり合致する物理的ホストに仮想マシンインスタンスを移動することを試みる要求を再構成するオプションを与えられてもよい。顧客204のハードウェア仕様に合致する物理的ホストが使用可能な場合、仮想コンピュータシステムサービス208は、要求を満たすように、この物理的ホストに仮想マシンインスタンスを移動してもよい。
上記したように、仮想コンピュータシステムサービス208は、起動されると、使用可能な時にある特定のハードウェア仕様を備える物理的ホストに仮想マシンインスタンスを移動させることを顧客が選択していると特定し得る、フラグを含むことができるインスタンス・メタデータを維持してもよい。従って、いくつかの実施形態では、仮想コンピュータシステムサービス208は、1つ以上のスロットが物理的ホストにおいて使用可能になる場合に、各仮想マシンインスタンスに関するメタデータに照会するように構成されてもよい。仮想コンピュータシステムサービス208が物理的ホストに移動されることになっている1つ以上の仮想マシンインスタンスを識別する場合、仮想コンピュータシステムサービス208は、どのインスタンスが移動されることになっているか判断するために1つ以上の仮想マシンインスタンスに基準のセットを適用するように構成されてもよい。例えば、その基準は、ある特定のハードウェア仕様の要求と現在の照会との間の時間の長さを含んでもよい。従って、仮想コンピュータシステムサービス208は、要求されたハードウェア仕様を備えた物理的ホストに選択された仮想マシンインスタンスを移動することを開始して、そのインスタンスに関するメタデータをリセットしてもよい。
データ保存サービス210は、顧客204のためにデータを格納するように一括して作動するコンピュータ処理リソースの集合を含んでもよい。データ保存サービス210に記憶されたデータは、データ・オブジェクトに組織化されてもよい。データ・オブジェクトは、おそらくサイズ上のある制約以外は、任意のサイズを備えてもよい。従って、データ保存サービス210は、様々なサイズの多数のデータ・オブジェクトを格納してもよい。データ保存サービス210は、データ保存サービス210によって格納されたデータ・オブジェクトに関する他の操作を検索するかまたは行なうために、顧客204によって使用され得るデータ・オブジェクトの識別子にデータ・オブジェクトを関連付ける重要な値の記憶装置として作動してもよい。データ保存サービスへのアクセスは、適切に構成されたアプリケーションプログラム・インターフェイス(API)コールを介してもよい。
コンピュータ処理リソースサービス・プロバイダ202は、その顧客204のニーズに基づいて1つ以上の他のサービス212をさらに維持してもよい。例えば、コンピュータ処理リソースサービス・プロバイダ202は、その顧客204のためのデータベースサービスを維持してもよい。データベースサービスは、1人以上の顧客204のための1つ以上のデータベースを実行するために一括して作動するコンピュータ処理リソースの集合であってもよい。コンピュータ処理リソースサービス・プロバイダ202の顧客204は、サービスに対する適切に構成されたAPIコールの利用によりデータベースサービスからのデータベースを運用し且つ管理してもよい。このことは、次には、顧客204がデータベースの中の操作を維持すること及び潜在的にスケール変更することができるようにしてもよい。他のサービスは、制限はされないが、オブジェクト・レベルのデータ保存サービス、オブジェクト・レベルのアーカイブのデータ保存サービス、他のサービスを管理するサービス及び(または)他のサービスを含む。
上記したように、仮想コンピュータシステムサービスは、様々な用途のための仮想マシンインスタンスを設定する1人以上の顧客によって使用されてもよい。仮想マシンインスタンスは、顧客が、オペレーティング・システム及びある特定の機能(例えば、1つ以上のデータベースを維持する機能、顧客情報を格納する機能、ウェブ・アプリケーションを開発する機能等)を行なうことを可能にし得る様々なアプリケーションにアクセスすることを可能にしてもよい。従って、図3は、少なくとも1つの実施形態に従って仮想コンピュータシステムサービス302の様々な構成要素を含む環境300の実例を示す。仮想コンピュータシステムサービス302は、顧客が仮想コンピュータシステムサービス302にアクセスすることを可能にし得る顧客インターフェイス304を顧客に提供し得る。顧客は、インターネットなどの1つ以上の通信ネットワークを介して顧客インターフェイス304を利用し得る。顧客インターフェイス304は、顧客が仮想コンピュータシステムサービス302にアクセスする認可を持っていることを保証するためにある特定の安全予防手段を含んでもよい。例えば、仮想コンピュータシステムサービス302にアクセスするために、顧客インターフェイス304を使用する場合、顧客はユーザーネーム及び対応するパスワードまたは暗号鍵を提供する必要があるかもしれない。さらに、顧客インターフェイス304に提起された要求(例えばAPIコール)は、暗号化キーを使用して生成された電子署名であって、認証システム(図示せず)などによるように、仮想コンピュータシステムサービス302による証明可能な電子署名を要求してもよい。
一旦顧客が顧客インターフェイス304を介して仮想コンピュータシステムサービス302へのアクセスを取得した場合には、仮想コンピュータシステムサービス302は、顧客インターフェイス304を介して、顧客が管理サブシステム306と対話できるようにしてもよい。例えば、管理サブシステム306は、顧客が遠隔的に仮想マシンインスタンスを設定できるようにしてもよい。顧客は、オペレーティング・システム及び顧客のニーズに適した様々なアプリケーションを含む仮想マシンインスタンスを生成するために顧客インターフェイス304及び管理サブシステム306を使用してもよい。オペレーティング・システム及び様々なアプリケーションは、マシン・イメージ308の形態でデータ記憶装置の中で維持されてもよい。仮想コンピュータシステムサービス302は、管理サブシステム306において指定されるように、特定の顧客の選好設定に基づいて様々なマシン・イメージ308を維持してもよい。顧客が管理サブシステム306を介して仮想マシンインスタンスを設定する要求を提起する場合、仮想コンピュータシステムサービス302は、顧客が要求したマシン・イメージを識別して、マシン・イメージを処理するのに必要なリソース(例えば、マシン・イメージの構成要素を運用するのに必要なプロセッサ及びランダム・アクセス・メモリ(RAM))を割り当ててもよい。マシン・イメージは、インスタンスのために物理的ホスト312として役割を果たす1つ以上の物理的記憶装置(例えば、1つ以上のサーバまたはハード駆動装置)上で実体化される。
マシン・イメージを処理するのに必要なリソースの自動割当の代わりとして、顧客は、顧客インターフェイス304及び管理サブシステム306を利用して、マシン・イメージを処理し且つサポートするリソースの特定のセットを要求してもよい。例えば、顧客がリソース集約型のソフトウェアまたはウェブ・アプリケーションを作成し、テストし、且つ管理するために仮想マシンインスタンスを使用する予定ならば、顧客はマシン・イメージを単に処理するのに必要なリソースを超えた追加のリソースを要求してもよい。従って、管理サブシステム306は、追加のハードウェア仕様を含む要求を処理して、仮想マシンインスタンスを実体化するのに必要なリソースを含む物理的ホスト312を識別して、顧客要求を満たしてもよい。上記したように、顧客はこれらのハードウェア仕様の要求がインスタンスの生成のための選好設定または必要条件のいずれであるかを特定してもよい。前者の場合、管理サブシステム306が顧客の要求を満たすのに必要なリソースを備えた物理的ホスト312を識別することができない場合、管理サブシステム306は、マシン・イメージを処理するのに必要なリソースを備えた物理的ホスト306の中で仮想マシンインスタンスを実体化するように構成されてもよい。従って、管理サブシステム306は、要求されたハードウェア仕様を備えた物理的ホスト312が使用可能になるときに管理サブシステム306がこの物理的ホストに仮想マシンインスタンスを移動するように、仮想マシンインスタンスに関連したメタデータ・フラグを起動するように構成されてもよい。後者の場合(例えば、ハードウェア仕様のある特定のセットに対する要求が必要条件である場合)、管理サブシステム306は顧客インターフェイス304に対して実行可能な命令を送信するように構成されてもよく、顧客インターフェイス304によって実行された時、要求されたハードウェア仕様を備えた物理的ホスト312が使用可能でない場合エラーメッセージを顧客インターフェイス304に表示させる。さらに、管理サブシステム306は、どの物理的ホスト312の中にも仮想マシンインスタンスを実体化しなくてよい。
上記したように、管理サブシステム306は、ハードウェア仕様のある特定のセットに対する顧客の選好設定を満たさない物理的ホスト312の中に仮想マシンインスタンスが実体化されていた場合には、仮想マシンインスタンスに関連したメタデータ・フラグを起動するように構成されてもよい。顧客は、顧客インターフェイス304に対する適切に構成されたAPIコールによって、インスタンスをサポートするのに必要なリソースを備えた物理的ホスト312に仮想マシンインスタンスが移動させられるべきかどうかを明確にするために仮想マシンインスタンス内のメタデータ・フラグを起動してもよい。さらに、要求されたハードウェア仕様を備えた物理的ホスト312の中の仮想コンピュータ処理インスタンスを実体化するために顧客の選好設定を管理サブシステム306がすぐには満たすことができない場合、メタデータ・フラグが起動されてもよい。従って、仮想コンピュータシステムサービス302は、物理的ホスト312の中に実体化された仮想マシンインスタンスが顧客の要求を満たすのに必要なリソースを有し得る異なる物理的ホスト312に移動させられるべきかどうかを判断する情報を管理するために使用される1つ以上のメタデータサービス310を維持してもよい。図8に関連してより詳細に記述されるように、管理サブシステム306は、どの既存の仮想マシンインスタンスが物理的ホスト312の中で新たに使用可能なスロットへの移動のための顧客要求を含むか判断するために、メタデータサービス310に照会するように構成されてもよい。
上記したように、各物理的ホストは、仮想マシンインスタンスを実体化するために使用される複数のスロットを含んでもよい。従って、図4は、実施形態に従って、管理サブシステムと1つ以上のスロットを有し得る複数の物理的ホストとの間の対話を含む環境400の実例である。環境400では、顧客402は、インターネット404などの1つ以上の通信ネットワークを介して、サービスに対する適切に構成されたAPIコールを介してなど、1つ以上の要求を提起することによって仮想コンピュータシステムサービス406と対話する。上記したように、顧客402は、オペレーティング・システム及び顧客のニーズに適した様々なアプリケーションを含むインスタンスを生成するために、仮想コンピュータシステムサービス406によって提供された顧客インターフェイス及び管理サブシステム408を利用してもよい。
管理サブシステム408は、上記したように、顧客402の要求に応じて、1つ以上の物理的ホスト410の中にマシン・イメージをインストールすることによって仮想マシンインスタンスを実体化するために、1つ以上の物理的ホスト410と対話してもよい。各物理的ホスト410は、1つの仮想マシンインスタンスを実体化するのに必要な1セットのリソースを備えてもよい。しかしながら、各物理的ホスト410は、物理的ホスト410に含まれたハードウェア構成要素に基づいてリソースの異なるセットを含んでもよい。例えば、各物理的ホスト410は、1つ以上の仮想マシンインスタンスを実体化するのに必要な異なるプロセスチップセット、記憶装置(例えば、半導体駆動装置若しくは磁気ディスク駆動装置)またはRAMを含んでもよい。従って、ある特定の仮想マシンインスタンスは、いくつかの物理的ホスト410の中に実体化されてもよいが他のものの中ではない。
各物理的ホスト410は、仮想マシンインスタンスの割当のための1つ以上のスロット412を備えてもよい。各スロット412は、仮想マシンインスタンスをサポートする1つ以上の操作を行なうために、物理的ホスト410からのリソースのセットの割当に相当してもよい。例えば、スロットは、物理的ホスト410の処理能力の半分に相当してもよい。顧客402が仮想マシンインスタンスの生成を要求する場合、顧客402は仮想マシンインスタンスがどれくらい大きなものであるべきか指定することができるようにしてもよい。従って、仮想マシンインスタンスが大きいほど、物理的ホスト410の中でインスタンスが消費するスロット412は多くなり得る。なぜならば、大きなインスタンスは仮想マシンインスタンスの一部であるマシン・イメージ(例えば、オペレーティング・システム及び関連するアプリケーション)を実体化し且つサポートする追加のリソースを必要とし得るからである。物理的ホスト410がより少ないコンピュータ処理リソースを備えている(例えば、時代遅れのまたは旧式のプロセッサ及び(または)記憶装置などのより古い技術を使用する場合)場合には、物理的ホスト410は、仮想マシンインスタンスの割当のために少数のスロット412を含むだけでよい。あるいは、より多いコンピュータ処理リソースを備えたより新しい物理的ホスト410は、追加のスロット412をサポートできるようにしてもよく、従って、追加の仮想マシンインスタンスを収容する。
従って、顧客402が仮想コンピュータシステムサービス406に対して仮想マシンインスタンスを作成する要求を提起した場合、管理サブシステム408は、インスタンスを実体化するのに必要なリソースをどの物理的ホスト410が備えているか判断するように構成されてもよい。さらに、管理サブシステム408は、これらの物理的ホスト410の中で、割当のために必要なスロット412を備えているのがどの物理的ホスト410であるかを判断してもよい。従って、管理サブシステム408は、インスタンスをサポートするのに必要なリソース及びスロット412を備えた物理的ホスト410の中に仮想マシンインスタンスを実体化してもよい。
上記したように、顧客402は、生成のときに仮想マシンインスタンスに割り当てられるべきリソースのセットに対して選好設定または必要条件を指定してもよい。このインスタンスでは、管理サブシステム408は、既存の物理的ホスト410が要求されたリソースを備えているかを判断するように構成され、備えている場合に、その物理的ホスト410が選好設定または必要条件を満たすために必要なスロット412を備えているかどうかを判断するように構成されてもよい。その要求がリソースのセットに対する選好設定を含み、その選好設定を満たす物理的ホスト410が使用可能でない場合、管理サブシステム408は、インスタンスを実体化するために十分なスロット412を備えた物理的ホスト410の中に仮想マシンインスタンスを割り当てて、且つインスタンスをサポートするのに必要な最小のリソースを提供してもよい。従って、後に選好設定を満たすのに必要なリソースを備えた物理的ホスト410において十分な数のスロット412が使用可能になった場合は、管理サブシステムは、この物理的ホスト410にインスタンスを移動するように構成されてもよい。しかしながら、その要求が仮想マシンインスタンスを実体化し且つサポートするために必要とされるリソースのセットを含む場合、管理サブシステムは、必要条件を満たす物理的ホスト410が使用可能でない場合、または必要条件を満たすことができる物理的ホスト410においてスロット412が使用可能でない場合には、エラーメッセージを生成するように構成されてもよい。
図5は、少なくとも1つの実施形態に従って、1つ以上の仮想マシンインスタンスが実体化され且つ割り当てられた環境500の実例である。上記したように、仮想コンピュータシステムサービスは、任意の仮想マシンインスタンスを実体化し且つサポートするために使用され得る複数のリソースを備えた1つ以上の物理的ホスト502を維持してもよい。上記の図4に示すように、各物理的ホスト502は、その物理的ホスト502に含まれたリソースの一部に対応する1つ以上のスロット504を備えてもよい。例えば、各スロット504は、当該スロット504に対して平均して配分された物理的ホスト502によって提供された処理能力の一部に相当してもよい。
顧客が、仮想マシンインスタンス506を設定するために、例えばサービスに対する適切に構成されたAPIコールによって、仮想コンピュータシステムサービスに要求を提起した場合、管理サブシステムは、その要求を処理し、且つ物理的ホスト502に仮想マシンインスタンス506を割り当ててもよい。上記したように、管理サブシステムは、仮想マシンインスタンス506を実体化し且つサポートするのに必要なリソースを備えた物理的ホスト502に仮想マシンインスタンス506を割り当ててもよい。従って、物理的ホスト502は、仮想マシンインスタンス506を実体化するために使用可能な1つ以上のスロット504を有する必要があり得る。
図5に示すように、仮想マシンインスタンス506は、インスタンス506をサポートするために必要なまたは要求されるリソースに応じて、1つ以上のスロット504に割り当てられてもよい。従って、各仮想マシンインスタンス506は、物理的ホスト502の中の任意の他の仮想マシンインスタンス506とは異なり得る多くのスロット504に割り当てられてもよい。例えば、環境500では、物理的ホスト502は、多くのインスタンス506を割り当てるために使用され得る5つのスロット504を備えていてもよい。図5に示すように、管理サブシステムは、スロット504に1つ以上のインスタンス506を割り当ててもよい。従って、この実例における物理的ホスト502は、2つを超えるスロット504に割り当てら得るより大きなインスタンス506、1つのスロット504の全部及び別のスロット504の一部に割り当てられ得る中規模のインスタンス、及び1つのスロット504の一部に割り当てられ得るより小さなインスタンスを含んでもよい。従って、仮想マシンインスタンス506は、物理的ホスト502において使用可能にされたスロット504の任意の数または一部に割り当てられてもよい。
上記したように、管理サブシステムは、インスタンスが生成されたときに指定された顧客の選好設定に基づいて、またはインスタンスが割り当てられてしまった後になされた後の要求に基づいて、1つの物理的ホストから別の物理的ホストにインスタンスを移動するように構成されてもよい。従って、図6は、少なくとも1つの実施形態に従って、1つの物理的ホストから別の物理的ホストにインスタンスが移動される場合の環境600の実例である。環境600では、第1の物理的ホスト602は、その第1の物理的ホスト602の中で1つ以上のスロットに割り当てられ得る第1のインスタンス608を含め、1つ以上のインスタンスを含んでもよい。後に第1の物理的ホスト602の中の第1のインスタンス608の最初の実体化の後に、物理的ホストを管理し且つコントロールするように構成され得る管理サブシステムは、第2の物理的ホスト604に第1のインスタンス608を移動する要求を受信してもよい。
顧客がここで、第1のインスタンス608をサポートするために追加のリソースを好むかまたは要求した場合には、顧客は、第1の物理的ホスト602から第2の物理的ホスト604に第1のインスタンス608の移動を要求してもよい。従って、第2の物理的ホスト604は、第1の物理的ホスト602に勝る、高性能プロセッサ・チップセット606などの1つ以上の改良された構成要素を備えてもよい。この高性能プロセッサ・チップセット606は、顧客にとって魅力的であり得る第2の物理的ホスト604に実質的な追加のリソースを供給してもよい。高性能プロセッサ・チップセット606の使用は実例の目的で本開示の全体にわたって使用されるが、開示の範囲は単なるプロセッサのアップグレードに限定されない。例えば、第2の物理的ホスト604は、インスタンスを実体化するためのより大きなデータ記憶容量を提供する1つ以上の記憶装置などの他の改良された構成要素を含んでもよい。
管理サブシステムが顧客のハードウェアの選好設定または必要条件を満たすことができるリソースを備えた物理的ホストを認識した場合、管理サブシステムは、第1の物理的ホスト602から第2の物理的ホスト604に第1のインスタンス608を移動することを始めてもよい。第2の物理的ホスト604は多くの空きスロット及び使用中のスロットを備えてもよく、それらの中に1つ以上のインスタンスを実体化していてもよい。図9に関連してより詳細に記述されるように、管理サブシステムは、第1のインスタンス608のスナップショットを取得して、第2の物理的ホスト604の中の1つ以上の空きスロットにこのスナップショットを転送してもよい。従って、第1のインスタンス608は一時停止されて第2の物理的ホスト604に転送され、使用のために活性化されてもよい。顧客はいまや、第2の物理的ホスト604において、高性能プロセッサ・チップセット606及び要求された他のハードウェア構成要素を利用することができる。
上記したように、顧客は、インスタンスをサポートする1セットのリソースに対する選好設定または必要条件と共に仮想マシンインスタンスを生成する要求を提起してもよい。従って、図7は、少なくとも1つの実施形態に従って、顧客が任意に指定できるハードウェア要件に基づいて、仮想マシンインスタンスを割り当てるプロセス700の実例である。要求が任意に指定できるハードウェア要件を含んでいるかどうかにかかわらず、仮想マシンインスタンスを設定する要求が処理されてもよいことに留意されたい。プロセス700では、仮想コンピュータシステムサービスは、インスタンスに割り当てられるべき1セットのリソースを備えた仮想マシンインスタンスの生成のために、顧客から、要求を受信する(702)ように構成された管理サブシステムを備えてもよい。リソースのこのセットに対して任意に指定できるハードウェア要件は、顧客のニーズに基づいて、選好設定または必要条件のいずれかであってもよい。あるいは、その要求は、選好設定のセットに準拠しない物理的ホストの中の仮想マシンインスタンスを実体化することによって満たされる要求であり得ることの表示を含んでもよい。顧客は、サービスに対する1つ以上のより適切に構成されたAPIコールによってこれらの要求を提起してもよい。さらに、要求が表示を含んでいる場合、その表示はサービスに対する個別のAPIコールによって提起されてもよい。
従って、管理サブシステムは、受信された要求を処理する方法を決定するために1つ以上の処理アルゴリズムを適用してもよい。例えば、一旦管理サブシステムが顧客から1つ以上の要求を受信すると、管理サブシステムは、いずれかの物理的ホストコンピュータシステムが仮想マシンインスタンスを実体化するのに使用可能であるかを決定する(704)ためにアルゴリズムを使用するように構成されてもよい。管理サブシステムは、仮想マシンインスタンスのための顧客の選好設定または必要条件を満たすあらゆる可能性のある物理的ホストコンピュータシステムを識別するために、仮想コンピュータシステムサービス内の物理的ホストコンピュータシステムに照会するアルゴリズムを使用するように構成さてもよい。それに続いて、管理サブシステムは、可能性のある物理的ホストコンピュータシステムのいずれかが仮想マシンインスタンスを実体化するために十分な空きスロットを備えているかを評価するアルゴリズムを使用するように構成されてもよい。
管理サブシステムは、この評価において、ある特定のハードウェアリソースに対する選好設定に基づく仮想マシンインスタンスを備えたいずれかの物理的ホスト及び何の選好設定も全くなしで生成された仮想マシンインスタンスを備えたいずれかの物理的ホストを追加するように構成されてもよい。例えば、リソースのある特定のセットを有する仮想マシンインスタンスの要求が選好設定である場合、この要求は、ハードウェアの選好設定なしで作成された任意の既存の実体化されたインスタンスに対して優先権が与えられてもよい。さらに、別のインスタンスにおいて、要求が1セットの必要条件である場合、この要求には、ハードウェア選好設定なしで作成された任意の既存の実体化されたインスタンス、または(例えば、1セットの必要条件でなく)1つだけのハードウェアの選好設定で作成されたインスタンスに勝るより大きな優先権が与えられてもよい。従って、管理サブシステムは、たとえホストが既存の実体化されたインスタンスを含む場合であっても、ある特定の物理的ホストが要求を満たすために使用可能であることを決定してもよい。
1つ以上の物理的ホストコンピュータシステムが顧客の選好設定または必要条件を満たすためにリソースを備えており、且つ、これらの物理的ホストコンピュータシステムが、仮想マシンインスタンスを実体化するための十分な空きスロットを備えている場合には、管理サブシステムは、物理的ホストコンピュータシステムの中の空きスロットに仮想マシンインスタンスを割り当ててもよい(706)。1つを超える物理的ホストコンピュータシステムが存在する場合には、管理サブシステムは、使用可能な物理的ホストコンピュータシステム内の使用可能なスロットを順位付けするアルゴリズムを適用するように構成されてもよい。例えば、管理サブシステムは、各物理的ホストコンピュータシステムのハードウェア仕様及び1つのスロットの中で実体化された1つのインスタンスに対して使用可能にされたリソースに基づいて、使用可能な物理的ホストコンピュータシステム内の使用可能なスロットの順位を生成するアルゴリズムを使用してもよい。従って、1つ以上の使用可能なスロットを備えるとともに、要求の中で提供されたハードウェア仕様に正確に合致する物理的ホストコンピュータシステムは、その中に含まれるスロットに対してより高い順位を与えてもよく、この物理的ホストコンピュータシステム内のスロットの中に仮想マシンインスタンスの実体化につながる。しかしながら、スロットあるいは物理的ホストコンピュータシステムが顧客の選好設定または必要条件を収容するのに使用可能でない場合には、管理サブシステムは、リソースの特定のセットに対する要求が選好設定または必要条件のいずれかであるかを判断する(708)ように構成されてもよい。顧客要求が仮想マシンインスタンスをサポートする1セットのリソースに対する必要条件を有する場合には、管理サブシステムは、顧客インターフェイスに対して実行可能な命令を送信するように構成されてもよく、顧客インターフェイスによって当該命令が実行された時には、顧客インターフェイスにエラーメッセージを表示させる(710)。このエラーメッセージは、リソースが使用不可である旨の情報を含んでもよい。さらに、エラーメッセージは、この後に要求を提起することを顧客に勧めてもよい。従って、管理サブシステムは、顧客からの別の要求を再度受信して(702)、上記したプロセスを繰り返してもよい。
上記したように、管理サブシステムは、物理的ホストにおいて既存の実体化された仮想マシンインスタンスを超えるより大きな優先権を要求が有することを決定するように構成されてもよい。このインスタンスでは、管理サブシステムは、要求された仮想マシンインスタンスを実体化するために、異なる使用可能な物理的ホストに既存のインスタンスを移動してもよい。例えば、管理サブシステムは、ハードウェアの選好設定の対象となるインスタンスを新たに使用可能な物理的ホスト・スロットに割り当てるために(706)、ハードウェアの選好設定または必要条件を有していない既存インスタンスを物理的ホストから移動するように構成されてもよい。同様に、指定されたハードウェアに対する1セットの必要条件を要求が含んでいる場合、管理サブシステムは、必要ならば、1つだけの選好設定に基づいてハードウェアの選好設定を備えていないすべての既存のインスタンスを移動し、次にホスト上で実体化されたすべての既存のインスタンスを移動してもよい。従って、ある特定のハードウェアに対する必要条件のセットを含む要求は、必要条件のセットを含んでいない物理的ホストの中の任意の既存のインスタンスよりも優先度が高くてもよい。
仮想マシンインスタンスをサポートするリソースの特定のセットに対する顧客要求が、任意に指定可能なハードウェアの選好設定にすぎない場合には、管理サブシステムは、物理的ホストコンピュータシステムの中で1つ以上の準拠しないスロットにインスタンスを割り当てる(712)ように構成されてもよい。物理的ホストコンピュータシステムは、顧客が顧客の目的のための仮想マシンインスタンスをまだ利用するように、インスタンスを実体化するのに必要な最小のリソースを備えてもよい。実施形態では、管理サブシステムは、要求された仕様を備えた物理的ホストコンピュータシステムに、一旦それが使用可能になれば、インスタンスが移動されるべきであることを確認する仮想マシンインスタンスに関連したメタデータを更新するように構成されてもよい。従って、一旦理想的な物理的ホストコンピュータシステムが使用可能になれば、仮想マシンインスタンスは自動的に移動されてもよい。
上記したように、管理サブシステムは、仮想コンピュータシステムサービスによって提供された1つ以上の物理的ホストコンピュータシステムを管理するように構成されてもよい。この機能の一部として、管理サブシステムは、物理的ホストコンピュータシステムの各々に含まれた1つ以上の基礎となるスロットを管理するようにさらに構成されてもよい。従って、図8は、少なくとも1つの実施形態に従って、スロット可用性に基づいて仮想マシンインスタンスを移動するプロセス800の実例である。管理サブシステムは、物理的ホストコンピュータシステムのいずれかが仮想マシンインスタンスの割当に使用され得る空きスロットを備えているかどうか判断するために、物理的ホストコンピュータシステムに連続的に照会するように構成されてもよい。従って、プロセス800は、1つ以上のスロットが物理的ホストコンピュータシステム上で使用可能かどうかの検出処理802を備えてもよい。
物理的ホストコンピュータシステムにおける1つ以上のスロットが使用可能になったことを管理サブシステムが検出した場合には、管理サブシステムは、顧客がリソースの好ましいセットを備えた物理的ホストコンピュータシステムに移動させることを要求したすべての既存の仮想マシンインスタンスを識別するメタデータサービスに照会する(804)ように構成されてもよい。上記したように、顧客が仮想マシンインスタンスを作成し且つリソースの特定のセットをインスタンスに割り当てる要求を提起した場合には、管理サブシステムは、リソースの指定されたセットを備えた物理的ホストコンピュータシステムが、現在使用可能でない場合に、インスタンスに関連したメタデータ・フラグを起動してもよい。従って、管理サブシステムは、このメタデータ・フラグを含むインスタンスを探索して、使用可能な物理的ホストコンピュータシステムのスロットとインスタンスとを合致させることを試みてもよい。
いくつかのインスタンスでは、物理的ホストコンピュータシステムのスロットの可用性は1つの仮想マシンインスタンスをサポートするだけの可能性がある。このため、管理サブシステムは、1つの物理的ホストコンピュータシステムから別の物理的ホストコンピュータシステムに1つの仮想マシンインスタンスだけを移動できる可能性がある。従って、プロセス800は、使用可能な物理的ホストコンピュータシステムのスロットへの移動のために、1つを超える現在の仮想マシンインスタンスについてフラグが立てられているかどうかを判断すること(806)を含んでもよい。移動のためにフラグが立てられた1つを超える現在の仮想マシンインスタンスが存在する場合には、移動について仮想マシンインスタンスを選択するために、管理サブシステムが1セットの基準を適用する(808)ことが必要な場合がある。例えば、各仮想マシンインスタンスは、作成された時に、異なるインスタンス特性に従って順位付けされてもよい。例えば、仮想マシンインスタンスは、要求されたリソース(例えば、処理能力及び速度、記憶容量、RAM割当など)に基づいて順位付けされてもよい。さらに、仮想マシンインスタンスは、仮想コンピュータシステムサービスの顧客の使用量などの奥義の基準に基づいて順位付けされてもよい。このため、より多くの仮想マシンインスタンスを作成し且つ使用した顧客は、より高い順位で任意の新たに作成されたインスタンスに対して報酬を与えられてもよい。上記提供された例は説明の目的のために提供され、及び、仮想マシンインスタンスを順位付けするために利用され得る任意の修正または基準は本開示の範囲内であると考えられることに留意されたい。
一旦管理サブシステムが仮想マシンインスタンスを選択すると、管理サブシステムは、移動のために選択された仮想マシンインスタンスを準備する1つ以上のアクションを行なう(810)ように構成されてもよい。図9に関連してより詳細に記述されるように、管理サブシステムは、移動に先立ってその現在の状態を把握するために選択された仮想マシンインスタンスのスナップショットを取得するように構成されてもよい。物理的ホストコンピュータシステムが直近の状態からインスタンスを再開すること及び移動に起因する衝撃を最小化することができるように、その後、スナップショットは目標とされた使用可能なスロットに転送されてもよい。
スナップショットが新たな物理的ホストコンピュータシステムに転送されるとすぐに、管理サブシステムは、インスタンスを一時停止するために、仮想マシンインスタンスがその上に実体化されている物理的ホストコンピュータシステムに1つ以上の実行可能な命令を送信してもよい。一旦、仮想マシンインスタンスが一時停止されて、且つ、さらなる操作がインスタンス内で行なわれていない場合には、管理サブシステムは、仮想マシンインスタンスを新たな物理的ホストコンピュータシステム・スロットに移動して(812)、顧客による新たな使用のためにそれを活性化してもよい。仮想マシンインスタンスの移動は物理的ホストコンピュータシステム上の新しく開かれたスロットを残すので、管理サブシステムは、再びこの可用性を検出してもよく(802)、メタデータサービスに照会して(804)移動のために任意の他のインスタンスを割り当てる。さらに、管理サブシステムは、定期的にに物理的ホストコンピュータシステムを検査してもよく、上記したように、または顧客が削除を要求した仮想マシンインスタンスのインスタンスにおいてスロットの可用性を検出する(802)。
上記したように、管理サブシステムは、顧客が要求を提起していた場合には、仮想マシンインスタンスを移動するように構成されてもよく、仮想マシンインスタンスの生成の前またはその後に、リソースのセットをインスタンスに割り当てる。従って、図9は、少なくとも1つの実施形態に従って、仮想マシンインスタンスを準備し且つ移動するプロセス900の実例である。プロセス900では、管理サブシステムは、移動を要求するインスタンスを識別する(902)ように構成されてもよい。このことは、多くの方法で行われる。例えば、図8に示されるように、管理サブシステムは、基準のセットに基づいて複数のインスタンスから1つのインスタンスを選択することにより、移動のための仮想マシンインスタンスを識別してもよい。複数のインスタンスは、これらのインスタンスが追加ホストのリソースを求める顧客の要求の対象となるものであると識別する関連したメタデータ・フラグを備えた1つ以上のインスタンスを含んでもよい。あるいは、顧客は、リソースが現在使用可能な場合には、直ちに完了される既存の仮想マシンインスタンスを移動する要求を提起してもよい。
一旦、管理サブシステムが移動を要求する仮想マシンインスタンスを識別したときは、管理サブシステムは、仮想マシンインスタンスに割り当てられたリソースを評価する(904)ように構成されてもよい。上記したように、仮想マシンインスタンスは、物理的ホストコンピュータシステムの中で実体化されてもよい。物理的ホストコンピュータシステムは、複数のハードウェア構成要素を備えてもよい。例えば、物理的ホストコンピュータシステムは、継続的に仮想マシンインスタンスを記憶し且つ実体化するように構成された1つ以上のプロセッサ、いくつかのRAMチップセット、及び1つ以上の記憶装置(例えば、半導体駆動装置または磁気ディスク駆動装置)を含んでもよい。各物理的ホストコンピュータシステムは、1つ以上の仮想マシンインスタンスを実体化するために1つ以上のスロットを備えるように構成されてもよい。これらのスロットは、その中に実体化された仮想マシンインスタンスの各々に性能メトリックスの平均セットを割り当てる役目を果たす。従って、管理サブシステムは、仮想マシンインスタンスが現在実体化された物理的ホストコンピュータシステムの現在のハードウェア仕様、及びインスタンスに割り当てられたスロットの数を決定するように構成されてもよい。
管理サブシステムが、一旦、移動を要する仮想マシンインスタンス及びインスタンスを移動させるに必要なリソースを識別したときは、管理サブシステムは、仮想マシンインスタンスを割り当てるために物理的ホストコンピュータシステムの中の1つ以上の目標スロットを識別する(906)ように構成されてもよい。図4に示されるように、各物理的ホストコンピュータシステムは、異なるハードウェア仕様、及び従って、様々なコンピュータ処理能力を備えてもよい。物理的ホストコンピュータシステムがより旧式のまたは時代遅れのハードウェアを備えている場合には、物理的ホストコンピュータシステムは、リソース集約型仮想マシンインスタンスを実体化するために、より少数のスロットを備えてもよい。あるいは、より大きな処理能力及び記憶容量を提供するために物理的ホストコンピュータシステムがより新しい技術を有する場合には、物理的ホストコンピュータシステムは、割当のためにより多くのスロットを備えてもよい。さらに、スロット・サイズは物理的ホストコンピュータシステムの全体にわたって一定でなくてもよい。例えば、スロットがインスタンスに割り当てられるリソースのある割合に相当する場合、1つの物理的ホストコンピュータシステムの中のスロットは、異なる物理的ホストコンピュータシステムの中のスロットより大きな量のリソースに相当してもよい。従って、管理サブシステムは、仮想マシンインスタンスを割り当てることに必要な目標とされたスロットがどれだけ必要であるかを決定するために、目標とされたスロットを検査するように構成されてもよい。
最小の衝撃及び中断を伴う既存の仮想マシンインスタンスを移動させるために、管理サブシステムは、仮想マシンインスタンスのスナップショットを得る(908)ように構成されてもよい。スナップショットは、実行再開用のエントリ・ポイントを識別する情報を含め、所定の時間における仮想マシンインスタンスの現在の動作状態を含んでもよい。従って、仮想マシンインスタンスのスナップショットの生成は、インスタンスの顧客利用で最小の干渉を提供し得る。仮想コンピュータシステムサービスは、システム故障に起因するデータまたは計算処理のロスを防ぐために、仮想マシンインスタンスの各々のスナップショットを周期的に生成するための1つ以上のポリシーを現在実施してもよい。あるいは、スナップショットは顧客または管理サブシステム・コマンドで作成されてもよい。最初のスナップショットが生成された後、それに続くスナップショットは、生成されるデータの量を減らして、追加のコンピュータ処理及び最初のスナップショットの後に生成されたデータだけを含むようにしてもよい。従って、管理サブシステムは、インスタンスのスナップショットを得るためのコマンドを実行するように構成されてもよいし、または、仮想マシンインスタンスのスナップショットを得るためにデータ記憶装置を参照するように構成されてもよい。
一旦、管理サブシステムが、移動された仮想マシンインスタンスと関係する1つ以上のスナップショットを得たときは、管理サブシステムは、目標とされたスロットに1つ以上のスナップショットを転送する(910)ように構成されてもよい。上記したように、管理サブシステムは、移動に関して物理的ホストコンピュータシステムの中で仮想マシンインスタンスが占めるスロットがどれだけの数または部分であるかを決定するように構成されてもよい。従って、管理サブシステムは、移動され仮想マシンインスタンスのために予約されたスロットに1つ以上のスナップショットを転送するように構成されてもよい。
管理サブシステムは、移動プロセスを継続するために、物理的ホストコンピュータシステムの中で作動する仮想マシンインスタンスを一時停止する(912)ように構成されてもよい。管理サブシステムは、この時間中に、仮想マシンインスタンスにおいて顧客が任意の追加の読出操作または書込操作を行うのを防止してもよい。さらに、管理サブシステムは、顧客インターフェイスによって実行可能な、1つ以上のコマンドを送信するように構成されてもよい。その場合には、顧客インターフェイスに仮想マシンインスタンスの一時停止に起因する一時停止時間の長さを詳述する通知を顧客に対して表示させるであろう。この有益な通知は、顧客が移動のために任意のデータを準備することまたは一時停止時間の期間中に不測事態対応計画を実行することを可能にする。実施形態では、管理サブシステムは、移動の後に、仮想マシンインスタンスが第2の物理的ホストコンピュータシステムの中で再開されてもよいように、仮想マシンインスタンスを一時停止する(912)代わりに、仮想マシンインスタンスを再起動するように構成されてもよい。言いかえれば、再起動プロセスは、仮想マシンインスタンスをシャットダウンすること、及び別のコンピュータシステム上の仮想マシンインスタンスを再開することを含んでもよい。あるいは、管理サブシステムは、移動プロセスを終える前に顧客からの仮想マシンインスタンスの選択的なシャットダウンを待つように構成されてもよい。
仮想マシンインスタンスが一時停止された後に、管理サブシステムは、ここで、新たな物理的ホストコンピュータシステム上の1つ以上の目標スロットにおける仮想マシンインスタンスを終了(914)し始めてもよい。このことは、目標とされたホストに先のスナップショットを転送した後、且つ、仮想マシンインスタンスを一時停止する前に、仮想コンピュータシステムサービスによって得られたであろう追加のスナップショットを転送することを含んでもよい。さらに、管理サブシステムは、目標とされたスロットで使用可能なスナップショットを使用して、これらの目標とされたスロット上の仮想マシンインスタンスを復活するように構成されてもよい。一旦、仮想マシンインスタンスが新たな物理的ホストコンピュータシステム上で復活されたときは、管理サブシステムは、先の物理的ホストコンピュータシステムから古い仮想マシンインスタンスを分離し、それを削除することを始めてもよい。それにより、先の物理的ホストコンピュータシステム上の物理的ホストコンピュータシステムのスロットが使用可能になる。
一旦、管理サブシステムが目標とされたスロットでインスタンスを終了させたときは、管理サブシステムは、新たな物理的ホストコンピュータシステムの中の目標とされたスロット上の仮想マシンインスタンスを活性化(916)してもよい。従って、管理サブシステムは、1つ以上の実行可能な命令を送信して、顧客インターフェイスによって実行された時に、顧客インターフェイスに仮想マシンインスタンスが今使用可能であることを顧客に対して通知させるように構成されてもよい。従って、顧客は、顧客のニーズに従って、仮想マシンインスタンスとの顧客の対話を再開するために顧客インターフェイス及び管理サブシステムを利用してもよい。
上記したように、顧客は、あるハードウェア仕様が仮想マシンインスタンスをサポートすることを要求するために、仮想コンピュータシステムサービスによって提供された顧客インターフェイス及び管理サブシステムを利用してもよい。従って、図10は、少なくとも1つの実施形態に従って、既存の仮想マシンインスタンスに対するハードウェア割当の要求を処理するためのプロセス1000の実例である。上記記述されたように、管理サブシステムは、プロセス1000を行なうように構成されてもよい。そのことは、既存の仮想マシンインスタンスに対してハードウェア割当の要求を受信する(1002)ことを含んでもよい。顧客は、サービスについての1つ以上の適切に構成されたAPIコールを作成するために、顧客インターフェイスを使用してこの要求を提起してもよい。従って、その要求は、解決を決定するために管理サブシステムによって処理されてもよい。
一旦、管理サブシステムが要求を受信したときは、管理サブシステムは、要求されたハードウェアを備えた物理的ホストコンピュータシステムの中で既存の仮想マシンインスタンスが現在実体化されているかどうかを判断(1004)してもよい。要求されたハードウェアを備えた物理的ホストコンピュータシステムの中で仮想マシンインスタンスが現在実体化されている場合には、管理サブシステムは、顧客インターフェイスに対して1つ以上のコマンドを送信し、顧客インターフェイスによって実行された時は、顧客インターフェイスに成功メッセージを表示(1006)させてもよい。成功メッセージは、要求されたハードウェア仕様を備えた物理的ホストコンピュータシステムに対して仮想マシンインスタンスが現在割り当てられたことまたは単に要求が成功裡に完了したことの顧客に対する有益な通知を含んでもよい。
要求されたハードウェア仕様を備えた物理的ホストコンピュータシステムに対して仮想マシンインスタンスが割り当てられない場合、管理サブシステムは、要求を満たすために現在使用可能な要求されたハードウェア仕様を備えた物理的ホストコンピュータシステムが存在するかどうかさらに判断する(1008)ように構成されてもよい。上記したように、各物理的ホストコンピュータシステムは、仮想マシンインスタンスを実体化するために使用される1つ以上のスロットを備えてもよい。各スロットは、そこに実体化された仮想マシンインスタンスの各々に性能メトリックスの平均セットを割り当てる役目を果たしてもよい。従って、管理サブシステムは、物理的ホストコンピュータシステムが要求されたハードウェア仕様を備えているかどうか、及び、仮想マシンインスタンスを実体化し且つサポートするのに必要なスロットを備えているかどうかを判断するために、使用可能なスロットを備えているのがどの物理的ホストコンピュータシステムであるかを評価するように構成されてもよい。
要求されたハードウェア仕様を含む物理的ホストコンピュータシステムが使用可能な場合、管理サブシステムは、物理的ホストコンピュータシステムの中の1つ以上のスロットに仮想マシンインスタンスを割り当ててもよい(1010)。図9に示されるように、管理サブシステムは、既存の仮想マシンインスタンスのために1つ以上のスナップショットを得るように、且つ、物理的ホストコンピュータシステムの中で使用可能なスロットにこれらのスナップショットを転送するように構成されてもよい。続いて、管理サブシステムは、仮想マシンインスタンスを一時停止し、且つ、新たな物理的ホストコンピュータシステム上の仮想マシンインスタンスを使用のために準備してもよい。管理サブシステムは、先の物理的ホストコンピュータシステムから仮想マシンインスタンスを削除し、且つ、新たな物理的ホストコンピュータシステム上の仮想マシンインスタンスを活性化するように構成されてもよい。一旦、仮想マシンインスタンスが使用できるようになったときは、管理サブシステムは、顧客インターフェイスに対して1つ以上のコマンドを送信して、顧客インターフェイスによって実行された時、顧客インターフェイスに移動が成功したというメッセージを表示させる(1006)ように構成されてもよい。さらに、メッセージは、仮想マシンインスタンスが今使用できる状態にあると顧客に通知することの有益な通知を含んでもよい。
管理サブシステムは、物理的ホストコンピュータシステムが要求を満たすのには現在使用可能でない場合に、顧客の要求が選好設定または必要条件であるかどうかを判断する(1012)ように構成されてもよい。図7に関して上記したように、顧客の要求がある特定のハードウェア仕様を備えた物理的ホストコンピュータシステムに対する選好設定である場合、仮想マシンインスタンスは、仮想マシンインスタンスを実体化するのに必要な最小のハードウェア仕様を少なくとも備えた物理的ホストコンピュータシステムの中で実体化されてもよい。さらに、管理サブシステムは、要求されたハードウェア仕様を備えた物理的ホストコンピュータシステムが使用可能になる場合に、仮想マシンインスタンスが移動のために考慮されるように、仮想マシンインスタンスに関連したメタデータ・フラグを修正するように構成されてもよい。従って、同様の方法で、顧客がある特定のハードウェア仕様を備えた物理的ホストコンピュータシステムに既存の仮想マシンインスタンスを移動させる要求を提起した場合には、管理サブシステムは、要求された物理的ホストコンピュータシステムが使用可能になる場合に、仮想マシンインスタンスが移動のために考慮されるように、仮想マシンインスタンスに関連したメタデータ・フラグを起動するように構成されてもよい。
しかしながら、顧客の要求が選好設定ではなく必要条件である場合には、管理サブシステムは、1つ以上の実行可能な命令を顧客インターフェイスに送信して、顧客インターフェイスによって実行された時、顧客インターフェイスにエラーメッセージを表示させる(1014)ように構成されてもよい。エラーメッセージは、例えば、使用可能な要求されたハードウェア仕様を備えた物理的ホストコンピュータシステムの可用性の不足及び顧客にとって使用可能な選択肢オプションを記述する1つ以上の有益な通知を含んでもよい。従って、管理サブシステムは、顧客があるハードウェア仕様を備えた物理的ホストコンピュータシステムの顧客の要求を修正し、且つ要求を提起することを可能にするように構成されてもよい。従って、管理サブシステムは、ある特定のハードウェア仕様を備えた物理的ホストコンピュータシステムに既存のインスタンスを移動するための修正された要求を再度受信(1002)してもよい。
本開示の実施形態は次の付記を考慮して記述することができる。
1. 仮想マシンインスタンスを移動するためのコンピュータ実施方法であって、
仮想コンピュータシステムサービスの1つ以上のコンピュータシステムであって、実行可能な命令で構成された前記1つ以上のコンピュータシステムの制御の下に、
顧客からの選好設定のセットであって、仮想マシンインスタンスを実体化するために1つ以上のハードウェア仕様を含む前記選好設定のセットを受信すること、
第1の物理的ホストコンピュータシステムであって、前記選好設定のセットに準拠しないハードウェアを備えた前記第1の物理的ホストコンピュータシステムの中で前記仮想マシンインスタンスを実体化すること、
第2の物理的ホストコンピュータシステムであって、前記選好設定のセットに準拠するハードウェアを備えた前記第2の物理的ホストコンピュータシステムの中で使用可能な容量を検出すること、及び
前記第2の物理的ホストコンピュータシステムの中で前記使用可能な容量を検出したことに部分的に起因して前記第1の物理的ホストコンピュータシステムから前記第2の物理的ホストコンピュータシステムに前記仮想マシンインスタンスを移動させることを含む、
前記コンピュータ実施方法。
2. 前記選好設定のセットは、仮想マシンインスタンスを設定する要求と同時に受信される、
付記1に記載の前記コンピュータ実施方法。
3. 仮想マシンインスタンスを設定する前記要求が、前記選好設定のセットに準拠しないハードウェアを使用して前記仮想マシンインスタンスをある時間の長さだけ実体化することによって完了できることの表示を含む、
付記2に記載の前記コンピュータ実施方法。
4. 前記仮想マシンインスタンスの選択的シャットダウンを検出すること、及び
前記選択的シャットダウンから前記仮想マシンインスタンスを復元する前記第2の物理的ホストコンピュータシステム上で前記仮想マシンインスタンスを再開することを含み、前記第1の物理的ホストコンピュータシステムから前記第2の物理的ホストコンピュータシステムに前記仮想マシンインスタンスを移動することをさらに含む、
前記先行する付記のいずれか1つに記載の前記コンピュータ実施方法。
5. 前記選好設定のセットは、前記第1の物理的ホストコンピュータシステムから前記第2の物理的ホストコンピュータシステムに既存の仮想マシンインスタンスを移動する要求の一部である、
前記先行する付記のいずれか1に記載の前記コンピュータ実施方法。
6. 前記選好設定のセットに準拠する物理的ホストコンピュータシステムのセットにおける使用可能でない容量に少なくとも部分的に起因して前記既存の仮想マシンインスタンスを移動する要求を拒否することをさらに含む、
前記先行する付記のいずれか1に記載の前記コンピュータ実施方法。
7. 移動することが、前記仮想マシンインスタンスが前記第2の物理的ホストコンピュータシステム上で再開するように、前記第2の物理的ホストコンピュータシステムの使用可能な容量を検出したときに前記仮想マシンインスタンスを再起動することを含む、
前記先行する付記のいずれか1に記載の前記コンピュータ実施方法。
8. 仮想マシンインスタンスを移動するためのコンピュータ実施方法であって、
実行可能な命令で構成された1つ以上のコンピュータシステムの制御の下に、
第1のコンピュータシステムであって、仮想マシンインスタンスを実体化するための1つ以上のハードウェア仕様に対する選好設定に準拠しない1つ以上の構成要素を備えた前記第1のコンピュータシステムの中に前記仮想マシンインスタンスを実体化すること、
前記選好設定に準拠する第2のホストコンピュータシステム内の状態を検出すること、及び
前記第2のホストコンピュータシステム内の状態を検出したことに少なくとも部分的に起因して前記第1のコンピュータシステムから前記第2のホストコンピュータシステムに前記仮想マシンインスタンスを移動することを含む、
前記コンピュータ実施方法。
9. 前記状態は、前記仮想マシンインスタンスを実体化するための前記第2のホストコンピュータシステム内の容量の可用性に少なくとも部分的に基づく、
付記8に記載の前記コンピュータ実施方法。
10. 前記選好設定は、仮想マシンインスタンスの実体化のための1つ以上の要求が提起されることができるインターフェイスを介して受信される、
付記8または9に記載の前記コンピュータ実施方法。
11. 前記選好設定は、前記1つ以上のハードウェア仕様を備えたホストコンピュータシステムに少なくとも部分的に基づいて前記仮想マシンインスタンスの移動のための必要条件を含む、
付記8〜10のいずれか1に記載の前記コンピュータ実施方法。
12. 前記仮想マシンインスタンスを移動することは、前記仮想マシンインスタンスを再起動することなく行われる、
付記8〜11のいずれか1に記載の前記コンピュータ実施方法。
13.前記第1のコンピュータシステムの中で前記仮想マシンインスタンスを実体化することは、前記仮想マシンインスタンスを設定する要求であって、前記選好設定を含む前記要求を満たすために行われる、
付記8〜12のいずれか1に記載の前記コンピュータ実施方法。
14. 複数の仮想マシンインスタンスのタイプであって、その1つ以上が任意に指定できるハードウェア選好設定によって要求されることが可能である前記複数の仮想マシンインスタンスのタイプの中から仮想マシンインスタンスの実体化のための1つ以上の要求が提起されることが可能なインターフェイス、
仮想マシンインスタンスを実体化するために一括して構成されたハードウェアの構成要素を備えた1つ以上のホストコンピュータシステム、及び
前記インターフェイスを通して受信された要求を処理するように構成された管理サブシステムを備え、ここで、
前記1つ以上のホストコンピュータシステムの中の第1のホストコンピュータシステムであって、前記仮想マシンインスタンスを実体化するための1つ以上のハードウェア仕様について前記任意に指定できるハードウェアの選好設定に準拠しない1つ以上の構成要素を備えた前記第1のコンピュータシステムの中で前記仮想マシンインスタンスが実体化され、及び
前記第1のホストコンピュータシステムから前記任意に指定できるハードウェアの選好設定に準拠する第2のホストコンピュータシステムに前記仮想マシンインスタンスが移動される、
コンピュータシステム。
15. 前記第2のホストコンピュータシステムの中の1つ以上のスロットであって、仮想マシンインスタンスに割り当てられる容量を備えた前記1つ以上のスロットの可用性に少なくとも部分的に基づいて前記仮想マシンインスタンスが移動される、
付記14に記載の前記コンピュータシステム。
16. 前記管理サブシステムは、前記任意に指定できるハードウェアの選好設定に少なくとも部分的に基づいて、前記第2のホストコンピュータシステムから準拠しないホストコンピュータシステムに既存の仮想マシンインスタンスを移動するようにさらに構成される、
付記14または15に記載のコンピュータシステム。
17. 前記仮想マシンインスタンスは、使用可能な配置領域が前記任意に指定できるハードウェアの選好設定を満たすかどうかに少なくとも部分的に基づく前記1つ以上のホストコンピュータシステム内の前記使用可能な配置領域のセットの順位に少なくとも部分的に基づいて、前記第2のホストコンピュータシステムに移動される、
付記14〜16のいずれか1に記載のコンピュータシステム。
18. 前記仮想マシンインスタンスは、前記任意に指定できるハードウェアの選好設定を満たすホストコンピュータシステムのセットの中の前記仮想マシンインスタンスに対する容量の不足の結果として、前記任意に指定できるハードウェアの選好設定に準拠しない前記第1のホストコンピュータシステム内に実体化される、
付記14〜17のいずれか1に記載のコンピュータシステム。
19. 前記仮想マシンインスタンスは、前記仮想マシンインスタンスを再起動することなく、前記第1のホストコンピュータシステムから前記第2のホストコンピュータシステムに移動される、
付記14〜18のいずれか1に記載のコンピュータシステム。
20. 1つ以上のコンピュータ可読記憶媒体であって、その中に集約的に記憶された命令がコンピュータシステムの1つ以上のプロセッサによって実行されたときに、前記コンピュータシステムに仮想マシンインスタンスを実体化するための1つ以上のハードウェア仕様を含む選好設定のセットを満たすために、前記コンピュータシステムに、少なくとも、
前記1つ以上のハードウェア仕様に準拠しない第1のホストコンピュータシステムを使用して前記仮想マシンインスタンスをある時間の長さだけ実装させ、且つ
前記第1のホストコンピュータシステムから前記1つ以上のハードウェア仕様に準拠する第2のホストコンピュータシステムに前記仮想マシンインスタンスを移動させる、
前記コンピュータ可読記憶媒体。
21. 移動することは、使用可能なスロットに対して基礎となるハードウェア仕様に少なくとも部分的に基づく前記仮想マシンインスタンスに対する前記使用可能なスロットの順位に少なくとも部分的に基づいて、前記第2のホストコンピュータシステムを選択することを含む、
付記20に記載の前記1つ以上のコンピュータ可読記憶媒体。
22. 前記選好設定のセットは、前記仮想マシンインスタンスを設定する要求の中で受信される、
付記20または21に記載の前記1つ以上のコンピュータ可読記憶媒体。
23. 前記命令は、さらに、仮想コンピュータシステムの実体化のための容量が使用可能でない1以上のハードウェア仕様を指定する要求の結果として、別の仮想マシンインスタンスを設定する要求を前記コンピュータシステムに拒否させる、
付記20〜22のいずれか1に記載の前記1つ以上のコンピュータ可読記憶媒体。
24. 前記命令は、さらに、前記コンピュータシステムに前記仮想マシンインスタンスの選択的シャットダウンを検出させ、且つ
前記仮想マシンインスタンスが前記第2のホストコンピュータシステム上で再開するように前記仮想マシンインスタンスを移動することが発生する、
付記20〜23のいずれか1に記載の前記1つ以上のコンピュータ可読記憶媒体。
25. 前記命令は、さらに、前記仮想コンピュータシステムに、前記第1のホストコンピュータシステムから前記第2のホストコンピュータシステムへの前記仮想コンピュータシステムを再起動させる、
付記20〜24のいずれか1に記載の前記1つ以上のコンピュータ可読記憶媒体。
図11は、様々な実施形態に従って、態様を実施するための例示環境1100の態様を例示する。ウェブ・ベースの環境が説明の目的のために使用されるが、様々な実施形態を実施するために適宜異なる環境が使用されてもよいことは理解されるであろう。環境は電子クライアント装置1102を含んでおり、それは適切なネットワーク1104を介して要求、メッセージまたは情報を送信及び受信するため、且つ装置の顧客に情報を返送するために操作可能な任意の適切な装置を含んでもよい。そのようなクライアント装置の例はパーソナル・コンピュータ、携帯電話、ハンディ型メッセージ装置、ラップトップ・コンピュータ、タブレット・コンピュータ、セットトップ・ボックス、情報携帯端末、内蔵型コンピュータシステム、電子ブックリーダなどを含んでいる。ネットワークは、イントラネット、インターネット、携帯電話ネットワーク、ローカル・エリア・ネットワーク若しくは任意の他のそのようなネットワークまたはその組み合わせを含め、任意の適切なネットワークを含むことができる。そのようなシステムに使用される構成要素は、ネットワーク及び(または)選択された環境のタイプに少なくとも一部を依存することができる。そのようなネットワークを介して通信するためのプロトコル及び構成要素は周知であり、ここでは詳細に説明されない。ネットワークを介する通信は、有線接続または無線接続及びその組み合わせによって可能にすることができる。この例において、ネットワークは、環境が要求を受信するため及びそれに応答したコンテンツを提供するためにウェブサーバ1106を含むため、インターネットを含むが、当業者にとって明らかなように、他のネットワークについては、同様の目的に役立つ代替装置を使用することができる。
実例となる環境は、少なくとも1つのアプリケーションサーバ1108及びデータ記憶装置1110を含んでいる。いくつかのアプリケーションサーバ、層または他の素子、プロセスまたは構成要素が存在することができ、それらは連結されるかまたは別様に構成されることができ、適切なデータ記憶装置からデータを取得するなどのタスクを行うために対話することができることは理解されるはずである。サーバは、ここで使用される際、ハードウェア装置または仮想コンピュータシステムなどの様々な方法で実施されてもよい。いくつかの状況では、サーバは、コンピュータシステム上で実行されるプログラミング・モジュールを指してもよい。ここに使用される用語「データ記憶装置」は、データを記憶し、データにアクセスし、且つデータを検索することが可能な任意の装置または装置の組み合わせを指し、それは、任意の標準の、分散された及び集団化された環境におけるデータ・サーバ、データベース、データ記憶装置、及びデータ記憶媒体の任意の組み合わせ及び数を含んでもよい。アプリケーションサーバは、データ・アクセス及びアプリケーション用のビジネス・ロジックのうちのいくらかを(大多数さえも)取り扱うクライアント装置のために、1つ以上のアプリケーションの態様を実行するのに必要な場合データ記憶装置に統合するため、任意の適切なハードウェア及びソフトウェアを含むことができる。アプリケーションサーバは、データ記憶装置と協働するアクセス・コントロールサービスを提供してもよいし、また、ユーザに転送されるテキスト、グラフィックス、オーディオ及び(または)ビデオなどのコンテンツをを生成することができる。それは、この例において、ハイパーテキスト・マークアップ言語(「HTML」)、拡張可能マークアップ言語(「XML」)または別の適切な構造化された言語の形態でウェブサーバによってユーザに供給されてもよい。すべての要求及び応答の取り扱い、ならびにクライアント装置1102とアプリケーションサーバ1108との間のコンテンツの配達は、ウェブサーバによって取り扱うことができる。この中で説明される構造化されたコードは、任意の適切な装置またはこの中の別のところで説明されるようなホストマシン上で実行されることができるので、ウェブサーバ及びアプリケーションサーバは必ずしも必要でなく、例示の構成要素だけであることは理解されるはずである。さらに、単一の装置によって行なわれることとして、ここで説明される操作は、文脈の中で明確にことわらない限り、分散型システムの形態を形成し得る多数の装置によって集約的に行われてもよい。
データ記憶装置1110は、本開示の特定の態様に関係のあるデータの格納のために、いくつかの個別のデータテーブル、データベースまたは他のデータ記憶機構及びデータ記憶媒体を含むことができる。例えば、例示されたデータ記憶装置は、製造データ1112及び顧客情報1116を記憶するための機構を含んでもよい。それは製造側にコンテンツを提供するために使用されることができる。データ記憶装置はさらに、ログ・データ1114を記憶するためにある機構を含むように示されている。それは報告、分析または他のそのような目的のために使用されることができる。ページ画像情報のため及び権利情報にアクセスするためなど、データ記憶装置の中に記憶されることが必要な多くの他の態様が存在でき、これはデータ記憶装置1110の中の上記適宜リストされた任意の機構または付加の機構に記憶され得ることが理解されるはずである。データ記憶装置1110は、関連するロジックによって、アプリケーションサーバ1108からの命令を受信するように、及びその命令に応答するデータを取得し、更新し、またはさもなければ処理するように操作可能である。1つの例において、ユーザは、ユーザによって運用された装置によって、ある特定のタイプのアイテムのための検索要求を提起してもよい。この場合において、データ記憶装置は、ユーザの同一性を確認するために顧客情報にアクセスしてもよく、そのタイプのアイテムに関する情報を得るためにカタログ詳細情報にアクセスすることができる。その後、情報は、例えばユーザ装置1102上のブラウザによって顧客が見ることができるウェブ・ページ上でリストする結果において、顧客に返すことができる。興味のある特定のアイテムのための情報は、ブラウザの専用ページまたはウィンドウの中で見ることができる。しかしながら、本開示の実施形態はウェブ・ページの文脈に必ずしも制限されず、全体として要求を処理することにもっと一般的に適用でき、この場合には、要求は必ずしもコンテンツに関する要求である必要はないことに留意されたい。
各サーバは、典型的には、そのサーバの一般管理及び操作のための実行可能なプログラム命令を提供するオペレーションシステムを含み、及び、典型的には、サーバのプロセッサによって実行された時に、サーバがその本来の機能を行なうことを可能にする命令を記憶するコンピュータ可読記憶媒体(例えば、ハードディスク、ランダム・アクセス・メモリ、読出専用メモリなど)を含む。サーバのオペレーティング・システム及び一般的な機能についての適切な実装は公知であるかまたは市販されており、また、特にここの開示に照らして、当業者によって容易に実装される。
1つの実施形態における環境は、1つ以上のコンピュータ・ネットワークまたは直接接続を使用して通信リンクを介して相互接続されたいくつかのコンピュータシステム及び構成要素を利用する分散型のコンピュータ処理環境である。しかしながら、そのようなシステムが図11で示されたものより少ない数または多い数の構成要素を備えたシステムにおいて同様にうまく作動できることは、当業者によって認められる。従って、図11の中のシステム1100の描写は、本質的に実例として見なされるべきであり、且つ、開示の範囲を制限するべきではない。
様々な実施形態は、さらに、実に様々な操作環境において実施することができ、ある場合には、多くのアプリケーションのいずれをも運用するために使用することができる1つ以上のユーザコンピュータ、コンピュータ処理装置または処理装置を含むことができる。ユーザ装置またはクライアント装置は、標準オペレーティング・システムを実行するデスクトップ・コンピュータ、ラップトップ・コンピュータまたはタブレット型コンピュータなどの多くの汎用パーソナル・コンピュータのいずれをも含むことができ、ならびにモバイル・ソフトウェアを実行し且つネットワーキング・プロトコル及びメッセージング・プロトコルをサポートすることができる携帯電話装置、無線通信装置、及びハンディ型装置を含むことができる。このようなシステムはさらに、任意の様々な市販のオペレーティング・システム及び開発及びデータベース管理などの目的のための他の既知のアプリケーションを実行する多くのワークステーションを含むことができる。これらの装置はさらに、ダミー端末、シン・クライアント、ゲーム・システム、及びネットワークを介して通信することができる他の装置などの他の電子装置を含むことができる。
本開示の様々な実施形態は、伝送制御プロトコル/インターネット・プロトコル(「TCP/IP」)、開放型システム間相互接続(「OSI」)モデルの様々な層の中で作動するプロトコル、ファイル転送プロトコル(「FTP」)、ユニバーサル・プラグ・アンド・プレイ(「UpnP」)、ネットワーク・ファイル・システム(「NFS」)、コモン・インターネット・ファイルシステム(「CIFS」)及びアップル・トークなどの任意の様々な市販のプロトコルを使用する通信をサポートするために、当業者によく知られている少なくとも1つのネットワークを利用する。ネットワークは、例えば、ローカル・エリア・ネットワーク、広域ネットワーク、仮想プライベート・ネットワーク、インターネット、イントラネット、エクストラネット、公衆交換電話網、赤外線ネットワーク、無線ネットワーク及びその任意の組み合わせであり得る。
ウェブサーバを利用する実施形態では、ウェブサーバは、ハイパーテキスト転送プロトコル(「HTTP」)サーバ、FTPサーバ、コモン・ゲートウエイ・インターフェイス(「CGI」)サーバ、データ・サーバ、Java(登録商標)サーバ及びビジネス・アプリケーション・サーバを含む任意の様々なサーバまたは中間層アプリケーションを実行することができる。サーバは、さらに、Java(登録商標)、C、C#若しくはC++などの任意のプログラミング言語、または、Perl、Python若しくはTCLのみならず、その組み合わせの任意のスクリプト言語で書かれた1つ以上のスクリプトまたはプログラムとして実装されてもよい1つ以上のウェブ・アプリケーションを例えば実行することによって、ユーザ装置からの応答要求の中のプログラムまたはスクリプトを実行することができる。サーバは、さらに、限定はされないが、Oracle(登録商標)、Microsoft(登録商標)、Sybase(登録商標)及びIBM(登録商標)から市販されているデータベース・サーバを含んでもよい。
環境は、上記したように、様々なデータ記憶装置及び他のメモリ及び記憶媒体を含むことができる。これらは、1つ以上のコンピュータに近い(及び(若しくは)中に常駐した)記憶媒体上またはネットワークにわたる任意の若しくはすべてのコンピュータから離れた記憶媒体上など、様々な位置に存在することができる。実施形態の特定のセットでは、情報は、当業者によく知られているストレージ・エリア・ネットワーク(「SAN」)に存在してもよい。同様に、コンピュータ、サーバ若しくは他のネットワーク・デバイスに属する機能を行なうために必要な任意のファイルも、適宜、ローカルに及び(または)遠隔的に記憶されてもよい。システムがコンピュータ化された装置を含んでいる場合、そのような各装置はバス介して電気的に接続されるハードウェア構成要素を含んでいてもよく、それら構成要素には、例えば、少なくとも1つの中央処理装置(「CPU」または「プロセッサ」)を含む構成要素、少なくとも1つの入力装置(例えば、マウス、キーボード、コントローラ、タッチ・スクリーンまたはキーパッド)及び少なくとも1つの出力装置(例えば、ディスプレイ装置、プリンタまたはスピーカ)が含まれる。そのようなシステムは、さらに、ディスク駆動装置、光記憶装置などの1つ以上の記憶装置、及びランダム・アクセス・メモリ(「RAM」)または読出専用メモリ(「ROM」)などの半導体記憶装置、ならびにリムーバブル媒体装置、メモリカード、フラッシュカードなどを含んでもよい。
そのような装置は、さらに、コンピュータ可読記憶媒体リーダ、通信装置(例えば、モデム、(無線または有線の)ネットワーク・カード、赤外線通信装置など)及び上記したような作業メモリを含むことができる。コンピュータ可読記憶媒体リーダは、遠隔記憶装置、ローカル記憶装置、固定記憶装置、及び(または)リムーバブル記憶装置のみならず、一時的及び(または)より永久的にコンピュータ可読情報を含み、記憶し、送信し及び検索するための記憶媒体を代表するコンピュータ可読記憶媒体に接続されることができ、またはそれらを受容するように構成されることができる。システム及び様々な装置は、さらに典型的には、オペレーティング・システム及びクライアント・アプリケーション若しくはウェブ・ブラウザなどのアプリケーション・プログラムを含め、少なくとも1つの作業記憶装置内に配置された多くのソフトウェア・アプリケーション、モジュール、サービスまたは他の構成要素を含む。他の実施形態が上記した実施形態から多数のバリエーションを含んでもよいことは認識されるべきである。例えば、カスタマイズされたハードウェアも使用される可能性があり、及び(または)特定の素子がハードウェアの中、(アプレットなどのポータブル・ソフトウェアを含む)ソフトウェアの中、または両方の中に実装される可能性がある。さらに、ネットワーク入出力装置などの他のコンピュータ処理装置への接続が採用されてもよい。
コードまたはコードの部分を含むための記憶媒体及びコンピュータ可読媒体は、当該技術で既知のまたは使用されている任意の適切な媒体を含むことができ、限定はされないが、任意の方法で実装された揮発性及び不揮発性媒体、リムーバブル及び非リムーバブル媒体などの記憶媒体及び通信媒体、または、コンピュータ可読命令、データ構造、プログラム・モジュール若しくは他のデータなどの情報の記憶及び(または)伝送のための技術を含むことができ、これらには、RAM、ROM、電気的消去書込可能な読出専用メモリ(「EEPROM」)、フラッシュ・メモリ若しくは他のメモリ技術、コンパクト・ディスク読出専用メモリ(「CD−ROM」)、ディジタル多機能ディスク(DVD)若しくは他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置若しくは他の磁気記憶装置、または所望の情報を記憶するために使用することができ、且つシステム装置によってアクセスすることができる任意の他の媒体を含むことができる。ここに提供された開示及び教示に基づいて、当業者は様々な実施形態を実施する他のやり方及び(または)他の方法を理解している。
従って、明細書及び図面は限定的な意味ではなく実例と見なされるべきである。しかしながら、特許請求の範囲で述べられるような本発明のより広い趣旨及び範囲から逸脱することなく、その上に様々な修正及び変更が行なわれてもよいことは明らかである。
他のバリエーションは本開示の趣旨に含まれる。従って、開示された技術は様々な修正及び代替の構成の余地があるが、ある特定の説明されたその実施形態は図面中に示され、これまでに詳細に記述されている。しかしながら、開示された特定の形式または複数の形式に本発明を制限する意図ではなく、むしろ、添付された特許請求の範囲の中で定義されるように、その意図は本発明の趣旨及び範囲以内にある修正、代替の構成及び等価な構成をすべて包含することであるのは理解されるはずである。
「不定冠詞(a)及び(an)」及び「定冠詞(the)」の用語並びに開示された実施形態を記載する文脈の中で(特に、次の特許請求の範囲の文脈の中で)同様の指示対象の使用は、ここで特に明示されない限りまたは文脈が明らかに矛盾しない限り、単数及び複数の両方を包含するように解釈されることになっている。「備えること(comprising)」、「有すること(having)」及び「含むこと(including、containing)」の用語は、特に注釈しない限り、開放式の用語(すなわち、「含むが、これに限定されない」を意味する)として解釈されることになっている。「接続された」の用語は、修正されず且つ物理接続を参照している場合には、介在する何かが存在する場合であっても、部分的または全体的に、内側に含まれる、接触される、または相互に結合されるように解釈されることになっている。ここにおける値の範囲の列挙は、ここで示されない限り、その範囲以内にある各独立した値をそれぞれ参照する簡潔な方法として対応するように単に意図され、各独立した値は、あたかもそれがここにそれぞれ列挙されるかのように、ここに組み入れられる。用語「セット」(例えば「アイテムのセット」)または「サブセット」の使用は、特に指示がないか若しくは文脈が矛盾しない限り、1つ以上の構成物からなる空でない集合として解釈されることになっている。さらに、特に指示がないかまたは文脈が矛盾しない限り、セットに対応する用語「サブセット」は、必ずしも対応するセットの正式なサブセットを表示せず、サブセット及び対応するセットは同じでもよい。
「A、B、及びCの少なくとも1つ」または「A、B及びCの少なくとも1つ」の形式のフレーズなどの接続的言語は、特に記載されないか若しくは文脈が明確に矛盾しない限り、あるアイテムまたは用語などが、AまたはBまたはCのいずれかでもよいし、あるいは、A及びB及びCのセットの任意の空でない部分集合でもよいことを表わすために一般的に使用されるような文脈によって理解される。例えば、上記の接続的フレーズの中で使用された3つの構成物を持つセットの実例となる例で、「A、B、及びCの少なくとも1つ」並びに「A、B及びCの少なくとも1つ」は、次のセット{A}、{B}、{C}、{A、B}、{A、C}、{B、C}、{A、B、C}のいずれをも指す。従って、そのような結合する言語は、ある特定の実施形態が、Aの少なくとも1つ、Bの少なくとも1つ、及びCの少なくとも1つを各々が存在するように要求することを示唆するようには一般に意図されない。
ここに特に指示がないか若しくは文脈が明確に矛盾しない限り、ここに記述されたプロセスの実施は任意の適切な順に行なうことができる。ここに記述されたプロセス(または、そのバリエーション及び(若しくは)組み合わせ)は、実行可能な命令で構成された1つ以上のコンピュータシステムの制御の下で行なわれてもよく、且つ、ハードウェアあるいはその組み合わせによって、1つ以上のプロセッサ上で一括して実行するコード(例えば、実行可能な命令、1つ以上のコンピュータ・プログラムまたは1つ以上のアプリケーション)として実施されてもよい。コードは、コンピュータ可読記憶媒体上に、例えば、1つ以上のプロセッサによって実行可能な複数の命令からなるコンピュータ・プログラムの形式で格納されてもよい。コンピュータ可読記憶媒体は非一時的であってもよい。
ここで提供される任意及び全ての例の使用または典型的な言語(例えば、「のように」)は、単に本発明の実施形態をよりいっそう明確にするように意図されるものであり、特許請求の範囲で除外されない限り、本発明の範囲に対して制限を与えるものではない。本明細書中にない言語は、本発明の実行にとって不可欠なものとして特許請求の範囲にない任意の構成要素として解釈されるべきでない。
この開示の好ましい実施形態は、発明を実施するために発明者に知られている最良の態様を含めて、ここに記述される。それらの好ましい実施形態のバリエーションは、これまでの記述を読むことで当業者に対して明らかになり得る。本発明者は、当業者がそのようなバリエーションを適宜採用することを期待している。また、本発明者は、ここに具体的に記述された以外で実施される本開示の実施形態について考慮している。従って、本開示の範囲は、準拠法によって可能になるように、ここに添付された特許請求の範囲に記載された主題の修正及び等価な構成をすべて含んでいる。さらに、そのすべての可能なバリエーションにおいて上記した要素の任意の組み合わせは、特に指示がないか若しくは文脈が明確に矛盾しない限り、本開示の範囲に包含される。
ここに記載された刊行物、特許出願及び特許を含むすべての参考文献は、あたかも各参照がそれぞれに且つ具体的に参照によって組み込まれて示されたかのように、及びその全体がここに述べられたかのように、同じ程度に参照によってここに組み込まれている。

Claims (13)

  1. 仮想マシンインスタンスを移動するためのコンピュータ実施方法であって、
    顧客からハードウェア仕様の選好設定又は該選好設定に勝る優先権が与えられる必要条件を受信すること、
    前記選好設定を受信した場合に、第1のコンピュータシステムが前記選好設定に準拠しない場合であっても、一旦、前記第1のコンピュータシステムの中に前記仮想マシンインスタンスを実体化すること、
    前記選好設定に準拠する第2のホストコンピュータシステム内の状態を検出すること、及び
    前記第2のホストコンピュータシステムが前記選好設定に準拠する場合に、前記第1のコンピュータシステムから前記第2のホストコンピュータシステムに前記仮想マシンインスタンスを移動することを含む、仮想マシンインスタンスを移動するためのコンピュータ実施方法。
  2. 前記選好設定は、前記仮想マシンインスタンスを実体化するための前記第2のホストコンピュータシステム内の容量含む、請求項1に記載の前記コンピュータ実施方法。
  3. 前記選好設定は、前記顧客が仮想コンピュータシステムサービスにアクセスすることを可能にし得るインターフェイスによって受信される、請求項1に記載の前記コンピュータ実施方法。
  4. 前記仮想マシンインスタンスを移動することは、前記仮想マシンインスタンスを再起動することなく行われる、請求項1に記載の前記コンピュータ実施方法。
  5. 前記第1のコンピュータシステムの中に前記仮想マシンインスタンスを実体化することは、前記仮想マシンインスタンスをインスタンス化する要求を満たすために行われ、前記要求は前記選好設定を指定する、請求項1に記載の前記コンピュータ実施方法。
  6. 前記必要条件を受信した場合に、前記第1のコンピュータシステムが前記必要条件に準拠しない場合にはエラ―メッセージを表示させる請求項1に記載の前記コンピュータ実施方法。
  7. 複数の仮想マシンインスタンスのタイプであって、その1つ以上が任意に指定できるハードウェアの選好設定によって要求されることが可能である前記複数の仮想マシンインスタンスのタイプの中から仮想マシンインスタンスの実体化のための1つ以上の要求が提起されることが可能なインターフェイス、
    仮想マシンインスタンスを実体化するために一括して構成されたハードウェアの構成要素を備えた1つ以上のホストコンピュータシステム、及び
    前記インターフェイスを通して受信された前記選好設定の要求を処理するように構成された管理サブシステムを備え、
    前記管理サブシステムは、
    前記1つ以上のホストコンピュータシステムの中の第1のホストコンピュータシステムが前記選好設定に準拠しない場合であっても、一旦、前記第1のホストコンピュータシステムの中で前記仮想マシンインスタンスを実体化し、
    前記選好設定に準拠する第2のホストコンピュータシステム内の状態を検出し、及び
    前記第2のホストコンピュータシステムが前記選好設定に準拠する場合に、前記第1のホストコンピュータシステムから前記第2のホストコンピュータシステムに前記仮想マシンインスタンスを移動する、コンピュータシステム。
  8. 前記仮想マシンインスタンスは、前記第2のホストコンピュータシステムの中の1つ以上のスロットであって、前記仮想マシンインスタンスに割り当てられる容量を有する前記1つ以上のスロットの可用性に少なくとも部分的に基づいて移動される、請求項7に記載の前記コンピュータシステム。
  9. 前記1つ以上のホストコンピュータシステム内の使用可能な配置領域のセットの順位に基づいて、前記仮想マシンインスタンスが前記第1のホストコンピュータシステムから前記第2のホストコンピュータシステムに移動される、請求項7に記載の前記コンピュータシステム。
  10. 前記管理サブシステムが前記選好設定に準拠しないと判断することは、前記第1のホストコンピュータシステムの前記仮想マシンインスタンスに対する容量の不足の結果である、請求項7に記載の前記コンピュータシステム。
  11. 前記仮想マシンインスタンスは、前記仮想マシンインスタンスを再起動することなく前記第1のホストコンピュータシステムから前記第2のホストコンピュータシステムに移動される、
    請求項7に記載の前記コンピュータシステム。
  12. 前記管理サブシステムは、前記ホストコンピュータシステムが前記選好設定より勝る優先権が与えられる必要条件を満たさないと判断した場合に、前記必要条件の要求を拒否するように構成されている、請求項8に記載の前記コンピュータシステム。
  13. 前記仮想マシンインスタンスを移動することは、前記仮想マシンインスタンスの再起動の期間に発生する、請求項7に記載の前記コンピュータシステム。
JP2016533347A 2013-08-05 2014-08-01 仮想コンピュータ処理のインスタンス移動 Active JP6258494B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/959,550 US9870268B2 (en) 2013-08-05 2013-08-05 Virtual computing instance migration
US13/959,550 2013-08-05
PCT/US2014/049476 WO2015020909A2 (en) 2013-08-05 2014-08-01 Virtual computing instance migration

Publications (2)

Publication Number Publication Date
JP2016527648A JP2016527648A (ja) 2016-09-08
JP6258494B2 true JP6258494B2 (ja) 2018-01-10

Family

ID=52428919

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016533347A Active JP6258494B2 (ja) 2013-08-05 2014-08-01 仮想コンピュータ処理のインスタンス移動

Country Status (7)

Country Link
US (1) US9870268B2 (ja)
EP (1) EP3030966B1 (ja)
JP (1) JP6258494B2 (ja)
CN (1) CN105493045A (ja)
CA (1) CA2919839C (ja)
SG (1) SG11201600694WA (ja)
WO (1) WO2015020909A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2807314C1 (ru) * 2022-10-07 2023-11-14 Акционерное общество "Научно-исследовательское проектно-технологическое бюро "Онега" (АО "НИПТБ "Онега") Установка для сушки радиоактивных ионообменных смол

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150066860A1 (en) * 2013-08-27 2015-03-05 Connectloud, Inc. Method and apparatus for utilizing virtual machine instance information from a database for software defined cloud recovery
US20150067678A1 (en) * 2013-08-27 2015-03-05 Connectloud, Inc. Method and apparatus for isolating virtual machine instances in the real time event stream from a tenant data center
US20150067679A1 (en) * 2013-08-28 2015-03-05 Connectloud, Inc. Method and apparatus for software defined cloud workflow recovery
US9876730B1 (en) * 2013-08-30 2018-01-23 Amazon Technologies, Inc. Virtualized instance selection
US9110699B2 (en) * 2013-09-19 2015-08-18 International Business Machines Corporation Determining optimal methods for creating virtual machines
US9817683B2 (en) * 2014-01-10 2017-11-14 Dell Products, Lp Optimized remediation policy in a virtualized environment
KR102193012B1 (ko) * 2014-02-04 2020-12-18 삼성전자주식회사 분산 처리 시스템 및 이의 동작 방법
US9705778B2 (en) * 2014-03-06 2017-07-11 International Business Machines Corporation Deploying operators of a streaming application based on physical location attributes of a virtual machine
US10476809B1 (en) * 2014-03-12 2019-11-12 Amazon Technologies, Inc. Moving virtual machines using migration profiles
US9535735B2 (en) * 2014-06-09 2017-01-03 International Business Machines Corporation Adaptive virtual machine request approver
US9647889B1 (en) 2014-11-12 2017-05-09 Amazon Technologies, Inc. Standby instances for auto-scaling groups
US10411960B1 (en) * 2014-11-12 2019-09-10 Amazon Technologies, Inc. Detaching instances from auto-scaling group
US9329907B1 (en) * 2014-12-18 2016-05-03 International Business Machines Corporation Automated exploitation of virtual machine resource modifications
WO2016123744A1 (zh) * 2015-02-03 2016-08-11 华为技术有限公司 网络文件系统中处理i/o请求的方法及设备
EP3269088B1 (en) * 2015-03-13 2022-05-18 Koninklijke KPN N.V. Method, computer program, network function control system, service data and record carrier, for controlling provisioning of a service in a network
CN107409436B (zh) * 2015-03-27 2020-02-21 华为技术有限公司 一种云平台、运行应用的方法及接入网单元
CN106302623B (zh) * 2015-06-12 2020-03-03 微软技术许可有限责任公司 承租人控制的云更新
US10970110B1 (en) * 2015-06-25 2021-04-06 Amazon Technologies, Inc. Managed orchestration of virtual machine instance migration
US10228969B1 (en) * 2015-06-25 2019-03-12 Amazon Technologies, Inc. Optimistic locking in virtual machine instance migration
US20170093966A1 (en) * 2015-09-28 2017-03-30 International Business Machines Corporation Managing a shared pool of configurable computing resources having an arrangement of a set of dynamically-assigned resources
US9678857B1 (en) * 2015-11-30 2017-06-13 International Business Machines Corporation Listing optimal machine instances
US10412191B1 (en) * 2016-03-30 2019-09-10 Amazon Technologies, Inc. Hardware validation
US10152357B1 (en) * 2016-05-02 2018-12-11 EMC IP Holding Company LLC Monitoring application workloads scheduled on heterogeneous elements of information technology infrastructure
WO2018014933A1 (en) * 2016-07-18 2018-01-25 Telefonaktiebolaget Lm Ericsson (Publ) Allocating vnfc instances with anti affinity rule to hosts
US11362936B2 (en) * 2016-07-19 2022-06-14 Telefonaktiebolaget Lm Ericsson (Publ) Datapath provision in software defined networks
US11128555B2 (en) * 2016-07-22 2021-09-21 Intel Corporation Methods and apparatus for SDI support for automatic and transparent migration
US10250572B2 (en) 2016-09-29 2019-04-02 Amazon Technologies, Inc. Logic repository service using encrypted configuration data
US10162921B2 (en) 2016-09-29 2018-12-25 Amazon Technologies, Inc. Logic repository service
US10423438B2 (en) * 2016-09-30 2019-09-24 Amazon Technologies, Inc. Virtual machines controlling separate subsets of programmable hardware
US11115293B2 (en) 2016-11-17 2021-09-07 Amazon Technologies, Inc. Networked programmable logic service provider
US10346191B2 (en) * 2016-12-02 2019-07-09 Wmware, Inc. System and method for managing size of clusters in a computing environment
US11080041B1 (en) * 2017-03-30 2021-08-03 Amazon Technologies, Inc. Operating system management for virtual workspaces
WO2019060663A1 (en) 2017-09-21 2019-03-28 Oracle International Corporation SYSTEMS AND METHODS FOR UPDATING MULTI-LEVEL APPLICATION BATTERIES IN A CLOUD ENVIRONMENT
US10673716B1 (en) 2017-10-31 2020-06-02 Amazon Technologies, Inc. Graph-based generation of dependency-adherent execution plans for data center migrations
US10601924B2 (en) * 2017-11-06 2020-03-24 Abb Schweiz Ag Method for remote support of electric drive apparatus
US10684894B2 (en) * 2017-11-10 2020-06-16 Amazon Technologies, Inc. Capacity management in provider networks using dynamic host device instance model reconfigurations
US10990485B2 (en) * 2018-02-09 2021-04-27 Acronis International Gmbh System and method for fast disaster recovery
US11194608B2 (en) 2018-05-22 2021-12-07 Vmware, Inc. Virtual infrastructure platform mobility
US11074134B2 (en) * 2018-08-23 2021-07-27 International Business Machines Corporation Space management for snapshots of execution images
US11086686B2 (en) * 2018-09-28 2021-08-10 International Business Machines Corporation Dynamic logical partition provisioning
US11436524B2 (en) * 2018-09-28 2022-09-06 Amazon Technologies, Inc. Hosting machine learning models
US11562288B2 (en) 2018-09-28 2023-01-24 Amazon Technologies, Inc. Pre-warming scheme to load machine learning models
US10860363B1 (en) * 2019-03-14 2020-12-08 Amazon Technologies, Inc. Managing virtual machine hibernation state incompatibility with underlying host configurations
US11438151B2 (en) * 2019-04-03 2022-09-06 Cisco Technology, Inc. Enriching local cryptoprocessor queries with sdn augmented information
US10901773B2 (en) 2019-04-11 2021-01-26 Red Hat, Inc. Sharing devices between virtual machines in view of power state information
US11397622B2 (en) * 2019-06-03 2022-07-26 Amazon Technologies, Inc. Managed computing resource placement as a service for dedicated hosts
US11385972B2 (en) * 2019-06-26 2022-07-12 Vmware, Inc. Virtual-machine-specific failover protection
US11461109B1 (en) * 2019-11-20 2022-10-04 Amazon Technologies, Inc. Quick restart using virtualized resource migration
US11249790B1 (en) * 2020-03-11 2022-02-15 Amazon Technologies, Inc. Scheduling usage of oversubscribed computing resources
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
US11609831B2 (en) * 2021-02-19 2023-03-21 Nutanix, Inc. Virtual machine configuration update technique in a disaster recovery environment
US20240192965A1 (en) * 2022-12-13 2024-06-13 Ati Technologies Ulc Continuity of service for virtualized device after resumption from hibernation

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7334228B2 (en) * 2001-07-27 2008-02-19 International Business Machines Corporation Runtime-resource management
US7403996B2 (en) 2002-02-21 2008-07-22 Bea Systems, Inc. Systems and methods for migratable services
US7313793B2 (en) * 2002-07-11 2007-12-25 Microsoft Corporation Method for forking or migrating a virtual machine
US9329905B2 (en) 2004-10-15 2016-05-03 Emc Corporation Method and apparatus for configuring, monitoring and/or managing resource groups including a virtual machine
JP2008276320A (ja) 2007-04-25 2008-11-13 Nec Corp 仮想システム制御方法およびコンピュータシステム
US8806480B2 (en) 2007-06-29 2014-08-12 Microsoft Corporation Virtual machine smart migration
JP5256744B2 (ja) 2008-01-16 2013-08-07 日本電気株式会社 資源割当てシステム、資源割当て方法及びプログラム
US9842004B2 (en) * 2008-08-22 2017-12-12 Red Hat, Inc. Adjusting resource usage for cloud-based networks
US8266618B2 (en) * 2008-11-21 2012-09-11 International Business Machines Corporation Graphics hardware resource usage in a fully virtualized computing environment
KR101489466B1 (ko) 2008-12-17 2015-02-03 삼성전자 주식회사 프로세스 마이그레이션을 관리하는 장치 및 방법
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
US8224957B2 (en) * 2010-05-20 2012-07-17 International Business Machines Corporation Migrating virtual machines among networked servers upon detection of degrading network link operation
US9329886B2 (en) 2010-12-10 2016-05-03 Amazon Technologies, Inc. Virtual machine morphing for heterogeneous migration environments
CN102567072B (zh) * 2010-12-20 2015-04-22 中国移动通信集团公司 一种资源分配方法、装置及系统
US8943564B2 (en) 2011-07-21 2015-01-27 International Business Machines Corporation Virtual computer and service
US9858125B2 (en) * 2011-09-20 2018-01-02 Infosys Limited System and method for optimizing migration of virtual machines among physical machines
US8756601B2 (en) 2011-09-23 2014-06-17 Qualcomm Incorporated Memory coherency acceleration via virtual machine migration
US8832239B2 (en) 2011-09-26 2014-09-09 International Business Machines Corporation System, method and program product for optimizing virtual machine placement and configuration
US9104461B2 (en) * 2012-06-15 2015-08-11 Oracle International Corporation Hypervisor-based management and migration of services executing within virtual environments based on service dependencies and hardware requirements

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2807314C1 (ru) * 2022-10-07 2023-11-14 Акционерное общество "Научно-исследовательское проектно-технологическое бюро "Онега" (АО "НИПТБ "Онега") Установка для сушки радиоактивных ионообменных смол

Also Published As

Publication number Publication date
WO2015020909A3 (en) 2015-11-05
EP3030966A4 (en) 2018-05-02
EP3030966B1 (en) 2020-10-14
JP2016527648A (ja) 2016-09-08
CN105493045A (zh) 2016-04-13
US9870268B2 (en) 2018-01-16
WO2015020909A2 (en) 2015-02-12
CA2919839C (en) 2022-04-12
CA2919839A1 (en) 2015-02-12
EP3030966A2 (en) 2016-06-15
US20150040127A1 (en) 2015-02-05
SG11201600694WA (en) 2016-02-26

Similar Documents

Publication Publication Date Title
JP6258494B2 (ja) 仮想コンピュータ処理のインスタンス移動
RU2751576C2 (ru) Система управления и диспетчеризации контейнеров
CN109804352B (zh) 受管理的容器实例
US10657061B1 (en) Resource distribution using attributes of versioned hash rings
US10938668B1 (en) Safe deployment using versioned hash rings
US20210342193A1 (en) Multi-cluster container orchestration
US11216563B1 (en) Security assessment of virtual computing environment using logical volume image
CN104995598B (zh) 用于访问控制的自由形式元数据的用途
US11698813B2 (en) Electronic device and method for managing computing resources of at least one cloud server for providing cloud service
US10467055B2 (en) Computer resource provisioning failure mitigation
US20160323188A1 (en) Managing state for updates to load balancers of an auto scaling group
CN115336237A (zh) 远程存储的文件的预测性供应
US11669365B1 (en) Task pool for managed compute instances
US9256648B2 (en) Data handling in a cloud computing environment
US10523591B2 (en) Discovering resource availability across regions
US10331375B1 (en) Data storage area cleaner
US20240248650A1 (en) System and method for slice distribution of network attached storage assets based on available streams in backup agents
US20230071886A1 (en) Performance system for forecasting feature degradations

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170214

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170227

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20170526

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170706

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170807

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171101

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171206

R150 Certificate of patent or registration of utility model

Ref document number: 6258494

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