(57)【要約】  スナップショット取得部１３１０は、管理対象ゲストＯＳ１２０のスナップショットを取得する。パケットキャプチャプログラム１３３０は、クライアント端末装置３００からアプリケーションプログラム１２１に送信されたパケットを収集する。稼動確認用情報送信処理部１３２１は、スナップショットの取得開始から取得完了までの期間を含む所定の期間、管理対象ゲストＯＳ１２０からの返信を要求する稼動確認用情報を一定の間隔で管理対象ゲストＯＳ１２０に送信すると共に稼動確認用情報の応答を受信する。同期パケット検出部１３２２は、稼働確認用情報送信処理部１３２１による応答の受信状況に基づいて、パケットキャプチャプログラム１３３０によって収集されたパケットの中からスナップショット取得部１３１０よって取得された一つのスナップショットに対応する対応パケットを特定する。
2010134177.tif 000002
【特許請求の範囲】
【請求項１】
スナップショットの取得対象となると共にスナップショット取得時に一時的に停止する管理対象オペレーティングシステムであって、ネットワークを介して端末装置とパケットのやりとりにより通信するアプリケーションプログラムを実行する管理対象オペレーティングシステムを実行するオペレーティングシステム実行装置において、
前記管理対象オペレーティングシステムのスナップショットを取得するスナップショット取得部と、
前記端末装置から前記ネットワークを介して前記アプリケーションプログラムに送信されたパケットである端末送信パケットを収集するパケット収集部と、
前記スナップショット取得部による一つのスナップショットの取得開始から取得完了までの期間を含む所定の期間、前記管理対象オペレーティングシステムからの返信を要求する返信要求情報を一定の間隔で前記管理対象オペレーティングシステムに送信すると共に前記返信要求情報に対する前記管理対象オペレーティングシステムからの応答情報を受信する返信要求情報通信部と、
前記返信要求情報通信部による前記応答情報の受信状況に基づいて、前記パケット収集部によって収集された前記端末送信パケットの中から前記スナップショット取得部によって取得された前記一つのスナップショットに対応する前記端末送信パケットを対応パケットとして特定するパケット特定部と
を備えたことを特徴とするオペレーティングシステム実行装置。
【請求項２】
前記パケット特定部は、
前記スナップショット取得部によるスナップショットの取得開始から取得完了までの間において前記返信要求情報通信部による前記応答情報の受信が途切れた後に再び前記応答情報の受信が復活した場合には、前記パケット収集部によって収集された前記端末送信パケットの中から、受信が復活した前記応答情報の受信タイミングよりも過去、かつ、受信が復活した前記応答情報の受信タイミングの最も近くに送信された前記端末送信パケットを前記対応パケットとして特定することを特徴とする請求項１記載のオペレーティングシステム実行装置。
【請求項３】
前記アプリケーションプログラムは、
前記端末装置から前記端末送信パケットを受信すると、応答として、受信された前記端末送信パケットと対となるプログラム側応答パケットを返信し、
前記パケット収集部は、
前記プログラム側応答パケットを収集し、
前記返信要求情報通信部は、
前記スナップショット取得部による一つのスナップショットの取得開始から取得完了までの期間を含む所定の期間、前記管理対象オペレーティングシステムからの返信を要求する返信要求情報を一定の間隔で前記管理対象オペレーティングシステムに送信すると共に前記返信要求情報に対する応答であって前記返信要求情報と対となる応答情報を次の返信要求情報の送信前に動作中の前記管理対象オペレーティングシステムから受信し、
前記パケット特定部は、
前記スナップショット取得部によるスナップショットの取得開始から取得完了までの間において前記返信要求情報通信部による前記応答情報の受信が途切れた後に再び前記応答情報の受信が復活した場合には、受信が復活した前記応答情報の受信タイミングと、前記返信要求情報通信部による受信が途切れた最後の前記応答情報に対応する前記返信要求情報の送信タイミングとの間の期間に、前記端末送信パケットと対となっていない前記プログラム側応答パケットである非対応答パケットが前記パケット収集部によって収集されているかどうかを確認すると共に、前記返信要求情報通信部による受信が途切れた最初の前記応答情報に対応する前記返信要求情報の送信タイミングの直前に、前記非対応答パケットに対応する前記端末送信パケットが前記パケット収集部によって収集されているかどうかを確認し、前記非対応答パケットと、前記非対応答パケットに対応する前記端末送信パケットとが収集されている場合には、前記非対応答パケットに対応する前記端末送信パケットを前記対応パケットとして特定することを特徴とする請求項１記載のオペレーティングシステム実行装置。
【請求項４】
前記パケット特定部は、
前記スナップショット取得部によるスナップショットの取得開始から取得完了までの間において前記返信要求情報通信部による前記応答情報の受信が途切れなかった場合には、
スナップショットの取得完了時点よりも過去、かつ、前記取得完了時点の最も近くに送信された前記端末送信パケットを前記特定パケットとして特定することを特徴とする請求項２記載のオペレーティングシステム実行装置。
【請求項５】
前記オペレーティングシステム実行装置は、さらに、
前記パケット収集部によって収集された前記端末送信パケットを記憶する収集パケット記憶部を備え、
前記パケット特定部は、
前記特定パケットを特定すると、前記特定パケットよりも過去に送信された前記端末送信パケットを前記収集パケット記憶部から削除することを特徴とする請求項４記載のオペレーティングシステム実行装置。
【請求項６】
前記返信要求情報通信部は、
前記管理対象オペレーティングシステムとの通信に、ＩＣＭＰ（Ｉｎｔｅｒｎｅｔ  Ｃｏｎｔｒｏｌ  Ｍｅｓｓａｇｅ  Ｐｒｏｔｏｃｏｌ）パケットを使用することを特徴とする請求項１記載のオペレーティングシステム実行装置。
【請求項７】
前記返信要求情報通信部は、
前記管理対象オペレーティングシステムとの通信に、前記管理対象オペレーティングシステムに対するネットワークポート開閉確認に使用されるパケットを用いることを特徴とする請求項１記載のオペレーティングシステム実行装置。
【請求項８】
スナップショットの取得対象となると共にスナップショット取得時に一時的に停止する管理対象オペレーティングシステムであって、ネットワークを介して端末装置とパケットのやりとりにより通信するアプリケーションプログラムを実行する管理対象オペレーティングシステムを実行するコンピュータを、
（１）前記管理対象オペレーティングシステムのスナップショットを取得するスナップショット取得部、
（２）前記端末装置から前記ネットワークを介して前記アプリケーションプログラムに送信されたパケットである端末送信パケットを収集するパケット収集部、
（３）前記スナップショット取得部による一つのスナップショットの取得開始から取得完了までの期間を含む所定の期間、前記管理対象オペレーティングシステムからの返信を要求する返信要求情報を一定の間隔で前記管理対象オペレーティングシステムに送信すると共に前記返信要求情報に対する前記管理対象オペレーティングシステムからの応答情報を受信する返信要求情報通信部、
（４）前記返信要求情報通信部による前記応答情報の受信状況に基づいて、前記パケット収集部によって収集された前記端末送信パケットの中から前記スナップショット取得部によって取得された前記一つのスナップショットに対応する前記端末送信パケットを対応パケットとして特定するパケット特定部、
として機能させるためのパケット特定プログラム。
【請求項９】
請求項８記載のパケット特定プログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１０】
スナップショットの取得対象となると共にスナップショット取得時に一時的に停止する管理対象オペレーティングシステムであって、ネットワークを介して端末装置とパケットのやりとりにより通信するアプリケーションプログラムを実行する管理対象オペレーティングシステムを実行するコンピュータが行うパケット特定方法において、
（１）スナップショット取得部が、前記管理対象オペレーティングシステムのスナップショットを取得し、
（２）パケット収集部が、前記端末装置から前記ネットワークを介して前記アプリケーションプログラムに送信されたパケットである端末送信パケットを収集し、
（３）返信要求情報通信部が、前記スナップショット取得部による一つのスナップショットの取得開始から取得完了までの期間を含む所定の期間、前記管理対象オペレーティングシステムからの返信を要求する返信要求情報を一定の間隔で前記管理対象オペレーティングシステムに送信すると共に前記返信要求情報に対する前記管理対象オペレーティングシステムからの応答情報を受信し、
（４）パケット特定部が、前記返信要求情報通信部による前記応答情報の受信状況に基づいて、前記パケット収集部によって収集された前記端末送信パケットの中から前記スナップショット取得部によって取得された前記一つのスナップショットに対応する前記端末送信パケットを対応パケットとして特定する
ことを特徴とするパケット特定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ゲストＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ、以下ＯＳという）のスナップショットに同期するパケットを特定するＯＳ実行装置、パケット特定プログラム及びパケット特定方法に関する。
【背景技術】
【０００２】
従来、仮想マシンのメモリやディスク状態を保存したデータを管理しておくことで、ある一時点の仮想マシンの実行状態を再現することができる。例えば、仮想化ソフトウェアであるＶＭｗａｒｅやＸｅｎでは、仮想マシンの実行状態を「スナップショット」として保存し、スナップショットからゲストＯＳを再開することができる。定期的にスナップショットを取得しておくことで、障害発生時にそれより前のスナップショットから起動することで、障害前の状態に戻したり、また障害発生の環境を再現できる。【０００３】
例えば、特許文献１では、スナップショットを用いたクラスタシステムを構築する手法が開示されている。【０００４】
また、非特許文献１では、２つの物理マシン上で動作しているゲストＯＳの実行状態をあるイベント毎に同期させておき、片方のゲストＯＳに障害が発生した場合に、障害発生前の状態を別の物理マシン上で復元する手法が提案されている。【０００５】
従来技術を用いることで、仮想マシン環境を業務アプリケーションの障害発生の再現手段として利用することも可能である。例えば、定期的に対象のゲストＯＳのスナップショットを取得しておき、障害発生時にそれ以前のスナップショットからゲストＯＳを起動し、障害発生までの各種情報を調査できる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００８−０５２４０７号公報
【非特許文献】
【０００７】
【非特許文献１】情報処理学会研究報告（２００７−ＯＳ−１０５）、２００７／４／５、ｐ．７１−７８、「仮想マシン間の同期による高可用クラスタリング方式の提案」
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ゲストＯＳをスナップショットから起動し、障害発生までを再現するためには、定期的にスナップショットを取得し続ける必要がある。しかし、スナップショット取得中は対象ゲストＯＳが停止する。このため、ゲストＯＳ上で動作する業務アプリケーションの停止につながり、定期的にスナップショットを取得することは困難である。特許文献１では、障害発生時にはスナップショットから起動することで、アプリケーション状態を障害発生前に戻すことは可能であるが、スナップショット取得の間隔によっては、障害発生時から長時間過去にさかのぼったアプリケーション状態に戻ってしまう可能性がある。【０００９】
一方、非特許文献１では、異なる物理マシン上のゲストＯＳの実行状態を同期するために、ゲストＯＳへ入ってくるネットワークパケットを仮想マシンモニタ上に配置したイベント取得機能を用いて取得し、ネットワークパケットがゲストＯＳへ入ってくる時点をトリガーとして対象のゲストＯＳを一時停止・差分スナップショットを他方の物理マシンへ転送及び適用することで、スナップショット取得のための停止を少なくしている。しかし、差分スナップショット取得により、それぞれのスナップショット取得に伴うゲストＯＳ停止時間が短くなるとはいえ、停止回数が増えてしまう課題がある。【００１０】
上記のような課題を解決するために、ゲストＯＳ上で動作する業務アプリケーションがネットワークを介したデータ送受信を行うことに着目し、あるタイミングで取得したゲストＯＳのスナップショットと、それ以降のネットワークパケットのキャプチャデータとを保存しておき、障害発生時には、スナップショットの時点からキャプチャしたネットワークパケットを再送することで、障害再現する方法を考案した。これにより、スナップショット取得回数が大幅に削減されるため、全体的なスナップショット取得時のゲストＯＳの停止時間を大幅に減らすことが可能となる。【００１１】
しかし、上記の方法では、スナップショット取得時と再送すべきネットワークパケットのポイント、すなわち、スナップショットからのゲストＯＳ起動時にどのネットワークパケットから再送すればよいかを同期させる必要がある。通常、仮想化ソフトウェアのスナップショット取得機能では、スナップショット取得機能が返すスナップショット取得完了時点と実際の取得されたスナップショットの時点には、取得したスナップショットをディスクに書き出す時間があるためタイムラグがある。そのため、仮想化ソフトウェアのスナップショット取得機能の完了時間をそのまま使用することはできない。これを解決する方法としては、例えば、非特許文献１のように、管理対象ゲストＯＳへ到着するネットワークパケットをトリガーとして、その時点でスナップショットを取得する方法が考えられるが、例えば、仮想マシンモニタ上でスナップショット取得中は対象ゲストＯＳにネットワークパケットを送信しないような仕組みが必要となる。【００１２】
また、スナップショット取得時に、管理対象ゲストＯＳから外部サーバに対して稼動確認用情報を送信し、ゲストＯＳから稼動確認用情報がない時をスナップショット取得中の停止時間とすることで、スナップショットと再送ネットワークパケットを同期する方法も考えられるが、ゲストＯＳ上に稼動確認用情報の送受信を行うプログラムを追加しなければならない。【００１３】
この発明は、スナップショット取得対象のゲストＯＳ及び仮想マシンモニタにスナップショットと再送すべきネットワークパケットとを同期させる専用機能を追加することなく、外部からの稼動確認用情報の送受信により、スナップショットに再送すべきネットワークパケットを特定することで、上記のような課題を解決することを目的とする。
【課題を解決するための手段】
【００１４】
この発明のペレーティングシステム実行装置は、
スナップショットの取得対象となると共にスナップショット取得時に一時的に停止する管理対象オペレーティングシステムであって、ネットワークを介して端末装置とパケットのやりとりにより通信するアプリケーションプログラムを実行する管理対象オペレーティングシステムを実行するオペレーティングシステム実行装置において、
前記管理対象オペレーティングシステムのスナップショットを取得するスナップショット取得部と、
前記端末装置から前記ネットワークを介して前記アプリケーションプログラムに送信されたパケットである端末送信パケットを収集するパケット収集部と、
前記スナップショット取得部による一つのスナップショットの取得開始から取得完了までの期間を含む所定の期間、前記管理対象オペレーティングシステムからの返信を要求する返信要求情報を一定の間隔で前記管理対象オペレーティングシステムに送信すると共に前記返信要求情報に対する前記管理対象オペレーティングシステムからの応答情報を受信する返信要求情報通信部と、
前記返信要求情報通信部による前記応答情報の受信状況に基づいて、前記パケット収集部によって収集された前記端末送信パケットの中から前記スナップショット取得部によって取得された前記一つのスナップショットに対応する前記端末送信パケットを対応パケットとして特定するパケット特定部と
を備えたことを特徴とする。【００１５】
前記パケット特定部は、
前記スナップショット取得部によるスナップショットの取得開始から取得完了までの間において前記返信要求情報通信部による前記応答情報の受信が途切れた後に再び前記応答情報の受信が復活した場合には、前記パケット収集部によって収集された前記端末送信パケットの中から、受信が復活した前記応答情報の受信タイミングよりも過去、かつ、前記応答情報の受信タイミングの最も近くに送信された前記端末送信パケットを前記対応パケットとして特定することを特徴とする。【００１６】
前記アプリケーションプログラムは、
前記端末装置から前記端末送信パケットを受信すると、応答として、受信された前記端末送信パケットと対となるプログラム側応答パケットを返信し、
前記パケット収集部は、
前記プログラム側応答パケットを収集し、
前記返信要求情報通信部は、
前記スナップショット取得部による一つのスナップショットの取得開始から取得完了までの期間を含む所定の期間、前記管理対象オペレーティングシステムからの返信を要求する返信要求情報を一定の間隔で前記管理対象オペレーティングシステムに送信すると共に前記返信要求情報に対する応答であって前記返信要求情報と対となる応答情報を次の返信要求情報の送信前に動作中の前記管理対象オペレーティングシステムから受信し、
前記パケット特定部は、
前記スナップショット取得部によるスナップショットの取得開始から取得完了までの間において前記返信要求情報通信部による前記応答情報の受信が途切れた後に再び前記応答情報の受信が復活した場合には、受信が復活した前記応答情報の受信タイミングと、前記返信要求情報通信部による受信が途切れた最後の前記応答情報に対応する前記返信要求情報の送信タイミングとの間の期間に、前記端末送信パケットと対となっていない前記プログラム側応答パケットである非対応答パケットが前記パケット収集部によって収集されているかどうかを確認すると共に、前記返信要求情報通信部による受信が途切れた最初の前記応答情報に対応する前記返信要求情報の送信タイミングの直前に、前記非対応答パケットに対応する前記端末送信パケットが前記パケット収集部によって収集されているかどうかを確認し、前記非対応答パケットと、前記非対応答パケットに対応する前記端末送信パケットとが収集されている場合には、前記非対応答パケットに対応する前記端末送信パケットを前記対応パケットとして特定することを特徴とする。【００１７】
前記パケット特定部は、
前記スナップショット取得部によるスナップショットの取得開始から取得完了までの間において前記返信要求情報通信部による前記応答情報の受信が途切れなかった場合には、スナップショットの取得完了時点よりも過去、かつ、前記取得完了時点の最も近くに送信された前記端末送信パケットを前記特定パケットとして特定することを特徴とする。【００１８】
前記オペレーティングシステム実行装置は、さらに、
前記パケット収集部によって収集された前記端末送信パケットを記憶する収集パケット記憶部を備え、
前記パケット特定部は、
前記特定パケットを特定すると、前記特定パケットよりも過去に送信された前記端末送信パケットを前記収集パケット記憶部から削除することを特徴とする。【００１９】
前記返信要求情報通信部は、
前記管理対象オペレーティングシステムとの通信に、ＩＣＭＰ（Ｉｎｔｅｒｎｅｔ  Ｃｏｎｔｒｏｌ  Ｍｅｓｓａｇｅ  Ｐｒｏｔｏｃｏｌ）パケットを使用することを特徴とする。【００２０】
前記返信要求情報通信部は、
前記管理対象オペレーティングシステムとの通信に、前記管理対象オペレーティングシステムに対するネットワークポート開閉確認に使用されるパケットを用いることを特徴とする。【００２１】
この発明のパケット特定プログラムは、
スナップショットの取得対象となると共にスナップショット取得時に一時的に停止する管理対象オペレーティングシステムであって、ネットワークを介して端末装置とパケットのやりとりにより通信するアプリケーションプログラムを実行する管理対象オペレーティングシステムを実行するコンピュータを、
（１）前記管理対象オペレーティングシステムのスナップショットを取得するスナップショット取得部、
（２）前記端末装置から前記ネットワークを介して前記アプリケーションプログラムに送信されたパケットである端末送信パケットを収集するパケット収集部、
（３）前記スナップショット取得部による一つのスナップショットの取得開始から取得完了までの期間を含む所定の期間、前記管理対象オペレーティングシステムからの返信を要求する返信要求情報を一定の間隔で前記管理対象オペレーティングシステムに送信すると共に前記返信要求情報に対する前記管理対象オペレーティングシステムからの応答情報を受信する返信要求情報通信部、
（４）前記返信要求情報通信部による前記応答情報の受信状況に基づいて、前記パケット収集部によって収集された前記端末送信パケットの中から前記スナップショット取得部によって取得された前記一つのスナップショットに対応する前記端末送信パケットを対応パケットとして特定するパケット特定部、
として機能させることを特徴とする。【００２２】
この発明のパケット特定方法は、
スナップショットの取得対象となると共にスナップショット取得時に一時的に停止する管理対象オペレーティングシステムであって、ネットワークを介して端末装置とパケットのやりとりにより通信するアプリケーションプログラムを実行する管理対象オペレーティングシステムを実行するコンピュータが行うパケット特定方法において、
（１）スナップショット取得部が、前記管理対象オペレーティングシステムのスナップショットを取得し、
（２）パケット収集部が、前記端末装置から前記ネットワークを介して前記アプリケーションプログラムに送信されたパケットである端末送信パケットを収集し、
（３）返信要求情報通信部が、前記スナップショット取得部による一つのスナップショットの取得開始から取得完了までの期間を含む所定の期間、前記管理対象オペレーティングシステムからの返信を要求する返信要求情報を一定の間隔で前記管理対象オペレーティングシステムに送信すると共に前記返信要求情報に対する前記管理対象オペレーティングシステムからの応答情報を受信し、
（４）パケット特定部が、前記返信要求情報通信部による前記応答情報の受信状況に基づいて、前記パケット収集部によって収集された前記端末送信パケットの中から前記スナップショット取得部によって取得された前記一つのスナップショットに対応する前記端末送信パケットを対応パケットとして特定する
ことを特徴とする。
【発明の効果】
【００２３】
この発明により、スナップショット取得対象のゲストＯＳ及び仮想マシンモニタに専用機能を追加することなく、スナップショットとこのスナップショットに対応するパケットを特定できる。
【図面の簡単な説明】
【００２４】
【図１】実施の形態１における仮想マシン実行装置１００の構成概要を示す図。
【図２】実施の形態１における仮想マシン実行装置１００の詳細構成を示す図。
【図３】図２にデータの流れを記載した図。
【図４】実施の形態１における情報収集用ゲストＯＳ１３０の動作を示すフローチャート。
【図５】実施の形態１における同期パケット検出処理部１３２２の動作を説明する図。
【図６】実施の形態１における同期パケット検出処理部１３２２の動作を説明する図。
【図７】実施の形態１における同期パケット検出処理部１３２２の動作を説明する図。
【図８】実施の形態２における仮想マシン実行装置１００の外観を示す図。
【図９】実施の形態２における仮想マシン実行装置１００のハードウェア構成を示す図。
【発明を実施するための形態】
【００２５】
実施の形態１．
図１は実施の形態１における仮想マシン実行装置１００の構成の概要を示す図である。仮想マシン実行装置１００はネットワーク２００を介してクライアント端末装置３００と通信可能である。仮想マシン実行装置１００（オペレーティングシステム実行装置）では、管理対象ゲストＯＳ１２０、情報収集用ゲストＯＳ１３０が動作する。情報収集用ゲストＯＳ１３０は、各機能によって、管理対象ゲストＯＳ１２０を管理する。
【００２６】
（管理対象ゲストＯＳ１２０のスナップショット）
管理対象ゲストＯＳ１２０はスナップショットの取得対象となる。「スナップショット」とは、仮想環境における管理対象の管理対象ゲストＯＳ１２０のある一時点のメモリやディスク状態（記憶装置の状態）を保存した情報である。管理対象ゲストＯＳ１２０はスナップショット取得時には一時的に動作が停止する。また、管理対象ゲストＯＳ１２０は業務アプリケーション１２１を実行する。業務アプリケーション１２１は、ネットワーク２００を介してクライアント端末装置３００とパケットのやりとりにより通信することが前提である。
【００２７】
（情報収集用ゲストＯＳ１３０）
情報収集用ゲストＯＳ１３０は、スナップショット・パケットデータ同期機能部１３００を備える。スナップショット・パケットデータ同期機能部１３００は、スナップショット取得部１３１０、スナップショット・パケットデータ同期部１３２０を備える。
【００２８】
（スナップショット取得部１３１０）
スナップショット取得部１３１０は、管理対象ゲストＯＳ１２０のスナップショットを定期的に取得する。
【００２９】
（スナップショット・パケットデータ同期部１３２０）
スナップショット・パケットデータ同期部１３２０は、稼動確認用情報送信処理部１３２１（返信要求情報通信部）、同期パケット検出部１３２２（パケット特定部）を備える。稼動確認用情報送信処理部１３２１は、後述のように管理対象ゲストＯＳ１２０に対して、管理対象ゲストＯＳ１２０からの返信を要求する稼動確認用情報（返信要求情報）を一定の間隔で送信し、送信された稼動確認用情報に対する管理対象ゲストＯＳ１２０からの応答情報を受信する。同期パケット検出部１３２２は、後述のパケットキャプチャプログラム１３３０（パケット収集部）によるスナップショットの取得が完了するたびに、稼動確認用情報送信処理部１３２１による管理対象ゲストＯＳ１２０との通信状況に基づいて、後述の対応パケットを特定する。
【００３０】
（パケットキャプチャプログラム１３３０）
パケットキャプチャプログラム１３３０は情報収集用ゲストＯＳ上で動作する。パケットキャプチャプログラム１３３０は、クライアント端末装置３００からネットワーク２００を介して業務アプリケーション１２１に送信されたパケットである端末送信パケットを収集し、保管する。
【００３１】
仮想マシン実行装置１００は、仮想マシン（ＶＭ：Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）環境上で動作する管理対象ゲストＯＳ１２０の障害時の再現のためのパケットを取得する装置である。仮想マシン実行装置１００は、障害が発生した場合に動作を再現するスナップショットの取得ターゲットである管理対象ゲストＯＳ１２０と、取得されたスナップショットに同期する（対応する）パケットを特定する情報収集用ゲストＯＳ１３０とを動作させる。情報収集用ゲストＯＳ１３０は、管理対象ゲストＯＳ１２０のスナップショットを取得し、またパケットキャプチャプログラム１３３０を動作させて、管理対象ゲストＯＳ１２０のパケットを取得すると共に、業務アプリケーション１２１の送受信パケットとスナップショット取得の時間的同期を特定するために期的なポーリング（例えばＩＣＭＰ（Ｉｎｔｅｒｎｅｔ  Ｃｏｎｔｒｏｌ  Ｍｅｓｓａｇｅ  Ｐｒｏｔｏｃｏｌ）パケット）の送信記録を合わせて取得する。
【００３２】
この構成により、管理対象ゲストＯＳ１２０に障害が発生した場合に、スナップショットデータとキャプチャしておいたパケット送受信記録とポーリングパケットとから、再現すべき管理対象ゲストＯＳ１２０のパケット（対応パケット）を特定して、管理対象ゲストＯＳ１２０の動作を再現する。以上の処理によって、管理対象ゲストＯＳ１２０に特定の機能を追加することなく、またスナップショット取得のための管理対象ゲストＯＳ１２０の停止時間を少なくして、管理対象ゲストＯＳ１２０）の動作再現できる。
【００３３】
さらに、図を参照して詳しく説明する。
【００３４】
図２は、実施の形態１の仮想マシン実行装置１００のさらに詳細な構成を示す。なお、図２では、スナップショット・パケットデータ同期部１３２０における稼動確認用情報送信処理部１３２１、同期パケット検出部１３２２は表していないが、図１のように、スナップショット・パケットデータ同期部１３２０はこれらを備える。
【００３５】
仮想マシン実行装置１００では、１つの物理マシン１０１上に仮想化ソフトウェアである仮想マシンモニタ１０２が動作している。仮想マシンモニタ１０２上では、管理ＯＳ１１０、管理対象ゲストＯＳ１２０、情報収集用ゲストＯＳ１３０の３つのＯＳが動作している。
（１）管理ＯＳ１１０は、仮想化ソフトウェアの管理用ＯＳである。
（２）管理対象ゲストＯＳ１２０は、スナップショットとネットワークパケットとの取得対象となるＯＳである。
（３）情報収集用ゲストＯＳ１３０は、スナップショットの取得機能とネットワークパケットデータの同期機能とが動作する。
【００３６】
（管理ＯＳ１１０）
管理ＯＳ１１０では、仮想化ソフトウェアが提供する仮想マシン管理ＡＰＩ１１１（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ）によって、各ゲストＯＳの開始や停止、スナップショット取得を行うことができる。また、管理ＯＳ１１０上ではＳＳＨ（Ｓｅｃｕｒｅ  ＳＨｅｌｌ）１１２やＦＴＰ（Ｆｉｌｅ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）が動作している。
【００３７】
（管理対象ゲストＯＳ１２０）
管理対象ゲストＯＳ１２０はスナップショットやネットワークパケットの取得対象となるゲストＯＳである。管理対象ゲストＯＳ１２０では、例えば、業務アプリケーション１２１が動作している。業務アプリケーション１２１では、ネットワーク２００を介してクライアント端末装置３００から要求パケットをする機能、業務処理を実施する機能、処理結果をクライアント端末装置３００に送信する機能などが動作していることを想定する。なお、管理対象ゲストＯＳ１２０については、スナップショット取得機能やネットワークパケットとの同期を行うための同期機能は導入する必要はない。
【００３８】
（情報収集用ゲストＯＳ１３０）
情報収集用ゲストＯＳ１３０は、管理対象ゲストＯＳ１２０のスナップショット取得機能と、業務アプリケーション１２１とクライアント端末装置３００とがやりとりするネットワークパケットの取得機能、取得したスナップショットとスナップショット開始時の送信すべきネットワークパケット（取得されたスナップショットに対応する対応パケット）を特定する機能が備わっている。「対応パケット」とは、スナップショットを用いた再現時にそのスナップショットの管理対象ゲストＯＳ１２０に対して送信を開始する最初のパケットである。
【００３９】
（スナップショット取得部１３１０）
スナップショット取得部１３１０は、管理ＯＳ１１０上の仮想マシン管理ＡＰＩ１１１を利用して、管理対象ゲストＯＳ１２０のスナップショットを取得する。また、通常、スナップショットは管理ＯＳ１１０から認識される記憶装置であるディスク１０１１（図３で後述）へ保存されるため、スナップショット取得部１３１０は、管理ＯＳ１１０上で動作するＳＳＨ１１２やＦＴＰを経由して、スナップショットデータファイルを転送する機能も備えている。
【００４０】
（スナップショット・パケットデータ同期部１３２０）
スナップショット・パケットデータ同期部１３２０は、一定間隔で管理対象ゲストＯＳ１２０へ後述の稼動確認用情報を送信することで、スナップショット取得中の管理対象ゲストＯＳ１２０の停止期間を検知し、スナップショット取得完了時点のネットワークパケット（対応パケット）を特定する機能である。スナップショット・パケットデータ同期部１３２０により、次回、管理対象ゲストＯＳ１２０のスナップショットからの起動時に送信を開始すべきネットワークパケットの特定が可能となる。すなわち、管理対象ゲストＯＳ１２０に障害が発生した場合に、異常発生直前の正常状態のスナップショットの状態起点として、管理対象ゲストＯＳ１２０にパケットを送信開始することにより再現試験を実行する際の、送信最初のパケット（対応パケット）を特定することを意味する。
【００４１】
（管理対象ゲストＯＳ１２０の停止）
ネットワークパケットとの同期は、スナップショット取得時に一時的に管理対象ゲストＯＳ１２０が停止することを利用する。
【００４２】
（パケットキャプチャプログラム１３３０）
パケットキャプチャプログラム１３３０は、管理対象ゲストＯＳ１２０上で動作する業務アプリケーション１２１によって送受信されるネットワークパケット（クライアント端末装置３００から業務アプリケーション１２１に送信されるパケット（端末送信パケット）及び業務アプリケーション１２１からクライアント端末装置３００に送信されるパケット）を取得するプログラムである。パケットキャプチャプログラム１３３０としては、例えば一般に公開されているｐｃａｐが利用できる。ｐｃａｐは、例えば、ネットワークパケット解析ツールであるｔｃｐｄｕｍｐ（出典：ｐｃａｐ（ｈｔｔｐ：／／ｗｗｗ．ｔｃｐｄｕｍｐ．ｏｒｇ／））やＷｉｒｅｓｈａｒｋ等で使用されている。パケットキャプチャプログラム１３３０は、仮想マシンモニタ１０２にある仮想Ｓｗｉｔｃｈ１０２１からネットワークパケットを収集する。
【００４３】
（動作の説明）
以下に、図３及び図４を用いて、スナップショット取得とスナップショット取得完了時点のネットワークパケットの特定の処理の流れを以下に示す。
【００４４】
図３は、図２に対してデータの流れを記載した図である。また、図３では、スナップショット取得部１３１０、スナップショット・パケットデータ同期部１３２０の構成を示した。
【００４５】
図４は、情報収集用ゲストＯＳ１３０による管理対象ゲストＯＳ１２０のスナップショットの取得と、取得されたスナップショットに対応する対応パケットの特定との動作を説明するフローチャートである。
【００４６】
（Ｓ１０１、Ｓ２０１）
まず、管理対象ゲストＯＳ１２０及び情報収集用ゲストＯＳ１３０が起動される（Ｓ１０１、Ｓ２０１）。
【００４７】
（Ｓ２０２）
管理対象ゲストＯＳ１２０上では業務アプリケーション１２１が動作している。業務アプリケーション１２１は、クライアント端末装置３００とネットワーク２００を介してパケット通信を行っている（Ｓ２０２）。
【００４８】
（Ｓ１０２、Ｓ１０３、Ｓ１１０）
情報収集用ゲストＯＳ１３０が起動すると、パケットキャプチャプログラム１３３０がパケットキャプチャ処理を開始する（Ｓ１０２）。パケットキャプチャプログラム１３３０は定常的に管理対象ゲストＯＳ１２０に関するネットワークパケットをキャプチャ（Ｓ１０３）している。キャプチャされたネットワークパケットはファイル１３３１に保存される（Ｓ１１０）。
【００４９】
（Ｓ１０４）
スナップショット・パケットデータ同期部１３２０の稼動確認用情報送信処理部１３２１は、管理対象ゲストＯＳ１２０へ、稼動確認用情報を一定間隔で送信する（Ｓ１０４）。「稼動確認用情報」とは、管理対象ゲストＯＳ１２０への送信パケット（返信要求情報）と、管理対象ゲストＯＳ１２０からの応答パケット（応答情報）との１対のデータからなる。「稼動確認用情報」は、内部情報としてシーケンス番号で送信・応答が管理できるものであれば、どのような種類のものでもよい。送信パケットは、管理対象ゲストＯＳ１２０からの返信を要求するパケットである。稼動確認用情報送信処理部１３２１は、稼動確認用情報（送信パケット）を送信し、これに応答する応答パケットを受信する。
【００５０】
（Ｓ１０５）
稼動確認用情報送信処理部１３２１は、稼動確認用情報の送信開始と共に、スナップショット取得部１３１０のスナップショット取得処理部１３１１に、管理対象ゲストＯＳ１２０のスナップショット取得の依頼をする（Ｓ１０５）。このとき、パケットキャプチャプログラム１３３０は、管理対象ゲストＯＳ１２０に関して一定間隔で送信される稼動確認用情報（送信パケット）と通常のネットワークパケットを取得する。なお、スナップショット取得処理部１３１１によって取得されたスナップショットデータは、通常は管理ＯＳ１１０から認識されるディスク１０１１へ保存される。このため、スナップショット転送処理部１３１２が管理ＯＳ１１０上で動作するＳＳＨ１１２やＦＴＰを経由して、スナップショットデータファイルを情報収集用ゲストＯＳ１３０の認識するディスク１０１１へ転送する。
【００５１】
（Ｓ１０６）
スナップショット取得処理部１３１１によるスナップショットの取得完了後、稼動確認用情報送信処理部１３２１は、稼動確認用情報の送信を停止する（Ｓ１０６）。
【００５２】
（Ｓ１０７）
図５〜図６は同期パケット検出処理部１３２２の動作を説明する図である。同期パケット検出処理部１３２２は、後述する図５〜図７のように、スナップショット起動時において再送すべきネットワークパケットの特定を行う（Ｓ１０７）。管理対象ゲストＯＳ１２０は、スナップショット取得時に一時的に停止するので、稼動確認用情報（応答パケット）の返信がなくなったり、稼動確認用情報（送信パケット及び応答パケット）に遅延が生じたりする。このように、稼動確認用情報（送信パケットあるいは応答パケット）によって、同期パケット検出処理部１３２２は、図５〜図６に示すように、スナップショット取得完了時点のネットワークパケットの同期ポイントを決定する。
【００５３】
（パターンａ）
まず図５（パターンａ）を説明する。図５は、稼動確認用情報（送信）に対する稼動確認用情報（応答）がない期間が存在する場合を示す。まず図５を説明する。
（１）横軸ｔは、管理対象ゲストＯＳ１２０の時間軸を示す。
（２）横軸ｔの下側の矢印３１、３２はスナップショットの取得開始時と取得完了時とを示す。
（３）Ｔ（ＳＴＯＰ）として示す期間は、スナップショットの取得によって管理対象ゲストＯＳ１２０が停止する期間である。この期間は情報収集用ゲストＯＳ１３０からは直接には知ることができない。稼動確認用情報によって、間接的に推測することができる。
（４）横軸ｔの下側の矢印の組（２１ａ−１，２１ｂ−１）は、クライアント端末装置３００の送信した端末送信パケット（２１ａ−１）と、このパケットに応答するパケットであって管理対象ゲストＯＳ１２０（アプリケーション１２１）の送信したパケット（２１ｂ−１）とを示す。矢印の組（２１ａ−２，２１ｂ−２）、矢印の組（２１ａ−３，２１ｂ−３）についても同様である。
（５）横軸ｔの上側の矢印（１１−１）〜矢印（１１−７）は稼動確認用情報を示す。矢印（１１ａ−１）は稼動確認用情報送信処理部１３２１からの送信パケットを示し、矢印（１１ｂ−１）は応答パケットを示す。矢印（１１ａ−３）、矢印（１１ａ−４）は、送信パケットに対して応答パケットが無いことを示している。
【００５４】
もし、応答パケットのない連続する稼動確認用情報（送信）の間（送信パケット（１１ａ−３）と送信パケット１１ａ−４との間）に管理対象ゲストＯＳ１２０へのネットワークパケット（端末送信パケット）が無い場合には、同期パケット検出処理部１３２２は、応答パケットのない連続する稼動確認用情報（送信）の期間終了後において最初に稼動確認用情報（応答）が返ってくる稼動確認用情報（送信）を探し、それ以前の最初（時間軸ｔを逆方向に進んで最初）の管理対象ゲストＯＳ１２０へのネットワークパケットを同期ポイントとする。図５の場合では、「最初の稼動確認用情報（応答）」は、応答パケット（１１ｂ−５）であり、「それ以前の最初の管理対象ゲストＯＳ１２０へのネットワークパケット」は、端末送信パケット（２１ａ−３）である。すなわち図５の場合、同期パケット検出処理部１３２２は、矢印３１〜３２のスナップショット取得処理期間において取得されたスナップショットに対応する対応パケットとして、端末送信パケット（２１ａ−３）を特定する。再現試験においては、矢印３１〜３２の期間に取得されたスナップショットに対して、特定された端末送信パケット（２１ａ−３）を最初のパケットとして、端末送信パケット（２１ａ−３）以降のパケットが送信される。これらのパケットは図４のＳ１１０のように保存されている。
【００５５】
このように、、同期パケット検出処理部１３２２は、スナップショット取得部１３１０によるスナップショットの取得開始から取得完了までの間において稼動確認用情報送信処理部１３２１よる応答情報の受信が途切れた後に再び応答情報の受信が復活した場合には、パケットキャプチャプログラム１３３０によって収集された端末送信パケットの中から、受信が復活した応答情報の受信タイミングよりも過去、かつ、受信が復活した応答情報の受信タイミングの最も近くに送信された端末送信パケットを対応パケットとして特定する。
【００５６】
（パターンｂ）
次に図６（パターンｂ）を説明する。横軸ｔの上側の矢印１１−１〜１１−７は図５（パターンａ）と同じであるが、横軸ｔの下側が異なる。図６では、稼動確認用情報の送信のみ（送信パケット（１１ａ−４））と、このパケットの後に「最初に現れる稼動確認用情報の送信・応答」（送信パケット（１１ａ−５）、応答パケット（１１ｂ−５））との間を示す矢印４１の範囲に、端末送信パケットと対になっていない非対応答パケット（プログラム側応答パケット（２１ｂ−１））が存在する。この場合は、同期パケット検出処理部１３２２は、「最初に現れる稼動確認用情報の送信・応答」から遡った場合に、「最初に現れる稼動確認用情報の送信・応答」の直近において１以上連続する「稼動確認用情報の送信のみ」のパケットのうち、最も過去の「稼動確認用情報の送信のみ」（送信パケット（１１ａ−３））の直前の端末送信パケットを同期ポイント（端末送信パケット（２１ａ−１））として特定する。このパターンｂの特定方法により、管理対象ゲストＯＳ１２０の停止期間をまたがった、管理対象ゲストＯＳ１２０へのクライアント端末装置３００からの入出力パケットに対応することができる。
【００５７】
このように、同期パケット検出処理部１３２２は、スナップショット取得部１３１０によるスナップショットの取得開始から取得完了までの間において稼動確認用情報送信処理部１３２１による応答情報の受信が途切れた後に再び応答情報の受信が復活した場合には、受信が復活した応答情報の受信タイミング（応答パケット（１１ｂ−５））と、稼動確認用情報送信処理部１３２１による受信が途切れた最後の応答情報に対応する返信要求情報の送信タイミング（送信パケット（１１ａ−４））との間の期間（矢印４１）に、端末送信パケットと対となっていないプログラム側応答パケットである非対応答パケット（応答パケット（２１ｂ−１））がパケットキャプチャプログラム１３３０によって収集されているかどうかを確認すると共に、稼動確認用情報送信処理部１３２１による受信が途切れた最初の応答情報に対応する返信要求情報の送信タイミング（送信パケット（１１ａ−３））の直前に、非対応答パケット（応答パケット（２１ｂ−１））に対応する端末送信パケット（端末送信パケット（２１ａ−１））がパケットキャプチャプログラム１３３０によって収集されているかどうかを確認し、非対応答パケットと、非対応答パケットに対応する端末送信パケットとが収集されている場合には、非対応答パケットに対応する端末送信パケット（端末送信パケット（２１ａ−１））をスナップショットに対応する対応パケットとして特定する。
【００５８】
（パターンｃ）
次に図７を説明する。図７は、稼動確認用情報（送信）に対する稼動確認用情報（応答）が常に存在する場合（つまり、管理対象ゲストＯＳ１２０の停止期間が特定できない場合）において、同期パケット検出処理部１３２２によるパケット特定を説明する。
【００５９】
同期パケット検出処理部１３２２は、スナップショット取得時において稼動確認用情報（送信）に対する稼動確認用情報（応答）が常に存在する場合は、スナップショット取得完了時点（情報収集用ゲストＯＳ１３０はこの時点を認識している）からさかのぼって、最初（時間軸ｔを逆方向に進んで最初）の稼動確認用情報（応答）の次（時間軸ｔ方向）の管理対象ゲストＯＳ（１２０）へのネットワークパケットを同期ポイントとする。すなわちは図７の場合、「スナップショット取得完了時点からさかのぼって最初の稼動確認用情報（応答）」は、応答パケット（１１ｂ−５）であり、「次の管理対象ゲストＯＳ（１２０）へのネットワークパケット」は、端末送信パケット（２１ａ−４）である。同期パケット検出処理部１３２２は端末送信パケット（２１ａ−４）を特定する。
【００６０】
このように、同期パケット検出処理部１３２２は、スナップショット取得部１３１０によるスナップショットの取得開始から取得完了までの間において稼動確認用情報送信処理部１３２１による応答情報の受信が途切れなかった場合には、スナップショットの取得完了時点よりも過去、かつ、取得完了時点の最も近くに送信された端末送信パケットを特定パケットとして特定する。
【００６１】
（Ｓ１０８）
同期パケット検出処理部１３２２は、同期ポイントのネットワークパケットを特定した後、それ以前のパケットデータをディスク１０１１から削除する（Ｓ１０８）。
【００６２】
（Ｓ１０９）
スナップショット取得部１３１０によるスナップショット取得と、スナップショット・パケットデータ同期部１３２０によるスナップショット・パケットデータ同期との一連の処理は、次のスナップショット取得時間まで待機する（Ｓ１０９）。なお、その間も管理対象ゲストＯＳ（１２０）に関するネットワークパケットのキャプチャ処理は継続している。スナップショット取得のタイミングは、予めスナップショット取得部１３１０に設定されている。スナップショットの取得間隔は、障害発生時から正常状態にさかのぼる期間と、管理対象ゲストＯＳ１２０の停止との関係から決めることができる。
【００６３】
実施の形態１の仮想マシン実行装置１００によれば、スナップショットを取得する対象のゲストＯＳや仮想化ソフトウェア、または、仮想マシンモニタ１０２に専用の機能を追加することなく、障害再現時の開始のスナップショットと再送すべきネットワークパケットの同期を取ることができる。このため、管理対象ゲストＯＳ１２０上で障害が発生した場合、管理対象ゲストＯＳ１２０をスナップショットから起動し、外部マシンからネットワークパケットを同期ポイントから再送信することで、障害発生までの管理対象ゲストＯＳ１２０または管理対象ゲストＯＳ１２０上で動作する業務アプリケーション１２１の動作再現が可能となる。また、簡易な構成により、障害発生直前まで、業務アプリケーションの状態を戻すことができる。
【００６４】
また、ネットワークパケットの同期ポイントをパターンａ〜パターンｃという３つのパターンを用いて特定することで、スナップショット取得中のＯＳ停止期間のみで同期ポイントを特定するよりも、より範囲を狭めてネットワークパケットの同期ポイントの特定が可能となる。
【００６５】
さらに、同期ポイントのネットワークパケット以前のパケットを削除しておくことで、スナップショット起動からネットワークパケットを再送するときに、再送の要否を判断する処理が不要となるだけでなく、ディスクへ保存するネットワークパケットデータ量の削減効果もある。
【００６６】
実施の形態２．
実施の形態２は、実施の形態１で説明した稼動確認用情報に関する。
【００６７】
稼動確認用情報送信処理部１３２１は、稼動確認用情報として、稼動確認用情報（送信）にはＩＣＭＰ（Ｉｎｔｅｒｎｅｔ  Ｃｏｎｔｒｏｌ  Ｍｅｓｓａｇｅ  Ｐｒｏｔｏｃｏｌ）のＥｃｈｏ  Ｒｅｑｕｅｓｔ用い、稼動確認用情報（応答）には、ＩＣＭＰのＥｃｈｏＲｅｐｌｙを用いてもよい。ＥｃｈｏＲｅｑｕｅｓｔパケットには送信順序が判断可能なデータ（シーケンス番号）が入っており、通常、ＩＣＭＰのＥｃｈｏＲｅｑｕｅｓｔを送信すると、送信対象が正常に稼動しているならば、送信時のシーケンス番号を含むＩＣＭＰのＥｃｈｏＲｅｐｌｙとして返ってくる。
【００６８】
また、管理対象ゲストＯＳ１２０と情報収集用ゲストＯＳ１３０との間で時間同期されているならば、稼動確認用情報送信処理部１３２１は、稼動確認用情報として、稼動確認用情報（送信）には、ＩＣＭＰ  Ｔｉｍｅｓｔａｍｐ  Ｒｅｑｕｅｓｔを用い、稼動確認用情報（応答）には、ＩＣＭＰ  Ｔｉｍｅｓｔａｍｐ  Ｒｅｐｌｙを用いてもよい。Ｔｉｍｅｓｔａｍｐ  Ｒｅｑｕｅｓｔ／Ｒｅｐｌｙでは、ＴｉｍｅｓｔａｍｐＲｅｑｕｅｓｔ送信時には送信元でのＲｅｑｕｅｓｔが送信された時間、Ｔｉｍｅｓｔａｍｐ  Ｒｅｐｌｙには送信先でのＲｅｑｕｅｓｔを受け取った時間、Ｔｉｍｅｓｔａｍｐ  Ｒｅｐｌｙを送出した時間が格納される。
【００６９】
さらに、稼動確認用情報として、稼動確認用情報送信処理部１３２１は管理対象ゲストＯＳ１２０に対するネットワークポートの開閉確認（ポートスキャン）を行ってもよい。ポートスキャンは稼動しているシステムの脆弱性確認のために行われることがあるが、例えば、Ｗｅｂサーバや業務アプリケーション１２１が外部クライアントとの通信で使用するネットワークポートに対して開閉確認用のパケットを送出し、その応答に応じて管理対象ゲストＯＳ１２０の稼動確認を行うことができる。
【００７０】
ＩＣＭＰは通常業務用に使用するマシン上で動作するＯＳには標準的に実装されており、稼動確認用情報としてＩＣＭＰを用いることで、管理対象ゲストＯＳ１２０上の業務アプリケーション１２１や情報収集用ゲストＯＳ１３０上のスナップショット・パケットデータ同期機能に対して、管理対象ゲストＯＳ１２０の稼動確認を行うための特別な機能を付加することなく、稼動確認用情報を送受信することができる。
【００７１】
また、管理対象ゲストＯＳ１２０上で動作しているサーバプログラム（Ｗｅｂサーバや業務アプリケーション１２１等）が使用しているネットワークポートに対するポートスキャンを行うことでも、稼動確認用情報を送受信することができる。
【００７２】
実施の形態３．
図８、図９を参照して実施の形態３を説明する。
【００７３】
実施の形態３は、仮想マシン実行装置１００をコンピュータで実現する具体的な場合を説明する。
【００７４】
図８は、仮想マシン実行装置１００の外観の一例を示す図である。図８において、パケット収集装置２０は、システムユニット８３０、ＣＲＴ（Ｃａｔｈｏｄｅ・Ｒａｙ・Ｔｕｂｅ）やＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）の表示画面を有する表示装置８１３、キーボード８１４（Ｋｅｙ・Ｂｏａｒｄ：Ｋ／Ｂ）、マウス８１５、ＦＤＤ８１７（Ｆｌｅｘｉｂｌｅ・Ｄｉｓｋ・Ｄｒｉｖｅ）、コンパクトディスク装置８１８（ＣＤＤ：Ｃｏｍｐａｃｔ  Ｄｉｓｋ  Ｄｒｉｖｅ）、プリンタ装置８１９などのハードウェア資源を備え、これらはケーブルや信号線で接続されている。システムユニット８３０はネットワークを介してクライアント端末装置に接続している。
【００７５】
図９は、コンピュータで実現される仮想マシン実行装置１００のハードウェア資源の一例を示す図である。図９において、仮想マシン実行装置１００は、プログラムを実行するＣＰＵ８１０（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を備えている。ＣＰＵ８１０は、バス８２５を介してＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）８１１、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）８１２、表示装置８１３、キーボード８１４、マウス８１５、通信ボード８１６、ＦＤＤ８１７、ＣＤＤ８１８、プリンタ装置８１９、磁気ディスク装置８２０と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置８２０の代わりに、光ディスク装置、フラッシュメモリなどの記憶装置でもよい。
【００７６】
ＲＡＭ８１２は、揮発性メモリの一例である。ＲＯＭ８１１、ＦＤＤ８１７、ＣＤＤ８１８、磁気ディスク装置８２０等の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置あるいは記憶部、格納部、バッファの一例である。通信ボード８１６、キーボード８１４、ＦＤＤ８１７などは、入力部、入力装置の一例である。また、通信ボード８１６、表示装置８１３、プリンタ装置８１９などは、出力部、出力装置の一例である。
【００７７】
通信ボード８１６は、ネットワーク（ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等）に接続されている。通信ボード８１６は、ＬＡＮに限らず、インターネット、ＩＳＤＮ（Ｉｎｔｅｇｒａｔｅｄ  Ｓｅｒｖｉｃｅｓ  Ｄｉｇｉｔａｌ  Ｎｅｔｗｏｒｋ）等のＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）などに接続されていても構わない。
【００７８】
磁気ディスク装置８２０には、プログラム群８２３、ファイル群８２４が記憶されている。プログラム群８２３のプログラムは、ＣＰＵ８１０により実行される。
【００７９】
上記プログラム群８２３には、以上の実施の形態１の説明において、管理ＯＳ１１０、管理対象ゲストＯＳ１２０、情報収集用ゲストＯＳ１３０、及び仮想マシンモニタ１０２として説明したプログラムが記憶されている。また、プログラムである情報収集用ゲストＯＳ１３０は、コンピュータである仮想マシン実行装置１００を、実施の形態１において説明した「〜部」として機能させる。すなわち、プログラムは、以上に述べた「〜部」としてコンピュータを機能させる。あるいは、以上に述べた「〜部」の手順や方法をコンピュータに実行させる。
【００８０】
ファイル群８２４には、実施の形態１で述べた「収集されたネットワークパケット」及び「スナップショットデータ」や、「〜の判定結果」、「〜の算出結果」、「〜の抽出結果」、「〜の生成結果」、「〜の処理結果」として説明した情報や、データや信号値や変数値やパラメータなどが、「〜ファイル」や「〜データベース」の各項目として記憶されている。「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してＣＰＵ８１０によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのＣＰＵの動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示のＣＰＵの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
【００８１】
また、以上の実施の形態１、２の説明において、「管理ＯＳ１１０」、「管理対象ゲストＯＳ１２０」、「情報収集用ゲストＯＳ１３０」として説明したものは、「管理ＯＳ１１０」を実行する「管理ＯＳ実行部」、「管理対象ゲストＯＳ１２０」を実行する「管理対象ゲストＯＳ実行部」及び「情報収集用ゲストＯＳ１３０」を実行する「情報収集用ゲストＯＳ実行部」でも構わない。また、これら管理ＯＳ実行部、管理対象ゲストＯＳ実行部、情報収集用ゲストＯＳ実行部は、いずれも、「〜手段」、「〜回路」、「〜機器」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、これら管理ＯＳ実行部、管理対象ゲストＯＳ実行部、情報収集用ゲストＯＳ実行部は、いずれも、ＲＯＭ８１１に記憶されたファームウェアで実現されていても構わないし、あるいはソフトウェアのみ、あるいは、素子・デバイス・基板・配線などのハードウェアのみ、あるいは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実現されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク等の記録媒体に記憶される。プログラムはＣＰＵ８１０により読み出され、ＣＰＵ８１０により実行される。すなわち、プログラムは、これら管理ＯＳ実行部、管理対象ゲストＯＳ実行部、「情報収集用ゲストＯＳ実行部」としてコンピュータを機能させるものである。あるいは、プログラムは、管理ＯＳ実行部、管理対象ゲストＯＳ実行部、情報収集用ゲストＯＳ実行部の手順や方法をコンピュータに実行させるものである。
【００８２】
以上の実施の形態１では、仮想マシン実行装置１００として装置を説明したが、仮想マシン実行装置１０の動作を、コンピュータに実行させるパケット特定プログラムとして把握することも可能である。あるいは、パケット特定プログラムを記録したコンピュータ読み取り可能な記録媒体として把握することも可能である。さらに、仮想マシン実行装置１００の動作を仮想マシン実行装置１００が行うパケット特定方法として把握することも可能である。
【００８３】
以上の実施の形態１では、以下のシステムを説明した。
仮想環境における管理対象ゲストＯＳのある一時点のメモリ状態やディスク状態を保存した情報を示すスナップショットと、管理対象ゲストＯＳ上で動作するアプリケーションプログラムへのネットワークパケットとを取得しておくことにより、管理対象ゲストＯＳに障害が発生したときに保存したスナップショットから起動し、ネットワークパケットを再送することで、障害から復旧、または、障害原因の特定を支援するシステムにおいて、
管理対象ゲストＯＳのスナップショットを取得するスナップショット取得手段を備え、
管理対象ゲストＯＳの障害からの復旧、または、障害原因を特定するために、スナップショットからの起動完了後から送信すべきネットワークパケットを特定するスナップショット・パケットデータ同期手段を備え、
前記スナップショット・パケットデータ同期手段は、
スナップショットとパケットデータとの同期のために、スナップショット取得時に情報収集用ゲストＯＳから管理対象ゲストＯＳへ定期的な稼動確認用情報を送受信することで、再送すべきネットワークパケットを特定することを特徴とし、
前記スナップショット取得手段とスナップショット・パケットデータ同期手段とは、
仮想化ソフトウェアや管理対象ゲストＯＳに機能を追加することなく、専用の情報収集用ゲストＯＳ上のみで実施可能であることを特徴とするシステム。
【００８４】
また、以上の実施の形態１では、以下のシステムを説明した。
前記スナップショット・パケットデータ同期手段は、
稼動確認用情報をもとに３つのパターン（パターンａ，ｂ，ｃ）を用いて、スナップショット起動完了後から送信すべきネットワークパケットを特定するシステム。
【００８５】
また、以上の実施の形態１では、以下のシステムを説明した。
前記スナップショット・パケットデータ同期手段は、
特定したネットワークパケットより以前のネットワークパケットデータを削除するシステム。
【００８６】
また、以上の実施の形態２では、以下のシステムを説明した。
前記スナップショット・パケットデータ同期手段は、
稼動確認用情報としてＩＣＭＰパケットを用いるシステム。
【００８７】
また、以上の実施の形態２では、以下のシステムを説明した。
前記スナップショット・パケットデータ同期手段は、
稼動確認用情報として管理対象ゲストＯＳに対するネットワークポート開閉確認を用いるシステム。
【符号の説明】
【００８８】
１００  仮想マシン実行装置、１０１  物理マシン、１０２  仮想マシンモニタ、１０２１  仮想ｓｗｉｔｃｈ、１１０  管理ＯＳ、１１１  仮想マシン管理ＡＰＩ、１１２  ＳＳＨ、１２０  管理対象ゲストＯＳ、１２１  業務アプリケーション、１３０  情報収集用ゲストＯＳ、１３００  スナップショット・パケットデータ同期機能部、１３１０  スナップショット取得部、１３１１  スナップショット取得処理部、１３１２  スナップショット転送処理部、１３２０  スナップショット・パケットデータ同期部、１３２１  稼動確認用情報送信処理部、１３２２  同期パケット検出処理部、１３３０  パケットキャプチャプログラム。
【図１】
2010134177.tif 000003
【図２】
2010134177.tif 000004
【図３】
2010134177.tif 000005
【図４】
2010134177.tif 000006
【図５】
2010134177.tif 000007
【図６】
2010134177.tif 000008
【図７】
2010134177.tif 000009
【図８】
2010134177.tif 000010
【図９】
2010134177.tif 000011
【国際調査報告】
2010134177.tif 000012
2010134177.tif 000013