JPWO2011093051A1 - 仮想マシン処理システム、仮想マシン処理方法及び計算機 - Google Patents

仮想マシン処理システム、仮想マシン処理方法及び計算機 Download PDF

Info

Publication number
JPWO2011093051A1
JPWO2011093051A1 JP2011551754A JP2011551754A JPWO2011093051A1 JP WO2011093051 A1 JPWO2011093051 A1 JP WO2011093051A1 JP 2011551754 A JP2011551754 A JP 2011551754A JP 2011551754 A JP2011551754 A JP 2011551754A JP WO2011093051 A1 JPWO2011093051 A1 JP WO2011093051A1
Authority
JP
Japan
Prior art keywords
virtual machine
computer
memory image
memory
data
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
JP2011551754A
Other languages
English (en)
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Publication of JPWO2011093051A1 publication Critical patent/JPWO2011093051A1/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/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

仮想マシン処理システム(10)のメモリ保持部(106)は第一計算機(100)のメモリイメージ(IMG)を保持しておく。更新記録部(203)は、移送された仮想マシン(VM)を第二計算機(200)の仮想マシン実行部(202)が実行して更新された、メモリイメージ(IMG1)の部分領域を示す更新情報(UD)を記録する。返送部(160)は、アンドゥ要求を受け付けると、更新情報(UD)が示す部分データ(PD)を第二計算機(200)から第一計算機(100)に送信する。第一計算機(100)の仮想マシン実行部(102)は、メモリ保持部(106)に保持されたメモリイメージ(IMG)と、第二計算機(200)より受信した部分データ(PD)と、を用いて仮想マシン(VM)の継続処理を実行する。

Description

本発明は、仮想マシン処理システム、仮想マシン処理方法、仮想マシンを実行する計算機、および計算機のためのコンピュータプログラムを格納している記憶媒体に関する。より具体的には、ネットワークを介して仮想マシンを移送する仮想マシン処理システム、仮想マシン処理方法、計算機およびプログラムを格納している記憶媒体に関する。
仮想化技術は、単一の物理的な計算機の上で1つ以上の仮想的な計算機を動作させる技術である。仮想的な計算機を仮想マシンという。
また、計算機が仮想マシンを動作させることを、計算機が仮想マシンをホストするという。仮想マシン上では、物理的な計算機と同様に、オペレーティングシステム(OS)とアプリケーションが動作する。
仮想化技術により種々のメリットが得られるが、一例として、データセンタ等の運用効率を高めることができる。例えば、負荷の低い複数の物理サーバをそれぞれ仮想マシンで置き換えることにより、目的の複数の機能を単一の物理サーバでホストすることができ、サーバの利用効率が高まる。
近年、計算機がホストしている仮想マシンを、当該仮想マシンが提供するサービスを停止することなく、ネットワークを介して別の計算機に移送する技術が実用化されている。この技術をライブ(動的)マイグレーションという。
ライブマイグレーションを用いると、状況に応じて仮想マシンの配置を変更することができる。例えば、高負荷のサーバからいくつかの仮想マシンを低負荷のサーバに移送すれば、サービスの速度と信頼性が向上し、サービス品質を高めることができる。また、例えば、低負荷のサーバから総ての仮想マシンを移送し、当該サーバの電源を切れば消費電力を削減することができる。さらに、例えば、障害が発生する可能性が高いサーバから仮想マシンを退避することで、処理の信頼性を高めることができる。
この種の技術に関し、特許文献1には、低負荷のサーバがホストしている仮想マシンを別のサーバに移送し、仮想マシンをホストしていないサーバを電源オフ状態にすることで、消費電力を削減する技術が記されている。
また、非特許文献1はライブマイグレーション方式の1つであるIterative Pre−copy方式(IPC方式)を記している。IPC方式では、移送先計算機が仮想マシンの処理を引き継ぐ前に、仮想マシンが必要とする総てのデータを移送元計算機から移送先計算機に転送する。そして、移送先計算機が処理を引き継いだ後は、移送元計算機からデータを転送しない。
特表2007−536657号公報
Christopher Clark, et al, "Live Migration of Virtual Machines", Proceedings of the 2nd conference on Symposium on Networked Systems Design & Implementation, pp 273-286, 2005.
ライブマイグレーションは、計算機で実行されていた仮想マシンのメモリイメージを移送元から移送先に移し、移送先の計算機で当該仮想マシンの実行を引き継ぐことにより完了する。
しかしながら、特許文献1および非特許文献1に記載のライブマイグレーションでは、仮想マシンの移送が完了した移送先計算機が過負荷になると、過負荷状態の解消に長時間を要する問題がある。このような問題は、例えば、サービスへのアクセスが急増することを予期できなかった場合や、人的な操作ミス、運用管理ソフトウェアの不具合などによって起こる。
移送先計算機の過負荷状態を解消するためには、過負荷の計算機からいくつかの仮想マシンを別の計算機(例えば移送元計算機や、第三の計算機)に移送する必要がある。しかしながら、移送のためのデータ転送にもCPUとネットワークを使用するため、CPUやネットワークが過負荷になった移送先計算機から仮想マシンを移送することには長時間を要する。そして、移送先計算機の過負荷状態が長時間になれば、仮想マシンが提供するサービスの品質が長時間低下する。
本発明は、上記課題に鑑みてなされたものであり、ライブマイグレーションにより仮想マシンの移送が完了した移送先計算機で過負荷状態が生じたとしても、これを短時間で解消することのできる技術を提供するものである。
本発明の仮想マシン処理システムは、仮想マシンのメモリイメージを記憶する仮想マシン記憶手段と、前記仮想マシンを実行して前記メモリイメージを更新する仮想マシン実行手段と、をそれぞれ備え、互いにネットワークを介して接続された第一計算機および第二計算機と、前記第一計算機の前記仮想マシン実行手段が実行している仮想マシンのメモリイメージを前記第二計算機に送信して前記仮想マシンを前記第一計算機から前記第二計算機に移送する移送手段と、前記第一計算機の前記仮想マシン記憶手段に記憶されたメモリイメージを保持しておくメモリ保持手段と、移送された前記仮想マシンを前記第二計算機の前記仮想マシン実行手段が実行して更新された、前記メモリイメージの部分領域を示す更新情報を記録する更新記録手段と、移送された前記仮想マシンを前記第二計算機から前記第一計算機に戻すアンドゥ要求を受け付けると、前記更新記録手段を参照して、前記更新情報が示す前記部分領域のデータを前記第二計算機から前記第一計算機に送信する返送手段と、を含み、前記第一計算機の前記仮想マシン実行手段が、前記メモリ保持手段に保持された前記メモリイメージと、前記第二計算機より受信した前記部分領域のデータと、を用いて前記仮想マシンの継続処理を実行する。
また、本発明の仮想マシン処理方法は、第一計算機が実行している仮想マシンのメモリイメージを第二計算機に送信して、前記仮想マシンを前記第一計算機から前記第二計算機に移送する移送ステップと、前記第一計算機の前記メモリイメージを保持しておくメモリ保持ステップと、移送された前記仮想マシンを前記第二計算機が実行して更新された、前記メモリイメージの部分領域を示す更新情報を記録する更新記録ステップと、移送された前記仮想マシンを前記第二計算機から前記第一計算機に戻すアンドゥステップと、を含み、かつ、前記アンドゥステップが、記録された前記更新情報が示す前記部分領域のデータを前記第二計算機から前記第一計算機に送信する返送ステップと、保持された前記第一計算機の前記メモリイメージと、送信された前記部分領域のデータと、を用いて、前記第一計算機で前記仮想マシンの継続処理を実行する継続実行ステップと、を含む。
また、本発明の計算機は、ネットワークを介して接続された他の計算機から、前記他の計算機が実行している仮想マシンのメモリイメージを受信して前記仮想マシンの移送を受け付ける受信手段と、受信した前記メモリイメージを記憶する仮想マシン記憶手段と、移送された前記仮想マシンを実行して、記憶された前記メモリイメージを更新する仮想マシン実行手段と、記憶された前記メモリイメージのうち前記仮想マシン実行手段によって更新された部分領域を示す更新情報を記録する更新記録手段と、移送された前記仮想マシンを前記他の計算機に戻すアンドゥ要求を受け付けると、前記更新記録手段を参照して、前記更新情報が示す前記部分領域のデータを前記他の計算機に送信する送信手段と、を含む。
また、本発明の記憶媒体は、仮想マシンを実行する仮想マシン実行手段を有する計算機にデータ処理を実行させるコンピュータプログラムを前記計算機に読み出し可能に格納した記憶媒体であって、前記データ処理が、ネットワークを介して接続された他の計算機から、前記他の計算機が実行している仮想マシンのメモリイメージを受信して前記仮想マシンの移送を受け付ける受信処理と、受信した前記メモリイメージを記憶する仮想マシン記憶処理と、移送された前記仮想マシンを実行して、記憶された前記メモリイメージを更新する仮想マシン実行処理と、記憶された前記メモリイメージのうち前記仮想マシン実行手段によって更新された部分領域を示す更新情報を記録する更新記録処理と、移送された前記仮想マシンを前記他の計算機に戻すアンドゥ要求を受け付けると、前記更新情報が示す前記部分領域のデータを前記他の計算機に送信する送信処理と、を含む。
また、本発明の計算機は、仮想マシンのメモリイメージを記憶する仮想マシン記憶手段と、前記仮想マシンを実行して前記メモリイメージを更新する仮想マシン実行手段と、ネットワークを介して接続された他の計算機に前記メモリイメージを送信して前記仮想マシンを移送する送信手段と、前記メモリイメージのうち他の計算機で更新された部分領域のデータを受信する受信手段と、を含み、前記仮想マシン記憶手段が、移送された前記仮想マシンにかかるメモリイメージを保持し、前記仮想マシン実行手段が、保持された前記メモリイメージと、受信した前記部分領域のデータと、を用いて前記仮想マシンの継続処理を実行する。
また、本発明のコンピュータプログラムは、仮想マシンを実行する計算機にデータ処理を実行させるコンピュータプログラムを前記計算機に読み出し可能に格納した記憶媒体であって、前記データ処理が、仮想マシンのメモリイメージを記憶する仮想マシン記憶処理と、前記仮想マシンを実行して前記メモリイメージを更新する仮想マシン実行処理と、ネットワークを介して接続された他の計算機に前記メモリイメージを送信して前記仮想マシンを移送する送信処理と、移送された前記仮想マシンにかかるメモリイメージを保持する保持処理と、前記メモリイメージのうち他の計算機で更新された部分領域のデータを受信する受信処理と、保持された前記メモリイメージと、受信した前記部分領域のデータと、を用いて前記仮想マシンの継続処理を実行する仮想マシン継続処理と、を含む。
なお、本発明の仮想マシン処理システムの各種の構成要素は、個々に独立した存在である必要はなく、複数の構成要素が一個のハードウェアとして形成されていること、一つの構成要素が複数のハードウェアで形成されていること、ある構成要素が他の構成要素の一部であること、ある構成要素の一部と他の構成要素の一部とが重複していること、等を許容する。
また、本発明の仮想マシン処理方法は、複数の工程を順番に記載してあるが、その記載の順番は複数の工程を実行する順番を限定するものではない。このため、本発明の仮想マシン処理方法を実施するときには、その複数の工程の順番は内容的に支障しない範囲で変更することができる。
さらに、本発明の仮想マシン処理方法は、複数の工程が個々に相違するタイミングで実行されることに限定されない。このため、ある工程の実行中に他の工程が発生すること、ある工程の実行タイミングと他の工程の実行タイミングとの一部ないし全部が重複していること、等を許容する。
本発明によれば、ライブマイグレーションにより移送が完了した仮想マシンを、短時間で移送元計算機に戻すアンドゥ処理が高速で実現される。このため、移送先計算機に過負荷状態が生じたとしても、これを短時間で解消することができ、サービス品質の低下が抑えられる。
上述した目的、およびその他の目的、特徴および利点は、以下に述べる好適な実施の形態、およびそれに付随する以下の図面によってさらに明らかになる。
本発明の第一実施形態にかかる仮想マシン処理システムを示す機能ブロック図である。 第一実施形態の仮想マシン処理システムの構成図である。 更新記録部の具体例を示す模式図である。 第一実施形態にかかる仮想マシン処理方法のフローチャートである。 第一実施形態にかかる仮想マシンの移送ステップを示すフローチャートである。 第一実施形態にかかる仮想マシンの返送ステップを示すフローチャートである。 本発明の第二実施形態にかかる仮想マシン処理システムを示す機能ブロック図である。 本発明の第三実施形態にかかる仮想マシン処理システムを示す機能ブロック図である。 第三実施形態にかかる仮想マシンの返送ステップを示すフローチャートである。
以下、本発明の実施形態を図面に基づいて説明する。尚、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。
<第一実施形態>
(仮想マシン処理システム)
図1は、本実施形態にかかる仮想マシン処理システム10を示す機能ブロック図である。図2は、仮想マシン処理システム10の構成図である。
はじめに、本実施形態の仮想マシン処理システム10の概要について説明する。
仮想マシン処理システム10は、第一計算機100および第二計算機200、移送部150、メモリ保持部106、更新記録部203ならびに返送部160を含む。
第一計算機100および第二計算機200は、仮想マシンVMのメモリイメージIMGを記憶する仮想マシン記憶部101、201と、仮想マシンVMを実行してメモリイメージIMGを更新する仮想マシン実行部102、202と、をそれぞれ備えている。第一計算機100と第二計算機200とは互いにネットワーク300を介して接続されている。
移送部150は、第一計算機100の仮想マシン実行部102が実行している仮想マシンVMのメモリイメージIMGを第二計算機200に送信して仮想マシンVMを第一計算機100から第二計算機200に移送する。
メモリ保持部106は、第一計算機100の仮想マシン記憶部101に記憶されたメモリイメージIMGを保持しておく。
更新記録部203は、移送された仮想マシンVMを第二計算機200の仮想マシン実行部202が実行して更新された、メモリイメージIMG1の部分領域を示す更新情報UDを記録する。
返送部160は、移送された仮想マシンVMを第二計算機200から第一計算機100に戻すアンドゥ要求を受け付けると、更新記録部203を参照して、更新情報UDが示す部分領域のデータ(部分データPD)を第二計算機200から第一計算機100に送信する。
そして、本実施形態の仮想マシン処理システム10は、第一計算機100の仮想マシン実行部102が、メモリ保持部106に保持されたメモリイメージIMGと、第二計算機200より受信した部分データPDと、を用いて仮想マシンVMの継続処理を実行する。
本実施形態の仮想マシン処理システム10における移送先にあたる第二計算機200は、仮想マシン記憶部201、仮想マシン実行部202、更新記録部203、送信部204および受信部205を含んで構成されている。
受信部205は、ネットワーク300を介して接続された他の計算機(第一計算機100)から、当該他の計算機(第一計算機100)が実行している仮想マシンVMのメモリイメージIMGを受信して仮想マシンVMの移送を受け付ける。
仮想マシン記憶部201は、受信したメモリイメージIMGを記憶する。
仮想マシン実行部202は、移送された仮想マシンVMを実行して、記憶されたメモリイメージIMGをメモリイメージIMG1に更新する。
更新記録部203は、記憶されたメモリイメージIMGのうち仮想マシン実行部202によってメモリイメージIMG1に更新された部分領域を示す更新情報UDを記録する。
送信部204は、移送された仮想マシンVMを他の計算機(第一計算機100)に戻すアンドゥ要求を受け付けると、更新記録部203を参照して、更新情報UDが示す部分領域のデータ(部分データPD)を他の計算機(第一計算機100)に送信する。
一方、仮想マシン処理システム10における移送元にあたる第一計算機100は、仮想マシン記憶部101、仮想マシン実行部102、送信部104および受信部105を含んで構成されている。
仮想マシン記憶部101は、仮想マシンVMのメモリイメージIMGを記憶する。
仮想マシン実行部102は、仮想マシンVMを実行してメモリイメージIMGを更新する。
送信部104は、ネットワーク300を介して接続された他の計算機(第二計算機200)にメモリイメージIMGを送信して仮想マシンVMを移送する。
受信部105は、メモリイメージIMGのうち他の計算機(第二計算機200)で更新された部分領域のデータ(部分データPD)を受信する。
そして、仮想マシン記憶部101は、移送された仮想マシンVMにかかるメモリイメージIMGを保持し、仮想マシン実行部102は、保持されたメモリイメージIMGと、受信した部分データPDと、を用いて仮想マシンVMの継続処理を実行する。
ここで、本実施形態でいう計算機は、コンピュータプログラムを読み取って対応する処理動作を実行できるように、CPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)、インタフェースユニット、等の汎用デバイスで構築されたハードウェア、所定の処理動作を実行するように構築された専用の論理回路、これらの組み合わせ、等として実施することができる。
また、本実施形態の各種の構成要素は、その機能を実現するように形成されていればよく、たとえば、所定の機能を発揮する専用のハードウェア、所定の機能がコンピュータプログラムにより付与された情報処理装置、コンピュータプログラムにより情報処理装置に実現された所定の機能、これらの任意の組み合わせ、等として実現することができる。
なお、本実施形態の仮想マシン処理システム10においてメモリイメージや各種情報を記憶または記録するとは、仮想マシン処理システム10を構成する装置が、少なくともデータを保持する機能を有することを意味している。
第一計算機100および第二計算機200は、それぞれ一つの筐体からなる単一の物理計算機であることに限られない。例えば、第二計算機200に関しては、移送されてきた仮想マシンVMのメモリイメージIMGを記憶する仮想マシン記憶部201と、アンドゥ要求に応じて第一計算機100に送信される部分データPDを記憶する記憶部とが、物理的に離間した他の記憶装置によって実現されてもよい。
また、仮想マシン処理システム10においては、更新記録部およびメモリ保持部は、第一計算機100と第二計算機200の内部にそれぞれ実装されてもよく、またはネットワーク300に接続された他の処理装置に実装されてもよい。以下、本実施形態では、第一計算機100の内部に更新記録部103とメモリ保持部106が実装され、第二計算機200の内部に更新記録部203が実装されている場合について説明する。なお、第二計算機200にはメモリ保持部206が設けられてもよく、かかる態様は第二実施形態で後述する。
次に、本実施形態の仮想マシン処理システム10についてより詳細に説明する。
仮想マシン処理システム10は、仮想マシンVMの移送元にあたる第一計算機100から、移送先にあたる第二計算機200に対して、ネットワーク300を介してライブマイグレーションで仮想マシンVMを移送する。そして、本実施形態の仮想マシン処理システム10は、移送が完了した仮想マシンVMを短時間で移送元の第一計算機100に戻せるシステムである。
以下では、移送が完了した仮想マシンVMを移送元の計算機に戻すことをアンドゥともいい、移送を完了前にこれを取り消すキャンセルとは区別する。
ここで、非特許文献1にかかるIPC方式では、移送の完了後に移送元計算機で仮想マシンのページを解放してデータを破棄し、移送の完了後に移送先計算機で仮想マシンの更新ページ番号を記録しない。そのため、従来のIPC方式では、移送の完了後に仮想マシンを移送元計算機に戻すためには、移送先計算機の仮想マシンの総てのデータを移送元計算機に転送することが必要であり、アンドゥ処理に多大なリソースと時間を要することとなる。
これに対し、本実施形態の仮想マシン処理システム10は、仮想マシンVMの移送の完了後も、移送元の第一計算機100で仮想マシンVMのメモリイメージIMGを破棄しない。そして、仮想マシンVMの移送の完了後に移送先の第二計算機200で仮想マシンVMの更新ページ番号を記録しておき、アンドゥ要求があると、移送先の第二計算機200が更新したページの部分データPDを移送元の第一計算機100に転送する。これにより、短時間でのアンドゥを実現する。
アンドゥ要求は種々の要因によって発生する。代表的なものとして、ユーザ(オペレータ)からの操作入力があった場合のほか、第二計算機200に不具合が生じた場合が挙げられる。すなわち、本実施形態において仮想マシン処理システム10またはその構成要素がアンドゥ要求を受け付けるとは、外部要求や割り込み要求に基づいて、移送完了後の仮想マシンVMを移送元(第一計算機100)に戻すアンドゥ処理が開始されることを意味する。
ネットワーク300は、仮想マシンVMの移送に関わるデータを転送するネットワークである。ネットワーク300は、例えば、Ethernet(登録商標)である。ネットワーク300は、仮想マシンVMの移送に関わるデータ以外のデータの転送に用いてもよい。
ネットワーク300には共有ストレージ310が接続されている。共有ストレージ310には、仮想マシンVMの本体プログラムや、仮想マシンVMを実行することでユーザに提供される各種機能またはコンテンツに関するデータが記憶されている。
(第一計算機)
図2の構成図に示すように、第一計算機100は、それぞれバス130に接続されたCPU110、送信部104、受信部105および主記憶装置120を備えている。
以下、第一計算機100の機能を説明する。
仮想マシン記憶部101は、仮想マシンVMのプログラムを含むデータをメモリイメージIMGとして記憶する手段である。仮想マシン記憶部101は、主記憶装置(メインメモリ)120または仮想記憶(バーチャルメモリ:図示せず)に割り当てられる(図2を参照)。図2には仮想マシン記憶部101が一つのみ図示されているが、主記憶装置120には、仮想マシンVMの数だけ仮想マシン記憶部101があってよい。
仮想マシン実行部102は、仮想マシンVMを管理し、仮想マシンVMのプログラムを実行する手段である。仮想マシン実行部102は、具体的には、CPU110、共有ストレージ310および主記憶装置120とで構成される(図2を参照)。CPU110は、仮想マシンVMの実行に必要なデータを共有ストレージ310から呼び出して主記憶装置120に格納し、当該仮想マシンVMを実行し、得られた出力データを共有ストレージ310に書き込む。かかる処理は、第一計算機100のOS上で動作する仮想化ソフトウェア(SW)によって行なわれる。
仮想マシン実行部102が仮想マシンVMを実行することで、仮想マシン記憶部101に記憶されたメモリイメージIMGは更新される。本実施形態において、仮想マシン実行部102が仮想マシンVMを実行してメモリイメージIMGが更新される具体的な態様は様々である。一例として、仮想マシン記憶部101に記憶されたメモリイメージIMGを仮想マシン実行部102が書き換える場合のほか、仮想マシン実行部102が仮想マシンVMを実行したことに起因して他の手段によりメモリイメージIMGが更新される場合を含む。
ここで、仮想マシンVMのメモリイメージIMGとは、仮想化ソフトウェアによって処理されているアプリケーションやデータに関する、主記憶装置や仮想記憶に格納されたメモリデータそのものを意味する。
そして、メモリイメージIMGを更新するとは、メモリイメージIMGの一部または全部が書き換えられることを意味する。ここで、更新前のメモリイメージIMGの少なくとも一部に対して同一のデータを上書きすることも、メモリイメージIMGを更新するという。したがって、メモリイメージIMGの更新の有無を判断するにあたり、メモリイメージIMGのデータビットに現に変更があるか否かを問わない。
更新記録部103は、仮想マシン実行部102が更新したメモリイメージIMGの部分領域を示す更新情報を記録する手段である。図2では、仮想マシン記憶部101と同様に更新記録部103が主記憶装置120に設けられている状態が例示されているが、これに限られない。メモリイメージIMGと更新情報とは、互いに異なる記憶装置に記憶されてもよい。
仮想マシン実行部102がメモリイメージIMGを更新する単位、および当該更新を更新記録部103が記録する単位は特に限定されず、互いに同一でも相違してもよい。
ここで、データはメモリ(主記憶装置120)等が記憶し、OSや仮想化ソフトウェアはメモリの領域を「ページ」と呼ばれる単位に等分して管理する。本実施形態では、仮想マシン実行部102が更新したメモリイメージIMGの領域をページ単位で記録する。ページの大きさは、例えば、4KBや4MBであり、メモリイメージIMGは多数のページに分割され、当該ページをそれぞれ識別するためのページ番号が設定されている。
送信部104は、仮想マシンVMの移送時に、メモリイメージIMGを第二計算機200の受信部205に送信する通信インタフェースである。受信部105は、仮想マシンVMのアンドゥ処理時に部分データPDを送信部204から受信する通信インタフェースである。
送信部104は、第一計算機100から第二計算機200にライブマイグレーションを行なうときに、総てのメモリイメージIMGをページ単位で受信部205に順に送信する。したがって、図1に示すように、第一計算機100の送信部104と第二計算機200の受信部205とは、仮想マシン処理システム10における移送部150を構成する。
なお、ライブマイグレーション時に受信部205に送信されるデータには、仮想マシンVMのメモリイメージIMGのほか、仮想マシンVMの処理の引き継ぎに必要な情報を含む。かかる情報には、例えば、CPUのレジスタの状態を示すメッセージがあるが、簡単のため以下の説明では省略する。
本実施形態の仮想マシン処理システム10は、第二計算機200に移送された時点における仮想マシンVMのメモリイメージIMGを、第一計算機100に所定時間だけ保持しておき、当該所定時間内に行なわれたアンドゥ処理を高速化することを特徴とする。
具体的には、第一計算機100の受信部105は、第二計算機200に移送された時点のメモリイメージIMGと、第二計算機200で仮想マシンVMが継続処理されて更新されたメモリイメージIMG1と、の差分を含む部分データPDを、送信部204から受信する。本実施形態では、更新後のメモリイメージIMG1のうち、仮想マシン実行部202で更新されたページのデータを第一計算機100に送信することで仮想マシンVMのライブマイグレーションのアンドゥ処理が行なわれる。
すなわち、第一計算機100の受信部105と第二計算機200の送信部204とは、仮想マシン処理システム10における返送部160を構成する。
図1に示すメモリ保持部106は、仮想マシンVMの移送時のメモリイメージIMGの保持および消去を制御する手段であり、具体的にはCPU110および主記憶装置120により実現される(図2を参照)。
ここで、メモリ保持部106が第一計算機100の仮想マシン記憶部101に記憶されたメモリイメージIMGを保持するとは、メモリイメージIMGを呼び出し可能に保存しておくことをいう。メモリ保持部106の具体的な処理としては、仮想マシン記憶部101に記憶されたメモリイメージIMGを、主記憶装置120から退避させることなくそのまま保存しておくほか、メモリイメージIMGを他の記憶領域に転送して保存してもよい。または、メモリ保持部106は、圧縮処理などを施してメモリイメージIMGを復元可能に変換した状態でこれを保存してもよい。
なお、メモリ保持部106は、第二計算機200への移送完了時の仮想マシンVMのメモリイメージIMGを保持し続けてもよく、または保持しているメモリイメージIMGをその後に更新してもよい。すなわち、移送先の第二計算機200で実行された仮想マシンVMの処理結果の少なくとも一部がアンドゥ処理時に第一計算機100にフィードバックできればよい。そのかぎりにおいて、移送元の第一計算機100に保持しておくメモリイメージIMGをライブマイグレーションの完了後に更新してもよい。
後述するように、メモリ保持部106は、移送された仮想マシンVMを移送元に戻すアンドゥ要求を受け付けると、移送時のメモリイメージIMGを用いて仮想マシン実行部102により仮想マシンVMの継続処理を実行させる。
(第二計算機)
図2の構成図に示すように、第二計算機200は、それぞれバス230に接続されたCPU210、送信部204、受信部205および主記憶装置220を備えており、第一計算機100とハードウェア構成が共通している。
以下、第二計算機200の機能を説明する。
受信部205は、仮想マシンVMからメモリイメージIMGを受信して仮想マシンVMの移送を受け付ける。
仮想マシン記憶部201は、受信した仮想マシンVMのメモリイメージIMGを主記憶装置120に記憶する。
図2に示すように、仮想マシン記憶部201は、主記憶装置220または仮想記憶(バーチャルメモリ:図示せず)に割り当てられている。主記憶装置220には、第二計算機200のOSと、当該OS上で動作する仮想化ソフトウェア(SW)とが配備されている。仮想マシンVMのメモリイメージIMGは、仮想化ソフトウェア上でホストされる。
仮想マシンVMのメモリイメージIMGは、仮想マシンOS、アプリケーション、およびこれらの仮想マシンOSやアプリケーションが使用するデータを含む。一つの仮想マシンOSに対して複数のアプリケーションを起動してもよい。
仮想マシン実行部202は、仮想マシンVMを管理し、メモリイメージIMGを処理することで仮想マシンVMを実行する手段である。具体的には、CPU210、共有ストレージ310および主記憶装置220とで構成される。移送された仮想マシンVMを仮想マシン実行部202が実行することにより、メモリイメージIMGは一部または全部が更新されてメモリイメージIMG1(図1を参照)となる。
更新記録部203は、仮想マシンVMの移送の完了後に、仮想マシン実行部202が更新した仮想マシン記憶部201の部分領域を示す更新情報UDを記録する。更新記録部203は、例えば、仮想化ソフトウェアが、仮想マシンVMのページ更新を監視し、更新ページ番号を主記憶装置220に記録することで実現される。主記憶装置220には、仮想マシン実行部202が実行する仮想マシンVMの数だけ仮想マシン記憶部201が設けられている。
更新情報UDのデータ形式は特に限定されないが、本実施形態では更新記録部103と同様に、ページ単位でメモリイメージIMG1の更新を記録する。
図3は、更新記録部203の具体例を示す模式図である。更新記録部203には、更新情報UDとして、仮想マシン実行部202によってメモリイメージIMGからメモリイメージIMG1に更新された仮想マシンVMの更新ページのページ番号がリスト形式で記録されている。図3では、540、1315、1810という3つのページ番号が更新記録部203に記録されている状態を例示している。これは、メモリイメージIMG1のうち、上記3箇所のページ番号の部分領域において、メモリイメージIMGから更新されたことを示している。例えば、図2に示すように、仮想マシンOSが起動しているアプリケーションがメモリイメージIMGのページ番号1315の指し示すページのデータを更新すると、更新記録部203に更新情報UDとして「1315」が記録される。
ただし、本実施形態に代えて、更新情報UDとして他のデータを用いてもよい。具体的には、更新されたページの番号ではなく、更新されたページに関するメモリイメージ(部分イメージ)自体を、当該部分イメージのページ番号と対応付けて更新記録部203に格納してもよい。
図1、2に戻り、送信部204は、アンドゥ処理時に、更新記録部203を参照して、第二計算機200が更新したページに関する部分データPDを第二計算機200から第一計算機100に送信する。
ここで、更新記録部203を参照するとは、更新記録部203に記録された更新情報UDに基づいて、メモリイメージのうちの更新された部分領域を呼び出すことをいう。一例として、更新記録部203が、リスト形式で表されたページ番号である場合(図3を参照)、更新記録部203を参照するとは、記録されたページ番号の一部または全部を取得することを意味する。
なお、図1、2では、部分データPDが主記憶装置220の仮想マシン記憶部201から呼び出されて受信部105に送信される状態が図示されているが、これに限られない。例えば、仮想マシン実行部202により更新されたメモリイメージIMGの部分データPDを、ネットワーク300に接続された記憶装置(図示せず)に対して、当該部分データPDのページ番号と対応付けて格納しておいてもよい。そして、アンドゥ処理時には当該記憶装置からページ番号とともに部分データPDを第一計算機100に転送してもよい。このように、仮想マシン処理システム10においては、更新記録部203が第二計算機200のハードウェアの内部に設けられるか否かは任意である。
図1、2では、説明の簡単化のために、移送元の第一計算機100と移送先の第二計算機200とを区別して表したが、各計算機は移送元と移送先の両方の機能を持つ。つまり、各計算機は、移送元(第一計算機100)としても移送先(第二計算機200)としても振る舞うことができる。
(仮想マシン処理方法)
図4は、本方法のフローチャートである。以下、図1〜4を用いて、本実施形態の仮想マシン処理方法(以下、本方法という場合がある。)について説明する。
本方法は、移送ステップS100、メモリ保持ステップS200、更新記録ステップS400およびアンドゥステップS800を含む。
移送ステップS100では、第一計算機100が実行している仮想マシンVMのメモリイメージIMGを第二計算機200に送信して、仮想マシンVMを第一計算機100から第二計算機200に移送する。
メモリ保持ステップS200では、第一計算機100のメモリイメージIMGを保持しておく。
更新記録ステップS400では、移送された仮想マシンVMを第二計算機200が実行してメモリイメージIMGからメモリイメージIMG1に更新された、メモリイメージIMG1の部分領域を示す更新情報UDを記録する。
アンドゥステップS800では、移送された仮想マシンVMを第二計算機200から第一計算機100に戻す。
そして、本方法のアンドゥステップS800は、返送ステップS600と継続実行ステップS700とをさらに含む。
返送ステップS600では、記録された更新情報UDが示す部分領域のデータ(部分データPD)を第二計算機200から第一計算機100に送信する。
継続実行ステップS700では、保持された第一計算機100のメモリイメージIMGと、送信された部分領域のデータ(部分データPD)と、を用いて、第一計算機100で仮想マシンVMの継続処理を実行する。
ここで、返送ステップS600と継続実行ステップS700とは、時間的な先後の入れ替えおよび重複を許容する。すなわち、返送ステップS600が完了してから継続実行ステップS700を開始してもよいが、返送ステップS600よりも先にまたはこれと重複して継続実行ステップS700を開始してもよい。
なお、本実施形態によれば、仮想マシンの移送処理およびアンドゥ処理を第一計算機100および第二計算機200に実行させる第一および第二のコンピュータプログラムが提供される。また、本実施形態によれば、第一のコンピュータプログラムが第一計算機100に読み出し可能に格納された記憶媒体(図示せず)、および第二のコンピュータプログラムが第二計算機200に読み出し可能に格納された記憶媒体(図示せず)が提供される。
第一のコンピュータプログラムは、仮想マシンVMを実行する計算機(第一計算機100)のためのコンピュータプログラムであり、仮想マシン記憶処理、仮想マシン実行処理、送信処理、保持処理、受信処理および仮想マシン継続処理を当該計算機に実行させる。
仮想マシン記憶処理では、仮想マシンVMのメモリイメージIMGを記憶する。
仮想マシン実行処理では、仮想マシンVMを実行してメモリイメージIMGを更新する。
送信処理では、ネットワーク300を介して接続された他の計算機(第二計算機200)にメモリイメージIMGを送信して仮想マシンVMを移送する。
保持処理では、移送された仮想マシンVMにかかるメモリイメージIMGを保持する。
受信処理では、メモリイメージIMGのうち他の計算機(第二計算機200)で更新された部分領域のデータ(部分データPD)を受信する。
仮想マシン継続処理では、保持されたメモリイメージIMGと、受信した部分領域のデータ(部分データPD)と、を用いて仮想マシンVMの継続処理を実行する。
なお、コンピュータプログラムに対応した各種動作を計算機に実行させることは、各種デバイスを計算機に動作制御させることも意味している。例えば、計算機に各種データを記憶させることは、計算機に固定されている主記憶装置等の情報記憶媒体にCPUが各種データを格納することのほか、データ処理装置に交換自在に装填されている情報記憶媒体にCPUが各種データを格納すること、等を許容する。
また、第二のコンピュータプログラムは、仮想マシンVMを実行する仮想マシン実行部202を有する計算機(第二計算機200)のためのコンピュータプログラムであり、受信処理、仮想マシン記憶処理、仮想マシン実行処理、更新記録処理および送信処理を当該計算機に実行させる。
受信処理では、ネットワーク300を介して接続された他の計算機(第一計算機100)から、他の計算機(第一計算機100)が実行している仮想マシンVMのメモリイメージIMGを受信して仮想マシンVMの移送を受け付ける。
仮想マシン記憶処理では、受信したメモリイメージIMGを記憶する。
仮想マシン実行処理では、移送された仮想マシンVMを実行して、記憶されたメモリイメージIMGを更新してメモリイメージIMG1とする。
更新記録処理では、記憶されたメモリイメージIMGのうち仮想マシン実行部202によって更新された部分領域を示す更新情報UDを記録する。
送信処理では、移送された仮想マシンVMを他の計算機(第一計算機100)に戻すアンドゥ要求を受け付けると、更新情報UDが示す部分領域のデータ(部分データPD)を他の計算機(第一計算機100)に送信する。
以下、本方法をさらに詳細に説明する。
図5は、仮想マシンの移送ステップS100を示すフローチャートである。本方法においては、第一計算機100から第二計算機200への仮想マシンVMの移送はIPC方式で行う場合を例に説明する。
まず、第一計算機100の送信部104は、ネットワーク300を介して第二計算機200の受信部205に接続する(ステップS102)。
次に、第一計算機100の更新記録部103は、移送対象の仮想マシンVMの更新ページ番号の記録を開始する(ステップS104)。
そして、第一計算機100の送信部104は、当該仮想マシンVMのメモリイメージIMGの総てのデータを、第二計算機200の受信部205に送信する(ステップS106)。
ここで、IPC方式では、仮想マシンVMのメモリイメージIMGを第一計算機100から第二計算機200に転送する間に、仮想マシンVMの実行を第一計算機100で継続する(ステップS108)。したがって、ステップS106の終了時点で、仮想マシン記憶部101に記憶されているメモリイメージIMGは更新されている。更新記録部103は、かかる更新領域を更新情報UD0として記録する。更新領域は、ページ単位で管理および記録される。
ステップS106が終了すると、CPU110は、更新記録部103(主記憶装置120)が更新情報UD0として記録している更新ページの数を検索し、これが所定の閾値以下であるか否かを判断する(ステップS110)。この閾値は、更新情報UD0に記録された更新ページのデータを送信部104から受信部205に一度で送信できる数に設定されている。
ステップS110が否定された場合(ステップS110:NO)、送信部104は更新ページのデータを受信部205に転送し、転送したページ番号の記録を更新情報UD0から削除して(ステップS112)、ステップS108に戻る。そして、更新ページのデータを送信部104が送信する間、仮想マシン実行部102は仮想マシンVMの実行を継続する(ステップS108)。
一方、更新ページの数が閾値以下の場合(ステップS110:YES)、仮想マシン実行部102は、移送対象の仮想マシンVMの処理を中断する(ステップS114)。また、更新記録部103は、更新ページ番号の記録を終了する(ステップS116)。
ステップS114の後にステップS116を実行することにより、第一計算機100で更新された総ての更新ページ番号が更新記録部103に記録される。このため、下記のステップS118において、更新ページのデータが第二計算機200に漏れなく送信される。
なお、ステップS106からステップS112の処理をキャンセルしても、第一計算機100では仮想マシンVMの処理が継続している(ステップS108)ため、ネットワーク障害が発生しても仮想マシンの障害にはならない。
そして、第一計算機100の送信部104は、更新情報UD0に記録された残りの更新ページのデータ、およびその他に必要な情報を、第二計算機200の受信部205に送信する(ステップS118)。
ステップS114以降、移送ステップS100の終了までの間、仮想マシン処理システム10において仮想マシンVMが停止する。しかしながら、ステップS118で送信されるデータ量は僅かであるため、ステップS118に要する時間は数ミリ秒から数百ミリ秒と短く、仮想マシンVMが停止したことによるサービス品質への悪影響は小さい。
第二計算機200の送信部204は、移送部150(送信部104、受信部205)による仮想マシンVMの移送が完了したことを示す完了情報FIを第一計算機100の受信部105に送信する(ステップS120)。
図4に戻り、第一計算機100では、移送完了時点における仮想マシンVMのメモリイメージIMGを、メモリ保持部106が保持する(メモリ保持ステップS200)。すなわち、仮想マシン記憶部101が記憶している仮想マシンVMのメモリイメージIMGは、即座には破棄しない。
このとき、メモリ保持部106は、メモリイメージIMGを主記憶装置120内の記憶位置にそのまま留めてもよく、または第一計算機100の内部または外部に設けられた他の記憶装置に退避させてもよい。以下、メモリ保持部106が仮想マシン記憶部101(主記憶装置120)にメモリイメージIMGを保管する場合を例に説明する。
第二計算機200の仮想マシン記憶部201は、受信部205が受信したメモリイメージIMGを記憶する。そして、第二計算機200が有するOSおよび仮想化ソフトウェアと、共有ストレージ310に記憶されたプログラムおよびデータとを用いて、仮想マシンVMの処理を再開する。
そして、第二計算機200の仮想マシン実行部202は、仮想マシンVMを実行し、メモリイメージIMGをメモリイメージIMG1に更新する(ステップS300)。
更新記録部203は、メモリイメージIMGからメモリイメージIMG1に更新された部分領域を示す更新ページ番号を、更新情報UDとして記録する(更新記録ステップS400)。
移送された仮想マシンVMを第一計算機100に戻すアンドゥ要求があるまで(ステップS500:NO)、第二計算機200は仮想マシンVMの処理を継続する。
次に、移送が完了した仮想マシンVMを移送元の第一計算機100に戻すアンドゥステップS800を詳細に説明する。本実施形態では、IPC方式により仮想マシンVMをアンドゥ処理する。
図6は、アンドゥステップS800のうちの返送ステップS600を示すフローチャートである。アンドゥ処理の開始時における仮想マシン記憶部201の状態をメモリイメージIMG1とする。
まず、第二計算機200の送信部204は第一計算機100の受信部105に接続し(ステップS611)、仮想マシン記憶部101が当該仮想マシンVMのメモリイメージIMGを保管していることを確認する。
仮想マシン記憶部101が仮想マシンVMのメモリイメージIMGを保管していない場合、仮想マシンVMのアンドゥ処理にあたってはメモリイメージIMG1の全データを送信する必要がある。しかしながら、本方法では、メモリ保持部106が仮想マシン記憶部101のメモリイメージIMGを保管しているため、アンドゥ処理にあたって転送すべきデータはメモリイメージIMGからの差分のみで足りる。
メモリ保持部106が仮想マシン記憶部101のメモリイメージIMGを破棄する条件については後述する。
そして、IPC方式でアンドゥ処理する間にも、第二計算機200の仮想マシン実行部202により仮想マシンVMの実行が継続され(ステップS612)、仮想マシン記憶部201のメモリイメージIMG1はさらに更新される。
次に、CPU210は、更新記録部203(主記憶装置220)が記憶している更新ページの数を検索し、これが所定の閾値以下であるか否かを判断する(ステップS613)。この閾値は、更新情報UDに記録された更新ページのデータを送信部204から受信部105に一度で送信できる数に設定されている。
なお、この閾値は、移送ステップS100において第一計算機100の更新記録部103を検索する場合(ステップS106)の閾値と等しくてもよく、または相違してもよい。
更新情報UDに記録された更新ページの数が閾値よりも多く、ステップS613が否定された場合(ステップS613:NO)、送信部204は、更新情報UDが示す部分領域のデータ(部分データPD)を第一計算機100に送信する。具体的には、更新情報UDに記録された更新ページのデータを受信部105に転送する。そして、転送したページ番号の記録を更新情報UDから削除して(ステップS614)、ステップS612に戻る。
更新ページのデータを送信部204が送信する間、仮想マシン実行部202は仮想マシンVMの実行を継続する(ステップS612)。このため、仮想マシン記憶部201に記憶されたメモリイメージIMG1は、メモリイメージIMG2へと更新される。
図3に示したように、更新記録部203は、更新情報UDに加えて、ステップS614で更新された部分領域のページ番号を、更新情報UD2として記録する。更新情報UD2に記録された部分領域のデータを部分データPD2とする。
図3は、更新情報UDとして記録されたページ番号:540、1315、1810に加えて、メモリイメージIMG1のページ番号:1920の部分領域が更新された状態を示している。すなわち、メモリイメージIMG1からメモリイメージIMG2に更新された部分領域を示すページ番号が、更新記録部203に更新情報UD2として記録される。
また、図3は、ステップS614において、転送したページ番号:540の記録を更新情報UDから削除する状態を模式的に示している。
すなわち、本方法では、返送部160(送信部204および受信部105)が部分領域のデータ(部分データPD)を第一計算機100に送信する間に、第二計算機200は仮想マシンVMの実行を継続する。第二計算機200は、仮想マシンVMの継続的な実行によりメモリイメージIMG1を追加更新してメモリイメージIMG2とする。そして、返送部160は、メモリイメージIMG2のうち追加更新された部分領域のデータ(部分データPD2)を、第一計算機100にさらに送信する。
一方、更新ページの数が閾値以下の場合(ステップS613:YES)、仮想マシン実行部202は、返送対象の仮想マシンVMの処理を中断する(ステップS615)。また、更新記録部203は、更新ページ番号の記録を終了する(ステップS616)。
ステップS615の後にステップS616を実行することにより、第二計算機200で更新された総ての更新ページ番号が更新記録部203に記録される。このため、第二計算機200で追加更新された部分データPD2が、下記のステップS617において第一計算機100に漏れなく送信される。
第二計算機200の送信部204は、更新情報UD、UD2に記録された残りの更新ページにかかる部分データPD、PD2、およびその他に必要な情報を、第一計算機100の受信部105に送信する(ステップS617)。かかる送信データのデータ量は僅かであるため、仮想マシンVMがステップS615以降に停止する時間は短い。このため、アンドゥ処理がサービス品質にもたらす悪影響は小さい。
以上、IPC方式を行う本方法のアンドゥステップS800においては、更新情報UD、UD2が示す部分領域のデータ(部分データPD、PD2)を第二計算機200から第一計算機100に送信するステップS614、S617を一回または複数回おこなった後に継続実行ステップS700を行う。
図4に戻り、継続実行ステップS700では、第一計算機100により仮想マシンVMの継続処理が実行される。
本方法では、第一計算機100が部分領域のデータ(部分データPD、PD2)を第二計算機200から受信した後に継続処理(継続実行ステップS700)の実行を開始する。
以上、本実施形態ではIPC方式によって仮想マシンVMのライブマイグレーションをアンドゥ処理することを説明した。ただし、本発明はこれに限られるものではない。第三実施形態にて後述するように、アンドゥ要求があると移送元の第一計算機100で直ちに仮想マシンVMの処理を引き継ぎ、更新情報が示す部分領域のデータをその後に受信するポストコピー方式でもよい。
なお、第一計算機100から第二計算機200に仮想マシンVMを移送してから、メモリ保持部106は所定の条件を満たした場合にメモリイメージIMGを破棄してもよい。また、更新記録部203による更新情報UD(ページ番号)の記録も、永続的に行うことは必ずしも必要ではなく、所定の条件を満たした場合に更新情報UDの記録を終了してよい。これにより、主記憶装置120、220に過大な負荷を与えることなく、仮想マシンVMのライブマイグレーションのアンドゥ処理を実用的に用いることができる。
より具体的には、メモリ保持部106は、移送部150による仮想マシンVMの移送が完了したことを示す完了情報FIを受信し、さらに、保持しているメモリイメージIMGを破棄する破棄条件が完了情報FIの受信後に満たされた場合に、メモリイメージIMGを破棄することとしている。
本実施形態の破棄条件は、以下の4つのいずれか一以上である。
(1)第一計算機100のメモリの空き領域が所定以下となったとき;
(2)完了情報FIを受信してから所定時間が経過したとき;
(3)更新記録部203による更新情報UDの記録が終了したことを示す記録終了通知XPを受信したとき;
(4)保持しているメモリイメージIMGを破棄する要求を受け付けたとき。
上記(1)の場合、保持しているメモリイメージIMGを破棄してメモリ(主記憶装置120)の空き領域を確保することにより、仮想マシンVMの移送後の第一計算機100の動作を高速化する。すなわち、仮想マシンVMのアンドゥ処理の高速化に代えて、第一計算機100における他の仮想マシンの動作速度の高速化を図ることで、第一計算機100が提供するサービスの総合的な品質を向上することが可能である。
上記(2)の場合、第二計算機200に移送されてから相当時間が経過したことで、以降はアンドゥ処理が行われる可能性が低いと推定してメモリイメージIMGを破棄するものである。これにより、特に複数の仮想マシンのライブマイグレーションが行われた場合に、第一計算機100の過負荷を好適に解消することができる。
上記(3)の場合、第二計算機200による更新情報UDの記録終了の時点以降は、第一計算機100に保持されたメモリイメージIMGと、第二計算機200から送信される部分データPD(およびPD2)のみでは、第二計算機200における仮想マシンVMの最新のメモリイメージを復元することができない。このため、以降はアンドゥ要求を受け付けないこととし、第一計算機100からメモリイメージIMGを破棄する。
上記(4)は、ユーザ(オペレータ)からの操作入力または運用管理ソフトウェアからのシステムメッセージ等により、メモリイメージIMGを破棄する命令を受けた場合である。
図1、2に示すように、メモリ保持部106は、メモリイメージIMGを破棄したことを示すメモリ破棄通知NLを第二計算機200に送信する。
一方、更新記録部203は、以下の3つの記録終了条件のいずれか一以上が満たされた場合に、更新情報UDの記録を終了する。
(1)移送された仮想マシンVMの実行を第二計算機200の仮想マシン実行部202が開始してから所定時間が経過したとき;
(2)保持しているメモリイメージIMGをメモリ保持部106が破棄したことを示すメモリ破棄通知NLを受信したとき、
(3)更新情報UDの記録を終了する要求を受け付けたとき。
上記(1)は、所定時間の経過により、アンドゥ処理が行われる可能性が低いと推定され、また更新情報UDが示す部分データPDのデータ量が多くなるため、以降はアンドゥ要求を受け付けないこととしたものである。具体的には、第二計算機200のCPU210は、ステップS300(図4を参照)の開始以降の経過時間を計測し、これが予め設定された所定の閾値時間を超えた場合に、更新記録部203による更新情報UDの記録を終了するとよい。
上記(2)は、第一計算機100からメモリ破棄通知NLを受信した場合に更新記録部203による更新情報UDの記録を終了するものである。
上記(3)は、ユーザ(オペレータ)からの操作入力または運用管理ソフトウェアからのシステムメッセージ等により、更新情報UDの記録を終了する命令を受けた場合である。
更新記録部203は、更新情報UDの記録を終了したことを示す記録終了通知XPを第一計算機100に送信する。
以上、本方法によれば、移送の完了後に移送元の第一計算機100で仮想マシンVMのメモリイメージIMGを即座には破棄せず、かつ移送の完了後に移送先の第二計算機200で仮想マシンVMの更新ページ番号を記録する。そして、アンドゥ要求があると、移送先の第二計算機200が更新したページの部分データPD、PD2のみを移送元の第一計算機100に戻す。これにより、移送が完了した仮想マシンVMを短時間で移送元の計算機に戻すことができる。
また、第一計算機100のメモリ保持部106によるメモリイメージIMGの保持、および第二計算機200の更新記録部203による更新情報UDの記録は、所定の条件の成立によって終了する。これにより、主記憶装置120、220などのシステムリソースに過大な負荷を与えることなく、ライブマイグレーションのアンドゥ処理が実用的に実現される。
<第二実施形態>
図7は、本実施形態の仮想マシン処理システム10の機能ブロック図である。
本実施形態の仮想マシン処理システム10は、アンドゥ処理により第一計算機100に戻された仮想マシンVMを、再び第二計算機200にライブマイグレーションで移送(以下、リドゥ処理という)するものである。
本実施形態の仮想マシン処理システム10は、第二計算機200の仮想マシン記憶部201に記憶された他のメモリイメージIMG2を保持するメモリ保持部206を備える点で第一実施形態と相違する。
また、本実施形態の更新記録部103は、第一計算機100の仮想マシン実行部102により更新された、メモリイメージIMG3の部分領域を示す更新情報UD3を記録する。
そして、仮想マシンVMの継続処理(継続実行ステップS700:図4を参照)が実行された後に、当該仮想マシンVMをさらに第一計算機100から第二計算機200に戻すリドゥ要求を受け付けると、仮想マシン処理システム10は以下の処理を行う。
まず、移送部150(送信部104、受信部205)は、更新記録部103を参照して、更新情報UD3が示す部分領域のデータ(部分データPD3)を第一計算機100から第二計算機200に送信する。
そして、第二計算機200の仮想マシン実行部202は、メモリ保持部206に保持されたメモリイメージIMG2と、第一計算機100より受信した部分領域のデータ(部分データPD3)と、を用いて仮想マシンVMを再び実行する。
すなわち、第二計算機200は、返送ステップS600のステップS615(図6を参照)における仮想マシンVMの最新のメモリイメージIMG2を、メモリ保持部206により仮想マシン記憶部201に保管しておく。そして、仮想マシン処理システム10がリドゥ要求を受け付けると、仮想マシン記憶部201に保管されたメモリイメージIMG2と、第一計算機100の更新記録部103に記憶された更新情報UD3が示す部分データPD3とを用いて、仮想マシンVMの継続処理を第二計算機200で再開する。
メモリ保持部206によるメモリイメージIMG2の破棄条件は、メモリ保持部106に関する上述の破棄条件と同様、以下の4つのいずれか一以上とすることができる。
(1)第二計算機200のメモリの空き領域が所定以下となったとき;
(2)アンドゥ処理が完了してから所定時間が経過したとき;
(3)更新記録部103による更新情報UD3の記録が終了したことを示す記録終了通知XPを第一計算機100から受信したとき;
(4)保持しているメモリイメージIMG2を破棄する要求を受け付けたとき。
メモリイメージIMG2を破棄したメモリ保持部206は、送信部204を介して第一計算機100にメモリ破棄通知NLを送信してもよい。そして、メモリ破棄通知NLを受信した第一計算機100は、更新記録部103による更新情報UD3の記録を終了するとよい。
本実施形態では、アンドゥの完了後も移送先(アンドゥ元)の第二計算機200で仮想マシンVMのメモリイメージIMG2を保管し、アンドゥ完了後に移送元(アンドゥ先)の第一計算機100で仮想マシンVMの更新ページ番号(更新情報UD3)を記録する。これにより、アンドゥのアンドゥ(リドゥ処理)を行うときには、第一計算機100で更新したページのデータにあたる部分データPD3を移送先(アンドゥ元)の第二計算機200に転送すればよい。
<第三実施形態>
本実施形態の仮想マシン処理システム10は、仮想マシンVMのライブマイグレーションをポストコピー方式でアンドゥ処理するものである。
図8は、本実施形態の仮想マシン処理システム10の機能ブロック図である。
本実施形態の仮想マシン処理システム10において、アンドゥ要求を受け付けた第一計算機100は、メモリ保持部106に保持されているメモリイメージIMGを用いて仮想マシンVMを実行して当該メモリイメージIMGの一部を更新する(図8を参照)。そして、第一計算機100は、メモリイメージIMGをメモリイメージIMG4に更新した後に、更新された当該メモリイメージIMG4と、第二計算機200より受信した部分領域のデータ(部分データPD)と、を用いて仮想マシンVMの継続処理を実行する。
より具体的には、アンドゥ要求を受け付けた返送部160(受信部105および送信部204)は、更新記録部203に記録されている更新情報UDを第一計算機100に送信する。一方、第一計算機100は、メモリ保持部106に保持されているメモリイメージIMGのうち更新情報UDが示す以外の領域を更新してメモリイメージIMG4とした後に、部分領域のデータ(部分データPD)を受信して仮想マシンVMの継続処理を実行する。
ここで、アンドゥ要求にしたがって返送部160が第一計算機100に更新情報UDを送信するとは、更新記録ステップS400で更新記録部203が記録した更新情報UDに対応する部分領域が示されたデータを受信部105に送信することを意味する。すなわち、送信部204から受信部105に送信される更新情報UDと、更新記録部203が記録している更新情報UDとが同一のデータであることを要するものではない。
すなわち、本実施形態の送信部204は、アンドゥ処理時におけるメモリイメージIMG1の部分データPDに先だって、更新情報UDを受信部105に送信する。具体的には、送信部204は、更新情報UDとして更新ページ番号リストを送信する。
これを受信した受信部105は、更新ページ番号リストを仮想マシン実行部102に伝える。仮想マシン実行部102は、更新ページ番号リストと、仮想マシン記憶部101に記憶されたメモリイメージIMGとを用いて仮想マシンVMの処理を再開する。
第一計算機100は、更新ページ番号リストを参照し、メモリイメージIMGのうち更新されていないページについての更新処理を開始する。
更新記録部103は、メモリイメージIMGをメモリイメージIMG4としたことを示す更新情報UD3を記録する。
送信部104は受信部205に対して、更新情報UDが示す部分領域のデータ(部分データPD)を送信するための要求メッセージRQを送信する。
要求メッセージRQは、受信部105に部分データPDを優先的に送信するように要求するメッセージである。
そして、送信部204から部分データPDを受信した第一計算機100は、受信部105からの更新完了通知を待ってから当該データを処理する。まだ受信していない更新ページのデータであっても、そのページを仮想マシン実行部102が総て書き換える場合、または、そのページのデータが不要になった場合は、更新ページ番号リストに記録されたページ番号を削除して、これを受信しなくてもよい。仮想マシン実行部102は、仮想マシンVMの処理と並行して、未受信の更新ページのデータがなくなるまで部分データPDを受信する。
なお、図8に示すように、第二計算機200のメモリ保持部206は、アンドゥ処理時の仮想マシン記憶部201のメモリイメージIMG1を仮想マシン記憶部201に保持しておいてもよい。これにより、仮想マシンVMのライブマイグレーションのリドゥ処理時に、仮想マシン実行部202による迅速な引き継ぎ処理が可能となる。
本方法では、第二計算機200から更新情報UD(更新ページ番号リスト)を受信した後に、第一計算機100は、この更新情報UDに含まれていない部分領域に関して仮想マシン実行部102での処理を開始する。これにより、第一計算機100と第二計算機200とで重複した部分領域の更新処理を行うことがない。
図9は、本方法にかかる仮想マシンVMの返送ステップS600を示すフローチャートである。また、本実施形態における仮想マシン処理方法の全体のフローチャートは図4であり、第一実施形態と共通する。したがって、移送ステップS100からステップS500までは説明を省略する。
まず、第二計算機200の送信部204は第一計算機100の受信部205に接続し(ステップS621)、仮想マシン記憶部101が当該仮想マシンVMのアンドゥ用のメモリイメージIMGを保管していることを確認する。
次に、仮想マシン実行部202は、当該仮想マシンVMの処理を中断する(ステップS622)。そして、第二計算機200の送信部204は、更新記録部203が記憶している更新情報UDの総ての更新ページ番号を、更新ページ番号リストとして受信部105に送信する(ステップS623)。
第一計算機100の仮想マシン実行部102は、更新ページ番号リストを受けとって、当該仮想マシンVMの処理を再開する(ステップS624)。ここで、仮想マシン実行部102は、仮想マシンVMの処理を継続しつつ(ステップS625)、未受信の更新ページの部分データPDがすぐに必要か否かを判断する(ステップS626)。
上記判断において、部分データPDがすぐに必要であれば(ステップS626:YES)、必要な部分データPDを受信するように受信部105に要求する。部分データPDが受信されて必要なデータが揃うと、該当する更新ページ番号を更新ページ番号リストから削除して(ステップS627)、ステップS625に戻る。
未受信ですぐに必要な部分データPDが無いと判断された場合(ステップS626:NO)、仮想マシン実行部102は、仮想マシンVMの処理と並行して、未受信の部分データPDが残っているかを判断する(ステップS628)。この判断において、未受信のデータがあれば(ステップS628:YES)、未受信の部分データPDをいくつか受信して、該当する更新ページ番号を更新ページ番号リストから削除(ステップS629)して、ステップS625に戻る。未受信のデータがなくなれば(ステップS628:NO)、アンドゥ処理は終了する。
そして、継続実行ステップS700(図4を参照)では、第一計算機100でメモリイメージIMGから更新されたメモリイメージIMG4と、第二計算機200から受信した部分データPDとを用いて仮想マシンVMの処理をさらに実行する。
以上、本方法は、アンドゥステップS800において、保持された第一計算機100のメモリイメージIMGを用いて第一計算機100が仮想マシンVMを実行(ステップS624)してメモリイメージIMG4とした後に返送ステップ(ステップS627)をおこなう。返送ステップでは、部分領域のデータ(部分データPD)を第二計算機200から第一計算機100に送信する。
言い換えると、本方法のアンドゥステップS800は、更新情報UDを第一計算機100に送信する更新情報送信ステップ(ステップS623)と、保持された第一計算機100のメモリイメージIMGを用いて第一計算機100が仮想マシンVMを実行し、当該メモリイメージIMGのうち更新情報UDが示す以外の領域を更新する先行処理ステップ(ステップS625)と、をさらに含む。そして、本方法では、ステップS627で送信された部分領域のデータ(部分データPD)と、先行処理ステップ(ステップS624)にて更新されたメモリイメージIMG4と、を用いて継続実行ステップS700をおこなう。
本方法は、アンドゥ処理をポストコピー方式でおこなうため、アンドゥ時には移送先の第二計算機200から移送元の第一計算機100に更新ページ番号リストを送信して、第一計算機100が直ちに仮想マシンVMの処理を引き継ぐ。これにより、第一実施形態のようにIPC方式のアンドゥ処理を行う場合よりも早く、移送先の第二計算機200の負荷を低下させることができる。
なお、上記各実施形態では、メモリ保持部106に保持されたメモリイメージIMGをアンドゥ処理の実行時まで更新しない場合を例に説明したが、本発明はこれに限られない。
すなわち、仮想マシン実行部202により仮想マシン記憶部201のメモリイメージが所定量だけ更新されるたびに、送信部204は受信部105に部分データPDを送信し、メモリ保持部106が保持しているメモリイメージIMGをその都度更新してもよい。そして、第二計算機200では、送信された部分データPDに対応する更新情報UDを更新記録部203のリストから削除する。
かかる処理は、第二計算機200による仮想マシンVMの処理(ステップS300:図4を参照)と並行して、かつ仮想マシン処理システム10の処理負荷の低いときに行うとよい。
これにより、アンドゥ処理の実行時に第二計算機200から第一計算機100に送信すべき部分データPDのデータ量が削減でき、さらに迅速なアンドゥ処理が実現する。
なお、上記実施形態では仮想マシン処理システム10の各部がコンピュータプログラムにより各種機能として論理的に実現されることを例示した。しかし、このような各部の各々を固有のハードウェアとして形成することもでき、またはソフトウェアとハードウェアとの組み合わせとして実現することもできる。
この出願は、2010年1月29日に出願された日本出願特願2010−019558を基礎とする優先権を主張し、その開示の総てをここに取り込む。
本発明は、仮想マシン処理システム、仮想マシン処理方法、仮想マシンを実行する計算機、および計算機のためのコンピュータプログラムに関する。より具体的には、ネットワークを介して仮想マシンを移送する仮想マシン処理システム、仮想マシン処理方法、計算機およびプログラムに関する。

