JP4560074B2 - 仮想計算機システム及び同システムにおける仮想計算機復元方法 - Google Patents

仮想計算機システム及び同システムにおける仮想計算機復元方法 Download PDF

Info

Publication number
JP4560074B2
JP4560074B2 JP2007250228A JP2007250228A JP4560074B2 JP 4560074 B2 JP4560074 B2 JP 4560074B2 JP 2007250228 A JP2007250228 A JP 2007250228A JP 2007250228 A JP2007250228 A JP 2007250228A JP 4560074 B2 JP4560074 B2 JP 4560074B2
Authority
JP
Japan
Prior art keywords
virtual machine
log
snapshot
input
output
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2007250228A
Other languages
English (en)
Other versions
JP2009080705A (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.)
Toshiba Corp
Toshiba Digital Solutions Corp
Original Assignee
Toshiba Corp
Toshiba Solutions 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 Toshiba Corp, Toshiba Solutions Corp filed Critical Toshiba Corp
Priority to JP2007250228A priority Critical patent/JP4560074B2/ja
Publication of JP2009080705A publication Critical patent/JP2009080705A/ja
Application granted granted Critical
Publication of JP4560074B2 publication Critical patent/JP4560074B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Hardware Redundancy (AREA)

Description

本発明は、物理計算機上で動作する仮想計算機を備えた仮想計算機システムに係り、特に、仮想計算機が動作する物理計算機の障害時に当該仮想計算機を復元するのに好適な仮想計算機システム及び同システムにおける仮想計算機復元方法に関する。
一般に計算機システムでは、障害が発生したときに、その障害発生直前のシステム状態を復元して処理を再開できるようにすることが要求される。このようなシステム状態を復元する手法として、従来から、スナップショットリカバリー方式及びチェックポイントリカバリー方式が知られている。
スナップショットリカバリー方式は、例えば定期的にシステム内部の状態をスナップショットとして取得して保存しておき、システムに障害が発生したときに、その障害発生時刻に最も近い時刻(スナップショット時刻)で取得されたスナップショット(つまり最新のスナップショット)に基づき、システムを当該障害発生時刻に最も近いスナップショット時刻の状態に復元するものである。
一方、チェックポイントリカバリー方式は、例えば特許文献1に記載されているように、計算機システムがネットワークを介して当該システムの外部(他の計算機システム)と通信している場合に、設定されたチェックポイントまでのネットワークへ/からの入出力(送受信)の履歴を保存しておき、システムに障害が発生したときには、保存しておいた履歴を用いてシステムの状態を復元するものである。ここで、計算機システムの外部から当該システムへの全ての入力に対する応答(出力)は、次のチェックポイントまで待機される。
特開2000−194624号公報
上記したように、従来のスナップショットリカバリー方式では、計算機システムの状態を最新のスナップショットを取得した時点にしか復元できず、当該最新のスナップショットを取得した後の状態に関しては復元が不可能である。
一方、従来のチェックポイントリカバリー方式(特許文献1に記載のチェックポイントリカバリー方式)では、チェックポイント以後の履歴により計算機システムの状態の回復を行うことを可能にしている。しかし、特許文献1に記載のチェックポイントリカバリー方式では、計算機システムの外部から当該システムへの全ての入力に対する応答(出力)は、次のチェックポイントまで待機させる必要がある。このためためチェックポイントリカバリー方式では、計算機システムにおける通常処理における性能が低下する。また、チェックポイントは計算機システムが外部に対して整合性を保てる状態でなければ取得することができない。
このため、システム外部への出力を待機させることなく、外部との整合性を保てる状態の如何を問わずに、スナップショットより後の障害発生時点まで計算機システムの復元を可能とすることが要求される。
ところで近年は、仮想計算機(仮想マシン)を備えた仮想計算機システムが開発されている。仮想計算機は、物理計算機上で動作する仮想化された計算機として知られている。仮想計算機は、仮想化されたディスク、メモリ、CPU(プロセッサ)及びネットワークインタフェースを含む。この仮想計算機上にオペレーティングシステム(OS)、アプリケーション(アプリケーションプログラム)をインストールすることにより、当該OS、アプリケーションを実行させることができる。仮想計算機は、システム外部(外部システム)からネットワークを介して何らかの入力が行われると、当該入力に応じた処理の結果を当該入力に対する出力(応答)としてシステム外部に送出する。
そこで、このような仮想計算機システムにおいても、例えば仮想計算機が動作する物理計算機に障害が発生した場合に、通常の計算機システムと同様に、当該仮想計算機の状態をスナップショットより後の時点(例えば障害発生時点)まで復元できるようにすることが要求されている。
本発明は上記事情を考慮してなされたものでその目的は、仮想計算機のシステム外部への出力を待機させることなく、外部との整合性を保てる状態の如何を問わずに、仮想計算機の状態をスナップショットより後の障害発生時点まで復元することができる仮想計算機システム及び同システムにおける仮想計算機復元方法を提供することにある。
本発明の1つの観点によれば仮想計算機システムが提供される。このシステムは、物理計算機と、前記物理計算機または当該物理計算機とネットワークを介して接続される別の物理計算機上で動作する仮想計算機のスナップショットを格納するのに用いられるスナップショット格納手段と、前記仮想計算機を利用する外部システム及び前記仮想計算機の間で入出力される通信データを通信のログとして時系列順に記録する通信記録手段とを具備する。前記物理計算機は、前記物理計算機上で前記仮想計算機が動作する場合に、当該仮想計算機の状態を当該仮想計算機のスナップショットとして取得して、前記スナップショット格納手段に格納するスナップショット取得手段と、前記物理計算機または前記別の物理計算機上で前記仮想計算機が動作している状態で当該仮想計算機が正常に機能することができない障害が発生した後、当該仮想計算機を前記物理計算機上で復元することが可能な状態になった場合に、前記スナップショット格納手段に格納されている当該仮想計算機の最新のスナップショットに基づき、当該仮想計算機を当該スナップショットが取得された第1の時点に復元するスナップショット復元手段と、前記第1の時点に復元された前記仮想計算機に、前記通信記録手段によって記録されている通信のログに含まれている前記第1の時点から前記障害の発生時である第2の時点までの入力データを時系列順に投入することにより、前記仮想計算機を前記第2の時点まで復元するログ再生手段とを含む。
本発明によれば、スナップショットにより仮想計算機を当該スナップショットの取得時点まで復元するのに加えて、外部システム及び仮想計算機の間で入出力される通信データを通信のログとして時系列順に記録しておき、当該スナップショットの取得時点まで復元された仮想計算機に対して、当該通信のログに含まれている当該スナップショットの取得時点から障害発生時点までの入力データを時系列順に投入することにより、仮想計算機のシステム外部への出力を待機させることなく、外部との整合性を保てる状態の如何を問わずに、仮想計算機を障害発生時点まで復元することができる。、
以下、本発明の実施の形態につき図面を参照して説明する。
図1は本発明の一実施形態に係る仮想計算機システムの構成を示すブロック図である。図1の仮想計算機システムは、複数の物理計算機(物理サーバ計算機)、例えば2台の物理計算機10-1及び10-2を含む。物理計算機10-1及び10-2は、ネットワーク20に接続されている。
物理計算機10-1及び10-2は、CPU、I/O装置、メモリ及びネットワークインタフェース(ネットワークインタフェースカード:NIC)のような周知のハードウェア資源(図示せず)を備えている。物理計算機10-1及び10-2が有するハードウェア資源は、仮想化されることにより、仮想計算機(仮想マシン)が動作する環境(仮想計算機実行環境)を提供する。図1では、物理計算機10-1の仮想計算機実行環境で仮想計算機11が動作している状態が示されている。なお、物理計算機10-1上で、仮想計算機11を含む複数の仮想計算機が動作する構成であっても構わない。
物理計算機10-1及び10-2上では、ハイパーバイザー12-1及び12-2がそれぞれ動作する。ハイパーバイザー12-1及び12-2は、仮想計算機マネージャ(仮想マシンマネージャ:VMM)または仮想計算機モニタ(仮想マシンモニタ:VMM)とも呼ばれる。ハイパーバイザー12-1及び12-2は、それぞれ、物理計算機10-1及び10-2が有する上述のハードウェア資源の利用を管理することで、仮想計算機を管理する。例えばハイパーバイザー12-1及び12-2は、物理計算機10-1及び10-2が有するハードウェア資源を仮想化することにより仮想計算機が動作する仮想計算機実行環境を提供する。つまりハイパーバイザー12-1及び12-2は、仮想化されたハードウェア資源を有する仮想計算機を構築する。
物理計算機10-1上で動作する仮想計算機11は、システム部13とアダプタ14とから構成される。システム部13は、仮想計算機11の本体であり、仮想計算機11上で動作するOS(オペレーティングシステム)に従ってアプリケーション(アプリケーションプログラム)を実行する。これによりシステム部13は、アダプタ14、ネットワーク20及び後述するスイッチ30を介して外部システム40との入力及び出力を行う。
アダプタ14は、仮想計算機11(内のシステム部13)のインタフェース機構をなしている。アダプタ14は、入出力機構141、ログ格納部142、ログ格納処理機構143、ログ再生機構144及びログ比較機構145を含む。
入出力機構141は、システム部13とネットワーク20との間の入出力を行う。入出力機構141はまた、物理計算機10-1に障害が発生した結果、当該物理計算機10-1上で動作していた仮想計算機11の状態を復元するためにスイッチ30内の後述するログ送信機構35からログ(通信の履歴)が送信された場合、当該ログを入力してログ格納処理機構143に渡す。ログ格納部142は、ログ送信機構35から送信されたログを一時格納するのに用いられる。本実施形態においてログ格納部142は、物理計算機10-1が持つメモリの領域を割り当てることによって実現される。ログ格納処理機構143は、入出力機構141から渡されたログをログ格納部142に格納する。
ログ再生機構144は、ログ格納部142に格納されたログに基づき、システム部13への入力及び当該入力に伴うシステム部13からの出力(つまりシステム部13へ/からの入出力)を再生(再現)する。ログ比較機構145は、システム部13の状態の復元時に、システム部13への入力に対する当該システム部13からの出力を上記ログに含まれている当該入力に対する出力と比較する。
ハイパーバイザー12-1は、スナップショット管理機構121及びスナップショット格納部122を含む。スナップショット管理機構121は、例えば定期的に、システム部13を含む仮想計算機11の状態をスナップショットとして取得するスナップショット取得機能を有する。スナップショット管理機構121はまた、取得されたスナップショットにより仮想計算機11をスナップショット取得時点に復元するスナップショット復元機能を有する。仮想計算機11の状態は、当該仮想計算機11に割り当てられているCPUの状態(プログラムカウンタ及びレジスタの状態)及びメモリの状態を含む。
スナップショット格納部122は、スナップショット管理機構121によって取得されたスナップショットを格納するのに用いられる。本実施形態においてスナップショット格納部122は、物理計算機10-1が持つディスク装置のような永続的記憶装置の領域を割り当てることによって実現される。なお、スナップショット格納部122が、物理計算機10-1及び10-2で共有される共有ディスク装置(図示せず)の領域を割り当てることによって実現されても構わない。
図1では省略されているが、ハイパーバイザー12-2も、ハイパーバイザー12-1と同様の構成を有している。
ネットワーク20には、計算機システム相互をネットワーク20を介して接続するためのスイッチ30が接続されている。図1の状態では、スイッチ30は、外部システム40をネットワーク20を介して物理計算機10-1上の仮想計算機11と接続している。外部システム40は、物理計算機10-1(上の仮想計算機11)の外部の計算機システムを指す。本実施形態において外部システム40は、物理計算機10-1(上の仮想計算機11)が提供するサービスを受けるクライアント端末であるが、物理計算機10-1と同様の計算機システム(物理サーバ計算機)であっても構わない。
スイッチ30は、通信記録装置31を含む。通信記録装置31は、ネットワーク20及びスイッチ30を経由しての通信のログ(履歴)を取得して記録する。通信記録装置31は、ログ取得機構32、ログ格納部33、ログ保存処理機構34及びログ送信機構35から構成される。
ログ取得機構32は、ネットワーク20及びスイッチ30を経由しての通信のログを取得する。ここでは、説明を簡略化するために、ログ取得機構32によって取得されるログが、物理計算機10-1上の仮想計算機11(に含まれているシステム部13)と外部システム40との間で行われる、ネットワーク20及びスイッチ30を経由しての通信のログであるものとする。また、以降の説明では、外部システム40から物理計算機10-1上の仮想計算機11への通信(通信データ)を入力(入力データ)と呼び、その逆の仮想計算機11から外部システム40への通信(通信データ)を出力(出力データ)と呼ぶ。
ログ格納部33は、ログ取得機構32によって取得された通信のログ(入出力データ)を格納するのに用いられる記憶手段である。ログ保存処理機構34は、ログ取得機構32によって取得された入出力データを時系列順にログ格納部33に保存する。本実施形態では、ログ保存処理機構34によってログ格納部33に保存される入力データには、当該データが仮想計算機(ここでは仮想計算機11)に送られた時刻(通信時刻)を示す時刻情報が付される。ログ送信機構35は、後述する制御機構50からの指示に応じて、ログ格納部33に保存されている通信のログを指定の物理計算機上の仮想計算機に送信する。
物理計算機10-1、物理計算機10-2及びスイッチ30は、ネットワーク21にも接続されている。このネットワーク21には、制御機構50も接続されている。制御機構50は、大別して2つの制御を行う。第1は、ネットワーク21に接続されている物理計算機上で動作している仮想計算機のスナップショットと当該仮想計算機が行う入出力のログ(通信のログ)との同期を取るための制御である。第2は、ネットワーク21に接続されている物理計算機に障害が発生した場合、当該物理計算機上で動作していた仮想計算機を、障害発生直前の状態に復元させるための制御である。
なお、通信記録装置31が、ルータ、或いはプロキシサーバ(外部システム40から物理計算機10-1または10-2上で動作する仮想計算機へのアクセスを代理するプロキシサーバ)に設けられていてもよい。
次に、図1に示す仮想計算機システムにおける動作について説明する。
まず、物理計算機10-1上のハイパーバイザー12-1に配置されたスナップショット管理機構121によるスナップショット取得の概略について、図2を参照して説明する。図2は、仮想計算機11の状態とスナップショット時刻とスナップショットとの関係を示す。
本実施形態においてスナップショット管理機構121は、スナップショット取得手段として機能して、定期的に仮想計算機11のスナップショットを取得する。ここでは、スナップショット取得時刻として、時刻t1及びt2を含むものとする。この場合、スナップショット管理機構121は、時刻t1における仮想計算機11の状態(システム部13の状態を含む仮想計算機11の状態)201を、時刻t1におけるスナップショット202として取得する。またスナップショット管理機構121は、時刻t2における仮想計算機11の状態203を、時刻t2におけるスナップショット204として取得する。取得されたスナップショット202及び204はスナップショット格納部122に格納される。なお、スナップショット格納部122には、取得されたスナップショットの世代を管理するためのスナップショット管理情報も格納される。
このように、時刻t1及びt2における、それぞれ仮想計算機11のスナップショット202及び204を取得してスナップショット格納部122に格納しておくことにより、時刻t2より後の任意の時刻t2+Δtにおいて、仮想計算機11を時刻t1またはt2の状態に復元することが可能となる。なお、スナップショット格納部122に最新のスナップショットのみを格納する構成を適用する場合には、仮想計算機11を時刻t2の状態にのみ復元することができる。いずれにしても、少なくとも時刻t2の状態に、仮想計算機11を復元することが可能となる。
次に、スイッチ30内の通信記録装置31による、仮想計算機11(のシステム部13)と外部システム40との間の通信のログの記録について、図3を参照して説明する。図3は、外部システム40から仮想計算機11への通信(入力)時におけるデータ(入力データ)の流れと、当該入力データに対する仮想計算機11から外部システム40への通信(出力)時におけるデータ(出力データ)の流れとを示す。
まず、外部システム40からの仮想計算機11(のシステム部13)宛てのデータ(入力データ)301はスイッチ30を経由して仮想計算機11のアダプタ14に送られる。アダプタ14(内の入出力機構141)は、この外部システム40からの入力データ301をシステム部13に入力する。
スイッチ30に設けられた通信記録装置31内のログ取得機構32は、入力データ301が当該スイッチ30を経由する際に、当該入力データ301を通信のログとして取得する。通信記録装置31内のログ保存処理機構34は、ログ取得機構32によって取得された入力データ301を、時系列を保ってログ格納部33に保存する。この入力データの保存に際して、本実施形態におけるログ保存処理機構34は、その時点における時刻(通信時刻)を表す時刻情報を当該入力データに付す。
仮想計算機11のシステム部13は、アダプタ14(内の入出力機構141)によって入力された入力データ301を受け取ると、当該入力データ301に基づく処理を行って、その処理結果としての外部システム40宛ての出力データ302をアダプタ14(内の入出力機構141)に渡す。アダプタ14(内の入出力機構141)は、この出力データ302を外部システム40に送信するために、当該出力データ302をネットワーク20上に送出する。ネットワーク20上に送出された外部システム40宛ての出力データ302は、スイッチ30を経由して当該外部システム40に送られる。
スイッチ30に設けられた通信記録装置31内のログ取得機構32は、仮想計算機11のシステム部13からの出力データ302が当該スイッチ30を経由する際に、当該出力データ302を通信のログとして取得する。通信記録装置31内のログ保存処理機構34は、ログ取得機構32によって取得された出力データ302を、時系列を保ってログ格納部33に保存する。
このようにして、仮想計算機11のシステム部13と外部システム40との間の通信で入出力されるデータが、通信のログとして、スイッチ30に設けられた通信記録装置31内のログ格納部33に時系列順に格納(記録)される。
図4(a)は、ログ格納部33に時系列順に格納された入出力データの列を含むログの一例を示す。図4(a)においてI1,I2,I3…は入力データ、O1,O2,O3…はそれぞれ入力データI1,I2,I3…に対応する出力データである。図4(a)の例では、ログ内の入出力データの列はI1→O1→I2→O2→I3→O3→…の順である。しかし、Ii(i=1,2,3…)の次に当該Iiに対応するOiが出力されるとは限らない。入力データI1,I2,I3…には、それぞれ当該データI1,I2,I3…が仮想計算機11に送られた(入力された)時刻t21,t22,t23…を表す時刻情報が付されている。
図4(a)に示されるような、ログ格納部33に時系列順に格納された通信のログを用いることにより、以下に述べるように、仮想計算機11を上述の時刻t2+Δtにおける状態205(図2参照)に復元することができる。
次に、時刻t2における仮想計算機11のスナップショット204が取得された後の上記時刻t2+Δtに物理計算機10-1の障害が発生した結果、仮想計算機11(のシステム部13)が正常に機能することができなくなったものとする。この場合、仮想計算機11を時刻(障害発生時刻)t2+Δtの状態に復元する仮想計算機復元処理(システム復元処理)が行われる。なお、仮想計算機11(のシステム部13)が正常に機能できない状態は、仮想計算機11のシステム部13、及びハイパーバイザー12-1のいずれか一方または両方に障害が発生した場合に発生する。このシステム部13及びハイパーバイザー12-1のいずれか一方または両方の障害は、物理計算機10-1の障害だけでなく、ソフトウェアのバグ等によっても発生する。
以下、仮想計算機復元処理について説明する。まず、物理計算機10-1の障害が回復し、当該物理計算機10-1が再起動されたものとする。すると物理計算機10-1上でハイパーバイザー12-1が再起動する。ハイパーバイザー12-1は、当該ハイパーバイザー12-1上に仮想計算機11を再生成する。制御機構50はハイパーバイザー12-1内のスナップショット管理機構121に対して、スナップショットによる仮想計算機11の復元を依頼する。
スナップショット管理機構121は、制御機構50からの復元依頼を受けてスナップショット復元手段として機能して、スナップショット格納部122に保存されている最新のスナップショット、即ち時刻t2に取得されたスナップショット204(図2参照)に基づいて、仮想計算機11を、当該仮想計算機11のシステム部13を含めて時刻t2の状態に復元する。つまりスナップショット管理機構121は、スナップショットが取得された時刻t2(第1の時点)の状態の仮想計算機11を復元する。なお、スナップショット管理機構121に代えて、上述のスナップショット取得手段(スナップショット取得機構)とスナップショット復元手段(スナップショット復元機構)とを個々に設けることも可能である。
さて、スナップショット管理機構121によって復元された仮想計算機11には、時刻t2の状態のシステム部13が存在する。しかし、外部システム40は既に時刻t2よりΔtだけ進んだ時刻t2+Δtの状態にある。このため、外部システム40は、物理計算機10-1の障害発生直前まで仮想計算機11と通信を行っていたにも拘わらず、時刻t2の状態に復元された仮想計算機11との間で、殆どの場合において正常に通信を行うことができない。つまり外部システム40は、処理を継続することができない。
そこで本実施形態では、スイッチ30内の通信記録装置31により記録されているログを利用することにより、時刻t2の状態に復元された仮想計算機11をt2+Δtの状態に復帰させることを可能にする。そのため、時刻t2の状態の仮想計算機11が復元されると、通信記録装置31内のログ送信機構35は、ログ格納部33に格納されているログを、仮想計算機11のアダプタ14にネットワーク20を介して送信する。
ログ送信機構35からアダプタ14に送信されたログは、当該アダプタ14内の入出力機構141で受け取られて、ログ格納部142に格納される。入出力機構141は、ログ送信機構35から送信されたログを受け取ると、当該ログをログ格納処理機構143に渡す。するとログ格納処理機構143は、入出力機構141から渡されたログをログ格納部142に格納する。アダプタ14内のログ再生機構144は、ログ格納部142に格納されたログに含まれている入力データを仮想計算機11のシステム部13に時系列順に再投入する。このログに含まれている入力データを時系列順にシステム部13に再投入することを、ログの再生と呼ぶ。
本実施形態では、仮想計算機11のスナップショットが取得された時点で、スイッチ30内の通信記録装置31のログ格納部33に格納されているログのデータ(入出力データ)は全て削除される。したがって、時刻t2のスナップショットに基づいて仮想計算機11が当該時刻t2の状態に復元された場合、時系列順に再投入される入力データは、時刻t2以降に取得された(時刻t2以降の)入力データとなる。この時刻t2以降の入力データが、図4(a)に示されるログに含まれているI1,I2,I3…であるものとする。
本実施形態では、仮想計算機11をt2+Δtの状態に復元する際の精度の向上のために、ログに含まれている時刻t2以降の入力データIi(i=1,2,3…)が、当該入力データIiに付された時刻情報に従って、先に入力されたのと相対時刻が同一の入力タイミングで、つまり先の入力タイミングを守って再投入される。これにより、時刻t2+Δtまでの期間における仮想計算機11の状態を高精度に再現させることが可能となる。但し、入力タイミングは必ずしも守る必要はなく、その場合、必ずしも入力データIiに時刻情報を付さなくてもよい。
さて、仮想計算機11のシステム部13は、ログに含まれている入力データIiがログ再生機構144によって当該システム部13に再投入されると、その入力データIiを処理する。これによりシステム部13は、入力データIiが投入された際の状態から当該入力データIiで決まる新たな状態に遷移して、当該入力データIiに対する出力データOi’を出力する。このため、ログに含まれている時刻t2以降の入力データIiを時系列順にシステム部13に再投入することによって、時刻t(第1の時点)の状態に復元された仮想計算機11を時刻t2+Δt(第2の時点)の状態へ前進させることができる。
ここで、仮想計算機11が時刻t2+Δtの状態に復元されたことを確認することができるならば、当該仮想計算機11の復元の精度をより向上させることができる。そこで本実施形態では、システム部13から出力される出力データOi’は、入出力機構141だけでなくログ比較機構145にも導かれる。ログ比較機構145は仮想計算機11を復元する処理が行われる期間(つまり復元モードの期間)、入力データIiの再投入に応じてシステム部13から出力される出力データOi’を、ログ格納部33に格納されているログに含まれている出力データのうち、上記入力データIi(出力データOiに対応する入力データIi)が障害発生前にシステム部13に入力された際に当該システム部13から出力された出力データOiと比較する。一方、上記復元モードの期間、入出力機構141は入出力を停止し、システム部13から出力される出力データOi’をフィルタリング(ブロック)する。入力データIiに対応する出力データOiは、送受信先のアドレスやポート情報によるマッチングや通信セッションの解析結果をもとにして特定することができる。
ログ比較機構145は、出力データOi’及びOiが一致している場合、上記ログ内で当該出力データOiに対応する入力データIiに付されている時刻情報の示す時刻の状態に、仮想計算機11が正しく復元されたと判定する。これに対して出力データOi’及びOiが一致していない場合、ログ比較機構145は、仮想計算機11が正しく復元されなかったと判定する。このようにログ比較機構145は、仮想計算機11のシステム部13における再生状況を監視することによって。仮想計算機11が正しく復元されたかを判定する。
なお、ログ格納部33に格納されているログをログ送信機構35が仮想計算機11のアダプタ14に送信する際に、当該ログに含まれている入出力データの時系列を、入力データの時系列順に、入力データと当該入力データに対応する出力データの組の列に加工して、その加工されたログをアダプタ14に送信するようにしてもよい。この加工をアダプタ14側で行っても構わない。図4(b)に、図4(a)に示されるログを加工した場合の、その加工されたログの例を示す。
次にスナップショット取得及び静止点作成を含む処理の流れについて、図5のシーケンスチャートを参照して説明する。
制御機構50は、物理計算機10-1上で動作する仮想計算機11のスナップショットが取得されるべき時刻(例えば時刻t2)が到来すると、スイッチ30内の通信記録装置31に含まれているログ取得機構32に対して静止点作成依頼を発行する(ステップ501)。これを受けてログ取得機構32は、スナップショット管理機構121によるスナップショット取得のための静止点を作成する(ステップ502)。ここでは、時刻t2が静止点として作成される。この場合、後述するように、ログ格納部33に格納されているログが削除される。
ログ取得機構32は時刻t2に静止点を作成すると(ステップ502)、静止点作成依頼に対する応答(静止点の作成によりスナップショット取得が可能となった旨の応答)を制御機構50に返す(ステップ503)。すると制御機構50は、仮想計算機11のアダプタ14に含まれている入出力機構141に対して入出力停止依頼を発行する(ステップ504)。これを受けて入出力機構141は、当該入出力機構141とネットワーク20との間の入出力(通信)を停止(凍結)する(ステップ505)。これにより、ログ取得機構32によって作成された静止点が、スナップショット取得のための静止点として確定される。
入出力機構141は、ネットワーク20との間の入出力を停止すると(ステップ505)、入出力停止依頼に対する応答を制御機構50に返す(ステップ506)。すると制御機構50は、スナップショット管理機構121に対してスナップショット取得依頼を発行する(ステップ507)。これを受けてスナップショット管理機構121は、仮想計算機11のスナップショットを取得する(ステップ508)。このとき、つまり時刻t2以降、入出力機構141は入出力が停止(凍結)された状態にある。このため、スナップショット管理機構121は、静止点の時刻t2における仮想計算機11のスナップショットを高精度に取得することができる。明らかなように、取得されたスナップショットは、入出力機構141での入出力と同期が取れている。
スナップショット管理機構121はスナップショットが取得できたなら(ステップ508)、スナップショット取得完了を通知するための応答を制御機構50に返す(ステップ509)。すると制御機構50は、ログ取得機構32に対して静止解除依頼を発行する(ステップ510)。これを受けてログ取得機構32は、ログ格納部33に格納されているログ、つまり時刻t2より前に取得されていた入出力データを削除し、設定された静止点を解除する(ステップ511)。以後、ログ取得機構32はスイッチ30を経由する通信データ(入出力データ)があれば、そのデータをログとして取得することが可能となる。
ログ取得機構32は静止点を解除すると(ステップ511)、静止解除依頼に対する応答を制御機構50に返す(ステップ512)。すると制御機構50は、入出力機構141に対して入出力再開依頼を発行する(ステップ513)。これを受けて入出力機構141は、入出力停止状態を解除して入出力を再開する(ステップ514)。そして入出力機構141は、入出力再開依頼に対する応答を制御機構50に返す(ステップ515)。
このように通信記録装置31における静止点の設定/解除に応じて、入出力機構141の入出力停止/入出力再開を制御すると共に、入出力機構141の入出力停止に応じてスナップショットの取得を制御することにより、取得されるスナップショットを、入出力機構141での入出力と高精度に同期させることができる。これによりログ再生機構144は、複雑な構成を必要とせずに、仮想計算機11のシステム部13に対して精度の高い入出力の再生を行わせることができる。
次に、上述の仮想計算機復元処理の流れについて、図6のシーケンスチャートを参照して説明する。
制御機構50は、時刻t+Δtで物理計算機10-1に障害が発生したために仮想計算機11を復元させる必要がある場合、スナップショット管理機構121に対して、スナップショットにより仮想計算機11を復元するための復元依頼を発行する(ステップ601)。これを受けてスナップショット管理機構121は、スナップショット格納部122に保存されている最新のスナップショット(時刻t2に取得されたスナップショット204)に基づいて、時刻t2の状態の仮想計算機11を復元する(ステップ602)。そしてスナップショット管理機構121は、復元依頼に対する応答を制御機構50に返す(ステップ603)。
制御機構50は、スナップショット管理機構121からの応答を受け取ると、通信記録装置31内のログ送信機構35に対して、ログ送信依頼を発行する(ステップ604)。これを受けてログ送信機構35は、ログ格納部33に格納されているログをアダプタ14内の入出力機構141に送信する(ステップ605)。入出力機構141は、ログ送信機構35から送信されたログを受け取ると、当該入出力機構141とネットワーク20との間の入出力を停止すると共に(ステップ606)、当該ログをログ格納処理機構143に渡す(ステップ607)。するとログ格納処理機構143は、入出力機構141から渡されたログをログ格納部142に格納し(ステップ608)、ログ格納完了を入出力機構141に通知する(ステップ609)。入出力機構141はログ格納処理機構143から通知されたログ格納完了をログ送信機構35に通知し(ステップ610)、ログ送信機構35は当該ログ格納完了通知に応じて、ログ送信依頼に対する送信完了応答を制御機構50に返す(ステップ611)
制御機構50は、ログ送信依頼に対するログ送信機構35からの送信完了応答を受け取ると、アダプタ14内のログ再生機構144に対してログ再生及び復元依頼を発行する(ステップ612)。ログ再生機構144は、制御機構50からログ再生及び復元依頼を受け取ると、ログ格納部142に格納されたログに含まれている入力データIi(i=1,2,3…)を仮想計算機11のシステム部13に時系列順に再投入することにより、障害発生前の当該システム部13の入出力状態を再現させるためのログ再生及び復元(つまり、仮想計算機11を時刻T2+Δtの状態まで順次復元するためのログ再生及び復元)を行う(ステップ613)。
さて、システム部13は、ログ再生機構144によって入力データIiが投入されると、当該入力データIiに対する出力データOi’を出力する。ログ比較機構145は、システム部13から入力データIiに対する出力データOi’が出力される毎に、ログ格納部142に格納されているログから当該入力データIiに対応する出力データOiを取り出す。そしてログ比較機構145は、入力データIiに対応する出力データOiが取り出せたなら、入力データIiに対する出力データOi’を当該取り出された出力データOiと比較する。この比較結果に基づき、入力データIiに対応する出力データOiが出力された時点の状態まで仮想計算機11を正常に復元できたかを判定する。もし、正常に復元できなかったと判定された場合、復元に失敗する。この場合、例えば通信を遮断したまま復元を終了するか、もしくはスナップショット時点に復元すればよい。
ログ比較機構145は、ログに含まれている全ての入力データIiについて、当該入力データIiに対するシステム部13からの出力データOi’がログ中の対応する出力データOiに一致している場合、仮想計算機11の状態を障害発生時刻t2+Δtまで正常に復元できたと判定する。するとログ比較機構145は、復元完了をログ再生機構144に通知する。
ログ再生機構144は、ログ比較機構145から復元完了が通知されると、即ち仮想計算機11の状態を障害発生時刻t2+Δtまで正常に復元できたとログ比較機構145が判定すると、この例のように未投入の入力データIiがログに含まれていないならば、制御機構50からのログ再生及び復元依頼に対する復元完了を通知するための応答を制御機構50に返す(ステップ614)。
すると制御機構50は、入出力機構141に対して入出力再開依頼を発行する(ステップ615)。これを受けて入出力機構141は、入出力停止状態を解除して入出力を再開する(ステップ616)。そして入出力機構141は、入出力再開依頼に対する応答を制御機構50に返す(ステップ617)。
ところで、システム部13から入力データIiに対する出力データOi’が出力されても、当該入力データIiに対応する出力データOiがログに含まれていないために、当該出力データOiをログ比較機構145が取り出すことができないことがある。この場合、ログ比較機構145は、当該出力データOiがシステム部13から出力される前に障害が発生したものと判定する。そしてログ比較機構145は、最も最近にシステム部13からの出力データとの一致が判定されたログ中の出力データが障害発生直前の出力データであり、したがって仮想計算機11の状態を障害発生時刻t2+Δtまで正常に復元できたと判定する。するとログ比較機構145は、復元完了をログ再生機構144に通知する。
ログ再生機構144は、ログ比較機構145から復元完了が通知されると、未投入の入力データIiがログに含まれていても、制御機構50からのログ再生及び復元依頼に対する復元完了を通知するための応答を制御機構50に返す(ステップ614)。すると、上記ステップ615及び616が行われ、入出力機構141による入出力が再開される。このときログ再生機構144は、未投入の入力データIiがログに含まれているならば、当該未投入の入力データIiをシステム部13に再投入する。
復元完了後に、ログ再生機構144によって入力データIi(つまり、対応する出力データOiがログ中に含まれていない入力データIi)がシステム部13に再投入された場合、当該入力データIiに対して当該システム部13から出力される出力データOiは、入出力機構141からネットワーク20及びスイッチ30を経由して外部システム40に送られる。ここで出力データOiがスイッチ30を経由する際、当該出力データOiがログ取得機構32によって取得されて、ログ保存処理機構34によってログ格納部33に追加される。
[第1の変形例]
次に上記実施形態の第1の変形例について説明する。
上記実施形態では、制御機構50が入出力機構141及びログ再生機構144を直接制御している。第1の変形例の特徴は、スナップショット取得及び静止点作成を含む処理における入出力機構141の制御をログ取得機構32に行わせ、仮想計算機復元処理における入出力機構141の制御をログ送信機構35及びログ再生機構144に行わせ、仮想計算機復元処理におけるログ再生機構144の制御をログ送信機構35に行わせた点にある。
以下、第1の変形例で適用される、スナップショット取得及び静止点作成を含む処理の流れ、並びに仮想計算機復元処理の流れについて、それぞれ図7及び図8のシーケンスチャートを参照して、上記実施形態(図5及び図6のシーケンスチャート)との相違点を中心に簡単に説明する。なお、図7及び図8において、それぞれ図5及び図6と同様の部分には同一参照番号を付してある。
まず、第1の変形例で適用されるスナップショット取得及び静止点作成を含む処理において、制御機構50からログ取得機構32に対して静止点作成依頼が発行されたものとする(ステップ501)。するとログ取得機構32は、スナップショット取得のための静止点を作成し(ステップ502)、当該制御機構50に代わって、入出力機構141に対して入出力停止依頼を発行する(ステップ701)。つまり、ログ取得機構32は、制御機構50からの静止点作成依頼を、入出力停止依頼として入出力機構141に伝播する。入出力機構141はログ取得機構32からの入出力停止依頼に応じて、ネットワーク20との間の入出力を停止する(ステップ505)。これにより、設定された静止点が、スナップショット取得のための静止点として確定される。
入出力機構141は、入出力を停止すると(ステップ505)、入出力停止依頼に対する応答をログ取得機構32に返す(ステップ702)。これを受けてログ取得機構32は、先の静止点作成依頼に対する応答を制御機構50に返す(ステップ503)。すると、制御機構50からスナップショット管理機構121にスナップショット取得が依頼され(ステップ507)、当該スナップショット管理機構121がスナップショットを取得すると(ステップ508)、当該スナップショット管理機構121から制御機構50に応答が返される(ステップ509)。
制御機構50は、スナップショット管理機構121からの応答に応じて、ログ取得機構32に対して静止解除依頼を発行し(ステップ510)、これを受けてログ取得機構32は設定された静止点を解除する(ステップ511)。そしてログ取得機構32は、制御機構50に代わって、入出力機構141に対して入出力再開依頼を発行する(ステップ703)。つまりログ取得機構32は、制御機構50からの静止解除依頼を、入出力再開依頼として入出力機構141に伝播する。
入出力機構141は、ログ取得機構32からの入出力再開依頼に応じて入出力停止状態を解除し、入出力を再開する(ステップ514)。そして入出力機構141は、ログ取得機構32からの入出力再開依頼に対する応答を当該ログ取得機構32に返す(ステップ704)。ログ取得機構32は、入出力機構141から入出力再開依頼に対する応答が返されると、先の静止解除依頼に対する応答を制御機構50に返す(ステップ512)。
次に、第1の変形例で適用される仮想計算機復元処理において、制御機構50からスナップショット管理機構121に対して、スナップショットにより仮想計算機11を復元するための復元依頼が発行されたものとする(ステップ601)。するとスナップショット管理機構121は、スナップショット格納部122に保存されている例えば時刻t2に取得されたスナップショット204に基づいて、時刻t2の状態の仮想計算機11を復元し(ステップ602)、しかる後に復元依頼に対する応答を制御機構50に返す(ステップ603)。
制御機構50は、スナップショット管理機構121からの応答を受け取ると、ログ送信機構35に対してログによる復元依頼を発行する(ステップ801)。これを受けてログ送信機構35は、ログ格納部33に格納されているログを入出力機構141に送信する(ステップ605)。すると入出力機構141は入出力を停止する(ステップ606)。入出力機構141に送信されたログはログ格納処理機構143に渡されて、当該ログ格納処理機構143によってログ格納部142に格納される(ステップ607,608)。すると、ログ格納完了がログ格納処理機構143から入出力機構141に通知され(ステップ609)、更に当該ログ格納完了が当該入出力機構141からログ送信機構35に伝播される(ステップ610)。
ログ送信機構35は、入出力機構141から伝播されたログ格納完了通知を受け取ると、制御機構50に代わって、ログ再生機構144に対してログ再生及び復元依頼を発行する(ステップ802)。ログ再生機構144は、ログ送信機構35からログ再生及び復元依頼を受け取ると、ログ格納部142に格納されたログに基づき、障害発生前の当該システム部13の入出力状態(ここでは時刻T2+Δtの状態)を再現させるためのログ再生及び復元を行う(ステップ613)。
ログ再生機構144は、仮想計算機11の状態を時刻t2+Δtまで正常に復元できた場合、入出力機構141に対して入出力再開依頼を発行する(ステップ803)。これを受けて入出力機構141は、入出力停止状態を解除して入出力を再開する(ステップ616)。そして入出力機構141は、入出力再開依頼に対する応答をログ再生機構144に返す(ステップ804)。
ログ再生機構144は入出力機構141から入出力再開依頼に対する応答を受け取ると、先のログ再生及び復元依頼に対する応答をログ送信機構35に返す(ステップ805)。ログ送信機構35は、ログ再生機構144からログ再生及び復元依頼に対する応答を受け取ると、先のログによる復元依頼に対する応答を制御機構50に返す(ステップ806)。
[第2の変形例]
次に上記実施形態の第2の変形例について説明する。
上記実施形態では、ログ送信機構35によって送信されたログに含まれている全ての入力データIiが、ログ再生機構144によって仮想計算機11のシステム部13に投入される。しかし、システム部13で複数のアプリケーションが動作する場合、仮想計算機11を高速に復元するために、当該複数のアプリケーションのうちの特定のアプリケーションが動作する状態のみを復元すればよいこともある。つまり仮想計算機11の状態の部分的な復元が要求されることもある。このような場合、ログに含まれている全ての入力データIiを再投入するのは無駄である。そこで第2の変形例の特徴は、ログに含まれている入力データIiのうち、特定のアプリケーションに渡される入力データのみを再投入することにある。
図9は、仮想計算機11のアダプタ14内のログ再生機構144の構成を示すブロック図である。ログ再生機構144は、フィルタ機構144aを含む。フィルタ機構144aは、例えば制御機構50からのフィルタ設定144bに従い、ログ内の再生すべき入力データを絞り込むなお、フィルタ機構144aがログ再生機構144の外部に設けられていてもよい。
本実施形態においてフィルタ設定144bは、仮想計算機11(のシステム部13)上で動作する上記特定のアプリケーションに割り当てられたポートであって、仮想計算機11のシステム部13と当該特定のアプリケーションとの間で入出力データを授受するのに用いられるポートのポート番号を含む。このポート番号をPNsとするならば、外部システム40から送信される入力データのうち、仮想計算機11上の上記特定アプリケーション宛ての入力データは、宛先IPアドレスとして当該仮想計算機11に割り当てられたIPアドレスを含むと共に、宛先ポート番号としてPNsを含む。
そこで、フィルタ機構144aは、ログに含まれている仮想計算機11宛ての入力データのうち、宛先ポート番号がPNsの入力データのみを選択する。ログ再生機構144は、フィルタ機構144aによって選択された入力データを仮想計算機11のシステム部13に順次投入する。これにより、仮想計算機11のシステム部13に投入される入力データを、特定アプリケーションに渡されるべき入力データに絞ることができる。また、仮想計算機11のシステム部13に投入される入力データを絞ることにより、当該システム部13から出力される出力データ、即ちログ比較機構145で比較されるべき出力データも絞ることができる。よって上記第2の変形例によれば、仮想計算機11の状態の部分的な復元を効率的に行うことができる。
[第3の変形例]
次に上記実施形態の第3の変形例について説明する。
図10は、仮想計算機11のアダプタ14内のログ比較機構145の構成を示すブロック図である。第3の変形例が第2の変形例と相違する点は、ログ再生機構144にフィルタ機構144aを設ける代わりに、図10に示されるように、当該フィルタ機構144aに相当するフィルタ機構145aを、ログ比較機構145に設けたことである。なお、フィルタ機構145aがログ比較機構145の外部に設けられていてもよい。
第3の変形例においてログ再生機構144は、上記実施形態と同様に、ログ格納部142に格納されているログに含まれている全ての入力データを順次システム部13に投入する。するとシステム部13は、ログ再生機構144によって投入された入力データに対応する出力データを出力する。
第3の変形例においてフィルタ機構145aは、システム部13から出力される出力データのうち、例えば制御機構50からのフィルタ設定145bに従い、ログ比較機構145によって比較されるべき出力データを絞り込む。ここでは、フィルタ設定145bにポート番号PNsが含まれているものとすると、送信元ポート番号がPNsである特定アプリケーションからの出力データのみがログ比較機構145によって比較されるべき出力データとして選択される。
第3の変形例では、ログ比較機構145によって比較されるべき出力データが特定アプリケーションからの出力データに絞られる。このため、ログ比較機構145での負荷を低減することができる。しかも、ログ格納部142に格納されているログに含まれている全ての入力データがシステム部13に投入されることから、当該システム部13を含む仮想計算機11を高精度に復元することができる。
なお、本発明は、上記実施形態またはその変形例そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。例えば上記実施形態及びその変形例では、物理計算機10-1に障害が発生した後、当該物理計算機10-1の障害が回復して当該物理計算機10-1が再起動され、当該物理計算機10-1上でハイパーバイザー12-1が再起動した場合に、当該ハイパーバイザー12-1上に、障害発生時まで動作していた仮想計算機11が復元される。しかし、物理計算機10-1及び10-2が例えばクラスタシステムを構成しているならば、物理計算機10-1に障害が発生した場合に、当該物理計算機10-1が外部システム40に対して提供していたサービスを物理計算機10-2に継続させるために、当該物理計算機10-2上で動作するハイパーバイザー12-2上に仮想計算機11を復元することも可能である。
また、上記実施形態及びその変形例では、制御機構50が物理計算機10-1及び10-2から独立に設けられている。しかし、制御機構50に相当する制御機構が、物理計算機10-1及び10-2内、例えば物理計算機10-1及び10-2上で動作するハイパーバイザー12-1及び12-2の各々に、設けられていてもよい。この場合、仮想計算機11が復元されるべきハイパーバイザー12-1または12-2に設けられる制御機構が制御機構50と同様の制御を行えばよい。
また、第2及び第3の変形例を組み合わせて、ログ再生機構144にフィルタ機構144aを設けると共に、ログ比較機構145にフィルタ機構145aを設けても構わない。
また、上記実施形態またはその変形例に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。例えば、実施形態またはその変形例に示される全構成要素から幾つかの構成要素を削除してもよい。
本発明の一実施形態に係る仮想計算機システムの構成を示すブロック図。 仮想計算機の状態とスナップショット時刻とスナップショットとの関係を示す図。 外部システムから仮想計算機への通信(入力)時におけるデータ(入力データ)の流れと、当該入力データに対する仮想計算機から外部システムへの通信(出力)時におけるデータ(出力データ)の流れとを示す図。 ログ格納部に時系列順に格納された入出力データの列を含むログの例と、当該ログを加工した場合の、その加工されたログの例とを示す図。 同実施形態で適用されるスナップショット取得及び静止点作成を含む処理の流れを示すシーケンスチャート。 同実施形態で適用される仮想計算機復元処理の流れを示すシーケンスチャート。 同実施形態の第1の変形例で適用されるスナップショット取得及び静止点作成を含む処理の流れを示すシーケンスチャート。 同実施形態の第1の変形例で適用される仮想計算機復元処理の流れを示すシーケンスチャート。 同実施形態の第2の変形例で適用されるログ再生機構の構成を示すブロック図。 同実施形態の第3の変形例で適用されるログ比較機構の構成を示すブロック図
符号の説明
10-1,10-2…物理計算機、11…仮想計算機、12-1,12-2…ハイパーバイザー、13…システム部、14…アダプタ、20,21…ネットワーク、30…スイッチ、31…通信記録装置、32…ログ取得機構、33…ログ格納部、34…ログ保存処理機構、35…ログ送信機構、40…外部システム、50…制御機構、141…入出力機構、142…ログ格納部、143…ログ格納処理機構、144…ログ再生機構、145…ログ比較機構。

Claims (4)

  1. 物理計算機と、
    前記物理計算機または当該物理計算機とネットワークを介して接続される別の物理計算機上で動作する仮想計算機のスナップショットを格納するのに用いられるスナップショット格納手段と、
    前記仮想計算機を利用する外部システム及び前記仮想計算機との間で入出力される通信データを通信のログとして時系列順に記録する通信記録手段であって、前記通信のログとして入力データを記録する際には、当該入力データに対応する通信時刻を表す時刻情報を付す通信記録手段と
    前記仮想計算機のスナップショットと前記通信のログとを同期化するための制御を行う制御手段であって、前記スナップショット取得タイミングの到来に応じて、前記仮想計算機の入出力を停止させ、前記スナップショット取得手段による前記スナップショットの取得完了に応じて、前記仮想計算機の入出力を再開させる制御手段と
    を具備し、
    前記物理計算機は、
    前記物理計算機上で前記仮想計算機が動作する場合に、所定のスナップショット取得タイミング毎に当該仮想計算機の状態を当該仮想計算機のスナップショットとして取得して、前記スナップショット格納手段に格納するスナップショット取得手段と、
    前記物理計算機または前記別の物理計算機上で前記仮想計算機が動作している状態で当該仮想計算機が正常に機能することができない障害が発生した後、当該仮想計算機を前記物理計算機上で復元することが可能な状態になった場合に、前記スナップショット格納手段に格納されている当該仮想計算機の最新のスナップショットに基づき、当該仮想計算機を当該スナップショットが取得された第1の時点に復元するスナップショット復元手段と、
    前記第1の時点に復元された前記仮想計算機に、前記通信記録手段によって記録されている通信のログに含まれている前記第1の時点から前記障害の発生時である第2の時点までの入力データを、当該入力データに付されている時刻情報に基づいて、先に入力されたのと相対時刻が同一の入力タイミングで投入することにより、前記仮想計算機を前記第2の時点まで復元するログ再生手段とを含む
    ことを特徴とする仮想計算機システム。
  2. 前記物理計算機は、前記ログ再生手段が前記通信のログに含まれている入力データを前記仮想計算機に投入することにより当該入力データに対する前記仮想計算機の結果として当該仮想計算機にて生成される出力データを、前記通信のログに含まれている出力データのうち、当該入力データが前記障害発生前に前記仮想計算機に入力された際に当該仮想計算機から出力された出力データと比較することにより、前記仮想計算機の状態が正しく復元されているかを判定するログ比較手段を更に含む
    ことを特徴とする請求項1記載の仮想計算機システム。
  3. 前記仮想計算機が前記第1の時点の状態に復元されてから前記第2の時点の状態に復元されるまでの期間、前記仮想計算機の入出力が停止されることを特徴とする請求項1または2に記載の仮想計算機システム。
  4. 物理計算機と、前記物理計算機または当該物理計算機とネットワークを介して接続される別の物理計算機上で動作する仮想計算機のスナップショットを格納するのに用いられるスナップショット格納手段と、信記録手段と、前記仮想計算機のスナップショットと前記通信のログとを同期化するための制御を行う制御手段とから構成される仮想計算機システムに適用される仮想計算機復元方法であって、
    前記物理計算機上で前記仮想計算機が動作する場合に、前記物理計算機が、所定のスナップショット取得タイミング毎に当該仮想計算機の状態を当該仮想計算機のスナップショットとして取得して、前記スナップショット格納手段に格納するステップと、
    前記スナップショット取得タイミングの到来に応じて、前記制御手段が前記仮想計算機の入出力を停止させるステップと、
    前記スナップショット取得手段による前記スナップショットの取得完了に応じて、前記制御手段が前記仮想計算機の入出力を再開させるステップと、
    前記仮想計算機を利用する外部システム及び前記仮想計算機との間で入出力される通信データを通信のログとして前記通信記録手段が時系列順に記録するステップであって、前記通信のログとして入力データを記録する際には、当該入力データに対応する通信時刻を表す時刻情報を付すステップと、
    前記物理計算機または前記別の物理計算機上で前記仮想計算機が動作している状態で当該仮想計算機が正常に機能することができない障害が発生した後、当該仮想計算機を前記物理計算機上で復元することが可能な状態になった場合に、前記物理計算機が、前記スナップショット格納手段に格納されている当該仮想計算機の最新のスナップショットに基づき、当該仮想計算機を当該スナップショットが取得された第1の時点に復元するステップと、
    前記第1の時点に復元された前記仮想計算機に、前記通信記録手段によって記録されている通信のログに含まれている前記第1の時点から前記障害の発生時である第2の時点までの入力データを、当該入力データに付されている時刻情報に基づいて、先に入力されたのと相対時刻が同一の入力タイミングで前記物理計算機が投入することにより、前記仮想計算機を前記第2の時点まで復元するステップと
    を具備することを特徴とする仮想計算機復元方法。
