JP5412599B2 - 計算機システム、および、計算機システムにおける仮想計算機の最適配置方法 - Google Patents

計算機システム、および、計算機システムにおける仮想計算機の最適配置方法 Download PDF

Info

Publication number
JP5412599B2
JP5412599B2 JP2013502047A JP2013502047A JP5412599B2 JP 5412599 B2 JP5412599 B2 JP 5412599B2 JP 2013502047 A JP2013502047 A JP 2013502047A JP 2013502047 A JP2013502047 A JP 2013502047A JP 5412599 B2 JP5412599 B2 JP 5412599B2
Authority
JP
Japan
Prior art keywords
computer
physical
virtual
virtual machine
scheduled
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
JP2013502047A
Other languages
English (en)
Other versions
JPWO2012117453A1 (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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Application granted granted Critical
Publication of JP5412599B2 publication Critical patent/JP5412599B2/ja
Publication of JPWO2012117453A1 publication Critical patent/JPWO2012117453A1/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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/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
    • 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

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)
  • Stored Programmes (AREA)

Description

本発明は計算機システムに係り、特に、計算機システムに存在する物理サーバに仮想計算機を最適に配置するのに適した計算機システムに関するものである。さらに、本発明は、仮想計算機システムにおける仮想計算機の配置の最適化方法に関するものである。
計算機システムのリソースを有効に活用するという観点から、1つの物理サーバの持つ計算機リソースを複数の仮想計算機(VM:irtual achine)で利用させるという、サーバの仮想化技術が知られている。仮想計算機は、物理サーバで、仮想サーバとして動作することによって、複数のユーザが物理サーバ(物理計算機)のリソースを有効に利用することができるようになる。
複数の物理計算機と複数の仮想計算機とが存在する計算機システムでは、複数の物理計算機に複数の仮想計算機を最適に配置される。例えば、それぞれ仮想計算機が動作している複数の物理計算機間で負荷が互いに平準化されるように、複数の仮想計算機を複数の物理計算機に分散させたり、これとは反対に、計算機システムの省電力のために、できるだけ多くの仮想計算機を同じ物理計算機に片寄したりなど、仮想計算機の最適配置処理が望まれている。
仮想計算機の最適配置処理のために、複数の物理計算機間で仮想計算機の配置の再構成が行われる。仮想計算機の再配置に当たっては、仮想計算機を複数の物理計算機間で移行される。計算機システムの管理サーバ(管理計算機)は、移行元物理計算機の計算機リソースを仮想計算機から解放し、移行先計算機の計算機リソースを仮想計算機に割当てる。
例えば、特開2010−224756号公報、及び、特開2010−211546号公報には、管理計算機が、仮想計算機と物理計算機との最適な組み合わせを算出し、その算出結果に基づいて、仮想計算機が稼働中であっても、仮想計算機を複数の物理計算機間で移行させることにより、それぞれ仮想計算機をデプロイした、複数の物理計算機間で負荷のバランスを調整するシステムが開示されている。
特開2010−224756号公報 特開2010−211546号公報
既述の公報によって開示された従来のシステムは、仮想計算機の過去の負荷情報、さらに、仮想計算機の将来予測される負荷情報を考慮して、複数の物理計算機に対する複数の仮想計算機の最適配置を決定していたが、仮想計算機の数が変更される場合を考慮に入れて仮想計算機の最適配置を実現しようとするものではなかった。
すなわち、計算機システムにおいて、仮想計算機の最適な配置が一旦実現されても、新たな仮想計算機が物理計算機で稼働し始めた段階で仮想計算機の最適な配置状態が悪影響を受けてしまう。それを避けようとすると、新たな仮想計算機を物理計算機で稼働した段階で、管理計算機は、仮想計算機の最適配置処理をやり直さなければならないという課題があった。
そこで、本発明は、複数の物理計算機に複数の仮想計算機を最適に配置する処理における負荷が低減された計算機システムを提供することを目的とするものである。
本発明の他の目的は、新たな仮想計算機が物理計算機で稼働し始めても、稼働中の仮想計算機の最適な配置状態を損なわないようにした計算機システムを提供することにある。
本発明のさらに他の目的は、計算機システムにおいて、仮想計算機の配置の最適化方法を提供することにある。
前記目的を達成するために、本発明は、計算機システムで仮想計算機を稼働させる予定情報から、稼働が予定された仮想計算機の予定負荷を取得し、当該予定負荷と稼働中の仮想計算機の実際の負荷とから、計算機システムで前記稼働が予定された仮想計算機の稼働開始時刻以前に、当該稼働予定に係る計算機を配置する仮想計算機の実行主体を決定することを特徴とするものである。
以上説明したように、本発明によれば、複数の物理計算機に複数の仮想計算機を最適に配置する処理における負荷が低減された計算機システムを提供することができる。さらに、本発明によれば、新たな仮想計算機が物理計算機で稼働し始めても、稼働中の仮想計算機の最適な配置状態を損なわないようにした計算機システムを提供することができる。さらにまた、本発明によれば、既述の計算機システムにおいて、仮想計算機の配置の最適化方法を提供することができる。
実施例1に係る計算機システムのハードウエア構成図である。 実施例1の物理計算機構成テーブルの一例である。 実施例1の仮想計算機の情報テーブルの一例である。 実施例1の予約情報テーブルの一例である。 実施例1の稼働予定仮想計算機の最適配置処理のフローチャートである。 実施例1の配置スコアテーブルある。 実施例1の稼働予定仮想計算機の配置決定処理のフローチャートある。 実施例2の物理計算機構成テーブル、VM情報テーブル、予約情報テーブルである。 実施例2の仮想計算機の最適配置処理のフローチャートである。 実施例2の稼働中の仮想計算機と稼働予定の仮想計算機の最適配置案作成処理のフローチャートである。 実施例3の物理計算機構成テーブル、VM情報テーブル、予約情報テーブルである。 実施例3の稼働予定仮想計算機の最適配置処理のフローチャートである。 リソース管理プログラムが、稼働が予定される仮想計算機の配置を決定する上で、稼働中の仮想計算機の終了時刻を考慮する必要がない状態に係る管理テーブルであり、物理計算機情報テーブル(図13(A))、VM情報テーブル(図13(B))、予約情報テーブル(図13(C))である。 物理サーバのメモリの総容量に対する、仮想計算機の負荷の変位を示すグラフである。 図13(C)に係る予約情報テーブルの変形例である。 図15に対応した、物理サーバのメモリの総容量に対する、仮想計算機の負荷の変位を示すグラフである。 複数の仮想計算機の負荷が累積された状態を示すグラフである。 図15の変形に係る予約情報テーブルである。 図16の変形例に係るグラフである。 図17の変形に係るグラフである。 リソース管理プログラムが出力I/Fを介してディスプに表示する、仮想計算機の予約情報入力画面の例である。 仮想計算機の最適配置案の出力を要求するための入力画面の例である。 仮想計算機の最適配置処理によって得られた、複数の仮想計算機の配置形態に相当する管理テーブルである。
次に、本発明に係る計算機システムの実施形態について説明する。図1に、計算機システムのハードウエアブロックを示す。計算機システムは、複数の物理計算機0130、0140・・・・と、物理計算機間に対する仮想計算機の配置を管理する管理サーバ0100と、複数の物理計算機と管理サーバとを接続するネットワーク0120と、を備えている。
リソース管理サーバ0100は、CPU0101、メモリ0102、ネットワークインターフェースカード(NICと図示する)0109、入力I/F0103、出力I/F0105、そして、HDD I/F0107を具備する。
リソース管理サーバ0100の入力I/F0103は、マウスやキーボード0104といった入力デバイスと接続され、リソース管理サーバ0100の利用者からの操作を受け付ける。出力I/F0105はディスプレイ0106といった出力デバイスと接続され、利用者への画面出力を行う。出力デバイスであれば他にもプリンタ(図示せず)も接続可能である。
HDD I/F0107は外部ストレージであるHDD0108と接続され、種々のプログラムやCPU0101で処理された各種データ・テーブル等を格納する。NIC0109はネットワーク0120と接続され、他の物理計算機0130、0140と接続されている。
メモリ0102には、リソース管理プログラム0110が実装されている。リソース管理プログラム0110は、HDD0108に格納され、CPU0101からの要求によってメモリ0102へロードされるものでもよい。リソース管理プログラム0110は、予約受付処理0111、仮想計算機の配置計算処理0112、仮想計算機の移行処理0113、稼働中の仮想計算機の負荷を算出する計測処理0114、稼働予定であった仮想計算機を仮想計算機の利用者が定刻に利用できるようにする配備処理0115、そして、物理計算機0130、0140で動作する仮想計算機やハイパバイザの負荷情報、構成情報を物理計算機0130、0140やハイパバイザ0135、0145から収集し管理する管理処理0116を実行する。これらの各処理は、後述のフローチャートの一つまたはその組み合わせ、或いは、これらフローチャートの一つ又は複数のステップによって達成される。
メモリ0102には、ハイパバイザ0135,0145が仮想計算機0136,0146に対して物理計算機から割り当てることのできる総リソース量に関する情報を格納する物理計算機情報テーブル(TBL)0200が格納されている。総リソース量は、リソース管理プログラム0110によって各物理計算機0130、0140から収集される。
メモリ0102は、さらに、仮想計算機の利用者からの入力に基づいて作成された仮想計算機が稼働する予定に関する情報が格納された予約情報テーブル0300と、稼働している仮想計算機の負荷情報や、仮想計算機が動作する物理計算機の情報が格納されたVM情報テーブ0400と、仮想計算機を配置すべき物理計算機をどの物理計算機にするかを決定する際の優先度情報が格納された配置スコアテーブル0600などの管理テーブルを有する。
リソース管理プログラム0100は、リソース管理処理の過程でこれら管理テーブルに対してリード又はライト処理を行う。なお、管理テーブルはHDD0108に格納されていてもよい。CPU0101は、HDD0108から管理テーブルを読み出してメモリ0102へロードし、管理テーブルをHDD0108へ格納する。
物理計算機0130、0140は、リソース管理サーバ0100と同様のハードウエア構成から構成され、CPU0131、0141、メモリ0132、0142、リソース管理サーバ0100とネットワーク接続するためのNIC0133、0143、共有ストレージ(共有HDD)0150と接続するためのHDD I/F0134、0144とを備える。リソース管理サーバ0100のように、入力I/F(0103)、出力I/F(0105)を備えてもよい。なお、物理計算機の0130の識別子をP1とし、物理計算機0140の識別子をP2、これに続き第3以降の物理計算機をP3,P4・・・として、互いを区別する。
物理計算機のメモリ0132,0142にはハイパバイザ0135、0145がロードされており、一つ又は複数の仮想計算機0136・・・137、0146・・・0147の生成、そのスペック変更、その削除、その移行、物理計算機の計算機リソースを仮想計算機に割当てるといった様々な仮想計算機に関する管理処理を行う。
計算機リソースとは、例えば、計算機に具備されているCPU、メモリ、ハードディスクドライブ、NICのネットワーク帯域、ディスクI/Oなどの一つ又は複数である。計算機リソースにはハードウエアリソースの他、ボリューム、ホストグループ、プール等の論理リソースも含まれる。
各ハイパバイザ135、145は、各々の物理計算機に一つ又は複数の仮想計算機を割り当て、これをデプロイするための管理ソフトウェアである。例えば、物理計算機P1:0130には仮想計算機0136と仮想計算機0137を含む複数の仮想計算機が割り当てられている。物理計算機P2:0140上には仮想計算機0146と仮想計算機0147とを含む複数の仮想計算機が割り当てられている。既述の管理テーブルにおける仮想計算機の割当て管理において、仮想計算機の割当て対象を物理計算機にする他、ハイパバイザにしてもよい。
リソース管理サーバ0100のリソース管理プログラム0110は、各物理計算機P1:0130、P2:0140のハイパバイザ0135、0145と通信することによって情報の授受を行い、いつでも、仮想計算機の負荷情報やハイパバイザの負荷情報(物理計算機の負荷情報)を取得して、物理計算機情報テーブル0200、VM情報テーブル0400を更新することができる。
さらに、リソース管理サーバ0100は、仮想計算機を利用するユーザから入力される、仮想計算機の予約情報に基づいて、予約情報テーブル0300を設定、更新する。
仮想計算機0136、仮想計算機0137は、ハイパバイザ0135上で動作する。ハイパバイザ0135は、物理計算機P1:0130の計算機リソース、例えばCPU0131やメモリ0132を複数ある仮想計算機の各々の仮想計算機に分割して、これを割り当てる。ハイパバイザ0135は、各仮想計算機へ割り当てる計算機リソースの量を動的に変更することもできる。ハイパバイザ0145も、仮想計算機0146、仮想計算機0147に対して同様に作用する。一つの仮想計算機上にはゲストOSが稼働するため、仮想計算機はゲストOSで動作するアプリケーションソフトを利用することができる。
物理計算機P1:0130、P2:0140に接続されている共有ストレージ0150には仮想計算機のディスクイメージ0151が格納されている。仮想計算機のディスクイメージとは、仮想計算機に与えられる仮想HDDに格納されたイメージファイルである。共有ストレージ0150は、仮想HDDを設定しており、仮想HDDに格納されているオペレーティングシステムやアプリケーションをメモリ0132(0142)にロードして実行する。VMディスクイメージは仮想HDDの実体になる。
ハイパバイザ0135(0145)が仮想計算機で使用するVMディスクイメージを制御することで、仮想計算機はVMディスクイメージを仮想的なHDDとして扱うことができるになる。VMディスクイメージは、ハイパバイザから見れば実際にHDDに格納されている1つのファイルに相当する。1つの仮想計算機には1つ以上のVMディスクイメージが必要となる。例えば、物理計算機P2:0140上の仮想計算機0147は、HDD0150に格納されている1つのVMディスクイメージ0151を利用する。
VMディスクイメージ0151はハイパバイザによって制御される。VMディスクイメージは、物理計算機P1:0130、P2:0140の両方に接続されている共有HDD0150に格納されているため、管理サーバ0100がVMディスクイメージに格納されているオペレーティングシステムやアプリケーションソフトウェアをロードする対象の物理計算機を変更すれば、仮想計算機が動作する物理計算機を変更、すなわち、仮想計算機を複数の物理計算機間で移動することができる。
管理サーバ0100が仮想計算機を他の物理計算機で稼働できるようにする場合には、仮想計算機の移行元の物理計算機は、仮想計算機用にそのメモリにロードされ、適宜追加、更新、削除されたデータを仮想計算機の移行先の物理計算機にネットワークを介してコピーする。
このように、仮想計算機が動作する物理計算機を変更することは、移行元物理計算機が、移行すべき仮想計算機について使用したメモリのデータを移行先物理計算機のメモリにコピーし、両物理計算機の各ハイパバイザがデータをロードするVMディスクイメージを変更するといった操作を行うことによって実行される。仮想計算機の移行は、リソース管理サーバ0100が、移行元・移行先物理計算機のハイパバイザ0135、0145に仮想計算機を移行する旨の指示を出すことによって開始される。
図1では物理計算機P1:130、P2:140の両方が、VMディスクイメージが格納された共有HDD150に接続されているが、VMディスクイメージを、ネットワークを介してコピーでき、VMディスクイメージのデータをロードする物理計算機を変更できるのであれば、VMディスクイメージの格納されるHDDは物理計算機P1:130、P2:140の両方に接続された共有HDDである必要はなく、物理計算機P1:130、P2:140に個別に接続されたHDDであってよい。
図1では物理計算機を接続するネットワークはネットワーク0120のみ図示されているが、リソース管理サーバ0100が物理計算機P1:0130、P2:0140から情報を取得するネットワークと、仮想計算機を移行するために物理計算機P1:0130、P2:0140間でデータなどをコピーするネットワークとを別々にしてもよい。
図2に物理計算機情報テーブル0200の一例を示す。物理計算機情報テーブル0200は、物理計算機P1:0130、物理計算機P2:0140など、計算機システムにおいて仮想計算機をデプロイすることができる全ての物理計算機と、それから仮想計算機に割り当てられる総計算機リソース量を記憶している。物理計算機情報テーブル0200は、1つの物理計算機に対して1つの行を割り当てている。
先ず、物理計算機情報テーブル0200の各列について説明する。物理計算機識別子欄0201は、各物理計算機P1:0130、P2:0140などを識別するための識別子を格納する。メモリ総容量欄0202は、各物理計算機が仮想計算機に割り当てることのできる総計算機リソース量を格納する。例えば、行0211は、物理計算機P1:0130の持つメモリ0132から、物理計算機P1:0130上で動作するすべての仮想計算機に割り当てることのできる総メモリ容量が「6.0GB」であることを示している。なお、仮想計算機に割り当てる計算機リソースの例としてメモリを例示しているが、メモリの代わりにCPUクロック数やディスクI/Oなど仮想計算機に割り当てられるその他のリソースや、あるいはその複数の組み合わせでもよい。
図3は、VM情報テーブル0400の一例を示す。VM情報テーブル0400は、計算機システムを構成する、物理計算機P1:0130、物理計算機P2:140上で稼働している仮想計算機(0136、0146等)の負荷情報を記憶している。負荷とは仮想計算機が物理計算機に与える負荷のことである。VM情報テーブル0400は、1つの仮想計算機に対して1つの行を割り当てる。稼働していない仮想計算機に関する情報を本テーブルに登録しなくてもよい。
VM識別子欄0401は、計算機システムを構成する複数の物理計算機上で動作する仮想計算機の識別子を格納する。図1のように、物理計算機P1:0130、物理計算機P2:140上で稼働中の仮想計算機0136、仮想計算機0146を識別するための識別子を格納する。
物理計算機識別子欄0402は、稼働中の仮想計算機がデプロイされる物理計算機を識別するための識別子を格納する。この識別子は、物理計算機情報テーブル0200の物理計算機識別子欄0201に格納される識別子と同じ識別子である。行0411には、仮想計算機「VM1」が動作する物理計算機P1:0130を識別するための識別子「P1」が格納されている。
負荷欄0403は、リソース管理プログラム0110が計測処理0114によってハイパバイザ0135,0145から収集した、稼働中の仮想計算機の負荷を格納する。負荷欄0403に格納される値は、例えば、リソース管理サーバ0110がハイパバイザ0135、0145から過去一定期間に収集した複数の負荷情報の最大値である。行0411は、リソース管理サーバ0100がハイパバイザ0135から収集した過去一定期間内の仮想計算機「VM1」のメモリ消費量の最大値が「2.0GB」であることを意味している。
なお、稼働中の仮想計算機の負荷の例として、過去一定期間に収集した仮想計算機のメモリ消費量の最大値を例示しているが、メモリ消費量の平均値、又は、平均値に標準偏差を加えた値などでもよい。又は、過去一定期間に実測した負荷を基に予測された、現在から一定期間将来の負荷の予測値でもよい。また、メモリの代わりにCPUクロック数やディスクI/Oなど仮想計算機に割り当てられるその他のリソースやそれらの組み合わせでもよい。
負荷欄0403に格納する値は、絶対値であるが、物理計算機の持つ計算機リソース量と収集した仮想計算機の負荷の相対値でもよい。なお、負荷欄0403に格納する値は、1つの負荷の情報である必要はなく、過去一定期間にリソース管理サーバ0100がハイパバイザ0135、0136などから収集した仮想計算機の複数の負荷情報の集合でもよい。
図4は、予約情報テーブル0300の一例である。本テーブル0300は、仮想計算機の稼働予定に関する情報を格納するためのものである。予約識別子欄0301は、ある期間にある仮想計算機を稼働させるための予約情報を識別する識別子を格納する。
VM識別子欄0302は、予約が稼働させる仮想計算機を識別するための識別子を格納する。この識別子は、VM情報テーブル0400の仮想計算機識別子欄0401に格納される識別子と同じ識別子である。VM情報テーブル0400のVM識別子欄0401に格納されている識別子は、必ず予約情報テーブル0300のVM識別子欄に存在し、当該予約情報の開始時刻は現在時刻より前、終了時刻は現在時刻よりも後の時刻が格納されている。また、この識別子で識別される仮想計算機のディスクイメージがすでに共有HDD0150に作成済みである場合、仮想計算機の識別子を格納する。

