(57)【要約】      （修正有）【課題】配備のための設定が用意されていない場合においても適切な物理マシンにＶＭを配備する。【解決手段】グループに属する仮想マシンの通信ルールについての情報をグループ毎に格納する第１データ格納部を用いて、同じグループに属する仮想マシン間での通信が許可されていないグループを特定し、特定されたグループの識別情報に対応付けて分散配備を表す配備情報を第２データ格納部に格納し、第１のグループに属する第１の仮想マシンの配備指示を受け付けた場合、第１のグループの識別情報に対応付けて配備情報が第２データ格納部に格納されているか判定し、第１のグループの識別情報に対応付けて配備情報が第２データ格納部に格納されている場合、複数の物理マシンのうち第１のグループに属する第１の仮想マシン以外の仮想マシンが動作していない物理マシンの中から、第１の仮想マシンの配備先の物理マシンを特定する処理を含む。【選択図】図１６
2017174170.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
グループに属する仮想マシンの通信ルールについての情報をグループ毎に格納する第１データ格納部を用いて、同じグループに属する仮想マシン間での通信が許可されていないグループを特定し、
特定された前記グループの識別情報に対応付けて分散配備を表す配備情報を第２データ格納部に格納し、
第１のグループに属する第１の仮想マシンの配備指示を受け付けた場合、前記第１のグループの識別情報に対応付けて前記配備情報が前記第２データ格納部に格納されているか判定し、
前記第１のグループの識別情報に対応付けて前記配備情報が前記第２データ格納部に格納されている場合、複数の物理マシンのうち前記第１のグループに属する前記第１の仮想マシン以外の仮想マシンが動作していない物理マシンの中から、前記第１の仮想マシンの配備先の物理マシンを特定する、
処理を実行させる配備プログラム。
【請求項２】
前記第１の仮想マシンの配備先の物理マシンを特定する処理において、
前記物理マシンのうち前記第１のグループに属する前記第１の仮想マシン以外の仮想マシンが動作していない物理マシンの各々について、当該物理マシン上で前記第１の仮想マシンを動作させた場合における通信コストを算出し、
算出された前記通信コストに基づき、前記第１の仮想マシンの配備先の物理マシンを特定する、
請求項１記載の配備プログラム。
【請求項３】
前記通信コストを算出する処理において、
前記第１の仮想マシンの複数の通信相手の各々について所定の方法で算出した通信コストの総和を求めることにより前記物理マシン上で前記第１の仮想マシンを動作させた場合における通信コストを算出し、
前記所定の方法は、
前記第１の仮想マシンの通信相手が同一の物理マシンにおいて動作する場合における通信コストを、前記第１の仮想マシンの通信相手が異なる物理マシンにおいて動作する場合における通信コストより低くする方法である、
請求項２記載の配備プログラム。
【請求項４】
前記コンピュータに、
前記第１のグループの識別情報に対応付けて前記配備情報が前記第２データ格納部に格納されていない場合、前記複数の物理マシンの中から、前記第１の仮想マシンの配備先の物理マシンを特定する、
処理をさらに実行させる請求項１乃至３のいずれか１つ記載の配備プログラム。
【請求項５】
前記コンピュータに、
特定された前記配備先の物理マシンにおいて前記第１の仮想マシンを起動するためのコマンドを出力する、
処理をさらに実行させる請求項１乃至４のいずれか１つ記載の配備プログラム。
【請求項６】
コンピュータが、
グループに属する仮想マシンの通信ルールについての情報をグループ毎に格納する第１データ格納部を用いて、同じグループに属する仮想マシン間での通信が許可されていないグループを特定し、
特定された前記グループの識別情報に対応付けて分散配備を表す配備情報を第２データ格納部に格納し、
第１のグループに属する第１の仮想マシンの配備指示を受け付けた場合、前記第１のグループの識別情報に対応付けて前記配備情報が前記第２データ格納部に格納されているか判定し、
前記第１のグループの識別情報に対応付けて前記配備情報が前記第２データ格納部に格納されている場合、複数の物理マシンのうち前記第１のグループに属する前記第１の仮想マシン以外の仮想マシンが動作していない物理マシンの中から、前記第１の仮想マシンの配備先の物理マシンを特定する、
処理を実行する配備方法。
【請求項７】
グループに属する仮想マシンの通信ルールについての情報をグループ毎に格納する第１データ格納部を用いて、同じグループに属する仮想マシン間での通信が許可されていないグループを特定し、特定された前記グループの識別情報に対応付けて分散配備を表す配備情報を第２データ格納部に格納する第１処理部と、
第１のグループに属する第１の仮想マシンの配備指示を受け付けた場合、前記第１のグループの識別情報に対応付けて前記配備情報が前記第２データ格納部に格納されているか判定し、前記第１のグループの識別情報に対応付けて前記配備情報が前記第２データ格納部に格納されている場合、複数の物理マシンのうち前記第１のグループに属する前記第１の仮想マシン以外の仮想マシンが動作していない物理マシンの中から、前記第１の仮想マシンの配備先の物理マシンを特定する第２処理部と、
を有する配備装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想マシンの配備技術に関する。
【背景技術】
【０００２】
ＩａａＳ（Infrastructure as a Service）のシステムにおいては、ＶＭ（Virtual Machine）をどの物理マシンに配備するかによってＶＭの処理性能やＶＭ間の通信の速度が変わる。そのため、ＶＭの利用者によって予め作成された、配備のための設定に従ってＶＭを配備することが行われている。
【０００３】
配備のための設定は、各ＶＭの役割（例えば、ウェブサーバ、アプリケーションサーバ、或いはデータベースサーバ）および物理マシンのスペック等を考慮して作成されるが、この作業には手間がかかる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−１９９３９５号公報
【特許文献２】国際公開第２０１５／０４０７８８号
【特許文献３】特開２０１０−１４０１３４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明の目的は、１つの側面では、配備のための設定が用意されていない場合においても適切な物理マシンにＶＭを配備するための技術を提供することである。
【課題を解決するための手段】
【０００６】
本発明に係る配備方法は、グループに属する仮想マシンの通信ルールについての情報をグループ毎に格納する第１データ格納部を用いて、同じグループに属する仮想マシン間での通信が許可されていないグループを特定し、特定されたグループの識別情報に対応付けて分散配備を表す配備情報を第２データ格納部に格納し、第１のグループに属する第１の仮想マシンの配備指示を受け付けた場合、第１のグループの識別情報に対応付けて配備情報が第２データ格納部に格納されているか判定し、第１のグループの識別情報に対応付けて配備情報が第２データ格納部に格納されている場合、複数の物理マシンのうち第１のグループに属する第１の仮想マシン以外の仮想マシンが動作していない物理マシンの中から、第１の仮想マシンの配備先の物理マシンを特定する処理を含む。
【発明の効果】
【０００７】
１つの側面では、配備のための設定が用意されていない場合においても適切な物理マシンにＶＭを配備できるようになる。
【図面の簡単な説明】
【０００８】
【図１】図１は、本実施の形態におけるシステムの概要を示す図である。
【図２】図２は、管理データ格納部に設けられるデータ格納部を示す図である。
【図３】図３は、ＶＭコントローラの機能ブロック図である。
【図４】図４は、ＳＧデータ格納部に格納される管理表の一例を示す図である。
【図５】図５は、ルールデータ格納部に格納される管理表の一例を示す図である。
【図６】図６は、ＡＡＦグループデータ格納部に格納される管理表の一例を示す図である。
【図７】図７は、ＣＯＭグループデータ格納部に格納される管理表の一例を示す図である。
【図８】図８は、ＶＭ管理データ格納部に格納される管理表の一例を示す図である。
【図９】図９は、セキュリティグループについて説明するための図である。
【図１０】図１０は、ＶＭスケジューラについて説明するための図である。
【図１１】図１１は、ＡＡＦグループについて説明するための図である。
【図１２】図１２は、ＡＡＦグループについて説明するための図である。
【図１３】図１３は、ＡＡＦグループについて説明するための図である。
【図１４】図１４は、ＣＯＭグループについて説明するための図である。
【図１５】図１５は、ＡＡＦグループおよびＣＯＭグループを生成する処理の処理フローを示す図である。
【図１６】図１６は、ＡＡＦグループ生成処理の処理フローを示す図である。
【図１７】図１７は、ＣＯＭグループ生成処理の処理フローを示す図である。
【図１８】図１８は、生成されたＡＡＦグループおよびＣＯＭグループに基づいて配備先の物理マシンを決定する処理の処理フローを示す図である。
【図１９Ａ】図１９Ａは、ＡＡＦ設定処理の処理フローを示す図である。
【図１９Ｂ】図１９Ｂは、起動時に実行されるコマンドの一例を示す図である。
【図２０】図２０は、通信コストの計算処理の処理フローを示す図である。
【図２１Ａ】図２１Ａは、通信コストの計算処理の処理フローを示す図である。
【図２１Ｂ】図２１Ｂは、算出される通信コストの一例を示す図である。
【図２２】図２２は、配備先の物理マシンにおけるハイパバイザが実行する処理の処理フローを示す図である。
【図２３】図２３は、配備装置の具体的な動作について説明するための図である。
【図２４】図２４は、配備装置の具体的な動作について説明するための図である。
【図２５】図２５は、配備装置の具体的な動作について説明するための図である。
【図２６】図２６は、配備装置の具体的な動作について説明するための図である。
【図２７】図２７は、配備装置の具体的な動作について説明するための図である。
【図２８】図２８は、配備装置の具体的な動作について説明するための図である。
【図２９】図２９は、コンピュータの機能ブロック図である。
【発明を実施するための形態】
【０００９】
図１に、本実施の形態におけるシステムの概要を示す。本実施の形態の主要な処理を実行する配備装置１は、物理リソース５に含まれる装置（本実施の形態においては、物理マシン、ネットワーク機器およびストレージ機器等）の各々に接続される。
【００１０】
配備装置１は、ＶＭコントローラ１０と、ネットワークコントローラ１１と、ストレージコントローラ１２と、受付部１３と、管理データ格納部１４とを有する。ＶＭコントローラ１０は、物理リソース５におけるＶＭを配備、更新および撤収するための処理を実行する。ネットワークコントローラ１１は、物理リソース５における仮想スイッチおよび仮想ルータ等の仮想ネットワーク機器を配備、更新および撤収するための処理を実行する。ストレージコントローラ１２は、物理リソース５における仮想ストレージデバイスを配備、更新および撤収する処理を実行する。また、ＶＭコントローラ１０、ネットワークコントローラ１１およびストレージコントローラ１２は、物理リソース５から使用状況についての情報および故障情報等を取得し、管理データ格納部１４に格納する。受付部１３は、利用者からの指示をネットワークを介して或いは入力装置を介して受け付ける処理を実行する。
【００１１】
図２に、管理データ格納部１４に設けられるデータ格納部を示す。管理データ格納部１４は、セキュリティグループについての管理表を格納するＳＧ（Security Group）データ格納部１０３と、通信ルールについての管理表を格納するルールデータ格納部１０４と、ＡＡＦ（Anti-AFfinity）グループについての管理表を格納するＡＡＦグループデータ格納部１０５と、ＣＯＭ（COMmunity）グループについての管理表を格納するＣＯＭグループデータ格納部１０６と、ＶＭについての管理表を格納するＶＭ管理データ格納部１０７とを有する。ＳＧ、ＡＡＦグループおよびＣＯＭグループについては、後で説明する。
【００１２】
図３に、ＶＭコントローラ１０の機能ブロック図を示す。ＶＭコントローラ１０は、グループ生成部１０１と、配備部１０２とを有する。
【００１３】
グループ生成部１０１は、ＳＧデータ格納部１０３に格納されている管理表およびルールデータ格納部１０４に格納されている管理表に基づき、ＡＡＦグループの管理表を生成し、生成したＡＡＦグループの管理表をＡＡＦグループデータ格納部１０５に格納する。配備部１０２は、ＡＡＦグループデータ格納部１０５に格納されている管理表に基づき処理を行い、処理結果をＶＭ管理データ格納部１０７に格納する。そして、配備部１０２は、ＶＭ管理データ格納部１０７に格納されているＶＭの管理表およびＣＯＭグループデータ格納部１０６に格納されている管理表に基づき、物理リソース５にＶＭを配備する処理を実行する。
【００１４】
なお、物理リソース５における物理マシンにおいてはハイパバイザ（仮想化ソフトウエアとも呼ばれる）が動作しており、仮想化ソフトウエア上でＶＭ等が動作する。
【００１５】
図４に、ＳＧデータ格納部１０３に格納される管理表の一例を示す。図４の例では、セキュリティグループ名と、セキュリティグループのＵＵＩＤ（Universally Unique IDentifier）と、グループに属するＶＭが所属する仮想システムのＵＵＩＤと、セキュリティグループに属するメンバーのＵＵＩＤのリストと、セキュリティグループに属するＶＭの通信ルールのＵＵＩＤのリストと、セキュリティグループに対応するＡＡＦグループのＵＵＩＤと、セキュリティグループに対応するＣＯＭグループのＵＵＩＤとが格納される。
【００１６】
図５に、ルールデータ格納部１０４に格納される管理表の一例を示す。図５の例では、通信ルールのＵＵＩＤと、通信方向を示す情報と、許可される通信を特定するための情報と、通信相手を示す情報とが格納される。通信方向を示す情報として、本実施の形態においては「ｅｇｒｅｓｓ」又は「ｉｎｇｒｅｓｓ」が格納される。許可される通信を特定するための情報として、本実施の形態においては通信を規定するパケットヘッダの情報が格納される。通信相手を示す情報として、本実施の形態においてはＩＰ（Internet Protocol）アドレス或いはセキュリティグループのＵＵＩＤが格納される。
【００１７】
図６に、ＡＡＦグループデータ格納部１０５に格納される管理表の一例を示す。図６の例では、グループ名（本実施の形態においては、ＵＵＩＤ）と、ＡＡＦグループに対応するセキュリティグループのＵＵＩＤとが格納される。
【００１８】
図７に、ＣＯＭグループデータ格納部１０６に格納される管理表の一例を示す。図７の例では、グループ名（本実施の形態においては、ＵＵＩＤ）と、通信相手のセキュリティグループのＵＵＩＤのリストとが格納される。
【００１９】
図８に、ＶＭ管理データ格納部１０７に格納される管理表の一例を示す。図８の例では、ＶＭ名と、ＶＭが所属する仮想システムのＵＵＩＤと、ＶＭが動作する物理マシンのＵＵＩＤと、ＶＭが所属するセキュリティグループのＵＵＩＤのリストと、ＶＭが所属するＣＯＭグループのＵＵＩＤと、ＶＭの配備に関する起動パラメータとが格納される。その他の情報が格納される場合もあるが、本実施の形態には直接関係しないので説明を省略する。
【００２０】
なお、管理データ格納部１４にはその他のデータが格納されている場合もあるが、ここでは説明を省略する。
【００２１】
ここで、図９乃至図１４を用いて、本実施の形態に関係する事項について簡単に説明する。
【００２２】
図９を用いて、セキュリティグループについて説明する。セキュリティグループとは、同一の通信ルールが設定されるＶＭのグループである。通信ルールとは、図５に示したように、通信方向についてのルールと、許可されるプロトコルおよびポート番号等についてのルールと、通信相手についてのルールとを含む。図９の例においては、Ｗｅｂ−ＳＧというセキュリティグループと、ＡＰ（APplication）−ＳＧというセキュリティグループと、ＤＢ（DataBase）−ＳＧというセキュリティグループとが定義されている。Ｗｅｂ−ＳＧからＡＰ−ＳＧへの通信およびＡＰ−ＳＧからＤＢ−ＳＧへの通信が可能である。しかし、Ｗｅｂ−ＳＧからＤＢ−ＳＧへの通信は許可されない。また、Ｗｅｂ−ＳＧ内のＶＭ間の通信は許可されない。グループ内のＶＭ間での通信は、通信相手としてそのグループを明に規定することで許可される。
【００２３】
図１０を用いて、ＶＭスケジューラについて説明する。ＶＭスケジューラはＶＭコントローラ１０に設けられ、物理リソース５における物理マシンの状態とＶＭの配置をスケジューリング設定とに基づき決定する。本実施の形態においては、図１０に示すように、「Ｆｉｌｔｅｒ」と呼ばれる処理と「Ｗｅｉｇｈｔｉｎｇ」と呼ばれる処理とによってスケジューリングが行われる。Ｆｉｌｔｅｒにおいては、物理リソース５における物理マシンの中から、ＣＰＵ（Central Processing Unit）或いはメモリ等の物理リソースが不足する物理マシンおよび設定に鑑みると配備の対象にはならない物理マシンを候補から外す処理が実行される。図１０の例においては、ＨＯＳＴ２およびＨＯＳＴ４が候補から外される。Ｗｅｉｇｈｔｉｎｇにおいては、ＶＭが配備されることが可能な物理マシンの各々について、仮にＶＭが配備された場合のコストを計算する処理が実行される。コスト計算の関数はＩａａＳの管理者によって設定され、最低コストの物理マシンが選択される。図１０の例においては、ＨＯＳＴ５が選択される。なお、最低コストの物理マシンが複数存在する場合、複数の物理マシンの中からランダムに選択される。また、本実施の形態においては、通信コストを計算するための関数が使用される。
【００２４】
図１１乃至図１３を用いて、ＡＡＦグループについて説明する。図１１に示すＶＭ１およびＶＭ２のように、同一の機能を有する複数のＶＭを、物理マシンがダウンした時の全滅を防ぐ（すなわち、可用性を向上させる）目的で出来る限り別々の物理マシンに配備することが考えられる。このような場合、ＡＡＦグループはＷｅｂ−ＳＧに対して設定される。図１１の例では、Ｗｅｂ−ＳＧに対して「ＡＡＦ−１」というセキュリティグループが設定される。そして、例えば図１２に示すように、物理マシン１でＶＭ１が動作している状態においてＶＭ２を新たに配備するような場合には、物理マシン１以外の物理マシンである物理マシン２乃至ｎの中から物理マシンが選択されるようになる。
【００２５】
なお、通信効率の観点からすると、別々のＶＭに配備することが好ましくないこともある。ＶＭ１とＶＭ２との通信が行われる場合には、例えば図１３（ａ）に示すように、同じ物理マシンに配備すればネットワークの帯域を消費せず、通信効率が向上する。一方、図１３（ｂ）に示すように、ＶＭ１とＶＭ２を異なる物理マシンに配備する場合、ネットワークの帯域を消費し、通信効率が低下する。このように、同じ物理マシンに複数のＶＭを配備することは「Affinity」とも呼ばれる。
【００２６】
図１４を用いて、ＣＯＭグループについて説明する。ＣＯＭグループとは、通信相手のセキュリティグループのグループである。図１４の例において、ＶＭ３がＷｅｂ−ＳＧに属するＶＭ１およびＶＭ２とＤＢ−ＳＧに属するＶＭ４との通信を行うとする。この場合、ＡＰ−ＳＧに対応するＣＯＭグループ（図１４においては、「ＣＯＭ−１」）にはＷｅｂ−ＳＧおよびＤＢ−ＳＧが含まれる。本実施の形態においては、通信コストを算出するためにＣＯＭグループが導入されている。
【００２７】
本実施の形態においては、対象のセキュリティグループについてＡＡＦグループおよびＣＯＭグループが生成される。そして、対象のセキュリティグループのＶＭを新たに起動する場合、生成されたＡＡＦグループおよびＣＯＭグループに基づいて配備先の物理マシンが決定される。そこで、まず図１５乃至図１７を用いて、ＡＡＦグループおよびＣＯＭグループを生成する処理について説明する。
【００２８】
配備装置１の受付部１３は、セキュリティグループのＵＵＩＤを含む、セキュリティグループの更新指示を利用者或いは仮想システムの管理者から受け付ける。これに応じ、ＶＭコントローラ１０におけるグループ生成部１０１は、ＡＡＦグループ生成処理を実行する（図１５：ステップＳ１）。ＡＡＦグループ生成処理については、図１６を用いて説明する。
【００２９】
まず、グループ生成部１０１は、ＳＧデータ格納部１０３に格納された、更新指示において指定されたセキュリティグループ（以下、セキュリティグループＳＧと呼ぶ）に対応するＡＡＦグループをクリアする（図１６：ステップＳ１１）。
【００３０】
グループ生成部１０１は、ＳＧデータ格納部１０３に格納された、セキュリティグループＳＧのルールのうち、未処理のルールが有るか判定する（ステップＳ１３）。未処理のルールが有る場合（ステップＳ１５：Ｙｅｓルート）、グループ生成部１０１は、未処理のルールを１つ特定する（ステップＳ１７）。
【００３１】
グループ生成部１０１は、ステップＳ１７において特定したルールに規定された通信相手を、ルールデータ格納部１０４から特定する。そして、グループ生成部１０１は、特定された通信相手が自セキュリティグループ（すなわち、セキュリティグループＳＧ）であるか判定する（ステップＳ１９）。
【００３２】
特定された通信相手が自セキュリティグループではない場合（ステップＳ１９：Ｎｏルート）、次のルールについて処理するため、ステップＳ１３の処理に戻る。一方、特定された通信相手が自セキュリティグループである場合（ステップＳ１９：Ｙｅｓルート）、セキュリティグループＳＧ内のＶＭ間で通信が行われるので、ＡＡＦグループを生成することはできない。従って、呼び出し元の処理に戻る。
【００３３】
一方、未処理のルールが無い場合（ステップＳ１５：Ｎｏルート）、グループ生成部１０１は、ＡＡＦグループについての管理表をＡＡＦグループデータ格納部１０５に新規に生成する（ステップＳ２１）。ステップＳ２１の時点においては、空の管理表が生成される。
【００３４】
グループ生成部１０１は、ステップＳ２１において生成した管理表にグループ名（すなわちＵＵＩＤ）を登録する。さらに、グループ生成部１０１は、ステップＳ２１において生成した管理表における対応セキュリティグループ名として、セキュリティグループＳＧのグループ名（すなわちＵＵＩＤ）を登録する（ステップＳ２３）。
【００３５】
グループ生成部１０１は、ＳＧデータ格納部１０３に格納されている、セキュリティグループＳＧの管理表に、生成されたＡＡＦグループのＵＵＩＤを登録する（ステップＳ２５）。そして呼び出し元の処理に戻る。
【００３６】
以上のような処理を実行すれば、セキュリティグループＳＧ内のＶＭ間の通信が行われない場合に、ＡＡＦグループを生成することができるようになる。
【００３７】
図１５の説明に戻り、グループ生成部１０１は、ＣＯＭグループ生成処理を実行する（ステップＳ３）。ＣＯＭグループ生成処理については、図１７を用いて説明する。
【００３８】
まず、グループ生成部１０１は、セキュリティグループのリストであるＳＧＬをＮＵＬＬ（すなわち空）に設定する（図１７：ステップＳ３１）。
【００３９】
グループ生成部１０１は、ＳＧデータ格納部１０３に、セキュリティグループＳＧに対応するＣＯＭグループが登録されているか判定する（ステップＳ３３）。
【００４０】
セキュリティグループＳＧに対応するＣＯＭグループが登録されている場合（ステップＳ３３：Ｙｅｓルート）、ステップＳ４１の処理に移行する。一方、セキュリティグループＳＧに対応するＣＯＭグループが登録されていない場合（ステップＳ３３：Ｎｏルート）、グループ生成部１０１は、ＣＯＭグループについての管理表をＣＯＭグループデータ格納部１０６に新規に生成する（ステップＳ３５）。
【００４１】
グループ生成部１０１は、ステップＳ３５において生成した、ＣＯＭグループについての管理表にグループ名（本実施の形態においては、ＵＵＩＤ）を登録する（ステップＳ３７）。
【００４２】
グループ生成部１０１は、ＳＧデータ格納部１０３に格納された、セキュリティグループＳＧについての管理表に、ステップＳ３７と同じグループ名をセキュリティグループＳＧに対応するＣＯＭグループとして登録する（ステップＳ３９）。
【００４３】
グループ生成部１０１は、セキュリティグループＳＧに適用されるルールを、ＳＧデータ格納部１０３に格納されている、セキュリティグループＳＧについての管理表から特定する（ステップＳ４１）。
【００４４】
グループ生成部１０１は、ステップＳ４１において特定したルールのうち未処理のルールが有るか判定する（ステップＳ４３）。
【００４５】
未処理のルールが有る場合（ステップＳ４３：Ｙｅｓルート）、グループ生成部１０１は、未処理のルールを１つ特定する（ステップＳ４５）。そして、グループ生成部１０１は、ステップＳ４５において特定したルールで規定された通信相手の識別情報をＳＧＬに追加する（ステップＳ４７）。そしてステップＳ４１の処理に戻る。
【００４６】
一方、未処理のルールが無い場合（ステップＳ４３：Ｎｏルート）、グループ生成部１０１は、ステップＳ３７において登録されたグループ名を有する、ＣＯＭグループについての管理表に、通信相手としてＳＧＬを登録する（ステップＳ４９）。そして呼び出し元の処理に戻り、処理は終了する。
【００４７】
以上のような処理を実行すれば、セキュリティグループＳＧに属するＶＭの通信相手になり得るセキュリティグループを含むＣＯＭグループを生成できるようになる。
【００４８】
次に、図１８乃至図２２を用いて、生成されたＡＡＦグループおよびＣＯＭグループに基づいて配備先の物理マシンを決定する処理について説明する。ここでは、受付部１３が新たに起動するＶＭの指定を含む配備指示を受け付け、そのＶＭについて管理表がＶＭ管理データ格納部１０７に登録されたとする。
【００４９】
まず、配備部１０２は、ＡＡＦ設定処理を実行する（図１８：ステップＳ５１）。ＡＡＦ設定処理については、図１９Ａを用いて説明する。
【００５０】
まず、配備部１０２は、起動するＶＭが所属するセキュリティグループのリストをＶＭ管理データ格納部１０７から特定し、特定されたリストにおいて未処理のセキュリティグループが有るか判定する（図１９Ａ：ステップＳ６１）。
【００５１】
未処理のセキュリティグループが無い場合（ステップＳ６３：Ｎｏルート）、呼び出し元の処理に戻る。一方、未処理のセキュリティグループが有る場合（ステップＳ６３：Ｙｅｓルート）、配備部１０２は、未処理のセキュリティグループを１つ特定する（ステップＳ６５）。
【００５２】
配備部１０２は、ステップＳ６５において特定したセキュリティグループに対応するＡＡＦグループがＳＧデータ格納部１０３に登録されているか判定する（ステップＳ６７）。ステップＳ６５において特定したセキュリティグループに対応するＡＡＦグループがＳＧデータ格納部１０３に登録されていない場合（ステップＳ６７：Ｎｏルート）、ステップＳ６１の処理に戻る。
【００５３】
一方、ステップＳ６５において特定したセキュリティグループに対応するＡＡＦグループがＳＧデータ格納部１０３に登録されている場合（ステップＳ６７：Ｙｅｓルート）、配備部１０２は、セキュリティグループに対応するＡＡＦグループについての起動パラメータを、ＶＭ管理データ格納部１０７に格納する（ステップＳ６９）。そしてステップＳ６１の処理に戻る。
【００５４】
以上のような処理によれば、ＶＭを起動する時に、ＶＭが属するセキュリティグループに対応するＡＡＦグループについての設定を考慮できるようになる。参考までに、起動時に実行されるコマンドの一例を図１９Ｂに示す。図１９Ｂに示すように、起動用のブートコマンドには起動パラメータとして"--hint group=AAF-1"が含まれる。
【００５５】
図１８の説明に戻り、配備部１０２は、起動するＶＭの管理表に格納されている起動パラメータに基づき、起動するＶＭの配備先の物理マシンを絞り込む処理を実行する（ステップＳ５３）。具体的には、配備部１０２は、起動するＶＭの管理表に含まれる起動パラメータにおいて指定されたＡＡＦグループに対応するセキュリティグループを、ＳＧデータ格納部１０３から特定する。そして、配備部１０２は、特定したセキュリティグループに属するＶＭが動作する物理マシンをＶＭ管理データ格納部１０７から特定し、特定した物理マシン以外の物理マシンを配備先とする。
【００５６】
配備部１０２は、通信コストの計算処理を実行する（ステップＳ５５）。通信コストの計算処理については、図２０乃至図２１Ｂを用いて説明する。
【００５７】
まず、配備部１０２は、ステップＳ５３における絞り込み処理の結果に含まれる物理マシン（すなわち、同じセキュリティグループに属するＶＭが動作していない物理マシン）のうち未処理の物理マシンを１台特定する（図２０：ステップＳ７０）。
【００５８】
配備部１０２は、通信コストを表す変数ｃｏｓｔをｃｏｓｔ＝０と設定する（ステップＳ７１）。
【００５９】
配備部１０２は、起動するＶＭが所属するセキュリティグループのリストをＶＭ管理データ格納部１０７から特定し、特定されたリストにおいて未処理のセキュリティグループが有るか判定する（ステップＳ７３）。
【００６０】
未処理のセキュリティグループが無い場合（ステップＳ７５：Ｎｏルート）、配備部１０２は、ステップＳ７０において特定した物理マシンについて算出した通信コストを、メインメモリ等の記憶装置に格納する。そして、配備部１０２は、ステップＳ５３における絞り込み処理の結果に含まれる物理マシン（すなわち、同じセキュリティグループに属するＶＭが動作していない物理マシン）の中に未処理の物理マシンが有るか判定する（ステップＳ７６）。
【００６１】
未処理の物理マシンが有る場合（ステップＳ７６：Ｙｅｓルート）、ステップＳ７０の処理に戻る。一方、未処理の物理マシンが無い場合（ステップＳ７６：Ｎｏルート）、呼び出し元の処理に戻る。
【００６２】
一方、未処理のセキュリティグループが有る場合（ステップＳ７５：Ｙｅｓルート）、配備部１０２は、未処理のセキュリティグループを１つ特定する（ステップＳ７７）。
【００６３】
配備部１０２は、ステップＳ７７において特定したセキュリティグループに対応するＣＯＭグループを、ＳＧデータ格納部１０３から特定する。そして、配備部１０２は、特定したＣＯＭグループの通信相手のセキュリティグループのリストを、ＣＯＭグループデータ格納部１０６から特定する（ステップＳ７９）。
【００６４】
配備部１０２は、ステップＳ７９において特定したリストにおいて未処理のセキュリティグループが有るか判定する（ステップＳ８１）。未処理のセキュリティグループが無い場合（ステップＳ８１：Ｎｏルート）、ステップＳ７３の処理に戻る。一方、未処理のセキュリティグループが有る場合（ステップＳ８３：Ｙｅｓルート）、処理は端子Ａを介して図２１ＡのステップＳ８５に移行する。
【００６５】
図２１Ａの説明に移行し、配備部１０２は、ステップＳ７９において特定したリストの中から未処理のセキュリティグループを１つ特定し、特定したセキュリティグループに未処理のＶＭが有るか判定する（図２１Ａ：ステップＳ８５）。
【００６６】
未処理のＶＭが無い場合（ステップＳ８７：Ｎｏルート）、処理は端子Ｂを介して図２０のステップＳ８１に戻る。一方、未処理のＶＭが有る場合（ステップＳ８７：Ｙｅｓルート）、配備部１０２は、未処理のＶＭを１台特定する（ステップＳ８９）。
【００６７】
配備部１０２は、ステップＳ８９において特定したＶＭが動作する物理マシンをＶＭ管理データ格納部１０７から特定し、特定した物理マシンが、ステップＳ７０において特定した物理マシンと同じであるか判定する（ステップＳ９１）。すなわち、ステップＳ８９において特定したＶＭと起動するＶＭとが同じ物理マシンで動作するか判定される。
【００６８】
ステップＳ８９において特定したＶＭと起動するＶＭとが同じ物理マシンで動作する場合（ステップＳ９１：Ｙｅｓルート）、通信コストは０であるので、ステップＳ８５の処理に戻る。
【００６９】
一方、ステップＳ８９において特定したＶＭと起動するＶＭとが同じ物理マシンで動作しない場合（ステップＳ９１：Ｎｏルート）、配備部１０２は、ｃｏｓｔをｃｏｓｔ＝ｃｏｓｔ＋１と設定する（ステップＳ９３）。そしてステップＳ８５の処理に戻る。
【００７０】
以上のような処理によって、例えば図２１Ｂに示すように、物理マシン毎に通信コストが算出される。
【００７１】
図１８の説明に戻り、配備部１０２は、ステップＳ５５において算出した通信コストに基づき、配備先の物理マシンを特定する（ステップＳ５７）。例えば、通信コストが最も低い物理マシンが配備先として特定される。通信コストが最も低い物理マシンの数が複数である場合、それらの物理マシンの中からランダムに特定してもよい。
【００７２】
配備部１０２は、ステップＳ５７において特定した物理マシンにおいてＶＭを起動するためのコマンドを生成し、当該コマンドを物理リソース５に送信する（ステップＳ５９）。そして処理は終了する。
【００７３】
図２２を用いて、配備先の物理マシンにおけるハイパバイザが実行する処理について説明する。
【００７４】
まず、配備先の物理マシンにおけるハイパバイザは、ＶＭを起動するためのコマンドを配備装置１から受信する（図２２：ステップＳ１０１）。そして、配備先の物理マシンにおけるハイパバイザは、受信したコマンドを実行することによってＶＭの配備を実行する（ステップＳ１０３）。そして処理は終了する。
【００７５】
以上のように、本実施の形態においては、セキュリティグループに属するＶＭの通信ルールの情報からＡＡＦグループが設定される。これにより、配備のための設定を利用者が用意していない場合においても、適切な配備先にＶＭを配備することができるようになる。
【００７６】
さらに、通信コストに基づいて最適な物理マシンが特定されるため、ＶＭの配備後に通信に関する問題（例えば、ネットワークにおける輻輳）が発生することを回避できるようになる。
【００７７】
以下では、配備装置１の具体的な動作を図２３乃至図２８を用いて説明する。
【００７８】
ここでは、図２３に示すような仮想システムを前提とする。図２３においては、Ｗｅｂ−ＳＧに属する２台のＶＭがウェブサーバとして動作し、ＡＰ−ＳＧに属する１台のＶＭがアプリケーションサーバとして動作し、ＤＢ−ＳＧに属する１台のＶＭがデータベースサーバとして動作する。Ｗｅｂ−ＳＧからＡＰ−ＳＧへの通信と、ＡＰ−ＳＧからＤＢ−ＳＧへの通信とが許可されている。各セキュリティグループにおいて、ＶＭ間の通信は許可されていないものとする。
【００７９】
また、図２４に示すように、各セキュリティグループにはＡＡＦグループが設定されているとする。具体的には、Ｗｅｂ−ＳＧには「ＡＡＦ−１」というＡＡＦグループが設定され、ＡＰ−ＳＧには「ＡＡＦ−２」というＡＡＦグループが設定され、ＤＢ−ＳＧには「ＡＡＦ−３」というＡＡＦグループが設定されている。
【００８０】
また、図２５に示すように、各セキュリティグループにはＣＯＭグループが設定されているとする。具体的には、Ｗｅｂ−ＳＧには「ＣＯＭ−１」というＣＯＭグループが設定され、ＡＰ−ＳＧには「ＣＯＭ−２」というＣＯＭグループが設定され、ＤＢ−ＳＧには「ＣＯＭ−３」というＣＯＭグループが設定されている。
【００８１】
また、図２６に示すように、Ｗｅｂ１、ＡＰ１およびＤＢ１が物理マシン１において動作し、Ｗｅｂ２が物理マシンにおいて動作しているとする。このような状態において、ＡＰ−ＳＧに属するＡＰ２を新たに配備することを考える。
【００８２】
ＡＰ２は、ＡＰ１と同じくＡＰ−ＳＧに属するので、ＡＡＦグループについての起動パラメータによって、物理マシン１以外の物理マシンにおいて起動される。すなわち、図２７に示すように、配備先の候補は物理マシン２乃至ｎである。
【００８３】
そして、図２７に示すように、物理マシン２乃至ｎの各々について、ＡＰ２を配備した場合の通信コストが算出される。図２８の例では、ＡＰ２の通信相手としてＣＯＭ−２が設定されているので、物理マシン２に配備した場合の通信コストは１＋０＋１＝２である。・・・。物理マシン（ｎ−１）に配備した場合の通信コストは１＋１＋１＝３である。物理マシンｎに配備した場合の通信コストは１＋１＋１＝３である。従って、通信コストが最も低くなる物理マシンは物理マシン２であるので、物理マシン２が配備先として特定される。
【００８４】
以上本発明の一実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、上で説明した配備装置１の機能ブロック構成は実際のプログラムモジュール構成に一致しない場合もある。
【００８５】
また、上で説明した各管理表の構成は一例であって、上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ処理の順番を入れ替えることも可能である。さらに、並列に実行させるようにしても良い。
【００８６】
また、図１５に示した処理のトリガは、更新指示でなくてもよい。例えば、予め定められた時刻になった場合に開始してもよい。
【００８７】
また、物理マシンではなく、ラック或いはゾーン等の単位で通信コストを区別する方が適切である場合には、仮にＶＭを配備した場合の通信コストをそれらの単位ごとに算出してもよい。
【００８８】
なお、上で述べた配備装置１は、コンピュータ装置であって、図２９に示すように、メモリ２５０１とＣＰＵ２５０３とハードディスク・ドライブ（ＨＤＤ：Hard Disk Drive）２５０５と表示装置２５０９に接続される表示制御部２５０７とリムーバブル・ディスク２５１１用のドライブ装置２５１３と入力装置２５１５とネットワークに接続するための通信制御部２５１７とがバス２５１９で接続されている。オペレーティング・システム（ＯＳ：Operating System）及び本実施例における処理を実施するためのアプリケーション・プログラムは、ＨＤＤ２５０５に格納されており、ＣＰＵ２５０３により実行される際にはＨＤＤ２５０５からメモリ２５０１に読み出される。ＣＰＵ２５０３は、アプリケーション・プログラムの処理内容に応じて表示制御部２５０７、通信制御部２５１７、ドライブ装置２５１３を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ２５０１に格納されるが、ＨＤＤ２５０５に格納されるようにしてもよい。本発明の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク２５１１に格納されて頒布され、ドライブ装置２５１３からＨＤＤ２５０５にインストールされる。インターネットなどのネットワーク及び通信制御部２５１７を経由して、ＨＤＤ２５０５にインストールされる場合もある。このようなコンピュータ装置は、上で述べたＣＰＵ２５０３、メモリ２５０１などのハードウエアとＯＳ及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【００８９】
以上述べた本発明の実施の形態をまとめると、以下のようになる。
【００９０】
本実施の形態に係る配備方法は、（Ａ）グループに属する仮想マシンの通信ルールについての情報をグループ毎に格納する第１データ格納部を用いて、同じグループに属する仮想マシン間での通信が許可されていないグループを特定し、（Ｂ）特定されたグループの識別情報に対応付けて分散配備を表す配備情報を第２データ格納部に格納し、（Ｃ）第１のグループに属する第１の仮想マシンの配備指示を受け付けた場合、第１のグループの識別情報に対応付けて配備情報が第２データ格納部に格納されているか判定し、（Ｄ）第１のグループの識別情報に対応付けて配備情報が第２データ格納部に格納されている場合、複数の物理マシンのうち第１のグループに属する第１の仮想マシン以外の仮想マシンが動作していない物理マシンの中から、第１の仮想マシンの配備先の物理マシンを特定する処理を含む。
【００９１】
これにより、たとえ配備のための設定が予め用意されていなくても、グループ内での通信が許可されていないと推定される場合には分散配備することが可能になる。すなわち、適切な物理マシンに仮想マシンを配備することができるようになる。
【００９２】
また、第１の仮想マシンの配備先の物理マシンを特定する処理において、（ｄ１）物理マシンのうち第１のグループに属する第１の仮想マシン以外の仮想マシンが動作していない物理マシンの各々について、当該物理マシン上で第１の仮想マシンを動作させた場合における通信コストを算出し、（ｄ２）算出された通信コストに基づき、第１の仮想マシンの配備先の物理マシンを特定してもよい。このようにすれば、通信コストの観点から最適な物理マシンを配備先として特定できるようになる。
【００９３】
また、通信コストを算出する処理において、（ｄ１１）第１の仮想マシンの複数の通信相手の各々について所定の方法で算出した通信コストの総和を求めることにより物理マシン上で第１の仮想マシンを動作させた場合における通信コストを算出してもよい。そして、上記所定の方法は、第１の仮想マシンの通信相手が同一の物理マシンにおいて動作する場合における通信コストを、第１の仮想マシンの通信相手が異なる物理マシンにおいて動作する場合における通信コストより低くする方法であってもよい。同一の物理マシンにおけるＶＭ間での通信は、物理マシンを接続するネットワークの帯域を消費しない。従って、上で述べたようにすれば、適切に通信コストを算出できるようになる。
【００９４】
また、本配備方法は、（Ｅ）第１のグループの識別情報に対応付けて配備情報が第２データ格納部に格納されていない場合、複数の物理マシンの中から、第１の仮想マシンの配備先の物理マシンを特定する処理をさらに含んでもよい。同じグループに属する仮想マシンを同じ物理マシンに配備すれば同じグループに属する仮想マシン間での通信が効率化される。
【００９５】
また、本配備方法は、（Ｆ）特定された配備先の物理マシンにおいて第１の仮想マシンを起動するためのコマンドを出力する処理をさらに含んでもよい。これにより、実際に仮想マシンを起動することができるようになる。
【００９６】
なお、上記方法による処理をコンピュータに実行させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、ＣＤ−ＲＯＭ、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。尚、中間的な処理結果はメインメモリ等の記憶装置に一時保管される。
【００９７】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【００９８】
（付記１）
コンピュータに、
グループに属する仮想マシンの通信ルールについての情報をグループ毎に格納する第１データ格納部を用いて、同じグループに属する仮想マシン間での通信が許可されていないグループを特定し、
特定された前記グループの識別情報に対応付けて分散配備を表す配備情報を第２データ格納部に格納し、
第１のグループに属する第１の仮想マシンの配備指示を受け付けた場合、前記第１のグループの識別情報に対応付けて前記配備情報が前記第２データ格納部に格納されているか判定し、
前記第１のグループの識別情報に対応付けて前記配備情報が前記第２データ格納部に格納されている場合、複数の物理マシンのうち前記第１のグループに属する前記第１の仮想マシン以外の仮想マシンが動作していない物理マシンの中から、前記第１の仮想マシンの配備先の物理マシンを特定する、
処理を実行させる配備プログラム。
【００９９】
（付記２）
前記第１の仮想マシンの配備先の物理マシンを特定する処理において、
前記物理マシンのうち前記第１のグループに属する前記第１の仮想マシン以外の仮想マシンが動作していない物理マシンの各々について、当該物理マシン上で前記第１の仮想マシンを動作させた場合における通信コストを算出し、
算出された前記通信コストに基づき、前記第１の仮想マシンの配備先の物理マシンを特定する、
付記１記載の配備プログラム。
【０１００】
（付記３）
前記通信コストを算出する処理において、
前記第１の仮想マシンの複数の通信相手の各々について所定の方法で算出した通信コストの総和を求めることにより前記物理マシン上で前記第１の仮想マシンを動作させた場合における通信コストを算出し、
前記所定の方法は、
前記第１の仮想マシンの通信相手が同一の物理マシンにおいて動作する場合における通信コストを、前記第１の仮想マシンの通信相手が異なる物理マシンにおいて動作する場合における通信コストより低くする方法である、
付記２記載の配備プログラム。
【０１０１】
（付記４）
前記コンピュータに、
前記第１のグループの識別情報に対応付けて前記配備情報が前記第２データ格納部に格納されていない場合、前記複数の物理マシンの中から、前記第１の仮想マシンの配備先の物理マシンを特定する、
処理をさらに実行させる付記１乃至３のいずれか１つ記載の配備プログラム。
【０１０２】
（付記５）
前記コンピュータに、
特定された前記配備先の物理マシンにおいて前記第１の仮想マシンを起動するためのコマンドを出力する、
処理をさらに実行させる付記１乃至４のいずれか１つ記載の配備プログラム。
【０１０３】
（付記６）
コンピュータが、
グループに属する仮想マシンの通信ルールについての情報をグループ毎に格納する第１データ格納部を用いて、同じグループに属する仮想マシン間での通信が許可されていないグループを特定し、
特定された前記グループの識別情報に対応付けて分散配備を表す配備情報を第２データ格納部に格納し、
第１のグループに属する第１の仮想マシンの配備指示を受け付けた場合、前記第１のグループの識別情報に対応付けて前記配備情報が前記第２データ格納部に格納されているか判定し、
前記第１のグループの識別情報に対応付けて前記配備情報が前記第２データ格納部に格納されている場合、複数の物理マシンのうち前記第１のグループに属する前記第１の仮想マシン以外の仮想マシンが動作していない物理マシンの中から、前記第１の仮想マシンの配備先の物理マシンを特定する、
処理を実行する配備方法。
【０１０４】
（付記７）
グループに属する仮想マシンの通信ルールについての情報をグループ毎に格納する第１データ格納部を用いて、同じグループに属する仮想マシン間での通信が許可されていないグループを特定し、特定された前記グループの識別情報に対応付けて分散配備を表す配備情報を第２データ格納部に格納する第１処理部と、
第１のグループに属する第１の仮想マシンの配備指示を受け付けた場合、前記第１のグループの識別情報に対応付けて前記配備情報が前記第２データ格納部に格納されているか判定し、前記第１のグループの識別情報に対応付けて前記配備情報が前記第２データ格納部に格納されている場合、複数の物理マシンのうち前記第１のグループに属する前記第１の仮想マシン以外の仮想マシンが動作していない物理マシンの中から、前記第１の仮想マシンの配備先の物理マシンを特定する第２処理部と、
を有する配備装置。
【符号の説明】
【０１０５】
１  配備装置    １０  ＶＭコントローラ
１１  ネットワークコントローラ    １２  ストレージコントローラ
１３  受付部    １４  管理データ格納部
１０１  グループ生成部    １０２  配備部
１０３  ＳＧデータ格納部    １０４  ルールデータ格納部
１０５  ＡＡＦグループデータ格納部    １０６  ＣＯＭグループデータ格納部
１０７  ＶＭ管理データ格納部    ５  物理リソース
【図１】
2017174170.tif 000003
【図２】
2017174170.tif 000004
【図３】
2017174170.tif 000005
【図４】
2017174170.tif 000006
【図５】
2017174170.tif 000007
【図６】
2017174170.tif 000008
【図７】
2017174170.tif 000009
【図８】
2017174170.tif 000010
【図９】
2017174170.tif 000011
【図１０】
2017174170.tif 000012
【図１１】
2017174170.tif 000013
【図１２】
2017174170.tif 000014
【図１３】
2017174170.tif 000015
【図１４】
2017174170.tif 000016
【図１５】
2017174170.tif 000017
【図１６】
2017174170.tif 000018
【図１７】
2017174170.tif 000019
【図１８】
2017174170.tif 000020
【図１９Ａ】
2017174170.tif 000021
【図１９Ｂ】
2017174170.tif 000022
【図２０】
2017174170.tif 000023
【図２１Ａ】
2017174170.tif 000024
【図２１Ｂ】
2017174170.tif 000025
【図２２】
2017174170.tif 000026
【図２３】
2017174170.tif 000027
【図２４】
2017174170.tif 000028
【図２５】
2017174170.tif 000029
【図２６】
2017174170.tif 000030
【図２７】
2017174170.tif 000031
【図２８】
2017174170.tif 000032
【図２９】
2017174170.tif 000033