JP2014102724A - フォールトトレラントシステム - Google Patents

フォールトトレラントシステム Download PDF

Info

Publication number
JP2014102724A
JP2014102724A JP2012254905A JP2012254905A JP2014102724A JP 2014102724 A JP2014102724 A JP 2014102724A JP 2012254905 A JP2012254905 A JP 2012254905A JP 2012254905 A JP2012254905 A JP 2012254905A JP 2014102724 A JP2014102724 A JP 2014102724A
Authority
JP
Japan
Prior art keywords
computer
physical computer
checkpoint
virtual machine
physical
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
Application number
JP2012254905A
Other languages
English (en)
Other versions
JP6056408B2 (ja
Inventor
Junichi Matsushita
潤一 松下
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2012254905A priority Critical patent/JP6056408B2/ja
Publication of JP2014102724A publication Critical patent/JP2014102724A/ja
Application granted granted Critical
Publication of JP6056408B2 publication Critical patent/JP6056408B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】複数の待機系を有しながら稼働系の性能の低下を抑えることができるフォールトトレラントシステムを提供する。
【解決手段】物理計算機600は、仮想計算機610,710の同期を採るタイミングである第1のチェックポイントが検出される毎に、仮想計算機610のスナップショット差分情報を取得して物理計算機700へ送信する。物理計算機700は、物理計算機600からのスナップショット差分情報に基づいて、仮想計算機710の状態を仮想計算機610の状態に一致させ、更に、仮想計算機710,810の同期を採る第2のチェックポイントが検出される毎に、仮想計算機710のスナップショット差分情報を取得して物理計算機800へ送信する。物理計算機800は、物理計算機700からのスナップショット差分情報に基づいて、仮想計算機810の状態を仮想計算機710の状態に一致させる。
【選択図】図13

Description

本発明は、フォールトトレラントシステム、同期方法、計算機、およびプログラムに関する。
可用性を高めた計算機システムとして、ホットスタンバイ構成のHAクラスタ(High availability cluster)、FTサーバ(Fault Tolerant server)が知られている。
HAクラスタは、複数台のサーバを相互接続し、システムの冗長化を図る。現在稼動している(稼動系)サーバに障害が発生した場合、待機系として用意されていたサーバが処理を引き継ぐため、クラスタ全体としては異常なく稼動し続けているように見える。主な方式として、アクティブスタンバイ方式とレプリケーション方式とがある。
アクティブスタンバイ方式のHAクラスタでは、運用系と待機系でストレージを共有する。運用系は、待機系を同期させるのに必要な、アプリケーションに依存した情報を共有ストレージに書き、待機系はフェイルオーバー時にこの情報を用いてリカバリを行う。即ち、アクティブスタンバイ方式では、フェイルオーバー時にアプリケーション毎のリカバリ処理が必要になるため、アプリケーションやOSから見て、透過的に可用性を得ることができない。また、フェイルオーバーには時間を要し、その間はサービスが提供できなくなるという問題がある。
レプリケーション方式のHAクラスタでは、運用系と待機系が個別にストレージを持ち、運用系のアプリケーションに到着したリクエストを待機系にも転送することで、待機系に運用系と同じ状態遷移をさせる。一般に、複数の系の状態を一致させることを、同期をとると言う。運用系に障害が発生して停止した場合、待機系のアプリケーションの状態は運用系と同期しているため、運用系を切り離してサービスを継続することができる。しかし、クラスタリングするアプリケーション毎にレプリケーションの仕組みを追加しなければならないため、アプリケーションやOSから見て、透過的に可用性を得ることができない。
またレプリケーション方式のHAクラスタの他の形態が本発明に関連する第1の関連技術として提案されている(例えば特許文献1参照)。この第1の関連技術では、稼働系のOS上で稼働する処理プログラムがメモリ上の処理データを更新すると、その処理データの更新情報を稼働系から待機系へ転送することにより、稼働系と待機系の計算機の処理データを同期させる。また、この第1の関連技術では、待機系の障害に備えるために、待機系を冗長化する。そのために、稼働系は、処理データの更新情報を全ての待機系に転送するようにしている。
このようにHAクラスタでは、アプリケーションやOSに可用性を意識した仕組みを追加しなければならない。これに対して、FTサーバでは、そのような必要性はない。即ち、FTサーバは、アプリケーションやOSが特別な処理を必要としないで、透過的にサービスを継続することができる。FTサーバを実現する方式は、ハードウェア方式とソフトウェア方式とに大別される。
ハードウェア方式のFTサーバは、CPU、メモリ、ストレージなどの主要なハードウェアコンポーネントを冗長化する。CPUやメモリ、チップセットを含むモジュールをCPUサブシステム、各種IOデバイスを含むモジュールをIOサブシステムと呼ぶ。CPUサブシステムとIOサブシステムとで二重化の方式が異なる。CPUサブシステムは、クロック単位でハードウェア的に完全に同期させる。これをロックステップと呼ぶ。両方とも完全に同じ動作をしているので、故障発生時は対象となるCPUサブシステムを論理的に切り離し、正常なCPUサブシステムで動作を続行させる。故に、CPUサブシステムには稼働系、待機系の概念はない。他方、IOサブシステムは、一方を稼働系、他方を待機系として使用し、ソフトウェアによる二重化制御を行う。稼働系のIOサブシステムで故障が発生した場合、これをソフトウェアで検出し、直ちに待機系側に切り替える。ハードウェア方式のFTサーバは、極めて高い可用性を実現することができる。しかし、特殊なハードウェアで構成されるため、同程度の性能を持つPCサーバと比較して導入コストがかかる。
ソフトウェア方式のFTサーバは、物理計算機上で複数のOSを動作させることを可能とした仮想化技術を使用する。物理計算機上に仮想的に構築される計算機を、仮想計算機あるいは仮想マシンと呼ぶ。ソフトウェア方式のFTサーバでは、物理計算機を冗長化し、稼働系の仮想計算機と待機系の仮想計算機とをそれぞれ異なる物理計算機上に配置する。稼働系の仮想計算機が属する物理計算機でハードウェアの故障等の障害が発生した場合、その仮想計算機が行っている処理を他の物理計算機上の待機系の仮想計算機で継続して実行する。アプリケーションやOSから見て、透過的にサービスを継続するために、ソフトウェア方式のFTサーバでは、稼働系と待機系の仮想計算機の状態を一致させる処理、すなわち同期を行う。
稼働系と待機系の仮想計算機を同期させる方式には、主に仮想ロックステップ方式とチェックポイント方式の2つの方式がある。仮想ロックステップ方式は、稼働系の仮想計算機に対する入力を、待機系の仮想計算機に対しても与えることにより、待機系の仮想計算機の状態を稼働系の仮想計算機と同じように遷移させる。仮想計算機間の同期に必要なデータ量が少なくて済む利点がある反面、稼働系と待機系とでCPUの種類が異なると動作しないといった課題がある。
他方、チェックポイント方式は、定期的に、稼働系の仮想計算機のイメージ(CPU、メモリ、ストレージなど)を待機系に送り、待機系の仮想計算機の状態を稼働系の仮想計算機の状態に一致させる。チェックポイント方式は、仮想ロックステップ方式と比較して実装が容易であり、CPUの特定の機能に依存しないため、幅広い製品に実装できる利点がある。その反面、仮想計算機のイメージはデータ量が多いため、仮想ロックステップ方式よりも1回の同期にかかるオーバーヘッドが大きいという課題がある。
この課題を解決するために、前回のチェックポイント以降に更新された稼働系の仮想計算機のイメージのみを待機系に送ることが本発明に関連する第2の関連技術として提案されている(例えば非特許文献1参照)。この第2の関連技術では、チェックポイントが到来すると、稼働系の仮想計算機を一旦停止させることでメインメモリへの更新を遮断し、前回のチェックポイント以降に更新のあったメインメモリのページであるダーティページの全てを、メインメモリに設けたバッファにローカルコピーする。そして、ローカルコピーを完了すると、停止させていた稼働系の仮想計算機を再起動し、並行して、上記コピーされたダーティページを上記バッファから待機系へと転送する。
特開2009−217765号公報
Brendan Cully、外5名、"Remus:High Availability via Asynchronous Virtual Machine Replication"、[online]、[平成24年9月5日検索]、インターネット〈URL:http://www.cs.ubc.ca/~andy/papers/remus-nsdi-final.pdf〉
上述したように待機系を冗長化することによって、より高い可用性を得ることができる。しかしながら、待機系を冗長化すると、稼働系の性能が低下する。その理由は、本発明に関連する第1の関連技術の箇所で述べたように、稼働系は、全ての待機系に更新データを送信しなければならないため、一部待機系との間の通信遅延が即、稼働系の処理性能の低下を招くからである。このため、特にチェックポイント方式のFTサーバにおいて待機系を冗長化することを考えた場合、稼働系は、数十msといった短い周期で到来するチェックポイント毎に稼働系の状態を全ての待機系へ送信しなければならないので、稼働系の性能が大幅に低下することになる。
本発明の目的は、上述した課題、すなわち、待機系を冗長化すると稼働系の性能が低下する、という課題を解決するフォールトトレラントシステムを提供することにある。
本発明の第1の観点に係るフォールトトレラントシステムは、
稼働系の仮想計算機が動作する第1の物理計算機と、前記第1の物理計算機に接続され、第1の待機系の仮想計算機が動作する第2の物理計算機と、前記第2の物理計算機に接続され、第2の待機系の仮想計算機が動作する第3の物理計算機とを有し、
前記第1の物理計算機は、前記稼働系の仮想計算機と前記第1の待機系の仮想計算機との同期を採るタイミングである第1のチェックポイントが検出される毎に、前記稼働系の仮想計算機のスナップショット差分情報を取得して前記第2の物理計算機へ送信し、
前記第2の物理計算機は、前記第1の物理計算機から受信した前記稼働系の仮想計算機のスナップショット差分情報に基づいて、前記第1の待機系の仮想計算機の状態を前記第1のチェックポイント時点の前記稼働系の仮想計算機の状態に一致させ、更に、前記第1の待機系の仮想計算機と前記第2の待機系の仮想計算機との同期を採る第2のチェックポイントが検出される毎に、前記第1の待機系の仮想計算機のスナップショット差分情報を取得して前記第3の物理計算機へ送信し、
前記第3の物理計算機は、前記第2の物理計算機から受信した前記第1の待機系の仮想計算機のスナップショット差分情報に基づいて、前記第2の待機系の仮想計算機の状態を前記第2のチェックポイント時点の前記第1の待機系の仮想計算機の状態に一致させる。
本発明の第2の観点に係る計算機は、
第1および第3の物理計算機に接続され、
第1の待機系の仮想計算機を有し、
前記第1の物理計算機から第1のチェックポイント毎に受信する、前記第1の物理計算機上で稼働する稼働系の仮想計算機のスナップショット差分情報に基づいて、前記第1の待機系の仮想計算機の状態を前記第1のチェックポイント時点の前記稼働系の仮想計算機の状態に一致させ、
前記第1の待機系の仮想計算機と前記第3の物理計算機上で稼働する第2の待機系の仮想計算機との同期を採るタイミングである第2のチェックポイントを検出する毎に、前記第1の待機系の仮想計算機のスナップショット差分情報を取得して前記第3の物理計算機へ送信する。
本発明の第3の観点に係る同期方法は、
第1および第3の物理計算機に接続され、且つ、第1の待機系の仮想計算機を有する計算機の同期方法であって、
前記第1の物理計算機から第1のチェックポイント毎に受信する、前記第1の物理計算機上で稼働する稼働系の仮想計算機のスナップショット差分情報に基づいて、前記第1の待機系の仮想計算機の状態を前記第1のチェックポイント時点の前記稼働系の仮想計算機の状態に一致させ、
前記第1の待機系の仮想計算機と前記第3の物理計算機上で稼働する第2の待機系の仮想計算機との同期を採るタイミングである第2のチェックポイントを検出する毎に、前記第1の待機系の仮想計算機のスナップショット差分情報を取得して前記第3の物理計算機へ送信する。
本発明の第4の観点に係るプログラムは、
第1および第3の物理計算機に接続された計算機を、
第1の待機系の仮想計算機として機能させると共に、
前記計算機に、前記第1の物理計算機から第1のチェックポイント毎に受信する、前記第1の物理計算機上で稼働する稼働系の仮想計算機のスナップショット差分情報に基づいて、前記第1の待機系の仮想計算機の状態を前記第1のチェックポイント時点の前記稼働系の仮想計算機の状態に一致させる処理、および、前記第1の待機系の仮想計算機と前記第3の物理計算機上で稼働する第2の待機系の仮想計算機との同期を採るタイミングである第2のチェックポイントを検出する毎に、前記第1の待機系の仮想計算機のスナップショット差分情報を取得して前記第3の物理計算機へ送信する処理
を実行させる。
本発明は上述した構成を有するため、複数の待機系を有しながら稼働系の性能の低下を抑えることができるフォールトトレラントシステムを提供することができる。
本発明の第1の実施形態のブロック図である。 本発明の第1の実施形態における各物理計算機上で実施されるスナップショットの取得と同期の実行とを含む処理の流れを示すシーケンスチャートである。 本発明の第1の実施形態における複数の待機系の仮想計算機の状態遷移図である。 本発明の第1の実施形態において稼働系障害時のフェイルオーバーの一例を示す概念図である。 本発明の第1の実施形態において稼働系障害時のフェイルオーバーの他の例を示す概念図である。 本発明の第2の実施形態のブロック図である。 本発明の第2の実施形態において、メインサイト300に設置される物理計算機310、320の構成例を示すブロック図である。 本発明の第2の実施形態において、バックアップサイト400に配置される物理計算機410、420の構成例を示すブロック図である。 本発明の第2の実施形態の動作を説明するためのシーケンスチャートである。 本発明の第2の実施形態において自物理計算機に対応する仮想計算機が稼働系のときの、スナップショット取得手段、スナップショット送信手段、及び、応答受信手段の処理例を示すフローチャートである。 本発明の第2の実施形態における同期手段の処理例を示すフローチャートである。 本発明の第2の実施形態において、自物理計算機に対応する仮想計算機が待機系のときの、スナップショット取得手段、スナップショット送信手段、及び、応答受信手段の処理例を示すフローチャートである。 本発明の第2の実施形態のブロック図である。
次に本発明の実施形態について図面を参照して詳細に説明する。
[第1の実施形態]
図1を参照すると、本発明の第1の実施形態にかかるフォールトトレラントシステム100は、ハードウェアとして3台の物理計算機110、120、130を有する。また、物理計算機110と物理計算機120とは通信路140を通じて相互に通信可能に接続され、物理計算機120と物理計算機130とは通信路150を通じて相互に通信可能に接続されている。
物理計算機110は、仮想計算機環境を提供するハイパーバイザ111と、このハイパーバイザ111が提供する仮想計算機環境の下で動作する仮想計算機112とを有する。また、物理計算機120は、仮想計算機環境を提供するハイパーバイザ121と、このハイパーバイザ121が提供する仮想計算機環境の下で動作する仮想計算機122とを有する。さらに、物理計算機130は、仮想計算機環境を提供するハイパーバイザ131と、このハイパーバイザ131が提供する仮想計算機環境の下で動作する仮想計算機132とを有する。
ここで、仮想計算機112は稼働系として動作し、仮想計算機122、132は待機系として動作する。即ち、仮想計算機112が動作する物理計算機110にハードウェア障害等の障害が発生すると、仮想計算機112が行っている処理を物理計算機120上の待機系の仮想計算機122で継続して実行する。また、仮想計算機112が動作する物理計算機110および仮想計算機122が動作する物理計算機120にハードウェア障害等の障害が発生すると、仮想計算機112が行っている処理を物理計算機130上の待機系の仮想計算機132で継続して実行する。
物理計算機110のハイパーバイザ111は、スナップショット管理部113とチェックポイント検出部114とを有する。
チェックポイント検出部114は、稼働系の仮想計算機112と待機系の仮想計算機122との同期を採るタイミングであるチェックポイントを検出する機能を有する。例えば、チェックポイント検出部114は、予め設定された時間周期T1毎にチェックポイントが到来したものと検出する。以下、チェックポイント検出部114が時刻tで検出したチェックポイントをCT1tと記す。
また、スナップショット管理部113は、チェックポイント検出部114でチェックポイントが検出される毎に、稼働系の仮想計算機112のスナップショットを取得して物理計算機110から物理計算機120へ送信するスナップショット取得機能を有する。このスナップショット取得機能では、チェックポイントCT1tにおける仮想計算機112の状態をスナップショットとして取得する。スナップショットとして取得する仮想計算機112の状態は、当該取得したスナップショットに基づいて仮想計算機112の状態を当該スナップショット時点に復元するのに必要なデータ、例えば仮想計算機112に割り当てられているCPUの状態(プログラムカウンタやレジスタの状態)やメモリの状態を含む。
物理計算機120のハイパーバイザ121は、スナップショット管理部123とチェックポイント検出部124とを有する。
チェックポイント検出部124は、待機系の仮想計算機122と待機系の仮想計算機132との同期を採るタイミングであるチェックポイントを検出する機能を有する。例えば、チェックポイント検出部124は、予め設定された時間周期T2毎にチェックポイントが到来したものと検出する。ここで、時間周期T2は、上述した時間周期T1と同じか、或いは長い周期として設定される。即ち、T2≧T1である。以下、チェックポイント検出部124が時刻tで検出したチェックポイントをCT2tと記す。
また、スナップショット管理部123は、物理計算機110から受信した稼働系の仮想計算機112のスナップショットに基づいて、待機系の仮想計算機122の状態を稼働系の仮想計算機112の状態に一致させる同期機能と、チェックポイント検出部124でチェックポイントが検出される毎に、待機系の仮想計算機122のスナップショットを取得して物理計算機120から物理計算機130へ送信するスナップショット取得機能とを有する。上記同期機能では、物理計算機110から受信した稼働系の仮想計算機112のチェックポイントCT1t時点のスナップショットに基づいて、待機系の仮想計算機122の状態をチェックポイントCT1t時点の稼働系の仮想計算機112の状態に一致させる。また、上記スナップショット取得機能では、チェックポイントCT2tにおける仮想計算機122の状態をスナップショットとして取得する。
物理計算機130のハイパーバイザ131は、スナップショット管理部133を有する。スナップショット管理部133は、物理計算機120から受信した待機系の仮想計算機122のスナップショットに基づいて、待機系の仮想計算機132の状態を待機系の仮想計算機122の状態に一致させる同期機能を有する。より具体的には、物理計算機120から受信した待機系の仮想計算機122のチェックポイントCT2t時点のスナップショットに基づいて、待機系の仮想計算機132の状態をチェックポイントCT2t時点の待機系の仮想計算機122の状態に一致させる。
次に本実施形態にかかるフォールトトレラントシステム100の動作を説明する。図2は、本実施形態の各物理計算機上で実施されるスナップショットの取得と同期の実行とを含む処理の流れを示すシーケンスチャートである。
物理計算機110のハイパーバイザ111が有するチェックポイント検出部114は、時間周期T1の間隔でチェックポイントCP1tを検出する。図2には、時刻t1、t3、t5のそれぞれで、チェックポイント検出部114がチェックポイントCT1t1、CT1t3、CT1t5を検出している。各々のチェックポイント時点では、以下のような処理が行われる。
時刻t1において、チェックポイント検出部114がチェックポイントCP1t1を検出すると、自ハイパーバイザ111のスナップショット管理部113へ当該チェックポイントCP1t1を通知する(S11)。スナップショット管理部113は、自物理計算機110上の稼働系の仮想計算機112の時刻t1時点の状態をスナップショットとして取得し(S12)、通信路140を通じて物理計算機120へ送信する(S13)。物理計算機120のハイパーバイザ121が有するスナップショット管理部123は、物理計算機110から送信されてきた上記スナップショットを受信すると、当該受信したスナップショットに基づき、自物理計算機120上の待機系の仮想計算機122の状態を時刻t1時点の稼働系の仮想計算機112の状態に一致させる(S14)。
また時刻t3において、チェックポイント検出部114がチェックポイントCP1t3を検出すると、時刻t1において実行された上記処理S11〜S14と同様の処理S21〜S24が実行されることにより、物理計算機120上の待機系の仮想計算機122の状態が時刻t3時点の稼働系の仮想計算機112の状態に一致させられる。
さらに時刻t5において、チェックポイント検出部114がチェックポイントCP1t5を検出すると、時刻t1またはt3において実行された上記処理S11〜S14またはS21〜S24と同様の処理S31〜S34が実行されることにより、物理計算機120上の待機系の仮想計算機122の状態が時刻t5時点の稼働系の仮想計算機112の状態に一致させられる。
他方、物理計算機120のハイパーバイザ121が有するチェックポイント検出部124は、時間周期T2の間隔でチェックポイントCP2tを検出する。図2には、時刻t2、t4のそれぞれで、チェックポイント検出部124がチェックポイントCT2t2、CT2t4を検出している。ここで、t1<t2<t3<t4<t5である。各々のチェックポイント時点では、以下のような処理が行われる。
時刻t2において、チェックポイント検出部124がチェックポイントCP2t2を検出すると、自ハイパーバイザ121のスナップショット管理部123へ当該チェックポイントCP2t2を通知する(S15)。スナップショット管理部123は、自物理計算機120上の待機系の仮想計算機122の時刻t2時点の状態をスナップショットとして取得し(S16)、通信路150を通じて物理計算機130へ送信する(S17)。物理計算機130のハイパーバイザ131が有するスナップショット管理部133は、物理計算機120から送信されてきた上記スナップショットを受信すると、当該受信したスナップショットに基づき、自物理計算機130上の待機系の仮想計算機132の状態を時刻t2時点の待機系の仮想計算機122の状態に一致させる(S18)。
また時刻t4において、チェックポイント検出部124がチェックポイントCP2t4を検出すると、時刻t2において実行された上記処理S15〜S18と同様の処理S25〜S28が実行されることにより、物理計算機130上の待機系の仮想計算機132の状態が時刻t4時点の待機系の仮想計算機122の状態に一致させられる。
図3は、待機系の仮想計算機122、132の状態遷移図である。待機系の仮想計算機122は、稼働系の仮想計算機112の時刻t1の状態、時刻t3の状態、時刻t5の状態へと順に遷移する。他方、待機系の仮想計算機132は、待機系の仮想計算機122の時刻t2の状態、時刻t4の状態へと順に遷移する。ここで、待機系の仮想計算機122の状態は、稼働系の仮想計算機112の或る時点の状態であるから、待機系の仮想計算機132の状態は、待機系の稼働計算機122の或る時点の状態であると同時に、稼働系の仮想計算機112の或る時点の状態であるとも言える。従って、待機系の仮想計算機122の時刻t2、t4時点の状態が、稼働系の仮想計算機112の時刻t1、t3時点の状態である場合、待機系の仮想計算機132は、稼働系の仮想計算機112の時刻t1の状態、時刻t3の状態へと順に遷移する。これによって、仮想計算機122と仮想計算機132との双方が、稼働系の仮想計算機112の待機系となる。
従って、例えば図4に示されるように、物理計算機110にハードウェア障害等の障害が発生した場合、物理計算機110の稼働系の仮想計算機112が行っている処理を物理計算機120上の待機系の仮想計算機122で継続して実行するフェイルオーバーが可能である。
また、例えば図5に示されるように、時刻t5以降に物理計算機110および物理計算機120の双方にハードウェア障害等の障害が発生した場合、物理計算機110の稼働系の仮想計算機112が行っている処理を物理計算機130上の待機系の仮想計算機132で継続して実行するフェイルオーバーが可能である。
このように本実施形態によれば、複数の待機系を有しながら稼働系の性能の低下を抑えることができるフォールトトレラントシステムを提供することができる。その理由は、稼働系の仮想計算機112を有する物理計算機110は、所定のチェックポイント毎に稼働系の仮想計算機112のスナップショットを取得して物理計算機120に送信すれば、当該物理計算機120上に待機系の仮想計算機122を生成することができ、他の待機系の仮想計算機132は、物理計算機120の自律的な動作によって他の物理計算機130上に生成されるためである。
[第2の実施形態]
次に、本発明にかかるフォールトトレラントシステムの第2の実施形態について詳細に説明する。本実施形態にかかるフォールトトレラントシステムは、遠隔地バックアップ方式によりディザスタリカバリを実現する。
図6を参照すると、本発明の第2の実施形態にかかるフォールトトレラントシステム200は、ハードウェアとしてメインサイト300に設置された2台の物理計算機310、320と、メインサイト300から地理的に離れたバックアップサイト400に設置された2台の物理計算機410、420とを有する。また、物理計算機310と物理計算機320とは通信路330を通じて相互に通信可能に接続され、物理計算機320と物理計算機410とはWAN(Wide Area Network)等のネットワーク400を通じて相互に通信可能に接続され、物理計算機410と物理計算機420とは通信路430を通して相互に通信可能に接続されている。ここで、通信路330、430は、ネットワーク500に比較して高速かつ広帯域の通信路である。
図7を参照すると、メインサイト300に設置された物理計算機310、320は、それぞれ仮想計算機環境を提供するハイパーバイザ311、321と、このハイパーバイザ311、321が提供する仮想計算機環境の下で動作する仮想計算機312、322とを有する。また、図8を参照すると、バックアップサイト400に設置された物理計算機410、420は、それぞれ仮想計算機環境を提供するハイパーバイザ411、421と、このハイパーバイザ411、421が提供する仮想計算機環境の下で動作する仮想計算機412、422とを有する。
ここで、仮想計算機312は稼働系として動作し、仮想計算機322、412、422は待機系として動作する。即ち、仮想計算機312が動作する物理計算機310にハードウェア障害等の障害が発生すると、仮想計算機312が行っている処理を物理計算機320上の仮想計算機322で継続して実行する。更に、物理計算機320に障害が発生すると、仮想計算機322が実行している処理を、バックアップサイト400に設置されている物理計算機410上の仮想計算機412で継続して実行する。更に、物理計算機410に障害が発生すると、仮想計算機412が行っている処理を物理計算機420上の仮想計算機422で継続して実行する。
メインサイト300に設置された物理計算機310のハイパーバイザ311は、スナップショット管理部313と、チェックポイント検出部314とを有する。
チェックポイント検出部314は、仮想計算機312と仮想計算機322との同期を採るためのタイミングであるチェックポイントを検出する機能を有する。例えば、チェックポイント検出部314は、予め定められている時間周期Tcp1毎にチェックポイントが到来したものと検出する。
スナップショット管理部313は、スナップショット取得手段315と、スナップショット送信手段316と、応答受信手段317とを有する。
スナップショット取得手段315は、チェックポイント検出部314がチェックポイントを検出する毎に、仮想計算機312の動作を停止させる機能や、前回のチェックポイントにおける仮想計算機312の状態を示すスナップショットと今回のチェックポイントにおける仮想計算機312の状態を示すスナップショットとの差分を示す差分情報(スナップショット差分情報)を取得する機能を有する。
スナップショット送信手段316は、スナップショット取得手段315が取得したスナップショット差分情報を、通信路330を介して物理計算機320へ送信する機能を有する。
応答受信手段317は、スナップショット差分情報を正常受信したことを示す応答信号が物理計算機320から送られてきたとき、仮想計算機312を起動する機能を有する。
スナップショット管理部313、及び、チェックポイント検出部314はコンピュータによって実現可能であり、その場合は、例えば次のようにする。コンピュータをスナップショット管理部313、及び、チェックポイント検出部314として機能させるためのプログラムを記録したディスク、半導体メモリ、その他の記録媒体を用意し、コンピュータに上記プログラムを読み取らせる。コンピュータは、読み取ったプログラムに従って自身の動作を制御することにより、自コンピュータ上にスナップショット管理部313、及び、チェックポイント検出部314を実現する。
また、物理計算機320のハイパーバイザ321は、スナップショット管理部323と、チェックポイント検出部324とを有する。
チェックポイント検出部324は、仮想計算機322と仮想計算機412との同期を採るタイミングであるチェックポイントを検出する機能を有する。例えば、チェックポイント検出部324は、予め定められている時間周期Tcp2毎にチェックポイントが到来したものと検出する。なお、上記時間周期Tcp2は、上述した時間周期Tcp1と同じ周期か、或いはよりも長い周期(Tcp2≧Tcp1)として設定される。
スナップショット管理部323は、スナップショット取得手段325と、スナップショット送信手段326と、応答受信手段327と、同期手段328とを有する。
スナップショット取得手段325は、仮想計算機322が稼働系になっている場合と、待機系になっている場合とで異なる処理を行う。仮想計算機322が稼働系になっている場合は、チェックポイント検出部324でチェックポイントが検出される毎に、仮想計算機322を停止させ、その後、仮想計算機322についてのスナップショット差分情報を取得する。また、待機系になっている場合は、チェックポイント検出部324でチェックポイントが検出される毎に、仮想計算機322についてのスナップショット差分情報を取得する。
スナップショット送信手段326は、スナップショット取得手段325が取得したスナップショット差分情報を、ネットワーク500を介して物理計算機410へ送信する機能を有する。
応答受信手段327は、仮想計算機322が稼働系になっている場合と、待機系になっている場合とで異なる処理を行う。仮想計算機322が稼働系になっている場合は、物理計算機410から送られてくる応答信号を受信することにより、仮想計算機322を起動し、その後、制御をスナップショット取得手段325に渡す。また、仮想計算機322が待機系になっている場合は、物理計算機410から送られてくる応答信号を受信することにより、制御をスナップショット取得手段325に渡す。
同期手段328は、物理計算機310から送られてくる仮想計算機312についてのスナップショット差分情報を正常受信したとき、そのことを示す応答信号を物理計算機310へ送信する機能や、受信したスナップショット差分情報に基づいて、待機系の仮想計算機322の状態を稼働系の仮想計算機312の最新のチェックポイント時の状態と一致させる機能を有する。
なお、スナップショット管理部323、及び、チェックポイント検出部324は、前述したと同様にして、コンピュータによって実現することができる。
一方、図8を参照すると、バックアップサイト400に設置された物理計算機410のハイパーバイザ411は、スナップショット管理部413と、チェックポイント検出部414とを有する。
チェックポイント検出部414は、仮想計算機412と仮想計算機422との同期を採るタイミングであるチェックポイントを検出する機能を有する。例えば、チェックポイント検出部414は、予め定められた所定の時間周期Tcp3毎にチェックポイントが到来したものと検出する。なお、上記時間周期Tcp3は、上述した時間周期Tcp2と同じか、或いはよりも長い周期(Tcp3≧Tcp2)として設定される。
スナップショット管理部413は、スナップショット取得手段415と、スナップショット送信手段416と、応答受信手段417と、同期手段418とを有する。
スナップショット取得手段415は、仮想計算機412が稼働系になっている場合と、待機系になっている場合とで異なる処理を行う。仮想計算機412が稼働系になっている場合は、チェックポイント検出部414でチェックポイントが検出される毎に、仮想計算機412を停止させ、その後、仮想計算機412についてのスナップショット差分情報を取得する。また、待機系になっている場合は、チェックポイント検出部414でチェックポイントが検出される毎に、仮想計算機412についてのスナップショット差分情報を取得する。
スナップショット送信手段416は、スナップショット取得手段415が取得したスナップショット差分情報を、通信路430を介して物理計算機420へ送信する機能を有する。
応答受信手段417は、仮想計算機412が稼働系になっている場合と、待機系になっている場合とで異なる処理を行う。仮想計算機412が稼働系になっている場合は、物理計算機420から送られてくる応答信号を受信することにより、仮想計算機412を起動し、その後、制御をスナップショット取得手段415に渡す。また、仮想計算機412が待機系になっている場合は、物理計算機420から送られてくる応答信号を受信することにより、制御をスナップショット取得手段415に渡す。
同期手段418は、物理計算機320からの仮想計算機322についてのスナップショット差分情報を正常受信したとき、物理計算機320に対して応答信号を返す機能や、受信したスナップショット差分情報に基づいて、仮想計算機412の状態を仮想計算機322の最新のチェックポイント時の状態に一致させる機能を有する。
なお、スナップショット管理部413、及び、チェックポイント検出部414は、前述したと同様にしてコンピュータによって実現することができる。
また、物理計算機420のハイパーバイザ421が備えているスナップショット管理部423は、同期手段428を有する。
同期手段428は、物理計算機410から送られてきた仮想計算機412についてのスナップショット差分情報を正常受信したとき、応答信号を物理計算機410に返す機能や、受信したスナップショット差分情報に基づいて、仮想計算機422の状態を仮想計算機412の最新のチェックポイント時の状態に一致させる機能を有する。
なお、スナップショット管理部423は、前述したと同様にして、コンピュータによって実現可能である。
次に、図9〜図12を参照して本実施形態にかかるフォールトトレラントシステム200の動作を説明する。なお、図9は物理計算機320、410、420上の仮想計算機322、412、422の状態遷移を説明するためのシーケンスチャート、図10は仮想計算機312、322、412が稼働系になっているときのスナップショット管理部313、323、413の処理例を示すフローチャート、図11は同期手段328、418、428の処理例を示すフローチャート、図12は仮想計算機322、412が待機系になっているときのスナップショット管理部323、413の処理例を示すフローチャートである。
図9に示すように、時刻t11において、稼働系の仮想計算機312が動作している物理計算機310内のチェックポイント検出部314がチェックポイント(CP)を検出したとする。
スナップショット取得手段315は、チェックポイント検出部314が時刻t11においてチェックポイントを検出すると(図10のステップS101がYes)、仮想計算機312を一時停止させ、その後、前回のチェックポイントにおける仮想計算機312の状態を示すスナップショットと今回のチェックポイントにおける仮想計算機の状態を示すスナップショットとの差分を示すスナップショット差分情報を取得する(ステップS102、S103)。ここで、スナップショット差分情報の取得方法としては、例えば、前回のチェックポイント以降に更新されたページ(ダーティページ)の内容をスナップショット差分情報として取得する方法を採用することができる。
その後、スナップショット送信手段316が、上記スナップショット差分情報を、通信路330を介して物理計算機320へ送信する(ステップS104)。
物理計算機320内の同期手段328は、スナップショット差分情報を受信すると(図11のステップS111がYes)、物理計算機310に対して応答信号を返す(ステップS112)。その後、同期手段328は、受信したスナップショット差分情報に基づいて、待機系の仮想計算機322の状態を稼働系の仮想計算機312の最新のチェックポイント時の状態と一致させ(ステップS113)、再び、ステップS111の処理を行う。
物理計算機310内の応答受信手段317は、応答信号を受信すると(図10のステップS105がYes)、物理計算機320においてスナップショット差分情報が正常受信されたと判断し、仮想計算機312の動作を再開させる(ステップS106)。ここで、チェックポイント検出部314がチェックポイントを検出してから応答受信手段317が応答信号を受信するまでの間(図9の時刻11から時刻12までの間)は、仮想計算機312の動作は一時的に停止する。しかし、本実施形態では、物理計算機310、320を近接配置し、且つ、ネットワーク500に比較して広帯域の通信路330によって物理計算機310、320を接続しているので、通信応答の遅延を短くでき、その結果、仮想計算機312の停止時間を短くすることができる。
その後、時刻t13において、チェックポイント検出部314がチェックポイントを検出すると、スナップショット取得手段315、スナップショット送信手段316、応答受信手段317、および、同期手段328において前述した処理と同様の処理(図10および図11のフローチャートに示す処理)が行われ、待機系の仮想計算機322の状態が、稼働系の仮想計算機312の時刻t13の状態に遷移する。
その後、時刻t15において、物理計算機320内のチェックポイント検出部324が、チェックポイントを検出すると(図12のステップS121がYes)、スナップショット取得手段325が仮想計算機322についてのスナップショット差分情報を取得し、スナップショット送信手段326がスナップショット差分情報をネットワーク500を介して物理計算機410へ送信する(ステップS122、S123)。
ここで、物理計算機320内のチェックポイント検出部324がチェックポイントを検出する時間周期Tcp2は、前述したように物理計算機310内のチェックポイント検出部314がチェックポイントを検出する時間周期Tcp1よりも長い周期になっている。このため、例えば、時間周期Tcp2が時間周期Tcp1の5倍であれば、スナップショット取得手段325は、物理計算機310からスナップショット差分情報が5回送られてくる毎に仮想計算機322についてのスナップショット差分情報を取得することになる。一般的に、プログラムの局所性により、物理計算機320における前回のチェックポイントから今回のチェックポイントまでの間に、物理計算機310から同じダーティページの内容が送られてくる確率が高い。このため、チェックポイント検出部324の時間周期Tcp2をチェックポイント検出部314の時間周期Tcp1よりも長くし、物理計算機310からスナップショット差分情報が複数回送られてくる毎に、仮想計算機322についてのスナップショット差分情報を取得する方が、時間周期Tcp1、Tcp2を同じ周期とし、物理計算機310からスナップショット差分情報が1回送られてくる毎に、スナップショット差分情報を取得する場合に比較して、トータルなデータ転送量を少なくすることができる。
物理計算機410内の同期手段418は、物理計算機320からスナップショット差分情報を受信すると(図11のステップS111がYes)、応答信号を物理計算機320に返した後、上記スナップショット差分情報に基づいて仮想計算機412の状態を仮想計算機322の最新のチェックポイント時の状態と一致させる(ステップS112、S113)。ここで、仮想計算機322の最新のチェックポイント時の状態は、仮想計算機312の時刻t13の状態と一致しているので、仮想計算機412の状態は仮想計算機312の時刻t13の状態に遷移することになる。
物理計算機320内の応答受信手段327は、時刻t16で物理計算機410からの応答信号を受信すると(ステップS124がYes)、制御をスナップショット取得手段325に渡し、ステップS121の処理を行わせる。なお、時刻t15から時刻t16までの間においても、物理計算機310と物理計算機320との間でスナップショット差分情報および応答信号がやり取りされるが、図9では図示を省略している。
ここで、物理計算機320と物理計算機410とは地理的に離れた地点に設置され、且つ、ネットワーク500は通信路330に比較して帯域が狭いので、物理計算機310、320間に比較して通信応答の遅延が大きなものとなる。しかし、メインサイト300内の物理計算機310と物理計算機320との間で通信応答の遅延は非常に小さいので、物理計算機320、410間の通信応答の遅延が大きくとも、稼働系の仮想計算機312の処理能力を低下させることはほとんどない。
その後、時刻t17において、物理計算機410内のチェックポイント検出部414がチェックポイントを検出すると(図12のステップS121がYes)、スナップショット取得手段415が仮想計算機412についてのスナップショット差分情報を取得し、スナップショット送信手段416がスナップショット差分情報を通信路430を介して物理計算機420へ送信する(ステップS122、S123)。
物理計算機420の同期手段428は、スナップショット差分情報を受信すると(図11のステップS111がYes)、物理計算機410に応答信号を返し、その後、仮想計算機422の状態を、仮想計算機412の最新のチェックポイント時に状態と一致させる(ステップS112、S113)。ここで、仮想計算機412の最新のチェックポイント時の状態は、仮想計算機312の時刻t13の状態と一致するので、仮想計算機422の状態は、仮想計算機312の時刻t13の状態に遷移する。
以上説明したように、仮想計算機322、412、422の状態は、稼働系の仮想計算機312の或る時刻の状態と一致したものになる。従って、仮想計算機322、412、422が稼働系の仮想計算機312の待機系になる。
次に、稼働系の仮想計算機312が動作している物理計算機310にハードウェア障害等の障害が発生した場合の動作を説明する。
物理計算機320上のスナップショット管理部323は、稼働系の仮想計算機312が動作している物理計算機310における障害の有無を検出する。障害の検出方法は任意である。例えば、スナップショット管理部323は、物理計算機310から通信路330経由で物理計算機320に対して一定周期で送信される特定の信号(例えば、ハートビート信号)の受信の有無を検出することによって障害の有無を検出してよい。
スナップショット管理部323は、物理計算機310の障害を検出すると、自物理計算機320に対応する仮想計算機322を待機系から稼働系に切り替える。これにより、新たに稼働系になった仮想計算機322が、仮想計算機312で行われていた処理を継続して実行する(フェイルオーバー)。また、スナップショット管理部323内のスナップショット取得手段325、スナップショット送信手段326、及び、応答受信手段327は、自物理計算機320に対応する仮想計算機322が稼働系に切り替わったので、図12のフローチャートに示す処理の代わりに、図10のフローチャートに示す処理を実行する。
次に、物理計算機310に加え、物理計算機320にも障害が発生した場合の動作を説明する。
物理計算機410上のスナップショット管理部413は、稼働系の仮想計算機322が動作している物理計算機320の障害を検出すると、自物理計算機410に対応する仮想計算機412を待機系から稼働系に切り替える。これにより、新たに稼働系になった仮想計算機412が、仮想計算機322で行われている処理を継続して実行する。また、スナップショット管理部413内のスナップショット取得手段415、スナップショット送信手段416、及び、応答受信手段417は、自物理計算機410に対応する仮想計算機412が待機系に切り替わったので、図12のフローチャートに示す処理の代わりに、図10のフローチャートに示す処理を実行する。
次に、物理計算機310、320に加えて、物理計算機410に障害が発生した場合の動作を説明する。
物理計算機420上のスナップショット管理部423は、稼働系の仮想計算機412が動作している物理計算機410の障害を検出すると、自物理計算機420に対応する仮想計算機422を待機系から稼働系に切り替える。これにより、新たに稼働系になった仮想計算機422が、仮想計算機412で行われている処理を継続して実行する。また、スナップショット管理部423は、自物理計算機420に対応する仮想計算機422が待機系から稼働系に切り替わったので、図12のフローチャートに示す処理の代わりに、図10のフローチャートに示す処理を実行する。
なお、チェックポイント検出部324、414に関し、自物理計算機320、410に対応する仮想計算機332、412が待機系から稼働系に切り替わった場合は、チェックポイントを検出する時間周期Tcp2、Tcp3をより短い時間周期Tcp2’、Tcp3’(Tcp1>Tcp1’、Tcp2>Tcp2’)に変更するようにしても良い。
本実施形態によれば、チェックポイント検出部324によるチェックポイントの周期をチェックポイント検出部314によるチェックポイントの周期よりも長くしているので、ネットワーク500を介して転送するスナップショット差分情報のデータ量を少なくすることができる。更に、本実施形態では、物理計算機310、320をメインサイト300に設置し、物理計算機410、420をメインサイト400と地理的に離れたバックアップサイト400に設置しているので、ディザスタリカバリが可能になる。
[第3の実施形態]
次に、本発明に係るフォールトトレラントシステムの第3の実施形態について説明する。
図13を参照すると、本実施形態に係るフォールトトレラントシステムは、稼働系の仮想計算機610が動作する第1の物理計算機600と、上記第1の物理計算機600に接続され、第1の待機系の仮想計算機710が動作する第2の物理計算機700と、上記第2の物理計算機700に接続され、第2の待機系の仮想計算機810が動作する第3の物理計算機800とを有している。
そして、第1の物理計算機600は、上記稼働系の仮想計算機610と上記第1の待機系の仮想計算機710との同期を採るタイミングである第1のチェックポイントが検出される毎に、上記稼働系の仮想計算機610のスナップショット差分情報を取得して上記第2の物理計算機700へ送信する。
また、第2の物理計算機700は、上記第1の物理計算機600から受信した上記稼働系の仮想計算機610のスナップショット差分情報に基づいて、上記第1の待機系の仮想計算機710の状態を上記第1のチェックポイント時点の上記稼働系の仮想計算機610の状態に一致させ、更に、上記第1の待機系の仮想計算機710と上記第2の待機系の仮想計算機810との同期を採る第2のチェックポイントが検出される毎に、上記第1の待機系の仮想計算機710のスナップショット差分情報を取得して上記第3の物理計算機800へ送信する。
また、第3の物理計算機800は、上記第2の物理計算機700から受信した上記第1の待機系の仮想計算機710のスナップショット差分情報に基づいて、上記第2の待機系の仮想計算機810の状態を上記第2のチェックポイント時点の前記第1の待機系の仮想計算機710の状態に一致させる。
このように本実施形態によれば、複数の待機系を有しながら稼働系の性能の低下を抑えることができるフォールトトレラントシステムを提供することができる。その理由は、稼働系の仮想計算機600を有する第1の物理計算機600は、所定のチェックポイント毎に稼働系の仮想計算機610のスナップショット差分情報を取得して物理計算機700に送信すれば、第2の物理計算機700上に第1の待機系の仮想計算機710を生成することができ、第2の待機系の仮想計算機810は、第2の物理計算機700の自律的な動作によって第3の物理計算機800上に生成されるためである。
100 フォールトトレラントシステム
110、120、130 物理計算機
111、121、131 ハイパーバイザ
112、122、132 仮想計算機
113、123、133 スナップショット管理部
114、124 チェックポイント検出部
200 フォールトトレラントシステム
300 メインサイト
310、320 物理計算機
311、321 ハイパーバイザ
312、322 仮想計算機
313、323 スナップショット管理部
314、324 チェックポイント検出部
315、325 スナップショット取得手段
316、326 スナップショット送信手段
317、327 応答受信手段
328 同期手段
330 通信路
400 バックアップサイト
410、420 物理計算機
411,421 ハイパーバイザ
412、422 仮想計算機
413、423 スナップショット管理部
414 チェックポイント検出部
415 スナップショット取得手段
416 スナップショット送信手段
417 応答受信手段
418、428 同期手段
430 通信路
500 ネットワーク
600、700、800 物理計算機
610、710、810 仮想計算機

Claims (21)

  1. 稼働系の仮想計算機が動作する第1の物理計算機と、前記第1の物理計算機に接続され、第1の待機系の仮想計算機が動作する第2の物理計算機と、前記第2の物理計算機に接続され、第2の待機系の仮想計算機が動作する第3の物理計算機とを有し、
    前記第1の物理計算機は、前記稼働系の仮想計算機と前記第1の待機系の仮想計算機との同期を採るタイミングである第1のチェックポイントが検出される毎に、前記稼働系の仮想計算機のスナップショット差分情報を取得して前記第2の物理計算機へ送信し、
    前記第2の物理計算機は、前記第1の物理計算機から受信した前記稼働系の仮想計算機のスナップショット差分情報に基づいて、前記第1の待機系の仮想計算機の状態を前記第1のチェックポイント時点の前記稼働系の仮想計算機の状態に一致させ、更に、前記第1の待機系の仮想計算機と前記第2の待機系の仮想計算機との同期を採る第2のチェックポイントが検出される毎に、前記第1の待機系の仮想計算機のスナップショット差分情報を取得して前記第3の物理計算機へ送信し、
    前記第3の物理計算機は、前記第2の物理計算機から受信した前記第1の待機系の仮想計算機のスナップショット差分情報に基づいて、前記第2の待機系の仮想計算機の状態を前記第2のチェックポイント時点の前記第1の待機系の仮想計算機の状態に一致させる
    フォールトトレラントシステム。
  2. 前記第1の物理計算機と前記第2の物理計算機とは、前記第2の物理計算機と前記第3の物理計算機とを接続する通信路に比べて高速かつ広帯域な通信路によって接続されている
    請求項1に記載のフォールトトレラントシステム。
  3. 前記第2のチェックポイントの周期は、前記第1のチェックポイントの周期と同じ周期か、或いはより長い周期である
    請求項1または2に記載のフォールトトレラントシステム。
  4. 前記第1の物理計算機と前記第2の物理計算機とは、メインサイトに設置され、
    前記第3の物理計算機は、前記メインサイトと地理的に離れたバックアップサイトに設置されている
    請求項1乃至3の何れか1項に記載のフォールトトレラントシステム。
  5. 前記第3の物理計算機に接続され、第3の待機系の仮想計算機が動作する第4の物理計算機をさらに有し、
    前記第3の物理計算機は、
    前記第2の待機系の仮想計算機と前記第3の待機系の仮想計算機との同期を採るタイミングである第3のチェックポイントを検出する第3のチェックポイント検出手段をさらに有し、
    前記第3の物理計算機の前記スナップショット管理手段は、前記第3のチェックポイント検出手段で前記第3のチェックポイントが検出される毎に、前記第2の待機系の仮想計算機のスナップショット差分情報を取得して前記第3の物理計算機から前記第4の物理計算機へ送信する機能をさらに有し、
    前記第4の物理計算機は、
    前記第3の物理計算機から受信した前記第2の待機系の仮想計算機のスナップショット差分情報に基づいて、前記第3の待機系の仮想計算機の状態を前記第3のチェックポイント時点の前記第2の待機系の仮想計算機の状態に一致させる第4のスナップショット管理手段を有する
    請求項1乃至4の何れか1項に記載のフォールトトレラントシステム。
  6. 第1および第3の物理計算機に接続され、
    第1の待機系の仮想計算機を有し、
    前記第1の物理計算機から第1のチェックポイント毎に受信する、前記第1の物理計算機上で稼働する稼働系の仮想計算機のスナップショット差分情報に基づいて、前記第1の待機系の仮想計算機の状態を前記第1のチェックポイント時点の前記稼働系の仮想計算機の状態に一致させ、
    前記第1の待機系の仮想計算機と前記第3の物理計算機上で稼働する第2の待機系の仮想計算機との同期を採るタイミングである第2のチェックポイントを検出する毎に、前記第1の待機系の仮想計算機のスナップショット差分情報を取得して前記第3の物理計算機へ送信する
    計算機。
  7. 前記第1の物理計算機とは、前記第3の物理計算機と接続されている通信路に比べて高速かつ広帯域な通信路によって接続されている
    請求項6に記載の計算機。
  8. 前記第2のチェックポイントの周期は、前記第1のチェックポイントの周期と同じ周期か、或いはより長い周期である
    請求項6または7に記載の計算機。
  9. 前記第3の物理計算機が設置されているバックアップサイトとは地理的に離れた場所に存在するメインサイトに前記第1の物理計算機と共に、設置されている
    請求項6乃至8の何れか1項に記載の計算機。
  10. 第1および第3の物理計算機に接続され、且つ、第1の待機系の仮想計算機を有する計算機の同期方法であって、
    前記第1の物理計算機から第1のチェックポイント毎に受信する、前記第1の物理計算機上で稼働する稼働系の仮想計算機のスナップショット差分情報に基づいて、前記第1の待機系の仮想計算機の状態を前記第1のチェックポイント時点の前記稼働系の仮想計算機の状態に一致させ、
    前記第1の待機系の仮想計算機と前記第3の物理計算機上で稼働する第2の待機系の仮想計算機との同期を採るタイミングである第2のチェックポイントを検出する毎に、前記第1の待機系の仮想計算機のスナップショット差分情報を取得して前記第3の物理計算機へ送信する
    同期方法。
  11. 前記第1の物理計算機とは、前記第3の物理計算機と接続されている通信路に比べて高速かつ広帯域な通信路によって接続されている
    請求項10に記載の同期方法。
  12. 前記第2のチェックポイントの周期は、前記第1のチェックポイントの周期と同じ周期か、或いはより長い周期である
    請求項10または11に記載の同期方法。
  13. 前記第3の物理計算機が設置されているバックアップサイトとは地理的に離れた場所に存在するメインサイトに前記第1の物理計算機と共に、設置されている
    請求項10乃至12の何れか1項に記載の同期方法。
  14. 稼働系の仮想計算機が動作する第1の物理計算機と、第1の待機系の仮想計算機が動作する第2の物理計算機と、第2の待機系の仮想計算機が動作する第3の物理計算機とを有するフォールトトレラントシステムの同期方法であって、
    前記第1の物理計算機が、前記稼働系の仮想計算機と前記第1の待機系の仮想計算機との同期を採るタイミングである第1のチェックポイント毎に、前記第1の稼働系の仮想計算機のスナップショット差分情報を取得して前記第1の物理計算機から前記第2の物理計算機へ送信し、
    前記第2の物理計算機が、前記第1の物理計算機から受信した前記稼働系の仮想計算機のスナップショット差分情報に基づいて、前記第1の待機系の仮想計算機の状態を前記第1のチェックポイント時点の前記稼働系の仮想計算機の状態に一致させ、
    前記第2の物理計算機が、前記第1の待機系の仮想計算機と前記第2の待機系の仮想計算機との同期を採るタイミングである第2のチェックポイント毎に、前記第1の待機系の仮想計算機のスナップショット差分情報を取得して前記第2の物理計算機から前記第3の物理計算機へ送信し、
    前記第3の物理計算機が、前記第2の物理計算機から受信した前記第1の待機系の仮想計算機のスナップショット差分情報に基づいて、前記第2の待機系の仮想計算機の状態を前記第2のチェックポイント時点の前記第1の待機系の仮想計算機の状態に一致させる
    フォールトトレラントシステムの同期方法。
  15. 前記第1の物理計算機と前記第2の物理計算機とは、前記第2の物理計算機と前記第3の物理計算機とを接続する通信路に比べて高速かつ広帯域な通信路によって接続されている
    請求項14に記載のフォールトトレラントシステムの同期方法。
  16. 前記第2のチェックポイントの周期は、前記第1のチェックポイントの周期と同じ周期か、或いはより長い周期である
    請求項14または15に記載のフォールトトレラントシステムの同期方法。
  17. 前記第1の物理計算機と前記第2の物理計算機とは、メインサイトに設置され、
    前記第3の物理計算機は、前記メインサイトと地理的に離れたバックアップサイトに設置されている
    請求項14乃至16の何れか1項に記載のフォールトトレラントシステムの同期方法。
  18. 第1および第3の物理計算機に接続された計算機を、
    第1の待機系の仮想計算機として機能させると共に、
    前記計算機に、前記第1の物理計算機から第1のチェックポイント毎に受信する、前記第1の物理計算機上で稼働する稼働系の仮想計算機のスナップショット差分情報に基づいて、前記第1の待機系の仮想計算機の状態を前記第1のチェックポイント時点の前記稼働系の仮想計算機の状態に一致させる処理、および、前記第1の待機系の仮想計算機と前記第3の物理計算機上で稼働する第2の待機系の仮想計算機との同期を採るタイミングである第2のチェックポイントを検出する毎に、前記第1の待機系の仮想計算機のスナップショット差分情報を取得して前記第3の物理計算機へ送信する処理
    を実行させるためのプログラム。
  19. 前記第1の物理計算機と前記計算機とは、前記第3の計算機と前記計算機とを接続する通信路に比べて高速かつ広帯域な通信路によって接続されている
    請求項18に記載のプログラム。
  20. 前記第2のチェックポイントの周期は、前記第1のチェックポイントの周期と同じ周期か、或いはより長い周期である
    請求項18または19に記載のプログラム。
  21. 前記第1の物理計算機と前記計算機とは、メインサイトに設置され、
    前記第3の物理計算機は、前記メインサイトと地理的に離れたバックアップサイトに設置されている
    請求項18乃至20の何れか1項に記載のプログラム。
JP2012254905A 2012-11-21 2012-11-21 フォールトトレラントシステム Active JP6056408B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012254905A JP6056408B2 (ja) 2012-11-21 2012-11-21 フォールトトレラントシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012254905A JP6056408B2 (ja) 2012-11-21 2012-11-21 フォールトトレラントシステム

Publications (2)

Publication Number Publication Date
JP2014102724A true JP2014102724A (ja) 2014-06-05
JP6056408B2 JP6056408B2 (ja) 2017-01-11

Family

ID=51025170

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012254905A Active JP6056408B2 (ja) 2012-11-21 2012-11-21 フォールトトレラントシステム

Country Status (1)

Country Link
JP (1) JP6056408B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016004432A (ja) * 2014-06-17 2016-01-12 富士通株式会社 仮想マシンマイグレーションプログラム、仮想マシンマイグレーションシステムおよび仮想マシンマイグレーション方法
JP2019086947A (ja) * 2017-11-06 2019-06-06 富士通株式会社 調査資料採取プログラム、調査資料採取装置及び調査資料採取方法
JP2019109735A (ja) * 2017-12-19 2019-07-04 日本電気通信システム株式会社 システム、計算機、システム制御方法及びプログラム

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050050115A1 (en) * 2003-08-29 2005-03-03 Kekre Anand A. Method and system of providing cascaded replication
WO2008105098A1 (ja) * 2007-02-28 2008-09-04 Fujitsu Limited メモリミラー化制御方法
JP2009151629A (ja) * 2007-12-21 2009-07-09 Nec Corp ノードシステム、サーバ切換え方法、サーバ装置、データ引き継ぎ方法、およびプログラム
JP2010160660A (ja) * 2009-01-07 2010-07-22 Nec Corp ネットワークインタフェース、計算機システム、それらの動作方法、及びプログラム
WO2011146645A1 (en) * 2010-05-18 2011-11-24 Vmware, Inc. Method and system for achieving fault tolerant checkpointing across remote virtual machines
JP2012208649A (ja) * 2011-03-29 2012-10-25 Nec Corp 分散ファイルシステム

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050050115A1 (en) * 2003-08-29 2005-03-03 Kekre Anand A. Method and system of providing cascaded replication
WO2008105098A1 (ja) * 2007-02-28 2008-09-04 Fujitsu Limited メモリミラー化制御方法
JP2009151629A (ja) * 2007-12-21 2009-07-09 Nec Corp ノードシステム、サーバ切換え方法、サーバ装置、データ引き継ぎ方法、およびプログラム
JP2010160660A (ja) * 2009-01-07 2010-07-22 Nec Corp ネットワークインタフェース、計算機システム、それらの動作方法、及びプログラム
WO2011146645A1 (en) * 2010-05-18 2011-11-24 Vmware, Inc. Method and system for achieving fault tolerant checkpointing across remote virtual machines
JP2012208649A (ja) * 2011-03-29 2012-10-25 Nec Corp 分散ファイルシステム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016004432A (ja) * 2014-06-17 2016-01-12 富士通株式会社 仮想マシンマイグレーションプログラム、仮想マシンマイグレーションシステムおよび仮想マシンマイグレーション方法
JP2019086947A (ja) * 2017-11-06 2019-06-06 富士通株式会社 調査資料採取プログラム、調査資料採取装置及び調査資料採取方法
JP2019109735A (ja) * 2017-12-19 2019-07-04 日本電気通信システム株式会社 システム、計算機、システム制御方法及びプログラム
JP7056868B2 (ja) 2017-12-19 2022-04-19 日本電気通信システム株式会社 システム、計算機、システム制御方法及びプログラム

Also Published As

Publication number Publication date
JP6056408B2 (ja) 2017-01-11

Similar Documents

Publication Publication Date Title
USRE47852E1 (en) Snapshot and replication of a multi-stream application on multiple hosts at near-sync frequency
US8904231B2 (en) Synchronous local and cross-site failover in clustered storage systems
US9727429B1 (en) Method and system for immediate recovery of replicated virtual machines
US9189339B1 (en) Replication of a virtual distributed volume with virtual machine granualarity
US9244997B1 (en) Asymmetric active-active access of asynchronously-protected data storage
Scales et al. The design of a practical system for fault-tolerant virtual machines
US9135120B1 (en) Consistency group moving
US8868492B2 (en) Method for maximizing throughput and minimizing transactions response times on the primary system in the presence of a zero data loss standby replica
US7793060B2 (en) System method and circuit for differential mirroring of data
US7725776B2 (en) Method for displaying pair state of copy pairs
US20180150501A1 (en) Database system, server device, computer program product, and information processing method
JP2009157785A (ja) 待機系計算機の追加方法、計算機及び計算機システム
US20120297107A1 (en) Storage controller system with data synchronization and method of operation thereof
JP2014503904A (ja) 仮想計算機のクラスタを操作するための方法、装置、コンピュータ・プログラム、およびコンピュータ・プログラム製品
US9398094B2 (en) Data transfer device
TWI592796B (zh) 運用於雲端服務之虛擬機之封包察覺式容錯方法及系統、電腦可讀取之記錄媒體及電腦程式產品
US9672165B1 (en) Data management tier coupling primary storage and secondary storage
JP6056408B2 (ja) フォールトトレラントシステム
JP4560074B2 (ja) 仮想計算機システム及び同システムにおける仮想計算機復元方法
Scales et al. The design and evaluation of a practical system for fault-tolerant virtual machines
JP6291711B2 (ja) フォールトトレラントシステム
CN105824571A (zh) 一种实现数据无缝迁移的方法及装置
US8095828B1 (en) Using a data storage system for cluster I/O failure determination
US10649862B1 (en) Reducing failback performance duration in data replication systems
US10185758B1 (en) Direct to remote replication

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151006

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160620

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160726

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160819

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161121

R150 Certificate of patent or registration of utility model

Ref document number: 6056408

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150