"異なる物理マシン上で動作する仮想マシンのCPU、メモリ、デバイスの各実行状態及びストレージを同期させる、送信側の仮想マシン及び受信側の仮想マシンを有するストレージ同期システムであって、前記送信側の仮想マシン及び前記受信側の仮想マシンは、仮想マシンの実行状態を、該送信側の仮想マシン及び該受信側の仮想マシンで常に同一状態に保つ仮想マシンの実行状態同期制御手段と、ストレージを該送信側の仮想マシン及び該受信側の仮想マシンで常に同一状態に保つストレージの同期制御手段と、を有し、前記送信側の仮想マシンのストレージの同期制御手段は、送信側ストレージへの書き込みが発生すると、前回の同期時からの差分のメモリを取得して、実行状態の差分を受信側の仮想マシンに送信する差分送出手段と、当該送信側の仮想マシンのストレージへの書き込み命令を前記受信側の仮想マシンに送出する書き込み制御手段と、を含み、前記受信側の仮想マシンのストレージ同期制御手段は、前記送信側の仮想マシンから受信した前記書き込み命令に基づいて、当該受信側の仮想マシンのメモリを当該受信側の仮想マシンのストレージに書き込む書き込み手段を含むことを特徴とするストレージ同期システム。前記送信側の仮想マシンの前記書き込み制御手段は、前記送信側仮想マシンのストレージの書き込み命令として、ストレージへの書き込み位置、書き込み対象のデータの格納位置、書き込みサイズを含み、前記受信側の仮想マシンの書き込み手段は、前記書き込み命令に含まれる前記書き込み位置に、前記書き込み対象のデータの格納位置で指定される受信側仮想マシンのメモリを、前記書き込みサイズ分当該受信側の仮想マシンのストレージに書き込む手段を含む請求項1記載のストレージ同期システム。異なる物理マシン上で動作する仮想マシンのCPU、メモリ、デバイスの各実行状態及びストレージを同期させる、送信側の仮想マシン及び受信側の仮想マシンを有するストレージ同期システムにおける送信側の仮想マシンであって、仮想マシンの実行状態を該送信側の仮想マシン及び該受信側の仮想マシンで常に同一状態に保つ仮想マシンの実行状態同期制御手段と、ストレージを該送信側の仮想マシン及び該受信側の仮想マシンで常に同一状態に保つストレージの同期制御手段と、を有し、前記ストレージの同期制御手段は、送信側ストレージへの書き込みが発生すると、前回の同期時からの差分のメモリを取得して、実行状態の差分を受信側の仮想マシンに送信する差分送出手段と、当該送信側の仮想マシンのストレージへの書き込み命令を前記受信側の仮想マシンに送出する書き込み制御手段と、を有し、前記書き込み制御手段は、前記送信側仮想マシンのストレージの書き込み命令として、ストレージへの書き込み位置、書き込み対象のデータの格納位置、書き込みサイズを含むことを特徴とする送信側の仮想マシン。異なる物理マシン上で動作する仮想マシンのCPU、メモリ、デバイスの各実行状態及びストレージを同期させる、送信側の仮想マシン及び受信側の仮想マシンを有するストレージ同期システムにおける受信側の仮想マシンであって、仮想マシンの実行状態を前記送信側の仮想マシン及び当該受信側の仮想マシンで常に同一状態に保つ仮想マシンの実行状態同期制御手段と、ストレージを前記送信側の仮想マシン及び該受信側の仮想マシンで常に同一状態に保つストレージの同期制御手段と、を有し、前記ストレージ同期制御手段は、前記送信側の仮想マシンから受信した、送信側の仮想マシンのストレージへの書き込み命令に基づいて、当該受信側の仮想マシンのメモリを当該受信側の仮想マシンのストレージに書き込む書き込み手段を有し、前記書き込み手段は、前記書き込み命令として、ストレージへの書き込み位置、書き込み対象のデータの格納位置、書き込みサイズを受信し、該書き込み命令に含まれる該書き込み位置に、該書き込み対象のデータの格納位置で指定される受信側仮想マシンのメモリを該書き込みサイズ分当該受信側の仮想マシンのストレージに書き込む手段を含むことを特徴とする受信側の仮想マシン。異なる物理マシン上で動作する仮想マシンのCPU、メモリ、デバイスの各実行状態及びストレージを同期させる、送信側の仮想マシン及び受信側の仮想マシンを有するシステムにおけるストレージ同期方法であって、前記送信側の仮想マシン及び前記受信側の仮想マシンは、仮想マシンの実行状態を、該送信側の仮想マシン及び該受信側の仮想マシンで常に同一状態に保つ仮想マシンの実行状態同期制御手段と、ストレージを該送信側の仮想マシン及び該受信側の仮想マシンで常に同一状態に保つストレージの同期制御手段と、を有し、前記送信側の仮想マシンのストレージの同期制御手段が、送信側ストレージへの書き込みが発生すると、前回の同期時からの差分のメモリを取得して、実行状態の差分を受信側の仮想マシンに送信し、当該送信側の仮想マシンのストレージへの書き込み命令を前記受信側の仮想マシンに送出し、前記受信側の仮想マシンのストレージ同期制御手段が、前記送信側の仮想マシンから受信した、前記書き込み命令に基づいて、当該受信側の仮想マシンのメモリを当該受信側の仮想マシンのストレージに書き込むことを特徴とするストレージ同期方法。前記送信側の仮想マシンは、前記送信側仮想マシンのストレージの書き込み命令として、ストレージへの書き込み位置、書き込み対象のデータの格納位置、書き込みサイズを送信し、前記受信側の仮想マシンは、前記書き込み命令に含まれる前記書き込み位置に、前記書き込み対象のデータの格納位置で指定される受信側仮想マシンのメモリを、前記書き込みサイズ分当該受信側の仮想マシンのストレージに書き込む請求項5記載のストレージ同期方法。請求項3記載の送信側仮想マシンを構成する各手段としてコンピュータを機能させるためのストレージ同期プログラム。請求項4記載の受信側仮想マシンを構成する各手段としてコンピュータを機能させるためのストレージ同期プログラム。しかしながら、上記の非特許文献1の技術は、前回同期時から変更が生じた仮想マシンの実行状態の差分転送と、変更が生じたストレージデータをストレージから読み出して、転送する処理が必要となる。つまり、仮想マシン実行数とストレージデータの転送が必要となり、同期のための転送量及びリソース量が大きいという問題がある。また、上記の非特許文献2の技術は、仮想マシンが利用するストレージの同期は行っていないため、共有ストレージが必要となる。また、上記の非特許文献3の技術は、ストレージへの書き込みが発生する度に、ストレージへ書き込むデータの転送を行う必要がある。また、仮想マシンの実行状態も転送するため、同期のための転送量が大きい、という問題がある。また、上記の特許文献1の技術は、マスタはストレージからデータを読み出す処理と読み出したデータを転送する処理が必要なため、同期にかかる時間及びリソース利用量が大きい、という問題がある。本発明は、上記の点に鑑みなされたもので、異なる物理マシン上で動作する仮想マシンの実行状態CPU、メモリ、デバイス及びストレージを同期させるシステムにおいて、同期のための転送量を削減し、同期のためのリソース利用量を削減することが可能なストレージ同期システム及び仮想マシン及びストレージ同期方法及びプログラムを提供することを目的とする。上記の課題を解決するため、本発明は、異なる物理マシン上で動作する仮想マシンのCPU、メモリ、デバイスの各実行状態及びストレージを同期させる、送信側の仮想マシン及び受信側の仮想マシンを有するストレージ同期システムであって、前記送信側の仮想マシン及び前記受信側の仮想マシンは、仮想マシンの実行状態を、該送信側の仮想マシン及び該受信側の仮想マシンで常に同一状態に保つ仮想マシンの実行状態同期制御手段と、ストレージを該送信側の仮想マシン及び該受信側の仮想マシンで常に同一状態に保つストレージの同期制御手段と、を有し、前記送信側の仮想マシンのストレージの同期制御手段は、送信側ストレージへの書き込みが発生すると、前回の同期時からの差分のメモリを取得して、実行状態の差分を受信側の仮想マシンに送信する差分送出手段と、当該送信側の仮想マシンのストレージへの書き込み命令を前記受信側の仮想マシンに送出する書き込み制御手段と、を含み、前記受信側の仮想マシンのストレージ同期制御手段は、前記送信側の仮想マシンから受信した前記書き込み命令に基づいて、当該受信側の仮想マシンのメモリを当該受信側の仮想マシンのストレージに書き込む書き込み手段を含む。上記のように、本発明によれば、異なる物理マシン上で動作する仮想マシンの実行状態CPU、メモリ、デバイス及びストレージを同期させるシステムにおいて、同期のための転送量を削減すると共に、同期のためのリソースの利用量を削減することが可能となる。以下図面と共に、本発明の実施の形態を説明する。システム構成は、従来と同様であるが、ストレージ同期制御部123内部の動作が異なる。なお、以下の記載において、送信側及び受信側のシステム間の通信は、従来技術と同様に、ハードウェア130内の通信インタフェース図示せずが同期用ネットワークを介して行うものとする。まず、送信側マシン100Aの動作を説明する。図1は、本発明の一実施の形態における送信側同期制御部のフローチャートである。本発明の動作は、同期を開始するタイミングステップ110と、受信側のストレージ同期制御部123Bに送信する情報が図5とは異なる。ステップ110送信側のストレージの同期制御部123Aは、送信側ストレージ140Aへの書き込みが発生すると、ステップ120に移行する。ステップ120送信側の仮想マシンの実行状態同期制御部122Aは、前回の同期時から差分メモリを取得し、送信側のシステム100AのCPU,デバイスの実行状態の差分、取得した差分メモリを、受信側の仮想マシンの実行状態同期制御部122Bへ送信する。このように、ストレージ書き込みを行う直前に、上記の処理を行うことで、送信側と受信側の仮想マシンの実行状態を一致させることが可能となる。なお、差分メモリの取得方法については図5と同様である。ステップ130送信側ストレージ140Aへの書き込み命令を検知すると、ストレージの周期制御部123Aは、書き込み対象のデータの格納位置、ストレージの書き込み位置、書き込みサイズからなる、ストレージ140Aへの書き込み命令を、受信側のストレージ同期制御部123Bに送信する。なお、当該データは複数個からなることもある。このように、書き込み命令として受信側に通知するものは、書き込み対象のデータの格納位置、ストレージの書き込み位置、書き込みサイズのみとなり、転送量を削減することができる。ステップ140受信側の仮想マシン制御部120Bからの受信完了通知を受信したら処理を終了する。次に、受信側マシン100Bの動作を説明する。図2は、本発明の一実施の形態における受信側同期制御部のフローチャートである。ステップ210受信側の仮想マシン制御部120Bの仮想マシンの実行状態同期制御部122Bは、送信側の仮想マシン制御部120Aから実行状態の差分及び送信側ストレージへの書き込み命令を受信した場合はステップ220に移行する。ステップ220送信側の仮想マシン制御部120Aから受信した送信側仮想マシンの実行状態の差分を受信側仮想マシンの実行状態に反映させる。ステップ230ストレージの同期制御部123Bは、受信側の主記憶装置111B受信側仮想マシンのメモリの情報と、送信側ストレージ140Aへの書き込み命令を取得し、当該書き込み命令に含まれる書き込み位置に、書き込み対象のデータの格納位置で指定される受信側仮想マシンのメモリを書き込みサイズ分、受信側ストレージ140Bに書き込む。これにより、同期のためのリソース入出力のための帯域の利用量を削減することが可能となる。ステップ240送信側の仮想マシン100Aに全データの受信が完了した通知を送信する。上記のように、本発明は、従来技術と異なり、ストレージデータ自体を受信側仮想マシン100Bに転送する必要がなくなるため、転送量を削減できる。ストレージへの書き込みを行う前に、送信側の仮想マシンの実行状態同期制御部122Aが当該送信側の仮想マシンの実行状態を受信側に送信することにより同期をとることで、受信側のメモリ110Bは、常にストレージ書き込みを行う直前の送信側仮想マシンのメモリ110Aと一致する。そのため、受信側仮想マシン100Bのメモリ110A上にはストレージ140Bに書き込むデータが存在する。さらに、ストレージ書き込み命令は、ストレージデータそのものと比較して小さいため、受信側への転送量を削減することができる。比較の例を以下に示す。表1に示すような実験環境を2台用意し、送信側マシン100A、受信側マシン100Bとする。なお、送信側のゲストOS上でファイルコピーを実行することで負荷をかけている。上記の状態において、送信側仮想マシン100Aと受信側仮想マシン100Bを100回同期させたときの本発明を適用させた場合と従来技術の方法を適用させた場合の同期1回当りのデータ転送量平均値を図3に示す。同図からもわかるように、仮想マシン実行状態及びストレージ情報については、1175KBから637KBに54削減されていることがわかる。また、ストレージ情報は、従来の539KBから089KB02に削減されている。ここで、ストレージ情報とは、従来技術ではストレージデータであり、本発明の場合はストレージ書き込み命令である。また、受信側仮想マシン100Bの同期制御部121Bが、ストレージデータを保持する必要がないため、リソース利用量が削減できる。つまり、ストレージ140Bに書き出すデータは、受信側仮想マシンのメモリデータである。そのため、受信側の同期制御部121Bはストレージへの書き込み命令のみを保持すればよい。なお、上記の実施の形態における送信側仮想マシン100A及び受信側仮想マシン100Bの動作をプログラムとして構築し、それぞれの仮想マシンとして利用されるコンピュータにインストールして実行させる、または、ネットワークを介して流通させることも可能である。本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において種々変更応用が可能である。"