Claims (20)

  1. 仮想マシンのメモリイメージを記憶する仮想マシン記憶手段と、前記仮想マシンを実行して前記メモリイメージを更新する仮想マシン実行手段と、をそれぞれ備え、互いにネットワークを介して接続された第一計算機および第二計算機と、
    前記第一計算機の前記仮想マシン実行手段が実行している仮想マシンのメモリイメージを前記第二計算機に送信して前記仮想マシンを前記第一計算機から前記第二計算機に移送する移送手段と、
    前記第一計算機の前記仮想マシン記憶手段に記憶されたメモリイメージを保持しておくメモリ保持手段と、
    移送された前記仮想マシンを前記第二計算機の前記仮想マシン実行手段が実行して更新された、前記メモリイメージの部分領域を示す更新情報を記録する更新記録手段と、
    移送された前記仮想マシンを前記第二計算機から前記第一計算機に戻すアンドゥ要求を受け付けると、前記更新記録手段を参照して、前記更新情報が示す前記部分領域のデータを前記第二計算機から前記第一計算機に送信する返送手段と、を含み、
    前記第一計算機の前記仮想マシン実行手段が、前記メモリ保持手段に保持された前記メモリイメージと、前記第二計算機より受信した前記部分領域のデータと、を用いて前記仮想マシンの継続処理を実行する仮想マシン処理システム。
  2. 前記メモリ保持手段は、
    前記移送手段による前記仮想マシンの移送が完了したことを示す完了情報を受信し、さらに、保持している前記メモリイメージを破棄する破棄条件が前記完了情報の受信後に満たされた場合に、前記メモリイメージを破棄することを特徴とする請求項1に記載の仮想マシン処理システム。
  3. 前記破棄条件が、
    前記第一計算機のメモリの空き領域が所定以下となったとき、
    前記完了情報を受信してから所定時間が経過したとき、
    前記更新記録手段による前記更新情報の記録が終了したことを示す記録終了通知を受信したとき、または
    保持している前記メモリイメージを破棄する要求を受け付けたとき、
    のいずれか一以上である請求項2に記載の仮想マシン処理システム。
  4. 前記メモリ保持手段が前記メモリイメージを破棄したことを示すメモリ破棄通知を前記第二計算機に送信する請求項3に記載の仮想マシン処理システム。
  5. 前記更新記録手段は、
    移送された前記仮想マシンの実行を前記第二計算機の前記仮想マシン実行手段が開始してから所定時間が経過したとき、
    前記メモリイメージを破棄したことを示すメモリ破棄通知を受信したとき、または
    前記更新情報の記録を終了する要求を受け付けたとき、
    のいずれか一以上の記録終了条件が満たされた場合に、前記更新情報の記録を終了することを特徴とする請求項1から4のいずれかに記載の仮想マシン処理システム。
  6. 前記更新記録手段は、前記更新情報の記録を終了したことを示す記録終了通知を前記第一計算機に送信する請求項5に記載の仮想マシン処理システム。
  7. 前記第一計算機が、前記部分領域のデータを前記第二計算機から受信した後に前記継続処理の実行を開始することを特徴とする請求項1から6のいずれかに記載の仮想マシン処理システム。
  8. 前記返送手段が前記部分領域のデータを前記第一計算機に送信する間に、前記第二計算機は前記仮想マシンの実行を継続して前記メモリイメージを追加更新し、
    前記返送手段は、前記メモリイメージのうち追加更新された部分領域のデータを、前記第一計算機にさらに送信する請求項7に記載の仮想マシン処理システム。
  9. 前記アンドゥ要求を受け付けた前記第一計算機は、前記メモリ保持手段に保持されている前記メモリイメージを用いて前記仮想マシンを実行して当該メモリイメージの一部を更新した後に、更新された当該メモリイメージと、前記第二計算機より受信した前記部分領域のデータと、を用いて前記仮想マシンの継続処理を実行することを特徴とする請求項1から6のいずれかに記載の仮想マシン処理システム。
  10. 前記アンドゥ要求を受け付けた前記返送手段は、前記更新記録手段に記録されている前記更新情報を前記第一計算機に送信し、
    前記第一計算機は、前記メモリ保持手段に保持されている前記メモリイメージのうち前記更新情報が示す以外の領域を更新した後に、前記部分領域のデータを受信して前記仮想マシンの継続処理を実行する請求項9に記載の仮想マシン処理システム。
  11. 前記メモリ保持手段は、前記第二計算機の前記仮想マシン記憶手段に記憶された他のメモリイメージをさらに保持し、
    前記更新記録手段は、前記第一計算機の前記仮想マシン実行手段により更新された、前記メモリイメージの部分領域を示す他の更新情報をさらに記録することを特徴とする請求項1から10のいずれかに記載の仮想マシン処理システム。
  12. 前記仮想マシンの前記継続処理が実行された後に、当該仮想マシンをさらに前記第一計算機から前記第二計算機に戻すリドゥ要求を受け付けると、
    前記移送手段は、前記更新記録手段を参照して、前記他の更新情報が示す前記部分領域のデータを前記第一計算機から前記第二計算機に送信し、
    前記第二計算機の前記仮想マシン実行手段は、前記メモリ保持手段に保持された前記他のメモリイメージと、前記第一計算機より受信した前記部分領域のデータと、を用いて前記仮想マシンを再び実行する請求項11に記載の仮想マシン処理システム。
  13. 第一計算機が実行している仮想マシンのメモリイメージを第二計算機に送信して、前記仮想マシンを前記第一計算機から前記第二計算機に移送する移送ステップと、
    前記第一計算機の前記メモリイメージを保持しておくメモリ保持ステップと、
    移送された前記仮想マシンを前記第二計算機が実行して更新された、前記メモリイメージの部分領域を示す更新情報を記録する更新記録ステップと、
    移送された前記仮想マシンを前記第二計算機から前記第一計算機に戻すアンドゥステップと、を含み、かつ、
    前記アンドゥステップが、
    記録された前記更新情報が示す前記部分領域のデータを前記第二計算機から前記第一計算機に送信する返送ステップと、
    保持された前記第一計算機の前記メモリイメージと、送信された前記部分領域のデータと、を用いて、前記第一計算機で前記仮想マシンの継続処理を実行する継続実行ステップと、
    を含む仮想マシン処理方法。
  14. 前記アンドゥステップにおいて、前記返送ステップを一回または複数回おこなった後に前記継続実行ステップを行うことを特徴とする請求項13に記載の仮想マシン処理方法。
  15. 前記アンドゥステップにおいて、保持された前記第一計算機の前記メモリイメージを用いて前記第一計算機が前記仮想マシンを実行した後に前記返送ステップをおこなうことを特徴とする請求項13に記載の仮想マシン処理方法。
  16. 前記アンドゥステップが、
    前記更新情報を前記第一計算機に送信する更新情報送信ステップと、
    保持された前記第一計算機の前記メモリイメージを用いて前記第一計算機が前記仮想マシンを実行し、当該メモリイメージのうち前記更新情報が示す以外の領域を更新する先行処理ステップと、をさらに含み、
    前記返送ステップで送信された前記部分領域のデータと、前記先行処理ステップにて更新された前記メモリイメージと、を用いて前記継続実行ステップをおこなうことを特徴とする請求項15に記載の仮想マシン処理方法。
  17. ネットワークを介して接続された他の計算機から、前記他の計算機が実行している仮想マシンのメモリイメージを受信して前記仮想マシンの移送を受け付ける受信手段と、
    受信した前記メモリイメージを記憶する仮想マシン記憶手段と、
    移送された前記仮想マシンを実行して、記憶された前記メモリイメージを更新する仮想マシン実行手段と、
    記憶された前記メモリイメージのうち前記仮想マシン実行手段によって更新された部分領域を示す更新情報を記録する更新記録手段と、
    移送された前記仮想マシンを前記他の計算機に戻すアンドゥ要求を受け付けると、前記更新記録手段を参照して、前記更新情報が示す前記部分領域のデータを前記他の計算機に送信する送信手段と、
    を含む計算機。
  18. 仮想マシンを実行する仮想マシン実行手段を有する計算機にデータ処理を実行させるコンピュータプログラムを前記計算機に読み出し可能に格納した記憶媒体であって、
    前記データ処理が、
    ネットワークを介して接続された他の計算機から、前記他の計算機が実行している仮想マシンのメモリイメージを受信して前記仮想マシンの移送を受け付ける受信処理と、
    受信した前記メモリイメージを記憶する仮想マシン記憶処理と、
    移送された前記仮想マシンを実行して、記憶された前記メモリイメージを更新する仮想マシン実行処理と、
    記憶された前記メモリイメージのうち前記仮想マシン実行手段によって更新された部分領域を示す更新情報を記録する更新記録処理と、
    移送された前記仮想マシンを前記他の計算機に戻すアンドゥ要求を受け付けると、前記更新情報が示す前記部分領域のデータを前記他の計算機に送信する送信処理と、
    を含むこと特徴とする記憶媒体。
  19. 仮想マシンのメモリイメージを記憶する仮想マシン記憶手段と、
    前記仮想マシンを実行して前記メモリイメージを更新する仮想マシン実行手段と、
    ネットワークを介して接続された他の計算機に前記メモリイメージを送信して前記仮想マシンを移送する送信手段と、
    前記メモリイメージのうち他の計算機で更新された部分領域のデータを受信する受信手段と、
    を含み、
    前記仮想マシン記憶手段が、移送された前記仮想マシンにかかるメモリイメージを保持し、
    前記仮想マシン実行手段が、保持された前記メモリイメージと、受信した前記部分領域のデータと、を用いて前記仮想マシンの継続処理を実行する計算機。
  20. 仮想マシンを実行する計算機にデータ処理を実行させるコンピュータプログラムを前記計算機に読み出し可能に格納した記憶媒体であって、
    前記データ処理が、
    仮想マシンのメモリイメージを記憶する仮想マシン記憶処理と、
    前記仮想マシンを実行して前記メモリイメージを更新する仮想マシン実行処理と、
    ネットワークを介して接続された他の計算機に前記メモリイメージを送信して前記仮想マシンを移送する送信処理と、
    移送された前記仮想マシンにかかるメモリイメージを保持する保持処理と、
    前記メモリイメージのうち他の計算機で更新された部分領域のデータを受信する受信処理と、
    保持された前記メモリイメージと、受信した前記部分領域のデータと、を用いて前記仮想マシンの継続処理を実行する仮想マシン継続処理と、
    を含むこと特徴とする記憶媒体。
