Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
DEVICE DETECTOR, DEVICE DETECTION METHOD, AND PROGRAM
Document Type and Number:
WIPO Patent Application WO/2009/069385
Kind Code:
A1
Abstract:
A first real computer detects the identifier of a virtual computer and detects communication between the virtual computer and a device driver of a real hardware on a per-detected-identifier basis. Based on the detection result, the first real computer reserves a real hardware device of a second real computer and, from the reservation result, decides the second real computer that becomes a transfer destination.

Inventors:
TAKEUCHI TAKASHI (JP)
Application Number:
PCT/JP2008/068228
Publication Date:
June 04, 2009
Filing Date:
October 07, 2008
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
NEC CORP (JP)
TAKEUCHI TAKASHI (JP)
International Classes:
G06F9/46; G06F13/10
Foreign References:
JP3933587B22007-06-20
JP2006244481A2006-09-14
JPH05158721A1993-06-25
Attorney, Agent or Firm:
MIYAZAKI, Teruo et al. (16th Kowa Bldg.9-20, Akasaka,1-chome Minato-ku, Tokyo 52, JP)
Download PDF:
Claims:
 仮想計算機の使用するデバイスを検出するデバイス検出装置であって、
 前記仮想計算機が動作する実計算機で構成され、
 前記仮想計算機を区別するための識別子を検出する仮想計算機識別子検出手段と、
 前記仮想計算機からデバイスドライバへの通信を検出するデバイスアクセス検出手段と、
 前記検出した結果を保存するデバイス情報記憶部とを有するデバイス検出装置。
 仮想計算機の使用するデバイスを検出するデバイス検出装置であって、
 ネットワークに接続された複数の実計算機で構成され、
 前記複数の実計算機のうち第1の実計算機は、
 前記仮想計算機を区別するための識別子を検出する仮想計算機識別子検出手段と、
 前記仮想計算機からデバイスドライバへの通信を検出するデバイスアクセス検出手段と、
 前記検出した結果を保存するデバイス情報記憶部と、
 通信手段とを有し、
 前記複数の実計算機のうち第2の実計算機は、
 通信手段と、
 前記第2の実計算機の備える実ハードウェアデバイスを記載した実ハードウェアデバイス情報記憶部と、
 前記第1の実計算機で検出した結果を保存するデバイス情報記憶部と、
 前記第2の実計算機の備える実ハードウェアデバイスを予約するデバイス予約手段とを有するデバイス検出装置。
 請求項1に記載のデバイス検出装置において、
 デバイスドライバへの通信を検出した結果から実ハードウェアデバイスに関し、仮想計算機の必要とする性能を計算するデバイスアクセス統計手段を有することを特徴とするデバイス検出装置。
 仮想計算機の使用するデバイスを検出するデバイス検出装置であって、
 ネットワークに接続された複数の実計算機で構成され、
 前記複数の実計算機のうち第1の実計算機は、
 前記仮想計算機を区別するための識別子を検出する仮想計算機識別子検出手段と、
 前記仮想計算機からデバイスドライバへの通信を検出するデバイスアクセス検出手段と、
 前記検出した結果を保存するデバイス情報記憶部と、
 デバイスドライバへの通信を検出した結果から実ハードウェアデバイスに関し、仮想計算機の必要とする性能を計算するデバイスアクセス統計手段と、
 通信手段とを有し、
 前記複数の実計算機のうち第2の実計算機は、
 通信手段と、
 前記第2の実計算機の備える実ハードウェアデバイスの性能を計測するデバイス資源監視手段と、
 前記第1の実計算機で検出した結果を保存するデバイス情報記憶部と、
 前記第2の実計算機の備える実ハードウェアデバイスを予約するデバイス予約手段とを有するデバイス検出装置。
 請求項3に記載のデバイス検出装置において、
 実計算機の実ハードウェアデバイスの代替となりうる実ハードウェアデバイスを提示する代替デバイスライブラリ部を有することを特徴とするデバイス検出装置。
 仮想計算機の使用するデバイスを検出するデバイス検出装置であって、
 ネットワークに接続された複数の実計算機で構成され、
 前記複数の実計算機のうち第1の実計算機は、
 前記仮想計算機を区別するための識別子を検出する仮想計算機識別子検出手段と、
 前記仮想計算機からデバイスドライバへの通信を検出するデバイスアクセス検出手段と、
 前記検出した結果を保存するデバイス情報記憶部と、
 通信手段と、
 デバイスドライバへの通信を検出した結果から実ハードウェアデバイスに関し、仮想計算機の必要とする性能を計算するデバイスアクセス統計手段と、
 実計算機の実ハードウェアデバイスの代替となりうる実ハードウェアデバイスを提示する代替デバイスライブラリ部とを有し、
 前記複数の実計算機のうち第2の実計算機は、
 通信手段と、
 前記第2の実計算機の備える実ハードウェアデバイスの性能を計測するデバイス資源監視手段と、
 前記第1の実計算機で検出した結果を保存するデバイス情報記憶部と、
 前記第2の実計算機の備える実ハードウェアデバイスを予約するデバイス予約手段とを有するデバイス検出装置。
 請求項4に記載のデバイス検出装置において、
 前記第2の実計算機の実ハードウェアデバイスの代替となりうる実ハードウェアデバイスを提示する代替デバイスライブラリ部を有することを特徴とするデバイス検出装置。
 仮想計算機の使用するデバイスを検出するデバイス検出装置であって、
 ネットワークに接続された複数の実計算機で構成され、
 前記複数の実計算機のうち第1の実計算機は、
 前記仮想計算機を区別するための識別子を検出する仮想計算機識別子検出手段と、
 前記仮想計算機からデバイスドライバへの通信を検出するデバイスアクセス検出手段と、
 前記検出した結果を保存するデバイス情報記憶部と、
 通信手段と、
 デバイスドライバへの通信を検出した結果から実ハードウェアデバイスに関し、仮想計算機の必要とする性能を計算するデバイスアクセス統計手段とを有し、
 前記複数の実計算機のうち第2の実計算機は、
 通信手段と、
 実ハードウェアデバイスの代替となりうる実ハードウェアデバイスを提示する代替デバイスライブラリ部と、
 前記第2の実計算機の備える実ハードウェアデバイスの性能を計測するデバイス資源監視手段と、
 前記第1の実計算機で検出した結果を保存するデバイス情報記憶部と、
 前記第2の実計算機の備える複数の実ハードウェアデバイスのうち、前記デバイス資源監視手段における計測結果と、前記デバイス情報記憶部に保存された結果とに基づく性能を具備する実ハードウェアデバイスを予約するデバイス予約手段とを有するデバイス検出装置。
 仮想計算機の使用するデバイスを検出するデバイス検出方法であって、
 前記仮想計算機が動作する実計算機にて、
 前記仮想計算機を区別するための識別子を検出するステップと、
 前記仮想計算機からデバイスドライバへの通信を検出するステップと、
 前記検出した結果を保存するステップとを有するデバイス検出方法。
 仮想計算機の使用するデバイスを検出するデバイス検出方法であって、
 ネットワークに接続された複数の実計算機のうち第1の実計算機にて、
 前記仮想計算機を区別するための識別子を検出するステップと、
 前記仮想計算機からデバイスドライバへの通信を検出するステップと、
 前記検出した結果を保存するステップと、
 通信ステップとを有し、
 前記複数の実計算機のうち第2の実計算機にて、
 通信ステップと、
 前記第2の実計算機の備える実ハードウェアデバイスを記載するステップと、
 前記第1の実計算機で検出した結果を保存するステップと、
 第2の実計算機の備える実ハードウェアデバイスを予約するステップとを有するデバイス検出方法。
 請求項9に記載のデバイス検出方法において、
 デバイスドライバへの通信を検出した結果から実ハードウェアデバイスに関し、仮想計算機の必要とする性能を計算するステップを有することを特徴とするデバイス検出方法。
 仮想計算機の使用するデバイスを検出するデバイス検出方法であって、
 ネットワークに接続された複数の実計算機のうち第1の実計算機にて、
 前記仮想計算機を区別するための識別子を検出するステップと、
 前記仮想計算機からデバイスドライバへの通信を検出するステップと、
 前記検出した結果を保存するステップと、
 通信ステップと、
 デバイスドライバへの通信を検出した結果から実ハードウェアデバイスに関し、仮想計算機の必要とする性能を計算するステップとを有し、
 前記複数の実計算機のうち第2の実計算機にて、
 通信ステップと、
 前記第2の実計算機の備える実ハードウェアデバイスの性能を計測するステップと、
 前記第1の実計算機で検出した結果を保存するステップと、
 第2の実計算機の備える実ハードウェアデバイスを予約するステップとを有するデバイス検出方法。
 請求項11に記載のデバイス検出方法において、
 実計算機の実ハードウェアデバイスの代替となりうる実ハードウェアデバイスを提示するステップを有することを特徴とするデバイス検出方法。
 仮想計算機の使用するデバイスを検出するデバイス検出方法であって、
 ネットワークに接続された複数の実計算機のうち第1の実計算機にて、
 前記仮想計算機を区別するための識別子を検出するステップと、
 前記仮想計算機からデバイスドライバへの通信を検出するステップと、
 前記検出した結果を保存するステップと、
 通信ステップと、
 デバイスドライバへの通信を検出した結果から実ハードウェアデバイスに関し、仮想計算機の必要とする性能を計算するステップと、
 実計算機の実ハードウェアデバイスの代替となりうる実ハードウェアデバイスを提示するステップとを有し、
 ネットワークに接続された複数の実計算機のうち第2の実計算機にて、
 通信ステップと、
 前記第2の実計算機の備える実ハードウェアデバイスの性能を計測するステップと、
 前記第1の実計算機で検出した結果を保存するステップと、
 第2の実計算機の備える実ハードウェアデバイスを予約するステップとを有するデバイス検出方法。
 請求項12に記載のデバイス検出方法において、
 第2の実計算機の実ハードウェアデバイスの代替となりうる実ハードウェアデバイスを提示するステップを有することを特徴とするデバイス検出方法。
 仮想計算機の使用するデバイスを検出するデバイス検出方法であって、
 ネットワークに接続された複数の実計算機のうち第1の実計算機にて、
 前記仮想計算機を区別するための識別子を検出するステップと、
 前記仮想計算機からデバイスドライバへの通信を検出するステップと、
 前記検出した結果を保存するステップと、
 通信ステップと、
 デバイスドライバへの通信を検出した結果から実ハードウェアデバイスに関し、仮想計算機の必要とする性能を計算するステップとを有し、
 前記複数の実計算機のうち第2の実計算機にて、
 通信ステップと、
 実ハードウェアデバイスの代替となりうる実ハードウェアデバイスを提示するステップと、
 前記第2の実計算機の備える実ハードウェアデバイスの性能を計測するステップと、
 前記第1の実計算機で検出した結果を保存するステップと、
 前記第2の実計算機の備える複数の実ハードウェアデバイスのうち、前記計測結果と、前記第1の実計算機で検出した結果とに基づく性能を具備する実ハードウェアデバイスを予約するステップとを有するデバイス検出方法。
 仮想計算機の使用するデバイスを検出するためのプログラムであって、
 仮想計算機が動作する実計算機に、
 前記仮想計算機を区別するための識別子を検出する処理と、
 前記仮想計算機からデバイスドライバへの通信を検出する処理と、
 前記検出した結果を保存する処理とを実行させるプログラム。
 仮想計算機の使用するデバイスを検出するためのプログラムであって、
 ネットワークに接続された複数の実計算機のうち第1の実計算機に、
 前記仮想計算機を区別するための識別子を検出する処理と、
 前記仮想計算機からデバイスドライバへの通信を検出する処理と、
 前記検出した結果を保存する処理と、
 通信処理とを実行させ、
 前記複数の実計算機のうち第2の実計算機に、
 通信処理と、
 前記第2の実計算機の備える実ハードウェアデバイスを記載する処理と、
 前記第1の実計算機で検出した結果を保存する処理と、
 第2の実計算機の備える実ハードウェアデバイスを予約する処理とを実行させるプログラム。
 請求項17に記載のプログラムにおいて、
 デバイスドライバへの通信を検出した結果から実ハードウェアデバイスに関し、仮想計算機の必要とする性能を計算する処理を実行させることを特徴とするプログラム。
 仮想計算機の使用するデバイスを検出するためのプログラムであって、
 ネットワークに接続された複数の実計算機のうち第1の実計算機に、
 前記仮想計算機を区別するための識別子を検出する処理と、
 前記仮想計算機からデバイスドライバへの通信を検出する処理と、
 前記検出した結果を保存する処理と、
 通信処理と、
 デバイスドライバへの通信を検出した結果から実ハードウェアデバイスに関し、仮想計算機の必要とする性能を計算する処理とを実行させ、
 前記複数の実計算機のうち第2の実計算機に、
 通信処理と、
 前記第2の実計算機の備える実ハードウェアデバイスの性能を計測する処理と、
 前記第1の実計算機で検出した結果を保存する処理と、
 第2の実計算機の備える実ハードウェアデバイスを予約する処理とを実行させるプログラム。
 請求項19に記載のプログラムにおいて、
 実計算機の実ハードウェアデバイスの代替となりうる実ハードウェアデバイスを提示する処理を実行させることを特徴とするプログラム。
 仮想計算機の使用するデバイスを検出するためのプログラムであって、
 ネットワークに接続された複数の実計算機のうち第1の実計算機に、
 前記仮想計算機を区別するための識別子を検出する処理と、
 前記仮想計算機からデバイスドライバへの通信を検出する処理と、
 前記検出した結果を保存する処理と、
 通信処理と、
 デバイスドライバへの通信を検出した結果から実ハードウェアデバイスに関し、仮想計算機の必要とする性能を計算する処理と、
 実計算機の実ハードウェアデバイスの代替となりうる実ハードウェアデバイスを提示する処理とを実行させ、
 ネットワークに接続された複数の実計算機のうち第2の実計算機に、
 通信処理と、
 前記第2の実計算機の備える実ハードウェアデバイスの性能を計測する処理と、
 前記第1の実計算機で検出した結果を保存する処理と、
 第2の実計算機の備える実ハードウェアデバイスを予約する処理とを実行させるプログラム。
 請求項20に記載のプログラムにおいて、
 第2の実計算機の実ハードウェアデバイスの代替となりうる実ハードウェアデバイスを提示する処理を実行させることを特徴とするプログラム。
 仮想計算機の使用するデバイスを検出するためのプログラムであって、
 ネットワークに接続された複数の実計算機のうち第1の実計算機に、
 前記仮想計算機を区別するための識別子を検出する処理と、
 前記仮想計算機からデバイスドライバへの通信を検出する処理と、
 前記検出した結果を保存する処理と、
 通信処理と、
 デバイスドライバへの通信を検出した結果から実ハードウェアデバイスに関し、仮想計算機の必要とする性能を計算する処理とを実行させ、
 前記複数の実計算機のうち第2の実計算機に、
 通信処理と、
 実ハードウェアデバイスの代替となりうる実ハードウェアデバイスを提示する処理と、
 前記第2の実計算機の備える実ハードウェアデバイスの性能を計測する処理と、
 前記第1の実計算機で検出した結果を保存する処理と、
 前記第2の実計算機の備える複数の実ハードウェアデバイスのうち、前記計測結果と、前記第1の実計算機で検出した結果とに基づく性能を具備する実ハードウェアデバイスを予約する処理とを実行させるプログラム。
Description:
デバイス検出装置、デバイス検 方法及びプログラム

 本発明は、仮想計算機をマイグレーショ する装置、方法及びプログラムに関し、特 、仮想計算機の使用する実ハードウェアデ イスを検出するデバイス検出装置、デバイ 検出方法及びプログラムに関する。

 実ハードウェアで構成される複数の計算 間で、仮想計算機を移送するマイグレーシ ン技術がある。仮想計算機をマイグレーシ ンする場合、仮想計算機が使用する実ハー ウェアデバイスと、その性能を検知する必 がある。検知した結果を活用して、マイグ ーション先となりうる実ハードウェアで構 される計算機に対する、マイグレーション 可否を決定できる。マイグレーションの可 の決定方法については、例えば、特開2001-13 4541号公報(以下、特許文献1と称する)に記載 れた方法がある。

 仮想計算機の使用する実ハードウェアデ イスを検知する装置、方法およびプログラ の一例が、特許第3933587号公報(以下、特許 献2と称する)に記載されている。図1に示す うに、この装置は、第1の実ハードウェアデ イス2110を備える第1の計算機2101と、第1の計 算機2101に通信路を通して接続された第2の実 ードウェアデバイス2129を備える第2の計算 2121との間で、カーネル2102を移送する装置で ある。

 第1の計算機2101は、第1のハードウェアデ イス2110を制御する第1のデバイスドライバ21 07の状態を記憶する第1の状態管理表2104と、 ーネル2102からデバイスドライバ2107への第1 アクセスの内容を監視し、その監視された 1のアクセスに基づいて、第1の状態管理表210 4に記憶される第1のデバイスドライバの状態 変化が生じたときに、第1の状態管理表2104 、あるデバイスの状態を他のデバイスと同 の状態にするために、その変化に応じて更 する第1の状態管理部2103と、カーネル2102の ンテキストを、通信路を通して第2の計算機2 121に送信する送信手段を有する。第2の計算 2121は、通信路を通して受信したカーネルコ テキストに基づいて、第2の計算機2121にお てカーネル2102を復元する手段と、カーネル2 102が認識している実ハードウェアデバイス211 0の種類と、第2の計算機が備える第2の実ハー ドウェアデバイス2129の種類と、第2の実ハー ウェアデバイス2129を制御する第2のデバイ ドライバ2127の状態を記憶する第2の状態管理 表2124と、復元された前記カーネルから第2の バイスドライバへ第2のアクセスの内容を監 視し、その監視された第2のアクセスの内容 基づいて、第2の状態管理表2124に記憶される 第2のデバイスドライバ2127の状態に変化が生 たときに、第2の状態管理表2124を、あるデ イスの状態を他のデバイスと同一の状態に るために、その変化した状態に応じて更新 る第2の状態管理部2123を有する。

 第1の状態管理部2103は、送信手段が、カ ネル2102のコンテキストを第2の計算機2121へ 信する場合、カーネル2102を停止し、停止後 第1の状態管理表2104の内容を前記第2の計算 へ通信路を通して送信し、第2の状態管理表 2124は、通信路を通して受信した第1の状態管 表2104の内容に基づいて、第2のデバイスド イバ2127により制御される第2の実ハードウェ アデバイス2129の状態を、第1のデバイスドラ バ2107により制御される第2の実ハードウェ デバイス2129と同一の状態に復元し、カーネ 2102が認識している実ハードウェア2110の種 と、第2の計算機2121が備える第2の実ハード ェアデバイス2129の種類とがお互いに異なる 合、第2の状態管理表2124に基づいて第2の実 ードウェアデバイス2129に適合するように第 2のアクセスの内容を変換して、第2の実ハー ウェアデバイス2129へアクセスさせる。

 仮想計算機の使用する実ハードウェアデ イスを検知する装置、方法およびプログラ の更なる一例が、特開平2-109148号公報(以下 特許文献3と称する)に記載されている。図2 示すように、この方法は、測定対象装置ま は測定対象装置を制御する上位装置内に資 使用率測定装置3117,3118,3114を設け、サービ プロセッサ3112内に資源使用率警告表示装置3 115を設け、測定装置3117,3118,3114から警告表示 置3115内に測定対象の装置番号を記憶する記 憶装置である装置番号記憶装置を設け、シス テム運用者がサービスプロセッサの対人イン ターフェースを介して自由に設定可能とする ことにより、当該システムの性能限界検出の ために真に必要な監視対象に限定した測定対 象装置の指定を可能とする。

 仮想計算機の使用する実ハードウェアデ イスを検知する装置、方法およびプログラ の更なる一例が、特開2007-200346号公報(以下 特許文献4と称する)に記載されている。図3 示すように、この方法は、物理計算機を複 の論理区画(以下、LPARと称する)に分割し、 LPAR4210,・・・,421m上でそれぞれOS4220,・・・, 422mが動作し、各LPAR4210,・・・,421mに対する物 理計算機の資源の割当を制御するハイパバイ ザ(割当手段)4200を有する仮想計算機システム であって、仮想計算機システムの制御動作に かかわる1つ、または、複数の設定を入力す ユーザ・インターフェースと、該ユーザ・ ンターフェースから入力された設定に従っ 、各LPAR4210,・・・,421m上のOS4220,・・・,422mの 負荷計測する負荷計測部4400,・・・,440mと、 負荷計測部4400,・・・,440mによって計測され 各LPAR4210,・・・,421m上のOS4220,・・・,422mの 荷に基づいて、各LPARに割り当てる計算機資 の割当率を決定し、該割当率がこれまで割 当ててきた割当率と異なる場合は、ハイパ イザに対し、割当率の変更を指示する(割当 率変更)適応制御部4300を有し、ハイパバイザ4 200は、該適応制御部4300からの指示に従って LPAR4210,・・・,421mに対する計算機資源の割当 率を動的に変更する手段を設ける。

 しかしながら、上述したような技術にお ては下記のような問題点がある。

 (1)特許文献2,3に記載されたものにおいて 、特許文献2に記載された状態管理部は、実 ハードウェアデバイスを備える計算機と1対1 対応するためであり、また、特許文献3に記 載されたサービスプロセッサは、システム全 体の資源の使用率のみを監視の対象としてい るためであるため、実ハードウェアデバイス を備える1台の計算機に、複数の仮想計算機 ある場合は考慮されていない。

 (2)特許文献2に記載されたものにおいては 、状態管理部がデバイスの種類のみを識別の 対象としているため、カーネルが必要とする 実ハードウェアデバイス性能を、計算機が備 える実ハードウェアデバイスで満たさない場 合は考慮されていない。

 (3)特許文献4に記載されたものにおいては 、各仮想計算機(OS)に負荷計測部があるため マイグレーションを実施するときに、負荷 測部も移送しなくてはならず、さらに、計 資源の割当率の変更を指示する適応制御部 、移送先の実計算機と移送前の実計算機の で、互換性をもつ必要がある。そのため、 想計算機(OS)に対してマイグレーションを実 するときの、通信負荷や負荷情報に関する 計算機とのインターフェースを考慮してい い。

 本発明の第1の目的は、実ハードウェアデ バイスで構成される計算機で、複数の仮想計 算機が動作する場合において、仮想計算機ご とに、マイグレーション先として適切な実ハ ードウェアデバイスで構成される計算機を決 定できるデバイス検出装置、デバイス検出方 法及びプログラムを提供することである。

 本発明の第2の目的は、第1の目的を達成 るため、仮想計算機ごとに、前記仮想計算 が使用する実ハードウェアデバイスを検出 きるデバイス検出装置、デバイス検出方法 びプログラムを提供することにある。

 本発明の第3の目的は、第1の目的を達成 るため、実ハードウェアデバイスに関し、 想計算機が必要とする性能を測定できるデ イス検出装置、デバイス検出方法及びプロ ラムを提供することにある。

 本発明の第4の目的は、第1の目的を達成 るため、実ハードウェアデバイスに関し、 イグレーション先の計算機で前記仮想計算 が必要とする性能を満たさない場合であっ も、代替実ハードウェアデバイスを予約す ことで、仮想計算機が移送先の計算機で動 できる可能性を高めるデバイス検出装置、 バイス検出方法及びプログラムを提供する とにある。

 上記目的を達成するために本発明は、
 仮想計算機の使用するデバイスを検出する バイス検出装置であって、
 前記仮想計算機が動作する実計算機で構成 れ、
 前記仮想計算機を区別するための識別子を 出する仮想計算機識別子検出手段と、
 前記仮想計算機からデバイスドライバへの 信を検出するデバイスアクセス検出手段と
 前記検出した結果を保存するデバイス情報 憶部とを有する。

 本発明の第1の仮想計算機の使用する実ハ ードウェアデバイスを検知するデバイス検出 装置、デバイス検出方法及びプログラムは、 ネットワークに接続された2台以上の実計算 で構成される。第1の実計算機は、カーネル 仮想デバイスドライバを含む仮想計算機と 仮想計算機のデバイス構成に関する情報が 存されるデバイス情報記憶部と、仮想計算 固有の識別子を検出する仮想計算機識別子 出手段と、仮想計算機ごとに実ハードウェ デバイスへのアクセスを検出するデバイス クセス検出手段と、デバイスドライバと、 ハードウェアデバイスと通信手段とを備え 。第2の実計算機は、デバイス情報記憶部と 実ハードウェアデバイス情報記憶部と、デバ イス予約手段と、実ハードウェアデバイスと 、通信手段とを備える。このような構成を採 用し、第1の実計算機で、前記仮想デバイス ライバとデバイスドライバとの通信の発信 となる仮想計算機を、仮想計算機識別子に り識別し、前記識別された仮想計算機ごと 前記仮想計算機が必要とする実ハードウェ デバイスを検出し、前記識別された仮想計 機識別子と実ハードウェアデバイスとの対 関係をデバイス情報としてデバイス情報記 部に保存し、前記デバイス情報記憶部に保 された情報を、第2の実計算機に通知し、第2 の実計算機で、前記通知された情報を基にし て適切な実ハードウェアデバイスを予約する 、さらには、予約の結果を基にして適切な実 ハードウェアデバイスを備えた実計算機をマ イグレーション先として決定することにより 、本発明の第1の目的と第2の目的を達成する

 また、本発明の第2の仮想計算機の使用す る実ハードウェアデバイスを検知するデバイ ス検出装置、デバイス検出方法及びプログラ ムは、本発明の第1の仮想計算機の使用する ハードウェアデバイスを検知するデバイス 出装置、デバイス検出方法及びプログラム 第1の実計算機の構成に加え、第1の実計算機 に、実ハードウェアデバイスに関し、仮想計 算機の必要とする性能を計算するデバイスア クセス統計手段を備える。このような構成を 採用し、第1の実計算機で、仮想デバイスド イバとデバイスドライバとの通信の発信元 なる仮想計算機を、仮想計算機識別子によ 識別し、実ハードウェアデバイスに関し、 記識別された仮想計算機ごとに前記仮想計 機が必要とする性能を計算し、前記仮想計 機識別子と、実ハードウェアデバイスと、 要とされる実ハードウェアデバイスの性能 の対応関係をデバイス情報としてデバイス 報記憶部に保存し、前記デバイス情報記憶 に保存された情報を、第2の実計算機に通知 、第2の実計算機で、通知された情報を基に して適切な実ハードウェアデバイスを予約す る、さらには、予約の結果を基にして適切な 実ハードウェアデバイスを備えた実計算機を マイグレーション先として決定することによ り、さらに第3の目的を達成する。

 さらに、本発明の第3の仮想計算機の使用 する実ハードウェアデバイスを検知するデバ イス検出装置、デバイス検出方法及びプログ ラムは、本発明の第2の仮想計算機の使用す 実ハードウェアデバイスを検知するデバイ 検出装置、デバイス検出方法及びプログラ の構成に加え、第1の実計算機に、仮想計算 の使用している実ハードウェアデバイスの 替実ハードウェアデバイスを選定する代替 バイス選定手段と、第1の実計算機の備える 実ハードウェアデバイスの代替となる実ハー ドウェアデバイスの情報が保存された代替デ バイスライブラリ部を備える。このような構 成を採用し、第1の実計算機で、仮想デバイ ドライバとデバイスドライバとの通信の発 元となる仮想計算機を、仮想計算機識別子 より識別し、前記識別された仮想計算機ご に前記仮想計算機が必要とする実ハードウ アデバイスを検出し、実ハードウェアデバ スに関し、前記識別された仮想計算機ごと 前記仮想計算機が必要とする性能を計算し さらに、前記検出した結果と計算した結果 ら、仮想計算機が必要とする性能を満たす 替実ハードウェアデバイスを選定し、前記 想計算機識別子と、実ハードウェアデバイ と、必要とされる実ハードウェアデバイス 性能と、代替実ハードウェアデバイスの対 関係をデバイス情報としてデバイス情報記 部に保存し、前記保存された情報を、第2の 計算機に通知し、第2の実計算機で、前記通 知された情報を基にして、マイグレーション 先で適切な実ハードウェアデバイスを予約す る、さらには、予約の結果を基にして適切な 実ハードウェアデバイスを備えた実計算機を マイグレーション先として決定することによ り、本発明の第1から第4までの目的を達成す 。

 さらに、本発明の第4の仮想計算機の使用 する実ハードウェアデバイスを検知するデバ イス検出装置、デバイス検出方法及びプログ ラムは、本発明の第2の仮想計算機の使用す 実ハードウェアデバイスを検知するデバイ 検出装置、デバイス検出方法及びプログラ の構成に加え、第2の実計算機に、第2の実計 算機の備える実ハードウェアデバイスの提供 できる資源量、すなわち、性能を計測するデ バイス資源監視手段と、第2の実計算機の備 る実ハードウェアデバイスの代替となる実 ードウェアデバイスの情報が保存された代 デバイスライブラリ部を備える。このよう 構成を採用し、第2の実計算機で、デバイス 源監視手段が、第2の実計算機の備える実ハ ードウェアデバイスの提供できる資源量、す なわち、性能を計測し、第1の実計算機から 知されたデバイス情報を基にして実ハード ェアデバイスを予約するときに、必要とさ る性能を満たした実ハードウェアデバイス 第2の実計算機にない場合、第2の実計算機で 、代替デバイスライブラリ部から代替となる 実ハードウェアデバイスを予約する、さらに は、マイグレーション先として決定すること により、本発明の第1から第4までの目的を達 する。

 本発明は、以下に記載するような効果を する。

 (1)第1の実計算機で、デバイスアクセス検 出手段が、仮想デバイスドライバとデバイス ドライバとの通信の発信元となる仮想計算機 を、仮想計算機識別子より識別し、仮想計算 機ごとに監視するため、第1の実計算機で、 想計算機が使用する実ハードウェアデバイ を、仮想計算機ごとに検出することで、第1 計算機が、マイグレーション先として適切 実ハードウェアデバイスで構成される第2の 実計算機を決定できる。

 (2)第1の実計算機で、デバイスアクセス検 出手段が監視した結果を基にして、デバイス アクセス統計手段が、性能を示す統計情報を 計算するため、第1の実計算機で、実ハード ェアデバイスに関し、仮想計算機が必要と る性能を計算することで、第1の計算機が、 イグレーション先として適切な実ハードウ アデバイスで構成される第2の実計算機を決 定できる。

 (3)第1の実計算機で、仮想計算機ごとに実 ハードウェアデバイスに関し、仮想計算機が 必要とする性能を満たす実ハードウェアデバ イスの代替デバイスを、代替デバイス選定手 段が、代替デバイスライブラリ部から選定し 、デバイス情報記憶部に保存するため、第1 実計算機で、第2の実計算機に、仮想計算機 必要とする性能を満たした実ハードウェア バイスが予約できない場合、代替実ハード ェアデバイスを予約することで、第1の実計 算機での動作と同じ動作をできる可能性が高 まる。

 (4)第1の実計算機で、仮想デバイスドライ バとデバイスドライバとの発信元を、仮想計 算機識別子より識別し、さらに必要とされる 性能を計算し、結果を情報記憶部に保存して 、第2の実計算機に送信し、第2の実計算機で デバイス予約手段が、第2の実計算機の実ハ ードウェアデバイスが、仮想計算機の必要と する性能を満たすことができないと判断した 場合、第2の実計算機の他の実ハードウェア バイスを、代替実ハードウェアデバイスと て、予約を試みるため、第1の実計算機で、 想計算機が使用していた実ハードウェアデ イスと同じであるが、第2の実計算機の備え る実ハードウェアデバイスが、例えば、他の プロセスとの競合により、仮想計算機が必要 とする性能を満たさなかった場合であっても 、仮想計算機は、第2の実計算機で、適切な 替ハードウェヘアデイバスを使用すること 、第1の実計算機での動作と同じ動作をでき 可能性が高まる。

