(57)【要約】【課題】物理マシンの資源とネットワーク機器の資源を有するシステムにおいて、これらの資源を利用する仮想マシンの配置に有効な資源管理技術を提供する。【解決手段】システム管理者が調節可能なパラメータとして、各資源の余剰に関する余剰ポリシを用意する。配置案生成サーバ3の配置案生成プログラム332は、この余剰ポリシの変更に応じて、仮想マシンの配置案を生成する。次に、配置案生成サーバ3の配置案検証プログラム333は、生成された配置案が変更後の余剰ポリシに従うかを検証する。この検証は、物理マシンの資源とネットワーク機器の資源の両方について、それらの使用量をシミュレーションすることで行う。配置案生成サーバ3は、この検証を通過した配置案のみを、性能上の問題が発生しない配置案として管理者端末2を使ってシステム管理者に提示する。【選択図】図2
2010146420.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して接続される機器の資源の管理をサーバ装置により行う余剰資源管理システムであって、
前記サーバ装置は、現在の前記資源の余剰に関する第１の余剰ポリシと、新しい前記資源の余剰に関する第２の余剰ポリシの差に基づいて、前記資源を用いて形成する仮想マシンの配置案を生成する配置案生成部を備える、
ことを特徴とする余剰資源管理システム。
【請求項２】
請求項１に記載の余剰資源管理システムであって、
前記サーバ装置は、生成した仮想マシンの前記配置案が前記第２の余剰ポリシによって拒否されるかどうかを検証する配置案検証部を備える、
ことを特徴とする余剰資源管理システム。
【請求項３】
請求項1に記載の余剰資源管理システムであって、
前記余剰ポリシは、前記資源の最大値に対する当該資源の余剰の割合（以下、余剰率）、前記資源の余剰の絶対値、異なる前記機器における前記資源の余剰率の差、あるいはそれらの組み合わせを基準として設定される、
ことを特徴とする余剰資源管理システム。
【請求項４】
請求項1に記載の余剰資源管理システムであって、
前記配置案生成部は、前記第２の余剰ポリシによって前記資源の余剰が大きくなる場合に、前記第２の余剰ポリシによって拒否される前記資源を有する前記機器を利用する前記仮想マシンを当該機器からの移動対象とし、前記第２の余剰ポリシによって前記資源の余剰が小さくなる場合、当該資源の使用量が少ない前記機器を利用する前記仮想マシンを当該機器からの移動対象とする、
ことを特徴とする余剰資源管理システム。
【請求項５】
請求項２に記載の余剰資源管理システムであって、
前記配置案検証部は、生成した仮想マシンの前記配置案に含まれる前記資源が、前記新しい余剰ポリシによって拒否されるかどうかを検証する、
ことを特徴とする余剰資源管理システム。
【請求項６】
請求項２に記載の余剰資源管理システムであって、
前記配置案検証部は、検証後の前記配置案について、それぞれの前記配置案の特性を表す数値を計算する、
ことを特徴とする余剰資源管理システム。
【請求項７】
請求項６に記載の余剰資源管理システムであって、
前記配置案検証部は、それぞれの前記配置案の特性として、稼働する前記機器の台数、新たに移動させる前記仮想マシンの数、稼動する前記機器であるネットワーク機器のポート数、前記余剰ポリシの変化の大きさ、或いは前記資源各々の余剰の大きさを計算する、
ことを特徴とする余剰資源管理システム。
【請求項８】
請求項１に記載の余剰資源管理システムであって、
前記サーバ装置は、
生成された前記配置案が前記第２の余剰ポリシによって拒否されるかどうかを検証する配置案検証部と、
前記配置案検証部の検証結果を元に、前記配置案の生成に使った前記第２の余剰ポリシに含まれる数値を調節し、新たな余剰ポリシを生成する余剰ポリシ調節部と、
を有することを特徴とする余剰資源管理システム。
【請求項９】
請求項８に記載の余剰資源管理システムであって、
前記余剰ポリシ調整部は、
前記配置案検証部によって拒否された前記配置案のうち、少なくとも一つの前記配置案を拒否しない余剰ポリシを前記新たな余剰ポリシとして生成する、
ことを特徴とする余剰資源管理システム。
【請求項１０】
請求項１に記載の余剰資源管理システムであって、
管理者端末を更に備え、
前記管理者端末は、前記サーバ装置の前記配置案生成部が生成した前記配置案と、前記配置案の生成に用いた前記第２の余剰ポリシの組合せを表示する、
余剰資源管理システム。
【請求項１１】
ネットワークを介して接続される機器の資源の管理をサーバ装置により行う余剰資源管理方法であって、
前記サーバ装置は、現在の前記資源の余剰に関する第１の余剰ポリシと、新しい前記資源の余剰に関する第２の余剰ポリシの差に基づいて、前記資源を用いて形成する仮想マシンの配置案を少なくとも一つ生成し、
生成した仮想マシンの前記配置案が前記第２の余剰ポリシによって拒否されるかどうかを検証する、
ことを特徴とする余剰資源管理方法。
【請求項１２】
請求項１１に記載の余剰資源管理方法であって、
前記サーバ装置は、前記検証の結果を元に、前記配置案の生成に使った前記第２の余剰ポリシに含まれる数値を調節し、新たな余剰ポリシを生成する、
ことを特徴とする余剰資源管理方法。
【請求項１３】
処理部と記憶部とを備え、資源の管理を行うサーバ装置であって、
前記処理部は、現在の前記資源の余剰に関する第１の余剰ポリシと、新しい前記資源の余剰に関する第２の余剰ポリシの差に基づいて、前記資源を用いて形成する仮想マシンの配置案を生成する配置案生成部を備える、
ことを特徴とするサーバ装置。
【請求項１４】
請求項１３に記載のサーバ装置であって、
前記処理部は、生成された仮想マシンの前記配置案が前記新しい余剰ポリシによって拒否されるかどうかを検証する配置案検証部を備える、
ことを特徴とするサーバ装置。
【請求項１５】
請求項１３に記載のサーバ装置であって、
前記処理部は、前記配置案生成部の実行に先んじて、前記資源の余剰に関する前記第２の余剰ポリシを表すデータに基づいて、当該第２の余剰ポリシとは余剰の変化幅が異なる1つ以上の新たな余剰ポリシを生成する余剰ポリシ生成部を備える、
ことを特徴とするサーバ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、各種機器からなるシステムの資源管理、特に仮想化されたサーバ資源およびネットワーク資源等を持つシステムにおける仮想マシン配置などの資源管理技術に関する。
【背景技術】
【０００２】
近年の仮想化技術の発展により、データセンター事業者は、オンデマンドに仮想マシン環境を構築するサービスを提供し始めている。
【０００３】
これらのサービスでは、必要な資源の量が全く異なる仮想マシンが、1つのデータセンターに混在するようになる。例えば、資源としての中央処理部（Central Processing Unit、CPU）の利用は多いが、資源としてのネットワーク帯域はほとんど使わない仮想マシンと、CPU利用は少ないがネットワーク帯域は多く消費する仮想マシンが混在することもあり得る。これは、サーバとネットワークの両方が仮想化されたことで、複数の顧客を1つのデータセンターに収容することが出来るようになったことが原因である。
【０００４】
これらのサービスは、最低限利用できる資源の量を保証した上で、顧客に仮想マシンを貸し出すのが一般的である。図26は、その様子を模式的に示した図である。以下の説明では、各機器（物理マシンやスイッチなどのネットワーク機器やストレージ装置等）の資源の最大値から、各仮想マシンに対して最低限保証すべき資源の和を引いた残りを、その資源の余剰と呼ぶ。最低限保証した資源を確実に提供するために、サービス提供時にはこの余剰を確保するのが一般的である。
【０００５】
これらのサービスでは、各種資源の余剰に関して、以下のトレードオフが存在する。
(1) 余剰を小さくしすぎると、顧客に約束した最低限の資源の保証に失敗する（性能上の問題が発生する）恐れがある。
(2) 余剰を大きくしすぎると、稼働させる機器の台数が増加する。結果として、必要以上に電力消費や運用コストが増加する恐れがある。
【０００６】
この資源の余剰を調節するためにはシステム管理者が機器上の仮想マシンの配置を変更する必要がある。データセンターのサービスでは扱う機器が多いため、性能上の問題が発生しない範囲で、サーバ・ネットワーク共に稼働させる機器の台数を減らすことができれば、電力消費や運用コストへの影響は大きい。
【０００７】
しかし、1種類の資源の余剰だけを見て仮想マシンの配置を変更すると、他の資源の余剰が変化し、その性能に悪影響を与える危険性がある。例えば、CPUの余剰だけを見て仮想マシンの配置を変更すると、その結果、帯域の余剰が少ないスイッチが出来てしまい、性能上の問題が発生することがあり得る。従って、システム管理者が、安全な配置案を発見できるための手段が必要である。
【０００８】
安全な仮想マシンの配置を推薦する方法としては、資源の利用率を計算した上で、その利用率を平準化するような配置を推薦する方法が公知である（参考：特許文献１）。また、ストレージ・エリア・ネットワーク（以下、SAN）に関する特許としては、ネットワークの経路上の帯域を考慮して、あるストレージのボリュームの配置変更が安全かどうかをシミュレーションする方法が公知である（参考：特許文献２）。
【０００９】
また、SANに関する特許としては、ストレージ装置のパフォーマンス情報を上限として、仮想マシン（仮想ディスク）に対して物理マシンとしてのストレージ装置の資源を割り当てる方法が公知である（参考：特許文献３）。
【００１０】
【特許文献１】特開２００７−１３３５８６号公報
【特許文献２】特開２００４−０７２１３５号公報
【特許文献３】特表２００８−５２７５５５号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
上述した特許文献１、２、３記載の方法では、システム管理者に対して、資源の余剰を調節するためのパラメータを提供しておらず、余剰を少なくするような配置の推薦が難しい。また、これらの方法では、物理マシンとネットワーク機器の資源の余剰を同時に変更することは考慮していない。
【００１２】
本発明の目的は、資源の余剰の調節に基づいて性能上の問題が発生しない安全な配置を推薦するための余剰資源管理システム、その管理方法、及びサーバ装置を提供することにある。
【００１３】
また、本発明の他の目的は、システム管理者に対して、資源の余剰を調節するための好適なユーザインターフェイスを提供することにある。
【課題を解決するための手段】
【００１４】
本発明では、上記の目的を達成するため、資源の管理をサーバ装置により行う余剰資源管理システムであって、このサーバ装置は、現在の資源の余剰に関する第１の余剰ポリシと新しい資源の余剰に関する第２の余剰ポリシとの差に基づいて、資源を利用して形成する仮想マシンの配置案を少なくとも一つ生成する配置案生成部を備える構成の余剰資源管理システム、およびその管理方法を提供する。
【００１５】
また、このサーバ装置に、生成した仮想マシンの配置案が、新しい第２の余剰ポリシによって拒否されるかどうかを検証する配置案検証部を備える構成の余剰資源管理システム、およびその管理方法を提供する。
【００１６】
更に、このサーバ装置は、生成された仮想マシンの配置案が新しい第２の余剰ポリシによって拒否されるかどうかを検証する配置案検証部に加え、配置案検証部の検証結果を元に、配置案の生成に使った新しい第２の余剰ポリシに含まれる数値を調節し、新たな余剰ポリシを生成する余剰ポリシ調節部を備える構成の余剰資源管理システム、およびその管理方法を提供する。
【００１７】
また更に、この余剰資源管理システムに用いるサーバ装置として、処理部と記憶部とを備え、資源の管理を行うサーバ装置であって、処理部は、現在の前記資源の余剰に関する第１の余剰ポリシと、新しい前記資源の余剰に関する第２の余剰ポリシの差に基づいて、資源を利用して形成する仮想マシンの配置案を生成する配置案生成部を備える構成のサーバ装置を提供する。
【００１８】
すなわち本発明では、システム管理者が調節可能なパラメータとして、データセンターなどのシステムが必ず従わなければならない、各機器の資源の余剰に関する余剰ポリシを用意する。この余剰ポリシは、ある資源の最大値に対するその資源の余剰の割合（以下、余剰率）や、余剰の絶対量などを基準として、資源の余剰に関するポリシを表現する。その一例としては、「すべての物理マシンのCPUの余剰率が30％以上である」、「すべてのスイッチの帯域の余剰の絶対量が200Mbps以上である」などがある。
【００１９】
本発明の配置案を生成するサーバ装置の好適な態様においては、システム管理者がこの余剰ポリシを変更した際に、余剰ポリシの変化に応じて仮想マシンの配置案（配置変更のパターン）を生成する。このとき、配置案生成サーバ装置は、余剰ポリシの変化の方向や変化の幅を利用することで、あり得る仮想マシンの配置案全体よりも少ない数の配置案を生成する。
【００２０】
次に、配置案生成サーバ装置は、これらの生成された配置案が変更後の余剰ポリシに従うかを検証する。この検証は、物理マシンの資源と、ネットワーク機器の資源の両方について、それらの資源の使用量をシミュレーションすることで行う。その結果、配置案生成サーバ装置は、上記の検証を通過した配置案のみを、性能上の問題が発生しない配置案としてシステム管理者に提示する。
【発明の効果】
【００２１】
システム管理者は、各資源の余剰を増減させた場合の、仮想マシンの配置を容易に確認することができる。これにより、システム管理者が、資源の余剰と仮想マシンの配置の関係を直感的に把握できるようになる。
【００２２】
また、配置案生成サーバ装置は、仮想マシンの配置案を生成する際に物理マシンの資源とネットワーク機器の資源の両方を考慮する。これにより、仮想マシンの配置変更によって、他の場所で別の性能上の問題が発生する可能性を下げることができる。
【００２３】
以上の点により、本発明の余剰資源管理システム、管理方法、およびサーバ装置は、データセンター等のシステムの管理者の利便性を向上できる。
【発明を実施するための最良の形態】
【００２４】
以下、本発明の種々の実施形態を図面に従い説明する。なお、本明細書の説明において、現在の余剰ポリシを第１の余剰ポリシ、新しい余剰ポリシを第２の余剰ポリシと呼ぶ場合がある点に留意されたい。また、サーバ装置のメモリに記憶され、CPUで実行されるプログラムを、例えば「配置案生成プログラム」を「配置案生成部」のように、「部」と呼ぶ場合がある点に留意されたい。
【実施例１】
【００２５】
図1に、第１の実施例およびその後の実施例の対象として想定するデータセンターシステムを模式的に示す。仮想化システムは、管理クライアントである管理者端末2、配置案生成サーバ3、統合管理サーバ4、複数の物理マシン5、複数のスイッチ6、複数のルータ7、複数のファイバ・チャネル・スイッチ8（以下、FC-SW）、ストレージ9によって構成される。
【００２６】
なお、管理者端末2、配置案生成サーバ3、統合管理サーバ4は、それぞれ処理部である中央処理部（Central Processing Unit、CPU）、記憶部であるメモリ、インターフェイス（I/F）部、更には入出力部などを有する通常のコンピュータシステムである。これらは、別個のコンピュータシステムで示したが、配置案生成サーバ3と統合管理サーバ4を一個のサーバ装置で実現する等して、より少ない個数のコンピュータシステムで構成することもできる。
【００２７】
これらの機器は、物理的な通信回線10を通して管理ネットワーク1に接続される。また、物理マシン5、スイッチ6、ルータ7、FC-SW 8およびストレージ9は、物理的な通信回線12を通して相互に接続される。ルータ7は、データセンターの顧客が利用するWide Area Network（WAN） 11へと接続される。
【００２８】
管理者端末2は、システム管理者のみが利用できる端末である。管理者端末2の上では、配置案生成サーバ3や統合管理サーバ4のサービスを利用するためのソフトウェア（以下、管理ソフトウェア）が動作する。管理ソフトウェアは、専用の通信プロトコルを利用するGUI（Graphical User Interface）や、HTTP(HyperText Transfer Protocol)で通信するWebブラウザなどである。
【００２９】
配置案生成サーバ3は、管理クライアントである管理者端末2から与えられる情報に基づいて、仮想マシンの新しい配置案を生成するサーバである。配置案生成サーバ3は、配置案を生成するだけでなく、統合管理サーバ4を通して、配置案に基づいて実環境の設定を変更することもできる。
【００３０】
統合管理サーバ4は、管理者端末2または配置案生成サーバ3から与えられる情報に基づいて、仮想マシンの配置や仮想ネットワークの設定（VLAN設定など）を変更するサーバである。統合管理サーバ4は管理ネットワーク1を通して、物理マシン5などの管理ポートに接続し、各種設定を変更する。
【００３１】
物理マシン5は、その上で仮想マシンを動作させることのできるサーバ機器である。物理マシン5の上で仮想マシンを動作させる方法としては、一般に「ハイパーバイザー」あるいは「仮想マシンモニタ」と呼ばれるソフトウェアを動作させる方法などがある。統合管理サーバ4は、物理マシン5の管理インターフェイスを通して、物理マシン上で動作する仮想マシンを変更することができる。
【００３２】
スイッチ6は、ルータ7と、物理マシン5の上で動作する仮想マシンの間のトラフィックを仲介するネットワーク機器である。本実施例のデータセンターネットワークでは複数の顧客のトラフィックが混在するため、スイッチ6は顧客毎のネットワークを仮想的に分割する仮想化機能（VLANなど）に対応している必要がある。統合管理サーバ4は、スイッチ6の管理インターフェイスを通して、仮想化機能の設定を変更することができる。
【００３３】
ルータ7は、データセンターネットワークと、顧客の利用するWAN 11を接続するネットワーク機器である。顧客がWANとして広域イーサネット（登録商標）を利用している場合は、このルータの場所にスイッチを設置することもあり得る。統合管理サーバ4は、ルータ7の管理インターフェイスを通して、仮想化機能の設定を変更することができる。
【００３４】
FC-SW 8は、物理マシン5の上で動作する仮想マシンと、ストレージ9の間のトラフィックを仲介するネットワーク機器である。本実施例のデータセンターネットワークでは複数の顧客のトラフィックが混在するため、スイッチ6は顧客毎のネットワークを仮想的に分割する仮想化機能（ゾーニングやVSANなど）に対応している必要がある。統合管理サーバ4は、FC-SW 8の管理インターフェイスを通して、仮想化機能の設定を変更することができる。
【００３５】
ストレージ9は、仮想マシンの利用するデータを格納する機器である。ストレージ9は、仮想マシンに対してそのブート領域やデータ領域を提供する。統合管理サーバ4は、ストレージ9の管理インターフェイスを通して、仮想化機能の設定を変更することができる。
【００３６】
図2は、資源管理システムの第１の実施例のデータセンターシステムで用いる配置案生成サーバ3の内部構造の一例を示す機能ブロック図である。配置案生成サーバ3はインターフェイス（I/F）部31を通してパケットを送受信する。配置案生成サーバ3の各プログラムはメモリ33に格納されており、動作時には処理部であるCPU 32がデータパス34を通してそれらを読み出して実行する。図中の矢印は、プログラム間のデータの流れを示している。本構成にあっては、管理者端末2が配置案生成サーバ3の入出力部として機能する。
【００３７】
メモリ33はデータベース330、サービス提供プログラム331、配置案生成プログラム332、配置案検証プログラム333、作業手順生成プログラム334、作業手順実行プログラム335、余剰ポリシ生成プログラム336を格納する。
【００３８】
データベース330は、配置案生成サーバ3の動作に必要なデータを保存している。そのようなデータには機器データ1000、リンクデータ1100、資源データ1200、仮想マシン要求データ1300、仮想マシン位置データ1400、仮想マシンネットワーク経路データ1500、余剰ポリシデータ1600がある。本実施例では、図14〜図20に示すように、これらのデータは全てテーブルとして保存されているものとする。
【００３９】
図14に機器データの一例を示す。機器データ1000は、データセンターシステム上の機器を表すデータである。列1001は、本システム上で機器を一意に識別するための機器名である。列1002は、各機器の種別である。本実施例では種別として「物理マシン」、「スイッチ」、「ルータ」、「WAN」、「FC-SW」、「ストレージ」があるものとする。
【００４０】
図15にリンクデータの一例を示す。リンクデータ1100は、機器データ1000に設定された機器の接続関係を表すデータである。列1101は、リンクの一方にある機器の機器名である。列1102は、リンクのもう一方にある機器の機器名である。
【００４１】
図16に資源データ1200の一例を示す。資源データ1200は、機器データ1000に設定された機器が持つ資源を表すデータである。ここで言う資源には、物理マシンのCPU、メモリ、NIC（Network Interface Card）の帯域、ファイバーチャネルのHBA（Host Bus Adapter）の帯域を含む。また、ネットワーク機器が単位時間あたりに処理できるデータ量や、ネットワーク機器の各ポートの帯域もこの資源に含まれる。列1201は機器名、列1202は資源の種別である。列1203は、列1201が示す機器の、列1202が示す種別の資源の量である。
【００４２】
図17に仮想マシン要求データ1300の一例を示す。仮想マシン要求データ1300は、データセンターシステム上で動作させる必要のある仮想マシンと、各仮想マシンに対して最低限保証すべき資源を表すデータである。列1301は、本システム上で仮想マシンを一意に識別するための仮想マシン名である。列1302は資源の種別、列1303はその種別の資源について最低限保証すべき量である。列1304は、その仮想マシンが通信する相手である。資源種別が「帯域」の場合のみ、この通信相手を登録する必要がある。この通信相手のデータは、ネットワーク機器の帯域使用量を計算するために用いられる。
【００４３】
図18は仮想マシン位置データの一例を示す。仮想マシン位置データ1400は、各仮想マシンがどの物理マシンで動作しているかを表すデータである。列1401は仮想マシン名、列1402はその仮想マシンが動作している物理マシンの物理マシン名である。
【００４４】
図19に仮想マシンネットワーク経路データの一例を示す。仮想マシンネットワーク経路データ1500は、各仮想マシンの発生させるトラフィックが通過するネットワーク経路を表すデータである。列1501は仮想マシン名、列1502は通信相手、列1503は仮想マシンが通信相手に通信する際のネットワーク経路である。
【００４５】
図20に余剰ポリシデータの一例を示す。余剰ポリシデータ1600は、データセンターシステムが従う余剰ポリシを表すデータである。本実施例では、システム管理者が調節可能なパラメータとして、データセンターシステムが必ず従わなければならない、各機器の資源の余剰に関する余剰ポリシを用意する。この余剰ポリシは、ある資源の最大値に対するその資源の余剰の割合（以下、余剰率）や、余剰の絶対量などを基準として、資源の余剰に関するポリシを表現する。その一例としては、上述のとおり「すべての物理マシンのCPUの余剰率が30％以上である」、「すべてのスイッチの帯域の余剰の絶対量が200Mbps以上である」などがある。
【００４６】
図20において、列1601は本システム上で余剰ポリシを一意に識別するためのIDである。列1602は余剰ポリシの検証対象とする機器、列1603は検証対象とする資源、列1604は検証の基準、列1605は検証に使う数値、列1606は比較方法である。検証対象とする機器1602は、全ての機器（例：すべての物理マシン）や、一部の機器（例：物理マシン1、2および3）、または特定の型番の機器（例：製品Aのスイッチ）などである。検証の基準1604は、余剰率や余剰の絶対量などである。検証に使う数値1605は、検証の基準が余剰率の場合は割合（例：30%）で指定し、検証の基準が余剰の絶対量の場合は数値（例：300Mbps）である。比較方法1606は、「以上（等しい値を含む）」、「よりも大きい（等しい値を含まない）」などである。
【００４７】
例えば、行1611（ID 1）の余剰ポリシは、「すべての物理マシンのCPUの余剰率が30％以上である、という条件に反する配置を拒否する」ことを表す。後述する配置案検証プログラム333は、この余剰ポリシデータ1600に含まれる余剰ポリシに反する配置案を拒否する。
【００４８】
また、システム管理者が負荷を平準化したい場合は、余剰率の差を基準に用いてもよい。もし余剰率の差を基準に用いると、例えば「ある2台の物理マシンのCPUの余剰率の差が30%未満である、という条件に反する配置を拒否する」という余剰ポリシを作ることができる。
【００４９】
図2のメモリ33中のサービス提供プログラム331は、管理者端末2で動作する管理ソフトウェアとの間でデータの送受信を行うプログラムである。サービス提供プログラム331は、管理者端末2から入力されたデータをデータベース330に登録する。また、サービス提供プログラム331は、システム管理者の入力に応じて、配置案生成プログラム332または作業手順生成プログラム334を呼び出す。
【００５０】
配置案生成プログラム332は、システム管理者の入力に応じて、仮想マシンの配置案を生成するプログラムである。このとき、配置案生成プログラム332は、余剰ポリシの変化の方向や変化の幅を利用することで、あり得る仮想マシンの配置案全体よりも少ない数の配置案を生成する。ちなみに、物理マシンの台数をP、仮想マシンの台数をVとすると、あり得る仮想マシンの配置案の個数はPのV乗個である。
【００５１】
配置案生成プログラム332の生成する配置案は、各仮想マシンの位置データおよびネットワーク経路データを含む。それぞれのデータの構造は、仮想マシン位置データ1400および仮想マシンネットワーク経路データ1500と同じである。
【００５２】
配置案検証プログラム333は、配置案生成プログラム332の生成した配置案を検証し、システム管理者の入力した余剰ポリシに反する配置案を除外するプログラムである。この検証は、物理マシンの資源と、ネットワーク機器の資源の両方について、それらの資源の使用量をシミュレーションすることで行う。配置案検証プログラム333は、上記の検証を通過した配置案のみを、性能上の問題が発生しない配置案としてサービス提供プログラム331に返す。
【００５３】
作業手順生成プログラム334は、仮想マシンを現在の配置から新しい配置に変更する場合に必要な作業手順を生成するプログラムである。新しい配置とは、すなわち配置案生成プログラム332が生成した配置案のことである。また、作業手順には、仮想マシンの移動や、仮想ネットワークの設定変更（例えばVLAN設定の変更）を含む。
【００５４】
ここで生成された作業手順の使い方は、2通りある。1つの使い方は、この作業手順に従って、システム管理者が仮想マシンおよび仮想ネットワークの設定を変更することである。この場合、作業手順生成プログラム334は、サービス提供プログラム331を通して、生成した作業手順を管理者端末2に返す。このとき、作業手順はシステム管理者が読むことの出来る文章や、統合管理サーバ4の解釈できるコマンドなどの形で表現される。
【００５５】
もう1つの使い方は、この作業手順に従って、配置案生成サーバ3自身が仮想マシンおよび仮想ネットワークの設定を変更することである。この場合、作業手順生成プログラム334は、この作業手順を作業手順実行プログラム335に渡す。作業手順実行プログラム335は統合管理サーバ4と通信し、仮想マシンおよび仮想ネットワークの設定を変更する。
【００５６】
作業手順実行プログラム335は、作業手順生成プログラム334の生成した作業手順に従い、統合管理サーバ4に各種設定変更を指示するプログラムである。システム管理者が直接仮想マシンおよび仮想ネットワークの設定を変更する場合は、このプログラムは不要である。
【００５７】
余剰ポリシ生成プログラム336は、システム管理者が指定した変更後の余剰ポリシに基づいて、それとは異なる余剰ポリシを自動生成するプログラムである。余剰ポリシの自動生成を行わない場合は、このプログラムは不要である。
【００５８】
図3〜5は、第１の実施例におけるデータの入力から仮想マシンの配置変更までの動作の一例を示したシーケンス図である。
【００５９】
図3は、システム管理者が、一連の処理に必要なデータを入力する動作の一例を示したシーケンス図、図9〜図11はデータの入力画面例を示す図である。一連の処理に必要なデータは、主に以下の3種類に分かれる。
(1) 現在のシステム構成を表すデータ
(2) 現在動作している仮想マシンのデータ
(3) 現在の余剰ポリシを表すデータ
まず、システム管理者は管理ソフトウェアに、現在のシステム構成を入力する（S101）。このシステム構成は、データセンターシステム上の機器と、各機器の接続関係と、各機器が持つ資源に関するデータを含んでいる必要がある。
【００６０】
図9は、システム構成の入力画面の一例を示す図である。5001はシステム構成を表現するための要素を含むツールボックスである。5002は、このツールボックスの要素を組み合わせて配置することで、システム構成を入力する欄である。5003は、各機器の資源の入力欄である。5004は入力した情報を配置案生成サーバに送信するためのボタン、5005は入力を中断するためのボタンである。
【００６１】
上記のデータが入力されると、管理ソフトウェアは、システム構成登録を配置案生成サーバ3に送信する（S102）。システム構成登録は、S101でシステム管理者が入力した値を含む。
【００６２】
配置案生成サーバ3のサービス提供プログラム331がシステム構成登録を受信すると、サービス提供プログラム331は、システム構成登録に含まれるデータをデータベースに保存する（S103〜S105）。
【００６３】
本実施例では、システム管理者が機器データ、リンクデータおよび資源データを1つの画面で入力したが、これらのデータを別々の画面で入力してもよい。
【００６４】
また、次の手段により、システム管理者がこれらのデータを入力する手間を削減してもよい。まず、配置案生成サーバ3が通信機器を監視・制御するためのプロトコルを用いて、自動的にこれらのデータの一部または全てを生成してもよい。通信機器を監視・制御するためのプロトコルとしては、SNMP（Simple Network Management Protocol）などがある。もしくは、これらのデータが事前にデータベース330や、他のサーバ機器上で動作するデータベースに格納されている場合は、そのデータを利用してもよい。
【００６５】
次に、システム管理者は管理ソフトウェアに、現在動作している仮想マシンのデータを入力する（S106）。
【００６６】
図10は、現在動作している仮想マシンのデータの入力画面の一例である。5101は仮想マシンと、その仮想マシンが利用する帯域を表現するための要素を含むツールボックスである。5102は、このツールボックスの要素を組み合わせて配置することで、仮想マシンの位置と、各仮想マシンの発生させるトラフィックが通過するネットワーク経路を入力する欄である。5103は、各仮想マシンに対して最低限保証すべき資源の入力欄である。5104は、各仮想マシンに対して最低限保証すべき帯域の入力欄である。5105は入力した情報を配置案生成サーバに送信するためのボタン、5106は入力を中断するためのボタンである。
【００６７】
上記のデータが入力されると、管理者端末2の管理ソフトウェアは、仮想マシンデータ登録を配置案生成サーバ3に送信する（S107）。仮想マシンデータ登録は、S106でシステム管理者が入力した値を含む。
【００６８】
配置案生成サーバ3のサービス提供プログラム331が仮想マシンデータ登録を受信すると、サービス提供プログラム331は、仮想マシンデータ登録に含まれるデータをデータベースに保存する（S108〜S110）。
【００６９】
本実施例では、仮想マシン要求データ、仮想マシン位置データおよび仮想マシンネットワーク経路データを1つの画面で入力できるようにしたが、これらのデータは別々の画面で入力してもよい。
【００７０】
また、次の手段により、システム管理者がこれらのデータを入力する手間を削減してもよい。まず、配置案生成サーバ3が物理マシン5の管理インターフェイスと通信可能なソフトウェアを用いて、自動的にこれらのデータの一部または全てを生成してもよい。ハイパーバイザーの配布元は、これらのソフトウェアを提供している。もしくは、これらのデータが事前にデータベース330や、他のサーバ機器上で動作するデータベースに格納されている場合は、そのデータを利用してもよい。
【００７１】
最後に、システム管理者は管理ソフトウェアに、現在の余剰ポリシ、すなわち第１の余剰ポリシのデータを入力する（S111）。
【００７２】
図11は、現在の余剰ポリシのデータの入力画面の一例である。5211は余剰ポリシの入力欄である。入力できる余剰ポリシの構造は、余剰ポリシデータ1600と同じである。5212は新しい入力欄を追加するためのボタンである。図11では2個の余剰ポリシを指定しているが、このボタンを押すことで、2個を越える数の余剰ポリシを入力することもできる。5220は入力した情報を配置案生成サーバに送信するためのボタン、5230は入力を中断するためのボタンである。
【００７３】
上記のデータが入力されると、管理ソフトウェアは、余剰ポリシデータ登録を配置案生成サーバ3に送信する（S112）。余剰ポリシデータ登録は、S111でシステム管理者が入力した値を含む。
【００７４】
配置案生成サーバ3のサービス提供プログラム331が仮想マシンデータ登録を受信すると、サービス提供プログラム331は、仮想マシンデータ登録に含まれるデータをデータベースに保存する（S113）。
【００７５】
次の手段により、システム管理者がこのデータを入力する手間を削減してもよい。まず、このデータが事前にデータベース330に格納されている場合は、そのデータを利用してもよい。もしくは、S103〜S105およびS108〜S110で保存されたデータをもとに、配置案生成サーバ3が現在の余剰ポリシを自動生成してもよい。
【００７６】
配置案生成サーバ3が現在の余剰ポリシを自動生成する手順の一例を以下に示す。ここでは、物理マシンのCPUに関する余剰ポリシを生成すると仮定する。まず最初に、配置案生成サーバ3は、各物理マシンのCPUの使用量を計算する。この計算には、機器データ1000、仮想マシン要求データ1300、仮想マシン位置データ1400を用いる。次に、配置案生成サーバ3は、各物理マシンのCPUの余剰率を計算する。この計算には、前記使用量に加えて、資源データ1200を用いる。このとき、各物理マシンのCPUの余剰率の最小値がM %だとする。最後に、このM %という数値を用いて余剰ポリシを生成する。例えば、「すべての物理マシンのCPUの余剰率がM ％以上である、という条件に反する配置を拒否する」という余剰ポリシを生成する。現在の仮想マシンの配置は、この余剰ポリシに反しない。もちろん、物理マシン以外の機器、CPU以外の資源、余剰率以外の基準をもつ余剰ポリシも同様に自動生成できる。
【００７７】
図4は、システム管理者の指示を受けて、配置案生成サーバ3が配置案を生成する動作の一例を示したシーケンス図である。
【００７８】
まず、システム管理者は管理ソフトウェアに、余剰ポリシの変更開始を指示する（S201）。この指示は、メニューボタンの押下などで行う。この指示を受けると、管理ソフトウェアは、余剰ポリシの変更開始要求を配置案生成サーバ3に送信する（S202）。配置案生成サーバ3のサービス提供プログラム331がこの要求を受信すると、サービス提供プログラム331は、現在の余剰ポリシを管理ソフトウェアに送信する（S203）。
【００７９】
管理ソフトウェアは、現在の余剰ポリシを受信すると、余剰ポリシの変更画面を表示する。
【００８０】
図12は、余剰ポリシの変更画面の一例である。5311は変更前の余剰ポリシの表示欄、5321は変更後の余剰ポリシの入力欄である。5321で入力できる余剰ポリシの構造は、余剰ポリシデータ1600と同じである。図12では、システム管理者が変更した部分を太字で強調表示している。この例では、システム管理者は余剰を減らす方向に余剰ポリシを変更している。5322は新しい入力欄を追加するためのボタンである。5330は、変更後の余剰ポリシの入力欄（5306と同じもの）をもう1個追加するためのボタンである。本システムでは、システム管理者が変更後の余剰ポリシを複数入力し、そのそれぞれについて配置案生成サーバ3に配置案を生成させることができる。5340は入力した情報を配置案生成サーバに送信するためのボタン、5350は入力を中断するためのボタンである。
【００８１】
管理者は、上記の画面で1個以上の新しい余剰ポリシ、すなわち第２の余剰ポリシを管理ソフトウェアに入力する（S204）。次に、管理ソフトウェアは、第１から第２の余剰ポリシへの変更を要求するための余剰ポリシ変更要求を配置案生成サーバ3に送信する（S205）。この要求は、S204でシステム管理者が入力した値を含む。配置案生成サーバ3のサービス提供プログラム331はこの要求を受信する。
【００８２】
このとき、サービス提供プログラム331は、新しい余剰ポリシを配置案生成プログラム332に渡す前に、その余剰ポリシを余剰ポリシ生成プログラム336に渡してもよい。余剰ポリシ生成部である余剰ポリシ生成プログラム336は、予め設定されたルールに基づいて、渡された新しい余剰ポリシとは余剰の変化幅が異なる新しい第３の余剰ポリシを1つ以上生成する（S206）。例えば、余剰ポリシに含まれるCPUの余剰率を30%から20%に変更する場合、余剰ポリシ生成プログラム336は余剰率25%の余剰ポリシや、余剰率10%の余剰ポリシを第３の余剰ポリシとして自動生成する。これにより、システム管理者は、自身が想定していなかった余剰ポリシとそれに基づく配置も推薦してもらうことができる。
【００８３】
配置案生成サーバ3のサービス提供プログラム331が余剰ポリシ変更要求を受信すると、サービス提供プログラム331は、この要求に含まれる1つ以上の余剰ポリシを、配置案生成プログラム332に渡す。余剰ポリシ生成プログラム336を利用する場合は、このプログラムが生成した第３の新しい余剰ポリシも、併せて配置案生成プログラム332に渡す。
【００８４】
配置案生成プログラム332は、サービス提供プログラム331から渡された複数の余剰ポリシに基づいて、そのそれぞれに複数の配置案を生成する（S207、S209）。
【００８５】
以下に、配置案の生成方法の一例を示す。
【００８６】
図6および図7は、配置案生成プログラム332が、ある余剰ポリシPに基づいて複数の配置案を生成するためのフローチャートである。
【００８７】
まず、配置案生成プログラム332は、現在の余剰ポリシと余剰ポリシPを比較し、余剰ポリシPによって物理マシンのいずれかの資源の余剰が大きくなるかどうかを調べる（S401）。
【００８８】
いずれかの資源の余剰が大きくなる場合、配置案生成プログラム332は、現在の仮想マシンの配置における、各物理マシンの各資源の使用量を計算する（S402）。このとき、計算の対象にする資源は、余剰が大きくなる資源についてのみで良い。この計算には、機器データ1000、仮想マシン要求データ1300、仮想マシン位置データ1400を用いる。
【００８９】
そして、配置案生成プログラム332は、S402で計算した使用量のいずれかが、余剰ポリシPによって拒否されるかどうかを調べる（S403）。この計算には、S402で使用したデータに加えて、資源データ1200を用いる。S402で計算した使用量のいずれかが、余剰ポリシPによって拒否される場合は、拒否された資源を持つ物理マシンをメモリに記録する（S404）。
【００９０】
次に、配置案生成プログラム332は、現在の余剰ポリシと余剰ポリシPを比較し、余剰ポリシPによってネットワーク機器のいずれかの資源の余剰が大きくなるかどうかを調べる（S405）。
【００９１】
いずれかの資源の余剰が大きくなる場合、配置案生成プログラム332は、現在の仮想マシンの配置における、各ネットワーク機器の各資源の使用量を計算する（S406）。このとき、計算の対象にする資源は、余剰が大きくなる資源についてのみで良い。この計算には、機器データ1000、リンクデータ1100、仮想マシン要求データ1300、仮想マシン位置データ1400、仮想マシンネットワーク経路データ1500を用いる。
【００９２】
そして、配置案生成プログラム332は、S406で計算した使用量のいずれかが、余剰ポリシPによって拒否されるかどうかを調べる（S407）。この計算には、S406で使用したデータに加えて、資源データ1200を用いる。S406で使用した使用量のいずれかが、余剰ポリシPによって拒否される場合は、拒否された資源を持つネットワーク機器にトラフィックを流している物理マシンをメモリに記録する（S408）。
【００９３】
ここまでの処理により、資源の余剰を増やした場合に特に影響を受ける物理マシンを列挙する。その結果、位置を変更する必要のある仮想マシンの数を絞り込むことができる。
【００９４】
次に、配置案生成プログラム332は、現在の余剰ポリシと余剰ポリシPを比較し、余剰ポリシPによって物理マシンのいずれかの資源の余剰が小さくなるかどうかを調べる（S501）。
【００９５】
いずれかの資源の余剰が小さくなる場合、配置案生成プログラム332は、現在の仮想マシンの配置に置ける、各物理マシンの各資源の使用量を計算する（S502）。このとき、計算の対象にする資源は、余剰が小さくなる資源についてのみで良い。この計算には、機器データ1000、仮想マシン要求データ1300、仮想マシン位置データ1400を用いる。
【００９６】
そして、配置案生成プログラム332は、S502の計算結果を用いて、その資源の余剰率の高い順にA1個の物理マシンをメモリに記録する（S503）。A1はシステム管理者によって予め設定された定数である。余剰率の計算には、S502で用いたデータに加えて、資源データ1200を用いる。このとき、余剰率が100%の（仮想マシンの動作していない物理マシンの）資源は比較の対象外とする。資源の余剰率が高い物理マシンは、仮想マシンの数が少ないと推測される。従って、このように物理マシンを選択することで、S508において、余剰率が100%の（仮想マシンが1台も動作しない）物理マシンが増えるような配置案が優先的に生成される。
【００９７】
次に、配置案生成プログラム332は、現在の余剰ポリシと余剰ポリシPを比較し、余剰ポリシPによってネットワーク機器のいずれかの資源の余剰が小さくなるかどうかを調べる（S504）。
【００９８】
いずれかの資源の余剰が小さくなる場合、配置案生成プログラム332は、現在の仮想マシンの配置における、各ネットワーク機器の各資源の使用量を計算する（S505）。このとき、計算の対象にする資源は、余剰が小さくなる資源についてのみで良い。この計算には、機器データ1000、リンクデータ1100、仮想マシン要求データ1300、仮想マシン位置データ1400、仮想マシンネットワーク経路データ1500を用いる。
【００９９】
そして、配置案生成プログラム332は、S505の計算結果を用いて、その資源の余剰率の高い順にA2個のネットワーク機器を列挙する（S506）。A2はシステム管理者によって予め設定された定数である。余剰率の計算には、S505で用いたデータに加えて、資源データ1200を用いる。このとき、余剰率が100%の（トラフィックの流れていない）資源は比較の対象外とする。
【０１００】
そして、上記A2個のネットワーク機器にトラフィックを流している物理マシンをメモリに記録する（S507）。資源の余剰率が高いネットワーク機器には、少数の仮想マシンのみがトラフィックを流していると推測される。従って、このように物理マシンを選択することで、S508において、余剰率が100%の（トラフィックが流れない）ネットワーク機器が増えるような配置案が優先的に生成される。
【０１０１】
以上が、配置案を生成する前段階の処理である。
【０１０２】
前段階の処理として、ここでは4種類の処理（S401〜S404、S405〜S408、S501〜S503、S504〜S507）を示した。しかし、配置案生成プログラム332は、必ずしもこれら全ての処理を行う必要はない。
【０１０３】
配置案生成プログラム332は、上記のように記録された物理マシン上の全ての仮想マシンを列挙し、それらの仮想マシンを移動させた場合にあり得る配置案を生成する（S508）。この配置案の数は、全ての仮想マシンを移動させた場合にあり得る配置案の数よりも少なくなる。従って、上記の方法によって、配置案検証プログラム333が検証にかける時間を従来よりも短くすることができる。このあり得る配置案を生成する（S508）際、例えば、資源の余剰が大きくなる場合に、拒否された資源を持つ物理マシンなどの機器の仮想マシンを、この拒否された資源を持つ機器からの移動対象としたり、或いは、資源の余剰が小さくなる場合に、資源の使用量が少ない機器の仮想マシンを、この機器からの移動対象とする。
【０１０４】
後に、配置案生成プログラム332は、生成された配置案のうち、予め設定された共通ポリシに反する配置案を削除する（S509）。この共通ポリシとは、システム管理者が予め設定する、余剰ポリシの変化とは無関係のポリシである。例えば、共通ポリシには「1台の物理マシンで10台以上の仮想マシンを動作させる配置を拒否する」、「現在の仮想マシンの位置と比較して、10台以上の仮想マシンを移動させる配置を拒否する」などがある。
【０１０５】
以上が、配置案生成プログラム332の動作の一例である。
【０１０６】
本実施例では、配置案生成プログラム332は余剰の変化の方向（大きくなる、または小さくなる）によって処理を分岐した。しかし、余剰の変化の方向に加えて、余剰の変化の幅（例：余剰率の変化の幅）を用いて処理を分岐してもよい。例えば、CPUの余剰が20%大きくなるように余剰ポリシを変化させる場合、その20%の余剰に近いCPU使用率を持つ仮想マシンを移動させる配置案のみを生成することもできる。この場合、上記の実施例よりも配置案の数を少なくすることができる。
【０１０７】
配置案生成プログラム332は、生成した配置案を配置案検証プログラム333に渡す。配置案検証プログラム333は、余剰ポリシPに基づいて、前記の配置案を検証する（S208、S210）。
【０１０８】
以下に、本実施例における配置案の検証方法の一例を示す。
【０１０９】
図8は、配置案検証プログラム333が、余剰ポリシPに基づいて複数の配置案を検証するためのフローチャートである。
【０１１０】
まず、配置案検証プログラム333は、配置案生成プログラム332が生成した配置案の中に未検証のものがあるかどうかを調べる（S601）。
【０１１１】
未検証のものがある場合、配置案検証プログラム333はそれらの配置案の中から未検証のものを1つ選択する（S602）。そして、その配置案における、各物理マシンの各資源の使用量を計算する（S603）。この計算には、配置案のデータに加えて、機器データ1000、仮想マシン要求データ1300を用いる。
【０１１２】
そして、配置案検証プログラム333は、S603で計算した使用量のいずれかが、余剰ポリシPによって拒否されるかどうかを調べる（S604）。この計算には、S603で使用したデータに加えて、資源データ1200を用いる。
【０１１３】
S603で計算した使用量のいずれかが余剰ポリシPによって拒否される場合は、検証中の配置案を破棄してS601に戻る。そうでない場合は、S605以降の検証に進む。
【０１１４】
配置案検証プログラム333は、その配置案における、あり得るネットワーク経路を全て列挙する（S605）。大半の場合、1つの配置におけるネットワーク経路は1つに定まる。しかし、例えば物理マシンが複数のNICを備えており、そのそれぞれが異なるスイッチに接続されている場合は、1つの配置について複数のネットワーク経路があり得る。
【０１１５】
次に、配置案検証プログラム333は、S605で列挙したネットワーク経路の中に未検証のものがあるかどうかを調べる（S606）。
【０１１６】
未検証のものがない場合は、検証中の配置案を破棄してS601に戻る。そうでない場合は、S607以降の検証に進む。
【０１１７】
配置案検証プログラム333は、S605で列挙したネットワーク経路の中から未検証のものを1つ選択する（S607）。そして、その配置案における、各ネットワーク機器の各資源の使用量を計算する（S608）。この計算には、配置案のデータに加えて、機器データ1000、リンクデータ1100、仮想マシン要求データ1300、仮想マシン位置データ1400、仮想マシンネットワーク経路データ1500を用いる。
【０１１８】
そして、配置案検証プログラム333は、S608で計算した使用量のいずれかが、余剰ポリシPによって拒否されるかどうかを調べる（S609）。この計算には、S608で使用したデータに加えて、資源データ1200を用いる。
【０１１９】
S608で計算した使用量のいずれかが余剰ポリシPによって拒否される場合は、検証中のネットワーク経路を破棄してS606に戻る。そうでない場合は、検証された配置案およびネットワーク経路の組を、有効な配置案としてメモリに記録し（S610）、S606に戻る。
【０１２０】
すべての配置案およびそれらのネットワーク経路の検証が終わると、配置案検証プログラム333は、各配置案の特性を表す数値を計算する（S611）。システム管理者が複数の配置案を比較検討しやすくするために、管理ソフトウェアは配置案を並び替えるためにこの特性を使う。そのような特性の例を以下に示す。
(1) 稼働する機器（物理マシン、ネットワーク機器など）の台数
(2) 稼働するネットワーク機器のポート数
(3) 現在の位置から移動させる仮想マシンの数
(4) 余剰ポリシの変化の大きさ（例：余剰率の変化幅）
システム管理者が、データセンターシステム全体の消費電力を減らしたい場合は、特性(1)または(2)を重視して配置案を比較する。特性(1)が小さい案ほど、稼働させる必要のない機器を停止させることで消費電力を削減できるという利点がある。特性(2)が小さい案ほど、稼働させる必要のないポートを停止させることで消費電力を削減できるという利点がある。
【０１２１】
システム管理者が、出来るだけ少ない手順で設定を変更したい場合は、特性(3)を重視して配置案を比較する。特性(3)が少ない案ほど、仮想マシンの配置変更にかかる時間が短くなるという利点がある。
【０１２２】
システム管理者が、現在の余剰ポリシを急激に変化させたくない場合は、特性(4)を重視して配置案を比較する。例えば、CPUの余剰率を現在の10%から30%に変化させる配置案1と、20%に変化させる配置案2があると仮定する。どちらの配置案も特性(1)や(2)の値が同じ場合は、システム管理者は現在の余剰ポリシに近い配置案2を優先的に選択する、ということがあり得る。
【０１２３】
また、この計算のために使うデータをデータベース330に予め登録しておき、上記特性(1)〜(4)以外の数値を計算することもできる。例えば、データベース330に各機器の消費電力を予め記録しておき、各配置案におけるデータセンターシステム全体の消費電力を計算してもよい。
【０１２４】
以上が、配置案検証プログラム333の動作の一例である。
【０１２５】
配置案生成サーバ3は、システム管理者が指定した余剰ポリシの数だけ、この配置案生成プログラム332および配置案検証プログラム333の処理を繰り返す。ただし、検証を通過した配置案の数が、予め設定された閾値を超えた時点で、この処理の繰り返しを途中で終了してもよい。その場合、管理ソフトウェアは余剰ポリシの並び順を「優先度」と表現し、優先度の低い余剰ポリシは使われない可能性があることを明示する必要がある。
【０１２６】
配置案の検証が終了すると、サービス提供プログラム331は、配置案データを管理ソフトウェアに送信する（S211）。この配置案データは、有効な配置案と余剰ポリシの組合せ、および各配置案の並び替えのための数値を含む。
【０１２７】
管理ソフトウェアは、配置案データを受信すると、有効な配置案と余剰ポリシの組合せを画面に表示する（S212）。
【０１２８】
図13は、有効な配置案と余剰ポリシの組合せの表示画面の一例である。5410は配置案の並び替え基準の選択欄である。5420は配置案と余剰ポリシの組合せを示す表である。5421は5430に表示する配置案を選択する欄、5422は配置案、5423は余剰ポリシ、5424は並び替えに用いられた数値である。5430は現在選択されている配置案のデータを表示する欄である。5431は現在選択されている配置案の名前である。5432はこの配置案の生成に用いられた余剰ポリシの詳細を別ウィンドウで表示するためのボタンである。5433は、この配置案を採用したときに起こる、仮想マシンの移動を示す欄である。5434は、この配置案を採用したときに起こる、各資源の余剰の変化を示す欄である。5440は5430に表示中の配置案の採用を配置案生成サーバに指示するためのボタン、5450は仮想マシンの配置変更を中断するためのボタンである。
【０１２９】
図13では並び替え基準を1つだけ用いているが、管理ソフトウェアは複数の並び替え基準を組み合わせた基準を用いてもよい。例えば、最優先の基準は「稼働する物理マシンの台数が少ない順」、2番目に優先する基準は「現在の位置から移動させる仮想マシンの数が少ない順」、3番目に優先する基準は「余剰ポリシの変化が小さい順」として並び替えてもよい。
【０１３０】
管理ソフトウェアがこのようにデータを表示することで、システム管理者は、自分の要望に最も適した配置案およびその余剰ポリシを選択することができる。システム管理者の要望としては、稼働する物理マシンの台数を減らしたい、現在の位置から移動させる仮想マシン、すなわち移動対象となる仮想マシンの数を少なくしたい、余剰ポリシの変化をできるだけ小さくしたい、などがあり得る。
【０１３１】
次に、図5は、システム管理者の指示を受けて、配置案生成サーバ3がシステム構成の変更手順を生成する動作の一例を示したシーケンス図である。
【０１３２】
まず、システム管理者は管理ソフトウェアに、採用する配置案と余剰ポリシの組合せを指示する（S301）。この指示は、図13のような画面表示を通して行う。この指示を受けると、管理ソフトウェアは、作業手順生成要求を配置案生成サーバ3に送信する（S302）。この要求は、システム管理者が指示した配置案のデータと、その配置案の生成に用いられた余剰ポリシのデータを含む。
【０１３３】
配置案生成サーバ3のサービス提供プログラム331がこの要求を受信すると、サービス提供プログラム331はこの要求に含まれる配置案のデータを作業手順生成プログラム334に渡す。作業手順生成プログラム334はその配置案のデータと、機器データ1000、リンクデータ1100、仮想マシン位置データ1400および仮想マシンネットワーク経路データ1500を用いて、仮想マシンの配置を変更するための作業手順を生成する（S303）。この作業手順は、仮想マシンの移動や、ネットワーク機器の仮想ネットワーク設定（VLAN設定など）の変更などの、複数の手順を含む。
【０１３４】
サービス提供プログラム331は、この作業手順を、管理ソフトウェアに送信する（S307）。このとき、サービス提供プログラム331は、作業手順生成要求に含まれるデータを用いて、仮想マシン位置データ1400、仮想マシンネットワーク経路データ1500および余剰ポリシデータ1600を更新してもよい（S304〜S306）。これらのデータを更新することで、次回の余剰ポリシ変更時にこれらのデータをシステム管理者が入力する手間を削減できる。
【０１３５】
管理者端末2の管理ソフトウェアが作業手順を受信すると、管理ソフトウェアは、統合管理サーバ4にシステム構成の変更要求を送信する（S308）。このシステム構成の変更要求は、仮想マシンの移動や、ネットワーク機器の仮想ネットワーク設定の変更のためのコマンドなどを含む。管理ソフトウェアは、作業手順とコマンドの対応表を持っている必要がある。統合管理サーバ4は、これらのコマンドに従って、各機器の設定変更を行う（S309）。
【０１３６】
図5では管理ソフトウェアから統合管理サーバ4にシステム構成の変更要求を送信しているが、配置案生成サーバ3から統合管理サーバ4にシステム構成の変更要求を送信してもよい。その場合、作業手順生成プログラム334は、生成した作業手順を作業手順実行プログラム335に渡す。作業手順実行プログラム335は統合管理サーバ4にシステム構成の変更要求を送信する（S310）。作業手順実行プログラム335は、作業手順とコマンドの対応表を持っている必要がある。統合管理サーバ4は、これらのコマンドに従って、各機器の設定変更を行う（S311）。
【０１３７】
また、本実施例では、採用する配置案と余剰ポリシの組合せをS301でシステム管理者が選択しているが、この選択を配置案生成サーバ3が自動的に行ってもよい。その場合、まずシステム管理者が配置案生成サーバ3に、採用する配置案を自動選択するための基準を登録する。基準には、S611で計算する数値を用いることができる。例えば、稼働する物理マシンの台数が最も少ない配置案を選択する、という基準があり得る。次に、配置案生成サーバ3は、S211で配置案データを管理ソフトウェアに送信する代わりに、上記の基準に基づいて採用する配置案と余剰ポリシの組合せを選択する。そして、それらのデータに基づいて、仮想マシンの配置を変更するための作業手順を生成する（S303相当の処理）。このようにして、システム管理者の作業の一部を簡略化することができる。
【０１３８】
以上が、余剰ポリシの変更に基づいて仮想マシンの配置を変更する手順の一例である。
【０１３９】
以上のようにして、配置案生成サーバ3は、システム管理者が入力した余剰ポリシに基づいて、複数の配置案をシステム管理者に提示することができる。これにより、システム管理者は、従来と比べて、容易にデータセンターシステムの資源の余剰を変更できるようになる。つまりシステム管理者は従来よりも頻繁に資源の余剰を変更することが可能で、その結果として、データセンターシステムは性能上の問題と、稼働させる機器の台数のバランスを取った配置を実現できるという効果がある。
【０１４０】
また、配置案生成サーバ3は、配置案を検証する際に、物理マシンの資源とネットワーク機器の資源の両方を考慮する。これにより、システム管理者による仮想マシンの移動によって新たな性能上の問題が発生する可能性を低くできるという効果がある。
【０１４１】
また、配置案生成サーバ3が生成したデータに基づいて、管理ソフトウェアはシステム管理者に対して、新しい配置案における各資源の余剰の変化や、新しい配置案の特性を表示する。システム管理者は、これらの表示データに基づいて、異なる配置案同士を比較することができる。これにより、システム管理者は、配置案生成サーバ3が生成した複数の配置案の中から、自分の目的に最も適した配置案を選択できるという効果がある。
【０１４２】
また、配置案生成サーバ3は、現在の余剰ポリシと新しい余剰ポリシを比較し、資源の余剰の変化方向（増加または減少）や変化量に基づいて配置案を生成する。これにより、配置案生成サーバ3があり得る仮想マシンの配置案を全て生成する場合と比較して、生成する配置案の数を限定できる。結果として、配置案の生成や、それらの配置案の検証にかかる計算時間を短縮できるという効果がある。
【０１４３】
また、配置案生成サーバ3は、現在の余剰ポリシと、システム管理者によって入力された余剰ポリシを比較し、システム管理者が入力しなかった余剰ポリシを自動的に生成できる。これにより、配置案生成サーバ3は、システム管理者が想定しなかった余剰ポリシと、その余剰ポリシに基づく配置案の組を生成できる。結果として、システム管理者にとってより望ましい余剰ポリシを発見できるという効果がある。
【実施例２】
【０１４４】
上述した実施例1では、1つ以上の余剰ポリシに基づいて配置案を生成する配置案生成サーバの例を説明した。実施例2では、配置案の検証結果に基づいて、余剰ポリシを繰り返し調節しながら配置案を生成する配置案生成サーバの例を説明する。
【０１４５】
図21は、第2の実施例に係わる配置案生成サーバ3-2の内部構造を示す機能ブロック図である。実施例1との相違点として、メモリ33-2が余剰ポリシ調節プログラム337を格納する。また、余剰ポリシ調節プログラム337の追加に併せて、以下に説明するように、配置案検証プログラム333-2にもいくつか処理が追加される。その他は実施例1と同様である。そのため、本実施例では説明を省略する。
【０１４６】
余剰ポリシ調節プログラム337は、配置案検証プログラム333-2の検証結果に基づいて、新しい余剰ポリシを生成するプログラムである。余剰ポリシ調節プログラム337は、配置案検証プログラム333-2が検証した余剰ポリシに含まれる、余剰率などの数値を調節する形で、新しい余剰ポリシを生成する。
【０１４７】
また、配置案検証プログラム333-2は、余剰ポリシ調節プログラム337のために、検証結果をメモリに記録する。
【０１４８】
システム管理者が、一連の処理に必要なデータを入力する動作は実施例1と同様である。そのため、本実施例では説明を省略する。
【０１４９】
図22は、システム管理者の指示を受けて、配置案生成サーバ3-2が配置案を生成する動作の一例を示したシーケンス図である。以下の説明では、実施例1と異なる部分のみ詳細に説明する。
【０１５０】
S201〜S203は実施例1と同様である。そのため、本実施例では説明を省略する。
【０１５１】
次に、システム管理者は、実施例1と同様の画面（図12）を通して、新しい余剰ポリシP1を管理ソフトウェアに入力する（S701）。本実施例では、説明を簡単にするために、システム管理者は余剰ポリシを1つだけ入力したものとする。もし、システム管理者が余剰ポリシを複数入力した場合は、配置案生成サーバ3は後述するS703〜S707の処理を余剰ポリシの数だけ実行する。
【０１５２】
次に、管理ソフトウェアは、余剰ポリシ変更要求を配置案生成サーバ3-2に送信する（S702）。この要求は、S701でシステム管理者が入力した値を含む。配置案生成サーバ3-2のサービス提供プログラム331はこの要求を受信する。
【０１５３】
配置案生成サーバ3-2のサービス提供プログラム331が余剰ポリシ変更要求を受信すると、サービス提供プログラム331は、この要求に含まれる余剰ポリシP1を、配置案生成プログラム332に渡す。配置案生成プログラム332は、余剰ポリシP1に基づいて複数の配置案を生成する（S703）。
【０１５４】
配置案生成プログラム332のフローチャートは実施例1と同様である。そのため、本実施例では説明を省略する。
【０１５５】
配置案生成プログラム332は、生成した配置案を配置案検証プログラム333-2に渡す。配置案検証プログラム333-2は、余剰ポリシP1に基づいて、前記の配置案を検証する（S704）。
【０１５６】
以下に、配置案の検証方法の一例を示す。
【０１５７】
図23は、配置案検証プログラム333-2が、余剰ポリシPに基づいて複数の配置案を検証するためのフローチャートである。図中において、実施例1のフローチャートと同じ処理は図8と同じ番号を付与されている。
【０１５８】
実施例1との相違点を以下に示す。
【０１５９】
第一に、S603で計算した使用量のいずれかが余剰ポリシPによって拒否される場合は、配置案検証プログラム333-2は余剰ポリシPによって拒否された資源とその使用量、およびその余剰率を、検証結果としてメモリに記録する（S801）。
【０１６０】
図24は、この検証結果の一例である。1701は配置案生成サーバ3-2が内部的に、各配置案に対して一意に割り当てたIDである。列1702は余剰ポリシPによって拒否された資源を持つ機器の機器名である。列1703は余剰ポリシPによって拒否された資源の種別である。列1704は配置案IDが示す配置案における、その資源の使用量である。列1705は配置案IDが示す配置案における、その資源の余剰率である。
【０１６１】
第二に、S608で計算した使用量のいずれかが余剰ポリシPによって拒否される場合は、配置案検証プログラム333-2は余剰ポリシPによって拒否された資源とその使用量、およびその余剰率を、検証結果としてメモリに記録する（S802）。
【０１６２】
最後に、S611の後で、配置案検証プログラム333-2は、メモリに記録された有効な配置案の数が、予め設定された閾値T1以下かどうかを調べる（S803）。有効な配置案の数が閾値T1以下の場合は、余剰ポリシ調節プログラム337を起動する（S804）。
【０１６３】
このとき、余剰ポリシ調節プログラム337を起動するかどうかの判断基準として、有効な配置案の数以外のデータを用いてもよい。
【０１６４】
例えば、現在稼働している物理マシンの台数と、有効な配置案で稼働する物理マシンの台数を比較する。そして、稼働する物理マシンの台数が減る配置案の数が、予め設定された閾値T2以下かどうかを調べることもできる。この場合、仮想マシンを物理マシンに詰め込む効率が改善する配置案が確保できるまで、余剰ポリシを繰り返し調節することができる。物理マシンの代わりに、ネットワーク機器や、ネットワーク機器のポートについても同様の処理が可能である。
【０１６５】
以上が、第2の実施例の配置案検証プログラム333-2の動作の一例である。
【０１６６】
余剰ポリシ調節プログラム337は、配置案検証プログラム333-2がメモリに記録した検証結果に基づいて、余剰ポリシP1の数値を調節し、1つ以上の新しい余剰ポリシを生成する。
【０１６７】
以下に、余剰ポリシの調節方法の一例を示す。
【０１６８】
図25は、余剰ポリシ調節プログラム337が、余剰ポリシP1の数値を調節し、新しい余剰ポリシを生成するためのフローチャートである。以下ではシステム管理者が、CPUの余剰率が30%の現在の第１の余剰ポリシを、CPUの余剰率が40%の第２の余剰ポリシP1に変更するよう指定したと仮定する。そしてS207およびS208の結果として、メモリ上に図24の検証結果が記録されたと仮定する。
【０１６９】
まず、余剰ポリシ調節プログラム337は、前述の検証結果に含まれる配置案の中に、このプログラムで未使用のものがあるかどうかを調べる（S901）。
【０１７０】
未使用のものがある場合、余剰ポリシ調節プログラム337はそれらの配置案の中から未使用のものを1つ選択する（S902）。そして、その配置案の検証結果において、拒否された資源Rの最小余剰率Mを計算する（S903）。例えば、このプログラムが配置案1を選択した場合、図24の行1711と行1712から、その資源R（すなわちCPU）の最小余剰率は35%である。そうではなく、このプログラムが配置案2を選択した場合、図24の行1713と行1714から、その資源Rの最小余剰率は20%である。
【０１７１】
そして、余剰ポリシ調節プログラム337は、S903で計算した最小余剰率Mが、現在の余剰ポリシの余剰率よりも大きいかどうかを調べる（S904）。最小余剰率Mが現在の余剰ポリシの余剰率と同じか、またはそれより小さい場合は、S901に戻る。そうでない場合は、S905に進む。余剰ポリシ調節プログラム337は、余剰ポリシP1における資源Rの余剰率をMに変更した、新たな余剰ポリシを生成し、これをメモリに記録する（S905、S906）。
【０１７２】
例えば、このプログラムが配置案1を選択した場合、以下のような第３の余剰ポリシP2が生成される。
【０１７３】
（余剰ポリシP2）「すべての物理マシンのCPUについて、余剰率が35%以上」という条件に反する場合、その配置を拒否する。
【０１７４】
一方、このプログラムが配置案2を選択した場合、余剰ポリシは生成せずにS901に戻る。仮に、配置案2の最小余剰率20%を使って余剰ポリシを作成した場合、以下のような余剰ポリシP3が生成される。
【０１７５】
（余剰ポリシP3）「すべての物理マシンのCPUについて、余剰率が20%以上」という条件に反する場合、その配置を拒否する
しかし、この例ではシステム管理者はCPUの余剰率を大きくしようとしていたため、上記の余剰ポリシP3は、システム管理者の目的に反する。そのため、余剰ポリシ調節プログラム337は、S904の検査によって、このような余剰ポリシP3の生成を避ける。
【０１７６】
すべての検証結果に対する処理が終わると、余剰ポリシ調節プログラム337は、メモリに記録された複数の余剰ポリシを配置案生成プログラムに渡す（S907）。
【０１７７】
以上が、余剰ポリシ調節プログラム337の動作の一例である。
【０１７８】
上記の方法は、システム管理者が余剰率を大きくしようとした場合の調節方法である。システム管理者が余剰率を小さくしようとした場合は、また別の調節方法が必要である。そのような方法の一例としては、現在の余剰ポリシと余剰ポリシP1を用いて、余剰の変化幅が異なる余剰ポリシを生成する方法がある。この場合、余剰ポリシ調節プログラム337は、余剰ポリシ生成プログラム336と同様の処理を行う。
【０１７９】
以上のようにして、本実施例の配置案生成サーバ3-2は、十分な数の有効な配置案を生成できるまで、繰り返し余剰ポリシを調節することができる。これにより、システム管理者が実施例1と同じ数の余剰ポリシを指定しても、配置案生成サーバ3-2は実施例1よりも多くの配置案を生成できる。これにより、システム管理者が入力するデータの量を増やさなくても、システム管理者が選択できる配置案の数を増やすことができるという効果がある。
【０１８０】
また、配置案生成サーバ3-2は、配置案の検証結果に基づいて余剰ポリシを調節する。つまり、システム管理者が適切な余剰ポリシを勘違いしていた場合でも、配置案生成サーバ3-2がシステム管理者の代わりに適切な余剰ポリシを生成する。これにより、システム管理者によってより望ましい余剰ポリシを発見できるという効果がある。
【０１８１】
以上、本発明の種々の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計なども含まれる。また、仮想化されたサーバ資源およびネットワーク資源等を持つシステムにおける仮想マシンの配置の他、物理マシン内のオペレーティング・システム（ＯＳ）上のアプリケーションプログラムの配置などにも本発明を適用することができることは言うまでもない。
【図面の簡単な説明】
【０１８２】
【図１】データセンターシステムの概要を示す図である。
【図２】実施例1で想定する配置案生成サーバの物理的な構成を示す図である。
【図３】実施例1のシステム管理者が、一連の処理に必要なデータを入力する際のシーケンス図である。
【図４】実施例1に係わる、配置案生成サーバが配置案を生成する際のシーケンス図である。
【図５】実施例1に係わる、配置案生成サーバがシステム構成の変更手順を生成する際のシーケンス図である。
【図６】実施例1の配置案生成プログラムのフローチャートを示す図である。
【図７】実施例1の配置案生成プログラムのフローチャートを示す図である。
【図８】実施例1の配置案検証プログラムのフローチャートを示す図である。
【図９】実施例1の管理クライアント（管理者端末）のシステム構成の入力画面である。
【図１０】実施例1の管理クライアントの仮想マシンのデータの入力画面である。
【図１１】実施例1の管理クライアントの余剰ポリシのデータの入力画面である。
【図１２】実施例1の管理クライアントの余剰ポリシの変更の入力画面である。
【図１３】実施例1の管理クライアントの配置案データの表示画面である。
【図１４】実施例1の機器データの例を示す図である。
【図１５】実施例1のリンクデータの例を示す図である。
【図１６】実施例1の資源データの例を示す図である。
【図１７】実施例1の仮想マシン要求データの例を示す図である。
【図１８】実施例1の仮想マシン位置データの例を示す図である。
【図１９】実施例1の仮想マシンネットワーク経路データの例を示す図である。
【図２０】実施例1の余剰ポリシデータの例を示す図である。
【図２１】実施例２に係わる、配置案生成サーバの物理的な構成を示す図である。
【図２２】実施例２に係わる、配置案生成サーバが配置案および余剰ポリシを生成する際のシーケンス図である。
【図２３】実施例２にの配置案検証プログラムのフローチャートを示す図である。
【図２４】実施例２の検証結果の一例を示す図である。
【図２５】実施例２の配置案検証プログラムのフローチャートを示す図である。
【図２６】各実施例に係わる余剰の定義を説明するための図である。
【符号の説明】
【０１８３】
1…管理ネットワーク
2…管理者端末
3、3-2…配置案生成サーバ
4…統合管理サーバ
5…物理マシン
6…スイッチ
7…ルータ
8…ファイバ・チャネル・スイッチ
9…ストレージ
10…通信回線
11…WAN
12…通信回線
31…I/F
32…CPU
33、33-2…メモリ
34…データパス
330…データベース
331…サービス提供プログラム
332…配置案生成プログラム
333、333-2…配置案検証プログラム
334…作業手順生成プログラム
335…作業手順実行プログラム
336…余剰ポリシ生成プログラム
337…余剰ポリシ調節プログラム
1000…機器データ
1100…リンクデータ
1200…資源データ
1300…仮想マシン要求データ
1400…仮想マシン位置データ
1500…仮想マシンネットワーク経路データ
1600…余剰ポリシデータ。
【図１】
2010146420.tif 000003
【図２】
2010146420.tif 000004
【図３】
2010146420.tif 000005
【図４】
2010146420.tif 000006
【図５】
2010146420.tif 000007
【図６】
2010146420.tif 000008
【図７】
2010146420.tif 000009
【図８】
2010146420.tif 000010
【図９】
2010146420.tif 000011
【図１０】
2010146420.tif 000012
【図１１】
2010146420.tif 000013
【図１２】
2010146420.tif 000014
【図１３】
2010146420.tif 000015
【図１４】
2010146420.tif 000016
【図１５】
2010146420.tif 000017
【図１６】
2010146420.tif 000018
【図１７】
2010146420.tif 000019
【図１８】
2010146420.tif 000020
【図１９】
2010146420.tif 000021
【図２０】
2010146420.tif 000022
【図２１】
2010146420.tif 000023
【図２２】
2010146420.tif 000024
【図２３】
2010146420.tif 000025
【図２４】
2010146420.tif 000026
【図２５】
2010146420.tif 000027
【図２６】
2010146420.tif 000028