JP2018063470A - 制御装置および制御方法 - Google Patents

制御装置および制御方法 Download PDF

Info

Publication number
JP2018063470A
JP2018063470A JP2016199862A JP2016199862A JP2018063470A JP 2018063470 A JP2018063470 A JP 2018063470A JP 2016199862 A JP2016199862 A JP 2016199862A JP 2016199862 A JP2016199862 A JP 2016199862A JP 2018063470 A JP2018063470 A JP 2018063470A
Authority
JP
Japan
Prior art keywords
application
function
resource
virtual machine
virtual
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.)
Pending
Application number
JP2016199862A
Other languages
English (en)
Inventor
直聰 渡邊
Naotoshi Watanabe
直聰 渡邊
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2016199862A priority Critical patent/JP2018063470A/ja
Priority to US15/702,931 priority patent/US20180101413A1/en
Publication of JP2018063470A publication Critical patent/JP2018063470A/ja
Pending legal-status Critical Current

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
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5011Pool

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)

Abstract

【課題】仮想マシンの枯渇を回避するとともに予備仮想マシンの削減を図ることができる。
【解決手段】制御装置50は、所定の機能を実行する仮想マシンと所定の機能を実行するために用意される予備仮想マシンを割当てる。制御装置50は、第1機能10を実行する仮想マシンの増減と、第2機能20を実行する仮想マシンの増減との相関の有無を判定し、相関があるとき、第1機能10を実行する仮想マシンの増減に基づいて、第2機能20を実行するために用意される予備仮想マシンの最大容量を決定する。
【選択図】図1

Description

本発明は、制御装置および制御方法に関する。
近年、コンピュータリソースの利用形態の1つとしてクラウドシステムが提案されている。クラウドシステムは、ユーザがネットワーク経由でコンピュータリソースを利用するシステムである。クラウドシステムは、複数のユーザに対して柔軟にリソースを割り振ることができるよう、複数の仮想的なコンピュータ(仮想マシン)を配置した仮想システムとして実装されることが多い。
また、仮想システムを提供する技術として、標準化団体であるETSI(European Telecommunications Standards Institute)が定義する網機能仮想化(NFV:Network Function Virtualization)が提案されている。NFVは、ルータなどのネットワークノードを仮想化してソフトウエアパッケージ化し、汎用サーバ内の仮想マシンにおいて実行する技術である。
NFVを用いた技術として、仮想化されたネットワークノードの負荷に応じて、ネットワークノードのスケーリング制御を行う運用管理装置に関する技術が知られている。スケーリングとは、仮想マシンの台数を増減設(スケールイン/スケールアウト)する制御を行う技術である。
また、アプリケーションの実行環境となる仮想マシンを管理するシステムにおいて、仮想マシンの故障時の影響を少なくするため、アプリケーションを予めインストールした予備の仮想マシン群を用意する技術が知られている。
特開2015−149578号公報 特開2015−191246号公報
アプリケーションを予めインストールした予備の仮想マシン群を保持する領域(以下、リソースプールと記載する)には、アプリケーションが提供するサービスの需要が急激に増減する場合にも対応できる予備の仮想マシンの量を保持できる容量を確保することが求められている。このため、リソースプールの仮想マシンの量は、サービスの需要の増減に伴うアプリケーションの負荷変動に対応して仮想マシンが枯渇しないように設定する必要がある。
ただし、リソースプールの予備の仮想マシンの量を、サービスの最大需要の際に相当する量に定めた場合、仮想マシンが枯渇する事態を回避できるが、余分な仮想マシンを確保し続けるため、管理や運用コストが増大してしまう。
このため、仮想化システムにおいて、仮想マシンの枯渇を回避するとともに、顧客に対するサービスを損なわない範囲において予備の仮想マシンの量を抑えることが課題となっている。
1つの側面では、本発明は、仮想マシンの枯渇を回避するとともに予備の仮想マシンの削減を図ることができる制御装置および制御方法を提供することを目的とする。
上記目的を達成するために、以下に示すような制御装置が提供される。制御装置は、所定の機能を実行する仮想マシンと所定の機能を実行するために用意される予備仮想マシンを割当てる。制御装置は、第1機能を実行する仮想マシンの増減と、第2機能を実行する仮想マシンの増減との相関の有無を判定し、相関があるとき、第1機能を実行する仮想マシンの増減に基づいて、第2機能を実行するために用意される予備仮想マシンの最大容量を決定する。
一態様によれば、本発明は、仮想マシンの枯渇を回避するとともに予備の仮想マシンの削減を図ることができる制御装置および制御方法を提供できる。
第1の実施形態の制御装置の構成の一例を示す図である。 第2の実施形態の情報処理システムの構成の一例を示す図である。 第2の実施形態の仮想リソース管理サーバのハードウェア構成の一例を示す図である。 第2の実施形態のクラウドシステムにリソースを配置した一例を示す図である。 第2の実施形態のサービス接続情報の一例を示す図である。 第2の実施形態のアプリケーション管理情報の一例を示す図である。 第2の実施形態の情報処理システムにおけるシーケンスの一例を示す図である。 第2の実施形態のリソース制御処理のフローチャートを示す図である。 第2の実施形態の動作モード管理情報の一例を示す図である。 第2の実施形態の相関判定処理のフローチャートを示す図である。 第2の実施形態のイベントログの一例を示す図である。 第2の実施形態の相関観測情報の一例を示す図である。 第2の実施形態の相関判定情報の一例を示す図である。 第2の実施形態の相関制御処理のフローチャートを示す図である。 第2の実施形態のリソースプール状態情報の一例を示す図である。 第2の実施形態のリソースプール制御情報の一例を示す図である。 第2の実施形態のリソースプール空時処理のフローチャートを示す図である。 (A)が第2の実施形態のスケールアウトの実行前後におけるリソースプールの制御概要を示す図であり、(B)がスケールインの実行前後におけるリソースプールの制御概要を示す図である。
以下、図面を参照して実施の形態を詳細に説明する。
[第1の実施形態]
まず、第1の実施形態の制御装置について図1を用いて説明する。図1は、第1の実施形態の制御装置の構成の一例を示す図である。
制御装置50は、制御部51を含む。制御装置50は、所定の機能を実行する仮想マシンや、所定の機能を実行するために用意される予備仮想マシンを制御する情報処理装置であり、たとえば、コンピュータである。
仮想マシンは、各種のコンピュータ資源を含むものであり、たとえば、仮想マシンや、仮想マシンで実行するプログラムや、仮想マシンで待機するプログラムや、仮想マシンに割当てられるプロセッサやメモリ等がある。
所定の機能は、各種のプログラムを実行することで実現する機能であり、制御装置50が制御対象とするコンピュータでプログラムを実行することで実現される機能である。第1機能10は、たとえば、第1仮想マシン11に含まれる仮想マシンにおいて第1プログラムを実行することで実現される機能である。第2機能20は、たとえば、第2仮想マシン21に含まれる仮想マシンにおいて第2プログラムを実行することで実現される機能である。第1仮想マシン11は、第1機能10を実行する仮想マシンを含む。言い換えると、第1仮想マシン11は、第1プログラムを実行する仮想マシンを含む。第2仮想マシン21は、第2機能20を実行する仮想マシンを含む。言い換えると、第2仮想マシン21は、第2プログラムを実行する仮想マシンを含む。ここで、第1プログラムと第2プログラムの機能は、異なる機能を備えたプログラムでもよいし、同一の機能を備えたプログラムでもよい。
制御部51は、仮想マシン制御51aと、相関有無判定制御51bと、予備仮想マシン制御51cを行う。
仮想マシン制御51aは、仮想マシンを増加または減少させる制御である。具体的には、仮想マシン制御51aは、所定の機能を実行するために用意する予備仮想マシンを、所定の機能を実行する仮想マシンに割当てることで仮想マシンを増加させる制御である。また、仮想マシン制御51aは、所定の機能を実行する仮想マシンを解除し、所定の機能を実行するために用意する予備仮想マシンにすることで仮想マシンを減少させる制御である。
仮想マシン制御51aは、たとえば、スケールインやスケールアウトの制御である。仮想マシン制御51aは、所定の機能を実行する仮想マシンの負荷が高くなった場合、予備仮想マシンを仮想マシンに割当てることで仮想マシンを増やすスケールアウトを実行する。仮想マシン制御51aは、所定の機能を実行する仮想マシンの負荷が低くなった場合、所定の機能に割当てられた仮想マシンを解除して予備仮想マシンへ戻すことで、仮想マシンを減らすスケールインを実行する。
相関有無判定制御51bは、仮想マシン制御51aが仮想マシンを増加または減少させる制御を行った所定の機能(たとえば、第1機能10)と他の所定の機能(たとえば、第2機能20)に相関関係があるか否かを判定する制御である。
相関有無判定制御51bは、第1機能10を実行する第1仮想マシン11の増減と、第2機能20を実行する第2仮想マシン21の増減との間の相関の有無を判定する。
ここで、相関の有無の判定について説明する。たとえば、第1機能10を実行する第1仮想マシン11にスケールインを実行したことに関連して、第2機能20にもスケールインを実行したと認められる場合、第1機能10と第2機能20には相関があると判定できる。また、第1機能10を実行する第1仮想マシン11にスケールアウトを実行したことに関連して、第2機能20を実行する第2仮想マシン21にもスケールアウトを実行したと認められる場合、第1機能10と第2機能20には相関があると判定できる。相関有無判定制御51bは、仮想マシンの増減を行った第1機能10と相関関係のある第2機能20を、相関のある機能として特定する。
予備仮想マシン制御51cは、相関有無判定制御51bにおいて相関があると判定した場合に、相関のある機能に割当てる予定の予備仮想マシンの容量を変更する制御である。たとえば、予備仮想マシン制御51cは、相関のある機能を実行するために用意される予備仮想マシンの最大容量を決定できる。なお、予備仮想マシン制御51cは、相関のある機能を実行するために用意される予備仮想マシンの最大容量に限らず、予備仮想マシンの最小容量等も決定できる。
予備仮想マシン制御51cは、第2機能20を相関のある機能として特定し、第1機能10を実行する仮想マシンの増減に基づいて、第2機能20を実行するために用意される第2予備仮想マシン24の容量制御を行う。第1予備仮想マシン14は、第1機能10を実行するために用意される予備仮想マシンを含む。また、第1予備仮想マシン14は、第1仮想マシン11から割当てを解除された仮想マシンも予備仮想マシンとして含むことができる。第1予備仮想マシン14は、たとえば、第1機能10に対応するリソースプールである。第2予備仮想マシン24は、第2機能20を実行するために用意される予備仮想マシンを含む。また、第2予備仮想マシン24は、第2仮想マシン21から割当てを解除された仮想マシンも予備仮想マシンとして含むことができる。第2予備仮想マシン24は、たとえば、第2機能20に対応するリソースプールである。
たとえば、第1機能10を実行する仮想マシンに対しスケールアウトを実行した場合について説明する。予備仮想マシン制御51cが、第1予備仮想マシン14に含まれる予備仮想マシンを第1仮想マシン11に割当てることで仮想マシンが増加し(12,13)、第1予備仮想マシン14の予備仮想マシン数が減少(15,16)する。予備仮想マシン制御51cは、第1仮想マシン11において仮想マシンが増加(12,13)したことに伴い、第2予備仮想マシン24において予備仮想マシンを保持できる容量を増加させる(25,26)。予備仮想マシン制御51cは、第2仮想マシン21において仮想マシンの増減の制御を実行しておらず第2仮想マシン21の増減がない場合(22,23)であっても、第2予備仮想マシン24の容量を増加させることができる(25,26)。
このように、制御部51は、第1機能10を実行する仮想マシンを含む第1仮想マシン11に対してスケールインまたはスケールアウトを実行した際に、相関関係のある第2機能20に対応する第2予備仮想マシン24の容量制御を行う。
制御部51は、第2仮想マシン21に対してスケールインまたはスケールアウトが実行されずとも、第2の予備仮想マシン24の容量制御を行うことができる。言い換えると、制御部51は、第22仮想マシン21に対してスケールアウトを実行する前に第2予備仮想マシン24の容量を増加させることで、第2機能20に対する予備仮想マシンの枯渇を低減できる。また、制御部51は、第2仮想マシン21に対してスケールインを実行する前に、第2予備仮想マシン24の容量を減少させることで、第2機能20に対して予備仮想マシンの過剰な割当てを低減することができる。
このように、制御装置50は、第1機能10を実行する仮想マシンを含む第1仮想マシン11のスケーリングに応じて第2予備仮想マシン24を制御することができる。これにより、制御装置50は、第2機能20に割当てる予備仮想マシンの枯渇を回避するとともに予備仮想マシンの削減を図ることができる。
[第2の実施形態]
次に、第2の実施形態の情報処理システムについて図2を用いて説明する。図2は、第2の実施形態の情報処理システムの構成の一例を示す図である。
情報処理システム500は、管理システム400と、クラウドシステム300とを含む。管理システム400とクラウドシステム300は、ネットワークを介して接続されている。
管理システム400は、仮想リソース管理サーバ100と、ネットワーク150を介して仮想リソース管理サーバ100と接続する仮想インフラ管理サーバ180と、アプリケーション管理サーバ190とを備える。管理システム400は、クラウドシステム300の物理リソースや仮想マシンに必要となるリソースの管理および制御を行う。管理システム400は、たとえば、ETSIが定義するNFV MANO(Management and Orchestration),OSS/BSS(Operation Support System / Business Support System),NFVI(NFV Infrastructure)等の機能を備える。なお、情報処理システム500で実行するアプリケーション等の各種プログラムは、VNF(Virtual Network Function)で提供できる。
仮想リソース管理サーバ100は、仮想リソースの管理および制御を行うコンピュータである。仮想リソース管理サーバ100は、たとえば、スケールインおよびスケールアウトの管理および実行、リソースプールの管理および制御を行う。仮想リソース管理サーバ100は、各種リソースの制御方法を実現するプログラムを実行できる。
仮想インフラ管理サーバ180は、仮想マシンを実行するための基板となるリソースの管理および制御を行うコンピュータである。
アプリケーション管理サーバ190は、クラウドシステム300がユーザに提供するアプリケーションの管理及び制御を行うコンピュータである。
クラウドシステム300は、企業等のユーザに提供されるシステムである。クラウドシステム300は、ルータ250,251と、ネットワーク160を介してルータ250,251と接続する汎用サーバ200,201,202を備える。
汎用サーバ200,201,202は、複数の仮想マシンを動作させることができるコンピュータである。ユーザに提供するサービスを実現するアプリケーションは、仮想マシンで実行される。ルータ250,251は、ネットワークを中継する通信機器である。
なお、情報処理システム500は、複数のクラウドシステム300を備えてもよい。また、管理システム400は、複数のクラウドシステム300を管理してもよい。また、上述の構成は一例であり、クラウドシステム300は、1以上の汎用サーバ200と1以上のルータ250を備えればよい。
次に、第2の実施形態の仮想リソース管理サーバのハードウェア構成について図3を用いて説明する。図3は、第2の実施形態の仮想リソース管理サーバのハードウェア構成の一例を示す図である。
仮想リソース管理サーバ100は、プロセッサ101によって装置全体が制御されている。プロセッサ101には、バス108を介してRAM(Random Access Memory)102と複数の周辺機器が接続されている。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、たとえばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、またはPLD(Programmable Logic Device)である。またプロセッサ101は、CPU、MPU、DSP、ASIC、PLDのうちの2以上の要素の組み合わせであってもよい。なお、プロセッサ101は、第1の実施の形態の制御部51の一例である。
RAM102は、仮想リソース管理サーバ100の主記憶装置として使用される。RAM102は、プロセッサ101が実行するプログラムやプロセッサ101が演算に用いるデータを一時的に記憶する揮発性メモリである。なお、仮想リソース管理サーバ100は、RAM以外の種類のメモリを備えてもよく、複数個のメモリを備えてもよい。
バス108に接続されている周辺機器としては、HDD(Hard Disk Drive)103、画像信号処理部104、入力信号処理部105、媒体リーダ106および通信インタフェース107がある。
HDD103は、OS(Operating System)やミドルウェアやアプリケーションソフトウェアなどのソフトウェアのプログラム、および、データを記憶する不揮発性の記憶装置である。なお、仮想リソース管理サーバ100は、フラッシュメモリやSSD(Solid State Drive)などの他の種類の記憶装置を備えてもよく、複数の不揮発性の記憶装置を備えてもよい。
画像信号処理部104は、プロセッサ101からの命令に従って、仮想リソース管理サーバ100に接続されたディスプレイ111に画像を出力する。ディスプレイ111としては、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ(LCD:Liquid Crystal Display)、プラズマディスプレイ(PDP:Plasma Display Panel)、有機EL(OEL:Organic Electro-Luminescence)ディスプレイなどを用いることができる。
入力信号処理部105は、仮想リソース管理サーバ100に接続された入力デバイス112から入力信号を取得し、プロセッサ101に出力する。入力デバイス112としては、マウスやタッチパネルやタッチパッドやトラックボールなどのポインティングデバイス、キーボード、リモートコントローラ、ボタンスイッチなどを用いることができる。また、仮想リソース管理サーバ100に、複数の種類の入力デバイスが接続されていてもよい。
媒体リーダ106は、記録媒体113に記録されたプログラムやデータを読み取る読み取り装置である。記録媒体113として、例えば、フレキシブルディスク(FD:Flexible Disk)やHDDなどの磁気ディスク、CD(Compact Disc)やDVD(Digital Versatile Disc)などの光ディスク、光磁気ディスク(MO:Magneto-Optical disk)、半導体メモリなどを使用できる。媒体リーダ106は、例えば、記録媒体113から読み取ったプログラムやデータをRAM102またはHDD103に格納する。
通信インタフェース107は、ネットワーク150に接続され、ネットワーク150を介して他のコンピュータと通信を行うインタフェースである。通信インタフェース107は、ケーブルで通信装置と接続される有線通信インタフェースでもよいし、基地局と無線リンクで接続される無線通信インタフェースでもよい。
なお、仮想リソース管理サーバ100は、媒体リーダ106を備えていなくてもよく、ユーザが操作する端末装置から制御可能である場合には画像信号処理部104や入力信号処理部105を備えていなくてもよい。また、ディスプレイ111や入力デバイス112が、仮想リソース管理サーバ100の筐体と一体に形成されていてもよい。仮想インフラ管理サーバ180、アプリケーション管理サーバ190、汎用サーバ200,201,202も、仮想リソース管理サーバ100と同様のハードウェアを用いて実現することができる。
次に、第2の実施形態のクラウドシステムにおけるリソースの配置について図4を用いて説明する。図4は、第2の実施形態のクラウドシステムにリソースを配置した一例を示す図である。
クラウドシステム300は、リソース実行エリア310とリソースプール350とを含む。リソース実行エリア310は、サービスを提供するアプリケーションが実行する仮想的な領域である。リソースプール350は、リソースを準備しておく仮想的な領域である。リソースには、CPUやメモリやHDDなどのハードウェアリソースと、仮想マシンやアプリケーション等のソフトウェアリソースを含む。アプリケーションには、Webサーバの機能を提供するプログラムや、データベースの機能を提供するプログラム等の各種のプログラムを含む。リソース実行エリア310とリソースプール350は、汎用サーバ200,201,202のいずれかで提供される。以下の説明において、仮想マシンおよびアプリケーションをリソースとして図示し、仮想マシンを実現するためのハイパーバイザやハードウェアリソースの図示は省略する。
クラウドシステム300に含まれるリソースは、仮想リソース管理サーバ100によって制御される。仮想リソース管理サーバ100は、リソース実行エリア310で実行するアプリケーションの負荷が所定の値以上に増加した場合、リソース実行エリア310にリソースプール350で準備しているリソースを組み込むことで提供するリソースを増やす。仮想リソース管理サーバ100は、リソース実行エリア310で実行するアプリケーションの負荷が所定の値以下に減少した場合、リソース実行エリア310で実行するリソースの組み込みを解除して提供するリソースを減らす。仮想リソース管理サーバ100は、リソースプール350に必要以上のリソースが存在する場合、リソースを初期化し特定のアプリケーションに対応づけられていない状態にし、他のサービスにも使用できるようにする。
リソース実行エリア310は、アプリケーションA実行エリア320とアプリケーションB実行エリア330とを含む。アプリケーションA実行エリア320は、アプリケーションA322a,322bを実行させた仮想マシン321a,321bを含む仮想的な領域である。アプリケーションB実行エリア330は、アプリケーションB332a,332bを実行させた仮想マシン331a,331bを含む仮想的な領域である。
リソースプール350は、アプリケーションAリソースプール360とアプリケーションBリソースプール370とを含む。アプリケーションAリソースプール360は、アプリケーションA362a,362bを待機させた仮想マシン361a,361bを含む仮想的な領域である。アプリケーションBリソースプール370は、アプリケーションB372a,372bを待機させた仮想マシン371a,371bを含む仮想的な領域である。
なお、上述のリソースの配置は一例であり、リソース実行エリア310には1以上のリソースが実行状態であればよく、リソースプール350には1以上のリソースが準備状態であればよい。
次に、第2の実施形態のサービス接続情報について図5を用いて説明する。図5は、第2の実施形態のサービス接続情報の一例を示す図である。
サービス接続情報600は、クラウドシステム300で提供するアプリケーションのサービスにおけるデータの流れを概念的に示している。
サービス接続情報600は、サービスIDとサービス接続構成とを含む。サービスIDは、サービスを識別するための識別情報である。サービス接続構成は、識別情報を用いてデータの流れを示している。ユーザは、サービスIDで識別される複数のサービスを、同時に複数利用することも出来る。
データが流れる経路の起点または終点は、エンドポイントを識別するためのエンドポイントID(EP01,EP02,EP03)で示す。データが流れる経路の起点または終点は、ルータ250,251に対応する。
データが流れる中継点は、サービスを提供するアプリケーションの識別情報であるアプリケーションID(APL−A,APL−B,APL−C)で示す。データが流れる中継点は、汎用サーバ200,201,202のいずれか、あるいは、その一部、で実行するアプリケーションに対応する。ここで、アプリケーションAの識別情報をAPL−Aとし、アプリケーションBの識別情報をAPL−Bとし、アプリケーションCの識別情報をAPL−Cとする。
サービスID「1」は、EP01を起点とし、APL−AとAPL−Bを経由し、EP02を終点とする順でデータが流れることを示す。また、サービスID「2」は、EP01を起点とし、APL−AからAPL−BおよびAPL−Cに分岐してデータが流れ、EP02およびEP03を終点とする順でデータが流れることを示す。
なお、データの流れは、通信プロトコルに応じて送信元アドレスおよび宛先アドレスや、ポート番号や、ルータ250,251で定義されたルーチングテーブル等で定義されるが詳細については省略する。
次に、第2の実施形態のアプリケーション管理情報について図6を用いて説明する。図6は、第2の実施形態のアプリケーション管理情報の一例を示す図である。
アプリケーション管理情報610は、アプリケーションごとに割当リソースと運用ルールとを設定した情報である。アプリケーション管理情報610は、仮想リソース管理サーバ100のHDD103等の記憶部に記憶される情報である。アプリケーション管理情報610は、管理システム400の運用者によって設定される情報である。
割当リソースは、アプリケーションIDで示されるアプリケーションに対して割当てるリソースを定めた情報である。割当リソースは、リソース単位タイプと、最大数と、最小数と、スケーリンググループIDを含む。リソース単位タイプは、アプリケーションIDで示されるアプリケーションが実行する仮想マシンの種別を示す。最大数は、リソース単位タイプで示されたリソースが実行する最大数を示す。最小数は、リソース単位タイプで示されたリソースが実行する最小数を示す。スケーリンググループIDは、アプリケーションIDに対応する仮想マシンのスケーリングの制御を行う単位を識別する情報である。
運用ルールは、仮想リソース管理サーバ100によってスケーリングの運用をするために用いられる情報である。運用ルールは、負荷上限値と負荷下限値を含む。
負荷上限値は、仮想リソース管理サーバ100がアプリケーションに対するスケールアウトの実行の可否を判定するために用いる値である。アプリケーションIDで示されるアプリケーションの負荷が負荷上限値を超えた場合、仮想リソース管理サーバ100がスケールアウトを実行する指示を出す。
負荷下限値は、仮想リソース管理サーバ100がアプリケーションに対するスケールインの実行の可否を判定するために用いる値である。アプリケーションIDで示されるアプリケーションの負荷が負荷下限値よりも低い場合、仮想リソース管理サーバ100がスケールインを実行する指示を出す。
負荷上限値と負荷下限値は、CPU使用率と、メモリ使用率と、スループットを含む。CPU使用率と、メモリ使用率と、スループットの値は、割当リソース単位の値である。言い換えると、仮想マシンに割当てられたCPUの使用率、仮想マシンに割当てられたメモリの使用率、仮想マシンで実行するアプリケーションのスループットの値である。なお、CPU使用率等は、負荷を計測するための指標の1つにすぎず、これら以外の値であってもよい。
次に、第2の実施形態の情報処理システムにおけるシーケンスについて図7を用いて説明する。図7は、第2の実施形態の情報処理システムにおけるシーケンスの一例を示す図である。
仮想リソース管理サーバ100、仮想インフラ管理サーバ180、アプリケーション管理サーバ190の処理は、それぞれのコンピュータが有する制御部(プロセッサ101)が実行する処理である。また、汎用サーバ200の制御部(プロセッサ101)がアプリケーションAを実行し、汎用サーバ201の制御部(プロセッサ101)がアプリケーションBを実行するものとする。
[ステップS11]汎用サーバ200において、アプリケーションAについて負荷増加の事象が発生する。
[ステップS12]アプリケーション管理サーバ190は、クラウドシステム300で実行するアプリケーションを管理し、アプリケーションAの負荷増加(スループット増加)を検知し、仮想リソース管理サーバ100に通知する。
[ステップS13]仮想インフラ管理サーバ180は、クラウドシステム300で実行する仮想システムを提供する基板システムを管理し、アプリケーションAの負荷増加(CPUまたはメモリ使用率増加)を検知し、仮想リソース管理サーバ100に通知する。
[ステップS14]仮想リソース管理サーバ100は、アプリケーション管理サーバ190および仮想インフラ管理サーバ180から負荷増加の情報を受信し、負荷増加の事象が発生したアプリケーションAのスケーリングについて実行の可否を判定する。
ここで、仮想リソース管理サーバ100は、アプリケーションAの負荷がアプリケーション管理情報610の負荷上限値を超えたことに伴い、アプリケーションAのスケールアウトの実行を可と判定する。
[ステップS15]仮想リソース管理サーバ100は、アプリケーションAのスケールアウトの実行を仮想インフラ管理サーバ180とアプリケーション管理サーバ190に指示する。
仮想インフラ管理サーバ180は、CPUやメモリ等のリソースを汎用サーバ200で実行させる仮想マシンに割当てる制御を行う。また、アプリケーション管理サーバ190は、追加する仮想マシンおよびアプリケーションAを汎用サーバ200で実行させる制御を行う。
[ステップS16]汎用サーバ200は、仮想インフラ管理サーバ180およびアプリケーション管理サーバ190からの制御に基づき、スケールアウトを実行する。言い換えると、汎用サーバ200は、アプリケーションA実行エリア320においてアプリケーションAを実行する仮想マシンの量を増加させる。なお、仮想マシンの量を増加させることは、仮想マシンの数を増加させることを含む。
[ステップS17]仮想リソース管理サーバ100は、スケールアウトを実行したことに伴い、相関観測情報を更新する。相関観測情報は、相関アプリケーションを特定するための情報である。相関観測情報は、後で図12を用いて説明する。
[ステップS18]仮想リソース管理サーバ100は、相関観測情報を用いて事象が発生したアプリケーションAと相関関係にあるアプリケーションを特定する。以下の説明において、事象発生アプリケーションに対して相関関係にあるアプリケーションを相関アプリケーションと記載する。
相関アプリケーションとは、たとえば、負荷増加の事象が発生したアプリケーションに対してスケールアウトを実行した場合に、所定の時間内にスケールアウトを実行した他のアプリケーションである。また、相関アプリケーションとは、たとえば、負荷減少の事象が発生したアプリケーションに対してスケールインを実行した場合に、所定の時間内にスケールインを実行した他のアプリケーションである。相関アプリケーションを特定する処理の詳細は、後で図10を用いて説明する。
ここで、アプリケーションAに対する相関アプリケーションをアプリケーションBとする。
[ステップS19]仮想リソース管理サーバ100は、相関アプリケーションのリソースプール容量の制御の実行について判定する。リソースプール容量は、リソースプールが保持可能なリソースの最大量である。
たとえば、事象が発生したアプリケーションAについてスケールアウトを実行したことに伴い、仮想リソース管理サーバ100は、相関アプリケーションであるアプリケーションBに対応するリソースプール容量を増加する制御を実行すると判定する。
[ステップS20]仮想リソース管理サーバ100は、アプリケーションBのリソースプール容量を増加させる指示を仮想インフラ管理サーバ180とアプリケーション管理サーバ190に送信する。
仮想インフラ管理サーバ180は、アプリケーションBのリソースプールに割当てるCPUやメモリや仮想マシン等のリソースプール容量の上限を増加させる制御を行う。また、アプリケーション管理サーバ190は、アプリケーションBのリソースプールに割当てる仮想マシンおよびアプリケーションBの数(リソース量)を増加させる制御を行う。
[ステップS21]汎用サーバ201は、仮想インフラ管理サーバ180およびアプリケーション管理サーバ190からの制御に基づき、アプリケーションBリソースプール370のリソースプール容量とリソース量とを増加させる。
なお、上述のシーケンスは、負荷増加の事象が発生した例を示したが、負荷減少の事象が発生した場合にも適用が可能である。負荷減少の事象が発生した場合、仮想リソース管理サーバ100は、ステップS15でスケールインの実行を指示し、汎用サーバ200がスケールインを実行する。また、仮想リソース管理サーバ100は、ステップS20でリソースプールのリソースプール容量の削減を指示し、汎用サーバ201がリソースプール容量を削減する。仮想リソース管理サーバ100の処理の詳細については、後で図8,図10,図14,図17を用いて説明する。
このように、仮想リソース管理サーバ100は、事象発生アプリケーションのスケーリングに応じて、相関アプリケーションのリソースプールの容量を増減させる。仮想リソース管理サーバ100は、相関アプリケーションについて負荷増加を検知する前にリソースプール容量とリソース量を増加させることで、ユーザに提供するアプリケーションの性能が損なわれないようにできる。また、仮想リソース管理サーバ100は、相関アプリケーションについて負荷減少を検知する前にリソースプール内のリソース量を削減させることで、リソースを早く開放できる。
次に、第2の実施形態のリソース制御処理について図8を用いて説明する。図8は、第2の実施形態のリソース制御処理のフローチャートを示す図である。
リソース制御処理は、仮想リソース管理サーバ100がスケーリングの実行を判断し、相関アプリケーションを判定する指示および相関アプリケーションのリソースプールの制御を指示する処理である。
仮想リソース管理サーバ100の制御部(プロセッサ101)は、アプリケーションの負荷が変動した旨の通知を受信してリソース制御処理を実行する。
[ステップS31]制御部は、負荷変動通知を仮想インフラ管理サーバ180またはアプリケーション管理サーバ190から受信したか否かを判定する。制御部は、負荷変動通知を受信した場合にステップS32にすすみ、受信しない場合にステップS31にすすむ。
負荷変動通知は、アプリケーションの負荷が変動した旨を通知する情報である。負荷変動通知には、負荷の増加または減少があったアプリケーションを識別するアプリケーションIDと負荷観測値が含まれる。負荷観測値には、CPU使用率、メモリ使用率、スループットのいずれかの値が含まれる。
[ステップS32]制御部は、負荷変動のあったアプリケーションを事象発生アプリケーションとして特定する。
[ステップS33]制御部は、スケーリングの実行の可否を判断する。具体的には、制御部は、事象発生アプリケーションの負荷観測値とアプリケーション管理情報610の運用ルールで定められた負荷上限値および負荷下限値とを比較し、スケーリングの可否を判定する。制御部は、負荷観測値のいずれかが負荷上限値を超えている場合、スケールアウトを実行すると判断する。制御部は、負荷観測値のいずれかが負荷下限値よりも低い場合、スケールインを実行すると判断する。制御部は、負荷観測値のいずれもが負荷上限値と負荷下限値の間の値である場合、スケーリングを実行しないと判断する。制御部は、スケーリングを実行する場合にステップS34にすすみ、スケーリングを実行しない場合にステップS31にすすむ。
[ステップS34]制御部は、事象発生アプリケーションのスケーリングの指示を仮想インフラ管理サーバ180とアプリケーション管理サーバ190に送信する。
制御部がスケールアウトの指示を送信した場合、仮想インフラ管理サーバ180は、CPUやメモリ等のリソースを仮想マシンに割当てる制御を行う。また、アプリケーション管理サーバ190は、追加する仮想マシンおよび事象発生アプリケーションを実行させる制御を行う。こうして、制御部は、リソース実行エリア310において事象発生アプリケーションが実行する仮想マシンの数を増加させる。
制御部がスケールインの指示を送信した場合、アプリケーション管理サーバ190は、ユーザからの処理を実行していない仮想マシンおよび事象発生アプリケーションを停止させる制御を行う。また、仮想インフラ管理サーバ180は、CPUやメモリ等のリソースを仮想マシンに対する割当てを解除する。こうして、制御部は、リソース実行エリア310において事象発生アプリケーションが実行する仮想マシンの数を削減する。
なお、制御部は、スケーリングを実行した履歴をイベントログとして記録する。イベントログに記録するイベントは、スケールインまたはスケールアウトである。イベントログは、後で図11を用いて説明する。
[ステップS35]制御部は、動作モード管理情報を記憶部から読み出し、事象発生アプリケーションが所属するスケーリンググループの動作モードを判定する。なお、スケーリンググループは、アプリケーション管理情報610に含まれるスケーリンググループIDで識別される。制御部は、動作モードが相関判定モードである場合にステップS36にすすみ、動作モードが相関制御モードである場合にステップS37にすすむ。
ここで、第2の実施形態の動作モード管理情報について図9を用いて説明する。図9は、第2の実施形態の動作モード管理情報の一例を示す図である。
動作モード管理情報620は、スケーリンググループごとに動作モードを管理する情報である。動作モード管理情報620は、仮想リソース管理サーバ100のHDD103等の記憶部に記憶される情報である。動作モード管理情報620は、動作モードと、動作モード遷移条件とを含む。
動作モードは、仮想リソース管理サーバ100が実行する処理を決定する情報である。動作モードは、相関判定モードまたは相関制御モードのどちらかの値が設定される。動作モードに相関判定モードが設定された場合、仮想リソース管理サーバ100は、相関判定処理を実行する。動作モードに相関制御モードが設定された場合、仮想リソース管理サーバ100は、相関制御処理を実行する。動作モードを設定する処理については、後で図10,図14を用いて説明する。なお、動作モードの初期値は、相関判定モードが運用者によって設定される。
動作モード遷移条件は、動作モードを現在の動作モードから他の動作モードに設定する場合の条件を定めた情報である。動作モード遷移条件は、自律遷移または運用者指示のどちらかの値が設定される。動作モード遷移条件に自律遷移が設定された場合、仮想リソース管理サーバ100は、相関判定処理の終了時に動作モードを相関制御モードに設定し、相関制御処理の終了時に動作モードを相関判定モードに設定する。動作モード遷移条件に運用者指示が設定された場合、仮想リソース管理サーバ100は、管理システム400の運用者の指示によって動作モードを設定する。
再び、リソース制御処理のフローチャートの説明に戻る。
[ステップS36]制御部は、相関判定処理を実行する。相関判定処理は、相関アプリケーションを特定する処理である。相関判定処理は、後で図10を用いて説明する。
[ステップS37]制御部は、相関制御処理を実行する。相関制御処理は、相関アプリケーションのリソースプールの容量制御を行う処理である。相関制御処理は、後で図14を用いて説明する。
次に、第2の実施形態の相関判定処理について図10を用いて説明する。図10は、第2の実施形態の相関判定処理のフローチャートを示す図である。
相関判定処理は、相関アプリケーションを特定する処理である。相関判定処理は、リソース制御処理のステップS36で仮想リソース管理サーバ100の制御部(プロセッサ101)が実行する。
[ステップS41]制御部は、イベントログに基づき相関観測情報を更新する。言い換えると、制御部は、イベントログに記録したデータから、判定時間間隔の間に同一のイベントタイプのイベントを実行したデータの組み合せを抽出し、相関観測情報に反映する。
ここで、第2の実施形態のイベントログについて図11を用いて説明する。図11は、第2の実施形態のイベントログの一例を示す図である。
イベントログ630は、仮想リソース管理サーバ100がスケーリングを実行した履歴を記録した履歴情報である。イベントログ630は、仮想リソース管理サーバ100のHDD103等の記憶部に記憶される情報である。イベントログ630は、実行時刻と、イベントタイプと、イベント実行アプリケーションIDとを含む。実行時刻は、スケールインまたはスケールアウトが仮想リソース管理サーバ100によって実行された時刻である。イベントタイプは、スケールインまたはスケールアウトのいずれかを示す。イベント実行アプリケーションIDは、スケールインまたはスケールアウトを実行したアプリケーションを識別する情報である。
次に、第2の実施形態の相関観測情報について図12を用いて説明する。図12は、第2の実施形態の相関観測情報の一例を示す図である。
相関観測情報640は、イベントログ630から判定時間間隔の間に同一イベントタイプのイベントを実行したデータの組み合せを抽出して反映した情報である。また、相関観測情報640は、相関アプリケーションを特定するための情報である。相関観測情報640は、アプリケーションIDと、連動アプリケーション観測数とアプリ単位標本数と、全標本数とを含む。アプリケーションIDは、アプリケーションを識別する情報である。連動アプリケーション観測数は、アプリケーションIDで特定されるアプリケーションに対してイベントを実行してから判定時間間隔の間に他のアプリケーションで同一イベントを実行した件数である。アプリ単位標本数は、連動アプリケーション観測数に登録された件数をアプリケーション単位に合計した数である。全標本数は、全てのアプリ単位標本数の合計値である。なお、図12の相関観測情報の対象、すなわち、標本の母集団となる対象は、情報処理システム500単位、ユーザ単位、あるいは、サービスID単位のいずれの場合も含む。
次に、第2の実施形態の相関判定情報について図13を用いて説明する。図13は、第2の実施形態の相関判定情報の一例を示す図である。
相関判定情報650は、イベントログからデータを抽出し、相関観測情報640から相関アプリケーションを判定する際に用いられる情報である。相関判定情報650は、仮想リソース管理サーバ100のHDD103等の記憶部に記憶される情報である。相関判定情報650は、判定時間間隔と、全標本数閾値と、アプリ単位標本数閾値と、相関閾値とを含む。判定時間間隔は、イベントログ630から同一のイベントタイプを実行したデータを抽出するために用いる時間である。全標本数閾値は、全標本数の閾値である。アプリ単位標本数閾値は、アプリ単位標本数の閾値である。相関閾値は、相関係数の閾値である。相関係数は、連動アプリケーション観測数の標本数をアプリ単位標本数で割った値である。
再び、相関判定処理のフローチャートの説明に戻る。
ここで、制御部が、イベントログに記録したデータから、判定時間間隔の間に同一のイベントタイプのイベントを実行したデータの組み合せを抽出し、相関観測情報640に反映する処理について説明する。
制御部は、イベントログ630から、あるアプリケーションに対してスケールインを実行した時刻から判定時間間隔内に他のアプリケーションに対してスケールインを実行したデータを抽出する。また、制御部は、イベントログ630から、あるアプリケーションに対してスケールアウトを実行した時刻から判定時間間隔内に他のアプリケーションに対してスケールアウトを実行したデータを抽出する。
たとえば、イベントログ630のデータを用いて説明する。制御部は、15時36分12秒にスケールアウトがAPL−Aに対して実行したデータを読み出す。制御部は、APL−Aに対しスケールアウトを実行した時刻から判定時間間隔(15分)内である15時42分09秒にAPL−Bに対してスケールアウトを実行したデータを読み出す。制御部は、15時36分12秒にスケールアウトがAPL−Aに対して実行したデータと、15時42分09秒にスケールアウトがAPL−Bに対して実行したデータとを関係情報としてイベントログ630から抽出する。抽出した関係情報は、実行時刻が前である「APL−A」をアプリケーションIDとし、実行時刻が後である「APL−B」を連動アプリケーションのアプリケーションIDであるものとする。アプリケーションID「APL−A」に対応する連動アプリケーション観測数「APL−B」のエントリに標本数「1」が加算されることで相関観測情報640に反映される。
[ステップS42]制御部は、全標本数が全標本数閾値以上であるか否かを判定する。制御部は、全標本数が全標本数閾値以上である場合にステップS43にすすみ、全標本数が全標本数閾値以上でない場合にステップS31にすすむ。
[ステップS43]制御部は、事象発生アプリケーションについて、アプリ単位標本数がアプリ単位標本数閾値以上であるか否かを判定する。制御部は、アプリ単位標本数がアプリ単位標本数閾値以上である場合にステップS44にすすみ、アプリ単位標本数がアプリ単位標本数閾値以上でない場合にステップS31にすすむ。
[ステップS44]制御部は、事象発生アプリケーションについて相関係数を算出する。言い換えると、制御部は、事象発生アプリケーションの連動アプリケーション観測数について相関係数を算出する。
ここで、事象発生アプリケーションが「APL−A」である場合、相関係数の算出について相関観測情報640を用いて説明する。
アプリケーションID「APL−A」に対する連動アプリケーション観測数「APL−B」のエントリは「17」である。アプリケーションID「APL−A」に対するアプリ単位標本数は「20」である。アプリケーションID「APL−A」と連動アプリケーション観測数「APL−B」の相関係数は、分子を17とし、分母を20とした除算の結果(17/20=0.85)を百分率で表した85%となる。同様にして、アプリケーションID「APL−A」と連動アプリケーション観測数「APL−C」の相関係数は、分子を1とし、分母を20とした除算の結果(1/20=0.05)を百分率で表した5%となる。
[ステップS45]制御部は、相関係数が相関閾値以上のアプリケーションを事象発生アプリケーションに対する相関アプリケーションとして特定する。
たとえば、事象発生アプリケーションが「APL−A」である場合について説明する。ここで、相関閾値の値は、相関判定情報650に基づき80%である。制御部は、アプリケーションID「APL−A」と連動アプリケーション観測数「APL−B」の相関係数が85%であり相関閾値80%以上であるため、「APL−B」を相関アプリケーションとして特定する。
[ステップS46]制御部は、動作モード遷移条件が自律遷移であるか否かを判定する。制御部は、動作モード遷移条件が自律遷移である場合にステップS47にすすみ、運用者指示である場合(自律遷移でない場合)にステップS48にすすむ。
[ステップS47]制御部は、動作モードを相関制御モードに設定し、ステップS35にすすむ。
[ステップS48]制御部は、相関アプリケーションのアプリケーション識別情報を運用者に通知し、動作モード遷移指示の受付待ち画面をディスプレイ111に表示する。
なお、制御部は、相関アプリケーションのアプリケーション識別情報をディスプレイ111に表示することにより運用者に通知してもよいし、メールで送信することにより運用者に通知してもよいし、その他の方法であってもよい。
[ステップS49]制御部は、動作モードを相関制御モードに設定する遷移指示を受け付け、ステップS35にすすむ。
なお、上述の方法は一例であり、他の方法で相関アプリケーションを特定してもよい。たとえば、イベントログ630に記録したデータから、判定時間間隔の間に異なるイベントタイプのイベントを実行したデータの組み合せを抽出して、相関アプリケーションを特定してもよいし、他の方法で相関関係を特定してもよい。
次に、第2の実施形態の相関制御処理について図14を用いて説明する。図14は、第2の実施形態の相関制御処理のフローチャートを示す図である。
相関制御処理は、相関アプリケーションのリソースプールの容量制御を行う処理である。相関制御処理は、リソース制御処理のステップS37で仮想リソース管理サーバ100の制御部(プロセッサ101)が実行する処理である。
[ステップS51]制御部は、事象発生アプリケーションに対する相関アプリケーションが存在するか否かを判定する。制御部は、相関アプリケーションが存在する場合はステップS52にすすみ、存在しない場合はステップS59にすすむ。
[ステップS52]制御部は、相関アプリケーションの1つを対象アプリケーションとして特定する。たとえば、複数の相関アプリケーションが存在する場合、制御部は、相関係数が高い順に1つのアプリケーションを対象アプリケーションとして特定する。
[ステップS53]制御部は、リソースプール空時処理を実行する。リソースプール空時処理は、対象アプリケーションのリソースプールに含まれるリソースが空(ゼロ)であるか否かを判定し、リソースプールの制御を指示する処理である。リソースプール空時処理は、後で図17を用いて説明する。
[ステップS54]制御部は、ステップS34におけるスケーリングの指示がスケールインまたはスケールアウトのいずれであるかを判定する。制御部は、スケーリングの指示がスケールインである場合にステップS55にすすみ、スケーリングの指示がスケールアウトである場合にステップS56にすすむ。
[ステップS55]制御部は、対象アプリケーションのリソースプールの容量を削減し、リソースプールに含まれるリソースの量を削減する。
ここで、第2の実施形態のリソースプール状態情報について図15を用いて説明する。図15は、第2の実施形態のリソースプール状態情報の一例を示す図である。
リソースプール状態情報660は、リソースプールに含まれるリソースの状態を示す情報である。リソースプール状態情報660は、アプリケーションごとのリソースプールに対応して存在する情報であり、言い換えると、スケーリンググループIDごとに存在する。リソースプール状態情報660は、仮想リソース管理サーバ100のHDD103等の記憶部に記憶される情報である。
リソースプール状態情報660は、可用リソース量と、可用リソースIDとを含む。
可用リソース量は、リソースプールに含まれるリソースの量であり、たとえば、スタンバイ状態のアプリケーションを備えた仮想マシンの数である。可用リソースIDは、リソースプールに含まれるリソースを識別する識別情報である。可用リソースIDは、リソースプールに含まれる仮想マシンの識別情報やアプリケーションの識別情報等を含めることができる。
次に、第2の実施形態のリソースプール制御情報について図16を用いて説明する。図16は、第2の実施形態のリソースプール制御情報の一例を示す図である。
リソースプール制御情報670は、リソースプールの制御を行うために用いる情報である。リソースプール制御情報670は、アプリケーションごとのリソースプールに対応して存在する情報であり、言い換えると、スケーリンググループIDごとに存在する。リソースプール制御情報670は、仮想リソース管理サーバ100のHDD103等の記憶部に記憶される情報である。
リソースプール制御情報670は制御項目として、リソース容量上限値と、リソース容量下限値と、リソース増加量と、リソース削減量と、増加量導出係数と、削減量導出係数とを含む。リソース容量上限値は、リソースプールの容量の上限を示す値である。リソース容量下限値は、リソースプールの容量の下限を示す値である。リソース増加量は、リソースプールに含まれるリソース量を増加させる場合に、増加させるリソースの単位量である。なお、リソースの量は、メモリやCPU等のコンピュータ資源の割当て量や、仮想マシンの台数等を含む。リソース削減量は、リソースプールに含まれるリソース量を削減させる場合に、削減させるリソースの単位量である。増加量導出係数は、リソース増加量を変更する値である。削減量導出係数は、リソース削減量を変更する値である。各制御項目の初期値は、運用者が予め設定できる。
リソースプール制御情報670の有効/無効は、制御項目を有効とするか、無効とするかを示す情報である。制御項目を有効とした場合、制御項目で指定された値に従ってリソースプールのリソースの容量制御を行う。制御項目を無効とした場合、各制御項目の値は運用者の入力で設定する。
再び、相関制御処理のフローチャートの説明に戻る。
ここで、制御部がリソースプールの容量を削減する処理について説明する。制御部は、リソースプール制御情報670からリソースプール容量上限値とリソース削減量とを取得し、リソースプール容量上限値からリソース削減量を減算した値をリソース容量上限値として設定する。なお、制御部は、リソースプール容量上限値からリソース削減量を減算した値が、リソース容量下限値以下になる場合、本処理を実行することを要しない。
次に、制御部がリソースプールに含まれるリソースの量を削減する処理について説明する。制御部は、リソースプール状態情報660から可用リソース量を読み出し、リソースプール制御情報670からリソース容量下限値と削減量導出係数を読み出す。制御部は、可用リソース量がリソース容量下限値以下でない場合、リソースプールからリソース削減量のリソースを削減する。また、制御部は、リソース削減量の値に削減量導出係数を加算した値をリソース削減量として設定する。
なお、制御部は、可用リソース量からリソース削減量を減算した値が、リソース容量下限値以下になる場合には、本処理を実行することを要しない。
[ステップS56]制御部は、対象アプリケーションのリソースプールの容量を増加し、リソースプールに含まれるリソースの量を増加する。
ここで、制御部がリソースプールの容量を増加する処理について説明する。制御部は、リソースプール制御情報670からリソースプール容量上限値とリソース増加量とを取得し、リソースプール容量上限値とリソース増加量とを合計した値をリソース容量上限値として設定する。
次に、制御部がリソースプールに含まれるリソースの量を増加する処理について説明する。制御部は、リソースプール状態情報660から可用リソース量を読み出し、リソースプール制御情報670からリソース容量上限値と増加量導出係数を読み出す。制御部は、可用リソース量がリソース容量上限値を超えない場合、リソースプールにリソース増加量のリソースを生成してリソースの量を増加する。また、制御部は、リソース増加量の値に増加量導出係数を加算した値をリソース増加量として設定する。
なお、制御部は、可用リソース量にリソース増加量を加算した値が、リソース容量上限値を超える場合には、本ステップを実行することを要しない。
[ステップS57]制御部は、ステップS53から本ステップまでを未処理の相関アプリケーションが存在するか否かを判定する。制御部は、未処理の相関アプリケーションが存在する場合にステップS58にすすみ、未処理の相関アプリケーションが存在しない場合にステップS59にすすむ。
[ステップS58]制御部は、ステップS53からステップS57までが未処理の相関アプリケーションを対象アプリケーションとして特定し、ステップS53にすすむ。
[ステップS59]制御部は、動作モードを相関判定モードに設定し、相関制御処理を終了する。
次に、第2の実施形態のリソースプール空時処理について図17を用いて説明する。図17は、第2の実施形態のリソースプール空時処理のフローチャートを示す図である。
リソースプール空時処理は、対象アプリケーションのリソースプールに含まれるリソースが空(ゼロ)であるか否かを判定し、リソースプールの制御を指示する処理である。リソースプール空時処理は、相関制御処理のステップS53で仮想リソース管理サーバ100の制御部(プロセッサ101)が実行する処理である。
[ステップS61]制御部は、対象アプリケーションに対応するリソースプールのリソースがゼロであるか否かを判定する。制御部は、リソースがゼロである場合にステップS62にすすみ、リソースがゼロではない場合にステップS57にすすむ。
なお、リソースプールのリソースがゼロとは、リソースプールにリソースが含まれていない状態である。
[ステップS62]制御部は、ステップS34におけるスケーリングの指示がスケールインまたはスケールアウトのいずれであるかを判定する。制御部は、スケーリングの指示がスケールアウトである場合にステップS63にすすみ、スケーリングの指示がスケールインである場合にリソースプール空時処理を終了する。
[ステップS63]制御部は、リソース容量上限値を増加する。たとえば、制御部は、リソース容量上限値にリソース増加量を加えた値をリソース容量上限値として設定する。
[ステップS64]制御部は、対象アプリケーションのスケールアウトの実行を仮想インフラ管理サーバ180とアプリケーション管理サーバ190に指示する。たとえば、制御部は、リソース増加量のリソースを生成し、対象アプリケーションのリソース実行エリア310に組み込む指示を送信する。言い換えると、制御部は、リソースプール350を介さずに(リソースプール350のリソースを増やさずに)、直接、リソース実行エリア310のリソースを増やす。
なお、上述したリソースプール空時処理は、リソースプールにリソースが含まれていない場合のみではなく、リソースの量が所定の量に満たない場合や、アプリケーションに割当てるべきリソースが不足している場合について適用してもよい。
次に、第2の実施形態のスケールアウトの実行前後におけるリソースプールの制御概要と、スケールインの実行前後におけるリソースプールの制御概要について図18を用いて説明する。図18は、(A)が第2の実施形態のスケールアウトの実行前後におけるリソースプールの制御概要を示す図であり、(B)がスケールインの実行前後におけるリソースプールの制御概要を示す図である。
図18の説明において、アプリケーションAリソースプール360が事象発生アプリケーションに対応するリソースプールであり、アプリケーションBリソースプール370が相関アプリケーションに対応するリソースプールであるものとする。
図18(A)は、スケールアウトの実行前後におけるリソースプール容量とリソース量の制御について示した図である。アプリケーションAリソースプール360は、スケールアウトが発生したことに伴い、アプリケーションA実行エリア320に対するリソース割当てが発生するためリソース量が減少する(810,811)。アプリケーションBリソースプール370は、仮想リソース管理サーバ100によりリソース制御が実行されるため、アプリケーションAでスケールアウトが発生した後、リソースプールの容量が増加しリソース量も増加する(820,821)。このように、スケールアウトがアプリケーションAに実行された場合、アプリケーションBリソースプール370のリソースプール容量とリソース量は、共に増加する正比例の関係になる。
図18(B)は、スケールインの実行前後におけるリソースプール容量とリソース量の制御について示した図である。アプリケーションAリソースプール360は、スケールインが発生したことに伴い、アプリケーションA実行エリア320におけるリソースの組み込みが解除されてアプリケーションAリソースプール360に戻るためリソース量が増加する(850,851)。アプリケーションBリソースプール370は、仮想リソース管理サーバ100によりリソース制御が実行され、リソースプール容量とリソース量は減少する。しかし、アプリケーションB実行エリア330においてもスケールインが発生した場合、アプリケーションB実行エリア330におけるリソースの組み込みが解除されてアプリケーションBリソースプール370に戻るため、リソース量が増加する(860,861)。このように、スケールインがアプリケーションAに実行された後にアプリケーションBにも実行された場合、アプリケーションBリソースプール370のリソースプール容量が減少しリソース量が増加し、リソースプール容量とリソース量は逆比例の関係になる。
このようにして、仮想リソース管理サーバ100は、負荷変動が発生したアプリケーションと相関関係のある相関アプリケーションを特定し、相関アプリケーションについてスケーリングを実行する前にリソースプールのリソースの容量制御を行うことができる。これにより、仮想リソース管理サーバ100は、相関アプリケーションに対するリソースの枯渇や、過剰なリソースの割当てを低減できる。
クラウドシステム300では、アプリケーションごとに必要となるリソースの容量やリソースの消費単位やリソースの消費パターンが異なるため、全てのアプリケーションに対して余裕を見込んだ設定にならざるを得ず、過剰なリソース割当てになる場合があった。あるサービスに対して過剰にリソースが割当てられた場合、クラウドシステム300を共有して利用する他のサービスに利用できるリソースが減少するため、他のサービスに対して別途リソース割当てが必要となり、管理や運用コストが増大する懸念があった。また、クラウドシステム300において、複数のアプリケーションで1つのサービスを提供する場合、アプリケーションのいずれかに対応するリソースプールのリソースが枯渇したことに伴い、サービス全体の処理能力が低下する等の影響が出る場合もあった。
仮想リソース管理サーバ100が、相関アプリケーションについてスケーリングの実行前にリソースプールの制御を行うことで、リソースの過剰な割当てやサービス全体の処理能力の低下を軽減できる。
また、クラウドシステム300において多数のアプリケーションが多段または分岐接続する複雑な構成である場合、運用者は、多数のアプリケーションの負荷変動や必要となるリソース量を事前に把握することは困難であり、制御に多大な労力を必要とした。
仮想リソース管理サーバ100は、相関アプリケーションを特定してリソース量の制御を行うことで、運用者が多数のアプリケーションのリソース量の制御を行う労力を軽減できる。
こうして、仮想リソース管理サーバ100は、あるアプリケーションのスケーリングに応じて他のアプリケーションのリソースプールの容量を制御し、リソースの枯渇を回避するとともに予備リソースの削減を図ることができる。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、制御装置50、仮想リソース管理サーバ100、仮想インフラ管理サーバ180、アプリケーション管理サーバ190、汎用サーバ200,201,202が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD、DVD−RAM、CD−ROM(Read Only Memory)/RW(ReWritable)などがある。光磁気記録媒体には、MOなどがある。
プログラムを流通させる場合には、たとえば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、たとえば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムにしたがった処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムにしたがった処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムにしたがった処理を実行することもできる。
また、上記の処理機能の少なくとも一部を、DSP、ASIC、PLDなどの電子回路で実現することもできる。
10 第1機能
11 第1仮想マシン
12,13 第1仮想マシンに含まれる仮想マシンの増加
14 第1予備仮想マシン
15,16 第1予備仮想マシンに含まれる予備仮想マシンの減少
20 第2機能
21 第2仮想マシン
22,23 第2仮想マシンの増減なし
24 第2予備仮想マシン
25,26 第2予備仮想マシンの容量の増加
50 制御装置
51 制御部
51a 仮想マシン制御
51b 相関有無判定制御
51c 予備仮想マシン制御

