(57)【要約】【課題】クラウドシステムにおけるＶＭスプロールを回避しながら、アプリケーション準備時間を最適化する。【解決手段】情報処理装置が、入力部を介しユーザから指定されたアプリケーションないし第１テーブル１０４にデータが格納されているいずれかのアプリケーションについて、第２テーブル１０５のデータと第３テーブル１０６のデータを照合して各仮想計算機に適用可能な高速化手法と高速化効果を特定する処理と、予め定めた仮想計算機の総確保数を、第１テーブル１４０が含む使用頻度のデータに比例してアプリケーション毎に分配してアプリケーション別の仮想計算機確保数を算定する処理と、アプリケーション毎に、前記仮想計算機確保数の分だけ、前記特定した高速化効果が大きい順に仮想計算機を選択し、該選択した仮想計算機以外の仮想計算機を圧縮ないしアーカイブへの移動の対象として選択する処理を実行する。【選択図】図１
2012226599.tif 000002
【特許請求の範囲】
【請求項１】
仮想計算機上で実行されるアプリケーションの準備時間を最適化する装置であり、
各アプリケーションの使用頻度のデータを格納した第１テーブルと、所定アプリケーションの実行準備に適用できる高速化手法とその適用条件および高速化効果のデータをアプリケーション別に格納した第２テーブルと、仮想計算機の仕様ないし利用状況の少なくともいずれかに関するデータを格納した第３テーブル、を記憶する記憶部と、
入力部を介しユーザから指定されたアプリケーションないし前記第１テーブルにデータが格納されているいずれかのアプリケーションについて、第２テーブルのデータと第３テーブルのデータを照合して各仮想計算機に適用可能な高速化手法と高速化効果を特定する処理と、
予め定めた仮想計算機の総確保数を、第１テーブルが含む使用頻度のデータに比例してアプリケーション毎に分配してアプリケーション別の仮想計算機確保数を算定する処理と、
アプリケーション毎に、前記仮想計算機確保数の分だけ、前記特定した高速化効果が大きい順に仮想計算機を選択し、該選択した仮想計算機以外の仮想計算機を圧縮ないしアーカイブへの移動の対象として選択する処理を実行する演算部と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記演算部は、
前記特定した、各仮想計算機に適用可能な高速化手法の高速化効果に基づき、アプリケーション毎の高速化効果の大きさで仮想計算機の情報をソートして第４テーブルを生成し、アプリケーション毎に、前記仮想計算機確保数の分だけ、前記第４テーブルにおいて高速化効果が大きい順に仮想計算機を選択し、該選択した仮想計算機以外の仮想計算機を圧縮ないしアーカイブへの移動の対象として選択する、ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記記憶部は、
前記第２テーブルにおいて、所定アプリケーションの実行準備に適用できる高速化手法の適用条件として、１つ以上のソフトウェア名を含み、
前記第３テーブルにおいて、仮想計算機の仕様ないし利用状況の少なくともいずれかに関するデータとして、仮想計算機が含む１つ以上のソフトウェア名を含み、
前記演算部は、
入力部を介しユーザから指定されたアプリケーションないし前記第１テーブルにデータが格納されているいずれかのアプリケーションについて、第２テーブルのデータと第３テーブルのデータを少なくとも前記ソフトウェア名について照合して各仮想計算機に適用可能な高速化手法と高速化効果を特定する処理を実行する、
ことを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記記憶部は、
前記第２テーブルにおいて、所定アプリケーションの実行準備に適用できる高速化手法の適用条件として、１つ以上のデータ名を含み、
前記第３テーブルにおいて、仮想計算機の仕様ないし利用状況の少なくともいずれかに関するデータとして、仮想計算機が含む１つ以上のデータ名を含み、
前記演算部は、
入力部を介しユーザから指定されたアプリケーションないし前記第１テーブルにデータが格納されているいずれかのアプリケーションについて、第２テーブルのデータと第３テーブルのデータを少なくとも前記データ名について照合して各仮想計算機に適用可能な高速化手法と高速化効果を特定する処理を実行する、
ことを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記記憶部は、
前記第２テーブルにおいて、所定アプリケーションの実行準備に適用できる高速化手法の適用条件として、１つ以上のハードウェア名を含み、
前記第３テーブルにおいて、仮想計算機の仕様ないし利用状況の少なくともいずれかに関するデータとして、仮想計算機が含む１つ以上のハードウェア名を含み、
前記演算部は、
入力部を介しユーザから指定されたアプリケーションないし前記第１テーブルにデータが格納されているいずれかのアプリケーションについて、第２テーブルのデータと第３テーブルのデータを少なくとも前記ハードウェア名について照合して各仮想計算機に適用可能な高速化手法と高速化効果を特定する処理を実行する、
ことを特徴とする請求項１に記載の情報処理装置。
【請求項６】
前記演算部は、
仮想計算機の実装対象となる１つ以上のストレージについて、ストレージの必要空き容量を算定し、前記第４テーブルで高速化効果下位の仮想計算機から順に圧縮ないしアーカイブの対象を抽出し、抽出した仮想計算機を圧縮処理ないしアーカイブ処理した場合の総節約ストレージ容量が前記必要空き容量に達した時点までに抽出した仮想計算機を圧縮ないしアーカイブへの移動の対象として選択する、
ことを特徴とする請求項２に記載の情報処理装置。
【請求項７】
各アプリケーションの使用頻度のデータを格納した第１テーブルと、所定アプリケーションの実行準備に適用できる高速化手法とその適用条件および高速化効果のデータをアプリケーション別に格納した第２テーブルと、仮想計算機の仕様ないし利用状況の少なくともいずれかに関するデータを格納した第３テーブル、を記憶する記憶部を備え、仮想計算機上で実行されるアプリケーションの準備時間を最適化する情報処理装置が、
入力部を介しユーザから指定されたアプリケーションないし前記第１テーブルにデータが格納されているいずれかのアプリケーションについて、第２テーブルのデータと第３テーブルのデータを照合して各仮想計算機に適用可能な高速化手法と高速化効果を特定する処理と、
予め定めた仮想計算機の総確保数を、第１テーブルが含む使用頻度のデータに比例してアプリケーション毎に分配してアプリケーション別の仮想計算機確保数を算定する処理と、
アプリケーション毎に、前記仮想計算機確保数の分だけ、前記特定した高速化効果が大きい順に仮想計算機を選択し、該選択した仮想計算機以外の仮想計算機を圧縮ないしアーカイブへの移動の対象として選択する処理を、
実行することを特徴とする情報処理方法。
【請求項８】
各アプリケーションの使用頻度のデータを格納した第１テーブルと、所定アプリケーションの実行準備に適用できる高速化手法とその適用条件および高速化効果のデータをアプリケーション別に格納した第２テーブルと、仮想計算機の仕様ないし利用状況の少なくともいずれかに関するデータを格納した第３テーブル、を記憶する記憶部を備え、仮想計算機上で実行されるアプリケーションの準備時間を最適化する情報処理装置に、
入力部を介しユーザから指定されたアプリケーションないし前記第１テーブルにデータが格納されているいずれかのアプリケーションについて、第２テーブルのデータと第３テーブルのデータを照合して各仮想計算機に適用可能な高速化手法と高速化効果を特定する処理と、
予め定めた仮想計算機の総確保数を、第１テーブルが含む使用頻度のデータに比例してアプリケーション毎に分配してアプリケーション別の仮想計算機確保数を算定する処理と、
アプリケーション毎に、前記仮想計算機確保数の分だけ、前記特定した高速化効果が大きい順に仮想計算機を選択し、該選択した仮想計算機以外の仮想計算機を圧縮ないしアーカイブへの移動の対象として選択する処理を、
実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法、およびプログラムに関するものであり、具体的には、クラウドシステムにおけるＶＭスプロールを回避しながら、アプリケーション準備時間を最適化する技術に関する。
【背景技術】
【０００２】
ＶＭ（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）を起動可能な計算機システムでは、計算機に接続されたストレージにＶＭファイルが格納されている。計算機はストレージからＶＭファイルを読み込み、ＶＭを起動する。また、計算機上でのアプリケーション起動に必要なライブラリやデータは、ストレージに格納されるＶＭファイル内に含まれている。ストレージの容量が圧迫されると、ＶＭファイルの追加やそれに含まれるライブラリおよびデータの追加ができなくなる。この場合、アプリケーションを起動できなくなる恐れがある。
【０００３】
こうしたストレージにおける容量圧迫に伴う問題を解決する方法として、以下のような従来技術が提案されてきた。
【０００４】
例えば、記憶媒体へのランダムアクセスが可能で、少なくとも２つの論理パーティションを備えた記憶方法およびその装置であって、うち少なくとも１つの論理パーティションを圧縮データ領域とし、残りの論理パーティションを非圧縮データ領域とし、各パーティションへのデータの書き込みおよび読み出しはクラスタを単位として行なわれ、それぞれのクラスタのアクセス頻度を記憶保持するテーブルを備えており、当該テーブルに基づいてアクセス頻度の高いクラスタを優先的に非圧縮データ領域に移動し、アクセス頻度の低いクラスタを優先的に圧縮データ領域に移動する手段を備えることを特徴とする記憶方法およびその装置（特許文献１参照）がある。
【０００５】
また、少なくとも１つ以上の外部ストレージ装置に格納されているデータを読み出して格納するアーカイブストレージ装置であって、前記外部ストレージ装置から読み出したデータのファイルの種別を判定する名前空間管理手段と、前記名前空間管理手段によって判定されたファイルの種別ごとにデータを分割するデータ分割手段と、前記データ分割手段によって分割されたデータにおける重複の度合いに応じてファイルをグループ化するとともに、グループ化するファイルのインデックスを作成するデータグループ制御手段と、重複するデータを代替データに置き換えて、前記代替データを前記データグループ制御手段によってグループ化されたグループ単位でまとめて圧縮するデータ処理手段とを備えたことを特徴とするアーカイブストレージ装置（特許文献２参照）がある。
【０００６】
また、複数の仮想計算機のそれぞれを構成するためのファイルの構成を決定するサーバ計算機であって、前記仮想計算機の構成に必要なファイルを分割して管理するか否かを判定するための評価基準を記憶するファイル分割評価基準記憶部と、前記ファイルについて、前記評価基準に合致するか否かを判定する判定部と、前記評価基準に合致すると判定された前記ファイルの一部分を実体として格納する少なくとも１以上の第１ファイルと決定し、前記ファイルの残りの部分を所定の格納先の実体を参照する少なくとも１以上の第２ファイルと決定する決定部とを有するサーバ計算機（特許文献３参照）がある。
【０００７】
また、複数の計算機を相互に接続し、複数の業務システムを稼動し、ロードバランサを経由して、当該複数の業務システムにアクセス可能な情報システムであって、第１の前記業務システムについて、これを稼動させる１又は２以上の前記計算機（以下、第１の稼動計算機という）と、第１の前記業務システムとは異なる第２の前記業務システムについて、これを稼動させる１又は２以上の前記計算機（以下、第２の稼動計算機という）と、第１の稼動計算機を構成するソフトウェアの全部又は一部と同一のソフトウェアで構成され、第１の業務システムを稼動すべく待機している、１又は２以上の前記計算機（以下、第１の待機計算機）と、第２の稼動計算機を構成するソフトウェアの全部又は一部と同一のソフトウェアで構成され、第２の業務システムを稼動すべく待機している、１又は２以上の前記計算機（以下、第２の待機計算機）と、を有することを特徴とする情報システム（特許文献４参照）がある。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００２−１３２５４６号公報
【特許文献２】特開２０１０−２８７１６７号公報
【特許文献３】特開２００９−２７６８５９号公報
【特許文献４】特開２００７―１１４９８３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
ところで、昨今のクラウドコンピューティングの技術において、ユーザが利用するアプリケーションやそのライブラリ、データ等は、ネットワークを介した計算機およびそれに接続されたストレージ上に用意されている。一方、前記サーバにおいては、そのストレージ容量には限りがあるにもかかわらず、一時利用のために作成し、その後は使用されていないＶＭが増加する傾向にある。その場合、サーバのストレージ空き容量が不足する、ＶＭスプロールと呼ばれる状態になる。
【００１０】
ストレージ空き容量不足となった場合、従来であれば、アクセス頻度などに基づいて、ストレージ中のファイルを選択し圧縮していた。この方式によれば、上記ＶＭスプロール状態においても、使用頻度が低いＶＭファイルを圧縮もしくはアーカイブすなわち大容量記憶装置や別計算機に接続されたストレージに移動することで、サーバのストレージ空き容量を拡大することができる。
【００１１】
ここで、従来のファイルの圧縮の様子を図１５に示す。図１５の例で従来方式を用いた場合、ＶＭファイルＡに比べてＶＭファイルＢの使用頻度が低いことを根拠に、ＶＭファイルＢを圧縮してストレージ空き容量を拡大する。
【００１２】
しかし、クラウドシステムにおけるアプリケーションの準備時間について、以下の課題が存在する。クラウドシステムは、例えば、１台以上の計算機と１台以上のストレージとで構成される。またこのシステムにおいて、初期状態では、計算機でどのＶＭも稼動していない。クラウドシステムは、ユーザから最初の要求として、起動したいアプリケーションの指定を受け、もしくはアプリケーションのソースまたは実行バイナリファイルを受信する。その場合、前記システムは、そのアプリケーションを実行出来るＶＭにコピーし、実行バイナリファイルをＶＭ内で起動する。
【００１３】
アプリケーション準備時間とは、ユーザから最初の要求を受けた時点からアプリケーションを起動するまでの時間を指す。その中には、計算機起動時間、計算機上のデーモンの起動時間、ライブラリのインストール時間が含まれる。例えば、アプリケーションがＷｅｂサービスのアプリケーションであり、計算機がＶＭである場合、前記アプリケーション準備時間には、ＶＭ起動時間とＡｐａｃｈｅなどのＷｅｂデーモン起動時間が含まれる。
【００１４】
一方、ファイルを圧縮することによって、一般的にアプリケーション準備時間は長くなる。その結果、図１５に示す通り、上記の如くＶＭファイルＢを圧縮すると、ＶＭファイルＢのＶＭ起動時間が長くなる。また、ＶＭファイル自体のサイズを縮小するためにＶＭ上のライブラリやデータを圧縮すると、ＶＭ上のデーモン起動時間が長くなる。つまり、ファイル圧縮によるストレージ空き容量拡大とアプリケーション準備時間短縮はトレードオフの関係にある。
【００１５】
ここで、クラウドシステムにおいては、ストレージ容量に加えて、計算機のリース期間の制限がある。ユーザはリースされた計算機すなわち前記サーバ上でアプリケーションを実行するが、計算機リソースがユーザにリースされる期間は限られている。さらにユーザは、リース期間内でアプリケーション準備とアプリケーション実行をしなければならない。そのため、アプリケーション準備時間が長ければ長いほど、アプリケーション実行時間が短くなってしまい、ユーザメリットが低下する。一方、ユーザに対する課金制度は、リース期間の長短に応じた従量課金となっている場合が多い。従って、ユーザの立場からすれば、一定の課金額の範囲内で、なるべくアプリケーション準備時間を短くし、ひいてはアプリケーション実行の時間を長くできることが望ましい。
【００１６】
他方、クラウドシステムに対して従来手法を適用し圧縮対象やアーカイブ対象のファイルを決定する場合、ファイル自体の使用頻度のみを考慮し、アプリケーション、ＶＭファイル、および計算機やストレージといったハードウェアの相互の依存性を考慮していない。そのため、特定アプリケーションの準備時間が長くなってしまう問題が生じる。前記依存性は、特定計算機上で特定ＶＭを起動し、さらにその上で特定アプリケーションを起動する時間が極端に長くなる特性のことを意味する。
【００１７】
前記依存性の例として、一つには、特定ＶＭには特定アプリケーションが必要とするライブラリファイルがインストールされていないため、アプリケーション準備時間にライブラリインストール時間が加算される、というものがある。また、一つには、特定ＶＭ上では、特定アプリケーションをバイナリファイルのまま起動できず、ソースファイルからコンパイルする必要があるため、アプリケーション準備時間にコンパイル時間が加算される、というものがある。また、一つには、特定ＶＭを起動しただけでは、その上でデーモンが起動していないため、アプリケーション準備時間にデーモン起動時間が加算される、というものがある。また、一つには、特定計算機に含まれるべき、アプリケーションのアクセラレーション専用ハードウェアが含まれていないために、アプリケーション準備時間が長期化する、というものがある。
【００１８】
このような依存性を考慮せずに圧縮対象を決定したために、ファイル圧縮によりアプリケーション準備時間が長くなってしまう例を図１６に示す。図１６のように、使用頻度が高いファイルＡおよびＣを残し、使用頻度が低いファイルＢを圧縮したとする。しかし、特定のアプリケーションＹを実行する場合の準備時間で比較すると、ＶＭファイルＢのほうがＶＭファイルＡより有利である。ＶＭファイルＢを圧縮することによって、すべてのアプリケーション種別に対して準備時間は長くなる。そのため、アプリケーションＹの準備時間は悪化してしまう。
【００１９】
このような場合、アプリケーション準備時間を悪化させないためには、アプリケーションに対して有利な（＝準備時間の短い）ＶＭファイルを圧縮対象から外す必要がある。ところが、アプリケーションとＶＭファイルとの依存性を考慮しても、圧縮対象を決定するのは困難である。複数アプリケーションがトレードオフの関係にある場合である。図１６の例では、アプリケーションＸの準備時間については、ＶＭファイルＢよりＶＭファイルＡのほうが有利である一方、アプリケーションＹの準備時間については、ＶＭファイルＡよりＶＭファイルＢのほうが有利である。このような場合、圧縮対象から外すＶＭファイルをＡないしＢのどちらにするか決定できない。
【００２０】
このように、従来手法により圧縮やアーカイブの対象を決定すると、クラウドシステムでの特定アプリケーションの準備時間が悪化してしまい、該当アプリケーションを実行するメリットが低下してしまう。その理由は、従来の圧縮やアーカイブ対象の決定過程で、アプリケーション、ＶＭファイル、および計算機の相互の依存性を考慮していないためである。したがって、前記依存性を考慮し、かつアプリケーション準備時間に関するアプリケーション間のトレードオフ関係を解消する、圧縮やアーカイブ対象の決定技術が必要となる。
【００２１】
そこで本発明の目的は、クラウドシステムにおけるＶＭスプロールを回避しながら、アプリケーション準備時間を最適化する技術を提供することにある。
【課題を解決するための手段】
【００２２】
上記課題を解決する本発明の情報処理装置は、仮想計算機上で実行されるアプリケーションの準備時間を最適化する装置であり、各アプリケーションの使用頻度のデータを格納した第１テーブルと、所定アプリケーションの実行準備に適用できる高速化手法とその適用条件および高速化効果のデータをアプリケーション別に格納した第２テーブルと、仮想計算機の仕様ないし利用状況の少なくともいずれかに関するデータを格納した第３テーブル、を記憶する記憶部と、入力部を介しユーザから指定されたアプリケーションないし前記第１テーブルにデータが格納されているいずれかのアプリケーションについて、第２テーブルのデータと第３テーブルのデータを照合して各仮想計算機に適用可能な高速化手法と高速化効果を特定する処理と、予め定めた仮想計算機の総確保数を、第１テーブルが含む使用頻度のデータに比例してアプリケーション毎に分配してアプリケーション別の仮想計算機確保数を算定する処理と、アプリケーション毎に、前記仮想計算機確保数の分だけ、前記特定した高速化効果が大きい順に仮想計算機を選択し、該選択した仮想計算機以外の仮想計算機を圧縮ないしアーカイブへの移動の対象として選択する処理を実行する演算部と、を備えることを特徴とする。
【００２３】
また、本発明の情報処理方法は、各アプリケーションの使用頻度のデータを格納した第１テーブルと、所定アプリケーションの実行準備に適用できる高速化手法とその適用条件および高速化効果のデータをアプリケーション別に格納した第２テーブルと、仮想計算機の仕様ないし利用状況の少なくともいずれかに関するデータを格納した第３テーブル、を記憶する記憶部を備え、仮想計算機上で実行されるアプリケーションの準備時間を最適化する情報処理装置が、入力部を介しユーザから指定されたアプリケーションないし前記第１テーブルにデータが格納されているいずれかのアプリケーションについて、第２テーブルのデータと第３テーブルのデータを照合して各仮想計算機に適用可能な高速化手法と高速化効果を特定する処理と、予め定めた仮想計算機の総確保数を、第１テーブルが含む使用頻度のデータに比例してアプリケーション毎に分配してアプリケーション別の仮想計算機確保数を算定する処理と、アプリケーション毎に、前記仮想計算機確保数の分だけ、前記特定した高速化効果が大きい順に仮想計算機を選択し、該選択した仮想計算機以外の仮想計算機を圧縮ないしアーカイブへの移動の対象として選択する処理を、実行することを特徴とする。
【００２４】
また、本発明のプログラムは、各アプリケーションの使用頻度のデータを格納した第１テーブルと、所定アプリケーションの実行準備に適用できる高速化手法とその適用条件および高速化効果のデータをアプリケーション別に格納した第２テーブルと、仮想計算機の仕様ないし利用状況の少なくともいずれかに関するデータを格納した第３テーブル、を記憶する記憶部を備え、仮想計算機上で実行されるアプリケーションの準備時間を最適化する情報処理装置に、入力部を介しユーザから指定されたアプリケーションないし前記第１テーブルにデータが格納されているいずれかのアプリケーションについて、第２テーブルのデータと第３テーブルのデータを照合して各仮想計算機に適用可能な高速化手法と高速化効果を特定する処理と、予め定めた仮想計算機の総確保数を、第１テーブルが含む使用頻度のデータに比例してアプリケーション毎に分配してアプリケーション別の仮想計算機確保数を算定する処理と、アプリケーション毎に、前記仮想計算機確保数の分だけ、前記特定した高速化効果が大きい順に仮想計算機を選択し、該選択した仮想計算機以外の仮想計算機を圧縮ないしアーカイブへの移動の対象として選択する処理を、実行させることを特徴とする。
【発明の効果】
【００２５】
本発明によれば、クラウドシステムにおけるＶＭスプロールを回避しながら、アプリケーション準備時間を最適化することが可能となる。
【図面の簡単な説明】
【００２６】
【図１】本実施形態における情報処理装置（管理計算機）を含むシステム構成図である。
【図２】本実施形態のアプリケーション種別テーブル（第１テーブル）の例を示す図である。
【図３】本実施形態のＶＭファイルテーブル（第３テーブル）の例を示す図である。
【図４】本実施形態のアプリケーション別高速化手法テーブル（第２テーブル）の例を示す図である。
【図５】本実施形態のアプリケーション別ＶＭファイル順位テーブル（第４テーブル）の例を示す図である。
【図６】本実施形態のＶＭ状態データの例を示す図である。
【図７】本実施形態の圧縮対象ＶＭリストの例を示す図である。
【図８】本実施形態のストレージ容量不足通知の例を示す図である。
【図９】本実施形態のファイル圧縮要求の例を示す図である。
【図１０】本実施形態における情報処理方法の手順例１を示すシーケンス図である。
【図１１】本実施形態における情報処理方法の手順例２を示すシーケンス図である。
【図１２】本実施形態における情報処理方法の手順例３を示すフローチャート図である
【図１３】本実施形態における情報処理方法の手順例４を示すフローチャート図である。
【図１４】本実施形態における情報処理方法の手順例５を示すフローチャート図である。
【図１５】従来におけるファイル圧縮手法の例１を示す図である。
【図１６】従来におけるファイル圧縮手法の例２を示す図である。
【発明を実施するための形態】
【００２７】
−−−システム構成−−−
以下に本発明の実施形態について図面を用いて詳細に説明する。図１は、本実施形態における情報処理装置（管理計算機）を含むシステム構成図である。図１に示す管理計算機１０１は、クラウドシステムにおけるＶＭスプロールを回避しながら、アプリケーション準備時間を最適化するコンピュータ装置である。図１に例示するシステムにおいては、管理計算機１０１の他に、ＶＭファイルを記憶した複数のストレージ１０９、１１１、１１３、ストレージからＶＭファイル１１４、１１５を読み出して実行することで仮想計算機を実装する複数の計算機１０８、１１０、１１２、およびアプリケーション実行のユーザ指示を管理計算機１０１に送ってくるユーザ端末１２７を含んでいる。このユーザ端末１２７は、ユーザのデータ入力を受け付けて、管理計算機１０１に送信する装置である。ユーザ端末１２７は通信機能を備えており、ネットワーク５を介して管理計算機１０１の通信部１２１と接続されている。
【００２８】
図１の例では、管理計算機１０１を単体のコンピュータ装置として示しているが、本実施形態の情報処理装置として必要な機能を実装した他装置とネットワークを介して互いに協働し、複数装置をもって管理計算機１０１を構成するとしても問題ない。
【００２９】
管理計算機１０１のハードウェア構成は以下の如くとなる。管理計算機１０１は、ハードディスクドライブなど適宜な不揮発性記憶装置で構成されるメモリ１０３（記憶部）、前記メモリ１０３に保持されるプログラム類を読み出すなどして実行し装置自体の統括制御を行なうとともに各種判定、演算及び制御処理を行なうＣＰＵ１０２（演算部）、ユーザ端末１２７とのデータ通信を担う通信部１２１、を備える。図１に示す例では、前記ユーザ端末１２７が管理計算機１０１の入力部とも言える。
【００３０】
なお、メモリ１０３には、本実施形態の情報処理装置として必要な機能を実装する為のプログラム、および各種テーブル等が格納されている。本実施形態の情報処理装置として備えるべき機能は、管理計算機１０１が備えるプログラムを実行することで実装される機能と言える。図１においては、こうした機能を処理部として示している。
【００３１】
前記メモリ１０３に含まれる処理部としては、ＶＭ情報収集部１１７、圧縮対象選択部１１９、ＶＭファイル順序作成部１２６、準備対象ＶＭファイル選択部１２８がある。また、前記メモリ１０３に含まれるテーブルやデータとしては、アプリケーション種別テーブル１０４、アプリケーション別高速化手法テーブル１０５、ＶＭファイルテーブル１０６、アプリケーション別ＶＭファイル順位テーブル１０７、圧縮対象ＶＭファイルリスト１２４、総上位確保数１２９がある。
【００３２】
上記の管理計算機１０１とネットワーク５で接続されたストレージ部１１８は、１台以上のストレージを含むコンピュータ装置である。各ストレージはハードディスクドライブなどの不揮発性記憶装置で構成されており、ファイルを格納することができる。このストレージ部１１８は、ストレージ１０９、ストレージ１１１、ストレージ１１３の他に、アーカイブ対象のＶＭファイルを格納するための記憶装置であるアーカイブ１１６を備えている。このアーカイブ１１６は、ストレージの一種でありストレージ１０９、１１５より容量が大きいが、計算機１０８、１１０、１１２からのアクセス速度が遅いものとなる。また、アーカイブ１１６はＶＭファイルをストレージ１０９，１１５から受信し格納することができる。
【００３３】
また、ストレージ部１１８は、特に図示しないが、ＣＰＵおよびメモリを備えている。メモリには圧縮量計算部１２２、圧縮実行部１２３、空き容量不足検知部１２５に対応するプログラムが記憶されている。ＣＰＵはこれらプログラムを実行して各処理部１２２、１２３、１２５を実装する。また、ストレージ部１１８は通信機能を備えており、ネットワーク５を介して前記管理計算機１０１の通信部１２１と接続されている。
【００３４】
ストレージ１０９はＶＭファイル１１４を格納しており、計算機１０８、アーカイブ１１６と接続されている。また、ストレージ１１１はＶＭファイル１１５を格納しており、計算機１１０、アーカイブ１１６と接続されている。
【００３５】
一方、計算機部１２０は１台以上の計算機を含むコンピュータ装置である。各計算機はＶＭファイルを実行することで仮想計算機たるＶＭ（以下、ＶＭとする）を起動することができる。また、ＶＭはアプリケーションを実行することができる。計算機部１２０を構成する各計算機らは通信機能を備えており、ネットワーク５を介して管理計算機１０１の通信部１２１と接続されている。
【００３６】
計算機部１２０をなす計算機１０８は、ストレージ１０９と接続されている。また、計算機１１０はストレージ１１１と接続されている。計算機１１２はストレージ１１３と接続されている。ストレージ１１３は計算機１１２、アーカイブ１１６と接続されている。
【００３７】
続いて、管理計算機１０１が実行する処理について説明しておく。管理計算機１０１は、ユーザ端末１２７を介しユーザから指定されたアプリケーションないし前記アプリケーション種別テーブル１０４にデータが格納されているいずれかのアプリケーションについて、アプリケーション別高速化手法テーブル１０５のデータとＶＭファイルテーブル１０６のデータを照合して各仮想計算機に適用可能な高速化手法と高速化効果を特定する処理を実行する。
【００３８】
また、管理計算機１０１は、予め定めた仮想計算機の総確保数（総上位確保数１２９）を、アプリケーション種別テーブル１０４が含む使用頻度のデータに比例してアプリケーション毎に分配してアプリケーション別の仮想計算機確保数を算定する処理を実行する。
【００３９】
また、管理計算機１０１は、アプリケーション毎に、前記仮想計算機確保数の分だけ、前記特定した高速化効果が大きい順に仮想計算機を選択し、該選択した仮想計算機以外の仮想計算機を圧縮ないしアーカイブへの移動の対象として選択する処理を実行する。
【００４０】
なお、管理計算機１０１は、前記特定した、各仮想計算機に適用可能な高速化手法の高速化効果に基づき、アプリケーション毎の高速化効果の大きさで仮想計算機の情報をソートしてアプリケーション別ＶＭファイル順位テーブル１０７を生成し、アプリケーション毎に、前記仮想計算機確保数の分だけ、前記アプリケーション別ＶＭファイル順位テーブル１０７において高速化効果が大きい順に仮想計算機を選択し、該選択した仮想計算機以外の仮想計算機を圧縮ないしアーカイブへの移動の対象として選択する、とすれば好適である。
【００４１】
また、管理計算機１０１の前記アプリケーション別高速化手法テーブル１０５において、所定アプリケーションの実行準備に適用できる高速化手法の適用条件として、１つ以上のソフトウェア名を含むとしてもよい。また、前記ＶＭファイルテーブル１０６において、仮想計算機の仕様ないし利用状況の少なくともいずれかに関するデータとして、仮想計算機が含む１つ以上のソフトウェア名を含むとしてもよい。この場合、管理計算機１０１は、ユーザ端末１２７を介しユーザから指定されたアプリケーションないし前記アプリケーション種別テーブル１０４にデータが格納されているいずれかのアプリケーションについて、アプリケーション別高速化手法テーブル１０５のデータとＶＭファイルテーブル１０６のデータを少なくとも前記ソフトウェア名について照合して各仮想計算機に適用可能な高速化手法と高速化効果を特定するとできる。
【００４２】
また、管理計算機１０１の前記アプリケーション別高速化手法テーブル１０５において、所定アプリケーションの実行準備に適用できる高速化手法の適用条件として、１つ以上のデータ名を含むとしてもよい。また、前記ＶＭファイルテーブル１０６において、仮想計算機の仕様ないし利用状況の少なくともいずれかに関するデータとして、仮想計算機が含む１つ以上のデータ名を含むとしてもよい。この場合、管理計算機１０１は、ユーザ端末１２７を介しユーザから指定されたアプリケーションないし前記アプリケーション種別テーブル１０４にデータが格納されているいずれかのアプリケーションについて、アプリケーション別高速化手法テーブル１０５のデータとＶＭファイルテーブル１０６のデータを少なくとも前記データ名について照合して各仮想計算機に適用可能な高速化手法と高速化効果を特定する処理を実行する、とできる。
【００４３】
また、管理計算機１０１の前記アプリケーション別高速化手法テーブル１０５において、所定アプリケーションの実行準備に適用できる高速化手法の適用条件として、１つ以上のハードウェア名を含むとしてもよい。また、前記ＶＭファイルテーブル１０６において、仮想計算機の仕様ないし利用状況の少なくともいずれかに関するデータとして、仮想計算機が含む１つ以上のハードウェア名を含むとしてもよい。この場合、管理計算機１０１は、ユーザ端末１２７を介しユーザから指定されたアプリケーションないし前記アプリケーション種別テーブル１０４にデータが格納されているいずれかのアプリケーションについて、アプリケーション別高速化手法テーブル１０５のデータとＶＭファイルテーブル１０６のデータを少なくとも前記ハードウェア名について照合して各仮想計算機に適用可能な高速化手法と高速化効果を特定する処理を実行する、とできる。
【００４４】
また、管理計算機１０１は、仮想計算機の実装対象となる１つ以上のストレージについて、ストレージの必要空き容量を算定し、前記アプリケーション別ＶＭファイル順位テーブル１０７で高速化効果下位の仮想計算機から順に圧縮ないしアーカイブの対象を抽出し、抽出した仮想計算機を圧縮処理ないしアーカイブ処理した場合の総節約ストレージ容量が前記必要空き容量に達した時点までに抽出した仮想計算機を圧縮ないしアーカイブへの移動の対象として選択する、としてもよい。
【００４５】
−−データ構造例−−−
次に、本実施形態の管理計算機１０１等が用いるテーブル、データ類の例について説明する。図２は本実施形態のアプリケーション種別テーブル１０４（第１テーブル）の例を示す図である。このアプリケーション種別テーブル１０４は、計算機１０８、１１０、１１２のいずれかで実行される予定のアプリケーションの種別と、各アプリケーション種別に固有のデータを対応付けたレコードの集合体となっている。前記固有のデータとしては、アプリケーション別ＶＭファイル順位テーブル１０７ならびにアプリケーション別高速化手法テーブル１０５のアドレスとなる。アプリケーション種別テーブル１０４は、管理計算機１０１が参照し、アプリケーション種別ごとの高速化手法を考慮して圧縮対象ＶＭ  ファイルを選択するために使用する。
【００４６】
また、「アプリケーション種別」２０１は、計算機で実行される予定のアプリケーションの種別が記載される。図２の例において、行２０５は「アプリケーション種別」が「Ｃ＋＋アプリケーション（ソース＋バイナリ）」であるものに関する記述であり、行２０６は「アプリケーション種別」が「Ｗｅｂ３階層アプリケーション」であるものに関する記述である。
【００４７】
また、「高速化手法テーブル名」２０２は、アプリケーション種別に固有のアプリケーション別高速化手法テーブル名が記載される。アプリケーション別高速化手法テーブル名は、後述するアプリケーション別高速化手法テーブル１０５を一意に決定することができる。例えば、「アプリケーション種別」が「Ｃ＋＋アプリケーション（ソース＋バイナリ）」であるレコードでは、「高速化手法テーブル名」は「ｂｏｏｓｔ２」であり、「アプリケーション種別」が「Ｗｅｂ３階層アプリケーション」であるレコードでは、「高速化手法テーブル名」は「ｂｏｏｓｔ１」である。「ＶＭファイル順位テーブル名」２０３は、アプリケーション種別に固有のアプリケーション別ＶＭファイル順位テーブル名が記載される。ＶＭファイル順位テーブル名は、後述するアプリケーション別ＶＭファイル順位テーブル１０７を一意に決定することができる。図２の例において、例えば、「アプリケーション種別」が「Ｃ＋＋アプリケーション（ソース＋バイナリ）」であるレコードでは、「ＶＭファイル順位テーブル名」は「ｒａｎｋｉｎｇ２」であり、「アプリケーション種別」が「Ｗｅｂ３階層アプリケーション」であるレコードでは、「ＶＭファイル順位テーブル名」は「ｒａｎｋｉｎｇ１」である。
【００４８】
また、「使用頻度」２０４は、各アプリケーション種別の使用頻度が記載される。例えば、「アプリケーション種別」が「Ｃ＋＋アプリケーション（ソース＋バイナリ）」であるレコードでは、「使用頻度」は「２０％」であり、「アプリケーション種別」が「Ｗｅｂ３階層アプリケーション」であるレコードでは、「使用頻度」は「１０％」である。
【００４９】
図３は本実施形態のＶＭファイルテーブル１０６（第３テーブル）の例を示す図である。このＶＭファイルテーブル１０６は、ＶＭファイルとその使用状況、ハードウェア情報およびソフトウェア情報を管理するテーブルである。ＶＭファイルテーブル１０６は、管理計算機１０１が圧縮対象を選択する際に、ＶＭファイルとアプリケーションの依存性を確認するために使用する。本実施例では、管理計算機１０１の圧縮対象選択部１１９は圧縮対象の選択処理において、ＶＭファイルの使用状況、ハードウェア情報およびソフトウェア情報を用いて高速化効果が期待できるかどうかを判断し、圧縮対象から外すことになる。圧縮対象の選択処理について詳細は後述する。
【００５０】
ＶＭファイルテーブル１０６において、「ＶＭファイルＩＤ」３０１は、ＶＭファイルへの接続先となるＩＰアドレスである。例えば、行３１３は、「ＶＭファイルＩＤ」が「Ｄａｔａｂａｓｅ＿ＶＭ」であるものに関するレコードである。また、行３１４は、「ＶＭファイルＩＤ」が「ＷｅｂＳｅｒｖｅｒ＿ＶＭ」であるものに関するレコードである。また、行３１５は、「ＶＭファイルＩＤ」が「Ｗｉｎｄｏｗｓ＿＿ＶＭ」であるものに関するレコードである。
【００５１】
また、ＶＭファイルテーブル１０６において、「使用中」３０２は接続先のポートＩＤが記載される。例えば、「ＶＭファイルＩＤ」が「Ｄａｔａｂａｓｅ＿ＶＭ」であるレコードにおいて、「使用中」３０２は「ｔｒｕｅ」である。また、「ＶＭファイルＩＤ」が「ＷｅｂＳｅｒｖｅｒ＿ＶＭ」であるレコードにおいて、「使用中」３０２は「ｔｒｕｅ」である。また、「ＶＭファイルＩＤ」が「Ｗｉｎｄｏｗｓ＿＿ＶＭ」であるレコードにおいて、「使用中」は「ｔｒｕｅ」である。
【００５２】
また、ＶＭファイルテーブル１０６において、「ＯＳ」３０３はカプセル化を行うプロトコルの種別が記載される。例えば、「ＶＭファイルＩＤ」が「Ｄａｔａｂａｓｅ＿ＶＭ」であるレコードにおいて、「ＯＳ」３０３は「Ｌｉｎｕｘ  ６４ｂｉｔ」である。また、「ＶＭファイルＩＤ」が「ＷｅｂＳｅｒｖｅｒ＿ＶＭ」であるレコードにおいて、「ＯＳ」３０３は「Ｌｉｎｕｘ  ３２ｂｉｔ」である。また、「ＶＭファイルＩＤ」が「Ｗｉｎｄｏｗｓ＿＿ＶＭ」であるレコードにおいて、「ＯＳ」３０３は「Ｌｉｎｕｘ  ３２ｂｉｔ」である。
【００５３】
また、ＶＭファイルテーブル１０６において、「ミドルウェア」３０４は各プロトコルのカプセル化デーモンと内部通信用コネクションを確立するための接続先ポートＩＤが記載される。例えば、「ＶＭファイルＩＤ」が「Ｄａｔａｂａｓｅ＿ＶＭ」であるレコードにおいて、「ミドルウェア」３０４は「ＭｙＳＱＬ」である。また、「ＶＭファイルＩＤ」が「ＷｅｂＳｅｒｖｅｒ＿ＶＭ」であるレコードにおいて、「ミドルウェア」３０４は「Ｔｏｍｃａｔ」である。また、「ＶＭファイルＩＤ」が「Ｗｉｎｄｏｗｓ＿＿ＶＭ」であるレコードにおいて、「ミドルウェア」３０４は「Ｔｏｍｃａｔ」である。
【００５４】
また、ＶＭファイルテーブル１０６において、「計算機ＩＤ」３０５はＶＭファイルが実装される計算機のＩＤが記載される。例えば、「ＶＭファイルＩＤ」が「Ｄａｔａｂａｓｅ＿ＶＭ」であるレコードにおいて、「計算機ＩＤ」３０５は「ＳＥＲＶ１」である。また、「ＶＭファイルＩＤ」が「ＷｅｂＳｅｒｖｅｒ＿ＶＭ」であるレコードにおいて、「計算機ＩＤ」３０５は「ＳＥＲＶ２」である。また、「ＶＭファイルＩＤ」が「Ｗｉｎｄｏｗｓ＿＿ＶＭ」であるレコードにおいて、「計算機ＩＤ」３０５は「ＳＥＲＶ３」である。  また、ＶＭファイルテーブル１０６において、「ハイパーバイザ種別」３０６は、ＶＭファイルを用いてＶＭすなわち仮想計算機を構成する際に利用するハイパーバイザの種別が記載される。例えば、「ＶＭファイルＩＤ」が「Ｄａｔａｂａｓｅ＿ＶＭ」であるレコードにおいて、「ハイパーバイザ種別」３０６は「ＶＭｗａｒｅ」である。また、「ＶＭファイルＩＤ」が「ＷｅｂＳｅｒｖｅｒ＿ＶＭ」であるレコードにおいて、「ハイパーバイザ種別」３０６は「ＫＶＭ」である。また、「ＶＭファイルＩＤ」が「Ｗｉｎｄｏｗｓ＿＿ＶＭ」であるレコードにおいて、「ハイパーバイザ種別」３０６は「ＬＰＡＲ」である。
【００５５】
また、ＶＭファイルテーブル１０６において、「ＶＭ起動状態」３０７は、ＶＭの起動状態が記載される。例えば、「ＶＭファイルＩＤ」が「Ｄａｔａｂａｓｅ＿ＶＭ」であるレコードにおいて、「ＶＭ起動状態」３０７は「起動」である。また、「ＶＭファイルＩＤ」が「ＷｅｂＳｅｒｖｅｒ＿ＶＭ」であるレコードにおいて、「ＶＭ起動状態」３０７は「停止」である。また、「ＶＭファイルＩＤ」が「Ｗｉｎｄｏｗｓ＿＿ＶＭ」であるレコードにおいて、「ＶＭ起動状態」３０７は「ハイバネ」である。
【００５６】
また、ＶＭファイルテーブル１０６において、「ＶＭ設定」３０８は、ＶＭの設定内容が記載される。例えば、「ＶＭファイルＩＤ」が「Ｄａｔａｂａｓｅ＿ＶＭ」であるレコードにおいて、「ＶＭ設定」３０８は「なし」である。また、「ＶＭファイルＩＤ」が「ＷｅｂＳｅｒｖｅｒ＿ＶＭ」であるレコードにおいて、「ＶＭ設定」３０８は「パススルー」である。また、「ＶＭファイルＩＤ」が「Ｗｉｎｄｏｗｓ＿＿ＶＭ」であるレコードにおいて、「ＶＭ設定」３０８は「なし」である。
【００５７】
また、ＶＭファイルテーブル１０６において、「ストレージＩＤ」３０９は、ＶＭが利用するストレージのアドレスが記載される。例えば、「ＶＭファイルＩＤ」が「Ｄａｔａｂａｓｅ＿ＶＭ」であるレコードにおいて、「ストレージＩＤ」３０９は「ＳＴＯＲＡＧＥ１」である。また、「ＶＭファイルＩＤ」が「ＷｅｂＳｅｒｖｅｒ＿ＶＭ」であるレコードにおいて、「ストレージＩＤ」３０９は「ＳＴＯＲＡＧＥ２」である。また、「ＶＭファイルＩＤ」が「Ｗｉｎｄｏｗｓ＿＿ＶＭ」であるレコードにおいて、「ストレージＩＤ」３０９は「ＳＴＯＲＡＧＥ１」である。
【００５８】
また、ＶＭファイルテーブル１０６において、「ストレージ種別」３１０は前記ストレージＩＤ３０９に対応するストレージの種別が記載される。例えば、「ＶＭファイルＩＤ」が「Ｄａｔａｂａｓｅ＿ＶＭ」であるレコードにおいて、「ストレージ種別」３１０は「ＨＤＤ」である。また、「ＶＭファイルＩＤ」が「ＷｅｂＳｅｒｖｅｒ＿ＶＭ」であるレコードにおいて、「ストレージ種別」３１０は「ＳＳＤ」である。また、「ＶＭファイルＩＤ」が「Ｗｉｎｄｏｗｓ＿＿ＶＭ」であるレコードにおいて、「ストレージ種別」３１０は「ＨＤＤ」である。
【００５９】
また、ＶＭファイルテーブル１０６において、「ストレージ使用量」３１１は、前記ストレージＩＤ３０９に対応するストレージの使用量が記載される。例えば、「ＶＭファイルＩＤ」が「Ｄａｔａｂａｓｅ＿ＶＭ」であるレコードにおいて、「ストレージ使用量」３１１は「２０ＧＢ」である。また、「ＶＭファイルＩＤ」が「ＷｅｂＳｅｒｖｅｒ＿ＶＭ」であるレコードにおいて、「ストレージ使用量」３１１は「５０ＧＢ」である。また、「ＶＭファイルＩＤ」が「Ｗｉｎｄｏｗｓ＿＿ＶＭ」であるレコードにおいて、「ストレージ使用量」３１１は「１０ＧＢ」である。
【００６０】
また、ＶＭファイルテーブル１０６において、「圧縮状態」３１２は前記ストレージＩＤ３０９に対応するストレージにおけるＶＭファイルの圧縮状態が記載される。例えば、「ＶＭファイルＩＤ」が「Ｄａｔａｂａｓｅ＿ＶＭ」であるレコードにおいて、「圧縮状態」３１２は「非圧縮」である。また、「ＶＭファイルＩＤ」が「ＷｅｂＳｅｒｖｅｒ＿ＶＭ」であるレコードにおいて、「圧縮状態」３１２は「圧縮済み」である。また、「ＶＭファイルＩＤ」が「Ｗｉｎｄｏｗｓ＿＿ＶＭ」であるレコードにおいて、「圧縮状態」３１２は「非圧縮」である。
【００６１】
図４は本実施形態のアプリケーション別高速化手法テーブル１０５（第２テーブル）の例を示す図である。このアプリケーション別高速化手法テーブル１０５は、アプリケーションの実行準備に適用できる高速化手法を記載したテーブルである。管理計算機１０１は、後述する圧縮対象の選択処理において、所定のアプリケーションの実行準備に適用できる高速化手法の情報を必要とする。そのため、アプリケーション別高速化手法テーブル１０５は、高速化手法とその適用条件が記述されている。管理計算機１０１は、当該アプリケーション別高速化手法テーブル１０５の適用条件と前記ＶＭファイルテーブル１０６に記載のＶＭファイルの情報とが合致するかによって、どのＶＭファイルにおいて前記高速化手法が適用できるかを判定することになる。
【００６２】
前記アプリケーション別高速化手法テーブル１０５は、予め本システムのユーザもしくは管理者により作成され、例えばユーザ端末１２７より管理計算機１０１に対して入力されることを想定している。
【００６３】
このアプリケーション別高速化手法テーブル１０５において、「高速化手法」４０１は高速化手法の内容を示す情報である。行４０４では「高速化手法」４０１が「ハイバネからのレジューム」となっており、行４０５では「高速化手法」４０１が「バイナリコピー（コンパイル不要）」となっており、行４０６では「高速化手法」４０１が「ＶＭ起動前コピー」となっており、行４０７では「高速化手法」４０１が「ＳＳＤ」となっている。
【００６４】
このアプリケーション別高速化手法テーブル１０５において、「条件」４０２は、前記高速化手法４０１の適用条件が記載される。例えば、「高速化手法」が「ハイバネからのレジューム」であるレコードにおいて、「条件」４０２は「「ＶＭ状態」＝「ハイバネ」」である。また、「高速化手法」が「バイナリコピー（コンパイル不要）」であるレコードにおいて、「条件」４０２は「「アプリケーション状態」＝「バイナリ」かつ「ＯＳ」＝「６４ｂｉｔ」」である。また、「高速化手法」が「ＶＭ起動前コピー」であるレコードにおいて、「条件」４０２は「「ハイパーバイザ種別」＝「ＶＭｗａｒｅ」かつ「ＶＭ設定」＝「パススルー」」である。また、「高速化手法」が「ＳＳＤ」であるレコードにおいて、「条件」４０２は「「ストレージ種別」＝「ＳＳＤ」」である。
【００６５】
また、アプリケーション別高速化手法テーブル１０５において、「効果」４０３は前記高速化手法４０１に対応した効果、すなわちアプリケーション実行準備にかかる時間の短縮具合が記載される。例えば、「高速化手法」が「ハイバネからのレジューム」であるレコードにおいて、「効果」４０３は「５０％」である。また、「高速化手法」が「バイナリコピー（コンパイル不要）」であるレコードにおいて、「効果」４０３は「３０％」である。また、「高速化手法」が「ＶＭ起動前コピー」であるレコードにおいて、「効果」４０３は「２０％」である。また、「高速化手法」が「ＳＳＤ」であるレコードにおいて、「効果」４０３は「２０％」である。
【００６６】
図５は本実施形態のアプリケーション別ＶＭファイル順位テーブル１０７（第４テーブル）の例を示す図である。このアプリケーション別ＶＭファイル順位テーブル１０７は、所定のアプリケーションの実行準備を想定したときに所定高速化手法を適用した結果、高速化効果が得られるＶＭファイルについて、高速化効果の大きい順にソートし記録したテーブルである。後述する圧縮対象の選択処理で高速化効果の大きいＶＭファイルを一定数抽出する処理を行うため、管理計算機１０１は、このアプリケーション別ＶＭファイル順位テーブル１０７を使用する。また、アプリケーション別ＶＭファイル順位テーブル１０７の作成処理については後述する。
【００６７】
前記アプリケーション別ＶＭファイル順位テーブル１０７において、「ＶＭファイルＩＤ」５０１は、ＶＭファイルへの接続先のＩＰアドレスである。行５０５では「ＶＭファイルＩＤ」５０１が「Ｄａｔａｂａｓｅ＿ＶＭ」であり、行５０６では「ＶＭファイルＩＤ」５０１が「ＷｅｂＳｅｒｖｅｒ＿ＶＭ」である。
【００６８】
また、アプリケーション別ＶＭファイル順位テーブル１０７において、「計算機ＩＤ」５０２は、前記ＶＭファイルＩＤ５０１に対応するＶＭファイルを実装する計算機のＩＤが記載される。例えば、「ＶＭファイルＩＤ」が「Ｄａｔａｂａｓｅ＿ＶＭ」であるレコードにおいて、「計算機ＩＤ」５０２は「ＳＥＲＶ１」である。また、「ＶＭファイルＩＤ」が「ＷｅｂＳｅｒｖｅｒ＿ＶＭ」であるレコードにおいて、「計算機ＩＤ」５０２は「ＳＥＲＶ２」である。
【００６９】
また、アプリケーション別ＶＭファイル順位テーブル１０７において、「適用した高速化手法」５０３は、ＶＭファイルＩＤ５０１に対応したＶＭファイルに適用出来る高速化手法の情報が記載される。例えば、「ＶＭファイルＩＤ」が「Ｄａｔａｂａｓｅ＿ＶＭ」であるレコードにおいて、「適用した高速化手法」５０３は「＃１、＃２」である。また、「ＶＭファイルＩＤ」が「ＷｅｂＳｅｒｖｅｒ＿ＶＭ」であるレコードにおいて、「適用した高速化手法」５０３は「＃３、＃６」である。
【００７０】
また、アプリケーション別ＶＭファイル順位テーブル１０７において、「効果」５０４は、前記ＶＭファイルＩＤ５０１に対応したＶＭファイルに、適用した高速化手法５０３の高速化手法を適用した場合の高速化効果の情報が記載される。例えば、「ＶＭファイルＩＤ」が「Ｄａｔａｂａｓｅ＿ＶＭ」であるレコードにおいて、「効果」５０４は「５０％」である。また、「ＶＭファイルＩＤ」が「ＷｅｂＳｅｒｖｅｒ＿ＶＭ」であるレコードにおいて、「効果」５４は「３０％」である。
【００７１】
図６は本実施形態のＶＭ状態データの例を示す図である。ＶＭ状態データ６０４は、計算機１０８、１１０、１１２が生成し、ＶＭ情報収集部１１７に対して送信するデータである。このＶＭ状態データは、各計算機上でＶＭファイルが使用されているか否かの状態と時刻情報を含む。ＶＭファイルの状態は、ＶＭに関する従来技術により、各計算機上で稼働するハイパーバイザ等から取得できる。このＶＭ状態データに含まれる情報に基づき、ＶＭ情報収集部１１７はＶＭファイルテーブル１０６を更新することとなる。
【００７２】
このＶＭ状態データにおいて、「ＶＭファイルＩＤ」６０１は、ＶＭファイルへの接続先のＩＰアドレスである。行６０４では「ＶＭファイルＩＤ」６０１が「Ｄａｔａｂａｓｅ＿ＶＭ」となっている。また、このＶＭ状態データにおいて、「使用中」６０２は、該当ＶＭファイルの使用状況に関する情報が記載される。例えば、「ＶＭファイルＩＤ」が「Ｄａｔａｂａｓｅ＿ＶＭ」であるレコードにおいて、「使用中」６０２は「ｔｒｕｅ」である。また、このＶＭ状態データにおいて、「時刻」６０３は、当該ＶＭ状態データの取得時刻が記載される。例えば、「ＶＭファイルＩＤ」が「Ｄａｔａｂａｓｅ＿ＶＭ」であるレコードにおいて、「時刻」６０３は「２０ｘｘ／ｘｘ／ｘｘ  ｘｘ：ｘｘ：ｘｘ」である。
【００７３】
図７は本実施形態の圧縮対象ＶＭファイルリスト１２４の例を示す図である。この圧縮対象ＶＭファイルリスト１２４は、圧縮対象となるＶＭファイルの情報を保持するテーブルである。後述する圧縮対象の選択処理において生成される。この圧縮対象ＶＭファイルリスト１２４において、「ＶＭファイルＩＤ」７０１は、ＶＭファイルへの接続先のＩＰアドレスである。行７０５では「ＶＭファイルＩＤ」が「Ｄａｔａｂａｓｅ＿ＶＭ」である。行７０６では「ＶＭファイルＩＤ」が「Ｗｉｎｄｏｗｓ＿＿ＶＭ」である。
【００７４】
圧縮対象ＶＭファイルリスト１２４において、「圧縮回避フラグ」７０２は、該当ＶＭファイルを圧縮対象とするか否かを示すフラグが記載される。例えば、「ＶＭファイルＩＤ」が「Ｄａｔａｂａｓｅ＿ＶＭ」であるレコードにおいて、「圧縮回避フラグ」７０２は「Ｏｆｆ」すなわち圧縮対象となっている。また、「ＶＭファイルＩＤ」が「Ｗｉｎｄｏｗｓ＿＿ＶＭ」であるレコードにおいて、「圧縮回避フラグ」７０２は「Ｏｆｆ」すなわち圧縮対象となっている。
【００７５】
また、圧縮対象ＶＭファイルリスト１２４において、「節約ストレージ容量」７０３は、該当ＶＭファイルの圧縮によるストレージ容量の圧縮量が記載される。例えば、「ＶＭファイルＩＤ」が「Ｄａｔａｂａｓｅ＿ＶＭ」であるレコードにおいて、「節約ストレージ容量」７０３は「０ＧＢ」である。また、「ＶＭファイルＩＤ」が「Ｗｉｎｄｏｗｓ＿＿ＶＭ」であるレコードにおいて、「節約ストレージ容量」７０３は「２０ＧＢ」である。
【００７６】
また、圧縮対象ＶＭファイルリスト１２４において、「圧縮判定結果」７０４は、ＶＭファイルに関する圧縮対象の判定結果が記載される。例えば、「ＶＭファイルＩＤ」が「Ｄａｔａｂａｓｅ＿ＶＭ」であるレコードにおいて、「圧縮判定結果」７０４は「Ｏｆｆ」である。また、「ＶＭファイルＩＤ」が「Ｗｉｎｄｏｗｓ＿＿ＶＭ」であるものの「圧縮判定結果」７０４は「Ｏｎ」である。
【００７７】
図８は本実施形態のストレージ容量不足通知の例を示す図である。このストレージ容量不足通知は、空き容量不足検知部１２５が生成し、管理計算機１０１の圧縮対象選択部１１９に送信するデータである。このストレージ容量不足通知は、ストレージ名とそれに対応するストレージ上での必要な空き容量の情報とを含む。この空き容量の情報は、ストレージに関する従来技術により、ストレージコントローラ等から取得できる。このストレージ容量不足通知において、「ストレージＩＤ」８０１はＶＭファイルへの接続先のＩＰアドレスである。行８０３では、「ストレージＩＤ」が「Ｓｔｏｒａｇｅ１」となっている。なお、また、ストレージ容量不足通知において、「必要空き容量」８０２は、ストレージ上での必要な空き容量の情報が記載される。例えば、「ストレージＩＤ」が「Ｓｔｏｒａｇｅ１」であるレコードにおいて、「必要空き容量」は「２００ＧＢ」である。
【００７８】
図９は本実施形態のファイル圧縮要求の例を示す図である。ファイル圧縮要求は、管理計算機１０１が生成し、ストレージ部１１８に対して送信するデータである。このファイル圧縮要求は、後述する圧縮対象選択部１１９での処理終了時に生成される。ファイル圧縮要求には、選択された圧縮対象のＶＭファイルのＩＤが記録されている。ストレージ部１１８は、このファイル圧縮要求が含む前記ＶＭファイルＩＤを参照し、従来のファイル圧縮技術もしくは重複排除技術、その他のファイル操作を該当ＶＭファイルに施す。この動作により、ストレージの空き容量が増加することになる。
【００７９】
このファイル圧縮要求において、「ストレージＩＤ」９０１は、圧縮対象のストレージに関する接続先のＩＰアドレスである。行９０３では、「ストレージＩＤ」９０１が「ＳＴＯＲＡＧＥ１」となっている。また、ファイル圧縮要求において、「圧縮対象ＶＭファイル」９０２は、圧縮対象のＶＭファイルの情報が記載される。例えば、「ストレージＩＤ」が「ＳＴＯＲＡＧＥ１」であるレコードにおいて、「圧縮対象ＶＭファイル」９０２は「ＶＭ１、ＶＭ２」である。
【００８０】
−−−処理手順例１−−−
以下、本実施形態における情報処理方法の実際手順について図に基づき説明する。以下で説明する情報処理方法に対応する各機能部は、管理計算機１０１がメモリ１０３から読み出して実行するプログラムによって実現される。そして、このプログラムは、以下に説明される各種の動作を行うためのコードから構成されている。
【００８１】
図１０は、本実施形態における情報処理方法の処理手順例１を示すシーケンス図である。ここではまず、本実施形態の情報処理方法の全体的な流れを説明する。この場合、ストレージ部１１８の空き容量不足検知部１２５が、自身が管理するストレージに関して得ているストレージ容量不足通知１００６を、ネットワーク５を介して管理計算機１０１の圧縮対象選択部１１９へ送信してきたものとする。
【００８２】
これを受けた管理計算機１０１の圧縮対象選択部１１９は、ストレージ容量不足に対応してＶＭファイルの圧縮（勿論、アーカイブとしてもよい）を行うべく、ファイル圧縮対象選択処理１００７を行う。この時、前記圧縮対象選択部１１９は、参照要求１００８をＶＭファイルテーブル１０６に行い、ＶＭファイルテーブル１０６の参照、確認を適宜行っている。前記管理計算機１０１の圧縮対象選択部１１９は、これまでの処理で作成していた圧縮対象ＶＭファイルリスト１００９を、ストレージ部１１８の圧縮量計算部１２２へ送信する。
【００８３】
一方、前記圧縮対象ＶＭファイルリスト１００９を受信したストレージ部１１８の圧縮量計算部１２２は、圧縮対象ＶＭファイルリスト１００９が示す圧縮対象のＶＭファイルに関して圧縮を行った場合の圧縮量計算処理１０１０を行う。また、前記圧縮量計算部１２２は、圧縮量計算処理１０１０で算定したストレージの節約容量を書き込んだ圧縮対象ＶＭファイルリスト１０１１を、管理計算機１０１の圧縮対象選択部１１９へ送信する。  他方、管理計算機１０１の圧縮対象選択部１１９は、前記ストレージ部１１８の圧縮量計算部１２２から得た圧縮対象ＶＭファイルリストに基づいて、該当ＶＭファイルに関するファイル圧縮要求１０１２を、ストレージ部１１８の圧縮実行部１２３へ送信する。
【００８４】
ファイル圧縮要求を受け取ったストレージ部１１８の圧縮実行部１２３は、ファイル圧縮要求が示すＶＭファイルについて、ファイル圧縮の処理１０１３を行う。ファイル圧縮の処理を終えた圧縮実行部１２３は、ファイル圧縮完了シグナル１０１４を、管理計算機１０１の圧縮対象選択部１１９へ送信する。このファイル圧縮完了シグナル１０１４を受信した管理計算機１０１の圧縮対象選択部１１９は、更新要求１０１５をＶＭファイルテーブル１０６へ送信し、ＶＭファイルテーブル１０６の圧縮状態の値を更新する。
【００８５】
−−−処理手順例２−−−
図１１は本実施形態における情報処理方法の手順例２を示すシーケンス図である。このシーケンスは、ＶＭ情報集計処理ならびにアプリケーション別アプリケーション別ＶＭファイル順位テーブル作成処理を示すシーケンスである。このシーケンスは定期的に実行されるものとなる。
【００８６】
まず管理計算機１０１のＶＭ情報収集部１１７は、ＶＭ情報集計処理１２０４を行う。この時、前記ＶＭ情報収集部１１７は、ＶＭ状態要求１２０５を、ネットワーク５を介して計算機部１２０へ送信する。  
一方、計算機部１２０は、所属ＶＭとその状態を確認する処理１２０６を行う。この処理でＶＭの状態を確認した計算機部１２０は、得られたＶＭ状態データ１２０７を、ネットワーク５を介して、管理計算機１０１のＶＭ情報収集部１１７へ送信する。  
他方、ＶＭ状態データ１２０７を得た管理計算機１０１のＶＭ情報収集部１１７は、ＶＭ状態データ１２０７に基づく更新要求１２０８を、ＶＭファイルテーブル１０６へ送り、テーブルの更新処理を行う。続いて、管理計算機１０１の準備対象ＶＭファイル選択部１２８は、アプリケーション別ＶＭファイル順位テーブル作成処理１２０９を行う。この処理については後述する。
【００８７】
−−−処理手順例３−−−
図１２は本実施形態における情報処理方法の手順例３を示すフローチャート図である。このフローは、管理計算機１０１の圧縮対象選択部１１９による、圧縮対象となるＶＭファイルの選択処理に関するフローチャートである。この場合、管理計算機１０１の圧縮対象選択部１１９は、ストレージ部１１８の空き容量不足検知部１２５から、ストレージ容量不足通知を受信する（ステップ１３０１）。なお、空き容量不足検知部１２５は、例えば、定期的に各ストレージにアクセスして空き容量をチェックし、空き容量不足の発生を検知しているものとする。
【００８８】
次に、前記圧縮対象選択部１１９は、前記空き容量不足検知部１２５から受けたストレージ容量不足通知が示す、該当ストレージのストレージＩＤと必要空き容量の情報を、主記憶（メモリ等）に記憶する（ステップ１３０２）。また、前記圧縮対象選択部１１９は、圧縮対象ＶＭファイルリスト１２４を空のオブジェクトとして主記憶上に作成する（ステップ１３０３）。
【００８９】
続いて、前記圧縮対象選択部１１９は、ＶＭファイルテーブル１０６を参照し、前記主記憶に記憶しているストレージＩＤ（＝空き容量不足のストレージのＩＤ）が合致するＶＭファイルを検索する。また前記圧縮対象選択部１１９は、空の圧縮対象ＶＭファイルリスト１２４に、前記検索で得られたＶＭファイルＩＤを追加する。このとき圧縮対象選択部１１９は、圧縮対象ＶＭファイルリストにおける、圧縮回避フラグ７０２を「Ｏｆｆ」、節約ストレージ容量７０３を「０」、圧縮判定結果７０４を「Ｏｆｆ」にする（ステップ１３０４）。
【００９０】
圧縮対象ＶＭファイルリスト１２４に情報を書き込んだ圧縮対象選択部１１９は、ストレージ部１１８の圧縮量計算部１２２に対し、前記圧縮対象ＶＭファイルリスト１２４を送信する（ステップ１３０５）。
【００９１】
一方、ストレージ部１１８の圧縮量計算部１２２は、前記圧縮対象選択部１１９から受信した圧縮対象ＶＭファイルリスト１２４が含む、各ＶＭファイルＩＤを読み取る。また、圧縮量計算部１２２は、前記読み取ったＶＭファイルＩＤに対応するＶＭファイルを圧縮した場合の節約ストレージ容量を算定し、圧縮対象ＶＭファイルリスト１２４に追記する（ステップ１３０６）。また、圧縮量計算部１２２は、圧縮対象ＶＭファイルリスト１２４を前記圧縮対象選択部１１９に送信する（ステップ１３０７）。なお、本実施形態の情報処理装置たる管理計算機１０１の処理と区別するため、圧縮量計算部１２２での処理について本フロー中では該当ステップのカラムを破線としている。
【００９２】
続いて、管理計算機１０１の圧縮対象選択部１１９は、アプリケーション種別テーブル１０４を参照し、アプリケーション種別ごとの使用頻度を（式１）に適用し、上位確保数を計算する（ステップ１３０８）。この上位確保数は、アプリケーション種別ごとに計算する。（式１）として、例えば以下の式を採用する。  
2012226599.tif 000003
この計算式は、アプリケーション種別全体での使用頻度総和を「１」としたときの、所定アプリケーション種別の使用頻度の相対値を求め、この相対値に総上位確保数を乗算し、該当アプリケーション種別に対する上位確保数を算定する式である。
【００９３】
上記式１に基づく計算に使用される「総上位確保数」は、図１に示すとおり、管理計算機１０１に搭載されたメモリ１０３に格納されている。従って、「総上位確保数」の値は、圧縮対象選択部１１９からアクセスできるデータである。「総上位確保数」のデータの内容は数値である。上記計算で得られた数値、すなわち上位確保数が整数でなければ、小数点以下を切り上げる、もしくは切り下げる演算を行って整数に変換しても良い。
【００９４】
続いて管理計算機１０１の圧縮対象選択部１１９は、各アプリケーションに関するＶＭファイル順位テーブル１０７を上位より参照し、上位確保数分のＶＭファイルＩＤを参照する（ステップ１３０９）。また圧縮対象選択部１１９は、前記ステップ１３０９で参照したＶＭファイルＩＤのうち、圧縮対象ＶＭファイルリスト１２４に合致するＶＭファイルＩＤがあれば、圧縮対象ＶＭファイルリスト１２４における該当レコードにおいて圧縮回避フラグを「Ｏｎ」にする。
【００９５】
次に、圧縮対象選択部１１９は、例えば主記憶において総節約ストレージ容量を一旦ゼロとしておく（ステップ１３１０）。また圧縮対象選択部１１９は、圧縮対象ＶＭファイルリスト１２４の残りタプルがあり、かつ総節約ストレージ容量＜必要空き容量かどうか調べる（ステップ１３１１）。
【００９６】
前記ステップ１３１１において、もし圧縮対象ＶＭファイルリスト１２４の残りタプルがあり、かつ総節約ストレージ容量＜必要空き容量であれば（１３１１：ＹＥＳ）、圧縮対象選択部１１９は処理をステップ１３１２へ進める。他方、圧縮対象ＶＭファイルリスト１２４の残りタプルがあり、かつ総節約ストレージ容量＜必要空き容量、との条件を満たさない状況であれば（１３１１：ＮＯ）、前記圧縮対象選択部１１９は処理を終了する。
【００９７】
ステップ１３１２において、前記圧縮対象選択部１１９は、圧縮対象ＶＭファイルリスト１２４を下位タプルから参照する。また圧縮対象選択部１１９は、参照したレコードについて圧縮回避フラグが「Ｏｆｆ」かどうか調べる（ステップ１３１３）。  
もし圧縮回避フラグが「Ｏｆｆ」であれば（１３１３：ＹＥＳ）、圧縮対象選択部１１９は、処理をステップ１３１４へ進める。他方、圧縮回避フラグが「Ｏｆｆ」でなければ（１３１３：ＮＯ）、前記圧縮対象選択部１１９は処理をステップ１３１１へ戻す。
【００９８】
前記ステップ１３１３において、圧縮回避フラグが「Ｏｆｆ」であった場合、圧縮対象選択部１１９は、該当レコードの圧縮判定を「Ｏｎ」に設定する（ステップ１３１４）。つまり圧縮対象として選定したことになる。
【００９９】
次に、前記圧縮対象選択部１１９は、前記主記憶に保持していた総節約ストレージ容量に、前記圧縮判定を「Ｏｎ」としたＶＭファイルに関する、節約ストレージ容量を加算する。また、圧縮対象選択部１１９は、ストレージ部１１８の圧縮実行部１２３に対し、ネットワーク５を介して、圧縮対象ＶＭファイルリスト１２４を送信する（ステップ１３１５）。
【０１００】
一方、ストレージ部１１８の圧縮実行部１２３は、圧縮対象ＶＭファイルリスト１２４を管理計算機１０１から受信し、この圧縮対象ＶＭファイルリスト１２４において、圧縮判定が「Ｏｎ」であるＶＭファイルに対する圧縮処理を実行する（ステップ１３１６）。
【０１０１】
以上のような、ファイル圧縮対象の選択処理により、ＶＭファイルの圧縮（ないしアーカイブ）に際し、アプリケーション種別ごとに上位確保数分のＶＭファイルは確保し、残りのＶＭファイルから圧縮対象となるＶＭファイルを選択して圧縮することができる。これにより、各アプリケーション種別に対して実行準備の高速化が期待できるＶＭファイルを、アプリケーション使用頻度に応じた一定数分確保することができる。従って、所定のアプリケーションの実行準備時間が極端に悪化するのを防ぎつつ、ＶＭスプロールも回避することができる。
【０１０２】
−−−処理手順例４−−−
図１３は本実施形態における情報処理方法の手順例４を示すフローチャート図である。このフローは、管理計算機１０１のＶＭ情報収集部１１７におけるＶＭ情報集計処理のフローチャートである。この場合、管理計算機１０１のＶＭ情報収集部１１７は、計算機部１２０の各計算機から、図６で示したようなＶＭ状態データを受信する（ステップ１５０１）。当然、各計算機では自身で稼働中のＶＭに関する監視情報を、管理計算機１０１に対して定期的にアップロードする機能を備えている。
【０１０３】
続いて前記ＶＭ情報収集部１１７は、計算機から受信したＶＭ状態データより、該当ＶＭのＶＭファイルＩＤ、およびその起動状態のデータを抽出する（ステップ１５０２）。また、ＶＭ情報収集部１１７は、前記抽出したデータを、ＶＭファイルテーブル１０６における該当ＶＭファイルＩＤのレコードに照合し、該当ＶＭファイルに状態更新が生じたか判定する（ステップ１５０３）。ＶＭファイルに状態更新が生じている場合（１５０３：ＹＥＳ）、ＶＭ情報収集部１１７は処理をステップ１５０４へ進める。他方、ＶＭファイルに状態更新が生じていなければ（１５０３：ＮＯ）、ＶＭ情報収集部１１７は処理を終了する。前記ステップ１５０４において、ＶＭ情報収集部１１７は、前記状態更新が生じているＶＭファイルについて、ＶＭファイルテーブル１０６における該当レコードに対し、例えば「使用中」３０２のデータ更新を行う（ステップ１５０４）。
【０１０４】
−−−処理手順例５−−−
図１４は本実施形態における情報処理方法の手順例５を示すフローチャート図である。このフローは、定期的に実行される、ＶＭファイル順序作成部１２６によるアプリケーション別ＶＭファイル順位テーブル１０７の作成処理を示すフローチャートである。この場合、まず管理計算機１０１のＶＭファイル順序作成部１２６は、アプリケーション種別テーブル１０４を上位から（例：レコードの登録順）参照し、高速化手法テーブルＩＤ２０２の値を取得する（ステップ１６０１）。
【０１０５】
また、ＶＭファイル順序作成部１２６は、高速化手法テーブルＩＤに相当するアプリケーション別高速化手法テーブル１０５を取得する（ステップ１６０２）。また、ＶＭファイル順序作成部１２６は、ＶＭファイルテーブル１０６におけるレコードを上位から参照する（ステップ１６０３）。この時、ＶＭファイルテーブル１０６において参照すべき、残りのレコード（＝残りのＶＭファイル）があるか判定する（ステップ１６０４）。もし参照すべきレコードすなわちＶＭファイルがまだ残っている場合（ステップ１６０４：ＮＯ）、ＶＭファイル順序作成部１２６は、処理をステップ１６０５へ進める。他方、参照すべきレコードすなわちＶＭファイルが残っていない場合（ステップ１６０４：ＮＯ）、ＶＭファイル順序作成部１２６は処理を終了する。
【０１０６】
参照すべきレコードすなわちＶＭファイルがまだ残っている場合（ステップ１６０４：ＮＯ）、ＶＭファイル順序作成部１２６は、高速化効果をゼロとして主記憶に記録する（ステップ１６０５）。  
例えば、ＶＭファイル順序作成部１２６は、適用済み高速化手法リストを空のリストとし、主記憶に記録する（ステップ１６０６）。また、ＶＭファイル順序作成部１２６は、前記ステップ１６０３で参照したＶＭファイルの各情報を主記憶に記録する（ステップ１６０７）。
【０１０７】
次にＶＭファイル順序作成部１２６は、高速化手法テーブル１０５を上位タプルから参照する（ステップ１６０８）。またこの時、ＶＭファイル順序作成部１２６は、高速化手法テーブル１０５において参照すべき残りの高速化手法があるか判定する（ステップ１６０９）。ここで、残りの高速化手法がある場合（ステップ１６０９：ＮＯ）、ＶＭファイル順序作成部１２６は、処理をステップ１６１０へ進める。他方、残りの高速化手法が無い場合（ステップ１６０９：ＹＥＳ）、ＶＭファイル順序作成部１２６は処理をステップ１６１４へ進める。
【０１０８】
前記ステップ１６０９において、残りの高速化手法があると判定した場合、ＶＭファイル順序作成部１２６は、主記憶中のＶＭファイルの各情報に、高速化手法の条件４０２の情報を照合させ、ＶＭファイル毎に各高速化手法の適用条件を満たすか判定する（ステップ１６１０）。この判定において、所定のＶＭファイルが、所定の高速化手法の適用条件を満たす場合（ステップ１６１１：ＹＥＳ）、ＶＭファイル順序作成部１２６は、処理をステップ１６１２へ進める。他方、前記適用条件を満たさない場合（ステップ１６１１：ＮＯ）、ＶＭファイル順序作成部１２６は処理をステップ１６０９へ戻す。
【０１０９】
ステップ１６１２において、ＶＭファイル順序作成部１２６は、前記ステップ１６１１でＶＭファイルへの適用条件が合致していた高速化手法について、高速化手法テーブル１０５のタプルに含まれる「効果」の数値を、主記憶に保持している高速化効果の値に加算する（ステップ１６１２）。また、ＶＭファイル順序作成部１２６は、前記ステップ１６１２で処理対象となった高速化手法について、高速化手法テーブル１０５の該当タプルに含まれる高速化手法ＩＤを、前記ステップ１６０６で主記憶に作成しておいた適用済み高速化手法のリストに追加する（ステップ１６１３）。
【０１１０】
一方、ステップ１６１４において、ＶＭファイル順序作成部１２６は、全ての高速化手法の適用を試みて処理を終えたＶＭファイルの情報を得ているから、ＶＭファイル順位テーブル１０７に対し、高速化効果の順に前記ＶＭファイルの情報を追記する（ステップ１６１４）。また、ＶＭファイル順序作成部１２６は、主記憶に保持している適用済み高速化手法リストの内容を、ＶＭファイル順位テーブル１０７における該当レコードでの「適用した高速化手法」の列に記録する。
【０１１１】
なお本実施形態においては、ＶＭスプロールを回避する場合の処理として、ＶＭファイルの圧縮処理を採用した例を示した。しかしこれに限定されることはなく、ファイル重複排除、アーカイブ処理など他のファイルサイズ縮小技術を用いても同様に実施できる。
【０１１２】
なお、本発明は、上記実施の形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化することができる。また、上記実施の形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成することができる。例えば、実施の形態に示される全構成要素からいくつかの構成要素を削除してもよい。さらに、異なる実施の形態にわたる構成要素を適宜組み合わせても良い。
【０１１３】
以上、本発明を実施するための最良の形態などについて具体的に説明したが、本発明はこれに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。
【０１１４】
こうした本実施形態によれば、クラウドシステムにおけるＶＭスプロールを回避しながら、アプリケーション準備時間を最適化することが可能となる。
【０１１５】
本明細書の記載により、少なくとも次のことが明らかにされる。すなわち、前記情報処理装置において、演算部は、前記特定した、各仮想計算機に適用可能な高速化手法の高速化効果に基づき、アプリケーション毎の高速化効果の大きさで仮想計算機の情報をソートして第４テーブルを生成し、アプリケーション毎に、前記仮想計算機確保数の分だけ、前記第４テーブルにおいて高速化効果が大きい順に仮想計算機を選択し、該選択した仮想計算機以外の仮想計算機を圧縮ないしアーカイブへの移動の対象として選択する、としてもよい。
【０１１６】
また、前記情報処理装置において、前記記憶部は、前記第２テーブルにおいて、所定アプリケーションの実行準備に適用できる高速化手法の適用条件として、１つ以上のソフトウェア名を含み、前記第３テーブルにおいて、仮想計算機の仕様ないし利用状況の少なくともいずれかに関するデータとして、仮想計算機が含む１つ以上のソフトウェア名を含み、前記演算部は、入力部を介しユーザから指定されたアプリケーションないし前記第１テーブルにデータが格納されているいずれかのアプリケーションについて、第２テーブルのデータと第３テーブルのデータを少なくとも前記ソフトウェア名について照合して各仮想計算機に適用可能な高速化手法と高速化効果を特定する処理を実行する、としてもよい。
【０１１７】
また、前記情報処理装置において、前記記憶部は、前記第２テーブルにおいて、所定アプリケーションの実行準備に適用できる高速化手法の適用条件として、１つ以上のデータ名を含み、前記第３テーブルにおいて、仮想計算機の仕様ないし利用状況の少なくともいずれかに関するデータとして、仮想計算機が含む１つ以上のデータ名を含み、前記演算部は、入力部を介しユーザから指定されたアプリケーションないし前記第１テーブルにデータが格納されているいずれかのアプリケーションについて、第２テーブルのデータと第３テーブルのデータを少なくとも前記データ名について照合して各仮想計算機に適用可能な高速化手法と高速化効果を特定する処理を実行する、としてもよい。
【０１１８】
また、前記情報処理装置において、前記記憶部は、前記第２テーブルにおいて、所定アプリケーションの実行準備に適用できる高速化手法の適用条件として、１つ以上のハードウェア名を含み、前記第３テーブルにおいて、仮想計算機の仕様ないし利用状況の少なくともいずれかに関するデータとして、仮想計算機が含む１つ以上のハードウェア名を含み、前記演算部は、入力部を介しユーザから指定されたアプリケーションないし前記第１テーブルにデータが格納されているいずれかのアプリケーションについて、第２テーブルのデータと第３テーブルのデータを少なくとも前記ハードウェア名について照合して各仮想計算機に適用可能な高速化手法と高速化効果を特定する処理を実行する、としてもよい。
【０１１９】
また、前記情報処理装置において、前記演算部は、仮想計算機の実装対象となる１つ以上のストレージについて、ストレージの必要空き容量を算定し、前記第４テーブルで高速化効果下位の仮想計算機から順に圧縮ないしアーカイブの対象を抽出し、抽出した仮想計算機を圧縮処理ないしアーカイブ処理した場合の総節約ストレージ容量が前記必要空き容量に達した時点までに抽出した仮想計算機を圧縮ないしアーカイブへの移動の対象として選択する、としてもよい。
【符号の説明】
【０１２０】
５  ネットワーク
１０１  管理計算機
１０２  ＣＰＵ（演算部）
１０３  メモリ（記憶部）
１０４  アプリケーション種別テーブル（第１テーブル）
１０５  アプリケーション別高速化手法テーブル（第２テーブル）
１０６  ＶＭファイルテーブル（第３テーブル）
１０７  アプリケーション別ＶＭファイル順位テーブル（第４テーブル）
１０８、１１０、１１２  計算機
１０９、１１１、１１３  ストレージ
１１４、１１５  ＶＭファイル（計算機に実装され仮想計算機となる）
１１６  アーカイブ
１１７  ＶＭ情報収集部
１１８  ストレージ部
１１９  圧縮対象選択部
１２０  計算機部
１２１  通信部
１２２  圧縮量計算部
１２３  圧縮実行部
１２４  圧縮対象ＶＭファイルリスト
１２５  空き容量不足検知部
１２６  ＶＭファイル順序作成部
１２７  ユーザ端末
１２８  準備対象ＶＭファイル選択部
【図１】
2012226599.tif 000004
【図２】
2012226599.tif 000005
【図３】
2012226599.tif 000006
【図４】
2012226599.tif 000007
【図５】
2012226599.tif 000008
【図６】
2012226599.tif 000009
【図７】
2012226599.tif 000010
【図８】
2012226599.tif 000011
【図９】
2012226599.tif 000012
【図１０】
2012226599.tif 000013
【図１１】
2012226599.tif 000014
【図１２】
2012226599.tif 000015
【図１３】
2012226599.tif 000016
【図１４】
2012226599.tif 000017
【図１５】
2012226599.tif 000018
【図１６】
2012226599.tif 000019