VM識別子欄0302の識別子で識別される仮想計算機のディスクイメージが未作成の場合は、リソース管理プログラム0110は、適当な固有の識別子を格納し、仮想計算機のディスクイメージが作成された時点で格納した識別子を仮想計算機の識別子とする。
開始時刻欄0304には、予約した仮想計算機が稼働を開始し、物理計算機からリソースが割り当てられる時刻が格納され、終了時刻欄0305には仮想計算機が稼働を終了し、物理計算機にリソースを返却する時刻が格納される。例えば、行0311の予約識別子「RSV1」は、仮想計算機「VM1」が2010年4月1日から2010年9月1日まで稼働する予約であることを示している。
配備先物理計算機欄0303は、仮想計算機が稼働を開始した時に仮想計算機がマウントされて、稼働する物理計算機を識別するための識別子を格納する。この識別子は、物理計算機情報テーブル0200の物理計算機識別子欄0201に格納される識別子と同じである。例えば、行0311は、仮想計算機VM1が稼働を開始する際に、物理計算機P1:0130上で動作し、物理計算機P1:0130から計算機リソースを割り当てられることを示している。この配備先物理計算機欄0303の識別子は、仮想計算機が稼働を開始するまで、適宜変更されることが可能である。
仮想計算機が稼働を開始するまでは仮想計算機が動作する物理計算機が決定されてなくてもよい。決定されていない場合は、配備先物理計算機欄0303には「null」が格納されればよい(行0314)。稼働を開始した仮想計算機は複数の物理計算機間を移行可能であるため、仮想計算機が稼働を開始した後は、予約情報テーブル0400のVM識別子欄0302と配備先物理計算機欄0303の組み合わせと、VM情報テーブル0400のVM識別子欄0401と物理計算機識別子欄0402の組み合わせが異なることがあってもよい。
予定負荷欄0306には、仮想計算機が稼働したときに物理計算機から仮想計算機に割り当てる計算機リソースの予測値を格納する。予定負荷欄0306に格納する値は、例えば、仮想計算機の利用者が、稼働する予定の仮想計算機の負荷を予測して入力した値である。予定負荷欄0306に格納する値として、VM情報テーブル0400の負荷0403に入る値と同様、仮想計算機が負荷の例としてメモリ消費量が例示されているが、メモリの代わりにCPUクロック数やディスクI/Oなど仮想計算機に割り当てられるその他のリソースやそれらの組み合わせでもよい。
また、予定負荷0306に格納する値は、絶対値である他、物理計算機の持つ計算機リソース量との相対値でもよい。予定負荷0306に格納する値は、1つの値である必要はなく、複数の値の集合でもよい。例えば、午前9時から午後9時までは2.0G、午後9時から午前9時までは1.0Gなどである。
例えば、行0311は、仮想計算機「VM1」が2010年4月1日から物理計算機「P1」上で動作し、物理計算機「P1」の持つメモリ総容量のうち、2.0GBが割り当てられ、2010年9月1日に割り当てられたメモリ容量である2.0GB分を物理計算機「P1」に返却することを意味している。
リソース管理プログラム0110は、予約された仮想計算機のVM識別子欄0302に格納された識別子が稼働中の仮想計算機の識別子と同じであることを判定すると、予約された仮想計算機の開始時刻と稼働中の仮想計算機の終了時刻とを比較して、前者が後者以前の時刻である場合には、予約情報入力時にエラーを表示するか、或いは、予約する仮想計算機のVM識別子として、稼働中の仮想計算機の識別子と異なる値を入力するように管理者に促すようにしてもよい。
図21は、リソース管理プログラム0110が出力I/Fを介してディスプレイ0106に表示する、仮想計算機の予約情報入力画面である。仮想計算機を必ずある特定の物理計算機で稼働させたい場合には、予約情報入力画面を介して仮想計算機の配置先物理計算機が指定されるようにしてもよい。
図4では、仮想計算機の配置先を物理計算機として説明したが、これをハイパバイザにしてもよい。ユーザは複数のハイパバイザをグループ化してリソースグループを仮想計算機の配備先としてもよい。このグループ化により、仮想計算機が最適に配置される物理計算機の範囲を制限できる。
次に、稼働予定である仮想計算機を物理計算機に配置する上で、最適な配置形態を実現するための処理を説明する。図5は、その処理を実施するためのフローチャートである。リソース管理プログラム0110が、図5のフローチャートを実行する。
「最適化」とは、「ポリシー」に合致するように、仮想計算機を配置することをいう。ポリシーはポリシーファイルとして、管理ユーザによって、リソース管理プログラム0110に設定される。ポリシーとして、例えば、既述のように、複数の物理計算機の間で、仮想計算機の負荷が平準化するように、複数の物理計算機に複数の仮想計算機を配置することがある。負荷の平準化を、仮想計算機が物理計算機に及ぼす負荷値に基づいて実行する他、或いは、物理計算機の計算機リソースの余力に基づいて実行してもよい。その他のポリシーとして、計算機システムの省電力化の観点から、一部の物理計算機に複数の仮想計算機を片寄せし、他の物理計算機の消費電力を低減させようとするものがある。さらに、他のポリシーとして、計算機システムの信頼性を確保する観点から、一定以上離れた複数の物理計算機に仮想計算機をデプロイすることもある。
次に、図5のフローチャートを詳細に説明する。最初に、リソース管理プログラム0110は、任意の時刻にステップS0501を実行する。任意の時刻とは、例えば、リソース管理サーバ0100に利用者が設定した時刻などである。ステップS0501は、配置計算処理0112によって実行され、図2の物理計算機情報テーブル0200に格納された複数の物理計算機情報をすべて参照するまで、ステップS0504までの処理を繰返し実施する。
ステップS0502は、参照される物理計算機情報を1つ選択する。具体的には物理計算機情報テーブル0200に格納された物理計算機情報の1つを選択し、物理計算機情報テーブル0200の1行分のデータをメモリ0102に格納する。
ステップS0503は、図3のVM情報テーブル0400を参照し、ステップS0502で選択した物理計算機情報の物理計算機識別子0201の識別子と物理計算機識別子欄0402の識別子が一致するVM識別子情報をVM情報テーブル0400からすべて抽出する。
ステップS0504は、ステップS0502で選択した物理計算機情報のメモリ総容量欄0202の値と、ステップS0503で抽出した全VM情報の負荷欄0403の値と、を用いて物理計算機の配置スコアを計算し、配置スコアテーブル0600に記録する。
配置スコアとは、仮想計算機の最適な配置を実現するために、各物理計算機において、仮想計算機を配備できる優先度の高さに関する値である。配置スコアの値が大きい物理計算機ほど、仮想計算機を搭載する上での優先度が高いと判定される。例えば、リソース管理サーバ0100は、仮想計算機を物理計算機に最適に配置する指標として、計算機システムを構成する複数の物理計算機相互のメモリの空容量を複数の物理計算機の間で平準化することを選択する。この観点から、メモリの空容量が大きい物理計算機ほど稼働予定の仮想計算機を配備するのに適したものとなる。そこで、物理計算機の空容量が物理計算機の配置スコアになる。
図2、図3に示すように、ステップS0502で選択された物理計算機情報が行0211であった場合、物理計算機識別子欄0201は「P1」であり、メモリ総容量欄に格納された値は「6.0GB」である。したがって、ステップS0503でVM情報テーブル0400から抽出するVM情報は、物理計算機識別子欄0402の識別子が「P1」と一致する行0411のものである。行0411の負荷欄0403に格納された値は「2.0GB」であるため、物理計算機「P1」の空きメモリ容量は「6.0−2.0=4.0GB」となる。したがって、物理計算機「P1」の配置スコアは4.0となる。
ステップS0504が配置スコアテーブル0600に記録したデータを図6に示す。配置スコアテーブル0600は、物理計算機識別子欄0601、配置スコア欄0602から構成される。物理計算機識別子欄0601は、ステップS0502で選択した、物理計算機情報0200の物理計算機識別子欄0201の識別子を格納する。配置スコア欄0602は、ステップS0504で計算した、各物理計算機の配置スコアを格納する。図2、図3に示す例では、既述上述したように物理計算機「P1」の配置スコアは「4.0」となるため、配置スコアテーブル0600には、行0611に示すように、物理計算機識別子欄0601に識別子「P1」、配置スコア欄0602に配置スコア「4.0」が格納される。
図5のステップS0505は、繰返しステップの先頭であるS0501に対応する終端ステップであり、物理計算機情報テーブル0200に格納された全ての物理計算機情報を参照するまで、S0502−S0504を繰り返し実行する。
ステップS0506は、図6の配置スコアテーブル0600と、図4の予約情報テーブル0300とに格納されている情報に基づいて、予約情報テーブル0300の配備先物理計算機欄0303に格納された、物理計算機の識別子を読み込んで、稼働予定の仮想計算機に計算機リソースを割り当てる物理計算機を決定する。ステップS0506の詳細は、次の図7のフローチャートに示されている。
図7は、稼働予定の仮想計算機を配置する先の物理計算機を決定するための処理(図5のS0506)を達成するフローチャートである。このフローチャートは、管理サーバ0100が、計算機システムに存在する複数の物理計算機に対して仮想計算機の(再)配置を実行する開始時刻、すなわち、「予定時刻」から「一定期間」毎に、稼働予定の仮想計算機を複数の物理計算機の中からどの物理計算機に配置することが最適かを決定するための処理の一例である。
ステップS0701は、管理サーバ0100が「(再配置実行)予定時刻」、「一定期間」の情報を管理者ユーザからの入力によって取得する。「予定時刻」とは、図5の処理が完了する時刻以降の任意の時刻であればよい。「一定期間」とは、「予定時刻」から次回の「予定時刻」までの間の所定期間であり、例えば、一週間、或いは一カ月などである。
ステップS0702は、図4の予約情報テーブル0300を参照して、開始時刻欄0304に格納された時刻が、「予定時刻」から「一定期間」以内である行の予約情報を全て抽出する。例えば、ステップS0701において、リソース管理プログラム0110が、「予定時刻」を「2010年5月1日0時」、一定期間を「1カ月」として取得すると、ステップS0702は、図4の予約情報テーブル0300を参照して、開始時刻欄0304に格納された時刻が2010年5月1日0時から2010年5月31日の間である行0313を抽出する。
ステップS0703は、ステップS0702で抽出した予約情報を全て参照するまで、ステップS0707までの処理を繰返し実施する。ステップS0704は、抽出した予約情報を1つ選択する。
ステップS0705は、図6に示す配置スコアテーブル0600に基づいて稼働予定の仮想計算機の配置を決定し、その結果に基づいて予約情報テーブルの配備先物理計算機欄を更新する。具体的には、ステップS0703で選択した予約情報の配備先物理計算機欄の識別子を、配置スコアテーブル0600で最もスコアの大きい物理計算機の識別子になるように予約情報テーブルを更新する。
管理プログラム0110が、配置スコアテーブル0600(図6)の配置スコア欄0602を参照すると、最も配置スコアの大きい行は0612であり、ステップS0704で選択した予約情報が予約情報テーブル0300(図4)の行0313であった場合、VM識別子欄0302が示す稼働予定の仮想計算機「VM3」を配備し、動作させるべき物理計算機を、行0612の物理計算機識別子欄0601が示す物理計算機「P2」であると判定する。行0313の配備先物理計算機識別子0303は「P1」となっているが、管理プログラム0110は、配備先物理計算機識別子0303を識別子「P2」に更新する。なお、行0313の配備先物理計算機識別子0303が「null」であった場合も、識別子「P2」に更新する。
ステップS0706は、ステップS0704で選択した予約情報のVM識別子0302が示す稼働予定の仮想計算機が、予定負荷欄0306で示される負荷を、ステップS0705で決定した物理計算機から計算機リソースとして割り当てられた場合での当該物理計算機の配置スコアを再計算し、配置スコアテーブル0600に再計算した配置スコアを更新登録する。
図4、図6に即して説明すると、ステップS0705が決定した、稼働予定の仮想計算機が動作する物理計算機は「P2」であり、ステップS0704が選択した予約情報が予約情報テーブル0300の行0313であった場合、配置スコアテーブル0600の物理計算機「P2」の配置スコアを示す行0612の配置スコア欄0602の更新前の値は「7.0」であり、行0313のVM識別子欄0302は「VM3」であり、予定負荷欄0306は「3.0GB」である。したがって、物理計算機「P2」のメモリの空容量は、仮想計算機「VM3」が新たに割り当てられた場合4.0G(7.0GB−3.0GB)になるため、配置スコアテーブル0600の行0612の配置スコア欄0602の値は4.0Gに更新される。
ステップS0707は、繰返しステップの先頭であるS0703に対応する終端ステップである。管理プログラム0110は、ステップS0702で抽出した予約情報をすべて参照するまで、ステップS0707まで、繰返し上述ステップを実行する。
なお、予定負荷が最も大きい配置スコアを上回る場合には、リソース管理プログラム0110は、稼働予定に係る仮想計算機を物理計算機に配置できない旨を表示する。
図5及び図7のフローチャートに示す処理によって、管理プログラム0110は、配備処理0115(図1)として、予約情報テーブル0300の配備先物理計算機欄0303に格納された識別子で識別される物理計算機に、VM識別子欄0302で識別される仮想計算機を、予約情報テーブル0800Cの開始時刻欄0304に格納された時刻に、目的の物理計算機に配備する。これによって、稼働予定の仮想計算機の最適配置が実現される。
すなわち、図2、図3、図4に即して具体的に説明すると、管理サーバ0100は、予約情報テーブル0300の行0313の配備先物理計算機欄の識別子を物理計算機「P1」から物理計算機「P2」に変更し、仮想計算機「VM3」を2010年5月5日から物理計算機「P2」上で稼働を開始させることによって、2010年5月5日から2010年9月1日までの間、物理計算機「P1」、物理計算機「P2」の空容量をともに4.0GBにし、そして、これによって、計算機システムを構成する複数の物理計算機の空容量を平準化させる、仮想計算機の最適配置を実現する。
なお、予約情報テーブル0300の行数がnであると、図7のステップS0703からステップS0707の繰返し処理が仮想計算機の配置を決定する際、での仮想計算機の配置を決定する順序はnの階乗通りある。そこで、図7の処理は、仮想計算機の配置決定順序を1通りに固定して仮想計算機の配置の決定処理を実行している。しかしながら、図7の処理が、m通り(m≦nの階乗)の順序で仮想計算機の配置の決定の処理を繰り返し実施し、各順序で決定された、稼働予定仮想計算機の配置における全物理計算機の空容量の標準偏差を記憶し、標準偏差が最も小さいパターンを構成する、稼働予定仮想計算機の配置を採用するように変更してもよい。
以上説明したように、既述の実施例における計算機システムは、複数の仮想計算機の最適配置を決定する際の複数の仮想計算機が搭載される複数の物理計算機の負荷バランスの調整を、現在稼働していないが、稼働予定の仮想計算機を含めて実行するため、稼働予定の仮想計算機が実際に稼働した時点で、複数の仮想計算機の最適配置処理を繰り返さなくても、システム全体の負荷バランスを最適に調整できる。
さらに、稼働中の仮想計算機の負荷と、物理計算機が仮想計算機に割り当て可能な総計算機リソース量とに基づいて、稼働中の仮想計算機の移行を伴うことなく、複数の仮想計算機の最適配置処理を実現するため、複数の物理計算機間での仮想計算機の移行に伴うネットワークに与える負荷の増大化が防止される。
物理計算機に搭載され、稼働している仮想計算機を複数の物理計算機間で移行する場合には、仮想計算機が移行先する物理計算機に、仮想計算機に割当てられていたメモリ等の情報を移行元物理計算機からコピーし、移行先物理計算機はコピーした情報を元に新しい仮想計算機を作成し、コピー元の仮想計算機を停止させなければならない。このとき、コピーが完了する前にコピー元のメモリの格納情報が更新されると、移行元物理計算機は更新された情報を再度移行先物理計算機にコピーする必要がある。したがって、コピーすべ情報量が多いと、仮想計算機の移行に長い時間を要することになる。既述の実施形態に係る計算機システムは、稼働中の仮想計算機の移行を伴わないため、このような問題を解消する。
なお、管理サーバは、稼働予定の仮想計算機を、計算機システムを構成する全ての物理計算機に対して搭載でき得るとして、仮想計算機の最適配置を実現したが、稼働予定の仮想計算機を配備できる物理計算機を制限してもよい。このような物理計算機は、予約画面(図21)に登録されることができる。なお、予約画面において、特定の物理計算に配置されることが必要で、最適配置の対象にされたくない仮想計算機については、この仮想計算機と物理計算機の組み合わせを、管理ユーザは予約画面に登録することができる。
既述の実施形態では、複数の仮想サーバの最適配置の開始契機を定期的に生じるものとして説明したが、これを手動での契機、予約の追加、予約の変更(開始時期、終了時期、負荷)、予約の削除、仮想計算機の削除でもよい。
図7のS0701では、「一定期間」が一月として説明されたが、これは一例である。「一定期間」が長いと、稼働予定の仮想計算機が稼働を開始するまで、「最適配置」が長い間実現されないことになり、一方で、この期間が短いと、仮想計算機の再配置処理が頻繁に実施されなければならなくなる。そこで、「一定期間」は計算機システムの運用上妥当な範囲に設定される。
次に本発明の第2の実施形態について説明する。この実施形態の既述の第1の実施形態と相違する点は、管理サーバは、計算機システムに属する夫々の物理計算機にその負荷に関する目標値を設定し、稼働予定の仮想計算機を最適配置にするだけでは目標値を達成できない場合に、稼働予定の仮想計算機の最適配置を実現する際に、稼働中の仮想計算機の再配置をも実施、即ち、稼働中の仮想計算機の移転を行って、目標値を達成しようとする点である。但し、この実施形態に係る計算機システムは、稼働中の仮想計算機が移行する頻度や数を、下記のとおり極力低減するようにした。
図8(A)−図8(C)に、第2の実施形態における、物理計算機情報テーブル0800A(図8(A))、VM情報テーブル0800B(図8(B))、予約情報テーブル0800C(図8(C))を示す。物理計算機情報テーブル0800Aは、第1の実施形態における物理計算機情報テーブル0200と同じ構造を有する。VM情報テーブル0800Bは、第1の実施形態におけるVM情報テーブル0400と同じ構造を有する。予約情報テーブル0800Cは第1の実施形態の予約情報テーブル0300と同じ構造を有する。但し、実施例1の管理テーブルに登録されているデータと図8(A)−図8(C)に示す管理テーブルに登録されているデータとが異なることがあることは勿論である。
図9は、第2の実施形態における、仮想計算機を複数の物理計算機に最適に配置するための処理のフローチャートを示す。図1で示したリソース管理プログラム0110が、図9のフローチャートを実行する。
図9に示す処理は、図5及び図7のフローチャートによって、稼働予定の仮想計算機の決定された最適配置を前提にしながら、そして、稼働中の仮想計算機を含めて、計算機システムに存在する複数の仮想計算機の最適配置が維持できるか否かを判定するためのものである。そして、リソース管理プログラム0110は、この判定を肯定する場合には仮想計算機の配置処理を終了し、この判定を否定する場合には稼働中の仮想計算機と稼働予定の仮想計算機とも、複数の物理計算機に対する配置を変更する。
次に、図9のフローチャートを具体的に説明する。リソース管理プログラム0110は、リソース管理サーバ0100のユーザから設定された任意の時刻にステップS0901に係る稼働予定仮想計算機の最適配置処理を実行する。ステップS0901は、既述の図5及び図7のフローチャートに相当する。
ステップS0902は、ステップS0901において決定された、稼働予定の仮想計算機を目的の物理計算機に配置するだけで、複数の物理計算機間での負荷のバランスを改善できるなど、仮想計算機の最適配置における目標を達成できるかどうかを判定する。ステップS0902がこの判定を肯定すると、仮想計算機の最適配置のための処理を終了する。
この後、配備処理0115(図1)が、予約情報テーブル0800C(図8(C))の配備先物理計算機欄0303に格納された識別子によって識別される物理計算機に、VM識別子欄0302に格納された識別子によって識別された予約された仮想計算機を、開始時刻欄0304に格納された時刻に設定する。一方、ステップS0902が仮想計算機の最適配置における目標を達成できないと判定すると、ステップS0903へ移行する。
計算機システムに属する複数の物理計算機間でメモリの空容量が平準化されるための、仮想計算機の最適配置の目標値を例示すると、例えば、次のようなものになる。図7におけるステップS0701における、「予定時刻」(例:2010年5月1日0時)から「一定期間」(例:一月)以内において、各物理計算機の空メモリ容量と、全ての物理計算機の空メモリ容量の平均値との差を、全ての物理計算機において0.5GB以内とすることである。なお、図8(A)−図8(C)に示す各テーブルの状態は、ステップS0901を実行した後の状態のものである。
仮に、現在が2010年5月2日とすると、図8(A)−図8(C)は、物理計算機「P1」上で、負荷が「2.0GB」の仮想計算機「VM1」と、負荷が「1.0GB」の仮想計算機「VM3」が稼働しており、物理計算機「P1」のメモリ総容量は「6.0GB」であることを示している。この場合、物理計算機「P1」の空メモリ容量は「6.0−2.0−1.0=3.0GB」である。
物理計算機「P2」上では負荷が「2.0GB」の仮想計算機「VM2」が稼働しており、さらに、再配置時刻(2010年5月1日0時)から一定期間(一月)以内である2010年5月5日に稼働を開始する仮想計算機「VM4」が予定負荷「1.0GB」の下で稼働する予定であり、物理計算機「P2」のメモリ総容量は「8.0GB」である。そのため、2010年5月5日には、物理計算機「P2」の空メモリ容量は「8.0−2.0−1.0=5.0GB」になる。したがって、物理計算機「P1」と物理計算機「P2」の空メモリ容量の平均は「(3.0+5.0)÷2=4.0GB」であり、「各々の物理計算機の空容量と、全ての物理計算機のメモリ空容量の平均値との差が、全ての物理計算機において0.5GB以内である」という目標が達成されない。そこで、ステップS0903が実行される。
ステップS0903は、稼働中の仮想計算機と稼働予定の仮想計算機とを含めた複数の仮想計算機の最適配置を決定するための演算処理を実行する。この際、複数の物理計算機間を移行される、稼働中の仮想計算機の数が少なくなるようにする。リソース管理プログラム0110は、演算結果に基づき、他の物理計算機に移行されるべき稼働中の仮想計算機に対して、VM情報テーブル0800Bの物理計算機識別子0402の識別子を、移行先物理計算機の識別子に変更する。さらに、稼働される予定の仮想計算機について、予約情報テーブル0800Cの配備先物理計算機0303の識別子を、ステップS0903において再決定された、稼働予定仮想計算機の配置先物理計算機の識別子に変更する。ステップS0903の詳細なフローチャートを後述の図10において説明する。
図23に、仮想計算機の最適配置処理によって得られた、複数の仮想計算機の配置形態に相当する管理テーブルを示す。(A)は物理計算機構成テーブルであり、(B)は最適配置後の仮想計算機に係るVM情報テーブルであり、(C)は最適配置後の稼働が予約された仮想計算機の予約情報テーブルである。図8の管理テーブルと比較すると、現在稼働中の仮想計算機(VM3)がP1で識別される物理計算機からP2で識別される物理計算機に移行されたことが分かる。
ステップS0904は、計算機システムにおける仮想計算機の配置を、ステップS0903で決定した仮想計算機の配置に変更するか否かを判定する。即ち、管理プログラム0100が、ステップS0901において決定された仮想計算機の配置の形態と、ステップS0903において決定された仮想計算機の配置の形態とを比較し、ステップS0903において決定された配置の方が目標に近いか否かを判定する。ステップS0903で決定した配置の方がより仮想計算機の最適配置目標に近い場合はステップS0905に移行する。ステップS0901で決定した配置の方が仮想計算機の最適配置目標に近い場合は、ステップS0906に移行する。ステップS0906は、稼働予定の仮想計算機の配置と稼働中の仮想計算機の配置とを、ステップS0903の実行前の状態に戻す。
ステップS0904は、「計算機システムに属する全物理計算機のメモリの空容量が平準化されるようにした複数の仮想計算機の配置」を目標としているため、ステップS0901によって決定された、稼働中の仮想計算機の再配置を伴うことなく、稼働予定の仮想計算機の最適配置後の全ての物理計算機についてのメモリの空容量の標準偏差と、ステップS0903で決定された、稼働中の仮想計算機の再配置も許容した状態での全ての物理計算機についてのメモリの空容量の標準偏差と、を比較し、後者の方が前者より小さければステップS0905に移行し、その逆である場合にはS0906に移行する。両者が同じである場合には、どちらかに移行する。
なお、ステップS0904において、管理プログラム0110は、ステップS0901で決定された、仮想計算機の配置と、ステップS0903で決定された、仮想計算機の配置とを比較しているが、ステップS0903で決定された、仮想計算機の配置が、ステップS0902と同様に、仮想計算機の最適な配置に係る目標を達成しているかどうかを判断してもよい。
ステップS0905は、リソース管理プログラム0110のVM移行処理0113(図1)を実行し、稼働中の仮想計算機を、ステップS0903で決定された、仮想計算機の配置になるように移行させる。この移行処理を、ステップS0701において取得した「再配置実行予定時刻」に開始する。
ステップS0906は、ステップS0903で変更された、VM情報テーブル0800Bの物理計算機識別子0402と、予約情報テーブル0800Cの配備先物理計算機の識別子0303を、ステップS0903を実行する前の状態に戻す。
図10は、図9のステップS0903で実行される、稼働中の仮想計算機と稼働予定の仮想計算機を最適な形態で物理計算機に配置するための案を作成する処理に係るフローチャートである。このフローチャートはリソース管理プログラム0110によって実行される。
ステップS1001は、仮想計算機の最適配置を実現するための各物理計算機について、境界条件、例えば、「容量条件」を決定する。「容量条件」とは、各物理計算機に稼働している仮想計算機の配置を変更するか否かの判断をする際に、リソース管理プログラム0110が考慮する、物理計算機のメモリの容量に関する指標である。
リソース管理プログラム0110は、例えば、複数ある物理計算機の各メモリの空容量を平準化することを狙って、複数の仮想計算機の再配置を実行しようとする時刻から一定期間内において、各々の物理計算機の空容量が、全ての物理計算機の空容量の平均値以上であることを容量条件として設定する。
図8に例示する形態では、ステップS0902と同じように、再配置実行時刻から一定期間内における、全ての物理計算機の空容量の平均が4.0GBであるので各物理計算機の容量条件は「空容量が4.0GB以上」になる。稼働中の仮想計算機を仮に移行しなかった場合に、この条件を満たさない時のみ、リソース管理プログラムは、配置スコアに基づいて稼働中の仮想計算機の移行先となる物理計算機を決定する。
ステップS1002は、VM情報テーブル0800Bに格納された個々の仮想計算機情報をすべて参照するまで、ステップS1009までの処理を繰返し実施する。ステップS1003は、参照するVM情報を1つ選択する。
ステップS1004は、繰返し処理ステップS1002からステップS1009において、既に配置が決定されている稼働中の仮想計算機のVM情報を用いて、ステップS1003で選択した仮想計算機が動作している物理計算機の負荷を計算する。
例えば、ステップS1002からステップS1009の処理が2度実行され、VM情報テーブル0800BのVM識別子が「VM1」の仮想計算機の配置が物理計算機「P1」に、VM識別子が「VM2」の仮想計算機の配置が物理計算機「P2」に決定され、それぞれの物理計算機の識別子「P1」「P2」がVM情報テーブル0800Bの物理計算機識別子欄0402に格納されているとする。ステップS1003でVM情報テーブル0800Bから選択された稼働中の仮想計算機は、VM識別子が「VM3」で識別された仮想計算機とする。
「VM3」が動作する物理計算機は、行0413の物理計算機識別子欄0413で識別される物理計算機「P1」である。物理計算機「P1」には、仮想計算機「VM1」が配置されることが決定しており、VM情報テーブル0800Bの行0411の負荷欄0403を参照するとその負荷は「2.0GB」である。したがって、ステップS1004における、物理計算機「P1」の負荷は2.0GBとなる。
ステップS1005は、ステップS1003で選択された、稼働中の仮想計算機を現在の物理計算機から他の物理計算機に移行しないこととした場合に、選択した仮想計算機が現在動作している物理計算機の負荷が、ステップS1001で設定した容量条件を満たすかどうかを判断するステップである。容量条件が満たさなければステップS1007に移行し、容量条件が満たされればステップS1009に移行する。
例えば、ステップS1001において、容量条件として「各物理計算機の空き容量が4.0GB以上」と設定され、ステップS1003でVM情報テーブル0800Bから選択した、稼働中の仮想計算機は、VM識別子が「VM3」で識別される仮想計算機とする。
「VM3」が実装されている物理計算機「P1」のメモリ総容量は、物理計算機情報テーブル0800Aによれば、メモリ総容量欄0202にあるように、6.0GBであり、仮想計算機「VM3」の負荷は、VM情報テーブル0800Bの負荷欄0403によれば、1.0GBである。ステップS1004において、物理計算機「P1」の算出された負荷が2.0GBである。仮想計算機「VM3」がこの物理計算機から他の物理計算機に移行されない場合、物理計算機「P1」のメモリ空容量は6.0−2.0−1.0=3.0GBとなり、容量条件「空きメモリ容量が4.0GB以上」未満であるため、処理はステップS1007に移行される。
ステップS1007は、ステップS1002からステップS1009の繰り返し処理によって、既に、物理計算機に対する配置が決定された稼働中の仮想計算機の負荷を用いて、複数の物理計算機の配置スコアを決定する。配置スコアの考え方は既述の図5におけるステップS0504と同じである。
ステップS1008は、ステップS1007で算出された配置スコアに基づいて、ステップS1003で選択された仮想計算機が現在搭載されている物理計算機から移行されて搭載されるべき他の物理計算機を決定し、VM情報テーブル0800Bの選択された仮想計算機が存在する行の物理計算機識別子欄0402に前記他の物理計算機の識別子を格納する。
例えば、第1の実施形態と同様に、メモリの空容量を各物理計算機の配置スコアとする。ここで、ステップS1007が実行される時に、既に、ステップS1002からステップS1009の繰り返し処理が2度実行され、VM情報テーブル0800BでVM識別子が「VM1」で識別される仮想計算機が物理計算機「P1」に配置されること、VM識別子が「VM2」で識別される仮想計算機が物理計算機「P2」に配置されること、がそれぞれ決定され、これらの識別子「P1」「P2」がVM情報テーブル0800Bの物理計算機識別子欄0402に格納されているとする。
図8(A)−図8(C)に即して説明すると、物理計算機「P1」の空容量は6.0GB(メモリ総容量)−2.0GB(仮想計算機の負荷)=4.0GBであり、物理計算機P2の空容量は8.0−2.0=6.0GBとなり、配置スコアはそれぞれ4.0、6.0となる。したがって、ステップS1008は、ステップS1003で選択された仮想計算機(VM3)の配置を、配置スコアの最も大きい物理計算機「P2」に決定し、VM情報テーブル0800Bの仮想計算機(VM3)を示す行0413の物理計算機識別子欄0402の識別子を「P1」から「P2」に変更登録する。
なお、ステップS1003で選択された仮想計算機が稼働している物理計算機の配置スコアが最も大きい場合には、当該仮想計算機は他の計算機に移行されない。但し、図10のフローチャート(S0903)は、ステップS0902の判定が否定されて実行されるものであるから、少なくとも一つの稼働中の仮想計算機は現在稼働中の計算機からリソース容量に最も余裕がある他の物理計算機に移行される。
ステップS1009は、繰返しステップの先頭であるS1002に対応する終端ステップである。リソース管理プログラムS0110がVM情報テーブル0800Bに格納された全ての仮想計算機情報を参照するまで、S1002−S1009を繰り返し実行する。
ステップS1010は、ステップS1002からステップS1009で決定された、稼働中の仮想計算機の配置に基づいて、稼働予定の仮想計算機の再配置を行うステップであり、図5のフローチャートと同一である。
図22は、ステップS0903(図10のフローチャート)に対応する、入力画面である。管理ユーザが、稼働予約に係る仮想計算機を含めた稼働中の仮想計算機の最適配置案の出力を入力画面に要求すると、ステップS0903は最適配置案作成処理を続行する。
図22は、物理計算機(P1)で稼働中の仮想計算機(VM1)を他の物理計算機(P2)に移行すること、そして、稼働予定の仮想計算機(VM3)を当初の予定物理計算機(P1)から他の物理計算機(P3)に移行することを、最適配置として出力していることを示している。なお、後者はステップS1010によって決定された最適配置である。
図10は、稼働中の仮想計算機の最適配置と稼働予定の仮想計算機の最適配置とを同時に決定する方法の一例である。VM情報テーブル0800Bの行数がnであった場合、リソース管理プログラム0110が、図10のステップS1002からステップS1009を繰返して仮想計算機の配置を決定する際、その配置の決定順序にはnの階乗通りある。図10は、仮想計算機の配置決定のための順序を、1通りのものとして、説明したが、リソース管理プログラム0110がm通り(m≦nの階乗)の順序で仮想計算機の配置パターンを検討し、全物理計算機の空容量の標準偏差が最も小さいパターンの配置を最適配置としてもよい。
既述したように、リソース管理プログラム0110は、予定時刻から一定期間毎に、仮想計算機の最適配置を実現するために、稼働予定の仮想計算機の配置を決定するが、それだけでは、稼働中の仮想計算機を含めた複数の仮想計算機の最適配置での目標を達成できなかった場合に、稼働中の仮想計算機を移行することによって、複数の仮想計算機全体の最適配置を実現する。
この際、リソース管理プログラム0110は、既述の容量条件を満たさない場合に、稼働中の仮想計算機の配置を変更することによって、稼働中の仮想計算機が移行される頻度、回数を低減する。これにより、リソース管理プログラムは、移行されなければならない仮想計算機の移行に要する時間を短縮して、計算機システムにある複数の仮想計算機の性能を安定的に維持する。
なお、既述の実施形態において、リソース管理プログラムは、稼働中及び/又は稼働予定の仮想計算機が移行される物理計算機に制約を設けることもできる。さらに、リソース管理プログラムは、稼働中の仮想計算機と稼働予定の仮想計算機の配置の複数ある全ての組み合わせに対して、全物理計算機の空容量の標準偏差と移行すべき仮想計算機数とを算出し、現在稼働している物理計算機から他の物理計算機に移行されるべき仮想計算機の数が最小となる配置、かつ、配置スコアの標準偏差が最小になる配置を採用することによって、仮想計算機の最適配置を実現することでもよい。
次に、第3の実施例形態について説明する。既述の実施形態は、稼働予定仮想計算機の稼働が開始される時刻から一定期間の間に既に稼働していた仮想計算機及びこの間に稼働を開始した仮想計算機が稼働を終了、中断、停止しないことを前提としていた。これに対して、第3の実施形態は、この間に稼働計算機の稼働が終了することもあり、これを勘案して、稼働予定計算機を含む複数の仮想計算機の最適配置を決定しようとしている。
そこで、リソース管理サーバ0110は、仮想計算機の稼働開始時刻ばかりでなく、稼働終了時刻も最適配置を決定する際の要素に含めて、稼働予定の仮想計算機の配置を決定する。リソース管理プログラムは、稼働が予定されている複数の仮想計算機の配置を稼働開始時刻順に決定し、そして、ある稼働予定の仮想計算機の配置を決定する際に、この稼働予定の仮想計算機の稼働開始時刻以前に稼働を終了する仮想計算機が存在する場合には、物理計算機の負荷からその分の負荷を減算し、稼働予定仮想計算機の稼働開始時刻直前の物理計算機の負荷の実質値を計算する。そして、算出した各物理計算機の負荷に基づいて稼働しようとしている予定の仮想計算機の配置を決定する。
以下に、第3の実施形態をフローチャートに基づいて説明する。本実施形態においても、仮想計算機を物理計算機に最適に配置するための指標として、計算機システムにおける複数の物理計算機の空容量が平準化されるように仮想計算機を配置する。第3の実施形態が前2つの実施形態と異なる点は、第3の実施形態における処理が、稼働予定仮想計算機の終了時刻を考慮して、複数の仮想計算機の配置を再構成している点である。
図11(A)は、この実施形態に係る物理計算機情報テーブル1100A、図11(B)はVM情報テーブル1100B、図11(C)は予約情報テーブル1100Cをそれぞれ示す。予約情報テーブル除くテーブルの構成は既述の実施形態のものと同様である。この予約情報テーブルが既述の実施形態の予約情報テーブルと異なるのは稼働状況欄0307を備える点である。
稼働状況欄0307は、予約情報テーブル1100Cの各行のVM識別子欄0302で識別される仮想計算機の稼働状況を示す識別子を格納している。稼働状況には、「稼働」と「停止」2種類がある。「稼働」とは、当該予約によって当該仮想計算機が物理計算機上で動作されている状態を示す。「停止」とは、当該予約によって当該仮想計算機が物理計算機上で動作されていないことを示す。稼働状況欄0307に「稼働」が格納されている行について、VM識別子欄0302に格納されている、仮想計算機の識別子が、VM情報テーブル1100BのVM識別子欄0401に必ず存在する。例えば、図11の予約情報テーブル1100Cの行0311は稼動状況欄0307に「稼動」が格納されており、VM識別子欄0302には識別子「VM1」が格納されているため、VM情報テーブル1100Bには、VM識別子欄0401に識別子「VM1」が格納された行0411が存在する。
また、仮想計算機が稼動していても当該予約による稼動でない場合は稼動状況欄0307には「停止」が格納される。例えば、図11の予約情報テーブル1100Cの行0316は、VM識別子欄0302に稼働中の仮想計算機の識別子「VM1」が格納されているが、仮想計算機「VM1」は行0316ではなく、行0311が示す予約によって稼動しているため、行0316の稼動状況欄0307には「停止」が格納される。
図12は、第3の実施形態における、稼働予定の仮想計算機の最適配置を決定処理するためのフローチャートである。これはリソース管理プログラム0110によって実行される。まず、リソース管理プログラム0110は、任意の時刻にステップS1201を実行する。任意の時刻とは、例えば、リソース管理サーバ0100に利用者が設定した時刻などである。
ステップS1201は、図5のフローチャートのステップS0501からステップS0505までの処理と同一の処理である。リソース管理プログラム0110は、稼働中の仮想計算機の負荷と物理計算機の総メモリ容量から各物理計算機の配置スコアを計算し、図6の配置スコアテーブル0600に記録する。
ステップS1202は、図7のステップS0701と同一の処理である。 ステップS1203は図7のフローチャートのステップS0702と同一の処理である。ステップS1204はステップS1203で抽出した予約情報を開始時刻で昇順にソートする。
ステップS1205は、管理サーバのメモリ0102の所定領域に記録する時刻情報(以下、時刻情報と呼ぶ)の初期値として現在時刻を設定する。ステップS1206は、ステップS1203で抽出した予約情報を全て参照するまで、ステップS1207からステップS1219までの処理を繰返し実施する。ステップS1207は、抽出した予約情報を1つ選択する。
ステップS1208は、予約情報テーブル1100Cを参照し、時刻情報の時刻から選択した予約情報の開始時刻の期間に稼働を終了する予約情報を全て抽出する。例えば、時刻情報が2010年5月1日0時であり、ステップS1207で選択した予約情報が行0313である場合、行0313の開始時刻欄0304は2010年5月10日であるから、ステップS1208は、終了時刻欄0305が2010年5月5日である行0312を抽出する。
ステップS1209は、ステップS1208で抽出した予約情報を全て参照するまで、ステップS1214までの処理を繰返し実施する。ステップS1210は、ステップS1208で抽出した予約情報を1つ選択する。
ステップS1211は、ステップS1210で選択した予約情報が稼働中の仮想計算機の予約情報か、稼働予定の仮想計算機の予約情報かを判定する。稼働中の仮想計算機の場合は、処理はステップS1212に移行し、稼働予定の仮想計算機の場合は、ステップS1213に移行する。具体的には、ステップS1210で選択した予約情報の稼働状況欄0307に格納されている識別子が「稼働」であれば、処理はステップS1212に移行し、「停止」であればステップS1213に移行する。
ステップS1212は、ステップS1210で選択した予約情報のVM識別子欄0302が識別する稼働中の仮想計算機の負荷に基づいて、図6の配置スコアテーブル0600を更新する。具体的には、VM情報テーブル1100Bから、VM識別子0401がステップS1210で選択した予約情報のVM識別子欄0302に格納された識別子と一致する行を抽出する。抽出した行の負荷欄0403に格納された仮想計算機の負荷が、その行の物理計算機識別子欄0402に格納された識別子で識別される物理計算機の負荷から除かれた場合の物理計算機の配置スコアを再計算し、その配置スコアを配置スコアテーブル0600に更新登録する。
例えば、配置スコアが各物理計算機の空容量と定義されており、ステップS1210で選択した予約情報が予約情報テーブル1100Cの行0312である場合、予約対象の仮想計算機は、0312の欄0302に格納された、識別子が「VM2」である仮想計算機であり、VM情報テーブル1100Bに基づくと、VM識別子欄0401が「VM2」である行は0412である。
VM情報テーブル1100Bの行0412の負荷欄0403は「1.0GB」であり、物理計算機識別子0402は「P2」であり、図6に示す配置スコアテーブルの物理計算機識別子欄0601に「P2」が格納されている行は行0612であり、行0612の配置スコア欄0602は「7.0」である。物理計算機P2の空きメモリ容量は7.0GBであり、行0412が示すVM12の負荷「1.0GB」が物理計算機P2の負荷から除かれた場合、物理計算機P2の実の空容量は8.0GBとなるため、配置スコアテーブル0600の行0612の配置スコア欄0602には8.0が格納される。
ステップS1213は、ステップS1210で選択した予約情報の予定負荷欄0306に格納された負荷に基づいて、図6の配置スコアテーブル0600を更新する。具体的には、ステップS1210は、選択した予約情報の予定負荷欄0306に格納された負荷が、配備先物理計算機欄0303に格納された識別子によって識別される物理計算機の負荷から除かれた場合の物理計算機の配置スコアを計算し、その配置スコアを配置スコアテーブル0600に格納する。
例えば、リソース管理プログラム0110は、配置スコアを各物理計算機のメモリの空容量と定義すると、ステップS1210で選択した予約情報が予約情報テーブル1100Cの行0314である場合、行0314の予定負荷欄0306は「1.0GB」であり、配備先物理計算機欄0402は「P1」であり、図6に示す配置スコアテーブルの物理計算機識別子欄0601に「P1」が格納されている行は行0611であり、行0611の配置スコア欄0602には4.0が格納されている。したがって、ステップS1213は、物理計算機P1のメモリの空容量は4.0GBであり、行0314が示すVMの予定負荷「1.0GB」が物理計算機P1の負荷から除かれると、物理計算機P2の空容量は5.0GBとなるため、配置スコアテーブル0600の行0611の配置スコア欄0602には5.0を格納する。
ステップS1214は、繰返しステップの先頭であるS1209に対応する終端ステップである。ステップS1208で抽出した全ての予約情報を参照するまで、既述のステップを繰り返し実行する。
ステップS1215、ステップS1217の処理はそれぞれ図7で説明したステップS0705、ステップS0706の処理と同じである。ステップS1218は、ステップS1207で選択した予約情報の開始時刻欄0304に格納されている時刻を、ステップS1205で初期化したメモリに上書きして記録する。ステップS1219は、返しステップの先頭であるS1206に対応する終端ステップであり、ステップS1203で抽出した全ての予約情報を参照するまで、既述のステップを繰り返し実行する。
この実施形態では、選択した予約情報の開始時刻から終了時刻までの間の各物理計算機の負荷を、稼働中の仮想計算機と先に配置を決定した稼働予定の仮想計算機の予定負荷と開始時刻と終了時刻とから算出する際、各物理計算機の配置スコアを算出できるのであれば、稼働予定仮想計算機の配置を開始時刻が早いものから決定していかなくてもよい。
リソース管理プログラムが、ある稼働予定の仮想計算機を選択して配置を決定する際に、選択した仮想計算機の稼働期間に稼働が重複している仮想計算機の負荷から、選択した仮想計算機の稼働期間の各物理計算機の負荷を算出し、算出した各物理計算機の負荷に基づいて、選択した稼働予定仮想計算機の配置を決定することで、稼働中の仮想計算機または稼働予定の仮想計算機が、再配置実行時刻から一定期間内に稼働を終了する場合にも、稼働予定の仮想計算機の最適な配置を決定することができる。
図13(A)−図13(C)は、リソース管理プログラム0110が、稼働が予定される仮想計算機の配置を決定する上で、稼働中の仮想計算機の終了時刻を考慮する必要がない状態に係る管理テーブルであり、具体的には、物理計算機情報テーブル0800A(図13(A))、VM情報テーブル0800B(図13(B))、予約情報テーブル0800C(図13(C))である。図14に、物理サーバ(P3)のメモリの総容量に対する、仮想計算機の負荷の変位をグラフにして示す。図13(C)によれば、稼働予定であった仮想計算機(VM10)が現在時刻(2010年3月1日)において、物理サーバ(P3)で既に稼働しており、現在時刻から一月の(2010年4月1日)まで、さらに、物理サーバ(P3)に、仮想計算機(VM11)と仮想計算機(VM12)とが続けて稼働し、そして、その間、3つの仮想計算機(VM10,VM11,VM12)が稼働を終了しない。したがって、リソース管理プログラム0110が、現在時刻において、稼働予定の仮想計算機(VM11,VM12)を物理サーバ(P3)への配置を決定し、これら仮想計算機を稼働させるに当たっては、既に物理計算機(P3)に配置済みの仮想計算機の負荷を物理計算機(P3)のメモリの総容量から減じる必要は無い。
これに対して、この必要性がある場合を以下に説明する。図15は図13(C)に係る予約情報テーブルの変形例である。図15の予約情報テーブルによれば、現在時刻(2010年3月1日)から1月以内に、仮想計算機(VM10)と仮想計算機(VM11)とは、物理計算機(P3)に一旦は配置されて稼働するものの、2010年4月1日までにその稼働を終了する。したがって、この間での物理計算機(P3)に配置された仮想計算機の実際の予定負荷は、仮想計算機(VM11)の予定負荷の値となる(図16)。したがって、リソース管理プログラム0110が、物理計算機(P3)の既述の配置スコアを算出する際には、物理計算機(P3)の予定負荷の値に基づかなくてはならない。
一方、仮想計算機(VM10)と仮想計算機(VM11)との稼働の終了を考慮しないと、これら仮想計算機の負荷が物理計算機(P3)に存在しないにも拘わらず、図17に示すように、仮想計算機(VM12)の負荷にそれぞれ累積されて、配置スコアはこれら累積に基づくものとなって、管理プログラムは、物理計算機(P3)の容量に余裕があるにも拘らず、これを余裕が無いものとして判定し、仮想計算機(VM11)及び/又は仮想計算機(VM12)の配置先を他の物理計算機に決定してしまい、稼働予定の仮想計算機の最適配置の目的を達成できないおそれが生じてしまう。
図18−図20は、図15−17の他の例である。図18は予約情報テーブルであり、図19は、仮想計算機の稼働の終了を考慮した場合での、物理計算機(P3)における仮想計算機の負荷変位を示し、図20は、仮想計算機の稼働の終了を考慮しない場合での、物理計算機(P3)における仮想計算機の負荷の変位を示すものである。この例が先の例と異なるのは、図19において、現在時刻(2010年3月1日)から一定期間(1月)の間での予定負荷の最大値は、仮想計算機(VM10)と仮想計算機(VM11)の稼働期間が一部重なることにより、両者の加算値になる点である。
既述の予約情報テーブル(図4等)において、管理ユーザが稼働予定の仮想計算機を配備する物理サーバを指定することもできる。例えば、ある仮想計算機を特殊な物理サーバに配備し、必ずその物理サーバ上で仮想計算機を稼働させていたい場合、管理ユーザが仮想計算機の配置先物理サーバを指定し、仮想計算機を再配置の対象外とする場合、ある仮想計算機を特定の複数物理計算機間だけで移動するように限定したい場合、管理ユーザが仮想計算機の配置先物理計算機の範囲を指定し、仮想計算機の最適配置時には、配置先決定時に指定された物理計算機の範囲で仮想計算機の配置を決定する。
管理ユーザが、仮想計算機の配置先物理計算機を指定する以外に、管理ユーザが仮想計算機の配置に対して制約を設けることもできる。例えば、ある指定した複数の仮想計算機を同一物理計算機で稼動させる場合、ある指定した複数の仮想計算機を別物理計算機で稼働させる場合、ある指定した複数の仮想計算機をできるだけネットワークの距離が近い物理計算機に配置する場合などである。
0100:リソース管理サーバ、0101:CPU,0102:メモリ、0103:入力I/F,0104:マウス・キーボード、0105:出力I/F、0106:ディスプレイ、0107:HDD I/F、0108:HDD、0109:NIC、0110:リソース管理プログラム0110、0111:予約受付部、0112:配置計算部、0113:VM移行部、0114:計測部、0115:配備部、0116:管理部、0200:物理計算機情報テーブル、0300:予約情報テーブル、0400:VM情報テーブル、0600:配置スコアテーブル、0120:ネットワーク、0130:物理計算機、0131:CPU、0132:メモリ、0133:NIC、0134:HDD I/F、0135:ハイパバイザ、0136:仮想計算機、0137:仮想計算機、0140:物理計算機、0141:CPU、0142:メモリ、0143:NIC、0144:HDD I/F、0145:ハイパバイザ、0146:仮想計算機、0147:仮想計算機、150:HDD、151:VMディスクイメージ。