JP2011551754A 2010-01-29 2011-01-24 仮想マシン処理システム、仮想マシン処理方法及び計算機 Pending JPWO2011093051A1 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2010019558 2010-01-29
JP2010019558 2010-01-29
PCT/JP2011/000363 WO2011093051A1 (ja) 2010-01-29 2011-01-24 仮想マシン処理システム、仮想マシン処理方法、計算機および記憶媒体

Publications (1)

Publication Number Publication Date
JPWO2011093051A1 true JPWO2011093051A1 (ja) 2013-05-30

Family

ID=44319050

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011551754A Pending JPWO2011093051A1 (ja) 2010-01-29 2011-01-24 仮想マシン処理システム、仮想マシン処理方法及び計算機

Country Status (3)

Country Link
US (1) US9047110B2 (ja)
JP (1) JPWO2011093051A1 (ja)
WO (1) WO2011093051A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9223616B2 (en) * 2011-02-28 2015-12-29 Red Hat Israel, Ltd. Virtual machine resource reduction for live migration optimization
JP6059330B2 (ja) * 2013-02-18 2017-01-11 株式会社レイトロン アプリケーション転送システム、アプリケーション転送方法、端末、およびプログラム
JP6390126B2 (ja) * 2014-03-14 2018-09-19 株式会社リコー 情報処理システム、情報処理装置、情報処理方法、及びプログラム
US11044175B2 (en) * 2016-10-25 2021-06-22 International Business Machines Corporation Hybrid cloud broker with static and dynamic capability matching
CN108156003A (zh) * 2016-12-02 2018-06-12 中国移动通信有限公司研究院 一种应用升级方法及终端、服务器、系统
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
US11467886B2 (en) * 2020-05-05 2022-10-11 Red Hat, Inc. Migrating virtual machines between computing environments

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8156490B2 (en) 2004-05-08 2012-04-10 International Business Machines Corporation Dynamic migration of virtual machine computer programs upon satisfaction of conditions
JP4438807B2 (ja) * 2007-03-02 2010-03-24 日本電気株式会社 仮想マシンシステム、管理サーバ、仮想マシン移行方法及びプログラム
US8468230B2 (en) 2007-10-18 2013-06-18 Fujitsu Limited Method, apparatus and recording medium for migrating a virtual machine
JP5104588B2 (ja) 2007-10-18 2012-12-19 富士通株式会社 マイグレーションプログラム、および仮想マシン管理装置
JP4871850B2 (ja) 2007-12-04 2012-02-08 株式会社日立製作所 仮想計算機システム及び仮想計算機移行制御方法
US8156301B1 (en) * 2009-05-13 2012-04-10 Symantec Corporation Method and apparatus for synchronizing a physical machine with a virtual machine while the virtual machine is operational

