JP5566342B2 - コンピュータシステム、仮想マシンデータ配置方法およびプログラム - Google Patents

コンピュータシステム、仮想マシンデータ配置方法およびプログラム Download PDF

Info

Publication number
JP5566342B2
JP5566342B2 JP2011128261A JP2011128261A JP5566342B2 JP 5566342 B2 JP5566342 B2 JP 5566342B2 JP 2011128261 A JP2011128261 A JP 2011128261A JP 2011128261 A JP2011128261 A JP 2011128261A JP 5566342 B2 JP5566342 B2 JP 5566342B2
Authority
JP
Japan
Prior art keywords
virtual machine
execution
data
unit
storage unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2011128261A
Other languages
English (en)
Other versions
JP2012256165A (ja
Inventor
大河 村上
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NTT Data Corp
Original Assignee
NTT Data Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NTT Data Corp filed Critical NTT Data Corp
Priority to JP2011128261A priority Critical patent/JP5566342B2/ja
Publication of JP2012256165A publication Critical patent/JP2012256165A/ja
Application granted granted Critical
Publication of JP5566342B2 publication Critical patent/JP5566342B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、記憶装置の記憶する仮想マシンの実行用データをコンピュータが読み出して実行するコンピュータシステム、当該コンピュータシステムの仮想マシンデータ配置方法およびプログラムに関する。
仮想マシンを実行する方法の1つに、記憶装置の記憶する仮想マシンの実行用データをコンピュータが取得して(例えば読み出して)実行する方法があり、この方法に関連して幾つかの技術が提案されている。
例えば、記憶装置が複数の仮想マシンの実行用データを記憶している場合に、幾つかの仮想マシンの実行用データをコンピュータが予め取得しておくことで、仮想マシン実行時に仮想マシンの実行用データをコンピュータが記憶装置から取得する処理を不要として、仮想マシン起動に要する時間を短縮する技術が知られている。
また、特許文献1に記載の仮想マシン配置装置は、各仮想マシンの仮想マシンワークロードID毎に、排他したい仮想マシンワークロードID及び排他優先度を含む条件式情報を記憶する仮想マシンワークロード情報DBを備え、配置テーブルへの配置処理の途中で、最大物理マシン台数を超えた場合には、仮想マシンワークロード情報DB内の条件式情報のうち、排他優先度が最も低い条件式情報を削除し、削除の後、配置テーブル及び配置決定用テーブルを初期化して配置処理を再実行する。これにより、物理マシンの台数が制限されている場合でも仮想マシンを排他的に配置できるとされている。
特開2011−28328号公報
上述した、幾つかの仮想マシンの実行用データをコンピュータが予め取得しておく方法によれば、コンピュータが、既にデータを取得している仮想マシンを実行する場合は、仮想マシン起動に要する時間を短縮できる。しかしながら、コンピュータが、データを取得していない仮想マシンを実行する場合は、仮想マシン実行時に仮想マシンの実行用データをコンピュータが記憶装置から取得する処理が必要となり、仮想マシン起動に時間を要してしまう。
そこで、仮想マシン起動に要する時間を短縮するために、実行される可能性の高い仮想マシンの実行用データを予めコンピュータが予め取得しておくようにすることが課題となる。しかし、特許文献1には、実行される可能性の高い仮想マシンの実行用データを予めコンピュータが取得しておく技術は開示されていない。
本発明は、このような事情を考慮してなされたものであり、その目的は、実行される可能性の高い仮想マシンの実行用データを予めコンピュータが取得しておくことのできるコンピュータシステム、仮想マシンデータ配置方法およびプログラムを提供することにある。
この発明は上述した課題を解決するためになされたもので、本発明の一態様によるコンピュータシステムは、仮想マシンを実行する実行装置と、前記実行装置の実行する仮想マシンの実行用データを記憶する記憶装置と、前記実行装置を制御する制御装置と、を具備するコンピュータシステムであって、前記実行装置は、仮想マシンの実行用データを記憶する第1記憶部と、仮想マシンの実行要求を受けると、当該実行要求で要求された仮想マシンの実行用データを前記第1記憶部が記憶しているか否かを判定するデータ有無判定部と、前記第1記憶部の記憶する前記実行要求で要求された仮想マシンの実行用データを用いて当該実行要求で要求された仮想マシンを実行する仮想マシン実行部と、を具備し、前記記憶装置は、仮想マシンの実行用データを記憶する第2記憶部と、前記データ有無判定部が、前記実行要求で要求された仮想マシンの実行用データを前記第1記憶部が記憶していないと判定すると、当該実行要求で要求された仮想マシンの実行用データを前記第2記憶部から取得して前記第1記憶部に記憶させるデータ転送部と、を具備し、前記制御装置は、仮想マシン毎に、当該仮想マシンの第1使用時間と、当該仮想マシンの実行用データを生成するために実行用データをコピーされたコピー元の仮想マシンの第2使用時間とに基づいて、当該仮想マシンの実行用データを前記第1記憶部に記憶させる優先順位を、前記第1使用時間と前記第2使用時間の和が大きいほど優先順位が高くなるように決定する優先順位決定部と、前記優先順位決定部の決定する前記優先順位に従って、前記優先順位が高い順に仮想マシンを選択し、選択した仮想マシンの実行用データを前記第1記憶部に記憶させるデータ登録部と、を具備することを特徴とする。
また、本発明の一態様によるコンピュータシステムは、上述のコンピュータシステムであって、前記実行装置は、仮想マシンのユーザに応じてグループ分けされており、前記制御装置は、前記データ登録部は、前記実行装置のグループ毎に、前記優先順位決定部の決定する前記優先順位に従って、当該グループに属する実行装置の前記第1記憶部に、前記仮想マシンの実行用データを記憶させることを特徴とする。
また、本発明の一態様によるコンピュータシステムは、上述のコンピュータシステムであって、前記制御装置は、仮想マシンの使用履歴を記憶する使用履歴記憶部と、コピー元の仮想マシンの実行用データをコピーして仮想マシンの実行用データが生成された場合に、前記コピー元の仮想マシンの使用終了時期を示す情報またはそれ以後の時期を示す情報を、実行用データが生成された仮想マシンの前記使用履歴における使用終了時刻の項目に書き込む制御部と、を具備し、前記優先順位決定部は、前記使用履歴に基づいて、前記優先順位を、前記使用終了時期の項目に書き込まれた情報が示す時期が遅いほど優先順位が高くなるように決定することを特徴とする。
また、本発明の一態様による仮想マシンデータ配置方法は、仮想マシンの実行用データを記憶する第1記憶部を具備して仮想マシンを実行する実行装置と、前記実行装置の実行する仮想マシンの実行用データを記憶する第記憶部を具備する記憶装置と、前記実行装置を制御する制御装置と、を具備するコンピュータシステムの仮想マシンデータ配置方法であって、前記実行装置のデータ有無判定部が、仮想マシンの実行要求を受けると、当該実行要求で要求された仮想マシンの実行用データを前記第1記憶部が記憶しているか否かを判定するデータ有無判定ステップと、前記実行装置の仮想マシン実行部が、前記第1記憶部の記憶する前記実行要求で要求された仮想マシンの実行用データを用いて当該実行要求で要求された仮想マシンを実行する仮想マシン実行ステップと、前記記憶装置のデータ転送部が、前記データ有無判定ステップにて、前記実行要求で要求された仮想マシンの実行用データを前記第1記憶部が記憶していないと判定すると、当該実行要求で要求された仮想マシンの実行用データを前記第2記憶部から取得して前記第1記憶部に記憶させるデータ転送ステップと、前記制御装置の優先順位決定部が、仮想マシン毎に、当該仮想マシンの第1使用時間と、当該仮想マシンの実行用データを生成するために実行用データをコピーされたコピー元の仮想マシンの第2使用時間とに基づいて、当該仮想マシンの実行用データを前記第1記憶部に記憶させる優先順位を、前記第1使用時間と前記第2使用時間の和が大きいほど優先順位が高くなるように決定する優先順位決定ステップと、前記制御装置のデータ登録部が、前記優先順位決定ステップにて決定する前記優先順位に従って、前記優先順位が高い順に仮想マシンを選択し、選択した仮想マシンの実行用データを前記第1記憶部に記憶させるデータ登録ステップと、を具備することを特徴とする。
また、本発明の一態様によるプログラムは、仮想マシンの実行用データを記憶する第1記憶部を具備して仮想マシンを実行する実行装置と、前記実行装置の実行する仮想マシンの実行用データを記憶する第記憶部を具備する記憶装置と、前記実行装置を制御する制御装置と、を具備するコンピュータシステムに、前記実行装置のデータ有無判定部が、仮想マシンの実行要求を受けると、実行要求で要求された仮想マシンの実行用データを前記第1記憶部が記憶しているか否かを判定するデータ有無判定ステップと、前記実行装置の仮想マシン実行部が、前記第1記憶部の記憶する前記実行要求で要求された仮想マシンの実行用データを用いて当該実行要求で要求された仮想マシンを実行する仮想マシン実行ステップと、前記記憶装置のデータ転送部が、前記データ有無判定ステップにて、前記実行要求で要求された仮想マシンの実行用データを前記第1記憶部が記憶していないと判定すると、当該実行要求で要求された仮想マシンの実行用データを前記第2記憶部から取得して前記第1記憶部に記憶させるデータ転送ステップと、前記制御装置の優先順位決定部が、仮想マシン毎に、当該仮想マシンの第1使用時間と、当該仮想マシンの実行用データを生成するために実行用データをコピーされたコピー元の仮想マシンの第2使用時間とに基づいて、当該仮想マシンの実行用データを前記第1記憶部に記憶させる優先順位を、前記第1使用時間と前記第2使用時間の和が大きいほど優先順位が高くなるように決定する優先順位決定ステップと、前記制御装置のデータ登録部が、前記優先順位決定ステップにて決定する前記優先順位に従って、前記優先順位が高い順に仮想マシンを選択し、選択した仮想マシンの実行用データを前記第1記憶部に記憶させるデータ登録ステップと、を実行させるためのプログラムである。
この発明によれば、実行される可能性の高い仮想マシンの実行用データを予めコンピュータが取得しておくようにできる。
本発明の一実施形態におけるコンピュータシステムの概略構成を示す構成図である。 同実施形態におけるノードコントローラ装置の概略構成を示す構成図である。 同実施形態におけるクラウドコントローラ装置の概略構成を示す構成図である。 同実施形態における記憶部の記憶する、仮想マシンの使用履歴情報の例を示す説明図である。 同実施形態における記憶部の記憶する、VMテーブルの例を示す説明図である。 同実施形態におけるストレージサーバ装置が実行用データを記憶する仮想マシンの、派生関係の例を示す説明図である。 同実施形態における記憶部の記憶する、ユーザ別使用時間情報の例を示す図である。 同実施形態における記憶部の記憶する、ユーザグループ分類情報の例を示す説明図である。 同実施形態における記憶部の記憶する、NCグループ分類情報の例を示す説明図である。 同実施形態における記憶部の記憶する、グループ対応情報の例を示す説明図である。 同実施形態において、起動する仮想マシンの実行用データがVMキャッシュ131(図2)に格納されていない場合に、コンピュータシステムが仮想マシンを起動する処理手順の例を示すシーケンス図である。 同実施形態において、起動する仮想マシンの実行用データがVMキャッシュ(図2)に格納されている場合に、コンピュータシステムが仮想マシンを起動する処理手順の例を示すシーケンス図である。 同実施形態において、コンピュータシステムが新たに仮想マシンを生成する際の処理手順の例を示すシーケンス図である。 同実施形態において、コンピュータシステムがVMキャッシュを更新する処理手順の例を示すシーケンス図である。 同実施形態において、新たに生成された仮想マシンに対する仮想マシン識別情報をVM制御部が決定する処理手順を示すフローチャートである。 同実施形態において、コンピュータシステムがVMキャッシュを更新する処理手を示すシーケンス図である。 同実施形態において優先順位決定部が決定する各仮想マシンの優先順位の例を示す説明図である。 同実施形態において、優先順位決定部が、ユーザ別使用時間情報を更新する処理手順を示すフローチャートである。 同実施形態において優先順位決定部が行う、使用時間に対する重み付けの例を示す説明図である。 同実施形態において、優先順位決定部が、使用時間に対する重み付けを行う処理手順を示すフローチャートである。
以下、図面を参照して、本発明の一実施形態について説明する。
図1は、本発明の一実施形態におけるコンピュータシステム1の概略構成を示す構成図である。
同図において、コンピュータシステム1は、ノードコントローラ装置(Node Controller;NC)100−1〜100−5と、ストレージ管理装置(Storage Controller;SC)200と、ストレージサーバ装置300と、クラウドコントローラ装置(Cloud Controller;CLC)400と、ユーザ端末装置500と、ネットワーク(Network)900とを具備する。また、ノードコントローラ装置100−1〜100−5と、ストレージ管理装置200と、ストレージサーバ装置300と、クラウドコントローラ装置400と、ユーザ端末装置500とは、ネットワーク900に接続されている。
コンピュータシステム1は、例えば、一企業の内部において仮想マシン環境を提供するために構築されたプライベートクラウドシステムであり、ユーザ端末装置500から送信されるユーザの要求に応じて仮想マシンを生成し実行する。
ノードコントローラ装置100−1〜100−5の各々は、本発明における実行装置の一例であり、ストレージサーバ装置300の記憶している仮想マシン(Virtual Machine;VM)の実行用データ(仮想マシンを実行するために用いられるデータ。例えば仮想マシンイメージ)を取得して、仮想マシンを実行する。また、ノードコントローラ装置100−1〜100−5の各々は、ストレージサーバ装置300の記憶している仮想マシンの実行用データを予め(仮想マシン実行要求を受ける前に)取得しておくことで、仮想マシン実行時に仮想マシン起動に要する時間の短縮を図る。ノードコントローラ装置100−1〜100−5の各々は、例えばコンピュータで構成される。
なお、以下では、ノードコントローラ装置100−1〜100−5をまとめて「ノードコントローラ装置100」と称する。
ストレージサーバ装置300は、本発明における記憶装置の具備する第2記憶部一例であり、ノードコントローラ装置100の実行する仮想マシンの実行用データを複数記憶している。ストレージサーバ装置300は、例えばNAS(Network Attached Storage、ネットワーク接続型ストレージ)で構成される。
ストレージ管理装置200は、本発明における記憶装置の具備するデータ転送部の一例であり、ストレージサーバ装置300から仮想マシンの実行用データを取得してノードコントローラ装置100に送信することで、ノードコントローラ装置100に仮想マシンの実行用データを取得させる。ストレージ管理装置200は、例えばコンピュータで構成される。
クラウドコントローラ装置400は、本発明における制御装置の一例であり、ノードコントローラ装置100や、ストレージ管理装置200や、ストレージサーバ装置300を制御する。特に、クラウドコントローラ装置400は、ストレージサーバ装置300の記憶する仮想マシンの実行用データに対して、ノードコントローラ装置100が予め取得する際の優先順位を付すことによって、仮想マシン実行要求を受けた際に、当該仮想マシンの実行用データをノードコントローラ装置100が既に取得している率(ヒット率)の向上を図る。クラウドコントローラ装置400は、例えばコンピュータで構成される。
ユーザ端末装置500は、ユーザの操作入力を受け付け、受け付けた操作入力に応じて、仮想マシン実行要求などユーザの要求をクラウドコントローラ装置400に送信する。ユーザ端末装置500は、例えばコンピュータで構成される。
ネットワーク900は、例えばLAN(Local Area Network)などの通信ネットワークであり、ノードコントローラ装置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の具備するCPU(Central Processing Unit、中央処理装置)が、ノードコントローラ装置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の具備するCPU(Central Processing Unit、中央処理装置)が、クラウドコントローラ装置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;User Identifier)と、仮想マシン識別情報(VMID;Virtual Machine Identifier)と、使用開始日情報と、使用終了日情報と、使用時間情報とを含む。
通し番号は、使用履歴情報の行毎に付されており、使用開始日の早い行(図4において上の行)ほど小さい番号が付されている。
ユーザ識別情報は、ユーザを一意に識別する情報である。使用履歴情報には、仮想マシンの実行を要求したユーザのユーザ識別情報が格納されている。
仮想マシン識別情報は、仮想マシンを一意に識別する情報である。使用履歴情報には、実行された仮想マシンの仮想マシン識別情報が格納されている。
使用開始日情報は、仮想マシンの使用を開始した日、すなわち仮想マシンを起動した日を示す。また、使用終了日情報は、仮想マシンの使用を終了した日、すなわち仮想マシンをシャットダウンした日を示す。
使用時間情報は、仮想マシンの使用を開始してから終了するまでの時間を示す。
この使用履歴情報は、優先順位決定部421が上述した優先順位を決定する際に用いられる情報を示している。具体的には、優先順位決定部421は、仮想マシン識別番号に基づいて使用時間の重み付けを行い、重み付けされた使用時間の長い仮想マシンほど優先順位を高く設定し、また、使用終了日が遅い(最近の)仮想マシンほど優先順位を高く設定する。
図5は、記憶部430の記憶する、VMテーブルの例を示す説明図である。記憶部430は、VMテーブルを表形式のデータとして記憶し、各行のデータが仮想マシン1台分のデータに該当する。
また、各行のデータは、仮想マシン識別情報とマシン名とを含む。
仮想マシン識別情報は、仮想マシンを識別する情報であると共に、次図で説明するように、仮想マシンの派生関係を示す情報である。
また、マシン名は、仮想マシンを識別する情報である点において仮想マシン識別情報と同様であるが、ユーザがマシン名を設定する点で、仮想マシンの派生関係に基づいてVM制御部423が生成する仮想マシン識別番号と異なる。
このVMテーブルは、クラウドコントローラ装置400が仮想マシンのマシン名と仮想マシン識別情報との対応付けを行うために用いられる。例えば、ユーザがマシン名で仮想マシンを特定して当該仮想マシンの実行を要求すると、クラウドコントローラ装置400(VM制御部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;User Group Identifier)と、使用時間合計情報と、使用時間詳細情報とを含む。
ユーザ識別情報は、上述のように、ユーザを一意に識別する情報である。
ユーザグループ識別情報は、ユーザの属するグループ(ユーザグループ)を一意に識別する情報である。ユーザとユーザグループとの対応関係については次図で説明する。
使用時間合計情報は、何れかの仮想マシンを使用した合計時間をユーザ毎に示す。
使用時間詳細情報は、仮想マシンの使用時間をより詳細に示す情報であり、ユーザ毎、かつ、仮想マシン毎に、仮想マシン識別情報と、当該仮想マシンを使用した合計時間と、当該仮想マシンを最後に使用した際の使用終了日(以下では、「使用終了日(最終)」と称する)とを示す。
このユーザ別使用時間情報は、優先順位決定部421が、上述した使用履歴情報に基づいて生成する情報であり、優先順位決定部421が上述した優先順位を決定する際に用いられる情報を示している。優先順位決定部421は、優先順位を決定する際の前処理として、ユーザ別使用時間情報を生成する。
図8は、記憶部430の記憶する、ユーザグループ分類情報の例を示す説明図である。記憶部430は、ユーザグループ分類情報を表形式のデータとして記憶している。そして、各行には、ユーザグループ識別情報と、ユーザ識別情報とが含まれており、同一の行に含まれるユーザグループ識別情報とユーザ識別情報とが対応付けられている。
例えば各ユーザの所属する部署など、ユーザの属するグループが予め(優先順位決定部421が、上述した優先順位を決定する前に)決まっており、記憶部430は、各ユーザの属するグループを、ユーザグループ識別情報とユーザ識別情報との対応付けとして予め記憶している。
図9は、記憶部430の記憶する、NCグループ分類情報の例を示す説明図である。記憶部430は、NCグループ分類情報を表形式のデータとして記憶している。そして、各行には、ノードコントローラグループ識別情報(NCGID;Node Controller Group Identifier)と、ノードコントローラ識別情報(NCID;Node Controller Identifier)とが含まれており、同一の行に含まれるノードコントローラグループ識別情報とノードコントローラ識別情報とが対応付けられている。
次図で説明するように、ユーザグループ毎に特定のノードコントローラ装置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:30」(30分)を、派生先の仮想マシンの数「2」で除算して、商「0:15」(15分)を得る。そして、優先順位決定部421は、派生先の仮想マシンVM1−1の使用時間「1:30」(1時間30分)に、算出した15分を加えて、仮想マシンVM1−1の重み付けされた使用時間を「1:45」(1時間45分)としている。同様に、優先順位決定部421は、派生先の仮想マシンVMの使用時間「1:00」(1時間)に対して、重み付けされた使用時間を「1:15」(1時間15分)としている。
また、仮想マシンVM1−1から仮想マシンVM1−1−1が派生しているように、1つの仮想マシンから1つの仮想マシンが派生している場合、優先順位決定部421は、派生元の仮想マシンの重み付けされた使用時間を派生先の仮想マシンの使用時間に加える重み付けを行っている。
図19の例では、優先順位決定部421は、派生元の仮想マシンVM1−1の重み付けされた使用時間「1:45」(1時間45分)を、派生先の仮想マシンVM1−1−1−の使用時間「2:00」(2時間)に加えて、仮想マシンVM1−1−1の重み付けされた使用時間を「3:45」(3時間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:30」(30分)を、派生先の仮想マシンの数「2」で除算して、商「0:15」(15分)を得る。
そして、優先順位決定部421は、算出した重みを派生先の各仮想マシンの使用時間に加算する(ステップS823)。
例えば、図19で説明したように、優先順位決定部421は、派生先の仮想マシンVM1−1の使用時間「1:30」(1時間30分)に、算出した15分を加えて、仮想マシンVM1−1の重み付けされた使用時間を「1:45」(1時間45分)とする。同様に、優先順位決定部421は、派生先の仮想マシンVMの使用時間「1:00」(1時間)に対して、重み付けされた使用時間を「1:15」(1時間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が、派生元の仮想マシンの使用時間を反映させ、派生先の仮想マシンの使用時間を長くする重み付けを行うことで、実行される可能性の高い仮想マシンの実行用データを予めノードコントローラ装置100(VMキャッシュ131)が取得しておくようにできる。
また、ノードコントローラ装置100は、ユーザに応じてグループ分けされており、グループ毎に、仮想マシンの実行用データをVMキャッシュ131が記憶する。
このように、ユーザに応じて使用可能なノードコントローラ装置100を特定しておくことで、各ユーザグループに対して使用可能なノードグループを確保できる。すなわち、あるユーザが仮想マシンを実行したいときに、他のユーザグループのユーザが仮想マシンを実行しているためにいずれのノードコントローラ装置100においても充分な資源を確保できず仮想マシンを実行できない事態を回避できる。
また、仮想マシン実行部121(図2)は、新たに生成された派生先の仮想マシンが未使用の場合にも、使用履歴情報を更新する(情報を書き込む)際に、新たに生成された派生先の仮想マシンについても、使用終了日等の情報を書き込む。これによって、優先順位決定部421が、仮想マシンの実行用データをVMキャッシュ131が記憶する優先順位を決定する際に、派生先の仮想マシンの優先順位を高くすることができる。
また、仮想マシン実行部121は、使用履歴情報を更新する際に、新たに生成された派生先仮想マシンの使用終了日を派生元の仮想マシンの使用終了日よりも遅い日付にするなど、仮想マシンの優先順位を派生元の仮想マシンの優先順位よりも高くする内容の情報を書き込む。これによって、優先順位決定部421が、仮想マシンの実行用データをVMキャッシュ131が記憶する優先順位を決定する際に、派生先の仮想マシンの優先順位をさらに高くすることができる。
なお、コンピュータシステム1の全部または一部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより各部の処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。
また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、コンパクトディスク等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
以上、この発明の実施形態を図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計変更等も含まれる。
1 コンピュータシステム
100、100−1〜100−5 ノードコントローラ装置
110 通信部
120 処理部
121 仮想マシン実行部
122 データ有無判定部
130 記憶部
131 VMキャッシュ
200 ストレージ管理装置
300 ストレージサーバ装置
400 クラウドコントローラ装置
410 通信部
420 処理部
421 優先順位決定部
422 データ登録部
423 VM制御部
430 記憶部
500 ユーザ端末装置
900 ネットワーク

Claims (5)

  1. 仮想マシンを実行する実行装置と、
    前記実行装置の実行する仮想マシンの実行用データを記憶する記憶装置と、
    前記実行装置を制御する制御装置と、
    を具備するコンピュータシステムであって、
    前記実行装置は、
    仮想マシンの実行用データを記憶する第1記憶部と、
    仮想マシンの実行要求を受けると、当該実行要求で要求された仮想マシンの実行用データを前記第1記憶部が記憶しているか否かを判定するデータ有無判定部と、
    前記第1記憶部の記憶する前記実行要求で要求された仮想マシンの実行用データを用いて当該実行要求で要求された仮想マシンを実行する仮想マシン実行部と、
    を具備し、
    前記記憶装置は、
    仮想マシンの実行用データを記憶する第2記憶部と、
    前記データ有無判定部が、前記実行要求で要求された仮想マシンの実行用データを前記第1記憶部が記憶していないと判定すると、当該実行要求で要求された仮想マシンの実行用データを前記第2記憶部から取得して前記第1記憶部に記憶させるデータ転送部と、
    を具備し、
    前記制御装置は、
    仮想マシン毎に、当該仮想マシンの第1使用時間と、当該仮想マシンの実行用データを生成するために実行用データをコピーされたコピー元の仮想マシンの第2使用時間とに基づいて、当該仮想マシンの実行用データを前記第1記憶部に記憶させる優先順位を、前記第1使用時間と前記第2使用時間の和が大きいほど優先順位が高くなるように決定する優先順位決定部と、
    前記優先順位決定部の決定する前記優先順位に従って、前記優先順位が高い順に仮想マシンを選択し、選択した仮想マシンの実行用データを前記第1記憶部に記憶させるデータ登録部と、
    を具備することを特徴とするコンピュータシステム。
  2. 前記実行装置は、仮想マシンのユーザに応じてグループ分けされており、
    前記制御装置は、
    前記データ登録部は、前記実行装置のグループ毎に、前記優先順位決定部の決定する前記優先順位に従って、当該グループに属する実行装置の前記第1記憶部に、前記仮想マシンの実行用データを記憶させる
    ことを特徴とする請求項1に記載のコンピュータシステム。
  3. 前記制御装置は、仮想マシンの使用履歴を記憶する使用履歴記憶部と、
    コピー元の仮想マシンの実行用データをコピーして仮想マシンの実行用データが生成された場合に、前記コピー元の仮想マシンの使用終了時期を示す情報またはそれ以後の時期を示す情報を、実行用データが生成された仮想マシンの前記使用履歴における使用終了時刻の項目に書き込む制御部と、を具備し、
    前記優先順位決定部は、前記使用履歴に基づいて、前記優先順位を、前記使用終了時期の項目に書き込まれた情報が示す時期が遅いほど優先順位が高くなるように決定することを特徴とする請求項1または請求項2に記載のコンピュータシステム。
  4. 仮想マシンの実行用データを記憶する第1記憶部を具備して仮想マシンを実行する実行装置と、
    前記実行装置の実行する仮想マシンの実行用データを記憶する第記憶部を具備する記憶装置と、
    前記実行装置を制御する制御装置と、
    を具備するコンピュータシステムの仮想マシンデータ配置方法であって、
    前記実行装置のデータ有無判定部が、仮想マシンの実行要求を受けると、当該実行要求で要求された仮想マシンの実行用データを前記第1記憶部が記憶しているか否かを判定するデータ有無判定ステップと、
    前記実行装置の仮想マシン実行部が、前記第1記憶部の記憶する前記実行要求で要求された仮想マシンの実行用データを用いて当該実行要求で要求された仮想マシンを実行する仮想マシン実行ステップと、
    前記記憶装置のデータ転送部が、前記データ有無判定ステップにて、前記実行要求で要求された仮想マシンの実行用データを前記第1記憶部が記憶していないと判定すると、当該実行要求で要求された仮想マシンの実行用データを前記第2記憶部から取得して前記第1記憶部に記憶させるデータ転送ステップと、
    前記制御装置の優先順位決定部が、仮想マシン毎に、当該仮想マシンの第1使用時間と、当該仮想マシンの実行用データを生成するために実行用データをコピーされたコピー元の仮想マシンの第2使用時間とに基づいて、当該仮想マシンの実行用データを前記第1記憶部に記憶させる優先順位を、前記第1使用時間と前記第2使用時間の和が大きいほど優先順位が高くなるように決定する優先順位決定ステップと、
    前記制御装置のデータ登録部が、前記優先順位決定ステップにて決定する前記優先順位に従って、前記優先順位が高い順に仮想マシンを選択し、選択した仮想マシンの実行用データを前記第1記憶部に記憶させるデータ登録ステップと、
    を具備することを特徴とする仮想マシンデータ配置方法。
  5. 仮想マシンの実行用データを記憶する第1記憶部を具備して仮想マシンを実行する実行装置と、
    前記実行装置の実行する仮想マシンの実行用データを記憶する第記憶部を具備する記憶装置と、
    前記実行装置を制御する制御装置と、
    を具備するコンピュータシステムに、
    前記実行装置のデータ有無判定部が、仮想マシンの実行要求を受けると、実行要求で要求された仮想マシンの実行用データを前記第1記憶部が記憶しているか否かを判定するデータ有無判定ステップと、
    前記実行装置の仮想マシン実行部が、前記第1記憶部の記憶する前記実行要求で要求された仮想マシンの実行用データを用いて当該実行要求で要求された仮想マシンを実行する仮想マシン実行ステップと、
    前記記憶装置のデータ転送部が、前記データ有無判定ステップにて、前記実行要求で要求された仮想マシンの実行用データを前記第1記憶部が記憶していないと判定すると、当該実行要求で要求された仮想マシンの実行用データを前記第2記憶部から取得して前記第1記憶部に記憶させるデータ転送ステップと、
    前記制御装置の優先順位決定部が、仮想マシン毎に、当該仮想マシンの第1使用時間と、当該仮想マシンの実行用データを生成するために実行用データをコピーされたコピー元の仮想マシンの第2使用時間とに基づいて、当該仮想マシンの実行用データを前記第1記憶部に記憶させる優先順位を、前記第1使用時間と前記第2使用時間の和が大きいほど優先順位が高くなるように決定する優先順位決定ステップと、
    前記制御装置のデータ登録部が、前記優先順位決定ステップにて決定する前記優先順位に従って、前記優先順位が高い順に仮想マシンを選択し、選択した仮想マシンの実行用データを前記第1記憶部に記憶させるデータ登録ステップと、
    を実行させるためのプログラム。
JP2011128261A 2011-06-08 2011-06-08 コンピュータシステム、仮想マシンデータ配置方法およびプログラム Active JP5566342B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011128261A JP5566342B2 (ja) 2011-06-08 2011-06-08 コンピュータシステム、仮想マシンデータ配置方法およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011128261A JP5566342B2 (ja) 2011-06-08 2011-06-08 コンピュータシステム、仮想マシンデータ配置方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2012256165A JP2012256165A (ja) 2012-12-27
JP5566342B2 true JP5566342B2 (ja) 2014-08-06

Family

ID=47527685

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011128261A Active JP5566342B2 (ja) 2011-06-08 2011-06-08 コンピュータシステム、仮想マシンデータ配置方法およびプログラム

Country Status (1)

Country Link
JP (1) JP5566342B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5626937B1 (ja) * 2013-06-04 2014-11-19 日本電信電話株式会社 リソース提供装置、リソース提供方法、およびリソース提供システム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4050249B2 (ja) * 2004-05-20 2008-02-20 株式会社エヌ・ティ・ティ・データ 仮想マシン管理システム
JP4650203B2 (ja) * 2005-10-20 2011-03-16 株式会社日立製作所 情報システム及び管理計算機
JP4129988B2 (ja) * 2005-11-10 2008-08-06 インターナショナル・ビジネス・マシーンズ・コーポレーション リソースのプロビジョニング方法
US20070271560A1 (en) * 2006-05-18 2007-11-22 Microsoft Corporation Deploying virtual machine to host based on workload characterizations
US9262366B2 (en) * 2007-09-21 2016-02-16 Microsoft Technology Licensing, Llc Software deployment in large-scale networked systems
JP2009194692A (ja) * 2008-02-15 2009-08-27 Ntt Docomo Inc 遠隔デバイス利用システム
JP5541908B2 (ja) * 2009-11-26 2014-07-09 株式会社野村総合研究所 データセンター構成管理システム

Also Published As

Publication number Publication date
JP2012256165A (ja) 2012-12-27

Similar Documents

Publication Publication Date Title
Prem Jacob et al. A multi-objective optimal task scheduling in cloud environment using cuckoo particle swarm optimization
JP5850044B2 (ja) 情報処理装置、分散ファイルシステム、クライアント装置、情報処理方法、および、コンピュータ・プログラム
CN108009016B (zh) 一种资源负载均衡控制方法及集群调度器
KR102281739B1 (ko) 리소스 스케줄링 방법, 스케줄링 서버, 클라우드 컴퓨팅 시스템, 및 저장 매체
Ge et al. GA-based task scheduler for the cloud computing systems
JP2022160544A (ja) 計算機システム及び方法
Chang et al. An adaptive scoring job scheduling algorithm for grid computing
US20140351636A1 (en) Method, device, and system for data reconstruction
JP5182095B2 (ja) 資源情報提供システム、方法、資源情報提供装置、およびプログラム
JP5707265B2 (ja) 演算制御装置及び演算制御方法並びにプログラム、並列プロセッサ
JP2004280485A (ja) 計算機システム
JP2005056391A (ja) コンピューティング環境の作業負荷を均衡させる方法およびシステム
JP5385458B2 (ja) 計算機システムおよびその更改方法
JP2007193806A (ja) マルチクラスタ・アプリケーション特有の経路指定を行うための方法、システム及びプログラム
JPWO2011071104A1 (ja) 分散ファイルシステム、そのデータ選択方法およびプログラム
Swathy et al. Game theoretical approach for load balancing using SGMLB model in cloud environment
JP2021140306A (ja) メモリシステムおよび制御方法
JP5566342B2 (ja) コンピュータシステム、仮想マシンデータ配置方法およびプログラム
JP6011786B2 (ja) 分散ストレージシステム、分散ストレージデータ配置制御方法及び分散ストレージデータ配置制御用プログラム
JP2022112614A (ja) リソースの移動スケジュールを決定する装置
JP2009289161A (ja) クラスタ型ストレージシステム、そのノード装置、データの読み出しおよび書き込み制御方法およびそのプログラム
JP2014229088A (ja) データ処理システム、データ処理装置および記憶媒体
KR20200072128A (ko) 라이브 서비스를 위한 분산 파일 시스템 및 파일 관리 방법
JP2008186141A (ja) データ管理方法、データ管理プログラム、データ管理システム、および、構成管理装置
CN106709597A (zh) 基于人工蜂群算法的并行优化处理tsp问题的方法及装置

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20130516

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20130816

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130828

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140224

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140304

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140425

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140527

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140617

R150 Certificate of patent or registration of utility model

Ref document number: 5566342

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350