(57)【要約】  システムの運用管理を反映した仮想マシンの配置決定が可能な仮想マシン制御装置、仮想マシン制御方法とそのプログラムを記録したコンピュータ読み取り可能な記録媒体を提供する。本発明の仮想マシン制御装置は、配置予定の仮想マシンが記述された仮想マシン名リストと仮想マシンを配置可能なホストマシンが記述されたホストマシン名リストに基づき、配置予定の仮想マシンに対する運用性制約を生成する生成手段と、生成された運用性制約を含む制約に基づき、配置予定の仮想マシンの配置を決定する決定手段と、を備え、ホストマシン名は、ホストマシンのロケーション情報を含み、仮想マシン名は、アプリケーションサービスを構成するコンポーネント情報を含む。
2014192254.tif 000002
【特許請求の範囲】
【請求項１】
配置予定の仮想マシンが記述された仮想マシン名リストと仮想マシンを配置可能なホストマシンが記述されたホストマシン名リストに基づき、前記配置予定の仮想マシンに対する運用性制約を生成する生成手段と、
前記生成された運用性制約を含む制約に基づき、前記配置予定の仮想マシンの配置を決定する決定手段と、を備え、
前記ホストマシン名は、前記ホストマシンのロケーション情報を含み、前記仮想マシン名は、アプリケーションサービスを構成するコンポーネント情報を含む、仮想マシン制御装置。
【請求項２】
前記運用性制約が、仮想マシンの配置の纏まりを規定した集合制約、又は、仮想マシンの配置順序を規定した順序制約である、請求項１記載の仮想マシン制御装置。
【請求項３】
前記生成手段は、類似性判定手段と、集合作成手段と、備え、
前記類似性判定手段は、前記ホストマシン名リストと前記仮想マシン名リストに対し、リスト中のホストマシン名と仮想マシン名の類似性を判定し、
前記集合作成手段は、前記類似性判定手段によるホストマシン名、あるいは、仮想マシン名の類似性に基づいてホストマシン名の集合、あるいは、仮想マシン名の集合を作成する、請求項１又は２記載の仮想マシン制御装置。
【請求項４】
前記生成手段は、順序規則特定手段を備え、
前記順序規則特定手段は、作成されたホストマシン名の集合ごと、又は、仮想マシン名の集合ごとに、集合におけるホストマシン名、あるいは、仮想マシン名の順序規則を特定する、請求項３記載の仮想マシン制御装置。
【請求項５】
前記生成手段は、配置予定の仮想マシンの情報と、配置済みの仮想マシンとの情報に基づいて前記運用性制約を生成する、請求項１から４のいずれかに記載の仮想マシン制御装置。
【請求項６】
仮想マシンの配置要求に、配置要求に配置済みの仮想マシンが含まれていない場合は、配置済みの仮想マシンが利用しているリソースを他の仮想マシンに割り当てないように配置制約を生成する、請求項１から４のいずれかに記載の仮想マシン制御装置。
【請求項７】
前記決定手段は、探索手段、スコア計算手段、および、選択手段を備え、
前記探索手段は、記憶手段に記憶されたホストマシン構成情報、配置制約情報、および、前記生成手段で生成した運用性制約情報を参照し、制約を充足する仮想マシン配置情報の候補を複数決定し、
前記スコア計算手段は、運用性制約情報と仮想マシンの配置制約情報を参照して、前記探索手段で決定された複数の仮想マシン配置情報ごとに、制約を満たす度合いを計算し、
前記選択手段は、前記決定された複数の仮想マシン配置情報に対して制約の充足度に基づいてスコア付を行い、前記スコアに基づいて前記決定された複数の仮想マシン配置情報から一つを選択する、請求項１に記載の仮想マシン制御装置。
【請求項８】
配置予定の仮想マシンが記述された仮想マシン名リストと仮想マシンを配置可能なホストマシンが記述されたホストマシン名リストに基づき、前記配置予定の仮想マシンに対する運用性制約を生成し、
前記生成された運用性制約を含む制約に基づき、前記配置予定の仮想マシンの配置を決定し、
前記ホストマシン名は、前記ホストマシンのロケーション情報を含み、前記仮想マシン名は、アプリケーションサービスを構成するコンポーネント情報を含む、仮想マシン制御方法。
【請求項９】
コンピュータに、
配置予定の仮想マシンが記述された仮想マシン名リストと仮想マシンを配置可能なホストマシンが記述されたホストマシン名リストに基づき、前記配置予定の仮想マシンに対する運用性制約を生成する処理と、
前記生成された運用性制約を含む制約に基づき、前記配置予定の仮想マシンの配置を決定する処理と、を実現させる仮想マシン制御プログラムを記録したコンピュータ読み取り可能な記録媒体であって、
前記ホストマシン名は、前記ホストマシンのロケーション情報を含み、前記仮想マシン名は、アプリケーションサービスを構成するコンポーネント情報を含む、仮想マシン制御プログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１０】
仮想マシン制御装置と、ホストマシンを備えるデータセンタであって、
前記仮想マシン制御装置は、
配置予定の仮想マシンが記述された仮想マシン名リストと仮想マシンを配置可能なホストマシンが記述されたホストマシン名リストに基づき、前記仮想マシンの運用性制約を生成する生成手段と、
前記生成された運用性制約を含む制約に基づき、前記配置予定の仮想マシンの配置を決定する決定手段と、を備え、
前記ホストマシン名は、前記データセンタにおける前記ホストマシンのロケーション情報を含み、前記仮想マシン名は、アプリケーションサービスを構成するコンポーネント情報を含む、データセンタ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想マシン制御装置、仮想マシン制御方法とそのプログラムを記録したコンピュータ読み取り可能な記録媒体、および、データセンタに関し、特に、ホストマシンに仮想マシンを配置する制御に関する。
【背景技術】
【０００２】
サーバ仮想化は、１台のサーバを複数台の仮想コンピュータ（以下、仮想マシンと示す。）に分割し、それぞれの仮想マシンに異なるＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）又はアプリケーションソフトを動作させる技術である。このような技術を用いることで、ＯＳ又はアプリケーション毎に複数のサーバを使用する場合に比べて、物理的資源の管理にかかる手間が省け、需要に応じた柔軟な資源配分が可能となる。【０００３】
サーバ仮想化技術の普及に伴い、データセンタにおけるサーバ統合の事例が増えている。複数の仮想マシンを少数のサーバに配置することによりサーバの利用効率が高まり、その結果、データセンタにおける消費電力又は環境負荷が低減される。【０００４】
一方、サーバで利用可能なＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）およびメモリなどの計算機資源は限りがある。このため、仮想マシンの配置は、サーバにおける処理容量を越えないように決定される。サーバ統合の効率を高めるために、仮想マシンをどのサーバ上で動作させるかを決める仮想マシンの配置決定が重要となる。【０００５】
また、仮想マシン上で動作するアプリケーションの種類によって、仮想マシン間でサーバ上のリソースの競合が生じる場合がある。このためアプリケーションの性能に問題が生じないによう仮想マシンの配置を決定する工夫が必要となる。このような資源の制約および仮想マシン間の関係を反映して適切な仮想マシン配置を決定する方法が、データセンタ効率化の鍵として近年注目されている。【０００６】
特許文献１、２、３、４、および、非特許文献１に仮想マシンの配置技術の例が記載されている。【０００７】
特許文献１は、ホストマシンに仮想マシンを配置する際、ホストマシンの能力限界に基づいて仮想マシンの最適配置を決定する技術を開示する。その配置の決定は、電力効率を指標としている。【０００８】
特許文献２は、サーバと仮想マシンにおける負荷と電力効率を反映して、種々の制約条件に基づいて仮想マシン配置を決定する技術を開示する。【０００９】
特許文献３は、サーバに複数の仮想マシンを配置する際に、仮想マシンの組み合わせの適切度を計算することにより、リソースの競合を回避した仮想マシン配置を決定する技術を開示する。【００１０】
特許文献４は、サーバに複数の仮想マシンを配置する際に、業務視点での物理マシンのリソースの割り当てを可能にする技術を開示する。【００１１】
さらに非特許文献１は、制約プログラミングを利用し様々な仮想マシン配置の制約を反映した仮想マシンの配置決定を提案している。制約プログラミングを利用した仮想マシンの配置決定は、配置に関する制約をアルゴリズムの中に設計する必要がないため、柔軟性と拡張性に優れている。例えば、新しい制約を反映した仮想マシンの配置を決定する必要がある場合に、既存のアルゴリズムに修正を加えることなく制約プログラミングで処理可能な制約を追加するだけで対応することができる。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特表２０１２−５２３６２０号公報
【特許文献２】特開２０１１−０１３８２２号公報
【特許文献３】国際公開第２００７／１３６０２１号
【特許文献４】特開２０１１−１１８８６４号公報
【非特許文献】
【００１３】
【非特許文献１】Fabien Hermenier et al. ”Entropy: a Consolidation Manager for Clusters” Proceedings of the 2009 ACM SIGPLAN／SIGOPS international conference on Virtual execution environments, Pages 41-50, March 11-13, 2009, Section 3.2
【発明の概要】
【発明が解決しようとする課題】
【００１４】
システムの運用管理において、運用管理者がシステムの構成および状態を適切に把握できることが重要である。【００１５】
特許文献１〜４と非特許文献１に開示された仮想マシンの配置技術は、データセンタ全体の性能、コスト、あるいは、リソース利用の最適化を主目的としている。しかしながら、このような目的で決定される仮想マシンの配置は、必ずしも運用管理しやすい配置になるとは限らない。【００１６】
例えば、複数の仮想マシンの連携によって提供されるアプリケーションサービスにおいて、一部の仮想マシンが物理的に遠い場所に分散して配置されると、運用管理者は仮想マシンの配置関係を把握することが困難になる。また、アプリケーションサービスを構成する複数の仮想マシンが、物理的に広範囲に分散して配置されると、運用管理者はアプリケーションサービスの構成を把握して仮想マシンを管理することが難しくなる。【００１７】
このように、システムの運用管理を反映した仮想マシンの配置制御の例はなく、その実現が望まれる。【００１８】
［発明の目的］
本発明の目的は、システムの運用管理を反映した仮想マシンの配置決定が可能な仮想マシン制御装置、仮想マシン制御方法とそのプログラムを記録したコンピュータ読み取り可能な記録媒体を提供することにある。
【課題を解決するための手段】
【００１９】
本発明の一形態に係る仮想マシン制御装置は、配置予定の仮想マシン名リストと仮想マシンを配置可能なホストマシン名リストに基づき、仮想マシンの運用性制約を生成する生成手段と、生成された運用性制約を含む制約に基づき、対象の仮想マシンの配置を決定する決定手段と、を備え、ホストマシン名は、データセンタにおける各ホストマシンのロケーション情報を含み、仮想マシン名は、アプリケーションサービスを構成するコンポーネント情報を含む。【００２０】
本発明の一形態に係る仮想マシン制御方法は、配置予定の仮想マシン名リストと仮想マシンを配置可能なホストマシン名リストに基づき、仮想マシンの運用性制約を生成し、生成された運用性制約を含む制約に基づき、対象の仮想マシンの配置を決定し、ホストマシン名は、データセンタにおける各ホストマシンのロケーション情報を含み、仮想マシン名は、アプリケーションサービスを構成するコンポーネント情報を含む。【００２１】
本発明の一形態に係る仮想マシン制御プログラムを記録したコンピュータ読み取り可能な記録媒体は、コンピュータに、配置予定の仮想マシン名リストと仮想マシンを配置可能なホストマシン名リストに基づき、仮想マシンの運用性制約を生成する処理と、生成された運用性制約を含む制約に基づき、対象の仮想マシンの配置を決定する処理とを実現させるプログラムであって、ホストマシン名は、データセンタにおける各ホストマシンのロケーション情報を含み、仮想マシン名は、アプリケーションサービスを構成するコンポーネント情報を含む。【００２２】
本発明の一形態に係るデータセンタは、仮想マシン制御装置を備え、仮想マシン制御装置は、配置予定の仮想マシン名リストと仮想マシンを配置可能なホストマシン名リストに基づき、仮想マシンの運用性制約を生成する生成手段と、生成された運用性制約を含む制約に基づき、対象の仮想マシンの配置を決定する決定手段と、を備え、ホストマシン名は、データセンタにおける各ホストマシンのロケーション情報を含み、仮想マシン名は、アプリケーションサービスを構成するコンポーネント情報を含む。
【発明の効果】
【００２３】
本発明によれば、システムの運用管理を反映した仮想マシンの配置決定が可能な仮想マシン制御装置、仮想マシン制御方法とそのプログラムを記録したコンピュータ読み取り可能な記録媒体を提供することができる。
【図面の簡単な説明】
【００２４】
【図１】本発明の実施の形態である仮想マシン制御装置をデータセンタに適用した概略図である。
【図２】本発明の第１の実施形態である仮想マシン制御装置の構成を示すブロック図である。
【図３】本発明の第１の実施形態である仮想マシン制御装置の動作を示すフローチャート図である。
【図４】本発明の第２の実施形態である仮想マシン制御装置の構造を示すブロック図である。
【図５】第２の実施形態における仮想マシン制御装置の生成部の構成を示すブロック図である。
【図６】本発明の第２の実施形態における仮想マシン制御装置の動作を示すフローチャートである。
【図７】第２の実施形態における仮想マシン制御装置の決定部の動作を示すフローチャートである。
【図８】第２の実施形態における仮想マシン制御装置の順序制約生成部の動作を示すフローチャートである。
【図９Ａ】本発明の第２実施形態におけるホストマシン名リストの一例を示す図である。
【図９Ｂ】本発明の第２実施形態における仮想マシン名リストの一例を示す図である。
【図１０Ａ】本発明の第２実施形態におけるホストマシンにおけるリソース制約の一例を示す図である。
【図１０Ｂ】本発明の第２実施形態における仮想マシンにおけるリソース制約の一例を示す図である。
【図１１】比較例であるリソース制約に基づいた仮想マシン配置情報の一例を示す図である。
【図１２】ホストマシン名集合および順序規則によって分類されたホストマシン名の一例を示す図である。
【図１３Ａ】仮想マシン名集合および順序規則によって分類された仮想マシン名の一例を示す図である。
【図１３Ｂ】仮想マシン名集合および順序規則によって分類された仮想マシン名の一例を示す図である。
【図１４】運用性制約を反映して決定した仮想マシン配置情報の一例を示す図である。
【図１５】本発明の第３の実施形態である仮想マシン制御装置の構成を示すブロック図である。
【図１６】本発明の第３の実施形態である仮想マシン制御装置の動作を示すフローチャートである。
【図１７】本発明の第３の実施形態である仮想マシン制御装置の動作を示すフローチャートである。
【図１８】本発明の第４の実施形態である仮想マシン制御装置の構成を示すブロック図である。
【図１９】本発明の第４の実施形態である仮想マシン制御装置の動作を示すフローチャートである。
【図２０】本発明の第１〜４の実施形態における仮想マシン制御装置１０、又は、ホストマシン３０Ａ、３０Ｂ、３０Ｃをコンピュータ装置で実現したハードウエア構成を示すブロック図である。
【発明を実施するための形態】
【００２５】
本発明の実施の形態について図面を参照して詳細に説明する。
【００２６】
本実施の形態における仮想マシンは、仮想化技術によって物理的なコンピュータの中で動作する論理的なマシンであり、独立したＯＳを持つことができ物理的なコンピュータ（以下、ホストマシン）と同様に動作する。
【００２７】
仮想マシンの動作に必要なリソースは、ホストマシンのリソースを、ホストマシンの中で動作する複数の仮想マシンで共有する。各仮想マシンは、割り当てられた仮想的なリソースを使用しアプリケーション等を実行する。
＜データセンタ＞
図１は、本発明の実施の形態である仮想マシン制御装置をデータセンタに適用した一例の概略図である。
【００２８】
図中、データセンタ２０は、仮想マシン制御装置１０、および、ホストマシン３０Ａ、３０Ｂ、３０Ｃを備える。仮想マシン制御装置１０は、仮想マシンの配置要求に基づき、仮想マシンの配置制約を反映して、ホストマシン３０Ａ、３０Ｂ、３０Ｃへの仮想マシンの配置を決定する。
【００２９】
図１は、仮想マシン制御装置１０による仮想マシンの配置決定によって、ホストマシン３０Ａ、３０Ｂ、３０Ｃのそれぞれに仮想マシン４０Ａ、４０Ｂ、４０Ｃを配置した例を示す。また、図中、複数の仮想マシン４０Ａ、４０Ｂ、４０Ｃの連携によって動作するアプリケーションサービス８０の例が示されている。アプリケーションサービス８０を構成するコンポーネント（個別プログラム５０Ａ、５０Ｂ、５０Ｃ）が仮想マシン４０Ａ、４０Ｂ、４０Ｃで実行されることでアプリケーションサービス８０のサービスが提供される。
【００３０】
＜第１の実施形態＞
次に、本発明の第１の実施形態である仮想マシン制御装置１０に用いる仮想マシン配置制御部５について図面を参照して詳細に説明する。
【００３１】
［構成の説明］
図２は、本発明の第１の実施形態の仮想マシン制御装置１０に用いる仮想マシン配置制御部５の構成を示すブロック図である。第１の実施形態の仮想マシン配置制御部５は、生成部１と決定部２を備える。
【００３２】
図中、仮想マシン配置制御部５の生成部１は、配置予定の仮想マシン名が記述されたリスト（以下、仮想マシン名リストと示す）と仮想マシンを配置可能なホストマシン名が記述されたリスト（以下、ホストマシン名リストと示す）を入力データとして入力する。更に生成部１は、これらリストの情報に基づき、仮想マシンの配置を決定するための運用性制約を生成する。
【００３３】
リストに記述された各ホストマシン名、および、各仮想マシン名には、それぞれホストマシン、および、仮想マシンの識別情報を含む名前が付与される。更に、運用管理情報として、ホストマシン名には、データセンタにおける各ホストマシンのロケーション情報が付与され、仮想マシン名には、仮想マシンが実行するアプリケーションサービスを構成するコンポーネント情報が付与される。
【００３４】
運用性制約は、仮想マシンの配置決定後、運用管理者がホストマシンと仮想マシンとの関係を把握し易くするための制約である。運用性制約の例としては、集合制約、あるいは、順序制約がある。集合制約は、例えば、「仮想マシンの集合Ｖ１｛ｖ１、ｖ２、ｖ３｝を、ホストマシンの集合Ｈ１｛ｈ１、ｈ２｝、集合Ｈ２｛ｈ３、ｈ４｝、又は、集合Ｈ３｛ｈ５、ｈ６｝の何れか一つに収まるように配置する」という仮想マシンの配置の纏まりを規定する。集合制約は、例えば、「仮想マシンの集合Ｖ１｛ｖ１、ｖ２、ｖ３｝を、ホストマシンの集合Ｈ１｛ｈ１、ｈ２｝、集合Ｈ２｛ｈ３、ｈ４｝、又は、集合Ｈ３｛ｈ５、ｈ６｝の何れか一つに収まるように配置する」という仮想マシンの配置の纏まりを規定する。ここでｖ１〜ｖ５はそれぞれ仮想マシンを表し、ｈ１〜ｈ６はそれぞれホストマシンを表す。順序制約は、例えば、ｖ１、ｖ２、ｖ３を、この順番でホストマシンの集合Ｈ１｛ｈ１、ｈ２｝に配置する」という仮想マシンの配置順序を規定する。
【００３５】
仮想マシン配置制御部５の決定部２は、生成部１で生成された運用性制約を含む制約を参照し、制約を満たす仮想マシンの配置を決定する。運用性制約以外の制約としては、例えば、仮想マシン又はホストマシンにおけるリソース制約などがある。
【００３６】
［動作の説明］
図３は、本発明の第１の実施形態である仮想マシン制御装置１０に用いる仮想マシン配置制御部５の動作を示すフローチャートである。
【００３７】
はじめに、仮想マシン配置制御部５の生成部１は、仮想マシン名リストとホストマシン名リストを入力データとして入力する（Ｓ１）。
【００３８】
次に、仮想マシン配置制御部５の生成部１は、仮想マシン名リストとホストマシン名リストの情報に基づき、仮想マシンの配置を決定するための運用性制約を生成する（Ｓ２）。
【００３９】
仮想マシン配置制御部５の決定部２は、生成部１により生成された運用性制約を含む制約を参照し、制約を満たす仮想マシンの配置を決定する（Ｓ３）。これにより決定部は、仮想マシンの配置情報を出力する。
【００４０】
［効果の説明］
本発明の第１の実施形態の仮想マシン制御装置１０に用いる仮想マシン配置制御部５は、運用管理情報が反映されたホストマシン名、および、仮想マシン名に基づき運用性制約を生成し、生成した運用性制約を用いて仮想マシンの配置を決定する。これにより、第１の実施形態における仮想マシン制御装置１０に用いる仮想マシン配置制御部５は、運用管理に基づく仮想マシンの配置決定が可能となる。
【００４１】
＜第２の実施形態＞
次に、本発明の第２の実施形態の仮想マシン制御装置１０について図面を用いて詳細に説明する。
【００４２】
［構成の説明］
図４は、本発明の第２の実施形態である仮想マシン制御装置１０の構成を示すブロック図である。図中、第２の実施形態である仮想マシン制御装置１０は、入力部１３、生成部１１、決定部１２、抽出部１４、記憶部１５、及び、出力部１６を備える。
【００４３】
仮想マシン制御装置１０の入力部１３は、仮想マシン名リストを生成部１１へ送る。なお、本実施形態では仮想マシン名リストは仮想マシン配置要求中に記述される例として説明するが、これに限らず仮想マシン配置要求の情報に基づいて入力部１３が仮想マシン名リストを作成してもよい。
【００４４】
仮想マシン制御装置１０の記憶部１５は、ホストマシン構成情報１５１、配置制約情報１５２、運用性制約情報１５３を記憶する。ここでホストマシン構成情報１５１は、データセンタ内に設置される各ホストマシンの構成を表す情報である。ホストマシン構成情報１５１は、データセンタ内のホストマシンの増設又は撤去、あるいは、各ホストマシンの性能変化に応じて書き換えられる。また配置制約情報１５２は、仮想マシンの配置制約を記述した情報である。配置制約は、ホストマシン、仮想マシンのリソース制約、あるいは、仮想マシンの組合せに関するコロケーション制約などである。
【００４５】
リソース制約は、ホストマシンが仮想マシンへ提供できるリソースの情報（例えば、ホストマシンで利用可能なＣＰＵのコアの数が４個、ホストマシンで提供できるメモリの総量が１６ＧＢ（ギガバイト））である。他のリソース制約は、仮想マシンが要求するリソースの情報（仮想マシンＡを配置できるのは１０Ｇｂｉｔ／ｓｅｃのネットワークインタフェースを持つホストマシンに限る）である。
【００４６】
コロケーション制約は、例えば、「仮想マシンＡと仮想マシンＢは別のホストマシンに配置する」、あるいは、「仮想マシンＣはホストマシンＸ、又は、ホストマシンＹに配置する」である。他のコロケーション制約は、例えば、「仮想マシンＤはネットワークＺに接続されたホストマシンＺに配置する」である。
【００４７】
運用性制約情報１５３は、生成部１１で生成される運用性制約を記述した制約情報である。
【００４８】
仮想マシン制御装置１０の抽出部１４は、記憶部１５のホストマシン構成情報１５１に基づき仮想マシンを配置可能なホストマシンを抽出し、ホストマシン名リストとして生成部１１へ送る。なお、本実施形態では、抽出部１４から生成部１１にホストマシン名リストを送る例で説明するが、これに限られるものではなく、記憶部１５に記憶されたホストマシン名リストを生成部１１が読み込んでもよい。
【００４９】
仮想マシン制御装置１０の生成部１１は、入力された仮想マシン名リスト、および、ホストマシン名リストを参照して運用性制約を生成する。
【００５０】
決定部１２は、記憶部１５に格納されたホストマシン構成情報１５１、配置制約情報１５２および運用性制約情報１５３を参照し、所定の制約を満たす仮想マシン配置情報を決定する。
【００５１】
出力部１６は、決定部１２で決定された仮想マシンの配置情報を、仮想マシンの配置先となる所定のホストマシンへ出力する。
【００５２】
ここで、第２の実施形態における仮想マシン制御部１０の生成部１１の具体的な構成について図５を用いて詳細に説明する。
【００５３】
図５は、仮想マシン制御部１０の生成部１１の構成の一例を示すブロック図である。
【００５４】
生成部１１は、類似性判定部１１０、集合作成部１１１、順序規則特定部１１２、及び、順序制約生成部１１３を備える。
【００５５】
類似性判定部１１０は、生成部１１に入力されたホストマシン名リストと仮想マシン名リストに対し、リスト中のホストマシン名と仮想マシン名のそれぞれの類似性を判定する。各マシン名の類似性を判定するための具体的な内容は後に説明する。
【００５６】
集合作成部１１１は、類似性判定部１１０によるホストマシン名、あるいは、仮想マシン名の類似性に基づいてホストマシン名の集合Ｈ、あるいは、仮想マシン名の集合Ｖを作成する。
【００５７】
ホストマシン名の集合Ｈは、Ｈ＝｛ｈ１、ｈ２、・・・、ｈｎ｝［ｎは１以上の整数］として表される。例えば、集合Ｈ｛ｈ１｝は、ホストマシン名の集合Ｈにホストマシンｈ１が１台あることを表し、集合Ｈ｛ｈ２、ｈ３、ｈ４｝は、ホストマシン名の集合Ｈにホストマシンｈ２、ｈ３およびｈ４が３台あることを示す。なお、ホストマシン名の集合が、Ｈ１、Ｈ２のように複数ある場合、ホストマシンｈ１、ｈ２、・・・、ｈｎは、ホストマシン名の集合間で排他的に作成される。また、仮想マシン名の集合Ｖは、Ｖ＝｛ｖ１、ｖ２、・・・、ｖｔ｝［ｔは１以上の整数］として表される。例えば、集合Ｖ｛ｖ１、ｖ２、ｖ３｝は、仮想マシン名の集合Ｖに仮想マシンｖ１、ｖ２、ｖ３が３台あることを示す。なお、仮想マシン名の集合がＶ１、Ｖ２のように複数ある場合、仮想マシンｖ１、ｖ２、・・・、ｖｔは、仮想マシン名の集合間で排他的に作成される。
【００５８】
次に、規則特定部１１２は、作成されたホストマシン名の集合Ｈ、又は、仮想マシン名の集合Ｖに対し、それぞれ集合におけるホストマシン名、又は、仮想マシン名の順序規則を特定する。
【００５９】
最後に、順序制約生成部１１３は、配置順序規則を仮想マシン配置に反映させるための配置制約を生成する。
【００６０】
［動作の説明］
次に、図６を参照して第２の実施形態である仮想マシン制御装置の動作について詳細に説明する。
【００６１】
図６は、仮想マシン制御装置１０の動作の一例を示すフローチャートである。
【００６２】
はじめに、仮想マシン制御装置１０の入力部１３は、配置予定の仮想マシンの情報が記述された仮想マシン配置要求を受け付ける（Ａ１）。
【００６３】
入力部１３は、仮想マシン配置要求から仮想マシン名リストを作成し生成部１１に送る（Ａ２）。
【００６４】
次に、抽出部１４は、記憶部１５のホストマシン構成情報１５１から仮想マシンを配置可能なホストマシン名リストを作成し生成部１１へ送る（Ａ３）。
【００６５】
生成部１１は、ホストマシン名リストと仮想マシン名リストの情報に基づき、ホストマシン名および仮想マシン名におけるそれぞれの類似性と規則性を特定する（Ａ４）。
【００６６】
続いて生成部１１は、特定した「類似した名前の集合」と「集合における名前の順序規則」に基づいて仮想マシンの配置決定のための運用性制約を生成し（Ａ５）、記憶部１５に格納する（Ａ６）。
【００６７】
運用性制約は、データセンタの運用管理者が、配置決定後の仮想マシンとホストマシンの関係を把握しやすくするための配置制約の一つである。配置制約の例としては、「仮想マシン名の集合Ｖ１はホストマシン名の集合Ｈ１、Ｈ２、Ｈ３の何れか一つに収まるように配置する」という集合制約がある。その他に「仮想マシンｖ１、ｖ２、ｖ３はこの順番でホストマシン名の集合Ｈ１｛ｈ１、ｈ２、ｈ３｝に配置する」という順序制約がある。
【００６８】
次に、決定部１２は、記憶部１５からホストマシン構成情報１５１と、配置制約情報１５２と、運用性制約情報１５３を参照する（Ａ７〜Ａ９）。ホストマシン構成情報１５１は、仮想マシンの配置先となるホストマシンの構成を示す情報である。本実施形態において、ホストマシンは、データセンタ内のマシンである。
【００６９】
決定部１２は制約プログラミングを解く処理によって与えられた制約を満たす仮想マシン配置を決定する（Ａ１０）。制約プログラミングによる仮想マシンの配置決定は、既知の技術を適用することができる（例えば、非特許文献１を参照）。
【００７０】
出力部１６は、決定部１２で決定された仮想マシンの配置情報を配置先となるホストマシンへ出力する（Ａ１１）。
【００７１】
次に、第２の実施形態である仮想マシン制御装置１０の生成部１１の動作について図７と図８を用いて詳細に説明する。
【００７２】
図７は、図５の構成を備えた生成部１１が、順序規則に基づく運用性制約を生成する動作を示すフローチャートである。
【００７３】
はじめに、生成部１１の類似性判定部１１０は、仮想マシン名リストを取得し（Ｂ１）、取得した仮想マシン名リストから仮想マシン名の類似性を判定する。
【００７４】
次に、類似性判定部１１０の判定後、生成部１１の集合作成部１１１は、仮想マシン名リストの中で類似した仮想マシン名の集合Ｖを作成する（Ｂ２）。
【００７５】
類似性判定部１１０における仮想マシン名の類似性の判定は、仮想マシン名の文字列のうち、部分文字列の一致を検索し一致する文字列の長さで類似度を決める方法を用いる。なお、仮想マシン名の類似性の判定は、これに限られるものではなくレーベンシュタイン距離などの二つの文字列の間の距離を測定して類似度を計算し、類似度の高いものを集合とする方法を用いてもよい。
【００７６】
次に、類似性判定部１１０は、ホストマシン名リストを取得し（Ｂ３）、取得したホストマシン名リストからホストマシン名の類似性を判定する。
【００７７】
続いて、類似性判定部１１０による判定後、集合作成部１１１は、ホストマシン名リストの中で類似したホストマシン名の集合Ｈを作成する（Ｂ４）。
【００７８】
次に、生成部１１の順序規則特定部１１２は、各仮想マシン名の集合Ｖを取得し（Ｂ５）、仮想マシン名の順序規則を特定する（Ｂ６）。
【００７９】
順序規則には、１、２、３、という数値の昇順、又は、Ａ、Ｂ、Ｃというアルファベット順が含まれる。単純に集合内に含まれる仮想マシン名を辞書順に並べて順序規則としてもよい。
【００８０】
生成部１１の順序制約生成部１１３は、特定した順序に基づいて仮想マシン配置を決定するための運用性制約を生成する（Ｂ７）。順序制約生成部１１３は、この処理を未処理の集合Ｖが無くなるまで繰り返す（Ｂ８）。
【００８１】
次に、順序制約生成部１１３は、各仮想マシン名の集合Ｖと同様に、各ホストマシン名の集合Ｈを取得し、ホストマシン名の順序規則を特定し、順序規則に基づいて仮想マシン配置を行う運用性制約を作成する（Ｂ９〜Ｂ１２）。
【００８２】
順序制約とは、例えば、仮想マシンｖ１、仮想マシンｖ２、仮想マシンｖ３を各ホストマシンに配置する必要がある時に、ホストマシンの集合Ｈ１に含まれるホストマシンｈ１、ホストマシンｈ２、ホストマシンｈ３に対してｈ１→ｈ２→ｈ３という順番で仮想マシンを配置するという制約である。順序制約によって配置順序に秩序ができるため、運用管理者がホストマシンと仮想マシンとの関係を把握がしやすい仮想マシンの配置決定が可能となる。
【００８３】
図８は、生成部１１の順序制約生成部１１３における動作を示すフローチャートである。順序制約生成部１１３は、順序規則特定部１１２により特定された仮想マシン名の集合Ｖ、および、ホストマシン名の集合Ｈに対して、仮想マシン名の集合Ｖをホストマシン名の集合Ｈに割り当てる運用性制約を生成する（Ｃ１〜Ｃ４）。順序制約生成部１１３は、この処理を未処理の集合Ｖがなくなるまで繰り返す（Ｃ５）。
【００８４】
割り当て方法はどのような方法でもよく、仮想マシン名の集合Ｖを複数のホストマシン名の集合Ｈ１、Ｈ２に割り当てても良い。ただし、各仮想マシン名の集合Ｖが何れか一つ以上のホストマシン名の集合Ｈに割り当てられるように運用性制約を生成することが好ましい。
【００８５】
類似した、あるいは、順序規則が定まった仮想マシンの集合Ｖはシステムの運用管理者の管理単位を反映することができる。また、生成部１１は、この管理単位を共通のホストマシン集合Ｈに配置するように限定することができる。その結果、運用管理者にとって管理が容易となる仮想マシンの配置を得ることができる。
【００８６】
次に、上記の第２の実施形態である仮想マシン制御装置について、具体例を用いて説明する。
【００８７】
図９Ａは、仮想マシンを配置可能なホストマシン名が記述されたホストマシン名リスト、および、図９Ｂは、配置予定の仮想マシン名が記述された仮想マシン名リストの一例である。
【００８８】
仮想マシン名リストは、仮想マシンの配置要求により仮想マシン制御装置１０に与えられる。ホストマシン名リストは、ホストマシン構成情報１５１として予め仮想マシン制御装置１０の記憶部１５に格納される。なお、ホストマシン名リストは、仮想マシンの配置要求により仮想マシン制御装置１０に与えられてもよい。
【００８９】
次に、ホストマシン名リストおよび仮想マシン名リストを具体的な例を用いて説明する。
【００９０】
図９Ａに示すように、６台のホストマシン名が、ホストマシン名リストに含まれている。６台のホストマシン名は、何れも「ＤＣ１−ＸＸＸＸ−ＹＹＹ」という形式で記述される。このホストマシン名の記述は、“ＤＣ１”がデータセンタの識別子を表し、“ＸＸＸＸ”がデータセンタ内のフロア識別子およびラック識別子を表し、“ＹＹＹ”がホストマシンの識別子を表す。
【００９１】
図９Ａの例では、ホストマシン名「ＤＣ１−０３０５−０１０」は、第１データセンタの３階フロア・第５ラックの第１０ホストマシンであることを示す。これらホストマシン名の形式は、例えば、データセンタのシステム構成時に運用管理者等による操作に基づき決定されることが好ましい。
【００９２】
一方、図９Ｂに示す配置予定の仮想マシン名リストには、１１個の仮想マシン名が含まれる。これらの仮想マシン名は、何れも「ＡＡＡ−ＢＢＢ−ＣＣＣ」という形式で記述される。この例では、仮想マシン名として、アプリケーションサービスを構成するコンポーネント情報を用いる。仮想マシン名の形式は、「ＡＡＡ」がアプリケーションサービス名を表し、「ＢＢＢ」がアプリケーションサービスを構成するコンポーネント名を表し、「ＣＣＣ」がコンポーネントの通し番号を表す。
【００９３】
図９Ｂにおける仮想マシン名「ＳＲＶ１−ＷＥＢ１−００２」は、第１サービスとしてＷＥＢ１アプリケーションサービスを構成するコンポーネント番号００２を表す。なお、図９Ｂ中の「ＡＰＰ」は、アプリケーションを表し、「ＤＢ」は、データベースを表す。なお、「ＢＢＢ」は、「ＷＥＢ」又は「ＡＰＰ」のようなアプリケーションサービスの機能を示すコンポート名でなくてもよく、例えば、「ＣＯＭ１」、「ＣＯＭ２」のようなコンポーネントを示す「ＣＯＭ」に識別番号を加えたものでものよい。コンポーネント名また仮想マシン名の形式は、仮想マシンが実行するアプリケーションに応じて運用管理者等により決定しておくことが好ましい。
【００９４】
次に、配置予定の仮想マシンを配置先のホストマシンに配置する場合を考える。配置決定に際しては、ホストマシンで利用可能なリソースの量と、各仮想マシンが要求するリソースの量を対応させる必要がある。つまり、配置先のホストマシンで利用可能なリソース量を越えないように配置予定の仮想マシンをホストマシンに配置する必要がある。
【００９５】
図１０Ａは、ホストマシンのリソース制約を示し、図１０Ｂは、仮想マシンのリソース制約の例を示す。図１０Ａに示すホストマシンのリソース制約は、ホストマシンごとに利用可能なリソースの量を示す。図１０Ａの例では、配置先のホストマシンは、４つのＣＰＵコアを持ち、及び、１２ＧＢ（Ｇｉｇａ  Ｂｙｔｅ）のメモリ容量というリソース制限を持つ。リソース制約はＣＰＵコア数又はメモリ容量の他に、ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  ｃａｒｄ）の数、記憶ディスクの記録容量、又は、Ｉ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）帯域を含んでもよい。
【００９６】
一方、図１０Ｂに示す仮想マシンリソース制約は、各仮想マシンが要求するリソースの量を示している。例えば、サービスＳＲＶ１のＷＥＢコンポーネントは、１つのＣＰＵコア、２ＧＢのメモリ容量を要求することがわかる。
【００９７】
上記のようなリソース制約を満すように仮想マシン配置を決定する場合、先行技術文献の特許文献１のように性能又はコスト要件に基づいて、できるだけ少ないホストマシンに仮想マシンを集約させるという方針がある。
【００９８】
図１１は、比較例である特許文献１の仮想マシン配置法を用いて、リソース制約を満たすように仮想マシンをホストマシンに配置した例である。特許文献１の配置法によって、６台中５台のホストマシンに仮想マシンが集約される。
【００９９】
しかし、図１１の配置例では、各ホストマシンにサービスＳＲＶ1とサービスＳＲＶ２の仮想マシンが混在する形で配置されており、運用管理の観点からすると見通しが悪い。
【０１００】
また、比較例では、アプリケーションのコンポーネント番号に関係なく仮想マシンの配置が決まる。例えば、仮想マシン名「ＳＲＶ２−ＣＯＭ１−００１」である仮想マシンと、仮想マシン名「ＳＲＶ２−ＣＯＭ１−００２」である仮想マシンは、そのアプリケーションの関連性が反映されることなくホストマシンに配置される。このため、運用管理者は、コンポーネントの集合を特定することが難しい。
【０１０１】
比較例では、「ＤＣ１−０１０１−＊」のホストマシンと「ＤＣ１−０３０５−＊」のホストマシンは、第１データセンタ内の異なるフロアにある。このため、ＳＲＶ１とＳＲＶ２が異なるフロアにまたがって配置される。したがって障害が発生した場合、運用管理者はホストマシンの復旧作業のために異なるフロアを往復しなければならず、運用性を著しく損なうことになる。
【０１０２】
これに対し、本発明の各実施の形態は、仮想マシン制御装置の生成部によりホストマシン名／仮想マシン名に基づいた運用性制約を生成し、ホストマシン名は、データセンタにおける各ホストマシンのロケーション情報を含む。さらに仮想マシン名は、アプリケーションサービスを構成するコンポーネント情報を含んでいる。このため、仮想マシンの配置決定で運用性を反映した仮想マシンの配置が可能となる。
【０１０３】
以下、第２の実施形態である仮想マシン制御装置に図９Ａのホストマシン名リスト、図９Ｂの仮想マシン名リストを用いた例を説明する。
【０１０４】
はじめに、仮想マシン制御装置１０の生成部１１は、ホストマシン名の類似性を判定する。これにより、生成部１１は、「ＤＣ１−０１０１」と「ＤＣ１−０３０５」というホストマシン名の集合を生成する。ホストマシン名の集合は、各ホストマシン名に対して、部分的な文字列一致を検索することで取得できる。
【０１０５】
同様に、生成部１１は、仮想マシン名の類似性を判定し、「ＳＲＶ１−ＷＥＢ１」、「ＳＲＶ１−ＡＰＰ１」「ＳＲＶ１−ＤＢ」、「ＳＲＶ２−ＣＯＭ１」、「ＳＲＶ２−ＣＯＭ２」、及び、「ＳＲＶ２−ＣＯＭ３」という仮想マシン名の集合を生成する。
【０１０６】
次に、生成部１１は、ホストマシン名の集合、および、仮想マシン名の集合に対して、順序規則の特定を行う。
【０１０７】
仮想マシン名の集合のうち、仮想マシン名の最後の文字列に着目する。文字列は、３桁の番号が付与されており、生成部１１は、これを仮想マシン名の順序として特定する。この場合、単純に辞書順にソートするだけでも順序を特定できる。
【０１０８】
以上のようにして、ホストマシン名および仮想マシン名はそれぞれ図１２、図１３Ａ、及び、図１３Ｂに示す体系として表現できる。
【０１０９】
図１２、図１３Ａ、及び、図１３Ｂに示す体系は、そのまま運用管理の体系を反映しているため、この体系を仮想マシン配置に反映することが運用管理にとって望ましい。
【０１１０】
第２の実施形態における仮想マシン制御装置１０の生成部１１は、ある仮想マシンの集合における特定の順序規則を、仮想マシンの配置の順番として反映させた運用性制約を生成することができる。例えば、生成部１１は、図１２に示すホストマシンの集合「ＤＣ１−０１０１」で「ＤＣ１−０１０１−００１」、「ＤＣ１−０１０１−００２」、「ＤＣ１−０１０１−００３」、「ＤＣ１−０１０１−００４」の順に仮想マシンを配置する制約を生成できる。
【０１１１】
また、第２の実施形態における仮想マシン制御装置１０の生成部１１によって、仮想マシンの集合に属する仮想マシンが共通のホストマシンの集合に配置するように運用性制約を生成することができる。
【０１１２】
仮想マシン制御装置１０の決定部１２は、この運用性制約を参照して仮想マシン配置を決定する。これにより、リソース制約を満たし、かつ運用性制約を満たす仮想マシン配置情報を決定することができる。
【０１１３】
図１４は運用性制約を反映して決定した仮想マシンの配置情報の例である。運用性制約に基づき、サービスＳＲＶ１は「ＤＣ１−０１０１」のホストマシン集合に集約されており、サービスＳＲＶ２は「ＤＣ１−０３０５」のホストマシン集合に集約される。図１４の配置情報によれば、データセンタのフロアごとに仮想マシンが配置されるサービスが異なるため、運用性の向上が期待できる。
【０１１４】
また、「ＤＣ１−０１０１−００１」、「ＤＣ１−０１０１−００２」の順に「ＳＲＶ１−ＷＥＢ１」の仮想マシン集合のコンポーネントが配置されており、「ＳＲＶ１−ＷＥＢ１」の仮想マシン集合に４台の仮想マシンが配置されることを容易に把握できる。
【０１１５】
さらに、図１４に示す運用性を反映した配置情報は、リソース制約を満たす比較例と同等の５台のホストマシンに仮想マシンを集約することもできる。
【０１１６】
［効果の説明］ 
本発明の第２の実施形態における仮想マシン制御装置１０は、生成部１１によって、ホストマシン名と仮想マシン名に基づく集合制約と順序制約を含む運用性制約が生成される。これにより、システムの運用管理者は、システムの管理単位での運用性制約を得ることができ、運用性を反映した仮想マシン配置を決定できる。
【０１１７】
なお、本実施の形態における生成部１１では、順序規則特定部１１２、あるいは、順序制約生成部１１３を用いた例を記載しているが、運用性制約をゆるくしてもよい場合は、仮想マシンの順序規則又はホストマシンへの配置順序のいずれか一方を採用した運用性制約でもよい。
【０１１８】
＜第３の実施形態＞ 
次に、本発明の第３の実施形態である仮想マシン制御装置６０について図面を用いて詳細に説明する。第３の実施形態の仮想マシン制御装置は、運用性制約を生成する際に、配置予定の仮想マシンの情報に加えて、配置済みの仮想マシンの情報を用いる点で、第２の実施形態の仮想マシン制御装置と異なる。
【０１１９】
［構成の説明］
図１５は、本発明の第３の実施形態である仮想マシン制御装置６０の構成を示すブロック図である。図中、第３の実施形態の仮想マシン制御装置６０は、入力部６３と、生成部６１、決定部６２、抽出部６４と、記憶部６５、出力部６６を備える。
【０１２０】
仮想マシン制御装置６０の入力部６３には、仮想マシンの配置要求が入力され、配置要求に記載された配置予定の仮想マシンの情報は生成部６１に送られる。
【０１２１】
仮想マシン制御装置６０の記憶部６５は、配置制約情報６５２と仮想マシン配置情報６５４を記憶する。仮想マシン配置情報６５４は、現在、ホストマシンに配置された仮想マシンの配置構成の情報である。
【０１２２】
抽出部６４は、仮想マシン配置情報６５４から、対象となる配置済みの仮想マシン名リスト、および、ホストマシン名リストを作成し、生成部６１へ送る。
生成部６１は、配置予定の仮想マシン名リストと、抽出部６４で抽出された仮想マシン名リストとホストマシン名リストを参照して運用性制約を生成する。
【０１２３】
第３の実施形態における生成部６１の類似性判定部は、第２の実施形態の生成部１１の類似性判定部１１０と同様に、ホストマシン名と仮想マシン名のそれぞれの類似性を判定する。さらに生成部６１の集合作成部は、第２の実施形態の生成部１１の集合作成部１１１と同様に、ホストマシン名と仮想マシン名のそれぞれの類似性に基づいた集合を作成する。
【０１２４】
生成部６１の順序規則特定部は、第２の実施形態の生成部１１の順序規則特定部１１２と同様に、類似性判定部と集合作成部で作成されたホストマシン名の集合、および、仮想マシン名の集合内で名前の順序規則を特定する。生成部６１の順序制約生成部は、第２の実施形態の生成部１１の順序制約生成部１１３と同様に、その順序規則を仮想マシン配置に反映させるための配置制約を生成する。
【０１２５】
記憶部６５には、生成部６１によって生成された運用性制約が運用性制約情報６５３として格納される。記憶部６５の配置制約情報６５２は、仮想マシンの配置を決定する際に反映する制約であり、仮想マシン及びホストマシンのリソース制約、又は、仮想マシン間のコロケーション制約などが該当する。
【０１２６】
決定部６２は、運用性制約と配置制約と現在の仮想マシン配置の情報を参照し、制約を満たす仮想マシン配置を決定する。
【０１２７】
出力部６６は、決定部６２が決定した仮想マシン配置の結果を出力する。
【０１２８】
［動作の説明］
図１６、図１７は、本発明の第３の実施形態である仮想マシン制御装置の動作を示すフローチャートである。
【０１２９】
入力部６３は、仮想マシンの配置要求を入力し（Ｄ１）、配置要求の情報に基づき配置予定の仮想マシン名リストを抽出し（Ｄ２）、生成部６１へ送る。
【０１３０】
次に、抽出部６４は、記憶部６５に記憶された仮想マシン配置情報６５４からホストマシン名リスト、および、配置済みの仮想マシン名リストを抽出する（Ｄ３）。
【０１３１】
次に、生成部６１は、仮想マシンの配置要求に配置済みの仮想マシンがあるかを判断し（Ｄ４）、配置済みの仮想マシンが含まれる場合は、生成部６１は、配置予定の仮想マシン名リストと配置済みの仮想マシン名リストをマージする（Ｄ５）。配置済みの仮想マシンが含まれない場合は、次の類似性と規則性の特定の手順へ進む。
【０１３２】
生成部６１は、取得したホストマシン名リストと仮想マシン名リストから、名前の類似性と規則性を特定し、仮想マシン配置のための運用性制約を生成し（Ｄ６、Ｄ７）、生成した運用性制約を運用性制約情報６５３として記憶部６５に格納する（Ｄ８）。
【０１３３】
図１７に示すように、生成部６１は、記憶部６５から現在の仮想マシン配置情報６５４を取得する（Ｄ９）。
【０１３４】
ここで、仮想マシンの配置要求に配置済みの仮想マシンが含まれている場合、生成部６１は、配置済みの仮想マシン名の情報を配置予定の仮想マシン名リストに追加する（Ｄ１０、Ｄ１２）。
【０１３５】
配置要求に配置済みの仮想マシンが含まれていない場合、生成部６１は、配置済みの仮想マシンが利用しているリソースを他の仮想マシンに割り当てないように配置制約を生成し（Ｄ１１）、配置制約情報６５２とマージする。
【０１３６】
次に、決定部６２は配置制約情報６５２を参照し（Ｄ１３）、また、生成された運用性制約を参照し（Ｄ１４）、制約プログラミングを解く処理によって与えられた制約を満たす仮想マシン配置を決定する（Ｄ１５）。
【０１３７】
決定された仮想マシン配置は、出力部６６から出力される（Ｄ１６）。
【０１３８】
［効果の説明］
本発明の第３の実施形態である仮想マシン制御装置６０は、配置予定の仮想マシンと現在、配置済みの仮想マシンに基づいて運用性制約を生成し、生成された運用性制約を含む制約に基づき仮想マシン配置を決定する。このような構成により、現在、配置済みの仮想マシンの配置構成を反映した仮想マシンの配置決定が可能となる。配置済みの仮想マシンの配置構成を用いた管理上の制約を維持し運用性を低下させない仮想マシン配置を得ることができる。
【０１３９】
＜第４の実施形態＞
次に、本発明の第４の実施形態である仮想マシン制御装置について図面を参照して詳細に説明する。第４の実施形態の仮想マシン制御装置は、仮想マシン制御装置の決定部がその構成として探索部、スコア計算部、選択部を備える点で相違する。第２の実施形態の仮想マシン制御装置と同じ構成・動作については、詳細な説明を省略する。
【０１４０】
［構成の説明］
図１８は、本発明の第４の実施形態である仮想マシン制御装置の構成を示すブロック図である。図中、第４の実施形態である仮想マシン制御装置７０は、入力部７３、生成部７１、抽出部７４、記憶部７５、出力部７６、探索部７７、スコア計算部７８、及び、選択部７９を備える。
【０１４１】
仮想マシン制御装置７０の記憶部７５は、ホストマシン構成情報７５１、配置制約情報７５２、および、生成部７１で生成された運用性制約情報７５３を記憶する。
【０１４２】
仮想マシン制御装置７０の探索部７７は、記憶部７５に記憶されたホストマシン構成情報７５１、配置制約情報７５２、および、運用性制約情報７５３を参照し、制約を充足する仮想マシン配置の候補を複数決定する。
【０１４３】
仮想マシン制御装置７０のスコア計算部７８は、運用性制約情報７５３と仮想マシンの配置制約情報７５２を参照して、探索部７７で決定された複数の仮想マシン配置情報ごとに、制約を満たす度合いを計算する。
【０１４４】
仮想マシン制御装置７０の選択部７９は、複数の仮想マシン配置情報に対して制約の充足度に基づいてスコア付を行い、複数の仮想マシン配置情報から一つを選択する。複数の仮想マシンからの選択は、例えば、最も高いスコアを基準とする。
【０１４５】
［動作の説明］
図１９は、本発明の第４の実施形態である仮想マシン制御装置の動作を示すフローチャートである。仮想マシン配置要求を入力として運用性制約を生成する動作は第２の実施形態のフローチャートの動作と同様である。
【０１４６】
生成部７１による運用性制約の生成後、探索部７７は、記憶部７５からホストマシン構成情報７５１（Ｅ１）と、配置制約情報７５２（Ｅ２）と、運用性制約情報７５３（Ｅ３）を参照し、配置制約と運用性制約の中で必ず満たすべき制約を充足する仮想マシン配置情報の候補を探索する（Ｅ４）。
【０１４７】
必ず満たすべき制約であるか否かは、ユーザによって事前に指定されるものとする。
【０１４８】
以上のようにして得られた複数の仮想マシン配置情報の中から各仮想マシン配置情報の候補を取り出す（Ｅ５）。
【０１４９】
スコア計算部７８は、仮想マシンの配置制約と運用性制約の充足度を調べ、各仮想マシン配置情報の候補のスコアを計算する（Ｅ６）。なお、「仮想マシン名の集合Ｖを可能な限りホストマシン名の集合Ｈに配置する」という制約がある場合、スコア計算部７８は、ホストマシン名の集合Ｈに配置できた仮想マシンの数に基づくスコアを計算してもよい。
【０１５０】
また、「仮想マシンｖ１、ｖ２、ｖ３、ｖ４を可能な限り辞書順で配置する」という制約がある場合、スコア計算部７８は、配置情報に含まれる仮想マシンｖ１、ｖ２、ｖ３、ｖ４の出現順を列（ｖ１、ｖ２、ｖ３、ｖ４）に変換するために必要な置換処理の数に基づくスコアを計算してもよい。さらに、スコア計算部７８は、仮想マシン配置の候補によって実現される他の非機能な要件、例えば、性能、あるいは、可用性などを数値的に計算してスコアとしてもよい。
【０１５１】
次に、スコア計算部７８は、所定の数の仮想マシン配置情報の候補に対するスコアを計算した後（Ｅ７）、選択部７９は、計算の結果に基づいて仮想マシンの配置情報を選択する。配置情報の選択は、最も高いスコアの配置情報が好ましい（Ｅ８）。
【０１５２】
最後に、選択された仮想マシン配置情報が出力部７６から各ホストマシンへ出力される（Ｅ９）。
【０１５３】
［効果の説明］
本発明の第４の実施形態である仮想マシン制御装置７０は、必要な配置制約を充足した上で、可能な限り満たすべき配置制約、又は、運用性制約をできるだけ多く満たす仮想マシン配置を選択できるようになる。これにより、リソース制約や運用性制約を厳密に満たせない場合でも、可能な限り運用性を反映した仮想マシン配置を決定できる。
【０１５４】
仮想マシン配置情報の候補が複数ある場合、又は、制約を完全に満たす仮想マシン配置情報が存在しない場合でも運用性を向上させる仮想マシン配置情報を決定することができる。
【０１５５】
＜ハードウエア構成＞
図２０は、本発明の第１〜４の実施形態における仮想マシン制御装置、又は、ホストマシンをコンピュータ装置で実現したハードウエア構成を示す図である。
【０１５６】
図２０に示すように、仮想マシン制御装置、又は、ホストマシンは、ＣＰＵ９１、ネットワーク接続用の通信Ｉ／Ｆ（ＩｎｔｅｒＦａｃｅ）９２、メモリ９３、及び、プログラムを格納するハードディスク等の記憶部９４を含み、システムバス９７を介して入力部９５及び、出力部９６に接続される。
【０１５７】
ＣＰＵ９１は、オペレーティングシステムを動作させて本発明の第１〜４の実施形態に係る仮想マシン制御装置又はホストマシンを制御する。またＣＰＵ９１は、例えば、ドライブ装置に装着された記録媒体からメモリ９３にプログラム、又は、データを読み出す。
【０１５８】
また、ＣＰＵ９１は、例えば、各実施形態における生成部、決定部、入力部、抽出部を処理する機能を有し、プログラムに基づいて各種機能の処理を実行する。
【０１５９】
記憶部９４は、例えば、光ディスク、フレキシブルディスク、磁気光ディスク、外付けハードディスク、又は半導体メモリ等である。記憶部９４の一部の記憶媒体は、不揮発性記憶装置であり、そこにプログラムを記憶する。また、プログラムは、通信網に接続される。図示しない外部コンピュータからダウンロードされてもよい。
【０１６０】
入力部９５は、情報の入力に用いられ、出力部９６はＣＰＵ９１により処理された情報等を出力して確認するために用いられる。このように、本発明の各実施形態は、図２０に示されるハードウエア構成によって実現される。
【０１６１】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【０１６２】
上記実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
［付記１］
配置予定の仮想マシンが記述された仮想マシン名リストと仮想マシンを配置可能なホストマシンが記述されたホストマシン名リストに基づき、前記配置予定の仮想マシンに対する運用性制約を生成する生成手段と、
前記生成された運用性制約を含む制約に基づき、前記配置予定の仮想マシンの配置を決定する決定手段と、を備え、
前記ホストマシン名は、前記ホストマシンのロケーション情報を含み、前記仮想マシン名は、アプリケーションサービスを構成するコンポーネント情報を含む、仮想マシン制御装置。
【０１６３】
［付記２］
前記運用性制約が、仮想マシンの配置の纏まりを規定した集合制約、又は、仮想マシンの配置順序を規定した順序制約である、付記１記載の仮想マシン制御装置。
【０１６４】
［付記３］
前記生成手段は、類似性判定手段と、集合作成手段と、備え、
前記類似性判定手段は、前記ホストマシン名リストと前記仮想マシン名リストに対し、リスト中のホストマシン名と仮想マシン名の類似性を判定し、
前記集合作成手段は、前記類似性判定手段によるホストマシン名、あるいは、仮想マシン名の類似性に基づいてホストマシン名の集合、あるいは、仮想マシン名の集合を作成する、付記１又は２記載の仮想マシン制御装置。
【０１６５】
［付記４］
前記生成手段は、順序規則特定手段を備え、
前記順序規則特定手段は、作成されたホストマシン名の集合ごと、又は、仮想マシン名の集合ごとに、集合におけるホストマシン名、あるいは、仮想マシン名の順序規則を特定する、付記３記載の仮想マシン制御装置。
【０１６６】
［付記５］
前記生成手段は、配置予定の仮想マシンの情報と、配置済みの仮想マシンとの情報に基づいて前記運用性制約を生成する、付記１から４のいずれかに記載の仮想マシン制御装置。
【０１６７】
［付記６］
仮想マシンの配置要求に、配置要求に配置済みの仮想マシンが含まれていない場合は、配置済みの仮想マシンが利用しているリソースを他の仮想マシンに割り当てないように配置制約を生成する、付記１から４のいずれかに記載の仮想マシン制御装置。
【０１６８】
［付記７］
前記決定手段は、探索手段、スコア計算手段、および、選択手段を備え、
前記探索手段は、記憶手段に記憶されたホストマシン構成情報、配置制約情報、および、前記生成手段で生成した運用性制約情報を参照し、制約を充足する仮想マシン配置の候補を複数決定し、
前記スコア計算手段は、運用性制約情報と仮想マシンの配置制約情報を参照して、前記探索手段で決定された複数の仮想マシン配置情報ごとに、制約を満たす度合いを計算し、
前記選択手段は、前記決定された複数の仮想マシン配置情報に対して制約の充足度に基づいてスコア付を行い、前記スコアに基づいて前記決定された複数の仮想マシン配置情報から一つを選択する、付記１から６のいずれかに記載の仮想マシン制御装置。
【０１６９】
［付記８］
配置予定の仮想マシンが記述された仮想マシン名リストと仮想マシンを配置可能なホストマシンが記述されたホストマシン名リストに基づき、前記配置予定の仮想マシンに対する運用性制約を生成し、
前記生成された運用性制約を含む制約に基づき、前記配置予定の仮想マシンの配置を決定し、
前記ホストマシン名は、前記ホストマシンのロケーション情報を含み、前記仮想マシン名は、アプリケーションサービスを構成するコンポーネント情報を含む、仮想マシン制御方法。
【０１７０】
［付記９］
コンピュータに、
配置予定の仮想マシンが記述された仮想マシン名リストと仮想マシンを配置可能なホストマシンが記述されたホストマシン名リストに基づき、前記配置予定の仮想マシンに対する運用性制約を生成する処理と、
前記生成された運用性制約を含む制約に基づき、前記配置予定の仮想マシンの配置を決定する処理と、を実現させる仮想マシン制御プログラムを記録したコンピュータ読み取り可能な記録媒体であって、
前記ホストマシン名は、前記ホストマシンのロケーション情報を含み、前記仮想マシン名は、アプリケーションサービスを構成するコンポーネント情報を含む、仮想マシン制御プログラムを記録したコンピュータ読み取り可能な記録媒体。
【０１７１】
［付記１０］
仮想マシン制御装置と、ホストマシンを備えるデータセンタであって、
前記仮想マシン制御装置は、
配置予定の仮想マシンが記述された仮想マシン名リストと仮想マシンを配置可能なホストマシンが記述されたホストマシン名リストに基づき、前記仮想マシンの運用性制約を生成する生成手段と、
前記生成された運用性制約を含む制約に基づき、前記配置予定の仮想マシンの配置を決定する決定手段と、を備え、
前記ホストマシン名は、前記データセンタにおける前記ホストマシンのロケーション情報を含み、前記仮想マシン名は、アプリケーションサービスを構成するコンポーネント情報を含む、データセンタ。
【０１７２】
この出願は、２０１３年５月２９日に出願された日本出願特願２０１３−１１２９０６号を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【０１７３】
５  仮想マシン配置制御部
１０、６０、７０  仮想マシン制御装置
１、１１、６１、７１  生成部
２、１２、６２  決定部
１３、６３、７３  入力部
１４、６４、７４  抽出部
１５、６５、７５  記憶部
１６、６６、７６  出力部
２０  データセンタ
３０Ａ、３０Ｂ、３０Ｃ  ホストマシン
４０Ａ、４０Ｂ、４０Ｃ  仮想マシン
５０Ａ、５０Ｂ、５０Ｃ  プログラム
７７  探索部
７８  スコア計算部
７９  選択部
８０  アプリケーションサービス
９１  ＣＰＵ
９２  通信Ｉ／Ｆ
９３  メモリ
９４  記憶部
９５  入力部
９６  出力部
９７  システムバス
１１０  類似性判定部
１１１  集合作成部
１１２  順序規則特定部
１１３  順序制約生成部
１５１、７５１  ホストマシン構成情報
１５２、６５２、７５２  配置制約情報
１５３、６５３、７５３  運用性制約情報
６５４  仮想マシン配置情報
【図１】
2014192254.tif 000003
【図２】
2014192254.tif 000004
【図３】
2014192254.tif 000005
【図４】
2014192254.tif 000006
【図５】
2014192254.tif 000007
【図６】
2014192254.tif 000008
【図７】
2014192254.tif 000009
【図８】
2014192254.tif 000010
【図９Ａ】
2014192254.tif 000011
【図９Ｂ】
2014192254.tif 000012
【図１０Ａ】
2014192254.tif 000013
【図１０Ｂ】
2014192254.tif 000014
【図１１】
2014192254.tif 000015
【図１２】
2014192254.tif 000016
【図１３Ａ】
2014192254.tif 000017
【図１３Ｂ】
2014192254.tif 000018
【図１４】
2014192254.tif 000019
【図１５】
2014192254.tif 000020
【図１６】
2014192254.tif 000021
【図１７】
2014192254.tif 000022
【図１８】
2014192254.tif 000023
【図１９】
2014192254.tif 000024
【図２０】
2014192254.tif 000025
【国際調査報告】
2014192254.tif 000026
2014192254.tif 000027