Also Published As

Publication number Publication date
US20120304176A1 (en) 2012-11-29
US9047110B2 (en) 2015-06-02
WO2011093051A1 (ja) 2011-08-04

Similar Documents

Publication Publication Date Title
WO2011093051A1 (ja) 仮想マシン処理システム、仮想マシン処理方法、計算機および記憶媒体
US9055119B2 (en) Method and system for VM-granular SSD/FLASH cache live migration
EP3358463B1 (en) Method, device and system for implementing hardware acceleration processing
US8924534B2 (en) Resource optimization and monitoring in virtualized infrastructure
US20210089343A1 (en) Information processing apparatus and information processing method
CN107995129B (zh) 一种nfv报文转发方法和装置
US7231638B2 (en) Memory sharing in a distributed data processing system using modified address space to create extended address space for copying data
US10552212B2 (en) Data processing
US8307053B1 (en) Partitioned packet processing in a multiprocessor environment
US8316220B2 (en) Operating processors over a network
US6108766A (en) Structure of processor having a plurality of main processors and sub processors, and a method for sharing the sub processors
KR101680109B1 (ko) 복수 코어 장치 및 그의 로드 조정 방법
US9760400B1 (en) System and method for joining containers running on multiple nodes of a cluster
US20180260257A1 (en) Pld management method and pld management system
CN111290827B (zh) 数据处理的方法、装置和服务器
JP6123626B2 (ja) 処理再開方法、処理再開プログラムおよび情報処理システム
EP2309387A1 (en) A method of migrating a virtual machine, corresponding computer program product, and data storage device therefor
US20070124523A1 (en) Heterogeneous multiprocessor system and OS configuration method thereof
WO2019028682A1 (zh) 一种多系统共享内存的管理方法及装置
JP2008107966A (ja) 計算機システム
US11042394B2 (en) Method for processing input and output on multi kernel system and apparatus for the same
CN116132369A (zh) 云网关服务器中多网口的流量分发方法及相关设备
US20110213902A1 (en) Information processing system
JP5557612B2 (ja) 計算機及び転送プログラム
WO2014087654A1 (ja) データ送信装置、データ送信方法、及び記録媒体