Claims (8)

  1. 所定の機能を実行する仮想マシンと前記所定の機能を実行するために用意される予備仮想マシンを割当てる制御装置であって、
    第1機能を実行する仮想マシンの増減と、第2機能を実行する仮想マシンの増減との相関の有無を判定し、
    前記相関があるとき、前記第1機能を実行する仮想マシンの増減に基づいて、前記第2機能を実行するために用意される予備仮想マシンの最大容量を決定する制御部、
    を備える制御装置。
  2. 前記制御部は、
    前記第1機能を実行する仮想マシンを増減した時間と、前記第2機能を実行する仮想マシンを増減した時間とを履歴情報として記憶部に記憶し、
    前記第1機能を実行する仮想マシンの増減と、前記第2機能を実行する仮想マシンの増減とが、所定の時間内に行われている関係情報を前記履歴情報から抽出し、
    前記抽出した関係情報に基づいて前記第2機能を前記相関があると判定する、
    請求項1記載の制御装置。
  3. 前記制御部は、
    前記第1機能を実行する仮想マシンの増減に基づいて、前記第2機能を実行するために用意される予備仮想マシンの容量を増減し、前記第2機能を実行するために用意される予備仮想マシンの量を増減する制御を行う、
    請求項1記載の制御装置。
  4. 前記制御部は、
    前記第1機能を実行する仮想マシンの増減が前記仮想マシンを増やすものであった場合、
    前記第2機能を実行するために用意される予備仮想マシンの容量を増やし、前記第2機能を実行するために用意される予備仮想マシンの量を増やす制御を行う、
    請求項1記載の制御装置。
  5. 前記制御部は、
    前記第1機能を実行する仮想マシンの増減が前記仮想マシンを減らすものであった場合、
    前記第2機能を実行するために用意される予備仮想マシンの容量を減らし、前記第2機能を実行するために用意される予備仮想マシンの量を減らす制御を行う、
    請求項1記載の制御装置。
  6. 前記制御部は、
    前記第2機能を実行するために用意される予備仮想マシンの容量に基づいて前記第2機能を実行するために用意される予備仮想マシンの容量を増減する容量を決定し、
    前記第2機能を実行するために用意される予備仮想マシンの量に基づいて前記第2機能を実行するために用意される予備仮想マシンの量を増減する量を決定する、
    請求項1記載の制御装置。
  7. 前記制御部は、
    前記第1機能を実行する仮想マシンの増減が前記仮想マシンを増やすものであった場合、かつ、前記第2機能を実行するために用意される予備仮想マシンの量が所定の量に満たない場合、前記第2機能を実行するために用意される予備仮想マシンの量を増やさずに、前記第2機能を実行する仮想マシンを増やす、
    請求項1記載の制御装置。
  8. 所定の機能を実行する仮想マシンと前記所定の機能を実行するために用意される予備仮想マシンを割当てる制御方法であって、
    コンピュータが、
    第1機能を実行する仮想マシンの増減と、第2機能を実行する仮想マシンの増減との相関の有無を判定し、
    前記相関があるとき、前記第1機能を実行する仮想マシンの増減に基づいて、前記第2機能を実行するために用意される予備仮想マシンの最大容量を決定する、
    処理を実行する制御方法。