仮想計算機の使用する実ハードウェア バイスを検知する装置、方法およびプログ ムの一例を示すブロック図である。 仮想計算機の使用する実ハードウェア バイスを検知する装置、方法およびプログ ムの一例を示すブロック図である。 仮想計算機の使用する実ハードウェア バイスを検知する装置、方法およびプログ ムの一例を示すブロック図である。 本発明の第1の実施の形態の構成を示す ブロック図である。 本発明の第1の実施の形態の構成を示す ブロック図である。 本発明の第1の実施の形態のデバイス情 報記憶部の例を示す図である。 本発明の第1の実施の形態の動作を示す フローチャートである。 本発明の第1の実施の形態の動作を示す フローチャートである。 本発明の第1の実施の形態の構成を示す ブロック図である。 本発明の第1の実施の形態の動作を示 フローチャートである。 本発明の第2の実施の形態の構成を示 ブロック図である。 本発明の第2の実施の形態のデバイス 報記憶部の例を示す図である。 本発明の第2の実施の形態の動作を示 フローチャートである。 本発明の第2の実施の形態の構成を示 ブロック図である。 本発明の第2の実施の形態の動作を示 フローチャートである。 本発明の第3の実施の形態の構成を示 ブロック図である。 本発明の第3の実施の形態のデバイス 報記憶部の例を示す図である。 本発明の第3の実施の形態の動作を示 フローチャートである。 本発明の第4の実施の形態の構成を示 ブロック図である。 本発明の第4の実施の形態のデバイス 報記憶部の例を示す図である。 本発明の第4の実施の形態の動作を示 フローチャートである。 本発明の第1の実施例の構成を示すブ ック図である。 本発明の第1の実施例の構成を示すブ ック図である。 本発明の第1の実施例の構成を示すブ ック図である。 本発明の第2の実施例の構成を示すブ ック図である。 本発明の第2の実施例の構成を示すブ ック図である。 本発明の第3の実施例の構成を示すブ ック図である。 本発明の第3の実施例の構成を示すブ ック図である。 本発明の第4の実施例の構成を示すブ ック図である。 本発明の第4の実施例の構成を示すブ ック図である。 本発明の第5の実施例の構成を示すブ ック図である。 本発明の第6の実施例の構成を示すブ ック図である。 本発明の第7の実施例の構成を示すブ ック図である。 本発明の第8の実施例の構成を示すブ ック図である。

 以下に、本発明の実施の形態について図 を参照して説明する。

 (第1の実施の形態)
 本発明の第1の実施の形態について図面を参 照して詳細に説明する。

 本発明の第1の実施の形態は、第1の実計 機で、仮想計算機ごとに、仮想計算機が使 している実ハードウェアデバイスの情報を 存したデバイス構成情報を作成し、その情 を第2の実計算機に送信し、第2の実計算機で 受信した情報を参照して、仮想計算機の必要 とする実ハードウェアデバイスを予約、予約 結果をマイグレーションの可否判定に活用す る。

 図4を参照すると、本発明の第1の実施の 態は、ネットワーク10に接続された、実計算 機1a、実計算機1bで構成される。実計算機1aは 、第1の実計算機であり、仮想計算機の移送 (以下、マイグレーション元と称する)である 。実計算機1bは、第2の実計算機であり、仮想 計算機の移送先(以下、マイグレーション先 称する)である。ネットワーク10には、実計 機1a、実計算機1b以外の実計算機が接続され いてもよく、複数の実計算機1a、複数の実 算機1bがあってもよい。さらに、1台の実計 機に実計算機1aの機能と実計算機1bの機能が まれていてもよい。

 実計算機1aは、プログラム制御により動 する計算機であり、図5を参照すると、主記 装置2aと、データ処理装置3aと、実ハードウ ェアデバイス4aと、通信手段5aを含む。

 主記憶装置2aは、仮想計算機21とデバイス 情報記憶部22を含む。

 仮想計算機21は、OSのカーネル211と仮想デ バイスドライバ212を含む。仮想計算機21は、 の動作の状態によって、実ハードウェアデ イス4aの1つである補助記憶装置やデータ処 装置3aにも存在するが、仮想計算機21が実計 算機1aのどの部分で動作するかについて、当 者には明らかである。仮想デバイスドライ 212は、デバイスアクセス検出手段32aと、直 、制御信号のやり取りをしても、仮想デバ ス(不図示)を介して制御信号のやり取りを てもよい。

 デバイス情報記憶部22は、仮想計算機21が 使用する実ハードウェアデバイス4aの情報を 存する。実ハードウェアデバイス4aの情報 は、例えば、実ハードウェアデバイス4aの名 称や、型番など、製品を識別できる情報であ る。保存された情報の例を、図6に示す。

 データ処理装置3aは、仮想計算機識別子 出手段31aと、デバイスアクセス検出手段32a 、デバイスドライバ33aを含む。

 仮想計算機識別子検出手段31aは、仮想計 機21の固有の識別子を検出する。識別子と ては、例えば、仮想計算機21に割り振られる プロセスIDや、仮想計算機21を実計算機1aで動 作させる仮想計算機モニタ(不図示)が仮想計 機ごとに割り当てた仮想計算機を管理する 造体/配列/レジスタである。本明細書では 仮想計算機21を実計算機で動作させるために 、例えば、仮想計算機に対する資源の分配な どを行うプログラムを、仮想計算機モニタと 総称する。仮想計算機識別子検出手段31aが仮 想計算機21の固有の識別子を検出する方法と て、例えば、仮想計算機モニタの仮想計算 21を管理するデータからプロセスIDを検出す るための処理を埋め込む方法、仮想計算機21 とに割り当てられた仮想計算機21を管理す 構造体/配列/レジスタへの書き込みを、ポー リングや割込みなどで監視する方法などが考 えられる。

 デバイスアクセス検出手段32aは、仮想デ イスドライバ212からデバイスドライバ33aへ アクセスのアクセス元となる仮想計算機21 、仮想計算機識別子により識別し、仮想計 機21ごとにデバイスドライバ33aへのアクセス を検出する。検出方法としては、例えば、仮 想計算機21から仮想計算機モニタへのシステ コールをプロセスIDごとに監視する方法や 仮想計算機21と仮想計算機モニタ、および/ たは、仮想計算機21と他の仮想計算機(不図 )との通信に用いられる共有メモリ領域、共 レジスタを監視する方法、仮想計算機21と 想計算機モニタ、および/または、仮想計算 21と他の仮想計算機との通信に用いられる ッセージの内容を監視する方法がある。

 デバイスドライバ33aは、仮想デバイスド イバ212と制御信号をやり取りすることで、1 対1に対応する実ハードウェアデバイス4aを制 御する。

 実ハードウェアデバイス4aは、デバイス ライバ33aに制御され、動作する。

 通信手段5aは、実計算機1bとネットワーク 10を介して他の実計算機と情報をやり取りす 。とくに、本実施の形態では、デバイス情 記憶部22に保存された情報のネットワーク10 を介した実計算機1bへの送信と、実計算機1b の実ハードウェアデバイス4bの予約の結果の 受信に使用される。

 次に、図7及び図8のフローチャートを参 して本実施の形態の実計算機1aの動作につい て詳細に説明する。本実施の形態の実計算機 1aの動作は、仮想計算機識別子の検出過程と デバイス情報記憶部22に保存されるデバイ 情報の作成過程に分けられる。

 仮想計算機識別子の検出過程について説 する。実計算機1aの仮想計算機モニタが、 想計算機21に仮想計算機識別子を割り当て、 仮想計算機21を起動する(ステップ1)。

 起動した仮想計算機21の仮想計算機識別 を仮想計算機識別子検出手段31aが検出する( テップ2)。

 仮想計算機が停止しておらず、もしくは マイグレーションが実行されずに実計算機1 に存在するならば(ステップ3,4)、ステップ2に 戻る。

 デバイス情報記憶部22に保存されるデバ ス情報の作成過程について説明する。

 仮想計算機21が、仮想デバイスドライバ21 2にアクセスする(ステップ11)。

 仮想計算機識別子検出手段31aが、仮想計 機識別子を検出していたならば(ステップ12) 、デバイスアクセス検知手段32aが仮想デバイ スドライバ212からデバイスドライバ33aへのア クセスを検知し、検知した情報をデバイス情 報記憶部22へ保存する(ステップ13)。

 通信手段5aが、保存したデバイス情報を 実計算機1bに通知する(ステップ14)。

 次に、実計算機1bについて説明する。

 実計算機1bは、プログラム制御により動 し、図9を参照すると、主記憶装置2bと、デ タ処理装置3bと、実ハードウェアデバイス4b 、通信手段5bを含む。

 主記憶装置2bは、デバイス情報記憶部22と 実ハードウェアデバイス情報記憶部26bを含む 。

 デバイス情報記憶部22は、実計算機1aで作 成され、ネットワーク10を介して、通知され 実ハードウェアデバイス4aの情報を保存し いる。

 実ハードウェアデバイス情報記憶部26bは 実計算機1bがどのような実ハードウェアデ イス4bを備えているかに関する情報を保存し ている。この情報は、例えば、実計算機1bで 作するOS(不図示)、もしくは、仮想マシンモ ニタが検出している情報である。OS、もしく 、仮想マシンモニタが検出する方法は、当 者には明らかである。

 データ処理装置3bは、デバイス予約手段38 bを含む。

 デバイス予約手段38bは、実ハードウェア バイス情報記憶部26bを参照し、デバイス情 記憶部22に記載されたデバイスを、他の仮 計算機などのプログラムにより、占有され いように予約する。予約する方法としては 例えば、実ハードウェアデバイス4bと仮想計 算機21との対応を示す表を作成し、実ハード ェアを占有する場合は、該当する実ハード ェアデバイス4bの項目に印をつける方法、 想計算機21と同様の仮想計算機を、実計算機 1aからコピー、もしくは、実計算機1bで作成 、該当する実ハードウェアデバイス4bを割り 当てる方法などが考えられる。デバイス情報 記憶部22に記載された実ハードウェアデバイ の予約の成否について、通信手段5bを介し 、実計算機1aに通知する。実計算機1bで、仮 計算機21の複製を作成する方法としては、 えば、実計算機1aからデバイス情報記憶部22 記憶されたデバイス情報以外に、仮想計算 21のOSの種類やメモリ量などを通知させ、実 計算機1bで仮想計算機を作成する方法などが えられる。

 実ハードウェアデバイス4bは、実計算機1b の備える実ハードウェアデバイスである。

 通信手段5bは、実計算機1bとネットワーク 10を介して他の実計算機と情報をやり取りす 。とくに、本実施の形態では、デバイス情 記憶部22に保存された情報のネットワーク10 を介した実計算機1aから受信と、デバイス予 手段38bによる予約の成否の送信に使用され 。

 次に、図10のフローチャートを参照して 実施の形態の実計算機1bの動作について説明 する。

 実計算機1aの情報記憶部22に記憶されたデ バイス情報が、通信手段5aによって送信され (ステップ21)。

 通信手段5bが、デバイス情報を受信する( テップ22)。

 デバイス予約手段38bが、実ハードウェア バイス4bの有無を確認し(ステップ23)、あれ 、予約する(ステップ24)。

 通信手段5bが、予約の成否の結果を実計 機1aに送信する(ステップ25)。

 実計算機1aの通信手段5aが、予約の成否の 結果を受信する(ステップ26)。

 予約が成功していれば(ステップ27)、マイ グレーションを実行する(ステップ28)。

 マイグレーションの可否の判断の方法は 実計算機1aで動作する仮想計算機21であって も、実計算機1aで別途、動作する仮想計算機 管理プログラムであってもよく、当業者で るならば、様々な方法が考えられるであろ 。

 次に、本実施の形態の効果について説明 る。

 本実施の形態では、仮想計算機識別子検 手段31aの検出した仮想計算機識別子を基に て、デバイスアクセス手段31aが仮想デバイ ドライバとデバイスドライバ33aの通信を仮 計算機21ごとに検出するように構成されて るため、仮想計算機21ごとに仮想計算機21が 用する実ハードウェアデバイス4aを検出で る。さらに、検出した結果を基にして、必 とする、実ハードウェアデバイス4bを備えた 実計算機1bをマイグレーション先として決定 きる。

 (第2の実施の形態)
 本発明の第2の実施の形態について図面を参 照して詳細に説明する。

 本発明の第2の実施の形態は、第1の実計 機で、仮想計算機ごとに、仮想計算機が使 している実ハードウェアデバイスの情報と さらに、実ハードウェアデバイスに関し、 想計算機が必要とする性能をも保存したデ イス構成情報を作成し、その情報を第2の実 算機に送信し、第2の実計算機で受信した情 報を参照して、仮想計算機の必要とする実ハ ードウェアデバイスを予約、予約結果をマイ グレーションの可否判定に活用する。

 本発明の第2の実施の形態は、本発明の第 1の実施の形態と同様の、ネットワーク10に接 続された、実計算機1a、実計算機1bで構成さ る。実計算機1aは、第1の実計算機であり、 計算機1bは、第2の実計算機である。

 実計算機1aは、図11を参照すると、第1の 施の形態の実計算機1aに加え、デバイスアク セス統計手段35aを含み、デバイス情報記憶部 22に、実ハードウェアデバイス4aに関し、仮 計算機21に必要とされる性能に関する情報が 追加される。

 デバイスアクセス統計手段35aは、デバイス クセス検出手段32aで検出したデータを利用 て、実ハードウェアデバイス4aに関し、仮 計算機21が必要とする性能を計算する。計算 対象とその方法としては、例えば、タイマー 割込み時間あたりの、仮想デバイスドライバ 212とデバイスドライバ33aとのデータ通信量を 、仮想デバイスドライバから発行されるシス テムコールの引数から、統計をとり、実ハー ドウェアデバイス4aに必要とされるスループ トを計算する。これを計算式で示すと、
 スループット=タイマー割込みの時間でやり とりされるデータ量の総和/タイマー割込み 間となる。さらに、仮想デバイスドライバ21 2からデバイスドライバ33aへの要求時刻と応 時刻から応答時間から、実ハードウェアデ イス4aに必要とされる応答時間を計算する。 これを計算式で示すと、
 応答時間=応答時刻―要求時刻
となる。さらに、エラー発生回数から実ハー ドウェアデバイス4aの信頼性などがある。

 デバイス情報記憶部22aは、第1の実施の形 態のデバイス情報記憶部22aに保存されたデバ イス情報に加え、実ハードウェアデバイスに 関し、デバイスアクセス統計手段34aの計算結 果から得られた仮想計算機21が必要とする性 も保存する。保存された情報の例を図12に す。

 次に、図13のフローチャートを参照して 実施の形態の実計算機1aの動作について詳細 に説明する。

 本実施の形態の実計算機1aの動作は、仮 計算機識別子の検出過程と、デバイス情報 憶部22に保存されるデバイス情報の作成過程 に分けられる。

 仮想計算機識別子の検出過程は、第1の実 施の形態と同様である。

 デバイス情報記憶部22に保存されるデバ ス情報の作成過程について説明する。仮想 算機21が、仮想デバイスドライバ212にアクセ スする(ステップ31)。

 仮想計算機識別子検出手段31aが、仮想計 機識別子を検出していたならば(ステップ32) 、デバイスアクセス検知手段32aが、仮想デバ イスドライバ212からデバイスドライバ33aへの アクセスを検知する(ステップ33)。

 デバイスアクセス統計手段35aが、デバイ ドライバ33aへの引数から仮想計算機21が、 ハードウェアデバイス4aに関し、必要とする 性能を計算し、計算した結果をデバイス情報 記憶部22へ保存する(ステップ34)。

 通信手段5aが、保存したデバイス情報を 実計算機1bに通知する(ステップ35)。

 実計算機1bは、プログラム制御により動 し、実計算機1bは、図14を参照すると、主記 装置2bと、データ処理装置3bと、実ハードウ ェアデバイス4bと、通信手段5bを含む。

 主記憶装置2bは、デバイス情報記憶部22を 含む。

 デバイス情報記憶部22は、実計算機1aで作 成され、ネットワーク10を介して、通知され 情報である。

 データ処理装置3bは、デバイス資源監視 段130bと、デバイス予約手段38bを含む。

 デバイス資源監視手段130bは、例えば、特 許文献3に記載された方法で、実ハードウェ デバイス4bの提供できる資源量(以下、空資 量と称する)を計測する。計測結果から、仮 計算機21がマイグレーションされた場合、 想計算機21に提供できる資源量、すなわち、 性能が明らかになる。

 デバイス予約手段38bは、デバイス資源監 手段130bでの計測結果と、デバイス情報記憶 部22に記載されたデバイスの性能を比較し、 バイス情報記憶部22に記載された性能を満 していれば、他の仮想計算機などのプログ ムにより、占有されないように予約する。

 次に、図15のフローチャートを参照して 実施の形態の実計算機1bの動作について説明 する。

 本実施の形態の実計算機1bの動作は、ス ップ42までは、第1の実施の形態と同様であ 。

 デバイス資源監視手段130bが、実ハードウ ェアデバイス4bの空資源量を計測する(ステッ プ43)。

 デバイス予約手段38bが、ステップ43で確 した空資源量、すなわち、提供できる性能 、デバイス情報記憶部22に記載された仮想計 算機が必要とする実ハードウェアデバイスの 性能を比較し(ステップ44)、性能を満たした 合、実ハードウェアデバイス4bを予約する( テップ45)。

 ステップ46以降は、第1の実施の形態と同 である。

 次に、本実施の形態の効果について説明 る。

 本実施の形態では、仮想計算機識別子検 手段31aの検出した仮想計算機識別子を基に て、デバイスアクセス手段31aが仮想デバイ ドライバ212とデバイスドライバ33aの通信を 出し、デバイスアクセス統計手段35aが計算 るように構成されているため、仮想計算機2 1ごとに仮想計算機21が使用する実ハードウェ アデバイス4aを検出し、実ハードウェアデバ ス4aに関し、仮想計算機21ごとに必要とする 性能を計算できる。さらに、計算した結果を 基にして、適切な実ハードウェアデバイス4b 備えた実計算機1bをマイグレーション先と て決定できる。

 (第3の実施の形態)
 本発明の第3の実施の形態について図面を参 照して詳細に説明する。

 本発明の第3の実施の形態は、第1の実計 機で、仮想計算機ごとに、仮想計算機が使 している実ハードウェアデバイスの情報と 仮想計算機が使用している実ハードウェア バイスの性能と、さらに、仮想計算機が使 している実ハードウェアデバイスの代替と る実ハードウェアデバイスの情報をも保存 たデバイス構成情報を作成し、その情報を 2の実計算機に送信し、第2の実計算機で受信 した情報を参照して、仮想計算機の必要とす る実ハードウェアデバイスを予約、予約結果 をマイグレーションの可否判定に活用する。

 本発明の第3の実施の形態は、本発明の第 1の実施の形態と同様の、ネットワーク10に接 続された、実計算機1a、実計算機1bで構成さ る。

 実計算機1aは、図16を参照すると、第2の 施の形態の実計算機1aに加え、代替デバイス ライブラリ部25aと代替デバイス選定手段36aを 含み、デバイス情報記憶部22aに代替実ハード ウェアデバイスに関する情報が追加される。

 代替デバイスライブラリ部25aは、マイグ ーション先の実計算機で仮想計算機21が必 とする性能を満たす実ハードウェアデバイ 4bが存在しなかった場合に備えて、代替とな る実ハードウェアデバイスの情報を、例えば 、表形式で保存する。

 代替デバイス選定手段36aは、デバイス情 記憶部22に記憶された、実ハードウェアデ イス4aの情報を基にして、代替となる実ハー ドウェアデバイスを代替デバイスライブラリ 部25aに保存された、例えば、表より選定し、 デバイス情報記憶部22に保存する。

 デバイス情報記憶部22は、第2の実施の形 のデバイス情報記憶部22に保存されたデバ ス情報に加え、代替実ハードウェアデバイ に関する情報が追加される。保存された情 の例を図17に示す。

 次に、図18のフローチャートを参照して 実施の形態の動作について詳細に説明する

 本実施の形態の実計算機1aの動作は、仮 計算機識別子の検出過程と、デバイス情報 憶部22に保存されるデバイス情報の作成過程 に分けられる。

 仮想計算機識別子の検出過程は、第1の実 施の形態と同様である。

 デバイス情報記憶部22に保存されるデバ ス情報の作成過程について説明する。仮想 算機21が、仮想デバイスドライバ212にアクセ スする(ステップ51)。

 想計算機識別子が検出されていたならば( ステップ52)、デバイスアクセス検知手段32aが 仮想デバイスドライバ212からデバイスドライ バ33aへのアクセスを検知する(ステップ53)。

 デバイスアクセス統計手段35aが、デバイ ドライバ33への引数などから仮想計算機21が 、実ハードウェアデバイス4aに関し、必要と る性能を計算し、計算した結果をデバイス 報記憶部22へ保存する(ステップ54)。

 検知し、性能を計算した結果から、仮想 算機21が必要とする実ハードウェアデバイ の代替となる実ハードウェアデバイスを選 しデバイス情報記憶部22へ保存する(ステッ 55)。

 通信手段5aが、保存したデバイス情報を 実計算機1bに通知する(ステップ56)。

 実計算機1bの構成は、第2の実施の形態の 計算機1bに加え、デバイス予約手段38bに、 替実ハードウェアデバイスを予約する機能 含む。この機能は、例えば、実計算機aから 17に示されるデバイス情報が通知され、実 算機1bにネットワーク・インターフェース・ カード(以下、NICと称する)製品aではなく、NIC 製品bが備わっていた場合、または、実計算 1bにNIC製品aとNIC製品bが備わっているが、NIC 品aは性能を満たさない場合、NIC製品bを予 する。

 次に、本実施の形態の効果について説明 る。

 本実施の形態では、仮想計算機識別子検 手段31aの検出した仮想計算機識別子に基づ てデバイスアクセス手段32aが仮想デバイス ライバ212とデバイスドライバ33aの通信を検 し、デバイスアクセス統計手段35aが、実ハ ドウェアデバイス4aに関し、仮想計算機21が 必要とする性能を計算し、代替デバイス選定 手段36aが、代替デバイスライブラリ部25aから 、検出した実ハードウェアデバイス4aの代替 ードウェアデバイスを選定できるため、マ グレーション先の実計算機で仮想計算機21 必要とする、実ハードウェアデバイス4bに関 し、仮想計算機21が必要とする性能を満たさ かった場合でも、代替ハードウェアデバイ の使用を試みることで、マイグレーション で仮想計算機21が動作する可能性が高まる さらに、検出した結果を基にして、適切な ハードウェアデバイスを備えた実計算機1bを マイグレーション先として決定できる。

 (第4の実施の形態)
 本発明の第4の実施の形態について図面を参 照して詳細に説明する。

 本発明の第4の実施の形態は、第2の計算 で、第1の実計算機から受信した仮想計算機 デバイス構成情報に記載された、仮想計算 が必要とする性能を第2の実計算機の実ハー ドウェアデイバスが満たしているかを、実ハ ードウェアデバイスの空資源量から判断し、 性能が満たされない場合は、代替となる実ハ ードウェアデバイスの使用を試みることで、 第2の実計算機で、仮想計算機を動作させる 能性を高める。

 本発明の第4の実施の形態の構成は、本発 明の第1の実施の形態と同様の、ネットワー 10に接続された、実計算機1a、実計算機1bで 成される。

 実計算機1aは、第2の実施の形態と同様で る。

 実計算機1bは、プログラム制御により動 し、図19を参照すると、主記憶装置2bと、デ タ処理装置3bと、実ハードウェアデバイス4b -1と、実ハードウェアデバイス4b-2と、通信手 段5bを含む。

 主記憶装置2bは、デバイス情報記憶部22と 、代替デバイスライブラリ部25bを含む。

 デバイス情報記憶部22は、実計算機1aで作 成され、ネットワーク10を介して、通知され 情報である。

 代替デバイスライブラリ部25bは、実計算 1bの備える実ハードウェアデバイス4b-1,4b-2 互換性情報である。互換性情報は、実ハー ウェアデバイス4b-1,4b-2と互換性のある実ハ ドウェアデバイスの情報を保存している。 存されている情報の一例を図20に示す。デバ イス情報記憶部22に保存されたデバイスが、 で互換デバイスとして記載されている実ハ ドウェアデバイス4b-1を仮想計算機21に割り てられる。図20を例にすると、実ハードウ アデバイス4b-1が、NIC製品m、実ハードウェア デバイス4b-2がNIC製品nであり、デバイス情報 憶部22に保存されたデバイス情報に、仮想 算機21は、実計算機1aではNIC製品fを使用して いたと記載があれば、実計算機1bでは、NIC製 nを、仮想計算機21用に予約する。なお、仮 計算機21は、実計算機1aで、NIC製品nを使用 ていた場合、実計算機1bでも、空資源量が十 分にあれば、そのまま、NIC製品nが予約され ことは言うまでもない。

 データ処理装置3bは、デバイス資源監視 段130bと、デバイス予約手段38bを含む。

 デバイス資源監視手段130bは、第2の実施 形態と同様である。

 デバイス予約手段38bは、デバイス資源監 手段130bでの計測結果と、デバイス情報記憶 部22に保存された仮想計算機21の必要とする ハードウェアデバイス4aの性能とを比較し、 実ハードウェアデバイス4b-1が、仮想計算機21 の必要とする性能を満たさない場合、実ハー ドウェアデバイス4b-2の予約を試みる。例え 、図20で、仮想計算機21に提供できうる性能 、NIC製品mが1Mbps、NIC製品nが4Mbpsであり、デ イス情報記憶部22に記載されたデバイス情 に、NICに関し、仮想計算機21が必要とするNIC はNIC製品bであり、その必要とされる性能が3M bpsであった場合、NIC製品nが予約される。

 実ハードウェアデバイス4b-1と実ハードウ ェアデバイス4b-2は、実計算機1bの備える実ハ ードウェアデバイスである。

 通信手段5bは、実計算機1bとネットワーク 10を介して他の実計算機と情報をやり取りす 。とくに、本実施の形態では、デバイス情 記憶部22に保存される情報を、ネットワー 10を介して、実計算機1aからの受信と、デバ ス予約手段38bによる予約の成否の送信に使 される。

 次に、図21のフローチャートを参照して 実施の形態の動作について説明する。

 本実施の形態の実計算機1bの動作は、ス ップ62までは、第2の実施の形態と同様であ 。デバイス資源監視手段130bが、実ハードウ アデバイス4b-1の提供できる資源量、すなわ ち、空資源量を計測する(ステップ63)。

 デバイス予約手段38bが、ステップ3で確認 した空資源量、すなわち、提供できる性能と 、デバイス情報記憶部22に記載された仮想計 機21が必要とする実ハードウェアデバイス4b -1の性能を比較し(ステップ64)、性能を満たさ ないと判断した場合、代替デバイスライブラ リ部25bを参照し、代わりとなる実ハードウェ アデバイス4b-2を探す(ステップ65)。代わりと る実ハードウェアデバイス4b-2が存在する場 合、実ハードウェアデバイス4b-2を予約する( テップ66)。ステップ67以降は、第2の実施の 態と同様である。

 次に、本実施の形態の効果について説明 る。

 本実施の形態では、デバイス資源監視手 130bが、実ハードウェアデバイス4b-1の空資 量を計測し、計測した結果と、デバイス情 記憶部22に保存された仮想計算機21の必要と る実ハードウェアデバイス4b-1の性能を比較 し、実ハードウェアデバイス4b-1の性能が、 想計算機に必要とされる性能に満たない場 、代替となる実ハードウェアデバイス4b-2の 約を試みることで、仮想計算機21のマイグ ーションを実行できる可能性が高まる。と に、予約しようとしている実ハードウェア バイス4b-1が複数のプログラムによって共有 れ、実ハードウェアデバイス4b-1の種類、名 称からだけでは、仮想計算機21が使用できる ハードウェアデバイス4b-1の資源量が判断で きない場合に有効である。

 (実施例1)
 本発明の第1の実施例について図面を用いて 説明する。かかる実施例は、本発明の第1の 施の形態に対応する。

 図22に示すように、本実施例は、ネット ーク1010に接続された実計算機1001a、実計算 1001bで構成される。実計算機1001aは、仮想計 機のマイグレーション元であり、実計算機1 001bは、仮想計算機のマイグレーション先で る。ネットワーク1010には、実計算機1001a、 計算機1001b以外の実計算機が接続されていて もよく、複数の実計算機1001a、複数の実計算 1001bがあってもよい。さらに、1台の実計算 に実計算機1001aの機能と実計算機1001bの機能 が含まれていてもよい。本明細書の実施例で は、簡単のため、ネットワーク1010に接続さ た実計算機は1001aと、実計算機1001bのみとし 1台の計算機に、1001aの機能と1001bの機能は 共存しないものとする。

 図23に示すように、実計算機1001aは、主記 憶装置1002a、演算装置1003a、NIC1041a、ハード・ ディスク・ドライブ(以下、HDDと称する)1042a ら構成される。さらに、実計算機1001aには、 プログラムで実装される仮想計算機1021と仮 計算機モニタ1023aがある。仮想計算機1021と 想計算機モニタ1023aの組み合わせは、User Mod e LinuxとSKAS3パッチのあたったLinux OSである 仮想計算機1021や仮想計算機モニタ1023などの プログラムは、動作によって、主記憶装置100 2a、演算装置1003a、HDD1042aに存在するが、プロ グラムが実計算機1001aのどの部分で動作する は、当業者には明らかある。

 仮想計算機1021は、仮想計算機モニタ1023a よって、1つ以上のプロセスとして扱われる 。仮想計算機1021は、NIC1041aを利用して、実計 算機1001aの外部と通信する場合、仮想デバイ ドライバ1212を使用する。

 デバイス構成領域1022は、デバイスアクセ ス検出関数1032aが検出した仮想計算機1021のデ バイスドライバ1033a、1034aへのアクセスの結 を保存している。

 仮想計算機モニタ1023aは、仮想計算機1021 動作させるための環境を提供し、NIC1041aやHD D1042aを制御するデバイスドライバ1033a、1034a 含む。さらに、仮想計算機モニタ1023aは、仮 想計算機1021の使用するデバイスを検知する め、仮想計算機PID検出関数1031a、デバイスア クセス検出関数1032a、デバイス構成領域1022を 含む。

 仮想計算機PID検出関数1031aは、仮想計算 モニタ1023aの仮想計算機1021のみが実行する ースコードで、Current構造体のPID変数を参照 ることで、仮想計算機1021のプロセスIDを検 できる。さらに、仮想計算機1021が2つ以上 プロセスで構成される場合、プロセスIDと仮 想計算機1021のIDを対応付ける。

 デバイスアクセス検出関数1032aは、仮想 算機PID検出関数1031aが検出したプロセスIDを にして、仮想計算機1021からデバイスドライ バ1033a、1034aへの通信と仮想計算機モニタ1023a からデバイスドライバ1033a、1034aとの通信を 別する。仮想計算機1021が複数であった場合 は、仮想計算機1021ごとにPIDを検出すること で、それぞれの仮想計算機1021ごとに区別で る。

 デバイスドライバ1033a,1034aは、それぞれ NIC1041a,HDD1042aのデバイスドライバである。も ちろん、一般的な計算機が備える実ハードウ ェアデバイスは、NICやHDDに限らないことは、 当業者には明らかであるが、本実施例では、 簡単のため、NICとHDDに限定する。

 図24に示すように、実計算機1001bは、主記 憶装置1002b、演算装置1003b、NIC1041b、HDD1042bか 構成される。さらに、実計算機1001bには、 ログラムで実装される仮想計算機モニタ1023b がある。仮想計算機モニタ1023bは、例えば、U ser Mode LinuxとSKAS3パッチのあたったLinux OSで ある。

 デバイス構成領域1022は、実計算機1001aで 成され、ネットワーク1010を介して、通知さ れた情報である。

 実ハードウェアデバイス情報記憶領域1026 bは、実計算機1001bが備える実ハードウェアデ バイスに関する情報である。本実施例であれ ば、NIC1041bとHDD1042bが実計算機1001bに存在する ことを示す情報である。実ハードウェアに関 する情報は、実計算機1001bで動作するLinux OS( 不図示)が検出できる情報であり、例えば、dm esgコマンドで検出できる。

 デバイス予約関数1037bは、実ハードウェ デバイス情報記憶領域1026bに記憶されたデバ イス情報を参照し、デバイス情報記憶1022に 載されたデバイスを、他の仮想計算機など プログラムに占有されないように予約する

 NIC1041b、HDD1042bは、実計算機1001bが備える ハードウェアデバイスである。

 (実施例2)
 本発明の第2の実施例について図面を参照し て説明する。かかる実施例は、本発明の第1 実施の形態に対応する。

 本実施例は、第1の実施例と同様の、ネッ トワーク1010に接続された実計算機1001a、実計 算機1001bで構成される。

 図25に示すように、実計算機1001aは、主記 憶装置1002a、演算装置1003a、NIC1041a、HDD1042aか 構成される。さらに、実計算機1001aには、 ログラムで実装される仮想計算機1021と、仮 計算機モニタ1023aと、管理仮想計算機1024aが ある。これらの構成を採る仮想化システムと して、Xenがある。仮想計算機1021や仮想計算 モニタ1023a、管理仮想計算機1024aなどのプロ ラムは、動作によって、主記憶装置1002a、 算装置1003a、HDD1042aに存在するが、プログラ が実計算機1001aのどの部分で動作するかは 当業者には明らかある。

 仮想計算機1021は、実施例1と同様である

 仮想計算機モニタ1023aは、仮想計算機1021 管理仮想計算機1024aを動作させるための環 を提供し、仮想計算機識別関数1038aを含む。

 仮想計算機識別関数1038aは、仮想計算機21 ごとに割り当てられた仮想計算機を管理する 構造体/配列を監視することで、仮想計算機10 21を識別する。

 管理仮想計算機1024aは、NIC1041やHDD1042を制 御するデバイスドライバ1033a、1034aを含み、 想計算機1021の使用するデバイスを検知する バイスアクセス検出関数1032a、デバイス構 領域1022を含む。

 デバイスアクセス検出関数1032aは、仮想 算機PID検出関数1031aが検出した構造体/配列 基にして、仮想計算機1021ごとのデバイスド イバ1033a、1034aへの通信を区別する。

 図26に示すように、実計算機1001bは、主記 憶装置1002b、演算装置1003b、NIC1041b、HDD1042bか 構成される。さらに、実計算機1001bには、 ログラムで実装される管理仮想計算機1024bが ある。管理仮想計算機1024bなどのプログラム 、動作によって、主記憶装置1002b、演算装 1003b、HDD1042bに存在するが、プログラムが実 算機1001bのどの部分で動作するかは、当業 には明らかある。

 デバイス構成領域1022は、実計算機1001aで 成され、ネットワーク1010を介して通知され た情報である。

 実ハードウェアデバイス情報記憶領域1026 bは、実計算機1001bが備える実ハードウェアデ バイスに関する情報である。本実施例であれ ば、NIC1041bとHDD1042bが実計算機1001bに存在する ことを示す情報である。

 デバイス予約手段1038bは、実ハードウェ デバイス情報記憶領域1026bに記憶されたデバ イス情報を参照し、デバイス情報記憶22に記 されたデバイスを、他の仮想計算機などの ログラムに占有されないように予約する。

 NIC1041b、HD1042bは、実計算機1001bが備える ハードウェアデバイスである。

 (実施例3)
 本発明の第3の実施例について図面を参照し て説明する。かかる実施例は、本発明の第2 実施の形態に対応する。

 本実施例は、第1の実施例と同様の、ネッ トワーク1010に接続された実計算機1001a、実計 算機1001bで構成される。

 本実施例の実計算機1001aは、図27に示すよ う、第1の実施例に加え、実計算機1001aにデバ イスアクセス統計関数1035aを含む。デバイス クセス統計関数1035aは、デバイスアクセス 出関数1032aによる検出結果を基にして、タイ マー割込みごとの仮想計算機1021とデバイス ライバ1033a、1034aとのデータの通信量を、そ 呼び出される際の引数から、統計をとり、 想計算機1021が必要とする、NIC1041aやHDD1042a 性能を計算する。

 デバイス構成領域1022は、デバイスアクセ ス統計関数1035aが計算した仮想計算機1001aの 要とするNIC1041aやHDD1042aの性能のデータを保 している。

 本実施例の実計算機1001bは、図28に示すよ う、主記憶装置1002b、演算装置1003b、NIC1041b、 HDD1042bから構成され、プログラムで実装され 仮想計算機1021と仮想計算機モニタ1023bがあ 。

 デバイス構成領域1022は、実計算機1001aで 成され、ネットワーク1010を介して、通知さ れた情報である。

 デバイス資源モニタ関数は、NIC1041bやHDD10 42bの空資源量を計測する。計測の方法として は、仮想計算機モニタが、Linux OSであれば、 例えば、ネットワークに関し、ifconfigコマン で使用中の資源量が計測できるので、デバ スもつ最高性能から差し引くことで、空資 量を計算し、計測データとすることができ 。

 デバイス予約関数1037bは、例えば、ネッ ワークであれば、デバイス資源モニタ関数11 30bでの計測結果とデバイス構成領域1022に保 されたNICの必要とされる性能を比較し、実 算機1001bのNIC1041bが性能を満たしたと判断し 場合、NIC1041bを予約する。

 (実施例4)
 本発明の第4の実施例について図面を参照し て説明する。かかる実施例は、本発明の第2 実施の形態に対応する。

 本実施例は、第1の実施例と同様の、ネッ トワーク1010に接続された実計算機1001a、実計 算機1001bで構成される。

 本実施例の実計算機1001aは、図29に示すよ う、第2の実施例に加え、実計算機1001aにデバ イスアクセス統計関数1035aを含む。デバイス クセス統計関数1035aは、タイマー割込みご の仮想計算機1021とデバイスドライバ1033a、10 34aとのデータの通信量を、共有メモリへのア クセス回数から、統計をとり、仮想計算機102 1が必要とする、NIC1041aやHDD1042aの性能を計算 る。

 本実施例の実計算機1001bは、図30に示すよ うに、実施例3の仮想計算機モニタ1023bに替わ り、管理仮想計算機1024bとする。

 (実施例5)
 本発明の第5の実施例について図面を参照し て説明する。かかる実施例は、本発明の第3 実施の形態に対応する。

 本実施例は、第1の実施例と同様の、ネッ トワーク1010に接続された実計算機1001a、実計 算機1001bで構成される。

 本実施例の実計算機1001aは、図31に示すよ うに、第3の実施例に加え、実計算機1001aに代 替デバイスライブラリ領域1025aと代替デバイ 選定手段1036aを含む。代替デバイス選定関 1036aは、デバイスアクセス検出関数1032aによ 検出結果を基にして、マイグレーション先 実計算機で仮想計算機1021が必要とするNIC104 1aかつ/またはHDD1042aが性能を満たさなかった 合に備えて、代替ハードウェアデバイスを 定し、デバイス構成領域1022に保存する。

 本実施例の実計算機1001bは、第3の実施例 実計算機1001bに加え、デバイス予約関数1037b に、代替実ハードウェアデバイスを予約する 機能を含む。

 (実施例6)
 本発明の第6の実施例について図面を参照し て説明する。かかる実施例は、本発明の第3 実施の形態に対応する。

 本実施例は、第1の実施例と同様の、ネッ トワーク1010に接続された実計算機1001a、実計 算機1001bで構成される。

 本実施例の実計算機1001aは、図32に示すよ うに、第4の実施例に加え、実計算機1001aに代 替デバイスライブラリ領域1025aと代替デバイ 選定手段1036aを含む。代替デバイス選定関 1036aは、デバイスアクセス検出関数1032aによ 検出結果を基にして、マイグレーション先 実計算機で仮想計算機1021が必要とするNIC104 1aかつ/またはHDD1042aが性能を満たさなかった 合に備えて、代替ハードウェアデバイスを 定し、デバイス構成領域1022に保存する。

 本実施例の実計算機1001bは、第3の実施例 実計算機1001bに加え、デバイス予約関数1037b に、代替実ハードウェアデバイスを予約する 機能を含む。

 (実施例7)
 本発明の第7の実施例について図面を参照し て説明する。かかる実施例は、本発明の第4 実施の形態に対応する。

 本実施例は、ネットワーク1010に接続され た実計算機1001a、実計算機1001bで構成される 実計算機1001aは、第3の実施例と同様である

 本実施例の実計算機1001bは、図33に示すよ うに、主記憶装置1002b、演算装置1003b、NIC1041b 、NIC1043bから構成され、プログラムで実装さ る仮想計算機1021bと仮想計算機モニタ1023bが ある。

 デバイス構成領域1022は、実計算機1001aで 成され、ネットワーク1010を介して、通知さ れた情報である。

 代替デバイスライブラリ領域1025bは、実 算機1001bの備えるNIC1041bとNIC1043bと、その互 性情報である。NIC1041bかつ/またはNIC1043bと他 のNICとの互換性を管理することで、デバイス 構成領域1022に記載されたNICが互換性NICとし 該当するNICを使用することができる。

 デバイス資源モニタ関数1130bは、第3の実 例と同様である。

 デバイス予約関数1037bは、デバイス資源 ニタ関数1130bでの計測結果とデバイス構成領 域1022に保存されたNICの必要とされる性能を 較し、実計算機1001bのNIC1041bが性能を満たさ いと判断した場合、実計算機1001bに存在し 代替デバイスライブラリ領域1025bにある記載 された別のNICであるNIC1043bを予約する。実際 切り替えは、NICであれば、ネットワーク・ ブジェクトを切り替えることで実現される

 (実施例8)
 本発明の第8の実施例について図面を参照し て説明する。かかる実施例は、本発明の第4 実施の形態に対応する。

 図34に示すように、実施例7の仮想計算機 ニタ1023bに替わり、管理仮想計算機1024bとす る。

 本発明によれば、実ハードウェアで構成 れる複数の実計算機間で仮想計算機を移送 るマイグレーション技術での、マイグレー ョン先の決定装置、方法およびプログラム いった用途に適用できる。

 以上、実施例を参照して本願発明を説明 たが、本願発明は上記実施例に限定される のではない。本願発明の構成や詳細には、 願発明のスコープ内で当業者が理解し得る 々な変更をすることができる。

 この出願は、2007年11月27日に出願された 本出願特願2007-305588を基礎とする優先権を主 張し、その開示の全てをここに取り込む。




 
Previous Patent: VEHICLE CONTROLLER

Next Patent: PNEUMATIC TIRE FOR MOTOCROSS