JP2014503904A - 仮想計算機のクラスタを操作するための方法、装置、コンピュータ・プログラム、およびコンピュータ・プログラム製品 - Google Patents

仮想計算機のクラスタを操作するための方法、装置、コンピュータ・プログラム、およびコンピュータ・プログラム製品 Download PDF

Info

Publication number
JP2014503904A
JP2014503904A JP2013545275A JP2013545275A JP2014503904A JP 2014503904 A JP2014503904 A JP 2014503904A JP 2013545275 A JP2013545275 A JP 2013545275A JP 2013545275 A JP2013545275 A JP 2013545275A JP 2014503904 A JP2014503904 A JP 2014503904A
Authority
JP
Japan
Prior art keywords
virtual machine
cluster
primary virtual
primary
data
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
JP2013545275A
Other languages
English (en)
Other versions
JP6128526B2 (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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2014503904A publication Critical patent/JP2014503904A/ja
Application granted granted Critical
Publication of JP6128526B2 publication Critical patent/JP6128526B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1405Saving, restoring, recovering or retrying at machine instruction level
    • G06F11/1407Checkpointing the instruction stream
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • G06F11/1484Generic software techniques for error detection or fault masking by means of middleware or OS functionality involving virtual machines
    • 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/2023Failover techniques
    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • H04L41/0663Performing the actions predefined by failover planning, e.g. switching to standby network elements
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1438Restarting or rejuvenating
    • 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/2023Failover techniques
    • G06F11/203Failover techniques using migration
    • 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/2053Error 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 persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/815Virtual
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/82Solving problems relating to consistency
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/40Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using virtualisation of network functions or resources, e.g. SDN or NFV entities

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Hardware Redundancy (AREA)
  • Retry When Errors Occur (AREA)

Abstract

【課題】 仮想計算機管理のための方法およびこれをサポートするシステムを提供する。
【解決手段】 チェックポイント・プロセスを使用して1次仮想計算機(402)から2次仮想計算機(406)へのデータの転送を制御する、ミラーリングされた仮想計算機環境では、内部ネットワーク(400)により、1次仮想計算機はチェックポイントの発生を待つ必要なしに他の仮想計算機(404)とネットワーク・パケットを交換することができる。特定の仮想計算機のネットワーク・トラフィックを見ることができるすべての1次仮想計算機が、チェックポイントが完了するまで、外部環境に影響を及ぼすことができないことを保証するためのメカニズムが提供される。これは、すべての1次仮想計算機間のチェックポイントを同期させ、1つの仮想計算機が故障した場合に、すべての仮想計算機がそのそれぞれの2次仮想計算機にフェイルオーバすることを保証することによって達成される。
【選択図】 図3

Description

本発明は、コンピュータ・システム上で実行される仮想計算機(virtualmachine)の管理のための方法に関し、特に、障害が発生しているかまたは故障した仮想計算機から動作を引き継ぐためにバックアップまたは交換用仮想計算機が使用可能であるフォールト・トレラント・システムに関する。さらに、本発明は、このような方法を実現するためのソフトウェア・ユーティリティに関し、このような方法を実現するために構成されたコンピュータ・システムにも関する。
コンピュータ・システムでは、仮想計算機の使用がますます一般的になり、個々のプログラムまたはプロセスからオペレーティング・システム全体まで何でも処理するために個々の仮想計算機が提供されている。個々のプロセッサは1つまたは複数のこのような仮想計算機をホストとして処理することができ、仮想計算機をサポートするプロセッサ・ソフトウェア層は仮想計算機モニターまたはハイパーバイザと呼ばれている。複数の仮想計算機が互いに切り離されていることは仮想計算機を使用する際の特定の利点であるが、多くの状況で仮想計算機間の相互通信が必要であることも事実である。
フォールト・トレラント・システム(典型的に、サーバ・アーキテクチャまたは警報システムなどの重要性の高いシステム)では、あるコンポーネントの故障時に、交換品に切り替えて最小限の中断で動作を続行できるようにする、バックアップの備えがなされている。複数の仮想計算機からなるシステムでは、バックアップの備えは、場合によっては、障害が発生した場合にその内部で交換用仮想計算機をインスタンス化できる、接続されているが物理的に分離している計算機上の追加の処理能力を含む。認識されるように、遅延を最小限にするために、交換用仮想計算機は、可能な限り迅速に障害が発生している計算機の動作に着手できなければならず、したがって、障害が発生している計算機がそのプログラムまたはプロセス内のどこに達していたかを認識して、そのポイントから動作を再開できなければならない。1つのオプションは第1の計算機と並行して交換用計算機を実行することであり、交換用計算機は第1の計算機と同じ入力データを受信し、その出力が抑制されて、第1の計算機の正確なミラーになるようになっているが、この構成は交換用計算機の動作を維持するために処理能力が重複するという点で費用がかかる。米国特許出願第2008/0189468号(Schmidt他)および米国特許第7213246号(van Rietschote他)には、代替戦略を使用する複数仮想計算機のシステムが記載されている。動作時に、所与の仮想計算機について、第1の計算機の故障時に交換用仮想計算機の作成を可能にするために、その計算機の記述と現在の計算機の状態データが定期的に収集されて保管される。米国特許出願第2008/0155208号(Hiltgen他)には、同様のシステムが記載され、収集した状態データの処理に関するセキュリティの側面が論じられている。このようなシステムは、並列仮想計算機を実行するより処理オーバヘッドが低くなるが、動作を引き継ぐ前に交換用仮想計算機をインスタンス化することがまず必要になるので、障害が発生した場合の移行が遅くなる。
仮想計算機ミラーは、障害が発生した場合にほとんど即座に第2の計算機上で再始動できるように仮想計算機を実行する方法である。状態データは1次仮想計算機と2次計算機との間で頻繁に交換される。これは、1次仮想計算機の状態が定期的に収集されて2次計算機に転送される、1次仮想計算機のチェックポインティングという技法によって行われる。チェックポインティング仮想計算機システムの一例は米国特許出願第2010/0107158号(Chen他)に記載されている。障害が発生した場合、2次仮想計算機は故障前の最後のチェックポイントにおける1次計算機のミラーになり、そのチェックポイントから動作を引き継ぐことができる。認識されるように、チェックポイント間の間隔が短いほど、2次仮想計算機の状態が1次計算機の状態に近くなる。しかし、チェックポイント動作に対する処理オーバヘッドが発生するので、チェックポインティングのオーバヘッドと頻度との間でバランスを取らなければならない。チェックポインティング・システムに関するもう1つの問題は、障害イベントの両側で1次仮想計算機とそのそれぞれの2次計算機によって発生する外部ネットワーク・トラフィックの重複を回避するために、次のチェックポイントを通過するまで1次仮想計算機が発生した外部ネットワーク・データ・パケットをバッファリングしなければならないことである。このバッファリング要件は、特に比較的長いチェックポイント間隔を使用する場合に、動作に遅延をもたらすものである。
米国特許出願第2008/0189468号 米国特許第7213246号 米国特許出願第2008/0155208号 米国特許出願第2010/0107158号
したがって、当技術分野では前述の問題に対処する必要がある。
本発明の第1の態様により、仮想計算機のクラスタを操作するための方法が提供され、前記クラスタが2つまたはそれ以上の1次仮想計算機を含み、それぞれの仮想計算機が外部データ・バスにリンクされ、それぞれの1次仮想計算機がデータを生成して前記外部バス上でこれを送信し、前記外部バスからデータを受信して処理するように動作可能であり、
a)前記クラスタのそれぞれの1次仮想計算機について、フェイルオーバが発生した場合にその1次仮想計算機のタスクを引き受けるようにそれぞれの2次仮想計算機を維持するためにチェックポイント手順を使用することと、
b)フェイルオーバ時に、それぞれの前記2次仮想計算機により、フェイルオーバ・イベントの直前のチェックポイントからそのそれぞれの1次仮想計算機のタスクを引き受けさせること
を含み、
前記クラスタのそれぞれの1次仮想計算機が、内部バスを介してすべてのまたはそれぞれの他の1次仮想計算機からデータを受信し、受信時にこれを処理するように接続され、この方法は、
c)前記クラスタのすべての1次仮想計算機に関するチェックポイントを同期させることと、
d)前記クラスタのそれぞれの1次仮想計算機について、次のチェックポイントが発生するまで、受信した内部バス・データを基礎として生成したデータを外部バスにリリースするのを防止することと、
e)前記クラスタの1つの1次仮想計算機のフェイルオーバ時に、前記クラスタのすべての1次仮想計算機により、そのそれぞれの2次仮想計算機にフェイルオーバさせること
をさらに含む。
内部バスの使用により、仮想計算機は、チェックポイントの通過を待つ必要なしに、クラスタの他の仮想計算機からデータを受信して処理することができる。チェックポイントを同期させ、すべての1次仮想計算機を一緒にフェイルオーバすることにより、スプリアス外部バス・トラフィックが発生する可能性が回避される。
このような方法では、前記クラスタの少なくとも1つの1次仮想計算機について、クラスタ内のフェイルオーバの発生時に、前記少なくとも1つの1次仮想計算機が前のチェックポイント以降に内部バス・データを受信していないと判断された場合、クラスタの他の1次仮想計算機がフェイルオーバするときに、前記少なくとも1つの1次仮想計算機がそのそれぞれの2次仮想計算機にフェイルオーバするのを防止することができる。換言すれば、前のチェックポイント以降に内部バス・データを受信した1次仮想計算機のみがフェイルオーバされる。
クラスタは少なくとも1つの追加の1次仮想計算機をさらに含むことができ、この方法は、クラスタの他の1次仮想計算機がフェイルオーバするときにその追加の1次計算機の動作を停止することをさらに含み、これによりそれぞれの2次計算機を備えていない1次仮想計算機に対する対処が可能になる。このような構成では、前記クラスタのすべてのまたはそれぞれのこのような追加の1次仮想計算機は、前記内部バスを介してすべてのまたはそれぞれの他の1次仮想計算機からデータを受信し、受信時にこれを処理するように接続することができ、この方法は、前記クラスタのすべてのまたはそれぞれの追加の1次仮想計算機について、次のチェックポイントが発生するまで、受信した内部バス・データを基礎として生成したデータを外部バスにリリースするのを防止することをさらに含む。
フェイルオーバに続いて、それぞれの2次仮想計算機を新しいクラスタ内の1次仮想計算機として再指定することができ、新しいそれぞれの2次仮想計算機を指定することができる。
また、本発明により、1つまたは複数のデータ記憶装置と結合された少なくとも1つのプロセッサ・デバイスを有するコンピュータ・システムを含む装置が提供され、前記システムが仮想計算機のクラスタを操作するように構成され、前記クラスタが2つまたはそれ以上の1次仮想計算機を含み、それぞれの仮想計算機が外部データ・バスにリンクされ、
1.それぞれの1次仮想計算機がデータを生成して前記外部バス上でこれを送信し、前記外部バスからデータを受信して処理するように動作可能であり、
2.前記クラスタのそれぞれの1次仮想計算機について、前記システムが、チェックポイント手順により、フェイルオーバが発生した場合にその1次仮想計算機のタスクを引き受けるようにそれぞれの2次仮想計算機を維持し、
3.フェイルオーバの検出時に、前記システムがそのそれぞれの2次仮想計算機にそれぞれの1次仮想計算機のタスクを転送し、それぞれの2次仮想計算機が、フェイルオーバ・イベントの直前のチェックポイントにおいてそのそれぞれの1次仮想計算機の状態をミラーリングし、
4.このシステムが、前記クラスタのすべての1次仮想計算機に関するチェックポイントを同期するように制御し、
5.このシステムが内部バス・メカニズムをさらに含み、前記クラスタのそれぞれの1次仮想計算機が、前記内部バスを介してすべてのまたはそれぞれの他の1次仮想計算機からデータを受信し、受信時にこれを処理するように接続され、
6.前記1つまたは複数の記憶装置を使用して、前記クラスタのそれぞれの1次仮想計算機が、受信した内部バス・データを基礎として生成した外部バス・データをバッファリングし、次のチェックポイントが発生したときにこれを外部バスにリリースし、
7.前記クラスタの1つの1次仮想計算機のフェイルオーバ時に、前記システムが、そのそれぞれの2次仮想計算機にフェイルオーバするよう、前記クラスタのすべての1次仮想計算機に指示する。
このような装置では、それぞれの1次および2次仮想計算機は、それぞれのハイパーバイザによりシステムの残りの部分に適切にリンクされる。一実施形態では、前記クラスタのすべての1次仮想計算機は単一のプロセッサ・デバイスによってホストとして処理され、単一のハイパーバイザによりリンクすることができる。代わって、前記クラスタの1次仮想計算機は2つまたはそれ以上のプロセッサ・デバイスによってホストとして処理することができ、それぞれのハイパーバイザは内部バス・データの交換のために接続される。
上記のように、クラスタの少なくとも1つの1次仮想計算機について、クラスタ内のフェイルオーバの発生時に、前記システムは、前記少なくとも1つの1次仮想計算機が前のチェックポイント以降に内部バス・データを受信したかどうかを判断することができ、受信していない場合、クラスタの他の1次仮想計算機がフェイルオーバするときに、前記少なくとも1つの1次仮想計算機がそのそれぞれの2次仮想計算機にフェイルオーバするのを前記システムにより防止することができる。
クラスタは、クラスタの他の1次仮想計算機がフェイルオーバするときにその動作がシステムによって停止される、少なくとも1つの追加の1次仮想計算機をさらに含むことができる。前記クラスタのすべてのまたはそれぞれの前記追加の1次仮想計算機は、前記内部バスを介してすべてのまたはそれぞれの他の1次仮想計算機からデータを受信し、受信時にこれを処理するように接続することができ、前記1つまたは複数の記憶装置を使用して、受信した内部バス・データを基礎としてすべてのまたはそれぞれの追加の1次仮想計算機によって生成した外部バス・データをバッファリングし、次のチェックポイントが発生したときにこれを外部バスにリリースするように構成することができる。
他の態様から見ると、本発明は、クライアント・コンピュータにおいて第1のコンピュータ・リソースを作成するためのコンピュータ・プログラム製品(computer program product)を提供し、このコンピュータ・プログラム製品は、処理回路によって読み取り可能であり、本発明の諸ステップを実行するための方法を実行するために処理回路による実行のための命令を保管するコンピュータ可読記憶媒体を含む。
他の態様から見ると、本発明は、コンピュータ可読媒体上に保管され、デジタル・コンピュータの内部メモリにロード可能であり、コンピュータ上で実行されるときに、本発明の諸ステップを実行するためのソフトウェア・コード部分を含む、コンピュータ・プログラムを提供する。
有利なことに、本発明は、ネットワーク通信の性能を改善し、特に、チェックポインティングを使用してシステム上で実行している仮想計算機間の通信に関する待ち時間を短縮するための方法を提供する。
本発明の概要では本発明の必要な特徴をすべて列挙しているわけではなく、このような特徴の一部の組み合わせも本発明を包含することができる。
次に、以下の図に例示されているように、好ましい諸実施形態に関連して、例としてのみ、本発明について説明する。
本発明の好ましい一実施形態を実現可能である、従来技術によるコンピュータのコンポーネントを示すブロック図である。 本発明の好ましい一実施形態により、それぞれが複数の仮想計算機をホストとして処理する、リンクされた一対のプロセッサ・デバイスを表す図である。 本発明の好ましい一実施形態により、チェックポインティング・プロセス中のデータ転送を示す図である。 本発明の好ましい一実施形態により、チェックポインティング・プロセスによる外部ネットワーク・データの据え置き出力を示す図である。 本発明の好ましい一実施形態により、チェックポイント間隔の満了以前の内部ネットワークの備えおよびデータの転送を示す図である。
図1は、本発明を実施するのに適したコンピュータ・システムのコンポーネントを概略的に表している。中央演算処理装置(CPU)のプロセッサ10は、アドレスおよびデータ・バス16によりランダム・アクセス・メモリRAM12および読み取り専用メモリROM14に結合される。また、CPU10の機能を補い、浮動小数点演算、グラフィクス処理、信号処理、および暗号化などのプロセスを処理するコプロセッサ・デバイス42もアドレスおよびデータ・バス16を介してCPU10に接続される。これらの内部ハードウェア装置10、12、14、42のそれぞれは、バス16への接続をサポートする、それぞれのインターフェース(図示せず)を含む。これらのインターフェースは、従来の形式であり、より詳細に説明する必要はない。
また、いくつかの外部ハードウェア装置のインターフェース段階(全般的に18で示されている)もバス16を介してCPU10に接続される。第1のインターフェース段階20は、マウス22あるいはキーボード24またはその両方などの外部入出力装置の接続をサポートする。第2のインターフェース段階26は、ディスプレイ画面28あるいはヘッドホンまたはスピーカなどのオーディオ出力装置30などの外部出力装置の接続をサポートする。第3のインターフェース段階32は、コンピュータ可読媒体の形の外部データ記憶装置の接続をサポートし、このような外部記憶装置は、図示の通り、取り外し可能な光または磁気ディスク34によって提供する(適切に構成されたディスク・リーダ36によってアクセスする)ことができる。代わってまたはさらに、外部記憶装置は、拡張ドライブまたはメモリ・スティックなどのソリッドステート・メモリ・デバイスの形にすることができる。第4のインターフェース段階38は、たとえば、ローカル・エリア・ネットワークLANによるかまたはインターネットを介して、有線または無線ネットワーク40によるこのシステムとリモート・デバイスまたはシステムとの接続をサポートする。
図2は、ネットワーク104を介して接続された第1の物理計算機(プロセッサ・デバイス)100および第2の物理計算機102を示している。計算機100、102のそれぞれは、それぞれのハイパーバイザ106、108を提供する。第1のハイパーバイザ106は、2つの1次仮想計算機(VMP)110、112および1つの2次仮想計算機(VMS)114をホストとして処理する。第2のハイパーバイザ108は、1つの1次仮想計算機116および2つの2次仮想計算機118、120をホストとして処理する。3つの1次仮想計算機110、112、120は、以下により詳細に述べるように、データの交換のためのクラスタを形成し、それぞれがそれぞれ1つの2次仮想計算機116、118、114に関連付けられる。仮想計算機ミラーは、障害が発生した場合にほとんど即座に第2の計算機上で再始動できるように仮想計算機(VM)を実行する方法である。図示の例では、1次仮想計算機112が故障した場合、その動作は2次仮想計算機118上で再始動される。
状態データは、1次仮想計算機およびそのそれぞれの2次計算機から定期的に渡される。これは、1次計算機の状態を収集し、それを2次計算機に転送することを含む、1次仮想計算機のチェックポインティングにより行われる。本明細書に記載されている本発明は、ネットワーク通信の性能を改善し、特に、同じかまたは個別の物理計算機上で実行している1次仮想計算機VMP間の通信に関する待ち時間を短縮するための方法である。
図3は、チェックポインティング・プロセスにおける1次仮想計算機PRIと2次仮想計算機SECとの間のデータの転送を示している。チェックポイントが発生すると、いくつかの動作が行われる。
1.200で1次仮想計算機PRIのCPUスレッドのすべてが休止される。
2.202でそれぞれの仮想計算機スレッドのCPU状態が収集される。
3.204で前のチェックポイント以降に変更されたメモリ・ページが収集される。
4.206でメモリ変更およびCPU状態が2次仮想計算機SECに転送される。
5.208で1次仮想計算機が再開される。
当業者によって十分理解されるように、これらの動作のうちのいくつかは、並列にまたは意味的に同等の順序で行うことができる。たとえば、2次仮想計算機SECへの転送が行われる前に、1次仮想計算機PRIを再開することができる。2次仮想計算機に関するわずかな時間のずれ(offset)は、206における転送に要した時間によるものである。1次仮想計算機と2次仮想計算機との間の高速データ接続により、このずれは無視してよいものと見なすことができ、明瞭にするために、このずれは以降の図から省略される。プロセス中の2つの設定間隔は、チェックポイント間隔CINTとチェックポイント待ち時間CLATである。この図から分かるように、チェックポイント間隔CINTは、好ましくは、再始動遅延とプロセッサ・オーバヘッドとの間のトレードオフとして前に決定された固定持続期間である。チェックポイント待ち時間CLATは、1次仮想計算機に関するCPU状態202およびメモリ状態204を収集して2次仮想計算機に送信するのに要した時間であり、1次仮想計算機がそれに割り当てられたタスクを実行した期間210に追加されたときにチェックポイント間隔CINTを構成するものである。
フェイルオーバは、ミラーリングされた1次仮想計算機が実行していた作業を2次仮想計算機が引き継ぐプロセスである。これは、1次仮想計算機またはハードウェアが故障したときに発生する。フェイルオーバが行われると、2次仮想計算機は前のチェックポイントから再開することになり、このチェックポイント以降に1次仮想計算機が実行した作業(たとえば、CPUサイクル、メモリへの変更)は失われる。
コンピュータは、仮想かどうかを問わず、単独で存在することはない。コンピュータは、外部環境にとって可視の動作を実行する。最も顕著なことに、コンピュータはネットワーク・トラフィックを送信し、情報をディスクに保管する。この保管の側面は本発明に含まれないので、ここでは扱わない。
上記のように、フェイルオーバが行われると、2次計算機は前のチェックポイントから再開する。これは、外部環境がそのチェックポイントに対応する状態を反映しなければならないことを意味する。ネットワーク・パケットの場合、これは、そのチェックポイントが2次仮想計算機によって受信されるまでそのパケットをリリースできない(外界から見えない)ことを意味する。図4に示されているように、1次仮想計算機300および2次仮想計算機302は、図3ならびに全般的に304で示されているように、チェックポイント動作を実行する。306で、1次仮想計算機は外部バスまたはネットワーク308を介して前方への伝送のためのデータ・パケットを生成する。このパケットは直ちにリリースできないので、次のチェックポイントが完了するまで待ち行列310内に置かれ、次のチェックポイントが完了したポイント312で外部ネットワークにリリースされる。対照的に、1次仮想計算機向けの着信パケットであって、ポイント314で外部ネットワーク上で受信されたものは、遅延なしにその仮想計算機に直接渡される。
外部環境との対話を制御することは、仮想計算機ミラーリング・ソリューションの重要な部分であり、このようなソリューションの性能を決定する際に重要なコンポーネントである。ネットワーク動作の遅延(待ち時間の増加)は深刻な性能劣化を引き起こす可能性があるので、このような劣化を最小限にできるソリューションが好ましい。
本発明は、チェックポイントの発生を待つ必要なしに、ミラーリングされた仮想計算機からのネットワーク・パケットを他の仮想計算機から見えるようにするものである。これを達成するために、そのネットワーク・トラフィックを「見る」ことができるすべての他の仮想計算機が
1.そのチェックポイントが完了するまで外部環境に影響を及ぼす可能性がないことと、
2.送信側の障害が発生した場合にネットワーク・トラフィックが見られる前の状態に戻ることができなければならないこと
を保証するメカニズムが所定の位置に配置される。
すべての仮想計算機がミラーリングされる環境は、以下のようにすることにより、これらの目標にかなうように構成される。
●すべての仮想計算機間でチェックポイントを同期させることと、
●いずれか1つが故障した場合にすべての1次仮想計算機がそのそれぞれの2次仮想計算機にフェイルオーバすることを保証すること。いずれか1つの仮想計算機が故障した場合に、実行し続けるために、すべての仮想計算機を破壊(ならびに再現)しなければならないので、この技法は相互保証ネットワーク破壊(mutually assured network destruction)と記述することができる。
図5は、チェックポイント間で発生する可能性のあるネットワーク・イベントを示している。この図および以下の説明は、本発明の作用と、障害が発生した場合に見られていなかったはずのネットワーク・トラフィックが外部に影響を及ぼす可能性がないことを保証しながらネットワーク・トラフィックの待ち時間を短縮するために本発明を使用する方法について示している。この図では、内部ネットワーク400は、相互保証ネットワーク破壊プールまたはクラスタ内にリンクされた、ミラーリングされた仮想計算機402、404間のネットワークと見なされる。
実行はポイント420から始まり、時間は右に向かって増加する。2次仮想計算機406はすでに存在しており、以降のステップは1つのチェックポイント間隔中に発生する可能性のあるイベントのサブセットを示している。
ポイント422で、1次仮想計算機402は外部ネットワーク408上の計算機にネットワーク・パケットを送信することを要求し、これは(次のチェックポイント間隔に続く)その後のある時期に送信する準備ができている待ち行列410に保管される。
ポイント424で、1次仮想計算機402は内部ネットワーク400上の計算機404にネットワーク・パケットを送信することを要求し、これはその仮想計算機に直接送信される。
ポイント426で、パケットはネットワーク408によって受信され、これは直ちに1次仮想計算機402に送信される。一般に特別な処理は不要であり、その理由は、イーサネットなどのネットワークが本質的に損失が大きいものであり、仮想計算機が故障した場合にそのパケットを再送できるためである。再送すべきかどうかの判断は、典型的に、実行中のアプリケーションまで下がることになり、たとえば、ストリーミング・オーディオ・ブロードキャストでは、失われたパケットは一般に再送されない。
ポイント428で、チェックポイントに達し、1次仮想計算機402は瞬間的に「休止」される。CPU状態と、前のチェックポイント以降に変更されたページが収集される。CPU状態と変更されたページの2次仮想計算機406への転送が始まる。
ポイント430で、CPU状態/変更されたページの転送が完了する。このポイントで、チェックポイントはコミットされたと言われ、変更されたページおよびCPU状態が2次仮想計算機402に適用される。次に、外部ネットワークに関する待機ネットワーク・トラフィックをリリースすることができる。
クラスタ内のすべての1次仮想計算機が正しく実行している限り、すべてのチェックポイントについて上記の諸ステップが繰り返される。しかし、1次仮想計算機のいずれかが故障した場合、これらの1次仮想計算機はすべて、その対応する2次計算機にフェイルオーバしなければならない。
相互保証破壊プールは、(内部ネットワーク400を介して)遅延なしにネットワーク・パケットを通信できる仮想計算機のクラスタである。上記のように、チェックポイントを同期させ、いずれか1つの仮想計算機が故障した場合にクラスタ内のすべての仮想計算機がその2次仮想計算機にフェイルオーバすることを保証することによって、これが達成される。
チェックポイントを同期させるために、それぞれの仮想計算機を制御するハイパーバイザが通信しなければならない。これを達成するための最も容易な方法は、1つのハイパーバイザを備え、同じ物理計算機上ですべての仮想計算機を実行することである。しかし、複数のハイパーバイザを可能にするために、物理計算機間の所定の位置に短待ち時間通信リンクを配置することができる。このような構成では、内部ネットワークと外部ネットワークが同じ物理接続を共用することができるが、内部ネットワーク上のネットワーク・トラフィックも外界(すなわち、外部ネットワーク)から切り離さなければならない。
2次仮想計算機には配置に関する制限がなく、異なる物理計算機上に位置することができ、特別なネットワーク接続を必要としない。しかし、2次仮想計算機が内部ネットワークに接続されず、1次計算機として指定されず、新しいそれぞれの2次仮想計算機が定義されない場合、この構成において計算機が2次計算機にフェイルオーバした後、相互保証破壊プールは動作し続けることができない。
上記のシステムに対する変更例では、相互保証ネットワーク破壊は全体的ではなく部分的であり、1次仮想計算機のうちの1つが故障した場合に、その仮想計算機からのトラフィックを見たことがあるプール内の他の仮想計算機のみがフェイルオーバする必要がある。したがって、最後のチェックポイント以降に障害が発生している計算機からのネットワーク・トラフィックをどの仮想計算機が受信したかを把握するようにシステムが構築される場合、このような仮想計算機のみがフェイルオーバする必要がある。これは、最後のチェックポイント以降にいかなるネットワーク・トラフィックも送信されなかった場合に、障害が発生している仮想計算機のみがフェイルオーバしなければならないことを意味する。
他の変更例では、相互保証破壊プール内のすべての計算機をミラーリングしなければならないと前に述べたが、これが常に該当する必要はない。これが最も有用な構成である可能性はあるが、有効な構成はもう1つ存在する。すべての仮想計算機をミラーリングしなければならないわけではないが、すべての仮想計算機では、ミラーリングされた計算機上のチェックポイントが完了するまで、外部から見えるトランザクションをすべて遅延させなければならない。この状況で障害が発生した場合、ミラーリングされた計算機は(上記のように)フェイルオーバしなければならず、ミラーリングされない計算機は停止しなければならない。
本発明の諸実施形態について上記で説明してきたが、本発明の技術範囲は上記の諸実施形態の範囲に限定されない。この諸実施形態に対し様々な変更および改良を行うことができることは、当業者にとって明白なことであるはずである。このような変更または改良を含む実現例が本発明の技術範囲に包含されることは、特許請求の範囲の記述から明白である。

Claims (14)

  1. 仮想計算機のクラスタを操作するための方法であって、前記クラスタが2つまたはそれ以上の1次仮想計算機を含み、それぞれの仮想計算機が外部データ・バスにリンクされ、それぞれの1次仮想計算機がデータを生成して前記外部バス上でこれを送信し、前記外部バスからデータを受信して処理するように動作可能であり、
    a.前記クラスタのそれぞれの1次仮想計算機について、フェイルオーバが発生した場合にその1次仮想計算機のタスクを引き受けるようにそれぞれの2次仮想計算機を維持するためにチェックポイント手順を使用することと、
    b.フェイルオーバ時に、それぞれの前記2次仮想計算機により、フェイルオーバ・イベントの直前のチェックポイントからそのそれぞれの1次仮想計算機のタスクを引き受けさせること
    を含み、
    前記クラスタのそれぞれの1次仮想計算機が、内部バスを介してすべてのまたはそれぞれの他の1次仮想計算機からデータを受信し、受信時にこれを処理するように接続され、前記方法が、
    c.前記クラスタのすべての1次仮想計算機に関するチェックポイントを同期させることと、
    d.前記クラスタのそれぞれの1次仮想計算機について、次のチェックポイントが発生するまで、受信した内部バス・データを基礎として生成したデータを外部バスにリリースするのを防止することと、
    e.前記クラスタの1つの1次仮想計算機のフェイルオーバ時に、前記クラスタのすべての1次仮想計算機により、そのそれぞれの2次仮想計算機にフェイルオーバさせること
    をさらに含む、方法。
  2. 前記クラスタの少なくとも1つの1次仮想計算機について、前記クラスタ内のフェイルオーバの発生時に、前記少なくとも1つの1次仮想計算機が前のチェックポイント以降に内部バス・データを受信したかどうかを判断し、受信していない場合、前記クラスタの他の1次仮想計算機がフェイルオーバするときに、前記少なくとも1つの1次仮想計算機がそのそれぞれの2次仮想計算機にフェイルオーバするのを防止する、請求項1記載の方法。
  3. 前記クラスタが少なくとも1つの追加の1次仮想計算機をさらに含み、前記方法が、前記クラスタの他の1次仮想計算機がフェイルオーバするときに前記少なくとも1つの追加の1次計算機の動作を停止することをさらに含む、請求項1または請求項2記載の方法。
  4. 前記クラスタのすべてのまたはそれぞれの前記追加の1次仮想計算機が、前記内部バスを介してすべてのまたはそれぞれの他の1次仮想計算機からデータを受信し、受信時にこれを処理するように接続され、前記方法が、
    前記クラスタのすべてのまたはそれぞれの追加の1次仮想計算機について、次のチェックポイントが発生するまで、受信した内部バス・データを基礎として生成したデータを外部バスにリリースするのを防止すること
    をさらに含む、請求項3記載の方法。
  5. フェイルオーバに続いて、それぞれの2次仮想計算機を新しいクラスタ内の1次仮想計算機として再指定し、新しいそれぞれの2次仮想計算機を指定することをさらに含む、請求項1ないし4のいずれかに記載の方法。
  6. 1つまたは複数のデータ記憶装置と結合された少なくとも1つのプロセッサ・デバイスを有するコンピュータ・システムを含む装置であって、前記システムが仮想計算機のクラスタを操作するように構成され、前記クラスタが2つまたはそれ以上の1次仮想計算機を含み、それぞれの仮想計算機が外部データ・バスにリンクされ、
    a.それぞれの1次仮想計算機がデータを生成して前記外部バス上でこれを送信し、前記外部バスからデータを受信して処理するように動作可能であり、
    b.前記クラスタのそれぞれの1次仮想計算機について、前記システムが、チェックポイント手順により、フェイルオーバが発生した場合にその1次仮想計算機のタスクを引き受けるようにそれぞれの2次仮想計算機を維持し、
    c.フェイルオーバの検出時に、前記システムがそのそれぞれの2次仮想計算機にそれぞれの1次仮想計算機のタスクを転送し、それぞれの2次仮想計算機が、フェイルオーバ・イベントの直前のチェックポイントにおいてそのそれぞれの1次仮想計算機の状態をミラーリングし、
    d.前記システムが、前記クラスタのすべての1次仮想計算機に関するチェックポイントを同期するように制御し、
    e.前記システムが内部バス・メカニズムをさらに含み、前記クラスタのそれぞれの1次仮想計算機が、前記内部バスを介してすべてのまたはそれぞれの他の1次仮想計算機からデータを受信し、受信時にこれを処理するように接続され、
    f.前記1つまたは複数の記憶装置を使用して、前記クラスタのそれぞれの1次仮想計算機が、受信した内部バス・データを基礎として生成した外部バス・データをバッファリングし、次のチェックポイントが発生したときにこれを外部バスにリリースし、
    g.前記クラスタの1つの1次仮想計算機のフェイルオーバ時に、前記システムが、そのそれぞれの2次仮想計算機にフェイルオーバするよう、前記クラスタのすべての1次仮想計算機に指示する、装置。
  7. それぞれの1次および2次仮想計算機が、それぞれのハイパーバイザにより前記システムの残りの部分にリンクされる、請求項6記載の装置。
  8. 前記クラスタのすべての1次仮想計算機が単一のプロセッサ・デバイスによってホストとして処理され、単一のハイパーバイザによりリンクされる、請求項7記載の装置。
  9. 前記クラスタの1次仮想計算機が2つまたはそれ以上のプロセッサ・デバイスによってホストとして処理され、それぞれのハイパーバイザが内部バス・データの交換のために接続される、請求項7記載の装置。
  10. 前記クラスタの少なくとも1つの1次仮想計算機について、前記クラスタ内のフェイルオーバの発生時に、前記システムが、前記少なくとも1つの1次仮想計算機が前のチェックポイント以降に内部バス・データを受信したかどうかを判断し、受信していない場合、前記クラスタの他の1次仮想計算機がフェイルオーバするときに、前記少なくとも1つの1次仮想計算機がそのそれぞれの2次仮想計算機にフェイルオーバするのを前記システムにより防止される、請求項6ないし9のいずれかに記載の装置。
  11. 前記クラスタが、前記クラスタの他の1次仮想計算機がフェイルオーバするときにその動作が前記システムによって停止される、少なくとも1つの追加の1次仮想計算機をさらに含む、請求項6ないし10のいずれかに記載の装置。
  12. 前記クラスタのすべてのまたはそれぞれの前記追加の1次仮想計算機が、前記内部バスを介してすべてのまたはそれぞれの他の1次仮想計算機からデータを受信し、受信時にこれを処理するように接続され、
    前記1つまたは複数の記憶装置を使用して、前記クラスタのすべてのまたはそれぞれの前記追加の1次仮想計算機が、受信した内部バス・データを基礎として生成した外部バス・データをバッファリングし、次のチェックポイントが発生したときにこれを外部バスにリリースする、請求項11記載の装置。
  13. コンピュータ可読媒体上に保管され、デジタル・コンピュータの内部メモリにロード可能であり、コンピュータ上で実行されるときに、請求項1ないし6のいずれかに記載の方法を実行するためのソフトウェア・コード部分を含む、コンピュータ・プログラム。
  14. クライアント・コンピュータにおいて第1のコンピュータ・リソースを作成するためのコンピュータ・プログラム製品であって、前記コンピュータ・プログラム製品が、
    処理回路によって読み取り可能であり、請求項1ないし6のいずれかに記載の方法を実行するための方法を実行するために前記処理回路による実行のための命令を保管するコンピュータ可読記憶媒体
    を含む、コンピュータ・プログラム製品。