JP2016199862A 2016-10-11 2016-10-11 制御装置および制御方法 Pending JP2018063470A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016199862A JP2018063470A (ja) 2016-10-11 2016-10-11 制御装置および制御方法
US15/702,931 US20180101413A1 (en) 2016-10-11 2017-09-13 Control device and control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016199862A JP2018063470A (ja) 2016-10-11 2016-10-11 制御装置および制御方法

Publications (1)

Publication Number Publication Date
JP2018063470A true JP2018063470A (ja) 2018-04-19

Family

ID=61828905

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016199862A Pending JP2018063470A (ja) 2016-10-11 2016-10-11 制御装置および制御方法

Country Status (2)

Country Link
US (1) US20180101413A1 (ja)
JP (1) JP2018063470A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019187272A1 (ja) 2018-03-29 2019-10-03 パナソニックIpマネジメント株式会社 ロータリコンプレッサ
JP2023147397A (ja) * 2022-03-30 2023-10-13 ソフトバンク株式会社 制御装置、プログラム、及び制御方法

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10203991B2 (en) * 2017-01-19 2019-02-12 International Business Machines Corporation Dynamic resource allocation with forecasting in virtualized environments
JP7302178B2 (ja) * 2019-01-22 2023-07-04 富士通株式会社 ストレージ制御装置、ストレージ制御プログラム、及び、ストレージシステム
US11409727B2 (en) * 2019-09-18 2022-08-09 International Business Machines Corporation Concurrent execution of database operations
US11481262B1 (en) 2020-06-25 2022-10-25 Amazon Technologies, Inc. Rapid autoscaling with preinitialized instance quantity based on historical scale up rate
US11520638B1 (en) * 2020-06-25 2022-12-06 Amazon Technologies, Inc. Combined active and preinitialized resource management for rapid autoscaling
US20230071047A1 (en) * 2021-09-08 2023-03-09 Microstrategy Incorporated Systems and methods for virtual machine resource distribution

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8516478B1 (en) * 2008-06-12 2013-08-20 Mcafee, Inc. Subsequent processing of scanning task utilizing subset of virtual machines predetermined to have scanner process and adjusting amount of subsequest VMs processing based on load
US9842136B2 (en) * 2012-04-27 2017-12-12 Hitachi, Ltd. Database management system, computer, and database management method

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019187272A1 (ja) 2018-03-29 2019-10-03 パナソニックIpマネジメント株式会社 ロータリコンプレッサ
JP2023147397A (ja) * 2022-03-30 2023-10-13 ソフトバンク株式会社 制御装置、プログラム、及び制御方法

