JP2009080705A - Virtual machine system and method for restoring virtual machine in the system - Google Patents
Virtual machine system and method for restoring virtual machine in the system Download PDFInfo
- Publication number
- JP2009080705A JP2009080705A JP2007250228A JP2007250228A JP2009080705A JP 2009080705 A JP2009080705 A JP 2009080705A JP 2007250228 A JP2007250228 A JP 2007250228A JP 2007250228 A JP2007250228 A JP 2007250228A JP 2009080705 A JP2009080705 A JP 2009080705A
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45575—Starting, 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)
Abstract
Description
本発明は、物理計算機上で動作する仮想計算機を備えた仮想計算機システムに係り、特に、仮想計算機が動作する物理計算機の障害時に当該仮想計算機を復元するのに好適な仮想計算機システム及び同システムにおける仮想計算機復元方法に関する。 The present invention relates to a virtual machine system including a virtual machine that operates on a physical machine, and in particular, a virtual machine system suitable for restoring the virtual machine in the event of a failure of a physical machine on which the virtual machine operates, and the system The present invention relates to a virtual machine restoration method.
一般に計算機システムでは、障害が発生したときに、その障害発生直前のシステム状態を復元して処理を再開できるようにすることが要求される。このようなシステム状態を復元する手法として、従来から、スナップショットリカバリー方式及びチェックポイントリカバリー方式が知られている。 In general, in a computer system, when a failure occurs, it is required to restore the system state immediately before the failure so that the processing can be resumed. As a method for restoring such a system state, a snapshot recovery method and a checkpoint recovery method are conventionally known.
スナップショットリカバリー方式は、例えば定期的にシステム内部の状態をスナップショットとして取得して保存しておき、システムに障害が発生したときに、その障害発生時刻に最も近い時刻(スナップショット時刻)で取得されたスナップショット(つまり最新のスナップショット)に基づき、システムを当該障害発生時刻に最も近いスナップショット時刻の状態に復元するものである。 The snapshot recovery method, for example, periodically acquires and saves the internal state of the system as a snapshot, and when a failure occurs in the system, acquires it at the time closest to the failure occurrence time (snapshot time) The system is restored to the state of the snapshot time closest to the failure occurrence time based on the made snapshot (that is, the latest snapshot).
一方、チェックポイントリカバリー方式は、例えば特許文献1に記載されているように、計算機システムがネットワークを介して当該システムの外部(他の計算機システム)と通信している場合に、設定されたチェックポイントまでのネットワークへ/からの入出力(送受信)の履歴を保存しておき、システムに障害が発生したときには、保存しておいた履歴を用いてシステムの状態を復元するものである。ここで、計算機システムの外部から当該システムへの全ての入力に対する応答(出力)は、次のチェックポイントまで待機される。
上記したように、従来のスナップショットリカバリー方式では、計算機システムの状態を最新のスナップショットを取得した時点にしか復元できず、当該最新のスナップショットを取得した後の状態に関しては復元が不可能である。 As described above, with the conventional snapshot recovery method, the computer system state can be restored only when the latest snapshot is obtained, and the state after the latest snapshot is obtained cannot be restored. is there.
一方、従来のチェックポイントリカバリー方式(特許文献1に記載のチェックポイントリカバリー方式)では、チェックポイント以後の履歴により計算機システムの状態の回復を行うことを可能にしている。しかし、特許文献1に記載のチェックポイントリカバリー方式では、計算機システムの外部から当該システムへの全ての入力に対する応答(出力)は、次のチェックポイントまで待機させる必要がある。このためためチェックポイントリカバリー方式では、計算機システムにおける通常処理における性能が低下する。また、チェックポイントは計算機システムが外部に対して整合性を保てる状態でなければ取得することができない。
On the other hand, the conventional checkpoint recovery method (checkpoint recovery method described in Patent Document 1) makes it possible to recover the state of the computer system based on the history after the checkpoint. However, in the checkpoint recovery method described in
このため、システム外部への出力を待機させることなく、外部との整合性を保てる状態の如何を問わずに、スナップショットより後の障害発生時点まで計算機システムの復元を可能とすることが要求される。 For this reason, it is required that the computer system can be restored to the point of failure after the snapshot, regardless of the state in which consistency with the outside can be maintained without waiting for output to the outside of the system. The
ところで近年は、仮想計算機(仮想マシン)を備えた仮想計算機システムが開発されている。仮想計算機は、物理計算機上で動作する仮想化された計算機として知られている。仮想計算機は、仮想化されたディスク、メモリ、CPU(プロセッサ)及びネットワークインタフェースを含む。この仮想計算機上にオペレーティングシステム(OS)、アプリケーション(アプリケーションプログラム)をインストールすることにより、当該OS、アプリケーションを実行させることができる。仮想計算機は、システム外部(外部システム)からネットワークを介して何らかの入力が行われると、当該入力に応じた処理の結果を当該入力に対する出力(応答)としてシステム外部に送出する。 By the way, in recent years, a virtual machine system including a virtual machine (virtual machine) has been developed. A virtual computer is known as a virtualized computer that operates on a physical computer. The virtual machine includes a virtualized disk, memory, CPU (processor), and network interface. By installing an operating system (OS) and applications (application programs) on this virtual machine, the OS and applications can be executed. When any input is made from outside the system (external system) via the network, the virtual machine sends the processing result corresponding to the input to the outside of the system as an output (response) to the input.
そこで、このような仮想計算機システムにおいても、例えば仮想計算機が動作する物理計算機に障害が発生した場合に、通常の計算機システムと同様に、当該仮想計算機の状態をスナップショットより後の時点(例えば障害発生時点)まで復元できるようにすることが要求されている。 Therefore, even in such a virtual machine system, for example, when a failure occurs in a physical machine on which the virtual machine operates, the state of the virtual machine is changed to a point in time after the snapshot (for example, a failure occurs) It is required to be able to restore until the time of occurrence).
本発明は上記事情を考慮してなされたものでその目的は、仮想計算機のシステム外部への出力を待機させることなく、外部との整合性を保てる状態の如何を問わずに、仮想計算機の状態をスナップショットより後の障害発生時点まで復元することができる仮想計算機システム及び同システムにおける仮想計算機復元方法を提供することにある。 The present invention has been made in consideration of the above circumstances, and its purpose is to make the state of the virtual machine independent of the state in which consistency with the outside can be maintained without waiting for the output of the virtual machine to the outside of the system. It is to provide a virtual machine system that can restore a virtual machine system to a point of failure after a snapshot and a virtual machine restoration method in the system.
本発明の1つの観点によれば仮想計算機システムが提供される。このシステムは、物理計算機と、前記物理計算機または当該物理計算機とネットワークを介して接続される別の物理計算機上で動作する仮想計算機のスナップショットを格納するのに用いられるスナップショット格納手段と、前記仮想計算機を利用する外部システム及び前記仮想計算機の間で入出力される通信データを通信のログとして時系列順に記録する通信記録手段とを具備する。前記物理計算機は、前記物理計算機上で前記仮想計算機が動作する場合に、当該仮想計算機の状態を当該仮想計算機のスナップショットとして取得して、前記スナップショット格納手段に格納するスナップショット取得手段と、前記物理計算機または前記別の物理計算機上で前記仮想計算機が動作している状態で当該仮想計算機が正常に機能することができない障害が発生した後、当該仮想計算機を前記物理計算機上で復元することが可能な状態になった場合に、前記スナップショット格納手段に格納されている当該仮想計算機の最新のスナップショットに基づき、当該仮想計算機を当該スナップショットが取得された第1の時点に復元するスナップショット復元手段と、前記第1の時点に復元された前記仮想計算機に、前記通信記録手段によって記録されている通信のログに含まれている前記第1の時点から前記障害の発生時である第2の時点までの入力データを時系列順に投入することにより、前記仮想計算機を前記第2の時点まで復元するログ再生手段とを含む。 According to one aspect of the present invention, a virtual computer system is provided. The system includes a physical computer, snapshot storage means used for storing a snapshot of a virtual computer operating on the physical computer or another physical computer connected to the physical computer via a network, and And an external system using a virtual machine and communication recording means for recording communication data inputted / outputted between the virtual machines in a chronological order as a communication log. The physical computer, when the virtual computer operates on the physical computer, acquires the state of the virtual computer as a snapshot of the virtual computer, and stores the snapshot in the snapshot storage unit; The virtual machine is restored on the physical computer after a failure that prevents the virtual machine from functioning normally while the virtual machine is operating on the physical computer or the other physical computer. Snap that restores the virtual machine to the first point in time when the snapshot was acquired based on the latest snapshot of the virtual machine stored in the snapshot storage means Shot restoration means, and the virtual machine restored at the first time point, the communication recording means By inputting input data from the first time point to the second time point when the failure occurs included in the communication log recorded in the above order, the virtual machine is moved in the time series. Log replaying means for restoring to the second time point.
本発明によれば、スナップショットにより仮想計算機を当該スナップショットの取得時点まで復元するのに加えて、外部システム及び仮想計算機の間で入出力される通信データを通信のログとして時系列順に記録しておき、当該スナップショットの取得時点まで復元された仮想計算機に対して、当該通信のログに含まれている当該スナップショットの取得時点から障害発生時点までの入力データを時系列順に投入することにより、仮想計算機のシステム外部への出力を待機させることなく、外部との整合性を保てる状態の如何を問わずに、仮想計算機を障害発生時点まで復元することができる。、 According to the present invention, in addition to restoring a virtual machine to a snapshot acquisition point by snapshot, communication data input / output between the external system and the virtual machine is recorded in time series as a communication log. By inputting the input data from the snapshot acquisition time to the failure occurrence time included in the communication log to the virtual machine restored to the snapshot acquisition time in chronological order The virtual machine can be restored to the point of failure regardless of the state in which the consistency with the outside can be maintained without waiting for the output of the virtual machine to the outside of the system. ,
以下、本発明の実施の形態につき図面を参照して説明する。
図1は本発明の一実施形態に係る仮想計算機システムの構成を示すブロック図である。図1の仮想計算機システムは、複数の物理計算機(物理サーバ計算機)、例えば2台の物理計算機10-1及び10-2を含む。物理計算機10-1及び10-2は、ネットワーク20に接続されている。
Embodiments of the present invention will be described below with reference to the drawings.
FIG. 1 is a block diagram showing a configuration of a virtual machine system according to an embodiment of the present invention. The virtual computer system of FIG. 1 includes a plurality of physical computers (physical server computers), for example, two physical computers 10-1 and 10-2. The physical computers 10-1 and 10-2 are connected to the
物理計算機10-1及び10-2は、CPU、I/O装置、メモリ及びネットワークインタフェース(ネットワークインタフェースカード:NIC)のような周知のハードウェア資源(図示せず)を備えている。物理計算機10-1及び10-2が有するハードウェア資源は、仮想化されることにより、仮想計算機(仮想マシン)が動作する環境(仮想計算機実行環境)を提供する。図1では、物理計算機10-1の仮想計算機実行環境で仮想計算機11が動作している状態が示されている。なお、物理計算機10-1上で、仮想計算機11を含む複数の仮想計算機が動作する構成であっても構わない。
The physical computers 10-1 and 10-2 include well-known hardware resources (not shown) such as a CPU, an I / O device, a memory, and a network interface (network interface card: NIC). The hardware resources of the physical computers 10-1 and 10-2 are virtualized to provide an environment (virtual computer execution environment) in which the virtual computer (virtual machine) operates. FIG. 1 shows a state in which the
物理計算機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は、仮想化されたハードウェア資源を有する仮想計算機を構築する。 The hypervisors 12-1 and 12-2 operate on the physical computers 10-1 and 10-2, respectively. The hypervisors 12-1 and 12-2 are also called a virtual machine manager (virtual machine manager: VMM) or a virtual machine monitor (virtual machine monitor: VMM). The hypervisors 12-1 and 12-2 manage the virtual computers by managing the use of the above-described hardware resources of the physical computers 10-1 and 10-2, respectively. For example, the hypervisors 12-1 and 12-2 provide a virtual computer execution environment in which a virtual computer operates by virtualizing hardware resources of the physical computers 10-1 and 10-2. That is, the hypervisors 12-1 and 12-2 construct a virtual computer having virtualized hardware resources.
物理計算機10-1上で動作する仮想計算機11は、システム部13とアダプタ14とから構成される。システム部13は、仮想計算機11の本体であり、仮想計算機11上で動作するOS(オペレーティングシステム)に従ってアプリケーション(アプリケーションプログラム)を実行する。これによりシステム部13は、アダプタ14、ネットワーク20及び後述するスイッチ30を介して外部システム40との入力及び出力を行う。
The
アダプタ14は、仮想計算機11(内のシステム部13)のインタフェース機構をなしている。アダプタ14は、入出力機構141、ログ格納部142、ログ格納処理機構143、ログ再生機構144及びログ比較機構145を含む。
The
入出力機構141は、システム部13とネットワーク20との間の入出力を行う。入出力機構141はまた、物理計算機10-1に障害が発生した結果、当該物理計算機10-1上で動作していた仮想計算機11の状態を復元するためにスイッチ30内の後述するログ送信機構35からログ(通信の履歴)が送信された場合、当該ログを入力してログ格納処理機構143に渡す。ログ格納部142は、ログ送信機構35から送信されたログを一時格納するのに用いられる。本実施形態においてログ格納部142は、物理計算機10-1が持つメモリの領域を割り当てることによって実現される。ログ格納処理機構143は、入出力機構141から渡されたログをログ格納部142に格納する。
The input /
ログ再生機構144は、ログ格納部142に格納されたログに基づき、システム部13への入力及び当該入力に伴うシステム部13からの出力(つまりシステム部13へ/からの入出力)を再生(再現)する。ログ比較機構145は、システム部13の状態の復元時に、システム部13への入力に対する当該システム部13からの出力を上記ログに含まれている当該入力に対する出力と比較する。
The
ハイパーバイザー12-1は、スナップショット管理機構121及びスナップショット格納部122を含む。スナップショット管理機構121は、例えば定期的に、システム部13を含む仮想計算機11の状態をスナップショットとして取得するスナップショット取得機能を有する。スナップショット管理機構121はまた、取得されたスナップショットにより仮想計算機11をスナップショット取得時点に復元するスナップショット復元機能を有する。仮想計算機11の状態は、当該仮想計算機11に割り当てられているCPUの状態(プログラムカウンタ及びレジスタの状態)及びメモリの状態を含む。
The hypervisor 12-1 includes a
スナップショット格納部122は、スナップショット管理機構121によって取得されたスナップショットを格納するのに用いられる。本実施形態においてスナップショット格納部122は、物理計算機10-1が持つディスク装置のような永続的記憶装置の領域を割り当てることによって実現される。なお、スナップショット格納部122が、物理計算機10-1及び10-2で共有される共有ディスク装置(図示せず)の領域を割り当てることによって実現されても構わない。
図1では省略されているが、ハイパーバイザー12-2も、ハイパーバイザー12-1と同様の構成を有している。
The
Although omitted in FIG. 1, the hypervisor 12-2 has the same configuration as the hypervisor 12-1.
ネットワーク20には、計算機システム相互をネットワーク20を介して接続するためのスイッチ30が接続されている。図1の状態では、スイッチ30は、外部システム40をネットワーク20を介して物理計算機10-1上の仮想計算機11と接続している。外部システム40は、物理計算機10-1(上の仮想計算機11)の外部の計算機システムを指す。本実施形態において外部システム40は、物理計算機10-1(上の仮想計算機11)が提供するサービスを受けるクライアント端末であるが、物理計算機10-1と同様の計算機システム(物理サーバ計算機)であっても構わない。
A
スイッチ30は、通信記録装置31を含む。通信記録装置31は、ネットワーク20及びスイッチ30を経由しての通信のログ(履歴)を取得して記録する。通信記録装置31は、ログ取得機構32、ログ格納部33、ログ保存処理機構34及びログ送信機構35から構成される。
The
ログ取得機構32は、ネットワーク20及びスイッチ30を経由しての通信のログを取得する。ここでは、説明を簡略化するために、ログ取得機構32によって取得されるログが、物理計算機10-1上の仮想計算機11(に含まれているシステム部13)と外部システム40との間で行われる、ネットワーク20及びスイッチ30を経由しての通信のログであるものとする。また、以降の説明では、外部システム40から物理計算機10-1上の仮想計算機11への通信(通信データ)を入力(入力データ)と呼び、その逆の仮想計算機11から外部システム40への通信(通信データ)を出力(出力データ)と呼ぶ。
The
ログ格納部33は、ログ取得機構32によって取得された通信のログ(入出力データ)を格納するのに用いられる記憶手段である。ログ保存処理機構34は、ログ取得機構32によって取得された入出力データを時系列順にログ格納部33に保存する。本実施形態では、ログ保存処理機構34によってログ格納部33に保存される入力データには、当該データが仮想計算機(ここでは仮想計算機11)に送られた時刻(通信時刻)を示す時刻情報が付される。ログ送信機構35は、後述する制御機構50からの指示に応じて、ログ格納部33に保存されている通信のログを指定の物理計算機上の仮想計算機に送信する。
The
物理計算機10-1、物理計算機10-2及びスイッチ30は、ネットワーク21にも接続されている。このネットワーク21には、制御機構50も接続されている。制御機構50は、大別して2つの制御を行う。第1は、ネットワーク21に接続されている物理計算機上で動作している仮想計算機のスナップショットと当該仮想計算機が行う入出力のログ(通信のログ)との同期を取るための制御である。第2は、ネットワーク21に接続されている物理計算機に障害が発生した場合、当該物理計算機上で動作していた仮想計算機を、障害発生直前の状態に復元させるための制御である。
The physical computer 10-1, the physical computer 10-2, and the
なお、通信記録装置31が、ルータ、或いはプロキシサーバ(外部システム40から物理計算機10-1または10-2上で動作する仮想計算機へのアクセスを代理するプロキシサーバ)に設けられていてもよい。
Note that the
次に、図1に示す仮想計算機システムにおける動作について説明する。
まず、物理計算機10-1上のハイパーバイザー12-1に配置されたスナップショット管理機構121によるスナップショット取得の概略について、図2を参照して説明する。図2は、仮想計算機11の状態とスナップショット時刻とスナップショットとの関係を示す。
Next, operations in the virtual machine system shown in FIG. 1 will be described.
First, an outline of snapshot acquisition by the
本実施形態においてスナップショット管理機構121は、スナップショット取得手段として機能して、定期的に仮想計算機11のスナップショットを取得する。ここでは、スナップショット取得時刻として、時刻t1及びt2を含むものとする。この場合、スナップショット管理機構121は、時刻t1における仮想計算機11の状態(システム部13の状態を含む仮想計算機11の状態)201を、時刻t1におけるスナップショット202として取得する。またスナップショット管理機構121は、時刻t2における仮想計算機11の状態203を、時刻t2におけるスナップショット204として取得する。取得されたスナップショット202及び204はスナップショット格納部122に格納される。なお、スナップショット格納部122には、取得されたスナップショットの世代を管理するためのスナップショット管理情報も格納される。
In this embodiment, the
このように、時刻t1及びt2における、それぞれ仮想計算機11のスナップショット202及び204を取得してスナップショット格納部122に格納しておくことにより、時刻t2より後の任意の時刻t2+Δtにおいて、仮想計算機11を時刻t1またはt2の状態に復元することが可能となる。なお、スナップショット格納部122に最新のスナップショットのみを格納する構成を適用する場合には、仮想計算機11を時刻t2の状態にのみ復元することができる。いずれにしても、少なくとも時刻t2の状態に、仮想計算機11を復元することが可能となる。
As described above, by acquiring the
次に、スイッチ30内の通信記録装置31による、仮想計算機11(のシステム部13)と外部システム40との間の通信のログの記録について、図3を参照して説明する。図3は、外部システム40から仮想計算機11への通信(入力)時におけるデータ(入力データ)の流れと、当該入力データに対する仮想計算機11から外部システム40への通信(出力)時におけるデータ(出力データ)の流れとを示す。
Next, recording of a log of communication between the virtual computer 11 (
まず、外部システム40からの仮想計算機11(のシステム部13)宛てのデータ(入力データ)301はスイッチ30を経由して仮想計算機11のアダプタ14に送られる。アダプタ14(内の入出力機構141)は、この外部システム40からの入力データ301をシステム部13に入力する。
First, data (input data) 301 addressed to the virtual machine 11 (
スイッチ30に設けられた通信記録装置31内のログ取得機構32は、入力データ301が当該スイッチ30を経由する際に、当該入力データ301を通信のログとして取得する。通信記録装置31内のログ保存処理機構34は、ログ取得機構32によって取得された入力データ301を、時系列を保ってログ格納部33に保存する。この入力データの保存に際して、本実施形態におけるログ保存処理機構34は、その時点における時刻(通信時刻)を表す時刻情報を当該入力データに付す。
The
仮想計算機11のシステム部13は、アダプタ14(内の入出力機構141)によって入力された入力データ301を受け取ると、当該入力データ301に基づく処理を行って、その処理結果としての外部システム40宛ての出力データ302をアダプタ14(内の入出力機構141)に渡す。アダプタ14(内の入出力機構141)は、この出力データ302を外部システム40に送信するために、当該出力データ302をネットワーク20上に送出する。ネットワーク20上に送出された外部システム40宛ての出力データ302は、スイッチ30を経由して当該外部システム40に送られる。
When the
スイッチ30に設けられた通信記録装置31内のログ取得機構32は、仮想計算機11のシステム部13からの出力データ302が当該スイッチ30を経由する際に、当該出力データ302を通信のログとして取得する。通信記録装置31内のログ保存処理機構34は、ログ取得機構32によって取得された出力データ302を、時系列を保ってログ格納部33に保存する。
The
このようにして、仮想計算機11のシステム部13と外部システム40との間の通信で入出力されるデータが、通信のログとして、スイッチ30に設けられた通信記録装置31内のログ格納部33に時系列順に格納(記録)される。
In this way, data input / output by communication between the
図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…を表す時刻情報が付されている。
FIG. 4A shows an example of a log including a column of input / output data stored in the
図4(a)に示されるような、ログ格納部33に時系列順に格納された通信のログを用いることにより、以下に述べるように、仮想計算機11を上述の時刻t2+Δtにおける状態205(図2参照)に復元することができる。
By using a communication log stored in the
次に、時刻t2における仮想計算機11のスナップショット204が取得された後の上記時刻t2+Δtに物理計算機10-1の障害が発生した結果、仮想計算機11(のシステム部13)が正常に機能することができなくなったものとする。この場合、仮想計算機11を時刻(障害発生時刻)t2+Δtの状態に復元する仮想計算機復元処理(システム復元処理)が行われる。なお、仮想計算機11(のシステム部13)が正常に機能できない状態は、仮想計算機11のシステム部13、及びハイパーバイザー12-1のいずれか一方または両方に障害が発生した場合に発生する。このシステム部13及びハイパーバイザー12-1のいずれか一方または両方の障害は、物理計算機10-1の障害だけでなく、ソフトウェアのバグ等によっても発生する。
Next, as a result of the failure of the physical computer 10-1 at the time t2 + Δt after the
以下、仮想計算機復元処理について説明する。まず、物理計算機10-1の障害が回復し、当該物理計算機10-1が再起動されたものとする。すると物理計算機10-1上でハイパーバイザー12-1が再起動する。ハイパーバイザー12-1は、当該ハイパーバイザー12-1上に仮想計算機11を再生成する。制御機構50はハイパーバイザー12-1内のスナップショット管理機構121に対して、スナップショットによる仮想計算機11の復元を依頼する。
Hereinafter, the virtual machine restoration process will be described. First, it is assumed that the failure of the physical computer 10-1 has been recovered and the physical computer 10-1 has been restarted. Then, the hypervisor 12-1 is restarted on the physical computer 10-1. The hypervisor 12-1 regenerates the
スナップショット管理機構121は、制御機構50からの復元依頼を受けてスナップショット復元手段として機能して、スナップショット格納部122に保存されている最新のスナップショット、即ち時刻t2に取得されたスナップショット204(図2参照)に基づいて、仮想計算機11を、当該仮想計算機11のシステム部13を含めて時刻t2の状態に復元する。つまりスナップショット管理機構121は、スナップショットが取得された時刻t2(第1の時点)の状態の仮想計算機11を復元する。なお、スナップショット管理機構121に代えて、上述のスナップショット取得手段(スナップショット取得機構)とスナップショット復元手段(スナップショット復元機構)とを個々に設けることも可能である。
Upon receiving a restoration request from the
さて、スナップショット管理機構121によって復元された仮想計算機11には、時刻t2の状態のシステム部13が存在する。しかし、外部システム40は既に時刻t2よりΔtだけ進んだ時刻t2+Δtの状態にある。このため、外部システム40は、物理計算機10-1の障害発生直前まで仮想計算機11と通信を行っていたにも拘わらず、時刻t2の状態に復元された仮想計算機11との間で、殆どの場合において正常に通信を行うことができない。つまり外部システム40は、処理を継続することができない。
Now, the
そこで本実施形態では、スイッチ30内の通信記録装置31により記録されているログを利用することにより、時刻t2の状態に復元された仮想計算機11をt2+Δtの状態に復帰させることを可能にする。そのため、時刻t2の状態の仮想計算機11が復元されると、通信記録装置31内のログ送信機構35は、ログ格納部33に格納されているログを、仮想計算機11のアダプタ14にネットワーク20を介して送信する。
Therefore, in the present embodiment, by using the log recorded by the
ログ送信機構35からアダプタ14に送信されたログは、当該アダプタ14内の入出力機構141で受け取られて、ログ格納部142に格納される。入出力機構141は、ログ送信機構35から送信されたログを受け取ると、当該ログをログ格納処理機構143に渡す。するとログ格納処理機構143は、入出力機構141から渡されたログをログ格納部142に格納する。アダプタ14内のログ再生機構144は、ログ格納部142に格納されたログに含まれている入力データを仮想計算機11のシステム部13に時系列順に再投入する。このログに含まれている入力データを時系列順にシステム部13に再投入することを、ログの再生と呼ぶ。
The log transmitted from the
本実施形態では、仮想計算機11のスナップショットが取得された時点で、スイッチ30内の通信記録装置31のログ格納部33に格納されているログのデータ(入出力データ)は全て削除される。したがって、時刻t2のスナップショットに基づいて仮想計算機11が当該時刻t2の状態に復元された場合、時系列順に再投入される入力データは、時刻t2以降に取得された(時刻t2以降の)入力データとなる。この時刻t2以降の入力データが、図4(a)に示されるログに含まれているI1,I2,I3…であるものとする。
In the present embodiment, all log data (input / output data) stored in the
本実施形態では、仮想計算機11をt2+Δtの状態に復元する際の精度の向上のために、ログに含まれている時刻t2以降の入力データIi(i=1,2,3…)が、当該入力データIiに付された時刻情報に従って、先に入力されたのと相対時刻が同一の入力タイミングで、つまり先の入力タイミングを守って再投入される。これにより、時刻t2+Δtまでの期間における仮想計算機11の状態を高精度に再現させることが可能となる。但し、入力タイミングは必ずしも守る必要はなく、その場合、必ずしも入力データIiに時刻情報を付さなくてもよい。
In the present embodiment, in order to improve the accuracy when the
さて、仮想計算機11のシステム部13は、ログに含まれている入力データIiがログ再生機構144によって当該システム部13に再投入されると、その入力データIiを処理する。これによりシステム部13は、入力データIiが投入された際の状態から当該入力データIiで決まる新たな状態に遷移して、当該入力データIiに対する出力データOi’を出力する。このため、ログに含まれている時刻t2以降の入力データIiを時系列順にシステム部13に再投入することによって、時刻t(第1の時点)の状態に復元された仮想計算機11を時刻t2+Δt(第2の時点)の状態へ前進させることができる。
The
ここで、仮想計算機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は、送受信先のアドレスやポート情報によるマッチングや通信セッションの解析結果をもとにして特定することができる。
Here, if it can be confirmed that the
ログ比較機構145は、出力データOi’及びOiが一致している場合、上記ログ内で当該出力データOiに対応する入力データIiに付されている時刻情報の示す時刻の状態に、仮想計算機11が正しく復元されたと判定する。これに対して出力データOi’及びOiが一致していない場合、ログ比較機構145は、仮想計算機11が正しく復元されなかったと判定する。このようにログ比較機構145は、仮想計算機11のシステム部13における再生状況を監視することによって。仮想計算機11が正しく復元されたかを判定する。
When the output data Oi ′ and Oi match, the
なお、ログ格納部33に格納されているログをログ送信機構35が仮想計算機11のアダプタ14に送信する際に、当該ログに含まれている入出力データの時系列を、入力データの時系列順に、入力データと当該入力データに対応する出力データの組の列に加工して、その加工されたログをアダプタ14に送信するようにしてもよい。この加工をアダプタ14側で行っても構わない。図4(b)に、図4(a)に示されるログを加工した場合の、その加工されたログの例を示す。
When the
次にスナップショット取得及び静止点作成を含む処理の流れについて、図5のシーケンスチャートを参照して説明する。
制御機構50は、物理計算機10-1上で動作する仮想計算機11のスナップショットが取得されるべき時刻(例えば時刻t2)が到来すると、スイッチ30内の通信記録装置31に含まれているログ取得機構32に対して静止点作成依頼を発行する(ステップ501)。これを受けてログ取得機構32は、スナップショット管理機構121によるスナップショット取得のための静止点を作成する(ステップ502)。ここでは、時刻t2が静止点として作成される。この場合、後述するように、ログ格納部33に格納されているログが削除される。
Next, the flow of processing including snapshot acquisition and still point creation will be described with reference to the sequence chart of FIG.
The
ログ取得機構32は時刻t2に静止点を作成すると(ステップ502)、静止点作成依頼に対する応答(静止点の作成によりスナップショット取得が可能となった旨の応答)を制御機構50に返す(ステップ503)。すると制御機構50は、仮想計算機11のアダプタ14に含まれている入出力機構141に対して入出力停止依頼を発行する(ステップ504)。これを受けて入出力機構141は、当該入出力機構141とネットワーク20との間の入出力(通信)を停止(凍結)する(ステップ505)。これにより、ログ取得機構32によって作成された静止点が、スナップショット取得のための静止点として確定される。
When the
入出力機構141は、ネットワーク20との間の入出力を停止すると(ステップ505)、入出力停止依頼に対する応答を制御機構50に返す(ステップ506)。すると制御機構50は、スナップショット管理機構121に対してスナップショット取得依頼を発行する(ステップ507)。これを受けてスナップショット管理機構121は、仮想計算機11のスナップショットを取得する(ステップ508)。このとき、つまり時刻t2以降、入出力機構141は入出力が停止(凍結)された状態にある。このため、スナップショット管理機構121は、静止点の時刻t2における仮想計算機11のスナップショットを高精度に取得することができる。明らかなように、取得されたスナップショットは、入出力機構141での入出力と同期が取れている。
When the input /
スナップショット管理機構121はスナップショットが取得できたなら(ステップ508)、スナップショット取得完了を通知するための応答を制御機構50に返す(ステップ509)。すると制御機構50は、ログ取得機構32に対して静止解除依頼を発行する(ステップ510)。これを受けてログ取得機構32は、ログ格納部33に格納されているログ、つまり時刻t2より前に取得されていた入出力データを削除し、設定された静止点を解除する(ステップ511)。以後、ログ取得機構32はスイッチ30を経由する通信データ(入出力データ)があれば、そのデータをログとして取得することが可能となる。
If the
ログ取得機構32は静止点を解除すると(ステップ511)、静止解除依頼に対する応答を制御機構50に返す(ステップ512)。すると制御機構50は、入出力機構141に対して入出力再開依頼を発行する(ステップ513)。これを受けて入出力機構141は、入出力停止状態を解除して入出力を再開する(ステップ514)。そして入出力機構141は、入出力再開依頼に対する応答を制御機構50に返す(ステップ515)。
When the
このように通信記録装置31における静止点の設定/解除に応じて、入出力機構141の入出力停止/入出力再開を制御すると共に、入出力機構141の入出力停止に応じてスナップショットの取得を制御することにより、取得されるスナップショットを、入出力機構141での入出力と高精度に同期させることができる。これによりログ再生機構144は、複雑な構成を必要とせずに、仮想計算機11のシステム部13に対して精度の高い入出力の再生を行わせることができる。
As described above, the input / output stop / input / output restart of the input /
次に、上述の仮想計算機復元処理の流れについて、図6のシーケンスチャートを参照して説明する。
制御機構50は、時刻t+Δtで物理計算機10-1に障害が発生したために仮想計算機11を復元させる必要がある場合、スナップショット管理機構121に対して、スナップショットにより仮想計算機11を復元するための復元依頼を発行する(ステップ601)。これを受けてスナップショット管理機構121は、スナップショット格納部122に保存されている最新のスナップショット(時刻t2に取得されたスナップショット204)に基づいて、時刻t2の状態の仮想計算機11を復元する(ステップ602)。そしてスナップショット管理機構121は、復元依頼に対する応答を制御機構50に返す(ステップ603)。
Next, the flow of the virtual machine restoration process described above will be described with reference to the sequence chart of FIG.
When it is necessary to restore the
制御機構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)。
Upon receiving the response from the
When receiving a transmission completion response from the
さて、システム部13は、ログ再生機構144によって入力データIiが投入されると、当該入力データIiに対する出力データOi’を出力する。ログ比較機構145は、システム部13から入力データIiに対する出力データOi’が出力される毎に、ログ格納部142に格納されているログから当該入力データIiに対応する出力データOiを取り出す。そしてログ比較機構145は、入力データIiに対応する出力データOiが取り出せたなら、入力データIiに対する出力データOi’を当該取り出された出力データOiと比較する。この比較結果に基づき、入力データIiに対応する出力データOiが出力された時点の状態まで仮想計算機11を正常に復元できたかを判定する。もし、正常に復元できなかったと判定された場合、復元に失敗する。この場合、例えば通信を遮断したまま復元を終了するか、もしくはスナップショット時点に復元すればよい。
When the input data Ii is input by the
ログ比較機構145は、ログに含まれている全ての入力データIiについて、当該入力データIiに対するシステム部13からの出力データOi’がログ中の対応する出力データOiに一致している場合、仮想計算機11の状態を障害発生時刻t2+Δtまで正常に復元できたと判定する。するとログ比較機構145は、復元完了をログ再生機構144に通知する。
For all input data Ii included in the log, the
ログ再生機構144は、ログ比較機構145から復元完了が通知されると、即ち仮想計算機11の状態を障害発生時刻t2+Δtまで正常に復元できたとログ比較機構145が判定すると、この例のように未投入の入力データIiがログに含まれていないならば、制御機構50からのログ再生及び復元依頼に対する復元完了を通知するための応答を制御機構50に返す(ステップ614)。
When the
すると制御機構50は、入出力機構141に対して入出力再開依頼を発行する(ステップ615)。これを受けて入出力機構141は、入出力停止状態を解除して入出力を再開する(ステップ616)。そして入出力機構141は、入出力再開依頼に対する応答を制御機構50に返す(ステップ617)。
Then, the
ところで、システム部13から入力データIiに対する出力データOi’が出力されても、当該入力データIiに対応する出力データOiがログに含まれていないために、当該出力データOiをログ比較機構145が取り出すことができないことがある。この場合、ログ比較機構145は、当該出力データOiがシステム部13から出力される前に障害が発生したものと判定する。そしてログ比較機構145は、最も最近にシステム部13からの出力データとの一致が判定されたログ中の出力データが障害発生直前の出力データであり、したがって仮想計算機11の状態を障害発生時刻t2+Δtまで正常に復元できたと判定する。するとログ比較機構145は、復元完了をログ再生機構144に通知する。
By the way, even if the output data Oi ′ corresponding to the input data Ii is output from the
ログ再生機構144は、ログ比較機構145から復元完了が通知されると、未投入の入力データIiがログに含まれていても、制御機構50からのログ再生及び復元依頼に対する復元完了を通知するための応答を制御機構50に返す(ステップ614)。すると、上記ステップ615及び616が行われ、入出力機構141による入出力が再開される。このときログ再生機構144は、未投入の入力データIiがログに含まれているならば、当該未投入の入力データIiをシステム部13に再投入する。
When the
復元完了後に、ログ再生機構144によって入力データIi(つまり、対応する出力データOiがログ中に含まれていない入力データIi)がシステム部13に再投入された場合、当該入力データIiに対して当該システム部13から出力される出力データOiは、入出力機構141からネットワーク20及びスイッチ30を経由して外部システム40に送られる。ここで出力データOiがスイッチ30を経由する際、当該出力データOiがログ取得機構32によって取得されて、ログ保存処理機構34によってログ格納部33に追加される。
When the input data Ii (that is, input data Ii whose corresponding output data Oi is not included in the log) is re-entered into the
[第1の変形例]
次に上記実施形態の第1の変形例について説明する。
上記実施形態では、制御機構50が入出力機構141及びログ再生機構144を直接制御している。第1の変形例の特徴は、スナップショット取得及び静止点作成を含む処理における入出力機構141の制御をログ取得機構32に行わせ、仮想計算機復元処理における入出力機構141の制御をログ送信機構35及びログ再生機構144に行わせ、仮想計算機復元処理におけるログ再生機構144の制御をログ送信機構35に行わせた点にある。
[First Modification]
Next, a first modification of the above embodiment will be described.
In the above embodiment, the
以下、第1の変形例で適用される、スナップショット取得及び静止点作成を含む処理の流れ、並びに仮想計算機復元処理の流れについて、それぞれ図7及び図8のシーケンスチャートを参照して、上記実施形態(図5及び図6のシーケンスチャート)との相違点を中心に簡単に説明する。なお、図7及び図8において、それぞれ図5及び図6と同様の部分には同一参照番号を付してある。 Hereinafter, with reference to the sequence charts of FIG. 7 and FIG. 8, the above-described implementation of the processing flow including snapshot acquisition and creation of a quiesce point and the flow of virtual machine restoration processing applied in the first modification example will be described. A brief description will be given centering on differences from the embodiment (sequence charts of FIGS. 5 and 6). 7 and 8, the same reference numerals are assigned to the same parts as those in FIGS. 5 and 6.
まず、第1の変形例で適用されるスナップショット取得及び静止点作成を含む処理において、制御機構50からログ取得機構32に対して静止点作成依頼が発行されたものとする(ステップ501)。するとログ取得機構32は、スナップショット取得のための静止点を作成し(ステップ502)、当該制御機構50に代わって、入出力機構141に対して入出力停止依頼を発行する(ステップ701)。つまり、ログ取得機構32は、制御機構50からの静止点作成依頼を、入出力停止依頼として入出力機構141に伝播する。入出力機構141はログ取得機構32からの入出力停止依頼に応じて、ネットワーク20との間の入出力を停止する(ステップ505)。これにより、設定された静止点が、スナップショット取得のための静止点として確定される。
First, it is assumed that a request for creating a quiesce point is issued from the
入出力機構141は、入出力を停止すると(ステップ505)、入出力停止依頼に対する応答をログ取得機構32に返す(ステップ702)。これを受けてログ取得機構32は、先の静止点作成依頼に対する応答を制御機構50に返す(ステップ503)。すると、制御機構50からスナップショット管理機構121にスナップショット取得が依頼され(ステップ507)、当該スナップショット管理機構121がスナップショットを取得すると(ステップ508)、当該スナップショット管理機構121から制御機構50に応答が返される(ステップ509)。
When the input /
制御機構50は、スナップショット管理機構121からの応答に応じて、ログ取得機構32に対して静止解除依頼を発行し(ステップ510)、これを受けてログ取得機構32は設定された静止点を解除する(ステップ511)。そしてログ取得機構32は、制御機構50に代わって、入出力機構141に対して入出力再開依頼を発行する(ステップ703)。つまりログ取得機構32は、制御機構50からの静止解除依頼を、入出力再開依頼として入出力機構141に伝播する。
In response to a response from the
入出力機構141は、ログ取得機構32からの入出力再開依頼に応じて入出力停止状態を解除し、入出力を再開する(ステップ514)。そして入出力機構141は、ログ取得機構32からの入出力再開依頼に対する応答を当該ログ取得機構32に返す(ステップ704)。ログ取得機構32は、入出力機構141から入出力再開依頼に対する応答が返されると、先の静止解除依頼に対する応答を制御機構50に返す(ステップ512)。
In response to the input / output restart request from the
次に、第1の変形例で適用される仮想計算機復元処理において、制御機構50からスナップショット管理機構121に対して、スナップショットにより仮想計算機11を復元するための復元依頼が発行されたものとする(ステップ601)。するとスナップショット管理機構121は、スナップショット格納部122に保存されている例えば時刻t2に取得されたスナップショット204に基づいて、時刻t2の状態の仮想計算機11を復元し(ステップ602)、しかる後に復元依頼に対する応答を制御機構50に返す(ステップ603)。
Next, in the virtual machine restoration process applied in the first modified example, a restoration request for restoring the
制御機構50は、スナップショット管理機構121からの応答を受け取ると、ログ送信機構35に対してログによる復元依頼を発行する(ステップ801)。これを受けてログ送信機構35は、ログ格納部33に格納されているログを入出力機構141に送信する(ステップ605)。すると入出力機構141は入出力を停止する(ステップ606)。入出力機構141に送信されたログはログ格納処理機構143に渡されて、当該ログ格納処理機構143によってログ格納部142に格納される(ステップ607,608)。すると、ログ格納完了がログ格納処理機構143から入出力機構141に通知され(ステップ609)、更に当該ログ格納完了が当該入出力機構141からログ送信機構35に伝播される(ステップ610)。
Upon receiving the response from the
ログ送信機構35は、入出力機構141から伝播されたログ格納完了通知を受け取ると、制御機構50に代わって、ログ再生機構144に対してログ再生及び復元依頼を発行する(ステップ802)。ログ再生機構144は、ログ送信機構35からログ再生及び復元依頼を受け取ると、ログ格納部142に格納されたログに基づき、障害発生前の当該システム部13の入出力状態(ここでは時刻T2+Δtの状態)を再現させるためのログ再生及び復元を行う(ステップ613)。
When receiving the log storage completion notification propagated from the input /
ログ再生機構144は、仮想計算機11の状態を時刻t2+Δtまで正常に復元できた場合、入出力機構141に対して入出力再開依頼を発行する(ステップ803)。これを受けて入出力機構141は、入出力停止状態を解除して入出力を再開する(ステップ616)。そして入出力機構141は、入出力再開依頼に対する応答をログ再生機構144に返す(ステップ804)。
The
ログ再生機構144は入出力機構141から入出力再開依頼に対する応答を受け取ると、先のログ再生及び復元依頼に対する応答をログ送信機構35に返す(ステップ805)。ログ送信機構35は、ログ再生機構144からログ再生及び復元依頼に対する応答を受け取ると、先のログによる復元依頼に対する応答を制御機構50に返す(ステップ806)。
When the
[第2の変形例]
次に上記実施形態の第2の変形例について説明する。
上記実施形態では、ログ送信機構35によって送信されたログに含まれている全ての入力データIiが、ログ再生機構144によって仮想計算機11のシステム部13に投入される。しかし、システム部13で複数のアプリケーションが動作する場合、仮想計算機11を高速に復元するために、当該複数のアプリケーションのうちの特定のアプリケーションが動作する状態のみを復元すればよいこともある。つまり仮想計算機11の状態の部分的な復元が要求されることもある。このような場合、ログに含まれている全ての入力データIiを再投入するのは無駄である。そこで第2の変形例の特徴は、ログに含まれている入力データIiのうち、特定のアプリケーションに渡される入力データのみを再投入することにある。
[Second Modification]
Next, a second modification of the above embodiment will be described.
In the above embodiment, all input data Ii included in the log transmitted by the
図9は、仮想計算機11のアダプタ14内のログ再生機構144の構成を示すブロック図である。ログ再生機構144は、フィルタ機構144aを含む。フィルタ機構144aは、例えば制御機構50からのフィルタ設定144bに従い、ログ内の再生すべき入力データを絞り込むなお、フィルタ機構144aがログ再生機構144の外部に設けられていてもよい。
FIG. 9 is a block diagram showing a configuration of the
本実施形態においてフィルタ設定144bは、仮想計算機11(のシステム部13)上で動作する上記特定のアプリケーションに割り当てられたポートであって、仮想計算機11のシステム部13と当該特定のアプリケーションとの間で入出力データを授受するのに用いられるポートのポート番号を含む。このポート番号をPNsとするならば、外部システム40から送信される入力データのうち、仮想計算機11上の上記特定アプリケーション宛ての入力データは、宛先IPアドレスとして当該仮想計算機11に割り当てられたIPアドレスを含むと共に、宛先ポート番号としてPNsを含む。
In the present embodiment, the filter setting 144b is a port assigned to the specific application that operates on the virtual computer 11 (
そこで、フィルタ機構144aは、ログに含まれている仮想計算機11宛ての入力データのうち、宛先ポート番号がPNsの入力データのみを選択する。ログ再生機構144は、フィルタ機構144aによって選択された入力データを仮想計算機11のシステム部13に順次投入する。これにより、仮想計算機11のシステム部13に投入される入力データを、特定アプリケーションに渡されるべき入力データに絞ることができる。また、仮想計算機11のシステム部13に投入される入力データを絞ることにより、当該システム部13から出力される出力データ、即ちログ比較機構145で比較されるべき出力データも絞ることができる。よって上記第2の変形例によれば、仮想計算機11の状態の部分的な復元を効率的に行うことができる。
Therefore, the
[第3の変形例]
次に上記実施形態の第3の変形例について説明する。
図10は、仮想計算機11のアダプタ14内のログ比較機構145の構成を示すブロック図である。第3の変形例が第2の変形例と相違する点は、ログ再生機構144にフィルタ機構144aを設ける代わりに、図10に示されるように、当該フィルタ機構144aに相当するフィルタ機構145aを、ログ比較機構145に設けたことである。なお、フィルタ機構145aがログ比較機構145の外部に設けられていてもよい。
[Third Modification]
Next, a third modification of the above embodiment will be described.
FIG. 10 is a block diagram showing a configuration of the
第3の変形例においてログ再生機構144は、上記実施形態と同様に、ログ格納部142に格納されているログに含まれている全ての入力データを順次システム部13に投入する。するとシステム部13は、ログ再生機構144によって投入された入力データに対応する出力データを出力する。
In the third modification, the
第3の変形例においてフィルタ機構145aは、システム部13から出力される出力データのうち、例えば制御機構50からのフィルタ設定145bに従い、ログ比較機構145によって比較されるべき出力データを絞り込む。ここでは、フィルタ設定145bにポート番号PNsが含まれているものとすると、送信元ポート番号がPNsである特定アプリケーションからの出力データのみがログ比較機構145によって比較されるべき出力データとして選択される。
In the third modification, the
第3の変形例では、ログ比較機構145によって比較されるべき出力データが特定アプリケーションからの出力データに絞られる。このため、ログ比較機構145での負荷を低減することができる。しかも、ログ格納部142に格納されているログに含まれている全ての入力データがシステム部13に投入されることから、当該システム部13を含む仮想計算機11を高精度に復元することができる。
In the third modification, output data to be compared by the
なお、本発明は、上記実施形態またはその変形例そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。例えば上記実施形態及びその変形例では、物理計算機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を復元することも可能である。
In addition, this invention is not limited to the said embodiment or its modification example as it is, A component can be deform | transformed and embodied in the range which does not deviate from the summary in an implementation stage. For example, in the above embodiment and its modification, after a failure occurs in the physical computer 10-1, the failure of the physical computer 10-1 is recovered, the physical computer 10-1 is restarted, and the physical computer 10- When the hypervisor 12-1 is restarted on 1, the
また、上記実施形態及びその変形例では、制御機構50が物理計算機10-1及び10-2から独立に設けられている。しかし、制御機構50に相当する制御機構が、物理計算機10-1及び10-2内、例えば物理計算機10-1及び10-2上で動作するハイパーバイザー12-1及び12-2の各々に、設けられていてもよい。この場合、仮想計算機11が復元されるべきハイパーバイザー12-1または12-2に設けられる制御機構が制御機構50と同様の制御を行えばよい。
In the above embodiment and its modification, the
また、第2及び第3の変形例を組み合わせて、ログ再生機構144にフィルタ機構144aを設けると共に、ログ比較機構145にフィルタ機構145aを設けても構わない。
In addition, the
また、上記実施形態またはその変形例に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。例えば、実施形態またはその変形例に示される全構成要素から幾つかの構成要素を削除してもよい。 In addition, various inventions can be formed by appropriately combining a plurality of constituent elements disclosed in the embodiment or its modification. For example, you may delete a some component from all the components shown by embodiment or its modification.
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…ログ比較機構。
10-1 and 10-2 ... physical computers, 11 ... virtual computers, 12-1,12-2 ... hypervisor, 13 ... system unit, 14 ... adapter, 20,21 ... network, 30 ... switch, 31 ...
Claims (5)
前記物理計算機または当該物理計算機とネットワークを介して接続される別の物理計算機上で動作する仮想計算機のスナップショットを格納するのに用いられるスナップショット格納手段と、
前記仮想計算機を利用する外部システム及び前記仮想計算機との間で入出力される通信データを通信のログとして時系列順に記録する通信記録手段と
を具備し、
前記物理計算機は、
前記物理計算機上で前記仮想計算機が動作する場合に、当該仮想計算機の状態を当該仮想計算機のスナップショットとして取得して、前記スナップショット格納手段に格納するスナップショット取得手段と、
前記物理計算機または前記別の物理計算機上で前記仮想計算機が動作している状態で当該仮想計算機が正常に機能することができない障害が発生した後、当該仮想計算機を前記物理計算機上で復元することが可能な状態になった場合に、前記スナップショット格納手段に格納されている当該仮想計算機の最新のスナップショットに基づき、当該仮想計算機を当該スナップショットが取得された第1の時点に復元するスナップショット復元手段と、
前記第1の時点に復元された前記仮想計算機に、前記通信記録手段によって記録されている通信のログに含まれている前記第1の時点から前記障害の発生時である第2の時点までの入力データを時系列順に投入することにより、前記仮想計算機を前記第2の時点まで復元するログ再生手段とを含む
ことを特徴とする仮想計算機システム。 A physical computer,
Snapshot storage means used for storing a snapshot of a virtual machine operating on the physical computer or another physical computer connected to the physical computer via a network;
Communication recording means for recording communication data input / output between the external system using the virtual machine and the virtual machine as a communication log in chronological order, and
The physical computer is
When the virtual machine operates on the physical computer, a snapshot acquisition unit that acquires the state of the virtual machine as a snapshot of the virtual computer and stores the snapshot in the snapshot storage unit;
The virtual machine is restored on the physical computer after a failure that prevents the virtual machine from functioning normally while the virtual machine is operating on the physical computer or the other physical computer. Snap that restores the virtual machine to the first point in time when the snapshot was acquired based on the latest snapshot of the virtual machine stored in the snapshot storage means Shot restoration means,
From the first time point included in the communication log recorded by the communication recording unit to the second time point when the failure occurs, in the virtual machine restored at the first time point And a log reproducing unit for restoring the virtual machine to the second time point by inputting input data in time series.
前記ログ再生手段は、前記仮想計算機上で複数のアプリケーションが動作する場合に、少なくとも、前記複数のアプリケーションのうちの予め設定された特定アプリケーションの動作に関して前記仮想計算機を前記第2の時点まで復元するために、前記通信のログに含まれている入力データの時系列から、前記特定アプリケーションに割り当てられたポートのポート番号を宛先ポート番号として含む入力データのみを、前記仮想計算機に投入されるべき入力データとして選択するフィルタ手段を含む
ことを特徴とする請求項1乃至3のいずれかに記載の仮想計算機システム。 The input data includes a port number of a port assigned to an application that operates on the virtual machine and processes the input data as a destination port number;
The log reproduction means restores the virtual machine to the second time point at least with respect to the operation of a predetermined specific application among the plurality of applications when a plurality of applications operate on the virtual machine. Therefore, from the time series of input data included in the communication log, only input data including a port number of a port assigned to the specific application as a destination port number is input to be input to the virtual machine. The virtual computer system according to any one of claims 1 to 3, further comprising filter means for selecting data.
前記物理計算機上で前記仮想計算機が動作する場合に、前記物理計算機が、当該仮想計算機の状態を当該仮想計算機のスナップショットとして取得して、前記スナップショット格納手段に格納するステップと、
前記物理計算機または前記別の物理計算機上で前記仮想計算機が動作している状態で当該仮想計算機が正常に機能することができない障害が発生した後、当該仮想計算機を前記物理計算機上で復元することが可能な状態になった場合に、前記物理計算機が、前記スナップショット格納手段に格納されている当該仮想計算機の最新のスナップショットに基づき、当該仮想計算機を当該スナップショットが取得された第1の時点に復元するステップと、
前記第1の時点に復元された前記仮想計算機に、前記通信記録手段によって記録されている通信のログに含まれている前記第1の時点から前記障害の発生時である第2の時点までの入力データを前記物理計算機が時系列順に投入することにより、前記仮想計算機を前記第2の時点まで復元するステップと
を具備することを特徴とする仮想計算機復元方法。 Utilizing a physical computer, snapshot storage means used to store a virtual computer operating on the physical computer or another physical computer connected to the physical computer via a network, and the virtual computer A virtual machine restoration method applied to a virtual machine system comprising a communication recording means for recording communication data input / output between the external system and the virtual machine in time series as a communication log,
When the virtual machine operates on the physical computer, the physical computer acquires the state of the virtual machine as a snapshot of the virtual machine, and stores the snapshot in the snapshot storage unit;
The virtual machine is restored on the physical computer after a failure that prevents the virtual machine from functioning normally while the virtual machine is operating on the physical computer or the other physical computer. When the state becomes possible, the physical computer is based on the latest snapshot of the virtual computer stored in the snapshot storage unit, and the virtual computer has the first snapshot from which the snapshot has been acquired. A step to restore to the point in time,
From the first time point included in the communication log recorded by the communication recording unit to the second time point when the failure occurs, in the virtual machine restored at the first time point And a step of restoring the virtual computer to the second time point by inputting the input data in time series by the physical computer.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007250228A JP4560074B2 (en) | 2007-09-26 | 2007-09-26 | Virtual computer system and virtual computer restoration method in the same system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007250228A JP4560074B2 (en) | 2007-09-26 | 2007-09-26 | Virtual computer system and virtual computer restoration method in the same system |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009080705A true JP2009080705A (en) | 2009-04-16 |
JP4560074B2 JP4560074B2 (en) | 2010-10-13 |
Family
ID=40655397
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007250228A Active JP4560074B2 (en) | 2007-09-26 | 2007-09-26 | Virtual computer system and virtual computer restoration method in the same system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4560074B2 (en) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011048678A (en) * | 2009-08-27 | 2011-03-10 | Fujitsu Ltd | Job operation support method and computer apparatus |
JP2011253350A (en) * | 2010-06-02 | 2011-12-15 | Mitsubishi Electric Corp | Virtual computer control system |
WO2012042555A1 (en) * | 2010-09-27 | 2012-04-05 | 株式会社日立製作所 | Computer system and management method therefor |
US8656126B2 (en) | 2010-09-30 | 2014-02-18 | International Business Machines Corporation | Managing snapshots of virtual server |
EP2811402A1 (en) | 2013-06-06 | 2014-12-10 | Fujitsu Limited | Transaction resuming program, information processing apparatus and transaction resuming method |
US9104448B2 (en) | 2012-12-03 | 2015-08-11 | International Business Machines Corporation | Restoring a previous version of a virtual machine image |
KR20180101547A (en) * | 2016-01-14 | 2018-09-12 | 아브 이니티오 테크놀로지 엘엘시 | Recoverable stream processing |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01116843A (en) * | 1987-10-30 | 1989-05-09 | Mitsubishi Electric Corp | Monitor controller |
JPH0784901A (en) * | 1993-09-17 | 1995-03-31 | Fujitsu Ltd | Terminal operation reproducing device |
JP2000047911A (en) * | 1998-07-30 | 2000-02-18 | Yamaha Corp | Karaoke device |
JP2000194624A (en) * | 1998-12-25 | 2000-07-14 | Toshiba Corp | Computer system and communication recovery system |
JP2007018100A (en) * | 2005-07-05 | 2007-01-25 | Fujitsu Ten Ltd | Log recording device and log recording method |
JP2007148839A (en) * | 2005-11-29 | 2007-06-14 | Hitachi Ltd | Failure recovery method |
JP2007200114A (en) * | 2006-01-27 | 2007-08-09 | Hitachi Ltd | Database recovery method and computer system |
-
2007
- 2007-09-26 JP JP2007250228A patent/JP4560074B2/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01116843A (en) * | 1987-10-30 | 1989-05-09 | Mitsubishi Electric Corp | Monitor controller |
JPH0784901A (en) * | 1993-09-17 | 1995-03-31 | Fujitsu Ltd | Terminal operation reproducing device |
JP2000047911A (en) * | 1998-07-30 | 2000-02-18 | Yamaha Corp | Karaoke device |
JP2000194624A (en) * | 1998-12-25 | 2000-07-14 | Toshiba Corp | Computer system and communication recovery system |
JP2007018100A (en) * | 2005-07-05 | 2007-01-25 | Fujitsu Ten Ltd | Log recording device and log recording method |
JP2007148839A (en) * | 2005-11-29 | 2007-06-14 | Hitachi Ltd | Failure recovery method |
JP2007200114A (en) * | 2006-01-27 | 2007-08-09 | Hitachi Ltd | Database recovery method and computer system |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011048678A (en) * | 2009-08-27 | 2011-03-10 | Fujitsu Ltd | Job operation support method and computer apparatus |
JP2011253350A (en) * | 2010-06-02 | 2011-12-15 | Mitsubishi Electric Corp | Virtual computer control system |
WO2012042555A1 (en) * | 2010-09-27 | 2012-04-05 | 株式会社日立製作所 | Computer system and management method therefor |
JP5309263B2 (en) * | 2010-09-27 | 2013-10-09 | 株式会社日立製作所 | Computer system and management method thereof |
US8656126B2 (en) | 2010-09-30 | 2014-02-18 | International Business Machines Corporation | Managing snapshots of virtual server |
US9104448B2 (en) | 2012-12-03 | 2015-08-11 | International Business Machines Corporation | Restoring a previous version of a virtual machine image |
US9104447B2 (en) | 2012-12-03 | 2015-08-11 | International Business Machines Corporation | Restoring a previous version of a virtual machine image |
EP2811402A1 (en) | 2013-06-06 | 2014-12-10 | Fujitsu Limited | Transaction resuming program, information processing apparatus and transaction resuming method |
US9342409B2 (en) | 2013-06-06 | 2016-05-17 | Fujitsu Limited | Recording medium storing transaction resuming program, information processing apparatus and transaction resuming method |
KR20180101547A (en) * | 2016-01-14 | 2018-09-12 | 아브 이니티오 테크놀로지 엘엘시 | Recoverable stream processing |
US10601890B2 (en) | 2016-01-14 | 2020-03-24 | Ab Initio Technology Llc | Recoverable stream processing |
KR102121139B1 (en) * | 2016-01-14 | 2020-06-17 | 아브 이니티오 테크놀로지 엘엘시 | Recoverable stream processing |
Also Published As
Publication number | Publication date |
---|---|
JP4560074B2 (en) | 2010-10-13 |
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 (en) | Replaying jobs at a secondary location of a service | |
Lorch et al. | The SMART way to migrate replicated stateful services | |
US8307363B2 (en) | Virtual machine system, restarting method of virtual machine and system | |
US8214686B2 (en) | Distributed processing method | |
US7594138B2 (en) | System and method of error recovery for backup applications | |
JP4560074B2 (en) | Virtual computer system and virtual computer restoration method in the same system | |
JP2009080692A (en) | Virtual machine system and service taking-over control method for same system | |
CN103176831A (en) | Virtual machine system and management method thereof | |
US12001404B2 (en) | Techniques for replication checkpointing during disaster recovery | |
US8977897B2 (en) | Computer-readable recording medium, data management method, and storage device | |
JP2007265137A (en) | Multi-task processing method and multi-task processing apparatus | |
CN110389713B (en) | Data synchronization method, apparatus and computer readable medium | |
JP5544516B2 (en) | Highly available server system, high availability server system failure recovery method, and highly available server | |
JP4157536B2 (en) | Program execution device, program execution method, and service providing program | |
CN113868027B (en) | Data snapshot method and device | |
CN116578446B (en) | Virtual machine backup method, device and system, electronic equipment and storage medium | |
US20240094937A1 (en) | Concurrent and non-blocking object deletion for cross-region replications | |
US20240281413A1 (en) | Techniques for replication checkpointing during disaster recovery | |
CN114253765A (en) | Data recovery method and related equipment | |
CN111563010A (en) | Data synchronization method, system and storage medium based on dual-computer redundancy system | |
JP2012027634A (en) | Check point creating device, check point creating system, check point creating method and check point creating program | |
JPH06139214A (en) | Data restoring device |
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 |