説明

仮想マシン制御装置及び仮想マシン制御方法

【課題】 単一のシステムに組み込まれる複数の同一機種環境または異機種環境間の仮想マシンを管理・制御する、改善された効果的な仮想マシン制御装置及び方法を提供する。
【解決手段】 実行中の仮想マシンを制御する仮想マシン制御装置であって、
仮想マシンが実行する第1スイッチングハイパーバイザーを有する第1コンピュータデバイス、第2スイッチングハイパーバイザーを有し、前記第2スイッチングハイパーバイザーが第1スイッチングハイパーバイザーと通信する第2コンピュータデバイス、及び前記第1と第2コンピュータデバイスに接続され、前記第1と第2スイッチングハイパーバイザーでアクセス可能となる共通メモリを含む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数の同一機種環境あるいは異機種環境のCPUで構成されるコンピュータシステム(デスクトップまたはラップトッププラットフォーム等)において実行される仮想マシンの管理・制御に関し、特に、同一のコンピュータプラットフォーム(コンピュータシステム)に属している2つまたは2つ以上のコンピュータデバイス間での実行中の仮想マシンの切り替えを管理・制御する仮想マシン制御装置及び仮想マシン制御方法に関する。
【背景技術】
【0002】
コンピューティングシステムの仮想化は、最近一般的になってきている。仮想化は、オペレーティングシステム(OS)とそれで実行するアプリケーションからコンピュータハードウェアを切り離した新しい層を指している。仮想化技術は、コンピュータハードウェアが1つ以上のオペレーティングシステムの同時実行をサポートするのを可能にする。また、仮想マシンと言われるコンテナに保持された(コンテナのような収容単位ごとに保持・管理された)オペレーティングシステムとそのアプリケーションは、ハイパーバイザー(いわゆる仮想マシンモニタ(VMM)、仮想化OS)によって制御されてスケジュールされる。ハイパーバイザーは、コンピュータシステムにおいて仮想マシン(バーチャルマシン)を実現するための制御プログラムであり、複数の仮想マシンが同時にホストコンピュータで実行するのを可能にするコンピュータソフトウェア/ハードウェアプラットフォームの仮想化ソフトである。ハイパーバイザーは、例えば仮想CPU、メモリと、それで実行するアプリケーションのIOデバイスなどの一組の仮想資源を提供する。ハイパーバイザーは、ホストコンピュータの物理ハードウェアデバイスの一部、または全てを仮想マシンにマッピングして、仮想マシンに含まれる仮想デバイスを作成することができる。ハイパーバイザーは、仮想化したハードウェアデバイスを用いて仮想マシンのサービスとそれで実行する複数の仮想マシンの保護を提供することができる。
【0003】
現在の仮想化技術は、仮想OSと一組の仮想化したハードウェアデバイスを有する1つ以上の仮想マシンが同一のコンピュータアーキテクチャで実行されるようにすることができる。例えば、現在の仮想化技術を用いると、単一のx86ベースのコンピュータシステムは、1つまたは1つ以上のARMベースの、またはx86ベースの仮想マシンをホスティング(host)することができる。しかし、これは、例えばデスクトップまたはラップトップなどの単一のコンピュータシステムを構成する複数の同一機種環境または異機種環境のCPU間で(例えば、同一アーキテクチャまたは異なるアーキテクチャのCPU間で)、同一の仮想マシンを実行する動的スイッチングをサポートしない。この動的スイッチングをCPU間でサポートすることができれば、これは重要な有利性がある。例えば、期間中に仮想マシンが軽い作業負荷のみをCPUにかけた時、複数の作業負荷が統合されることができるもう1つのCPUに切り替えられることができる。これは、元のCPUが待機モードまたは節電モードに入り、システム全体の電力消費を減少することを可能にする。例えばx86とARMの異機種環境のCPUを有するハイブリッドデスクトップまたはラップトッププラットフォームでは、例えば、x86の仮想マシンは、通常ARM CPUを用いて電力消費を減少するが、CPU−bound x86のアプリケーション(例えば、マルチメディアエンコーディング/デコーディング)を実行するように要求された時、仮想マシンは、x86 CPU上で実行するように動的に切り替えられる可能性がある。
【0004】
よって、単一のプラットフォームに組み込まれる複数のコンピュータデバイス間で仮想マシンを管理・制御する新しい仮想マシン制御方法が必要となる。
【発明の概要】
【発明が解決しようとする課題】
【0005】
本発明は、単一のコンピュータシステムに組み込まれる複数の同一機種環境または異機種環境間の仮想マシンを管理・制御する、改善された効果的な仮想マシン制御装置及び仮想マシン制御方法を提供することを目的とする。
【課題を解決するための手段】
【0006】
実行中の仮想マシンを管理・制御する装置(仮想マシン制御装置)としてのコンピュータシステムは、一例として、第1コンピュータデバイス、第2コンピュータデバイスと、共有メモリを含む。第1コンピュータデバイスは、仮想マシンが実行する第1スイッチングハイパーバイザーを有する。第2コンピュータデバイスは、第2スイッチングハイパーバイザーを有し、第2スイッチングハイパーバイザーは、第1スイッチングハイパーバイザーと通信している。共通メモリは、第1と第2コンピュータデバイスに接続され、第1と第2スイッチングハイパーバイザーでアクセス可能となる。第1スイッチングハイパーバイザーは、仮想マシンの状態情報を共有メモリに保存する。前記仮想マシンを第2コンピュータデバイスに切り替えるための切り替え通知を受けた時、第1スイッチングハイパーバイザーは、仮想マシンの実行を中断する。続いて第2スイッチングハイパーバイザーは、共有メモリから仮想マシンの保存された状態情報を得て、仮想マシンの得られた状態情報に基づいて、第2コンピュータデバイスで仮想マシンの実行を再開する。
【0007】
一実施例では、その間に接続された少なくとも第1と第2コンピュータデバイスと共有メモリを含むコンピュータシステムのコンピュータデバイス間で、実行中の仮想マシンを切り替える仮想マシン制御方法が提供され、第1コンピュータデバイスは、仮想マシンが実行する第1スイッチングハイパーバイザーを有し、第2コンピュータデバイスは、第1スイッチングハイパーバイザーと通信している第2スイッチングハイパーバイザーを有する。前記仮想マシン制御方法は、下記のステップを含む。まず、仮想マシンが第1コンピュータデバイスで実行の時、実行中の仮想マシンの状態情報は、第1コンピュータデバイスの第1スイッチングハイパーバイザーで共有メモリに保存される。続いて仮想マシンを第2コンピュータデバイスに切り替えるための切り替え通知が受けられる。その後、仮想マシンの保存された状態情報が共有メモリから得られ、仮想マシンの実行が仮想マシンの得られた状態情報に基づいて、第2スイッチングハイパーバイザーによって第2コンピュータデバイスで再開される。
【0008】
この仮想マシン制御装置と仮想マシン制御方法は、有形的表現媒体に組み込まれるプログラムコードの形をとることができる。プログラムコードが機械によってロードされて実行された時、前記機械は、前記方法を実施する装置となる。
【図面の簡単な説明】
【0009】
【図1】本発明の一実施形態を説明するためのコンピュータシステムの構成を示す図である。
【図2】図1に示すコンピュータシステムの共有メモリを示す図である。
【図3】図1に示すコンピュータシステムで、実行中の仮想マシンを選択する方法の一実施形態を示す流れ図である。
【図4】図1に示すコンピュータシステムで、実行中の仮想マシンを第1コンピュータデバイスから第2コンピュータデバイスに切り替える切り替え方法を示す流れ図である。
【発明を実施するための形態】
【0010】
本発明についての目的、特徴、長所が一層明確に理解されるよう、以下に実施形態を例示し、図面を参照にしながら、詳細に説明する。
【0011】
図1は、本発明の一実施形態としての、本発明に係る装置及び方法を適用したコンピュータシステム100の構成を示す図である。コンピュータシステム100は、少なくとも2つまたは2つ以上のコンピュータデバイス110と120、共有メモリ130と、接続インターフェース140を含む。仮想マシン150は、コンピュータデバイス110とコンピュータデバイス120とにおいて実行することができ、また、コンピュータデバイス110とコンピュータデバイス120との間で実行を切り替えることができる。各コンピュータデバイスは、コンピュータデバイスの動作を制御する処理ユニットと、仮想マシン150の実行を処理するスイッチングハイパーバイザー(switching hypervisor)を更に含むことができる。コンピュータデバイス110と120のスイッチングハイパーバイザーによって作り出されて制御された仮想マシン150は、仮想中央処理装置(CPU)、メモリと、一組の仮想ハードウェアデバイスを含むことができる。例えば、図1に示されるように、コンピュータデバイス110は、コンピュータデバイス110の動作を制御する処理ユニット112と、仮想マシン150の実行を処理する第1スイッチングハイパーバイザー114を含むことができる。コンピュータデバイス120は、処理ユニット122と、第1スイッチングハイパーバイザー114と通信し、仮想マシンの実行を処理する第2スイッチングハイパーバイザー124を含むことができる。コンピュータデバイス120は、接続インターフェース140によってコンピュータデバイス110に接続される。
【0012】
コンピュータデバイス110と120は、同じまたは異なる処理ユニットタイプとハードウェアデバイスの処理ユニットを有することができる。一実施例では、例えばコンピュータデバイス110と120は、例えばx86シリーズCPUの同じ処理ユニットタイプの処理ユニットを有し、例えばWindowベースのオペレーティングシステム(OS)などの同じOSを稼動することができる。もう1つの実施例では、コンピュータデバイス110と120は、異なるOSを稼動する、異なる処理ユニットタイプの処理ユニットを有することができる。例えば、コンピュータデバイス110の処理ユニットタイプは、x86シリーズCPUであることができ、コンピュータデバイス120の処理ユニットタイプは、ARMプロセッサであることができる。また、コンピュータデバイス110のOSのタイプは、WindowベースのOSで、コンピュータデバイス120のOSのタイプは、LinuxベースのOSであることができる。
【0013】
共有メモリ130は、コンピュータデバイス110と120に接続されてアクセス可能となり、よって第1と第2スイッチングハイパーバイザー114と124でもアクセス可能となる。共有メモリ130は、実行中の仮想マシンまたは一部の物理メモリで用いられる全ての物理メモリをホスティングすることができる。注意するのは、共有メモリ130は、ソフトウェア(例えば、別々のメモリシステムの収集(collection)に共有表示(view)を提供するデーモン)で、または例えばどのタイプでも大域的にアクセス可能なメモリ構造のハードウェアで実施されることができる。コンピュータデバイス110と120は、接続インターフェース140によって共有メモリ130に接続することができる。接続インターフェース140は、第1スイッチングハイパーバイザー114が第2スイッチングハイパーバイザー124と通信するように、コンピュータデバイス110とコンピュータデバイス120に接続される。接続インターフェース140は、例えばどのタイプのバスデバイス、例えばPCI−Eバスデバイスであることができる。
【0014】
動作では、一般に仮想マシン150で実行している第1スイッチングハイパーバイザー114は、仮想マシン150の状態情報を共有メモリ130に持続的に保存することができる。仮想マシン150の状態情報は、例えば、CPUレジスタと状態、周辺機器の状態と、コンピュータデバイス110または120の仮想マシン150のメモリ内容に関する情報を含むことができる。
【0015】
CPUレジスタと状態、周辺機器の状態と、コンピュータデバイス110の仮想マシン150のメモリ内容に関する情報は、共有メモリ130の特定の記憶場所に保存されることができる。よって、仮想マシン150の実行がコンピュータデバイス120に切り替えられた時、コンピュータデバイス120は、共有メモリ130の特定の記憶場所から保存された情報を直接読み出し、仮想マシン150の状態情報を得ることができる。
【0016】
図2は、本発明の共有メモリ130の実施例を示している。図2に示されるように、例えば、メモリアドレスX、メモリアドレスYと、メモリアドレスZがCPUレジスタと状態、周辺機器の状態と、仮想マシンのメモリ内容に関する情報を含むメモリブロックの先頭(starting)アドレスをそれぞれ示すことで、コンピュータデバイス120は、例えば、共有メモリ130のメモリアドレスXから仮想マシンのCPUレジスタと状態に関する情報を得ることができる。
【0017】
実行中の仮想マシンをユーザーがコンピュータデバイス110からコンピュータデバイス120に切り替えようとした時、仮想マシン150をコンピュータデバイス120に切り替えるための切り替え通知が発動され、第1スイッチングハイパーバイザー114に伝送される。切り替え通知を受けた時、第1スイッチングハイパーバイザー114は、仮想マシン150の実行を中断し、接続インターフェース140によって切り替え通知を第2スイッチングハイパーバイザー124にパスする。切り替え通知を受けた後、第2スイッチングハイパーバイザー124は、共有メモリ130から仮想マシン150の保存された状態情報を得る。また、仮想マシンは、共有メモリ130から仮想マシン150の得られた状態情報に基づいて、コンピュータデバイス120で実行するように構成され、コンピュータデバイス120で仮想マシン150の実行を再開する。コンピュータデバイス110のCPUレジスタと状態、周辺機器の状態と、仮想マシンのメモリ内容に関する情報が共有メモリ130の特定の記憶場所に保存されることができることから(例えば図2に示すように)、コンピュータデバイス120は、共有メモリ130の特定の記憶場所から保存された情報を直接読み出し、仮想マシン150の状態情報を得ることができる。
【0018】
図3は、本発明に係る装置、システムで、実行中の仮想マシンを選択する方法の実施例の流れ図である。ユーザーがコンピュータシステム100を起動した時、コンピュータデバイス110は、まず初期設定で起動されることができる。よって、コンピュータデバイス110のハードウェア構成は、ハードウェアを起動するように初期化され(ステップS310)、続いて、そのスイッチングハイパーバイザー114が初期化される(ステップS320)。スイッチングハイパーバイザー114が初期化された後、仮想マシンを構成することができる。第1スイッチングハイパーバイザー114は、記憶媒体(例えばハードディスク、読み出し専用メモリまたはフラッシュメモリ)に保存された既定の設定、またはユーザー選択に基づいて、複数の既定の仮想マシンの設定の中でコンピュータデバイス110の実行中の仮想マシンとなるように仮想マシンを更に選ぶことができる(ステップS330)。仮想マシン150の構成が決定された後、スイッチングハイパーバイザー114は、選ばれた仮想マシンを起動し、それがコンピュータデバイス110のOSとして機能することができる(ステップS340)。注意するのは、仮想マシン150の構成は、CPUタイプ(例えば、CPUアーキテクチャ)構成と仮想マシン150の周辺構成を含むことができる。仮想マシン150のCPUタイプ構成がコンピュータデバイス110の構成と適合しない場合(例えば、仮想マシン150のCPUタイプ構成は、ARMベースのCPUアーキテクチャであり、コンピュータデバイス110のCPUタイプは、Intel x86ベースのCPUアーキテクチャである)、仮想マシンは、コンピュータデバイス110で実行されるようにコンピュータデバイス110で実行できる一組の仮想ハードウェアデバイスをシミュレートするように求められることができる。仮想マシンに用いられるハードウェアアーキテクチャがコンピュータデバイス110で用いられるのと異なる時、仮想マシン150は、命令変換(instruction translator)、または命令エミュレータを更に用いて第1コンピュータデバイス110の命令セットをシミュレートすることができるため、仮想マシン150のオペレーティングシステムとユーザーアプリケーションがホストコンピュータデバイス110で動作されることができる。
【0019】
仮想マシン150がホストコンピュータデバイス110で実行された後、本発明の仮想マシン制御方法は、実行中の仮想マシンを第1コンピュータデバイスから第1コンピュータデバイスにスイッチするように更に実施されることができる。
【0020】
図4は、本発明に係る装置、システムで、実行中の仮想マシンを第1コンピュータデバイスから第2コンピュータデバイスに切り替える、切り替え方法(仮想マシン制御方法)の実施例の流れ図である。図1に示されるように、切り替え方法は、コンピュータシステム100に用いられることができる。まず、ステップS410では、仮想マシンが第1コンピュータデバイスで現在実行されると仮定し(即ち、コンピュータデバイス)、実行中の時に常に第1スイッチングハイパーバイザー114が仮想マシンの状態情報の全てを共有メモリ130に書き込む。仮想マシン150の状態情報は、例えば、CPUレジスタと状態、周辺機器の状態と、コンピュータデバイス110の仮想マシン150のメモリ内容に関する情報を含むことができる。仮想マシン150の状態情報は、共有メモリ130の特定の記憶場所に保存されることができる。続いてステップS420では、切り替え通知が受け取られたかどうか判断される。通知が受け取られてない場合、ステップS410は、第1スイッチングハイパーバイザー114によって持続的に実施され、仮想マシンの状態情報の全てを書き込む。ユーザーが仮想マシンの実行を第2コンピュータデバイス(即ちコンピュータデバイス120)に切り替えようとした時、ユーザーは、切り替え通知を第1スイッチングハイパーバイザー114に出す。切り替え通知は、仮想マシンと、共有メモリ130の仮想マシンの状態情報のために切り替えられるコンピュータデバイスと仮想マシンの状態情報のメモリアドレスの情報を含む。切り替え通知を受けた後(ステップS420でYes)、ステップS430では、第1スイッチングハイパーバイザー114は、第2スイッチングハイパーバイザー124と通信し、第2スイッチングハイパーバイザー124に新しい仮想マシンインスタンスを準備するように知らせ、現在実行中の仮想マシンの状態情報を受ける。また、第1スイッチングハイパーバイザー114は、仮想マシンの全ての動作を中断することができる。ターゲットのコンピュータデバイス(即ち、コンピュータデバイス120)の新しい仮想マシンインスタンスが整った後、ステップS440では、第1スイッチングハイパーバイザー114は、第2スイッチングハイパーバイザー124に共有メモリ130の仮想マシンの状態情報のメモリアドレスの情報を読み込むように知らせ、前に実行の仮想マシンの状態情報を得て、ターゲットのコンピュータデバイスで、実行中の仮想マシンを再開する。
【0021】
この実施例では、仮想マシンの状態情報は、ターゲットのコンピュータデバイスにコピーされるのでなく、共有メモリ130に持続的に更新されて保存されるため、ターゲットのコンピュータデバイスは、特定の記憶場所で共有メモリ130から状態情報を読み込み、切り替え通知を受けることで、仮想マシンの実行を即時に開始することができる。
【0022】
いくつかの実施例では、コンピュータデバイス110と120は、異なる処理ユニットタイプ及び/または異なる実行OSの処理ユニットを有することができる。例えばコンピュータデバイス110の処理ユニットタイプは、x86シリーズCPUであることができ、コンピュータデバイス120の処理ユニットタイプは、ARMプロセッサであることができる。また、コンピュータデバイス110のOSのタイプは、WindowベースのOSであることができ、コンピュータデバイス120のウィンドウシステム124のOSのタイプは、LinuxベースのOSであることができる。コンピュータデバイス110の実際のハードウェア周辺機器は、コンピュータデバイス120のそれと同じでないことから、コンピュータデバイス120は、コンピュータデバイス110で用いられる特定のハードウェアデバイスに直接適合することができない可能性がある。よって、いくつかの方法が上述のハードウェアの不適合問題を克服するように提供される。
【0023】
例えば、一実施例では、コンピュータデバイス110は、プラグ可能デバイスを含み、コンピュータデバイス120は、プラグ可能デバイスに差し込みが適合するプラグ可能インターフェースを含むものとされる。この場合、切り替え通知を受けた後、プラグ可能デバイスは、まず、コンピュータデバイス110から取り除かれ、続いてプラグ可能インターフェースを介してそれによって用いられるコンピュータデバイス120に差し込まれることができる。例えば、プラグ可能デバイスは、プラグアンドプレイ機能をサポートするUSBデバイスであることができ、よって、プラグ可能インターフェースは、USBインターフェースである。
【0024】
もう1つの実施例では、コンピュータデバイス110で用いられる特定のハードウェアデバイスがコンピュータデバイス120に存在しない場合、第2スイッチングハイパーバイザー124は、コンピュータデバイス120のハードウェアデバイスから対応するハードウェアデバイスとして、特定のハードウェアデバイスと類似した機能を有するハードウェアデバイスを更に選ぶことができる。例えば、マウスデバイスがコンピュータデバイス110で用いられているが、コンピュータデバイス120に存在していない場合、第2スイッチングハイパーバイザー124は、マウスデバイス(例えばタッチパネル)と類似した機能のハードウェアデバイスを選ぶことができる。
【0025】
もう1つの実施例では、コンピュータデバイス110で用いられる特定のハードウェアデバイスがコンピュータデバイス120に存在せず、且つ対応するハードウェアデバイスがない場合、第2スイッチングハイパーバイザー124は、ソフトウェアモジュールで特定のハードウェアデバイスを実装するか、または第2スイッチングハイパーバイザー124は、第1スイッチングハイパーバイザー114と更に通信して、コンピュータデバイス110で特定のハードウェアデバイスの元の設定を用い、続いてコンピュータデバイス110と120間の接続インターフェース140を介して仮想デバイスを用いて仮想デバイスを設定することができる。
【0026】
注意するのは、説明のために、2つのコンピュータデバイスのみが上述の実施例の仮想マシンの実行を切り替えるのに用いられるが、本発明はこれを限定するものではない。言い換えれば、2つ以上のコンピュータデバイスは共有メモリの直接アクセスによって、実行中の仮想マシンの状態情報を共有することができ、続いて本発明の切り替え方法(仮想マシン制御方法)を用いて仮想マシンを異なるコンピュータデバイスに切り替えることができる。
【0027】
要約すると、コンピュータデバイス間で、実行中の仮想マシンを切り替える本発明に係る装置及び方法によれば、特に同一機種環境と異機種環境のCPUで構成されるデスクトップまたはラップトッププラットフォームで実行中の仮想マシンの管理に複数の仮想マシンインスタンスが同時に動作されることができる。仮想マシンは、命令変換によって同じCPUシステム(例えば、同じCPUアーキテクチャ)を有する装置上で、または異なるCPUシステム(例えば、異なるCPUアーキテクチャ)を有するコンピュータシステムでホスティングされることができる。本発明のスイッチングハイパーバイザーを用いれば、仮想マシンの必要不可欠(essential)な状態(例えば、CPUレジスタの状態)は、関連する複数のコンピュータデバイスでアクセス可能な共有メモリに保存されることができるため、仮想マシンを再開する待機時間が短くなる。即ち、スイッチングハイパーバイザーは、1つのコンピュータデバイスからもう1つのコンピュータデバイスにそれらをコピーすることなく、共有メモリによって仮想マシンの状態を転送することができ、仮想マシンが同一機種環境または異機種環境のコンピュータデバイスで実行されるように動的に切り替えられることができて、リアルタイム、またはほぼリアルタイムで同じプラットフォームに属しているコンピュータデバイス間で転送することができる。
【0028】
本発明に係る仮想マシン制御装置と仮想マシン制御方法(切り替え方法)、または本発明の特定の態様または部分は、例えばフレキシブルディスク、CD−ROM 、ハードディスク、または他の機械読み取り可能な記憶媒体などの有形的表現媒体に組み込まれるプログラムコードの形をとることができる。プログラムコードは、例えばコンピュータなどの機械によってロードされて実行された時、前記機械は、それによって前記方法を実施する装置となる。前記方法は、光ファイバーを通して、またはその他の伝送形態を通して、例えば電気配線またはケーブルなどのいくつかの伝送媒体を介して伝送されたプログラムコードの形で組み込まれることもできる。例えばコンピュータなどの機械にプログラムコードが受信されてロードされ、実行された時、前記機械は、上述の方法を実施する装置となる。汎用プロセッサに実施された時、プログラムコードは、プロセッサと組み合わせられ、特定用途向けロジック回路に類似して動作する固有の装置を提供する。
【0029】
以上、本発明の好適な実施例を例示したが、これは本発明を限定するものではなく、本発明の精神及び範囲を逸脱しない限りにおいては、当業者であれば行い得る少々の変更や修飾を付加することが可能である。従って、本発明が請求する保護範囲は、特許請求の範囲を基準とする。
【符号の説明】
【0030】
100 コンピュータシステム
110 コンピュータデバイス
112 処理ユニット
114 第1スイッチングハイパーバイザー
120 コンピュータデバイス
122 処理ユニット
124 第2スイッチングハイパーバイザー
130 共有メモリ
140 接続インターフェース
150 仮想マシン

