JP6075226B2 - プログラム、仮想マシン管理方法および情報処理装置 - Google Patents

プログラム、仮想マシン管理方法および情報処理装置 Download PDF

Info

Publication number
JP6075226B2
JP6075226B2 JP2013133475A JP2013133475A JP6075226B2 JP 6075226 B2 JP6075226 B2 JP 6075226B2 JP 2013133475 A JP2013133475 A JP 2013133475A JP 2013133475 A JP2013133475 A JP 2013133475A JP 6075226 B2 JP6075226 B2 JP 6075226B2
Authority
JP
Japan
Prior art keywords
virtual machine
machine
resource
physical
response time
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.)
Active
Application number
JP2013133475A
Other languages
English (en)
Other versions
JP2015007942A (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 JP2013133475A priority Critical patent/JP6075226B2/ja
Priority to US14/309,203 priority patent/US9921861B2/en
Publication of JP2015007942A publication Critical patent/JP2015007942A/ja
Application granted granted Critical
Publication of JP6075226B2 publication Critical patent/JP6075226B2/ja
Active 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/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; 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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/301Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is a virtual computing platform, e.g. logically partitioned systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • 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
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • 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/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/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5019Workload prediction

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明はプログラム、仮想マシン管理方法および情報処理装置に関する。
現在、物理的なコンピュータ(物理マシンと言うことがある)上で、1または2以上の仮想的なコンピュータ(仮想マシンと言うことがある)を動作させる、コンピュータの仮想化技術が利用されている。仮想化技術を用いることで、複数のユーザの仮想マシンを1台の物理マシン上で動作させることもできる。このとき、ユーザ間で情報処理が互いに干渉しないように分離することができる。また、物理マシンが有するCPU(Central Processing Unit)リソースやRAM(Random Access Memory)リソースなどのリソースを、柔軟にユーザに割り振ることができる。そのため、データセンタなど多数のユーザが利用する情報処理システムにおいて、仮想化技術が用いられることが多い。
物理マシン上では、複数の仮想マシンを制御するための制御ソフトウェア(例えば、ハイパーバイザや管理OS(Operating System)と呼ばれるもの)が実行される。制御ソフトウェアは、物理マシンが有するリソースを複数の仮想マシンに割り振る。各仮想マシン上では、他の仮想マシンとは独立してユーザOSが実行される。各仮想マシンのユーザOSは、制御ソフトウェアから割り当てられたリソースを管理し、割り当てられたリソースの範囲内でアプリケーションソフトウェアが実行されるように制御する。
複数の物理マシンを有する情報処理システムの中には、物理マシン間で仮想マシンを移動(マイグレーション)できるものがある。仮想マシンの移動は、当該仮想マシンを停止させずに行える場合もある(ライブマイグレーション)。リソースが不足している物理マシン上で動作する仮想マシンの一部を他の物理マシンに移動することで、移動した仮想マシンの処理速度が改善されることがある。なお、各仮想マシンが使用するリソースの将来の増加量を予測し、予測した将来の増加量の近い仮想マシンが同一の物理マシンに配置されるように、仮想マシンの移動先を決定する仮想マシン管理装置が提案されている。
特開2011−198332号公報
ところで、物理マシンのリソースを仮想マシンに割り当てるにあたり、リソースの使用効率を上げるため、割当量の合計が物理マシンの有するリソースの量を超えることを許容する場合がある。このようなリソースの割当方法は、「オーバーコミット」と呼ばれることがある。例えば、ある時間帯(昼間など)に負荷が高くなる傾向にある仮想マシンと、他の時間帯(夜間など)に負荷が高くなる傾向にある仮想マシンとを、組み合わせて同じ物理マシンに配置する。そして、この2つの仮想マシンに対して当該物理マシンの有するリソースをオーバーコミットすることで、オーバーコミットしない場合と比べて、各時間帯の未使用リソースを減らしてリソースの使用効率を上げることができる。
ただし、オーバーコミットが行われると、ある仮想マシンに割り当てられたリソースの中には、当該仮想マシンが他の仮想マシンと共有しない部分(非共有部分)と、他の仮想マシンと共有している部分(共有部分)とが含まれることになる。共有部分については、当該仮想マシンが使用できることは保証されていない。よって、同一の物理マシン上にある2以上の仮想マシンの負荷が、予想に反して同時期に高くなると、少なくとも一部の仮想マシンは割り当てられたリソースの全部は使用できなくなる。
オーバーコミットが行われる情報処理システムにおいても、ある仮想マシンのレスポンスが非常に遅くなったときには、当該仮想マシンを他の物理マシンに移動することを検討した方が好ましい。例えば、ユーザと情報処理システムの運営者との間で、レスポンス時間(例えば、リクエストを受けてからレスポンスを返すまでの時間)の許容レベルが合意されている場合には、レスポンス時間を当該許容レベル以下にすることが好ましい。
しかし、オーバーコミットが行われていると、オーバーコミットを前提としない従来の仮想マシン管理に関する技術では、仮想マシンの移動によってレスポンス時間が改善するか予測することが容易でないという問題がある。割り当てられたリソースのうち共有部分については、他の仮想マシンと競合するリスクがある。よって、単にリソースの割当量に基づいてレスポンス時間を推定すると、共有部分のリスクが評価されない。
1つの側面では、移動後の仮想マシンのレスポンス時間を推定する精度が向上するプログラム、仮想マシン管理方法および情報処理装置を提供することを目的とする。
1つの態様では、コンピュータに以下の処理を実行させるプログラムが提供される。コンピュータは、第1の物理マシン上で動作する仮想マシンを移動する場合に、第2の物理マシンへの他の仮想マシンの配置状況に応じて、仮想マシンが第2の物理マシン上で他の仮想マシンと共有せずに使用可能な第1のリソースの量を算出する。第1の物理マシンで動作していたときの仮想マシンの第1のレスポンス時間と第1のリソースの量とに基づいて、第2の物理マシンへ移動した場合の仮想マシンの第2のレスポンス時間を推定する。第2のレスポンス時間の推定では、仮想マシンの使用するリソースが第1のリソースの範囲内である場合と、仮想マシンが第2の物理マシン上で他の仮想マシンと共有する第2のリソースを使用する場合とで、異なるアルゴリズムを用いる。
また、1つの態様では、コンピュータが実行する仮想マシン管理方法が提供される。
また、1つの態様では、記憶部と演算部とを有する情報処理装置が提供される。記憶部は、第1の物理マシン上で動作する仮想マシンの第1のレスポンス時間を示す情報と、第2の物理マシンへの他の仮想マシンの配置状況を示す情報とを記憶する。演算部は、配置状況に応じて、仮想マシンが第2の物理マシン上で他の仮想マシンと共有せずに使用可能な第1のリソースの量を算出し、第1のレスポンス時間と第1のリソースの量とに基づいて、第2の物理マシンに移動した場合の仮想マシンの第2のレスポンス時間を推定する。演算部は、仮想マシンの使用するリソースが第1のリソースの範囲内である場合と、仮想マシンが第2の物理マシン上で他の仮想マシンと共有する第2のリソースを使用する場合とで、異なるアルゴリズムを用いて第2のレスポンス時間を推定する。
1つの側面では、移動後の仮想マシンのレスポンス時間を推定する精度が向上する。
第1の実施の形態の情報処理システムを示す図である。 第2の実施の形態の情報処理システムを示す図である。 管理サーバのハードウェア例を示すブロック図である。 仮想マシンの配置例を示すブロック図である。 CPUリソースのオーバーコミットの例を示す図である。 トランザクション数とレスポンス時間の関係例を示すグラフである。 管理サーバおよび物理マシンのソフトウェア例を示すブロック図である。 物理マシンテーブルの例を示す図である。 仮想マシンテーブルの例を示す図である。 動作ログテーブルの例を示す図である。 移動制御の手順例を示すフローチャートである。 関数算出の手順例を示すフローチャートである。 レスポンス時間テーブルの例を示す図である。 移動先決定の手順例を示すフローチャートである。
以下、本実施の形態を図面を参照して説明する。
[第1の実施の形態]
図1は、第1の実施の形態の情報処理システムを示す図である。
第1の実施の形態の情報処理システムは、コンピュータの仮想化技術を用いて、同一または異なるユーザの複数の仮想マシンを動作させる。この情報処理システムは、例えば、複数のユーザから利用されるデータセンタに設けられる。
情報処理システムは、情報処理装置10と、物理マシン21,22を含む複数の物理マシンとを有する。情報処理装置10は、人が操作する端末装置などのクライアントコンピュータでもよいし、サーバコンピュータでもよい。物理マシン21,22は、複数の仮想マシンが動作可能なコンピュータであり、例えば、サーバコンピュータである。情報処理装置10と物理マシン21,22とは、例えば、ネットワークで接続されている。
物理マシン21上では、少なくとも仮想マシン23(VM#1)が動作している。仮想マシン23では、Webアプリケーションなど、リクエストに応じてレスポンスを返すアプリケーションソフトウェアが実行され得る。物理マシン22上では、少なくとも仮想マシン24(VM#2)が動作している。ただし、各仮想マシンは、情報処理装置10の制御のもとで、ある物理マシンから他の物理マシンに移動(マイグレーション)することができる。仮想マシン23が物理マシン21から物理マシン22に移動すると、仮想マシン23には、物理マシン22のリソースが割り当てられることになる。リソースの例としては、CPUリソースやRAMリソースなどの計算リソースが挙げられる。
ここで、第1の実施の形態では、オーバーコミットが行われる。よって、物理マシン22上で複数の仮想マシンが動作するとき、それら仮想マシンに割り当てられたリソースの合計量が、物理マシン22の備えるリソースの量を超えることがある。仮想マシン23が物理マシン21から物理マシン22に移動する場合、仮想マシン23と仮想マシン24とが、物理マシン22の一部のリソースを共有する可能性がある。
情報処理装置10は、仮想マシン23,24を含む複数の仮想マシンを管理する。情報処理装置10は、記憶部11および演算部12を有する。記憶部11は、RAMなどの揮発性の記憶装置でもよいし、HDDなどの不揮発性の記憶装置でもよい。演算部12は、例えば、プロセッサである。プロセッサは、CPUやDSP(Digital Signal Processor)であってもよく、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの回路を含んでもよい。プロセッサは、例えば、メモリ(例えば、記憶部11)に記憶されたプログラムを実行する。
記憶部11は、動作情報13および構成情報14を記憶する。動作情報13および構成情報14は、物理マシン21,22から収集されたものでもよい。動作情報13は、物理マシン21上で動作しているときの仮想マシン23のレスポンス時間を示す。レスポンス時間は、例えば、仮想マシン23がリクエストを受信してから当該リクエストに対応するレスポンスを送信するまでに要する時間またはその平均値である。構成情報14は、物理マシン22への仮想マシンの配置状況を示す。構成情報14は、物理マシン22上で動作する各仮想マシンの割当リソース量の情報を含んでいてもよい。
演算部12は、仮想マシン23を物理マシン21から他の物理マシンに移動することを検討する。移動を検討する契機としては、例えば、仮想マシン23のレスポンス時間が許容レベルを超えたことなどが考えられる。演算部12は、移動先の候補として物理マシン22が挙げられる場合、仮想マシン23を物理マシン21から物理マシン22に移動した後のレスポンス時間を推定する。移動後のレスポンス時間が所定の条件を満たす場合、演算部12は、仮想マシン23を物理マシン22に移動することを決定してもよい。
ここで、「レスポンス時間を推定する」とは、移動後のレスポンス時間の予測値を算出することであってもよいし、レスポンス時間が移動前と比べて改善するか否かを判定することや改善量を算出することであってもよい。「レスポンス時間」は、処理中のリクエストの数などの負荷値を変数とする関数として表してもよいし、ある負荷状態(例えば、処理中のリクエストの数がある値のとき)に対応するレスポンス時間であってもよい。
具体的には、演算部12は、構成情報14が示す配置状況に応じて、仮想マシン23が物理マシン22上で仮想マシン24などの他の仮想マシンと共有せずに使用可能なリソース25(非共有リソース)の量を算出する。リソース25は、例えば、仮想マシン23に割り当てられるリソースのうち、他の仮想マシンが割り当てられたリソースを全て使用したとしても浸食されない、占有できるリソースである。そして、演算部12は、動作情報13が示す物理マシン21上でのレスポンス時間と算出したリソース25の量とに基づいて、物理マシン22に移動した場合の仮想マシン23のレスポンス時間を推定する。
このとき、演算部12は、仮想マシン23の使用するリソースがリソース25の範囲内である場合(第1のケース)と、仮想マシン23が他の仮想マシンと共有するリソース26を使用する場合(第2のケース)とで、異なるアルゴリズムを用いる。リソース26は、例えば、仮想マシン23に割り当てられる物理マシン22のリソースのうち、他の仮想マシンと競合しており使用できることが保証されないリソースである。
リソース使用量がリソース25の量以下である場合、仮想マシン23は割り当てられたリソースのうち非共有部分のみ使用すればよく、第1のケースに該当する。一方、リソース使用量がリソース25の量を超えた場合、仮想マシン23は割り当てられたリソースのうち共有部分に加えて非共有部分も使用することになり、第2のケースに該当する。
第1のケースでは、例えば、レスポンス時間がリクエスト数に対して線形関係にあると仮定したアルゴリズムを用いる。線形関係には、レスポンス時間が一次関数で表される関係が含まれる。一方、第2のケースでは、例えば、レスポンス時間がリクエスト数に対して非線形関係にあると仮定したアルゴリズムを用いる。非線形関係には、指数関数など、レスポンス時間が非一次関数で表される関係が含まれる。第1のケースより第2のケースの方が、リクエスト数の増加に対するレスポンス時間の増加が大きくなる可能性が高い。
第1の実施の形態の情報処理システムによれば、仮想マシン23の移動先の候補となる物理マシンにおいて、仮想マシン23が他の仮想マシンと共有せずに使用可能なリソース25の量が算出される。そして、仮想マシン23が非共有部分のリソース25の範囲内で動作する場合と共有部分のリソース26を使用する場合とで、異なるアルゴリズムを用いて、物理マシン22におけるレスポンス時間が推定される。よって、共有部分のリソース26について他の仮想マシンと競合するリスクを評価でき、オーバーコミットが行われる場合であっても、レスポンス時間の推定精度が向上する。また、レスポンス時間が改善される可能性の高い物理マシンに仮想マシン23を移動することが可能となる。
[第2の実施の形態]
図2は、第2の実施の形態の情報処理システムを示す図である。
第2の実施の形態の情報処理システムは、クライアント31,32を含む複数のクライアント、ネットワーク33,34、管理サーバ100、および、物理マシン200,200a,200bを含む複数の物理マシンを有する。管理サーバ100は、第1の実施の形態における情報処理装置10の一例である。物理マシン200,200a,200bは、第1の実施の形態における物理マシン21,22の一例である。
クライアント31,32は、ネットワーク33に接続されている。ネットワーク33は、例えば、インターネットなどの広域ネットワークである。管理サーバ100および物理マシン200,200a,200bは、ネットワーク34に接続されている。ネットワーク34は、例えば、データセンタなどの構内のLAN(Local Area Network)である。ネットワーク33,34は互いに接続されている。クライアント31,32は、ネットワーク33,34を介して物理マシン200,200a,200bにアクセスできる。
クライアント31,32は、物理マシン200,200a,200bにリクエストを送信し、リクエストに対するレスポンスを受信するクライアントコンピュータである。クライアント31,32は、人が操作する端末装置であってもよい。クライアント31,32と物理マシン200,200a,200bとの間の通信は、例えば、HTTP(Hypertext Transfer Protocol)に従って行われる。その場合、クライアント31,32上では、クライアントアプリケーションとしてWebブラウザが実行されてもよい。
管理サーバ100は、物理マシン200,200a,200bおよび物理マシン200,200a,200b上で動作する仮想マシンを管理するサーバコンピュータである。ただし、管理サーバ100は、管理者が操作する端末装置であってもよい。管理サーバ100は、物理マシン200,200a,200bから、物理マシンの備えるリソースおよび当該リソースの仮想マシンへの割当状況を示す構成情報や、仮想マシンの負荷を示す動作ログを収集する。そして、管理サーバ100は、各仮想マシンの負荷に応じて、物理マシン間の仮想マシンの移動(マイグレーション)を制御する。仮想マシンの移動は、仮想マシンを停止して行ってもよいし、停止せずに行ってもよい(ライブマイグレーション)。
物理マシン200,200a,200bは、複数の仮想マシンが動作し得るサーバコンピュータである。仮想マシンは、管理サーバ100の制御のもとで物理マシン200,200a,200bに配置され、また、物理マシン間で移動される。仮想マシンを移動する場合、例えば、当該仮想マシンに関するRAM上のデータやHDD上のデータが物理マシン間で移動される。同一の物理マシン上には、異なるユーザからの要求に応じて生成された仮想マシン(例えば、契約者の異なる仮想マシン)が混在していてもよい。各仮想マシンで独立にOSが実行されることで、ユーザ間で情報処理を明確に分離できる。
仮想マシン上では、リクエストに応じてレスポンスを返すアプリケーションソフトウェアが実行される。アプリケーションソフトウェアの例として、HTTPリクエストに応じてHTTPレスポンスを返すWebアプリケーションが挙げられる。仮想マシンは、クライアント31,32からリクエストを受信すると、リクエストに応じた一連の処理(トランザクション)を実行し、トランザクションの実行結果を示すレスポンスを送信する。
ここで、仮想マシンは、あるリクエストに対応するトランザクションが未終了のときに他のリクエストを更に受信すると、複数のトランザクションを並行して実行することになる。並行して実行されるトランザクションの数(以下、単に「トランザクション数」と言うことがある)が増加すると、CPUリソースやRAMリソースなどのリソースの使用量が増加する可能性がある。また、トランザクション数が増加すると、リクエスト1つ当たりのレスポンスを返すまでに要するレスポンス時間が大きくなる可能性がある。
図3は、管理サーバのハードウェア例を示すブロック図である。
管理サーバ100は、CPU101、RAM102、HDD103、画像信号処理部104、入力信号処理部105、媒体リーダ106および通信インタフェース107を有する。CPU101は、第1の実施の形態の演算部12の一例であり、RAM102またはHDD103は、第1の実施の形態の記憶部11の一例である。
CPU101は、プログラムの命令を実行する演算回路を含むプロセッサである。CPU101は、HDD103に記憶されているプログラムやデータの少なくとも一部をRAM102にロードし、プログラムを実行する。なお、CPU101は複数のプロセッサコアを備えてもよく、管理サーバ100は複数のプロセッサを備えてもよく、以下で説明する処理を複数のプロセッサまたはプロセッサコアを用いて並列実行してもよい。また、複数のプロセッサの集合(マルチプロセッサ)を「プロセッサ」と呼んでもよい。
RAM102は、CPU101が実行するプログラムやCPU101が演算に用いるデータを一時的に記憶する揮発性メモリである。なお、管理サーバ100は、RAM以外の種類のメモリを備えてもよく、複数個のメモリを備えてもよい。
HDD103は、OSやミドルウェアやアプリケーションソフトウェアなどのソフトウェアのプログラム、および、データを記憶する不揮発性の記憶装置である。なお、管理サーバ100は、フラッシュメモリやSSD(Solid State Drive)などの他の種類の記憶装置を備えてもよく、複数の不揮発性の記憶装置を備えてもよい。
画像信号処理部104は、CPU101からの命令に従って、管理サーバ100に接続されたディスプレイ41に画像を出力する。ディスプレイ41としては、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ(LCD:Liquid Crystal Display)、プラズマディスプレイ(PDP:Plasma Display Panel)、有機EL(OEL:Organic Electro-Luminescence)ディスプレイなどを用いることができる。
入力信号処理部105は、管理サーバ100に接続された入力デバイス42から入力信号を取得し、CPU101に出力する。入力デバイス42としては、マウスやタッチパネルやタッチパッドやトラックボールなどのポインティングデバイス、キーボード、リモートコントローラ、ボタンスイッチなどを用いることができる。また、管理サーバ100に、複数の種類の入力デバイスが接続されていてもよい。
媒体リーダ106は、記録媒体43に記録されたプログラムやデータを読み取る読み取り装置である。記録媒体43として、例えば、フレキシブルディスク(FD:Flexible Disk)やHDDなどの磁気ディスク、CD(Compact Disc)やDVD(Digital Versatile Disc)などの光ディスク、光磁気ディスク(MO:Magneto-Optical disk)、半導体メモリなどを使用できる。媒体リーダ106は、例えば、記録媒体43から読み取ったプログラムやデータをRAM102またはHDD103に格納する。
通信インタフェース107は、ネットワーク34に接続され、ネットワーク34を介して物理マシン200,200a,200bと通信を行うインタフェースである。通信インタフェース107は、ケーブルで通信装置と接続される有線通信インタフェースでもよいし、基地局と無線リンクで接続される無線通信インタフェースでもよい。
なお、管理サーバ100は、媒体リーダ106を備えていなくてもよい。また、管理サーバ100は、端末装置からネットワーク34経由で制御される場合には、画像信号処理部104や入力信号処理部105を備えていなくてもよい。また、ディスプレイ41や入力デバイス42が、管理サーバ100の筐体と一体に形成されていてもよい。クライアント31,32および物理マシン200,200a,200bも、管理サーバ100と同様のハードウェアを用いて実現することが可能である。
図4は、仮想マシンの配置例を示すブロック図である。
物理マシン200は、ハイパーバイザ210、仮想マシン220(VM1)および仮想マシン230(VM2)を有する。物理マシン200aは、ハイパーバイザ210a、仮想マシン220a(VMa1)および仮想マシン230a(VMa2)を有する。物理マシン200bは、ハイパーバイザ210b、仮想マシン220b(VMb1)および仮想マシン230b(VMb2)を有する。仮想マシン220,220a,220b,230,230a,230bは、第1の実施の形態の仮想マシン23,24の一例である。
ハイパーバイザ210,210a,210bは、仮想マシンに物理マシンのハードウェアリソースを割り当て、同一の物理マシン上で複数の仮想マシンが並行して動作できるようにする制御ソフトウェアである。ハイパーバイザ210は、物理マシン200に配置された仮想マシン220,230を制御する。ハイパーバイザ210aは、物理マシン200aに配置された仮想マシン220a,230aを制御する。ハイパーバイザ210bは、物理マシン200bに配置された仮想マシン220b,230bを制御する。ただし、ハイパーバイザ210,210a,210bは、仮想マシンを移動させることができる。
ここで、第2の実施の形態では、各仮想マシンに割り当てられるリソースとして、主にCPUリソースとRAMリソースを考える。CPUリソースの量は、CPUクロック数として表現できる。仮想マシンは、指定されたクロック数のCPUを有していると認識し、最大で当該クロック数までCPUを使用することができる。RAMリソースの量は、RAM領域の大きさとして表現できる。仮想マシンは、指定された大きさのRAMを有していると認識し、最大で当該大きさまでRAM領域を使用することができる。
図5は、CPUリソースのオーバーコミットの例を示す図である。
第2の実施の形態では、仮想マシンに対してCPUリソースをオーバーコミットすることができるものとする。オーバーコミットが行われると、ある物理マシン上で動作する仮想マシンに割り当てられたCPUリソースの合計が、当該物理マシンの有するCPUリソースの量を超えることになる。受信するリクエストの数が時間帯によって大きく異なる傾向にある複数の仮想マシンを組み合わせて同一の物理マシンに配置し、CPUリソースをオーバーコミットすることで、CPUリソースの使用効率を上げることができる。
例えば、物理マシン200が2GHzのCPUリソースを有しているとする。CPUリソースの量としての2GHzは、1つのCPUのクロック数であってもよいし、複数のCPUのクロック数の合計であってもよい。また、オーバーコミットにより、仮想マシン220(VM1)に1.6GHzのCPUリソースを割り当て、仮想マシン230(VM2)に0.8GHzのCPUリソースを割り当てるものとする。
この場合、仮想マシン220は、仮想マシン230の負荷に関係なく少なくとも1.2GHzまでは使用できるため、1.2GHzの占有部分を有していると言える。また、仮想マシン230は、仮想マシン220の負荷に関係なく少なくとも0.4GHzまで使用はできるため、0.4GHzの占有部分を有していると言える。一方、残りの0.4GHzのCPUリソースは、オーバーコミット部分であり、仮想マシン220,230が共有していると言える。仮想マシン220,230の負荷の高い時間帯が異なれば、このオーバーコミット部分(共有部分)を効率的に活用することができる。
しかし、偶発的に、仮想マシン220,230のトランザクション数が同時期に多くなり、仮想マシン220,230が共にオーバーコミット部分のCPUリソースを使用しようとする可能性もある。以下では、主に、仮想マシン220が1.6GHzのCPUリソースを全て使用しており、仮想マシン230が割り当てられた0.8GHzのCPUリソースのうち0.4GHzまで(50%)しか使用できない場合を考える。
この場合、仮想マシン230のCPU使用率は50%であるため、CPU使用率を見るだけでは、仮想マシン230がリソース不足であると判断することは難しい。一方、実質的に使用できるCPUリソースが上限に達していることから、トランザクション数の増加に伴って仮想マシン230のレスポンス時間が急激に大きくなるおそれがある。そこで、管理サーバ100は、仮想マシン230のレスポンス時間が大きくなったとき、仮想マシン230がリソース不足であると判断して、他の物理マシンへの移動を検討する。
図6は、トランザクション数とレスポンス時間の関係例を示すグラフである。
仮想マシン230は、CPUリソースの使用量が占有部分の上限(CPUリソース境界点)に達する前までは、トランザクション数が増加すると、使用するCPUリソースを増やして対処できる。図5の例では、仮想マシン230のCPUリソース境界点は、0.4GHzである。この間、トランザクション1つ当たりのレスポンス時間は、トランザクション数が増加しても緩やかに増加する程度に抑えられる。
一方、仮想マシン230は、CPUリソースの使用量がCPUリソース境界点に達した以降は、トランザクション数が更に増加しても、使用するCPUリソースを増やすことができないリスクがある。仮想マシン230がCPUリソースの使用量を増やせるか否かやどの程度まで増やせるかは、同一物理マシン上で動作する仮想マシン220の動作状況に依存する。共有部分を全く使用できない最悪のケースにおいては、CPUリソースの使用量がCPUリソース境界点に達した以降、レスポンス時間が急激に大きくなる。
このように、トランザクション数に対するレスポンス時間は、CPUリソースの割当量の全範囲について1つの方法でモデル化するのではなく、CPUリソースの使用量がCPUリソース境界点に達したか否かに応じて異なる方法でモデル化されることが好ましい。CPUリソースの使用量がCPUリソース境界点に達する前に相当する区間は、例えば、一次関数としてモデル化できる。この区間は、線形区間と言うこともできる。一方、CPUリソースの使用量がCPUリソース境界点に達した以降に相当する区間は、例えば、指数関数としてモデル化できる。この区間は、非線形区間と言うこともできる。
線形区間における直線の傾き(例えば、一次項の係数)や非線形区間における曲線の勾配(例えば、指数項の係数)などのパラメータの値は、仮想マシン230上で動作するアプリケーションソフトウェアに依存する。仮想マシン230が物理マシン200から他の仮想マシンに移動しても、直線の傾きや曲線の勾配は変わらない可能性が高い。一方、線形区間と非線形区間の境界は、仮想マシン230が動作する物理マシンや当該物理マシン上で動作する他の仮想マシンに依存するため、仮想マシン230が物理マシン200から他の仮想マシンに移動することで変化し得る。このとき、モデル上における非線形区間の曲線は、例えば、線形区間に相当する直線に沿ってシフトする。
ここで、仮想マシン220a(VMa1)または仮想マシン230a(VMa2)への物理マシン200aのリソースの割当を解除し、代わりに仮想マシン230を物理マシン200aに移動することを考える。仮想マシン230aを解除することで生じる利用可能なリソースの集合(VM(Virtual Machine)環境)におけるCPUリソース境界点は、仮想マシン230より大きいとする。また、仮想マシン220aのVM環境のCPUリソース境界点は、仮想マシン230aより大きいとする。この場合、図6に示すように、仮想マシン230を物理マシン200aに移動することでレスポンス時間が改善する。
仮想マシン230について、想定する最大のトランザクション数(許容トランザクション数)と許容するレスポンス時間の上限(許容レスポンス時間)とが与えられたとする。この場合、許容トランザクション数に対応するレスポンス時間が許容レスポンス時間以下になると予測されるVM環境が、仮想マシン230の移動先の候補となる。図6の例の場合、仮想マシン220a,230a両方のVM環境がこの条件を満たす。ただし、CPUリソースの使用効率の観点からは、CPUリソース境界点のできる限り小さいVM環境の方が、未使用のCPUリソースが少なくなり好ましい。よって、仮想マシン230aのVM環境の方が、仮想マシン220aのVM環境よりも移動先として好ましい。
なお、仮想マシンの状態としては、実行状態、停止状態および終了状態がある。停止状態は、情報処理を一時的に停止した状態であり、後に実行状態に遷移する可能性がある。停止状態の仮想マシンは、物理マシン上から消去すべきでないが、配置する物理マシンを変更することは可能である。終了状態は、情報処理を永続的に停止した状態である。終了状態の仮想マシンは、リソースを解放して物理マシン上から消去することが可能である。実行状態の仮想マシンは、リソース不足と判断された場合を除き、レスポンス時間が悪化しないように他の物理マシンに移動しない方が好ましい。
以下では、仮想マシン230の移動先の候補として、主に停止状態または終了状態の仮想マシンのVM環境を選択することを考える。停止状態の仮想マシンを移動させるか、終了状態の仮想マシンを消去することで、移動先の物理マシンにおいて仮想マシン230のためのCPUリソースを確保できる。ただし、物理マシン200a,200bに何れの仮想マシンにも割り当てられていない未割当CPUリソースがある場合には、未割当リソースの集合からなるVM環境を、仮想マシン230の移動先の候補に加えてもよい。
図7は、管理サーバおよび物理マシンのソフトウェア例を示すブロック図である。
管理サーバ100は、マシン情報記憶部110、マシン情報収集部121、移動先決定部122および移動実行部123を有する。マシン情報記憶部110は、例えば、管理サーバ100のRAM102またはHDD103に確保した記憶領域として実装される。マシン情報収集部121、移動先決定部122および移動実行部123は、例えば、管理サーバ100のCPU101が実行するプログラムのモジュールとして実装される。
マシン情報記憶部110は、物理マシン200,200a,200bに関するマシン情報を記憶する。マシン情報には、各物理マシンおよび各仮想マシンの構成を示す構成情報と、各仮想マシンの動作状況を示す動作ログとが含まれる。構成情報は、物理マシン200,200a,200bが備えるリソースと、物理マシン200,200a,200bに配置された仮想マシンと、各仮想マシンに割り当てられたリソースとを示す。マシン情報記憶部110には、最新の構成情報を記憶しておけばよい。動作ログは、ある時点におけるリソースの使用状況とトランザクションの実行状況を示す。マシン情報記憶部110には、少なくとも所定期間前までの動作ログを蓄積しておく。
マシン情報収集部121は、物理マシン200,200a,200bから継続的(例えば、定期的)にマシン情報を収集し、マシン情報記憶部110にマシン情報を格納する。後述するように、マシン情報のうち、構成情報は各物理マシンのハイパーバイザから収集され、動作ログは各仮想マシンから収集される。収集された動作ログは、所定期間前までのものが蓄積されるようにマシン情報記憶部110に追記される。マシン情報を収集するにあたり、マシン情報収集部121が物理マシン200,200a,200bに定期的にアクセスするようにしてもよい。また、物理マシン200,200a,200bが定期的または不定期に管理サーバ100にアクセスするようにしてもよい。
移動先決定部122は、マシン情報記憶部110に記憶された動作ログに基づいて、リソース不足の仮想マシンを検出する。リソース不足の仮想マシンとしては、例えば、レスポンス時間が閾値を超えたものや、前回からのレスポンス時間の増加量または増加率が閾値を超えたものなどが挙げられる。閾値は、仮想マシン毎に異なってもよい。リソース不足の仮想マシンが検出されると、移動先決定部122は、マシン情報記憶部110に記憶されたマシン情報に基づいて、移動先となり得る他の物理マシン上のVM環境を探す。
このとき、移動先決定部122は、検出した仮想マシンが現在の物理マシン上で動作しているときのトランザクション数とレスポンス時間との関係を表す関数を、線形区間と非線形区間とに分けて算出する。また、移動先決定部122は、他の物理マシン上のVM環境のCPUリソース境界点を算出する。そして、移動先決定部122は、算出した関数および各VM環境のCPUリソース境界点に基づいて、許容トランザクション数に対応するレスポンス時間が許容値以下になると推定されるVM環境を選択する。
許容レスポンス時間は、例えば、ユーザと情報処理システムの運営者との間の契約に基づいて決まる。許容レスポンス時間は、仮想マシン毎に異なってもよい。許容レスポンス時間を示す情報は、管理者によって管理サーバ100に入力されてもよく、マシン情報記憶部110に記憶されてもよい。そして、移動先決定部122は、選択したVM環境の候補の中から、リソース不足の仮想マシンの移動先を決定する。
移動実行部123は、移動先決定部122が検出したリソース不足の仮想マシンを、移動先決定部122が決定したVM環境に移動するよう制御する。例えば、移動実行部123は、決定されたVM環境が停止状態または終了状態の仮想マシンに割り当てられている場合、当該VM環境をもつ物理マシンにVM環境の解放を要求する。そして、移動実行部123は、移動元の物理マシンと移動先の物理マシンに、仮想マシンの移動を指示する。仮想マシンは、移動元と移動先の物理マシンのハイパーバイザが連携して移動される。
物理マシン200は、前述のように、ハイパーバイザ210および仮想マシン220を有する。ハイパーバイザ210は、構成情報送信部211を有する。仮想マシン220は、OS221および動作ログ送信部222を有する。構成情報送信部211および動作ログ送信部222は、例えば、物理マシン200のCPUが実行するプログラムのモジュールとして実装される。なお、ハイパーバイザ210a,210bも、ハイパーバイザ210と同様のブロック構成によって実現できる。仮想マシン220a,220b,230,230a,230bも、仮想マシン220と同様のブロック構成によって実現できる。
構成情報送信部211は、最新の構成として、物理マシン200が備えるリソースと、物理マシン200に配置された仮想マシン(仮想マシン220,230)と、各仮想マシンに割り当てられたリソースとを確認する。そして、構成情報送信部211は、確認した事項を示す構成情報を生成し、管理サーバ100に送信する。構成情報は、管理サーバ100からの要求に応じて送信してもよいし、自発的に送信してもよい。
動作ログ送信部222は、例えば、OS221上で動作するミドルウェアとして実装される。動作ログ送信部222は、現時点における仮想マシン220のリソースの使用状況とトランザクションの実行状況を確認する。そして、動作ログ送信部222は、確認した事項を示す動作ログを生成し、管理サーバ100に送信する。動作ログは、管理サーバ100からの要求に応じて送信してもよいし、自発的に送信してもよい。
図8は、物理マシンテーブルの例を示す図である。
物理マシンテーブル111は、管理サーバ100のマシン情報記憶部110に格納される。物理マシンテーブル111には、物理マシン200,200a,200bから収集された構成情報に含まれる情報が登録される。物理マシンテーブル111は、物理マシン名、CPU、RAM、仮想マシン数および仮想マシン名の項目を含む。
物理マシン名の項目には、物理マシンの識別情報が登録される。識別情報として、ネットワークアドレスを用いてもよい。CPUの項目には、物理マシンが備えるCPUリソースの量としてCPUクロック数が登録される。RAMの項目には、物理マシンが備えるRAMリソースの量としてRAM領域のバイト数が登録される。仮想マシン数の項目には、物理マシンに配置されている仮想マシンの数が登録される。仮想マシン名の項目には、物理マシンに配置されている仮想マシンの識別情報が列挙される。
例えば、物理マシン200(M1)のCPUリソース量は2GHzであり、RAMリソース量は2GBである。また、物理マシン200a(Ma)のCPUリソース量は4GHzであり、RAMリソース量は4GBである。前述のように、物理マシン200には仮想マシン220,230(VM1,VM2)が配置され、物理マシン200aには仮想マシン220a,230a(VMa1,VMa2)が配置されている。
図9は、仮想マシンテーブルの例を示す図である。
仮想マシンテーブル112は、管理サーバ100のマシン情報記憶部110に格納される。仮想マシンテーブル112には、物理マシン200,200a,200bから収集された構成情報に含まれる情報が登録される。仮想マシンテーブル112は、仮想マシン名、割当CPU、割当RAMおよび状態を示す項目を含む。
仮想マシン名の項目には、仮想マシンの識別情報が登録される。識別情報として、ネットワークアドレスを用いてもよい。割当CPUの項目には、仮想マシンに割り当てられたCPUリソースの量としてCPUクロック数が登録される。割当RAMの項目には、仮想マシンに割り当てられたRAMリソースの量としてRAM領域のバイト数が登録される。状態の項目には、仮想マシンの状態を示す値が登録される。前述のように、仮想マシンの状態には、実行状態と停止状態と終了状態とが含まれる。
例えば、仮想マシン220(VM1)のCPUリソース量は1.6GHzであり、仮想マシン230(VM2)のCPUリソース量は0.8GHzである。物理マシン200のCPUリソース量は2GHzであるため、オーバーコミットが行われている。また、仮想マシン220a(VMa1)のCPUリソース量は3.4GHzであり、仮想マシン230a(VMa2)のCPUリソース量は1.2GHzである。物理マシン200aのCPUリソース量は4GHzであるため、オーバーコミットが行われている。また、仮想マシン220,230は実行状態であり、仮想マシン220a,230aは停止状態である。
図10は、動作ログテーブルの例を示す図である。
動作ログテーブル113は、管理サーバ100のマシン情報記憶部110に格納されている。動作ログテーブル113には、物理マシン200,200a,200bから収集された動作ログに含まれる情報が登録される。図10の例では、10分間隔で管理サーバ100が動作ログを収集している。動作ログテーブル113は、仮想マシン名、時刻、使用CPU、使用RAM、トランザクションおよびレスポンスの項目を含む。
仮想マシン名の項目には、動作ログを生成した仮想マシンの識別情報が登録される。時刻の項目には、動作ログが生成された時刻が登録される。使用CPUの項目には、動作ログが生成された時点における仮想マシンのCPU使用率が登録される。仮想マシンのCPU使用率は、当該仮想マシンに割り当てられたCPUリソースのうち使用されている割合である。使用RAMの項目には、動作ログが生成された時点における仮想マシンが使用しているRAMリソースの量として、RAM領域のバイト数が登録される。
トランザクションの項目には、動作ログが生成された時点におけるトランザクション数が登録される。計測されるトランザクション数としては、一時点において仮想マシンに係属しているトランザクションの数、直近の一定時間のトランザクション数の平均、直近の一定時間に受信したリクエスト数などが考えられる。レスポンスの項目には、動作ログが生成された時点におけるトランザクション1つ当たりのレスポンス時間(リクエストを受信してからレスポンスを返すまでに要する時間)が登録される。計測されるレスポンス時間としては、サンプリングした1つのトランザクションのレスポンス時間、サンプリングした複数のトランザクションのレスポンス時間の平均、直近の一定時間の間に終了したトランザクションのレスポンス時間の平均などが考えられる。
次に、管理サーバ100が仮想マシン230の移動を制御する手順例を説明する。
図11は、移動制御の手順例を示すフローチャートである。
(S1)マシン情報収集部121は、物理マシン200,200a,200bからマシン情報を収集し、マシン情報記憶部110に格納する。マシン情報のうち、物理マシンテーブル111および仮想マシンテーブル112に登録される構成情報は、各物理マシンのハイパーバイザから収集される。また、動作ログテーブル113に登録される動作ログは、物理マシン200,200a,200b上の各仮想マシンから収集される。
(S2)移動先決定部122は、マシン情報記憶部110に記憶された動作ログテーブル113を参照して、仮想マシン220,220a,220b,230,230a,230bの中からレスポンス時間が大きく増加した仮想マシンを検出する。例えば、移動先決定部122は、最新のレスポンス時間が閾値以上である仮想マシンや、レスポンス時間の増加量または増加率が閾値以上である仮想マシンなどを検出する。この閾値は、ユーザとの契約に基づいて決定されてもよく、ユーザ毎に異なってもよい。
そして、移動先決定部122は、該当する仮想マシン(リソース不足であると考えられる仮想マシン)が存在するか判断する。存在する場合はステップS3に処理が進み、該当する仮想マシン毎に以下のステップS3〜S5の処理が行われる。存在しない場合は移動制御が終了し、次の動作ログが収集されるタイミングまで待機となる。なお、以下では仮想マシン230が上記の条件に該当するものとする。
(S3)移動先決定部122は、マシン情報記憶部110に記憶された物理マシンテーブル111から、仮想マシン230が配置されている物理マシン200の構成情報を検索する。また、移動先決定部122は、マシン情報記憶部110に記憶された仮想マシンテーブル112から、物理マシン200に配置されている仮想マシン220,230の構成情報を検索する。また、移動先決定部122は、動作ログテーブル113から、仮想マシン230の動作ログを検索する。そして、移動先決定部122は、上記の構成情報および動作ログから、仮想マシン230が物理マシン200上で動作しているときのレスポンス時間の関数を算出する。関数の算出方法の詳細は後述する。
(S4)移動先決定部122は、仮想マシン230の許容トランザクション数と許容レスポンス時間を確認する。また、移動先決定部122は、物理マシンテーブル111および仮想マシンテーブル112から、物理マシン200a,200b上のVM環境を検索する。そして、移動先決定部122は、許容レスポンス時間の条件を満たすVM環境(移動先の候補)を探し、移動先のVM環境を決定する。移動先の決定方法の詳細は後述する。
(S5)移動実行部123は、物理マシン200から移動先決定部122が決定したVM環境をもつ物理マシンに、仮想マシン230を移動するよう制御する。例えば、移動実行部123は、移動先の物理マシンに、仮想マシン230にVM環境を割り当てるよう指示する。当該VM環境が停止状態の仮想マシンに割り当てられている場合、当該停止状態の仮想マシンが更に他の物理マシンに移動され得る。当該VM環境が終了状態の仮想マシンに割り当てられている場合、当該終了状態の仮想マシンが削除され得る。
そして、移動実行部123は、物理マシン200と移動先の物理マシンに、仮想マシン230の移動を指示する。物理マシン200のハイパーバイザ210と移動先の物理マシンのハイパーバイザは、連携して仮想マシン230を移動させる。例えば、ハイパーバイザ210は、仮想マシン230に関するRAM上のデータやHDD上のデータなどを、移送先の物理マシンにコピーする。このとき、仮想マシン230のOSを一旦シャットダウンしてもよいし、シャットダウンしなくてもよい(ライブマイグレーション)。
図12は、関数算出の手順例を示すフローチャートである。図12に示すフローチャートの処理が、上記のステップS3において実行される。
(S30)移動先決定部122は、仮想マシン230のオーバーコミット率rを算出する。オーバーコミット率rは、仮想マシン230に割り当てられたCPUリソースのうち仮想マシン220と共有している部分の割合を表す。1−rは占有率を表す。
オーバーコミット率r=(仮想マシン220,230の割当CPUクロック数の合計−物理マシン200のCPUクロック数)÷仮想マシン230の割当CPUクロック数。例えば、図8,9の数値例の場合、オーバーコミット率r=(1.6GHz+0.8GHz−2GHz)÷0.8GHz=0.5(50%)と算出される。
(S31)移動先決定部122は、動作ログテーブル113から、CPU使用率が占有率1−r以下であるときの仮想マシン230の動作ログを抽出する。抽出された動作ログは、以下のステップS32〜S35で線形区間の関数を推定するために用いられる。なお、抽出する動作ログの範囲を、生成時刻が直近の一定時間以内のものに限定してもよい。
(S32)移動先決定部122は、ステップS31で抽出された動作ログに基づいて、平均値として線形区間のトランザクション当たりレスポンス時間a1を算出する。
トランザクション当たりレスポンス時間a1=sum(レスポンス時間i÷トランザクション数i)÷n。nはステップS31で抽出された動作ログの数であり、iは1からnまでの値をとる変数である。例えば、図10の数値例の場合、トランザクション当たりレスポンス時間a1=(0.4s÷400+0.25s÷250+0.1s÷100+0.02s÷20)÷4=0.001sと算出される。
(S33)移動先決定部122は、ステップS31で抽出された動作ログに基づいて、平均値として線形区間のCPUクロック数当たりトランザクション数Δmを算出する。これは、使用するCPUリソースを増やせる状態において、仮想マシン230が単位CPUリソース当たりに実行できるトランザクションの数を表している。
CPUクロック数当たりトランザクション数Δm=sum(トランザクション数i÷(CPU使用率i×割当CPUクロック数))÷n。nはステップS31で抽出された動作ログの数であり、iは1からnまでの値をとる変数である。例えば、図9,10の数値例の場合、CPUクロック数当たりトランザクション数Δm=(400÷(50%×0.8GHz)+250÷(31.2%×0.8GHz)+100÷(12.5%×0.8GHz)+20÷(2.5%×0.8GHz))÷4=1000と算出される。
(S34)移動先決定部122は、ステップS30で算出したオーバーコミット率rに基づいて、仮想マシン230の現在のCPUリソース境界点T0を算出する。現在のCPUリソース境界点T0は、仮想マシン230が現在占有するCPUリソースの量を表す。
現在のCPUリソース境界点T0=(1−r)×仮想マシン230の割当CPUクロック数。例えば、図8,9の数値例の場合、現在のCPUリソース境界点T0=(1−0.5)×0.8GHz=0.4GHzと算出される。
(S35)移動先決定部122は、線形区間の関数f1(m)を算出する。関数f1(m)は、CPUリソースの使用量がCPUリソース境界点T0に達するまでの、仮想マシン230のトランザクション数とレスポンス時間との関係を表す。
線形区間の関数f1(m)=a1×m。トランザクション当たりレスポンス時間a1はステップS32で算出したものであり、mはトランザクション数を表す変数である。トランザクション当たりレスポンス時間a1が、線形区間の直線の傾きに相当する。
CPUリソースの使用量がCPUリソース境界点T0に丁度達したときのレスポンス時間(CPUリソース境界点T0に対応するレスポンス時間)は、f1(Δm×T0)=a1×Δm×T0と算出される。CPUクロック数当たりトランザクション数Δmは、ステップS33で算出したものである。例えば、図8〜10の数値例の場合、f1(Δm×T0)=0.001s×1000×0.4GHz=0.4sと算出される。
(S36)移動先決定部122は、動作ログテーブル113から、CPU使用率が最大であるときの仮想マシン230の動作ログを抽出する。抽出された動作ログは、以下のステップS37で非線形区間の関数を推定するために用いられる。なお、抽出する動作ログの範囲を、生成時刻が直近の一定時間以内のものに限定してもよい。
(S37)移動先決定部122は、ステップS36で抽出した動作ログに基づいて、非線形区間の関数f2(m)を算出する。関数f2(m)は、CPUリソースの使用量がCPUリソース境界点T0に達した以降の、仮想マシン230のトランザクション数とレスポンス時間との関係を表す。ここでは、関数f2(m)として指数関数を用いる。
非線形区間の関数f2(m)=a2×(m−Δm×T0)2+a1×Δm×T0。mはトランザクション数を表す変数である。この関数f2(m)は、線形区間の直線上に基準点をもつ指数関数である。指数項の係数a2は、ステップS36で抽出した動作ログが示すトランザクション数とレスポンス時間とを上記の式に代入することで算出できる。例えば、図8〜10の数値例の場合、50.4s=a2×(500−1000×0.4GHz)2+0.4sより、a2=0.005と算出される。よって、非線形区間の関数f2(m)=0.005×(m−400)2+0.4sと決定される。
ただし、非線形区間のレスポンス時間は、他の方法で推定することもできる。
図13は、レスポンス時間テーブルの例を示す図である。
レスポンス時間テーブル114は、非線形区間の関数f2(m)に代えて、上記のステップS37において移動先決定部122によって生成される。レスポンス時間テーブル114は、トランザクション、レスポンスおよび差分の項目を含む。
トランザクションの項目には、トランザクション数の割合が登録される。この割合は、過去の最大のトランザクション数を基準としたときの割合である。割合は、例えば、1%刻みで設定される。レスポンスの項目には、トランザクション数の割合に対応するレスポンス時間が登録される。トランザクション数の割合が同じ動作ログが2以上ある場合は、当該2以上の動作ログのうちCPU使用率が最も高いときの動作ログのレスポンス時間を採用する。差分の項目には、レスポンスの項目に登録されたレスポンス時間とCPUリソース境界点T0に対応するレスポンス時間(a1×Δm×T0)との差が登録される。
レスポンス時間テーブル114を生成する場合、移動先決定部122は、動作ログテーブル113から、トランザクション数が最大である仮想マシン230の動作ログを検索する。移動先決定部122は、レスポンス時間テーブル114に、トランザクション数の割合=100%に対応付けて、検索した動作ログのレスポンス時間を登録する。その後、移動先決定部122は、動作ログテーブル113から、トランザクション数の大きい順に動作ログを抽出していく。移動先決定部122は、動作ログを抽出する毎に、トランザクション数の割合を算出し、当該動作ログに記載されたレスポンス時間と対応付けてレスポンス時間テーブル114に登録する。動作ログの抽出は、差分が0sになるまで行う。
このようなレスポンス時間テーブル114を生成することで、非線形区間におけるトランザクション数とレスポンス時間との関係の推定精度が向上する。レスポンス時間テーブル114は、RAM102またはHDD103に格納しておくことができる。移動先決定部122は、トランザクション数m÷過去のトランザクション数の最大数を算出し、算出した割合を用いてレスポンス時間テーブル114を検索することで、非線形区間におけるトランザクション数mに対応するレスポンス時間を求めることができる。以下では、前述の関数f2(m)を用いて仮想マシン230の移動先を決定する場合について説明するが、レスポンス時間テーブル114を用いて移動先を決定することもできる。
図14は、移動先決定の手順例を示すフローチャートである。図14に示すフローチャートの処理が、上記のステップS4において実行される。
(S40)移動先決定部122は、仮想マシン230について、許容トランザクション数max_mと許容レスポンス時間max_tを確認する。
許容トランザクション数max_mは、想定する最大のトランザクション数である。許容トランザクション数max_mとしては、例えば、仮想マシン230の動作ログが示す過去のトランザクション数の最大値を用いる。許容レスポンス時間max_tは、許容されるレスポンス時間の上限である。許容レスポンス時間max_tは、例えば、ユーザと情報処理システムの運営者との間の契約に応じて決まる。許容レスポンス時間max_tは、ユーザ毎または仮想マシン毎に異なってもよい。許容レスポンス時間max_tを示す情報は、例えば、管理者の操作に応じて管理サーバ100に入力されて記憶される。
(S41)移動先決定部122は、線形区間の関数f1(m)および非線形区間の関数f2(m)と、許容トランザクション数max_mおよび許容レスポンス時間max_tに基づいて、理想のCPUリソース境界点T1を算出する。ここでは、許容トランザクション数max_mに対応するレスポンス時間が許容レスポンス時間max_t以下になるという条件を満たすように、非線形区間の曲線をシフトする場合を考える。理想のCPUリソース境界点T1は、シフト後のCPUリソース境界点の最小値である。
理想のCPUリソース境界点T1は、次の式を解くことで算出できる。a2×(max_m−Δm×T1)2+a1×max_m=max_t。例えば、図8〜10の数値例の場合、0.005×(500−1000×T1)2+0.001s×500=5sより、T1=0.6GHzと算出される。これは、占有できるCPUリソースが0.6GHz以上のVM環境であれば、許容レスポンス時間max_tの条件を満たすことを意味する。なお、現在のCPUリソース境界点T0は、0.6GHz未満である。
(S42)移動先決定部122は、物理マシン200a,200b上にあるVM環境のうち、仮想マシン230に現在割り当てられているもの以上の大きさのRAMリソースを確保可能なVM環境を抽出する。例えば、図9の数値例の場合、物理マシン200a,200bのVM環境のうち1GB以上のRAM領域を確保可能なものを抽出する。
ここでは、停止状態の仮想マシンを移動させるか、終了状態の仮想マシンを削除することで、移動先のVM環境を確保する場合を考える。移動先決定部122は、ステップS42の時点で抽出するVM環境を、停止状態または終了状態の仮想マシンに割り当てられているものに限定してもよい。また、移動先決定部122は、移動先のVM環境の候補を選択した後に、仮想マシン230が当該VM環境を利用可能であるか判断してもよい。
以下に説明する数値例では、物理マシン200a上の仮想マシン220a,230aが停止状態であり、仮想マシン230は仮想マシン220a,230aのVM環境を利用可能であるとする。物理マシン200b上の仮想マシン220b,230bが停止状態または終了状態であれば、仮想マシン230は物理マシン200bにも移動し得る。
(S43)移動先決定部122は、ステップS42で抽出したVM環境それぞれについて、当該VM環境のCPUリソース境界点T2を算出する。VM環境のCPUリソース境界点T2は、当該VM環境において占有できるCPUリソースの量を表す。
VM環境のCPUリソース境界点T2は、現在のCPUリソース境界点T0と同様の方法で算出できる。すなわち、あるVM環境のオーバーコミット率=(同一物理マシン上のVM環境の割当CPUクロック数の合計−物理マシンのCPUクロック数)÷当該VM環境の割当CPUクロック数。あるVM環境のCPUリソース境界点T2=(1−当該VM環境のオーバーコミット率)×当該VM環境の割当CPUクロック数。
例えば、図8,9の数値例の場合、仮想マシン220aのオーバーコミット率=(3.4GHz+1.2GHz−4GHz)÷3.4GHz=0.176(17.6%)であり、そのCPUリソース境界点T2=(1−0.176)×3.4GHz=2.8GHzと算出される。また、仮想マシン220bのオーバーコミット率=(3.4GHz+1.2GHz−4GHz)÷1.2GHz=0.5(50%)であり、そのCPUリソース境界点T2=(1−0.5)×1.2GHz=0.6GHzと算出される。
(S44)移動先決定部122は、ステップS43で算出したCPUリソース境界点T2がステップS41で算出した理想のCPUリソース境界点T1以上であるVM環境が、複数あるか判断する。すなわち、移動先決定部122は、許容レスポンス時間max_tの条件を満たすVM環境が複数あるか判断する。例えば、図8〜10の数値例の場合、T1=0.6GHz、仮想マシン220aのT2=2.8GHz、仮想マシン230aのT2=0.6GHzであるため、仮想マシン220a,230aの両方が条件を満たす。複数のVM環境がある場合、ステップS45に処理が進む。1つのVM環境しかない場合、移動先決定部122は、仮想マシン230の移動先を当該VM環境に決定する。
(S45)移動先決定部122は、CPUリソース境界点T2が理想のCPUリソース境界点T1以上であるVM環境のうち、CPUリソース境界点T2が小さいものを選ぶ。例えば、図8〜10の数値例の場合、仮想マシン220aのT2=2.8GHz、仮想マシン230aのT2=0.6GHzであるため、仮想マシン230aを選択する。
(S46)移動先決定部122は、ステップS45で複数のVM環境を選択したか、すなわち、CPUリソース境界点T2が最小であるVM環境が複数あるか判断する。複数のVM環境がある場合、ステップS47に処理が進む。1つのVM環境しかない場合、移動先決定部122は、仮想マシン230の移動先を当該VM環境に決定する。例えば、図8〜10の数値例の場合、仮想マシン230の移動先が仮想マシン230aのVM環境に決定される。この場合、仮想マシン230aが別の物理マシンに移動することになる。
(S47)移動先決定部122は、ステップS45で選択した複数のVM環境のうち、割当RAMリソースの少ない方を選択し、仮想マシン230の移動先に決定する。
第2の実施の形態の情報処理システムによれば、使用するCPUリソースが占有部分の範囲内か否かで区分して、仮想マシン230のトランザクション数とレスポンス時間との関係が算出される。そして、算出した関係と他のVM環境の占有できるCPUリソースの量に応じて、当該他のVM環境に仮想マシン230を移動した場合にレスポンス時間が所定の条件を満たすか判定される。よって、共有部分のCPUリソースについて他の仮想マシンと競合するリスクを適切に評価でき、オーバーコミットが行われる場合であっても、適切なVM環境を仮想マシン230の移動先として選択できるようになる。
なお、第1の実施の形態の情報処理は、情報処理装置10や物理マシン21,22にプログラムを実行させることで実現することができる。また、第2の実施の形態の情報処理は、クライアント31,32や管理サーバ100や物理マシン200,200a,200bにプログラムを実行させることで実現することができる。
プログラムは、コンピュータ読み取り可能な記録媒体(例えば、記録媒体43)に記録しておくことができる。記録媒体としては、例えば、磁気ディスク、光ディスク、光磁気ディスク、半導体メモリなどを使用できる。磁気ディスクには、FDおよびHDDが含まれる。光ディスクには、CD、CD−R(Recordable)/RW(Rewritable)、DVDおよびDVD−R/RWが含まれる。プログラムは、可搬型の記録媒体に記録されて配布されることがある。その場合、可搬型の記録媒体からHDDなどの他の記録媒体(例えば、HDD103)にプログラムを複製して(インストールして)実行してもよい。
10 情報処理装置
11 記憶部
12 演算部
13 構成情報
14 動作情報
21,22 物理マシン
23,24 仮想マシン
25,26 リソース

Claims (7)

  1. コンピュータに、
    第1の物理マシン上で動作する仮想マシンを移動する場合に、第2の物理マシンへの他の仮想マシンの配置状況に応じて、前記仮想マシンが前記第2の物理マシン上で他の仮想マシンと共有せずに使用可能な第1のリソースの量を算出し、
    前記第1の物理マシンで動作していたときの前記仮想マシンの第1のレスポンス時間と前記第1のリソースの量とに基づいて、前記第2の物理マシンへ移動した場合の前記仮想マシンの第2のレスポンス時間を推定する、
    処理を実行させ、
    前記第2のレスポンス時間の推定では、前記仮想マシンの使用するリソースが前記第1のリソースの範囲内である場合と、前記仮想マシンが前記第2の物理マシン上で他の仮想マシンと共有する第2のリソースを使用する場合とで、異なるアルゴリズムを用いる、
    プログラム。
  2. 複数の第2の物理マシンのうち、前記第2のレスポンス時間が所定の条件を満たす第2の物理マシンを、前記仮想マシンの移動先として選択する、処理を更に実行させる、
    請求項1記載のプログラム。
  3. 前記所定の条件を満たす第2の物理マシンが2以上ある場合、当該2以上の物理マシンのうち前記第1のリソースの量が小さい第2の物理マシンを優先的に選択する、
    請求項2記載のプログラム。
  4. 前記仮想マシンが前記第1の物理マシン上で他の仮想マシンと共有せずに使用可能であった第3のリソースの量を算出する、処理を更に実行させ、
    前記第2のレスポンス時間の推定では、リソース使用量が前記第3のリソースの量を超えたときの前記第1のレスポンス時間を用いて、前記仮想マシンが前記第2のリソースを使用する場合に対応するアルゴリズムのパラメータの値を決定する、
    請求項1乃至3の何れか一項に記載のプログラム。
  5. 前記仮想マシンが前記第1の物理マシン上で他の仮想マシンと共有せずに使用可能であった第3のリソースの量を算出する、処理を更に実行させ、
    前記第2のレスポンス時間の推定では、リソース使用量が前記第3のリソースの量以下であったときの前記第1のレスポンス時間を用いて、使用するリソースが前記第1のリソースの範囲内である場合に対応するアルゴリズムのパラメータの値を決定する、
    請求項1乃至3の何れか一項に記載のプログラム。
  6. コンピュータが実行する仮想マシン管理方法であって、
    第1の物理マシン上で動作する仮想マシンを移動する場合に、第2の物理マシンへの他の仮想マシンの配置状況に応じて、前記仮想マシンが前記第2の物理マシン上で他の仮想マシンと共有せずに使用可能な第1のリソースの量を算出し、
    前記第1の物理マシンで動作していたときの前記仮想マシンの第1のレスポンス時間と前記第1のリソースの量とに基づいて、前記第2の物理マシンに移動した場合の前記仮想マシンの第2のレスポンス時間を推定し、
    前記第2のレスポンス時間の推定では、前記仮想マシンの使用するリソースが前記第1のリソースの範囲内である場合と、前記仮想マシンが前記第2の物理マシン上で他の仮想マシンと共有する第2のリソースを使用する場合とで、異なるアルゴリズムを用いる、
    仮想マシン管理方法。
  7. 第1の物理マシン上で動作する仮想マシンの第1のレスポンス時間を示す情報と、第2の物理マシンへの他の仮想マシンの配置状況を示す情報とを記憶する記憶部と、
    前記配置状況に応じて、前記仮想マシンが前記第2の物理マシン上で他の仮想マシンと共有せずに使用可能な第1のリソースの量を算出し、前記第1のレスポンス時間と前記第1のリソースの量とに基づいて、前記第2の物理マシンに移動した場合の前記仮想マシンの第2のレスポンス時間を推定する演算部と、
    を有し、前記演算部は、
    前記仮想マシンの使用するリソースが前記第1のリソースの範囲内である場合と、前記仮想マシンが前記第2の物理マシン上で他の仮想マシンと共有する第2のリソースを使用する場合とで、異なるアルゴリズムを用いて前記第2のレスポンス時間を推定する、
    情報処理装置。
JP2013133475A 2013-06-26 2013-06-26 プログラム、仮想マシン管理方法および情報処理装置 Active JP6075226B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013133475A JP6075226B2 (ja) 2013-06-26 2013-06-26 プログラム、仮想マシン管理方法および情報処理装置
US14/309,203 US9921861B2 (en) 2013-06-26 2014-06-19 Virtual machine management method and information processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013133475A JP6075226B2 (ja) 2013-06-26 2013-06-26 プログラム、仮想マシン管理方法および情報処理装置

Publications (2)

Publication Number Publication Date
JP2015007942A JP2015007942A (ja) 2015-01-15
JP6075226B2 true JP6075226B2 (ja) 2017-02-08

Family

ID=52117027

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013133475A Active JP6075226B2 (ja) 2013-06-26 2013-06-26 プログラム、仮想マシン管理方法および情報処理装置

Country Status (2)

Country Link
US (1) US9921861B2 (ja)
JP (1) JP6075226B2 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9594649B2 (en) 2014-10-13 2017-03-14 At&T Intellectual Property I, L.P. Network virtualization policy management system
CN107111458B (zh) 2015-01-27 2020-07-28 株式会社日立制作所 管理计算机及计算机系统的管理方法
JP2016177345A (ja) * 2015-03-18 2016-10-06 富士通株式会社 情報処理システム及び情報処理システムの制御方法
US10346201B2 (en) * 2016-06-15 2019-07-09 International Business Machines Corporation Guided virtual machine migration
US10203991B2 (en) * 2017-01-19 2019-02-12 International Business Machines Corporation Dynamic resource allocation with forecasting in virtualized environments
JP2018201108A (ja) * 2017-05-26 2018-12-20 日本電気株式会社 性能推定装置および性能推定方法
US10353716B2 (en) * 2017-11-13 2019-07-16 International Business Machines Corporation Automated deployment and performance evaluation of a virtualized-computing environment
US10613891B2 (en) * 2017-12-21 2020-04-07 Caterpillar Inc. System and method for using virtual machine operator model
WO2020235055A1 (ja) * 2019-05-22 2020-11-26 日本電信電話株式会社 仮想マシン監視装置、仮想マシン監視方法およびプログラム
CN110515697A (zh) * 2019-08-16 2019-11-29 济南浪潮数据技术有限公司 一种虚拟机迁移方法、装置、存储介质及计算机设备
JP7513866B2 (ja) 2020-03-04 2024-07-10 富士通株式会社 移動対象コンテナ決定方法、及び移動対象コンテナ決定プログラム
US11228457B2 (en) * 2020-04-07 2022-01-18 International Business Machines Corporation Priority-arbitrated access to a set of one or more computational engines
US11765057B2 (en) * 2020-12-30 2023-09-19 Oracle International Corporation Systems and methods for performing end-to-end link-layer and IP-layer health checks between a host machine and a network virtualization device
US20220318117A1 (en) * 2021-04-06 2022-10-06 EMC IP Holding Company LLC Method to identify the performance bottle neck in the complex enterprise virtualized environment
WO2023195559A1 (ko) * 2022-04-08 2023-10-12 엘지전자 주식회사 신호 처리 장치, 및 이를 구비하는 차량용 디스플레이 장치

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05324358A (ja) * 1992-05-20 1993-12-07 Hitachi Ltd 性能予測装置
JP3751466B2 (ja) * 1999-03-26 2006-03-01 沖電気工業株式会社 プログラム応答時間予測装置
JP4180638B2 (ja) 2004-10-28 2008-11-12 富士通株式会社 分析方法及び装置
JP4557178B2 (ja) 2007-03-02 2010-10-06 日本電気株式会社 仮想マシン管理システム、その方法及びそのプログラム
US8151032B2 (en) 2008-06-26 2012-04-03 Microsoft Corporation Direct memory access filter for virtualized operating systems
JP2010113677A (ja) * 2008-11-10 2010-05-20 Hitachi Ltd サービス管理装置、サービス管理方法およびサービス管理システム
JP5471080B2 (ja) * 2009-06-30 2014-04-16 日本電気株式会社 情報システム、制御装置、そのデータ処理方法およびプログラム
JP5446667B2 (ja) 2009-09-28 2014-03-19 日本電気株式会社 仮想計算機管理システム,仮想計算機管理方法及びプログラム
US8464255B2 (en) * 2010-03-12 2013-06-11 Microsoft Corporation Managing performance interference effects on cloud computing servers
JP5515889B2 (ja) 2010-03-15 2014-06-11 日本電気株式会社 仮想マシンシステム、自動マイグレーション方法および自動マイグレーションプログラム
JP5544967B2 (ja) 2010-03-24 2014-07-09 富士通株式会社 仮想マシン管理プログラム及び仮想マシン管理装置
JP5556393B2 (ja) * 2010-06-04 2014-07-23 富士通株式会社 ネットワークシステム,管理サーバおよび仮想マシンの配置方法
US8601483B2 (en) * 2011-03-22 2013-12-03 International Business Machines Corporation Forecasting based service for virtual machine reassignment in computing environment
EP2581831A1 (en) * 2011-10-14 2013-04-17 Alcatel Lucent Method and apparatus for dynamically assigning resources of a distributed server infrastructure
US9471347B2 (en) * 2013-01-31 2016-10-18 International Business Machines Corporation Optimization of virtual machine sizing and consolidation

Also Published As

Publication number Publication date
JP2015007942A (ja) 2015-01-15
US9921861B2 (en) 2018-03-20
US20150007177A1 (en) 2015-01-01

Similar Documents

Publication Publication Date Title
JP6075226B2 (ja) プログラム、仮想マシン管理方法および情報処理装置
JP6237318B2 (ja) 管理装置、業務負荷分散管理方法および業務負荷分散管理プログラム
US10055252B2 (en) Apparatus, system and method for estimating data transfer periods for job scheduling in parallel computing
JP5218390B2 (ja) 自律制御サーバ、仮想サーバの制御方法及びプログラム
JP2020064676A (ja) リソース配置を最適化するための適時性リソース移行
JP6241300B2 (ja) ジョブスケジューリング装置、ジョブスケジューリング方法、およびジョブスケジューリングプログラム
JP6277827B2 (ja) 情報処理装置、スケール管理方法およびプログラム
US20170161117A1 (en) Apparatus and method to determine a service to be scaled out based on a predicted virtual-machine load and service importance
US20140282540A1 (en) Performant host selection for virtualization centers
Shukla et al. A multiphase pre-copy strategy for the virtual machine migration in cloud
JPWO2015001850A1 (ja) タスク割り当て判定装置、制御方法、及びプログラム
KR101471749B1 (ko) 클라우드 서비스의 가상자원 할당을 위한 퍼지 로직 기반의 자원평가 장치 및 방법
JP2016537705A (ja) 仮想マシンマイグレーション管理の方法、装置およびシステム
KR102469927B1 (ko) 분할 메모리 관리장치 및 방법
JP2020003929A (ja) 運用管理装置、移動先推奨方法及び移動先推奨プログラム
KR102612841B1 (ko) 마이크로 데이터센터 내 운용 서비스별 작업 부하 예측 모델 적용 방법
JP7035858B2 (ja) マイグレーション管理プログラム、マイグレーション方法およびマイグレーションシステム
US20190114079A1 (en) Apparatus for managing disaggregated memory and method thereof
CN112948279A (zh) 管理存储系统中的访问请求的方法、设备和程序产品
JPWO2013171944A1 (ja) 仮想マシン管理システム、仮想マシン管理方法およびプログラム
JP5515889B2 (ja) 仮想マシンシステム、自動マイグレーション方法および自動マイグレーションプログラム
Surya et al. Prediction of resource contention in cloud using second order Markov model
Joseph et al. Nature‐inspired resource management and dynamic rescheduling of microservices in Cloud datacenters
JP7239861B2 (ja) リソース割当装置、リソース割当方法、および、リソース割当プログラム
JP2014206805A (ja) 制御装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160310

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20161130

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161226

R150 Certificate of patent or registration of utility model

Ref document number: 6075226

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150