(57)【特許請求の範囲】
【請求項１】
仮想マシンインスタンスを移動するためのコンピュータ実施方法であって、
顧客からハードウェア仕様の選好設定又は該選好設定に勝る優先権が与えられる必要条件を受信すること、
前記選好設定を受信した場合に、第１のコンピュータシステムが前記選好設定に準拠しない場合であっても、一旦、前記第１のコンピュータシステムの中に前記仮想マシンインスタンスを実体化すること、
前記選好設定に準拠する第２のホストコンピュータシステム内の状態を検出すること、及び
前記第２のホストコンピュータシステムが前記選好設定に準拠する場合に、前記第１のコンピュータシステムから前記第２のホストコンピュータシステムに前記仮想マシンインスタンスを移動することを含む、仮想マシンインスタンスを移動するためのコンピュータ実施方法。
【請求項２】
前記選好設定は、前記仮想マシンインスタンスを実体化するための前記第２のホストコンピュータシステム内の容量含む、請求項１に記載の前記コンピュータ実施方法。
【請求項３】
前記選好設定は、前記顧客が仮想コンピュータシステムサービスにアクセスすることを可能にし得るインターフェイスによって受信される、請求項１に記載の前記コンピュータ実施方法。
【請求項４】
前記仮想マシンインスタンスを移動することは、前記仮想マシンインスタンスを再起動することなく行われる、請求項１に記載の前記コンピュータ実施方法。
【請求項５】
前記第１のコンピュータシステムの中に前記仮想マシンインスタンスを実体化することは、前記仮想マシンインスタンスをインスタンス化する要求を満たすために行われ、前記要求は前記選好設定を指定する、請求項１に記載の前記コンピュータ実施方法。
【請求項６】
前記必要条件を受信した場合に、前記第１のコンピュータシステムが前記必要条件に準拠しない場合にはエラ―メッセージを表示させる請求項１に記載の前記コンピュータ実施方法。
【請求項７】
複数の仮想マシンインスタンスのタイプであって、その１つ以上が任意に指定できるハードウェアの選好設定によって要求されることが可能である前記複数の仮想マシンインスタンスのタイプの中から仮想マシンインスタンスの実体化のための１つ以上の要求が提起されることが可能なインターフェイス、
仮想マシンインスタンスを実体化するために一括して構成されたハードウェアの構成要素を備えた１つ以上のホストコンピュータシステム、及び
前記インターフェイスを通して受信された前記選好設定の要求を処理するように構成された管理サブシステムを備え、
前記管理サブシステムは、
前記１つ以上のホストコンピュータシステムの中の第１のホストコンピュータシステムが前記選好設定に準拠しない場合であっても、一旦、前記第１のホストコンピュータシステムの中で前記仮想マシンインスタンスを実体化し、
前記選好設定に準拠する第２のホストコンピュータシステム内の状態を検出し、及び
前記第２のホストコンピュータシステムが前記選好設定に準拠する場合に、前記第１のホストコンピュータシステムから前記第２のホストコンピュータシステムに前記仮想マシンインスタンスを移動する、コンピュータシステム。
【請求項８】
前記仮想マシンインスタンスは、前記第２のホストコンピュータシステムの中の１つ以上のスロットであって、前記仮想マシンインスタンスに割り当てられる容量を有する前記１つ以上のスロットの可用性に少なくとも部分的に基づいて移動される、請求項７に記載の前記コンピュータシステム。
【請求項９】
前記１つ以上のホストコンピュータシステム内の使用可能な配置領域のセットの順位に基づいて、前記仮想マシンインスタンスが前記第１のホストコンピュータシステムから前記第２のホストコンピュータシステムに移動される、請求項７に記載の前記コンピュータシステム。
【請求項１０】
前記管理サブシステムが前記選好設定に準拠しないと判断することは、前記第１のホストコンピュータシステムの前記仮想マシンインスタンスに対する容量の不足の結果である、請求項７に記載の前記コンピュータシステム。
【請求項１１】
前記仮想マシンインスタンスは、前記仮想マシンインスタンスを再起動することなく前記第１のホストコンピュータシステムから前記第２のホストコンピュータシステムに移動される、
請求項７に記載の前記コンピュータシステム。
【請求項１２】
前記管理サブシステムは、前記ホストコンピュータシステムが前記選好設定より勝る優先権が与えられる必要条件を満たさないと判断した場合に、前記必要条件の要求を拒否するように構成されている、請求項８に記載の前記コンピュータシステム。
【請求項１３】
前記仮想マシンインスタンスを移動することは、前記仮想マシンインスタンスの再起動の期間に発生する、請求項７に記載の前記コンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、２０１３年８月５日に出願された同時係属出願中の米国特許出願第１３／９５９，５５０号に対して優先権を主張し、その出願の内容は参照によって本明細書にその全体が組み込まれている。
【０００２】
本出願は、仮想コンピュータ処理のインスタンス移動に関する。
【背景技術】
【０００３】
仮想コンピュータシステムは、それらを使用する組織の要求に遅れずについていくために発展を遂げ、発展し続ける。例えば、多くの組織は、とりわけ、ウェブ・アプリケーションの開発のためを含め、１つ以上の仮想サーバを遠隔で操作する目的のために仮想コンピュータシステムを利用する。仮想コンピュータシステムは、おおまかな次元によって分類されることが多い。例えば、これらのシステムは、プロセッサコアの数、付属の記憶装置のタイプ及び（または）量あるいは他の要因によって分類されてもよい。このことは、コンピュータ処理リソースサービス・プロバイダが効率的な方法で物理的なシステムを別の目的に振り向けることまたは細分化することを、特に容量管理のために可能にする。多くの利点にもかかわらず、現代の仮想コンピュータシステムサービスは、顧客が仮想マシンインスタンスを作成するか移動する要求を提起した場合に、顧客に要求されたハードウェアを提供する機能が不足することが多い。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国特許公開第２０１０／０２４２０４５号
【発明の概要】
【課題を解決するための手段】
【０００５】
いくつかの実例では、ハードウェアの変化するタイプまたは世代を使用して、あるタイプの仮想マシンインスタンスが実装されることが可能であり得る。新規なハードウェアが一群のハードウェア装置の中に統合されたときは、新規なハードウェアは既存のハードウェアに不足している様々な特徴を含んでもよい。例えば、新規なハードウェアは、ハードウェアが前述のおおまかな次元内に適合するかどうかを判断する際には使用されない特徴（例えば暗号の加速を組込むチップセット）を含んでもよい。従って、新規な仮想マシンインスタンスの生成はこれらの新規な、恐らく魅力的な特徴を含んでもよい。そのような環境では、顧客は仮想マシンインスタンスを設定してもよいし、割り当てられた物理的ホストが所望のハードウェアの必要条件に合わない場合は直ちにインスタンスを終了してもよい。顧客は、所望のハードウェア構成を含んでいる物理的ホスト上で実装されるインスタンスが作成されるまで、このプロセスを繰り返してもよい。このことは、理想的な顧客経験からはほど遠く且つ他の不都合な結果を生じることになることがある。これらの問題を解決するいくつかの方法は、例えば、顧客ニーズを満たす様々な構成を備えた追加のサーバシステムの購入及び準備によって、多大な追加費用及び管理上の負担を引き起こすことがある。
【図面の簡単な説明】
【０００６】
本開示における様々な実施形態は以下の図面を参照して説明される。
【図１】様々な実施形態を実装することができる環境の実例を示す図である。
【図２】様々な実施形態を実装することができる環境の実例を示す図である。
【図３】様々な実施形態を実装することができる環境の実例を示す図である。
【図４】様々な実施形態を実装することができる環境の実例を示す図である。
【図５】少なくとも１つの実施形態に従って１つ以上の仮想マシンインスタンスを割り当てる実例を示す図である。
【図６】少なくとも１つの実施形態に従って１つの物理的ホストから別の物理的ホストに仮想マシンインスタンスを移動する実例を示す図である。
【図７】少なくとも１つの実施形態に従って顧客要求に基づいて仮想マシンインスタンスを割り当てるプロセスの実例を示す図である。
【図８】少なくとも１つの実施形態に従ってスロットの可用性に基づいて仮想マシンインスタンスを移動するプロセスの実例を示す図である。
【図９】少なくとも１つの実施形態に従って仮想マシンインスタンスを作成し且つ移動するプロセスの実例を示す図である。
【図１０】少なくとも１つの実施形態に従って既存の仮想マシンインスタンスに対するハードウェア割当のための要求を処理するプロセスの実例を示す図である。
【図１１】様々な実施形態を実装することができる環境を示す図である。
【発明を実施するための形態】
【０００７】
次の記述では、様々な実施形態が記載される。説明の目的のために、特定の構成及び詳細は実施形態についての完全な理解を提供するために述べられる。しかしながら、特定の詳細がなくても実施形態が実行される得ることは、当業者にとって明らかでもある。さらに、周知の特徴は記述されている実施形態を不明瞭にしないために省略されてもよいし単純化されてもよい。
【０００８】
ここに記述され且つ示唆された技術は、特定のハードウェア構成がインスタンスを実体化し且つサポートする顧客の選好設定に基づく仮想マシンインスタンスの割当及び移動に関する。実施形態では、仮想マシンインスタンスの生成または移動を要求するために、実体（例えば組織）は、例えば、サービスに対する適切に構成されたアプリケーションプログラムインターフェイス（ＡＰＩ）コールを通じて、仮想コンピュータシステムサービスと通信してもよい。実体は、データ保存サービス、仮想コンピュータシステムサービス及び（または）データベースサービスなどの様々なサービスを運用するコンピュータ処理リソースサービス・プロバイダの顧客でもよい。顧客は、例えば、仮想マシンインスタンスの生成または移動の要求を通じてなど、様々な方法でハードウェア選好設定を表わしてもよい。要求されたハードウェア構成は、仮想コンピュータシステムサービスによって提供され得る１つ以上の物理的ホストで具体化されてもよい。物理的ホストは様々なハードウェア構成要素を含んでもよい。例えば、物理的ホストは、仮想マシンインスタンスを実体化し且つサポートするのに必要な１つ以上のプロセッサ、１つ以上のデータ記憶装置（例えば、半導体駆動装置または磁気ディスク駆動装置）、ランダム・アクセス・メモリ（ＲＡＭ）及び他の構成要素を含んでもよい。いくつかの実施形態では、仮想コンピュータシステムサービスは、個々の物理的ホストが仮想マシンインスタンスを実体化する多くのスロットを含むように構成してもよい。これらのスロットは、基礎を成すコンピュータシステムの様々なハードウェアリソースの割当に対応することにより、仮想マシンインスタンスが有効な間スロットに対して平均性能の保証を供給する役割を果たしてもよい。従って、仮想マシンインスタンスが物理的ホストの中で実体化される場合、インスタンスは、仮想マシンインスタンスを実体化し且つサポートするのに必要なハードウェア仕様に基づいて１つ以上のスロットの中で実体化されてもよい。
【０００９】
いくつかの実施形態では、仮想コンピュータシステムサービスは、インスタンスを実体化するハードウェア仕様に対する必要条件または選好設定を含み得る仮想マシンインスタンスに対する顧客要求を受信してもよい。従って、仮想コンピュータシステムサービスは、要求されたハードウェア仕様を備えた物理的ホストが割当に使用可能かどうか判断してもよい。要求されたハードウェア仕様を備えた物理的ホストが使用可能な場合、仮想コンピュータシステムサービスは使用可能な物理的ホストに仮想マシンインスタンスを割り当ててもよい。要求されたハードウェアが使用可能でない場合、仮想コンピュータシステムサービスは特定のハードウェアに対する要求が顧客によって主張された選好設定または必要条件かどうか判断してもよい。要求されたハードウェア仕様を備えた物理的ホストが使用可能でなく、及び顧客要求が仮想マシンインスタンスをサポートし且つ実体化するある特定のハードウェア仕様に対する選好設定である場合には、仮想コンピュータシステムサービスは、準拠しない物理的ホストにインスタンスを割り当ててもよい。しかしながら、要求されたハードウェア仕様を備えた物理的ホストが使用可能でなく、及び要求が顧客によって主張された確定した必要条件である場合、仮想コンピュータシステムサービスは準拠しない物理的ホストにインスタンスを割り当てることを控えて、代わりに、例えば、適切な物理的ホストが使用可能になるまでの見積時間、及び要求された仮想マシンインスタンスに関して顧客が使用可能な他の使用可能なオプションを含むエラーメッセージを表示してもよい。
【００１０】
いくつかの実施形態では、仮想コンピュータシステムサービスは、仮想マシンインスタンスに関連したメタデータに顧客のハードウェア仕様の選好設定を持続的に格納してもよい。物理的ホスト内の１つ以上のスロットが使用可能になったことを仮想コンピュータシステムサービスが検出した場合、仮想コンピュータシステムサービスは、顧客要求に含まれている仕様と合致するハードウェア仕様を備えた物理的ホストにインスタンスが移動されることを顧客が要求したかどうか判断するために、任意の既存の仮想マシンインスタンスのメタデータに照会してもよい。多数の仮想マシンインスタンスに関連するメタデータが特定のハードウェア仕様を備えた物理的ホストへの移動の要求を示し、及び今使用可能な物理的ホストがこれらの仮想マシンインスタンスについて合致するハードウェア仕様を含んでいる場合には、仮想コンピュータシステムサービスは、どの仮想マシンインスタンスが物理的ホストに移動されてもよいか判断するために１つ以上の基準を適用してもよい。従って、仮想コンピュータシステムサービスは、選択された仮想マシンインスタンスの１つ以上のスナップショットを取得して、物理的ホストにおける目標スロットにスナップショットを転送してもよい。その後、仮想マシンインスタンスは一時停止され、物理的ホストの中の目標とされたスロットに転送されてもよい。従って、仮想マシンインスタンスは、インスタンスのメタデータの中で指定された要求されたハードウェア仕様を備えた物理的ホストの中に移動され且つ活性化されてもよい。
【００１１】
いくつかの実施形態では、仮想コンピュータシステムサービスは、既存のインスタンスをサポートするある特定のハードウェア仕様の要求を受信してもよい。上記したように、物理的ホストが１つ以上の使用可能なスロットを含み、且つ要求されたハードウェア仕様を備える場合、仮想コンピュータシステムサービスは上記したのと同様のプロセスを使用して、物理的ホストのスロットに既存のインスタンスを割り当ててもよい。しかしながら、要求されたハードウェア仕様を備えた物理的ホストが使用可能でない場合、仮想コンピュータシステムサービスは、上記したように、要求が選好設定または必要条件かどうか判断するために要求を評価してもよい。従って、要求がハードウェア仕様のある特定のセットに対する選好設定のみである場合、仮想コンピュータシステムサービスは、要求されたハードウェア仕様を備えた物理的ホストにおける１つ以上のスロットが使用可能にされる時間まで、既存のインスタンスを移動させなくてもよい。あるいは、要求が顧客の必要条件のセットである場合、仮想コンピュータシステムサービスはエラーメッセージを表示して、移動のための任意の新たな顧客要求を待ってもよい。
【００１２】
このように、仮想コンピュータシステムサービスは、顧客のハードウェア仕様の必要条件を満たす物理的ホストに１つ以上の仮想マシンインスタンスを割り当ててもよい。さらに、ここに記述され且つ示唆された技術は追加の技術的な利点を促進する。例えば、いくつかの実施形態では、仮想コンピュータシステムサービスが顧客の選好設定または必要条件に基づいて物理的ホストに既存の仮想マシンインスタンスを移動させてもよいので、このことはインスタンスを実体化するために使用される物理的ホストが顧客のハードウェア仕様の必要条件に当初合致しない場合に、仮想マシンインスタンスを生成し且つ終了する慣例を排除できる。さらに、実施形態では、仮想コンピュータシステムサービスが顧客のハードウェア仕様の必要条件に基づいて異なる物理的ホストに仮想マシンインスタンスを自動的に移動してもよいので、顧客はもはや要求されたハードウェア仕様を備えた物理的ホストに既存の仮想マシンインスタンスを割り当てる要求を連続的に提起する必要がない。このことは、次には、顧客要求をサポートする新たなハードウェアの必要性を縮小し得るので、任意の新たなハードウェア構成要素のコスト及びこれらの構成要素のメンテナンスの関連するコストを低減し得る。ある特定のハードウェア仕様の顧客要求の未処理分は、さらにコンピュータ処理リソースサービス・プロバイダに価値のある情報を提供し得る。例えば、未処理分はシステム容量見積及び（または）ハードウェア購買決定を通知するために使用されてもよい。追加の用途もそこに記述された様々な技術によって可能になる。
【００１３】
図１は、様々な実施形態が実行され得る環境１００の実例を示す。環境１００では、コンピュータ処理リソースサービス・プロバイダ１０２はコンピュータ処理リソースサービス・プロバイダの顧客に様々なコンピュータ処理リソースサービスを提供してもよい。コンピュータ処理リソースサービス・プロバイダ１０２は、１人以上の顧客を代表して様々なコンピュータ処理リソースをホストする組織でもよい。例えば、コンピュータ処理リソースサービス・プロバイダは、ハードウェアサーバ、データ記憶装置、ネットワーク装置のような様々なコンピュータ処理ハードウェアリソース、及びサーバラック、ネットワーキング・ケーブル等のような他の備品をホストするのに使用される１つ以上の設備を運用してもよい。コンピュータ処理リソースサービス・プロバイダ１０２は、１つ以上のサービスを運用するためにそのコンピュータ処理ハードウェアリソースを利用してもよい。そのようなサービスは、物理的機器に投資する顧客の必要性を縮小するかまたは排除さえもすると同時に、コンピュータ処理リソースサービス・プロバイダの顧客が顧客の操作をサポートするコンピュータ処理リソースを遠隔的に管理することを可能にするサービスを含んでもよい。例示のサービスは、制限されないが、様々なデータ保存サービス（オブジェクト・ベースのデータ保存サービス、アーカイブのデータ保存サービス、データベースサービス等）、プログラム実行サービス及び他のサービスを含む。そのサービスは、ウェブサイトを操作すること、組織、分配された計算及び（または）他の活動を支援する企業システムを操作することのように、多様性に富んだ活動をサポートするために顧客によって使用されてもよい。
【００１４】
従って、図１に示されるように、環境１００は顧客１０４を含む。顧客１０４は、ウェブ・ページ開発またはデータベース管理などの顧客の運用をサポートするコンピュータ処理リソースを遠隔に管理するコンピュータ処理リソースサービス・プロバイダ１０２によって提供される１つ以上のサービスを利用することができる個人でもよいしまたは組織でもよい。顧客１０４は、顧客のコンピュータ処理によって、顧客のニーズをサポートするために使用され得る仮想マシンインスタンスを構成するコンピュータ処理システムサービスプロバイダ１０２によって提供される仮想コンピュータシステムサービスに１つ以上の要求を提起してもよい。１つ以上の要求は、オペレーティング・システム及び（または）仮想マシンインスタンスに含まれているアプリケーションをさらにサポートする役目を果たし得るハードウェア仕様の必要条件または選好設定を含んでもよい。例えば、顧客１０４がリソース集約型アプリケーションを作成し且つテストするために仮想マシンインスタンスを使用する場合、顧客１０４はこれらのアプリケーションをサポートするために重要な処理能力及び記憶容量を要求してもよい。あるいは、顧客１０４がワードプロセッサ及び表計算操作のための仮想マシンインスタンスを利用する場合、広範囲なリソースは必要でない。従って、仮想コンピュータシステムサービスは、物理的ホスト１０６上に仮想マシンインスタンスを実体化してもよい。
【００１５】
物理的ホスト１０６は、上記したように、複数のハードウェア構成要素を含んでもよい。例えば、物理的ホスト１０６は、１つ以上のプロセッサ、いくつかのＲＡＭチップセット及び仮想マシンインスタンス１０８を持続的に格納し且つ実体化するように構成された１つ以上の記憶装置（例えば、半導体駆動装置または磁気ディスク駆動装置）を含んでもよい。図４に関連してより詳細に説明されるように、各物理的ホスト１０６は、１つ以上の仮想マシンインスタンス１０８を実体化し且つサポートするために１つ以上のスロットを含むように構成されてもよい。これらのスロットは、そこに実体化された仮想マシンインスタンス１０８の各々に性能メトリクスの平均セットを割り当てる役目を果たす。例えば、要求されたタイプの仮想マシンインスタンス１０８によって、仮想コンピュータシステムサービスは仮想マシンインスタンス１０８に１つ以上のスロットを割り当ててもよい。
【００１６】
仮想マシンインスタンス１０８が物理的ホスト１０６中の１つ以上のスロットの中で実体化された後のどの時点でも、顧客１０４は、仮想マシンインスタンス１０８を実体化し且つサポートするために使用されるべき特定のハードウェア仕様に対する選好設定または必要条件を含み得る仮想コンピュータシステムサービスに要求を提起してもよい。従って、仮想コンピュータシステムサービスは、システム内の使用可能ないずれかの物理的ホスト１０６が、要求された仕様を提供するために使用することができる使用可能な配置領域を備えているかどうか判断してもよい。例えば、配置領域は、要求された特定のハードウェア仕様を備えた物理的ホストの中の１つ以上の使用可能なスロットを検索することに基づいて識別されてもよい。従って、物理的ホスト１０６が要求を満たすために使用され得ることが見出され、及び物理的ホストが仮想マシンインスタンス１０８を実体化するために十分なスロットを有する場合、仮想コンピュータシステムサービスは仮想マシンインスタンス１０８をこの物理的ホスト１０６に移動し、且つ、このインスタンスを実体化するために以前に使用されたスロットを解放してもよい。しかしながら、物理的ホスト１０６が要求を満たすために使用可能でない場合、仮想コンピュータシステムサービスは仮想マシンインスタンス１０８を移動する必要はなく、及び（または）エラーメッセージを表示してもよい。
【００１７】
図２は、本開示の様々な実施形態が実行され得る環境２００の例示を示す。環境２００では、コンピュータ処理リソースサービス・プロバイダ２０２は、顧客２０４に対する様々なサービスを提供してもよい。顧客２０４は、１つ以上のウェブサーバまたはアプリケーションを遠隔的に生成し、テストし、及びメンテナンスするコンピュータ処理リソースサービス・プロバイダ２０２によって提供される様々なサービスを利用し得る組織であってもよい。図２に示されるように、顧客２０４は、インターネットなどの１つ以上の通信ネットワーク２０６を介してコンピュータ処理リソースサービス・プロバイダ２０２と通信してもよい。顧客２０４からコンピュータ処理リソースサービス・プロバイダ２０２へのいくつかの通信は、コンピュータ処理リソースサービス・プロバイダ２０２に、ここに記述された様々な技術またはその変形に従って運用させてもよい。
【００１８】
上記したように、コンピュータ処理リソースサービス・プロバイダ２０２は、その顧客に様々なコンピュータ処理リソースサービスを提供してもよい。例えば、特にこの実例において、コンピュータ処理リソースサービス・プロバイダ２０２は少なくとも２つのタイプのサービスを提供する。コンピュータ処理リソースサービス・プロバイダによって提供されるサービスは、この例において、仮想コンピュータシステムサービス２０８、データ保存サービス２１０及び１つ以上の他のサービス２１２を含み、本開示のすべての実施形態がすべてのそのようなサービスを含むものではないが、追加サービスがここに明確に記載されたサービスに追加されまたは代替として提供されてもよい。
【００１９】
仮想コンピュータシステムサービス２０８は、コンピュータ処理リソースサービス・プロバイダ２０２の顧客２０４に代わって仮想コンピュータシステム上に仮想マシンインスタンスを実体化するように構成されたコンピュータ処理リソースの集合であってもよい。コンピュータ処理リソースサービス・プロバイダ２０２の顧客２０４は、仮想コンピュータシステムサービス２０８と対話して、コンピュータ処理リソースサービス・プロバイダ２０２によってホストされ且つ運用された物理的コンピュータ処理装置（例えば物理的ホスト）上で実体化される仮想コンピュータシステムを設定し且つ運用してもよい。仮想コンピュータシステムはウェブサイトをサポートするサーバとして作動するように様々な目的に使用されてもよい。仮想コンピュータシステムに対する他のアプリケーションは、データベース・アプリケーション、電子商取引アプリケーション、ビジネス・アプリケーション及び（または）他のアプリケーションをサポートすることでもよい。
【００２０】
顧客２０４が仮想コンピュータシステムサービス２０８と対話し、及び仮想マシンインスタンスを設定する場合、顧客２０４は様々なリソースへのアクセスを取得してもよい。例えば、仮想マシンインスタンスはオペレーティング・システム、及び顧客のニーズに応じて様々なアプリケーションを設定してもよい。仮想マシンインスタンスは、上記したように、コンピュータ処理リソースサービス・プロバイダ２０２によって運用され得る物理的ホスト上で実体化されてもよい。従って、物理的ホストは、仮想マシンインスタンスを運用し且つサポートするのに必要なコンピュータ処理リソースを提供するために一括して役目を果たすように構成され得るいくつかのハードウェア構成要素を備える必要があるかもしれない。従って、仮想コンピュータシステムサービス２０８は、デフォルトで、特定のインスタンスをサポートするのに必要なリソースを備えた物理的ホスト上に仮想マシンインスタンスを実体化してもよい。
【００２１】
いくつかの実施形態では、顧客２０４は、ハードウェア仕様の特定のセットを備えた物理的ホストの中で仮想マシンインスタンスが実体化されることを要求してもよい。ハードウェア仕様が仮想コンピュータシステムサービス２０８によるデフォルトで選択されなかった可能性があるが、顧客２０４はそのニーズをサポートすることをこれらの仕様に要求してもよい。上記したように、顧客２０４は広範囲なリソースが作動することを要求する仮想マシンインスタンス上のソフトウェアを開発し且つテストしてもよい。従って、仮想コンピュータシステムサービス２０８によって提供されたデフォルトのハードウェア仕様は、これらの目的に対して妥当でない可能性がある。ハードウェア仕様の特定のセットを備えた物理的ホストが仮想マシンインスタンスに対して割り当てられるべきであることを顧客２０４が指定している場合、仮想コンピュータシステムサービス２０８はいずれかの使用可能な物理的ホストがこれらの仕様を現在備えているかどうか判断してもよい。少なくとも顧客の要求で指定されたハードウェア仕様の特定のセットを備えた使用可能な物理的ホストがない場合で、且つ顧客のハードウェア要求が選好設定である場合には、仮想コンピュータシステムサービス２０８は、仮想マシンインスタンスを実体化するために、及び指定されたハードウェア構成要素を備えた物理的ホストが一旦使用可能になればそれに仮想マシンインスタンスが移動させられるべきであることを明確にするべく起動されるフラグをインスタンスのメタデータの中で維持するために、最小のハードウェア仕様を備えた物理的ホストの中の仮想マシンインスタンスを実体化してもよい。しかしながら、新たな仮想マシンインスタンスを作成する要求に含まれているハードウェア仕様要求が必要条件である場合には、仮想コンピュータシステムサービス２０８はエラーメッセージを表示し、ハードウェア仕様の必要条件を満たすことができる物理的ホストが使用可能でない場合には要求を拒否してもよい。
【００２２】
さらに、いくつかの実施形態では、顧客２０４は、顧客２０４のニーズをサポートするのに必要であり得るハードウェア仕様の特定のセットを備えた物理的ホストに既存の仮想マシンインスタンスを移動する要求を提起できるようにしてもよい。少なくとも要求の中で提供されたハードウェア仕様を備えた物理的ホストが現在存在しない場合、仮想コンピュータシステムサービス２０８は、新たな物理的ホストにインスタンスを移動せずに、既存の仮想マシンインスタンスをそれが実体化されている物理的ホストの中に維持してもよい。さらに、要求されたハードウェア仕様がインスタンスをサポートするために必要とされる場合、仮想コンピュータシステムサービス２０８はエラーメッセージを表示し、顧客２０４にある特定のオプションを与えてもよい。例えば、顧客２０４は、顧客の必要条件によりぴったり合致する物理的ホストに仮想マシンインスタンスを移動することを試みる要求を再構成するオプションを与えられてもよい。顧客２０４のハードウェア仕様に合致する物理的ホストが使用可能な場合、仮想コンピュータシステムサービス２０８は、要求を満たすように、この物理的ホストに仮想マシンインスタンスを移動してもよい。
【００２３】
上記したように、仮想コンピュータシステムサービス２０８は、起動されると、使用可能な時にある特定のハードウェア仕様を備える物理的ホストに仮想マシンインスタンスを移動させることを顧客が選択していると特定し得る、フラグを含むことができるインスタンス・メタデータを維持してもよい。従って、いくつかの実施形態では、仮想コンピュータシステムサービス２０８は、１つ以上のスロットが物理的ホストにおいて使用可能になる場合に、各仮想マシンインスタンスに関するメタデータに照会するように構成されてもよい。仮想コンピュータシステムサービス２０８が物理的ホストに移動されることになっている１つ以上の仮想マシンインスタンスを識別する場合、仮想コンピュータシステムサービス２０８は、どのインスタンスが移動されることになっているか判断するために１つ以上の仮想マシンインスタンスに基準のセットを適用するように構成されてもよい。例えば、その基準は、ある特定のハードウェア仕様の要求と現在の照会との間の時間の長さを含んでもよい。従って、仮想コンピュータシステムサービス２０８は、要求されたハードウェア仕様を備えた物理的ホストに選択された仮想マシンインスタンスを移動することを開始して、そのインスタンスに関するメタデータをリセットしてもよい。
【００２４】
データ保存サービス２１０は、顧客２０４のためにデータを格納するように一括して作動するコンピュータ処理リソースの集合を含んでもよい。データ保存サービス２１０に記憶されたデータは、データ・オブジェクトに組織化されてもよい。データ・オブジェクトは、おそらくサイズ上のある制約以外は、任意のサイズを備えてもよい。従って、データ保存サービス２１０は、様々なサイズの多数のデータ・オブジェクトを格納してもよい。データ保存サービス２１０は、データ保存サービス２１０によって格納されたデータ・オブジェクトに関する他の操作を検索するかまたは行なうために、顧客２０４によって使用され得るデータ・オブジェクトの識別子にデータ・オブジェクトを関連付ける重要な値の記憶装置として作動してもよい。データ保存サービスへのアクセスは、適切に構成されたアプリケーションプログラム・インターフェイス（ＡＰＩ）コールを介してもよい。
【００２５】
コンピュータ処理リソースサービス・プロバイダ２０２は、その顧客２０４のニーズに基づいて１つ以上の他のサービス２１２をさらに維持してもよい。例えば、コンピュータ処理リソースサービス・プロバイダ２０２は、その顧客２０４のためのデータベースサービスを維持してもよい。データベースサービスは、１人以上の顧客２０４のための１つ以上のデータベースを実行するために一括して作動するコンピュータ処理リソースの集合であってもよい。コンピュータ処理リソースサービス・プロバイダ２０２の顧客２０４は、サービスに対する適切に構成されたＡＰＩコールの利用によりデータベースサービスからのデータベースを運用し且つ管理してもよい。このことは、次には、顧客２０４がデータベースの中の操作を維持すること及び潜在的にスケール変更することができるようにしてもよい。他のサービスは、制限はされないが、オブジェクト・レベルのデータ保存サービス、オブジェクト・レベルのアーカイブのデータ保存サービス、他のサービスを管理するサービス及び（または）他のサービスを含む。
【００２６】
上記したように、仮想コンピュータシステムサービスは、様々な用途のための仮想マシンインスタンスを設定する１人以上の顧客によって使用されてもよい。仮想マシンインスタンスは、顧客が、オペレーティング・システム及びある特定の機能（例えば、１つ以上のデータベースを維持する機能、顧客情報を格納する機能、ウェブ・アプリケーションを開発する機能等）を行なうことを可能にし得る様々なアプリケーションにアクセスすることを可能にしてもよい。従って、図３は、少なくとも１つの実施形態に従って仮想コンピュータシステムサービス３０２の様々な構成要素を含む環境３００の実例を示す。仮想コンピュータシステムサービス３０２は、顧客が仮想コンピュータシステムサービス３０２にアクセスすることを可能にし得る顧客インターフェイス３０４を顧客に提供し得る。顧客は、インターネットなどの１つ以上の通信ネットワークを介して顧客インターフェイス３０４を利用し得る。顧客インターフェイス３０４は、顧客が仮想コンピュータシステムサービス３０２にアクセスする認可を持っていることを保証するためにある特定の安全予防手段を含んでもよい。例えば、仮想コンピュータシステムサービス３０２にアクセスするために、顧客インターフェイス３０４を使用する場合、顧客はユーザーネーム及び対応するパスワードまたは暗号鍵を提供する必要があるかもしれない。さらに、顧客インターフェイス３０４に提起された要求（例えばＡＰＩコール）は、暗号化キーを使用して生成された電子署名であって、認証システム（図示せず）などによるように、仮想コンピュータシステムサービス３０２による証明可能な電子署名を要求してもよい。
【００２７】
一旦顧客が顧客インターフェイス３０４を介して仮想コンピュータシステムサービス３０２へのアクセスを取得した場合には、仮想コンピュータシステムサービス３０２は、顧客インターフェイス３０４を介して、顧客が管理サブシステム３０６と対話できるようにしてもよい。例えば、管理サブシステム３０６は、顧客が遠隔的に仮想マシンインスタンスを設定できるようにしてもよい。顧客は、オペレーティング・システム及び顧客のニーズに適した様々なアプリケーションを含む仮想マシンインスタンスを生成するために顧客インターフェイス３０４及び管理サブシステム３０６を使用してもよい。オペレーティング・システム及び様々なアプリケーションは、マシン・イメージ３０８の形態でデータ記憶装置の中で維持されてもよい。仮想コンピュータシステムサービス３０２は、管理サブシステム３０６において指定されるように、特定の顧客の選好設定に基づいて様々なマシン・イメージ３０８を維持してもよい。顧客が管理サブシステム３０６を介して仮想マシンインスタンスを設定する要求を提起する場合、仮想コンピュータシステムサービス３０２は、顧客が要求したマシン・イメージを識別して、マシン・イメージを処理するのに必要なリソース（例えば、マシン・イメージの構成要素を運用するのに必要なプロセッサ及びランダム・アクセス・メモリ（ＲＡＭ））を割り当ててもよい。マシン・イメージは、インスタンスのために物理的ホスト３１２として役割を果たす１つ以上の物理的記憶装置（例えば、１つ以上のサーバまたはハード駆動装置）上で実体化される。
【００２８】
マシン・イメージを処理するのに必要なリソースの自動割当の代わりとして、顧客は、顧客インターフェイス３０４及び管理サブシステム３０６を利用して、マシン・イメージを処理し且つサポートするリソースの特定のセットを要求してもよい。例えば、顧客がリソース集約型のソフトウェアまたはウェブ・アプリケーションを作成し、テストし、且つ管理するために仮想マシンインスタンスを使用する予定ならば、顧客はマシン・イメージを単に処理するのに必要なリソースを超えた追加のリソースを要求してもよい。従って、管理サブシステム３０６は、追加のハードウェア仕様を含む要求を処理して、仮想マシンインスタンスを実体化するのに必要なリソースを含む物理的ホスト３１２を識別して、顧客要求を満たしてもよい。上記したように、顧客はこれらのハードウェア仕様の要求がインスタンスの生成のための選好設定または必要条件のいずれであるかを特定してもよい。前者の場合、管理サブシステム３０６が顧客の要求を満たすのに必要なリソースを備えた物理的ホスト３１２を識別することができない場合、管理サブシステム３０６は、マシン・イメージを処理するのに必要なリソースを備えた物理的ホスト３０６の中で仮想マシンインスタンスを実体化するように構成されてもよい。従って、管理サブシステム３０６は、要求されたハードウェア仕様を備えた物理的ホスト３１２が使用可能になるときに管理サブシステム３０６がこの物理的ホストに仮想マシンインスタンスを移動するように、仮想マシンインスタンスに関連したメタデータ・フラグを起動するように構成されてもよい。後者の場合（例えば、ハードウェア仕様のある特定のセットに対する要求が必要条件である場合）、管理サブシステム３０６は顧客インターフェイス３０４に対して実行可能な命令を送信するように構成されてもよく、顧客インターフェイス３０４によって実行された時、要求されたハードウェア仕様を備えた物理的ホスト３１２が使用可能でない場合エラーメッセージを顧客インターフェイス３０４に表示させる。さらに、管理サブシステム３０６は、どの物理的ホスト３１２の中にも仮想マシンインスタンスを実体化しなくてよい。
【００２９】
上記したように、管理サブシステム３０６は、ハードウェア仕様のある特定のセットに対する顧客の選好設定を満たさない物理的ホスト３１２の中に仮想マシンインスタンスが実体化されていた場合には、仮想マシンインスタンスに関連したメタデータ・フラグを起動するように構成されてもよい。顧客は、顧客インターフェイス３０４に対する適切に構成されたＡＰＩコールによって、インスタンスをサポートするのに必要なリソースを備えた物理的ホスト３１２に仮想マシンインスタンスが移動させられるべきかどうかを明確にするために仮想マシンインスタンス内のメタデータ・フラグを起動してもよい。さらに、要求されたハードウェア仕様を備えた物理的ホスト３１２の中の仮想コンピュータ処理インスタンスを実体化するために顧客の選好設定を管理サブシステム３０６がすぐには満たすことができない場合、メタデータ・フラグが起動されてもよい。従って、仮想コンピュータシステムサービス３０２は、物理的ホスト３１２の中に実体化された仮想マシンインスタンスが顧客の要求を満たすのに必要なリソースを有し得る異なる物理的ホスト３１２に移動させられるべきかどうかを判断する情報を管理するために使用される１つ以上のメタデータサービス３１０を維持してもよい。図８に関連してより詳細に記述されるように、管理サブシステム３０６は、どの既存の仮想マシンインスタンスが物理的ホスト３１２の中で新たに使用可能なスロットへの移動のための顧客要求を含むか判断するために、メタデータサービス３１０に照会するように構成されてもよい。
【００３０】
上記したように、各物理的ホストは、仮想マシンインスタンスを実体化するために使用される複数のスロットを含んでもよい。従って、図４は、実施形態に従って、管理サブシステムと１つ以上のスロットを有し得る複数の物理的ホストとの間の対話を含む環境４００の実例である。環境４００では、顧客４０２は、インターネット４０４などの１つ以上の通信ネットワークを介して、サービスに対する適切に構成されたＡＰＩコールを介してなど、１つ以上の要求を提起することによって仮想コンピュータシステムサービス４０６と対話する。上記したように、顧客４０２は、オペレーティング・システム及び顧客のニーズに適した様々なアプリケーションを含むインスタンスを生成するために、仮想コンピュータシステムサービス４０６によって提供された顧客インターフェイス及び管理サブシステム４０８を利用してもよい。
【００３１】
管理サブシステム４０８は、上記したように、顧客４０２の要求に応じて、１つ以上の物理的ホスト４１０の中にマシン・イメージをインストールすることによって仮想マシンインスタンスを実体化するために、１つ以上の物理的ホスト４１０と対話してもよい。各物理的ホスト４１０は、１つの仮想マシンインスタンスを実体化するのに必要な１セットのリソースを備えてもよい。しかしながら、各物理的ホスト４１０は、物理的ホスト４１０に含まれたハードウェア構成要素に基づいてリソースの異なるセットを含んでもよい。例えば、各物理的ホスト４１０は、１つ以上の仮想マシンインスタンスを実体化するのに必要な異なるプロセスチップセット、記憶装置（例えば、半導体駆動装置若しくは磁気ディスク駆動装置）またはＲＡＭを含んでもよい。従って、ある特定の仮想マシンインスタンスは、いくつかの物理的ホスト４１０の中に実体化されてもよいが他のものの中ではない。
【００３２】
各物理的ホスト４１０は、仮想マシンインスタンスの割当のための１つ以上のスロット４１２を備えてもよい。各スロット４１２は、仮想マシンインスタンスをサポートする１つ以上の操作を行なうために、物理的ホスト４１０からのリソースのセットの割当に相当してもよい。例えば、スロットは、物理的ホスト４１０の処理能力の半分に相当してもよい。顧客４０２が仮想マシンインスタンスの生成を要求する場合、顧客４０２は仮想マシンインスタンスがどれくらい大きなものであるべきか指定することができるようにしてもよい。従って、仮想マシンインスタンスが大きいほど、物理的ホスト４１０の中でインスタンスが消費するスロット４１２は多くなり得る。なぜならば、大きなインスタンスは仮想マシンインスタンスの一部であるマシン・イメージ（例えば、オペレーティング・システム及び関連するアプリケーション）を実体化し且つサポートする追加のリソースを必要とし得るからである。物理的ホスト４１０がより少ないコンピュータ処理リソースを備えている（例えば、時代遅れのまたは旧式のプロセッサ及び（または）記憶装置などのより古い技術を使用する場合）場合には、物理的ホスト４１０は、仮想マシンインスタンスの割当のために少数のスロット４１２を含むだけでよい。あるいは、より多いコンピュータ処理リソースを備えたより新しい物理的ホスト４１０は、追加のスロット４１２をサポートできるようにしてもよく、従って、追加の仮想マシンインスタンスを収容する。
【００３３】
従って、顧客４０２が仮想コンピュータシステムサービス４０６に対して仮想マシンインスタンスを作成する要求を提起した場合、管理サブシステム４０８は、インスタンスを実体化するのに必要なリソースをどの物理的ホスト４１０が備えているか判断するように構成されてもよい。さらに、管理サブシステム４０８は、これらの物理的ホスト４１０の中で、割当のために必要なスロット４１２を備えているのがどの物理的ホスト４１０であるかを判断してもよい。従って、管理サブシステム４０８は、インスタンスをサポートするのに必要なリソース及びスロット４１２を備えた物理的ホスト４１０の中に仮想マシンインスタンスを実体化してもよい。
【００３４】
上記したように、顧客４０２は、生成のときに仮想マシンインスタンスに割り当てられるべきリソースのセットに対して選好設定または必要条件を指定してもよい。このインスタンスでは、管理サブシステム４０８は、既存の物理的ホスト４１０が要求されたリソースを備えているかを判断するように構成され、備えている場合に、その物理的ホスト４１０が選好設定または必要条件を満たすために必要なスロット４１２を備えているかどうかを判断するように構成されてもよい。その要求がリソースのセットに対する選好設定を含み、その選好設定を満たす物理的ホスト４１０が使用可能でない場合、管理サブシステム４０８は、インスタンスを実体化するために十分なスロット４１２を備えた物理的ホスト４１０の中に仮想マシンインスタンスを割り当てて、且つインスタンスをサポートするのに必要な最小のリソースを提供してもよい。従って、後に選好設定を満たすのに必要なリソースを備えた物理的ホスト４１０において十分な数のスロット４１２が使用可能になった場合は、管理サブシステムは、この物理的ホスト４１０にインスタンスを移動するように構成されてもよい。しかしながら、その要求が仮想マシンインスタンスを実体化し且つサポートするために必要とされるリソースのセットを含む場合、管理サブシステムは、必要条件を満たす物理的ホスト４１０が使用可能でない場合、または必要条件を満たすことができる物理的ホスト４１０においてスロット４１２が使用可能でない場合には、エラーメッセージを生成するように構成されてもよい。
【００３５】
図５は、少なくとも１つの実施形態に従って、１つ以上の仮想マシンインスタンスが実体化され且つ割り当てられた環境５００の実例である。上記したように、仮想コンピュータシステムサービスは、任意の仮想マシンインスタンスを実体化し且つサポートするために使用され得る複数のリソースを備えた１つ以上の物理的ホスト５０２を維持してもよい。上記の図４に示すように、各物理的ホスト５０２は、その物理的ホスト５０２に含まれたリソースの一部に対応する１つ以上のスロット５０４を備えてもよい。例えば、各スロット５０４は、当該スロット５０４に対して平均して配分された物理的ホスト５０２によって提供された処理能力の一部に相当してもよい。
【００３６】
顧客が、仮想マシンインスタンス５０６を設定するために、例えばサービスに対する適切に構成されたＡＰＩコールによって、仮想コンピュータシステムサービスに要求を提起した場合、管理サブシステムは、その要求を処理し、且つ物理的ホスト５０２に仮想マシンインスタンス５０６を割り当ててもよい。上記したように、管理サブシステムは、仮想マシンインスタンス５０６を実体化し且つサポートするのに必要なリソースを備えた物理的ホスト５０２に仮想マシンインスタンス５０６を割り当ててもよい。従って、物理的ホスト５０２は、仮想マシンインスタンス５０６を実体化するために使用可能な１つ以上のスロット５０４を有する必要があり得る。
【００３７】
図５に示すように、仮想マシンインスタンス５０６は、インスタンス５０６をサポートするために必要なまたは要求されるリソースに応じて、１つ以上のスロット５０４に割り当てられてもよい。従って、各仮想マシンインスタンス５０６は、物理的ホスト５０２の中の任意の他の仮想マシンインスタンス５０６とは異なり得る多くのスロット５０４に割り当てられてもよい。例えば、環境５００では、物理的ホスト５０２は、多くのインスタンス５０６を割り当てるために使用され得る５つのスロット５０４を備えていてもよい。図５に示すように、管理サブシステムは、スロット５０４に１つ以上のインスタンス５０６を割り当ててもよい。従って、この実例における物理的ホスト５０２は、２つを超えるスロット５０４に割り当てら得るより大きなインスタンス５０６、１つのスロット５０４の全部及び別のスロット５０４の一部に割り当てられ得る中規模のインスタンス、及び１つのスロット５０４の一部に割り当てられ得るより小さなインスタンスを含んでもよい。従って、仮想マシンインスタンス５０６は、物理的ホスト５０２において使用可能にされたスロット５０４の任意の数または一部に割り当てられてもよい。
【００３８】
上記したように、管理サブシステムは、インスタンスが生成されたときに指定された顧客の選好設定に基づいて、またはインスタンスが割り当てられてしまった後になされた後の要求に基づいて、１つの物理的ホストから別の物理的ホストにインスタンスを移動するように構成されてもよい。従って、図６は、少なくとも１つの実施形態に従って、１つの物理的ホストから別の物理的ホストにインスタンスが移動される場合の環境６００の実例である。環境６００では、第１の物理的ホスト６０２は、その第１の物理的ホスト６０２の中で１つ以上のスロットに割り当てられ得る第１のインスタンス６０８を含め、１つ以上のインスタンスを含んでもよい。後に第１の物理的ホスト６０２の中の第１のインスタンス６０８の最初の実体化の後に、物理的ホストを管理し且つコントロールするように構成され得る管理サブシステムは、第２の物理的ホスト６０４に第１のインスタンス６０８を移動する要求を受信してもよい。
【００３９】
顧客がここで、第１のインスタンス６０８をサポートするために追加のリソースを好むかまたは要求した場合には、顧客は、第１の物理的ホスト６０２から第２の物理的ホスト６０４に第１のインスタンス６０８の移動を要求してもよい。従って、第２の物理的ホスト６０４は、第１の物理的ホスト６０２に勝る、高性能プロセッサ・チップセット６０６などの１つ以上の改良された構成要素を備えてもよい。この高性能プロセッサ・チップセット６０６は、顧客にとって魅力的であり得る第２の物理的ホスト６０４に実質的な追加のリソースを供給してもよい。高性能プロセッサ・チップセット６０６の使用は実例の目的で本開示の全体にわたって使用されるが、開示の範囲は単なるプロセッサのアップグレードに限定されない。例えば、第２の物理的ホスト６０４は、インスタンスを実体化するためのより大きなデータ記憶容量を提供する１つ以上の記憶装置などの他の改良された構成要素を含んでもよい。
【００４０】
管理サブシステムが顧客のハードウェアの選好設定または必要条件を満たすことができるリソースを備えた物理的ホストを認識した場合、管理サブシステムは、第１の物理的ホスト６０２から第２の物理的ホスト６０４に第１のインスタンス６０８を移動することを始めてもよい。第２の物理的ホスト６０４は多くの空きスロット及び使用中のスロットを備えてもよく、それらの中に１つ以上のインスタンスを実体化していてもよい。図９に関連してより詳細に記述されるように、管理サブシステムは、第１のインスタンス６０８のスナップショットを取得して、第２の物理的ホスト６０４の中の１つ以上の空きスロットにこのスナップショットを転送してもよい。従って、第１のインスタンス６０８は一時停止されて第２の物理的ホスト６０４に転送され、使用のために活性化されてもよい。顧客はいまや、第２の物理的ホスト６０４において、高性能プロセッサ・チップセット６０６及び要求された他のハードウェア構成要素を利用することができる。
【００４１】
上記したように、顧客は、インスタンスをサポートする１セットのリソースに対する選好設定または必要条件と共に仮想マシンインスタンスを生成する要求を提起してもよい。従って、図７は、少なくとも１つの実施形態に従って、顧客が任意に指定できるハードウェア要件に基づいて、仮想マシンインスタンスを割り当てるプロセス７００の実例である。要求が任意に指定できるハードウェア要件を含んでいるかどうかにかかわらず、仮想マシンインスタンスを設定する要求が処理されてもよいことに留意されたい。プロセス７００では、仮想コンピュータシステムサービスは、インスタンスに割り当てられるべき１セットのリソースを備えた仮想マシンインスタンスの生成のために、顧客から、要求を受信する（７０２）ように構成された管理サブシステムを備えてもよい。リソースのこのセットに対して任意に指定できるハードウェア要件は、顧客のニーズに基づいて、選好設定または必要条件のいずれかであってもよい。あるいは、その要求は、選好設定のセットに準拠しない物理的ホストの中の仮想マシンインスタンスを実体化することによって満たされる要求であり得ることの表示を含んでもよい。顧客は、サービスに対する１つ以上のより適切に構成されたＡＰＩコールによってこれらの要求を提起してもよい。さらに、要求が表示を含んでいる場合、その表示はサービスに対する個別のＡＰＩコールによって提起されてもよい。
【００４２】
従って、管理サブシステムは、受信された要求を処理する方法を決定するために１つ以上の処理アルゴリズムを適用してもよい。例えば、一旦管理サブシステムが顧客から１つ以上の要求を受信すると、管理サブシステムは、いずれかの物理的ホストコンピュータシステムが仮想マシンインスタンスを実体化するのに使用可能であるかを決定する（７０４）ためにアルゴリズムを使用するように構成されてもよい。管理サブシステムは、仮想マシンインスタンスのための顧客の選好設定または必要条件を満たすあらゆる可能性のある物理的ホストコンピュータシステムを識別するために、仮想コンピュータシステムサービス内の物理的ホストコンピュータシステムに照会するアルゴリズムを使用するように構成さてもよい。それに続いて、管理サブシステムは、可能性のある物理的ホストコンピュータシステムのいずれかが仮想マシンインスタンスを実体化するために十分な空きスロットを備えているかを評価するアルゴリズムを使用するように構成されてもよい。
【００４３】
管理サブシステムは、この評価において、ある特定のハードウェアリソースに対する選好設定に基づく仮想マシンインスタンスを備えたいずれかの物理的ホスト及び何の選好設定も全くなしで生成された仮想マシンインスタンスを備えたいずれかの物理的ホストを追加するように構成されてもよい。例えば、リソースのある特定のセットを有する仮想マシンインスタンスの要求が選好設定である場合、この要求は、ハードウェアの選好設定なしで作成された任意の既存の実体化されたインスタンスに対して優先権が与えられてもよい。さらに、別のインスタンスにおいて、要求が１セットの必要条件である場合、この要求には、ハードウェア選好設定なしで作成された任意の既存の実体化されたインスタンス、または（例えば、１セットの必要条件でなく）１つだけのハードウェアの選好設定で作成されたインスタンスに勝るより大きな優先権が与えられてもよい。従って、管理サブシステムは、たとえホストが既存の実体化されたインスタンスを含む場合であっても、ある特定の物理的ホストが要求を満たすために使用可能であることを決定してもよい。
【００４４】
１つ以上の物理的ホストコンピュータシステムが顧客の選好設定または必要条件を満たすためにリソースを備えており、且つ、これらの物理的ホストコンピュータシステムが、仮想マシンインスタンスを実体化するための十分な空きスロットを備えている場合には、管理サブシステムは、物理的ホストコンピュータシステムの中の空きスロットに仮想マシンインスタンスを割り当ててもよい（７０６）。１つを超える物理的ホストコンピュータシステムが存在する場合には、管理サブシステムは、使用可能な物理的ホストコンピュータシステム内の使用可能なスロットを順位付けするアルゴリズムを適用するように構成されてもよい。例えば、管理サブシステムは、各物理的ホストコンピュータシステムのハードウェア仕様及び１つのスロットの中で実体化された１つのインスタンスに対して使用可能にされたリソースに基づいて、使用可能な物理的ホストコンピュータシステム内の使用可能なスロットの順位を生成するアルゴリズムを使用してもよい。従って、１つ以上の使用可能なスロットを備えるとともに、要求の中で提供されたハードウェア仕様に正確に合致する物理的ホストコンピュータシステムは、その中に含まれるスロットに対してより高い順位を与えてもよく、この物理的ホストコンピュータシステム内のスロットの中に仮想マシンインスタンスの実体化につながる。しかしながら、スロットあるいは物理的ホストコンピュータシステムが顧客の選好設定または必要条件を収容するのに使用可能でない場合には、管理サブシステムは、リソースの特定のセットに対する要求が選好設定または必要条件のいずれかであるかを判断する（７０８）ように構成されてもよい。顧客要求が仮想マシンインスタンスをサポートする１セットのリソースに対する必要条件を有する場合には、管理サブシステムは、顧客インターフェイスに対して実行可能な命令を送信するように構成されてもよく、顧客インターフェイスによって当該命令が実行された時には、顧客インターフェイスにエラーメッセージを表示させる（７１０）。このエラーメッセージは、リソースが使用不可である旨の情報を含んでもよい。さらに、エラーメッセージは、この後に要求を提起することを顧客に勧めてもよい。従って、管理サブシステムは、顧客からの別の要求を再度受信して（７０２）、上記したプロセスを繰り返してもよい。
【００４５】
上記したように、管理サブシステムは、物理的ホストにおいて既存の実体化された仮想マシンインスタンスを超えるより大きな優先権を要求が有することを決定するように構成されてもよい。このインスタンスでは、管理サブシステムは、要求された仮想マシンインスタンスを実体化するために、異なる使用可能な物理的ホストに既存のインスタンスを移動してもよい。例えば、管理サブシステムは、ハードウェアの選好設定の対象となるインスタンスを新たに使用可能な物理的ホスト・スロットに割り当てるために（７０６）、ハードウェアの選好設定または必要条件を有していない既存インスタンスを物理的ホストから移動するように構成されてもよい。同様に、指定されたハードウェアに対する１セットの必要条件を要求が含んでいる場合、管理サブシステムは、必要ならば、１つだけの選好設定に基づいてハードウェアの選好設定を備えていないすべての既存のインスタンスを移動し、次にホスト上で実体化されたすべての既存のインスタンスを移動してもよい。従って、ある特定のハードウェアに対する必要条件のセットを含む要求は、必要条件のセットを含んでいない物理的ホストの中の任意の既存のインスタンスよりも優先度が高くてもよい。
【００４６】
仮想マシンインスタンスをサポートするリソースの特定のセットに対する顧客要求が、任意に指定可能なハードウェアの選好設定にすぎない場合には、管理サブシステムは、物理的ホストコンピュータシステムの中で１つ以上の準拠しないスロットにインスタンスを割り当てる（７１２）ように構成されてもよい。物理的ホストコンピュータシステムは、顧客が顧客の目的のための仮想マシンインスタンスをまだ利用するように、インスタンスを実体化するのに必要な最小のリソースを備えてもよい。実施形態では、管理サブシステムは、要求された仕様を備えた物理的ホストコンピュータシステムに、一旦それが使用可能になれば、インスタンスが移動されるべきであることを確認する仮想マシンインスタンスに関連したメタデータを更新するように構成されてもよい。従って、一旦理想的な物理的ホストコンピュータシステムが使用可能になれば、仮想マシンインスタンスは自動的に移動されてもよい。
【００４７】
上記したように、管理サブシステムは、仮想コンピュータシステムサービスによって提供された１つ以上の物理的ホストコンピュータシステムを管理するように構成されてもよい。この機能の一部として、管理サブシステムは、物理的ホストコンピュータシステムの各々に含まれた１つ以上の基礎となるスロットを管理するようにさらに構成されてもよい。従って、図８は、少なくとも１つの実施形態に従って、スロット可用性に基づいて仮想マシンインスタンスを移動するプロセス８００の実例である。管理サブシステムは、物理的ホストコンピュータシステムのいずれかが仮想マシンインスタンスの割当に使用され得る空きスロットを備えているかどうか判断するために、物理的ホストコンピュータシステムに連続的に照会するように構成されてもよい。従って、プロセス８００は、１つ以上のスロットが物理的ホストコンピュータシステム上で使用可能かどうかの検出処理８０２を備えてもよい。
【００４８】
物理的ホストコンピュータシステムにおける１つ以上のスロットが使用可能になったことを管理サブシステムが検出した場合には、管理サブシステムは、顧客がリソースの好ましいセットを備えた物理的ホストコンピュータシステムに移動させることを要求したすべての既存の仮想マシンインスタンスを識別するメタデータサービスに照会する（８０４）ように構成されてもよい。上記したように、顧客が仮想マシンインスタンスを作成し且つリソースの特定のセットをインスタンスに割り当てる要求を提起した場合には、管理サブシステムは、リソースの指定されたセットを備えた物理的ホストコンピュータシステムが、現在使用可能でない場合に、インスタンスに関連したメタデータ・フラグを起動してもよい。従って、管理サブシステムは、このメタデータ・フラグを含むインスタンスを探索して、使用可能な物理的ホストコンピュータシステムのスロットとインスタンスとを合致させることを試みてもよい。
【００４９】
いくつかのインスタンスでは、物理的ホストコンピュータシステムのスロットの可用性は１つの仮想マシンインスタンスをサポートするだけの可能性がある。このため、管理サブシステムは、１つの物理的ホストコンピュータシステムから別の物理的ホストコンピュータシステムに１つの仮想マシンインスタンスだけを移動できる可能性がある。従って、プロセス８００は、使用可能な物理的ホストコンピュータシステムのスロットへの移動のために、１つを超える現在の仮想マシンインスタンスについてフラグが立てられているかどうかを判断すること（８０６）を含んでもよい。移動のためにフラグが立てられた１つを超える現在の仮想マシンインスタンスが存在する場合には、移動について仮想マシンインスタンスを選択するために、管理サブシステムが１セットの基準を適用する（８０８）ことが必要な場合がある。例えば、各仮想マシンインスタンスは、作成された時に、異なるインスタンス特性に従って順位付けされてもよい。例えば、仮想マシンインスタンスは、要求されたリソース（例えば、処理能力及び速度、記憶容量、ＲＡＭ割当など）に基づいて順位付けされてもよい。さらに、仮想マシンインスタンスは、仮想コンピュータシステムサービスの顧客の使用量などの奥義の基準に基づいて順位付けされてもよい。このため、より多くの仮想マシンインスタンスを作成し且つ使用した顧客は、より高い順位で任意の新たに作成されたインスタンスに対して報酬を与えられてもよい。上記提供された例は説明の目的のために提供され、及び、仮想マシンインスタンスを順位付けするために利用され得る任意の修正または基準は本開示の範囲内であると考えられることに留意されたい。
【００５０】
一旦管理サブシステムが仮想マシンインスタンスを選択すると、管理サブシステムは、移動のために選択された仮想マシンインスタンスを準備する１つ以上のアクションを行なう（８１０）ように構成されてもよい。図９に関連してより詳細に記述されるように、管理サブシステムは、移動に先立ってその現在の状態を把握するために選択された仮想マシンインスタンスのスナップショットを取得するように構成されてもよい。物理的ホストコンピュータシステムが直近の状態からインスタンスを再開すること及び移動に起因する衝撃を最小化することができるように、その後、スナップショットは目標とされた使用可能なスロットに転送されてもよい。
【００５１】
スナップショットが新たな物理的ホストコンピュータシステムに転送されるとすぐに、管理サブシステムは、インスタンスを一時停止するために、仮想マシンインスタンスがその上に実体化されている物理的ホストコンピュータシステムに１つ以上の実行可能な命令を送信してもよい。一旦、仮想マシンインスタンスが一時停止されて、且つ、さらなる操作がインスタンス内で行なわれていない場合には、管理サブシステムは、仮想マシンインスタンスを新たな物理的ホストコンピュータシステム・スロットに移動して（８１２）、顧客による新たな使用のためにそれを活性化してもよい。仮想マシンインスタンスの移動は物理的ホストコンピュータシステム上の新しく開かれたスロットを残すので、管理サブシステムは、再びこの可用性を検出してもよく（８０２）、メタデータサービスに照会して（８０４）移動のために任意の他のインスタンスを割り当てる。さらに、管理サブシステムは、定期的にに物理的ホストコンピュータシステムを検査してもよく、上記したように、または顧客が削除を要求した仮想マシンインスタンスのインスタンスにおいてスロットの可用性を検出する（８０２）。
【００５２】
上記したように、管理サブシステムは、顧客が要求を提起していた場合には、仮想マシンインスタンスを移動するように構成されてもよく、仮想マシンインスタンスの生成の前またはその後に、リソースのセットをインスタンスに割り当てる。従って、図９は、少なくとも１つの実施形態に従って、仮想マシンインスタンスを準備し且つ移動するプロセス９００の実例である。プロセス９００では、管理サブシステムは、移動を要求するインスタンスを識別する（９０２）ように構成されてもよい。このことは、多くの方法で行われる。例えば、図８に示されるように、管理サブシステムは、基準のセットに基づいて複数のインスタンスから１つのインスタンスを選択することにより、移動のための仮想マシンインスタンスを識別してもよい。複数のインスタンスは、これらのインスタンスが追加ホストのリソースを求める顧客の要求の対象となるものであると識別する関連したメタデータ・フラグを備えた１つ以上のインスタンスを含んでもよい。あるいは、顧客は、リソースが現在使用可能な場合には、直ちに完了される既存の仮想マシンインスタンスを移動する要求を提起してもよい。
【００５３】
一旦、管理サブシステムが移動を要求する仮想マシンインスタンスを識別したときは、管理サブシステムは、仮想マシンインスタンスに割り当てられたリソースを評価する（９０４）ように構成されてもよい。上記したように、仮想マシンインスタンスは、物理的ホストコンピュータシステムの中で実体化されてもよい。物理的ホストコンピュータシステムは、複数のハードウェア構成要素を備えてもよい。例えば、物理的ホストコンピュータシステムは、継続的に仮想マシンインスタンスを記憶し且つ実体化するように構成された１つ以上のプロセッサ、いくつかのＲＡＭチップセット、及び１つ以上の記憶装置（例えば、半導体駆動装置または磁気ディスク駆動装置）を含んでもよい。各物理的ホストコンピュータシステムは、１つ以上の仮想マシンインスタンスを実体化するために１つ以上のスロットを備えるように構成されてもよい。これらのスロットは、その中に実体化された仮想マシンインスタンスの各々に性能メトリックスの平均セットを割り当てる役目を果たす。従って、管理サブシステムは、仮想マシンインスタンスが現在実体化された物理的ホストコンピュータシステムの現在のハードウェア仕様、及びインスタンスに割り当てられたスロットの数を決定するように構成されてもよい。
【００５４】
管理サブシステムが、一旦、移動を要する仮想マシンインスタンス及びインスタンスを移動させるに必要なリソースを識別したときは、管理サブシステムは、仮想マシンインスタンスを割り当てるために物理的ホストコンピュータシステムの中の１つ以上の目標スロットを識別する（９０６）ように構成されてもよい。図４に示されるように、各物理的ホストコンピュータシステムは、異なるハードウェア仕様、及び従って、様々なコンピュータ処理能力を備えてもよい。物理的ホストコンピュータシステムがより旧式のまたは時代遅れのハードウェアを備えている場合には、物理的ホストコンピュータシステムは、リソース集約型仮想マシンインスタンスを実体化するために、より少数のスロットを備えてもよい。あるいは、より大きな処理能力及び記憶容量を提供するために物理的ホストコンピュータシステムがより新しい技術を有する場合には、物理的ホストコンピュータシステムは、割当のためにより多くのスロットを備えてもよい。さらに、スロット・サイズは物理的ホストコンピュータシステムの全体にわたって一定でなくてもよい。例えば、スロットがインスタンスに割り当てられるリソースのある割合に相当する場合、１つの物理的ホストコンピュータシステムの中のスロットは、異なる物理的ホストコンピュータシステムの中のスロットより大きな量のリソースに相当してもよい。従って、管理サブシステムは、仮想マシンインスタンスを割り当てることに必要な目標とされたスロットがどれだけ必要であるかを決定するために、目標とされたスロットを検査するように構成されてもよい。
【００５５】
最小の衝撃及び中断を伴う既存の仮想マシンインスタンスを移動させるために、管理サブシステムは、仮想マシンインスタンスのスナップショットを得る（９０８）ように構成されてもよい。スナップショットは、実行再開用のエントリ・ポイントを識別する情報を含め、所定の時間における仮想マシンインスタンスの現在の動作状態を含んでもよい。従って、仮想マシンインスタンスのスナップショットの生成は、インスタンスの顧客利用で最小の干渉を提供し得る。仮想コンピュータシステムサービスは、システム故障に起因するデータまたは計算処理のロスを防ぐために、仮想マシンインスタンスの各々のスナップショットを周期的に生成するための１つ以上のポリシーを現在実施してもよい。あるいは、スナップショットは顧客または管理サブシステム・コマンドで作成されてもよい。最初のスナップショットが生成された後、それに続くスナップショットは、生成されるデータの量を減らして、追加のコンピュータ処理及び最初のスナップショットの後に生成されたデータだけを含むようにしてもよい。従って、管理サブシステムは、インスタンスのスナップショットを得るためのコマンドを実行するように構成されてもよいし、または、仮想マシンインスタンスのスナップショットを得るためにデータ記憶装置を参照するように構成されてもよい。
【００５６】
一旦、管理サブシステムが、移動された仮想マシンインスタンスと関係する１つ以上のスナップショットを得たときは、管理サブシステムは、目標とされたスロットに１つ以上のスナップショットを転送する（９１０）ように構成されてもよい。上記したように、管理サブシステムは、移動に関して物理的ホストコンピュータシステムの中で仮想マシンインスタンスが占めるスロットがどれだけの数または部分であるかを決定するように構成されてもよい。従って、管理サブシステムは、移動され仮想マシンインスタンスのために予約されたスロットに１つ以上のスナップショットを転送するように構成されてもよい。
【００５７】
管理サブシステムは、移動プロセスを継続するために、物理的ホストコンピュータシステムの中で作動する仮想マシンインスタンスを一時停止する（９１２）ように構成されてもよい。管理サブシステムは、この時間中に、仮想マシンインスタンスにおいて顧客が任意の追加の読出操作または書込操作を行うのを防止してもよい。さらに、管理サブシステムは、顧客インターフェイスによって実行可能な、１つ以上のコマンドを送信するように構成されてもよい。その場合には、顧客インターフェイスに仮想マシンインスタンスの一時停止に起因する一時停止時間の長さを詳述する通知を顧客に対して表示させるであろう。この有益な通知は、顧客が移動のために任意のデータを準備することまたは一時停止時間の期間中に不測事態対応計画を実行することを可能にする。実施形態では、管理サブシステムは、移動の後に、仮想マシンインスタンスが第２の物理的ホストコンピュータシステムの中で再開されてもよいように、仮想マシンインスタンスを一時停止する（９１２）代わりに、仮想マシンインスタンスを再起動するように構成されてもよい。言いかえれば、再起動プロセスは、仮想マシンインスタンスをシャットダウンすること、及び別のコンピュータシステム上の仮想マシンインスタンスを再開することを含んでもよい。あるいは、管理サブシステムは、移動プロセスを終える前に顧客からの仮想マシンインスタンスの選択的なシャットダウンを待つように構成されてもよい。
【００５８】
仮想マシンインスタンスが一時停止された後に、管理サブシステムは、ここで、新たな物理的ホストコンピュータシステム上の１つ以上の目標スロットにおける仮想マシンインスタンスを終了（９１４）し始めてもよい。このことは、目標とされたホストに先のスナップショットを転送した後、且つ、仮想マシンインスタンスを一時停止する前に、仮想コンピュータシステムサービスによって得られたであろう追加のスナップショットを転送することを含んでもよい。さらに、管理サブシステムは、目標とされたスロットで使用可能なスナップショットを使用して、これらの目標とされたスロット上の仮想マシンインスタンスを復活するように構成されてもよい。一旦、仮想マシンインスタンスが新たな物理的ホストコンピュータシステム上で復活されたときは、管理サブシステムは、先の物理的ホストコンピュータシステムから古い仮想マシンインスタンスを分離し、それを削除することを始めてもよい。それにより、先の物理的ホストコンピュータシステム上の物理的ホストコンピュータシステムのスロットが使用可能になる。
【００５９】
一旦、管理サブシステムが目標とされたスロットでインスタンスを終了させたときは、管理サブシステムは、新たな物理的ホストコンピュータシステムの中の目標とされたスロット上の仮想マシンインスタンスを活性化（９１６）してもよい。従って、管理サブシステムは、１つ以上の実行可能な命令を送信して、顧客インターフェイスによって実行された時に、顧客インターフェイスに仮想マシンインスタンスが今使用可能であることを顧客に対して通知させるように構成されてもよい。従って、顧客は、顧客のニーズに従って、仮想マシンインスタンスとの顧客の対話を再開するために顧客インターフェイス及び管理サブシステムを利用してもよい。
【００６０】
上記したように、顧客は、あるハードウェア仕様が仮想マシンインスタンスをサポートすることを要求するために、仮想コンピュータシステムサービスによって提供された顧客インターフェイス及び管理サブシステムを利用してもよい。従って、図１０は、少なくとも１つの実施形態に従って、既存の仮想マシンインスタンスに対するハードウェア割当の要求を処理するためのプロセス１０００の実例である。上記記述されたように、管理サブシステムは、プロセス１０００を行なうように構成されてもよい。そのことは、既存の仮想マシンインスタンスに対してハードウェア割当の要求を受信する（１００２）ことを含んでもよい。顧客は、サービスについての１つ以上の適切に構成されたＡＰＩコールを作成するために、顧客インターフェイスを使用してこの要求を提起してもよい。従って、その要求は、解決を決定するために管理サブシステムによって処理されてもよい。
【００６１】
一旦、管理サブシステムが要求を受信したときは、管理サブシステムは、要求されたハードウェアを備えた物理的ホストコンピュータシステムの中で既存の仮想マシンインスタンスが現在実体化されているかどうかを判断（１００４）してもよい。要求されたハードウェアを備えた物理的ホストコンピュータシステムの中で仮想マシンインスタンスが現在実体化されている場合には、管理サブシステムは、顧客インターフェイスに対して１つ以上のコマンドを送信し、顧客インターフェイスによって実行された時は、顧客インターフェイスに成功メッセージを表示（１００６）させてもよい。成功メッセージは、要求されたハードウェア仕様を備えた物理的ホストコンピュータシステムに対して仮想マシンインスタンスが現在割り当てられたことまたは単に要求が成功裡に完了したことの顧客に対する有益な通知を含んでもよい。
【００６２】
要求されたハードウェア仕様を備えた物理的ホストコンピュータシステムに対して仮想マシンインスタンスが割り当てられない場合、管理サブシステムは、要求を満たすために現在使用可能な要求されたハードウェア仕様を備えた物理的ホストコンピュータシステムが存在するかどうかさらに判断する（１００８）ように構成されてもよい。上記したように、各物理的ホストコンピュータシステムは、仮想マシンインスタンスを実体化するために使用される１つ以上のスロットを備えてもよい。各スロットは、そこに実体化された仮想マシンインスタンスの各々に性能メトリックスの平均セットを割り当てる役目を果たしてもよい。従って、管理サブシステムは、物理的ホストコンピュータシステムが要求されたハードウェア仕様を備えているかどうか、及び、仮想マシンインスタンスを実体化し且つサポートするのに必要なスロットを備えているかどうかを判断するために、使用可能なスロットを備えているのがどの物理的ホストコンピュータシステムであるかを評価するように構成されてもよい。
【００６３】
要求されたハードウェア仕様を含む物理的ホストコンピュータシステムが使用可能な場合、管理サブシステムは、物理的ホストコンピュータシステムの中の１つ以上のスロットに仮想マシンインスタンスを割り当ててもよい（１０１０）。図９に示されるように、管理サブシステムは、既存の仮想マシンインスタンスのために１つ以上のスナップショットを得るように、且つ、物理的ホストコンピュータシステムの中で使用可能なスロットにこれらのスナップショットを転送するように構成されてもよい。続いて、管理サブシステムは、仮想マシンインスタンスを一時停止し、且つ、新たな物理的ホストコンピュータシステム上の仮想マシンインスタンスを使用のために準備してもよい。管理サブシステムは、先の物理的ホストコンピュータシステムから仮想マシンインスタンスを削除し、且つ、新たな物理的ホストコンピュータシステム上の仮想マシンインスタンスを活性化するように構成されてもよい。一旦、仮想マシンインスタンスが使用できるようになったときは、管理サブシステムは、顧客インターフェイスに対して１つ以上のコマンドを送信して、顧客インターフェイスによって実行された時、顧客インターフェイスに移動が成功したというメッセージを表示させる（１００６）ように構成されてもよい。さらに、メッセージは、仮想マシンインスタンスが今使用できる状態にあると顧客に通知することの有益な通知を含んでもよい。
【００６４】
管理サブシステムは、物理的ホストコンピュータシステムが要求を満たすのには現在使用可能でない場合に、顧客の要求が選好設定または必要条件であるかどうかを判断する（１０１２）ように構成されてもよい。図７に関して上記したように、顧客の要求がある特定のハードウェア仕様を備えた物理的ホストコンピュータシステムに対する選好設定である場合、仮想マシンインスタンスは、仮想マシンインスタンスを実体化するのに必要な最小のハードウェア仕様を少なくとも備えた物理的ホストコンピュータシステムの中で実体化されてもよい。さらに、管理サブシステムは、要求されたハードウェア仕様を備えた物理的ホストコンピュータシステムが使用可能になる場合に、仮想マシンインスタンスが移動のために考慮されるように、仮想マシンインスタンスに関連したメタデータ・フラグを修正するように構成されてもよい。従って、同様の方法で、顧客がある特定のハードウェア仕様を備えた物理的ホストコンピュータシステムに既存の仮想マシンインスタンスを移動させる要求を提起した場合には、管理サブシステムは、要求された物理的ホストコンピュータシステムが使用可能になる場合に、仮想マシンインスタンスが移動のために考慮されるように、仮想マシンインスタンスに関連したメタデータ・フラグを起動するように構成されてもよい。
【００６５】
しかしながら、顧客の要求が選好設定ではなく必要条件である場合には、管理サブシステムは、１つ以上の実行可能な命令を顧客インターフェイスに送信して、顧客インターフェイスによって実行された時、顧客インターフェイスにエラーメッセージを表示させる（１０１４）ように構成されてもよい。エラーメッセージは、例えば、使用可能な要求されたハードウェア仕様を備えた物理的ホストコンピュータシステムの可用性の不足及び顧客にとって使用可能な選択肢オプションを記述する１つ以上の有益な通知を含んでもよい。従って、管理サブシステムは、顧客があるハードウェア仕様を備えた物理的ホストコンピュータシステムの顧客の要求を修正し、且つ要求を提起することを可能にするように構成されてもよい。従って、管理サブシステムは、ある特定のハードウェア仕様を備えた物理的ホストコンピュータシステムに既存のインスタンスを移動するための修正された要求を再度受信（１００２）してもよい。
【００６６】
本開示の実施形態は次の付記を考慮して記述することができる。
１． 仮想マシンインスタンスを移動するためのコンピュータ実施方法であって、
仮想コンピュータシステムサービスの１つ以上のコンピュータシステムであって、実行可能な命令で構成された前記１つ以上のコンピュータシステムの制御の下に、
顧客からの選好設定のセットであって、仮想マシンインスタンスを実体化するために１つ以上のハードウェア仕様を含む前記選好設定のセットを受信すること、
第１の物理的ホストコンピュータシステムであって、前記選好設定のセットに準拠しないハードウェアを備えた前記第１の物理的ホストコンピュータシステムの中で前記仮想マシンインスタンスを実体化すること、
第２の物理的ホストコンピュータシステムであって、前記選好設定のセットに準拠するハードウェアを備えた前記第２の物理的ホストコンピュータシステムの中で使用可能な容量を検出すること、及び
前記第２の物理的ホストコンピュータシステムの中で前記使用可能な容量を検出したことに部分的に起因して前記第１の物理的ホストコンピュータシステムから前記第２の物理的ホストコンピュータシステムに前記仮想マシンインスタンスを移動させることを含む、
前記コンピュータ実施方法。
２． 前記選好設定のセットは、仮想マシンインスタンスを設定する要求と同時に受信される、
付記１に記載の前記コンピュータ実施方法。
３． 仮想マシンインスタンスを設定する前記要求が、前記選好設定のセットに準拠しないハードウェアを使用して前記仮想マシンインスタンスをある時間の長さだけ実体化することによって完了できることの表示を含む、
付記２に記載の前記コンピュータ実施方法。
４． 前記仮想マシンインスタンスの選択的シャットダウンを検出すること、及び
前記選択的シャットダウンから前記仮想マシンインスタンスを復元する前記第２の物理的ホストコンピュータシステム上で前記仮想マシンインスタンスを再開することを含み、前記第１の物理的ホストコンピュータシステムから前記第２の物理的ホストコンピュータシステムに前記仮想マシンインスタンスを移動することをさらに含む、
前記先行する付記のいずれか１つに記載の前記コンピュータ実施方法。
５． 前記選好設定のセットは、前記第１の物理的ホストコンピュータシステムから前記第２の物理的ホストコンピュータシステムに既存の仮想マシンインスタンスを移動する要求の一部である、
前記先行する付記のいずれか１に記載の前記コンピュータ実施方法。
６． 前記選好設定のセットに準拠する物理的ホストコンピュータシステムのセットにおける使用可能でない容量に少なくとも部分的に起因して前記既存の仮想マシンインスタンスを移動する要求を拒否することをさらに含む、
前記先行する付記のいずれか１に記載の前記コンピュータ実施方法。
７． 移動することが、前記仮想マシンインスタンスが前記第２の物理的ホストコンピュータシステム上で再開するように、前記第２の物理的ホストコンピュータシステムの使用可能な容量を検出したときに前記仮想マシンインスタンスを再起動することを含む、
前記先行する付記のいずれか１に記載の前記コンピュータ実施方法。
８． 仮想マシンインスタンスを移動するためのコンピュータ実施方法であって、
実行可能な命令で構成された１つ以上のコンピュータシステムの制御の下に、
第１のコンピュータシステムであって、仮想マシンインスタンスを実体化するための１つ以上のハードウェア仕様に対する選好設定に準拠しない１つ以上の構成要素を備えた前記第１のコンピュータシステムの中に前記仮想マシンインスタンスを実体化すること、
前記選好設定に準拠する第２のホストコンピュータシステム内の状態を検出すること、及び
前記第２のホストコンピュータシステム内の状態を検出したことに少なくとも部分的に起因して前記第１のコンピュータシステムから前記第２のホストコンピュータシステムに前記仮想マシンインスタンスを移動することを含む、
前記コンピュータ実施方法。
９． 前記状態は、前記仮想マシンインスタンスを実体化するための前記第２のホストコンピュータシステム内の容量の可用性に少なくとも部分的に基づく、
付記８に記載の前記コンピュータ実施方法。
１０． 前記選好設定は、仮想マシンインスタンスの実体化のための１つ以上の要求が提起されることができるインターフェイスを介して受信される、
付記８または９に記載の前記コンピュータ実施方法。
１１． 前記選好設定は、前記１つ以上のハードウェア仕様を備えたホストコンピュータシステムに少なくとも部分的に基づいて前記仮想マシンインスタンスの移動のための必要条件を含む、
付記８〜１０のいずれか１に記載の前記コンピュータ実施方法。
１２． 前記仮想マシンインスタンスを移動することは、前記仮想マシンインスタンスを再起動することなく行われる、
付記８〜１１のいずれか１に記載の前記コンピュータ実施方法。
１３．前記第１のコンピュータシステムの中で前記仮想マシンインスタンスを実体化することは、前記仮想マシンインスタンスを設定する要求であって、前記選好設定を含む前記要求を満たすために行われる、
付記８〜１２のいずれか１に記載の前記コンピュータ実施方法。
１４． 複数の仮想マシンインスタンスのタイプであって、その１つ以上が任意に指定できるハードウェア選好設定によって要求されることが可能である前記複数の仮想マシンインスタンスのタイプの中から仮想マシンインスタンスの実体化のための１つ以上の要求が提起されることが可能なインターフェイス、
仮想マシンインスタンスを実体化するために一括して構成されたハードウェアの構成要素を備えた１つ以上のホストコンピュータシステム、及び
前記インターフェイスを通して受信された要求を処理するように構成された管理サブシステムを備え、ここで、
前記１つ以上のホストコンピュータシステムの中の第１のホストコンピュータシステムであって、前記仮想マシンインスタンスを実体化するための１つ以上のハードウェア仕様について前記任意に指定できるハードウェアの選好設定に準拠しない１つ以上の構成要素を備えた前記第１のコンピュータシステムの中で前記仮想マシンインスタンスが実体化され、及び
前記第１のホストコンピュータシステムから前記任意に指定できるハードウェアの選好設定に準拠する第２のホストコンピュータシステムに前記仮想マシンインスタンスが移動される、
コンピュータシステム。
１５． 前記第２のホストコンピュータシステムの中の１つ以上のスロットであって、仮想マシンインスタンスに割り当てられる容量を備えた前記１つ以上のスロットの可用性に少なくとも部分的に基づいて前記仮想マシンインスタンスが移動される、
付記１４に記載の前記コンピュータシステム。
１６． 前記管理サブシステムは、前記任意に指定できるハードウェアの選好設定に少なくとも部分的に基づいて、前記第２のホストコンピュータシステムから準拠しないホストコンピュータシステムに既存の仮想マシンインスタンスを移動するようにさらに構成される、
付記１４または１５に記載のコンピュータシステム。
１７． 前記仮想マシンインスタンスは、使用可能な配置領域が前記任意に指定できるハードウェアの選好設定を満たすかどうかに少なくとも部分的に基づく前記１つ以上のホストコンピュータシステム内の前記使用可能な配置領域のセットの順位に少なくとも部分的に基づいて、前記第２のホストコンピュータシステムに移動される、
付記１４〜１６のいずれか１に記載のコンピュータシステム。
１８． 前記仮想マシンインスタンスは、前記任意に指定できるハードウェアの選好設定を満たすホストコンピュータシステムのセットの中の前記仮想マシンインスタンスに対する容量の不足の結果として、前記任意に指定できるハードウェアの選好設定に準拠しない前記第１のホストコンピュータシステム内に実体化される、
付記１４〜１７のいずれか１に記載のコンピュータシステム。
１９． 前記仮想マシンインスタンスは、前記仮想マシンインスタンスを再起動することなく、前記第１のホストコンピュータシステムから前記第２のホストコンピュータシステムに移動される、
付記１４〜１８のいずれか１に記載のコンピュータシステム。
２０． １つ以上のコンピュータ可読記憶媒体であって、その中に集約的に記憶された命令がコンピュータシステムの１つ以上のプロセッサによって実行されたときに、前記コンピュータシステムに仮想マシンインスタンスを実体化するための１つ以上のハードウェア仕様を含む選好設定のセットを満たすために、前記コンピュータシステムに、少なくとも、
前記１つ以上のハードウェア仕様に準拠しない第１のホストコンピュータシステムを使用して前記仮想マシンインスタンスをある時間の長さだけ実装させ、且つ
前記第１のホストコンピュータシステムから前記１つ以上のハードウェア仕様に準拠する第２のホストコンピュータシステムに前記仮想マシンインスタンスを移動させる、
前記コンピュータ可読記憶媒体。
２１． 移動することは、使用可能なスロットに対して基礎となるハードウェア仕様に少なくとも部分的に基づく前記仮想マシンインスタンスに対する前記使用可能なスロットの順位に少なくとも部分的に基づいて、前記第２のホストコンピュータシステムを選択することを含む、
付記２０に記載の前記１つ以上のコンピュータ可読記憶媒体。
２２． 前記選好設定のセットは、前記仮想マシンインスタンスを設定する要求の中で受信される、
付記２０または２１に記載の前記１つ以上のコンピュータ可読記憶媒体。
２３． 前記命令は、さらに、仮想コンピュータシステムの実体化のための容量が使用可能でない１以上のハードウェア仕様を指定する要求の結果として、別の仮想マシンインスタンスを設定する要求を前記コンピュータシステムに拒否させる、
付記２０〜２２のいずれか１に記載の前記１つ以上のコンピュータ可読記憶媒体。
２４． 前記命令は、さらに、前記コンピュータシステムに前記仮想マシンインスタンスの選択的シャットダウンを検出させ、且つ
前記仮想マシンインスタンスが前記第２のホストコンピュータシステム上で再開するように前記仮想マシンインスタンスを移動することが発生する、
付記２０〜２３のいずれか１に記載の前記１つ以上のコンピュータ可読記憶媒体。
２５． 前記命令は、さらに、前記仮想コンピュータシステムに、前記第１のホストコンピュータシステムから前記第２のホストコンピュータシステムへの前記仮想コンピュータシステムを再起動させる、
付記２０〜２４のいずれか１に記載の前記１つ以上のコンピュータ可読記憶媒体。
【００６７】
図１１は、様々な実施形態に従って、態様を実施するための例示環境１１００の態様を例示する。ウェブ・ベースの環境が説明の目的のために使用されるが、様々な実施形態を実施するために適宜異なる環境が使用されてもよいことは理解されるであろう。環境は電子クライアント装置１１０２を含んでおり、それは適切なネットワーク１１０４を介して要求、メッセージまたは情報を送信及び受信するため、且つ装置の顧客に情報を返送するために操作可能な任意の適切な装置を含んでもよい。そのようなクライアント装置の例はパーソナル・コンピュータ、携帯電話、ハンディ型メッセージ装置、ラップトップ・コンピュータ、タブレット・コンピュータ、セットトップ・ボックス、情報携帯端末、内蔵型コンピュータシステム、電子ブックリーダなどを含んでいる。ネットワークは、イントラネット、インターネット、携帯電話ネットワーク、ローカル・エリア・ネットワーク若しくは任意の他のそのようなネットワークまたはその組み合わせを含め、任意の適切なネットワークを含むことができる。そのようなシステムに使用される構成要素は、ネットワーク及び（または）選択された環境のタイプに少なくとも一部を依存することができる。そのようなネットワークを介して通信するためのプロトコル及び構成要素は周知であり、ここでは詳細に説明されない。ネットワークを介する通信は、有線接続または無線接続及びその組み合わせによって可能にすることができる。この例において、ネットワークは、環境が要求を受信するため及びそれに応答したコンテンツを提供するためにウェブサーバ１１０６を含むため、インターネットを含むが、当業者にとって明らかなように、他のネットワークについては、同様の目的に役立つ代替装置を使用することができる。
【００６８】
実例となる環境は、少なくとも１つのアプリケーションサーバ１１０８及びデータ記憶装置１１１０を含んでいる。いくつかのアプリケーションサーバ、層または他の素子、プロセスまたは構成要素が存在することができ、それらは連結されるかまたは別様に構成されることができ、適切なデータ記憶装置からデータを取得するなどのタスクを行うために対話することができることは理解されるはずである。サーバは、ここで使用される際、ハードウェア装置または仮想コンピュータシステムなどの様々な方法で実施されてもよい。いくつかの状況では、サーバは、コンピュータシステム上で実行されるプログラミング・モジュールを指してもよい。ここに使用される用語「データ記憶装置」は、データを記憶し、データにアクセスし、且つデータを検索することが可能な任意の装置または装置の組み合わせを指し、それは、任意の標準の、分散された及び集団化された環境におけるデータ・サーバ、データベース、データ記憶装置、及びデータ記憶媒体の任意の組み合わせ及び数を含んでもよい。アプリケーションサーバは、データ・アクセス及びアプリケーション用のビジネス・ロジックのうちのいくらかを（大多数さえも）取り扱うクライアント装置のために、１つ以上のアプリケーションの態様を実行するのに必要な場合データ記憶装置に統合するため、任意の適切なハードウェア及びソフトウェアを含むことができる。アプリケーションサーバは、データ記憶装置と協働するアクセス・コントロールサービスを提供してもよいし、また、ユーザに転送されるテキスト、グラフィックス、オーディオ及び（または）ビデオなどのコンテンツをを生成することができる。それは、この例において、ハイパーテキスト・マークアップ言語（「ＨＴＭＬ」）、拡張可能マークアップ言語（「ＸＭＬ」）または別の適切な構造化された言語の形態でウェブサーバによってユーザに供給されてもよい。すべての要求及び応答の取り扱い、ならびにクライアント装置１１０２とアプリケーションサーバ１１０８との間のコンテンツの配達は、ウェブサーバによって取り扱うことができる。この中で説明される構造化されたコードは、任意の適切な装置またはこの中の別のところで説明されるようなホストマシン上で実行されることができるので、ウェブサーバ及びアプリケーションサーバは必ずしも必要でなく、例示の構成要素だけであることは理解されるはずである。さらに、単一の装置によって行なわれることとして、ここで説明される操作は、文脈の中で明確にことわらない限り、分散型システムの形態を形成し得る多数の装置によって集約的に行われてもよい。
【００６９】
データ記憶装置１１１０は、本開示の特定の態様に関係のあるデータの格納のために、いくつかの個別のデータテーブル、データベースまたは他のデータ記憶機構及びデータ記憶媒体を含むことができる。例えば、例示されたデータ記憶装置は、製造データ１１１２及び顧客情報１１１６を記憶するための機構を含んでもよい。それは製造側にコンテンツを提供するために使用されることができる。データ記憶装置はさらに、ログ・データ１１１４を記憶するためにある機構を含むように示されている。それは報告、分析または他のそのような目的のために使用されることができる。ページ画像情報のため及び権利情報にアクセスするためなど、データ記憶装置の中に記憶されることが必要な多くの他の態様が存在でき、これはデータ記憶装置１１１０の中の上記適宜リストされた任意の機構または付加の機構に記憶され得ることが理解されるはずである。データ記憶装置１１１０は、関連するロジックによって、アプリケーションサーバ１１０８からの命令を受信するように、及びその命令に応答するデータを取得し、更新し、またはさもなければ処理するように操作可能である。１つの例において、ユーザは、ユーザによって運用された装置によって、ある特定のタイプのアイテムのための検索要求を提起してもよい。この場合において、データ記憶装置は、ユーザの同一性を確認するために顧客情報にアクセスしてもよく、そのタイプのアイテムに関する情報を得るためにカタログ詳細情報にアクセスすることができる。その後、情報は、例えばユーザ装置１１０２上のブラウザによって顧客が見ることができるウェブ・ページ上でリストする結果において、顧客に返すことができる。興味のある特定のアイテムのための情報は、ブラウザの専用ページまたはウィンドウの中で見ることができる。しかしながら、本開示の実施形態はウェブ・ページの文脈に必ずしも制限されず、全体として要求を処理することにもっと一般的に適用でき、この場合には、要求は必ずしもコンテンツに関する要求である必要はないことに留意されたい。
【００７０】
各サーバは、典型的には、そのサーバの一般管理及び操作のための実行可能なプログラム命令を提供するオペレーションシステムを含み、及び、典型的には、サーバのプロセッサによって実行された時に、サーバがその本来の機能を行なうことを可能にする命令を記憶するコンピュータ可読記憶媒体（例えば、ハードディスク、ランダム・アクセス・メモリ、読出専用メモリなど）を含む。サーバのオペレーティング・システム及び一般的な機能についての適切な実装は公知であるかまたは市販されており、また、特にここの開示に照らして、当業者によって容易に実装される。
【００７１】
１つの実施形態における環境は、１つ以上のコンピュータ・ネットワークまたは直接接続を使用して通信リンクを介して相互接続されたいくつかのコンピュータシステム及び構成要素を利用する分散型のコンピュータ処理環境である。しかしながら、そのようなシステムが図１１で示されたものより少ない数または多い数の構成要素を備えたシステムにおいて同様にうまく作動できることは、当業者によって認められる。従って、図１１の中のシステム１１００の描写は、本質的に実例として見なされるべきであり、且つ、開示の範囲を制限するべきではない。
【００７２】
様々な実施形態は、さらに、実に様々な操作環境において実施することができ、ある場合には、多くのアプリケーションのいずれをも運用するために使用することができる１つ以上のユーザコンピュータ、コンピュータ処理装置または処理装置を含むことができる。ユーザ装置またはクライアント装置は、標準オペレーティング・システムを実行するデスクトップ・コンピュータ、ラップトップ・コンピュータまたはタブレット型コンピュータなどの多くの汎用パーソナル・コンピュータのいずれをも含むことができ、ならびにモバイル・ソフトウェアを実行し且つネットワーキング・プロトコル及びメッセージング・プロトコルをサポートすることができる携帯電話装置、無線通信装置、及びハンディ型装置を含むことができる。このようなシステムはさらに、任意の様々な市販のオペレーティング・システム及び開発及びデータベース管理などの目的のための他の既知のアプリケーションを実行する多くのワークステーションを含むことができる。これらの装置はさらに、ダミー端末、シン・クライアント、ゲーム・システム、及びネットワークを介して通信することができる他の装置などの他の電子装置を含むことができる。
【００７３】
本開示の様々な実施形態は、伝送制御プロトコル／インターネット・プロトコル（「ＴＣＰ／ＩＰ」）、開放型システム間相互接続（「ＯＳＩ」）モデルの様々な層の中で作動するプロトコル、ファイル転送プロトコル（「ＦＴＰ」）、ユニバーサル・プラグ・アンド・プレイ（「ＵｐｎＰ」）、ネットワーク・ファイル・システム（「ＮＦＳ」）、コモン・インターネット・ファイルシステム（「ＣＩＦＳ」）及びアップル・トークなどの任意の様々な市販のプロトコルを使用する通信をサポートするために、当業者によく知られている少なくとも１つのネットワークを利用する。ネットワークは、例えば、ローカル・エリア・ネットワーク、広域ネットワーク、仮想プライベート・ネットワーク、インターネット、イントラネット、エクストラネット、公衆交換電話網、赤外線ネットワーク、無線ネットワーク及びその任意の組み合わせであり得る。
【００７４】
ウェブサーバを利用する実施形態では、ウェブサーバは、ハイパーテキスト転送プロトコル（「ＨＴＴＰ」）サーバ、ＦＴＰサーバ、コモン・ゲートウエイ・インターフェイス（「ＣＧＩ」）サーバ、データ・サーバ、Ｊａｖａ（登録商標）サーバ及びビジネス・アプリケーション・サーバを含む任意の様々なサーバまたは中間層アプリケーションを実行することができる。サーバは、さらに、Ｊａｖａ（登録商標）、Ｃ、Ｃ＃若しくはＣ＋＋などの任意のプログラミング言語、または、Ｐｅｒｌ、Ｐｙｔｈｏｎ若しくはＴＣＬのみならず、その組み合わせの任意のスクリプト言語で書かれた１つ以上のスクリプトまたはプログラムとして実装されてもよい１つ以上のウェブ・アプリケーションを例えば実行することによって、ユーザ装置からの応答要求の中のプログラムまたはスクリプトを実行することができる。サーバは、さらに、限定はされないが、Ｏｒａｃｌｅ（登録商標）、Ｍｉｃｒｏｓｏｆｔ（登録商標）、Ｓｙｂａｓｅ（登録商標）及びＩＢＭ（登録商標）から市販されているデータベース・サーバを含んでもよい。
【００７５】
環境は、上記したように、様々なデータ記憶装置及び他のメモリ及び記憶媒体を含むことができる。これらは、１つ以上のコンピュータに近い（及び（若しくは）中に常駐した）記憶媒体上またはネットワークにわたる任意の若しくはすべてのコンピュータから離れた記憶媒体上など、様々な位置に存在することができる。実施形態の特定のセットでは、情報は、当業者によく知られているストレージ・エリア・ネットワーク（「ＳＡＮ」）に存在してもよい。同様に、コンピュータ、サーバ若しくは他のネットワーク・デバイスに属する機能を行なうために必要な任意のファイルも、適宜、ローカルに及び（または）遠隔的に記憶されてもよい。システムがコンピュータ化された装置を含んでいる場合、そのような各装置はバス介して電気的に接続されるハードウェア構成要素を含んでいてもよく、それら構成要素には、例えば、少なくとも１つの中央処理装置（「ＣＰＵ」または「プロセッサ」）を含む構成要素、少なくとも１つの入力装置（例えば、マウス、キーボード、コントローラ、タッチ・スクリーンまたはキーパッド）及び少なくとも１つの出力装置（例えば、ディスプレイ装置、プリンタまたはスピーカ）が含まれる。そのようなシステムは、さらに、ディスク駆動装置、光記憶装置などの１つ以上の記憶装置、及びランダム・アクセス・メモリ（「ＲＡＭ」）または読出専用メモリ（「ＲＯＭ」）などの半導体記憶装置、ならびにリムーバブル媒体装置、メモリカード、フラッシュカードなどを含んでもよい。
【００７６】
そのような装置は、さらに、コンピュータ可読記憶媒体リーダ、通信装置（例えば、モデム、（無線または有線の）ネットワーク・カード、赤外線通信装置など）及び上記したような作業メモリを含むことができる。コンピュータ可読記憶媒体リーダは、遠隔記憶装置、ローカル記憶装置、固定記憶装置、及び（または）リムーバブル記憶装置のみならず、一時的及び（または）より永久的にコンピュータ可読情報を含み、記憶し、送信し及び検索するための記憶媒体を代表するコンピュータ可読記憶媒体に接続されることができ、またはそれらを受容するように構成されることができる。システム及び様々な装置は、さらに典型的には、オペレーティング・システム及びクライアント・アプリケーション若しくはウェブ・ブラウザなどのアプリケーション・プログラムを含め、少なくとも１つの作業記憶装置内に配置された多くのソフトウェア・アプリケーション、モジュール、サービスまたは他の構成要素を含む。他の実施形態が上記した実施形態から多数のバリエーションを含んでもよいことは認識されるべきである。例えば、カスタマイズされたハードウェアも使用される可能性があり、及び（または）特定の素子がハードウェアの中、（アプレットなどのポータブル・ソフトウェアを含む）ソフトウェアの中、または両方の中に実装される可能性がある。さらに、ネットワーク入出力装置などの他のコンピュータ処理装置への接続が採用されてもよい。
【００７７】
コードまたはコードの部分を含むための記憶媒体及びコンピュータ可読媒体は、当該技術で既知のまたは使用されている任意の適切な媒体を含むことができ、限定はされないが、任意の方法で実装された揮発性及び不揮発性媒体、リムーバブル及び非リムーバブル媒体などの記憶媒体及び通信媒体、または、コンピュータ可読命令、データ構造、プログラム・モジュール若しくは他のデータなどの情報の記憶及び（または）伝送のための技術を含むことができ、これらには、ＲＡＭ、ＲＯＭ、電気的消去書込可能な読出専用メモリ（「ＥＥＰＲＯＭ」）、フラッシュ・メモリ若しくは他のメモリ技術、コンパクト・ディスク読出専用メモリ（「ＣＤ−ＲＯＭ」）、ディジタル多機能ディスク（ＤＶＤ）若しくは他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置若しくは他の磁気記憶装置、または所望の情報を記憶するために使用することができ、且つシステム装置によってアクセスすることができる任意の他の媒体を含むことができる。ここに提供された開示及び教示に基づいて、当業者は様々な実施形態を実施する他のやり方及び（または）他の方法を理解している。
【００７８】
従って、明細書及び図面は限定的な意味ではなく実例と見なされるべきである。しかしながら、特許請求の範囲で述べられるような本発明のより広い趣旨及び範囲から逸脱することなく、その上に様々な修正及び変更が行なわれてもよいことは明らかである。
【００７９】
他のバリエーションは本開示の趣旨に含まれる。従って、開示された技術は様々な修正及び代替の構成の余地があるが、ある特定の説明されたその実施形態は図面中に示され、これまでに詳細に記述されている。しかしながら、開示された特定の形式または複数の形式に本発明を制限する意図ではなく、むしろ、添付された特許請求の範囲の中で定義されるように、その意図は本発明の趣旨及び範囲以内にある修正、代替の構成及び等価な構成をすべて包含することであるのは理解されるはずである。
【００８０】
「不定冠詞（ａ）及び（ａｎ）」及び「定冠詞（ｔｈｅ）」の用語並びに開示された実施形態を記載する文脈の中で（特に、次の特許請求の範囲の文脈の中で）同様の指示対象の使用は、ここで特に明示されない限りまたは文脈が明らかに矛盾しない限り、単数及び複数の両方を包含するように解釈されることになっている。「備えること（ｃｏｍｐｒｉｓｉｎｇ）」、「有すること（ｈａｖｉｎｇ）」及び「含むこと（ｉｎｃｌｕｄｉｎｇ、ｃｏｎｔａｉｎｉｎｇ）」の用語は、特に注釈しない限り、開放式の用語（すなわち、「含むが、これに限定されない」を意味する）として解釈されることになっている。「接続された」の用語は、修正されず且つ物理接続を参照している場合には、介在する何かが存在する場合であっても、部分的または全体的に、内側に含まれる、接触される、または相互に結合されるように解釈されることになっている。ここにおける値の範囲の列挙は、ここで示されない限り、その範囲以内にある各独立した値をそれぞれ参照する簡潔な方法として対応するように単に意図され、各独立した値は、あたかもそれがここにそれぞれ列挙されるかのように、ここに組み入れられる。用語「セット」（例えば「アイテムのセット」）または「サブセット」の使用は、特に指示がないか若しくは文脈が矛盾しない限り、１つ以上の構成物からなる空でない集合として解釈されることになっている。さらに、特に指示がないかまたは文脈が矛盾しない限り、セットに対応する用語「サブセット」は、必ずしも対応するセットの正式なサブセットを表示せず、サブセット及び対応するセットは同じでもよい。
【００８１】
「Ａ、Ｂ、及びＣの少なくとも１つ」または「Ａ、Ｂ及びＣの少なくとも１つ」の形式のフレーズなどの接続的言語は、特に記載されないか若しくは文脈が明確に矛盾しない限り、あるアイテムまたは用語などが、ＡまたはＢまたはＣのいずれかでもよいし、あるいは、Ａ及びＢ及びＣのセットの任意の空でない部分集合でもよいことを表わすために一般的に使用されるような文脈によって理解される。例えば、上記の接続的フレーズの中で使用された３つの構成物を持つセットの実例となる例で、「Ａ、Ｂ、及びＣの少なくとも１つ」並びに「Ａ、Ｂ及びＣの少なくとも１つ」は、次のセット｛Ａ｝、｛Ｂ｝、｛Ｃ｝、｛Ａ、Ｂ｝、｛Ａ、Ｃ｝、｛Ｂ、Ｃ｝、｛Ａ、Ｂ、Ｃ｝のいずれをも指す。従って、そのような結合する言語は、ある特定の実施形態が、Ａの少なくとも１つ、Ｂの少なくとも１つ、及びＣの少なくとも１つを各々が存在するように要求することを示唆するようには一般に意図されない。
【００８２】
ここに特に指示がないか若しくは文脈が明確に矛盾しない限り、ここに記述されたプロセスの実施は任意の適切な順に行なうことができる。ここに記述されたプロセス（または、そのバリエーション及び（若しくは）組み合わせ）は、実行可能な命令で構成された１つ以上のコンピュータシステムの制御の下で行なわれてもよく、且つ、ハードウェアあるいはその組み合わせによって、１つ以上のプロセッサ上で一括して実行するコード（例えば、実行可能な命令、１つ以上のコンピュータ・プログラムまたは１つ以上のアプリケーション）として実施されてもよい。コードは、コンピュータ可読記憶媒体上に、例えば、１つ以上のプロセッサによって実行可能な複数の命令からなるコンピュータ・プログラムの形式で格納されてもよい。コンピュータ可読記憶媒体は非一時的であってもよい。
【００８３】
ここで提供される任意及び全ての例の使用または典型的な言語（例えば、「のように」）は、単に本発明の実施形態をよりいっそう明確にするように意図されるものであり、特許請求の範囲で除外されない限り、本発明の範囲に対して制限を与えるものではない。本明細書中にない言語は、本発明の実行にとって不可欠なものとして特許請求の範囲にない任意の構成要素として解釈されるべきでない。
【００８４】
この開示の好ましい実施形態は、発明を実施するために発明者に知られている最良の態様を含めて、ここに記述される。それらの好ましい実施形態のバリエーションは、これまでの記述を読むことで当業者に対して明らかになり得る。本発明者は、当業者がそのようなバリエーションを適宜採用することを期待している。また、本発明者は、ここに具体的に記述された以外で実施される本開示の実施形態について考慮している。従って、本開示の範囲は、準拠法によって可能になるように、ここに添付された特許請求の範囲に記載された主題の修正及び等価な構成をすべて含んでいる。さらに、そのすべての可能なバリエーションにおいて上記した要素の任意の組み合わせは、特に指示がないか若しくは文脈が明確に矛盾しない限り、本開示の範囲に包含される。
【００８５】
ここに記載された刊行物、特許出願及び特許を含むすべての参考文献は、あたかも各参照がそれぞれに且つ具体的に参照によって組み込まれて示されたかのように、及びその全体がここに述べられたかのように、同じ程度に参照によってここに組み込まれている。
【図１】
0006258494.tif 000002
【図２】
0006258494.tif 000003
【図３】
0006258494.tif 000004
【図４】
0006258494.tif 000005
【図５】
0006258494.tif 000006
【図６】
0006258494.tif 000007
【図７】
0006258494.tif 000008
【図８】
0006258494.tif 000009
【図９】
0006258494.tif 000010
【図１０】
0006258494.tif 000011
【図１１】
0006258494.tif 000012