Also Published As

Publication number Publication date
US20180101413A1 (en) 2018-04-12

Similar Documents

Publication Publication Date Title
JP2018063470A (ja) 制御装置および制御方法
US11032359B2 (en) Multi-priority service instance allocation within cloud computing platforms
CN107430528B (zh) 机会性资源迁移以优化资源放置
EP1763749B1 (en) Facilitating access to input/output resources via an i/o partition shared by multiple consumer partitions
CN110753131A (zh) 微服务分布式限流方法及装置、存储介质和电子设备
US10810096B2 (en) Deferred server recovery in computing systems
US10728316B2 (en) Rolling capacity upgrade control
JP2011521319A (ja) 管理システムのコンピューティングリソースを管理するための方法および装置
JP2015153402A (ja) 管理装置、業務負荷分散管理方法および業務負荷分散管理プログラム
CN108874502B (zh) 云计算集群的资源管理方法、装置及设备
JP2017107274A (ja) 仮想マシン増設方法、情報処理装置および仮想マシン増設システム
EP4029197B1 (en) Utilizing network analytics for service provisioning
JP2011180889A (ja) ネットワークリソース管理システム、装置、方法及びプログラム
CN111064781A (zh) 多容器集群监控数据的采集方法、装置及电子设备
KR20200080458A (ko) 클라우드 멀티-클러스터 장치
US10164897B1 (en) System and method for host isolation in a web-based computing system
JP2012208541A (ja) 仮想マシン管理装置、仮想マシン管理方法及び仮想マシン管理プログラム
JP2019061359A (ja) プログラム及び情報処理装置
US8984522B2 (en) Relay apparatus and relay management apparatus
US11803414B2 (en) Diagonal autoscaling of serverless computing processes for reduced downtime
JP6349786B2 (ja) 仮想計算機管理装置、仮想計算機管理方法、及び仮想計算機管理プログラム
US20230308353A1 (en) Apparatus and method for managing multi-cloud computing infrastructure
US12001875B2 (en) Virtualization platform and virtualization platform scaling management method
US20220129294A1 (en) Virtualization platform and virtualization platform scaling management method
US20240007415A1 (en) De-scheduler filtering system to minimize service disruptions within a network