JP5802841B2 - 仮想化処理の方法及び装置並びにコンピュータ・システム - Google Patents
仮想化処理の方法及び装置並びにコンピュータ・システム Download PDFInfo
- Publication number
- JP5802841B2 JP5802841B2 JP2014537456A JP2014537456A JP5802841B2 JP 5802841 B2 JP5802841 B2 JP 5802841B2 JP 2014537456 A JP2014537456 A JP 2014537456A JP 2014537456 A JP2014537456 A JP 2014537456A JP 5802841 B2 JP5802841 B2 JP 5802841B2
- Authority
- JP
- Japan
- Prior art keywords
- cache
- host
- dma
- hpa
- gpa
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
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/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
-
- 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/45545—Guest-host, i.e. hypervisor is an application program itself, e.g. VirtualBox
-
- 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/45579—I/O management, e.g. providing access to device drivers or storage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/002—Specific input/output arrangements not covered by G06F3/01 - G06F3/16
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Stored Programmes (AREA)
Description
ハードウェア層、ハードウェア層上で実行するホスト(Host)、及びHost上で実行する少なくとも1つの仮想マシン(VM)を含み、ここでハードウェア層は入出力(I/O)デバイスを含み、いくつかの対応する仮想機能(VF)デバイスは、I/Oデバイスを仮想化した仮想デバイスであり、HostはいくつかのVFソフトウェア・インスタンスを有し、VFソフトウェア・インスタンスの各々は幾つかかのVFデバイスのうちの異なるVFデバイスにそれぞれ対応し、HostはI/Oデバイスと同じタイプを有するI/O仮想デバイスのバックエンド・インスタンス(BE)をさらに有し、VMはI/O仮想デバイスのフロントエンド・インスタンス(FE)を有し、Host内のBEはアイドルVFソフトウェア・インスタンスと結合され、
方法は、
FEによって、直接メモリ・アクセス(DMA)用のキャッシュを事前に割り振ること、
BEと結合されたVFソフトウェア・インスタンスによって、BEをエクスポートするためのアプリケーション・プログラミング・インターフェース(API)を介してDMA用のキャッシュに対応するアドレスを獲得し、DMA用のキャッシュに対応する当該獲得したアドレスを、VFソフトウェア・インスタンスに対応するVFデバイスの第1の記憶ユニットに書き込むこと、受信されることになるデータが存在する場合、VFデバイスによって、第1の記憶ユニットからDMA用のキャッシュに対応するアドレスを選択し、DMA用のキャッシュに対応する当該選択されたアドレスをターゲット・アドレスとして使用することによりDMA書き込み要求を開始すること、VFソフトウェア・インスタンスが当該アドレスに対応するキャッシュに書き込まれたデータを受信するためにFEをトリガするように、DMA書き込み要求が実行された後に、VFデバイスによって、VFデバイスに対応するHost内のVFソフトウェア・インスタンスに通知することを含む。
入出力(I/O)デバイスのI/O仮想機能が実行可能とされた後に、ホスト(Host)内に幾つかのVFソフトウェア・インスタンスを生成する処理動作であって、幾つかの対応する仮想機能(VF)デバイスは、I/O仮想化機能が実行可能とされたI/Oデバイスを仮想化した仮想デバイスであり、Host内で生成されるVFソフトウェア・インスタンスの各々が幾つかのVFデバイスのうちの異なるVFデバイスにそれぞれ対応している、処理動作と、
Hostによって、I/Oデバイスと同じタイプを有するI/O仮想デバイスを作成する処理動作であって、I/O仮想デバイスのバックエンド・インスタンス(BE)はHost内に作成され、I/O仮想デバイスのフロントエンド・インスタンス(FE)は開始された仮想マシンVM内に作成される、処理動作と、さらに、
BEをアイドル状態のVFソフトウェア・インスタンスと結合する処理動作、
を含む仮想化処理方法を、さらに提供する。
ハードウェア層、ハードウェア層上で実行するホスト(Host)、及びHost上で実行する少なくとも1つの仮想マシン(VM)を含む、コンピューティング・ノードをさらに提供し、ここでハードウェア層は入出力(I/O)デバイスを含み、いくつかの対応する仮想機能(VF)デバイスがI/Oデバイスから仮想化され、Hostは幾つかのVFソフトウェア・インスタンスを有し、VFソフトウェア・インスタンスの各々は幾つかのVFデバイスのうちの異なるVFデバイスにそれぞれ対応し、HostはI/Oデバイスと同じタイプを有するI/O仮想デバイスのバックエンド・インスタンス(BE)をさらに有し、VMはI/O仮想デバイスのフロントエンド・インスタンス(FE)を有し、Host内のBEはアイドルVFソフトウェア・インスタンスと結合され、
FEは、直接メモリ・アクセス(DMA)用のキャッシュを事前に割り振るように構成され、
BEと結合されたVFソフトウェア・インスタンスは、BEをエクスポートするアプリケーション・プログラミング・インターフェース(API)を介してDMA用のキャッシュに対応するアドレスを獲得し、DMA用のキャッシュに対応する当該獲得したアドレスを、VFソフトウェア・インスタンスに対応するVFデバイスの第1の記憶ユニットに書き込むように構成され、
VFデバイスは、受信されることになるデータが存在する場合、第1の記憶ユニットからDMA用のキャッシュに対応するアドレスを選択し、DMA用のキャッシュに対応する当該選択されたアドレスをターゲット・アドレスとして使用することによりDMA書き込み要求を開始するように構成され、VFソフトウェア・インスタンスが当該アドレスに対応するキャッシュに書き込まれたデータを受信するためにFEをトリガするように、DMA書き込み要求が実行された後に、VFデバイスに対応するHost内のVFソフトウェア・インスタンスに通知するように構成される。
入出力(I/O)デバイスのI/O仮想機能が実行可能とされた後、ホスト(Host)内に幾つかのVFソフトウェア・インスタンスを生成するように構成され、幾つかの対応する仮想機能(VF)デバイスは、I/O仮想化機能が実行可能とされたI/Oデバイスを仮想化した仮想デバイスであり、Host内で生成されるVFソフトウェア・インスタンスの各々が幾つかのVFデバイスのうちの異なるVFデバイスにそれぞれ対応している、第1の作成モジュールと、
I/Oデバイスと同じタイプを有するI/O仮想デバイスを作成するように構成された、第2の作成モジュールであって、I/O仮想デバイスのバックエンド・インスタンス(BE)はHost内に作成され、I/O仮想デバイスのフロントエンド・インスタンス(FE)は開始された仮想マシン(VM)内に作成される、第2の作成モジュールと、さらに、
第2の作成モジュールによって作成されたBEを、第1の作成モジュールによって作成されたアイドル状態のVFソフトウェア・インスタンスと結合するように構成された、結合モジュールと、
を含むホストを、さらに提供する。
仮想マシン・ソフトウェアを介して1つ又は複数の仮想コンピュータを物理コンピュータ上でシミュレートすることが可能であり、それらの仮想マシンは実際のコンピュータとして動作し、仮想マシンにはオペレーティング・システム及びアプリケーション・プログラムをインストールすることが可能であり、仮想マシンは依然としてネットワーク・リソースにアクセスすることが可能である。仮想マシン内でアプリケーション・プログラムを実行する場合、仮想マシンは実際のコンピュータ内と全く同様の動作環境を提供する。
ハードウェア層は、仮想化環境で実行するハードウェア・プラットフォームである。ハードウェア層は、複数の異なるタイプのハードウェアを含むことが可能であり、例えばコンピューティング・ノードのハードウェア層はCPU及びメモリを含むことが可能であり、ネットワーク・カード及びストレージなどの高速/低速入出力(I/O, Input/Output)デバイスと、入出力メモリ管理ユニット(IOMMU, Input/Output Memory Management Unit)などの特定の処理機能を有する他のデバイスとを含むことが可能であり、IOMMUは仮想マシンの物理アドレス及びHostの物理アドレスを相互に変換するように構成することが可能である。
I/O仮想化機能が実行可能とされた後に、I/O仮想化機能を有するI/Oデバイスを仮想化することにより、対応する物理機能(PF, Physical Function)デバイス及びいくつかの仮想機能(VF, Virtual Function)デバイスを、仮想デバイスとして生成することが可能であり、I/Oデバイスから仮想化されたPFデバイスは主に管理機能としての役割を果たし、VFデバイスは主に処理機能としての役割を果たす。
管理層としてのホストは、ハードウェア・リソースに関する管理及び割り振りを完了し、仮想マシン用の仮想ハードウェア・プラットフォームを提示し、仮想マシン同士の間のスケジューリング及び隔離を実装するように、構成される。Hostは仮想マシン・モニタ(VMM)とすることが可能であり、さらに時折、VMMはHostを形成するために1つの特権仮想マシンと組み合わせることができる。仮想ハードウェア・プラットフォームは、プラットフォーム上で実行する仮想マシンに対して様々なハードウェア・リソースを提供し、例えば、仮想CPU、メモリ、仮想ディスク、仮想ネットワーク・カードなどを提供する。仮想ディスクは、Host上の1つのファイル又は1つの論理ブロック・デバイスに対応させることが可能である。仮想マシンは、Hostによって準備された仮想ハードウェア・プラットフォーム上で実行されており、Hostはホスト上で実行する1つ又は複数の仮想マシンを有することができる。
幾つかの対応する仮想機能(VF)デバイスは、I/O仮想化機能が実行可能とされたI/Oデバイスを仮想化した仮想デバイスとすることが可能であり、Host内で生成されるVFソフトウェア・インスタンスの各々が幾つかのVFデバイスのうちの異なるVFデバイスにそれぞれ対応している。例えばHostは、I/OデバイスのI/O仮想化機能が実行可能となるようにHostが開始された場合又は開始された後のある時点において、I/OデバイスのI/O仮想化機能を実行可能化することができる。さらに別の方法として、I/Oデバイスは、デバイスの電源が投入された後に、そのI/O仮想化機能を自動的に実行可能化することが可能であり、この場合、HostがI/OデバイスのI/O仮想化機能を実行可能化する必要はない。
ここで、例えばHostは、当該Hostが開始された場合又は開始された後のある時点において、I/OデバイスE−1のI/O仮想化機能を実行可能化することができる。対応する物理機能(PF)デバイス及び幾つかの仮想機能(VF)デバイスは、I/O仮想化機能が実行可能化されたI/OデバイスE−1を仮想化することにより生成可能であり、結局のところ、その他のモジュールを使用してI/OデバイスE−1を実行可能化することが可能であり、結局のところ、I/OデバイスE−1は、デバイスの電源が投入された時に、そのI/O仮想化機能を自動的に実行可能化することも可能であり、この場合、Host又はその他のモジュールがI/OデバイスE−1のI/O仮想化機能を実行可能化する必要はない。I/OデバイスE−1を仮想化することにより生成されたPFデバイスは主に管理機能の役割を果たし、VFデバイスは主に処理機能の役割を果たす。
ここでI/O仮想デバイスvE−1のバックエンド・インスタンス(BE)(例えばBE−1と呼ばれる)はHost内に作成され、I/O仮想デバイスvE−1のフロントエンド・インスタンス(FE)(例えば「FE−1」と呼ばれる)は開始されたVM(例えば「VM−1」と呼ばれる)内に作成される。例えばHostは、開始されたVM−1内のI/O仮想デバイスvE−1に対応するフロントエンド・インスタンスFE−1の作成をトリガすることができる。VM−1内に作成されるFE−1及びHost内に作成されるBE−1は、一般に、I/O仮想デバイスvE−1のドライバを構築するとみなすことができる。
ここでVFソフトウェア・インスタンスVfe−1は、例えば、I/OデバイスE−1を仮想化して成るVFデバイス(例えば「VF−1」と呼ばれる)に対応する。いわゆるアイドル状態のVFソフトウェア・インスタンスは、他のバックエンド・インスタンス(BE)と結合されていないVFソフトウェア・インスタンスである。
ここで、VFデバイスVF−1によって開始されたDMA書き込み要求はIOMMUを通ることになる。
ここで、例えばアドレス変換ページ・テーブルはIOMMU内に設定され、アドレス変換ページ・テーブルはGPAとHPAとの間のマッピング(例えば図6−bに示されるような)を記録する。DMA書き込み要求が通ると、IOMMUは、アドレス変換ページ・テーブルを検索することによって、DMA書き込み要求のターゲット・アドレスであるGPAに対応するHPAを獲得し、DMA書き込み要求のターゲット・アドレスGPAを当該獲得されたHPAに修正することができる。
ここで、例えばHostは、当該Hostが開始された場合又は開始された後のある時点において、I/OデバイスE−2のI/O仮想化機能を実行可能化することができる。対応する物理機能(PF)デバイス及び幾つかの仮想機能(VF)デバイスは、HostによってI/O仮想化機能が実行可能化されたI/OデバイスE−2を仮想化することによって生成可能であり、結局のところ、その他のモジュールを使用してI/OデバイスE−2を実行可能化することが可能であり、結局のところ、I/OデバイスE−2は、デバイスの電源が投入された時にそのI/O仮想化機能を自動的に実行可能化することも可能であり、この場合、Host又はその他のモジュールがI/OデバイスE−2のI/O仮想化機能を実行可能化する必要はない。I/OデバイスE−2を仮想化することによって生成されたPFデバイスは主に管理機能の役割を果たし、VFデバイスは主に処理機能の役割を果たす。
ここでI/O仮想デバイスvE−2のバックエンド・インスタンス(BE)(例えばBE−2と呼ばれる)はHost内に作成され、I/O仮想デバイスvE−2のフロントエンド・インスタンス(FE)(例えばFE−2と呼ばれる)は開始されたVM(例えば「VM−2」と呼ばれる)内に作成される。例えばHostは、開始されたVM−2内のI/O仮想デバイスvE−2に対応するフロントエンド・インスタンスFE−2の作成をトリガすることができる。VM−2内に作成されるFE−2及びHost内に作成されるBE−2は、一般に、I/O仮想デバイスvE−2のドライバを構築するとみなすことができる。
ここでVFソフトウェア・インスタンスVfe−2は、例えば、I/OデバイスE−2から仮想化されたVFデバイス(例えば「VF−2」と呼ばれる)に対応する。いわゆるアイドル状態のVFソフトウェア・インスタンスは、他のバックエンド・インスタンス(BE)と結合されていないVFソフトウェア・インスタンスである。
ここで、例えばアドレス変換ページ・テーブルはHost内に設定され、アドレス変換ページ・テーブルはGPAとHPAとの間のマッピング(例えば図7−bに示されるような)を記録する。アドレス変換ページ・テーブルを検索することによって、Hostは、DMA用のキャッシュに対応するGPAに対応するHPAを獲得し、DMA用のキャッシュに対応するGPAを、当該獲得したHPAに修正することができる。
ここで、例えばHostは、当該Hostが開始された場合又は開始された後のある時点において、I/OデバイスE−3のI/O仮想化機能を実行可能化することができる。対応する物理機能(PF)デバイス及び幾つかの仮想機能(VF)デバイスは、I/O仮想化機能が実行可能化されたI/OデバイスE−3を仮想化することによって生成可能であり、結局のところ、その他のモジュールを使用してI/OデバイスE−3を実行可能化することが可能であり、結局のところ、I/OデバイスE−3は、デバイスの電源が投入された時にそのI/O仮想化機能を自動的に実行可能化することも可能であり、この場合、Host又はその他のモジュールがI/OデバイスE−3のI/O仮想化機能を実行可能化する必要はない。I/OデバイスE−3を仮想化することによって生成されたPFデバイスは主に管理機能の役割を果たし、VFデバイスは主に処理機能の役割を果たす。
ここでI/O仮想デバイスvE−3のバックエンド・インスタンス(BE)(例えばBE−3と呼ばれる)はHost内に作成され、I/O仮想デバイスvE−3のフロントエンド・インスタンス(FE)(例えば「FE−3」と呼ばれる)は開始されたVM(例えば「VM−3」と呼ばれる)内に作成される。例えばHostは、開始されたVM−3内のI/O仮想デバイスvE−3に対応するフロントエンド・インスタンスFE−3の作成をトリガすることができる。VM−3内に作成されるFE−3及びHost内に作成されるBE−3は、一般に、I/O仮想デバイスvE−3のドライバを構築するとみなすことができる。
ここでVFソフトウェア・インスタンスVfe−3は、例えば、I/OデバイスE−3から仮想化されたVFデバイス(例えば「VF−3」と呼ばれる)に対応する。いわゆるアイドル状態のVFソフトウェア・インスタンスは、他のバックエンド・インスタンス(BE)と結合されていないVFソフトウェア・インスタンスである。
ここでVFデバイスVF−3は、例えばVFデバイスの送信キューを定期的又は不定期に検出することが可能であり、GPAが送信キュー内に新規に書き込まれたことが見つかった場合、送信されることになるデータが存在するものとみなすか、又はVFソフトウェア・インスタンスVfe−3は、GPAが送信キュー内に新規に書き込まれた後にVFデバイスVF−3に通知することが可能であり、
ここで、VFデバイスVF−3によって開始されたDMA読み取り要求はIOMMUを通ることになる。
ここで、例えばアドレス変換ページ・テーブルはIOMMU内に設定され、アドレス変換ページ・テーブルはGPAとHPAとの間のマッピング(例えば図8−bに示されるような)を記録する。DMA読み取り要求が通ると、IOMMUは、アドレス変換ページ・テーブルを検索することによって、DMA読み取り要求のターゲット・アドレスであるGPAに対応するHPAを獲得し、DMA読み取り要求のターゲット・アドレスGPAを当該獲得されたHPAに修正することができる。
ここで、例えばHostは、当該Hostが開始された場合又は開始された後のある時点において、I/OデバイスE−4のI/O仮想化機能を実行可能化することができる。対応する物理機能(PF)デバイス及び幾つかの仮想機能(VF)デバイスは、I/O仮想化機能が実行可能化されたI/OデバイスE−4を仮想化することにより生成可能であり、結局のところ、その他のモジュールを使用してI/OデバイスE−4を実行可能化することが可能であり、結局のところ、I/OデバイスE−4は、デバイスの電源が投入された時にそのI/O仮想化機能を自動的に実行可能化することも可能であり、この場合、Host又はその他のモジュールがI/OデバイスE−4のI/O仮想化機能を実行可能化する必要はない。I/OデバイスE−4を仮想化することによって生成されたPFデバイスは主に管理機能の役割を果たし、VFデバイスは主に処理機能の役割を果たす。
ここでI/O仮想デバイスvE−4のバックエンド・インスタンス(BE)(例えばBE−4と呼ばれる)はHost内に作成され、I/O仮想デバイスvE−4のフロントエンド・インスタンス(FE)(例えばFE−4と呼ばれる)は開始されたVM(例えば「VM−4」と呼ばれる)内に作成される。例えばHostは、開始されたVM−4内のI/O仮想デバイスvE−4に対応するフロントエンド・インスタンスFE−4の作成をトリガすることができる。VM−4内に作成されるFE−4及びHost内に作成されるBE−4は、一般に、I/O仮想デバイスvE−4のドライバを構築するとみなすことができる。
ここでVFソフトウェア・インスタンスVfe−4は、例えば、I/OデバイスE−4を仮想化することによって生成されたVFデバイス(例えばVF−4と呼ばれる)に対応する。いわゆるアイドル状態のVFソフトウェア・インスタンスは、他のバックエンド・インスタンス(BE)と結合されていないVFソフトウェア・インスタンスである。
ここで、例えばアドレス変換ページ・テーブルはHost内に設定され、アドレス変換ページ・テーブルはGPAとHPAとの間のマッピング(例えば図9−bに示されるような)を記録する。アドレス変換ページ・テーブルを検索することによって、Hostは、例えば、送信されることになるデータが位置するキャッシュに対応するGPAと対応するHPAを獲得し、送信されることになるデータが位置するキャッシュに対応するGPAを、当該獲得したHPAに修正することができる。
ここでVFデバイスVF−4は、例えばVFデバイスの送信キューを定期的又は不定期に検出することが可能であり、HPAが送信キュー内に新規に書き込まれたことが見つかった場合、送信されることになるデータが存在するものとみなすか、又はVFソフトウェア・インスタンスVfe−4は、HPAが送信キュー内に新規に書き込まれた後にVFデバイスVF−4に通知することが可能である。
第1の作成モジュール1010、第2の作成モジュール1020、及び結合モジュール1030を含むことが可能であり、
第1の作成モジュール1010は、入出力(I/O)デバイスのI/O仮想化機能が実行可能化された後に、Host1000内に幾つかのVFソフトウェア・インスタンスを生成するように構成され、幾つかの対応する仮想機能(VF)デバイスは、I/O仮想化機能が実行可能化されたI/Oデバイスを仮想化することによって生成され、Host1000内で生成されるVFソフトウェア・インスタンスの各々が幾つかのVFデバイスのうちの異なるVFデバイスにそれぞれ対応しており、
第2の作成モジュール1020は、I/Oデバイスと同じタイプを有するI/O仮想デバイスを作成するように構成され、
I/O仮想デバイスのバックエンド・インスタンス(BE)はHost1000内に作成され、I/O仮想デバイスのフロントエンド・インスタンス(FE)は開始された仮想マシンVM内に作成され、さらに、
結合モジュール1030は、第2の作成モジュール1020によって作成されたBEを、第1の作成モジュール1010によって作成されたアイドル状態のVFソフトウェア・インスタンスと結合するように構成される。
ハードウェア層1110、ハードウェア層1110上で実行されるHost1120、及びHost1120上で実行される少なくとも1つの仮想マシンVM1130、
を含むことができる。
BE1122をエクスポートするアプリケーション・プログラミング・インターフェース(API)を介してDMA用のキャッシュに対応するアドレスを獲得し、DMA用のキャッシュに対応する当該獲得したアドレスを、VFソフトウェア・インスタンス1121に対応するVFデバイス11111の第1の記憶ユニットに書き込む。
VFデバイス11111によって開始されたDMA書き込み要求のターゲット・アドレスであるGPAを、これと対応するHost物理アドレスHPAに修正するように構成された、入出力メモリ管理ユニットIOMMU1112を、
さらに含むことができる。
VFデバイス11111によって開始されたDMA読み取り要求のターゲット・アドレスであるGPAを、これと対応するHPAに修正するように構成された、入出力メモリ管理ユニットIOMMU1112を、
さらに含むことができる。
少なくとも1つのコンピューティング・ノード1100を含むことができる。
ハードウェア層、ハードウェア層上で実行されるHost、及びHost上で実行される少なくとも1つのVMを含み、ハードウェア層は入出力I/Oデバイスを含み、幾つかの対応する仮想機能(VF)デバイスがI/Oデバイスを仮想化することによって生成され、Hostは幾つかのVFソフトウェア・インスタンスを有し、VFソフトウェア・インスタンスの各々は、幾つかのVFデバイスのうちの異なるVFデバイスにそれぞれ対応し、HostはI/Oデバイスと同じタイプを有するI/O仮想デバイスのバックエンド・インスタンス(BE)をさらに有し、VMはI/O仮想デバイスのフロントエンド・インスタンス(FE)を有し、Host内のBEはアイドル状態のVFソフトウェア・インスタンスと結合される。このように、各VMが独立に1つのVFデバイスを使用することが可能なアプリケーション・アーキテクチャが確立され、FEがHost内のBEを介してVFデバイスにアクセスできるように、I/Oデバイスを仮想化して成る1つのVFデバイスと1つのVM内のフロントエンド・インスタンス(FE)との間にチャネルが通される。I/Oデバイスを仮想化して成るVFデバイスは、使用のためにVMに別々に割り振られ、VFデバイスは高効率のデバイス・インターフェースを提供することが可能であるため、VMにとって、物理マシンと同様の性能を獲得し、遅延が少なく、如何なる特別なCPUオーバヘッドもほとんど発生しない点は有益である。さらに、I/O仮想デバイスのフロントエンド(FE)ドライブ(すなわちFE)はVM内にあるため、FEは、Host内のバックエンド(BE)ドライブ(すなわちBE)を介してデータを転送し、VMはHostの実際の物理デバイスを意識する必要が無く、これはデバイス共有の遷移及び実装にとって便利な点であって、それにより仮想化システムの互換性の最適化を実現することができる。さらに、VM内のOSが最新のハードウェア技術をサポートする機能を有する必要はなく、コンピューティング・ノードは、ハードウェア・プロバイダ(IHV)によって提供されるVMドライブに依存することなく、様々な主流のOSに適用可能であり、仮想マシンと物理プラットフォームとの間の隔離状態及び分離状態は完全に保存され、仮想マシンを容易に遷移させることが可能であり、Hostは依然としてVM内のデータの受信及び送信を監視可能であり、データのフィルタリング及びメモリの多重化などの高度な機能が依然として使用可能であり、PVのフロントエンドのFE部分は多重化可能であり、アップグレード操作を実行するのに便利である。
Claims (18)
- 入出力(I/O)デバイスのI/O仮想機能(VF)が実行可能とされた後に、Host内にいくつかの仮想機能(VF)ソフトウェア・インスタンスを生成するステップであって、いくつかの対応するVFデバイスは、前記実行可能とされたI/O VFによって前記I/Oデバイスから仮想化され、前記いくつかのVFソフトウェア・インスタンス及び前記いくつかのVFデバイスは一対一の対応関係にある、生成するステップと、
前記Hostによって、前記I/Oデバイスと同じタイプを有するI/O仮想デバイスを作成するステップであって、前記I/O仮想デバイスのバックエンド・インスタンス(BE)は前記Host内に作成され、前記I/O仮想デバイスのフロントエンド・インスタンス(FE)は開始された仮想マシンVM内に作成される、作成するステップ、及び、
前記BEをアイドル状態のVFソフトウェア・インスタンスと結合するステップ、
を含む、仮想化処理方法。 - コンピューティング・ノードに適用される仮想化処理方法であって、前記コンピューティング・ノードは、ハードウェア層、前記ハードウェア層上で実行されるHost、及び前記Host上で実行される少なくとも1つの仮想マシン(VM)を備え、前記ハードウェア層は入出力(I/O)デバイスを備え、いくつかの対応する仮想機能(VF)デバイスは前記I/Oデバイスから仮想化され、前記HostはいくつかのVFソフトウェア・インスタンスを有し、前記いくつかのVFソフトウェア・インスタンス及び前記いくつかのVFデバイスは一対一の対応関係にあり、
前記Hostは前記I/Oデバイスと同じタイプを有するI/O仮想デバイスのバックエンド・インスタンス(BE)をさらに有し、
前記VMは前記I/O仮想デバイスのフロントエンド・インスタンス(FE)を有し、前記Host内の前記BEはアイドル状態のVFソフトウェア・インスタンスと結合され、
前記方法は、
前記FEによって、ダイレクト・メモリ・アクセス(DMA)用のキャッシュを事前に割り当てるステップと、
前記BEと結合された前記VFソフトウェア・インスタンスによって、前記BEのエクスポート・アプリケーション・プログラミング・インタフェースを介して前記DMA用のキャッシュに対応するアドレスを獲得し、前記DMA用のキャッシュに対応する前記獲得したアドレスを、前記VFソフトウェア・インスタンスに対応するVFデバイスの第1の記憶ユニットに書き込むステップと、
受信対象のデータが存在する場合、前記VFデバイスによって、前記第1の記憶ユニットから前記DMA用のキャッシュに対応する前記アドレスを選択し、前記選択されたアドレスをターゲット・アドレスとして使用することにより、DMA書き込み要求を開始するステップと、
前記VFソフトウェア・インスタンスが前記アドレスに対応する前記キャッシュに書き込まれた前記データを受信するために前記FEをトリガするようにするために、前記DMA書き込み要求が実行された後に、前記VFデバイスによって、前記VFデバイスに対応し前記Host内にある前記VFソフトウェア・インスタンスに通知するステップ、
を含む、仮想化処理方法。 - 前記ハードウェア層は入出力(I/O)メモリ管理ユニット(IOMMU)をさらに備え、
前記方法は、
前記FEによって、前記DMA用の事前に割り当てられたキャッシュに対応するゲスト物理アドレスGPAを、前記Hostと前記VMとの間の共有メモリに書き込むステップ、
をさらに含み、
前記BEと結合された前記VFソフトウェア・インスタンスによって、前記BEの前記エクスポート・アプリケーション・プログラミング・インタフェースを介して前記DMA用のキャッシュに対応する前記アドレスを獲得し、前記DMA用のキャッシュに対応する前記獲得したアドレスを、前記VFソフトウェア・インスタンスに対応する前記VFデバイスの前記第1の記憶ユニットに書き込み、受信対象のデータが存在する場合、前記VFデバイスによって、前記第1の記憶ユニットから前記DMA用のキャッシュに対応する前記アドレスを選択し、前記選択されたアドレスを前記ターゲット・アドレスとして使用することにより、前記DMA書き込み要求を開始するステップは、
前記BEと結合された前記VFソフトウェア・インスタンスによって、前記BEの前記エクスポート・アプリケーション・プログラミング・インタフェースを介して、前記共有メモリから前記DMA用のキャッシュに対応する前記GPAを獲得し、前記DMA用のキャッシュに対応する前記獲得したGPAを、前記VFソフトウェア・インスタンスに対応する前記VFデバイスの前記第1の記憶ユニットに書き込むステップ、及び、
受信対象のデータが存在する場合、前記VFデバイスによって、前記第1の記憶ユニットから前記DMA用のキャッシュに対応する前記GPAを選択し、前記選択されたGPAを前記ターゲット・アドレスとして使用することにより、前記DMA書き込み要求を開始するステップ、
を含み、
前記方法は、
前記IOMMUによって、前記DMA書き込み要求の前記ターゲット・アドレスGPAを、対応するHost物理アドレス(HPA)に修正するステップ、
をさらに含み、
前記VFソフトウェア・インスタンスが前記アドレスに対応する前記キャッシュに書き込まれた前記データを受信するために前記FEをトリガするようにするために、前記DMA書き込み要求が実行された後に、前記VFデバイスによって、前記VFデバイスに対応し前記Host内にある前記VFソフトウェア・インスタンスに通知するステップは、
前記VFソフトウェア・インスタンスが前記HPAに対応する前記キャッシュに書き込まれた前記データを受信するために前記FEをトリガするようにするために、ターゲット・アドレスが前記HPAに修正された前記DMA書き込み要求が実行された後に、前記VFデバイスによって、前記VFデバイスに対応し前記Host内にある前記VFソフトウェア・インスタンスに通知するステップ、
をさらに含む、請求項2に記載の方法。 - 前記FEによって、前記DMA用の前記事前に割り当てられたキャッシュに対応するGPAを、前記Hostと前記VMとの間の共有メモリに書き込むステップと、
前記Hostによって、前記共有メモリ内の前記DMA用のキャッシュに対応する前記GPAを、対応するHPAに修正するステップ、
をさらに含み、
前記BEと結合された前記VFソフトウェア・インスタンスによって、前記BEの前記エクスポート・アプリケーション・プログラミング・インターフェースを介して前記DMA用のキャッシュに対応する前記アドレスを獲得し、前記DMA用のキャッシュに対応する前記獲得したアドレスを、前記VFソフトウェア・インスタンスに対応する前記VFデバイスの前記第1の記憶ユニットに書き込み、受信対象のデータが存在する場合、前記VFデバイスによって、前記第1の記憶ユニットから前記DMA用のキャッシュに対応する前記アドレスを選択し、前記選択されたアドレスを前記ターゲット・アドレスとして使用することにより、前記DMA書き込み要求を開始するステップは、
前記BEと結合された前記VFソフトウェア・インスタンスによって、前記BEの前記エクスポート・アプリケーション・プログラミング・インターフェースを介して前記DMA用のキャッシュに対応する前記HPAを獲得し、前記DMA用のキャッシュに対応する前記獲得したHPAを、前記VFソフトウェア・インスタンスに対応する前記VFデバイスの前記第1の記憶ユニットに書き込むステップ、及び
受信対象のデータが存在する場合、前記VFデバイスによって、前記第1の記憶ユニットから前記DMA用のキャッシュに対応する前記HPAを選択し、前記選択されたHPAを前記ターゲット・アドレスとして使用することにより、前記DMA書き込み要求を開始するステップ、
を含む、請求項2に記載の方法。 - 前記ハードウェア層は入出力(I/O)メモリ管理ユニット(IOMMU)をさらに備え、
前記方法は、
前記FEによって、送信対象のデータが位置するキャッシュに対応するGPAを、前記Hostと前記VMとの間の共有メモリに書き込むステップと、
前記BEによって、前記送信対象のデータが位置する前記キャッシュに対応する前記GPAを前記共有メモリから獲得するステップと、
前記BEによって、前記BEと結合された前記VFソフトウェア・インスタンスのプログラム送信インターフェースを呼び出し、前記送信対象のデータが位置する前記キャッシュに対応する前記GPAを、前記VFソフトウェア・インスタンスに対応する前記VFデバイスの第2の記憶ユニットに書き込むステップと、
前記送信対象のデータが見つかった場合、前記VFデバイスによって、前記第2の記憶ユニット内に記録された前記GPAをターゲット・アドレスとして使用することにより、DMA読み取り要求を開始するステップと、及び
前記IOMMUによって、前記DMA読み取り要求の前記ターゲット・アドレスGPAを、対応するHPAに修正するステップ、
をさらに含む、請求項2に記載の方法。 - 前記FEによって、送信対象のデータが位置するキャッシュに対応するGPAを、前記Hostと前記VMとの間の共有メモリに書き込むステップと、
前記Hostによって、前記共有メモリ内の前記送信対象のデータが位置するキャッシュに対応する前記GPAを、対応するHPAに修正するステップと、
前記BEによって、前記送信対象のデータが位置する前記キャッシュに対応する前記HPAを獲得し、前記BEと結合された前記VFソフトウェア・インスタンスのプログラム送信インターフェースを呼び出し、前記送信対象のデータが位置する前記キャッシュに対応する前記HPAを、前記VFソフトウェア・インスタンスに対応する前記VFデバイスの第2の記憶ユニットに書き込むステップと、及び
前記送信対象のデータが見つかった場合、前記VFデバイスによって、前記第2の記憶ユニット内に記録された前記HPAをターゲット・アドレスとして使用することにより、DMA読み取り要求を開始するステップ、
をさらに含む、請求項2に記載の方法。 - 前記VFソフトウェア・インスタンスが前記対応するキャッシュを解放するために前記FEをトリガするように、前記DMA読み取り要求が実行された後、前記VFデバイスが、前記Host内において前記VFデバイスに対応する前記VFソフトウェア・インスタンスに通知することをさらに含む、請求項5又は6に記載の方法。
- アドレス変換ページ・テーブルは前記IOMMU内に設定され、前記アドレス変換ページ・テーブルは前記HPAと前記GPAとの間のマッピングを記録し、
前記IOMMUによって、前記DMA書き込み要求の前記ターゲット・アドレスGPAを、対応するHost物理アドレス(HPA)に修正するステップは、
前記IOMMUによって、前記アドレス変換ページ・テーブルを検索することによって、前記DMA書き込み要求の前記ターゲット・アドレスGPAに対応する前記HPAを獲得し、前記DMA書き込み要求の前記ターゲット・アドレスGPAを、前記獲得されたHPAに修正するステップを含むか、
又は、
前記IOMMUによって、前記DMA読み取り要求の前記ターゲット・アドレスGPAを、対応するHPAに修正するステップは、
前記IOMMUによって、前記アドレス変換ページ・テーブルを検索することによって、前記DMA読み取り要求の前記ターゲット・アドレスGPAに対応する前記HPAを獲得し、前記DMA読み取り要求の前記ターゲット・アドレスGPAを、前記獲得されたHPAに修正するステップを含む、
請求項3又は5に記載の方法。 - アドレス変換ページ・テーブルは前記Host内に設定され、前記アドレス変換ページ・テーブルは前記HPAと前記GPAとの間のマッピングを記録し、
前記Hostによって、前記共有メモリ内の前記DMA用のキャッシュに対応する前記GPAを前記対応するHPAに修正するステップは、
前記アドレス変換ページ・テーブルを検索することにより、前記Hostによって、前記共有メモリ内の前記DMA用のキャッシュに対応する前記GPAに対応する前記HPAを獲得し、前記共有メモリ内の前記DMA用のキャッシュに対応する前記GPAを前記獲得されたHPAに修正するステップを含むか、
又は、
前記Hostによって、前記共有メモリ内の送信対象のデータが位置する前記キャッシュに対応する前記GPAを、対応するHPAに修正するステップは、
前記アドレス変換ページ・テーブルを検索することにより、前記Hostによって、前記共有メモリ内の前記送信対象のデータが位置する前記キャッシュに対応する前記GPAと対応する前記HPAを獲得し、前記共有メモリ内の前記送信対象のデータが位置する前記キャッシュに対応する前記GPAを、前記獲得されたHPAに修正するステップを含む、
請求項4又は6に記載の方法。 - 前記第1の記憶ユニットは受信キューである、及び/又は
前記第2の記憶ユニットは送信キューである、
請求項2から6のいずれか一項に記載の方法。 - ハードウェア層、前記ハードウェア層上で実行されるHost、及び前記Host上で実行される少なくとも1つの仮想マシン(VM)を備える、コンピューティング・ノードであって、前記ハードウェア層は入出力(I/O)デバイスを備え、いくつかの対応する仮想機能(VF)デバイスは前記I/Oデバイスから仮想化され、前記HostはいくつかのVFソフトウェア・インスタンスを有し、前記いくつかのVFソフトウェア・インスタンス及び前記いくつかのVFデバイスは、一対一の対応関係にあり、前記Hostは前記I/Oデバイスと同じタイプを有するI/O仮想デバイスのバックエンド・インスタンス(BE)をさらに有し、前記VMは前記I/O仮想デバイスのフロントエンド・インスタンス(FE)を有し、前記Host内の前記BEはアイドル状態のVFソフトウェア・インスタンスと結合される、コンピューティング・ノード。
- 前記FEは、ダイレクト・メモリ・アクセス(DMA)用のキャッシュを事前に割り当てるように構成され、
前記BEと結合された前記VFソフトウェア・インスタンスは、前記BEのエクスポート・アプリケーション・プログラミング・インターフェースを介して前記DMA用のキャッシュに対応するアドレスを獲得し、前記DMA用のキャッシュに対応する前記獲得したアドレスを、前記VFソフトウェア・インスタンスに対応するVFデバイスの第1の記憶ユニットに書き込むように構成され、
前記VFデバイスは、受信対象のデータが存在する場合、前記第1の記憶ユニットから前記DMA用のキャッシュに対応する前記アドレスを選択し、前記DMA用のキャッシュに対応する前記選択されたアドレスをターゲット・アドレスとして使用することにより、DMA書き込み要求を開始し、前記VFソフトウェア・インスタンスが前記アドレスに対応する前記キャッシュに書き込まれた前記データを受信するために前記FEをトリガするように、前記DMA書き込み要求が実行された後に、前記VFデバイスに対応し前記Host内にある前記VFソフトウェア・インスタンスに通知するように構成される、
請求項11に記載のコンピューティング・ノード。 - 前記FEは、前記DMA用の事前に割り当てられたキャッシュに対応するゲスト物理アドレス(GPA)を、前記Hostと前記VMとの間の共有メモリに書き込むようにさらに構成され、
前記BEと結合された前記VFソフトウェア・インスタンスは、前記BEのエクスポート・アプリケーション・プログラミング・インターフェースを介して、前記共有メモリから前記DMA用のキャッシュに対応する前記GPAを獲得し、前記DMA用のキャッシュに対応する前記獲得されたGPAを、前記VFソフトウェア・インスタンスに対応する前記VFデバイスの前記第1の記憶ユニットに書き込むように、具体的に構成され、
前記VFは、受信対象のデータが存在する場合、前記第1の記憶ユニットから前記DMA用のキャッシュに対応する前記GPAを選択し、前記DMA用のキャッシュに対応する前記選択されたGPAをターゲット・アドレスとして使用することにより、前記DMA書き込み要求を開始し、前記VFソフトウェア・インスタンスが前記HPAに対応する前記キャッシュに書き込まれた前記データを受信するために前記FEをトリガするように、ターゲット・アドレスGPAが対応するHPAに修正された前記DMA書き込み要求が実行された後に、前記VFデバイスに対応し前記Host内にある前記VFソフトウェア・インスタンスに通知するように、具体的に構成され、
前記コンピューティング・ノードの前記ハードウェア層は、
前記DMA書き込み要求の前記ターゲット・アドレスGPAを、対応するHost物理アドレス(HPA)に修正するように構成された、入出力(I/O)メモリ管理ユニット(IOMMU)をさらに備える、
請求項12に記載のコンピューティング・ノード。 - 前記FEは、前記DMA用の前記事前に割り当てられたキャッシュに対応するGPAを、前記Hostと前記VMとの間の共有メモリに書き込むように構成され、
前記Hostは、前記共有メモリ内の前記DMA用のキャッシュに対応する前記GPAを、対応するHPAに修正するように構成され、
前記BEと結合された前記VFソフトウェア・インスタンスは、前記BEの前記エクスポート・アプリケーション・プログラミング・インターフェースを介して前記DMA用のキャッシュに対応する前記HPAを獲得し、前記DMA用のキャッシュに対応する前記獲得したHPAを、前記VFソフトウェア・インスタンスに対応する前記VFデバイスの前記第1の記憶ユニットに書き込むように、具体的に構成され、
受信対象のデータが存在する場合、前記VFデバイスは、前記第1の記憶ユニットから前記DMA用のキャッシュに対応する前記HPAを選択し、前記選択されたHPAをターゲット・アドレスとして使用することにより、前記DMA書き込み要求を開始し、前記VFソフトウェア・インスタンスが前記HPAに対応する前記キャッシュに書き込まれた前記データを受信するために前記FEをトリガするように、前記DMA書き込み要求が実行された後に、前記VFデバイスに対応し前記Host内にある前記VFソフトウェア・インスタンスに通知するように、具体的に構成される、
請求項12に記載のコンピューティング・ノード。 - 前記FEは、送信対象のデータが位置するキャッシュに対応するGPAを、前記Hostと前記VMとの間の共有メモリに書き込むようにさらに構成され、
前記BEは、前記送信対象のデータが位置する前記キャッシュに対応する前記GPAを前記共有メモリから獲得し、前記BEと結合された前記VFソフトウェア・インスタンスのプログラム送信インターフェースを呼び出し、前記送信対象のデータが位置する前記キャッシュに対応する前記GPAを、前記VFソフトウェア・インスタンスに対応する前記VFデバイスの第2の記憶ユニットに書き込むように、さらに構成され、
前記VFデバイスは、前記送信対象のデータが見つかった場合、前記第2の記憶ユニット内に記録された前記GPAをターゲット・アドレスとして使用することにより、DMA読み取り要求を開始するように構成され、
前記コンピューティング・ノードの前記ハードウェア層は、
前記DMA読み取り要求の前記ターゲット・アドレスGPAを、対応するHPAに修正するように構成された、入出力(I/O)メモリ管理ユニット(IOMMU)をさらに備える、
請求項12に記載のコンピューティング・ノード。 - 前記FEは、送信対象のデータが位置するキャッシュに対応するGPAを、前記Hostと前記VMとの間の共有メモリに書き込むようにさらに構成され、
前記Hostは、前記共有メモリ内の前記送信対象のデータが位置するキャッシュに対応する前記GPAを、対応するHPAに修正するように構成され、
前記BEは、前記送信対象のデータが位置する前記キャッシュに対応する前記HPAを獲得し、前記BEと結合された前記VFソフトウェア・インスタンスのプログラム送信インターフェースを呼び出し、前記送信対象のデータが位置する前記キャッシュに対応する前記HPAを、前記VFソフトウェア・インスタンスに対応する前記VFデバイスの第2の記憶ユニットに書き込むように、さらに構成され、
前記VFデバイスは、前記送信対象のデータが見つかった場合、前記第2の記憶ユニット内に記録された前記HPAをターゲット・アドレスとして使用することにより、DMA読み取り要求を開始するようにさらに構成される、
請求項12に記載のコンピューティング・ノード。 - 前記VFデバイスは、前記対応するキャッシュを解放するために前記VFソフトウェア・インスタンスが前記FEをトリガするように、前記DMA読み取り要求が実行された後に、前記VFデバイスに対応し前記Host内にある前記VFソフトウェア・インスタンスに通知するようにさらに構成される、
請求項15又は16に記載のコンピューティング・ノード。 - 請求項12から17のいずれか一項に記載の1つ又は複数のコンピューティング・ノードを備える、コンピュータ・システム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110458345.8A CN102591702B (zh) | 2011-12-31 | 2011-12-31 | 虚拟化处理方法及相关装置和计算机系统 |
CN201110458345.8 | 2011-12-31 | ||
PCT/CN2012/075846 WO2012149912A1 (zh) | 2011-12-31 | 2012-05-22 | 虚拟化处理方法及相关装置和计算机系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014531093A JP2014531093A (ja) | 2014-11-20 |
JP5802841B2 true JP5802841B2 (ja) | 2015-11-04 |
Family
ID=46480412
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014537456A Active JP5802841B2 (ja) | 2011-12-31 | 2012-05-22 | 仮想化処理の方法及び装置並びにコンピュータ・システム |
Country Status (8)
Country | Link |
---|---|
US (2) | US8635616B2 (ja) |
EP (1) | EP2743829B1 (ja) |
JP (1) | JP5802841B2 (ja) |
KR (2) | KR101740521B1 (ja) |
CN (1) | CN102591702B (ja) |
AU (1) | AU2012250375B2 (ja) |
RU (1) | RU2573219C2 (ja) |
WO (1) | WO2012149912A1 (ja) |
Families Citing this family (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9239909B2 (en) * | 2012-01-25 | 2016-01-19 | Bromium, Inc. | Approaches for protecting sensitive data within a guest operating system |
US9244743B1 (en) | 2012-08-01 | 2016-01-26 | Amazon Technologies, Inc. | Remotely interacting with a virtualized machine instance |
CN102946366B (zh) * | 2012-11-12 | 2015-12-16 | 杭州华为数字技术有限公司 | 带内管理方法及系统 |
US9454392B2 (en) * | 2012-11-27 | 2016-09-27 | Red Hat Israel, Ltd. | Routing data packets between virtual machines using shared memory without copying the data packet |
US9535871B2 (en) | 2012-11-27 | 2017-01-03 | Red Hat Israel, Ltd. | Dynamic routing through virtual appliances |
CN103870312B (zh) * | 2012-12-12 | 2018-01-23 | 华为技术有限公司 | 建立虚拟机共享存储缓存的方法及装置 |
CN103116517B (zh) * | 2013-01-24 | 2016-09-14 | 华为技术有限公司 | 虚拟化平台下i/o通道的调整方法和调整装置 |
US9195483B2 (en) * | 2013-01-28 | 2015-11-24 | Dell Products L.P. | Systems and methods for mirroring virtual functions in a chassis configured to receive a plurality of modular information handling systems and a plurality of modular information handling resources |
GB2514107B (en) * | 2013-05-13 | 2020-07-29 | Advanced Risc Mach Ltd | Page table data management |
CN103389884A (zh) * | 2013-07-29 | 2013-11-13 | 华为技术有限公司 | 处理输入/输出请求的方法、宿主机、服务器和虚拟机 |
CN104508632B (zh) * | 2013-07-31 | 2018-03-13 | 华为技术有限公司 | 一种数据转发方法、装置及系统 |
CN103763173B (zh) * | 2013-12-31 | 2017-08-25 | 华为技术有限公司 | 数据传输方法和计算节点 |
CN104123173B (zh) * | 2014-07-22 | 2017-08-25 | 华为技术有限公司 | 一种实现虚拟机间通信的方法及装置 |
JP6380084B2 (ja) * | 2014-12-19 | 2018-08-29 | 富士ゼロックス株式会社 | 情報処理装置及び情報処理プログラム |
CN105556473A (zh) * | 2014-12-27 | 2016-05-04 | 华为技术有限公司 | 一种i/o任务处理的方法、设备和系统 |
KR102398213B1 (ko) | 2015-03-09 | 2022-05-17 | 삼성전자주식회사 | 저장 장치, 그것을 포함하는 호스트 시스템, 및 그것의 맵 테이블 업데이트 방법 |
CN106301876B (zh) * | 2015-06-26 | 2019-11-29 | 南京中兴新软件有限责任公司 | 物理机升级方法、业务迁移方法及装置 |
RU2644126C2 (ru) * | 2016-05-31 | 2018-02-07 | Некоммерческое Партнерство "Центр Прикладных Исследований Компьютерных Сетей" | Способ оптимального планирования использования виртуальных сетевых ресурсов центров обработки данных |
CN107643897B (zh) * | 2016-07-20 | 2021-04-16 | 阿里巴巴集团控股有限公司 | 后端驱动程序的更新方法及装置 |
CN111078353A (zh) * | 2016-10-28 | 2020-04-28 | 华为技术有限公司 | 存储设备的操作方法及物理服务器 |
KR101716715B1 (ko) | 2016-12-27 | 2017-03-15 | 주식회사 티맥스클라우드 | 가상 머신 환경의 네트워크 입출력 장치 가상화 방법 및 장치 |
CN109426545B (zh) * | 2017-08-31 | 2023-02-03 | 阿里巴巴集团控股有限公司 | 一种数据通信方法及装置 |
CN109542581B (zh) * | 2017-09-22 | 2020-10-13 | 深圳市中兴微电子技术有限公司 | 一种设备共享方法、装置及存储介质 |
CN109657471B (zh) * | 2017-10-11 | 2023-02-28 | 阿里巴巴集团控股有限公司 | 云设备管理系统和方法 |
CN110554977A (zh) * | 2018-05-30 | 2019-12-10 | 阿里巴巴集团控股有限公司 | 数据缓存方法、数据处理方法、计算机设备、存储介质 |
CN110597451B (zh) * | 2018-06-12 | 2021-02-23 | 华为技术有限公司 | 一种虚拟化缓存的实现方法及物理机 |
CN109525515B (zh) * | 2018-10-23 | 2021-04-30 | 郑州云海信息技术有限公司 | 一种云平台中网卡的管理方法和装置 |
CN111857943B (zh) * | 2019-04-30 | 2024-05-17 | 华为技术有限公司 | 数据处理的方法、装置与设备 |
KR102247247B1 (ko) * | 2019-06-05 | 2021-05-03 | 주식회사 티맥스티베로 | 데이터베이스 관리 방법 |
US11044161B2 (en) * | 2019-10-11 | 2021-06-22 | Huawei Technologies Canada Co., Ltd. | Method and system for latency-aware embedding of a virtual network onto a substrate optical network |
CN111274176B (zh) * | 2020-01-15 | 2022-04-22 | 联想(北京)有限公司 | 一种信息处理方法、电子设备、系统及存储介质 |
CN117234741B (zh) * | 2023-11-14 | 2024-02-20 | 苏州元脑智能科技有限公司 | 资源管理与调度方法、装置、电子设备以及存储介质 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6195345B1 (en) * | 1997-12-03 | 2001-02-27 | Ericsson Messaging Systems, Inc. | High capacity multimedia messaging exchanges |
EP0944257A1 (en) | 1998-03-06 | 1999-09-22 | CANAL+ Société Anonyme | Multimedia terminal adapted for multiple users |
JP2006294517A (ja) | 2005-04-13 | 2006-10-26 | Kansai Electric Power Co Inc:The | Ga系固体電解質材料の製造方法 |
US20060294517A1 (en) | 2005-06-28 | 2006-12-28 | Zimmer Vincent J | Network interface sharing among multiple virtual machines |
US20070271560A1 (en) | 2006-05-18 | 2007-11-22 | Microsoft Corporation | Deploying virtual machine to host based on workload characterizations |
JP4681505B2 (ja) * | 2006-05-23 | 2011-05-11 | 株式会社日立製作所 | 計算機システム、管理計算機及びプログラム配布方法 |
US20080126614A1 (en) * | 2006-09-26 | 2008-05-29 | Giap Yong Ooi | Input/output (I/O) device virtualization using hardware |
US7761612B2 (en) * | 2006-12-07 | 2010-07-20 | International Business Machines Corporation | Migrating domains from one physical data processing system to another |
CN100568181C (zh) * | 2007-06-22 | 2009-12-09 | 浙江大学 | 基于处理器虚拟化技术的虚拟机系统及其实现方法 |
US8645974B2 (en) | 2007-08-02 | 2014-02-04 | International Business Machines Corporation | Multiple partition adjunct instances interfacing multiple logical partitions to a self-virtualizing input/output device |
US8954957B2 (en) | 2009-07-01 | 2015-02-10 | Riverbed Technology, Inc. | Network traffic processing according to network traffic rule criteria and transferring network traffic metadata in a network device that includes hosted virtual machines |
KR101521778B1 (ko) * | 2009-12-24 | 2015-05-20 | 인텔 코포레이션 | 가상화 환경에서 i/o 동작을 처리하는 방법 및 장치 |
JP2011145912A (ja) | 2010-01-15 | 2011-07-28 | Fujitsu Ltd | 仮想計算機を使用したクライアントシステム、仮想計算機を使用したクライアント制御方法及びそのプログラム |
US8178754B1 (en) | 2010-05-05 | 2012-05-15 | Pioneer Hi-Bred International, Inc. | Soybean variety XB29L10 |
CN101976200B (zh) * | 2010-10-15 | 2013-05-08 | 浙江大学 | 在虚拟机监控器外进行输入输出设备虚拟化的虚拟机系统 |
-
2011
- 2011-12-31 CN CN201110458345.8A patent/CN102591702B/zh active Active
-
2012
- 2012-05-22 AU AU2012250375A patent/AU2012250375B2/en active Active
- 2012-05-22 EP EP12779983.1A patent/EP2743829B1/en active Active
- 2012-05-22 KR KR1020147007779A patent/KR101740521B1/ko active IP Right Grant
- 2012-05-22 KR KR1020177013797A patent/KR20170058469A/ko not_active Application Discontinuation
- 2012-05-22 JP JP2014537456A patent/JP5802841B2/ja active Active
- 2012-05-22 RU RU2014117656/08A patent/RU2573219C2/ru active
- 2012-05-22 WO PCT/CN2012/075846 patent/WO2012149912A1/zh active Application Filing
- 2012-11-13 US US13/675,120 patent/US8635616B2/en active Active
-
2013
- 2013-09-17 US US14/029,276 patent/US9244715B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
RU2014117656A (ru) | 2015-11-10 |
EP2743829A4 (en) | 2014-10-22 |
RU2573219C2 (ru) | 2016-01-20 |
EP2743829B1 (en) | 2018-09-12 |
EP2743829A1 (en) | 2014-06-18 |
KR20170058469A (ko) | 2017-05-26 |
US20130174155A1 (en) | 2013-07-04 |
KR101740521B1 (ko) | 2017-06-08 |
US9244715B2 (en) | 2016-01-26 |
US20140019973A1 (en) | 2014-01-16 |
AU2012250375B2 (en) | 2015-08-13 |
US8635616B2 (en) | 2014-01-21 |
CN102591702B (zh) | 2015-04-15 |
WO2012149912A1 (zh) | 2012-11-08 |
CN102591702A (zh) | 2012-07-18 |
JP2014531093A (ja) | 2014-11-20 |
AU2012250375A1 (en) | 2014-04-03 |
KR20140054349A (ko) | 2014-05-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5802841B2 (ja) | 仮想化処理の方法及び装置並びにコンピュータ・システム | |
US9529773B2 (en) | Systems and methods for enabling access to extensible remote storage over a network as local storage via a logical storage controller | |
TWI625674B (zh) | 用於支援在主機上運行的多個虛擬機器的nvme控制器虛擬化的系統和方法 | |
US9501245B2 (en) | Systems and methods for NVMe controller virtualization to support multiple virtual machines running on a host | |
US20190155548A1 (en) | Computer system and storage access apparatus | |
EP3985504B1 (en) | Virtual machine migration | |
US20150317177A1 (en) | Systems and methods for supporting migration of virtual machines accessing remote storage devices over network via nvme controllers | |
US10642539B2 (en) | Read/write path determining method and apparatus | |
CN111831588A (zh) | 一种存储设备访问方法、装置和系统 | |
US11016817B2 (en) | Multi root I/O virtualization system | |
WO2016101282A1 (zh) | 一种i/o任务处理的方法、设备和系统 | |
WO2016119468A1 (zh) | 虚拟机内存管理方法、物理主机、pcie设备及其配置方法以及迁移管理设备 | |
US20190037043A1 (en) | Data Prefetching Method and Apparatus | |
WO2020157599A1 (en) | Engine pre-emption and restoration | |
WO2018149157A1 (zh) | 一种vcpu线程的调度方法及装置 | |
CN111367472A (zh) | 虚拟化方法和装置 | |
AU2015203452B2 (en) | Virtualization processing method and apparatuses, and computer system | |
US10430220B1 (en) | Virtual devices as protocol neutral communications mediators | |
CN117520215A (zh) | 一种缺页处理方法和相关设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140423 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20150325 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150414 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150714 |
|
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: 20150825 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150831 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5802841 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |