"運用系の物理マシン上で動作する仮想マシンの実行状態及びストレージに生じた変更を、待機系の物理マシンに転送し、待機系の仮想マシン及びストレージに反映させて該仮想マシンの実行状態及びストレージを同一状態に保つ仮想マシン同期方法であって、前記運用系の仮想マシンにおいて、命令判定手段が、運用系の前記ストレージへの書き込みを行う際に、ストレージ書き込み命令が、前回同期時から変更が生じたメモリページ以下、ダーティーページと記す、または、前記ストレージの同一箇所への書き込みであるかを判定する書き込み命令判定ステップと、データ転送手段が、前記書き込み命令判定ステップにおいて、前記ダーティーページまたは前記ストレージの同一箇所への書き込みである場合には、前記待機系に、当該運用系の仮想マシンの実行状態及び運用系のストレージのストレージデータを転送するデータ転送ステップと、を行うことを特徴とする仮想マシン同期方法。運用系の物理マシン上で動作する仮想マシンの実行状態及びストレージに生じた変更を、待機系の物理マシンに転送し、待機系の仮想マシン及びストレージに反映させて該仮想マシンの実行状態及びストレージを同一状態に保つ同期システムであって、前記運用系の仮想マシンは、運用系の前記ストレージへの書き込みを行う際に、ストレージ書き込み命令が、前回同期時から変更が生じたメモリページ以下、ダーティーページと記す、または、前記ストレージの同一箇所への書き込みであるかを判定する書き込み命令判定手段と、前記書き込み命令判定手段において、前記ダーティーページまたは前記ストレージの同一箇所への書き込みである場合には、前記待機系に、当該運用系の仮想マシンの実行状態及び運用系のストレージのストレージデータからなる同期データを転送するデータ転送手段と、を有し、前記待機系の仮想マシンは、前記運用系の仮想マシンから転送された前記同期データを受信し、該同期データの実行状態の差分を反映させる更新手段を有することを特徴とする同期システム。運用系の物理マシン上で動作する仮想マシンの実行状態及びストレージに生じた変更を、待機系の物理マシンに転送し、待機系の仮想マシン及びストレージに反映させて該仮想マシンの実行状態及びストレージを同一状態に保つ運用系の仮想マシンであって、運用系の前記ストレージへの書き込みを行う際に、ストレージ書き込み命令が、前回同期時から変更が生じたメモリページ以下、ダーティーページと記す、または、前記ストレージの同一箇所への書き込みであるかを判定する書き込み命令判定手段と、前記書き込み命令判定手段において、前記ダーティーページまたは前記ストレージの同一箇所への書き込みである場合には、前記待機系に、当該運用系の仮想マシンの実行状態及び運用系のストレージのストレージデータを転送するデータ転送手段と、を有することを特徴とする運用系の仮想マシン。コンピュータを、請求項3記載の運用系の仮想マシンとして機能させるための同期プログラム。しかしながら、上記の非特許文献1の技術は、仮想マシンの実行状態及びストレージの状態をストレージ書き込みを契機に同期していないので、運用系と待機系のストレージを同一状態に保つことができないため、前回同同期時から故障発生までに、運用系のストレージに書き込まれたデータが損失してしまうという問題がある。また、運用系の故障後、待機系の仮想マシンのアプリケーションを動作させた場合、アプリケーションのストレージ書き込みの順序保証ができないため、ストレージの同一箇所への書き込み順序が逆転していると、上書きが発生するため、運用系と待機系のストレージを同一状態に保つことができない、という問題がある。また、上記の非特許文献2の技術は、仮想マシンの実行状態を全てのストレージ書き込みを契機に同期しているので、同期させる回数が多いという問題がある。また、上記の特許文献1の技術は、同期は周期的に行われるため、マスタの故障のタイミングによってはデータが失われてしまう、という問題がある。本発明は、上記の点に鑑みなされたもので、運用系のストレージ書き込まれたデータが失われず、仮想マシンの実行状態及びストレージを同期させる回数が少なくてすむ仮想マシン同期方法及びシステム及び運用系の仮想マシン及びプログラムを提供することを目的とする。上記の課題を解決するため、本発明は、運用系の物理マシン上で動作する仮想マシンの実行状態及びストレージに生じた変更を、待機系の物理マシンに転送し、待機系の仮想マシン及びストレージに反映させて該仮想マシンの実行状態及びストレージを同一状態に保つ仮想マシン同期方法であって、前記運用系の仮想マシンにおいて、命令判定手段が、運用系の前記ストレージへの書き込みを行う際に、ストレージ書き込み命令が、前回同期時から変更が生じたメモリページ以下、ダーティーページと記す、または、前記ストレージの同一箇所への書き込みであるかを判定する書き込み命令判定ステップと、データ転送手段が、前記書き込み命令判定ステップにおいて、前記ダーティーページまたは前記ストレージの同一箇所への書き込みである場合には、前記待機系に、当該運用系の仮想マシンの実行状態及び運用系のストレージのストレージデータを転送するデータ転送ステップと、を行う。上記のように本発明は、特定のタイミングで同期処理を行うことにより、運用系システムに故障が生じた際に、運用系と同様のストレージデータを待機系で再現することが可能となる。具体的には、全てのストレージ書き込み命令があった場合に同期処理を行うのではなく、ストレージへの書き込みの命令がダーティーページ、ストレージの同一箇所への書き込みのいずれかであった場合のみ待機系との同期を行うため、同期回数を低減することができる。また、ダーティーページを利用した書き込みを契機として同期するため、ストレージに書き込むべきデータは、待機系に転送されるため、運用系がストレージ書き込み後に故障した場合であっても、データは失われない。さらに、運用系が故障した時点で、待機系の仮想マシンのアプリケーションが実行状態を基に動作した際に、ストレージの書き込み順序が変わったとしても、同一箇所のへの書き込みをさせないため、ストレージデータが失われることがない。以下図面と共に、本発明の実施の形態を説明する。図4は、本発明の一実施の形態における同期システムの構成を示す。同図に示す同期システムの前提として、運用系の仮想マシン20Aでは、アプリケーションが動作しているため、実行状態とストレージ40Aのデータは常に更新されていき、また、待機系の仮想マシン20Bでは、アプリケーションが動作していないため、実行状態とストレージ40Bのデータは変化しないものとする。この前提において、本システムは、特定のタイミングで同期処理を行うことにより、運用系のシステムAに故障が生じた際に、運用系と同様のストレージデータを待機系Bで再現する。同図に示す運用系及び待機系のシステムの仮想マシン制御部100A、100Bの同期制御部110A,110Bには、仮想マシンの実行状態同期制御部111A、111Bに加え、ストレージの同期制御部112A,112Bを有する。上記の構成の動作を以下に示す。図5は、本発明の一実施の形態における運用系同期制御部のフローチャートである。ステップ310運用系の同期制御部110Aは、運用系仮想マシン20Aが、ストレージ40Aへの書き込みを行う際に、当該書き込み処理を捕捉する。書き込み処理がある場合には、ストレージ書き込み命令を抽出する。ステップ320同期制御部110Aは、ストレージの書き込みの種類が、前回同期時から変更が生じたメモリページであるダーティーページを利用した書き込み、もしくは、ストレージ40Aの同一箇所への書き込みであった場合は真をそうでない場合は偽を出力する。詳細な動作については図6で後述する。当該処理は、運用系Aと待機系Bの仮想マシンの実行状態及びストレージデータの内容を一致させる処理を開始すべきか同かを判断する処理である。ステップ330ステップ320の出力値を入力値として受け取り、真の場合は同期を開始するため、ステップ350に移行する。偽の場合はステップ340に移行する。ステップ340ステップ330で取得した値が偽である場合は、ストレージの同期制御部112Aが、主記憶装置などの記憶部図示せずにストレージ書き込み命令を保存し、ステップ310に移行する。ステップ350同期制御部111Aは、待機系に仮想マシン20Aの実行状態及びストレージ40Aのストレージデータを転送する。ステップ360待機系Bからの受信完了通知を待機し、待機系Bから全データの受信完了通知が送信されてきたかを判断し、受信した場合はステップ370に移行する。ステップ370ステップ340で記憶部図示せずに保存したストレージ書き込み命令を破棄する。これは、次回同期時には不要な情報であるため削除する。次に、上記のステップ320の処理について説明する。図6は、本発明の一実施の形態における運用系同期制御部のS320の詳細フローチャートである。ステップ410同期制御部110Aは、ダーティーページを利用したストレージ書き込みかを判定し、ダーティーページの場合はステップ440に移行する。ダーティーページか否かを判別する方法としては、文献ClarkCFraserKHandSHansenJGJulELimpachCParattIandWarfieldALiveMigrationofVirtualMachines2ndUSENIXSymposiumonNetworkedSystemsDesignandImplementationBostonMAUSApp273286を参照されたい。ダーティーページを利用した書き込みが発生した場合は、運用系と待機系の仮想マシンの事項状態及びストレージを一致させる処理を開始する。ステップ420ステップ410においてダーティーページでない場合は、ストレージの同一箇所への書き込みかを判定する。具体的には、運用系の同期制御部110A内の記憶部図示せずに保存してあるストレージ書き込み命令を参照し、前回同期時から、ストレージの同一箇所例えば、同一セレクタへの書き込みが発生した場合は真となり、ステップ440に移行し、そうでない場合は偽となり、ステップ430に移行する。当該処理は、前回同期時から、ストレージの同一箇所への書き込みが発生した場合は、運用系と待機系の仮想マシンの実行状態及びストレージを一致させるための処理である。ステップ430偽を出力値とする。ステップ440ステップ420の結果が真であり、待機系から受信完了通知を受信した場合は真を出力値とする。当該処理を行うことでストレージに書き込むべきデータは、待機系に転送されるので、運用系がストレージ書き込み後に故障してもデータは失われない。また、運用系が故障し、待機系の仮想マシンのアプリケーションが事項状態を基に動作した際に、ストレージ書き込みの順序が変わったとしても、同一箇所への書き込みをさせないので、ストレージデータは失われない。図7は、本発明の一実施の形態における物理マシンの構成その1を示す。同図に示すように、物理マシンの構成として、運用系マシン数N:待機系マシン1の構成とすることが可能である。但し、仮想マシンの構成に関しては、運用系仮想マシン数1:待機系仮想マシン数Nと、運用系仮想マシンのバックアップとなる待機系仮想マシンが1つ以上必要なる。なお、ある運用系仮想マシンのバックアップ先の待機系仮想マシンが複数ある場合は、運用系の故障後、どちらを先に運用系とするか選択する必要がある。また、運用系マシンAと運用系マシンBの利用するストレージデータは、待機系マシンCのストレージ内のそれぞれ別領域に同期させる。図8は、本発明の一実施の形態における物理マシンの構成その2を示す。同図に示すように、物理マシンの構成として、運用系マシン1:待機系マシンNの構成とすることが可能である。但し、仮想マシンの構成に関しては、運用系仮想マシン数1:待機系仮想マシン数Nと、運用系仮想マシンのバックアップとなる待機系仮想マシンが1つ以上必要なる。なお、ある運用系仮想マシンのバックアップ先の待機系仮想マシンが複数ある場合は、運用系の故障後、どちらを先に運用系とするか選択する必要がある。また、待機系マシンA,Bの仮想マシンと、それらの各ストレージは、両方とも、運用系の仮想マシン及びストレージと同期している。上記の図7、図8に示すように、運用系マシン、待機系マシンをN:1、もしくは、1:Nとする構成であっても1:1の構成と同様の効果を得ることが可能であり、台数を増やしても効果が減少することはない。次に、本発明と従来技術の性能評価の結果を示す。図9は、本発明と従来技術の同期回数比較評価を示す。同図aに示すような実験環境を2台用意し、1台を運用系システム、1台を待機系システムとする。運用系のゲストOS上で、プログラムのインストールが必要なファイルシステムのパフォーマンス測定ツールであるiozoneベンチマークツールを以下のオプションで実行し、負荷をかけた。実行オプション:iozoneI0r32s128mfファイル名>その結果、運用系システムのゲストOS上でiozoneベンチマークを実行し、発生した同期回数を比較した結果は図9bに示すとおりである。同図からわかるように、本発明は、従来技術非特許文献2と比較して、iozone実行時に起きた同期回数が1460回から16回に削減され、99減となった。また、同期回数の削減による運用系システム性能への影響を図10に示す。実験環境は図9aと同様である。図10のグラフは、運用系システムのゲストOS上で、iozoneベンチマークを実行したときのI/Oスループットを示している。本発明は、従来技術非特許文献2と比較して、iozoneベンチマークによるI/Oスループットが、6167KBs従来技術から12447KBs本発明となり、102向上したことがわかる。なお、運用系及び待機系の同期制御部の動作をプログラムとして構築し、仮想マシンとして利用される物理マシンにインストールして実行させることが可能である。本発明は上記の実施の形態に限定されることなく、特許請求の範囲内において、種々変更応用が可能である。"