JP2013545275A 2010-12-21 2011-12-19 仮想計算機のクラスタを操作するための方法、装置、コンピュータ・プログラム、およびコンピュータ・プログラム製品 Active JP6128526B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP10196296.7 2010-12-21
EP10196296 2010-12-21
PCT/EP2011/073262 WO2012084839A1 (en) 2010-12-21 2011-12-19 Method for virtual machine failover management and system supporting the same

Publications (2)

Publication Number Publication Date
JP2014503904A true JP2014503904A (ja) 2014-02-13
JP6128526B2 JP6128526B2 (ja) 2017-05-17

Family

ID=45406750

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013545275A Active JP6128526B2 (ja) 2010-12-21 2011-12-19 仮想計算機のクラスタを操作するための方法、装置、コンピュータ・プログラム、およびコンピュータ・プログラム製品

Country Status (7)

Country Link
US (1) US9690662B2 (ja)
JP (1) JP6128526B2 (ja)
CN (1) CN103262044B (ja)
DE (1) DE112011104471T5 (ja)
GB (1) GB2501204B (ja)
TW (1) TWI537828B (ja)
WO (1) WO2012084839A1 (ja)

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
DE112012001761T5 (de) * 2011-04-21 2014-02-06 International Business Machines Corp. Hochverfügbarkeit von virtuellen Maschinen
JP5821631B2 (ja) * 2011-12-28 2015-11-24 富士通株式会社 再生装置、再生方法、及び再生プログラム
US9021294B2 (en) * 2012-03-16 2015-04-28 Sungard Availability Services Lp Discovering boot order sequence of servers belonging to an application
CN102819465B (zh) * 2012-06-29 2014-09-24 华中科技大学 一种虚拟化环境中故障恢复的方法
US9063721B2 (en) 2012-09-14 2015-06-23 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
US9069594B1 (en) 2012-12-27 2015-06-30 Emc Corporation Burst buffer appliance comprising multiple virtual machines
US9262090B2 (en) * 2013-02-26 2016-02-16 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Asynchronous data mirroring in memory controller
US20140280800A1 (en) * 2013-03-14 2014-09-18 Alcatel-Lucent Bell Labs France Apparatus and method to maintain consistent operational states in in cloud-based infrastructures
US9208015B2 (en) 2013-06-18 2015-12-08 Vmware, Inc. Hypervisor remedial action for a virtual machine in response to an error message from the virtual machine
US9483352B2 (en) * 2013-09-27 2016-11-01 Fisher-Rosemont Systems, Inc. Process control systems and methods
US10341245B2 (en) * 2014-03-24 2019-07-02 Vmware, Inc. Bursty data transmission in a congestion controlled network
US9582373B2 (en) * 2014-03-31 2017-02-28 Vmware, Inc. Methods and systems to hot-swap a virtual machine
WO2016054770A1 (en) * 2014-10-08 2016-04-14 Intel Corporation Techniques for checkpointing/delivery between primary and secondary virtual machines
US10374924B1 (en) * 2014-12-05 2019-08-06 Amazon Technologies, Inc. Virtualized network device failure detection
US9483360B1 (en) 2015-05-27 2016-11-01 Red Hat Israel, Ltd. Guest-driven virtual machine backups
EP3300298B1 (en) * 2015-06-30 2020-11-25 Huawei Technologies Co., Ltd. Method and apparatus for switching vnf
FR3039347B1 (fr) * 2015-07-20 2017-09-08 Bull Sas Procede de sauvegarde de l'environnement de travail d'une session d'un utilisateur sur un serveur
WO2017209955A1 (en) 2016-05-31 2017-12-07 Brocade Communications Systems, Inc. High availability for virtual machines
US9934095B2 (en) * 2016-06-29 2018-04-03 International Business Machines Corporation System, method and recording medium for antifragile computing problem management
TWI592796B (zh) 2016-09-19 2017-07-21 Univ Nat Central 運用於雲端服務之虛擬機之封包察覺式容錯方法及系統、電腦可讀取之記錄媒體及電腦程式產品
US10908998B2 (en) * 2017-08-08 2021-02-02 Toshiba Memory Corporation Managing function level reset in an IO virtualization-enabled storage device
US11113270B2 (en) 2019-01-24 2021-09-07 EMC IP Holding Company LLC Storing a non-ordered associative array of pairs using an append-only storage medium
US10866870B2 (en) * 2019-01-31 2020-12-15 Hewlett Packard Enterprise Development Lp Data store and state information handover
US11599546B2 (en) 2020-05-01 2023-03-07 EMC IP Holding Company LLC Stream browser for data streams
US11604759B2 (en) 2020-05-01 2023-03-14 EMC IP Holding Company LLC Retention management for data streams
US11340834B2 (en) 2020-05-22 2022-05-24 EMC IP Holding Company LLC Scaling of an ordered event stream
US11360992B2 (en) 2020-06-29 2022-06-14 EMC IP Holding Company LLC Watermarking of events of an ordered event stream
US11340792B2 (en) 2020-07-30 2022-05-24 EMC IP Holding Company LLC Ordered event stream merging
US11599420B2 (en) * 2020-07-30 2023-03-07 EMC IP Holding Company LLC Ordered event stream event retention
US11288143B2 (en) * 2020-08-26 2022-03-29 Stratus Technologies Ireland Ltd. Real-time fault-tolerant checkpointing
US11354444B2 (en) 2020-09-30 2022-06-07 EMC IP Holding Company LLC Access control for an ordered event stream storage system
US11513871B2 (en) 2020-09-30 2022-11-29 EMC IP Holding Company LLC Employing triggered retention in an ordered event stream storage system
US11755555B2 (en) 2020-10-06 2023-09-12 EMC IP Holding Company LLC Storing an ordered associative array of pairs using an append-only storage medium
US11599293B2 (en) 2020-10-14 2023-03-07 EMC IP Holding Company LLC Consistent data stream replication and reconstruction in a streaming data storage platform
US11354054B2 (en) 2020-10-28 2022-06-07 EMC IP Holding Company LLC Compaction via an event reference in an ordered event stream storage system
KR102411260B1 (ko) * 2020-11-06 2022-06-21 한국전자기술연구원 러기드 환경에서 관리 모듈간 데이터 이중화 처리 방법
US11347568B1 (en) 2020-12-18 2022-05-31 EMC IP Holding Company LLC Conditional appends in an ordered event stream storage system
US11816065B2 (en) 2021-01-11 2023-11-14 EMC IP Holding Company LLC Event level retention management for data streams
US11526297B2 (en) 2021-01-19 2022-12-13 EMC IP Holding Company LLC Framed event access in an ordered event stream storage system
US11740828B2 (en) 2021-04-06 2023-08-29 EMC IP Holding Company LLC Data expiration for stream storages
US12001881B2 (en) 2021-04-12 2024-06-04 EMC IP Holding Company LLC Event prioritization for an ordered event stream
US11513714B2 (en) 2021-04-22 2022-11-29 EMC IP Holding Company LLC Migration of legacy data into an ordered event stream
US11954537B2 (en) 2021-04-22 2024-04-09 EMC IP Holding Company LLC Information-unit based scaling of an ordered event stream
US11681460B2 (en) 2021-06-03 2023-06-20 EMC IP Holding Company LLC Scaling of an ordered event stream based on a writer group characteristic
US11735282B2 (en) 2021-07-22 2023-08-22 EMC IP Holding Company LLC Test data verification for an ordered event stream storage system
US11971850B2 (en) 2021-10-15 2024-04-30 EMC IP Holding Company LLC Demoted data retention via a tiered ordered event stream data storage system

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09251404A (ja) * 1996-03-15 1997-09-22 Toshiba Corp チェックポイント生成方法
JP2006519423A (ja) * 2003-03-21 2006-08-24 インテル コーポレイション 仮想マシンのための動的なサービス・レジストリ
JP2008140198A (ja) * 2006-12-04 2008-06-19 Hitachi Ltd フェイルオーバ方法、およびその計算機システム。
US20080201602A1 (en) * 2007-02-16 2008-08-21 Symantec Corporation Method and apparatus for transactional fault tolerance in a client-server system
JP2009116859A (ja) * 2007-09-30 2009-05-28 Symantec Corp 1つ以上の仮想マシンをマイグレートするシステムおよび方法
JP2010160660A (ja) * 2009-01-07 2010-07-22 Nec Corp ネットワークインタフェース、計算機システム、それらの動作方法、及びプログラム

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2353113B (en) * 1999-08-11 2001-10-10 Sun Microsystems Inc Software fault tolerant computer system
US7213246B1 (en) 2002-03-28 2007-05-01 Veritas Operating Corporation Failing over a virtual machine
US8539137B1 (en) * 2006-06-09 2013-09-17 Parallels IP Holdings GmbH System and method for management of virtual execution environment disk storage
US9354927B2 (en) 2006-12-21 2016-05-31 Vmware, Inc. Securing virtual machine data
US20080189700A1 (en) 2007-02-02 2008-08-07 Vmware, Inc. Admission Control for Virtual Machine Cluster
US8407518B2 (en) * 2007-10-26 2013-03-26 Vmware, Inc. Using virtual machine cloning to create a backup virtual machine in a fault tolerant system
CN101593136B (zh) * 2008-05-30 2012-05-02 国际商业机器公司 使得计算机具有高可用性的方法和计算机系统
US8499297B2 (en) * 2008-10-28 2013-07-30 Vmware, Inc. Low overhead fault tolerance through hybrid checkpointing and replay
US8201169B2 (en) * 2009-06-15 2012-06-12 Vmware, Inc. Virtual machine fault tolerance
US8145945B2 (en) * 2010-01-04 2012-03-27 Avaya Inc. Packet mirroring between primary and secondary virtualized software images for improved system failover performance
US8650564B2 (en) * 2010-10-19 2014-02-11 Vmware, Inc. Method and system for synchronizing fault-tolerant virtual machines and adjusting CPU resource limit based on execution latency
US9176829B2 (en) * 2011-07-01 2015-11-03 Microsoft Technology Licensing, Llc Managing recovery virtual machines in clustered environment

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09251404A (ja) * 1996-03-15 1997-09-22 Toshiba Corp チェックポイント生成方法
JP2006519423A (ja) * 2003-03-21 2006-08-24 インテル コーポレイション 仮想マシンのための動的なサービス・レジストリ
JP2008140198A (ja) * 2006-12-04 2008-06-19 Hitachi Ltd フェイルオーバ方法、およびその計算機システム。
US20080201602A1 (en) * 2007-02-16 2008-08-21 Symantec Corporation Method and apparatus for transactional fault tolerance in a client-server system
JP2009116859A (ja) * 2007-09-30 2009-05-28 Symantec Corp 1つ以上の仮想マシンをマイグレートするシステムおよび方法
JP2010160660A (ja) * 2009-01-07 2010-07-22 Nec Corp ネットワークインタフェース、計算機システム、それらの動作方法、及びプログラム

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JPN6015029864; Minjia ZHANG et al.: '"VirtCFT: A Transparent VM-Level Fault-Tolerant System for Virtual Clusters"' IEEE 16th International Conference on Parallel and Distributed Systems (ICPADS),2010 , 20101210, pages:147-154, IEEE *
JPN6015029865; Brendan CULLY et al.: '"Remus: High Availability via Asynchronous Virtual Machine Replication"' NSDI'08: 5th USENIX Symposium on Networked Systems Design and Implementation , 20080416, pages:161-174, The University of British Columbia *

