JP2020166879A - 部分的にオフロードされた仮想化マネージャにおけるメモリ割当て技術 - Google Patents
部分的にオフロードされた仮想化マネージャにおけるメモリ割当て技術 Download PDFInfo
- Publication number
- JP2020166879A JP2020166879A JP2020099238A JP2020099238A JP2020166879A JP 2020166879 A JP2020166879 A JP 2020166879A JP 2020099238 A JP2020099238 A JP 2020099238A JP 2020099238 A JP2020099238 A JP 2020099238A JP 2020166879 A JP2020166879 A JP 2020166879A
- Authority
- JP
- Japan
- Prior art keywords
- hypervisor
- memory
- virtualization
- gvm
- host
- 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.)
- Granted
Links
- 230000015654 memory Effects 0.000 title claims abstract description 210
- 238000000034 method Methods 0.000 title claims abstract description 80
- 230000006870 function Effects 0.000 claims description 15
- 230000002093 peripheral effect Effects 0.000 claims description 12
- 238000006243 chemical reaction Methods 0.000 claims description 9
- 230000005540 biological transmission Effects 0.000 claims description 8
- 230000000717 retained effect Effects 0.000 claims description 6
- 238000007726 management method Methods 0.000 description 65
- 238000003860 storage Methods 0.000 description 60
- 230000004044 response Effects 0.000 description 33
- 230000000875 corresponding effect Effects 0.000 description 24
- 238000012545 processing Methods 0.000 description 24
- 238000004891 communication Methods 0.000 description 21
- 238000010586 diagram Methods 0.000 description 19
- 230000007704 transition Effects 0.000 description 17
- 230000009471 action Effects 0.000 description 14
- 230000003993 interaction Effects 0.000 description 14
- 230000007246 mechanism Effects 0.000 description 13
- 230000008569 process Effects 0.000 description 13
- 238000005259 measurement Methods 0.000 description 12
- 230000006399 behavior Effects 0.000 description 9
- 230000036962 time dependent Effects 0.000 description 8
- 238000002955 isolation Methods 0.000 description 7
- 230000004913 activation Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 238000003752 polymerase chain reaction Methods 0.000 description 6
- 238000013459 approach Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 230000002085 persistent effect Effects 0.000 description 5
- 230000002829 reductive effect Effects 0.000 description 5
- 108091008874 T cell receptors Proteins 0.000 description 4
- 238000009826 distribution Methods 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 4
- 230000006855 networking Effects 0.000 description 4
- 230000009258 tissue cross reactivity Effects 0.000 description 4
- 230000005971 DNA damage repair Effects 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 230000008520 organization Effects 0.000 description 3
- 230000000246 remedial effect Effects 0.000 description 3
- 102000002706 Discoidin Domain Receptors Human genes 0.000 description 2
- 108010043648 Discoidin Domain Receptors Proteins 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005538 encapsulation Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000005201 scrubbing Methods 0.000 description 2
- 238000007789 sealing Methods 0.000 description 2
- 238000013403 standard screening design Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000002747 voluntary effect Effects 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 230000003542 behavioural effect Effects 0.000 description 1
- 239000000872 buffer Substances 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000001747 exhibiting effect Effects 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000006266 hibernation Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000034184 interaction with host Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 230000004043 responsiveness Effects 0.000 description 1
- 230000001568 sexual effect Effects 0.000 description 1
- 230000007958 sleep Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4406—Loading of operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/656—Updates while running
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45575—Starting, stopping, suspending or resuming virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45587—Isolation or security of virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/15—Use in a specific computing environment
- G06F2212/152—Virtualized environment, e.g. logically partitioned system
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Abstract
Description
施形態では、いくつかのオフロードされた仮想化管理タスクは、仮想化ホストの外部のコンピューティングデバイスにおいて、例えば、ゲスト仮想マシンが動作する仮想化ホストからネットワーク接続を介してアクセス可能な別のホストにおいて実装され得る。オフロードされたタスクの実装に関与するファームウェア及び/またはソフトウェアのコンポーネントは、一般に、本明細書中で、オフロードされた仮想化マネージャコンポーネント(OVMC)またはオフロードされた仮想化管理コンポーネントと称され得る。仮想化コントローラ及びネットワーク処理オフローダといった、様々な実施形態において用いられ得るいくつかの異なるOVMCの例が、以下に、より詳細に記載される。
ション動作、特に持続時間の短い時間依存の動作の応答性のばらつきは、本明細書中で、「ジッター」または「CPUジッター」と称され得る。
ードされたファームウェアの少なくとも一部は、第1の段階が終了した後で用いられなくてもよい。つまり、ブートの第1の段階が完了した後、第1の段階中にロードされたプログラムは、次回のブートまで再度必要とされなくてもよい。第1の段階が失敗した場合(例えば、ファームウェアプログラムの署名を、焼かれた鍵を用いて検証することができない場合)、少なくとも一実施形態では、仮想化ホストはブート不能(またはブートが非常に難しい)と見なされ得る。
とを可能にするのに十分な機能性を提供することが含まれ得る。この異なるバージョンは、オフロードカードで、暗号化されたストレージデバイス(例えば、別のフラッシュメモリコンポーネントまたはソリッドステートドライブ)から取得され得る。異なるバージョンを復号化するのに用いられる鍵はセキュリティモジュールに格納され得、セキュリティモジュールの状態(例えば1つまたは複数のPCR値)がブート手順の前の段階が成功したことを示す場合に仮想化コントローラの最小バージョンに対して利用可能になされるのみであり得る。仮想化コントローラの新しいバージョンのために用いられるストレージデバイスが最初に暗号化される(一番初めにホストが立ち上げられるとき)やり方に関する詳細を以下に提供する。その後、仮想化コントローラの異なるフル機能のバージョンは起動されて、最小バージョンを置き換え得る(すなわち、最小バージョンが動作していたプロセッサと同じオフロードデバイスプロセッサ(複数可)上で)。このインプレース置換技術は、経時的に仮想化コントローラのいくつかの新しいバージョンを配備するのに潜在的に用いられ得、例えば、「測定する」段階が終了する少し前、いずれの場合にも同一の最小バージョンが最初に起動される。
ンポーネントによって、ゲスト仮想マシンに対する割当て決定に関して通知がされ得る。ハイパーバイザは、ハイパーバイザによって管理されるセクション内でメモリ割当てのために自らのページテーブルを(例えば、4キロバイトといった相対的に小さなページサイズで)セットし得、一方、それぞれのゲスト仮想マシンに対するページテーブルの場所(ハイパーバイザと異なるページサイズを用い得る)は、オフロードされた仮想化マネージャコンポーネントによって選択され得る。ゲスト仮想マシンのページテーブルに用いられる特定のメモリ領域(複数可)は、少なくとも一部の実施形態では、オフロードされた仮想化マネージャコンポーネントによって選択され得、選択された領域(複数可)の表示が、ハイパーバイザに、データ構造で(本明細書中でページングメタデータと称され得る)提供され得る。次いで、ハイパーバイザは、データ構造に含まれる情報を用いて、ゲスト仮想マシンに対するページテーブルをセットし得る。少なくとも一部の実施形態では、メインメモリのハイパーバイザによって管理されるセクションの一部は、ハイパーバイザのライブアップデートのために確保され得る(例えば、ハイパーバイザの新しいバージョンを表す実行可能イメージを格納するために)。ハイパーバイザのメモリ管理及びライブアップデートに関するさらなる詳細を以下に提供する。
図1は、少なくとも一部の実施形態による、部分的にオフロードされた仮想化マネージャが仮想化コンピューティングサービスで用いられ得る例示的なシステム環境を示す。示すように、システム100は、様々なクライアント120の代わりに複数のネットワークアクセス可能なサービスが実装され得るプロバイダネットワーク102を備える。プロバイダネットワークのサービスは、描かれた実施形態では、とりわけ、仮想化コンピューティングサービス(VCS)132、ならびに、ブロックデバイスストレージサービス160(ブロックデバイスレベルプログラマチックインターフェースを介して記憶容量を提供する)及びオブジェクトストレージサービス170(非構造化ストレージオブジェクトにアクセスするためのウェブサービスインターフェースを公開する)を含むいくつかのストレージに関するサービスを含み得る。様々な実施形態では、ハードウェアセキュリティモジュール(HSM)機器サービス150を含むいくつかのセキュリティに関するサービスもプロバイダネットワークでサポートされ得る。サービスのいくつかは、クライアントの要求を満たすために他のサービスを使用し得る−例えば、描かれた実施形態では、仮想化コンピューティングサービスのゲスト仮想マシンのために用いられる永続ストレージの少なくとも一部は、ストレージサービスの1つまたは複数を介して取得され得る、仮想化コンピューティングサービスに関連するセキュリティ鍵は、HSMサービスに格納され得るなどである。
理コンポーネントの間で分割され得る。
するのに用いられ得る。一般に、VCS132の制御プレーンコンポーネントで受信されるクライアント要求は、内部形式に変換され、実装のための適切な仮想化ホストにおいてPVMに送信され得る。PVM自体内で、一部の実施形態では、オフロードされたコンポーネントがまず内部コマンド/要求を受信し得、必要な場合は実装のためにオポチュニスティックハイパーバイザにコマンド/要求の何らかのバージョンを渡す(例えば、GVMによるホストリソースの使用に割り込まないように非同期のキューベースのプロトコルを用いて)。VCS132で用いられ得る様々な低オーバーヘッドのセキュアな仮想化管理技術の様々な態様の詳細を以下に提供する。
図2は、少なくとも一部の実施形態による、仮想化ホストの例示的なコンポーネントを示す。示すように、仮想化ホスト202は、プライマリ物理プロセッサセット204、メインメモリ(例えば、ランダムアクセスメモリすなわちRAMの1つまたは複数のモジュール)208、部分的にオフロードされた仮想化マネージャ(PVM)270及びGVM250A〜250Cなどのゼロ以上のゲスト仮想マシンGVM250を備え得る。(仮想化ホスト202はまた、混乱を避けるために図2に示さないが、例えば様々な永続ストレージデバイスといったいくつかの他のコンポーネントも備え得る。)プライマリ物理プロセッサセット204は、描かれた実施形態では、pCPU205A〜205Cを含むいくつかの物理CPU(pCPU)を備え得る。vCPUまたは仮想CPUと呼ばれるpCPUの仮想化バージョンは、GVMのライフタイム中に、PVM270によって個々のGVMに割り当てられ得る。各GVM250は、動作システムのそれぞれのインスタンス(例えば、オペレーティングシステム252A〜252C)、及び、仮想化コンピューティングサービスのクライアントに代わって動作しているアプリケーションのセット(例えば254A〜254C)を備え得る。
ンとして記載され得る。加えて、ハイパーバイザ220は、ほとんどの状況下で、ハイパーバイザがCPUサイクルを用いる前、GVMがpCPU205の制御を自発的に放棄するまで待機し得るので、オポチュニスティックとして表され得る。かくして、例えば、特定のGVM138がI/O要求(I/Oは完了に約T1の時間がかかることが見込まれる)を発行し、I/O要求に対する応答が受信されるまでpCPUを明け渡すと、ハイパーバイザはこの機会を利用して、GVMがpCPUの使用を見込まない間、pCPUを用いて1つまたは複数の仮想化管理タスク(通常時間T2がかかり得る、T2<<T1)を行い得る。このようにして、ハイパーバイザ220は、描かれた実施形態では、アプリケーション254のパフォーマンスに与える影響は最小限であり得る。
ってもよく、他の実施形態では、単一のGVMマネージャが複数のGVMに関与してもよい。
図3は、少なくとも一部の実施形態による、ホストにおける仮想化マネージャコンポーネントのサブセットに対するものであり得るオフロードカードの例示的なコンポーネントを示す。示すように、オフロードカード302は、オフローディングプロセッサ317A及び317B(上述の仮想化ホストのプライマリpCPUとは区別されるような)のそれぞれのセットを有する一対のシステムオンチップ(SOC)315及び316を備え得る。描かれた実施形態では、SOCの一方(例えば315)は仮想化コントローラのために用いられ得、他方はネットワーク処理オフローダのために用いられ得る。セキュアなブートROM325は、以下にさらなる詳細を論じるように、仮想化コントローラによる多段階ブート動作の初期段階に対して用いられ得る。オフロードカード302はまた、ブート手順中に及び/またはブート後の状態検証で拡張的にやはり用いられ得るセキュリティモジュール(トラステッドプラットフォームモジュール(TPM)など)330も含み得、TPMの例示的なサブコンポーネントは図4に示される。
ロードカードコンポーネントのセットは包括的であることを意図せず、一部の実施形態では、タイマーなどといったいくつかの他のコンポーネントがカードに組み込まれ得る。様々な実装例では、図3に示すコンポーネントの少なくともいくつかは必要とされない場合がある。
アプリケーションに代わって作成された新しい鍵を保護するために用いられ得る。TPMの製造時に作成及び格納され得るエンドースメント鍵とは異なり、ストレージルート鍵は、一部の実装例では、何らかのエンティティ(プロバイダネットワークアドミニストレータなど)がTPMの所有権を取得したときに作成され得る。アテステーション鍵は、一部の実施形態では、プラットフォームアテスターとの相互作用で用いられ得て、例えば、仮想化ホストの共有コンポーネントが仮想化コンピューティングサービス及び/またはクライアントの要件を満たすことを検証する。
図5は、少なくとも一部の実施形態による、仮想化マネージャに対して用いられ得る例示的な多段階ブート手順の態様を示す。図5の左側に、様々な段階の概略が順番に示され、右側に、段階のうちいくつかにおいて用いられるプライマリセキュリティ技術が示される。多段階ブート手順は、少なくとも一部の実施形態では、仮想化ホストに電源が入ると開始し得る。初期のセキュアブート段階501では、1つまたは複数のファームウェアプログラムが読み込まれ(例えば、オフロードカードのSPIフラッシュストレージから)、オフローディングプロセッサまたはプロセッサ(複数)で(例えば、仮想化コントローラが動作予定のオフロードカードで)実行され得る。この初期の(そして通常非常に短い)段階において、ファームウェアの署名は、ハードウェアに(例えば、TPMなどのセキュリティモジュール内に組み込まれてもよく、組み込まれなくてもよい、オフロードカードの耐タンパー性のまたはタンパープルーフの格納場所に)焼かれた公開鍵を用いて検証され得る。要素504に示すように、公開鍵が属する鍵ペアの対応する秘密鍵は、少なくとも一部の実施形態では、ハードウェアセキュリティモジュール機器に格納され得る。描かれた実施形態では、段階501で用いられるファームウェアは、通常、段階が完了した後で再使用される必要はなくてもよい。実際、長時間動作するであろう、または再使用されるであろうファームウェア(例えば、ブート手順の後半及び/またはブート後に、PC
I−E構成空間エミュレーションのために用いられるコードなどの)の導入は、ブート手順の第2の段階の開始を意味し得る。段階501で用いられるファームウェアは、描かれた実施形態では、仮想化ホストの有用なライフタイム中に変更されないままであることが見込まれ得、そのことは、ハードウェアに焼かれた鍵がその段階に対して適切なセキュリティ手段であり得ることの理由の1つである。逆に、段階501に続く段階で用いられるファームウェアまたはソフトウェアは、経時的に修正され得る(例えば、機能を拡張するために、またはバグを取り除くために)。
),M3)。結果的に、暗号強度ハッシュ関数が用いられると仮定すると、全てのプログラムの暗号強度表現、及びプログラムがアクティブ化されたシーケンスは、セキュリティモジュールに格納され得る。ロードされているファームウェア/ソフトウェアの「測定値」と称され得るPCR値は、様々な実施形態では、セキュリティモジュールのI/Oインターフェースを介してアクセス可能になされ得、そしてプログラムの期待されたバージョンが用いられたことを検証するのに用いられ得る。
が、PCRの内容を読み出すことによって検証され得る。6月のシナリオでは、Vminは、V4によってチェーンローディングを介して置き換えられ得、12月のシナリオでは、Vminは直接V5によって置き換えられ得る(例えば、V4または他の中間のバージョンを通過する必要なく)。
図6は、少なくとも一部の実施形態による、仮想化マネージャに関連する実行可能プログラムに対して用いられるストレージデバイスのセキュリティを高めるために行われ得る動作の態様を示す流れ図である。そうしたプログラムは、とりわけ、仮想化コントローラの本格的なバージョン(上記でVnewと称される)、ハイパーバイザのバージョン及び/またはネットワーク処理オフローダのバージョンを含み得る。図6に描かれた実施形態においてセキュリティモジュールとしてTPMが用いられるが、他のタイプのセキュリティモジュールが様々な実施形態で用いられ得る。要素601に示すように、仮想化ホストの初めてのブート(例えば、仮想化ホストが、製造及びテスト後にデータセンターにイン
ストールされた後にブートされる全く初めての)が開始され得る。図5に示す最初のいくつかのブート段階は、Vminが起動するときまでに(起動したときを含む)行われ得る(例えば、焼かれた鍵を用いて安全性が保証される第1のブート段階、及び測定ブート段階)(要素604)。
各仮想化ホストは、そのライフタイム中に、仮想化コンピューティングサービス自体を含む1つまたは複数のサービスの制御プレーンエンティティなどの、プロバイダネットワークの様々な他のコンポーネントと安全に通信しなくてはならない場合がある。そうするために、少なくとも一部の実施形態では、ホストで動作中の仮想化マネージャは、ホストを、公開鍵インフラストラクチャの、または何らかの他の同様なセキュリティインフラストラクチャのメンバーとして、仮想化コンピューティングサービスに関連するホスト識別管理サービスとのネットワーク相互作用を介して、登録または記録することが必要とされ得る。そうしたホスト識別管理サービスは、一部の実施形態では、仮想化コンピューティングサービス内のリソースを用いて実装され得(例えば、図1に示すホスト識別マネージャ172の1つまたは複数を用いて)、他の実施形態では、ホスト識別管理サービスは、仮想化コンピューティングサービスの外部にあってもよい。一般に言って、様々な実施形態では、ホスト識別管理サービスは、仮想化ホストをセキュリティインフラストラクチャに記録/登録すること、もたらされた証明書を必要に応じて新しくし交代させること、証明書失効リストを管理すること、及び/または個々の仮想化ホスト上の各キーストアの内容を保つことに関与し得る。
/暗号のネットワーキングプロトコルを用いて、セッションのための接続を確立し得る(要素704)。少なくとも一部の実施形態では、仮想化コントローラは、記録の目的でHIMSと相互作用する部分的にオフロードされた仮想化マネージャのコンポーネントであってもよい。
図8は、少なくとも一部の実施形態による、仮想化ホストのコンポーネントに関連する異なる信頼レベルの例を示す。多段階ブートプロセス、ライブアップデート用の仮想化マネージャコンポーネントの新しいバージョンのための暗号化されたストレージデバイスの
使用、ホスト識別管理サービスとの相互作用、及びハイパーバイザの関与の最小化を含む上述の様々な技術の結果、仮想化ホストに存在するセキュリティが破られていることの見逃しの危険性は最小化され得る。図8において矢印885で示すように、ストリップドダウンオポチュニスティックハイパーバイザ820、ネットワーク処理オフローダ816及びゲスト仮想マシン850を含む、仮想化ホストで動作するソフトウェア/ファームウェアコンポーネント802の大部分は、セキュリティの観点から信頼できないものと見なされ得る。それらのコンポーネントのそれぞれに向けられるセキュリティ攻撃、またはそれらのコンポーネントのそれぞれにもたらされるバグは、仮想化コンピューティングサービスのセキュリティ依存の部分との相互作用の多くが仮想化コントローラによって行われ得るという理由で、影響は局在する傾向があり、広範囲の停電を生じさせない可能性がある。ハイパーバイザによって従来処理される機能性の多くがオフロードされているので、ハイパーバイザのセキュリティが破られる機会は低減され得、ハイパーバイザ自体に向けられたセキュリティ攻撃の成功の影響は最小化され得る。
図9は、少なくとも一部の実施形態による、ゲスト仮想マシンを起動するために仮想コンピューティングサービスのコンポーネントの様々な層の間で必要とされ得る相互作用の例を示す。サービスのクライアント910は、GVM(メモリサイズ、処理能力レベル、オペレーティングシステムバージョンなどといったGVMの所望の特徴が要求に記されている)をインスタンス作成または起動する要求を、サービスのプログラマチックインターフェース915を用いて(例えば、セキュアなハイパーテキスト転送プロトコルベースのウェブサービスインターフェースを用いて)送信し得る。クライアントの要求は、制御プレーンコンポーネント960で受信され、選択された仮想化ホストに送信するために内部形式に変換され得る。特定のホストが、例えば制御プレーンの配置マネージャによって、所望のGVMの特徴、ホストにおける利用可能なリソース容量などに基づいて選択され得る。一部の実施形態では、仮想化ホストのオフロードカードで動作している仮想化コントローラによって、REST(Representational State Transfer)アプリケーションプログラミングインターフェースがサポートされ得る。制御プレーンコンポーネントは、仮想化コントローラのプログラマチックインターフェース918を用いて、GVMのインスタンス作成の要求の内部バージョンを仮想化コントローラ965に送信し得る。
トによって格納場所から読み込まれ得る。一部の実施形態では、各仮想化ホストは、スロットマップ972のいくつかのGVM「スロット」973(例えばスロット973A〜973K)を有し得、各スロットは、所与のGVMのために用いられるリソースを表している。使用中のスロット(スロット973Aまたは973Kなど)は、対応するリソースが現在クライアントに割り当てられていることを示し得、使われていないスロットは、新しいGVMに対して用いられ得る。少なくとも一部の実施形態では、所与のGVMに割り当てられる仮想化ホストのメインメモリの特定の部分は、さらなる詳細を以下に論じるように、仮想化コントローラによって選択され得る。
、壊れたスロットのメモリを利用可能にする修理動作が開始され得る。スクラブが成功した場合、スロットに関連するメモリは、新しいGVMに対して再使用され得、非存在状態1001から開始される。
上述したブートに関する動作及びセキュリティに関する動作に加え、少なくとも一部の実施形態では、仮想化ホストにおけるメモリ割当てタスクの大きなサブセットが、オフロードされた仮想化マネージャコンポーネントで行われ得る。特に、少なくとも一部の実施形態では、オポチュニスティックハイパーバイザが仮想化ホストのメインメモリの相対的に小さい部分を管理し得る一方、メモリの残りの部分に関する割当て決定は、仮想化コントローラまたは別のオフロードされたメモリマネージャによってなされ得る。この手法は、ハイパーバイザによってなされなければならない作業の量をさらに減らし、それによって、pCPUサイクルのうちより多くをゲスト仮想マシンによって利用可能にするという利益を有し得る。加えて、以下に記述するように、この手法はまた、ハイパーバイザのライブアップデートが行われることを可能にし得、その間、動作中のゲスト仮想マシンはリブートされる必要がなくてもよい。
え得る。GVMごとのメタデータ部分のそれぞれは、描かれた実施形態では、GVMに対する1つまたは複数のページテーブル及びデバイス状態保存領域を備え得る。かくして、例えば、GVM1−メタデータ部分は、描かれた例では、ページテーブル(複数可)1257A及びデバイス状態保存領域1259Aを備え、GVM2−メタデータ部分は、ページテーブル(複数可)1257B及びデバイス状態保存領域1259Bを備える。GVM固有のページテーブル1257におけるエントリのページサイズは、少なくとも一部の実施形態では、ハイパーバイザによって用いられるページサイズとは異なり得る。例えば、ハイパーバイザは、一実装例では、4キロバイトのページでその一部からメモリを割り当て得、GVMに対して用いられるページサイズは2メガバイトであり得る。少なくとも一実装例では、同一ホスト上の異なるGVMに対して異なるページサイズが用いられ得る−例えば、GVM1のページはそれぞれ2メガバイトであってもよく、GVM2のページはそれぞれ4メガバイトのサイズであってもよい。様々な実施形態では、ハイパーバイザ及び異なるGVMに対して用いられるページの特定のサイズは、メモリ割当ての期待パターンに基づいて判定され得る(例えば、仮想化コンピューティングサービスの制御プレーンによって)。GVMのI/Oデバイス(例えば、1つまたは複数のパススルーI/Oデバイス)、vCPUなどの状態は、様々な実施形態では、例えばハイパーバイザのライブアップデートが行われるときにGVMが一時停止される短い期間中に、GVMに対する状態保存領域に保存され得る。少なくとも一部の実施形態では、OVMCは、メインメモリのどの領域が所与のGVM(例えば、GVMのオペレーティングシステム及びアプリケーション)及びGVMのメタデータに対して用いられるかを判定し、ハイパーバイザにその情報を提供し得る。かくして、GVM固有のメモリ割当て決定がOVMCによってなされ得、それらの決定の結果の少なくとも一部は、そうした実施形態では、OVMCによってハイパーバイザに提供され得る。所与のGVMに対するページテーブル及びデバイス状態保存領域は、少なくとも一部の実装例では、連続していなくてもよいことに留意されたい。
VM自体に対して(すなわち、GVMで実行されるオペレーティングシステム及びアプリケーションに対して)、及び、GVMがハイパーバイザのライブアップデート中に短時間一時停止される場合/されるときに保存されなくてはならない場合があるGVMのページテーブル及び様々なメタデータエントリに対して割り当て得る。GVM及びそのメタデータに対して割り当てられるメモリに関する情報1422は、OVMCによってオポチュニスティックハイパーバイザ1435に提供され得、OVMCは、ホストにおける追加のGVMに対して利用可能(もしあれば)のままである使用されていないメモリの量に関するその記録を更新し得る。少なくとも一部の実施形態では、GVMのメモリ要求に対応するために、バディ割当てアルゴリズム1425がOVMCで用いられ得る。
かれた実施形態では、ライブアップデート要求1504がOVMC1510に送信され得る。そして、OVMC1510は、ブートインプレースコマンド1528をハイパーバイザ1535の現在のバージョンに送信し得る。現在のバージョンは、任意の動作中のGMVを一時的に一時停止し、GVMの状態を(OVMCによって管理されるメモリを用いて)シリアライズし、その後、格納された新しいバージョンを用いてライブアップデート1565を実装し得る。新しいバージョンへのリブートが成功した場合、オポチュニスティックハイパーバイザの新しいバージョンは、描かれた実施形態では、一時停止された(もしあれば)GVMを再アクティブ化し、ハイパーバイザ準備完了メッセージ1531をOVMCに送信し得る。GVMは、様々な実施形態では、ハイパーバイザのアップデートにおいてリブートされなくてもよく、GVMが一時停止される期間は、通常、少なくとも何人かのGVMユーザまたはアプリケーションが一時停止に気付かないこともあるほどに短くてもよい。GVMの状態は、リブートインプレースの前に、OVMCによって管理されるメモリの一部に保存されたので、GVMは、何らかの理由でライブアップデートが失敗し、以前に動作していたハイパーバイザがその動作を再開しなくてはならない場合でも、迅速に再アクティブ化され得る。
のページテーブル、GVMのオペレーティングシステム及びプロセッサのための空間、GVMのまとめられたデバイス状態情報を保存するのに用いられるメタデータ領域を含む)をOVMCによって管理される領域から選択し得る(要素1616)。様々な実施形態では、GVMのページテーブルが構築される特定のメモリアドレス範囲はOVMCによって選択され得るが、ハイパーバイザは、ページテーブルの実際の作成に関与し得る。ページテーブルのために用いられるアドレス範囲は、OVMCによってハイパーバイザにGVMページングメタデータの一部として提供され得る。GVM固有のページテーブルは、少なくとも一部の実施形態では、メモリのハイパーバイザによって管理されるセクションのためにハイパーバイザによって用いられるページサイズまたは複数のページサイズと異なるサイズ(または異なる複数のサイズ)のページをサポートし得る。ページングメタデータは、一部の実装例では、GVMに対して用いられるページサイズの指示を含み得る。ハイパーバイザには、OVMCによってGVMに対してなされる割当て決定に関して通知がなされ得る(要素1619)。
しいバージョンがメインメモリのハイパーバイザによって管理される部分に格納されるとすぐに、ライブアップデートは開始され得る)。
先に記述したように、仮想化マネージャは、様々な実施形態では、そうでなければゲスト仮想マシンに対して用いることができるホストリソース(例えば、物理CPU及び物理メモリ)の消費を最小化するように設計され得る。一部の実施形態では、この最小化の一態様は、GVMによって物理CPUが自発的に放棄されるまで特定の仮想化管理タスクを先送りし、その後、物理CPUが利用可能であることをGVMが見込まない期間にタスクを行う機会を利用するハイパーバイザを備え得る。それを行うために、様々な実施形態では、OVMCまたは仮想化コンピューティングサービスの制御プレーンによって発行されるコマンド/要求に向けた非同期的なアプローチが取られ得る。さらに、デフォルトで、ハイパーバイザのサブコンポーネントの一部または全ては、休止状態または受動状態を保ち得、ホストリソースを利用する機会が有効になったとき、及び/または、他のサブコンポーネントからのメッセージが受信されたとき、受動状態をイクジットする。このオポチュニスティックアプローチによって、先に記述したように、GVMで実行されているアプリケーション動作のパフォーマンスにおける変動すなわちジッターの低減が支援され得る。
を備え得る。ホストはまた、オポチュニスティックな、デフォルトで休止しているハイパーバイザ1820、及びオフロードカード1810上の1つまたは複数のオフロードされた仮想化マネージャコンポーネント(OVMC)1872も備え得る。OVMCは、ネットワーク処理オフローダ1815及び仮想化コントローラ1816を含み得る。ハイパーバイザ1820は、描かれた実施形態では、ハイパーバイザコーディネータ1825、カーネルレベルコンポーネント1822、1つまたは複数のGVMマネージャ1828、分離/セキュリティコンポーネント1829及びキューマネージャ1875を備え得る。
放されてGVMに戻される前に、1つより多い状態遷移が完了され得る。
5及びT6の両方)を行い得る。GVM要求1924に対応する応答1952は最終的にGVM1910に提供され得る。次いで、GVMは、pCPUを再取得し得、ハイパーバイザはデフォルトの休止状態に再度再エンターし得る(要素1945)。
仮想化管理処理作業負荷の多くを、仮想化ホストのプライマリCPU及びメモリから離してオフロードする、かつ、セキュリティ機能が高められた多段階仮想化マネージャブートプロセスを実装する上述の技術は、種々の環境において有用であり得る。プロバイダネットワークで実装される多くの大規模な仮想化コンピューティングサービスでは、仮想化管理に関連するオーバーヘッドは、かなりの事業コストを意味し得る。サービス顧客の仮想マシンに割り当てることができないCPUサイクル及びメモリ空間によって、プロバイダネットワーク運用者において投資へのリターンが低くなる結果となり得る。さらに、少なくとも特定のアプリケーションに対して、仮想化管理コンポーネントが顧客アプリケー
ションと干渉する程度は、タイムクリティカルなアプリケーションの結果に影響を与え得、したがって、顧客満足に影響を与え得る。本明細書中に記載するオフローディング技術は、仮想化管理に関連するリソース(例えばCPU及びメモリ)のフットプリントを著しく低減させ得、アプリケーションのパフォーマンスの変動を低減させ得る。サービス顧客のセキュリティ及び分離要件も、仮想化管理の多くが、オペレーティングシステムの別の管理インスタンス及び本格的なハイパーバイザを用いることによるのではなくオフロードカードから処理されるときに、より容易に満たされ得る。
少なくとも一部の実施形態では、部分的にオフロードされた仮想化マネージャなどを実装する技術を含む本明細書中に記載した技術の1つまたは複数の一部またはすべてを実装するサーバは、1つまたは複数のコンピュータアクセス可能な媒体を含んだ、またはそれにアクセスするように構成されている汎用コンピュータシステムを含み得る。図24は、そのような汎用コンピューティングデバイス9000を例示する。例示される実施形態では、コンピューティングデバイス9000は、入力/出力(I/O)インターフェース9030を介して、システムメモリ9020(不揮発性及び揮発性メモリモジュールの両方を含み得る)に連結される、1つまたは複数のプロセッサ9010を含む。コンピューティングデバイス9000は、I/Oインターフェース9030に連結されるネットワークインターフェース9040をさらに含む。
いう用語は、本明細書で使用される場合、少なくともすべてのこれらのタイプのデバイスを指し、これらのタイプのデバイスに限定されない。
1.仮想化ホストの1つまたは複数のプロセッサと、
前記仮想化ホストのメインメモリと、
第1のオフロードされた仮想化マネージャコンポーネントを含む1つまたは複数のオフロードされた仮想化マネージャコンポーネントであって、前記第1のオフロードされた仮想化マネージャコンポーネントはペリフェラルインターコネクトを介して前記1つまたは複数のプロセッサからアクセス可能である、前記オフロードされた仮想化マネージャコンポーネントとを備えるシステムであって、
前記メモリは、前記1つまたは複数のプロセッサで実行されると、
第1のサイズのメモリページに対する第1のページテーブルのために、前記メインメモリの第1の部分を指定し、前記第1のサイズの少なくともいくつかのメモリページは、前記ハイパーバイザの1つまたは複数のサブコンポーネントに代わって割り当てられ、
前記ハイパーバイザのライブアップデートに対して用いられる実行可能なオブジェクトのために、前記メインメモリの少なくとも第2の部分を確保し、
前記第1のオフロードされた仮想化マネージャコンポーネントからのクエリに応じて、
1つまたは複数のゲスト仮想マシンに対して利用可能である前記メインメモリの少なくとも第3の部分の指示を提供するように構成されているハイパーバイザを実装するプログラム命令を備え、
前記第1のオフロードされた仮想化マネージャコンポーネントは、
メインメモリの前記第3の部分のサブセットを、前記仮想化ホストにおいてインスタンス作成される第1のゲスト仮想マシンに割り当て、
前記ハイパーバイザに、少なくとも、第2のサイズのメモリページに対する第2のページテーブルの位置を示すページングメタデータを送信し、前記第2のページテーブルは前記ハイパーバイザによって構築され、前記第1のゲスト仮想マシンに代わって用いられるように構成されている、前記システム。
前記ハイパーバイザに、ライブアップデートに用いられる前記ハイパーバイザの新しいバージョンを備える実行可能なオブジェクトの指示を送信し、前記新しいバージョンは、前記ハイパーバイザによる前記ライブアップデートに先立って用いられるメモリ管理データ構造に適用される変換機能を備えるように構成されており、
前記ハイパーバイザが、
前記実行可能なオブジェクトを、前記メインメモリの前記第2の部分に格納するように構成されている、条項1に記載のシステム。
前記第1のゲスト仮想マシンが前記仮想化ホストにおいて起動された後で、前記ハイパーバイザに、前記ハイパーバイザのライブアップデートを開始するコマンドを送信するように構成されており、
前記ハイパーバイザが、
前記第1のゲスト仮想マシンをリブートすることなしに、前記コマンドに応答するライブアップデートの一部として、前記メインメモリの前記第2の部分に格納されている実行可能なオブジェクトを用いてインプレースリブート動作を行うように構成されている、
条項1に記載のシステム。
少なくとも前記第1のゲスト仮想マシンに関するデバイス状態情報を保存するのに利用される前記メインメモリの第4の部分を選択し、前記デバイス状態情報は、前記ハイパーバイザのライブアップデート中、前記ハイパーバイザのインプレースリブートを通して保持され、
前記メインメモリの前記第4の部分の位置を前記ハイパーバイザに提供するように構成されている、条項1に記載のシステム。
前記仮想化ホストのハイパーバイザによって、前記ハイパーバイザのライブアップデートのために、前記メモリの少なくとも第2の部分を確保することと、
前記オフロードされた仮想化マネージャコンポーネントによって、メモリの前記第1の部分のサブセットを、前記仮想化ホストにおいてインスタンス作成される第1のゲスト仮想マシンに割り当てることと、
前記オフロードされた仮想化マネージャコンポーネントによって、前記ハイパーバイザに、前記第1のゲスト仮想マシンに代わって利用されるメモリの前記第1の部分の前記サブセットの指示を提供することとを含む、方法。
前記オフロードされた仮想化マネージャコンポーネントによって、前記第1のゲスト仮想マシンによってアクセスされるページに対して用いられる第2のページテーブルの位置を選択することと、
前記オフロードされた仮想化マネージャコンポーネントによって、前記第2のページテーブルの前記位置を前記ハイパーバイザに提供することとをさらに含む、条項6に記載の方法。
前記ハイパーバイザによって、前記新しいバージョンを、前記メモリの前記第2の部分に格納することとをさらに含む、条項6に記載の方法。
さらに含む、条項6に記載の方法。
前記オフロードされた仮想化マネージャコンポーネントによって、メモリの前記第3の部分の位置を前記ハイパーバイザに提供することとをさらに含む、条項6に記載の方法。
前記仮想化ホストのハイパーバイザから、前記ハイパーバイザによるメモリ割当て決定が行われない前記仮想化ホストのメモリの少なくとも第1の部分の指示を受信し、
メモリの前記第1の部分のサブセットを、前記仮想化ホストにおいてインスタンス作成される特定のゲスト仮想マシンに割り当て、
前記第1のゲスト仮想マシンに代わって利用されるメモリの前記第1の部分の前記サブセットの指示を前記ハイパーバイザに提供するように構成されている、前記媒体。
前記第1のゲスト仮想マシンによってアクセスされるメモリページのために用いられる第1のページテーブルの位置を選択し、前記ハイパーバイザは、少なくとも第2のページテーブルを利用して前記メモリの第2の部分を管理するように構成されており、前記第2の部分に関するメモリ割当て決定は前記ハイパーバイザによって行われ、
前記第2のページテーブルの前記位置を前記ハイパーバイザに提供するように構成されている、条項6に記載の非一時的なコンピュータアクセス可能なストレージ媒体。
前記ハイパーバイザに、ライブアップデートに用いられる前記ハイパーバイザの新し
いバージョンを備える実行可能なオブジェクトの指示を送信するように構成されており、前記新しいバージョンは、前記ハイパーバイザによる前記ライブアップデートに先立って用いられるメモリ管理データ構造に適用される変換機能を備える、条項16に記載の非一時的なコンピュータアクセス可能なストレージ媒体。
少なくとも前記第1のゲスト仮想マシンに関するデバイス状態情報を保存するのに利用される前記メモリの第2の部分を選択し、前記デバイス状態情報は、前記ハイパーバイザのライブアップデート中、前記ハイパーバイザのインプレースリブートを通して保持され、
メモリの前記第3の部分の位置を前記ハイパーバイザに提供するように構成されている、条項16に記載の非一時的なコンピュータアクセス可能なストレージ媒体。
様々な実施形態は、命令の受信、送信、または記憶、及び/またはコンピュータアクセス可能媒体に関する前述の説明に従って実装されたデータをさらに含み得る。一般的に言えば、コンピュータアクセス可能媒体は、磁気または光学媒体、例えば、ディスクまたはDVD/CD−ROM、RAM(例えば、SDRAM、DDR、RDRAM、SRAMなど)、ROMなどといった揮発性または不揮発性媒体などの記憶媒体またはメモリ媒体、ならびにネットワーク及び/または無線リンクなどの通信媒体を介して伝送される伝送媒体または電気信号、電磁信号、もしくはデジタル信号などの信号を含み得る。
Claims (15)
- 仮想化ホストに関連するオフロードされた仮想化マネージャコンポーネントによって、1つまたは複数のゲスト仮想マシンに対して用いられる前記仮想化ホストのメモリの少なくとも第1の部分を判定することと、
前記仮想化ホストのハイパーバイザによって、前記ハイパーバイザのライブアップデートのために、前記メモリの少なくとも第2の部分を確保することと、
前記オフロードされた仮想化マネージャコンポーネントによって、メモリの前記第1の部分のサブセットを、前記仮想化ホストにおいてインスタンス作成される第1のゲスト仮想マシンに割り当てることと、
前記オフロードされた仮想化マネージャコンポーネントによって、前記ハイパーバイザに、前記第1のゲスト仮想マシンに代わって利用されるメモリの前記第1の部分の前記サブセットの指示を提供することとを含む、方法。 - 前記ハイパーバイザによって、前記ハイパーバイザのサブコンポーネントに代わって割り当てられる少なくとも特定のサイズのメモリページに対して用いられる第1のページテーブルを確立することと、
前記オフロードされた仮想化マネージャコンポーネントによって、前記第1のゲスト仮想マシンによってアクセスされるページに対して用いられる第2のページテーブルの位置を選択することと、
前記オフロードされた仮想化マネージャコンポーネントによって、前記第2のページテーブルの前記位置を前記ハイパーバイザに提供することとをさらに含む、請求項1に記載の方法。 - 前記第2のページテーブルが、前記特定のサイズとは異なるサイズのメモリページに対するエントリを備える、請求項2に記載の方法。
- 前記メモリの前記第2の部分を用いて、(a)前記第1のゲスト仮想マシンに割り当てられたメモリの前記第1の部分の前記サブセットを修正することなく、かつ(b)前記第1のゲスト仮想マシンをリブートすることなく、前記ハイパーバイザのライブアップデートを行うことをさらに含む、請求項1に記載の方法。
- 前記オフロードされた仮想化マネージャコンポーネントによって、前記ハイパーバイザに、ライブアップデートに用いられる前記ハイパーバイザの新しいバージョンを備える実行可能なオブジェクトの指示を送信することであって、前記新しいバージョンは、前記ハイパーバイザによる前記ライブアップデートに先立って用いられるメモリ管理データ構造に適用される変換機能を備える、前記送信することと、
前記ハイパーバイザによって、前記新しいバージョンを、前記メモリの前記第2の部分に格納することとをさらに含む、請求項1に記載の方法。 - 前記オフロードされた仮想化マネージャコンポーネントによって、前記ハイパーバイザのライブアップデートを開始するコマンドを前記ハイパーバイザに送信することをさらに含む、請求項1に記載の方法。
- 前記オフロードされた仮想化マネージャコンポーネントによって、少なくとも前記第1のゲスト仮想マシンに関するデバイス状態情報を保存するのに利用される前記メモリの第3の部分を選択することであって、前記デバイス状態情報は、前記ハイパーバイザのライブアップデート中、前記ハイパーバイザのインプレースリブートを通して保持される、前記選択することと、
前記オフロードされた仮想化マネージャコンポーネントによって、メモリの前記第3の部分の位置を前記ハイパーバイザに提供することとをさらに含む、請求項1に記載の方法。 - 前記デバイス状態情報が、前記第1のゲスト仮想マシンによって入力/出力(I/O)動作を行うために用いられるパススルーデバイスに関連する少なくとも1つのエントリを備える、請求項7に記載の方法。
- 前記オフロードされた仮想化マネージャコンポーネントの少なくとも一部が、(a)ペリフェラルコンポーネントインターコネクト−Express(PCI−E)バス、(b)QuickPathインターコネクト(QPI)、または(c)UltraPathインターコネクト(UPI)のうち1つまたは複数を介して、前記仮想化ホストの1つまたは複数のプロセッサからアクセス可能な基板に実装される、請求項1に記載の方法。
- 前記オフロードされた仮想化マネージャコンポーネントの少なくとも一部が、前記仮想化ホストからネットワーク接続を介してアクセス可能な異なるホスト内に組み込まれ、前記異なるホストが、仮想化コンピューティングサービスの制御プレーンの一部である、請求項1に記載の方法。
- プロセッサに結合されたメモリを含むシステムであって、前記メモリは、実行されることにより、前記システムが、
仮想化ホストのハイパーバイザから、前記ハイパーバイザによるメモリ割当て決定が行われない、前記仮想化ホストのメモリの少なくとも第1の部分の指示を受信し、
メモリの前記第1の部分のサブセットを、前記仮想化ホストにおいてインスタンス作成される特定のゲスト仮想マシンに割り当て、
前記ハイパーバイザに、第1のゲスト仮想マシンに代わって利用されるメモリの前記第1の部分の前記サブセットの指示を提供する命令を含む、前記システム。 - 前記メモリが、実行されることにより、前記システムが、
前記第1のゲスト仮想マシンによってアクセスされるメモリページに対して用いられる第1のページテーブルの位置を選択し、前記ハイパーバイザが、少なくとも第2のページテーブルを利用して前記メモリの第2の部分を管理するように構成されており、前記第2の部分に関するメモリ割当て決定が前記ハイパーバイザによって行われ、
前記第2のページテーブルの前記位置を前記ハイパーバイザに提供する命令をさらに備える、請求項11に記載のシステム。 - 前記第1のページテーブルが、第1のサイズのメモリページに対して用いられ、前記第2のページテーブルが、異なるサイズのメモリページに対して用いられる、請求項12に記載のシステム。
- 前記メモリが、実行されることにより、前記システムが、
前記ハイパーバイザに、ライブアップデートに用いられる前記ハイパーバイザの新しいバージョンを備える実行可能なオブジェクトの指示を送信し、前記新しいバージョンは、前記ハイパーバイザによる前記ライブアップデートに先立って用いられるメモリ管理データ構造に適用される変換機能を備える、命令をさらに備える、請求項11に記載のシステム。 - 前記メモリが、実行されることにより、前記システムが、
少なくとも前記第1のゲスト仮想マシンに関するデバイス状態情報を保存するのに利用される前記メモリの第2の部分を選択し、前記デバイス状態情報は、前記ハイパーバイザのライブアップデート中、前記ハイパーバイザのインプレースリブートを通して保持され、
メモリの第3の部分の位置を前記ハイパーバイザに提供する命令をさらに備える、請求項11に記載のシステム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/199,497 | 2016-06-30 | ||
US15/199,497 US10318311B2 (en) | 2016-06-30 | 2016-06-30 | Memory allocation techniques at partially-offloaded virtualization managers |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018568313A Division JP6715356B2 (ja) | 2016-06-30 | 2017-06-29 | 部分的にオフロードされた仮想化マネージャにおけるメモリ割当て技術 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2020166879A true JP2020166879A (ja) | 2020-10-08 |
JP7007425B2 JP7007425B2 (ja) | 2022-01-24 |
Family
ID=59325688
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018568313A Active JP6715356B2 (ja) | 2016-06-30 | 2017-06-29 | 部分的にオフロードされた仮想化マネージャにおけるメモリ割当て技術 |
JP2020099238A Active JP7007425B2 (ja) | 2016-06-30 | 2020-06-08 | 部分的にオフロードされた仮想化マネージャにおけるメモリ割当て技術 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018568313A Active JP6715356B2 (ja) | 2016-06-30 | 2017-06-29 | 部分的にオフロードされた仮想化マネージャにおけるメモリ割当て技術 |
Country Status (6)
Country | Link |
---|---|
US (2) | US10318311B2 (ja) |
EP (1) | EP3479224B1 (ja) |
JP (2) | JP6715356B2 (ja) |
CN (1) | CN109564514B (ja) |
AU (2) | AU2017290252B2 (ja) |
WO (1) | WO2018005826A1 (ja) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10318311B2 (en) | 2016-06-30 | 2019-06-11 | Amazon Technologies, Inc. | Memory allocation techniques at partially-offloaded virtualization managers |
US10917324B2 (en) * | 2016-09-28 | 2021-02-09 | Amazon Technologies, Inc. | Network health data aggregation service |
US10911263B2 (en) | 2016-09-28 | 2021-02-02 | Amazon Technologies, Inc. | Programmatic interfaces for network health information |
US10862777B2 (en) | 2016-09-28 | 2020-12-08 | Amazon Technologies, Inc. | Visualization of network health information |
US11218364B2 (en) | 2018-06-25 | 2022-01-04 | Amazon Technologies, Inc. | Network-accessible computing service for micro virtual machines |
US11563677B1 (en) | 2018-06-28 | 2023-01-24 | Cable Television Laboratories, Inc. | Systems and methods for secure network management of virtual network function |
US11822946B2 (en) * | 2018-06-28 | 2023-11-21 | Cable Television Laboratories, Inc. | Systems and methods for secure network management of virtual network functions |
US10963282B2 (en) | 2018-12-11 | 2021-03-30 | Amazon Technologies, Inc. | Computing service with configurable virtualization control levels and accelerated launches |
CN110347504B (zh) * | 2019-06-28 | 2020-11-13 | 中国科学院空间应用工程与技术中心 | 众核计算资源调度方法及装置 |
US11689365B2 (en) * | 2019-07-17 | 2023-06-27 | Vmware, Inc. | Centralized volume encryption key management for edge devices with trusted platform modules |
US11422785B2 (en) * | 2019-07-23 | 2022-08-23 | Paypal, Inc. | Container orchestration framework |
US11243589B1 (en) | 2019-09-24 | 2022-02-08 | Amazon Technologies, Inc. | Remote power button actuation device for a pre-assembled computer system integrated into a server for a virtualization service |
US11113046B1 (en) | 2019-09-24 | 2021-09-07 | Amazon Technologies, Inc. | Integration and remote control of a pre-assembled computer system into a server for a virtualization service |
US11853771B1 (en) | 2019-09-24 | 2023-12-26 | Amazon Technologies, Inc. | Offload card based virtualization of a pre-assembled computer system integrated into a server for a virtualization service |
WO2021126216A1 (en) | 2019-12-19 | 2021-06-24 | Google Llc | Resource management unit for capturing operating system configuration states and offloading tasks |
EP3857371A1 (en) * | 2019-12-19 | 2021-08-04 | Google LLC | Resource management unit for capturing operating system configuration states and memory management |
US11475167B2 (en) * | 2020-01-29 | 2022-10-18 | International Business Machines Corporation | Reserving one or more security modules for a secure guest |
US11442767B2 (en) | 2020-02-27 | 2022-09-13 | Hewlett Packard Enterprise Development Lp | Virtual serial ports for virtual machines |
US11544096B2 (en) | 2020-02-27 | 2023-01-03 | Hewlett Packard Enterprise Development Lp | Virtual trusted platform modules |
US11640312B2 (en) | 2020-02-27 | 2023-05-02 | Hewlett Packard Enterprise Development Lp | System reset using a controller |
EP4202668A4 (en) * | 2020-09-08 | 2024-01-31 | Huawei Cloud Computing Tech Co Ltd | COMPUTER SYSTEM AND CONTAINER MANAGEMENT METHOD AND DEVICE |
CN115225451A (zh) * | 2021-04-17 | 2022-10-21 | 华为云计算技术有限公司 | 一种计算节点管理系统及针对多个计算节点的管理方法 |
WO2024034752A1 (ko) * | 2022-08-09 | 2024-02-15 | 엘지전자 주식회사 | 신호 처리 장치, 및 이를 구비하는 차량용 증강현실 장치 |
CN115408108A (zh) * | 2022-08-30 | 2022-11-29 | 阿里巴巴(中国)有限公司 | 一种云环境下的i/o卸载方法、设备、系统及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007505402A (ja) * | 2003-09-15 | 2007-03-08 | インテル コーポレイション | 特権イベントを処理するための複数のバーチャルマシーンモニタの利用 |
JP2009537897A (ja) * | 2006-05-15 | 2009-10-29 | マイクロソフト コーポレーション | 実行中のオペレーティングシステムの下でのハイパーバイザの起動 |
JP2013041409A (ja) * | 2011-08-15 | 2013-02-28 | Fujitsu Ltd | 情報処理装置、割込み制御方法および割込み制御プログラム |
JP2013535711A (ja) * | 2010-07-21 | 2013-09-12 | 日本電気株式会社 | 計算機システム、及び計算機システムにおけるオフローディング方法 |
JP2015529918A (ja) * | 2012-08-23 | 2015-10-08 | アマゾン・テクノロジーズ、インコーポレイテッド | 仮想計算機インスタンスのスケーリング |
WO2015171478A1 (en) * | 2014-05-05 | 2015-11-12 | Microsoft Technology Licensing, Llc | Attestation of a host containing a trusted execution environment |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7484091B2 (en) | 2004-04-29 | 2009-01-27 | International Business Machines Corporation | Method and system for providing a trusted platform module in a hypervisor environment |
US20050251806A1 (en) | 2004-05-10 | 2005-11-10 | Auslander Marc A | Enhancement of real-time operating system functionality using a hypervisor |
US8447898B2 (en) | 2005-10-28 | 2013-05-21 | Microsoft Corporation | Task offload to a peripheral device |
US8032899B2 (en) | 2006-10-26 | 2011-10-04 | International Business Machines Corporation | Providing policy-based operating system services in a hypervisor on a computing system |
US7996836B1 (en) | 2006-12-29 | 2011-08-09 | Symantec Corporation | Using a hypervisor to provide computer security |
US20080244553A1 (en) | 2007-03-28 | 2008-10-02 | Daryl Carvis Cromer | System and Method for Securely Updating Firmware Devices by Using a Hypervisor |
US8127292B1 (en) | 2007-06-22 | 2012-02-28 | Parallels Holdings, Ltd. | Virtualization system with hypervisor embedded in bios or using extensible firmware interface |
US8156492B2 (en) * | 2007-09-07 | 2012-04-10 | Oracle International Corporation | System and method to improve memory usage in virtual machines running as hypervisor guests |
US8201161B2 (en) | 2008-01-07 | 2012-06-12 | Lenovo (Singapore) Pte. Ltd. | System and method to update device driver or firmware using a hypervisor environment without system shutdown |
AU2009259876A1 (en) | 2008-06-19 | 2009-12-23 | Servicemesh, Inc. | Cloud computing gateway, cloud computing hypervisor, and methods for implementing same |
US8239557B2 (en) | 2008-06-25 | 2012-08-07 | Red Hat, Inc. | Virtualization management using a centralized server |
US8151032B2 (en) * | 2008-06-26 | 2012-04-03 | Microsoft Corporation | Direct memory access filter for virtualized operating systems |
US9733959B2 (en) | 2008-09-15 | 2017-08-15 | Vmware, Inc. | Policy-based hypervisor configuration management |
US8433802B2 (en) | 2010-01-26 | 2013-04-30 | International Business Machines Corporation | System and method for fair and economical resource partitioning using virtual hypervisor |
CN102271124B (zh) * | 2010-06-01 | 2015-05-13 | 富士通株式会社 | 数据处理设备和数据处理方法 |
US20120066681A1 (en) * | 2010-09-12 | 2012-03-15 | Levy Tomer | System and method for management of a virtual machine environment |
EP2557498B1 (en) | 2011-01-30 | 2015-05-20 | Huawei Technologies Co., Ltd. | Updating method and computer system for hypervisor components |
JP5655677B2 (ja) * | 2011-04-04 | 2015-01-21 | 富士通株式会社 | ハイパーバイザ置き換え方法および情報処理装置 |
US8954964B2 (en) * | 2012-02-27 | 2015-02-10 | Ca, Inc. | System and method for isolated virtual image and appliance communication within a cloud environment |
US20130275966A1 (en) * | 2012-04-12 | 2013-10-17 | International Business Machines Corporation | Providing application based monitoring and recovery for a hypervisor of an ha cluster |
US10063380B2 (en) * | 2013-01-22 | 2018-08-28 | Amazon Technologies, Inc. | Secure interface for invoking privileged operations |
JP2015076643A (ja) * | 2013-10-04 | 2015-04-20 | 富士通株式会社 | 制御プログラム、制御装置および制御方法 |
US9361145B1 (en) | 2014-06-27 | 2016-06-07 | Amazon Technologies, Inc. | Virtual machine state replication using DMA write records |
US9886297B2 (en) | 2014-12-11 | 2018-02-06 | Amazon Technologies, Inc. | Systems and methods for loading a virtual machine monitor during a boot process |
US10318311B2 (en) | 2016-06-30 | 2019-06-11 | Amazon Technologies, Inc. | Memory allocation techniques at partially-offloaded virtualization managers |
-
2016
- 2016-06-30 US US15/199,497 patent/US10318311B2/en active Active
-
2017
- 2017-06-29 WO PCT/US2017/040049 patent/WO2018005826A1/en unknown
- 2017-06-29 CN CN201780045823.8A patent/CN109564514B/zh active Active
- 2017-06-29 JP JP2018568313A patent/JP6715356B2/ja active Active
- 2017-06-29 AU AU2017290252A patent/AU2017290252B2/en active Active
- 2017-06-29 EP EP17739443.4A patent/EP3479224B1/en active Active
-
2019
- 2019-06-07 US US16/435,387 patent/US11068277B2/en active Active
-
2020
- 2020-03-27 AU AU2020202180A patent/AU2020202180B2/en active Active
- 2020-06-08 JP JP2020099238A patent/JP7007425B2/ja active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007505402A (ja) * | 2003-09-15 | 2007-03-08 | インテル コーポレイション | 特権イベントを処理するための複数のバーチャルマシーンモニタの利用 |
JP2009537897A (ja) * | 2006-05-15 | 2009-10-29 | マイクロソフト コーポレーション | 実行中のオペレーティングシステムの下でのハイパーバイザの起動 |
JP2013535711A (ja) * | 2010-07-21 | 2013-09-12 | 日本電気株式会社 | 計算機システム、及び計算機システムにおけるオフローディング方法 |
JP2013041409A (ja) * | 2011-08-15 | 2013-02-28 | Fujitsu Ltd | 情報処理装置、割込み制御方法および割込み制御プログラム |
JP2015529918A (ja) * | 2012-08-23 | 2015-10-08 | アマゾン・テクノロジーズ、インコーポレイテッド | 仮想計算機インスタンスのスケーリング |
WO2015171478A1 (en) * | 2014-05-05 | 2015-11-12 | Microsoft Technology Licensing, Llc | Attestation of a host containing a trusted execution environment |
Also Published As
Publication number | Publication date |
---|---|
AU2020202180A1 (en) | 2020-04-16 |
AU2017290252A1 (en) | 2019-01-03 |
JP2019525306A (ja) | 2019-09-05 |
EP3479224A1 (en) | 2019-05-08 |
CN109564514B (zh) | 2022-04-08 |
EP3479224B1 (en) | 2024-05-29 |
US10318311B2 (en) | 2019-06-11 |
JP7007425B2 (ja) | 2022-01-24 |
AU2020202180B2 (en) | 2021-08-05 |
US11068277B2 (en) | 2021-07-20 |
JP6715356B2 (ja) | 2020-07-01 |
US20190294446A1 (en) | 2019-09-26 |
CN109564514A (zh) | 2019-04-02 |
AU2017290252B2 (en) | 2020-01-02 |
US20180004539A1 (en) | 2018-01-04 |
WO2018005826A1 (en) | 2018-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7007425B2 (ja) | 部分的にオフロードされた仮想化マネージャにおけるメモリ割当て技術 | |
JP6728409B2 (ja) | 仮想化マネージャのセキュアなブート処理 | |
JP6845264B2 (ja) | オポチュニスティックハイパーバイザを用いたパフォーマンスの変動の低減 | |
US9413765B2 (en) | Multinode hubs for trusted computing | |
CN116069584A (zh) | 将监控服务扩展到可信云运营商域中 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200629 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200629 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20210824 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20211124 |
|
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: 20211214 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20220106 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7007425 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |