仮想マシンを実行する実行装置と、前記実行装置の実行する仮想マシンの実行用データを記憶する記憶装置と、前記実行装置を制御する制御装置と、を具備するコンピュータシステムであって、前記実行装置は、仮想マシンの実行用データを記憶する第1記憶部と、仮想マシンの実行要求を受けると、実行すべき仮想マシンの実行用データを前記第1記憶部が記憶しているか否かを判定するデータ有無判定部と、前記第1記憶部の記憶する前記実行すべき仮想マシンの実行用データを用いて当該実行すべき仮想マシンを実行する仮想マシン実行部と、を具備し、前記記憶装置は、仮想マシンの実行用データを記憶する第2記憶部と、前記データ有無判定部が、前記実行すべき仮想マシンの実行用データを前記第1記憶部が記憶していないと判定すると、当該実行すべき仮想マシンの実行用データを前記第2記憶部から取得して前記第1記憶部に記憶させるデータ転送部と、を具備し、前記制御装置は、仮想マシン毎に、当該仮想マシンの使用時間と当該仮想マシンの生成時のコピー元の仮想マシンの使用時間とに基づいて、当該仮想マシンの実行用データを前記第1記憶部に記憶させる優先順位を決定する優先順位決定部と、前記優先順位決定部の決定する前記優先順位に従って、前記仮想マシンの実行用データを前記第1記憶部に記憶させるデータ登録部と、を具備することを特徴とするコンピュータシステム。前記実行装置は、仮想マシンのユーザに応じてグループ分けされており、前記制御装置は、前記データ登録部は、前記実行装置のグループ毎に、前記優先順位決定部の決定する前記優先順位に従って、当該グループに属する実行装置の前記第1記憶部に、前記仮想マシンの実行用データを記憶させることを特徴とする請求項1に記載のコンピュータシステム。前記制御装置は、仮想マシンの使用履歴を記録する使用履歴記録部を具備し、前記使用履歴記録部は、仮想マシンが新たに生成された際に、当該新たに生成された仮想マシンの使用履歴を記録することを特徴とする請求項1または2に記載のコンピュータシステム。前記優先順位決定部は、前記使用履歴記録部の記録する新たに生成された仮想マシンの使用履歴に基づいて、前記新たに生成された仮想マシンの優先順位を、当該仮想マシンのコピー元の仮想マシンの優先順位よりも高い優先順位に決定することを特徴とする請求項3に記載のコンピュータシステム。仮想マシンの実行用データを記憶する第1記憶部を具備して仮想マシンを実行する実行装置と、前記実行装置の実行する仮想マシンの実行用データを記憶する第1記憶部を具備する記憶装置と、前記実行装置を制御する制御装置と、を具備するコンピュータシステムの仮想マシンデータ配置方法であって、仮想マシンの実行要求を受けると、実行すべき仮想マシンの実行用データを前記第1記憶部が記憶しているか否かを判定するデータ有無判定ステップと、前記第1記憶部の記憶する前記実行すべき仮想マシンの実行用データを用いて当該実行すべき仮想マシンを実行する仮想マシン実行ステップと、前記データ有無判定ステップにて、前記実行すべき仮想マシンの実行用データを前記第1記憶部が記憶していないと判定すると、当該実行すべき仮想マシンの実行用データを前記第2記憶部から取得して前記第1記憶部に記憶させるデータ転送ステップと、仮想マシン毎に、当該仮想マシンの使用時間と当該仮想マシンの生成時のコピー元の仮想マシンの使用時間とに基づいて、当該仮想マシンの実行用データを前記第1記憶部に記憶させる優先順位を決定する優先順位決定ステップと、前記優先順位決定部の決定する前記優先順位に従って、前記仮想マシンの実行用データを前記第1記憶部に記憶させるデータ登録ステップと、を具備することを特徴とする仮想マシンデータ配置方法。仮想マシンの実行用データを記憶する第1記憶部を具備して仮想マシンを実行する実行装置と、前記実行装置の実行する仮想マシンの実行用データを記憶する第1記憶部を具備する記憶装置と、前記実行装置を制御する制御装置と、を具備するコンピュータシステムに、仮想マシンの実行要求を受けると、実行すべき仮想マシンの実行用データを前記第1記憶部が記憶しているか否かを判定するデータ有無判定ステップと、前記第1記憶部の記憶する前記実行すべき仮想マシンの実行用データを用いて当該実行すべき仮想マシンを実行する仮想マシン実行ステップと、前記データ有無判定ステップにて、前記実行すべき仮想マシンの実行用データを前記第1記憶部が記憶していないと判定すると、当該実行すべき仮想マシンの実行用データを前記第2記憶部から取得して前記第1記憶部に記憶させるデータ転送ステップと、仮想マシン毎に、当該仮想マシンの使用時間と当該仮想マシンの生成時のコピー元の仮想マシンの使用時間とに基づいて、当該仮想マシンの実行用データを前記第1記憶部に記憶させる優先順位を決定する優先順位決定ステップと、前記優先順位決定部の決定する前記優先順位に従って、前記仮想マシンの実行用データを前記第1記憶部に記憶させるデータ登録ステップと、を実行させるためのプログラム。上述した、幾つかの仮想マシンの実行用データをコンピュータが予め取得しておく方法によれば、コンピュータが、既にデータを取得している仮想マシンを実行する場合は、仮想マシン起動に要する時間を短縮できる。しかしながら、コンピュータが、データを取得していない仮想マシンを実行する場合は、仮想マシン実行時に仮想マシンの実行用データをコンピュータが記憶装置から取得する処理が必要となり、仮想マシン起動に時間を要してしまう。そこで、仮想マシン起動に要する時間を短縮するために、実行される可能性の高い仮想マシンの実行用データを予めコンピュータが予め取得しておくようにすることが課題となる。しかし、特許文献1には、実行される可能性の高い仮想マシンの実行用データを予めコンピュータが取得しておく技術は開示されていない。本発明は、このような事情を考慮してなされたものであり、その目的は、実行される可能性の高い仮想マシンの実行用データを予めコンピュータが取得しておくことのできるコンピュータシステム、仮想マシンデータ配置方法およびプログラムを提供することにある。この発明は上述した課題を解決するためになされたもので、本発明の一態様によるコンピュータシステムは、仮想マシンを実行する実行装置と、前記実行装置の実行する仮想マシンの実行用データを記憶する記憶装置と、前記実行装置を制御する制御装置と、を具備するコンピュータシステムであって、前記実行装置は、仮想マシンの実行用データを記憶する第1記憶部と、仮想マシンの実行要求を受けると、実行すべき仮想マシンの実行用データを前記第1記憶部が記憶しているか否かを判定するデータ有無判定部と、前記第1記憶部の記憶する前記実行すべき仮想マシンの実行用データを用いて当該実行すべき仮想マシンを実行する仮想マシン実行部と、を具備し、前記記憶装置は、仮想マシンの実行用データを記憶する第2記憶部と、前記データ有無判定部が、前記実行すべき仮想マシンの実行用データを前記第1記憶部が記憶していないと判定すると、当該実行すべき仮想マシンの実行用データを前記第2記憶部から取得して前記第1記憶部に記憶させるデータ転送部と、を具備し、前記制御装置は、仮想マシン毎に、当該仮想マシンの使用時間と当該仮想マシンの生成時のコピー元の仮想マシンの使用時間とに基づいて、当該仮想マシンの実行用データを前記第1記憶部に記憶させる優先順位を決定する優先順位決定部と、前記優先順位決定部の決定する前記優先順位に従って、前記仮想マシンの実行用データを前記第1記憶部に記憶させるデータ登録部と、を具備することを特徴とする。また、本発明の一態様によるコンピュータシステムは、上述のコンピュータシステムであって、前記実行装置は、仮想マシンのユーザに応じてグループ分けされており、前記制御装置は、前記データ登録部は、前記実行装置のグループ毎に、前記優先順位決定部の決定する前記優先順位に従って、当該グループに属する実行装置の前記第1記憶部に、前記仮想マシンの実行用データを記憶させることを特徴とする。また、本発明の一態様によるコンピュータシステムは、上述のコンピュータシステムであって、前記制御装置は、仮想マシンの使用履歴を記録する使用履歴記録部を具備し、前記使用履歴記録部は、仮想マシンが新たに生成された際に、当該新たに生成された仮想マシンの使用履歴を記録することを特徴とする。また、本発明の一態様によるコンピュータシステムは、上述のコンピュータシステムであって、前記優先順位決定部は、前記使用履歴記録部の記録する新たに生成された仮想マシンの使用履歴に基づいて、前記新たに生成された仮想マシンの優先順位を、当該仮想マシンのコピー元の仮想マシンの優先順位よりも高い優先順位に決定することを特徴とする。また、本発明の一態様による仮想マシンデータ配置方法は、仮想マシンの実行用データを記憶する第1記憶部を具備して仮想マシンを実行する実行装置と、前記実行装置の実行する仮想マシンの実行用データを記憶する第1記憶部を具備する記憶装置と、前記実行装置を制御する制御装置と、を具備するコンピュータシステムの仮想マシンデータ配置方法であって、仮想マシンの実行要求を受けると、実行すべき仮想マシンの実行用データを前記第1記憶部が記憶しているか否かを判定するデータ有無判定ステップと、前記第1記憶部の記憶する前記実行すべき仮想マシンの実行用データを用いて当該実行すべき仮想マシンを実行する仮想マシン実行ステップと、前記データ有無判定ステップにて、前記実行すべき仮想マシンの実行用データを前記第1記憶部が記憶していないと判定すると、当該実行すべき仮想マシンの実行用データを前記第2記憶部から取得して前記第1記憶部に記憶させるデータ転送ステップと、仮想マシン毎に、当該仮想マシンの使用時間と当該仮想マシンの生成時のコピー元の仮想マシンの使用時間とに基づいて、当該仮想マシンの実行用データを前記第1記憶部に記憶させる優先順位を決定する優先順位決定ステップと、前記優先順位決定部の決定する前記優先順位に従って、前記仮想マシンの実行用データを前記第1記憶部に記憶させるデータ登録ステップと、を具備することを特徴とする。また、本発明の一態様によるプログラムは、仮想マシンの実行用データを記憶する第1記憶部を具備して仮想マシンを実行する実行装置と、前記実行装置の実行する仮想マシンの実行用データを記憶する第1記憶部を具備する記憶装置と、前記実行装置を制御する制御装置と、を具備するコンピュータシステムに、仮想マシンの実行要求を受けると、実行すべき仮想マシンの実行用データを前記第1記憶部が記憶しているか否かを判定するデータ有無判定ステップと、前記第1記憶部の記憶する前記実行すべき仮想マシンの実行用データを用いて当該実行すべき仮想マシンを実行する仮想マシン実行ステップと、前記データ有無判定ステップにて、前記実行すべき仮想マシンの実行用データを前記第1記憶部が記憶していないと判定すると、当該実行すべき仮想マシンの実行用データを前記第2記憶部から取得して前記第1記憶部に記憶させるデータ転送ステップと、仮想マシン毎に、当該仮想マシンの使用時間と当該仮想マシンの生成時のコピー元の仮想マシンの使用時間とに基づいて、当該仮想マシンの実行用データを前記第1記憶部に記憶させる優先順位を決定する優先順位決定ステップと、前記優先順位決定部の決定する前記優先順位に従って、前記仮想マシンの実行用データを前記第1記憶部に記憶させるデータ登録ステップと、を実行させるためのプログラムである。この発明によれば、実行される可能性の高い仮想マシンの実行用データを予めコンピュータが取得しておくようにできる。以下、図面を参照して、本発明の一実施形態について説明する。図1は、本発明の一実施形態におけるコンピュータシステム1の概略構成を示す構成図である。同図において、コンピュータシステム1は、ノードコントローラ装置NodeController;NC100-1~100-5と、ストレージ管理装置StorageController;SC200と、ストレージサーバ装置300と、クラウドコントローラ装置CloudController;CLC400と、ユーザ端末装置500と、ネットワークNetwork900とを具備する。また、ノードコントローラ装置100-1~100-5と、ストレージ管理装置200と、ストレージサーバ装置300と、クラウドコントローラ装置400と、ユーザ端末装置500とは、ネットワーク900に接続されている。コンピュータシステム1は、例えば、一企業の内部において仮想マシン環境を提供するために構築されたプライベートクラウドシステムであり、ユーザ端末装置500から送信されるユーザの要求に応じて仮想マシンを生成し実行する。ノードコントローラ装置100-1~100-5の各々は、本発明における実行装置の一例であり、ストレージサーバ装置300の記憶している仮想マシンVirtualMachine;VMの実行用データ仮想マシンを実行するために用いられるデータ。例えば仮想マシンイメージを取得して、仮想マシンを実行する。また、ノードコントローラ装置100-1~100-5の各々は、ストレージサーバ装置300の記憶している仮想マシンの実行用データを予め仮想マシン実行要求を受ける前に取得しておくことで、仮想マシン実行時に仮想マシン起動に要する時間の短縮を図る。ノードコントローラ装置100-1~100-5の各々は、例えばコンピュータで構成される。なお、以下では、ノードコントローラ装置100-1~100-5をまとめてノードコントローラ装置100と称する。ストレージサーバ装置300は、本発明における記憶装置の具備する第2記憶部一例であり、ノードコントローラ装置100の実行する仮想マシンの実行用データを複数記憶している。ストレージサーバ装置300は、例えばNASNetworkAttachedStorage、ネットワーク接続型ストレージで構成される。ストレージ管理装置200は、本発明における記憶装置の具備するデータ転送部の一例であり、ストレージサーバ装置300から仮想マシンの実行用データを取得してノードコントローラ装置100に送信することで、ノードコントローラ装置100に仮想マシンの実行用データを取得させる。ストレージ管理装置200は、例えばコンピュータで構成される。クラウドコントローラ装置400は、本発明における制御装置の一例であり、ノードコントローラ装置100や、ストレージ管理装置200や、ストレージサーバ装置300を制御する。特に、クラウドコントローラ装置400は、ストレージサーバ装置300の記憶する仮想マシンの実行用データに対して、ノードコントローラ装置100が予め取得する際の優先順位を付すことによって、仮想マシン実行要求を受けた際に、当該仮想マシンの実行用データをノードコントローラ装置100が既に取得している率ヒット率の向上を図る。クラウドコントローラ装置400は、例えばコンピュータで構成される。ユーザ端末装置500は、ユーザの操作入力を受け付け、受け付けた操作入力に応じて、仮想マシン実行要求などユーザの要求をクラウドコントローラ装置400に送信する。ユーザ端末装置500は、例えばコンピュータで構成される。ネットワーク900は、例えばLANLocalAreaNetworkなどの通信ネットワークであり、ノードコントローラ装置100と、ストレージ管理装置200と、ストレージサーバ装置300と、クラウドコントローラ装置400と、ユーザ端末装置500との間の通信を媒介する。なお、コンピュータシステム1の構成は図1に示すものに限らず、仮想マシンの実行用データを記憶するストレージサーバ装置300と、ストレージサーバ装置300の記憶する仮想マシンの実行用データを予め取得しておき、また、仮想マシン実行要求を受けて仮想マシンを実行するノードコントローラ装置100と、ストレージサーバ装置300の記憶する仮想マシンの実行用データに対して、ノードコントローラ装置100が予め取得する際の優先順位を付すクラウドコントローラ装置400とを具備する様々な構成とすることができる。例えば、コンピュータシステム1の具備するノードコントローラ装置100の数は、同図に示す5つに限らず、1つ以上であればよい。また、ストレージ管理装置200が、クラウドコントローラ装置400の制御に従ってノードコントローラ装置100を制御する階層構造としてもよい。この場合、コンピュータシステム1が、ストレージ管理装置200を複数具備し、ストレージ管理装置200の各々が幾つかのノードコントローラ装置100とクラスタを構成するようにして、複数のストレージ管理装置200が、ノードコントローラ装置100の制御を分担するようにしてもよい。また、コンピュータシステム1の具備するストレージサーバ装置300の数は1つであってもよい。あるいは、コンピュータシステム1が、複数のストレージサーバ装置300を具備し、これら複数のストレージサーバ装置300が、仮想マシンの実行用データを分散して記憶するようにしてもよい。あるいは、コンピュータシステム1が、複数のストレージサーバ装置300を具備し、これら複数のストレージサーバ装置300がマスタスレーブに構成されるなど、仮想マシンの実行用データを冗長に記憶するようにしてデータの保全性を確保するようにしてもよい。また、コンピュータシステム1の具備するユーザ端末装置500の数は、同図に示す2つに限らず、1つ以上であればよい。また、ユーザ端末装置500と、クラウドコントローラ装置400とはインターネットInternetで接続され、ノードコントローラ装置100と、ストレージ管理装置200と、ストレージサーバ装置300と、クラウドコントローラ装置400とはLANで接続されているなど、ネットワーク900が複数のネットワークで構成されるようにしてもよい。図2は、ノードコントローラ装置100-1の概略構成を示す構成図である。同図において、ノードコントローラ装置100-1は、通信部110と、処理部120と、記憶部130とを具備する。処理部120は、仮想マシン実行部121と、データ有無判定部122とを具備する。記憶部130は、VMキャッシュ131を具備する。通信部110は、ネットワーク900図1に接続しており、ネットワーク900を介してストレージ管理装置200やクラウドコントローラ装置400と通信を行う。処理部120は、例えば、ノードコントローラ装置100-1の具備するCPUCentralProcessingUnit、中央処理装置が、ノードコントローラ装置100-1の具備する記憶デバイスからプログラムを読み出して実行することによって構成され、ノードコントローラ装置100-1の各部を制御する。仮想マシン実行部121は、通信部110が、仮想マシン実行要求を受信すると、当該仮想マシン実効要求の示す仮想マシンすなわち実行すべき仮想マシンのデータを記憶部130から読み出し、当該仮想マシンを実行する。また、仮想マシン実行部121は、本発明における使用履歴記録部の一例であり、仮想マシンの使用履歴を、記憶部430に記憶させる。データ有無判定部122は、通信部110が、仮想マシン実行要求を受信すると、当該仮想マシン実行要求の示す、実行すべき仮想マシンの実行用データを、記憶部130が記憶しているか否かを判定し、判定結果を、通信部110を介してクラウドコントローラ装置400に送信する。このデータ有無判定部122の判定結果は、ストレージサーバ装置300の記憶する実行すべき仮想マシンの実行用データをノードコントローラ装置100に送信するか否かの判定に用いられる。具体的には、ノードコントローラ装置100のいずれも、実行すべき仮想マシンの実行用データを記憶していない場合、ストレージ管理装置200が、当該実行すべき仮想マシンの実行用データを取得して、ノードコントローラ装置100のいずれかに送信する。これによって、実行用データを受信したノードコントローラ装置100は、当該仮想マシンを実行可能となる。記憶部130は、本発明における第1記憶部の一例であり、例えば、ノードコントローラ装置100-1の具備する記憶デバイスで構成され、各種データを記憶する。特に、記憶部130は、ノードコントローラ装置100-1の具備するCPUが実行するプログラムや、仮想マシンの実行用データを記憶する。VMキャッシュ131は、記憶部130の有する記憶領域のうちの所定の容量分で構成される。そして、VMキャッシュ131は、ノードコントローラ装置100-1が予め取得する、仮想マシンの実行用データを記憶する。VMキャッシュ131が仮想マシンの実行用データを記憶しておくことで、ノードコントローラ装置100-1が当該仮想マシンを実行する際に、仮想マシンの実行用データをストレージサーバ装置300から取得する必要が無くなり、仮想マシンの起動に要する時間を短縮し得る。ノードコントローラ装置100-2~100-5も、ノードコントローラ装置100-1について説明したのと同様の構成および機能を有しており、説明を省略する。なお、ノードコントローラ装置100-1~100-5の演算速度や記憶容量などの処理能力は、全て同様であってもよいし、異なっていてもよい。図3は、クラウドコントローラ装置400の概略構成を示す構成図である。同図において、クラウドコントローラ装置400は、通信部410と、処理部420と、記憶部430とを具備する。処理部420は、優先順位決定部421と、データ登録部422と、VM制御部423とを具備する。通信部410は、ネットワーク900図1に接続しており、ネットワーク900を介してノードコントローラ装置100やストレージ管理装置200やユーザ端末装置500と通信を行う。処理部420は、例えば、クラウドコントローラ装置400の具備するCPUCentralProcessingUnit、中央処理装置が、クラウドコントローラ装置400の具備する記憶デバイスからプログラムを読み出して実行することによって構成され、クラウドコントローラ装置400の各部の制御、ならびに、ノードコントローラ装置100や、ストレージ管理装置200や、ストレージサーバ装置300の制御を行う。優先順位決定部421は、ストレージサーバ装置300の記憶する仮想マシンの実行用データをノードコントローラ装置100が予め記憶しておく際の優先順位を決定する。優先順位決定部421が優先順位を決定する方法については後述する。データ登録部422は、優先順位決定部421の決定した優先順位に従って、ノードコントローラ装置100に仮想マシンの実行用データを予め記憶させる。VM制御部423は、通信部410の受信するユーザからの要求に従って、仮想マシンの生成やカスタマイズを行い、また、ノードコントローラ装置100に仮想マシンを実行させるなど、仮想マシンに対する制御を行う。記憶部430は、例えば、クラウドコントローラ装置400の具備する記憶デバイスで構成され、各種データを記憶する。特に、記憶部430は、クラウドコントローラ装置400の具備するCPUが実行するプログラムや、優先順位決定部421が上述した優先順位を決定する基となるデータを記憶する。次に、図4~図10を参照して、記憶部430図3の記憶する各種データについて説明する。図4は、記憶部430の記憶する、仮想マシンの使用履歴情報以下、単に使用履歴情報と称するの例を示す説明図である。記憶部430は、使用履歴情報を表形式のデータとして記憶し、各行のデータが、仮想マシン1回の実行すなわち、仮想マシンを起動してからシャットダウンするまでのデータに該当する。また、各行のデータは、通し番号ID;Identifierと、ユーザ識別情報UID;UserIdentifierと、仮想マシン識別情報VMID;VirtualMachineIdentifierと、使用開始日情報と、使用終了日情報と、使用時間情報とを含む。通し番号は、使用履歴情報の行毎に付されており、使用開始日の早い行図4において上の行ほど小さい番号が付されている。ユーザ識別情報は、ユーザを一意に識別する情報である。使用履歴情報には、仮想マシンの実行を要求したユーザのユーザ識別情報が格納されている。仮想マシン識別情報は、仮想マシンを一意に識別する情報である。使用履歴情報には、実行された仮想マシンの仮想マシン識別情報が格納されている。使用開始日情報は、仮想マシンの使用を開始した日、すなわち仮想マシンを起動した日を示す。また、使用終了日情報は、仮想マシンの使用を終了した日、すなわち仮想マシンをシャットダウンした日を示す。使用時間情報は、仮想マシンの使用を開始してから終了するまでの時間を示す。この使用履歴情報は、優先順位決定部421が上述した優先順位を決定する際に用いられる情報を示している。具体的には、優先順位決定部421は、仮想マシン識別番号に基づいて使用時間の重み付けを行い、重み付けされた使用時間の長い仮想マシンほど優先順位を高く設定し、また、使用終了日が遅い最近の仮想マシンほど優先順位を高く設定する。図5は、記憶部430の記憶する、VMテーブルの例を示す説明図である。記憶部430は、VMテーブルを表形式のデータとして記憶し、各行のデータが仮想マシン1台分のデータに該当する。また、各行のデータは、仮想マシン識別情報とマシン名とを含む。仮想マシン識別情報は、仮想マシンを識別する情報であると共に、次図で説明するように、仮想マシンの派生関係を示す情報である。また、マシン名は、仮想マシンを識別する情報である点において仮想マシン識別情報と同様であるが、ユーザがマシン名を設定する点で、仮想マシンの派生関係に基づいてVM制御部423が生成する仮想マシン識別番号と異なる。このVMテーブルは、クラウドコントローラ装置400が仮想マシンのマシン名と仮想マシン識別情報との対応付けを行うために用いられる。例えば、ユーザがマシン名で仮想マシンを特定して当該仮想マシンの実行を要求すると、クラウドコントローラ装置400VM制御部423は、VMテーブルを用いて当該仮想マシンの仮想マシン識別情報を取得して、図4で説明した使用履歴情報を生成する。図6は、ストレージサーバ装置300が実行用データを記憶する仮想マシンの、派生関係の例を示す説明図である。同図において、ノードn11~n15は、各々1つの仮想マシンを示し、図では当該仮想マシンの仮想マシン識別番号およびマシン名が示されている。rootの子の階層に示されるノードn11およびn12は、それぞれ、コピー元の仮想マシン無しに生成された仮想マシンを示す。一方、ノードn11の子として示されるノードn13およびn14は、それぞれ、ノードn11に示される仮想マシンをコピーして生成された仮想マシンを示す。また、ノードn13の子として示されるノードn15は、ノードn13に示される仮想マシンをコピーして生成された仮想マシンを示す。このように、仮想マシンの派生関係は、樹形図の親と子の関係にて示される。そして、この仮想マシンの派生関係は、仮想マシン識別番号にも示されている。すなわち、ノードn13の仮想マシンの識別番号1-1は、コピー元であるノードn11の仮想マシンの識別番号1に、枝番号1を付加した番号となっている。同様に、ノードn14の仮想マシンの識別番号1-2は、コピー元であるノードn11の仮想マシンの識別番号1に、枝番号2を付加した番号となっている。また、ノードn15の仮想マシンの識別番号1-1-1は、コピー元であるノードn13の仮想マシンの識別番号1-1に、枝番号1を付加した番号となっている。図7は、記憶部430の記憶する、ユーザ別使用時間情報の例を示す図である。記憶部430は、ユーザ別使用時間情報を表形式のデータとして記憶し、各行のデータが、ユーザ1人分のデータに該当する。また、各行のデータは、ユーザ識別情報と、ユーザグループ識別情報UGID;UserGroupIdentifierと、使用時間合計情報と、使用時間詳細情報とを含む。ユーザ識別情報は、上述のように、ユーザを一意に識別する情報である。ユーザグループ識別情報は、ユーザの属するグループユーザグループを一意に識別する情報である。ユーザとユーザグループとの対応関係については次図で説明する。使用時間合計情報は、何れかの仮想マシンを使用した合計時間をユーザ毎に示す。使用時間詳細情報は、仮想マシンの使用時間をより詳細に示す情報であり、ユーザ毎、かつ、仮想マシン毎に、仮想マシン識別情報と、当該仮想マシンを使用した合計時間と、当該仮想マシンを最後に使用した際の使用終了日以下では、使用終了日最終と称するとを示す。このユーザ別使用時間情報は、優先順位決定部421が、上述した使用履歴情報に基づいて生成する情報であり、優先順位決定部421が上述した優先順位を決定する際に用いられる情報を示している。優先順位決定部421は、優先順位を決定する際の前処理として、ユーザ別使用時間情報を生成する。図8は、記憶部430の記憶する、ユーザグループ分類情報の例を示す説明図である。記憶部430は、ユーザグループ分類情報を表形式のデータとして記憶している。そして、各行には、ユーザグループ識別情報と、ユーザ識別情報とが含まれており、同一の行に含まれるユーザグループ識別情報とユーザ識別情報とが対応付けられている。例えば各ユーザの所属する部署など、ユーザの属するグループが予め優先順位決定部421が、上述した優先順位を決定する前に決まっており、記憶部430は、各ユーザの属するグループを、ユーザグループ識別情報とユーザ識別情報との対応付けとして予め記憶している。図9は、記憶部430の記憶する、NCグループ分類情報の例を示す説明図である。記憶部430は、NCグループ分類情報を表形式のデータとして記憶している。そして、各行には、ノードコントローラグループ識別情報NCGID;NodeControllerGroupIdentifierと、ノードコントローラ識別情報NCID;NodeControllerIdentifierとが含まれており、同一の行に含まれるノードコントローラグループ識別情報とノードコントローラ識別情報とが対応付けられている。次図で説明するように、ユーザグループ毎に特定のノードコントローラ装置100が割り当てられており、各ユーザグループに割り当てられるノードコントローラ装置100のグループが、NCグループ分類情報にて示されている。記憶部430は、このNCグループ分類情報を予め優先順位決定部421が、上述した優先順位を決定する前に記憶している。なお、以下では、ノードコントローラ識別情報1~5は、それぞれノードコントローラ装置100-1~100-5を示す。図10は、記憶部430の記憶する、グループ対応情報の例を示す説明図である。記憶部430は、グループ対応情報を表形式のデータとして記憶している。そして、各行には、ユーザグループ識別情報と、ノードコントローラグループ識別情報とが含まれており、同一の行に含まれるユーザグループ識別情報とノードコントローラグループ識別情報とが対応付けられている。このグループ対応情報と、上述したNCグループ分類情報とによって、各ユーザグループに割り当てられているノードコントローラ装置100が示されている。ユーザグループ毎に使用可能なノードコントローラ装置100を特定しておくことで、各ユーザグループに対して使用可能なノードグループを確保できる。すなわち、あるユーザが仮想マシンを実行したいときに、他のユーザグループのユーザが仮想マシンを実行しているためにいずれのノードコントローラ装置100においても充分な資源を確保できず仮想マシンを実行できない事態を回避できる。次に、図11~図19を参照してコンピュータシステム1の動作について説明する。図11は、起動する仮想マシンの実行用データがVMキャッシュ131図2に格納されていない場合に、コンピュータシステム1が仮想マシンを起動する処理手順の例を示すシーケンス図である。同図では、ユーザ1が仮想マシンVM1以下では、仮想マシン識別情報が1の仮想マシンを、仮想マシンVM1と称する。他の仮想マシンについても同様の起動を要求する場合の例を示しており、ユーザ端末装置500としてはユーザ1の用いるユーザ端末装置500が示されている。他の仮想マシンに対する処理や、他のユーザ端末装置500において仮想マシンの起動要求が行われる場合の処理も、以下と同様である。また、コンピュータシステム1の具備するストレージ管理装置200およびストレージサーバ装置300をまとめてSCにて示されている。また、ノードコントローラ装置100-1、100-2、、100-5が、それぞれNC1、NC2、、NC5にて示されている。図12~図14においても同様である。まず、ユーザ端末装置500は、仮想マシンVM1の起動を要求する操作入力を受け付けると、当該操作入力に従って、仮想マシンVM1の起動要求をクラウドコントローラ装置400に送信するシーケンスS101。クラウドコントローラ装置400において通信部410は、仮想マシンVM1の起動要求を受信すると、当該起動要求を処理部420に出力する。そして、処理部420においてVM制御部423は、当該起動要求に従って、使用履歴情報にデータを挿入するシーケンスS102。具体的には、VM制御部423は、使用履歴情報に最下行を追加し、追加した行に、通し番号と、仮想マシンの起動を要求したユーザを示すユーザ識別情報と、起動する仮想マシンを識別する仮想マシン識別情報と、使用開始日とを書き込む。例えば、使用履歴情報が図4の状態にある場合、VM制御部423は、同図に示す使用履歴情報の下に1行追加する。そして、VM制御部423は、追加した行に、通し番号8と、仮想マシンの起動を要求したユーザを示すユーザ識別情報1と、起動する仮想マシンVM1を識別する仮想マシン識別情報1とを書き込む。また、VM制御部423は、使用開始日として、例えば現在の日付シーケンスS102の処理を実行している日の日付を書き込む。一方、使用終了日と使用時間との欄は空欄としておく。なお、これらの欄に対しては、仮想マシンを切断仮想マシンの実行を終了、すなわちシャットダウンする際に、VM制御部423がデータを書き込む。次に、VM制御部423は、上述したNCグループ分類情報を検索して、仮想マシンの起動を要求したユーザの属するユーザグループを特定するシーケンスS103。例えば、VM制御部423は、仮想マシンの起動を要求したユーザを示すユーザ識別情報1をキーとしてNCグループ分類情報を検索し、当該ユーザの属するユーザユーザグループを示すユーザグループ識別情報1を取得する。このユーザグループ識別情報によって、仮想マシンの起動を要求したユーザの属するユーザグループが特定されている。次に、VM制御部423は、上述したグループ対応情報およびNCグループ分類情報を用いて、仮想マシンの起動を要求したユーザの属するユーザグループに割り当てられたノードコントローラ装置100を特定するシーケンスS104。例えば、VM制御部423は、シーケンスS103で取得したユーザグループ識別情報1をキーとしてグループ対応情報を検索し、当該ユーザグループ識別情報に対応付けられたNCグループ識別情報Aを取得する。さらに、VM制御部423は、取得したNCグループ識別情報AをキーとしてNCグループ分類情報を検索し、当該NCグループ識別情報に対応付けられたノードコントローラ識別情報1、2および3を取得する。このノードコントローラ識別情報によって、仮想マシンの起動を要求したユーザの属するユーザグループに割り当てられたノードコントローラ装置100が特定されている。次に、VM制御部423は、通信部410を介して、シーケンスS104で特定したノードコントローラ装置100に対して、起動する仮想マシンVM1の実行用データをVMキャッシュ131に既に記憶しているか否かの問合せを送信するシーケンスS111。ここでは、いずれのノードコントローラ装置100も仮想マシンVM1の実行用データを記憶していない。そこで、問合せを受信したノードコントローラ装置100の各々は、シーケンスS111で送信された問合せに対して、当該実行用データを記憶していない旨の回答を、クラウドコントローラ装置400に送信する。なお、いずれかのノードコントローラ装置100が仮想マシンVM1の実行用データを記憶している場合は、当該ノードコントローラ装置100が、実行用データを記憶している旨の回答を、クラウドコントローラ装置400に送信し、クラウドコントローラ装置400は、当該ノードコントローラ装置100に対して、仮想マシンVM1の起動を要求するシーケンスS112。クラウドコントローラ装置400において通信部410は、シーケンスS112でノードコントローラ装置100の各々から送信された回答を受信すると、当該回答を処理部420に出力する。そして、処理部420においてVM制御部423は、当該回答を取得すると、起動する仮想マシンVM1の実行用データを、シーケンスS104で特定したノードコントローラ装置100のいずれかにコピーするよう要求するコピー要求を、通信部410を介してストレージ管理装置200に送信するシーケンスS121。このコピー要求を受信したストレージ管理装置200は、シーケンスS104で特定したノードコントローラ装置100のいずれか1つを選択する。図11の例では、ストレージ管理装置200はノードコントローラ装置100-1を選択している。そして、ストレージ管理装置200は、起動する仮想マシンVM1の実行用データをストレージサーバ装置300から取得して、選択したノードコントローラ装置100に送信転送し、ノードコントローラ装置100は、当該実行用データを記憶部130に記憶するシーケンスS122。ここで、ストレージ管理装置200がノードコントローラ装置100を選択する方法としては様々なものを用いることができる。例えば、ストレージ管理装置200が、各ノードコントローラ装置100における記憶容量の使用状況を把握しておき、仮想マシンVM1の実行用データを格納記憶可能なノードコントローラ装置100の中から、ラウンドロビン方式でいずれかのノードコントローラ装置100を選択するようにしてもよい。あるいは、ストレージ管理装置200が、さらに各ノードコントローラ装置100のCPU使用率状況を把握しておき、仮想マシンVM1の実行用データを格納可能なノードコントローラ装置100の中から、CPU使用率が最も小さいものを選択するなど、ラウンドロビン以外の方法で選択するようにしてもよい。シーケンスS122における実行用データの送信を完了すると、ストレージ管理装置200は、選択したノードコントローラを示すノードコントローラ識別情報をクラウドコントローラ装置400に送信することによって、選択したノードコントローラ装置100を通知するシーケンスS123。クラウドコントローラ装置400において通信部410は、ストレージ管理装置200から送信されたノードコントローラ識別情報を受信すると、当該ノードコントローラ識別情報を処理部420に出力する。処理部420においてVM制御部423は、ストレージ管理装置200から送信されたノードコントローラ識別情報を取得すると、仮想マシンVM1の起動要求を、通信部410を介して、当該ノードコントローラ識別情報の示すノードコントローラ装置100に送信するシーケンスS131。仮想マシンVM1の起動要求の送信先のノードコントローラ装置100図11の例ではノードコントローラ装置100-1において、通信部110は、仮想マシンVM1の起動要求を受信すると、当該起動要求を処理部120に出力する。そして処理部120において仮想マシン実行部121は、記憶部130から仮想マシンVM1の実行用データを読み出して、仮想マシンVMIを起動するシーケンスS132。図12は、起動する仮想マシンの実行用データがVMキャッシュ図2に格納されている場合に、コンピュータシステム1が仮想マシンを起動する処理手順の例を示すシーケンス図である。同図において、シーケンスS201~S211は、図11のシーケンスS101~S111と同様である。また、ここでは、ノードコントローラ装置100-1が、仮想マシンVM1の実行用データをVMキャッシュ131に記憶しており、シーケンスS211で送信された問合せに対して、当該実行用データを記憶している旨の回答を、クラウドコントローラ装置400に送信する。一方、ノードコントローラ装置100-2および100-3は、仮想マシンVM1の実行用データを記憶しておらず、図11のシーケンスS112の場合と同様に、実行用データを記憶していない旨の回答を、クラウドコントローラ装置400に送信するシーケンスS212。シーケンスS221~S222は、図11のシーケンスS131~S132と同様である。図12の例では、ストレージサーバ装置300の記憶する仮想マシンの実行用データをノードコントローラ装置100にコピーする処理図11のシーケンスS121~S123が不要となっている。このように、ノードコントローラ装置100が仮想マシンの実行用データを予め記憶している場合は、仮想マシンを起動する際の処理が比較的少なくて済み、仮想マシン起動に要する時間を短縮することができる。図13は、コンピュータシステム1が新たに仮想マシンを生成する際の処理手順の例を示すシーケンス図である。同図は、仮想マシンVM1仮想マシン識別情報1を実行している状態で、この仮想マシンVM1から派生する仮想マシンVM1-1仮想マシン識別情報1-1を生成する際の処理手順を示している。まず、ユーザ端末装置500は、仮想マシンの生成を要求する操作入力を受け付けると、当該操作入力に従って、仮想マシンの生成要求をクラウドコントローラ装置400に送信し、クラウドコントローラ装置400は、当該生成要求をノードコントローラ装置100に送信転送するシーケンスS301。ここでは、仮想マシンVM1の実行用データをコピーしてカスタマイズすることによって、仮想マシンVM1-1を生成する。このため、クラウドコントローラ装置400は、仮想マシンVM1を実行しているノードコントローラ装置100-1に対して、仮想マシンの生成要求を送信している。ノードコントローラ装置100-1において、通信部110は、仮想マシンの生成要求を受信すると、当該生成要求を処理部120に出力する。処理部120において仮想マシン実行部121は、仮想マシンの生成要求を取得すると、当該生成要求に従って、仮想マシンVM1の実行用データをコピーしてカスタマイズすることによって、新たな仮想マシン新たな仮想マシンの実行用データを生成するシーケンスS302。その後、生成した仮想マシンの保存を要求する操作入力を受け付けると、当該操作入力に従って、仮想マシンの保存要求をクラウドコントローラ装置400に送信する。クラウドコントローラ装置400は、当該保存要求をストレージ管理装置200に送信転送し、ストレージ管理装置200は、当該保存要求をノードコントローラ装置100に送信転送するシーケンスS311。ここでは、ストレージ管理装置200は、仮想マシンを生成したノードコントローラ装置100-1に保存要求を送信する。ノードコントローラ装置100-1において、通信部110は、仮想マシンの保存要求を受信すると、当該保存要求を処理部120に出力する。処理部120において仮想マシン実行部121は、仮想マシンの保存要求を取得すると、当該保存要求に従って、シーケンスS302で生成した仮想マシンの実行用データを、通信部110を介してストレージ管理装置200に送信する。ストレージ管理装置200は、当該実行用データをストレージサーバ装置300に送信転送して、ストレージサーバ装置300に当該実行用データ要求を保存記憶させる。シーケンスS312。そして、ストレージ管理装置200は、ストレージサーバ装置300が実行用データの保存を完了すると、保存完了通知をクラウドコントローラ装置400に送信するシーケンスS313。クラウドコントローラ装置400において通信部410は、保存完了通知を受信すると、当該保存完了通知を処理部420に出力する。そして、処理部420においてVM制御部423は、当該保存完了通知を取得すると、シーケンスS302で生成された仮想マシンを示す仮想マシン識別情報を、派生元の仮想マシン実行用データのコピー元の仮想マシンの識別情報に基づいて決定するシーケンスS321。ここでは、VM制御部423は、仮想マシン識別情報1-1に決定する。なお、VM制御部423が仮想マシン識別情報を生成する処理手順については後述する。次に、VM制御部423は、VMテーブルに新たな行を挿入し、挿入した行に、シーケンスS321で決定した仮想マシン識別情報と、ユーザの決定するマシン名とを対応付けて書き込むシーケンスS322。また、VM制御部423は、シーケンスS321で決定した仮想マシンの情報を、使用履歴情報に保存するシーケンスS323。具体的には、VM制御部423は、使用履歴情報に最下行を追加し、追加した行に、通し番号と、仮想マシンの起動を要求したユーザを示すユーザ識別情報と、起動する仮想マシンを識別する仮想マシン識別情報とを書き込む。一方、使用開始日と使用終了日と使用時間との欄は空欄としておく。その後、ユーザ端末装置500は、実行中の仮想マシンVM1の切断を要求する操作入力を受け付けると、当該操作入力に従って、仮想マシンの切断要求をクラウドコントローラ装置400に送信し、クラウドコントローラ装置400は、当該切断要求をノードコントローラ装置100に送信転送するシーケンスS331。ここでは、クラウドコントローラ装置400は、仮想マシンVM1を実行中のノードコントローラ装置100-1に、当該切断要求を送信する。ノードコントローラ装置100-1において、通信部110は、仮想マシンVM1の切断要求を受信すると、当該切断要求を処理部120に出力する。処理部120において仮想マシン実行部121は、仮想マシンVM1の切断要求を取得すると、当該切断要求に従って、仮想マシンVM1を切断シャットダウンするシーケンスS332。そして、仮想マシン実行部121は、仮想マシンVM1の切断を完了すると、VM1の切断完了を通知する切断完了通知を、通信部110を介してクラウドコントローラ装置400に送信するシーケンスS333。クラウドコントローラ装置400において通信部410は、切断完了通知を受信すると、当該切断完了通知をVM制御部423出力する。そして、VM制御部423は、当該切断完了通知に基づいて、使用履歴情報を更新するシーケンスS341。具体的には、VM制御部423は、使用履歴情報を検索して仮想マシンVM1の使用履歴を示す行のうち、使用終了日が空欄となっている行を検出する。そして、VM制御部423は、検出した行の使用終了日の欄に、例えば現在の日付シーケンスS1341の処理を実行している日の日付を書き込む。また、VM制御部423は、検出した行の使用時間の欄に、仮想マシンVM1の使用時間を書き込む。VM1の使用時間としては、例えば、図11のシーケンスSS131や図12のシーケンスS132のようにクラウドコントローラ装置400がノードコントローラ装置100に対して仮想マシンの起動要求を送信してから、シーケンスS341において切断完了通知を取得するまでの時間を書き込む。さらに、VM制御部423は、使用履歴情報を検索して、切断した仮想マシンから派生した仮想マシンの使用履歴を示す行ここでは、切断した仮想マシンの識別情報1から派生したことを示す仮想マシン識別情報1-1が書き込まれている行、かつ、使用開始日が空欄となっている行を検出する。そして、VM制御部423は、検出した行の使用開始日の欄と使用終了日の欄とに現在の日付を書き込み、また、使用時間の欄に0使用無しを書き込む。使用時間の欄に0を書き込むのは、仮想マシンVM1-1は、まだ生成されたのみで起動されておらず、従って使用されていないからである。このように、VM制御部423が、新たに生成された仮想マシンの情報を使用履歴情報に挿入することで、後述する優先順位の決定において、この新たに生成された仮想マシンに優先順位を付することができる。ユーザは、この仮想マシンを使用する目的で生成しており、従って、この仮想マシンは実行される可能性が高いと考えられる。従って、新たに生成された仮想マシンに高い優先順位を付して、ノードコントローラ装置100のVMキャッシュ131が当該仮想マシンの実行用データを予め記憶しておくことで、実行される可能性の高い仮想マシンの実行用データを予めノードコントローラ装置100が取得しておくようにできる。なお、シーケンスS341において、VM制御部423が、使用履歴情報に新たに生成された派生先の仮想マシン上記の例では仮想マシンVM1-1の情報を書き込む際に、派生元の仮想マシンよりも優先順位が高くなる内容の情報を書き込むようにしてもよい。新たに生成された派生先の仮想マシンは、派生元の仮想マシンをカスタマイズして生成されたものであり、バージョンアップが進んでいる点で、ユーザ使用する可能性が高いと考えられる。従って、派生先の仮想マシンの優先順位を高くすることで、実行される可能性の高い仮想マシンの実行用データを予めノードコントローラ装置100が取得しておくようにできる。ここで、派生先の仮想マシンの優先順位が高くなるようにする方法としては、様々なものを用いることができる。例えば、VM制御部423が、派生先の仮想マシンの使用終了日として、派生元の仮想マシンの使用終了日よりも遅い日付例えば、派生元の仮想マシンの使用終了日より1日後の日付を書き込むようにしてもよいし、あるいは、使用履歴情報に使用終了時刻欄を設けておき、VM制御部423が、派生先の仮想マシンの使用終了時刻として、派生元の仮想マシンの使用終了時刻よりも遅い時刻例えば、派生先の仮想マシンの使用終了時刻より1秒後の時刻を書き込むようにしてもよい。あるいは、VMテーブルに、優先順位を高くする仮想マシンを示すフラグを設けてユーザが設定可能とすることで、派生先の仮想マシンなど特定の仮想マシンの優先順位を高くできるようにしてもよい。図14は、コンピュータシステム1がVMキャッシュ131図2を更新する処理手順の例を示すシーケンス図である。コンピュータシステム1は、例えばユーザが当該コンピュータシステム1を使用しない深夜に、バッチ処理によってVMキャッシュ131の更新を行う。まず、優先順位決定部421図3は、記憶部430の記憶する使用履歴情報に基づいて、ユーザ別使用時間情報を更新するシーケンスS401。具体的には、優先順位決定部421は、図4で説明した使用履歴情報の使用時間をユーザ毎ユーザ識別情報毎に累計して、図7で説明したユーザ別使用時間情報の使用時間合計欄に書き込む。また、優先順位決定部421は、ユーザ毎、かつ、仮想マシン毎に、仮想マシン識別情報と、当該仮想マシンを最後に使用した際の使用終了日とを読出し、また、当該仮想マシンを使用した合計時間を算出する。そして、優先順位決定部421は、これらの情報を、使用時間詳細情報欄に書き込む。次に、優先順位決定部421は、シーケンスS401で更新したユーザ別使用時間情報に基づいて、ストレージサーバ装置300の記憶する仮想マシンの実行用データをノードコントローラ装置100が予め記憶しておく際の優先順位を、NCグループ毎に決定するシーケンスS402。この優先順位の決定方法については後述する。そして、優先順位決定部421は、シーケンスS402で決定した優先順位に基づいて、ストレージサーバ装置300の記憶する仮想マシンの実行用データをノードコントローラ装置100のVMキャッシュ131に記憶させるよう指示するキャッシュ指示を生成し、生成したキャッシュ指示を、通信部410を介してストレージ管理装置200に送信するシーケンスS403。そして、ストレージ管理装置200は、優先順位決定部421から送信されるキャッシュ指示に基づいて、ストレージサーバ装置300から仮想マシンの実行用データを読み出してノードコントローラ装置100の送信し、ノードコントローラ装置100のVMキャッシュ131に記憶させるシーケンスS404。これによって、ノードコントローラ装置100のキャッシュの記憶するデータが更新される。図15は、新たに生成された仮想マシンに対する仮想マシン識別情報をVM制御部423図3が決定する処理手順を示すフローチャートである。VM制御部423は、図12のシーケンスS321で説明したように、新たに生成された仮想マシンの実行用データのストレージサーバ装置300への保存を完了したことを通知する保存完了通知を取得すると、同図の処理を開始する。同図の処理において、VM制御部423は、まず、新たに生成された仮想マシンの派生元の仮想マシン実行用データのコピー元の仮想マシンの識別情報を取得するステップS501。例えば、仮想マシンを生成した仮想マシン実行部121図2が、派生元の仮想マシンを示す仮想マシン識別情報を、通信部110を介してクラウドコントローラ装置400に送信する。そして、VM制御部423は、当該仮想マシン識別情報を取得する。あるいは、VM制御部423は、図12のシーケンスS301で説明したように、ユーザ端末装置500から送信されるVM生成要求から、派生元の仮想マシンを示す仮想マシン識別情報を読み出すことによって、当該仮想マシン識別情報を取得するようにしてもよい。次に、VM制御部423は、ステップS101で取得した仮想マシン識別情報に枝番号1を付加するステップS502。例えば、VM制御部423は、ステップS501において仮想マシン識別情報1を取得すると、枝番号1を付加して、仮の仮想マシン識別情報1-1を生成する。なお、派生元の仮想マシンが無い場合、すなわち、他の仮想マシンの実行用データをコピーせずに新たな仮想マシンの実行用データを生成した場合は、仮の仮想マシン識別情報を1とし、これを枝番号として扱う。そして、VM制御部423は、図5で説明したVMテーブルを検索して、枝番号を付加した仮の仮想マシン識別情報が使用済みか否かを判定するステップS503。使用済みであると判定した場合ステップS503:YES、VM制御部423は、仮の仮想マシン識別情報の枝番号に1を加算するステップS511。例えば、仮の仮想マシン識別情報1-1の枝番号に1を加算して、仮の仮想マシン識別情報を1-2とする。その後、ステップS503に戻る。一方、ステップS503において、仮の仮想マシン識別情報が使用済みでないと判定した場合ステップS503:NO、VM制御部423は、当該仮の仮想マシン識別情報を、新たに生成された仮想マシンを示す仮想マシン識別情報に決定するステップS521。その後、同図の処理を終了する。このように、VM制御部423が、派生元の仮想マシンの識別情報に枝番号を付加して新たに生成された仮想マシンの識別情報を生成することで、図6で説明したように、仮想マシンの派生関係を仮想マシン識別情報にて示すことができる。図16は、コンピュータシステム1がVMキャッシュ131図2を更新する処理手を示すシーケンス図である。図14で説明したように、コンピュータシステム1は、例えばユーザが当該コンピュータシステム1を使用しない深夜に、バッチ処理によってVMキャッシュ131の更新を行う。まず、優先順位決定部421図3は、記憶部430の記憶する使用履歴情報に基づいて、ユーザ別使用時間情報を更新するステップS601。この処理の詳細については後述する。次に、優先順位決定部421は、NCグループ毎に処理を行うループL601を開始するステップS611。さらに、優先順位決定部421は、ループL601において処理対象となっているNCグループに割り当てられているユーザグループのユーザ毎に処理を行うループL602を開始するステップS621。そして、優先順位決定部421は、ユーザ別使用時間情報からループL602において処理対象となっているユーザの情報を読み出し、ユーザ毎かつ仮想マシン毎の使用時間に対する重み付けを行うステップS622。この処理の詳細については後述する。次に、優先順位決定部421は、重み付けされた使用時間に基づいて、当該重み付けされた使用時間が長いほど優先順位が高くなるように、各仮想マシンに対する優先度を決定するステップS623。例えば、仮想マシンVM1、VM1-1、VM1-2、VM1-1-1、VM2の、重み付けされた使用時間がそれぞれ30分、1時間45分、1時間15分、3時間45分、2時間であった場合、この重み付けされた使用時間の長い順に、仮想マシンVM1-1-1、VM2、VM1-1、VM1-2、VM1に、それぞれ優先度1、2、3、4、5を付す。ここでの優先度は、その値が小さいほど、実行用データをノードコントローラ装置100が予め記憶しておく際の優先順位を高くすることを示している。次に、優先順位決定部421は、ステップS622でユーザ別使用時間情報から読み出した、ループL602において処理対象となっているユーザの情報に基づいて、使用終了日最終が遅い仮想マシンほど優先順位が高くなるように、各仮想マシンに対する優先度を決定すステップS624。例えば、図7のユーザ識別情報1の行に示されるように、仮想マシンVM1、VM1-1、VM1-2、VM1-1-1、VM2の、使用終了日最終がそれぞれ2010年02月02日、2010年01月01日、2010年05月05日、2010年06月06日、2010年07月07日であった場合、この使用終了日最終の遅い順に、仮想マシンVM2、VM1-1-1、VM1-2、VM1、VM1-1に、それぞれ優先度1、2、3、4、5を付す。そして、優先順位決定部421は、ステップS623で算出した優先度と、ステップS624で算出した優先度とに基づいて、ループL602において処理対象となっているユーザに関する各仮想マシンの優先度を算出するステップS625。例えば、ステップS623において、仮想マシンVM1-1-1、VM2、VM1-1、VM1-2、VM1に、それぞれ優先度1、2、3、4、5を付し、ステップS624において、仮想マシンVM2、VM1-1-1、VM1-2、VM1、VM1-1に、それぞれ優先度1、2、3、4、5を付した場合、仮想マシン毎に優先度を合計して、仮想マシンVM1-1-1、VM2、VM1-2、VM1-1、VM1の優先度を、それぞれ3、3、7、8、9とする。そして、優先順位決定部421は、ループL602における全てのユーザ、すなわち、ループL601において処理対象となっているNCグループに割り当てられているユーザグループの全てのユーザに対して、ループL602の処理を行ったか否かを判定するステップS626。未処理のユーザが残っていると判定した場合は、ステップS621に戻り、残りのユーザに対してループL602の処理を行う。一方、ステップS626において、全てのユーザに対してループL602の処理を行ったと判定した場合、優先順位決定部421は、ループL601において処理対象となっているNCグループに割り当てられているユーザグループ毎に処理を行うループL603を開始するステップS631。そして、優先順位決定部421は、ループL603において処理対象となっているユーザグループの各ユーザの優先度を算出するステップS632。例えば、図7に示すように、ユーザグループ1グループ識別情報が1のユーザグループ。以下同様において、ユーザ1ユーザ識別情報が1のユーザ。以下同様の使用時間合計が7時間であり、ユーザ2の使用時間合計が36時間である場合、優先順位決定部421は、使用時間合計の長い順に、ユーザ2、ユーザ1の優先度をそれぞれ1、2とする。一方、ユーザグループ2に属するユーザがユーザ3のみである場合は、ユーザ3の使用時間合計にかかわらず、ユーザ3の優先度を1とする。そして、優先順位決定部421は、ループL603における全てのユーザグループ、すなわち、ループL601において処理対象となっているNCグループに割り当てられている全てのユーザグループに対して、ループL603の処理を行ったか否かを判定するステップS633。未処理のユーザグループが残っていると判定した場合は、ステップS631に戻り、残りのユーザグループに対してループL603の処理を行う。一方、ステップS633において、全てのユーザグループに対してループL603の処理を行ったと判定した場合、優先順位決定部421は、各仮想マシンの優先順位を決定するステップS641。ここで、図17は、優先順位決定部421が決定する各仮想マシンの優先順位の例を示す説明図である。同図では、ステップS625において、ユーザ2について、仮想マシンVM2、VM1の優先度をそれぞれ2、4と算出し、また、ユーザ1について、仮想マシンVM1-1-1、VM2、VM1-2、VM1-1、VM1の優先度をそれぞれ3、3、7、8、9と算出し、また、ステップS632において、ユーザ2、ユーザ1の優先度をそれぞれ1、2と算出した場合の例が示されている。ここで、優先順位決定部421は、いずれかのユーザについて優先度の値が小さい仮想マシンの優先順位を高くする。そして、複数の仮想マシンの優先度が同じ値となった場合は、優先度の値の小さいユーザの側の仮想マシンの優先順位を高くする。図17の例では、ユーザ2について仮想マシンVM2の優先度が2となっており最小である。そこで、優先順位決定部421は、この仮想マシンVM2の優先順位を1第1位とする。次に優先度が小さいのは、ユーザ1についての仮想マシンVM1-1-1の優先度3であり、優先順位決定部421は、この仮想マシンVM1-1-1の優先順位を2とする。以下同様にして、優先順位決定部421は、仮想マシンの優先順位を、仮想マシンVM2、VM1-1-1、VM1、VM1-2、VM1-1の順に決定する。そして、優先順位決定部421は、決定した優先順位に従って、各ノードコントローラ装置100のVMキャッシュ131を更新するステップS642。例えば、図8に示すように、図17のユーザ1およびユーザ2対して、ユーザグループ識別情報1が対応付けられており、また、図10に示すように、このユーザグループ識別情報1とNCグループ識別情報Aとが対応付けられており、さらに、図9に示すように、このNCグループ識別情報Aに、ノードコントローラ装置100-1、100-2および100-3が対応付けられている場合、優先順位決定部421は、ノードコントローラ装置100-1、100-2および100-3の具備するVMキャッシュ131の容量の範囲内で、上記の仮想マシンVM2、VM1-1-1、VM1、VM1-2、VM1-1の順で、仮想マシンの実行用データを記憶させる。その後、優先順位決定部421は、NCグループ分類情報に示される全てのNCグループについて、ループL601の処理を行ったか否かを判定するステップS643。未処理のNCグループが残っていると判定した場合は、ステップS611に戻り、残りのNCグループに対してループL601の処理を行う。一方、ステップS643において、全てのNCグループに対してループL601の処理を行ったと判定した場合、同図の処理を終了する。図18は、優先順位決定部421図3が、ユーザ別使用時間情報を更新する処理手順を示すフローチャートである。優先順位決定部421は、図16のステップS601において、同図の処理を行う。同図の処理において、優先順位決定部421は、まず、ユーザグループ分類情報に示されるユーザID毎、すなわちユーザ毎に処理を行うループL701を開始するステップS701。さらに、優先順位決定部421は、VMテーブルに示される仮想マシンID毎、すなわち仮想マシン毎に処理を行うループL702を開始するステップS702。次に、優先順位決定部421は、ループL701で処理対象となっているユーザID、および、ループL702で処理対象となっている仮想マシンIDをキーとして使用履歴情報を検索して、該当するユーザが該当する仮想マシンを最後に使用した際の使用終了日を取得するステップS712。また、優先順位決定部421は、ループL701で処理対象となっているユーザID、および、ループL702で処理対象となっている仮想マシンIDをキーとして使用履歴情報を検索して、該当するユーザが該当する仮想マシンを使用した使用時間を取得し、取得した使用時間を合計して、ユーザ毎かつ仮想マシン毎の累積使用時間を算出するステップS713。そして、優先順位決定部421は、VMテーブルに示される全ての仮想マシンIDについて、ループL702の処理を行ったか否かを判定するステップS714。未処理の仮想マシンIDが残っていると判定した場合は、ステップS711に戻り、残りの仮想マシンIDに対してループL702の処理を行う。一方、ステップS714において、全ての仮想マシンIDに対してループL702の処理を行ったと判定した場合、優先順位決定部421は、ステップS713で算出したユーザ毎かつ仮想マシン毎の累積使用時間を合計して、ユーザ毎の仮想マシンの使用時間合計を算出するステップS721。そして、優先順位決定部421は、ステップS712で取得した使用終了日最終や、ステップS713で算出した累積使用時間や、ステップS721で算出した使用時間合計に基づいて、ユーザ別使用時間情報の、ループL701で処理対象となっているユーザIDの行を更新するステップS722。例えば、使用履歴情報が図4に示す内容の場合、優先順位決定部421は、ユーザ別使用時間情報の各行を図7に示す内容のように更新する。そして、優先順位決定部421は、ユーザグループ分類情報に示される全てのユーザIDについて、ループL701の処理を行ったか否かを判定するステップS723。未処理のユーザIDが残っていると判定した場合は、ステップS701に戻り、残りのユーザIDに対してループL701の処理を行う。一方、ステップS723において、全てのユーザIDに対してループL701の処理を行ったと判定した場合、同図の処理を終了する。次に、図16のステップS622において優先順位決定部421図3が行う、使用時間に対する重み付けについて説明する。図19は、優先順位決定部421が行う、使用時間に対する重み付けの例を示す説明図である。同図において、四角の各々は仮想マシンの情報を示しており、上段は当該仮想マシンの仮想マシン識別情報を、下段は当該仮想マシンの使用時間および重み付けされた使用時間を示している。まず、派生元の仮想マシンの無い仮想マシンVM1およびVM2に対しては、優先順位決定部421は、使用時間をそのまま重み付けされた使用時間としている。一方、仮想マシンVM1から仮想マシンVM1-1およびVM1-2が派生しているように、1つの仮想マシンから複数の仮想マシンが派生している場合、優先順位決定部421は、派生元の仮想マシンの重み付けされた使用時間を、派生先の仮想マシンの数で除算し、得られた商を派生先の各仮想マシンの使用時間に加える重み付けを行っている。図19の例では、優先順位決定部421は、派生元の仮想マシンVM1の重み付けされた使用時間0:3030分を、派生先の仮想マシンの数2で除算して、商0:1515分を得る。そして、優先順位決定部421は、派生先の仮想マシンVM1-1の使用時間1:301時間30分に、算出した15分を加えて、仮想マシンVM1-1の重み付けされた使用時間を1:451時間45分としている。同様に、優先順位決定部421は、派生先の仮想マシンVMの使用時間1:001時間に対して、重み付けされた使用時間を1:151時間15分としている。また、仮想マシンVM1-1から仮想マシンVM1-1-1が派生しているように、1つの仮想マシンから1つの仮想マシンが派生している場合、優先順位決定部421は、派生元の仮想マシンの重み付けされた使用時間を派生先の仮想マシンの使用時間に加える重み付けを行っている。図19の例では、優先順位決定部421は、派生元の仮想マシンVM1-1の重み付けされた使用時間1:451時間45分を、派生先の仮想マシンVM1-1-1-の使用時間2:002時間に加えて、仮想マシンVM1-1-1の重み付けされた使用時間を3:453時間45分としている。以上のように、優先順位決定部421が、派生先の仮想マシンの使用時間を長くする重み付けを行うことで、図16のステップS623において、派生先の仮想マシン、すなわち新たにカスタマイズされた仮想マシンの優先度の値を小さくする。これによって、ステップS642において、新たにカスタマイズされた仮想マシンがVMキャッシュ131に記憶される優先順位を高くすることができる。ここで、新たにカスタマイズされた仮想マシンは、カスタマイズのバージョンが進んでいる点で、ユーザが使用する可能性が高いと考えられる。従って、優先順位決定部421が、派生先の仮想マシンの使用時間を長くする重み付けを行うことで、実行される可能性の高い仮想マシンの実行用データを予めノードコントローラ装置100が取得しておくようにできる。なお、優先順位決定部421が行う重み付けは、上述した派生元の仮想マシンの重み付けされた使用時間を派生先の仮想マシンの数で除算するものに限らず、派生先の仮想マシンの使用時間を長くする様々な重み付けを用いることができる。例えば、優先順位決定部421が、派生元の仮想マシンの重み付けされた使用時間を、派生先の仮想マシンの使用時間に応じて分配して、派生先の仮想マシンの使用時間に加えるようにしてもよい。この場合、派生先の仮想マシンが複数あるときに、使用時間の長い仮想マシン、すなわち、ユーザによってよく使用されている点で、さらに使用される可能性の高い仮想マシンの使用時間を、より長くすることができる。あるいは、優先順位決定部421が、派生元の仮想マシンの重み付けされた使用時間を、そのまま派生先の各仮想マシンの使用時間に加えるようにしてもよい。この場合、派生先の仮想マシンの数が多くても、派生先の仮想マシンの使用時間をより長くできる。上述したように、派生先の仮想マシンは、カスタマイズのバージョンが進んでいる点で、ユーザが使用する可能性が高いと考えられる。従って、実行される可能性の高い仮想マシンの実行用データを予めノードコントローラ装置100が取得しておくようにできる。図20は、優先順位決定部421図3が、使用時間に対する重み付けを行う処理手順を示すフローチャートである。優先順位決定部421は、図16のステップS622において、同図の処理を行う。同図の処理において、優先順位決定部421は、まず、ユーザ別使用時間情報から処理対象の行を読み出し、読み出した行に含まれる仮想マシン識別情報の最大階層数を取得するステップS801。例えば、図19に示す例において、優先順位決定部421は、rootの階層数を0として、仮想マシンVM1-1-1の階層数3を最大階層数として取得する。次に、優先順位決定部421は、第1階層の仮想マシン、すなわち派生元の無い仮想マシンについては、その使用時間をそのまま重み付けされた使用時間とするステップS802。例えば、図19で説明したように、優先順位決定部421は、第1階層の仮想マシンVM1およびVM2に対しては、使用時間をそのまま重み付けされた使用時間としている。次に、優先順位決定部421は、第2階層からステップS801で取得した最大階層までの各階層について、階層数の小さい順に処理を行うループL801を開始するステップS811。そして、優先順位決定部421は、ループL801で処理対象となっている階層数の仮想マシン識別情報を、派生元毎に分類するステップS812。例えば、図19に示す例において、階層数2の仮想マシン識別情報1-1と1-2とは、同一の仮想マシン識別情報1から派生している。そこで、優先順位決定部421は、仮想マシン識別情報1-1と1-2とを、同じグループに分類する。次に、優先順位決定部421は、ステップS812で分類した分類したグループ毎、すなわち派生元毎に処理を行うループL802を開始するステップS821。そして、優先順位決定部421は、派生元の仮想マシンの重み付けされた使用時間に基づいて、派生先の仮想マシンの使用時間に加算する使用時間重みを算出するステップS822。例えば、図19で説明したように、優先順位決定部421は、派生元の仮想マシンVM1の重み付けされた使用時間0:3030分を、派生先の仮想マシンの数2で除算して、商0:1515分を得る。そして、優先順位決定部421は、算出した重みを派生先の各仮想マシンの使用時間に加算するステップS823。例えば、図19で説明したように、優先順位決定部421は、派生先の仮想マシンVM1-1の使用時間1:301時間30分に、算出した15分を加えて、仮想マシンVM1-1の重み付けされた使用時間を1:451時間45分とする。同様に、優先順位決定部421は、派生先の仮想マシンVMの使用時間1:001時間に対して、重み付けされた使用時間を1:151時間15分とする。そして、優先順位決定部421は、ループL802における全てのグループに対して、当該ループL802の処理を行ったか否かを判定するステップS824。未処理のグループが残っていると判定した場合は、ステップS821に戻り、残りのグループに対してループL802の処理を行う。一方、ステップS824において、全てのグループに対してループL802の処理を行ったと判定した場合、優先順位決定部421は、ループL801における全ての階層数に対して、当該ループL801の処理を行ったか否かを判定するステップS831。未処理の階層数が残っていると判定した場合は、ステップS811に戻り、残りの階層数に対してループL801の処理を行う。一方、ステップS831において、全ての階層数に対してループL801の処理を行ったと判定した場合、同図の処理を終了する。以上のように、優先順位決定部421は、仮想マシンの実行用データをVMキャッシュ131が記憶する優先順位を決定する際に、派生先の仮想マシンに対して、派生元の仮想マシンの使用時間を反映させ、使用時間の長い仮想マシンの実行用データを優先的にVMキャッシュ131に記憶させるようにする。これにより、カスタマイズのバージョンが進んでいる派生先の仮想マシンの実行用データを優先的にVMキャッシュ131に記憶させることができる。このカスタマイズのバージョンが進んでいる仮想マシンは、ユーザが使用する可能性が高いと考えられる。上記のように、優先順位決定部421が、派生元の仮想マシンの使用時間を反映させ、派生先の仮想マシンの使用時間を長くする重み付けを行うことで、実行される可能性の高い仮想マシンの実行用データを予めノードコントローラ装置100VMキャッシュ131が取得しておくようにできる。また、ノードコントローラ装置100は、ユーザに応じてグループ分けされており、グループ毎に、仮想マシンの実行用データをVMキャッシュ131が記憶する。このように、ユーザに応じて使用可能なノードコントローラ装置100を特定しておくことで、各ユーザグループに対して使用可能なノードグループを確保できる。すなわち、あるユーザが仮想マシンを実行したいときに、他のユーザグループのユーザが仮想マシンを実行しているためにいずれのノードコントローラ装置100においても充分な資源を確保できず仮想マシンを実行できない事態を回避できる。また、仮想マシン実行部121図2は、新たに生成された派生先の仮想マシンが未使用の場合にも、使用履歴情報を更新する情報を書き込む際に、新たに生成された派生先の仮想マシンについても、使用終了日等の情報を書き込む。これによって、優先順位決定部421が、仮想マシンの実行用データをVMキャッシュ131が記憶する優先順位を決定する際に、派生先の仮想マシンの優先順位を高くすることができる。また、仮想マシン実行部121は、使用履歴情報を更新する際に、新たに生成された派生先仮想マシンの使用終了日を派生元の仮想マシンの使用終了日よりも遅い日付にするなど、仮想マシンの優先順位を派生元の仮想マシンの優先順位よりも高くする内容の情報を書き込む。これによって、優先順位決定部421が、仮想マシンの実行用データをVMキャッシュ131が記憶する優先順位を決定する際に、派生先の仮想マシンの優先順位をさらに高くすることができる。なお、コンピュータシステム1の全部または一部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより各部の処理を行ってもよい。なお、ここでいうコンピュータシステムとは、OSや周辺機器等のハードウェアを含むものとする。また、コンピュータシステムは、WWWシステムを利用している場合であれば、ホームページ提供環境あるいは表示環境も含むものとする。また、コンピュータ読み取り可能な記録媒体とは、フレキシブルディスク、光磁気ディスク、コンパクトディスク等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらにコンピュータ読み取り可能な記録媒体とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。以上、この発明の実施形態を図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計変更等も含まれる。