JP2007250228A 2007-09-26 2007-09-26 仮想計算機システム及び同システムにおける仮想計算機復元方法 Active JP4560074B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007250228A JP4560074B2 (ja) 2007-09-26 2007-09-26 仮想計算機システム及び同システムにおける仮想計算機復元方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007250228A JP4560074B2 (ja) 2007-09-26 2007-09-26 仮想計算機システム及び同システムにおける仮想計算機復元方法

Publications (2)

Publication Number Publication Date
JP2009080705A JP2009080705A (ja) 2009-04-16
JP4560074B2 true JP4560074B2 (ja) 2010-10-13

Family

ID=40655397

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007250228A Active JP4560074B2 (ja) 2007-09-26 2007-09-26 仮想計算機システム及び同システムにおける仮想計算機復元方法

Country Status (1)

Country Link
JP (1) JP4560074B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5418070B2 (ja) * 2009-08-27 2014-02-19 富士通株式会社 業務操作支援方法及びコンピュータ装置
JP5419802B2 (ja) * 2010-06-02 2014-02-19 三菱電機株式会社 仮想計算機制御システム
JP5309263B2 (ja) * 2010-09-27 2013-10-09 株式会社日立製作所 計算機システム及びその管理方法
JP5648902B2 (ja) 2010-09-30 2015-01-07 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 仮想サーバのスナップショットを管理する方法、及び該方法を具現化する装置
US9104447B2 (en) 2012-12-03 2015-08-11 International Business Machines Corporation Restoring a previous version of a virtual machine image
JP6115331B2 (ja) 2013-06-06 2017-04-19 富士通株式会社 トランザクション再開プログラム、情報処理装置及びトランザクション再開方法
SG11201805201XA (en) * 2016-01-14 2018-07-30 Ab Initio Technology Llc Recoverable stream processing

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01116843A (ja) * 1987-10-30 1989-05-09 Mitsubishi Electric Corp 監視制御装置
JPH0784901A (ja) * 1993-09-17 1995-03-31 Fujitsu Ltd 端末動作再現装置
JP2000047911A (ja) * 1998-07-30 2000-02-18 Yamaha Corp カラオケ装置
JP2000194624A (ja) * 1998-12-25 2000-07-14 Toshiba Corp 計算機システムおよび通信回復方法
JP2007018100A (ja) * 2005-07-05 2007-01-25 Fujitsu Ten Ltd ログ記録装置およびログ記録方法
JP2007148839A (ja) * 2005-11-29 2007-06-14 Hitachi Ltd 障害回復方法
JP2007200114A (ja) * 2006-01-27 2007-08-09 Hitachi Ltd データベース回復方法及び計算機システム

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01116843A (ja) * 1987-10-30 1989-05-09 Mitsubishi Electric Corp 監視制御装置
JPH0784901A (ja) * 1993-09-17 1995-03-31 Fujitsu Ltd 端末動作再現装置
JP2000047911A (ja) * 1998-07-30 2000-02-18 Yamaha Corp カラオケ装置
JP2000194624A (ja) * 1998-12-25 2000-07-14 Toshiba Corp 計算機システムおよび通信回復方法
JP2007018100A (ja) * 2005-07-05 2007-01-25 Fujitsu Ten Ltd ログ記録装置およびログ記録方法
JP2007148839A (ja) * 2005-11-29 2007-06-14 Hitachi Ltd 障害回復方法
JP2007200114A (ja) * 2006-01-27 2007-08-09 Hitachi Ltd データベース回復方法及び計算機システム

