(57)【要約】  本技術に係る配置設計方法は、１又は複数の仮想マシンを含むシステムについての仮想マシンを物理マシンに配置する要求を受信するステップと、システム又は要求の送信元に対応付けて登録されている、仮想マシン配置の評価指標に関するデータを読み出すステップと、１又は複数の仮想マシンの各々について、仮想マシン配置の評価指標に関するデータに基づき、使用可能な物理マシンのいずれかに配置する場合における第１のコストを算出し、算出された第１のコストが最低となる物理マシンを特定するステップと、１又は複数の仮想マシンについて特定された物理マシンについてのデータを含む配置設計データを生成するステップとを含む。
2013005290.tif 000002
【特許請求の範囲】
【請求項１】
１又は複数の仮想マシンを含むシステムについての仮想マシンを物理マシンに配置する要求を受信し、
前記システム又は前記要求の送信元に対応付けて登録されている、仮想マシン配置の評価指標に関するデータを読み出し、
前記１又は複数の仮想マシンの各々について、前記仮想マシン配置の評価指標に関するデータに基づき、使用可能な物理マシンのいずれかに配置する場合における第１のコストを算出し、算出された前記第１のコストが最低となる物理マシンを特定し、
前記１又は複数の仮想マシンについて特定された前記物理マシンについてのデータを含む配置設計データを生成する
処理を、コンピュータに実行させるためのプログラム。
【請求項２】
前記物理マシンを特定する処理は、
前記１又は複数の仮想マシンの各々について、
前記仮想マシン配置の評価指標に関するデータに含まれる評価指標毎に、前記使用可能な物理マシンの各々についての第２のコストを算出し、
前記使用可能な物理マシンの各々について、前記評価指標の各々について算出された第２のコストを、前記仮想マシン配置の評価指標に関するデータに含まれる重み値に基づき加算することで、前記第１のコストを算出する
処理を含む請求項１記載のプログラム。
【請求項３】
前記物理マシンを特定する処理において、
複数の仮想マシンを配置する場合には、任意の順番で仮想マシンを選択し、
前記評価指標毎に、先行して処理された仮想マシン及び当該仮想マシンについて特定された物理マシンについての影響を勘案した第２のコストを算出する
請求項２記載のプログラム。
【請求項４】
前記物理マシンを特定する処理を、前記仮想マシンを異なる順番で選択するように複数回実行し、
前記コンピュータに、
前記物理マシンを特定する処理を実行する毎に、当該物理マシンを特定する処理により特定される、前記複数の仮想マシンの各々と物理マシンとの対応関係についての評価値を、前記仮想マシン配置の評価指標に関するデータに基づき算出する処理と、
最も評価値が低い対応関係を特定する処理と、
をさらに実行させるための請求項３記載のプログラム。
【請求項５】
前記コンピュータに、
前記物理マシンを特定する処理を実施することで前記複数の仮想マシンの各々について特定された物理マシンのうち、少なくとも一部の物理マシンを他の物理マシンに変更した上で、前記複数の仮想マシンの各々と物理マシンとの対応関係についての評価値を、前記仮想マシン配置の評価指標に関するデータに基づき算出する処理と、
最も評価値が低い対応関係を特定する処理と、
をさらに実行させるための請求項３又は４記載のプログラム。
【請求項６】
１又は複数の仮想マシンを含むシステムについての仮想マシンを物理マシンに配置する要求を受信し、
前記システム又は前記要求の送信元に対応付けて登録されている、仮想マシン配置の評価指標に関するデータを読み出し、
前記１又は複数の仮想マシンの各々について、前記仮想マシン配置の評価指標に関するデータに基づき、使用可能な物理マシンのいずれかに配置する場合における第１のコストを算出し、算出された前記第１のコストが最低となる物理マシンを特定し、
前記１又は複数の仮想マシンについて特定された前記物理マシンについてのデータを含む配置設計データを生成する
処理を、コンピュータが実行する配置設計方法。
【請求項７】
１又は複数の仮想マシンを含むシステムについての仮想マシンを物理マシンに配置する要求を受信する受信部と、
前記システム又は前記要求の送信元に対応付けて登録されている、仮想マシン配置の評価指標に関するデータを読み出し、前記１又は複数の仮想マシンの各々について、前記仮想マシン配置の評価指標に関するデータに基づき、使用可能な物理マシンのいずれかに配置する場合における第１のコストを算出するコスト算出部と、
前記コスト算出部に処理を指示し、前記１又は複数の仮想マシンの各々について、算出された前記第１のコストが最低となる物理マシンを特定し、前記１又は複数の仮想マシンについて特定された前記物理マシンについてのデータを含む配置設計データを生成する制御部と、
を有する配置設計装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、仮想マシンの配置設計技術に関する。
【背景技術】
【０００２】
クラウドを実現するデータセンタでは、物理サーバを仮想化し、複数の仮想マシン（ＶＭ：Virtual Machine）を物理サーバ上で起動且つ運用することによりリソースの運用が行われている。【０００３】
このようなデータセンタに対する仮想マシンの配備、撤収、構成変更の要求は、ユーザから随時出力されるものであり、そのタイミングや構成変更の内容については、データセンタ運用者にとって事前予測不能である。また、データセンタの主要な役割は、ユーザの要件を実現すると同時に、それに使用されるインフラストラクチャの利用効率の向上や、電力、ソフトウェアライセンス料などの提供コスト削減である。【０００４】
データセンタの運用要件やＶＭ運用要件としては、省電力運用や耐故障性向上（可用性向上）運用など様々な運用要件が含まれ、これらの運用要件はビジネス環境に合わせて時代とともに変化する。【０００５】
従来技術では、データセンタの運用要件を運用管理システムの開発完了又はシステム稼働開始以前に固定的に決定しておき、このような複数の運用要件に特化したプログラムを予め用意しておく。そして、ユーザからＶＭの配備要求や追加要求が発生すると、要求に係るＶＭを、当該プログラムの処理結果に基づき物理サーバ上に追加的に起動する。【０００６】
しかしながら、環境や社会的要請により個々の運用要件の優先度が変化したり、新たな運用要件が追加されたり、既存の運用要件が無くなったりするため、特定の運用要件に特化したプログラムでは対応できない。そのため、運用要件の変更のたび全面的に変更した複数の運用要件に特化した新たなプログラムを用意することになる。また、運用要件が増えれば増えるほどそれらの要件に対する判定条件を見つけるのが難しくなり、プログラム自体も複雑となる。そのため、環境変化に応じて運用方針を変更することは容易ではない。【０００７】
なお、システム仮想化技術を用いた環境下における計算処理性能を向上させ得る分散計算制御装置が存在している。具体的には、第１の計算処理を構成する複数の第２の計算処理を、１又は複数の物理マシン上で動作する複数の仮想マシンに分散配置する分散計算制御装置は、複数の第２の計算処理を複数の仮想マシンに分散配置する各種の配置パターンを検出する配置パターン検出部と、配置パターンごとのコストを計算するコスト計算部と、コスト計算部の計算結果に基づいて、コストが最小となる配置パターンを選択し、当該配置パターンに従って複数の第２の計算処理を複数の仮想マシンに分散配置する分散配置部とを有する。この技術は、仮想マシン上に処理を分散配置する技術であり、さらに第１の計算処理やその処理の要求元に応じてコストの計算方法を変えるような事項は開示されていない。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０１０−２１８３０７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
よって、本技術の目的は、一側面として、仮想マシンを配置すべき物理マシンを柔軟に決定できるようにするための技術を提供することである。
【課題を解決するための手段】
【００１０】
本技術に係る配置設計方法は、（Ａ）１又は複数の仮想マシンを含むシステムについての仮想マシンを物理マシンに配置する要求を受信するステップと、（Ｂ）システム又は要求の送信元に対応付けて登録されている、仮想マシン配置の評価指標に関するデータを読み出すステップと、（Ｃ）１又は複数の仮想マシンの各々について、仮想マシン配置の評価指標に関するデータに基づき、使用可能な物理マシンのいずれかに配置する場合における第１のコストを算出し、算出された第１のコストが最低となる物理マシンを特定するステップと、（Ｄ）１又は複数の仮想マシンについて特定された物理マシンについてのデータを含む配置設計データを生成するステップとを含む。
【図面の簡単な説明】
【００１１】
【図１】図１は、本技術の実施の形態に係るシステム概要図である。
【図２】図２は、本技術の実施の形態に係る配置設計装置の機能ブロック図を示す図である。
【図３】図３は、第１管理テーブルに格納されているデータの一例を示す図である。
【図４】図４は、第２管理テーブルに格納されているデータの一例を示す図である。
【図５】図５は、物理サーバデータの一例を示す図である。
【図６】図６は、システム管理テーブルの一例を示す図である。
【図７】図７は、ネットワーク管理テーブルの一例を示す図である。
【図８】図８は、クラス管理テーブルの一例を示す図である。
【図９】図９は、ＶＭ管理テーブルの一例を示す図である。
【図１０】図１０は、第１の実施の形態についての処理フローを示す図である。
【図１１】図１１は、構築すべきシステムの一例を示す図である。
【図１２】図１２は、第２管理テーブルに登録すべき評価プラグインデータの一例を示す図である。
【図１３】図１３は、システム管理テーブルに格納すべきデータの一例を示す図である。
【図１４】図１４は、ネットワーク管理テーブルに格納すべきデータの一例を示す図である。
【図１５】図１５は、クラス管理テーブルに格納すべきデータの一例を示す図である。
【図１６】図１６は、グルーピング処理の処理フローを示す図である。
【図１７】図１７は、グルーピングデータ生成処理の処理フローを示す図である。
【図１８】図１８は、初期状態の物理サーバデータの一例を示す図である。
【図１９】図１９は、ネットワーク利用についてのコスト値の算出を説明するための図である。
【図２０】図２０は、ネットワーク利用についてのコスト値の算出を説明するための図である。
【図２１】図２１は、ネットワーク利用についてのコスト値の算出を説明するための図である。
【図２２】図２２は、ネットワーク利用についてのコスト値の算出を説明するための図である。
【図２３】図２３は、システム管理テーブルに格納すべきデータの一例を示す図である。
【図２４】図２４は、グルーピングデータの一例を示す図である。
【図２５】図２５は、グルーピングデータの一例を示す図である。
【図２６】図２６は、グルーピングデータの一例を示す図である。
【図２７】図２７は、合成グルーピングデータの一例を示す図である。
【図２８】図２８は、物理サーバデータの一例を示す図である。
【図２９】図２９は、ＶＭ管理テーブルの一例を示す図である。
【図３０】図３０は、物理サーバデータの一例を示す図である。
【図３１】図３１は、ＶＭ管理テーブルの一例を示す図である。
【図３２】図３２は、ＶＭ配置設計データの一例を示す図である。
【図３３Ａ】図３３Ａは、繰り返しの上限回数である指定回数の例を示す図である。
【図３３Ｂ】図３３Ｂは、タイムアウト時間の例を示す図である。
【図３４】図３４は、第２の実施の形態における処理フローを示す図である。
【図３５】図３５は、第２の実施の形態における処理フローを示す図である。
【図３６】図３６は、第２の実施の形態における処理フローを示す図である。
【図３７】図３７は、ＶＭ管理テーブルの一例を示す図である。
【図３８】図３８は、仮システム配置設計データの一例を示す図である。
【図３９】図３９は、ＶＭ管理テーブルの一例を示す図である。
【図４０】図４０は、テンポラリの仮システム配置設計データの一例を示す図である。
【図４１】図４１は、システム評価値取得処理の処理フローを示す図である。
【図４２】図４２は、可用性についての評価プラグインによるシステム評価値算出処理の処理フローを示す図である。
【図４３】図４３は、電力についての評価プラグインによるシステム評価値算出処理の処理フローを示す図である。
【図４４】図４４は、ネットワーク利用についての評価プラグインによるシステム評価値算出処理の処理フローを示す図である。
【図４５】図４５は、第３の実施の形態の処理フローを示す図である。
【図４６】図４６は、第３の実施の形態の処理フローを示す図である。
【図４７】図４７は、仮システム配置設計データの一例を示す図である。
【図４８】図４８は、第３の実施の形態の処理フローを示す図である。
【図４９】図４９は、仮システム配置設計データの更新例を示す図である。
【図５０】図５０は、仮システム配置設計データの更新例を示す図である。
【図５１】図５１は、仮システム配置設計データの更新例を示す図である。
【図５２】図５２は、仮システム配置設計データの更新例を示す図である。
【図５３】図５３は、仮システム配置設計データの更新例を示す図である。
【図５４】図５４は、ＶＭ配置設計データの一例を示す図である。
【図５５】図５５は、コンピュータの機能ブロック図である。
【図５６】図５６は、配置設計装置の機能ブロック図である。
【発明を実施するための形態】
【００１２】
［実施の形態１］
図１に、本技術の第１の実施の形態に係るシステム概要図を示す。例えばインターネットなどのネットワーク１には、複数のユーザ装置（図１ではユーザ装置Ａ及びＢ）と、クラウドセンタ３とが接続されている。ユーザ装置は、各ユーザに管理されているコンピュータであり、クラウドセンタ３に対して１又は複数の仮想マシンを含むシステムの配備を要求したり、ユーザ自身に関する設定を行ったりするためのコンピュータである。また、クラウドセンタ３は、本実施の形態に係る主要な処理を実施するための配置設計装置３１と、配置設計装置３１によって生成される配置設計データに従って仮想マシンを物理サーバ（物理マシンとも呼ぶ）に起動させるための処理を実施する管理装置３３と、管理装置３３に管理されている複数の物理サーバとを含む。この例では、配置設計装置３１と管理装置３３は別れているが、同じ装置上に配置設計装置３１と管理装置３３の同様な機能が実現されていても良い。
【００１３】
次に、図２に、配置設計装置３１の構成を示す。配置設計装置３１は、要求受信部３１１と、制御部３１２と、配置設計データ格納部３１３と、出力部３１４と、コスト値合成部３１５と、配置及び構成データ格納部３１６と、設定データ格納部３１７と、評価部３１８とを有する。評価部３１８は、各々担当する評価指標を独立に評価して統一的なコスト値を算出するｎ個の評価プラグインを有している。図２では、３つの評価プラグインを示しているが、ｎは任意の整数である。また、ビジネス環境の変化等に応じて個々の評価プラグインは、追加又は削減、置換などが行われる。また、１つの評価指標についての判定内容の変更は、１つの評価プラグインの変更ですむ。
【００１４】
要求受信部３１１は、ユーザ装置からＶＭ配置要求を受信すると、当該ＶＭ配置要求を制御部３１２に出力する。制御部３１２は、配置設計装置３１の制御を行う。具体的には、制御部３１２は、ＶＭ配置要求に応じて処理を行い、処理結果を配置及び構成データ格納部３１６に格納する。また、制御部３１２は、コスト値合成部３１５に処理を要求し、コスト値合成部３１５から処理結果を受け取る。そして、制御部３１２は、処理結果に基づき配置設計データを生成して、配置設計データ格納部３１３に格納する。出力部３１４は、配置設計データ格納部３１３に格納された配置設計データを、例えば管理装置３３に出力する。管理装置３３は、受け取った配置設計データに従って、指定された物理サーバに指定された仮想マシンを起動するといった処理を実施させる。なお、一度要求元のユーザ装置に配置設計データを送信して確認してもらうようにしても良い。
【００１５】
コスト値合成部３１５は、設定データ格納部３１７及び配置及び構成データ格納部３１６に格納されているデータを用いて、評価部３１８と連携して処理を行って、処理結果を制御部３１２に出力する。評価部３１８においては、コスト値合成部３１５から指定された評価プラグインが、自らが担当する評価指標についてのコストを算出する処理を実施する。
【００１６】
また、図３に、設定データ格納部３１７に格納されるデータである第１管理テーブルの一例を示す。第１管理テーブルは、配置設計装置３１に存在している評価プラグインを管理するためのテーブルである。図３の例では、評価プラグイン毎に、評価プラグイン識別子（ＩＤ）と、評価プラグイン名と、合成係数（すなわち重み値）とを含む。合成係数は、デフォルト値であり、この値を用いるか否かは、ユーザやシステム毎に設定することができる。評価プラグイン名は、その評価指標（要件とも呼ぶ）を表している。
【００１７】
さらに、図４に、設定データ格納部３１７に格納されるデータである第２管理テーブルの一例を示す。第２管理テーブルは、クラウドセンタ３に配備されているシステム毎に、適用すべき評価プラグインと、その評価プラグインが計算したコストに対する合成係数とを規定するテーブルである。図４の例では、システム毎に、システム識別子（ＩＤ）と、適用評価プラグインデータとを登録するようになっている。適用評価プラグインデータは、例えば図３に示した第１管理テーブルをそのまま適用する場合には「デフォルト（Ｄｅｆａｕｌｔ）」であり、個別の設定を行う場合にはその設定データである。設定データは、図３の第１管理テーブルをオーバーライドして適用するものであり、適用すべき評価プラグインＩＤと合成係数との対を含む。例えばシステムＩＤ「ＳＹＳ００３」であるシステムの場合は、評価プラグインＩＤが「ＰＩ−０」については合成係数「１０」を用い、評価プラグインＩＤが「ＰＩ−１」については合成係数「１」を用い、評価プラグインＩＤが「ＰＩ−３」については合成係数「１」を用い、評価プラグインＩＤが「ＰＩ−７」については合成係数「５」を用いるような設定となっている。なお、システムＩＤ「ＳＹＳ００３」のシステムについては、それ以外の評価プラグインは用いられない。
【００１８】
ユーザは、例えばユーザ装置から、クラウドセンタ３に配備される自身のシステムについて予め配置設計装置３１が保持する複数の評価プラグインから、適用すべき評価プラグインを指定することができる。
【００１９】
以下、本実施の形態では、一例として可用性についての評価プラグイン（第１評価プラグイン）と、電力についての評価プラグイン（第２評価プラグイン）と、ネットワーク利用についての評価プラグイン（第３評価プラグイン）とを具体的に説明する。実際には、その他の評価プラグインについても、その評価指標について評価ポリシーに従ったロジックを用意することになる。
【００２０】
また、図５に、配置及び構成データ格納部３１６に格納されるデータである物理サーバデータの一例を示す。図５の例では、物理サーバ毎に、物理サーバ識別子（ＩＤ）と、スペック（単位サイズ換算）と、配備可能最大仮想マシン数と、接続スイッチ識別子（ＩＤ）と、配備済仮想マシンの識別子（ＩＤ）と、仮配置仮想マシンの識別子（ＩＤ）と、電源状態とが登録されるようになっている。物理サーバＩＤは、クラウドセンタ３において使用可能な物理サーバのＩＤである。スペックについては、例えばあるタイプのＣＰＵ（Central Processing Unit）を周波数１ＧＨｚで動作させ、例えば４ＧＢのメインメモリを有する物理サーバを、処理能力についてのサイズ「１」の物理サーバであるとして換算した結果が登録されるようになっている。より具体的には、サイズ「２」の物理サーバは、あるタイプのＣＰＵを周波数２ＧＨｚで動作させ、８ＧＢのメインメモリを有する物理サーバである。
【００２１】
本実施の形態では、配備すべき仮想マシンについても、同様に処理能力が指定される。すなわち、処理能力のサイズ「１」の仮想マシンであれば、処理能力のサイズ「１」以上の物理サーバ上に配備可能となる。なお、本実施の形態では、より簡易に、サイズ「Ｓ」、「Ｍ」、「Ｌ」及び「ＬＬ」といったようなサイズの指定を行う例を説明する。サイズ「Ｓ」が指定される場合には、サイズ「１」の仮想マシンを配備する。サイズ「Ｍ」が指定される場合には、サイズ「２」の仮想マシンを配備する。サイズ「Ｌ」が指定される場合には、サイズ「４」の仮想マシンを配備する。より具体的には、あるタイプのＣＰＵ（２コア含む）を２ＧＨｚで動作させ、１６ＧＢのメインメモリを有する物理サーバのような処理能力の仮想マシンである。サイズ「ＬＬ」が指定される場合には、サイズ「８」の仮想マシンを配備する。より具体的には、あるタイプのＣＰＵ（４コア含む）を２ＧＨｚで動作させ、３２ＧＢのメインメモリを有する物理サーバのような処理能力の仮想マシンである。
【００２２】
図６に、配置及び構成データ格納部３１６に格納されるデータであるシステム管理テーブルの一例を示す。図６の例では、クラウドセンタ３に配備されているシステム毎に、システム識別子（ＩＤ）と、システムに含まれる仮想マシンの識別子（ＩＤ）と、システムに含まれるネットワークの識別子（ＮＥＴ  ＩＤ）とが登録されるようになっている。
【００２３】
図７に、配置及び構成データ格納部３１６に格納されるデータであるネットワーク管理テーブルの一例を示す。図７の例では、システム毎に、システムＩＤと、当該システムに含まれるネットワークのＩＤ（ＮＥＴ ＩＤ）と、各ネットワークについて関連する仮想マシンのＩＤとが登録されるようになっている。このデータによって、各システムに、どのようなネットワークが存在しており、どのような仮想マシンが接続されているかを把握できるようになる。
【００２４】
図８に、配置及び構成データ格納部３１６に格納されるデータであるクラス管理テーブルの一例を示す。図８の例では、システム毎に、システムＩＤと、当該システムに含まれる仮想マシンの機能種別（クラスと呼ぶ）と、各クラスに所属する仮想マシンのＩＤとが登録されるようになっている。なお、ＦＷは、ファイアウォールを表し、ＷＥＢはＷｅｂサーバを表し、ＡＰＰはアプリケーションサーバを表し、ＤＢはＤＢサーバを表し、ＡＰＰ／ＤＢはアプリケーションサーバ及びＤＢサーバの機能を有するサーバを表す。
【００２５】
図９に、配置及び構成データ格納部３１６に格納されるデータであるＶＭ管理テーブルの一例を示す。図９の例では、仮想マシン毎に、仮想マシンのＩＤと、システムＩＤと、クラスと、サイズと、接続ネットワークのＩＤと、配置済の物理サーバのＩＤと、仮配置先の物理サーバのＩＤとを登録するようになっている。
【００２６】
次に、図１０乃至図３２を用いて、図１のシステムにより行われる処理を説明する。例えばユーザ装置ＡがＶＭ配置要求をクラウドセンタ３に送信すると、クラウドセンタ３における配置設計装置３１の要求受信部３１１は、当該ＶＭ配置要求を受信し、制御部３１２に出力する（図１０：ステップＳ１）。本実施の形態では、ＶＭ配置要求には、構築すべきシステムのシステムＩＤと、起動すべき仮想マシンについてのデータと、仮想マシン間に設定すべきネットワークについてのデータとを含む。例えば、図１１に示すようなシステムを構築することを想定する。図１１では、システムＩＤ「ＳＹＳ００５」のシステムは、ＦＷクラスの仮想マシンを１台、ＷＥＢクラスの仮想マシンを４台、ＡＰＰクラスの仮想マシンを２台、及びＤＢクラスのマシンを１台を含む。また、ＦＷクラスの仮想マシンとＷＥＢクラスの仮想マシンとの間のネットワークのネットワークＩＤは「ＮＥＴ００５−０１」となっており、ＷＥＢクラスの仮想マシンとＡＰＰクラスの仮想マシンとの間のネットワークのネットワークＩＤは「ＮＥＴ００５−０２」となっており、ＡＰＰクラスの仮想マシンとＤＢクラスの仮想マシンとの間のネットワークのネットワークＩＤは「ＮＥＴ００５−０３」となっている。さらに、クラスＦＷのサイズを「Ｓ」、クラスＷＥＢのサイズを「Ｍ」、クラスＡＰＰのサイズを「Ｌ」、クラスＤＢのサイズを「ＬＬ」とするものとする。このように仮想マシンについてのデータは、各クラスについて仮想マシンの個数、サイズ及びＩＤを含む。さらに、ネットワークについてのデータには、クラス間又は仮想マシン間に設定すべきネットワークのＩＤを含む。
【００２７】
なお、ＶＭ配置要求に係るシステム「ＳＹＳ００５」についての評価プラグインデータについては、予め配置設計装置３１に設定しておいても良いし、ＶＭ配置要求と共に送信するようにしても良い。本例では、例えば図１２に示すようなデータが、システム「ＳＹＳ００５」についての評価プラグインデータとして第２管理テーブル（設定データ格納部３１７）に格納されているものとする。図１２の例では、評価プラグインＩＤ「ＰＩ−０」と「ＰＩ−１」と「ＰＩ−７」についてのみ設定されているので、これらの３つの評価プラグインのみが用いられる。合成係数もこのようにして設定されている値が用いられる。
【００２８】
次に、制御部３１２は、受信したＶＭ配置要求から配置及び構成データ格納部３１６に格納すべきデータを生成し、格納する（ステップＳ３）。具体的には、システム管理テーブルのデータ（図１３）、ネットワーク管理テーブル（図１４）及びクラス管理テーブル（図１５）のデータを生成し、格納する。これらのデータについては、上で述べたＶＭ配置要求から生成可能である。
【００２９】
そして、制御部３１２は、配置すべき仮想マシンのうち未処理の仮想マシンを１つ特定する（ステップＳ５）。例えば仮想マシンの識別子の小さい順に選択しても良いし、ランダムに選択しても良い。そして、制御部３１２は、特定した仮想マシンについて、コスト値合成部３１５及び評価部３１８に、グルーピング処理を実施させる（ステップＳ７）。このグルーピング処理については、図１６乃至図２７を用いて説明する。
【００３０】
コスト値合成部３１５は、特定された仮想マシンのシステムＩＤを、例えば配置及び構成データ格納部３１６に格納されているシステム管理テーブルなどから取得する（図１６：ステップＳ２１）。そして、コスト値合成部３１５は、取得したシステムＩＤから、適用すべき評価プラグイン及び合成係数を特定する（ステップＳ２３）。第２管理テーブルから、システムＩＤに対応付けられているデータを読み出す。なお、デフォルトが指定されている場合には、第１管理テーブルを読み出す。図１２の例であれは、第１乃至第３評価プラグインが特定され、それぞれについての合成係数が特定される。
【００３１】
その後、コスト値合成部３１５は、適用すべき評価プラグインのうち未処理の評価プラグインを特定する（ステップＳ２５）。そして、コスト値合成部３１５は、特定された評価プラグインに、グルーピングデータ生成処理を実施させる（ステップＳ２７）。特定された評価プラグインは、コスト値合成部３１５からの指示に応じて、グルーピングデータ生成処理を実施する。グルーピングデータ生成処理については、図１７乃至図２６を用いて説明する。なお、グルーピングデータ生成処理は、評価プラグインによって内容が異なるが、基本的な処理構造は同じである。
【００３２】
評価プラグインは、特定されている仮想マシンについてのデータ（システム管理テーブル、ネットワーク管理テーブル及びクラス管理テーブルなどのデータ）を、配置及び構成データ格納部３１６から読み出す（図１７：ステップＳ４１）。また、評価プラグインは、物理サーバデータも、配置及び構成データ格納部３１６から読み出す（ステップＳ４３）。例えば、図１８に示すような初期状態であると仮定する。すなわち、図１８は、いずれの仮想マシンも起動されていない状態を表している物理サーバデータを示している。
【００３３】
そして、評価プラグインは、物理サーバデータにおける未処理の物理サーバを１つ特定する（ステップＳ４５）。残配備可能サイズと、配置しようとする仮想マシンのサイズとから、配置可能な物理サーバのみを特定する。その後、評価プラグインは、選択された物理サーバについての差分のコスト値を算出する（ステップＳ４７）。このステップは、各評価プラグインについて異なる処理を実施する。
【００３４】
例えば可用性についての第１評価プラグインは、以下のような処理を実施する。すなわち、ステップＳ４５で特定された物理サーバに、ステップＳ５で特定された仮想マシンを配置した場合を想定して、ステップＳ５で特定された仮想マシンと同じシステムＩＤで且つ同じクラスの仮想マシンの個数ｎをカウントする。そして、コスト値＝ｐ×（ｎ−１）2（ｎ＝１の場合）または、コスト値＝ｐ×（（ｎ−１）2−（ｎ−２）2）（ｎ＞１の場合）によって計算する。ｐは係数で例えば３０である。同じシステムＩＤで且つ同じクラスの仮想マシンを同じ物理サーバへたくさん配置すると、その個数ｎの２乗でコストがかかるものと想定したものである。これは、その物理サーバに障害が発生し、配置した仮想マシンが利用できない場合の影響度を合わせた違約金相当のコスト値を想定したものである。
【００３５】
図１８に示したような状態であれば、どの物理サーバに配置しても、最初の仮想マシンを配置する際にはｎ＝１となるため、コスト値＝「０」となる。
【００３６】
また、例えば電力についての第２評価プラグインは、以下のような処理を実施する。すなわち、ステップＳ４５で特定された物理サーバの電源状態が「ＯＮ」、又は物理サーバデータにおいて仮配置仮想マシンのＩＤに仮想マシンが登録済みである場合には、コスト値＝「０」であり、それ以外の場合には「１０」を設定する。新たに物理サーバの電源をオンにしたり、他の仮想マシンが配置されていない物理サーバを使用する場合には、電力についてのコスト値が「１０」になると想定している。
【００３７】
さらに、例えばネットワーク利用についての第３評価プラグインは、以下のような処理を実施する。すなわち、ステップＳ４５で特定された物理サーバに、ステップＳ５で特定された仮想マシンを配置した場合、当該仮想マシンと同じシステムＩＤで、同じネットワークＩＤで、且つ異なるクラスの仮想マシンが、物理サーバデータにおいて既存配置及び仮配置されている個数を、以下の３つの観点で増加した数をカウントする。具体的には、同じ物理サーバに既存配置又は仮配置されている仮想マシンの増加した個数をＣ０としてカウントし、同じ接続スイッチＩＤのスイッチには接続されているが別の物理サーバに既存配置又は仮配置されている仮想マシンの増加した個数をＣ１としてカウントし、異なる接続スイッチＩＤのスイッチに接続されている物理サーバに既存配置又は仮配置されている仮想マシンの増加した個数をＣ２としてカウントする。
【００３８】
そして、Ｃ０×ａ＋Ｃ１×ｂ＋Ｃ２×ｃによりコストを算出する。ａ、ｂ、ｃは係数であり、例えばａ＝１、ｂ＝２、ｃ＝３０とする。但し、ａ＝０、ｂ＝１、ｃ＝２０のように変更してもよい。
【００３９】
このようにするのは、異なるスイッチに接続されているような物理サーバに仮想マシンを配置してしまうと、物理的なネットワーク利用の程度が高いのでコストを高くするようにしている。
【００４０】
例えば、上で述べた物理サーバデータは、図１９のようなハードウエア構成を示している。すなわち、ラックｒａｃｋ１には、物理サーバＳｖｒ００１乃至Ｓｖｒ０１０が配置されて、それらの物理サーバはスイッチＳＷ００１で接続されている。同様に、ラックｒａｃｋ２には、物理サーバＳｖｒ０１１乃至Ｓｖｒ０２０が配置されて、それらの物理サーバはスイッチＳＷ００２で接続されている。また、ラックｒａｃｋ１０には、物理サーバＳｖｒ０９１乃至Ｓｖｒ１００が配置されて、それらの物理サーバはスイッチＳＷ０１０で接続されている。スイッチＳＷ００１乃至ＳＷ０１０は、Ｌ２スイッチ又はＬ３スイッチ若しくはルータに接続されている。
【００４１】
仮に、図１９に示すように物理サーバＳｖｒ００１にクラスＦＷの仮想マシンＶＭ００５−０１、物理サーバＳｖｒ００２にクラスＷＥＢの仮想マシンＶＭ００５−０２、物理サーバＳｖｒ００３にクラスＷＥＢの仮想マシンＶＭ００５−０３が仮配置されていることを想定する。そして、この状態で、クラスＷＥＢの仮想マシンＶＭ００５−０４を配置することを考える。図２０のように、クラスＷＥＢの仮想マシンＶＭ００５−０４を、物理サーバＳｖｒ００１に配置しようとすると、同じシステムＩＤで、同じネットワークＩＤで且つ異なるクラスの仮想マシンＶＭ００５−０１が存在しているので、Ｃ０＝１である。物理サーバＳｖｒ００２及びＳｖｒ００３には、同じクラスの仮想マシンのみが仮配置されているので、Ｃ１＝０である。異なるスイッチに接続されている物理サーバには、仮想マシンが配置されていないのでＣ２＝０となる。従って、コスト値は、１（＝Ｃ０）×１＝１となる。
【００４２】
さらに、図２１に示すように、クラスＷＥＢの仮想マシンＶＭ００５−０４を、物理サーバＳｖｒ００２に配置しようとすると、物理サーバＳｖｒ００２には、同じクラスの仮想マシンしか仮配置されていないので、Ｃ０＝０となる。一方、同じシステムＩＤで、同じネットワークＩＤで且つ異なるクラスの仮想マシンは、同じスイッチＩＤで且つ異なる物理サーバＳｖｒ００１に存在しているので、Ｃ１＝１となる。異なるスイッチに接続されている物理サーバには、仮想マシンが配置されていないのでＣ２＝０となる。従って、コスト値は、１（＝Ｃ１）×２＝２となる。
【００４３】
さらに、図２２に示すように、クラスＷＥＢの仮想マシンＶＭ００５−０４を、物理サーバＳｖｒ０１１に配置しようとすると、同じスイッチＩＤの物理サーバには他の仮想マシンが存在していないのでＣ０＝Ｃ１＝０である。一方、異なるスイッチＩＤの物理サーバＳｖｒ００１には、同じネットワークＩＤで且つ異なるクラスの仮想マシンＶＭ００５−０１が存在しているのでＣ２＝１となる。従って、コスト値は、１（＝Ｃ２）×３０＝３０となる。
【００４４】
さらに、図２３に示すように、仮想マシンＶＭ００５−０１乃至ＶＭ００５−０６までを仮配置した状態で、クラスＡＰＰの仮想マシンＶＭ００５−０７をＳｖｒ００３に配置しようとする場合には、以下のように仮想マシンがカウントされる。クラスＡＰＰの仮想マシンＶＭ００５−０７とネットワークＩＤが同じという要件を満たすのは、クラスＷＥＢの仮想マシンとなる。クラスＦＷの仮想マシンは異なるネットワークＩＤの仮想マシンとなる。従って、同じ物理サーバにおいて同じネットワークＩＤで且つ異なるクラスの仮想マシンは１つだけであるから、Ｃ０＝１となる。一方、同じスイッチＩＤで且つ異なる物理サーバにおいて同じネットワークＩＤで且つ異なるクラスの仮想マシンは仮想マシンＶＭ００５−０２、ＶＭ００５−０３及びＶＭ００５−０５であるからＣ１＝３となる。異なるスイッチＩＤの物理サーバには対象となる仮想マシンが配置されていないのでＣ２＝０となる。すなわち、コスト値は、１×１＋２×３＝７となる。
【００４５】
なお、図１１に示したネットワーク構成の場合、クラスＷＥＢ及びＡＰＰの場合には同じスイッチＩＤという要件を満たす異なるクラスが複数存在するので留意する。
【００４６】
図１７の処理の説明に戻って、評価プラグインは、同じ値のコスト値が、グルーピングデータに既に存在しているか判断する（ステップＳ４９）。同じ値のコスト値がグルーピングデータに存在しない場合には、評価プラグインは、グルーピングデータにおいてコスト値を登録する（ステップＳ５１）。その後ステップＳ５３に移行する。一方、既に同じ値のコスト値がグルーピングデータに存在する場合には、ステップＳ５３に移行する。
【００４７】
その後、評価プラグインは、算出されたコスト値に対応付けて、ステップＳ４５で特定された物理サーバＩＤの登録する（ステップＳ５３）。
【００４８】
グルーピングデータは、例えば図２４乃至図２６に示すようなデータである。図２４は、例えば可用性についての第１評価プラグインで生成されるグルーピングデータの一例を示している。このように、コスト値毎に、該当する物理サーバのＩＤが登録されるようになっている。同様に、図２５は、電力についての第２評価プラグインで生成されるグルーピングデータの一例を示している。さらに、図２６は、ネットワーク利用についての第３評価プラグインで生成されるグルーピングデータの一例を示している。これによって、使用される可能性のある物理サーバ毎に、各評価指標についてのコスト値が独立に算出され、グルーピングデータとして得られるようになる。
【００４９】
その後、評価プラグインは、未処理の物理サーバが存在しているか判断する（ステップＳ５５）。未処理の物理サーバが存在している場合にはステップＳ４５に戻る。一方、未処理の物理サーバが存在しない場合には、評価プラグインは、生成したグルーピングデータをコスト値合成部３１５に出力する。そして、呼び出し元の処理に戻る。
【００５０】
図１６の処理の説明に戻って、コスト値合成部３１５は、未処理の評価プラグインが存在しているか判断する（ステップＳ２９）。未処理の評価プラグインが存在する場合にはステップＳ２５に戻る。一方、未処理の評価プラグインが存在しない場合には、上の例では図２４乃至図２６に示したグルーピングデータが得られたことになる。
【００５１】
その後、コスト値合成部３１５は、ステップＳ２３で特定された合成係数と、ステップＳ２７で取得されたグルーピングデータとから、合成グルーピングデータを生成する（ステップＳ３１）。上で述べたようなグルーピングデータに含まれる各物理サーバについて、コスト値を読み出して、合成係数で重み付けした上で加算する。そして呼び出し元の処理に戻る。
【００５２】
例えば物理サーバＳｖｒ００１については、第１評価プラグインについてのコスト値＝３０、第２評価プラグインについてのコスト値＝０及び第３評価プラグインについてのコスト値＝０であるから、合成コスト値は、３０×１（＝第１評価プラグインの合成係数）＋０×２（＝第２評価プラグインの合成係数）＋０×１（＝第３評価プラグインの合成係数）＝３０と計算できる。同様に、物理サーバＳｖｒ００３については、第１評価プラグインのコスト値＝０、第２評価プラグインのコスト値＝１０、第３評価プラグインのコスト値＝１であるから、合成コスト値は、０×１＋１０×２＋１×１＝２１と算出される。
【００５３】
このような処理を実施すれば、図２７に示すような合成グルーピングデータが生成される。図２７でも、コスト値毎に、該当する物理サーバのＩＤが登録されるようになっている。なお、このようなデータを得られれば、ステップＳ５で特定された仮想マシンを配置する際に、最もコスト値が低い物理サーバ群を特定できる。このように生成された合成グルーピングデータは、コスト値合成部３１５から、制御部３１２に出力される。
【００５４】
図１０の処理の説明に戻って、制御部３１２は、コスト値合成部３１５から受け取った合成グルーピングデータにおいて、コスト値が最低の物理サーバ群から、所定の法則に従って物理サーバを１台選択する（ステップＳ９）。例えば、物理サーバデータにおいて、最も残配備可能サイズが小さいものを選択しても良いし、逆に最も残配備可能サイズが大きいものを選択しても良い。さらに、コスト値が最低の物理サーバ群の中でランダムに選択しても良い。さらに、他の観点に従って物理サーバを１台選択するようにしても良い。
【００５５】
その後、制御部３１２は、選択された物理サーバのＩＤを、ステップＳ５で特定された仮想マシンの仮配置先として、配置及び構成データ格納部３１６に格納されている物理サーバデータにおいて登録すると共に、ＶＭ管理テーブルにおいても同様に登録する（ステップＳ１１）。
【００５６】
例えば、図２４乃至図２６のようなグルーピングデータ及び図２７のような合成グルーピングデータが、図２８に示すような物理サーバデータ及び図２９に示すようなＶＭ管理テーブル（仮想マシンＶＭ００５−０１乃至ＶＭ００５−０３までが仮配備済みである状態を表す）を前提としているものとする。そうすると、仮想マシンＶＭ００５−０４に対して物理サーバＳｖｒ００３が選択され、図３０に示すように物理サーバデータにおいて物理サーバＳｖｒ００３には仮想マシンＶＭ００５−０４が仮配置仮想マシンＩＤとして登録され、図３１に示すようにＶＭ管理テーブルにおいて仮想マシンＶＭ００５−０４には物理サーバＳｖｒ００３が登録される。
【００５７】
そして、制御部３１２は、未処理の仮想マシンが存在するか判断する（ステップＳ１３）。未処理の仮想マシンが存在する場合には処理はステップＳ５に戻る。一方、未処理の仮想マシンが存在していない場合には、制御部３１２は、ＶＭ管理テーブル又は物理サーバデータにおける仮想マシンの仮配置データから、ＶＭ配置設計データを生成し、配置設計データ格納部３１３に格納する（ステップＳ１５）。例えば、図３２に示すようなＶＭ配置設計データを生成する。図３２の例では、仮想マシン毎に、仮想マシンのＩＤと、システムＩＤと、クラスと、サイズと、接続ネットワークＩＤと、決定配置先の物理サーバＩＤとが登録されるようになっている。但し、仮想マシンと決定配置先の物理サーバＩＤとが対応付けられたデータであれば、他の要素については無くても良い。出力部３１４は、このようなＶＭ配置設計データを管理装置３３に出力する。
【００５８】
以上のようなＶＭ配置設計データがあれば、管理装置３３は、適切に仮想マシンを指定の物理サーバ上に起動させることができる。
【００５９】
例えば、自動的に仮想マシンを起動させる場合には、管理装置３３からの配備完了通知に応じて、制御部３１２は、配備完了通知に係るＶＭ配置設計データに従って、構成及び配置データ格納部３１６におけるＶＭ管理テーブル及び物理サーバデータの状態を更新する（ステップＳ１７）。具体的には、仮配置仮想マシンＩＤの列に登録されている仮想マシンＩＤを、配置済仮想マシンＩＤの列に登録し直す。
【００６０】
以上のような処理を実施することで、ユーザ又はシステム毎に柔軟に物理サーバについて評価を行って、当該評価結果に基づく合成コスト値に従って適切な物理サーバに仮想マシンを配置するという設計データが得られるようになる。
【００６１】
なお、上では新規にシステムを配備するような例を説明したが、あるシステムに仮想マシンを追加するような場合でも同様の処理で取り扱うことができる。
【００６２】
［実施の形態２］
次に、本技術の第２の実施の形態について説明する。第１の実施の形態では、配置すべき仮想マシンを、仮想マシンの識別子順又はランダムに決定していたが、仮想マシンの選択順によって合成コスト値が変動する場合もある。従って、本実施の形態においては、このような問題について対処する。
【００６３】
システムの構成については、第１の実施の形態とほぼ同様である。異なる点は、設定データ格納部３１７に図３３Ａに示すような繰り返しの上限回数である指定回数（例えば１０回）、又は図３３Ｂに示すようなタイムアウト時間（例えば１０秒）のデータが格納されているので、制御部３１２が、設定データ格納部３１７にアクセスすることである。なお、図２では点線にてこのアクセスを表している。
【００６４】
そして、第２の実施の形態におけるシステムの処理について図３４乃至図４４を用いて説明する。
【００６５】
例えばユーザ装置ＡがＶＭ配置要求をクラウドセンタ３に送信すると、クラウドセンタ３における配置設計装置３１の要求受信部３１１は、当該ＶＭ配置要求を受信し、制御部３１２に出力する（図３４：ステップＳ６１）。本実施の形態でも、第１の実施の形態で説明したようなシステムについての仮想マシンを、いずれかの物理サーバに配置するようなＶＭ配置要求を受信した場合を想定する。
【００６６】
次に、制御部３１２は、受信したＶＭ配置要求から配置及び構成データ格納部３１６に格納すべきデータを生成し、格納する（ステップＳ６３）。第１の実施の形態と同様に、システム管理テーブル（図１３）、ネットワーク管理テーブル（図１４）及びクラス管理テーブル（図１５）のデータを生成し、格納する。これらのデータについては、上で述べたＶＭ配置要求から生成可能である。
【００６７】
また、制御部３１２は、設定データ格納部３１７に格納されている繰り返しの上限回数を読み出してＣｒｍａｘに設定し、繰り返し回数のカウンタＣｒに０を設定する（ステップＳ６５）。
【００６８】
また、制御部３１２は、仮想マシンの配置順を１つ生成する（ステップＳ６７）。例えば、ランダムに仮想マシンの識別子を並べるようにしても良いし、１つの順番の中で仮想マシンの順番を入れ替えて他の順番を生成するようにしても良い。
【００６９】
本具体例では、ＶＭ００５−０１、ＶＭ００５−０２、ＶＭ００５−０３、ＶＭ００５−０４、ＶＭ００５−０５、ＶＭ００５−０６、ＶＭ００５−０７及びＶＭ００５−０８の順番を最初に生成し、その後、ＶＭ００５−０６、ＶＭ００５−０７、ＶＭ００５−０３、ＶＭ００５−０４、ＶＭ００５−０５、ＶＭ００５−０２、ＶＭ００５−０１及びＶＭ００５−０８の順番を生成したものとする。
【００７０】
そして、制御部３１２は、配置及び構成データ格納部３１６における物理サーバデータ及びＶＭ管理テーブルにおける仮配置データをクリアする（ステップＳ６９）。ここで、処理は端子Ａを介して図３５の処理に移行する。
【００７１】
図３５の処理の説明に移行して、制御部３１２は、ステップＳ６７で生成した仮想マシンの配置順に従って、未処理の仮想マシンを１つ特定する（ステップＳ７１）。そして、制御部３１２は、特定された仮想マシンについて、コスト値合成部３１５及び評価部３１８に、グルーピング処理を実施させる（ステップＳ７３）。グルーピング処理については、第１の実施の形態と同様であるから、これ以上説明しない。結果として、合成グルーピングデータが生成されることになる。
【００７２】
そして、制御部３１２は、コスト値合成部３１５から合成グルーピングデータを受け取ると、当該合成グルーピングデータにおいて、コスト値が最低の物理サーバ群から、所定の法則に従って物理サーバを１台選択する（ステップＳ７５）。例えば、物理サーバデータにおいて、最も残配備可能サイズが小さいものを選択しても良いし、逆に最も残配備可能サイズが大きいものを選択しても良い。さらに、コスト値が最低の物理サーバ群の中でランダムに選択しても良い。さらに、他の観点に従って物理サーバを１台選択するようにしても良い。
【００７３】
その後、制御部３１２は、選択された物理サーバのＩＤを、ステップＳ７１で特定された仮想マシンの仮配置先として、配置及び構成データ格納部３１６に格納されている物理サーバデータに登録すると共に、ＶＭ管理テーブルにおいても同様に登録する（ステップＳ７７）。
【００７４】
そして、制御部３１２は、ステップＳ６７で生成した仮想マシンの配置順において未処理の仮想マシンが存在するか判断する（ステップＳ７９）。未処理の仮想マシンが存在している場合には、処理はステップＳ７１に戻る。一方、未処理の仮想マシンがない場合には、端子Ｂを介して図３６の処理に移行する。
【００７５】
図３６の処理の説明に移行して、制御部３１２は、仮システム配置設計データが配置及び構成データ格納部３１６に既に存在しているか判断する（ステップＳ７９）。仮想マシン配置要求に係る仮想マシンについての仮配置を初めて行った場合には、仮システム配置設計データは存在していないので、制御部３１２は、配置及び構成データ格納部３１６におけるＶＭ管理テーブル又は物理サーバデータにおける仮配置に係るＶＭ配置データから、仮システム配置設計データを生成し、配置及び構成データ格納部３１６に格納する（ステップＳ８１）。
【００７６】
そして、制御部３１２は、仮システム配置設計データについてシステム評価値取得処理を、コスト値合成部３１５に実施させる（ステップＳ８２）。システム評価値取得処理については、図４１乃至図４４を用いて説明する。この処理を実施して得られたシステム評価値については、コスト値合成部３１５から制御部３１２に返され、制御部３１２は、仮システム配置設計データに追加する。そして処理はステップＳ８９に移行する。
【００７７】
例えば、図３７に示すようなＶＭ管理テーブルがステップＳ７７で生成されると、図３８に示すような仮システム配置設計データが生成される。図３８の例では、システム評価値と、各仮想マシンについて、仮想マシンの識別子と、システムＩＤと、クラスと、サイズと、接続ネットワークＩＤと、配置済物理サーバのＩＤと、仮配置物理サーバのＩＤとを含む。なお、システムＩＤと、クラスと、サイズと、接続ネットワークＩＤとは含まれない場合もある。
【００７８】
一方、仮システム配置設計データが既に存在する場合には、制御部３１２は、配置及び構成データ格納部３１６におけるＶＭ管理テーブル又は物理サーバデータにおける仮配置に係るＶＭ配置データから、テンポラリの仮システム配置設計データを生成し、配置及び構成データ格納部３１６に格納する（ステップＳ８３）。例えば、図３８のような仮システム配置設計データが存在していて、今回は、図３９のようなＶＭ管理テーブルが得られた場合には、図４０に示すようなテンポラリの仮システム配置設計データが生成される。
【００７９】
そして、制御部３１２は、テンポラリの仮システム配置設計データについてシステム評価値取得処理を、コスト値合成部３１５に実施させる（ステップＳ８４）。システム評価値取得処理については、図４１乃至図４４を用いて説明する。この処理を実施して得られたシステム評価値については、コスト値合成部３１５から制御部３１２に返され、制御部３１２は、テンポラリの仮システム配置設計データに追加する。そして処理はステップＳ８５に移行する。
【００８０】
そして、制御部３１２は、仮システム配置設計データのシステム評価値と、テンポラリの仮システム配置設計データのシステム評価値とを比較して、テンポラリの仮システム配置設計データのシステム評価値の方が小さいか判断する（ステップＳ８５）。テンポラリの仮システム配置設計データのシステム評価値が、仮システム配置設計データのシステム評価値以上であれば、制御部３１２は、テンポラリの仮システム配置設計データを破棄する（ステップＳ８６）そして、処理はステップＳ８９に移行する。
【００８１】
一方、テンポラリの仮システム配置設計データのシステム評価値の方が小さい場合には、制御部３１２は、テンポラリの仮システム配置設計データを採用するため、当該テンポラリの仮システム配置設計データで仮システム配置設計データを置換する（ステップＳ８７）。そしてステップＳ８９の処理に移行する。
【００８２】
その後、制御部３１２は、ＣｒがＣｒｍａｘ以上になったか判断する（ステップＳ８９）。ＣｒがＣｒｍａｘ未満であれば、制御部３１２は、Ｃｒを１インクリメントし（ステップＳ９１）、処理は端子Ｃを介して図３４のステップＳ６７に戻る。
【００８３】
一方、ＣｒがＣｒｍａｘ以上となった場合には、制御部３１２は、仮システム配置設計データを、配置及び構成データ格納部３１６におけるＶＭ管理テーブル及び物理サーバデータに反映する（ステップＳ９３）。すなわち、仮配置仮想マシンのＩＤのデータを更新する。その後、制御部３１２は、仮システム配置設計データからＶＭ配置設計データを生成し、配置設計データ格納部３１３に格納する（ステップＳ９５）。例えば、図３２に示すようなＶＭ配置設計データを生成する。出力部３１４は、このようなＶＭ配置設計データを管理装置３３に出力する。
【００８４】
以上のようなＶＭ配置設計データがあれば、管理装置３３は、適切に仮想マシンを指定の物理サーバ上に起動させることができる。
【００８５】
例えば、自動的に仮想マシンを起動させる場合には、管理装置３３からの配備完了通知に基づき制御部３１２は、配備完了通知に係るＶＭ配置設計データに従って、構成及び配置データ格納部３１６におけるＶＭ管理テーブル及び物理サーバデータの状態を更新する。具体的には、仮配置仮想マシンＩＤの列に登録されている仮想マシンＩＤを、配置済仮想マシンＩＤの列に登録し直す。
【００８６】
以上のような処理を実施することで、ユーザ又はシステム毎に柔軟に物理サーバについて評価を行って、当該評価結果に基づく合成コスト値に従って適切な物理サーバに仮想マシンを配置するという設計データが得られるようになる。なお、第１の実施の形態とは異なり、仮想マシンの配置順番も考慮しているので、ユーザ又はシステムについて考慮すべき要件についてコストの低い仮想マシン配置が可能となる。
【００８７】
なお、上では新規にシステムを配備するような例を説明したが、あるシステムに仮想マシンを追加するような場合でも同様の処理で取り扱うことができる。
【００８８】
さらに、上では繰り返し回数を制限する処理の例を示したが、図３３Ｂに示すようにタイムアウト時間で、繰り返しの回数を制限するようにしても良い。タイムアウト時間を用いる場合には、ステップＳ６５から時間の計測を行う。
【００８９】
次に、図４１乃至図４４を用いてシステム評価値取得処理について説明する。
【００９０】
コスト値合成部３１５は、処理に係る仮想マシンのシステムＩＤを、例えば配置及び構成データ格納部３１６に格納されている仮システム配置設計データ又はテンポラリの仮システム配置設計データなどから取得する（ステップＳ１４１）。そして、コスト値合成部３１５は、取得したシステムＩＤから、適用すべき評価プラグイン及び合成係数を特定する（ステップＳ１４３）。第２管理テーブルから、システムＩＤに対応付けられているデータを読み出す。なお、デフォルトが指定されている場合には、第１管理テーブルを読み出す。図１２の例であれは、第１乃至第３評価プラグインが特定され、それぞれについての合成係数が特定される。
【００９１】
そして、コスト値合成部３１５は、未処理の評価プラグインを１つ特定する（ステップＳ１４５）。その後、コスト値合成部３１５は、特定された評価プラグインに対して、システム評価値算出処理を実施させる（ステップＳ１４７）。
【００９２】
例えば、図４２を用いて、可用性についての評価プラグインを呼び出した場合におけるシステム評価値算出処理Ａを説明する。
【００９３】
まず、第１評価プラグインは、処理に係るシステムについての仮システム配置設計データ又はテンポラリの仮システム配置設計データを、配置及び構成データ格納部３１６から読み出す（ステップＳ１６１）。そして、第１評価プラグインは、システム評価値を「０」に初期化する（ステップＳ１６３）。
【００９４】
その後、第１評価プラグインは、仮システム配置設計データにおいて、処理に係るシステムと同じシステムＩＤを有する未処理のクラスを１つ特定する（ステップＳ１６５）。そして第１評価プラグインは、同一システム且つ同一クラスに属する仮想マシンが配置されている物理サーバ毎に、仮想マシンの個数ｎをカウントして、このクラスのコスト値を以下の算式に従って算出する（ステップＳ１６７）。具体的には、コスト値＝ｐ×（ｎ−１）2によって計算する。ｐは係数で例えば３０である。この算式の考え方は、第１の実施の形態において説明したものと同様である。例えば、Ｓｖｒ００１に２個、Ｓｒｖ００２に３個配置されている場合には、３０×（２−１）2＋３０×（３−１）2＝１５０というようにコスト値が算出される。
【００９５】
その後、第１評価プラグインは、クラスのコスト値を、システム評価値に加算することで、全クラスについてのコスト値合計を算出する（ステップＳ１６９）。その後、第１評価プラグインは、未処理のクラスが存在するか判断する（ステップＳ１７１）。未処理のクラスが存在する場合にはステップＳ１６５に戻る。一方、未処理のクラスが存在しない場合には、コスト値合計であるシステム評価値を、コスト値合成部３１５に出力し、呼び出し元の処理に戻る。
【００９６】
また、図４３を用いて、電力についての評価プラグインを呼び出した場合におけるシステム評価値算出処理Ｂを説明する。
【００９７】
第２評価プラグインは、仮システム配置設計データ又はテンポラリの仮システム配置設計データを、配置及び構成データ格納部３１６から読み出す（ステップＳ１８１）。その後、第２評価プラグインは、仮システム配置設計データ又はテンポラリの仮システム配置設計データから、関係する物理サーバを特定し、当該物理サーバのデータを、配置及び構成データ格納部３１６における物理サーバデータから読み出す（ステップＳ１８３）。
【００９８】
また、第２評価プラグインは、システム評価値を「０」に初期化する（ステップＳ１８５）。さらに、第２評価プラグインは、特定された物理サーバのうち、未処理の物理サーバを１つ特定する（ステップＳ１８７）。そして、第２評価プラグインは、特定された物理サーバの電源状態に応じて、当該物理サーバについてのコスト値を算出する（ステップＳ１８９）。本実施の形態においては、電源状態が「ＯＮ」であればコスト値を「０」と設定し、電源状態が「ＯＦＦ」であればコスト値を「１０」と設定する。このようなコスト値設定の考え方は、第１の実施の形態において説明したものと同様である。
【００９９】
その後、第２評価プラグインは、物理サーバについてコスト値を、システム評価値に加算することで、特定された物理サーバのうち全ての物理サーバについてのコスト値合計を算出する（ステップＳ１９１）。そして、第２評価プラグインは、未処理の物理サーバが存在するか判断する（ステップＳ１９３）。未処理の物理サーバが存在する場合にはステップＳ１８７に戻る。一方、未処理の物理サーバが存在しない場合には、コスト値合計であるシステム評価値を、コスト値合成部３１５に出力し、呼び出し元の処理に戻る。
【０１００】
さらに、図４４を用いてネットワーク利用についての第３評価プラグインを呼び出した場合におけるシステム評価値算出処理Ｃを説明する。
【０１０１】
まず、第３評価プラグインは、仮システム配置設計データ又はテンポラリの仮システム配置設計データを読み出す（ステップＳ２０１）。また、第３評価プラグインは、システム評価値を０に初期化する（ステップＳ２０３）。そして、第３評価プラグインは、仮システム配置設計データ又はテンポラリの仮システム配置設計データから、未処理のクラスを１つ第１クラスとして特定する（ステップＳ２０５）。第１クラスは基準となるクラスである。次に、第３評価プラグインは、配置及び構成データ格納部３１６におけるネットワーク管理テーブルなどから、第１クラスと同一システムＩＤ且つ同一ネットワークＩＤの異なるクラスを第２クラスとして特定する（ステップＳ２０７）．
【０１０２】
そして、第３評価プラグインは、第１クラスの仮想マシンの各々について、同じ物理サーバに配置されている第２クラスの仮想マシンの数Ｃ０と、同じ接続スイッチに接続されている異なる物理サーバに配置されている第２クラスの仮想マシンの数Ｃ１と、異なる接続スイッチに接続されている物理サーバに配置されている第２クラスの仮想マシンの数Ｃ２をカウントする（ステップＳ２０９）。カウントの仕方については、図１９乃至図２２を用いて説明したものと同様である。そして、第３評価プラグインは、カウント結果に応じて、コスト値を算出する（ステップＳ２１１）。本例では、Ｃ０の総和×ａ＋Ｃ１の総和×ｂ＋Ｃ２の総和×ｃという数式を用いる。例えばａ＝１、ｂ＝２及びｃ＝３０といった係数を用いる。
【０１０３】
さらに、第３評価プラグインは、システム評価値にコスト値を加算することで、全てのクラスについてのコスト値を合計する（ステップＳ２１３）。そして、第３評価プラグインは、未処理のクラスが存在するか判断する（ステップＳ２１５）。未処理のクラスが存在する場合には、ステップＳ２０５に戻る。一方、未処理のクラスが存在しない場合には、システム評価値／２をコスト値合成部３１５に返して、呼び出し元の処理に戻る。システム評価値／２にしているのは、仮想マシン間の接続を両側からカウントしているのでカウント値が２倍になってしまっているためである。
【０１０４】
図４１の処理の説明に戻って、コスト値合成部３１５は、特定された評価プラグインのうち未処理の評価プラグインが存在するか判断する（ステップＳ１４９）。未処理の評価プラグインが存在する場合にはステップＳ１４５に戻る。一方、未処理の評価プラグインが存在しない場合には、各評価プラグインから取得したシステム評価値と、対応する合成係数との積の総和を、合成システム評価値として算出する（ステップＳ１５１）。コスト値合成部３１５は、この合成システム評価値を制御部３１２に返す。この合成システム評価値は、制御部３１２ではシステム評価値として処理される。
【０１０５】
以上のような処理を実施することで、システム完成後のコスト値合計であるシステム評価値が算出されるようになる。
【０１０６】
［実施の形態３］
次に、本技術の第３の実施の形態について説明する。本実施の形態では、ある順番で仮想マシンを配置した後に、仮想マシン毎に配置先の物理サーバを見直すことで、よりコストが低い仮想マシン配置を探索する処理を実施する例を説明する。
【０１０７】
システムの構成については、第１の実施の形態とほぼ同様である。異なる点は、設定データ格納部３１７に図３３Ａに示すような物理サーバを指定する上限台数である指定物理サーバ台数（例えば９９台）のデータが格納されている。更に場合によっては図３３Ｂに示すようなタイムアウト時間（例えば１０秒）のデータが格納されているので、制御部３１２が、設定データ格納部３１７にアクセスすることである。図２では、点線にてこのアクセスが表されている。
【０１０８】
そして、第３の実施の形態におけるシステムの処理について図４５乃至図５４を用いて説明する。
【０１０９】
例えばユーザ装置ＡがＶＭ配置要求をクラウドセンタ３に送信すると、クラウドセンタ３における配置設計装置３１の要求受信部３１１は、当該ＶＭ配置要求を受信し、制御部３１２に出力する（図４５：ステップＳ３０１）。本実施の形態でも、第１の実施の形態で説明したようなシステムについての仮想マシンを、いずれかの物理サーバに配置するようなＶＭ配置要求を受信した場合を想定する。
【０１１０】
次に、制御部３１２は、受信したＶＭ配置要求から配置及び構成データ格納部３１６に格納すべきデータを生成し、格納する（ステップＳ３０３）。第１の実施の形態と同様に、システム管理テーブル（図１３）、ネットワーク管理テーブル（図１４）及びクラス管理テーブル（図１５）のデータを生成し、格納する。これらのデータについては、上で述べたＶＭ配置要求から生成可能である。
【０１１１】
また、制御部３１２は、設定データ格納部３１７に格納されている指定物理サーバ台数を読み出す（ステップＳ３０５）。
【０１１２】
そして、制御部３１２は、配置すべき仮想マシンのうち、未処理の仮想マシンを１つ特定する（ステップＳ３０７）。そして、制御部３１２は、特定された仮想マシンについて、コスト値合成部３１５及び評価部３１８に、グルーピング処理を実施させる（ステップＳ３０９）。グルーピング処理については、第１の実施の形態と同様であるから、これ以上説明しない。結果として、合成グルーピングデータが生成されることになる。
【０１１３】
そして、制御部３１２は、コスト値合成部３１５から合成グルーピングデータを受け取ると、当該合成グルーピングデータにおいて、コスト値が最低の物理サーバ群から、所定の法則に従って物理サーバを１台選択する（ステップＳ３１１）。例えば、物理サーバデータにおいて、最も残配備可能サイズが小さいものを選択しても良いし、逆に最も残配備可能サイズが大きいものを選択しても良い。さらに、コスト値が最低の物理サーバ群の中でランダムに選択しても良い。さらに、他の観点に従って物理サーバを１台選択するようにしても良い。
【０１１４】
そして、制御部３１２は、選択された物理サーバのＩＤを、ステップＳ３１１で特定された仮想マシンの仮配置先として、配置及び構成データ格納部３１６に格納されている物理サーバデータにおいて登録すると共に、ＶＭ管理テーブルにおいても同様に登録する（ステップＳ３１３）。
【０１１５】
その後、制御部３１２は、配置すべき仮想マシンにおいて未処理の仮想マシンが存在するか判断する（ステップＳ３１５）。未処理の仮想マシンが存在している場合には、処理はステップＳ３０７に戻る。一方、未処理の仮想マシンがない場合には、端子Ｄを介して図４６の処理に移行する。
【０１１６】
図４６の処理の説明に移行して、制御部３１２は、配置及び構成データ格納部３１６におけるＶＭ管理テーブル又は物理サーバデータにおける仮配置に係るＶＭ配置データから、仮システム配置設計データを生成し、配置及び構成データ格納部３１６に格納する（ステップＳ３１７）。また、制御部３１２は、配置及び構成データ格納部３１６におけるＶＭ管理テーブル及び物理サーバデータにおける仮想マシンの仮配置のデータを削除する（ステップＳ３１９）。これは、以下で繰り返し、仮配置を行うためである。その後、制御部３１２は、コスト値合成部３１５及び評価部３１８に、システム評価値取得処理を実施させる（ステップＳ３２１）。この処理は、第２の実施の形態において説明したものと同様であり、ステップＳ３１７で生成した仮システム配置設計データをベースに処理を行う。
【０１１７】
そして、制御部３１２は、ステップＳ３２１で算出されたシステム評価値を、仮システム配置設計データに追加する（ステップＳ３２３）。なお、図３７のような仮システム配置設計データが得られた場合には、システム評価値「２１６」が算出され、図４７に示すように、仮システム配置設計データにシステム評価値が追加される。なお、可用性についての評価プラグインから得られるシステム評価値は「０」で合成係数「１」を乗じて、総合でも「０」となる。また、電力についての評価プラグインから得られるシステム評価値は「３０」で合成係数「２」を乗じて、総合で「６０」となる。さらに、ネットワーク利用についての評価プラグインから得られるシステム評価値が「１５６」で合成係数「１」を乗じて、総合で「１５６」が得られる。そうすると、最終的なシステム評価値は「２１６」となるものとする。なお、図４７に示すように、さらにテンポラリサーバＩＤをも管理するものとする。但し、テンポラリサーバＩＤには、まだ何も設定されていない。
【０１１８】
次に、制御部３１２は、ステップＳ３１７で生成した仮システム配置設計データをベースに、少しずつ仮想マシンの配置先の物理サーバを変更するため、仮システム配置設計データにおける未処理の仮想マシンを１つ特定する（ステップＳ３２５）。例えば、ＶＭ００５−０５、ＶＭ００５−０６、ＶＭ００５−０７、ＶＭ００５−０８、ＶＭ００５−０１、ＶＭ００５−０２、ＶＭ００５−０３、ＶＭ００５−０４といった順番で仮想マシンを特定するものとする。そして、制御部３１２は、物理マシン変更台数をカウントするためのカウンタＣｒを０に初期化する（ステップＳ３２７）。次に、制御部３１２は、残配備可能サイズと、配置しようとする仮想マシンのサイズとから、配置不可能な物理サーバの台数をカウントし、その結果のＣｎをカウンタＣｒへ代入する（ステップＳ３２８）。その後、制御部３１２は、特定された仮想マシンの仮配置先物理サーバを変更する（ステップＳ３２９）。例えば、物理サーバの識別番号を１ずつずらすといったような手法が採用可能である。但し、重複しないようにランダムに選択するようにしても良い。なお、残配備可能サイズと、配置しようとする仮想マシンのサイズとから、配置可能な物理サーバのみを特定する。
【０１１９】
例えば、仮想マシンＶＭ００５−０５の仮配置先の物理サーバをＳｖｒ０１３からＳｖｒ０１４に変更する。但し、ここでは、仮想マシンＶＭ００５−０５乃至ＶＭ００５−０８までは他の物理サーバに変更したとしてもシステム評価値を下げることができないものとする。
【０１２０】
そして、制御部３１２は、ステップＳ３２９の変更を反映させた仮システム配置設計データについてシステム評価値取得処理を実施する（ステップＳ３３１）。この処理はステップＳ３２１と同様である。処理は端子Ｅを介して図４８の処理に移行する。
【０１２１】
図４８の処理の説明に移行して、制御部３１２は、ステップＳ３３１で取得したシステム評価値の方が、仮システム配置設計データに含まれる評価値よりも小さいか判断する（ステップＳ３３３）。ステップＳ３３１で取得したシステム評価値の方が小さいわけではない場合には、ステップＳ３３７に移行する。
【０１２２】
一方、ステップＳ３３１で取得したシステム評価値の方が小さい場合には、制御部３１２は、変更後の仮配置先物理サーバのＩＤをテンポラリサーバＩＤとして登録し、ステップＳ３３１で取得したシステム評価値で、仮システム配置設計データにおけるシステム評価値を置換する（ステップＳ３３５）。上の例では、仮想マシンＶＭ００５−０１について、物理サーバＳｖｒ００９からＳｖｒ０１１に変更した場合に、システム評価値が、変更前のシステム評価値を下回るものとする。例えば、この場合、ネットワーク利用についてのシステム評価値が「９７」で合成係数「１」を乗じて９７となる。他のシステム評価値は同じで、合計で１５７となる。従って、図４９に示すような仮システム配置設計データの変更がなされる。ＶＭ００５−０１についての仮配置先の物理サーバがＳｖｒ０１１に変更され、テンポラリサーバＩＤもＳｖｒ０１１に変更されている。さらに、システム評価値も「１５７」に変更されている。次いで、制御部３１２は、現在のＶＭ以外の「既処理のＶＭ」を「未処理のＶＭ」へ変更する（ステップＳ３３６）。
【０１２３】
その後、制御部３１２は、カウンタＣｒが指定物理サーバ台数以上となっているか判断する（ステップＳ３３７）。設定データ格納部３１７に設定されている指定物理サーバ台数以上となっているかを確認する。指定物理サーバ台数以上となっていない場合には、制御部３１２は、カウンタＣｒの値を１インクリメントし（ステップＳ３３８）、処理は端子Ｆを介してステップＳ３２９に戻る。
【０１２４】
一方、Ｃｒが指定物理サーバ台数以上となった場合には、制御部３１２は、テンポラリサーバＩＤで、ステップＳ３２５で特定された仮想マシンの仮配置先物理サーバのＩＤを置換する（ステップＳ３３９）。そして、制御部３１２は、テンポラリサーバＩＤをクリアする（ステップＳ３４１）。さらに、制御部３１２は、未処理の仮想マシンが存在しているか判断する（ステップＳ３４３）。未処理の仮想マシンが存在する場合には端子Ｇを介してステップＳ３２５に戻る。
【０１２５】
上で述べた例では、仮想マシンＶＭ００５−０１についての仮配置先物理サーバを変更してもシステム評価値を下げることができず、テンポラリサーバＩＤがクリアされて、図５０に示すような状態に遷移する。次に、仮想マシンＶＭ００５−０２について仮配置先物理サーバを変更することになるが、例えばＳｖｒ０１２に変更した際に、可用性についての評価プラグインのシステム評価値が「３０」で合成係数「１」でシステム評価値「３０」と算出され、電力についての評価プラグインのシステム評価値が「３０」で合成係数「２」でシステム評価値「６０」と算出され、ネットワーク利用についての評価プラグインのシステム評価値が「９」で合成係数「１」でシステム評価値「９」と算出される。従って合計でシステム評価値は「９９」となる。従って、仮システム配置設計データは、図５１に示すような状態になる。すなわち、仮想マシンＶＭ００５−０２の仮配置先物理サーバが「Ｓｖｒ０１２」と設定され、テンポラリサーバＩＤの「Ｓｖｒ０１２」と設定され、システム評価値が「９９」に設定される。
【０１２６】
さらに、仮想マシンＶＭ００５−０２の仮配置先物理サーバをＳｖｒ０１４に変更すると、可用性についての評価プラグインのシステム評価値が「０」になり、電力についての評価プラグインのシステム評価値が「４０」で合成係数「２」との積でシステム評価値「８０」が得られ、ネットワーク利用についての評価プラグインのシステム評価値が「１０」で合成係数「１」との積でシステム評価値「１０」が得られる。すなわち、合計のシステム評価値は「９０」であり、これまでの中で最も低いシステム評価値が得られたことになる。従って、仮システム配置設計データは図５２に示すように変更される。すなわち、仮想マシンＶＭ００５−０２についての仮配置先物理サーバが「Ｓｖｒ０１４」に変更され、テンポラリサーバＩＤが「Ｓｖｒ０１４」に変更され、システム評価値が「９０」へ更新される。この後仮想マシンＶＭ００５−０２についてはシステム評価値は小さくならないので、図５３に示すような状態に変更される。すなわち、テンポラリサーバＩＤがクリアされる。以後は、システム評価値が小さな値になることはないものとする。
【０１２７】
図４８の処理の説明に戻って、未処理の仮想マシンが存在していない場合には、制御部３１２は、仮システム配置設計データを、配置及び構成データ格納部３１６におけるＶＭ管理テーブル及び物理サーバデータに反映する（ステップＳ３４５）。すなわち、仮配置仮想マシンのＩＤのデータを更新する。その後、制御部３１２は、仮システム配置設計データからＶＭ配置設計データを生成し、配置設計データ格納部３１３に格納する（ステップＳ３４７）。例えば、図５４に示すようなＶＭ配置設計データを生成する。出力部３１４は、このようなＶＭ配置設計データを管理装置３３に出力する。
【０１２８】
以上のようなＶＭ配置設計データがあれば、管理装置３３は、適切に仮想マシンを指定の物理サーバ上に起動させることができる。
【０１２９】
例えば、自動的に仮想マシンを起動させる場合には、管理装置３３からの配備完了通知に基づき制御部３１２は、配備完了通知に係るＶＭ配置設計データに従って、構成及び配置データ格納部３１６におけるＶＭ管理テーブル及び物理サーバデータの状態を更新する。具体的には、仮配置仮想マシンＩＤの列に登録されている仮想マシンＩＤを、配置済仮想マシンＩＤの列に登録し直す。
【０１３０】
以上のような処理を実施することで、ユーザ又はシステム毎に柔軟に物理サーバについて評価を行って、当該評価結果に基づく合成コスト値に従って適切な物理サーバに仮想マシンを配置するという設計データが得られるようになる。なお、第１及び第２の実施の形態とは異なり、一度決めた仮配置先物理サーバを少しずつ変更してシステム評価値が低い値となる他の物理サーバを探索しているので、ユーザ又はシステムについて考慮すべき要件についてコストの低い仮想マシン配置が可能となる。
【０１３１】
なお、上では新規にシステムを配備するような例を説明したが、あるシステムに仮想マシンを追加するような場合でもほぼ同様の処理で取り扱うことができる。ネットワーク利用についてのコスト値については、調整が必要になる場合もある。
【０１３２】
なお、第２の実施の形態を第３の実施の形態でも実施した後に、上で述べたような仮想マシンの仮配置先物理サーバをずらすような処理を実施するようにしても良い。
【０１３３】
以上本技術の実施の形態を説明したが、本技術はこれに限定されるものではない。例えば、上で述べた装置の機能ブロック図は一例であって、必ずしも実際のプログラムモジュール構成と一致しない場合もある。また、処理フローについても、処理結果が変わらない限り、処理順番を異なるようにしても良いし、並列実行することができる場合もある。
【０１３４】
さらに、評価プラグインについては、上でアルゴリズムの一例を述べたが、他のアルゴリズムを採用するようにしても良い。さらに種類もより多くのものを採用するようにしても良い。
【０１３５】
なお、上で述べた配置設計装置３１、ユーザ装置及び管理装置３３は、コンピュータ装置であって、図５５に示すように、メモリ２５０１とＣＰＵ（Central Processing Unit）２５０３とハードディスク・ドライブ（ＨＤＤ：Hard Disk Drive）２５０５と表示装置２５０９に接続される表示制御部２５０７とリムーバブル・ディスク２５１１用のドライブ装置２５１３と入力装置２５１５とネットワークに接続するための通信制御部２５１７とがバス２５１９で接続されている。オペレーティング・システム（ＯＳ：Operating System）及び本実施例における処理を実施するためのアプリケーション・プログラムは、ＨＤＤ２５０５に格納されており、ＣＰＵ２５０３により実行される際にはＨＤＤ２５０５からメモリ２５０１に読み出される。ＣＰＵ２５０３は、アプリケーション・プログラムの処理内容に応じて表示制御部２５０７、通信制御部２５１７、ドライブ装置２５１３を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ２５０１に格納されるが、ＨＤＤ２５０５に格納されるようにしてもよい。本技術の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク２５１１に格納されて頒布され、ドライブ装置２５１３からＨＤＤ２５０５にインストールされる。インターネットなどのネットワーク及び通信制御部２５１７を経由して、ＨＤＤ２５０５にインストールされる場合もある。このようなコンピュータ装置は、上で述べたＣＰＵ２５０３、メモリ２５０１などのハードウエアとＯＳ及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【０１３６】
以上述べた本実施の形態をまとめると、以下のようになる。
【０１３７】
本技術の実施の形態に係る配置設計方法は、（Ａ）１又は複数の仮想マシンを含むシステムについての仮想マシンを物理マシンに配置する要求を受信するステップと、（Ｂ）システム又は要求の送信元に対応付けて登録されている、仮想マシン配置の評価指標に関するデータを読み出すステップと、（Ｃ）１又は複数の仮想マシンの各々について、仮想マシン配置の評価指標に関するデータに基づき、使用可能な物理マシンのいずれかに配置する場合における第１のコストを算出し、算出された第１のコストが最低となる物理マシンを特定するステップと、（Ｄ）１又は複数の仮想マシンについて特定された物理マシンについてのデータを含む配置設計データを生成するステップとを含む。
【０１３８】
ユーザや要求の送信元毎に評価指標に関するデータを設定すれば、ユーザや要求の送信元に応じて、仮想マシンを配置すべき物理マシンを柔軟に決定できるようになる。
【０１３９】
なお、上で述べた物理マシンを特定するステップが、１又は複数の仮想マシンの各々について、（ｃ１）仮想マシン配置の評価指標に関するデータに含まれる評価指標毎に、使用可能な物理マシンの各々についての第２のコストを算出するステップと、（ｃ２）使用可能な物理マシンの各々について、評価指標の各々について算出された第２のコストを、仮想マシン配置の評価指標に関するデータに含まれる重み値に基づき加算することで、第１のコストを算出するステップとを含むようにしてもよい。このように、評価指標及び重みを組み合わせて、柔軟にコスト値の算出方法を規定することができ、柔軟に配置先の物理マシンを決定できるようになる。
【０１４０】
また、上で述べた物理マシンを特定するステップにおいて、複数の仮想マシンを配置する場合には、任意の順番で仮想マシンを選択し、評価指標毎に、先行して処理された仮想マシン及び当該仮想マシンについて特定された物理マシンについての影響を勘案した第２のコストを算出するようにしてもよい。このように任意の順番で１つずつ仮想マシンの配置先物理マシンを特定するようにすれば、コストの計算処理が簡単になる。
【０１４１】
さらに、上で述べた物理マシンを特定するステップを、仮想マシンを異なる順番で選択するように複数回実行するようにしてもよい。この場合、本配置設計方法は、（Ｅ）物理マシンを特定する処理を実行する毎に、当該物理マシンを特定する処理により特定される、複数の仮想マシンの各々と物理マシンとの対応関係についての評価値を、仮想マシン配置の評価指標に関するデータに基づき算出するステップと、（Ｆ）最も評価値が低い対応関係を特定するステップとをさらに有する。仮想マシンの配置順によって解が異なる可能性がある手法を採用する場合には、順番を変えて全体コスト値である評価値が最低となる仮想マシンの配置先物理マシンを探索するようにしても良い。
【０１４２】
また、本配置設計方法は、（Ｇ）物理マシンを特定する処理を実施することで複数の仮想マシンの各々について特定された物理マシンのうち、少なくとも一部の物理マシンを他の物理マシンに変更した上で、複数の仮想マシンの各々と物理マシンとの対応関係についての評価値を、仮想マシン配置の評価指標に関するデータに基づき算出するステップと、（Ｈ）最も評価値が低い対応関係を特定するステップとをさらに含むようにしてもよい。このようにすれば、より適切な配置先の物理マシンが見つかる場合もある。
【０１４３】
本実施の形態に係る配置設計装置は、１又は複数の仮想マシンを含むシステムについての仮想マシンを物理マシンに配置する要求を受信する受信部（図５６：３０１０）と、システム又は要求の送信元に対応付けて登録されている、データ格納部（図５６：３０４０）から、仮想マシン配置の評価指標に関するデータを読み出し、１又は複数の仮想マシンの各々について、仮想マシン配置の評価指標に関するデータに基づき、使用可能な物理マシンのいずれかに配置する場合における第１のコストを算出するコスト算出部（図５６：３０３０）と、コスト算出部に処理を指示し、１又は複数の仮想マシンの各々について、算出された第１のコストが最低となる物理マシンを特定し、１又は複数の仮想マシンについて特定された物理マシンについてのデータを含む配置設計データを生成する制御部（図５６：３０２０）と有する。
【０１４４】
なお、上で述べたような処理をコンピュータに実施させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブル・ディスク、ＣＤ−ＲＯＭなどの光ディスク、光磁気ディスク、半導体メモリ（例えばＲＯＭ）、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。なお、処理途中のデータについては、ＲＡＭ等の記憶装置に一時保管される。
【図１】
2013005290.tif 000003
【図２】
2013005290.tif 000004
【図３】
2013005290.tif 000005
【図４】
2013005290.tif 000006
【図５】
2013005290.tif 000007
【図６】
2013005290.tif 000008
【図７】
2013005290.tif 000009
【図８】
2013005290.tif 000010
【図９】
2013005290.tif 000011
【図１０】
2013005290.tif 000012
【図１１】
2013005290.tif 000013
【図１２】
2013005290.tif 000014
【図１３】
2013005290.tif 000015
【図１４】
2013005290.tif 000016
【図１５】
2013005290.tif 000017
【図１６】
2013005290.tif 000018
【図１７】
2013005290.tif 000019
【図１８】
2013005290.tif 000020
【図１９】
2013005290.tif 000021
【図２０】
2013005290.tif 000022
【図２１】
2013005290.tif 000023
【図２２】
2013005290.tif 000024
【図２３】
2013005290.tif 000025
【図２４】
2013005290.tif 000026
【図２５】
2013005290.tif 000027
【図２６】
2013005290.tif 000028
【図２７】
2013005290.tif 000029
【図２８】
2013005290.tif 000030
【図２９】
2013005290.tif 000031
【図３０】
2013005290.tif 000032
【図３１】
2013005290.tif 000033
【図３２】
2013005290.tif 000034
【図３３Ａ】
2013005290.tif 000035
【図３３Ｂ】
2013005290.tif 000036
【図３４】
2013005290.tif 000037
【図３５】
2013005290.tif 000038
【図３６】
2013005290.tif 000039
【図３７】
2013005290.tif 000040
【図３８】
2013005290.tif 000041
【図３９】
2013005290.tif 000042
【図４０】
2013005290.tif 000043
【図４１】
2013005290.tif 000044
【図４２】
2013005290.tif 000045
【図４３】
2013005290.tif 000046
【図４４】
2013005290.tif 000047
【図４５】
2013005290.tif 000048
【図４６】
2013005290.tif 000049
【図４７】
2013005290.tif 000050
【図４８】
2013005290.tif 000051
【図４９】
2013005290.tif 000052
【図５０】
2013005290.tif 000053
【図５１】
2013005290.tif 000054
【図５２】
2013005290.tif 000055
【図５３】
2013005290.tif 000056
【図５４】
2013005290.tif 000057
【図５５】
2013005290.tif 000058
【図５６】
2013005290.tif 000059
【手続補正書】
【提出日】平成25年12月12日(2013.12.12)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項５
【補正方法】変更
【補正の内容】
【請求項５】
前記コンピュータに、
前記物理マシンを特定する処理を実施することで前記複数の仮想マシンについて特定された物理マシンのうち、少なくとも一部の物理マシンを他の物理マシンに変更した上で、前記複数の仮想マシンの各々と物理マシンとの対応関係についての評価値を、前記仮想マシン配置の評価指標に関するデータに基づき算出する処理と、
最も評価値が低い対応関係を特定する処理と、
をさらに実行させるための請求項３又は４記載のプログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１１
【補正方法】変更
【補正の内容】
【００１１】
【図１】図１は、本技術の実施の形態に係るシステム概要図である。
【図２】図２は、本技術の実施の形態に係る配置設計装置の機能ブロック図を示す図である。
【図３】図３は、第１管理テーブルに格納されているデータの一例を示す図である。
【図４】図４は、第２管理テーブルに格納されているデータの一例を示す図である。
【図５】図５は、物理サーバデータの一例を示す図である。
【図６】図６は、システム管理テーブルの一例を示す図である。
【図７】図７は、ネットワーク管理テーブルの一例を示す図である。
【図８】図８は、クラス管理テーブルの一例を示す図である。
【図９】図９は、ＶＭ管理テーブルの一例を示す図である。
【図１０】図１０は、第１の実施の形態についての処理フローを示す図である。
【図１１】図１１は、構築すべきシステムの一例を示す図である。
【図１２】図１２は、第２管理テーブルに登録すべき評価プラグインデータの一例を示す図である。
【図１３】図１３は、システム管理テーブルに格納すべきデータの一例を示す図である。
【図１４】図１４は、ネットワーク管理テーブルに格納すべきデータの一例を示す図である。
【図１５】図１５は、クラス管理テーブルに格納すべきデータの一例を示す図である。
【図１６】図１６は、グルーピング処理の処理フローを示す図である。
【図１７】図１７は、グルーピングデータ生成処理の処理フローを示す図である。
【図１８】図１８は、初期状態の物理サーバデータの一例を示す図である。
【図１９】図１９は、ネットワーク利用についてのコスト値の算出を説明するための図である。
【図２０】図２０は、ネットワーク利用についてのコスト値の算出を説明するための図である。
【図２１】図２１は、ネットワーク利用についてのコスト値の算出を説明するための図である。
【図２２】図２２は、ネットワーク利用についてのコスト値の算出を説明するための図である。
【図２３】図２３は、システム管理テーブルに格納すべきデータの一例を示す図である。
【図２４】図２４は、グルーピングデータの一例を示す図である。
【図２５】図２５は、グルーピングデータの一例を示す図である。
【図２６】図２６は、グルーピングデータの一例を示す図である。
【図２７】図２７は、合成グルーピングデータの一例を示す図である。
【図２８】図２８は、物理サーバデータの一例を示す図である。
【図２９】図２９は、ＶＭ管理テーブルの一例を示す図である。
【図３０】図３０は、物理サーバデータの一例を示す図である。
【図３１】図３１は、ＶＭ管理テーブルの一例を示す図である。
【図３２】図３２は、ＶＭ配置設計データの一例を示す図である。
【図３３Ａ】図３３Ａは、指定物理サーバ台数の例を示す図である。
【図３３Ｂ】図３３Ｂは、タイムアウト時間の例を示す図である。
【図３４】図３４は、第２の実施の形態における処理フローを示す図である。
【図３５】図３５は、第２の実施の形態における処理フローを示す図である。
【図３６】図３６は、第２の実施の形態における処理フローを示す図である。
【図３７】図３７は、ＶＭ管理テーブルの一例を示す図である。
【図３８】図３８は、仮システム配置設計データの一例を示す図である。
【図３９】図３９は、ＶＭ管理テーブルの一例を示す図である。
【図４０】図４０は、テンポラリの仮システム配置設計データの一例を示す図である。
【図４１】図４１は、システム評価値取得処理の処理フローを示す図である。
【図４２】図４２は、可用性についての評価プラグインによるシステム評価値算出処理の処理フローを示す図である。
【図４３】図４３は、電力についての評価プラグインによるシステム評価値算出処理の処理フローを示す図である。
【図４４】図４４は、ネットワーク利用についての評価プラグインによるシステム評価値算出処理の処理フローを示す図である。
【図４５】図４５は、第３の実施の形態の処理フローを示す図である。
【図４６】図４６は、第３の実施の形態の処理フローを示す図である。
【図４７】図４７は、仮システム配置設計データの一例を示す図である。
【図４８】図４８は、第３の実施の形態の処理フローを示す図である。
【図４９】図４９は、仮システム配置設計データの更新例を示す図である。
【図５０】図５０は、仮システム配置設計データの更新例を示す図である。
【図５１】図５１は、仮システム配置設計データの更新例を示す図である。
【図５２】図５２は、仮システム配置設計データの更新例を示す図である。
【図５３】図５３は、仮システム配置設計データの更新例を示す図である。
【図５４】図５４は、ＶＭ配置設計データの一例を示す図である。
【図５５】図５５は、コンピュータの機能ブロック図である。
【図５６】図５６は、配置設計装置の機能ブロック図である。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００２０
【補正方法】変更
【補正の内容】
【００２０】
また、図５に、配置及び構成データ格納部３１６に格納されるデータである物理サーバデータの一例を示す。図５の例では、物理サーバ毎に、物理サーバ識別子（ＩＤ）と、スペック（単位サイズ換算）と、配備可能最大仮想マシン数と、接続スイッチ識別子（ＩＤ）と、配置済仮想マシンの識別子（ＩＤ）と、仮配置仮想マシンの識別子（ＩＤ）と、電源状態とが登録されるようになっている。物理サーバＩＤは、クラウドセンタ３において使用可能な物理サーバのＩＤである。スペックについては、例えばあるタイプのＣＰＵ（Central Processing Unit）を周波数１ＧＨｚで動作させ、例えば４ＧＢのメインメモリを有する物理サーバを、処理能力についてのサイズ「１」の物理サーバであるとして換算した結果が登録されるようになっている。より具体的には、サイズ「２」の物理サーバは、あるタイプのＣＰＵを周波数２ＧＨｚで動作させ、８ＧＢのメインメモリを有する物理サーバである。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００４７
【補正方法】変更
【補正の内容】
【００４７】
その後、評価プラグインは、算出されたコスト値に対応付けて、ステップＳ４５で特定された物理サーバのＩＤを登録する（ステップＳ５３）。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００５９
【補正方法】変更
【補正の内容】
【００５９】
例えば、自動的に仮想マシンを起動させる場合には、管理装置３３からの配備完了通知に応じて、制御部３１２は、配備完了通知に係るＶＭ配置設計データに従って、配置及び構成データ格納部３１６におけるＶＭ管理テーブル及び物理サーバデータの状態を更新する（ステップＳ１７）。具体的には、仮配置仮想マシンＩＤの列に登録されている仮想マシンＩＤを、配置済仮想マシンＩＤの列に登録し直す。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００６３
【補正方法】変更
【補正の内容】
【００６３】
システムの構成については、第１の実施の形態とほぼ同様である。異なる点は、設定データ格納部３１７に繰り返しの上限回数である指定回数（例えば１０回）、又は図３３Ｂに示すようなタイムアウト時間（例えば１０秒）のデータが格納されているので、制御部３１２が、設定データ格納部３１７にアクセスすることである。なお、図２では点線にてこのアクセスを表している。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００７５
【補正方法】変更
【補正の内容】
【００７５】
図３６の処理の説明に移行して、制御部３１２は、仮システム配置設計データが配置及び構成データ格納部３１６に既に存在しているか判断する（ステップＳ８０）。仮想マシン配置要求に係る仮想マシンについての仮配置を初めて行った場合には、仮システム配置設計データは存在していないので、制御部３１２は、配置及び構成データ格納部３１６におけるＶＭ管理テーブル又は物理サーバデータにおける仮配置に係るＶＭ配置データから、仮システム配置設計データを生成し、配置及び構成データ格納部３１６に格納する（ステップＳ８１）。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】００７７
【補正方法】変更
【補正の内容】
【００７７】
例えば、図３７に示すようなＶＭ管理テーブルがステップＳ７７で生成されると、図３８に示すような仮システム配置設計データが生成される。図３８の例では、システム評価値と、各仮想マシンについて、仮想マシンの識別子と、システムＩＤと、クラスと、サイズと、接続ネットワークＩＤと、配置済物理サーバのＩＤと、仮配置先の物理サーバのＩＤとを含む。なお、システムＩＤと、クラスと、サイズと、接続ネットワークＩＤとは含まれない場合もある。
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】００８５
【補正方法】変更
【補正の内容】
【００８５】
例えば、自動的に仮想マシンを起動させる場合には、管理装置３３からの配備完了通知に基づき制御部３１２は、配備完了通知に係るＶＭ配置設計データに従って、配置及び構成データ格納部３１６におけるＶＭ管理テーブル及び物理サーバデータの状態を更新する。具体的には、仮配置仮想マシンＩＤの列に登録されている仮想マシンＩＤを、配置済仮想マシンＩＤの列に登録し直す。
【手続補正１０】
【補正対象書類名】明細書
【補正対象項目名】０１２５
【補正方法】変更
【補正の内容】
【０１２５】
上で述べた例では、仮想マシンＶＭ００５−０１についての仮配置先物理サーバを変更してもシステム評価値を下げることができず、テンポラリサーバＩＤがクリアされて、図５０に示すような状態に遷移する。次に、仮想マシンＶＭ００５−０２について仮配置先物理サーバを変更することになるが、例えばＳｖｒ０１２に変更した際に、可用性についての評価プラグインのシステム評価値が「３０」で合成係数「１」でシステム評価値「３０」と算出され、電力についての評価プラグインのシステム評価値が「３０」で合成係数「２」でシステム評価値「６０」と算出され、ネットワーク利用についての評価プラグインのシステム評価値が「９」で合成係数「１」でシステム評価値「９」と算出される。従って合計でシステム評価値は「９９」となる。従って、仮システム配置設計データは、図５１に示すような状態になる。すなわち、仮想マシンＶＭ００５−０２の仮配置先物理サーバが「Ｓｖｒ０１２」と設定され、テンポラリサーバＩＤが「Ｓｖｒ０１２」と設定され、システム評価値が「９９」に設定される。
【手続補正１１】
【補正対象書類名】明細書
【補正対象項目名】０１２９
【補正方法】変更
【補正の内容】
【０１２９】
例えば、自動的に仮想マシンを起動させる場合には、管理装置３３からの配備完了通知に基づき制御部３１２は、配備完了通知に係るＶＭ配置設計データに従って、配置及び構成データ格納部３１６におけるＶＭ管理テーブル及び物理サーバデータの状態を更新する。具体的には、仮配置仮想マシンＩＤの列に登録されている仮想マシンＩＤを、配置済仮想マシンＩＤの列に登録し直す。
【手続補正１２】
【補正対象書類名】明細書
【補正対象項目名】０１４３
【補正方法】変更
【補正の内容】
【０１４３】
本実施の形態に係る配置設計装置は、１又は複数の仮想マシンを含むシステムについての仮想マシンを物理マシンに配置する要求を受信する受信部（図５６：３０１０）と、システム又は要求の送信元に対応付けて登録されている、データ格納部（図５６：３０４０）から、仮想マシン配置の評価指標に関するデータを読み出し、１又は複数の仮想マシンの各々について、仮想マシン配置の評価指標に関するデータに基づき、使用可能な物理マシンのいずれかに配置する場合における第１のコストを算出するコスト算出部（図５６：３０３０）と、コスト算出部に処理を指示し、１又は複数の仮想マシンの各々について、算出された第１のコストが最低となる物理マシンを特定し、１又は複数の仮想マシンについて特定された物理マシンについてのデータを含む配置設計データを生成する制御部（図５６：３０２０）とを有する。
【手続補正１３】
【補正対象書類名】図面
【補正対象項目名】図５
【補正方法】変更
【補正の内容】
【図５】
2013005290.tif 000060
【手続補正１４】
【補正対象書類名】図面
【補正対象項目名】図１８
【補正方法】変更
【補正の内容】
【図１８】
2013005290.tif 000061
【手続補正１５】
【補正対象書類名】図面
【補正対象項目名】図２８
【補正方法】変更
【補正の内容】
【図２８】
2013005290.tif 000062
【手続補正１６】
【補正対象書類名】図面
【補正対象項目名】図３０
【補正方法】変更
【補正の内容】
【図３０】
2013005290.tif 000063
【手続補正１７】
【補正対象書類名】図面
【補正対象項目名】図３６
【補正方法】変更
【補正の内容】
【図３６】
2013005290.tif 000064
【手続補正１８】
【補正対象書類名】図面
【補正対象項目名】図５６
【補正方法】変更
【補正の内容】
【図５６】
2013005290.tif 000065
【国際調査報告】
2013005290.tif 000066
2013005290.tif 000067