JP6237318B2 - 管理装置、業務負荷分散管理方法および業務負荷分散管理プログラム - Google Patents

管理装置、業務負荷分散管理方法および業務負荷分散管理プログラム Download PDF

Info

Publication number
JP6237318B2
JP6237318B2 JP2014029801A JP2014029801A JP6237318B2 JP 6237318 B2 JP6237318 B2 JP 6237318B2 JP 2014029801 A JP2014029801 A JP 2014029801A JP 2014029801 A JP2014029801 A JP 2014029801A JP 6237318 B2 JP6237318 B2 JP 6237318B2
Authority
JP
Japan
Prior art keywords
virtual machine
load
private
virtual
cloud
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
JP2014029801A
Other languages
English (en)
Other versions
JP2015153402A (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.)
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 JP2014029801A priority Critical patent/JP6237318B2/ja
Priority to US14/603,841 priority patent/US9588789B2/en
Publication of JP2015153402A publication Critical patent/JP2015153402A/ja
Application granted granted Critical
Publication of JP6237318B2 publication Critical patent/JP6237318B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation

Landscapes

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

Description

本発明は管理装置、業務負荷分散管理方法および業務負荷分散管理プログラムに関する。
近年、コンピュータリソースの利用形態の1つとして、クラウドコンピューティングが提案されている。クラウドコンピューティングでは、ユーザは、所望の情報処理に要するリソースを手元に用意する代わりに、ネットワーク経由で他者の所有するコンピュータにアクセスし、当該コンピュータのリソースを借りて所望の情報処理を実行させる。クラウドコンピューティングを実現するクラウドシステムは、リソースをサービスとしてユーザに提供することになる。クラウドシステムは、多数のユーザに対して柔軟にリソースを割り振ることができるよう、複数の仮想的なコンピュータ(仮想マシンや論理マシンなどと言うことがある)を配置できる仮想化システムとして実装されることが多い。
クラウドコンピューティングは、リソースの共有度の観点から、プライベートクラウドとパブリッククラウドとハイブリッドクラウドに分類されることがある。プライベートクラウドでは、1つの組織がクラウドシステムを所有し、その組織内のユーザ(例えば、様々な部署に属するユーザ)が共通してクラウドシステムを利用する。パブリッククラウドでは、サービス提供者がクラウドシステムを所有し、不特定多数のユーザが広域ネットワークを介してクラウドシステムを利用する。パブリッククラウドのユーザには、例えば、ユーザとサービス提供者との間の契約に基づき、仮想マシン数・リソース割当量・利用時間などの利用量に比例した金額の料金が課される。ハイブリッドクラウドは、プライベートクラウドのシステムとパブリッククラウドのシステムを連携させるものである。
ハイブリッドクラウドに関して、企業ネットワーク内に配置された内部サーバおよび企業ネットワーク外のクラウドネットワークに配置されたクラウドサーバの間で作業を分配する負荷分散装置が提案されている。この負荷分散装置は、内部サーバの負荷が低いうちはユーザからの要求を内部サーバに転送し、内部サーバの負荷が高いときのみユーザからの要求をクラウドサーバに転送する。これにより、企業はピークの情報処理量に対応するリソースの全てを所有しなくてもよく、内部サーバを構築・維持するコストを抑制することができる。なお、複数のデータセンタの間で仮想マシンを移動させる管理サーバが提案されている。この管理サーバは、複数の仮想マシンの間の結合度をそれら仮想マシンの間の通信量や応答速度から算出し、結合度に応じて移動する仮想マシンを選択する。
国際公開第2011/041101号 特開2012−221049号公報
ここでは、システム#1に配置した仮想マシンに一の業務の処理を実行させ、当該仮想マシンの負荷が高くなると、システム#2に仮想マシンを配置して業務の処理をそれら複数の仮想マシンに分散させる形態を考える。例えば、上記の「システム#1」をプライベートクラウドのシステムとして実装し、上記の「システム#2」をパブリッククラウドのシステムとして実装することが考えられる。システム#1に配置した仮想マシンの負荷の上昇に応じて、システム#2に対して更に仮想マシンを追加することも考えられる。これにより、仮想マシン1つ当たりの負荷が下がることが期待される。
しかし、システム#1には、上記の業務の処理を行う仮想マシン以外に、他の業務の処理を行う仮想マシン(例えば、企業内の他の部署が使用する仮想マシン)も配置されていることがある。一の業務の処理を行う仮想マシンで未使用リソースが増えると、当該仮想マシンへのリソースの割当が削減され、他の業務の処理を行う仮想マシンに振り替えられてしまうこともある。この場合、一の業務の処理に関して、システム#2に仮想マシンを追加してもシステム#1の仮想マシンの負荷が高止まりしているように見える。このため、システム#1の仮想マシンの負荷のみに基づいてシステム#2に仮想マシンを追加するか否か判断してしまうと、過剰な仮想マシンが配置されてしまうおそれがある。
1つの側面では、本発明は、負荷分散において過剰な仮想マシンが配置されるのを抑制する管理装置、業務負荷分散管理方法および業務負荷分散管理プログラムを提供することを目的とする。
1つの態様では、通信部と制御部とを有する管理装置が提供される。通信部は、第1のシステムに配置された1または2以上の第1の仮想マシンの負荷を示す情報を取得し、また、第2のシステムに1または2以上の第2の仮想マシンが配置されているとき、第2の仮想マシンの負荷を示す情報を取得する。制御部は、第1の仮想マシンの負荷が第1の負荷条件を満たす場合、第2のシステムに第2の仮想マシンを配置して、ある業務の処理を第1の仮想マシンと第2の仮想マシンとに分散させる。制御部は、第2の仮想マシンの配置後、第1の仮想マシンの負荷が第1の負荷条件を満たし、第2の仮想マシンの負荷が第2の負荷条件を満たす場合、第2のシステムに他の第2の仮想マシンを追加することを許容する。制御部は、第2の仮想マシンの配置後、第1の仮想マシンの負荷が第1の負荷条件を満たし、第2の仮想マシンの負荷が第2の負荷条件を満たさない場合、第2のシステムに他の第2の仮想マシンを追加することを制限する。
また、1つの態様では、コンピュータが実行する業務負荷分散管理方法が提供される。業務負荷分散管理方法では、第1のシステムに配置された1または2以上の第1の仮想マシンの負荷が第1の負荷条件を満たす場合、第2のシステムに1または2以上の第2の仮想マシンを配置して、ある業務の処理を第1の仮想マシンと第2の仮想マシンとに分散させる。第2の仮想マシンの配置後、第1の仮想マシンの負荷が第1の負荷条件を満たし、第2の仮想マシンの負荷が第2の負荷条件を満たす場合、第2のシステムに他の第2の仮想マシンを追加することを許容する。第2の仮想マシンの配置後、第1の仮想マシンの負荷が第1の負荷条件を満たし、第2の仮想マシンの負荷が第2の負荷条件を満たさない場合、第2のシステムに他の第2の仮想マシンを追加することを制限する。また、1つの態様では、コンピュータに実行させる業務負荷分散管理プログラムが提供される。
1つの側面では、負荷分散において過剰な仮想マシンが配置されるのを抑制できる。
第1の実施の形態の管理装置の例を示す図である。 第2の実施の形態の情報処理システムを示す図である。 管理サーバのハードウェア例を示すブロック図である。 仮想マシンの配置例を示すブロック図である。 サーバアプリケーションの起動・停止の例を示す第1の図である。 サーバアプリケーションの起動・停止の例を示す第2の図である。 サーバアプリケーションの起動・停止の例を示す第3の図である。 CPUリソースの割当例を示す第1の図である。 CPUリソースの割当例を示す第2の図である。 CPUリソースの割当例を示す第3の図である。 サーバアプリケーションの起動・停止の例を示す第4の図である。 サーバアプリケーションの起動・停止の例を示す第5の図である。 サーバアプリケーションの起動・停止の例を示す第6の図である。 CPUリソースの割当例を示す第4の図である。 管理サーバのソフトウェア構成例を示すブロック図である。 仮想マシン数テーブルの例を示す図である。 負荷判定テーブルの例を示す図である。 仮想マシン配置テーブルの例を示す図である。 仮想マシン配置の判断基準の例を示す図である。 仮想マシン配置制御の手順例を示すフローチャート(第1の図)である。 仮想マシン配置制御の手順例を示すフローチャート(第2の図)である。 仮想マシン配置制御の手順例を示すフローチャート(第3の図)である。 仮想マシン配置制御の手順例を示すフローチャート(第4の図)である。 仮想マシン配置制御の手順例を示すフローチャート(第5の図)である。
以下、本実施の形態を図面を参照して説明する。
[第1の実施の形態]
図1は、第1の実施の形態の管理装置の例を示す図である。
第1の実施の形態の管理装置10は、システム2,3を利用した業務の処理の負荷分散を管理する。システム2,3は、仮想マシンを動作させることができる1または2以上の物理的なコンピュータ(物理マシンと言うことがある)を含む。システム2は、システム3よりも優先的に利用されるものであり、例えば、プライベートクラウドのシステムとして実装される。システム3は、システム2の負荷の上昇に応じて一時的に利用されるものであり、例えば、パブリッククラウドのシステムとして実装される。管理装置10は、プライベートクラウドとパブリッククラウドとを連携させたハイブリッドクラウドを管理するものであってもよい。管理装置10は、例えば、コンピュータとして実装される。
管理装置10は、通信部11および制御部12を有する。通信部11は、システム2,3と通信を行う通信インタフェースである。通信部11は、ケーブルによってルータやスイッチなどの通信装置と接続される有線通信インタフェースでもよいし、無線リンクによって基地局と接続される無線通信インタフェースでもよい。制御部12は、後述するように、システム2,3への仮想マシンの配置を決定する。制御部12は、プロセッサを含んでもよい。プロセッサは、CPU(Central Processing Unit)やDSP(Digital Signal Processor)であってもよく、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの特定用途の集積回路を含んでもよい。プロセッサは、RAM(Random Access Memory)やHDD(Hard Disk Drive)などの記憶装置に記憶されたプログラムを実行することができる。2以上のプロセッサの集合(マルチプロセッサ)を「プロセッサ」と呼んでもよい。
通信部11は、システム2に配置された1または2以上の仮想マシンの負荷を示す情報を取得する。第1の実施の形態では、システム2に仮想マシン2a,2bが配置されているとする。すると、通信部11は、仮想マシン2a,2bの負荷を示す情報を取得する。また、通信部11は、システム3に1または2以上の仮想マシンが配置されているとき、システム3の仮想マシンの負荷を示す情報を取得する。後述するようにシステム3に仮想マシン3aが配置されると、通信部11は、仮想マシン3aの負荷を示す情報を取得する。負荷を示す情報は、例えば、各仮想マシンのCPU使用率を示す情報である。仮想マシンのCPU使用率は、当該仮想マシンに割り当てられたCPUリソース(例えば、CPU時間)のうち、使用されている部分(例えば、命令を実行している時間)の割合である。
ここで、仮想マシン2a,2bは、同じ業務(例えば、Webサービスの提供)に用いられる仮想マシンであるとする。ある業務のために複数の仮想マシンが用意されている場合、当該業務の処理がそれら複数の仮想マシンに分散されることになる。
制御部12は、仮想マシン2a,2bの負荷(例えば、仮想マシン2aの負荷と仮想マシン2bの負荷の平均)が第1の負荷条件を満たすことを検出する。すると、制御部12は、システム3に仮想マシン3aを配置し、ある業務の処理を仮想マシン2a,2b,3aに分散させる。業務の処理を分散させるために、ロードバランサが用いられてもよい。これにより、仮想マシン2a,2bの負荷が下がることが期待される。第1の負荷条件は、例えば、仮想マシン2a,2bの負荷が第1の閾値以上になったことである。これは、仮想マシン2a,2bの負荷が高くなったとき、制御部12が、負荷分散のためにシステム3に仮想マシン3aを配置していると言うことができる。
仮想マシン3aの配置後、制御部12は、仮想マシン2a,2bの負荷が第1の負荷条件を満たし、仮想マシン3aの負荷が第2の負荷条件を満たすことを検出することがある。その場合、制御部12は、システム3に仮想マシン3bを追加することを許容する。仮想マシン3bが追加されると、ある業務の処理が仮想マシン2a,2b,3a,3bに分散される。これにより、仮想マシン2a,2b,3aの負荷が下がることが期待される。第2の負荷条件は、例えば、仮想マシン3aの負荷が第2の閾値以上になったことである。これは、仮想マシン2a,2b,3aの全ての負荷が高いとき、制御部12が、更なる負荷軽減のためにシステム3に仮想マシン3bを追加していると言うことができる。
一方、仮想マシン3aの配置後、制御部12は、仮想マシン2a,2bの負荷が第1の負荷条件を満たすものの、仮想マシン3aの負荷が第2の負荷条件を満たさないことを検出することがある。その場合、制御部12は、システム3に仮想マシン3bを追加することを制限する。システム3の仮想マシン3aの負荷が低い場合、システム2の仮想マシン2a,2bの負荷は、仮想マシン2a,2b,3aが担当する業務以外の要因で高止まりしている可能性がある。よって、制御部12は、システム3に仮想マシン3bを追加しても仮想マシン2a,2bの負荷が下がることが期待できないと判断する。
仮想マシン2a,2b,3aのうち仮想マシン2a,2bのみ負荷が高止まりする要因の1つとして、他の業務の処理に用いられる仮想マシンがシステム2に配置されていることが挙げられる。負荷分散によって仮想マシン2a,2bの未使用リソース(例えば、未使用CPUリソース)が増えると、仮想マシン2a,2bの割当リソースが削減されて他の業務用の仮想マシンに振り替えられてしまうことがある。すると、仮想マシン2a,2bのリソース使用率(例えば、CPU使用率)が高く計算され、仮想マシン2a,2bの負荷が高止まりしているように見える。この場合、システム3に仮想マシン3bを追加しても、仮想マシン2a,2bのリソース使用率が下がることは期待できない。
そこで、管理装置10によって、システム3への仮想マシン3bの追加が制限される。なお、制御部12は、適切なロードバランシングによって仮想マシン3aに割り振る業務の処理を多くし仮想マシン2a,2bに割り振る業務の処理を少なくすることで、仮想マシン2a,2bの負荷が高止まりしても応答性能の悪化を抑制できる。制御部12は、上記のように仮想マシン2a,2bの負荷が第1の負荷条件を満たし、仮想マシン3aの負荷が第2の負荷条件を満たさない場合、システム2に配置された仮想マシン2a,2bの少なくとも一部を、システム2からシステム3に移動するようにしてもよい。
第1の実施の形態の管理装置10によれば、仮想マシン2a,2bの負荷が第1の負荷条件を満たし、仮想マシン3aの負荷が第2の負荷条件を満たす場合、システム3に仮想マシン3bを追加することが許容される。一方、仮想マシン2a,2bの負荷が第1の負荷条件を満たすものの、仮想マシン3aの負荷が第2の負荷条件を満たさない場合、システム3に仮想マシン3bを追加することが制限される。これにより、仮想マシン2a,2bの負荷のみに基づいて仮想マシン3bを追加するか否か判断する場合と比べて、仮想マシン2a,2bの負荷の低下が期待できない場面での仮想マシン3bの追加が抑制され、システム3への過剰な仮想マシンの配置が抑制される。その結果、システム3の利用量に比例した料金(従量制料金)が発生する場合には、その料金を削減することができる。
[第2の実施の形態]
図2は、第2の実施の形態の情報処理システムを示す図である。
第2の実施の形態の情報処理システムは、企業が所有するプライベートクラウド4のシステムとサービス提供者が所有するパブリッククラウド5のシステムとを含み、ハイブリッドクラウドを実現する。企業内のユーザのネットワーク21には、クライアント33,34が属する。プライベートクラウド4のネットワーク22には、プライベート管理サーバ31、業務サーバ35,36および管理サーバ100が属する。パブリッククラウド5のネットワーク23には、パブリック管理サーバ32および業務サーバ37,38が属する。ネットワーク21はネットワーク22と接続され、ネットワーク22はインターネットなどの広域ネットワークを介してネットワーク23と接続されている。
プライベート管理サーバ31は、プライベートクラウド4を管理するサーバコンピュータである。プライベート管理サーバ31は、クライアント33,34に対して、業務サーバ35,36に配置する仮想マシンを設定するためのユーザインタフェースを提供する。プライベート管理サーバ31は、クライアント33,34または管理サーバ100からの要求に応じて業務サーバ35,36に仮想マシンを起動させ、また、要求に応じて業務サーバ35,36上の仮想マシンを停止させる。また、プライベート管理サーバ31は、業務サーバ35,36で動作している仮想マシンの負荷を監視する。
パブリック管理サーバ32は、パブリッククラウド5を管理するサーバコンピュータである。パブリック管理サーバ32は、クライアント33,34に対して、業務サーバ37,38に配置する仮想マシンを設定するためのユーザインタフェースを提供する。パブリック管理サーバ32は、クライアント33,34または管理サーバ100からの要求に応じて業務サーバ37,38に仮想マシンを起動させ、また、要求に応じて業務サーバ37,38上の仮想マシンを停止させる。また、パブリック管理サーバ32は、業務サーバ37,38で動作している仮想マシンの負荷を監視する。
なお、パブリック管理サーバ32は、通常、サービス提供者によって提供される。パブリック管理サーバ32は、クライアント33,34や管理サーバ100に対して、GUI(Graphical User Interface)やAPI(Application Programming Interface)を提供する。ユーザは、このGUIやAPIを使用して、間接的にパブリック管理サーバ32を利用する。パブリック管理サーバ32を、クラウドポータルと呼ぶ場合もある。
クライアント33,34は、ユーザが操作する端末装置としてのクライアントコンピュータである。クライアント33とクライアント34とは、異なる業務に従事するユーザ(例えば、企業内の異なる部署に属するユーザ)によって使用されるものであってもよい。クライアント33,34は、プライベートクラウド4に仮想マシンを配置して業務の処理を実行させる場合、プライベート管理サーバ31にアクセスする。また、クライアント33,34は、明示的にパブリッククラウド5に仮想マシンを配置して業務の処理を実行させる場合、パブリック管理サーバ32にアクセスする。
ただし、パブリッククラウド5のシステムを利用すると、仮想マシン数・割当リソース量・利用時間などの利用量に応じた従量料金が企業に課される。一方、プライベートクラウド4のシステムを利用しても、このような従量料金は発生しない。よって、クライアント33,34は、通常はプライベート管理サーバ31にアクセスして、プライベートクラウド4のシステムを優先的に利用する。プライベートクラウド4のリソースが一時的に不足した場合、後述するように、自動的にパブリッククラウド5のリソースを利用して負荷分散が図られる。クライアント33,34は、自動的な負荷分散を意識しなくてよい。
業務サーバ35〜38は、複数の仮想マシンを動作させることができるサーバコンピュータである。業務サーバ35,36は、プライベート管理サーバ31からの指示に応じて、CPU時間やRAM領域などのリソースを仮想マシンに割り当てて仮想マシンを起動する。また、業務サーバ35,36は、プライベート管理サーバ31からの指示に応じて仮想マシンを停止させる。業務サーバ37,38は、パブリック管理サーバ32からの指示に応じて、リソースを仮想マシンに割り当てて仮想マシンを起動する。また、業務サーバ37,38は、パブリック管理サーバ32からの指示に応じて仮想マシンを停止させる。
管理サーバ100は、ハイブリッドクラウドを管理するサーバコンピュータである。管理サーバ100は、業務単位で、プライベートクラウド4およびパブリッククラウド5に配置する仮想マシンの数を調整する。プライベートクラウド4に仮想マシンを配置する場合、管理サーバ100は、プライベート管理サーバ31に仮想マシンの起動を指示する。パブリッククラウド5に仮想マシンを配置する場合、管理サーバ100は、パブリック管理サーバ32に仮想マシンの起動を指示する。
仮想マシンの数を調整するにあたり、管理サーバ100は、プライベート管理サーバ31から各仮想マシンの負荷(第2の実施の形態では主にCPU使用率)を示す情報を取得する。プライベートクラウド4において一の業務用の仮想マシンの負荷が高い場合、管理サーバ100は、その業務に対して予め設定された上限数に達するまで、プライベートクラウド4に仮想マシンを追加する。上限数に達してもまだ負荷が高い場合、管理サーバ100は、パブリッククラウド5にその業務用の仮想マシンを配置する。パブリッククラウド5の仮想マシンを追加するにあたっては、管理サーバ100は、後述するように、パブリック管理サーバ32から各仮想マシンの負荷を示す情報を取得し、プライベートクラウド4の負荷とパブリッククラウド5の負荷の両方を考慮する。
図3は、管理サーバのハードウェア例を示すブロック図である。
管理サーバ100は、CPU101、RAM102、HDD103、画像信号処理部104、入力信号処理部105、媒体リーダ106および通信インタフェース107を有する。CPU101は、第1の実施の形態の制御部12の一例である。通信インタフェース107は、第1の実施の形態の通信部11の一例である。
CPU101は、プログラムの命令を実行する演算回路を含むプロセッサである。CPU101は、HDD103に記憶されているプログラムやデータの少なくとも一部をRAM102にロードし、プログラムを実行する。なお、CPU101は複数のプロセッサコアを備えてもよく、管理サーバ100は複数のプロセッサを備えてもよく、以下で説明する処理を複数のプロセッサまたはプロセッサコアを用いて並列に実行してもよい。また、複数のプロセッサの集合(マルチプロセッサ)を「プロセッサ」と呼んでもよい。
RAM102は、CPU101が実行するプログラムやCPU101が演算に用いるデータを一時的に記憶する揮発性メモリである。なお、管理サーバ100は、RAM以外の種類のメモリを備えてもよく、複数個のメモリを備えてもよい。
HDD103は、OS(Operating System)やミドルウェアやアプリケーションソフトウェアなどのソフトウェアのプログラム、および、データを記憶する不揮発性の記憶装置である。なお、管理サーバ100は、フラッシュメモリやSSD(Solid State Drive)などの他の種類の記憶装置を備えてもよく、複数の不揮発性の記憶装置を備えてもよい。
画像信号処理部104は、CPU101からの命令に従って、管理サーバ100に接続されたディスプレイ111に画像を出力する。ディスプレイ111としては、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ(LCD:Liquid Crystal Display)、プラズマディスプレイ(PDP:Plasma Display Panel)、有機EL(OEL:Organic Electro-Luminescence)ディスプレイなどを用いることができる。
入力信号処理部105は、管理サーバ100に接続された入力デバイス112から入力信号を取得し、CPU101に出力する。入力デバイス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は、ネットワーク22に接続され、ネットワーク22を介してプライベート管理サーバ31などの他のコンピュータと通信を行うインタフェースである。通信インタフェース107は、ケーブルで通信装置と接続される有線通信インタフェースでもよいし、基地局と無線リンクで接続される無線通信インタフェースでもよい。
なお、管理サーバ100は、媒体リーダ106を備えていなくてもよく、ユーザが操作する端末装置から制御可能である場合には画像信号処理部104や入力信号処理部105を備えていなくてもよい。また、ディスプレイ111や入力デバイス112が、管理サーバ100の筐体と一体に形成されていてもよい。プライベート管理サーバ31、パブリック管理サーバ32、クライアント33,34および業務サーバ35〜38も、管理サーバ100と同様のハードウェアを用いて実現することができる。
図4は、仮想マシンの配置例を示すブロック図である。
第2の実施の形態では、1つの業務として、3階層アーキテクチャのWebシステムを用いたWebサービスの提供を考える。3階層アーキテクチャのWebシステムは、サーバアプリケーションとして、Webサーバとアプリケーションサーバ(APサーバ)とデータベースサーバ(DBサーバ)とを含む。Webサーバは、クライアントコンピュータが送信したHTTP(Hypertext Transfer Protocol)リクエストを受信し、HTTPリクエストに対するHTTPレスポンスを返信する。APサーバは、Webサーバが受信したHTTPリクエストに応じた業務ロジックを実行し、業務ロジックの実行結果をWebサーバに提供する。DBサーバは、APサーバの業務ロジックにおいて使用され得るデータを管理し、APサーバからの要求に応じてデータの検索や更新を行う。
Webサーバが複数存在する場合、クライアントコンピュータが送信したHTTPリクエストは、ロードバランサによってこれら複数のWebサーバに振り分けられる。第2の実施の形態では、ロードバランサおよびDBサーバは1つずつ用意され、プライベートクラウド4に配置される。DBサーバをプライベートクラウド4に配置することで、パブリッククラウド5に配置するよりもデータの漏洩や消失のリスクを低減できる。一方、WebサーバとAPサーバの組は負荷に応じて増減し、プライベートクラウド4のみまたはプライベートクラウド4とパブリッククラウド5の両方に配置される。
例えば、業務サーバ35はハイパーバイザ35aを実行し、業務サーバ36はハイパーバイザ36aを実行し、業務サーバ37はハイパーバイザ37aを実行し、業務サーバ38はハイパーバイザ38aを実行する。ハイパーバイザ35a,36a,37a,38aは、各業務サーバが備えるリソースを仮想マシンに割り当てるミドルウェアである。ハイパーバイザ35a上では仮想マシン41〜43が動作し、ハイパーバイザ36a上では仮想マシン44が動作し、ハイパーバイザ37a上では仮想マシン45,46が動作し、ハイパーバイザ38a上では仮想マシン47,48が動作する。仮想マシン41はロードバランサを実行し、仮想マシン42,45,47はWebサーバを実行し、仮想マシン43,46,48はAPサーバを実行し、仮想マシン44はDBサーバを実行する。
この場合、仮想マシン41のロードバランサは、クライアントコンピュータから受信したHTTPリクエストを仮想マシン42,45,47に振り分ける。仮想マシン42のWebサーバは仮想マシン43にアクセスし、仮想マシン45のWebサーバは仮想マシン46にアクセスし、仮想マシン47のWebサーバは仮想マシン48にアクセスする。仮想マシン43,46,48のAPサーバは、Webサーバからの要求に応じて業務ロジックを実行し、業務ロジックの中で仮想マシン44にアクセスする。仮想マシン44のDBサーバは、APサーバからの要求に応じてデータの検索や更新を行う。
仮想マシン43のAPサーバは業務ロジックの結果を仮想マシン42に送信し、仮想マシン46のAPサーバは業務ロジックの結果を仮想マシン45に送信し、仮想マシン48のAPサーバは業務ロジックの結果を仮想マシン47に送信する。仮想マシン42,45,47のWebサーバは、業務ロジックの結果からHTTPレスポンスを生成し、仮想マシン41に送信する。仮想マシン41のロードバランサは、HTTPレスポンスをクライアントコンピュータに転送する。なお、ロードバランサは、各Webサーバで処理中のHTTPレスポンスの数を監視することで各Webサーバの負荷を推定し、負荷の小さいWebサーバに対して優先的にHTTPリクエストを転送するようにする。
次に、WebサーバとAPサーバの組を複数起動することによる負荷分散を説明する。
図5は、サーバアプリケーションの起動・停止の例を示す第1の図である。
ここでは、ロードバランサ50、Webサーバ51aおよびAPサーバ51bがプライベートクラウド4で実行されているとする。また、このWebサービスの業務に関して、プライベートクラウド4に配置されている仮想マシンの数は上限に達していないとする。
管理サーバ100は、Webサーバ51aおよびAPサーバ51bの実行に用いる仮想マシンの負荷が高いことを検出する。例えば、管理サーバ100は、2つの仮想マシンのCPU使用率の平均が閾値以上であることを検出する。すると、管理サーバ100は、プライベート管理サーバ31に仮想マシンの追加を指示する。プライベート管理サーバ31は、プライベートクラウド4に、Webサーバ52aを実行する仮想マシンとAPサーバ52bを実行する仮想マシンとを起動させる。また、管理サーバ100は、Webサーバ52aにもHTTPリクエストが振り分けられるようにロードバランサ50を設定する。
図6は、サーバアプリケーションの起動・停止の例を示す第2の図である。
管理サーバ100は、Webサーバ51a,52aおよびAPサーバ51b,52bの実行に用いる仮想マシンの負荷が依然として高いことを検出する。例えば、管理サーバ100は、4つの仮想マシンのCPU使用率の平均が閾値以上であることを検出する。ここでは、このWebサービスの業務に関して、プライベートクラウド4に配置されている仮想マシンの数が上限に達しているとする。すると、管理サーバ100は、パブリック管理サーバ32に仮想マシンの配置を指示する。パブリック管理サーバ32は、パブリッククラウド5に、Webサーバ53aを実行する仮想マシンとAPサーバ53bを実行する仮想マシンとを起動させる。また、管理サーバ100は、Webサーバ53aにもHTTPリクエストが振り分けられるようにロードバランサ50を設定する。
図7は、サーバアプリケーションの起動・停止の例を示す第3の図である。
管理サーバ100は、このWebサービスの業務に対して依然としてリソースが不足している(仮想マシンが不足している)と判断したとする。すると、管理サーバ100は、パブリック管理サーバ32に仮想マシンの追加を指示する。パブリック管理サーバ32は、パブリッククラウド5に、Webサーバ54aを実行する仮想マシンとAPサーバ54bを実行する仮想マシンとを起動させる。また、管理サーバ100は、Webサーバ54aにもHTTPリクエストが振り分けられるようにロードバランサ50を設定する。
リソースが不足しているか否かは、例えば、プライベートクラウド4に配置されたWebサーバ51a,52aおよびAPサーバ51b,52bの実行に用いる仮想マシンの負荷に基づいて判断することが考えられる。パブリッククラウド5に仮想マシンを追加することで、多くの場合、仮想マシン1つ当たりの負荷が下がり、プライベートクラウド4に配置された仮想マシンの負荷も下がると期待される。しかし、以下に説明するように、仮想マシンを追加しても、プライベートクラウド4の仮想マシンの負荷が下がらない場合がある。その場合、プライベートクラウド4の仮想マシンの負荷のみに基づいて仮想マシンを追加すると、過剰な仮想マシンが配置されてしまうおそれがある。
図8は、CPUリソースの割当例を示す第1の図である。
ここでは、プライベートクラウド4のシステムはCPU61〜64(CPU#1〜#4)を備え、パブリッククラウド5のシステムはCPU65,66(CPU#11,#12)を含む多数のCPUを備えているとする。説明を簡単にするため、全てのCPUの演算速度は同じであるとし、1つのCPUの処理時間100%を100リソースと定義する。CPU61の100リソースは、業務Aに用いる1つの仮想マシンに割り当てられている。CPU63の50リソースとCPU64の50リソースは業務Bに割り当てられ、CPU63の50リソースとCPU64の50リソースは業務Cに割り当てられている。また、仮想マシンのCPU使用率が60%以上になったとき、当該仮想マシンの負荷が高いと判断するものとする。また、業務Aについてプライベートクラウド4に配置可能な仮想マシンの上限数を2とする。
業務Aに用いる仮想マシンのCPU使用率が80%に上昇すると、例えば、プライベート管理サーバ31は、業務Aに用いる仮想マシンをプライベートクラウド4に追加し、追加した仮想マシンにCPU62の100リソースを割り当てる。これにより、業務Aに用いる2個の仮想マシンそれぞれのCPU使用率が40%に低下する。
図9は、CPUリソースの割当例を示す第2の図である。
業務Aに用いる仮想マシンそれぞれのCPU使用率が60%に上昇したとする。このとき、プライベートクラウド4に配置された仮想マシンの数は上限に達している。そこで、例えば、パブリック管理サーバ32は、業務Aに用いる仮想マシンをパブリッククラウド5に配置し、配置した仮想マシンにCPU65の100リソースを割り当てる。これにより、業務Aに用いる3個の仮想マシンそれぞれのCPU使用率が40%に低下する。
図10は、CPUリソースの割当例を示す第3の図である。
プライベートクラウド4に対し、業務Dのユーザおよび業務Eのユーザから仮想マシンの起動が要求されたとする。このとき、プライベートクラウド4のシステムは未割当のCPUリソースをもっていない。そこで、例えば、プライベート管理サーバ31は、複数の業務の間の公平性の観点から、未使用のCPUリソースが多い仮想マシンに対する割当を削減する。ここでは、業務Aの1番目の仮想マシンへの割当をCPU61の60リソースに削減し、2番目の仮想マシンへの割当をCPU62の60リソースに削減する。
これに伴い、プライベートクラウド4に配置された業務Aの仮想マシンのCPU使用率が60%以上と算出される。そこで、例えば、パブリック管理サーバ32は、業務Aに用いる仮想マシンをパブリッククラウド5に追加し、追加した仮想マシンにCPU66の100リソースを割り当てる。これにより、プライベートクラウド4に配置された業務Aの仮想マシンそれぞれのCPU使用率が50%に低下する。
しかし、プライベートクラウド4のシステム全体のリソースが不足している状況では、CPU使用率が下がると業務Aの仮想マシンへのCPUリソースの割当が更に削減されてしまうおそれがある。このように、パブリッククラウド5に業務Aの仮想マシンを追加しても、プライベートクラウド4の業務Aの仮想マシンの負荷は下がらず高止まりしてしまうことがある。そこで、第2の実施の形態では、管理サーバ100は、パブリッククラウド5に配置された仮想マシンの負荷も参照して、プライベートクラウド4に配置された仮想マシンの負荷が下がると期待できるか判定する。負荷が下がると期待できない場合、管理サーバ100は、仮想マシンの総数を増やすことを制限する。
図11は、サーバアプリケーションの起動・停止の例を示す第4の図である。
管理サーバ100は、Webサーバ51a,52aおよびAPサーバ51b,52bの実行に用いる仮想マシンの負荷が高い一方、Webサーバ53aおよびAPサーバ53bの実行に用いる仮想マシンの負荷が低いことを検出する。例えば、管理サーバ100は、プライベートクラウド4に配置された4つの仮想マシンのCPU使用率の平均が閾値以上であり、かつ、パブリッククラウド5に配置された2つの仮想マシンのCPU使用率の平均が閾値未満であることを検出する。この場合、管理サーバ100は、仮想マシンを増やしてもプライベートクラウド4の負荷が下がらないと判断する。
すると、管理サーバ100は、プライベート管理サーバ31に仮想マシンの削減を指示する。プライベート管理サーバ31は、Webサーバ52aおよびAPサーバ52bの実行に用いる仮想マシンを停止させる。また、管理サーバ100は、パブリック管理サーバ32に仮想マシンの追加を指示する。パブリック管理サーバ32は、パブリッククラウド5に、Webサーバ54aを実行する仮想マシンとAPサーバ54bを実行する仮想マシンとを起動させる。また、管理サーバ100は、Webサーバ52aへのHTTPリクエストの振り分けが停止され、Webサーバ54aにHTTPリクエストが振り分けられるように、ロードバランサ50を設定する。これにより、実質的にプライベートクラウド4からパブリッククラウド5へ仮想マシンが移動したことになる。
図12は、サーバアプリケーションの起動・停止の例を示す第5の図である。
管理サーバ100は、Webサーバ51aおよびAPサーバ51bの実行に用いる仮想マシンの負荷が高い一方、Webサーバ53a,54aおよびAPサーバ53b,54bの実行に用いる仮想マシンの負荷が低いことを検出する。例えば、管理サーバ100は、プライベートクラウド4に配置された2つの仮想マシンのCPU使用率の平均が閾値以上であり、かつ、パブリッククラウド5に配置された4つの仮想マシンのCPU使用率の平均が閾値未満であることを検出する。この場合、管理サーバ100は、仮想マシンを増やしてもプライベートクラウド4の負荷が下がらないと判断する。
すると、管理サーバ100は、図11の場合と同様に、仮想マシンの総数を増加させない。また、プライベートクラウド4には、Webサービスを提供するための最小限の数の仮想マシンのみ配置されているため、管理サーバ100は、プライベートクラウド4からパブリッククラウド5へ仮想マシンを移動させない。業務毎に設定した下限数の仮想マシンをプライベートクラウド4に維持しておくことで、パブリッククラウド5のシステムが異常停止しても業務の処理を継続することができる。よって、ここでは管理サーバ100は、仮想マシンの移動も追加も行わなくてよい。
図13は、サーバアプリケーションの起動・停止の例を示す第6の図である。
管理サーバ100は、Webサーバ51aおよびAPサーバ51bの実行に用いる仮想マシンの負荷が低くなったことを検出する。例えば、管理サーバ100は、プライベートクラウド4に配置された2つの仮想マシンのCPU使用率の平均が閾値未満に低下したことを検出する。すると、管理サーバ100は、図11の場合と逆に、プライベートクラウド4からパブリッククラウド5へ仮想マシンを移動させる。
すなわち、管理サーバ100は、パブリック管理サーバ32に仮想マシンの削減を指示する。パブリック管理サーバ32は、Webサーバ54aおよびAPサーバ54bの実行に用いる仮想マシンを停止させる。また、管理サーバ100は、プライベート管理サーバ31に仮想マシンの追加を指示する。プライベート管理サーバ31は、プライベートクラウド4に、Webサーバ52aを実行する仮想マシンとAPサーバ52bを実行する仮想マシンとを起動させる。また、管理サーバ100は、Webサーバ54aへのHTTPリクエストの振り分けが停止され、Webサーバ52aにHTTPリクエストが振り分けられるように、ロードバランサ50を設定する。パブリッククラウド5からプライベートクラウド4への仮想マシンの移動は、プライベートクラウド4に配置された仮想マシンの数が上限に達するまで行ってよい。
図14は、CPUリソースの割当例を示す第4の図である。
ここでは、図10で説明したように、プライベートクラウド4に対し、業務Dのユーザおよび業務Eのユーザから仮想マシンの起動が要求されたとする。そして、業務Aの1番目の仮想マシンへの割当がCPU61の60リソースに削減され、2番目の仮想マシンへの割当がCPU62の60リソースに削減されたとする。
すると、管理サーバ100は、プライベートクラウド4に配置された業務Aの仮想マシンのCPU使用率が60%以上である一方、パブリッククラウド5に配置された業務Aの仮想マシンのCPU使用率が低い(40%である)ことを検出する。よって、管理サーバ100は、業務Aに用いる仮想マシンを増やしてもプライベートクラウド4の負荷が下がらないと判断し、業務Aに用いる仮想マシンの増加を制限する。
その代わり、管理サーバ100は、プライベートクラウド4からパブリッククラウド5へ仮想マシンを移動することを決定する。プライベート管理サーバ31は、CPU62の60リソースを解放し、業務Aに用いる1個の仮想マシンを停止させる。パブリック管理サーバ32は、業務Aに用いる仮想マシンをパブリッククラウド5に追加し、追加した仮想マシンにCPU66の100リソースを割り当てる。プライベートクラウド4では、1個の仮想マシンが停止したことで未割当のCPUリソースが生じ、残された業務Aの仮想マシンへのCPUリソースの割当が増加することが期待できる。
なお、プライベートクラウド4のシステム全体のリソースが不足している状況では、複数の業務それぞれについて、上記のようにプライベートクラウド4からパブリッククラウド5への仮想マシンの移動が発生し得る。よって、プライベートクラウド4に残された仮想マシンへのCPUリソースの割当は削減されず、それら仮想マシンの負荷は高止まりせずに低下するものと期待される。ただし、第2の実施の形態では、業務毎に下限数の仮想マシンをプライベートクラウド4に維持することとしたが、ある業務の仮想マシン全てをプライベートクラウド4から削除する(下限数をゼロとする)ようにしてもよい。
次に、管理サーバ100が行う負荷分散の制御について説明する。
図15は、管理サーバのソフトウェア構成例を示すブロック図である。
管理サーバ100は、パラメータ設定部121、制御情報記憶部122、負荷情報取得部123、配置判定部124、起動・停止指示部125およびロードバランサ設定部126を有する。制御情報記憶部122は、例えば、RAM102またはHDD103に確保した記憶領域として実装できる。パラメータ設定部121、負荷情報取得部123、配置判定部124、起動・停止指示部125およびロードバランサ設定部126は、例えば、CPU101が実行するプログラムのモジュールとして実装できる。
パラメータ設定部121は、ユーザが入力デバイス112を用いて入力したパラメータの値を取得し、取得したパラメータの値を制御情報として制御情報記憶部122に格納する。パラメータの値は、配置判定部124による仮想マシンの配置制御に用いられるものであり、後述するようにプライベートクラウド4の仮想マシンの上限数などを含む。
制御情報記憶部122は、配置判定部124による仮想マシンの配置制御に用いられる制御情報を記憶する。制御情報は、上記の通り、パラメータ設定部121がユーザから取得したパラメータの値を含む。また、制御情報は、プライベートクラウド4およびパブリッククラウド5への仮想マシンの配置状況を示す情報を含む。
負荷情報取得部123は、業務サーバ35,36で動作している仮想マシンそれぞれの負荷を示す負荷情報を、プライベート管理サーバ31から定期的に取得する。負荷を表す指標として、例えば、仮想マシンに割り当てられたCPU時間に対する当該仮想マシンが演算を行っているCPU時間の割合であるCPU使用率を用いる。各仮想マシンの負荷としては、瞬間的な負荷を用いてもよいし、直近の所定時間における平均の負荷を用いてもよい。負荷情報取得部123は、業務毎のプライベートクラウド4の負荷(プライベート負荷)として、当該業務に用いる仮想マシンの負荷の平均を算出する。また、負荷情報取得部123は、配置判定部124からの要求に応じて、業務サーバ37,38で動作している仮想マシンそれぞれの負荷を示す負荷情報をパブリック管理サーバ32から取得する。負荷情報取得部123は、業務毎のパブリッククラウド5の負荷(パブリック負荷)として、当該業務に用いる仮想マシンの負荷の平均を算出する。
配置判定部124は、業務毎に、当該業務の処理が複数の仮想マシンに適切に分散されるよう、動的に仮想マシンのスケールアウトやスケールインを行う。スケールアウトは、仮想マシンを増やして業務処理能力を拡張することである。スケールインは、仮想マシンを減らして業務処理能力を縮小することである。配置判定部124は、定期的にプライベート負荷を確認し、プライベート負荷に応じて、業務サーバ35〜38上での仮想マシンの起動や停止を決定する。原則として、業務サーバ35,36に優先的に仮想マシンが配置され、プライベートクラウド4の仮想マシン数が上限に達した場合に、業務サーバ37,38に仮想マシンが配置される。ただし、配置判定部124は、パブリック負荷に応じて、業務サーバ37,38への仮想マシンの追加を制限することがある。
起動・停止指示部125は、業務サーバ35,36上での仮想マシンの起動または停止が決定されると、配置判定部124からの要求に応じて、プライベート管理サーバ31に仮想マシンの起動または停止を指示する。また、起動・停止指示部125は、業務サーバ37,38上での仮想マシンの起動または停止が決定されると、配置判定部124からの要求に応じて、パブリック管理サーバ32に仮想マシンの起動または停止を指示する。
ロードバランサ設定部126は、業務サーバ35〜38上での仮想マシンの起動または停止が決定されると、配置判定部124からの要求に応じて、ロードバランサがもつ設定情報を更新する。ロードバランサの設定情報は、例えば、HTTPリクエストの振り分け先であるサーバアプリケーションを実行する仮想マシンのアドレス(例えば、IP(Internet Protocol)アドレス)のリストを含む。ロードバランサ設定部126は、例えば、仮想マシンが起動される場合には当該仮想マシンのアドレスをリストに追加し、仮想マシンが停止される場合には当該仮想マシンのアドレスをリストから削除する。
図16は、仮想マシン数テーブルの例を示す図である。
仮想マシン数テーブル131は、業務毎に用意されて制御情報記憶部122に記憶される。図16は、1つの業務に対応する仮想マシン数テーブル131の例を示している。仮想マシン数テーブル131には、5個のパラメータ(private_min,private_limit,private_vms,public_limit,public_vms)のパラメータ名とその値とが対応付けて登録される。
private_minは、ある業務に関してプライベートクラウド4に配置する仮想マシンの下限数を示す。private_limitは、ある業務に関してプライベートクラウド4に配置可能な仮想マシンの上限数を示す。private_vmsは、ある業務に関してプライベートクラウド4に現在配置されている仮想マシンの数を示す。public_limitは、ある業務に関してパブリッククラウド5に配置可能な仮想マシンの上限数を示す。public_vmsは、ある業務に関してパブリッククラウド5に現在配置されている仮想マシンの数を示す。private_min,private_limit,public_limitの値は、ユーザによって指定される。
図17は、負荷判定テーブルの例を示す図である。
負荷判定テーブル132は、業務毎に用意されて制御情報記憶部122に記憶される。図17は、1つの業務に対応する負荷判定テーブル132の例を示している。負荷判定テーブル132には、2個のパラメータ(private_loadTh,public_loadTh)のパラメータ名とその値とが対応付けて登録される。
private_loadThは、ある業務に関して、プライベートクラウド4に配置された仮想マシンの負荷(プライベート負荷)が高いか否か判定する閾値を示す。public_loadThは、ある業務に関して、パブリッククラウド5に配置された仮想マシンの負荷(パブリック負荷)が高いか否か判定する閾値を示す。private_loadTh,public_loadThの値は、ユーザによって指定される。
図18は、仮想マシン配置テーブルの例を示す図である。
仮想マシン配置テーブル133は、業務毎に用意されて制御情報記憶部122に記憶される。図18は、1つの業務に対応する仮想マシン配置テーブル133の例を示している。仮想マシン配置テーブル133は、仮想マシン名および配置ゾーンの項目を含む。
仮想マシン名の項目には、仮想マシンを識別する識別情報が登録される。識別情報は、仮想マシンに設定されたホスト名であってもよいし、仮想マシンに割り当てられたアドレス(例えば、IPアドレス)であってもよい。配置ゾーンの項目には、仮想マシンがプライベートクラウド4である業務サーバ35,36とパブリッククラウド5である業務サーバ37,38の何れに配置されているかを示す情報が登録される。例えば、配置ゾーンの項目には、「プライベート」または「パブリック」の何れかが登録される。
次に、仮想マシンの起動や停止を判断するアルゴリズムを説明する。
図19は、仮想マシン配置の判断基準の例を示す図である。
ここで、移動中フラグ=YES(=1)は、パブリッククラウド5に仮想マシンを追加することが制限され、プライベートクラウド4からパブリッククラウド5へ移動された仮想マシンがあることを示している。移動中フラグ=NO(=0)は、プライベートクラウド4からパブリッククラウド5へ移動された仮想マシンがないこと(移動した仮想マシンの全てをプライベートクラウド4に戻した場合を含む)を示している。
(1)プライベート負荷が高く、プライベートクラウド4の仮想マシン数が上限ではなく、移動中フラグ=NOの場合、プライベートクラウド4に仮想マシンが追加される。
(2)プライベート負荷が高く、プライベートクラウド4の仮想マシン数が上限であり、移動中フラグ=NOであり、パブリッククラウド5の仮想マシン数がゼロの場合、パブリッククラウド5に仮想マシンが追加される。
(3)プライベート負荷が高く、プライベートクラウド4の仮想マシン数が上限であり、移動中フラグ=NOであり、パブリッククラウド5の仮想マシン数が1以上であり、パブリック負荷が高い場合、パブリッククラウド5に仮想マシンが追加される。
(4)プライベート負荷が高く、プライベートクラウド4の仮想マシン数が上限であり、移動中フラグ=NOであり、パブリッククラウド5の仮想マシン数が1以上であり、パブリック負荷が低い場合、プライベートクラウド4からパブリッククラウド5へ仮想マシンが移動する。これに伴い、移動中フラグ=YESに更新される。
(5)プライベート負荷が高く、プライベートクラウド4の仮想マシン数が下限ではなく、移動中フラグ=YESであり、パブリック負荷が低い場合、プライベートクラウド4からパブリッククラウド5へ仮想マシンが移動する。
(6)プライベート負荷が高く、プライベートクラウド4の仮想マシン数が下限であり、移動中フラグ=YESであり、パブリック負荷が低い場合、何もしなくてよい。
(7)プライベート負荷が高く、移動中フラグ=YESであり、パブリック負荷が高い場合、パブリッククラウド5へ仮想マシンが追加される。
(8)プライベート負荷が低く、移動中フラグ=YESの場合、パブリッククラウド5からプライベートクラウド4へ仮想マシンが移動する。移動によってプライベートクラウド4の仮想マシン数が上限に達した場合、移動中フラグ=NOに更新される。
(9)プライベート負荷が低く、移動中フラグ=NOであり、パブリッククラウド5の仮想マシン数が1以上である場合、パブリッククラウド5から仮想マシンを削減する。
(10)プライベート負荷が低く、プライベートクラウド4の仮想マシン数が下限ではなく、移動中フラグ=NOであり、パブリッククラウド5の仮想マシン数がゼロである場合、プライベートクラウド4から仮想マシンを削減する。
(11)プライベート負荷が低く、プライベートクラウド4の仮想マシン数が下限であり、移動中フラグ=NOであり、パブリッククラウド5の仮想マシン数がゼロである場合、何もしなくてよい。
図20は、仮想マシン配置制御の手順例を示すフローチャート(第1の図)である。
仮想マシン配置制御は、例えば、複数の業務それぞれについて定期的に実行される。
(S10)負荷情報取得部123は、プライベート管理サーバ31からプライベートクラウド4の各仮想マシンの負荷(例えば、CPU使用率)を示す負荷情報を取得する。仮想マシンの負荷は、瞬間的な値でもよいし直近の所定時間の平均値でもよい。負荷情報取得部123は、取得した負荷情報に基づいて、一の業務に用いる複数の仮想マシンの負荷の平均(例えば、平均CPU使用率)をプライベート負荷として算出する。
(S11)配置判定部124は、負荷判定テーブル132に登録されたプライベートクラウド4の負荷閾値(private_loadTh)を読み出し、プライベート負荷がprivate_loadTh以上であるか判断する。条件を満たす場合はステップS12に処理が進み、条件を満たさない場合はステップS40に処理が進む。
(S12)配置判定部124は、移動中フラグ=YES(または、値「1」)であるか判断する。移動中フラグ=YESの場合はステップS20に処理が進み、移動中フラグ=NOの場合はステップS13に処理が進む。なお、移動中フラグは、配置判定部124が保持してもよいし、制御情報記憶部122に記憶するテーブルに登録してもよい。
(S13)配置判定部124は、仮想マシン数テーブル131から、プライベートクラウド4の配置数(private_vms)とプライベートクラウド4の上限数(private_limit)を読み出す。そして、配置判定部124は、private_vmsがprivate_limitに達しているか判断する。条件を満たす場合はステップS20に処理が進み、条件を満たさない場合はステップS14に処理が進む。
(S14)配置判定部124は、プライベートクラウド4で仮想マシンを起動することを決定する。起動する仮想マシンの数は、業務の処理を担当するための最小の単位数とし、業務に応じて異なることがある。3階層WebシステムのWebサーバとAPサーバを負荷分散する場合、例えば、2個の仮想マシンが起動される。起動・停止指示部125は、プライベート管理サーバ31に仮想マシンの起動を指示する。プライベート管理サーバ31は、仮想マシンに割り当てるリソースを決定し、業務サーバ35,36に仮想マシンを配置する。なお、仮想マシンの起動に用いるイメージデータには、OSプログラムやサーバアプリケーションプログラムが含まれる。このイメージデータは、所定の記憶装置に記憶されており、仮想マシンを配置する業務サーバに転送される。
(S15)ロードバランサ設定部126は、HTTPリクエストの振り分け先となるサーバアプリケーション(例えば、Webサーバ)を実行する仮想マシンを特定し、ロードバランサがもつ設定情報に当該仮想マシンのアドレスを登録する。これにより、プライベートクラウド4で起動した仮想マシンに業務の処理が振り分けられる。
(S16)配置判定部124は、仮想マシン数テーブル131に登録されたプライベートクラウド4の配置数(private_vms)を更新する。ここでは、起動された仮想マシンの数だけprivate_vmsが増加する。また、配置判定部124は、起動された仮想マシンの識別情報を仮想マシン配置テーブル133に登録する。このとき、配置ゾーンは「プライベート」に設定される。そして、処理が終了する。
図21は、仮想マシン配置制御の手順例を示すフローチャート(第2の図)である。
(S20)配置判定部124は、仮想マシン数テーブル131に登録されたパブリッククラウド5の配置数(public_vms)を読み出し、public_vmsがゼロであるか判断する。条件を満たす場合はステップS24に処理が進み、条件を満たさない場合(public_vmsが1以上の場合)はステップS21に処理が進む。
(S21)負荷情報取得部123は、パブリック管理サーバ32からパブリッククラウド5の各仮想マシンの負荷(例えば、CPU使用率)を示す負荷情報を取得する。負荷情報取得部123は、取得した負荷情報に基づいて、一の業務に用いる複数の仮想マシンの負荷の平均(例えば、平均CPU使用率)をパブリック負荷として算出する。
(S22)配置判定部124は、負荷判定テーブル132に登録されたパブリッククラウド5の負荷閾値(public_loadTh)を読み出し、パブリック負荷がpublic_loadTh以上であるか判断する。条件を満たす場合はステップS23に処理が進み、条件を満たさない場合はステップS30に処理が進む。
(S23)配置判定部124は、仮想マシン数テーブル131から、パブリッククラウド5の配置数(public_vms)とパブリッククラウド5の上限数(public_limit)を読み出す。そして、配置判定部124は、public_vmsがpublic_limitに達しているか判断する。条件を満たす場合は仮想マシンの配置に変化なく処理が終了し、条件を満たさない場合はステップS24に処理が進む。
(S24)配置判定部124は、パブリッククラウド5で仮想マシンを起動することを決定する。3階層WebシステムのWebサーバとAPサーバを負荷分散する場合、例えば、2個の仮想マシンが起動される。起動・停止指示部125は、パブリック管理サーバ32に仮想マシンの起動を指示する。パブリック管理サーバ32は、仮想マシンに割り当てるリソースを決定し、業務サーバ37,38に仮想マシンを配置する。
(S25)ロードバランサ設定部126は、HTTPリクエストの振り分け先となるサーバアプリケーション(例えば、Webサーバ)を実行する仮想マシンを特定し、ロードバランサがもつ設定情報に当該仮想マシンのアドレスを登録する。
(S26)配置判定部124は、仮想マシン数テーブル131に登録されたパブリッククラウド5の配置数(public_vms)を更新する。ここでは、起動された仮想マシンの数だけpublic_vmsが増加する。また、配置判定部124は、起動された仮想マシンの識別情報を仮想マシン配置テーブル133に登録する。このとき、配置ゾーンは「パブリック」に設定される。そして、処理が終了する。
図22は、仮想マシン配置制御の手順例を示すフローチャート(第3の図)である。
(S30)配置判定部124は、仮想マシン数テーブル131から、プライベートクラウド4の配置数(private_vms)とプライベートクラウド4の下限数(private_min)を読み出す。そして、配置判定部124は、private_vmsがprivate_minと一致するか判断する。条件を満たす場合は仮想マシンの配置に変化なく処理が終了し、条件を満たさない場合はステップS31に処理が進む。
(S31)配置判定部124は、パブリッククラウド5で仮想マシンを起動することを決定する。3階層WebシステムのWebサーバとAPサーバを負荷分散する場合、例えば、2個の仮想マシンが起動される。起動・停止指示部125は、パブリック管理サーバ32に仮想マシンの起動を指示する。パブリック管理サーバ32は、仮想マシンに割り当てるリソースを決定し、業務サーバ37,38に仮想マシンを配置する。
(S32)ロードバランサ設定部126は、HTTPリクエストの振り分け先となるサーバアプリケーション(例えば、Webサーバ)を実行する仮想マシンを特定し、ロードバランサがもつ設定情報に当該仮想マシンのアドレスを登録する。
(S33)配置判定部124は、仮想マシン数テーブル131に登録されたパブリッククラウド5の配置数(public_vms)を更新する。ここでは、起動された仮想マシンの数だけpublic_vmsが増加する。また、配置判定部124は、起動された仮想マシンの識別情報を仮想マシン配置テーブル133に登録する。このとき、配置ゾーンは「パブリック」に設定される。
(S34)配置判定部124は、プライベートクラウド4で仮想マシンを停止することを決定する。停止する仮想マシンの数は、業務の処理を担当するための最小の単位数とし、ステップS31で起動された仮想マシンと同じ数とする。停止する仮想マシンは、プライベートクラウド4で動作中の仮想マシンの中からランダムに選択してもよい。ロードバランサ設定部126は、HTTPリクエストの振り分け先となるサーバアプリケーション(例えば、Webサーバ)を実行する仮想マシンであって停止する仮想マシンを特定し、ロードバランサがもつ設定情報から当該仮想マシンのアドレスを削除する。
(S35)起動・停止指示部125は、プライベート管理サーバ31に仮想マシンの停止を指示する。プライベート管理サーバ31は、指定された仮想マシンのOSをシャットダウンさせ、停止した仮想マシンに割り当てていたリソースを解放する。
(S36)配置判定部124は、仮想マシン数テーブル131に登録されたプライベートクラウド4の配置数(private_vms)を更新する。ここでは、停止した仮想マシンの数だけprivate_vmsが減少する。また、配置判定部124は、停止した仮想マシンの識別情報を仮想マシン配置テーブル133から削除する。
(S37)配置判定部124は、移動中フラグ=YES(または、値「1」)に設定する。ステップS31〜S36の結果、プライベートクラウド4からパブリッククラウド5に仮想マシンが移動したことになる。そして、処理が終了する。
図23は、仮想マシン配置制御の手順例を示すフローチャート(第4の図)である。
(S40)配置判定部124は、移動中フラグ=YES(または、値「1」)であるか判断する。移動中フラグ=YESの場合はステップS41に処理が進み、移動中フラグ=NOの場合はステップS50に処理が進む。
(S41)配置判定部124は、プライベートクラウド4で仮想マシンを起動することを決定する。3階層WebシステムのWebサーバとAPサーバを負荷分散する場合、例えば、2個の仮想マシンが起動される。起動・停止指示部125は、プライベート管理サーバ31に仮想マシンの起動を指示する。プライベート管理サーバ31は、仮想マシンに割り当てるリソースを決定し、業務サーバ35,36に仮想マシンを配置する。
(S42)ロードバランサ設定部126は、HTTPリクエストの振り分け先となるサーバアプリケーション(例えば、Webサーバ)を実行する仮想マシンを特定し、ロードバランサがもつ設定情報に当該仮想マシンのアドレスを登録する。
(S43)配置判定部124は、仮想マシン数テーブル131に登録されたプライベートクラウド4の配置数(private_vms)を更新する。ここでは、起動された仮想マシンの数だけprivate_vmsが増加する。また、配置判定部124は、起動された仮想マシンの識別情報を仮想マシン配置テーブル133に登録する。このとき、配置ゾーンは「プライベート」に設定される。
(S44)配置判定部124は、パブリッククラウド5で仮想マシンを停止することを決定する。停止する仮想マシンの数は、業務の処理を担当するための最小の単位数とし、ステップS41で起動された仮想マシンと同じ数とする。停止する仮想マシンは、パブリッククラウド5で動作中の仮想マシンの中からランダムに選択してもよい。ロードバランサ設定部126は、HTTPリクエストの振り分け先となるサーバアプリケーション(例えば、Webサーバ)を実行する仮想マシンであって停止する仮想マシンを特定し、ロードバランサがもつ設定情報から当該仮想マシンのアドレスを削除する。
(S45)起動・停止指示部125は、パブリック管理サーバ32に仮想マシンの停止を指示する。パブリック管理サーバ32は、指定された仮想マシンのOSをシャットダウンさせ、停止した仮想マシンに割り当てていたリソースを解放する。
(S46)配置判定部124は、仮想マシン数テーブル131に登録されたパブリッククラウド5の配置数(public_vms)を更新する。ここでは、停止した仮想マシンの数だけpublic_vmsが減少する。また、配置判定部124は、停止した仮想マシンの識別情報を仮想マシン配置テーブル133から削除する。
(S47)配置判定部124は、仮想マシン数テーブル131から、プライベートクラウド4の配置数(private_vms)とプライベートクラウド4の上限数(private_limit)を読み出す。そして、配置判定部124は、private_vmsがprivate_limitに達しているか判断する。条件を満たす場合はステップS48に処理が進み、条件を満たさない場合は処理が終了する。
(S48)配置判定部124は、移動中フラグ=NO(または、値「0」)に設定する。ステップS41〜S46の結果、パブリッククラウド5からプライベートクラウド4に仮想マシンが移動したことになる。そして、処理が終了する。
図24は、仮想マシン配置制御の手順例を示すフローチャート(第5の図)である。
(S50)配置判定部124は、仮想マシン数テーブル131に登録されたパブリッククラウド5の配置数(public_vms)を読み出し、public_vmsがゼロであるか判断する。条件を満たす場合はステップS51に処理が進み、条件を満たさない場合(public_vmsが1以上の場合)はステップS55に処理が進む。
(S51)配置判定部124は、仮想マシン数テーブル131から、プライベートクラウド4の配置数(private_vms)とプライベートクラウド4の下限数(private_min)を読み出す。そして、配置判定部124は、private_vmsがprivate_minと一致するか判断する。条件を満たす場合は処理が終了し、条件を満たさない場合はステップS52に処理が進む。
(S52)配置判定部124は、プライベートクラウド4で仮想マシンを停止することを決定する。3階層WebシステムのWebサーバとAPサーバを負荷分散している場合、例えば、2個の仮想マシンを停止させる。停止する仮想マシンは、プライベートクラウド4で動作中の仮想マシンの中からランダムに選択してもよい。ロードバランサ設定部126は、HTTPリクエストの振り分け先となるサーバアプリケーション(例えば、Webサーバ)を実行する仮想マシンであって停止する仮想マシンを特定し、ロードバランサがもつ設定情報から当該仮想マシンのアドレスを削除する。
(S53)起動・停止指示部125は、プライベート管理サーバ31に仮想マシンの停止を指示する。プライベート管理サーバ31は、指定された仮想マシンのOSをシャットダウンさせ、停止した仮想マシンに割り当てていたリソースを解放する。
(S54)配置判定部124は、仮想マシン数テーブル131に登録されたプライベートクラウド4の配置数(private_vms)を更新する。ここでは、停止した仮想マシンの数だけprivate_vmsが減少する。また、配置判定部124は、停止した仮想マシンの識別情報を仮想マシン配置テーブル133から削除する。これにより、複数の仮想マシンを用いた業務処理の能力が縮退する。そして、処理が終了する。
(S55)配置判定部124は、パブリッククラウド5で仮想マシンを停止することを決定する。3階層WebシステムのWebサーバとAPサーバを負荷分散している場合、例えば、2個の仮想マシンを停止させる。停止する仮想マシンは、パブリッククラウド5で動作中の仮想マシンの中からランダムに選択してもよい。ロードバランサ設定部126は、HTTPリクエストの振り分け先となるサーバアプリケーション(例えば、Webサーバ)を実行する仮想マシンであって停止する仮想マシンを特定し、ロードバランサがもつ設定情報から当該仮想マシンのアドレスを削除する。
(S56)起動・停止指示部125は、パブリック管理サーバ32に仮想マシンの停止を指示する。パブリック管理サーバ32は、指定された仮想マシンのOSをシャットダウンさせ、停止した仮想マシンに割り当てていたリソースを解放する。
(S57)配置判定部124は、仮想マシン数テーブル131に登録されたパブリッククラウド5の配置数(public_vms)を更新する。ここでは、停止した仮想マシンの数だけpublic_vmsが減少する。また、配置判定部124は、停止した仮想マシンの識別情報を仮想マシン配置テーブル133から削除する。これにより、複数の仮想マシンを用いた業務処理の能力が縮退する。そして、処理が終了する。
第2の実施の形態の情報処理システムによれば、プライベートクラウド4の仮想マシンの負荷とパブリッククラウド5の仮想マシンの負荷の両方が高い場合、パブリッククラウド5に仮想マシンを追加することが許容される。一方、プライベートクラウド4の仮想マシンの負荷は高いもののパブリッククラウド5の仮想マシンの負荷が低い場合、パブリッククラウド5に仮想マシンを更に追加して仮想マシンの総数を増やすことが制限される。
これにより、プライベートクラウド4の負荷の低下が期待できない場面でパブリッククラウド5に過剰な仮想マシンが配置されるのを抑制でき、パブリッククラウド5のリソースを効率的に利用することができる。パブリッククラウド5のリソースの利用に対して従量制料金が発生する場合、企業が負担する料金を削減することができる。
また、仮想マシンの総数を増やすことが制限されているとき、プライベートクラウド4からパブリッククラウド5に仮想マシンを移動することで、負荷が高止まりしている仮想マシンを減らすことができる。また、ロードバランサが適切にHTTPリクエストを振り分けることで、負荷が高止まりしている仮想マシンの業務処理を減らし、応答時間の悪化を抑制することができる。また、プライベートクラウド4に最低数の仮想マシンを残すことで、パブリッククラウド5のシステムが障害などにより一時的に利用できなくなっても業務を継続することができ、業務停止のリスクを低減できる。
なお、前述のように、第1の実施の形態の情報処理は、管理装置10にプログラムを実行させることで実現することができる。第2の実施の形態の情報処理は、プライベート管理サーバ31、パブリック管理サーバ32、クライアント33,34、業務サーバ35〜38および管理サーバ100にプログラムを実行させることで実現することができる。
プログラムは、コンピュータ読み取り可能な記録媒体(例えば、記録媒体113)に記録しておくことができる。記録媒体としては、例えば、磁気ディスク、光ディスク、光磁気ディスク、半導体メモリなどを使用できる。磁気ディスクには、FDおよびHDDが含まれる。光ディスクには、CD、CD−R(Recordable)/RW(Rewritable)、DVDおよびDVD−R/RWが含まれる。プログラムは、可搬型の記録媒体に記録されて配布されることがある。その場合、可搬型の記録媒体からHDDなどの他の記録媒体(例えば、HDD103)にプログラムを複製して(インストールして)実行してもよい。
10 管理装置
11 通信部
12 制御部
2,3 システム
2a,2b,3a,3b 仮想マシン

Claims (5)

  1. 第1のシステムに配置された1または2以上の第1の仮想マシンの負荷を示す情報を取得し、また、第2のシステムに1または2以上の第2の仮想マシンが配置されているとき、前記第2の仮想マシンの負荷を示す情報を取得する通信部と、
    前記第1の仮想マシンの負荷が第1の負荷条件を満たす場合、前記第2のシステムに前記第2の仮想マシンを配置して、ある業務の処理を前記第1の仮想マシンと前記第2の仮想マシンとに分散させ、
    前記第2の仮想マシンの配置後、前記第1の仮想マシンの負荷が前記第1の負荷条件を満たし、前記第2の仮想マシンの負荷が第2の負荷条件を満たす場合、前記第2のシステムに他の第2の仮想マシンを追加することを許容し、
    前記第2の仮想マシンの配置後、前記第1の仮想マシンの負荷が前記第1の負荷条件を満たし、前記第2の仮想マシンの負荷が前記第2の負荷条件を満たさない場合、前記第2のシステムに前記他の第2の仮想マシンを追加することを制限する、制御部と、
    を有する管理装置。
  2. 前記制御部は、前記第1の仮想マシンの負荷が前記第1の負荷条件を満たし、前記第2の仮想マシンの負荷が前記第2の負荷条件を満たさない場合、前記第1の仮想マシンの少なくとも一部を前記第2のシステムに移動させる、請求項1記載の管理装置。
  3. 前記制御部は、一部の第1の仮想マシンの移動後に、前記第1のシステムに配置された他の一部の第1の仮想マシンの負荷が前記第1の負荷条件を満たさなくなった場合、前記一部の第1の仮想マシンまたは前記第2の仮想マシンの少なくとも一部を前記第1のシステムに移動させる、請求項2記載の管理装置。
  4. コンピュータが実行する業務負荷分散管理方法であって、
    第1のシステムに配置された1または2以上の第1の仮想マシンの負荷が第1の負荷条件を満たす場合、第2のシステムに1または2以上の第2の仮想マシンを配置して、ある業務の処理を前記第1の仮想マシンと前記第2の仮想マシンとに分散させ、
    前記第2の仮想マシンの配置後、前記第1の仮想マシンの負荷が前記第1の負荷条件を満たし、前記第2の仮想マシンの負荷が第2の負荷条件を満たす場合、前記第2のシステムに他の第2の仮想マシンを追加することを許容し、
    前記第2の仮想マシンの配置後、前記第1の仮想マシンの負荷が前記第1の負荷条件を満たし、前記第2の仮想マシンの負荷が前記第2の負荷条件を満たさない場合、前記第2のシステムに前記他の第2の仮想マシンを追加することを制限する、
    業務負荷分散管理方法。
  5. コンピュータに、
    第1のシステムに配置された1または2以上の第1の仮想マシンの負荷が第1の負荷条件を満たす場合、第2のシステムに1または2以上の第2の仮想マシンを配置して、ある業務の処理を前記第1の仮想マシンと前記第2の仮想マシンとに分散させ、
    前記第2の仮想マシンの配置後、前記第1の仮想マシンの負荷が前記第1の負荷条件を満たし、前記第2の仮想マシンの負荷が第2の負荷条件を満たす場合、前記第2のシステムに他の第2の仮想マシンを追加することを許容し、
    前記第2の仮想マシンの配置後、前記第1の仮想マシンの負荷が前記第1の負荷条件を満たし、前記第2の仮想マシンの負荷が前記第2の負荷条件を満たさない場合、前記第2のシステムに前記他の第2の仮想マシンを追加することを制限する、
    処理を実行させる業務負荷分散管理プログラム。
JP2014029801A 2014-02-19 2014-02-19 管理装置、業務負荷分散管理方法および業務負荷分散管理プログラム Expired - Fee Related JP6237318B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014029801A JP6237318B2 (ja) 2014-02-19 2014-02-19 管理装置、業務負荷分散管理方法および業務負荷分散管理プログラム
US14/603,841 US9588789B2 (en) 2014-02-19 2015-01-23 Management apparatus and workload distribution management method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014029801A JP6237318B2 (ja) 2014-02-19 2014-02-19 管理装置、業務負荷分散管理方法および業務負荷分散管理プログラム

Publications (2)

Publication Number Publication Date
JP2015153402A JP2015153402A (ja) 2015-08-24
JP6237318B2 true JP6237318B2 (ja) 2017-11-29

Family

ID=53798202

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014029801A Expired - Fee Related JP6237318B2 (ja) 2014-02-19 2014-02-19 管理装置、業務負荷分散管理方法および業務負荷分散管理プログラム

Country Status (2)

Country Link
US (1) US9588789B2 (ja)
JP (1) JP6237318B2 (ja)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10291472B2 (en) 2015-07-29 2019-05-14 AppFormix, Inc. Assessment of operational states of a computing environment
US10581687B2 (en) * 2013-09-26 2020-03-03 Appformix Inc. Real-time cloud-infrastructure policy implementation and management
JP6097235B2 (ja) * 2014-02-19 2017-03-15 西日本電信電話株式会社 負荷分散システム、負荷分散装置及び負荷分散方法
EP2988214A1 (en) * 2014-08-20 2016-02-24 Alcatel Lucent Method for balancing a load, a system, an elasticity manager and a computer program product
US10171313B2 (en) * 2015-01-23 2019-01-01 International Business Machines Corporation Managing workload to meet execution criterion in a hybrid cloud environment
US10216744B2 (en) * 2015-05-01 2019-02-26 Microsoft Technology Licensing, Llc Data migration to a cloud computing system
US10310883B2 (en) * 2015-07-06 2019-06-04 Purdue Research Foundation Integrated configuration engine for interference mitigation in cloud computing
EP3179699B1 (en) * 2015-12-11 2020-05-27 Alcatel Lucent A controller for a cloud based service in a telecommunications network, and a method of providing a cloud based service
CN106933673B (zh) 2015-12-30 2020-11-27 阿里巴巴集团控股有限公司 调整组件逻辑线程数量的方法及装置
US10432707B2 (en) * 2016-03-02 2019-10-01 International Business Machines Corporation Optimization of integration flows in cloud environments
US10360187B1 (en) * 2016-03-05 2019-07-23 Virtuozzo International Gmbh Hybrid storage for virtual machines and containers
JP6872117B2 (ja) * 2017-01-26 2021-05-19 富士フイルムビジネスイノベーション株式会社 情報処理装置及びプログラム
US20180260262A1 (en) * 2017-03-07 2018-09-13 Microsoft Technology Licensing, Llc Availability management interfaces in a distributed computing system
US10868742B2 (en) 2017-03-29 2020-12-15 Juniper Networks, Inc. Multi-cluster dashboard for distributed virtualization infrastructure element monitoring and policy control
US11323327B1 (en) 2017-04-19 2022-05-03 Juniper Networks, Inc. Virtualization infrastructure element monitoring and policy control in a cloud environment using profiles
US10904323B2 (en) * 2017-06-08 2021-01-26 F5 Networks, Inc. Methods for server load balancing in a cloud environment using dynamic cloud pricing and devices thereof
US10579488B2 (en) * 2017-07-31 2020-03-03 Vmare, Inc. Auto-calculation of recovery plans for disaster recovery solutions
CN107689925B (zh) * 2017-09-28 2020-01-14 平安科技(深圳)有限公司 基于云监控的负载均衡优化方法及装置
US20190250959A1 (en) * 2018-02-14 2019-08-15 Red Hat, Inc. Computing resource balancing among different computing zones
EP3561671A1 (en) * 2018-04-27 2019-10-30 Nokia Solutions and Networks Oy Allocating workload
US10761875B1 (en) * 2018-12-13 2020-09-01 Amazon Technologies, Inc. Large scale compute instance launching
CN114090223A (zh) * 2020-08-24 2022-02-25 北京百度网讯科技有限公司 访存请求调度方法、装置、设备以及存储介质
KR102418250B1 (ko) * 2020-11-24 2022-07-07 주식회사 이노그리드 효율적인 자원 활용을 위한 멀티클라우드 서비스 시스템 및 방법
KR102418251B1 (ko) * 2020-11-24 2022-07-07 주식회사 이노그리드 장애 대비를 위한 멀티클라우드 서비스 시스템 및 방법
WO2022240602A1 (en) * 2021-05-11 2022-11-17 Jpmorgan Chase Bank, N.A. Method and system for hosting platform in public cloud computing environment
JP2023009934A (ja) * 2021-07-08 2023-01-20 富士通株式会社 情報処理装置、情報処理方法及び情報処理プログラム
US12273409B2 (en) * 2022-05-04 2025-04-08 Microsoft Technology Licensing, Llc Method and system of managing resources in a cloud computing environment
US11971791B2 (en) 2022-08-12 2024-04-30 Capital One Services, Llc Automated regional failover

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110078303A1 (en) * 2009-09-30 2011-03-31 Alcatel-Lucent Usa Inc. Dynamic load balancing and scaling of allocated cloud resources in an enterprise network
US8631403B2 (en) * 2010-01-04 2014-01-14 Vmware, Inc. Method and system for managing tasks by dynamically scaling centralized virtual center in virtual infrastructure
US20120173709A1 (en) * 2011-01-05 2012-07-05 Li Li Seamless scaling of enterprise applications
JP5675471B2 (ja) 2011-04-05 2015-02-25 株式会社日立製作所 データセンタシステム管理方法、データセンタシステム、及び管理装置
EP2839373A4 (en) * 2012-04-16 2015-12-09 Hewlett Packard Development Co ORCHESTRATION OF VIRTUAL CALCULATION RESOURCES
US9164808B2 (en) * 2012-07-20 2015-10-20 Verizon Patent And Licensing Inc. Virtual container for network systems
US8978035B2 (en) * 2012-09-06 2015-03-10 Red Hat, Inc. Scaling of application resources in a multi-tenant platform-as-a-service environment in a cloud computing system
US20140079207A1 (en) * 2012-09-12 2014-03-20 Genesys Telecommunications Laboratories, Inc. System and method for providing dynamic elasticity of contact center resources
US10642800B2 (en) * 2013-10-25 2020-05-05 Vmware, Inc. Multi-tenant distributed computing and database

Also Published As

Publication number Publication date
US20150234670A1 (en) 2015-08-20
US9588789B2 (en) 2017-03-07
JP2015153402A (ja) 2015-08-24

Similar Documents

Publication Publication Date Title
JP6237318B2 (ja) 管理装置、業務負荷分散管理方法および業務負荷分散管理プログラム
US11106508B2 (en) Elastic multi-tenant container architecture
JP6199514B2 (ja) ファブリック分散リソースのスケジューリング
JP6075226B2 (ja) プログラム、仮想マシン管理方法および情報処理装置
CN103635882B (zh) 控制网络利用
US9405572B2 (en) Optimized resource allocation and management in a virtualized computing environment
JP6102949B2 (ja) 仮想計算機管理プログラム,仮想計算機管理方法及び仮想計算機システム
US11126467B2 (en) Proactive load-balancing using retroactive work refusal
US20140245298A1 (en) Adaptive Task Scheduling of Hadoop in a Virtualized Environment
JP2016103179A (ja) 計算機リソースの割り当て方法及び計算機システム
WO2012056596A1 (ja) 計算機システム及び処理制御方法
JP2013518330A5 (ja)
JP2017107274A (ja) 仮想マシン増設方法、情報処理装置および仮想マシン増設システム
US10320892B2 (en) Rolling capacity upgrade control
CN106133693A (zh) 虚拟机的迁移方法、装置及设备
US20150363216A1 (en) Method and system for managing hosts that run virtual machines within a cluster
US10484262B2 (en) Dynamic cloning of application infrastructures
KR20130019698A (ko) 사용자 스케줄러와 마이그레이션(Migration)을 통한 자원 최적화 방법 및 시스템
US20200036782A1 (en) Service location management in computing systems
KR20200080458A (ko) 클라우드 멀티-클러스터 장치
US20220237024A1 (en) Diagonal autoscaling of serverless computing processes for reduced downtime
JP2016526723A (ja) 複数のコンピューティングシステムへのクライアントアクセスの管理
JP2018180591A (ja) 情報処理装置、情報処理システム、情報処理方法及び情報処理プログラム
JP5151509B2 (ja) 仮想マシンシステム及びそれに用いる仮想マシン分散方法
JP7176633B2 (ja) 仮想化基盤制御装置、仮想化基盤制御方法および仮想化基盤制御プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161102

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170817

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: 20171003

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171016

R150 Certificate of patent or registration of utility model

Ref document number: 6237318

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees