(57)【特許請求の範囲】
【請求項１】
コンピュータが実行するスナップショット管理方法であって、
仮想マシンの構成の変更を検知する構成変更検知手順と、
該構成の変更の検知に応じ、前記仮想マシンのファイルシステムのスナップショットを記憶手段に記録するスナップショット記録手順と、
前記仮想マシンの稼働状況を監視し、該稼働状況が所定の条件に該当する場合に前記仮想マシンに関して記録されている最後の前記スナップショットを前記記憶手段より削除する安定稼働判断手順とを有するスナップショット管理方法。
【請求項２】
前記構成変更検知手順は、前記仮想マシンによる所定のポートを介した通信に基づいて前記仮想マシンの構成の変更を検知する請求項１記載のスナップショット管理方法。
【請求項３】
前記仮想マシンによる所定のポートを介した通信を監視し、通信量の変化に基づいて通信の異常を検知する通信監視手順を有し、
前記安定稼働判断手順は、前記通信の異常が検知された場合に前記仮想マシンに関して記録されている最後の前記スナップショットを前記記憶手段より削除する請求項１又は２記載のスナップショット管理方法。
【請求項４】
前記安定稼働判断手順は、前記スナップショットの削除の可否を選択させる画面を表示装置に表示させ、該画面を介した入力に応じ前記スナップショットを削除する請求項１乃至３いずれか一項記載のスナップショット管理方法。
【請求項５】
仮想マシンの構成の変更を検知する構成変更検知手段と、
該構成の変更の検知に応じ、前記仮想マシンのファイルシステムのスナップショットを記憶手段に記録するスナップショット記録手段と、
前記仮想マシンの稼働状況を監視し、該稼働状況が所定の条件に該当する場合に前記仮想マシンに関して記録されている最後の前記スナップショットを前記記憶手段より削除する安定稼働判断手段とを有するスナップショット管理装置。
【請求項６】
コンピュータに、
仮想マシンの構成の変更を検知する構成変更検知手順と、
該構成の変更の検知に応じ、前記仮想マシンのファイルシステムのスナップショットを記憶手段に記録するスナップショット記録手順と、
前記仮想マシンの稼働状況を監視し、該稼働状況が所定の条件に該当する場合に前記仮想マシンに関して記録されている最後の前記スナップショットを前記記憶手段より削除する安定稼働判断手順とを実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スナップショット管理方法、スナップショット管理装置、及びプログラム
に関し、特に仮想マシンのスナップショットを管理するためのスナップショット管理方法、スナップショット管理装置、及びプログラムに関する。
【背景技術】
【０００２】
コンピュータの仮想化技術の一つとして、仮想マシン（仮想機械）がある。仮想マシンによれば、コンピュータの物理的な構成による拘束を緩和することができる。例えば、一台のコンピュータ上で複数の仮想マシンを動作させることにより、当該コンピュータを複数のコンピュータとして利用することができる。
【０００３】
仮想マシンによってコンピュータが仮想化されることにより、当該コンピュータの記憶手段（ＨＤＤ（Hard Disk Drive）等）も仮想化される。具体的には、当該コンピュータのＨＤＤには、当該コンピュータ上で動作する仮想マシンごとに、ファイルシステムが構築される。
【０００４】
仮想マシンのファイルシステムは、物理的なＨＤＤの一部分に過ぎないため、スナップショットの保存が容易であるという特性がある。スナップショットを保存することにより、障害発生時等においてロールバックが容易となる。斯かるスナップショットは、基本的に、ユーザによる指示入力に応じて保存される（例えば、特許文献１）。また、所定のタイミングにおいて自動的にスナップショットを保存することも検討されている（例えば、特許文献２、特許文献３）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５−３３２２２３号公報
【特許文献２】特開２００９−５１４５２号公報
【特許文献３】特開平９−１４６７６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、スナップショットの保存は記憶容量の消費を伴う。したがって、必要性の低いスナップショットが多数保存されてしまうと、必要以上に記憶容量を圧迫してしまうという問題がある。
【０００７】
本発明は、上記の点に鑑みてなされたものであって、仮想マシンのファイルシステムのスナップショットの保存対象を適切に限定することのできるスナップショット管理方法、スナップショット管理装置、及びプログラムの提供を目的とする。
【課題を解決するための手段】
【０００８】
そこで上記課題を解決するため、スナップショット管理方法は、仮想マシンの構成の変更を検知する構成変更検知手順と、該構成の変更の検知に応じ、前記仮想マシンのファイルシステムのスナップショットを記憶手段に記録するスナップショット記録手順と、前記仮想マシンの稼働状況を監視し、該稼働状況が所定の条件に該当する場合に前記仮想マシンに関して記録されている最後の前記スナップショットを前記記憶手段より削除する安定稼働判断手順とを有する。
【発明の効果】
【０００９】
開示された技術によれば、仮想マシンのファイルシステムのスナップショットの保存対象を適切に限定することができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施の形態における情報処理装置のハードウェア構成例を示す図である。
【図２】本発明の実施の形態における情報処理装置のソフトウェア構成例を示す図である。
【図３】本発明の実施の形態における仮想マシンモニタ及び仮想マシンの機能構成例を示す図である。
【図４】本発明の実施の形態における仮想マシンモニタによる処理手順を説明するための図である。
【図５】ＳＳ管理テーブルの例を示す図である。
【図６】ＳＳ管理テーブルの記録内容の遷移例を示す図である。
【図７】情報処理装置によって実行される処理の全体フローを説明するためのフローチャートである。
【図８】構成変更の有無の判断処理の処理手順を説明するためのフローチャートである。
【図９】安定稼働の判断処理の処理手順を説明するためのフローチャートである。
【図１０】管理用ポートへのアクセスの検知の通知処理の処理手順を説明するためのフローチャートである。
【図１１】サービス用ポートを介した通信の異常の通知処理の処理手順を説明するためのフローチャートである。
【図１２】アクセス記録テーブルの例を示す図である。
【図１３】仮想マシンの稼働状況を外部装置に監視させる例を示す図である。
【発明を実施するための形態】
【００１１】
以下、図面に基づいて本発明の実施の形態を説明する。図１は、本発明の実施の形態における情報処理装置のハードウェア構成例を示す図である。図１の情報処理装置１０は、それぞれバスBで相互に接続されているドライブ装置１００と、補助記憶装置１０２と、メモリ装置１０３と、ＣＰＵ１０４と、インタフェース装置１０５と、表示装置１０６と、入力装置１０７とを有する。
【００１２】
情報処理装置１０での処理を実現するプログラムは、ＣＤ−ＲＯＭ等の記録媒体１０１によって提供される。プログラムを記録した記録媒体１０１がドライブ装置１００にセットされると、プログラムが記録媒体１０１からドライブ装置１００を介して補助記憶装置１０２にインストールされる。但し、プログラムのインストールは必ずしも記録媒体１０１より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置１０２は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
【００１３】
メモリ装置１０３は、プログラムの起動指示があった場合に、補助記憶装置１０２からプログラムを読み出して格納する。ＣＰＵ１０４は、メモリ装置１０３に格納されたプログラムに従って情報処理装置１０に係る機能を実現する。インタフェース装置１０５は、ネットワークに接続するためのインタフェースとして用いられる。表示装置１０６はプログラムによるＧＵＩ（Graphical User Interface）等を表示する。入力装置１０７はキーボード及びマウス等であり、様々な操作指示を入力させるために用いられる。
【００１４】
なお、表示装置１０６及び入力装置１０７は、情報処理装置１０とネットワークを介して接続される他のコンピュータが有しているものであってもよい。また、インストール対象のプログラムがネットワークを介して転送される場合、情報処理装置１０は、ドライブ装置１００を必ずしも有していなくてもよい。
【００１５】
図２は、本発明の実施の形態における情報処理装置のソフトウェア構成例を示す図である。同図では、情報処理装置１０において、仮想マシンモニタ１１及び１以上の仮想マシン１２（仮想機械）等が動作している様子が示されている。仮想マシンモニタ１１及び仮想マシン１２は、情報処理装置１０にインストールされたプログラムがＣＰＵ１０４に実行させる処理によって実現される。
【００１６】
仮想マシンモニタ１１は、仮想マシン１２の管理を行う。本実施の形態において、仮想マシンモニタ１１は、仮想マシン１２のファイルシステム（仮想的な記憶装置）のスナップショットの保存を行う。スナップショットとは、或る時点におけるファイルシステム１２２のイメージ又は当該イメージを格納したファイル群（ファイルが一つの場合も含まれる。）をいう。
【００１７】
仮想マシン１２は、仮想的なコンピュータである。一つの仮想マシン１２は、一台の物理的なコンピュータと同様に扱われる。例えば、図中に示されているように、各仮想マシン１２上では、それぞれ異なるＯＳ（Operating System）が動作可能である。また、各ＯＳ上では通常のコンピュータと同様に、各種のソフトウェアが動作可能である。
【００１８】
図３は、本発明の実施の形態における仮想マシンモニタ及び仮想マシンの機能構成例を示す図である。同図において、仮想マシンモニタ１１は、仮想マシン管理部１１１、通信監視部１１２、構成変更検知部１１３、スナップショット記録部１１４、安定稼働判断部１１５、アクセス記録テーブル１１６、及びＳＳ管理テーブル１１７等を含む。
【００１９】
仮想マシン管理部１１１は、仮想マシン１２を実現し、仮想マシン１２の管理及び制御等を行う。通信監視部１１２は、仮想マシン１２による通信を監視することにより、仮想マシン１２の異常を検知する。例えば、通信監視部１１２は、仮想マシン１２による通信量の変化（例えば、ＴＣＰ／ＩＰ通信のパケット数の変化）に基づいて異常の有無を判断する。なお、各仮想マシン１２は、仮想的なＮＩＣ（Network Interface Card）を有する。当該仮想的なＮＩＣを介した通信は、仮想マシンモニタ１１を経由してインタフェース装置１０５を介して行われる。したがって、通信監視部１１２は、仮想マシン１２の通信について、仮想マシンモニタ１１における経由区間を監視する。通信監視部１１２は、監視結果をアクセス記録テーブル１１６に記録する。
【００２０】
構成変更検知部１１３は、仮想マシン１２の構成の変更（の兆候）を検知する。仮想マシン１２の構成の変更とは、例えば、仮想マシン１２上において動作する各種ソフトウェアの構成管理ファイルの変更である。構成管理ファイルとは、ソフトウェアの振る舞いを規定するパラメータが記録されたファイルをいい、一般的に、設定ファイル又はコンフィギュレーション等とも呼ばれる。したがって、構成変更検知部１１３は、いずれかのソフトウェアの構成管理ファイルが変更された場合、又は変更された可能性が高いと判断される場合、仮想マシン１２の構成が変更されたと判断する。
【００２１】
スナップショット記録部１１４は、仮想マシン１２のファイルシステム１２２全体のスナップショットを補助記憶装置１０２に記録する。但し、スナップショットの記録先は、情報処理装置１０とネットワークを介して接続される外部記憶装置等であってもよい。安定稼働判断部１１５は、仮想マシン１２の稼働状況を監視する。安定稼働判断部１１５は、該稼働状況が所定の条件に該当する（合致する）場合に当該仮想マシン１２は安定稼働していないと判断し、該所定の条件に該当しない場合に当該仮想マシン１２は安定稼働していると判断する。安定稼働とは、仮想マシン１２上における各種ソフトウェアの動作に異常が発生していない状態をいう。例えば、仮想マシン１２がサーバとして運用されている場合、当該サーバ上におけるサービスの提供に関してエラーや遅延等が発生していない状態である。安定稼動していないと判断された場合、安定稼働判断部１１５は、最後（直近）に記録されたスナップショットを削除する。当該スナップショットは、仮想マシンの安定稼働を保証するものではないと考えられるからである。
【００２２】
ＳＳ管理テーブル１１７は、保存されているスナップショットの属性情報を管理するためのテーブルである。なお、「ＳＳ」は、スナップショットを示す。
【００２３】
一方、仮想マシン１２は、ＶＭ監視エージェント１２１を有する。ＶＭ監視エージェント１２１は、仮想マシン１２の構成を監視し、構成の変更（の兆候）を検知する。例えば、ＶＭ監視エージェント１２１は、監視対象とされた構成管理ファイルを監視し、当該ファイルの変更を検知する。ＶＭ監視エージェント１２１によって監視対象とされる構成管理ファイルの識別情報（例えば、ファイル名）は、予め仮想マシン１２のファイルシステム１２２（物理的には、補助記憶装置１０２）に保存されている。なお、ＶＭ監視エージェント１２１によるファイルの変更の監視方法は、公知技術に従えばよい。例えば、ＶＭ監視エージェント１２１は、ファイルの更新日時を監視してもよいし、ファイルサイズの変化を監視してもよい。また、他の方法によって構成管理ファイルの変更が検知されてもよい。
【００２４】
以下、情報処理装置１０の処理手順について説明する。図４は、本発明の実施の形態における仮想マシンモニタによる処理手順を説明するための図である。
【００２５】
ステップＳ１１において、例えば、管理者は、仮想マシン１２におけるいずれかの構成管理ファイルを編集（更新）する。構成管理ファイルの編集は、テキストエディタ等のツールを用いて行われてもよいし、当該構成管理ファイル専用の編集ツールを用いて行われてもよい。続いて、管理者は、仮想マシン管理部１１１に対して仮想マシン１２のリブート（再起動）又はシャットダウン（終了）を指示する（Ｓ１２）。更新後の構成管理ファイルの内容を、ソフトウェアの動作に反映させるためである。なお、仮想マシン１２のリブート等の指示は、例えば、仮想マシン管理部１１１が提供するＧＵＩ（Graphical User Interface）を介して行われる。具体的には、仮想マシン管理部１１１が表示装置１０６に表示させるメニュー内の所定のメニュー項目の選択によってリブート等の指示が入力される。また、起動している仮想マシン１２が複数有る場合、仮想マシン管理部１１１は、当該仮想マシン１２のリストを表示させ、当該リストの中からリブート等の対象とする仮想マシン１２を選択させてもよい。
【００２６】
リブート又はシャットダウンの指示に応じ、仮想マシン管理部１１１は、リブート又はシャットダウンの対象とされた仮想マシン１２をリブート又はシャットダウンする（Ｓ１３）。続いて、仮想マシン管理部１１１は、仮想マシン１２をリブート又はシャットダウンしたことを、当該仮想マシン１２の識別情報と共に構成変更検知部１１３に通知する（Ｓ１４）。なお、リブート又はシャットダウンの対象は、仮想マシン１２上のＯＳであってもよい。すなわち、当該ＯＳがリブート又はシャットダウンされた場合に、構成変更検知部１１３への通知が行われてもよい。
【００２７】
一方、通信監視部１１２は、仮想マシン１２のリブート等とは無関係又は非同期に、仮想マシン１２による通信を常時監視している（Ｓ１５）。より詳しくは、通信監視部１１２は、予め監視対象として設定されているポート番号のリストに基づいて、当該ポート番号に係るポートに対するアクセスの有無を監視している。ここで監視対象とされるポート番号は、例えば、各ソフトウェアによって、管理用のリクエストを受信するために開設されているポートのポート番号である。すなわち、ソフトウェアによっては、サービスの提供要求を受け付けるためのポート（以下「サービス用ポート」という。）と、当該ソフトウェアの管理又は制御用のポート（以下「管理用ポート」という。）とを明確に区別して開設しているものがある。ステップＳ１５では、管理用ポートが監視対象とされる。管理用ポートには構成管理ファイルの内容の変更要求が送信される可能性があるからである。通信監視部１１２は、管理用ポート宛のパケットが検出されると、管理用ポートへのアクセスを検知したことを、当該パケットの宛先である仮想マシン１２の識別情報と共に構成変更検知部１１３に通知する（Ｓ１６）。なお、例えば、「Ｗｅｌｌ  ｋｎｏｗｎ  ｐｏｒｔ  ｎｕｍｂｅｒ」に含まれているポート番号をサービス用ポート又は管理用ポートのポート番号の既定値としてもよい。
【００２８】
また、仮想マシン１２のＶＭ監視エージェント１２１は、監視対象の構成ファイルの変更を検知すると、その旨を当該仮想マシン１２の識別情報と共に構成変更検知部１１３に通知する（Ｓ１７）。なお、ＶＭ監視エージェント１２１を利用する場合、ＶＭ監視エージェント１２１を仮想マシン１２に実装する必要がある。情報処理装置１０が、例えば、クラウド環境においてサービスを提供するコンピュータである場合、仮想マシン１２も顧客の資産に含まれるときもある。その場合、ＶＭ監視エージェント１２１を仮想マシン１２に実装するには顧客の了承を得る必要がある。一方、仮想マシン１２のリブート若しくはシャットダウンによる構成変更の検知や、管理用ポートの監視による構成変更の検知については、顧客の了承を得る必要はない。斯かる点において、リブート若しくはシャットダウンによる構成変更の検知や、管理用ポートの監視による構成変更の検知には優位性が認められる。
【００２９】
構成変更検知部１１３は、仮想マシン管理部１１１からのリブート若しくはシャットダウンの通知（Ｓ１４）、通信監視部１１２からの管理用ポートへのアクセス検知の通知（Ｓ１６）、又はＶＭ監視エージェント１２１による構成管理ファイルの更新の通知（Ｓ１７）に応じ、仮想マシン１２の構成が変化したと判断する。リブート又はシャットダウンの通知によって構成が変化したと判断されるのは、一般的に構成管理ファイルが変更された場合はリブート又はシャットダウンが行われるからである。したがって、リブート又はシャットダウンが行われたということは、いずれかの構成管理ファイルが変更された可能性が高いと考えられるからである。
【００３０】
続いて、構成変更検知部１１３は、通知された仮想マシン１２の識別情報を指定して、スナップショットの記録要求をスナップショット記録部１１４に入力する（Ｓ１８）。続いて、スナップショット記録部１１４は、指定された識別情報に係る仮想マシン１２のファイルシステム１２２全体のイメージ（以下、「ＶＭイメージ」という。）取得し、ＶＭイメージのスナップショット１２３を補助記憶装置１０２の所定の記憶領域に記録（保存）する（Ｓ１９）。なお、スナップショット１２３の記録に際し、同じ仮想マシン１２に対する過去のスナップショット１２３は必ずしも削除されない。すなわち、同じ仮想マシン１２に対するスナップショット１２３は、ロールバック等を可能とするため累積的に蓄積されうる。
【００３１】
続いて、スナップショット記録部１１４は、今回記録したスナップショット１２３に関する属性情報をＳＳ管理テーブル１１７に記録する（Ｓ２０）。
【００３２】
図５は、ＳＳ管理テーブルの例を示す図である。同図において、ＳＳ管理テーブル１１７は、スナップショット１２３ごとに、ＳＳＩＤ、時刻、及び状態等が記録されるテーブルである。ＳＳ管理テーブル１７の実体は補助記憶装置１０２に形成される。
【００３３】
ＳＳＩＤは、各スナップショット１２３を識別するための識別子である。すなわち、本実施の形態では、ＳＳＩＤによって各スナップショット１２３が識別可能である。時刻は、スナップショット１２３が記録された時刻である。状態は、スナップショット１２３の状態である。状態には、「有効」又は「無効」のいずれかの値が与えられる。「有効」は、対応するスナップショット１２３が補助記憶装置１０２に保存されていることを示す。「無効」は、対応するスナップショット１２３が補助記憶装置１０２に保存されていないことを示す。状態の初期値は「有効」である。同図では、１つのレコード（エントリ）が記録されているが、同一の仮想マシン１２に対して複数のスナップショット１２３が蓄積されている場合は、各スナップショット１２３に関するレコードがＳＳ管理テーブル１１７に記録される。
【００３４】
なお、本実施の形態では、便宜上、ＳＳ管理テーブル１１７は、仮想マシン１２ごとに作成されることとする。一つのＳＳ管理テーブル１１７によって全ての仮想マシン１２のスナップショット１２３に関する情報を管理する場合は、仮想マシン１２の識別情報を記録す項目（列）を追加すればよい。
【００３５】
また、スナップショット１２３の派生関係が識別可能なように、派生元のスナップショット１２３のＳＳＩＤをスナップショット１２３ごとにＳＳ管理テーブル１１７に記録するようにしてもよい。例えば、ＳＳＩＤが「Ａ」であるスナップショット１２３に基づいて仮想マシン１２が起動された場合、当該仮想マシン１２の起動中に記録されるスナップショット１２３の派生元のＳＳＩＤは「Ａ」となる。各スナップショット１２３の派生元を記録することにより、スナップショット１２３のツリー構造を形成することができる。その結果、管理者は、スナップショット１２３間の関係を容易に把握することができる。
【００３６】
一方、安定稼働判断部１１５は、仮想マシン管理部１１１、通信監視部１１２、又はＶＭ監視エージェント１２１等からの所定の通知に基づいて仮想マシン１２の稼働状況を監視する（Ｓ２１、Ｓ２２、Ｓ２３）。仮想マシン１２が安定稼働していないことが検知されると、安定稼働判断部１１５は、最後に記録されたレコードのＳＳＩＤをＳＳ管理テーブル１１７より取得し、当該ＳＳＩＤに係るスナップショット１２３を補助記憶装置１０２より削除する（Ｓ２４）。続いて、安定稼働判断部１１５は、削除されたスナップショット１２３に関して、ＳＳ管理テーブル１１７のレコードの状態の値を「無効」とする（Ｓ２５）。
【００３７】
以上の処理の結果、補助記憶装置１０２には、安定稼働する可能性の高いスナップショット１２３が蓄積される。換言すれば、安定稼働しないスナップショット１２３は蓄積対象から除外される。
【００３８】
図６は、ＳＳ管理テーブルの記録内容の遷移例を示す図である。同図において、（１）は、ＳＳ管理テーブル１１７の初期状態である。すなわち、スナップショット１２３がまだ記録されていないときの状態である。（２）は、スナップショット１２３が一つ記録されたときの状態である。当該スナップショット１２３に対するレコード（ＳＳＩＤが１のレコード）が記録されている。この場合、最後に記録されたスナップショット１２３のＳＳＩＤは「１」である。（３）は、新たにスナップショット１２３が記録されたときの状態である。新たに記録されたスナップショット１２３のＳＳＩＤは「２」である。したがって、「２」が、最後に記録されたスナップショット１２３のＳＳＩＤである。（３）の状態において、安定稼働していないことが判断されると、（４）の状態になる。すなわち、最後に記録されたスナップショット１２３が削除され、当該スナップショット１２３の状態が「無効」とされる。（４）の状態において、最後に記録されたスナップショット１２３は無いと判定されてもよいし、ＳＳＩＤが「１」のスナップショット１２３が最後に記録されたものとして扱われてもよい。
【００３９】
図４において説明した処理内容をフローチャートを用いて説明する。図７は、情報処理装置によって実行される処理の全体フローを説明するためのフローチャートである。
【００４０】
構成変更検知部１１３は、常時（例えば、定期的に）、仮想マシン１２の構成の変更の有無を確認している（Ｓ１０１）。構成変更検知部１１３によっていずれかの仮想マシン１２の構成変更が検知されると（Ｓ１０１でＹｅｓ）、スナップショット記録部１１４は、構成変更が検知された仮想マシン１２のＶＭイメージのスナップショット１２３を補助記憶装置１０２に記録する（Ｓ１０２）。スナップショット記録部１１４は、また、記録したスナップショット１２３の属性情報をＳＳ管理テーブル１１７に記録する。なお、スナップショット１２３の保存数の上限値が予め設定されてもよい。上限値が設定されている場合、スナップショット記録部１１４は、既に保存されているスナップショット１２３の数が上限値に達していれば、いずれかのスナップショット１２３を削除した後に、新たなスナップショット１２３を記録する。そうすることにより、スナップショット１２３による記憶容量の消費量を抑制することができる。削除対象とされるスナップショット１２３は、例えば、最も古いものであってもよいし、これから記録されるスナップショット１２３に対する類似度が相対的に高いものであってもよい。
【００４１】
一方、安定稼働判断部１１５は、常時（例えば、定期的に）、各仮想マシン１２の稼働状況を監視している（Ｓ１０３）。安定稼働していない仮想マシン１２が検知された場合（Ｓ１０３でＮｏ）、安定稼働判断部１１５は、当該仮想マシン１２の最後のスナップショット１２３を補助記憶装置１０２より削除する（Ｓ１０４）。また、安定稼働判断部１１５は、ＳＳ管理テーブル１１７において、削除されたスナップショット１２３の状態を「無効」とする。なお、削除されたスナップショット１２３のレコードがＳＳ管理テーブル１１７から削除されてもよい。この場合、ＳＳ管理テーブル１１７において、「状態」の項目は必ずしも必要ではない。
【００４２】
なお、図７では、ステップＳ１０１及びＳ１０２と、ステップＳ１０３及びＳ１０４とが直列的に示されている。但し、ステップＳ１０１及びＳ１０２と、ステップＳ１０３及びＳ１０４とは並列的に又は非同期に実行されてもよい。又は、ステップＳ１０２が実行された場合に、ステップＳ１０３及びＳ１０４が実行されてもよい。
【００４３】
続いて、ステップＳ１０１の詳細について説明する。図８は、構成変更の有無の判断処理の処理手順を説明するためのフローチャートである。
【００４４】
構成変更検知部１１３は、仮想マシン管理部１１１から仮想マシン１２のリブート若しくはシャットダウンの通知が有った場合（Ｓ２０１でＹｅｓ）、通信監視部１１２から管理用ポートへのアクセス検知の通知が有った場合（Ｓ２０２でＹｅｓ）、又はＶＭ監視エージェント１２１から構成管理ファイルの更新の通知が有った場合（Ｓ２０３でＹｅｓ）、各通知において指定された識別情報に係る仮想マシン１２の構成は変更された判断する（Ｓ２０４）。一方、いずれの通知も無い場合（Ｓ２０３でＮｏ）、構成変更検知部１１３は、構成が変更された仮想マシン１２は無いと判断する（Ｓ２０５）。
【００４５】
なお、仮想マシン１２のＯＳ上で動作する所定のソフトウェアが終了又は再起動された場合に、仮想マシン１２の構成が変更されたと判断するようにしてもよい。この場合、当該所定のソフトウェアの構成管理ファイルが変更された可能性が有るからである。所定のソフトウェアの終了又は再起動の監視は、ＶＭ監視エージェント１２１に実行させればよい。
【００４６】
続いて、図７のステップＳ１０３の詳細について説明する。図９は、安定稼働の判断処理の処理手順を説明するためのフローチャートである。
【００４７】
安定稼働判断部１１５は、仮想マシン１２のロールバックが行われた場合（Ｓ３０１でＹｅｓ）、当該仮想マシン１２は安定稼働していないと判断する（Ｓ３０５）。ロールバックとは、仮想マシン１２のファイルシステム１２２の状態を、保存されているスナップショット１２３に基づく状態に戻すことをいう。通常、ロールバックは、構成管理ファイルの変更等を行った結果、障害が発生した場合に行われる。構成管理ファイルの変更前の正常な状態（安定稼働の状態）に戻すためである。換言すれば、ロールバックが実行されたということは、安定稼働していなかった可能性が高いと考えられる。したがって、安定稼働判断部１１５は、ロールバックが仮想マシン１２について、安定稼働していないと判断する。
【００４８】
なお、仮想マシン１２のロールバックは、仮想マシン管理部１１１が提供するＧＵＩを介して管理者によって指示される。当該ＧＵＩ（画面）では、例えば、保存されているスナップショット１２３と、ロールバックの対象とする仮想マシン１２とが選択され、ロールバックの実行が指示される。仮想マシン管理部１１１は、選択された仮想マシン１２に関して、選択されたスナップショット１２３に基づくロールバックを実行する。仮想マシン管理部１１１は、ロールバックを実行したことと、ロールバックの対象とされた仮想マシン１２の識別情報とを安定稼働判断部１１５に通知する。安定稼働判断部１１５は、当該通知に基づいて、ステップＳ３０１において、ロールバックが実行されたことを検知する。
【００４９】
また、安定稼働判断部１１５は、起動されない仮想マシン１２が有る場合（Ｓ３０２でＹｅｓ）、当該仮想マシン１２は安定稼働していないと判断する（Ｓ３０５）。仮想マシン１２が起動されないということは、何らかの障害が発生している可能性が高いからである。仮想マシン１２の起動は、仮想マシン管理部１１１が提供するＧＵＩを介して管理者によって指示される。当該ＧＵＩ（画面）では、起動対象とされる仮想マシン１２が選択される。仮想マシン管理部１１１は、選択れた仮想マシン１２の起動を実行する。仮想マシン１２が起動されない場合、仮想マシン管理部１１１は、仮想マシン１２が起動されないことと、当該仮想マシン１２の識別情報とを安定稼働判断部１１５に通知する。安定稼働判断部１１５は、当該通知に基づいて、ステップＳ３０２において、起動されない仮想マシン１２が有ることを検知する。
【００５０】
また、安定稼働判断部１１５は、サービス用ポートを介した通信に異常の可能性が検出された仮想マシン１２が有る場合（Ｓ３０３でＹｅｓ）、当該仮想マシン１２は安定稼働していないと判断する（Ｓ３０５）。サービス用ポートとは、通常の運用時において、或るソフトウェアがサービス提供要求を受け付けるためのポートである。係るポートを介した通信に異常の可能性が有るということは、仮想マシン１２が安定稼働していない可能性が高いと考えられる。したがって、安定稼働判断部１１５は、サービス用ポートを介した通信に異常の可能性が検出された仮想マシン１２については安定稼働していないと判断する。ここで、通信の異常とは、例えば、スナップショット１２３が記録される前と比較してパケット数が所定数以上又は所定の割合以上減少した状態である。なお、サービス用ポートを介した通信の異常の可能性は、後述されるように通信監視部１１２より通知される。安定稼働判断部１１５は、当該通知に基づいて、ステップＳ３０３において、サービス用ポートを介した通信に異常の可能性が検出された仮想マシン１２が有ることを検知する。
【００５１】
また、安定稼働判断部１１５は、ログファイルにエラー情報を出力しているソフトウェアが動作している仮想マシン１２が有る場合（Ｓ３０４でＹｅｓ）、当該仮想マシン１２は安定稼働していないと判断する（Ｓ３０５）。エラーが発生しているソフトウェアが存在する仮想マシン１２は、サービスを適切に提供できていない可能性が高いからである。
【００５２】
なお、ログファイルにエラー情報を出力されているか否かは、ＶＭ監視エージェント１２１に監視させればよい。すなわち、ＶＭ監視エージェント１２１は、監視対象とされたログファイルの内容を監視し、エラーを示す文字列が検出されたら安定稼働判断部１１５に対して通知を行う。当該通知には、ログファイルにエラー情報が出力されたことと、当該仮想マシン１２の識別情報が含まれている。安定稼働判断部１１５は、当該通知に基づいて、ステップＳ３０４において、ログファイルにエラー情報が出力しているソフトウェアが動作している仮想マシン１２が有ることを検知する。但し、ログファイルの監視は、安定稼働判断部１１５が直接行ってもよい。この場合、安定稼働判断部１１５に対して、監視対象とするログファイルの識別情報（例えば、ファイル名）が設定されていればよい。
【００５３】
ステップＳ３０１〜Ｓ３０４のいずれにも該当しない場合（Ｓ３０４でＮｏ）、安定稼働判断部１１５は、各仮想マシン１２は安定稼働していると判断する（Ｓ３０６）。
【００５４】
すなわち、本実施の形態において、ステップＳ３０１〜Ｓ３０４は、安定稼働判断部１１５が仮想マシン１２の安定稼働を判断するための所定の条件に相当する。
【００５５】
続いて、図８のステップＳ２０２の詳細について説明する。図１０は、管理用ポートへのアクセスの検知の通知処理の処理手順を説明するためのフローチャートである。図１０の処理は、仮想マシン１２の起動に応じて開始され、仮想マシン１２ごとに実行される。
【００５６】
通信監視部１１２は、管理用ポートに対するコネクションの開始（すなわち、管理用ポートに対する接続要求）を検知すると（Ｓ４０１）、当該コネクションが切断されるまで待機する（Ｓ４０２）。当該コネクションの切断が検知されると（Ｓ４０２でＹｅｓ）、通信監視部１１２は、処理対象の仮想マシン１２の識別情報を指定して、当該仮想マシン１２の構成変更を構成変更検知部１１３に通知する（Ｓ４０３）。
【００５７】
続いて、図９のステップＳ３０３の詳細について説明する。図１１は、サービス用ポートを介した通信の異常の通知処理の処理手順を説明するためのフローチャートである。図１１の処理は、仮想マシン１２の起動に応じて開始され、仮想マシン１２ごとに実行される。また、処理対象の仮想マシン１２のシャットダウン（終了）に応じて終了する。
【００５８】
ステップＳ５０１において、通信監視部１１２は、アクセス記録テーブル１１６を初期化する（Ｓ５０１）。具体的には、処理対象の仮想マシン１２に対するアクセス記録テーブル１１６の記録内容を破棄する。続いて、監視開始時刻が到来しているか否かを判定する（Ｓ５０２）。監視開始時刻とは、監視期間の開始時刻をいう。監視期間は、予め設定された期間であり、例えば、１日のうちの所定の時間帯である。監視開始時刻が到来している場合（Ｓ５０２でＹｅｓ）、通信監視部１１２は、現時点におけるアクセス記録テーブル１１６の記録内容を退避しておく（Ｓ５０３）。すなわち、現時点のアクセス記録テーブル１１６の記録内容の複製が補助記憶装置１０２に生成される。監視開始時刻が到来していない場合（Ｓ５０２でＮｏ）、アクセス記録テーブル１１６の記録内容の退避は実行されない。
【００５９】
続いて、サービス用ポート宛のパケットが検出されると（Ｓ５０４でＹｅｓ）、通信監視部１１２は、アクセス記録テーブル１１６を更新する（Ｓ５０５）。
【００６０】
図１２は、アクセス記録テーブルの例を示す図である。同図に示されるように、アクセス記録テーブル１１６には、サービス用ポートのポート番号ごとに受信されたパケット数が記録される。したがって、ステップＳ５０５において、通信監視部１１２は、検出されたパケットの宛先のパケット番号に対するパケット数を１つ増加させる。
【００６１】
続いて、通信監視部１１２は、監視開始時刻から所定時間（例えば、１時間）が経過したか否かを判定する（Ｓ５０６）。すなわち、監視期間が終了したか否かが判定される。監視期間が終了していない場合（Ｓ５０６でＮｏ）、通信監視部１１２は、ステップＳ５０４以降を繰り返す。したがって、サービス用ポート宛のパケットの検出に応じて、アクセス記録テーブル１１６が更新される。
【００６２】
監視期間が終了した場合（Ｓ５０６でＹｅｓ）、通信監視部１１２は、今回の監視期間における各サービス用ポートに対するパケット数を算出する（Ｓ５０７）。具体的には、各サービス用ポートについて、監視期間終了時にアクセス記録テーブル１１６に記録されているパケット数から、ステップＳ５０３において退避されているパケット数を減ずることにより、今回の監視期間のパケット数が算出される。なお、算出されたパケット数は、今回の監視期間に関連付けてメモリ装置１０３に記録される。
【００６３】
続いて、通信監視部１１２は、今回の監視期間における各サービス用パケットに対するパケット数と、前回の監視期間における各サービス用パケットに対するパケット数とを比較することにより異常の有無を判定する（Ｓ５０８）。例えば、今回のパケット数が前回のパケット数に対して所定数又は所定の割合分減少しているサービス用ポートが検出された場合、異常が有ると判定される。パケット数が顕著に減少しているということは、該当するサービス用ポートのサービスが適切に提供されていない可能性があるからである。具体例として、各サービス用ポートのパケット数に関して以下の条件が満たされたサービス用ポートが検出された場合、異常が有ると判定される。
【００６４】
（前回のパケット数）×０．０１＞今回のパケット数
【００６５】
この条件は、今回のパケット数が前回のパケット数の１００分の１以下であったら異常であると判定することを示す。なお、前回の監視期間における各サービス用パケットに対するパケット数は、前回の監視期間の終了時においてメモリ装置１０３に記録されたものである。
【００６６】
異常が有ると判定された場合（Ｓ５０９でＹｅｓ）、通信監視部１１２は、サービス用ポートを介した通信に異常の可能性が検出されたことを安定稼働判断部１１５に通知する（Ｓ５１０）。当該通知には、処理対象の仮想マシン１２の識別情報が含められる。異常が無いと判定された場合（Ｓ５１０でＮｏ）、通信監視部１１２は、ステップＳ５０２以降の処理を繰り返す。
【００６７】
図１１の処理は、処理対象の仮想マシン１２が終了するまで継続される。したがって、仮想マシン１２の終了時におけるアクセス記録テーブル１１６には、仮想マシン１２が稼働している間に受信されたパケットの累積数がサービス用パケットごとに記録されていることになる。
【００６８】
なお、監視期間は、毎日同じ時間帯とするとよい。サービスの利用状況は時間帯によって顕著に変化する傾向にあり、異なる時間帯を比較すると異常でない場合に異常であると判定される可能性が高くなるからである。監視期間を毎日同じ時間帯とした場合、前日の当該時間帯におけるパケット数と、当日の当該時間帯におけるパケット数が比較されることになる。
【００６９】
但し、スナップショット１２３の前後の変化をより厳密に測定したい場合は、監視期間をスナップショット１２３の記録時において区切ってもよい。例えば、１時間をパケット数のカウント期間とする、スナップショット１２３が記録されば場合、スナップショット１２３の記録時の直前のカウント期間におけるパケット数と、スナップショット１２３の記録時の直後のカウント期間におけるパケット数とを比較してもよい。
【００７０】
なお、図１０及び図１１等におけるパケットの監視技術については、Ｗｉｒｅｓｈａｒｋ等の公知技術を用いればよい。
【００７１】
また、図１１の処理の代わりに、又は図１１の処理と併せて、ＳＮＭＰ（Simple Network Management Protocol）を利用して、仮想マシン１２に関する異常の検知が行われてもよい。例えば、ＶＭ監視エージェント１２１がＳＮＭＰエージェントとして、仮想マシン１２内の障害を検知した場合、安定稼働判断部１１５にその旨を通知するようにしてもよい。但し、ＳＮＭＰエージェントとしてのＶＭ監視エージェント１２１が、情報処理装置１０のハードウェアの障害（すなわち、物理的な障害）を検知した場合は、安定稼動判断部への通知は行われなくてもよい。ハードウェアの障害は、特定の仮想マシン１２の構成に依存するものではないからである。
【００７２】
上述したように、本実施の形態の情報処理装置１０によれば、仮想マシン１２の構成の変化の兆候に基づいて自動的にスナップショット１２３が記録される。したがって、ユーザの操作負担を軽減することができると共に、ユーザによるスナップショット１２３の取り忘れ等を防止することができる。また、仮想マシン１２が安定稼働していないことが検知された場合は、当該仮想マシン１２に関して記録されている最後のスナップショット１２３が削除される。安定稼働していないことが検知された場合の最後のスナップショット１２３は、安定稼働が保証されないものであるといえる。したがって、斯かるスナップショット１２３は利用価値が乏しい。よって、斯かるスナップショット１２３を削除することにより、不要なスナップショット１２３を保存対象から適切に排除することができる。
【００７３】
なお、スナップショット１２３の削除は強制的又は自動的に行われなくてもよい。例えば、安定稼働判断部１１５は、仮想マシン１２が安定稼働していないことを検知した際に、スナップショット１２３の削除の可否を選択させる画面を表示装置１０６に表示させてもよい。安定稼働判断部１１５は、当該画面を介してスナップショット１２３の削除指示が入力された場合に、スナップショット１２３の削除を実行するようにしてもよい。画面を介した問い合わせは、特に、通信監視部１１２によって異常が検知された場合に有効である。サービス用ポートのパケット量が減少したのは、単に仮想マシン１２上で動作するソフトウェアに対するサービスの提供要求が減少したことが原因であることも考えられるからである。
【００７４】
また、仮想マシン管理部１１１は、管理者等の操作指示に応じ、ＳＳ管理テーブル１１７やアクセス記録テーブル１１６に記録された情報を表示装置１０６に表示するようにしてもよい。例えば、各スナップショット１２３が記録された時刻や、仮想マシン１２の稼動期間における各サービス用ポートへのアクセス状況等が表示対象とされる。スナップショット１２３が記録された時刻は、ＳＳ管理テーブル１１７より取得される。稼動マシンの稼働期間（起動されてから終了するまで）の各サービス用ポートへのアクセス情報（パケット数）は、アクセス記録テーブル１６より取得される。
【００７５】
また、例えば、ロードバランサ等によって負荷分散が図られている場合のように、仮想マシン１２が外部から利用されない期間が明らかに把握できる場合は、スナップショット１２３を記録するタイミングを当該期間中にずらすようにしてもよい。すなわち、構成変更検知部１１３は、構成の変更を検知した場合、直ちにではなく、当該期間の開始後にスナップショット１２３を記録する。そうすることにより、スナップショット１２３の記録処理の負荷による、サービスに関する処理の遅延をクライアント（サービスの利用者）から隠蔽することができる。
【００７６】
なお、仮想マシン１２の構成の変更の監視や、稼働状況の監視には、本実施の形態において説明した技術以外の他の公知技術を適用してもよい。例えば、公知の運用管理ツールが用いられてもよい。運用管理ツールは一般的に仮想マシン１２の構成変更や稼動状況を監視する仕組みを備えている。したがって、構成変更検知部１１３又は安定稼働判断部１１５は、斯かる運用管理ツールを用いて仮想マシン１２の構成変更の検知又は安定稼働しているか否かの判断を行ってもよい。
【００７７】
また、外部装置に仮想マシン１２の稼働状況を監視させもよい。図１３は、仮想マシンの稼働状況を外部装置に監視させる例を示す図である。
【００７８】
同図において、監視サーバ２０は、情報処理装置１０とネットワークを介して接続されるコンピュータである。監視サーバ２０は、いわゆるヘルスチェック機能を有する。ヘルスチェック機能によって仮想マシン１２の異常が検知された場合（Ｓ３１）、監視サーバ２０は、異常が検知されたことを安定稼働判断部１１５に通知する（Ｓ３２）。安定稼働判断部１１５は、当該通知に応じて、当該仮想マシン１２に対する最後のスナップショット１２３を削除する。
【００７９】
より具体的には、監視サーバ２０は、ヘルスチェック機能として、例えば、仮想マシン１２上で動作するソフトウェアの一つであるＨＴＴＰサーバによって提供されるＷｅｂサイト（Ｗｅｂページ）に定期的にアクセスする。当該Ｗｅｂサイトに対するアクセスにおいて異常が発生した場合（例えば、エラー応答が受信された場合、又は応答が返信されない場合等）、監視サーバ２０は、仮想マシン１２に異常が発生したと判断する。
【００８０】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【００８１】
以上の説明に関し、更に以下の項を開示する。
（付記１）
コンピュータが実行するスナップショット管理方法であって、
仮想マシンの構成の変更を検知する構成変更検知手順と、
該構成の変更の検知に応じ、前記仮想マシンのファイルシステムのスナップショットを記憶手段に記録するスナップショット記録手順と、
前記仮想マシンの稼働状況を監視し、該稼働状況が所定の条件に該当する場合に前記仮想マシンに関して記録されている最後の前記スナップショットを前記記憶手段より削除する安定稼働判断手順とを有するスナップショット管理方法。
（付記２）
前記構成変更検知手順は、前記仮想マシンによる所定のポートを介した通信に基づいて前記仮想マシンの構成の変更を検知する付記１記載のスナップショット管理方法。
（付記３）
前記仮想マシンによる所定のポートを介した通信を監視し、通信量の変化に基づいて通信の異常を検知する通信監視手順を有し、
前記安定稼働判断手順は、前記通信の異常が検知された場合に前記仮想マシンに関して記録されている最後の前記スナップショットを前記記憶手段より削除する付記１又は２記載のスナップショット管理方法。
（付記４）
前記安定稼働判断手順は、前記スナップショットの削除の可否を選択させる画面を表示装置に表示させ、該画面を介した入力に応じ前記スナップショットを削除する付記１乃至３いずれか一項記載のスナップショット管理方法。
（付記５）
仮想マシンの構成の変更を検知する構成変更検知手段と、
該構成の変更の検知に応じ、前記仮想マシンのファイルシステムのスナップショットを記憶手段に記録するスナップショット記録手段と、
前記仮想マシンの稼働状況を監視し、該稼働状況が所定の条件に該当する場合に前記仮想マシンに関して記録されている最後の前記スナップショットを前記記憶手段より削除する安定稼働判断手段とを有するスナップショット管理装置。
（付記６）
前記構成変更検知手段は、前記仮想マシンによる所定のポートを介した通信に基づいて前記仮想マシンの構成の変更を検知する付記５記載のスナップショット管理装置。
（付記７）
前記仮想マシンによる所定のポートを介した通信を監視し、通信量の変化に基づいて通信の異常を検知する通信監視手段を有し、
前記安定稼働判断手段は、前記通信の異常が検知された場合に前記仮想マシンに関して記録されている最後の前記スナップショットを前記記憶手段より削除する付記５又は６記載のスナップショット管理装置。
（付記８）
前記安定稼働判断手段は、前記スナップショットの削除の可否を選択させる画面を表示装置に表示させ、該画面を介した入力に応じ前記スナップショットを削除する付記５乃至７いずれか一項記載のスナップショット管理装置。
（付記９）
コンピュータに、
仮想マシンの構成の変更を検知する構成変更検知手順と、
該構成の変更の検知に応じ、前記仮想マシンのファイルシステムのスナップショットを記憶手段に記録するスナップショット記録手順と、
前記仮想マシンの稼働状況を監視し、該稼働状況が所定の条件に該当する場合に前記仮想マシンに関して記録されている最後の前記スナップショットを前記記憶手段より削除する安定稼働判断手順とを実行させるためのプログラム。
（付記１０）
前記構成変更検知手順は、前記仮想マシンによる所定のポートを介した通信に基づいて前記仮想マシンの構成の変更を検知する付記９記載のプログラム。
（付記１１）
前記仮想マシンによる所定のポートを介した通信を監視し、通信量の変化に基づいて通信の異常を検知する通信監視手順を前記コンピュータに実行させ、
前記安定稼働判断手順は、前記通信の異常が検知された場合に前記仮想マシンに関して記録されている最後の前記スナップショットを前記記憶手段より削除する付記９又は１０記載のプログラム。
（付記１２）
前記安定稼働判断手順は、前記スナップショットの削除の可否を選択させる画面を表示装置に表示させ、該画面を介した入力に応じ前記スナップショットを削除する付記９乃至１１いずれか一項記載のプログラム。
【符号の説明】
【００８２】
１０          情報処理装置
１１          仮想マシンモニタ
１２          仮想マシン
２０          監視サーバ
１００        ドライブ装置
１０１        記録媒体
１０２        補助記憶装置
１０３        メモリ装置
１０４        ＣＰＵ
１０５        インタフェース装置
１０６        表示装置
１０７        入力装置
１１１        仮想マシン管理部
１１２        通信監視部
１１３        構成変更検知部
１１４        スナップショット記録部
１１５        安定稼働判断部
１１６        アクセス記録テーブル
１１７        ＳＳ管理テーブル
１２１        ＶＭ監視エージェント
１２２        ファイルシステム
Ｂ            バス
【図１】
0005440273.tif 000002
【図２】
0005440273.tif 000003
【図３】
0005440273.tif 000004
【図４】
0005440273.tif 000005
【図５】
0005440273.tif 000006
【図６】
0005440273.tif 000007
【図７】
0005440273.tif 000008
【図８】
0005440273.tif 000009
【図９】
0005440273.tif 000010
【図１０】
0005440273.tif 000011
【図１１】
0005440273.tif 000012
【図１２】
0005440273.tif 000013
【図１３】
0005440273.tif 000014