(57)【要約】【課題】  複数の仮想マシンを複数のサーバで効率良く稼働させる。【解決手段】  仮想マシン管理サーバ２は、ＤＢら各仮想マシンの所定時間毎のパフォーマンスを示す実測データと、各仮想マシンを稼働させる各サーバの記憶容量に関するデータと、各仮想マシンの記憶容量に関するデータと、を読み出し、読み出したデータを算出条件に用いて、複数の仮想マシンの各々を複数のサーバのいずれかで稼働させた場合の各時間における各仮想マシンのパフォーマンスを示す値の合計値が最大となるような、仮想マシンとサーバの組み合わせを算出する。そして、算出した組み合わせに従って、各仮想マシンのファイルをその仮想マシンに対応するサーバの記憶領域に格納して各仮想マシンの再配置を行う。【選択図】  図１
2005115653.tif 000002
【特許請求の範囲】
【請求項１】
複数の仮想マシンを稼働させる複数のサーバとネットワークを介して接続される仮想マシン管理装置であって、
各前記仮想マシンの所定時間毎のパフォーマンスを示す実測データをデータベースから読み出す読出手段と、
前記読み出した各前記仮想マシンの所定時間毎のパフォーマンスを示す実測データを用いて、各仮想マシンを複数のサーバのいずれかで稼働させた場合の各時間における各仮想マシンのパフォーマンス値の合計が最大となる、仮想マシンとサーバの組み合わせを算出する組み合わせ算出手段と、
前記組み合わせ算出手段により算出された仮想マシンとサーバの組み合わせに従って、各仮想マシンのファイルを当該仮想マシンに対応するサーバの記憶領域に格納して各仮想マシンの再配置を行う手段と、
を備えることを特徴とする仮想マシン管理装置。
【請求項２】
前記組み合わせ算出手段は、
前期読み出した各前記仮想マシンの所定時間毎のパフォーマンスを示す実測データを用いて、各仮想マシンを複数のサーバのいずれかで稼働させた場合の各時間における各仮想マシンのパフォーマンス値の合計が最大でかつ、各仮想マシンのパフォーマンス値が所定の最低値以上となる、仮想マシンとサーバの組み合わせを算出する、
ことを特徴とする請求項１に記載の仮想マシン管理装置。
【請求項３】
前記読出手段は、各前記サーバの記憶容量に関するデータと、各前記仮想マシンの記憶容量に関するデータと、を前記データベースからさらに読み出し、
前記組み合わせ算出手段は、前記読出手段により読み出した、各前記仮想マシンの所定時間毎のパフォーマンスを示す実測データと、各前記サーバの記憶容量に関するデータと、各前記仮想マシンの記憶容量に関するデータと、を算出条件に用いて、前記仮想マシンとサーバの組み合わせを算出する、
ことを特徴とする請求項１又は２に記載の仮想マシン管理装置。
【請求項４】
仮想マシンの作成要求を受信する手段と、
各前記サーバの記憶領域の使用量と、前記受信した作成要求が示す仮想マシンのファイル容量と、に基づいて、前記作成要求が示す仮想マシンのファイルを記憶領域に格納可能なサーバを決定する手段と、
前記決定したサーバの記憶領域に、前記作成要求が示す仮想マシンのファイルを格納する手段と、
を備えることを特徴とする請求項１乃至３のいずれか１項に記載の仮想マシン管理装置。
【請求項５】
複数の仮想マシンを稼働させる複数のサーバとネットワークを介して接続されるコンピュータに、
各前記仮想マシンの所定時間毎のパフォーマンスを示す実測データをデータベースから読み出す読出ステップ、
前記読出ステップにより読み出した、各前記仮想マシンの所定時間毎のパフォーマンスを示す実測データを用いて、各仮想マシンを複数のサーバのいずれかで稼働させた場合の各時間における各仮想マシンのパフォーマンス値の合計が最大となる、仮想マシンとサーバの組み合わせを算出する組み合わせ算出ステップ、
前記組み合わせ算出ステップにより算出された仮想マシンとサーバの組み合わせに従って、各仮想マシンのファイルを当該仮想マシンに対応するサーバの記憶領域に格納させて各仮想マシンの再配置を行うステップ、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、複数のサーバに複数の仮想マシンを最適配置する仮想マシン管理装置等に関する。
【背景技術】
【０００２】
従来、サーバのマシン資源をソフトウェアを使って複数に分割して独立させ、１台のサーバ上に複数の仮想マシンを同時に稼働させる仮想マシン（ＶＭ：Vertual Machine）技術が知られている。このような仮想マシンシステムをより効率的に稼働させるために仮想マシンをサーバ上に最適配置する技術が考案されている。
【０００３】
例えば、１台のサーバ上で複数の仮想マシンを稼働させるシステムにおいて、仮想マシンへの資源の割り当てを各仮想マシンの負荷量に応じて動的に行う仮想計算機システムもある（特許文献１参照）。
【特許文献１】特開２００２−２０２９５９号公報（第６頁、第１図）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上記のように、従来のシステムは、複数の仮想マシンを１台のサーバ上で稼働させて管理するものであり、複数台のサーバを用いて仮想マシンを稼働させる場合には、各サーバに配置した仮想マシンをサーバ毎に独立して管理を行うため、仮想マシンの稼働状況等によってはサーバ間に負荷の偏りが生じていた。
【０００５】
本発明は、上記実状に鑑みてなされたものであり、複数の仮想マシンを複数のサーバで効率良く稼働させることができる仮想マシン管理装置等を提供することを目的とする。
また、本発明は、複数のサーバにまたがって仮想マシンの最適配置を行うことができる仮想マシン管理装置等を提供することを他の目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するため、この発明の第１の観点に係る仮想マシン管理装置は、
複数の仮想マシンを稼働させる複数のサーバとネットワークを介して接続される仮想マシン管理装置であって、
各前記仮想マシンの所定時間毎のパフォーマンスを示す実測データをデータベースから読み出す読出手段と、
前記読み出した各前記仮想マシンの所定時間毎のパフォーマンスを示す実測データを用いて、各仮想マシンを複数のサーバのいずれかで稼働させた場合の各時間における各仮想マシンのパフォーマンス値の合計が最大となる、仮想マシンとサーバの組み合わせを算出する組み合わせ算出手段と、
前記組み合わせ算出手段により算出された仮想マシンとサーバの組み合わせに従って、各仮想マシンのファイルを当該仮想マシンに対応するサーバの記憶領域に格納して各仮想マシンの再配置を行う手段と、
を備えることを特徴とする。
【０００７】
このような構成によれば、全ての仮想マシンサーバの資源を利用して各仮想マシンのパフォーマンスが最大となるような仮想マシンと仮想マシンサーバの組み合わせを求め、この組み合わせに基づいて仮想マシンの配置を行うため、複数のサーバにまたがって仮想マシンの最適配置を行うことを可能とし、複数の仮想マシンを複数のサーバで効率良く稼働させることができる。
【０００８】
前記組み合わせ算出手段は、
前期読み出した各前記仮想マシンの所定時間毎のパフォーマンスを示す実測データを用いて、各仮想マシンを複数のサーバのいずれかで稼働させた場合の各時間における各仮想マシンのパフォーマンス値の合計が最大でかつ、各仮想マシンのパフォーマンス値が所定の最低値以上となる、仮想マシンとサーバの組み合わせを算出してもよい。
【０００９】
前記読出手段は、各前記サーバの記憶容量に関するデータと、各前記仮想マシンの記憶容量に関するデータと、を前記データベースからさらに読み出してもよく、
前記組み合わせ算出手段は、前記読出手段により読み出した、各前記仮想マシンの所定時間毎のパフォーマンスを示す実測データと、各前記サーバの記憶容量に関するデータと、各前記仮想マシンの記憶容量に関するデータと、を算出条件に用いて、前記仮想マシンとサーバの組み合わせを算出してもよい。
【００１０】
仮想マシンの作成要求を受信する手段と、
各前記サーバの記憶領域の使用量と、前記受信した作成要求が示す仮想マシンのファイル容量と、に基づいて、前記作成要求が示す仮想マシンのファイルを記憶領域に格納できるサーバを選択する手段と、
前記選択したサーバの記憶領域に、前記作成要求が示す仮想マシンのファイルを格納させる手段と、
を備えてもよい。
【００１１】
また、この発明の第２の観点に係るプログラムは、
複数の仮想マシンを稼働させる複数のサーバとネットワークを介して接続されるコンピュータに、
各前記仮想マシンの所定時間毎のパフォーマンスを示す実測データをデータベースから読み出す読出ステップ、
前記読出ステップにより読み出した、各前記仮想マシンの所定時間毎のパフォーマンスを示す実測データを用いて、各仮想マシンを複数のサーバのいずれかで稼働させた場合の各時間における各仮想マシンのパフォーマンス値の合計が最大となる、仮想マシンとサーバの組み合わせを算出する組み合わせ算出ステップ、
前記組み合わせ算出ステップにより算出された仮想マシンとサーバの組み合わせに従って、各仮想マシンのファイルを当該仮想マシンに対応するサーバの記憶領域に格納させて各仮想マシンの再配置を行うステップ、
を実行させる。
【発明の効果】
【００１２】
本発明によれば、複数の仮想マシンを複数のサーバで効率良く稼働させることができる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の実施の形態に係る仮想マシンシステムを図面を参照して説明する。
本発明の実施形態に係る仮想マシンシステムの構成を図１に示す。この仮想マシンシステムは、クライアント端末１と、仮想マシン管理サーバ２と、仮想マシンサーバ３と、ファイルサーバ４と、を備える。仮想マシン管理サーバ２と、仮想マシンサーバ３と、ファイルサーバ４は、インターネット等のネットワーク１０により接続されている。また、クライアント端末１は、ＬＡＮ等のネットワークを介して仮想マシン管理サーバ２に接続されている。
【００１４】
クライアント端末１は、管理者により操作される端末であり、制御部、記憶部、表示部、入力部、通信制御部等を備えるコンピュータから構成される。クラアイント端末１の制御部は、記憶部に記憶される動作プログラム等を読み出して実行することにより、仮想マシン管理サーバ２に接続し、各種要求の送信、送信した要求に応じたデータの受信及び表示等の処理を行う。
【００１５】
仮想マシン管理サーバ２は、例えば図２に示すように、記憶部２１、制御部２２、通信制御部２３等を備えるコンピュータから構成される。
【００１６】
記憶部２１は、例えば、ハードディスク装置等から構成される。記憶部２１は、制御部２２が実行するための動作プログラム及び処理に必要な各種データを記憶する。また、記憶部２１は、ＶＭサーバ管理ＤＢ２１１、ファイルサーバ管理ＤＢ２１２、ＶＭ管理ＤＢ２１３、ＶＭイメージファイル管理ＤＢ２１４、稼働状況管理ＤＢ２１５等を備える。
【００１７】
ＶＭサーバ管理ＤＢ２１１は、各仮想マシンサーバ３に関する情報（仮想マシンサーバ情報）を記憶する。仮想マシンサーバ情報は、例えば図３に示すように、仮想マシンサーバ名、ホストＯＳ名、仮想マシンソフトウェア名、ＩＰアドレス、ＣＰＵサイクル数、メモリ容量、ハードディスク容量、ハードディスクＩＯ帯域幅、ネットワークＩＯ帯域幅、ベンチマーク結果、当該仮想マシンサーバで稼働する仮想マシンの仮想マシンＩＤ等のデータを含む。
【００１８】
ファイルサーバ管理ＤＢ２１２は、各ファイルサーバ４に関する情報（ファイルサーバ情報）を記憶する。ファイルサーバ情報は、例えば図４に示すように、ＩＰアドレス、サーバ名、ハードディスク容量等のデータを含む。
【００１９】
ＶＭ管理ＤＢ２１３は、各仮想マシンサーバ３上で稼働させる仮想マシンに関する情報（仮想マシン情報）を記憶する。仮想マシン情報は、例えば図５に示すように、仮想マシンＩＤ、ユーザ名、ＯＳ名、ＣＰＵサイクル、メモリ容量、ハードディスク容量、ＩＰアドレス、当該仮想マシンのパフォーマンスデータを特定するためのパフォーマンスＩＤ等のデータを含む。
【００２０】
ＶＭイメージファイル管理ＤＢ２１４は、仮想マシンのイメージファイル（ディスクやメモリの内容をそのままファイル化したもの）に関する情報（イメージファイル情報）を記憶する。イメージファイル情報は、例えば図６に示すように、イメージファイル名（モデル名）、ＯＳ名、メモリ容量、ハードディスク容量、各ソフトウェア名、当該イメージファイル保存先のファイルサーバのＩＰアドレス、当該イメージファイル保存先のファイルパス等のデータを含む。
【００２１】
稼働状況管理ＤＢ２１５は、各仮想マシンについて所定時間毎（例えば１時間毎）に取得された、パフォーマンスの実測データ（パフォーマンスデータ）を所定期間分（例えば、１ヶ月分）記憶する。本実施例では、例えば図７に示すように、１時間毎（０時、１時、・・・、２３時）に取得された１ヶ月分のパフォーマンスデータが仮想マシンＩＤ毎に記憶されることとする。
【００２２】
制御部２２は、ＣＰＵ（Central Processing Unit）、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）等から構成され、仮想マシン管理サーバ２全体を制御する。制御部２２は、記憶部２１に予め記憶された動作プログラム等を読み出して実行することにより、ＶＭ（仮想マシン：Vertual Machine）サーバ管理部２２１、ＶＭ最適配置部２２２、ＶＭ自動作成部２２３等を論理的に実現する。
【００２３】
ＶＭサーバ管理部２２１は、クライアント端末１からの仮想マシン一覧要求を受信すると、各仮想マシンサーバ３に配置されている全仮想マシンのＩＤ（仮想マシンＩＤ）を記憶部２１のＶＭサーバ管理ＤＢ２１１から読み出す。そして、読み出した各仮想マシンＩＤに対応する仮想マシン情報をＶＭ管理ＤＢ２１３から読み出し、読み出した仮想マシン情報の全部又は一部を表示する画面データを生成して要求元のクライアント端末１に送信する。
【００２４】
ＶＭ最適配置部２２２は、稼働状況管理ＤＢ２１５に記憶されている各仮想マシンのパフォーマンスデータに基づいて、各仮想マシンのパフォーマンスが最大になるような仮想マシンサーバ３と仮想マシンの組み合わせを算出し、算出した組み合わせに基づいて各仮想マシンを再配置する最適配置処理を行う。通常、ユーザが仮想マシンを使用する場合、ユーザ毎に利用する時間帯が異なることが想定されるため、この最適配置処理では、各仮想マシンの稼働する時間帯が異なることに着目した最適配置を行うものである。
【００２５】
具体的には、まず、各仮想マシンのパフォーマンスが最大となるような仮想マシンサーバと仮想マシンの組み合わせを求めるために、例えば、ＶＭ管理ＤＢ２１３に登録されている全仮想マシンＭｉ（ｉ＝１、２、・・・、Ｎ）を各仮想マシンサーバＳｊ（ｊ＝１，２，・・・，Ｊ）上に配置した場合に出来るだけ多くの仮想マシンＭｉの性能ａｉが、出来るだけ多くの時間ｔ（ｔ＝１，２，・・・，２３（時））で最大となる組み合わせを、以下の（１）〜（３）に示す算出方法に従って算出する。なお、仮想マシンＭｉのハードディスク容量をｈｉ（ｉ＝１，２，・・・）、メモリ容量をｒｉ（ｉ＝１，２，・・・）、仮想マシンサーバＳｊのハードディスク容量をＨｊ（ｊ＝１，２，・・・）、メモリ容量をＲｊ（ｊ＝１，２，・・・）、性能をＡｊ（ｊ＝１，２，・・・）とし、これらのデータは記憶部２１に記憶されている。また、性能Ａｊは例えばベンチマークテストの実行結果等である。また、ｘｉｊは、仮想マシンサーバＳｊにおける仮想マシンＭｉの配置の有無を示すものであり、仮想マシンＭｉを仮想マシンサーバＳｊに配置する場合にはｘｉｊ＝１とし、配置しない場合にはｘｉｊ＝０とする。
また、Ｙｉｊは、仮想マシンサーバＳｊにおける仮想マシンＭｉの電源ＯＮ／ＯＦＦを示すものであり、仮想マシンＭｉの電源が入っている場合には、Ｙｉｊ＝１とし、入っていない場合には、、Ｙｉｊ＝０とする。また、再配置後における仮想マシンＭｉの稼働時の性能ａｉは、予め設定されている仮想マシンの最低性能ａｍｉｎ以上であることとする。
【００２６】
（１）仮想マシンサーバＳｊ（ｊ＝１，２，・・・）上において、各時間（時刻）ｔに稼働している仮想マシン数ｎｊｔを、各時間における仮想マシンのパフォーマンスの実測データに基づいて算出する。この稼働マシン数ｎｊｔの算出処理の詳細については後述する。
（２）（数６）式の条件を満たす仮想マシンＭｉのｔ時（ｔ＝０，１，・・・，２３）での性能ａｉｔを（数１）式により求める。
（３）（数１）式、（数３）式、（数４）式、（数５）式の条件下で、（数２）式の値が最大となる組み合わせを組み合わせ最適化アルゴリズム等を用いて算出する。使用する組み合わせ最適化アルゴリズムは任意であり、例えば、遺伝的アルゴリズムやシミュレーティッド・アニーリング手法等を用いてもよい。
【００２７】
（数１）
2005115653.tif 000003
（数２）
2005115653.tif 000004
（数３）
2005115653.tif 000005
（数４）
2005115653.tif 000006
（数５）
2005115653.tif 000007
（数６）
2005115653.tif 000008
【００２８】
ＶＭ最適配置部２２２は、上記（１）〜（３）に示す算出方法に従って算出した組み合わせに基づいて、ファイルサーバ４をテンポラリ領域として利用する等して、各仮想マシンのイメージファイルを当該仮想マシンに対応する仮想マシンサーバ３の記憶領域にコピーすることにより、各仮想マシンの再配置を行う。
また、ＶＭ最適配置部２２２は、各仮想マシンサーバ３からパフォーマンスデータを受信し、稼働状況管理ＤＢ２１５に記録する。
【００２９】
ＶＭ自動作成部２２３は、クライアント端末１からの仮想マシンの作成要求に応答して、仮想マシンを自動作成する処理を行う。具体的には、クライアント端末１からの仮想マシンの作成要求を受信すると、ＶＭイメージファイル管理ＤＢ２１４に登録されているイメージファイル情報を読み出し、その全部又は一部を表示する画面データを生成してクライアント端末１に送信する等して、ユーザ（管理者）によるイメージファイル名の入力を受け付ける。そして、入力されたイメージファイル名のイメージファイルについて、イメージファイル情報からイメージファイル保存先のファイルサーバ４のＩＰアドレス、当該イメージファイル保存先のファイルパス等のデータを取得し、選択されたイメージファイルのコピー先の仮想マシンサーバ３を決定し、ファイルサーバ４から該当するイメージファイルを読み出して仮想マシンサーバ３にコピーする。
【００３０】
通信制御部２３は、ネットワーク１０を介して他のコンピュータとの間でデータ通信を行うためのものである。
【００３１】
仮想マシンサーバ３は、仮想マシンを動作させるためのサーバであり、制御部、記憶部、通信制御部等を備えるコンピュータから構成される。
制御部は、ＣＰＵ、ＲＯＭ、ＲＡＭ等から構成され、ハードディスク等の記憶部に予め記憶された各種プログラム等を読み出して実行することにより、複数の仮想マシンを論理的に実現する。仮想マシンサーバ３の論理構成の概略図の一例を図８に示す。図示されるように、物理マシン（ＣＰＵ、メモリ、ハードディスク等）を制御するＯＳ（ホストＯＳ）等の上に、仮想マシンを制御するソフトウェア（仮想マシン制御プログラム）があり、例えば、この仮想マシン制御プログラムが、仮想マシンサーバ３の資源（プロセッサ、メモリ、ハードウェア等）を分割し、分割された資源を独立して使用する各仮想マシンを実現する。各仮想マシンの記憶部（割り当てられたメモリ又はハードディスク）には、ＯＳ、アプリケーション等の各種プログラム、仮想マシンＩＤ等の各種データが記憶される。各仮想マシンは、パフォーマンスデータを取得するプログラム（パフォーマンス取得プログラム）を所定時間毎（本実施例では１時間間隔）に実行し、実行結果（パフォーマンスデータ）を仮想マシンＩＤ、時刻データ（実行時刻等）等の情報とともに、仮想マシン管理サーバ２に送信する。なお、パフォーマンスデータは仮想マシンの性能を表すデータであればよく、その内容は任意であり、例えばＣＰＵ稼働率でもよく、また、所定の計算処理を実行させて結果が出力されるまでの時間でもよい。
【００３２】
ファイルサーバ４は、制御部、記憶部、通信制御部等を備えるコンピュータから構成される。ファイルサーバ４の記憶部は、仮想マシンのイメージファイルを記憶しており、仮想マシン管理サーバ２からの要求に応じて、指定されたイメージファイルを読み出して送信する。
【００３３】
次に、本実施形態に係る仮想マシンシステムの動作について説明する。
まず、仮想マシンを自動的に作成する自動作成処理について図９のフローチャートを参照して説明する。
まず、仮想マシン管理サーバ２の制御部２２は、クライアント端末１からの仮想マシンの作成要求に応じて、ＶＭイメージファイル管理ＤＢ２１４に登録されているイメージファイル情報を表示するとともに、イメージファイルを特定する情報（例えば、イメージファイル名等）の入力を受け付ける画面のデータをクライアント端末１に供給し、ユーザ（管理者）により入力されたイメージファイル名等のデータを受信する（ステップＳ１）。そして、入力されたイメージファイル名等に対応するイメージファイル情報をＶＭイメージファイル管理ＤＢ２１４から読み出し、指定されたイメージファイルが保存されているファイルサーバ４のＩＰアドレス、ファイルパス等を取得する（ステップＳ２）。
【００３４】
次に、制御部２２は、仮想マシンサーバテーブルを初期化する（ステップＳ３）。仮想マシンサーバテーブルとは、仮想マシンサーバ３のＩＰアドレスと、各ＩＰアドレスに対応する候補フラグと、が設定されるサーバ決定テーブルであり、この初期化処理では、ＶＭサーバ管理ＤＢ２１１に登録されている全ての仮想マシンサーバ３のＩＰアドレスをテーブルに設定するとともに、全てのＩＰアドレスに対応する候補フラグに”０”を設定する。
【００３５】
次に、制御部２２は、サーバ決定テーブルからランダムにＩＰアドレスを選択し、選択したＩＰアドレスの仮想マシンサーバ３の仮想マシン情報をＶＭサーバ管理ＤＢ２１１を検索して参照し、その仮想マシンサーバ３に、ユーザから指定されたイメージファイルをコピーできるリソースが残っているか否か（即ち、仮想マシンサーバ３のハードディスクの空き容量のデータを取得し、その空き容量がイメージファイルのサイズよりも大きいか等）を判定する（ステップＳ４）。そして、選択された仮想マシンサーバ３に、イメージファイルをコピーできるリソースが残っていると判定された場合（ステップＳ４：ＹＥＳ）、その仮想マシンサーバ３にイメージファイルをコピーして（ステップＳ５）、本処理を終了する。
【００３６】
また、選択された仮想マシンサーバ３に、イメージファイルをコピーできるリソースが残っていないと判定された場合（ステップＳ４：ＮＯ）、その仮想マシンサーバ３に対応する候補フラグに”１”を設定し（ステップＳ６）、サーバ決定テーブルの候補フラグが全て”１”に設定されているかを判定し（ステップＳ７）、全て”１”に設定されている場合には（ステップＳ７：ＹＥＳ）、例えば「仮想マシンサーバを追加してください」等のエラーメッセージの表示画面をクライアント端末１に送信して表示させ（ステップＳ８）、本処理を終了する。
【００３７】
また、サーバ決定テーブルの候補フラグが全て”１”に設定されていない場合には（ステップＳ７：ＮＯ）、ステップＳ４に戻り、次の仮想マシンサーバ３をランダムに決定し、イメージファイルをコピーできるリソースが残っているか否かの判定等を行う処理等を繰り返す。
なお、ステップＳ４における仮想マシンサーバ３を選択する処理では、対応する候補フラグに”１”が設定されていないＩＰアドレスを選択するものとする。具体的には、ランダムに選択したＩＰアドレスに対応するフラグが”１”の場合にはそのＩＰアドレスを棄てて、再度ＩＰアドレスをランダムに選択することを繰り返すようにしてもよく、また、対応する候補フラグに”０”が設定されているＩＰアドレスを先に抽出し、その中からランダムに選択するようにしてもよい。
【００３８】
次に、複数の仮想マシンサーバ３に対して複数の仮想マシンを最適配置するための最適配置処理について図１０のフローチャートを参照して説明する。
まず、仮想マシン管理サーバ２の制御部２２は、各仮想マシンのパフォーマンスデータを稼働状況管理ＤＢ２１５から読み出す（ステップＳ１１）。
次に、制御部２２は、仮想マシンサーバＳｊ（ｊ＝１，２，・・・）上において、各時間（時刻）ｔに稼働している仮想マシン数ｎｊｔを算出する（ステップＳ１２）。
【００３９】
この稼働マシン数ｎｊｔを算出する稼働マシン算出処理の詳細を図１１のフローを参照して説明する。
制御部２２は、所定の初期化処理（ｔ時にサーバＳｊ上で稼働している仮想マシンの数ｎｊｔ＝０，時間ｔ＝０、仮想マシンの電源Ｙｉｊ＝０等）を行う（ステップＳ２１）。
そして、ＶＭサーバ管理ＤＢ２１１に登録されている仮想マシンサーバＳｊの仮想マシンサーバ情報中の仮想マシンＩＤを１つ取り出し、取り出した仮想マシンＩＤに対応するパフォーマンスＩＤをＶＭ管理ＤＢ２１３から取得し、そのパフォーマンスＩＤにより特定されるパフォーマンスデータを稼働状況管理ＤＢ２１５から読み出す（ステップＳ２２）
【００４０】
次に、ステップＳ２２で読み出したパフォーマンスデータに基づいて、その仮想マシンＭｉのｄ日（例えば、１，２，・・・，３０）におけるｔ時（ｔ＝０，１，２，・・・，２３）のパフォーマンスデータの値をＰｉｄｔ、各時間（時刻）ｔにおけるパフォーマンスデータの１ヶ月の平均値をＰｉｔとして、（数７）式により、時間（時刻）ｔにおける仮想マシンＭｉのパフォーマンスの平均値Ｐｉｔを算出する（ステップＳ２３）。
【００４１】
（数７）
2005115653.tif 000009
【００４２】
そして、ステップＳ２３で算出された平均値Ｐｉｔが予め設定された最低パフォーマンス値Ｐｔｈ以上であるか否かを判別し（ステップＳ２４）、最低パフォーマンス値Ｐｔｈ以上である場合には、その仮想マシンＭｉが稼働しているとみなし、稼働マシン数ｎｊｔに１だけ加算するとともに、Ｙｉｊ＝１とする（ステップＳ２５）。
【００４３】
ステップＳ２５の処理の後、又は、ステップＳ２４において平均値Ｐｉｔが最低パフォーマンス値Ｐｔｈより小さいと判別された場合には、仮想マシンサーバＳｊの仮想マシンサーバ情報に登録されている全仮想マシンＩＤについて処理が完了したかを判定し（ステップＳ２６）、完了していない場合には、ステップＳ２２に戻って、次の未処理の仮想マシンＩＤを取り出し、それについて上記の処理（その仮想マシンＭｉが稼働しているかを判定して、稼働している場合には稼働マシン数ｎｊｔに１を加算する処理）を行う。
また、ステップＳ２６において仮想マシンサーバ情報に登録されている全仮想マシンＩＤについて処理が完了したと判定された場合には、ｔ＝２３であるか、即ち、全時間（０〜２３時）について稼働マシン数ｎｊｔを計数する処理が完了したかを判定し（ステップＳ２７）、完了していない場合（ｔ≠２３の場合）には、ｔに１だけ加算して（ステップＳ２８）ステップＳ２３に戻り、次の時間ｔについて上記の処理を行う。
また、ステップＳ２７において、ｔ＝２３であると判定された場合には本処理を終了する。
【００４４】
制御部２２は、上述の算出処理を各仮想マシンサーバＳｊ（ｊ＝１，２，・・・）上について実行し、各仮想マシンサーバＳｊ上で、各時間（時刻）ｔに稼働している仮想マシン数ｎｊｔを算出する。
【００４５】
各仮想マシンサーバＳｊ上の仮想マシン数ｎｊｔを算出した後、制御部２２は、先に示した（数６）式の条件を満たす仮想マシンＭｉのｔ時（ｔ＝０，１，・・・，２３）での性能ａｉｔを、先に示した（数１）式により求めるとともに、各仮想マシンのパフォーマンスが最大になる仮想マシンと仮想マシンサーバの組み合わせ、即ち、先に示した（数１）式、（数３）式、（数４）式、（数５）式の条件下で、先に示した（数２）式の値が最大となる組み合わせを、例えば、遺伝的アルゴリズムやシミュレーティッド・アニーリング手法等の組み合わせ最適化アルゴリズム等を用いて算出することにより、各仮想マシンのパフォーマンスが最大となる組み合わせを求める（ステップＳ１３）。
【００４６】
そして、制御部２２は、ステップＳ１３により各仮想マシンのパフォーマンスが最大となる組み合わせが得られたか否かを判定し（ステップＳ１４）、組み合わせが得られた場合には、ファイルサーバ４をテンポラリ領域として利用する等して、各仮想マシンのイメージファイルを当該仮想マシンに対応する仮想マシンサーバ３の記憶領域にコピーする等して各仮想マシンの再配置を行い（ステップＳ１５）、ＶＭサーバ管理ＤＢ２１１における各仮想マシンサーバ情報における仮想マシンＩＤを変更登録して、本処理を終了する。
また、ステップＳ１４の判定において、組み合わせの解が得られなかったと判定された場合には、例えば「仮想マシンサーバを追加してください」等のエラーメッセージの表示画面をクライアント端末１に送信して表示させ（ステップＳ１６）、本処理を終了する。
【００４７】
以上説明したように、本発明によれば、全ての仮想マシンサーバ３の資源を利用して各仮想マシンのパフォーマンスが最大となるような仮想マシンと仮想マシンサーバ３の組み合わせを求め、この組み合わせに基づいて仮想マシンの配置を行うため、複数のサーバにまたがって仮想マシンの最適配置を行うことを可能とし、複数の仮想マシンを複数のサーバで効率良く稼働させることができる。
【００４８】
この発明は上記実施の形態に限定されず、種々の変形及び応用が可能である。
例えば、上記の各数式は一例であり、各仮想マシンのパフォーマンスを最大とする仮想マシンと仮想マシンサーバの組み合わせを求めるための種々の数式が適用可能である。また、上記説明では、仮想マシンと仮想マシンサーバの組み合わせを算出する際に、仮想マシンと仮想マシンサーバの記憶容量に関する条件式を用いているが、他の性能（例えば、ハードディスクＩＯ帯域幅、ネットワークＩＯ帯域幅等）に関する条件式を用いてもよい。
【００４９】
なお、この発明のシステムは、専用のシステムによらず、通常のコンピュータシステムを用いて実現可能である。例えば、上述の動作を実行するためのプログラムをコンピュータ読み取り可能な記録媒体（ＦＤ、ＣＤ−ＲＯＭ、ＤＶＤ等）に格納して配布し、該プログラムをコンピュータにインストールすることにより、上述の処理を実行する仮想マシン管理サーバ２等を構成してもよい。また、インターネット等のネットワーク１０上のサーバ装置が有するディスク装置に格納しておき、例えばコンピュータにダウンロード等するようにしてもよい。
また、上述の機能を、ＯＳが分担又はＯＳとアプリケーションの共同より実現する場合等には、ＯＳ以外の部分のみを媒体に格納して配布してもよく、また、コンピュータにダウンロード等してもよい。
【図面の簡単な説明】
【００５０】
【図１】本発明の第１の実施形態の仮想マシンシステムの構成を示す図である。
【図２】仮想マシン管理サーバの構成を示す図である。
【図３】仮想マシンサーバ情報のデータ構造の一例を示す図である。
【図４】ファイルサーバ情報のデータ構造の一例を示す図である。
【図５】仮想マシン情報のデータ構造の一例を示す図である。
【図６】イメージファイル情報のデータ構造の一例を示す図である。
【図７】パフォーマンスデータのデータ構造の一例を示す図である。
【図８】仮想マシンサーバの論理構成の概略図の一例をである。
【図９】自動作成処理を説明するためのフローチャートである。
【図１０】最適配置処理を説明するためのフローチャートである。
【図１１】稼働マシン算出処理を説明するためのフローチャートである。
【符号の説明】
【００５１】
１            クライアント端末
２            仮想マシン管理サーバ
３            仮想マシンサーバ
４            ファイルサーバ
１０          ネットワーク
２１          記憶部
２１１        ＶＭサーバ管理ＤＢ
２１２        ファイルサーバ管理ＤＢ
２１３        ＶＭ管理ＤＢ
２１４        ＶＭイメージファイル管理ＤＢ
２１５        稼働状況管理ＤＢ
２２          制御部
２２１        ＶＭサーバ管理部
２２２        ＶＭ最適配置部
２２３        ＶＭ自動作成部
２３          通信制御部
【図１】
2005115653.tif 000010
【図２】
2005115653.tif 000011
【図３】
2005115653.tif 000012
【図４】
2005115653.tif 000013
【図５】
2005115653.tif 000014
【図６】
2005115653.tif 000015
【図７】
2005115653.tif 000016
【図８】
2005115653.tif 000017
【図９】
2005115653.tif 000018
【図１０】
2005115653.tif 000019
【図１１】
2005115653.tif 000020