インスタンス管理システム及びコンピュータプログラム
【課題】非活性なインスタンスのリソースを、迅速な再開に必要となる最小限のリソース分を残して解放する。
【解決手段】アクティブインスタンス管理装置3が仮想化装置1に生成されているインスタンスのうち非活性のものを検出した場合、当該インスタンスのスナップショットを、メモリ装置で構成されるセミサスペンドインスタンス保存装置5に書き込み、当該インスタンスが利用していたリソースを解放する。インスタンス管理装置2は、元のインスタンスが使用していた通信ポートなどを引継いで監視し、アクセスがあった場合には、元のインスタンスを再開させる機能だけを有する種火インスタンスを起動する。種火インスタンスにアクセスがあった場合、スナップショットを利用して元のインスタンスが再開され、引続きアクセスがない場合、スナップショットをディスク装置で構成されるサスペンドインスタンス保存装置8に移動する。
【解決手段】アクティブインスタンス管理装置3が仮想化装置1に生成されているインスタンスのうち非活性のものを検出した場合、当該インスタンスのスナップショットを、メモリ装置で構成されるセミサスペンドインスタンス保存装置5に書き込み、当該インスタンスが利用していたリソースを解放する。インスタンス管理装置2は、元のインスタンスが使用していた通信ポートなどを引継いで監視し、アクセスがあった場合には、元のインスタンスを再開させる機能だけを有する種火インスタンスを起動する。種火インスタンスにアクセスがあった場合、スナップショットを利用して元のインスタンスが再開され、引続きアクセスがない場合、スナップショットをディスク装置で構成されるサスペンドインスタンス保存装置8に移動する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、クラウドコンピューティングシステムにおけるインスタンスを管理するインスタンス管理システム及びコンピュータプログラムに関する。
【背景技術】
【0002】
近年、インターネットを介して提供されるコンピュータリソースを、それらの所在を意識することなく利用可能なクラウドコンピューティングを用い、各種サービスを提供するクラウドコンピューティングサービスが普及してきている。このようなクラウドコンピューティングサービスでは、クラウドサービス提供装置によってCPUやメモリなどのコンピュータリソースをインスタンスという形で利用者に提供し、そのインスタンスの利用状況を時間単位でクラウドサービス利用履歴DB(DB:データベース)に記録する。そして、クラウドサービス課金装置によって各利用者の利用時間を月単位で積算し、利用時間に応じた課金を実施する。
【0003】
このように、クラウドコンピューティングサービスは、時間単位の従量制課金のサービスであることから、利用者は基本的に自らのサービス利用の必要性がない時には利用しているインスタンスを停止させるための指示を自身の端末に入力するなどの操作を行う。サービス提供側のクラウドサービス提供装置は、利用者の端末から受信したインスタンス停止要求に従ってインスタンスを停止し、当該インスタンスに使用されていたリソースを解放する。しかし、利用者の不注意などにより、サービスの利用の必要性のない時間においてもインスタンスを停止しないままにしていると、サービス提供者側はそのリソースを解放できず、利用者にはその分の利用料が加算されてしまう。
【0004】
一方、特許文献1には、計算機やプロセッサの稼動数、プロセッサの使用率の変化によりシステムの消費電力量が変化することを利用し、計測した消費電力量に基づいて使用料金を算出することが記載されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2008−3712号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
パブリッククラウドにおけるクラウドコンピューティングサービスでは、上述したように各利用者が責任を持ってリソースの利用開始、利用停止を行なう仕組みであり、利用者が使用した分だけ課金するというポリシーにより運営されている。そのため、利用者の不注意などにより実際は有効に使用されていないリソースについてもその利用料金は利用者の負担となってしまう。また、プライベートクラウドにおけるクラウドコンピューティングサービスでは、そもそもサービス利用が課金と連動していないケースもありうる。この場合、利用者の不注意による不活性インスタンスが増大する可能性が高く、パブリッククラウドよりもさらに、不活性インスタンスにリソースが消費されてしまわれないような仕組みが必要である。
【0007】
そこで、利用されていないインスタンスを検出して一時停止状態とすることが考えられる。しかし、従来技術においては、一時停止されたインスタンスを再び実行させる際には時間がかかってしまうため、利用者側でパフォーマンスが悪いと感じてしまい、快適に利用できない。
【0008】
本発明は、上記の事情に鑑みてなされたものであり、その目的は、使用されていないインスタンスについては、再び要求があったときに短い時間で再開できるように一時停止してリソースを解放するとともに、一時停止の状態にあるインスタンスを管理して利用料金の割引に用いることができるインスタンス管理システム及びコンピュータプログラムを提供することにある。
【課題を解決するための手段】
【0009】
上記課題を解決するため、本発明は、複数の仮想マシンとして動作する仮想化装置に生成されているインスタンスを管理するアクティブインスタンス管理装置と、一時停止された前記インスタンスを再開させる処理を含む種火インスタンスを生成する種火インスタンス管理装置と、一時停止前の前記インスタンスの状態を記録したイメージファイルを記憶するセミサスペンドインスタンス保存装置と、前記インスタンスの状態を管理するインスタンス管理装置と、前記インスタンスの状態を記憶するインスタンス管理情報記憶装置とを備えるインスタンス管理システムであって、前記アクティブインスタンス管理装置は、前記仮想化装置に生成されている前記インスタンスのうち、所定時間実行されていない前記インスタンスを一時停止対象のインスタンスとして検出し、検出した当該一時停止対象のインスタンスの現在の状態を記録したイメージファイルの生成、及び、当該イメージファイルの前記セミサスペンドインスタンス保存装置への書込みと、前記種火インスタンス管理装置が生成した種火インスタンスの起動とを前記仮想化装置へ指示するとともに、当該種火インスタンスの起動後に前記一時停止対象のインスタンスの解放を前記仮想化装置へ指示し、前記種火インスタンスから、前記一時停止対象のインスタンスが使用していた通信アドレスを宛先としたイベントを検出したときに出力される再開の要求を受信した場合に、前記一時停止対象のインスタンスを前記セミサスペンドインスタンス保存装置に記憶されている前記イメージファイルを使用して一時停止前状態の状態から再開させるよう前記仮想化装置に指示する仮想化装置管理部を備え、前記種火インスタンス管理装置は、前記一時停止対象のインスタンスの解放後、当該一時停止対象のインスタンスが使用していた通信アドレスを宛先としたイベントを検出した場合に、当該一時停止対象のインスタンスの再開の要求を出力する処理と、当該一時停止対象のインスタンスの起動に検出した前記イベントを受け渡す処理とを含んだ種火インスタンスを生成する種火インスタンス管理部を備え、前記インスタンス管理装置は、前記インスタンスが生成されたときに、当該インスタンスがアクティブ状態であることを示す情報と、当該インスタンスの生成要求から取得した利用者の識別情報とを対応づけて前記インスタンス管理情報記憶装置に書込み、前記アクティブインスタンス管理装置の仮想化装置管理部が、一時停止対象の前記インスタンスを検出したときに、当該インスタンスが一時停止状態であることを示す情報を前記インスタンス管理情報記憶装置に書込み、前記インスタンスが再開されたときに、当該インスタンスがアクティブ状態であることを示す情報を前記インスタンス管理情報記憶装置に書き込むインスタンス状態管理部を備える、ことを特徴とするインスタンス管理システムである。
【0010】
また、本発明は、上述するインスタンス管理システムであって、一時停止されている前記インスタンスを管理するセミサスペンドインスタンス管理装置をさらに備え、前記セミサスペンドインスタンス管理装置は、前記種火インスタンスが生成されてから、前記一時停止対象のインスタンスが使用していた通信アドレスを宛先としたイベントを受信せずに経過した時間を計測し、所定時間以上経過したことを検出するセミサスペンドインスタンス管理部と、前記セミサスペンドインスタンス管理部が所定時間経過したことを検出した場合に、前記セミサスペンドインスタンス保存装置に記憶されている前記イメージファイルを、当該セミサスペンドインスタンス保存装置よりデータの読み出しが低速なサスペンドインスタンス保存装置に移動するセミサスペンドインスタンス保存装置管理部とを備える、ことを特徴とする。
【0011】
また、本発明は、上述するインスタンス管理システムであって、前記イメージファイルがサスペンドインスタンス保存装置に移動されてから、前記一時停止対象のインスタンスが使用していた通信アドレスを宛先としたイベントを受信せずに経過した時間を計測するサスペンドインスタンス管理装置と、前記サスペンドインスタンス管理装置により計測された時間が所定時間以上であることを検出した場合に警告を出力する通知装置と、をさらに備えることを特徴とする。
【0012】
また、本発明は、上述するインスタンス管理システムであって、前記インスタンス管理装置は、前記インスタンス管理情報記憶装置を参照して得た、各利用者の識別情報に対応するインスタンスのアクティブ状態の累積時間及び一時停止状態の累積時間に基づいて当該利用者の課金金額を算出する課金管理部をさらに備える、ことを特徴とする。
【0013】
また、本発明は、複数の仮想マシンとして動作する仮想化装置に生成されているインスタンスを管理するアクティブインスタンス管理装置と、一時停止対象のインスタンスの解放後、当該一時停止対象のインスタンスが使用していた通信アドレスを宛先としたイベントを検出した場合に、当該一時停止対象のインスタンスの再開の要求を出力する処理と、当該一時停止対象のインスタンスの起動に検出した前記イベントを受け渡す処理とを含んだ種火インスタンスを生成する種火インスタンス管理装置と、一時停止前の前記インスタンスの状態を記録したイメージファイルを記憶するセミサスペンドインスタンス保存装置とを備えるインスタンス管理システムの前記アクティブインスタンス管理装置に用いられるコンピュータプログラムであって、前記仮想化装置に生成されている前記インスタンスのうち、所定時間実行されていない前記インスタンスを一時停止対象のインスタンスとして検出する検出ステップと、前記検出ステップにおいて検出した当該一時停止対象のインスタンスの現在の状態を記録したイメージファイルの生成、及び、当該イメージファイルのセミサスペンドインスタンス保存装置への書込みと、前記種火インスタンス管理装置が生成した種火インスタンスの起動とを前記仮想化装置へ指示する種火インスタンス起動ステップと、前記種火インスタンスの起動後に前記一時停止対象のインスタンスの解放を前記仮想化装置へ指示するインスタンス解放指示ステップと、前記種火インスタンスから、前記一時停止対象のインスタンスが使用していた通信アドレスを宛先としたイベントを検出したときに出力される再開の要求を受信した場合に、前記一時停止対象のインスタンスを前記セミサスペンドインスタンス保存装置に記憶されている前記イメージファイルを使用して一時停止前状態の状態から再開させるよう前記仮想化装置に指示する再開指示ステップと、をコンピュータに実行させることを特徴とするコンピュータプログラムである。
【発明の効果】
【0014】
本発明によれば、使用されていないと判断されたインスタンスを一時的に停止し、この一時的に停止された際の状態を記録して当該インスタンスを解放するとともに、当該インスタンスへのイベントが発生した際には高速に再開させるための種火インスタンスを起動する。よって、この一時停止されたインスタンスについては、しばらくはリソースが不要となるため、その不要となったリソースをリソースプールに戻して、他のインスタンスに割り振ることが可能となる。そして、一時停止した後、さらに時間が経過してもインスタンスが再開されない場合には、一時停止された際の状態を記録したイメージファイルを安価な記憶装置に移動することによって、コストをさらに下げることができる。そして、長時間インスタンスが再開されない場合には警告を出力し、注意を促すことができる。
【図面の簡単な説明】
【0015】
【図1】本発明の一実施の形態によるインスタンス管理システムの概要を説明するための図である。
【図2】同実施の形態による一実施の形態によるインスタンス管理システムの構成を示すブロック図である。
【図3】同実施の形態によるインスタンス管理テーブルのデータ構成例を示す図である。
【図4】同実施の形態によるアクティブインスタンス管理テーブルのデータ構成例を示す図である。
【図5】同実施の形態によるセミサスペンドインスタンス管理テーブルのデータ構成例を示す図である。
【図6】同実施の形態によるサスペンドインスタンス管理テーブルのデータ構成例を示す図である。
【図7】同実施の形態による課金管理テーブルのデータ構成例を示す図である。
【図8】同実施の形態によるスナップショットイメージ構成ファイルの構成例を示す図である。
【図9】同実施の形態によるインスタンス管理システムの処理手順を示す図である。
【図10】同実施の形態によるインスタンス管理システムにおけるインスタンス作成時のシーケンス図である。
【図11】同実施の形態によるインスタンス管理システムにおけるアクティブインスタンス非活性検出時のシーケンス図である。
【図12】同実施の形態によるインスタンス管理システムにおけるセミサスペンド移行時のシーケンス図である。
【図13】同実施の形態によるインスタンス管理システムにおけるセミサスペンド移行時のシーケンス図である。
【図14】同実施の形態によるインスタンス管理システムにおけるセミサスペンド状態からの再開時のシーケンス図である。
【図15】同実施の形態によるインスタンス管理システムにおけるセミサスペンド状態からの再開時のシーケンス図である。
【図16】同実施の形態によるインスタンス管理システムにおけるセミサスペンドインスタンス非活性検出時のシーケンス図である。
【図17】同実施の形態によるインスタンス管理システムにおけるサスペンド移行時のシーケンス図である。
【図18】同実施の形態によるインスタンス管理システムにおける課金処理手順を示す図である。
【発明を実施するための形態】
【0016】
以下、図面を参照して本発明の実施形態の例について説明する。
図1は、本発明の一実施形態によるインスタンス管理システムの概要を説明するための図である。クラウドコンピューティングシステムにおいて、仮想化装置1は、ネットワークを介して接続される利用者の端末等から要求されたインスタンスIを生成し、実行することによりクラウドコンピュータサービスを提供する。インスタンス管理装置2は、仮想化装置1に対するインスタンス生成が要求されたことを検出し、この生成されたインスタンスIの状態を管理する。生成直後のインスタンスIはアクティブ(活性)状態である。アクティブインスタンス管理装置3は、仮想化装置1上で解放し忘れとなっている無駄なリソースの消費がないように、仮想化装置1のCPU(central processing unit)の消費状態などのリソース監視を行ない、非活性となっている、つまり、所定時間実行されていないインスタンスIを検出する。
【0017】
仮想化装置1において非活性になっているインスタンスIが検出された場合、アクティブインスタンス管理装置3は、当該インスタンスIをセミサスペンド状態とする。セミサスペンド状態とは、インスタンスIが再開可能な最小限の情報を、比較的読み出しが早い記憶装置に保持して当該インスタンスIを一旦終了し、ユーザから当該インスタンスIへの要求を受信した場合は、保持していた情報を読み出して一旦終了したインスタンスIを再び生成して元の状態から実行させることができる状態である。
【0018】
具体的には、仮想化装置1は、インスタンスIを再開可能な最小限の情報として、セミサスペンド状態とすべきインスタンスのスナップショットAを生成し、メモリ装置で構成されるセミサスペンドインスタンス保存装置5の記憶領域に書き込むとともにインスタンスを終了し、アクティブ状態のときに当該インスタンスが利用していたリソースを解放する。そして、アクティブインスタンス管理装置3は、種火インスタンス管理装置6によって生成された種火インスタンスTを、仮想化装置1上で起動させる。この種火インスタンスTとは、元のインスタンスIが使用していた通信ポートなどを引き継いで監視し、その通信ポートにアクセスがあった場合には、元のインスタンスIの再開(レジューム)を指示する機能だけを有するコンパクトなインスタンスである。セミサスペンドインスタンス管理装置4は、元のインスタンスIのセミサスペンド状態の継続を監視する。
【0019】
セミサスペンド状態となった後、種火インスタンスTへのアクセスがなく、セミサスペンドインスタンス管理装置4において一定時間セミサスペンド状態が続いたことが検出された場合、当該インスタンスをサスペンド状態とする。サスペンド状態とは、セミサスペンド状態に移行したときに生成した、インスタンスIが再開できるだけの最小限の情報を、安価かつ比較的読み出しが遅い記憶装置に保持している状態である。つまり、セミサスペンドインスタンス保存装置5に記憶していたスナップショットAは、ディスク装置で構成されるサスペンドインスタンス保存装置8の記憶領域に移されてスナップショットBとして記憶され、サスペンドインスタンス管理装置7は、元のインスタンスIのサスペンド状態の継続を監視する。
【0020】
なお、セミサスペンド状態、あるいは、サスペンド状態において、元のインスタンスへのアクセスがあった場合、これを検知した種火インスタンスTによって、元のインスタンスIが再開される。一方、サスペンド状態のまま一定時間が経過した場合、通知装置9から、非活性なインスタンスによって課金が行なわれている旨の通知を利用者の端末に送信する。これにより、利用者へ使用していないインスタンスの停止を促し、サスペンド領域の節約、利用者へ注意を喚起する。
利用者へ請求すべき料金は、インスタンスが保持されている時間に応じて決定する従量課金であるが、セミサスペンド状態、サスペンド状態にあった時間分についてはアクティブ状態よりも単価が低くなるよう割引する。
【0021】
図2は、インスタンス管理システムの構成を示すブロック図である。
同図において、インスタンス管理システムは、仮想化装置1、インスタンス管理装置2、アクティブインスタンス管理装置3、セミサスペンドインスタンス管理装置4、セミサスペンドインスタンス保存装置5、種火インスタンス管理装置6、サスペンドインスタンス管理装置7、サスペンドインスタンス保存装置8、通知装置9、インスタンス管理テーブル記憶装置11、アクティブインスタンス管理テーブル記憶装置12、セミサスペンドインスタンス管理テーブル記憶装置13、サスペンドインスタンス管理テーブル記憶装置14、及び、課金管理テーブル記憶装置15を、IP(Internet Protocol)などを利用したネットワークNを介して接続してなる。ネットワークNには、利用者の端末100も接続される。
【0022】
インスタンス管理テーブル記憶装置11は、各インスタンスの状態等を管理するインスタンス管理テーブルを記憶する。アクティブインスタンス管理テーブル記憶装置12は、アクティブ状態にあるインスタンスを管理するアクティブインスタンス管理テーブルを記憶する。セミサスペンドインスタンス管理テーブル記憶装置13は、セミサスペンド状態にあるインスタンスを管理するセミサスペンドインスタンス管理テーブルを記憶する。サスペンドインスタンス管理テーブル記憶装置14は、サスペンド状態にあるインスタンスを管理するサスペンドインスタンス管理テーブルを記憶する。課金管理テーブル記憶装置15は、課金情報を生成するために使用する課金管理テーブルを記憶する。課金管理テーブルは、それぞれのインスタンスの各状態における累積時間を示す。
【0023】
仮想化装置1は、例えば、1台の物理コンピュータを仮想的な複数台のコンピュータとしてとして使用可能な仮想マシンにより実現することができる。ここでの仮想マシンは、各ユーザから要求されたクラウドコンピュータサービスを実行するインスタンスに相当する。仮想化装置1は、インスタンスが生成された際、CPUやメモリなどのリソースや、アドレスを当該インスタンスに割当てる。
【0024】
インスタンス管理装置2は、例えば、サーバ等により実現することができ、ユーザ要求受付部21、インスタンス状態管理部22、及び、課金管理部23を備える。ユーザ要求受付部21は、インスタンスの生成や起動の要求を受信する。また、利用者の端末100から受信したインスタンスへの処理要求に設定されている外部IPアドレスを、仮想化装置1上で実行されている仮想マシンの内部IPアドレスに変換し、インスタンスから利用者の端末100へ返送される処理結果の内部アドレスを外部アドレスへ変換する。インスタンス状態管理部22は、各インスタンスの状態を管理し、インスタンス管理テーブルを更新する。課金管理部23は、各インスタンスの状態に応じて課金管理テーブルを更新するとともに、課金管理テーブルに基づいて課金処理を行なう。
【0025】
アクティブインスタンス管理装置3は、例えば、サーバ等により実現することができ、アクティブインスタンス管理部31及び仮想化装置管理部32を備える。アクティブインスタンス管理部31は、アクティブ状態のインスタンスを管理し、アクティブインスタンス管理テーブルを更新する。仮想化装置管理部32は、仮想化装置1に対して仮想マシン、すなわち、インスタンスの生成や起動、解放を指示するとともに、仮想化装置1におけるアクティブ状態のインスタンスが、非活性となっていないかを監視する。
【0026】
セミサスペンドインスタンス管理装置4は、例えば、サーバ等により実現することができ、セミサスペンドインスタンス管理部41及びセミサスペンドインスタンス保存装置管理部42を備える。セミサスペンドインスタンス管理部41は、セミサスペンド状態のインスタンスを管理し、セミサスペンドインスタンス管理テーブルを更新する。セミサスペンドインスタンス保存装置管理部42は、セミサスペンドインスタンス保存装置5にスナップショットイメージ構成ファイルを保存すべき領域を決定する。また、サスペンド状態とすべきインスタンスのスナップショットイメージ構成ファイルを、セミサスペンドインスタンス保存装置5からサスペンドインスタンス保存装置8に書き換える。
【0027】
セミサスペンドインスタンス保存装置5は、メモリ装置で構成され、セミサスペンド状態にあるインスタンスのスナップショットイメージ構成ファイルを記憶する。
種火インスタンス管理装置6は、種火インスタンス管理部61を備える。種火インスタンス管理部61は、セミサスペンドされたインスタンスに対応した種火インスタンスを生成する。
【0028】
サスペンドインスタンス管理装置7は、例えば、サーバ等により実現することができ、サスペンドインスタンス管理部71及びサスペンドインスタンス保存装置管理部72を備える。サスペンドインスタンス管理部71は、サスペンド状態にあるインスタンスを管理し、サスペンドインスタンス管理テーブルを更新する。サスペンドインスタンス保存装置管理部72は、サスペンドインスタンス保存装置8にスナップショットイメージ構成ファイルを保存すべき領域を決定する。
サスペンドインスタンス保存装置8は、メモリ装置よりも安価かつデータの読書きが低速なディスク装置で構成され、サスペンド状態にあるインスタンスのスナップショットイメージ構成ファイルを記憶する。
【0029】
なお、インスタンス管理装置2、アクティブインスタンス管理装置3、セミサスペンドインスタンス管理装置4、種火インスタンス管理装置6、サスペンドインスタンス管理装置7、通知装置9、インスタンス管理テーブル記憶装置11、アクティブインスタンス管理テーブル記憶装置12、セミサスペンドインスタンス管理テーブル記憶装置13、サスペンドインスタンス管理テーブル記憶装置14、課金管理テーブル記憶装置15のうち任意の装置を同じサーバ等の装置により実現してもよい。
【0030】
図3は、インスタンス管理テーブル記憶装置11に記憶されるインスタンス管理テーブルのデータ構成例を示す図である。同図において、インスタンス管理テーブルは、インスタンスを一意に特定する識別子(ID)であるインスタンスID、当該インスタンスの状態、当該インスタンスの生成要求元のユーザを一意に特定する識別子であるユーザID、当該インスタンスのスナップショットイメージ構成ファイルを記憶している記憶領域のURI(Universal Resource Identifier)である保存イメージURI、仮想化装置1における当該インスタンスへのアクセスアドレスである内部IPアドレス、ユーザへ通知する当該インスタンスへのアクセスアドレスである外部IPアドレスのデータ項目を含む複数のレコードからなる。
【0031】
図4は、アクティブインスタンス管理テーブル記憶装置12に記憶されるアクティブインスタンス管理テーブルのデータ構成例を示す図である。同図において、アクティブインスタンス管理テーブルは、アクティブ状態にあるインスタンスを一意に特定する識別子であるアクティブインスタンスID、当該インスタンスのインスタンスID、インスタンス状態、内部IPアドレス、及び、当該インスタンスが最後にアクセスされてからの経過時間であるアイドル時間のデータ項目を含む複数のレコードからなる。
【0032】
図5は、セミサスペンドインスタンス管理テーブル記憶装置13に記憶されるセミサスペンドインスタンス管理テーブルのデータ構成例を示す図である。同図において、セミサスペンドインスタンス管理テーブルは、セミサスペンド状態にあるインスタンスを一意に特定する識別子であるセミサスペンドインスタンスID、当該インスタンスのインスタンスID、当該インスタンスのスナップショットイメージ構成ファイルが保持されるセミサスペンドインスタンス保存装置5の記憶領域を示す保存イメージURI、当該インスタンスのインスタンス状態、当該インスタンスがセミサスペンド状態になってからアクセスされずに経過した時間であるセミサスペンド状態持続時間のデータ項目を含む複数のレコードからなる。
【0033】
図6は、サスペンドインスタンス管理テーブル記憶装置14に記憶されるサスペンドインスタンス管理テーブルのデータ構成例を示す図である。同図において、サスペンドインスタンス管理テーブルは、サスペンド状態にあるインスタンスを一意に特定する識別子であるサスペンドインスタンスID、当該インスタンスのインスタンスID、当該インスタンスのスナップショットイメージ構成ファイルが保持されるサスペンドインスタンス保存装置8の記憶領域を示す保存イメージURI、当該インスタンスがサスペンド状態になってからアクセスされずに経過した時間であるサスペンド状態持続時間のデータ項目を含む複数のレコードからなる。
【0034】
図7は、課金管理テーブル記憶装置15に記憶される課金管理テーブルのデータ構成例を示す図である。同図において課金管理テーブルは、各ユーザIDに対応しており、インスタンスIDと、インスタンスIDにより特定されるインスタンスのアクティブ状態累積時間、セミサスペンド状態累積時間及びサスペンド状態累積時間とのデータ項目を含む複数のレコードからなる。
【0035】
図8は、スナップショットイメージ構成ファイルの構成例を示す図である。同図において、スナップショットイメージ構成ファイルは、セミサスペンド状態移行時にインスタンスが使用していたレジスタ値などを構造体で記憶したインスタンス状態、インスタンスのメインメモリイメージのサイズをバイト数で示したインスタンスメモリサイズ、当該メインメモリイメージをバイナリデータで示したインスタンスメモリなどから構成される。
【0036】
次にインスタンス管理システムの処理について説明する。
図9は、インスタンス管理システムの処理手順を示す図である。
まず、アクティブインスタンスがセミサスペンド化される手順について説明する。
仮想化装置1は、ネットワークを介して接続される利用者の端末100等から要求を受けてインスタンスを生成し、要求された処理を実行している。アクティブインスタンス管理装置3は、仮想化装置1上で解放し忘れとなっている無駄なリソースを消費することがないように、一定時間利用者から利用されていない、つまり、非活性となっているインスタンスを検出する(ステップS1)。例えば、仮想化装置1で実行されている各インスタンスについて、CPUの消費状態などのリソース監視を行ない、一定時間以上CPUのアイドル時間が継続していることを検出した場合に、非活性であると判断する。
【0037】
仮想化装置1において非活性になっているインスタンスを検出したアクティブインスタンス管理装置3は、当該インスタンスのセミサスペンド化依頼をインスタンス管理装置2に送信する(ステップS2)。インスタンス管理装置2は、セミサスペンド化の対象となるインスタンスのスナップショットイメージ構成ファイルを保存する領域の確保依頼をセミサスペンドインスタンス管理装置4へ送信するとともに(ステップS3)、アクティブインスタンス管理装置3へ当該インスタンスのスナップショット作成依頼を送信する(ステップS4)。アクティブインスタンス管理装置3からスナップショット作成依頼を受信した仮想化装置1は、その時点のインスタンスのスナップショットからスナップショットイメージ構成ファイルを生成して、セミサスペンドインスタンス管理装置4が確保したセミサスペンドインスタンス保存装置5の保存領域に保存する。
【0038】
さらに、インスタンス管理装置2は、種火インスタンスの作成依頼を種火インスタンス管理装置6へ送信するとともに(ステップS5)、種火インスタンス管理装置6により生成された種火インスタンスの起動依頼をアクティブインスタンス管理装置3へ送信する(ステップS6)。アクティブインスタンス管理装置3は、種火インスタンスの起動依頼を仮想化装置1に送信し(ステップS7)、仮想化装置1は種火インスタンスを起動する(ステップS8)。続いて、インスタンス管理装置2は、セミサスペンドインスタンスの登録依頼をセミサスペンドインスタンス管理装置4へ送信し(ステップS9)、セミサスペンドインスタンス管理装置4は、登録したセミサスペンド状態のインスタンスを監視する。インスタンス管理装置2は、元のインスタンスの解放を指示するアクティブインスタンス解放依頼をアクティブインスタンス管理装置3へ送信する(ステップS10)。仮想化装置1は、アクティブインスタンス管理装置3からアクティブインスタンス解放依頼を受信し、元のインスタンスが利用していたリソースを解放する。上記のように、種火インスタンス生成はインスタンス停止前に行い、インスタンスの停止と同時に種火インスタンスへ制御が渡される。
【0039】
続いて、セミサスペンド化されたインスタンスが再開する手順について説明する。
インスタンスがセミサスペンド化された後、利用者の端末100から元のインスタンスと同じアドレスを宛先として処理要求が送信されると、仮想化装置1において起動されている種火インスタンスが当該処理要求の発生を検知する(ステップS11)。この処理要求の検知によって種火インスタンスは、元のインスタンスを起動させるためのインスタンス起動依頼をインスタンス管理装置2へ送信する(ステップS12)。
【0040】
インスタンス管理装置2は、受信したアクティブインスタンス起動依頼をアクティブインスタンス管理装置3へ送信し(ステップS13)、アクティブインスタンス管理装置3はスナップショットイメージ構成ファイルの保存場所を仮想化装置1に通知して、元のインスタンスを起動させる(ステップS14)。これにより、仮想化装置1は、セミサスペンド状態に移行したときの状態から元のインスタンスを再開させる(ステップS15)。インスタンス管理装置2は、セミサスペンドインスタンス管理装置4へセミサスペンドインスタンスの削除を指示し、再開されたインスタンスを監視対象から除外する(ステップS16)。再開されたインスタンスは再びアクティブインスタンス管理装置3による監視対象に移行する。
【0041】
次に、セミサスペンド状態のインスタンスをサスペンド化させる手順について説明する。
インスタンスがセミサスペンド化された後、一定時間セミサスペンド状態が続いた、つまり、一定時間種火インスタンスへのアクセスがないことをセミサスペンドインスタンス管理装置4が検出すると(ステップS21)、当該インスタンスのサスペンド化依頼をインスタンス管理装置2へ送信する(ステップS22)。インスタンス管理装置2は、サスペンド化の対象となるインスタンスのスナップショットイメージ構成ファイルを保存するための領域の確保依頼をサスペンドインスタンス管理装置7へ送信するとともに(ステップS23)、インスタンスのサスペンド化依頼をセミサスペンドインスタンス管理装置4へ送信する(ステップS24)。セミサスペンドインスタンス管理装置4は、セミサスペンドインスタンス保存装置5に記憶していたスナップショットイメージ構成ファイルを、サスペンドインスタンス管理装置7が確保したサスペンドインスタンス保存装置8の保存領域に移動させる。
【0042】
なお、サスペンド状態において種火インスタンスが元のインスタンスにアクセスがあったことを検出した場合、ステップS11〜S14と同様の手順により、セミサスペンド状態に移行したときの状態からインスタンスを再開させる。そして、インスタンス管理装置2は、サスペンドインスタンス管理装置7へサスペンドインスタンスの削除を指示し、再開されたインスタンスを監視対象から除外する。再開されたインスタンスは再びアクティブインスタンス管理装置3による監視対象に移行する。
【0043】
続いて、インスタンス管理システムの詳細な処理について説明する。
図10は、インスタンス作成時のインスタンス管理システムのシーケンス図である。
まず、インスタンス管理装置2のユーザ要求受付部21が、利用者の端末100から、起動イメージURI及びユーザIDが設定されたインスタンス生成要求を受信する(ステップS105)。起動イメージURIとは、クラウドコンピュータサービスを提供する仮想マシンを実行させるためのマシンイメージがストレージ内どこに記憶されているかの記憶場所を指定するものである。ユーザ要求受付部21は、利用者の端末100から受信したインスタンス生成要求をインスタンス状態管理部22へ出力する(ステップS110)。インスタンス状態管理部22は、ユーザ要求受付部21からインスタンス生成要求を受信すると、新たなインスタンスIDを生成し(ステップS115)、インスタンス管理テーブルに、生成したインスタンスIDと、受信したインスタンス生成要求から取得したユーザIDとを設定したレコードを追加する(ステップS120)。インスタンス状態管理部22は、生成したインスタンスIDと、インスタンス生成要求から取得した起動イメージURIとを設定したアクティブインスタンス生成要求をアクティブインスタンス管理装置3へ送信する(ステップS125)。
【0044】
アクティブインスタンス管理装置3のアクティブインスタンス管理部31は、インスタンス管理装置2からアクティブインスタンス生成要求を受信すると、新たなアクティブインスタンスIDを生成し(ステップS130)、アクティブインスタンス管理テーブルに、生成したアクティブインスタンスIDと、アクティブインスタンス生成要求から取得したインスタンスIDとを設定したレコードを追加する(ステップS135)。アクティブインスタンス管理部31は、インスタンス管理装置2から受信したアクティブインスタンス生成要求を仮想化装置管理部32へ出力し(ステップS140)、仮想化装置管理部32は、アクティブインスタンス生成要求から起動イメージURIを取得し、取得した起動イメージURIを設定した仮想マシン起動依頼を仮想化装置1へ送信する(ステップS145)。
【0045】
仮想化装置1は、仮想マシン起動依頼に設定されている起動イメージURIにより特定されるマシンイメージを実行して仮想マシン、つまり、インスタンスを生成すると、当該インスタンスの識別子を設定した仮想マシン起動完了通知をアクティブインスタンス管理装置3へ返送する(ステップS150)。ここでは、識別子として、インスタンスが使用する内部IPアドレスが用いられる。識別子として内部IPアドレス自体ではなく、内部IPアドレスを一部に含んだ情報を用いることもできる。
【0046】
アクティブインスタンス管理装置3の仮想化装置管理部32は、受信した仮想マシン起動完了通知から識別子を取得し、この取得した識別子を設定したアクティブインスタンス生成完了通知をアクティブインスタンス管理部31に返送する(ステップS155)。アクティブインスタンス管理部31は、アクティブインスタンス生成完了通知を受信すると、ステップS135において追加したレコードのインスタンス状態にアクティブを設定するとともに、当該レコードにアクティブインスタンス生成完了通知から取得した識別子である内部IPアドレスを設定する(ステップS160)。アクティブインスタンス管理部31は、仮想化装置管理部32から受信したアクティブインスタンス生成完了通知をインスタンス管理装置2へ送信する(ステップS165)。
【0047】
インスタンス管理装置2のインスタンス状態管理部22は、ステップS120において追加したインスタンス管理テーブルのレコードに、アクティブを示すインスタンス状態を設定するとともに、当該レコードにアクティブインスタンス生成完了通知から取得した識別子である内部IPアドレスを設定する(ステップS170)。インスタンス状態管理部22は、アクティブインスタンス生成完了通知から識別子を取得し、取得した識別子を設定したインスタンス生成完了通知をユーザ要求受付部21へ返送する(ステップS175)。ユーザ要求受付部21は、外部IPアドレスを割付けると、この割付けた外部IPアドレスと、インスタンス生成完了通知に設定されている内部アドレスとを対応付けて自身の備える記憶手段に記憶する(ステップS180)。インスタンス状態管理部22は、ユーザ要求受付部21が割付けた外部IPアドレスを、ステップS170において更新したインスタンス管理テーブルのレコードに追加する。ユーザ要求受付部21は、割付けた外部IPアドレスを識別子として設定したインスタンス生成完了通知を利用者の端末100へ返送する(ステップS185)。ここでは、識別子として外部IPアドレスを用いているが、外部IPアドレスを一部に含んだ情報を用いることもできる。
【0048】
利用者は、自身の端末100により通知された識別子により仮想化装置1と相互に通信し、当該仮想化装置1において起動されたインスタンス(仮想マシン)の提供するクラウドコンピュータサービスを享受する。すなわち、利用者の端末100からの処理要求などのイベントを受信すると、インスタンスは、当該イベントに従ってクラウドコンピュータサービスを実行し、その実行結果を利用者の端末100に返送する。なお、利用者の端末100から送信される処理要求に設定された識別子としての外部IPアドレスは、インスタンス管理装置2のユーザ要求受付部21によって内部IPアドレスに変換され、仮想化装置1上で実行されているインスタンスに到達する。また、当該インスタンスの実行結果に設定される識別子としての内部IPアドレスは、インスタンス管理装置2のユーザ要求受付部21によって外部IPアドレスに変換され、利用者の端末100へ返送される。
【0049】
図11は、アクティブインスタンス非活性検出時のインスタンス管理システムのシーケンス図である。
アクティブインスタンス管理装置3の仮想化装置管理部32は、アクティブインスタンス管理テーブル記憶装置12内のアクティブインスタンス管理テーブルを参照してインスタンス状態がアクティブであるインスタンスの内部IPアドレスを特定し、この特定した内部IPアドレスにより特定されるインスタンスそれぞれについて、定期的に、仮想化装置1におけるリソース消費状態を収集する(ステップS205)。仮想化装置管理部32は、収集した各インスタンスのリソース消費状態に基づいて、アクティブインスタンス管理テーブル内のアイドル時間を更新する。
【0050】
あるいは、アクティブインスタンス管理装置3が、インスタンス状態がアクティブであるアクティブインスタンス管理テーブル内の各レコードのアイドル時間を1秒毎などの所定時間毎に更新していき、インスタンスへのアクセスが検出されたときに、仮想化装置1またはインスタンス管理装置2から通知を受け、当該インスタンスに対応したレコードのアイドル時間を0クリアするようにしてもよい。
【0051】
仮想化装置管理部32は、アクティブインスタンス管理テーブルに、インスタンス状態がアクティブであり、かつ、アイドル時間に例えば1時間以上などの所定の閾値以上の時間が設定されているレコードがあるかの検索を行う。インスタンス状態がアクティブであり、かつ、アイドル時間に所定の閾値以上の時間が設定されているレコードが検出された場合、仮想化装置管理部32は、当該レコードに対応するインスタンスをセミサスペンド状態に移行させるべきであると判断する(ステップS210)。
【0052】
仮想化装置管理部32は、検出されたレコードから読み出したアクティブインスタンスIDを設定したセミサスペンド化依頼をアクティブインスタンス管理部31へ出力する(ステップS215)。アクティブインスタンス管理部31は、受信したセミサスペンド化依頼からアクティブインスタンスIDを取得すると、取得したアクティブインスタンスIDにより特定されるアクティブインスタンス管理テーブル内のレコードにセミサスペンド化中を設定してインスタンス状態を更新するとともに、当該レコードからインスタンスIDを読み出す(ステップS220)。アクティブインスタンス管理部31は、読み出したインスタンスIDを設定したセミサスペンド化依頼をインスタンス管理装置2へ出力する(ステップS225)。
【0053】
インスタンス管理装置2のインスタンス状態管理部22は、受信したセミサスペンド化依頼からインスタンスIDを取得すると、取得したインスタンスIDにより特定されるインスタンス管理テーブル内のレコードにセミサスペンド化中を設定し、インスタンス状態を更新する(ステップS230)。ユーザ要求受付部21は、セミサスペンド化依頼受付完了通知をアクティブインスタンス管理装置3へ送信し(ステップS235)、アクティブインスタンス管理装置3のアクティブインスタンス管理部31は、インスタンス管理装置2から受信したセミサスペンド化依頼完了通知を仮想化装置管理部32へ出力する(ステップS240)。
【0054】
図12及び図13は、図11に続いて実行される、セミサスペンド移行時のインスタンス管理システムのシーケンス図である。
図12において、インスタンス管理装置2は、図11のステップS230において取得したインスタンスIDを保存領域確保依頼に設定し、セミサスペンドインスタンス管理装置4へ送信する(ステップS305)。セミサスペンドインスタンス管理装置4のセミサスペンドインスタンス管理部41は、インスタンス管理装置2から受信した保存領域確保依頼をセミサスペンドインスタンス保存装置管理部42へ出力し、セミサスペンドインスタンス保存装置管理部42は、現在使用されていないセミサスペンドインスタンス保存装置5の保存領域を割当てる(ステップS310)。セミサスペンドインスタンス保存装置管理部42は、割当てた保存領域を特定するURIである保存イメージURIを設定した保存領域確保通知をセミサスペンドインスタンス管理部41に返送する(ステップS315)。
【0055】
セミサスペンドインスタンス管理部41は、セミサスペンドインスタンス管理テーブル記憶装置13に記憶されているセミサスペンドインスタンス管理テーブルに新たなレコードを追加し、当該レコードに保存領域確保依頼から取得したインスタンスIDと、保存領域確保通知から取得した保存イメージURIを設定する(ステップS320)。セミサスペンドインスタンス管理部41は、セミサスペンドインスタンス保存装置管理部42から受信した保存領域確保通知をインスタンス管理装置2へ送信する(ステップS325)。
【0056】
インスタンス管理装置2のインスタンス状態管理部22は、ステップS305において送信したインスタンスIDにより特定されるアクティブインスタンス管理テーブル内のレコードの保存イメージURIに、保存領域確保通知から取得した保存イメージURIを書き込む(ステップS330)。インスタンス状態管理部22は、インスタンスID及び保存イメージURIを設定したスナップショット作成依頼をアクティブインスタンス管理装置3へ送信する(ステップS335)。
【0057】
アクティブインスタンス管理装置3のアクティブインスタンス管理部31は、スナップショット作成依頼からインスタンスIDを取得し、当該インスタンスIDに対応した内部IPアドレスをアクティブインスタンス管理テーブルから読み出す。アクティブインスタンス管理部31は、インスタンス管理装置2から受信したスナップショット作成依頼のインスタンスIDを、読み出した内部IPアドレスを示す識別子に置き換えて仮想化装置管理部32へ出力する(ステップS340)。仮想化装置管理部32は、仮想化装置1へスナップショット作成依頼を送信すると(ステップS345)、仮想化装置1は、スナップショット作成依頼に設定されている識別子で特定されるインスタンスについて、その時点のスナップショットを生成し、スナップショットイメージ構成ファイルを作成する(ステップS350)。仮想化装置1は、スナップショット作成依頼から保存イメージURIを取得すると、当該保存イメージURIにより特定されるセミサスペンドインスタンス保存装置5の記憶領域に、作成したスナップショットイメージ構成ファイルを書き込み、スナップショット作成完了通知をアクティブインスタンス管理装置3へ返送する(ステップS355)。なお、仮想化装置1が作成したスナップショットイメージ構成ファイルをアクティブインスタンス管理装置3へ送信し、アクティブインスタンス管理装置3においてセミサスペンドインスタンス保存装置5へ書き込むことでもよい。
【0058】
アクティブインスタンス管理装置3の仮想化装置管理部32は、スナップショット作成完了通知をアクティブインスタンス管理部31に返送する(ステップS360)。アクティブインスタンス管理部31は仮想化装置管理部32から受信したスナップショット作成完了通知をインスタンス管理装置2へ出力する(ステップS365)。
【0059】
インスタンス管理装置2のインスタンス状態管理部22は、アクティブインスタンス管理装置3からスナップショット作成完了通知を受信すると、ステップS305において送信したインスタンスIDを設定した種火インスタンス作成依頼を種火インスタンス管理装置6へ送信する(ステップS370)。種火インスタンス管理装置6の種火インスタンス管理部61は、種火インスタンス作成依頼を受信すると、種火インスタンスのオブジェクトである種火インスタンスイメージを生成して記憶する(ステップS375)。種火インスタンス管理部61は、種火インスタンスイメージを記憶した領域のURIである種火インスタンスイメージURIを設定した種火インスタンス作成完了通知をインスタンス管理装置2へ返送する(ステップS380)。
【0060】
図13において、インスタンス管理装置2のインスタンス状態管理部22は、種火インスタンス管理装置6から受信した種火インスタンス作成完了通知から種火インスタンスイメージURIを取得し、取得した種火インスタンスイメージURIと、インスタンスIDとを設定した種火インスタンス起動依頼をアクティブインスタンス管理装置3へ送信する(ステップS405)。アクティブインスタンス管理装置3のアクティブインスタンス管理部31は、インスタンス管理装置2から受信した仮想マシン起動依頼を仮想化装置管理部32へ出力し(ステップS410)、仮想化装置管理部32は当該仮想マシン起動依頼を仮想化装置1へ送信する(ステップS415)。
【0061】
仮想化装置1は、受信した仮想マシン起動依頼に設定されている種火インスタンスイメージURIで特定される種火インスタンスを起動する。仮想化装置1は、当該種火インスタンスにアクセスする際に使用する識別子を設定した仮想マシン起動完了通知をアクティブインスタンス管理装置3へ返送する(ステップS420)。この識別子には、内部IPアドレスが用いられ、元のインスタンスとは異なる値となる。
【0062】
アクティブインスタンス管理装置3の仮想化装置管理部32は、受信した仮想マシン起動完了通知をアクティブインスタンス管理部31に出力し(ステップS425)、アクティブインスタンス管理部31は、仮想マシン起動完了通知から取得した識別子を設定した種火インスタンス起動完了通知をインスタンス管理装置2へ送信する(ステップS430)。
【0063】
インスタンス管理装置2のインスタンス状態管理部22は、ステップS405において通知したインスタンスIDにより特定されるインスタンス管理テーブル内のレコードに、セミサスペンドを設定したインスタンス状態と書き込むとともに、種火インスタンス起動完了通知から取得した識別子である内部IPアドレスを設定する(ステップS435)。インスタンス状態管理部22は、上記のインスタンスIDを設定したセミサスペンド化登録依頼をセミサスペンドインスタンス管理装置4に送信する(ステップS440)。セミサスペンドインスタンス管理装置4のセミサスペンドインスタンス管理部41は、受信したセミサスペンド化登録依頼からインスタンスIDを取得し、当該インスタンスIDにより特定されるセミサスペンドインスタンス管理テーブル内のレコードに、セミサスペンドを設定したインスタンス状態を書き込む(ステップS445)。
【0064】
インスタンス管理装置2のインスタンス状態管理部22は、さらに、上記のインスタンスIDを設定したアクティブインスタンス解放要求をアクティブインスタンス管理装置3へ送信する(ステップS450)。アクティブインスタンス管理装置3のアクティブインスタンス管理部31は、受信したアクティブインスタンス解放要求からインスタンスIDを取得し、取得したインスタンスIDに対応した内部IPアドレスをアクティブインスタンス管理テーブルから読み出す。そして、読み出した内部IPアドレスを識別子として設定した仮想マシン解放要求を仮想化装置管理部32へ出力する(ステップS455)。仮想化装置管理部32は、受信した仮想マシン解放要求を仮想化装置1へ送信する(ステップS460)。仮想化装置1は、仮想マシン解放要求に設定されている識別子により特定されるインスタンスを解放する。これにより、仮想化装置1は、当該インスタンスが利用している物理コンピュータの領域、つまり、CPU、メモリなどの各種リソースを解放する。
【0065】
次に、図12のステップS380における種火インスタンスの生成について説明する。種火インスタンスとは、
(a)利用者の端末100からイベント、例えば、コマンド等の処理要求を受信した場合、一時的にそのイベントを保留(キューイング)しておき、
(b)サスペンドされている本来のインスタンスを再開するための信号を発生させ、
(c)本来のインスタンスの再開が完了した後、この本来のインスタンスに、保留していたイベントを受け渡すとともに、制御を渡し、
(d)当該種火インスタンスのデリート(解放)処理を実行する、
という処理を実行するインスタンスである。
このインスタンス自体は小型でCPU消費も最小限であり、リソース消費が少ないことを特長とする。
【0066】
そこで、種火インスタンス管理装置6の種火インスタンス管理部61は、図12のステップS370においてインスタンス管理装置2から受信した仮想マシン起動依頼に設定されているインスタンスIDの情報に基づいて仮想マシンイメージを作成する。この仮想マシンイメージには、以下のインタフェース及び保存領域の情報と、制御プログラムとが含まれる。すなわち、
(1)インスタンスIDにより特定されるインスタンスが使用しているネットワークインタフェース、
(2)(1)のネットワークインタフェースへ送信されたイベントを保持するキュー、
(3)最初のイベント、つまり、利用者の端末100から受信したイベントをトリガーとして、図12のステップS370において受信したインスタンスIDを設定したインスタンス起動をインスタンス管理装置2に依頼する処理(図14のステップS505のインスタンス起動要求)、
(4)(3)の依頼によってスナップショットが起動された、つまり、元のインスタンスが再開した後、(2)においてネットワークインタフェースにキューイングしておいたイベントを起動されたインスタンスに渡す処理、
(5)当該種火インスタンスのデリート処理を実行して自らは消滅する処理、
が仮想マシンイメージに含まれる。
種火インスタンス管理部61は、作成した仮想マシンイメージを自身が備える記憶手段の保存領域に格納し、図12のステップS380において、その保存領域のURIである種火インスタンスイメージURIをインスタンス管理装置2へ通知する。
【0067】
なお、(1)において設定されるネットワークインタフェースとは、セミサスペンド化の対象となった元のインスタンスが使用していたポート群である。このポート群は、例えば、種火インスタンス管理装置6の種火インスタンス管理部61が、仮想化装置1に、セミサスペンド化の対象となったインスタンスの識別子を送信して問い合わせることによって取得するか、仮想化装置1のポートスキャンを行い、セミサスペンド化の対象となったインスタンスの内部IPアドレスに対応した使用ポートを取得する。
例えば、元のインスタンスが、内部IPアドレスAのポートa、ポートb及びポートcを使用していた場合、ネットワークインタフェースには、ポートa、ポートb及びポートcが設定される。これにより、生成された種火インスタンスに内部アドレスBが使用される場合、種火インスタンスは、内部IPアドレスBのポートa、ポートb及びポートcをリスンし、イベントの発生を検出する。あるいは、種火インスタンスは、元のインスタンスが使用していたポートに関わらず、内部IPアドレスBの全てのポートをリスンするようにしてもよい。この場合、ネットワークインタフェースには、内部IPアドレスBに対応したネットワークデバイスからのselect(Linux(登録商標)の場合)など、複数のソケット(IPアドレス+ポート番号)に対してのメッセージ待ちを可能にするためのシステムコールが記述される。
【0068】
図14及び図15は、セミサスペンド状態からの再開時のインスタンス管理システムのシーケンス図である。
図14において、利用者の端末100から、図10のステップS185において送信したインスタンス生成完了通知に設定されている識別子としての外部IPアドレスをアクセス先として設定した処理要求(イベント)が送信されると、インスタンス管理装置2のユーザ要求受付部21は、インスタンス管理テーブルから当該要求に設定されている外部IPアドレスに対応した内部IPアドレスを読み出す。ユーザ要求受付部21は、利用者の端末100から受信した要求に設定されている外部IPアドレスを、読み出した内部IPアドレスに書き換え、仮想化装置1へ送信する。これにより、内部IPアドレスにより特定される種火インスタンスへ当該イベントが送信される。種火インスタンスは、イベントが検出対象のポート番号を使用している場合、当該イベントをキューイングする。なお、検出対象のポート番号を使用したイベントを複数受信した場合、インスタンスが再開されるまでそれら受信した全てのイベントをキューに保持しておく。仮想化装置1において実行されている種火インスタンスは、元のインスタンスのインスタンスIDを設定したインスタンス起動要求をインスタンス管理装置2へ送信する(ステップS505)。
【0069】
インスタンス管理装置2のユーザ要求受付部21は、種火インスタンスから受信したインスタンス起動要求をインスタンス状態管理部22へ出力する(ステップS510)。インスタンス状態管理部22は、受信したインスタンス起動要求からインスタンスIDを取得し、当該インスタンスIDに対応したインスタンス管理テーブル内のレコードを特定すると、特定したレコードから保存イメージURIを読み出す(ステップS515)。インスタンス状態管理部22は、インスタンス起動要求から取得したインスタンスIDと、インスタンス管理テーブルから読み出した保存イメージURIとを設定したアクセスインスタンス起動要求をアクティブインスタンス管理装置3に送信する(ステップS520)。
【0070】
アクティブインスタンス管理装置3のアクティブインスタンス管理部31は、インスタンス管理装置2からアクティブインスタンス起動要求を受信すると、新たなアクティブインスタンスIDを生成し(ステップS525)、アクティブインスタンス管理テーブルに、生成したアクティブインスタンスIDと、アクティブインスタンス起動要求から取得したインスタンスIDとを設定したレコードを追加する(ステップS530)。アクティブインスタンス管理部31は、アクティブインスタンス起動要求を仮想化装置管理部32へ出力し(ステップS535)、仮想化装置管理部32は、アクティブインスタンス起動要求から保存イメージURIを取得し、取得した保存イメージURIを設定した仮想マシン起動依頼を仮想化装置1へ送信する(ステップS540)。
【0071】
仮想化装置1は、仮想マシン起動依頼に設定されている保存イメージURIで特定されるインスタンスを生成する。これにより、セミサスペンド前のインスタンス状態やインスタンスメモリイメージがそのまま引き継がれたインスタンスが生成される。仮想化装置1は、再開されたインスタンスに使用する識別子、つまり、元のインスタンスが使用していた内部IPアドレスを設定した仮想マシン起動完了通知をアクティブインスタンス管理装置3へ返送する(ステップS545)。
【0072】
アクティブインスタンス管理装置3の仮想化装置管理部32は、受信した仮想マシン起動完了通知から識別子を取得し、この取得した識別子を設定したアクティブインスタンス生成完了通知をアクティブインスタンス管理部31に返送する(ステップS550)。アクティブインスタンス管理部31は、アクティブインスタンス生成完了通知を受信すると、ステップS530において追加したアクティブインスタンス管理テーブルのレコードのインスタンス状態にアクティブを設定するとともに、当該レコードに仮想マシン起動完了通知から取得した識別子である内部IPアドレスを設定する(ステップS555)。アクティブインスタンス管理部31は、仮想化装置管理部32から受信したアクティブインスタンス起動完了通知をインスタンス管理装置2へ送信する(ステップS560)。
【0073】
図15において、アクティブインスタンス管理装置3からアクティブインスタンス起動完了通知を受信したインスタンス管理装置2のインスタンス状態管理部22は、図14のステップS515において特定したインスタンス管理テーブルのレコードに、アクティブを示すインスタンス状態を設定するとともに、当該レコードにアクティブインスタンス起動完了通知から取得した識別子である内部IPアドレスを設定する(ステップS605)。インスタンス状態管理部22は、アクティブインスタンス生成完了通知から識別子を取得し、取得した識別子を設定したインスタンス起動完了通知をユーザ要求受付部21へ返送する(ステップS610)。ユーザ要求受付部21は、外部IPアドレスと、インスタンス生成完了通知に設定されている内部IPアドレスとを対応付けて自身の備える記憶手段に記憶する(ステップS615)。ユーザ要求受付部21は、インスタンス起動完了通知を種火インスタンスへ返送する(ステップS620)。
【0074】
仮想化装置1で実行されている種火インスタンスは、インスタンス管理装置2から受信したインスタンス起動完了通知を受信して、元のインスタンスが再開されたことを認識すると、キューイングしていたイベントの宛先の内部IPアドレスを再開されたインスタンスの内部IPアドレスに書き換えて送信し、その後自らは処理を終了して消滅する。利用者は、再開されたインスタンスによって、クラウドコンピュータサービスを享受する。
【0075】
また、インスタンス管理装置2のインスタンス状態管理部22は、セミサスペンドインスタンス削除要求に、インスタンス起動要求から取得したインスタンスIDを設定してセミサスペンドインスタンス管理装置4へ送信する(ステップS625)。セミサスペンドインスタンス管理装置4のセミサスペンドインスタンス管理部41は、受信したセミサスペンドインスタンス削除要求からインスタンスIDを取得し、取得したインスタンスIDにより特定されるセミサスペンドインスタンス管理テーブルのレコードを削除する(ステップS630)。
【0076】
図16は、セミサスペンドインスタンス非活性検出時のインスタンス管理システムのシーケンス図である。
セミサスペンドインスタンス管理テーブル内のレコードは、元のインスタンスがレジュームされるか、サスペンド状態に移行するまで削除されないことから、当該レコードに登録されているインスタンスはセミサスペンド状態が継続していることを示す。そこで、セミサスペンドインスタンス管理装置4のセミサスペンドインスタンス管理部41は、インスタンス状態がセミサスペンドであるセミサスペンドインスタンス管理テーブル内のレコードのセミサスペンド状態持続時間を、例えば1秒毎など、所定の時間毎に更新する。更新後、セミサスペンドインスタンス管理部41は、インスタンス状態にセミサスペンドが設定されており、かつ、セミサスペンド状態持続時間に、例えば3時間以上などの所定の閾値以上の時間が設定されているレコードがあるかの検索を行う。インスタンス状態がセミサスペンドであり、かつ、セミサスペンド状態持続時間に所定の閾値以上の時間が設定されているレコードが検出された場合、セミサスペンドインスタンス管理部41は、当該レコードに対応するインスタンスをサスペンド状態に移行させるべきであると判断する(ステップS705)。
【0077】
セミサスペンドインスタンス管理部41は、ステップS705において検出されたセミサスペンドインスタンス管理テーブルのレコードに、サスペンド化中状態を示すインスタンス状態を書き込む(ステップS710)。セミサスペンドインスタンス管理部41は、当該レコードからインスタンスIDを読み出し、読み出したインスタンスIDを設定したサスペンド化依頼をインスタンス管理装置2へ送信する(ステップS715)。
【0078】
インスタンス管理装置2のインスタンス状態管理部22は、受信したサスペンド化依頼からインスタンスIDを取得すると、取得したインスタンスIDにより特定されるインスタンス管理テーブル内のレコードにサスペンド化中状態を設定し、インスタンス状態を更新する(ステップS720)。インスタンス状態管理部22は、サスペンド化依頼受付完了通知をセミサスペンドインスタンス管理装置4へ送信する(ステップS725)。
【0079】
図17は、図16に続いて実行される、サスペンド移行時のインスタンス管理システムのシーケンス図である。
インスタンス管理装置2は、図16のステップS715において取得したインスタンスIDを保存領域確保依頼に設定し、サスペンドインスタンス管理装置7へ送信する(ステップS805)。サスペンドインスタンス管理装置7のサスペンドインスタンス管理部71は、インスタンス管理装置2から受信した保存領域確保依頼をサスペンドインスタンス保存装置管理部72へ出力し、サスペンドインスタンス保存装置管理部72は、現在使用されていないサスペンドインスタンス保存装置8の保存領域を割当てる(ステップS810)。サスペンドインスタンス保存装置管理部72は、割当てた保存領域を特定するURIである保存イメージURIを設定した保存領域確保通知をサスペンドインスタンス管理部71に返送する(ステップS815)。
【0080】
サスペンドインスタンス管理部71は、サスペンドインスタンス管理テーブル記憶装置14に記憶されているサスペンドインスタンス管理テーブルに新たなレコードを追加し、当該レコードに保存領域確保依頼から取得したインスタンスIDと、保存領域確保通知から取得した保存イメージURIを設定する(ステップS820)。サスペンドインスタンス管理部71は、サスペンドインスタンス保存装置管理部72から受信した保存領域確保通知をインスタンス管理装置2へ返送する(ステップS825)。
【0081】
インスタンス管理装置2のインスタンス状態管理部22は、ステップS805において送信したインスタンスIDにより特定されるセミサスペンドインスタンス管理テーブル内のレコードにサスペンドを設定したインスタンス状態と書き込むとともに、受信した保存領域確保通知から取得した保存イメージURIを書き込む(ステップS830)。インスタンス状態管理部22は、ステップS805において送信したインスタンスIDと、保存領域確保通知から取得した保存イメージURIを設定したサスペンド化依頼をセミサスペンドインスタンス管理装置4へ送信する(ステップS835)。
【0082】
セミサスペンドインスタンス管理装置4は、インスタンス管理装置2から受信したサスペンド化依頼をセミサスペンドインスタンス保存装置管理部42へ送信する(ステップS840)。セミサスペンドインスタンス保存装置管理部42は、サスペンド化依頼からインスタンスIDを取得し、当該インスタンスIDにより特定されるセミサスペンドインスタンス管理テーブルのレコードから保存イメージURIを読み出す。セミサスペンドインスタンス保存装置管理部42は、セミサスペンドインスタンス管理テーブルのレコードから読み出した保存イメージURIにより特定されるセミサスペンドインスタンス保存装置5の記憶領域よりスナップショットイメージ構成ファイルを読み出す。セミサスペンドインスタンス保存装置管理部42は、サスペンド化依頼に設定されている保存イメージURIにより特定されるサスペンドインスタンス保存装置8の記憶領域に、セミサスペンドインスタンス保存装置5から読み出したスナップショットイメージ構成ファイルを書き込む(ステップS845)。セミサスペンドインスタンス保存装置管理部42は、セミサスペンドインスタンス保存装置5の記憶領域から、スナップショットイメージ構成ファイルを削除すると、セミサスペンドインスタンス管理部41へサスペンド化依頼応答を返送する(ステップS850)。
【0083】
セミサスペンドインスタンス管理部41は、ステップS835において受信したサスペンド化依頼から取得したインスタンスIDにより特定されるセミサスペンドインスタンス管理テーブルのレコードを削除し(ステップS855)、インスタンス管理装置2へサスペンド化依頼応答を返送する(ステップS860)。
インスタンス管理装置2のインスタンス状態管理部22は、セミサスペンドインスタンス管理装置4からサスペンド化依頼応答を受信すると、ステップS805において送信したインスタンスIDを設定したサスペンド化登録依頼をサスペンドインスタンス管理装置7へ送信する(ステップS865)。サスペンドインスタンス管理装置7のサスペンドインスタンス管理部71は、受信したサスペンド化登録依頼からインスタンスIDを取得すると、この取得したインスタンスIDに対応したサスペンドインスタンス管理テーブル内のレコードに、サスペンドを示すインスタンス状態を書き込む(ステップS870)。
【0084】
サスペンドインスタンス管理装置7のサスペンドインスタンス管理部71は、サスペンドインスタンス管理テーブル内のレコードのセミサスペンド状態持続時間を、例えば1秒毎など、所定の時間毎に更新する。通知装置9は、定期的にサスペンドインスタンス管理テーブルに、所定の閾値以上の時間が設定されているレコードがあるかの検索を行なう。そして、サスペンド状態持続時間に所定の閾値以上の時間が設定されているレコードが検出された場合、当該レコードに対応するインスタンスIDを読み出す。ユーザ通知装置は、読み出したインスタンスIDに対応するユーザIDをインスタンス管理テーブルから読み出すと、当該ユーザIDにより特定される利用者の端末100へインスタンスの停止を促す内容のメッセージを送信する。あるいは、通知装置9は、当該ユーザIDにより特定される利用者の情報を、図示しない利用者管理用データベースから読み出して保守者の端末100へ出力してもよい。保守者は、当該利用者へ電話等によって使用されていないインスタンスがあることを通知する。
【0085】
なお、サスペンドインスタンス管理装置7のサスペンドインスタンス管理部71は、サスペンドインスタンス管理テーブルに、通知装置9による通知が行われた後、さらに所定時間が経過した時間がセミサスペンド状態持続時間に設定されているレコードを検出した場合、当該レコードの保存イメージURIを読み出し、当該保存イメージURIにより特定されるサスペンドインスタンス保存装置8の記憶領域に記憶されているスナップショットイメージ構成ファイルを削除してもよい。そして、サスペンドインスタンス管理部71は、当該レコードから読み出したインスタンスIDをインスタンス管理装置2に通知し、当該インスタンスIDにより特定される種火インスタンスの終了を指示する。インスタンス管理装置2は、受信した種火インスタンスの終了指示をアクティブインスタンス管理装置3へ送信し、アクティブインスタンス管理装置3は、種火インスタンスの終了指示に設定されているインスタンスに対応した内部IPアドレスを読み出し、当該内部IPアドレスにより特定される種火インスタンスの終了を仮想化装置1に指示する。
【0086】
なお、サスペンド状態からの再開時のインスタンス管理システムの処理は、図14及び15に示す処理と同様である。セミサスペンド状態からの再開時との違いは、保存イメージURIが、セミサスペンドインスタンス保存装置5の記憶領域の代わりにサスペンドインスタンス保存装置8の記憶領域を示していること、図15のステップS625においてインスタンス管理装置2のインスタンス状態管理部22は、サスペンドインスタンス管理装置7へインスタンスIDを設定したサスペンドインスタンス削除要求を送信し、ステップS630において、サスペンドインスタンス管理装置7のサスペンドインスタンス管理部71は、受信したサスペンドインスタンス削除要求からインスタンスIDを取得し、取得したインスタンスIDにより特定されるサスペンドインスタンス管理テーブルのレコードを削除することである。
【0087】
図18は、課金処理の処理手順を示す図である。
同図において、インスタンス管理装置2の課金管理部23は、一定時間毎にインスタンス管理テーブルの各レコードから、インスタンスID及びユーザIDと、当該インスタンスIDにより特定されるインスタンスのインスタンス状態とを読み出す(ステップS905)。課金管理部23は、各ユーザIDに対応した課金管理テーブルに、当該ユーザIDについて読み出したインスタンスIDの状態に基づき累積時間を加算する(ステップS910)。例えば、1分毎にインスタンス管理テーブルを参照して課金管理テーブルを更新する場合、ユーザID「XXX」に対応してインスタンスID「YYYY」、インスタンス状態「アクティブ」が読み出されたとすると、まず、ユーザID「XXX」に対応した課金管理テーブルを特定し、この特定した課金管理テーブル内のインスタンスID「YYYY」が設定されているレコードのアクティブ状態累積時間を、現在の累積時間に1分を加算した累積時間に更新する。なお、インスタンス状態がセミサスペンドであれば、セミサスペンド状態累積時間を、インスタンス状態がサスペンドであれば、サスペンド状態累積時間を更新する。また、ユーザIDに対応する課金管理テーブルがない場合には新たな課金管理テーブルを生成し、インスタンスIDに対応したレコードが課金管理テーブルにない場合には、新たなレコードを追加する。
【0088】
課金管理部23は、課金管理テーブルから各ユーザについて、アクティブ状態累積時間、セミサスペンド状態累積時間、サスペンド状態累積時間を読み出して課金金額を算出する(ステップS915)。例えば、課金管理部23は、(アクティブ状態の時間単価)>(セミサスペンド状態の時間単価)>(サスペンド状態の時間単価)とし、従量課金分の金額を、(アクティブ状態の時間単価)×(アクティブ状態累積時間)+(セミサスペンド状態累の時間単価)×(セミサスペンド状態累積時間)+(サスペンド状態の時間単価)×(サスペンド状態累積時間)により算出する。
【0089】
本実施形態によれば、使用されていないと判断されたインスタンスを一時的に停止し、この一時的に停止された際のスナップショットを格納して当該インスタンスを解放するとともに、当該インスタンスへのイベントが発生した際には高速に再開させる機能を有する種火インスタンスを起動してセミサスペンド状態とする。このセミサスペンド状態のインスタンスについては、しばらくはリソースが不要となるため、その不要となったリソースをリソースプールに戻して、他のインスタンスに割り振ることが可能となる。
また、セミサスペンド状態のままさらに時間が経過しても元のインスタンスが再開されない場合には、スナップショットを高価かつ高速な記憶領域から安価かつ低速な記憶領域に移動し、サスペンド状態とする。サスペンド状態からの再開には、セミサスペンド状態からの再開よりも時間を要するが、コストを下げることができる。
さらにサスペンド状態のままさらに時間が経過しても再開されない場合には、利用者への注意喚起をメールや電話によって行なうことで、サービス利用に関する利用者の不注意による課金への不安を軽減することが可能となる。利用者への通知後、一定時間を経過してもインスタンス停止依頼がない場合は、自動的にインスタンスを停止し、サスペンド領域を解放することも可能である。
【0090】
そして、本実施形態によれば、クラウドコンピューティング提供ビジネスにおいて、セミサスペンド状態、サスペンド状態が継続した時間によって料金を割引できるという、新たな課金モデルを適用することができる。従来は、利用者の指定によってインスタンスが起動されてから終了するまでの時間分だけ一律の単価によって課金されていたが、本実施形態によれば、インスタンスが起動されてから終了するまでの間であっても、インスタンスが非活性であればセミサスペンド状態、あるいは、サスペンド状態に移行させ、解放したリソースを新たに要求されたインスタンスに利用することができる。よって、従来と比較して安価な料金設定でも、採算が取れる運営が可能となる。例えば、従来よりも数割安い課金を求める利用者を対象に、優位なクラウドコンピューティングビジネスを展開することができる。
【0091】
上記のように、活性状態にないインスタンスへのリソース割付を最適化することで、クラウド全体で消費するリソースを削減し、これによって、クラウドコンピューティング環境の利用効率増大によるクラウドコンピューティング提供者側のコスト削減と利益効率向上、クラウドコンピューティング利用側のコスト削減が同時に実現できる。
【0092】
上述の仮想化装置1、インスタンス管理装置2、アクティブインスタンス管理装置3、セミサスペンドインスタンス管理装置4、セミサスペンドインスタンス保存装置5、種火インスタンス管理装置6、サスペンドインスタンス管理装置7、サスペンドインスタンス保存装置8、通知装置9、インスタンス管理テーブル記憶装置11、アクティブインスタンス管理テーブル記憶装置12、セミサスペンドインスタンス管理テーブル記憶装置13、及び、課金管理テーブル記憶装置15は、内部にコンピュータシステムを有している。そして、仮想化装置1、インスタンス管理装置2のユーザ要求受付部21、インスタンス状態管理部22、及び、課金管理部23、アクティブインスタンス管理装置3のアクティブインスタンス管理部31及び仮想化装置管理部32、セミサスペンドインスタンス管理装置4のセミサスペンドインスタンス管理部41及びセミサスペンドインスタンス保存装置管理部42、種火インスタンス管理装置6の種火インスタンス管理部61、サスペンドインスタンス管理装置7のサスペンドインスタンス管理部71及びサスペンドインスタンス保存装置管理部72、ならびに、通知装置9の動作の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータシステムが読み出して実行することによって、上記処理が行われる。ここでいうコンピュータシステムとは、CPU及び各種メモリやOS、周辺機器等のハードウェアを含むものである。
【0093】
また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【0094】
なお、本発明は、上記において説明した実施形態に限定されるものではなく、その主旨を逸脱しない範囲において種々変更可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
【符号の説明】
【0095】
1…仮想化装置
2…インスタンス管理装置
21…ユーザ要求受付部
22…インスタンス状態管理部
23…課金管理部
3…アクティブインスタンス管理装置
31…アクティブインスタンス管理部
32…仮想化装置管理部
4…セミサスペンドインスタンス管理装置
41…セミサスペンドインスタンス管理部
42…セミサスペンドインスタンス保存装置管理部
5…セミサスペンドインスタンス保存装置
6…種火インスタンス管理装置
7…サスペンドインスタンス管理装置
71…サスペンドインスタンス管理部
72…サスペンドインスタンス保存装置管理部
8…サスペンドインスタンス保存装置
9…通知装置
11…インスタンス管理テーブル記憶装置(インスタンス管理情報記憶装置)
12…アクティブインスタンス管理テーブル記憶装置
13…セミサスペンドインスタンス管理テーブル記憶装置
14…サスペンドインスタンス管理テーブル記憶装置
15…課金管理テーブル記憶装置
【技術分野】
【0001】
本発明は、クラウドコンピューティングシステムにおけるインスタンスを管理するインスタンス管理システム及びコンピュータプログラムに関する。
【背景技術】
【0002】
近年、インターネットを介して提供されるコンピュータリソースを、それらの所在を意識することなく利用可能なクラウドコンピューティングを用い、各種サービスを提供するクラウドコンピューティングサービスが普及してきている。このようなクラウドコンピューティングサービスでは、クラウドサービス提供装置によってCPUやメモリなどのコンピュータリソースをインスタンスという形で利用者に提供し、そのインスタンスの利用状況を時間単位でクラウドサービス利用履歴DB(DB:データベース)に記録する。そして、クラウドサービス課金装置によって各利用者の利用時間を月単位で積算し、利用時間に応じた課金を実施する。
【0003】
このように、クラウドコンピューティングサービスは、時間単位の従量制課金のサービスであることから、利用者は基本的に自らのサービス利用の必要性がない時には利用しているインスタンスを停止させるための指示を自身の端末に入力するなどの操作を行う。サービス提供側のクラウドサービス提供装置は、利用者の端末から受信したインスタンス停止要求に従ってインスタンスを停止し、当該インスタンスに使用されていたリソースを解放する。しかし、利用者の不注意などにより、サービスの利用の必要性のない時間においてもインスタンスを停止しないままにしていると、サービス提供者側はそのリソースを解放できず、利用者にはその分の利用料が加算されてしまう。
【0004】
一方、特許文献1には、計算機やプロセッサの稼動数、プロセッサの使用率の変化によりシステムの消費電力量が変化することを利用し、計測した消費電力量に基づいて使用料金を算出することが記載されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2008−3712号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
パブリッククラウドにおけるクラウドコンピューティングサービスでは、上述したように各利用者が責任を持ってリソースの利用開始、利用停止を行なう仕組みであり、利用者が使用した分だけ課金するというポリシーにより運営されている。そのため、利用者の不注意などにより実際は有効に使用されていないリソースについてもその利用料金は利用者の負担となってしまう。また、プライベートクラウドにおけるクラウドコンピューティングサービスでは、そもそもサービス利用が課金と連動していないケースもありうる。この場合、利用者の不注意による不活性インスタンスが増大する可能性が高く、パブリッククラウドよりもさらに、不活性インスタンスにリソースが消費されてしまわれないような仕組みが必要である。
【0007】
そこで、利用されていないインスタンスを検出して一時停止状態とすることが考えられる。しかし、従来技術においては、一時停止されたインスタンスを再び実行させる際には時間がかかってしまうため、利用者側でパフォーマンスが悪いと感じてしまい、快適に利用できない。
【0008】
本発明は、上記の事情に鑑みてなされたものであり、その目的は、使用されていないインスタンスについては、再び要求があったときに短い時間で再開できるように一時停止してリソースを解放するとともに、一時停止の状態にあるインスタンスを管理して利用料金の割引に用いることができるインスタンス管理システム及びコンピュータプログラムを提供することにある。
【課題を解決するための手段】
【0009】
上記課題を解決するため、本発明は、複数の仮想マシンとして動作する仮想化装置に生成されているインスタンスを管理するアクティブインスタンス管理装置と、一時停止された前記インスタンスを再開させる処理を含む種火インスタンスを生成する種火インスタンス管理装置と、一時停止前の前記インスタンスの状態を記録したイメージファイルを記憶するセミサスペンドインスタンス保存装置と、前記インスタンスの状態を管理するインスタンス管理装置と、前記インスタンスの状態を記憶するインスタンス管理情報記憶装置とを備えるインスタンス管理システムであって、前記アクティブインスタンス管理装置は、前記仮想化装置に生成されている前記インスタンスのうち、所定時間実行されていない前記インスタンスを一時停止対象のインスタンスとして検出し、検出した当該一時停止対象のインスタンスの現在の状態を記録したイメージファイルの生成、及び、当該イメージファイルの前記セミサスペンドインスタンス保存装置への書込みと、前記種火インスタンス管理装置が生成した種火インスタンスの起動とを前記仮想化装置へ指示するとともに、当該種火インスタンスの起動後に前記一時停止対象のインスタンスの解放を前記仮想化装置へ指示し、前記種火インスタンスから、前記一時停止対象のインスタンスが使用していた通信アドレスを宛先としたイベントを検出したときに出力される再開の要求を受信した場合に、前記一時停止対象のインスタンスを前記セミサスペンドインスタンス保存装置に記憶されている前記イメージファイルを使用して一時停止前状態の状態から再開させるよう前記仮想化装置に指示する仮想化装置管理部を備え、前記種火インスタンス管理装置は、前記一時停止対象のインスタンスの解放後、当該一時停止対象のインスタンスが使用していた通信アドレスを宛先としたイベントを検出した場合に、当該一時停止対象のインスタンスの再開の要求を出力する処理と、当該一時停止対象のインスタンスの起動に検出した前記イベントを受け渡す処理とを含んだ種火インスタンスを生成する種火インスタンス管理部を備え、前記インスタンス管理装置は、前記インスタンスが生成されたときに、当該インスタンスがアクティブ状態であることを示す情報と、当該インスタンスの生成要求から取得した利用者の識別情報とを対応づけて前記インスタンス管理情報記憶装置に書込み、前記アクティブインスタンス管理装置の仮想化装置管理部が、一時停止対象の前記インスタンスを検出したときに、当該インスタンスが一時停止状態であることを示す情報を前記インスタンス管理情報記憶装置に書込み、前記インスタンスが再開されたときに、当該インスタンスがアクティブ状態であることを示す情報を前記インスタンス管理情報記憶装置に書き込むインスタンス状態管理部を備える、ことを特徴とするインスタンス管理システムである。
【0010】
また、本発明は、上述するインスタンス管理システムであって、一時停止されている前記インスタンスを管理するセミサスペンドインスタンス管理装置をさらに備え、前記セミサスペンドインスタンス管理装置は、前記種火インスタンスが生成されてから、前記一時停止対象のインスタンスが使用していた通信アドレスを宛先としたイベントを受信せずに経過した時間を計測し、所定時間以上経過したことを検出するセミサスペンドインスタンス管理部と、前記セミサスペンドインスタンス管理部が所定時間経過したことを検出した場合に、前記セミサスペンドインスタンス保存装置に記憶されている前記イメージファイルを、当該セミサスペンドインスタンス保存装置よりデータの読み出しが低速なサスペンドインスタンス保存装置に移動するセミサスペンドインスタンス保存装置管理部とを備える、ことを特徴とする。
【0011】
また、本発明は、上述するインスタンス管理システムであって、前記イメージファイルがサスペンドインスタンス保存装置に移動されてから、前記一時停止対象のインスタンスが使用していた通信アドレスを宛先としたイベントを受信せずに経過した時間を計測するサスペンドインスタンス管理装置と、前記サスペンドインスタンス管理装置により計測された時間が所定時間以上であることを検出した場合に警告を出力する通知装置と、をさらに備えることを特徴とする。
【0012】
また、本発明は、上述するインスタンス管理システムであって、前記インスタンス管理装置は、前記インスタンス管理情報記憶装置を参照して得た、各利用者の識別情報に対応するインスタンスのアクティブ状態の累積時間及び一時停止状態の累積時間に基づいて当該利用者の課金金額を算出する課金管理部をさらに備える、ことを特徴とする。
【0013】
また、本発明は、複数の仮想マシンとして動作する仮想化装置に生成されているインスタンスを管理するアクティブインスタンス管理装置と、一時停止対象のインスタンスの解放後、当該一時停止対象のインスタンスが使用していた通信アドレスを宛先としたイベントを検出した場合に、当該一時停止対象のインスタンスの再開の要求を出力する処理と、当該一時停止対象のインスタンスの起動に検出した前記イベントを受け渡す処理とを含んだ種火インスタンスを生成する種火インスタンス管理装置と、一時停止前の前記インスタンスの状態を記録したイメージファイルを記憶するセミサスペンドインスタンス保存装置とを備えるインスタンス管理システムの前記アクティブインスタンス管理装置に用いられるコンピュータプログラムであって、前記仮想化装置に生成されている前記インスタンスのうち、所定時間実行されていない前記インスタンスを一時停止対象のインスタンスとして検出する検出ステップと、前記検出ステップにおいて検出した当該一時停止対象のインスタンスの現在の状態を記録したイメージファイルの生成、及び、当該イメージファイルのセミサスペンドインスタンス保存装置への書込みと、前記種火インスタンス管理装置が生成した種火インスタンスの起動とを前記仮想化装置へ指示する種火インスタンス起動ステップと、前記種火インスタンスの起動後に前記一時停止対象のインスタンスの解放を前記仮想化装置へ指示するインスタンス解放指示ステップと、前記種火インスタンスから、前記一時停止対象のインスタンスが使用していた通信アドレスを宛先としたイベントを検出したときに出力される再開の要求を受信した場合に、前記一時停止対象のインスタンスを前記セミサスペンドインスタンス保存装置に記憶されている前記イメージファイルを使用して一時停止前状態の状態から再開させるよう前記仮想化装置に指示する再開指示ステップと、をコンピュータに実行させることを特徴とするコンピュータプログラムである。
【発明の効果】
【0014】
本発明によれば、使用されていないと判断されたインスタンスを一時的に停止し、この一時的に停止された際の状態を記録して当該インスタンスを解放するとともに、当該インスタンスへのイベントが発生した際には高速に再開させるための種火インスタンスを起動する。よって、この一時停止されたインスタンスについては、しばらくはリソースが不要となるため、その不要となったリソースをリソースプールに戻して、他のインスタンスに割り振ることが可能となる。そして、一時停止した後、さらに時間が経過してもインスタンスが再開されない場合には、一時停止された際の状態を記録したイメージファイルを安価な記憶装置に移動することによって、コストをさらに下げることができる。そして、長時間インスタンスが再開されない場合には警告を出力し、注意を促すことができる。
【図面の簡単な説明】
【0015】
【図1】本発明の一実施の形態によるインスタンス管理システムの概要を説明するための図である。
【図2】同実施の形態による一実施の形態によるインスタンス管理システムの構成を示すブロック図である。
【図3】同実施の形態によるインスタンス管理テーブルのデータ構成例を示す図である。
【図4】同実施の形態によるアクティブインスタンス管理テーブルのデータ構成例を示す図である。
【図5】同実施の形態によるセミサスペンドインスタンス管理テーブルのデータ構成例を示す図である。
【図6】同実施の形態によるサスペンドインスタンス管理テーブルのデータ構成例を示す図である。
【図7】同実施の形態による課金管理テーブルのデータ構成例を示す図である。
【図8】同実施の形態によるスナップショットイメージ構成ファイルの構成例を示す図である。
【図9】同実施の形態によるインスタンス管理システムの処理手順を示す図である。
【図10】同実施の形態によるインスタンス管理システムにおけるインスタンス作成時のシーケンス図である。
【図11】同実施の形態によるインスタンス管理システムにおけるアクティブインスタンス非活性検出時のシーケンス図である。
【図12】同実施の形態によるインスタンス管理システムにおけるセミサスペンド移行時のシーケンス図である。
【図13】同実施の形態によるインスタンス管理システムにおけるセミサスペンド移行時のシーケンス図である。
【図14】同実施の形態によるインスタンス管理システムにおけるセミサスペンド状態からの再開時のシーケンス図である。
【図15】同実施の形態によるインスタンス管理システムにおけるセミサスペンド状態からの再開時のシーケンス図である。
【図16】同実施の形態によるインスタンス管理システムにおけるセミサスペンドインスタンス非活性検出時のシーケンス図である。
【図17】同実施の形態によるインスタンス管理システムにおけるサスペンド移行時のシーケンス図である。
【図18】同実施の形態によるインスタンス管理システムにおける課金処理手順を示す図である。
【発明を実施するための形態】
【0016】
以下、図面を参照して本発明の実施形態の例について説明する。
図1は、本発明の一実施形態によるインスタンス管理システムの概要を説明するための図である。クラウドコンピューティングシステムにおいて、仮想化装置1は、ネットワークを介して接続される利用者の端末等から要求されたインスタンスIを生成し、実行することによりクラウドコンピュータサービスを提供する。インスタンス管理装置2は、仮想化装置1に対するインスタンス生成が要求されたことを検出し、この生成されたインスタンスIの状態を管理する。生成直後のインスタンスIはアクティブ(活性)状態である。アクティブインスタンス管理装置3は、仮想化装置1上で解放し忘れとなっている無駄なリソースの消費がないように、仮想化装置1のCPU(central processing unit)の消費状態などのリソース監視を行ない、非活性となっている、つまり、所定時間実行されていないインスタンスIを検出する。
【0017】
仮想化装置1において非活性になっているインスタンスIが検出された場合、アクティブインスタンス管理装置3は、当該インスタンスIをセミサスペンド状態とする。セミサスペンド状態とは、インスタンスIが再開可能な最小限の情報を、比較的読み出しが早い記憶装置に保持して当該インスタンスIを一旦終了し、ユーザから当該インスタンスIへの要求を受信した場合は、保持していた情報を読み出して一旦終了したインスタンスIを再び生成して元の状態から実行させることができる状態である。
【0018】
具体的には、仮想化装置1は、インスタンスIを再開可能な最小限の情報として、セミサスペンド状態とすべきインスタンスのスナップショットAを生成し、メモリ装置で構成されるセミサスペンドインスタンス保存装置5の記憶領域に書き込むとともにインスタンスを終了し、アクティブ状態のときに当該インスタンスが利用していたリソースを解放する。そして、アクティブインスタンス管理装置3は、種火インスタンス管理装置6によって生成された種火インスタンスTを、仮想化装置1上で起動させる。この種火インスタンスTとは、元のインスタンスIが使用していた通信ポートなどを引き継いで監視し、その通信ポートにアクセスがあった場合には、元のインスタンスIの再開(レジューム)を指示する機能だけを有するコンパクトなインスタンスである。セミサスペンドインスタンス管理装置4は、元のインスタンスIのセミサスペンド状態の継続を監視する。
【0019】
セミサスペンド状態となった後、種火インスタンスTへのアクセスがなく、セミサスペンドインスタンス管理装置4において一定時間セミサスペンド状態が続いたことが検出された場合、当該インスタンスをサスペンド状態とする。サスペンド状態とは、セミサスペンド状態に移行したときに生成した、インスタンスIが再開できるだけの最小限の情報を、安価かつ比較的読み出しが遅い記憶装置に保持している状態である。つまり、セミサスペンドインスタンス保存装置5に記憶していたスナップショットAは、ディスク装置で構成されるサスペンドインスタンス保存装置8の記憶領域に移されてスナップショットBとして記憶され、サスペンドインスタンス管理装置7は、元のインスタンスIのサスペンド状態の継続を監視する。
【0020】
なお、セミサスペンド状態、あるいは、サスペンド状態において、元のインスタンスへのアクセスがあった場合、これを検知した種火インスタンスTによって、元のインスタンスIが再開される。一方、サスペンド状態のまま一定時間が経過した場合、通知装置9から、非活性なインスタンスによって課金が行なわれている旨の通知を利用者の端末に送信する。これにより、利用者へ使用していないインスタンスの停止を促し、サスペンド領域の節約、利用者へ注意を喚起する。
利用者へ請求すべき料金は、インスタンスが保持されている時間に応じて決定する従量課金であるが、セミサスペンド状態、サスペンド状態にあった時間分についてはアクティブ状態よりも単価が低くなるよう割引する。
【0021】
図2は、インスタンス管理システムの構成を示すブロック図である。
同図において、インスタンス管理システムは、仮想化装置1、インスタンス管理装置2、アクティブインスタンス管理装置3、セミサスペンドインスタンス管理装置4、セミサスペンドインスタンス保存装置5、種火インスタンス管理装置6、サスペンドインスタンス管理装置7、サスペンドインスタンス保存装置8、通知装置9、インスタンス管理テーブル記憶装置11、アクティブインスタンス管理テーブル記憶装置12、セミサスペンドインスタンス管理テーブル記憶装置13、サスペンドインスタンス管理テーブル記憶装置14、及び、課金管理テーブル記憶装置15を、IP(Internet Protocol)などを利用したネットワークNを介して接続してなる。ネットワークNには、利用者の端末100も接続される。
【0022】
インスタンス管理テーブル記憶装置11は、各インスタンスの状態等を管理するインスタンス管理テーブルを記憶する。アクティブインスタンス管理テーブル記憶装置12は、アクティブ状態にあるインスタンスを管理するアクティブインスタンス管理テーブルを記憶する。セミサスペンドインスタンス管理テーブル記憶装置13は、セミサスペンド状態にあるインスタンスを管理するセミサスペンドインスタンス管理テーブルを記憶する。サスペンドインスタンス管理テーブル記憶装置14は、サスペンド状態にあるインスタンスを管理するサスペンドインスタンス管理テーブルを記憶する。課金管理テーブル記憶装置15は、課金情報を生成するために使用する課金管理テーブルを記憶する。課金管理テーブルは、それぞれのインスタンスの各状態における累積時間を示す。
【0023】
仮想化装置1は、例えば、1台の物理コンピュータを仮想的な複数台のコンピュータとしてとして使用可能な仮想マシンにより実現することができる。ここでの仮想マシンは、各ユーザから要求されたクラウドコンピュータサービスを実行するインスタンスに相当する。仮想化装置1は、インスタンスが生成された際、CPUやメモリなどのリソースや、アドレスを当該インスタンスに割当てる。
【0024】
インスタンス管理装置2は、例えば、サーバ等により実現することができ、ユーザ要求受付部21、インスタンス状態管理部22、及び、課金管理部23を備える。ユーザ要求受付部21は、インスタンスの生成や起動の要求を受信する。また、利用者の端末100から受信したインスタンスへの処理要求に設定されている外部IPアドレスを、仮想化装置1上で実行されている仮想マシンの内部IPアドレスに変換し、インスタンスから利用者の端末100へ返送される処理結果の内部アドレスを外部アドレスへ変換する。インスタンス状態管理部22は、各インスタンスの状態を管理し、インスタンス管理テーブルを更新する。課金管理部23は、各インスタンスの状態に応じて課金管理テーブルを更新するとともに、課金管理テーブルに基づいて課金処理を行なう。
【0025】
アクティブインスタンス管理装置3は、例えば、サーバ等により実現することができ、アクティブインスタンス管理部31及び仮想化装置管理部32を備える。アクティブインスタンス管理部31は、アクティブ状態のインスタンスを管理し、アクティブインスタンス管理テーブルを更新する。仮想化装置管理部32は、仮想化装置1に対して仮想マシン、すなわち、インスタンスの生成や起動、解放を指示するとともに、仮想化装置1におけるアクティブ状態のインスタンスが、非活性となっていないかを監視する。
【0026】
セミサスペンドインスタンス管理装置4は、例えば、サーバ等により実現することができ、セミサスペンドインスタンス管理部41及びセミサスペンドインスタンス保存装置管理部42を備える。セミサスペンドインスタンス管理部41は、セミサスペンド状態のインスタンスを管理し、セミサスペンドインスタンス管理テーブルを更新する。セミサスペンドインスタンス保存装置管理部42は、セミサスペンドインスタンス保存装置5にスナップショットイメージ構成ファイルを保存すべき領域を決定する。また、サスペンド状態とすべきインスタンスのスナップショットイメージ構成ファイルを、セミサスペンドインスタンス保存装置5からサスペンドインスタンス保存装置8に書き換える。
【0027】
セミサスペンドインスタンス保存装置5は、メモリ装置で構成され、セミサスペンド状態にあるインスタンスのスナップショットイメージ構成ファイルを記憶する。
種火インスタンス管理装置6は、種火インスタンス管理部61を備える。種火インスタンス管理部61は、セミサスペンドされたインスタンスに対応した種火インスタンスを生成する。
【0028】
サスペンドインスタンス管理装置7は、例えば、サーバ等により実現することができ、サスペンドインスタンス管理部71及びサスペンドインスタンス保存装置管理部72を備える。サスペンドインスタンス管理部71は、サスペンド状態にあるインスタンスを管理し、サスペンドインスタンス管理テーブルを更新する。サスペンドインスタンス保存装置管理部72は、サスペンドインスタンス保存装置8にスナップショットイメージ構成ファイルを保存すべき領域を決定する。
サスペンドインスタンス保存装置8は、メモリ装置よりも安価かつデータの読書きが低速なディスク装置で構成され、サスペンド状態にあるインスタンスのスナップショットイメージ構成ファイルを記憶する。
【0029】
なお、インスタンス管理装置2、アクティブインスタンス管理装置3、セミサスペンドインスタンス管理装置4、種火インスタンス管理装置6、サスペンドインスタンス管理装置7、通知装置9、インスタンス管理テーブル記憶装置11、アクティブインスタンス管理テーブル記憶装置12、セミサスペンドインスタンス管理テーブル記憶装置13、サスペンドインスタンス管理テーブル記憶装置14、課金管理テーブル記憶装置15のうち任意の装置を同じサーバ等の装置により実現してもよい。
【0030】
図3は、インスタンス管理テーブル記憶装置11に記憶されるインスタンス管理テーブルのデータ構成例を示す図である。同図において、インスタンス管理テーブルは、インスタンスを一意に特定する識別子(ID)であるインスタンスID、当該インスタンスの状態、当該インスタンスの生成要求元のユーザを一意に特定する識別子であるユーザID、当該インスタンスのスナップショットイメージ構成ファイルを記憶している記憶領域のURI(Universal Resource Identifier)である保存イメージURI、仮想化装置1における当該インスタンスへのアクセスアドレスである内部IPアドレス、ユーザへ通知する当該インスタンスへのアクセスアドレスである外部IPアドレスのデータ項目を含む複数のレコードからなる。
【0031】
図4は、アクティブインスタンス管理テーブル記憶装置12に記憶されるアクティブインスタンス管理テーブルのデータ構成例を示す図である。同図において、アクティブインスタンス管理テーブルは、アクティブ状態にあるインスタンスを一意に特定する識別子であるアクティブインスタンスID、当該インスタンスのインスタンスID、インスタンス状態、内部IPアドレス、及び、当該インスタンスが最後にアクセスされてからの経過時間であるアイドル時間のデータ項目を含む複数のレコードからなる。
【0032】
図5は、セミサスペンドインスタンス管理テーブル記憶装置13に記憶されるセミサスペンドインスタンス管理テーブルのデータ構成例を示す図である。同図において、セミサスペンドインスタンス管理テーブルは、セミサスペンド状態にあるインスタンスを一意に特定する識別子であるセミサスペンドインスタンスID、当該インスタンスのインスタンスID、当該インスタンスのスナップショットイメージ構成ファイルが保持されるセミサスペンドインスタンス保存装置5の記憶領域を示す保存イメージURI、当該インスタンスのインスタンス状態、当該インスタンスがセミサスペンド状態になってからアクセスされずに経過した時間であるセミサスペンド状態持続時間のデータ項目を含む複数のレコードからなる。
【0033】
図6は、サスペンドインスタンス管理テーブル記憶装置14に記憶されるサスペンドインスタンス管理テーブルのデータ構成例を示す図である。同図において、サスペンドインスタンス管理テーブルは、サスペンド状態にあるインスタンスを一意に特定する識別子であるサスペンドインスタンスID、当該インスタンスのインスタンスID、当該インスタンスのスナップショットイメージ構成ファイルが保持されるサスペンドインスタンス保存装置8の記憶領域を示す保存イメージURI、当該インスタンスがサスペンド状態になってからアクセスされずに経過した時間であるサスペンド状態持続時間のデータ項目を含む複数のレコードからなる。
【0034】
図7は、課金管理テーブル記憶装置15に記憶される課金管理テーブルのデータ構成例を示す図である。同図において課金管理テーブルは、各ユーザIDに対応しており、インスタンスIDと、インスタンスIDにより特定されるインスタンスのアクティブ状態累積時間、セミサスペンド状態累積時間及びサスペンド状態累積時間とのデータ項目を含む複数のレコードからなる。
【0035】
図8は、スナップショットイメージ構成ファイルの構成例を示す図である。同図において、スナップショットイメージ構成ファイルは、セミサスペンド状態移行時にインスタンスが使用していたレジスタ値などを構造体で記憶したインスタンス状態、インスタンスのメインメモリイメージのサイズをバイト数で示したインスタンスメモリサイズ、当該メインメモリイメージをバイナリデータで示したインスタンスメモリなどから構成される。
【0036】
次にインスタンス管理システムの処理について説明する。
図9は、インスタンス管理システムの処理手順を示す図である。
まず、アクティブインスタンスがセミサスペンド化される手順について説明する。
仮想化装置1は、ネットワークを介して接続される利用者の端末100等から要求を受けてインスタンスを生成し、要求された処理を実行している。アクティブインスタンス管理装置3は、仮想化装置1上で解放し忘れとなっている無駄なリソースを消費することがないように、一定時間利用者から利用されていない、つまり、非活性となっているインスタンスを検出する(ステップS1)。例えば、仮想化装置1で実行されている各インスタンスについて、CPUの消費状態などのリソース監視を行ない、一定時間以上CPUのアイドル時間が継続していることを検出した場合に、非活性であると判断する。
【0037】
仮想化装置1において非活性になっているインスタンスを検出したアクティブインスタンス管理装置3は、当該インスタンスのセミサスペンド化依頼をインスタンス管理装置2に送信する(ステップS2)。インスタンス管理装置2は、セミサスペンド化の対象となるインスタンスのスナップショットイメージ構成ファイルを保存する領域の確保依頼をセミサスペンドインスタンス管理装置4へ送信するとともに(ステップS3)、アクティブインスタンス管理装置3へ当該インスタンスのスナップショット作成依頼を送信する(ステップS4)。アクティブインスタンス管理装置3からスナップショット作成依頼を受信した仮想化装置1は、その時点のインスタンスのスナップショットからスナップショットイメージ構成ファイルを生成して、セミサスペンドインスタンス管理装置4が確保したセミサスペンドインスタンス保存装置5の保存領域に保存する。
【0038】
さらに、インスタンス管理装置2は、種火インスタンスの作成依頼を種火インスタンス管理装置6へ送信するとともに(ステップS5)、種火インスタンス管理装置6により生成された種火インスタンスの起動依頼をアクティブインスタンス管理装置3へ送信する(ステップS6)。アクティブインスタンス管理装置3は、種火インスタンスの起動依頼を仮想化装置1に送信し(ステップS7)、仮想化装置1は種火インスタンスを起動する(ステップS8)。続いて、インスタンス管理装置2は、セミサスペンドインスタンスの登録依頼をセミサスペンドインスタンス管理装置4へ送信し(ステップS9)、セミサスペンドインスタンス管理装置4は、登録したセミサスペンド状態のインスタンスを監視する。インスタンス管理装置2は、元のインスタンスの解放を指示するアクティブインスタンス解放依頼をアクティブインスタンス管理装置3へ送信する(ステップS10)。仮想化装置1は、アクティブインスタンス管理装置3からアクティブインスタンス解放依頼を受信し、元のインスタンスが利用していたリソースを解放する。上記のように、種火インスタンス生成はインスタンス停止前に行い、インスタンスの停止と同時に種火インスタンスへ制御が渡される。
【0039】
続いて、セミサスペンド化されたインスタンスが再開する手順について説明する。
インスタンスがセミサスペンド化された後、利用者の端末100から元のインスタンスと同じアドレスを宛先として処理要求が送信されると、仮想化装置1において起動されている種火インスタンスが当該処理要求の発生を検知する(ステップS11)。この処理要求の検知によって種火インスタンスは、元のインスタンスを起動させるためのインスタンス起動依頼をインスタンス管理装置2へ送信する(ステップS12)。
【0040】
インスタンス管理装置2は、受信したアクティブインスタンス起動依頼をアクティブインスタンス管理装置3へ送信し(ステップS13)、アクティブインスタンス管理装置3はスナップショットイメージ構成ファイルの保存場所を仮想化装置1に通知して、元のインスタンスを起動させる(ステップS14)。これにより、仮想化装置1は、セミサスペンド状態に移行したときの状態から元のインスタンスを再開させる(ステップS15)。インスタンス管理装置2は、セミサスペンドインスタンス管理装置4へセミサスペンドインスタンスの削除を指示し、再開されたインスタンスを監視対象から除外する(ステップS16)。再開されたインスタンスは再びアクティブインスタンス管理装置3による監視対象に移行する。
【0041】
次に、セミサスペンド状態のインスタンスをサスペンド化させる手順について説明する。
インスタンスがセミサスペンド化された後、一定時間セミサスペンド状態が続いた、つまり、一定時間種火インスタンスへのアクセスがないことをセミサスペンドインスタンス管理装置4が検出すると(ステップS21)、当該インスタンスのサスペンド化依頼をインスタンス管理装置2へ送信する(ステップS22)。インスタンス管理装置2は、サスペンド化の対象となるインスタンスのスナップショットイメージ構成ファイルを保存するための領域の確保依頼をサスペンドインスタンス管理装置7へ送信するとともに(ステップS23)、インスタンスのサスペンド化依頼をセミサスペンドインスタンス管理装置4へ送信する(ステップS24)。セミサスペンドインスタンス管理装置4は、セミサスペンドインスタンス保存装置5に記憶していたスナップショットイメージ構成ファイルを、サスペンドインスタンス管理装置7が確保したサスペンドインスタンス保存装置8の保存領域に移動させる。
【0042】
なお、サスペンド状態において種火インスタンスが元のインスタンスにアクセスがあったことを検出した場合、ステップS11〜S14と同様の手順により、セミサスペンド状態に移行したときの状態からインスタンスを再開させる。そして、インスタンス管理装置2は、サスペンドインスタンス管理装置7へサスペンドインスタンスの削除を指示し、再開されたインスタンスを監視対象から除外する。再開されたインスタンスは再びアクティブインスタンス管理装置3による監視対象に移行する。
【0043】
続いて、インスタンス管理システムの詳細な処理について説明する。
図10は、インスタンス作成時のインスタンス管理システムのシーケンス図である。
まず、インスタンス管理装置2のユーザ要求受付部21が、利用者の端末100から、起動イメージURI及びユーザIDが設定されたインスタンス生成要求を受信する(ステップS105)。起動イメージURIとは、クラウドコンピュータサービスを提供する仮想マシンを実行させるためのマシンイメージがストレージ内どこに記憶されているかの記憶場所を指定するものである。ユーザ要求受付部21は、利用者の端末100から受信したインスタンス生成要求をインスタンス状態管理部22へ出力する(ステップS110)。インスタンス状態管理部22は、ユーザ要求受付部21からインスタンス生成要求を受信すると、新たなインスタンスIDを生成し(ステップS115)、インスタンス管理テーブルに、生成したインスタンスIDと、受信したインスタンス生成要求から取得したユーザIDとを設定したレコードを追加する(ステップS120)。インスタンス状態管理部22は、生成したインスタンスIDと、インスタンス生成要求から取得した起動イメージURIとを設定したアクティブインスタンス生成要求をアクティブインスタンス管理装置3へ送信する(ステップS125)。
【0044】
アクティブインスタンス管理装置3のアクティブインスタンス管理部31は、インスタンス管理装置2からアクティブインスタンス生成要求を受信すると、新たなアクティブインスタンスIDを生成し(ステップS130)、アクティブインスタンス管理テーブルに、生成したアクティブインスタンスIDと、アクティブインスタンス生成要求から取得したインスタンスIDとを設定したレコードを追加する(ステップS135)。アクティブインスタンス管理部31は、インスタンス管理装置2から受信したアクティブインスタンス生成要求を仮想化装置管理部32へ出力し(ステップS140)、仮想化装置管理部32は、アクティブインスタンス生成要求から起動イメージURIを取得し、取得した起動イメージURIを設定した仮想マシン起動依頼を仮想化装置1へ送信する(ステップS145)。
【0045】
仮想化装置1は、仮想マシン起動依頼に設定されている起動イメージURIにより特定されるマシンイメージを実行して仮想マシン、つまり、インスタンスを生成すると、当該インスタンスの識別子を設定した仮想マシン起動完了通知をアクティブインスタンス管理装置3へ返送する(ステップS150)。ここでは、識別子として、インスタンスが使用する内部IPアドレスが用いられる。識別子として内部IPアドレス自体ではなく、内部IPアドレスを一部に含んだ情報を用いることもできる。
【0046】
アクティブインスタンス管理装置3の仮想化装置管理部32は、受信した仮想マシン起動完了通知から識別子を取得し、この取得した識別子を設定したアクティブインスタンス生成完了通知をアクティブインスタンス管理部31に返送する(ステップS155)。アクティブインスタンス管理部31は、アクティブインスタンス生成完了通知を受信すると、ステップS135において追加したレコードのインスタンス状態にアクティブを設定するとともに、当該レコードにアクティブインスタンス生成完了通知から取得した識別子である内部IPアドレスを設定する(ステップS160)。アクティブインスタンス管理部31は、仮想化装置管理部32から受信したアクティブインスタンス生成完了通知をインスタンス管理装置2へ送信する(ステップS165)。
【0047】
インスタンス管理装置2のインスタンス状態管理部22は、ステップS120において追加したインスタンス管理テーブルのレコードに、アクティブを示すインスタンス状態を設定するとともに、当該レコードにアクティブインスタンス生成完了通知から取得した識別子である内部IPアドレスを設定する(ステップS170)。インスタンス状態管理部22は、アクティブインスタンス生成完了通知から識別子を取得し、取得した識別子を設定したインスタンス生成完了通知をユーザ要求受付部21へ返送する(ステップS175)。ユーザ要求受付部21は、外部IPアドレスを割付けると、この割付けた外部IPアドレスと、インスタンス生成完了通知に設定されている内部アドレスとを対応付けて自身の備える記憶手段に記憶する(ステップS180)。インスタンス状態管理部22は、ユーザ要求受付部21が割付けた外部IPアドレスを、ステップS170において更新したインスタンス管理テーブルのレコードに追加する。ユーザ要求受付部21は、割付けた外部IPアドレスを識別子として設定したインスタンス生成完了通知を利用者の端末100へ返送する(ステップS185)。ここでは、識別子として外部IPアドレスを用いているが、外部IPアドレスを一部に含んだ情報を用いることもできる。
【0048】
利用者は、自身の端末100により通知された識別子により仮想化装置1と相互に通信し、当該仮想化装置1において起動されたインスタンス(仮想マシン)の提供するクラウドコンピュータサービスを享受する。すなわち、利用者の端末100からの処理要求などのイベントを受信すると、インスタンスは、当該イベントに従ってクラウドコンピュータサービスを実行し、その実行結果を利用者の端末100に返送する。なお、利用者の端末100から送信される処理要求に設定された識別子としての外部IPアドレスは、インスタンス管理装置2のユーザ要求受付部21によって内部IPアドレスに変換され、仮想化装置1上で実行されているインスタンスに到達する。また、当該インスタンスの実行結果に設定される識別子としての内部IPアドレスは、インスタンス管理装置2のユーザ要求受付部21によって外部IPアドレスに変換され、利用者の端末100へ返送される。
【0049】
図11は、アクティブインスタンス非活性検出時のインスタンス管理システムのシーケンス図である。
アクティブインスタンス管理装置3の仮想化装置管理部32は、アクティブインスタンス管理テーブル記憶装置12内のアクティブインスタンス管理テーブルを参照してインスタンス状態がアクティブであるインスタンスの内部IPアドレスを特定し、この特定した内部IPアドレスにより特定されるインスタンスそれぞれについて、定期的に、仮想化装置1におけるリソース消費状態を収集する(ステップS205)。仮想化装置管理部32は、収集した各インスタンスのリソース消費状態に基づいて、アクティブインスタンス管理テーブル内のアイドル時間を更新する。
【0050】
あるいは、アクティブインスタンス管理装置3が、インスタンス状態がアクティブであるアクティブインスタンス管理テーブル内の各レコードのアイドル時間を1秒毎などの所定時間毎に更新していき、インスタンスへのアクセスが検出されたときに、仮想化装置1またはインスタンス管理装置2から通知を受け、当該インスタンスに対応したレコードのアイドル時間を0クリアするようにしてもよい。
【0051】
仮想化装置管理部32は、アクティブインスタンス管理テーブルに、インスタンス状態がアクティブであり、かつ、アイドル時間に例えば1時間以上などの所定の閾値以上の時間が設定されているレコードがあるかの検索を行う。インスタンス状態がアクティブであり、かつ、アイドル時間に所定の閾値以上の時間が設定されているレコードが検出された場合、仮想化装置管理部32は、当該レコードに対応するインスタンスをセミサスペンド状態に移行させるべきであると判断する(ステップS210)。
【0052】
仮想化装置管理部32は、検出されたレコードから読み出したアクティブインスタンスIDを設定したセミサスペンド化依頼をアクティブインスタンス管理部31へ出力する(ステップS215)。アクティブインスタンス管理部31は、受信したセミサスペンド化依頼からアクティブインスタンスIDを取得すると、取得したアクティブインスタンスIDにより特定されるアクティブインスタンス管理テーブル内のレコードにセミサスペンド化中を設定してインスタンス状態を更新するとともに、当該レコードからインスタンスIDを読み出す(ステップS220)。アクティブインスタンス管理部31は、読み出したインスタンスIDを設定したセミサスペンド化依頼をインスタンス管理装置2へ出力する(ステップS225)。
【0053】
インスタンス管理装置2のインスタンス状態管理部22は、受信したセミサスペンド化依頼からインスタンスIDを取得すると、取得したインスタンスIDにより特定されるインスタンス管理テーブル内のレコードにセミサスペンド化中を設定し、インスタンス状態を更新する(ステップS230)。ユーザ要求受付部21は、セミサスペンド化依頼受付完了通知をアクティブインスタンス管理装置3へ送信し(ステップS235)、アクティブインスタンス管理装置3のアクティブインスタンス管理部31は、インスタンス管理装置2から受信したセミサスペンド化依頼完了通知を仮想化装置管理部32へ出力する(ステップS240)。
【0054】
図12及び図13は、図11に続いて実行される、セミサスペンド移行時のインスタンス管理システムのシーケンス図である。
図12において、インスタンス管理装置2は、図11のステップS230において取得したインスタンスIDを保存領域確保依頼に設定し、セミサスペンドインスタンス管理装置4へ送信する(ステップS305)。セミサスペンドインスタンス管理装置4のセミサスペンドインスタンス管理部41は、インスタンス管理装置2から受信した保存領域確保依頼をセミサスペンドインスタンス保存装置管理部42へ出力し、セミサスペンドインスタンス保存装置管理部42は、現在使用されていないセミサスペンドインスタンス保存装置5の保存領域を割当てる(ステップS310)。セミサスペンドインスタンス保存装置管理部42は、割当てた保存領域を特定するURIである保存イメージURIを設定した保存領域確保通知をセミサスペンドインスタンス管理部41に返送する(ステップS315)。
【0055】
セミサスペンドインスタンス管理部41は、セミサスペンドインスタンス管理テーブル記憶装置13に記憶されているセミサスペンドインスタンス管理テーブルに新たなレコードを追加し、当該レコードに保存領域確保依頼から取得したインスタンスIDと、保存領域確保通知から取得した保存イメージURIを設定する(ステップS320)。セミサスペンドインスタンス管理部41は、セミサスペンドインスタンス保存装置管理部42から受信した保存領域確保通知をインスタンス管理装置2へ送信する(ステップS325)。
【0056】
インスタンス管理装置2のインスタンス状態管理部22は、ステップS305において送信したインスタンスIDにより特定されるアクティブインスタンス管理テーブル内のレコードの保存イメージURIに、保存領域確保通知から取得した保存イメージURIを書き込む(ステップS330)。インスタンス状態管理部22は、インスタンスID及び保存イメージURIを設定したスナップショット作成依頼をアクティブインスタンス管理装置3へ送信する(ステップS335)。
【0057】
アクティブインスタンス管理装置3のアクティブインスタンス管理部31は、スナップショット作成依頼からインスタンスIDを取得し、当該インスタンスIDに対応した内部IPアドレスをアクティブインスタンス管理テーブルから読み出す。アクティブインスタンス管理部31は、インスタンス管理装置2から受信したスナップショット作成依頼のインスタンスIDを、読み出した内部IPアドレスを示す識別子に置き換えて仮想化装置管理部32へ出力する(ステップS340)。仮想化装置管理部32は、仮想化装置1へスナップショット作成依頼を送信すると(ステップS345)、仮想化装置1は、スナップショット作成依頼に設定されている識別子で特定されるインスタンスについて、その時点のスナップショットを生成し、スナップショットイメージ構成ファイルを作成する(ステップS350)。仮想化装置1は、スナップショット作成依頼から保存イメージURIを取得すると、当該保存イメージURIにより特定されるセミサスペンドインスタンス保存装置5の記憶領域に、作成したスナップショットイメージ構成ファイルを書き込み、スナップショット作成完了通知をアクティブインスタンス管理装置3へ返送する(ステップS355)。なお、仮想化装置1が作成したスナップショットイメージ構成ファイルをアクティブインスタンス管理装置3へ送信し、アクティブインスタンス管理装置3においてセミサスペンドインスタンス保存装置5へ書き込むことでもよい。
【0058】
アクティブインスタンス管理装置3の仮想化装置管理部32は、スナップショット作成完了通知をアクティブインスタンス管理部31に返送する(ステップS360)。アクティブインスタンス管理部31は仮想化装置管理部32から受信したスナップショット作成完了通知をインスタンス管理装置2へ出力する(ステップS365)。
【0059】
インスタンス管理装置2のインスタンス状態管理部22は、アクティブインスタンス管理装置3からスナップショット作成完了通知を受信すると、ステップS305において送信したインスタンスIDを設定した種火インスタンス作成依頼を種火インスタンス管理装置6へ送信する(ステップS370)。種火インスタンス管理装置6の種火インスタンス管理部61は、種火インスタンス作成依頼を受信すると、種火インスタンスのオブジェクトである種火インスタンスイメージを生成して記憶する(ステップS375)。種火インスタンス管理部61は、種火インスタンスイメージを記憶した領域のURIである種火インスタンスイメージURIを設定した種火インスタンス作成完了通知をインスタンス管理装置2へ返送する(ステップS380)。
【0060】
図13において、インスタンス管理装置2のインスタンス状態管理部22は、種火インスタンス管理装置6から受信した種火インスタンス作成完了通知から種火インスタンスイメージURIを取得し、取得した種火インスタンスイメージURIと、インスタンスIDとを設定した種火インスタンス起動依頼をアクティブインスタンス管理装置3へ送信する(ステップS405)。アクティブインスタンス管理装置3のアクティブインスタンス管理部31は、インスタンス管理装置2から受信した仮想マシン起動依頼を仮想化装置管理部32へ出力し(ステップS410)、仮想化装置管理部32は当該仮想マシン起動依頼を仮想化装置1へ送信する(ステップS415)。
【0061】
仮想化装置1は、受信した仮想マシン起動依頼に設定されている種火インスタンスイメージURIで特定される種火インスタンスを起動する。仮想化装置1は、当該種火インスタンスにアクセスする際に使用する識別子を設定した仮想マシン起動完了通知をアクティブインスタンス管理装置3へ返送する(ステップS420)。この識別子には、内部IPアドレスが用いられ、元のインスタンスとは異なる値となる。
【0062】
アクティブインスタンス管理装置3の仮想化装置管理部32は、受信した仮想マシン起動完了通知をアクティブインスタンス管理部31に出力し(ステップS425)、アクティブインスタンス管理部31は、仮想マシン起動完了通知から取得した識別子を設定した種火インスタンス起動完了通知をインスタンス管理装置2へ送信する(ステップS430)。
【0063】
インスタンス管理装置2のインスタンス状態管理部22は、ステップS405において通知したインスタンスIDにより特定されるインスタンス管理テーブル内のレコードに、セミサスペンドを設定したインスタンス状態と書き込むとともに、種火インスタンス起動完了通知から取得した識別子である内部IPアドレスを設定する(ステップS435)。インスタンス状態管理部22は、上記のインスタンスIDを設定したセミサスペンド化登録依頼をセミサスペンドインスタンス管理装置4に送信する(ステップS440)。セミサスペンドインスタンス管理装置4のセミサスペンドインスタンス管理部41は、受信したセミサスペンド化登録依頼からインスタンスIDを取得し、当該インスタンスIDにより特定されるセミサスペンドインスタンス管理テーブル内のレコードに、セミサスペンドを設定したインスタンス状態を書き込む(ステップS445)。
【0064】
インスタンス管理装置2のインスタンス状態管理部22は、さらに、上記のインスタンスIDを設定したアクティブインスタンス解放要求をアクティブインスタンス管理装置3へ送信する(ステップS450)。アクティブインスタンス管理装置3のアクティブインスタンス管理部31は、受信したアクティブインスタンス解放要求からインスタンスIDを取得し、取得したインスタンスIDに対応した内部IPアドレスをアクティブインスタンス管理テーブルから読み出す。そして、読み出した内部IPアドレスを識別子として設定した仮想マシン解放要求を仮想化装置管理部32へ出力する(ステップS455)。仮想化装置管理部32は、受信した仮想マシン解放要求を仮想化装置1へ送信する(ステップS460)。仮想化装置1は、仮想マシン解放要求に設定されている識別子により特定されるインスタンスを解放する。これにより、仮想化装置1は、当該インスタンスが利用している物理コンピュータの領域、つまり、CPU、メモリなどの各種リソースを解放する。
【0065】
次に、図12のステップS380における種火インスタンスの生成について説明する。種火インスタンスとは、
(a)利用者の端末100からイベント、例えば、コマンド等の処理要求を受信した場合、一時的にそのイベントを保留(キューイング)しておき、
(b)サスペンドされている本来のインスタンスを再開するための信号を発生させ、
(c)本来のインスタンスの再開が完了した後、この本来のインスタンスに、保留していたイベントを受け渡すとともに、制御を渡し、
(d)当該種火インスタンスのデリート(解放)処理を実行する、
という処理を実行するインスタンスである。
このインスタンス自体は小型でCPU消費も最小限であり、リソース消費が少ないことを特長とする。
【0066】
そこで、種火インスタンス管理装置6の種火インスタンス管理部61は、図12のステップS370においてインスタンス管理装置2から受信した仮想マシン起動依頼に設定されているインスタンスIDの情報に基づいて仮想マシンイメージを作成する。この仮想マシンイメージには、以下のインタフェース及び保存領域の情報と、制御プログラムとが含まれる。すなわち、
(1)インスタンスIDにより特定されるインスタンスが使用しているネットワークインタフェース、
(2)(1)のネットワークインタフェースへ送信されたイベントを保持するキュー、
(3)最初のイベント、つまり、利用者の端末100から受信したイベントをトリガーとして、図12のステップS370において受信したインスタンスIDを設定したインスタンス起動をインスタンス管理装置2に依頼する処理(図14のステップS505のインスタンス起動要求)、
(4)(3)の依頼によってスナップショットが起動された、つまり、元のインスタンスが再開した後、(2)においてネットワークインタフェースにキューイングしておいたイベントを起動されたインスタンスに渡す処理、
(5)当該種火インスタンスのデリート処理を実行して自らは消滅する処理、
が仮想マシンイメージに含まれる。
種火インスタンス管理部61は、作成した仮想マシンイメージを自身が備える記憶手段の保存領域に格納し、図12のステップS380において、その保存領域のURIである種火インスタンスイメージURIをインスタンス管理装置2へ通知する。
【0067】
なお、(1)において設定されるネットワークインタフェースとは、セミサスペンド化の対象となった元のインスタンスが使用していたポート群である。このポート群は、例えば、種火インスタンス管理装置6の種火インスタンス管理部61が、仮想化装置1に、セミサスペンド化の対象となったインスタンスの識別子を送信して問い合わせることによって取得するか、仮想化装置1のポートスキャンを行い、セミサスペンド化の対象となったインスタンスの内部IPアドレスに対応した使用ポートを取得する。
例えば、元のインスタンスが、内部IPアドレスAのポートa、ポートb及びポートcを使用していた場合、ネットワークインタフェースには、ポートa、ポートb及びポートcが設定される。これにより、生成された種火インスタンスに内部アドレスBが使用される場合、種火インスタンスは、内部IPアドレスBのポートa、ポートb及びポートcをリスンし、イベントの発生を検出する。あるいは、種火インスタンスは、元のインスタンスが使用していたポートに関わらず、内部IPアドレスBの全てのポートをリスンするようにしてもよい。この場合、ネットワークインタフェースには、内部IPアドレスBに対応したネットワークデバイスからのselect(Linux(登録商標)の場合)など、複数のソケット(IPアドレス+ポート番号)に対してのメッセージ待ちを可能にするためのシステムコールが記述される。
【0068】
図14及び図15は、セミサスペンド状態からの再開時のインスタンス管理システムのシーケンス図である。
図14において、利用者の端末100から、図10のステップS185において送信したインスタンス生成完了通知に設定されている識別子としての外部IPアドレスをアクセス先として設定した処理要求(イベント)が送信されると、インスタンス管理装置2のユーザ要求受付部21は、インスタンス管理テーブルから当該要求に設定されている外部IPアドレスに対応した内部IPアドレスを読み出す。ユーザ要求受付部21は、利用者の端末100から受信した要求に設定されている外部IPアドレスを、読み出した内部IPアドレスに書き換え、仮想化装置1へ送信する。これにより、内部IPアドレスにより特定される種火インスタンスへ当該イベントが送信される。種火インスタンスは、イベントが検出対象のポート番号を使用している場合、当該イベントをキューイングする。なお、検出対象のポート番号を使用したイベントを複数受信した場合、インスタンスが再開されるまでそれら受信した全てのイベントをキューに保持しておく。仮想化装置1において実行されている種火インスタンスは、元のインスタンスのインスタンスIDを設定したインスタンス起動要求をインスタンス管理装置2へ送信する(ステップS505)。
【0069】
インスタンス管理装置2のユーザ要求受付部21は、種火インスタンスから受信したインスタンス起動要求をインスタンス状態管理部22へ出力する(ステップS510)。インスタンス状態管理部22は、受信したインスタンス起動要求からインスタンスIDを取得し、当該インスタンスIDに対応したインスタンス管理テーブル内のレコードを特定すると、特定したレコードから保存イメージURIを読み出す(ステップS515)。インスタンス状態管理部22は、インスタンス起動要求から取得したインスタンスIDと、インスタンス管理テーブルから読み出した保存イメージURIとを設定したアクセスインスタンス起動要求をアクティブインスタンス管理装置3に送信する(ステップS520)。
【0070】
アクティブインスタンス管理装置3のアクティブインスタンス管理部31は、インスタンス管理装置2からアクティブインスタンス起動要求を受信すると、新たなアクティブインスタンスIDを生成し(ステップS525)、アクティブインスタンス管理テーブルに、生成したアクティブインスタンスIDと、アクティブインスタンス起動要求から取得したインスタンスIDとを設定したレコードを追加する(ステップS530)。アクティブインスタンス管理部31は、アクティブインスタンス起動要求を仮想化装置管理部32へ出力し(ステップS535)、仮想化装置管理部32は、アクティブインスタンス起動要求から保存イメージURIを取得し、取得した保存イメージURIを設定した仮想マシン起動依頼を仮想化装置1へ送信する(ステップS540)。
【0071】
仮想化装置1は、仮想マシン起動依頼に設定されている保存イメージURIで特定されるインスタンスを生成する。これにより、セミサスペンド前のインスタンス状態やインスタンスメモリイメージがそのまま引き継がれたインスタンスが生成される。仮想化装置1は、再開されたインスタンスに使用する識別子、つまり、元のインスタンスが使用していた内部IPアドレスを設定した仮想マシン起動完了通知をアクティブインスタンス管理装置3へ返送する(ステップS545)。
【0072】
アクティブインスタンス管理装置3の仮想化装置管理部32は、受信した仮想マシン起動完了通知から識別子を取得し、この取得した識別子を設定したアクティブインスタンス生成完了通知をアクティブインスタンス管理部31に返送する(ステップS550)。アクティブインスタンス管理部31は、アクティブインスタンス生成完了通知を受信すると、ステップS530において追加したアクティブインスタンス管理テーブルのレコードのインスタンス状態にアクティブを設定するとともに、当該レコードに仮想マシン起動完了通知から取得した識別子である内部IPアドレスを設定する(ステップS555)。アクティブインスタンス管理部31は、仮想化装置管理部32から受信したアクティブインスタンス起動完了通知をインスタンス管理装置2へ送信する(ステップS560)。
【0073】
図15において、アクティブインスタンス管理装置3からアクティブインスタンス起動完了通知を受信したインスタンス管理装置2のインスタンス状態管理部22は、図14のステップS515において特定したインスタンス管理テーブルのレコードに、アクティブを示すインスタンス状態を設定するとともに、当該レコードにアクティブインスタンス起動完了通知から取得した識別子である内部IPアドレスを設定する(ステップS605)。インスタンス状態管理部22は、アクティブインスタンス生成完了通知から識別子を取得し、取得した識別子を設定したインスタンス起動完了通知をユーザ要求受付部21へ返送する(ステップS610)。ユーザ要求受付部21は、外部IPアドレスと、インスタンス生成完了通知に設定されている内部IPアドレスとを対応付けて自身の備える記憶手段に記憶する(ステップS615)。ユーザ要求受付部21は、インスタンス起動完了通知を種火インスタンスへ返送する(ステップS620)。
【0074】
仮想化装置1で実行されている種火インスタンスは、インスタンス管理装置2から受信したインスタンス起動完了通知を受信して、元のインスタンスが再開されたことを認識すると、キューイングしていたイベントの宛先の内部IPアドレスを再開されたインスタンスの内部IPアドレスに書き換えて送信し、その後自らは処理を終了して消滅する。利用者は、再開されたインスタンスによって、クラウドコンピュータサービスを享受する。
【0075】
また、インスタンス管理装置2のインスタンス状態管理部22は、セミサスペンドインスタンス削除要求に、インスタンス起動要求から取得したインスタンスIDを設定してセミサスペンドインスタンス管理装置4へ送信する(ステップS625)。セミサスペンドインスタンス管理装置4のセミサスペンドインスタンス管理部41は、受信したセミサスペンドインスタンス削除要求からインスタンスIDを取得し、取得したインスタンスIDにより特定されるセミサスペンドインスタンス管理テーブルのレコードを削除する(ステップS630)。
【0076】
図16は、セミサスペンドインスタンス非活性検出時のインスタンス管理システムのシーケンス図である。
セミサスペンドインスタンス管理テーブル内のレコードは、元のインスタンスがレジュームされるか、サスペンド状態に移行するまで削除されないことから、当該レコードに登録されているインスタンスはセミサスペンド状態が継続していることを示す。そこで、セミサスペンドインスタンス管理装置4のセミサスペンドインスタンス管理部41は、インスタンス状態がセミサスペンドであるセミサスペンドインスタンス管理テーブル内のレコードのセミサスペンド状態持続時間を、例えば1秒毎など、所定の時間毎に更新する。更新後、セミサスペンドインスタンス管理部41は、インスタンス状態にセミサスペンドが設定されており、かつ、セミサスペンド状態持続時間に、例えば3時間以上などの所定の閾値以上の時間が設定されているレコードがあるかの検索を行う。インスタンス状態がセミサスペンドであり、かつ、セミサスペンド状態持続時間に所定の閾値以上の時間が設定されているレコードが検出された場合、セミサスペンドインスタンス管理部41は、当該レコードに対応するインスタンスをサスペンド状態に移行させるべきであると判断する(ステップS705)。
【0077】
セミサスペンドインスタンス管理部41は、ステップS705において検出されたセミサスペンドインスタンス管理テーブルのレコードに、サスペンド化中状態を示すインスタンス状態を書き込む(ステップS710)。セミサスペンドインスタンス管理部41は、当該レコードからインスタンスIDを読み出し、読み出したインスタンスIDを設定したサスペンド化依頼をインスタンス管理装置2へ送信する(ステップS715)。
【0078】
インスタンス管理装置2のインスタンス状態管理部22は、受信したサスペンド化依頼からインスタンスIDを取得すると、取得したインスタンスIDにより特定されるインスタンス管理テーブル内のレコードにサスペンド化中状態を設定し、インスタンス状態を更新する(ステップS720)。インスタンス状態管理部22は、サスペンド化依頼受付完了通知をセミサスペンドインスタンス管理装置4へ送信する(ステップS725)。
【0079】
図17は、図16に続いて実行される、サスペンド移行時のインスタンス管理システムのシーケンス図である。
インスタンス管理装置2は、図16のステップS715において取得したインスタンスIDを保存領域確保依頼に設定し、サスペンドインスタンス管理装置7へ送信する(ステップS805)。サスペンドインスタンス管理装置7のサスペンドインスタンス管理部71は、インスタンス管理装置2から受信した保存領域確保依頼をサスペンドインスタンス保存装置管理部72へ出力し、サスペンドインスタンス保存装置管理部72は、現在使用されていないサスペンドインスタンス保存装置8の保存領域を割当てる(ステップS810)。サスペンドインスタンス保存装置管理部72は、割当てた保存領域を特定するURIである保存イメージURIを設定した保存領域確保通知をサスペンドインスタンス管理部71に返送する(ステップS815)。
【0080】
サスペンドインスタンス管理部71は、サスペンドインスタンス管理テーブル記憶装置14に記憶されているサスペンドインスタンス管理テーブルに新たなレコードを追加し、当該レコードに保存領域確保依頼から取得したインスタンスIDと、保存領域確保通知から取得した保存イメージURIを設定する(ステップS820)。サスペンドインスタンス管理部71は、サスペンドインスタンス保存装置管理部72から受信した保存領域確保通知をインスタンス管理装置2へ返送する(ステップS825)。
【0081】
インスタンス管理装置2のインスタンス状態管理部22は、ステップS805において送信したインスタンスIDにより特定されるセミサスペンドインスタンス管理テーブル内のレコードにサスペンドを設定したインスタンス状態と書き込むとともに、受信した保存領域確保通知から取得した保存イメージURIを書き込む(ステップS830)。インスタンス状態管理部22は、ステップS805において送信したインスタンスIDと、保存領域確保通知から取得した保存イメージURIを設定したサスペンド化依頼をセミサスペンドインスタンス管理装置4へ送信する(ステップS835)。
【0082】
セミサスペンドインスタンス管理装置4は、インスタンス管理装置2から受信したサスペンド化依頼をセミサスペンドインスタンス保存装置管理部42へ送信する(ステップS840)。セミサスペンドインスタンス保存装置管理部42は、サスペンド化依頼からインスタンスIDを取得し、当該インスタンスIDにより特定されるセミサスペンドインスタンス管理テーブルのレコードから保存イメージURIを読み出す。セミサスペンドインスタンス保存装置管理部42は、セミサスペンドインスタンス管理テーブルのレコードから読み出した保存イメージURIにより特定されるセミサスペンドインスタンス保存装置5の記憶領域よりスナップショットイメージ構成ファイルを読み出す。セミサスペンドインスタンス保存装置管理部42は、サスペンド化依頼に設定されている保存イメージURIにより特定されるサスペンドインスタンス保存装置8の記憶領域に、セミサスペンドインスタンス保存装置5から読み出したスナップショットイメージ構成ファイルを書き込む(ステップS845)。セミサスペンドインスタンス保存装置管理部42は、セミサスペンドインスタンス保存装置5の記憶領域から、スナップショットイメージ構成ファイルを削除すると、セミサスペンドインスタンス管理部41へサスペンド化依頼応答を返送する(ステップS850)。
【0083】
セミサスペンドインスタンス管理部41は、ステップS835において受信したサスペンド化依頼から取得したインスタンスIDにより特定されるセミサスペンドインスタンス管理テーブルのレコードを削除し(ステップS855)、インスタンス管理装置2へサスペンド化依頼応答を返送する(ステップS860)。
インスタンス管理装置2のインスタンス状態管理部22は、セミサスペンドインスタンス管理装置4からサスペンド化依頼応答を受信すると、ステップS805において送信したインスタンスIDを設定したサスペンド化登録依頼をサスペンドインスタンス管理装置7へ送信する(ステップS865)。サスペンドインスタンス管理装置7のサスペンドインスタンス管理部71は、受信したサスペンド化登録依頼からインスタンスIDを取得すると、この取得したインスタンスIDに対応したサスペンドインスタンス管理テーブル内のレコードに、サスペンドを示すインスタンス状態を書き込む(ステップS870)。
【0084】
サスペンドインスタンス管理装置7のサスペンドインスタンス管理部71は、サスペンドインスタンス管理テーブル内のレコードのセミサスペンド状態持続時間を、例えば1秒毎など、所定の時間毎に更新する。通知装置9は、定期的にサスペンドインスタンス管理テーブルに、所定の閾値以上の時間が設定されているレコードがあるかの検索を行なう。そして、サスペンド状態持続時間に所定の閾値以上の時間が設定されているレコードが検出された場合、当該レコードに対応するインスタンスIDを読み出す。ユーザ通知装置は、読み出したインスタンスIDに対応するユーザIDをインスタンス管理テーブルから読み出すと、当該ユーザIDにより特定される利用者の端末100へインスタンスの停止を促す内容のメッセージを送信する。あるいは、通知装置9は、当該ユーザIDにより特定される利用者の情報を、図示しない利用者管理用データベースから読み出して保守者の端末100へ出力してもよい。保守者は、当該利用者へ電話等によって使用されていないインスタンスがあることを通知する。
【0085】
なお、サスペンドインスタンス管理装置7のサスペンドインスタンス管理部71は、サスペンドインスタンス管理テーブルに、通知装置9による通知が行われた後、さらに所定時間が経過した時間がセミサスペンド状態持続時間に設定されているレコードを検出した場合、当該レコードの保存イメージURIを読み出し、当該保存イメージURIにより特定されるサスペンドインスタンス保存装置8の記憶領域に記憶されているスナップショットイメージ構成ファイルを削除してもよい。そして、サスペンドインスタンス管理部71は、当該レコードから読み出したインスタンスIDをインスタンス管理装置2に通知し、当該インスタンスIDにより特定される種火インスタンスの終了を指示する。インスタンス管理装置2は、受信した種火インスタンスの終了指示をアクティブインスタンス管理装置3へ送信し、アクティブインスタンス管理装置3は、種火インスタンスの終了指示に設定されているインスタンスに対応した内部IPアドレスを読み出し、当該内部IPアドレスにより特定される種火インスタンスの終了を仮想化装置1に指示する。
【0086】
なお、サスペンド状態からの再開時のインスタンス管理システムの処理は、図14及び15に示す処理と同様である。セミサスペンド状態からの再開時との違いは、保存イメージURIが、セミサスペンドインスタンス保存装置5の記憶領域の代わりにサスペンドインスタンス保存装置8の記憶領域を示していること、図15のステップS625においてインスタンス管理装置2のインスタンス状態管理部22は、サスペンドインスタンス管理装置7へインスタンスIDを設定したサスペンドインスタンス削除要求を送信し、ステップS630において、サスペンドインスタンス管理装置7のサスペンドインスタンス管理部71は、受信したサスペンドインスタンス削除要求からインスタンスIDを取得し、取得したインスタンスIDにより特定されるサスペンドインスタンス管理テーブルのレコードを削除することである。
【0087】
図18は、課金処理の処理手順を示す図である。
同図において、インスタンス管理装置2の課金管理部23は、一定時間毎にインスタンス管理テーブルの各レコードから、インスタンスID及びユーザIDと、当該インスタンスIDにより特定されるインスタンスのインスタンス状態とを読み出す(ステップS905)。課金管理部23は、各ユーザIDに対応した課金管理テーブルに、当該ユーザIDについて読み出したインスタンスIDの状態に基づき累積時間を加算する(ステップS910)。例えば、1分毎にインスタンス管理テーブルを参照して課金管理テーブルを更新する場合、ユーザID「XXX」に対応してインスタンスID「YYYY」、インスタンス状態「アクティブ」が読み出されたとすると、まず、ユーザID「XXX」に対応した課金管理テーブルを特定し、この特定した課金管理テーブル内のインスタンスID「YYYY」が設定されているレコードのアクティブ状態累積時間を、現在の累積時間に1分を加算した累積時間に更新する。なお、インスタンス状態がセミサスペンドであれば、セミサスペンド状態累積時間を、インスタンス状態がサスペンドであれば、サスペンド状態累積時間を更新する。また、ユーザIDに対応する課金管理テーブルがない場合には新たな課金管理テーブルを生成し、インスタンスIDに対応したレコードが課金管理テーブルにない場合には、新たなレコードを追加する。
【0088】
課金管理部23は、課金管理テーブルから各ユーザについて、アクティブ状態累積時間、セミサスペンド状態累積時間、サスペンド状態累積時間を読み出して課金金額を算出する(ステップS915)。例えば、課金管理部23は、(アクティブ状態の時間単価)>(セミサスペンド状態の時間単価)>(サスペンド状態の時間単価)とし、従量課金分の金額を、(アクティブ状態の時間単価)×(アクティブ状態累積時間)+(セミサスペンド状態累の時間単価)×(セミサスペンド状態累積時間)+(サスペンド状態の時間単価)×(サスペンド状態累積時間)により算出する。
【0089】
本実施形態によれば、使用されていないと判断されたインスタンスを一時的に停止し、この一時的に停止された際のスナップショットを格納して当該インスタンスを解放するとともに、当該インスタンスへのイベントが発生した際には高速に再開させる機能を有する種火インスタンスを起動してセミサスペンド状態とする。このセミサスペンド状態のインスタンスについては、しばらくはリソースが不要となるため、その不要となったリソースをリソースプールに戻して、他のインスタンスに割り振ることが可能となる。
また、セミサスペンド状態のままさらに時間が経過しても元のインスタンスが再開されない場合には、スナップショットを高価かつ高速な記憶領域から安価かつ低速な記憶領域に移動し、サスペンド状態とする。サスペンド状態からの再開には、セミサスペンド状態からの再開よりも時間を要するが、コストを下げることができる。
さらにサスペンド状態のままさらに時間が経過しても再開されない場合には、利用者への注意喚起をメールや電話によって行なうことで、サービス利用に関する利用者の不注意による課金への不安を軽減することが可能となる。利用者への通知後、一定時間を経過してもインスタンス停止依頼がない場合は、自動的にインスタンスを停止し、サスペンド領域を解放することも可能である。
【0090】
そして、本実施形態によれば、クラウドコンピューティング提供ビジネスにおいて、セミサスペンド状態、サスペンド状態が継続した時間によって料金を割引できるという、新たな課金モデルを適用することができる。従来は、利用者の指定によってインスタンスが起動されてから終了するまでの時間分だけ一律の単価によって課金されていたが、本実施形態によれば、インスタンスが起動されてから終了するまでの間であっても、インスタンスが非活性であればセミサスペンド状態、あるいは、サスペンド状態に移行させ、解放したリソースを新たに要求されたインスタンスに利用することができる。よって、従来と比較して安価な料金設定でも、採算が取れる運営が可能となる。例えば、従来よりも数割安い課金を求める利用者を対象に、優位なクラウドコンピューティングビジネスを展開することができる。
【0091】
上記のように、活性状態にないインスタンスへのリソース割付を最適化することで、クラウド全体で消費するリソースを削減し、これによって、クラウドコンピューティング環境の利用効率増大によるクラウドコンピューティング提供者側のコスト削減と利益効率向上、クラウドコンピューティング利用側のコスト削減が同時に実現できる。
【0092】
上述の仮想化装置1、インスタンス管理装置2、アクティブインスタンス管理装置3、セミサスペンドインスタンス管理装置4、セミサスペンドインスタンス保存装置5、種火インスタンス管理装置6、サスペンドインスタンス管理装置7、サスペンドインスタンス保存装置8、通知装置9、インスタンス管理テーブル記憶装置11、アクティブインスタンス管理テーブル記憶装置12、セミサスペンドインスタンス管理テーブル記憶装置13、及び、課金管理テーブル記憶装置15は、内部にコンピュータシステムを有している。そして、仮想化装置1、インスタンス管理装置2のユーザ要求受付部21、インスタンス状態管理部22、及び、課金管理部23、アクティブインスタンス管理装置3のアクティブインスタンス管理部31及び仮想化装置管理部32、セミサスペンドインスタンス管理装置4のセミサスペンドインスタンス管理部41及びセミサスペンドインスタンス保存装置管理部42、種火インスタンス管理装置6の種火インスタンス管理部61、サスペンドインスタンス管理装置7のサスペンドインスタンス管理部71及びサスペンドインスタンス保存装置管理部72、ならびに、通知装置9の動作の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータシステムが読み出して実行することによって、上記処理が行われる。ここでいうコンピュータシステムとは、CPU及び各種メモリやOS、周辺機器等のハードウェアを含むものである。
【0093】
また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【0094】
なお、本発明は、上記において説明した実施形態に限定されるものではなく、その主旨を逸脱しない範囲において種々変更可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
【符号の説明】
【0095】
1…仮想化装置
2…インスタンス管理装置
21…ユーザ要求受付部
22…インスタンス状態管理部
23…課金管理部
3…アクティブインスタンス管理装置
31…アクティブインスタンス管理部
32…仮想化装置管理部
4…セミサスペンドインスタンス管理装置
41…セミサスペンドインスタンス管理部
42…セミサスペンドインスタンス保存装置管理部
5…セミサスペンドインスタンス保存装置
6…種火インスタンス管理装置
7…サスペンドインスタンス管理装置
71…サスペンドインスタンス管理部
72…サスペンドインスタンス保存装置管理部
8…サスペンドインスタンス保存装置
9…通知装置
11…インスタンス管理テーブル記憶装置(インスタンス管理情報記憶装置)
12…アクティブインスタンス管理テーブル記憶装置
13…セミサスペンドインスタンス管理テーブル記憶装置
14…サスペンドインスタンス管理テーブル記憶装置
15…課金管理テーブル記憶装置
【特許請求の範囲】
【請求項1】
複数の仮想マシンとして動作する仮想化装置に生成されているインスタンスを管理するアクティブインスタンス管理装置と、
一時停止された前記インスタンスを再開させる処理を含む種火インスタンスを生成する種火インスタンス管理装置と、
一時停止前の前記インスタンスの状態を記録したイメージファイルを記憶するセミサスペンドインスタンス保存装置と、
前記インスタンスの状態を管理するインスタンス管理装置と、
前記インスタンスの状態を記憶するインスタンス管理情報記憶装置とを備えるインスタンス管理システムであって、
前記アクティブインスタンス管理装置は、
前記仮想化装置に生成されている前記インスタンスのうち、所定時間実行されていない前記インスタンスを一時停止対象のインスタンスとして検出し、検出した当該一時停止対象のインスタンスの現在の状態を記録したイメージファイルの生成、及び、当該イメージファイルの前記セミサスペンドインスタンス保存装置への書込みと、前記種火インスタンス管理装置が生成した種火インスタンスの起動とを前記仮想化装置へ指示するとともに、当該種火インスタンスの起動後に前記一時停止対象のインスタンスの解放を前記仮想化装置へ指示し、前記種火インスタンスから、前記一時停止対象のインスタンスが使用していた通信アドレスを宛先としたイベントを検出したときに出力される再開の要求を受信した場合に、前記一時停止対象のインスタンスを前記セミサスペンドインスタンス保存装置に記憶されている前記イメージファイルを使用して一時停止前状態の状態から再開させるよう前記仮想化装置に指示する仮想化装置管理部を備え、
前記種火インスタンス管理装置は、
前記一時停止対象のインスタンスの解放後、当該一時停止対象のインスタンスが使用していた通信アドレスを宛先としたイベントを検出した場合に、当該一時停止対象のインスタンスの再開の要求を出力する処理と、当該一時停止対象のインスタンスの起動に検出した前記イベントを受け渡す処理とを含んだ種火インスタンスを生成する種火インスタンス管理部を備え、
前記インスタンス管理装置は、
前記インスタンスが生成されたときに、当該インスタンスがアクティブ状態であることを示す情報と、当該インスタンスの生成要求から取得した利用者の識別情報とを対応づけて前記インスタンス管理情報記憶装置に書込み、前記アクティブインスタンス管理装置の仮想化装置管理部が、一時停止対象の前記インスタンスを検出したときに、当該インスタンスが一時停止状態であることを示す情報を前記インスタンス管理情報記憶装置に書込み、前記インスタンスが再開されたときに、当該インスタンスがアクティブ状態であることを示す情報を前記インスタンス管理情報記憶装置に書き込むインスタンス状態管理部を備える、
ことを特徴とするインスタンス管理システム。
【請求項2】
一時停止されている前記インスタンスを管理するセミサスペンドインスタンス管理装置をさらに備え、
前記セミサスペンドインスタンス管理装置は、
前記種火インスタンスが生成されてから、前記一時停止対象のインスタンスが使用していた通信アドレスを宛先としたイベントを受信せずに経過した時間を計測し、所定時間以上経過したことを検出するセミサスペンドインスタンス管理部と、
前記セミサスペンドインスタンス管理部が所定時間経過したことを検出した場合に、前記セミサスペンドインスタンス保存装置に記憶されている前記イメージファイルを、当該セミサスペンドインスタンス保存装置よりデータの読み出しが低速なサスペンドインスタンス保存装置に移動するセミサスペンドインスタンス保存装置管理部とを備える、
ことを特徴とする請求項1に記載のインスタンス管理システム。
【請求項3】
前記イメージファイルがサスペンドインスタンス保存装置に移動されてから、前記一時停止対象のインスタンスが使用していた通信アドレスを宛先としたイベントを受信せずに経過した時間を計測するサスペンドインスタンス管理装置と、
前記サスペンドインスタンス管理装置により計測された時間が所定時間以上であることを検出した場合に警告を出力する通知装置と、
をさらに備えることを特徴とする請求項2に記載のインスタンス管理システム。
【請求項4】
前記インスタンス管理装置は、前記インスタンス管理情報記憶装置を参照して得た、各利用者の識別情報に対応するインスタンスのアクティブ状態の累積時間及び一時停止状態の累積時間に基づいて当該利用者の課金金額を算出する課金管理部をさらに備える、
ことを特徴とする請求項1から請求項3のいずれかの項に記載のインスタンス管理システム。
【請求項5】
複数の仮想マシンとして動作する仮想化装置に生成されているインスタンスを管理するアクティブインスタンス管理装置と、
一時停止対象のインスタンスの解放後、当該一時停止対象のインスタンスが使用していた通信アドレスを宛先としたイベントを検出した場合に、当該一時停止対象のインスタンスの再開の要求を出力する処理と、当該一時停止対象のインスタンスの起動に検出した前記イベントを受け渡す処理とを含んだ種火インスタンスを生成する種火インスタンス管理装置と、
一時停止前の前記インスタンスの状態を記録したイメージファイルを記憶するセミサスペンドインスタンス保存装置とを備えるインスタンス管理システムの前記アクティブインスタンス管理装置に用いられるコンピュータプログラムであって、
前記仮想化装置に生成されている前記インスタンスのうち、所定時間実行されていない前記インスタンスを一時停止対象のインスタンスとして検出する検出ステップと、
前記検出ステップにおいて検出した当該一時停止対象のインスタンスの現在の状態を記録したイメージファイルの生成、及び、当該イメージファイルのセミサスペンドインスタンス保存装置への書込みと、前記種火インスタンス管理装置が生成した種火インスタンスの起動とを前記仮想化装置へ指示する種火インスタンス起動ステップと、
前記種火インスタンスの起動後に前記一時停止対象のインスタンスの解放を前記仮想化装置へ指示するインスタンス解放指示ステップと、
前記種火インスタンスから、前記一時停止対象のインスタンスが使用していた通信アドレスを宛先としたイベントを検出したときに出力される再開の要求を受信した場合に、前記一時停止対象のインスタンスを前記セミサスペンドインスタンス保存装置に記憶されている前記イメージファイルを使用して一時停止前状態の状態から再開させるよう前記仮想化装置に指示する再開指示ステップと、
をコンピュータに実行させることを特徴とするコンピュータプログラム。
【請求項1】
複数の仮想マシンとして動作する仮想化装置に生成されているインスタンスを管理するアクティブインスタンス管理装置と、
一時停止された前記インスタンスを再開させる処理を含む種火インスタンスを生成する種火インスタンス管理装置と、
一時停止前の前記インスタンスの状態を記録したイメージファイルを記憶するセミサスペンドインスタンス保存装置と、
前記インスタンスの状態を管理するインスタンス管理装置と、
前記インスタンスの状態を記憶するインスタンス管理情報記憶装置とを備えるインスタンス管理システムであって、
前記アクティブインスタンス管理装置は、
前記仮想化装置に生成されている前記インスタンスのうち、所定時間実行されていない前記インスタンスを一時停止対象のインスタンスとして検出し、検出した当該一時停止対象のインスタンスの現在の状態を記録したイメージファイルの生成、及び、当該イメージファイルの前記セミサスペンドインスタンス保存装置への書込みと、前記種火インスタンス管理装置が生成した種火インスタンスの起動とを前記仮想化装置へ指示するとともに、当該種火インスタンスの起動後に前記一時停止対象のインスタンスの解放を前記仮想化装置へ指示し、前記種火インスタンスから、前記一時停止対象のインスタンスが使用していた通信アドレスを宛先としたイベントを検出したときに出力される再開の要求を受信した場合に、前記一時停止対象のインスタンスを前記セミサスペンドインスタンス保存装置に記憶されている前記イメージファイルを使用して一時停止前状態の状態から再開させるよう前記仮想化装置に指示する仮想化装置管理部を備え、
前記種火インスタンス管理装置は、
前記一時停止対象のインスタンスの解放後、当該一時停止対象のインスタンスが使用していた通信アドレスを宛先としたイベントを検出した場合に、当該一時停止対象のインスタンスの再開の要求を出力する処理と、当該一時停止対象のインスタンスの起動に検出した前記イベントを受け渡す処理とを含んだ種火インスタンスを生成する種火インスタンス管理部を備え、
前記インスタンス管理装置は、
前記インスタンスが生成されたときに、当該インスタンスがアクティブ状態であることを示す情報と、当該インスタンスの生成要求から取得した利用者の識別情報とを対応づけて前記インスタンス管理情報記憶装置に書込み、前記アクティブインスタンス管理装置の仮想化装置管理部が、一時停止対象の前記インスタンスを検出したときに、当該インスタンスが一時停止状態であることを示す情報を前記インスタンス管理情報記憶装置に書込み、前記インスタンスが再開されたときに、当該インスタンスがアクティブ状態であることを示す情報を前記インスタンス管理情報記憶装置に書き込むインスタンス状態管理部を備える、
ことを特徴とするインスタンス管理システム。
【請求項2】
一時停止されている前記インスタンスを管理するセミサスペンドインスタンス管理装置をさらに備え、
前記セミサスペンドインスタンス管理装置は、
前記種火インスタンスが生成されてから、前記一時停止対象のインスタンスが使用していた通信アドレスを宛先としたイベントを受信せずに経過した時間を計測し、所定時間以上経過したことを検出するセミサスペンドインスタンス管理部と、
前記セミサスペンドインスタンス管理部が所定時間経過したことを検出した場合に、前記セミサスペンドインスタンス保存装置に記憶されている前記イメージファイルを、当該セミサスペンドインスタンス保存装置よりデータの読み出しが低速なサスペンドインスタンス保存装置に移動するセミサスペンドインスタンス保存装置管理部とを備える、
ことを特徴とする請求項1に記載のインスタンス管理システム。
【請求項3】
前記イメージファイルがサスペンドインスタンス保存装置に移動されてから、前記一時停止対象のインスタンスが使用していた通信アドレスを宛先としたイベントを受信せずに経過した時間を計測するサスペンドインスタンス管理装置と、
前記サスペンドインスタンス管理装置により計測された時間が所定時間以上であることを検出した場合に警告を出力する通知装置と、
をさらに備えることを特徴とする請求項2に記載のインスタンス管理システム。
【請求項4】
前記インスタンス管理装置は、前記インスタンス管理情報記憶装置を参照して得た、各利用者の識別情報に対応するインスタンスのアクティブ状態の累積時間及び一時停止状態の累積時間に基づいて当該利用者の課金金額を算出する課金管理部をさらに備える、
ことを特徴とする請求項1から請求項3のいずれかの項に記載のインスタンス管理システム。
【請求項5】
複数の仮想マシンとして動作する仮想化装置に生成されているインスタンスを管理するアクティブインスタンス管理装置と、
一時停止対象のインスタンスの解放後、当該一時停止対象のインスタンスが使用していた通信アドレスを宛先としたイベントを検出した場合に、当該一時停止対象のインスタンスの再開の要求を出力する処理と、当該一時停止対象のインスタンスの起動に検出した前記イベントを受け渡す処理とを含んだ種火インスタンスを生成する種火インスタンス管理装置と、
一時停止前の前記インスタンスの状態を記録したイメージファイルを記憶するセミサスペンドインスタンス保存装置とを備えるインスタンス管理システムの前記アクティブインスタンス管理装置に用いられるコンピュータプログラムであって、
前記仮想化装置に生成されている前記インスタンスのうち、所定時間実行されていない前記インスタンスを一時停止対象のインスタンスとして検出する検出ステップと、
前記検出ステップにおいて検出した当該一時停止対象のインスタンスの現在の状態を記録したイメージファイルの生成、及び、当該イメージファイルのセミサスペンドインスタンス保存装置への書込みと、前記種火インスタンス管理装置が生成した種火インスタンスの起動とを前記仮想化装置へ指示する種火インスタンス起動ステップと、
前記種火インスタンスの起動後に前記一時停止対象のインスタンスの解放を前記仮想化装置へ指示するインスタンス解放指示ステップと、
前記種火インスタンスから、前記一時停止対象のインスタンスが使用していた通信アドレスを宛先としたイベントを検出したときに出力される再開の要求を受信した場合に、前記一時停止対象のインスタンスを前記セミサスペンドインスタンス保存装置に記憶されている前記イメージファイルを使用して一時停止前状態の状態から再開させるよう前記仮想化装置に指示する再開指示ステップと、
をコンピュータに実行させることを特徴とするコンピュータプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【公開番号】特開2010−224914(P2010−224914A)
【公開日】平成22年10月7日(2010.10.7)
【国際特許分類】
【出願番号】特願2009−72069(P2009−72069)
【出願日】平成21年3月24日(2009.3.24)
【出願人】(000102728)株式会社エヌ・ティ・ティ・データ (438)
【Fターム(参考)】
【公開日】平成22年10月7日(2010.10.7)
【国際特許分類】
【出願日】平成21年3月24日(2009.3.24)
【出願人】(000102728)株式会社エヌ・ティ・ティ・データ (438)
【Fターム(参考)】
[ Back to top ]