JPWO2008117470A1 - 仮想計算機制御プログラム、仮想計算機制御システムおよび仮想計算機移動方法 - Google Patents

仮想計算機制御プログラム、仮想計算機制御システムおよび仮想計算機移動方法 Download PDF

Info

Publication number
JPWO2008117470A1
JPWO2008117470A1 JP2009506182A JP2009506182A JPWO2008117470A1 JP WO2008117470 A1 JPWO2008117470 A1 JP WO2008117470A1 JP 2009506182 A JP2009506182 A JP 2009506182A JP 2009506182 A JP2009506182 A JP 2009506182A JP WO2008117470 A1 JPWO2008117470 A1 JP WO2008117470A1
Authority
JP
Japan
Prior art keywords
computer
virtual machine
virtual
memory
realized
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.)
Granted
Application number
JP2009506182A
Other languages
English (en)
Other versions
JP5088366B2 (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
Publication of JPWO2008117470A1 publication Critical patent/JPWO2008117470A1/ja
Application granted granted Critical
Publication of JP5088366B2 publication Critical patent/JP5088366B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

仮想計算機制御プログラム171は、他の計算機に対して、その計算機で実現されている仮想計算機のメモリ使用状況を問い合せる稼働状況問合せ部171cと、稼働状況問合せ部171cによって取得された情報に基づいて、他の計算機で実現されている仮想計算機の中から、当該の計算機で実現されている仮想計算機とスワップ可能な仮想計算機を選択するスワップ対象選択部171dと、当該の計算機で実現されている仮想計算機と、前記スワップ対象選択部171dによって選択された仮想計算機とをスワップするスワップ実行部171gとを有し、予め空き領域を用意することなく仮想計算機を他の計算機へ移動させることを可能にする。

Description

この発明は、計算機上に仮想計算機を実現し、それらの仮想計算機を制御する仮想計算機制御プログラムおよび仮想計算機制御システムと、その仮想計算機制御システムで実行される仮想計算機移動方法に関し、特に、予め空き領域を用意することなく仮想計算機を他の計算機へ移動させることができる仮想計算機制御プログラム、仮想計算機制御システムおよび仮想計算機移動方法に関する。
計算機上に実現された仮想計算機においてメモリの不足が生じた場合に、同一計算機上の仮想計算機間で未使用のメモリをやりとりしてメモリの不足を解消させる技術が知られている(例えば、特許文献1)。また、メモリの不足が生じた仮想計算機を、動作させたまま、メモリに余裕のある他の計算機へ移動させることにより、メモリ不足を解消させるホットマイグレーション技術も知られている(例えば、非特許文献1)。
ホットマイグレーション技術は、仮想計算機のメモリ不足だけでなく、CPU(Central Processing Unit)の演算能力やネットワークの通信容量等の他の資源の不足を解消させるためにも利用できる点において、特許文献1において開示されている技術よりも優れている。
特開平5−204760号公報 "VMware VMotion"、[online]、VMware, Inc.、[平成19年3月6日検索]、インターネット<URL:http://www.vmware.com/pdf/vmotion_datasheet.pdf>
しかしながら、ホットマイグレーション技術を用いて計算機間で仮想計算機を移動させるためには、移動先の計算機のメモリに、移動してくる仮想計算機を収容できるだけの大きさの空き領域を予め用意しておく必要があった。このため、かなりの大きさのメモリを未使用のまま常に確保しておかなければならず、資源の利用効率が悪いという問題があった。
この発明は、上述した従来技術による問題点を解消するためになされたものであり、予め空き領域を用意することなく仮想計算機を他の計算機へ移動させることができる仮想計算機制御プログラム、仮想計算機制御システムおよび仮想計算機移動方法を提供することを目的とする。
上述した課題を解決し、目的を達成するため、本発明の一つの態様では、計算機上に仮想計算機を実現し、該仮想計算機を制御する仮想計算機制御プログラムであって、他の計算機に対して、該計算機で実現されている仮想計算機のメモリ使用状況を問い合せる稼働状況問合せ手順と、前記稼働状況問合せ手順によって取得された情報に基づいて、他の計算機で実現されている仮想計算機の中から、当該の計算機で実現されている仮想計算機とスワップ可能な仮想計算機を選択するスワップ対象選択手順と、前記当該の計算機で実現されている仮想計算機と、前記スワップ対象選択手順によって選択された仮想計算機とをスワップするスワップ実行手順とをコンピュータに実行させることを特徴とする。
この発明の態様によれば、他の計算機から取得した仮想計算機のメモリ使用状況に基づいて、当該の計算機上の仮想計算機とスワップ可能な仮想計算機を選択し、選択した仮想計算機と当該の計算機上の仮想計算機をスワップすることとしたので、予め空き領域を用意することなく仮想計算機を他の計算機へ移動させることができる。
また、本発明の他の態様では、上記の発明の態様において、前記スワップ対象選択手順は、メモリ使用率が低い仮想計算機を優先して選択することを特徴とする。
この発明の態様によれば、メモリ使用率が低い仮想計算機をスワップ対象として選択することとしたので、スワップ実行後の各仮想計算機のメモリ使用量が平準化され、メモリを効率よく利用することができる。
また、本発明の他の態様では、上記の発明の態様において、当該の計算機で実現されている仮想計算機から未使用のメモリを回収して、前記スワップ対象選択手順によって選択された仮想計算機を移動させるための空き領域をメモリ空間上に作成するメモリ割当て調整手順をさらにコンピュータに実行させることを特徴とする。
この発明の態様によれば、仮想計算機から未使用のメモリを回収してスワップ用の空き領域を動的に作成することしたので、予め空き領域を用意することなく仮想計算機を他の計算機へ移動させることができる。
本発明の一つの態様によれば、他の計算機から取得した仮想計算機のメモリ使用状況に基づいて、当該の計算機上の仮想計算機とスワップ可能な仮想計算機を選択し、選択した仮想計算機と当該の計算機上の仮想計算機をスワップすることとしたので、予め空き領域を用意することなく仮想計算機を他の計算機へ移動させることができるという効果を奏する。
また、本発明の一つの態様によれば、メモリ使用率が低い仮想計算機をスワップ対象として選択することとしたので、スワップ実行後の各仮想計算機のメモリ使用量が平準化され、メモリを効率よく利用することができるという効果を奏する。
また、本発明の一つの態様によれば、仮想計算機から未使用のメモリを回収してスワップ用の空き領域を動的に作成することしたので、予め空き領域を用意することなく仮想計算機を他の計算機へ移動させることができるという効果を奏する。
図1−1は、仮想計算機にメモリ不足が生じた場面を示す図である。 図1−2は、空き領域を作成する場面を示す図である。 図1−3は、スワップを実行する場面を示す図である。 図1−4は、仮想計算機の移動が完了した場面を示す図である。 図1−5は、メモリ分配が完了した場面を示す図である。 図2は、図1−1に示した計算機の構成を示すブロック図である。 図3は、仮想計算機制御プログラムの構成を示す図である。 図4は、仮想計算機制御プログラムが実行状態にある場合における負荷状況テーブルの一例を示す図である。 図5は、稼働状況問合せ部が問合せを行った後におけるメモリ割当て状況テーブルの一例を示す図である。 図6は、仮想計算機制御プログラムが実行状態となった仮想計算機制御プロセスが、仮想計算機のメモリ不足を検出した場合に実行する処理手順を示すフローチャートである。 図7は、スワップ対象選択処理の処理手順を示すフローチャートである。
符号の説明
1、2、3 計算機
4 ネットワーク
10、20、30 ホストOS
11、21、31 仮想計算機制御プロセス
12a〜12c、22a〜22c、32a〜32c、 ゲストOS
13、23 空き領域
110 CPU
120 入力装置
130 モニタ
140 媒体読取り装置
150 ネットワークインターフェース装置
160 RAM
170 ハードディスク装置
171 仮想計算機制御プログラム
171a 生存確認部
171b 稼働状況監視部
171c 稼働状況問合せ部
171d スワップ対象選択部
171e メモリ割当て調整部
171f メモリ割当て調整依頼部
171g スワップ実行部
171h 負荷状況テーブル
171i メモリ割当て状況テーブル
172 仮想計算機イメージデータ
180 バス
以下に、本発明に係る仮想計算機制御プログラム、仮想計算機制御システムおよび仮想計算機移動方法の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
まず、具体例を示しながら、本実施例に係る仮想計算機移動方法の概要について説明する。本実施例に係る仮想計算機移動方法は、仮想計算機を他の計算機上の仮想計算機とスワップすることにより、予めメモリ上に空き領域を用意しておくことなく、計算機間で仮想計算機を移動させることを可能にする。
図1−1は、仮想計算機にメモリ不足が生じた場面を示す図である。同図に示すように、この例では、計算機1〜3の3台の計算機が、ネットワーク4に接続されている。計算機1〜3は、自装置上で仮想計算機を動作させる仮想計算機制御システムとして稼働している。
計算機1は、ホストOS10上で仮想計算機制御プロセス11を動作させ、さらに、仮想計算機制御プロセス11が実現する仮想計算機上で、ゲストOS12a〜12cを動作させており、CPU負荷は90%になっている。仮想計算機制御プロセス11は、仮想計算機を実現し、仮想計算機上でゲストOSを動作させるために必要な各種制御を行うプロセスである。
そして、ゲストOS12aを動作させる仮想計算機とゲストOS12bを動作させる仮想計算機は、割り当てられた2GByteのメモリのうち、1.5GByteを使用しており、メモリ使用率は、75%となっている。また、ゲストOS12cを動作させる仮想計算機は、割り当てられた2GByteのメモリのうち、2GByteを使用しており、メモリ使用率は、100%となっている。なお、計算機1のCPU負荷が90%と高いのは、ゲストOS12cにおいて高負荷の処理が実行されているためであるものとする。
計算機2は、ホストOS20上で仮想計算機制御プロセス11と同様の仮想計算機制御プロセス21を動作させ、さらに、仮想計算機制御プロセス21が実現する仮想計算機上で、ゲストOS22a〜22cを動作させており、CPU負荷は60%になっている。そして、ゲストOS22aを動作させる仮想計算機は、割り当てられた2GByteのメモリのうち、1.5GByteを使用しており、メモリ使用率は、75%となっている。また、ゲストOS22bを動作させる仮想計算機とゲストOS22cを動作させる仮想計算機は、割り当てられた1.5GByteのメモリのうち、0.5GByteを使用しており、メモリ使用率は、33%となっている。
計算機3は、ホストOS30上で仮想計算機制御プロセス11と同様の仮想計算機制御プロセス31を動作させ、さらに、仮想計算機制御プロセス31が実現する仮想計算機上で、ゲストOS32a〜32cを動作させており、CPU負荷は80%になっている。そして、ゲストOS32aを動作させる仮想計算機は、割り当てられた2GByteのメモリのうち、1.5GByteを使用しており、メモリ使用率は、75%となっている。また、ゲストOS32bを動作させる仮想計算機とゲストOS32cを動作させる仮想計算機は、割り当てられた1.5GByteのメモリのうち、0.5GByteを使用しており、メモリ使用率は、33%となっている。
この例では、ゲストOS12cを動作させる仮想計算機のメモリ使用率が100%となり、メモリ不足の状態となっている。仮想計算機制御プロセス11は、ゲストOS12cを動作させる仮想計算機のメモリ不足を検出すると、仮想計算機制御プロセス21および31に対して稼働状況情報の送信を依頼する。ここでいう稼働状況情報とは、少なくとも、計算機の負荷と、各仮想計算機のメモリ割当て量およびメモリ使用量を含んだ情報である。
そして、仮想計算機制御プロセス11は、仮想計算機制御プロセス21および31から稼働状況情報を受信すると、ゲストOS12cを動作させている仮想計算機を、どの仮想計算機とスワップするかを決定する。スワップ対象は、単体の仮想計算機もしくは複数の仮想計算機の組合せである。
スワップ対象の選択は、資源の平準化を図るため、負荷の低い計算機で動作しており、メモリ使用率が低い仮想計算機もしくはその組合せを優先して行われる。この基準により、この例では、ゲストOS22bを動作させる仮想計算機とゲストOS22cを動作させる仮想計算機の組合せがスワップ対象として選択される。
図1−2は、空き領域を作成する場面を示す図である。スワップ対象の選択を終えると、仮想計算機制御プロセス11は、自身が実現している各仮想計算機から未使用のメモリを回収して、スワップ対象の仮想計算機を移動させるための空き領域を作成する。この例では、仮想計算機制御プロセス11は、ゲストOS12aを動作させる仮想計算機とゲストOS12bを動作させる仮想計算機から0.5GByteずつのメモリを回収し、1Gbyteの大きさの空き領域13を作成している。
また、仮想計算機制御プロセス11は、スワップ対象の仮想計算機が存在する計算機2に対して、各仮想計算機から未使用のメモリを回収して、ゲストOS12cが動作している仮想計算機を移動させるための空き領域を作成するように依頼する。この例では、仮想計算機制御プロセス21は、仮想計算機制御プロセス11の依頼に従って、ゲストOS22aを動作させる仮想計算機から0.5Gbyteのメモリを回収し、ゲストOS22bを動作させる仮想計算機とゲストOS22cを動作させる仮想計算機から1GByteずつのメモリを回収し、2.5Gbyteの大きさの空き領域23を作成している。
図1−3は、スワップを実行する場面を示す図である。計算機1と計算機2で空き領域の作成が完了すると、仮想計算機制御プロセス11は、ゲストOS12cを動作させる仮想計算機を計算機2に作成された空き領域23へ移動させる。これと平行して、仮想計算機制御プロセス11は、仮想計算機制御プロセス21に依頼し、ゲストOS22bを動作させる仮想計算機とゲストOS22cを動作させる仮想計算機を計算機1に作成された空き領域13へ移動させる。仮想計算機の移動は、従来のホットマイグレーション技術を利用して、仮想計算機を停止させることなく実現される。
図1−4は、仮想計算機の移動が完了した場面を示す図である。同図に示すように、仮想計算機の移動が完了すると、計算機1の空き領域13の大きさは2Gbyteとなり、計算機2の空き領域23の大きさは1.5Gbyteとなる。仮想計算機制御プロセス11および仮想計算機制御プロセス21は、これらの未使用のメモリを各仮想計算機へ分配する。
図1−5は、メモリ分配が完了した場面を示す図である。この例では、スワップの実行前から存在していた仮想計算機のメモリ割当量をスワップ前の状態に戻し、残りの未使用のメモリを新たに移動してきた仮想計算機へ割り当てるロジックでメモリの分配を行っている。スワップ実行後の計算機1および2の稼働状況は以下のようになっている。
計算機1の仮想計算機制御プロセス11が実現する仮想計算機上では、ゲストOS12aおよび12bと、ゲストOS22bおよび22cとが動作し、高負荷の処理を実行していたゲストOS12cが移動したために、計算機1のCPU負荷は80%へ低化している。そして、ゲストOS12aを動作させる仮想計算機とゲストOS12bを動作させる仮想計算機は、割り当てられた2GByteのメモリのうち、1.5GByteを使用しており、メモリ使用率は、75%となっている。また、ゲストOS22bを動作させる仮想計算機とゲストOS22cを動作させる仮想計算機は、割り当てられた1GByteのメモリのうち、0.5GByteを使用しており、メモリ使用率は、50%となっている。
計算機2の仮想計算機制御プロセス21が実現する仮想計算機上では、ゲストOS22aとゲストOS12cが動作し、高負荷の処理を実行するゲストOS12cが移動してきたために、計算機のCPU負荷は70%へ増化している。そして、ゲストOS22aを動作させる仮想計算機は、割り当てられた2GByteのメモリのうち、1.5GByteを使用しており、メモリ使用率は、75%となっている。また、ゲストOS12cを動作させる仮想計算機は、割り当てられた3GByteのメモリのうち、2GByteを使用しており、メモリ使用率は、66%となっている。
以上のように、本実施例に係る仮想計算機移動方法では、メモリ不足となった仮想計算機を、他の計算機上の1ないし複数の仮想計算機とスワップすることにより、移動先に予め未使用の領域を用意しておくことなく、メモリ不足となった仮想計算機を他の計算機へ移動させ、メモリ不足を解消させることができる。
また、本実施例に係る仮想計算機移動方法では、メモリ使用率が低い仮想計算機またはその組合せをスワップ対象として選択することとしているため、スワップ実施後の各仮想計算機のメモリ使用率が平準化される。また、CPU負荷の低い計算機で稼働している仮想計算機またはその組合せをスワップ対象として選択することとしているため、各計算機のCPU負荷も平準化される。
次に、仮想計算機制御プロセス11の場合を例にして、仮想計算機制御プロセスの起動の仕組みについて説明する。図2は、図1−1に示した計算機1の構成を示すブロック図である。同図に示すように、計算機1は、各種演算処理を実行するCPU110と、ユーザからのデータの入力を受け付ける入力装置120と、各種情報を表示するモニタ130と、記録媒体からプログラム等を読み取る媒体読取り装置140と、ネットワークを介して他のコンピュータとの間でデータの授受を行うネットワークインターフェース装置150と、各種情報を一時記憶するRAM160と、ハードディスク装置170とをバス180で接続して構成される。
ハードディスク装置170には、仮想計算機制御プログラム171が記憶される。そして、CPU110が仮想計算機制御プログラム171をハードディスク装置170から読み出してRAM160に展開することにより、仮想計算機制御プログラム171は、仮想計算機制御プロセス11として機能するようになる。
仮想計算機制御プロセス11は、ハードディスク装置170に記憶されている仮想計算機イメージデータ172を読み出して、自身に割り当たられている仮想記憶上の領域に展開することにより、仮想計算機を実現し、仮想計算機イメージデータ172に含まれるゲストOSをその上で起動させる。
起動したゲストOSは、やはり仮想計算機イメージデータ172に含まれるアプリケーションを起動し、各種サービスの提供を開始させる。そして、仮想計算機制御プロセス11は、ゲストOSや、ゲストOSから起動されたアプリケーションを仮想計算機上で動作させるために必要な各種制御を実行する。
次に、図2に示した仮想計算機制御プログラム171の構成について説明する。図3は、仮想計算機制御プログラム171の構成を示す図である。なお、図3においては、説明を簡単にするため、仮想計算機のスワップと関連の無い構成の図示を省略している。
同図に示すように、仮想計算機制御プログラム171は、生存確認部171aと、稼働状況監視部171bと、稼働状況問合せ部171cと、スワップ対象選択部171dと、メモリ割当て調整部171eと、メモリ割当て調整依頼部171fと、スワップ実行部171gと、負荷状況テーブル171hと、メモリ割当て状況テーブル171iとを有する。
生存確認部171aは、生存確認パケットを他の仮想計算機制御プロセスとやりとりすることにより、稼働中の仮想計算機制御プロセスを発見し、発見した仮想計算機制御プロセスの起動状態を監視する処理部である。生存確認部171aは、新たに発見した仮想計算機制御プロセスを負荷状況テーブル171hに登録するとともに、負荷状況テーブル171hに登録されている各仮想計算機制御プロセスの状態を負荷状況テーブル171hに設定する。
図4は、仮想計算機制御プログラム171が実行状態にある場合における負荷状況テーブル171hの一例を示す図である。同図に示すように、負荷状況テーブル171hは、ホスト名、ステータス、負荷といった項目を有し、生存確認部171aが発見した仮想計算機制御プロセス毎に行が登録される。
ホスト名は、仮想計算機制御プロセスが動作している計算機のホスト名が設定される項目である。ステータスは、仮想計算機制御プロセスの現在の状態が設定される項目であり、“alive”もしくは“disconnected”のいずれかの値が設定される。“alive”は、当該の仮想計算機制御プロセスが正常に動作していることを示し、“disconnected”は、当該の仮想計算機制御プロセスとの通信が不能になっていることを示す。
負荷は、仮想計算機制御プロセスが動作している計算機のCPU負荷が設定される項目であり、稼働状況問合せ部171cによって設定される。なお、仮想計算機制御プロセスが動作している計算機の負荷として、CPU負荷以外に、ディスク入出力量やネットワーク通信量等を用いることとしてもよい。
稼働状況監視部171bは、当該の仮想計算機制御プロセスが動作している計算機の負荷と、当該の仮想計算機制御プロセス上で実現されている各仮想計算機のメモリ割当て量およびメモリ使用量を監視する処理部である。また、稼働状況監視部171bは、他の仮想計算機制御プロセスから当該の仮想計算機制御プロセスの稼働状況について問合せがあった場合に、監視内容を応答する。
稼働状況問合せ部171cは、稼働状況監視部171bにおいて当該の仮想計算機制御プロセス上で実現されている仮想計算機のメモリ不足が検知された場合に、他の仮想計算機制御プロセスに稼働状況を問合せる処理部である。稼働状況問合せ部171cは、負荷状況テーブル171hにおいてステータスの値が“alive”となっている仮想計算機制御プロセスに対して問合せを行い、応答に含まれる計算機の負荷を負荷状況テーブル171hに設定し、メモリの使用状況をメモリ割当て状況テーブル171iに設定する。
図5は、稼働状況問合せ部171cが問合せを行った後におけるメモリ割当て状況テーブル171iの一例を示す図である。同図に示すように、メモリ割当て状況テーブル171iは、ホスト名、VMID、メモリ割当て量、メモリ使用量、メモリ使用率といった項目を有し、仮想計算機制御プロセス上で動作している仮想計算機毎に行が登録される。
ホスト名は、仮想計算機制御プロセスが動作している計算機のホスト名が設定される項目であり、VMIDは、仮想計算機制御プロセス上で実現されている仮想計算機の識別番号が設定される項目である。メモリ割当て量は、当該の仮想計算機に割り当てられているメモリ量が設定される項目であり、メモリ使用量は、当該の仮想計算機が現在使用しているメモリの量が設定される項目である。メモリ使用率は、メモリ割当て量とメモリ使用量から計算された当該の仮想計算機のメモリ使用率が設定される項目である。
スワップ対象選択部171dは、稼働状況問合せ部171cの問合せ結果に基づいて、メモリ不足となった仮想計算機とスワップする対象の仮想計算機を選択する処理部である。スワップ対象は、1つの仮想計算機であってもよいし、複数の仮想計算機の組合せであってもよい。スワップ対象選択部171dは、資源の平準化を図るため、計算機の負荷が低く、メモリ使用率が低い仮想計算機またはその組み合わせをスワップ対象として選択する。
メモリ割当て調整部171eは、各仮想計算機から未使用のメモリを回収して、仮想計算機のスワップを実行するために必要な空き領域を作成する処理部である。メモリ割当て調整部171eは、他の仮想計算機制御プロセスから空き領域の作成を依頼された場合も同様の処理を行う。また、メモリ割当て調整部171eは、仮想計算機のスワップが完了した後に、空き領域を各仮想計算機へ分配する処理も行う。
メモリ割当て調整依頼部171fは、スワップ対象の仮想計算機を実現させている仮想計算機制御プロセスに対して、仮想計算機のスワップを実行するために必要な空き領域の作成を依頼する処理部である。スワップ実行部171gは、仮想計算機をスワップ先へ移動させるための処理を実行する処理部である。
次に、仮想計算機制御プログラム171の処理手順について説明する。図6は、仮想計算機制御プログラム171が実行状態となった仮想計算機制御プロセス11が、仮想計算機のメモリ不足を検出した場合に実行する処理手順を示すフローチャートである。
同図に示すように、稼働状況監視部171bにおいて仮想計算機のメモリ不足が検出されると(ステップS101)、稼働状況問合せ部171cは、負荷状況テーブル171hを参照して、ステータスが“alive”である他の仮想計算機制御プロセスに対して負荷状況と各仮想計算機のメモリ使用状況を問い合せる(ステップS102)。
問合せを受けた他の仮想計算機制御プロセスは、自身が動作している計算機の負荷状況と、自身が実現している各仮想計算機のメモリ割当て量およびメモリ使用量を問合せ元へ応答する(ステップS201)。そして、稼働状況問合せ部171cが全ての応答が受信し、その内容を負荷状況テーブル171hおよびメモリ割当て状況テーブル171iに保存した後、スワップ対象選択部171dが、後述するスワップ対象選択処理を実行して、メモリ不足となった仮想計算機のスワップ対象を選択する(ステップS103)。
ここで、スワップ対象選択部171dがスワップ対象をみつけることができなかった場合は(ステップS104否定)、所定の待機時間をおいた後、ステップS102から処理が再開される。一方、スワップ対象を選択できた場合は(ステップS104肯定)、メモリ割当て調整依頼部171fが、スワップ対象の仮想計算機を実現している仮想計算機制御プロセスに対して、各仮想計算機から未使用のメモリを回収して空き領域を作成するように依頼し(ステップS105)、メモリ割当て調整部171eが、当該の仮想計算機制御プロセスが実現している各仮想計算機から未使用のメモリを回収して空き領域を作成する(ステップS106)。
空き領域の作成を依頼された他の仮想計算機制御プロセスは、自身が実現している各仮想計算機から未使用のメモリを回収して空き領域を作成し(ステップS202)、作成完了後、空き領域の作成を完了した旨を応答する(ステップS203)。こうして、空き領域が作成された後、双方の仮想計算機制御プロセスは、対象となっている仮想計算機を相手の空き領域に相互に移動させるスワップ処理を実行し(ステップS107および204)、スワップ処理の完了後に、空き領域のメモリを各仮想計算機へ再分配する(ステップS108および205)。
図7は、スワップ対象選択処理の処理手順を示すフローチャートである。同図に示すように、スワップ対象選択部171dは、稼働状況監視部171bから各仮想計算機のメモリ使用状況を取得し、各仮想計算機の未使用のメモリの合計を算出することにより、当該の仮想計算機制御プロセスで確保できる空き領域の大きさを求める(ステップS301)。
そして、負荷状況テーブル171hを参照して負荷が低い順に仮想計算機制御プロセスを1件ずつ選択していき(ステップS302)、仮想計算機制御プロセスを1件選択するごとに(ステップS303否定)、メモリ割当て状況テーブル171iを参照して、選択した仮想計算機制御プロセスによって実現されている各仮想計算機の未使用のメモリの合計を算出することにより、相手側の仮想計算機制御プロセスで確保できる空き領域の大きさを求める(ステップS304)。
ここで、相手側の仮想計算機制御プロセスで確保できる空き領域が、メモリ不足が検出された仮想計算機のメモリ使用量よりも小さい場合、すなわち、メモリ不足が検出された仮想計算機を相手方に転送できない場合は(ステップS305否定)、スワップ対象選択部171dは、ステップS302へ戻って、次の仮想計算機制御プロセスの選択を試みる。
一方、メモリ不足が検出された仮想計算機を相手方に転送できる場合は(ステップS305肯定)、スワップ対象選択部171dは、選択した仮想計算機制御プロセスによって実現されている仮想計算機の全ての組合せを作成する(ステップS306)。ここで、作成される仮想計算機の組合せには、一つの仮想計算機からなるものも含まれる。例えば、図5に示したメモリ割当て状況テーブル171iの例において、「host01」というホスト名の計算機で動作している仮想計算機制御プロセスが相手側として選択されている場合、以下の7つの組合せが生成される。
OS1−1
OS1−2
OS1−3
OS1−1およびOS1−2
OS1−1およびOS1−3
OS1−2およびOS1−3
OS1−1、OS1−2およびOS1−3
そして、スワップ対象選択部171dは、作成した組合せ単位でメモリ割当て量、メモリ使用量およびメモリ使用率を算出する(ステップS307)。そして、メモリ使用率が低い順に組合せを1件ずつ選択していき(ステップS308)、選択した組合せのメモリ使用量が当該の仮想計算機制御プロセスで確保できる空き領域よりも小さければ、すなわち、選択した組合せを当該の仮想計算機制御プロセスで確保できる空き領域へ転送できる場合は(ステップS310肯定)、選択した組合せをスワップ対象に選択して処理を終了する(ステップS311)。
ここで、当該の仮想計算機制御プロセスで確保できる空き領域へ転送できる組合せが無かった場合は(ステップS309肯定)、スワップ対象選択部171dは、ステップS302へ戻って、次の仮想計算機制御プロセスの選択を試みる。
そして、ステップS302において、全ての仮想計算機制御プロセスを選択済みであった場合は(ステップS303肯定)、スワップ対象選択部171dは、スワップは不可能であると判定して処理を終了する(ステップS312)。
上述したように、本実施例では、他の計算機から取得した仮想計算機のメモリ使用状況に基づいて、当該の計算機上の仮想計算機とスワップ可能な仮想計算機を選択し、選択した仮想計算機と当該の計算機上の仮想計算機をスワップすることとしたので、予め空き領域を用意することなく仮想計算機を他の計算機へ移動させることができる。
なお、上記の実施例では、仮想計算機のメモリ不足をトリガとして仮想計算機のスワップを行う例を示したが、CPUの処理能力の不足やネットワークの帯域の不足のような他の資源の不足等をトリガとして仮想計算機のスワップを行うこととしてもよい。また、上記の実施例では、スワップされる仮想計算機の数の対応が、1対1もしくは1対多である場合の例を示したが、多対多もしくは多対1であってもよい。
また、上記の実施例では、仮想計算機から未使用のメモリを回収してスワップ用の空き領域を作成する例を示したが、未使用のメモリを回収しただけではスワップに必要な大きさの空き領域を作成することができない場合は、一定の割合で仮想計算機から使用中のメモリをさらに回収することとしてもよい。
以上のように、本発明に係る仮想計算機制御プログラム、仮想計算機制御システムおよび仮想計算機移動方法は、仮想計算機を他の計算機へ移動させる場合に有用であり、特に、予め空き領域を用意することなく仮想計算機を他の計算機へ移動させることが必要な場合に適している。
この発明は、計算機上に仮想計算機を実現し、それらの仮想計算機を制御する仮想計算機制御プログラムおよび仮想計算機制御システムと、その仮想計算機制御システムで実行される仮想計算機移動方法に関し、特に、予め空き領域を用意することなく仮想計算機を他の計算機へ移動させることができる仮想計算機制御プログラム、仮想計算機制御システムおよび仮想計算機移動方法に関する。
計算機上に実現された仮想計算機においてメモリの不足が生じた場合に、同一計算機上の仮想計算機間で未使用のメモリをやりとりしてメモリの不足を解消させる技術が知られている(例えば、特許文献1)。また、メモリの不足が生じた仮想計算機を、動作させたまま、メモリに余裕のある他の計算機へ移動させることにより、メモリ不足を解消させるホットマイグレーション技術も知られている(例えば、非特許文献1)。
ホットマイグレーション技術は、仮想計算機のメモリ不足だけでなく、CPU(Central Processing Unit)の演算能力やネットワークの通信容量等の他の資源の不足を解消させるためにも利用できる点において、特許文献1において開示されている技術よりも優れている。
特開平5−204760号公報 "VMware VMotion"、[online]、VMware, Inc.、[平成19年3月6日検索]、インターネット<URL:http://www.vmware.com/pdf/vmotion_datasheet.pdf>
しかしながら、ホットマイグレーション技術を用いて計算機間で仮想計算機を移動させるためには、移動先の計算機のメモリに、移動してくる仮想計算機を収容できるだけの大きさの空き領域を予め用意しておく必要があった。このため、かなりの大きさのメモリを未使用のまま常に確保しておかなければならず、資源の利用効率が悪いという問題があった。
この発明は、上述した従来技術による問題点を解消するためになされたものであり、予め空き領域を用意することなく仮想計算機を他の計算機へ移動させることができる仮想計算機制御プログラム、仮想計算機制御システムおよび仮想計算機移動方法を提供することを目的とする。
上述した課題を解決し、目的を達成するため、本発明の一つの態様では、計算機上に仮想計算機を実現し、該仮想計算機を制御する仮想計算機制御プログラムであって、他の計算機に対して、該計算機で実現されている仮想計算機のメモリ使用状況を問い合せる稼働状況問合せ手順と、前記稼働状況問合せ手順によって取得された情報に基づいて、他の計算機で実現されている仮想計算機の中から、当該の計算機で実現されている仮想計算機とスワップ可能な仮想計算機を選択するスワップ対象選択手順と、前記当該の計算機で実現されている仮想計算機と、前記スワップ対象選択手順によって選択された仮想計算機とをスワップするスワップ実行手順とをコンピュータに実行させることを特徴とする。
この発明の態様によれば、他の計算機から取得した仮想計算機のメモリ使用状況に基づいて、当該の計算機上の仮想計算機とスワップ可能な仮想計算機を選択し、選択した仮想計算機と当該の計算機上の仮想計算機をスワップすることとしたので、予め空き領域を用意することなく仮想計算機を他の計算機へ移動させることができる。
また、本発明の他の態様では、上記の発明の態様において、前記スワップ対象選択手順は、メモリ使用率が低い仮想計算機を優先して選択することを特徴とする。
この発明の態様によれば、メモリ使用率が低い仮想計算機をスワップ対象として選択することとしたので、スワップ実行後の各仮想計算機のメモリ使用量が平準化され、メモリを効率よく利用することができる。
また、本発明の他の態様では、上記の発明の態様において、当該の計算機で実現されている仮想計算機から未使用のメモリを回収して、前記スワップ対象選択手順によって選択された仮想計算機を移動させるための空き領域をメモリ空間上に作成するメモリ割当て調整手順をさらにコンピュータに実行させることを特徴とする。
この発明の態様によれば、仮想計算機から未使用のメモリを回収してスワップ用の空き領域を動的に作成することしたので、予め空き領域を用意することなく仮想計算機を他の計算機へ移動させることができる。
本発明の一つの態様によれば、他の計算機から取得した仮想計算機のメモリ使用状況に基づいて、当該の計算機上の仮想計算機とスワップ可能な仮想計算機を選択し、選択した仮想計算機と当該の計算機上の仮想計算機をスワップすることとしたので、予め空き領域を用意することなく仮想計算機を他の計算機へ移動させることができるという効果を奏する。
また、本発明の一つの態様によれば、メモリ使用率が低い仮想計算機をスワップ対象として選択することとしたので、スワップ実行後の各仮想計算機のメモリ使用量が平準化され、メモリを効率よく利用することができるという効果を奏する。
また、本発明の一つの態様によれば、仮想計算機から未使用のメモリを回収してスワップ用の空き領域を動的に作成することしたので、予め空き領域を用意することなく仮想計算機を他の計算機へ移動させることができるという効果を奏する。
以下に、本発明に係る仮想計算機制御プログラム、仮想計算機制御システムおよび仮想計算機移動方法の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
まず、具体例を示しながら、本実施例に係る仮想計算機移動方法の概要について説明する。本実施例に係る仮想計算機移動方法は、仮想計算機を他の計算機上の仮想計算機とスワップすることにより、予めメモリ上に空き領域を用意しておくことなく、計算機間で仮想計算機を移動させることを可能にする。
図1−1は、仮想計算機にメモリ不足が生じた場面を示す図である。同図に示すように、この例では、計算機1〜3の3台の計算機が、ネットワーク4に接続されている。計算機1〜3は、自装置上で仮想計算機を動作させる仮想計算機制御システムとして稼働している。
計算機1は、ホストOS10上で仮想計算機制御プロセス11を動作させ、さらに、仮想計算機制御プロセス11が実現する仮想計算機上で、ゲストOS12a〜12cを動作させており、CPU負荷は90%になっている。仮想計算機制御プロセス11は、仮想計算機を実現し、仮想計算機上でゲストOSを動作させるために必要な各種制御を行うプロセスである。
そして、ゲストOS12aを動作させる仮想計算機とゲストOS12bを動作させる仮想計算機は、割り当てられた2GByteのメモリのうち、1.5GByteを使用しており、メモリ使用率は、75%となっている。また、ゲストOS12cを動作させる仮想計算機は、割り当てられた2GByteのメモリのうち、2GByteを使用しており、メモリ使用率は、100%となっている。なお、計算機1のCPU負荷が90%と高いのは、ゲストOS12cにおいて高負荷の処理が実行されているためであるものとする。
計算機2は、ホストOS20上で仮想計算機制御プロセス11と同様の仮想計算機制御プロセス21を動作させ、さらに、仮想計算機制御プロセス21が実現する仮想計算機上で、ゲストOS22a〜22cを動作させており、CPU負荷は60%になっている。そして、ゲストOS22aを動作させる仮想計算機は、割り当てられた2GByteのメモリのうち、1.5GByteを使用しており、メモリ使用率は、75%となっている。また、ゲストOS22bを動作させる仮想計算機とゲストOS22cを動作させる仮想計算機は、割り当てられた1.5GByteのメモリのうち、0.5GByteを使用しており、メモリ使用率は、33%となっている。
計算機3は、ホストOS30上で仮想計算機制御プロセス11と同様の仮想計算機制御プロセス31を動作させ、さらに、仮想計算機制御プロセス31が実現する仮想計算機上で、ゲストOS32a〜32cを動作させており、CPU負荷は80%になっている。そして、ゲストOS32aを動作させる仮想計算機は、割り当てられた2GByteのメモリのうち、1.5GByteを使用しており、メモリ使用率は、75%となっている。また、ゲストOS32bを動作させる仮想計算機とゲストOS32cを動作させる仮想計算機は、割り当てられた1.5GByteのメモリのうち、0.5GByteを使用しており、メモリ使用率は、33%となっている。
この例では、ゲストOS12cを動作させる仮想計算機のメモリ使用率が100%となり、メモリ不足の状態となっている。仮想計算機制御プロセス11は、ゲストOS12cを動作させる仮想計算機のメモリ不足を検出すると、仮想計算機制御プロセス21および31に対して稼働状況情報の送信を依頼する。ここでいう稼働状況情報とは、少なくとも、計算機の負荷と、各仮想計算機のメモリ割当て量およびメモリ使用量を含んだ情報である。
そして、仮想計算機制御プロセス11は、仮想計算機制御プロセス21および31から稼働状況情報を受信すると、ゲストOS12cを動作させている仮想計算機を、どの仮想計算機とスワップするかを決定する。スワップ対象は、単体の仮想計算機もしくは複数の仮想計算機の組合せである。
スワップ対象の選択は、資源の平準化を図るため、負荷の低い計算機で動作しており、メモリ使用率が低い仮想計算機もしくはその組合せを優先して行われる。この基準により、この例では、ゲストOS22bを動作させる仮想計算機とゲストOS22cを動作させる仮想計算機の組合せがスワップ対象として選択される。
図1−2は、空き領域を作成する場面を示す図である。スワップ対象の選択を終えると、仮想計算機制御プロセス11は、自身が実現している各仮想計算機から未使用のメモリを回収して、スワップ対象の仮想計算機を移動させるための空き領域を作成する。この例では、仮想計算機制御プロセス11は、ゲストOS12aを動作させる仮想計算機とゲストOS12bを動作させる仮想計算機から0.5GByteずつのメモリを回収し、1Gbyteの大きさの空き領域13を作成している。
また、仮想計算機制御プロセス11は、スワップ対象の仮想計算機が存在する計算機2に対して、各仮想計算機から未使用のメモリを回収して、ゲストOS12cが動作している仮想計算機を移動させるための空き領域を作成するように依頼する。この例では、仮想計算機制御プロセス21は、仮想計算機制御プロセス11の依頼に従って、ゲストOS22aを動作させる仮想計算機から0.5Gbyteのメモリを回収し、ゲストOS22bを動作させる仮想計算機とゲストOS22cを動作させる仮想計算機から1GByteずつのメモリを回収し、2.5Gbyteの大きさの空き領域23を作成している。
図1−3は、スワップを実行する場面を示す図である。計算機1と計算機2で空き領域の作成が完了すると、仮想計算機制御プロセス11は、ゲストOS12cを動作させる仮想計算機を計算機2に作成された空き領域23へ移動させる。これと平行して、仮想計算機制御プロセス11は、仮想計算機制御プロセス21に依頼し、ゲストOS22bを動作させる仮想計算機とゲストOS22cを動作させる仮想計算機を計算機1に作成された空き領域13へ移動させる。仮想計算機の移動は、従来のホットマイグレーション技術を利用して、仮想計算機を停止させることなく実現される。
図1−4は、仮想計算機の移動が完了した場面を示す図である。同図に示すように、仮想計算機の移動が完了すると、計算機1の空き領域13の大きさは2Gbyteとなり、計算機2の空き領域23の大きさは1.5Gbyteとなる。仮想計算機制御プロセス11および仮想計算機制御プロセス21は、これらの未使用のメモリを各仮想計算機へ分配する。
図1−5は、メモリ分配が完了した場面を示す図である。この例では、スワップの実行前から存在していた仮想計算機のメモリ割当量をスワップ前の状態に戻し、残りの未使用のメモリを新たに移動してきた仮想計算機へ割り当てるロジックでメモリの分配を行っている。スワップ実行後の計算機1および2の稼働状況は以下のようになっている。
計算機1の仮想計算機制御プロセス11が実現する仮想計算機上では、ゲストOS12aおよび12bと、ゲストOS22bおよび22cとが動作し、高負荷の処理を実行していたゲストOS12cが移動したために、計算機1のCPU負荷は80%へ低化している。そして、ゲストOS12aを動作させる仮想計算機とゲストOS12bを動作させる仮想計算機は、割り当てられた2GByteのメモリのうち、1.5GByteを使用しており、メモリ使用率は、75%となっている。また、ゲストOS22bを動作させる仮想計算機とゲストOS22cを動作させる仮想計算機は、割り当てられた1GByteのメモリのうち、0.5GByteを使用しており、メモリ使用率は、50%となっている。
計算機2の仮想計算機制御プロセス21が実現する仮想計算機上では、ゲストOS22aとゲストOS12cが動作し、高負荷の処理を実行するゲストOS12cが移動してきたために、計算機のCPU負荷は70%へ増化している。そして、ゲストOS22aを動作させる仮想計算機は、割り当てられた2GByteのメモリのうち、1.5GByteを使用しており、メモリ使用率は、75%となっている。また、ゲストOS12cを動作させる仮想計算機は、割り当てられた3GByteのメモリのうち、2GByteを使用しており、メモリ使用率は、66%となっている。
以上のように、本実施例に係る仮想計算機移動方法では、メモリ不足となった仮想計算機を、他の計算機上の1ないし複数の仮想計算機とスワップすることにより、移動先に予め未使用の領域を用意しておくことなく、メモリ不足となった仮想計算機を他の計算機へ移動させ、メモリ不足を解消させることができる。
また、本実施例に係る仮想計算機移動方法では、メモリ使用率が低い仮想計算機またはその組合せをスワップ対象として選択することとしているため、スワップ実施後の各仮想計算機のメモリ使用率が平準化される。また、CPU負荷の低い計算機で稼働している仮想計算機またはその組合せをスワップ対象として選択することとしているため、各計算機のCPU負荷も平準化される。
次に、仮想計算機制御プロセス11の場合を例にして、仮想計算機制御プロセスの起動の仕組みについて説明する。図2は、図1−1に示した計算機1の構成を示すブロック図である。同図に示すように、計算機1は、各種演算処理を実行するCPU110と、ユーザからのデータの入力を受け付ける入力装置120と、各種情報を表示するモニタ130と、記録媒体からプログラム等を読み取る媒体読取り装置140と、ネットワークを介して他のコンピュータとの間でデータの授受を行うネットワークインターフェース装置150と、各種情報を一時記憶するRAM160と、ハードディスク装置170とをバス180で接続して構成される。
ハードディスク装置170には、仮想計算機制御プログラム171が記憶される。そして、CPU110が仮想計算機制御プログラム171をハードディスク装置170から読み出してRAM160に展開することにより、仮想計算機制御プログラム171は、仮想計算機制御プロセス11として機能するようになる。
仮想計算機制御プロセス11は、ハードディスク装置170に記憶されている仮想計算機イメージデータ172を読み出して、自身に割り当たられている仮想記憶上の領域に展開することにより、仮想計算機を実現し、仮想計算機イメージデータ172に含まれるゲストOSをその上で起動させる。
起動したゲストOSは、やはり仮想計算機イメージデータ172に含まれるアプリケーションを起動し、各種サービスの提供を開始させる。そして、仮想計算機制御プロセス11は、ゲストOSや、ゲストOSから起動されたアプリケーションを仮想計算機上で動作させるために必要な各種制御を実行する。
次に、図2に示した仮想計算機制御プログラム171の構成について説明する。図3は、仮想計算機制御プログラム171の構成を示す図である。なお、図3においては、説明を簡単にするため、仮想計算機のスワップと関連の無い構成の図示を省略している。
同図に示すように、仮想計算機制御プログラム171は、生存確認部171aと、稼働状況監視部171bと、稼働状況問合せ部171cと、スワップ対象選択部171dと、メモリ割当て調整部171eと、メモリ割当て調整依頼部171fと、スワップ実行部171gと、負荷状況テーブル171hと、メモリ割当て状況テーブル171iとを有する。
生存確認部171aは、生存確認パケットを他の仮想計算機制御プロセスとやりとりすることにより、稼働中の仮想計算機制御プロセスを発見し、発見した仮想計算機制御プロセスの起動状態を監視する処理部である。生存確認部171aは、新たに発見した仮想計算機制御プロセスを負荷状況テーブル171hに登録するとともに、負荷状況テーブル171hに登録されている各仮想計算機制御プロセスの状態を負荷状況テーブル171hに設定する。
図4は、仮想計算機制御プログラム171が実行状態にある場合における負荷状況テーブル171hの一例を示す図である。同図に示すように、負荷状況テーブル171hは、ホスト名、ステータス、負荷といった項目を有し、生存確認部171aが発見した仮想計算機制御プロセス毎に行が登録される。
ホスト名は、仮想計算機制御プロセスが動作している計算機のホスト名が設定される項目である。ステータスは、仮想計算機制御プロセスの現在の状態が設定される項目であり、“alive”もしくは“disconnected”のいずれかの値が設定される。“alive”は、当該の仮想計算機制御プロセスが正常に動作していることを示し、“disconnected”は、当該の仮想計算機制御プロセスとの通信が不能になっていることを示す。
負荷は、仮想計算機制御プロセスが動作している計算機のCPU負荷が設定される項目であり、稼働状況問合せ部171cによって設定される。なお、仮想計算機制御プロセスが動作している計算機の負荷として、CPU負荷以外に、ディスク入出力量やネットワーク通信量等を用いることとしてもよい。
稼働状況監視部171bは、当該の仮想計算機制御プロセスが動作している計算機の負荷と、当該の仮想計算機制御プロセス上で実現されている各仮想計算機のメモリ割当て量およびメモリ使用量を監視する処理部である。また、稼働状況監視部171bは、他の仮想計算機制御プロセスから当該の仮想計算機制御プロセスの稼働状況について問合せがあった場合に、監視内容を応答する。
稼働状況問合せ部171cは、稼働状況監視部171bにおいて当該の仮想計算機制御プロセス上で実現されている仮想計算機のメモリ不足が検知された場合に、他の仮想計算機制御プロセスに稼働状況を問合せる処理部である。稼働状況問合せ部171cは、負荷状況テーブル171hにおいてステータスの値が“alive”となっている仮想計算機制御プロセスに対して問合せを行い、応答に含まれる計算機の負荷を負荷状況テーブル171hに設定し、メモリの使用状況をメモリ割当て状況テーブル171iに設定する。
図5は、稼働状況問合せ部171cが問合せを行った後におけるメモリ割当て状況テーブル171iの一例を示す図である。同図に示すように、メモリ割当て状況テーブル171iは、ホスト名、VMID、メモリ割当て量、メモリ使用量、メモリ使用率といった項目を有し、仮想計算機制御プロセス上で動作している仮想計算機毎に行が登録される。
ホスト名は、仮想計算機制御プロセスが動作している計算機のホスト名が設定される項目であり、VMIDは、仮想計算機制御プロセス上で実現されている仮想計算機の識別番号が設定される項目である。メモリ割当て量は、当該の仮想計算機に割り当てられているメモリ量が設定される項目であり、メモリ使用量は、当該の仮想計算機が現在使用しているメモリの量が設定される項目である。メモリ使用率は、メモリ割当て量とメモリ使用量から計算された当該の仮想計算機のメモリ使用率が設定される項目である。
スワップ対象選択部171dは、稼働状況問合せ部171cの問合せ結果に基づいて、メモリ不足となった仮想計算機とスワップする対象の仮想計算機を選択する処理部である。スワップ対象は、1つの仮想計算機であってもよいし、複数の仮想計算機の組合せであってもよい。スワップ対象選択部171dは、資源の平準化を図るため、計算機の負荷が低く、メモリ使用率が低い仮想計算機またはその組み合わせをスワップ対象として選択する。
メモリ割当て調整部171eは、各仮想計算機から未使用のメモリを回収して、仮想計算機のスワップを実行するために必要な空き領域を作成する処理部である。メモリ割当て調整部171eは、他の仮想計算機制御プロセスから空き領域の作成を依頼された場合も同様の処理を行う。また、メモリ割当て調整部171eは、仮想計算機のスワップが完了した後に、空き領域を各仮想計算機へ分配する処理も行う。
メモリ割当て調整依頼部171fは、スワップ対象の仮想計算機を実現させている仮想計算機制御プロセスに対して、仮想計算機のスワップを実行するために必要な空き領域の作成を依頼する処理部である。スワップ実行部171gは、仮想計算機をスワップ先へ移動させるための処理を実行する処理部である。
次に、仮想計算機制御プログラム171の処理手順について説明する。図6は、仮想計算機制御プログラム171が実行状態となった仮想計算機制御プロセス11が、仮想計算機のメモリ不足を検出した場合に実行する処理手順を示すフローチャートである。
同図に示すように、稼働状況監視部171bにおいて仮想計算機のメモリ不足が検出されると(ステップS101)、稼働状況問合せ部171cは、負荷状況テーブル171hを参照して、ステータスが“alive”である他の仮想計算機制御プロセスに対して負荷状況と各仮想計算機のメモリ使用状況を問い合せる(ステップS102)。
問合せを受けた他の仮想計算機制御プロセスは、自身が動作している計算機の負荷状況と、自身が実現している各仮想計算機のメモリ割当て量およびメモリ使用量を問合せ元へ応答する(ステップS201)。そして、稼働状況問合せ部171cが全ての応答が受信し、その内容を負荷状況テーブル171hおよびメモリ割当て状況テーブル171iに保存した後、スワップ対象選択部171dが、後述するスワップ対象選択処理を実行して、メモリ不足となった仮想計算機のスワップ対象を選択する(ステップS103)。
ここで、スワップ対象選択部171dがスワップ対象をみつけることができなかった場合は(ステップS104否定)、所定の待機時間をおいた後、ステップS102から処理が再開される。一方、スワップ対象を選択できた場合は(ステップS104肯定)、メモリ割当て調整依頼部171fが、スワップ対象の仮想計算機を実現している仮想計算機制御プロセスに対して、各仮想計算機から未使用のメモリを回収して空き領域を作成するように依頼し(ステップS105)、メモリ割当て調整部171eが、当該の仮想計算機制御プロセスが実現している各仮想計算機から未使用のメモリを回収して空き領域を作成する(ステップS106)。
空き領域の作成を依頼された他の仮想計算機制御プロセスは、自身が実現している各仮想計算機から未使用のメモリを回収して空き領域を作成し(ステップS202)、作成完了後、空き領域の作成を完了した旨を応答する(ステップS203)。こうして、空き領域が作成された後、双方の仮想計算機制御プロセスは、対象となっている仮想計算機を相手の空き領域に相互に移動させるスワップ処理を実行し(ステップS107および204)、スワップ処理の完了後に、空き領域のメモリを各仮想計算機へ再分配する(ステップS108および205)。
図7は、スワップ対象選択処理の処理手順を示すフローチャートである。同図に示すように、スワップ対象選択部171dは、稼働状況監視部171bから各仮想計算機のメモリ使用状況を取得し、各仮想計算機の未使用のメモリの合計を算出することにより、当該の仮想計算機制御プロセスで確保できる空き領域の大きさを求める(ステップS301)。
そして、負荷状況テーブル171hを参照して負荷が低い順に仮想計算機制御プロセスを1件ずつ選択していき(ステップS302)、仮想計算機制御プロセスを1件選択するごとに(ステップS303否定)、メモリ割当て状況テーブル171iを参照して、選択した仮想計算機制御プロセスによって実現されている各仮想計算機の未使用のメモリの合計を算出することにより、相手側の仮想計算機制御プロセスで確保できる空き領域の大きさを求める(ステップS304)。
ここで、相手側の仮想計算機制御プロセスで確保できる空き領域が、メモリ不足が検出された仮想計算機のメモリ使用量よりも小さい場合、すなわち、メモリ不足が検出された仮想計算機を相手方に転送できない場合は(ステップS305否定)、スワップ対象選択部171dは、ステップS302へ戻って、次の仮想計算機制御プロセスの選択を試みる。
一方、メモリ不足が検出された仮想計算機を相手方に転送できる場合は(ステップS305肯定)、スワップ対象選択部171dは、選択した仮想計算機制御プロセスによって実現されている仮想計算機の全ての組合せを作成する(ステップS306)。ここで、作成される仮想計算機の組合せには、一つの仮想計算機からなるものも含まれる。例えば、図5に示したメモリ割当て状況テーブル171iの例において、「host01」というホスト名の計算機で動作している仮想計算機制御プロセスが相手側として選択されている場合、以下の7つの組合せが生成される。
OS1−1
OS1−2
OS1−3
OS1−1およびOS1−2
OS1−1およびOS1−3
OS1−2およびOS1−3
OS1−1、OS1−2およびOS1−3
そして、スワップ対象選択部171dは、作成した組合せ単位でメモリ割当て量、メモリ使用量およびメモリ使用率を算出する(ステップS307)。そして、メモリ使用率が低い順に組合せを1件ずつ選択していき(ステップS308)、選択した組合せのメモリ使用量が当該の仮想計算機制御プロセスで確保できる空き領域よりも小さければ、すなわち、選択した組合せを当該の仮想計算機制御プロセスで確保できる空き領域へ転送できる場合は(ステップS310肯定)、選択した組合せをスワップ対象に選択して処理を終了する(ステップS311)。
ここで、当該の仮想計算機制御プロセスで確保できる空き領域へ転送できる組合せが無かった場合は(ステップS309肯定)、スワップ対象選択部171dは、ステップS302へ戻って、次の仮想計算機制御プロセスの選択を試みる。
そして、ステップS302において、全ての仮想計算機制御プロセスを選択済みであった場合は(ステップS303肯定)、スワップ対象選択部171dは、スワップは不可能であると判定して処理を終了する(ステップS312)。
上述したように、本実施例では、他の計算機から取得した仮想計算機のメモリ使用状況に基づいて、当該の計算機上の仮想計算機とスワップ可能な仮想計算機を選択し、選択した仮想計算機と当該の計算機上の仮想計算機をスワップすることとしたので、予め空き領域を用意することなく仮想計算機を他の計算機へ移動させることができる。
なお、上記の実施例では、仮想計算機のメモリ不足をトリガとして仮想計算機のスワップを行う例を示したが、CPUの処理能力の不足やネットワークの帯域の不足のような他の資源の不足等をトリガとして仮想計算機のスワップを行うこととしてもよい。また、上記の実施例では、スワップされる仮想計算機の数の対応が、1対1もしくは1対多である場合の例を示したが、多対多もしくは多対1であってもよい。
また、上記の実施例では、仮想計算機から未使用のメモリを回収してスワップ用の空き領域を作成する例を示したが、未使用のメモリを回収しただけではスワップに必要な大きさの空き領域を作成することができない場合は、一定の割合で仮想計算機から使用中のメモリをさらに回収することとしてもよい。
以上のように、本発明に係る仮想計算機制御プログラム、仮想計算機制御システムおよび仮想計算機移動方法は、仮想計算機を他の計算機へ移動させる場合に有用であり、特に、予め空き領域を用意することなく仮想計算機を他の計算機へ移動させることが必要な場合に適している。
図1−1は、仮想計算機にメモリ不足が生じた場面を示す図である。 図1−2は、空き領域を作成する場面を示す図である。 図1−3は、スワップを実行する場面を示す図である。 図1−4は、仮想計算機の移動が完了した場面を示す図である。 図1−5は、メモリ分配が完了した場面を示す図である。 図2は、図1−1に示した計算機の構成を示すブロック図である。 図3は、仮想計算機制御プログラムの構成を示す図である。 図4は、仮想計算機制御プログラムが実行状態にある場合における負荷状況テーブルの一例を示す図である。 図5は、稼働状況問合せ部が問合せを行った後におけるメモリ割当て状況テーブルの一例を示す図である。 図6は、仮想計算機制御プログラムが実行状態となった仮想計算機制御プロセスが、仮想計算機のメモリ不足を検出した場合に実行する処理手順を示すフローチャートである。 図7は、スワップ対象選択処理の処理手順を示すフローチャートである。
1、2、3 計算機
4 ネットワーク
10、20、30 ホストOS
11、21、31 仮想計算機制御プロセス
12a〜12c、22a〜22c、32a〜32c、 ゲストOS
13、23 空き領域
110 CPU
120 入力装置
130 モニタ
140 媒体読取り装置
150 ネットワークインターフェース装置
160 RAM
170 ハードディスク装置
171 仮想計算機制御プログラム
171a 生存確認部
171b 稼働状況監視部
171c 稼働状況問合せ部
171d スワップ対象選択部
171e メモリ割当て調整部
171f メモリ割当て調整依頼部
171g スワップ実行部
171h 負荷状況テーブル
171i メモリ割当て状況テーブル
172 仮想計算機イメージデータ
180 バス

Claims (15)

  1. 計算機上に仮想計算機を実現し、該仮想計算機を制御する仮想計算機制御プログラムであって、
    他の計算機に対して、該計算機で実現されている仮想計算機のメモリ使用状況を問い合せる稼働状況問合せ手順と、
    前記稼働状況問合せ手順によって取得された情報に基づいて、他の計算機で実現されている仮想計算機の中から、当該の計算機で実現されている仮想計算機とスワップ可能な仮想計算機を選択するスワップ対象選択手順と、
    前記当該の計算機で実現されている仮想計算機と、前記スワップ対象選択手順によって選択された仮想計算機とをスワップするスワップ実行手順とを
    コンピュータに実行させることを特徴とする仮想計算機制御プログラム。
  2. 前記スワップ対象選択手順は、メモリ使用率が低い仮想計算機を優先して選択することを特徴とする請求項1に記載の仮想計算機制御プログラム。
  3. 前記スワップ対象選択手順は、他の計算機に対して、該計算機の負荷をさらに問合せ、
    前記スワップ対象選択手順は、負荷の低い計算機において実現されている仮想計算機を優先して選択することを特徴とする請求項1に記載の仮想計算機制御プログラム。
  4. 当該の計算機で実現されている仮想計算機から未使用のメモリを回収して、前記スワップ対象選択手順によって選択された仮想計算機を移動させるための空き領域をメモリ空間上に作成するメモリ割当て調整手順をさらにコンピュータに実行させることを特徴とする請求項1〜3のいずれか1つに記載の仮想計算機制御プログラム。
  5. 前記メモリ割当て調整手順は、当該の計算機で実現されている仮想計算機から未使用のメモリを回収しても、前記スワップ対象選択手順によって選択された仮想計算機を移動させるための空き領域をメモリ空間上に作成することができない場合に、当該の計算機で実現されている仮想計算機から使用中のメモリをさらに回収して前記空き領域を作成することを特徴とする請求項4に記載の仮想計算機制御プログラム。
  6. 計算機上に仮想計算機を実現し、該仮想計算機を制御する仮想計算機制御システムであって、
    他の計算機に対して、該計算機で実現されている仮想計算機のメモリ使用状況を問い合せる稼働状況問合せ手段と、
    前記稼働状況問合せ手段によって取得された情報に基づいて、他の計算機で実現されている仮想計算機の中から、当該の計算機で実現されている仮想計算機とスワップ可能な仮想計算機を選択するスワップ対象選択手段と、
    前記当該の計算機で実現されている仮想計算機と、前記スワップ対象選択手段によって選択された仮想計算機とをスワップするスワップ実行手段とを
    備えたことを特徴とする仮想計算機制御システム。
  7. 前記スワップ対象選択手段は、メモリ使用率が低い仮想計算機を優先して選択することを特徴とする請求項6に記載の仮想計算機制御システム。
  8. 前記スワップ対象選択手段は、他の計算機に対して、該計算機の負荷をさらに問合せ、
    前記スワップ対象選択手段は、負荷の低い計算機において実現されている仮想計算機を優先して選択することを特徴とする請求項6に記載の仮想計算機制御システム。
  9. 当該の計算機で実現されている仮想計算機から未使用のメモリを回収して、前記スワップ対象選択手段によって選択された仮想計算機を移動させるための空き領域をメモリ空間上に作成するメモリ割当て調整手段をさらに備えたことを特徴とする請求項6〜8のいずれか1つに記載の仮想計算機制御システム。
  10. 前記メモリ割当て調整手段は、当該の計算機で実現されている仮想計算機から未使用のメモリを回収しても、前記スワップ対象選択手段によって選択された仮想計算機を移動させるための空き領域をメモリ空間上に作成することができない場合に、当該の計算機で実現されている仮想計算機から使用中のメモリをさらに回収して前記空き領域を作成することを特徴とする請求項9に記載の仮想計算機制御システム。
  11. 計算機上に仮想計算機を実現し、該仮想計算機を制御する仮想計算機制御システムにおける仮想計算機移動方法であって、
    他の計算機に対して、該計算機で実現されている仮想計算機のメモリ使用状況を問い合せる稼働状況問合せ工程と、
    前記稼働状況問合せ工程によって取得された情報に基づいて、他の計算機で実現されている仮想計算機の中から、当該の計算機で実現されている仮想計算機とスワップ可能な仮想計算機を選択するスワップ対象選択工程と、
    前記当該の計算機で実現されている仮想計算機と、前記スワップ対象選択工程によって選択された仮想計算機とをスワップするスワップ実行工程とを
    含んだことを特徴とする仮想計算機移動方法。
  12. 前記スワップ対象選択工程は、メモリ使用率が低い仮想計算機を優先して選択することを特徴とする請求項11に記載の仮想計算機移動方法。
  13. 前記スワップ対象選択工程は、他の計算機に対して、該計算機の負荷をさらに問合せ、
    前記スワップ対象選択工程は、負荷の低い計算機において実現されている仮想計算機を優先して選択することを特徴とする請求項11に記載の仮想計算機移動方法。
  14. 当該の計算機で実現されている仮想計算機から未使用のメモリを回収して、前記スワップ対象選択工程によって選択された仮想計算機を移動させるための空き領域をメモリ空間上に作成するメモリ割当て調整工程をさらに含んだことを特徴とする請求項11〜13のいずれか1つに記載の仮想計算機移動方法。
  15. 前記メモリ割当て調整工程は、当該の計算機で実現されている仮想計算機から未使用のメモリを回収しても、前記スワップ対象選択工程によって選択された仮想計算機を移動させるための空き領域をメモリ空間上に作成することができない場合に、当該の計算機で実現されている仮想計算機から使用中のメモリをさらに回収して前記空き領域を作成することを特徴とする請求項14に記載の仮想計算機移動方法。
JP2009506182A 2007-03-27 2007-03-27 仮想計算機制御プログラム、仮想計算機制御システムおよび仮想計算機移動方法 Expired - Fee Related JP5088366B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2007/056488 WO2008117470A1 (ja) 2007-03-27 2007-03-27 仮想計算機制御プログラム、仮想計算機制御システムおよび仮想計算機移動方法

Publications (2)

Publication Number Publication Date
JPWO2008117470A1 true JPWO2008117470A1 (ja) 2010-07-08
JP5088366B2 JP5088366B2 (ja) 2012-12-05

Family

ID=39788213

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009506182A Expired - Fee Related JP5088366B2 (ja) 2007-03-27 2007-03-27 仮想計算機制御プログラム、仮想計算機制御システムおよび仮想計算機移動方法

Country Status (3)

Country Link
US (2) US8352942B2 (ja)
JP (1) JP5088366B2 (ja)
WO (1) WO2008117470A1 (ja)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010038307A1 (ja) * 2008-10-03 2010-04-08 富士通株式会社 仮想計算機システムのテスト方法、テストプログラム並びにその記録媒体、仮想計算機システム
JP5471292B2 (ja) * 2009-10-23 2014-04-16 富士通株式会社 仮想マシン移動制御プログラム,仮想マシン移動制御装置および仮想マシン移動制御方法
JP2011180889A (ja) * 2010-03-02 2011-09-15 Nec Corp ネットワークリソース管理システム、装置、方法及びプログラム
JP5686027B2 (ja) * 2011-04-07 2015-03-18 富士通株式会社 仮想マシン環境におけるネットワーク障害検知方法、装置、およびプログラム
US8756601B2 (en) 2011-09-23 2014-06-17 Qualcomm Incorporated Memory coherency acceleration via virtual machine migration
TW201339838A (zh) * 2012-03-16 2013-10-01 Hon Hai Prec Ind Co Ltd 虛擬機記憶體管理系統及方法
US20150150004A1 (en) * 2012-04-30 2015-05-28 Patrick Charles McGeer Determining virtual machine placement
US20140040889A1 (en) * 2012-08-03 2014-02-06 International Business Machines Corporation Facilitating Customer-Initiated Virtual Machine Migration and Swapping
US9053216B1 (en) * 2013-08-09 2015-06-09 Datto, Inc. CPU register assisted virtual machine screenshot capture timing apparatuses, methods and systems
US9594636B2 (en) 2014-05-30 2017-03-14 Datto, Inc. Management of data replication and storage apparatuses, methods and systems
US9578131B2 (en) 2014-06-12 2017-02-21 Empire Technology Development Llc Virtual machine migration based on communication from nodes
US9286104B1 (en) 2015-01-05 2016-03-15 International Business Machines Corporation Selecting virtual machines to be relocated based on memory volatility
US10129331B2 (en) * 2015-06-25 2018-11-13 Vmware, Inc. Load balancing using a client swapping operation
US10395219B1 (en) * 2015-12-18 2019-08-27 Amazon Technologies, Inc. Location policies for reserved virtual machine instances
US10318166B1 (en) 2016-12-28 2019-06-11 EMC IP Holding Company LLC Preserving locality of storage accesses by virtual machine copies in hyper-converged infrastructure appliances
JP2019159562A (ja) * 2018-03-09 2019-09-19 富士通株式会社 情報処理装置、情報処理システム、及びプログラム
KR102091409B1 (ko) * 2018-03-09 2020-03-20 삼성전자 주식회사 전자장치 및 그 제어방법
WO2019172622A1 (ko) * 2018-03-09 2019-09-12 삼성전자(주) 전자장치 및 그 제어방법
JP7193732B2 (ja) * 2019-04-08 2022-12-21 富士通株式会社 管理装置、情報処理システムおよび管理プログラム
CN112559393B (zh) * 2019-09-25 2022-10-04 无锡江南计算技术研究所 基于定制tlb代换的虚拟机迁移时脏页记录方法
US11689473B2 (en) * 2020-07-24 2023-06-27 Oracle International Corporation Pre-allocating resources with hierarchy-based constraints

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05204760A (ja) 1992-01-29 1993-08-13 Nec Corp 仮想計算機システムの制御方式
JPH0695899A (ja) * 1992-09-09 1994-04-08 Toshiba Corp コンピュータシステム
JP2002041304A (ja) * 2000-07-28 2002-02-08 Hitachi Ltd 論理区画の予備リソース自動付与方法及び論理区画式計算機システム
US7571446B2 (en) * 2001-04-19 2009-08-04 International Business Machines Corporation Server, computer system, object management method, server control method, computer program
US7313793B2 (en) * 2002-07-11 2007-12-25 Microsoft Corporation Method for forking or migrating a virtual machine
US7203944B1 (en) * 2003-07-09 2007-04-10 Veritas Operating Corporation Migrating virtual machines among computer systems to balance load caused by virtual machines
US20050132362A1 (en) * 2003-12-10 2005-06-16 Knauerhase Robert C. Virtual machine management using activity information
US7526515B2 (en) * 2004-01-21 2009-04-28 International Business Machines Corporation Method and system for a grid-enabled virtual machine with movable objects
US20060069761A1 (en) * 2004-09-14 2006-03-30 Dell Products L.P. System and method for load balancing virtual machines in a computer network
US20070136402A1 (en) * 2005-11-30 2007-06-14 International Business Machines Corporation Automatic prediction of future out of memory exceptions in a garbage collected virtual machine
US7730269B2 (en) * 2006-08-29 2010-06-01 International Business Machines Corporation Load management to reduce communication signaling latency in a virtual machine environment
US8296760B2 (en) * 2006-10-27 2012-10-23 Hewlett-Packard Development Company, L.P. Migrating a virtual machine from a first physical machine in response to receiving a command to lower a power mode of the first physical machine
US7444459B2 (en) * 2006-12-12 2008-10-28 Lsi Logic Corporation Methods and systems for load balancing of virtual machines in clustered processors using storage related load information
US7698529B2 (en) * 2007-01-10 2010-04-13 International Business Machines Corporation Method for trading resources between partitions of a data processing system

Also Published As

Publication number Publication date
US20090300614A1 (en) 2009-12-03
WO2008117470A1 (ja) 2008-10-02
JP5088366B2 (ja) 2012-12-05
US20130104129A1 (en) 2013-04-25
US8352942B2 (en) 2013-01-08

Similar Documents

Publication Publication Date Title
JP5088366B2 (ja) 仮想計算機制御プログラム、仮想計算機制御システムおよび仮想計算機移動方法
KR101781063B1 (ko) 동적 자원 관리를 위한 2단계 자원 관리 방법 및 장치
CN107690622B (zh) 实现硬件加速处理的方法、设备和***
EP2616937B1 (en) Using process location to bind io resources on numa architectures
US11379265B2 (en) Resource management method, host, and endpoint based on performance specification
US20170017524A1 (en) Quality of service implementation in a networked storage system with hierarchical schedulers
US20080229320A1 (en) Method, an apparatus and a system for controlling of parallel execution of services
WO2015010597A1 (en) Resource management for peripheral component interconnect-express domains
JP2005122640A (ja) サーバシステム及びi/oスロット共有方法。
JP2009251708A (ja) I/oノード制御方式及び方法
EP2161660A2 (en) Information processing device having load sharing function
WO2015109483A1 (zh) 一种存储数据的方法和装置
JP5151509B2 (ja) 仮想マシンシステム及びそれに用いる仮想マシン分散方法
JP2014186411A (ja) 管理装置、情報処理システム、情報処理方法、及びプログラム
JP2010231601A (ja) グリッドコンピューティングシステム、リソース制御方法およびリソース制御プログラム
JP7460594B2 (ja) 管理システム、データリバランス管理方法、及びデータリバランス管理プログラム
JP6082305B2 (ja) 計算機及び演算処理方法
JP5910215B2 (ja) 管理装置の制御プログラム、制御方法及び管理装置
JP2015201029A (ja) 負荷分散装置、負荷分散方法、および、負荷分散システム
JP2018025946A (ja) リソース管理システム、リソース管理サーバ及びリソース管理方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120417

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120618

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120827

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150921

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5088366

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees