JP2016513308A - 仮想マシンのライブマイグレーション方法、仮想マシンのメモリデータ処理方法、サーバ及び仮想マシンシステム - Google Patents

仮想マシンのライブマイグレーション方法、仮想マシンのメモリデータ処理方法、サーバ及び仮想マシンシステム Download PDF

Info

Publication number
JP2016513308A
JP2016513308A JP2015555590A JP2015555590A JP2016513308A JP 2016513308 A JP2016513308 A JP 2016513308A JP 2015555590 A JP2015555590 A JP 2015555590A JP 2015555590 A JP2015555590 A JP 2015555590A JP 2016513308 A JP2016513308 A JP 2016513308A
Authority
JP
Japan
Prior art keywords
virtual machine
memory
network interface
interface card
source
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
Application number
JP2015555590A
Other languages
English (en)
Other versions
JP6140303B2 (ja
Inventor
▲勝▼文 ▲盧▼
▲勝▼文 ▲盧▼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of JP2016513308A publication Critical patent/JP2016513308A/ja
Application granted granted Critical
Publication of JP6140303B2 publication Critical patent/JP6140303B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本発明の実施例は、仮想マシンのライブマイグレーションがSR-IOV技術の事例で実現できないという課題を解決するための、仮想マシンのライブマイグレーション方法及びサーバを提供する。本発明の実施例の仮想マシンのライブマイグレーション方法及びサーバによれば、ダーティ書き込みフラグを設定することにより、マイグレーションされるべき仮想マシンの仮想PCIEデバイスは、受信したデータで少なくとも1つの読み書き動作を実行し、マイグレーションされるべき仮想マシンの仮想マシンマネージャは、データの変更を識別し、変更されたデータを宛先仮想マシンにマイグレーションすることができる。これにより、データが仮想PCIEデバイスを通過するが、仮想マシンマネージャがデータを認識することができないため、仮想マシンのライブマイグレーション処理中にデータがマイグレーションできないという従来技術の課題を解決する。

Description

本発明は、情報技術の分野に関し、特に、仮想マシンのライブマイグレーション方法、仮想マシンのメモリデータ処理方法、サーバ及び仮想マシンシステムに関する。
SR-IOV(Single-Root I/O Virtualization、シングルルートIO仮想化)は、IO仮想化技術であり、この技術は、仮想化を用いて、1つの物理PCIE(Peripheral Component Interconnection Express、ペリフェラル・コンポーネント・インターコネクト・エクスルプレス)デバイス上に複数の仮想PCIEデバイスを生成することができる。仮想PCIEデバイスは、元々の物理PCIEデバイスを使用することによってのみ構成及び管理されることができ、各仮想PCIEデバイスは、独立した中断及びDMA(Direct Memory Access、ダイレクト・メモリ・アクセス)を有し得る。従って、仮想マシンは、仮想PCIEデバイスを使用することにより、VMM(Virtual Machine Monitor、仮想マシンモニタ)からの介入を必要とすることなく、物理PCIEデバイスに直接的にアクセスすることができる。SR-IOVをサポートするネットワーク・インタフェース・カードが一例として使用される。各PCIEデバイスは、1つの仮想ネットワーク・インタフェース・カードに対応する。パケット交換は、VMMの介在を必要とすることなく、仮想PCIEデバイスと対応する仮想ネットワーク・インタフェース・カードとの間で直接的に実行される。従って、VMMのオーバーヘッドが低減可能になり、仮想交換の性能が改善される。
サーバが仮想化を実施した後に、仮想マシンのライブマイグレーションが適宜実施されてもよい。仮想マシンのライブマイグレーションの鍵は、メモリのマイグレーションである。一般的に、仮想マシンのメモリのマイグレーションは3つの段階に分割され得る。
反復事前コピー段階:仮想マシンのマイグレーション処理が開始した後に、仮想マシンは、依然としてソースサーバ上で実行し、仮想マシンのサービスは中断されない。まず、仮想マシンの全てのメモリは、宛先サーバにコピーされ、次に、仮想マシンの変更されたメモリデータは、反復方式で宛先サーバに絶えずコピーされる。コピーされる必要があるメモリが指定された閾値に到達するほど十分に小さくなるまで反復が実行された後に、マイグレーション処理は、シャットダウンコピー段階に入る。
シャットダウンコピー段階:仮想マシンがシャットダウンされ、サービスが中断され、仮想マシンの残りのメモリデータがコピーされる。
復旧段階:宛先仮想マシンが実行前に復旧処理を完了し、宛先仮想マシンが開始され、全マイグレーション処理が完了する。
SR-IOV技術が使用される事例では、データ送信処理は、VMMの介在を必要としない。デバイスがデータを送信するためにPCIEインタフェースを使用する場合、VMMは、データ送信動作を制御することができない。従って、仮想マシンのライブマイグレーション処理中に、デバイスのデータはマイグレーションできず、仮想マシンのライブマイグレーション処理中に、仮想マシンのライブマイグレーションは実施できない。
本発明の実施例は、仮想マシンのライブマイグレーション中にデータが完全にマイグレーションできないという従来技術における課題を解決するための、仮想マシンのライブマイグレーション方法、仮想マシンのメモリデータ処理方法、サーバ及び仮想マシンシステムを提供する。
本発明の実施例は、仮想マシンのライブマイグレーション方法を提供し、この方法は、仮想PCIEデバイスにより、仮想マシンのライブマイグレーションを開始する第1のメッセージを受信するステップであり、仮想マシンにより処理されるデータは、物理PCIEデバイスを使用することにより送信され、仮想PCIEデバイスは、物理PCIEデバイス上で実行する仮想デバイスであり、仮想マシンは、仮想PCIEデバイスを使用することにより物理PCIEデバイスにアクセスするステップと、仮想PCIEデバイスにより、第1のメッセージに従ってダーティ書き込みフラグを設定するステップであり、ダーティ書き込みフラグは、仮想PCIEデバイスを通過するデータにおいて少なくとも1つの読み書き動作を実行するために使用されるステップとを含む。
任意選択で、仮想PCIEデバイスにより、第1のメッセージに従ってダーティ書き込みフラグを設定するステップは、仮想PCIEデバイスにより、仮想PCIEデバイスのドライバを使用することにより第1のメッセージに従ってダーティ書き込みフラグを設定するステップ、又は仮想PCIEデバイスにより、ダーティ書き込みフラグとして独立変数を設定するステップを含む。
任意選択で、仮想PCIEデバイスのドライバにより、ダーティ書き込みフラグを設定するステップは、仮想PCIEデバイスにより、仮想PCIEデバイスのドライバにおいて確保されたデータ空間内にダーティ書き込みフラグを設定するステップを含む。
任意選択で、仮想PCIEデバイスにより、仮想マシンのライブマイグレーションを開始する第1のメッセージを受信する前に、この方法は、仮想マシンのライブマイグレーションを開始する第1のメッセージを受信するために、仮想PCIEデバイスと物理PCIEデバイスとの間にメッセージチャネルを確立するステップを更に含む。
任意選択で、仮想PCIEデバイスと物理PCIEデバイスとの間にメッセージチャネルを確立するステップは、仮想PCIEデバイスのドライバ及び物理PCIEデバイスのドライバにおいてデータ空間のセグメントを別々に確保し、確保されたデータ空間を使用することによりメッセージ伝送を実施するステップを含む。
任意選択で、仮想PCIEデバイス及び物理PCIEデバイスにより、確保されたデータ空間を使用することによりメッセージ伝送を実施するステップは、仮想マシンのネットワーク・インタフェース・カードにより、仮想PCIEデバイスと物理PCIEデバイスとの間でメッセージ通信を実施するために、ダイレクト・メモリ・アクセス(DMA)方式で確保されたデータ空間内でメッセージを伝送するステップ、又は仮想マシンのネットワーク・インタフェース・カードで、通信のために使用されるデータ空間を確保し、仮想PCIEデバイスと物理PCIEデバイスとで確保されたデータ空間を別々に共有するステップを含む。
任意選択で、この方法は、シングルルート入出力仮想化(SR-IOV)技術に適用可能な仮想マシンのライブマイグレーション処理に適用され、仮想マシンのライブマイグレーションが完了したことを示す第2のメッセージを受信した場合、仮想PCIEデバイスは、第2のメッセージに従ってダーティ書き込みフラグを取り消す。
本発明の実施例は、サーバを更に提供し、少なくとも1つの仮想マシンはサーバ上で実行し、少なくとも1つの仮想マシンにより処理されるデータは、物理PCIEデバイスを使用することにより送信され、少なくとも1つの仮想PCIEデバイスは、物理PCIEデバイス上で実行し、各仮想マシンは、1つの仮想PCIEデバイスに対応し、少なくとも1つの仮想PCIEデバイスの中の第1の仮想PCIEデバイスは、第1の仮想PCIEデバイスに対応する仮想マシンのライブ開始マイグレーションの第1のメッセージを受信するように構成された受信ユニットと、第1のメッセージに従ってダーティ書き込みフラグを設定するように構成された設定ユニットであり、ダーティ書き込みフラグは、第1の仮想PCIEデバイスを通過するデータにおいて少なくとも1つの読み書き動作を実行するために使用される設定ユニットとを含む。
任意選択で、設定ユニットが第1のメッセージに従ってダーティ書き込みフラグを設定することは、設定ユニットにより、第1の仮想PCIEデバイスのドライバを使用することにより第1のメッセージに従ってダーティ書き込みフラグを設定すること、又は設定ユニットにより、ダーティ書き込みフラグとして独立変数を設定することを含む。
任意選択で、設定ユニットにより、ドライバを使用することによりダーティ書き込みフラグを設定することは、設定ユニットにより、第1の仮想PCIEデバイスのドライバにおいて確保されたデータ空間内にダーティ書き込みフラグを設定することを含む。
任意選択で、第1の仮想PCIEデバイスは、メッセージチャネル確立ユニットを更に含み、メッセージチャネル確立ユニットは、受信ユニットが確立されたメッセージチャネルを通じて、第1の仮想PCIEデバイスに対応する仮想マシンのライブマイグレーションを開始する第1のメッセージを受信するために、第1の仮想PCIEデバイスと物理PCIEデバイスとの間にメッセージチャネルを確立するように構成される。
任意選択で、メッセージチャネル確立ユニットが第1の仮想PCIEデバイスと物理PCIEデバイスとの間にメッセージチャネルを確立することは、メッセージチャネル確立ユニットにより、第1の仮想PCIEデバイスのドライバ及び物理PCIEデバイスのドライバにおいてデータ空間のセグメントを別々に確保し、確保されたデータ空間を使用することにより第1の仮想PCIEデバイスと物理PCIEデバイスとの間でメッセージ伝送を実施することを含む。
任意選択で、第1の仮想PCIEデバイス及び物理PCIEデバイスが確保されたデータ空間を使用することによりメッセージ伝送を実施することは、仮想マシンのネットワーク・インタフェース・カードにより、仮想PCIEデバイスと物理PCIEデバイスとの間でメッセージ通信を実施するために、ダイレクト・メモリ・アクセス(DMA)方式で確保されたデータ空間内でメッセージを伝送すること、又は仮想マシンのネットワーク・インタフェース・カードのメッセージチャネル確立ユニットにより、通信のために使用されるデータ空間を確保し、仮想PCIEデバイスと物理PCIEデバイスとで確保されたデータ空間を別々に共有することを含む。
任意選択で、第1の仮想PCIEデバイスに対応する仮想マシンは、仮想化を実施するためのシングルルート入出力仮想化(SR-IOV)技術に適用可能であり、第1の仮想PCIEデバイスに対応する仮想マシンのライブマイグレーションが完了したことを示す第2のメッセージを受信した場合、設定ユニットは、第2のメッセージに従ってダーティ書き込みフラグを取り消す。
本発明の実施例は、第1の仮想マシンのメモリデータ処理方法を更に提供し、この方法は、仮想マシンシステムに適用され、仮想マシンシステムは、仮想マシンマイグレーション管理ユニットと、ホストデバイスと、物理ネットワーク・インタフェース・カードとを含み、少なくとも1つの仮想マシンは、ホストデバイス上で実行し、少なくとも1つの仮想ネットワーク・インタフェース・カードは、物理ネットワーク・インタフェース・カード上で実行し、各仮想マシンは、少なくとも1つの仮想ネットワーク・インタフェース・カードに対応し、物理ネットワーク・インタフェース・カードは、ダイレクト・メモリ・アクセス方式で各仮想マシンのメモリにおいてデータを読み書きし、仮想マシンシステムのいずれかの仮想マシンがマイグレーションされる場合、この方法は、マイグレーションされるべきソース仮想マシンにより、仮想マシンマイグレーション管理ユニットにより送信された仮想マシンのマイグレーションを開始するメッセージを受信するステップと、ソース仮想マシンにより、仮想マシンのマイグレーションを開始するメッセージに従ってダーティ書き込みフラグを設定するステップと、物理ネットワーク・インタフェース・カードが新たなデータをソース仮想マシンのメモリに書き込むことが決定された場合、ソース仮想マシンにより、ダーティ書き込みフラグに従ってソース仮想マシンのメモリから新たなデータを読み取り、ダーティ書き込みフラグに従って新たなデータをソース仮想マシンのメモリに再び書き込むステップとを含む。
任意選択で、ソース仮想マシンは、仮想マシンマイグレーション管理ユニットにより送信されたソース仮想マシンをシャットダウンするメッセージを受信し、ソース仮想マシンは、ソース仮想マシンをシャットダウンするメッセージに従って、ソース仮想マシンに対応する仮想ネットワーク・インタフェース・カードの状態情報をソース仮想マシンのメモリに書き込む。
任意選択で、ソース仮想マシンは、物理ネットワーク・インタフェース・カードにより送信された状態情報読み取り通知を受信し、物理ネットワーク・インタフェース・カードは、仮想マシンマイグレーション管理ユニットにより送信されたソース仮想マシンをシャットダウンするための受信したメッセージに従って、ソース仮想マシンに対応する仮想ネットワーク・インタフェース・カードの状態情報をソース仮想マシンのメモリに書き込んだ後に、状態情報読み取り通知を送信し、ソース仮想マシンは、状態情報読み取り通知に従って、ソース仮想マシンのメモリからソース仮想マシンの仮想ネットワーク・インタフェース・カードの状態情報を読み取り、状態情報をソース仮想マシンのメモリに再び書き込む。
任意選択で、ソース仮想マシンにより、ダーティ書き込みフラグに従ってソース仮想マシンのメモリから新たなデータを読み取り、ダーティ書き込みフラグに従って新たなデータをソース仮想マシンのメモリに再び書き込むステップは、ソース仮想マシンにより、新たなデータにより占有されているソース仮想マシンのメモリ内のメモリページを決定し、ダーティ書き込みフラグに従ってメモリページのデータを読み取り、ダーティ書き込みフラグに従って読み取られたデータをメモリページに再び書き込むステップを含む。
任意選択で、ソース仮想マシンにより、仮想マシンマイグレーション管理ユニットにより送信された仮想マシンのマイグレーションを開始するメッセージを受信するステップは、ソース仮想マシンの仮想ネットワーク・インタフェース・カードのドライバにより、ソース仮想マシンの仮想ネットワーク・インタフェース・カードのバッファ又はレジスタを読み取り、仮想マシンマイグレーション管理ユニットによりバッファ又はレジスタに直接書き込まれた仮想マシンのマイグレーションを開始するメッセージを取得するステップを含む。
任意選択で、この方法は、ソース仮想マシンにより、ダーティ書き込みフラグをクリアするステップを更に含む。
本発明の実施例は、第2の仮想マシンのメモリデータ処理方法を更に提供し、この方法は、仮想マシンシステムに適用され、仮想マシンシステムは、仮想マシンマイグレーション管理ユニットと、ホストデバイスと、物理ネットワーク・インタフェース・カードとを含み、少なくとも1つの仮想マシンは、ホストデバイス上で実行し、少なくとも1つの仮想ネットワーク・インタフェース・カードは、物理ネットワーク・インタフェース・カード上で実行し、各仮想マシンは、少なくとも1つの仮想ネットワーク・インタフェース・カードに対応し、物理ネットワーク・インタフェース・カードは、ダイレクト・メモリ・アクセス方式で各仮想マシンのメモリにおいてデータを読み書きし、仮想マシンシステムのいずれかの仮想マシンがマイグレーションされる場合、この方法は、マイグレーションされるべきソース仮想マシンにより、仮想マシンマイグレーション管理ユニットにより送信されたソース仮想マシンをシャットダウンするメッセージを受信するステップと、ソース仮想マシンにより、ソース仮想マシンをシャットダウンするメッセージに従って、ソース仮想マシンに対応する仮想ネットワーク・インタフェース・カードの状態情報をソース仮想マシンのメモリに書き込むステップとを含む。
任意選択で、ソース仮想マシンをシャットダウンするメッセージを受信する前に、この方法は、ソース仮想マシンにより、仮想マシンマイグレーション管理ユニットにより送信された仮想マシンのマイグレーションを開始するメッセージを受信するステップと、ソース仮想マシンにより、仮想マシンのマイグレーションを開始するメッセージに従ってダーティ書き込みフラグを設定するステップと、物理ネットワーク・インタフェース・カードが新たなデータをソース仮想マシンのメモリに書き込むことが決定された場合、ソース仮想マシンにより、ダーティ書き込みフラグに従ってソース仮想マシンのメモリから新たなデータを読み取り、ダーティ書き込みフラグに従って新たなデータをソース仮想マシンのメモリに再び書き込むステップとを更に含む。
任意選択で、ソース仮想マシンにより、ダーティ書き込みフラグに従ってソース仮想マシンのメモリから新たなデータを読み取り、ダーティ書き込みフラグに従って新たなデータをソース仮想マシンのメモリに再び書き込むステップは、ソース仮想マシンにより、新たなデータにより占有されているソース仮想マシンのメモリ内のメモリページを決定し、ダーティ書き込みフラグに従ってメモリページのデータを読み取り、ダーティ書き込みフラグに従って読み取られたデータをメモリページに再び書き込むステップを含む。
任意選択で、この方法は、ソース仮想マシンにより、ダーティ書き込みフラグをクリアするステップを更に含む。
本発明の実施例は、第3の仮想マシンのメモリデータ処理方法を更に提供し、この方法は、仮想マシンシステムに適用され、仮想マシンシステムは、仮想マシンマイグレーション管理ユニットと、ホストデバイスと、物理ネットワーク・インタフェース・カードとを含み、少なくとも1つの仮想マシンは、ホストデバイス上で実行し、少なくとも1つの仮想ネットワーク・インタフェース・カードは、物理ネットワーク・インタフェース・カード上で実行し、各仮想マシンは、少なくとも1つの仮想ネットワーク・インタフェース・カードに対応し、物理ネットワーク・インタフェース・カードは、ダイレクト・メモリ・アクセス方式で各仮想マシンのメモリにおいてデータを読み書きし、仮想マシンシステムのいずれかの仮想マシンがマイグレーションされる場合、この方法は、マイグレーションされるべきソース仮想マシンにより、物理ネットワーク・インタフェース・カードにより送信された状態情報読み取り通知を受信するステップであり、物理ネットワーク・インタフェース・カードは、仮想マシンマイグレーション管理ユニットにより送信されたソース仮想マシンをシャットダウンするための受信したメッセージに従って、ソース仮想マシンに対応する仮想ネットワーク・インタフェース・カードの状態情報をソース仮想マシンのメモリに書き込んだ後に、状態情報読み取り通知を送信するステップと、ソース仮想マシンにより、状態情報読み取り通知に従って、ソース仮想マシンのメモリからソース仮想マシンの仮想ネットワーク・インタフェース・カードの状態情報を読み取り、状態情報をソース仮想マシンのメモリに再び書き込むステップとを含む。
任意選択で、状態情報読み取り通知を受信する前に、この方法は、ソース仮想マシンにより、仮想マシンマイグレーション管理ユニットにより送信された仮想マシンのマイグレーションを開始するメッセージを受信するステップと、ソース仮想マシンにより、仮想マシンのマイグレーションを開始するメッセージに従ってダーティ書き込みフラグを設定するステップと、物理ネットワーク・インタフェース・カードが新たなデータをソース仮想マシンのメモリに書き込むことが決定された場合、ソース仮想マシンにより、ダーティ書き込みフラグに従ってソース仮想マシンのメモリから新たなデータを読み取り、ダーティ書き込みフラグに従って新たなデータをソース仮想マシンのメモリに再び書き込むステップとを更に含む。
任意選択で、ソース仮想マシンにより、ダーティ書き込みフラグに従ってソース仮想マシンのメモリから新たなデータを読み取り、ダーティ書き込みフラグに従って新たなデータをソース仮想マシンのメモリに再び書き込むステップは、ソース仮想マシンにより、新たなデータにより占有されているソース仮想マシンのメモリ内のメモリページを決定し、ダーティ書き込みフラグに従ってメモリページのデータを読み取り、ダーティ書き込みフラグに従って読み取られたデータをメモリページに再び書き込むステップを含む。
任意選択で、この方法は、ソース仮想マシンにより、ダーティ書き込みフラグをクリアするステップを更に含む。
本発明の実施例は、第4の仮想マシンのマイグレーション方法を更に提供し、この方法は、仮想マシンシステムに適用され、仮想マシンシステムは、仮想マシンマイグレーション管理ユニットと、ホストデバイスと、物理ネットワーク・インタフェース・カードとを含み、少なくとも1つの仮想マシンは、ホストデバイス上で実行し、少なくとも1つの仮想ネットワーク・インタフェース・カードは、物理ネットワーク・インタフェース・カード上で実行し、各仮想マシンは、少なくとも1つの仮想ネットワーク・インタフェース・カードに対応し、物理ネットワーク・インタフェース・カードは、ダイレクト・メモリ・アクセス方式で各仮想マシンのメモリにおいてデータを読み書きし、この方法は、マイグレーションされるべきソース仮想マシンにより、仮想マシンマイグレーション管理ユニットにより送信された仮想マシンのマイグレーションを開始するメッセージを受信するステップと、ソース仮想マシンにより、仮想マシンのマイグレーションを開始するメッセージに従ってダーティ書き込みフラグを設定するステップと、物理ネットワーク・インタフェース・カードが新たなデータをソース仮想マシンのメモリに書き込むことが決定された場合、ソース仮想マシンにより、ダーティ書き込みフラグに従ってソース仮想マシンのメモリから新たなデータを読み取り、ダーティ書き込みフラグに従って新たなデータをソース仮想マシンのメモリに再び書き込むステップと、ソース仮想マシンにより、仮想マシンマイグレーション管理ユニットにより送信されたソース仮想マシンをシャットダウンするメッセージを受信するステップと、ソース仮想マシンにより、ソース仮想マシンをシャットダウンするメッセージに従って、ソース仮想マシンに対応する仮想ネットワーク・インタフェース・カードの状態情報をソース仮想マシンのメモリに書き込むステップと、仮想マシンマイグレーション管理ユニットにより、メモリ反復動作をトリガーするステップであり、メモリ反復動作は、ソース仮想マシンのメモリのデータを宛先仮想マシンにマイグレーションするために使用されるステップとを含む。
任意選択で、ソース仮想マシンにより、ダーティ書き込みフラグに従ってソース仮想マシンのメモリから新たなデータを読み取り、ダーティ書き込みフラグに従って新たなデータをソース仮想マシンのメモリに再び書き込むステップは、ソース仮想マシンにより、新たなデータにより占有されているソース仮想マシンのメモリ内のメモリページを決定し、ダーティ書き込みフラグに従って新たなデータにより占有されているメモリページのデータを読み取り、ダーティ書き込みフラグに従って読み取られたデータを新たなデータにより占有されているメモリページに再び書き込むステップを含む。
任意選択で、この方法は、仮想マシンマイグレーション管理ユニットが状態情報により占有されているメモリアドレスを宛先仮想マシンに通知するため、ソース仮想マシンにより、状態情報により占有されているメモリアドレスを仮想マシンマイグレーション管理ユニットに通知するステップを更に含む。
任意選択で、この方法は、宛先仮想マシンにより、状態情報により占有されているメモリアドレスに従って、マイグレーションされたメモリデータから状態情報を取得するステップと、宛先仮想マシンにより、状態情報に従って、宛先仮想マシンに対応する仮想ネットワーク・インタフェース・カードを復旧するステップとを更に含む。
本発明の実施例は、第5の仮想マシンのマイグレーション方法を更に提供し、この方法は、仮想マシンシステムに適用され、仮想マシンシステムは、仮想マシンマイグレーション管理ユニットと、物理デバイスと、ネットワーク・インタフェース・カードとを含み、少なくとも1つの仮想マシンは、物理デバイス上で実行し、少なくとも1つの仮想ネットワーク・インタフェース・カードは、ネットワーク・インタフェース・カード上で実行し、各仮想マシンは、1つの仮想ネットワーク・インタフェース・カードに対応し、各仮想マシンは、対応する仮想ネットワーク・インタフェース・カードを使用することによりパケットを受信及び送信し、この方法は、マイグレーションされるべきソース仮想マシンにより、仮想マシンマイグレーション管理ユニットにより送信された仮想マシンのマイグレーションを開始するメッセージを受信するステップと、ソース仮想マシンにより、仮想マシンのマイグレーションを開始するメッセージに従ってダーティ書き込みフラグを設定するステップと、新たなデータがソース仮想マシンのメモリに書き込まれることが決定された場合、ソース仮想マシンにより、ダーティ書き込みフラグに従ってソース仮想マシンのメモリから新たなデータを読み取り、ダーティ書き込みフラグに従って新たなデータをソース仮想マシンのメモリに再び書き込むステップと、ソース仮想マシンにより、ネットワーク・インタフェース・カードにより送信された状態情報読み取り通知を受信するステップであり、状態情報読み取り通知は、ネットワーク・インタフェース・カードがソース仮想マシンに対応する仮想ネットワーク・インタフェース・カードの状態情報をソース仮想マシンのメモリに書き込んだ後に送信され、ネットワーク・インタフェース・カードは、仮想マシンマイグレーション管理ユニットにより送信されたソース仮想マシンをシャットダウンするメッセージを受信した後に、状態情報をソース仮想マシンのメモリに書き込むステップをトリガーするステップと、ソース仮想マシンにより、状態情報読み取り通知に従って、ソース仮想マシンのメモリからソース仮想マシンの仮想ネットワーク・インタフェース・カードの状態情報を読み取り、状態情報をソース仮想マシンのメモリに再び書き込むステップと、仮想マシンマイグレーション管理ユニットにより、メモリ反復動作をトリガーするステップであり、メモリ反復動作は、ソース仮想マシンのメモリのデータを宛先仮想マシンにマイグレーションするために使用されるステップとを含む。
任意選択で、ソース仮想マシンにより、ダーティ書き込みフラグに従ってソース仮想マシンのメモリから新たなデータを読み取り、ダーティ書き込みフラグに従って新たなデータをソース仮想マシンのメモリに再び書き込むステップは、ソース仮想マシンにより、新たなデータにより占有されているソース仮想マシンのメモリ内のメモリページを決定し、ダーティ書き込みフラグに従って新たなデータにより占有されているメモリページのデータを読み取り、ダーティ書き込みフラグに従って読み取られたデータを新たなデータにより占有されているメモリページに再び書き込むステップを含む。
任意選択で、この方法は、仮想マシンマイグレーション管理ユニットが状態情報により占有されているメモリページについての情報を宛先仮想マシンに通知するため、ソース仮想マシンにより、状態情報により占有されているメモリページについての情報を仮想マシンマイグレーション管理ユニットに通知するステップを更に含む。
任意選択で、この方法は、宛先仮想マシンにより、状態情報により占有されているメモリページについての情報に従って、マイグレーションされたメモリデータから状態情報を取得するステップと、宛先仮想マシンにより、状態情報に従って、宛先仮想マシンに対応する仮想ネットワーク・インタフェース・カードを復旧するステップとを更に含む。
本発明の実施例は、第1の仮想マシンシステムを更に提供し、仮想マシンシステムは、仮想マシンマイグレーション管理ユニットと、ホストデバイスと、物理ネットワーク・インタフェース・カードとを含み、少なくとも1つの仮想マシンは、ホストデバイス上で実行し、少なくとも1つの仮想ネットワーク・インタフェース・カードは、物理ネットワーク・インタフェース・カード上で実行し、各仮想マシンは、少なくとも1つの仮想ネットワーク・インタフェース・カードに対応し、物理ネットワーク・インタフェース・カードは、ダイレクト・メモリ・アクセス方式で各仮想マシンのメモリにおいてデータを読み書きし、仮想マシンシステムの第1の仮想マシンは、仮想マシンマイグレーション管理ユニットにより送信された仮想マシンのマイグレーションを開始するメッセージを受信するように構成された受信ユニットと、仮想マシンのマイグレーションを開始するメッセージに従ってダーティ書き込みフラグを設定するように構成された設定ユニットと、物理ネットワーク・インタフェース・カードが新たなデータを第1の仮想マシンのメモリに書き込むことが決定された場合、ダーティ書き込みフラグに従って第1の仮想マシンのメモリから新たなデータを読み取り、ダーティ書き込みフラグに従って新たなデータを第1の仮想マシンのメモリに再び書き込むように構成された処理ユニットとを含む。
任意選択で、受信ユニットは、仮想マシンマイグレーション管理ユニットにより送信された第1の仮想マシンをシャットダウンするメッセージを受信するように更に構成され、処理ユニットは、第1の仮想マシンをシャットダウンするメッセージに従って、ソース仮想マシンに対応する仮想ネットワーク・インタフェース・カードの状態情報を第1の仮想マシンのメモリに書き込むように更に構成される。
任意選択で、受信ユニットは、物理ネットワーク・インタフェース・カードにより送信された状態情報読み取り通知を受信するように更に構成され、物理ネットワーク・インタフェース・カードは、仮想マシンマイグレーション管理ユニットにより送信された第1の仮想マシンをシャットダウンするための受信したメッセージに従って、第1の仮想マシンに対応する仮想ネットワーク・インタフェース・カードの状態情報を第1の仮想マシンのメモリに書き込んだ後に、状態情報読み取り通知を送信し、処理ユニットは、第1の仮想マシンにより、状態情報読み取り通知に従って、第1の仮想マシンのメモリから第1の仮想マシンの仮想ネットワーク・インタフェース・カードの状態情報を読み取り、状態情報を第1の仮想マシンのメモリに再び書き込むように更に構成される。
任意選択で、処理ユニットがダーティ書き込みフラグに従って第1の仮想マシンのメモリから新たなデータを読み取り、ダーティ書き込みフラグに従って新たなデータを第1の仮想マシンのメモリに再び書き込むことは、処理ユニットにより、新たなデータにより占有されている第1の仮想マシンのメモリ内のメモリページを決定し、ダーティ書き込みフラグに従ってメモリページのデータを読み取り、ダーティ書き込みフラグに従って読み取られたデータをメモリページに再び書き込むことを含む。
任意選択で、受信ユニットが仮想マシンマイグレーション管理ユニットにより送信された仮想マシンのマイグレーションを開始するメッセージを受信することは、受信ユニットにより、第1の仮想マシンの仮想ネットワーク・インタフェース・カードのバッファ又はレジスタを読み取り、仮想マシンマイグレーション管理ユニットによりバッファ又はレジスタに直接書き込まれた仮想マシンのマイグレーションを開始するメッセージを取得することを含む。
任意選択で、第1の仮想マシンは、ダーティ書き込みフラグをクリアするように構成されたクリアユニットを更に含む。
本発明の実施例は、第2の仮想マシンシステムを更に提供し、仮想マシンシステムは、仮想マシンマイグレーション管理ユニットと、ホストデバイスと、物理ネットワーク・インタフェース・カードとを含み、少なくとも1つの仮想マシンは、ホストデバイス上で実行し、少なくとも1つの仮想ネットワーク・インタフェース・カードは、物理ネットワーク・インタフェース・カード上で実行し、各仮想マシンは、少なくとも1つの仮想ネットワーク・インタフェース・カードに対応し、物理ネットワーク・インタフェース・カードは、ダイレクト・メモリ・アクセス方式で各仮想マシンのメモリにおいてデータを読み書きし、仮想マシンシステムの第1の仮想マシンは、仮想マシンマイグレーション管理ユニットにより送信された第1の仮想マシンをシャットダウンするメッセージを受信するように構成された受信ユニットと、第1の仮想マシンをシャットダウンするメッセージに従って、第1の仮想マシンに対応する仮想ネットワーク・インタフェース・カードの状態情報を第1の仮想マシンのメモリに書き込むように構成された処理ユニットとを含む。
任意選択で、受信ユニットは、仮想マシンマイグレーション管理ユニットにより送信された仮想マシンのマイグレーションを開始するメッセージを受信するように更に構成され、相応して、第1の仮想マシンは、仮想マシンのマイグレーションを開始するメッセージに従ってダーティ書き込みフラグを設定するように構成された設定ユニットを更に含み、処理ユニットは、物理ネットワーク・インタフェース・カードが新たなデータを第1の仮想マシンのメモリに書き込むことが決定された場合、ダーティ書き込みフラグに従って第1の仮想マシンのメモリから新たなデータを読み取り、ダーティ書き込みフラグに従って新たなデータを第1の仮想マシンのメモリに再び書き込むように更に構成される。
任意選択で、処理ユニットがダーティ書き込みフラグに従って第1の仮想マシンのメモリから新たなデータを読み取り、ダーティ書き込みフラグに従って新たなデータを第1の仮想マシンのメモリに再び書き込むことは、処理ユニットにより、新たなデータにより占有されている第1の仮想マシンのメモリ内のメモリページを決定し、ダーティ書き込みフラグに従ってメモリページのデータを読み取り、ダーティ書き込みフラグに従って読み取られたデータをメモリページに再び書き込むことを含む。
任意選択で、第1の仮想マシンは、ダーティ書き込みフラグをクリアするように構成されたクリアユニットを更に含む。
本発明の実施例は、第3の仮想マシンシステムを更に提供し、仮想マシンシステムは、仮想マシンマイグレーション管理ユニットと、ホストデバイスと、物理ネットワーク・インタフェース・カードとを含み、少なくとも1つの仮想マシンは、ホストデバイス上で実行し、少なくとも1つの仮想ネットワーク・インタフェース・カードは、物理ネットワーク・インタフェース・カード上で実行し、各仮想マシンは、少なくとも1つの仮想ネットワーク・インタフェース・カードに対応し、物理ネットワーク・インタフェース・カードは、ダイレクト・メモリ・アクセス方式で各仮想マシンのメモリにおいてデータを読み書きし、仮想マシンシステムの第1の仮想マシンは、物理ネットワーク・インタフェース・カードにより送信された状態情報読み取り通知を受信するように構成された受信ユニットであり、物理ネットワーク・インタフェース・カードは、仮想マシンマイグレーション管理ユニットにより送信された第1の仮想マシンをシャットダウンするための受信したメッセージに従って、第1の仮想マシンに対応する仮想ネットワーク・インタフェース・カードの状態情報を第1の仮想マシンのメモリに書き込んだ後に、状態情報読み取り通知を送信する受信ユニットと、第1の仮想マシンのメモリから第1の仮想マシンの仮想ネットワーク・インタフェース・カードの状態情報を読み取り、状態情報を第1の仮想マシンのメモリに再び書き込むように構成された処理ユニットとを含む。
任意選択で、受信ユニットは、仮想マシンマイグレーション管理ユニットにより送信された仮想マシンのマイグレーションを開始するメッセージを受信するように更に構成され、相応して、第1の仮想マシンは、仮想マシンのマイグレーションを開始するメッセージに従ってダーティ書き込みフラグを設定するように構成された設定ユニットを更に含み、処理ユニットは、物理ネットワーク・インタフェース・カードが新たなデータを第1の仮想マシンのメモリに書き込むことが決定された場合、ダーティ書き込みフラグに従って第1の仮想マシンのメモリから新たなデータを読み取り、ダーティ書き込みフラグに従って新たなデータを第1の仮想マシンのメモリに再び書き込むように更に構成される。
任意選択で、処理ユニットがダーティ書き込みフラグに従って第1の仮想マシンのメモリから新たなデータを読み取り、ダーティ書き込みフラグに従って新たなデータを第1の仮想マシンのメモリに再び書き込むことは、処理ユニットにより、新たなデータにより占有されている第1の仮想マシンのメモリ内のメモリページを決定し、ダーティ書き込みフラグに従ってメモリページのデータを読み取り、ダーティ書き込みフラグに従って読み取られたデータをメモリページに再び書き込むことを含む。
任意選択で、第1の仮想マシンは、ダーティ書き込みフラグをクリアするように構成されたクリアユニットを更に含む。
本発明の実施例は、第4の仮想マシンシステムを更に提供し、仮想マシンシステムは、仮想マシンマイグレーション管理ユニットと、ホストデバイスと、物理ネットワーク・インタフェース・カードとを含み、少なくとも1つの仮想マシンは、ホストデバイス上で実行し、少なくとも1つの仮想ネットワーク・インタフェース・カードは、物理ネットワーク・インタフェース・カード上で実行し、各仮想マシンは、少なくとも1つの仮想ネットワーク・インタフェース・カードに対応し、物理ネットワーク・インタフェース・カードは、ダイレクト・メモリ・アクセス方式で各仮想マシンのメモリにおいてデータを読み書きし、仮想マシンシステムの第1の仮想マシンは、仮想マシンマイグレーション管理ユニットにより送信された仮想マシンのマイグレーションを開始するメッセージを受信し、仮想マシンマイグレーション管理ユニットにより送信された第1の仮想マシンをシャットダウンするメッセージを受信するように構成された受信ユニットと、仮想マシンのマイグレーションを開始するメッセージに従ってダーティ書き込みフラグを設定するように構成された設定ユニットと、物理ネットワーク・インタフェース・カードが新たなデータを第1の仮想マシンのメモリに書き込むことが決定された場合、ダーティ書き込みフラグに従って第1の仮想マシンのメモリから新たなデータを読み取り、ダーティ書き込みフラグに従って新たなデータを第1の仮想マシンのメモリに再び書き込み、第1の仮想マシンをシャットダウンするメッセージに従って、第1の仮想マシンに対応する仮想ネットワーク・インタフェース・カードの状態情報を第1の仮想マシンのメモリに書き込むように構成された処理ユニットとを含み、相応して、仮想マシンマイグレーション管理ユニットは、メモリ反復動作をトリガーするように更に構成され、メモリ反復動作は、第1の仮想マシンのメモリのデータを第2の仮想マシンにマイグレーションするために使用され、第2の仮想マシンは、第1の仮想マシンがマイグレーションされる宛先仮想マシンである。
任意選択で、処理ユニットがダーティ書き込みフラグに従って第1の仮想マシンのメモリから新たなデータを読み取り、ダーティ書き込みフラグに従って新たなデータを第1の仮想マシンのメモリに再び書き込むことは、処理ユニットにより、新たなデータにより占有されている第1の仮想マシンのメモリ内のメモリページを決定し、ダーティ書き込みフラグに従って新たなデータにより占有されているメモリページのデータを読み取り、ダーティ書き込みフラグに従って読み取られたデータを新たなデータにより占有されているメモリページに再び書き込むことを含む。
任意選択で、第1の仮想マシンは、仮想マシンマイグレーション管理ユニットが状態情報により占有されているメモリアドレスを第2の仮想マシンに通知するため、状態情報により占有されているメモリアドレスを仮想マシンマイグレーション管理ユニットに通知するように構成された通知ユニットを更に含む。
任意選択で、第2の仮想マシンは、状態情報により占有されているメモリアドレスに従って、マイグレーションされたメモリデータから状態情報を取得し、状態情報に従って、第2の仮想マシンに対応する仮想ネットワーク・インタフェース・カードを復旧する。
本発明の実施例は、第5の仮想マシンのマイグレーションシステムを更に提供し、仮想マシンシステムは、仮想マシンマイグレーション管理ユニットと、物理デバイスと、ネットワーク・インタフェース・カードとを含み、少なくとも1つの仮想マシンは、物理デバイス上で実行し、少なくとも1つの仮想ネットワーク・インタフェース・カードは、ネットワーク・インタフェース・カード上で実行し、各仮想マシンは、1つの仮想ネットワーク・インタフェース・カードに対応し、各仮想マシンは、対応する仮想ネットワーク・インタフェース・カードを使用することによりパケットを受信及び送信し、仮想マシンシステムの第1の仮想マシンは、仮想マシンマイグレーション管理ユニットにより送信された仮想マシンのマイグレーションを開始するメッセージを受信し、物理ネットワーク・インタフェース・カードにより送信された状態情報読み取り通知を受信するように構成された受信ユニットであり、状態情報読み取り通知は、仮想マシンマイグレーション管理ユニットにより送信された第1の仮想マシンをシャットダウンするメッセージを受信した後に、物理ネットワーク・インタフェース・カードが状態情報を第1の仮想マシンのメモリに書き込んだ後に送信される受信ユニットと、仮想マシンのマイグレーションを開始するメッセージに従ってダーティ書き込みフラグを設定するように構成された設定ユニットと、新たなデータが第1の仮想マシンのメモリに書き込まれることが決定された場合、第1の仮想マシンにより、ダーティ書き込みフラグに従って第1の仮想マシンのメモリから新たなデータを読み取り、ダーティ書き込みフラグに従って新たなデータを第1の仮想マシンのメモリに再び書き込むように構成された処理ユニットであり、状態情報読み取り通知に従って、第1の仮想マシンのメモリから第1の仮想マシンの仮想ネットワーク・インタフェース・カードの状態情報を読み取り、状態情報を第1の仮想マシンのメモリに再び書き込むように更に構成された処理ユニットとを含み、相応して、仮想マシンマイグレーション管理ユニットは、メモリ反復動作をトリガーするように更に構成され、メモリ反復動作は、第1の仮想マシンのメモリのデータを第2の仮想マシンにマイグレーションするために使用され、第2の仮想マシンは、第1の仮想マシンがマイグレーションされる宛先仮想マシンである。
任意選択で、処理ユニットがダーティ書き込みフラグに従って第1の仮想マシンのメモリから新たなデータを読み取り、ダーティ書き込みフラグに従って新たなデータを第1の仮想マシンのメモリに再び書き込むことは、処理ユニットにより、新たなデータにより占有されている第1の仮想マシンのメモリ内のメモリページを決定し、ダーティ書き込みフラグに従って新たなデータにより占有されているメモリページのデータを読み取り、ダーティ書き込みフラグに従って読み取られたデータを新たなデータにより占有されているメモリページに再び書き込むことを含む。
任意選択で、第1の仮想マシンは、仮想マシンマイグレーション管理ユニットが状態情報により占有されているメモリページについての情報を第2の仮想マシンに通知するため、状態情報により占有されているメモリページについての情報を仮想マシンマイグレーション管理ユニットに通知するように構成された通知ユニットを更に含む。
任意選択で、第2の仮想マシンは、状態情報により占有されているメモリページについての情報に従って、マイグレーションされたメモリデータから状態情報を取得し、宛先仮想マシンは、状態情報に従って、宛先仮想マシンに対応する仮想ネットワーク・インタフェース・カードを復旧する。
本発明の実施例で提供される仮想マシンのライブマイグレーション方法、仮想マシンのメモリデータ処理方法、サーバ及び仮想マシンシステムによれば、ダーティ書き込みフラグを設定することにより、マイグレーションされるべき仮想マシンの仮想PCIEデバイスは、受信したデータで少なくとも1つの読み書き動作を実行し、マイグレーションされるべき仮想マシンの仮想マシンマネージャは、データの変更を識別し、変更されたデータを宛先仮想マシンにマイグレーションすることができる。これにより、データが仮想PCIEデバイスを通過するが、仮想マシンマネージャがデータを認識することができないため、仮想マシンのライブマイグレーション処理中にデータがマイグレーションできないという従来技術の課題を解決する。更に、ソース仮想マシンは、ソース仮想マシンをシャットダウンするメッセージに従って、ソース仮想マシンに対応する仮想ネットワーク・インタフェース・カードの状態情報をソース仮想マシンのメモリに書き込むことができる。或いは、マイグレーションされるべきソース仮想マシンは、物理ネットワーク・インタフェース・カードにより送信された状態情報読み取り通知に従ってソース仮想マシンのメモリからソース仮想マシンの仮想ネットワーク・インタフェース・カードの状態情報を読み取り、状態情報をソース仮想マシンのメモリに再び書き込む。これにより、仮想マシンのマイグレーション処理中に仮想ネットワーク・インタフェース・カードの状態のマイグレーションを実施する。
本発明の実施例又は従来技術の技術的対策を明確に説明するために、以下に、実施例又は従来技術を説明するために必要な添付図面について簡単に紹介する。明らかに、以下の説明における添付図面は、本発明の単にいくつかの実施例を示しているに過ぎず、当業者は、創造的取り組みを行うことなく、依然としてこれらの添付図面から他の図面を導き得る。
本発明の実施例による仮想マシンのライブマイグレーション方法の概略フローチャート 本発明の実施例によるサーバ200の概略構成図 本発明の実施例によるサーバ200の他の実現方式の概略構成図 本発明の実施例による仮想マシンシステムの構成図 本発明の実施例による仮想マシンのマイグレーション方法の概略フローチャート
以下に、本発明の実施例の添付図面を参照して本発明の実施例の技術的対策について明確且つ完全に説明する。明らかに、説明する実施例は本発明の全てではなく、一部である。創造的取り組みを行うことなく本発明の実施例に基づいて当業者により得られる全ての他の実施例は、本発明の保護範囲内に入るものとする。
SR-IOV技術の事例において仮想マシンのライブマイグレーションが実施できないという従来技術の課題を解決するために、本発明の実施例は、仮想マシンのライブマイグレーション方法を開示する。
図1を参照すると、図1は、本発明の実施例による仮想マシンのライブマイグレーション方法の概略フローチャートである。この方法は以下を含む。
ステップ100:仮想PCIEデバイスは、仮想マシンのライブマイグレーションを開始する第1のメッセージを受信する。仮想マシンにより処理されるデータは、物理PCIEデバイスを使用することにより送信され、仮想PCIEデバイスは、物理PCIEデバイス上で実行する仮想デバイスであり、仮想マシンは、仮想PCIEデバイスを使用することにより物理PCIEデバイスにアクセスする。
ステップ102:仮想PCIEデバイスは、第1のメッセージに従ってダーティ書き込みフラグを設定する。ダーティ書き込みフラグは、仮想PCIEデバイスを通過するデータにおいて少なくとも1つの読み書き動作を実行するために使用される。
ステップ104:仮想マシンのライブマイグレーションが完了したことを示す第2のメッセージを受信した場合、仮想PCIEデバイスは、第2のメッセージに従ってダーティ書き込みフラグを取り消す。
前述のダーティ書き込みフラグを設定することにより、マイグレーションされるべき仮想マシンの仮想PCIEデバイスは、受信したデータで少なくとも1つの読み書き動作を実行し、マイグレーションされるべき仮想マシンの仮想マシンマネージャは、データの変更を識別し、変更されたデータを宛先仮想マシンにマイグレーションすることができる。これにより、データが仮想PCIEデバイスを通過するが、仮想マシンマネージャがデータを認識することができないため、仮想マシンのライブマイグレーション処理中にデータがマイグレーションできないという従来技術の課題を解決する。
任意選択の実現方式として、ステップ100の前に、本発明のこの実施例の仮想マシンのライブマイグレーション方法は、仮想マシンのライブマイグレーションを開始する第1のメッセージを受信するために、仮想PCIEデバイスと物理PCIEデバイスとの間にメッセージチャネルを確立することを更に含む。
仮想PCIEデバイスと物理PCIEデバイスとの間のメッセージチャネルは、以下の方式で確立されてもよい。仮想PCIEデバイスのドライバと物理PCIEデバイスのドライバとの間にメッセージチャネルを確立する。すなわち、仮想PCIEデバイスのドライバ及び物理PCIEデバイスのドライバにおいてデータ空間のセグメントを別々に確保し、確保されたデータ空間を使用することによりメッセージ伝送を実施する。
確保されたデータ空間を使用することにより仮想PCIEデバイスと物理PCIEデバイスとの間でメッセージが伝送されることは、以下の方式で実施されてもよい。仮想マシンのネットワーク・インタフェース・カードにより、仮想PCIEデバイスと物理PCIEデバイスとの間でメッセージ通信を実施するために、DMA方式で確保されたデータ空間内でメッセージを伝送する、或いは仮想マシンのネットワーク・インタフェース・カードで、通信のために使用されるデータ空間を確保し、仮想PCIEデバイスと物理PCIEデバイスとで確保されたデータ空間を別々に共有する。
仮想マシンのネットワーク・インタフェース・カードは、仮想マシンにより使用される物理ネットワーク・インタフェース・カードである。
具体的には、物理PCIEデバイスと仮想PCIEデバイスとの間のメッセージ伝送は、以下の方式で実施されてもよい。
物理PCIEデバイスは、仮想PICEデバイスに送信されるメッセージを物理PCIEデバイスのデータ空間に書き込む。メッセージは、ソース物理PCIEデバイスのアドレスと、宛先仮想PCIEデバイスのアドレスとを保持する。データ空間において新たなメッセージを検出した場合、ネットワーク・インタフェース・カードは、宛先仮想PCIEデバイスのアドレスに従って、対応する仮想PCIEデバイスのデータ空間にメッセージをマイグレーションし、仮想PCIEデバイスに対してメッセージを取得するように指示する。対応する仮想PCIEデバイスは、対応する仮想PCIEデバイスのデータ空間からメッセージを取得する。
任意選択で、仮想PCIEデバイスと物理PCIEデバイスとの間に確立されたメッセージチャネルは、仮想マシンの仮想マシンマネージャ又は仮想マシンマイグレーション管理モジュールにより生成される。
前述のステップ100において、仮想マシンマイグレーション管理モジュールは、仮想マシンのライブマイグレーションを開始する第1のメッセージを物理PCIEデバイスに配信し、物理PCIEデバイスは、前述の確立されたメッセージチャネルを通じて第1のメッセージを仮想PCIEデバイスに送信してもよい。本発明のこの実施例のステップ102において、仮想PCIEデバイスにより設定されたダーティ書き込みフラグは、仮想PCIEデバイスのドライバに確保されたデータ空間内に設定されてもよく、ダーティ書き込みフラグとして独立変数が設定されてもよい。具体的には、ダーティ書き込みフラグは、仮想PCIEデバイスのドライバにより設定されてもよい。
仮想PCIEデバイスがダーティ書き込みフラグを設定した後に、仮想PCIEデバイスは、受信したデータで少なくとも1つの読み書き動作、例えば、1バイトの読み書き動作を実行する。このように、仮想マシンの仮想マシンマネージャは、データが変更されたことを識別することができ、データが仮想マシンのライブマイグレーション中にマイグレーション可能になる。
仮想マシンマイグレーション管理モジュールは、仮想マシンのライブマイグレーションのメモリ反復コピーを開始し、仮想マシンのライブマイグレーションの更に良い効果を実現するために、データ空間の他のセグメントが、仮想PCIEデバイス及び物理PCIEデバイスのドライバにおいて別々に更に確保されてもよい。データ空間のこの他の部分は、ネットワーク・インタフェース・カードと対応する仮想PCIEデバイスとの間の状態データを記憶するために使用される。状態データは、仮想マシンがマイグレーションされた後に宛先仮想マシンにおいて状態データを復旧し、仮想マシン状態のシームレスな切り替えを実現するために使用される。
前述のステップ104の前に、本発明のこの実施例の仮想マシンのライブマイグレーション方法は、仮想マシンのライブマイグレーションの反復コピーの最後の繰り返しが完了したときに、仮想マシンマイグレーション管理モジュールにより、物理PCIEデバイスを使用することによりメッセージをネットワーク・インタフェース・カード及び対応する仮想PCIEデバイスに配信し、メッセージを受信した後に、ネットワーク・インタフェース・カードにより、仮想PCIEデバイスのためのデータ送受信を停止し、仮想PCIEデバイスにより、設定されたダーティ書き込みフラグに従ってページをダーティに書き込むことを更に含む。データの受信を停止する前にネットワーク・インタフェース・カードにより受信された全てのデータは、ページ内に位置する。このように、全てのデータのマイグレーションが実現可能になり、仮想マシンのライブマイグレーションの精度が改善される。任意選択で、DMAにより変更された他の変数のデータが存在する場合、データが位置するページも、設定されたダーティ書き込みフラグに従ってダーティに書き込まれる。
仮想マシンのマイグレーションが完了し、宛先仮想マシンが開始される場合、仮想マシンマイグレーション管理モジュールは、宛先サーバの物理PCIEデバイスを使用することにより、宛先仮想マシンを開始する開始メッセージをネットワーク・インタフェース・カードに配信し、これにより、ネットワーク・インタフェース・カードは、ソース仮想マシンから宛先仮想マシンへの仮想マシン状態の切り替えを実現するために、ネットワーク・インタフェース・カードと対応する仮想PCIEデバイスとの間の前述の記憶された状態データを、宛先仮想マシンに対応する仮想PCIEデバイスにDMA方式で送信する。
仮想マシンのマイグレーションが完了した後に、仮想マシンマイグレーション管理モジュールは、ダーティ書き込みフラグを取り消すために、マイグレーションが完了したことを示す第2のメッセージを仮想マシンの仮想PCIEデバイスに送信する。
本発明の実施例は、サーバを更に提供し、サーバ上で実行する仮想マシンで仮想化を実現するために、SR-IOV技術が使用される。図2を参照すると、図2は、本発明の実施例によるサーバ200の概略構成図である。
少なくとも1つの仮想マシンは、サーバ200上で実行し、少なくとも1つの仮想マシンにより処理されるデータは、物理PCIEデバイスを使用することにより送信され、少なくとも1つの仮想PCIEデバイスは、物理PCIEデバイス上で実行し、各仮想マシンは、1つの仮想PCIEデバイスに対応する。少なくとも1つの仮想PCIEデバイスの中の第1の仮想PCIEデバイスは、第1の仮想PCIEデバイスに対応する仮想マシンのライブ開始マイグレーションの第1のメッセージを受信するように構成された受信ユニット201と、第1のメッセージに従ってダーティ書き込みフラグを設定するように構成された設定ユニット202であり、ダーティ書き込みフラグは、第1の仮想PCIEデバイスを通過するデータにおいて少なくとも1つの読み書き動作を実行するために使用され、第1の仮想PCIEデバイスに対応する仮想マシンのライブマイグレーションが完了したことを示す第2のメッセージを受信した場合、第2のメッセージに従ってダーティ書き込みフラグを取り消すように構成された設定ユニット202とを含む。
前述の設定ユニット202によりダーティ書き込みフラグを設定することにより、マイグレーションされるべき仮想マシンの第1の仮想PCIEデバイスは、受信したデータで少なくとも1つの読み書き動作を実行し、マイグレーションされるべき仮想マシンの仮想マシンマネージャは、データの変更を識別し、変更されたデータを宛先仮想マシンにマイグレーションすることができる。これにより、データが仮想PCIEデバイスを通過するが、仮想マシンマネージャがデータを認識することができないため、仮想マシンのライブマイグレーション処理中にデータがマイグレーションできないという従来技術の課題を解決する。
設定ユニット202が第1のメッセージに従ってダーティ書き込みフラグを設定することは、設定ユニットにより、第1の仮想PCIEデバイスのドライバを使用することにより第1のメッセージに従ってダーティ書き込みフラグを設定すること、又は設定ユニットにより、ダーティ書き込みフラグとして独立変数を設定することを含んでもよい。
設定ユニット202により、ドライバを使用することによりダーティ書き込みフラグを設定することは、設定ユニットにより、第1の仮想PCIEデバイスのドライバにおいて確保されたデータ空間内にダーティ書き込みフラグを設定することを含んでもよい。
任意選択の実現方式として、第1の仮想PCIEデバイスは、メッセージチャネル確立ユニット203を更に含む。図3を参照すると、図3は、本発明の実施例によるサーバの他の実現方式の概略構成図である。
メッセージチャネル確立ユニット203は、受信ユニット201が確立されたメッセージチャネルを通じて、第1の仮想PCIEデバイスに対応する仮想マシンのライブマイグレーションを開始する第1のメッセージを受信するために、第1の仮想PCIEデバイスと物理PCIEデバイスとの間にメッセージチャネルを確立するように構成される。
任意選択の実現方式として、メッセージチャネル確立ユニット203が第1の仮想PCIEデバイスと物理PCIEデバイスとの間にメッセージチャネルを確立することは、メッセージチャネル確立ユニット203により、第1の仮想PCIEデバイスのドライバ及び物理PCIEデバイスのドライバにおいてデータ空間のセグメントを別々に確保し、確保されたデータ空間を使用することにより第1の仮想PCIEデバイスと物理PCIEデバイスとの間でメッセージ伝送を実施することを含む。
相応して、第1の仮想PCIEデバイス及び物理PCIEデバイスが確保されたデータ空間を使用することによりメッセージ伝送を実施することは、仮想マシンのネットワーク・インタフェース・カードにより、仮想PCIEデバイスと物理PCIEデバイスとの間でメッセージ通信を実施するために、ダイレクト・メモリ・アクセス(DMA)方式で確保されたデータ空間内でメッセージを伝送すること、又は仮想マシンのネットワーク・インタフェース・カードのメッセージチャネル確立ユニットにより、通信のために使用されるデータ空間を確保し、仮想PCIEデバイスと物理PCIEデバイスとで確保されたデータ空間を別々に共有することを含む。
本発明の実施例の前述のサーバ200における仮想PCIEデバイスの実現方法については、実現のための図1の方法の実現方式を参照されたい。詳細は再び説明しない。
本発明のこの実施例の仮想マシンのライブマイグレーション方法を実施するための前述の方法に基づいて、本発明の実施例は、前述の方法に基づく仮想マシンのメモリデータ処理方法及び仮想マシンのマイグレーション方法を更に提供する。更なる紹介が以下に提供される。
本発明のこの実施例の方法が紹介される前に、本発明のこの実施例のシステムアーキテクチャについて、以下のように更に説明する。
図4を参照すると、図14は、本発明の実施例による仮想マシンシステムの概略構成図である。仮想マシンシステムは、ホストデバイス10と、物理ネットワーク・インタフェース・カード20と、仮想マシンマイグレーション管理ユニット30とを含む。ホストデバイス10及び物理ネットワーク・インタフェース・カード20は、インタフェースを使用することにより接続され、n個の仮想マシン(nは1以上である)は、ホストデバイス10上で実行し、n個の仮想ネットワーク・インタフェース・カードは、仮想化により、物理ネットワーク・インタフェース・カード20上に生成される。各仮想ネットワーク・インタフェース・カードは、1つの仮想マシンに対応し、仮想ネットワーク・インタフェース・カードに対応する仮想ネットワーク・インタフェース・カード・ドライバは、各仮想マシン上で実行する。各仮想マシンの仮想ネットワーク・インタフェース・カード・ドライバは、各仮想マシンのメモリアドレスを取得し、各仮想マシンに対応する仮想ネットワーク・インタフェース・カードを使用することにより、各仮想マシンのメモリアドレスを物理ネットワーク・インタフェース・カード20に通知するために使用される。物理ネットワーク・インタフェース・カード20は、各仮想マシンのメモリアドレスを保存する。例えば、仮想マシンVM1の仮想ネットワーク・インタフェース・カード・ドライバ1は、仮想ネットワーク・インタフェース・カード1に接続され、仮想マシンVM1の仮想ネットワーク・インタフェース・カード・ドライバは、仮想マシンVM1のメモリアドレスを取得し、仮想ネットワーク・インタフェース・カード1を使用することにより、仮想マシンVM1のメモリアドレスを物理ネットワーク・インタフェース・カード20に通知し、物理ネットワーク・インタフェース・カード20は、仮想マシンVM1のメモリアドレスを保存する。前述の物理ネットワーク・インタフェース・カード20の具体的な実現は、本発明の前述の実施例における物理PCIeデバイスでもよく、前述の仮想ネットワーク・インタフェース・カードは、本発明の前述の実施例における仮想PCIeデバイスに具体的に対応してもよい。(この実施例では、仮想ネットワーク・インタフェース・カード及び仮想ネットワーク・インタフェース・カードのドライバは別々に記載されており、仮想ネットワーク・インタフェース・カードは、物理ネットワーク・インタフェース・カード20により提供され、仮想ネットワーク・インタフェース・カードに対応するドライバは、相応して仮想マシンにロードされ、前述の実施例の仮想PCIeデバイスは、比較的広い概念であり、仮想PCIeデバイスと、仮想PCIeデバイスに対応するドライバとを含む。当業者は、本発明のこの実施例の対策で、前述の違いは単に説明上の違いであることを理解すべきである。)
各仮想マシンの仮想ネットワーク・インタフェース・カードがパケットを受信した後に、物理ネットワーク・インタフェース・カード20は、ホストデバイスと物理ネットワーク・インタフェース・カードとの間のインタフェースを使用することにより、ダイレクト・メモリ・アクセス(DMA)方式で各仮想マシンのメモリアドレスに従って各仮想マシンのメモリにおいてデータを読み書きする。すなわち、物理ネットワーク・インタフェース・カード20は、ホストデバイス10から各仮想マシンのメモリのデータを直接読み取る。或いは、ホストデバイス10に対して各仮想マシンのメモリにデータを直接書き込む。例えば、仮想ネットワーク・インタフェース・カード1が仮想マシンVM1により送信又は受信されたパケットを受信した場合、物理ネットワーク・インタフェース・カード20は、ホストデバイス10と物理ネットワーク・インタフェース・カード20との間のインタフェースを使用することにより、DMA方式で仮想マシンVM1の保存されたメモリアドレスに従ってVM1のメモリにおいてデータを読み取る。或いは、DMAD方式で仮想ネットワーク・インタフェース・カード1により受信されたパケットデータを仮想マシンVM1のメモリに書き込む。
任意選択の実現方式として、図4に示す仮想マシン(VM1又はVM2等)は、仮想マシン上で実行するオペレーティングシステム、仮想マシン上で実行するアプリケーション、仮想マシン上で実行する仮想ネットワーク・インタフェース・カード・ドライバ等を含んでもよい。
図4において、ホストデバイス10は、中央処理装置(CPU)、メモリ、ハードディスク等を含むデバイスであり、仮想マシンは、ホストデバイス10から仮想化により生成された仮想デバイスである。図4に示すように、ホストデバイス10は、仮想マシンとネットワーク・インタフェース・カードとホストデバイスとの間の接続関係を明確に示すために、仮想マシン(VM1又はVM2)等から分離されており、ホストデバイス10が仮想マシンから分離されることを示すものではない。
本発明のこの実施例の仮想マシンシステムは、仮想マシンマイグレーション管理ユニットと、ホストデバイスと、物理ネットワーク・インタフェース・カードとを含む。例えば、図4において、仮想マシンシステムは、仮想マシンマイグレーション管理ユニット30と、ホストデバイス10と、物理ネットワーク・インタフェース・カード20とを含む。
図14において、仮想マシンマイグレーション管理ユニット30は、ホストデバイス上で実行し、ソフトウェアモジュールとして実現される。しかし、本発明のこの実施例の他の具体的な実現では、仮想マシンマイグレーション管理ユニット30はまた、管理機能を有するサーバにより直接実現されてもよい。当業者は、他の実現方式を使用してもよく、例えば、仮想マシンマイグレーション管理ユニットを実現するための仮想マシンを使用してもよく、本発明のこの実施例では限定されない。
例えば、図5に示すように、仮想マシンシステムの仮想マシンが他の仮想マシンにマイグレーションされる場合(図5に示す方法が実行する仮想マシンシステムでは、複数の仮想マシンマイグレーション管理ユニットが存在してもよく、マイグレーションされるべきソース仮想マシンの仮想マシンマイグレーション管理ユニット及び宛先仮想マシンの仮想マシンマイグレーション管理ユニットは異なるユニットであり、他の実施例では、ソース仮想マシン及び宛先仮想マシンは同じ仮想マシンマイグレーション管理ユニットを有してもよい)、第1の仮想マシン(ソース仮想マシン)が第2の仮想マシン(宛先仮想マシン)にマイグレーションされる必要がある場合、物理ネットワーク・インタフェース・カードは、ダイレクト・メモリ・アクセス方式で各仮想マシンのメモリにおいてデータを読み書きし、第1の仮想マシン又は第1の仮想マシンのマネージャは、第1の仮想マシンのメモリにおいてデータを読み書きする必要はない。従って、第1の仮想マシンのライブマイグレーションが開始された場合、第1の仮想マシンがマイグレーションされた後に変更された第1の仮想マシンのメモリデータのメモリは、メモリ反復方式で第2の仮想マシンにマイグレーションできない。この課題を解決するために、本発明の実施例は、仮想マシンのマイグレーション方法を提供する。図5に示すように、以下が含まれる。
ステップ501:第1の仮想マシンがマイグレーションされる場合、第1の仮想マシンのマイグレーション管理ユニットは、第1の仮想マシンのマイグレーションを開始するために、第1の仮想マシンのマイグレーションを開始するメッセージを第1の仮想マシンに配信する。
第1の仮想マシンのマイグレーション管理ユニットが第1の仮想マシンのマイグレーションを開始するメッセージを第1の仮想マシンに配信することは、以下の方式で実現されてもよい。
方式1:bufferを送受信する1つのメッセージが、第1の仮想マシンの第1の仮想ネットワーク・インタフェース・カードのドライバと、第1の物理ネットワーク・インタフェース・カードのドライバとに別々に構成され、第1の仮想マシンのマイグレーション管理ユニットは、パケットメッセージを第1の物理ネットワーク・インタフェース・カードのドライバのbufferに送信する。パケットメッセージは、ソースアドレスと宛先アドレスとを有し、宛先アドレスは、第1の仮想ネットワーク・インタフェース・カードのアドレスである。第1の物理ネットワーク・インタフェース・カードのドライバは、DMAを用いて送信bufferからデータを読み取り、パケットメッセージの宛先アドレスに従ってDMAを用いて第1の仮想ネットワーク・インタフェース・カードのドライバのbufferにメッセージを書き込み、中断を使用することにより、第1の仮想ネットワーク・インタフェース・カードのドライバに対してメッセージ処理を実行するように命令する。
方式2:レジスタを送受信する1つのメッセージが、第1の物理ネットワーク・インタフェース・カードのドライバと、第1の仮想マシンの第1の仮想ネットワーク・インタフェース・カードのドライバとに別々に構成され、メッセージを送信する場合、第1の仮想マシンのマイグレーション管理ユニットは、パケットメッセージを第1の物理ネットワーク・インタフェース・カードのドライバのメッセージレジスタに書き込む。パケットメッセージは、ソースアドレスと宛先アドレスとを有し、宛先アドレスは、第1の仮想ネットワーク・インタフェース・カードである。メッセージが書き込まれたことを検出した後に、第1の物理ネットワーク・インタフェース・カードのドライバは、メッセージの宛先アドレスに従って第1の仮想ネットワーク・インタフェース・カードのドライバのメッセージレジスタにメッセージをマイグレーションし、中断を使用することにより、第1の仮想ネットワーク・インタフェース・カードのドライバに対してメッセージ処理を実行するように命令する。
ステップ502:第1の仮想マシンは、第1の仮想マシンのマイグレーションを開始するための受信したメッセージに従って、ダーティ書き込みフラグを設定する。
本発明のこの実施例では、ダーティ書き込みフラグを設定することは、複数の方式で実現されてもよい。例えば、ダーティ書き込みフラグは、第1の仮想ネットワーク・インタフェース・カードのドライバにおける確保された空間内で設定される、或いは、第1の仮想ネットワーク・インタフェース・カードに対応するチップにおいて設定される、或いは、独立変数を使用することにより設定される等である。本発明のこの実施例では、第1の仮想マシンがダーティ書き込みフラグを取得することができる限り、ダーティ書き込みフラグの記憶位置は限定されない。ダーティ書き込みフラグはまた、ダーティ書き込み識別子と呼ばれることもあり、第1の仮想マシンがデータのこの部分を知ることができるように、第1の仮想マシンのメモリのいくつかのデータにおいて第1の仮想マシンにより再処理が実行される必要があることを示すために使用される。再処理は、第1の仮想マシンがメモリからデータのこの部分を読み取り、データのこの部分をメモリに再び書き込む動作でもよい。
ステップ503:第1の物理ネットワーク・インタフェース・カードが新たなデータを第1の仮想マシンのメモリに書き込むことが決定された場合、第1の仮想マシンは、ダーティ書き込みフラグに従って第1の仮想マシンのメモリから新たなデータを読み取り、ダーティ書き込みフラグに従って新たなデータを第1の仮想マシンのメモリに再び書き込む。
本発明のこの実施例では、例えば、第1の物理ネットワーク・インタフェース・カードにより送信された受信した中断通知を使用することにより、第1の物理ネットワーク・インタフェース・カードが新たなデータを第1の仮想マシンのメモリに書き込むことを第1の仮想マシンが決定するための複数の方式が存在してもよい。
本発明のこの実施例では、第1の仮想マシンが第1の仮想マシンのメモリから新たなデータを読み取り、新たなデータを第1の仮想マシンのメモリに再び書き込むことは、第1の仮想マシンにより、ページによって第1の仮想マシンのメモリで少なくとも1つの読み書き動作を実行すること、或いは、第1の仮想マシンにより、ブロックによって第1の仮想マシンのメモリで少なくとも1つの読み書き動作を実行することを含む。少なくとも1つの読み書き動作は、1bitのデータで少なくとも1つの読み書きの動作を実行することでもよい。
ステップ504:第1の仮想マシンのマイグレーション管理ユニット又は第2の仮想マシンのマイグレーション管理ユニットは、第1の仮想マシンのライブマイグレーションのメモリ反復コピーを開始する。
すなわち、第1の仮想マシンのメモリのデータは、第2の仮想マシンにマイグレーションされる。
ステップ505:第1の仮想マシンのメモリ反復コピーの最後の繰り返しが完了したときに、第1の仮想マシンのマイグレーション管理ユニット又は第2の仮想マシンのマイグレーション管理ユニットは、第1の仮想マシンをシャットダウンするメッセージを送信する。第1の仮想マシンをシャットダウンするメッセージは、第1の仮想マシン又は第1の物理ネットワーク・インタフェース・カードに送信される。第1の仮想マシンをシャットダウンするメッセージが第1の仮想マシンに送信される場合、ステップ506Aが実行される。第1の仮想マシンをシャットダウンするメッセージが第1の物理ネットワーク・インタフェース・カードに送信される場合、ステップ506Bが実行される。
本発明のこの実施例では、第1の仮想マシンをシャットダウンするメッセージは、第1の仮想マシンのメモリ反復コピーの最後の繰り返しが完了した後にのみトリガーされる。他の実施例では、第1の仮想マシンをシャットダウンするこのメッセージがトリガーされる場合はまた、柔軟に決定されてもよい。
第1の仮想マシンをシャットダウンするメッセージは新たなメッセージであり、第1の仮想ネットワーク・インタフェース・カードに対して動作の停止又はパケットの送受信の停止を命令するために主に使用され、第1の仮想マシンのマイグレーションが他の段階に入ることを示す。これは、当業者により様々な方式で実現されてもよく、メッセージ名は単なる例である。
ステップ506A:第1の仮想マシンは、第1の仮想マシンをシャットダウンするメッセージに従って、第1の仮想ネットワーク・インタフェース・カードの状態情報をソース仮想マシンのメモリに書き込む。
第1の仮想ネットワーク・インタフェース・カードの状態情報は、復旧カウンタ、レジスタ、バッファポインタ、コンテキスト、DMA状態等を含み、これらに限定されない。状態情報は、第1の物理ネットワーク・インタフェース・カードに記憶される。
本発明のこの実施例では、第1の仮想ネットワーク・インタフェース・カードは第1の物理ネットワーク・インタフェース・カード上で実行し、第1の仮想ネットワーク・インタフェース・カードの状態情報もまた第1の物理ネットワーク・インタフェース・カードの記憶媒体に保存されるため、第1の仮想マシンの成功したマイグレーションを実現するために、第1の仮想ネットワーク・インタフェース・カードの状態情報も、第2の仮想ネットワーク・インタフェース・カードが動作を再開するために、第2の仮想マシンの側にマイグレーションされる必要がある。従って、第1の仮想マシンの成功したマイグレーションを最終的に確保するため、本発明のこの実施例では、第1の仮想マシンをシャットダウンするメッセージが送信された後に、第1の仮想ネットワーク・インタフェース・カードの状態情報は、状態情報が第1の仮想マシンの他のメモリデータと共に第2の仮想マシンの側にマイグレーションされ得るために、第1の仮想マシンのメモリに書き込まれる。
ステップ506B:第1の物理ネットワーク・インタフェース・カードは、第1又は第2の仮想マシンのマイグレーション管理ユニットにより送信された第1の仮想マシンをシャットダウンするための受信したメッセージに従って、第1の仮想ネットワーク・インタフェース・カードの状態情報を第1の仮想マシンのメモリに書き込み、状態情報読み取り通知を第1の仮想マシンに送信する。第1の仮想マシンは、状態情報読み取り通知に従って、第1の仮想マシンのメモリから第1の仮想ネットワーク・インタフェース・カードの状態情報を読み取り、第1の仮想ネットワーク・インタフェース・カードの状態情報をソース仮想マシンのメモリに再び書き込む。
ステップ507:第2の仮想マシンのマイグレーション管理ユニットは、第2の仮想ネットワーク・インタフェース・カードの状態の復旧をトリガーし、第2の仮想マシンを開始する。
第2の仮想ネットワーク・インタフェース・カードが復旧される状態は、第1の仮想マシンがマイグレーションされる前の第1の仮想ネットワーク・インタフェース・カードの状態である。第1の仮想ネットワーク・インタフェース・カードの状態は第1の仮想マシンがデータの送受信を停止した後に第1の仮想マシンのメモリに保存され、第2の仮想マシンのメモリにマイグレーションされるため、第2の仮想マシンに対応する第2の仮想ネットワーク・インタフェース・カードの状態の復旧が実現され得る。
任意選択の実現方式として、本発明の実施例では、第1の仮想マシンのマイグレーション管理ユニットが第2の仮想ネットワーク・インタフェース・カードの状態の復旧をトリガーすることは、第1の仮想マシンのマイグレーション管理ユニットにより、第1の仮想マシンのメモリ内の第1の仮想ネットワーク・インタフェース・カードの状態情報である位置を第2の仮想マシンに送信し、第2の仮想マシンにより、状態情報により占有されているメモリアドレスに従って第2の仮想マシンのメモリから状態情報を取得することを含んでもよく、第1の仮想マシンのマイグレーション管理ユニットにより、第2の仮想ネットワーク・インタフェース・カードのドライバが第2の仮想マシンのメモリ内の第1の仮想ネットワーク・インタフェース・カードの状態情報を取得するために、第1の仮想マシンのメモリ内の第1の仮想ネットワーク・インタフェース・カードの状態情報の位置を第2の仮想ネットワーク・インタフェース・カードのドライバに送信し、状態の復旧を実行し、第2の仮想ネットワーク・インタフェース・カードのドライバは、第1の仮想マシンと第2の仮想ネットワーク・インタフェース・カードとの間のインタフェースであることを含んでもよく、第2の仮想マシンのマイグレーション管理ユニットにより、第2の仮想マシンに対して、第2の物理ネットワーク・インタフェース・カードのチップに第1の仮想ネットワーク・インタフェース・カードの状態情報を復旧するように命令し、第2の仮想ネットワーク・インタフェース・カードのドライバに対してチップから第1の仮想ネットワーク・インタフェース・カードの状態を取得し、第2の仮想ネットワーク・インタフェース・カードの状態を復旧するように命令することを含んでもよい。
任意選択の実現方式として、第2の仮想マシンは、第2の仮想ネットワーク・インタフェース・カードのドライバの状態が復旧された後に開始されてもよく、第2の仮想マシンがまず開始されてもよく、次に、第2の仮想ネットワーク・インタフェース・カードの状態が復旧される。本発明のこの実施例では順序は限定されない。
本発明のこの実施例では、仮想マシンのマイグレーション処理中に仮想マシンのメモリデータの効率的なマイグレーションを実現するため、ダーティ書き込みフラグは、マイグレーションされる必要がある仮想マシンのメモリデータで少なくとも1つの読み書き動作を実行するために使用される。第1の仮想マシンのマイグレーションが完了した後、ダーティ書き込みフラグは取り消されてもよい。例えば、第1の仮想マシンは、ステップ505が完了した後にダーティ書き込みフラグをクリアしてもよい。或いは、ステップ507において、第1の仮想マシンが第2の仮想マシンにマイグレーションされた場合、第2の仮想マシンは、ダーティ書き込みフラグをクリアする。
前述の仮想マシンのマイグレーション方法では、仮想マシンのメモリデータの処理が、本発明のこの実施例における主要な実現であり、本発明のこの実施例はまた、対応する仮想マシンのメモリデータ処理方法も提供する。
本発明のこの実施例の第1の仮想マシンのメモリ処理方法は以下の通りである。
本発明のこの実施例の仮想マシンのメモリ処理方法は、仮想マシンシステムに適用され、仮想マシンシステムは、仮想マシンマイグレーション管理ユニットと、ホストデバイスと、物理ネットワーク・インタフェース・カードとを含む。少なくとも1つの仮想マシンは、ホストデバイス上で実行し、少なくとも1つの仮想ネットワーク・インタフェース・カードは、物理ネットワーク・インタフェース・カード上で実行し、各仮想マシンは、少なくとも1つの仮想ネットワーク・インタフェース・カードに対応し、物理ネットワーク・インタフェース・カードは、ダイレクト・メモリ・アクセス方式で各仮想マシンのメモリにおいてデータを読み書きする。
仮想マシンシステムのいずれかの仮想マシンがマイグレーションされる場合、この方法は以下を含む。
S1:マイグレーションされるべきソース仮想マシンは、仮想マシンマイグレーション管理ユニットにより送信された仮想マシンのマイグレーションを開始するメッセージを受信する。
S2:ソース仮想マシンは、仮想マシンのマイグレーションを開始するメッセージに従ってダーティ書き込みフラグを設定する。
S3:物理ネットワーク・インタフェース・カードが新たなデータをソース仮想マシンのメモリに書き込むことが決定された場合、ソース仮想マシンは、ダーティ書き込みフラグに従ってソース仮想マシンのメモリから新たなデータを読み取り、ダーティ書き込みフラグに従って新たなデータをソース仮想マシンのメモリに再び書き込む。
前述の方法では、ダーティ書き込みフラグを設定することにより、物理ネットワーク・インタフェース・カードが新たなデータをソース仮想マシンのメモリに書き込むことが決定された場合、新たなデータは、ソース仮想マシンのメモリから読み取られ、新たなデータは、ソース仮想マシンのメモリに再び書き込まれる。これにより、マイグレーションされるべきソース仮想マシンの仮想マシンマイグレーション管理ユニットは、データの変更を識別し、変更されたデータを宛先仮想マシンにマイグレーションすることができる。これにより、仮想マシンマイグレーション管理ユニットがデータを認識することができないため、仮想マシンのマイグレーション処理中にデータがマイグレーションできないという従来技術の課題を解決する。
具体的な実現処理において、本発明のこの実施例の仮想マシンのメモリ処理方法は以下を更に含んでもよい。
S4A:ソース仮想マシンは、仮想マシンマイグレーション管理ユニットにより送信されたソース仮想マシンをシャットダウンするメッセージを受信する。
ソース仮想マシンは、ソース仮想マシンをシャットダウンするメッセージに従って、ソース仮想マシンに対応する仮想ネットワーク・インタフェース・カードの状態情報をソース仮想マシンのメモリに書き込む。
或いは、本発明のこの実施例の仮想マシンのメモリ処理方法は、以下を更に含んでもよい。
S4B:ソース仮想マシンは、物理ネットワーク・インタフェース・カードにより送信された状態情報読み取り通知を受信する。物理ネットワーク・インタフェース・カードは、仮想マシンマイグレーション管理ユニットにより送信されたソース仮想マシンをシャットダウンするための受信したメッセージに従って、ソース仮想マシンに対応する仮想ネットワーク・インタフェース・カードの状態情報をソース仮想マシンのメモリに書き込んだ後に、状態情報読み取り通知を送信する。
ソース仮想マシンは、状態情報読み取り通知に従って、ソース仮想マシンのメモリからソース仮想マシンの仮想ネットワーク・インタフェース・カードの状態情報を読み取り、状態情報をソース仮想マシンのメモリに再び書き込む。
前述の方法のS4A又はステップS4Bは、仮想マシンマイグレーション管理ユニットが、仮想マシンをシャットダウンするメッセージを仮想マシンに通知するか、物理ネットワーク・インタフェース・カードに通知するかに依存する。2つの実現方式の双方は、ソース仮想マシンの仮想ネットワーク・インタフェース・カードの状態情報がソース仮想マシンのメモリに書き込まれることを可能にし得る。これにより、ソース仮想マシンの仮想ネットワーク・インタフェース・カードの状態情報もまた、ソース仮想マシンと共に宛先仮想マシンにマイグレーションされることが可能になり、これにより、仮想マシンの仮想ネットワーク・インタフェース・カードの状態のマイグレーションを実現する。
S5:ソース仮想マシンは、ダーティ書き込みフラグをクリアする。
任意選択で、前述のステップS3において、ソース仮想マシンがダーティ書き込みフラグに従ってソース仮想マシンのメモリから新たなデータを読み取り、ダーティ書き込みフラグに従って新たなデータをソース仮想マシンのメモリに再び書き込むことは、ソース仮想マシンにより、新たなデータにより占有されているソース仮想マシンのメモリ内のメモリページを決定し、ダーティ書き込みフラグに従ってメモリページのデータを読み取り、ダーティ書き込みフラグに従って読み取られたデータをメモリページに再び書き込むことを含んでもよい。
任意選択で、前述のステップS1において、ソース仮想マシンが仮想マシンマイグレーション管理ユニットにより送信された仮想マシンのマイグレーションを開始するメッセージを受信することは、ソース仮想マシンの仮想ネットワーク・インタフェース・カードのドライバにより、ソース仮想マシンの仮想ネットワーク・インタフェース・カードのバッファ又はレジスタを読み取り、仮想マシンマイグレーション管理ユニットによりバッファ又はレジスタに直接書き込まれた仮想マシンのマイグレーションを開始するメッセージを取得することを含んでもよい。
本発明のこの実施例の第2の仮想マシンのメモリ処理方法は以下の通りである。
第2の仮想マシンのメモリデータ処理方法は、仮想マシンシステムに適用され、仮想マシンシステムは、仮想マシンマイグレーション管理ユニットと、ホストデバイスと、物理ネットワーク・インタフェース・カードとを含む。少なくとも1つの仮想マシンは、ホストデバイス上で実行し、少なくとも1つの仮想ネットワーク・インタフェース・カードは、物理ネットワーク・インタフェース・カード上で実行し、各仮想マシンは、少なくとも1つの仮想ネットワーク・インタフェース・カードに対応し、物理ネットワーク・インタフェース・カードは、ダイレクト・メモリ・アクセス方式で各仮想マシンのメモリにおいてデータを読み書きする。
仮想マシンシステムのいずれかの仮想マシンがマイグレーションされる場合、この方法は以下を含む。
S1:マイグレーションされるべきソース仮想マシンは、仮想マシンマイグレーション管理ユニットにより送信されたソース仮想マシンをシャットダウンするメッセージを受信する。
S2:ソース仮想マシンは、ソース仮想マシンをシャットダウンするメッセージに従って、ソース仮想マシンに対応する仮想ネットワーク・インタフェース・カードの状態情報をソース仮想マシンのメモリに書き込む。
前述の方法を使用することにより、ソース仮想マシンの仮想ネットワーク・インタフェース・カードの状態情報は、ソース仮想マシンのメモリに書き込まれることが可能になるい。これにより、ソース仮想マシンの仮想ネットワーク・インタフェース・カードの状態情報もまた、ソース仮想マシンと共に宛先仮想マシンにマイグレーションされることが可能になり、これにより、仮想マシンの仮想ネットワーク・インタフェース・カードの状態のマイグレーションを実現する。
具体的な実現処理において、ソース仮想マシンをシャットダウンするメッセージを受信する前に、本発明のこの実施例の第2の仮想マシンのメモリ処理方法は、以下を更に含んでもよい。
S0:ソース仮想マシンは、仮想マシンマイグレーション管理ユニットにより送信された仮想マシンのマイグレーションを開始するメッセージを受信する。
ソース仮想マシンは、仮想マシンのマイグレーションを開始するメッセージに従ってダーティ書き込みフラグを設定する。
物理ネットワーク・インタフェース・カードが新たなデータをソース仮想マシンのメモリに書き込むことが決定された場合、ソース仮想マシンは、ダーティ書き込みフラグに従ってソース仮想マシンのメモリから新たなデータを読み取り、ダーティ書き込みフラグに従って新たなデータをソース仮想マシンのメモリに再び書き込む。
前述のダーティ書き込みフラグを設定することにより、物理ネットワーク・インタフェース・カードが新たなデータをソース仮想マシンのメモリに書き込むことが決定された場合、新たなデータは、ソース仮想マシンのメモリから読み取られ、新たなデータは、ソース仮想マシンのメモリに再び書き込まれる。これにより、マイグレーションされるべきソース仮想マシンの仮想マシンマイグレーション管理ユニットは、データの変更を識別し、変更されたデータを宛先仮想マシンにマイグレーションすることができる。これにより、仮想マシンマイグレーション管理ユニットがデータを認識することができないため、仮想マシンのマイグレーション処理中にデータがマイグレーションできないという従来技術の課題を解決する。
S3:ソース仮想マシンは、ダーティ書き込みフラグをクリアする。
S0又はS3の具体的な実現方式及び実現順序は柔軟的でもよく、本発明の前述の他の実施例に従って当業者により柔軟に決定されてもよい。
任意選択の実現方式として、前述のステップS0において、ソース仮想マシンがダーティ書き込みフラグに従ってソース仮想マシンのメモリから新たなデータを読み取り、ダーティ書き込みフラグに従って新たなデータをソース仮想マシンのメモリに再び書き込むことは、ソース仮想マシンにより、新たなデータにより占有されているソース仮想マシンのメモリ内のメモリページを決定し、ダーティ書き込みフラグに従ってメモリページのデータを読み取り、ダーティ書き込みフラグに従って読み取られたデータをメモリページに再び書き込むことを含む。
本発明のこの実施例の第3の仮想マシンのメモリ処理方法は以下の通りである。本発明のこの実施例の第3の仮想マシンのメモリ処理方法は、仮想マシンシステムに適用され、仮想マシンシステムは、仮想マシンマイグレーション管理ユニットと、ホストデバイスと、物理ネットワーク・インタフェース・カードとを含む。少なくとも1つの仮想マシンは、ホストデバイス上で実行し、少なくとも1つの仮想ネットワーク・インタフェース・カードは、物理ネットワーク・インタフェース・カード上で実行し、各仮想マシンは、少なくとも1つの仮想ネットワーク・インタフェース・カードに対応し、物理ネットワーク・インタフェース・カードは、ダイレクト・メモリ・アクセス方式で各仮想マシンのメモリにおいてデータを読み書きする。
仮想マシンシステムのいずれかの仮想マシンがマイグレーションされる場合、この方法は以下を含む。
S1:マイグレーションされるべきソース仮想マシンは、物理ネットワーク・インタフェース・カードにより送信された状態情報読み取り通知を受信する。物理ネットワーク・インタフェース・カードは、仮想マシンマイグレーション管理ユニットにより送信されたソース仮想マシンをシャットダウンするための受信したメッセージに従って、ソース仮想マシンに対応する仮想ネットワーク・インタフェース・カードの状態情報をソース仮想マシンのメモリに書き込んだ後に、状態情報読み取り通知を送信する。
S2:ソース仮想マシンは、状態情報読み取り通知に従って、ソース仮想マシンのメモリからソース仮想マシンの仮想ネットワーク・インタフェース・カードの状態情報を読み取り、状態情報をソース仮想マシンのメモリに再び書き込む。
前述の方法を使用することにより、ソース仮想マシンの仮想ネットワーク・インタフェース・カードの状態情報は、ソース仮想マシンのメモリに書き込まれることが可能になるい。これにより、ソース仮想マシンの仮想ネットワーク・インタフェース・カードの状態情報もまた、ソース仮想マシンと共に宛先仮想マシンにマイグレーションされることが可能になり、これにより、仮想マシンの仮想ネットワーク・インタフェース・カードの状態のマイグレーションを実現する。
具体的な実現処理において、本発明のこの実施例の第3の仮想マシンのメモリ処理方法は以下を更に含んでもよい。
S0:ソース仮想マシンは、仮想マシンマイグレーション管理ユニットにより送信された仮想マシンのマイグレーションを開始するメッセージを受信する。ソース仮想マシンは、仮想マシンのマイグレーションを開始するメッセージに従ってダーティ書き込みフラグを設定する。物理ネットワーク・インタフェース・カードが新たなデータをソース仮想マシンのメモリに書き込むことが決定された場合、ソース仮想マシンは、ダーティ書き込みフラグに従ってソース仮想マシンのメモリから新たなデータを読み取り、ダーティ書き込みフラグに従って新たなデータをソース仮想マシンのメモリに再び書き込む。
S3:ソース仮想マシンは、ダーティ書き込みフラグをクリアする。
S0又はS3の具体的な実現方式及び実現順序は柔軟的でもよく、本発明の前述の他の実施例に従って当業者により柔軟に決定されてもよい。
任意選択の実現方式として、前述のステップS0において、ソース仮想マシンがダーティ書き込みフラグに従ってソース仮想マシンのメモリから新たなデータを読み取り、ダーティ書き込みフラグに従って新たなデータをソース仮想マシンのメモリに再び書き込むことは、ソース仮想マシンにより、新たなデータにより占有されているソース仮想マシンのメモリ内のメモリページを決定し、ダーティ書き込みフラグに従ってメモリページのデータを読み取り、ダーティ書き込みフラグに従って読み取られたデータをメモリページに再び書き込むことを含む。
前述の仮想マシンのメモリデータ処理方法に基づいて、本発明の実施例は、2つの仮想マシンのマイグレーション方法を更に提供する。本発明のこの実施例の仮想マシンのマイグレーション方法は、仮想マシンシステムに適用され、仮想マシンシステムは、仮想マシンマイグレーション管理ユニットと、ホストデバイスと、物理ネットワーク・インタフェース・カードとを含む。少なくとも1つの仮想マシンは、ホストデバイス上で実行し、少なくとも1つの仮想ネットワーク・インタフェース・カードは、物理ネットワーク・インタフェース・カード上で実行し、各仮想マシンは、少なくとも1つの仮想ネットワーク・インタフェース・カードに対応し、物理ネットワーク・インタフェース・カードは、ダイレクト・メモリ・アクセス方式で各仮想マシンのメモリにおいてデータを読み書きする。
この方法は以下を含む。
S1:マイグレーションされるべきソース仮想マシンは、仮想マシンマイグレーション管理ユニットにより送信された仮想マシンのマイグレーションを開始するメッセージを受信する。
S2:ソース仮想マシンは、仮想マシンのマイグレーションを開始するメッセージに従ってダーティ書き込みフラグを設定する。
S3:物理ネットワーク・インタフェース・カードが新たなデータをソース仮想マシンのメモリに書き込むことが決定された場合、ソース仮想マシンは、ダーティ書き込みフラグに従ってソース仮想マシンのメモリから新たなデータを読み取り、ダーティ書き込みフラグに従って新たなデータをソース仮想マシンのメモリに再び書き込む。
S4:ソース仮想マシンは、仮想マシンマイグレーション管理ユニットにより送信されたソース仮想マシンをシャットダウンするメッセージを受信する。
S5:ソース仮想マシンは、ソース仮想マシンをシャットダウンするメッセージに従って、ソース仮想マシンに対応する仮想ネットワーク・インタフェース・カードの状態情報をソース仮想マシンのメモリに書き込む。
S6:仮想マシンマイグレーション管理ユニットは、メモリ反復動作をトリガーする。メモリ反復動作は、ソース仮想マシンのメモリのデータを宛先仮想マシンにマイグレーションするために使用される。
前述の方法において、ダーティ書き込みフラグを設定することにより、物理ネットワーク・インタフェース・カードが新たなデータをソース仮想マシンのメモリに書き込むことが決定された場合、新たなデータは、ソース仮想マシンのメモリから読み取られ、新たなデータは、ソース仮想マシンのメモリに再び書き込まれる。これにより、マイグレーションされるべきソース仮想マシンの仮想マシンマイグレーション管理ユニットは、データの変更を識別し、変更されたデータを宛先仮想マシンにマイグレーションすることができる。これにより、仮想マシンマイグレーション管理ユニットがデータを認識することができないため、仮想マシンのマイグレーション処理中にデータがマイグレーションできないという従来技術の課題を解決する。更に、ソース仮想マシンは、ソース仮想マシンをシャットダウンするメッセージに従って、ソース仮想マシンに対応する仮想ネットワーク・インタフェース・カードの状態情報をソース仮想マシンのメモリに書き込む。このことは、ソース仮想マシンの仮想ネットワーク・インタフェース・カードの状態情報がソース仮想マシンのメモリに書き込まれることを可能にし得る。これにより、ソース仮想マシンの仮想ネットワーク・インタフェース・カードの状態情報もまた、ソース仮想マシンと共に宛先仮想マシンにマイグレーションされることが可能になり、これにより、仮想マシンの仮想ネットワーク・インタフェース・カードの状態のマイグレーションを実現する。
具体的な実現処理において、本発明のこの実施例の方法は以下を更に含んでもよい。
S7:仮想マシンマイグレーション管理ユニットが状態情報により占有されているメモリアドレスを宛先仮想マシンに通知するため、ソース仮想マシンは、状態情報により占有されているメモリアドレスを仮想マシンマイグレーション管理ユニットに通知する。
S8:宛先仮想マシンは、状態情報により占有されているメモリアドレスに従って、マイグレーションされたメモリデータから状態情報を取得する。
宛先仮想マシンは、状態情報に従って、宛先仮想マシンに対応する仮想ネットワーク・インタフェース・カードを復旧する。
本発明のこの実施例の他の仮想マシンのマイグレーション方法は、仮想マシンシステムに適用され、仮想マシンシステムは、仮想マシンマイグレーション管理ユニットと、物理デバイスと、ネットワーク・インタフェース・カードとを含む。少なくとも1つの仮想マシンは、物理デバイス上で実行し、少なくとも1つの仮想ネットワーク・インタフェース・カードは、ネットワーク・インタフェース・カード上で実行し、各仮想マシンは、1つの仮想ネットワーク・インタフェース・カードに対応し、各仮想マシンは、対応する仮想ネットワーク・インタフェース・カードを使用することによりパケットを受信及び送信する。
この方法は以下を含む。
S1:マイグレーションされるべきソース仮想マシンは、仮想マシンマイグレーション管理ユニットにより送信された仮想マシンのマイグレーションを開始するメッセージを受信する。
S2:ソース仮想マシンは、仮想マシンのマイグレーションを開始するメッセージに従ってダーティ書き込みフラグを設定する。
S3:新たなデータがソース仮想マシンのメモリに書き込まれることが決定された場合、ソース仮想マシンは、ダーティ書き込みフラグに従ってソース仮想マシンのメモリから新たなデータを読み取り、ダーティ書き込みフラグに従って新たなデータをソース仮想マシンのメモリに再び書き込む。
S4:ソース仮想マシンは、ネットワーク・インタフェース・カードにより送信された状態情報読み取り通知を受信する。状態情報読み取り通知は、ネットワーク・インタフェース・カードがソース仮想マシンに対応する仮想ネットワーク・インタフェース・カードの状態情報をソース仮想マシンのメモリに書き込んだ後に送信される。ネットワーク・インタフェース・カードは、仮想マシンマイグレーション管理ユニットにより送信されたソース仮想マシンをシャットダウンするメッセージを受信した後に、状態情報をソース仮想マシンのメモリに書き込むステップをトリガーする。
S5:ソース仮想マシンは、状態情報読み取り通知に従って、ソース仮想マシンのメモリからソース仮想マシンの仮想ネットワーク・インタフェース・カードの状態情報を読み取り、状態情報をソース仮想マシンのメモリに再び書き込む。
S6:仮想マシンマイグレーション管理ユニットは、メモリ反復動作をトリガーする。メモリ反復動作は、ソース仮想マシンのメモリのデータを宛先仮想マシンにマイグレーションするために使用される。
前述の方法において、ダーティ書き込みフラグを設定することにより、物理ネットワーク・インタフェース・カードが新たなデータをソース仮想マシンのメモリに書き込むことが決定された場合、新たなデータは、ソース仮想マシンのメモリから読み取られ、新たなデータは、ソース仮想マシンのメモリに再び書き込まれる。これにより、マイグレーションされるべきソース仮想マシンの仮想マシンマイグレーション管理ユニットは、データの変更を識別し、変更されたデータを宛先仮想マシンにマイグレーションすることができる。これにより、仮想マシンマイグレーション管理ユニットがデータを認識することができないため、仮想マシンのマイグレーション処理中にデータがマイグレーションできないという従来技術の課題を解決する。更に、ソース仮想マシンは、ソース仮想マシンをシャットダウンするメッセージに従って、ソース仮想マシンに対応する仮想ネットワーク・インタフェース・カードの状態情報をソース仮想マシンのメモリに書き込む。このことは、ソース仮想マシンの仮想ネットワーク・インタフェース・カードの状態情報がソース仮想マシンのメモリに書き込まれることを可能にし得る。これにより、ソース仮想マシンの仮想ネットワーク・インタフェース・カードの状態情報もまた、ソース仮想マシンと共に宛先仮想マシンにマイグレーションされることが可能になり、これにより、仮想マシンの仮想ネットワーク・インタフェース・カードの状態のマイグレーションを実現する。
具体的な実現処理において、この方法は以下を更に含んでもよい。
ステップS7:仮想マシンマイグレーション管理ユニットが状態情報により占有されているメモリページについての情報を宛先仮想マシンに通知するため、ソース仮想マシンは、状態情報により占有されているメモリページについての情報を仮想マシンマイグレーション管理ユニットに通知する。
ステップS8:宛先仮想マシンは、状態情報により占有されているメモリページについての情報に従って、マイグレーションされたメモリデータから状態情報を取得する。宛先仮想マシンは、状態情報に従って、宛先仮想マシンに対応する仮想ネットワーク・インタフェース・カードを復旧する。
前述の仮想マシンのメモリデータ処理方法及び仮想マシンのマイグレーション方法に基づいて、図4に提供される仮想マシンシステムの構成図を参照して、本発明のこの実施例は、以下のように5つの仮想マシンシステムを更に提供する。
第1の仮想マシンシステムは以下のものである。
仮想マシンシステムは、仮想マシンマイグレーション管理ユニットと、ホストデバイスと、物理ネットワーク・インタフェース・カードとを含む。少なくとも1つの仮想マシンは、ホストデバイス上で実行し、少なくとも1つの仮想ネットワーク・インタフェース・カードは、物理ネットワーク・インタフェース・カード上で実行し、各仮想マシンは、少なくとも1つの仮想ネットワーク・インタフェース・カードに対応し、物理ネットワーク・インタフェース・カードは、ダイレクト・メモリ・アクセス方式で各仮想マシンのメモリにおいてデータを読み書きする。
仮想マシンマイグレーション管理ユニットは、仮想マシンのマイグレーションを開始するメッセージをソース仮想マシンに送信するように構成される。ソース仮想マシンは、マイグレーションされるべき仮想マシンである。
ソース仮想マシンは、仮想マシンマイグレーション管理ユニットにより送信された仮想マシンのマイグレーションを開始するメッセージを受信し、仮想マシンのマイグレーションを開始するメッセージに従ってダーティ書き込みフラグを設定し、物理ネットワーク・インタフェース・カードが新たなデータをソース仮想マシンのメモリに書き込むことが決定された場合、ダーティ書き込みフラグに従ってソース仮想マシンのメモリから新たなデータを読み取り、ダーティ書き込みフラグに従って新たなデータをソース仮想マシンのメモリに再び書き込むように構成される。
更に、仮想マシンマイグレーション管理ユニットは、ソース仮想マシンをシャットダウンするメッセージをソース仮想マシンに送信するように更に構成される。ソース仮想マシンは、仮想マシンマイグレーション管理ユニットにより送信されたソース仮想マシンをシャットダウンするメッセージを受信し、ソース仮想マシンをシャットダウンするメッセージに従って、ソース仮想マシンに対応する仮想ネットワーク・インタフェース・カードの状態情報をソース仮想マシンのメモリに書き込むように更に構成される。
更に、仮想マシンマイグレーション管理ユニットは、ソース仮想マシンをシャットダウンするメッセージを物理ネットワーク・インタフェース・カードに送信するように更に構成される。
物理ネットワーク・インタフェース・カードは、ソース仮想マシンをシャットダウンするための受信したメッセージに従って、ソース仮想マシンに対応する仮想ネットワーク・インタフェース・カードの状態情報をソース仮想マシンのメモリに書き込み、状態情報読み取り通知をソース仮想マシンに送信するように構成される。
ソース仮想マシンは、物理ネットワーク・インタフェース・カードにより送信された状態情報読み取り通知を受信し、状態情報読み取り通知に従って、ソース仮想マシンのメモリからソース仮想マシンの仮想ネットワーク・インタフェース・カードの状態情報を読み取り、状態情報をソース仮想マシンのメモリに再び書き込むように更に構成される。
好ましくは、ソース仮想マシンは、新たなデータにより占有されているソース仮想マシンのメモリ内のメモリページを決定し、ダーティ書き込みフラグに従ってメモリページのデータを読み取り、ダーティ書き込みフラグに従って読み取られたデータをメモリページに再び書き込むように具体的に構成される。
更に、ソース仮想マシンは、ダーティ書き込みフラグをクリアするように更に構成される。
第2の仮想マシンシステムは以下のものである。
仮想マシンシステムは、仮想マシンマイグレーション管理ユニットと、ホストデバイスと、物理ネットワーク・インタフェース・カードとを含む。少なくとも1つの仮想マシンは、ホストデバイス上で実行し、少なくとも1つの仮想ネットワーク・インタフェース・カードは、物理ネットワーク・インタフェース・カード上で実行し、各仮想マシンは、少なくとも1つの仮想ネットワーク・インタフェース・カードに対応し、物理ネットワーク・インタフェース・カードは、ダイレクト・メモリ・アクセス方式で各仮想マシンのメモリにおいてデータを読み書きする。
仮想マシンマイグレーション管理ユニットは、ソース仮想マシンをシャットダウンするメッセージをソース仮想マシンに送信するように構成される。ソース仮想マシンは、マイグレーションされるべき仮想マシンである。ソース仮想マシンは、仮想マシンマイグレーション管理ユニットにより送信されたソース仮想マシンをシャットダウンするメッセージを受信し、ソース仮想マシンをシャットダウンするメッセージに従って、ソース仮想マシンに対応する仮想ネットワーク・インタフェース・カードの状態情報をソース仮想マシンのメモリに書き込むように構成される。
更に、ソース仮想マシンは、仮想マシンマイグレーション管理ユニットにより送信された仮想マシンのマイグレーションを開始するメッセージを受信するように更に構成され、仮想マシンのマイグレーションを開始するメッセージに従ってダーティ書き込みフラグを設定し、物理ネットワーク・インタフェース・カードが新たなデータをソース仮想マシンのメモリに書き込むことが決定された場合、ダーティ書き込みフラグに従ってソース仮想マシンのメモリから新たなデータを読み取り、ダーティ書き込みフラグに従って新たなデータをソース仮想マシンのメモリに再び書き込むように構成される。
更に、ソース仮想マシンは、ダーティ書き込みフラグをクリアするように更に構成される。
第3の仮想マシンシステムは以下のものである。
仮想マシンシステムは、仮想マシンマイグレーション管理ユニットと、ホストデバイスと、物理ネットワーク・インタフェース・カードとを含む。少なくとも1つの仮想マシンは、ホストデバイス上で実行し、少なくとも1つの仮想ネットワーク・インタフェース・カードは、物理ネットワーク・インタフェース・カード上で実行し、各仮想マシンは、少なくとも1つの仮想ネットワーク・インタフェース・カードに対応し、物理ネットワーク・インタフェース・カードは、ダイレクト・メモリ・アクセス方式で各仮想マシンのメモリにおいてデータを読み書きする。
仮想マシンマイグレーション管理ユニットは、ソース仮想マシンをシャットダウンするメッセージを物理ネットワーク・インタフェース・カードに送信するように構成される。ソース仮想マシンは、マイグレーションされるべき仮想マシンである。物理ネットワーク・インタフェース・カードは、ソース仮想マシンをシャットダウンするための受信したメッセージに従って、ソース仮想マシンに対応する仮想ネットワーク・インタフェース・カードの状態情報をソース仮想マシンのメモリに書き込み、状態情報読み取り通知をソース仮想マシンに送信するように構成される。
ソース仮想マシンは、物理ネットワーク・インタフェース・カードにより送信された状態情報読み取り通知を受信し、状態情報読み取り通知に従ってソース仮想マシンのメモリからソース仮想マシンの仮想ネットワーク・インタフェース・カードの状態情報を読み取り、状態情報をソース仮想マシンのメモリに再び書き込むように構成される。
更に、ソース仮想マシンは、仮想マシンマイグレーション管理ユニットにより送信された仮想マシンのマイグレーションを開始するメッセージを受信し、仮想マシンのマイグレーションを開始するメッセージに従ってダーティ書き込みフラグを設定し、物理ネットワーク・インタフェース・カードが新たなデータをソース仮想マシンのメモリに書き込むことが決定された場合、ダーティ書き込みフラグに従ってソース仮想マシンのメモリから新たなデータを読み取り、ダーティ書き込みフラグに従って新たなデータをソース仮想マシンのメモリに再び書き込むように更に構成される。
更に、ソース仮想マシンは、ダーティ書き込みフラグをクリアするように更に構成される。
第4の仮想マシンシステムは以下のものである。
仮想マシンシステムは、仮想マシンマイグレーション管理ユニットと、ホストデバイスと、物理ネットワーク・インタフェース・カードとを含む。少なくとも1つの仮想マシンは、ホストデバイス上で実行し、少なくとも1つの仮想ネットワーク・インタフェース・カードは、物理ネットワーク・インタフェース・カード上で実行し、各仮想マシンは、少なくとも1つの仮想ネットワーク・インタフェース・カードに対応し、物理ネットワーク・インタフェース・カードは、ダイレクト・メモリ・アクセス方式で各仮想マシンのメモリにおいてデータを読み書きする。
仮想マシンマイグレーション管理ユニットは、仮想マシンのマイグレーションを開始するメッセージをソース仮想マシンに送信するように構成される。
ソース仮想マシンは、仮想マシンマイグレーション管理ユニットにより送信された仮想マシンのマイグレーションを開始するメッセージを受信し、仮想マシンのマイグレーションを開始するメッセージに従ってダーティ書き込みフラグを設定し、物理ネットワーク・インタフェース・カードが新たなデータをソース仮想マシンのメモリに書き込むことが決定された場合、ダーティ書き込みフラグに従ってソース仮想マシンのメモリから新たなデータを読み取り、ダーティ書き込みフラグに従って新たなデータをソース仮想マシンのメモリに再び書き込み、仮想マシンマイグレーション管理ユニットにより送信されたソース仮想マシンをシャットダウンするメッセージを受信し、ソース仮想マシンをシャットダウンするメッセージに従って、ソース仮想マシンに対応する仮想ネットワーク・インタフェース・カードの状態情報をソース仮想マシンのメモリに書き込むように構成される。
仮想マシンマイグレーション管理ユニットは、メモリ反復動作をトリガーするように更に構成される。メモリ反復動作は、ソース仮想マシンのメモリのデータを宛先仮想マシンにマイグレーションするために使用される。
第5の仮想マシンシステムは以下のものである。
仮想マシンシステムは、仮想マシンマイグレーション管理ユニットと、物理デバイスと、ネットワーク・インタフェース・カードとを含む。少なくとも1つの仮想マシンは、物理デバイス上で実行し、少なくとも1つの仮想ネットワーク・インタフェース・カードは、ネットワーク・インタフェース・カード上で実行し、各仮想マシンは、1つの仮想ネットワーク・インタフェース・カードに対応し、各仮想マシンは、対応する仮想ネットワーク・インタフェース・カードを使用することによりパケットを受信及び送信する。仮想マシンマイグレーション管理ユニットは、仮想マシンのマイグレーションを開始するメッセージをソース仮想マシンに送信するように構成される。
ソース仮想マシンは、仮想マシンマイグレーション管理ユニットにより送信された仮想マシンのマイグレーションを開始するメッセージを受信し、仮想マシンのマイグレーションを開始するメッセージに従ってダーティ書き込みフラグを設定し、物理ネットワーク・インタフェース・カードが新たなデータをソース仮想マシンのメモリに書き込むことが決定された場合、ダーティ書き込みフラグに従ってソース仮想マシンのメモリから新たなデータを読み取り、ダーティ書き込みフラグに従って新たなデータをソース仮想マシンのメモリに再び書き込むように構成される。
仮想マシンマイグレーション管理ユニットは、ソース仮想マシンをシャットダウンするメッセージを物理ネットワーク・インタフェース・カードに送信するように更に構成される。
物理ネットワーク・インタフェース・カードは、ソース仮想マシンをシャットダウンするための受信したメッセージに従って、ソース仮想マシンに対応する仮想ネットワーク・インタフェース・カードの状態情報をソース仮想マシンのメモリに書き込み、状態情報読み取り通知をソース仮想マシンに送信するように構成される。
ソース仮想マシンは、物理ネットワーク・インタフェース・カードにより送信された状態情報読み取り通知を受信し、状態情報読み取り通知に従って、ソース仮想マシンのメモリからソース仮想マシンの仮想ネットワーク・インタフェース・カードの状態情報を読み取り、状態情報をソース仮想マシンのメモリに再び書き込むように更に構成される。
仮想マシンマイグレーション管理ユニットは、メモリ反復動作をトリガーするように更に構成される。メモリ反復動作は、ソース仮想マシンのメモリのデータを宛先仮想マシンにマイグレーションするために使用される。
前述の第4又は第5の仮想マシンシステムにおいて、ソース仮想マシンは、仮想マシンマイグレーション管理ユニットが状態情報により占有されているメモリアドレスを宛先仮想マシンに通知するため、状態情報により占有されているメモリアドレスを仮想マシンマイグレーション管理ユニットに通知するように更に構成される。
更に、宛先仮想マシンは、状態情報により占有されているメモリアドレスに従って、マイグレーションされたメモリデータから状態情報を取得し、状態情報に従って、宛先仮想マシンに対応する仮想ネットワーク・インタフェース・カードを復旧する。
当業者は、この明細書に開示された実施例に記載の例と組み合わせて、ユニット及びアルゴリズムのステップは、電子ハードウェア、コンピュータソフトウェア又はこれらの組み合わせにより実現されてもよいことを認識し得る。ハードウェアとソフトウェアとの間の交換可能性を明確に説明するために、前述のものは、一般的に機能に従ってそれぞれの例の構成及びステップを説明した。機能がハードウェアにより実行されるかソフトウェアにより実行されるかは、技術的対策の特定の用途及び設計上の制約条件に依存する。当業者は、特定の用途毎に記載の機能を実現するために異なる方法を使用してもよいが、この実現は本発明の範囲を超えるものと考えられるべきではない。
容易且つ簡潔な説明の目的で、前述のシステム、装置及びユニットの詳細な動作処理について、前述の方法の実施例の対応する処理に参照が行われることが、当業者に明確に分かる。詳細はここでは再び説明しない。
この出願で提供される複数の実施例では、開示のシステム、装置及び方法は、他の方式で実施されてもよいことが分かる。例えば、記載された装置の実施例は単なる例である。例えば、ユニット分割は単なる論理的な機能分割であり、実際の実現では他の分割でもよい。例えば、複数のユニット又はコンポーネントは他のシステムに結合又は統合されてもよく、いくつかの機能は無視されてもよく実行されなくてもよい。更に、表示又は説明した相互結合若しくは直接結合又は通信接続は、いくつかのインタフェースを通じて実現されてもよい。装置又はユニットの間の間接結合又は通信接続は、電気、機械又は他の形式で実現されてもよい。
別々の部分として記載したユニットは、物理的に別々でもよく別々でなくてもよく、ユニットとして表示された部分は物理的ユニットでもよく物理的ユニットでなくてもよく、1つの位置に存在してもよく、複数のネットワークユニットに分散されてもよい。ユニットの一部又は全部は、実施例の対策の目的を実現するために、実際の要件に従って選択されてもよい。
更に、本発明の実施例の機能ユニットは、1つの処理ユニットに統合されてもよく、ユニットのそれぞれが物理的に単独で存在してもよく、2つ以上のユニットが1つのユニットに統合されてもよい。統合されたユニットは、ハードウェアの形式で実現されてもよく、ソフトウェア機能ユニットの形式で実現されてもよい。
統合されたユニットがソフトウェア機能ユニットの形式で実現されて独立したプロダクトとして販売又は使用される場合、統合されたユニットはコンピュータ読み取り可能記憶媒体に記憶されてもよい。このような理解に基づいて、本発明の技術的対策は、基本的に、或いは従来技術に寄与する部分は、或いは技術的対策の全部又は一部は、ソフトウェアプロダクトの形式で実現されてもよい。ソフトウェアプロダクトは、記憶媒体に記憶され、コンピュータデバイス(パーソナルコンピュータ、サーバ又はネットワークデバイスでもよい)に対して本発明の実施例に記載の方法のステップの全部又は一部を実行するように命令する複数の命令を含む。前述の記憶媒体は、USBフラッシュドライブ、取り外し可能ハードディスク、読み取り専用メモリ(ROM、Read-Only Memory)、ランダムアクセスメモリ(RAM、Random Access Memory)、磁気ディスク又は光ディスクのような、プログラムコードを格納することができるいずれかの媒体を含む。
前述の説明は、本発明の単に特定の実施例に過ぎず、本発明の保護範囲を限定することを意図するものではない。本発明に開示された技術的範囲内で当業者により容易に理解できる如何なる変更又は置換も、本発明の保護範囲内に入るものとする。従って、本発明の保護範囲は、特許請求の範囲の保護範囲に従うものとする。
任意選択で、仮想PCIEデバイスにより、第1のメッセージに従ってダーティ書き込みフラグを設定するステップは、仮想PCIEデバイスのドライバにより、第1のメッセージに従ってダーティ書き込みフラグを設定するステップ、又は仮想PCIEデバイスにより、ダーティ書き込みフラグとして独立変数を設定するステップを含む。
任意選択で、この方法は、シングルルート入出力仮想化(SR-IOV)技術に適用可能な仮想マシンのライブマイグレーション処理に適用され、データの受信の停止前に受信した全てのデータが位置するページがダーティに書き込まれた後に、仮想PCIEデバイスにより、マイグレーションが完了したことを示す受信した第2のメッセージに従ってダーティ書き込みフラグを取り消す。
任意選択で、第1の仮想PCIEデバイス及び物理PCIEデバイスが確保されたデータ空間を使用することによりメッセージ伝送を実施することは、仮想マシンのネットワーク・インタフェース・カードにより、第1の仮想PCIEデバイスと物理PCIEデバイスとの間でメッセージ通信を実施するために、ダイレクト・メモリ・アクセス(DMA)方式で確保されたデータ空間内でメッセージを伝送すること、又は仮想マシンのネットワーク・インタフェース・カードのメッセージチャネル確立ユニットにより、通信のために使用されるデータ空間を確保し、第1の仮想PCIEデバイスと物理PCIEデバイスとで確保されたデータ空間を別々に共有することを含む。
任意選択で、受信ユニットは、仮想マシンマイグレーション管理ユニットにより送信された第1の仮想マシンをシャットダウンするメッセージを受信するように更に構成され、処理ユニットは、第1の仮想マシンをシャットダウンするメッセージに従って、第1の仮想マシンに対応する仮想ネットワーク・インタフェース・カードの状態情報を第1の仮想マシンのメモリに書き込むように更に構成される。
任意選択で、受信ユニットは、物理ネットワーク・インタフェース・カードにより送信された状態情報読み取り通知を受信するように更に構成され、物理ネットワーク・インタフェース・カードは、仮想マシンマイグレーション管理ユニットにより送信された第1の仮想マシンをシャットダウンするための受信したメッセージに従って、第1の仮想マシンに対応する仮想ネットワーク・インタフェース・カードの状態情報を第1の仮想マシンのメモリに書き込んだ後に、状態情報読み取り通知を送信し、処理ユニットは、状態情報読み取り通知に従って、第1の仮想マシンのメモリから第1の仮想マシンの仮想ネットワーク・インタフェース・カードの状態情報を読み取り、状態情報を第1の仮想マシンのメモリに再び書き込むように更に構成される。
本発明の実施例は、第5の仮想マシンのマイグレーションシステムを更に提供し、仮想マシンシステムは、仮想マシンマイグレーション管理ユニットと、物理デバイスと、ネットワーク・インタフェース・カードとを含み、少なくとも1つの仮想マシンは、物理デバイス上で実行し、少なくとも1つの仮想ネットワーク・インタフェース・カードは、ネットワーク・インタフェース・カード上で実行し、各仮想マシンは、1つの仮想ネットワーク・インタフェース・カードに対応し、各仮想マシンは、対応する仮想ネットワーク・インタフェース・カードを使用することによりパケットを受信及び送信し、仮想マシンシステムの第1の仮想マシンは、仮想マシンマイグレーション管理ユニットにより送信された仮想マシンのマイグレーションを開始するメッセージを受信し、ネットワーク・インタフェース・カードにより送信された状態情報読み取り通知を受信するように構成された受信ユニットであり、状態情報読み取り通知は、仮想マシンマイグレーション管理ユニットにより送信された第1の仮想マシンをシャットダウンするメッセージを受信した後に、物理ネットワーク・インタフェース・カードが状態情報を第1の仮想マシンのメモリに書き込んだ後に送信される受信ユニットと、仮想マシンのマイグレーションを開始するメッセージに従ってダーティ書き込みフラグを設定するように構成された設定ユニットと、新たなデータが第1の仮想マシンのメモリに書き込まれることが決定された場合、ダーティ書き込みフラグに従って第1の仮想マシンのメモリから新たなデータを読み取り、ダーティ書き込みフラグに従って新たなデータを第1の仮想マシンのメモリに再び書き込むように構成された処理ユニットであり、状態情報読み取り通知に従って、第1の仮想マシンのメモリから第1の仮想マシンの仮想ネットワーク・インタフェース・カードの状態情報を読み取り、状態情報を第1の仮想マシンのメモリに再び書き込むように更に構成された処理ユニットとを含み、相応して、仮想マシンマイグレーション管理ユニットは、メモリ反復動作をトリガーするように更に構成され、メモリ反復動作は、第1の仮想マシンのメモリのデータを第2の仮想マシンにマイグレーションするために使用され、第2の仮想マシンは、第1の仮想マシンがマイグレーションされる宛先仮想マシンである。
任意選択で、第2の仮想マシンは、状態情報により占有されているメモリページについての情報に従って、マイグレーションされたメモリデータから状態情報を取得し、第2の仮想マシンは、状態情報に従って、宛先仮想マシンに対応する仮想ネットワーク・インタフェース・カードを復旧する。
相応して、第1の仮想PCIEデバイス及び物理PCIEデバイスが確保されたデータ空間を使用することによりメッセージ伝送を実施することは、仮想マシンのネットワーク・インタフェース・カードにより、第1の仮想PCIEデバイスと物理PCIEデバイスとの間でメッセージ通信を実施するために、ダイレクト・メモリ・アクセス(DMA)方式で確保されたデータ空間内でメッセージを伝送すること、又は仮想マシンのネットワーク・インタフェース・カードのメッセージチャネル確立ユニットにより、通信のために使用されるデータ空間を確保し、仮想PCIEデバイスと物理PCIEデバイスとで確保されたデータ空間を別々に共有することを含む。
図4を参照すると、図は、本発明の実施例による仮想マシンシステムの概略構成図である。仮想マシンシステムは、ホストデバイス10と、物理ネットワーク・インタフェース・カード20と、仮想マシンマイグレーション管理ユニット30とを含む。ホストデバイス10及び物理ネットワーク・インタフェース・カード20は、インタフェースを使用することにより接続され、n個の仮想マシン(nは1以上である)は、ホストデバイス10上で実行し、n個の仮想ネットワーク・インタフェース・カードは、仮想化により、物理ネットワーク・インタフェース・カード20上に生成される。各仮想ネットワーク・インタフェース・カードは、1つの仮想マシンに対応し、仮想ネットワーク・インタフェース・カードに対応する仮想ネットワーク・インタフェース・カード・ドライバは、各仮想マシン上で実行する。各仮想マシンの仮想ネットワーク・インタフェース・カード・ドライバは、各仮想マシンのメモリアドレスを取得し、各仮想マシンに対応する仮想ネットワーク・インタフェース・カードを使用することにより、各仮想マシンのメモリアドレスを物理ネットワーク・インタフェース・カード20に通知するために使用される。物理ネットワーク・インタフェース・カード20は、各仮想マシンのメモリアドレスを保存する。例えば、仮想マシンVM1の仮想ネットワーク・インタフェース・カード・ドライバ1は、仮想ネットワーク・インタフェース・カード1に接続され、仮想マシンVM1の仮想ネットワーク・インタフェース・カード・ドライバは、仮想マシンVM1のメモリアドレスを取得し、仮想ネットワーク・インタフェース・カード1を使用することにより、仮想マシンVM1のメモリアドレスを物理ネットワーク・インタフェース・カード20に通知し、物理ネットワーク・インタフェース・カード20は、仮想マシンVM1のメモリアドレスを保存する。前述の物理ネットワーク・インタフェース・カード20の具体的な実現は、本発明の前述の実施例における物理PCIEデバイスでもよく、前述の仮想ネットワーク・インタフェース・カードは、本発明の前述の実施例における仮想PCIEデバイスに具体的に対応してもよい。(この実施例では、仮想ネットワーク・インタフェース・カード及び仮想ネットワーク・インタフェース・カードのドライバは別々に記載されており、仮想ネットワーク・インタフェース・カードは、物理ネットワーク・インタフェース・カード20により提供され、仮想ネットワーク・インタフェース・カードに対応するドライバは、相応して仮想マシンにロードされ、前述の実施例の仮想PCIEデバイスは、比較的広い概念であり、仮想PCIEデバイスと、仮想PCIEデバイスに対応するドライバとを含む。当業者は、本発明のこの実施例の対策で、前述の違いは単に説明上の違いであることを理解すべきである。)
各仮想マシンの仮想ネットワーク・インタフェース・カードがパケットを受信した後に、物理ネットワーク・インタフェース・カード20は、ホストデバイスと物理ネットワーク・インタフェース・カードとの間のインタフェースを使用することにより、ダイレクト・メモリ・アクセス(DMA)方式で各仮想マシンのメモリアドレスに従って各仮想マシンのメモリにおいてデータを読み書きする。すなわち、物理ネットワーク・インタフェース・カード20は、ホストデバイス10から各仮想マシンのメモリのデータを直接読み取る。或いは、ホストデバイス10にデータを書き込むことにより、各仮想マシンのメモリにデータを直接書き込む。例えば、仮想ネットワーク・インタフェース・カード1が仮想マシンVM1により送信又は受信されたパケットを受信した場合、物理ネットワーク・インタフェース・カード20は、ホストデバイス10と物理ネットワーク・インタフェース・カード20との間のインタフェースを使用することにより、DMA方式で仮想マシンVM1の保存されたメモリアドレスに従ってVM1のメモリにおいてデータを読み取る。或いは、DMA方式で仮想ネットワーク・インタフェース・カード1により受信されたパケットデータを仮想マシンVM1のメモリに書き込む。
において、仮想マシンマイグレーション管理ユニット30は、ホストデバイス上で実行し、ソフトウェアモジュールとして実現される。しかし、本発明のこの実施例の他の具体的な実現では、仮想マシンマイグレーション管理ユニット30はまた、管理機能を有するサーバにより直接実現されてもよい。当業者は、他の実現方式を使用してもよく、例えば、仮想マシンマイグレーション管理ユニットを実現するための仮想マシンを使用してもよく、本発明のこの実施例では限定されない。
例えば、図5に示すように、仮想マシンシステムの仮想マシンが他の仮想マシンにマイグレーションされる場合(図5に示す方法が実行する仮想マシンシステムでは、複数の仮想マシンマイグレーション管理ユニットが存在してもよく、マイグレーションされるべきソース仮想マシンの仮想マシンマイグレーション管理ユニット及び宛先仮想マシンの仮想マシンマイグレーション管理ユニットは異なるユニットであり、他の実施例では、ソース仮想マシン及び宛先仮想マシンは同じ仮想マシンマイグレーション管理ユニットを有してもよい)、第1の仮想マシン(ソース仮想マシン)が第2の仮想マシン(宛先仮想マシン)にマイグレーションされる必要がある場合、物理ネットワーク・インタフェース・カードは、ダイレクト・メモリ・アクセス方式で各仮想マシンのメモリにおいてデータを読み書きし、第1の仮想マシン又は第1の仮想マシンのマネージャは、第1の仮想マシンのメモリにおいてデータを読み書きする必要はない。従って、第1の仮想マシンのライブマイグレーションが開始された場合、第1の仮想マシンがマイグレーションされた後に変更された第1の仮想マシンのメモリデータのメモリは、メモリ反復方式で第2の仮想マシンにマイグレーションできない。この課題を解決するために、本発明の実施例は、仮想マシンのマイグレーション方法を提供する。図5に示すように、この方法は以下のステップを含む
ステップ506A:第1の仮想マシンは、第1の仮想マシンをシャットダウンするメッセージに従って、第1の仮想ネットワーク・インタフェース・カードの状態情報を第1の仮想マシンのメモリに書き込む。
任意選択の実現方式として、本発明の実施例では、第2の仮想マシンのマイグレーション管理ユニットが第2の仮想ネットワーク・インタフェース・カードの状態の復旧をトリガーすることは、第1の仮想マシンのマイグレーション管理ユニットにより、第1の仮想マシンのメモリ内の第1の仮想ネットワーク・インタフェース・カードの状態情報である位置を第2の仮想マシンに送信し、第2の仮想マシンにより、状態情報により占有されているメモリアドレスに従って第2の仮想マシンのメモリから状態情報を取得することを含んでもよく、第1の仮想マシンのマイグレーション管理ユニットにより、第2の仮想ネットワーク・インタフェース・カードのドライバが第2の仮想マシンのメモリ内の第1の仮想ネットワーク・インタフェース・カードの状態情報を取得するために、第1の仮想マシンのメモリ内の第1の仮想ネットワーク・インタフェース・カードの状態情報の位置を第2の仮想ネットワーク・インタフェース・カードのドライバに送信し、状態の復旧を実行し、第2の仮想ネットワーク・インタフェース・カードのドライバは、第1の仮想マシンと第2の仮想ネットワーク・インタフェース・カードとの間のインタフェースであることを含んでもよく、第2の仮想マシンのマイグレーション管理ユニットにより、第2の仮想マシンに対して、第2の物理ネットワーク・インタフェース・カードのチップに第1の仮想ネットワーク・インタフェース・カードの状態情報を復旧するように命令し、第2の仮想ネットワーク・インタフェース・カードのドライバに対してチップから第1の仮想ネットワーク・インタフェース・カードの状態を取得し、第2の仮想ネットワーク・インタフェース・カードの状態を復旧するように命令することを含んでもよい。
任意選択の実現方式として、第2の仮想マシンは、第2の仮想ネットワーク・インタフェース・カードの状態が復旧された後に開始されてもよく、第2の仮想マシンがまず開始されてもよく、次に、第2の仮想ネットワーク・インタフェース・カードの状態が復旧される。本発明のこの実施例では順序は限定されない。
ソース仮想マシンは、仮想マシンマイグレーション管理ユニットにより送信された仮想マシンのマイグレーションを開始するメッセージを受信し、仮想マシンのマイグレーションを開始するメッセージに従ってダーティ書き込みフラグを設定し、ネットワーク・インタフェース・カードが新たなデータをソース仮想マシンのメモリに書き込むことが決定された場合、ダーティ書き込みフラグに従ってソース仮想マシンのメモリから新たなデータを読み取り、ダーティ書き込みフラグに従って新たなデータをソース仮想マシンのメモリに再び書き込むように構成される。

Claims (51)

  1. 仮想マシンシステムに適用される仮想マシンのメモリデータ処理方法であり、前記仮想マシンシステムは、仮想マシンマイグレーション管理ユニットと、ホストデバイスと、物理ネットワーク・インタフェース・カードとを有し、少なくとも1つの仮想マシンは、前記ホストデバイス上で実行し、少なくとも1つの仮想ネットワーク・インタフェース・カードは、前記物理ネットワーク・インタフェース・カード上で実行し、各仮想マシンは、少なくとも1つの仮想ネットワーク・インタフェース・カードに対応し、前記物理ネットワーク・インタフェース・カードは、ダイレクト・メモリ・アクセス方式で各仮想マシンのメモリにおいてデータを読み書きする仮想マシンのメモリデータ処理方法であって、
    前記仮想マシンシステムのいずれかの仮想マシンがマイグレーションされる場合、前記方法は、
    マイグレーションされるべきソース仮想マシンにより、前記仮想マシンマイグレーション管理ユニットにより送信された仮想マシンのマイグレーションを開始するメッセージを受信するステップと、
    前記ソース仮想マシンにより、仮想マシンのマイグレーションを開始する前記メッセージに従ってダーティ書き込みフラグを設定するステップと、
    前記物理ネットワーク・インタフェース・カードが新たなデータを前記ソース仮想マシンのメモリに書き込むことが決定された場合、前記ソース仮想マシンにより、前記ダーティ書き込みフラグに従って前記ソース仮想マシンの前記メモリから前記新たなデータを読み取り、前記ダーティ書き込みフラグに従って前記新たなデータを前記ソース仮想マシンの前記メモリに再び書き込むステップと
    を有する方法。
  2. 前記ソース仮想マシンにより、前記仮想マシンマイグレーション管理ユニットにより送信された前記ソース仮想マシンをシャットダウンするメッセージを受信するステップと、
    前記ソース仮想マシンにより、前記ソース仮想マシンをシャットダウンする前記メッセージに従って、前記ソース仮想マシンに対応する仮想ネットワーク・インタフェース・カードの状態情報を前記ソース仮想マシンの前記メモリに書き込むステップと
    を更に有する、請求項1に記載の方法。
  3. 前記ソース仮想マシンにより、前記物理ネットワーク・インタフェース・カードにより送信された状態情報読み取り通知を受信するステップであり、前記物理ネットワーク・インタフェース・カードは、前記仮想マシンマイグレーション管理ユニットにより送信された前記ソース仮想マシンをシャットダウンするための受信したメッセージに従って、前記ソース仮想マシンに対応する仮想ネットワーク・インタフェース・カードの状態情報を前記ソース仮想マシンの前記メモリに書き込んだ後に、前記状態情報読み取り通知を送信するステップと、
    前記ソース仮想マシンにより、前記状態情報読み取り通知に従って、前記ソース仮想マシンの前記メモリから前記ソース仮想マシンの前記仮想ネットワーク・インタフェース・カードの前記状態情報を読み取り、前記状態情報を前記ソース仮想マシンの前記メモリに再び書き込むステップと
    を更に有する、請求項1に記載の方法。
  4. 前記ソース仮想マシンにより、前記ダーティ書き込みフラグに従って前記ソース仮想マシンの前記メモリから前記新たなデータを読み取り、前記ダーティ書き込みフラグに従って前記新たなデータを前記ソース仮想マシンの前記メモリに再び書き込むステップは、
    前記ソース仮想マシンにより、前記新たなデータにより占有されている前記ソース仮想マシンの前記メモリ内のメモリページを決定し、前記ダーティ書き込みフラグに従って前記メモリページのデータを読み取り、前記ダーティ書き込みフラグに従って前記読み取られたデータを前記メモリページに再び書き込むステップを有する、請求項1ないし3のうちいずれか1項に記載の方法。
  5. ソース仮想マシンにより、前記仮想マシンマイグレーション管理ユニットにより送信された仮想マシンのマイグレーションを開始するメッセージを受信するステップは、
    前記ソース仮想マシンの前記仮想ネットワーク・インタフェース・カードのドライバにより、前記ソース仮想マシンの前記仮想ネットワーク・インタフェース・カードのバッファ又はレジスタを読み取り、前記仮想マシンマイグレーション管理ユニットにより前記バッファ又は前記レジスタに直接書き込まれた仮想マシンのマイグレーションを開始する前記メッセージを取得するステップを有する、請求項1ないし4のうちいずれか1項に記載の方法。
  6. 前記ソース仮想マシンにより、前記ダーティ書き込みフラグをクリアするステップを更に有する、請求項1ないし5のうちいずれか1項に記載の方法。
  7. 仮想マシンシステムに適用される仮想マシンのメモリデータ処理方法であり、前記仮想マシンシステムは、仮想マシンマイグレーション管理ユニットと、ホストデバイスと、物理ネットワーク・インタフェース・カードとを有し、前記少なくとも1つの仮想マシンは、前記ホストデバイス上で実行し、少なくとも1つの仮想ネットワーク・インタフェース・カードは、前記物理ネットワーク・インタフェース・カード上で実行し、各仮想マシンは、少なくとも1つの仮想ネットワーク・インタフェース・カードに対応し、前記物理ネットワーク・インタフェース・カードは、ダイレクト・メモリ・アクセス方式で各仮想マシンのメモリにおいてデータを読み書きする仮想マシンのメモリデータ処理方法であって、
    前記仮想マシンシステムのいずれかの仮想マシンがマイグレーションされる場合、前記方法は、
    マイグレーションされるべきソース仮想マシンにより、前記仮想マシンマイグレーション管理ユニットにより送信された前記ソース仮想マシンをシャットダウンするメッセージを受信するステップと、
    前記ソース仮想マシンにより、前記ソース仮想マシンをシャットダウンする前記メッセージに従って、前記ソース仮想マシンに対応する仮想ネットワーク・インタフェース・カードの状態情報を前記ソース仮想マシンのメモリに書き込むステップと
    を有する方法。
  8. 前記ソース仮想マシンをシャットダウンするメッセージを受信する前に、前記方法は、
    前記ソース仮想マシンにより、前記仮想マシンマイグレーション管理ユニットにより送信された仮想マシンのマイグレーションを開始するメッセージを受信するステップと、
    前記ソース仮想マシンにより、仮想マシンのマイグレーションを開始する前記メッセージに従ってダーティ書き込みフラグを設定するステップと、
    前記物理ネットワーク・インタフェース・カードが新たなデータを前記ソース仮想マシンの前記メモリに書き込むことが決定された場合、前記ソース仮想マシンにより、前記ダーティ書き込みフラグに従って前記ソース仮想マシンの前記メモリから前記新たなデータを読み取り、前記ダーティ書き込みフラグに従って前記新たなデータを前記ソース仮想マシンの前記メモリに再び書き込むステップと
    を更に有する、請求項7に記載の方法。
  9. 前記ソース仮想マシンにより、前記ダーティ書き込みフラグに従って前記ソース仮想マシンの前記メモリから前記新たなデータを読み取り、前記ダーティ書き込みフラグに従って前記新たなデータを前記ソース仮想マシンの前記メモリに再び書き込むステップは、
    前記ソース仮想マシンにより、前記新たなデータにより占有されている前記ソース仮想マシンの前記メモリ内のメモリページを決定し、前記ダーティ書き込みフラグに従って前記メモリページのデータを読み取り、前記ダーティ書き込みフラグに従って前記読み取られたデータを前記メモリページに再び書き込むステップを有する、請求項8に記載の方法。
  10. 前記ソース仮想マシンにより、前記ダーティ書き込みフラグをクリアするステップを更に有する、請求項8又は9に記載の方法。
  11. 仮想マシンシステムに適用される仮想マシンのメモリデータ処理方法であり、前記仮想マシンシステムは、仮想マシンマイグレーション管理ユニットと、ホストデバイスと、物理ネットワーク・インタフェース・カードとを有し、少なくとも1つの仮想マシンは、前記ホストデバイス上で実行し、少なくとも1つの仮想ネットワーク・インタフェース・カードは、前記物理ネットワーク・インタフェース・カード上で実行し、各仮想マシンは、少なくとも1つの仮想ネットワーク・インタフェース・カードに対応し、前記物理ネットワーク・インタフェース・カードは、ダイレクト・メモリ・アクセス方式で各仮想マシンのメモリにおいてデータを読み書きする仮想マシンのメモリデータ処理方法であって、
    前記仮想マシンシステムのいずれかの仮想マシンがマイグレーションされる場合、前記方法は、
    マイグレーションされるべきソース仮想マシンにより、前記物理ネットワーク・インタフェース・カードにより送信された状態情報読み取り通知を受信するステップであり、前記物理ネットワーク・インタフェース・カードは、前記仮想マシンマイグレーション管理ユニットにより送信された前記ソース仮想マシンをシャットダウンするための受信したメッセージに従って、前記ソース仮想マシンに対応する仮想ネットワーク・インタフェース・カードの状態情報を前記ソース仮想マシンのメモリに書き込んだ後に、前記状態情報読み取り通知を送信するステップと、
    前記ソース仮想マシンにより、前記状態情報読み取り通知に従って、前記ソース仮想マシンの前記メモリから前記ソース仮想マシンの前記仮想ネットワーク・インタフェース・カードの前記状態情報を読み取り、前記状態情報を前記ソース仮想マシンの前記メモリに再び書き込むステップと
    を有する方法。
  12. 前記状態情報読み取り通知を受信する前に、前記方法は、
    前記ソース仮想マシンにより、前記仮想マシンマイグレーション管理ユニットにより送信された仮想マシンのマイグレーションを開始するメッセージを受信するステップと、
    前記ソース仮想マシンにより、仮想マシンのマイグレーションを開始する前記メッセージに従ってダーティ書き込みフラグを設定するステップと、
    前記物理ネットワーク・インタフェース・カードが新たなデータを前記ソース仮想マシンの前記メモリに書き込むことが決定された場合、前記ソース仮想マシンにより、前記ダーティ書き込みフラグに従って前記ソース仮想マシンの前記メモリから前記新たなデータを読み取り、前記ダーティ書き込みフラグに従って前記新たなデータを前記ソース仮想マシンの前記メモリに再び書き込むステップと
    を更に有する、請求項11に記載の方法。
  13. 前記ソース仮想マシンにより、前記ダーティ書き込みフラグに従って前記ソース仮想マシンの前記メモリから前記新たなデータを読み取り、前記ダーティ書き込みフラグに従って前記新たなデータを前記ソース仮想マシンの前記メモリに再び書き込むステップは、
    前記ソース仮想マシンにより、前記新たなデータにより占有されている前記ソース仮想マシンの前記メモリ内のメモリページを決定し、前記ダーティ書き込みフラグに従って前記メモリページのデータを読み取り、前記ダーティ書き込みフラグに従って前記読み取られたデータを前記メモリページに再び書き込むステップを有する、請求項11に記載の方法。
  14. 前記ソース仮想マシンにより、前記ダーティ書き込みフラグをクリアするステップを更に有する、請求項12又は13に記載の方法。
  15. 仮想マシンシステムに適用される仮想マシンのマイグレーション方法であり、前記仮想マシンシステムは、仮想マシンマイグレーション管理ユニットと、ホストデバイスと、物理ネットワーク・インタフェース・カードとを有し、少なくとも1つの仮想マシンは、前記ホストデバイス上で実行し、少なくとも1つの仮想ネットワーク・インタフェース・カードは、前記物理ネットワーク・インタフェース・カード上で実行し、各仮想マシンは、少なくとも1つの仮想ネットワーク・インタフェース・カードに対応し、前記物理ネットワーク・インタフェース・カードは、ダイレクト・メモリ・アクセス方式で各仮想マシンのメモリにおいてデータを読み書きする仮想マシンのマイグレーション方法であって、
    マイグレーションされるべきソース仮想マシンにより、前記仮想マシンマイグレーション管理ユニットにより送信された仮想マシンのマイグレーションを開始するメッセージを受信するステップと、
    前記ソース仮想マシンにより、仮想マシンのマイグレーションを開始する前記メッセージに従ってダーティ書き込みフラグを設定するステップと、
    前記物理ネットワーク・インタフェース・カードが新たなデータを前記ソース仮想マシンのメモリに書き込むことが決定された場合、前記ソース仮想マシンにより、前記ダーティ書き込みフラグに従って前記ソース仮想マシンの前記メモリから前記新たなデータを読み取り、前記ダーティ書き込みフラグに従って前記新たなデータを前記ソース仮想マシンの前記メモリに再び書き込むステップと、
    前記ソース仮想マシンにより、前記仮想マシンマイグレーション管理ユニットにより送信された前記ソース仮想マシンをシャットダウンするメッセージを受信するステップと、
    前記ソース仮想マシンにより、前記ソース仮想マシンをシャットダウンする前記メッセージに従って、前記ソース仮想マシンに対応する仮想ネットワーク・インタフェース・カードの状態情報を前記ソース仮想マシンの前記メモリに書き込むステップと、
    前記仮想マシンマイグレーション管理ユニットにより、メモリ反復動作をトリガーするステップであり、前記メモリ反復動作は、前記ソース仮想マシンの前記メモリのデータを宛先仮想マシンにマイグレーションするために使用されるステップと
    を有する方法。
  16. 前記ソース仮想マシンにより、前記ダーティ書き込みフラグに従って前記ソース仮想マシンの前記メモリから前記新たなデータを読み取り、前記ダーティ書き込みフラグに従って前記新たなデータを前記ソース仮想マシンの前記メモリに再び書き込むステップは、
    前記ソース仮想マシンにより、前記新たなデータにより占有されている前記ソース仮想マシンの前記メモリ内のメモリページを決定し、前記ダーティ書き込みフラグに従って前記新たなデータにより占有されている前記メモリページのデータを読み取り、前記ダーティ書き込みフラグに従って前記読み取られたデータを前記新たなデータにより占有されている前記メモリページに再び書き込むステップを有する、請求項15に記載の方法。
  17. 前記仮想マシンマイグレーション管理ユニットが前記状態情報により占有されているメモリアドレスを前記宛先仮想マシンに通知するため、前記ソース仮想マシンにより、前記状態情報により占有されているメモリアドレスを前記仮想マシンマイグレーション管理ユニットに通知するステップを更に有する、請求項15又は16に記載の方法。
  18. 前記宛先仮想マシンにより、前記状態情報により占有されている前記メモリアドレスに従って、マイグレーションされたメモリデータから前記状態情報を取得するステップと、
    前記宛先仮想マシンにより、前記状態情報に従って、前記宛先仮想マシンに対応する仮想ネットワーク・インタフェース・カードを復旧するステップと
    を更に有する、請求項17に記載の方法。
  19. 仮想マシンシステムに適用される仮想マシンのマイグレーション方法であり、前記仮想マシンシステムは、仮想マシンマイグレーション管理ユニットと、物理デバイスと、ネットワーク・インタフェース・カードとを有し、少なくとも1つの仮想マシンは、前記物理デバイス上で実行し、少なくとも1つの仮想ネットワーク・インタフェース・カードは、前記ネットワーク・インタフェース・カード上で実行し、各仮想マシンは、1つの仮想ネットワーク・インタフェース・カードに対応し、各仮想マシンは、対応する仮想ネットワーク・インタフェース・カードを使用することによりパケットを受信及び送信する仮想マシンのマイグレーション方法であって、
    マイグレーションされるべきソース仮想マシンにより、前記仮想マシンマイグレーション管理ユニットにより送信された仮想マシンのマイグレーションを開始するメッセージを受信するステップと、
    前記ソース仮想マシンにより、仮想マシンのマイグレーションを開始する前記メッセージに従ってダーティ書き込みフラグを設定するステップと、
    新たなデータが前記ソース仮想マシンのメモリに書き込まれることが決定された場合、前記ソース仮想マシンにより、前記ダーティ書き込みフラグに従って前記ソース仮想マシンの前記メモリから前記新たなデータを読み取り、前記ダーティ書き込みフラグに従って前記新たなデータを前記ソース仮想マシンの前記メモリに再び書き込むステップと、
    前記ソース仮想マシンにより、前記ネットワーク・インタフェース・カードにより送信された状態情報読み取り通知を受信するステップであり、前記状態情報読み取り通知は、前記ネットワーク・インタフェース・カードが前記ソース仮想マシンに対応する仮想ネットワーク・インタフェース・カードの状態情報を前記ソース仮想マシンの前記メモリに書き込んだ後に送信され、前記ネットワーク・インタフェース・カードは、前記仮想マシンマイグレーション管理ユニットにより送信された前記ソース仮想マシンをシャットダウンするメッセージを受信した後に、前記状態情報を前記ソース仮想マシンの前記メモリに書き込むステップをトリガーするステップと、
    前記ソース仮想マシンにより、前記状態情報読み取り通知に従って、前記ソース仮想マシンの前記メモリから前記ソース仮想マシンの前記仮想ネットワーク・インタフェース・カードの前記状態情報を読み取り、前記状態情報を前記ソース仮想マシンの前記メモリに再び書き込むステップと、
    前記仮想マシンマイグレーション管理ユニットにより、メモリ反復動作をトリガーするステップであり、前記メモリ反復動作は、前記ソース仮想マシンの前記メモリのデータを宛先仮想マシンにマイグレーションするために使用されるステップと
    を有する方法。
  20. 前記ソース仮想マシンにより、前記ダーティ書き込みフラグに従って前記ソース仮想マシンの前記メモリから前記新たなデータを読み取り、前記ダーティ書き込みフラグに従って前記新たなデータを前記ソース仮想マシンの前記メモリに再び書き込むステップは、
    前記ソース仮想マシンにより、前記新たなデータにより占有されている前記ソース仮想マシンの前記メモリ内のメモリページを決定し、前記ダーティ書き込みフラグに従って前記新たなデータにより占有されている前記メモリページのデータを読み取り、前記ダーティ書き込みフラグに従って前記読み取られたデータを前記新たなデータにより占有されている前記メモリページに再び書き込むステップを有する、請求項19に記載の方法。
  21. 前記仮想マシンマイグレーション管理ユニットが前記状態情報により占有されているメモリページについての情報を前記宛先仮想マシンに通知するため、前記ソース仮想マシンにより、前記状態情報により占有されているメモリページについての情報を前記仮想マシンマイグレーション管理ユニットに通知するステップを更に有する、請求項19又は20に記載の方法。
  22. 前記宛先仮想マシンにより、前記状態情報により占有されている前記メモリページについての前記情報に従って、マイグレーションされたメモリデータから前記状態情報を取得するステップと、
    前記宛先仮想マシンにより、前記状態情報に従って、前記宛先仮想マシンに対応する仮想ネットワーク・インタフェース・カードを復旧するステップと
    を更に有する、請求項21に記載の方法。
  23. 仮想マシンマイグレーション管理ユニットと、ホストデバイスと、物理ネットワーク・インタフェース・カードとを有する仮想マシンシステムであり、少なくとも1つの仮想マシンは、前記ホストデバイス上で実行し、少なくとも1つの仮想ネットワーク・インタフェース・カードは、前記物理ネットワーク・インタフェース・カード上で実行し、各仮想マシンは、少なくとも1つの仮想ネットワーク・インタフェース・カードに対応し、前記物理ネットワーク・インタフェース・カードは、ダイレクト・メモリ・アクセス方式で各仮想マシンのメモリにおいてデータを読み書きする仮想マシンシステムであって、
    前記仮想マシンマイグレーション管理ユニットは、仮想マシンのマイグレーションを開始するメッセージをソース仮想マシンに送信するように構成され、前記ソース仮想マシンは、マイグレーションされるべき仮想マシンであり、
    前記ソース仮想マシンは、前記仮想マシンマイグレーション管理ユニットにより送信された仮想マシンのマイグレーションを開始するメッセージを受信し、仮想マシンのマイグレーションを開始する前記メッセージに従ってダーティ書き込みフラグを設定し、前記物理ネットワーク・インタフェース・カードが新たなデータを前記ソース仮想マシンのメモリに書き込むことが決定された場合、前記ダーティ書き込みフラグに従って前記ソース仮想マシンの前記メモリから前記新たなデータを読み取り、前記ダーティ書き込みフラグに従って前記新たなデータを前記ソース仮想マシンの前記メモリに再び書き込むように構成される仮想マシンシステム。
  24. 前記仮想マシンマイグレーション管理ユニットは、前記ソース仮想マシンをシャットダウンするメッセージを前記ソース仮想マシンに送信するように更に構成され、
    前記ソース仮想マシンは、前記仮想マシンマイグレーション管理ユニットにより送信された前記ソース仮想マシンをシャットダウンする前記メッセージを受信し、前記ソース仮想マシンをシャットダウンする前記メッセージに従って、前記ソース仮想マシンに対応する仮想ネットワーク・インタフェース・カードの状態情報を前記ソース仮想マシンの前記メモリに書き込むように更に構成される、請求項23に記載の仮想マシンシステム。
  25. 前記仮想マシンマイグレーション管理ユニットは、前記ソース仮想マシンをシャットダウンするメッセージを前記物理ネットワーク・インタフェース・カードに送信するように更に構成され、
    前記物理ネットワーク・インタフェース・カードは、前記ソース仮想マシンをシャットダウンするための受信したメッセージに従って、前記ソース仮想マシンに対応する仮想ネットワーク・インタフェース・カードの状態情報を前記ソース仮想マシンの前記メモリに書き込み、状態情報読み取り通知を前記ソース仮想マシンに送信するように構成され、
    前記ソース仮想マシンは、前記物理ネットワーク・インタフェース・カードにより送信された前記状態情報読み取り通知を受信し、前記状態情報読み取り通知に従って、前記ソース仮想マシンの前記メモリから前記ソース仮想マシンの前記仮想ネットワーク・インタフェース・カードの前記状態情報を読み取り、前記状態情報を前記ソース仮想マシンの前記メモリに再び書き込むように更に構成される、請求項23に記載の仮想マシンシステム。
  26. 前記ソース仮想マシンは、前記新たなデータにより占有されている前記ソース仮想マシンの前記メモリ内のメモリページを決定し、前記ダーティ書き込みフラグに従って前記メモリページのデータを読み取り、前記ダーティ書き込みフラグに従って前記読み取られたデータを前記メモリページに再び書き込むように具体的に構成される、請求項23ないし25のうちいずれか1項に記載の仮想マシンシステム。
  27. 前記ソース仮想マシンは、前記ダーティ書き込みフラグをクリアするように更に構成される、請求項23ないし26のうちいずれか1項に記載の仮想マシンシステム。
  28. 仮想マシンマイグレーション管理ユニットと、ホストデバイスと、物理ネットワーク・インタフェース・カードとを有する仮想マシンシステムであり、少なくとも1つの仮想マシンは、前記ホストデバイス上で実行し、少なくとも1つの仮想ネットワーク・インタフェース・カードは、前記物理ネットワーク・インタフェース・カード上で実行し、各仮想マシンは、少なくとも1つの仮想ネットワーク・インタフェース・カードに対応し、前記物理ネットワーク・インタフェース・カードは、ダイレクト・メモリ・アクセス方式で各仮想マシンのメモリにおいてデータを読み書きする仮想マシンシステムであって、
    前記仮想マシンマイグレーション管理ユニットは、ソース仮想マシンをシャットダウンするメッセージを前記ソース仮想マシンに送信するように構成され、前記ソース仮想マシンは、マイグレーションされるべき仮想マシンであり、
    前記ソース仮想マシンは、前記仮想マシンマイグレーション管理ユニットにより送信された前記ソース仮想マシンをシャットダウンする前記メッセージを受信し、前記ソース仮想マシンをシャットダウンする前記メッセージに従って、前記ソース仮想マシンに対応する仮想ネットワーク・インタフェース・カードの状態情報を前記ソース仮想マシンのメモリに書き込むように構成される仮想マシンシステム。
  29. 前記ソース仮想マシンは、前記仮想マシンマイグレーション管理ユニットにより送信された仮想マシンのマイグレーションを開始するメッセージを受信するように更に構成され、仮想マシンのマイグレーションを開始する前記メッセージに従ってダーティ書き込みフラグを設定し、前記物理ネットワーク・インタフェース・カードが新たなデータを前記ソース仮想マシンの前記メモリに書き込むことが決定された場合、前記ダーティ書き込みフラグに従って前記ソース仮想マシンの前記メモリから前記新たなデータを読み取り、前記ダーティ書き込みフラグに従って前記新たなデータを前記ソース仮想マシンの前記メモリに再び書き込むように構成される、請求項28に記載の仮想マシンシステム。
  30. 前記ソース仮想マシンは、前記ダーティ書き込みフラグをクリアするように更に構成される、請求項28又は29に記載の仮想マシンシステム。
  31. 仮想マシンマイグレーション管理ユニットと、ホストデバイスと、物理ネットワーク・インタフェース・カードとを有する仮想マシンシステムであり、少なくとも1つの仮想マシンは、前記ホストデバイス上で実行し、少なくとも1つの仮想ネットワーク・インタフェース・カードは、前記物理ネットワーク・インタフェース・カード上で実行し、各仮想マシンは、少なくとも1つの仮想ネットワーク・インタフェース・カードに対応し、前記物理ネットワーク・インタフェース・カードは、ダイレクト・メモリ・アクセス方式で各仮想マシンのメモリにおいてデータを読み書きする仮想マシンシステムであって、
    前記仮想マシンマイグレーション管理ユニットは、ソース仮想マシンをシャットダウンするメッセージを前記物理ネットワーク・インタフェース・カードに送信するように構成され、前記ソース仮想マシンは、マイグレーションされるべき仮想マシンであり、
    前記物理ネットワーク・インタフェース・カードは、前記ソース仮想マシンをシャットダウンするための受信したメッセージに従って、前記ソース仮想マシンに対応する仮想ネットワーク・インタフェース・カードの状態情報を前記ソース仮想マシンのメモリに書き込み、状態情報読み取り通知を前記ソース仮想マシンに送信するように構成され、
    前記ソース仮想マシンは、前記物理ネットワーク・インタフェース・カードにより送信された前記状態情報読み取り通知を受信し、前記状態情報読み取り通知に従って前記ソース仮想マシンの前記メモリから前記ソース仮想マシンの前記仮想ネットワーク・インタフェース・カードの前記状態情報を読み取り、前記状態情報を前記ソース仮想マシンの前記メモリに再び書き込むように構成される仮想マシンシステム。
  32. 前記ソース仮想マシンは、前記仮想マシンマイグレーション管理ユニットにより送信された仮想マシンのマイグレーションを開始するメッセージを受信し、仮想マシンのマイグレーションを開始する前記メッセージに従ってダーティ書き込みフラグを設定し、前記物理ネットワーク・インタフェース・カードが新たなデータを前記ソース仮想マシンの前記メモリに書き込むことが決定された場合、前記ダーティ書き込みフラグに従って前記ソース仮想マシンの前記メモリから前記新たなデータを読み取り、前記ダーティ書き込みフラグに従って前記新たなデータを前記ソース仮想マシンの前記メモリに再び書き込むように更に構成される、請求項31に記載の仮想マシンシステム。
  33. 前記ソース仮想マシンは、前記ダーティ書き込みフラグをクリアするように更に構成される、請求項31又は32に記載の仮想マシンシステム。
  34. 仮想マシンマイグレーション管理ユニットと、ホストデバイスと、物理ネットワーク・インタフェース・カードとを有する仮想マシンシステムであり、少なくとも1つの仮想マシンは、前記ホストデバイス上で実行し、少なくとも1つの仮想ネットワーク・インタフェース・カードは、前記物理ネットワーク・インタフェース・カード上で実行し、各仮想マシンは、少なくとも1つの仮想ネットワーク・インタフェース・カードに対応し、前記物理ネットワーク・インタフェース・カードは、ダイレクト・メモリ・アクセス方式で各仮想マシンのメモリにおいてデータを読み書きする仮想マシンシステムであって、
    前記仮想マシンマイグレーション管理ユニットは、仮想マシンのマイグレーションを開始するメッセージをソース仮想マシンに送信するように構成され、
    前記ソース仮想マシンは、前記仮想マシンマイグレーション管理ユニットにより送信された仮想マシンのマイグレーションを開始する前記メッセージを受信し、仮想マシンのマイグレーションを開始する前記メッセージに従ってダーティ書き込みフラグを設定し、前記物理ネットワーク・インタフェース・カードが新たなデータを前記ソース仮想マシンのメモリに書き込むことが決定された場合、前記ダーティ書き込みフラグに従って前記ソース仮想マシンの前記メモリから前記新たなデータを読み取り、前記ダーティ書き込みフラグに従って前記新たなデータを前記ソース仮想マシンの前記メモリに再び書き込み、前記仮想マシンマイグレーション管理ユニットにより送信された前記ソース仮想マシンをシャットダウンするメッセージを受信し、前記ソース仮想マシンをシャットダウンする前記メッセージに従って、前記ソース仮想マシンに対応する仮想ネットワーク・インタフェース・カードの状態情報を前記ソース仮想マシンの前記メモリに書き込むように構成され、
    前記仮想マシンマイグレーション管理ユニットは、メモリ反復動作をトリガーするように更に構成され、前記メモリ反復動作は、前記ソース仮想マシンの前記メモリのデータを宛先仮想マシンにマイグレーションするために使用される仮想マシンシステム。
  35. 前記ソース仮想マシンは、前記仮想マシンマイグレーション管理ユニットが前記状態情報により占有されているメモリアドレスを前記宛先仮想マシンに通知するため、前記状態情報により占有されているメモリアドレスを前記仮想マシンマイグレーション管理ユニットに通知するように更に構成される、請求項34に記載の仮想マシンシステム。
  36. 前記宛先仮想マシンは、前記状態情報により占有されている前記メモリアドレスに従って、マイグレーションされたメモリデータから前記状態情報を取得し、前記状態情報に従って、前記宛先仮想マシンに対応する仮想ネットワーク・インタフェース・カードを復旧する、請求項35に記載の仮想マシンシステム。
  37. 仮想マシンマイグレーション管理ユニットと、物理デバイスと、ネットワーク・インタフェース・カードとを有する仮想マシンシステムであり、少なくとも1つの仮想マシンは、前記物理デバイス上で実行し、少なくとも1つの仮想ネットワーク・インタフェース・カードは、前記ネットワーク・インタフェース・カード上で実行し、各仮想マシンは、1つの仮想ネットワーク・インタフェース・カードに対応し、各仮想マシンは、対応する仮想ネットワーク・インタフェース・カードを使用することによりパケットを受信及び送信する仮想マシンシステムであって、
    前記仮想マシンマイグレーション管理ユニットは、仮想マシンのマイグレーションを開始するメッセージをソース仮想マシンに送信するように構成され、
    前記ソース仮想マシンは、前記仮想マシンマイグレーション管理ユニットにより送信された仮想マシンのマイグレーションを開始するメッセージを受信し、仮想マシンのマイグレーションを開始する前記メッセージに従ってダーティ書き込みフラグを設定し、前記物理ネットワーク・インタフェース・カードが新たなデータを前記ソース仮想マシンのメモリに書き込むことが決定された場合、前記ダーティ書き込みフラグに従って前記ソース仮想マシンの前記メモリから前記新たなデータを読み取り、前記ダーティ書き込みフラグに従って前記新たなデータを前記ソース仮想マシンの前記メモリに再び書き込むように構成され、
    前記仮想マシンマイグレーション管理ユニットは、前記ソース仮想マシンをシャットダウンするメッセージを前記物理ネットワーク・インタフェース・カードに送信するように更に構成され、
    前記物理ネットワーク・インタフェース・カードは、前記ソース仮想マシンをシャットダウンするための受信したメッセージに従って、前記ソース仮想マシンに対応する仮想ネットワーク・インタフェース・カードの状態情報を前記ソース仮想マシンの前記メモリに書き込み、状態情報読み取り通知を前記ソース仮想マシンに送信するように構成され、
    前記ソース仮想マシンは、前記物理ネットワーク・インタフェース・カードにより送信された前記状態情報読み取り通知を受信し、前記状態情報読み取り通知に従って、前記ソース仮想マシンの前記メモリから前記ソース仮想マシンの前記仮想ネットワーク・インタフェース・カードの前記状態情報を読み取り、前記状態情報を前記ソース仮想マシンの前記メモリに再び書き込むように更に構成され、
    前記仮想マシンマイグレーション管理ユニットは、メモリ反復動作をトリガーするように更に構成され、前記メモリ反復動作は、前記ソース仮想マシンの前記メモリのデータを宛先仮想マシンにマイグレーションするために使用される仮想マシンシステム。
  38. 仮想マシンのライブマイグレーション方法であって、
    仮想PCIEデバイスにより、仮想マシンのライブマイグレーションを開始する第1のメッセージを受信するステップであり、前記仮想マシンにより処理されるデータは、物理PCIEデバイスを使用することにより送信され、前記仮想PCIEデバイスは、前記物理PCIEデバイス上で実行する仮想デバイスであり、前記仮想マシンは、前記仮想PCIEデバイスを使用することにより前記物理PCIEデバイスにアクセスするステップと、
    前記仮想PCIEデバイスにより、前記第1のメッセージに従ってダーティ書き込みフラグを設定するステップであり、前記ダーティ書き込みフラグは、前記仮想PCIEデバイスを通過するデータにおいて少なくとも1つの読み書き動作を実行するために使用されるステップと
    を有する方法。
  39. 前記仮想PCIEデバイスにより、前記第1のメッセージに従ってダーティ書き込みフラグを設定するステップは、
    前記仮想PCIEデバイスにより、前記仮想PCIEデバイスのドライバを使用することにより前記第1のメッセージに従って前記ダーティ書き込みフラグを設定するステップ、又は前記仮想PCIEデバイスにより、前記ダーティ書き込みフラグとして独立変数を設定するステップを有する、請求項38に記載の方法。
  40. 前記仮想PCIEデバイスのドライバにより、前記ダーティ書き込みフラグを設定するステップは、
    前記仮想PCIEデバイスにより、前記仮想PCIEデバイスの前記ドライバにおいて確保されたデータ空間内に前記ダーティ書き込みフラグを設定するステップを有する、請求項39に記載の方法。
  41. 仮想PCIEデバイスにより、仮想マシンのライブマイグレーションを開始する第1のメッセージを受信する前に、前記方法は、
    仮想マシンのライブマイグレーションを開始する前記第1のメッセージを受信するために、前記仮想PCIEデバイスと前記物理PCIEデバイスとの間にメッセージチャネルを確立するステップを更に有する、請求項37又は38に記載の方法。
  42. 前記仮想PCIEデバイスと前記物理PCIEデバイスとの間にメッセージチャネルを確立するステップは、
    前記仮想PCIEデバイスのドライバ及び前記物理PCIEデバイスのドライバにおいてデータ空間のセグメントを別々に確保し、前記確保されたデータ空間を使用することによりメッセージ伝送を実施するステップを有する、請求項41に記載の方法。
  43. 前記仮想PCIEデバイス及び前記物理PCIEデバイスにより、前記確保されたデータ空間を使用することによりメッセージ伝送を実施するステップは、
    前記仮想マシンのネットワーク・インタフェース・カードにより、前記仮想PCIEデバイスと前記物理PCIEデバイスとの間でメッセージ通信を実施するために、ダイレクト・メモリ・アクセス(DMA)方式で前記確保されたデータ空間内でメッセージを伝送するステップ、又は
    前記仮想マシンのネットワーク・インタフェース・カードで、通信のために使用されるデータ空間を確保し、前記仮想PCIEデバイスと前記物理PCIEデバイスとで前記確保されたデータ空間を別々に共有するステップ
    を有する、請求項42に記載の方法。
  44. 前記方法は、シングルルート入出力仮想化(SR-IOV)技術に適用可能な仮想マシンのライブマイグレーション処理に適用され、
    データの受信の停止前に受信した全てのデータが位置するページがダーティに書き込まれた後に、前記仮想PCIEデバイスにより、マイグレーションが完了したことを示す受信した第2のメッセージに従って前記ダーティ書き込みフラグを取り消す、請求項37ないし43のうちいずれか1項に記載の方法。
  45. 少なくとも1つの仮想マシンがサーバ上で実行するサーバであり、前記少なくとも1つの仮想マシンにより処理されるデータは、物理PCIEデバイスを使用することにより送信され、少なくとも1つの仮想PCIEデバイスは、前記物理PCIEデバイス上で実行し、各仮想マシンは、1つの仮想PCIEデバイスに対応するサーバであって、
    前記少なくとも1つの仮想PCIEデバイスの中の第1の仮想PCIEデバイスは、
    前記第1の仮想PCIEデバイスに対応する仮想マシンのライブ開始マイグレーションの第1のメッセージを受信するように構成された受信ユニットと、
    前記第1のメッセージに従ってダーティ書き込みフラグを設定するように構成された設定ユニットであり、前記ダーティ書き込みフラグは、前記第1の仮想PCIEデバイスを通過するデータにおいて少なくとも1つの読み書き動作を実行するために使用される設定ユニットと
    を有するサーバ。
  46. 前記設定ユニットが前記第1のメッセージに従って前記ダーティ書き込みフラグを設定することは、
    前記設定ユニットにより、前記第1の仮想PCIEデバイスのドライバを使用することにより前記第1のメッセージに従って前記ダーティ書き込みフラグを設定すること、又は前記設定ユニットにより、前記ダーティ書き込みフラグとして独立変数を設定することを有する、請求項45に記載のサーバ。
  47. 前記設定ユニットにより、ドライバを使用することにより前記ダーティ書き込みフラグを設定することは、
    前記設定ユニットにより、前記第1の仮想PCIEデバイスの前記ドライバにおいて確保されたデータ空間内に前記ダーティ書き込みフラグを設定することを有する、請求項46に記載のサーバ。
  48. 前記第1の仮想PCIEデバイスは、メッセージチャネル確立ユニットを更に有し、
    前記メッセージチャネル確立ユニットは、前記受信ユニットが確立されたメッセージチャネルを通じて、前記第1の仮想PCIEデバイスに対応する仮想マシンのライブマイグレーションを開始する前記第1のメッセージを受信するために、前記第1の仮想PCIEデバイスと前記物理PCIEデバイスとの間にメッセージチャネルを確立するように構成される、請求項45ないし47のうちいずれか1項に記載のサーバ。
  49. 前記メッセージチャネル確立ユニットが前記第1の仮想PCIEデバイスと前記物理PCIEデバイスとの間に前記メッセージチャネルを確立することは、
    前記メッセージチャネル確立ユニットにより、前記第1の仮想PCIEデバイスのドライバ及び前記物理PCIEデバイスのドライバにおいてデータ空間のセグメントを別々に確保し、前記確保されたデータ空間を使用することにより前記第1の仮想PCIEデバイスと前記物理PCIEデバイスとの間でメッセージ伝送を実施することを有する、請求項48に記載のサーバ。
  50. 前記第1の仮想PCIEデバイス及び前記物理PCIEデバイスが前記確保されたデータ空間を使用することによりメッセージ伝送を実施することは、
    前記仮想マシンのネットワーク・インタフェース・カードにより、前記仮想PCIEデバイスと前記物理PCIEデバイスとの間でメッセージ通信を実施するために、ダイレクト・メモリ・アクセス(DMA)方式で前記確保されたデータ空間内でメッセージを伝送すること、又は
    前記仮想マシンのネットワーク・インタフェース・カードの前記メッセージチャネル確立ユニットにより、通信のために使用されるデータ空間を確保し、前記仮想PCIEデバイスと前記物理PCIEデバイスとで前記確保されたデータ空間を別々に共有すること
    を有する、請求項49に記載のサーバ。
  51. 前記第1の仮想PCIEデバイスに対応する前記仮想マシンは、仮想化を実施するためのシングルルート入出力仮想化(SR-IOV)技術に適用可能であり、
    前記第1の仮想PCIEデバイスに対応する前記仮想マシンのライブマイグレーションが完了したことを示す第2のメッセージを受信した場合、前記設定ユニットは、前記第2のメッセージに従って前記ダーティ書き込みフラグを取り消すように更に構成される、請求項45ないし50のうちいずれか1項に記載のサーバ。
JP2015555590A 2013-12-31 2014-12-04 仮想マシンのライブマイグレーション方法、仮想マシンのメモリデータ処理方法、サーバ及び仮想マシンシステム Active JP6140303B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CNPCT/CN2013/091131 2013-12-31
PCT/CN2013/091131 WO2015100622A1 (zh) 2013-12-31 2013-12-31 虚拟机热迁移的方法和服务器
PCT/CN2014/093034 WO2015101128A1 (zh) 2013-12-31 2014-12-04 虚拟机热迁移的方法、虚拟机内存数据处理方法、服务器和虚拟机系统

Publications (2)

Publication Number Publication Date
JP2016513308A true JP2016513308A (ja) 2016-05-12
JP6140303B2 JP6140303B2 (ja) 2017-05-31

Family

ID=50957869

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015555590A Active JP6140303B2 (ja) 2013-12-31 2014-12-04 仮想マシンのライブマイグレーション方法、仮想マシンのメモリデータ処理方法、サーバ及び仮想マシンシステム

Country Status (6)

Country Link
US (1) US10802870B2 (ja)
EP (2) EP3540599B1 (ja)
JP (1) JP6140303B2 (ja)
CN (1) CN103890728B (ja)
ES (1) ES2706186T3 (ja)
WO (2) WO2015100622A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018083724A1 (ja) * 2016-11-01 2018-05-11 株式会社日立製作所 仮想計算機システム及び仮想計算機のマイグレーション方法

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9817728B2 (en) 2013-02-01 2017-11-14 Symbolic Io Corporation Fast system state cloning
CN103890728B (zh) * 2013-12-31 2015-12-30 华为技术有限公司 虚拟机热迁移的方法和服务器
CN108205506B (zh) * 2013-12-31 2021-11-19 华为技术有限公司 虚拟机热迁移的方法、虚拟机内存数据处理方法、服务器和虚拟机系统
US10061514B2 (en) 2015-04-15 2018-08-28 Formulus Black Corporation Method and apparatus for dense hyper IO digital retention
CN106301859B (zh) * 2015-06-09 2020-02-14 华为技术有限公司 一种管理网卡的方法、装置及系统
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
CN106572047A (zh) * 2015-10-09 2017-04-19 东软集团股份有限公司 物理网络安全设备及其控制方法
US10768959B2 (en) * 2015-11-24 2020-09-08 Red Hat Israel, Ltd. Virtual machine migration using memory page hints
US9936019B2 (en) * 2016-03-16 2018-04-03 Google Llc Efficient live-migration of remotely accessed data
US10127066B1 (en) 2016-03-31 2018-11-13 Amazon Technologies, Inc. Server synchronization using continuous block migration in provider network environments
US10133593B1 (en) 2016-03-31 2018-11-20 Amazon Technologies, Inc. Virtual machine migration
EP3338194B1 (en) 2016-05-31 2022-12-07 Avago Technologies International Sales Pte. Limited Multichannel input/output virtualization
CN107465626A (zh) 2016-06-03 2017-12-12 阿里巴巴集团控股有限公司 一种虚拟机热迁移方法及装置
CN107544841B (zh) * 2016-06-29 2022-12-02 中兴通讯股份有限公司 虚拟机热迁移方法和系统
DE102017210671A1 (de) * 2017-06-23 2018-12-27 Continental Automotive Gmbh Verfahren zum Verlagern von Datenverarbeitungsanwendungen von einer ersten Recheneinheit zu einer zweiten Recheneinheit
CN109426547B (zh) 2017-09-04 2022-05-17 华为技术有限公司 一种虚拟机的热迁移方法、装置和系统
US10572186B2 (en) 2017-12-18 2020-02-25 Formulus Black Corporation Random access memory (RAM)-based computer systems, devices, and methods
CN109388477A (zh) * 2018-10-18 2019-02-26 郑州云海信息技术有限公司 一种虚拟机动态迁移方法
CN109753346B (zh) * 2018-12-25 2021-01-01 新华三云计算技术有限公司 一种虚拟机热迁移方法及装置
US10725853B2 (en) 2019-01-02 2020-07-28 Formulus Black Corporation Systems and methods for memory failure prevention, management, and mitigation
LU101361B1 (en) * 2019-08-26 2021-03-11 Microsoft Technology Licensing Llc Computer device including nested network interface controller switches
US11409619B2 (en) 2020-04-29 2022-08-09 The Research Foundation For The State University Of New York Recovering a virtual machine after failure of post-copy live migration
US11561821B1 (en) * 2020-05-07 2023-01-24 Amazon Technologies, Inc. Controlling placement of virtualized resources based on desirability index for host pools
US20220171645A1 (en) * 2020-11-30 2022-06-02 Red Hat, Inc. Efficient out of order request completion
US11182221B1 (en) 2020-12-18 2021-11-23 SambaNova Systems, Inc. Inter-node buffer-based streaming for reconfigurable processor-as-a-service (RPaaS)
US11782760B2 (en) 2021-02-25 2023-10-10 SambaNova Systems, Inc. Time-multiplexed use of reconfigurable hardware
US11200096B1 (en) 2021-03-26 2021-12-14 SambaNova Systems, Inc. Resource allocation for reconfigurable processors

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009217608A (ja) * 2008-03-11 2009-09-24 Hitachi Ltd 仮想計算機システム及びその制御方法
JP2013250950A (ja) * 2012-06-04 2013-12-12 Hitachi Ltd 計算機システム、仮想化機構、及び計算機システムの制御方法

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4756603B2 (ja) * 2006-10-10 2011-08-24 ルネサスエレクトロニクス株式会社 データプロセッサ
US7813366B2 (en) * 2006-12-19 2010-10-12 International Business Machines Corporation Migration of a virtual endpoint from one virtual plane to another
CN100489787C (zh) 2007-07-10 2009-05-20 北京大学 一种虚拟机的外存在线迁移方法
JP4934642B2 (ja) * 2008-06-11 2012-05-16 株式会社日立製作所 計算機システム
US8667187B2 (en) * 2008-09-15 2014-03-04 Vmware, Inc. System and method for reducing communication overhead between network interface controllers and virtual machines
US7996484B2 (en) * 2008-12-11 2011-08-09 Microsoft Corporation Non-disruptive, reliable live migration of virtual machines with network data reception directly into virtual machines' memory
CN101645832B (zh) 2009-05-07 2011-09-28 曙光信息产业(北京)有限公司 一种基于fpga的虚拟机网络数据包处理方法
US8689211B2 (en) * 2009-05-25 2014-04-01 International Business Machines Corporation Live migration of virtual machines in a computing environment
US8386731B2 (en) * 2009-09-14 2013-02-26 Vmware, Inc. Method and system for optimizing live migration of persistent data of virtual machine using disk I/O heuristics
US8412863B2 (en) * 2010-10-19 2013-04-02 Hitachi, Ltd. Storage apparatus and virtual port migration method for storage apparatus
CN102073462B (zh) 2010-11-29 2013-04-17 华为技术有限公司 虚拟存储迁移方法、系统和虚拟机监控器
JP5573649B2 (ja) 2010-12-17 2014-08-20 富士通株式会社 情報処理装置
US8356120B2 (en) * 2011-01-07 2013-01-15 Red Hat Israel, Ltd. Mechanism for memory state restoration of virtual machine (VM)-controlled peripherals at a destination host machine during migration of the VM
US9104459B2 (en) * 2011-01-07 2015-08-11 Red Hat Israel, Ltd. Memory change tracking during migration of virtual machine (VM) with VM-controlled assigned peripherals
US8407182B1 (en) * 2011-01-21 2013-03-26 Symantec Corporation Systems and methods for facilitating long-distance live migrations of virtual machines
EP2676195B1 (en) * 2011-02-18 2019-06-05 Telefonaktiebolaget LM Ericsson (publ) Virtual machine supervision
CN102118458A (zh) * 2011-03-10 2011-07-06 浪潮(北京)电子信息产业有限公司 一种虚拟机热迁移的方法及系统
US8533713B2 (en) * 2011-03-29 2013-09-10 Intel Corporation Efficent migration of virtual functions to enable high availability and resource rebalance
CN103064733A (zh) * 2011-10-20 2013-04-24 电子科技大学 云计算虚拟机热迁移技术
CN102457439B (zh) 2011-12-07 2014-05-28 中标软件有限公司 一种云计算系统的虚拟交换系统及其虚拟交换方法
CN102681913A (zh) * 2011-12-21 2012-09-19 中兴通讯股份有限公司 一种虚拟机到虚拟机热迁移的方法及装置
US9197489B1 (en) * 2012-03-30 2015-11-24 Amazon Technologies, Inc. Live migration of virtual machines in a hybrid network environment
CN102662751B (zh) * 2012-03-30 2016-05-11 浪潮电子信息产业股份有限公司 一种提高基于热迁移虚拟机系统可用性的方法
US20140047183A1 (en) * 2012-08-07 2014-02-13 Dell Products L.P. System and Method for Utilizing a Cache with a Virtual Machine
CN103201721B (zh) * 2012-08-29 2016-05-25 华为技术有限公司 虚拟机热迁移的系统和方法
CN103414769B (zh) * 2013-07-31 2017-03-01 华为技术有限公司 虚拟机热迁移的方法及物理机
US9454400B2 (en) * 2013-08-16 2016-09-27 Red Hat Israel, Ltd. Memory duplication by origin host in virtual machine live migration
CN103890728B (zh) * 2013-12-31 2015-12-30 华为技术有限公司 虚拟机热迁移的方法和服务器

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009217608A (ja) * 2008-03-11 2009-09-24 Hitachi Ltd 仮想計算機システム及びその制御方法
JP2013250950A (ja) * 2012-06-04 2013-12-12 Hitachi Ltd 計算機システム、仮想化機構、及び計算機システムの制御方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018083724A1 (ja) * 2016-11-01 2018-05-11 株式会社日立製作所 仮想計算機システム及び仮想計算機のマイグレーション方法

Also Published As

Publication number Publication date
US10802870B2 (en) 2020-10-13
US20150309839A1 (en) 2015-10-29
EP3540599B1 (en) 2022-04-06
ES2706186T3 (es) 2019-03-27
EP2942709A4 (en) 2016-06-15
EP2942709A1 (en) 2015-11-11
EP3540599A1 (en) 2019-09-18
CN103890728A (zh) 2014-06-25
JP6140303B2 (ja) 2017-05-31
WO2015101128A1 (zh) 2015-07-09
WO2015100622A1 (zh) 2015-07-09
CN103890728B (zh) 2015-12-30
EP2942709B1 (en) 2018-10-31

Similar Documents

Publication Publication Date Title
JP6140303B2 (ja) 仮想マシンのライブマイグレーション方法、仮想マシンのメモリデータ処理方法、サーバ及び仮想マシンシステム
EP3173936B1 (en) Computer system, method for accessing peripheral component interconnect express endpoint device, and apparatus
CN108205506B (zh) 虚拟机热迁移的方法、虚拟机内存数据处理方法、服务器和虚拟机系统
CN112486585B (zh) 恢复fpga芯片中的逻辑的方法、系统和fpga设备
JP2011118557A (ja) 仮想計算機の移動管理方法、前記移動管理方法を用いた計算機、前記移動管理方法を用いた仮想化機構および前記移動管理方法を用いた計算機システム
CN108064377B (zh) 一种多系统共享内存的管理方法及装置
CN104871493A (zh) 高性能计算(hpc)网络中的通信信道故障切换
CN104239120A (zh) 一种虚拟机的状态信息同步的方法、装置及系统
JP6115331B2 (ja) トランザクション再開プログラム、情報処理装置及びトランザクション再開方法
EP3992805A1 (en) Live migration method for virtual machine and communication device
JP2016143330A (ja) 電子機器、制御装置及びプログラム
CN114691300A (zh) 一种虚拟机实例的热迁移方法
US9524189B2 (en) Information processing device, information processing method, and computer program product
CN104170307A (zh) 失效切换方法、装置和系统
CN116257276B (zh) 支持虚拟化硬件加速的虚拟宿主机用户后端升级方法
JP2015005097A (ja) 電子機器、制御装置及びプログラム
CN113032088B (zh) 脏页记录方法、装置、电子设备及计算机可读介质
WO2022242665A1 (zh) 一种数据存储方法及相关装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160824

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161004

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161226

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: 20170404

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170428

R150 Certificate of patent or registration of utility model

Ref document number: 6140303

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