(57)【要約】【課題】二つのホスト間を移動可能な仮想マシンを有する計算機システムにおいて、仮想マシン内のデバイスドライバを変更せずに、移動元のホストが有するデバイスを移動先のホストから使用すること。【解決手段】仮想マシン３００が第１ハイパーバイザ１２０上で動作する場合、フロントエンドドライバ３１０が第１バックエンドドライバ１２１とデバイス１１２の制御に係わる通信を行うことによって、フロントエンドドライバがデバイスの制御を行い、仮想マシンが第２ハイパーバイザ２２０上で動作する場合、フロントエンドドライバは第２バックエンドドライバ２２１とデバイスの制御に係わる通信を行い、第２バックエンドドライバは第１バックエンドドライバとデバイスの制御に係わる通信を行うことによって、フロントエンドドライバが前記デバイスの制御を行う。【選択図】      図２
2010009396.tif 000002
【特許請求の範囲】
【請求項１】
第１プロセッサ、第１ネットワークインタフェースおよびデバイスを含む第１ハードウエアと、前記第１ハードウエア上で動作する第１ハイパーバイザとを有する移動元計算機と、第２プロセッサおよび第２ネットワークインタフェースを含む第２ハードウエアと、前記第２ハードウエア上で動作する第２ハイパーバイザとを有する移動先計算機とがネットワークに接続され、前記移動元計算機内の前記第１ハイパーバイザ上で動作する、ゲストオペレーティングシステムを含む仮想マシンが、前記移動先計算機に移動して前記第２ハイパーバイザ上で動作可能な計算機システムであって、
前記仮想マシンの前記ゲストオペレーティングシステム内では、前記デバイスを制御するためのフロントエンドドライバが動作し、
前記第１ハイパーバイザ内では、第１インタフェースを介して行われる通信に対応して、前記第２デバイスを直接制御する第１バックエンドドライバが動作し、
前記第２ハイパーバイザ内では、前記第１インタフェースと同じ第２インタフェースを有する第２バックエンドドライバが動作し、
前記仮想マシンが第１ハイパーバイザ上で動作する場合、前記フロントエンドドライバが前記第１インタフェースを介して前記第１バックエンドドライバと前記デバイスの制御に係わる通信を行うことによって、前記フロントエンドドライバが前記デバイスの制御を行い、
前記仮想マシンが第２ハイパーバイザ上で動作する場合、前記フロントエンドドライバは前記第２インタフェースを介して前記第２バックエンドドライバと前記デバイスの制御に係わる通信を行い、前記第２バックエンドドライバは前記第１バックエンドドライバと前記デバイスの制御に係わる通信を行うことによって、前記フロントエンドドライバが前記デバイスの制御を行う
ことを特徴とする計算機システム。
【請求項２】
前記仮想マシンが第２ハイパーバイザ上で動作する場合、前記仮想マシン内の前記ゲストオペレーティングシステム上で動作する管理アプリケーションが前記第２バックエンドドライバに前記移動元計算機を指定することによって、前記第２バックエンドドライバが前記第１バックエンドドライバとの通信を開始することを特徴とする請求項１に記載の計算機システム。
【請求項３】
前記管理アプリケーションは、前記移動元計算機を指定するために、前記第１ネットワークインタフェースの一意な識別子を指定することを特徴とする請求項２に記載の計算機システム。
【請求項４】
前記第２計算機は、第２デバイスを具備し、
前記仮想マシンの前記ゲストオペレーティングシステム内では前記第２デバイスを制御するための第２フロントエンドドライバが動作し、
前記第２ハイパーバイザ内では、第３インタフェースを介して行われる通信に対応して、前記第２デバイスを直接制御する第３バックエンドドライバが動作し、
前記第１ハイパーバイザ内では、前記第３インタフェースと同じ第４インタフェースを有する第４バックエンドドライバが動作し、
前記仮想マシンは、前記仮想マシンが第１ホスト内で動作している状態で、前記第２ハイパーバイザに対して前記第２デバイスを利用するための要求を発行する手段を具備し、
前記第２ハイパーバイザは、前記要求に応じて前記第３バックエンドドライバと前記第４バックエンドドライバとの通信を実行し、
前記第１ハイパーバイザは、前記第４バックエンドドライバと前記第２フロントエンドドライバとの通信を実行することを特徴とする請求項１に記載の計算機システム。
【請求項５】
第１プロセッサ、第１ネットワークインタフェースおよびデバイスを含む第１ハードウエアと、前記第１ハードウエア上で動作する第１ハイパーバイザとを有する移動元計算機と、第２プロセッサおよび第２ネットワークインタフェースを含む第２ハードウエアと、前記第２ハードウエア上で動作する第２ハイパーバイザを有する移動先計算機とがネットワークに接続され、前記移動元計算機内の前記第１ハイパーバイザ上で動作する、ゲストオペレーティングシステムを含む仮想マシンが、前記移動先計算機に移動して前記第２ハイパーバイザ上で動作可能な計算機システムのデバイス制御方法であって、
前記仮想マシンの前記ゲストオペレーティングシステム内では、前記デバイスを制御するためのフロントエンドドライバが動作し、
前記第１ハイパーバイザ内では、第１インタフェースを介して行われる通信に対応して、前記デバイスを直接制御する第１バックエンドドライバが動作し、
前記仮想マシンが第１ハイパーバイザ上で動作する場合、前記フロントエンドドライバが前記第１インタフェースを介して前記第１バックエンドドライバと前記デバイスの制御に係わる通信を行うことによって、前記フロントエンドドライバが前記デバイスの制御を行い、
前記仮想マシンが前記第１計算機から前記第２計算機に移動し、
前記第２ハイパーバイザ内では、前記第１インタフェースと同じ第２インタフェースを有する第２バックエンドドライバが動作し、
前記仮想マシンが第２ハイパーバイザ上で動作する場合、前記フロントエンドドライバは前記第２インタフェースを介して前記第２バックエンドドライバと前記デバイスの制御に係わる通信を行い、前記第２バックエンドドライバは前記第１バックエンドドライバと前記デバイスの制御に係わる通信を行うことによって、前記フロントエンドドライバが前記デバイスの制御を行う
ことを特徴とする計算機システムのデバイス制御方法。
【請求項６】
前記仮想マシンが第２ハイパーバイザ上で動作する場合、前記仮想マシン内の前記ゲストオペレーティングシステム上で動作する管理アプリケーションが前記第２バックエンドドライバに前記移動元計算機を指定することによって、前記第２バックエンドドライバが前記第１バックエンドドライバとの通信を行うことを特徴とする請求項５に記載の計算機システムのデバイス制御方法。
【請求項７】
前記管理アプリケーションは、前記移動元計算機を指定するために、前記第１ネットワークインタフェースの一意な識別子を指定することを特徴とする請求項６に記載の計算機システムのデバイス制御方法。
【請求項８】
前記仮想マシンの前記ゲストオペレーティングシステム内では第２デバイスを制御するための第２フロントエンドドライバが動作し、
前記第２ハイパーバイザ内では、第３インタフェースを介して行われる通信に対応して、前記第２デバイスを直接制御する第３バックエンドドライバが動作し、
前記第１ハイパーバイザ内では、前記第３インタフェースと同じ第４インタフェースを有する第２バックエンドドライバが動作し、
前記仮想マシンは、前記仮想マシンが第１ホスト内で動作している状態で、前記第２ハイパーバイザに対して前記第２デバイスを利用するための要求を発行し、
前記第２ハイパーバイザは、前記要求に応じて前記第３バックエンドドライバと前記第４バックエンドドライバとの通信を実行し、
前記第１ハイパーバイザは、前記第４バックエンドドライバと前記第２フロントエンドドライバとの通信を実行することを特徴とする請求項６に記載の計算機システムのデバイス制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想マシンがマイグレート可能な計算機システム、および計算機システムのデバイス制御方法に関する。
【背景技術】
【０００２】
近年、仮想マシン技術が盛んに研究されている。仮想マシン技術には、マイグレーションという技術がある。マイグレーションは、移動元ホストで稼働している仮想マシンを移動先ホストに移動させて、移動先ホスト上で移動した仮想マシンを稼働させるというものである。移動先ホストと移動元ホストでは、デバイスの構成内容が異なり、移動元ホストから移動先ホストのデバイスを利用したいことがある。
【０００３】
特許文献１には、仮想マシン内のゲストＯＳのデバイスドライバから特定のサーバのハイパーバイザ上に存在するデバイスドライバと通信してネットワーク越しにデバイスを利用可能にする技術が開示されている。
【特許文献１】特開２００４−２５８８４０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところが、上述した技術では、ゲストＯＳのデバイスドライバが、ハイパーバイザ上のデバイスドライバとの通信を行うように改変しなければならない。ところが、ゲストＯＳで使用するデバイスドライバは、ベンダーから提供され、デバイスドライバを改変することが困難である。
【０００５】
本発明の目的は、仮想マシンを移動元ホストから移動先ホストに移動した後、仮想マシンに実装されているデバイスドライバを改変したデバイスドライバを用いなくても、移動元ホストのデバイスを制御することが可能な計算機システム、および計算機システムのデバイス制御方法を提供することにある。
【課題を解決するための手段】
【０００６】
本発明の一例に係わる計算機システムは、第１プロセッサ、第１ネットワークインタフェースおよびデバイスを含む第１ハードウエアと、前記第１ハードウエア上で動作する第１ハイパーバイザとを有する移動元計算機と、第２プロセッサおよび第２ネットワークインタフェースを含む第２ハードウエアと、前記第２ハードウエア上で動作する第２ハイパーバイザとを有する移動先計算機とがネットワークに接続され、前記移動元計算機内の前記第１ハイパーバイザ上で動作する、ゲストオペレーティングシステムを含む仮想マシンが、前記移動先計算機に移動して前記第２ハイパーバイザ上で動作可能な計算機システムであって、前記仮想マシンの前記ゲストオペレーティングシステム内では、前記デバイスを制御するためのフロントエンドドライバが動作し、前記第１ハイパーバイザ内では、第１インタフェースを介して行われる通信に対応して、前記第２デバイスを直接制御する第１バックエンドドライバが動作し、前記第２ハイパーバイザ内では、前記第１インタフェースと同じ第２インタフェースを有する第２バックエンドドライバが動作し、前記仮想マシンが第１ハイパーバイザ上で動作する場合、前記フロントエンドドライバが前記第１インタフェースを介して前記第１バックエンドドライバと前記デバイスの制御に係わる通信を行うことによって、前記フロントエンドドライバが前記デバイスの制御を行い、前記仮想マシンが第２ハイパーバイザ上で動作する場合、前記フロントエンドドライバは前記第２インタフェースを介して前記第２バックエンドドライバと前記デバイスの制御に係わる通信を行い、前記第２バックエンドドライバは前記第１バックエンドドライバと前記デバイスの制御に係わる通信を行うことによって、前記フロントエンドドライバが前記デバイスの制御を行うことを特徴とする。
【０００７】
本発明に係わる計算機システムのデバイス制御方法は、第１プロセッサ、第１ネットワークインタフェースおよびデバイスを含む第１ハードウエアと、前記第１ハードウエア上で動作する第１ハイパーバイザとを有する移動元計算機と、第２プロセッサおよび第２ネットワークインタフェースを含む第２ハードウエアと、前記第２ハードウエア上で動作する第２ハイパーバイザを有する移動先計算機とがネットワークに接続され、前記移動元計算機内の前記第１ハイパーバイザ上で動作する、ゲストオペレーティングシステムを含む仮想マシンが、前記移動先計算機に移動して前記第２ハイパーバイザ上で動作可能な計算機システムのデバイス制御方法であって、前記仮想マシンの前記ゲストオペレーティングシステム内では、前記デバイスを制御するためのフロントエンドドライバが動作し、前記第１ハイパーバイザ内では、第１インタフェースを介して行われる通信に対応して、前記デバイスを直接制御する第１バックエンドドライバが動作し、前記仮想マシンが第１ハイパーバイザ上で動作する場合、前記フロントエンドドライバが前記第１インタフェースを介して前記第１バックエンドドライバと前記デバイスの制御に係わる通信を行うことによって、前記フロントエンドドライバが前記デバイスの制御を行い、前記仮想マシンが前記第１計算機から前記第２計算機に移動し、前記第２ハイパーバイザ内では、前記第１インタフェースと同じ第２インタフェースを有する第２バックエンドドライバが動作し、前記仮想マシンが第２ハイパーバイザ上で動作する場合、前記フロントエンドドライバは前記第２インタフェースを介して前記第２バックエンドドライバと前記デバイスの制御に係わる通信を行い、前記第２バックエンドドライバは前記第１バックエンドドライバと前記デバイスの制御に係わる通信を行うことによって、前記フロントエンドドライバが前記デバイスの制御を行うことを特徴とする。
【発明の効果】
【０００８】
本発明によれば、仮想マシンを移動元ホストから移動先ホストに移動した後、仮想マシンに実装されているデバイスドライバを改変したデバイスドライバを用いなくても、移動元ホストのデバイスを制御することが可能になる。
【発明を実施するための最良の形態】
【０００９】
本発明の実施の形態を以下に図面を参照して説明する。  
図１は、本発明の第１の実施形態に係わる計算機システムの構成を示す図である。  
図１に示すように、第１ホスト１００は、ＣＰＵ１１１、第１デバイス１１２、第１ネットワークインタフェースカード（ＮＩＣ）１１３等を具備する第１ハードウエア１１０を有する。第１ハードウエア１１０上で第１ハイパーバイザ１２０が動作している。第１ハイパーバイザ１２０の管理の下に仮想マシン３００が動作している。仮想マシン３００内では、ゲストオペレーティングシステム（以下、ゲストＯＳ）が稼働している。そして、仮想マシン３００内では、ゲストＯＳ３１０の管理の下に管理コンソール３２１およびインターネットブラウザ、ワードプロセッサ、スプレッドシート等のアプリケーション３２２が稼働している。
【００１０】
また、第１ハイパーバイザ１２０内では、第１デバイス１１２を制御するためのソフトウェアである第１バックエンドドライバ１２１が動作している。第１バックエンドドライバ１２１は、ゲストＯＳ３１０のフロントエンドドライバ３１１に対して抽象化されたインタフェースを提供する。第１バックエンドドライバ１２１は、デバイスを直接制御する事が可能である。
【００１１】
ゲストＯＳ３１０内では、デバイスを制御するためのフロントエンドドライバ３１１が動作している。フロントエンドドライバ３１１は、第１バックエンドドライバ１２１と通信を行い、第１バックエンドドライバ１２１を経由してデバイスを間接的に制御する。
【００１２】
フロントエンドドライバ３１１と第１バックエンドドライバ１２１間の通信インタフェースは、一般的にはイベントの通知インタフェース（ここではイベントチャネルと呼ぶ）とデータの通信のためのバッファ（ここでは通信バッファとよぶ）から成る。通信バッファと述べたが、フロントエンドドライバ３１１と移動元バックエンドドライバは、ローカルメモリ上で通信されることになるため、実際に通信を伴うか否かについては問題としない。
【００１３】
また、第２ホスト２００は、ＣＰＵ２１１、第２デバイス２１２、第２ネットワークインタフェースカード（ＮＩＣ）２１３等を具備する第２ハードウエア２１０を有する。第２ハードウエア２１０上で第２ハイパーバイザ２２０が動作している。なお、図２に示すように、仮想マシン３００を第２ホスト２００に移動させて、第２ホスト２００で仮想マシン３００を稼働することが可能である。
【００１４】
また、第２ハイパーバイザ２２０内では、第１デバイス１１２を制御するためのソフトウェアである第２バックエンドドライバ２２１が動作している。第２バックエンドドライバ２２１は、第１バックエンドドライバ１２１が提供するインタフェースと同じ抽象化されたインタフェースをゲストＯＳ３１０のフロントエンドドライバ３１１に対して提供する。
【００１５】
仮想マシン３００が、第２ホスト２００に移動した場合、移動先の第２ホスト２００においてはゲストＯＳ３１０が利用しているデバイスが存在しないが、移動元の第１ホストにある第１デバイス１１２を継続して利用したい場合がある。
【００１６】
仮想マシン３００が第２ホスト２００に移動した後、管理コンソール３２１が第１ネットワークインタフェースカードに固有な一意の識別子としてＭＡＣアドレスを第２バックエンドドライバ２２１に通知する。第２バックエンドドライバ２２１はＭＡＣアドレスを元に対応する第１ホストを検出する。そして、第２バックエンドドライバ２２１は第１ホスト中の第１バックエンドドライバ１２１と通信を行うことが出来るようになる。そして、フロントエンドドライバ３１１−第２バックエンドドライバ２２１間、第２バックエンドドライバ２２１―第１バックエンドドライバ１２１間で通信を行うことによって、デバイスのデータ入出力のためのデータ交換を行う。フロントエンドドライバ３１１−第２バックエンドドライバ２２１間、第２バックエンドドライバ２２１−第１バックエンドドライバ１２１間はほとんど同じデータを交換するため、それぞれのデータ転送内容の形式は統一可能である。
【００１７】
バックエンドドライバ１２１，２２１同士は、どのフロントエンドドライバ３１１のデータを送受信しているか認識するタグをデータに付加する必要がある。これは一般的なデータ通信の技術を使用して構わない。
【００１８】
なお、図３に示すように、第１ホスト１００から第２ホスト２００への仮想マシン３００のマイグレーション時に、第１ホスト内で稼働する管理コンソール３２１から移動先の第２ホスト２００の第２デバイス２１２を使用するための予約を移動先の第２ハイパーバイザ２２０に要求しておき、移動先の第２ハイパーバイザ２２０に実装されている第４バックエンドドライバ２２２と、移動元の第１ハイパーバイザ１２０内で動作している第３バックエンドドライバ１２２を接続し、さらに移動元のゲストＯＳ３１０に実装されているフロントエンドドライバ３１２を接続する。この時点で、移動元のゲストＯＳ３１０が移動先のデバイス２１２を移動前に利用することが可能となる。そして、マイグレーション後に、特別な操作を行うことなしに、仮想マシン３００が第２デバイス２１２を即座に使用することが可能になる。
【００１９】
なお、第４バックエンドドライバ２２２と第３バックエンドドライバ１２２とは同一のインタフェースを有する。そして、第４バックエンドドライバ２２２は、第３バックエンドドライバ１２２または第２フロントエンドドライバとの間で行われる第２デバイス２１２の制御に係わる通信に対応して、第２デバイス２１２を直接制御する。
【００２０】
上述したように、仮想マシン３００が第１ホストから第２ホスト２００にマイグレートすると、同じフロントエンドドライバ３１１を継続して使用し、接続先を移動先のバックエンドドライバとすることで、ゲストＯＳ３１０からはデバイスの構成に変化がないかのように移動先のデバイスを継続利用することができる。
【００２１】
また、フロントエンドドライバ３１１が遠隔ホストのデバイスを使うにあたって、遠隔ホストで動作するバックエンドドライバとの通信を現在ゲストＯＳが動作しているホストのバックエンドドライバが代行することで、ゲストＯＳにおける実装からはバックエンドドライバの存在を隠蔽することができ、ゲストＯＳから見た機器の抽象度が上がり、機器の構成が容易になる。
【００２２】
また、実際のハードウェアの操作はバックエンドドライバが行い、フロントエンドドライバに変更を加える必要がないため、変更が容易でないフロントエンドドライバを使用するに当たっても、最新のハードウェアへの追随が容易になる。
【００２３】
なお、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
【図面の簡単な説明】
【００２４】
【図１】本発明の一実施形態に係わる計算機システムの構成を示すブロック図。
【図２】本発明の一実施形態に係わる計算機システムの構成を示すブロック図。
【図３】本発明の一実施形態に係わる計算機システムの構成を示すブロック図。
【符号の説明】
【００２５】
１００…第１ホスト，１１０…第１ハードウエア，１１１…ＣＰＵ，１１２…第１デバイス，１１３…第１ネットワークインタフェースカード，１２０…第１ハイパーバイザ，１２１…第１バックエンドドライバ，１２２…第３バックエンドドライバ，２００…第２ホスト，２１０…第２ハードウエア，２１１…ＣＰＵ，２１２…第２デバイス，２１３…第２ネットワークインタフェースカード，２２０…第２ハイパーバイザ，２２１…第２バックエンドドライバ，２２２…第４バックエンドドライバ，３００…仮想マシン，３１０…ゲストＯＳ，３１１…フロントエンドドライバ，３１２…第２フロントエンドドライバ，３２１…管理コンソール.
【図１】
2010009396.tif 000003
【図２】
2010009396.tif 000004
【図３】
2010009396.tif 000005
【手続補正書】
【提出日】平成21年9月15日(2009.9.15)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第１プロセッサ、第１ネットワークインタフェースおよびデバイスを含む第１ハードウエアと、前記第１ハードウエア上で動作する第１ハイパーバイザとを有する移動元計算機と、第２プロセッサおよび第２ネットワークインタフェースを含む第２ハードウエアと、前記第２ハードウエア上で動作する第２ハイパーバイザとを有する移動先計算機とがネットワークに接続され、前記移動元計算機内の前記第１ハイパーバイザ上で動作する、ゲストオペレーティングシステムを含む仮想マシンが、前記移動先計算機に移動して前記第２ハイパーバイザ上で動作可能な計算機システムであって、
前記仮想マシンの前記ゲストオペレーティングシステム内では、前記デバイスを制御するためのフロントエンドドライバが動作し、
前記第１ハイパーバイザ内では、第１インタフェースを介して行われる通信に対応して、前記デバイスを直接制御する第１バックエンドドライバが動作し、
前記第２ハイパーバイザ内では、前記第１インタフェースと同じ第２インタフェースを有する第２バックエンドドライバが動作し、
前記仮想マシンが第１ハイパーバイザ上で動作する場合、前記フロントエンドドライバが前記第１インタフェースを介して前記第１バックエンドドライバと前記デバイスの制御に係わる通信を行うことによって、前記フロントエンドドライバが前記デバイスの制御を行い、
前記仮想マシンが第２ハイパーバイザ上で動作する場合、前記フロントエンドドライバは前記第２インタフェースを介して前記第２バックエンドドライバと前記デバイスの制御に係わる通信を行い、前記第２バックエンドドライバは前記第１バックエンドドライバと前記デバイスの制御に係わる通信を行うことによって、前記フロントエンドドライバが前記デバイスの制御を行う
ことを特徴とする計算機システム。
【請求項２】
前記仮想マシンが第２ハイパーバイザ上で動作する場合、前記仮想マシン内の前記ゲストオペレーティングシステム上で動作する管理アプリケーションが前記第２バックエンドドライバに前記移動元計算機を指定することによって、前記第２バックエンドドライバが前記第１バックエンドドライバとの通信を開始することを特徴とする請求項１に記載の計算機システム。
【請求項３】
前記管理アプリケーションは、前記移動元計算機を指定するために、前記第１ネットワークインタフェースの一意な識別子を指定することを特徴とする請求項２に記載の計算機システム。
【請求項４】
前記移動先計算機は、第２デバイスを具備し、
前記仮想マシンの前記ゲストオペレーティングシステム内では前記第２デバイスを制御するための第２フロントエンドドライバが動作し、
前記第２ハイパーバイザ内では、第３インタフェースを介して行われる通信に対応して、前記第２デバイスを直接制御する第３バックエンドドライバが動作し、
前記第１ハイパーバイザ内では、前記第３インタフェースと同じ第４インタフェースを有する第４バックエンドドライバが動作し、
前記仮想マシンは、前記仮想マシンが前記移動元計算機内で動作している状態で、前記第２ハイパーバイザに対して前記第２デバイスを利用するための要求を発行する手段を具備し、
前記第２ハイパーバイザは、前記要求に応じて前記第３バックエンドドライバと前記第４バックエンドドライバとの通信を実行し、
前記第１ハイパーバイザは、前記第４バックエンドドライバと前記第２フロントエンドドライバとの通信を実行することを特徴とする請求項１に記載の計算機システム。
【請求項５】
第１プロセッサ、第１ネットワークインタフェースおよびデバイスを含む第１ハードウエアと、前記第１ハードウエア上で動作する第１ハイパーバイザとを有する移動元計算機と、第２プロセッサおよび第２ネットワークインタフェースを含む第２ハードウエアと、前記第２ハードウエア上で動作する第２ハイパーバイザを有する移動先計算機とがネットワークに接続され、前記移動元計算機内の前記第１ハイパーバイザ上で動作する、ゲストオペレーティングシステムを含む仮想マシンが、前記移動先計算機に移動して前記第２ハイパーバイザ上で動作可能な計算機システムのデバイス制御方法であって、
前記仮想マシンの前記ゲストオペレーティングシステム内では、前記デバイスを制御するためのフロントエンドドライバが動作し、
前記第１ハイパーバイザ内では、第１インタフェースを介して行われる通信に対応して、前記デバイスを直接制御する第１バックエンドドライバが動作し、
前記仮想マシンが第１ハイパーバイザ上で動作する場合、前記フロントエンドドライバが前記第１インタフェースを介して前記第１バックエンドドライバと前記デバイスの制御に係わる通信を行うことによって、前記フロントエンドドライバが前記デバイスの制御を行い、
前記仮想マシンが前記移動元計算機から前記移動先計算機に移動し、
前記第２ハイパーバイザ内では、前記第１インタフェースと同じ第２インタフェースを有する第２バックエンドドライバが動作し、
前記仮想マシンが第２ハイパーバイザ上で動作する場合、前記フロントエンドドライバは前記第２インタフェースを介して前記第２バックエンドドライバと前記デバイスの制御に係わる通信を行い、前記第２バックエンドドライバは前記第１バックエンドドライバと前記デバイスの制御に係わる通信を行うことによって、前記フロントエンドドライバが前記デバイスの制御を行う
ことを特徴とする計算機システムのデバイス制御方法。
【請求項６】
前記仮想マシンが第２ハイパーバイザ上で動作する場合、前記仮想マシン内の前記ゲストオペレーティングシステム上で動作する管理アプリケーションが前記第２バックエンドドライバに前記移動元計算機を指定することによって、前記第２バックエンドドライバが前記第１バックエンドドライバとの通信を行うことを特徴とする請求項５に記載の計算機システムのデバイス制御方法。
【請求項７】
前記管理アプリケーションは、前記移動元計算機を指定するために、前記第１ネットワークインタフェースの一意な識別子を指定することを特徴とする請求項６に記載の計算機システムのデバイス制御方法。
【請求項８】
前記仮想マシンの前記ゲストオペレーティングシステム内では前記移動先計算機が具備する第２デバイスを制御するための第２フロントエンドドライバが動作し、
前記第２ハイパーバイザ内では、第３インタフェースを介して行われる通信に対応して、前記第２デバイスを直接制御する第３バックエンドドライバが動作し、
前記第１ハイパーバイザ内では、前記第３インタフェースと同じ第４インタフェースを有する第４バックエンドドライバが動作し、
前記仮想マシンは、前記仮想マシンが前記移動先計算機内で動作している状態で、前記第２ハイパーバイザに対して前記第２デバイスを利用するための要求を発行し、
前記第２ハイパーバイザは、前記要求に応じて前記第３バックエンドドライバと前記第４バックエンドドライバとの通信を実行し、
前記第１ハイパーバイザは、前記第４バックエンドドライバと前記第２フロントエンドドライバとの通信を実行することを特徴とする請求項６に記載の計算機システムのデバイス制御方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００６
【補正方法】変更
【補正の内容】
【０００６】
本発明の一例に係わる計算機システムは、第１プロセッサ、第１ネットワークインタフェースおよびデバイスを含む第１ハードウエアと、前記第１ハードウエア上で動作する第１ハイパーバイザとを有する移動元計算機と、第２プロセッサおよび第２ネットワークインタフェースを含む第２ハードウエアと、前記第２ハードウエア上で動作する第２ハイパーバイザとを有する移動先計算機とがネットワークに接続され、前記移動元計算機内の前記第１ハイパーバイザ上で動作する、ゲストオペレーティングシステムを含む仮想マシンが、前記移動先計算機に移動して前記第２ハイパーバイザ上で動作可能な計算機システムであって、前記仮想マシンの前記ゲストオペレーティングシステム内では、前記デバイスを制御するためのフロントエンドドライバが動作し、前記第１ハイパーバイザ内では、第１インタフェースを介して行われる通信に対応して、前記デバイスを直接制御する第１バックエンドドライバが動作し、前記第２ハイパーバイザ内では、前記第１インタフェースと第２インタフェースを有する第２バックエンドドライバが動作し、前記仮想マシンが第１ハイパーバイザ上で動作する場合、前記フロントエンドドライバが前記第１インタフェースを介して前記第１バックエンドドライバと前記デバイスの制御に係わる通信を行うことによって、前記フロントエンドドライバが前記デバイスの制御を行い、前記仮想マシンが第２ハイパーバイザ上で動作する場合、前記フロントエンドドライバは前記第２インタフェースを介して前記第２バックエンドドライバと前記デバイスの制御に係わる通信を行い、前記第２バックエンドドライバは前記第１バックエンドドライバと前記デバイスの制御に係わる通信を行うことによって、前記フロントエンドドライバが前記デバイスの制御を行う
ことを特徴とする。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００７
【補正方法】変更
【補正の内容】
【０００７】
本発明に係わる計算機システムのデバイス制御方法は、第１プロセッサ、第１ネットワークインタフェースおよびデバイスを含む第１ハードウエアと、前記第１ハードウエア上で動作する第１ハイパーバイザとを有する移動元計算機と、第２プロセッサおよび第２ネットワークインタフェースを含む第２ハードウエアと、前記第２ハードウエア上で動作する第２ハイパーバイザを有する移動先計算機とがネットワークに接続され、前記移動元計算機内の前記第１ハイパーバイザ上で動作する、ゲストオペレーティングシステムを含む仮想マシンが、前記移動先計算機に移動して前記第２ハイパーバイザ上で動作可能な計算機システムのデバイス制御方法であって、前記仮想マシンの前記ゲストオペレーティングシステム内では、前記デバイスを制御するためのフロントエンドドライバが動作し、前記第１ハイパーバイザ内では、第１インタフェースを介して行われる通信に対応して、前記デバイスを直接制御する第１バックエンドドライバが動作し、前記仮想マシンが第１ハイパーバイザ上で動作する場合、前記フロントエンドドライバが前記第１インタフェースを介して前記第１バックエンドドライバと前記デバイスの制御に係わる通信を行うことによって、前記フロントエンドドライバが前記デバイスの制御を行い、前記仮想マシンが前記移動元計算機から前記移動先計算機に移動し、前記第２ハイパーバイザ内では、前記第１インタフェースと同じ第２インタフェースを有する第２バックエンドドライバが動作し、前記仮想マシンが第２ハイパーバイザ上で動作する場合、前記フロントエンドドライバは前記第２インタフェースを介して前記第２バックエンドドライバと前記デバイスの制御に係わる通信を行い、前記第２バックエンドドライバは前記第１バックエンドドライバと前記デバイスの制御に係わる通信を行うことによって、前記フロントエンドドライバが前記デバイスの制御を行うことを特徴とする。