JP5376496B2 - 仮想マシンデバイスの動的割り当て - Google Patents
仮想マシンデバイスの動的割り当て Download PDFInfo
- Publication number
- JP5376496B2 JP5376496B2 JP2008274368A JP2008274368A JP5376496B2 JP 5376496 B2 JP5376496 B2 JP 5376496B2 JP 2008274368 A JP2008274368 A JP 2008274368A JP 2008274368 A JP2008274368 A JP 2008274368A JP 5376496 B2 JP5376496 B2 JP 5376496B2
- Authority
- JP
- Japan
- Prior art keywords
- virtual
- devices
- request
- virtual machine
- computer system
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 claims abstract description 13
- 230000004044 response Effects 0.000 claims abstract description 6
- 238000012546 transfer Methods 0.000 claims description 3
- 230000015654 memory Effects 0.000 description 110
- 238000012545 processing Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 6
- 230000002093 peripheral effect Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000013522 software testing Methods 0.000 description 1
- 230000003068 static effect Effects 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
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)
- Memory System Of A Hierarchy Structure (AREA)
Description
以下の説明及び特許請求の範囲の全体にわたって、特定のシステムコンポーネントを指すために、特定の用語が使用される。当業者には理解されるように、コンピュータ会社によって、1つのコンポーネントを異なる名前で指す場合がある。
本明細書は、名前は異なるが、機能は異ならないコンポーネントを区別することは意図していない。
以下の解説及び特許請求の範囲において、「含む(including)」及び「備える(comprising)」という用語は、限定のない様式で使用され、したがって、「〜を含むが、これらに限定されるものではない」ことを意味するように解釈されるべきである。
また、「結合する("couple" or "couples")」という用語は、間接的な電気接続、直接的な電気接続、光電気接続、又は無線電気接続のいずれをも意味するように意図されている。
したがって、第1のデバイスが第2のデバイスに結合する場合、その接続は、直接的な電気接続を通じている場合もあるし、他のデバイス及び接続を介して間接的な電気接続を通じている場合もあるし、光電気接続を通じている場合もあるし、無線電気接続を通じている場合もある。加えて、「システム」という用語は、2つ以上のハードウェアコンポーネント及びソフトウェアコンポーネント又はこれらのいずれか(ハードウェアコンポーネント及び/又はソフトウェアコンポーネント)の集まりを指し、コンピュータ、コンピュータの一部、コンピュータの組み合わせ等の電子デバイスを指すのに使用される場合がある。
さらに、「ソフトウェア」という用語は、ソフトウェアを記憶するのに使用される媒体にかかわらず、プロセッサ上で実行することができる任意の実行可能コードを含む。
したがって、不揮発性メモリに記憶されて、「組み込みファームウェア」と呼ばれることもあるコードは、ソフトウェアの定義内に含まれる。
また、「実コンピュータシステム」という用語は、たとえば、図2A及び図2Bに示すコンピュータシステム等、実際の物理的なコンピュータシステムを指す。
「仮想マシン」という用語は、コンピュータシステムのシミュレーション、エミュレーション、又は他の同様の機能表現を指し、それによって、仮想マシンは、1つ又は2つ以上の実コンピュータシステム又は物理コンピュータシステムを画定する物理的境界によって制約されない1つ又は2つ以上の機能コンポーネントを含む。
これらの機能コンポーネントには、実デバイス又は物理デバイス、相互接続バス、及びネットワーク、並びに、1つ又は2つ以上のCPU上で実行されるソフトウェアプログラムが含まれ得る。
仮想マシンは、たとえば、1つの実コンピュータシステム内又は物理コンピュータシステム内の一部の機能コンポーネントを含むが、すべての機能コンポーネントを含むとは限らない機能コンポーネントのサブセットを含む場合もあるし、複数の実コンピュータシステム又は物理コンピュータシステムの一部の機能コンポーネントを含む場合もあるし、或る実コンピュータシステム又は物理コンピュータシステムのすべての機能コンポーネントを含むが、別の実コンピュータシステム又は物理コンピュータシステムの一部のコンポーネントしか含まない場合もあるし、複数の実コンピュータシステム又は物理コンピュータシステムのすべての機能コンポーネントを含む場合もある。
他の多くの組み合わせが可能であり、このようなすべての組み合わせは、本開示の範囲内にあるように意図されている。
さらに、「仮想」という用語は、他のコンポーネント、システム、及び/又はサブシステム(たとえば、メモリ、ファームウェア、資源、ストレージデバイス、及び入出力デバイス)に関連付けられると、同様に、仮想マシンの一部又は仮想マシンソフトウェアプログラムの一部として実施されるコンポーネント、システム、及び/又はサブシステムのシミュレーション、エミュレーション、又は他の同様の機能表現を指す。
このコンピュータシステム100は、処理ロジック102(たとえば、マイクロプロセッサ)及び揮発性ストレージ110(たとえば、ランダムアクセスメモリ、すなわちRAM)を含む。ハイパーバイザ200(「仮想マシンモニタ」と呼ぶことがある)は、メモリ110にロードされてプロセッサ102によって実行される1つ又は2つ以上の仮想マシンソフトウェアプログラムを含む。
ハイパーバイザ200は、ハイパーバイザ200によって作成される動作環境内で実行される1つ又は2つ以上の仮想マシンに対する制御、及びそれらの仮想マシン間の分離を維持する。いくつかの例示的な実施形態では、ハイパーバイザ200は、基本入出力システム(BIOS)ソフトウェアを含む一方、他の例示的な実施形態では、BIOSが、ハイパーバイザ200を含む。
さらに他の例示的な実施形態では、ハイパーバイザ200は、プロセッサ102上で実行されるオペレーティングシステムの一部として含まれる一方、さらに他の例示的な実施形態では、ハイパーバイザ200は、プロセッサ102上ですでに実行されているオペレーティングシステム内でアプリケーションプログラムとして実行される。
BIOSソフトウェア、オペレーティングシステムソフトウェア、及びハイパーバイザソフトウェアの他の変形及び組み合わせは、当業者に明らかになり、このようなすべての変形及び組み合わせは、本開示の範囲内にある。
各仮想マシンは、コンピュータシステム100と同様の実コンピュータシステムをエミュレート及び/又はシミュレートする。
したがって、各仮想マシンは、仮想プロセッサ(vProc312、412、及び512)、仮想メモリデバイス(VM300内に含まれるvMem[0](220)及びvMem[1](221)、VM400内のvMem[2](222)、及びVM500内のvMem[3](223))、並びに仮想ファームウェア(vF/W316、416、及び516)を含む。
仮想ファームウェアは、たとえば、BIOSコード(図示せず)、及び仮想マシン300の仮想ファームウェア316内に示されている仮想アドバンストコントロールアンドパワーインターフェース(virtual Advanced Control and Power Interface:vACPI)ファームウェア318のようなハードウェア・電力制御インターフェースコードのような、実ファームウェアに含まれるプログラムと同様のプログラムを含む。
図1の実施形態は、仮想ACPIファームウェアを含むが、他の例示的な実施形態は、他の仮想化されたハードウェアインターフェースファームウェア(たとえば、Intel(登録商標)による拡張可能ファームウェアインターフェース(EFI))を含んでもよく、このようなすべての仮想化されたハードウェアインターフェースファームウェアが、本開示の範囲内にある。
このようなソフトウェアには、たとえば、図1のオペレーティングシステム314(仮想メモリ資源ドライバ(vMRDvr)315を含む)が含まれる。
vACPI318は、一連のオブジェクトを保持する。これらのオブジェクトは、それぞれが仮想化されたハードウェア要素に対応すると共に、それぞれが仮想化された各ハードウェア要素の構成及びステータスに関連する情報を含む。
したがって、たとえば、vMemObj[0](仮想メモリオブジェクト320)は、vMem[0](仮想メモリデバイス220)に関連する情報を含む仮想マシン300内の仮想化されたACPIオブジェクトであり、同様に、vMemObj[1](仮想メモリオブジェクト321)は、vMem[1](仮想メモリデバイス221)に関連する情報を含む仮想化されたACPIオブジェクトである。
これらのオブジェクト内に含まれる情報は、たとえば、仮想マシン300のメモリアドレス空間内のデバイスのベースアドレス及びアドレス範囲を含むことができる。
仮想メモリ資源オブジェクト330は、仮想メモリデバイスグループを「ホットスワップ」する(すなわち、対応する仮想マシンをリセットもリブートもすることなく仮想メモリデバイスを追加又は除去する)ためのステータス及び制御の単一のポイントを提供する。
したがって、たとえば、特定のメモリ量をイジェクトする要求が、(たとえば、汎用イベント、すなわちGPEを介して)ハイパーバイザ200からvACPI318によって受信された場合、集約された単一のイジェクト通知が、vACPI318によって仮想メモリ資源オブジェクト330へ送信される。
仮想メモリ資源オブジェクト330は、次に、要求を仮想メモリ資源ドライバ315へ送信する。
また、仮想メモリ資源オブジェクト330は、デバイスオブジェクトグループについてのステータス及び/又は情報を得るための単一のポイントも提供する。
したがって、たとえば、仮想メモリ資源ドライバ315は、仮想マシン内の仮想メモリのそれぞれについての情報(たとえば、イジェクトされる仮想メモリデバイスに対応する仮想メモリオブジェクトのリスト、又は、イジェクトされるメモリ量のサイズ)を得る単一のクエリを仮想メモリ資源オブジェクト330へ発行することができる。
仮想メモリ資源ドライバ315が、要求を満たすのに十分な仮想メモリデバイスを特定した場合、各仮想メモリデバイスに対する個別のイジェクト要求が、仮想メモリ資源ドライバ315によって内部(すなわち、オペレーティングシステム314内)で生成され、イジェクトされるメモリデバイスに対応する各仮想メモリオブジェクト(たとえば、図1の仮想メモリオブジェクト320)へ送信される。
個別のイジェクトオペレーションが完了すると、仮想メモリ資源オブジェクト330は、(仮想メモリ資源ドライバ315から受信された完了ステータスに基づいて)集約されたイジェクトの完了ステータスをハイパーバイザ200へ返す。
仮想メモリ資源ドライバ315は、個別のイジェクト要求のいずれかが個別の仮想メモリオブジェクトへ発行される前に、十分なメモリデバイスが要求を満たすのに利用可能であるかどうかを判断するので、要求は、当該要求が、要求されたメモリ量のイジェクトに成功することができない限り、システムの構成を変更しないことになる。
さらに、仮想メモリ資源ドライバ315へ向けられる単一の要求を使用することに加えて、オリジナルの要求を満たすのに必要な数の個別のイジェクトのみを発行する結果、各仮想メモリデバイスの個別のイジェクトを試みると共に、場合によっては、仮想マシン内の仮想メモリデバイスのすべてのイジェクトを1つずつ試みなければならないハイパーバイザと比較して、イジェクトオペレーションはより効率的なものとなる。
また、必要とされるものよりも多くのメモリデバイスが利用可能である場合、仮想メモリ資源ドライバは、イジェクトするのに必要なオーバーヘッドが最小となる仮想メモリデバイス(たとえば、データをスワップアウトすることを必要とするメモリではなく、使用中でないメモリ)をイジェクトするように選択することができる。このような選択によって、イジェクトの実行全体をより高速にすることが可能になる。
このような実施形態では、仮想資源オブジェクト330は、この場合も、仮想メモリ資源ドライバ315へ単一の要求を送信するが、すべての利用可能なメモリをスキャンして要求を満たすのに十分な仮想メモリデバイスを見つける代わりに、要求内にリストされた仮想メモリデバイスのみがチェックされて、それらの仮想メモリデバイスに対応するメモリ範囲が使用中でない(又は、スワップ可能なタスクによって使用されている)かが判断される。
リストされたデバイスのいずれかが利用可能でない場合、要求は拒否される。そうでない場合、イジェクト要求は、リストされた各仮想メモリデバイスに対応する各仮想メモリオブジェクトへ送信される。
個別のイジェクトオペレーションがすべて完了すると、仮想メモリ資源オブジェクト330は、(仮想メモリ資源ドライバ315から受信された完了ステータスに基づいて)集約されたイジェクトの完了ステータスをハイパーバイザ200へ返す。
必要に応じて、このレポジトリ内の仮想メモリデバイスを、1つ又は2つ以上の仮想マシンからイジェクトされた仮想メモリデバイスと共に利用して、仮想メモリデバイスを、コンピュータシステム100内の他の仮想マシンに提供することができる。
他の例示的な実施形態では、ハイパーバイザ200内の割り当てられていない仮想メモリデバイスのプールに仮想メモリデバイスを保持するのではなく、仮想メモリデバイスが必要とされる時に、「オンザフライ(on-the-fly)」で仮想メモリデバイスを作成して、仮想マシンに割り当てることができる。
したがって、たとえば、少なくとも1つの例示的な実施形態では、メモリ110は4つの1GBの実メモリデバイス(たとえば、4つの1GBのデュアルインラインメモリモジュール、すなわちDIMM)を含む一方、各仮想メモリデバイスは、256MBの実メモリのみを含む。
仮想メモリ220〜223は、第1のDIMMの1GBのメモリを利用し、仮想メモリ224〜227は、第2のDIMMの1GBのメモリを利用し、残りの2つのDIMMの残りの2GBのメモリは、ハイパーバイザ200、及び/又は、実プロセッサ102上で実行される他の任意のアプリケーションプログラムによって利用される。
実メモリデバイス及び仮想メモリデバイスの他の多くの編成及び組み合わせが当業者に明らかになり、このようなすべての編成及び組み合わせは、本開示の範囲内にある。
図示するように、例示的なコンピュータシステム100は、筐体180、ディスプレイ140、及び入力デバイス170を含む。
コンピュータシステム100は、処理ロジック102、揮発性ストレージ110、及び不揮発性ストレージ164を含む。
処理ロジック102は、ハードウェア(たとえば、マイクロプロセッサ)、ソフトウェア(たとえば、マイクロコード)、又はハードウェア及びソフトウェアの組み合わせで実施することができる。
また、コンピュータシステム100は、コンピュータ可読媒体も含む。コンピュータ可読媒体には、揮発性ストレージ110(たとえば、ランダムアクセスメモリ(RAM))、不揮発性ストレージ164(たとえば、フラッシュRAM、読み出し専用メモリ(ROM)、ハードディスクドライブ、フロッピー(登録商標)ディスク(たとえば、フロッピー(登録商標)194)、コンパクトディスク読み出し専用メモリ(CD−ROM、たとえばCD196)、又はそれらの組み合わせが含まれる。
また、コンピュータシステム100は、ネットワークインターフェース(ネットI/F)162も含む。このネットワークインターフェース162によって、コンピュータシステム100は、イーサネット(登録商標)ジャック192によって図2Aの例において表されているローカルエリアネットワーク及び/又は有線若しくは無線のワイドエリアネットワークを介して情報を受信することが可能になる。
ビデオインターフェース(ビデオI/F)142は、ディスプレイ140に結合している。
ユーザは、入力デバイス170(たとえば、キーボード)及び/又はポインティングデバイス172(たとえば、マウス)を介してこのステーションと対話する。入力デバイス170及びポインティングデバイス172は、周辺インターフェース168に結合している。
ディスプレイ140は、入力デバイス170及び/又はポインティングデバイス172と共に、合わせてユーザインターフェースとして動作することができる。
これら一連のハブ又はブリッジは、メモリコントローラハブ(MCH)104(「ノースブリッジ」と呼ばれることがある)及びインターフェースコントローラハブ(ICH)106(「サウスブリッジ」と呼ばれることがある)を含む。
図2Bの例示的な実施例のバスは、処理ロジック102をMCH104に結合するフロントサイドバス103と、ビデオインターフェース142をMCH104に結合するアクセラレーテッド(accelerated)グラフィックスポート(AGP)バス141と、ネットワークインターフェース162、不揮発性ストレージ164、周辺インターフェース168、及びICH106を互いに結合する周辺コンポーネント相互接続(PCI)バス161と、1つ又は2つ以上のPCIエクスプレスデバイス152をMCH104に結合するPCIエクスプレス(PCIe)バス151と、MCH104を揮発性ストレージ110内のデュアルインラインメモリモジュール(DIMM)120及び130に結合するメモリバス111とを含む。
ビデオインターフェース142は、AGPバス141から情報を受け取ってこの情報をディスプレイ140に適した形式に変換するグラフィックスカード又は他の適切なビデオインターフェースを含むことができる。
処理ロジック102は、他のシステム要素から情報を収集する。この情報には、周辺インターフェース168からの入力データ、ならびに、不揮発性ストレージ164若しくは揮発性ストレージ110からのプログラム命令及び他のデータ、又は、ネットワークインターフェース162を介してローカルエリアネットワーク若しくはワイドエリアネットワークに結合されている他のシステム(たとえば、実行可能コードのコピーを記憶して配信するのに使用されるサーバ)からのプログラム命令及び他のデータが含まれる。
処理ロジック102は、プログラム命令(たとえば、ハイパーバイザ200)を実行し、それに応じてデータを処理する。
プログラム命令は、さらに、ビデオインターフェース142及びディスプレイ140を介してユーザに提示される情報のようなデータを他のシステム要素へ送信するように処理ロジック102を構成することができる。
ネットワークインターフェース162によって、処理ロジック102は、ネットワーク(たとえば、インターネット)を介して他のシステムと通信することが可能になる。
揮発性ストレージ110は、処理ロジック102の情報の低遅延一時ストアとして機能することができ、不揮発性ストレージ164は、情報の長期(ただし、より高遅延)ストアとして機能することができる。
処理ロジック102は、より高速なアクセスを得るために、プログラムの一部を揮発性ストレージ110にコピーすることができ、入力デバイス170のユーザによる作動に応答して、プログラム間の切り換え又は追加プログラムの実行を行うことができる。
追加プログラムは、不揮発性ストレージ164から取り出すこともできるし、ネットワークインターフェース162を介して他のロケーションから取り出すか又は受信することもできる。
これらのプログラムの1つ又は2つ以上は、コンピュータシステム100上で実行され、コンピュータシステムに、本明細書で開示する少なくともいくつかの機能を実行させる。
図3Aは、仮想メモリデバイス220がすでに割り当てられている仮想マシン300を示している。
仮想メモリデバイス221及び222は、ハイパーバイザ200によって、割り当てられていない仮想メモリデバイスとして割り当てられていない仮想メモリデバイスのプール内に保持される。これらのメモリデバイスは、要求に応じた割り当てに利用可能である。
図3A〜図3Cの実施形態は、割り当てられていない仮想メモリデバイスの静的なプールを示しているが、他の例示的な実施形態では、たとえば、割り当て要求が(たとえば、コンピュータシステム100に関連付けられているユーザインターフェースを介して要求を発行するオペレータから)ハイパーバイザ200によって受信されるとき、ハイパーバイザ200によって監視されるように各仮想マシンにすでに割り当てられているメモリのメモリ利用レベルに基づいて要求がハイパーバイザ200によって内部で生成されるとき、又は、仮想マシンによって監視された仮想マシンのメモリ利用レベルに基づいて、要求が仮想マシンによってハイパーバイザに対して生成されるときのように、「必要に応じて」又は「オンザフライ」で、仮想メモリデバイスは生成される。
ハイパーバイザ200は、仮想「ホットプラグ」指示の形で(たとえば、ACPI汎用イベント、すなわちGPEとして)、この追加要求をvACPI318へ送信する。
図3Bは、この要求に対する初期応答を示している。図3Bでは、仮想メモリデバイス221及び222と、仮想プロセッサ312を仮想メモリデバイス220に結合するバスとの間の破線によって示すように、これまで割り当てられていない仮想メモリデバイス221及び222は、仮想マシン300に追加されるが、使用するにはまだ利用可能ではない。
仮想メモリデバイスオブジェクト321及び322は、vACPI318によって追加されるが、(それらのメモリオブジェクトの周りの破線によって示すように)オペレーティングシステム314によってまだ認識されていない。
少なくともいくつかの例示的な実施形態では、仮想メモリオブジェクトは、ACPI名前空間にすでに存在し、仮想メモリデバイス221及び222の追加に応答して、無効状態から有効状態に遷移される。
ホットプラグ通知353は、仮想メモリ資源オブジェクト330によって仮想メモリ資源ドライバ315へ転送され、仮想メモリデバイス221及び222の、仮想マシン300の仮想ハードウェア構成への追加を反映する。
少なくともいくつかの例示的な実施形態では、この通知353は、新しい仮想メモリオブジェクトのリストを含む一方、他の例示的な実施形態では、新しい仮想メモリオブジェクトのリストは、仮想メモリ資源オブジェクトに問い合わせることによって得ることができる。
仮想メモリ資源ドライバ315は、2つの個別のホットプラグ指示(各仮想メモリデバイス当たり1つ)を内部で生成し、図3Cに示すように、追加された仮想メモリデバイスをオペレーティングシステム314に認識させ、オペレーティングシステム314の構成にデバイスを追加させる。
個別の仮想メモリデバイスの追加が完了すると、仮想メモリ資源ドライバ315は、完了ステータス355を仮想メモリ資源オブジェクト330へ送信し、仮想メモリ資源オブジェクト330は、次に、完了ステータス357をハイパーバイザ200へ返す。
図4Aは、仮想メモリデバイス220、221、及び222が仮想マシン300にすでに割り当てられており、仮想メモリデバイス223が仮想マシン400にすでに割り当てられていることを示している。
仮想マシン300から仮想マシン400へ仮想メモリを再割り当てする要求が受信されると、ハイパーバイザ200は、まず、「ホットプラグ解除」指示又は「イジェクト」指示の形で、必要なメモリを割り当て解除する要求451をvACPI318へ発行する。
いくつかの例示的な実施形態では、この要求は、イジェクトされる仮想メモリデバイスをリストすることができる一方、他の例示的な実施形態では、この要求は、仮想メモリ資源ドライバ315内の1つ又は2つ以上の機能によって、必要な個数の仮想メモリデバイスに変換される1つ又は2つ以上のメトリック(たとえば、メモリサイズ、並びに、ライトバック、揮発性/不揮発性、及びメモリ局所性のようなメモリ属性)を指定することができる。
図4A〜図4Eの例では、この要求は、2つの利用可能な仮想メモリデバイスを必要とする。これらの仮想メモリデバイスは、仮想マシン300から利用可能であり、仮想マシン300から割り当て解除(イジェクト)することができる。
図4Bは、仮想メモリオブジェクト321及び322の除去(メモリオブジェクトの破線の境界によって示される)、並びに、対応する仮想メモリデバイス221及び222の除去(仮想メモリデバイス221及び222から、仮想メモリデバイス220を仮想プロセッサ312に結合するバスへの破線によって示される)を示している。
図4Cに示すように、イジェクトの完了時に、仮想メモリ資源ドライバ315は、完了ステータス455を仮想メモリ資源オブジェクト330へ送信し、仮想メモリ資源オブジェクト330は、次に、完了ステータス457をハイパーバイザ200へ送信する。
また、図4Dは、仮想メモリデバイス221及び222の仮想マシン400への追加、並びに、この追加の初期認識(仮想メモリデバイス221及び222から、仮想メモリデバイス223及び仮想プロセッサ412を結合するバスへの破線によって示される)も示している。
図4Eは、仮想メモリデバイス221及び222の仮想マシン400への結果の割り当てを示している。
仮想メモリデバイス221及び222の追加の完了時に、仮想メモリ資源ドライバは、完了ステータス463を仮想メモリ資源オブジェクト430へ送信し、仮想メモリ資源オブジェクト430は、次に、完了ステータス465をハイパーバイザ200へ送信する。
したがって、たとえば、(たとえば、図4A〜図4Cに示すような)このような実施形態における仮想メモリデバイス221及び222を仮想マシン300からイジェクトする要求は、イジェクトされるメモリ量をバイト単位で含む。
仮想メモリデバイスのサイズに基づいて、必要なデバイスの個数が、仮想メモリ資源ドライバ315内の1つ又は2つ以上の機能によって求められ、要求を満たすのに必要な個数のデバイスが使用中でない場合、又は、スワップ可能なタスクによって使用中であり、したがって利用可能である場合には、要求された仮想メモリはイジェクトされる。
たとえば、各仮想メモリデバイスが128MBであり、且つ2GBのメモリのイジェクトが要求されている場合、少なくとも16個のメモリデバイスが利用可能であるときに、要求されたメモリはイジェクトされることになる。
異なるタイプの仮想デバイスに関連付けられている他のメトリックを、仮想デバイスをイジェクトする要求内で使用することができ、このようなすべてのメトリック及び仮想デバイスのタイプが、本開示の範囲内にある。
デバイスの要求が、特定の要求されたデバイスのリストではなくメトリックに基づくものとすることを可能にすることによって、仮想デバイスを要求及び/又は管理するプログラム(たとえば、仮想マシン上で実行されるアプリケーション、又は、ハイパーバイザプログラム)は、要求を行うことに先立って、どのデバイスが使用中であるのかの追跡もチェックも行う必要がないため、資源の負荷バランシングが簡単になる。
第1の仮想マシンに現在割り当てられている1つ又は2つ以上の仮想デバイスをイジェクト(割り当て解除)する要求が、第1の仮想マシン内の仮想資源オブジェクトへ送信される(ブロック602)。
ブロック604に示すように、この要求を満たすのに必要な仮想デバイスが、第1の仮想マシンによって使用中でない場合、又は、使用中であるが利用可能にできる場合(たとえば、メモリデバイスからスワップアウト及び/又はクリアすることができるコンテンツ)、要求された仮想デバイスは、第1の仮想マシンからイジェクトされる(ブロック608)。
ブロック604に示すように、必要な仮想デバイスが使用中であり、且つ、利用可能にできない(すなわち、クリアすることができない)場合、この要求は拒否され(ブロック606)、この方法は終了する(ブロック616)。
イジェクトされたデバイスが、別の仮想マシンに追加されることになっていない場合(ブロック610)、この方法は終了する(ブロック616)。
要求された仮想デバイスがイジェクトされ(ブロック608)、且つ、イジェクトされたデバイスの1つ又は2つ以上が第2の仮想マシンに追加されることになっている場合(ブロック610)、1つ又は2つ以上の仮想デバイスを仮想マシンに追加するコマンドが、第2の仮想マシン内の仮想デバイス資源オブジェクトへ送信される(ブロック612)。
この要求によって、仮想ホットプラグイベントが、仮想マシンによって生成されサービスされて、要求された仮想デバイスが、仮想マシンに追加され(ブロック614)、この方法は終了する(ブロック616)。
上記開示が十分に理解されると、当業者には、多数の変形及び変更が明らかになる。
たとえば、本開示の例示的な実施形態の少なくともいくつかは、仮想メモリデバイスの追加及びイジェクトを説明しているが、ほんの数例を挙げると、仮想ハードディスク、仮想ネットワークアダプタ、仮想プロセッサ(1つの仮想マシン当たり2つ以上、又は、異なる実効速度の仮想プロセッサ)のようなデバイスを含む、他の多くの仮想デバイスを、本明細書で説明するように追加及びイジェクトすることができる。
また、説明したイジェクト要求に設けられるメトリックは、メモリサイズに限定されるものではなく、イジェクトすることができる多くの仮想デバイスに関連付けられる任意の数のメトリックとすることができる。
このようなメトリックの例には、仮想ハードディスクの転送帯域幅、仮想ネットワークアダプタの通信帯域幅、仮想プロセッサの個数、(たとえば、100万命令毎秒、すなわちMIPS単位の)仮想プロセッサの処理能力、及び仮想プロセッサの速度が含まれ得る。
これらのそれぞれは、1つ又は2つ以上の実デバイスの対応するメトリックの比率として表すことができる。
添付の特許請求の範囲は、このようなすべての変形及び変更を包含するように解釈されることが意図されている。
102・・・処理ロジック
110・・・揮発性ストレージ
140・・・ディスプレイ
142・・・ビデオI/F
152・・・PCIeデバイス
162・・・ネットI/F
164・・・不揮発性ストレージ
168・・・周辺I/F
172・・・ポインティングデバイス
170・・・入力デバイス
200・・・ハイパーバイザ
300,400,500・・・仮想マシン(VM)
312,412,512・・・仮想プロセッサ(vProc)
220,221,222,223・・・仮想メモリデバイス(vMem)
314・・・オペレーティングシステム
315・・・仮想メモリ資源ドライバ(vMRDvr)
316,416,516・・・仮想ファームウェア(vF/W)
318・・・vACPI
320,321,421,422・・・仮想メモリオブジェクト
330,430・・・仮想メモリ資源オブジェクト
Claims (10)
- 実コンピュータシステム(100)上で仮想マシンソフトウェア(300)を実行することであって、該仮想マシンソフトウェアはハイパーバイザ(200)を含み、1つの仮想マシンが複数の仮想デバイス(220、221)を備える、仮想マシンソフトウェア(300)を実行することと、
前記複数の仮想デバイスのそれぞれを、前記実コンピュータシステム内の実デバイス(110)の一意のサブセットに関連付けることと、
前記ハイパーバイザが、前記仮想マシン内の仮想ファームウェア(316)へ、前記複数の仮想デバイスの1つ又は2つ以上の仮想デバイスを前記仮想マシンからイジェクト(eject)することを要求するイジェクト要求を送信することと、
前記仮想ファームウェア内の仮想デバイス資源オブジェクトが、前記仮想マシン上で実行される仮想デバイス資源ドライバ(315)へ前記イジェクト要求を転送することと、
前記仮想デバイス資源ドライバが、前記転送された要求に応答して、前記1つ又は2つ以上の仮想デバイスのそれぞれの前記仮想マシンからの個別のイジェクトを引き起こすことと
を含む方法。 - 前記仮想デバイス資源オブジェクトは、前記複数の仮想デバイス(220、221)のデバイスタイプに関連付けられる
請求項1に記載の方法。 - 前記イジェクト要求に含まれるメトリックに基づいて、前記イジェクト要求を満たすのに必要な仮想デバイス(220、221)の個数を求めることと、
少なくとも求められた個数の仮想デバイスが利用可能である場合に、必要であると判断された前記仮想デバイスを前記仮想マシンからイジェクトすることと、
前記複数の仮想デバイスのいずれが、前記イジェクト要求を満たすのに使用されるのかを判断することと、
をさらに含み、
前記必要な仮想デバイスの個数を求めること、及び、前記複数の仮想デバイスのいずれが使用されるのかを判断することは、前記仮想デバイス資源ドライバ(315)によって行われる
請求項1に記載の方法。 - 前記仮想デバイス資源ドライバ(315)は、
前記要求に含まれる仮想デバイスのリストに基づいて、いずれの仮想デバイス(220、221)がイジェクト用に特定されるのかを判断し、
前記要求にリストされた前記仮想デバイスが利用可能である場合に、前記リストされた仮想デバイスを前記仮想マシンからイジェクトする
請求項1に記載の方法。 - 前記ハイパーバイザ(200)が、1つ又は2つ以上の仮想デバイス(220、221)を前記仮想マシンに追加する要求を前記仮想デバイス資源オブジェクトへ送信することと、
前記仮想デバイス資源オブジェクトが、前記追加する要求を、前記仮想デバイス資源ドライバ(315)へ転送することと、
前記仮想デバイス資源ドライバが、前記1つ又は2つ以上の仮想デバイスを、それぞれ、前記仮想マシンに個別に追加することと
をさらに含む請求項1に記載の方法。 - コンピュータシステムであって、
仮想マシンを実施する仮想マシンソフトウェア(300)を実行する実プロセッサであって、前記仮想マシンは、仮想プロセッサと、仮想資源デバイスドライバと、仮想デバイス資源オブジェクトを含む仮想ファームウェア(316)と、複数の仮想デバイス(220、221)とを備える、実プロセッサと、
前記実プロセッサに結合され、前記仮想マシンソフトウェアは、前記複数の仮想デバイスのそれぞれを、該実デバイスの一意の一部分(subdivision)に関連付ける実デバイス(110)と
を備え、
前記実プロセッサ上で実行されるハイパーバイザ(200)は、前記複数の仮想デバイスの1つ又は2つ以上の仮想デバイスを前記仮想マシンからイジェクトする要求を前記仮想ファームウェアへ送信し、
前記仮想ファームウェアの中の仮想デバイス資源オブジェクトは、前記イジェクトする要求を仮想デバイス資源ドライバに転送し、
前記仮想デバイス資源ドライバは、前記要求された1つ又は2つ以上の仮想デバイスを前記仮想マシンから個別にイジェクトさせる
コンピュータシステム。 - 前記仮想デバイス資源オブジェクトは、前記複数の仮想デバイス(220、221)のデバイスタイプに関連付けられている
請求項6に記載のコンピュータシステム。 - 前記実デバイス(110)は、
実メモリデバイス
を備え、
前記複数の仮想デバイス(220、221)は、
それぞれが前記実メモリデバイスによって占有されたアドレス空間の一意の部分範囲(sub-range)に関連付けられている複数の仮想メモリデバイス
を備える
請求項6に記載のコンピュータシステム。 - 前記仮想デバイス資源ドライバは、
前記イジェクトする要求に含まれるメトリックに基づいて、割り当て解除する要求を満たすのに必要な仮想デバイス(220、221)の個数を求め、さらに、前記複数の仮想デバイスのいずれが、前記イジェクトする要求を満たすのに使用されるよう選択されるのかを判断し、
少なくとも求められた個数の仮想デバイスが、前記仮想デバイス資源ドライバによって使用中でないと判断された場合に、必要であると判断され使用されるように選択される前記仮想デバイスをイジェクトする
請求項6に記載のコンピュータシステム。 - 前記仮想デバイス資源ドライバは、
前記要求において提示されている仮想デバイスのリストに基づいて、いずれの仮想デバイス(220、221)がイジェクト用に特定されるのかを判断し、
前記要求においてリストされている前記仮想デバイスが利用可能である場合に、前記リストされた仮想デバイスを前記仮想マシンからイジェクトする
請求項6に記載のコンピュータシステム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/932,440 US8281303B2 (en) | 2007-10-31 | 2007-10-31 | Dynamic ejection of virtual devices on ejection request from virtual device resource object within the virtual firmware to virtual resource driver executing in virtual machine |
US11/932,440 | 2007-10-31 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009110518A JP2009110518A (ja) | 2009-05-21 |
JP5376496B2 true JP5376496B2 (ja) | 2013-12-25 |
Family
ID=40469933
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008274368A Expired - Fee Related JP5376496B2 (ja) | 2007-10-31 | 2008-10-24 | 仮想マシンデバイスの動的割り当て |
Country Status (4)
Country | Link |
---|---|
US (1) | US8281303B2 (ja) |
EP (1) | EP2056199A3 (ja) |
JP (1) | JP5376496B2 (ja) |
CN (1) | CN101425022B (ja) |
Families Citing this family (60)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8479194B2 (en) * | 2007-04-25 | 2013-07-02 | Microsoft Corporation | Virtual machine migration |
US8332847B1 (en) | 2008-01-10 | 2012-12-11 | Hewlett-Packard Development Company, L. P. | Validating manual virtual machine migration |
US8185894B1 (en) * | 2008-01-10 | 2012-05-22 | Hewlett-Packard Development Company, L.P. | Training a virtual machine placement controller |
US20090216519A1 (en) * | 2008-02-25 | 2009-08-27 | Mohan Parthasarathy | Data Processing System And Method |
WO2009145098A1 (ja) * | 2008-05-28 | 2009-12-03 | 日本電気株式会社 | I/o接続システム、方法及びプログラム |
US8145871B2 (en) * | 2008-06-09 | 2012-03-27 | International Business Machines Corporation | Dynamic allocation of virtual real memory for applications based on monitored usage |
US9262194B2 (en) * | 2008-06-10 | 2016-02-16 | Apple Inc. | Virtual machine communications |
EP2329369A1 (en) * | 2008-08-25 | 2011-06-08 | Power-One Italy S.p.a. | A hardware virtualization system |
EP2202639B1 (en) * | 2008-12-24 | 2012-09-12 | VirtualLogix SA | Virtual machine monitor |
US9405347B2 (en) * | 2009-02-26 | 2016-08-02 | Microsoft Technology Licensing, Llc | Power-saving operating system for virtual environment |
US9396042B2 (en) | 2009-04-17 | 2016-07-19 | Citrix Systems, Inc. | Methods and systems for evaluating historical metrics in selecting a physical host for execution of a virtual machine |
US8291416B2 (en) * | 2009-04-17 | 2012-10-16 | Citrix Systems, Inc. | Methods and systems for using a plurality of historical metrics to select a physical host for virtual machine execution |
US8954487B2 (en) * | 2009-06-23 | 2015-02-10 | Samsung Electronics Co., Ltd. | Management server and method for providing cloud computing service |
US20110029971A1 (en) * | 2009-07-30 | 2011-02-03 | Fujitsu Limited | Information processing apparatus, image processing method and computer program |
US9037717B2 (en) * | 2009-09-21 | 2015-05-19 | International Business Machines Corporation | Virtual machine demand estimation |
US11132237B2 (en) * | 2009-09-24 | 2021-09-28 | Oracle International Corporation | System and method for usage-based application licensing in a hypervisor virtual execution environment |
US8402461B2 (en) * | 2009-11-15 | 2013-03-19 | Hewlett-Packard Development Company, L. P. | Switching between direct mode and indirect mode for virtual machine I/O requests |
US8301818B2 (en) * | 2009-12-11 | 2012-10-30 | Oracle America, Inc. | Virtual hot plugging of devices and virtual devices |
US8434081B2 (en) * | 2010-07-02 | 2013-04-30 | International Business Machines Corporation | Storage manager for virtual machines with virtual storage |
US8943260B2 (en) * | 2011-03-13 | 2015-01-27 | International Business Machines Corporation | Dynamic memory management in a virtualized computing environment |
US9183030B2 (en) | 2011-04-27 | 2015-11-10 | Microsoft Technology Licensing, Llc | Virtual processor allocation techniques |
EP2521035B1 (de) * | 2011-05-06 | 2018-02-21 | Siemens Aktiengesellschaft | Verfahren und Anordnung zur Konfigurierung einer Ressource für eine virtuelle Laufzeitumgebung |
TW201250464A (en) * | 2011-06-01 | 2012-12-16 | Hon Hai Prec Ind Co Ltd | System and method for monitoring virtual machines |
US9432258B2 (en) | 2011-06-06 | 2016-08-30 | At&T Intellectual Property I, L.P. | Methods and apparatus to configure virtual private mobile networks to reduce latency |
US9386035B2 (en) | 2011-06-21 | 2016-07-05 | At&T Intellectual Property I, L.P. | Methods and apparatus to configure virtual private mobile networks for security |
US10044678B2 (en) * | 2011-08-31 | 2018-08-07 | At&T Intellectual Property I, L.P. | Methods and apparatus to configure virtual private mobile networks with virtual private networks |
US8666723B2 (en) * | 2011-08-31 | 2014-03-04 | Oregon State Board Of Higher Education On Behalf Of Portland State University | System and methods for generating and managing a virtual device |
EP2570920A1 (en) | 2011-09-16 | 2013-03-20 | France Télécom | System and method for cross-platform application execution and display |
US9886312B2 (en) | 2011-09-28 | 2018-02-06 | Microsoft Technology Licensing, Llc | Dynamic provisioning of virtual video memory based on virtual video controller configuration |
US9448810B2 (en) | 2011-10-21 | 2016-09-20 | Hewlett-Packard Development Company, L.P. | Web-based interface to access a function of a basic input/output system |
DE112011105745B4 (de) * | 2011-10-21 | 2021-09-23 | Hewlett-Packard Development Company, L.P. | Bereitstellen einer Funktion eines Basisdatenaustauschsystems (BIOS) in einer privilegierten Domain |
WO2013088818A1 (ja) * | 2011-12-13 | 2013-06-20 | 株式会社日立製作所 | 仮想計算機システム、仮想化機構、及びデータ管理方法 |
WO2013123650A1 (zh) * | 2012-02-22 | 2013-08-29 | 华为技术有限公司 | 虚拟机分配方法和虚拟机分配装置 |
US20150127916A1 (en) * | 2012-04-25 | 2015-05-07 | Hewlett-Packard Development Company, L.P. | Dynamic memory allocation |
US9122418B2 (en) * | 2012-08-07 | 2015-09-01 | Xyratex Technology Limited—A Seagate Company | Method of controlling the capacity of a virtual storage system, and a virtual storage system |
US9152540B2 (en) | 2012-08-31 | 2015-10-06 | Oregon State Board Of Higher Education On Behalf Of Portland State University | System and methods for generating and managing a virtual device |
US9575788B2 (en) * | 2012-09-04 | 2017-02-21 | Red Hat Israel, Ltd. | Hypervisor handling of processor hotplug requests |
US9195585B2 (en) * | 2013-01-23 | 2015-11-24 | Vmware, Inc. | Techniques for allocating and surfacing host-side storage capacity to virtual machines |
US11669441B1 (en) | 2013-03-14 | 2023-06-06 | Amazon Technologies, Inc. | Secure virtual machine reboot via memory allocation recycling |
US9507540B1 (en) * | 2013-03-14 | 2016-11-29 | Amazon Technologies, Inc. | Secure virtual machine memory allocation management via memory usage trust groups |
US9323552B1 (en) | 2013-03-14 | 2016-04-26 | Amazon Technologies, Inc. | Secure virtual machine memory allocation management via dedicated memory pools |
US10095606B2 (en) * | 2014-06-20 | 2018-10-09 | Red Hat Israel, Ltd. | Guest-independent testing of guest firmware in virtualized systems |
CN104461731B (zh) * | 2014-10-23 | 2018-06-15 | 新华三技术有限公司 | 一种动态资源扩展中虚拟机资源回收方法和装置 |
CN107209685B (zh) * | 2015-01-27 | 2020-06-19 | 慧与发展有限责任合伙企业 | 虚拟机布置 |
US10491667B1 (en) | 2015-03-16 | 2019-11-26 | Amazon Technologies, Inc. | Customized memory modules in multi-tenant service provider systems |
CN105138389B (zh) * | 2015-07-30 | 2019-01-11 | 北京京东尚科信息技术有限公司 | 一种集群中虚拟设备的管理方法及系统 |
US10394586B2 (en) * | 2015-08-13 | 2019-08-27 | Red Hat Israel, Ltd. | Using capability indicators to indicate support for guest driven surprise removal of virtual PCI devices |
CN106959889A (zh) * | 2016-01-11 | 2017-07-18 | 阿里巴巴集团控股有限公司 | 一种服务器资源调整的方法和装置 |
GB201603469D0 (en) * | 2016-02-29 | 2016-04-13 | Ibm | Securely removing system capabilities from a logical partition |
US10459751B2 (en) * | 2017-06-30 | 2019-10-29 | ATI Technologies ULC. | Varying firmware for virtualized device |
WO2019024994A1 (en) * | 2017-08-02 | 2019-02-07 | Huawei Technologies Co., Ltd. | SYSTEM, METHOD AND COMPUTER PROGRAM FOR VIRTUAL MACHINE RESOURCE ALLOCATION |
WO2019028596A1 (zh) * | 2017-08-07 | 2019-02-14 | 深圳前海达闼云端智能科技有限公司 | 一种虚拟机的启动方法、装置和智能终端 |
US10782908B2 (en) | 2018-02-05 | 2020-09-22 | Micron Technology, Inc. | Predictive data orchestration in multi-tier memory systems |
US11416395B2 (en) * | 2018-02-05 | 2022-08-16 | Micron Technology, Inc. | Memory virtualization for accessing heterogeneous memory components |
US11099789B2 (en) | 2018-02-05 | 2021-08-24 | Micron Technology, Inc. | Remote direct memory access in multi-tier memory systems |
US10880401B2 (en) | 2018-02-12 | 2020-12-29 | Micron Technology, Inc. | Optimization of data access and communication in memory systems |
US10877892B2 (en) | 2018-07-11 | 2020-12-29 | Micron Technology, Inc. | Predictive paging to accelerate memory access |
US10852949B2 (en) | 2019-04-15 | 2020-12-01 | Micron Technology, Inc. | Predictive data pre-fetching in a data storage device |
US11494297B2 (en) * | 2020-07-23 | 2022-11-08 | Vmware, Inc. | Concurrent memory management in a computing system |
US11487694B1 (en) * | 2021-12-17 | 2022-11-01 | SambaNova Systems, Inc. | Hot-plug events in a pool of reconfigurable data flow resources |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4253145A (en) * | 1978-12-26 | 1981-02-24 | Honeywell Information Systems Inc. | Hardware virtualizer for supporting recursive virtual computer systems on a host computer system |
US4649479A (en) * | 1985-02-28 | 1987-03-10 | International Business Machines Corp. | Device driver and adapter binding technique |
JPH0799501B2 (ja) * | 1991-11-18 | 1995-10-25 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 複数アプリケーションの同時実行装置 |
US5898861A (en) * | 1996-10-18 | 1999-04-27 | Compaq Computer Corporation | Transparent keyboard hot plug |
JP2002041305A (ja) * | 2000-07-26 | 2002-02-08 | Hitachi Ltd | 仮想計算機システムにおける計算機資源の割当て方法および仮想計算機システム |
US20050108711A1 (en) * | 2003-11-13 | 2005-05-19 | Infineon Technologies North America Corporation | Machine instruction for enhanced control of multiple virtual processor systems |
US7467381B2 (en) * | 2003-12-16 | 2008-12-16 | Intel Corporation | Resource partitioning and direct access utilizing hardware support for virtualization |
US7971203B2 (en) * | 2004-03-05 | 2011-06-28 | Intel Corporation | Method, apparatus and system for dynamically reassigning a physical device from one virtual machine to another |
US7401240B2 (en) * | 2004-06-03 | 2008-07-15 | International Business Machines Corporation | Method for dynamically managing power in microprocessor chips according to present processing demands |
US7281124B2 (en) * | 2004-06-17 | 2007-10-09 | Intel Corporation | Establishing a virtual drive accessible to pre-boot and operating system runtime phases |
US8914606B2 (en) | 2004-07-08 | 2014-12-16 | Hewlett-Packard Development Company, L.P. | System and method for soft partitioning a computer system |
US20060107262A1 (en) * | 2004-11-03 | 2006-05-18 | Intel Corporation | Power consumption-based thread scheduling |
US20060184938A1 (en) * | 2005-02-17 | 2006-08-17 | Intel Corporation | Method, apparatus and system for dynamically reassigning memory from one virtual machine to another |
US20060294401A1 (en) * | 2005-06-24 | 2006-12-28 | Dell Products L.P. | Power management of multiple processors |
US7937701B2 (en) * | 2005-06-30 | 2011-05-03 | Intel Corporation | ACPI communication between virtual machine monitor and policy virtual machine via mailbox |
US20070074199A1 (en) * | 2005-09-27 | 2007-03-29 | Sebastian Schoenberg | Method and apparatus for delivering microcode updates through virtual machine operations |
US20070074067A1 (en) * | 2005-09-29 | 2007-03-29 | Rothman Michael A | Maintaining memory reliability |
US8777737B2 (en) * | 2006-04-13 | 2014-07-15 | Igt | Method and apparatus for integrating remotely-hosted and locally rendered content on a gaming device |
-
2007
- 2007-10-31 US US11/932,440 patent/US8281303B2/en active Active
-
2008
- 2008-10-16 EP EP08253359.7A patent/EP2056199A3/en not_active Withdrawn
- 2008-10-24 JP JP2008274368A patent/JP5376496B2/ja not_active Expired - Fee Related
- 2008-10-31 CN CN200810173958.5A patent/CN101425022B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
EP2056199A3 (en) | 2013-04-17 |
CN101425022A (zh) | 2009-05-06 |
JP2009110518A (ja) | 2009-05-21 |
EP2056199A2 (en) | 2009-05-06 |
US20090113422A1 (en) | 2009-04-30 |
CN101425022B (zh) | 2013-03-27 |
US8281303B2 (en) | 2012-10-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5376496B2 (ja) | 仮想マシンデバイスの動的割り当て | |
US7971203B2 (en) | Method, apparatus and system for dynamically reassigning a physical device from one virtual machine to another | |
CN106537340B (zh) | 虚拟化信息操纵系统的输入/输出加速设备和方法 | |
CN103034524B (zh) | 半虚拟化的虚拟gpu | |
CN102906691B (zh) | 虚拟机迁移技术 | |
US8972991B2 (en) | Systems and methods for exposing processor topology for virtual machines | |
KR102047558B1 (ko) | 가상 디스크 저장 기술 | |
EP1548589B1 (en) | Systems and methods for bimodal device virtualization of actual and idealized hardware-based devices | |
US20060184938A1 (en) | Method, apparatus and system for dynamically reassigning memory from one virtual machine to another | |
CN107430570B (zh) | 具有SR-IOV和xHCI-IOV的附加安全执行环境 | |
US10289564B2 (en) | Computer and memory region management method | |
JP2011100431A (ja) | 仮想マシン制御装置及び仮想マシン制御方法 | |
CN102402462A (zh) | 用于对启用gpu的虚拟机进行负载平衡的技术 | |
JP2008146566A (ja) | 計算機、仮想デバイスの制御方法およびそのプログラム | |
JP2022516486A (ja) | リソース管理方法と装置、電子デバイス、及び記録媒体 | |
WO2014120113A1 (en) | Assigning processors to memory mapped configuration | |
US10235195B2 (en) | Systems and methods for discovering private devices coupled to a hardware accelerator | |
JP6974510B2 (ja) | データを処理するための方法、装置、デバイス及び媒体 | |
US10776145B2 (en) | Systems and methods for traffic monitoring in a virtualized software defined storage architecture | |
CN107766122B (zh) | 一种宿主机的可用内存空间设置方法和装置 | |
CN116324706A (zh) | 分离式存储器池分配 | |
US8813075B2 (en) | Virtual computer system and method of installing virtual computer system | |
US20160026567A1 (en) | Direct memory access method, system and host module for virtual machine | |
CN111158849A (zh) | 支持虚拟机共享io设备的多机计算装置及其io设备共享方法 | |
CN117725014B (zh) | Dpu场景下的pcie设备属性修改方法及相关装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20111019 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130408 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130703 |
|
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: 20130830 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130918 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5376496 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R360 | Written notification for declining of transfer of rights |
Free format text: JAPANESE INTERMEDIATE CODE: R360 |
|
R360 | Written notification for declining of transfer of rights |
Free format text: JAPANESE INTERMEDIATE CODE: R360 |
|
R371 | Transfer withdrawn |
Free format text: JAPANESE INTERMEDIATE CODE: R371 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
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 |
|
LAPS | Cancellation because of no payment of annual fees |