Also Published As

Publication number Publication date
JP6128526B2 (ja) 2017-05-17
GB2501204B (en) 2020-01-15
GB201312920D0 (en) 2013-09-04
CN103262044A (zh) 2013-08-21
GB2501204A (en) 2013-10-16
US9690662B2 (en) 2017-06-27
DE112011104471T5 (de) 2013-10-17
WO2012084839A1 (en) 2012-06-28
TW201235947A (en) 2012-09-01
CN103262044B (zh) 2016-03-30
TWI537828B (zh) 2016-06-11
US20130275808A1 (en) 2013-10-17

Similar Documents

Publication Publication Date Title
JP6128526B2 (ja) 仮想計算機のクラスタを操作するための方法、装置、コンピュータ・プログラム、およびコンピュータ・プログラム製品
US8812907B1 (en) Fault tolerant computing systems using checkpoints
US11507477B2 (en) Virtual machine fault tolerance
Scales et al. The design of a practical system for fault-tolerant virtual machines
JP5661176B2 (ja) 遠隔仮想計算機全体にわたって耐故障チェックポインティングを達成するための方法及びシステム
Rajagopalan et al. SecondSite: disaster tolerance as a service
US10425348B2 (en) Stateless network functions
US7523344B2 (en) Method and apparatus for facilitating process migration
EP3090345B1 (en) Method of delaying checkpoints by inspecting network packets
US9251002B2 (en) System and method for writing checkpointing data
US9588844B2 (en) Checkpointing systems and methods using data forwarding
US9754007B2 (en) Checkpoint capture and tracking in a high availability system
CN103761166A (zh) 一种虚拟化环境下针对网络服务的双机热备份容灾系统及其方法
EP2798496B1 (en) Method and apparatus for synchronization in primary-backup replication schemes
Deshpande et al. Scatter-gather live migration of virtual machines
CN111400086B (zh) 虚拟机容错的实现方法和系统
Scales et al. The design and evaluation of a practical system for fault-tolerant virtual machines
JP6056408B2 (ja) フォールトトレラントシステム
JP5335150B2 (ja) 計算機装置及びプログラム
Jiang et al. Lightweight live migration for high availability cluster service
Colesa et al. Transparent fault-tolerance based on asynchronous virtual machine replication
Kyriazis et al. High performance fault-tolerance for clouds
JP2022040028A (ja) リアルタイム耐障害性チェックポインティング
Cully Extending systems with virtual hardware aggregation
Ye et al. High Availability through Output Continuity

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140711

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150624

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150728

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20151022

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151022

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20151022

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20151023

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160405

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20160616

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160616

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20161115

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161206

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20161206

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20161219

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

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20170310

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20170310

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170404

R150 Certificate of patent or registration of utility model

Ref document number: 6128526

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150