(57)【要約】【課題】リソースの利用要求から利用可能になるまでの時間を短縮する。【解決手段】予め要求の多いリソースを有する配備用仮想計算機を用意し、要求スペックと共に仮想計算機の割り当て要求を受付けた際、要求スペックとは合致しない配備用仮想計算機であっても空きリソースの追加によって合致可能な配備用仮想計算機を検索結果に含めてユーザに提示し、ユーザが選択可能な配備用仮想計算機の数を拡張し、またリソースが利用可能になるまでの時間を短縮する。また配備用仮想計算機のスペックがユーザからの要求スペックと合致するよう、要求スペックの来歴情報を分析し、利用度の高いスペック、即時性が求められるスペックを特定し、当該スペックに基づいて配備用仮想計算機を事前に配備する。【選択図】  図４
2014038364.tif 000002
【特許請求の範囲】
【請求項１】
複数の物理計算機とネットワークで接続され、各々の前記物理計算機に実装されたリソースを用いて複数の仮想計算機を割当てるリソース管理サーバであって、
各々の前記物理計算機に実装された配備用仮想計算機と、前記配備用仮想計算機が用いるリソースの使用量との対応関係を記憶するリソース管理テーブルをメモリに格納するリソース管理部と、
前記物理計算機と、前記物理計算機に実装されたリソースの総保有量と、前記物理計算機に実装された前記仮想計算機に割当てられていない空きリソースの総空き容量との対応関係を記憶するプール情報管理テーブルをメモリに格納するプール管理部と、
新たな仮想計算機の割り当て要求を、前記新たな仮想計算機で必要とするリソースの使用量を含む要求スペックと共に受け付ける要求スペック受付部と、
前記要求スペック受付部で受け付けた前記要求スペックに含まれる前記リソースの前記使用量を割当てることの可能な仮想計算機を検索する検索部と、を有し、
前記検索部は、前記リソース管理部で記憶された配備用仮想計算機から、前記要求スペックと合致した前記リソースの前記使用量を有する配備用仮想計算機と、前記要求スペックとは合致しない前記リソースの前記使用量を有した配備用仮想計算機であって、前記プール管理部で記憶された前記空きリソースを追加することで要求スペックと同じ前記使用量を確保できる配備用仮想計算機とを検索する、
ことを特徴とするリソース管理サーバ。
【請求項２】
前記リソース管理サーバは、更に、
前記要求スペック受付部で受け付けた前記要求スペックを来歴情報としてメモリに記憶する来歴情報管理部と、
前記来歴情報管理部で記憶された前記来歴情報を参照して、前記要求スペックで要求された前記リソースの前記使用量毎の頻度を算出し、前記頻度に基づいて前記要求スペックの利用度を算出する利用度算出部と、
前記利用度算出部で算出された利用度に基づいて配備用スペックを決定する配備用スペック決定部と、
を有し、
前記配備用スペック決定部で決定された前記配備用スペックに含まれる前記リソースの前記使用量を有する配備用仮想計算機を、前記プール管理部で記憶された前記空きリソースの前記総空き容量を参照して新たに配備し、新たに配備された前記配備用仮想計算機と、前記配備用仮想計算機に配備された前記リソースの使用量との対応関係を、リソース管理部で記憶する前記リソース管理テーブルに新たに記憶する仮想計算機配備部と、
を有することを特徴とする請求項１に記載のリソース管理サーバ。
【請求項３】
前記リソース管理サーバは、更に、
前記検索部で検索した前記配備用仮想計算機から、割当てるべき仮想計算機の選択を受け付ける割り当て選択受付部と、
前記割り当て選択受付部で選択された前記配備用仮想計算機が、前記要求スペックとは合致しない前記リソースの前記使用量を有した配備用仮想計算機であって、前記プール管理部で記憶された前記空きリソースを追加することで要求スペックと同じ前記使用量を確保できる配備用仮想計算機であった場合、前記配備用仮想計算機のリソースに前記空きリソースを追加して、前記要求スペックと合致する前記リソースの前記使用量を有した仮想計算機として割り当てる仮想計算機割当部と、
を有することを特徴とする、請求項１または２のいずれか一項に記載のリソース管理サーバ。
【請求項４】
前記来歴情報管理部は、更に、前記要求スペック受付部で受付けた前記要求スペックに基づいて前記仮想計算機割当部で前記仮想計算機を割当てた要求時刻と、前記仮想計算機割当て部で割当てた前記仮想計算機の利用開始時刻とを取得して来歴情報に記憶し、
前記利用度算出部は、更に、前記来歴情報に記憶された前記要求時刻と前記利用開始時刻との差分を算出し、前記差分に基づいて前記要求スペックの即時度を算出し、
前記仮想計算機配備部は、更に、前記前記配備用スペック決定部が決定した配備用スペックに含まれる前記リソースの前記使用量を有する配備用仮想計算機を、前記即時度に基づいて配備する、
ことを特徴とする請求項１乃至３のいずれか一項に記載のリソース管理サーバ。
【請求項５】
前記来歴情報管理部は、更に、前記要求スペック受付部で受付けた前記要求スペックに基づいて、前記仮想計算機割当部で割当てた前記仮想計算機が使用するリソースの使用量に基づいて前記リソースの占有率を算出して前記来歴情報に記憶し、
前記利用度算出部は、更に、前記来歴情報に記憶された占有率に基づいて、前記要求スペックの占有度を算出し、
前記仮想計算機配備部は、更に、前記前記配備用スペック決定部が決定した前記配備用スペックに含まれる前記リソースの前記必要量を有する配備用仮想計算機を、前記占有度に基づいて配備する、
ことを特徴とする請求項１乃至３のいずれか一項に記載のリソース管理サーバ。
【請求項６】
複数の物理計算機とネットワークで接続され、各々の前記物理計算機に実装されたリソースを用いて複数の仮想計算機を割当てるリソース管理サーバにおけるリソース管理方法であって、
前記リソース管理サーバは、
各々の前記物理計算機に実装された配備用仮想計算機と、前記配備用仮想計算機が用いるリソースの使用量との対応関係を記憶するリソース管理テーブルをメモリに格納し、
前記物理計算機と、前記物理計算機に実装されたリソースの総保有量と、前記物理計算機に実装された前記仮想計算機に割当てられていない空きリソースの総空き容量との対応関係を記憶するプール情報管理テーブルをメモリに格納し、
新たな仮想計算機の割り当て要求を、前記新たな仮想計算機で必要とするリソースの使用量を含む要求スペックと共に受け付け、
前記リソース管理テーブルに記憶された配備用仮想計算機から、前記要求スペックと合致した前記リソースの前記使用量を有する配備用仮想計算機と、前記要求スペックとは合致しない前記リソースの前記使用量を有した配備用仮想計算機であって、前記プール情報管理テーブルに記憶された前記空きリソースを追加することで要求スペックと同じ前記使用量を確保できる配備用仮想計算機とを検索する、
ことを特徴とするリソース管理方法。
【請求項７】
前記リソース管理サーバは、更に、
受け付けた前記要求スペックを来歴情報としてメモリに記憶し、
前記メモリに記憶された来歴情報を参照して、前記要求スペックで要求された前記リソースの前記使用量毎の頻度を算出し、前記頻度に基づいて前記要求スペックの利用度を算出し、
算出された利用度に基づいて配備用スペックを決定し、
決定された前記配備用スペックに含まれる前記リソースの前記使用量を有する配備用仮想計算機を、前記プール情報管理テーブルに記憶された前記空きリソースの前記総空き容量を参照して新たに配備し、新たに配備された前記配備用仮想計算機と、前記配備用仮想計算機に配備された前記リソースの使用量との対応関係を前記リソース管理テーブルに新たに記憶する
ことを特徴とする請求項６に記載のリソース管理方法。
【請求項８】
前記リソース管理サーバは、更に、
検索した前記配備用仮想計算機から、割当てるべき仮想計算機の選択を受け付け、
選択された前記配備用仮想計算機が、前記要求スペックとは合致しない前記リソースの前記使用量を有した配備用仮想計算機であって、前記プール情報管理テーブルに記憶された前記空きリソースを追加することで前記要求スペックと同じ前記使用量を確保できる配備用仮想計算機であった場合、前記配備用仮想計算機のリソースに前記空きリソースを追加して、前記要求スペックと合致する前記リソースの前記使用量を有した仮想計算機として割り当てる、
ことを特徴とする、請求項６または７のいずれか一項に記載のリソース管理方法。
【請求項９】
前記リソース管理サーバが、更に、
受付けた前記要求スペックに基づいて前記仮想計算機を割当てた要求時刻と、割当てた前記仮想計算機の利用開始時刻とを取得して来歴情報に記憶し、
前記来歴情報に記憶された前記要求時刻と前記利用開始時刻との差分を算出し、前記差分に基づいて前記要求スペックの即時度を算出し、
決定した前記配備用スペックに含まれる前記リソースの前記使用量を有する配備用仮想計算機を、前記即時度に基づいて配備する、
ことを特徴とする請求項６乃至８のいずれか一項に記載のリソース管理方法。
【請求項１０】
前記リソース管理サーバが、更に、
受付けた前記要求スペックに基づいて割当てた前記仮想計算機が使用するリソースの使用量に基づいて前記リソースの占有率を算出して前記来歴情報に記憶し、
前記来歴情報に記憶された占有率に基づいて、前記要求スペックの占有度を算出し、
決定した前記配備用スペックに含まれる前記リソースの前記使用量を有する配備用仮想計算機を、前記占有度に基づいて配備する、
ことを特徴とする請求項６乃至８のいずれか一項に記載のリソース管理方法。
【請求項１１】
複数の物理計算機とネットワークで接続され、各々の前記物理計算機に実装されたリソースを用いて複数の仮想計算機を割当てるリソース管理サーバで実行するリソース管理プログラムであって、
各々の前記物理計算機に実装された配備用仮想計算機と、前記配備用仮想計算機が用いるリソースの使用量との対応関係を記憶するリソース管理テーブルをメモリに格納するステップと、
前記物理計算機と、前記物理計算機に実装されたリソースの総保有量と、前記物理計算機に実装された前記仮想計算機に割当てられていない空きリソースの総空き容量との対応関係を記憶するプール情報管理テーブルをメモリに格納するステップと、
新たな仮想計算機の割り当て要求を、前記新たな仮想計算機で必要とするリソースの使用量を含む要求スペックと共に受け付けるステップと、
前記リソース管理テーブルに記憶された配備用仮想計算機から、前記要求スペックと合致した前記リソースの前記使用量を確保できる配備用仮想計算機と、前記要求スペックとは合致しない前記リソースの前記使用量を有した配備用仮想計算機であって、前記プール情報管理テーブルに記憶された前記空きリソースを追加することで要求スペックと同じ前記使用量を確保できる配備用仮想計算機とを検索するステップと、
をリソース管理サーバで実行することを特徴とするリソース管理プログラム。
【請求項１２】
前記リソース管理プログラムは、更に、
受け付けた前記要求スペックを来歴情報としてメモリに記憶するステップと、
前記メモリに記憶された来歴情報を参照して、前記要求スペックで要求された前記リソースの前記使用量毎の頻度を算出し、前記頻度に基づいて前記要求スペックの利用度を算出するステップと、
算出された利用度に基づいて配備用スペックを決定するステップと、
決定された前記配備用スペックに含まれる前記リソースの前記使用量を有する配備用仮想計算機を、前記プール情報管理テーブルに記憶された前記空きリソースの前記総空き容量を参照して新たに配備し、新たに配備された前記配備用仮想計算機と、前記配備用仮想計算機に配備された前記リソースの使用量との対応関係を前記リソース管理テーブルに新たに記憶するステップと、
を前記リソース管理サーバで実行することを特徴とする請求項１１に記載のリソース管理プログラム。
【請求項１３】
前記リソース管理プログラムは、更に、
検索した前記配備用仮想計算機から、割当てるべき仮想計算機の選択を受け付けるステップと、
選択された前記配備用仮想計算機が、前記要求スペックとは合致しない前記リソースの前記使用量を有した配備用仮想計算機であって、前記プール情報管理テーブルに記憶された前記空きリソースを追加することで前記要求スペックと同じ前記使用量を確保できる配備用仮想計算機であった場合、前記配備用仮想計算機のリソースに前記空きリソースを追加して、前記要求スペックと合致する前記リソースの前記使用量を有した仮想計算機として割り当てるステップと、
をリソース管理サーバで実行することを特徴とする、請求項１１乃至１２のいずれか一項に記載のリソース管理プログラム。
【請求項１４】
前記リソース管理プログラムが、更に、
受付けた前記要求スペックに基づいて前記仮想計算機を割当てた要求時刻と、割当てた前記仮想計算機の利用開始時刻とを取得して来歴情報に記憶するステップと、
前記来歴情報に記憶された前記要求時刻と前記利用開始時刻との差分を算出し、前記差分に基づいて前記要求スペックの即時度を算出するステップと、
決定した前記配備用スペックに含まれる前記リソースの前記必要量を有する配備用仮想計算機を、前記即時度に基づいて配備するステップと、
をリソース管理サーバで実行することを特徴とする請求項１１乃至１３のいずれか一項に記載のリソース管理プログラム。
【請求項１５】
前記リソース管理プログラムが、更に、
受付けた前記要求スペックに基づいて割当てた前記仮想計算機が使用するリソースの使用量に基づいて前記リソースの占有率を算出して前記来歴情報に記憶するステップと、
前記来歴情報に記憶された占有率に基づいて、前記要求スペックの占有度を算出するステップと、
決定した前記配備用スペックに含まれる前記リソースの前記使用量を有する配備用仮想計算機を、前記占有度に基づいて配備するステップと、
をリソース管理サーバで実行することを特徴とする請求項１１乃至１３のいずれか一項に記載のリソース管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プール化された計算機リソースを管理するリソース管理技術に関する。特に、プール化された計算機リソースから利用者の要求に合うリソースを割り当てるリソース割り当て技術、および、利用者が要求するリソースを短期間で容易するリソース配備技術に関する。
【背景技術】
【０００２】
計算機リソースをプール化して運用するリソース管理技術がある。計算機リソースとは、例えば計算機に具備されているＣＰＵ、メモリ、ハードディスクドライブなどである。通常１つの物理計算機に複数の仮想計算機（ＶＭ：Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）を実行させ、各仮想計算機が物理計算機の計算機リソースの一部を利用する。計算機リソースは、仮想計算機の実行に応じて計算機リソースを割り当てる。例えばＣＰＵが４つのコアを有していれば、１とをある仮想計算機に割り当てる。このとき残りの３コアを他の仮想計算機が実行されるまでの間計算機プールとして管理する。計算機リソースの管理は、仮想計算機を実装する仮想化ソフトウエアが行う。仮想化ソフトウエアは、計算機リソースをプール化して管理し、仮想計算機を実行する際に必要に応じて割り当てるようにしている。計算機リソースの利用者は、プール化されたリソースから必要なときに、必要な分量だけリソースを割り当ててもらい、利用が終われば使用していた計算機リソースを計算機プールへ返却する。このように、計算機リソースをプール化することで、計算機リソースの再利用性を高めることができ、計算機リソースの利用効率を向上できる。
【０００３】
リソース管理技術の中でも、物理計算機のプール化運用の普及がとりわけ進んでいる。物理計算機のプール化運用は、計算機の仮想化技術をベースにしている。リソースの提供者は、計算機の仮想化ソフトウェアを搭載した物理計算機を多数用意する。これらの物理計算機は、計算機プールを構成する。計算機プールの利用者は、計算機プールに、必要なスペックの仮想計算機（ＶＭ：Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）を生成する。仮想計算機を生成することにより、計算機プールが持つ物理的な計算機リソースが、当該仮想計算機に割り当てられる。利用者は、仮想計算機の利用が終わると、仮想計算機を物理計算機から削除する。仮想計算機を削除することにより、当該仮想計算機に割り当てられていた計算機リソースが、計算機プールへ戻される。
【０００４】
また、仮想計算機の生成は、仮想計算機の配備、仮想計算機の起動、の順に行われる。仮想計算機の配備とは、あらかじめ記憶デバイス（ハードディスクなどの永続的な記憶デバイス）に記憶されている仮想計算機の実行イメージを、当該仮想計算機が動作する物理計算機の記憶デバイスへコピーすることである。また仮想計算機の起動とは、仮想化ソフトウェアが、仮想計算機の実行イメージから仮想計算機を起動することである。
【０００５】
仮想計算機の起動は、通常、数分程度の時間で完了する。一方、仮想計算機の配備は、仮想計算機の実行イメージのコピー処理に時間がかかるため、通常、完了までに数十分から数時間程度の時間を要する。多数の仮想計算機を必要とする利用者は、全仮想計算機の配備完了までに、多大な時間を待つ必要がある。そのため、仮想計算機の配備にかかる時間を短縮し、利用者の利便性を向上させる必要がある。
【０００６】
また、仮想計算機の実行イメージコピーは、コピー元計算機、コピー先計算機の双方のCPU、メモリを多量に消費する。また、両計算機間のネットワーク帯域も、同様に多量に消費する。そのため、一度に多数の仮想計算機の実行イメージをコピーすることを避ける必要がある。
【０００７】
仮想計算機の配備にかかる時間を短縮する先行技術として以下の文献がある。なお、以下の先行技術には、物理計算機の配備時間を短縮する技術を含むが、仮想計算機の配備時間短縮にも適用可能である。
【０００８】
特許文献１には、ホスティング環境として提供しているシステムリソースと、クライアントからのリソース割り当て要求内容に応じて、次に提供するシステムリソースの構成を最適な構成にすること、が開示されている。
【０００９】
また、特許文献２には、待機計算機が具備するソフトウェア構成と、業務システムが要求するソフトウエア構成との差異毎に、待機計算機（複数）を動的にグループ分けする機能を情報システムに持たせ、計算機を融通する際に、ソフトウェア構成でグループ分けした待機計算機を検索し、抽出し、ソフトウェアの環境構築を迅速に完了させる、ことが開示されている。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２００６−１８５６１号公報
【特許文献２】特開２００７−１１４９８３号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
利用者が要求する仮想計算機のスペックは必ずしも一様ではない。従って、如何に利用者の要求するスペックに合致した仮想計算機を早期に配備できるかが課題である。
特許文献１で記載された発明は、利用者のリソース要求履歴の分析から将来的なリソース要求量を予測してリソース量の過不足を予め調整する。しかし、あくまでも要求された時点で仮想計算機を配備するのみで、事前に仮想計算機が配備できるよう準備していない。
また特許文献２で記載された発明は、あらかじめ待機計算機が具備するソフトウエア構成をグループで分類し、グループ分けされた待機計算機を検索することで、要求されたソフトウエア構成を迅速に構築することが開示されている。本文献は、予めソフトウエアを具備した待機計算機を有する点で迅速化を図っている。しかし更に個々のアプリケーションを実行する上で必要なリソース量を調整していない。
このように、ユーザの要求する仮想計算機のスペック、特に仮想計算機に必要なリソースとそのリソース量を如何に迅速に配備するかが課題である。
【課題を解決するための手段】
【００１２】
本発明は、ユーザの要求する仮想計算機のスペック、特に仮想計算機に必要なリソースとそのリソース量を如何に迅速に配備ために、予め仮想計算機の利用要求の履歴を分析し、予め配備する仮想計算機が有するリソースとそのリソース量を推測する精度を向上することを目的とする。具体的には、利用要求の多い計算機リソースと計算機リソース量を推測し、推測した計算機リソースと計算機リソース量を有した仮想計算機を予め配備して用意する。利用者はまず要求スペックを入力する。計算機は、要求スペックを受領すると、要求スペックに一致する仮想計算機を探索し一旦利用者に表示する、利用者は要求スペックと一致した仮想計算機を選択することで当該用意していた仮想計算機を即時に利用開始可能となり、開始時間を短縮できる。また、要求されたスペックと一致する仮想計算機を探索する際に、完全に一致はしていないがリソース量を少し調整するのみでスペックと一致することができる仮想計算機も探索結果として追加表示する。リソース量の調整に必要な時間は、他の仮想計算機を配備するのに掛かる時間と比較すると、かなり少なくて済む。利用者は、要求スペックとは一致しないがリソース量の調整のみで済む仮想計算機を選択することで、利用開始時間を短縮することができる。また用意すべき仮想計算機の要求スペックも推測する。今までに利用された仮想計算機に要求されたスペックの傾向を分析する。具体的には、過去に利用された仮想計算機が実際にどれだけのリソースを消費したかを把握し、配備する仮想計算機のスペックを推測する。推測したスペックに基づいて予め仮想計算機を配備する。
【００１３】
また過去に利用された仮想計算機のリソースが物理計算機のリソースに占める割合を分析し、占める割合の多い仮想計算機の要求スペックを優先して配備する。また仮想計算機を割当ててから開始するまでの時間を測定して即時性を分析し、即時性の高い仮想計算機の要求スペックを優先して配備する。このように、利用者が要求するスペックの利用形態に応じて仮想計算機を配備する物理計算機を推測し、当該物理計算機上の仮想計算機を予め用意して利用開始時間を短縮する。
【発明の効果】
【００１４】
本発明によれば、利用者の要求スペックに応じた仮想計算機の利用開始時間を短縮することができる。また今までの利用者の利用形態である仮想計算機の組み合わせ傾向や配置傾向を予め分析しておき、利用者の要求スペックに即時に応答できるよう準備することで、利用開始時間の短縮を図ることができる。
【図面の簡単な説明】
【００１５】
【図１】実施例１の全体システム構成図である。
【図２】実施例１のハイパバイザ構成テーブルである。
【図３】実施例１のＶＭプール情報テーブルである。
【図４】実施例１の要求スペック処理のフローチャートである。
【図５】実施例１の検索結果リスト作成処理のフローチャートである。
【図６】実施例１の要求受付処理での入力画面である。
【図７】実施例１の検索結果リスト出力画面である。
【図８】実施例１の来歴情報テーブルである。
【図９】実施例１の利用度情報テーブルである。
【図１０】実施例１の仮想計算機配備処理のフローチャートである。。
【図１１】実施例１の利用度情報作成処理のフローチャートである。
【図１２】実施例１の利用度算出処理のフローチャートである。
【図１３】実施例１の配備用スペック決定処理のフローチャートである。
【図１４】実施例１の配備用仮想計算機の配備処理のフローチャートである。
【図１５】実施例２の来歴情報テーブルである。
【図１６】実施例２の利用度情報テーブルである。
【図１７】実施例２の仮想計算機配備処理のフローチャートである。
【図１８Ａ】実施例２の利用度情報作成処理のフローチャートである。
【図１８Ｂ】実施例２の利用度情報作成処理のフローチャートである。
【図１９】実施例２の仮想計算機配備処理のサブフローチャートである。
【図２０】実施例２のレベルオプション入力画面である。
【図２１】実施例３の要求受付処理での入力画面である。
【図２２】実施例３のハイパバイザ構成テーブルである。
【図２３】実施例３のＶＭプール情報テーブルである。
【図２４】実施例３の要求スペック処理のフローチャートである。
【図２５】実施例３の検索結果リスト見直し処理のフローチャートである。
【図２６】実施例３の検索結果リスト出力画面における検索結果リストである。
【図２７】実施例３の検索結果リスト出力画面における検索結果リストである。
【図２８】実施例３の検索結果リスト出力画面における検索結果リストである。
【図２９】実施例３の来歴情報テーブルである。
【図３０】実施例３の利用度情報テーブルである。
【発明を実施するための形態】
【実施例１】
【００１６】
本発明の実施形態の一つは、リソース管理サーバが利用者からの仮想計算機要求を受け付け、同要求を満たす仮想計算機を利用者に提示する。リソース管理サーバは、利用者が過去に入力した仮想計算機要求の履歴を分析して、今後の要求が見込まれる仮想計算機を推測する。リソース管理サーバは、実際の要求が入力される前に、推測に基づいて仮想計算機の配備を済ませる。実際に、利用者からリソース要求が入力されると、リソース管理サーバは、既に配備された仮想計算機の中から、要求を満たす仮想計算機を検索し、利用者へ提示する。仮に、リソース要求で入力された仮想計算機のスペックが既に配備された仮想計算機のスペックと異なる場合には、リソース管理サーバは、配備済み仮想計算機のスペックを変更可能か否か、をチェックする。リソース管理サーバは、スペック変更が可能であれば、同配備済み仮想計算機を利用者へ提示する仮想計算機のリストへ加える。このように、リソース管理サーバが、要求の多い仮想計算機を予め配備しておくことで、利用者は、同仮想計算機を即座に使用できる。つまり、利用者は、仮想計算機の配備が完了するまで待つ必要がなく、利用者の利便性は大きく向上する。
【００１７】
図１は、実施例１の全体システム構成図である。リソース管理サーバ０１００は物理計算機であり、ＣＰＵ０１０１、メモリ０１０２、ネットワークインターフェースカード（ＮＩＣと図示する）０１０９、入力Ｉ／Ｆ０１０３、出力Ｉ／Ｆ０１０５、ＨＤＤ  Ｉ／Ｆ０１０７を具備する。リソース管理サーバ０１００の入力Ｉ／Ｆ０１０３は、マウスやキーボード０１０４といった入力デバイスと接続され、ユーザからの操作を受け付ける。出力Ｉ／Ｆ０１０５はディスプレィ０１０６といった出力デバイスと接続され、ユーザへの画面出力を行う。出力デバイスであれば他にもプリンタ（図示せず）も接続可能である。ＨＤＤ  Ｉ／Ｆ０１０７はＨＤＤ０１０８と接続され、種々のプログラムやＣＰＵ０１０１で処理された各種データ・テーブル等を格納する。ＮＩＣ０１０９はネットワーク０１２０と接続され、他の物理計算機０１３０、０１４０と接続されている。
【００１８】
メモリ０１０２には、リソース管理プログラム０１１０が実装されている。リソース管理プログラム０１１０は、通常ＨＤＤ０１０８に格納され、ＣＰＵ０１０１の要求によりメモリへロードされ実装される。リソース管理プログラム０１１０は、要求受付処理０１１１、リソースの検索処理０１１２、仮想計算機の割当処理０１１３、仮想計算機の利用状況を算出する計測処理０１１４、要求の多い仮想計算機を予め配備するための配備処理０１１５、他の物理計算機０１３０、０１４０で実際にユーザへ割当てられた仮想計算機や、予め配備された仮想計算機等の情報を各物理計算機０１３０、０１４０から収集し管理する管理処理０１１６から構成される。メモリ０１０２では、ユーザの要求に基づいて検索された配備可能な仮想計算機の情報を保持するための検索結果リスト０７００、ユーザの要求した仮想計算機のスペック等を格納する来歴情報テーブル０８００（図１では来歴情報ＴＢＬと表記する）、来歴情報テーブルに格納された来歴情報からユーザの利用傾向を把握するために算出された利用度情報テーブル０９００（図１では利用度情報ＴＢＬと表記する）、各物理計算機０１３０、０１４０から収集した仮想計算機の実装状態を保持するハイパバイザ構成テーブル０２００（図１ではハイパバイザ構成ＴＢＬと表記する）、各物理計算機０１３０、０１４０に実装されるＣＰＵやメモリといったリソースのリソース量と、仮想計算機等で使用されていない空きリソース量を保持するＶＭプール情報テーブル（図１ではＶＭプール情報ＴＢＬと表記する）といった種々のテーブルを保持しており、リソース管理プログラム０１１０が、処理に応じて適宜読み書きを行う。これらのテーブルは、またＨＤＤ０１０８にも格納され、必要に応じてＣＰＵ０１０１が、ＨＤＤから読み出してメモリへロードしたり、メモリ上の各種テーブルの情報をＨＤＤ０１０８へ格納する。
【００１９】
物理計算機０１３０、０１４０は、リソース管理サーバ０１００と同様のハードウエア構成を有した計算機で、各々ＣＰＵ０１３１、０１４１、メモリ０１３２、０１４２、リソース管理サーバ０１００とネットワーク接続するためのＮＩＣ０１３３、０１４３、ＨＤＤ０１３８、０１４８と各々接続するためのＨＤＤ  Ｉ／Ｆ０１３４、０１４４を実装する。図示していないがリソース管理サーバ０１００で実装された他の入力Ｉ／Ｆ０１０３、出力Ｉ／Ｆ０１０５も実装することができる。物理計算機のメモリ上にはハイパバイザ０１３６、０１４６がロードされており、複数の仮想計算機の生成、割当、スペック変更、削除といった様々な管理を行う。図１では、物理計算機０１３０のハイパバイザ０１３６の識別子をＨＶ１とし、物理計算機０１４０のは派バイザ０１４６の識別子をＨＶ２としている。各ハイパバイザ０１３６、１４６は、各々の計算機上で複数の仮想計算機を割当てている。例えば物理計算機０１３０上では、仮想計算機ＶＭ１：０１３７と仮想計算機ＶＭ２：０１３８が割り当てられている。物理計算機０１４０上では、仮想計算機ＶＭ３：０１４７と仮想計算機ＶＭ４：０１４８が割り当てられている。
【００２０】
リソース管理サーバ０１００のリソース管理プログラムは、各物理計算機０１３０、０１４０のハイパバイザ０１３６、０１４６と通信することで情報の授受を行うことができ、適宜仮想計算機の割当状態を取得してハイパバイザ構成テーブル０２００、ＶＭプール情報テーブル０３００を更新する。また、リソース管理サーバ０１００は、ユーザから受け付けた要求に対応できる仮想計算機の当該ユーザへの割当を指示したり、予め要求の多いスペックを有した仮想計算機の配備を指示したりする。
【００２１】
また仮想計算機ＶＭ１：０１３７、仮想計算機ＶＭ２：０１３８は、ハイパバイザＨＶ１：０１３６上で動作する仮想的な計算機である。ハイパバイザＨＶ１：０１３６は、物理計算機０１３０のリソース、例えばＣＰＵ０１３１やメモリ０１３２を各々の仮想計算機に分割して割り当てる。またハイパバイザＨＶ１：０１３６は、各仮想計算機へ割り当てるリソースの量を変更することができる。物理計算機０１４０においても同様である。
物理計算機０１３０、０１４０に接続されているＨＤＤ０１３５、０１４５には、各々ＶＭイメージ０１３９、０１４９が格納されている。ＶＭイメージとは、仮想計算機のオペレーティングシステム、および、オペレーティングシステムで動作するアプリケーションの動作イメージである。仮想計算機は、仮想的なＨＤＤをマウントし仮想的なＨＤＤに格納されているオペレーティングシステムやアプリケーションをロードして実行する。ＶＭイメージはその仮想的なＨＤＤの実体である。ハイパバイザが仮想計算機で使用するＶＭイメージを制御することで、仮想計算機が仮想的なＨＤＤとして処理することができる。実体であるＶＭイメージは、ハイパバイザからみれば実際にＨＤＤに格納されている１つのファイルである。従って、１つの仮想計算機に１つ以上のＶＭイメージが必要となる。例えば、物理計算機０１３０上の仮想計算機ＶＭ１：０１３７は、ＨＤＤ０１３５に格納されている１つのＶＭイメージ０１３９を用いる。
【００２２】
これらのＶＭイメージをハイパバイザが制御する。またハイパバイザは、新たに別の仮想計算機を生成することが可能で、その際ハイパバイザは、既にＨＤＤに格納されている別のＶＭイメージをコピーすることで新たな仮想計算機が用いるＶＭイメージを生成する。新たな仮想計算機の生成指示、ＶＭイメージのコピー指示といった操作をリモート管理サーバ０１００がハイパバイザに対して指示して行う。なお、「仮想計算機の配備」とは、リソース管理サーバ０１００が、物理計算機０１３０の記憶デバイス（ＨＤＤ：０１３５）へ、ＶＭイメージ０１３９をコピーする操作を指す。
【００２３】
図２はハイパバイザ構成テーブル０２００である。ハイパバイザ構成テーブル０２００は、ハイパバイザＨＶ１：０１３６、ハイパバイザＨＶ２：０１４６が制御している仮想計算機ＶＭ１：０１３７、ＶＭ２：０１３８、ＶＭ３：０１４７、ＶＭ４：０１４８の割当状態を記憶している。割当状態は、ハイパバイザ識別子０２０１、ＶＭ識別子０２０２、ＣＰＵ０２０３、メモリ０２０４、ＶＭ状態０２０５、ＶＭイメージ０２０６、利用者０２０６から構成される。また、ハイパバイザ構成テーブル０２００は、１つの仮想計算機に対して１つの行を割り当てる。ハイパバイザ構成テーブル０２００は、各々のハイパバイザ上で稼働する５つの仮想計算機に対する割当状態を記憶している。
【００２４】
まずハイパバイザ構成テーブル０２００の各列について説明する。ハイパバイザ識別子欄０２０１は、各物理計算機０１３０、０１４０上で稼働するハイパバイザＨＶ１：０１３６、ハイパバイザＨＶ２：０１４６等を識別するための識別子を格納する。図１には図示していないが、ハイパバイザ構成テーブル０２００には、行０２１５においてＨＶ３という別の物理計算機のハイパバイザも含まれている。ＶＭ識別子欄０２０２は、当該ハイパバイザ上で制御される仮想計算機を識別するための識別子を格納する。行０２１１には、物理計算機０１３０上のハイパバイザＨＶ１：０１３６が制御する仮想計算機ＶＭ１：０１３７を識別するための識別子「ＶＭ１」が格納されている。
【００２５】
ＣＰＵ欄０２０３は、当該仮想計算機に割り当てられているＣＰＵの周波数を格納する。即ち、本欄０２０３は、当該仮想計算機に割当てられているリソース量の１つを示すものである。例えば行０２１１の場合、仮想計算機ＶＭ１：０１３７に割り当てられている物理計算機０１３０内のＣＰＵ０１３１の周波数が２ＧＨｚであることを示している。本実施例ではＣＰＵ０１３１は総容量８Ｇｈｚの周波数を有しているので、仮想計算機ＶＭ１：０１３７に割り当てられている周波数は全体の４分の１であることを意味している。本実施例では、周波数を示しているが、例えばＣＰＵのコア数であっても良い。
【００２６】
メモリ欄０２０４は、当該仮想計算機に割り当てられているメモリの容量を格納する。言い換えれば、本欄０２０４は、当該仮想計算機に割り当てられているリソースのリソース量の１つを示している。例えば行０２１１の場合、仮想計算機ＶＭ１：０１３７に割当てられている物理計算機０１３０内のメモリ０１３２の容量が２ＧＢであることを示している。本実施例ではメモリ０１３２の総容量が８ＧＢであるので、仮想計算機ＶＭ１：０１３７に割り当てられているメモリの容量が全体の４分の１であることを意味している。
【００２７】
ＶＭ状態欄０２０５は、当該仮想計算機の割当状態を示す識別子を格納する。本実施例では、「割当済」と「配備済」の2種類の割当状態がある。「割当済」とは、既にユーザに対して当該仮想計算機を割り当て済である、という意味である。また「配備済」とは、特定のユーザには割当られていないが、仮想計算機を配備済みである、という意味である。
【００２８】
ＶＭイメージ欄０２０６は、当該仮想計算機が使用するＶＭイメージのタイプを記憶する。本実施例では、「ＡＰサーバ」「ＤＢサーバ」「ＷＥＢサーバ」の３種類のＶＭイメージがある。例えば行０２１１の場合、仮想計算機ＶＭ１：０１３７が使用するＶＭイメージのタイプが「ＡＰサーバ」であることを意味する。また行０２１５の仮想計算機「ＶＭ５」も「ＡＰサーバ」であるが、ＶＭ１とＶＭ５で全く同じＶＭイメージを用いる、という意味ではなく、使用しているＶＭイメージのタイプが各々同じであることを意味しており、各々の仮想計算機が使用するＶＭイメージは各々異なっている。
【００２９】
利用者欄０２０７は、当該仮想計算機を利用する利用者を一意に識別するための識別子、ユーザＩＤを格納する。行０２１１、０２１４、０２１５の各仮想計算機には、それぞれの利用者を識別するユーザＩＤが格納されている。行０２１２、０２１３の各仮想計算機のように、仮想計算機が「配備済」ではあるがまだ利用するユーザを決定していない状態の場合、「―――」を格納する。
【００３０】
図３は、ＶＭプール情報テーブル０３００である。本テーブル０３００は、リソース管理サーバ０１００が管理対象とする全ての物理計算機０１３０、０１４０等において保持するリソースの総容量と空き容量を管理する。ハイパバイザ識別子欄０３０１は、物理計算機上で稼働するハイパバイザを一意に識別するための識別子を格納する。この識別子は、ハイパバイザ構成テーブル０２００のハイパバイザ識別子欄０２０１に格納される識別子と同じ識別子を用いる。リソースプール識別子欄０３０２は、同じ物理計算機上で実装するリソースであることを認識するための識別子である。例えば行０３１１の「ＲＰ１」と行０３１２の「ＲＰ１」は、各々リソース「ＣＰＵ」「メモリ」を有しているが、何れも同一物理計算機に実装されたリソースであり、同じハイパバイザ「ＨＶ１」が制御することを意味する。
【００３１】
リソース種別欄０３０３は、リソース管理サーバ０１００が管理対象とするリソースの種別を示す情報を格納する。本実施例では、「ＣＰＵ」「メモリ」の２つのリソースを例示するが、ネットワークＩ／Ｆである「ＮＩＣ」、ＨＤＤドライブである「ＨＤＤ」などもリソース種別の対象とすることができる。総容量欄０３０４と空き容量欄０３０５とは、対応するリソース種別で示されたリソースの、本来実装されている全ての容量と、仮想計算機に割り当てられていない空きとなっている容量を示す。例えば行０３１１で示す「ＣＰＵ」の総容量「８Ｇｈｚ」は、当該ＣＰＵの全周波数の総容量を示し、空き容量「２Ｇｈｚ」は、当該ＣＰＵの全周波数の総容量のうち仮想計算機に割り当てられていない空き容量を示す。本テーブル０３００は、新たにユーザから仮想計算機の割当を要求された場合、配備済の仮想計算機から検索するだけでなく、本テーブル０３００の空き容量欄０３０５に記載する空き容量から、割当て可能か検索する。
【００３２】
次に、図４を用いて実施例１における要求スペック処理を説明する。図４は、本実施例の要求スペック処理を示すフローチャートである。図１で示したリソース管理プログラム０１００が、図４のフローチャートを実行する。
【００３３】
まずリソース管理プログラム０１００は、要求受付処理０１１１において、ユーザからの要求を受け付ける入力画面を表示し、ユーザからの入力操作を受け付ける（Ｓ０４０１）。入力画面とユーザからの入力操作結果を図６に示す。
【００３４】
図６は、要求受付処理０１１１での入力画面である。タイトル０６００は本画面が「仮想計算機検索」を行うことを明示する。利用者名欄０６１１は、ログインされたユーザの利用者名であるユーザＩＤを表示する。本実施例では図示していないが、リソース管理サーバ０１００はユーザ認証機構を有しており、リソース管理プログラム０１１０は当該ユーザ認証機構で認証されたユーザＩＤを利用者情報として利用する。図中の「Ｕｓｅｒ１」は、ユーザ認証機構で認証されたユーザＩＤである。
【００３５】
要求スペック０６１２は、ユーザが要求する仮想計算機のスペックを指定する欄である。本実施例では、ＶＭイメージ０６１３と、リソース０６１５を要求スペックとして指定する。ＶＭイメージ０６１３は、プルダウンメニュー０６１４で表示される各種のＶＭイメージからユーザの要求するＶＭイメージを指定する。図６では、「ＤＢサーバ」のＶＭイメージが指定されたことを示している。リソース０６１５では、２種類のリソース種別であるＣＰＵ０６１６とメモリ０６１７について、各々の必要な要求量をキーボード等により入力する入力欄を表示する。図６では、各々「６」Ｇｈｚ、「４」ＧＢが指定されたことを示している。
【００３６】
仮想計算機検索のための入力画面０６００は、キャンセルボタン０６０１と検索ボタン０６０２を表示する。キャンセルボタン０６０１は、ユーザが指定すると図４で示したフローチャートの処理を中止する。検索ボタン０６０２は、ユーザが指定した要求スペックに基づいて、割当て可能な仮想計算機の検索を開始する。
【００３７】
説明を図４のフローチャートに戻す。以上の図６の入力画面による要求スペック受付処理（Ｓ０４０１）において、ユーザが必要とする要求スペックを入力し、入力画面０６００検索ボタン０６０２を押下すると、処理は次のステップＳ０４０２へ移行する。ステップＳ０４０２は、ユーザが入力した要求スペックに基づいて検索結果リストを作成する。検索結果リストは、ユーザが必要とする要求スペックを満たす仮想計算機を示すリストである。検索結果リストを作成するステップＳ０４０２の詳細なフローチャートは図５で示す。また作成された検索結果リストは図７で示す。検索結果リストは、ユーザが指定した要求スペックに基づいて検索することで生成される。従って、検索結果によってはユーザの要求スペックを満たす仮想計算機がなかった場合も想定される。このような場合、検索結果リストは空のリストとなる。ステップＳ０４０３は、検索結果リストが空のリストかどうかを判断するステップである。もし検索結果リストが空のリストであった場合、処理はステップＳ０４０４へ移行し、ユーザに対して要求スペックの再入力を依頼するメッセージを出力し、ステップＳ０４０１の要求スペック受付に再度処理を戻す。もしステップＳ０４０３で検索結果リストが空のリストでなければ、ステップＳ０４０５が検索結果リストを表示する。検索結果リストの表示例を図７で示す。
【００３８】
図７は、ユーザの要求スペックに基づいて検索した検索結果リストを出力する検索結果リスト出力画面である。利用者名欄０７１１は要求スペックを指定したユーザＩＤを表示する。表０７１２は、検索結果リストである。図６において、ユーザはＤＢサーバのＶＭイメージを持つＣＰＵ６ＧＨｚ、メモリ４ＧＨｚの仮想計算機を要求スペックとして指定している。表０７１２は、当該要求スペックに基づいて検索した結果を示している。検索した結果、当該要求スペックに当てはまる３つの仮想計算機を特定している。
【００３９】
ＶＭ識別子欄は、要求スペックに当てはまる仮想計算機の識別子を格納する。現状のスペック欄は３つの欄から構成されており、ＶＭイメージ欄０７０３は、当該仮想計算機が保有するＶＭイメージを特定する識別子を格納する。ＣＰＵ欄０７０４は当該仮想計算機に割当可能な周波数を格納する。メモリ欄０７０５は当該仮想計算機に割当可能なメモリ容量を格納する。ＶＭ状態欄０７０６は、検索した仮想計算機の配備状態を示す。図２で示したハイパバイザ構成テーブル０２００のＶＭ状態欄０２０５と対応する。要求スペックを満たす仮想計算機を探索する場合、図２のハイパバイザ構成テーブル０２００のＶＭ状態欄０２０５が「配備済」である仮想計算機から探索する。例えば行０７１３で示す仮想計算機は、ＶＭ識別子「ＶＭ２」の仮想計算機であり、ＶＭ状態が「配備済」であることを示している。これは、図２のハイパバイザ構成テーブル０２００の行０２１２と対応している。
【００４０】
尚、図２の行０２１２で示す「ＶＭ２」の仮想計算機で配備されているＣＰＵのリソース量は「４ＧＨｚ」であり、要求スペック「６ＧＨｚ」と異なっている。しかし、本願は、当該「ＶＭ２」の仮想計算機を検索結果として抽出することができる（図７の行０７１３）。これは、仮想計算機「ＶＭ２」が、現在配備されている現状のスペックに空きリソースを加えることで実現できると判断できるからである。リソース管理プログラム０１１０は、仮想計算機「ＶＭ２」に関連するリソースの空き容量をＶＭプール情報テーブルから参照する。その結果、リソース管理プログラム０１１０は仮想計算機「ＶＭ２」を制御するハイパバイザＨＶ１に割り当てられているＣＰＵリソースには「２ＧＨｚ」分の余力があることが判明する。リソース管理プログラム０１１０は、現在「ＶＭ２」で配備されているＣＰＵ「４ＧＨｚ」に余力分の「２ＧＨｚ」を加えることで要求スペックであるＣＰＵ「６Ｇｈｚ」を実現できると判断する。このように、要求スペックと合致しない配備済仮想計算機であっても、リソースの空き容量を増減するなどの操作を実行すれば合致できる仮想計算機をも抽出するので、検索結果として抽出される仮想計算機の数を増加させることが可能となり、ユーザにとっては実際に割当可能な仮想計算機の選択数を増加させることができる。
【００４１】
検索結果リスト０７１２の変更欄０７０７は、配備済仮想計算機を割り当てる場合に空きリソースの追加・削除等の変更を行う必要があるか否かを表示する。行０７１２に示す「ＶＭ２」の配備済仮想計算機の場合、要求スペックを満たすための空きリソースの追加操作が必要である。このような場合、変更欄０７０７は「要」を格納する。配備済仮想計算機が既に要求スペックと合致している場合、空きリソースの追加・削除操作は不要であるため、変更欄０７０７は「否」を格納する。
【００４２】
選択欄０７０１は、出力された仮想計算機の中からユーザが割り当てる仮想計算機を１つ選択するための選択ボタンである。選択するとチェックマークを付与し、現在ユーザが指定する仮想計算機を示す。選択された状態でユーザが「割当実行」ボタン０７１０を押下すると、リソース管理プログラム０１１０は、選択された仮想計算機を当該ユーザ用に割り当てる処理を行う。
【００４３】
検索結果リスト０７１２の行０７１４は、既に配備済みであるＶＭ３が要求スペックと合致する仮想計算機であることを示す検索結果である。これは、図２のハイパバイザ構成情報テーブル０２００の行０２１３に記載されているＶＭ３である。ＶＭ３は、既に要求スペックと同じＣＰＵの周波数、メモリ量を保有した仮想計算機である。検索結果リストは、要求スペックと合致する配備済の仮想計算機も含まれる。
【００４４】
検索結果リスト０７１２の行０７１５は、未配備ではあるが要求スペックと合致する仮想コンピュータを構築できることを示している。ＶＭ識別子欄０７０２は、仮想計算機がまだ配備されていない状態「（―――）」を格納する。ＶＭイメージ欄０７０３は、まだ当該仮想計算機のＶＭイメージが配備されていないので「未配備」を格納する。ＶＭ状態欄０７０６も同様「未配備」を格納する。変更欄０７０７は、当該未配備の仮想計算機をユーザが選択した場合、リソース管理プログラムは新たに仮想計算機を配備するなどの変更を必要とすることを示す「新規」を格納する。これは、図３のＶＭプール情報テーブルを検索した際に、行０３１５及び０３１６で示すHV3のＣＰＵやメモリの空き容量から要求スペックを満たす仮想計算機を構築できると判断したからである。
【００４５】
仮想計算機検索結果画面０７００は、キャンセルボタン０７０８、戻るボタン０７０９、割当実行ボタン０７１０を表示する。キャンセルボタン０７０８は、仮想計算機の検索を中断するためのボタンであり、ユーザが押下することで検索処理を中断する。戻るボタン０７０９は、検索を再度実行するために図６で示す要求受付処理の入力画面を再表示するためのボタンである。割当実行ボタン０７１０は、ユーザが検索結果リスト０７１２の選択欄０７０１で選択した仮想計算機を実際に割り当てるためのボタンである。図７では、ユーザは検索結果リスト０７１２の行０７１４で示す仮想計算機を選択欄０７０１で指定している。この状態でユーザが割当実行ボタンを押下すると、リソース管理プログラム０１１０は、当該ＶＭ３の仮想計算機を当該ユーザへ割り当てる処理を実行する。
【００４６】
図４の要求スペック処理を示すフローチャートについて引き続き説明する。ステップＳ０４０５で図７で示す検索結果リスト０７１２を表示した後、ステップＳ０４０６において選択受付を行う。ここでは、ユーザが検索結果リスト０７１２の選択欄０７０１の１つを選択し、割当実行ボタン０７１０、戻るボタン０７０９、キャンセルボタン０７０８のいずれか一つのボタンを押下する入力処理を実行する。
【００４７】
ステップＳ０４０７において、ユーザにより押下されたボタンが割当実行ボタン０７１０であったか否かを判定する。ユーザにより押下されたボタンが割当実行ボタン０７１０であった場合、ステップＳ０４０９を実行する。押下されたボタンがそれ以外の場合は、ステップＳ０４０８を実行する。ステップＳ０４０８は、押下されたボタンが戻るボタン０７０９であったか否かを判定する。ユーザにより押下されたボタンが戻るボタン０７０９であった場合、処理をステップＳ０４０１へ戻り、再度要求スペックの受付処理を実行する。ユーザにより押下されたボタンが戻るボタン０７０９でなかった場合、そのボタンはキャンセルボタン０７０８であると判断し、検索処理を中断する。中断する前に割当結果の記録処理（Ｓ０４１２）や、既に決定されている配備用スペックの見直し処理（Ｓ０４１３）を実行してもよい。
【００４８】
ユーザの押下したボタンが割当実行ボタン０７１０であった場合、ステップＳ０４０９を実行する。ステップＳ０４０９は、ユーザが検索結果リスト０７１２の選択欄０７０１で選択した一つの仮想計算機を特定し、当該仮想計算機を割り当てる際に現在のスペックを変更する必要があるかを判断する。具体的には、検索結果リスト０７１２の変更欄０７０７が「要」か「新規」かを特定する。検索結果リスト０７１２の変更欄０７０７が「要」か「新規」であった場合、ステップＳ０４１０を実行する。もし検索結果リスト０７１２の変更欄０７０７が「否」であった場合は、ステップＳ０４１１を実行する。
ステップＳ０４１０は、ユーザが指定した要求スペックとなるよう、ユーザが選択した仮想計算機のスペックを変更する。図７では、ユーザはＶＭ３の仮想計算機を選択しているので、リソース管理プログラム０１１０はステップＳ０４１０を実行しない。
【００４９】
もしユーザが、図７においてＶＭ２の仮想計算機を選択（行０７１３）し、割当実行ボタン０７１０を押下した場合、ステップＳ０４１０は検索結果リスト０７１２の行０７１３で示す現在のスペック、即ちＶＭイメージ０７０３とＣＰＵ欄０７０４とメモリ欄０７０４と、ユーザが入力した要求スペックとの差異を特定する。
【００５０】
具体的には、現状のスペックのうちＣＰＵの周波数が２ＧＨｚ不足していることを特定する。そこでステップＳ０４１０は、図２のハイパバイザ構成情報テーブルからＶＭ２を制御するハイパバイザがＨＶ１であることを特定し（図２の行０２１２）、図３のＶＭプール情報テーブルを参照して、ハイパバイザ識別子欄がＨＶ１で、リソース種別欄がＣＰＵの空き容量欄を参照する（図の行０３１１）。ステップＳ０４１０は、ＣＰＵの空き容量が２ＧＨｚであることを空き容量欄０３０５で特定できるので、当該空き容量である２ＧＨｚの全てをＶＭ２の仮想計算機に割り当てる指示を、当該ＶＭ２を制御するハイパバイザＨＶ１に対して指示する。ハイパバイザＨＶ１は、当該割当指示を受信し、ＶＭ２に対するＣＰＵ周波数の割当を追加する。
【００５１】
もしユーザが、図７の検索結果リスト０７１２：行０７１５の「未割当て」の仮想計算機を選択した場合、同様に要求スペックとの差異を特定して、要求スペックを満たすようにリソースの割当を指示する。この場合、未配備を示すハイパバイザはＨＶ３であるので、Ｓ０４１０は当該ＨＶ３に対してリソースの割当追加・変更・削除を指示する。また本ケースではＶＭイメージが未配備であるため、ステップＳ０４１０は他の仮想計算機が保持する「ＤＢサーバ」のＶＭイメージをコピーし、割当実行対象の仮想計算機で利用できるよう、当該ＨＶ３に対して指示する。
【００５２】
ＶＭイメージのコピー処理は、ステップＳ０４１０自身が実行してもよい。当該ＨＶ３が制御する仮想計算機に指示されたＶＭイメージを有している場合は、当該ＨＶ３自身がコピー処理を行うだけで済む。しかし当該ハイパバイザが必要とするＶＭイメージを有さない場合は、ステップＳ０４１０が他のハイパバイザが保有するＶＭイメージを流用する処理を実施する方が効率的である。ＶＭイメージのコピー処理は、ネットワークを介したファイル転送処理で実現可能である。要求されたＶＭイメージを保持するハイパバイザが別の物理計算機で稼働している場合は、ネットワークを介して当該別の物理計算機で稼働するハイパバイザからＶＭイメージの格納先を取得し、格納先のＶＭイメージを一旦リソース管理サーバが読み出してから、ユーザに対して割り当てた仮想計算機を稼働する物理計算機へ転送することは可能である。ＶＭイメージのコピー処理は、本願の趣旨を逸脱しない範囲でさらに拡張することは可能である。
【００５３】
次にステップ０４１１は、選択された仮想計算機を当該ユーザに割り当てる処理を行う。具体的には、図２で示すハイパバイザ構成情報テーブルに、当該ＶＭ３に割り当てられたリソース量や利用者識別子を登録する（図示はしていない）また図３で示すＶＭプール情報テーブルの空き容量を更新する（図示はしていない）。
【００５４】
ステップＳ０４１２は、ステップＳ０４１１でユーザに割り当てた結果を来歴情報テーブル０８００へ記録する。来歴情報テーブル０８００を図８で示す。
【００５５】
図８の来歴情報テーブル０８００は、ステップＳ０４１１でユーザに割り当てた結果を来歴情報として記録するテーブルである。来歴情報テーブル０８００は、利用者欄０８０１、要求スペックとしてＶＭイメージ欄０８０２、ＣＰＵ欄０８０３、メモリ欄０８０４、割当状況として割当元欄０８０５、変更欄０８０６、要求日時欄０８０７から構成する。行０８１１においては、図６、図７で例示したユーザの要求スペックに基づいて割り当てた結果を示している。利用者欄０８０１は、要求スペックを入力したユーザを特定する識別子、ユーザＩＤを格納する。要求スペックのＶＭイメージ欄０８０２は、当該ユーザが指定したＶＭイメージのタイプを格納する。ＣＰＵ欄０８０３は、当該ユーザが指定したＣＰＵの周波数を格納する。メモリ欄０８０４は、当該ユーザが指定したメモリ容量を格納する。割当状況の割当元欄は、当該リソース管理サーバ０１１１がユーザに対して割り当てた仮想計算機の、割当元の状態を格納する。「配備済」とは、ユーザに対して割り当てた仮想計算機は、要求を受け付ける前は「配備済」の仮想計算機であることを示す。「空きリソース」は、ユーザに対して割り当てた仮想計算機は、要求を受け付ける前には「未割当」の状態であったことを示す。即ち、図７の検索結果リスト０７１２でユーザが未配備の仮想計算機を選択した場合（行０７１５）に、当該状態を記録する。変更欄０８０６は、ユーザへ仮想計算機を割り当てる際に要求スペックを満たすようリソースの追加・変更・削除、ＶＭイメージのコピー処理等を実行したかどうかを格納する。「有」の場合、リソース管理プログラム０１１０が「配備済」の仮想計算機から要求スペックにあうように変更したことを示す。「無」の場合、リソース管理プログラム０１１０が「配備済」の仮想計算機が要求スペックと合致しており、変更する必要がなかったことを示す。「新規」の場合、リソース管理プログラム０１１０が「空リソース」から新規に仮想計算機を割り当てたことを示す。行０８１１の場合は変更する必要がなかったので「無」を示す。要求日時欄０８０７は、ユーザが要求スペックを入力した日時を格納する。具体的には、ユーザが要求スペックを入力し、図７の検索結果リスト出力画面で割当実行ボタン０７１０を押下した時刻である。
【００５６】
このように、実際にユーザに対して割当処理を行った結果を来歴情報として記録することは重要である。この来歴情報テーブル０８００に記録されたデータに基づいて、リソース管理プログラム０１１０は、今後配備すべき仮想計算機のスペックを決定し、ユーザの要求に沿ったスペックを事前に配置することできる。
【００５７】
図１０は、来歴情報テーブル０８００から配備用仮想計算機を配備する仮想計算機配備処理のフローチャートである。本処理は、来歴情報テーブル０８００に記憶されている来歴情報に基づいてまず利用傾向を分析する。本処理は、来歴情報テーブル０８００から各ユーザ毎に要求スペックの利用頻度を纏め、最も利用頻度の高い要求スペックを配備用仮想計算機のスペックとする。
【００５８】
ステップＳ１００１は、来歴情報テーブル０８００からまず利用度情報を作成する。利用度情報とは、リソース管理プログラムがユーザに大して割り当てた要求スペックの頻度と、頻度から算出された利用度から構成される。利用度情報の詳細を、図９の利用度情報テーブル０９００に示す。またステップＳ１００１の詳細処理を、図１１の利用度情報作成処理フローチャートで示す。
【００５９】
ステップＳ１００２は、ステップＳ１００１で作成した利用度情報に基づいて各要求スペック毎に利用度を算出する。またステップＳ１００２は、算出した利用度を利用度情報テーブル０９００に格納する。ステップＳ１００２の詳細処理を、図１２の利用度算出処理フローチャートで示す。
【００６０】
ステップＳ１００３は、ステップＳ１００２で算出された利用度に基づいて、配備用スペックを決定する。具体的には、ステップＳ１００３は、最も利用度の高い要求スペックを、当該ユーザへの配備用スペックとして決定する。ステップＳ１００３の詳細処理を、図１３の配備用スペック決定処理フローチャートで示す。
ステップＳ１００４は、ステップＳ１００３で決定された配備用スペックに基づいて、配備用仮想計算機を配備する。ステップＳ１００４の詳細処理を、図１４の配備用仮想計算機の配備処理フローチャートで示す。
【００６１】
以上の仮想計算機配備処理を実施することで、来歴情報に基づいた配備用仮想計算機をユーザが要望する前に事前に配備することができる。また利用頻度の多い要求スペックを配備用スペックとしているので、本願は、ユーザが要求するスペックと配備用仮想計算機のスペックとの合致度を向上することができ、また要求受付後に配備用仮想計算機のスペックを変更する頻度を抑えることができる。
【００６２】
図９は、ステップＳ１００１で作成する利用度情報を格納する利用度情報テーブル０９００である。利用度情報テーブル０９００は、配備用仮想計算機の配備用スペックを決定するために用いられる。利用度情報テーブル０９００は、まず利用者毎にどのような要求スペックを利用したのかを示す情報を保持する。利用者欄０９０１はユーザＩＤを格納する。要求スペックであるＶＭイメージ欄０９０２、ＣＰＵ欄０９０３、メモリ欄０９０４に格納する各々の情報は、当該ユーザＩＤで示した利用者がどのような要求スペックを過去に要望したのかを示す情報である。例えば行０９１１は、「Ｕｓｅｒ２」が「Ｗｅｂサーバ」のＶＭイメージであり、ＣＰＵの周波数が「２ＧＨｚ」であり、かつメモリ容量が「１ＧＢ」である仮想計算機を要望し、当該要求スペックを有する仮想計算機が当該ユーザに割り当てられたことを示す。
【００６３】
割当回数欄は、要求スペックで記載された仮想計算機を割り当てた頻度を格納する。割当回数欄は、詳細には次の３つの欄から構成される。配備済変更無欄０９０５は、仮想計算機を割り当てた際に、配備済仮想計算機からスペックの変更無しに割り当てた回数を格納する。変更済変更有欄０９０６は、配備済仮想計算機からスペックを変更した上で割り当てた回数を格納する。新規欄０９０７は、全く配備されていない空きリソースから仮想計算機を割り当てた回数を格納する。
【００６４】
配備欄は、利用度欄０９０８とスペック欄０９０９から構成される。利用度欄０９０８は、割当回数欄に格納された各回数に基づいて算出された利用度を格納する。スペック欄０９０９は、算出された利用度のうち最も利用度の高い要求スペックを配備用スペックとして決定したことを示す識別子を格納する。配備用スペックが同じ利用者に対して複数決定している。例えば行０９１２から行０９１４で示すように、「Ｕｓｅｒ２」は３つの要求スペックを配備用スペックとして決定されている。これは仮想計算機配備処理がＶＭイメージのタイプ毎に配備用スペックを決定しているからである。ユーザはＶＭイメージのタイプ毎に要求スペックを変えて仮想計算機を利用する。仮想計算機配備処理は、配備用スペックをＶＭイメージのタイプ毎に決定しておくことで、ユーザの要望に応じた配備用スペックを事前に配備することが可能となる。
【００６５】
図１１は、利用度情報作成処理のフローチャートである。ステップＳ１１０１は、来歴情報テーブル０８００に格納された来歴情報を、利用者欄０８０１、ＶＭイメージ欄０８０２、ＣＰＵ欄０８０３、メモリ欄０８０４の順序で昇順のソートを実施する。ステップＳ１１０２は、来歴情報テーブル０８００に格納された個々の来歴情報を全て参照するまで、ステップＳ１１０７までの処理を繰返し実施する。ステップＳ１１０３は、参照する来歴情報を１つ選択し、利用度情報として抽出する。具体的にはソートされた来歴情報テーブル０８００に格納された来歴情報の１つを選択し、来歴情報テーブル０８００の1行分のデータを利用度情報としてメモリに格納する。
【００６６】
ステップＳ１１０４は、前に格納した利用度情報と今回格納した利用度情報とを比較する。比較する情報は、来歴情報テーブル０８００の利用者欄０８０１、ＶＭイメージ欄０８０２、ＣＰＵ欄０８０３、メモリ欄０８０４の各々格納されていた４つの情報で、利用度情報としてメモリに格納された情報である。ステップＳ１１０４は、前に格納された４つの情報と、今回格納された4つの情報を各々比較し、全て同じ情報か否かを判断する。もし４つの情報が共に同じ情報であった場合、ステップＳ１１０５を実施し、１つでも情報が異なっていた場合は、ステップＳ１１０６を実行する。また、来歴情報テーブル０８００の最初の1行を利用度情報としてメモリに格納した場合、Ｓ１１０４は比較対象である前の利用度情報を保持せず比較できない。この場合、ステップＳ１１０６を実施する。
ステップＳ１１０６は、今回格納した４つの利用度情報を、利用度情報テーブル０９００に新たなデータとして格納する。具体的には利用度情報テーブル０９００の利用者欄０９０１、ＶＭイメージ欄０９０２、ＣＰＵ欄０９０３、メモリ欄０９０４に新規データとして1行追加する。
【００６７】
ステップＳ１１０５は、前回格納した４つの利用度情報と今回格納した4つの利用度情報とが同一であるので、当該4つの利用度情報は既に利用度情報テーブル０９００に格納済みである。従って、該当する行の割当回数欄に頻度を＋１増加する。割当回数欄のどの欄の頻度を増加させるかは、対応する来歴情報テーブル０８００の割当状況欄に格納された情報を参照して決定する。例えば割当状況欄の割当元欄０８０５が「配備済」で、変更欄０８０６が「無」の場合、利用度情報テーブル０９００の割当回数欄である「配備済変更無欄」の頻度を増加する。このように、来歴情報テーブル０８００に格納された来歴情報に基づいて、割当回数を算出し、ユーザの要求スペック毎に利用頻度を分析する。
【００６８】
ステップＳ１１０７は、繰返しステップの先頭であるＳ１１０３に対応する終端ステップである。来歴情報テーブル０８００に格納された全ての来歴情報を参照するまで、繰返し上述ステップを実行する。ステップＳ１１０８は、ステップＳ１１０１が来歴情報テーブル０８００の来歴情報をユーザ・ＶＭイメージ等でソートしたので、元の来歴情報の順序を元に戻す。具体的には要求日時を対象に昇順でソートすることで元に戻すことができる。
【００６９】
以上の処理を実行することで、リソース管理プログラム０１１０は利用度情報テーブル０９００の欄０９０１から欄０９０９までの情報を格納する。
【００７０】
図１２は、利用度算出処理のフローチャートであり、図１０の仮想計算機配備処理フローチャートのステップＳ１００２を詳細に示したフローチャートである。ステップＳ１２０１は、利用度情報テーブル０９００に格納された全ての利用度情報を参照するまで、ステップＳ１２０３までのステップを繰り返し実施する。ステップＳ１２０２は、利用度情報テーブル０９００に格納された一つの利用度情報を選択し、利用度情報テーブル０９００の割当回数欄に記載する３種類の頻度から利用度を算出する。仮想計算機配備処理では、利用度の高い要求スペックを配備用スペックとして決定するので、３種類の頻度に各々重み付けをして利用度を算出する。具体的には、配備済変更無欄０９０５の頻度を３倍、配備済変更有欄０９０６の頻度を２倍、新規欄０９０７の頻度を１倍とし、その総和を利用度として算出する。重み付けの割合は、全体の利用頻度に応じて変更できるようにすれば、よりユーザの要求するスペックに合致した仮想計算機を事前に配備することができる。算出した利用度を利用度情報テーブル０９００の利用度欄０９０８に格納する。ステップＳ１２０３は、Ｓ１２０１の繰返し処理の終端ステップである。以上の処理を実行することで、リソース管理プログラム０１１０は利用度情報テーブル０９００の欄０９０８の情報を全ての利用度情報に対して格納する。
【００７１】
図１３は、配備用スペック決定処理のフローチャートであり、図１０の仮想計算機は美処理フローチャートのステップＳ１００３を詳細に示したフローチャートである。ステップＳ１３０１は、利用度情報テーブル０９００のスペック欄０９０９に格納されている決定済みのスペックを一旦クリアする。具体的には、全ての利用度情報に対するスペック欄０９０９を空白とする。ステップＳ１３０２は、利用度情報テーブル０９００に格納された全ての利用度情報を、利用者欄０９０１、ＶＭイメージ欄０９０２、ＣＰＵ欄０９０３、メモリ欄０９０４、利用度欄０９０８の順に昇順でソートする。ステップＳ１３０３は、利用度情報テーブル０９００に格納された全ての利用度情報を参照するまで、以下Ｓ１３１０までのステップを繰り返す。ステップＳ１３０４は、利用度情報テーブル０９００に格納された利用度情報の１つを抽出する。具体的には、利用者欄０９０１、ＶＭイメージ欄０９０２に格納された２つの情報をメモリに格納する。
【００７２】
ステップＳ１３０５は、前にメモリに格納した２つの情報と、今回メモリに格納した２つの情報とをそれぞれ比較する。利用者とＶＭイメージの利用度情報が双方で同一であった場合は、双方の要求スペック、即ちＣＰＵ欄０９０３とメモリ欄０９０４に格納された要求スペックが異なる場合である。そのため双方の利用度を比較して利用度に応じて配備スペックを決定するステップＳ１３０７以降のステップを実行する。もし利用者とＶＭイメージの利用度情報が異なるのであれば、ステップＳ１３０６を実行する。ステップＳ１３０６は、今回抽出した利用度情報を配備スペックとして決定する。具体的には、利用度情報テーブル０９００のスペック欄０９０９に決定したことを示す識別子を格納する。
【００７３】
ステップＳ１３０７は、前回メモリに格納した利用者とＶＭイメージの２つの情報と、今回メモリに格納した２つの情報とが、相互で一致した場合に実行する。従って、前回の利用度情報と今回の利用度情報とは、ＣＰＵとメモリのリソース量が異なっており、また各々の利用頻度も異なっている。そのため利用度に相違が生じている。ステップＳ１３０７は、前回メモリに格納した２つの情報に対応する利用度と、今回メモリに格納した２つの情報に対応する利用度とを比較する。もし今回メモリに格納した２つの情報に対応する利用度の方が、前回メモリに格納した２つの情報に対応する利用度よりも高い場合は、ステップＳ１３０８を実行する。また今回の方の利用度が低い場合は、既に前回の方のスペックを配備スペックとして決定しているので、配備スペックの決定処理を行う必要がなく、ステップＳ１３１０へ進む。
【００７４】
ステップＳ１３０８は、今回メモリに格納した２つの情報に対応する利用度が高いので、当該２つの情報に対応する要求スペックを配備スペックとして決定する。具体的には、利用度情報テーブル０９００のスペック欄０９０９に、配備スペックとして決定したことを示す識別子を格納する。またステップＳ１３０９は、前回メモリに格納した２つの情報に対応する要求スペックを配備スペックではないものとして決定する。具体的には、利用度情報テーブル０９００のスペック欄０９０９に、空白を格納する。ステップＳ１３１０は、ステップＳ１３０３が処理する繰返し処理の終端ステップである。
【００７５】
このように利用度情報テーブル０９００に格納された利用度情報を順次参照して配備用スペックを決定することにより、利用度の最も高い要求スペックを配備用スペックとして決定することができる。
【００７６】
図１４は、配備用仮想計算機の配備処理を示すフローチャートである。本フローチャートは、図１０の仮想計算機配備処理のステップＳ１００４を詳細に示したフローチャートである。図１３の配備用スペック決定処理を実施することで、各要求スペック毎に配備用スペックが決定される。本フローチャートは、決定した配備用スペックを用いて事前に配備用仮想計算機を配備する処理を示す。
【００７７】
ステップＳ１４０１は、利用度情報テーブル０９００に格納されている利用度情報を利用度欄０９０８に格納されている利用度に基づいて降順にソートする。これは、利用度の最も高い要求スペックの順に配備用仮想計算機を配備することを目的としている。配備用仮想計算機は空きリソースから配備するため、配備可能な数は有限である。言い換えれば、利用度情報テーブル０９００のスペック欄０９０９で配備用スペックとして決定された利用度情報に基づく配備用仮想計算機を、必ずしも全て配備することが可能とは限らない。従って、利用度の最も高い利用度情報から順に、配備用仮想計算機を配備する必要がある。
【００７８】
ステップＳ１４０２は、利用度情報テーブル０９００に格納された全ての利用度情報を参照するまで、以下ステップＳ１４１０までの処理を繰り返す。ステップＳ１４０３は、利用度情報テーブル０９００に格納された利用度情報の一つを抽出する。ステップＳ１４０４は、抽出した利用度情報のスペック欄０９０９に配備用スペックとして決定したことを示す識別子が格納されているかを判断する。識別子が格納されていなければ、当該利用度情報に基づく仮想計算機の配備は不要であるため、ステップＳ１４１０へ進む。もし識別子が格納されていればステップＳ１４０５へ進む。
【００７９】
ステップＳ１４０５は、ＶＭプール情報テーブル０３００に格納されている全てのリソースプール情報を参照するまで、以下ステップＳ１４０９までの処理を繰返し実施する。ステップＳ１４０６は、ＶＭプール情報テーブル０３００に格納されているリソースプール情報の１つを選択する。ステップＳ１４０７は、選択したリソースプール情報を用いて、ステップＳ１４０３で抽出した配備用スペックの仮想計算機が配備可能かどうかを判断する。ステップＳ１４０７は、選択したリソースプール情報の空き容量欄０３０５を参照し、空き容量が配備用スペックで必要とするリソース量より多いことを確認して配備用スペックの仮想計算機が配備可能かどうかを決定する。空き容量が必要とするリソース量より多い場合は、ステップＳ１４０８を実施し、少ない場合はステップＳ１４０９へ進む。ステップＳ１４０８は、当該必要とするリソース量で配備用仮想計算機を配備する。
【００８０】
ステップＳ１４０９は、ステップＳ１４０５で開始した繰返し処理の終端ステップである。またステップＳ１４１０は、ステップＳ１４０２で開始した繰返し処理の終端ステップである。
【００８１】
これにより、配備用スペックとその利用度に応じて、事前に配備用仮想計算機を配備することができるので、よりユーザ要望の多い仮想計算機を事前に配備することができる。また図１０で示した仮想計算機配備処理は、定期的に実行することで、配備用仮想計算機を事前配布することができる。また、例えばステップＳ１００１からステップＳ１００３までの配備用スペックを決定する処理とステップＳ１００４の配備用仮想計算機を配備する処理とを別々のタイミングで実施してもよい。
【００８２】
例えば、図４で示した要求スペック処理で、ユーザ要求に基づく仮想計算機を割り当て（ステップＳ０４１１）、割当結果を来歴情報テーブル０８００へ格納（ステップＳ０４１２）した後に、配備用スペックを見直すことを目的としてステップＳ１００１からステップＳ１００３までの配備用スペックの決定処理を実行してもよい。また、ユーザに割当てた仮想計算機と同じスペックの別の仮想計算機を配備用仮想計算機として空きリソースから配備することも可能である。配備用仮想計算の配備処理は、このようにユーザの要求に合致する仮想計算機を事前に配備することを目的としているので、配備用スペックに基づいて配備用仮想計算機を配備したり、要求されて割当てたスペックに基づいて配備用仮想計算機を配備しても良い。
【００８３】
以上実施例１では、ユーザの要求スペックを受付け、該当する配備済仮想計算機の検索処理、また割り当てた仮想計算機の来歴情報に基づいて配備用スペックを決定し、事前に仮想計算機を配備する処理を説明した。検索する場合においても、要求スペックと同じスペックを有する仮想計算機だけでなく、現在のスペックを変更することで要求スペックを満たす仮想計算機も検索結果として抽出できる。もし要求スペックと合致する仮想計算機が存在しなくとも、ユーザは現在のスペックを変更することで対応できる仮想計算機を選択対象とすることができるので、ユーザはより多くの仮想計算機から選択することが可能となる。また来歴情報を用いることで、事前に配備する仮想計算機のスペックをユーザ要求の多いスペックとすることができるので、より選択可能な仮想計算機の数を増やすことができる。
【実施例２】
【００８４】
次に実施例２について説明する。実施例１では、来歴情報テーブル０８００から利用度情報テーブル０９００を作成し、その利用頻度を分析して配備用スペックを決定した。これは、ユーザが要求スペックを満たす仮想計算機を検索・選択した直後から、割当てられた仮想計算機の利用を開始することを想定していた。
【００８５】
実施例２では、当該ユーザに仮想計算機を割当てた時点から利用を開始する時点までの間に、タイムラグ（時間的な差異）がある場合を想定する。あるユーザは、予め要求スペックを満たす仮想計算機を確保し、後に確保された仮想計算機の利用を開始する場合も存在する。特に、複数のユーザが一つの物理計算機を共有する場合、他のユーザに先駆けてユーザが予め検索して仮想計算機を確保して共有されたリソースを事前に確保することで、当該ユーザは確実に仮想計算機を利用できる。けれども、本当に仮想計算機を即時に利用したいユーザにとっては、自身に割当てられるべき仮想計算機の数が減少してしまうので、確実に仮想計算機を確保して実行することが困難となる。
【００８６】
そこで、実施例２は、ユーザが割当てた仮想計算機の利用を開始した日時を来歴情報として記録し、割当てた日時と利用開始日時との差分から、ユーザが当該仮想計算機を即時に利用したかどうかを分析し、即時度を算出する。差分が短いほど即時性が高いので、数値の高い即時度を設定するようにし、また差分が長いほど即時性が低いので、低い値の即時度を設定するようにする。このように即時度を算出することで、即時性の高いユーザが要求するスペックに合致した配備用仮想計算機を先に配備するように制御する。
【００８７】
また実施例２では、ユーザに割当てた仮想計算機が物理計算機のリソースをどの程度占有しているかを示す占有度を算出する。あるユーザの要求するリソース量が他に比べて多い場合、リソース管理プログラム０１１０は一回に多くのリソース量を確保しなればならない。物理計算機に実装するリソース量には限りがあるので、なるべく占有度の高い仮想計算機を占有度の低い仮想計算機よりも優先して配備する必要がある。
【００８８】
実施例２は、即時度と占有度の２つについてその具体的な実施方法を説明する。この２つは各々独立した因子であるので、必ず２つの因子を用いないと配備用スペックを決定できない、というものではない。各々別々に実装してもよい。
【００８９】
図１５は、実施例２における来歴情報テーブル１５００を示す。来歴情報テーブル１５００は、実施例１における図８の来歴情報テーブル０８００とほぼ同じ構造を有する。図１５は、図８と同じ欄に対して、図８で示した項番と同じ項番を用いる。また図８で示した項番と同じ項番を有する欄は実施例１と同じ内容であるため、実施例２は当該の説明を割愛し、異なる部分について以下説明する。
【００９０】
実施例１の図８と異なる欄は、割当状況欄の仮想計算機欄１５０１、占有率欄１５０２と開始日時欄１５０３の３つである。仮想計算機欄１５０１は、当該ユーザが選択して割当てられた仮想計算機の識別子を格納する。占有率欄１５０２は、要求スペックで示されるリソース量が全体の総容量に対してどの程度の割合を占めているかを百分率で示したものである。
【００９１】
例えば1行目の来歴情報の場合、ＣＰＵ欄０８０３とメモリ欄０８０４は、各々２ＧＨｚと２ＧＢである。これは、仮想計算機欄１５０１で示される「ＶＭ１」に割当てられているリソースである。リソース管理プログラム０１１０は、図２のハイパバイザ構成情報テーブル０２００を参照して「ＶＭ１」に割当られているハイパバイザが「ＨＶ１」であることを特定し、図３で示すＶＭプール情報テーブル０３００を参照して「ＨＶ１」のＣＰＵとメモリの各々の総容量を特定する。リソース管理プログラム０１１０は、各々の総容量と「ＶＭ１」に割当ら得たリソース量とから占有率を算出することができる。
【００９２】
実施例２では、各々のリソース毎に占有率を算出し、最も占有率の高い値を当該仮想計算機の占有率として設定する。例えば1行目の来歴情報の場合、仮想計算機「ＶＭ１」のＣＰＵは２ＧＨｚを占有している。ＶＭプール情報テーブル０３００では「ＨＶ１」に対するＣＰＵの総容量は８ＧＨｚであるので、ＣＰＵの占有率は２５％となる。仮想計算機「ＶＭ１」のメモリ容量は２ＧＢであるのに対し、「ＨＶ１」のメモリ総容量が８ＧＢであるので、メモリの占有率は２５％となる。ＣＰＵ、メモリの占有率は、共に２５％であるので、当該仮想計算機の占有率は２５％となる。仮にＣＰＵの占有率が５０％でメモリの占有率が２５％であった場合、値の大きい占有率を当該仮想計算機の占有率として決定する。この場合、５０％となる。占有率の高い仮想計算機を配備・割当てる方が、低い占有率の仮想計算機を配備・割当てるよりも困難である。そのため、実施例２は、占有率をなるべく高い値で設定することにより、その困難性を回避しやすくなることを狙いとしている。
【００９３】
またリソースは各々独立であるから、その占有率も各々分けて考え、２つの占有度を算出・評価することも考えられる。また各々の占有率に対して重み付けをして平均値を算出する加重平均値を用いてもよい。リソース毎にリソース取得の困難度が変わる。加重平均値により、リソース取得の困難なものをより加重させることで、占有率を高く設定することができる。
【００９４】
リソース管理プログラム０１１０は、仮想計算機欄１５０１と占有率欄１５０２に格納する情報を、他の要求スペックや割当状況、要求日時を格納するのと同じタイミングで算出して格納する。
【００９５】
開始日時欄１５０３は、ユーザが割当てられた仮想計算機を実際に起動して開始した時刻を格納する。ユーザに割当てられた仮想計算機は、対応するハイパバイザが制御する。例えば図１５の1行目に記載する「ＶＭ１」の仮想計算機を、「ＨＶ１」のハイパバイザが制御している。「ＨＶ１」のハイパバイザはユーザ要求に基づいて「ＶＭ１」の実行開始処理を行う。リソース管理プログラム０１１０は、当該ハイパバイザ「ＨＶ１」とネットワークを介して「ＶＭ１」が開始されたかどうかを問い合わせることで、開始日時を特定すればよい。また、ハイパバイザ「ＨＶ１」が仮想計算機の実行開始をトリガーとしてリソース管理プログラムに「ＶＭ１」の実行開始を連絡してもよい。リソース管理プログラム０１１０は、一度来歴情報テーブル１５００に来歴情報を格納した後、対応するハイパバイザに対するモニタリングを開始し、開始日時を特定できた時点で、該当する開始日時欄１５０３に開始日時を格納する。また別の方法として、ハイパバイザが仮想計算機の実行開始処理をログとして保存する機能を実装させ、リソース管理プログラム０１１０が当該ログの更新を監視しても良い。このようにユーザが割当てられた仮想計算機の利用を開始する日時を特定し、即時度を評価できるようにする。
【００９６】
図１６は、実施例２における利用度情報テーブル１６００を示す。図１６は、実施例１における図９の利用度情報テーブル０９００とほぼ同じ構造を有する。図１６は、図９と同じ欄に対して、図９で示した項番と同じ項番を用いる。また図９で示した項番と同じ項番を有する欄は実施例１と同じ内容であるため、実施例２は当該の説明を割愛し、異なる部分について以下説明する。図９と異なる欄は、占有度欄１６０１と即時度欄１６０２の２つである。各々、利用度情報毎に「高」「中」「低」の３レベルのうちの１つを格納する。具体的なレベルの決定方法は、図１７以降のフローチャートで説明する。
【００９７】
図１７は、実施例２における仮想計算機配備処理のフローチャートである。図１７は基本的に図１０のフローチャートと同じステップを有しており、図１７は同一処理を行うステップに対して図１０で示した項番と同じ項番を用いる。
【００９８】
ステップＳ１００１からステップＳ１００３までの処理は実施例１と同じである。実施例２は、新たにステップＳ１７０１を加えて、算出した占有度と即時度に基づいて配備用仮想計算機を配備するステップＳ１７０２からなる。ステップＳ１７０１は、利用度情報テーブル１６００の利用度情報から占有度と即時度を算出するステップである。詳細を図１８Ａと図１８Ｂに示す。またステップＳ１７０２は、ステップＳ１７０１により算出した占有度と即時度に基づいて配備用仮想計算機を配備する。詳細を図１９に示す。
【００９９】
図１８Ａと図１８Ｂは、実施例２の利用度情報作成処理のフローチャートである。利用度情報作成処理は、図１７のステップＳ１７０１を詳細に示したフローチャートである。従って、当該処理は、利用度情報テーブル１６００の利用者欄０９０１から利用度欄０９０８とスペック欄０９０９までの利用度情報が既に格納済みであることを前提とする。
【０１００】
ステップＳ１８０１は、利用度情報テーブル１６００の利用度情報を、利用者欄０９０１、ＶＭイメージ欄０９０２、ＣＰＵ欄０９０３、メモリ欄０９０４の順に昇順でソートする。ステップＳ１８０２は、来歴情報テーブル１５００の来歴情報を、利用者欄０８０１、ＶＭイメージ欄０８０２、ＣＰＵ欄０８０３、メモリ欄０８０４の順に昇順でソートする。ステップＳ１８０３は、利用度情報テーブル１６００に格納された全ての利用度情報を参照するまで、以下、図１８Ｂのステップ１８２４までの処理を繰り返す。
【０１０１】
ステップＳ１８０４は、利用度情報テーブル１６００から１つの利用度情報を抽出する。ステップＳ１８０５は、頻度変数（Ｎ）、時間差分の総和変数（Ｓｓ）、占有率の総和変数（Ｓｄ）を０としてクリアする。ステップＳ１８０６は、来歴情報テーブル１５００に格納された全ての来歴情報を参照するまで、以下ステップ１８１２までの処理を繰り返す。
【０１０２】
ステップＳ１８０７は、来歴情報テーブル１５００の来歴情報を１つ抽出する。ステップＳ１８０８は、抽出した来歴情報がステップ１８０４で抽出した利用度情報と同じ要求スペックを有したものであるかを判定する。来歴情報が利用度情報と同じ要求スペックを有したものであった場合、ステップＳ１８０９を実行する。来歴情報が利用度情報と異なる要求スペックを有したものであった場合、ステップＳ１８０６からステップＳ１８１１までの繰返し処理を中断し、ステップＳ１８１８を実行する。
【０１０３】
ステップＳ１８０９は、利用度情報と同じ要求スペックを有する来歴情報に記載されている占有率を占有率の総和変数（Ｓｄ）に加算する。ステップＳ１８１０は、来歴情報に記載されている開始日時と要求日時とを各々秒換算し、相互の差分を算出して、差分を時間差分の総和変数（Ｓｓ）に加算する。ステップＳ１８１１は、頻度（Ｎ）を１つ増加する。ステップＳ１８１２は、ステップＳ１８０６からステップＳ１８１１までの繰返し処理の終端を示す。本フローチャートでは、利用度情報と同一の要求スペックを有する来歴情報が存在する間は、上述ステップＳ１８０６からステップＳ１８１１までを繰返し実施する。ステップＳ１８０８が、利用度情報と同一でない要求スペックを有する来歴情報を抽出していた場合、この繰返し処理を中断してステップＳ１８１３を実行する。もしくは全ての来歴情報を参照した後、ステップＳ１８１３を実行する。
【０１０４】
ステップＳ１８１３は、算出された占有率の総和変数（Ｓｄ）と時間差分の総和変数（Ｓｓ）、頻度変数（Ｎ）とから、占有率の平均値と時間差分の平均値とを算出し、各々平均占有率変数（Ｐｄ）、平均時間差分変数（Ｐｓ）に格納する。その後、図１８ＢのステップＳ１８１４を実行する。
【０１０５】
ステップＳ１８１４からステップＳ１８１８までの処理は、平均占有率変数（Ｐｄ）の値から占有度のレベルを決定する。またステップＳ１８１９からステップＳ１８２３までの処理は、平均時間差分変数（Ｐｓ）の値から即時度のレベルを決定する。
【０１０６】
ステップＳ１８１４は、平均占有率変数（Ｐｄ）の値が７５％以上であるかを判断する。７５％以上の場合は、ステップＳ１８１５を実行し、占有度を「高」と設定して利用度情報テーブル１６００の占有度欄１６０１に格納する。もし平均占有率変数（Ｐｄ）の値が３０％以上７５％未満の場合（ステップＳ１８１６）、占有度を「中」と設定して利用度情報テーブル１６００の占有度欄１６０１に格納する（ステップＳ１８１７）。平均占有率変数（Ｐｄ）の値が３０％未満で合った場合は、占有度を「低」と設定して利用度情報テーブル１６００の占有度欄１６０１に格納する（ステップＳ１８１８）。
【０１０７】
ステップＳ１８１９は、平均時間差分変数（Ｐｓ）の値が１５分以内であるかどうかを判別する。１５分以内とは要求受付から利用開始までの平均時間が１５分以内であることを示す。この場合即時度を「高」と設定し、利用度情報テーブル１６００の即時度欄１６０２に格納する（ステップＳ１８２０）。平均時間差分変数（Ｐｓ）の値が１５分以上４時間以内の場合（ステップＳ１８２１）、即時度を「中」と設定して利用度情報テーブル１６００の即時度欄１６０２に格納する（ステップＳ１８２２）。平均時間差分変数（Ｐｓ）の値が４時間以上の場合は、即時度を「低」と設定して利用度情報テーブル１６００の即時度欄１６０２に格納する（ステップＳ１８２３）。
【０１０８】
以上のステップを実行することで、ステップＳ１８０４で抽出した利用度情報テーブル１６００の一つの利用度情報に対する占有度と即時度を算出する。ステップＳ１８２４は、ステップＳ１８０３の繰返し処理に対する終端を示す。利用度情報テーブル１６００の全ての利用度情報を抽出して、占有度と即時度を算出すると、繰返し処理を終了し、ステップＳ１８２５を実行する。ステップＳ１８２５は、ステップＳ１８０２でソートした来歴情報を元の状態に戻すため、来歴情報テーブル１５００の要求日時欄０８０７に格納された要求日時に基づいて昇順でソートする。
【０１０９】
ステップＳ１８１４以降で用いた占有度のレベルを決定付ける値（７５％、３０％等）や即時度のレベルを決定づける値（１５分、４時間など）は、別の配備オプション画面を出力する処理を加えることで、リソース管理プログラムを操作する管理者が自由にそれらの値を設定できるようにする。これにより、管理者はより柔軟な運用管理を行うことができる。図２０に入力画面の出力例を示す。
【０１１０】
図２０は、実施例２のレベルオプション入力画面２０００である。入力画面２０００は、利用度の重み付けや占有度、即時度のレベルを決定づける値を入力できるフィールドを有する。行２０１１は利用度の重み付けを決定付ける値を入力する欄を有する。行２０１２は占有度のレベルを決定付ける値を入力する欄を有する。レベル「中」を確定する数値と、レベル「低」を確定する数値は同じ値である。従って、管理者はレベル「高」と「中」の２つの値を入力すればよい。行２０１３は即時度のレベルを決定付ける値を入力する欄を有する。実施例２の図１８における利用度情報作成処理は、分、時間を単位にレベルの判定を行ったが、図２０で用いる「分」の単位に統一してレベルの決定を行っても良い。
またレベルオプション入力画面２０００は、基準欄２００１を有している。実施例１におけるリソース管理プログラム０１１０は、利用度情報テーブル０９００の利用度情報を一旦利用度０９０８欄を基準に降順でソートして仮想計算機を配備する。実施例２では、リソース管理プログラムが利用度を基準として配備を行うだけでなく、管理者が事前に設定した基準に基づいて仮想計算機を配備できるようにする。具体的には、管理者が基準欄２００１で示された３つのチェックボックスのうちの１つを選択できるようにする。例えば、管理者が占有度に対するチェックボックスをチェックすると、リソース管理プログラム０１１０は占有度を基準に仮想計算機を配備する。
【０１１１】
管理者は、全ての項目について入力を完了したならば、適用ボタンを押下する。これによりリソース管理プログラムは、入力された全ての項目に関する値をメモリ０１０２、もしくはＨＤＤ０１０８に格納する。管理者がキャンセルボタンを押下すると、リソース管理プログラムは、入力された全ての項目に関する値を棄却する。
【０１１２】
このように管理者が配備する仮想計算機の基準を選択できるようにすることで、管理者は様々な要求を有する利用者に対して柔軟な仮想計算機を事前に配備することができる。
【０１１３】
図１９は、仮想計算機配備処理のサブフローチャートであり、図１７のステップＳ１７０２を詳細に示したフローチャートである。ステップＳ１９０１は、管理者が図２８のレベルオプション入力画面２８００の基準欄２８０１で指定したチェックボックスが、利用度であるかどうかを判定する。リモート管理プログラムはレベルオプション入力画面２８００で設定された値をメモリやＨＤＤ等に格納しているので、ステップＳ１９０１は格納された値を参照して判断する。管理者が利用度を基準として選択していた場合は、利用度情報テーブル１６００の利用度情報を利用度欄０９０８に基づいて降順でソートする（ステップＳ１４０１）、もし管理者が占有度を基準として選択していた場合（ステップＳ１９０２）、利用度情報テーブル１６００の利用度情報を占有度欄１６０１に基づいて降順でソートする（ステップＳ１９０３）。もし管理者が即時度を基準として選択していた場合は、利用度情報テーブル１６００の利用度情報を即時度欄１６０２に基づいて降順でソートする（Ｓ１９０３）。以降は、リソース管理プログラムは図１４のフローチャートと同じステップを実行する。このように、リソース管理プログラムは、管理者によって指定された基準に合わせて利用度情報をソートすることで、選択された基準に基づく仮想計算機の配備を実施することができる。
【実施例３】
【０１１４】
実施例１、２では、ユーザが１台の仮想計算機を割当てることを想定していた。実施例３では、ユーザが一度に複数の仮想計算機を割当てることを想定する。また、ユーザが検索する仮想計算機に幾つかのオプションを付与できるようにする。
【０１１５】
図２１は、実施例３における要求受付処理の入力画面ある。図２０は、実施例１における図６の要求受付処理入力画面とほぼ同じである。異なる部分は、ユーザが台数を指定できる台数入力欄２１０１と、３つのオプションを選択するオプション入力欄２１０２である。オプション入力欄２１０２は、専用利用オプション用のチェックボックス２１０３、クラスタ利用オプション用のチェックボックス２１０４、差分ディスク利用用のチェックボックス２１０５の３つのチェックボックスから構成する。
【０１１６】
専用オプションとは、ユーザが仮想計算機を別のユーザとリソースを共有しない専用型の仮想計算機として利用するオプションである。当該オプションがユーザによって指定されると、リソース管理プログラム０１１０は、１つの物理計算機上で稼働する仮想計算機であって、当該物理計算機上に他のユーザのために稼働する仮想計算機が割当てられていないものを検索結果とし、ユーザへ割当てる。
【０１１７】
クラスタ利用オプションとは、ユーザが要求する仮想計算機を最低２台割り当て、各々の仮想計算機を別々の物理計算機上で稼働させる構成を構築するオプションである。これはユーザが割当てる仮想計算機の耐障害性を向上させるための形態である。当該オプションが指定台数と共にユーザによって指定されると、リソース管理プログラム０１１０は、指定台数の仮想計算機を検索し、各々が稼働する物理計算機を特定する。次に当該物理計算機とは異なる物理計算機上で指定台数分の仮想計算機を検索する。最終的には、リソース管理プログラム０１１０は、指定台数の倍の数の仮想計算機を検索する。
【０１１８】
図２２は、実施例３におけるハイパバイザ構成テーブルである。本テーブル２２００は、実施例１における図２と同様の欄を有しており、図２２においては、専用欄２２０１、クラスタ欄２２０２、差分ディスク欄２２０３が新たに追加されている。専用欄２２０１は、ユーザにより専用オプションが指定され、リソース管理プログラム０１１０が当該仮想計算機を専用として割当てた場合に、識別子を格納する。ハイパバイザ構成テーブル２２００には、ＶＭ５の仮想計算機が専用として割当てられていることを示す情報が格納されている。クラスタ欄は、ユーザによりクラスタ利用オプションが指定され、リソース管理プログラム０１１０が２つの仮想計算機をクラスタ構成で割当てた場合に、クラスタ構成であることを示す識別子を格納する。具体的には、クラスタを構成する相手方の仮想計算機のＶＭ識別子を格納する。例えば、図２１のハイパバイザ構成テーブル２２００は、ＶＭ１の仮想計算機がクラスタ欄２２０２に「ＶＭ６」を格納していることを示している。これは、ＶＭ１の仮想計算機がクラスタ構成であり、相手方仮想計算機のＶＭ識別子が「ＶＭ６」であることを意味する。このようにリソース管理プログラム０１１０がクラスタ欄を利用することで、単にクラスタ構成を有していることを把握するだけでなく、クラスタを構成する相手方仮想計算機をも容易に特定することができる。差分ディスク欄２２０３は、当該仮想計算機が差分ディスクを用いていることを示す識別子を格納する。
【０１１９】
図２３は、実施例３におけるＶＭプール情報テーブルである。本テーブル２３００は、実施例１における図３のＶＭプール情報テーブル０３００とほぼ同じ構成を有しており、新たに専用状態欄２３０１を有している。専用状態欄２３０１は、各リソースが専用で使用されているか、共用で使用されているかを示す識別子を格納する。専用で使用されている場合は「専用」が格納され、共用で使用されている場合は「共用」が格納される。また配備用仮想計算機が利用しているリソースであり、どちらの利用形態で使用するか未定である場合は、「未定」が格納される。
【０１２０】
図２４は、実施例３における要求スペック処理のフローチャートである。本フローチャートは実施例１における要求スペック処理のフローチャートとほぼ同じステップを有している。新たにステップＳ２４０１が追加された。また、ステップＳ０４０３の判定内容が変更され、新たにステップＳ２４０２とした。ステップＳ０４０２がユーザの要求スペックに基づいて検索結果リストを作成した後、ステップＳ２４０１は、ユーザが指定したオプションに基づいて検索結果リストを見直す。ステップＳ０４０２は、ユーザの要求スペックであるリソース量を元に候補となる仮想計算機を複数抽出するため、ユーザの指定したオプションを考慮していない。特にユーザが専用オプションを指定した場合であっても、ステップＳ０４０２は、他の仮想計算機とリソースを共用する仮想計算機をも抽出する。
【０１２１】
そこで、ステップＳ０４０３は作成された検索結果リストの内容をチェックし、専用オプション指定とマッチングしていない仮想計算機をリストから削除する処理を行う。詳細を図２５に示す。また、他のクラスタ利用オプションが指定された場合は、抽出された全ての仮想計算機を用いてクラスタ構成となるよう選択すればよいので、専用オプションのようにあえて見直す必要はない。また差分ディスク利用オプションも、クラスタ利用オプションと同様で見直す必要はない。
【０１２２】
その後、ステップＳ２４０２において、最終的に検索結果リストに抽出された仮想計算機の数が、ユーザの指定した台数より多いかどうかを判断する。多い場合は、ステップＳ０４０５を実施し、少ない場合はステップＳ０４０４を実行して、要求スペックの再入力を依頼するメッセージを出力する。また、リソース管理プログラム０１１０は、ステップＳ２４０２の代わりにステップＳ０４０３の判定を用いて判断してもよい。つまりユーザの指定した台数より少ない場合においても、仮想計算機が１台でも多く抽出されていた場合、ステップＳ０４０５を実施する。後の処理は、図４のフローチャートと同じである。ただユーザが複数台数を指定することができるので、フローチャートの各ステップが複数台数分の処理を実施できるよう、処理内容を変更すればよい。
【０１２３】
図２５は、検索結果リスト見直し処理のフローチャートである。具体的には、図２４の要求スペック処理におけるステップＳ２４０１を詳細にしたフローチャートである。本フローチャートは、ユーザが専用オプションを指定した場合、検索結果リストに抽出された仮想計算機のうち、専用として利用できない仮想計算機を検索結果リストから削除する処理を示す。ステップＳ２５０１は、ユーザが専用オプションを指定したかどうかを判断する。ユーザが専用オプションを指定していた場合、ステップＳ２５０２を実行する。指定していなかった場合は、処理を終了する。ステップＳ２５０２は、検索結果リストに格納されている全ての仮想計算機のデータを読み出すまで、ステップＳ２５０７までの処理を繰り返す。ステップＳ２５０３は、検索結果リストから１つの仮想計算機を抽出する。説明上、抽出した仮想計算機を「Ｘ」と呼ぶ。ステップＳ２５０４は、抽出した仮想計算機「Ｘ」を稼働するハイパバイザを特定し、ハイパバイザ構成情報テーブル２２００を参照して同じハイパバイザで稼働され、かつ割当て済の他の仮想計算機を抽出する。ステップＳ２５０５は、ステップＳ２５０４で該当する仮想計算機が抽出されたかどうかを判断する。もし抽出されていれば、ステップＳ２５０７を実行する。ステップＳ２５０７は、当該仮想計算機「Ｘ」が他の割当て済み仮想計算機とリソースを共用するので、当該仮想計算機「Ｘ」は専用として利用できない仮想計算機であることを特定する。従って、当該仮想計算機「Ｘ」を検索結果リストから削除する。ステップＳ２５０７は、繰返し処理の終端である。
【０１２４】
図２６は、ユーザが専用オプションのみを指定した場合の検索結果リストである。検索結果リスト２６００は、図７で示す検索結果リスト出力画面上に検索結果リスト０７１２の代わりに出力される。検索結果リスト２６００は、図７の検索結果リスト０７１２とほぼ同じ構造を有しており、ハイパバイザ識別子欄２６０１と専用状態欄２６０２の２つの欄が追加されている。ハイパバイザ識別子欄２６０１は、検索した仮想計算機が制御されるハイパバイザの識別子を格納する。ハイパバイザの識別子は、図２２のハイパバイザ構成テーブル２２００のハイパバイザ識別子欄０２０１に格納されている識別子を用いる。専用状態欄２６０２は、検索した仮想計算機の専用状態を示す情報を格納する。専用状態を示す情報は、図２３のＶＭプール情報テーブル２３００の専用状態欄２３０１に格納されている情報を用いる。
【０１２５】
ここで、図２６の検索結果リストは、４つの仮想計算機を有する。ここでユーザが例えば行２６１１で示す「ＶＭ８」の仮想計算機を選択し、選択欄０７０１のチェックボックスを選択することを想定する。ユーザがチェックボックスを選択すると、リソース管理プログラム０１１０は、行２６１２で示す「ＶＭ９」の仮想計算機に関する情報に、「取り消し線」を加えて表示する。ユーザが「ＶＭ８」を選択すると、「ＶＭ８」は「ＶＭ９」とリソースを共有する。そのため、リソース管理プログラム０１１０は、ユーザがリソースを共有する「ＶＭ９」の仮想計算機を選択できないことを示す。もしユーザが「ＶＭ８」の選択を解除した場合、即ちチェックボックスを再度押下してチェックを外した場合、リソース管理プログラム０１１０は、「ＶＭ９」に付した「取り消し線」を消して表示し、ユーザが「ＶＭ９」も選択可能であることを示す。このようにリソース管理プログラム０１１０が、ユーザからの選択に応じて選択可能な仮想計算機と選択できない仮想計算機を判別して再表示することで、ユーザによる専用オプション指定の要求を実現する。
【０１２６】
図２７は、ユーザが差分ディスク利用オプションを指定した場合の検索結果リストである。検索結果リスト２７００は、図２６の検索結果リスト２６００に、差分ディスク欄２７０１が加わっている。差分ディスク欄２７０１は、チェックボックスを表示する。ユーザが差分ディスクを利用したい仮想計算機にチェックする。これにより、リソース管理プログラムは、チェックされた仮想計算機のＶＭイメージを差分ディスクとして利用できるよう制御する。
【０１２７】
図２８は、ユーザがクラスタ利用オプションを指定した場合の検索結果リスト２８００である。検索結果リスト２８００は、図２７の検索結果リスト２７００に、クラスタ１側とクラスタ２側の欄を設け、クラスタ１側は図２７で示す検索結果リストの構造と同じ構造を有する。クラスタ２側欄２８０１は、抽出された仮想計算機のマトリックスで構成されている。図２８では、４つの仮想計算機が抽出されているので、クラスタ２側欄２８０１は４つの列から構成される。ユーザがクラスタ構成として同時に２つの仮想計算機が選択できるよう、クラスタ２側欄２８０１の各セルにチェックボックスが表示される。クラスタ構成として選択できない組み合わせには「−」が表示される。例えばＶＭ８とＶＭ９の組合せである。クラスタ構成として選択できる組み合わせの条件は、お互い異なる物理計算機上で稼働していることである。従って、同じ物理計算機上で稼働する仮想計算機の組み合わせは、クラスタ構成として選択できない。リソース管理プログラム０１１０は、組合せ条件が成立するかしないかをハイパバイザ構成テーブル２２００やＶＭプール情報テーブル２３００を参照すれば特定できる。
【０１２８】
ここで図２８では、ユーザがＶＭ８とＶＭ１０の組み合わせでクラスタ構成を選択することを想定する。リソース管理プログラム０１１０は、ＶＭ８が選択されたので、ＶＭ８と組み合わされる他の仮想計算機（ＶＭ１１）のチェックボックスに「取り消し線」を表示する。次に、ＶＭ１０と組み合わされる他の計算機（ＶＭ９）のチェックボックスに「取り消し線」を表示する。図２８の場合、最終的にユーザが選択可能な組み合わせが「ＶＭ９」と「ＶＭ１１」のみである。
【０１２９】
以上のように、リソース管理プログラムは、ユーザのオプション指定の内容に応じて検索結果リストの出力フォーマットを変更し選択可能な範囲を制御することにより、ユーザの様々なオプション指定の組合せにも柔軟に対応することができる。
【０１３０】
図２９は、実施例３における来歴情報テーブル２９００である。来歴情報テーブル２９００は、実施例２における来歴情報テーブル１５００に、台数欄２９０１、オプションの専用欄２９０２、クラスタ欄２９０３、差分欄２９０４を加えて構成している。台数欄２９０１は、ユーザが台数を指定した数を格納する。例えば行２９１１の台数欄２９０１に「２」が格納されている。この仮想計算機は、ユーザが「６ＧＨｚ」「４ＧＢ」の「ＤＢサーバ」を「２台」要求した際に、リソース管理プログラム０１１０が割当てた２台中の１台目である。残りの１台は、次の行２９１２に格納されている。行２９１２にも同様台数欄に「２」が格納されている。この仮想計算機は、行２９１１と同じユーザ要求により割当てられた２台中の２台目である。このような数値を格納する理由は、リソース管理プログラムは、来歴情報テーブル２９００の台数欄２９０１を用いて平均台数を算出するためである。
【０１３１】
専用欄２９０２、クラスタ欄２９０３、差分欄２９０４は、各々ユーザの指定したオプション内容を格納する。専用欄２９０２の「共用」は、ユーザが専用オプションを指定しなかった場合に格納される。ユーザが専用オプションを指定した場合、リソース管理プログラム０１１０は「専用」を格納する。クラスタ欄２９０３は、ユーザがクラスタ利用オプションを選択した場合「有」が格納され、選択されなかった場合は「無」を格納する。差分欄２９０４は、ユーザが差分ディスク利用オプションを指定した場合「有」を格納し、指定しなかった場合は「無」を格納する。
【０１３２】
図３０は、実施例３の利用度情報テーブル３０００である。利用度情報テーブル３０００は、実施例２の利用度情報テーブル１６００に平均台数欄３００１、専用度欄３００２、クラスタ度３００３、差分度３００４を追加している。
【０１３３】
平均台数欄３００１は、来歴情報テーブル２９００の台数欄２９０１に格納された数字から算出した平均値が格納される。
【０１３４】
専用度欄３００２は、来歴情報テーブル２９００の専用欄２９０２に格納された「共用」「専用」の値か算出された割合いが格納される。例えば、ユーザが「Ｗｅｂサーバ」「８ＧＨｚ」「２ＧＢ」の要求スペックを過去に１０回要求し、何れの要求においてもユーザが「専用」を指定してた場合、リソース管理プログラム０１１０は「１００％」と算出する。要求された回数は、利用度情報テーブル３０００の欄０９０５から欄０９０７までに格納された割当て回数の総和から算出できる。リソース管理プログラム０１１０は、総割当て回数に対する「専用」を指定した回数の割合で求める。
クラスタ度欄３００３は、来歴情報テーブル２９００のクラスタ欄２９０３に格納された「有」「無」の値から算出された割合いが格納される。前の専用度欄３００２と同様、リソース管理プログラム０１１０は、総割当て回数に対する「有」を指定した回数の割合で算出する。
【０１３５】
差分度欄３００４は、来歴情報テーブル２９００の差分欄２９０４に格納された「有」「無」の値から算出された割合いが格納される。リソース管理プログラム０１１０は、クラスタ度欄３００３と同様の方法で割合を算出する。
【０１３６】
これらの利用度情報テーブル３０００の各欄を算出する処理（図示せず）は、図１８Ａ、図１８Ｂで示した実施例２の処理に、平均台数、専用度、クラスタ度、差分度の算出ステップを加えることで実現できる。
【０１３７】
また、利用度情報テーブル３０００の各欄を用いて配備用仮想計算機を配備する場合、実施例２の図２０で示したレベルオプション入力画面に、「専用度」「クラスタ度」「差分度」を加え、ユーザが基準として選択できるようにする。ユーザが「専用度」「クラスタ度」「差分度」のうちいずれかの基準を選択した場合、実施例２の図１９で示したように、指定された基準に基づいて利用度情報をソートする。そしてソートされた利用度情報に基づいて、スペックとして決定されている利用度情報に基づいて仮想計算機を配備する。
【０１３８】
また利用度情報テーブル３０００に格納された利用度情報の専用度欄３００２の値が「１００％」であった場合、配備用仮想計算機を「専用」として確保することも可能である。この場合、ユーザが専用オプションを指定した場合、「専用」として確保された仮想計算機を検索結果リストに抽出する。逆に、ユーザが専用オプションを指定しなかった場合でも、「専用」として確保された仮想計算機を検索結果リストに抽出し、ユーザの選択対象とすることも可能である。
【０１３９】
以上のように、ユーザのオプション指定を含む要求スペックを来歴情報に記録し、当該ユーザの利用傾向を把握することで、よりユーザの要求に合致した仮想計算機を事前に配備することができる。これにより、ユーザが仮想計算機を要求した時に、要求スペックと合致する仮想計算機だけでなく、要求スペックとは合致してなくとも容易に変更可能な仮想計算機を検索結果としてユーザに提示することができるので、ユーザへ提示する選択の幅を増やすことができるだけでなく、実際にユーザへ仮想計算機を割当てる時間を短縮することができる。
【符号の説明】
【０１４０】
０１００：リソース管理サーバ、０１０１：ＣＰＵ、０１０２:メモリ、０１０３:入力Ｉ／Ｆ、０１０４:マウス・キーボード、０１０５:出力Ｉ／Ｆ、０１０６：ディスプレイ、０１０７：ＨＤＤ  Ｉ／Ｆ、０１０８：ＨＤＤ、０１０９：ＮＩＣ、０１１０：リソース管理プログラム０１１０：要求受付部、０１１２：検索部、０１１３：割当部、０１１４：計測部、０１１５：配備部、０１１６：管理部、０２００：ハイパバイザ構成テーブル、０３００：ＶＭプール情報テーブル、０７００：検索結果リスト、０８００：来歴情報テーブル、０９００：利用度情報テーブル、０１２０：ネットワーク、０１３０：物理計算機、０１３１：ＣＰＵ、０１３２：メモリ、０１３３：ＮＩＣ、０１３４：ＨＤＤ  Ｉ／Ｆ、０１３５：ＨＤＤ、０１３６：ハイパバイザＨＶ１、０１３７：仮想計算機ＶＭ１、０１３８：仮想計算機ＶＭ２、０１３９：ＶＭイメージ、０１４０：物理計算機、０１４１：ＣＰＵ、０１４２：メモリ、０１４３：ＮＩＣ、０１４４：ＨＤＤ  Ｉ／Ｆ、０１４５：ＨＤＤ、０１４６：ハイパバイザＨＶ１、０１４７：仮想計算機ＶＭ１、０１４８：仮想計算機ＶＭ２、０１４９：ＶＭイメージ
【図１】
2014038364.tif 000003
【図２】
2014038364.tif 000004
【図３】
2014038364.tif 000005
【図４】
2014038364.tif 000006
【図５】
2014038364.tif 000007
【図６】
2014038364.tif 000008
【図７】
2014038364.tif 000009
【図８】
2014038364.tif 000010
【図９】
2014038364.tif 000011
【図１０】
2014038364.tif 000012
【図１１】
2014038364.tif 000013
【図１２】
2014038364.tif 000014
【図１３】
2014038364.tif 000015
【図１４】
2014038364.tif 000016
【図１５】
2014038364.tif 000017
【図１６】
2014038364.tif 000018
【図１７】
2014038364.tif 000019
【図１８Ａ】
2014038364.tif 000020
【図１８Ｂ】
2014038364.tif 000021
【図１９】
2014038364.tif 000022
【図２０】
2014038364.tif 000023
【図２１】
2014038364.tif 000024
【図２２】
2014038364.tif 000025
【図２３】
2014038364.tif 000026
【図２４】
2014038364.tif 000027
【図２５】
2014038364.tif 000028
【図２６】
2014038364.tif 000029
【図２７】
2014038364.tif 000030
【図２８】
2014038364.tif 000031
【図２９】
2014038364.tif 000032
【図３０】
2014038364.tif 000033