Also Published As

Publication number Publication date
JP2009080705A (ja) 2009-04-16

Similar Documents

Publication Publication Date Title
US11797395B2 (en) Application migration between environments
USRE47852E1 (en) Snapshot and replication of a multi-stream application on multiple hosts at near-sync frequency
US11663085B2 (en) Application backup and management
KR101970839B1 (ko) 서비스의 2차 위치에서의 작업의 재생 기법
Lorch et al. The SMART way to migrate replicated stateful services
Scales et al. The design of a practical system for fault-tolerant virtual machines
US8214686B2 (en) Distributed processing method
US8307363B2 (en) Virtual machine system, restarting method of virtual machine and system
JP4560074B2 (ja) 仮想計算機システム及び同システムにおける仮想計算機復元方法
JP2009080692A (ja) 仮想計算機システム及び同システムにおけるサービス引き継ぎ制御方法
CN103176831A (zh) 一种虚拟机***及其管理方法
JP4883986B2 (ja) 計算機システム、管理計算機及びデータリカバリ方法
JP4289056B2 (ja) 計算機システム間のデータ二重化制御方法
US20210157684A1 (en) Scalable Low-Loss Disaster Recovery for Data Stores
US20230409540A1 (en) End-to-end restartability of cross-region replication using a new replication
CN110389713B (zh) 数据同步方法、设备和计算机可读介质
Sadi et al. Communication-aware approaches for transparent checkpointing in cloud computing
CN113868027B (zh) 数据快照方法及装置
US20240094937A1 (en) Concurrent and non-blocking object deletion for cross-region replications
JP4157536B2 (ja) プログラム実行装置、プログラム実行方法およびサービス提供プログラム
JP5419166B2 (ja) チェックポイント作成装置、チェックポイント作成システム、チェックポイント作成方法及びチェックポイント作成プログラム
CN114253765A (zh) 一种数据恢复方法以及相关设备
CN111563010A (zh) 一种基于双机冗余***的数据同步方法、***及存储介质
JP2021082052A (ja) 制御装置及び制御プログラム
JPH06139214A (ja) データ復旧装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091113

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100406

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100603

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 4560074

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20130730

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350