JP6191695B2 - 仮想リソース制御システムおよび仮想リソース制御方法 - Google Patents

仮想リソース制御システムおよび仮想リソース制御方法 Download PDF

Info

Publication number
JP6191695B2
JP6191695B2 JP2015530673A JP2015530673A JP6191695B2 JP 6191695 B2 JP6191695 B2 JP 6191695B2 JP 2015530673 A JP2015530673 A JP 2015530673A JP 2015530673 A JP2015530673 A JP 2015530673A JP 6191695 B2 JP6191695 B2 JP 6191695B2
Authority
JP
Japan
Prior art keywords
resource
amount
service
virtual
deficiency
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2015530673A
Other languages
English (en)
Other versions
JPWO2015019538A1 (ja
Inventor
清一 小泉
清一 小泉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Publication of JPWO2015019538A1 publication Critical patent/JPWO2015019538A1/ja
Application granted granted Critical
Publication of JP6191695B2 publication Critical patent/JP6191695B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、複数のサービスシステムに対して仮想リソースの割当量の制御を行う仮想リソース制御システム、仮想リソース制御方法、および、その仮想リソース制御システム、仮想リソース制御方法に適用されるサービス管理装置、ハブ装置、サービス管理装置用プログラム、ハブ装置用プログラムに関する。
IaaS(Infrastructure as a Service)等のクラウドプラットフォーム上では、利用者にサービスを提供する複数のサービスシステムが存在する。そのようなサービスシステムの種類は、例えば、EC(Electronic Commerce)システムや動画配信システム等、多様である。個々のサービスシステムは、Webサーバ、アプリケーションサーバ、データベースサーバ等の複数のノードを含む。以下、アプリケーションサーバを、Appサーバと記す場合がある。また、データベースサーバを、DBサーバと記す場合がある。
特許文献1には、仮想リソースの運用管理システムが記載されている。特許文献1に記載の運用管理システムは、テンプレートによって構成が定められた仮想システムを制御対象にしている。
また、特許文献2に記載された仮想サーバリソース調整システムは、それぞれの仮想サーバについて、現在割り当てられているリソース量から削減可能なリソース量である空きリソース量を算出し、各空きリソース量を合計して総空きリソース量を算出する。そして、この仮想サーバリソース調整システムは、高負荷が発生した仮想サーバの負荷から、追加が必要なリソース量を算出し、総空きリソース量と比較する。この仮想サーバリソース調整システムは、総空きリソース量の方が多ければ、リソース追加が可能であると判断する。また、特許文献2では、リソースの例として、CPU(Central Processing Unit )、メモリ、ディスクI/O(Input/Output)、ネットワークI/Oが挙げられている。
また、特許文献3には、クライアントとサーバとを備え、データリソースが、いくつかのサーバに渡って区分された構成が開示されている。また、特許文献3には、サーバの負荷バランスをとることが記載されている。
特開2011−81579号公報(段落0072、図18) 特開2010−33292号公報(段落0016、0028〜0029、図5、図6) 特表2006−522961号公報(段落0033、0044、0063〜0073、0082、0083、図2、図4)
クラウドプラットフォーム上に存在する各サービスシステムは、それぞれ構成や振る舞いが異なる。そのため、サービスシステムの稼働状況に合ったリソースを動的に割り当て、高いサービス品質を維持するためには、サービスシステムにおけるリソース消費状態を把握して適切なリソース割り当てを行う必要がある。このようなきめ細かな仮想リソースの割り当て制御は、管理対象の構成が静的な場合には適用しやすい。しかし、クラウド環境のようにサービスシステムの追加や削除が頻繁に発生する環境では、このようなきめ細かな仮想リソースの割り当て制御は困難であった。
また、特許文献1に記載の技術は、テンプレートによって構成が定められた仮想システムを制御対象にしているので、サービスシステムの追加や削除が頻繁に発生する環境には適さない。
サービスシステムの追加や削除が生じる環境において、個々のサービスシステムに対して仮想リソースを適切に割り当てられることが好ましい。
そこで、本発明は、サービスシステムの追加や削除が生じる環境において、個々のサービスシステムに対する仮想リソースの割当量を適切に定めることができる仮想リソース制御システム、仮想リソース制御方法、および、その仮想リソース制御システム、仮想リソース制御方法に適用されるサービス管理装置、ハブ装置、サービス管理装置用プログラム、ハブ装置用プログラムを提供することを目的とする。
本発明による仮想リソース制御システムは、サービスを提供するサービスシステムと一対一に対応し、対応するサービスシステム内の個々のノードに対する仮想リソースの割当量を定めるサービス管理装置と、サービス管理装置に対応する1つのサービスシステム全体に対する仮想リソースの割当量の不足量または余剰量を表すリソース過不足量をサービス管理装置から受け付け、サービス管理装置に対応する1つのサービスシステム全体に対する仮想リソースの割当量をサービス管理装置に通知するハブ装置と、各サービスシステム全体に対する仮想リソースの割当量を算出するリソース管理装置とを備え、各サービス管理装置は、自装置に対応するサービスシステム内の各ノードの入力および出力を処理順に表現するサービスモデルを保持するモデル保持手段と、サービスシステム内の各ノードに関して、仮想リソースの割当量と、1つのリクエストに対して消費する仮想リソースの量である単位リソース消費量と、平均処理時間とを測定し、サービスシステムで生じたリクエストを表すログを取得するモニタリング手段と、各ノードの仮想リソースの割当量、単位リソース消費量、および平均処理時間と、サービスモデルとに基づいて、ノードに入力が生じたときにおける当該ノードの未使用リソース量および使用中のリソース量を表現するリソースモデルを生成し、サービスモデルとリソースモデルとを組み合わせたハイブリッドモデルを生成するモデル生成手段と、ハイブリッドモデルと、ログとを用いて、サービスシステム内の各ノードのリソース消費状況のシミュレーションを実行して、ノード毎に、仮想リソースの残量の最小値である最小リソース残量と、仮想リソースの不足量の最大値である最大リソース不足量とを算出し、ノード毎の最小リソース残量および最大リソース不足量に基づいてリソース過不足量を算出し、当該リソース過不足量をハブ装置に通知し、ハブ装置から、当該リソース過不足量が示す不足量または余剰量を解消した、当該サービス管理装置に対応する1つのサービスシステム全体に対する仮想リソースの割当量の通知を受けるリソース過不足量算出手段と、ノード毎に、最小リソース残量または最大リソース不足量が解消されるように、仮想リソースの割当量を更新する仮想リソース割当量更新手段とを含み、ハブ装置は、各サービス管理装置から通知されたリソース過不足量を保持するリソース過不足量保持手段と、一定期間毎に、各サービス管理装置から通知されたリソース過不足量に基づいて、各サービスシステム全体に対する仮想リソースの割当量の不足量または余剰量を表す全体リソース過不足量を算出し、当該全体リソース過不足量をリソース管理装置に通知し、リソース管理装置から、当該全体リソース過不足量を解消した、各サービスシステム全体に対する仮想リソースの割当量の通知を受ける全体リソース過不足量算出手段と、リソース過不足量が示す不足量または余剰量を解消した、サービス管理装置に対応する1つのサービスシステム全体に対する仮想リソースの割当量を算出し、当該割当量をリソース過不足量の送信元のサービス管理装置に通知するシステム別仮想リソース割当量算出手段とを含み、リソース管理装置は、ハブ装置から通知された全体リソース過不足量を保持する全体リソース過不足量保持手段と、一定期間毎に、全体リソース過不足量を確認し、全体リソース過不足量を解消した、各サービスシステム全体に対する仮想リソースの割当量を算出し、当該割当量をハブ装置に通知する全体仮想リソース割当量算出手段とを含むことを特徴とする。
また、本発明による仮想リソース制御方法は、サービスを提供するサービスシステムと一対一に対応し、対応するサービスシステム内の個々のノードに対する仮想リソースの割当量を定めるサービス管理装置と、サービス管理装置に対応する1つのサービスシステム全体に対する仮想リソースの割当量の不足量または余剰量を表すリソース過不足量をサービス管理装置から受け付け、サービス管理装置に対応する1つのサービスシステム全体に対する仮想リソースの割当量をサービス管理装置に通知するハブ装置と、各サービスシステム全体に対する仮想リソースの割当量を算出するリソース管理装置とを用いた仮想リソース制御方法であって、各サービス管理装置が、自装置に対応するサービスシステム内の各ノードの入力および出力を処理順に表現するサービスモデルを保持し、サービスシステム内の各ノードに関して、仮想リソースの割当量と、1つのリクエストに対して消費する仮想リソースの量である単位リソース消費量と、平均処理時間とを測定し、サービスシステムで生じたリクエストを表すログを取得し、各ノードの仮想リソースの割当量、単位リソース消費量、および平均処理時間と、サービスモデルとに基づいて、ノードに入力が生じたときにおける当該ノードの未使用リソース量および使用中のリソース量を表現するリソースモデルを生成し、サービスモデルとリソースモデルとを組み合わせたハイブリッドモデルを生成し、ハイブリッドモデルと、ログとを用いて、サービスシステム内の各ノードのリソース消費状況のシミュレーションを実行して、ノード毎に、仮想リソースの残量の最小値である最小リソース残量と、仮想リソースの不足量の最大値である最大リソース不足量とを算出し、ノード毎の最小リソース残量および最大リソース不足量に基づいてリソース過不足量を算出し、当該リソース過不足量をハブ装置に通知し、ハブ装置が、各サービス管理装置から通知されたリソース過不足量を保持し、一定期間毎に、各サービス管理装置から通知されたリソース過不足量に基づいて、各サービスシステム全体に対する仮想リソースの割当量の不足量または余剰量を表す全体リソース過不足量を算出し、当該全体リソース過不足量をリソース管理装置に通知し、リソース管理装置が、ハブ装置から通知された全体リソース過不足量を保持し、一定期間毎に、全体リソース過不足量を確認し、全体リソース過不足量を解消した、各サービスシステム全体に対する仮想リソースの割当量を算出し、当該割当量をハブ装置に通知し、ハブ装置が、リソース管理装置から、各サービスシステム全体に対する仮想リソースの割当量の通知を受け、リソース過不足量が示す不足量または余剰量を解消した、サービス管理装置に対応する1つのサービスシステム全体に対する仮想リソースの割当量を算出し、当該割当量をリソース過不足量の送信元のサービス管理装置に通知し、各サービス管理装置が、自装置に対応する1つのサービスシステム全体に対する仮想リソースの割当量の通知を受け、ノード毎に、最小リソース残量または最大リソース不足量が解消されるように、仮想リソースの割当量を更新することを特徴とする。
また、本発明によるサービス管理装置は、サービスを提供するサービスシステムと一対一に対応し、対応するサービスシステム内の個々のノードに対する仮想リソースの割当量を定めるサービス管理装置であって、当該サービス管理装置に対応するサービスシステム内の各ノードの入力および出力を処理順に表現するサービスモデルを保持するモデル保持手段と、サービスシステム内の各ノードに関して、仮想リソースの割当量と、1つのリクエストに対して消費する仮想リソースの量である単位リソース消費量と、平均処理時間とを測定し、サービスシステムで生じたリクエストを表すログを取得するモニタリング手段と、各ノードの仮想リソースの割当量、単位リソース消費量、および平均処理時間と、サービスモデルとに基づいて、ノードに入力が生じたときにおける当該ノードの未使用リソース量および使用中のリソース量を表現するリソースモデルを生成し、サービスモデルとリソースモデルとを組み合わせたハイブリッドモデルを生成するモデル生成手段と、ハイブリッドモデルと、ログとを用いて、サービスシステム内の各ノードのリソース消費状況のシミュレーションを実行して、ノード毎に、仮想リソースの残量の最小値である最小リソース残量と、仮想リソースの不足量の最大値である最大リソース不足量とを算出し、ノード毎の最小リソース残量および最大リソース不足量に基づいて、当該サービス管理装置に対応する1つのサービスシステム全体に対する仮想リソースの割当量の不足量または余剰量を表すリソース過不足量を算出し、当該サービス管理装置に対応する1つのサービスシステム全体に対する仮想リソースの割当量を定めるハブ装置にリソース過不足量を通知し、ハブ装置から、当該リソース過不足量が示す不足量または余剰量を解消した、当該サービス管理装置に対応する1つのサービスシステム全体に対する仮想リソースの割当量の通知を受けるリソース過不足量算出手段と、ノード毎に、最小リソース残量または最大リソース不足量が解消されるように、仮想リソースの割当量を更新する仮想リソース割当量更新手段とを備えることを特徴とする。
また、本発明によるハブ装置は、サービスを提供するサービスシステムと一対一に対応し、対応するサービスシステム内の個々のノードに対する仮想リソースの割当量を定めるサービス管理装置、および、各サービスシステム全体に対する仮想リソースの割当量を算出するリソース管理装置とともに用いられ、サービス管理装置に対応する1つのサービスシステム全体に対する仮想リソースの割当量の不足量または余剰量を表すリソース過不足量をサービス管理装置から受け付け、サービス管理装置に対応する1つのサービスシステム全体に対する仮想リソースの割当量をサービス管理装置に通知するハブ装置であって、各サービス管理装置から通知されたリソース過不足量を保持するリソース過不足量保持手段と、一定期間毎に、各サービス管理装置から通知されたリソース過不足量に基づいて、各サービスシステム全体に対する仮想リソースの割当量の不足量または余剰量を表す全体リソース過不足量を算出し、当該全体リソース過不足量をリソース管理装置に通知し、リソース管理装置から、当該全体リソース過不足量を解消した、各サービスシステム全体に対する仮想リソースの割当量の通知を受ける全体リソース過不足量算出手段と、リソース過不足量が示す不足量または余剰量を解消した、サービス管理装置に対応する1つのサービスシステム全体に対する仮想リソースの割当量を算出し、当該割当量をリソース過不足量の送信元のサービス管理装置に通知するシステム別仮想リソース割当量算出手段とを備えることを特徴とする。
また、本発明によるサービス管理装置用プログラムは、サービスを提供するサービスシステムと一対一に対応し、対応するサービスシステム内の個々のノードに対する仮想リソースの割当量を定めるコンピュータに搭載されるサービス管理装置用プログラムであって、コンピュータに、コンピュータに対応するサービスシステム内の各ノードの入力および出力を処理順に表現するサービスモデルを保持するモデル保持処理、サービスシステム内の各ノードに関して、仮想リソースの割当量と、1つのリクエストに対して消費する仮想リソースの量である単位リソース消費量と、平均処理時間とを測定し、サービスシステムで生じたリクエストを表すログを取得するモニタリング処理、各ノードの仮想リソースの割当量、単位リソース消費量、および平均処理時間と、サービスモデルとに基づいて、ノードに入力が生じたときにおける当該ノードの未使用リソース量および使用中のリソース量を表現するリソースモデルを生成し、サービスモデルとリソースモデルとを組み合わせたハイブリッドモデルを生成するモデル生成処理、ハイブリッドモデルと、ログとを用いて、サービスシステム内の各ノードのリソース消費状況のシミュレーションを実行して、ノード毎に、仮想リソースの残量の最小値である最小リソース残量と、仮想リソースの不足量の最大値である最大リソース不足量とを算出し、ノード毎の最小リソース残量および最大リソース不足量に基づいて、コンピュータに対応する1つのサービスシステム全体に対する仮想リソースの割当量の不足量または余剰量を表すリソース過不足量を算出し、コンピュータに対応する1つのサービスシステム全体に対する仮想リソースの割当量を定めるハブ装置にリソース過不足量を通知し、ハブ装置から、当該リソース過不足量が示す不足量または余剰量を解消した、コンピュータに対応する1つのサービスシステム全体に対する仮想リソースの割当量の通知を受けるリソース過不足量算出処理、および、ノード毎に、最小リソース残量または最大リソース不足量が解消されるように、仮想リソースの割当量を更新する仮想リソース割当量更新処理を実行させることを特徴とする。
また、本発明によるハブ装置用プログラムは、サービスを提供するサービスシステムと一対一に対応し、対応するサービスシステム内の個々のノードに対する仮想リソースの割当量を定めるサービス管理装置、および、各サービスシステム全体に対する仮想リソースの割当量を算出するリソース管理装置とともに用いられ、サービス管理装置に対応する1つのサービスシステム全体に対する仮想リソースの割当量の不足量または余剰量を表すリソース過不足量をサービス管理装置から受け付け、サービス管理装置に対応する1つのサービスシステム全体に対する仮想リソースの割当量をサービス管理装置に通知するコンピュータに搭載されるハブ装置用プログラムであって、コンピュータに、各サービス管理装置から通知されたリソース過不足量を保持するリソース過不足量保持処理、一定期間毎に、各サービス管理装置から通知されたリソース過不足量に基づいて、各サービスシステム全体に対する仮想リソースの割当量の不足量または余剰量を表す全体リソース過不足量を算出し、当該全体リソース過不足量をリソース管理装置に通知し、リソース管理装置から、当該全体リソース過不足量を解消した、各サービスシステム全体に対する仮想リソースの割当量の通知を受ける全体リソース過不足量算出処理、および、リソース過不足量が示す不足量または余剰量を解消した、サービス管理装置に対応する1つのサービスシステム全体に対する仮想リソースの割当量を算出し、当該割当量をリソース過不足量の送信元のサービス管理装置に通知するシステム別仮想リソース割当量算出処理を実行させることを特徴とする。
本発明によれば、サービスシステムの追加や削除が生じる環境において、個々のサービスシステムに対する仮想リソースの割当量を適切に定めることができる。
本発明の仮想リソース制御システムの構成例を示すブロック図である。 サービスシステムの例を示す模式図である。 ノード_リソーステーブルの例を示す説明図である。 サービス_ログテーブルの例を示す説明図である。 サービス_リソース配分テーブルの例を示す説明図である。 サービス_モデルテーブルの例を示す説明図である。 サービスモデルの例を模式的に示す説明図である。 リソースモデルの例を模式的に示す説明図である。 ハイブリッドモデルの例を示す説明図である。 ハブ_サービス_リソース配分テーブルの例を示す説明図である。 ハブ_リソース配分テーブルの例を示す説明図である。 プール_ハブ_リソース配分テーブルの例を示す説明図である。 プール_リソース容量テーブルの例を示す説明図である。 プール_ハブ_リソース配分テーブルの例を示す説明図である。 プール_リソース容量テーブルの例を示す説明図である。 サービス管理装置の処理経過の例を示すフローチャートである。 ハブ装置の処理経過の例を示すフローチャートである。 リソースプール管理装置の処理経過の例を示すフローチャートである。 図3に示すノード_リソーステーブルに各ノードの最大リソース不足量および最小リソース残量を追加した状態の例を示す説明図である。 図19に例示するノード_リソーステーブルを更新した状態を示す説明図である。 図11に示すハブ_リソース配分テーブルを更新した状態を示す説明図である。 図10に示すハブ_サービス_リソース配分テーブルを更新した状態を示す説明図である。 図12に例示するプール_ハブ_リソース配分テーブルを更新した状態を示す説明図である。 図13に例示するプール_リソース容量テーブルを更新した状態を示す説明図である。 図14に例示するプール_ハブ_リソース配分テーブルを更新した状態を示す説明図である。 図15に例示するプール_リソース容量テーブルを更新した状態を示す説明図である。 本発明の主要部を示すブロック図である。
以下、本発明の実施形態を図面を参照して説明する。
図1は、本発明の仮想リソース制御システムの構成例を示すブロック図である。本発明の仮想リソース制御システム1は、サービス管理装置200,210と、ハブ装置300と、リソースプール管理装置400,410とを備える。仮想リソース制御システム1は、それぞれのサービスシステム100,110の稼働状況に応じて、サービスシステム100,110に対する仮想リソース(例えば、仮想CPUや仮想RAM)の割当量を定める。
サービスシステム100,110は、仮想リソースの割り当て対象である。個々のサービスシステム100,110は、それぞれ、利用者に対してサービス提供処理を実行する。サービスの種類は、サービスシステム毎に異なる。また、サービスシステム100は、例えば、Webサーバ101と、Appサーバ102と、DBサーバ103とを備える。サービスシステム110も、同様のサーバ群を備えるが、具体的な構成は、サービスシステム毎に異なっていてよい。また、Webサーバ101、Appサーバ102およびDBサーバ103以外の装置がサービスシステムに設けられていてもよい。例えば、サービスシステム100は、図2に例示するように、ファイアウォール104とロードバランサ105とを備えていてもよい。
以下では、サービスシステムが2つである場合を例にして説明するが、サービスシステムの数は、特に限定されない。
サービス管理装置200,210は、サービスシステム100,110と一対一に対応するように設けられる。従って、サービス管理装置の数は、サービスシステムの数と同数である。各サービス管理装置200,210は、自装置に対応するサービスシステム内の各ノードの単位リソース消費量(1つのリクエストに対して消費するリソース量)や、その各ノードの平均処理時間を測定し、各ノードにおける仮想リソースの余剰分や、不足分を算出する。そして、各サービス管理装置200,210は、自装置に対応するサービスシステム内の各ノードの仮想リソースの割当量を変更する。また、各サービス管理装置200,210は、自装置に対応するサービスシステム内の各ノード全体で、仮想リソースの余剰や不足が生じている場合には、その余剰量や不足量に応じて、自装置に対応するサービスシステムのノード全体に割り当てる仮想リソースの割当量の変更をハブ装置300に要求する。
サービス管理装置とサービスシステムは一対一に対応しているので、1つのサービス管理装置は1つのサービスに対応していると言える。
以下、サービス管理装置200を例にして説明するが、各サービス管理装置200,210の構成は同様である。
サービス管理装置200は、サービス情報記憶装置201と、モニタリング部202と、ハイブリッドモデル生成部203と、ノード_リソース量推定部204と、サービス_リソース配分検証部205と、リソース再配分部206と、ハブ連携部207とを備える。
サービス情報記憶装置201は、ノード_リソーステーブル、サービス_ログテーブル、サービス_リソース配分テーブル、サービス_モデルテーブルを記憶する。
図3は、ノード_リソーステーブルの例を示す説明図である。ノード_リソーステーブルには、サービス管理装置200に対応するサービスシステム100内のノードとそのノードに割り当てられる仮想リソースの種別との組み合わせ毎に、ノードID、リソース型、リソース割当量、リソース消費量(単位リソース消費量)、最小リソース残量、最大リソース不足量、サービスIDが対応付けて格納される。リソース型は、仮想リソースの種別である。リソース割当量は、現在、ノードに割り当てられているリソース量である。最小リソース残量は、サービスシステム100で生成されたログに基づいて、ノードのリソース消費をシミュレートしたときにおける、仮想リソースの残量の最小値である。最大リソース不足量は、そのシミュレーション時における、仮想リソースの不足量の最大値である。最大リソース不足量は、シミュレーションにおいて生じたリクエストの待ち数の最大値と単位リソース消費量との積として求められる。最小リソース残量、最大リソース不足量は、一時的に格納される。サービスIDは、サービス管理装置200に対応するサービスシステム100が提供するサービスのIDである。従って、サービス管理装置200のノード_リソーステーブル内において、サービスIDは共通である。
なお、本実施形態において、余剰が生じているときの余剰量は正の値で表され、不足が生じているときの不足量は負の値で表される。
また、ノード_リソーステーブルには、サービスシステム100内のノード毎に、ノードID、ノード名、および、そのノードの平均処理時間が格納される(図3の下段参照)。
図4は、サービス_ログテーブルの例を示す説明図である。サービスシステム100は、1つのリクエストが生じる毎に1つのログを生成する。このログの情報が、サービス_ログテーブルに格納される。具体的には、ログID、サービスID、タイムスタンプが対応付けて格納される。図4に示す1行分のデータが、サービスシステム100に生じた1つのリクエストを表す。
図5は、サービス_リソース配分テーブルの例を示す説明図である。サービス_リソース配分テーブルには、仮想リソースの種別(リソース型)毎に、サービス管理装置200に対応するサービスシステム100内のノード全体に現在割り当てられているリソース量、および、そのノード全体でのリソース過不足量が格納される。また、仮想リソースの種別毎にサービスIDも格納される。ただし、ノード_リソーステーブルと同様に、サービス_リソース配分テーブルでも、各行のサービスIDは共通である。仮想リソースの過不足がなくなるように、ノード_リソーステーブル(図3参照)内のリソース割当量を更新したときに、サービス_リソース配分検証部205は、そのリソース割当量に対応するリソース過不足量を消去する。
図6は、サービス_モデルテーブルの例を示す説明図である。サービス_モデルテーブルには、サービスIDと、サービスモデルと、ハイブリッドモデルが対応付けて格納される。図6では、サービスモデルおよびハイブリッドモデルの図示を省略している。サービスモデルは、サービス管理装置200に対応するサービスシステム100に応じて予め定められ、サービス_モデルテーブルに格納されている。一方、ハイブリッドモデルは、サービス_モデル、各ノードに割り当てられているリソース量、測定された単位リソース消費量や平均処理時間に基づいて生成され、サービス_モデルテーブルに格納される。
サービスモデルは、サービスシステム内の各ノードの入力および出力を処理順に表現したデータ構造である。図7は、サービスモデルの例を模式的に示す説明図である。図7において、“Web”,“App”,“DB”という文字とともに示した矩形は、ノード(サーバ)を表している。そして、矩形(ノード)の左側に表した円は、そのノードへの入力を表し、矩形(ノード)の右側に表した円は、そのノードからの出力を表す。また、円内に示した黒い点は、リクエストを表している。図7に示すように、サービスモデルがノードの出力の分岐や集約を表現してもよい。ノードの出力の分岐や集約を表現することで、同時並列に行われる処理を表現することができる。
ハイブリッドモデルは、サービスモデルにリソースモデルを組み合わせたデータ構造である。まず、リソースモデルについて説明する。リソースモデルは、ノードに入力が生じたときにおける、そのノードの仮想リソースの未使用リソース量および使用中のリソース量を表現するデータ構造である。図8は、リソースモデルの例を模式的に示す説明図である。リソースモデルは、サービスモデル内のノードの入力および出力の組み合わせに対応している。サービスモデル内のノードへの入力を図8では、矩形21で表し、そのノードからの出力を矩形22で表している。矩形21の左側の円23は、そのノードに割り当てられているリソース量の内、未使用のリソース量を表している、矩形21の右側の円24は、そのノードに割り当てられているリソース量の内、使用中のリソース量を表している。また、リソースモデルは、そのノードにおける単位リソース消費量20も含む。リソースモデルの初期状態では、円23は、ノードに割り当てられているリソース量全体を表す。ノードのリソース消費のシミュレーション時に、リクエストの発生にあわせて、円23が示す未使用のリソース量、および円24が表す使用中のリソース量が更新される。また、シミュレーションにおいて、リクエスト発生後、そのノードの平均処理時間が経過するタイミングで、そのリクエストによって使用されていたリソース量が未使用状態に戻るように、円23が示す未使用のリソース量、および円24が表す使用中のリソース量が更新される。
図9は、ハイブリッドモデルの例を示す説明図である。本例では、図7に示すサービスモデル内のノードの入力および出力の組み合わせに対応する各リソースモデルが生成され、サービスモデルと組み合わされている。図9に示すリソースモデルの未使用のリソース量、使用中のリソース量は、シミュレーションの一時点における値を表している。ハイブリッドモデルを用いてノードのリソース消費のシミュレーションを実行することで、Webサーバ、Appサーバ、DBサーバ等のノード毎に、未使用リソース量や使用中のリソース量を再現することができ、仮想リソースの余剰量や不足量を求めることができる。
上記のようなサービスモデルおよびハイブリッドモデルが、サービス_モデルテーブル(図6参照)に格納される。
例えば、サービスモデルは、時間ペトリネット(TimePetriNet)で記述され、リソースモデルは、連続値ペトリネット(Continuous PetriNet)で記述される。ハイブリッドモデルは、それらを統合したハイブリッドペトリネット(HybridPetriNet)で記述される。
モニタリング部202は、サービス管理装置200に対応するサービスシステム100内の各ノードに割り当てられているリソース量、各ノードの単位リソース消費量を測定し、ノード_リソーステーブル(図3参照)に格納する。また、モニタリング部202は、各ノードの平均処理時間を測定し、ノード_リソーステーブルに格納する。さらに、モニタリング部202は、この処理を仮想リソースの種別毎に行う。また、モニタリング部202は、サービスシステム100が個々のリクエスト毎に生成したログを取得し、サービス_ログテーブルに格納する。
ハイブリッドモデル生成部203は、ノード_リソーステーブル(図3参照)のリソース割当量、リソース消費量、平均処理時間、および予めサービス_モデルテーブルに格納されているサービスモデル(図7参照)に基づいて、ノードの入力および出力の組み合わせに対応するリソースモデルをそれぞれ生成する。そして、ハイブリッドモデル生成部203は、各リソースモデルをサービスモデルと組み合わせてハイブリッドモデルを生成し、サービス_モデルテーブルに格納する。
ノード_リソース量推定部204は、ハイブリッドモデルシミュレータを備え、モニタリング部202がサービスシステム100から取得したログと、ハイブリッドモデルとを用いて、ノードのリソース消費のシミュレーションを実行する。そして、ノード_リソース量推定部204は、各ノードでのリソース消費状況を推測する。具体的には、ノード_リソース量推定部204は、各ノードにおける各仮想リソースの最小リソース残量および最大リソース不足量を求める。
サービス_リソース配分検証部205は、各ノードの最小リソース残量の和の絶対値と、各ノードの最大リソース不足量の和の絶対値との差を計算する。この差は、サービス管理装置200に対応するサービス(サービスシステム100が提供するサービス)に関する仮想リソースの余剰量または不足量に該当する。最小リソース残量の和の絶対値から最大リソース不足量の和の絶対値を減算した値が正であれば、余剰量に該当し、負であれば、不足量に該当する。サービス_リソース配分検証部205は、上記の計算を、仮想リソースの種別毎に行う。この差分は、図5に示すリソース過不足量として、サービス_リソース配分テーブルに格納される。
サービス_リソース配分検証部205は、計算した差分が仮想リソースの余剰量を表していれば、その余剰量分の仮想リソースをリソースプールに返却すると判断し、余剰量分の仮想リソースを返却することを、ハブ連携部207を介して、ハブ装置300に要求する。また、サービス_リソース配分検証部205は、計算した差分が仮想リソースの不足量を表していれば、その不足分の仮想リソースをリソースプールから追加すると判断し、その不足分の仮想リソースの追加の許可を、ハブ連携部207を介して、ハブ装置300に要求する。ハブ装置300から要求に対する応答があったときに、サービス_リソース配分検証部205は、仮想リソースの返却や追加を確定する。
リソース再配分部206は、最小リソース残量が正であるノードから、その最小リソース残量分の仮想リソースを回収すると判定する。また、リソース再配分部206は、仮想リソースの不足が生じているノードに対して、最大リソース不足量分の仮想リソースを追加すると判定する。仮想リソースの不足が生じているノードに対する仮想リソースの追加分は、新たに追加が許可された仮想リソースの割当量や、仮想リソースの余剰が生じているノードから回収予定のリソース量から配分されることになる。
ハブ連携部207は、余剰量分の仮想リソースを返却すること、および、不足分の仮想リソースの追加の許可を、サービス_リソース配分検証部205に従ってハブ装置300に要求する。
モニタリング部202、ハイブリッドモデル生成部203、ノード_リソース量推定部204、サービス_リソース配分検証部205、リソース再配分部206およびハブ連携部207は、例えば、サービス管理装置用プログラムに従って動作するコンピュータのCPUによって実現される。例えば、CPUが、サービス管理装置用プログラムを読み込み、そのプログラムに従って、モニタリング部202、ハイブリッドモデル生成部203、ノード_リソース量推定部204、サービス_リソース配分検証部205、リソース再配分部206およびハブ連携部207として動作してもよい。サービス管理装置用プログラムは、コンピュータが読み取り可能な記録媒体に記憶されていてもよい。また、これらの各要素がそれぞれ別々のハードウェアで実現されていてもよい。
ハブ装置300は、各サービス管理装置200,210からの要求を受け、一定時間毎にその各要求を参照して、サービス管理装置毎に、そのサービス管理装置に対応するサービスシステムに割り当てを許可する仮想リソースの割当量をサービス管理装置に通知する。従って、ハブ装置300は、個々のサービス管理装置から仮想リソースの割当量の変更要求を受けた時に、すぐに要求元のサービス管理装置に応答するわけではない。すなわち、各サービス管理装置200,210による要求と、ハブ装置300から各サービス管理装置200,210への割当量の通知は、非同期で行われる。
また、ハブ装置300は、各サービス管理装置200,210に対応する各サービスシステム100,110全体で仮想リソースの余剰や不足が生じている場合には、その余剰量や不足量に応じて、各サービスシステム100,110全体に対する仮想リソースの割当量の変更をリソースプール管理装置に要求する。
ハブ装置300として、正常系のハブ装置と、待機系のハブ装置が設けられている。この場合、正常系のハブ装置と、待機系のハブ装置にそれぞれ、ハブ装置のID(以下、ハブIDと記す。)を定めておく。また、通常は、正常系のハブ装置が動作し、正常系のハブ装置に異常が生じたときに、正常系のハブ装置に代わって、待機系のハブ装置が動作する。正常系のハブ装置および待機系のハブ装置の構成は共通である。図1では、正常系のハブ装置300のみを図示している。
なお、ハブ装置300を冗長化せずに、1台のハブ装置300のみを備える構成であってもよい。その場合、ハブ装置300にハブIDを定めておかなくてもよい。
ハブ装置300は、ハブ情報記憶装置301と、サービス連携部302と、ハブ_リソース配分検証部303と、ハブ_リソース再配分部304と、プール連携部305とを備える。
ハブ情報記憶装置301は、ハブ_サービス_リソース配分テーブルおよびハブ_リソース配分テーブルを記憶する。
図10は、ハブ_サービス_リソース配分テーブルの例を示す説明図である。ハブ_サービス_リソース配分テーブルには、サービスIDとリソース型の組み合わせ毎に、サービスID、ハブID、リソース量、リソース過不足量およびリソース型が対応付けて格納される。前述のように、サービス管理装置とサービスシステムとは一対一に対応し、サービスシステムはそれぞれ異なるサービス提供処理を実行する。従って、サービスIDは、サービス管理装置を識別するための情報として用いることができる。ハブIDは、ハブ装置300自身のIDである。ハブ装置300を冗長化せずに、1台のハブ装置300のみを備える構成とする場合には、ハブIDの格納は省略してよい。リソース量は、サービスIDに対応するサービスシステム全体に割り当てられている仮想リソースの割当量である。例えば、図10に示す1行目は、サービスID“sv1”に対応するサービス管理装置200には、サービスシステム100全体に割り当てるための割当量として仮想CPUのリソース量“15”が定められていて、サービス管理装置200からリソース過不足量が“−2”(すなわち、2仮想CPUcore分不足している)という通知があったことを表している。ハブ_サービス_リソース配分テーブルにおいて、“リソース量”が更新された場合、その“リソース量”に対応する“リソース過不足量”は消去される。
図11は、ハブ_リソース配分テーブルの例を示す説明図である。ハブ_リソース配分テーブルには、仮想リソースの種別(リソース型)毎に、ハブIDと、全てのサービス管理装置200,210に対応する全てのサービスシステム100,110全体に対して現在割り当てられている仮想リソースの割当量(図11に示すハブ_リソース量)と、その全てのサービスシステム100,110全体でのリソース過不足量(図11に示すハブ_リソース過不足量)と、リソース型とが格納される。“ハブ_リソース量”が更新された場合、その“ハブ_リソース量”に対応する“ハブ_リソース過不足量”は消去される。
サービス連携部302は、ハブ連携部207から、余剰量分の仮想リソースの返却の要求や、不足分の仮想リソースの追加の要求を受け付け、その余剰量や不足量を、“リソース過不足量”として、ハブ_サービス_リソース配分テーブル(図10参照)に格納する。また、サービス管理装置に対応するサービスシステムへの割当を許可する仮想リソースの割当量が変更された場合、サービス連携部302は、変更後の割当量をそのサービス管理装置に通知する。
ハブ_リソース配分検証部303は、一定時間毎に、サービスシステム毎のリソース過不足量をハブ_サービス_リソース配分テーブル(図10参照)から読み出す。そして、ハブ_リソース配分検証部303は、リソース種別毎に、リソース過不足量の和を算出すし、その算出結果を、ハブ_リソース過不足量として、ハブ_リソース配分テーブル(図11参照)に格納する。ハブ_リソース過不足量(リソース種別毎のリソース過不足量の和)が正であれば、仮想リソースの余剰量を表している。ハブ_リソース過不足量が負であれば、仮想リソースの不足量を表している。
ハブ_リソース配分検証部303は、ハブ_リソース過不足量が仮想リソースの余剰量を表していれば、その余剰量分の仮想リソースを、サービスシステム全体からリソースプールに返却すると判断し、その余剰量分の仮想リソースを返却することを、プール連携部305を介して、リソースプール管理装置400,410に要求する。また、ハブ_リソース配分検証部303は、ハブ_リソース過不足量が仮想リソースの不足量を表していれば、サービスシステム全体に割り当てる仮想リソースの割当量にその不足分を追加すると判断し、その不足分の仮想リソースの追加の許可を、プール連携部305を介して、リソースプール管理装置400,410に要求する。リソースプール管理装置400,410から要求に対する応答があったときに、ハブ_リソース配分検証部303は、仮想リソースの返却や追加を確定する。
ハブ_リソース再配分部304は、サービスシステム毎に、仮想リソースの余剰量分の仮想リソースを回収すると判定したり、不足分の仮想リソースを追加すると判定したりする。仮想リソースの不足が生じているサービスシステムに対する仮想リソースの追加分は、新たに追加が許可された仮想リソースの割当量や、仮想リソースの余剰が生じているサービスシステムから回収予定のリソース量から配分される。
プール連携部305は、余剰量分の仮想リソースを返却すること、および、不足分の仮想リソースの追加の許可を、ハブ_リソース配分検証部303に従ってリソースプール管理装置400,410に要求する。
サービス連携部302、ハブ_リソース配分検証部303、ハブ_リソース再配分部304およびプール連携部305は、例えば、ハブ装置用プログラムに従って動作するコンピュータのCPUによって実現される。例えば、CPUが、ハブ装置用プログラムを読み込み、そのプログラムに従って、サービス連携部302、ハブ_リソース配分検証部303、ハブ_リソース再配分部304およびプール連携部305として動作してもよい。ハブ装置用プログラムは、コンピュータが読み取り可能な記録媒体に記憶されていてもよい。また、これらの各要素がそれぞれ別々のハードウェアで実現されていてもよい。
リソースプール管理装置400,410は、ハブ装置300からの要求に応じて、各サービスシステム全体に対して割当を許可する仮想リソースの割当量を、ハブ装置300に通知する。
リソースプール管理装置は、仮想リソースの種別毎に設けられる。例えば、割当量を制御する仮想リソースが仮想CPUと仮想RAMであるとする。この場合、仮想CPUに対応するリソースプール管理装置と、仮想RAMに対応するリソースプール管理装置がそれぞれ設けられる。本実施形態では、リソースプール管理装置400が、仮想CPUに対応していて、リソースプール管理装置410が、仮想RAMに対応している場合を例にして説明する。以下では、リソースプール管理装置が2台である場合を例にして説明するが、リソースプール管理装置は2台とは限らず、仮想リソースの種別の数によって定まる。
以下、リソースプール管理装置400を例にして説明するが、各リソースプール管理装置400,410の構成は同様である。
リソースプール管理装置400は、プール情報記憶装置401と、ハブ連携部402と、割当変更部403とを備える。
プール情報記憶装置401は、プール_ハブ_リソース配分テーブルおよびプール_リソース容量テーブルを記憶する。
図12は、プール_ハブ_リソース配分テーブルの例を示す説明図である。プール_ハブ_リソース配分テーブルには、通信相手となるハブ装置300のハブID、リソースプール管理装置400自身のID(プールID)、ハブ_リソース量、ハブ_リソース過不足量、リソース型が対応付けて格納される。リソースプール管理装置400は、仮想CPUに対応するので、リソース型として“CPU”が格納されている(図12参照)。前述のように、ハブ_リソース量は、全てのサービスシステム100,110全体に対して現在割り当てられている仮想リソースの割当量である。本例では、この仮想リソースは、仮想CPUである。また、ハブ_リソース過不足量は、全てのサービスシステム100,110全体でのリソース過不足量である。
図13は、プール_リソース容量テーブルの例を示す説明図である。プール_リソース容量テーブルには、プールID、プール_割当容量、プール_リソース容量、リソース型、リソース単位が対応付けて格納される。リソースプール管理装置400は、仮想CPUに対応するので、リソース型として“CPU”が格納されている(図13参照)。プール_割当容量は、全てのサービスシステム100,110全体に対して現在割り当てられている仮想リソースの割当量である。プール_リソース容量は、全てのサービスシステム100,110全体に対して割当可能な仮想リソースの割当量の最大値である。リソース単位は、仮想リソースの返却や追加をする際の単位を表す。図13に示す例では、仮想CPUcore単位で仮想CPUの返却や追加を行う場合を示している。
図12および図13では、仮想CPUに対応するリソースプール管理装置400に記憶されるプール_ハブ_リソース配分テーブルおよびプール_リソース容量テーブルの例を示した。図14は、仮想RAMに対応するリソースプール管理装置410のプール情報記憶装置401に記憶されるプール_ハブ_リソース配分テーブルの例を示す。また、図15は、仮想RAMに対応するリソースプール管理装置410のプール情報記憶装置401に記憶されるプール_リソース容量テーブルの例を示す。図15に示す例では、1GB単位で、仮想RAMの返却や追加を行う場合を示している。
ハブ連携部402は、プール連携部305から、余剰量分の仮想リソースの返却の要求や、不足分の仮想リソースの追加の要求を受け付け、その余剰量や不足量を、“ハブ_リソース過不足量”として、プール_ハブ_リソース配分テーブル(図12参照)に格納する。また、各サービスシステム全体に対して割当を許可する仮想リソースの割当量が変更された場合、ハブ連携部402は、変更後の割当量をサービス管理装置に通知する。
割当変更部403は、一定時間毎に、ハブ_リソース過不足量(図12参照)を確認し、そのハブ_リソース過不足量に応じて、各サービスシステム全体に対して割当を許可する仮想リソースの割当量を変更する。従って、ハブ装置300による要求と、リソースプール管理装置からハブ装置300への割当量の通知は、非同期で行われる。
ハブ連携部402および割当変更部403は、例えば、リソースプール管理装置用プログラムに従って動作するコンピュータのCPUによって実現される。例えば、CPUが、リソースプール管理装置用プログラムを読み込み、そのプログラムに従って、ハブ連携部402および割当変更部403として動作してもよい。リソースプール管理装置用プログラムは、コンピュータが読み取り可能な記録媒体に記憶されていてもよい。
次に、本発明の処理経過について説明する。
図16は、サービス管理装置の処理経過の例を示すフローチャートである。ここでは、サービス管理装置200を例にして説明するが、他のサービス管理装置210に関しても同様である。
まず、モニタリング部202は、サービス管理装置200に対応するサービスシステム100内の各ノードに割り当てられているリソース量、各ノードの単位リソース消費量を測定する。モニタリング部202は、その測定結果をそれぞれ、ノード_リソーステーブル(図3参照)に、リソース割当量、リソース消費量として格納する。モニタリング部202は、この処理を、仮想CPU、仮想RAM等の仮想リソースの種別毎に行う。また、モニタリング部202は、サービスシステム100内の各ノードの平均処理時間も測定して、ノード_リソーステーブルに格納する。さらに、モニタリング部202は、サービスシステム100からログを取得し、サービスログテーブル(図4参照)に格納する(ステップA1)。
次に、ハイブリッドモデル生成部203は、ノード_リソーステーブルのリソース割当量、リソース消費量、平均処理時間(すなわち、ステップA1で測定された各ノードのリソース割当量、単位リソース消費量、平均処理時間)と、予めサービス_モデルテーブルに格納されているサービスモデル(図7参照)とに基づいて、ハイブリッドモデルを生成し、サービス_モデルテーブルに格納する(ステップA2)。
ハイブリッドモデル生成部203は、ノード毎に、着目しているノードの入力および出力の組み合わせに関して、リソースモデル(図8参照)を生成する。ハイブリッドモデル生成部203は、着目しているノードにおける各仮想リソースの単位リソース消費量を、リソースモデル内において単位リソース消費量20(図8参照)として定める。また、着目しているノードにおける各仮想リソースの割当量を、未使用リソース量の初期値として定め、各仮想リソースの使用中のリソース量の初期値を0と定める。また、着目しているノードの平均処理時間を、リクエスト発生後の処理時間として定める。
このようにハイブリッドモデル生成部203は、ノード毎に、リソースモデルを生成し、各リソースモデルと、サービスモデルにおけるノードの入力および出力とを対応付けることによって、ハイブリッドモデル(図9参照)を生成する。
ハイブリッドモデルを用いることで、サービスシステムの振る舞いと仮想リソースの消費状況を一元的に再現することができる。その結果、いつ、どのノードで、仮想リソースがどれだけ足りなかったか、あるいは、どれだけ余っていたかを再現することができる。この仮想リソースの不足量や余剰量が、仮想リソースの再配分の手掛かりとして利用される。
ノード_リソース量推定部204は、サービス_ログテーブル(図4参照)が示す各リクエストが、タイムスタンプによって示される時刻に生じるものとして、各ノードでの未使用のリソース量および使用中のリソース量の変化をシミュレートすることによって、リソース消費状況を推定する(ステップA3)。そして、ステップA3で、ノード_リソース量推定部204は、最小リソース残量および最大リソース不足量を、それぞれのノードで、それぞれの仮想リソースの種別毎に求める。
ステップA3において、ノード_リソース量推定部204は、1つのリクエストが生じると、最初のノードにおける各仮想リソースの未使用リソース量を、単位リソース消費量分だけ減少させる。このとき、ノード_リソース量推定部204は、そのノードにおける各仮想リソースの使用中のリソース量を、単位リソース消費量分だけ増加させる。ノード_リソース量推定部204は、リクエストが生じる毎に、同様の処理を行う。また、ノード_リソース量推定部204は、1つのリクエストが生じた時刻から、そのノードの平均処理時間が経過した時刻において、各仮想リソースの使用中のリソース量を、単位リソース消費量分だけ減少させ、各仮想リソースの未使用リソース量を、単位リソース消費量分だけ増加させる。すなわち、使用中と判定していた仮想リソースを未使用の状態に戻す。
このように、ノード_リソース量推定部204は、ハイブリッドモデル内のリソースモデルにおける未使用リソース量および使用中のリソース量を変化させる。これらのリソース量の値は、図8に示す円23,24において適宜更新される(図9参照)。
リクエストが生じた時刻から平均処理時間が経過する時刻までの間に、さらにリクエストが発生している状態では、各仮想リソースの未使用リソース量は、さらに減少していく。このとき、新たに1つのリクエストが発生した時刻において、未使用リソース量が、単位リソース消費量よりも少ない場合、ノード_リソース量推定部204は、そのシミュレーションにおいて、そのリクエストの処理を待機させる。すなわち、ノード_リソース量推定部204は、未使用リソース量および使用中のリソース量を更新せず、以前に生じたリクエストに対する処理時間が経過して、未使用リソース量が増加する時刻まで、新たに発生したリクエストの処理を待機させる。リクエストの待ち数(待機中のリクエストの数)は、1つとは限らず、2つ以上になる場合もある。未使用リソース量が増加し、未使用リソース量が、単位リソース消費量よりも多くなった時刻に、待機中のリクエストに応じた処理を開始するものとして、ノード_リソース量推定部204は、再度、未使用リソース量および使用中のリソース量を更新する。
なお、仮想リソースの種別が複数存在する場合、少なくとも1つの種別の仮想リソースの未使用リソース量が単位リソース消費量よりも少ない場合、新たに発生したリクエストは待ち状態とする。そして、全ての種別の仮想リソースの未使用リソース量がそれぞれ単位リソース消費量以上であることを条件に、リクエストに応じた処理が開始されるものとして、ノード_リソース量推定部204は、シミュレーションを実行する。
1つのノードでの処理が終了したならば、次のノードが処理を開始するものとして、ノード_リソース量推定部204は、他のノードにおいても、同様に、未使用リソース量および使用中のリソース量を更新する。
ノード_リソース量推定部204は、上記のシミュレーションにおいて、各ノードの各仮想リソースの変化を監視し、各ノードの各仮想リソースについて、それぞれ、最小リソース残量および最大リソース不足量を特定し、ノード_リソーステーブル(図3参照)に格納する。ノード_リソース量推定部204は、着目しているノードにおけるリクエストの待ち数の最大値と単位リソース消費量との積を、そのノードでの最大リソース不足量として算出すればよい。
ただし、ノード_リソーステーブルに格納する際、ノード_リソース量推定部204は、最小リソース残量の小数点以下を切り捨て、最大リソース不足量の小数点以下を切り上げる。また、本実施形態では、仮想リソースの返却や追加をする際の単位量(以下、単位量と記す。)が“1”で表される場合を例にする。例えば、仮想CPUの単位量は“1仮想CPUcore”であり、仮想RAMの単位量が“1GB”である場合を例にする。よって、上記のように切り捨てや切り上げによって、最小リソース残量および最大リソース不足量を整数に揃えることで、最小リソース残量および最大リソース不足量は単位量の整数倍になる。
サービス_リソース配分検証部205は、仮想リソースの種別毎に、各ノードの最小リソース残量の和の絶対値から、各ノードの最大リソース不足量の和の絶対値を減算した結果を、リソース過不足量として計算し、サービス_リソース配分テーブル(図5参照)に格納する(ステップA4)。
なお、ステップA4以降の処理は、リソース型毎(仮想リソースの種別毎)に行われる。例えば、サービス管理装置200は、仮想CPUに関してステップA4以降の処理を行うとともに、仮想RAMに関してもステップA4以降の処理を行う。仮想リソースの種別が他にもあれば、その種別に関しても、ステップA4以降の処理を行う。
ステップA4の後、サービス_リソース配分検証部205は、着目しているリソース型について算出されたリソース過不足量と単位量とを比較する(ステップA5)。以下、単位量分の余剰リソース量を“1”と表す。また、単位量分の不足リソース量を“−1”と表す。
リソース過不足量が1以上である場合、サービス_リソース配分検証部205は、そのリソース過不足量(この場合、余剰リソース量)をリソースプールに返却すると判断し、余剰量分の仮想リソースを返却することを、ハブ連携部207を介して、ハブ装置300に要求する。このとき、サービス_リソース配分検証部205は、ハブ連携部207を介して、リソース過不足量をハブ装置300に送信する。そして、サービス_リソース配分検証部205は、余剰量分のリソース量を削減した新たなリソース割当量(サービスシステム100のノード全体に対するリソース割当量)をハブ装置300から通知されたときに、仮想リソースの返却を確定する(ステップA6)。具体的には、サービス_リソース配分検証部205は、ハブ装置300から通知された新たなリソース割当量を、サービス_リソース配分テーブルに格納し、サービス_リソース配分テーブルからリソース過不足量を消去する。ステップA6の後、ステップA8に移行する。
リソース過不足量が−1以下である場合、サービス_リソース配分検証部205は、そのリソース過不足量(この場合、リソースの不足量)分の仮想リソースを追加すると判断し、その不足量の追加の許可をハブ連携部207を介して、ハブ装置300に要求する。このとき、サービス_リソース配分検証部205は、ハブ連携部207を介して、リソース過不足量をハブ装置300に送信する。そして、サービス_リソース配分検証部205は、不足量分のリソース量を増加させた新たなリソース割当量(サービスシステム100のノード全体に対するリソース割当量)をハブ装置300から通知されたときに、仮想リソースの追加を確定する(ステップA7)。具体的には、サービス_リソース配分検証部205は、ハブ装置300から通知された新たなリソース割当量を、サービス_リソース配分テーブルに格納し、サービス_リソース配分テーブルからリソース過不足量を消去する。ステップA7の後、ステップA8に移行する。
ただし、各サービス管理装置200,210からハブ装置300への要求と、ハブ装置300からの応答は、非同期に行われる。従って、ステップA6,A7において、サービス管理装置がハブ装置300に要求を行ってから、ハブ装置300から応答があるまでの期間は、一律ではない。
また、リソース過不足量が−1より大きく、1未満である場合、ステップA5の後、ステップA8に移行する。
ステップA8において、リソース再配分部206は、最小リソース残量が正となっているノードから、その最小リソース残量分の仮想リソースを回収することを決定する。具体的には、リソース再配分部206は、ノード_リソーステーブル(図3参照)において、最小リソース残量が正となっているノードのリソース割当量から、その最小リソース残量を減算することによって、リソース割当量を更新する。また、リソース再配分部206は、最大リソース不足量が負となっているノードに対して、その最大リソース不足量分の仮想リソースを追加することを決定する。具体的には、リソース再配分部206は、ノード_リソーステーブル(図3参照)において、最大リソース不足量が負となっているノードのリソース割当量に、その最大リソース不足量に相当するリソース量を追加することによって、リソース割当量を更新する。また、リソース再配分部206は、リソース割当量を更新したノードの最小リソース残量および最大リソース不足量を消去する。
ステップA8の後、サービスシステム100のオペレータが、ノード_リソーステーブルにおける更新後のリソース割当量を参照し、そのリソース割当量に合わせて、サービスシステム100内の各ノードの仮想リソースの配分を物理的に更新する。また、ノード_リソーステーブルにおける更新後のリソース割当量に合わせて、自動的に、サービスシステム100内の各ノードの仮想リソースの割当を物理的に更新する手段が、各サービス管理装置200,210に設けられていてもよい。
図17は、ハブ装置300の処理経過の例を示すフローチャートである。ハブ装置300のサービス連携部302は、各サービス管理装置200,210から余剰量分の仮想リソースの返却の要求(図16に示すステップA6)や、不足量分の仮想リソースの追加許可の要求(図16に示すステップA7)の要求を受けるときに、リソース過不足量の情報も受信する。このとき、サービス連携部302は、要求元のサービス管理装置に対応するサービスIDおよび、返却や追加の要求のあったリソース型に対応するリソース過不足量として、受信したリソース過不足量をハブ_サービス_リソース配分テーブル(図10参照)に格納する。
ハブ装置300は、以下に示すステップB1〜B5の処理を、リソース型毎に行う。
ハブ_リソース配分検証部303は、一定時間毎にハブ_サービス_リソース配分テーブルを読み出し、読み出したリソース過不足量の和を計算する。そして、ハブ_リソース配分検証部303は、その計算結果を、着目しているリソース型におけるハブ_リソース過不足量として、ハブ_リソース配分テーブル(図11参照)に格納する(ステップB1)。
ステップB1の後、ハブ_リソース配分検証部303は、ステップB1で計算したハブ_リソース過不足量と、着目しているリソース型の単位量とを比較する(ステップB2)。前述のように、単位量分の余剰リソース量を“1”と表す。また、単位量分の不足リソース量を“−1”と表す。
ハブ_リソース過不足量が1以上である場合、ハブ_リソース配分検証部303は、そのハブ_リソース過不足量(この場合、余剰リソース量)をリソースプールに返却すると判断し、余剰量分の仮想リソースを返却することを、プール連携部305を介して、着目しているリソース型に対応するリソースプール管理装置に要求する。ここでは、着目しているリソース型が仮想CPUであり、リソースプール管理装置400に対して要求を行う場合を例にして説明する。また、ハブ_リソース配分検証部303は、この要求を行うときに、ハブ_リソース過不足量もリソースプール管理装置400に送信する。そして、ハブ_リソース配分検証部303は、余剰量分を削減した新たなリソース割当量(各サービスシステム100,110全体に対するリソース割当量)をリソースプール管理装置400から通知されたときに、仮想リソースの返却を確定する(ステップB3)。具体的には、ハブ_リソース配分検証部303は、リソースプール管理装置400から通知された新たなリソース割当量をハブ_リソース量として、ハブ_リソース配分テーブル(図11参照)に格納し、ハブ_リソース配分テーブルからハブ_リソース過不足量を消去する。ステップB3の後、ステップB5に移行する。
ハブ_リソース過不足量が−1以下である場合、ハブ_リソース配分検証部303は、そのハブ_リソース過不足量(この場合、リソースの不足量)分の仮想リソースを追加すると判断し、その不足量の追加の許可を、プール連携部305を介して、着目しているリソース型に対応するリソースプール管理装置400に要求する。また、ハブ_リソース配分検証部303は、この要求を行うときに、ハブ_リソース過不足量もリソースプール管理装置400に送信する。そして、ハブ_リソース配分検証部303は、不足量分のリソース量を増加させた新たなリソース割当量(各サービスシステム100,110全体に対するリソース割当量)をリソースプール管理装置400から通知されたときに、仮想リソースの追加を確定する(ステップB4)。具体的には、ハブ_リソース配分検証部303は、リソースプール管理装置400から通知された新たなリソース割当量をハブ_リソース量として、ハブ_リソース配分テーブルに格納し、ハブ_リソース配分テーブルからハブ_リソース過不足量を消去する。ステップB4の後、ステップB5に移行する。
ただし、ハブ装置300からリソースプール管理装置400への要求と、リソースプール管理装置400からの応答は、非同期に行われる。従って、ステップB3,B4において、ハブ装置300がリソースプール管理装置400に要求を行ってから、リソースプール管理装置400から応答があるまでの期間は、一律ではない。このことは、ハブ装置300が他のリソースプール管理装置410に要求を行う場合においても同様である。
また、ハブ_リソース過不足量が−1より大きく、1未満である場合、ステップB2の後、ステップB5に移行する。
ステップB5において、ハブ_リソース再配分部304は、ハブ_サービス_リソース配分テーブルにおいて、着目している仮想リソースのリソース過不足量が正となっているサービスシステムから、そのリソース過不足量(この場合、余剰リソース量)分の仮想リソースを回収することを決定する。具体的には、ハブ_リソース再配分部304は、ハブ_サービス_リソース配分テーブル(図10参照)において、着目している仮想リソースの“リソース量”から、正の値のリソース過不足量(余剰リソース量)を減算することによって、“リソース量”を更新する。また、ハブ_リソース再配分部304は、ハブ_サービス_リソース配分テーブルにおいて、着目している仮想リソースのリソース過不足量が負となっているサービスシステムに対して、そのリソース過不足量(この場合、不足量)分の仮想リソースを追加することを決定する。具体的には、ハブ_リソース再配分部304は、ハブ_サービス_リソース配分テーブルにおいて、着目している仮想リソースの“リソース量”に、不足量に相当するリソース量を追加することによって、“リソース量”を更新する。また、ハブ_リソース再配分部304は、ハブ_サービス_リソース配分テーブルにおいて、“リソース量”を更新した行におけるリソース過不足量を消去する。
そして、ステップB5において、ハブ_リソース再配分部304は、サービス連携部302を介して、更新後の“リソース量”を、その“リソース量”に対応するサービスIDによって特定されるサービス管理装置200に送信する。
図18は、リソースプール管理装置の処理経過の例を示すフローチャートである。ここでは、リソースプール管理装置400を例にして説明するが、他のリソースプール管理装置410の処理経過も同様である。
リソースプール管理装置400のハブ連携部402は、ハブ装置300から余剰量分の仮想リソースの返却の要求(図17に示すステップB3)や、不足量分の仮想リソースの追加許可の要求(図17に示すステップB4)の要求を受けるときに、ハブ_リソース過不足量の情報も受信する。このとき、ハブ連携部402は、受信したハブ_リソース過不足量をプール_ハブ_リソース配分テーブル(図12参照)に格納する(ステップC1)。
割当変更部403は、一定時間毎に、プール_ハブ_リソース配分テーブル内のハブ_リソース過不足量を確認し、そのハブ_リソース過不足量が0以上であるか否かを判定する(ステップC2)。
ハブ_リソース過不足量が0以上であるということは、各サービスシステム100,110全体において、リソースプール管理装置400に対応する仮想リソース(本例では、仮想CPU)に余剰が生じていることを意味する。この場合、割当変更部403は、そのハブ_リソース過不足量(ここでは、余剰リソース量)分のリソース量を、リソースプールに返却することを認めることを決定する(ステップC3)。
ハブ_リソース過不足量が0未満であるということは、各サービスシステム100,110全体において、リソースプール管理装置400に対応する仮想リソースの不足が生じていることを意味する。この場合、割当変更部403は、そのハブ_リソース過不足量(ここでは、不足量)分のリソース量を、各サービスシステム100,110全体に対して新たに追加することを決定する(ステップC4)。
ステップC3またはステップC4の後、割当変更部403は、ステップC3またはステップC4での決定に応じて、プール_ハブ_リソース配分テーブルおよびプール_リソース容量テーブルを更新する(ステップC5)。
具体的には、ステップC3からステップC5に移行した場合、割当変更部403は、プール_ハブ_リソース配分テーブル内のハブ_リソース量(図12参照)から、ハブ_リソース過不足量(ここでは、余剰リソース量)分のリソース量を減算することによって、ハブ_リソース量を更新する。このとき、割当変更部403は、プール_ハブ_リソース配分テーブル内のハブ_リソース過不足量を消去する。さらに、割当変更部403は、更新後のハブ_リソース量と同じ値で、プール_リソース容量テーブルのプール_割当容量を更新する。
また、ステップC4からステップC5に移行した場合、割当変更部403は、プール_ハブ_リソース配分テーブル内のハブ_リソース量(図12参照)に、ハブ_リソース過不足量(ここでは、不足量)分のリソース量を加算することによって、ハブ_リソース量を更新する。このとき、割当変更部403は、プール_ハブ_リソース配分テーブル内のハブ_リソース過不足量を消去する。さらに、割当変更部403は、更新後のハブ_リソース量と同じ値で、プール_リソース容量テーブルのプール_割当容量を更新する。
プール_ハブ_リソース配分テーブル内のハブ_リソース量(図12参照)、および、プール_リソース容量テーブルのプール_割当容量(図13参照)は、いずれも、各サービスシステム100,110全体に対して割当を許可する仮想リソースの割当量である。
そして、ステップC5において、割当変更部403は、ハブ連携部402を介して、プール_ハブ_リソース配分テーブル内の更新後のハブ_リソース量を、ハブ装置300に送信する。
本発明によれば、ノード_リソース量推定部204が、ハイブリッドモデルを用いて、サービスシステム内のノード毎に、最小リソース残量や最大リソース不足量を特定する。そして、サービス_リソース配分検証部205がリソース過不足量を計算する。従って、1つのサービスシステム全体での仮想リソースの余剰量や不足量を把握することができる。
そして、ハブ装置300は、1つのサービスシステム全体での仮想リソースの余剰量や不足量を受信するとともに、余剰量分のリソースの返却要求や、不足量のリソースの追加要求をサービス管理装置200,210から受け付ける。このとき、ハブ装置300は、1つのサービス管理装置からの要求に対して、同期して応答を行わない。ハブ装置300は、個々のサービス管理装置200,210から要求を受けつつも、個々のサービス管理装置200,210とは同期せずに、一定時間毎に、各サービスシステム100,110全体での仮想リソースの余剰量や不足量を把握し、個々のサービス管理装置に対して、新たな仮想リソースの割当量を通知する。従って、個々のサービスシステムに対する仮想リソースの割当量を適切に定めることができる。
また、各サービスシステム100,110全体に対する仮想リソースの割当量を最小化しつつ、個々のサービスシステムに対する仮想リソースの割当量を決定することができる。
また、本発明では、ハブ装置300を設け、上記のように、サービス管理装置200,210からハブ装置300への要求と、その要求に対するハブ装置300の応答は非同期で行われる。従って、新たにサービスシステムを追加する場合には、新たにサービス管理装置を追加し、ハブ装置300は、そのサービス管理装置に対しても、他のサービス管理装置200,210に対する動作と同様の動作を行えばよい。また、既存のサービスシステムが廃止された場合には、ハブ装置300は、そのサービスシステムに対応するサービス管理装置に対する動作を停止すればよい。従って、サービスシステムの追加や削除が生じる環境において、個々のサービスシステムに対する仮想リソースの割当量を適切に定めることができる。
また、サービスシステムの追加や削除が生じても、仮想リソース制御システムとしての改修量を少なく抑えることができる。
また、ハブ装置300を設けていることによって、割当量の決定対象となる仮想リソースの種別が増加したり減少したりした場合であっても、仮想リソース制御システムとしての改修量を少なく抑えることができる。例えば、新たにストレージの割当量も決定する場合には、ストレージに対応するリソースプール管理装置を新たに設け、ハブ装置300は、そのリソースプール管理装置に対しても、他のリソースプール管理装置400,410に対する動作と同様の動作を行えばよい。また、割当量の決定対象となる仮想リソースの種別を削減する場合には、ハブ装置300は、その仮想リソースに対応するリソースプール管理装置に対する動作を停止すればよい。
仮に、ハブ装置300を設けずに、m台のサービス管理装置とn台のリソースプール管理装置が直接連携を行って、各リソースプール管理装置が個々のサービス管理装置に対して仮想リソースの割当量を通知する場合、リソース割当量の制御環境をm*n種類用意しなければならない。また、この場合、サービス管理装置を増減させたり、リソースプール管理装置を増減させたりする場合のシステム全体の改修量は多くなる。
これに対して、本発明では、上記のように、サービスシステムの追加や削除、あるいは、割当量の決定対象となる仮想リソースの種別の追加や削除が生じたとしても、仮想リソース制御システムとしての改修量を抑えることができる。
以下、具体例を用いて、本発明の動作について説明する。図2に例示するように、ロードバランサ、ファイアウォール、Webサーバ、Appサーバ、DBサーバ等のノードをコンポーネントとするWebサーバシステムが、サービスシステムとして稼働しているとする。このようなサービスシステムのサービスモデルとして、例えば、図7に示すサービスモデルがサービス管理装置200に予め保持されているとする。また、以下に示す具体例では、仮想CPUおよび仮想RAMの2種類の仮想リソースを、割当量の決定対象とするものとする。
以下に示す例では、図1に示すサービスシステム100,110以外のサービスシステムも存在し、そのサービスシステムに対応するサービス管理装置が設けられているものとする。
まず、サービス管理装置200を例にして、サービス管理装置の動作の具体例を示す。サービス管理装置200のモニタリング部202は、サービスシステム100内のノードを対象にして、各ノードのリソース割当量、各ノードの単位リソース消費量、および各ノードの平均処理時間を測定し、図3に示すように、ノード_リソーステーブルに格納する。仮想CPUのリソース消費量の単位は、仮想CPUcore数であり、仮想RAMのリソース消費量の単位は、ギガバイトであり、平均処理時間の単位は秒(sec)であるとする。図3に示す例では、ノード“sv1_n1”の仮想CPUのリソース割当量、および仮想RAMのリソース割当量は、それぞれ、“2仮想CPUcore”、“1GB”である。また、そのノード“sv1_n1”の仮想CPUの単位リソース消費量、および仮想RAMの単位リソース消費量は、ぞれぞれ、“0.5仮想CPUcore”、“0.2GB”である。また、そのノード“sv1_n1”の平均処理時間は2secである。ハイブリッドモデル生成部203は、図3に例示するノード_リソーステーブルに格納されたリソース割当量、単位リソース消費量、平均処理時間と、サービスモデル(図7参照)とを用いて、図9に例示するハイブリッドモデルを生成する。
ノード_リソース量推定部204は、サービス_ログテーブル(図4参照)の各リクエストをハイブリッドモデルへの入力とすることで、サービスシステムの振る舞いおよびリソース消費状況をシミュレートする。図9に例示したハイブリッドモデルにおける未使用のリソース量、使用中のリソース量は、シミュレーションの一時点における値を表している。図9では、例えば、Webサーバにおいて、2つのリクエストを処理中であり、仮想CPUおよび仮想RAMをそれぞれ、“1仮想CPUcore”、“0.4GB”だけ使用中である状態を表している。
ノード_リソース量推定部204は、シミュレーションにおいて、新たなリクエストの発生時刻に、未使用のリソース量が単位リソース消費量未満であれば、未使用のリソース量が単位リソース消費量となるまで、そのリクエストを待ち状態として、リクエストの待ち数を1増加させる。なお、シミュレーション開始時において、各ノードのリクエストの待ち数の初期値は0である。ノード_リソース量推定部204は、ノード毎に、シミュレーション中のリクエストの待ち数の最大値と単位リソース消費量との積を計算し、その値を最大リソース不足量とする。
また、ノード_リソース量推定部204は、シミュレーション中における各ノードの未使用のリソース量の最小値も計測し、その各計測値を、各ノードの最小リソース残量とする。
ノード_リソース量推定部204は、シミュレーションによって得た各ノードの最大リソース不足量および最小リソース残量をノード_リソーステーブルに格納する。図3に示すノード_リソーステーブルに各ノードの最大リソース不足量および最小リソース残量を追加した状態の例を図19に示す。
図19に示す例において、ノード“sv1_n1”に着目すると、最大リソース不足量が−1であり、単位リソース消費量が0.5であるので、リクエストの待ち数の最大値は、1/0.5=2である。また、リソース割当量2を使い切るときのリクエスト数は2/0.5=4である。従って、4つのリクエストが発生してリソース割当量2を使い切った状態で、さらにリクエストが2つ発生していたことになる。このとき、仮想RAMの不足量は、0.4GBとなるが、小数点以下は切り上げられるため、仮想RAMの最大リソース不足量は、−1として格納されている。
また、図19に示す例において、ノード“sv1_n2”に着目すると、最小リソース残量が1となっている。このことは、同時に処理されるリクエストの最大数が4であり、リソース割当量4のうち、最大で0.75*4=3が使用された結果、最小リソース残量が1になったことを意味する。
サービス_リソース配分検証部205は、図19に例示する各ノードの最小リソース残量の和の絶対値から、各ノードの最大リソース不足量の和の絶対値を減算した値(リソース過不足量)を、リソース型毎に算出する。サービス_リソース配分検証部205は、リソース型毎のリソース過不足量を、図5に例示するようにサービス_リソース配分テーブルに格納する。
図5に示す例では、サービスシステム100の各ノード全体として、仮想CPUが2仮想CPUcore分不足し、仮想RAMが4GB余っていることを表している。サービス_リソース配分検証部205は、仮想CPUに関し、ハブ連携部207を介して、リソース過不足量“−2”をハブ装置300に送信し、仮想CPUのリソースを2仮想CPUcore追加することを要求する。また、サービス_リソース配分検証部205は、仮想RAMに関し、ハブ連携部207を介して、リソース過不足量“4”をハブ装置300に送信し、4GB分の仮想RAMをサービスシステム100から返却することを要求する。
ハブ装置300から仮想RAMのリソース量を現状から4GB減少したリソース割当量が通知されると、サービス_リソース配分検証部205は、そのリソース割当量をサービス_リソース配分テーブル(図5参照)に格納し、その行のリソース過不足量を消去する。同様に、ハブ装置300から仮想CPUのリソース量を現状から2仮想CPUcore追加したリソース割当量が通知されると、サービス_リソース配分検証部205は、そのリソース割当量をサービス_リソース配分テーブル(図5参照)に格納し、その行のリソース過不足量を消去する。
本例では、図5に示す仮想CPUのリソース量は、“15”から“17”に更新され、図5に示す仮想RAMのリソース量は、“21”から“17”に更新される。そして、図5に示す各リソース過不足量は消去される。
そして、リソース再配分部206は、図19に例示するノード_リソーステーブルにおいて、最大リソース不足量が負となっている行のリソース割当量に、最大リソース不足量分のリソースを追加することによって、リソース割当量を更新する。そして、リソース再配分部206は、その最大リソース不足量を削除する。また、リソース再配分部206は、最小リソース残量が正となっている行のリソース割当量から、最小リソース残量分のリソース量を減算することによって、リソース割当量を更新する。そして、リソース再配分部206は、その最小リソース残量を削除する。
図20は、図19に例示するノード_リソーステーブルを更新した状態を示す。例えば、ノード“sv1_n1”の仮想CPUの割当量、仮想RAMの割当量は、それぞれ、3仮想CPUcore、2GBに更新される(図20参照)。
他のサービス管理装置も同様の動作を行う。
次に、ハブ装置300の動作の具体例を示す。ハブ装置300のサービス連携部302は、仮想リソースの返却や追加の要求とともにリソース過不足量を受信すると、そのリソース過不足量を、図10に例示するようにハブ_サービス_リソース配分テーブルに格納する。図10に示す例では、サービスID“sv1” に対応するサービス管理装置200と、サービスID“sv2” に対応するサービス管理装置210とから、各リソース型のリソース過不足量を受信した場合を例示している。
ハブ_リソース配分検証部303は、一定時間毎(例えば、5分毎)にハブ_サービス_リソース配分テーブルを読み出し、リソース型毎にリソース過不足量の和を計算し、ハブ_リソース過不足量としてハブ_リソース配分テーブル(図11参照)に格納する。図11に示す例では、各サービスシステム100,110全体として、仮想CPUが5仮想CPUcore分不足し、仮想RAMが8GB分余っていることが推定される。
ハブ_リソース配分検証部303は、仮想CPUに対応するリソースプール管理装置400にハブ_リソース過不足量“−5”を送信する。そして、ハブ_リソース配分検証部303は、サービスシステム100,110全体に仮想CPUの割当量として5仮想CPUcore追加することを要求する。また、ハブ_リソース配分検証部303は、仮想RAMに対応するリソースプール管理装置410に対して、ハブ_リソース過不足量“8”を送信し、8GB分の仮想RAMをサービスシステム100,110全体から返却することを要求する。
リソースプール管理装置400から仮想CPUのリソース量を現状から5仮想CPUcore追加したリソース割当量が通知されると、ハブ_リソース配分検証部303は、そのリソース割当量を、ハブ_リソース量としてハブ_リソース配分テーブルに格納する。ハブ_リソース配分検証部303は、その行のハブ_リソース過不足量を消去する。
同様に、リソースプール管理装置410から仮想RAMのリソース量を現状から8GB減少したリソース割当量が通知されると、ハブ_リソース配分検証部303は、そのリソース割当量を、ハブ_リソース量としてハブ_リソース配分テーブルに格納する。ハブ_リソース配分検証部303は、その行のハブ_リソース過不足量を消去する。
図11に示すハブ_リソース配分テーブルに対して上記の更新を行った後の状態を、図21に示す。
また、ハブ_リソース再配分部304は、図10に例示するハブ_サービス_リソース配分テーブルにおいて、リソース過不足量が負となっている行のリソース量に、リソース過不足量分のリソースを追加することによって、リソース量を更新し、そのリソース過不足量を消去する。また、ハブ_リソース再配分部304は、リソース過不足量が正となっている行のリソース量から、リソース過不足量分のリソース量を減算することによって、リソース量を更新し、そのリソース過不足量を消去する。図10に示すハブ_サービス_リソース配分テーブルに対して上記の更新を行った後の状態を、図22に示す。
そして、ハブ_リソース再配分部304は、図22に示すリソース量を、サービスIDに対応する各サービス管理装置に送信する。
次に、仮想CPUに対応するリソースプール管理装置400を例にして、リソースプール管理装置の動作の具体例を示す。リソースプール管理装置400のハブ連携部402は、ハブ装置300から、仮想リソースの返却や追加の要求とともにハブ_リソース過不足量を受信すると、そのハブ_リソース過不足量を、図12に例示するようにプール_ハブ_リソース配分テーブルに格納する。
割当変更部403は、一定時間毎(例えば、10分毎)にプール_ハブ_リソース配分テーブルのハブ_リソース過不足量を確認する。割当変更部403は、ハブ_リソース過不足量が負であれば、ハブ_リソース過不足量分のリソース量をハブ_リソース量に追加することによって、ハブ_リソース量を更新する。また、割当変更部403は、ハブ_リソース過不足量が正であれば、ハブ_リソース過不足量分のリソース量をハブ_リソース量から減算することによって、ハブ_リソース量を更新する。ハブ_リソース量を更新するとき、割当変更部403は、ハブ_リソース過不足量を消去する。図12に例示するプール_ハブ_リソース配分テーブルに対して上記の更新を行った状態を、図23に示す。
さらに、割当変更部403は、図13に例示するプール_リソース容量テーブルのプール_割当容量も、更新後のハブ_リソース量と同じ値に更新する。図13に例示するプール_リソース容量テーブルに対して上記の更新を行った状態を、図24に示す。
そして、割当変更部403は、ハブ連携部402を介して、プール_ハブ_リソース配分テーブル内の更新後のハブ_リソース量を、ハブ装置300に送信する。
ここでは、仮想CPUに対応するリソースプール管理装置400を例にして説明した。仮想RAMに対応するリソースプール管理装置410の動作も同様である。リソースプール管理装置410がハブ装置300から仮想リソースの返却や追加の要求とともにハブ_リソース過不足量を受信した結果、リソースプール管理装置410のプール_ハブ_リソース配分テーブルが図14に示す状態であるとする。また、リソースプール管理装置410のプール_リソース容量テーブルが図15に示す状態であるとする。この場合、図14に示すプール_ハブ_リソース配分テーブルは、図25に示す状態に更新される。また、図15に示すプール_リソース容量テーブルは、図26に示す状態に更新される。
次に、本発明の主要部について説明する。図27は、本発明の主要部を示すブロック図である。本発明の仮想リソース制御システムは、サービス管理装置50と、ハブ装置60と、リソース管理装置70とを備える。
サービス管理装置50(例えば、サービス管理装置200,210)は、サービスを提供するサービスシステムと一対一に対応し、対応するサービスシステム内の個々のノードに対する仮想リソースの割当量を定める。
ハブ装置60(例えば、ハブ装置300)は、サービス管理装置50に対応する1つのサービスシステム全体に対する仮想リソースの割当量の不足量または余剰量を表すリソース過不足量をサービス管理装置50から受け付け、サービス管理装置50に対応する1つのサービスシステム全体に対する仮想リソースの割当量をサービス管理装置50に通知する。
リソース管理装置70(例えば、リソースプール管理装置400,410)は、各サービスシステム全体に対する仮想リソースの割当量を算出する。
サービス管理装置50は、モデル保持手段51と、モニタリング手段52と、モデル生成手段53と、リソース過不足量算出手段54と、仮想リソース割当量更新手段55とを備える。
モデル保持手段51(例えば、サービスモデルテーブルを記憶するサービス情報記憶装置201)は、自装置に対応するサービスシステム内の各ノードの入力および出力を処理順に表現するサービスモデルを保持する。
モニタリング手段52(例えば、モニタリング部202)は、サービスシステム内の各ノードに関して、仮想リソースの割当量と、1つのリクエストに対して消費する仮想リソースの量である単位リソース消費量と、平均処理時間とを測定し、サービスシステムで生じたリクエストを表すログを取得する。
モデル生成手段53(例えば、ハイブリッドモデル生成部203)は、各ノードの仮想リソースの割当量、単位リソース消費量、および平均処理時間と、サービスモデルとに基づいて、ノードに入力が生じたときにおける当該ノードの未使用リソース量および使用中のリソース量を表現するリソースモデルを生成し、サービスモデルとリソースモデルとを組み合わせたハイブリッドモデルを生成する。
リソース過不足量算出手段54(例えば、サービス_リソース配分検証部205)は、ハイブリッドモデルと、ログとを用いて、サービスシステム内の各ノードのリソース消費状況のシミュレーションを実行して、ノード毎に、仮想リソースの残量の最小値である最小リソース残量と、仮想リソースの不足量の最大値である最大リソース不足量とを算出し、ノード毎の最小リソース残量および最大リソース不足量に基づいてリソース過不足量を算出し、当該リソース過不足量をハブ装置60に通知し、ハブ装置60から、当該リソース過不足量が示す不足量または余剰量を解消した、当該サービス管理装置に対応する1つのサービスシステム全体に対する仮想リソースの割当量の通知を受ける。
仮想リソース割当量更新手段55(例えば、リソース再配分部206)は、ノード毎に、最小リソース残量または最大リソース不足量が解消されるように、仮想リソースの割当量を更新する。
ハブ装置60は、リソース過不足量保持手段61と、全体リソース過不足量算出手段62と、システム別仮想リソース割当量算出手段63とを備える。
リソース過不足量保持手段61(例えば、ハブ_サービス_リソース配分を記憶するハブ情報記憶装置301)は、各サービス管理装置50から通知されたリソース過不足量を保持する。
全体リソース過不足量算出手段62(例えば、ハブ_リソース配分検証部303)は、一定期間毎に、各サービス管理装置50から通知されたリソース過不足量に基づいて、各サービスシステム全体に対する仮想リソースの割当量の不足量または余剰量を表す全体リソース過不足量(例えば、ハブ_リソース過不足量)を算出し、当該全体リソース過不足量をリソース管理装置70に通知し、リソース管理装置70から、当該全体リソース過不足量を解消した、各サービスシステム全体に対する仮想リソースの割当量の通知を受ける。
システム別仮想リソース割当量算出手段63(例えば、ハブ_リソース再配分部304)は、リソース過不足量が示す不足量または余剰量を解消した、サービス管理装置に対応する1つのサービスシステム全体に対する仮想リソースの割当量を算出し、当該割当量をリソース過不足量の送信元のサービス管理装置に通知する。
リソース管理装置70は、全体リソース過不足量保持手段71と、全体仮想リソース割当量算出手段72とを備える。
全体リソース過不足量保持手段71(例えば、プール_ハブ_リソース配分テーブルを記憶するプール情報記憶装置401)は、ハブ装置60から通知された全体リソース過不足量を保持する。
全体仮想リソース割当量算出手段72(例えば、割当変更部403)は、一定期間毎に、全体リソース過不足量を確認し、全体リソース過不足量を解消した、各サービスシステム全体に対する仮想リソースの割当量を算出し、当該割当量をハブ装置60に通知する。
そのような構成により、サービスシステムの追加や削除が生じる環境において、個々のサービスシステムに対する仮想リソースの割当量を適切に定めることができる。
仮想リソースの種別毎にリソース管理装置70を備える構成であってもよい。
リソース過不足量算出手段54が、仮想リソースの種別毎に、最小リソース残量、最大リソース不足量、およびリソース過不足量を算出し、仮想リソース割当量更新手段55が、仮想リソースの種別毎に、仮想リソースの割当量を更新し、リソース過不足量保持手段61が、各サービス管理装置から通知されたリソース過不足量を仮想リソースの種別毎に保持し、全体リソース過不足量算出手段62が、仮想リソースの種別毎に、全体リソース過不足量を算出し、当該全体リソース過不足量を仮想リソースの種別に応じたリソース管理装置に通知し、システム別仮想リソース割当量算出手段63が、サービス管理装置に対応する1つのサービスシステム全体に対する仮想リソースの割当量を、仮想リソースの種別毎に算出する構成であってもよい。
モデル保持手段51は、サービスシステム内の各ノードの入力および出力を処理順に表現するとともに、ノードの出力の分岐および集約を表現するサービスモデルを保持してもよい。
以上、実施形態を参照して本願発明を説明したが、本願発明は上記の実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
この出願は、2013年8月5日に出願された日本特許出願2013−162456を基礎とする優先権を主張し、その開示の全てをここに取り込む。
産業上の利用の可能性
本発明は、複数のサービスシステムに対して仮想リソースの割当量の制御を行う仮想リソース制御システムに好適に適用される。
200,210 サービス管理装置
201 サービス情報記憶装置
202 モニタリング部
203 ハイブリッドモデル生成部
204 ノード_リソース量推定部
205 サービス_リソース配分検証部
206 リソース再配分部
207 ハブ連携部
300 ハブ装置
301 ハブ情報記憶装置
302 サービス連携部
303 ハブ_リソース配分検証部
304 ハブ_リソース再配分部
305 プール連携部
400 リソースプール管理装置
401 プール情報記憶装置
402 ハブ連携部
403 割当変更部

Claims (9)

  1. サービスを提供するサービスシステムと一対一に対応し、対応するサービスシステム内の個々のノードに対する仮想リソースの割当量を定めるサービス管理装置と、
    サービス管理装置に対応する1つのサービスシステム全体に対する仮想リソースの割当量の不足量または余剰量を表すリソース過不足量を前記サービス管理装置から受け付け、前記サービス管理装置に対応する1つのサービスシステム全体に対する仮想リソースの割当量を前記サービス管理装置に通知するハブ装置と、
    各サービスシステム全体に対する仮想リソースの割当量を算出するリソース管理装置とを備え、
    各サービス管理装置は、
    自装置に対応するサービスシステム内の各ノードの入力および出力を処理順に表現するサービスモデルを保持するモデル保持手段と、
    前記サービスシステム内の各ノードに関して、仮想リソースの割当量と、1つのリクエストに対して消費する仮想リソースの量である単位リソース消費量と、平均処理時間とを測定し、前記サービスシステムで生じたリクエストを表すログを取得するモニタリング手段と、
    各ノードの仮想リソースの割当量、単位リソース消費量、および平均処理時間と、前記サービスモデルとに基づいて、ノードに入力が生じたときにおける当該ノードの未使用リソース量および使用中のリソース量を表現するリソースモデルを生成し、前記サービスモデルと前記リソースモデルとを組み合わせたハイブリッドモデルを生成するモデル生成手段と、
    前記ハイブリッドモデルと、前記ログとを用いて、前記サービスシステム内の各ノードのリソース消費状況のシミュレーションを実行して、ノード毎に、仮想リソースの残量の最小値である最小リソース残量と、仮想リソースの不足量の最大値である最大リソース不足量とを算出し、ノード毎の最小リソース残量および最大リソース不足量に基づいて前記リソース過不足量を算出し、当該リソース過不足量を前記ハブ装置に通知し、前記ハブ装置から、当該リソース過不足量が示す不足量または余剰量を解消した、当該サービス管理装置に対応する1つのサービスシステム全体に対する仮想リソースの割当量の通知を受けるリソース過不足量算出手段と、
    ノード毎に、最小リソース残量または最大リソース不足量が解消されるように、仮想リソースの割当量を更新する仮想リソース割当量更新手段とを含み、
    前記ハブ装置は、
    各サービス管理装置から通知されたリソース過不足量を保持するリソース過不足量保持手段と、
    一定期間毎に、各サービス管理装置から通知されたリソース過不足量に基づいて、各サービスシステム全体に対する仮想リソースの割当量の不足量または余剰量を表す全体リソース過不足量を算出し、当該全体リソース過不足量をリソース管理装置に通知し、前記リソース管理装置から、当該全体リソース過不足量を解消した、各サービスシステム全体に対する仮想リソースの割当量の通知を受ける全体リソース過不足量算出手段と、
    リソース過不足量が示す不足量または余剰量を解消した、サービス管理装置に対応する1つのサービスシステム全体に対する仮想リソースの割当量を算出し、当該割当量を前記リソース過不足量の送信元のサービス管理装置に通知するシステム別仮想リソース割当量算出手段とを含み、
    前記リソース管理装置は、
    前記ハブ装置から通知された全体リソース過不足量を保持する全体リソース過不足量保持手段と、
    一定期間毎に、前記全体リソース過不足量を確認し、前記全体リソース過不足量を解消した、各サービスシステム全体に対する仮想リソースの割当量を算出し、当該割当量を前記ハブ装置に通知する全体仮想リソース割当量算出手段とを含む
    ことを特徴とする仮想リソース制御システム。
  2. 仮想リソースの種別毎にリソース管理装置を備える
    請求項1に記載の仮想リソース制御システム。
  3. リソース過不足量算出手段は、仮想リソースの種別毎に、最小リソース残量、最大リソース不足量、およびリソース過不足量を算出し、
    仮想リソース割当量更新手段は、仮想リソースの種別毎に、仮想リソースの割当量を更新し、
    リソース過不足量保持手段は、各サービス管理装置から通知されたリソース過不足量を仮想リソースの種別毎に保持し、
    全体リソース過不足量算出手段は、仮想リソースの種別毎に、全体リソース過不足量を算出し、当該全体リソース過不足量を仮想リソースの種別に応じたリソース管理装置に通知し、
    システム別仮想リソース割当量算出手段は、サービス管理装置に対応する1つのサービスシステム全体に対する仮想リソースの割当量を、仮想リソースの種別毎に算出する
    請求項2に記載の仮想リソース制御システム。
  4. モデル保持手段は、サービスシステム内の各ノードの入力および出力を処理順に表現するとともに、ノードの出力の分岐および集約を表現するサービスモデルを保持する
    請求項1から請求項3のうちのいずれか1項に記載の仮想リソース制御システム。
  5. サービスを提供するサービスシステムと一対一に対応し、対応するサービスシステム内の個々のノードに対する仮想リソースの割当量を定めるサービス管理装置と、サービス管理装置に対応する1つのサービスシステム全体に対する仮想リソースの割当量の不足量または余剰量を表すリソース過不足量を前記サービス管理装置から受け付け、前記サービス管理装置に対応する1つのサービスシステム全体に対する仮想リソースの割当量を前記サービス管理装置に通知するハブ装置と、各サービスシステム全体に対する仮想リソースの割当量を算出するリソース管理装置とを用いた仮想リソース制御方法であって、
    各サービス管理装置が、
    自装置に対応するサービスシステム内の各ノードの入力および出力を処理順に表現するサービスモデルを保持し、
    前記サービスシステム内の各ノードに関して、仮想リソースの割当量と、1つのリクエストに対して消費する仮想リソースの量である単位リソース消費量と、平均処理時間とを測定し、前記サービスシステムで生じたリクエストを表すログを取得し、
    各ノードの仮想リソースの割当量、単位リソース消費量、および平均処理時間と、前記サービスモデルとに基づいて、ノードに入力が生じたときにおける当該ノードの未使用リソース量および使用中のリソース量を表現するリソースモデルを生成し、前記サービスモデルと前記リソースモデルとを組み合わせたハイブリッドモデルを生成し、
    前記ハイブリッドモデルと、前記ログとを用いて、前記サービスシステム内の各ノードのリソース消費状況のシミュレーションを実行して、ノード毎に、仮想リソースの残量の最小値である最小リソース残量と、仮想リソースの不足量の最大値である最大リソース不足量とを算出し、ノード毎の最小リソース残量および最大リソース不足量に基づいて前記リソース過不足量を算出し、当該リソース過不足量を前記ハブ装置に通知し、
    前記ハブ装置が、
    各サービス管理装置から通知されたリソース過不足量を保持し、
    一定期間毎に、各サービス管理装置から通知されたリソース過不足量に基づいて、各サービスシステム全体に対する仮想リソースの割当量の不足量または余剰量を表す全体リソース過不足量を算出し、当該全体リソース過不足量をリソース管理装置に通知し、
    前記リソース管理装置が、
    前記ハブ装置から通知された全体リソース過不足量を保持し、
    一定期間毎に、前記全体リソース過不足量を確認し、前記全体リソース過不足量を解消した、各サービスシステム全体に対する仮想リソースの割当量を算出し、当該割当量を前記ハブ装置に通知し、
    前記ハブ装置が、
    前記リソース管理装置から、各サービスシステム全体に対する仮想リソースの割当量の通知を受け、
    リソース過不足量が示す不足量または余剰量を解消した、サービス管理装置に対応する1つのサービスシステム全体に対する仮想リソースの割当量を算出し、当該割当量を前記リソース過不足量の送信元のサービス管理装置に通知し、
    各サービス管理装置が、
    自装置に対応する1つのサービスシステム全体に対する仮想リソースの割当量の通知を受け、
    ノード毎に、最小リソース残量または最大リソース不足量が解消されるように、仮想リソースの割当量を更新する
    ことを特徴とする仮想リソース制御方法。
  6. サービスを提供するサービスシステムと一対一に対応し、対応するサービスシステム内の個々のノードに対する仮想リソースの割当量を定めるサービス管理装置であって、
    当該サービス管理装置に対応するサービスシステム内の各ノードの入力および出力を処理順に表現するサービスモデルを保持するモデル保持手段と、
    前記サービスシステム内の各ノードに関して、仮想リソースの割当量と、1つのリクエストに対して消費する仮想リソースの量である単位リソース消費量と、平均処理時間とを測定し、前記サービスシステムで生じたリクエストを表すログを取得するモニタリング手段と、
    各ノードの仮想リソースの割当量、単位リソース消費量、および平均処理時間と、前記サービスモデルとに基づいて、ノードに入力が生じたときにおける当該ノードの未使用リソース量および使用中のリソース量を表現するリソースモデルを生成し、前記サービスモデルと前記リソースモデルとを組み合わせたハイブリッドモデルを生成するモデル生成手段と、
    前記ハイブリッドモデルと、前記ログとを用いて、前記サービスシステム内の各ノードのリソース消費状況のシミュレーションを実行して、ノード毎に、仮想リソースの残量の最小値である最小リソース残量と、仮想リソースの不足量の最大値である最大リソース不足量とを算出し、ノード毎の最小リソース残量および最大リソース不足量に基づいて、当該サービス管理装置に対応する1つのサービスシステム全体に対する仮想リソースの割当量の不足量または余剰量を表すリソース過不足量を算出し、当該サービス管理装置に対応する1つのサービスシステム全体に対する仮想リソースの割当量を定めるハブ装置に前記リソース過不足量を通知し、前記ハブ装置から、当該リソース過不足量が示す不足量または余剰量を解消した、当該サービス管理装置に対応する1つのサービスシステム全体に対する仮想リソースの割当量の通知を受けるリソース過不足量算出手段と、
    ノード毎に、最小リソース残量または最大リソース不足量が解消されるように、仮想リソースの割当量を更新する仮想リソース割当量更新手段とを備える
    ことを特徴とするサービス管理装置。
  7. サービスを提供するサービスシステムと一対一に対応し、対応するサービスシステム内の個々のノードに対する仮想リソースの割当量を定めるサービス管理装置、および、各サービスシステム全体に対する仮想リソースの割当量を算出するリソース管理装置とともに用いられ、サービス管理装置に対応する1つのサービスシステム全体に対する仮想リソースの割当量の不足量または余剰量を表すリソース過不足量を前記サービス管理装置から受け付け、前記サービス管理装置に対応する1つのサービスシステム全体に対する仮想リソースの割当量を前記サービス管理装置に通知するハブ装置であって、
    各サービス管理装置から通知されたリソース過不足量を保持するリソース過不足量保持手段と、
    一定期間毎に、各サービス管理装置から通知されたリソース過不足量に基づいて、各サービスシステム全体に対する仮想リソースの割当量の不足量または余剰量を表す全体リソース過不足量を算出し、当該全体リソース過不足量をリソース管理装置に通知し、前記リソース管理装置から、当該全体リソース過不足量を解消した、各サービスシステム全体に対する仮想リソースの割当量の通知を受ける全体リソース過不足量算出手段と、
    リソース過不足量が示す不足量または余剰量を解消した、サービス管理装置に対応する1つのサービスシステム全体に対する仮想リソースの割当量を算出し、当該割当量を前記リソース過不足量の送信元のサービス管理装置に通知するシステム別仮想リソース割当量算出手段とを備える
    ことを特徴とするハブ装置。
  8. サービスを提供するサービスシステムと一対一に対応し、対応するサービスシステム内の個々のノードに対する仮想リソースの割当量を定めるコンピュータに搭載されるサービス管理装置用プログラムであって、
    前記コンピュータに、
    前記コンピュータに対応するサービスシステム内の各ノードの入力および出力を処理順に表現するサービスモデルを保持するモデル保持処理、
    前記サービスシステム内の各ノードに関して、仮想リソースの割当量と、1つのリクエストに対して消費する仮想リソースの量である単位リソース消費量と、平均処理時間とを測定し、前記サービスシステムで生じたリクエストを表すログを取得するモニタリング処理、
    各ノードの仮想リソースの割当量、単位リソース消費量、および平均処理時間と、前記サービスモデルとに基づいて、ノードに入力が生じたときにおける当該ノードの未使用リソース量および使用中のリソース量を表現するリソースモデルを生成し、前記サービスモデルと前記リソースモデルとを組み合わせたハイブリッドモデルを生成するモデル生成処理、
    前記ハイブリッドモデルと、前記ログとを用いて、前記サービスシステム内の各ノードのリソース消費状況のシミュレーションを実行して、ノード毎に、仮想リソースの残量の最小値である最小リソース残量と、仮想リソースの不足量の最大値である最大リソース不足量とを算出し、ノード毎の最小リソース残量および最大リソース不足量に基づいて、前記コンピュータに対応する1つのサービスシステム全体に対する仮想リソースの割当量の不足量または余剰量を表すリソース過不足量を算出し、前記コンピュータに対応する1つのサービスシステム全体に対する仮想リソースの割当量を定めるハブ装置に前記リソース過不足量を通知し、前記ハブ装置から、当該リソース過不足量が示す不足量または余剰量を解消した、前記コンピュータに対応する1つのサービスシステム全体に対する仮想リソースの割当量の通知を受けるリソース過不足量算出処理、および、
    ノード毎に、最小リソース残量または最大リソース不足量が解消されるように、仮想リソースの割当量を更新する仮想リソース割当量更新処理
    を実行させるためのサービス管理装置用プログラム。
  9. サービスを提供するサービスシステムと一対一に対応し、対応するサービスシステム内の個々のノードに対する仮想リソースの割当量を定めるサービス管理装置、および、各サービスシステム全体に対する仮想リソースの割当量を算出するリソース管理装置とともに用いられ、サービス管理装置に対応する1つのサービスシステム全体に対する仮想リソースの割当量の不足量または余剰量を表すリソース過不足量を前記サービス管理装置から受け付け、前記サービス管理装置に対応する1つのサービスシステム全体に対する仮想リソースの割当量を前記サービス管理装置に通知するコンピュータに搭載されるハブ装置用プログラムであって、
    前記コンピュータに、
    各サービス管理装置から通知されたリソース過不足量を保持するリソース過不足量保持処理、
    一定期間毎に、各サービス管理装置から通知されたリソース過不足量に基づいて、各サービスシステム全体に対する仮想リソースの割当量の不足量または余剰量を表す全体リソース過不足量を算出し、当該全体リソース過不足量をリソース管理装置に通知し、前記リソース管理装置から、当該全体リソース過不足量を解消した、各サービスシステム全体に対する仮想リソースの割当量の通知を受ける全体リソース過不足量算出処理、および、
    リソース過不足量が示す不足量または余剰量を解消した、サービス管理装置に対応する1つのサービスシステム全体に対する仮想リソースの割当量を算出し、当該割当量を前記リソース過不足量の送信元のサービス管理装置に通知するシステム別仮想リソース割当量算出処理
    を実行させるためのハブ装置用プログラム。
JP2015530673A 2013-08-05 2014-06-24 仮想リソース制御システムおよび仮想リソース制御方法 Expired - Fee Related JP6191695B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2013162456 2013-08-05
JP2013162456 2013-08-05
PCT/JP2014/003383 WO2015019538A1 (ja) 2013-08-05 2014-06-24 仮想リソース制御システムおよび仮想リソース制御方法

Publications (2)

Publication Number Publication Date
JPWO2015019538A1 JPWO2015019538A1 (ja) 2017-03-02
JP6191695B2 true JP6191695B2 (ja) 2017-09-06

Family

ID=52460901

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015530673A Expired - Fee Related JP6191695B2 (ja) 2013-08-05 2014-06-24 仮想リソース制御システムおよび仮想リソース制御方法

Country Status (3)

Country Link
US (1) US9880883B2 (ja)
JP (1) JP6191695B2 (ja)
WO (1) WO2015019538A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10649796B2 (en) 2014-06-27 2020-05-12 Amazon Technologies, Inc. Rolling resource credits for scheduling of virtual computer resources
US9720613B2 (en) * 2014-12-30 2017-08-01 Teradata Us, Inc. Method and system for preventing reuse of cylinder ID indexes in a computer system with missing storage drives
US20180131633A1 (en) * 2016-11-08 2018-05-10 Alibaba Group Holding Limited Capacity management of cabinet-scale resource pools
US10474499B2 (en) * 2017-03-01 2019-11-12 The Toronto-Dominion Bank Resource allocation based on resource distribution data from child node
US10860381B1 (en) 2020-05-14 2020-12-08 Snowflake Inc. Flexible computing

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS642145A (en) 1987-06-25 1989-01-06 Fujitsu Ltd Resource control system for virtual computer system
US7937551B2 (en) 2003-01-21 2011-05-03 Dell Products L.P. Storage systems having differentiated storage pools
US8725886B1 (en) * 2006-10-20 2014-05-13 Desktone, Inc. Provisioned virtual computing
US8015280B2 (en) * 2007-10-01 2011-09-06 Ebay Inc. Method and system for intelligent feature degradation in response to a network deficiency detection
US8402468B2 (en) * 2008-03-17 2013-03-19 Ca, Inc. Capacity planning based on resource utilization as a function of workload
JP5119077B2 (ja) 2008-07-28 2013-01-16 西日本電信電話株式会社 仮想サーバリソース調整システム、リソース調整装置、仮想サーバリソース調整方法、及び、コンピュータプログラム
JP2011081579A (ja) 2009-10-07 2011-04-21 Hitachi Ltd Itシステム仮想化における仮想リソースのシステム運用管理方法およびシステム
JP5242717B2 (ja) 2011-02-09 2013-07-24 日本電信電話株式会社 リソース管理サーバ、リソース管理システム、リソース管理方法及びリソース管理プログラム
US20120221454A1 (en) * 2011-02-28 2012-08-30 Morgan Christopher Edwin Systems and methods for generating marketplace brokerage exchange of excess subscribed resources using dynamic subscription periods
US9817699B2 (en) * 2013-03-13 2017-11-14 Elasticbox Inc. Adaptive autoscaling for virtualized applications
US20140373010A1 (en) * 2013-06-14 2014-12-18 International Business Machines Corporation Intelligent resource management for virtual machines

Also Published As

Publication number Publication date
US20160196168A1 (en) 2016-07-07
JPWO2015019538A1 (ja) 2017-03-02
WO2015019538A1 (ja) 2015-02-12
US9880883B2 (en) 2018-01-30

Similar Documents

Publication Publication Date Title
US20200287961A1 (en) Balancing resources in distributed computing environments
CN109582433B (zh) 一种资源调度方法、装置、云计算***及存储介质
JP6191695B2 (ja) 仮想リソース制御システムおよび仮想リソース制御方法
CN105718364B (zh) 一种云计算平台中计算资源能力动态评估方法
CN104077212B (zh) 压力测试***及方法
CN107832153B (zh) 一种Hadoop集群资源自适应分配方法
CN103581247A (zh) 一种基于云计算环境的分布式Web测试方法
US9396039B1 (en) Scalable load testing using a queue
US20160156567A1 (en) Allocation method of a computer resource and computer system
CN109918170A (zh) 一种云数据中心虚拟机动态资源配置方法及***
CN109408590B (zh) 分布式数据库的扩容方法、装置、设备及存储介质
CN109257399B (zh) 云平台应用程序管理方法及管理平台、存储介质
US20100146517A1 (en) System and method for a rate control technique for a lightweight directory access protocol over mqseries (lom) server
Lebre et al. Putting the next 500 vm placement algorithms to the acid test: The infrastructure provider viewpoint
CN110297743B (zh) 一种负载测试方法、装置和存储介质
CN111443870A (zh) 一种数据处理的方法、设备及存储介质
JP6924083B2 (ja) 情報処理システムおよびリソース割り当て方法
US20210191751A1 (en) Method and device for allocating resource in virtualized environment
CN110868330B (zh) 云平台可划分cpu资源的评估方法、装置及评估***
IL301738A (en) Predictive block storage size allocation for cloud storage
CN112000657A (zh) 数据管理方法、装置、服务器及存储介质
CN115834600A (zh) 一种多云纳管数据同步方法、装置、电子设备和存储介质
US8819174B2 (en) Information processing system, information processing method, and storage medium
CN110351104A (zh) 一种vim选择方法及装置
CN114090201A (zh) 资源调度方法、装置、设备及存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170511

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170711

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170724

R150 Certificate of patent or registration of utility model

Ref document number: 6191695

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees