JP5626937B1 - リソース提供装置、リソース提供方法、およびリソース提供システム - Google Patents

リソース提供装置、リソース提供方法、およびリソース提供システム Download PDF

Info

Publication number
JP5626937B1
JP5626937B1 JP2013117799A JP2013117799A JP5626937B1 JP 5626937 B1 JP5626937 B1 JP 5626937B1 JP 2013117799 A JP2013117799 A JP 2013117799A JP 2013117799 A JP2013117799 A JP 2013117799A JP 5626937 B1 JP5626937 B1 JP 5626937B1
Authority
JP
Japan
Prior art keywords
image
activation
boot
physical machine
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
JP2013117799A
Other languages
English (en)
Other versions
JP2014235644A (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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2013117799A priority Critical patent/JP5626937B1/ja
Application granted granted Critical
Publication of JP5626937B1 publication Critical patent/JP5626937B1/ja
Publication of JP2014235644A publication Critical patent/JP2014235644A/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】仮想サーバの起動に伴うリードタイムを短縮する。【解決手段】リソース提供装置20は、起動指示を受け付ける起動指示受付部23と、当該起動指示で指定される起動イメージを特定する起動イメージ特定部24と、特定された起動イメージに基づくインスタンスを生成させる物理マシンを選択する選択部25と、物理マシンIDに対応付けて、物理マシンで稼働中のインスタンスが起動時に参照した起動イメージの起動IDを格納する稼働テーブルを保持する稼働テーブル保持部22と、選択された物理マシンに、特定された起動IDに対応する起動イメージを参照して仮想マシンを起動させると共に、当該物理マシンIDに対応付けて、当該起動IDを稼働テーブルに登録する起動指示部26とを備え、選択部25は、稼働テーブルを参照して、特定された起動IDが対応付けられている物理マシンを選択する。【選択図】図4

Description

本発明は、リソース提供装置、リソース提供方法、およびリソース提供システムに関する。
近年急速に普及が進んでいるIaaS(Infrastructure as a Service)等のクラウドサービスにおいて、仮想マシンをインスタンス単位で貸し出し、利用した時間に応じて課金を行うサービスが知られている(例えば、下記非特許文献1参照)。このサービスでは、利用者は、必要なときに、必要な性能の仮想サーバを必要な数だけ利用することができる。
これにより、ユーザは、自社でサーバ等の設備を用意する形態(オンプレミス環境)とは比べものにならないほど柔軟にリソース量の増減を行うことができる。
amazon web services、″Amazon EC2 料金表″、[online]、[平成25年3月21日検索]、インターネット〈URL:http://aws.amazon.com/jp/ec2/pricing/#on-demand〉
しかしながら、必要なときに必要な数の仮想サーバを利用可能であるとはいっても、仮想サーバの利用申請を行ってから、仮想サーバが実際に利用可能になるまでには一定の待ち時間(リードタイム)が存在する。
負荷変動が予測可能であれば、リードタイムを見越してサーバ数を予め増やしておくことが可能であるが、負荷変動を正確に予測することは容易ではない。そのため、突発的に負荷が上昇した場合には、リードタイムの間はサーバの数が不足し、過負荷状態に陥ることになる。過負荷状態では、サービスの提供に支障が生じるため、リードタイムが長いほど、機会損失のリスクが高まる。
そこで、この発明は、上述した従来技術の課題を解決するためになされたものであり、仮想サーバの起動に伴うリードタイムを短縮することを目的とする。
上記課題を解決するための本発明の第一の態様は、例えば、仮想マシンのインスタンス単位で計算機リソースを提供するリソース提供装置であって、仮想マシンを起動してインスタンスを生成する際に参照される起動イメージを指定する起動指示を外部から受け付ける起動指示受付部と、複数の異なる起動イメージの中から、前記起動指示で指定される起動イメージを特定する起動イメージ特定部と、計算機リソースを提供する物理マシンであって、前記起動イメージ特定部によって特定された前記起動イメージを参照して仮想マシンを起動させる物理マシンを選択する選択部と、それぞれの物理マシンの識別情報に対応付けて、当該物理マシンで稼働中のインスタンスの生成時に参照された起動イメージの識別情報を格納する稼働テーブルを保持するテーブル保持部と、前記選択部によって選択された前記物理マシンへ、前記起動イメージ特定部によって特定された起動イメージの識別情報を送信して、当該物理マシンに当該起動イメージを参照して仮想マシンを起動させると共に、当該物理マシンの識別情報に対応付けて、当該起動イメージの識別情報を前記稼働テーブルに登録する起動指示部とを備え、前記選択部は、前記稼働テーブルを参照して、前記起動イメージ特定部によって特定された起動イメージの識別情報が対応付けられている物理マシンを、当該起動イメージで仮想マシンを起動させる物理マシンとして選択する。
また、本発明の第二の態様は、例えば、仮想マシンのインスタンス単位で計算機リソースを提供するリソース提供装置で実行されるリソース提供方法であって、仮想マシンを起動してインスタンスを生成する際に参照される起動イメージを指定する起動指示を外部から受け付ける起動指示受付工程と、複数の異なる起動イメージの中から、前記起動指示で指定される起動イメージを特定する起動イメージ特定工程と、計算機リソースを提供する物理マシンであって、前記起動イメージ特定工程において特定した前記起動イメージを参照して仮想マシンを起動させる物理マシンを選択する選択工程と、前記選択工程において選択した前記物理マシンへ、前記起動イメージ特定工程において特定した起動イメージの識別情報を送信して、当該物理マシンに当該起動イメージを参照して仮想マシンを起動させると共に、当該物理マシンの識別情報に対応付けて、当該起動イメージの識別情報を稼働テーブルに登録する起動指示工程とを含み、前記選択工程では、前記稼働テーブルを参照して、前記起動イメージ特定工程において特定した起動イメージの識別情報が対応付けられている物理マシンを、当該起動イメージで仮想マシンを起動させる物理マシンとして選択する。
また、本発明の第三の態様は、例えば、仮想マシンのインスタンス単位で計算機リソースを提供するリソース提供システムであって、データベースと、リソース提供装置と、計算機リソースを提供する複数の物理マシンとを備え、前記データベースは、仮想マシンを起動してインスタンスを生成する際に参照される起動イメージであって、複数の異なる起動イメージを格納し、前記リソース提供装置は、起動イメージを指定する起動指示を外部から受け付ける起動指示受付部と、複数の異なる起動イメージの中から、前記起動指示で指定される起動イメージを特定する起動イメージ特定部と、特定された前記起動イメージを参照して仮想マシンを起動させる物理マシンを選択する選択部と、それぞれの物理マシンの識別情報に対応付けて、当該物理マシンで稼働中のインスタンスの生成時に参照された起動イメージの識別情報を格納する稼働テーブルを保持するテーブル保持部と、前記選択部によって選択された前記物理マシンへ、前記起動イメージ特定部によって特定された起動イメージの識別情報を送信すると共に、当該物理マシンの識別情報に対応付けて、当該起動イメージの識別情報を前記稼働テーブルに登録する起動指示部とを有し、前記複数の物理マシンのそれぞれは、前記リソース提供装置から受け取った識別情報に対応する起動イメージを、前記データベースから取得して、当該物理マシン内の一時メモリに格納する起動イメージ取得部と、前記リソース提供装置から起動イメージの識別情報を受け取った場合に、当該識別情報に対応する起動イメージを前記一時メモリから読み出し、読み出した起動イメージに基づいて仮想マシンを起動してインスタンスを生成する起動処理部とを有し、前記選択部は、前記稼働テーブルを参照して、前記起動イメージ特定部によって特定された起動イメージの識別情報が対応付けられている物理マシンを、当該起動イメージで仮想マシンを起動させる物理マシンとして選択し、前記起動処理部は、前記リソース提供装置から起動イメージの識別情報を受け取った場合に、当該識別情報に対応する起動イメージが前記一時メモリ内に存在しなければ、当該起動イメージの取得を前記起動イメージ取得部に指示する。
本発明によれば、仮想サーバの起動に伴うリードタイムを短縮することができる。
図1は、本発明の一実施形態におけるリソース提供システムの構成の一例を示すシステム構成図である。 図2は、データベースサーバの機能構成の一例を示すブロック図である。 図3は、第1の実施形態において起動イメージ格納部に格納されるデータの構造の一例を示す図である。 図4は、リソース提供装置の機能構成の一例を示すブロック図である。 図5は、第1の実施形態において起動イメージ管理テーブル保持部に格納される起動イメージ管理テーブルのデータ構造の一例を示す図である。 図6は、第1の実施形態において稼働テーブル保持部に格納される稼働テーブルのデータ構造の一例を示す図である。 図7は、第1の実施形態における選択データの構造の一例を示す図である。 図8は、物理マシンの機能構成の一例を示すブロック図である。 図9は、第1の実施形態において一時メモリに格納される管理テーブルのデータ構造の一例を示す図である。 図10は、第1の実施形態におけるリソース提供装置の動作の一例を示すフローチャートである。 図11は、物理マシンIDの特定処理(S200)の一例を示すフローチャートである。 図12は、第1の実施形態における物理マシンの動作の一例を示すフローチャートである。 図13は、第2の実施形態において起動イメージ格納部内に格納される差分イメージテーブルのデータ構造の一例を示す図である。 図14は、第2の実施形態において起動イメージ格納部内に格納されるベースイメージテーブルのデータ構造の一例を示す図である。 図15は、第2の実施形態において起動イメージ管理テーブル保持部内に格納される起動イメージ管理テーブルのデータ構造の一例を示す図である。 図16は、第2の実施形態において稼働テーブル保持部に格納される稼働テーブルのデータ構造の一例を示す図である。 図17は、第2の実施形態における選択データの構造の一例を示す図である。 図18は、第2の実施形態において一時メモリ内に格納される管理テーブルのデータ構造の一例を示す図である。 図19は、第2の実施形態において一時メモリ内に格納されるベースイメージテーブルのデータ構造の一例を示す図である。 図20は、第2の実施形態におけるリソース提供装置の動作の一例を示すフローチャートである。 図21は、物理マシンIDの特定処理(S500)の一例を示すフローチャートである。 図22は、第2の実施形態における物理マシンの動作の一例を示すフローチャートである。 図23は、リソース提供装置の機能を実現するコンピュータの一例を示すハードウェア構成図である。
まず、本発明の第1の実施形態について、図面を参照しながら説明する。
図1は、本発明の一実施形態におけるリソース提供システム10の構成の一例を示すシステム構成図である。リソース提供システム10は、リソース提供装置20、データベースサーバ30、および複数の物理マシン40−1〜40−nを備える。リソース提供装置20、データベースサーバ30、および複数の物理マシン40は、それぞれ、通信回線11に接続され、通信回線11を介して通信データを送受信する。
リソース提供装置20は、ユーザが操作するユーザ端末12−1〜12−nのいずれかから、仮想マシンのインスタンスの仕様を特定する情報を含む起動指示を受信した場合に、指定された仕様を満たす仮想マシンのインスタンスを生成する際に参照すべき起動イメージを特定する。そして、リソース提供装置20は、特定した起動イメージの識別情報を、通信回線11を介して、計算機リソースとしてのいずれかの物理マシン40へ送信する。
データベースサーバ30は、それぞれの起動イメージのデータを格納している。リソース提供装置20から起動イメージの識別情報を受信した物理マシン40は、当該識別情報で特定される起動イメージのデータを、通信回線11を介してデータベースサーバ30から取得する。そして、物理マシン40は、取得した起動イメージ本体のデータを参照して、仮想マシンのインスタンスを生成し、生成したインスタンスを実行する。
ここで、本実施形態におけるリソース提供システム10において、リソース提供装置20は、起動イメージの識別情報と、その送信先の物理マシン40の情報とを対応付けて履歴として保持する。そして、リソース提供装置20は、起動イメージの識別情報を送信する際に、当該履歴を参照して、当該起動イメージの識別情報を過去に送ったことのある物理マシン40を特定する。そして、リソース提供装置20は、当該起動イメージの識別情報を、特定した物理マシン40へ優先的に送信する。
起動イメージの識別情報を過去に送信したことのある物理マシン40であれば、当該識別情報に対応する起動イメージのデータを、データベースサーバ30から過去に少なくとも1度は取得したことがある。そのため、物理マシン40のキャッシュ等のメモリ内には、当該起動イメージのデータが残っている可能性がある。
当該起動イメージのデータがメモリ内に残っていれば、物理マシン40は、当該データをデータベースサーバ30から取得しなくても、メモリ内の起動イメージを参照して、仮想マシンのインスタンスを生成することが可能である。そのため、起動イメージのデータの転送にかかる転送時間を省くことができ、仮想マシンのインスタンスの稼働開始までにかかるリードタイムを削減することが可能となる。
以下では、このような機能を実現するための各部の詳細な構成について、さらに詳しく説明する。
図2は、データベースサーバ30の機能構成の一例を示すブロック図である。データベースサーバ30は、起動イメージ格納部31およびデータ送受信部32を有する。
図3は、第1の実施形態において起動イメージ格納部31に格納されるデータの構造の一例を示す。本実施形態における起動イメージ格納部31には、例えば図3に示すように、それぞれの起動イメージを識別する起動ID310に対応づけて、当該起動イメージの起動イメージ本体311のデータが予め格納されている。図3に例示した起動イメージ格納部31では、例えば、「A001」の起動ID310に対応付けて、「aaaa」の起動イメージ本体311のデータが格納されている。
データ送受信部32は、通信回線11を介して物理マシン40から、起動IDを含む起動イメージ取得要求を受信した場合に、当該起動IDに対応付けられている起動イメージ本体のデータを起動イメージ格納部31から抽出する。そして、データ送受信部32は、抽出した起動イメージ本体のデータを、起動イメージ取得要求の送信元の物理マシン40へ通信回線11を介して送信する。
図4は、リソース提供装置20の機能構成の一例を示すブロック図である。リソース提供装置20は、起動イメージ管理テーブル保持部21、稼働テーブル保持部22、起動指示受付部23、起動イメージ特定部24、選択部25、および起動指示部26を有する。
起動イメージ管理テーブル保持部21は、起動イメージ管理テーブルを保持する。図5は、起動イメージ管理テーブル保持部21に格納される起動イメージ管理テーブル210のデータ構造の一例を示す。起動イメージ管理テーブル210には、例えば、図5に示すように、それぞれの起動イメージを識別する起動ID211に対応付けて、当該起動イメージの仕様を特定するための複数の仕様項目212が格納される。
仕様項目212としては、例えば、それぞれの機能を個別に特定する情報、処理能力、バージョン等の項目が考えられる。仕様項目212において、「1」が設定されている場合、対応する起動IDの起動イメージがその仕様項目を満たしていることを示し、「0」が設定されている場合、対応する起動IDの起動イメージがその仕様項目を満たしていないことを示している。
図5に例示した起動イメージ管理テーブル210では、例えば、「A001」の起動ID211に対応付けて、「仕様項目1」の欄に「1」が設定され、「仕様項目2」および「仕様項目3」の欄にそれぞれ「0」が設定されている。
稼働テーブル保持部22は、稼働テーブルを保持する。図6は、第1の実施形態において稼働テーブル保持部22に格納される稼働テーブル220のデータ構造の一例を示す。稼働テーブル220には、例えば、図6に示すように、それぞれの物理マシン40を識別する物理マシンID221に対応付けて、個別テーブル222が格納される。
それぞれの個別テーブル222には、仮想マシンID223に対応付けて、起動ID224、稼働フラグ225、および起動時刻226が格納される。仮想マシンID223は、それぞれの仮想マシンのインスタンスを識別する情報である。起動ID224は、仮想マシンID223に対応するインスタンスの生成時に参照された起動イメージを識別する情報である。稼働フラグ225は、対応するインスタンスが稼働中か否かを示す情報であり、「1」は稼働中を示し、「0」は稼働終了を示す。起動時刻226は、対応するインスタンスが生成された時刻を示す情報である。
図6に例示した稼働テーブル220では、例えば、「M001」の物理マシンID221に対応付けて、個別テーブル222が格納されており、当該個別テーブル222には、例えば、「V001」の仮想マシンID223に対応付けて、「A001」の起動ID224と、「1」の稼働フラグ225と、「2013/5/20/17:30:20」の起動時刻226とが対応付けられている。
図4に戻って説明を続ける。起動指示受付部23は、通信回線11を介してユーザ端末12から、仮想マシンのインスタンスの仕様を特定する仕様項目を1つ以上含む起動指示を受信した場合に、当該インスタンスに仮想マシンIDを割り当てる。そして、起動指示受付部23は、受信した起動指示に含まれる仕様項目を、割り当てた仮想マシンIDと共に起動イメージ特定部24へ送る。
起動イメージ特定部24は、起動指示受付部23から仮想マシンIDと共に仕様項目を受け取った場合に、起動イメージ管理テーブル保持部21内の起動イメージ管理テーブル210を参照し、起動指示受付部23から受け取った仕様項目に「1」が設定されている起動IDを1つ以上特定する。そして、起動イメージ特定部24は、特定した1つ以上の起動IDを、起動指示受付部23から受け取った仮想マシンIDと共に選択部25へ送る。
ここで、ユーザ端末12のユーザは、仮想マシンのインスタンスの仕様を特定する場合に、全ての項目について必ずしも詳細に指定する必要はなく、ユーザが必要とする項目(例えば、必要な機能や処理能力)についてのみ、対応する仕様項目を指定すればよい。ユーザによって指定されなかったその他の項目(例えば、メーカやバージョン等)については、リソース提供装置20において、いずれであってもよいという旨の指定と解釈される。
そのため、起動イメージ特定部24は、起動指示受付部23から受け取った仕様項目に「1」が設定されている起動IDであれば、それ以外の仕様項目については「0」または「1」のいずれが設定されていても、当該起動IDを起動イメージ管理テーブル210内で特定する。
選択部25は、起動イメージ特定部24から仮想マシンIDと共に1つ以上の起動IDを受け取った場合に稼働テーブル保持部22内の稼働テーブル220を参照し、起動イメージ特定部24から受け取ったそれぞれの起動IDについて、当該起動IDが含まれている個別テーブル222を検索する。
当該起動IDが含まれている個別テーブル222が稼働テーブル220内に存在する場合、選択部25は、当該個別テーブル222を参照して、当該起動IDに対応付けられている稼働フラグおよび起動時刻を抽出する。そして、選択部25は、当該個別テーブル222が対応付けられている物理マシンIDを、稼働テーブル220を参照して特定し、先に抽出した稼働フラグおよび起動時刻と共に、起動IDに対応付けて選択データとして保持する。
図7は、本実施形態において選択部25が保持する選択データ50の構造の一例を示す。選択データ50には、例えば図7に示すように、複数のレコード55が格納される。各レコード55には、起動ID51、稼働フラグ52、起動時刻53、および物理マシンID54が格納される。起動ID51は、それぞれの起動イメージを識別する情報である。
稼働フラグ52は、起動ID51に対応する起動イメージに基づいて起動したインスタンスが稼働中か否かを示す情報であり、「1」は稼働中を示し、「0」は稼働終了を示す。起動時刻53は、対応するインスタンスが生成された時刻を示す。物理マシンID54は、対応するインスタンスが実行された、または、されている物理マシン40の識別情報である。
図7に例示した選択データ50内の1つのレコード55では、例えば、「A001」の起動ID51と、「1」の稼働フラグ52と、「2013/5/20/17:30:20」の起動時刻53と、「M001」の物理マシンID54とが格納されている。
次に、選択部25は、選択データ50内の各レコード55を参照して、稼働フラグ52に「1」が設定されているレコード55を特定する。そして、選択部25は、特定したレコードの中で、最新の起動時刻53を含むレコード55を1つ特定する。
一方、稼働フラグ52に「1」が設定されているレコード55が選択データ50内に存在しない場合、選択部25は、稼働フラグ52に「0」が設定されているレコード55の中で、最新の起動時刻53を含むレコード55を1つ特定する。
そして、選択部25は、特定したレコードに含まれている起動IDおよび物理マシンIDを、起動イメージ特定部24から受け取った仮想マシンIDと共に、起動指示部26へ送る。
なお、起動イメージ特定部24から受け取った起動IDが含まれている個別テーブル222が稼働テーブル220内に存在しない場合、選択部25は、物理マシン40を任意に1つ選択し、選択した物理マシン40の物理マシンIDを特定し、起動イメージ特定部24から受け取った起動IDの中で起動IDを任意に1つ特定する。
なお、物理マシン40を任意に1つ選択する場合、選択部25は、例えば、複数の物理マシン40の負荷状況を監視して、負荷の低い物理マシン40を優先的に選択するようにしてもよい。また、起動IDを任意に1つ特定する場合、選択部25は、起動イメージの参照回数を起動イメージ毎に記録し、起動イメージ特定部24から受け取った起動IDの中で、参照回数が多い起動イメージの起動IDを優先的に特定するようにしてもよい。
起動指示部26は、選択部25から、起動ID、物理マシンID、および仮想マシンIDを受け取った場合に、当該物理マシンIDに対応する物理マシン40へ、受け取った起動IDおよび仮想マシンIDを含む起動指示を、通信回線11を介して送信する。
そして、起動指示部26は、稼働テーブル保持部22内の稼働テーブル220を参照して、選択部25から受け取った物理マシンIDに対応付けられている個別テーブル222を特定する。そして、起動指示部26は、特定した個別テーブル222内に、選択部25から受け取った仮想マシンIDに対応付けて、選択部25から受け取った起動IDを登録し、「1」の稼働フラグおよび起動時刻を登録する。
ここで、起動指示部26は、起動指示を物理マシン40へ送信した時刻を起動時刻として登録するが、送信した起動指示に含まれている起動IDに基づく仮想マシンのインスタンスが実際に起動した時刻を、送信先の物理マシン40から受け付けて、その時刻を起動時刻として登録するようにしてもよい。
また、通信回線11を介して物理マシン40から、物理マシンIDおよび仮想マシンIDを含む稼働終了通知を受信した場合、起動指示部26は、当該稼働終了通知に含まれている物理マシンIDに対応付けられている個別テーブル222を稼働テーブル220内で特定する。そして、起動指示部26は、特定した個別テーブル222において、当該稼働終了通知に含まれている仮想マシンIDに対応付けられている稼働フラグに「0」を設定する。
図8は、物理マシン40の機能構成の一例を示すブロック図である。物理マシン40は、起動イメージ取得部41、一時メモリ42、および起動処理部43を有する。
一時メモリ42には、管理テーブル420が格納される。図9は、第1の実施形態において一時メモリ42内の管理テーブル420に格納されるデータ構造の一例を示す。管理テーブル420には、例えば図9に示すように、それぞれの起動イメージを識別する起動ID421に対応付けて、当該起動イメージの起動イメージ本体422と、当該起動イメージを最後に参照した参照時刻423とが格納される。管理テーブル420は、例えば、物理マシン40のキャッシュメモリ内に構築される。
図9に例示した管理テーブル420では、例えば、「A002」の起動ID421に対応付けて、「bbbb」の起動イメージ本体422と、「2013/5/20/17:10:20」の参照時刻423とが格納されている。
ここで、物理マシン40のメモリ使用量が多くなると、管理テーブル420内の参照時刻423の古い順に、起動ID421、起動イメージ本体422、および参照時刻423のデータが、管理テーブル420内から削除される。しかし、新しい参照時刻423に対応付けられている起動イメージ本体422のデータであれば、管理テーブル420内に残っている可能性が高い。
また、物理マシン40のメモリ使用量があまり高くない状態で運用されていれば、古い参照時刻423に対応付けられている起動イメージ本体422のデータであっても、一時メモリ42内に長期間残っている可能性もある。そのため、物理マシン40内で、過去に起動イメージ本体のデータに基づいて仮想マシンを起動していれば、同じ物理マシン40内の管理テーブル420内には、同一の起動イメージ本体のデータが残っている可能性がある。
起動イメージ取得部41は、起動処理部43から起動IDを受け取った場合に、当該起動IDを含む起動イメージ取得要求を通信回線11を介してデータベースサーバ30へ送信する。そして、データベースサーバ30から起動イメージ本体のデータを受信した場合、起動イメージ取得部41は、データベースサーバ30から受信した起動イメージ本体のデータを、当該起動イメージの起動IDに対応付けて一時メモリ42内の管理テーブル420に格納する。なお、この段階では、当該起動IDに対応付けられている参照時刻の欄は空欄となっている。
起動処理部43は、通信回線11を介してリソース提供装置20から起動指示を受信した場合に、当該起動指示に含まれている起動IDに基づいて一時メモリ42内の管理テーブル420を参照し、当該起動IDに対応する起動イメージ本体のデータが管理テーブル420内に格納されているか否かを判定する。
当該起動IDに対応する起動イメージ本体のデータが管理テーブル420内に格納されている場合、起動処理部43は、当該起動イメージ本体のデータを管理テーブル420から取得する。そして、起動処理部43は、当該起動IDに対応付けられて管理テーブル420内に格納されている参照時刻423を、現在の時刻で書き換える。
一方、当該起動IDに対応する起動イメージ本体のデータが管理テーブル420内に格納されていない場合、起動処理部43は、当該起動IDを起動イメージ取得部41へ送る。そして、管理テーブル420内に、当該起動IDと、当該起動IDに対応する起動イメージ本体のデータとが新たに登録された場合、起動処理部43は、新たに登録された起動イメージ本体のデータを管理テーブル420から取得する。そして、起動処理部43は、管理テーブル420において、新たに登録された起動IDに対応付けられている参照時刻423の欄に、現在の時刻を設定する。
次に、起動処理部43は、取得した起動イメージ本体のデータに基づいて仮想マシンを起動し、インスタンスを生成する。そして、起動処理部43は、生成したインスタンスを実行し、当該インスタンスの稼働状態を、リソース提供装置20から受信した起動指示に含まれている仮想マシンIDに対応付けて管理する。
そして、当該インスタンスの実行が終了した場合、起動処理部43は、当該インスタンスに対応する仮想マシンIDと、自装置の物理マシンIDとを含む稼働終了通知を作成し、作成した稼働終了通知を、通信回線11を介してリソース提供装置20へ送信する。
図10は、第1の実施形態におけるリソース提供装置20の動作の一例を示すフローチャートである。リソース提供装置20は、例えば起動後に本フローチャートに示す動作を開始する。
まず、起動指示受付部23は、通信回線11を介して起動指示を受信したか否かを判定する(S100)。起動指示を受信した場合(S100:Yes)、起動指示受付部23は、受信した起動指示に応じて生成されるべきインスタンスに仮想マシンIDを割り当てる。そして、起動指示受付部23は、受信した起動指示に含まれている仕様項目を、割り当てた仮想マシンIDと共に、起動イメージ特定部24へ送る。
起動イメージ特定部24は、起動イメージ管理テーブル保持部21内の起動イメージ管理テーブル210を参照して、起動指示受付部23から受け取った仕様項目に「1」が設定されている起動IDを1つ以上特定する(S101)。そして、起動イメージ特定部24は、特定した1つ以上の起動IDを、起動指示受付部23から受け取った仮想マシンIDと共に選択部25へ送る。
次に、選択部25は、後述する物理マシンIDの特定処理を実行し、起動IDおよび物理マシンIDを特定し、起動イメージ特定部24から受け取った仮想マシンIDと共に、特定した起動IDおよび物理マシンIDを起動指示部26へ送る(S200)。
次に、起動指示部26は、選択部25から受け取った起動IDおよび仮想マシンIDを、選択部25から受け取った物理マシンIDに対応する物理マシン40へ、通信回線11を介して送信する(S102)。そして、起動指示部26は、稼働テーブル保持部22内の稼働テーブル220を参照して、選択部25から受け取った物理マシンIDに対応付けられている個別テーブル222を特定する。
そして、起動指示部26は、特定した個別テーブル222内に、選択部25から受け取った仮想マシンIDに対応付けて、選択部25から受け取った起動IDを登録し、稼働中を示す稼働フラグおよび起動時刻を登録する(S103)。そして、起動指示受付部23は、再びステップS100に示した処理を実行する。
一方、起動指示を受信していない場合(S100:No)、起動指示部26は、通信回線11を介して物理マシン40から、稼働終了通知を受信したか否かを判定する(S104)。稼働終了通知を受信していない場合(S104:No)、起動指示受付部23は、再びステップS100に示した処理を実行する。
稼働終了通知を受信した場合(S104:Yes)、起動指示部26は、当該稼働終了通知に含まれている物理マシンIDに対応付けられている個別テーブル222を稼働テーブル220内で特定する。そして、起動指示部26は、特定した個別テーブル222において、当該稼働終了通知に含まれている仮想マシンIDに対応付けられている稼働フラグを、稼働終了を示す値「0」に書き換える(S105)。そして、起動指示受付部23は、再びステップS100に示した処理を実行する。
図11は、物理マシンIDの特定処理(S200)の一例を示すフローチャートである。
まず、選択部25は、起動イメージ特定部24から受け取った1つ以上の起動IDに基づいて、選択データ(図7参照)を作成する(S201)。より詳細には、選択部25は、起動イメージ特定部24から受け取ったそれぞれの起動IDについて、稼働テーブル保持部22内の稼働テーブル220を参照し、当該起動IDが含まれている個別テーブル222を検索する。
起動イメージ特定部24から受け取ったそれぞれの起動IDについて、当該起動IDが含まれている個別テーブル222が稼働テーブル220内に存在する場合、選択部25は、当該個別テーブル222を参照して、当該起動IDに対応付けられている稼働フラグおよび起動時刻を抽出する。そして、選択部25は、当該個別テーブル222が対応付けられている物理マシンIDを稼働テーブル220を参照して特定し、先に抽出した稼働フラグおよび起動時刻と共に、起動IDに対応付けて選択データを作成する(S201)。
なお、起動イメージ特定部24から受け取ったいずれの起動IDについても、当該起動IDが含まれている個別テーブル222が稼働テーブル220内に存在しない場合、作成される選択データ、レコードが存在しない空のデータとなる。
次に、選択部25は、作成した選択データを参照して、選択データ内にレコードが存在するか否かを判定する(S202)。選択データ内にレコードが存在しない場合(S202:No)、選択部25は、起動イメージ特定部24から受け取った起動IDの中で起動IDを任意に1つ特定する。また、選択部25は、物理マシンIDを任意に1つ選択する(S203)。そして、選択部25は、本フローチャートに示した処理を終了する。
一方、選択データ内にレコードが存在する場合(S202:Yes)、選択部25は、選択データ内に、稼働中を示す稼働フラグを含むレコードが存在するか否かを判定する(S204)。稼働中を示す稼働フラグを含むレコードが選択データ内に存在する場合(S204:Yes)、選択部25は、稼働中を示す稼働フラグを含むレコードの中で、最新の起動時刻を含むレコードを1つ特定する(S205)。
一方、稼働中を示す稼働フラグを含むレコードが選択データ内に存在しない場合(S204:No)、選択部25は、稼働終了を示す稼働フラグを含むレコードの中で、最新の起動時刻を含むレコードを1つ特定する(S206)。
次に、選択部25は、特定したレコードに含まれている起動IDおよび物理マシンIDを、起動イメージ特定部24から受け取った仮想マシンIDと共に、起動指示部26へ送る(S207)。そして、選択部25は、本フローチャートに示した処理を終了する。
図12は、第1の実施形態における物理マシン40の動作の一例を示すフローチャートである。物理マシン40は、例えば起動後に本フローチャートに示す動作を開始する。
まず、起動処理部43は、通信回線11を介してリソース提供装置20から、起動IDおよび仮想マシンIDを含む起動指示を受信したか否かを判定する(S300)。起動指示を受信した場合(S300:Yes)、起動処理部43は、一時メモリ42内の管理テーブル420を参照して、当該起動指示に含まれている起動IDに対応する起動イメージ本体のデータが、管理テーブル420内に残っているか否かを判定する(S301)。
起動指示に含まれている起動IDに対応する起動イメージ本体のデータが、管理テーブル420内に残っていない場合(S301:No)、起動処理部43は、当該起動IDを起動イメージ取得部41へ送る。起動イメージ取得部41は、起動処理部43から起動IDを受け取った場合に、当該起動IDを含む起動イメージ取得要求を通信回線11を介してデータベースサーバ30へ送信する。
そして、データベースサーバ30から起動イメージ本体のデータを受信した場合、起動イメージ取得部41は、データベースサーバ30から受信した起動イメージ本体のデータを、当該起動イメージの起動IDに対応付けて一時メモリ42内の管理テーブル420に格納する(S302)。そして、起動処理部43は、ステップS303に示す処理を実行する。
一方、起動指示に含まれている起動IDに対応する起動イメージ本体のデータが、管理テーブル420内に残っている場合(S301:Yes)、起動処理部43は、当該起動IDに対応付けられている起動イメージ本体のデータを管理テーブル420から取得する。そして、起動処理部43は、当該起動IDに対応付けられて管理テーブル420内に格納されている参照時刻423を、現在の時刻で書き換える。
次に、起動処理部43は、取得した起動イメージ本体のデータに参照して仮想マシンを起動し、インスタンスを生成する(S303)。そして、起動処理部43は、生成したインスタンスを実行し、当該インスタンスの稼働状態を、リソース提供装置20から受信した起動指示に含まれている仮想マシンIDに対応付けて管理する。そして、起動処理部43は、再びステップS300に示した処理を実行する。
起動指示を受信していない場合(S300:No)、起動処理部43は、インスタンスの稼働が終了したか否かを判定する(S304)。インスタンスの稼働が終了していない場合(S304:No)、起動処理部43は、再びステップS300に示した処理を実行する。
一方、インスタンスの稼働が終了した場合(S304:Yes)、起動処理部43は、当該インスタンスに対応する仮想マシンIDと、自装置の物理マシンIDとを含む稼働終了通知を作成する。そして、起動処理部43は、作成した稼働終了通知を、通信回線11を介してリソース提供装置20へ送信する(S305)。そして、起動処理部43は、再びステップS300に示した処理を実行する。
以上、本発明の第1の実施形態について説明した。
上記説明から明らかなように、本実施形態のリソース提供システム10によれば、全体として、仮想マシンの起動に必要な起動イメージの転送時間を削減することができるため、仮想サーバの起動に伴うリードタイムを短縮することができる。
次に、本発明の第2の実施形態について、図面を参照しながら説明する。
本実施形態におけるリソース提供システム10のシステム構成は、図1に示した第1の実施形態におけるリソース提供システム10のシステム構成と同様である。ただし、本実施形態では、各起動イメージが、複数の起動イメージに共通するデータで構成されるベースイメージと、複数の起動イメージ間で異なるデータで構成される差分イメージとを含む点が異なる。
第1の実施形態では、ユーザが指定する仕様を満たす起動イメージに基づいて過去に仮想マシンを起動したことのある物理マシン40が存在しない場合、リソース提供装置20は、任意に選択した物理マシン40に、当該起動イメージをデータベースサーバ30から取得させて仮想マシンを起動させることになる。これに対し、本実施形態のリソース提供装置20では、そのような物理マシン40が存在しない場合であっても、当該起動イメージに含まれるベースイメージを共通に含む起動イメージを実行した物理マシン40が他に存在する場合には、当該物理マシン40を、ユーザが指定する仕様を満たす起動イメージに基づいて仮想マシンを起動させる物理マシン40として選択する。
例えば、ユーザが指定する仕様を満たす起動イメージに含まれるベースイメージが、物理マシン40内に既に存在していれば、当該起動イメージを準備するには、通信回線11を介してデータベースサーバ30から差分イメージを取得すればよく、ベースイメージを含めた起動イメージ全体を取得する必要はない。そのため、起動イメージの取得にかかる転送時間を削減することができる。これにより、本実施形態では、ユーザが指定する仕様を満たす起動イメージに基づいて過去に仮想マシンを起動したことのある物理マシン40が存在しない場合であっても、起動イメージの転送時間に起因する仮想マシンの起動の遅れを短く抑えることができる。
以下、このような機能を実現するための各部の詳細な構成について、さらに詳しく説明する。
本実施形態におけるデータベースサーバ30の構成は、図2に示した第1の実施形態におけるデータベースサーバ30と同様である。ただし、起動イメージ格納部31内のデータの構造は第1の実施形態の起動イメージ格納部31とは異なる。本実施形態における起動イメージ格納部31内には、差分イメージテーブルとベースイメージテーブルとが予め格納されている。図13は、第2の実施形態において起動イメージ格納部31内に格納される差分イメージテーブル313のデータ構造の一例を示す。図14は、第2の実施形態において起動イメージ格納部31内に格納されるベースイメージテーブル316のデータ構造の一例を示す。
差分イメージテーブル313には、例えば図13に示すように、それぞれの差分イメージを識別する差分ID314に対応付けて、当該差分イメージの差分イメージ本体315のデータが予め格納されている。図13に例示した差分イメージテーブル313では、例えば、「D001」の差分ID314に対応付けて、「gggg」の差分イメージ本体315のデータが格納されている。
また、ベースイメージテーブル316には、例えば図14に示すように、それぞれのベースイメージを識別するベースID317に対応付けて、当該ベースイメージのベースイメージ本体318のデータが予め格納されている。図14に例示したベースイメージテーブル316では、例えば、「B001」のベースID317に対応付けて、「wwww」のベースイメージ本体318のデータが格納されている。
データ送受信部32は、通信回線11を介して物理マシン40から、差分IDを含む起動イメージ取得要求を受信した場合に、当該差分IDに対応付けられている差分イメージ本体のデータを差分イメージテーブル313から抽出する。そして、データ送受信部32は、抽出した差分イメージ本体のデータを、起動イメージ取得要求の送信元の物理マシン40へ通信回線11を介して送信する。
また、通信回線11を介して差分IDおよびベースIDを含む起動イメージ取得要求を受信した場合、データ送受信部32は、当該差分IDに対応付けられている差分イメージ本体のデータを差分イメージテーブル313から抽出し、当該ベースIDに対応付けられているベースイメージ本体のデータをベースイメージテーブル316から抽出する。そして、データ送受信部32は、抽出した差分イメージ本体のデータと、抽出したベースイメージ本体のデータとを、起動イメージ取得要求の送信元の物理マシン40へ通信回線11を介して送信する。
次に、本実施形態におけるリソース提供装置20の構成について説明する。本実施形態におけるリソース提供装置20の構成は、以下に説明する点を除き、図4に示した第1の実施形態におけるリソース提供装置20と同様であるため、重複する説明は省略する。
図15は、第2の実施形態において起動イメージ管理テーブル保持部21内に格納される起動イメージ管理テーブル210のデータ構造の一例を示す。本実施形態における起動イメージ管理テーブル210には、例えば図15に示すように、同一の起動イメージに含まれる差分イメージおよびベースイメージをそれぞれ識別する差分ID213およびベースID214の組み合わせに対応付けて、複数の仕様項目215が格納されている。
図16は、第2の実施形態において稼働テーブル保持部22に格納される稼働テーブル220のデータ構造の一例を示す。本実施形態における稼働テーブル220には、例えば図16に示すように、それぞれの物理マシン40を識別する物理マシンID221に対応付けて、個別テーブル222が格納される。
それぞれの個別テーブル222には、仮想マシンID223に対応付けて、差分ID227、ベースID228、稼働フラグ225、および起動時刻226が格納される。差分ID227は、仮想マシンID223に対応するインスタンスの生成時に参照される起動イメージに含まれる差分イメージを識別する情報である。ベースID228は、仮想マシンID223に対応するインスタンスの生成時に参照される起動イメージに含まれるベースイメージを識別する情報である。仮想マシンID223、稼働フラグ225、および起動時刻226については、図6で説明したものと同様であるため、これらの説明は省略する。
起動イメージ特定部24は、起動指示受付部23から仮想マシンIDと共に仕様項目を受け取った場合に、起動イメージ管理テーブル保持部21内の起動イメージ管理テーブル210を参照し、起動指示受付部23から受け取った仕様項目に「1」が設定されている差分IDおよびベースIDの組み合わせを1つ以上特定する。そして、起動イメージ特定部24は、特定した1つ以上の差分IDおよびベースIDの組み合わせを、起動指示受付部23から受け取った仮想マシンIDと共に選択部25へ送る。
選択部25は、起動イメージ特定部24から仮想マシンIDと共に1つ以上の差分IDおよびベースIDの組み合わせを受け取った場合に、稼働テーブル保持部22内の稼働テーブル220を参照し、起動イメージ特定部24から受け取ったベースIDを含む個別テーブル222を検索する。
当該ベースIDを含む個別テーブル222が稼働テーブル220内に存在する場合、選択部25は、当該個別テーブル222を参照して、当該ベースIDに対応付けられている差分ID、稼働フラグ、および起動時刻を抽出する。そして、選択部25は、当該個別テーブル222が対応付けられている物理マシンIDを、稼働テーブル220を参照して特定し、先に抽出した差分ID、稼働フラグ、および起動時刻と共に、ベースIDに対応付けて選択データとして保持する。
図17は、第2の実施形態において選択部25が保持する選択データ50の構造の一例を示す。本実施形態における選択データ50には、例えば図17に示すように、複数のレコード55が格納される。各レコード55には、差分ID56、ベースID57、稼働フラグ52、起動時刻53、および物理マシンID54が格納される。なお、以下に説明する点を除き、図17において、図7と同一の符号を付した構成は、図7に示した構成と同様であるため説明を省略する。
それぞれのレコードに含まれている差分ID56およびベースID57の組み合わせは、同一の起動イメージに含まれている差分イメージおよびベースイメージをそれぞれ識別する情報である。
次に、選択部25は、選択データ50内の各レコード55を参照して、起動イメージ特定部24から受け取った差分IDおよびベースIDの組み合わせを含むレコード55を検索する。そのようなレコード55が見つかった場合、選択部25は、その中で、稼働フラグ52に「1」が設定されているレコード55を特定する。そして、選択部25は、特定したレコードの中で、最新の起動時刻53を含むレコード55を1つ特定する。
稼働フラグ52に「1」が設定されているレコード55が、検索したレコード55の中に存在しない場合、すなわち、検索した全てのレコード55内の稼働フラグ52の値が「0」である場合、選択部25は、検索したレコード55の中で、最新の起動時刻53を含むレコード55を1つ特定する。
また、選択データ50内の各レコード55の中に、起動イメージ特定部24から受け取った差分IDおよびベースIDの組み合わせを含むレコード55が存在しない場合、選択部25は、選択データ50内のレコード55の中で、稼働フラグ52に「1」が設定されているレコード55を特定する。そして、選択部25は、特定したレコードの中で、最新の起動時刻53を含むレコード55を1つ特定する。
稼働フラグ52に「1」が設定されているレコード55が選択データ50内に存在しない場合、すなわち、選択データ50内の全てのレコード55内の稼働フラグ52の値が「0」である場合、選択部25は、選択データ50内のレコード55の中で、最新の起動時刻53を含むレコード55を1つ特定する。
そして、選択部25は、特定したレコードに含まれている差分ID、ベースID、および物理マシンIDを、起動イメージ特定部24から受け取った仮想マシンIDと共に、起動指示部26へ送る。
起動指示部26は、選択部25から、差分ID、ベースID、物理マシンID、および仮想マシンIDを受け取った場合に、当該物理マシンIDに対応する物理マシン40へ、受け取った差分ID、ベースID、および仮想マシンIDを含む起動指示を、通信回線11を介して送信する。
そして、起動指示部26は、稼働テーブル保持部22内の稼働テーブル220を参照して、選択部25から受け取った物理マシンIDに対応付けられている個別テーブル222を特定する。そして、起動指示部26は、特定した個別テーブル222内に、選択部25から受け取った仮想マシンIDに対応付けて、選択部25から受け取った差分IDおよびベースIDを登録し、「1」の稼働フラグおよび起動時刻を登録する。
次に、本実施形態における物理マシン40の構成について説明する。本実施形態における物理マシン40の構成は、以下に説明する点を除き、図8に示した第1の実施形態における物理マシン40と同様であるため、重複する説明は省略する。
本実施形態における一時メモリ42には、管理テーブル420およびベースイメージテーブル427が格納される。図18は、第2の実施形態において一時メモリ42内に格納される管理テーブル420のデータ構造の一例を示す。図19は、第2の実施形態において一時メモリ42内に格納されるベースイメージテーブル427のデータ構造の一例を示す。
本実施形態における管理テーブル420には、例えば図18に示すように、それぞれの差分イメージを識別する差分ID424に対応付けて、当該差分イメージの差分イメージ本体425のデータ、当該差分イメージ本体425と共に起動イメージに含まれるベースイメージ本体のデータを識別するベースID426、および参照時刻423が格納される。
図18に例示した管理テーブル420では、例えば、「D002」の差分ID424に対応付けて、「hhhh」の差分イメージ本体425と、「B001」のベースID426と、「2013/5/20/17:29:12」の参照時刻423とが格納されている。
また、ベースイメージテーブル427には、例えば図19に示すように、それぞれのベースイメージを識別するベースID428に対応付けて、当該ベースイメージのベースイメージ本体429のデータが格納される。図19に例示したベースイメージテーブル427では、例えば、「B001」のベースID428に対応付けて、「wwww」のベースイメージ本体429のデータが格納されている。
なお、物理マシン40のメモリ使用量が多くなると、管理テーブル420内の参照時刻423の古い順に、差分ID424、差分イメージ本体425、ベースID426、および参照時刻423のデータが、管理テーブル420内から削除される。そして、削除されたベースIDに対応付けられているベースイメージ本体429もベースイメージテーブル427から削除される。
ただし、図18に示すように、異なる起動イメージであっても、同一のベースイメージを含むものが、より新しい参照時刻423に対応付けられている場合がある。そのため、古い参照時刻423に対応付けられているベースID426であっても、それよりも新しい参照時刻423にも対応付けられているベースID426については、対応するベースイメージ本体のデータはベースイメージテーブル427から削除されない。
起動イメージ取得部41は、起動処理部43から差分IDを受け取った場合に、当該差分IDを含む起動イメージ取得要求を通信回線11を介してデータベースサーバ30へ送信する。そして、データベースサーバ30から差分イメージ本体のデータを受信した場合、起動イメージ取得部41は、受信した差分イメージ本体のデータを、当該差分イメージの差分IDに対応付けて一時メモリ42内の管理テーブル420に格納する。なお、この段階では、管理テーブル420において、当該差分IDに対応付けられているベースIDおよび参照時刻の欄は空欄となっている。
また、起動処理部43から差分IDおよびベースIDを受け取った場合に、当該差分IDおよびベースIDを含む起動イメージ取得要求を通信回線11を介してデータベースサーバ30へ送信する。そして、データベースサーバ30から差分イメージ本体およびベースイメージ本体のデータを受信した場合、起動イメージ取得部41は、受信した差分イメージ本体のデータと、受信したベースイメージ本体のベースIDとを、当該差分イメージの差分IDに対応付けて一時メモリ42内の管理テーブル420に格納する。なお、この段階では、管理テーブル420において、当該差分IDに対応付けられている参照時刻423の欄は空欄となっている。
そして、起動イメージ取得部41は、受信したベースイメージ本体のデータを、ベースIDに対応付けて一時メモリ42内のベースイメージテーブル427に格納する。
起動処理部43は、通信回線11を介してリソース提供装置20から起動指示を受信した場合に、当該起動指示に含まれている差分IDに基づいて一時メモリ42内の管理テーブル420を参照し、当該差分IDに対応する差分イメージ本体のデータが管理テーブル420内に格納されているか否かを判定する。
当該差分イメージ本体のデータが管理テーブル420内に格納されている場合、起動処理部43は、当該差分イメージ本体のデータを管理テーブル420から取得する。そして、起動処理部43は、当該差分イメージ本体に対応付けられて管理テーブル420に格納されているベースIDに基づいてベースイメージテーブル427を参照し、当該ベースIDに対応付けられているベースイメージ本体のデータを取得する。そして、起動処理部43は、当該差分IDに対応付けられて管理テーブル420内に格納されている参照時刻423を、現在の時刻で書き換える。
当該差分イメージ本体のデータが管理テーブル420内に格納されていない場合、起動処理部43は、リソース提供装置20から受信した起動指示に含まれているベースIDに基づいて一時メモリ42内のベースイメージテーブル427を参照し、当該ベースIDに対応するベースイメージ本体のデータがベースイメージテーブル427内に格納されているか否かを判定する。
対応するベースイメージ本体のデータがベースイメージテーブル427内に格納されている場合、起動処理部43は、リソース提供装置20から受信した起動指示に含まれている差分IDを起動イメージ取得部41へ送る。そして、当該差分IDに対応する差分イメージが管理テーブル420内に登録された場合、起動処理部43は、当該差分イメージを管理テーブル420から取得し、リソース提供装置20から受信した起動指示に含まれているベースIDに対応するベースイメージ本体のデータをベースイメージテーブル427から取得する。
そして、起動処理部43は、当該差分IDに対応付けて、リソース提供装置20から受信した起動指示に含まれているベースIDを、管理テーブル420内のベースID426の欄に登録し、参照時刻423の欄に現在時刻を登録する。
一方、対応するベースイメージ本体のデータがベースイメージテーブル427内に格納されていない場合、起動処理部43は、リソース提供装置20から受信した起動指示に含まれている差分IDおよびベースIDを起動イメージ取得部41へ送る。そして、当該差分IDに対応する差分イメージ本体のデータが管理テーブル420内に登録され、かつ、当該ベースIDに対応するベースイメージ本体のデータがベースイメージテーブル427内に登録された場合、起動処理部43は、当該差分イメージ本体のデータを管理テーブル420から取得し、当該ベースイメージ本体のデータをベースイメージテーブル427から取得する。そして、起動処理部43は、当該差分IDに対応付けられている参照時刻423の欄に現在時刻を登録する。
次に、起動処理部43は、取得した差分イメージ本体のデータとベースイメージ本体のデータとに基づいて仮想マシンを起動し、インスタンスを生成する。そして、起動処理部43は、生成したインスタンスを実行し、当該インスタンスの稼働状態を、リソース提供装置20から受信した起動指示に含まれている仮想マシンIDに対応付けて管理する。
図20は、第2の実施形態におけるリソース提供装置20の動作の一例を示すフローチャートである。リソース提供装置20は、例えば起動後に本フローチャートに示す動作を開始する。
まず、起動指示受付部23は、通信回線11を介して起動指示を受信したか否かを判定する(S400)。起動指示を受信した場合(S400:Yes)、起動指示受付部23は、受信した起動指示に応じて生成されるインスタンスに仮想マシンIDを割り当てる。そして、起動指示受付部23は、受信した起動指示に含まれている仕様項目を、割り当てた仮想マシンIDと共に、起動イメージ特定部24へ送る。
起動イメージ特定部24は、起動イメージ管理テーブル保持部21内の起動イメージ管理テーブル210を参照して、起動指示受付部23から受け取った仕様項目に「1」が設定されている差分IDおよびベースIDを1つ以上特定する(S401)。そして、起動イメージ特定部24は、特定した1つ以上の差分IDおよびベースIDの組み合わせを、起動指示受付部23から受け取った仮想マシンIDと共に選択部25へ送る。
次に、選択部25は、後述する物理マシンIDの特定処理を実行し、差分ID、ベースID、および物理マシンIDを特定し、起動イメージ特定部24から受け取った仮想マシンIDと共に、特定した差分ID、ベースID、および物理マシンIDを起動指示部26へ送る(S500)。
次に、起動指示部26は、選択部25から受け取った差分ID、ベースID、および仮想マシンIDを、選択部25から受け取った物理マシンIDに対応する物理マシン40へ、通信回線11を介して送信する(S402)。そして、起動指示部26は、稼働テーブル保持部22内の稼働テーブル220を参照して、選択部25から受け取った物理マシンIDに対応付けられている個別テーブル222を特定する。
そして、起動指示部26は、特定した個別テーブル222内に、選択部25から受け取った仮想マシンIDに対応付けて、選択部25から受け取った差分IDおよびベースIDを登録し、稼働中を示す稼働フラグおよび起動時刻を登録する(S403)。そして、起動指示受付部23は、再びステップS400に示した処理を実行する。
一方、起動指示を受信していない場合(S400:No)、起動指示部26は、通信回線11を介して物理マシン40から、稼働終了通知を受信したか否かを判定する(S404)。稼働終了通知を受信していない場合(S404:No)、起動指示受付部23は、再びステップS400に示した処理を実行する。
稼働終了通知を受信した場合(S404:Yes)、起動指示部26は、当該稼働終了通知に含まれている物理マシンIDに対応付けられている個別テーブル222を稼働テーブル220内で特定する。そして、起動指示部26は、特定した個別テーブル222において、当該稼働終了通知に含まれている仮想マシンIDに対応付けられている稼働フラグを、稼働終了を示す値「0」に書き換る(S405)。そして、起動指示受付部23は、再びステップS400に示した処理を実行する。
図21は、物理マシンIDの特定処理(S500)の一例を示すフローチャートである。
まず、選択部25は、起動イメージ特定部24から受け取った1つ以上の差分IDおよびベースIDの組み合わせに基づいて、選択データ(図17参照)を作成する(S501)。より詳細には、選択部25は、起動イメージ特定部24から受け取ったそれぞれの差分IDおよびベースIDの組み合わせについて、稼働テーブル保持部22内の稼働テーブル220を参照し、当該ベースIDが含まれている個別テーブル222を検索する。
当該ベースIDが含まれている個別テーブル222が稼働テーブル220内に存在する場合、選択部25は、当該個別テーブル222を参照して、当該ベースIDに対応付けられている差分ID、稼働フラグ、および起動時刻を抽出する。そして、選択部25は、当該個別テーブル222が対応付けられている物理マシンIDを、稼働テーブル220を参照して特定し、先に抽出した差分ID、稼働フラグ、および起動時刻と共に、ベースIDに対応付けて選択データを作成する(S501)。
次に、選択部25は、作成した選択データを参照して、選択データ内にレコードが存在するか否かを判定する(S502)。選択データ内にレコードが存在しない場合(S502:No)、選択部25は、起動イメージ特定部24から受け取った差分IDおよびベースIDの組み合わせの中で、差分IDおよびベースIDの組み合わせを任意に1つ特定する。また、選択部25は、物理マシンIDを任意に1つ選択し(S503)、本フローチャートに示した処理を終了する。
一方、選択データ内にレコードが存在する場合(S502:Yes)、選択部25は、選択データ内に、起動イメージ特定部24から受け取った差分IDを含むレコードがあるか否かを判定する(S504)。選択データ内に、起動イメージ特定部24から受け取った差分IDを含むレコードが存在する場合(S504:Yes)、選択部25は、当該差分IDを含むレコードの中で、稼働中を示す稼働フラグを含むレコードが存在するか否かを判定する(S505)。
稼働中を示す稼働フラグを含むレコードが選択データ内に存在する場合(S505:Yes)、選択部25は、稼働中を示す稼働フラグを含むレコードの中で、最新の起動時刻を含むレコードを1つ特定する(S506)。そして、選択部25は、ステップS511に示す処理を実行する。
一方、稼働中を示す稼働フラグを含むレコードが選択データ内に存在しない場合(S505:No)、選択部25は、稼働終了を示す稼働フラグを含むレコードの中で、最新の起動時刻を含むレコードを1つ特定する(S507)。そして、選択部25は、ステップS511に示す処理を実行する。
また、選択データ内に、起動イメージ特定部24から受け取った差分IDを含むレコードが存在しない場合(S504:No)、選択部25は、選択データ内のレコードの中で、稼働中を示す稼働フラグを含むレコードが存在するか否かを判定する(S508)。
稼働中を示す稼働フラグを含むレコードが選択データ内に存在する場合(S508:Yes)、選択部25は、稼働中を示す稼働フラグを含むレコードの中で、最新の起動時刻を含むレコードを1つ特定する(S509)。そして、選択部25は、ステップS511に示す処理を実行する。
一方、稼働中を示す稼働フラグを含むレコードが選択データ内に存在しない場合(S508:No)、選択部25は、稼働終了を示す稼働フラグを含むレコードの中で、最新の起動時刻を含むレコードを1つ特定する(S510)。
次に、選択部25は、特定したレコードに含まれている差分ID、ベースID、および物理マシンIDを、起動イメージ特定部24から受け取った仮想マシンIDと共に、起動指示部26へ送る(S511)。そして、選択部25は、本フローチャートに示した処理を終了する。
図22は、第2の実施形態における物理マシン40の動作の一例を示すフローチャートである。物理マシン40は、例えば起動後に本フローチャートに示す動作を開始する。
まず、起動処理部43は、通信回線11を介してリソース提供装置20から、差分ID、ベースID、および仮想マシンIDを含む起動指示を受信したか否かを判定する(S600)。起動指示を受信した場合(S600:Yes)、起動処理部43は、一時メモリ42内の管理テーブル420を参照して、当該起動指示に含まれている差分IDに対応する差分イメージ本体が管理テーブル420内に残っているか否かを判定する(S601)。
起動指示に含まれている差分IDに対応する差分イメージ本体のデータが、管理テーブル420内に残っている場合(S601:Yes)、起動処理部43は、当該差分イメージ本体のデータを管理テーブル420から取得する。
そして、起動処理部43は、当該差分イメージ本体に対応付けられて管理テーブル420に格納されているベースIDに基づいてベースイメージテーブル427を参照し、当該ベースIDに対応付けられているベースイメージ本体のデータを取得する。そして、起動処理部43は、当該差分IDに対応付けられて管理テーブル420内に格納されている参照時刻423を、現在の時刻で書き換え、ステップS605に示す処理を実行する。
一方、起動指示に含まれている差分IDに対応する差分イメージ本体のデータが、管理テーブル420内に残っていない場合(S601:No)、起動処理部43は、起動指示に含まれているベースIDに基づいて一時メモリ42内のベースイメージテーブル427を参照し、当該ベースIDに対応するベースイメージ本体のデータがベースイメージテーブル427内に残っているか否かを判定する(S602)。
ベースイメージ本体のデータがベースイメージテーブル427内に残っている場合(S602:Yes)、起動処理部43は、起動指示に含まれている差分IDを起動イメージ取得部41へ送る。起動イメージ取得部41は、受け取った差分IDを含む起動イメージ取得要求を通信回線11を介してデータベースサーバ30へ送信する。そして、データベースサーバ30から差分イメージ本体のデータを受信した場合、起動イメージ取得部41は、受信した差分イメージ本体のデータを、当該差分イメージの差分IDに対応付けて一時メモリ42内の管理テーブル420に格納する(S603)。
起動処理部43は、差分イメージ本体のデータを管理テーブル420から取得し、リソース提供装置20から受信した起動指示に含まれているベースIDに対応するベースイメージ本体のデータをベースイメージテーブル427から取得する。そして、起動処理部43は、ステップS605に示す処理を実行する。
一方、ベースイメージ本体のデータがベースイメージテーブル427内に残っていない場合(S602:No)、起動処理部43は、起動指示に含まれている差分IDおよびベースIDを起動イメージ取得部41へ送る。起動イメージ取得部41は、受け取った差分IDおよびベースIDを含む起動イメージ取得要求を、通信回線11を介してデータベースサーバ30へ送信する。
そして、データベースサーバ30から差分イメージ本体およびベースイメージ本体のデータを受信した場合、起動イメージ取得部41は、受信した差分イメージ本体のデータと、受信したベースイメージ本体のベースIDとを、当該差分イメージの差分IDに対応付けて一時メモリ42内の管理テーブル420に格納する。そして、起動イメージ取得部41は、受信したベースイメージ本体のデータを、当該ベースイメージ本体のベースIDに対応付けて一時メモリ42内のベースイメージテーブル427に格納する。
次に、起動処理部43は、差分イメージ本体のデータを管理テーブル420から取得し、ベースイメージ本体のデータをベースイメージテーブル427から取得する(S604)。そして、起動処理部43は、管理テーブル420において、当該差分イメージ本体の差分IDに対応付けられている参照時刻423の欄に現在時刻を登録する。
次に、起動処理部43は、取得した差分イメージ本体のデータとベースイメージ本体のデータとに基づいて仮想マシンを起動してインスタンスを生成し、生成したインスタンスを実行する(S605)。そして、起動処理部43は、当該インスタンスの稼働状態を、起動指示に含まれている仮想マシンIDに対応付けて管理し、再びステップS600に示した処理を実行する。
起動指示を受信していない場合(S600:No)、起動処理部43は、インスタンスの稼働が終了したか否かを判定する(S606)。インスタンスの稼働が終了していない場合(S606:No)、起動処理部43は、再びステップS600に示した処理を実行する。
一方、インスタンスの稼働が終了した場合(S606:Yes)、起動処理部43は、当該インスタンスに対応する仮想マシンIDと、自装置の物理マシンIDとを含む稼働終了通知を作成する。そして、起動処理部43は、作成した稼働終了通知を、通信回線11を介してリソース提供装置20へ送信し(S607)、再びステップS600に示した処理を実行する。
以上、本発明の第2の実施形態について説明した。
なお、上記第1または第2の実施形態におけるリソース提供装置20は、例えば図23に示すような構成のコンピュータ60によって実現される。図23は、リソース提供装置20の機能を実現するコンピュータ60のハードウェア構成の一例を示すハードウェア構成図である。コンピュータ60は、CPU(Central Processing Unit)61、RAM(Random Access Memory)62、ROM(Read Only Memory)63、HDD(Hard Disk Drive)64、通信インターフェイス(I/F)65、入出力インターフェイス(I/F)66、およびメディアインターフェイス(I/F)67を備える。
CPU61は、ROM63またはHDD64に格納されたプログラムに基づいて動作し、各部の制御を行う。ROM63は、コンピュータ60の起動時にCPU61によって実行されるブートプログラムや、コンピュータ60のハードウェアに依存するプログラム等を格納する。
HDD64は、CPU61によって実行されるプログラムおよび当該プログラムによって使用されるデータ等を格納する。通信インターフェイス65は、通信回線11を介して他の機器からデータを受信してCPU61へ送り、CPU61が生成したデータを、通信回線11を介して他の機器へ送信する。
CPU61は、入出力インターフェイス66を介して、ディスプレイやプリンタ等の出力装置、および、キーボードやマウス等の入力装置を制御する。CPU61は、入出力インターフェイス66を介して、入力装置からデータを取得する。また、CPU61は、生成したデータを、入出力インターフェイス66を介して出力装置へ出力する。
メディアインターフェイス67は、記録媒体68に格納されたプログラムまたはデータを読み取り、RAM62を介してCPU61に提供する。CPU61は、当該プログラムを、メディアインターフェイス67を介して記録媒体68からRAM62上にロードし、ロードしたプログラムを実行する。記録媒体68は、例えばDVD(Digital Versatile Disc)、PD(Phase change rewritable Disk)等の光学記録媒体、MO(Magneto-Optical disk)等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等である。
コンピュータ60がリソース提供装置20として機能する場合、コンピュータ60のCPU61は、RAM62上にロードされたプログラムを実行することにより、起動イメージ管理テーブル保持部21、稼働テーブル保持部22、起動指示受付部23、起動イメージ特定部24、選択部25、および起動指示部26の各機能を実現する。また、ROM63またはHDD64には、起動イメージ管理テーブル保持部21および稼働テーブル保持部22内のデータが格納される。
コンピュータ60のCPU61は、これらのプログラムを、記録媒体68から読み取って実行するが、他の例として、他の装置から、通信回線11を介してこれらのプログラムを取得してもよい。
また、上記した第2の実施形態において、選択データ50内の各レコード55の中に、起動イメージ特定部24から受け取った差分IDおよびベースIDの組み合わせを含み、かつ、稼働フラグ52に「1」が設定されているレコード55が存在しない場合に、選択部25は、当該差分IDおよびベースIDの組み合わせを含むレコード55の中で、最新の起動時刻53を含むレコード55を1つ特定する。しかし、本発明はこれに限られない。
例えば、選択データ50内の各レコード55の中に、起動イメージ特定部24から受け取った差分IDおよびベースIDの組み合わせを含み、かつ、稼働フラグ52に「1」が設定されているレコード55が存在しない場合に、選択部25は、選択データ50内のレコード55の中で、稼働フラグ52に「1」が設定されているレコード55を特定するようにしてもよい。
このように、ユーザから指定された仕様を満たす差分イメージおよびベースイメージの組み合わせよりも、そのベースイメージを含む起動イメージを参照して生成されたインスタンスを稼働中の物理マシン40を特定することにより、ベースイメージが残存している可能性が高い物理マシン40を特定することができる場合がある。
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に多様な変更または改良を加えることが可能であることが当業者には明らかである。また、そのような変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
10:リソース提供システム、11:通信回線、12:ユーザ端末、20:リソース提供装置、21:起動イメージ管理テーブル保持部、210:起動イメージ管理テーブル、22:稼働テーブル保持部、220:稼働テーブル、23:起動指示受付部、24:起動イメージ特定部、25:選択部、26:起動指示部、30:データベースサーバ、31:起動イメージ格納部、32:データ送受信部、40:物理マシン、41:起動イメージ取得部、42:一時メモリ、420:管理テーブル、43:起動処理部、50:選択データ

Claims (7)

  1. 仮想マシンのインスタンス単位で計算機リソースを提供するリソース提供装置であって、
    仮想マシンを起動してインスタンスを生成する際に参照される起動イメージを指定する起動指示を外部から受け付ける起動指示受付部と、
    複数の異なる起動イメージの中から、前記起動指示で指定される起動イメージを特定する起動イメージ特定部と、
    計算機リソースを提供する物理マシンであって、前記起動イメージ特定部によって特定された前記起動イメージを参照して仮想マシンを起動させる物理マシンを選択する選択部と、
    それぞれの物理マシンの識別情報に対応付けて、当該物理マシンで稼働中のインスタンスの生成時に参照された起動イメージの識別情報を格納する稼働テーブルを保持するテーブル保持部と、
    前記選択部によって選択された前記物理マシンへ、前記起動イメージ特定部によって特定された起動イメージの識別情報を送信して、当該物理マシンに当該起動イメージを参照して仮想マシンを起動させると共に、当該物理マシンの識別情報に対応付けて、当該起動イメージの識別情報を前記稼働テーブルに登録する起動指示部と
    を備え、
    前記選択部は、
    前記稼働テーブルを参照して、前記起動イメージ特定部によって特定された起動イメージの識別情報が対応付けられている物理マシンを、当該起動イメージで仮想マシンを起動させる物理マシンとして選択することを特徴とするリソース提供装置。
  2. 前記稼働テーブルには、
    前記物理マシンおよび前記起動イメージの識別情報に対応付けて、当該物理マシンにおいて、当該起動イメージを生成時に参照したインスタンスが稼働中か稼働終了かの別を示す稼働フラグがさらに対応付けられており、
    前記選択部は、
    前記起動イメージ特定部によって特定された起動イメージの識別情報と、稼働中を示す稼働フラグと、が対応付けられている物理マシンの識別情報が前記稼働テーブル内に存在する場合に、当該物理マシンを選択し、
    前記起動イメージ特定部によって特定された起動イメージの識別情報と、稼働中を示す稼働フラグと、が対応付けられている物理マシンの識別情報が前記稼働テーブル内に存在しない場合に、当該起動イメージの識別情報に稼働終了を示す稼働フラグが対応付けられている物理マシンの識別情報が前記稼働テーブル内に存在すれば、当該物理マシンを選択することを特徴とする請求項1に記載のリソース提供装置。
  3. 前記稼働テーブルには、
    前記物理マシンの識別情報、および、前記起動イメージの識別情報に対応付けて、当該物理マシンにおいて、当該起動イメージを参照して仮想マシンが起動した起動時刻がさらに対応付けられており、
    前記選択部は、
    前記稼働テーブル内に、前記起動イメージ特定部によって特定された起動イメージの識別情報が対応付けられている物理マシンの識別情報が複数存在する場合、その中で、対応付けられている前記起動時刻がより新しい物理マシンを選択することを特徴とする請求項1または2に記載のリソース提供装置。
  4. それぞれの前記起動イメージには、
    複数の仮想マシンのインスタンスに共通のベースイメージと、それぞれのインスタンスで異なる差分イメージとが含まれており、
    当該リソース提供装置は、
    起動イメージ毎に当該起動イメージに含まれるベースイメージおよび差分イメージの情報を管理する起動イメージ管理テーブルを保持する起動イメージ管理テーブル保持部をさらに備え、
    前記起動イメージ特定部は、
    前記起動イメージ管理テーブルを参照して、前記起動指示で指定される起動イメージに含まれるベースイメージおよび差分イメージをそれぞれ特定し、
    前記稼働テーブルには、
    前記物理マシン、ならびに、前記起動イメージに含まれているベースイメージおよび差分イメージの識別情報に対応付けて、当該物理マシンにおいて、当該ベースイメージおよび差分イメージを生成時に参照したインスタンスが稼働中か稼働終了かの別を示す稼働フラグがさらに対応付けられており、
    前記起動指示部は、
    前記選択部によって選択された前記物理マシンへ、前記起動イメージ特定部によって特定されたベースイメージおよび差分イメージの識別情報をそれぞれ送信して、当該物理マシンに当該ベースイメージおよび差分イメージを参照して仮想マシンを起動させると共に、当該物理マシンの識別情報に対応付けて、当該ベースイメージおよび差分イメージの識別情報を前記稼働テーブルに登録し、
    前記選択部は、
    前記起動イメージ特定部によって特定されたベースイメージおよび差分イメージの識別情報と、稼働中を示す稼働フラグと、が対応付けられている物理マシンの識別情報が前記稼働テーブル内に存在する場合に、当該物理マシンを選択し、
    前記起動イメージ特定部によって特定されたベースイメージおよび差分イメージの識別情報と、稼働中を示す稼働フラグと、が対応付けられている物理マシンの識別情報が前記稼働テーブル内に存在しない場合に、当該ベースイメージの識別情報と、稼働中を示す稼働フラグと、が対応付けられている物理マシンの識別情報が前記稼働テーブル内に存在すれば、当該物理マシンを選択することを特徴とする請求項1に記載のリソース提供装置。
  5. 動イメージ毎に、当該起動イメージの仕様を特定する複数の仕様項目が対応付けられた起動イメージ管理テーブルを保持する起動イメージ管理テーブル保持部をさらに備え、
    前記起動指示には、
    少なくとも1つ以上の前記仕様項目が含まれており、
    前記起動イメージ特定部は、
    前記起動イメージ管理テーブルを参照して、前記起動指示に含まれている前記仕様項目で特定される仕様を満たす起動イメージを1つ以上特定し、
    前記選択部は、
    前記起動イメージ特定部によって特定された1つ以上の起動イメージの中で、前記稼働テーブル内に格納されている起動イメージの識別情報を特定し、特定した識別情報に対応付けられている物理マシンを選択することを特徴とする請求項1に記載のリソース提供装置。
  6. 仮想マシンのインスタンス単位で計算機リソースを提供するリソース提供装置で実行されるリソース提供方法であって、
    仮想マシンを起動してインスタンスを生成する際に参照される起動イメージを指定する起動指示を外部から受け付ける起動指示受付工程と、
    複数の異なる起動イメージの中から、前記起動指示で指定される起動イメージを特定する起動イメージ特定工程と、
    計算機リソースを提供する物理マシンであって、前記起動イメージ特定工程において特定した前記起動イメージを参照して仮想マシンを起動させる物理マシンを選択する選択工程と、
    記選択工程において選択した前記物理マシンへ、前記起動イメージ特定工程において特定した起動イメージの識別情報を送信して、当該物理マシンに当該起動イメージを参照して仮想マシンを起動させると共に、当該物理マシンの識別情報に対応付けて、当該起動イメージの識別情報を稼働テーブルに登録する起動指示工程と
    を含み、
    前記選択工程では、
    前記稼働テーブルを参照して、前記起動イメージ特定工程において特定した起動イメージの識別情報が対応付けられている物理マシンを、当該起動イメージで仮想マシンを起動させる物理マシンとして選択することを特徴とするリソース提供方法。
  7. 仮想マシンのインスタンス単位で計算機リソースを提供するリソース提供システムであって、
    データベースと、
    リソース提供装置と、
    算機リソースを提供する複数の物理マシンと
    を備え、
    前記データベースは、
    仮想マシンを起動してインスタンスを生成する際に参照される起動イメージであって、複数の異なる起動イメージを格納し、
    前記リソース提供装置は、
    起動イメージを指定する起動指示を外部から受け付ける起動指示受付部と、
    複数の異なる起動イメージの中から、前記起動指示で指定される起動イメージを特定する起動イメージ特定部と、
    特定された前記起動イメージを参照して仮想マシンを起動させる物理マシンを選択する選択部と、
    それぞれの物理マシンの識別情報に対応付けて、当該物理マシンで稼働中のインスタンスの生成時に参照された起動イメージの識別情報を格納する稼働テーブルを保持するテーブル保持部と、
    前記選択部によって選択された前記物理マシンへ、前記起動イメージ特定部によって特定された起動イメージの識別情報を送信すると共に、当該物理マシンの識別情報に対応付けて、当該起動イメージの識別情報を前記稼働テーブルに登録する起動指示部と
    を有し、
    前記複数の物理マシンのそれぞれは、
    前記リソース提供装置から受け取った識別情報に対応する起動イメージを、前記データベースから取得して、当該物理マシン内の一時メモリに格納する起動イメージ取得部と、
    前記リソース提供装置から起動イメージの識別情報を受け取った場合に、当該識別情報に対応する起動イメージを前記一時メモリから読み出し、読み出した起動イメージに基づいて仮想マシンを起動してインスタンスを生成する起動処理部と
    を有し、
    前記選択部は、
    前記稼働テーブルを参照して、前記起動イメージ特定部によって特定された起動イメージの識別情報が対応付けられている物理マシンを、当該起動イメージで仮想マシンを起動させる物理マシンとして選択し、
    前記起動処理部は、
    前記リソース提供装置から起動イメージの識別情報を受け取った場合に、当該識別情報に対応する起動イメージが前記一時メモリ内に存在しなければ、当該起動イメージの取得を前記起動イメージ取得部に指示することを特徴とするリソース提供システム。
JP2013117799A 2013-06-04 2013-06-04 リソース提供装置、リソース提供方法、およびリソース提供システム Active JP5626937B1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013117799A JP5626937B1 (ja) 2013-06-04 2013-06-04 リソース提供装置、リソース提供方法、およびリソース提供システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013117799A JP5626937B1 (ja) 2013-06-04 2013-06-04 リソース提供装置、リソース提供方法、およびリソース提供システム

Publications (2)

Publication Number Publication Date
JP5626937B1 true JP5626937B1 (ja) 2014-11-19
JP2014235644A JP2014235644A (ja) 2014-12-15

Family

ID=52136330

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013117799A Active JP5626937B1 (ja) 2013-06-04 2013-06-04 リソース提供装置、リソース提供方法、およびリソース提供システム

Country Status (1)

Country Link
JP (1) JP5626937B1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102568985B1 (ko) * 2016-06-22 2023-08-23 한국전자통신연구원 오프라인 가상 데스크탑 제공 장치, 오프라인 가상 데스크탑 단말 및 오프라인 가상 데스크탑 제공 방법
KR101835431B1 (ko) 2016-09-01 2018-03-09 주식회사 시큐아이 가상화 시스템에서 컨테이너의 데이터 업데이트 방법 및 그 장치
US10684894B2 (en) * 2017-11-10 2020-06-16 Amazon Technologies, Inc. Capacity management in provider networks using dynamic host device instance model reconfigurations

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12019A (en) * 1854-12-05 Steam-boiler
JP2008033392A (ja) * 2006-07-26 2008-02-14 Nec Corp 仮想計算機システム及びその動作方法
JP2012068790A (ja) * 2010-09-22 2012-04-05 Internatl Business Mach Corp <Ibm> Osのイメージの選択装置、選択方法、及び選択プログラム
JP5566342B2 (ja) * 2011-06-08 2014-08-06 株式会社エヌ・ティ・ティ・データ コンピュータシステム、仮想マシンデータ配置方法およびプログラム

Also Published As

Publication number Publication date
JP2014235644A (ja) 2014-12-15

Similar Documents

Publication Publication Date Title
US10171377B2 (en) Orchestrating computing resources between different computing environments
US8069224B2 (en) Method, equipment and system for resource acquisition
JP5512215B2 (ja) ジョブ処理システム及びその方法、そのプログラム
CN105408863A (zh) 具有不同的租户集的端点数据中心
KR101589801B1 (ko) 피어 투 피어 데이터 마이그레이션
EP3635918B1 (en) Systems for managing messaging conversations
JP5375972B2 (ja) 分散ファイルシステム、そのデータ選択方法およびプログラム
JP5626937B1 (ja) リソース提供装置、リソース提供方法、およびリソース提供システム
US20130325534A1 (en) Terminal management system, management server, and method therefor
JP6951846B2 (ja) 計算機システム及びタスクの割当方法
US8510423B2 (en) Install system and install method
US10353741B2 (en) Load distribution of workflow execution request among distributed servers
US8832176B1 (en) Method and system for processing a large collection of documents
US11500622B2 (en) Information processing apparatus, information processing system, and non-transitory computer readable medium for coordinating a switch to an updated program in a cluster to suppress confusion on users
JP2018170715A (ja) クラウド管理装置、クラウド管理方法、及びプログラム
JP2013186765A (ja) バッチ処理システム、進捗状況確認装置、進捗状況確認方法、及びプログラム
JP6062809B2 (ja) 資産管理システム及び資産管理方法
US9336063B1 (en) Distributed task management
CN112540772A (zh) 应用发布方法及其系统、电子设备、存储介质
JP5037545B2 (ja) 情報処理システムおよび制御プログラム
JP6568232B2 (ja) 計算機システム、及び、装置の管理方法
JP2022014633A (ja) 分散処理システム、分散処理装置、データベース管理装置及び方法
US20090319612A1 (en) Information distribution system, terminal apparatus, distribution server and introduction server in the information distribution system, and recording medium on which program thereof is recorded
JP2020016910A (ja) リソース割当装置、リソース管理システム、および、リソース割当プログラム
US20150100573A1 (en) Method for processing data

Legal Events

Date Code Title Description
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: 20140924

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140925

R150 Certificate of patent or registration of utility model

Ref document number: 5626937

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150