(57)【要約】【課題】仮想マシンが高速に通信を行うことができ、計算機に障害が発生した場合でも計算を継続することが可能なネットワークインタフェースを提供する。【解決手段】ネットワークインタフェースは、仮想マシンと仮想マシンモニタとを備える現用系ホストと、ネットワークを介して前記現用系ホストに接続された予備系ホストとを具備する計算機システム用のネットワークインタフェースであって、パケット取得手段と、パケット管理手段とを具備する。パケット取得手段は、仮想マシンからネットワークに送信するパケットを受信する。パケット管理手段は、パケットをネットワークに送信する送信タイミングを仮想マシンモニタから受信する。【選択図】図３
2010160660.tif 000002
【特許請求の範囲】
【請求項１】
仮想マシンと仮想マシンモニタとを備える現用系ホストと、ネットワークを介して前記現用系ホストに接続された予備系ホストとを具備する計算機システム用のネットワークインタフェースであって、
前記仮想マシンからネットワークに送信するパケットを受信するパケット取得手段と、
前記パケットを前記ネットワークに送信する送信タイミングを前記仮想マシンモニタから受信するパケット管理手段と
を具備する
ネットワークインタフェース。
【請求項２】
請求項１に記載のネットワークインタフェースにおいて、
前記パケット取得手段は、
受信された前記パケットを蓄積する蓄積手段を備え、
前記パケット管理手段は、
前記仮想マシンのチェックポイントを取得したタイミングを前記仮想マシンモニタから受信し、前記蓄積手段に蓄積された前記パケットを、前記チェックポイントに関連付けて分類する分類手段と、
前記予備系ホストが送信したチェックポイント応答番号を前記送信タイミングとして前記仮想マシンモニタから受信し、前記チェックポイント応答番号に対応する前記チェックポイントに分類された前記蓄積手段内の前記パケットを前記ネットワークに送信する送信手段と
を備える
ネットワークインタフェース。
【請求項３】
ネットワークインタフェースと仮想マシンと仮想マシンモニタとを備える現用系ホストと、
ネットワークを介して前記現用系ホストに接続された予備系ホストと
を具備し、
前記ネットワークインタフェースは、
前記仮想マシンから前記ネットワークに送信するパケットを受信するパケット取得手段と、
前記パケットを前記ネットワークに送信する送信タイミングを前記仮想マシンモニタから受信するパケット管理手段と
を備える
計算機システム。
【請求項４】
請求項３に記載の計算機システムにおいて、
前記ネットワークインタフェースの前記パケット取得手段が、
受信された前記パケットを蓄積する蓄積手段を備え、
前記仮想マシンモニタが、
前記仮想マシンの停止によるチェックポイントを取得したタイミング及び前記チェックポイントを識別するチェックポイント番号を前記ネットワークインタフェースに通知する第１制御手段を備え、
前記ネットワークインタフェースの前記パケット管理手段が、
受信された前記チェックポイント番号に基づいて、前記蓄積手段に蓄積された前記パケットを、前記チェックポイントに関連付けて分類する分類手段を備え、
前記仮想マシンモニタが、更に、
前記予備系ホストから受信したチェックポイント応答番号を前記ネットワークインタフェースに通知する第２制御手段を備え、
前記ネットワークインタフェースの前記パケット管理手段が、更に、
前記チェックポイント応答番号を前記送信タイミングとして受信し、前記チェックポイント応答番号に対応する前記チェックポイントに分類された前記蓄積手段内の前記パケットをネットワークに送信する送信手段を備える
計算機システム。
【請求項５】
請求項４に記載の計算機システムにおいて、
前記仮想マシンモニタは、更に、
前記仮想マシンを一定時間の間隔で停止する第３制御手段と、
前記仮想マシンの前回停止時から今回停止時までにメモリに書き込んだデータを検出する第４制御手段と、
前記仮想マシンの前記前回停止時から前記今回停止時までに２次記憶装置に書き込んだデータを検出する第５制御手段と、
前記仮想マシンの前記今回停止時における前記仮想マシンのＣＰＵのレジスタ情報を検出する第６制御手段と、
前記メモリに書き込んだデータと前記２次記憶装置に書き込んだデータと前記ＣＰＵのレジスタ情報とを、前記仮想マシンの前記前回停止時から前記今回停止時までの計算の差分としてチェックポイント情報を構成し、前記予備系ホストに送信する第７制御手段と
を備え、
前記第１制御手段は、前記第３制御手段の前記停止に対応して、前記チェックポイント番号を前記ネットワークインタフェースに通知し、
前記予備系ホストは、前記チェックポイント情報の受信に基づいて、前記チェックポイント応答番号を前記現用系ホストに送信する
計算機システム。
【請求項６】
仮想マシンと仮想マシンモニタとを備える現用系ホストと、ネットワークを介して前記現用系ホストに接続された予備系ホストとを具備する計算機システム用のネットワークインタフェースの動作方法であって、
前記仮想マシンからネットワークに送信するパケットを受信するパケット取得ステップと、
前記パケットを前記ネットワークに送信する送信タイミングを前記仮想マシンモニタから受信するパケット管理ステップと
を具備する
ネットワークインタフェースの動作方法。
【請求項７】
請求項６に記載のネットワークインタフェースの動作方法において、
前記パケット取得ステップは、
前記受信手段で受信された前記パケットを蓄積する蓄積ステップを備え、
前記パケット管理ステップは、
前記仮想マシンのチェックポイントを取得したタイミングを前記仮想マシンモニタから受信し、前記蓄積ステップで蓄積された前記パケットを、前記チェックポイントに関連付けて分類する分類ステップと、
前記予備系ホストが送信したチェックポイント応答番号を前記送信タイミングとして前記仮想マシンモニタから受信し、前記チェックポイント応答番号に対応する前記チェックポイントに分類された前記蓄積された前記パケットをネットワークに送信する送信ステップと
を備える
ネットワークインタフェースの動作方法。
【請求項８】
ネットワークインタフェースと仮想マシンと仮想マシンモニタとを備える現用系ホストと、ネットワークを介して前記現用系ホストに接続された予備系ホストとを具備する計算機システムの動作方法であって、
前記ネットワークインタフェースが、前記仮想マシンから前記ネットワークに送信するパケットを受信するパケット取得ステップと、
前記ネットワークインタフェースが、前記パケットを前記ネットワークに送信する送信タイミングを前記仮想マシンモニタから受信するパケット管理ステップと
を具備する
計算機システムの動作方法。
【請求項９】
請求項８に記載の計算機システムの動作方法において、
前記パケット取得ステップは、
前記ネットワークインタフェースが、受信された前記パケットを蓄積する蓄積ステップを備え、
前記パケット管理ステップは、
前記仮想マシンモニタが、前記仮想マシンの停止によるチェックポイントを取得したタイミング及び前記チェックポイントを識別するチェックポイント番号を前記ネットワークインタフェースに通知する第１制御ステップと、
前記ネットワークインタフェースが、受信された前記チェックポイント番号に基づいて、蓄積ステップで蓄積された前記パケットを、前記チェックポイントに関連付けて分類する分類ステップと、
前記仮想マシンモニタが、前記予備系ホストから受信したチェックポイント応答番号を前記ネットワークインタフェースに通知する第２制御ステップと、
前記ネットワークインタフェースが、前記チェックポイント応答番号を前記送信タイミングとして受信し、前記チェックポイント応答番号に対応する前記チェックポイントに分類された前記蓄積された前記パケットをネットワークに送信する送信ステップと
を備える
計算機システムの動作方法。
【請求項１０】
請求項９に記載の計算機システムの動作方法において、
前記第１制御ステップは、更に、
前記仮想マシンモニタが、前記仮想マシンを一定時間の間隔で停止する第３制御ステップと、
前記仮想マシンモニタが、前記仮想マシンの前回停止時から今回停止時までにメモリに書き込んだデータを検出する第４制御ステップと、
前記仮想マシンモニタが、前記仮想マシンの前記前回停止時から前記今回停止時までに２次記憶装置に書き込んだデータを検出する第５制御ステップと、
前記仮想マシンモニタが、前記仮想マシンの前記今回停止時における前記仮想マシンのＣＰＵのレジスタ情報を検出する第６制御ステップと、
前記仮想マシンモニタが、前記メモリに書き込んだデータと前記２次記憶装置に書き込んだデータと前記ＣＰＵのレジスタ情報とを、前記仮想マシンの前記前回停止時から前記今回停止時までの計算の差分としてチェックポイント情報を構成し、前記予備系ホストに送信する第７制御ステップと
を備え、
前記第１制御ステップは、前記第３制御ステップの前記停止に対応して、前記チェックポイント番号を前記ネットワークインタフェースに通知し、
前記予備系ホストは、前記チェックポイント情報の受信に基づいて、前記チェックポイント応答番号を前記現用系ホストに送信する
計算機システムの動作方法。
【請求項１１】
仮想マシンと仮想マシンモニタとを備える現用系ホストと、ネットワークを介して前記現用系ホストに接続された予備系ホストとを具備する計算機システム用のネットワークインタフェースの動作方法をコンピュータに実行させるためのプログラムであって、
仮想マシンからネットワークに送信するパケットを受信するパケット取得ステップと、
前記パケットを前記ネットワークに送信する送信タイミングを仮想マシンモニタから受信するパケット管理ステップと
を具備するネットワークインタフェースの動作方法をコンピュータに実行させるためのプログラム。
【請求項１２】
請求項１１に記載のプログラムにおいて、
前記パケット取得ステップは、
前記受信手段で受信された前記パケットを蓄積する蓄積ステップを備え、
前記パケット管理ステップは、
前記仮想マシンのチェックポイントを取得したタイミングを前記仮想マシンモニタから受信し、前記蓄積ステップで蓄積された前記パケットを、前記チェックポイントに関連付けて分類する分類ステップと、
前記予備系ホストが送信したチェックポイント応答番号を前記送信タイミングとして前記仮想マシンモニタから受信し、前記チェックポイント応答番号に対応する前記チェックポイントに分類された前記蓄積された前記パケットをネットワークに送信する送信ステップと
を備えるネットワークインタフェースの動作方法をコンピュータに実行させるためのプログラム。
【請求項１３】
ネットワークインタフェースと仮想マシンと仮想マシンモニタとを備える現用系ホストと、ネットワークを介して前記現用系ホストに接続された予備系ホストとを具備する計算機システムの動作方法をコンピュータに実行させるためのプログラムであって、
前記仮想マシンが、前記ネットワークに送信するパケットを前記ネットワークインタフェースに通知するパケット通知ステップと、
前記仮想マシンモニタが、前記パケットを前記ネットワークに送信する送信タイミングを前記ネットワークインタフェースに通知するタイミング通知ステップと
を具備する
計算機システムの動作方法をコンピュータに実行させるためのプログラム。
【請求項１４】
請求項１３に記載のプログラムにおいて、
前記タイミング通知ステップは、
前記仮想マシンモニタが、前記仮想マシンの停止によるチェックポイントを取得したタイミング及び前記チェックポイントを識別するチェックポイント番号を前記ネットワークインタフェースに通知する第１制御ステップと、
前記仮想マシンモニタが、前記予備系ホストから受信したチェックポイント応答番号を前記ネットワークインタフェースに通知する第２制御ステップと、
を備える
計算機システムの動作方法をコンピュータに実行させるためのプログラム。
【請求項１５】
請求項１４に記載のプログラムにおいて、
前記第１制御ステップは、更に、
前記仮想マシンモニタが、前記仮想マシンを一定時間の間隔で停止する第３制御ステップと、
前記仮想マシンモニタが、前記仮想マシンの前回停止時から今回停止時までにメモリに書き込んだデータを検出する第４制御ステップと、
前記仮想マシンモニタが、前記仮想マシンの前記前回停止時から前記今回停止時までに２次記憶装置に書き込んだデータを検出する第５制御ステップと、
前記仮想マシンモニタが、前記仮想マシンの前記今回停止時における前記仮想マシンのＣＰＵのレジスタ情報を検出する第６制御ステップと、
前記仮想マシンモニタが、前記メモリに書き込んだデータと前記２次記憶装置に書き込んだデータと前記ＣＰＵのレジスタ情報とを、前記仮想マシンの前記前回停止時から前記今回停止時までの計算の差分としてチェックポイント情報を構成し、前記予備系ホストに送信する第７制御ステップと
を備え、
前記第１制御ステップは、前記第３制御ステップの前記停止に対応して、前記チェックポイント番号を前記ネットワークインタフェースに通知し、
前記予備系ホストは、前記チェックポイント情報の受信に基づいて、前記チェックポイント応答番号を前記現用系ホストに送信する
計算機システムの動作方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はネットワークインタフェース、計算機システム、それらの動作方法、及びプログラムに関し、特に障害発生時に計算を継続できるネットワークインタフェース、計算機システム、それらの動作方法、及びプログラムに関する。
【背景技術】
【０００２】
計算機に障害が発生した場合でも計算を継続することが可能な計算機システムが知られている。例えば、は、Ｂ．Ｃｕｌｌｙ  ｅｔ  ａｌ．，“Ｒｅｍｕｓ：Ｈｉｇｈ  Ａｖａｉｌａｂｉｌｉｔｙ  ｖｉａ  Ａｓｙｎｃｈｒｏｎｏｕｓ  Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ  Ｒｅｐｌｉｃａｔｉｏｎ”，５ｔｈ  ＵＳＥＮＩＸ  Ｓｙｍｐｏｓｉｕｍ  ｏｎ  Ｎｅｔｗｏｒｋｅｄ  Ｓｙｓｔｅｍｓ  Ｄｅｓｉｇｎ  ａｎｄ  Ｉｍｐｌｅｍｅｎｔａｔｉｏｎ，２００８，ｐｐ．１６１−１７４に、そのような計算機システムの一例が記載されている。
【０００３】
図１は、障害が発生した場合でも計算を継続することが可能な計算機システムの構成を示すブロック図である。この計算機システムは、現用系ホスト（コンピュータ）１０６と、予備系ホスト（コンピュータ）１０２と、ネットワークスイッチ１０３と、外部ネットワーク１０４とを具備する。現用系ホスト１０６は、計算（情報処理）を行う。予備系ホスト１０２は、現用系ホスト１０６に障害が発生したとき、その計算を引き継ぐ。ネットワークスイッチ１０３は、現用系ホスト１０６と予備系ホスト１０２とを接続する。ネットワークスイッチ１０３は、外部ネットワーク１０４に接続されている。
【０００４】
現用系ホスト１０６は、仮想マシン１６１と、計算機ハードウェア１６３と、仮想マシンモニタ１６２とを備える。仮想マシン１６１は、オペレーティングシステムやアプリケーションを含み、計算を行う。計算機ハードウェア１６３は、現用系ホスト１０６の計算用ハードウェアである。仮想マシンモニタ１６２は、仮想マシン１６１の計算機ハードウェア１６３へのアクセスを制御する。ここで、仮想マシン１６１及び仮想マシンモニタ１６２は、現用系ホスト１０６上で動作するソフトウェアにより実現される。
【０００５】
計算機ハードウェア１６３は、ＣＰＵ１３１と、メモリ１３２と、２次記憶装置１３３と、ネットワークインタフェース６３１とを含む。ＣＰＵ１３１は、中央演算処理装置であり、計算を行う。メモリ１３２は、ＤＲＡＭ等で構成され、プログラムやデータを記憶する。２次記憶装置１３３は、ハードディスク等で構成され、プログラムやデータを記憶するための大容量の記憶領域を提供する。ネットワークインタフェース６３１は、現用系ホスト１０６をネットワークスイッチ１０３に接続する。
【０００６】
仮想マシンモニタ１６２は、チェックポイント制御部６２４と、転送バッファ６２３と、ダーティメモリ検出部１２１と、２次記憶装置制御部１２２と、パケットバッファ６２２と、出力パケット制御部６２１とを含む。チェックポイント制御部６２４は、現用系ホスト１０６の死活監視を行うと共に、一定周期毎に仮想マシン１６１を停止し、前回停止時との計算の差分であるチェックポイント情報を予備系ホスト１０２に送信する。転送バッファ６２３は、予備系ホスト１０２に送信するチェックポイント情報を記憶する。ダーティメモリ検出部１２１は、前回停止時から今回の停止時までに仮想マシン１６１がメモリ１３２に書き込んだデータを検出し、検出したデータを転送バッファ６２３に書き出す。２次記憶装置制御部１２２は、前回停止時から今回の停止時までに仮想マシン１６１が２次記憶装置１３３に書き込んだデータを書き込みが発生する度に検出し、検出したデータを転送バッファ６２３に書き出す。パケットバッファ６２２は、仮想マシン１６１が送信するネットワークパケットを記憶する。出力パケット制御部６２１は、仮想マシン１６１が送信するネットワークパケットをパケットバッファ６２２に記憶し、予備系ホスト１０２から受信したチェックポイント応答の応答番号に対応するネットワークパケットをネットワークスイッチ１０３に送信する。
【０００７】
詳細には、チェックポイント制御部６２４は、予備系ホスト１０２に含まれるチェックポイント制御部２２３との間で一定周期毎に死活監視の通信を行う。このとき、チェックポイント制御部２２３が本死活監視の通知を一定時間内に受信しない場合、予備系ホスト１０２（チェックポイント制御部２２３）は現用系ホスト１０６に障害が発生したと判断する。
【０００８】
更に、チェックポイント制御部６２４は、一定周期ごとに仮想マシン１６１を停止する。そして、ダーティメモリ検出部１２１に、前回停止時から今回停止時までに仮想マシン１６１がメモリ１３２に書き込んだデータを検出し、検出したデータを転送バッファ６２３に書き出すよう指示する。更に、チェックポイント制御部６２４は、仮想マシン１６１を停止したときの仮想マシン１６１のＣＰＵのレジスタ情報を転送バッファ６２３に書き出す。更に、出力パケット制御部６２１に仮想マシン１６１の停止したこと、及び、停止を識別するチェックポイント番号を通知する。続いて、チェックポイント制御部６２４は、仮想マシン１６１を再開する。仮想マシン１６１を再開させた後、チェックポイント制御部６２４は、ダーティメモリ検出部１２１が仮想マシン１６１の停止時に転送バッファ６２３に書き出したダーティメモリと、２次記憶装置制御部１２２が転送バッファ６２３に書き出していた仮想マシン６１の２次記憶装置１３３への書き込みと、仮想マシン６１を停止させたときのＣＰＵ１３１のレジスタ情報とを予備系ホスト１０２にチェックポイント番号を付けてチェックポイント情報として送信する。更に、チェックポイント制御部６２４は、予備系ホスト１０２から受信したチェックポイント応答の応答番号を確認し、出力パケット制御部６２１に通知する。
【０００９】
２次記憶装置制御部１２２は、仮想マシン１６１による２次記憶装置１３３への書き込みを監視する。そして、仮想マシン１６１が２次記憶装置１３３に書き込みを行う度に転送バッファ６２３に書き込みデータをコピーする。
【００１０】
出力パケット制御部６２１は、仮想マシン１６１がネットワークインタフェース６３１からネットワークスイッチ１０３にネットワークパケットを送信する場合に呼び出され、仮想マシン１６１が送信するネットワークパケットを一度パケットバッファ６２２に蓄積する。更に、出力パケット制御部６２１は、チェックポイント制御部６２４が仮想マシン１６１を停止した際、仮想マシン１６１の停止を識別するチェックポイント番号をチェックポイント制御部６２４から受信する。そして、仮想マシン１６１の前回停止時から今回停止時までに仮想マシン１６１が送信したネットワークパケットを、チェックポイント番号に対応したネットワークパケットとして識別し、その識別情報（例示：チェックポイント番号）をパケットバッファ６２２に追記する。更に、出力パケット制御部６２１は、チェックポイント制御部６２４が予備系ホスト１０２からチェックポイント応答を受信した際、チェックポイント制御部６２４からチェックポイント応答に記載されたチェックポイント応答番号を受信する。そして、応答番号に該当するネットワークパケットをパケットバッファ６２２から抽出し、ネットワークインタフェース６３１を介してネットワークスイッチ３に送信する。
【００１１】
予備系ホスト１０２は、仮想マシン２１と、計算機ハードウェア２３と、仮想マシンモニタ２２とを具備する。仮想マシン２１は、現用系ホスト１０６に障害が発生した場合に計算を引き継ぐ。計算機ハードウェア２３は、予備系ホスト１０２の計算用ハードウェアである。仮想マシンモニタ２２は、仮想マシン１６１の計算の経過をチェックポイントの周期で仮想マシン２１に反映させる。ここで、仮想マシン２１及び仮想マシンモニタ２２は、予備系ホスト１０２上で動作するソフトウェアにより実現される。
【００１２】
計算機ハードウェア２３の構成は、現用系ホスト１０６が含む計算機ハードウェア１６３の構成と同じである。すなわち、ＣＰＵ２３１、メモリ２３２、２次記憶装置２３３、及びネットワークインタフェース２３４が、それぞれＣＰＵ１３１、メモリ１３２、２次記憶装置１３３、及びネットワークインタフェース６３１に対応する。
【００１３】
仮想マシン２１は、現用系ホスト１０６に障害が発生し、計算を引き継ぐまで停止している。
【００１４】
仮想マシンモニタ２２は、ダーティメモリ書き込み部２２１と、２次記憶装置制御部２２２と、チェックポイント制御部２２３とを含む。ダーティメモリ書き込み部２２１は、現用系ホスト１０６から受信したダーティメモリのデータをメモリ２３２に反映させる。２次記憶装置制御部２２２は、現用系ホスト１０６から受信した２次記憶装置に書き込まれたデータを２次記憶装置２３３に反映させる。チェックポイント制御部２２３は、現用系ホスト１０６が含むチェックポイント制御部６２４から一定周期毎に死活監視の通信を行う。そして、一定時間内に死活監視の通知を受信しない場合、仮想マシン２１に計算を切り替える。それと共に、チェックポイント制御部６２４からチェックポイント情報を受信し、受信した情報をダーティメモリ書き込み部２２１と２次記憶装置制御部２２２とに通知し、仮想マシン６１のＣＰＵのレジスタ情報を仮想マシン２１のＣＰＵのレジスタ情報に反映させる。
【００１５】
詳細には、チェックポイント制御部２２３は、一定時間内に死活監視の通知を受信しない場合、現用系ホスト１０６に障害が発生したと判断し、チェックポイント制御部６２４から受信したチェックポイント情報を予備系ホスト１０２に全て反映させた後仮想マシン２１を開始させる。また、チェックポイント制御部２２３は、一定周期毎にチェックポイント情報を受信し、受信した情報の中で、ダーティメモリに関するデータをダーティメモリ書き込み部２２１に、２次記憶装置に関するデータを２次記憶装置制御部２２２に通知し、ＣＰＵのレジスタ情報を仮想マシン２１に反映させる。また、チェックポイント情報に記載されたチェックポイント番号を確認し、現用系ホスト１０６にチェックポイント番号を応答番号として記載したチェックポイント応答を送信する。
【００１６】
図２は、図１に示す計算機システムの動作の一例を示すフローチャートである。この図は、出力パケット制御部６２１がネットワークスイッチ１０３にネットワークパケットを送信するタイミングを示している。仮想マシン１６１は、ネットワークパケットを送信する（ステップＳ１０１）。出力パケット制御部６２１は、パケットバッファ６２２に仮想マシン１６１が送信したパケットを一度書き込む（ステップＳ１０２）。
【００１７】
チェックポイント制御部６２４は、仮想マシン１６１の一定周期毎の停止（ステップＳ１０３）に応答して、仮想マシン１６１の停止を識別するチェックポイント番号を生成し、出力パケット制御部６２１へ出力する（ステップＳ１０４）。出力パケット制御部６２１は、そのチェックポイント番号を受信する。そして、仮想マシン１６１の前回停止時から今回停止時までに仮想マシン１６１が送信したネットワークパケットを、チェックポイント番号に対応したネットワークパケットとして識別し、その識別情報（例示：チェックポイント番号）をパケットバッファ６２２に追記する（ステップＳ１０５）。チェックポイント制御部６２４は、仮想マシン１６１の再開（ステップＳ１０６）の後、ダーティメモリと、２次記憶装置１３３への書き込みと、ＣＰＵ１３１のレジスタ情報とを予備系ホスト１０２にチェックポイント番号を付けてチェックポイント情報として送信する（ステップＳ１０７）。
【００１８】
チェックポイント制御部２２３は、チェックポイント制御部６２４からチェックポイント情報を受信し、受信した情報をダーティメモリ書き込み部２２１と２次記憶装置制御部２２２とに通知し、仮想マシン１６１のＣＰＵのレジスタ情報を仮想マシン２１のＣＰＵのレジスタ情報に反映させる（ステップＳ１０８）。また、チェックポイント情報に記載されたチェックポイント番号を確認し、現用系ホスト１０６にチェックポイント番号を応答番号として記載したチェックポイント応答を送信する（ステップＳ１０９）。
【００１９】
チェックポイント制御部６２４は、予備系ホスト１０２から受信したチェックポイント応答の応答番号を確認し、出力パケット制御部６２１に通知する（ステップＳ１１０）。出力パケット制御部６２１は、チェックポイント制御部６２４が受信したチェックポイント応答番号を受信する（ステップＳ１１１）。そして、応答番号に該当するネットワークパケットをパケットバッファ６２２から抽出し、ネットワークインタフェース６３１を介してネットワークスイッチ１０３に送信する（ステップＳ１１２）。
【００２０】
このような動作により、現用系ホスト１０６に障害が発生し、計算が予備系ホスト１０２に引き継がれた場合、外部ネットワーク１０４から計算サービスを利用しているユーザに対して同一のパケットが送信されることを防ぐ。
【００２１】
関連する技術として特開２００７−２１９７５７号公報（対応米国出願ＵＳ２００７１９２７６５（Ａ１））に仮想計算機システムを機能させるためのプログラムが開示されている。このプログラムは、あるハードウェア上に仮想的に動作する現用ホストＯＳにより管理される仮想計算機システムを動作制御するためにコンピュータを以下の手段として機能させる。第１の手段は、前記現用ホストＯＳが起動すると、前記現用ホストＯＳを前記仮想計算機システムに備えられる所定の記録手段にコピーし前記現用ホストＯＳと同じ機能をもつ予備ホストＯＳを前記ハードウェア上に動作させる手段である。第２の手段は、前記現用ホストＯＳへ出される要求を前記予備ホストＯＳに通知し、前記予備ホストＯＳの状態を変更する手段である。第３の手段は、前記現用ホストＯＳが異常になると、前記仮想計算機システムの管理を前記現用ホストＯＳから前記予備ホストＯＳに切り換える手段である。
【００２２】
また、特開２００７−３０４８４５号公報に仮想計算機システムおよびソフトウェア更新方法が開示されている。この仮想計算機システムは、ソフトウェアを動作させる仮想ハードウェアを冗長化構成している。この仮想計算機システムは、冗長化構成のソフトウェアを更新する場合、待機系仮想ハードウェア上のソフトウェアを更新し、その後、稼動系の処理を待機系に引継ぐ。
【００２３】
また、特表２００７−５１４２３８号公報（国際公開ＷＯ２００５／０６４４６４号公報）に仮想ネットワークインタフェースが開示されている。この方法は、仮想マシンを稼動する工程と、前記仮想マシンとハードウェアデバイスとの間でデータパケットをルーティングする目的で、仮想ネットワークインターフェースカードをコンフィギュアする工程とを含む。
【先行技術文献】
【特許文献】
【００２４】
【特許文献１】特開２００７−２１９７５７号公報
【特許文献２】特開２００７−３０４８４５号公報
【特許文献３】特表２００７−５１４２３８号公報
【非特許文献】
【００２５】
【非特許文献１】Ｂ．Ｃｕｌｌｙ  ｅｔ  ａｌ．，“Ｒｅｍｕｓ：Ｈｉｇｈ  Ａｖａｉｌａｂｉｌｉｔｙ  ｖｉａ  Ａｓｙｎｃｈｒｏｎｏｕｓ  Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ  Ｒｅｐｌｉｃａｔｉｏｎ”，５ｔｈ  ＵＳＥＮＩＸ  Ｓｙｍｐｏｓｉｕｍ  ｏｎ  Ｎｅｔｗｏｒｋｅｄ  Ｓｙｓｔｅｍｓ  Ｄｅｓｉｇｎ  ａｎｄ  Ｉｍｐｌｅｍｅｎｔａｔｉｏｎ，２００８，ｐｐ．１６１−１７４
【発明の概要】
【発明が解決しようとする課題】
【００２６】
しかし、上記の計算機システムでは、以下のような問題がある。
まず、仮想マシンモニタのネットワークパケットの処理が仮想マシンの通信帯域のボトルネックになるということである。その理由は、仮想マシンが送信するネットワークパケットは全て仮想マシンモニタを通過し、外部ネットワークへの送信がソフトウェアで制御されるため、仮想マシンモニタの処理が重くなるためである。
【００２７】
本発明の目的は、仮想マシンが高速に通信を行うことが可能な計算機システムを提供することにある。
【課題を解決するための手段】
【００２８】
本発明のネットワークインタフェースは、仮想マシンと仮想マシンモニタとを備える現用系ホストと、ネットワークを介して前記現用系ホストに接続された予備系ホストとを具備する計算機システム用のネットワークインタフェースであって、パケット取得手段と、パケット管理手段とを具備する。パケット取得手段は、仮想マシンからネットワークに送信するパケットを受信する。パケット管理手段は、パケットをネットワークに送信する送信タイミングを仮想マシンモニタから受信する。
【００２９】
また、本発明の計算機システムは、ネットワークインタフェースと仮想マシンと仮想マシンモニタとを備える現用系ホストと、ネットワークを介して現用系ホストに接続された予備系ホストとを具備する。ここで、ネットワークインタフェースは、パケット取得手段とパケット管理手段とを備える。パケット取得手段は、仮想マシンからネットワークに送信するパケットを受信する。パケット管理手段は、パケットを記ネットワークに送信する送信タイミングを仮想マシンモニタから受信する。
【００３０】
また、本発明のネットワークインタフェースの動作方法は、仮想マシンと仮想マシンモニタとを備える現用系ホストと、ネットワークを介して前記現用系ホストに接続された予備系ホストとを具備する計算機システム用のネットワークインタフェースの動作方法であって、パケット取得ステップとパケット管理ステップとを具備する。パケット取得ステップは、仮想マシンからネットワークに送信するパケットを受信する。パケット管理ステップは、パケットをネットワークに送信する送信タイミングを仮想マシンモニタから受信する。
【００３１】
また、本発明の計算機システムの動作方法は、ネットワークインタフェースと仮想マシンと仮想マシンモニタとを備える現用系ホストと、ネットワークを介して現用系ホストに接続された予備系ホストとを具備する計算機システムの動作方法であって、パケット取得ステップとパケット管理ステップとを具備する。パケット取得ステップは、ネットワークインタフェースが、仮想マシンからネットワークに送信するパケットを受信する。パケット管理ステップは、ネットワークインタフェースが、パケットをネットワークに送信する送信タイミングを仮想マシンモニタから受信する。
【００３２】
また、本発明のプログラムは、仮想マシンと仮想マシンモニタとを備える現用系ホストと、ネットワークを介して前記現用系ホストに接続された予備系ホストとを具備する計算機システム用であって、パケット取得ステップとパケット管理ステップとを具備するネットワークインタフェースの動作方法をコンピュータに実行させる。パケット取得ステップは、仮想マシンからネットワークに送信するパケットを受信する。パケット管理ステップは、パケットをネットワークに送信する送信タイミングを仮想マシンモニタから受信する。
【００３３】
また、本発明のプログラムは、ネットワークインタフェースと仮想マシンと仮想マシンモニタとを備える現用系ホストと、ネットワークを介して現用系ホストに接続された予備系ホストとを具備する計算機システムの動作方法であってパケット通知ステップとタイミング通知ステップとを具備する計算機システムの動作方法をコンピュータに実行させる。パケット通知ステップは、仮想マシンが、ネットワークに送信するパケットをネットワークインタフェースに通知する。タイミング通知ステップは、仮想マシンモニタが、パケットをネットワークに送信する送信タイミングをネットワークインタフェースに通知する。
【発明の効果】
【００３４】
本発明により、仮想マシンが高速に通信を行うことができ、計算機に障害が発生した場合でも計算を継続することが可能な計算機システムを提供することが出来る。
【図面の簡単な説明】
【００３５】
【図１】図１は、障害が発生した場合でも計算を継続することが可能な計算機システムの構成を示すブロック図である。
【図２】図２は、図１に示す計算機システムの動作の一例を示すフローチャートである。
【図３】図３は、本発明の第１の実施の形態に係る計算機システムの構成を示すブロック図である。
【図４】図４は、本発明の実施の形態に係る計算機システムの動作を示すフローチャートである。
【図５】図５は、本発明の実施の形態に係る計算機システムの動作を示すフローチャートである。
【図６】図６は、本発明の実施の形態に係る計算機システムの動作を示すフローチャートである。
【図７】図７は、本発明の実施の形態に係る計算機システムの動作を示すフローチャートである。
【図８】図８は、本発明の第２の実施の形態に係る計算機システムの構成を示すブロック図である。
【発明を実施するための形態】
【００３６】
以下、本発明のネットワークインタフェース、計算機システム、それらの動作方法、及びプログラムの実施の形態に関して、添付図面を参照して説明する。
【００３７】
本発明の計算機システムは、仮想マシンがネットワークに送信したネットワークパケットを一度ネットワークインタフェースで蓄積する手段（例示：図３の１３４４：後述）と、仮想マシンを停止し、チェックポイント情報を取得したタイミングと停止の識別番号をネットワークインタフェースに通知する手段（例示：１２４：後述）と、仮想マシンがネットワークに送信したネットワークパケットを、対応するチェックポイント番号毎に分類する手段（例示：１３４３：後述）と、予備系ホストから受信したチェックポイント応答の応答番号をネットワークインタフェースに通知する手段（例示：１２４：後述）と、応答番号に対応するネットワークパケットをネットワークに送信する手段（例示：１３４３：後述）とを含んでいる。このような構成を採用し、仮想マシンが送信するネットワークパケットの処理はハードウェアであるネットワークインタフェースで行い、ネットワークパケットを外部ネットワークに送信するタイミングの制御のみを、チェックポイント処理を行うソフトウェアである仮想マシンモニタで行うことにより、本発明の目的を達成することができる。以下、詳細に説明する。
【００３８】
（第１の実施の形態）
図３は、本発明の第１の実施の形態に係る計算機システムの構成を示すブロック図である。図３を参照すると、本実施の形態に係る計算機システムは、現用系ホスト（コンピュータ）１と、予備系ホスト（コンピュータ）２と、ネットワークスイッチ３と、外部ネットワーク４とを具備する。現用系ホスト１は、計算（情報処理）を行う。予備系ホスト２は、現用系ホスト１に障害が発生した場合に計算を引き継ぐ。ネットワークスイッチ３は、現用系ホスト１と予備系ホスト２とを接続する。ネットワークスイッチ３は、外部ネットワーク４に接続されている。
【００３９】
現用系ホスト１は、仮想マシン１１と、計算機ハードウェア１３と、仮想マシンモニタ１２とを備える。仮想マシン１１は、オペレーティングシステムやアプリケーションを含み、計算を行う。計算機ハードウェア１３は、現用系ホスト１の計算用ハードウェアである。仮想マシンモニタ１２は、仮想マシン１１の計算機ハードウェア１３へのアクセスを制御する。ここで、仮想マシン１１及び仮想マシンモニタ１２は、現用系ホスト１上で動作するソフトウェアにより実現される。
【００４０】
計算機ハードウェア１３は、ＣＰＵ１３１と、メモリ１３２と、２次記憶装置１３３と、ネットワークインタフェース１３４とを含む。ＣＰＵ１３１は、中央演算処理装置であり、計算を行う。メモリ１３２は、ＤＲＡＭ等で構成され、プログラムやデータを記憶する。２次記憶装置１３３は、ハードディスク等で構成され、プログラムやデータを記憶するための大容量の記憶領域を提供する。ネットワークインタフェース１３４は、現用系ホスト１をネットワークスイッチ３に接続し、仮想マシン１１が直接アクセスできるインタフェースを提供する。
【００４１】
ネットワークインタフェース１３４は、仮想マシンモニタインタフェース１３４１と、仮想マシンインタフェース１３４２と、チェックポイント管理部１３４３と、パケットバッファ１３４４とを含む。仮想マシンモニタインタフェース１３４１は、仮想マシンモニタ１２が仮想マシン１１の送信パケットを制御するためにアクセスする。仮想マシンインタフェース１３４２は、仮想マシン１１がネットワークパケットをネットワークスイッチ３に送信する場合にアクセスする。チェックポイント管理部１３４３は、チェックポイント制御部１２４の制御により、仮想マシン１１が送信したネットワークパケットを、対応するチェックポイント番号に分類し、分類したパケットのネットワークスイッチ３への送信を制御する。パケットバッファ１３４４は、仮想マシン１１がネットワークスイッチ３に送信するネットワークパケットを一度記憶する。仮想マシンモニタインタフェース１３４１とチェックポイント管理部１３４３とは、パケットの送受信を管理（制御）するパケット管理手段１３４ａと見ることができる。仮想マシンインタフェース１３４２とパケットバッファ１３４４とは、パケットを受信し一時的に保持するパケット取得手段１３４ｂと見ることができる。
【００４２】
詳細には、チェックポイント管理部１３４３は、仮想マシン１１がネットワークスイッチ３に送信したネットワークパケットを一度パケットバッファ１３４４に蓄積し、ネットワークスイッチ３にそのまま送信しないよう制御する。チェックポイント管理部１３４３は、チェックポイント制御部１２４から仮想マシンモニタインタフェース１３４１への通知により、チェックポイント制御部１２４が仮想マシン１１を停止したことと、仮想マシン１１の停止を識別するチェックポイント番号を受信する。
【００４３】
更に、チェックポイント管理部１３４３は、パケットバッファ１３４４に蓄積されている仮想マシン１１が発行したネットワークパケットのうち、前回停止時から今回停止時までに仮想マシン１１が発行したネットワークパケットを、チェックポイント制御部１２４から受信したチェックポイント番号に対応するネットワークパケットとして識別し、その識別情報（例示：チェックポイント番号）をパケットバッファ１３４４に追記する。すなわち、それらのネットワークパケットを受信したチェックポイント番号と関連付けることで、ネットワークパケットを分類している。また、チェックポイント管理部１３４３は、チェックポイント制御部１２４から、チェックポイント制御部１２４が予備系ホスト２から受信したチェックポイント応答に記載されたチェックポイント応答番号を送信タイミングとして受信する。そして、パケットバッファ１３４４に記載されたネットワークパケットの中で、受信したチェックポイント応答番号（＝チェックポイント番号）に対応するネットワークパケットをネットワークスイッチ３に送信する。
【００４４】
仮想マシンモニタ１２は、チェックポイント制御部１２４と、転送バッファ１２３と、ダーティメモリ検出部１２１と、２次記憶装置制御部１２２とを含む。チェックポイント制御部１２４は、現用系ホスト１の死活監視を行う。それと共に、一定周期毎に仮想マシン１１を停止し、前回停止時との計算の差分であるチェックポイント情報を予備系ホスト２に送信する。また、仮想マシン１１がネットワークスイッチ３に送信したネットワークパケットの制御を仮想マシンモニタインタフェース１３４１に対して行う。転送バッファ１２３は、予備系ホスト２に送信するチェックポイント情報を記憶する。ダーティメモリ検出部１２１は、前回停止時から今回の停止時までに仮想マシン１１がメモリ１３２に書き込んだデータを検出し、検出したデータを転送バッファ１２３に書き出す。２次記憶装置制御部１２２は、前回停止時から今回の停止時までに仮想マシン１１が２次記憶装置１３３に書き込んだデータを書き込みの度に検出し、検出したデータをその都度転送バッファ１２３に書き出す。
【００４５】
詳細には、チェックポイント制御部１２４は、予備系ホスト２に含まれるチェックポイント制御部２２３と一定周期毎に死活監視の通信を行う。このとき、チェックポイント制御部２２３が本死活監視の通知を一定時間内に受信しない場合、予備系ホスト２（チェックポイント制御部２２３）は現用系ホスト１に障害が発生したと判断する。
【００４６】
更に、チェックポイント制御部１２４は、一定周期ごとに仮想マシン１１を停止する。そして、ダーティメモリ検出部１２１に前回停止時から今回停止時までに仮想マシン１１がメモリ１３２に書き込んだデータを検出し、検出したデータを転送バッファ１２３に書き出すよう指示する。また、チェックポイント制御部１２４は、仮想マシン１１を停止したときの仮想マシン１１のＣＰＵのレジスタ情報を転送バッファ１２３に書き出す。また、チェックポイント管理部１３４３に仮想マシンモニタインタフェース１３４１を通して仮想マシン１１を停止したこと（タイミング）と、仮想マシン１１の停止を識別するチェックポイント番号とを通知する。続いてチェックポイント制御部１２４は、仮想マシン１１を再開する。仮想マシン１１を再開させた後、チェックポイント制御部１２４は、ダーティメモリ検出部１２１が仮想マシン１１の停止時に転送バッファ１２３に書き出したダーティメモリと、２次記憶装置制御部１２２が転送バッファ１２３に書き出していた仮想マシン１１の２次記憶装置１２２への書き込みと、仮想マシン１１を停止させたときの仮想マシン１１のＣＰＵのレジスタ情報とを予備系ホスト２にチェックポイント番号を記載してチェックポイント情報として送信する。また、チェックポイント制御部１２４は、予備系ホスト２から受信したチェックポイント応答に記載されたチェックポイント応答番号を確認し、チェックポイント管理部１３４３に仮想マシンインタフェース１３４１を通して送信タイミングとして通知する。
【００４７】
予備系ホスト２の構成は、図１に記載の予備系ホスト１０２の構成と同じである。
【００４８】
次に、本発明の第１の実施の形態に係る計算機システムの動作について詳細に説明する。ただし、図４〜図７は、本発明の第１の実施の形態に係る計算機システムの動作を示すフローチャートである。
【００４９】
まず、図４に示される、チェックポイント制御部１２４が仮想マシン１１を停止し、チェックポイント情報を予備系ホスト２に送信する場合の動作について説明する。この動作は、図２におけるステップＳ１０３〜Ｓ１０７の動作に対応し、その動作を改善したものである。
【００５０】
チェックポイント制御部１２４は、チェックポイントを取得する時間に設定したタイマのタイムアウトにより（ステップＡ１）、仮想マシン１１を停止する（ステップＡ２）。続いて、チェックポイント制御部１２４は、チェックポイント管理部１３４３に、仮想マシンモニタインタフェース１３４１を介して、仮想マシン１１を停止したこと（タイミング）と、その停止を識別するチェックポイント番号とを通知する（ステップＡ３）。チェックポイント管理部１３４３は、チェックポイント制御部１２４の通知を受信する。そして、パケットバッファ１３４４に記載されている、仮想マシン１１が前回停止時から今回停止時までにネットワークスイッチ３へ発行したネットワークパケットを、受信したチェックポイント番号に対応するネットワークパケットとして識別し、その識別情報（例示：チェックポイント番号）をパケットバッファ１３４４に追記する（ステップＡ４）。すなわち、それらネットワークパケットを、受信したチェックポイント番号に関連付けることで、それらネットワークパケットを分類している。
【００５１】
一方、チェックポイント制御部１２４は、仮想マシン１１の停止に続き、ダーティメモリ検出部１２１に仮想マシン１１が前回停止時から今回停止時までにメモリ１３２に書き込んだデータを転送バッファ１２３に書き出すよう指示する（ステップＡ５）。ダーティメモリ検出部１２１は、チェックポイント制御部１２４からの通知を受け、ダーティメモリを転送バッファ１２３に書き出す（ステップＡ６）。また、チェックポイント制御部１２４は、仮想マシン１１を停止したときの仮想マシン１１のＣＰＵのレジスタ情報を転送バッファ１２３に書き出す（ステップＡ７）。ステップＡ５〜Ａ７が完了した後、チェックポイント制御部１２４は、仮想マシン１１を再開し、次回のチェックポイント取得時間にタイマを再セットする（ステップＡ８）。仮想マシン１１が再開した後、チェックポイント制御部１２４は、仮想マシンのダーティメモリと、２次記憶装置１３３に対する書き込み情報と、仮想マシン１１のＣＰＵのレジスタ情報とを含む転送バッファ１２３のチェックポイント情報を予備系ホスト２に送信する（ステップＡ９）。現用系ホスト１では、障害が発生するまでステップＡ１〜Ａ９を繰り返す。
【００５２】
次に、図５に示される、チェックポイント制御部１２４が予備系ホスト２からチェックポイント応答を受信した場合の動作について説明する。この動作は、図２におけるステップＳ１１０〜ステップＳ１１２の動作に対応し、その動作を改善したものである。
【００５３】
チェックポイント制御部１２４は、予備系ホスト２からチェックポイント応答を受信し（ステップＢ１）、チェックポイント応答に記載されたチェックポイント応答番号をチェックポイント管理部１３４３に通知する（ステップＢ２）。チェックポイント管理部１３４３は、チェックポイント応答番号＝チェックポイント番号を送信タイミングとして受信する。そして、パケットバッファ１３４４に蓄積されている仮想マシン１１が発行したネットワークパケットの中で、チェックポイント番号に対応するネットワークパケットをネットワークスイッチ３に送信する（ステップＢ３）。
【００５４】
続いて、図６に示される、予備系ホスト２が含むチェックポイント制御部２２３が、現用系ホスト１からチェックポイント情報を受信した場合の動作について説明する。この動作は、図２におけるステップＳ１０８〜ステップＳ１０９の動作に対応し、その動作を改善したものである。
【００５５】
チェックポイント制御部２２３は、現用系ホスト１からチェックポイント情報を受信する（ステップＣ１）。チェックポイント制御部２２３は、チェックポイント情報に記載されたチェックポイント番号を確認し、確認したチェックポイント番号を応答番号として記載したチェックポイント応答を現用系ホスト１に送信する（ステップＣ２）。次に、チェックポイント制御部２２３は、受信したチェックポイント情報の中で、ダーティメモリに関する情報をダーティメモリ書き込み部２２１に、２次記憶装置に関する情報を２次記憶装置制御部２２２に通知し、仮想マシン１１のＣＰＵのレジスタ情報を仮想マシン２１のＣＰＵのレジスタ情報に反映させる（ステップＣ３）。ダーティメモリ書き込み部２２１は、受信したダーティメモリに関する情報をメモリ２３２に反映する（ステップＣ４）。また、２次記憶装置制御部２２２は、受信した２次記憶装置に関する情報を２次記憶装置２３３に反映する（ステップＣ５）。
【００５６】
次に、図７に示される、現用系ホスト１に障害が発生し、予備系ホスト２が計算を引き継ぐ場合の動作について説明する。
始めに、予備系ホスト２が含むチェックポイント制御部２２３は、死活監視のタイマを設定する（ステップＤ１）。本タイマは、一定時間内に現用系ホストから死活監視の通信を受信しない場合、タイムアウトする（ステップＤ２）。チェックポイント制御部２２３は、タイマが切れる前に現用系ホスト１から死活監視の通信を受信した場合（ステップＤ２：Ｙｅｓ）、死活監視のタイマを再セットする（ステップＤ３）。一方、チェックポイント制御部２２３は、現用系ホスト１から死活監視の通信を受信せずタイマが切れた場合（ステップＤ２：Ｎｏ）、現用系ホスト１に障害が発生したと判断し（ステップＤ４）、これまでに受信したチェックポイント情報を予備系ホスト２に全て反映させ（ステップＤ５）、仮想マシン２１の計算を開始する（ステップＤ６）。仮想マシン２１は、予備系ホスト２が受信した最新のチェックポイント情報が示す地点から計算を引き継ぐ。
【００５７】
次に、本発明の第１の実施の形態の効果について説明する。
第１の実施の形態では、仮想マシンがネットワークに送信するパケットの処理をハードウェアであるネットワークインタフェースで行い、チェックポイント処理を行う仮想マシンモニタは、ネットワークインタフェースに対し、ネットワークパケットを放出するタイミングのみを制御する。これにより、仮想マシンモニタは仮想マシンが発行するネットワークパケットの処理をソフトウェアレベルで行う必要がなくなる。それにより、仮想マシンモニタによるネットワークパケットの処理を行う必要がなくなるので、ＣＰＵ負荷を増加させることなく仮想マシンが高速に通信を行うことができると共に、計算機に障害が発生した場合に計算を予備系ホストに引き継げる計算機システムを構成することができる。
【００５８】
（第２の実施の形態）
図８は、本発明の第２の実施の形態に係る計算機システムの構成を示すブロック図である。図８を参照すると、本実施の形態に係る計算機システムは、図３に示した第１の実施の形態と比べ、計算機ハードウェア５１が含むネットワークインタフェース５１１が、チェックポイント管理部１３４３とパケットバッファ１３４４とに代えて、ＣＰＵ５１１１とメモリ５１１２とを含む点で異なる。すなわち、ネットワークインタフェース５１１は、ネットワーク通信専用のＣＰＵ及びメモリを有している。
【００５９】
メモリ５１１２は、ネットワークインタフェースプログラム５１１２１と、パケットバッファ５１１２２とを含む。ネットワークインタフェースプログラム５１１２１は、ＣＰＵ５１１１に読み込まれ、第１の実施の形態におけるネットワークインタフェース１３４と同じ動作をＣＰＵ５１１１に行わせる。パケットバッファ５１１２２は、第１の実施に形態におけるパケットバッファ１３４４と同じ機能を提供する。ＣＰＵ５１１１はネットワークインタフェースプログラム５１１２１を読み込み、第１の実施の形態におけるチェックポイント管理部１３４３と同じ動作を行う。
【００６０】
本発明の第２の実施の形態に係る計算機システムの動作については、ＣＰＵ５１１１がチェックポイント管理部１３４３の動作を行い、パケットバッファ５１１２２がパケットバッファ１３４４と同じ機能を果たす他は、第１の実施の形態の動作（図４〜図７）と同様であるのでその説明を省略する。
【００６１】
本実施の形態の場合にも、第１の実施の形態と同様の効果を得ることが出来る。
【００６２】
本発明は、以下の効果を有することができる。第１の効果は、計算機システムにおいて、仮想マシンが高速に通信を行うことができ、計算機に障害が発生した場合でも計算を継続することができることである。その理由は仮想マシンが送信するネットワークパケットの処理はハードウェアであるネットワークインタフェースで行い、ネットワークパケットを送信するタイミングの制御のみを、チェックポイント処理を行うソフトウェアである仮想マシンモニタで行うためである。第２の効果は、計算機システムにおいて、ホストのＣＰＵ負荷を増大させずに仮想マシンが高速に通信を行うことができるということにある。その理由は、第１の効果の理由と同じである。
【００６３】
本発明の計算機システムは、計算を中断させない高い信頼性が要求されるコンピュータ装置や、サービスを中断させないネットワーク装置を構成するといった用途に適用できる。また同様に、高い信頼性が要求される組み込み装置を構成する用途に適用できる。
【００６４】
本発明に係るプログラムは、コンピュータ読取可能な記憶媒体に記録され、その記憶媒体から情報処理装置に読み込まれても良い。
【００６５】
本発明は上記各実施の形態に限定されず、本発明の技術思想の範囲内において、各実施の形態は適宜変形又は変更され得ることは明らかである。
【符号の説明】
【００６６】
１、５、１０６  現用系ホスト
２、１０２  予備系ホスト
３、１０３  ネットワークスイッチ
４、１０４  外部ネットワーク
１１、１６１  仮想マシン
１２、１６２  仮想マシンモニタ
１３、５１、１６３  計算機ハードウェア
２１  仮想マシン
２２  仮想マシンモニタ
２３  計算機ハードウェア
１２１  ダーティメモリ検出部
１２２  ２次記憶装置制御部
１２３  転送バッファ
１２４  チェックポイント制御部
１３１  ＣＰＵ
１３２  メモリ
１３３  ２次記憶装置
１３４、５１１  ネットワークインタフェース
２２１  ダーティメモリ書き込み部
２２２  ２次記憶装置制御部
２２３  チェックポイント制御部
２３１  ＣＰＵ
２３２  メモリ
２３３  ２次記憶装置
２３４  ネットワークインタフェース
６２１  出力パケット制御部
６２２  パケットバッファ
６２３  転送バッファ
６２４  チェックポイント制御部
６３１  ネットワークインタフェース
１３４１  仮想マシンモニタインタフェース
１３４２  仮想マシンインタフェース
１３４３  チェックポイント管理部
１３４４  パケットバッファ
５１１１  ＣＰＵ
５１１２  メモリ
５１１２１  ネットワークインタフェースプログラム
５１１２２  パケットバッファ
【図１】
2010160660.tif 000003
【図２】
2010160660.tif 000004
【図３】
2010160660.tif 000005
【図４】
2010160660.tif 000006
【図５】
2010160660.tif 000007
【図６】
2010160660.tif 000008
【図７】
2010160660.tif 000009
【図８】
2010160660.tif 000010