Claims (10)

  1. 複数の物理計算機と、
    前記複数の物理計算機に対して、複数の仮想計算機配置するための管理処理を実行する管理計算機と、
    を備える計算機システムであって、
    前記管理計算機は、
    前記複数の物理計算機の少なくとも一つで稼働させることが予定されている一つ又は複数の仮想計算機と、当該仮想計算機の稼働予定情報として、当該仮想計算機が稼働を開始する開始予定時刻と稼働を終了する終了予定時刻と、が登録された管理テーブルと、
    前記管理処理の予定時刻を設定する設定手段と、
    前記予定時刻から所定の期間内に前記開始予定時刻が含まれる前記仮想計算機を前記管理テーブから特定する特定手段と、
    前記特定手段によって特定された特定仮想計算機の予定負荷と、前記複数の物理計算機の一つ又は複数に既に配置されて稼働されている仮想計算機に関する負荷と、に基づいて、前記特定仮想計算機を配置すべき物理計算機を、当該特定仮想計算機の稼働前に前記複数の物理計算機の中から決定する決定手段と、
    を備える、
    計算機システム。
  2. 前記管理計算機は、稼働中の仮想計算機に関する負荷を、
    前記複数の物理計算機の夫々が仮想計算機に割当て可能なリソースの総量から、稼働している仮想計算機に割当てられたリソース量を減じた値から算出する、請求項1記載の計算機システム。
  3. 前記管理計算機は、前記複数の物理計算機の何れかで稼働中の仮想計算機を他の物理計算機に移行することなく、前記稼働が予定されている仮想計算機を前記複数の物理計算機の中から決定する、請求項1記載の計算機システム。
  4. 前記管理テーブルは、前記稼働することが予定されている仮想計算機の配置先物理計算機の情報を含み、
    前記管理計算機は、前記稼働予定されている仮想計算機を配置すべきとして決定された物理計算機が前記管理テーブルに含まれた配置先物理計算機と異なる場合には、前記決定された物理計算機の情報を前記管理テーブルに更新登録する、請求項1記載の計算機システム。
  5. 前記管理計算機は、前記複数の物理計算機の何れかで稼働中の仮想計算機を他の物理計算機に移行しながら、前記稼働が予定されている仮想計算機を前記複数の物理計算機の中から決定する、請求項1記載の計算機システム。
  6. 前記管理計算機は、
    前記稼働が予定されている仮想計算機を配置すべき目標物理計算機を決定後、前記稼働が予定されている仮想計算機に関する負荷前記複数の物理計算機の少なくとも一つで稼働している他の仮想計算機に関する負荷とに基づいて前記目標物理計算機の空メモリ容量の目標値を達成しているか否かを判定し、
    当該判定を否定する場合には、前記複数の物理計算機の少なくとも一つで稼働している、前記複数の仮想計算機の少なくとも一つの仮想計算機を他の物理計算機に移行し、前記判定を肯定する場合には、当該移行を行うことなく、前記複数の仮想計算機の前記複数の物理計算機に対する配置を決定する、請求項記載の計算機システム。
  7. 前記管理計算機は、前記他の物理計算機を、前記複数の物理計算機の中で、前記少なくとも一つの仮想計算機に割当てることができるリソース量が最も大きい物理計算機とする、請求項記載の計算機システム。
  8. 前記管理計算機は、稼働が予定されている仮想計算機が配置される目標物理計算機を決定する際、当該仮想計算機の稼働開始前に稼働した後稼働を終了する仮想計算機が前記目標物理計算機に配置されている場合、当該仮想計算機に関する負荷を前記目標物理計算機のリソース量から減じることなく、前記目標物理計算機を前記複数の物理計算機の中か決定する、請求項1記載の計算機システム。
  9. 前記管理計算機は、稼働中の仮想計算機に関する負荷を、前記複数の物理計算機の夫々が仮想計算機に割当て可能なリソースの総量から、稼働している仮想計算機に割当てられたリソース量を減じた値から算出し、
    前記稼働することが予定されている仮想計算機が登録された管理テーブルを備え、
    前記管理テーブルは、当該仮想計算機が稼働を開始する時刻の情報と終了する時刻の情報と、
    前記管理計算機は、さらに、予定時刻から規定期間内に前記開始する時刻が存在する前記稼働することが予定される仮想計算機を前記管理テーブルから抽出し、当該抽出した仮想計算機を配置すべき前記物理計算機を決定し、
    前記管理テーブルは、前記稼働することが予定されている仮想計算機の配置先物理計算機の情報を含み、
    前記管理計算機は、さらに、
    前記稼働予定されている仮想計算機を配置すべきとして決定された物理計算機が前記管理テーブルに含まれた配置先物理計算機と異なる場合には、前記決定された物理計算機の情報を前記管理テーブルに更新登録し、
    前記複数の物理計算機の何れかで稼働中の仮想計算機を他の物理計算機に移行しながら、前記稼働が予定されている仮想計算機を前記複数の物理計算機の中から決定し、
    前記稼働が予定されている仮想計算機を配置すべき目標物理計算機を決定後、前記稼働が予定されている仮想計算機に関する負荷と前記複数の物理計算機の少なくとも一つで稼働している他の仮想計算機に関する負荷とに基づいて、前記目標物理計算機の空メモリ容量の目標値を達成しているか否かを判定し、
    当該判定を否定する場合には、前記複数の物理計算機の少なくとも一つで稼働している、前記複数の仮想計算機の少なくとも一つの仮想計算機を他の物理計算機に移行し、前記判定を肯定する場合には、当該移行を行うことなく、前記複数の仮想計算機の前記複数の物理計算機に対する配置を決定し、
    前記他の物理計算機を、前記複数の物理計算機の中で、前記少なくとも一つの仮想計算機に割当てることができるリソース量が最も大きい物理計算機とし、
    稼働が予定されている仮想計算機が配置される目標物理計算機を決定する際、当該仮想計算機の稼働開始前に稼働した後稼働を終了する仮想計算機が前記目標物理計算機に配置されている場合、当該仮想計算機に関する負荷を前記目標物理計算機のリソース量から減じることなく、前記目標物理計算機を前記複数の物理計算機の中か決定する、請求項1記載の計算機システム。
  10. 複数の物理計算機と、
    前記複数の物理計算機に対して、複数の仮想計算機配置するための管理処理を実行する管理計算機と、
    を備える計算機システムの仮想計算機の最適配置方法において、
    前記管理計算機は、
    前記複数の物理計算機の少なくとも一つで稼働させることが予定されている一つ又は複数の仮想計算機と、当該仮想計算機の稼働予定情報として、当該仮想計算機が稼働を開始する開始予定時刻と稼働を終了する終了予定時刻と、が登録された管理テーブルを有し、
    前記管理処理の予定時刻を設定し、
    前記予定時刻から所定の期間内に前記開始予定時刻が含まれる前記仮想計算機を前記管理テーブから特定し、
    前記特定された特定仮想計算機の予定負荷と、前記複数の物理計算機の一つ又は複数に既に配置されて稼働されている仮想計算機に関する負荷と、に基づいて、前記特定仮想計算機を配置すべき物理計算機を、当該特定仮想計算機の稼働前に前記複数の物理計算機の中から決定する、
    計算機システムの仮想計算機の最適配置方法。
