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