JP2009080692A - 仮想計算機システム及び同システムにおけるサービス引き継ぎ制御方法 - Google Patents
仮想計算機システム及び同システムにおけるサービス引き継ぎ制御方法 Download PDFInfo
- Publication number
- JP2009080692A JP2009080692A JP2007250062A JP2007250062A JP2009080692A JP 2009080692 A JP2009080692 A JP 2009080692A JP 2007250062 A JP2007250062 A JP 2007250062A JP 2007250062 A JP2007250062 A JP 2007250062A JP 2009080692 A JP2009080692 A JP 2009080692A
- Authority
- JP
- Japan
- Prior art keywords
- virtual machine
- communication
- state
- physical computer
- virtual
- 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
Links
Images
Abstract
【課題】仮想マシンが動作している物理計算機に障害が発生した場合、別の物理計算機上で再生成または再起動される仮想マシンによりサービスを継続させる。
【解決手段】仮想マシン11-1が動作しているサーバ計算機10-1に障害が発生した場合、サーバ計算機10-2の仮想マシンモニタ12-2は、障害発生時刻に最も近い時点でディスク装置100に採取されたスナップショットに基づき、仮想マシン11-1を仮想マシン11-2としてサーバ計算機10-2上に再生成する。通信記録ユニット30の状態再現部33は、仮想マシン11-1に対応付けられた通信履歴に基づき、スナップショットの採取時期から上記障害発生時刻までの期間における仮想マシン11-1の状態を仮想マシン11-2に再現させる。再起動部120-2は、例えば仮想マシン11-1の状態の再現に失敗した場合、仮想マシン11-1をサーバ計算機10-1上で再起動する。
【選択図】 図1
【解決手段】仮想マシン11-1が動作しているサーバ計算機10-1に障害が発生した場合、サーバ計算機10-2の仮想マシンモニタ12-2は、障害発生時刻に最も近い時点でディスク装置100に採取されたスナップショットに基づき、仮想マシン11-1を仮想マシン11-2としてサーバ計算機10-2上に再生成する。通信記録ユニット30の状態再現部33は、仮想マシン11-1に対応付けられた通信履歴に基づき、スナップショットの採取時期から上記障害発生時刻までの期間における仮想マシン11-1の状態を仮想マシン11-2に再現させる。再起動部120-2は、例えば仮想マシン11-1の状態の再現に失敗した場合、仮想マシン11-1をサーバ計算機10-1上で再起動する。
【選択図】 図1
Description
本発明は、仮想マシンが動作可能な複数の物理計算機を備えた仮想計算機システムに係り、特に、仮想マシンが動作する物理計算機の障害時のサービスの引き継ぎに好適な仮想計算機システム及び同システムにおけるサービス引き継ぎ制御方法に関する。
一般に計算機システムでは、計算機(またはプロセッサ)に障害が発生した場合に、当該計算機(またはプロセッサ)で実行されていた処理が継続可能なように、当該計算機(またはプロセッサ)の動作状態をスナップショットとして採取することが行われている(例えば、特許文献1参照)。
また、このようなスナップショットの採取は、例えば特許文献2に記載されたようなクラスタ構成の計算機システム(クラスタシステム)においても行われている。例えば、第1及び第2のサーバから構成されるクラスタシステムにおいて、第1のサーバがクライアントに対してサービスを提供するものとする。このシステムでは、第1のサーバの動作状態(メモリの内容、CPUの状態、ディスクの内容)が定期的にスナップショットとして採取される。スナップショットには、スナップショット採取時点における第1のサーバの動作状態全てが保存される。
したがって、第1のサーバに障害が発生した場合、その障害発生時に最も近い時点で採取された最新のスナップショットを用いることで、当該第1のサーバの最新のスナップショット採取時の状態を第2のサーバに復元することができる。つまり、障害が発生したサーバの動作を、当該サーバに関する最新のスナップショットに基づき、別のサーバで当該スナップショットの採取時の状態から再生することができる。
特開2006−139621号公報
特開2005−250626号公報
一方、近年は、仮想マシンが動作可能な複数の物理計算機によってクラスタシステムが構成される仮想計算機システムが出現している。そこで、このような仮想計算機システムにおいても、仮想マシンの動作状態(メモリの内容、CPUの状態、ディスクの内容)をスナップショットという1つのファイルに定期的に保存することが考えられる。このようにすると、ある物理計算機に何らかの障害(例えばハードウェア障害)が発生した場合、その物理計算機上で動作していた仮想マシンの動作を、当該仮想マシンに関する最新のスナップショットを用いることで、別の物理計算機上の仮想マシンで当該スナップショットの採取時の状態から再生することが可能となる。
しかしながら、仮想マシンがスナップショットの採取時(障害発生時に最も近いステップの採取時)から再生される場合、つまり仮想マシンの動作状態が障害発生時よりも前の状態に戻される場合、仮想マシンに接続(論理的に接続)して当該仮想マシンからのサービスの提供を受けていたクライアントマシンとの間に動作状態の不整合か発生してしまう。
一方、複数の物理計算機(サーバ計算機)から構成される通常のクラスタシステムでは、クライアントに対してサービスを提供しているサーバ計算機の障害時には、当該サービスを引き継ぐ別のサーバ計算機上で、障害が発生したサーバ計算機で実行されていたOS(オペレーティングシステム)やアプリケーションの再起動が行われる。そこで、このような通常のクラスタシステムで適用されているサーバ計算機の障害時の処理を、仮想マシンによってクラスタシステムが構成される仮想計算機システムに適用することが考えられる。しかし、OSやアプリケーションの起動には、スナップショットからの仮想マシンの再生に比べて長時間を要し、アプリケーションのロールバックが必要となる場合には更に時間を要する。
本発明は上記事情を考慮してなされたものでその目的は、クライアントマシンに対してサービスを提供する仮想マシンが動作している物理計算機に障害が発生した場合に、別の物理計算機上で再生成または再起動される仮想マシンにより高速に且つ確実にサービスを継続させることができる仮想計算機システム及び同システムにおけるサービス引き継ぎ制御方法を提供することにある。
本発明の1つの観点によれば、仮想マシンがそれぞれ動作可能な、第1及び第2の物理計算機を含む複数の物理計算機を備えた仮想計算機システムが提供される。このシステムは、前記複数の物理計算機によって共有されるディスク装置であって、前記複数の物理計算機のうちの任意の物理計算機で動作する仮想マシンが仮想ディスクとして使用可能なデータ領域を提供するディスク装置と、前記任意の物理計算機で動作する仮想マシンによって提供されるサービスを利用するクライアントマシンと、前記複数の物理計算機でそれぞれ動作する仮想マシンに対応付けられた通信記録テーブルに、対応する仮想マシンと当該仮想マシンによって提供されるサービスを利用するクライアントマシンとの間の通信の履歴を時系列順に記録する通信記録ユニットとを具備する。前記第1の物理計算機は、当該第1の物理計算機で仮想マシンが第1の仮想マシンとして動作する場合、当該第1の仮想マシンの動作状態及び当該第1の仮想マシンの使用する前記仮想ディスクの状態を当該第1の仮想マシンに対応付けて定期的にスナップショットとして前記ディスク装置に採取するスナップショット管理手段を含む。前記第2の物理計算機は、当該第2の物理計算機で動作可能な仮想マシンを管理する仮想マシンモニタであって、当該第2の物理計算機とは別の前記第1の物理計算機上で前記第1の仮想マシンが動作している状態で当該第1の物理計算機に障害が発生した場合、当該第1の物理計算機の障害発生時刻に最も近い時点で当該第1の仮想マシンに対応付けて前記ディスク装置に採取された前記スナップショットに基づき、当該第1の仮想マシンを第2の仮想マシンとして当該第2の物理計算機上に再生成する仮想マシンモニタと、当該第2の物理計算機上で、前記第1の仮想マシンを当該第1の仮想マシンによって使用されていた仮想ディスクに基づいて再起動する再起動手段とを含む。前記通信記録ユニットは、前記スナップショットの採取時期から前記第1の物理計算機の障害発生時刻までの期間における前記第1の仮想マシンの状態を前記第2の仮想マシンに再現させるために、前記第1の仮想マシンに対応付けられた通信記録テーブルに記録された通信履歴のうち、前記スナップショットの採取時期から前記第1の物理計算機の障害発生時刻までの期間に前記第1の仮想マシンに送信された通信データを、前記第2の仮想マシンに時系列順に送信し、送信された通信データに対する前記第2の仮想マシンからの応答を、前記第1の仮想マシンに対応付けられた通信記録テーブルに記録された、当該通信データに対する前記第1の仮想マシンからの応答と比較することにより、前記第1の仮想マシンの状態の再現に成功したかを判定する状態再現手段を含む。前記仮想マシンモニタは、前記第1の仮想マシンの状態を再現できたと判定された場合、前記第2の仮想マシンによりサービスを継続させ、前記第1の仮想マシンの状態を再現できなかったと判定された場合、前記再起動手段によって再起動される前記第1の仮想マシンによりサービスを継続させる。
本発明によれば、クライアントマシンに対してサービスを提供する仮想マシン(第1の仮想マシン)が動作している物理計算機(第1の物理計算機)に障害が発生した場合に、別の物理計算機(第2の物理計算機)上で再生成される仮想マシン(第2の仮想マシン)または再起動される仮想マシン(第1の仮想マシン)により高速に且つ確実にサービスを継続させることができる。特に本発明においては、スナップショット及び通信履歴に基づき第1の仮想マシンの状態を再現できた場合には、障害発生直前の状態から極めて速やかにサービスを継続させることができる。
以下、本発明の実施の形態につき図面を参照して説明する。
図1は本発明の一実施形態に係る仮想計算機システムの構成を示すブロック図である。図1において、ネットワーク(第1のネットワーク)1には、複数のサーバ計算機(物理サーバ計算機、物理計算機)、例えば2台のサーバ計算機10-1及び10-2が接続されている。
図1は本発明の一実施形態に係る仮想計算機システムの構成を示すブロック図である。図1において、ネットワーク(第1のネットワーク)1には、複数のサーバ計算機(物理サーバ計算機、物理計算機)、例えば2台のサーバ計算機10-1及び10-2が接続されている。
サーバ計算機10-1及び10-2は、CPU、I/O装置及びメモリのような周知のハードウェア資源(図示せず)を備えている。サーバ計算機10-1及び10-2は、当該計算機10-1及び10-2によって共有されるディスク装置100と接続されている。つまりディスク装置100は、サーバ計算機10-1及び10-2が共通に有するハードウェア資源である。
サーバ計算機10-1及び10-2が有するハードウェア資源は、仮想化されることにより、仮想マシン(Virtual Machine:VM)が動作する環境(仮想マシン実行環境)を提供する。図1では、サーバ計算機10-1の仮想マシン実行環境で仮想マシン11-1が動作している状態が示されている。この仮想マシン実行環境は、当該実行環境がディスク装置100のうちの仮想マシン11-1に割り当てられる(仮想マシン11-1が利用可能な)仮想化されたディスク領域である仮想ディスク110を含む。仮想ディスク110の内容は、後述する仮想マシンモニタ12-1及び12-2からは、1つのファイルとして認識される。
仮想マシン11-1が動作するサーバ計算機10-1に障害が発生した場合、当該仮想マシン11-1が提供するサービスを、別のサーバ計算機、例えばサーバ計算機10-2側に引き継がせるために、当該サーバ計算機10-2に仮想マシン11-1に相当する仮想マシン11-2が生成(再生成)される。図1では、仮想マシン11-2が破線のブロックで示されている。このことは、図1の状態では、未だ仮想マシン11-2がサーバ計算機10-2上に生成されていないことを示す。
ネットワーク(第2のネットワーク)2には、クライアントマシン20が接続されている。ネットワーク1及びネットワーク2はルータ3によって接続されている。クライアントマシン20は、サーバ計算機10-1及び10-2上で仮想マシンが動作する場合に、当該仮想マシンの提供するサービスを利用するために、ネットワーク2、ルータ3及びネットワーク1を介して当該仮想マシンと通信を行う。図1の例では、クライアントマシン20は、サーバ計算機10-1上で動作する仮想マシン11-1と通信を行う。
ルータ3は通信記録ユニット30を有する。通信記録ユニット30は通信記録部31、通信記録テーブル32、状態再現部33及び通信ブロッキング部34を含む。通信記録テーブル32は仮想マシン11-1に対応して用意される。
通信記録部31は、クライアントマシン2とサーバ計算機10-1上で動作する仮想マシン11-1との間でネットワーク1及び2を介して行われる通信の履歴を通信記録テーブル32に時系列順に記録する。本実施形態において、通信記録ユニット30には、仮想マシン毎に通信記録テーブルが用意される。クライアントマシンと仮想マシンとの間の通信の履歴は、その仮想マシンに対応する通信記録テーブルに記録される。
状態再現部33は、例えば仮想マシン11-1が動作するサーバ計算機10-1で障害が発生した場合に、障害発生直前のスナップショット採取時から障害発生時までの期間に通信記録テーブル32に記録された通信の履歴に基づき、当該仮想マシン11-1の障害発生時の状態を再現する。状態再現部33は、再投入部331及び再現判定部332を含む。
再投入部331は、通信記録テーブル32に記録された通信の履歴のうち、上述の障害発生直前のスナップショット採取時から障害発生時までの期間にクライアントマシン20から仮想マシン11-1に送信された通信データを、状態再現の対象となる仮想マシンに時系列順に送信(投入)する。再現判定部332は、再投入部331によって送信(投入)された通信データに対する仮想マシンからの応答と、通信記録テーブル32に記録されている当該通信データに対する応答とを比較することにより、障害発生時の仮想マシン11-1の状態が再現されたかを判定する。
通信ブロッキング部34は、状態再現部33が通信記録テーブル32に基いて仮想マシンの障害発生時の状態を再現する処理を行っている期間、当該通信記録テーブル32に記録されている通信データを送信していたクライアントマシン(ここではクライアントマシン20)から当該仮想マシンへのアクセスをブロックする。
サーバ計算機10-1及び10-2上では、ハイパバイザである仮想マシンモニタ(Virtual Machine Monitor:VMM)12-1及び12-2がそれぞれ動作する。仮想マシンモニタ12-1及び12-2は、仮想マシンマネージャとも呼ばれる。仮想マシンモニタ12-1及び12-2は、それぞれ、サーバ計算機10-1及び10-2が有する上述のハードウェア資源の利用を管理することで、サーバ計算機10-1及び10-2上で動作する仮想マシンを管理する。例えば仮想マシンモニタ12-1及び12-2は、サーバ計算機10-1及び10-2が有するハードウェア資源を仮想化することにより仮想マシンが動作する仮想マシン実行環境を提供する。つまり仮想マシンモニタ12-1及び12-2は、仮想化されたハードウェア資源を有する仮想マシンを構築する。
仮想マシンモニタ12-1及び12-2は、それぞれ再起動部120-1及び120-2を含む。再起動部120-i(i=1,2)は、サーバ計算機10-j(j=1,2、但しj≠i)に障害が発生した場合に、当該サーバ計算機10-jで動作していた仮想マシンをサーバ計算機10-i上で起動する。本実施形態では、サーバ計算機10-jで動作していた仮想マシンの状態再現(通信記録ユニット30内の状態再現部33による状態再現)に失敗したことをもって、再起動部120-iによる仮想マシン起動処理が開始される。
サーバ計算機10-1及び10-2上ではまた、スナップショットマネージャ13-1及び13-2がそれぞれ動作する。スナップショットマネージャ13-1及び13-2は、サーバ計算機10-1及び10-2上で仮想マシンが動作する場合に、定期的に当該仮想マシンの動作状態及び当該仮想マシンが利用する仮想ディスクの内容をスナップショットとしてディスク装置100に採取(格納)する。仮想マシンの動作状態は、当該仮想マシンに割り当てられているCPUの状態(プログラムカウンタ及びレジスタの状態)及びメモリの状態を含む。
図1の例では、ディスク装置100には、サーバ計算機10-1上で動作する仮想マシン11-1に対応するスナップショット領域111が確保されている。このスナップショット領域111は、仮想マシン11-1の動作状態及び仮想ディスク110の内容をスナップショット112として定期的に格納するのに用いられる。スナップショット領域111には、当該領域111に格納されたスナップショット112の列を管理するスナップショット管理情報113も格納される。
次に、図1の仮想計算機システムにおける動作を説明する。
今、クライアントマシン20が、サーバ計算機10-1上で動作する仮想マシン11-1の提供するサービスを利用するために、ネットワーク2、ルータ3及びネットワーク1を介して当該仮想マシン11-1との間で通信を行っているものとする。この場合、ルータ3に含まれている通信記録ユニット30内の通信記録部31は、クライアントマシン20と仮想マシン11-1との間の通信シーケンスで発生した全ての通信の履歴を通信記録テーブル32に時系列順に記録する。
今、クライアントマシン20が、サーバ計算機10-1上で動作する仮想マシン11-1の提供するサービスを利用するために、ネットワーク2、ルータ3及びネットワーク1を介して当該仮想マシン11-1との間で通信を行っているものとする。この場合、ルータ3に含まれている通信記録ユニット30内の通信記録部31は、クライアントマシン20と仮想マシン11-1との間の通信シーケンスで発生した全ての通信の履歴を通信記録テーブル32に時系列順に記録する。
図2は、通信記録テーブル32に記録された通信の履歴の例を示す。ここでは、クライアントマシン20と仮想マシン11-1との間の1回の通信毎に、通信記録部31によってシーケンシャルに割り当てられる通信番号、通信が行われた時刻(通信時刻)、通信の方向(通信データの流れる方向)及び通信データの組が、通信記録テーブル32に記録される。図の例では、通信の方向を、クライアントマシン20→仮想マシン11-1を「IN」、その逆を「OUT」で表記している
一方、仮想マシン11-1が動作するサーバ計算機10-1では、スナップショットマネージャ13-1が、当該仮想マシン11-1の動作状態と当該仮想マシン11-1が利用する仮想ディスク110の内容を、ディスク装置100に確保されている仮想マシン11-1用のスナップショット領域111にスナップショット112として定期的に(例えば時間T毎に)採取(格納)している。スナップショットマネージャ13-1は、スナップショット112を採取する都度、当該採取されたスナップショット112の世代管理のためにスナップショット管理情報113を更新する。
一方、仮想マシン11-1が動作するサーバ計算機10-1では、スナップショットマネージャ13-1が、当該仮想マシン11-1の動作状態と当該仮想マシン11-1が利用する仮想ディスク110の内容を、ディスク装置100に確保されている仮想マシン11-1用のスナップショット領域111にスナップショット112として定期的に(例えば時間T毎に)採取(格納)している。スナップショットマネージャ13-1は、スナップショット112を採取する都度、当該採取されたスナップショット112の世代管理のためにスナップショット管理情報113を更新する。
図3は、時刻t0,t1及びt2のそれぞれで、スナップショット領域111にスナップショット112(#a),112(#b)及び112(#c)が採取された様子を示す。時刻t0,t1及びt2のそれぞれにおけるスナップショット112(#a),112(#b)及び112(#c)は、スナップショット管理情報113によって世代管理される。
スナップショット112(#a)は、時刻t0における仮想マシン11-1の状態(動作状態)#1及び仮想ディスク110の内容#Aを含む。スナップショット112(#b)は、時刻t1における仮想マシン11-1の状態#2及び仮想ディスク110の内容#Bを含む。スナップショット112(#c)は、時刻t2における仮想マシン11-1の動作状態#3及び仮想ディスク110の内容#Cを含む。
このような状態で、時刻t2と次にスナップショット112が採取されるべき時刻t3との間の時刻t23において、サーバ計算機10-1に障害(例えばハードウェア障害)が発生したものとする。
ここで、サーバ計算機10-1に障害が発生した場合の本実施形態における動作について説明する前に、従来技術の動作について説明する。ここでは便宜的に、図1に示す仮想計算機システムにおいて、サーバ計算機10-1上で動作する仮想マシン11-1で実行されていたサービスを、他のサーバ計算機10-2上に生成された仮想マシンに従来技術によって引き継がせることで、障害回復を図るものとする。
まず、サーバ計算機10-2上で動作する仮想マシンモニタ12-2は、サーバ計算機10-1の障害を検出すると、ディスク装置100のスナップショット領域111に保持されたスナップショット112の列のうち、障害発生時刻t23に最も近い時刻で採取されたスナップショット、即ち時刻t2で採取されたスナップショットを用いて、サーバ計算機10-2上に仮想マシンを生成する。つまり仮想マシンモニタ12-2は、障害発生時刻t23に最も近いスナップショット採取時刻t2における仮想マシン11-1と全く同じ状態の仮想マシン11-2をサーバ計算機10-2上に生成する。このときクライアントマシン20は、サーバ計算機10-1上の仮想マシン11-1の接続から、サーバ計算機10-2上に生成された仮想マシン10-2との接続に切り替えられる。一般に、この接続切り替えはクライアントマシン20から認識できず、当該クライアントマシン20は同一の仮想マシンに接続されているとして動作する。
サーバ計算機10-2上に生成された仮想マシン11-2は、仮想マシン11-1によって実行されていたアプリケーションを起動して、時刻t2の状態から当該アプリケーションに従う動作を再開する。ところが、仮想マシン11-1とクライアントマシン20との通信は、時刻t2より先の時刻t23まで進んでいる。この場合、生成された仮想マシン11-2が時刻t2の状態から時刻t23の状態まで、クライアントマシン20との間で以前と同一の通信を再現できるとは限らない。そこで従来技術では、時刻t23で未完了のトランザクションがある場合、生成された仮想マシン11-2は、そのトランザクションから処理を再開する。このため、処理が著しく遅延する。
これに対して本実施形態では、仮想マシン11-1が動作するサーバ計算機10-1に障害(ハードウェア障害)が発生した場合、障害発生時刻に最も近い時刻で採取されたスナップショットだけでなく、通信記録ユニット30内の通信記録部31によって通信記録テーブル32に記録された通信の履歴(通信記録)も用いて、サービスの引き継ぎが行われる。
以下、サーバ計算機10-1に障害が発生した場合の障害回復のための動作について、図4乃至図図7及び並びに先に挙げた図3を参照して説明する。図4は時系列に沿った仮想マシン、仮想ディスク、スナップショットの状態及び仮想マシン再生成/再起動を説明するための図、図5はサーバ計算機障害発生時のサービス引き継ぎのための手順を示すフローチャート、図6は通信記録ユニット30内の状態再現部33による状態再現処理の手順を示すフローチャート、図7は通信記録ユニット30内の通信ブロッキング部34による通信ブロッキング処理の手順を示すフローチャートである。
まず、仮想マシン11-1が動作するサーバ計算機10-1では、スナップショットマネージャ11-1が、当該仮想マシン11の動作状態と当該仮想マシン11が利用する仮想ディスク110の内容を、前述のように仮想マシン11用のスナップショット領域111にスナップショット112として時間T毎に採取している。
これにより、図3に示されているように、時刻t0,t1及びt2のそれぞれで、スナップショット領域111にスナップショット112(#a),112(#b)及び112(#c)が採取されたものとする。
そして時刻t2と次にスナップショット112(#D)が採取されるべき時刻t3との間の時刻t23において、サーバ計算機10-1に障害(ハードウェア障害)が発生したものとする。図4には、時刻t23における仮想マシン11-1の状態及び仮想ディスク110の内容が、それぞれ#3’及び#c’であることが表されている。また、サーバ計算機10-1に障害が発生したことが、サーバ計算機10-2上で動作する仮想マシンモニタ12-2によって検出されたものとする。
サーバ計算機(10-1)の障害(ハードウェア障害)検出は、クラスタソフトウェアの持つハートビートによるサーバ死活チェックや、運用管理ソフトなどの機能をもって実現されることが、従来から知られている。そこで、仮想マシンモニタ12-2が、このような外部の管理手段から障害の通知を受ける構成としても、当該仮想マシンモニタ12-2自身に、当該外部の管理手段が有するのと同様のサーバ計算機障害検出機能を備える構成としても構わない。
さて、サーバ計算機10-2上で動作する仮想マシンモニタ12-2は、サーバ計算機10-1の障害を検出すると、ディスク装置100内の(サーバ計算機10-1上で動作する仮想マシン11-1に対応する)スナップショット領域111に保持されたスナップショットに基づき、サーバ計算機10-2上に仮想マシン11-2を生成する(ステップS1)。更に具体的に述べるならば、仮想マシンモニタ12-2は、スナップショット領域111に保持されたスナップショット112の列のうち、障害発生時刻t23に最も近い時刻t2で採取されたスナップショット112(#c)を用いて、サーバ計算機10-2上に当該時刻(スナップショット採取時刻)t2における仮想マシン11-1と全く同じ状態の仮想マシンを仮想マシン11-2として生成(再生成)する。これにより仮想マシン11-2は、時刻t2における仮想マシン11-1と同一の状態で、当該仮想マシン11-1が実行していたのと同一のアプリケーションプログラムを実行できる。
次に仮想マシンモニタ12-2は、通信記録ユニット30に対して、サーバ計算機10-1の障害発生時における仮想マシン11-1の状態を仮想マシン11-2に再現(復元)させるための状態再現(復元)処理を要求する(ステップS2)。すると通信記録ユニット30内の状態再現部33は、要求された状態再現処理を、通信記録テーブル32に記録された通信の履歴に基づき実行する(ステップS3)。
以下、状態再現部33によって実行される状態再現処理の手順について説明する。まず状態再現部33内の再投入部331は、通信記録テーブル32に記録された通信の履歴のうち、スナップショット採取時刻t2から障害発生時刻t23までの期間にクライアントマシン20から仮想マシン11-1に送信された通信データを、当該クライアントマシン20に代わって、時系列順にネットワーク1を介して仮想マシン11-2に順次送信する動作を開始する。この通信記録テーブル32に基づく通信記録ユニット30の送信動作を、ネットワーク通信再投入(またはネットワークI/O再現)動作と呼ぶ。
再投入部331はネットワーク通信再投入動作の最初に、スナップショット採取時刻t2から障害発生時刻t23までの期間にクライアントマシン20から仮想マシン11-1に送信された通信データのうち、1番目に送信された通信データを仮想マシン11-2に送信する(ステップS11)。
仮想マシン11-2は(通信記録ユニット30内の)再投入部331から送信される通信データを受け取ると、当該通信データに対応する処理を行い、当該通信データに対する応答(レスポンス)を通信記録ユニット30に返す。通信記録ユニット30内の状態再現部33に含まれている再現判定部332は、この仮想マシン11-2からの応答を受け取ると(ステップS12)、その応答(の通信データ)を、通信記録テーブル32に保持されている、先に送信(投入)した通信データ(送信データ)に対する仮想マシン11-1からの応答(の通信データ)と比較する(ステップS13)。
再現判定部332は、上記両応答の比較結果から、当該両応答が一致しているかを判定する(ステップS14)。もし、上記両応答が一致しているならば、再現判定部332は、スナップショット採取時刻t2から今回の応答までの期間における仮想マシン11-1の動作状態が仮想マシン11-2で正しく再現されたと判断する。この場合、再投入部331は通信記録テーブル32を参照して、スナップショット採取時刻t2から障害発生時刻t23までの期間に仮想マシン11-1に送信された全ての通信データについてネットワーク通信再投入動作が完了したかを判定する(ステップS15)。
もし、ネットワーク通信再投入動作(再投入)が未完了であるならば(ステップS15)、再投入部331はステップS11に戻り、通信記録テーブル32に保持されている通信データのうち、前回投入された通信データの次に仮想マシン11-1に送信された通信データを仮想マシン11-2に送信する。そして再現判定部332は、この通信データの送信に対する仮想マシン11-2からの応答に関しても、通信記録テーブル32に保持されている、当該通信データ(送信データ)に対する仮想マシン11-1からの応答と比較することで、当該両応答が一致しているかを判定する(ステップS12〜S14)。
状態再現部33は、以上の動作を、ステップS14で一致が判定されている限り、つまり仮想マシン11-1の動作状態が仮想マシン11-2に再現されていると判定されている限り繰り返す。やがて、再投入完了が判定されたものとする(ステップS15)。このことは、スナップショット採取時刻t2から障害発生時刻t23までの仮想マシン11-1の状態が時系列順に仮想マシン11-2で再現されたことを表す。
明らかなように、再投入完了判定時点の仮想マシン11-2の状態は、サーバ計算機10-1の障害発生時における仮想マシン11-1の状態#3’に一致している。つまり、再投入完了判定時点の仮想マシン11-2は、サーバ計算機10-1の障害発生時における仮想マシン11-1の状態#3’に復元されている。
そこで再現判定部332は、再投入部331によって再投入完了が判定されると(ステップS15)、仮想マシン11-2の再生成に成功したものとして、その旨を、仮想マシン11-2を管理する、サーバ計算機10-2上の仮想マシンモニタ12-2に通知する(ステップS16)。これにより状態再現部33における状態再現処理は終了する。このとき、仮想マシン11-2は、サーバ計算機10-1の障害発生時に仮想マシン11-1と接続されていたクライアントマシン20の内部状態と整合性が取れた状態となっている。このため仮想マシン11-2は、サーバ計算機10-1の障害発生時t23における仮想マシン11-1と同一の状態#3’でクライアントマシン20に対するサービスを継続することができる。
ここで、通信記録テーブル32に基づく上述の状態再現処理(ステップS3)の期間、クライアントマシン20から仮想マシン11-2に対してアクセスがあったものとする。もし、このアクセスに対して仮想マシン11-2が何らかの処理を行うならば、当該仮想マシン11-2にサーバ計算機10-1の障害発生時の状態を再現させることは困難となる。そこで通信記録ユニット30内の通信ブロッキング部34は、状態再現部33による状態再現処理(ステップS3)の期間、クライアントマシン20からの仮想マシン11-2へのアクセスをブロックするための通信ブロッキング処理を実行する。
以下、通信ブロッキング部34によって実行される通信ブロッキング処理の手順について説明する。まず通信ブロッキング部34は、状態再現処理が開始されると(ステップS21)、クライアントマシン20から仮想マシン11-2へのアクセス(通信)を監視して、そのアクセス(通信)を全てブロックする(ステップS22)。
やがて状態再現処理が終了すると(ステップS21)、通信ブロッキング部34は、通信ブロッキング状態を解除して、仮想マシン11-2へのアクセス(通信)を通過させる(ステップS23)。これにより仮想マシン11-1を利用するクライアントマシン20は、当該仮想マシン11-1が別のサーバ計算機(ここではサーバ計算機10-2)で仮想マシン11-2として再現されたことを認識することなく、サービスを継続して利用できる。
次に、仮想マシン11-2に対して投入した通信データに対する当該仮想マシン11-2からの応答が、通信記録テーブル32に保持されている、当該投入した通信データに対する仮想マシン11-1からの応答と異なっている場合(ステップS14)について説明する。
状態再現部33(内の再現判定部332)は、上述の両応答が一致していない場合(ステップS14)、サーバ計算機10-1の障害発生時の仮想マシン11-1の状態が仮想マシン11-2に再現されておらず、したがって当該仮想マシン11-2によるサービスの継続はできないと判断する。そこで状態再現部33は、当該仮想マシン11-2の再生成の失敗を、仮想マシン11-2を管理する、サーバ計算機10-2上の仮想マシンモニタ12-2に通知して(ステップS17)、状態再現処理を終了する。
仮想マシンモニタ12-2は、状態再現部33からの通知によって仮想マシン11-2の再生成の失敗を判定すると(ステップS4)、当該仮想マシン11-2を破棄する(ステップS5)。そして仮想マシンモニタ12-2は、スナップショット112に基づき仮想マシンを再生成するのではなく、障害が発生したサーバ計算機10-1上で動作していた仮想マシン11-1を、サーバ計算機10-2上で再起動する。(ステップS6)。このステップS6における再起動処理は、仮想マシンモニタ12-2が当該仮想マシンモニタ12-2内の再起動部120-2に指示することにより、当該再起動部120-2によって行われる。再起動部120-2は、仮想マシン11が使用していた仮想ディスク110の内容に基づき、当該仮想マシン11-1で動作していたOS(ゲストOS)をブートすることにより、当該仮想マシン11-1を仮想マシン11-2上で再起動する。
仮想ディスク110の内容は、時刻t2におけるスナップショット112(#c)の採取後も障害発生時刻t23まで、仮想マシン11-1の動作により更新されている。明らかなように、仮想マシン11-1の再起動に用いられる仮想ディスク110の内容は、障害発生時刻t23における内容#c’(図4参照)である。つまり図4の例では、仮想マシンモニタ12-2から1つのファイルとして認識される仮想ディスク110の内容#c’に基づき、仮想マシン11-1がサーバ計算機10-2上で再起動される。
この再起動された仮想マシン11-1の状態は、障害発生時における当該仮想マシン11-1の状態#3’とは必ずしも一致せず、図4に示すように例えば状態#3”である。
さて、仮想マシン11-1が使用していた仮想ディスク110に基づき当該仮想マシン11-1が再起動されると、当該仮想マシン11-1で実行されていた、サービスを提供するためのアプリケーション類も、ブートされたOSによって再起動される。このとき仮想ディスク110には、障害発生時刻t23における内容#c’が残されている。このため、再起動された仮想マシン11-1でアプリケーションが再起動されると、当該アプリケーションの持つ障害回復機能が働く(ステップS7)。この障害回復機能としては、例えばデータベースのロールバック機能が知られている。
このように、再起動された仮想マシン11-1でアプリケーションの障害回復機能(による障害回復処理)が実行されると、サーバ計算機10-1の障害発生時刻t23まで仮想マシン11-1からサービスの提供を受けていたクライアントマシン20も、障害発生を検知して障害回復処理(リカバリ処理)を行う。これにより、再起動された仮想マシン11-1で再起動されたアプリケーション(サービスを提供するためのアプリケーション)とクライアントマシン20との間の整合が取られ、再起動に成功する。この結果、クライアントマシン20に対するサービスを、再起動された仮想マシン11-1によって継続することができる。但し、スナップショット112に基づいて仮想マシンを再生成して障害発生時刻t23における仮想マシン11-1の状態#3’を再現するのに比べ、OSブート処理及びアプリケーションの回復処理のために、図4に示すように、サービスの再開までに要する時間が長くなる可能性が高い。
上述の本実施形態の動作を以下に整理する。本実施形態においてはまず、スナップショット112(#c)及び通信記録テーブル32に基づき障害発生時刻t23における仮想マシン11-1の状態#3’の再現がサーバ計算機10-2上で試みられる(ステップS1,S2)。もし、仮想マシン11-1の状態#3’の再現に失敗した場合(ステップS4)、仮想ディスク110の内容#c’に基づき当該仮想マシン11-1がサーバ計算機10-2上で再起動される(ステップS5,S6)。この仮想マシン11-1の再起動に成功すると当該仮想マシン11-1は状態3”となり、この状態3”からサービスが再開される。
上述の説明では、簡略化のために、1つのクライアントマシン20が仮想マシン11-1(によって提供されるサービス)を利用するものとしている。しかし、ネットワーク2にクライアントマシン20を含む複数のクライアントマシンが接続されていて、当該複数のクライアントマシンが当該仮想マシン11-1を利用する構成であっても構わない。
このような構成では、通信記録ユニット30内の通信記録部31は、仮想マシン11-1に対応付けられた通信記録テーブル32に、当該仮想マシン11-1と当該仮想マシン11-1を利用する全てのクライアントマシンとの間の通信の履歴を記録すれば良い。通信記録ユニット30内の状態再現部33は、上記実施形態と同様に、通信記録テーブル32に記録された通信の履歴に基づきネットワーク通信再投入動作を行う。これにより状態再現部33は、複数のクライアントマシンに対してサービスを提供していた期間のうちのスナップショット時刻t2から障害発生時刻t23までの仮想マシン11-1の状態を、再生成された仮想マシン11-2に時系列順に再現することが可能となる。つまり、複数のクライアントマシンが仮想マシンを利用する構成においても、上記実施形態と同様の手順で当該複数のクライアントマシンに対するサービスを継続することができる。
ここで、通信記録テーブル32には、通信時刻、通信の方向及び通信データに加えて、当該通信データを送受信するクライアントマシンの識別情報を記録すると良い。このようにすると、通信ブロッキング部34は、状態再現部33による状態再現処理(ステップS3)の期間、通信記録テーブル32に記録されている識別情報の示す複数のクライアントマシンから再生成された仮想マシン11-2へのアクセスを全てブロックすることができる。
[第1の変形例]
次に上記実施形態の第1の変形例について説明する。
図8は、上記実施形態の第1の変形例に係る仮想計算機システムの構成を示すブロック図である。図8において、図1と同様の要素には同一参照番号を付してある。
次に上記実施形態の第1の変形例について説明する。
図8は、上記実施形態の第1の変形例に係る仮想計算機システムの構成を示すブロック図である。図8において、図1と同様の要素には同一参照番号を付してある。
図8のシステムが図1のそれと相違するのは、サーバ計算機10-1及び10-2とクライアントマシン20(を含む複数のクライアントマシン)とが同一のネットワーク、例えばネットワーク1に接続されている点と、通信記録ユニット30が(ルータ3ではなくて)、プロキシサーバ(プロキシサーバ計算機)300に設けられている点とにある。
図8のシステムにおいて、クライアントマシン20(を含む複数のクライアントマシン)とサーバ計算機10-1及び10-2上でそれぞれ動作する仮想マシンとの間の通信は必ずプロキシサーバ300を介して行われる。つまり、クライアントマシン20(を含む複数のクライアントマシン)からサーバ計算機10-i(i=1,2)上の仮想マシンへのアクセスは、当該クライアントマシン20(を含む複数のクライアントマシン)がプロキシサーバ300に接続することにより、当該プロキシサーバ300によって代理で行われる。したがって、通信記録ユニット30がプロキシサーバ300に設けられる第1の変形例では、当該通信記録ユニット30内の通信ブロッキング部34は、通信記録テーブル32に基づく上述の状態再現処理(ステップS3)の期間、プロキシサーバ300に接続されるクライアントマシン20(を含む複数のクライアントマシン)から再生成された仮想マシンへのアクセスを全てブロックすることができる。
[変形例2]
次に、上記実施形態の第2の変形例について説明する。この第2の変形例の特徴は、サーバ計算機の障害発生に伴って実行されるサービス引き継ぎ処理(障害回復処理)において、仮想ディスクからの仮想マシン再起動を、再生成された仮想マシン上での状態再現処理の失敗を見越して、例えば当該状態再現処理と並行して投機的に行う点にある。
次に、上記実施形態の第2の変形例について説明する。この第2の変形例の特徴は、サーバ計算機の障害発生に伴って実行されるサービス引き継ぎ処理(障害回復処理)において、仮想ディスクからの仮想マシン再起動を、再生成された仮想マシン上での状態再現処理の失敗を見越して、例えば当該状態再現処理と並行して投機的に行う点にある。
以下、第2の変形例の動作について、当該動作が図1の仮想計算機システムで行われるものとして、図9のフローチャートを参照して説明する。図9はサーバ計算機障害発生時に仮想マシンモニタによって実行されるサービス引き継ぎ処理の手順を示すフローチャートである。
今、仮想マシン11-1が動作するサーバ計算機10-1で障害が発生したことが、サーバ計算機10-2上で動作する仮想マシンモニタ12-2によって検出されたものとする。すると仮想マシンモニタ12-2は、上記実施形態のステップS1と同様に、障害発生時刻に最も近い時刻で採取されたスナップショット112を用いて、サーバ計算機10-2上に当該仮想マシンモニタ12-1が採取された時刻における仮想マシン11-1と全く同じ状態の仮想マシンを仮想マシン11-2として再生成する(ステップS31)。
次に仮想マシンモニタ12-2は、上記実施形態のステップS2と同様に、通信記録ユニット30に対して状態再現処理を要求する(ステップS32)。同時に仮想マシンモニタ12-2は、再起動部120-2に対して再起動処理を指示する(ステップS33)。
すると通信記録ユニット30内の状態再現部33は、上記実施形態と同様の手順(図6のフローチャート参照)でサーバ計算機10-1の障害発生時における仮想マシン11-1の状態を仮想マシン11-2に再現させるための状態再現処理を実行する。一方、再起動部120-2は、上記実施形態と同様に、障害が発生したサーバ計算機10-1上で動作していた仮想マシン11-1によって使用されていた仮想ディスク110の内容に基づいて、当該仮想マシン11-1をサーバ計算機10-2上で再起動するための再起動処理を実行する。
その後、仮想マシンモニタ12-2は再起動部120-2によってサーバ計算機10-2上に再起動される仮想マシン11-1の状態を監視することにより、当該仮想マシン11-1によるサービスの再開が可能となったかを判定する(ステップS34)。ここでは、再起動された仮想マシン11-1でアプリケーションの障害回復処理が実行されると共に、クライアントマシン20で障害回復処理が実行された結果、当該仮想マシン11-1で再起動されたアプリケーションとクライアントマシン20との間の整合が取られた時点で、サービスの再開が可能となる。つまり、仮想マシン11-1の再起動に成功する。
もし、再起動された仮想マシン11-1によるサービスの再開が可能な状態には未だなっていないならば、仮想マシンモニタ12-2は、通信記録ユニット30内の状態再現部33(に含まれている再現判定部332)から状態再現成功または失敗の通知(状態再現成功/失敗通知)が送られているかを判定する(ステップS35)。もし、状態再現成功/失敗通知が未だ送られていないならば、仮想マシンモニタ12-2は、再びステップS34の判定を行う。
やがて、再起動された仮想マシン11-1によるサービスの再開が可能な状態となる前に(ステップS34)、状態再現部33から状態再現成功/失敗通知が送られたものとする(ステップS35)。この場合、仮想マシンモニタ12-2は、この通知が成功通知であるかを判定する(ステップS36)。もし、成功通知ならば、仮想マシンモニタ12-2は、再生成された仮想マシン11-2でサービスを継続させる(ステップS37)。このとき仮想マシンモニタ12-2は、再起動された仮想マシン11-1を停止または破棄する。
これに対し、失敗通知ならば(ステップS36)、仮想マシンモニタ12-2は再生成された仮想マシン11-2を破棄する(ステップS38)。そして仮想マシンモニタ12-2は、再起動された仮想マシン11-1によるサービスの再開が可能な状態になるのを待つ(ステップS39)。やがて、再起動された仮想マシン11-1によるサービスの再開が可能な状態になると(ステップS39)、仮想マシンモニタ12-2は当該仮想マシン11-1でサービスを継続させる(ステップS40)。
第2の変形例において、仮想マシン11-1をサーバ計算機10-2上で再起動するための再起動処理は、上記実施形態と異なって、サーバ計算機10-1の障害発生時における仮想マシン11-1の状態を仮想マシン11-2に再現させるための状態再現処理と並行して行われる。したがって第2の変形例においては、状態再現処理に失敗しても、再起動された仮想マシン11-1で速やかにサービスを継続することができるため、上記実施形態と比較してサービスの再開までの時間が短縮できる。
一方、状態再現部33から状態再現成功/失敗通知が送られる前に(ステップS35)、再起動された仮想マシン11-1によるサービスの再開が可能な状態になったならば(ステップS34)、仮想マシンモニタ12-2は再生成された仮想マシン11-2を破棄する(ステップS41)。そして仮想マシンモニタ12-2は、再起動された仮想マシン11-1でサービスを継続させる(ステップS40)。このように第2の変形例においては、万が一、状態再現部33から状態再現成功/失敗が通知されるよりも先に、再起動された仮想マシン11-1によるサービスの再開が可能な状態になったならば、当該仮想マシン11-1でサービスが継続される。これにより上記実施形態と比較してサービスの再開までの時間が短縮できる。
なお、本発明は、上記実施形態またはその変形例そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態またはその変形例に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。例えば、実施形態またはその変形例に示される全構成要素から幾つかの構成要素を削除してもよい。
1,2…ネットワーク、3…ルータ、10-1,10-2…サーバ計算機、11-1,11-2…仮想マシン、12-1,12-2…仮想マシンモニタ(VMM)、13-1,13-2…スナップショットマネージャ(スナップショット管理手段)、30…通信記録ユニット、31…通信記録部、32…通信記録テーブル、33…状態再現部、34…通信ブロッキング部、100…ディスク装置、110…仮想ディスク、111…スナップショット領域、112…スナップショット、331…再投入部、332…再現判定部、300…プロキシサーバ。
Claims (6)
- 仮想マシンがそれぞれ動作可能な、第1及び第2の物理計算機を含む複数の物理計算機を備えた仮想計算機システムにおいて、
前記複数の物理計算機によって共有されるディスク装置であって、前記複数の物理計算機のうちの任意の物理計算機で動作する仮想マシンが仮想ディスクとして使用可能なデータ領域を提供するディスク装置と、
前記任意の物理計算機で動作する仮想マシンによって提供されるサービスを利用するクライアントマシンと、
前記複数の物理計算機でそれぞれ動作する仮想マシンに対応付けられた通信記録テーブルに、対応する仮想マシンと当該仮想マシンによって提供されるサービスを利用するクライアントマシンとの間の通信の履歴を時系列順に記録する通信記録ユニットと
を具備し、
前記第1の物理計算機は、当該第1の物理計算機で仮想マシンが第1の仮想マシンとして動作する場合、当該第1の仮想マシンの動作状態及び当該第1の仮想マシンの使用する前記仮想ディスクの状態を当該第1の仮想マシンに対応付けて定期的にスナップショットとして前記ディスク装置に採取するスナップショット管理手段を含み、
前記第2の物理計算機は、
当該第2の物理計算機で動作可能な仮想マシンを管理する仮想マシンモニタであって、当該第2の物理計算機とは別の前記第1の物理計算機上で前記第1の仮想マシンが動作している状態で当該第1の物理計算機に障害が発生した場合、当該第1の物理計算機の障害発生時刻に最も近い時点で当該第1の仮想マシンに対応付けて前記ディスク装置に採取された前記スナップショットに基づき、当該第1の仮想マシンを第2の仮想マシンとして当該第2の物理計算機上に再生成する仮想マシンモニタと、
当該第2の物理計算機上で、前記第1の仮想マシンを当該第1の仮想マシンによって使用されていた仮想ディスクに基づいて再起動する再起動手段とを含み、
前記通信記録ユニットは、前記スナップショットの採取時期から前記第1の物理計算機の障害発生時刻までの期間における前記第1の仮想マシンの状態を前記第2の仮想マシンに再現させるために、前記第1の仮想マシンに対応付けられた通信記録テーブルに記録された通信履歴のうち、前記スナップショットの採取時期から前記第1の物理計算機の障害発生時刻までの期間に前記第1の仮想マシンに送信された通信データを、前記第2の仮想マシンに時系列順に送信し、送信された通信データに対する前記第2の仮想マシンからの応答を、前記第1の仮想マシンに対応付けられた通信記録テーブルに記録された、当該通信データに対する前記第1の仮想マシンからの応答と比較することにより、前記第1の仮想マシンの状態の再現に成功したかを判定する状態再現手段を含み、
前記第2の物理計算機の前記仮想マシンモニタは、前記第1の仮想マシンの状態を再現できたと判定された場合、前記第2の仮想マシンによりサービスを継続させ、前記第1の仮想マシンの状態を再現できなかったと判定された場合、前記第2の物理計算機の前記再起動手段によって再起動される前記第1の仮想マシンによりサービスを継続させる
ことを特徴とする仮想計算機システム。 - 前記第2の物理計算機の前記仮想マシンモニタは、前記第1の仮想マシンを前記第2の仮想マシンとして再生成する際に、前記第2の物理計算機の前記再起動手段によって前記第1の仮想マシンを再起動させることにより、当該再起動手段の動作と前記第2の仮想マシンに前記第1の仮想マシンの状態を再現させるための前記状態再現手段の動作とを並行して実行させることを特徴とする請求項1記載の仮想計算機システム。
- 前記通信記録ユニットは、前記状態再現手段の動作期間中、前記第2の仮想マシンへの通信を当該状態再現手段による通信を除いてブロックする通信ブロッキング手段を更に含むことを特徴とする請求項1に記載の仮想計算機システム。
- 前記複数の物理計算機を接続するための第1のネットワークと、
前記クライアントマシンを接続するための第2のネットワークと、
前記第1及び第2のネットワークを接続するためのルータであって、前記通信記録ユニットを内蔵するルータと
を更に具備することを特徴とする請求項3記載の仮想計算機システム。 - 前記複数の物理計算機及び前記クライアントマシンを接続するためのネットワークと、
前記通信記録ユニットを内蔵し、且つ前記ネットワークに接続されるプロキシサーバであって、前記クライアントマシンから前記複数の物理計算機の各々で動作する仮想マシンへのアクセスを代理するプロキシサーバと
を更に具備することを特徴とする請求項3記載の仮想計算機システム。 - クライアントマシンにサービスを提供する第1の仮想マシンが配置される第1の物理計算機、及び前記第1の物理計算機に障害が発生した場合に、前記第1の仮想マシンを第2の仮想マシンとして再生成することが可能な第2の物理計算機を含む複数の物理計算機であって、当該物理計算機で仮想マシンが動作する場合、当該仮想マシンの動作状態及び当該仮想マシンの使用する仮想ディスクの状態を当該仮想マシンに対応付けて定期的にスナップショットとしてディスク装置に採取するスナップショット管理手段を含む複数の物理計算機と、前記複数の物理計算機でそれぞれ動作する仮想マシンに対応付けられた通信記録テーブルに、対応する仮想マシンと当該仮想マシンによって提供されるサービスを利用するクライアントマシンとの間の通信の履歴を時系列順に記録する通信記録ユニットとから構成される仮想計算機システムにおいて、前記第1の物理計算機の障害発生時に、前記第1の仮想マシンが提供していたサービスの引き継ぎを制御するためのサービス引き継ぎ制御方法であって、
前記第1の物理計算機上で前記第1の仮想マシンが動作している状態で当該第1の物理計算機に障害が発生した場合、前記第2の物理計算機が、前記第1の物理計算機の障害発生時刻に最も近い時点で当該第1の仮想マシンに対応付けて前記ディスク装置に採取されたスナップショットに基づき、当該第1の仮想マシンを前記第2の仮想マシンとして前記第2の物理計算機上に再生成するステップと、
前記スナップショットの採取時期から前記第1の物理計算機の障害発生時刻までの期間における前記第1の仮想マシンの状態を前記第2の仮想マシンに再現させるための状態再現処理であって、前記第1の仮想マシンに対応付けられた通信記録テーブルに記録された通信履歴のうち、前記スナップショットの採取時期から前記第1の物理計算機の障害発生時刻までの期間に前記第1の仮想マシンに送信された通信データを、前記第2の仮想マシンに時系列順に送信するステップ、当該送信された通信データに対する前記第2の仮想マシンからの応答を、前記第1の仮想マシンに対応付けられた通信記録テーブルに記録された、当該通信データに対する前記第1の仮想マシンからの応答と比較するステップ、及び前記比較の結果に基づいて前記第1の仮想マシンの状態の再現に成功したかを判定するステップとを含む状態再現処理を実行するステップと、
前記第2の物理計算機が、当該第2の物理計算機上で、前記第1の仮想マシンを当該第1の仮想マシンによって使用されていた仮想ディスクに基づいて再起動するステップと、
前記状態再現処理に成功した場合、前記第2の仮想マシンによりサービスを継続させるステップと、
前記状態再現処理に失敗した場合、前記再起動される前記第1の仮想マシンによりサービスを継続させるステップと
を具備することを特徴とするサービス引き継ぎ制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007250062A JP2009080692A (ja) | 2007-09-26 | 2007-09-26 | 仮想計算機システム及び同システムにおけるサービス引き継ぎ制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007250062A JP2009080692A (ja) | 2007-09-26 | 2007-09-26 | 仮想計算機システム及び同システムにおけるサービス引き継ぎ制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009080692A true JP2009080692A (ja) | 2009-04-16 |
Family
ID=40655388
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007250062A Pending JP2009080692A (ja) | 2007-09-26 | 2007-09-26 | 仮想計算機システム及び同システムにおけるサービス引き継ぎ制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009080692A (ja) |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010271882A (ja) * | 2009-05-21 | 2010-12-02 | Hitachi Ltd | バックアップ管理方法 |
JP2011048678A (ja) * | 2009-08-27 | 2011-03-10 | Fujitsu Ltd | 業務操作支援方法及びコンピュータ装置 |
JP2011180871A (ja) * | 2010-03-02 | 2011-09-15 | Nec Corp | フォールトトレラントシステム及び仮想マシン構築方法 |
JP2011253350A (ja) * | 2010-06-02 | 2011-12-15 | Mitsubishi Electric Corp | 仮想計算機制御システム |
JP2012221321A (ja) * | 2011-04-11 | 2012-11-12 | Nec Corp | フォールトトレラント計算機システム、フォールトトレラント計算機システムの制御方法、及びフォールトトレラント計算機システムの制御プログラム |
JP2013073289A (ja) * | 2011-09-27 | 2013-04-22 | Nec Corp | 多重化システム、データ通信カード、状態異常検出方法、及びプログラム |
JP2013535745A (ja) * | 2010-07-30 | 2013-09-12 | シマンテック コーポレーション | 高可用性仮想機械環境におけるアプリケーションの高可用性の提供 |
JP2013190846A (ja) * | 2012-03-12 | 2013-09-26 | Nec Corp | 中継部システム、情報処理システム、および、情報処理方法 |
JP5335150B2 (ja) * | 2010-11-22 | 2013-11-06 | 三菱電機株式会社 | 計算機装置及びプログラム |
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 |
JP2015503782A (ja) * | 2011-12-22 | 2015-02-02 | シマンテック コーポレーションSymantec Corporation | 仮想化されたプラットフォームへ安全に移行するためのシステム及び方法 |
US9104448B2 (en) | 2012-12-03 | 2015-08-11 | International Business Machines Corporation | Restoring a previous version of a virtual machine image |
JP2016110173A (ja) * | 2014-12-02 | 2016-06-20 | 日本電気株式会社 | フォールトトレラントシステム、稼働系装置、待機系装置、フェイルオーバー方法、および、フェイルオーバープログラム |
JP2016126364A (ja) * | 2014-12-26 | 2016-07-11 | 株式会社日立製作所 | システムのバックアップ装置及びバックアップ方法 |
JP6073004B1 (ja) * | 2016-05-10 | 2017-02-01 | 三菱電機株式会社 | 情報処理装置 |
US9594522B2 (en) | 2010-08-11 | 2017-03-14 | Fujitsu Limited | Backup method and information processing apparatus |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000194624A (ja) * | 1998-12-25 | 2000-07-14 | Toshiba Corp | 計算機システムおよび通信回復方法 |
JP2003330740A (ja) * | 2002-05-15 | 2003-11-21 | Hitachi Ltd | 多重化計算機システム、論理計算機の割当方法および論理計算機の割当プログラム |
JP2007148839A (ja) * | 2005-11-29 | 2007-06-14 | Hitachi Ltd | 障害回復方法 |
JP2007200114A (ja) * | 2006-01-27 | 2007-08-09 | Hitachi Ltd | データベース回復方法及び計算機システム |
-
2007
- 2007-09-26 JP JP2007250062A patent/JP2009080692A/ja active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000194624A (ja) * | 1998-12-25 | 2000-07-14 | Toshiba Corp | 計算機システムおよび通信回復方法 |
JP2003330740A (ja) * | 2002-05-15 | 2003-11-21 | Hitachi Ltd | 多重化計算機システム、論理計算機の割当方法および論理計算機の割当プログラム |
JP2007148839A (ja) * | 2005-11-29 | 2007-06-14 | Hitachi Ltd | 障害回復方法 |
JP2007200114A (ja) * | 2006-01-27 | 2007-08-09 | Hitachi Ltd | データベース回復方法及び計算機システム |
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010271882A (ja) * | 2009-05-21 | 2010-12-02 | Hitachi Ltd | バックアップ管理方法 |
JP2011048678A (ja) * | 2009-08-27 | 2011-03-10 | Fujitsu Ltd | 業務操作支援方法及びコンピュータ装置 |
JP2011180871A (ja) * | 2010-03-02 | 2011-09-15 | Nec Corp | フォールトトレラントシステム及び仮想マシン構築方法 |
JP2011253350A (ja) * | 2010-06-02 | 2011-12-15 | Mitsubishi Electric Corp | 仮想計算機制御システム |
JP2013535745A (ja) * | 2010-07-30 | 2013-09-12 | シマンテック コーポレーション | 高可用性仮想機械環境におけるアプリケーションの高可用性の提供 |
US9594522B2 (en) | 2010-08-11 | 2017-03-14 | Fujitsu Limited | Backup method and information processing apparatus |
US8656126B2 (en) | 2010-09-30 | 2014-02-18 | International Business Machines Corporation | Managing snapshots of virtual server |
JP5335150B2 (ja) * | 2010-11-22 | 2013-11-06 | 三菱電機株式会社 | 計算機装置及びプログラム |
JP2012221321A (ja) * | 2011-04-11 | 2012-11-12 | Nec Corp | フォールトトレラント計算機システム、フォールトトレラント計算機システムの制御方法、及びフォールトトレラント計算機システムの制御プログラム |
US8990617B2 (en) | 2011-04-11 | 2015-03-24 | Nec Corporation | Fault-tolerant computer system, fault-tolerant computer system control method and recording medium storing control program for fault-tolerant computer system |
JP2013073289A (ja) * | 2011-09-27 | 2013-04-22 | Nec Corp | 多重化システム、データ通信カード、状態異常検出方法、及びプログラム |
US8990632B2 (en) | 2011-09-27 | 2015-03-24 | Nec Corporation | System for monitoring state information in a multiplex system |
JP2015503782A (ja) * | 2011-12-22 | 2015-02-02 | シマンテック コーポレーションSymantec Corporation | 仮想化されたプラットフォームへ安全に移行するためのシステム及び方法 |
JP2013190846A (ja) * | 2012-03-12 | 2013-09-26 | Nec Corp | 中継部システム、情報処理システム、および、情報処理方法 |
US9104447B2 (en) | 2012-12-03 | 2015-08-11 | International Business Machines Corporation | Restoring a previous version of a virtual machine image |
US9104448B2 (en) | 2012-12-03 | 2015-08-11 | International Business Machines Corporation | Restoring a previous version of a virtual machine image |
US9342409B2 (en) | 2013-06-06 | 2016-05-17 | Fujitsu Limited | Recording medium storing transaction resuming program, information processing apparatus and transaction resuming method |
EP2811402A1 (en) | 2013-06-06 | 2014-12-10 | Fujitsu Limited | Transaction resuming program, information processing apparatus and transaction resuming method |
JP2016110173A (ja) * | 2014-12-02 | 2016-06-20 | 日本電気株式会社 | フォールトトレラントシステム、稼働系装置、待機系装置、フェイルオーバー方法、および、フェイルオーバープログラム |
JP2016126364A (ja) * | 2014-12-26 | 2016-07-11 | 株式会社日立製作所 | システムのバックアップ装置及びバックアップ方法 |
JP6073004B1 (ja) * | 2016-05-10 | 2017-02-01 | 三菱電機株式会社 | 情報処理装置 |
WO2017195276A1 (ja) * | 2016-05-10 | 2017-11-16 | 三菱電機株式会社 | 情報処理装置および再起動制御方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2009080692A (ja) | 仮想計算機システム及び同システムにおけるサービス引き継ぎ制御方法 | |
KR101970839B1 (ko) | 서비스의 2차 위치에서의 작업의 재생 기법 | |
KR101801432B1 (ko) | 파일 시스템 내에 투명 페일오버의 제공 | |
US9753761B1 (en) | Distributed dynamic federation between multi-connected virtual platform clusters | |
US8949828B2 (en) | Single point, scalable data synchronization for management of a virtual input/output server cluster | |
US8996477B2 (en) | Multiple node/virtual input/output (I/O) server (VIOS) failure recovery in clustered partition mobility | |
US7627728B1 (en) | System and method for efficient generation of application snapshots | |
US8560747B1 (en) | Associating heartbeat data with access to shared resources of a computer system | |
US7496783B1 (en) | Merging cluster nodes during a restore | |
US20070220323A1 (en) | System and method for highly available data processing in cluster system | |
WO2021129733A1 (zh) | 云操作系统的管理方法、装置、服务器、管理系统及介质 | |
JP4510064B2 (ja) | 仮想計算機システム及び同システムにおける仮想マシン復元方法 | |
JP2011060055A (ja) | 仮想計算機システム、仮想マシンの復旧処理方法及びそのプログラム | |
JP2013529343A (ja) | 遠隔仮想計算機全体にわたって耐故障チェックポインティングを達成するための方法及びシステム | |
JP4903244B2 (ja) | 計算機システム及び障害復旧方法 | |
JP2002328813A (ja) | プログラム修正方法 | |
JP2015046159A (ja) | 仮想マシンデプロイ及び管理エンジン | |
US8527454B2 (en) | Data replication using a shared resource | |
US20220207053A1 (en) | System and method for highly available database service | |
US20240004766A1 (en) | Selecting a witness service when implementing a recovery plan | |
JP4560074B2 (ja) | 仮想計算機システム及び同システムにおける仮想計算機復元方法 | |
Nogueira et al. | Elastic state machine replication | |
JP2004361994A (ja) | データ管理装置、データ管理方法及びプログラム | |
US20210103598A1 (en) | Managing persistent handle information for a file | |
Rajagopalan | System support for elasticity and high availability |
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 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20100727 |