JP5661176B2 - 遠隔仮想計算機全体にわたって耐故障チェックポインティングを達成するための方法及びシステム - Google Patents

遠隔仮想計算機全体にわたって耐故障チェックポインティングを達成するための方法及びシステム Download PDF

Info

Publication number
JP5661176B2
JP5661176B2 JP2013511338A JP2013511338A JP5661176B2 JP 5661176 B2 JP5661176 B2 JP 5661176B2 JP 2013511338 A JP2013511338 A JP 2013511338A JP 2013511338 A JP2013511338 A JP 2013511338A JP 5661176 B2 JP5661176 B2 JP 5661176B2
Authority
JP
Japan
Prior art keywords
computer system
memory page
checkpoint
backup
main
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2013511338A
Other languages
English (en)
Other versions
JP2013529343A (ja
Inventor
アゲセン,オーレ
ムミディ,ラヴィプラサド
サブラマニアム,プラタップ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
VMware LLC
Original Assignee
VMware LLC
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 VMware LLC filed Critical VMware LLC
Publication of JP2013529343A publication Critical patent/JP2013529343A/ja
Application granted granted Critical
Publication of JP5661176B2 publication Critical patent/JP5661176B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2097Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements maintaining the standby controller/processing unit updated
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2038Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with a single idle spare processing component
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2046Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant where the redundant components share persistent storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/815Virtual

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Retry When Errors Occur (AREA)
  • Hardware Redundancy (AREA)

Description

本発明は、遠隔仮想計算機全体にわたって耐故障チェックポインティングを達成するための方法及びシステムに関する。
[0001]大規模な企業がそのデータセンターの基礎として仮想化プラットフォームを採用し続けるにつれて、仮想計算機(VM)の耐故障性は、仮想化プラットフォーム・プロバイダによって提供されるますます重要になる特徴になった。仮想化されたデータセンターの単一ホスト・サーバが複数のVMをサポートすることができるので、そのホスト・サーバの故障は、故障したホスト・サーバで作動するいろいろなVMにより提供された多数のサービスを停止させる場合がある。従って、企業がそのサービスの品質を維持できるように、仮想化プラットフォームは、異なるホスト・サーバで故障したVMを急速に復活させる機構を提供する必要がある。
[0002]現在では、主VMに耐故障性を施すことは、通常は、主仮想計算機のサーバと異なる「故障領域」にあるサーバで作動するバックアップVMを設けることにより達成される。故障領域は、通常、故障領域におけるホスト・サーバの1つの故障により、故障領域におけるホスト・サーバのより高い確率の故障に結果としてなる多くの指定された属性及び/又は特徴を共有する単独のデータセンタ(又は複数のデータセンタ)の一組のホスト・サーバとして表現することができる。そのデータセンター故障領域を規定するために企業により利用される属性及び/又は特徴は、災害のタイプ及び企業が達成することを望む回復のレベルに依存する。例えば、企業は、ホスト・サーバの物理的近接度(記憶ラック位置、地理的な位置、その他)、共有ハードウェア(ネットワーク化された記憶装置、電源、物理的な接続、その他)へのこの種のサーバの依存、又はソフトウェア技術(共有ファイルシステム、その他)などに基づいてその故障領域を規定することを選択できる。よく構成された故障領域は、1つの故障領域におけるVMの故障の異なる故障領域における別のVMの故障との相関性を最小化する。
米国特許出願第12/259,762号明細書 米国特許第7,529,897号明細書
[0003]VM耐故障性は、決定性再生、チェックポインティング、又は2つの混成を使用して設けることができて、それは2008年8月28日に出願された特許文献1に開示され、それの内容全体を本願明細書に引用したものとする。再生技術については、主VMの命令ストリーム(例えば、主VMの命令ストリーム内の非決定性事象)の基本的部分は、リアルタイムで(例えば、主VMのハイパーバイザ層又は仮想計算機モニタ構成要素によって、)に捕獲されて、同期方法で主VMの実行を「再生する」ために、バックアップVM(例えば、異なる故障領域におそらくある)に送信される。主VMが故障する場合は、バックアップVMは識別可能な時間損失なしで引き継ぐことができる。再生技術が速い回復時間を有する強力な耐故障性解決案を提供する一方、例えば、SMP(対称的マルチプロセシング)アーキテクチャを複数の仮想CPUでサポートする仮想計算機の場合のように、非決定性事象が命令ストリーム内で確認するためにより頻度が高いか、又はより困難になるとき、それはより実現性がない。
[0004]再生技術とは対照的に、チェックポインティング・ベースの耐故障性技術は、SMPベースの仮想計算機を含む様々な仮想アーキテクチャをサポートするそれらの機能においてより柔軟性がある。仮想計算機システムにおいて、チェックポイントを生成して使用する技術は、特許文献2に開示されて、それの内容全体を本願明細書に引用したものとする。チェックポインティングの場合は、主VMは、前のチェックポイントから主VMの状態になされるいかなる変更も決定するために、実行の過程(各々「チェックポイント」と呼ばれるこの種のスタン期間)中に、周期的にスタンされる(即ち、実行は一時的に停止する)。一旦この種の変更が決定されると、それは、変更をその現行状態に併合することが可能であるバックアップVMに送信され、それによってチェックポイント時に主VMの正確な状態を反映する。主VMの故障の通知だけに応じて、バックアップVMは、主VMの格納された状態をそれ自体の実行状態にロードすることによって動作し始める。しかしながら、送信された状態のチェックポイント情報の潜在的に大きいサイズ(例えば、数ギガバイト)及びこの種の状態をバックアップVMに送信するために周期的チェックポイントで主VMをスタンする必要のため、スタン期間がネットワーク帯域幅限界によって長くならないように、バックアップVMは十分に高い帯域幅で主VMにネットワーク化されなければならない。この制約は、現在、チェックポイント情報を効果的に送信するために、主VMから地理的に遠く離れている位置に、又はバックアップVMが不十分な帯域幅性能を有するネットワーク接続を使用して主VMに接続している方法でバックアップVMの位置を決める性能を制限する。
[0005]本発明の1つ以上の実施形態によって、チェックポインティング情報を受信するバックアップVMが主VMから遠隔に位置することが可能である。この種の実施形態では、効果的な方法でチェックポイント情報のバックアップVMへの伝送を管理するために、主要なVMとバックアップVMの間に中間コンピュータシステムを位置させる。中間コンピュータシステムは、高帯域幅接続を通じて主VMにネットワーク化されるが、より低い帯域幅接続を通じてバックアップVMにネットワーク化される。各チェックポイントの間、中間コンピュータシステムは、前のチェックポイント時から変更された主要なVMの状態のメモリページに対応する主VMから更新されたデータを受信して、格納する。中間コンピュータシステムは、主VMによって最も長い間変更されていないメモリページに対応する更新されたデータを継続的に識別して、この種の更新されたデータをバックアップVMに低帯域幅接続を通じて送信する。このようにして、この種のメモリページは将来再び更新される可能性が大きいので、中間コンピュータシステムは、低帯域幅接続の帯域幅容量を節約して、より最近変更されたメモリページに対応する更新されたデータを抑制する。一実施形態において、中間コンピュータシステムの故障が主VMの故障と相関しないように、中間コンピュータシステムは主VMの故障領域とは別の故障領域にある。
[0006]本発明の実施形態は、中間コンピュータシステムによって主コンピュータシステムの更新された状態をバックアップ・コンピュータシステムに送信する方法を提供し、そこにおいて、バックアップ・コンピュータシステムは、チェックポイントで中間コンピュータシステムにより受信された主コンピュータシステムの変更された状態のタイムリーな伝送をサポートしない低帯域幅接続を通じて中間コンピュータシステムにネットワーク化される。この方法は、中間コンピュータシステムにおいて高帯域幅接続を通じて主コンピュータシステムからチェックポイント情報パケットを周期的に受信するステップと、中間コンピュータシステムに格納された主コンピュータシステムのメモリページの各コピーが、主コンピュータシステムによって最も長い間更新されていなくて、バックアップ・コンピュータシステムに送信されなかったメモリページのコピーであるかどうか継続的に決定するステップと、最も長い間更新されていないメモリページであると決定した各メモリページの各コピーの更新されたデータを低帯域幅接続を通じてバックアップ・コンピュータシステムに送信するステップとを含む。この方法では、中間コンピュータシステムで受信される各チェックポイント情報パケットは、前に受信されたチェックポイント情報パケット以来変更された主コンピュータシステムのメモリページに対応する更新されたデータを含む。
[0007]中間コンピュータシステムを使用する主及びバックアップ仮想計算機のためのネットワーク・アーキテクチャの実施形態のブロック図を示す。 [0008]中間コンピュータシステムを使用する主及びバックアップ仮想計算機のためのネットワーク・アーキテクチャの第2実施形態のブロック図を示す。 [0009]中間コンピュータシステムを使用して主仮想計算機の更新された状態をバックアップ仮想計算機に送信するためのフロー図を示す。 [0010]中間コンピュータシステムでコールド・メモリページを送信するためのデータ構造を示す。
[0011]図1Aは、中間コンピュータシステムを使用する主及びバックアップ仮想計算機のためのネットワーク・アーキテクチャの実施形態のブロック図を示す。主VM100は、データセンターの故障領域110の主サーバ105にある。仮想計算機をサポートする主サーバ105の1つの実施例は、VMwareのESX(商標)ハイパーバイザ製品を走らせるサーバであり、それはカリフォルニア州パロアルトのVMware社から市販されている(但し、いかなる仮想化技術も、Xen(登録商標)、Microsoft(登録商標) Hyper―Vなどを含み、本願明細書において教示と整合して用いられることが可能であると認識しなければならない)。高帯域幅接続120がサーバ105と中間システム115の間に配置されることができるように、中間コンピュータシステム115(以下、「中間システム」)はサーバ105の十分近くに位置している。高帯域幅接続120は、更に後述するように、主VMの100の実行の間に主VM100と中間システム115の間のチェックポイント情報の伝送をサポートするために充分な帯域幅性能を提供する。例えば、一実施形態において、高帯域幅接続120は、中間システム115が1秒当たり50〜100回の割合で主VM100からチェックポイント情報を効果的に受信するために、充分な帯域幅性能を提供し、チェックポイント情報の各セットは複数のギガバイトのデータを潜在的に含む。中間システム115が、高帯域幅接続120を可能にするために主VM100と物理的に充分近くにあるにもかかわらず、中間システム115はまた主VM100の故障領域110と異なる故障領域125にあり、その結果、主VM100(又はサーバ105)の故障は中間システム115の故障と相関していない(又は有意な相関性を有しない)。図1Aに更に示すように、バックアップVM130は、故障領域125を中間システム115と共有するバックアップ・サーバ135にある。中間システム115とバックアップVM130の間の低帯域幅接続140は、中間システム115及び/又は主VM100と地理的に遠く離れた位置にバックアップVM130を位置させる柔軟性を提供する。
[0012]図IBは、中間コンピュータシステムを使用する主及びバックアップ仮想計算機のためのネットワーク・アーキテクチャの第2実施形態のブロック図を示す。図IBに示すように、中間システム115及びバックアップ・サーバ135のバックアップVM130は、それぞれ、異なる故障領域125及び145にある。例えば、一実施形態において、主VM100は、故障領域110も含むブレード主サーバ105にある。中間システム115は、ブレード主サーバ105と同じシャシーを利用する第2ブレードサーバであるが、異なる故障領域125を含む。中間システム115は、(例えば、ブレード主サーバ105及び中間システム115は、それぞれ、異なる故障領域110及び125に結果としてなる異なる故障特徴を呈するように、)シャシーの底部に配置されるブレード主サーバ105に影響を及ぼすことがある水害から守るために、例えば、シャシーの上に配置することができる。高帯域幅接続120は、この種の実施形態において、シャシーのPCI―eバックプレーンによって容易になる。バックアップ・サーバ135のバックアップVM130は、本実施形態において地理的に遠隔位置にあることがありえる。例えば、主VM100及び中間システム115がカリフォルニア州パロアルトのデータセンターに位置する場合は、バックアップVM130は、マサチューセッツ州ボストンの異なるデータセンターに位置することがありえる。他の実施形態では、中間システム115は、管理の強化のために、変更されたNIC若しくはルータ又は他のエッジデバイスとして、例えば、サブネットの端に位置することがありえる。あるいは、中間システム115の機能は、主サーバ105自体内で実施されて、例えば、主サーバ105のプロセッサ又はマザーボードの比較的より信頼性が高い部分にセットされることができる。
[0013]図2は、中間コンピュータシステムを使用して主要な仮想計算機の更新された状態をバックアップ仮想計算機に送信するためのフロー図を示す。一実施形態において、主VM100のホストを務める主サーバ105は、チェックポインティング・モジュール(又は他のチェックポインティング機能)をそのハイパーバイザに含む。更に以下に詳述されるように、この種のチェックポインティング・モジュールは、チェックポイント情報パケットを高帯域幅接続120を通じて各チェックポイントの中間システム115へ送信する。各チェックポイント情報パケットは、前に送信されたチェックポイント情報パケットからの主VM100のメモリ(及びエミュレートされた装置、特定の実施形態において、)の状態の変化を反映する情報を含む。一実施形態において、主サーバ105のハイパーバイザによるチェックポイント情報パケットの伝送は、例えば、約1秒当たり50〜100回の割合で行われる。
[0014]ステップ200において、主サーバ105のハイパーバイザは主VM100のインスタンスを生成する。ステップ202において、主サーバ105のハイパーバイザは、主VM100の状態の第1のスナップショットを撮って、スナップショットを中間システム115に送信する。第1のスナップショットは、主VM100のメモリの状態(及び、特定の実施形態では、エミュレートされた装置の状態)を形成する複数のメモリページから成る。例えば、一実施形態において、各メモリページは、4GBの仮想RAMで構成される主VM100が約百万のメモリページの第1のスナップショット・サイズを有するように、4KBのサイズを有する。VMwareのESX(商標)仮想化プラットフォームを利用する実施形態において、VMwareのVMotion技術は、この種の第1のスナップショットを作成して、送信するために用いることができる。ステップ204において、中間システム115は第1のスナップショットを受信して、格納する。ステップ206において、主VM100のハイパーバイザはタイマーを開始して、チェックポイント情報パケットを生成するために、チェックポイントの開始を周期的にトリガする(例えば、1秒当たり50〜100回など)。タイマーの満了の前に、ステップ208で、ハイパーバイザは、主VM100により生成されるありとあらゆるアウトバウンド・ネットワーク・パケットを遅延させて、キューに入れる。
[0015]一旦タイマーがステップ210において満了すると、ハイパーバイザは、ステップ212で主VM100をスタンする(即ち、その実行状態をフリーズする)ことによって、チェックポイントを開始して、スタンされた主VM100の現在の状態を反映するチェックポイント情報パケットを生成して、ステップ214でチェックポイント情報パケットを中間システム115に送信する。一実施形態において、チェックポイント情報パケットは、前に送信されたチェックポイント情報パケット以来(又は第1のチェックポイント情報パケットの第1のスナップショット以来)主VM100の実行中に更新された第1のスナップショットのメモリページ(又はその部分)のサブセットを含む。様々な技術が、例えば、メモリ仮想化のために使用されるページテーブル及びページ・ディレクトリのハードウェア制御ダーティ・ビットによって、この種の変更ページを検出するための主サーバ105で利用可能であるハードウェアを利用することを含み、主VM100の更新されたメモリページを識別するために利用できると認識しなければならない。ステップ216において、中間システム115は送信されたチェックポイント情報パケットをうまく受信して、ステップ218において、成功した受信の肯定応答を主サーバ105へ返信する。一旦主サーバ105のハイパーバイザが送信された肯定応答をステップ220において受信すると、ハイパーバイザはステップ222において、主VM100の実行を再開して、ステップ208へ戻る前に、ステップ224において、すべてのキューに入れられたネットワーク・パケットを(ステップ208から)解放する。ステップ208においてアウトバウンド・ネットワーク・パケットを遅延させて、キューに入れて、ステップ220においてチェックポイント情報パケットの受領についての中間システム115から肯定応答を受信した後にだけそれらを解放することは、主VM100の故障の状態でバックアップ・サーバ135による主VM100の回復が、外部の構成要素とのネットワーク通信(即ち、受取人を混乱させずに回復された状態にしてから後にアウトバウンド・ネットワーク・パケットを再送信し、それが予想しているインバウンド・ネットワーク・パケットを再受信するなど)を適切に再開できる主VM100の状態に基づくことを確実にする。
[0016]一方、ステップ226で、中間システム115は、ステップ216において受信したチェックポイント情報パケットの更新されたメモリページ(又はその部分)で主VM100の状態のその格納されたスナップショットを更新する。ステップ216及び226におけるチェックポイント情報パケットのその連続受信及び主VM100の状態のその格納されたスナップショットの更新と同時に、中間システム115はまた、ステップ228において主VM100によって最近又はごく最近変更されたそれらの受信したメモリページを継続的に(例えば、別の実行方法又はスレッドなどによって)決定して、バックアップ・サーバ135に送信する(この種の最近又はごく最近変更されたメモリページは本明細書において「コールド」メモリページと称される)。ステップ230において、バックアップ・サーバ135のハイパーバイザは、これらのコールド・メモリページを受信して、ステップ232において、バックアップVM130のための主VM100のその復元された状態にコールド・メモリページを組み込む。中間システム115が、ステップ228において、「コールド」メモリページをバックアップ・サーバ135に送信するだけであるので、バックアップVM130により維持される主VM100の復元された状態が、主VM100のいかなる特定の過去の「チェックポイントされた」状態の完成された状態も必ずしも反映できるというわけではないと認識しなければならない。即ち、バックアップ・サーバ135に特定のチェックポイントで主VM100の状態を反映するメモリページの完全なセットを提供するために必要な場合であっても、中間システム115によって、「より新しい(hotter)」(即ち、より最近変更された)とみなされるメモリページは引き止められて、バックアップ・サーバ135に送信されない。この種のより新しいメモリページを引き止めることは、バックアップVM130が主VM100の故障に因っていかなる措置をもとることを必要とする前に、より新しいメモリページが再び変更されるという仮定に基づいて、中間システム115とバックアップ・サーバ135の間の低帯域幅接続140の制限された帯域幅性能を保存する。
[0017]ステップ234において、中間システム115が主VM100の故障を検出する(又はさもなければそれについて通知される)場合は、ステップ236で、中間システム115はバックアップ・サーバ135に主VM100の故障を通知して、主VM100のその格納されたスナップショットのいかなる未送付のメモリページもバックアップ・サーバ135に送信する。ステップ238において、バックアップ・サーバ135は、主VM100の故障の通知及びメモリページを受信して、ステップ240において、受信したメモリページを主VM100のためのその復元された状態に組み込んで、バックアップVM130として主VM100の実行を再開する。
[0018]図3は、中間コンピュータシステムでコールド・メモリページを送信するためのデータ構造を示す。一実施形態において、中間システム115は、仮想化プラットフォームを実行する主サーバ105及びバックアップ・サーバ135とは対照的に、主サーバ105からチェックポイント情報パケットを受信して、データ構造300で維持される情報に基づくようにメモリページをバックアップ・サーバ135に送信する、1つ以上のプロセス(例えば、又はスレッドなど)を実行する非仮想化されたコンピュータシステムである(但し、中間システム115が別の実施形態の仮想計算機においても実施されることができると認識しなければならない)。図3に示すように、データ構造300は、主VM100の第1のスナップショットを含むメモリページ0〜N―1のうちの1つにそれぞれ対応するエントリの配列である(例えば、図2のステップ202参照)。この種の各エントリは、主サーバ105から受信したメモリページのコピーを格納する中間システム115のメモリの位置に対する参照フィールド302(例えば、アドレス・ポインタ)及び中間システム115がメモリページのその現行コピーを受信したチェックポイントを示すチェックポイント数フィールド304(時期又は年代記号として表わされる)を含む。
[0019]受信スレッド306と呼ばれるスレッドは、主サーバ105から(例えば、ステップ214の各次のチェックポイント情報パケットからと同様にステップ202の第1のスナップショットから)の主VM100のメモリページの受信を管理する。ステップ308において、高帯域幅接続120経由で主サーバ105から受信されるメモリページごとに、受信スレッド306は中間システム115のメモリにメモリページを格納する。ステップ310において、受信スレッド306は、格納されたメモリページの記憶アドレスを受信したメモリページに対応するデータ構造300のエントリの参照フィールド302へ挿入する。ステップ312において、受信スレッド306は現行のチェックポイント数でエントリのチェックポイント数フィールド304を更新する。
[0020]送信スレッド314と呼ばれる同時に実行中のスレッドは、図2のステップ228で説明したように(低帯域幅接続140を経由して)「コールド」メモリページ(例えば、最も長い間変更されていない)のバックアップ・サーバ135への送信を管理する。送信スレッド314は、送信スレッド314がその実行の間に作用しているデータ構造300の現行のエントリを示す現行の配列インデックス318と同様に、送信スレッド314が現在作用しているチェックポイント数を示すチェックポイント変数316を維持する。チェックポイント変数316はゼロ(例えば、この種のエントリが図2のステップ204において受信される第1のスナップショットから受信されるメモリページに対応するとき、データ構造300の各エントリのチェックポイント数フィールド304の値)まで初期化されて、現行の配列インデックス318はデータ構造300の第1のエントリのインデックス(例えば、ゼロのインデックス)に初期化される。送信スレッド314は、データ構造300の第1のエントリ(例えば、メモリページ0のエントリ)で始まり、そしてこの種のエントリのチェックポイント数フィールド304がステップ320においてチェックポイント変数316に合致する場合、ステップ322において、送信スレッド314は、エントリの参照フィールド302において参照されるメモリページ(即ち、この種のメモリページは「コールド」メモリページである)を低帯域幅接続140を経由してバックアップ・サーバ135へ送信し始める。ステップ324において、メモリページの成功した受信についてのバックアップ・サーバ135からの肯定応答を受信すると即座に、送信スレッド314は、現行の配列インデックス318がデータ構造300の最後のエントリのインデックスを表すかどうか決定する。送信スレッド314が、現行の配列インデックス318がデータ構造300の最後のエントリのインデックスを表すと決定する場合は、ステップ326において、送信スレッド314はチェックポイント変数316を増やし、現行の配列インデックス318をデータ構造300の第1のエントリのインデックス(例えば、ゼロのインデックス)にリセットし、そしてデータ構造300の始めに戻る。さもなければ、送信スレッド314は現行の配列インデックス318を増やして、ステップ328においてデータ構造300の次のエントリへ移動する。
[0021]ステップ330において、送信スレッド314が主VM100の故障の通知を受信する場合は、ステップ332において、送信スレッド314はデータ構造300を横断して、(a)チェックポイント数304がチェックポイント変数316より大きい、又は(b)チェックポイント数304がチェックポイント変数316に等しくて、インデックスが現行の配列インデックス318以上である各エントリで参照されるメモリページ(即ち、メモリページがバックアップ・サーバ135にまだ送信されなかったことを示す)を送信する。一実施形態において、ステップ330において主VM100の故障の通知を受信すると即座に、送信スレッド314は、例えば、より新しいメモリページがよりコールドなメモリページページよりバックアップVM130の次の実行の間にアクセスされそうであるという推定の下で、バックアップVM130がスナップショットのすべての未送付のメモリページを受信する前に実行を始めることを可能にする努力において、それらのチェックポイント数フィールド304で最も高い値を有するそれらのメモリページを送信することによって、より新しいメモリページを最初に送信し始める。
[0022]送信スレッド314がデータ構造を横断して、受信スレッド308がメモリページを高帯域接続120を通じて各チェックポイントで受信して更新する速度より著しく遅いより低い帯域幅接続140による速度でコールド・メモリページをバックアップ・サーバ135に送信できると認識しなければならない。このように、チェックポイント変数316の値は、受信スレッド306により受信されるチェックポイント情報パケットの実際の現行のチェックポイント数より小さいままである。より新しいメモリページを保留して、コールド・メモリページを送信することによって、中間システム115は、このように、低帯域幅接続140の帯域幅容量が、近い将来に更新されたデータによって上書きされるおそれがあるメモリページの伝送に浪費される(即ち、受信されるのより少ないメモリページが中間システム115により送信される)という可能性を減らす。
[0023]図3で説明したデータ構造300及び技術は単に例示であり、そして様々な代替のデータ構造及び技術が、メモリページが「コールド」であるかどうか決定する(即ち、どのように「コールド」が規定また評価できるかについての異なる概念によって)ために利用できると認識しなければならない。例えば、図3の代替の実施形態は、エントリに対応するメモリページがバックアップVM130にすでに送信されたかどうかを示すデータ構造300の各エントリにおける伝送ビットを含むことができる。別の代替の実施形態は、主VMのスナップショットのメモリページによって指標を付けられるエントリの配列を利用し(データ構造300と同様)、そこにおいて配列の各エントリは、格納されたメモリページへの参照(参照フィールド302と同様)及びカウンタ値を含む。このような実施形態では、受信チェックポイント情報パケットが対応する更新されたメモリページを含むたびに、受信スレッドはエントリのカウンタ値を増やす。同時に、送信スレッドは配列を絶えず繰り返して、予め指定された小さいカウンタ値を有するエントリに対応するメモリページを送信する。この種の実施形態は、「コールド」を規定するために、最も長い間変更されていないよりはむしろ変更頻度が最も低いメモリページの概念を利用する。更に別の代替の実施形態は、この種のメモリページが更新されたチェックポイントに対応するメモリページごとにチェックポイント数のリストを維持するデータ構造を利用する。この種のデータ構造は、さまざまな方法で、「コールド」メモリページ、例えば、チェックポイント数の最も小さいリストを有するメモリページ、又はチェックポイントの連続数に対して不変のままだった(例えば、変更頻度が最も低い、又は最も長い間変更されていない、その他)メモリページを特定するか又は規定するために柔軟性を提供する。
[0024]さまざまな変更態様及び改変が、添付の請求項に記載したように本発明のより広い精神と範囲を逸脱せずに、本願明細書に記載されている特定の実施形態になされることができると認識しなければならない。例えば、前述の説明が、主サーバ105及び中間システム115が完全なメモリページを送信する(この種のメモリページが変更された場合)実施形態に集中したが、代替の実施形態が、それらの伝送の前に主サーバ105及び中間システム115のどちらか又は両方でメモリページに違う技術又は他の圧縮技術を適用できると認識しなければならない。この種の代替の実施形態は、このように完全なメモリページ自体よりもむしろメモリページに対応する更新されたデータだけを送信できる。同様に、前述の実施形態が単一の中間システム115について述べたけれども、実施形態が、異なる故障領域において、可能な限りの複数の中間システムを取り入れることができて、その結果、すべての中間システムの故障の確率はごくわずかであると認識しなければならない。加えて、前述の実施形態が、主及びバックアップVMを使用して概説されたが、非仮想化システムを含む、他の主及びバックアップ・コンピュータシステムは、本願明細書における教示と整合して用いることができる。
[0025]本願明細書において記載されているさまざまな実施形態は、コンピュータシステムに格納されるデータを含むさまざまなコンピュータ実行動作を使用できる。例えば、これらの動作は通常、必然的にではなく、物理的な量の物理的操作を必要とすることがあり、これらの量は電気又は磁気信号という形をとることができて、それら、又はそれらの表現は格納され、転送され、結合され、比較されるか、又は操作されうる。更に、この種の操作は、しばしば、生成、識別、決定、又は比較などの用語で呼ばれる。本発明の1つ以上の実施形態の一部を形成する本願明細書に記載したいかなる動作も、有用な機械動作でありえる。加えて、本発明の1つ以上の実施形態は、これらの動作を実行する装置又は機器にも関する。機器は特定の必要な目的のために特別に構成されることができるか、あるいはそれはコンピュータに格納されたコンピュータプログラムによって選択的に作動するか又は構成される多目的コンピュータでもよい。特に、さまざまな多目的機械が本願明細書の教示に従って書かれたコンピュータプログラムを用いて使用できるか、又は必要な動作を実行するためにより専門の機器を構成することがより便利な場合がある。
[0026]本願明細書に記載されているさまざまな実施形態は、携帯用装置、マイクロプロセッサシステム、マイクロプロセッサ・ベースであるかプログラム可能な家電、ミニコンピュータ、メインフレームコンピュータなどを含む他のコンピュータシステム構成を用いて実施できる。
[0027]本発明の1つ以上の実施形態は、1つ以上のコンピュータプログラムとして、又は1つ以上の計算機可読媒体で実現される1つ以上のコンピュータプログラム・モジュールとして実施されることができる。用語「計算機可読媒体」は、コンピュータシステムにその後で入力されることができるデータを格納できるいかなるデータ記憶装置をも指し、計算機可読媒体は、コンピュータプログラムがコンピュータによって読み込まれることを可能にする方法でそれを実現するために、いかなる既存又はその後開発された技術に基づいてもよい。計算機可読媒体の例は、ハード・ドライブ、ネットワーク接続ストレージ(NAS)、読出し専用メモリ、ランダムアクセス・メモリ(例えば、フラッシュメモリ装置)、CD(コンパクトディスク)CD―ROM、CD―R、又はCD―RW、DVD(デジタル多用途ディスク)、磁気テープ、ならびに他の光学及び非光学データ記憶装置を含む。計算機可読コードが分散方式で格納されて、実行されるように、計算機可読媒体はネットワーク結合コンピュータシステムに分散されることもできる。
[0028]本発明の1つ以上の実施形態が明確に理解するためにいくぶん詳細に説明されたけれども、特定の改変と変更態様が請求項の範囲内でなされうることは明らかである。したがって、記載の実施形態は例示的であって、限定的ではないと考えるべきであり、そして請求項の範囲は本願明細書に示された詳細に限られず、請求項の範囲及び相当の中で変更できる。請求項において、明確に請求項において述べられない限り、要素及び/又はステップは動作のいかなる特定の順序も意味しない。
[0029]複数の例は、単一の例として本願明細書に記載されている構成要素、動作、又は構造のために提供されることができる。最後に、さまざまな構成要素、動作、及びデータストアの間の境界はいくぶん任意であり、そして特定の動作は特定の例証を示す構成との関連で例示される。機能の他の割当ては構想されて、本発明の範囲に入ることができる。一般に、例示的な構成で別々の構成要素として提示される構造及び機能は、複合された構造又は構成要素として実現できる。同様に、単一の構成要素として提示される構造及び機能は別々の構成要素として実現できる。これらの、そしてまた他の変形、変更、追加、及び改良は添付の請求の範囲内に入ることができる。

Claims (20)

  1. 主コンピュータシステムの更新された状態を中間コンピュータシステムを通じてバックアップ・コンピュータシステムに送信する方法において、前記バックアップ・コンピュータシステムは、チェックポイントで前記中間コンピュータシステムにより受信された前記主コンピュータシステムの変更された状態のタイムリーな伝送をサポートしない低帯域幅接続を通じて前記中間コンピュータシステムにネットワーク化される方法であって、
    前記中間コンピュータシステムにおいて、高帯域幅接続を通じて前記主コンピュータシステムからチェックポイント情報パケットを周期的に受信するステップであって、各チェックポイント情報パケットは、前に受信されたチェックポイント情報パケット以来変更された前記主コンピュータシステムのメモリページに対応する更新されたデータを含むステップと、
    前記中間コンピュータシステムに格納された前記主コンピュータシステムのメモリページの各コピーが、前記主コンピュータシステムによって最も長い間更新されていなくて、前記バックアップ・コンピュータシステムに送信されなかったメモリページのコピーであるかどうか継続的に決定するステップと、
    最も長い間更新されていないメモリページであると決定された各メモリページの各コピーの更新されたデータを前記低帯域幅接続を通じて前記バックアップ・コンピュータシステムに送信するステップと、
    を含む方法。
  2. 前記主コンピュータシステムの故障通知を受信するステップと、
    前記中間コンピュータシステムに格納された各未送付のメモリページに対応する更新されたデータを前記低帯域幅接続を通じて前記バックアップ・コンピュータシステムに送信するステップと、
    を更に含む請求項1記載の方法。
  3. 前記主コンピュータシステムによって最後に変更された未送付のメモリページに対応する更新されたデータが最初に送信される請求項2記載の方法。
  4. 前記主コンピュータシステムが第1の故障領域にあり、そして前記中間コンピュータシステムが第2の故障領域にある請求項1記載の方法。
  5. 前記周期的に受信するステップが、前記中間コンピュータシステムで動作する第1のスレッドにより実行され、そして前記継続的に決定及び送信するステップが、前記中間コンピュータシステムで動作する第2のスレッドにより実行される請求項1記載の方法。
  6. 前記主コンピュータシステムが主仮想計算機のホストを務めるサーバであり、そして前記バックアップ・コンピュータシステムがバックアップ仮想計算機のホストを務める第2のサーバである請求項1記載の方法。
  7. 前記中間コンピュータシステムが前記主コンピュータシステムの各メモリページに対応するエントリの配列を維持し、前記配列の各エントリは、前記中間コンピュータシステムに格納された前記対応するメモリページのコピーへの参照及び前記コピーが前記中間コンピュータシステムにより受信されたチェックポイントを識別するチェックポイント数を含む請求項1記載の方法。
  8. 前記継続的に決定するステップが、
    前記配列の前記エントリを横断して、現行のチェックポイント変数を前記配列の各エントリの前記チェックポイント数と比較するステップと、
    前記エントリの前記チェックポイント数が前記現行のチェックポイント変数に等しい場合は、エントリの前記中間コンピュータシステムに格納された前記対応するメモリページの前記コピーの更新されたデータを送信するステップと、
    前記配列の最後のエントリを分析した後に前記現行のチェックポイント変数を増やすステップと、
    前記配列の始まりに戻るステップと、
    を更に含む請求項7記載の方法。
  9. 中間コンピュータシステムのプロセッサにより実行されるときに、主コンピュータシステムの更新された状態をバックアップ・コンピュータシステムに送信する命令を含むコンピュータ可読記憶媒体であって、前記バックアップ・コンピュータシステムは、
    前記中間コンピュータシステムにおいて、高帯域幅接続を通じて前記主コンピュータシステムからチェックポイント情報パケットを周期的に受信するステップであって、各チェックポイント情報パケットは、前に受信されたチェックポイント情報パケット以来変更された前記主コンピュータシステムのメモリページに対応する更新されたデータを含むステップと、
    前記中間コンピュータシステムに格納された前記主コンピュータシステムのメモリページの各コピーが、前記主コンピュータシステムによって最も長い間更新されていなくて、前記バックアップ・コンピュータシステムに送信されなかったメモリページのコピーであるかどうか継続的に決定するステップと、
    最も長い間更新されていないメモリページであると決定した各メモリページの各コピーの更新されたデータを低帯域幅接続を通じて前記バックアップ・コンピュータシステムに送信するステップと、
    を実行することによって、チェックポイントで前記中間コンピュータシステムにより受信される前記主コンピュータシステムの変更された状態のタイムリーな伝送をサポートしない前記低帯域幅接続を通じて前記中間コンピュータシステムにネットワーク化されるコンピュータ可読記憶媒体。
  10. 中間コンピュータシステムの前記プロセッサが、
    前記主コンピュータシステムの故障通知を受信するステップと、
    前記中間コンピュータシステムに格納された各未送付のメモリページに対応する更新されたデータを前記低帯域幅接続を通じて前記バックアップ・コンピュータシステムに送信するステップと、
    を更に実行する請求項9記載のコンピュータ可読記憶媒体。
  11. 前記主コンピュータシステムによって最後に変更された未送付のメモリページに対応する更新されたデータが最初に送信される請求項10記載のコンピュータ可読記憶媒体。

  12. 前記主コンピュータシステムが第1の故障領域にあり、そして前記中間コンピュータシステムが第2の故障領域にある請求項9記載のコンピュータ可読記憶媒体。
  13. 前記周期的に受信するステップが、前記中間コンピュータシステムで動作する第1のスレッドにより実行され、そして前記継続的に決定及び送信するステップが、前記中間コンピュータシステムで動作する第2のスレッドにより実行される請求項9記載のコンピュータ可読記憶媒体。
  14. 前記主コンピュータシステムが主仮想計算機のホストを務めるサーバであり、そして前記バックアップ・コンピュータシステムがバックアップ仮想計算機のホストを務める第2のサーバである請求項9記載のコンピュータ可読記憶媒体。
  15. 前記中間コンピュータシステムが前記主コンピュータシステムの各メモリページに対応するエントリの配列を維持し、前記配列の各エントリは、前記中間コンピュータシステムに格納された前記対応するメモリページのコピーへの参照及び前記コピーが前記中間コンピュータシステムにより受信されたチェックポイントを識別するチェックポイント数を含む請求項9記載のコンピュータ可読記憶媒体。
  16. 前記継続的に決定するステップが、
    前記配列の前記エントリを横断して、現行のチェックポイント変数を前記配列の各エントリの前記チェックポイント数と比較するステップと、
    前記エントリの前記チェックポイント数が前記現行のチェックポイント変数に等しい場合は、エントリの前記中間コンピュータシステムに格納された前記対応するメモリページの前記コピーの更新されたデータを送信するステップと、
    前記配列の最後のエントリを分析した後に前記現行のチェックポイント変数を増やすステップと、
    前記配列の始まりに戻るステップと、
    を更に含む請求項15記載のコンピュータ可読記憶媒体。
  17. 主コンピュータシステムの更新された状態をバックアップ・コンピュータシステムに送信するように構成されるコンピュータシステムであって、
    第1の故障領域にあり、そして前に送信されたチェックポイント情報パケット以来変更された該主コンピュータシステムのメモリページに対応する更新されたデータを含むチェックポイント情報パケットを送信するように構成される該主コンピュータシステムと、
    第2の故障領域にあり、そして高帯域幅接続を通じて前記主コンピュータシステムに接続している中間コンピュータシステムであって、前記送信されたチェックポイント情報パケットを受信して、該中間コンピュータシステムに格納された最も長い間変更されていないメモリページに対応する更新されたデータを低帯域幅接続を通じてバックアップ・コンピュータシステムに送信するように構成される中間コンピュータシステムと、
    を備えるコンピュータシステム。
  18. 前記中間コンピュータシステムが、前記主コンピュータシステムの故障通知を受信して、前記中間コンピュータシステムに格納された各未送付のメモリページに対応する更新されたデータを前記低帯域幅接続を通じて前記バックアップ・コンピュータシステムに送信するように更に構成される請求項17記載のコンピュータシステム。
  19. 前記主コンピュータシステムが主仮想計算機のホストを務めるサーバであり、そして前記バックアップ・コンピュータシステムがバックアップ仮想計算機のホストを務める第2のサーバである請求項18記載のコンピュータシステム。
  20. 前記中間コンピュータシステムが前記主コンピュータシステムの各メモリページに対応するエントリの配列を維持し、前記配列の各エントリは、前記中間コンピュータシステムに格納された前記対応するメモリページのコピーへの参照及び前記コピーが前記中間コンピュータシステムにより受信されたチェックポイントを識別するチェックポイント数を含む請求項17記載のコンピュータシステム。
JP2013511338A 2010-05-18 2011-05-18 遠隔仮想計算機全体にわたって耐故障チェックポインティングを達成するための方法及びシステム Active JP5661176B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/781,875 US8171338B2 (en) 2010-05-18 2010-05-18 Method and system for enabling checkpointing fault tolerance across remote virtual machines
US12/781,875 2010-05-18
PCT/US2011/037032 WO2011146645A1 (en) 2010-05-18 2011-05-18 Method and system for achieving fault tolerant checkpointing across remote virtual machines

Publications (2)

Publication Number Publication Date
JP2013529343A JP2013529343A (ja) 2013-07-18
JP5661176B2 true JP5661176B2 (ja) 2015-01-28

Family

ID=44626777

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013511338A Active JP5661176B2 (ja) 2010-05-18 2011-05-18 遠隔仮想計算機全体にわたって耐故障チェックポインティングを達成するための方法及びシステム

Country Status (5)

Country Link
US (1) US8171338B2 (ja)
EP (1) EP2572279B1 (ja)
JP (1) JP5661176B2 (ja)
AU (1) AU2011255654B2 (ja)
WO (1) WO2011146645A1 (ja)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8898509B2 (en) 2010-05-18 2014-11-25 Vmware, Inc. Policy-based checkpointing fault tolerance across remote virtual machines
US8898518B2 (en) 2010-05-18 2014-11-25 Vmware, Inc. Method and system for enabling checkpointing fault tolerance across remote virtual machines
US8898508B2 (en) 2010-05-18 2014-11-25 Vmware, Inc. Method and system for enabling checkpointing fault tolerance across remote virtual machines
US8782434B1 (en) 2010-07-15 2014-07-15 The Research Foundation For The State University Of New York System and method for validating program execution at run-time
US8103906B1 (en) * 2010-10-01 2012-01-24 Massoud Alibakhsh System and method for providing total real-time redundancy for a plurality of client-server systems
US9110693B1 (en) * 2011-02-17 2015-08-18 Emc Corporation VM mobility over distance
US9225791B2 (en) * 2011-02-28 2015-12-29 Red Hat, Inc. Staged data migration between data sources and cloud-based storage network
US8621274B1 (en) 2011-05-18 2013-12-31 Netapp Inc. Virtual machine fault tolerance
US8769533B2 (en) * 2011-07-18 2014-07-01 International Business Machines Corporation Check-point based high availability: network packet buffering in hardware
US8726083B1 (en) * 2011-07-29 2014-05-13 Emc Corporation Synchronized taking of snapshot memory images of virtual machines and storage snapshots
US8804494B1 (en) * 2012-04-04 2014-08-12 Wichorus, Inc. Methods and apparatus for improving network performance using virtual instances for system redundancy
US20130297854A1 (en) * 2012-05-04 2013-11-07 Riverbed Technology, Inc. Ensuring write operation consistency using raid storage devices
JP5944796B2 (ja) * 2012-08-31 2016-07-05 株式会社日立システムズ ディザスタリカバリ方法およびディザスタリカバリシステム
US9122873B2 (en) 2012-09-14 2015-09-01 The Research Foundation For The State University Of New York Continuous run-time validation of program execution: a practical approach
US9069782B2 (en) 2012-10-01 2015-06-30 The Research Foundation For The State University Of New York System and method for security and privacy aware virtual machine checkpointing
US9104607B2 (en) 2012-10-31 2015-08-11 International Business Machines Corporation Simulation engine for use in disaster recovery virtualization
JP6056408B2 (ja) * 2012-11-21 2017-01-11 日本電気株式会社 フォールトトレラントシステム
US10684875B2 (en) * 2012-12-06 2020-06-16 At&T Intellectual Property I, L.P. Synchronization of a virtual machine across mobile devices
US9104625B2 (en) 2012-12-11 2015-08-11 International Business Machines Corporation Disaster recovery internet protocol address failover
US9582421B1 (en) * 2012-12-19 2017-02-28 Springpath, Inc. Distributed multi-level caching for storage appliances
US9405605B1 (en) 2013-01-21 2016-08-02 Amazon Technologies, Inc. Correction of dependency issues in network-based service remedial workflows
US9183092B1 (en) * 2013-01-21 2015-11-10 Amazon Technologies, Inc. Avoidance of dependency issues in network-based service startup workflows
US9323553B2 (en) 2013-09-13 2016-04-26 International Business Machines Corporation Reducing virtual machine suspension time in checkpoint system
EP3090336A1 (en) 2013-12-30 2016-11-09 Paul A. Leveille Checkpointing systems and methods of using data forwarding
US20150205688A1 (en) * 2013-12-30 2015-07-23 Stratus Technologies Bermuda Ltd. Method for Migrating Memory and Checkpoints in a Fault Tolerant System
JP6518672B2 (ja) 2013-12-30 2019-05-22 ストラタス・テクノロジーズ・バミューダ・リミテッド 動的チェックポインティングシステムおよび方法
WO2015102874A2 (en) 2013-12-30 2015-07-09 Stratus Technologies Bermuda Ltd. Method of delaying checkpoints by inspecting network packets
US9448848B2 (en) * 2014-03-17 2016-09-20 Ca, Inc. Controlling placement of virtual machines on physical host machines and placement of physical host machines in cabinets
US9448841B2 (en) * 2014-03-17 2016-09-20 Ca, Inc. Decommissioning physical host machines after relocating unproductive virtual machines therefrom
EP3204852A4 (en) 2014-10-08 2018-06-13 Intel Corporation Techniques for checkpointing/delivery between primary and secondary virtual machines
US9804957B1 (en) * 2015-10-01 2017-10-31 EMC IP Holding Company LLC Block tracking data validation backup model
US10042720B2 (en) 2016-02-22 2018-08-07 International Business Machines Corporation Live partition mobility with I/O migration
US10042723B2 (en) 2016-02-23 2018-08-07 International Business Machines Corporation Failover of a virtual function exposed by an SR-IOV adapter
US10185581B2 (en) * 2016-03-10 2019-01-22 Vmware, Inc. Method and system for taking checkpoints at varying intervals
US10860436B2 (en) * 2016-05-02 2020-12-08 Nokia Solutions And Networks Oy Snapshot creation in virtual network environment
US9720863B1 (en) * 2016-10-21 2017-08-01 International Business Machines Corporation Migrating MMIO from a source I/O adapter of a source computing system to a destination I/O adapter of a destination computing system
US9720862B1 (en) 2016-10-21 2017-08-01 International Business Machines Corporation Migrating interrupts from a source I/O adapter of a computing system to a destination I/O adapter of the computing system
US11169835B1 (en) * 2017-05-09 2021-11-09 Tintri By Ddn, Inc. VM data migration between storage devices
US10769017B2 (en) * 2018-04-23 2020-09-08 Hewlett Packard Enterprise Development Lp Adaptive multi-level checkpointing
CN112311826B (zh) * 2019-07-30 2022-05-03 贵州白山云科技股份有限公司 内容分发***中访问请求的处理方法、装置及***

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0097256B1 (en) 1982-06-21 1989-01-25 International Business Machines Corporation Method and apparatus for managing a buffer pool referenced by batch and interactive process
US5835953A (en) * 1994-10-13 1998-11-10 Vinca Corporation Backup system that takes a snapshot of the locations in a mass storage device that has been identified for updating prior to updating
US7103797B1 (en) 1998-03-30 2006-09-05 Emc Corporation Resource allocation throttling in remote data mirroring system
DE19935399A1 (de) 1999-07-30 2001-02-01 Ks Kolbenschmidt Gmbh Kolben für einen Verbrennungsmotor
US7203732B2 (en) 1999-11-11 2007-04-10 Miralink Corporation Flexible remote data mirroring
US6854115B1 (en) * 2000-06-02 2005-02-08 Sun Microsystems, Inc. Process persistence in a virtual machine
JP2003084995A (ja) * 2001-09-13 2003-03-20 Hitachi Ltd オンラインデータベース情報処理システム
US7296125B2 (en) * 2001-11-29 2007-11-13 Emc Corporation Preserving a snapshot of selected data of a mass storage system
JP4434857B2 (ja) * 2003-12-04 2010-03-17 株式会社日立製作所 リモートコピーシステム及びシステム
US7529897B1 (en) 2003-12-31 2009-05-05 Vmware, Inc. Generating and using checkpoints in a virtual computer system
JP4582297B2 (ja) * 2004-06-25 2010-11-17 日本電気株式会社 レプリケーションシステム、装置、方法、およびプログラム
US20070234342A1 (en) * 2006-01-25 2007-10-04 Flynn John T Jr System and method for relocating running applications to topologically remotely located computing systems
US8191063B2 (en) * 2007-09-30 2012-05-29 Symantex Corporation Method for migrating a plurality of virtual machines by associating files and state information with a single logical container
US7913116B2 (en) * 2008-02-27 2011-03-22 Red Hat, Inc. Systems and methods for incremental restore
US7900006B2 (en) * 2008-04-30 2011-03-01 Netapp, Inc. Maintaining checkpoints during backup of live system

Also Published As

Publication number Publication date
EP2572279B1 (en) 2014-04-09
JP2013529343A (ja) 2013-07-18
US8171338B2 (en) 2012-05-01
WO2011146645A1 (en) 2011-11-24
AU2011255654B2 (en) 2014-06-12
AU2011255654A1 (en) 2012-12-20
EP2572279A1 (en) 2013-03-27
US20110289345A1 (en) 2011-11-24

Similar Documents

Publication Publication Date Title
JP5661176B2 (ja) 遠隔仮想計算機全体にわたって耐故障チェックポインティングを達成するための方法及びシステム
US8898508B2 (en) Method and system for enabling checkpointing fault tolerance across remote virtual machines
US8898518B2 (en) Method and system for enabling checkpointing fault tolerance across remote virtual machines
USRE47852E1 (en) Snapshot and replication of a multi-stream application on multiple hosts at near-sync frequency
Scales et al. The design of a practical system for fault-tolerant virtual machines
US8898509B2 (en) Policy-based checkpointing fault tolerance across remote virtual machines
US9652326B1 (en) Instance migration for rapid recovery from correlated failures
US8689047B2 (en) Virtual disk replication using log files
US9141578B2 (en) Robust live migration using shared filesystem
JP6128526B2 (ja) 仮想計算機のクラスタを操作するための方法、装置、コンピュータ・プログラム、およびコンピュータ・プログラム製品
US9183103B2 (en) Lightweight remote replication of a local write-back cache
US10152398B2 (en) Pipelined data replication for disaster recovery
US8812907B1 (en) Fault tolerant computing systems using checkpoints
US9846706B1 (en) Managing mounting of file systems
Wood et al. PipeCloud: using causality to overcome speed-of-light delays in cloud-based disaster recovery
US20080077686A1 (en) System and Method for Replication of Network State for Transparent Recovery of Network Connections
US10929234B2 (en) Application fault tolerance via battery-backed replication of volatile state
WO2008103287A1 (en) Method and apparatus for transactional fault tolerance in a client-server system
US20150081632A1 (en) Checkpoint capture and tracking in a high availability system
Scales et al. The design and evaluation of a practical system for fault-tolerant virtual machines
KR101063720B1 (ko) 피어 프로그램 가능 하드웨어 장치에 대한 자동화 펌웨어 복구
US11226875B2 (en) System halt event recovery
US11720457B2 (en) Remote direct memory access (RDMA)-based recovery of dirty data in remote memory
Pang High performance live migration over low-bandwidth, high-delay network with loss prevention
WO2017023244A1 (en) Fault tolerant computing

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140131

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140212

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140423

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140501

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140604

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141202

R150 Certificate of patent or registration of utility model

Ref document number: 5661176

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

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