JP2018511881A - 仮想マシンシステム - Google Patents
仮想マシンシステム Download PDFInfo
- Publication number
- JP2018511881A JP2018511881A JP2017550900A JP2017550900A JP2018511881A JP 2018511881 A JP2018511881 A JP 2018511881A JP 2017550900 A JP2017550900 A JP 2017550900A JP 2017550900 A JP2017550900 A JP 2017550900A JP 2018511881 A JP2018511881 A JP 2018511881A
- Authority
- JP
- Japan
- Prior art keywords
- page
- doorbell
- queue
- processor
- virtual machine
- 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
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
-
- 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/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
- G06F9/4856—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
- G06F9/4862—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration the task being a mobile agent, i.e. specifically designed to migrate
- G06F9/4868—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration the task being a mobile agent, i.e. specifically designed to migrate with creation or replication
-
- 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
-
- 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/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- 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/45583—Memory management, e.g. access or allocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Multimedia (AREA)
- Computer Security & Cryptography (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Advance Control (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
Description
いくつかの実現例において、ハイパーバイザ、例えばハイパーバイザヘルパーは、各キューに対応するドアベルページを用いて、複数の仮想マシンに対応する複数のキューを監視し、潜在的に各仮想マシンに対応する複数のキューを監視することができる。ハイパーバイザは、ドアベルページを用いて、プロセッサの作業を含むエントリをキューに入れたか否か、およびエントリをキューに入れた時間を判断する。ドアベルページが呼び出される時に、ハイパーバイザは、ビットベクトルを更新し、サービスを必要とするキューを示すために、更新後のビットベクトルをプロセッサに提供することができる。ドアベルページが呼び出される時に、ハイパーバイザは、例えば、ドアベルページまたはドアベルページからの値をメモリにコピーすることによって、ハイパーバイザまたはプロセッサによって使用される。ハイパーバイザは、プロセッサに割込みを送信することによって、作業を行っているプロセッサが他の作業を行える時間をそのプロセッサに通知することができる。このハイパーバイザヘルパーは、上述したステップを実行するように構成されたアプリケーションまたはハードウェアであってもよい。
概要
様々な図面において、同様の参照符号は、同様の要素を示す。
図1は、装置102がドアベルページを用いて仮想マシンのキューがサービスを必要する時間を判断するための例示的な環境100を示すブロック図である。装置102は、1つ以上のプロセッサA 104aおよびプロセッサB 104bを含む。一方のプロセッサA 104aは、ハイパーバイザ106を実行し、プロセッサA 104aおよびプロセッサB 104bの一方または両方は、1つ以上の仮想マシン108a〜108cを実行する。
図2は、プロセッサに仮想マシンのキューを処理させるためのプロセス200を示すフローチャートである。プロセス200は、環境100内の装置102によって使用され得る。装置102は、例えば、ハイパーバイザ、ハイパーバイザヘルパー、別のアプリケーション、別の装置、またはこれらの2つ以上の組み合わせを実行することができる。いくつかの例において、これらのアプリケーションのうち1つは、プロセス200の特定のステップを行うことができ、装置または別のアプリケーションは、プロセス200の他の特定のステップを行うことができる。
いくつかの実現例において、アプリケーション、例えば、ハイパーバイザまたはヘルパーアプリケーションまたは装置は、実行中の仮想マシンを1つの装置から別の装置に移行することを容易にすることができる。例えば、アプリケーションは、第1装置上で仮想マシンを実行している間に、サービスを必要とする仮想マシンのキューをプロセッサに通知し、仮想マシンを第1装置から第2装置に移行する時のダーティバイトを監視する。仮想マシンのキューおよびキューの処理プロセスフローは、前の段落に説明されている。以下で説明するように、これらの構造およびプロセスフローに基づいて、アプリケーションを移行するためのヘルパー406を実装することができる。いくつかの例において、実行中の仮想マシンを第1装置から第2装置に移行する時に、アプリケーションは、例えば、仮想マシンに対応するキュー内のエントリに基づいて、メモリに書き込むべきバイトをプロセッサに通知し、書き込まれたバイトを示すデータを記憶することができる。これによって、以前にこれらのバイトを含むページを更新せず第2装置に移行した場合、これらのバイトを含むページではなく、これらのバイトが第2装置に移行される。いくつかの実現例において、異なるアプリケーションは、実行中の仮想マシンを1つの装置から別の装置に移行することを容易にし、サービスを必要とする仮想マシンのキューをプロセッサに通知することができる。
図5は、アプリケーションを第1装置から第2装置に移行するためのプロセス500を示すフローチャートである。例えば、プロセス500は、環境400内の装置A 402aによって使用されることができる。
いくつかの実現例において、ヘルパーは、PCIe付属の特定用途向け集積回路(ASIC)またはフィールドプログラマブルゲートアレイ(FPGA)に実装されたハードウェアであってもよい。例えば、ヘルパーをPCIe付属装置に実装することによって、既存のシステムの物理ハードウェアに変更を加えることなく、ヘルパーを既存のシステムに使用することができる。
本開示に記載された主題および機能的な動作の実施形態は、本開示に開示された構造およびそれらの構造的均等物を含むデジタル電子回路、有形化されたコンピュータソフトウェアまたはファームウェア、コンピュータハードウェア、もしくはそれらの1つ以上の組み合わせにおいて実現することができる。本開示に記載された主題の実施形態は、1つ以上のコンピュータプログラム、すなわち、有形化された非一時的なプログラム担体上にエンコードされ、データ処理装置によって実行されるまたはデータ処理装置の動作を制御するためのコンピュータプログラム命令の1つ以上のモジュールとして実装することができる。これに代えてまたは加えて、プログラム命令は、人為的に生成された伝播信号、例えば、データ処理装置による実行のため、情報を適切な受信機に送信するために符号化することによって生成された機械生成電気信号上にエンコードされてもよい。コンピュータ記憶媒体は、機械可読記憶装置、機械可読記憶基板、ランダムまたはシリアルアクセスメモリ装置、またはそれらの1つ以上の組み合わせであってもよい。
Claims (29)
- コンピュータで実行される方法であって、
装置上で動作している複数の仮想マシンに対する複数のドアベルページを生成するステップと、
前記複数のドアベルページのうち、各仮想マシンからの要求を記憶するキューを特定する各ドアベルページに対するアクセスを前記複数の仮想マシンの各々に提供するステップと、
前記複数のドアベルページのうち1つの特定のドアベルページから、各キューが対応する各仮想マシンからの要求を記憶している通知を受信するステップと、
各キューが対応する各仮想マシンからの要求を記憶している通知を受信することに応答して、各仮想マシンに対応する各キューをプロセッサに処理させるステップとを含む、方法。 - 前記プロセッサが前記要求を処理している間に、各仮想マシンの実行を継続するステップを含む、請求項1に記載の方法。
- 各キューが対応する各仮想マシンからの要求を記憶している通知を受信する前に、各キューの更新を受信するステップを含む、請求項1に記載の方法。
- 前記複数のドアベルページの各々について、当該ドアベルページに一意に対応し且つ当該ドアベルページによって特定されたキューを一意に特定するエントリを含むアレイを生成するステップと、
各キューが対応する各仮想マシンからの要求を記憶している通知を受信したことに応答して、各キューを特定する前記アレイ内の各エントリを更新するステップとを含み、
各仮想マシンに対応する各キューを前記プロセッサに処理させるステップは、前記アレイを前記プロセッサに提供して、前記プロセッサに各仮想マシンに対応する各キューを処理させるステップを含む、請求項1に記載の方法。 - 前記複数のドアベルページの各々について、当該ドアベルページに一意に対応し且つ当該ドアベルページによって特定されたキューを一意に特定するエントリを含むアレイを生成するステップは、前記複数のドアベルページの各々について、当該ドアベルページに一意に対応し且つ当該ドアベルページによって特定されたキューを一意に特定するエントリを含むビットベクトルを生成することを含み、
各キューを特定する前記アレイ内の各エントリを更新するステップは、前記各キューを特定する、前記ビットベクトルにおける各エントリを更新するステップを含み、
前記アレイを前記プロセッサに提供して、前記プロセッサに各仮想マシンに対応する各キューを処理させるステップは、前記ビットベクトルを前記プロセッサに提供して、前記プロセッサに各仮想マシンに対応する各キューを処理させることを含む、請求項4に記載の方法。 - 前記アレイを前記プロセッサに提供して、前記プロセッサに各仮想マシンに対応する各キューを処理させるステップは、前記アレイを前記プロセッサに提供して、前記プロセッサに前記複数の仮想マシンに対応する複数のキューを処理させることを含む、請求項4に記載の方法。
- 各仮想マシンに対応する各キューを前記プロセッサに処理させるステップは、前記プロセッサに割込みを送信することを含む、請求項1に記載の方法。
- 前記複数のドアベルページのうち、各仮想マシンからの要求を記憶するキューを特定する各ドアベルページに対するアクセスを前記複数の仮想マシンの各々に提供するステップは、前記複数のドアベルページのうち、各キューのヘッドノードを含む各ドアベルページに対するアクセスを前記複数の仮想マシンの各々に提供することを含む、請求項1に記載の方法。
- 前記複数のドアベルページのうち、各仮想マシンからの要求を記憶するキューを特定する各ドアベルページに対するアクセスを前記複数の仮想マシンの各々に提供するステップは、前記複数のドアベルページのうち、各仮想マシンからの要求を記憶するリングバッファを特定する各ドアベルページに対するアクセスを前記複数の仮想マシンの各々に提供することを含む、請求項1に記載の方法。
- 前記複数のドアベルページを生成するステップは、前記複数のドアベルページの各ドアベルページに各アドレスを割り当てることを含み、
前記複数のドアベルページのうち、各仮想マシンからの要求を記憶するキューを特定する各ドアベルページに対するアクセスを前記複数の仮想マシンの各々に提供するステップは、前記各仮想マシンに対応する各アドレスを前記複数の仮想マシンの各々に提供することを含む、請求項1に記載の方法。 - 前記複数のドアベルページを生成するステップは、追跡構造を生成し、前記追跡構造からの各インデックスを前記複数のドアベルページの各々に割り当てることを含み、
前記複数のドアベルページのうち、各仮想マシンからの要求を記憶するキューを特定する各ドアベルページに対するアクセスを前記複数の仮想マシンの各々に提供するステップは、前記各仮想マシンに対応する各インデックスのアドレスを前記複数の仮想マシンの各々に提供することを含む、請求項1に記載の方法。 - 前記複数のドアベルページを生成するステップは、
前記複数のドアベルページの各々について、ページを生成することと、
前記複数のドアベルページのうちの各ドアベルページが、対応する各ページに存在する非ゼロオフセットを前記複数のドアベルページの各々に割り当てることとを含み、
前記複数のドアベルページのうち、各仮想マシンからの要求を記憶するキューを特定する各ドアベルページに対するアクセスを前記複数の仮想マシンの各々に提供するステップは、各ページに対応するアドレスおよび各仮想マシンに対応する非ゼロオフセットを前記複数の仮想マシンの各々に送信することを含む、請求項1に記載の方法。 - 第2複数のドアベルページを生成するステップと、
前記複数のドアベルページのうち、各仮想マシンからの第2要求を記憶する第2キューを特定する各ドアベルページに対するアクセスを前記複数の仮想マシンのうち少なくとも一部の各々に提供するステップとを含み、第1種類の前記要求は、第2種類の前記第2要求とは異なり、
前記複数のドアベルページのうち1つの特定のドアベルページから、各キューが対応する各仮想マシンからの要求を記憶している通知を受信するステップは、前記複数のドアベルページのうち1つの特定のドアベルページから、要求の種類を特定する通知を受信することを含み、
各仮想マシンに対応する各キューを前記プロセッサに処理させるステップは、
前記要求の種類が前記第1種類を含むことを判断することと、
前記第1種類の要求を処理するために割り当てられる特定のプロセッサを決定することと、
各仮想マシンに対応する各キューを前記特定のプロセッサに処理させることを含む、請求項1に記載の方法。 - 前記装置の第1プロセッサ上で前記複数の仮想マシンを実行するステップを含み、
各仮想マシンに対応する各キューを前記特定のプロセッサに処理させるステップは、異なる第2プロセッサ上で動作しているハイパーバイザにメッセージを提供して、各仮想マシンに対応する各キューを前記異なる第2プロセッサに処理させることを含む、請求項13に記載の方法。 - 前記異なる第2プロセッサ上で動作しているハイパーバイザに前記メッセージを提供することは、前記装置とは異なる第2装置上の前記異なる第2プロセッサ上で動作している前記ハイパーバイザに前記メッセージを提供することを含む、請求項14に記載の方法。
- データ処理装置によって実行可能な命令を格納する非一時的なコンピュータ可読記憶媒体であって、これらの命令は、前記データ処理装置によって実行されると、前記データ処理装置に、
第1装置上でアプリケーションの実行を継続させながら、前記第1装置のメモリに記憶され、前記第1装置上で前記アプリケーションの実行に使用されるデータページを前記第1装置から第2装置にコピーすることによって、前記第1装置上で実行している前記アプリケーションを前記第1装置から前記第2装置に移行する移行プロセスを開始する動作と、
前記移行プロセス中に前記第1装置上で前記アプリケーションの実行に応答して、前記第1装置によって、前記データページのうち、少なくとも1つのデータページ内の1つ以上のバイトを更新する動作と、
前記第1装置上で前記アプリケーションの実行を停止する動作と、
前記更新されたバイトを前記第1装置から前記第2装置にコピーして、前記第2装置に前記アプリケーションの実行を継続させる動作とを含む動作を実行させる、コンピュータ可読記憶媒体。 - 前記動作は、前記アプリケーションのために、前記メモリ内の前記データページの場所を特定するためのマッピングを作成する動作を含み、
前記移行プロセス中に前記第1装置上で前記アプリケーションの実行に応答して、前記第1装置によって、前記データページのうち、少なくとも1つのデータページ内の1つ以上のバイトを更新する動作は、
前記少なくとも1つのデータページの各々をヘルパーに割り当てる動作と、
前記少なくとも1つのページの各々に対応して、前記アプリケーションが前記ヘルパー内の対応ページを特定するためのマッピングを更新する動作と、
前記少なくとも1つのデータページ内の1つ以上のバイトを更新する動作とを含む、請求項16に記載のコンピュータ可読記憶媒体。 - 前記動作は、前記少なくとも1つのデータページ内の前記1つ以上のバイトの更新に応答して、前記第1装置によって、前記更新されたバイトを特定するデータを記憶する動作を含み、
前記更新されたバイトを前記第1装置から前記第2装置にコピーする動作は、
前記更新されたバイトを特定する前記データを用いて前記更新されたバイトを特定する動作と、
前記更新されたバイトを特定する前記データを用いて前記更新されたバイトを特定することに応答して、前記更新されたバイトを前記第1装置から前記第2装置にコピーする動作とを含む、請求項16に記載のコンピュータ可読記憶媒体。 - 前記動作は、
前記第1装置によって、前記データページの前記少なくとも1つのデータページ内の前記1つ以上のバイトを受信する動作と、
前記第1装置によって、前記1つ以上のバイトが移行されている前記アプリケーションのデータページのものであることを判断する動作とを含み、
前記更新されたバイトを特定する前記データを記憶する動作は、前記1つ以上のバイトが移行される前記アプリケーションのデータページのものであることの判断に応答して、前記更新されたバイトを特定する前記データを記憶する動作を含む、請求項18に記載のコンピュータ可読記憶媒体。 - 前記動作は、
前記アプリケーションから、メモリにアクセスする要求を受信する動作と、
前記メモリにアクセスする要求が書き込み要求であることを判断する動作とを含み、
前記更新されたバイトを特定する前記データを記憶する動作は、前記メモリにアクセスする要求が書き込み要求であることの判断に応答して、前記更新されたバイトを特定する前記データを記憶する動作を含む、請求項18に記載のコンピュータ可読記憶媒体。 - 前記動作は、アプリケーションのデータページを第1装置のメモリに格納することを含み、第1装置上でアプリケーションを実行する動作を含む、請求項16に記載のコンピュータ可読記憶媒体。
- 前記第1装置上で前記アプリケーションの実行は、前記第1装置上で仮想マシンを実行することを含む、請求項21に記載のコンピュータ可読記憶媒体。
- 前記更新されたバイトを前記第1装置から前記第2装置にコピーして、前記第2装置に前記アプリケーションの実行を継続させる動作は、前記更新されたバイトのみを前記第1装置から前記第2装置にコピーして、前記第2装置に前記アプリケーションの実行を継続させることを含む、請求項16に記載のコンピュータ可読記憶媒体。
- システムであって、
メモリと、
データ処理装置と、
前記データ処理装置とデータ通信し、前記データ処理装置によって実行可能な命令を格納する非一時的なコンピュータ可読記憶媒体とを備え、これらの命令は、前記データ処理装置によって実行されると、前記データ処理装置に、
前記システム上で動作している複数の仮想マシンのために、前記メモリに複数のドアベルページを記憶する動作と、
前記複数のドアベルページのうち、各仮想マシンからの要求を記憶するキューを特定する各ドアベルページに対するアクセスを前記複数の仮想マシンの各々に提供する動作と、
前記複数のドアベルページのうち1つの特定のドアベルページから、各キューが対応する各仮想マシンからの要求を記憶している通知を受信する動作と、
各キューが対応する各仮想マシンからの要求を記憶している通知を受信することに応答して、各仮想マシンに対応する各キューをプロセッサに処理させる動作とを含む動作を実行させる、システム。 - 前記データ処理装置は、前記プロセッサを含む、請求項24に記載のシステム。
- 前記プロセッサは、前記データ処理装置とは異なり、
前記動作は、前記データ処理装置上で前記複数の仮想マシンを実行する動作を含み、
各仮想マシンに対応する各キューを前記プロセッサに処理させる動作は、前記プロセッサ上で動作しているハイパーバイザにメッセージを提供して、前記プロセッサに各仮想マシンに対応する各キューを処理させることを含む、請求項24に記載のシステム。 - 前記システムは、
前記データ処理装置を含む第1装置と、
前記プロセッサを含む第2装置とを備え、
前記プロセッサ上で動作しているハイパーバイザにメッセージを提供することは、前記メッセージを前記第1装置と異なる前記第2装置に含まれた前記プロセッサ上で動作しているハイパーバイザに提供することを含む、請求項26に記載のシステム。 - システムであって、
第1装置を備え、
前記第1装置は、
メモリと、
データ処理装置と、
前記データ処理装置とデータ通信し、前記データ処理装置によって実行可能な命令を格納する非一時的なコンピュータ可読記憶媒体とを備え、これらの命令は、前記データ処理装置によって実行されると、前記データ処理装置に、
第1装置上でアプリケーションの実行を継続させながら、前記第1装置のメモリに記憶され、前記第1装置上で前記アプリケーションの実行に使用されるデータページを前記第1装置から第2装置にコピーすることによって、前記第1装置上で実行している前記アプリケーションを前記第1装置から前記第2装置に移行する移行プロセスを開始する動作と、
前記移行プロセス中に前記第1装置上で前記アプリケーションの実行に応答して、前記データページのうち、少なくとも1つのデータページ内の1つ以上のバイトを更新する動作と、
前記第1装置上で前記アプリケーションの実行を停止する動作と、
前記更新されたバイトを前記第1装置から前記第2装置にコピーして、前記第2装置に前記アプリケーションの実行を継続させる動作とを含む動作を実行させる、システム。 - 前記第2装置を含む、請求項28に記載のシステム。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/688,258 | 2015-04-16 | ||
US14/688,258 US9747122B2 (en) | 2015-04-16 | 2015-04-16 | Virtual machine systems |
US14/724,259 US9639395B2 (en) | 2015-04-16 | 2015-05-28 | Byte application migration |
US14/724,259 | 2015-05-28 | ||
PCT/US2016/025303 WO2016167980A2 (en) | 2015-04-16 | 2016-03-31 | Virtual machine systems |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018120857A Division JP6391878B1 (ja) | 2015-04-16 | 2018-06-26 | 仮想マシンシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2018511881A true JP2018511881A (ja) | 2018-04-26 |
JP6423547B2 JP6423547B2 (ja) | 2018-11-14 |
Family
ID=55750492
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017550900A Active JP6423547B2 (ja) | 2015-04-16 | 2016-03-31 | 仮想マシンシステム |
JP2018120857A Active JP6391878B1 (ja) | 2015-04-16 | 2018-06-26 | 仮想マシンシステム |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018120857A Active JP6391878B1 (ja) | 2015-04-16 | 2018-06-26 | 仮想マシンシステム |
Country Status (9)
Country | Link |
---|---|
US (1) | US9639395B2 (ja) |
EP (2) | EP3779695A1 (ja) |
JP (2) | JP6423547B2 (ja) |
KR (2) | KR101922533B1 (ja) |
CN (2) | CN108268331B (ja) |
DE (2) | DE112016001730T5 (ja) |
GB (1) | GB2553050A (ja) |
HK (2) | HK1243792B (ja) |
WO (1) | WO2016167980A2 (ja) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8019732B2 (en) * | 2008-08-08 | 2011-09-13 | Amazon Technologies, Inc. | Managing access of multiple executing programs to non-local block data storage |
US11036533B2 (en) * | 2015-04-17 | 2021-06-15 | Samsung Electronics Co., Ltd. | Mechanism to dynamically allocate physical storage device resources in virtualized environments |
US10838852B2 (en) | 2015-04-17 | 2020-11-17 | Samsung Electronics Co., Ltd. | System and method to extend NVME queues to user space |
US10228969B1 (en) * | 2015-06-25 | 2019-03-12 | Amazon Technologies, Inc. | Optimistic locking in virtual machine instance migration |
US10970110B1 (en) | 2015-06-25 | 2021-04-06 | Amazon Technologies, Inc. | Managed orchestration of virtual machine instance migration |
US10043010B1 (en) * | 2015-12-31 | 2018-08-07 | Cybereason | Migration of sandbox processes for malware prevention |
US10545800B2 (en) * | 2017-05-31 | 2020-01-28 | Ati Technologies Ulc | Direct doorbell ring in virtualized processing device |
US10860475B1 (en) * | 2017-11-17 | 2020-12-08 | Pure Storage, Inc. | Hybrid flash translation layer |
KR102107374B1 (ko) * | 2018-08-27 | 2020-05-07 | 주식회사 두두아이티 | 가상화 기반 훈련 콘텐츠 제공 시스템 |
KR20220118004A (ko) * | 2021-02-18 | 2022-08-25 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
US11922026B2 (en) | 2022-02-16 | 2024-03-05 | T-Mobile Usa, Inc. | Preventing data loss in a filesystem by creating duplicates of data in parallel, such as charging data in a wireless telecommunications network |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130007751A1 (en) * | 2011-07-01 | 2013-01-03 | Farrell Robert L | Method and system for safe enqueuing of events |
JP2013516021A (ja) * | 2009-12-29 | 2013-05-09 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド | プロセッサコアのハイパーバイザ離隔 |
US20130198312A1 (en) * | 2012-01-17 | 2013-08-01 | Eliezer Tamir | Techniques for Remote Client Access to a Storage Medium Coupled with a Server |
US20140181323A1 (en) * | 2012-12-20 | 2014-06-26 | Oracle International Corporation | Doorbell backpressure avoidance mechanism on a host channel adapter |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5918248A (en) * | 1996-12-30 | 1999-06-29 | Northern Telecom Limited | Shared memory control algorithm for mutual exclusion and rollback |
US7543290B2 (en) | 2001-04-11 | 2009-06-02 | Mellanox Technologies Ltd. | Multiple queue pair access with single doorbell |
US20050144422A1 (en) | 2003-12-30 | 2005-06-30 | Mcalpine Gary L. | Virtual to physical address translation |
US7257811B2 (en) * | 2004-05-11 | 2007-08-14 | International Business Machines Corporation | System, method and program to migrate a virtual machine |
US8694990B2 (en) * | 2007-08-27 | 2014-04-08 | International Business Machines Corporation | Utilizing system configuration information to determine a data migration order |
CN101609419B (zh) * | 2009-06-29 | 2012-05-30 | 北京航空航天大学 | 虚拟机持续在线迁移的数据备份方法及装置 |
US8478725B2 (en) * | 2009-09-14 | 2013-07-02 | Vmware, Inc. | Method and system for performing live migration of persistent data of a virtual machine |
US8356149B2 (en) * | 2009-10-30 | 2013-01-15 | Hewlett-Packard Development Company, L.P. | Memory migration |
US8327060B2 (en) * | 2009-11-30 | 2012-12-04 | Red Hat Israel, Ltd. | Mechanism for live migration of virtual machines with memory optimizations |
US8468288B2 (en) * | 2009-12-10 | 2013-06-18 | International Business Machines Corporation | Method for efficient guest operating system (OS) migration over a network |
US9032398B2 (en) | 2010-07-12 | 2015-05-12 | Vmware, Inc. | Online classification of memory pages based on activity level represented by one or more bits |
US20120229481A1 (en) * | 2010-12-13 | 2012-09-13 | Ati Technologies Ulc | Accessibility of graphics processing compute resources |
US8832029B2 (en) * | 2011-02-16 | 2014-09-09 | Microsoft Corporation | Incremental virtual machine backup supporting migration |
US9274825B2 (en) * | 2011-08-16 | 2016-03-01 | Microsoft Technology Licensing, Llc | Virtualization gateway between virtualized and non-virtualized networks |
US20130174144A1 (en) | 2011-12-28 | 2013-07-04 | Ati Technologies Ulc | Hardware based virtualization system |
US10474369B2 (en) * | 2012-02-06 | 2019-11-12 | Vmware, Inc. | Mapping guest pages to disk blocks to improve virtual machine management processes |
US9454487B2 (en) * | 2012-08-27 | 2016-09-27 | Vmware, Inc. | Transparent host-side caching of virtual disks located on shared storage |
GB2506177A (en) * | 2012-09-25 | 2014-03-26 | Ibm | Method of migrating an operating system executing an application |
US10223026B2 (en) * | 2013-09-30 | 2019-03-05 | Vmware, Inc. | Consistent and efficient mirroring of nonvolatile memory state in virtualized environments where dirty bit of page table entries in non-volatile memory are not cleared until pages in non-volatile memory are remotely mirrored |
DK3127300T3 (da) * | 2014-05-12 | 2019-10-07 | Google Llc | Håndtering af nic-krypterede flows til at migrere gæster eller opgaver |
-
2015
- 2015-05-28 US US14/724,259 patent/US9639395B2/en active Active
-
2016
- 2016-03-31 EP EP20198373.1A patent/EP3779695A1/en not_active Ceased
- 2016-03-31 CN CN201810159787.4A patent/CN108268331B/zh active Active
- 2016-03-31 DE DE112016001730.8T patent/DE112016001730T5/de active Pending
- 2016-03-31 CN CN201680019788.8A patent/CN107430522B/zh active Active
- 2016-03-31 WO PCT/US2016/025303 patent/WO2016167980A2/en active Application Filing
- 2016-03-31 DE DE202016107376.6U patent/DE202016107376U1/de active Active
- 2016-03-31 JP JP2017550900A patent/JP6423547B2/ja active Active
- 2016-03-31 KR KR1020177028202A patent/KR101922533B1/ko active IP Right Grant
- 2016-03-31 GB GB1715307.3A patent/GB2553050A/en not_active Withdrawn
- 2016-03-31 EP EP16716140.5A patent/EP3283960A2/en not_active Ceased
- 2016-03-31 KR KR1020187019606A patent/KR102011478B1/ko active IP Right Grant
-
2018
- 2018-03-02 HK HK18103074.3A patent/HK1243792B/zh unknown
- 2018-06-26 JP JP2018120857A patent/JP6391878B1/ja active Active
- 2018-08-17 HK HK18110601.0A patent/HK1251315B/zh unknown
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013516021A (ja) * | 2009-12-29 | 2013-05-09 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド | プロセッサコアのハイパーバイザ離隔 |
US20130007751A1 (en) * | 2011-07-01 | 2013-01-03 | Farrell Robert L | Method and system for safe enqueuing of events |
US20130198312A1 (en) * | 2012-01-17 | 2013-08-01 | Eliezer Tamir | Techniques for Remote Client Access to a Storage Medium Coupled with a Server |
US20140181323A1 (en) * | 2012-12-20 | 2014-06-26 | Oracle International Corporation | Doorbell backpressure avoidance mechanism on a host channel adapter |
Also Published As
Publication number | Publication date |
---|---|
JP2018170033A (ja) | 2018-11-01 |
WO2016167980A2 (en) | 2016-10-20 |
HK1251315B (zh) | 2020-06-26 |
US20160306658A1 (en) | 2016-10-20 |
KR20180081847A (ko) | 2018-07-17 |
HK1243792B (zh) | 2019-11-01 |
JP6423547B2 (ja) | 2018-11-14 |
CN108268331B (zh) | 2019-05-31 |
US9639395B2 (en) | 2017-05-02 |
EP3283960A2 (en) | 2018-02-21 |
GB201715307D0 (en) | 2017-11-08 |
GB2553050A (en) | 2018-02-21 |
CN108268331A (zh) | 2018-07-10 |
CN107430522B (zh) | 2018-09-21 |
KR101922533B1 (ko) | 2019-02-20 |
JP6391878B1 (ja) | 2018-09-19 |
KR20170122826A (ko) | 2017-11-06 |
KR102011478B1 (ko) | 2019-10-21 |
DE202016107376U1 (de) | 2017-01-24 |
EP3779695A1 (en) | 2021-02-17 |
DE112016001730T5 (de) | 2017-12-28 |
WO2016167980A3 (en) | 2016-11-17 |
CN107430522A (zh) | 2017-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6391878B1 (ja) | 仮想マシンシステム | |
US9747122B2 (en) | Virtual machine systems | |
EP3637269B1 (en) | Managing storage devices | |
EP2879053B1 (en) | Virtual machine memory data migration method, related apparatus, and cluster system | |
US11836091B2 (en) | Secure memory access in a virtualized computing environment | |
US20150154042A1 (en) | Computer system and control method for virtual machine | |
US9575796B2 (en) | Virtual device timeout by memory offlining | |
US20140325163A1 (en) | Cross-Partition Shared Memory Attach for Data Processing Environment | |
US11188369B2 (en) | Interrupt virtualization | |
US20170277632A1 (en) | Virtual computer system control method and virtual computer system | |
US9697047B2 (en) | Cooperation of hoarding memory allocators in a multi-process system | |
US10210007B2 (en) | Parallel mapping of client partition memory to multiple physical adapters | |
JP2016173741A (ja) | 情報処理装置、情報処理方法、及び、プログラム | |
US11513983B2 (en) | Interrupt migration | |
US9652296B1 (en) | Efficient chained post-copy virtual machine migration | |
US20220197569A1 (en) | Determining a size of virtual disks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180116 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180116 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20180116 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20180313 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180417 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180626 |
|
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: 20180925 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20181018 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6423547 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 |