(57)【要約】  第１の実計算機で仮想計算機の識別子を検出し、検出した識別子ごとに、仮想計算機と実ハードウェアデバイスのデバイスドライバとの通信を検出、検出の結果を基にして、第２の実計算機の実ハードウェアデバイスを予約、予約の結果から移送先となる第２の計算機を決定する。
2009069385.tif 000002
【特許請求の範囲】
【請求項１】
仮想計算機の使用するデバイスを検出するデバイス検出装置であって、
前記仮想計算機が動作する実計算機で構成され、
前記仮想計算機を区別するための識別子を検出する仮想計算機識別子検出手段と、
前記仮想計算機からデバイスドライバへの通信を検出するデバイスアクセス検出手段と、
前記検出した結果を保存するデバイス情報記憶部とを有するデバイス検出装置。
【請求項２】
仮想計算機の使用するデバイスを検出するデバイス検出装置であって、
ネットワークに接続された複数の実計算機で構成され、
前記複数の実計算機のうち第１の実計算機は、
前記仮想計算機を区別するための識別子を検出する仮想計算機識別子検出手段と、
前記仮想計算機からデバイスドライバへの通信を検出するデバイスアクセス検出手段と、
前記検出した結果を保存するデバイス情報記憶部と、
通信手段とを有し、
前記複数の実計算機のうち第２の実計算機は、
通信手段と、
前記第２の実計算機の備える実ハードウェアデバイスを記載した実ハードウェアデバイス情報記憶部と、
前記第１の実計算機で検出した結果を保存するデバイス情報記憶部と、
前記第２の実計算機の備える実ハードウェアデバイスを予約するデバイス予約手段とを有するデバイス検出装置。
【請求項３】
請求項１に記載のデバイス検出装置において、
デバイスドライバへの通信を検出した結果から実ハードウェアデバイスに関し、仮想計算機の必要とする性能を計算するデバイスアクセス統計手段を有することを特徴とするデバイス検出装置。
【請求項４】
仮想計算機の使用するデバイスを検出するデバイス検出装置であって、
ネットワークに接続された複数の実計算機で構成され、
前記複数の実計算機のうち第１の実計算機は、
前記仮想計算機を区別するための識別子を検出する仮想計算機識別子検出手段と、
前記仮想計算機からデバイスドライバへの通信を検出するデバイスアクセス検出手段と、
前記検出した結果を保存するデバイス情報記憶部と、
デバイスドライバへの通信を検出した結果から実ハードウェアデバイスに関し、仮想計算機の必要とする性能を計算するデバイスアクセス統計手段と、
通信手段とを有し、
前記複数の実計算機のうち第２の実計算機は、
通信手段と、
前記第２の実計算機の備える実ハードウェアデバイスの性能を計測するデバイス資源監視手段と、
前記第１の実計算機で検出した結果を保存するデバイス情報記憶部と、
前記第２の実計算機の備える実ハードウェアデバイスを予約するデバイス予約手段とを有するデバイス検出装置。
【請求項５】
請求項３に記載のデバイス検出装置において、
実計算機の実ハードウェアデバイスの代替となりうる実ハードウェアデバイスを提示する代替デバイスライブラリ部を有することを特徴とするデバイス検出装置。
【請求項６】
仮想計算機の使用するデバイスを検出するデバイス検出装置であって、
ネットワークに接続された複数の実計算機で構成され、
前記複数の実計算機のうち第１の実計算機は、
前記仮想計算機を区別するための識別子を検出する仮想計算機識別子検出手段と、
前記仮想計算機からデバイスドライバへの通信を検出するデバイスアクセス検出手段と、
前記検出した結果を保存するデバイス情報記憶部と、
通信手段と、
デバイスドライバへの通信を検出した結果から実ハードウェアデバイスに関し、仮想計算機の必要とする性能を計算するデバイスアクセス統計手段と、
実計算機の実ハードウェアデバイスの代替となりうる実ハードウェアデバイスを提示する代替デバイスライブラリ部とを有し、
前記複数の実計算機のうち第２の実計算機は、
通信手段と、
前記第２の実計算機の備える実ハードウェアデバイスの性能を計測するデバイス資源監視手段と、
前記第１の実計算機で検出した結果を保存するデバイス情報記憶部と、
前記第２の実計算機の備える実ハードウェアデバイスを予約するデバイス予約手段とを有するデバイス検出装置。
【請求項７】
請求項４に記載のデバイス検出装置において、
前記第２の実計算機の実ハードウェアデバイスの代替となりうる実ハードウェアデバイスを提示する代替デバイスライブラリ部を有することを特徴とするデバイス検出装置。
【請求項８】
仮想計算機の使用するデバイスを検出するデバイス検出装置であって、
ネットワークに接続された複数の実計算機で構成され、
前記複数の実計算機のうち第１の実計算機は、
前記仮想計算機を区別するための識別子を検出する仮想計算機識別子検出手段と、
前記仮想計算機からデバイスドライバへの通信を検出するデバイスアクセス検出手段と、
前記検出した結果を保存するデバイス情報記憶部と、
通信手段と、
デバイスドライバへの通信を検出した結果から実ハードウェアデバイスに関し、仮想計算機の必要とする性能を計算するデバイスアクセス統計手段とを有し、
前記複数の実計算機のうち第２の実計算機は、
通信手段と、
実ハードウェアデバイスの代替となりうる実ハードウェアデバイスを提示する代替デバイスライブラリ部と、
前記第２の実計算機の備える実ハードウェアデバイスの性能を計測するデバイス資源監視手段と、
前記第１の実計算機で検出した結果を保存するデバイス情報記憶部と、
前記第２の実計算機の備える複数の実ハードウェアデバイスのうち、前記デバイス資源監視手段における計測結果と、前記デバイス情報記憶部に保存された結果とに基づく性能を具備する実ハードウェアデバイスを予約するデバイス予約手段とを有するデバイス検出装置。
【請求項９】
仮想計算機の使用するデバイスを検出するデバイス検出方法であって、
前記仮想計算機が動作する実計算機にて、
前記仮想計算機を区別するための識別子を検出するステップと、
前記仮想計算機からデバイスドライバへの通信を検出するステップと、
前記検出した結果を保存するステップとを有するデバイス検出方法。
【請求項１０】
仮想計算機の使用するデバイスを検出するデバイス検出方法であって、
ネットワークに接続された複数の実計算機のうち第１の実計算機にて、
前記仮想計算機を区別するための識別子を検出するステップと、
前記仮想計算機からデバイスドライバへの通信を検出するステップと、
前記検出した結果を保存するステップと、
通信ステップとを有し、
前記複数の実計算機のうち第２の実計算機にて、
通信ステップと、
前記第２の実計算機の備える実ハードウェアデバイスを記載するステップと、
前記第１の実計算機で検出した結果を保存するステップと、
第２の実計算機の備える実ハードウェアデバイスを予約するステップとを有するデバイス検出方法。
【請求項１１】
請求項９に記載のデバイス検出方法において、
デバイスドライバへの通信を検出した結果から実ハードウェアデバイスに関し、仮想計算機の必要とする性能を計算するステップを有することを特徴とするデバイス検出方法。
【請求項１２】
仮想計算機の使用するデバイスを検出するデバイス検出方法であって、
ネットワークに接続された複数の実計算機のうち第１の実計算機にて、
前記仮想計算機を区別するための識別子を検出するステップと、
前記仮想計算機からデバイスドライバへの通信を検出するステップと、
前記検出した結果を保存するステップと、
通信ステップと、
デバイスドライバへの通信を検出した結果から実ハードウェアデバイスに関し、仮想計算機の必要とする性能を計算するステップとを有し、
前記複数の実計算機のうち第２の実計算機にて、
通信ステップと、
前記第２の実計算機の備える実ハードウェアデバイスの性能を計測するステップと、
前記第１の実計算機で検出した結果を保存するステップと、
第２の実計算機の備える実ハードウェアデバイスを予約するステップとを有するデバイス検出方法。
【請求項１３】
請求項１１に記載のデバイス検出方法において、
実計算機の実ハードウェアデバイスの代替となりうる実ハードウェアデバイスを提示するステップを有することを特徴とするデバイス検出方法。
【請求項１４】
仮想計算機の使用するデバイスを検出するデバイス検出方法であって、
ネットワークに接続された複数の実計算機のうち第１の実計算機にて、
前記仮想計算機を区別するための識別子を検出するステップと、
前記仮想計算機からデバイスドライバへの通信を検出するステップと、
前記検出した結果を保存するステップと、
通信ステップと、
デバイスドライバへの通信を検出した結果から実ハードウェアデバイスに関し、仮想計算機の必要とする性能を計算するステップと、
実計算機の実ハードウェアデバイスの代替となりうる実ハードウェアデバイスを提示するステップとを有し、
ネットワークに接続された複数の実計算機のうち第２の実計算機にて、
通信ステップと、
前記第２の実計算機の備える実ハードウェアデバイスの性能を計測するステップと、
前記第１の実計算機で検出した結果を保存するステップと、
第２の実計算機の備える実ハードウェアデバイスを予約するステップとを有するデバイス検出方法。
【請求項１５】
請求項１２に記載のデバイス検出方法において、
第２の実計算機の実ハードウェアデバイスの代替となりうる実ハードウェアデバイスを提示するステップを有することを特徴とするデバイス検出方法。
【請求項１６】
仮想計算機の使用するデバイスを検出するデバイス検出方法であって、
ネットワークに接続された複数の実計算機のうち第１の実計算機にて、
前記仮想計算機を区別するための識別子を検出するステップと、
前記仮想計算機からデバイスドライバへの通信を検出するステップと、
前記検出した結果を保存するステップと、
通信ステップと、
デバイスドライバへの通信を検出した結果から実ハードウェアデバイスに関し、仮想計算機の必要とする性能を計算するステップとを有し、
前記複数の実計算機のうち第２の実計算機にて、
通信ステップと、
実ハードウェアデバイスの代替となりうる実ハードウェアデバイスを提示するステップと、
前記第２の実計算機の備える実ハードウェアデバイスの性能を計測するステップと、
前記第１の実計算機で検出した結果を保存するステップと、
前記第２の実計算機の備える複数の実ハードウェアデバイスのうち、前記計測結果と、前記第１の実計算機で検出した結果とに基づく性能を具備する実ハードウェアデバイスを予約するステップとを有するデバイス検出方法。
【請求項１７】
仮想計算機の使用するデバイスを検出するためのプログラムであって、
仮想計算機が動作する実計算機に、
前記仮想計算機を区別するための識別子を検出する処理と、
前記仮想計算機からデバイスドライバへの通信を検出する処理と、
前記検出した結果を保存する処理とを実行させるプログラム。
【請求項１８】
仮想計算機の使用するデバイスを検出するためのプログラムであって、
ネットワークに接続された複数の実計算機のうち第１の実計算機に、
前記仮想計算機を区別するための識別子を検出する処理と、
前記仮想計算機からデバイスドライバへの通信を検出する処理と、
前記検出した結果を保存する処理と、
通信処理とを実行させ、
前記複数の実計算機のうち第２の実計算機に、
通信処理と、
前記第２の実計算機の備える実ハードウェアデバイスを記載する処理と、
前記第１の実計算機で検出した結果を保存する処理と、
第２の実計算機の備える実ハードウェアデバイスを予約する処理とを実行させるプログラム。
【請求項１９】
請求項１７に記載のプログラムにおいて、
デバイスドライバへの通信を検出した結果から実ハードウェアデバイスに関し、仮想計算機の必要とする性能を計算する処理を実行させることを特徴とするプログラム。
【請求項２０】
仮想計算機の使用するデバイスを検出するためのプログラムであって、
ネットワークに接続された複数の実計算機のうち第１の実計算機に、
前記仮想計算機を区別するための識別子を検出する処理と、
前記仮想計算機からデバイスドライバへの通信を検出する処理と、
前記検出した結果を保存する処理と、
通信処理と、
デバイスドライバへの通信を検出した結果から実ハードウェアデバイスに関し、仮想計算機の必要とする性能を計算する処理とを実行させ、
前記複数の実計算機のうち第２の実計算機に、
通信処理と、
前記第２の実計算機の備える実ハードウェアデバイスの性能を計測する処理と、
前記第１の実計算機で検出した結果を保存する処理と、
第２の実計算機の備える実ハードウェアデバイスを予約する処理とを実行させるプログラム。
【請求項２１】
請求項１９に記載のプログラムにおいて、
実計算機の実ハードウェアデバイスの代替となりうる実ハードウェアデバイスを提示する処理を実行させることを特徴とするプログラム。
【請求項２２】
仮想計算機の使用するデバイスを検出するためのプログラムであって、
ネットワークに接続された複数の実計算機のうち第１の実計算機に、
前記仮想計算機を区別するための識別子を検出する処理と、
前記仮想計算機からデバイスドライバへの通信を検出する処理と、
前記検出した結果を保存する処理と、
通信処理と、
デバイスドライバへの通信を検出した結果から実ハードウェアデバイスに関し、仮想計算機の必要とする性能を計算する処理と、
実計算機の実ハードウェアデバイスの代替となりうる実ハードウェアデバイスを提示する処理とを実行させ、
ネットワークに接続された複数の実計算機のうち第２の実計算機に、
通信処理と、
前記第２の実計算機の備える実ハードウェアデバイスの性能を計測する処理と、
前記第１の実計算機で検出した結果を保存する処理と、
第２の実計算機の備える実ハードウェアデバイスを予約する処理とを実行させるプログラム。
【請求項２３】
請求項２０に記載のプログラムにおいて、
第２の実計算機の実ハードウェアデバイスの代替となりうる実ハードウェアデバイスを提示する処理を実行させることを特徴とするプログラム。
【請求項２４】
仮想計算機の使用するデバイスを検出するためのプログラムであって、
ネットワークに接続された複数の実計算機のうち第１の実計算機に、
前記仮想計算機を区別するための識別子を検出する処理と、
前記仮想計算機からデバイスドライバへの通信を検出する処理と、
前記検出した結果を保存する処理と、
通信処理と、
デバイスドライバへの通信を検出した結果から実ハードウェアデバイスに関し、仮想計算機の必要とする性能を計算する処理とを実行させ、
前記複数の実計算機のうち第２の実計算機に、
通信処理と、
実ハードウェアデバイスの代替となりうる実ハードウェアデバイスを提示する処理と、
前記第２の実計算機の備える実ハードウェアデバイスの性能を計測する処理と、
前記第１の実計算機で検出した結果を保存する処理と、
前記第２の実計算機の備える複数の実ハードウェアデバイスのうち、前記計測結果と、前記第１の実計算機で検出した結果とに基づく性能を具備する実ハードウェアデバイスを予約する処理とを実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想計算機をマイグレーションする装置、方法及びプログラムに関し、特に、仮想計算機の使用する実ハードウェアデバイスを検出するデバイス検出装置、デバイス検出方法及びプログラムに関する。
【背景技術】
【０００２】
実ハードウェアで構成される複数の計算機間で、仮想計算機を移送するマイグレーション技術がある。仮想計算機をマイグレーションする場合、仮想計算機が使用する実ハードウェアデバイスと、その性能を検知する必要がある。検知した結果を活用して、マイグレーション先となりうる実ハードウェアで構成される計算機に対する、マイグレーションの可否を決定できる。マイグレーションの可否の決定方法については、例えば、特開２００１−１３４５４１号公報（以下、特許文献１と称する）に記載された方法がある。【０００３】
仮想計算機の使用する実ハードウェアデバイスを検知する装置、方法およびプログラムの一例が、特許第３９３３５８７号公報（以下、特許文献２と称する）に記載されている。図１に示すように、この装置は、第１の実ハードウェアデバイス２１１０を備える第１の計算機２１０１と、第１の計算機２１０１に通信路を通して接続された第２の実ハードウェアデバイス２１２９を備える第２の計算機２１２１との間で、カーネル２１０２を移送する装置である。【０００４】
第１の計算機２１０１は、第１のハードウェアデバイス２１１０を制御する第１のデバイスドライバ２１０７の状態を記憶する第１の状態管理表２１０４と、カーネル２１０２からデバイスドライバ２１０７への第１のアクセスの内容を監視し、その監視された第１のアクセスに基づいて、第１の状態管理表２１０４に記憶される第１のデバイスドライバの状態に変化が生じたときに、第１の状態管理表２１０４を、あるデバイスの状態を他のデバイスと同一の状態にするために、その変化に応じて更新する第１の状態管理部２１０３と、カーネル２１０２のコンテキストを、通信路を通して第２の計算機２１２１に送信する送信手段を有する。第２の計算機２１２１は、通信路を通して受信したカーネルコンテキストに基づいて、第２の計算機２１２１においてカーネル２１０２を復元する手段と、カーネル２１０２が認識している実ハードウェアデバイス２１１０の種類と、第２の計算機が備える第２の実ハードウェアデバイス２１２９の種類と、第２の実ハードウェアデバイス２１２９を制御する第２のデバイスドライバ２１２７の状態を記憶する第２の状態管理表２１２４と、復元された前記カーネルから第２のデバイスドライバへ第２のアクセスの内容を監視し、その監視された第２のアクセスの内容に基づいて、第２の状態管理表２１２４に記憶される第２のデバイスドライバ２１２７の状態に変化が生じたときに、第２の状態管理表２１２４を、あるデバイスの状態を他のデバイスと同一の状態にするために、その変化した状態に応じて更新する第２の状態管理部２１２３を有する。【０００５】
第１の状態管理部２１０３は、送信手段が、カーネル２１０２のコンテキストを第２の計算機２１２１へ送信する場合、カーネル２１０２を停止し、停止後、第１の状態管理表２１０４の内容を前記第２の計算機へ通信路を通して送信し、第２の状態管理表２１２４は、通信路を通して受信した第１の状態管理表２１０４の内容に基づいて、第２のデバイスドライバ２１２７により制御される第２の実ハードウェアデバイス２１２９の状態を、第１のデバイスドライバ２１０７により制御される第２の実ハードウェアデバイス２１２９と同一の状態に復元し、カーネル２１０２が認識している実ハードウェア２１１０の種類と、第２の計算機２１２１が備える第２の実ハードウェアデバイス２１２９の種類とがお互いに異なる場合、第２の状態管理表２１２４に基づいて第２の実ハードウェアデバイス２１２９に適合するように第２のアクセスの内容を変換して、第２の実ハードウェアデバイス２１２９へアクセスさせる。【０００６】
仮想計算機の使用する実ハードウェアデバイスを検知する装置、方法およびプログラムの更なる一例が、特開平２−１０９１４８号公報（以下、特許文献３と称する）に記載されている。図２に示すように、この方法は、測定対象装置または測定対象装置を制御する上位装置内に資源使用率測定装置３１１７，３１１８，３１１４を設け、サービスプロセッサ３１１２内に資源使用率警告表示装置３１１５を設け、測定装置３１１７，３１１８，３１１４から警告表示装置３１１５内に測定対象の装置番号を記憶する記憶装置である装置番号記憶装置を設け、システム運用者がサービスプロセッサの対人インターフェースを介して自由に設定可能とすることにより、当該システムの性能限界検出のために真に必要な監視対象に限定した測定対象装置の指定を可能とする。【０００７】
仮想計算機の使用する実ハードウェアデバイスを検知する装置、方法およびプログラムの更なる一例が、特開２００７−２００３４６号公報（以下、特許文献４と称する）に記載されている。図３に示すように、この方法は、物理計算機を複数の論理区画（以下、ＬＰＡＲと称する）に分割し、各ＬＰＡＲ４２１０，・・・，４２１ｍ上でそれぞれＯＳ４２２０，・・・，４２２ｍが動作し、各ＬＰＡＲ４２１０，・・・，４２１ｍに対する物理計算機の資源の割当を制御するハイパバイザ（割当手段）４２００を有する仮想計算機システムであって、仮想計算機システムの制御動作にかかわる１つ、または、複数の設定を入力するユーザ・インターフェースと、該ユーザ・インターフェースから入力された設定に従って、各ＬＰＡＲ４２１０，・・・，４２１ｍ上のＯＳ４２２０，・・・，４２２ｍの負荷計測する負荷計測部４４００，・・・，４４０ｍと、該負荷計測部４４００，・・・，４４０ｍによって計測された各ＬＰＡＲ４２１０，・・・，４２１ｍ上のＯＳ４２２０，・・・，４２２ｍの負荷に基づいて、各ＬＰＡＲに割り当てる計算機資源の割当率を決定し、該割当率がこれまで割り当ててきた割当率と異なる場合は、ハイパバイザに対し、割当率の変更を指示する（割当率変更）適応制御部４３００を有し、ハイパバイザ４２００は、該適応制御部４３００からの指示に従って各ＬＰＡＲ４２１０，・・・，４２１ｍに対する計算機資源の割当率を動的に変更する手段を設ける。【０００８】
しかしながら、上述したような技術においては下記のような問題点がある。【０００９】
（１）特許文献２，３に記載されたものにおいては、特許文献２に記載された状態管理部は、実ハードウェアデバイスを備える計算機と１対１に対応するためであり、また、特許文献３に記載されたサービスプロセッサは、システム全体の資源の使用率のみを監視の対象としているためであるため、実ハードウェアデバイスを備える１台の計算機に、複数の仮想計算機がある場合は考慮されていない。【００１０】
（２）特許文献２に記載されたものにおいては、状態管理部がデバイスの種類のみを識別の対象としているため、カーネルが必要とする実ハードウェアデバイス性能を、計算機が備える実ハードウェアデバイスで満たさない場合は考慮されていない。【００１１】
（３）特許文献４に記載されたものにおいては、各仮想計算機（ＯＳ）に負荷計測部があるため、マイグレーションを実施するときに、負荷計測部も移送しなくてはならず、さらに、計算資源の割当率の変更を指示する適応制御部が、移送先の実計算機と移送前の実計算機の間で、互換性をもつ必要がある。そのため、仮想計算機（ＯＳ）に対してマイグレーションを実施するときの、通信負荷や負荷情報に関する実計算機とのインターフェースを考慮していない。
【発明の開示】
【００１２】
本発明の第１の目的は、実ハードウェアデバイスで構成される計算機で、複数の仮想計算機が動作する場合において、仮想計算機ごとに、マイグレーション先として適切な実ハードウェアデバイスで構成される計算機を決定できるデバイス検出装置、デバイス検出方法及びプログラムを提供することである。
【００１３】
本発明の第２の目的は、第１の目的を達成するため、仮想計算機ごとに、前記仮想計算機が使用する実ハードウェアデバイスを検出できるデバイス検出装置、デバイス検出方法及びプログラムを提供することにある。
【００１４】
本発明の第３の目的は、第１の目的を達成するため、実ハードウェアデバイスに関し、仮想計算機が必要とする性能を測定できるデバイス検出装置、デバイス検出方法及びプログラムを提供することにある。
【００１５】
本発明の第４の目的は、第１の目的を達成するため、実ハードウェアデバイスに関し、マイグレーション先の計算機で前記仮想計算機が必要とする性能を満たさない場合であっても、代替実ハードウェアデバイスを予約することで、仮想計算機が移送先の計算機で動作できる可能性を高めるデバイス検出装置、デバイス検出方法及びプログラムを提供することにある。
【００１６】
上記目的を達成するために本発明は、
仮想計算機の使用するデバイスを検出するデバイス検出装置であって、
前記仮想計算機が動作する実計算機で構成され、
前記仮想計算機を区別するための識別子を検出する仮想計算機識別子検出手段と、
前記仮想計算機からデバイスドライバへの通信を検出するデバイスアクセス検出手段と、
前記検出した結果を保存するデバイス情報記憶部とを有する。
【００１７】
本発明の第１の仮想計算機の使用する実ハードウェアデバイスを検知するデバイス検出装置、デバイス検出方法及びプログラムは、ネットワークに接続された２台以上の実計算機で構成される。第１の実計算機は、カーネルと仮想デバイスドライバを含む仮想計算機と、仮想計算機のデバイス構成に関する情報が保存されるデバイス情報記憶部と、仮想計算機固有の識別子を検出する仮想計算機識別子検出手段と、仮想計算機ごとに実ハードウェアデバイスへのアクセスを検出するデバイスアクセス検出手段と、デバイスドライバと、実ハードウェアデバイスと通信手段とを備える。第２の実計算機は、デバイス情報記憶部と実ハードウェアデバイス情報記憶部と、デバイス予約手段と、実ハードウェアデバイスと、通信手段とを備える。このような構成を採用し、第１の実計算機で、前記仮想デバイスドライバとデバイスドライバとの通信の発信元となる仮想計算機を、仮想計算機識別子により識別し、前記識別された仮想計算機ごとに前記仮想計算機が必要とする実ハードウェアデバイスを検出し、前記識別された仮想計算機識別子と実ハードウェアデバイスとの対応関係をデバイス情報としてデバイス情報記憶部に保存し、前記デバイス情報記憶部に保存された情報を、第２の実計算機に通知し、第２の実計算機で、前記通知された情報を基にして適切な実ハードウェアデバイスを予約する、さらには、予約の結果を基にして適切な実ハードウェアデバイスを備えた実計算機をマイグレーション先として決定することにより、本発明の第１の目的と第２の目的を達成する。
【００１８】
また、本発明の第２の仮想計算機の使用する実ハードウェアデバイスを検知するデバイス検出装置、デバイス検出方法及びプログラムは、本発明の第１の仮想計算機の使用する実ハードウェアデバイスを検知するデバイス検出装置、デバイス検出方法及びプログラムの第１の実計算機の構成に加え、第１の実計算機に、実ハードウェアデバイスに関し、仮想計算機の必要とする性能を計算するデバイスアクセス統計手段を備える。このような構成を採用し、第１の実計算機で、仮想デバイスドライバとデバイスドライバとの通信の発信元となる仮想計算機を、仮想計算機識別子により識別し、実ハードウェアデバイスに関し、前記識別された仮想計算機ごとに前記仮想計算機が必要とする性能を計算し、前記仮想計算機識別子と、実ハードウェアデバイスと、必要とされる実ハードウェアデバイスの性能との対応関係をデバイス情報としてデバイス情報記憶部に保存し、前記デバイス情報記憶部に保存された情報を、第２の実計算機に通知し、第２の実計算機で、通知された情報を基にして適切な実ハードウェアデバイスを予約する、さらには、予約の結果を基にして適切な実ハードウェアデバイスを備えた実計算機をマイグレーション先として決定することにより、さらに第３の目的を達成する。
【００１９】
さらに、本発明の第３の仮想計算機の使用する実ハードウェアデバイスを検知するデバイス検出装置、デバイス検出方法及びプログラムは、本発明の第２の仮想計算機の使用する実ハードウェアデバイスを検知するデバイス検出装置、デバイス検出方法及びプログラムの構成に加え、第１の実計算機に、仮想計算機の使用している実ハードウェアデバイスの代替実ハードウェアデバイスを選定する代替デバイス選定手段と、第１の実計算機の備える実ハードウェアデバイスの代替となる実ハードウェアデバイスの情報が保存された代替デバイスライブラリ部を備える。このような構成を採用し、第１の実計算機で、仮想デバイスドライバとデバイスドライバとの通信の発信元となる仮想計算機を、仮想計算機識別子により識別し、前記識別された仮想計算機ごとに前記仮想計算機が必要とする実ハードウェアデバイスを検出し、実ハードウェアデバイスに関し、前記識別された仮想計算機ごとに前記仮想計算機が必要とする性能を計算し、さらに、前記検出した結果と計算した結果から、仮想計算機が必要とする性能を満たす代替実ハードウェアデバイスを選定し、前記仮想計算機識別子と、実ハードウェアデバイスと、必要とされる実ハードウェアデバイスの性能と、代替実ハードウェアデバイスの対応関係をデバイス情報としてデバイス情報記憶部に保存し、前記保存された情報を、第２の実計算機に通知し、第２の実計算機で、前記通知された情報を基にして、マイグレーション先で適切な実ハードウェアデバイスを予約する、さらには、予約の結果を基にして適切な実ハードウェアデバイスを備えた実計算機をマイグレーション先として決定することにより、本発明の第１から第４までの目的を達成する。
【００２０】
さらに、本発明の第４の仮想計算機の使用する実ハードウェアデバイスを検知するデバイス検出装置、デバイス検出方法及びプログラムは、本発明の第２の仮想計算機の使用する実ハードウェアデバイスを検知するデバイス検出装置、デバイス検出方法及びプログラムの構成に加え、第２の実計算機に、第２の実計算機の備える実ハードウェアデバイスの提供できる資源量、すなわち、性能を計測するデバイス資源監視手段と、第２の実計算機の備える実ハードウェアデバイスの代替となる実ハードウェアデバイスの情報が保存された代替デバイスライブラリ部を備える。このような構成を採用し、第２の実計算機で、デバイス資源監視手段が、第２の実計算機の備える実ハードウェアデバイスの提供できる資源量、すなわち、性能を計測し、第１の実計算機から通知されたデバイス情報を基にして実ハードウェアデバイスを予約するときに、必要とされる性能を満たした実ハードウェアデバイスが第２の実計算機にない場合、第２の実計算機で、代替デバイスライブラリ部から代替となる実ハードウェアデバイスを予約する、さらには、マイグレーション先として決定することにより、本発明の第１から第４までの目的を達成する。
【００２１】
本発明は、以下に記載するような効果を奏する。
【００２２】
（１）第１の実計算機で、デバイスアクセス検出手段が、仮想デバイスドライバとデバイスドライバとの通信の発信元となる仮想計算機を、仮想計算機識別子より識別し、仮想計算機ごとに監視するため、第１の実計算機で、仮想計算機が使用する実ハードウェアデバイスを、仮想計算機ごとに検出することで、第1の計算機が、マイグレーション先として適切な実ハードウェアデバイスで構成される第２の実計算機を決定できる。
【００２３】
（２）第１の実計算機で、デバイスアクセス検出手段が監視した結果を基にして、デバイスアクセス統計手段が、性能を示す統計情報を計算するため、第１の実計算機で、実ハードウェアデバイスに関し、仮想計算機が必要とする性能を計算することで、第1の計算機が、マイグレーション先として適切な実ハードウェアデバイスで構成される第２の実計算機を決定できる。
【００２４】
（３）第１の実計算機で、仮想計算機ごとに実ハードウェアデバイスに関し、仮想計算機が必要とする性能を満たす実ハードウェアデバイスの代替デバイスを、代替デバイス選定手段が、代替デバイスライブラリ部から選定し、デバイス情報記憶部に保存するため、第１の実計算機で、第２の実計算機に、仮想計算機が必要とする性能を満たした実ハードウェアデバイスが予約できない場合、代替実ハードウェアデバイスを予約することで、第１の実計算機での動作と同じ動作をできる可能性が高まる。
【００２５】
（４）第１の実計算機で、仮想デバイスドライバとデバイスドライバとの発信元を、仮想計算機識別子より識別し、さらに必要とされる性能を計算し、結果を情報記憶部に保存して、第２の実計算機に送信し、第２の実計算機で、デバイス予約手段が、第２の実計算機の実ハードウェアデバイスが、仮想計算機の必要とする性能を満たすことができないと判断した場合、第２の実計算機の他の実ハードウェアデバイスを、代替実ハードウェアデバイスとして、予約を試みるため、第１の実計算機で、仮想計算機が使用していた実ハードウェアデバイスと同じであるが、第２の実計算機の備える実ハードウェアデバイスが、例えば、他のプロセスとの競合により、仮想計算機が必要とする性能を満たさなかった場合であっても、仮想計算機は、第２の実計算機で、適切な代替ハードウェヘアデイバスを使用することで、第１の実計算機での動作と同じ動作をできる可能性が高まる。
【図面の簡単な説明】
【００２６】
【図１】仮想計算機の使用する実ハードウェアデバイスを検知する装置、方法およびプログラムの一例を示すブロック図である。
【図２】仮想計算機の使用する実ハードウェアデバイスを検知する装置、方法およびプログラムの一例を示すブロック図である。
【図３】仮想計算機の使用する実ハードウェアデバイスを検知する装置、方法およびプログラムの一例を示すブロック図である。
【図４】本発明の第１の実施の形態の構成を示すブロック図である。
【図５】本発明の第１の実施の形態の構成を示すブロック図である。
【図６】本発明の第１の実施の形態のデバイス情報記憶部の例を示す図である。
【図７】本発明の第１の実施の形態の動作を示すフローチャートである。
【図８】本発明の第１の実施の形態の動作を示すフローチャートである。
【図９】本発明の第1の実施の形態の構成を示すブロック図である。
【図１０】本発明の第1の実施の形態の動作を示すフローチャートである。
【図１１】本発明の第２の実施の形態の構成を示すブロック図である。
【図１２】本発明の第２の実施の形態のデバイス情報記憶部の例を示す図である。
【図１３】本発明の第２の実施の形態の動作を示すフローチャートである。
【図１４】本発明の第２の実施の形態の構成を示すブロック図である。
【図１５】本発明の第２の実施の形態の動作を示すフローチャートである。
【図１６】本発明の第３の実施の形態の構成を示すブロック図である。
【図１７】本発明の第３の実施の形態のデバイス情報記憶部の例を示す図である。
【図１８】本発明の第３の実施の形態の動作を示すフローチャートである。
【図１９】本発明の第４の実施の形態の構成を示すブロック図である。
【図２０】本発明の第４の実施の形態のデバイス情報記憶部の例を示す図である。
【図２１】本発明の第４の実施の形態の動作を示すフローチャートである。
【図２２】本発明の第1の実施例の構成を示すブロック図である。
【図２３】本発明の第１の実施例の構成を示すブロック図である。
【図２４】本発明の第1の実施例の構成を示すブロック図である。
【図２５】本発明の第２の実施例の構成を示すブロック図である。
【図２６】本発明の第２の実施例の構成を示すブロック図である。
【図２７】本発明の第３の実施例の構成を示すブロック図である。
【図２８】本発明の第３の実施例の構成を示すブロック図である。
【図２９】本発明の第４の実施例の構成を示すブロック図である。
【図３０】本発明の第４の実施例の構成を示すブロック図である。
【図３１】本発明の第５の実施例の構成を示すブロック図である。
【図３２】本発明の第６の実施例の構成を示すブロック図である。
【図３３】本発明の第７の実施例の構成を示すブロック図である。
【図３４】本発明の第８の実施例の構成を示すブロック図である。
【発明を実施するための最良の形態】
【００２７】
以下に、本発明の実施の形態について図面を参照して説明する。【００２８】
（第１の実施の形態）
本発明の第１の実施の形態について図面を参照して詳細に説明する。【００２９】
本発明の第１の実施の形態は、第１の実計算機で、仮想計算機ごとに、仮想計算機が使用している実ハードウェアデバイスの情報を保存したデバイス構成情報を作成し、その情報を第２の実計算機に送信し、第２の実計算機で受信した情報を参照して、仮想計算機の必要とする実ハードウェアデバイスを予約、予約結果をマイグレーションの可否判定に活用する。【００３０】
図４を参照すると、本発明の第１の実施の形態は、ネットワーク１０に接続された、実計算機1ａ、実計算機１ｂで構成される。実計算機１ａは、第１の実計算機であり、仮想計算機の移送元（以下、マイグレーション元と称する）である。実計算機１ｂは、第２の実計算機であり、仮想計算機の移送先（以下、マイグレーション先と称する）である。ネットワーク１０には、実計算機１ａ、実計算機１ｂ以外の実計算機が接続されていてもよく、複数の実計算機１ａ、複数の実計算機１ｂがあってもよい。さらに、１台の実計算機に実計算機１ａの機能と実計算機１ｂの機能が含まれていてもよい。【００３１】
実計算機１ａは、プログラム制御により動作する計算機であり、図５を参照すると、主記憶装置２ａと、データ処理装置３ａと、実ハードウェアデバイス４ａと、通信手段５ａを含む。【００３２】
主記憶装置２ａは、仮想計算機２１とデバイス情報記憶部２２を含む。【００３３】
仮想計算機２１は、ＯＳのカーネル２１１と仮想デバイスドライバ２１２を含む。仮想計算機２１は、その動作の状態によって、実ハードウェアデバイス４ａの1つである補助記憶装置やデータ処理装置３ａにも存在するが、仮想計算機２１が実計算機１ａのどの部分で動作するかについて、当業者には明らかである。仮想デバイスドライバ２１２は、デバイスアクセス検出手段３２ａと、直接、制御信号のやり取りをしても、仮想デバイス（不図示）を介して制御信号のやり取りをしてもよい。【００３４】
デバイス情報記憶部２２は、仮想計算機２１が使用する実ハードウェアデバイス４ａの情報を保存する。実ハードウェアデバイス４ａの情報とは、例えば、実ハードウェアデバイス４ａの名称や、型番など、製品を識別できる情報である。保存された情報の例を、図６に示す。【００３５】
データ処理装置３ａは、仮想計算機識別子検出手段３１ａと、デバイスアクセス検出手段３２ａと、デバイスドライバ３３ａを含む。【００３６】
仮想計算機識別子検出手段３１ａは、仮想計算機２１の固有の識別子を検出する。識別子としては、例えば、仮想計算機２１に割り振られるプロセスＩＤや、仮想計算機２１を実計算機１ａで動作させる仮想計算機モニタ（不図示）が仮想計算機ごとに割り当てた仮想計算機を管理する構造体／配列／レジスタである。本明細書では、仮想計算機２１を実計算機で動作させるために、例えば、仮想計算機に対する資源の分配などを行うプログラムを、仮想計算機モニタと総称する。仮想計算機識別子検出手段３１ａが仮想計算機２１の固有の識別子を検出する方法として、例えば、仮想計算機モニタの仮想計算機２１を管理するデータからプロセスＩＤを検出するための処理を埋め込む方法、仮想計算機２１ごとに割り当てられた仮想計算機２１を管理する構造体／配列／レジスタへの書き込みを、ポーリングや割込みなどで監視する方法などが考えられる。【００３７】
デバイスアクセス検出手段３２ａは、仮想デバイスドライバ２１２からデバイスドライバ３３ａへのアクセスのアクセス元となる仮想計算機２１を、仮想計算機識別子により識別し、仮想計算機２１ごとにデバイスドライバ３３ａへのアクセスを検出する。検出方法としては、例えば、仮想計算機２１から仮想計算機モニタへのシステムコールをプロセスＩＤごとに監視する方法や、仮想計算機２１と仮想計算機モニタ、および／または、仮想計算機２１と他の仮想計算機（不図示）との通信に用いられる共有メモリ領域、共有レジスタを監視する方法、仮想計算機２１と仮想計算機モニタ、および／または、仮想計算機２１と他の仮想計算機との通信に用いられるメッセージの内容を監視する方法がある。【００３８】
デバイスドライバ３３ａは、仮想デバイスドライバ２１２と制御信号をやり取りすることで、1対1に対応する実ハードウェアデバイス４ａを制御する。【００３９】
実ハードウェアデバイス４ａは、デバイスドライバ３３ａに制御され、動作する。【００４０】
通信手段５ａは、実計算機１ｂとネットワーク１０を介して他の実計算機と情報をやり取りする。とくに、本実施の形態では、デバイス情報記憶部２２に保存された情報のネットワーク１０を介した実計算機１ｂへの送信と、実計算機１ｂでの実ハードウェアデバイス４ｂの予約の結果の受信に使用される。【００４１】
次に、図７及び図８のフローチャートを参照して本実施の形態の実計算機１ａの動作について詳細に説明する。本実施の形態の実計算機１ａの動作は、仮想計算機識別子の検出過程と、デバイス情報記憶部２２に保存されるデバイス情報の作成過程に分けられる。【００４２】
仮想計算機識別子の検出過程について説明する。実計算機１ａの仮想計算機モニタが、仮想計算機２１に仮想計算機識別子を割り当て、仮想計算機２１を起動する（ステップ１）。【００４３】
起動した仮想計算機２１の仮想計算機識別子を仮想計算機識別子検出手段３１ａが検出する（ステップ２）。【００４４】
仮想計算機が停止しておらず、もしくは、マイグレーションが実行されずに実計算機１に存在するならば（ステップ３，４）、ステップ２に戻る。【００４５】
デバイス情報記憶部２２に保存されるデバイス情報の作成過程について説明する。【００４６】
仮想計算機２１が、仮想デバイスドライバ２１２にアクセスする（ステップ１１）。【００４７】
仮想計算機識別子検出手段３１ａが、仮想計算機識別子を検出していたならば（ステップ１２）、デバイスアクセス検知手段３２ａが仮想デバイスドライバ２１２からデバイスドライバ３３ａへのアクセスを検知し、検知した情報をデバイス情報記憶部２２へ保存する（ステップ１３）。【００４８】
通信手段５ａが、保存したデバイス情報を、実計算機１ｂに通知する（ステップ１４）。【００４９】
次に、実計算機１ｂについて説明する。【００５０】
実計算機１ｂは、プログラム制御により動作し、図９を参照すると、主記憶装置２ｂと、データ処理装置３ｂと、実ハードウェアデバイス４ｂと、通信手段５ｂを含む。【００５１】
主記憶装置２ｂは、デバイス情報記憶部２２と実ハードウェアデバイス情報記憶部２６ｂを含む。【００５２】
デバイス情報記憶部２２は、実計算機１ａで作成され、ネットワーク１０を介して、通知された実ハードウェアデバイス４ａの情報を保存している。【００５３】
実ハードウェアデバイス情報記憶部２６ｂは、実計算機１ｂがどのような実ハードウェアデバイス４ｂを備えているかに関する情報を保存している。この情報は、例えば、実計算機１ｂで動作するＯＳ（不図示）、もしくは、仮想マシンモニタが検出している情報である。ＯＳ、もしくは、仮想マシンモニタが検出する方法は、当業者には明らかである。【００５４】
データ処理装置３ｂは、デバイス予約手段３８ｂを含む。【００５５】
デバイス予約手段３８ｂは、実ハードウェアデバイス情報記憶部２６ｂを参照し、デバイス情報記憶部２２に記載されたデバイスを、他の仮想計算機などのプログラムにより、占有されないように予約する。予約する方法としては、例えば、実ハードウェアデバイス４ｂと仮想計算機２１との対応を示す表を作成し、実ハードウェアを占有する場合は、該当する実ハードウェアデバイス４ｂの項目に印をつける方法、仮想計算機２１と同様の仮想計算機を、実計算機１ａからコピー、もしくは、実計算機１ｂで作成し、該当する実ハードウェアデバイス４ｂを割り当てる方法などが考えられる。デバイス情報記憶部２２に記載された実ハードウェアデバイスの予約の成否について、通信手段５ｂを介して、実計算機１ａに通知する。実計算機１ｂで、仮想計算機２１の複製を作成する方法としては、例えば、実計算機１ａからデバイス情報記憶部２２に記憶されたデバイス情報以外に、仮想計算機２１のＯＳの種類やメモリ量などを通知させ、実計算機１ｂで仮想計算機を作成する方法などが考えられる。【００５６】
実ハードウェアデバイス４ｂは、実計算機１ｂの備える実ハードウェアデバイスである。【００５７】
通信手段５ｂは、実計算機１ｂとネットワーク１０を介して他の実計算機と情報をやり取りする。とくに、本実施の形態では、デバイス情報記憶部２２に保存された情報のネットワーク１０を介した実計算機１ａから受信と、デバイス予約手段３８ｂによる予約の成否の送信に使用される。【００５８】
次に、図１０のフローチャートを参照して本実施の形態の実計算機１ｂの動作について説明する。【００５９】
実計算機１ａの情報記憶部２２に記憶されたデバイス情報が、通信手段５ａによって送信される（ステップ２１）。【００６０】
通信手段５ｂが、デバイス情報を受信する（ステップ２２）。【００６１】
デバイス予約手段３８ｂが、実ハードウェアデバイス４ｂの有無を確認し（ステップ２３）、あれば、予約する（ステップ２４）。【００６２】
通信手段５ｂが、予約の成否の結果を実計算機１ａに送信する（ステップ２５）。【００６３】
実計算機１ａの通信手段５ａが、予約の成否の結果を受信する（ステップ２６）。【００６４】
予約が成功していれば（ステップ２７）、マイグレーションを実行する（ステップ２８）。【００６５】
マイグレーションの可否の判断の方法は、実計算機１ａで動作する仮想計算機２１であっても、実計算機１ａで別途、動作する仮想計算機の管理プログラムであってもよく、当業者であるならば、様々な方法が考えられるであろう。【００６６】
次に、本実施の形態の効果について説明する。【００６７】
本実施の形態では、仮想計算機識別子検出手段３１ａの検出した仮想計算機識別子を基にして、デバイスアクセス手段３１ａが仮想デバイスドライバとデバイスドライバ３３ａの通信を仮想計算機２１ごとに検出するように構成されているため、仮想計算機２１ごとに仮想計算機２１が使用する実ハードウェアデバイス４ａを検出できる。さらに、検出した結果を基にして、必要とする、実ハードウェアデバイス４ｂを備えた実計算機１ｂをマイグレーション先として決定できる。【００６８】
（第２の実施の形態）
本発明の第２の実施の形態について図面を参照して詳細に説明する。【００６９】
本発明の第２の実施の形態は、第１の実計算機で、仮想計算機ごとに、仮想計算機が使用している実ハードウェアデバイスの情報と、さらに、実ハードウェアデバイスに関し、仮想計算機が必要とする性能をも保存したデバイス構成情報を作成し、その情報を第２の実計算機に送信し、第２の実計算機で受信した情報を参照して、仮想計算機の必要とする実ハードウェアデバイスを予約、予約結果をマイグレーションの可否判定に活用する。【００７０】
本発明の第２の実施の形態は、本発明の第１の実施の形態と同様の、ネットワーク１０に接続された、実計算機1ａ、実計算機１ｂで構成される。実計算機１ａは、第１の実計算機であり、実計算機１ｂは、第２の実計算機である。【００７１】
実計算機１ａは、図１１を参照すると、第１の実施の形態の実計算機１ａに加え、デバイスアクセス統計手段３５ａを含み、デバイス情報記憶部２２に、実ハードウェアデバイス４ａに関し、仮想計算機２１に必要とされる性能に関する情報が追加される。【００７２】
デバイスアクセス統計手段３５ａは、デバイスアクセス検出手段３２ａで検出したデータを利用して、実ハードウェアデバイス４ａに関し、仮想計算機２１が必要とする性能を計算する。計算対象とその方法としては、例えば、タイマー割込み時間あたりの、仮想デバイスドライバ２１２とデバイスドライバ３３ａとのデータ通信量を、仮想デバイスドライバから発行されるシステムコールの引数から、統計をとり、実ハードウェアデバイス４ａに必要とされるスループットを計算する。これを計算式で示すと、
スループット＝タイマー割込みの時間でやりとりされるデータ量の総和／タイマー割込み時間となる。さらに、仮想デバイスドライバ２１２からデバイスドライバ３３ａへの要求時刻と応答時刻から応答時間から、実ハードウェアデバイス４ａに必要とされる応答時間を計算する。これを計算式で示すと、
応答時間＝応答時刻―要求時刻
となる。さらに、エラー発生回数から実ハードウェアデバイス４ａの信頼性などがある。【００７３】
デバイス情報記憶部２２ａは、第１の実施の形態のデバイス情報記憶部２２ａに保存されたデバイス情報に加え、実ハードウェアデバイスに関し、デバイスアクセス統計手段３４ａの計算結果から得られた仮想計算機２１が必要とする性能も保存する。保存された情報の例を図１２に示す。【００７４】
次に、図１３のフローチャートを参照して本実施の形態の実計算機１ａの動作について詳細に説明する。【００７５】
本実施の形態の実計算機１ａの動作は、仮想計算機識別子の検出過程と、デバイス情報記憶部２２に保存されるデバイス情報の作成過程に分けられる。【００７６】
仮想計算機識別子の検出過程は、第１の実施の形態と同様である。【００７７】
デバイス情報記憶部２２に保存されるデバイス情報の作成過程について説明する。仮想計算機２１が、仮想デバイスドライバ２１２にアクセスする（ステップ３１）。【００７８】
仮想計算機識別子検出手段３１ａが、仮想計算機識別子を検出していたならば（ステップ３２）、デバイスアクセス検知手段３２ａが、仮想デバイスドライバ２１２からデバイスドライバ３３ａへのアクセスを検知する（ステップ３３）。【００７９】
デバイスアクセス統計手段３５ａが、デバイスドライバ３３ａへの引数から仮想計算機２１が、実ハードウェアデバイス４ａに関し、必要とする性能を計算し、計算した結果をデバイス情報記憶部２２へ保存する（ステップ３４）。【００８０】
通信手段５ａが、保存したデバイス情報を、実計算機１ｂに通知する（ステップ３５）。【００８１】
実計算機１ｂは、プログラム制御により動作し、実計算機１ｂは、図１４を参照すると、主記憶装置２ｂと、データ処理装置３ｂと、実ハードウェアデバイス４ｂと、通信手段５ｂを含む。【００８２】
主記憶装置２ｂは、デバイス情報記憶部２２を含む。【００８３】
デバイス情報記憶部２２は、実計算機１ａで作成され、ネットワーク１０を介して、通知された情報である。【００８４】
データ処理装置３ｂは、デバイス資源監視手段１３０ｂと、デバイス予約手段３８ｂを含む。【００８５】
デバイス資源監視手段１３０ｂは、例えば、特許文献３に記載された方法で、実ハードウェアデバイス４ｂの提供できる資源量（以下、空資源量と称する）を計測する。計測結果から、仮想計算機２１がマイグレーションされた場合、仮想計算機２１に提供できる資源量、すなわち、性能が明らかになる。【００８６】
デバイス予約手段３８ｂは、デバイス資源監視手段１３０ｂでの計測結果と、デバイス情報記憶部２２に記載されたデバイスの性能を比較し、デバイス情報記憶部２２に記載された性能を満たしていれば、他の仮想計算機などのプログラムにより、占有されないように予約する。【００８７】
次に、図１５のフローチャートを参照して本実施の形態の実計算機１ｂの動作について説明する。【００８８】
本実施の形態の実計算機１ｂの動作は、ステップ４２までは、第１の実施の形態と同様である。【００８９】
デバイス資源監視手段１３０ｂが、実ハードウェアデバイス４ｂの空資源量を計測する（ステップ４３）。【００９０】
デバイス予約手段３８ｂが、ステップ４３で確認した空資源量、すなわち、提供できる性能と、デバイス情報記憶部２２に記載された仮想計算機が必要とする実ハードウェアデバイスの性能を比較し（ステップ４４）、性能を満たした場合、実ハードウェアデバイス４ｂを予約する（ステップ４５）。【００９１】
ステップ４６以降は、第1の実施の形態と同様である。【００９２】
次に、本実施の形態の効果について説明する。【００９３】
本実施の形態では、仮想計算機識別子検出手段３１ａの検出した仮想計算機識別子を基にして、デバイスアクセス手段３１ａが仮想デバイスドライバ２１２とデバイスドライバ３３ａの通信を検出し、デバイスアクセス統計手段３５ａが計算するように構成されているため、仮想計算機２１ごとに仮想計算機２１が使用する実ハードウェアデバイス４ａを検出し、実ハードウェアデバイス４ａに関し、仮想計算機２１ごとに必要とする性能を計算できる。さらに、計算した結果を基にして、適切な実ハードウェアデバイス４ｂを備えた実計算機１ｂをマイグレーション先として決定できる。【００９４】
（第３の実施の形態）
本発明の第３の実施の形態について図面を参照して詳細に説明する。【００９５】
本発明の第３の実施の形態は、第１の実計算機で、仮想計算機ごとに、仮想計算機が使用している実ハードウェアデバイスの情報と、仮想計算機が使用している実ハードウェアデバイスの性能と、さらに、仮想計算機が使用している実ハードウェアデバイスの代替となる実ハードウェアデバイスの情報をも保存したデバイス構成情報を作成し、その情報を第２の実計算機に送信し、第２の実計算機で受信した情報を参照して、仮想計算機の必要とする実ハードウェアデバイスを予約、予約結果をマイグレーションの可否判定に活用する。【００９６】
本発明の第３の実施の形態は、本発明の第1の実施の形態と同様の、ネットワーク１０に接続された、実計算機1ａ、実計算機１ｂで構成される。【００９７】
実計算機１ａは、図１６を参照すると、第２の実施の形態の実計算機１ａに加え、代替デバイスライブラリ部２５ａと代替デバイス選定手段３６ａを含み、デバイス情報記憶部２２ａに代替実ハードウェアデバイスに関する情報が追加される。【００９８】
代替デバイスライブラリ部２５ａは、マイグレーション先の実計算機で仮想計算機２１が必要とする性能を満たす実ハードウェアデバイス４ｂが存在しなかった場合に備えて、代替となる実ハードウェアデバイスの情報を、例えば、表形式で保存する。【００９９】
代替デバイス選定手段３６ａは、デバイス情報記憶部２２に記憶された、実ハードウェアデバイス４ａの情報を基にして、代替となる実ハードウェアデバイスを代替デバイスライブラリ部２５ａに保存された、例えば、表より選定し、デバイス情報記憶部２２に保存する。【０１００】
デバイス情報記憶部２２は、第２の実施の形態のデバイス情報記憶部２２に保存されたデバイス情報に加え、代替実ハードウェアデバイスに関する情報が追加される。保存された情報の例を図１７に示す。【０１０１】
次に、図１８のフローチャートを参照して本実施の形態の動作について詳細に説明する。【０１０２】
本実施の形態の実計算機１ａの動作は、仮想計算機識別子の検出過程と、デバイス情報記憶部２２に保存されるデバイス情報の作成過程に分けられる。【０１０３】
仮想計算機識別子の検出過程は、第１の実施の形態と同様である。【０１０４】
デバイス情報記憶部２２に保存されるデバイス情報の作成過程について説明する。仮想計算機２１が、仮想デバイスドライバ２１２にアクセスする（ステップ５１）。【０１０５】
想計算機識別子が検出されていたならば（ステップ５２）、デバイスアクセス検知手段３２ａが仮想デバイスドライバ２１２からデバイスドライバ３３ａへのアクセスを検知する（ステップ５３）。【０１０６】
デバイスアクセス統計手段３５ａが、デバイスドライバ３３への引数などから仮想計算機２１が、実ハードウェアデバイス４ａに関し、必要とする性能を計算し、計算した結果をデバイス情報記憶部２２へ保存する（ステップ５４）。【０１０７】
検知し、性能を計算した結果から、仮想計算機２１が必要とする実ハードウェアデバイスの代替となる実ハードウェアデバイスを選定しデバイス情報記憶部２２へ保存する（ステップ５５）。【０１０８】
通信手段５ａが、保存したデバイス情報を、実計算機１ｂに通知する（ステップ５６）。【０１０９】
実計算機１ｂの構成は、第２の実施の形態の実計算機１ｂに加え、デバイス予約手段３８ｂに、代替実ハードウェアデバイスを予約する機能を含む。この機能は、例えば、実計算機ａから図１７に示されるデバイス情報が通知され、実計算機１ｂにネットワーク・インターフェース・カード（以下、ＮＩＣと称する）製品ａではなく、ＮＩＣ製品ｂが備わっていた場合、または、実計算機１ｂにＮＩＣ製品ａとＮＩＣ製品ｂが備わっているが、ＮＩＣ製品ａは性能を満たさない場合、ＮＩＣ製品ｂを予約する。【０１１０】
次に、本実施の形態の効果について説明する。【０１１１】
本実施の形態では、仮想計算機識別子検出手段３１ａの検出した仮想計算機識別子に基づいてデバイスアクセス手段３２ａが仮想デバイスドライバ２１２とデバイスドライバ３３ａの通信を検出し、デバイスアクセス統計手段３５ａが、実ハードウェアデバイス４ａに関し、仮想計算機２１が必要とする性能を計算し、代替デバイス選定手段３６ａが、代替デバイスライブラリ部２５ａから、検出した実ハードウェアデバイス４ａの代替ハードウェアデバイスを選定できるため、マイグレーション先の実計算機で仮想計算機２１が必要とする、実ハードウェアデバイス４ｂに関し、仮想計算機２１が必要とする性能を満たさなかった場合でも、代替ハードウェアデバイスの使用を試みることで、マイグレーション先で仮想計算機２１が動作する可能性が高まる。さらに、検出した結果を基にして、適切な実ハードウェアデバイスを備えた実計算機１ｂをマイグレーション先として決定できる。【０１１２】
（第４の実施の形態）
本発明の第４の実施の形態について図面を参照して詳細に説明する。【０１１３】
本発明の第４の実施の形態は、第２の計算機で、第１の実計算機から受信した仮想計算機のデバイス構成情報に記載された、仮想計算機が必要とする性能を第２の実計算機の実ハードウェアデイバスが満たしているかを、実ハードウェアデバイスの空資源量から判断し、性能が満たされない場合は、代替となる実ハードウェアデバイスの使用を試みることで、第２の実計算機で、仮想計算機を動作させる可能性を高める。【０１１４】
本発明の第４の実施の形態の構成は、本発明の第1の実施の形態と同様の、ネットワーク１０に接続された、実計算機1ａ、実計算機１ｂで構成される。【０１１５】
実計算機１ａは、第２の実施の形態と同様である。【０１１６】
実計算機１ｂは、プログラム制御により動作し、図１９を参照すると、主記憶装置２ｂと、データ処理装置３ｂと、実ハードウェアデバイス４ｂ−１と、実ハードウェアデバイス４ｂ−２と、通信手段５ｂを含む。【０１１７】
主記憶装置２ｂは、デバイス情報記憶部２２と、代替デバイスライブラリ部２５ｂを含む。【０１１８】
デバイス情報記憶部２２は、実計算機１ａで作成され、ネットワーク１０を介して、通知された情報である。【０１１９】
代替デバイスライブラリ部２５ｂは、実計算機１ｂの備える実ハードウェアデバイス４ｂ−１，４ｂ−２の互換性情報である。互換性情報は、実ハードウェアデバイス４ｂ−１，４ｂ−２と互換性のある実ハードウェアデバイスの情報を保存している。保存されている情報の一例を図２０に示す。デバイス情報記憶部２２に保存されたデバイスが、表で互換デバイスとして記載されている実ハードウェアデバイス４ｂ−１を仮想計算機２１に割り当てられる。図２０を例にすると、実ハードウェアデバイス４ｂ−１が、ＮＩＣ製品ｍ、実ハードウェアデバイス４ｂ−２がＮＩＣ製品ｎであり、デバイス情報記憶部２２に保存されたデバイス情報に、仮想計算機２１は、実計算機１ａではＮＩＣ製品ｆを使用していたと記載があれば、実計算機１ｂでは、ＮＩＣ製品ｎを、仮想計算機２１用に予約する。なお、仮想計算機２１は、実計算機１ａで、ＮＩＣ製品ｎを使用していた場合、実計算機１ｂでも、空資源量が十分にあれば、そのまま、ＮＩＣ製品ｎが予約されることは言うまでもない。【０１２０】
データ処理装置３ｂは、デバイス資源監視手段１３０ｂと、デバイス予約手段３８ｂを含む。【０１２１】
デバイス資源監視手段１３０ｂは、第２の実施の形態と同様である。【０１２２】
デバイス予約手段３８ｂは、デバイス資源監視手段１３０ｂでの計測結果と、デバイス情報記憶部２２に保存された仮想計算機２１の必要とする実ハードウェアデバイス４ａの性能とを比較し、実ハードウェアデバイス４ｂ−１が、仮想計算機２１の必要とする性能を満たさない場合、実ハードウェアデバイス４ｂ−２の予約を試みる。例えば、図２０で、仮想計算機２１に提供できうる性能が、ＮＩＣ製品ｍが１Ｍｂｐｓ、ＮＩＣ製品ｎが４Ｍｂｐｓであり、デバイス情報記憶部２２に記載されたデバイス情報に、ＮＩＣに関し、仮想計算機２１が必要とするＮＩＣはＮＩＣ製品ｂであり、その必要とされる性能が３Ｍｂｐｓであった場合、ＮＩＣ製品ｎが予約される。【０１２３】
実ハードウェアデバイス４ｂ−１と実ハードウェアデバイス４ｂ−２は、実計算機１ｂの備える実ハードウェアデバイスである。【０１２４】
通信手段５ｂは、実計算機１ｂとネットワーク１０を介して他の実計算機と情報をやり取りする。とくに、本実施の形態では、デバイス情報記憶部２２に保存される情報を、ネットワーク１０を介して、実計算機１ａからの受信と、デバイス予約手段３８ｂによる予約の成否の送信に使用される。【０１２５】
次に、図２１のフローチャートを参照して本実施の形態の動作について説明する。【０１２６】
本実施の形態の実計算機１ｂの動作は、ステップ６２までは、第２の実施の形態と同様である。デバイス資源監視手段１３０ｂが、実ハードウェアデバイス４ｂ−１の提供できる資源量、すなわち、空資源量を計測する（ステップ６３）。【０１２７】
デバイス予約手段３８ｂが、ステップ３で確認した空資源量、すなわち、提供できる性能と、デバイス情報記憶部２２に記載された仮想計算機２１が必要とする実ハードウェアデバイス４ｂ−１の性能を比較し（ステップ６４）、性能を満たさないと判断した場合、代替デバイスライブラリ部２５ｂを参照し、代わりとなる実ハードウェアデバイス４ｂ−２を探す（ステップ６５）。代わりとなる実ハードウェアデバイス４ｂ−２が存在する場合、実ハードウェアデバイス４ｂ−２を予約する（ステップ６６）。ステップ６７以降は、第２の実施の形態と同様である。【０１２８】
次に、本実施の形態の効果について説明する。【０１２９】
本実施の形態では、デバイス資源監視手段１３０ｂが、実ハードウェアデバイス４ｂ−１の空資源量を計測し、計測した結果と、デバイス情報記憶部２２に保存された仮想計算機２１の必要とする実ハードウェアデバイス４ｂ−１の性能を比較し、実ハードウェアデバイス４ｂ−１の性能が、仮想計算機に必要とされる性能に満たない場合、代替となる実ハードウェアデバイス４ｂ−２の予約を試みることで、仮想計算機２１のマイグレーションを実行できる可能性が高まる。とくに、予約しようとしている実ハードウェアデバイス４ｂ−１が複数のプログラムによって共有され、実ハードウェアデバイス４ｂ−１の種類、名称からだけでは、仮想計算機２１が使用できる実ハードウェアデバイス４ｂ−１の資源量が判断できない場合に有効である。
【実施例】
【０１３０】
（実施例１）
本発明の第１の実施例について図面を用いて説明する。かかる実施例は、本発明の第１の実施の形態に対応する。【０１３１】
図２２に示すように、本実施例は、ネットワーク１０１０に接続された実計算機１００１ａ、実計算機１００１ｂで構成される。実計算機１００１ａは、仮想計算機のマイグレーション元であり、実計算機１００１ｂは、仮想計算機のマイグレーション先である。ネットワーク１０１０には、実計算機１００１ａ、実計算機１００１ｂ以外の実計算機が接続されていてもよく、複数の実計算機１００１ａ、複数の実計算機１００１ｂがあってもよい。さらに、１台の実計算機に実計算機１００１ａの機能と実計算機１００１ｂの機能が含まれていてもよい。本明細書の実施例では、簡単のため、ネットワーク１０１０に接続された実計算機は１００１ａと、実計算機１００１ｂのみとし、1台の計算機に、１００１ａの機能と１００１ｂの機能は、共存しないものとする。【０１３２】
図２３に示すように、実計算機１００１ａは、主記憶装置１００２ａ、演算装置１００３ａ、ＮＩＣ１０４１ａ、ハード・ディスク・ドライブ（以下、ＨＤＤと称する）１０４２ａから構成される。さらに、実計算機１００１ａには、プログラムで実装される仮想計算機１０２１と仮想計算機モニタ１０２３ａがある。仮想計算機１０２１と仮想計算機モニタ１０２３ａの組み合わせは、Ｕｓｅｒ  Ｍｏｄｅ  ＬｉｎｕｘとＳＫＡＳ３パッチのあたったＬｉｎｕｘ  ＯＳである。仮想計算機１０２１や仮想計算機モニタ１０２３などのプログラムは、動作によって、主記憶装置１００２ａ、演算装置１００３ａ、ＨＤＤ１０４２ａに存在するが、プログラムが実計算機１００１ａのどの部分で動作するかは、当業者には明らかある。【０１３３】
仮想計算機１０２１は、仮想計算機モニタ１０２３ａによって、１つ以上のプロセスとして扱われる。仮想計算機１０２１は、ＮＩＣ１０４１ａを利用して、実計算機１００１ａの外部と通信する場合、仮想デバイスドライバ１２１２を使用する。【０１３４】
デバイス構成領域１０２２は、デバイスアクセス検出関数１０３２ａが検出した仮想計算機１０２１のデバイスドライバ１０３３ａ、１０３４ａへのアクセスの結果を保存している。【０１３５】
仮想計算機モニタ１０２３ａは、仮想計算機１０２１を動作させるための環境を提供し、ＮＩＣ１０４１ａやＨＤＤ１０４２ａを制御するデバイスドライバ１０３３ａ、１０３４ａを含む。さらに、仮想計算機モニタ１０２３ａは、仮想計算機１０２１の使用するデバイスを検知するため、仮想計算機ＰＩＤ検出関数１０３１ａ、デバイスアクセス検出関数１０３２ａ、デバイス構成領域１０２２を含む。【０１３６】
仮想計算機ＰＩＤ検出関数１０３１ａは、仮想計算機モニタ１０２３ａの仮想計算機１０２１のみが実行するソースコードで、Ｃｕｒｒｅｎｔ構造体のＰＩＤ変数を参照することで、仮想計算機１０２１のプロセスＩＤを検出できる。さらに、仮想計算機１０２１が２つ以上のプロセスで構成される場合、プロセスＩＤと仮想計算機１０２１のＩＤを対応付ける。【０１３７】
デバイスアクセス検出関数１０３２ａは、仮想計算機ＰＩＤ検出関数１０３１ａが検出したプロセスＩＤを基にして、仮想計算機１０２１からデバイスドライバ１０３３ａ、１０３４ａへの通信と仮想計算機モニタ１０２３ａからデバイスドライバ１０３３ａ、１０３４ａとの通信を区別する。仮想計算機１０２１が複数であった場合には、仮想計算機１０２１ごとにＰＩＤを検出することで、それぞれの仮想計算機１０２１ごとに区別できる。【０１３８】
デバイスドライバ１０３３ａ，１０３４ａは、それぞれ、ＮＩＣ１０４１ａ，ＨＤＤ１０４２ａのデバイスドライバである。もちろん、一般的な計算機が備える実ハードウェアデバイスは、ＮＩＣやＨＤＤに限らないことは、当業者には明らかであるが、本実施例では、簡単のため、ＮＩＣとＨＤＤに限定する。【０１３９】
図２４に示すように、実計算機１００１ｂは、主記憶装置１００２ｂ、演算装置１００３ｂ、ＮＩＣ１０４１ｂ、ＨＤＤ１０４２ｂから構成される。さらに、実計算機１００１ｂには、プログラムで実装される仮想計算機モニタ１０２３ｂがある。仮想計算機モニタ１０２３ｂは、例えば、Ｕｓｅｒ  Ｍｏｄｅ  ＬｉｎｕｘとＳＫＡＳ３パッチのあたったＬｉｎｕｘ  ＯＳである。【０１４０】
デバイス構成領域１０２２は、実計算機１００１ａで作成され、ネットワーク１０１０を介して、通知された情報である。【０１４１】
実ハードウェアデバイス情報記憶領域１０２６ｂは、実計算機１００１ｂが備える実ハードウェアデバイスに関する情報である。本実施例であれば、ＮＩＣ１０４１ｂとＨＤＤ１０４２ｂが実計算機１００１ｂに存在することを示す情報である。実ハードウェアに関する情報は、実計算機１００１ｂで動作するＬｉｎｕｘ  ＯＳ（不図示）が検出できる情報であり、例えば、ｄｍｅｓｇコマンドで検出できる。【０１４２】
デバイス予約関数１０３７ｂは、実ハードウェアデバイス情報記憶領域１０２６ｂに記憶されたデバイス情報を参照し、デバイス情報記憶１０２２に記載されたデバイスを、他の仮想計算機などのプログラムに占有されないように予約する。【０１４３】
ＮＩＣ１０４１ｂ、ＨＤＤ１０４２ｂは、実計算機１００１ｂが備える実ハードウェアデバイスである。【０１４４】
（実施例２）
本発明の第２の実施例について図面を参照して説明する。かかる実施例は、本発明の第１の実施の形態に対応する。【０１４５】
本実施例は、第１の実施例と同様の、ネットワーク１０１０に接続された実計算機１００１ａ、実計算機１００１ｂで構成される。【０１４６】
図２５に示すように、実計算機１００１ａは、主記憶装置１００２ａ、演算装置１００３ａ、ＮＩＣ１０４１ａ、ＨＤＤ１０４２ａから構成される。さらに、実計算機１００１ａには、プログラムで実装される仮想計算機１０２１と、仮想計算機モニタ１０２３ａと、管理仮想計算機１０２４ａがある。これらの構成を採る仮想化システムとして、Ｘｅｎがある。仮想計算機１０２１や仮想計算機モニタ１０２３ａ、管理仮想計算機１０２４ａなどのプログラムは、動作によって、主記憶装置１００２ａ、演算装置１００３ａ、ＨＤＤ１０４２ａに存在するが、プログラムが実計算機１００１ａのどの部分で動作するかは、当業者には明らかある。【０１４７】
仮想計算機１０２１は、実施例１と同様である。【０１４８】
仮想計算機モニタ１０２３ａは、仮想計算機１０２１と管理仮想計算機１０２４ａを動作させるための環境を提供し、仮想計算機識別関数１０３８ａを含む。【０１４９】
仮想計算機識別関数１０３８ａは、仮想計算機２１ごとに割り当てられた仮想計算機を管理する構造体／配列を監視することで、仮想計算機１０２１を識別する。【０１５０】
管理仮想計算機１０２４ａは、ＮＩＣ１０４１やＨＤＤ１０４２を制御するデバイスドライバ１０３３ａ、１０３４ａを含み、仮想計算機１０２１の使用するデバイスを検知するデバイスアクセス検出関数１０３２ａ、デバイス構成領域１０２２を含む。【０１５１】
デバイスアクセス検出関数１０３２ａは、仮想計算機ＰＩＤ検出関数１０３１ａが検出した構造体／配列を基にして、仮想計算機１０２１ごとのデバイスドライバ１０３３ａ、１０３４ａへの通信を区別する。【０１５２】
図２６に示すように、実計算機１００１ｂは、主記憶装置１００２ｂ、演算装置１００３ｂ、ＮＩＣ１０４１ｂ、ＨＤＤ１０４２ｂから構成される。さらに、実計算機１００１ｂには、プログラムで実装される管理仮想計算機１０２４ｂがある。管理仮想計算機１０２４ｂなどのプログラムは、動作によって、主記憶装置１００２ｂ、演算装置１００３ｂ、ＨＤＤ１０４２ｂに存在するが、プログラムが実計算機１００１ｂのどの部分で動作するかは、当業者には明らかある。【０１５３】
デバイス構成領域１０２２は、実計算機１００１ａで作成され、ネットワーク１０１０を介して通知された情報である。【０１５４】
実ハードウェアデバイス情報記憶領域１０２６ｂは、実計算機１００１ｂが備える実ハードウェアデバイスに関する情報である。本実施例であれば、ＮＩＣ１０４１ｂとＨＤＤ１０４２ｂが実計算機１００１ｂに存在することを示す情報である。【０１５５】
デバイス予約手段１０３８ｂは、実ハードウェアデバイス情報記憶領域１０２６ｂに記憶されたデバイス情報を参照し、デバイス情報記憶２２に記載されたデバイスを、他の仮想計算機などのプログラムに占有されないように予約する。【０１５６】
ＮＩＣ１０４１ｂ、ＨＤ１０４２ｂは、実計算機１００１ｂが備える実ハードウェアデバイスである。【０１５７】
（実施例３）
本発明の第３の実施例について図面を参照して説明する。かかる実施例は、本発明の第２の実施の形態に対応する。【０１５８】
本実施例は、第１の実施例と同様の、ネットワーク１０１０に接続された実計算機１００１ａ、実計算機１００１ｂで構成される。【０１５９】
本実施例の実計算機１００１ａは、図２７に示すよう、第１の実施例に加え、実計算機１００１ａにデバイスアクセス統計関数１０３５ａを含む。デバイスアクセス統計関数１０３５ａは、デバイスアクセス検出関数１０３２ａによる検出結果を基にして、タイマー割込みごとの仮想計算機１０２１とデバイスドライバ１０３３ａ、１０３４ａとのデータの通信量を、その呼び出される際の引数から、統計をとり、仮想計算機１０２１が必要とする、ＮＩＣ１０４１ａやＨＤＤ１０４２ａの性能を計算する。【０１６０】
デバイス構成領域１０２２は、デバイスアクセス統計関数１０３５ａが計算した仮想計算機１００１ａの必要とするＮＩＣ１０４１ａやＨＤＤ１０４２ａの性能のデータを保存している。【０１６１】
本実施例の実計算機１００１ｂは、図２８に示すよう、主記憶装置１００２ｂ、演算装置１００３ｂ、ＮＩＣ１０４１ｂ、ＨＤＤ１０４２ｂから構成され、プログラムで実装される仮想計算機１０２１と仮想計算機モニタ１０２３ｂがある。【０１６２】
デバイス構成領域１０２２は、実計算機１００１ａで作成され、ネットワーク１０１０を介して、通知された情報である。【０１６３】
デバイス資源モニタ関数は、ＮＩＣ１０４１ｂやＨＤＤ１０４２ｂの空資源量を計測する。計測の方法としては、仮想計算機モニタが、Ｌｉｎｕｘ  ＯＳであれば、例えば、ネットワークに関し、ｉｆｃｏｎｆｉｇコマンドで使用中の資源量が計測できるので、デバイスもつ最高性能から差し引くことで、空資源量を計算し、計測データとすることができる。【０１６４】
デバイス予約関数１０３７ｂは、例えば、ネットワークであれば、デバイス資源モニタ関数１１３０ｂでの計測結果とデバイス構成領域１０２２に保存されたＮＩＣの必要とされる性能を比較し、実計算機１００１ｂのＮＩＣ１０４１ｂが性能を満たしたと判断した場合、ＮＩＣ１０４１ｂを予約する。【０１６５】
（実施例４）
本発明の第４の実施例について図面を参照して説明する。かかる実施例は、本発明の第２の実施の形態に対応する。【０１６６】
本実施例は、第１の実施例と同様の、ネットワーク１０１０に接続された実計算機１００１ａ、実計算機１００１ｂで構成される。【０１６７】
本実施例の実計算機１００１ａは、図２９に示すよう、第２の実施例に加え、実計算機１００１ａにデバイスアクセス統計関数１０３５ａを含む。デバイスアクセス統計関数１０３５ａは、タイマー割込みごとの仮想計算機１０２１とデバイスドライバ１０３３ａ、１０３４ａとのデータの通信量を、共有メモリへのアクセス回数から、統計をとり、仮想計算機１０２１が必要とする、ＮＩＣ１０４１ａやＨＤＤ１０４２ａの性能を計算する。【０１６８】
本実施例の実計算機１００１ｂは、図３０に示すように、実施例３の仮想計算機モニタ１０２３ｂに替わり、管理仮想計算機１０２４ｂとする。【０１６９】
（実施例５）
本発明の第５の実施例について図面を参照して説明する。かかる実施例は、本発明の第３の実施の形態に対応する。【０１７０】
本実施例は、第１の実施例と同様の、ネットワーク１０１０に接続された実計算機１００１ａ、実計算機１００１ｂで構成される。【０１７１】
本実施例の実計算機１００１ａは、図３１に示すように、第３の実施例に加え、実計算機１００１ａに代替デバイスライブラリ領域１０２５ａと代替デバイス選定手段１０３６ａを含む。代替デバイス選定関数１０３６ａは、デバイスアクセス検出関数１０３２ａによる検出結果を基にして、マイグレーション先の実計算機で仮想計算機１０２１が必要とするＮＩＣ１０４１ａかつ／またはＨＤＤ１０４２ａが性能を満たさなかった場合に備えて、代替ハードウェアデバイスを選定し、デバイス構成領域１０２２に保存する。【０１７２】
本実施例の実計算機１００１ｂは、第３の実施例の実計算機１００１ｂに加え、デバイス予約関数１０３７ｂに、代替実ハードウェアデバイスを予約する機能を含む。【０１７３】
（実施例６）
本発明の第６の実施例について図面を参照して説明する。かかる実施例は、本発明の第３の実施の形態に対応する。【０１７４】
本実施例は、第１の実施例と同様の、ネットワーク１０１０に接続された実計算機１００１ａ、実計算機１００１ｂで構成される。【０１７５】
本実施例の実計算機１００１ａは、図３２に示すように、第４の実施例に加え、実計算機１００１ａに代替デバイスライブラリ領域１０２５ａと代替デバイス選定手段１０３６ａを含む。代替デバイス選定関数１０３６ａは、デバイスアクセス検出関数１０３２ａによる検出結果を基にして、マイグレーション先の実計算機で仮想計算機１０２１が必要とするＮＩＣ１０４１ａかつ／またはＨＤＤ１０４２ａが性能を満たさなかった場合に備えて、代替ハードウェアデバイスを選定し、デバイス構成領域１０２２に保存する。【０１７６】
本実施例の実計算機１００１ｂは、第３の実施例の実計算機１００１ｂに加え、デバイス予約関数１０３７ｂに、代替実ハードウェアデバイスを予約する機能を含む。【０１７７】
（実施例７）
本発明の第７の実施例について図面を参照して説明する。かかる実施例は、本発明の第４の実施の形態に対応する。【０１７８】
本実施例は、ネットワーク１０１０に接続された実計算機１００１ａ、実計算機１００１ｂで構成される。実計算機１００１ａは、第３の実施例と同様である。【０１７９】
本実施例の実計算機１００１ｂは、図３３に示すように、主記憶装置１００２ｂ、演算装置１００３ｂ、ＮＩＣ１０４１ｂ、ＮＩＣ１０４３ｂから構成され、プログラムで実装される仮想計算機１０２１ｂと仮想計算機モニタ１０２３ｂがある。【０１８０】
デバイス構成領域１０２２は、実計算機１００１ａで作成され、ネットワーク１０１０を介して、通知された情報である。【０１８１】
代替デバイスライブラリ領域１０２５ｂは、実計算機１００１ｂの備えるＮＩＣ１０４１ｂとＮＩＣ１０４３ｂと、その互換性情報である。ＮＩＣ１０４１ｂかつ／またはＮＩＣ１０４３ｂと他のＮＩＣとの互換性を管理することで、デバイス構成領域１０２２に記載されたＮＩＣが互換性ＮＩＣとして該当するＮＩＣを使用することができる。【０１８２】
デバイス資源モニタ関数１１３０ｂは、第３の実施例と同様である。【０１８３】
デバイス予約関数１０３７ｂは、デバイス資源モニタ関数１１３０ｂでの計測結果とデバイス構成領域１０２２に保存されたＮＩＣの必要とされる性能を比較し、実計算機１００１ｂのＮＩＣ１０４１ｂが性能を満たさないと判断した場合、実計算機１００１ｂに存在し、代替デバイスライブラリ領域１０２５ｂにある記載された別のＮＩＣであるＮＩＣ１０４３ｂを予約する。実際の切り替えは、ＮＩＣであれば、ネットワーク・オブジェクトを切り替えることで実現される。【０１８４】
（実施例８）
本発明の第８の実施例について図面を参照して説明する。かかる実施例は、本発明の第４の実施の形態に対応する。【０１８５】
図３４に示すように、実施例７の仮想計算機モニタ１０２３ｂに替わり、管理仮想計算機１０２４ｂとする。【０１８６】
本発明によれば、実ハードウェアで構成される複数の実計算機間で仮想計算機を移送するマイグレーション技術での、マイグレーション先の決定装置、方法およびプログラムといった用途に適用できる。【０１８７】
以上、実施例を参照して本願発明を説明したが、本願発明は上記実施例に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。【０１８８】
この出願は、２００７年１１月２７日に出願された日本出願特願２００７−３０５５８８を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【図１】
2009069385.tif 000003
【図２】
2009069385.tif 000004
【図３】
2009069385.tif 000005
【図４】
2009069385.tif 000006
【図５】
2009069385.tif 000007
【図６】
2009069385.tif 000008
【図７】
2009069385.tif 000009
【図８】
2009069385.tif 000010
【図９】
2009069385.tif 000011
【図１０】
2009069385.tif 000012
【図１１】
2009069385.tif 000013
【図１２】
2009069385.tif 000014
【図１３】
2009069385.tif 000015
【図１４】
2009069385.tif 000016
【図１５】
2009069385.tif 000017
【図１６】
2009069385.tif 000018
【図１７】
2009069385.tif 000019
【図１８】
2009069385.tif 000020
【図１９】
2009069385.tif 000021
【図２０】
2009069385.tif 000022
【図２１】
2009069385.tif 000023
【図２２】
2009069385.tif 000024
【図２３】
2009069385.tif 000025
【図２４】
2009069385.tif 000026
【図２５】
2009069385.tif 000027
【図２６】
2009069385.tif 000028
【図２７】
2009069385.tif 000029
【図２８】
2009069385.tif 000030
【図２９】
2009069385.tif 000031
【図３０】
2009069385.tif 000032
【図３１】
2009069385.tif 000033
【図３２】
2009069385.tif 000034
【図３３】
2009069385.tif 000035
【図３４】
2009069385.tif 000036
【手続補正書】
【提出日】平成21年4月8日(2009.4.8)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
（削除）
【請求項２】
仮想計算機の使用するデバイスを検出するデバイス検出装置であって、
ネットワークに接続された複数の実計算機で構成され、
前記複数の実計算機のうち第１の実計算機は、
前記仮想計算機を区別するための識別子を検出する仮想計算機識別子検出手段と、
前記仮想計算機からデバイスドライバへの通信を検出するデバイスアクセス検出手段と、
前記検出した結果を保存するデバイス情報記憶部と、
通信手段とを有し、
前記複数の実計算機のうち第２の実計算機は、
通信手段と、
前記第２の実計算機の備える実ハードウェアデバイスを記載した実ハードウェアデバイス情報記憶部と、
前記第１の実計算機で検出した結果を保存するデバイス情報記憶部と、
前記第２の実計算機と同様の仮想計算機を作成し、当該第２の実計算機の備える実ハードウェアデバイスを割り当てるデバイス予約手段とを有するデバイス検出装置。
【請求項３】
請求項２に記載のデバイス検出装置において、
デバイスドライバへの通信を検出した結果においてシステムコールの引数から、実ハードウェアデバイスに関し、仮想計算機とデバイスドライバとのデータ通信量を計算するデバイスアクセス統計手段を有することを特徴とするデバイス検出装置。
【請求項４】
仮想計算機の使用するデバイスを検出するデバイス検出装置であって、
ネットワークに接続された複数の実計算機で構成され、
前記複数の実計算機のうち第１の実計算機は、
前記仮想計算機を区別するための識別子を検出する仮想計算機識別子検出手段と、
前記仮想計算機からデバイスドライバへの通信を検出するデバイスアクセス検出手段と、
前記検出した結果を保存するデバイス情報記憶部と、
デバイスドライバへの通信を検出した結果においてシステムコールの引数から、実ハードウェアデバイスに関し、仮想計算機とデバイスドライバとのデータ通信量を計算するデバイスアクセス統計手段と、
通信手段とを有し、
前記複数の実計算機のうち第２の実計算機は、
通信手段と、
前記第２の実計算機の備える実ハードウェアデバイスの性能を計測するデバイス資源監視手段と、
前記第１の実計算機で検出した結果を保存するデバイス情報記憶部と、
前記第２の実計算機と同様の仮想計算機を作成し、当該第２の実計算機の備える実ハードウェアデバイスを割り当てるデバイス予約手段とを有するデバイス検出装置。
【請求項５】
仮想計算機の使用するデバイスを検出するデバイス検出装置であって、
ネットワークに接続された複数の実計算機で構成され、
前記複数の実計算機のうち第１の実計算機は、
前記仮想計算機を区別するための識別子を検出する仮想計算機識別子検出手段と、
前記仮想計算機からデバイスドライバへの通信を検出するデバイスアクセス検出手段と、
前記検出した結果を保存するデバイス情報記憶部と、
通信手段とを有し、
前記複数の実計算機のうち第２の実計算機は、
通信手段と、
前記第２の実計算機の備える実ハードウェアデバイスを記載した実ハードウェアデバイス情報記憶部と、
前記第１の実計算機で検出した結果を保存するデバイス情報記憶部と、
前記第２の実計算機の備える実ハードウェアデバイスを予約するデバイス予約手段とを有し、
さらに、デバイスドライバへの通信を検出した結果から実ハードウェアデバイスに関し、仮想計算機の必要とする性能を計算するデバイスアクセス統計手段と、
実計算機の実ハードウェアデバイスの代替となりうる実ハードウェアデバイスを提示する代替デバイスライブラリ部とを有することを特徴とするデバイス検出装置。
【請求項６】
仮想計算機の使用するデバイスを検出するデバイス検出装置であって、
ネットワークに接続された複数の実計算機で構成され、
前記複数の実計算機のうち第１の実計算機は、
前記仮想計算機を区別するための識別子を検出する仮想計算機識別子検出手段と、
前記仮想計算機からデバイスドライバへの通信を検出するデバイスアクセス検出手段と、
前記検出した結果を保存するデバイス情報記憶部と、
通信手段と、
デバイスドライバへの通信を検出した結果から実ハードウェアデバイスに関し、仮想計算機の必要とする性能を計算するデバイスアクセス統計手段と、
実計算機の実ハードウェアデバイスの代替となりうる実ハードウェアデバイスを提示する代替デバイスライブラリ部とを有し、
前記複数の実計算機のうち第２の実計算機は、
通信手段と、
前記第２の実計算機の備える実ハードウェアデバイスの性能を計測するデバイス資源監視手段と、
前記第１の実計算機で検出した結果を保存するデバイス情報記憶部と、
前記第２の実計算機の備える実ハードウェアデバイスを予約するデバイス予約手段とを有するデバイス検出装置。
【請求項７】
仮想計算機の使用するデバイスを検出するデバイス検出装置であって、
ネットワークに接続された複数の実計算機で構成され、
前記複数の実計算機のうち第１の実計算機は、
前記仮想計算機を区別するための識別子を検出する仮想計算機識別子検出手段と、
前記仮想計算機からデバイスドライバへの通信を検出するデバイスアクセス検出手段と、
前記検出した結果を保存するデバイス情報記憶部と、
デバイスドライバへの通信を検出した結果から実ハードウェアデバイスに関し、仮想計算機の必要とする性能を計算するデバイスアクセス統計手段と、
通信手段とを有し、
前記複数の実計算機のうち第２の実計算機は、
通信手段と、
前記第２の実計算機の備える実ハードウェアデバイスの性能を計測するデバイス資源監視手段と、
前記第１の実計算機で検出した結果を保存するデバイス情報記憶部と、
前記第２の実計算機の備える実ハードウェアデバイスを予約するデバイス予約手段とを有し、
さらに、前記第２の実計算機の実ハードウェアデバイスの代替となりうる実ハードウェアデバイスを提示する代替デバイスライブラリ部を有することを特徴とするデバイス検出装置。
【請求項８】
仮想計算機の使用するデバイスを検出するデバイス検出装置であって、
ネットワークに接続された複数の実計算機で構成され、
前記複数の実計算機のうち第１の実計算機は、
前記仮想計算機を区別するための識別子を検出する仮想計算機識別子検出手段と、
前記仮想計算機からデバイスドライバへの通信を検出するデバイスアクセス検出手段と、
前記検出した結果を保存するデバイス情報記憶部と、
通信手段と、
デバイスドライバへの通信を検出した結果から実ハードウェアデバイスに関し、仮想計算機の必要とする性能を計算するデバイスアクセス統計手段とを有し、
前記複数の実計算機のうち第２の実計算機は、
通信手段と、
実ハードウェアデバイスの代替となりうる実ハードウェアデバイスを提示する代替デバイスライブラリ部と、
前記第２の実計算機の備える実ハードウェアデバイスの性能を計測するデバイス資源監視手段と、
前記第１の実計算機で検出した結果を保存するデバイス情報記憶部と、
前記第２の実計算機の備える複数の実ハードウェアデバイスのうち、前記デバイス資源監視手段における計測結果と、前記デバイス情報記憶部に保存された結果とに基づく性能を具備する実ハードウェアデバイスを予約するデバイス予約手段とを有するデバイス検出装置。
【請求項９】
（削除）
【請求項１０】
仮想計算機の使用するデバイスを検出するデバイス検出方法であって、
ネットワークに接続された複数の実計算機のうち第１の実計算機にて、
前記仮想計算機を区別するための識別子を検出するステップと、
前記仮想計算機からデバイスドライバへの通信を検出するステップと、
前記検出した結果を保存するステップと、
通信ステップとを有し、
前記複数の実計算機のうち第２の実計算機にて、
通信ステップと、
前記第２の実計算機の備える実ハードウェアデバイスを記載するステップと、
前記第１の実計算機で検出した結果を保存するステップと、
前記第２の実計算機と同様の仮想計算機を作成し、当該第２の実計算機の備える実ハードウェアデバイスを割り当てるステップとを有するデバイス検出方法。
【請求項１１】
請求項１０に記載のデバイス検出方法において、
デバイスドライバへの通信を検出した結果においてシステムコールの引数から、実ハードウェアデバイスに関し、仮想計算機とデバイスドライバとのデータ通信量を計算するステップを有することを特徴とするデバイス検出方法。
【請求項１２】
仮想計算機の使用するデバイスを検出するデバイス検出方法であって、
ネットワークに接続された複数の実計算機のうち第１の実計算機にて、
前記仮想計算機を区別するための識別子を検出するステップと、
前記仮想計算機からデバイスドライバへの通信を検出するステップと、
前記検出した結果を保存するステップと、
通信ステップと、
デバイスドライバへの通信を検出した結果においてシステムコールの引数から、実ハードウェアデバイスに関し、仮想計算機とデバイスドライバとのデータ通信量を計算するステップとを有し、
前記複数の実計算機のうち第２の実計算機にて、
通信ステップと、
前記第２の実計算機の備える実ハードウェアデバイスの性能を計測するステップと、
前記第１の実計算機で検出した結果を保存するステップと、
前記第２の実計算機と同様の仮想計算機を作成し、当該第２の実計算機の備える実ハードウェアデバイスを割り当てるステップとを有するデバイス検出方法。
【請求項１３】
仮想計算機の使用するデバイスを検出するデバイス検出方法であって、
ネットワークに接続された複数の実計算機のうち第１の実計算機にて、
前記仮想計算機を区別するための識別子を検出するステップと、
前記仮想計算機からデバイスドライバへの通信を検出するステップと、
前記検出した結果を保存するステップと、
通信ステップとを有し、
前記複数の実計算機のうち第２の実計算機にて、
通信ステップと、
前記第２の実計算機の備える実ハードウェアデバイスを記載するステップと、
前記第１の実計算機で検出した結果を保存するステップと、
第２の実計算機の備える実ハードウェアデバイスを予約するステップとを有し、
さらに、デバイスドライバへの通信を検出した結果から実ハードウェアデバイスに関し、仮想計算機の必要とする性能を計算するステップと、
実計算機の実ハードウェアデバイスの代替となりうる実ハードウェアデバイスを提示するステップとを有することを特徴とするデバイス検出方法。
【請求項１４】
仮想計算機の使用するデバイスを検出するデバイス検出方法であって、
ネットワークに接続された複数の実計算機のうち第１の実計算機にて、
前記仮想計算機を区別するための識別子を検出するステップと、
前記仮想計算機からデバイスドライバへの通信を検出するステップと、
前記検出した結果を保存するステップと、
通信ステップと、
デバイスドライバへの通信を検出した結果から実ハードウェアデバイスに関し、仮想計算機の必要とする性能を計算するステップと、
実計算機の実ハードウェアデバイスの代替となりうる実ハードウェアデバイスを提示するステップとを有し、
ネットワークに接続された複数の実計算機のうち第２の実計算機にて、
通信ステップと、
前記第２の実計算機の備える実ハードウェアデバイスの性能を計測するステップと、
前記第１の実計算機で検出した結果を保存するステップと、
第２の実計算機の備える実ハードウェアデバイスを予約するステップとを有するデバイス検出方法。
【請求項１５】
仮想計算機の使用するデバイスを検出するデバイス検出方法であって、
ネットワークに接続された複数の実計算機のうち第１の実計算機にて、
前記仮想計算機を区別するための識別子を検出するステップと、
前記仮想計算機からデバイスドライバへの通信を検出するステップと、
前記検出した結果を保存するステップと、
通信ステップと、
デバイスドライバへの通信を検出した結果から実ハードウェアデバイスに関し、仮想計算機の必要とする性能を計算するステップとを有し、
前記複数の実計算機のうち第２の実計算機にて、
通信ステップと、
前記第２の実計算機の備える実ハードウェアデバイスの性能を計測するステップと、
前記第１の実計算機で検出した結果を保存するステップと、
第２の実計算機の備える実ハードウェアデバイスを予約するステップとを有し、
さらに、第２の実計算機の実ハードウェアデバイスの代替となりうる実ハードウェアデバイスを提示するステップを有することを特徴とするデバイス検出方法。
【請求項１６】
仮想計算機の使用するデバイスを検出するデバイス検出方法であって、
ネットワークに接続された複数の実計算機のうち第１の実計算機にて、
前記仮想計算機を区別するための識別子を検出するステップと、
前記仮想計算機からデバイスドライバへの通信を検出するステップと、
前記検出した結果を保存するステップと、
通信ステップと、
デバイスドライバへの通信を検出した結果から実ハードウェアデバイスに関し、仮想計算機の必要とする性能を計算するステップとを有し、
前記複数の実計算機のうち第２の実計算機にて、
通信ステップと、
実ハードウェアデバイスの代替となりうる実ハードウェアデバイスを提示するステップと、
前記第２の実計算機の備える実ハードウェアデバイスの性能を計測するステップと、
前記第１の実計算機で検出した結果を保存するステップと、
前記第２の実計算機の備える複数の実ハードウェアデバイスのうち、前記計測結果と、前記第１の実計算機で検出した結果とに基づく性能を具備する実ハードウェアデバイスを予約するステップとを有するデバイス検出方法。
【請求項１７】
（削除）
【請求項１８】
仮想計算機の使用するデバイスを検出するためのプログラムであって、
ネットワークに接続された複数の実計算機のうち第１の実計算機に、
前記仮想計算機を区別するための識別子を検出する処理と、
前記仮想計算機からデバイスドライバへの通信を検出する処理と、
前記検出した結果を保存する処理と、
通信処理とを実行させ、
前記複数の実計算機のうち第２の実計算機に、
通信処理と、
前記第２の実計算機の備える実ハードウェアデバイスを記載する処理と、
前記第１の実計算機で検出した結果を保存する処理と、
前記第２の実計算機と同様の仮想計算機を作成し、当該第２の実計算機の備える実ハードウェアデバイスを割り当てる処理とを実行させるプログラム。
【請求項１９】
請求項１８に記載のプログラムにおいて、
デバイスドライバへの通信を検出した結果においてシステムコールの引数から、実ハードウェアデバイスに関し、仮想計算機とデバイスドライバとのデータ通信量を計算する処理を実行させることを特徴とするプログラム。
【請求項２０】
仮想計算機の使用するデバイスを検出するためのプログラムであって、
ネットワークに接続された複数の実計算機のうち第１の実計算機に、
前記仮想計算機を区別するための識別子を検出する処理と、
前記仮想計算機からデバイスドライバへの通信を検出する処理と、
前記検出した結果を保存する処理と、
通信処理と、
デバイスドライバへの通信を検出した結果においてシステムコールの引数から、実ハードウェアデバイスに関し、仮想計算機とデバイスドライバとのデータ通信量を計算する処理とを実行させ、
前記複数の実計算機のうち第２の実計算機に、
通信処理と、
前記第２の実計算機の備える実ハードウェアデバイスの性能を計測する処理と、
前記第１の実計算機で検出した結果を保存する処理と、
前記第２の実計算機と同様の仮想計算機を作成し、当該第２の実計算機の備える実ハードウェアデバイスを割り当てる処理とを実行させるプログラム。
【請求項２１】
仮想計算機の使用するデバイスを検出するためのプログラムであって、
ネットワークに接続された複数の実計算機のうち第１の実計算機に、
前記仮想計算機を区別するための識別子を検出する処理と、
前記仮想計算機からデバイスドライバへの通信を検出する処理と、
前記検出した結果を保存する処理と、
通信処理とを実行させ、
前記複数の実計算機のうち第２の実計算機に、
通信処理と、
前記第２の実計算機の備える実ハードウェアデバイスを記載する処理と、
前記第１の実計算機で検出した結果を保存する処理と、
第２の実計算機の備える実ハードウェアデバイスを予約する処理とを実行させ、
さらに、デバイスドライバへの通信を検出した結果から実ハードウェアデバイスに関し、仮想計算機の必要とする性能を計算する処理と、
実計算機の実ハードウェアデバイスの代替となりうる実ハードウェアデバイスを提示する処理とを実行させることを特徴とするプログラム。
【請求項２２】
仮想計算機の使用するデバイスを検出するためのプログラムであって、
ネットワークに接続された複数の実計算機のうち第１の実計算機に、
前記仮想計算機を区別するための識別子を検出する処理と、
前記仮想計算機からデバイスドライバへの通信を検出する処理と、
前記検出した結果を保存する処理と、
通信処理と、
デバイスドライバへの通信を検出した結果から実ハードウェアデバイスに関し、仮想計算機の必要とする性能を計算する処理と、
実計算機の実ハードウェアデバイスの代替となりうる実ハードウェアデバイスを提示する処理とを実行させ、
ネットワークに接続された複数の実計算機のうち第２の実計算機に、
通信処理と、
前記第２の実計算機の備える実ハードウェアデバイスの性能を計測する処理と、
前記第１の実計算機で検出した結果を保存する処理と、
第２の実計算機の備える実ハードウェアデバイスを予約する処理とを実行させるプログラム。
【請求項２３】
仮想計算機の使用するデバイスを検出するためのプログラムであって、
ネットワークに接続された複数の実計算機のうち第１の実計算機に、
前記仮想計算機を区別するための識別子を検出する処理と、
前記仮想計算機からデバイスドライバへの通信を検出する処理と、
前記検出した結果を保存する処理と、
通信処理と、
デバイスドライバへの通信を検出した結果から実ハードウェアデバイスに関し、仮想計算機の必要とする性能を計算する処理とを実行させ、
前記複数の実計算機のうち第２の実計算機に、
通信処理と、
前記第２の実計算機の備える実ハードウェアデバイスの性能を計測する処理と、
前記第１の実計算機で検出した結果を保存する処理と、
第２の実計算機の備える実ハードウェアデバイスを予約する処理とを実行させ、
さらに、第２の実計算機の実ハードウェアデバイスの代替となりうる実ハードウェアデバイスを提示する処理を実行させることを特徴とするプログラム。
【請求項２４】
仮想計算機の使用するデバイスを検出するためのプログラムであって、
ネットワークに接続された複数の実計算機のうち第１の実計算機に、
前記仮想計算機を区別するための識別子を検出する処理と、
前記仮想計算機からデバイスドライバへの通信を検出する処理と、
前記検出した結果を保存する処理と、
通信処理と、
デバイスドライバへの通信を検出した結果から実ハードウェアデバイスに関し、仮想計算機の必要とする性能を計算する処理とを実行させ、
前記複数の実計算機のうち第２の実計算機に、
通信処理と、
実ハードウェアデバイスの代替となりうる実ハードウェアデバイスを提示する処理と、
前記第２の実計算機の備える実ハードウェアデバイスの性能を計測する処理と、
前記第１の実計算機で検出した結果を保存する処理と、
前記第２の実計算機の備える複数の実ハードウェアデバイスのうち、前記計測結果と、前記第１の実計算機で検出した結果とに基づく性能を具備する実ハードウェアデバイスを予約する処理とを実行させるプログラム。
【国際調査報告】
2009069385.tif 000037
2009069385.tif 000038
2009069385.tif 000039