(57)【特許請求の範囲】
【請求項１】
データセンタにおいて複数のサーバ装置が配置されており、各サーバ装置が複数台の仮想マシンを共有しているシステムにおいて、該仮想マシンの資源使用状況に応じて該仮想マシンの再配置を行う仮想マシン配置装置であって、
前記サーバ装置と前記仮想マシンの時系列の資源使用状況を取得し、資源使用量の時系列パターンの予測可能性を判定し、「資源使用量の時系列パターンの予測が可能な仮想マシン（第１の分類）」と、「資源使用量の予測が不可である仮想マシン（第２の分類）」とに分類する仮想マシン分析分類手段と、
前記仮想マシン分析分類手段による分類結果に基づいて、分類ごとに負荷平準化を行い、再配置する仮想マシンを決定する仮想マシン再配置決定手段と、
を有することを特徴とする仮想マシン配置装置。
【請求項２】
前記仮想マシン分析分類手段は、
前記第２の分類に分類された仮想マシンを、さらに、「資源使用量の変動について他の仮想マシンと相関を持つ仮想マシン（第３の分類）」と、「該資源使用量の変動について他の仮想マシンと相関を持たない仮想マシン（第４の分類）」とに分類する手段を含み、
前記仮想マシン再配置決定手段は、
前記第１の分類、前記第２の分類、前記第３の分類、前記第４の分類に対して、負荷平準化を行う手段を含む
請求項１記載の仮想マシン配置装置。
【請求項３】
前記仮想マシン再配置決定手段は、
前記第１の分類に対して、前記資源使用量の時系列パターンに基づいて、前記サーバ装置の資源使用量に関する時系列パターンを算出する手段と、
前記各サーバ装置が持つ複数種類の資源に関する時系列パターンを全て結合し、サーバ装置間の時系列パターンのバラツキの大きさを評価する評価関数を用いて、該評価関数が最小となるような仮想マシンの配置方法を算出する手段と、
算出された仮想マシンの配置方法に基づいて再配置を行う手段と、
を含む請求項１または２記載の仮想マシン配置装置。
【請求項４】
前記仮想マシン再配置決定手段は、
前記第３の分類に関して、前記資源使用量の時系列変動に相関がある仮想マシンのグループ（以下、「相関グループ」と記す）に基づいて、該相関グループに属する仮想マシンを最大限に異なるサーバ装置に分散させて配置する手段を含む
請求項２記載の仮想マシン配置装置。
【請求項５】
データセンタにおいて複数のサーバ装置が配置されており、各サーバ装置が複数台の仮想マシンを共有しているシステムにおいて、該仮想マシンの資源使用状況に応じて該仮想マシンの再配置を行う仮想マシン配置方法であって、
仮想マシン分析分類手段と、仮想マシン再配置決定手段と、を有する装置において、
前記仮想マシン分析分類手段が、前記サーバ装置と前記仮想マシンの時系列の資源使用状況を取得し、資源使用量の時系列パターンの予測可能性を判定し、「資源使用量の時系列パターンの予測が可能な仮想マシン（第１の分類）」と、「資源使用量の予測が不可である仮想マシン（第２の分類）」とに分類する仮想マシン分析分類ステップと、
前記仮想マシン再配置決定手段が、前記仮想マシン分析分類ステップによる分類結果に基づいて、分類ごとに負荷平準化を行い、再配置する仮想マシンを決定する仮想マシン再配置決定ステップと、
を行うことを特徴とする仮想マシン配置方法。
【請求項６】
前記仮想マシン分析分類ステップにおいて、
前記第２の分類に分類された仮想マシンを、さらに、「資源使用量の変動について他の仮想マシンと相関を持つ仮想マシン（第３の分類）」と、「該資源使用量の変動について他の仮想マシンと相関を持たない仮想マシン（第４の分類）」とに分類し、
前記仮想マシン再配置決定ステップにおいて、
前記第１の分類、前記第２の分類、前記第３の分類、前記第４の分類に対して、負荷平準化を行う
請求項５記載の仮想マシン配置方法。
【請求項７】
前記仮想マシン再配置決定ステップにおいて、
前記第１の分類に対して、前記資源使用量の時系列パターンに基づいて、前記サーバ装置の資源使用量に関する時系列パターンを算出し、
前記各サーバ装置が持つ複数種類の資源に関する時系列パターンを全て結合し、サーバ装置間の時系列パターンのバラツキの大きさを評価する評価関数を用いて、該評価関数が最小となるような仮想マシンの配置方法を算出し、
算出された仮想マシンの配置方法に基づいて再配置を行う
請求項５または６記載の仮想マシン配置方法。
【請求項８】
コンピュータを、
請求項１ないし４のいずれか１項に記載の仮想マシン配置装置の各手段として機能させるための仮想マシン配置プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想マシン配置装置及び方法及びプログラムに係り、特に、データセンタに多数のサーバ装置が存在し、かつ各サーバ装置上に複数の仮想マシンが動作する状況において、仮想マシンの資源使用状況に基づき、仮想マシンを分類し、再配置の制御を行うための仮想マシン配置装置及び方法及びプログラムに関する。
【背景技術】
【０００２】
近年、クラウドサービスの拡大に伴いサービスが多様化、大規模化し、それに伴いサービスの維持のために必要なサーバ設備が増加している。多くのデータセンタではサーバ台数削減のためにサーバ仮想化技術が導入される。しかし、あるサーバ設備に収容する仮想マシンの資源需要量の合計が、そのサーバ設備の最大性能を超えたときに過負荷が発生する。過負荷の発生時は仮想マシンの性能が劣化し、その結果、仮想マシンで提供されるサービス品質の低下を招く。このため、負荷の高いサーバ設備の仮想マシンを別のサーバ設備に移動させることで過負荷の発生を防ぐための様々な方式が、市中技術及び研究で検討されている。
【０００３】
過負荷を抑制するための技術として、VMwareDRAMおよび関連製品がある（例えば、非特許文献１参照）。当該非特許文献１には、主に２つの方式が述べられている。
【０００４】
第１の方式は、サーバ装置の資源使用量が一定の閾値を超過した際に、そのサーバ装置の中で最も負荷の高い仮想マシンを、資源使用量が低い別のサーバ設備に移動(再配置)する方式である。
【０００５】
第２の方式は、ある時刻における資源使用量のスナップショットを取得し、そのスナップショットの情報に基づき、サーバ設備間で最大限に負荷の偏りを抑える方式（以下、この方式を「負荷の平滑化」と記す）。
【０００６】
しかしながら、上記の第１の方式は、一時的な過負荷を防ぐことができる一方で、過負荷を防ぐのに必要な再配置回数が多くなる。その結果、再配置自体の負荷が増大し、過負荷の発生を誘発するリスクが高く、また閾値はサーバ設備の環境に応じて適切な値にチューニングする必要がある。
【０００７】
また、第２の方式は、スナップショットを取得したある瞬間の時刻の中でのみ資源負荷の平準化を行うため、平準化の後に資源負荷が大幅に増加する場合などにおいては、過負荷抑制に対して逆効果になるケースがある。
【０００８】
上記から、非特許文献１の技術は、予測やそれに基づく時系列変動を考慮していないため、負荷抑制の制御による効果が一時的であり、再配置回数の増加により過負荷リスクが逆に悪化するケースがある。
【０００９】
また、非特許文献１の技術は、資源負荷の平準化を行う対象の資源として、CPU負荷変動もしくはストレージ負荷変動など特定種類の資源のみを扱う。実際のサーバ資源ではメモリ使用量やストレージ割当量など非常に多くの種類の資源を同時に考慮すべき状況があり、そのための手段は、当該非特許文献１では提供されていない。
【００１０】
上記の非特許文献１に対して、CPU資源の負荷変動とストレージI/O負荷変動に対して、数時間先の予測値を求め、それに基づき再配置を行う方式がある（例えば、非特許文献２参照）。
【先行技術文献】
【非特許文献】
【００１１】
【非特許文献１】GULATI, Ajay, et al. VMware distributed resource management: Design, implementation, and lessons learned. VMware Technical Journal, 2012, 1.1: 45-64.
【非特許文献２】PADALA, Pradeep, et al. "Automated control of multiple virtualized resources". In: Proceedings of the 4th ACM European conference on Computer systems. ACM, 2009. p. 13-26.
【発明の概要】
【発明が解決しようとする課題】
【００１２】
しかしながら、非特許文献２の技術は、非特許文献１の課題を部分的に解決してはいるが、一方で予測した前後の資源使用量の時系列変動は考慮されていないため、再配置による過負荷抑制効果が長時間持続しないという課題がある。また、複数資源の扱いについては非特許文献１の技術と同様に、実際のサーバ資源ではメモリ使用量やストレージ割当量など非常に多くの種類の資源を同時に考慮する必要がある。
【００１３】
さらに、非特許文献２では、仮想マシンの負荷が予測可能であることを前提にしており、仮想マシンの予測が不可である場合の扱いについては言及されていない。
【００１４】
本発明は上記の点に鑑みなされたもので、資源使用量の予測可能性を判定し、予測可能な仮想マシンに対して、予測した資源使用量の時系列パターンとあらゆる種類の資源使用量を同時に平準化することで過負荷抑制を実現すると同時に、あらゆる資源に関してサーバ設備の資源使用量の偏りを改善し、一方で予測不可の仮想マシンに対しては別の制御方式により過負荷の発生を抑制し、全体として様々なデータセンタ環境に適用可能な汎用的な資源使用量平準化を図るための仮想マシン配置装置及び方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１５】
一態様によれば、データセンタにおいて複数のサーバ装置が配置されており、各サーバ装置が複数台の仮想マシンを共有しているシステムにおいて、該仮想マシンの資源使用状況に応じて該仮想マシンの再配置を行う仮想マシン配置装置であって、
前記サーバ装置と前記仮想マシンの時系列の資源使用状況を取得し、資源使用量の時系列パターンの予測可能性を判定し、「資源使用量の時系列パターンの予測が可能な仮想マシン（第１の分類）」と、「資源使用量の予測が不可である仮想マシン（第２の分類）」とに分類する仮想マシン分析分類手段と、
前記仮想マシン分析分類手段による分類結果に基づいて、分類ごとに負荷平準化を行い、再配置する仮想マシンを決定する仮想マシン再配置決定手段と、を有する仮想マシン配置装置が提供される。
【発明の効果】
【００１６】
一態様によれば、サーバ設備に収容する仮想マシンの資源使用量のログに基づき、仮想マシンの資源使用量の時系列パターンが予測可能である場合はそれを含めて負荷の平準化を行い、サーバ装置の負荷の偏りを改善することで過負荷の発生及びそれに伴う仮想マシンの性能の劣化を改善することが可能となる。同様に仮想マシン同士に資源使用量の変動の相関が見られる場合、それを考慮した再配置を行うことで、資源使用量の時系列パターンが予測困難である場合においても特定のサーバ装置に対する負荷の偏りを改善する。
【図面の簡単な説明】
【００１７】
【図１】本発明の一実施の形態におけるシステム構成例である。
【図２】本発明が適用可能なサーバ装置と共有資源の関係を示す図である。
【図３】本発明の一実施の形態における情報記憶部の構成例である。
【図４】本発明の一実施の形態における仮想マシン分析分類部の概要処理のフローチャートである。
【図５】本発明の一実施の形態における仮想マシン分類情報記憶部に格納されるリストの例である。
【図６】本発明の一実施の形態におけるステップ１１０の処理の例である。
【図７】本発明の一実施の形態におけるステップ１４０の処理の例である。
【図８】本発明の一実施の形態における「リスト１：予測可能仮想マシン」に対する仮想マシン再配置決定部のフローチャートである。
【図９】本発明の一実施の形態における仮想マシン再配置決定部の処理の例（その１）である。
【図１０】本発明の一実施の形態における「リスト２：予測不可・相関あり仮想マシン」に対する仮想マシン再配置決定部のフローチャートである。
【図１１】本発明の一実施の形態における仮想マシン再配置決定部の処理の例（その２）である。
【発明を実施するための形態】
【００１８】
以下、図面と共に本発明の実施の形態を説明する。
【００１９】
本発明は、仮想マシンの資源利用状況に応じて、仮想マシンの資源使用量の時系列パターンを予測し、予測可能、予測困難それぞれの仮想マシンに対して適切な再配置制御を行い、結果としてサーバ装置の過負荷を抑制するものである。
【００２０】
図１は、本発明の一実施の形態におけるシステム構成例を示す。
【００２１】
本発明の適用環境はデータセンタにおいて多数のサーバ装置２０1〜２０nが配置されており、さらに各サーバ装置２０は複数の仮想マシン２１1〜２１mを保持する状況である。さらに、各サーバ装置２０内部においては、図２（ａ）に示すようなサーバ装置２０が持つ共有資源（CPU２３、主記憶装置２４、補助記憶装置３０ａ、通信インタフェース部２２等)を複数の仮想マシン２１1〜２１mが共有する状況を想定する。一方で、本発明は、図２(ｂ)に示すように、一部の共有資源（外部補助記憶装置３０ｂ）がサーバ装置２０の外部に外部補助記憶装置インタフェース部２５を介して存在し、その外部補助記憶装置３０ｂが複数のサーバ装置２０1〜２０nによって共有されている状況にも適用可能である。なお、本発明は、共有資源の数に関わらず適用可能であり、図２に示した資源以外の共有資源にも適用可能である。
【００２２】
以下では、図１に示す仮想マシン配置装置１００について説明する。
【００２３】
仮想マシン配置装置１００は、資源使用状況収集部１１０、仮想マシン分析分類部１２０、仮想マシン再配置決定部１３０、情報記憶部１４０を有する。
【００２４】
資源使用状況収集部１１０は、ネットワーク１０を経由して複数のサーバ装置２０1〜２０n、または、複数の仮想マシン２１1〜２１mの資源使用量を取得し、情報記憶部１４０に格納する。資源使用量を取得する技術は、非特許文献１の製品の一機能として利用することが可能である。ここで、情報記憶部１４０は、例えば、データベース等の記憶媒体であり、図３に示すように、資源使用量記憶部１４１、仮想マシン資源使用予測パターンを格納する仮想マシン資源使用予測パターン記憶部１４２、仮想マシン相関グループ記憶部１４３、仮想マシン分類情報記憶部１４４の各領域を有する。
【００２５】
仮想マシン分類情報記憶部１４４は、仮想マシン分析分類部１２０で分類された結果を、「リスト１」、「リスト２」、「リスト３」のいずれかに格納する。
【００２６】
本発明における主要構成要素は、仮想マシン分析分類部１２０、仮想マシン再配置決定部１３０である。
【００２７】
仮想マシン分析分類部１２０は、資源使用量記憶部１４１に記録された情報を元に、後述する方法により仮想マシン２１の分類を行う。
【００２８】
続いて、仮想マシン再配置決定部１３０は、後述する方法により仮想マシン２１をあるサーバ装置２０から別のサーバ装置２０に再配置する（例えば、サーバ装置２０1からサーバ装置２０2に再配置する）。
【００２９】
＜仮想マシン分析分類部１２０の処理＞
まず、仮想マシン分析分類部１２０における仮想マシンの分類方法について説明する。
【００３０】
図４は、本発明の一実施の形態における仮想マシン分析分類部の概要処理のフローチャートである。
【００３１】
ステップ１００）同図においては、本発明の適用対象に存在する仮想マシンの資源使用量を、資源使用量記憶部１４１から取得し、それぞれの仮想マシン２１1〜２１mに対して、資源使用量の時系列パターンの予測可能性を判定する。予測可能である場合はステップ１１０に移行し、予測不可である場合はステップ１３０に移行する。
【００３２】
ステップ１１０）仮想マシン分析分類部１２０は仮想マシン資源使用予測パターンを生成し、情報記憶部１４０の仮想マシン資源使用予測パターン記憶部１４２に格納する。
【００３３】
ステップ１２０）資源使用量の時系列パターンが予測可能な当該仮想マシン２１を仮想マシン分類情報記憶部１４４の「リスト１」に登録する。仮想マシン分類情報記憶部１４４の格納例を図５に示す。
【００３４】
ステップ１３０）ステップ１００において、予測不可と判定された場合には、仮想マシンの資源使用量の変動が他の仮想マシンとの相関があるかを判定する。相関をもつ場合はステップ１４０に移行し、相関がない場合はステップ１６０に移行する。
【００３５】
ステップ１４０）ステップ１３０で相関を持つと判定された場合には、仮想マシンの相関グループを生成し、情報記憶部１４０の仮想マシン相関グループ記憶部１４３に格納する。
【００３６】
ステップ１５０）当該仮想マシンを仮想マシン分類情報記憶部１４４の「リスト２」に登録する。
【００３７】
ステップ１６０）ステップ１３０で相関がないと判定された場合には、当該仮想マシンを仮想マシン分類情報記憶部１４４の「リスト３」に登録する。
【００３８】
上記のように、仮想マシン分析分類部１２０は、それぞれの仮想マシンに対して、資源使用量の時系列パターンの予測可能性を判定し、仮想マシンの資源使用量の変動が他の仮想マシンと相関があることを判定する。この判定の結果により、仮想マシンを３つのパターンに分類し、その仮想マシンの分類結果を仮想マシン分類情報記憶部１４４にリストとして記録する。
【００３９】
次に、上記のステップ１００において、仮想マシンの資源使用量の変動パターンが予測可能であった場合の処理（ステップ１１０）を以下に示す。
【００４０】
仮想マシンの時系列パターンが予測可能であるとは、図６（ａ）の左図の時系列パターンのように、翌日の時系列パターンや次週の時系列パターンなど、任意の時間幅において資源使用量の変動が周期性を持ち、将来の資源使用量の変動を予測できることを指す（図６（ｂ））。図６（ａ）の右図のように周期性を持たない場合には、予測不可と判定する。予測の精度は、主に、以下に依存する。
【００４１】
（１）予測方式：
非特許文献３（VERMA, Akshat, et al. Server workload analysis for power minimization using consolidation. In: Proceedings of the 2009 conference on USENIX Annual technical conference. USENIX Association, 2009. p. 28-28.)他多数の先行技術で用いられている手法を適用して時系列の周期性の有無の判定、すなわち、予測の判定を行うが、その手法については、当該技術に限定されるものではない。
【００４２】
（２）資源使用情報の時間粒度：
時間粒度の細かさは本発明ではパラメータを指しており、例えば、１０分おきに計測、３０分おきに計測など、計測時間の幅を指定する。
【００４３】
ステップ１１０では、非特許文献４（GMACH, Daniel, et al. Workload analysis and demand prediction of enterprise data center applications. In: Workload Characterization, 2007. IISWC 2007. IEEE 10th International Symposium on. IEEE, 2007. p. 171-180.）他多数で用いられている方式を利用して、予測した時系列パターンを得る。
【００４４】
次に、ステップ１００で予測可能と判定され(ステップ１００,yes)、ステップ１１０で得られた仮想マシン資源使用予測パターンの情報は別途、仮想マシン資源使用予測パターン記憶部１４２に記録して(ステップ１１０)、さらに、当該仮想マシン２１の情報（例えば、仮想マシンのID）を仮想マシン分類情報記憶部１４４の「リスト１」に「予測可能仮想マシン」と登録する(ステップ１２０)。仮想マシン分析分類部１２０で分類された仮想マシンに対する負荷平準化の制御方式は後述する。
【００４５】
次に、ステップ１００において、予測不可と判定され(ステップ１００,no)、ステップ１３０で相関あり(ステップ１３０,yes)と判定された仮想マシン２１について説明する。
【００４６】
ステップ１３０では、資源使用量記憶部１４１に記録された仮想マシン２１の資源使用量を参照しつつ（図７(ａ)）、当該仮想マシン２１の資源使用量の変動が、他の仮想マシンと相関を持つか否かを判定する（図７（ｂ））。相関性の判定技術に関しては、前述の非特許文献４他多数で用いられている相関クラスタリング等の既存手法を適用するが、相関性抽出の方式は他にも多数存在し、その手法は限定されるものではない。図７（ｂ）の例では、資源使用情報から「仮想マシン１」、「仮想マシン２」「仮想マシン３」が「相関グループ１」と判定され、「仮想マシン３」、「仮想マシン４」が「相関グループ２」と判定される。
【００４７】
ステップ１３０において仮想マシン２１間の相関関係が検出された場合(ステップ１３０,yes)、前述の相関クラスタリングで得られた仮想マシン２１において、共通する相関グループを生成し、その結果を仮想マシン相関グループ記憶部１４３に記録する（ステップ１４０）。最後に当該仮想マシン２１の情報を、図５に示すように仮想マシン分類情報記憶部１４４の「リスト２」に「予測不可・相関あり仮想マシン」と登録する(ステップ１５０)。仮想マシン分析分類部１２０で分類された仮想マシン２１に対する負荷平準化の制御方式は後述する。
【００４８】
次に、ステップ１００において、予測不可と判定され(ステップ１００,no)、ステップ１３０において相関がない(ステップ１３０,no)と判定された場合の処理について説明する。
【００４９】
判定対象の仮想マシンについて、仮想マシン分類情報記憶部１４４の「リスト３」に「予測不可・相関なし仮想マシン」を登録する。仮想マシン分析分類部１２０で分類された仮想マシンに対する負荷平準化の制御方式は後述する。
【００５０】
＜仮想マシン再配置決定部１３０の処理＞
仮想マシン再配置決定部１３０は、仮想マシン分析分類部１２０によって得られた仮想マシン資源使用予測パターン記憶部１４２、仮想マシン相関グループ記憶部１４３、仮想マシン分類情報記憶部１４４の情報を利用して、サーバ装置２０間の資源使用量の偏りを平準化する。
【００５１】
以下では、仮想マシン分類情報記憶部１４４の情報
[１]「リスト１：予測可能仮想マシン」
[２]「リスト２：予測不可・相関あり仮想マシン」
[３]「リスト３：予測不可・相関なし仮想マシン」
のそれぞれについて、仮想マシンを再配置する処理について説明する。
【００５２】
[１]「リスト１：予測可能仮想マシン」の場合の処理：
ここでは、上記の仮想マシン分析分類部１２０により得られ、仮想マシン分類情報記憶部１４４に格納されている「リスト１：予測可能仮想マシン」に対する処理について説明する。
【００５３】
図８は、本発明の一実施の形態における「リスト：予測可能仮想マシン」に対する仮想マシン再配置決定部のフローチャートであり、図９は、本発明の一実施の形態における仮想マシン再配置決定の処理の例（その１）である。
【００５４】
ステップ２００）仮想マシン再配置決定部１３０は、仮想マシン分類情報記憶部１４４から「リスト１：予測可能マシン」に記録された仮想マシン２１の情報を読み出す。
【００５５】
ステップ２１０）仮想マシン資源使用予測パターン記憶部１４２から各資源使用量の予測の時系列パターンを入力し、図９（ａ）に示すように、現在の仮想マシン２１の配置情報に基づき、サーバ装置２０の負荷情報を、そのサーバ装置２０に属する仮想マシン２１の資源使用量を合計することで算出する。但し、この計算は共有資源の種類毎に別々に算出する。なお、仮想マシン資源使用予測パターン記憶部１４２から資源使用量の予測の時系列パターンが得られない場合は、オペレータあるいは、システムが資源使用状況収集部１１０からある期間のデータを選択して切り出す。ここで、ある期間とは、例えば、他の資源使用量が予測可能であった仮想サーバの予測期間と同じ期間を選択する等の方法がある。
【００５６】
ステップ２２０）ステップ２１０で得られた資源使用量を正規化する。正規化は例えば、共有資源の最大性能を100%とした場合の負荷で正規化する（図９（ｂ））。また、共有資源ごとに任意の重み付けの値を乗算することで、ステップ２４０における平準化手法において、特定の資源使用量もしくは２以上の資源使用量をより優先して平準化することを可能にする。
【００５７】
ステップ２３０）仮想マシン再配置決定部１３０は、ステップ２２０で正規化したあるサーバ装置２０の複数の資源使用量の時系列パターンを、図９（ｃ）に示すように互いに結合し、あるサーバ装置２０の資源使用量の時系列パターンを、一つの時系列パターン（時系列変動パターン）に統合する。
【００５８】
ステップ２４０）仮想マシン再配置決定部１３０は、ステップ２３０で得られたサーバ装置２０ごとに統合された資源使用量の時系列変動パターンに対して、サーバ装置２０間の時系列変動パターンの偏りを評価するための評価関数を適用する。例えば、図９（ｄ）に示すように、「サーバ装置ID」及び「共有資源・時刻情報」の２軸の行列形式に変換した上で、さらに二乗ノルムを評価関数として、サーバ装置２０間の資源使用量の偏りの大きさを評価する。この二乗ノルムは行列演算においては一般的な手法であるが、本発明では、ステップ２２０〜ステップ２４０で行列形式に変換し、サーバ装置２０間の資源使用量の偏りが大きい程、二乗ノルムが大きくなる性質に着目する。また、ここに示す二乗ノルムによる評価関数の例は一例であり、これを別の評価関数に差替えることも可能である。
【００５９】
ステップ２５０）ステップ２４０の評価関数を最小化する仮想マシン２１のサーバ装置２０への配置方法を、既存の組み合わせ最適化アルゴリズムを適用して求める。ここで、仮想マシン２１の配置を試行する度に、ステップ２１０からステップ２４０を再度計算して評価関数でサーバ装置２０間の資源使用量の偏りを再評価する。
【００６０】
組み合わせ最適化アルゴリズムに関して、総当りですべての仮想マシン２１の配置パターンを計算する場合は大きな計算負荷及び計算時間を要するため、評価関数を最小化する最適値に対する近似解を求めるアルゴリズムを適用する。このアルゴリズムには多くの既存方式があるが、本発明の検証では、非特許文献１で用いられているヒルクライム方式を拡張して近似解を求めることで、最適な仮想マシン２１のサーバ装置２０への配置パターンを求める。一方で再配置回数が多くなりすぎることを防ぐため、
１）前回の再配置に対して次の再配置の評価関数の値がある閾値以上改善しない場合；
２）再配置回数がある閾値を超過した場合；
のいずれかの条件を満たした場合は、それ以上の配置パターンは計算せず、ステップ２６０に移行する。これら２つの閾値はデータセンタの環境や、許容される再配置回数によって調整するパラメータである。
【００６１】
ステップ２６０）ステップ２５０において最終的に得られた再配置パターンに基づき、再配置を実行する。再配置の実行手段は、非特許文献１をはじめ、主にライブマイグレーションと呼ばれる機能として、多くのサーバ仮想化技術に実装されている。当該ステップでは、これらの再配置機能に対して再配置の指示を発行する。
【００６２】
[２]「リスト２：予測不可・相関あり仮想マシン」の場合の処理：
ここでは、上記の仮想マシン分析分類部１２０により得られ、仮想マシン分類情報記憶部１４４に格納されている「リスト２：予測不可・相関あり仮想マシン」に対する処理について説明する。
【００６３】
図１０は、本発明の一実施の形態における「リスト２：予測不可・相関あり仮想マシン」に対する仮想マシン再配置決定部のフローチャートであり、図１１は、本発明の一実施の形態における仮想マシン再配置決定の処理の例（その２）である。
【００６４】
ステップ３００）仮想マシン分類情報記憶部１４４から「リスト２：予測不可・相関あり仮想マシン」に記録された仮想マシン２１の情報を取得する。
【００６５】
ステップ３１０）仮想マシン相関グループ記憶部１４３から仮想マシン相関グループの情報を取得する（図１１（ａ））。
【００６６】
ステップ３２０）ステップ３１０で得られた仮想マシン相関グループの情報に基づき、図１１（ｂ）に示すように、同一の相関グループに属する仮想マシンは最大限に別々のサーバ装置２０に分散させるように配置する配置パターンを求める。得られた配置パターンに基づき、上記の[1]と同様の方式で再配置を実行する。
【００６７】
[３]「リスト３：予測不可・相関なし仮想マシン」の場合の処理：
ここでは、上記の仮想マシン分析分類部１２０により得られ、仮想マシン分類情報記憶部１４４に格納されている「リスト３：予測不可・相関なし仮想マシン」に対する処理について説明する。
【００６８】
仮想マシン分類情報記憶部１４４に格納されている「リスト３：予測不可・相関なし仮想マシン」の仮想マシンについては、資源使用量が時間に関わらず一定と見做して、前述の[1]と同様の方法で再配置する方法や、非特許文献１等で用いられている資源思量量の閾値に基づく再配置を適用する。
【００６９】
なお、上記の図１に示す仮想マシン配置装置の資源使用状況収集部１１０、資源情報記憶部１４０と連携して、図４、図８、図１０の各処理をプログラムとして構築し、仮想マシン配置装置として利用されるコンピュータにインストールして実行させる、または、ネットワークを介して流通させることが可能である。また、当該プログラムは、仮想マシン配置装置１００またはサーバ装置２０に搭載された再配置実行機能とそれぞれ連携する機能を有する。
【００７０】
本発明は、上記の実施の形態の例に限定されることなく、特許請求の範囲内において、種々変更・応用が可能である。
【符号の説明】
【００７１】
１０  ネットワーク
２０，２０1〜２０n  サーバ装置
２１，２１1〜２１m  仮想マシン
２２  通信インタフェース部
２３  ＣＰＵ
２４  主記憶装置（メモリ）
２５  外部補助記憶装置インタフェース部
３０a  補助記憶装置
３０b  外部補助記憶装置
３０  共有資源
１００  仮想マシン配置装置
１１０  資源使用状況収集部
１２０  仮想マシン分析分類部
１３０  仮想マシン再配置決定部
１４０  情報記憶部
１４１  資源使用量記憶部
１４２  仮想マシン資源使用予測パターン記憶部
１４３  仮想マシン相関グループ記憶部
１４４  仮想マシン分類情報記憶部
【図１】
0006031462.tif 000002
【図２】
0006031462.tif 000003
【図３】
0006031462.tif 000004
【図４】
0006031462.tif 000005
【図５】
0006031462.tif 000006
【図６】
0006031462.tif 000007
【図７】
0006031462.tif 000008
【図８】
0006031462.tif 000009
【図１０】
0006031462.tif 000010
【図１１】
0006031462.tif 000011
【図９】
0006031462.tif 000012