(57)【要約】【課題】所定の処理を実行するインスタンスを短期間に起動することが可能なインスタンス起動装置等を提供する。【解決手段】インスタンス起動装置４００は、第１インスタンスに関する処理の処理負荷が第１閾値以上となった場合に、該第１インスタンスに関するイメージを、第２インスタンスを管理している情報処理装置に転送するよう制御するイメージ転送制御部４１０と、該処理負荷が、該第１閾値よりも大きな第２閾値以上となった場合に、該イメージに基づき該第２インスタンスを起動するよう、該情報処理装置を制御するインスタンス起動制御部４２０とを有する。【選択図】      図１１
2017191542.tif 000002
【特許請求の範囲】
【請求項１】
第１インスタンスに関する処理の処理負荷が第１閾値以上となった場合に、前記第１インスタンスに関するイメージを、第２インスタンスを管理している情報処理装置に転送するよう制御するイメージ制御手段と、
前記処理負荷が、前記第１閾値よりも大きな第２閾値以上となった場合に、前記イメージに基づき前記第２インスタンスを起動するよう、前記情報処理装置を制御する起動制御手段と
を備えるインスタンス起動装置。
【請求項２】
前記起動制御手段は、前記イメージ制御手段によって前記イメージを転送するよう制御された後に、前記処理負荷が前記第２閾値以上となったか否かを判定する
請求項１に記載のインスタンス起動装置。
【請求項３】
前記イメージ制御手段は、前記処理負荷が前記第１閾値未満となった場合に、前記イメージを無効にするよう前記情報処理装置を制御する
請求項１、または、請求項２に記載のインスタンス起動装置。
【請求項４】
前記処理負荷が前記第１閾値よりも小さな第３閾値未満となった場合に、前記イメージを無効にするよう前記情報処理装置を制御する
請求項１、または、請求項２に記載のインスタンス起動装置。
【請求項５】
前記イメージ制御手段は、複数の記憶領域を含むメモリのうち、前記処理負荷が高いほど、多くの記憶領域に格納されているデータのイメージを読み取るよう前記情報処理装置を制御する
請求項１乃至請求項４のいずれかに記載のインスタンス起動装置。
【請求項６】
前記イメージ制御手段は、アクセスされる頻度が多い前記記憶領域から順に、前記処理負荷に応じて前記記憶領域を選択し、選択した前記記憶領域に格納されているデータのイメージを転送するよう制御する
請求項５に記載のインスタンス起動装置。
【請求項７】
前記記憶領域を識別可能な領域識別子が格納されている記憶手段
をさらに備え、
前記イメージ制御手段は、前記記憶手段に格納されている前記領域識別子が表す記憶領域の第１サイズが、前記処理負荷に応じて選択された記憶領域の第２サイズよりも大きい場合に、２つの当該記憶領域の差分を無効にするよう制御し、前記第１サイズが前記第２サイズよりも小さな場合に、前記差分を前記イメージに追加する
請求項５または請求項６に記載のインスタンス起動装置。
【請求項８】
第１インスタンスに関する処理の処理負荷が第１閾値以上となった場合に、前記第１インスタンスに関するイメージを、第２インスタンスを管理している情報処理装置に転送するよう制御し、
前記処理負荷が、前記第１閾値よりも大きな第２閾値以上となった場合に、前記イメージに基づき前記第２インスタンスを起動するよう、前記情報処理装置を制御する
インスタンス起動方法。
【請求項９】
第１インスタンスに関する処理の処理負荷が第１閾値以上となった場合に、前記第１インスタンスに関するイメージを、第２インスタンスを管理している情報処理装置に転送するよう制御するイメージ制御機能と、
前記処理負荷が、前記第１閾値よりも大きな第２閾値以上となった場合に、前記イメージに基づき前記第２インスタンスを起動するよう、前記情報処理装置を制御する起動制御機能と
をコンピュータに実現させるインスタンス起動プログラム。
【請求項１０】
前記起動制御機能においては、前記イメージ制御機能において前記イメージを転送するよう制御された後に、前記処理負荷が前記第２閾値以上となったか否かを判定する
請求項９に記載のインスタンス起動プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、物理コンピュータにおいて、所定の処理を実行する仮想マシン等のインスタンスを起動するインスタンス起動装置等に関する。
【背景技術】
【０００２】
仮想化技術、及び、仮想化技術を用いたクラウドが広く用いられている。クラウドは、ユーザがインターネット等の通信ネットワークを介して、コンピュータ資源を利用するサービスの一例である。クラウドのメリットは、たとえば、所定の処理を実行する物理的なサーバ（情報処理装置）をユーザが準備することなく、オンデマンドにて所定の処理を実行するインスタンス（たとえば、仮想マシンや、コンテナ）を作成することが可能なことである。また、クラウドには、稼働しているインスタンスの処理負荷を監視し、該処理負荷に応じて、さらに、稼働しているインスタンスと同様の機能を有するインスタンスを起動することによって、処理能力を増強するサービスがある。
【０００３】
インスタンスを起動することが決定された場合には、該インスタンスを起動する処理を速やかに完了することによって、所定の処理を短期間に実行することができる。インスタンスの処理負荷は、時間とともに変化する。このため、処理負荷が上昇した場合に、すみやかに、所定の処理を処理可能なインスタンスを起動することによって、該所定の処理に関する処理性能を増強することが必要である。このような処理によって、所定の処理を実行するインスタンスが高負荷である状況を早期に解消することができる。
【０００４】
プレコピーマイグレーションは、仮想マシンを起動する場合に、該仮想マシンがアクセスする主記憶装置（メインメモリ、メモリ）のイメージを、起動前に、該仮想マシンに転送する技術である。プレコピーマイグレーションによれば、仮想マシンがアクセスするデータを含むページが該メモリに格納されていないミスヒット等のオーバーヘッドを低減することができる。すなわち、プレコピーマイグレーションによれば、仮想マシンを起動した直後から短期間にインスタンスを実行することができる。
【０００５】
特許文献１は、メモリのうち、仮想マシンがアクセスする頻度が高いページ、または、仮想マシンが書き込む頻度が高いページを優先的に仮想マシンに転送する装置を開示している。特許文献１に開示された装置は、プレコピーマイグレーションを採用した装置の一例であり、アクセスされる頻度が高いメモリのイメージを、仮想マシンに転送する。特許文献１に開示された装置によれば、一般的なプレコピーマイグレーションと比べ、該仮想マシンにて処理を開始するまでに要する所要時間が短く、さらに、処理性能が劣化する可能性が低い。
【０００６】
特許文献２は、仮想マシンがアクセスするメモリのイメージをバックアップする優先度を、該仮想マシンの処理負荷等に基づき算出し、算出した優先度に基づき、バックアップとしてイメージを作成する装置を開示している。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１５−２２３８０号公報
【特許文献２】特許第５３４２６６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかし、特許文献１、または、特許文献２に開示された装置は、インスタンスを起動することを決定した以降にのみ、該インスタンスに関するイメージを仮想マシンに転送することができる。この結果、該インスタンスに関するイメージを仮想マシンに転送するのに要する所要時間分だけ、該仮想マシンを起動するのに要する所要時間が長期化してしまう。
【０００９】
そこで、本発明の主たる目的は、所定の処理を実行するインスタンスを短期間に起動することが可能なインスタンス起動装置等を提供することである。
【課題を解決するための手段】
【００１０】
前述の目的を達成するために、本発明の一態様において、インスタンス起動装置は、
第１インスタンスに関する処理の処理負荷が第１閾値以上となった場合に、前記第１インスタンスに関するイメージを、第２インスタンスを管理している情報処理装置に転送するよう制御するイメージ制御手段と、
前記処理負荷が、前記第１閾値よりも大きな第２閾値以上となった場合に、前記イメージに基づき前記第２インスタンスを起動するよう、前記情報処理装置を制御する起動制御手段と
を備える。
【００１１】
また、本発明の他の見地として、インスタンス起動方法は、
第１インスタンスに関する処理の処理負荷が第１閾値以上となった場合に、前記第１インスタンスに関するイメージを、第２インスタンスを管理している情報処理装置に転送するよう制御し、
前記処理負荷が、前記第１閾値よりも大きな第２閾値以上となった場合に、前記イメージに基づき前記第２インスタンスを起動するよう、前記情報処理装置を制御する。
【００１２】
また、本発明の他の見地として、係るインスタンス起動プログラムは、
第１インスタンスに関する処理の処理負荷が第１閾値以上となった場合に、前記第１インスタンスに関するイメージを、第２インスタンスを管理している情報処理装置に転送するよう制御するイメージ制御機能と、
前記処理負荷が、前記第１閾値よりも大きな第２閾値以上となった場合に、前記イメージに基づき前記第２インスタンスを起動するよう、前記情報処理装置を制御する起動制御機能と
をコンピュータに実現させる。
【００１３】
さらに、同目的は、係るプログラムを記録するコンピュータが読み取り可能な記録媒体によっても実現される。
【発明の効果】
【００１４】
本発明に係るインスタンス起動装置等によれば、所定の処理を実行するインスタンスを短期間に起動することができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の第１の実施形態に係るインスタンス管理装置が有する構成を示すブロック図である。
【図２】第１の実施形態に係るインスタンス管理装置における処理の流れを示すフローチャートである。
【図３】第１の実施形態に係るイメージ転送制御部における処理の流れを示すフローチャートである。
【図４】第１の実施形態に係るインスタンス起動制御部における処理の流れを示すフローチャートである。
【図５】第１の実施形態に係るイメージ消去制御部における処理の流れを示すフローチャートである。
【図６】本発明の第２の実施形態に係るインスタンス管理装置が有する構成を示すブロック図である。
【図７】第２の実施形態に係るインスタンス管理装置における処理の流れを示すフローチャートである。
【図８】本発明の第３の実施形態に係るインスタンス管理装置が有する構成を示すブロック図である。
【図９】第３の実施形態に係るインスタンス管理装置における処理の流れを示すフローチャートである。
【図１０】転送イメージ情報の一例を概念的に表す図である。
【図１１】本発明の第４の実施形態に係るインスタンス起動装置が有する構成を示すブロック図である。
【図１２】第１の実施形態乃至第３の実施形態に係るインスタンス管理装置、または、第４の実施形態に係るインスタンス起動装置を実現可能な計算処理装置のハードウェア構成例を概略的に示すブロック図である。
【発明を実施するための形態】
【００１６】
次に、本発明を実施する実施形態について図面を参照しながら詳細に説明する。
【００１７】
＜第１の実施形態＞
図１を参照しながら、本発明の第１の実施形態に係るインスタンス管理装置１００が有する構成について詳細に説明する。図１は、本発明の第１の実施形態に係るインスタンス管理装置１００が有する構成を示すブロック図である。
【００１８】
第１の実施形態に係るインスタンス管理装置１００は、システム監視部１１０と、判定部１２０と、イメージ転送制御部１３０と、イメージ消去制御部１４０と、インスタンス起動制御部１５０とを有する。判定部１２０は、転送判定部１２１と、起動判定部１２２とを有する。
【００１９】
インスタンス管理装置１００は、インスタンス実行サーバ１１００を制御することができる。すなわち、インスタンス管理装置１００は、インスタンス実行サーバ１１００に処理を指示することができる。インスタンス実行サーバ１１００は、たとえば、インスタンスイメージ記憶部１２００に格納されているプログラムを読み取り、読み取ったプログラムを実行することができる。
【００２０】
まず、インスタンス実行サーバ１１００について説明する。インスタンス管理装置１００は、インスタンス実行サーバ１１００にて実行されている処理の負荷等を監視することによって、インスタンス実行サーバ１１００に関する処理負荷等を含む監視情報を作成する。インスタンス管理装置１００は、インスタンス実行サーバ１１００に関して、たとえば、中央演算処理装置（ＣＰＵ）の使用率、通信ネットワークの使用量、ディスクの使用量、メモリの使用量等の処理負荷を計測し、計測した処理負荷を含む監視情報を作成する。インスタンス管理装置１００は、作成した監視情報に基づき、インスタンス実行サーバ１１００を制御する。インスタンス管理装置１００が監視しているインスタンス実行サーバ１１００（すなわち、後述する稼働インスタンスサーバ）と、インスタンス管理装置１００が制御しているインスタンス実行サーバ１１００（すなわち、後述する起動インスタンスサーバ）とは、別の物理サーバであってよいし、同一の物理サーバであってもよい。
【００２１】
インスタンス実行サーバ１１００は、たとえば、所定の処理を実行するインスタンスを起動する。
【００２２】
インスタンスは、所定の処理を実行する機能の他、外部装置から受信した要求情報に応じて、該インスタンスに関する処理負荷を返答する機能を有していてもよい。
【００２３】
インスタンス管理装置１００は、インスタンス実行サーバ１１００が高性能に処理することができない、または、高性能に処理することができない可能性が高いと判定した場合に、インスタンス実行サーバ１１００にて、所定の処理を実行することが可能なインスタンスを、さらに、起動する。
【００２４】
説明の便宜上、インスタンス実行サーバ１１００にて稼働しているインスタンスを「稼働インスタンス」、インスタンス実行サーバ１１００にて起動する対象であるインスタンスを「起動インスタンス」と表す。稼働インスタンスが稼働しているインスタンス実行サーバ１１００を、「稼働インスタンスサーバ」と表す。起動インスタンスを起動するインスタンス実行サーバ１１００を、「起動インスタンスサーバ」と表す。稼働インスタンスサーバと、起動インスタンスサーバとは、異なるインスタンス実行サーバ１１００であってもよいし、同一のインスタンス実行サーバ１１００であってもよい。
【００２５】
起動インスタンスは、たとえば、稼働インスタンスと同様の処理を実行する機能、及び、稼働インスタンスが有する機能を代替可能な処理を実行する機能を有する。インスタンス管理装置１００は、起動インスタンスがアクセスするデータ、及び、プログラムを、インスタンスイメージ記憶部１２００から起動インスタンスサーバに読み取る要求を、起動インスタンスサーバに送信する。起動インスタンスサーバは、たとえば、起動インスタンスがアクセスするデータ、及び、プログラムとして、稼働インスタンスサーバがアクセスしているデータ、及び、プログラムのうち、少なくとも一部のデータ、及び、プログラムをインスタンスイメージ記憶部１２００から読み取る。この処理の結果、インスタンス管理装置１００は、稼働インスタンスが有する機能と同様の機能を有する起動インスタンスを起動インスタンスサーバにて起動することが可能な状態を作成することができる。
【００２６】
インスタンス実行サーバ１１００にて処理されるインスタンスは、たとえば、ＣＰＵ、メモリ、通信ネットワーク等のコンピュータ資源を用いて、所定の処理を実行する計算主体を表す。該インスタンスは、たとえば、仮想マシン（Ｖｉｒｔｕａｌ＿Ｍａｃｈｉｎｅ、ＶＭ）、コンテナ、プロセス等を用いて実現することができる。起動インスタンスは、起動する場合にアクセスするメモリのイメージを読み取り、読み取ったイメージに従い起動する。イメージは、たとえば、起動インスタンスを起動する場合にアクセスするプログラム、または、データの一部を表し、該インスタンスを実行する場合に、該インスタンスを実際に処理するインスタンス実行サーバ１１００に転送される。
【００２７】
インスタンスイメージ記憶部１２００は、少なくとも、イメージを格納するのに要する記憶容量を有している。起動インスタンスがアクセスするメモリのイメージが、該起動インスタンスに関する処理を実際に処理する起動インスタンスサーバに格納されている場合には、起動インスタンスサーバは、起動インスタンスを短期間に起動することができる。該イメージは、たとえば、稼働インスタンス（たとえば、仮想マシン）を実行している期間中にアクセスするメモリのイメージ、または、該仮想マシンを制御しているカーネルに関する状態情報のうち、少なくとも一部の情報を含んでいる。以降、説明の便宜上、イメージは、メモリのイメージであるとするが、上記のように、仮想マシンを制御しているカーネルに関する状態を表す状態情報であってもよい。
【００２８】
稼働インスタンスに関する処理と同様の機能を表すイメージを起動インスタンスが参照することによって、該起動インスタンスが起動された直後であっても、ページミスが少なく、さらに、割り込み処理等のオーバーヘッドは低い。この結果、起動インスタンスが起動された直後であっても、該起動インスタンスは、短期間にて所定の処理を開始することができる。
【００２９】
インスタンス実行サーバ１１００は、インスタンスを、複数実行してもよい。インスタンス実行サーバ１１００は、稼働インスタンスに関する処理負荷を問い合わせる要求情報を入力するのに応じて、該稼働インスタンスに関する処理負荷を返答する。インスタンス実行サーバ１１００は、さらに、インスタンスイメージ記憶部１２００に格納されている、起動インスタンスのイメージを読み取る機能、及び、自サーバに格納されているイメージを消去する機能を有する。インスタンス実行サーバ１１００は、起動インスタンスを起動する際にアクセスするイメージをインスタンスイメージ記憶部１２００から読み取り、その後、読み取ったイメージに基づき起動インスタンスを起動する。起動インスタンスは、該イメージに含まれているデータ、及び、プログラムに従い、処理を開始する。また、インスタンス実行サーバ１１００は、該イメージを参照することなく、所定の処理を含むファイルに従い起動インスタンスを起動してもよい。さらに、インスタンス実行サーバ１１００は、自サーバが、起動インスタンスに関するイメージを有しているか否かを判定する機能を有する。
【００３０】
尚、本発明の各実施形態において、「消去」は、あるデータが格納されていた記憶領域に、異なるデータが格納可能な状態にする処理を表す。たとえば、「消去」は、該記憶領域に格納されているデータを無効にする処理であってもよいし、該記憶領域を指し示すポインタに無効なポインタを設定する処理であってもよい。また、「消去」は、たとえば、記憶領域に格納されているデータと異なるデータを、該記憶領域に格納する処理であってもよい。
【００３１】
インスタンス管理装置１００に含まれている各部について説明する。第１の実施形態に係るインスタンス管理装置１００は、インスタンス実行サーバ１１００にて稼働している稼働インスタンスに関する処理負荷を監視する。インスタンス管理装置１００は、インスタンス実行サーバ１１００にて、稼働インスタンスと同様な機能を有している起動インスタンスを、該処理負荷が高い場合に起動する。
【００３２】
システム監視部１１０は、インスタンス実行サーバ１１００にて稼働している稼働インスタンスに関する処理負荷を要求する要求情報を、インスタンス実行サーバ１１００に送信する。システム監視部１１０は、該要求情報に応じて送信された処理負荷を受信し、受信した処理負荷を判定部１２０に対して出力する。システム監視部１１０は、所定のタイミングにて、稼働インスタンスに関する処理負荷を要求する要求情報を送信してもよい。稼働インスタンスの処理負荷は、たとえば、ＣＰＵの使用率、通信ネットワークの使用量、ディスクの使用量、メモリの使用量等の指標、または、これらの指標の組み合わせであってもよく、起動インスタンスを起動する必要性を表す指標であってもよい。
【００３３】
以降、説明の便宜上、該処理負荷は、ＣＰＵの使用率であるとする。
【００３４】
図１を参照すると、判定部１２０は、転送判定部１２１と、起動判定部１２２とを有する。
【００３５】
転送判定部１２１は、要求情報に応じてシステム監視部１１０が出力した稼働インスタンスの処理負荷（たとえば、ＣＰＵの使用率）が、所定の転送条件を満たしているか否かを判定する。所定の転送条件は、たとえば、「ＣＰＵの使用率が第１閾値以上である」なる条件である。所定の転送条件は、ＣＰＵの使用率をｘと表す場合に、たとえば、「ＣＰＵの使用率が６０％以上であるか（ｘ≧０．６）」である。この場合に、第１閾値は、０．６である。
【００３６】
ＣＰＵの使用率が所定の転送条件を満たしている場合に、転送判定部１２１は、インスタンス実行サーバ１１００がインスタンスイメージ記憶部１２００に格納されているイメージを読み取るよう制御する（指示する）読取制御情報を、イメージ転送制御部１３０に対して出力する。ＣＰＵの使用率が所定の転送条件を満たしていない場合に、転送判定部１２１は、インスタンス実行サーバ１１００が有しているイメージを消去するよう制御する消去制御情報を、イメージ消去制御部１４０に対して出力する。
【００３７】
起動判定部１２２は、システム監視部１１０が出力した稼働インスタンスの処理負荷（たとえば、ＣＰＵの使用率）が、所定の起動条件を満たしているか否かを判定する。所定の起動条件は、たとえば、「ＣＰＵの使用率が第２閾値以上である」なる条件である。所定の起動条件は、ＣＰＵの使用率をｘと表す場合に、たとえば、「ＣＰＵの使用率が８０％以上であるか（ｘ≧０．８）」なる条件である。この場合に、第２閾値は、０．８であり、第１閾値よりも大きな値である。
【００３８】
ＣＰＵの使用率が所定の起動条件を満たした場合に、起動判定部１２２は、インスタンス実行サーバ１１００が起動インスタンスを起動するよう制御する起動制御情報を、インスタンス起動制御部１５０に対して出力する。ＣＰＵの使用率が所定の起動条件を満たしていない場合に、起動判定部１２２は、該起動制御情報を、インスタンス起動制御部１５０に対して出力しない。
【００３９】
イメージ転送制御部１３０は、転送判定部１２１が出力した読取制御情報を入力した場合に、インスタンス実行サーバ１１００がインスタンスイメージ記憶部１２００に格納されているイメージを読み取るよう要求する要求情報をインスタンス実行サーバ１１００に対して送信する。
【００４０】
イメージ転送制御部１３０は、起動インスタンスを起動する際にアクセスされる起動イメージが、インスタンス実行サーバ１１００に格納されているのか否かを問い合わせる要求情報をインスタンス実行サーバ１１００に送信する。インスタンス実行サーバ１１００が起動インスタンスに関するイメージを有していない場合に、イメージ転送制御部１３０は、インスタンスイメージ記憶部１２００から起動イメージを読み取り、読み取った起動イメージを保持するよう要求する要求情報を、インスタンス実行サーバ１１００に送信する。
【００４１】
イメージ消去制御部１４０は、転送判定部１２１が出力した消去制御情報を入力した場合に、インスタンス実行サーバ１１００が有しているイメージを消去するよう要求する要求情報を、インスタンス実行サーバ１１００に送信する。
【００４２】
インスタンス起動制御部１５０は、起動判定部１２２が出力した起動制御情報を入力した場合に、さらに、起動インスタンスに関する処理を開始するよう要求する要求情報を、インスタンス実行サーバ１１００に送信する。
【００４３】
次に、本発明の第１の実施形態に係るインスタンス管理装置１００における処理について説明する。図２は、第１の実施形態に係るインスタンス管理装置１００における処理の流れを示すフローチャートである。説明の便宜上、処理負荷は、ＣＰＵの使用率であるとする。
【００４４】
システム監視部１１０は、インスタンス実行サーバ１１００において稼働インスタンスに関するＣＰＵの使用率を測定し、測定したＣＰＵの使用率を表す処理負荷情報を作成する（ステップＳ１１０）。システム監視部１１０は、作成した処理負荷情報を判定部１２０に対して出力する。
【００４５】
判定部１２０において、転送判定部１２１は、システム監視部１１０が出力した処理負荷情報を入力し、入力した処理負荷情報が表すＣＰＵの使用率が所定の転送条件を満たしているか否かを判定する（ステップＳ１２０）。ＣＰＵの使用率が所定の転送条件を満たしている場合に（ステップＳ１２０にてＹＥＳ）、転送判定部１２１は、インスタンスイメージ記憶部１２００に格納されている起動イメージを読み取るよう制御する読取制御情報をイメージ転送制御部１３０に対して出力する。イメージ転送制御部１３０は、転送判定部１２１が出力した読取制御情報を入力し、インスタンスイメージ記憶部１２００に格納されている起動イメージを読み取るよう制御する処理を開始する（ステップＳ１３０）。イメージ転送制御部１３０の処理については、図３を参照しながら後述する。ＣＰＵの使用率が所定の転送条件を満たしていない場合に（ステップＳ１２０にてＮＯ）、転送判定部１２１は、インスタンス実行サーバ１１００に格納されているイメージを消去するよう制御する消去制御情報を、イメージ消去制御部１４０に対して出力する（ステップＳ１４０）。イメージ消去制御部１４０における処理については、図５を参照しながら後述する。
【００４６】
判定部１２０は、イメージ転送制御部１３０から処理が完了したことを表す完了情報を入力した場合に起動判定部１２２を起動する。起動判定部１２２は、システム監視部１１０が送信したＣＰＵの使用率を受信し、受信したＣＰＵの使用率が所定の起動条件を満たしているか否かを判定する（ステップＳ１５０）。受信したＣＰＵの使用率が所定の起動条件を満たした場合に（ステップＳ１５０にてＹＥＳ）、起動判定部１２２は、起動インスタンスサーバが起動インスタンスを起動するよう制御する起動制御情報を、インスタンス起動制御部１５０に対して出力する（ステップＳ１６０）。インスタンス起動制御部１５０は、該起動制御情報を入力するのに応じて、起動インスタンスサーバが起動インスタンスを起動するよう制御する（指示する）。インスタンス起動制御部１５０の処理については、図４を参照しながら後述する。受信したＣＰＵの使用率が所定の起動条件を満たしていない場合に（ステップＳ１５０にてＮＯ）、インスタンス管理装置１００は、ステップＳ１６０に示された処理を実行しない。
【００４７】
イメージ転送制御部１３０において実行されるステップＳ１３０について、図３を参照しながら詳細に説明する。図３は、第１の実施形態に係るイメージ転送制御部１３０における処理の流れを示すフローチャートである。イメージ転送制御部１３０は、判定部１２０から完了情報を入力した場合に、起動インスタンスに関する起動イメージをインスタンス実行サーバ１１００が有している否かを問い合わせる要求情報を、起動インスタンスサーバに送信する。
【００４８】
起動インスタンスサーバは、イメージ転送制御部１３０が送信した要求情報を受信し、受信した要求情報に基づき、起動イメージを有しているか否かを判定する（ステップＳ１３１）。起動インスタンスサーバは、起動イメージを有しているか否かを表す所有情報を作成し、作成した所有情報をイメージ転送制御部１３０に対して送信する。
【００４９】
イメージ転送制御部１３０は、起動インスタンスサーバが送信した所有情報（すなわち、起動イメージを有しているか否かを表す情報）を受信する。起動インスタンスサーバがイメージを有していない場合に（ステップＳ１３１にてＮＯ）、イメージ転送制御部１３０は、起動インスタンスサーバに対して、起動インスタンスを起動する場合に参照するイメージを、インスタンスイメージ記憶部１２００から読み取るように要求する要求情報を送信する（ステップＳ１３２）。インスタンスイメージ記憶部１２００からイメージを転送する処理の後に、イメージ転送制御部１３０は、処理が完了したことを表す完了情報を判定部１２０に対して出力する。インスタンス実行サーバ１１００がイメージを有している場合に（ステップＳ１３１にてＹＥＳ）、イメージ転送制御部１３０は、処理が完了を表す完了情報を判定部１２０に対して出力する。
【００５０】
図５を参照しながら、イメージ消去制御部１４０において実行されるステップＳ１４０に示された処理について、詳細に説明する。図５は、第１の実施形態に係るイメージ消去制御部１４０における処理の流れを示すフローチャートである。イメージ消去制御部１４０は、判定部１２０が送信した完了情報に基づき、起動インスタンスが起動する場合に参照する起動イメージを、インスタンス実行サーバ１１００が有しているか否かを問い合わせる要求情報を、インスタンス実行サーバ１１００に送信する。
【００５１】
インスタンス実行サーバ１１００は、イメージ消去制御部１４０が送信した要求情報を受信し、受信した要求情報に基づき、起動イメージを有しているか否かを判定する（ステップＳ１４１）。インスタンス実行サーバ１１００は、起動イメージを有しているか否かを表す所有情報を作成し、作成した所有情報をイメージ消去制御部１４０に送信する。
【００５２】
イメージ消去制御部１４０は、インスタンス実行サーバ１１００が送信した所有情報（すなわち、起動イメージを有しているか否かを表す情報）を受信する。インスタンス実行サーバ１１００がイメージを有している場合に（ステップＳ１４１にてＹＥＳ）、イメージ消去制御部１４０は、起動インスタンスが有しているイメージを消去するよう要求する要求情報を、起動インスタンスサーバに対して送信する（ステップＳ１４２）。起動インスタンスサーバが、該要求情報に応じて該イメージを消去した後に、インスタンス管理装置１００は、処理を完了する。起動インスタンスが起動する場合に読み取る起動イメージをインスタンス実行サーバ１１００が有していない場合に（ステップＳ１４１にてＮＯ）、インスタンス管理装置１００は、起動インスタンスサーバに対して該要求情報を送信しない。
【００５３】
図４を参照しながら、インスタンス起動制御部１５０において実行されるステップＳ１６０について、詳細に説明する。図４は、第１の実施形態に係るインスタンス起動制御部１５０における処理の流れを示すフローチャートである。インスタンス起動制御部１５０は、判定部１２０が送信した起動制御情報を入力した場合に、起動インスタンスが起動する場合に読み取る起動イメージを起動インスタンスサーバが有しているか否かを起動インスタンスサーバに対して問い合わせる要求情報を出力する。
【００５４】
起動インスタンスサーバは、該要求情報を入力し、入力した要求情報に基づき、起動イメージを有しているか否かを判定する（ステップＳ１６１）。起動インスタンスサーバは、起動イメージを有しているか否かを表す所有情報を作成し、作成した所有情報をインスタンス起動制御部１５０に対して出力する。
【００５５】
インスタンス起動制御部１５０は、インスタンス実行サーバ１１００が入力した所有情報（すなわち、起動イメージを有しているか否かを表す情報）を受信する。インスタンス実行サーバ１１００が該起動イメージを有している場合に（ステップＳ１６１にてＹＥＳ）、インスタンス起動制御部１５０は、起動インスタンスが起動する場合に参照する起動イメージに関する起動インスタンスを起動するように要求する要求情報を、インスタンス実行サーバ１１００に送信する（ステップＳ１６２）。インスタンス実行サーバ１１００が該イメージを有していない場合に（ステップＳ１６１にてＮＯ）、インスタンス起動制御部１５０は、イメージを参照することなく起動インスタンスを起動するように要求する要求情報を起動インスタンスサーバに送信する（ステップＳ１６３）。
【００５６】
図２においては、ステップＳ１３０の次にステップＳ１５０が実行される処理が示されているが、必ずしも、図２に例示された処理である必要はない。たとえば、ステップＳ１１０の後に、処理負荷情報が表すＣＰＵの使用率が、所定の起動条件、または、所定の転送条件を満たしているのかを判定する処理であってもよい。
【００５７】
次に、本発明の第１の実施形態に係るインスタンス管理装置１００に関する効果について説明する。
【００５８】
第１の実施形態に係るインスタンス管理装置１００によれば、所定の処理を実行するインスタンスを短期間に起動することができる。この理由は、インスタンス管理装置１００が、イメージを転送する制御を実行したのちに、該イメージに関するインスタンスを起動することを決定するからである。この理由について、詳細に説明する。
【００５９】
インスタンス管理装置１００は、稼働インスタンスサーバの処理負荷が所定の転送条件を満たした場合に、稼働インスタンスに関する機能と同様の機能を含むイメージを起動インスタンスサーバに転送するよう制御する（指示する）。インスタンス管理装置１００は、該処理負荷が、さらに、第１閾値よりも大きな第２閾値以上となった場合に、起動インスタンスサーバに、該イメージに関する起動インスタンスを起動するよう制御する。したがって、インスタンス管理装置１００がイメージを転送する制御を実行する処理負荷と、イメージに関するインスタンスを起動する制御を実行する処理負荷とは異なっている。したがって、たとえば、稼働インスタンスサーバの処理負荷が上昇している場合に、該処理負荷が第１閾値以上となるタイミングは、該処理負荷が第２閾値以上となるタイミングよりも先である。この場合に、インスタンス管理装置１００は、該処理負荷に基づき、イメージに関する転送制御処理を、該イメージに関するインスタンスの起動制御処理よりも先に実行する。したがって、インスタンス管理装置１００が起動インスタンスを起動する制御を実行する場合には、あらかじめ、少なくとも一部のイメージは、起動インスタンスサーバに転送されている。この結果、第１の実施形態に係るインスタンス管理装置１００によれば、所定の処理を実行するインスタンスを短期間に起動することができる。
【００６０】
また、図２のステップＳ１３０の後に、ステップＳ１５０を実行する処理によれば、たとえば、処理負荷が短期間に増大した場合に、所定の処理を実行するインスタンスを、さらに短期間に起動することができる。この理由は、イメージを転送するよう制御する制御処理が実行された後に、該イメージに関するインスタンスを起動するよう制御するか否かを、インスタンス管理装置１００が判定するからである。処理負荷が短期間に第２閾値以上になるまで増大した場合に、インスタンス管理装置１００が、転送に関する制御処理の後に、必ず、起動処理を実行するので、さらに、短期間にインスタンスを起動することができる。
【００６１】
さらに、ステップＳ１４０によれば、起動インスタンスサーバにおいてアクセスされない可能性が高いデータを起動インスタンスサーバから削減することができる。この理由は、稼働インスタンスに関する処理負荷が所定の転送条件を満たしていない場合に、該稼働インスタンスに関する処理を実行する起動インスタンスを起動する可能性が低くなるからである。この場合に、起動インスタンスサーバにおいては、稼働インスタンスに関するイメージに関するインスタンスが起動される可能性は低いので、起動インスタンスサーバが該イメージを有したとしても、該起動インスタンスサーバが有するイメージは、参照されない可能性が高いイメージである。したがって、処理負荷が所定の転送条件を満たしていない場合に、インスタンス管理装置１００が該イメージを消去するよう起動インスタンスサーバを制御することによって、起動インスタンスサーバにおいて該イメージが格納されている領域はなくなる。
【００６２】
＜第２の実施形態＞
次に、上述した第１の実施形態を基本とする本発明の第２の実施形態について説明する。
【００６３】
以降の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第１の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。
【００６４】
図６を参照しながら、本発明の第２の実施形態に係るインスタンス管理装置２００が有する構成について詳細に説明する。図６は、本発明の第２の実施形態に係るインスタンス管理装置２００が有する構成を示すブロック図である。
【００６５】
第２の実施形態に係るインスタンス管理装置２００は、システム監視部１１０と、判定部２２０と、イメージ転送制御部１３０と、イメージ消去制御部１４０と、インスタンス起動制御部１５０とを有する。
【００６６】
判定部２２０は、転送判定部２２１と、消去判定部２２２と、起動判定部２２３とを有する。判定部２２０は、起動イメージを起動インスタンスに転送する機能、インスタンスイメージ記憶部１２００に格納されているイメージを消去する機能、及び、インスタンスを起動する機能を有する。
【００６７】
インスタンス管理装置２００は、インスタンス実行サーバ１１００を制御することができる。すなわち、インスタンス管理装置２００は、インスタンス実行サーバ１１００に処理を指示することができる。インスタンス実行サーバ１１００は、たとえば、インスタンスイメージ記憶部１２００に格納されているプログラムを読み取り、読み取ったプログラムを実行することができる。
【００６８】
次に、図７を参照しながら、第２の実施形態に係るインスタンス管理装置２００における処理について説明する。図７は、第２の実施形態に係るインスタンス管理装置２００における処理の流れを示すフローチャートである。
【００６９】
システム監視部１１０は、たとえば、所定のタイミングにて、インスタンス実行サーバ１１００が実行している稼働インスタンスに関するＣＰＵの使用率を測定し、測定したＣＰＵの使用率を表す処理負荷情報を判定部２２０に対して出力する。
【００７０】
判定部２２０において、転送判定部２２１は、システム監視部１１０が出力した処理負荷情報を入力し（ステップＳ２１０）、入力した処理負荷情報が表すＣＰＵの使用率が、所定の転送条件を満たしたか否かを判定する（ステップＳ２２０）。たとえば、ＣＰＵの使用率をｘと表す場合に、所定の転送条件は、「ＣＰＵの使用率が６０％以上（ｘ≧０．６（すなわち、第１閾値の一例））である」なる条件である。ＣＰＵの使用率が所定の転送条件を満たした場合に（ステップＳ２２０にてＹＥＳ）、転送判定部２２１は、起動イメージをインスタンスイメージ記憶部１２００から読み取るよう制御する読取制御情報をイメージ転送制御部１３０に対して出力する（ステップＳ２３０）。イメージ転送制御部１３０は、転送判定部２２１が出力した読取制御情報を入力し、入力した読取制御情報に従い処理を実行する。
【００７１】
判定部２２０において、起動判定部２２３は、入力した処理負荷情報が表すＣＰＵの使用率が所定の起動条件を満たしたか否かを判定する（ステップＳ２７０）。たとえば、ＣＰＵの使用率をｘと表す場合に、所定の起動条件は、「ＣＰＵの使用率が８０％以上（ｘ≧０．８（すなわち、第２閾値の一例））である」なる条件である。ＣＰＵの使用率が所定の起動条件を満たした場合に（ステップＳ２７０にてＹＥＳ）、起動判定部２２３は、起動インスタンスを起動するよう制御する起動制御情報をインスタンス起動制御部１５０に対して出力する。インスタンス起動制御部１５０は、起動判定部２２３が出力した起動制御情報を入力し、入力した起動制御情報に応じた処理を実行する（ステップＳ２８０）。ＣＰＵの使用率が所定の起動条件を満たしていない場合に（ステップＳ２７０にてＮＯ）、インスタンス管理装置２００は、ステップＳ２８０に示された処理を実行しない。
【００７２】
ＣＰＵの使用率が所定の転送条件を満たしていない場合に（ステップＳ２２０にてＮＯ）、消去判定部２２２は、システム監視部１１０が要求情報に応じて送信した処理負荷情報を入力し、入力した処理負荷情報が表すＣＰＵの使用率が、所定の消去条件を満たしたか否かを判定する（ステップＳ２５０）。所定の消去条件は、「ＣＰＵの使用率が第３閾値未満である」なる条件である。たとえば、ＣＰＵの使用率をｘと表す場合に、所定の消去条件は、「ＣＰＵの使用率が５０％未満（ｘ＜０．５）である」なる条件である。この場合に、第３閾値は、０．５である。この場合、第３閾値は、第１閾値よりも小さい。
【００７３】
ＣＰＵの使用率が所定の消去条件を満たしている場合に（ステップＳ２５０にてＹＥＳ）、消去判定部２２２は、起動インスタンスサーバが有しているイメージを消去するよう制御する消去制御情報を、イメージ消去制御部１４０に対して出力する（ステップＳ２６０）。
【００７４】
次に、本発明の第２の実施形態に係るインスタンス管理装置２００に関する効果について説明する。
【００７５】
第２の実施形態に係るインスタンス管理装置２００によれば、所定の処理を実行するインスタンスを短期間に起動することができる。この理由は、第２の実施形態に係るインスタンス管理装置２００が、第１の実施形態に係るインスタンス管理装置１００が有する構成を含むからである。
【００７６】
さらに、第２の実施形態に係るインスタンス管理装置２００によれば、起動インスタンスサーバが有するデータのうち、参照されない可能性が高いデータを削減することができる。この理由は、稼働インスタンスに関する処理負荷が所定の消去条件を満たした場合に、該稼働インスタンスに関する処理を実行する起動インスタンスを起動する可能性が低くなるからである。したがって、処理負荷が所定の消去条件を満たした場合に、インスタンス管理装置２００が該イメージを消去するよう起動インスタンスサーバを制御することによって、該イメージが格納されている領域はなくなる。
【００７７】
また、第２の実施形態に係るインスタンス管理装置２００によれば、第１の実施形態に係るインスタンス管理装置１００に比べ、さらに、処理効率が向上する。この理由は、所定の転送条件に関する閾値（すなわち、第１閾値）が、所定の消去条件に関する閾値（すなわち、第３閾値）よりも大きな値であるので、処理負荷が所定の転送条件に関する閾値（すなわち、第１閾値）の付近にて上下に変動する場合であっても、インスタンス管理装置２００が、イメージを転送するよう制御する処理と、該イメージを消去するよう制御する処理とを交互に実行しないからである。
【００７８】
＜第３の実施形態＞
次に、上述した第１の実施形態を基本とする本発明の第３の実施形態について説明する。
【００７９】
以降の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第１の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。
【００８０】
図８を参照しながら、本発明の第３の実施形態に係るインスタンス管理装置３００が有する構成について説明する。図８は、本発明の第３の実施形態に係るインスタンス管理装置３００が有する構成を示すブロック図である。
【００８１】
第３の実施形態に係るインスタンス管理装置３００は、システム監視部１１０と、判定部３２０と、イメージ転送制御部３３０と、イメージ消去制御部３４０と、インスタンス起動制御部３５０とを有する。判定部３２０は、転送イメージ決定部３２１と、起動判定部３２２とを有する。転送イメージ決定部３２１は、算出するイメージ転送量に基づき、インスタンス実行サーバ３１００に対してイメージを転送する処理を制御する機能と、インスタンス実行サーバ３１００が有するイメージを消去する処理を制御する機能とを有する。
【００８２】
インスタンス管理装置３００は、インスタンス実行サーバ１１００を制御することができる。すなわち、インスタンス管理装置３００は、インスタンス実行サーバ１１００に処理を指示することができる。インスタンス実行サーバ１１００は、たとえば、インスタンスイメージ記憶部１２００に格納されているプログラムを読み取り、読み取ったプログラムを実行することができる。
【００８３】
まず、イメージを読み取る処理を制御する際に処理の基本である、あるインスタンスに関する部分イメージについて説明する。あるインスタンスに関するイメージＶに対して、部分イメージを、イメージＶの部分集合Ｖ１、Ｖ２、・・・、Ｖｎのいずれかとして定義する。ただし、ＶｉはＶｉ−１の部分集合（ただし、２≦ｉ≦ｎ）であるとする。すなわち、Ｖ１⊂Ｖ２⊂・・・⊂Ｖｎであるとする。さらに、Ｖｎ＝Ｖであるとする。
【００８４】
イメージＶが、仮想マシンによってアクセスされるメモリのイメージであるとする。イメージＶの容量を｜Ｖ｜とする場合に、Ｖｉの容量は、たとえば、（｜Ｖ｜×ｉ÷Ｎ）として設定される。また、Ｖｉは、イメージＶに含まれているページのうち、アクセスする頻度が高いページを含むように定義することによって実現することができる。たとえば、ページＶが、Ｐ１、Ｐ２，・・・、ＰＭから構成され、さらに、Ｐｊに対するアクセスする頻度がＰｊ−１（ただし、２≦ｊ≦Ｍ）に対するアクセスする頻度よりも高い場合に、Ｖ１＝｛Ｐ１｝、Ｖ２＝｛Ｐ１，Ｐ２｝、Ｖ３＝｛Ｐ１，Ｐ２，Ｐ３｝、・・・として実現することができる。
【００８５】
インスタンス実行サーバ３１００は、上述したような部分イメージに関するインスタンスを起動する機能を有する。また、本実施形態に係るインスタンス実行サーバ３１００は、インスタンス実行サーバ１１００から要求情報を受信するのに応じて、インスタンスイメージ記憶部３２００に格納されている部分イメージを読み取る機能を有する。たとえば、インスタンス実行サーバ３１００は、自装置に格納されていない部分イメージをインスタンスイメージ記憶部３２００から読み取った後に、読み取った部分イメージに関する起動インスタンスを起動する。
【００８６】
図１０を参照しながら、インスタンス実行サーバ３１００が部分イメージを選択する場合に参照する転送イメージ情報について説明する。図１０は、転送イメージ情報の一例を概念的に表す図である。転送イメージ情報は、処理負荷に関する負荷条件と、処理負荷が該負荷条件を満たした場合に読み取る領域を表す領域識別子とが関連付けされた情報である。図１０に例示された転送イメージ情報において、たとえば、処理負荷条件「Ｕ１＜Ｕ≦Ｕ２」と、領域識別子「Ｖ２」とが関連付けされている。これは、処理負荷Ｕが、Ｕ１よりも大きく、かつ、Ｕ２以下である場合に、転送イメージ決定部３２１が、領域識別子「Ｖ２」を選択することを表す。
【００８７】
次に、図９を参照しながら、第３の実施形態に係るインスタンス管理装置３００における処理について説明する。図９は、第３の実施形態に係るインスタンス管理装置３００における処理の流れを示すフローチャートである。
【００８８】
システム監視部１１０は、稼働インスタンスサーバが実行している稼働インスタンスに関する処理負荷を測定し、測定した処理負荷を表す処理負荷情報を判定部３２０に対して出力する。
【００８９】
判定部３２０において、転送イメージ決定部３２１は、システム監視部１１０が要求情報に応じて送信した処理負荷情報を入力する（ステップＳ３１０）。転送イメージ決定部３２１は、入力した処理負荷情報が表す処理負荷に基づき、インスタンス実行サーバ３１００に転送する領域識別子を選択する（ステップＳ３２０）。
【００９０】
ステップＳ３２０にて示された処理について説明する。転送イメージ決定部３２１は、システム監視部１１０が送信した処理負荷情報を受信する。次に、転送イメージ決定部３２１は、受信した処理負荷情報が表す処理負荷が、転送イメージ情報（図１０に例示）に含まれている処理負荷条件のうち、いずれの処理負荷条件を満たしているのかを特定する。転送イメージ決定部３２１は、特定した処理負荷条件に関連付けされた領域識別子を、転送イメージ情報に基づき特定し、特定した領域識別子を判定部３２０に格納する。転送イメージ決定部３２１は、システム監視部１１０が処理負荷情報を出力するのに応じて、上述した処理を実行する。この場合に、転送イメージ決定部３２１は、特定された領域識別子を、少なくとも、システム監視部１１０が出力した直近２回分に関して記憶しているとする。イメージ転送制御部３３０と、イメージ消去制御部３４０と、インスタンス起動制御部３５０とは、転送イメージ決定部３２１が記憶している直近２回分の領域識別子を参照することができるとする。
【００９１】
以降、説明の便宜上、前回特定された領域識別子を「前回領域識別子」と表し、今回特定された領域識別子を「今回領域識別子」と表す。前回領域識別子が表す部分イメージを「前回部分イメージ」と表し、今回領域識別子が表す部分イメージを「今回部分イメージ」と表す。
【００９２】
転送イメージ決定部３２１は、前回部分イメージの容量と、今回部分イメージの容量とを比較する（ステップＳ３３０）。今回部分イメージの容量が前回部分イメージの容量より大きい場合に（ステップＳ３３０にてＹＥＳ）、転送イメージ決定部３２１は、今回部分イメージと、前回部分イメージとの差分をインスタンス実行サーバ３１００に格納するよう制御する読取制御情報をイメージ転送制御部３３０に対して出力する（ステップＳ３４０）。今回部分イメージの容量が前回部分イメージの容量以下である場合に（ステップＳ３３０にてＮＯ）、転送イメージ決定部３２１は、今回部分イメージと、前回部分イメージとの差分をインスタンス実行サーバ３１００から消去するよう制御する消去制御情報をイメージ消去制御部３４０に対して出力する（ステップＳ３５０）。
【００９３】
イメージ転送制御部３３０は、転送イメージ決定部３２１が出力した読取制御情報を入力し、入力した読取制御情報に従い、判定部３２０に格納されている今回部分イメージと、前回部分イメージとを読み取る。今回領域識別子が前回領域識別子を含んでいるので、イメージ転送制御部３３０は、今回部分イメージと前回部分イメージとの差分を表すイメージをインスタンスイメージ記憶部３２００から読み取るよう要求する要求情報を、起動インスタンスサーバに対して送信する。その後、イメージ転送制御部３３０は、処理が完了したことを表す完了情報を判定部３２０に対して出力する。
【００９４】
イメージ消去制御部３４０は、転送イメージ決定部３２１が出力した消去制御情報を入力し、入力した消去制御情報に従い、判定部３２０に格納されている前回領域識別子と、今回領域識別子とを読み取る。前回領域識別子が今回領域識別子を含んでいるので、イメージ転送制御部３３０は、今回部分イメージと前回部分イメージとの差分を表すイメージを消去するよう要求する消去制御情報を、起動インスタンスサーバに対して送信する（ステップＳ３５０）。起動インスタンスサーバが該消去制御情報に従い差分を消去した後に、イメージ消去制御部３４０は、処理が完了したことを表す完了情報を判定部３２０に対して出力する。
【００９５】
判定部３２０は、イメージ転送制御部３３０が出力した完了情報、または、イメージ消去制御部３４０が出力した完了情報を入力する。その後、起動判定部３２２は、システム監視部１１０が要求情報に応じて送信した処理負荷情報を入力し、入力した処理負荷情報が表す処理負荷が所定の起動条件を満たしたか否かを判定する（ステップＳ３６０）。ＣＰＵの使用率が該所定の起動条件を満たした場合に（ステップＳ３６０にてＹＥＳ）、起動判定部３２２は、起動インスタンスを起動するよう制御することを要求する起動制御情報をインスタンス起動制御部３５０に対して出力する（ステップＳ３７０）。
【００９６】
インスタンス起動制御部３５０は、起動判定部３２２が出力した起動制御情報を入力し、入力した起動制御情報に従い、インスタンス実行サーバ３１００が有する部分イメージに従い、起動インスタンスを起動するよう要求する要求情報をインスタンス実行サーバ３１００に対して出力する。
【００９７】
尚、図１０に例示された転送イメージ情報において、領域識別子が表す記憶領域は、Ｖ１⊂Ｖ２⊂・・・⊂Ｖｎなる包含関係を満たしていたが、必ずしも、該包含関係を満たしている必要はなく、単に、Ｖ１、Ｖ２、・・・、Ｖｎの順にサイズが増える記憶領域であってもよい。
【００９８】
次に、本発明の第３の実施形態に係るインスタンス管理装置３００に関する効果について説明する。
【００９９】
第３の実施形態に係るインスタンス管理装置３００によれば、所定の処理を実行するインスタンスを短期間に起動することができる。この理由は、第３の実施形態に係るインスタンス管理装置３００が、第１の実施形態に係るインスタンス管理装置１００が有する構成を含むからである。
【０１００】
また、第３の実施形態に係るインスタンス管理装置３００によれば、第１の実施形態に係るインスタンス管理装置１００に比べ、さらに、処理効率が向上する。この理由は、インスタンス管理装置３００が、稼働インスタンスに関する処理負荷に応じて、起動インスタンスに関するイメージを段階的に構成するからである。
【０１０１】
さらに、包含関係を有する転送領域を処理するインスタンス管理装置３００によれば、より一層処理効率が向上する。この理由は、インスタンス管理装置３００が、上述した差分を算出し、稼働インスタンスに関する処理負荷に応じて、該差分に関して処理を実行するからである。
【０１０２】
＜第４の実施形態＞
次に、本発明の第４の実施形態について説明する。
【０１０３】
以降の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した各実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。
【０１０４】
図１１を参照しながら、本発明の第４の実施形態に係るインスタンス起動装置４００が有する構成について説明する。図１１は、本発明の第４の実施形態に係るインスタンス起動装置４００が有する構成を示すブロック図である。
【０１０５】
第４の実施形態に係るインスタンス起動装置４００は、イメージ転送制御部４１０と、インスタンス起動制御部４２０とを有する。
【０１０６】
インスタンス起動装置４００は、インスタンス実行サーバ１１００を制御することができる。すなわち、インスタンス管理装置４００は、インスタンス実行サーバ１１００に処理を指示することができる。インスタンス実行サーバ１１００は、たとえば、インスタンスイメージ記憶部１２００に格納されているプログラムを読み取り、読み取ったプログラムを実行することができる。
【０１０７】
インスタンス起動装置４００は、たとえば、所定のタイミングに応じて、または、所定の処理が実行されているインスタンス実行サーバ１１００の処理負荷が所定の閾値よりも高くなった場合に、処理を開始する。処理負荷は、たとえば、ＣＰＵの使用率、通信ネットワークの使用量、ディスクの使用量、メモリの使用量等である。
【０１０８】
イメージ転送制御部４１０は、該処理負荷が第１閾値以上になったか否かを判定する。該処理負荷が第１閾値以上になった場合に、インスタンス起動装置４００は、所定の処理（すなわち、上述した稼働インスタンスが実現している機能）を表すイメージを、当該イメージに基づき起動されるインスタンス（すなわち、上述した起動インスタンス）を管理している起動インスタンスサーバに読み取るよう制御する。イメージは、たとえば、稼働インスタンスが実行されている期間中にアクセスするメモリのイメージ、または、該仮想マシンを制御しているカーネルに関する状態情報のうち、少なくとも一部の情報を含んでいる情報を表す。
【０１０９】
起動インスタンスサーバは、該稼働インスタンスが実現している機能と同様の機能を含むイメージを、インスタンスイメージ記憶部１２００から読み取る。たとえば、該イメージは、処理負荷が第１閾値以上になるのに応じて作成されてもよい。
【０１１０】
インスタンス起動制御部４２０は、該処理負荷が、第１閾値よりも大きな第２閾値以上となったか否かを判定する。該処理負荷が第２閾値以上となった場合に、インスタンス起動制御部４２０は、作成したイメージに関するインスタンスを起動するよう起動インスタンスサーバを制御する。
【０１１１】
イメージ転送制御部４１０は、たとえば、判定部１２０（図１）、イメージ転送制御部１３０（図１、図６）、判定部２２０（図６）、判定部３２０（図８）、または、イメージ転送制御部３３０（図８）が有する機能によって実現することができる。インスタンス起動制御部４２０は、たとえば、判定部１２０（図１）、インスタンス起動制御部１５０（図１）、判定部２２０（図６）、判定部３２０（図８）、または、インスタンス起動制御部３５０（図８）が有する機能によって実現することができる。したがって、インスタンス起動装置４００は、インスタンス管理装置１００（図１）、インスタンス管理装置２００（図６）、または、インスタンス管理装置３００（図８）が有する機能によって実現することができる。
【０１１２】
次に、第４の実施形態に係るインスタンス起動装置４００に関する効果について説明する。
【０１１３】
第４の実施形態に係るインスタンス起動装置４００によれば、所定の処理を実行するインスタンスを短期間に起動することができる。この理由は、インスタンス起動装置４００が、イメージ読み取ったのちに、読み取ったイメージに関するインスタンスを起動することを決定するからである。この理由について、詳細に説明する。
【０１１４】
インスタンス起動装置４００は、稼働インスタンスサーバの処理負荷が第１閾値以上となった場合に、稼働インスタンスによって実現されている機能と同様の機能を含むイメージを、インスタンスイメージ記憶部１２００から起動インスタンスサーバに転送するよう制御する。インスタンス起動装置４００は、該処理負荷が、さらに、第１閾値よりも大きな第２閾値以上となった場合に、起動インスタンスサーバに、該イメージに関するインスタンスを起動するよう制御する。したがって、インスタンス起動装置４００がイメージを転送する制御を実行する処理負荷と、イメージに関するインスタンスを起動する制御を実行する処理負荷とは異なっている。たとえば、稼働インスタンスサーバの処理負荷が上昇している場合に、該処理負荷が第１閾値以上となるタイミングは、該処理負荷が第２閾値以上となるタイミングよりも先である。この場合に、インスタンス起動装置４００は、該処理負荷に基づき、イメージの転送制御処理を、該イメージに関するインスタンスの起動制御処理よりも先に実行する。したがって、インスタンス起動装置４００が起動インスタンスを起動する制御を実行する場合には、あらかじめ、少なくとも一部のイメージは、起動インスタンスサーバに転送されている。この結果、本実施形態に係るインスタンス起動装置４００によれば、所定の処理を実行するインスタンスを短期間に起動することができる。
【０１１５】
（ハードウェア構成例）
上述した本発明の第１の実施形態乃至第３の実施形態に係るインスタンス管理装置、または、第４の実施形態に係るインスタンス起動装置を、１つの計算処理装置（情報処理装置、コンピュータ）を用いて実現するハードウェア資源の構成例について説明する。但し、係る＊装置は、物理的または機能的に少なくとも２つの計算処理装置を用いて実現してもよい。また、係るインスタンス管理装置、または、係るインスタンス起動装置は、専用の装置として実現してもよい。
【０１１６】
図１２は、第１の実施形態乃至第３の実施形態に係るインスタンス管理装置、または、第４の実施形態に係るインスタンス起動装置を実現可能な計算処理装置のハードウェア構成例を概略的に示すブロック図である。計算処理装置２０は、中央処理演算装置（Ｃｅｎｔｒａｌ＿Ｐｒｏｃｅｓｓｉｎｇ＿Ｕｎｉｔ、以降「ＣＰＵ」と表す）２１、メモリ２２、ディスク２３、不揮発性記録媒体２４、通信インターフェース（以降、「通信ＩＦ」と表す）２７、及び、ディスプレー２８を有する。計算処理装置２０は、入力装置２５、出力装置２６に接続可能であってもよい。計算処理装置２０は、通信ＩＦ２７を介して、他の計算処理装置、及び、通信装置と情報を送受信することができる。
【０１１７】
不揮発性記録媒体２４は、コンピュータが読み取り可能な、たとえば、コンパクトディスク（Ｃｏｍｐａｃｔ＿Ｄｉｓｃ）、デジタルバーサタイルディスク（Ｄｉｇｉｔａｌ＿Ｖｅｒｓａｔｉｌｅ＿Ｄｉｓｃ）である。また、不揮発性記録媒体２４は、ユニバーサルシリアルバスメモリ（ＵＳＢメモリ）、ソリッドステートドライブ（Ｓｏｌｉｄ＿Ｓｔａｔｅ＿Ｄｒｉｖｅ）等であってもよい。不揮発性記録媒体２４は、電源を供給しなくても係るプログラムを保持し、持ち運びを可能にする。不揮発性記録媒体２４は、上述した媒体に限定されない。また、不揮発性記録媒体２４の代わりに、通信ＩＦ２７、及び、通信ネットワークを介して係るプログラムを持ち運びしてもよい。
【０１１８】
すなわち、ＣＰＵ２１は、ディスク２３に格納されているソフトウェア・プログラム（コンピュータ・プログラム：以下、単に「プログラム」と称する）を、実行する際にメモリ２２にコピーし、演算処理を実行する。ＣＰＵ２１は、プログラム実行に必要なデータをメモリ２２から読み取る。表示が必要な場合には、ＣＰＵ２１は、ディスプレー２８に出力結果を表示する。外部への出力が必要な場合には、ＣＰＵ２１は、出力装置２６に出力結果を出力する。外部からプログラムを入力する場合、ＣＰＵ２１は、入力装置２５からプログラムを読み取る。ＣＰＵ２１は、上述した図１、図６、または、図８に示す各部が表す機能（処理）に対応するところのメモリ２２にあるインスタンス管理プログラム（図２乃至図５、図７、または、図９）を解釈し実行する。または、ＣＰＵ２１は、上述した図１１に示す各部が表す機能（処理）に対応するところのメモリ２２にあるインスタンス起動プログラムを解釈し実行する。または、ＣＰＵ２１は、上述した本発明の各実施形態において説明した処理を順次実行する。
【０１１９】
すなわち、このような場合、本発明は、係るインスタンス管理プログラム、または、係るインスタンス起動プログラムによっても成し得ると捉えることができる。さらに、係るインスタンス管理プログラム、または、係るインスタンス起動プログラムが記録されたコンピュータが読み取り可能な不揮発性の記録媒体によっても、本発明は成し得ると捉えることができる。
【０１２０】
以上、上述した実施形態を模範的な例として本発明を説明した。しかし、本発明は、上述した実施形態には限定されない。すなわち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
【符号の説明】
【０１２１】
１００    インスタンス管理装置
１１０    システム監視部
１２０    判定部
１２１    転送判定部
１２２    起動判定部
１３０    イメージ転送制御部
１４０    イメージ消去制御部
１５０    インスタンス起動制御部
１１００    インスタンス実行サーバ
１２００    インスタンスイメージ記憶部
２００    インスタンス管理装置
２２０    判定部
２２１    転送判定部
２２２    消去判定部
２２３    起動判定部
３００    インスタンス管理装置
３２０    判定部
３２１    転送イメージ決定部
３２２    起動判定部
３３０    イメージ転送制御部
３４０    イメージ消去制御部
３５０    インスタンス起動制御部
３１００    インスタンス実行サーバ
３２００    インスタンスイメージ記憶部
４００    インスタンス起動装置
４１０    イメージ転送制御部
４２０    インスタンス起動制御部
２０    計算処理装置
２１    ＣＰＵ
２２    メモリ
２３    ディスク
２４    不揮発性記録媒体
２５    入力装置
２６    出力装置
２７    通信ＩＦ
２８    ディスプレー
【図１】
2017191542.tif 000003
【図２】
2017191542.tif 000004
【図３】
2017191542.tif 000005
【図４】
2017191542.tif 000006
【図５】
2017191542.tif 000007
【図６】
2017191542.tif 000008
【図７】
2017191542.tif 000009
【図８】
2017191542.tif 000010
【図９】
2017191542.tif 000011
【図１０】
2017191542.tif 000012
【図１１】
2017191542.tif 000013
【図１２】
2017191542.tif 000014