(57)【特許請求の範囲】
【請求項１】
仮想マシンがそれぞれ動作可能な、第１及び第２の物理計算機を含む複数の物理計算機を備えた仮想計算機システムにおいて、
前記複数の物理計算機によって共有されるディスク装置であって、前記複数の物理計算機のうちの任意の物理計算機で動作する仮想マシンが仮想ディスクとして使用可能なデータ領域を提供するディスク装置と、
前記仮想マシンと当該仮想マシン上で動作するアプリケーションとに対応付けられたログテーブルに、前記アプリケーションで処理される入力データ、当該入力データに応じて前記アプリケーションで実行される処理の結果としての出力データ及び当該入力データの入力時刻を示す情報の組を、前記アプリケーションを当該仮想マシンが実行することによって提供されるサービスを利用するクライアントマシンとの間の通信の履歴として時系列順に記録する通信記録装置と
を具備し、
前記第１の物理計算機は、当該第１の物理計算機で前記仮想マシンが動作する場合、当該仮想マシンの動作状態及び当該仮想マシンの使用する前記仮想ディスクの状態を定期的にスナップショットとして取得して当該仮想マシンに対応付けて前記ディスク装置に保存するスナップショット管理手段を含み、
前記第２の物理計算機は、
前記第１の物理計算機で前記仮想マシンが動作している状態で、当該第１の物理計算機に第１の時刻で障害が発生した場合、当該第１の時刻に最も近い第２の時刻で取得されて前記仮想マシンに対応付けて前記ディスク装置に保存された前記スナップショットに基づき、前記第２の時刻の状態の前記仮想マシンを前記第２の物理計算機上に復元する第１の復元手段と、
前記第２の時刻の状態に復元された仮想マシン上で動作するアプリケーションが、先行する処理に関係せず、どのような状態からでも同じ入力に対して同じ出力と同じ状態遷移が行われる特定タイプのアプリケーションである場合、前記第２の時刻の状態に復元された仮想マシンと前記アプリケーションとに対応付けられた前記ログテーブルに記録されている前記第２の時刻から前記第１の時刻までの入力データを、前記アプリケーションで処理されるべきデータとして、予め定められた並列度で前記第２の時刻の状態に復元された仮想マシンに投入することにより、当該仮想マシンを前記第１の時刻の直前の状態に復元する特定復元タイプの復元処理を行う第２の復元手段とを含む
ことを特徴とする仮想計算機システム。
【請求項２】
前記ディスク装置に格納される復元管理テーブルであって、仮想マシン及び当該仮想マシン上で動作するアプリケーションに割り当てられたポートのポート番号の組み合わせ毎に、当該アプリケーションが前記特定タイプのアプリケーションであるかによって決定される復元方法を表す復元タイプの情報を登録した復元管理テーブルを更に具備し、
前記第２の復元手段は、前記第２の時刻の状態に復元された仮想マシン及び当該仮想マシン上で動作するアプリケーションに割り当てられたポートのポート番号の組み合わせに対応付けて前記復元管理テーブルに登録されている復元タイプの情報が前記特定復元タイプを示している場合に、前記特定復元タイプの復元処理を行う
ことを特徴とする請求項１記載の仮想計算機システム。
【請求項３】
前記第２の復元手段は、前記第２の時刻の状態に復元された仮想マシン及び当該仮想マシン上で動作するアプリケーションに割り当てられたポートのポート番号の組み合わせに対応付けて前記復元管理テーブルに登録されている復元タイプの情報が前記特定復元タイプを示していない場合に、当該仮想マシンと前記アプリケーションとに対応付けられた前記ログテーブルに記録されている前記第２の時刻から前記第１の時刻までの入力データを、前記アプリケーションで処理されるべきデータとして、時系列順に、且つ少なくとも予め定められた一定入力時間間隔を超えた入力データの対については、当該一定入力時間間隔で当該仮想マシンに投入することにより、当該仮想マシンを前記第１の時刻の直前の状態に復元する復元処理を行う
ことを特徴とする請求項２記載の仮想計算機システム。
【請求項４】
前記投入された入力データに対する前記仮想マシンの前記アプリケーションに従う処理の結果としての当該仮想マシンからの応答を、前記投入された入力データと組をなして前記ログテーブルに記録されている出力データと比較することにより、当該仮想マシンの状態が正しく復元されているかを判定する復元判定手段を更に具備することを特徴とする請求項２記載の仮想計算機システム。
【請求項５】
仮想マシンがそれぞれ動作可能な、第１及び第２の物理計算機を含む複数の物理計算機であって、当該物理計算機で仮想マシンが動作する場合、当該仮想マシンの動作状態及び当該仮想マシンの使用する仮想ディスクの状態を定期的にスナップショットとして取得して当該仮想マシンに対応付けてディスク装置に保存するスナップショット管理手段を含む複数の物理計算機と、前記仮想マシンと当該仮想マシン上で動作するアプリケーションとに対応付けられたログテーブルに、前記アプリケーションで処理される入力データ、当該入力データに応じて前記アプリケーションで実行される処理の結果としての出力データ及び当該入力データの入力時刻を示す情報の組を、前記アプリケーションを当該仮想マシンが実行することによって提供されるサービスを利用するクライアントマシンとの間の通信の履歴として時系列順に記録する通信記録装置とから構成される仮想計算機システムに適用される仮想マシン復元方法であって、
前記第１の物理計算機で前記仮想マシンが動作している状態で、当該第１の物理計算機に第１の時刻で障害が発生した場合、前記第２の物理計算機が、当該第１の時刻に最も近い第２の時刻で取得されて前記仮想マシンに対応付けて前記ディスク装置に保存された前記スナップショットに基づき、前記第２の時刻の状態の前記仮想マシンを前記第２の物理計算機上に復元するステップと、
前記第２の時刻の状態に復元された仮想マシン上で動作するアプリケーションが、先行する処理に関係せず、どのような状態からでも同じ入力に対して同じ出力と同じ状態遷移が行われる特定タイプのアプリケーションである場合、前記第２の物理計算機が、前記第２の時刻の状態に復元された仮想マシンと前記アプリケーションとに対応付けられた前記ログテーブルに記録されている前記第２の時刻から前記第１の時刻までの入力データを、前記アプリケーションで処理されるべきデータとして、予め定められた並列度で前記第２の時刻の状態に復元された仮想マシンに投入することにより、当該仮想マシンを前記第１の時刻の直前の状態に復元する特定復元タイプの復元処理を行うステップと
を具備することを特徴とする仮想マシン復元方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、物理計算機上で動作する仮想マシンを備えた仮想計算機システムに係り、特に、仮想マシンが動作する物理計算機の障害時に当該仮想マシンを復元するのに好適な仮想計算機システム及び同システムにおける仮想マシン復元方法に関する。
【背景技術】
【０００２】
近年、例えば特許文献１に記載されているような仮想マシンを備えた仮想計算機システムが開発されている。仮想マシンは、物理計算機（のオペレーティングシステム）上で動作する仮想化された計算機として知られている。仮想マシンは、仮想化されたディスク、メモリ、ＣＰＵ（プロセッサ）及びネットワークインタフェース（ネットワークインタフェースカード：ＮＩＣ）を含む。この仮想マシン上にオペレーティングシステム（ＯＳ）、アプリケーション（アプリケーションプログラム）をインストールすることにより、当該ＯＳ、アプリケーションを実行させることができる。ここでアプリケーションは、仮想マシンのＯＳ上で動作する。仮想マシンは、外部（クライアントマシン）からアプリケーションへの何らかの入力（例えば命令の送出）が行われると、その入力内容に応じた処理を当該アプリケーションに従って実行し、実行結果（を含む応答）を外部（クライアントマシン）に出力する。
【特許文献１】特開２００６−２０２２７９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
上記したように、仮想マシンでは、アプリケーションに従う処理（アプリケーションの処理）によって、仮想マシンの状態が処理前の状態から処理後の状態に遷移する。つまり仮想マシンの状態遷移が当該仮想マシン上で動作するアプリケーションへの入力によって引き起こされる。そこで、例えば処理前の仮想マシンの状態が状態＃１であり、処理後の仮想マシンの状態が状態２であるとすると、状態＃１にある仮想マシンを状態＃２にするために、次のような方法が考えられる。この方法とは、仮想マシンを状態＃１に設定し、しかる後に当該仮想マシンが状態＃１から状態＃２に遷移した際と同じ入力を当該仮想マシン上で動作するアプリケーションに対して行うことである。この方法を応用することで、例えば物理計算機に障害が発生しても、当該物理計算機上で動作していた仮想マシンを障害発生直前の状態に復元することが可能となる。
【０００４】
さて、物理計算機上で動作する仮想マシンを当該物理計算機の障害が発生する直前の状態に復元するための方法として、例えば定期的に仮想マシンのスナップショット（ある時刻における仮想マシンの動作状態を保存した情報ファイル）を取得（採取）すると共に、当該仮想マシンの状態遷移のきっかけとなる入力データと出力データのログを取得することが考えられる。つまり、物理計算機の障害が発生した場合に、その障害の発生時点ｔxに最も近い時点ｔy（ｔy＜ｔx）で取得されたスナップショットにより時点ｔyにおける仮想マシンの状態を復元し、しかる後にログに従って時点ｔyから時間ｔxまでの当該仮想マシン上で動作するアプリケーションへの入力を再現するならば、当該仮想マシンを物理計算機の障害が発生した時点ｔxの直前の状態に戻すことが可能となる。
【０００５】
しかしながら、スナップショットを取得する時間間隔内に仮想マシン（上で動作するアプリケーション）への入力が多数が発生する場合、ログに従って時系列順に当該仮想マシンへの入力を再現すると、当該仮想マシンを復元するのに長時間を要することが予測される。
【０００６】
本発明は上記事情を考慮してなされたものでその目的は、アプリケーションによっては、先行する処理に関係せず、どのような状態からでも同じ入力に対して同じ出力と同じ状態遷移が行われることに着目して、このような特別のアプリケーションが動作する仮想マシンを障害発生直前の状態に短時間で復元することができる仮想計算機システム及び同システムにおける仮想マシン復元方法を提供することにある。
【課題を解決するための手段】
【０００７】
本発明の１つの観点によれば、仮想マシンがそれぞれ動作可能な、第１及び第２の物理計算機を含む複数の物理計算機を備えた仮想計算機システムが提供される。この仮想計算機システムは、前記複数の物理計算機によって共有されるディスク装置であって、前記複数の物理計算機のうちの任意の物理計算機で動作する仮想マシンが仮想ディスクとして使用可能なデータ領域を提供するディスク装置と、前記仮想マシンと当該仮想マシン上で動作するアプリケーションとに対応付けられたログテーブルに、前記アプリケーションで処理される入力データ、当該入力データに応じて前記アプリケーションで実行される処理の結果としての出力データ及び当該入力データの入力時刻を示す情報の組を、前記アプリケーションを当該仮想マシンが実行することによって提供されるサービスを利用するクライアントマシンとの間の通信の履歴として時系列順に記録する通信記録装置とを具備する。また、前記第１の物理計算機は、当該第１の物理計算機で前記仮想マシンが動作する場合、当該仮想マシンの動作状態及び当該仮想マシンの使用する前記仮想ディスクの状態を定期的にスナップショットとして取得して当該仮想マシンに対応付けて前記ディスク装置に保存するスナップショット管理手段を含み、前記第２の物理計算機は、前記第１の物理計算機で前記仮想マシンが動作している状態で、当該第１の物理計算機に第１の時刻で障害が発生した場合、当該第１の時刻に最も近い第２の時刻で取得されて前記仮想マシンに対応付けて前記ディスク装置に保存された前記スナップショットに基づき、前記第２の時刻の状態の前記仮想マシンを前記第２の物理計算機上に復元する第１の復元手段と、前記第２の時刻の状態に復元された仮想マシン上で動作するアプリケーションが、先行する処理に関係せず、どのような状態からでも同じ入力に対して同じ出力と同じ状態遷移が行われる特定タイプのアプリケーションである場合、前記第２の時刻の状態に仮想マシンと前記アプリケーションとに対応付けられた前記ログテーブルに記録されている前記第２の時刻から前記第１の時刻までの入力データを、前記アプリケーションで処理されるべきデータとして、予め定められた並列度で前記第２の時刻の状態に復元された仮想マシンに投入することにより、当該仮想マシンを前記第１の時刻の直前の状態に復元する特定復元タイプの復元処理を行う第２の復元手段とを含む。
【発明の効果】
【０００８】
本発明によれば、復元されるべき仮想マシン上で動作するアプリケーションが、先行する処理に関係せず、どのような状態からでも同じ入力に対して同じ出力と同じ状態遷移が行われる特定タイプのアプリケーション（特別のアプリケーション）である場合、上記仮想マシンと当該アプリケーションとに対応付けられたログテーブルに時系列順に記録された入力データが、当該アプリケーションで処理されるべきデータとして、その時系列順に無関係に、予め定められた並列度で、スナップショットを用いて復元された仮想マシンに投入されるため、当該アプリケーションに関し、上記仮想マシンを障害発生直前の状態に短時間で復元することができる。
【発明を実施するための最良の形態】
【０００９】
以下、本発明の実施の形態につき図面を参照して説明する。  
図１は本発明の一実施形態に係る仮想計算機システムの構成を示すブロック図である。図１の仮想計算機システムは、複数の物理計算機（物理サーバ計算機）、例えば２台の物理計算機１０-1及び１０-2から構成される。物理計算機１０-1及び１０-2は、通信路２０によって相互接続されている。この通信路２０は、例えばネットワークによって実現される。
【００１０】
物理計算機１０-1及び１０-2は、ＣＰＵ、Ｉ／Ｏ装置及びメモリのような周知のハードウェア資源（図示せず）を備えている。物理計算機１０-1及び１０-2は、当該計算機１０-1及び１０-2によって共有されるディスク装置１００と接続されている。つまりディスク装置１００は、物理計算機１０-1及び１０-2が共通に有するハードウェア資源である。
【００１１】
物理計算機１０-1及び１０-2が有するハードウェア資源は、仮想化されることにより、仮想マシン（Virtual Machine：ＶＭ）が動作する環境（仮想マシン実行環境）を提供する。図１では、物理計算機１０-1の仮想マシン実行環境で仮想マシン１１-1が動作している状態が示されている。この仮想マシン実行環境は、当該実行環境がディスク装置１００のうちの仮想マシン１１-1に割り当てられる（仮想マシン１１-1が利用可能な）仮想化されたディスク領域である仮想ディスク１１０を含む。仮想ディスク１１０の内容は、後述する仮想マシンマネージャ（ＶＭＭ）１３-1及び１３-2からは、１つのファイルとして認識される。
【００１２】
仮想マシン１１-1（のＯＳ）上では、例えばアプリケーション（ＡＰ）１２-1及び１２-2が動作する。アプリケーション１２-1及び１２-2には、それぞれポート番号Ｐ１及びＰ２が割り当てられているものとする。クライアントマシン３０は、このポート番号Ｐ１及びＰ２のポートを介して、アプリケーション１２-1及び１２-2にアクセスすることができる。
【００１３】
仮想マシン１１-1が動作する物理計算機１０-1に障害が発生した場合、当該仮想マシン１１-1が提供するサービスを、例えば物理計算機１０-2側に引き継がせるために、当該物理計算機１０-2に仮想マシン１１-1に相当する仮想マシン１１-2が生成（再生成）される。図１では、仮想マシン１１-2が破線のブロックで示されている。このことは、図１の状態では、未だ仮想マシン１１-2が物理計算機１０-2上に生成されていないことを示す。仮想マシン１１-2が動作する場合、当該仮想マシン１１-2（のＯＳ）上では、仮想マシン１１-1におけるのと同様に、アプリケーション（ＡＰ）１２-1及び１２-2が動作可能である。なお、例えば物理計算機１０-1上で、仮想マシン１１-1を含む複数の仮想マシンが動作する構成であっても構わない。
【００１４】
物理計算機１０-1及び１０-2上では、ハイパバイザである仮想マシンマネージャ（Virtual Machine Manager：ＶＭＭ）１３-1及び１３-2がそれぞれ動作する。ＶＭＭ１３-1及び１３-2は、仮想マシンモニタ（Virtual Machine Monitor：ＶＭＭ）とも呼ばれ、それぞれ、物理計算機１０-1及び１０-2が有する上述のハードウェア資源の利用を管理することで、仮想マシンを管理する。例えばＶＭＭ１３-1及び１３-2は、物理計算機１０-1及び１０-2が有するハードウェア資源を仮想化することにより仮想マシンが動作する仮想マシン実行環境を提供する。つまりＶＭＭ１３-1及び１３-2は、仮想化されたハードウェア資源を有する仮想マシンを構築する。
【００１５】
物理計算機１０-1及び１０-2上では、それぞれクラスタマネージャ１４-1及び１４-2も動作する。クラスタマネージャ１４-1及び１４-2は、物理計算機１０-1及び１０-2上でそれぞれ動作する仮想マシン１１-1及び１１-2から構成されるクラスタシステムを制御する。クラスタマネージャ１４-1及び１４-2は、相互に通信（ハートビート通信）を行うことで、それぞれ、物理計算機１０-2及び１０-1上で動作する仮想マシン１１-2及び１１-1の障害を検出する周知の障害検出機能を有する。仮想マシン１１-1及び１１-2は、後述するクライアントマシン３０からは同一の仮想マシンとして認識される。つまり仮想マシン１１-1及び１１-2は、クライアントマシン３０からは単一のＩＰ（Internet Protocol）アドレスが割り当てられた仮想マシンとして認識される。この単一のＩＰアドレスがＩＰＡであるとする。
【００１６】
クラスタマネージャ１４-1及び１４-2は、それぞれ復元機構１４０-1及び１４０-2を含む。復元機構１４０-i（ｉ＝１，２）は、仮想マシン１１-j（ｊ＝１，２、但しｊ≠ｉ）の障害を検出した場合に、障害発生直前の仮想マシン１１-jの状態を仮想マシン１１-iに復元する機能、つまり仮想マシン１１-iを用いて、物理計算機１０-i上に障害発生直前の状態の仮想マシン１１-jを復元する機能を有する。
【００１７】
物理計算機１０-1及び１０-2上では、それぞれスナップショットマネージャ１５-1及び１５-2も動作する。スナップショットマネージャ１５-1及び１５-2は、それぞれ、物理計算機１０-1及び１０-2上で仮想マシンが動作する場合に、定期的に当該仮想マシンの動作状態及び当該仮想マシンが利用する仮想ディスクの内容をスナップショットとして取得してディスク装置１００に保存する。仮想マシンの動作状態は、当該仮想マシンに割り当てられているＣＰＵの状態（プログラムカウンタ及びレジスタの状態）及びメモリの状態を含む。
【００１８】
物理計算機１０-1及び１０-2は通信路２０を介してクライアントマシン３０と接続されている。クライアントマシン３０は、物理計算機１０-1または１０-2上で仮想マシンが動作する場合に、当該仮想マシンの提供するサービスを利用するために、通信路２０を介して当該仮想マシンと通信を行う。図１の例では、クライアントマシン２０は、物理計算機１０-1上で動作する仮想マシン１１-1と通信を行う。
【００１９】
通信路２０上には、通信記録装置４０が配置されている。通信記録装置４０は、クライアントマシン３０と物理計算機１０-1または１０-2上で動作する仮想マシン（上のアプリケーション）との間で通信路２０を介して行われる通信（入出力）の履歴を、仮想マシン（上のアプリケーション）毎に時系列順に時刻情報（入力の時刻を表す時刻情報）と共に記録する。ここでは、クライアントマシン３０から仮想マシン（上のアプリケーション）への通信を「入力」と呼び、その逆の仮想マシンからクライアントマシン３０への通信を「出力」と呼ぶ。
【００２０】
本実施形態において通信記録装置４０は、クライアントマシン３０を物理計算機１０-1または１０-2上で動作する仮想マシンと接続するためのスイッチに設けられている。しかし通信記録装置４０が、ルータ、或いはプロキシサーバ（クライアントマシン３０から物理計算機１０-1または１０-2上で動作する仮想マシンへのアクセスを代理するプロキシサーバ）に設けられていても良い。
【００２１】
ディスク装置１００には、スナップショット領域１１１が確保されている。このスナップショット領域１１１は、例えば仮想マシン１１-1の動作状態及び仮想ディスク１１０の内容をスナップショット１１２として定期的に格納するのに用いられる。スナップショット領域１１１には、当該領域１１１に格納されたスナップショット１１２の列を管理するスナップショット管理情報１１３も格納される。
【００２２】
ディスク装置１００にはまた、復元管理テーブル１１４が格納される。復元管理テーブル１１４は、仮想マシンを復元する際の復元方法を示す復元タイプを、仮想マシン上で動作するアプリケーション毎に、当該仮想マシンに割り当てられたＩＰアドレス、及び当該アプリケーションに割り当てられたポート番号と対応付けて予め保持する。
【００２３】
本実施形態で適用される復元タイプは復元タイプＲＴ１と復元タイプＲＴ２の２種である。復元タイプＲＴ１及びＲＴ２は、それぞれ、第１及び第２のタイプのアプリケーションが動作する仮想マシンの復元に適した復元方法を示す。
【００２４】
第１のタイプのアプリケーションとは、仮想マシン上で動作する場合に、先行する処理に関係せず、どのような状態からでも同じ入力に対して同じ出力と同じ状態遷移が行われる特定のアプリケーションを指す。第１のタイプのアプリケーションは、例えばデータベース参照専用のアプリケーションである。本実施形態において、アプリケーション１２-1は第１のタイプのアプリケーションである。復元タイプＲＴ１は、通信記録装置４０によって記録された通信の履歴の示す入力順序とは無関係に、当該履歴に含まれている入力データ列を、復元されるべき仮想マシン上で動作するアプリケーションに予め定められた並列度で投入する復元方法を指す。
【００２５】
第２のタイプのアプリケーションとは、仮想マシン上で動作する場合に、同じ入力であっても、先行する状態の違いによって異なる出力と異なる状態遷移が行われる可能性のあるアプリケーション（つまり先行する処理に依存するアプリケーション）を指す。本実施形態において、アプリケーション１２-2は第２のタイプのアプリケーションである。復元タイプＲＴ２は、通信記録装置４０によって記録された通信の履歴の示す入力順序と入力タイミングとを守って、当該履歴に含まれている入力データ列を、復元されるべき仮想マシン上で動作するアプリケーションに投入する復元方法を指す。
【００２６】
図２は通信記録装置４０の構成を示すブロック図ある。通信記録装置４０は、ログ取得部４１、ログテーブル４２-1及び４２-2、ログ保存部４３、ログ送信部４４及びフィルタ部４５を含む。
【００２７】
ログ取得部４１は、クライアントマシン２と仮想マシン１１-1上で動作するアプリケーション１２-1及び１２-2との間で通信路２０を介して行われる通信の履歴（ログ）を取得する。ログテーブル４２-1及び４２-2は、ログ取得部４１によって取得された、クライアントマシン２と仮想マシン１１-1上で動作するアプリケーション１２-1及び１２-2との間の通信の履歴を保持するのに用いられる。ログ保存部４３は、ログ取得部４１によって取得された通信の履歴を、ログテーブル４２-1及び４２-2のうちの対応するテーブルに時系列順に保存（記録）する。
【００２８】
ログ送信部４４は、復元機構１４０-i（ｉ＝１，２）からの要求に従い、ログテーブル４２-1及び４２-2に保存されている通信の履歴を当該復元機構１４０-iに送信する。フィルタ部４５は、復元機構１４０-iによる復元処理の期間、クライアントマシン３０から送られる復元処理の対象となっている仮想マシン上のアプリケーション宛ての通信データをフィルタリングする。
【００２９】
図３は、ログテーブル４２-1の一例を示す。図３に示されるように、ログテーブル４２-1には、入力データと当該入力データに対する出力データの対が入力時点の時刻の情報と共に時系列順に保存されている。
【００３０】
図４は復元機構１４０-2の構成を示すブロック図である。復元機構１４０-2は、第１の復元部１４１及び第２の復元部１４２から構成される。なお、復元機構１４０-1も復元機構１４０-2と同様の構成を有する。
【００３１】
第１の復元部１４１は、物理計算機（物理計算機１０-1）に障害が発生した場合に、その障害発生時刻に最も近い時刻（最新のスナップショット取得時刻）で取得された、当該物理計算機上の仮想マシン（仮想マシン１１-1）に関するスナップショットに基づき、当該最新のスナップショット取得時刻の当該仮想マシンの状態を、当該第１の復元部１４１が設けられている物理計算機（物理計算機１０-2）上に復元する。第２の復元部１４２は、最新のスナップショット取得時刻の状態に復元された仮想マシンと当該仮想マシン上で動作するアプリケーション（アプリケーション１２-1及び１２-2）とに対応付けられたログテーブル（ログテーブル４２-1及び４２-2）に上記最新のスナップショット取得時刻から障害発生時刻までの間に記録されている入力データを、当該アプリケーションで処理されるべきデータとして当該仮想マシンに投入することにより、当該仮想マシンを障害発生時刻の直前の状態に復元する。
【００３２】
第２の復元部１４２は、ログ要求部１４３、ログ記憶部１４４、再投入部１４５、処理結果取得部１４６及び復元判定部１４７を含む。ログ要求部１４３は、仮想マシンを復元するに際し、当該仮想マシン上で動作するアプリケーションとクライアントマシンとの間の通信の履歴（ログ）を通信記録装置４０に要求する。ログ記憶部１４４は、ログ要求部１４３からの要求に応じて通信記録装置４０から送信された通信の履歴を格納する。再投入部１４５は、ログ記憶部１４４に格納された通信の履歴に含まれている入力データの列を、復元管理テーブル１１４によって示される復元タイプに固有の投入手順（復元方法）で、復元されるべき仮想マシン上で動作するアプリケーションに投入する。再投入部１４５は復元タイプ判定部１４５ａを含む。復元タイプ判定部１４５ａは、入力データの列をアプリケーションに投入する際に適用すべき投入手順（復元方法）を表す復元タイプを判定する。
【００３３】
処理結果取得部１４６は、再投入部１４５による入力データの投入に応じて、投入先から出力される処理の結果（処理結果）としての出力データを取得する。復元判定部１４７は、処理結果取得部１４６によって取得された処理結果（出力データ）を、当該処理結果に対応する入力データと通信の履歴中で対をなしている出力データと比較することにより、復元されるべき仮想マシンが正しく復元されているかを判定する。
【００３４】
図５は復元管理テーブル１１４の一例を示す。図５の例では、復元管理テーブル１１４には、仮想マシン１１-1または１１-2上で動作する２つのアプリケーション１２-1及び１２-2について、ＩＰアドレス、ポート番号及び復元タイプが登録されている。即ち、アプリケーション１２-1に関しては、ＩＰアドレス、ポート番号及び復元タイプとして、それぞれ、ＩＰＡ、Ｐ１及びＲＴ１が登録され、アプリケーション１２-2に関しては、ＩＰアドレス、ポート番号及び復元タイプとして、それぞれ、ＩＰＡ、Ｐ２及びＲＴ２が登録されている。
【００３５】
次に、図１の仮想計算機システムにおける動作を説明する。  
今、クライアントマシン２０が、物理計算機１０-1上で動作する仮想マシン１１-1の提供するサービスを利用するために、通信路２０を介して当該仮想マシン１１-1上で動作するアプリケーション１２-1及び１２-2との間で通信を行っているものとする。この場合、通信記録装置４０内のログ取得部４１は、クライアントマシン２０と仮想マシン１１-1上で動作するアプリケーション１２-1及び１２-2との間の通信シーケンスで発生した全ての通信の履歴を取得する。通信記録装置４０内のログ保存部４３は、ログ取得部４１によって取得された通信の履歴を、アプリケーション１２-1及び１２-2毎に、それぞれログテーブル４２-1及び４２-2に保存する。
【００３６】
仮想マシン１１-1が動作する物理計算機１０-1では、スナップショットマネージャ１５-1が、当該仮想マシン１１-1の動作状態と当該仮想マシン１１-1が利用する仮想ディスク１１０の内容を、ディスク装置１００に確保されている仮想マシン１１-1用のスナップショット領域１１１にスナップショット１１２として定期的に（例えば時間Δｔ毎に）取得（格納）している。スナップショットマネージャ１５-1は、スナップショット１１２を取得する都度、当該取得されたスナップショット１１２の世代管理のためにスナップショット管理情報１１３を更新する。
【００３７】
このようにして、例えば時刻ｔ１にスナップショット１１２として“ｓｎａｐ１”が取得され、時刻ｔ１からΔｔ後の時刻ｔ２（ｔ２＝ｔ１＋Δｔ）にスナップショット１１２として“ｓｎａｐ２”が取得されたものとする。また、時刻ｔ２から次にスナップショット１１２を取得すべき時刻ｔ３（ｔ３＝ｔ２＋Δｔ）が到来するまでのある時刻ｔに物理計算機１０-1の障害（例えばハードウェア障害）が発生したものとする。図６は、時刻ｔ１及びｔ２のそれぞれで、スナップショット領域１１１にスナップショット１１２“ｓｎａｐ１”及び１１２“ｓｎａｐ２”が取得された様子を示す。スナップショット１１２“ｓｎａｐ１”及び１１２“ｓｎａｐ２”は、それぞれ時刻ｔ１及びｔ２における仮想マシン１１-1の正常な状態を示す状態情報であるといえる。この時刻ｔ１及びｔ２のそれぞれにおけるスナップショット１１２“ｓｎａｐ１”及び１１２“ｓｎａｐ２”は、スナップショット管理情報１１３によって世代管理される。
【００３８】
また、時刻ｔ１から時刻ｔ２までの期間内の時刻ｔ１１，ｔ１２，ｔ１３，ｔ１４，ｔ１５及びｔ１６のそれぞれに、入力データＩＮ１，ＩＮ２，ＩＮ３，ＩＮ４，ＩＮ５及びＩＮ６が、クライアントマシン３０から仮想マシン１１-1上で動作するアプリケーション１２-1にポート番号Ｐ１のポートを介して与えられ、これらの入力データＩＮ１１，ＩＮ１２，ＩＮ１３，ＩＮ１４，ＩＮ１５及びＩＮ１６に対する当該アプリケーション１２-1での処理の結果として、出力データＯＵＴ１１，ＯＵＴ１２，ＯＵＴ１３，ＯＵＴ１４，ＯＵＴ１５及びＯＵＴ１６が当該アプリケーション１２-1からクライアントマシン３０に返されたものとする。そして、時刻ｔ２から時刻ｔまでの期間内の時刻ｔ２１，ｔ２２，ｔ２３及びｔ２４のそれぞれに、入力データＩＮ２１，ＩＮ２２，ＩＮ２３及びＩＮ２４が、クライアントマシン３０から仮想マシン１１-1上で動作するアプリケーション１２-1に与えられ、これらの入力データＩＮ２１，ＩＮ２２，ＩＮ２３及びＩＮ２４に対して当該アプリケーション１２-1からクライアントマシン３０に出力データＯＵＴ２１，ＯＵＴ２２，ＯＵＴ２３及びＯＵＴ２４が返されたものとする。
【００３９】
上述の時刻ｔ１から時刻ｔ（障害発生時刻ｔ）までの期間内にアプリケーション１２-1に投入された入力データと当該入力データに対応する出力データとの対は、ログテーブル４２-1に時系列順に保存される。図３は、時刻ｔにおけるログテーブル４２-1の状態を示したものである。
【００４０】
時刻ｔ１から時刻ｔまでの期間に物理計算機１０-1上で行われた上述の処理の手順を図７に示す。図７では、仮想マシン１１-1上で動作するアプリケーション１２-2における処理は省略されている。
【００４１】
さて、時刻ｔで上述のように物理計算機（第１の物理計算機）１０-1に障害が発生した場合、物理計算機１０-1上で動作していた仮想マシン１１-1を復元するための処理（仮想マシン復元処理）が、例えば物理計算機（第２の物理計算機）１０-2上で行われる。以下、この仮想マシン復元処理について、図８のフローチャートを参照して説明する。
【００４２】
まず、時刻ｔで物理計算機１０-1に障害が発生したことは、物理計算機１０-2上で動作するクラスタマネージャ１４-2によって検出される。するとクラスタマネージャ１４-2内の復元機構１４０-2が起動される。復元機構１４０-2はＶＭＭ１３-2に対して、障害が発生した物理計算機１０-1上で動作していた仮想マシン１１-1を物理計算機１０-2のＯＳ上に仮想マシン１１-2として生成（構築）することを要求する。この要求を受けてＶＭＭ１３-2は、物理計算機１０-2のＯＳ上に仮想マシン１１-2を生成する（ステップＳ１）。
【００４３】
復元機構１４０-2内の第１の復元部１４１は、ＶＭＭ１３-2によって生成された仮想マシン１１-2の状態を、スナップショット領域１１１に保存されているスナップショット１１２の列のうち、時刻ｔ（つまり障害発生時刻ｔ）に最も近いスナップショット取得時刻（つまり最新のスナップショット取得時刻）で取得されたスナップショット１１２を用いて、当該最新のスナップショット取得時刻おける仮想マシン１１-1と同一の状態に復元する（ステップＳ２）。図６から明らかなように、時刻ｔ（第１の時刻）に最も近いスナップショット取得時刻（第２の時刻）はｔ２であり、時刻ｔ２で取得されたスナップショット１１２は“ｓｎａｐ２”である。したがって本実施形態では、復元機構１４０-2は、スナップショット１１２“ｓｎａｐ２”を用いて、時刻ｔ２における仮想マシン１１-1と同一状態の仮想マシンを仮想マシン１１-2として復元する。つまり復元機構１４０-2は、スナップショット１１２“ｓｎａｐ２”を用いて、時刻ｔ２における仮想マシン１１-1の状態を仮想マシン１１-2上に復元する。なお、ステップＳ２が、ＶＭＭ１３-2によって行われても構わない。つまり、スナップショットに基づいて仮想マシンを復元するための復元機能をＶＭＭ１３-2に持たせても良い。
【００４４】
さて、時刻ｔ２における仮想マシン１１-1と同一状態の仮想マシンが仮想マシン１１-2として物理計算機１０-2上に復元されると、当該仮想マシン１１-2のＯＳ上では、時刻ｔ２における仮想マシン１１-1と同一の状態で、当該仮想マシン１１-1が実行していたのと同一のアプリケーション１２-1及び１２-2を実行することが可能となる。
【００４５】
そこで復元機構１４０-2内のログ要求部１４３は、通信記録装置４０に対して、クライアントマシン（本実施形態ではクライアントマシン３０）と仮想マシン１１-1上で動作するアプリケーション１２-1及び１２-2との間の通信の履歴（ログ）を要求する（ステップＳ３）。この要求に応じて、通信記録装置４０内のログ送信部４４は、ログテーブル４２-1及び４２-2に保存されている通信の履歴を復元機構１４０-2に送信する。ここで、ログテーブル４２-1及び４２-2に保存されている通信の履歴、即ちクライアントマシン（クライアントマシン３０）とアプリケーション１２-1及び１２-2との間の通信の履歴を、それぞれアプリケーション１２-1及び１２-2に対応する通信の履歴と呼ぶ。
【００４６】
ログ送信部４４は、ログテーブル４２-1及び４２-2に保存されている通信の履歴を復元機構１４０-2に送信する際に、フィルタ部４５に対してアプリケーション１２-1及び１２-2宛ての通信データのフィルタリングを要求する。これによりフィルタ部４５は、復元機構１４０-2からフィルタリングの解除が要求されるまで、アプリケーション１２-1及び１２-2宛ての通信データを全てフィルタリング（ブロック）する。
【００４７】
ログ要求部１４３は、ログ送信部４４から送信された通信の履歴をログ記憶部１４４に格納する（ステップＳ４）。復元機構１４０-2内の再投入部１４５は、ログ記憶部１４４に格納された通信の履歴、つまりアプリケーション１２-1及び１２-2に対応する通信の履歴に含まれている、時刻ｔ２から時刻ｔ（障害発生時刻ｔ）までの入力データの列のみを、仮想マシン１１-2上で動作するアプリケーション１２-1及び１２-2に、ポート番号Ｐ１及びＰ２で示されるポートを介して投入する。ここで、アプリケーション１２-1及び１２-2への入力データの投入の手順は、復元管理テーブル１１４に登録されている、当該アプリケーション１２-1及び１２-2に対応する復元タイプによって示される。但し以下の説明では、簡略化のために、アプリケーション１２-1に対応する通信の履歴に含まれている入力データの列の投入についてのみ説明する。
【００４８】
本実施形態において、仮想マシン１１-2のＩＰアドレスは仮想マシン１１-1のＩＰアドレスと同一のＩＰＡであり、アプリケーション１２-1に割り当てられたポート番号はＰ１である。この場合、再投入部１４５内の復元タイプ判定部１４５ａは、通信の履歴に含まれている入力データを投入（再投入）するのに先立ち、ディスク装置１００に格納されている復元管理テーブル１１４を参照して、ＩＰアドレスＩＰＡ及びポート番号Ｐ１の対と対応付けられている復元タイプがＲＴ１であるかをチェックする（ステップＳ５）。
【００４９】
図５から明らかなように、復元管理テーブル１１４上でＩＰアドレスＩＰＡ及びポート番号Ｐ１の対と対応付けられている復元タイプはＲＴ１である。この場合、再投入部１４５は、アプリケーション１２-1に対応する通信の履歴に含まれている時刻ｔ２から時刻ｔまでの入力データの列を、予め定められた並列度で、仮想マシン１１-2上で動作している当該アプリケーション１２-1に、ポート番号Ｐ１のポートを介して投入する。本実施形態では、並列度は４であるものとする。この場合、４つの入力データがアプリケーション１２-1に同時に投入される。この４つの入力データを、ＩＮ＃ａ，ＩＮ＃ｂ，ＩＮ＃ｃ及びＩＮ＃ｄで表す。
【００５０】
さて、アプリケーション１２-1に対応する通信の履歴に含まれている時刻ｔ２から時刻ｔまでの入力データの列は、図３から明らかなように、ＩＮ２１，ＩＮ２２，ＩＮ２３及びＩＮ２４である。したがって並列度が４である本実施形態では、再投入部１４５は、入力データＩＮ２１，ＩＮ２２，ＩＮ２３及びＩＮ２４を上記入力データＩＮ＃ａ，ＩＮ＃ｂ，ＩＮ＃ｃ及びＩＮ＃ｄとして、仮想マシン１１-2上で動作しているアプリケーション１２-1に並行して投入する（ステップＳ６ａ，Ｓ６ｂ，Ｓ６ｃ，Ｓ６ｄ）。
【００５１】
仮想マシン１１-2は、この並行して投入される入力データＩＮ２１，ＩＮ２２，ＩＮ２３及びＩＮ２４の処理をアプリケーション１２-1に従って実行する。つまり仮想マシン１１-2上では、並行して投入される入力データＩＮ２１，ＩＮ２２，ＩＮ２３及びＩＮ２４に基づく処理がアプリケーション１２-1によって行われる。
【００５２】
アプリケーション１２-1は前述したように、仮想マシン上で動作する場合に、先行する処理に関係せず、どのような状態からでも同じ入力に対して同じ出力と同じ状態遷移が行われる第１のタイプのアプリケーションである。したがって、入力データＩＮ２１，ＩＮ２２，ＩＮ２３及びＩＮ２４を、時刻ｔ２〜時刻ｔまでの間にクライアントマシン３０によって投入されたのと同一の順序で投入しなくても、当該入力データＩＮ２１，ＩＮ２２，ＩＮ２３及びＩＮ２４に対するアプリケーション１２-1での処理（仮想マシン１１-2によるアプリケーション１２-1に従う処理）により、アプリケーション１２-1の実行に関して、仮想マシン１１-2は時刻ｔの直前（障害発生直前）の仮想マシン１１-1の状態に復元されることが期待される。
【００５３】
入力データＩＮ２１，ＩＮ２２，ＩＮ２３及びＩＮ２４の送信元ＩＰアドレスはクライアントマシン３０に割り当てられているＩＰアドレスに一致する。したがって、入力データＩＮ２１，ＩＮ２２，ＩＮ２３及びＩＮ２４に対するアプリケーション１２-1での処理の結果（応答）の送信先ＩＰアドレスには、クライアントマシン３０に割り当てられているＩＰアドレスが用いられる。そこで復元機構１４０-2内の処理結果取得部１４６は、仮想マシン１１-2から出力される、入力データＩＮ２１，ＩＮ２２，ＩＮ２３及びＩＮ２４に対するアプリケーション１２-1での処理の結果（応答）をクライアントマシン３０に代わって取得して、つまり横取りして（ステップＳ７ａ，Ｓ７ｂ，Ｓ７ｃ，Ｓ７ｄ）、当該処理結果がクライアントマシン３０に送信されるのを防止する。
【００５４】
復元機構１４０-2内の復元判定部１４７は、処理結果取得部１４６によって取得された、入力データＩＮ２１，ＩＮ２２，ＩＮ２３及びＩＮ２４に対する処理の結果（処理結果）Ｏ２１，Ｏ２２，Ｏ２３及びＯ２４を、アプリケーション１２-1に対応する通信の履歴において当該入力データＩＮ２１，ＩＮ２２，ＩＮ２３及びＩＮ２４と対をなしている出力データＯＵＴ２１，ＯＵＴ２２，ＯＵＴ２３及びＯＵＴ２４と比較し（ステップＳ８ａ，Ｓ８ｂ，Ｓ８ｃ，Ｓ８ｄ）、一致しているか否かにより、復元処理が正常に行われているか否かを判定する（ステップＳ９ａ，Ｓ９ｂ，Ｓ９ｃ，Ｓ９ｄ）。
【００５５】
もし、Ｏ２１，Ｏ２２，Ｏ２３及びＯ２４が、それぞれＯＵＴ２１，ＯＵＴ２２，ＯＵＴ２３及びＯＵＴ２４に等しいならば、復元判定部１４７は、ＩＮ２１，ＩＮ２２，ＩＮ２３及びＩＮ２４の投入による復元処理は成功したと判定する。アプリケーション１２-1では、先行する処理に依存しないため、並列処理で入力を行っても通信の履歴と同一の順序で入力を行った場合と同じ結果になる。このため、ＩＮ２１，ＩＮ２２，ＩＮ２３及びＩＮ２４の投入による復元処理に成功した場合、全体の復元処理も成功したといえる。これに対して、ステップＳ９ａ，Ｓ９ｂ，Ｓ９ｃ，Ｓ９ｄのいずれか１つでも不一致（復元失敗）が判定された場合、図８では省略されているが、上述の仮想マシン復元処理がリトライされる。
【００５６】
さて、復元判定部１４７によって復元処理の成功が判定されると、再投入部１４５は次に投入すべき入力データがアプリケーション１２-1に対応する通信の履歴に残されているかを判定する（ステップＳ１０）。もし、次に投入すべき入力データが残されているならば、再投入部１４５は、この入力データを並列度４で投入する。但し、残されている入力データの個数が４に満たない場合には、再投入部１４５は、その残されている入力データを全て投入する。
【００５７】
これに対し、次に投入すべき入力データが残されていないならば、復元機構１４０-2は仮想マシン復元処理（アプリケーション１２-1に関する仮想マシン復元処理）を終了する。このとき仮想マシン１１-2は、アプリケーション１２-1の動作に関しては、障害障害発生時刻ｔの直前の仮想マシン１１-1の状態に復元されている。したがって、仮想マシン１１-2は、障害発生時刻ｔの直前の仮想マシン１１-1と同一の状態でアプリケーション１２-1によるクライアントマシン３０に対するサービスを継続することができる。この場合、復元機構１４０-2は通信記録装置４０内のフィルタ部４５に対して、仮想マシン１１-2上のアプリケーション１２-1宛ての通信データのフィルタリングの解除を要求する。
【００５８】
このように本実施形態によれば、アプリケーション１２-1に対応する通信の履歴に含まれている入力データの列を並列に投入することにより、当該アプリケーション１２-1に関しては、仮想マシン１１-2を障害発生直前の仮想マシン１１-1の状態に高速に復元できる。なお、復元タイプＲＴ１の仮想マシン復元処理で適用される並列度が、復元管理テーブル１１４に復元タイプＲＴ１と対応付けて予め設定される構成であっても良い。
【００５９】
上記の説明では省略されているが、ログテーブル４２-2に保存されている通信の履歴（即ちアプリケーション１２-2に対応する通信の履歴）を利用した、復元タイプＲＴ２の仮想マシン復元処理が、上述のログテーブル４２-1に保存されている通信の履歴（即ちアプリケーション１２-1に対応する通信の履歴）を利用した復元タイプＲＴ１の仮想マシン復元処理と並行して実行される。但し、復元タイプＲＴ２の仮想マシン復元処理では、アプリケーション１２-2に対応する通信の履歴に含まれている入力データが時系列順で、且つ当該履歴と相対時刻が同一のタイミングで投入される。
【００６０】
つまり、アプリケーション１２-2は、先行する処理に依存する第２のタイプのアプリケーションである。このため、アプリケーション１２-2に関する仮想マシン復元処理では、当該アプリケーション１２-2に対応する通信の履歴の示す入力順序と入力タイミングとを守って、当該履歴に含まれている入力列を、仮想マシン１１-2上で動作する当該アプリケーション１２-2に逐次投入する復元タイプＲＴ２の復元方法が適用されている。
【００６１】
ところで、アプリケーション１２-2に対して入力を行う場合、１回の入力が行われてその入力に対する処理が終了した後、次の入力が行われるまで多大な待ち時間が発生することがある。このため、上記実施形態のように、アプリケーション１２-2に対応する通信の履歴の示す入力順序と入力タイミングとを守って、当該アプリケーション１２-2に関する仮想マシン復元処理を行ったのでは、ある入力・出力と次の入力・出力との間に多大な待ち時間が存在する場合、復元タイプＲＴ２での仮想マシン復元処理がより低速となる。
【００６２】
そこで、第２のタイプのアプリケーションに関する仮想マシン復元処理において、当該アプリケーションに対応する通信の履歴の示す入力順序は守るものの、入力タイミングについては履歴の示す入力タイミングよりも短縮しても構わない。具体的には、待ち時間が予め定められた一定時間を超える場合には、当該一定時間後に次の入力データを投入すれば良い。また、全ての入力データの列を、履歴の待ち時間とは無関係で、且つ状態遷移に影響を及ぼさない最低の待ち時間で投入しても良い。このような待ち時間は、第２のタイプのアプリケーション毎に、予め設定することができる。この復元手法を適用することにより、第２のタイプのアプリケーションに関する仮想マシン復元処理を高速化することができる。
【００６３】
上記実施形態では、復元機構１４０-2内のログ要求部１４３からの要求に応じて、ログテーブル４２-1及び４２-2に保存されている通信の履歴が全て通信記録装置４０内のログ送信部４４によって復元機構１４０-2に送信される。しかし、ログ要求部１４３からの要求に、必要とする履歴の開始時刻と終了時刻を示す時刻情報を含め、当該開始時刻と終了時刻とで示される期間の履歴のみをログ送信部４４から復元機構１４０-2に送信する構成としても良い。
【００６４】
また上記実施形態では、仮想マシン１１-1または１１-2上で動作するアプリケーション１２-1及び１２-2を利用するクライアントマシンがクライアントマシン３０のみである。しかし、クライアントマシン３０を含む複数のクライアントマシンが仮想マシン１１-1または１１-2上で動作するアプリケーション１２-1及び１２-2を利用する構成であっても構わない。
【００６５】
また上記実施形態では、物理計算機１０-1に障害が発生した場合に、その障害発生直前の仮想マシン１１-1の状態を、物理計算機１０-2上で仮想マシン１１-2として復元している。しかし、物理計算機１０-1の障害が回復した際に、当該物理計算機１０-1上で、その障害発生直前の仮想マシン１１-1の状態を復元するようにしても構わない。
【００６６】
なお、本発明は、上記実施形態またはその変形例そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態またはその変形例に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。例えば、実施形態またはその変形例に示される全構成要素から幾つかの構成要素を削除してもよい。
【図面の簡単な説明】
【００６７】
【図１】本発明の一実施形態に係る仮想計算機システムの構成を示すブロック図。
【図２】図１に示される通信記録装置の構成を示すブロック図。
【図３】図２に示されるログテーブルの一例を示す図。
【図４】図１に示される復元機構の構成を示すブロック図。
【図５】図１に示される復元管理テーブルの一例を示す図。
【図６】定期的なスナップショット取得を説明するための図。
【図７】ある時刻から物理計算機障害発生時までの期間に物理計算機上で行われた処理の一例を示すフローチャート。
【図８】同実施形態における仮想マシン復元処理の手順を示すフローチャート。
【符号の説明】
【００６８】
１０-1，１０-2…物理計算機、１１-1，１１-2…仮想マシン、１２-1，１２-2…アプリケーション（ＡＰ）、１３-1，１３-2…仮想マシンマネージャ（ＶＭＭ）、１４-1，１４-2…クラスタマネージャ、１５-1，１５-2…スナップショットマネージャ、２０…通信路、３０…クライアントマシン、４０…通信記録装置、４１…ログ取得部、４２-1，４２-2…ログテーブル、４３…ログ保存部、４４…ログ送信部、４５…フィルタ部、１００…ディスク装置、１１０…仮想ディスク、１１１…スナップショット領域、１１２…スナップショット、１１４…復元管理テーブル、１４０-1，１４０-2…復元機構、１４１…第１の復元部、１４２…第２の復元部、１４３…ログ要求部、１４４…ログ記憶部、１４５…再投入部、１４５ａ…復元タイプ判定部、１４６…処理結果取得部、１４７…復元判定部。
【図１】
0004510064.tif 000002
【図２】
0004510064.tif 000003
【図３】
0004510064.tif 000004
【図４】
0004510064.tif 000005
【図５】
0004510064.tif 000006
【図６】
0004510064.tif 000007
【図７】
0004510064.tif 000008
【図８】
0004510064.tif 000009