【特許請求の範囲】
【請求項1】
実行中の仮想マシンを制御する仮想マシン制御装置であって、
第1スイッチングハイパーバイザーを有する第1コンピュータデバイス、
前記第1スイッチングハイパーバイザーと通信可能な第2スイッチングハイパーバイザーを有する第2コンピュータデバイス、及び
前記第1と第2コンピュータデバイスに接続され、前記第1と第2スイッチングハイパーバイザーでアクセス可能となる共通メモリを含み、
前記第1スイッチングハイパーバイザーは、当該第1スイッチングハイパーバイザーで仮想マシンを実行している時、当該仮想マシンの状態情報を前記共有メモリに保存し、前記仮想マシンを前記第2コンピュータデバイスで実行するように切り替えるための切り替え通知を受けた時、前記仮想マシンの実行を中断し、
前記第2スイッチングハイパーバイザーは、前記共有メモリから前記仮想マシンの前記保存された状態情報を得て、前記仮想マシンの前記得られた状態情報に基づいて、前記第2コンピュータデバイスで前記仮想マシンの実行を再開する仮想マシン制御装置。
【請求項2】
前記第2スイッチングハイパーバイザーは、当該第2スイッチングハイパーバイザーで仮想マシンを実行している時であって前記仮想マシンの状態情報が更新された時は、前記仮想マシンの状態情報を前記共有メモリに更に持続的に保存する請求項1に記載の仮想マシン制御装置。
【請求項3】
前記仮想マシンの状態情報は、CPUレジスタと状態、周辺機器の状態と、前記第1コンピュータデバイスまたは前記第2コンピュータデバイスの前記仮想マシンのメモリ内容に関する情報を少なくとも含む請求項1に記載の仮想マシン制御装置。
【請求項4】
前記CPUレジスタと状態、前記周辺機器の状態と、前記第1コンピュータデバイスの前記仮想マシンのメモリ内容に関する情報は、前記共有メモリの特定の記憶場所に保存され、前記第2コンピュータデバイスは、そこから前記保存された情報を読み出し、前記仮想マシンの状態情報を得る請求項3に記載の仮想マシン制御装置。
【請求項5】
前記第1コンピュータデバイスと、前記第1スイッチングハイパーバイザーを前記第2スイッチングハイパーバイザーに通信させる前記第2コンピュータデバイスに接続された接続インターフェースを更に含む請求項1に記載の仮想マシン制御装置。
【請求項6】
前記接続インターフェースのユニットは、PCI−Eバスを含む請求項5に記載の仮想マシン制御装置。
【請求項7】
前記第1スイッチングハイパーバイザーは、既定の設定またはユーザー選択に基づいて、複数の既定の仮想マシンの設定の中で前記第1コンピュータデバイスの前記実行中の仮想マシンとなるように仮想マシンの設定を更に選ぶ請求項1に記載の仮想マシン制御装置。
【請求項8】
前記仮想マシンは、前記仮想マシンに用いられるハードウェアアーキテクチャが前記第1コンピュータデバイスで用いられるのと異なる時、前記第1コンピュータデバイスの命令セットをシミュレートする、命令変換または命令エミュレータを更に用いる請求項1に記載の仮想マシン制御装置。
【請求項9】
前記第1コンピュータデバイスはARMベースのコンピュータデバイスであり、前記第2コンピュータデバイスはx86ベースのコンピュータデバイスであるか、あるいはまた、前記第1コンピュータデバイスはx86ベースのコンピュータデバイスであり、前記第2コンピュータデバイスはARMベースのコンピュータデバイスであるか、いずれかである請求項8に記載の仮想マシン制御装置。
【請求項10】
前記第1コンピュータデバイスは、プラグ可能デバイスを更に含み、前記第2コンピュータデバイスは、前記プラグ可能デバイスに差し込みが適合するプラグ可能インターフェースを含み、前記切り替え通知を受けた後、前記プラグ可能デバイスは、前記第1コンピュータデバイスから更に取り除かれ、前記プラグ可能インターフェースを介してそれによって用いられる前記コンピュータデバイスに差し込まれる請求項9に記載の仮想マシン制御装置。
【請求項11】
特定のハードウェアデバイスが前記第2コンピュータデバイスに存在しない場合、前記第2スイッチングハイパーバイザーは、対応するハードウェアデバイスとして前記特定のハードウェアデバイスと類似した機能を有するハードウェアデバイスを更に選ぶか、またはソフトウェアモジュールで前記特定のハードウェアデバイスを実装する請求項9に記載の仮想マシン制御装置。
【請求項12】
特定のハードウェアデバイスが前記第2コンピュータデバイスに存在しない場合、前記第2スイッチングハイパーバイザーは、前記第1スイッチングハイパーバイザーと更に通信して、前記第1と第2コンピュータデバイス間の接続インターフェースを介して、前記第1コンピュータデバイスで前記特定のハードウェアデバイスの元の設定を用いて仮想デバイスを設定する請求項9に記載の仮想マシン制御装置。
【請求項13】
前記第1と第2コンピュータデバイスは、異機種環境のCPUを有する請求項1に記載の仮想マシン制御装置。
【請求項14】
第1スイッチングハイパーバイザーを有する第1コンピュータデバイスと前記第1スイッチングハイパーバイザーと通信可能な第2スイッチングハイパーバイザーを有する第2コンピュータデバイスとを少なくとも含む複数のコンピュータデバイスと、共有メモリとを含むコンピュータシステムで、実行中の仮想マシンを切り替える仮想マシン制御方法であって、
前記仮想マシンが前記第1コンピュータデバイスで実行されている時、前記実行中の仮想マシンの状態情報を前記第1コンピュータデバイスの前記第1スイッチングハイパーバイザーが前記共有メモリに保存するステップ、
前記仮想マシンを前記第2コンピュータデバイスに切り替えるための切り替え通知を受けるステップ、前記第1スイッチングハイパーバイザーによって前記仮想マシンの実行が中断されるステップ、及び
前記第2スイッチングハイパーバイザーによって前記共有メモリから前記仮想マシンの保存された状態情報が獲得され、前記仮想マシンの前記獲得された状態情報に基づいて、前記第2コンピュータデバイスの前記第2スイッチングハイパーバイザーにより前記第2コンピュータデバイスで前記仮想マシンの実行が再開されるステップ
を含む仮想マシン制御方法。
【請求項15】
前記仮想マシンの状態情報が更新された時、前記仮想マシンの状態情報を前記共有メモリに持続的に保存するステップを更に含む請求項14に記載の仮想マシン制御方法。
【請求項16】
前記仮想マシンの状態情報は、CPUレジスタと状態、周辺機器の状態と、前記第1コンピュータデバイスまたは前記第2コンピュータデバイスの前記仮想マシンのメモリ内容に関する情報を少なくとも含む請求項14に記載の仮想マシン制御方法。
【請求項17】
前記CPUレジスタと状態、前記周辺機器の状態と、前記第1コンピュータデバイスの前記仮想マシンのメモリ内容に関する情報は、前記共有メモリの特定の記憶場所に保存され、前記第2コンピュータデバイスは、そこから前記保存された情報を読み出し、前記仮想マシンの状態情報を得る請求項16に記載の仮想マシン制御方法。
【請求項18】
前記第1スイッチングハイパーバイザーによって、既定の設定またはユーザー選択に基づいて、複数の既定の仮想マシンの設定の中で前記第1コンピュータデバイスの前記実行中の仮想マシンとなるように仮想マシンの設定を更に選ぶステップを更に含む請求項14に記載の仮想マシン制御方法。
【請求項19】
前記仮想マシンは、前記仮想マシンに用いられるハードウェアアーキテクチャが前記第1コンピュータデバイスで用いられるのと異なる時、前記第1コンピュータデバイスの命令セットをシミュレートする、命令変換または命令エミュレータを更に用いる請求項14に記載の仮想マシン制御方法。
【請求項20】
前記第1コンピュータデバイスは、プラグ可能デバイスを更に含み、前記第2コンピュータデバイスは、前記プラグ可能デバイスに差し込みが適合するプラグ可能インターフェースを含み、前記切り替え通知を受けた後、前記プラグ可能デバイスは、前記第1コンピュータデバイスから更に取り除かれ、前記プラグ可能インターフェースを介してそれによって用いられる前記コンピュータデバイスに差し込まれる請求項14に記載の仮想マシン制御方法。
【請求項21】
特定のハードウェアデバイスが前記第2コンピュータデバイスに存在しない場合、前記第2スイッチングハイパーバイザーは、対応するハードウェアデバイスとして前記特定のハードウェアデバイスと類似した機能を有するハードウェアデバイスを更に選ぶか、またはソフトウェアモジュールで前記特定のハードウェアデバイスを実装する請求項14に記載の仮想マシン制御方法。
【請求項22】
前記第1と第2コンピュータデバイスは、異機種環境のCPUを有する請求項14に記載の仮想マシン制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公開番号】特開2011−100431(P2011−100431A)
【公開日】平成23年5月19日(2011.5.19)
【国際特許分類】
【出願番号】特願2009−276432(P2009−276432)
【出願日】平成21年12月4日(2009.12.4)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Linux
【出願人】(599064731)インスティチュート フォー インフォメイション インダストリ (24)
【氏名又は名称原語表記】INSTITUTE FOR INFORMATION INDUSTRY
【Fターム(参考)】