JP2013502047A 2011-03-03 2011-03-03 計算機システム、および、計算機システムにおける仮想計算機の最適配置方法 Active JP5412599B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2011/001271 WO2012117453A1 (ja) 2011-03-03 2011-03-03 計算機システム、および、計算機システムにおける仮想計算機の最適配置方法

Publications (2)

Publication Number Publication Date
JP5412599B2 true JP5412599B2 (ja) 2014-02-12
JPWO2012117453A1 JPWO2012117453A1 (ja) 2014-07-07

Family

ID=46757426

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013502047A Active JP5412599B2 (ja) 2011-03-03 2011-03-03 計算機システム、および、計算機システムにおける仮想計算機の最適配置方法

Country Status (3)

Country Link
US (1) US20130339956A1 (ja)
JP (1) JP5412599B2 (ja)
WO (1) WO2012117453A1 (ja)

Families Citing this family (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102959506B (zh) 2010-06-22 2017-04-26 慧与发展有限责任合伙企业 用于计划应用部署的方法和系统
JP5766346B2 (ja) * 2011-04-07 2015-08-19 ヒューレット−パッカード デベロップメント カンパニー エル.ピー.Hewlett‐Packard Development Company, L.P. ソフトウェア・オブジェクトをバックグラウンドで移動させる方法及び装置
CN103827823A (zh) * 2011-07-29 2014-05-28 惠普发展公司,有限责任合伙企业 迁移虚拟机
US9489222B2 (en) * 2011-08-24 2016-11-08 Radware, Ltd. Techniques for workload balancing among a plurality of physical machines
JP5725191B2 (ja) * 2011-09-22 2015-05-27 富士通株式会社 電源管理装置、電源管理方法および電源管理プログラム
US9137130B2 (en) * 2011-09-22 2015-09-15 Sap Se Dynamic network load forecasting
TW201324357A (zh) * 2011-12-01 2013-06-16 Univ Tunghai 虛擬機叢集之綠能管理方法
JP5887149B2 (ja) * 2012-01-25 2016-03-16 株式会社エヌ・ティ・ティ・データ 仮想マシン配置装置、仮想マシン配置方法
JP5862359B2 (ja) * 2012-02-23 2016-02-16 日本電気株式会社 シンクライアントシステム、接続管理サーバ、接続管理方法、及び接続管理プログラム
CN102724277B (zh) * 2012-05-04 2016-01-06 华为技术有限公司 虚拟机热迁移和部署的方法、服务器及集群系统
WO2013190649A1 (ja) * 2012-06-20 2013-12-27 富士通株式会社 仮想ディスクのマイグレーションに関する情報処理方法及び装置
US8966495B2 (en) * 2012-09-05 2015-02-24 Cisco Technology, Inc. Dynamic virtual machine consolidation
US9223608B2 (en) 2012-12-14 2015-12-29 Vmware, Inc. Systems and methods for finding solutions in distributed load balancing
US9582219B2 (en) 2013-03-12 2017-02-28 Netapp, Inc. Technique for rapidly converting between storage representations in a virtualized computing environment
EP2979180B1 (en) * 2013-03-27 2019-10-30 Keysight Technologies Singapore (Sales) Pte. Ltd. Methods, systems, and computer readable media for emulating virtualization resources
JP6040083B2 (ja) * 2013-03-29 2016-12-07 新日鉄住金ソリューションズ株式会社 管理サーバ装置、情報処理方法及びプログラム
US10425481B2 (en) * 2013-05-13 2019-09-24 Telefonaktiebolaget Lm Ericsson (Publ) Node in a telecommunications network, a virtual network element and methods for retrieving resource identification information
US9384059B2 (en) * 2013-05-31 2016-07-05 Hitachi, Ltd. Comparing resource costs between allocation plans in a load balance apparatus
JP2015022321A (ja) * 2013-07-16 2015-02-02 日本電気株式会社 仮想マシン管理装置、仮想マシン管理方法、及びプログラム
US9851988B1 (en) * 2013-09-04 2017-12-26 Amazon Technologies, Inc. Recommending computer sizes for automatically scalable computer groups
US11663025B2 (en) * 2013-09-23 2023-05-30 Bankvault Pty Ltd Maintenance of and caching of suspended virtual computers in a pool of suspended virtual computers
US9710308B1 (en) * 2013-12-24 2017-07-18 EMC IP Holding Company LLC Workflow for migration planning of data storage systems
JP6287321B2 (ja) * 2014-02-24 2018-03-07 富士通株式会社 情報処理装置、情報処理方法、および情報処理プログラム
US20150288767A1 (en) * 2014-04-03 2015-10-08 Centurylink Intellectual Property Llc Network Functions Virtualization Interconnection Hub
US9841991B2 (en) * 2014-05-12 2017-12-12 Netapp, Inc. Techniques for virtual machine migration
US10216531B2 (en) 2014-05-12 2019-02-26 Netapp, Inc. Techniques for virtual machine shifting
US10642635B2 (en) * 2014-06-07 2020-05-05 Vmware, Inc. Decentralized demand-based virtual machine migration management
JP2016110248A (ja) * 2014-12-03 2016-06-20 日本電信電話株式会社 仮想化実行装置、仮想化システム、および、リソース最適化方法
US9678793B2 (en) * 2015-02-26 2017-06-13 International Business Machines Corporation Resource-based job scheduling
JP6477097B2 (ja) * 2015-03-20 2019-03-06 富士通株式会社 情報処理プログラム、情報処理方法、および情報処理装置
JP6131979B2 (ja) * 2015-03-27 2017-05-24 日本電気株式会社 システム
JP6032314B2 (ja) * 2015-03-27 2016-11-24 日本電気株式会社 システム
US10158526B2 (en) 2015-03-27 2018-12-18 Nec Corporation System that manages server function
US10210079B2 (en) 2015-04-09 2019-02-19 Sungard Availability Services, Lp Touch free disaster recovery
US9836365B2 (en) 2015-04-09 2017-12-05 Sungard Availability Services, Lp Recovery execution system using programmatic generation of actionable workflows
US9727374B2 (en) 2015-04-21 2017-08-08 International Business Machines Corporation Temporary virtual machine migration for improved software application warmup
US9727366B2 (en) * 2015-04-23 2017-08-08 International Business Machines Corporation Machine learning for virtual machine migration plan generation
JP2016224582A (ja) * 2015-05-28 2016-12-28 富士通株式会社 制御方法、制御装置、及び制御プログラム
US9946564B2 (en) * 2015-06-23 2018-04-17 International Business Machines Corporation Adjusting virtual machine migration plans based on alert conditions related to future migrations
US10846119B2 (en) 2015-06-30 2020-11-24 Nec Corporation Virtualized network function management apparatus, virtual machine management apparatus, method for allocating resources to virtual network function, and program
JP6278938B2 (ja) * 2015-09-25 2018-02-14 ビッグローブ株式会社 ストレージ管理装置、ストレージ管理方法、及び、プログラム
WO2017066383A1 (en) * 2015-10-14 2017-04-20 Sungard Availability Services, Lp Automatic system disaster recovery
US9710305B2 (en) * 2015-11-12 2017-07-18 International Business Machines Corporation Virtual machine migration management
US10395219B1 (en) * 2015-12-18 2019-08-27 Amazon Technologies, Inc. Location policies for reserved virtual machine instances
US10341215B2 (en) 2016-04-06 2019-07-02 Keysight Technologies Singapore (Sales) Pte. Ltd. Methods, systems, and computer readable media for emulating network traffic patterns on a virtual machine
US9817592B1 (en) 2016-04-27 2017-11-14 Netapp, Inc. Using an intermediate virtual disk format for virtual disk conversion
JP2018060378A (ja) * 2016-10-05 2018-04-12 富士通株式会社 起動制御プログラム、起動制御方法及び起動制御装置
JP6969282B2 (ja) * 2017-10-25 2021-11-24 富士通株式会社 情報処理装置、情報処理システムおよび情報処理方法
US11323354B1 (en) 2020-10-09 2022-05-03 Keysight Technologies, Inc. Methods, systems, and computer readable media for network testing using switch emulation
US11483227B2 (en) 2020-10-13 2022-10-25 Keysight Technologies, Inc. Methods, systems and computer readable media for active queue management

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007136021A1 (ja) * 2006-05-24 2007-11-29 Nec Corporation 仮想マシン管理装置、仮想マシン管理方法およびプログラム
JP2010224756A (ja) * 2009-03-23 2010-10-07 Nec Corp 仮想マシン再配置システム、方法、プログラム、及び仮想マシン管理装置
WO2010122709A1 (ja) * 2009-04-23 2010-10-28 日本電気株式会社 若化処理装置、若化処理システム、コンピュータプログラムおよびデータ処理方法
WO2010140183A1 (ja) * 2009-06-01 2010-12-09 富士通株式会社 サーバ管理プログラム、管理サーバ、仮想サーバ配置方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070271560A1 (en) * 2006-05-18 2007-11-22 Microsoft Corporation Deploying virtual machine to host based on workload characterizations
US8146147B2 (en) * 2008-03-27 2012-03-27 Juniper Networks, Inc. Combined firewalls
JP5544967B2 (ja) * 2010-03-24 2014-07-09 富士通株式会社 仮想マシン管理プログラム及び仮想マシン管理装置
US9563479B2 (en) * 2010-11-30 2017-02-07 Red Hat, Inc. Brokering optimized resource supply costs in host cloud-based network using predictive workloads

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007136021A1 (ja) * 2006-05-24 2007-11-29 Nec Corporation 仮想マシン管理装置、仮想マシン管理方法およびプログラム
JP2010224756A (ja) * 2009-03-23 2010-10-07 Nec Corp 仮想マシン再配置システム、方法、プログラム、及び仮想マシン管理装置
WO2010122709A1 (ja) * 2009-04-23 2010-10-28 日本電気株式会社 若化処理装置、若化処理システム、コンピュータプログラムおよびデータ処理方法
WO2010140183A1 (ja) * 2009-06-01 2010-12-09 富士通株式会社 サーバ管理プログラム、管理サーバ、仮想サーバ配置方法

Also Published As

Publication number Publication date
US20130339956A1 (en) 2013-12-19
WO2012117453A1 (ja) 2012-09-07
JPWO2012117453A1 (ja) 2014-07-07

Similar Documents

Publication Publication Date Title
JP5412599B2 (ja) 計算機システム、および、計算機システムにおける仮想計算機の最適配置方法
JP5400482B2 (ja) 管理計算機、リソース管理方法、リソース管理プログラム、記録媒体および情報処理システム
CN101681268B (zh) 管理虚拟机存储器的系统、方法和程序
JP5830599B2 (ja) 計算機システム及びその管理システム
CN101727331B (zh) 升级活动虚拟机的客户操作系统的方法和设备
JP4684864B2 (ja) 記憶装置システム及び記憶制御方法
JP4659526B2 (ja) ストレージシステムにインストールされるプログラムのライセンスを管理する管理計算機、計算機システム及び制御方法
WO2012168967A1 (en) Storage apparatus and data management method
JP6383861B2 (ja) ストレージ管理計算機
JP5973089B2 (ja) ストレージシステムの移行方式および移行方法
JP7003692B2 (ja) 情報処理装置,情報処理システムおよび制御プログラム
JP5707265B2 (ja) 演算制御装置及び演算制御方法並びにプログラム、並列プロセッサ
US20160156568A1 (en) Computer system and computer resource allocation management method
JP6293683B2 (ja) 計算機システム及び計算機システムの性能障害の対処方法
JP6969282B2 (ja) 情報処理装置、情報処理システムおよび情報処理方法
US20150234671A1 (en) Management system and management program
JP4862067B2 (ja) キャッシュ制御装置及び方法
CN102981929A (zh) 磁盘镜像的管理方法和系统
CN106687926A (zh) 被克隆的虚拟机的负载均衡
US20110208941A1 (en) Scalable performance-based volume allocation for time-based storage access services
JP6115575B2 (ja) データセット多重度変更装置、サーバ、データセット多重度変更方法、およびコンピュータ・プログラム
US20220237016A1 (en) Apparatus for determining resource migration schedule
JP7125964B2 (ja) 計算機システムおよび管理方法
JP2013210683A (ja) オートスケーリング方法,オートスケーリングプログラムおよびコンピュータノード
JP7107981B2 (ja) 計算機システム

Legal Events

Date Code Title Description
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: 20131015

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131111

R150 Certificate of patent or registration of utility model

Ref document number: 5412599

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150