仮想計算機のクラスタを操作するための方法であって、前記クラスタが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次仮想計算機がそのそれぞれの2次仮想計算機にフェイルオーバするのを防止する、請求項1記載の方法。前記クラスタが少なくとも1つの追加の1次仮想計算機をさらに含み、前記方法が、前記クラスタの他の1次仮想計算機がフェイルオーバするときに前記少なくとも1つの追加の1次計算機の動作を停止することをさらに含む、請求項1または請求項2記載の方法。前記クラスタのすべてのまたはそれぞれの前記追加の1次仮想計算機が、前記内部バスを介してすべてのまたはそれぞれの他の1次仮想計算機からデータを受信し、受信時にこれを処理するように接続され、前記方法が、前記クラスタのすべてのまたはそれぞれの追加の1次仮想計算機について、次のチェックポイントが発生するまで、受信した内部バスデータを基礎として生成したデータを外部バスにリリースするのを防止することをさらに含む、請求項3記載の方法。フェイルオーバに続いて、それぞれの2次仮想計算機を新しいクラスタ内の1次仮想計算機として再指定し、新しいそれぞれの2次仮想計算機を指定することをさらに含む、請求項1ないし4のいずれかに記載の方法。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次仮想計算機に指示する、装置。それぞれの1次および2次仮想計算機が、それぞれのハイパーバイザにより前記システムの残りの部分にリンクされる、請求項6記載の装置。前記クラスタのすべての1次仮想計算機が単一のプロセッサデバイスによってホストとして処理され、単一のハイパーバイザによりリンクされる、請求項7記載の装置。前記クラスタの1次仮想計算機が2つまたはそれ以上のプロセッサデバイスによってホストとして処理され、それぞれのハイパーバイザが内部バスデータの交換のために接続される、請求項7記載の装置。前記クラスタの少なくとも1つの1次仮想計算機について、前記クラスタ内のフェイルオーバの発生時に、前記システムが、前記少なくとも1つの1次仮想計算機が前のチェックポイント以降に内部バスデータを受信したかどうかを判断し、受信していない場合、前記クラスタの他の1次仮想計算機がフェイルオーバするときに、前記少なくとも1つの1次仮想計算機がそのそれぞれの2次仮想計算機にフェイルオーバするのを前記システムにより防止される、請求項6ないし9のいずれかに記載の装置。前記クラスタが、前記クラスタの他の1次仮想計算機がフェイルオーバするときにその動作が前記システムによって停止される、少なくとも1つの追加の1次仮想計算機をさらに含む、請求項6ないし10のいずれかに記載の装置。前記クラスタのすべてのまたはそれぞれの前記追加の1次仮想計算機が、前記内部バスを介してすべてのまたはそれぞれの他の1次仮想計算機からデータを受信し、受信時にこれを処理するように接続され、前記1つまたは複数の記憶装置を使用して、前記クラスタのすべてのまたはそれぞれの前記追加の1次仮想計算機が、受信した内部バスデータを基礎として生成した外部バスデータをバッファリングし、次のチェックポイントが発生したときにこれを外部バスにリリースする、請求項11記載の装置。コンピュータ可読媒体上に保管され、デジタルコンピュータの内部メモリにロード可能であり、コンピュータ上で実行されるときに、請求項1ないし6のいずれかに記載の方法を実行するためのソフトウェアコード部分を含む、コンピュータプログラム。クライアントコンピュータにおいて第1のコンピュータリソースを作成するためのコンピュータプログラム製品であって、前記コンピュータプログラム製品が、処理回路によって読み取り可能であり、請求項1ないし6のいずれかに記載の方法を実行するための方法を実行するために前記処理回路による実行のための命令を保管するコンピュータ可読記憶媒体を含む、コンピュータプログラム製品。したがって、当技術分野では前述の問題に対処する必要がある。本発明の第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のコンピュータリソースを作成するためのコンピュータプログラム製品computerprogramproductを提供し、このコンピュータプログラム製品は、処理回路によって読み取り可能であり、本発明の諸ステップを実行するための方法を実行するために処理回路による実行のための命令を保管するコンピュータ可読記憶媒体を含む。他の態様から見ると、本発明は、コンピュータ可読媒体上に保管され、デジタルコンピュータの内部メモリにロード可能であり、コンピュータ上で実行されるときに、本発明の諸ステップを実行するためのソフトウェアコード部分を含む、コンピュータプログラムを提供する。有利なことに、本発明は、ネットワーク通信の性能を改善し、特に、チェックポインティングを使用してシステム上で実行している仮想計算機間の通信に関する待ち時間を短縮するための方法を提供する。本発明の概要では本発明の必要な特徴をすべて列挙しているわけではなく、このような特徴の一部の組み合わせも本発明を包含することができる。次に、以下の図に例示されているように、好ましい諸実施形態に関連して、例としてのみ、本発明について説明する。図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次仮想計算機VMP110、112および1つの2次仮想計算機VMS114をホストとして処理する。第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つの仮想計算機が故障した場合に、実行し続けるために、すべての仮想計算機を破壊ならびに再現しなければならないので、この技法は相互保証ネットワーク破壊mutuallyassurednetworkdestructionと記述することができる。図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つ存在する。すべての仮想計算機をミラーリングしなければならないわけではないが、すべての仮想計算機では、ミラーリングされた計算機上のチェックポイントが完了するまで、外部から見えるトランザクションをすべて遅延させなければならない。この状況で障害が発生した場合、ミラーリングされた計算機は上記のようにフェイルオーバしなければならず、ミラーリングされない計算機は停止しなければならない。本発明の諸実施形態について上記で説明してきたが、本発明の技術範囲は上記の諸実施形態の範囲に限定されない。この諸実施形態に対し様々な変更および改良を行うことができることは、当業者にとって明白なことであるはずである。このような変更または改良を含む実現例が本発明の技術範囲に包含されることは、特許請求の範囲の記述から明白である。