(57)【特許請求の範囲】
【請求項１】
複数の仮想計算機を備える計算機システムの物理計算資源の割当て方法であって、
記憶部が、各仮想計算機の負荷を変動特性に応じて複数のグループに分類した負荷情報を保持し、
割当てスケジュール作成部が、前記負荷情報と前記グループ毎に定められた規則とに基づき、所定期間における前記各仮想計算機の負荷を予測し、予測した前記各仮想計算機の負荷に基づき、前記各グループに分類された1以上の仮想計算機に割り当てる前記物理計算資源の割り当て量及び割り当てる時間帯を前記グループ毎に決定し、決定した前記割り当て量及び前記時間帯の情報が含まれるスケジュールを作成し、
スケジュール実行部が、前記スケジュールに基づいて、前記仮想計算機に前記物理計算資源を割り当てる、
ことを特徴とする物理計算資源の割当て方法。
【請求項２】
請求項１に記載の物理計算資源の割当て方法であって、
前記複数のグループには、所定期間において所定範囲内に収まる負荷変動を示す仮想計算機が分類される第１のグループと、所定期間を周期として増減する負荷変動を示す仮想計算機が分類される第２のグループと、時間の経過とともに所定の割合で増加するまたは所定の割合で減少する負荷変動を示す仮想計算機が分類される第３のグループと、不規則に変化する負荷変動を示す仮想計算機が分類される第４のグループとが含まれる、
ことを特徴とする物理計算資源の割当て方法。
【請求項３】
請求項２に記載の物理計算資源の割当て方法であって、
前記物理計算資源は物理計算機のＣＰＵであり、
前記割当てスケジュール作成部は、前記第１乃至第４のグループに分類された１以上の仮想計算機に対して、夫々異なる物理計算機のＣＰＵを割り当てる、
ことを特徴とする物理計算資源の割当て方法。
【請求項４】
請求項３に記載の物理計算資源の割当て方法であって、
前記記憶部は、各仮想計算機に割り当てる物理計算資源の性能が保証されているか否かについての設定情報を更に保持し、
前記割当てスケジュール作成部は、前記性能が保証されていると設定された１以上の仮想計算機に対して、優先的に、前記グループ毎の前記物理計算資源の割当量及び割り当てる時間帯を決定する、
ことを特徴とする物理計算資源の割当て方法。
【請求項５】
請求項４に記載の物理計算資源の割当て方法であって、
前記記憶部は、仮想計算機の物理的な配置に関する情報である制約情報を更に保持し、
前記割当てスケジュール作成部は、前記制約情報に基づいて、同一の物理計算機を割り当てるべき仮想計算機及び異なる物理計算機を割り当てるべき仮想計算機を決定し、当該決定に基づいて、前記スケジュールを作成する、
ことを特徴とする物理計算資源の割当て方法。
【請求項６】
複数の仮想計算機に対する物理計算資源の割当てを制御する制御システムであって、
前記複数の仮想計算機の負荷を変動特性に応じて複数のグループに分類した負荷情報を
保持する記憶部と、
前記負荷情報と前記グループ毎に定められた規則とに基づき、所定期間における前記各
仮想計算機の負荷を予測し、予測した前記各仮想計算機の負荷に基づき、前記各グループに分類された1以上の仮想計算機に割り当てる前記物理計算資源の割り当て量及び割り当てる時間帯を前記グループ毎に決定し、決定した前記割り当て量及び前記時間帯の情報が含まれるスケジュールを作成する割当てスケジュール作成部と、
前記スケジュールに基づいて、前記仮想計算機に前記物理計算資源を割り当てるスケジュール実行部と、
を備える制御システム。
【請求項７】
請求項６に記載の制御システムであって、
前記複数のグループには、所定期間内において所定範囲内に収まる負荷変動を示す仮想計算機が分類される第１のグループと、所定期間を周期として増減する負荷変動を示す仮想計算機が分類される第２のグループと、時間の経過とともに所定の割合で増加するまたは所定の割合で減少する負荷変動を示す仮想計算機が分類される第３のグループと、不規則に変化する負荷変動を示す仮想計算機が分類される第４のグループとが含まれる、
ことを特徴とする制御システム。
【請求項８】
請求項７に記載の制御システムであって、
前記物理計算資源は物理計算機のＣＰＵであり、
前記割当てスケジュール作成部は、前記第１乃至第４のグループに分類された１以上の仮想計算機に対して、夫々異なる物理計算機のＣＰＵを割り当てる、
ことを特徴とする制御システム。
【請求項９】
請求項８に記載の制御システムであって、
前記記憶部は、各仮想計算機に割り当てる物理計算資源の性能が保証されているか否か
についての設定情報を更に保持し、
前記割当てスケジュール作成部は、前記性能が保証されていると設定された１以上の仮
想計算機に対して、優先的に、前記グループ毎の前記物理計算資源の割当量及び割り当て
る時間帯を決定する、
ことを特徴とする制御システム。
【請求項１０】
請求項９に記載の制御システムであって、
前記記憶部は、仮想計算機の物理的な配置に関する情報である制約情報を更に保持し、
前記割当てスケジュール作成部は、前記制約情報に基づいて、同一の物理計算機を割り
当てるべき仮想計算機及び異なる物理計算機を割り当てるべき仮想計算機を決定し、当
該決定に基づいて、前記スケジュールを作成する、
ことを特徴とする制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はクラウドサービスにおける計算資源の割当て方法およびシステムに関する。
【背景技術】
【０００２】
近年、クラウドコンピューティングサービス（以降、単にクラウドと呼ぶ）と呼ばれる、サーバ、ネットワーク装置、ストレージ等の計算資源を仮想的な資源として切り出し、ユーザの需要に応じて計算資源を使わせて、課金するサービスが普及している。クラウドにおいては、複数のユーザが物理的な計算資源を仮想化した仮想計算資源として共有して利用するのが一般的である。このような一般的な仮想化技術としてはサーバの仮想化技術があげられ、仮想化されたサーバを仮想マシン（バーチャルマシン(Virtual Machine)、以降は単にＶＭと呼ぶ）と呼び、ユーザに対して契約に沿って需要に応じて物理サーバの計算資源を切り出してＶＭに割当てる。
【０００３】
このような物理的な計算資源を複数のユーザに対して契約に沿って割当てるような環境をマルチテナント環境と呼び、クラウドにおいては従来の情報システムが物理計算資源を占有して利用する形態であったのに対し、複数のテナント（契約した主体）で共有することになる。このため、従来の情報システムにおいては問題とならなかった、複数ユーザの共有による性能の不安定化が問題としてあげられるようになった。こうした問題に対し、情報システムのベンダーは性能安定性や信頼性を向上させたクラウドとして、マネージドクラウドと呼ばれるクラウドサービスを提供するようになった。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】ＷＯ２００８／１３２９２４
【発明の概要】
【発明が解決しようとする課題】
【０００５】
マネージドクラウドにおいては、性能安定性を確保するために、物理計算資源を仮想化して切り出す場合に、性能をテナント間で隔離できるように、物理資源を共有せずに占有させている。このように占有する形態により、性能安定性を確保できる。一方で、占有形態であるが故に、仮想計算資源の利点である、資源の有効活用については占有形態であるため、活かされなくなっている。
【０００６】
特許文献１には、仮想マシンの実行するアプリケーションの負荷に応じて、割り当てるＣＰＵの周期と計算時間を最適化する技術が開示されている。特許文献１では、「負荷が変動する」という問題に対しては、「最適化処理を実施する周期をランダム化する」等の手段を以て対応している。すなわち、負荷の変動に対応する最適化処理を都度実施する必要があり、計算処理量が膨大となる。
【課題を解決するための手段】
【０００７】
記憶部が、各仮想計算機を負荷の変動特性に応じて複数のグループに分類した負荷情報を保持し、割当てスケジュール作成部が、負荷情報とグループ毎に定められた規則とに基づき、所定期間における各仮想計算機の負荷を予測し、予測した各計算機の負荷に基づき、各グループに分類された1以上の仮想計算機に割り当てる物理計算資源の割り当て量及び割り当てる時間帯をグループ毎に決定し、決定した割り当て量及び時間帯の情報が含まれるスケジュールを作成し、スケジュール実行部が、スケジュールに基づいて、各仮想計算機に物理計算資源を割り当てる。
【発明の効果】
【０００８】
マルチテナント環境における、性能安定性確保と計算資源の利用効率維持の両立を実現しつつ、計算処理量を低減することができる。
【図面の簡単な説明】
【０００９】
【図１】本発明のシステム構成図
【図２】計算資源割当てスケジュール機能１０１の構成図
【図３】計算資源割当てスケジュール機能１０１の処理フロー
【図４】スケジュール実行機能２０３における処理フロー
【図５】割当てスケジュール作成機能２０１における処理フロー
【図６】負荷パタンの分類を示した図
【図７】負荷パタン１０５内の周期型負荷パタン登録テーブルの一例
【図８】負荷パタン１０５内の一定型負荷パタン登録テーブルの一例
【図９】負荷パタン１０５内の漸増型・漸減型負荷パタン登録テーブルの一例
【図１０】負荷パタン１０５内の不定型負荷パタン登録テーブルの一例
【図１１】ＶＭ割当てテーブルの一例
【図１２】ＶＭの割当て設定の種類と設定した場合の負荷制約を示した図
【図１３】ＶＭ管理テーブルの一例
【図１４】制約管理テーブルの一例
【図１５】ホストＣＰＵ管理テーブルの一例
【図１６】ホストＣＰＵ割当て量管理テーブルの一例
【図１７】一定型負荷パタンかつ性能保証型である場合の計算資源割当てスケジュールの作成処理フロー
【図１８】一定型負荷パタンかつ性能保証型である場合の計算資源割当て判定フロー
【図１９】一定型負荷パタンかつ性能保証型である場合の計算資源の割当てスケジュールの登録処理フロー
【図２０】周期型負荷パタンかつ性能保証型である場合の計算資源割当てスケジュールの作成処理フロー
【図２１】周期型負荷パタンかつ性能保証型である場合の計算資源割当て判定フロー
【図２２】周期型負荷パタンかつ性能保証型である場合の計算資源の割当てスケジュールの登録処理フロー
【図２３】漸増型または漸減型負荷パタンかつ性能保証型である場合の計算資源割当てスケジュールの作成処理フロー
【図２４】漸増型または漸減型負荷パタンかつ性能保証型である場合の計算資源割当て判定フロー
【図２５】漸増型または漸減型負荷パタンかつ性能保証型である場合の計算資源の割当てスケジュールの登録処理フロー
【図２６】不定型負荷パタンかつ性能保証型である場合の計算資源割当てスケジュールの作成処理フロー
【図２７】不定型負荷パタンかつ性能保証型である場合の計算資源割当て判定フロー
【図２８】不定型負荷パタンかつ性能保証型である場合の計算資源の割当てスケジュールの登録処理フロー
【図２９】計算資源割当て状況確認画面の一例
【図３０】ＣＰＵ割当てスケジュール画面の一例
【発明を実施するための形態】
【００１０】
以下、本発明を実施するための形態である実施例を図面に従い説明する。
【００１１】
以後の説明では「ＡＡＡテーブル」、「ＡＡＡリスト」、「ＡＡＡＤＢ」、「ＡＡＡキュー」等の表現にて本発明の情報を説明するが、これら情報はテーブル、リスト、ＤＢ又はキュー等のデータ構造以外で表現されていてもよい。
また各情報の内容を説明する際に、「識別情報」、「識別子」、「名」、「名前」、「ＩＤ」及び「番号」という表現を用いるが、これらの表現は装置や部品などの物理的な存在に限らず、論理的な存在についても区別をつけるために割り当てられているものであるため、互いに置換可能である。
【００１２】
以後の説明では「プログラム」を主語として説明を行う場合があるが、プログラムはプロセッサによって実行されることによって定められた処理をメモリ及びインタフェースを用いながら行うため、プロセッサを主語とした説明としてもよい。また、プログラムを主語として開示された処理は管理サーバ等の計算機、情報処理装置が行う処理としてもよい。また、プログラムの一部または全ては専用ハードウェアによって実現されてもよい。
また、各種プログラムはプログラム配布サーバや記憶メディアによって各計算機にインストールされてもよい。
【００１３】
なお、以降で示す実施例ならびに図面は実施するための形態の一つであって、同様の処理が可能な他の構成・形態への適用を制限するものではない。
【実施例】
【００１４】
本実施例は、クラウドサービスにおける計算資源（ＩＴリソースとも呼ばれる）提供サービスを対象として記載する。
【００１５】
図１は、本実施例で対象とするクラウドサービスにおける情報システムと、これを運用管理するための構成を模式的に示したものである。
【００１６】
クラウドサービスで提供される計算資源群は、管理サーバ１００によって、契約に基づき計算資源を提供されるとともに、契約に基づいた状態（性能、稼動状態、セキュリティ状態）を維持するように管理されている。
【００１７】
管理サーバ１００は、計算資源のテナントへの割り当てを制御して管理する計算資源割当てスケジュール機能１０１と、提供した計算資源と通信するためのNetwork I/F１０２と、提供した計算資源の稼動状態、性能状態、セキュリティの健全状態、等を監視する監視機能１０３と、計算資源の監視データの蓄積により負荷特性を４つの種類の負荷パタンに分類する負荷パタン分析機能１０４と、負荷パタン分析機能の分析やユーザから与えられた負荷特性等に基づき、提供した該計算資源の負荷特性を分類してパタンとして登録しておくためのデータ格納庫である負荷パタンＤＢ１０５と、提供した計算資源に対する配備、設定、管理等の機能を備えた計算資源管理機能１０６と、クラウドサービスを管理する管理者に対して計算資源の割当て管理のためのユーザインタフェース(以降、UIと記す)を提供する計算資源割当て管理ＵＩ１０７と、クラウドサービスにおける情報システム全体の構成情報を格納する構成ＤＢ１０８と、を備える。
【００１８】
なお、これらの機能群が管理サーバ１００に同居する構成を示しているが、これらの機能が別サーバ上に存在して互いに通信を行って制御、管理する形態であっても構わない。
【００１９】
また、管理サーバ１００は１台の物理サーバで構成されているが、複数台の物理サーバに跨って、これらの機能群がそれぞれ配置して通信することで構成されても構わない。
【００２０】
計算資源管理機能１０６は、クラウドサービスとして提供する計算資源の管理を行う機能であり、物理計算資源であるホスト計算機や、ネットワーク装置（ルータ、IPスイッチ、Fibre Channel スイッチ(以降、FCスイッチと略す)、データを格納するストレージアレイ装置（以降、単にストレージと略す）、等から仮想的な計算資源を一定量切り出すための設定や、切り出したＶＭ等の仮想計算資源の起動、停止、一時停止（サスペンド）、一時停止からの復旧（レジューム）、等の操作を制御する機能を備えた配備・設定機能１０９を持つ。
【００２１】
計算資源割当て管理ＵＩ１０７は、ユーザからのＶＭ等の計算資源におけるアプリケーション等の負荷特性を入力として与える負荷パタン入力Ｉ／Ｆ１１０と、ユーザから指定されるＶＭ等の計算資源に対する運用指針となるポリシを入力するためのポリシ入力Ｉ／Ｆ１１１と、計算資源割当てスケジュール機能１０１にて作成された物理計算資源に対する仮想計算資源を切り出し、割当てスケジュールをユーザへ提示し、提示したスケジュールをユーザに編集させるための機能を持つ割当て表示・編集機能１１２を持つ。
【００２２】
ポリシは、提供される計算資源にの性能に関する指針である。ポリシは、「性能保証型」であるか、「ベストエフォート型」であるか、等の性能要求指針、計算資源の利用効率に対する数値目標、ガイド値、切り出された仮想計算資源に対する物理的な配置に対する制約条件、等を含む。なお、物理的な制約条件とは、例えば、第一の仮想計算資源と第二の仮想計算資源が同一の物理計算資源上に同居させない、あるいは同居しなければならない、等の物理資源への割当てに対する、同居あるいは排他等の制約条件を含む。
【００２３】
図２は、計算資源割当てスケジュール機能１０１および計算資源管理機能１０６の詳細な構成を示している。計算資源割当てスケジュール機能１０１は、負荷分析ＤＢに格納された負荷パタンに基づき、割当て対象の物理計算資源を決定する。また、計算資源割当てスケジュール機能１０１は、仮想計算資源として切り出すための設定を行う時間帯等のスケジュールを作成する割当てスケジュール作成機能２０１と、作成した割当てスケジュールを格納するためのスケジュールＤＢ２０２と、スケジュールＤＢに登録されたスケジュールに基づき、物理計算資源に対して仮想計算資源の切り出しや、割当て量に対する設定を配備・設定機能１０９に指示を行うスケジュール実行機能２０３と、を備える。
【００２４】
図３は、割当てスケジュール作成機能２０１の処理フローを示す図である。
【００２５】
ステップ３０１において、割当てスケジュール作成機能２０１は、負荷パタンＤＢから、負荷パタンの登録または変更通知を受信する。
【００２６】
ステップ３０２において、割当てスケジュール作成機能２０１は、登録または変更通知の対象であるVM（ここではVM(p)と表す。複数も可）について、割当てスケジュールを作成・変更する 。割当てスケジュールの詳細については図５で後述する。
【００２７】
ステップ３０３において、割当てスケジュール作成機能２０１は、VM(p)に対する割当てスケジュールの作成が完了したことを、スケジュール実行機能２０３に通知する。
【００２８】
図４は、スケジュール実行機能２０３が、スケジュールＤＢ２０２に格納された割当てスケジュールに基づき、配備・設定機能１０９に対して、対象のVM(p)に対する計算資源の割当て量の設定を指示する処理フローを示す図である。
【００２９】
図５は、割当てスケジュール作成機能２０１が、割当て対象であるVM(p)の負荷パタンに基づき割当てスケジュールを作成する処理の詳細フローである。このフローは、負荷パタンの種別に沿って、定められた優先順に従い、物理計算資源が、対象の該仮想計算資源に割当てられていく処理の、各ステップを示している。なお、ここで割当て対象となる計算資源群は、図３のステップ３０１で、負荷パタン登録または変更を受信したものである。すなわち、負荷パタンを登録または変更したＶＭ群となる。
【００３０】
割当てスケジュールの作成は、負荷パタンの種別と性能に対する契約やポリシに沿って、（１）「一定型負荷パタン」かつ「性能保証型」の割当て（ステップ５０１）、（２）「周期型負荷パタン」かつ「性能保証型」の割当て（ステップ５０２）、（３）「漸増型または漸減型負荷パタン」かつ「性能保証型」（ステップ５０３）、（４）「不定型負荷パタン」かつ「性能保証型」の割当て（ステップ５０４）の順に、ＶＭ(p)に対する制約条件を考慮した割当ての設定と、適用する時刻情報の作成を行う。一通り「性能保証型」の計算資源割当てが完了したら、次は性能の要件が緩くなっている（例えば、性能違反をした場合に懲罰が発生しない）「ベストエフォート型」の計算資源の割当てを、負荷パタンに応じて同様の順番でステップ５０５からステップ５０９まで行う。  図６は、負荷パタン分析機能１０４、またはユーザにより負荷パタン入力Ｉ／Ｆ１１０により、負荷パタンＤＢ１０５に登録される４つの負荷パタンについて説明した模式図である。
【００３１】
図６(a)は、ある一定の周期Ｔでピークを持つような負荷パタンで、「周期型負荷パタン」と定義する。この負荷パタンは定期的な時間に定められた処理を実行するバッチ処理等の負荷の特性としてよく見られる。この負荷パタンは、周期内の一定のピーク期間をX1、低負荷となる期間をX2、ピーク時の負荷量をY1、低負荷時の負荷量をY2として、周期型負荷パタン登録テーブル７００（図７で後述）に記録される。
【００３２】
図６(b)は、負荷が一定の値Y3を維持し、あまり変動がない負荷パタンを「一定型負荷パタン」として定義する。この負荷パタンは、一定型負荷パタン登録テーブル８００（図８で後述）に記録される。
【００３３】
図６(c)は、一定の割合で負荷が増加していく負荷パタンで、「漸増型負荷パタン」として定義する。図６(d)は、一定の割合で負荷が減少していく負荷パタンで、「漸減型負荷パタン」として定義する。これらの負荷パタンは、電子商取引（e-commerce）等のECサイトにおける負荷パタンとしてよくみられる。これらの負荷パタンは、一定期間X3で負荷がY4増加（又は減少）する負荷パタンとして、漸増型・漸減型負荷パタン登録テーブル９００（図９で後述）に記録される。
【００３４】
図６(e)は、負荷の特性としては時間的、空間的分散として規則性がないものであり、「不定型負荷パタン」として定義する。不定型負荷パタンでは、負荷の量の平均値AVGと平均値からのばらつきの散布度を示す数値であるVX（例えば標準偏差などの値や、これを2倍、3倍化した値など）を、不定型負荷パタン登録テーブル１０００（図１０で後述）に記録される。なお、平均からのばらつきの散布度を示す数値として、平均値からのばらつきの散布度を示す数値を用いても良い。この場合には、確率分布により標準偏差の2倍、3倍等の値を用いても良い。
【００３５】
負荷パタン(a)から(e)までの分類の判定手法や、近似手法等については、何らかの方式で負荷パタン分析機能１０４にて行われるか、またはユーザからヒント情報として負荷パタン入力Ｉ／Ｆ１１０により入力される。
【００３６】
図７は、負荷パタンＤＢ１０５に格納されている、周期型負荷パタン登録テーブル７００を示す図である。負荷パタン分析機能１０４、または負荷パタン入力Ｉ／Ｆ１１０により、周期型の負荷パタンが負荷パタンＤＢに登録される場合、周期型負荷パタン登録テーブル７００に記録される。
【００３７】
周期型負荷パタン登録テーブル７００には、登録した負荷パタンに対して、登録ＩＤを示す列７０１と、その負荷パタンを持つＶＭ等の仮想計算資源を一意に識別するためのVMIDを示す列７０２と、その負荷パタンを持つＶＭがホスト計算機等の物理計算資源に割当てがされているかどうかを示す列７０３と、ピーク期間X1を示す列７０４と、低負荷期間X2を示す列７０５と、周期Ｔを示す列７０６と、ピーク期間X1における負荷量Y1を示す列７０７と、低負荷時の負荷量Y2を示す７０８と、この負荷パタンの始まる開始時刻を示す列７０９と、終了時刻を示す列７１０と、が関連づけて保存される。
【００３８】
割当て７０３には、ある仮想計算資源が物理計算資源に割当てが完了している場合には「済」、割当てがまだ済んでいないものについては「未」と記録する。
【００３９】
図８は、負荷パタンＤＢ１０５に格納されている、一定型負荷パタン登録テーブル８００を示す図である。負荷パタン分析機能１０４、または負荷パタン入力Ｉ／Ｆ１１０により、一定型の負荷パタンが負荷パタンＤＢに登録される場合、この一定型負荷パタン登録テーブル８００に記録される。
【００４０】
一定型負荷パタン登録テーブル８００には、登録した負荷パタンに対して、登録ＩＤを示す列８０１と、その負荷パタンを持つＶＭ等の仮想計算資源を一意に識別するためのVMIDを示す列８０２と、その負荷パタンを持つＶＭがホスト計算機等の物理計算資源に割当てがされているかどうかを示す列８０３と、一定の負荷量Y3を示す列８０４と、この負荷パタンの始まる開始時刻を示す８０５と、終了時刻を示す列８０６と、が関連づけて保存される。
【００４１】
図９は、負荷パタンＤＢ１０５に格納されている、漸増型・漸減型負荷パタン登録テーブル９００である。負荷パタン分析機能１０４、または負荷パタン入力Ｉ／Ｆ１１０により、漸増型、または漸減型の負荷パタンが負荷パタンＤＢに登録される場合、この漸増型・漸減型負荷パタン登録テーブル９００に記録される。
【００４２】
漸増型・漸減型負荷パタン登録テーブル９００には、登録した負荷パタンに対して、登録ＩＤを示す列９０１と、その負荷パタンを持つＶＭ等の仮想計算資源を一意に識別するためのVMIDを示す列９０２と、その負荷パタンを持つＶＭがホスト計算機等の物理計算資源に割当てがされているかどうかを示す列９０３と、漸増型／漸減型の種別を示す列９０４と、ある一定期間X3を示す列９０５と、漸増型の場合のある一定期間X3に対しての増分であるY4または漸減型の場合の減少分であるY5のいずれかを示す列９０６と、この負荷パタンの始まる開始時刻を示す列９０７と、終了時刻を示す列９０８と、が関連づけて保存される。
【００４３】
図１０は、負荷パタンＤＢ１０５に格納されている、不定型負荷パタン登録テーブル１０００である。負荷パタン分析機能１０４、または負荷パタン入力Ｉ／Ｆ１１０により、不定型の負荷パタンが負荷パタンＤＢに登録される場合、この不定型負荷パタン登録テーブル１０００に記録される。
【００４４】
不定型負荷パタン登録テーブル１０００には、登録した負荷パタンに対して、登録ＩＤを示す列１００１と、その負荷パタンを持つＶＭ等の仮想計算資源を一意に識別するためのVMIDを示す列１００２と、その負荷パタンを持つＶＭがホスト計算機等の物理計算資源に割当てがされているかどうかを示す列１００３と、負荷の平均値AVGを示す列１００４と、負荷の平均値からのばらつきの散布度を示す数値VXを示す列１００５と、この負荷パタンの始まる開始時刻を示す列１００６と、終了時刻を示す列１００７と、を関連づけて保存する。
【００４５】
図１１は、割当てスケジュール作成機能２０１で作成されるスケジュールについての、割当てに関する設定情報を格納するＶＭ割当てテーブル１１００を示す図である。
【００４６】
ＶＭ割当てテーブル１１００には、割当て設定の識別情報となるＩＤを示す列１１０１と、対象となるＶＭ等の仮想計算資源の識別情報であるVMIDを示す列１１０２と、ＶＭ等の仮想計算資源を割り当てる対象となるホスト計算機等の物理計算資源を識別するためのホスト名を示す列１１０３と、仮想計算資源を物理計算資源に割り当てる場合の割当て資源量の確保に関する優先度を示す列１１０４と、割り当てる資源量の上限値を示す列１１０５と、割り当てる資源量について、負荷が高まった場合に最低限割当てを保証する下限割当て量を示す列１１０６と、割当て設定の開始時刻を示す列１１０７と、割当て設定の終了時刻を示す列１１０８と、資源割当てが周期的に変更される場合の継続時間を示す列１１０９と、設定が無効（すなわち別の割当て設定が有効）となる間隔を示す列１１１０と、が関連づけて保存される。
【００４７】
ホスト名１１０３は、例えばホスト計算機のFQDN(Fully Qualified Domain Name)、FQDNからドメイン部分を除いたOSが管理するホスト名、あるいはホスト計算機が持つNetwork I/F のための拡張カードであるNIC(Network Interface Card)１２６や１３６等が持つＩＰアドレス等でも構わない。
【００４８】
図１２は、ＶＭ等の仮想計算資源をホスト計算機等の物理計算資源に割り当てる際の割当て方を説明したものである。
【００４９】
図１２(a)の優先度は、ホスト計算機上に割り当てられたＶＭ群に対して、それぞれの負荷が高負荷である場合に、どのＶＭに対して優先的に物理リソースを割り当てるかを示すための指標である。例えばVMware（登録商標）社などのサーバ仮想化技術であるvSphere（登録商標）においては、シェアと呼ばれる値がこの優先度に相当する。VMware（登録商標）社のvSphere（登録商標）においては、設定されたシェアに応じて、高負荷時のＶＭに対するホスト計算機のリソース割当て量を自動的に調整する機能を有する。この値が大きいと、優先度が高いことを示し、優先度が低い仮想計算資源よりも多くの物理計算資源を割り当てられる。したがって、図１２(a)の例においては、優先度が50であるVM１２０３は、優先度がそれぞれ25であるVM1201、VM1202の倍の優先度であるため、割当てられるホスト計算機のCPUの割当て量もそれぞれに対して2倍程度の割当て量を持つ。
【００５０】
図１２(b)の上限制限は、ある仮想計算資源、例えばＶＭの負荷が非常に高い場合でも、上限として設定された値よりも多くの計算資源を割り当てられることはないという、割当て量の上限制限に関する数値である。
【００５１】
図１２(c)の下限制限は、割当てに際し、設定した下限制限の値よりも負荷が高くなる場合には、必ず最低限割当てが保証されるという、計算資源の下限値を示す。なお、下限制限の値は、これよりも実際の負荷が低い場合には、この下限制限で示したリソース割当て量よりも少ないリソース割当てを行う。例えばVMware（登録商標）社のvSphere（登録商標）においては。下限制限が「予約」という概念で表されており、負荷がある場合に必ず確保される予約量となっている。
【００５２】
図１３は、構成ＤＢ１０８にてVMに関する管理情報を保持するためのVM管理テーブル１３００を示す図である。
【００５３】
VM管理テーブル１３００は、対象となるＶＭ等の仮想計算資源の識別情報であるVMIDを示す列１３０１と、VMが所属するテナントを一意に識別するための識別情報であるテナントIDを示す列１３０２と、VMが所属するアプリケーションシステムを識別するための識別情報をであるシステムIDを示す列１３０３と、Web3階層システム(図１３ではWeb3Tierと表記)、バッチシステム（図１３ではBatchと表記）、Hadoopシステム、等の種別であるシステム種別を示す列１３０４と、Webサーバ、AP(アプリケーション)サーバ、バッチ処理サーバ等、VMの機能の種別を示す列１３０５と、性能保証型（VMに対する性能に関する契約情報として定められた性能をきちんと遵守する）であるか、ベストエフォート型（性能遵守は努力目標であり、できるかぎり性能が守れるように制御するが、保証はしない）であるかの別（性能条件）を示す列１３０６と、が関連づけて保存される。性能条件１３０６は、ユーザとの契約によって決められている場合や、ユーザからポリシ入力Ｉ／Ｆ１１１より入力されて指定される場合がある。
【００５４】
図１３においては、VM01,VM03,VM04がテナントのTenant001のWeb3階層(Web3Tier)のアプリケーションシステムであるSys001に属し、それぞれWebサーバ、DBサーバ、APサーバの役割を持ったサーバ計算機であり、VM02がテナントのTenant002のバッチシステム(Batch)のアプリケーションシステムであるSys002に属し、計算サーバの役割を持ったサーバ計算機であることを示している。
【００５５】
性能条件については、VM02とVM03が「性能保証型」で、VM01、VM04が「ベストエフォート型」で指定されていることを示している。
【００５６】
図１４は、物理計算資源への仮想計算資源の割当てに関する制約条件を管理するための制約管理テーブル１４００を示す図である。制約管理テーブル１４００には、個別の制約を識別するための識別情報である制約IDを示す列１４０１と、物理計算資源への割当てに関して、少なくとも２つ以上の仮想計算資源同士が、同一の物理計算資源へ割当てなければならないことを示す「同居」と、少なくとも２つ以上の仮想計算資源同士が、異なる物理計算資源に割当てなければならないことを示す「排他」等の、物理的な配置に関する制約の種別を示す列１４０２と、制約を受ける対象となるＶＭ等の仮想計算資源を示す列１４０３と、が関連づけて保存される。
【００５７】
制約対象１４０３は、例えばリストのような１つ以上の仮想計算資源を保持するデータ構造であっても良いし、１つ以上の仮想計算資源を含む集合を示すデータ構造として別に格納されて、その集合を示す識別情報、あるいは参照情報が格納されても良い。図１４の例では、VM02とVM03に対して「排他」の制約が存在し、VM01とVM04に対して「同居」の制約が存在することを示している。
【００５８】
割当てスケジュール作成機能２０１は、図５の各ステップにおいて、この制約条件を参照することにより、同一の物理計算資源を割り当てるべき仮想計算機は同一の物理計算機を割当て、異なる物理計算資源を割り当てるべき仮想計算機は異なる物理計算資源を割り当てることとなる。詳細は図１８、図２１、図２４、図２７で後述する。図１５は、物理計算資源に対する仮想資源の割当てに際しての負荷パタンとの対応づけを管理する情報である、ホストCPU負荷パタン対応テーブル１５００を示す図である。
【００５９】
ホストCPU負荷パタン対応テーブル１５００は、スケジュールＤＢ２０２に格納されている。
【００６０】
ホストCPU負荷パタン対応テーブル１５００には、ホスト計算機等の物理計算資源を識別するための情報であるHost IDを示す列１５０１と、割当てる負荷パタンの種別を示す列１５０２と、割当てる負荷パタンが「周期型」である場合の周期を示す列１５０３と、が関連づけて保存される。
【００６１】
図１５の例では、Host IDがHost Aであるホスト計算機には、仮想資源であるVMが割当てられていない状態であることを示す「N/A」となっている。Host B、Host C、Host D、Host Eについてはそれぞれ一定型、周期型、漸増型、不定型の負荷パタンの割当て先となっていることを示しており、Host Cの周期型負荷パタンの周期は６０分であることを示している。
【００６２】
図１６は、物理計算資源の仮想計算資源に対する割当て状況を所定の時間間隔（図１６の例では５分間）ごとに管理するための情報である、ホストCPU割当て量管理テーブル１６００を示す図である。
【００６３】
ホストCPU割当て量管理テーブル１６００は、スケジュールＤＢ２０２に格納されている。
【００６４】
ホストCPU割当て量管理テーブル１６００には、割当て情報を識別するための情報であるIDを示す列１６０１と、所定の時間間隔毎の開始時刻を保持したTime Slotを示す列１６０２と、管理対象の物理計算資源の識別情報であるHost IDを示す列１６０３と、Time Slot１６０２におけるホスト計算機のCPUの利用量を示す列１６０４と、CPUの空きを示す列１６０５と、が関連づけて保存される。
【００６５】
ホストCPU割当て量管理テーブルで１６００管理される情報は、スケジュールＤＢ２０２ではなく、ファイル等にログとして管理サーバ１００上に保存されていても構わない。
【００６６】
図１７は、対象VM群が「一定型」で、かつ性能条件１３０６が「性能保証型」であるものに対するホスト計算機への割当て処理のフローであり、ステップ５０１の詳細な処理フローである。
【００６７】
ステップ１７０１において、一定型負荷パタン登録テーブル８００内で未割当てのVM（これをVM(p)とする）を選択する。
【００６８】
ステップ１７０２においては、ステップ１７０１で選択したVM(p)が存在するかどうかを判定する。
【００６９】
ステップ１７０３からステップ１７０８までにおいて、対象のVM(p)について種別１５０２が「一定型」であるホスト計算機群の中で、対象VM(p)を割り当て可能であるかを判定し（ステップ１７０６）、割り当て可能であればホスト計算機h1に対してVM(p)を割当てるように、スケジュールＤＢ２０２のＶＭ割当てテーブル１１００に割当て設定のスケジュールを登録する(ステップ１７０７)。具体的な割当て設定の登録フローについては図１９にて後述する。
【００７０】
ステップ１７０６において割当て不可と判定された場合には、ステップ１７０８にて割当て対象のホスト計算機h1を集合Sh1から除外する。
【００７１】
ステップ１７０９から１７１６までにおいて、対象VM(p)について図１５のホストCPU負荷パタン対応テーブル１５００内でまだ負荷パタンを割当てていない、すなわち種別１５０２が「N/A」であるホスト計算機h2に対し、対象VM(p)を割り当て可能であるかを判定し（ステップ１７１２）、割り当て可能であれば、ホストCPU負荷パタン対応テーブル１５００のホスト計算機h2の種別を「一定型」に更新し（ステップ１７１３）、ホスト計算機h2に対してVM(p)を割当てるように、スケジュールＤＢ２０２のＶＭ割当てテーブル１１００に割当て設定を登録する(ステップ１７１４)。具体的な割当て設定のスケジュールの登録フローについては図１９にて後述する。
【００７２】
ステップ１７１２の判定において割当て不可と判定された場合には、ステップ１７１６にて割当て対象のホスト計算機h2を集合Sh2から除外する。
【００７３】
ステップ１７１０において、図種別１５０２が「N/A」である物理計算資源の集合であるSh2が空集合である場合には、割当て対象VM(p)を割当てられる好適な物理計算資源が存在しないため、割当てができなかった場合の対処処理を行い、本処理フローを完了させる。
【００７４】
なお、ステップ１７０５またはステップ１７１１において割当て可能な物理計算資源を１つ選択する手段や、VM(p)に対して割当て可能な物理計算資源を検索手順の方法については、最初に合致したものを選択するFirst Match、あるいは最適な空き領域に割当てるBest Matchなど、他の手法を用いてもよい。
【００７５】
図１８は、「一定型負荷パタン」かつ「性能保証型」のVM(p)に対する計算資源割当て判定フローであり、ステップ１７０６またはステップ１７１２を詳細化したフローである。
【００７６】
ステップ１８０１からステップ１８０４までにおいて、割当て対象のVM(p)の負荷パタンの開始時刻から終了時刻までについて、図１６に示したCPU空き１６０５に基づき、割当て可能かを判定し（ステップ１８０２）、割当て可能であれば時刻tを図１６のTime Slot １６０２を次のTime Slotに進める（ステップ１８０３）。割当て不可である場合は割当て不可として処理フローを終了する。
【００７７】
ステップ１８０２における割当て可能性の判定については、ホストID１６０３が割当て先の物理計算資源であるホスト計算機であるCPU空き１６０５よりも、VM(p)の負荷パタンの一定値Y3が小さい場合は割当て可能であり、それ以外の場合には割当て不可と判定する。また、割当て可能性の判断は、図１４の制約管理テーブルも考慮される。例えば、すでに物理計算資源に割当てられている仮想計算資源が、制約管理テーブルの制約に抵触しないように割当てる。抵触する場合には、割当て不可として判定する。
【００７８】
図１９は、割当て対象であるVM(p)に対して、VM(p)を割当て可能な物理計算資源であるホスト計算機に割当てるためのスケジュールと割当て設定を作成して登録するフローであり、ステップ１７０７またはステップ１７１４を詳細化したフローである。
【００７９】
ステップ１９０１からステップ１９０４において、図１６にて管理されるCPU利用１６０４を、対象のVM(p)の負荷パタンの一定値のY3分だけ加算するとともに、空きのCPU空き１６０５をY3分だけ減算する（ステップ１９０２）処理を、VM(p)の負荷パタンの開始時刻８０５から終了時刻８０６にかけて、Time Slot１６０２について更新する。
【００８０】
ステップ１９０５においては、ＶＭ割当てテーブル１１００に、割当てに関する情報として、割当て対象のVMの識別情報をVMID１１０２に登録し、割当て先の物理計算資源として割当て先のホスト計算機のホスト名をホスト名１１０３に登録し、Y3(p)（VM(p)におけるY3の値）を上限制限１１０５および下限制限１１０６として登録し、開始時刻１１０７にVM(p)の負荷パタンの開始時刻805と終了時刻１１０８に終了時刻806として登録する。
【００８１】
ステップ１９０６において、一定型負荷パタン登録テーブルのVM(p)の割当て８０３を「済」に変更して、本フローを終了する。
【００８２】
図２０は、対象VM群が「周期型」で、かつ性能条件１３０６が「性能保証型」であるものに対する、ホスト計算機への割当て処理のフローを示したものであり、ステップ５０２の詳細フローである。
【００８３】
ステップ２００１において、周期型負荷パタン登録テーブル７００において未割当てのVM（これをVM(p)とする）を選択する。
【００８４】
ステップ２００２においては、ステップ２００１において選択したVM(p)が存在するかどうかを判定する。
【００８５】
ステップ２００３からステップ２００８までにおいて、対象のVM(p)について種別１５０２が「周期型」であり、かつ周期１５０３がVM(p)における周期型負荷パタン登録テーブルにおけるＴ７０６の値と同じ値を持つホスト計算機群の中で、対象VM(p)を割り当て可能であるかを判定し（ステップ２００６）、割り当て可能であればホスト計算機h1に対してVM(p)を割当てるようにスケジュールＤＢ２０２のＶＭ割当てテーブル１１００に割当て設定のスケジュールを登録する(ステップ２００７)。具体的な割当て設定の登録フローについては図２２にて後述する。
【００８６】
ステップ２００６の判定において割当てが不可と判定された場合には、ステップ２００８にて割当て対象の集合Sh1からホストh1を除外する。
【００８７】
ステップ２００９から２０１６までにおいて、対象VM(p)についてホストCPU負荷パタン対応テーブル１５００でまだ負荷パタンを割当てていない、すなわち種別１５０２が「N/A」であるホスト計算機h2に対し、対象VM(p)を割り当て可能であるかを判定し（ステップ２０１２）、割り当て可能であれば、ホスト計算機h2について、ホストCPU負荷パタン対応テーブル１５００のホスト計算機h2について種別１５０２を「周期型」に更新するとともに、周期１５０３をVM(p)の周期型負荷パタン登録テーブル７００における周期を示すT７０６の値T(p)に更新し（ステップ２０１３）、ホスト計算機h2に対してVM(p)を割当てるようにスケジュールＤＢ２０２のＶＭ割当てテーブル１１００に割当て設定を登録する(ステップ２０１４)。具体的な割当て設定のスケジュールの登録フローについては図２２にて後述する。
【００８８】
ステップ２０１２の判定において割当てが不可と判定された場合には、ステップ２０１６にて割当て対象のホスト計算機h2を集合Sh2から除外する。
【００８９】
ステップ２０１０において、図１５のホストCPU負荷パタン対応テーブルの種別１５０２が「N/A」である物理計算資源の集合であるSh2が空集合である場合には、割当て対象VM(p)を割当てられる好適な物理計算資源が存在しないため、割当てができなかった場合の対処処理を行い、本処理フローを完了させる。
【００９０】
なお、ステップ２００５またはステップ２０１１において割当て可能な物理計算資源を１つ選択する手段や、VM(p)に対して割当て可能な物理計算資源を検索手順の方法については、最初にマッチしたものを選択するFirst Match、あるいは最適な空き領域に割当てるBest Matchなど、他の手法を用いてもよい。
【００９１】
図２１は、「周期型負荷パタン」かつ「性能保証型」のVM(p)に対する計算資源割当て判定フローであり、ステップ２００６またはステップ２０１２の詳細フローである。
【００９２】
ステップ２１０１からステップ２１０４までにおいて、割当て対象のVM(p)の負荷パタンにおける最初のピーク期間の開始時刻peakBegin(p)から終了時刻peakEnd(p)までについて、CPU空き１６０５に基づき、割当て可能かを判定し（ステップ２１０２）、割当て可能であれば、CPU割当て量管理テーブル１６００のTime Slot１６０２を次のTime Slotに進める（ステップ２１０３）。割当て不可である場合は、割当て不可として処理フローを終了する。
ステップ２１０５からステップ２１１０までにおいて、割当て対象のVM(p)の負荷パタンにおける最初の低負荷期間の開始時刻bottomBegin(p)から終了時刻bottomEnd(p)までについて、ホスト計算機のCPUの空きを示すCPU空き１６０５に基づき、割当て可能かを判定し（ステップ２１０６）、割当て可能であれば時刻tを図１６のTime Slot １６０２を次のTime Slotに進める（ステップ２１０７）。割当て不可である場合は割当て不可と判定（ステップ２１１０）して処理フローを終了する。
【００９３】
ステップ２１０２およびステップ２１０６における割当て可能性の判定については、図１６のCPU空き１６０５が、VM(p)の負荷パタンのピーク値であるY1よりも大きい場合は割当て可能であり、それ以外の場合には割当て不可と判定する。なお、割当て可能性の判断は、図１４の制約管理テーブルも考慮される。例えば、すでに物理計算資源に割当てられている仮想計算資源が、制約管理テーブルの制約に抵触しないように割当てる。抵触する場合には、割当て不可として判定する（ステップ２１１０）。
【００９４】
図２２は、割当て対象であるVM(p)に対して、VM(p)を割当て可能な物理計算資源であるホスト計算機に割当てるためのスケジュールと割当て設定を作成して登録するフローであり、図２０のステップ２００７またはステップ２０１４の詳細な処理フローである。
【００９５】
ステップ２２０１からステップ２２０４において、図１６にて管理される物理計算資源の割当て状況を更新する処理を行う。例えば、ホスト計算機のCPUの利用量であるCPU利用１６０４を、対象のVM(p)の負荷パタンのY1分だけ加算した値に更新するとともに、空きのCPU空き１６０５をY１分だけ減算した値に更新する（ステップ２２０２）。この処理を図１６のホストCPU割当て量管理テーブルのTime Slot１６０２に関して、周期型負荷パタン登録テーブル７００におけるVM(p)に関する開始時刻７０９を起点とした最初のピーク期間の開始時刻peakBegin(p)(これは開始時刻７０９と同じである)から、最初のピーク期間の終了時刻であるpeakEnd(p)(これは開始時刻７０９にX1の値を足した時刻)までにかけて行う。
ステップ２２０５では、ＶＭ割当てテーブル１１００におけるVM(p)について、ホスト計算機を示すホスト名をホスト１１０３として、ピーク値であるY1(p)を、上限制限１１０５および下限制限１１０６として、周期型負荷パタン７００におけるVM(p)の開始時刻７０９を、開始時刻１１０７として、終了時刻７１０を、終了時刻１１０８として、X1(p)を、継続時間１１０９として、X2(p)を間隔１１１０として、それぞれ登録する。
【００９６】
ステップ２２０６からステップ２２０９までの処理は、図１６にて管理される物理計算資源の割当て状況を更新する処理を示している。例えばホスト計算機のCPUの利用量であるCPU利用１６０４を、対象のVM(p)の負荷パタンのY2分だけ加算した値に更新するとともに、空きのCPU空き１６０５をY2分だけ減算した値に更新する（ステップ２２０7）。この処理を図１６のホストCPU割当て量管理テーブルのTime Slot１６０２に関して、周期型負荷パタン登録テーブル７００におけるVM(p)に関する開始時刻７０９を起点とした最初の低負荷期間の開始時刻bottomBegin(p)(peakEnd(p)と同じ)から、最初の低負荷期間の終了時刻であるbottomEnd(p)(bottomBegin(p)にX2の値を足した時刻)までにかけて行う。
【００９７】
ステップ２２１０では、ＶＭ割当てテーブル１１００におけるVM(p)について、ホスト１１０３を、ホスト計算機を示すホスト名として、上限制限１１０５および下限制限１１０６を、ともに低負荷時の値であるY２(p)として、開始時刻１１０７を、周期型負荷パタン７００におけるVM(p)の開始時刻７０９にX1(p)を足した時刻として、終了時刻１１０８を、終了時刻７１０として、継続時間１１０９を、X2(p)として、間隔１１１０を、X1(p)として、それぞれ登録する。
ステップ２２１１において、周期型負荷パタン登録テーブルのVM(p)の割当て７０３を「済」に変更して、本フローを終了する。
【００９８】
図２３は、対象VM群が「漸増型」または「漸減型」で、かつ性能条件１３０６が「性能保証型」であるものに対する、ホスト計算機への割当て処理のフローであり、図５のステップ５０３の詳細フローである。
【００９９】
ステップ２３０１において、漸増型・漸減型負荷パタン登録テーブル９００において未割当てのVM（これをVM(p)とする）を選択する。
【０１００】
ステップ２３０２においては、ステップ２３０１において選択したVM(p)が存在するかどうかを判定する。
【０１０１】
ステップ２３０１から２３１０までにおいて、対象VM(p)がCPU負荷パタン対応テーブル１５００においてまだ負荷パタンを割当てていない、すなわち種別１５０２が「N/A」であるホスト計算機h1に対し、対象VM(p)を割り当て可能であるかを判定し（ステップ２３０６）、割り当て可能であれば、ホスト計算機h1の種別をVM(p)の漸増型・漸減型負荷パタン登録テーブル９００における種別に応じて「漸増型」または「漸減型」として更新し（ステップ２３０７）、ホスト計算機h1に対してVM(p)を割当てるようにスケジュールＤＢ２０２のＶＭ割当てテーブル１１００に割当て設定を登録する(ステップ２３０８)。具体的な割当て設定のスケジュールの登録フローについては図２５にて後述する。
【０１０２】
ステップ２３０６の判定において割当てが不可と判定された場合には、ステップ２３１０にて割当て対象の物理計算資源h1を集合Sh1から除外する。
【０１０３】
ステップ２３０４において、種別１５０２が「N/A」である物理計算資源の集合であるSh1が空集合である場合には、割当て対象VM(p)を割当てられる好適な物理計算資源が存在しないため、割当てができなかった場合の対処処理（ステップ２３０９）を行い、本処理フローを完了させる。
【０１０４】
なお、ステップ２３０５において割当て可能な物理計算資源を１つ選択する手段や、VM(p)に対して割当て可能な物理計算資源を検索手順の方法については、最初に合致したものを選択するFirst Match、あるいは最適な空き領域に割当てるBest Matchなど、他の手法を用いてもよい。
【０１０５】
図２４は、「漸増型・漸減型負荷パタン」かつ「性能保証型」のVM(p)に対する計算資源割当て判定フローであり、ステップ２３０６の処理を詳細化したフローである。
【０１０６】
ステップ２４０１は初期化ステップで、対象時刻をVM(p)の漸増型・漸減型負荷パタン登録テーブルにおける開始時刻９０７に設定するとともに、以降の処理フローで繰り返し回数を示す変数iを０に初期化する。
【０１０７】
ステップ２４０２から２４０６までにおいては、VM(p)の漸増型・漸減型負荷パタン登録テーブルにおけるある一定期間を示すX3の中に含まれる対象時刻tに対して、図１６のCPU空き１６０５が、契約で定められたVM(p)の性能保証値よりも少ないかどうかを判定し（ステップ２４０２）、多い場合には、ある一定期間X3において増加することが見込まれるY4、または減少することが見込まれるY5について、その対象とするタイムスロットにおけるピーク負荷の予測値をステップ２４０３の計算により求め（ステップ２４０３）、CPU空き１６０５と比較する（ステップ２４０４）ことで、割当て可能性を判定する。
【０１０８】
ステップ２４０７においては、対象時刻のtがある一定期間のX3の幅を超えたため、再度ピーク負荷の予測値を算出し直すために繰り返し回数を示す変数iを１つ増やす。
【０１０９】
ステップ２４０８においては、VM(p)の漸増型・漸減型負荷パタン登録テーブルにおける終了時刻９０８と対象時刻tを比較し、終了時刻９０８よりも大きい場合には割当て可と判断して（ステップ２４０９）、本処理フローを終了する。一方、ステップ２４０８において対象時刻tが終了時刻９０８よりも小さい場合にはステップ２４０２に戻り、再度ピーク負荷の予測値を算出する処理を行い、CPU空き１６０５との比較で割当て可能性を判定する。また、割当て可能性の判断は、図１４の制約管理テーブルも考慮される。例えば、すでに物理計算資源に割当てられている仮想計算資源が、制約管理テーブルの制約に抵触しないように割当てる。抵触する場合には、割当て不可として判定する。
【０１１０】
図２５は、割当て対象であるVM(p)に対して、VM(p)を割当て可能な物理計算資源であるホスト計算機に割当てるためのスケジュールと割当て設定を作成して登録する処理フローであり、ステップ２３０８の詳細な処理フローである。
【０１１１】
ステップ２５０１において、対象時刻をtとし、繰り返しを数える変数としてiを0とする。
【０１１２】
ステップ２５０２においては、時刻tから図６の「漸増型」または「漸減型」におけるX3後の予測負荷を、初期値をVM(p)の負荷パタンの開始時刻から更にi*X3だけ経過した時刻における負荷の値として、これにX3後進んだのちの負荷の増分を加算した値と、性能保証する値として指定された値とを比較し、大きいものを予測負荷ピーク値とする。
【０１１３】
ステップ２５０３においては、図１６のCPU利用１６０４を、対象のVM(p)に対してステップ２５０２で算出した予測負荷ピーク値の分だけ加算するとともに、空きのCPU空き１６０５を予測負荷ピーク値の分だけ減算して、図１６のTime Slot１６０２のレコードについて更新する。
【０１１４】
ステップ２５０４では、対象時刻tを、図１６のTime Slot １６０２の次のレコードの時刻に進める。
【０１１５】
ステップ２５０５において、対象時刻tが、VM(p)の開始時刻に(i+1)*X3だけ経過した時刻より前の場合には、ステップ２５０２へ、後の場合にはステップ２５０３へ進む。
【０１１６】
ステップ２５０３では、ＶＭ割当てテーブル１１００のVM(p)のレコードについて、ホスト名をhに、上限制限と下限制限をともに予測負荷ピーク値に、開始時刻をVM(p)開始時刻+i*X3に、終了時刻をVM(p)開始時刻+(i+1)*X3とVM(p)の終了時刻のうち小さい時刻に、それぞれ更新する。
【０１１７】
ステップ２５０７において、iを１つ増やし、対象時刻tがVM(p)の終了時刻より小さいかを判定し、小さい場合には、ステップ２５０２に戻り、大きい場合には、ステップ２５０９に進む。
【０１１８】
ステップ２５０９において、漸増型または漸減型の負荷パタン登録テーブルのVM(p)の割当て９０３を「済」に変更して、本フローを終了する。
【０１１９】
図２６は、対象VM群が「不定型」で、かつ性能条件１３０６が「性能保証型」であるものに対するホスト計算機への割当て処理のフローであり、ステップ５０４の詳細フローである。
【０１２０】
ステップ２６０１において、不定型負荷パタン登録テーブル１０００で未割当てのVM（これをVM(p)とする）を選択する。
【０１２１】
ステップ２６０２においては、ステップ２６０１において選択したVM(p)が存在するかどうかを判定する。
【０１２２】
ステップ２６０３からステップ２６０８までにおいて、対象のVM(p)について種別１５０２が「不定型」であるホスト計算機群の中で、対象VM(p)を割り当て可能であるかを判定し（ステップ２６０６）、割り当て可能であればホスト計算機h1に対してVM(p)を割当てるようにＶＭ割当てテーブル１１００に割当て設定のスケジュールを登録する(ステップ２６０７)。具体的な割当て設定の登録フローについては図２８にて後述する。
【０１２３】
ステップ２６０６の判定において割当てが不可と判定された場合には、ステップ２６０８にて割当て対象の物理計算資源のh1を集合Sh1から除外する。
【０１２４】
ステップ２６０９から２６１６までにおいて、対象VM(p)についてホストCPU負荷パタン対応テーブル１５００でまだ負荷パタンを割当てていない、すなわち種別１５０２が「N/A」であるホスト計算機h2に対し、対象VM(p)を割り当て可能であるかを判定し（ステップ２６１２）、割り当て可能であれば、ホストCPU負荷パタン対応テーブル１５００のホスト計算機h2について種別を「不定型」に更新し（ステップ２６１３）、ホスト計算機h2に対してVM(p)を割当てるようにＶＭ割当てテーブル１１００に割当て設定を登録する(ステップ２６１４)。具体的な割当て設定のスケジュールの登録フローについては図２８にて後述する。
【０１２５】
ステップ２６１２において割当てが不可と判定された場合には、ステップ２６１６にて割当て対象のホスト計算機h2を集合Sh2から除外する。
【０１２６】
ステップ２６１０において、ホストCPU負荷パタン対応テーブルの種別１５０２が「N/A」である物理計算資源の集合であるSh2が空集合である場合には、割当て対象VM(p)を割当てられる好適な物理計算資源が存在しないため、割当てができなかった場合の対処処理を行い、本処理フローを完了させる。
【０１２７】
なお、ステップ２６０５またはステップ２６１１において割当て可能な物理計算資源を１つ選択する手段や、VM(p)に対して割当て可能な物理計算資源を検索手順の方法については、最初に合致したものを選択するFirst Match、あるいは最適な空き領域に割当てるBest Matchなど、他の手法を用いてもよい。
【０１２８】
図２７は、「不定型負荷パタン」かつ「性能保証型」のVM(p)に対する計算資源割当て判定フローであり、ステップ２６０６またはステップ２６１２の詳細な処理フローである。
【０１２９】
ステップ２７０１からステップ２７０４までにおいて、割当て対象のVM(p)の負荷パタンの開始時刻から終了時刻までについて、CPU空き１６０５に基づき、割当て可能かを判定し（ステップ２７０２）、割当て可能であれば時刻tをTime Slot１６０２で次のTime Slotに進める（ステップ２７０３）。
【０１３０】
割当て不可である場合は割当て不可として（ステップ２７０６）処理フローを終了する。
【０１３１】
ステップ２７０２における割当て可能性の判定については、ホストID１６０３に紐付くホスト計算機のCPU空き１６０５が、VM(p)の負荷パタンの平均値AVG(p)と平均値からのばらつきの散布度を示す数値であるVX(p)の和よりも大きい場合は割当て可能であり、それ以外の場合には割当て不可と判定する。また、割当て可能性の判断は、図１４の制約管理テーブルについても考慮する。例えば、すでに物理計算資源に割当てられている仮想計算資源が、制約管理テーブルの制約に抵触しないように割当てる。抵触する場合には、割当て不可として判定する。
【０１３２】
図２８は、割当て対象であるVM(p)に対して、VM(p)をホスト計算機に割当てるためのスケジュールと割当て設定を作成して登録する処理フローであり、ステップ２６０７またはステップ２６１４の詳細な処理フローである。
【０１３３】
ステップ２８０１からステップ２８０４において、ホスト計算機のCPUの利用量であるCPU利用１６０４を、対象のVM(p)の負荷パタンの平均値であるAVG(p)と平均からのばらつきの散布度を示す数値VX(p)分の和だけ加算した値に更新するとともに、空きのCPU空き１６０５を平均値AVG(p)と平均からのばらつきの散布度を示す数値VX(p)との和の分だけ減算した値に更新する（ステップ２８０２）。この処理を、VM(p)の負荷パタンの開始時刻１００６から終了時刻１００７にかけて、図１６のホストCPU割当て量管理テーブルのTime Slot１６０２について更新する。
【０１３４】
ステップ２８０５においては、ＶＭ割当てテーブル１１００におけるVM(p)について、割当て対象のVMの識別情報をVMID１１０２として、割当て先のホスト計算機のホスト名をホスト名１１０３として、AVG(p)+VX(p)（VM(p)におけるY3の値）を上限制限１１０５および下限制限１１０６として、VM(p)の開始時刻１００６を開始時刻１１０７として、終了時刻１００７を終了時刻１１０８として、それぞれ登録する。
【０１３５】
ステップ２８０６において、不定型負荷パタン登録テーブルのVM(p)の割当て１００３を「済」に変更して、本フローを終了する。
【０１３６】
図２９は、計算資源割当て状況確認画面の一例である。計算資源割当て状況確認画面は、ホスト一覧２９０１と、計算資源割当てスケジュール２９０２と、仮想計算資源２９０３と、から構成される。
【０１３７】
ホスト一覧２９０１は、図１５のホストＣＰＵ負荷パタン対応テーブルにおける種別１５０２により登録されているホストを、それぞれの負荷パタンの種別毎にわけて表示する。図２９の例では、「一定型」のホストとしてhost Aおよびhost Bが登録されている。
【０１３８】
計算資源割当てスケジュール２９０２には、時刻の経過によるホスト計算機のＶＭへの資源割当て量を示したグラフを表示する。横軸は時刻で縦軸はホスト計算機の資源割当て量（例えばＣＰＵ周波数など）となる。
【０１３９】
仮想計算資源一覧２９０３には、クラウドサービス上で作成されたＶＭの一覧を表示する。
【０１４０】
図３０は、図２９の計算資源割当てスケジュール２９０２において表示されるグラフの例を示したものである。
【０１４１】
図３０(a)は、「一定型」のホストにおける、ＶＭに対するＣＰＵ割当て状況を示したもので、図２９のホスト一覧２９０１において「一定型」に分類された任意のホストを選択した場合に表示される一例である。網掛けはそれぞれＶＭに対するＣＰＵ周波数の割り当て量を示している。
【０１４２】
図３０(b)は、「周期型」のホストにおけるＶＭに対するＣＰＵ割当て状況を示したもので、図２９のホスト一覧２９０１において「周期型」に分類された任意のホストを選択した場合に表示される一例である。
【０１４３】
図３０(c)は、「漸増型」のホストにおけるＶＭに対するＣＰＵ割当て状況を示したもので、図２９のホスト一覧２９０１において「漸増型」に分類された任意のホストを選択した場合に表示される一例である。なお、図３０では省略したが、「漸減型」に分類されたホストを選択した場合には、時間が経つにつれてCPU周波数が減少していくグラフが表示される。
【０１４４】
図３０(e)は、「不定型」のホストにおけるＶＭに対するＣＰＵ割当て状況を示したもので、図２９のホスト一覧２９０１において「不定型」に分類された任意のホストを選択した場合に表示される一例である。
【０１４５】
なお、本実施例においては、物理計算資源をホスト計算機、仮想計算資源をＶＭ（特にＣＰＵ）を対象として記載したが、対象とするコンポーネントをＣＰＵの他にメモリやディスクのI/Oとしても良いし、これらをそれぞれストレージ、仮想化されたストレージのボリュームやストレージの装置内のコンポーネント（例えばプロセッサ、メモリ、キャッシュメモリ、ポート、ディスクドライブなど）に置き換えて同様の割当て処理を行っても良い。
【０１４６】
また、物理計算資源、仮想計算資源を、それぞれ物理ネットワーク装置、および仮想化された仮想ネットワーク装置（仮想スイッチ）における各コンポーネント（仮想ポート、仮想ネットワークＶＬＡＮなど）に置き換えて同様の割当て処理を行っても良い。
【図１】
0006349264.tif 000002
【図２】
0006349264.tif 000003
【図３】
0006349264.tif 000004
【図４】
0006349264.tif 000005
【図５】
0006349264.tif 000006
【図６】
0006349264.tif 000007
【図７】
0006349264.tif 000008
【図８】
0006349264.tif 000009
【図９】
0006349264.tif 000010
【図１０】
0006349264.tif 000011
【図１１】
0006349264.tif 000012
【図１２】
0006349264.tif 000013
【図１３】
0006349264.tif 000014
【図１４】
0006349264.tif 000015
【図１５】
0006349264.tif 000016
【図１６】
0006349264.tif 000017
【図１７】
0006349264.tif 000018
【図１８】
0006349264.tif 000019
【図１９】
0006349264.tif 000020
【図２０】
0006349264.tif 000021
【図２１】
0006349264.tif 000022
【図２２】
0006349264.tif 000023
【図２３】
0006349264.tif 000024
【図２４】
0006349264.tif 000025
【図２５】
0006349264.tif 000026
【図２６】
0006349264.tif 000027
【図２７】
0006349264.tif 000028
【図２８】
0006349264.tif 000029
【図２９】
0006349264.tif 000030
【図３０】
0006349264.tif 000031