Nothing Special   »   [go: up one dir, main page]

JP2019159562A - 情報処理装置、情報処理システム、及びプログラム - Google Patents

情報処理装置、情報処理システム、及びプログラム Download PDF

Info

Publication number
JP2019159562A
JP2019159562A JP2018043136A JP2018043136A JP2019159562A JP 2019159562 A JP2019159562 A JP 2019159562A JP 2018043136 A JP2018043136 A JP 2018043136A JP 2018043136 A JP2018043136 A JP 2018043136A JP 2019159562 A JP2019159562 A JP 2019159562A
Authority
JP
Japan
Prior art keywords
storage
storage amount
information processing
virtual machine
processing apparatus
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2018043136A
Other languages
English (en)
Inventor
酒井 敦
Atsushi Sakai
敦 酒井
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 JP2018043136A priority Critical patent/JP2019159562A/ja
Priority to US16/293,970 priority patent/US20190278632A1/en
Publication of JP2019159562A publication Critical patent/JP2019159562A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/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/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/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】情報処理装置内で動作するVMが使用するメモリの記憶量が不足する場合に、そのVMに他の情報処理装置のメモリを使用させる。【解決手段】判定部212は、VMが要求する追加記憶量が、第1記憶部211の記憶容量のうちVMに対して割り当て可能な記憶量を超えるか否かを判定する。制御部213は、追加記憶量が割り当て可能な記憶量を超えると判定部212が判定した場合、追加記憶量のうち第1記憶部211内で不足する不足記憶量を、他の情報処理装置内の第2記憶部から割り当て可能であるか否かを判定する。そして、制御部213は、不足記憶量を第2記憶部から割り当て可能であると判定した場合、他の情報処理装置に対して不足記憶量の割り当てを要求する。【選択図】図2

Description

本発明は、情報処理装置、情報処理システム、及びプログラムに関する。
サーバの仮想化技術を用いた情報処理システムでは、物理サーバ内で1つ又は複数の仮想マシン(Virtual Machine,VM)を動作させることで、多数の物理サーバが行っていた情報処理を少数の物理サーバに集約することが可能になる。物理サーバには、仮想化ソフトウェアである仮想マシンモニタ(Virtual Machine Monitor,VMM)が搭載され、VMM上で1つ又は複数のVMが動作する。VMMは、ハイパーバイザと呼ばれることもある。
仮想化技術に関連して、仮想計算機システムにおけるCPU(Central Processing Unit)及びメモリの割り当て方法が知られている(例えば、特許文献1〜特許文献4を参照)。
以下では、ハードウェアである「物理サーバ」を、単に「サーバ」と記載することがある。
国際公開第2014/141419号パンフレット 特開平11−316747号公報 特開2008−243203号公報 米国特許出願公開第2016/0124774号明細書
複数のVMが稼働しているサーバにおいて、VMが使用するメモリの記憶量が不足すると、いずれかのVMが強制的に終了させられることがある。
なお、かかる問題は、サーバ内でVMが動作する場合に限らず、他の情報処理装置内でVMが動作する場合においても生ずるものである。
1つの側面において、本発明は、情報処理装置内で動作するVMが使用するメモリの記憶量が不足する場合に、そのVMに他の情報処理装置のメモリを使用させることを目的とする。
1つの案では、情報処理装置は、第1記憶部、判定部、及び制御部を含み、VMを動作させる。第1記憶部は、VMが使用するデータを記憶する。
判定部は、VMが要求する追加記憶量が、第1記憶部の記憶容量のうちVMに対して割り当て可能な記憶量を超えるか否かを判定する。制御部は、追加記憶量が割り当て可能な記憶量を超えると判定部が判定した場合、追加記憶量のうち第1記憶部内で不足する不足記憶量を、他の情報処理装置内の第2記憶部から割り当て可能であるか否かを判定する。そして、制御部は、不足記憶量を第2記憶部から割り当て可能であると判定した場合、他の情報処理装置に対して不足記憶量の割り当てを要求する。
1つの実施形態によれば、情報処理装置内で動作するVMが使用するメモリの記憶量が不足する場合に、そのVMに他の情報処理装置のメモリを使用させることができる。
VMを示す図である。 情報処理装置の機能的構成図である。 制御処理のフローチャートである。 情報処理システムの機能的構成図である。 メモリの記憶領域を示す図である。 メモリ枯渇が近くなった状態における記憶領域を示す図である。 メモリ枯渇が発生した状態における記憶領域を示す図である。 VMに対して割り当てられた記憶領域を示す図である。 制御処理の具体例を示すフローチャートである。 読み出し制御処理を示す図である。 読み出し制御処理のフローチャートである。 読み出し制御処理のシーケンスを示す図である。 書き込み制御処理のシーケンスを示す図である。 更新情報を示す図である。 更新情報生成処理のフローチャートである。 ライブマイグレーションを示す図である。 定期監視処理のフローチャートである。 情報処理装置のハードウェア構成図である。
以下、図面を参照しながら、実施形態を詳細に説明する。
複数のVMが稼働しているサーバにおいて、メモリ枯渇警報が発生すると、いくつかのVMが強制的に終了させられることがある。この事象は、主として、以下の2つの原因により発生すると考えられる。
(1)VMが行う処理の負荷が高くなることで、VMが使用するメモリの記憶量が増加する。このため、低負荷の処理を前提として複数のVMを配備しているサーバにおいて、メモリ枯渇警報が発生する。
(2)サーバ内で動作しているハイパーバイザのメモリリークによって、メモリの記憶量が消費され、VMが使用できる記憶量が減少して、メモリ枯渇警報が発生する。
図1は、サーバ内で動作するVMの例を示している。サーバ101内では、VM111−1〜VM111−3及びハイパーバイザ112が動作している。各VM111−i(i=1〜3)は、バルーンドライバ121−iを含み、ハイパーバイザ112は、バルーン管理部131を含む。バルーン管理部131は、バルーンドライバ121−iからの要求に応じて、サーバ101内のメモリ113の記憶量を、VM111−iに対して割り当てる。
例えば、VM111−1が行う処理の負荷が高くなると、バルーンドライバ121−1は、VM111−1が使用する追加記憶量の割り当てを、バルーン管理部131に対して要求する。バルーン管理部131は、サーバ101内のメモリ113の未使用の記憶量(残存記憶量)をチェックし、要求された追加記憶量が残存記憶量以下である場合、その追加記憶量をVM111−1に対して割り当てる。
一方、追加記憶量が残存記憶量を超えている場合、メモリ枯渇警報が発生し、VM111−1〜VM111−3のうち、いずれかのVMが強制的に終了させられる。
このように、バルーン管理部131がメモリ113の記憶量を動的に割り当てることで、VM111−1〜VM111−3の負荷が一定値に達するまでは、それらのVMの間で記憶量を融通し合うことができる。しかし、一定値を超える負荷がVM111−1〜VM111−3にかかった場合、メモリ113の記憶量が不足して、処理の継続が困難になる。
図2は、実施形態の情報処理装置の機能的構成例を示している。図2の情報処理装置201は、第1記憶部211、判定部212、及び制御部213を含み、VMを動作させる。第1記憶部211は、VMが使用するデータを記憶する。
図3は、図2の情報処理装置201が行う制御処理の例を示すフローチャートである。まず、判定部212は、VMが要求する追加記憶量が、第1記憶部211の記憶容量のうちVMに対して割り当て可能な記憶量を超えるか否かを判定する(ステップ301)。
追加記憶量が割り当て可能な記憶量を超えると判定部212が判定した場合、制御部213は、追加記憶量のうち第1記憶部211内で不足する不足記憶量を、他の情報処理装置内の第2記憶部から割り当て可能であるか否かを判定する(ステップ302)。そして、制御部213は、不足記憶量を第2記憶部から割り当て可能であると判定した場合、他の情報処理装置に対して不足記憶量の割り当てを要求する(ステップ303)。
図2の情報処理装置201によれば、情報処理装置201内で動作するVMが使用するメモリの記憶量が不足する場合に、そのVMに他の情報処理装置のメモリを使用させることができる。
図4は、図2の情報処理装置201を含む情報処理システムの機能的構成例を示している。図4の情報処理システムは、サーバ401及びサーバ402を含む。サーバ401は、メモリ413を含み、サーバ402は、メモリ443を含む。メモリ413及びメモリ443は、物理メモリである。サーバ401は、通信ネットワーク403を介して、サーバ402と通信することができる。
サーバ401は、図2の情報処理装置201に対応し、メモリ413は、第1記憶部211に対応する。サーバ402は、他の情報処理装置に対応し、メモリ443は、第2記憶部に対応する。
サーバ401内では、VM411−1〜VM411−3及びハイパーバイザ412が動作している。各VM411−i(i=1〜3)は、バルーンドライバ421−iを含む。ハイパーバイザ412は、バルーン管理部431、LM(Live Migration)制御部432、ローカル記憶制御部433、及びリモート記憶制御部434を含む。
サーバ402内では、VM441及びハイパーバイザ442が動作している。VM441は、バルーンドライバ451を含む。ハイパーバイザ442は、バルーン管理部461、LM制御部462、ローカル記憶制御部463、及びリモート記憶制御部464を含む。
サーバ401のバルーン管理部431は、バルーンドライバ421−iが要求する追加記憶量が、メモリ413の記憶容量のうちVM411−iに対して割り当て可能な記憶量を超えるか否かを判定する。VM411−iに対して割り当て可能な記憶量は、メモリ413の残存記憶量であってもよく、残存記憶量よりも少ない値であってもよい。追加記憶量が割り当て可能な記憶量以下である場合、バルーン管理部431は、追加記憶量をVM411−iに対して割り当てる。
追加記憶量が割り当て可能な記憶量を超える場合、バルーン管理部431は、サーバ402のメモリ443が記憶するデータをキャッシュするキャッシュ領域を、メモリ413内に確保する。そして、リモート記憶制御部434は、追加記憶量のうちメモリ413内で不足する不足記憶量を、メモリ443から割り当て可能であるか否かを判定する。不足記憶量をメモリ443から割り当て可能である場合、リモート記憶制御部434は、サーバ402のハイパーバイザ442に対して不足記憶量の割り当てを要求する。
サーバ402のローカル記憶制御部463は、リモート記憶制御部434から要求された不足記憶量の記憶領域を、メモリ443内に確保する。そして、ローカル記憶制御部463は、不足記憶量の記憶領域を確保したことを示す応答を、リモート記憶制御部434に対して送信する。
ローカル記憶制御部433は、メモリ413のページテーブルエントリ(Page Table Entry,PTE)を更新する。PTEは、各VM411−iが使用する論理アドレス(仮想物理アドレス)と、メモリ413の物理アドレスとの間の変換に用いられる。
LM制御部432は、VM411−iがメモリ413内のキャッシュ領域を使用している使用時間を監視する。そして、キャッシュ領域の使用時間が所定時間を超えた場合、LM制御部432は、VM411−iのライブマイグレーションを実行して、VM411−iをサーバ402へ移動させる。
バルーン管理部431によって実現される機能は、図2の判定部212が行う処理に対応し、LM制御部432、ローカル記憶制御部433、及びリモート記憶制御部434によって実現される機能は、制御部213が行う処理に対応する。
サーバ402のバルーン管理部461、LM制御部462、ローカル記憶制御部463、及びリモート記憶制御部464は、バルーン管理部431、LM制御部432、ローカル記憶制御部433、及びリモート記憶制御部434と同様の処理を行うことができる。
サーバ401又はサーバ402内で動作するVMの個数は、1つ又は3つに限られず、1以上の整数であればよい。情報処理システムは、3台以上のサーバを含んでいてもよい。
図5は、サーバ401内でVM411−1及びVM411−2のみが動作している場合のメモリ413の記憶領域の例を示している。図5のメモリ413は、ハイパーバイザ領域501、VM必須領域502−1、VM必須領域502−2、及びバルーン領域503を含む。
ハイパーバイザ領域501は、ハイパーバイザ412によって使用される記憶領域であり、VM必須領域502−i(i=1,2)は、VM411−iに対して静的に割り当てられる記憶領域である。バルーン領域503は、バルーン管理部431によって確保される記憶領域であり、VM付加領域504−1及びVM付加領域504−2を含む。VM付加領域504−iは、バルーン管理部431により、VM411−iに対して動的に割り当てられる。
この例では、バルーン領域503の全領域が、ローカル領域505に対応する。ローカル領域505は、同一サーバ内で動作するVM間で、必要に応じて確保される領域である。メモリ413の記憶容量は5GB(Giga Byte)であり、各領域で使用されている記憶量は、以下の通りである。
ハイパーバイザ領域501 1GB
VM必須領域502−1 1GB
VM必須領域502−2 1GB
VM付加領域504−1 0.5GB
VM付加領域504−2 0.5GB
この場合、使用されている記憶量の合計は4GBであり、残存記憶量は1GBである。
図6は、バルーン管理部431がVM411−1に対して0.5GBの追加記憶量を割り当てることによって、メモリ枯渇が近くなった状態における、メモリ413の記憶領域の例を示している。図6の各領域で使用されている記憶量は、以下の通りである。
ハイパーバイザ領域501 1GB
VM必須領域502−1 1GB
VM必須領域502−2 1GB
VM付加領域504−1 1GB
VM付加領域504−2 0.5GB
この場合、VM付加領域504−1の記憶量が0.5GBだけ増加し、使用されている記憶量の合計が4.5GBになり、残存記憶量は0.5GBに減少している。
図7は、VM411−1がさらに追加記憶量を要求することによって、メモリ枯渇が発生した状態における、メモリ413の記憶領域の例を示している。図7の各領域で使用されている記憶量は、以下の通りである。
ハイパーバイザ領域501 1GB
VM必須領域502−1 1GB
VM必須領域502−2 1GB
VM付加領域504−1 2.5GB
VM付加領域504−2 0.5GB
この場合、VM付加領域504−1の記憶量がさらに1.5GBだけ増加し、使用されている記憶量の合計が6GBになり、メモリ413の記憶容量を超えている。
そこで、VM付加領域504−1の一部として、サーバ402のメモリ443の記憶領域が割り当てられ、メモリ413内にキャッシュ領域506が確保される。キャッシュ領域506は、異なるサーバ内で動作するVM間で、必要に応じて確保される領域である。バルーン領域503は、ローカル領域505及びキャッシュ領域506を含む。
VM411−1がメモリ443内のデータに対するアクセスを要求した場合、リモート記憶制御部434は、キャッシュ領域506を介してメモリ443内のデータにアクセスする。
図8は、VM411−1に対して割り当てられたメモリ413及びメモリ443の記憶領域の例を示している。この例では、サーバ401のメモリ413のメモリモジュール801〜メモリモジュール803に、VM必須領域502−1、ローカル領域804、及びキャッシュ領域506が設定される。ローカル領域804は、図7のローカル領域505のうち、VM411−1に対して割り当てられた記憶領域に対応する。
また、サーバ402のメモリ443には、リモート領域811及びリモート領域812が設定される。リモート領域811の記憶量は、VM必須領域502−1とローカル領域804とを併せた記憶量に相当し、ライブマイグレーションによってVM411−1がサーバ402へ移動するときに、リモート領域811がVM411−1に対して割り当てられる。
リモート領域812の記憶量は、メモリ413内で不足する不足記憶量に相当し、VM411−1は、キャッシュ領域506を介してリモート領域812のデータにアクセスする。VM411−1がリモート領域812のデータにアクセスする方法としては、例えば、プロセッサエミュレータであるQEMUにおける、メモリバックエンドファイルの技術を適用すすることができる。
メモリバックエンドファイルの技術では、ハードディスク内に格納されたファイルが、アドレス可能なメモリとして扱われる。具体的には、メモリ内のキャッシュ領域のアドレスがファイルのアドレスとして用いられ、特定のアドレスがアクセスされたときに、ハードディスク内のファイルから、該当する記憶領域のデータがメモリへ転送される。
この技術におけるハードディスクをサーバ402のメモリ443に置き換えることで、キャッシュ領域506の特定のアドレスがアクセスされたときに、メモリ443内の該当する記憶領域のデータを、キャッシュ領域506へ転送することができる。
図4の情報処理システムによれば、サーバ401内でメモリ枯渇警報が発生した場合に、VM411−iに対してサーバ402のメモリ443を使用させることができる。これにより、VM411−1〜VM411−3を強制的に終了させることなく、継続して動作させることが可能になる。
図9は、図4のハイパーバイザ412が行う制御処理の具体例を示すフローチャートである。まず、バルーン管理部431は、VM411−iのバルーンドライバ421−iから追記記憶量の割り当て要求を受け付け(ステップ901)、追加記憶量がメモリ413から割り当て可能な記憶量を超えるか否かを判定する(ステップ902)。例えば、バルーン管理部431は、現在のバルーン領域503の記憶量と追加記憶量との合計がバルーン警告値を超える場合に、追加記憶量が割り当て可能な記憶量を超えると判定することができる。
追加記憶量が割り当て可能な記憶量を超える場合(ステップ902,YES)、バルーン管理部431は、メモリ413から割り当て可能な記憶量をVM411−iに対して割り当て、メモリ413内にキャッシュ領域を確保する(ステップ903)。そして、ローカル記憶制御部433は、そのキャッシュ領域の論理アドレスを、VM411−iが使用するPTEに登録する(ステップ904)。
次に、リモート記憶制御部434は、サーバ402のハイパーバイザ442に対して、不足記憶量を示す問い合わせを送信する(ステップ905)。不足記憶量は、追加記憶量と、メモリ413から割り当てた記憶量との差分に相当する。
ハイパーバイザ442のバルーン管理部461は、メモリ443から不足記憶量を割り当て可能であるか否かを示す応答を、リモート記憶制御部434へ送信する。そして、リモート記憶制御部434は、ハイパーバイザ442から受信した応答に基づいて、メモリ443から不足記憶量を割り当て可能であるか否かを判定する。
メモリ443から不足記憶量を割り当て可能であると判定した場合、リモート記憶制御部434は、ハイパーバイザ442に対して不足記憶量の割り当てを要求する(ステップ906)。そして、バルーン管理部461は、メモリ443から不足記憶量をVM411−iに対して割り当て、ローカル記憶制御部463は、割り当てられた記憶領域の論理アドレスを、VM411−iが使用するPTEに登録する。
次に、リモート記憶制御部434は、不足記憶量の記憶領域を確保したことを示す応答を、ハイパーバイザ442から受信する(ステップ907)。そして、バルーン管理部431は、追加記憶量を割り当てたことをバルーンドライバ421−iに通知し(ステップ908)、ローカル記憶制御部433は、メモリ413に対する定期監視を行う(ステップ909)。
追加記憶量が割り当て可能な記憶量以下である場合(ステップ902,NO)、バルーン管理部431は、メモリ413から追加記憶量をVM411−iに対して割り当てる(ステップ910)。そして、ローカル記憶制御部433は、ステップ908以降の処理を行う。
図9の制御処理によれば、リモート記憶制御部434は、ステップ905においてハイパーバイザ442に対して問い合わせを送信することで、メモリ443から不足記憶量を割り当て可能であるか否かを判定することができる。
なお、リモート記憶制御部434は、不足記憶量を示す問い合わせの代わりに、不足記憶量を含む使用記憶量を示す問い合わせを送信することもできる。使用記憶量としては、例えば、図8のリモート領域811とリモート領域812とを併せた記憶量を用いることができる。
この場合、リモート記憶制御部434は、ハイパーバイザ442から受信した応答に基づいて、メモリ443から使用記憶量を割り当て可能であるか否かを判定する。そして、使用記憶量を割り当て可能であると判定した場合、リモート記憶制御部434は、ハイパーバイザ442に対して使用記憶量の割り当てを要求する。
リモート領域811とリモート領域812とを併せた使用記憶量を、事前にメモリ443から割り当てておくことで、VM411−1のライブマイグレーションを迅速に実行することが可能になる。
情報処理システムが3台以上のサーバを含んでいる場合、リモート記憶制御部434は、各サーバのハイパーバイザに対して問い合わせを送信し、各サーバから受信した応答に基づいて、不足記憶量の割り当てを要求する要求先のサーバを決定する。
図10は、VM411−iがサーバ402のメモリ443からデータを読み出す場合に、ハイパーバイザ412が行う読み出し制御処理の例を示している。図10の読み出し制御処理は、以下の手順で行われる。
P1:VM411−iが、サーバ401のハードディスク1002又はサーバ402のメモリ443に対応する論理アドレスを含む読み出し要求を発行し、サーバ401内のハードウェア1001においてページフォルト(ページ例外)が発生する。
P2:ハードウェア1001により例外処理が行われ、ハイパーバイザ412のリモート記憶制御部434によるページ処理に移行する。リモート記憶制御部434は、VM411−iの識別情報と、読み出し要求に含まれる論理アドレスとをチェックする。
P3:論理アドレスがハードディスク1002に対応する場合、リモート記憶制御部434は、ハードディスク1002からデータを読み出す。一方、論理アドレスがメモリ443に対応する場合、リモート記憶制御部434は、メモリ443からデータを読み出す。
P4:リモート記憶制御部434は、ハードディスク1002又はメモリ443から読み出したデータを、メモリ413内のキャッシュ領域に書き込み、ローカル記憶制御部433は、PTEを更新する。
P5:ローカル記憶制御部433は、データが書き込まれたキャッシュ領域の論理アドレスをVM411−iに通知し、VM411−iは、通知された論理アドレスを用いて、キャッシュ領域からデータを読み出す。
図11は、図10の読み出し制御処理の例を示すフローチャートである。まず、ローカル記憶制御部433は、VM411−iから読み出し要求を受け付け、PTEにより、読み出し要求に含まれる論理アドレスを物理アドレスに変換して、物理アドレスをハードウェア1001へ転送する(ステップ1101)。
ハードウェア1001は、物理アドレスがメモリ413に対応するか否かを判定し(ステップ1102)、物理アドレスがメモリ413に対応する場合(ステップ1102,YES)、その物理アドレスに対するアクセスを許可する(ステップ1108)。
一方、物理アドレスがメモリ413に対応しない場合(ステップ1102,NO)、ページフォルトを発生させる(ステップ1103)。そして、リモート記憶制御部434は、ページ処理を行って(ステップ1104)、アクセス要求に含まれる論理アドレスがメモリ443に対応するか否かをチェックする(ステップ1105)。
論理アドレスがメモリ443に対応する場合(ステップ1105,YES)、リモート記憶制御部434は、メモリ443からデータを読み出し、読み出したデータをメモリ413内のキャッシュ領域に書き込む(ステップ1106)。そして、ローカル記憶制御部433は、書き込まれたデータの論理アドレス及び物理アドレスをPTEに登録する。
次に、ローカル記憶制御部433は、書き込まれたデータの論理アドレスをVM411−iに通知する(ステップ1107)。
一方、論理アドレスがハードディスク1002に対応する場合(ステップ1105,NO)、リモート記憶制御部434は、ハードディスク1002からデータを読み出し、読み出したデータをメモリ413内のキャッシュ領域に書き込む(ステップ1109)。そして、ローカル記憶制御部433は、書き込まれたデータの論理アドレス及び物理アドレスをPTEに登録し、リモート記憶制御部434は、ステップ1107の処理を行う。
VM411−iがサーバ402のメモリ443にデータを書き込む場合も、ハイパーバイザ412は、図10及び図11と同様にして書き込み制御処理を行う。
図12は、ハイパーバイザ412が行う読み出し制御処理のシーケンスの例を示している。図12の読み出し制御処理は、以下の手順で行われる。
P11:サーバ401のVM411−iは、サーバ402のメモリ443に対応する論理アドレスを含む読み出し要求を転送し、ローカル記憶制御部433は、PTE1201により、その論理アドレスを物理アドレスに変換する。物理アドレスがメモリ413内のキャッシュ領域に対応する場合、ローカル記憶制御部433は、キャッシュ領域からデータ(読み出しデータ)を読み出して、VM411−iへ転送する。
P12:物理アドレスがメモリ413に対応しない場合、ページフォルトが発生する。
P13:リモート記憶制御部434は、読み出し要求に含まれる論理アドレスを含むリモート読み出し要求を、サーバ402のローカル記憶制御部463へ送信する。
P14:ローカル記憶制御部463は、PTE1202により、リモート読み出し要求に含まれる論理アドレスを物理アドレスに変換する。
P15:ローカル記憶制御部463は、物理アドレスを用いてメモリ443にアクセスし、メモリ443からデータ(読み出しデータ)を読み出す。
P16:ローカル記憶制御部463は、読み出しデータをリモート記憶制御部434へ送信する。
P17:リモート記憶制御部434は、メモリ413内のキャッシュ領域を獲得する。
P18:リモート記憶制御部434は、ローカル記憶制御部463から受信した読み出しデータを、キャッシュ領域に書き込む。
P19:ローカル記憶制御部433は、書き込まれた読み出しデータの論理アドレス及び物理アドレスを、PTE1201に登録する。
P20:ローカル記憶制御部433は、読み出しデータの論理アドレスをVM411−iに通知する。
図12の読み出し制御処理によれば、VM411−iがサーバ402のメモリ443から、メモリ413内のキャッシュ領域を介して、データを読み出すことが可能になる。
図13は、ハイパーバイザ412が行う書き込み制御処理のシーケンスの例を示している。図13の書き込み制御処理は、以下の手順で行われる。
P31:サーバ401のVM411−iは、サーバ402のメモリ443に対応する論理アドレスを含む書き込み要求を転送し、ローカル記憶制御部433は、PTE1201により、その論理アドレスを物理アドレスに変換する。物理アドレスがメモリ413内のキャッシュ領域に対応する場合、ローカル記憶制御部433は、書き込みデータをキャッシュ領域に書き込んで、書き込み完了をVM411−iに通知する。
P32:物理アドレスがメモリ413に対応しない場合、ページフォルトが発生する。
P33:リモート記憶制御部434は、メモリ413内のキャッシュ領域を獲得する。
P34:リモート記憶制御部434は、書き込みデータをキャッシュ領域に書き込む。
P35:ローカル記憶制御部433は、書き込まれた書き込みデータの論理アドレス及び物理アドレスを、PTE1201に登録する。
P36:ローカル記憶制御部433は、書き込み完了及び書き込みデータの論理アドレスを、VM411−iに通知する。
その後、バックグラウンドにおいて、以下の手順でサーバ401からサーバ402へ書き込みデータが転送される。
P41:リモート記憶制御部434は、書き込み要求に含まれる論理アドレスと書き込みデータとを、サーバ402のローカル記憶制御部463へ送信する。
P42:ローカル記憶制御部463は、PTE1202により、受信した論理アドレスを物理アドレスに変換する。
P43:ローカル記憶制御部463は、物理アドレスを用いてメモリ443にアクセスし、メモリ443に書き込みデータを書き込む。
P44:ローカル記憶制御部463は、書き込み完了をリモート記憶制御部434に通知する。
図13の書き込み制御処理によれば、VM411−iがサーバ402のメモリ443に対して、メモリ413内のキャッシュ領域を介して、データを書き込むことが可能になる。
ところで、サーバ401からサーバ402へ書き込みデータを転送する際に、メモリ413の記憶領域の更新された部分を示す更新情報を用いることができる。この場合、メモリ413の複数の部分それぞれが更新されたか否かを示すビットマップが、更新情報として用いられる。複数の部分は、複数のページであってもよい。
図14は、VM411−iのための更新情報の例を示している。サーバ401のローカル記憶制御部433は、VM411−iのためのキャッシュ領域がメモリ413内に確保された場合、必須領域テーブル1401、ローカル領域テーブル1402、及びリモート領域テーブル1403を生成する。
必須領域テーブル1401は、メモリ413内のVM必須領域の更新情報であり、ローカル領域テーブル1402は、VM付加領域内のローカル領域の更新情報であり、リモート領域テーブル1403は、VM付加領域内のキャッシュ領域の更新情報である。
サーバ402のローカル記憶制御部463は、リモート領域テーブル1404を生成する。リモート領域テーブル1404は、VM411−iに対して割り当てられたメモリ443の記憶領域の更新情報である。
メモリ413又はメモリ443のデータが更新された場合、更新された部分に対応する更新情報のビットが論理“1”(オン)に設定される。オンに設定されたビットは、ダーティビットと呼ばれることがある。
必須領域テーブル1401及びローカル領域テーブル1402は、VM411−iのライブマイグレーションを実行する際に利用される。一方、リモート領域テーブル1403及びリモート領域テーブル1404は、サーバ401からサーバ402へ書き込みデータを転送する際に利用される。
図15は、更新情報生成処理の例を示すフローチャートである。図15の更新情報生成処理は、例えば、図9のステップ906において行われる。まず、ローカル記憶制御部433は、メモリ413の更新情報として、必須領域テーブル1401、ローカル領域テーブル1402、及びリモート領域テーブル1403を生成する(ステップ1501)。
次に、ローカル記憶制御部433は、ローカル記憶制御部463に対して、メモリ443の更新情報の生成を要求し(ステップ1502)、ローカル記憶制御部463は、リモート領域テーブル1404を生成する。
図13の手順P34において、ローカル記憶制御部433は、キャッシュ領域内で書き込みデータが書き込まれた部分に対応する、リモート領域テーブル1403のビットを、ダーティビットに変更する。これにより、キャッシュ領域が更新されたことを示す情報が、リモート領域テーブル1403に記録される。
リモート記憶制御部434は、リモート領域テーブル1403を一定間隔でチェックする。リモート領域テーブル1403にダーティビットが設定されている場合、リモート記憶制御部434は、手順P41において、ダーティビットに対応する部分のデータをキャッシュ領域から読み出して、ローカル記憶制御部463へ送信する。そして、ローカル記憶制御部433は、そのダーティビットを論理“0”(オフ)に変更する。これにより、キャッシュ領域が更新されたことを示す情報がリセットされる。
手順P43において、ローカル記憶制御部463は、メモリ443内で書き込みデータが書き込まれた部分に対応する、リモート領域テーブル1404のビットを、ダーティビットに変更する。これにより、メモリ443の記憶領域が更新されたことを示す情報が、リモート領域テーブル1404に記録される。
図14の更新情報を用いることで、各VM411−iのメモリ空間の更新状況をリアルタイムに管理することができる。これにより、キャッシュ領域内の書き込みデータを、サーバ401からサーバ402へバックグラウンドで転送することが可能になるとともに、VM411−iのライブマイグレーションを、所望のタイミングで実行することが可能になる。
図16は、VM411−iのライブマイグレーションの例を示している。VM411−iのライブマイグレーションは、VM411−iによるキャッシュ領域の使用時間が所定時間を超えた場合に実行される。
VM411−iのライブマイグレーションは、プレライブマイグレーション又はポストライブマイグレーションのいずれであってもよい。プレライブマイグレーションの場合、メモリ413内のデータがメモリ443へコピーされた後に、VM411−iのCPU制御情報がハイパーバイザ442へ転送される。CPU制御情報は、VM411−iが行う処理の進捗状況等を示す制御情報である。一方、ポストライブマイグレーションの場合、VM411−iのCPU制御情報がハイパーバイザ442へ転送された後に、メモリ413内のデータがメモリ443へコピーされる。
プレライブマイグレーションは、例えば、以下の手順で実行される。
P51:LM制御部432は、必須領域テーブル1401及びローカル領域テーブル1402のすべてのビットを、ダーティビットに変更する。
P52:LM制御部432は、ダーティビットに対応する部分のデータをメモリ413から順に読み出して、LM制御部462へ転送し、LM制御部462は、受信したデータをメモリ443に書き込む。LM制御部432は、ダーティビットの個数が閾値以下に減少するまで、データ転送を繰り返す。
P53:ダーティビットの個数が閾値以下に減少した場合、LM制御部432は、VM411−iの動作を一時停止させ、CPU制御情報と残りの部分のデータとを、LM制御部462へ転送する。
P54:LM制御部462は、受信したCPU制御情報を用いて、サーバ402内でVM411−iを再稼働させる。
一方、ポストライブマイグレーションは、例えば、以下の手順で実行される。
P61:LM制御部432は、VM411−iの動作を一時停止させる。
P62:LM制御部432は、CPU制御情報をLM制御部462へ転送する。
P63:LM制御部462は、受信したCPU制御情報を用いて、サーバ402内でVM411−iを再稼働させる。
P64:LM制御部432は、VM411−iがアクセスした部分のデータを、オンデマンドでメモリ413から読み出して、LM制御部462へ転送するとともに、残りの部分のデータを、並行してLM制御部462へ転送する。LM制御部462は、受信したデータをメモリ443に書き込む。
バルーン管理部431は、各VM411−iが使用するキャッシュ領域に対する最終アクセス時刻を記録しておく。そして、バルーン管理部431は、バルーン領域の未使用の記憶量が所定値以下に減少した場合、最終アクセス時刻の古い順に、キャッシュ領域を削除する。これにより、メモリ413内に、新たなキャッシュ領域を確保することが可能になる。
図17は、図9のステップ909における定期監視処理の例を示すフローチャートである。まず、ローカル記憶制御部433は、メモリ413の使用状況を一定間隔で監視し(ステップ1701)、バルーン管理部431がローカル領域として使用可能な記憶量が、所定値以上変化したか否かをチェックする(ステップ1702)。使用可能な記憶量の変化が所定値未満である場合(ステップ1702,NO)、ローカル記憶制御部433は、ステップ1701及びステップ1702の処理を繰り返す。
一方、使用可能な記憶量の変化が所定値以上である場合(ステップ1702,YES)、ローカル記憶制御部433は、使用可能な記憶量が増加したか否かをチェックする(ステップ1703)。使用可能な記憶量が増加した場合(ステップ1703,YES)、ローカル記憶制御部433は、キャッシュ領域のデータをローカル領域へ移動させる(ステップ1704)。
一方、使用可能な記憶量が減少した場合(ステップ1703,NO)、ローカル記憶制御部433は、ローカル領域のデータをキャッシュ領域へ移動させる(ステップ1705)。
図1のサーバ101の構成は一例に過ぎず、サーバ101の用途又は条件に応じて、一部の構成要素を省略又は変更してもよい。
図2の情報処理装置201の構成は一例に過ぎず、情報処理装置201の用途又は条件に応じて、一部の構成要素を省略又は変更してもよい。
図4の情報処理システムの構成は一例に過ぎず、情報処理システムの用途又は条件に応じて、一部の構成要素を省略又は変更してもよい。例えば、情報処理システムは、3台以上のサーバを含んでいてもよい。
図3、図9、図11、図15、及び図17のフローチャートは一例に過ぎず、情報処理システムの構成又は条件に応じて一部の処理を省略又は変更してもよい。例えば、ローカル領域とキャッシュ領域との間でデータを移動させる必要がない場合は、図9のステップ909の定期監視処理を省略することができる。
図5〜図8に示した記憶領域は一例に過ぎず、記憶領域の割り当て結果は、稼働しているVMの個数及び負荷に応じて変化する。図10及び図12の読み出し制御処理と図13の書き込み制御処理は一例に過ぎず、これらの制御処理は、情報処理システムの構成又は条件に応じて変化する。
図14の更新情報は一例に過ぎず、更新情報は、情報処理システムの構成又は条件に応じて変化する。図16のライブマイグレーションは一例に過ぎず、ライブマイグレーションにおけるVMの移動元サーバ及び移動先サーバは、情報処理システムの構成又は条件に応じて変化する。
図18は、図2の情報処理装置201、図4のサーバ401、又はサーバ402として用いられる情報処理装置(コンピュータ)のハードウェア構成例を示している。図18の情報処理装置は、CPU1801、メモリ1802、入力装置1803、出力装置1804、補助記憶装置1805、媒体駆動装置1806、及びネットワーク接続装置1807を含む。これらの構成要素はバス1808により互いに接続されている。
メモリ1802は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)、フラッシュメモリ等の半導体メモリであり、処理に用いられるプログラム及びデータを格納する。メモリ1802は、図2の第1記憶部211、図4のメモリ413、又はメモリ443として用いることができる。
CPU1801(プロセッサ)は、例えば、メモリ1802を利用してプログラムを実行することにより、図2の判定部212及び制御部213として動作する。
CPU1801は、メモリ1802を利用してプログラムを実行することにより、図4のVM411−1〜VM411−3及びハイパーバイザ412を動作させる。CPU1801は、プログラムを実行することにより、バルーンドライバ421−1〜バルーンドライバ421−3も動作させる。CPU1801は、プログラムを実行することにより、バルーン管理部431、LM制御部432、ローカル記憶制御部433、及びリモート記憶制御部434も動作させる。
CPU1801は、プログラムを実行することにより、VM441及びハイパーバイザ442も動作させる。CPU1801は、プログラムを実行することにより、バルーンドライバ451、バルーン管理部461、LM制御部462、ローカル記憶制御部463、及びリモート記憶制御部464も動作させる。
入力装置1803は、例えば、キーボード、ポインティングデバイス等であり、オペレータ又はユーザからの指示又は情報の入力に用いられる。出力装置1804は、例えば、表示装置、プリンタ、スピーカ等であり、オペレータ又はユーザへの問い合わせ又は指示、及び処理結果の出力に用いられる。
補助記憶装置1805は、例えば、磁気ディスク装置、光ディスク装置、光磁気ディスク装置、テープ装置等である。補助記憶装置1805は、ハードディスクドライブであってもよい。情報処理装置は、補助記憶装置1805にプログラム及びデータを格納しておき、それらをメモリ1802にロードして使用することができる。
媒体駆動装置1806は、可搬型記録媒体1809を駆動し、その記録内容にアクセスする。可搬型記録媒体1809は、メモリデバイス、フレキシブルディスク、光ディスク、光磁気ディスク等である。可搬型記録媒体1809は、CD−ROM(Compact Disk Read Only Memory)、DVD(Digital Versatile Disk)、USB(Universal Serial Bus)メモリ等であってもよい。オペレータ又はユーザは、この可搬型記録媒体1809にプログラム及びデータを格納しておき、それらをメモリ1802にロードして使用することができる。
このように、処理に用いられるプログラム及びデータを格納するコンピュータ読み取り可能な記録媒体は、メモリ1802、補助記憶装置1805、又は可搬型記録媒体1809のような、物理的な(非一時的な)記録媒体である。
ネットワーク接続装置1807は、LAN(Local Area Network)、WAN(Wide Area Network)等の通信ネットワークに接続され、通信に伴うデータ変換を行う通信インタフェース回路である。情報処理装置は、ネットワーク接続装置1807を介して他の情報処理装置と通信する。情報処理装置は、プログラム及びデータを外部の装置からネットワーク接続装置1807を介して受信し、それらをメモリ1802にロードして使用することもできる。
なお、情報処理装置が図18のすべての構成要素を含む必要はなく、用途又は条件に応じて一部の構成要素を省略することも可能である。例えば、ユーザ又はオペレータとのインタフェースが不要である場合は、入力装置1803及び出力装置1804を省略してもよい。また、可搬型記録媒体1809を使用しない場合は、媒体駆動装置1806を省略してもよい。
開示の実施形態とその利点について詳しく説明したが、当業者は、特許請求の範囲に明確に記載した本発明の範囲から逸脱することなく、様々な変更、追加、省略をすることができるであろう。
図1乃至図18を参照しながら説明した実施形態に関し、さらに以下の付記を開示する。
(付記1)
仮想マシンを動作させる情報処理装置であって、
前記仮想マシンが使用するデータを記憶する第1記憶部と、
前記仮想マシンが要求する追加記憶量が、前記第1記憶部の記憶容量のうち前記仮想マシンに対して割り当て可能な記憶量を超えるか否かを判定する判定部と、
前記追加記憶量が前記割り当て可能な記憶量を超えると前記判定部が判定した場合、前記追加記憶量のうち前記第1記憶部内で不足する不足記憶量を、他の情報処理装置内の第2記憶部から割り当て可能であるか否かを判定し、前記不足記憶量を前記第2記憶部から割り当て可能であると判定した場合、前記他の情報処理装置に対して前記不足記憶量の割り当てを要求する制御部と、
を備えることを特徴とする情報処理装置。
(付記2)
前記制御部は、前記他の情報処理装置内で動作する仮想マシンモニタに対して、前記不足記憶量を示す問い合わせを送信し、前記仮想マシンモニタから受信する応答に基づいて、前記不足記憶量を前記第2記憶部から割り当て可能であるか否かを判定し、前記不足記憶量を前記第2記憶部から割り当て可能であると判定した場合、前記仮想マシンモニタに対して前記不足記憶量の割り当てを要求することを特徴とする付記1記載の情報処理装置。
(付記3)
前記制御部は、前記他の情報処理装置内で動作する仮想マシンモニタに対して、前記不足記憶量を含む使用記憶量を示す問い合わせを送信し、前記仮想マシンモニタから受信する応答に基づいて、前記使用記憶量を前記第2記憶部から割り当て可能であるか否かを判定し、前記使用記憶量を前記第2記憶部から割り当て可能であると判定した場合、前記仮想マシンモニタに対して前記使用記憶量の割り当てを要求することを特徴とする付記1記載の情報処理装置。
(付記4)
前記制御部は、前記仮想マシンが要求した読み出しデータの論理アドレスが前記第2記憶部内の記憶領域に対応する場合、前記仮想マシンモニタに対して前記読み出しデータを要求し、前記仮想マシンモニタから前記読み出しデータを受信し、受信した前記読み出しデータを前記第1記憶部内のキャッシュ領域に書き込み、前記キャッシュ領域に対応する論理アドレスを前記仮想マシンに通知することを特徴とする付記2又は3記載の情報処理装置。
(付記5)
前記第1記憶部は、前記仮想マシンに割り当てられた第1記憶領域と、前記仮想マシンに割り当てられた前記第2記憶部内の第2記憶領域に格納されているデータをキャッシュするキャッシュ領域とを含み、
前記制御部は、前記追加記憶量が前記割り当て可能な記憶量を超えると前記判定部が判定した場合、前記第1記憶領域の更新された部分を示す第1更新情報と、前記キャッシュ領域の更新された部分を示す第2更新情報とを生成し、前記仮想マシンが発行した書き込みデータの論理アドレスが前記第2記憶領域に対応する場合、前記書き込みデータを前記キャッシュ領域に書き込み、前記キャッシュ領域が更新されたことを示す情報を前記第2更新情報に記録し、前記キャッシュ領域内の前記書き込みデータに対応する論理アドレスを前記仮想マシンに通知し、前記第2更新情報に基づいて、前記キャッシュ領域内の前記書き込みデータと前記書き込みデータの論理アドレスとを、前記仮想マシンモニタへ送信することを特徴とする付記2又は3記載の情報処理装置。
(付記6)
前記制御部は、前記仮想マシンを前記他の情報処理装置へ移動させる場合、前記第1記憶領域全体が更新されたことを示す情報を前記第1更新情報に記録し、前記第1更新情報に基づいて、前記第1記憶領域内のデータと前記仮想マシンの制御情報とを、前記仮想マシンモニタへ送信することを特徴とする付記5記載の情報処理装置。
(付記7)
第1情報処理装置と第2情報処理装置とを備える情報処理システムであって、
前記第1情報処理装置は、
前記第1情報処理装置内で動作する仮想マシンが使用するデータを記憶する第1記憶部と、
前記仮想マシンが要求する追加記憶量が、前記第1記憶部の記憶容量のうち前記仮想マシンに対して割り当て可能な記憶量を超えるか否かを判定する判定部と、
前記追加記憶量が前記割り当て可能な記憶量を超えると前記判定部が判定した場合、前記追加記憶量のうち前記第1記憶部内で不足する不足記憶量を、前記第2情報処理装置内の第2記憶部から割り当て可能であるか否かを判定し、前記不足記憶量を前記第2記憶部から割り当て可能であると判定した場合、前記第2情報処理装置に対して前記不足記憶量の割り当てを要求する制御部と、
を含むことを特徴とする情報処理システム。
(付記8)
前記制御部は、前記第2情報処理装置内で動作する仮想マシンモニタに対して、前記不足記憶量を示す問い合わせを送信し、前記仮想マシンモニタから受信する応答に基づいて、前記不足記憶量を前記第2記憶部から割り当て可能であるか否かを判定し、前記不足記憶量を前記第2記憶部から割り当て可能であると判定した場合、前記仮想マシンモニタに対して前記不足記憶量の割り当てを要求することを特徴とする付記7記載の情報処理システム。
(付記9)
前記制御部は、前記第2情報処理装置内で動作する仮想マシンモニタに対して、前記不足記憶量を含む使用記憶量を示す問い合わせを送信し、前記仮想マシンモニタから受信する応答に基づいて、前記使用記憶量を前記第2記憶部から割り当て可能であるか否かを判定し、前記使用記憶量を前記第2記憶部から割り当て可能であると判定した場合、前記仮想マシンモニタに対して前記使用記憶量の割り当てを要求することを特徴とする付記7記載の情報処理システム。
(付記10)
前記制御部は、前記仮想マシンが要求した読み出しデータの論理アドレスが前記第2記憶部内の記憶領域に対応する場合、前記仮想マシンモニタに対して前記読み出しデータを要求し、前記仮想マシンモニタから前記読み出しデータを受信し、受信した前記読み出しデータを前記第1記憶部内のキャッシュ領域に書き込み、前記キャッシュ領域に対応する論理アドレスを前記仮想マシンに通知することを特徴とする付記8又は9記載の情報処理システム。
(付記11)
前記第1記憶部は、前記仮想マシンに割り当てられた第1記憶領域と、前記仮想マシンに割り当てられた前記第2記憶部内の第2記憶領域に格納されているデータをキャッシュするキャッシュ領域とを含み、
前記制御部は、前記追加記憶量が前記割り当て可能な記憶量を超えると前記判定部が判定した場合、前記第1記憶領域の更新された部分を示す第1更新情報と、前記キャッシュ領域の更新された部分を示す第2更新情報とを生成し、前記仮想マシンが発行した書き込みデータの論理アドレスが前記第2記憶領域に対応する場合、前記書き込みデータを前記キャッシュ領域に書き込み、前記キャッシュ領域が更新されたことを示す情報を前記第2更新情報に記録し、前記キャッシュ領域内の前記書き込みデータに対応する論理アドレスを前記仮想マシンに通知し、前記第2更新情報に基づいて、前記キャッシュ領域内の前記書き込みデータと前記書き込みデータの論理アドレスとを、前記仮想マシンモニタへ送信することを特徴とする付記8又は9記載の情報処理システム。
(付記12)
前記制御部は、前記仮想マシンを前記第2情報処理装置へ移動させる場合、前記第1記憶領域全体が更新されたことを示す情報を前記第1更新情報に記録し、前記第1更新情報に基づいて、前記第1記憶領域内のデータと前記仮想マシンの制御情報とを、前記仮想マシンモニタへ送信することを特徴とする付記11記載の情報処理システム。
(付記13)
仮想マシンを動作させる第1情報処理装置のためのプログラムであって、
前記仮想マシンが要求する追加記憶量が、前記仮想マシンが使用するデータを記憶する、前記第1情報処理装置内の第1記憶部の記憶容量のうち、前記仮想マシンに対して割り当て可能な記憶量を超えるか否かを判定し、
前記追加記憶量が前記割り当て可能な記憶量を超えると判定した場合、前記追加記憶量のうち前記第1記憶部内で不足する不足記憶量を、第2情報処理装置内の第2記憶部から割り当て可能であるか否かを判定し、
前記不足記憶量を前記第2記憶部から割り当て可能であると判定した場合、前記第2情報処理装置に対して前記不足記憶量の割り当てを要求する、
処理を前記第1情報処理装置に実行させるためのプログラム。
(付記14)
前記第1情報処理装置は、前記第2情報処理装置内で動作する仮想マシンモニタに対して、前記不足記憶量を示す問い合わせを送信し、前記仮想マシンモニタから受信する応答に基づいて、前記不足記憶量を前記第2記憶部から割り当て可能であるか否かを判定し、前記不足記憶量を前記第2記憶部から割り当て可能であると判定した場合、前記仮想マシンモニタに対して前記不足記憶量の割り当てを要求することを特徴とする付記13記載のプログラム。
(付記15)
前記第1情報処理装置は、前記第2情報処理装置内で動作する仮想マシンモニタに対して、前記不足記憶量を含む使用記憶量を示す問い合わせを送信し、前記仮想マシンモニタから受信する応答に基づいて、前記使用記憶量を前記第2記憶部から割り当て可能であるか否かを判定し、前記使用記憶量を前記第2記憶部から割り当て可能であると判定した場合、前記仮想マシンモニタに対して前記使用記憶量の割り当てを要求することを特徴とする付記13記載のプログラム。
(付記16)
前記第1情報処理装置は、前記仮想マシンが要求した読み出しデータの論理アドレスが前記第2記憶部内の記憶領域に対応する場合、前記仮想マシンモニタに対して前記読み出しデータを要求し、前記仮想マシンモニタから前記読み出しデータを受信し、受信した前記読み出しデータを前記第1記憶部内のキャッシュ領域に書き込み、前記キャッシュ領域に対応する論理アドレスを前記仮想マシンに通知することを特徴とする付記13又は14記載のプログラム。
(付記17)
前記第1記憶部は、前記仮想マシンに割り当てられた第1記憶領域と、前記仮想マシンに割り当てられた前記第2記憶部内の第2記憶領域に格納されているデータをキャッシュするキャッシュ領域とを含み、
前記第1情報処理装置は、前記追加記憶量が前記割り当て可能な記憶量を超えると前記判定部が判定した場合、前記第1記憶領域の更新された部分を示す第1更新情報と、前記キャッシュ領域の更新された部分を示す第2更新情報とを生成し、前記仮想マシンが発行した書き込みデータの論理アドレスが前記第2記憶領域に対応する場合、前記書き込みデータを前記キャッシュ領域に書き込み、前記キャッシュ領域が更新されたことを示す情報を前記第2更新情報に記録し、前記キャッシュ領域内の前記書き込みデータに対応する論理アドレスを前記仮想マシンに通知し、前記第2更新情報に基づいて、前記キャッシュ領域内の前記書き込みデータと前記書き込みデータの論理アドレスとを、前記仮想マシンモニタへ送信することを特徴とする付記13又は14記載のプログラム。
(付記18)
前記第1情報処理装置は、前記仮想マシンを前記他の情報処理装置へ移動させる場合、前記第1記憶領域全体が更新されたことを示す情報を前記第1更新情報に記録し、前記第1更新情報に基づいて、前記第1記憶領域内のデータと前記仮想マシンの制御情報とを、前記仮想マシンモニタへ送信することを特徴とする付記17記載のプログラム。
101、401〜403 サーバ
111−1〜111−3、411−1〜411−3、441 VM
112、412、442 ハイパーバイザ
113、413、443 メモリ
121−1〜121−3、421−1〜421−3、451 バルーンドライバ
131、431、461 バルーン管理部
201 情報処理装置
211 第1記憶部
212 判定部
213 制御部
403 通信ネットワーク
432、462 LM制御部
433、463 ローカル記憶制御部
434、464 リモート記憶制御部
501 ハイパーバイザ領域
502−1、502−2 VM必須領域
503 バルーン領域
504−1、504−2 VM付加領域
505、804 ローカル領域
506 キャッシュ領域
801〜803 メモリモジュール
811、812 リモート領域
1001 ハードウェア
1002 ハードディスク
1401 必須領域テーブル
1402 ローカル領域テーブル
1403、1404 リモート領域テーブル
1801 CPU
1802 メモリ
1803 入力装置
1804 出力装置
1805 補助記憶装置
1806 媒体駆動装置
1807 ネットワーク接続装置
1808 バス
1809 可搬型記録媒体

Claims (8)

  1. 仮想マシンを動作させる情報処理装置であって、
    前記仮想マシンが使用するデータを記憶する第1記憶部と、
    前記仮想マシンが要求する追加記憶量が、前記第1記憶部の記憶容量のうち前記仮想マシンに対して割り当て可能な記憶量を超えるか否かを判定する判定部と、
    前記追加記憶量が前記割り当て可能な記憶量を超えると前記判定部が判定した場合、前記追加記憶量のうち前記第1記憶部内で不足する不足記憶量を、他の情報処理装置内の第2記憶部から割り当て可能であるか否かを判定し、前記不足記憶量を前記第2記憶部から割り当て可能であると判定した場合、前記他の情報処理装置に対して前記不足記憶量の割り当てを要求する制御部と、
    を備えることを特徴とする情報処理装置。
  2. 前記制御部は、前記他の情報処理装置内で動作する仮想マシンモニタに対して、前記不足記憶量を示す問い合わせを送信し、前記仮想マシンモニタから受信する応答に基づいて、前記不足記憶量を前記第2記憶部から割り当て可能であるか否かを判定し、前記不足記憶量を前記第2記憶部から割り当て可能であると判定した場合、前記仮想マシンモニタに対して前記不足記憶量の割り当てを要求することを特徴とする請求項1記載の情報処理装置。
  3. 前記制御部は、前記他の情報処理装置内で動作する仮想マシンモニタに対して、前記不足記憶量を含む使用記憶量を示す問い合わせを送信し、前記仮想マシンモニタから受信する応答に基づいて、前記使用記憶量を前記第2記憶部から割り当て可能であるか否かを判定し、前記使用記憶量を前記第2記憶部から割り当て可能であると判定した場合、前記仮想マシンモニタに対して前記使用記憶量の割り当てを要求することを特徴とする請求項1記載の情報処理装置。
  4. 前記制御部は、前記仮想マシンが要求した読み出しデータの論理アドレスが前記第2記憶部内の記憶領域に対応する場合、前記仮想マシンモニタに対して前記読み出しデータを要求し、前記仮想マシンモニタから前記読み出しデータを受信し、受信した前記読み出しデータを前記第1記憶部内のキャッシュ領域に書き込み、前記キャッシュ領域に対応する論理アドレスを前記仮想マシンに通知することを特徴とする請求項2又は3記載の情報処理装置。
  5. 前記第1記憶部は、前記仮想マシンに割り当てられた第1記憶領域と、前記仮想マシンに割り当てられた前記第2記憶部内の第2記憶領域に格納されているデータをキャッシュするキャッシュ領域とを含み、
    前記制御部は、前記追加記憶量が前記割り当て可能な記憶量を超えると前記判定部が判定した場合、前記第1記憶領域の更新された部分を示す第1更新情報と、前記キャッシュ領域の更新された部分を示す第2更新情報とを生成し、前記仮想マシンが発行した書き込みデータの論理アドレスが前記第2記憶領域に対応する場合、前記書き込みデータを前記キャッシュ領域に書き込み、前記キャッシュ領域が更新されたことを示す情報を前記第2更新情報に記録し、前記キャッシュ領域内の前記書き込みデータに対応する論理アドレスを前記仮想マシンに通知し、前記第2更新情報に基づいて、前記キャッシュ領域内の前記書き込みデータと前記書き込みデータの論理アドレスとを、前記仮想マシンモニタへ送信することを特徴とする請求項2又は3記載の情報処理装置。
  6. 前記制御部は、前記仮想マシンを前記他の情報処理装置へ移動させる場合、前記第1記憶領域全体が更新されたことを示す情報を前記第1更新情報に記録し、前記第1更新情報に基づいて、前記第1記憶領域内のデータと前記仮想マシンの制御情報とを、前記仮想マシンモニタへ送信することを特徴とする請求項5記載の情報処理装置。
  7. 第1情報処理装置と第2情報処理装置とを備える情報処理システムであって、
    前記第1情報処理装置は、
    前記第1情報処理装置内で動作する仮想マシンが使用するデータを記憶する第1記憶部と、
    前記仮想マシンが要求する追加記憶量が、前記第1記憶部の記憶容量のうち前記仮想マシンに対して割り当て可能な記憶量を超えるか否かを判定する判定部と、
    前記追加記憶量が前記割り当て可能な記憶量を超えると前記判定部が判定した場合、前記追加記憶量のうち前記第1記憶部内で不足する不足記憶量を、前記第2情報処理装置内の第2記憶部から割り当て可能であるか否かを判定し、前記不足記憶量を前記第2記憶部から割り当て可能であると判定した場合、前記第2情報処理装置に対して前記不足記憶量の割り当てを要求する制御部と、
    を含むことを特徴とする情報処理システム。
  8. 仮想マシンを動作させる第1情報処理装置のためのプログラムであって、
    前記仮想マシンが要求する追加記憶量が、前記仮想マシンが使用するデータを記憶する、前記第1情報処理装置内の第1記憶部の記憶容量のうち、前記仮想マシンに対して割り当て可能な記憶量を超えるか否かを判定し、
    前記追加記憶量が前記割り当て可能な記憶量を超えると判定した場合、前記追加記憶量のうち前記第1記憶部内で不足する不足記憶量を、第2情報処理装置内の第2記憶部から割り当て可能であるか否かを判定し、
    前記不足記憶量を前記第2記憶部から割り当て可能であると判定した場合、前記第2情報処理装置に対して前記不足記憶量の割り当てを要求する、
    処理を前記第1情報処理装置に実行させるためのプログラム。
JP2018043136A 2018-03-09 2018-03-09 情報処理装置、情報処理システム、及びプログラム Pending JP2019159562A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018043136A JP2019159562A (ja) 2018-03-09 2018-03-09 情報処理装置、情報処理システム、及びプログラム
US16/293,970 US20190278632A1 (en) 2018-03-09 2019-03-06 Information processing apparatus and information processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018043136A JP2019159562A (ja) 2018-03-09 2018-03-09 情報処理装置、情報処理システム、及びプログラム

Publications (1)

Publication Number Publication Date
JP2019159562A true JP2019159562A (ja) 2019-09-19

Family

ID=67842722

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018043136A Pending JP2019159562A (ja) 2018-03-09 2018-03-09 情報処理装置、情報処理システム、及びプログラム

Country Status (2)

Country Link
US (1) US20190278632A1 (ja)
JP (1) JP2019159562A (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11176054B2 (en) 2019-03-08 2021-11-16 International Business Machines Corporation Host virtual address space for secure interface control storage
US11068310B2 (en) * 2019-03-08 2021-07-20 International Business Machines Corporation Secure storage query and donation
US11093170B2 (en) * 2019-04-02 2021-08-17 EMC IP Holding Company LLC Dataset splitting based on workload footprint analysis
US11409619B2 (en) 2020-04-29 2022-08-09 The Research Foundation For The State University Of New York Recovering a virtual machine after failure of post-copy live migration
US20230027307A1 (en) * 2021-07-20 2023-01-26 Vmware, Inc. Hypervisor-assisted transient cache for virtual machines

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06231033A (ja) * 1993-02-05 1994-08-19 Fujitsu Ltd 分散共有メモリシステムを有するデータ処理装置
WO2008117470A1 (ja) * 2007-03-27 2008-10-02 Fujitsu Limited 仮想計算機制御プログラム、仮想計算機制御システムおよび仮想計算機移動方法
WO2014007249A1 (ja) * 2012-07-05 2014-01-09 株式会社日立製作所 I/oノード及び複数の計算ノードに備えられたキャッシュメモリの制御方法
JP2015118436A (ja) * 2013-12-17 2015-06-25 富士通株式会社 情報処理システム,制御プログラム及び制御方法
JP2016038888A (ja) * 2014-08-12 2016-03-22 富士通株式会社 情報処理システム、情報処理方法及び情報処理プログラム
US20160124774A1 (en) * 2014-11-04 2016-05-05 Vmware, Inc. Cluster resource management in a virtualized computing environment

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06231033A (ja) * 1993-02-05 1994-08-19 Fujitsu Ltd 分散共有メモリシステムを有するデータ処理装置
WO2008117470A1 (ja) * 2007-03-27 2008-10-02 Fujitsu Limited 仮想計算機制御プログラム、仮想計算機制御システムおよび仮想計算機移動方法
WO2014007249A1 (ja) * 2012-07-05 2014-01-09 株式会社日立製作所 I/oノード及び複数の計算ノードに備えられたキャッシュメモリの制御方法
JP2015118436A (ja) * 2013-12-17 2015-06-25 富士通株式会社 情報処理システム,制御プログラム及び制御方法
JP2016038888A (ja) * 2014-08-12 2016-03-22 富士通株式会社 情報処理システム、情報処理方法及び情報処理プログラム
US20160124774A1 (en) * 2014-11-04 2016-05-05 Vmware, Inc. Cluster resource management in a virtualized computing environment

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
永井 洋太郎 他: "ramfs,iSCSI,LVMを用いた仮想サーバクラスタにおけるメモリ共有手法", 情報処理学会研究報告 平成21年度2月、3月研究発表会開催分 [DVD−ROM], JPN6021047111, 15 April 2010 (2010-04-15), pages 1 - 6, ISSN: 0004649080 *

Also Published As

Publication number Publication date
US20190278632A1 (en) 2019-09-12

Similar Documents

Publication Publication Date Title
US10339047B2 (en) Allocating and configuring persistent memory
JP2019159562A (ja) 情報処理装置、情報処理システム、及びプログラム
JP5039029B2 (ja) 動的論理パーティショニングによるコンピューティング環境におけるコンピュータ・メモリの管理
JP5484117B2 (ja) ハイパーバイザ及びサーバ装置
US8312201B2 (en) Managing memory allocations loans
US7971026B2 (en) Information processing apparatus and access control method
US10289564B2 (en) Computer and memory region management method
US10534720B2 (en) Application aware memory resource management
JP5373893B2 (ja) 異なるサイズを有するデータのブロックを格納し、取り出すための構成
US20160266923A1 (en) Information processing system and method for controlling information processing system
JP6882662B2 (ja) マイグレーションプログラム、情報処理装置およびマイグレーション方法
WO2011002436A1 (en) Hypervisor-based management of local and remote virtual memory pages
US10289563B2 (en) Efficient reclamation of pre-allocated direct memory access (DMA) memory
US11593170B2 (en) Flexible reverse ballooning for nested virtual machines
CN110955495B (zh) 虚拟化内存的管理方法、装置和存储介质
TW201432454A (zh) 針對大型共享位址空間之映射機構
US11132291B2 (en) System and method of FPGA-executed flash translation layer in multiple solid state drives
JP2014235501A (ja) ストレージ装置の制御方法、ストレージ装置及び情報処理装置
KR20040032745A (ko) 멀티프로세서 시스템에서 가상화된 물리적 메모리를관리하는 방법 및 시스템
WO2015132941A1 (ja) 計算機
US20240053998A1 (en) Method and apparatus for processing inter-core communication, and computer system
US10341177B2 (en) Parallel computing system and migration method
US10747450B2 (en) Dynamic virtual machine memory allocation
WO2024051292A1 (zh) 数据处理系统、内存镜像方法、装置和计算设备
US20220261268A1 (en) Control device and control method for virtual machine system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201210

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20211028

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211130

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20220524