(57)【特許請求の範囲】
【請求項１】
仮想マシンのスナップショットに対して更新を自動的に適用する方法であって、コンピュータ・システムが、
既存のスナップショットの状態と同一の状態を再現する仮想マシンのクローンを作成するステップと、
前記クローンとして作成した仮想マシン（以下、クローン仮想マシンという）の仮想ネットワーク・インタフェース・カード（以下、仮想ＮＩＣという）を無効にし、別の仮想ＮＩＣを追加するステップと、
前記別の仮想ＮＩＣを追加したクローン仮想マシンに、ネットワーク経由で更新を適用するステップと、
前記更新を適用したクローン仮想マシンから前記別の仮想ＮＩＣを削除して、前記無効にした仮想ＮＩＣを有効にするステップと、
前記仮想ＮＩＣを有効にしたクローン仮想マシンのスナップショットを作成することによって、クローン元の仮想マシンのスナップショットを作成するステップと
を実行することを含む、前記方法。
【請求項２】
前記コンピュータ・システムが、
前記仮想マシンのクローンを作成するステップ、前記追加するステップ、前記適用するステップ、前記有効にするステップ、及び前記クローン元の仮想マシンのスナップショットを作成するステップを繰り返すステップ
を実行することをさらに含む、請求項１に記載の方法。
【請求項３】
前記繰り返すステップが、
定期的に、
前記更新の通知を受け取ることによって、
前記既存のスナップショットの又は前記既存のスナップショットに関連付けられたスナップショットの取得頻度若しくは利用頻度の制御情報に従って、又は、
ユーザのアクションをトリガーとして
行われる、請求項２に記載の方法。
【請求項４】
前記仮想マシンのクローンを作成するステップが、
前記既存のスナップショットに関連付けられた優先度に従って、又は
前記既存のスナップショットの利用頻度若しくは利用時間、又は当該既存のスナップショットのスナップショット取得頻度に従って、
複数の既存のスナップショットのうちからクローン仮想マシンを作成する既存のスナップショットを選択するステップ
をさらに含む、請求項１〜３のいずれか一項に記載の方法。
【請求項５】
前記優先度がユーザの指示により作成されたユーザ・スナップショットに付されている、請求項４に記載の方法。
【請求項６】
前記コンピュータ・システムが、
前記既存のスナップショットの利用頻度若しくは利用時間、又は当該既存のスナップショットのスナップショット取得頻度をモニターするステップ
を実行することをさらに含む、請求項１〜５のいずれか一項に記載の方法。
【請求項７】
前記既存のスナップショットが、ユーザの指示により作成されたユーザ・スナップショット又は前記クローン元の仮想マシンのスナップショットを作成するステップにおいて作成されたシステム・スナップショットである、請求項１〜６のいずれか一項に記載の方法。
【請求項８】
クローン元の仮想マシンの前記既存のスナップショットが前記ユーザ・スナップショットであり、
管理ビュー上で、前記ユーザ・スナップショットのクローン仮想マシンから作成されたシステム・スナップショットが前記クローン元の仮想マシンの前記ユーザ・スナップショットに関連付けて表示される、
請求項７に記載の方法。
【請求項９】
クローン元の仮想マシンの前記既存のスナップショットが前記システム・スナップショットであり、
管理ビュー上で、前記システム・スナップショットのクローン仮想マシンから作成されたシステム・スナップショットが前記クローン元の仮想マシンの前記システム・スナップショットに関連付けて表示される、
請求項７に記載の方法。
【請求項１０】
前記コンピュータ・システムが、
前記クローン元の仮想マシンのスナップショットを作成するステップにおいて作成された少なくとも２つのスナップショットをマージするステップ
を実行することをさらに含む、請求項１〜９のいずれか一項に記載の方法。
【請求項１１】
前記コンピュータ・システムが、
ユーザの指示により作成されたユーザ・スナップショット及び前記クローン元の仮想マシンのスナップショットを作成するステップにおいて作成されたシステム・スナップショットをグルーピングし、当該グルーピングしたスナップショットを管理ビュー上で表示するステップ
をさらに実行することを含む、請求項１〜９のいずれか一項に記載の方法。
【請求項１２】
前記クローンを作成するステップが、
前記グルーピングされたシステム・スナップショットが選択されることに応じて、当該グルーピングされたシステム・スナップショットのうちの最新のシステム・スナップショットの状態と同一の状態を再現する仮想マシンのクローンを作成するステップ
を含む、請求項１１に記載の方法。
【請求項１３】
前記コンピュータ・システムが、
前記グルーピングされたスナップショットのうちの最新でない１又は複数のシステム・スナップショットを最新のシステム・スナップショットにマージするステップと、
前記最新でない１又は複数のシステム・スナップショットを削除するステップと
をさらに実行することを含む、請求項１１又は１２のいずれか一項に記載の方法。
【請求項１４】
前記コンピュータ・システムが、
前記グルーピングしたスナップショット群の一つが選択されることに応じて、前記グルーピングしたスナップショット群に属するスナップショットを前記管理ビュー上で表示するステップ
をさらに実行することを含む、請求項１１〜１３のいずれか一項に記載の方法。
【請求項１５】
前記コンピュータ・システムが、
管理ビュー上で、前記更新の更新リストを表示するステップ
をさらに実行することを含む、請求項１〜１４のいずれか一項に記載の方法。
【請求項１６】
前記別の仮想ＮＩＣを追加するステップが、
前記別の仮想ＮＩＣを追加したクローン仮想マシンを起動し、当該別の仮想ＮＩＣに未使用のＩＰアドレスを割り当てるステップ
をさらに含む、請求項１〜１５のいずれか一項に記載の方法。
【請求項１７】
前記更新が、前記別の仮想ＮＩＣに割り当てられたＩＰアドレスを使用して行われる、請求項１６に記載の方法。
【請求項１８】
前記クローン仮想マシンの仮想ＮＩＣを無効にすることが、
当該仮想ＮＩＣを前記ネットワークから切り離すこと、又は、
前記クローン仮想マシンを起動したときに、当該仮想ＮＩＣが当該クローン仮想マシンのオペレーティング・システムによって認識されないようにすること
によって行われ、
前記無効にした仮想ＮＩＣを有効にすることが、
当該無効にした仮想ＮＩＣを前記ネットワークに接続すること、
当該無効にした仮想ＮＩＣを追加すること、又は、
前記無効にした仮想ＮＩＣが当該クローン仮想マシンのオペレーティング・システムによって認識されるようにすること
によって行われる、請求項１〜１７のいずれか一項に記載の方法。
【請求項１９】
仮想マシンのスナップショットに対して更新を自動的に適用する為のコンピュータ・システムであって、
既存のスナップショットの状態と同一の状態を再現する仮想マシンのクローンを作成するクローン作成手段と、
前記クローンとして作成した仮想マシン（以下、クローン仮想マシンという）の仮想ネットワーク・インタフェース・カード（以下、仮想ＮＩＣという）を無効にし、別の仮想ＮＩＣを追加するクローン仮想マシン構成管理手段と、
前記別の仮想ＮＩＣを追加したクローン仮想マシンに、ネットワーク経由で更新を適用する更新適用手段と
を備えており、
前記クローン仮想マシン構成管理手段が、前記更新を適用したクローン仮想マシンから前記別の仮想ＮＩＣを削除して、前記無効にした仮想ＮＩＣを有効にし、
前記コンピュータ・システムが、
前記仮想ＮＩＣを有効にしたクローン仮想マシンのスナップショットを作成することによって、クローン元の仮想マシンのスナップショットを作成するスナップショット作成手段
をさらに備えている、前記コンピュータ・システム。
【請求項２０】
仮想マシンのスナップショットに対して更新を自動的に適用する為のコンピュータ・システム用プログラムであって、コンピュータ・システムに、請求項１〜１８のいずれか一項に記載の方法の各ステップを実行させる、前記コンピュータ・システム用プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム更新を適用する技法に関する。本発明は、特には、仮想マシンのスナップショットに対して、更新を自動的に適用する技法に関する。
【背景技術】
【０００２】
昨今のクラウドサービスの普及に伴い、物理マシンでだけでなく、仮想マシン（virtual machine，ＶＭ）を利用する機会が増えきている。仮想マシンは、コンピュータの仮想化技術の一つである。仮想マシンでは、ハードウェアを仮想化することによって、１つのコンピュータ上で、同一の又は異なる複数のオペレーティング・システムを動作させることが可能である。仮想マシンは、個々に完全に独立した形で動作する１プログラム実行環境である。
【０００３】
しかしながら、仮想マシンにも物理マシンと同様に、オペレーティング・システムやアプリケーション・ソフトウェアに存在する脆弱性に対して攻撃が行われるリスクがある。
【０００４】
このことは、仮想マシンにも物理マシンと同様に、セキュリティ遵守の観点からセキュリティ対策（例えば、セキュリティ・フィックスやプログラム・フィックスなどのフィックス）の適用が求められている。
【０００５】
下記特許文献１は、コンピュータに侵入するウイルスに対応するためのウイルス対策方法であって、コンピュータ上に生成された、アプリケーション・プログラムを実行させる１つ以上の第１の仮想マシンの状態を、前記ウイルスを検出して除去するウイルス対策ソフトウェアを実行させる第２の仮想マシンにより監視するとともに、前記第１の仮想マシンの状態をスナップショットとして定期的に保存し、前記第２の仮想マシン上で実行する前記ウイルス対策ソフトウェアがウイルスを検出した場合、該ウイルスを検出した第１の仮想マシンを停止させ、停止させた第１の仮想マシンのスナップショットを用いて、該スナップショットを保存したときの第１の仮想マシンの状態を復元することを特徴とする、ウイルス対策方法を記載する（請求項１）。
【０００６】
下記特許文献２は、新たに仮想マシンを生成するメッセージを受けたことをメッセージマスタテーブルの識別子を参照して判定したとき、仮想環境管理コンピュータのテンプレートを参照して検疫用仮想化サーバ上に、検疫用仮想マシンを生成する第１工程と、該第１工程により生成した検疫用仮想マシンのテンプレートが検疫済みか否かを仮想マシンマスタテーブルの検疫フラグを参照して判定する第２工程と、該第２工程において生成した検疫用仮想マシンのテンプレートが検疫済みと判定したとき、検疫用仮想化サーバ上の検疫用仮想マシンを稼動仮想化サーバ上に稼動仮想マシンとして移動する第３工程とを実行する仮想マシンセキュリティ管理システムを記載する（請求項１）。
【０００７】
下記特許文献３は、アプリケーション・データを含むシステム・データが最新であるか判断するステップと、前記システム・データが最新ではないと判断された場合には、ユーザ入力の受け付けを遮断させるステップと、前記システム・データの更新データを、アップデート・サーバからネットワーク経由で取得させ、前記システム・データの更新を実施させるステップと、前記システム・データの更新完了を検出すると、前記システム・データが記録されており且つユーザ・データが格納され得るデータ記録部を前記システム・データの更新完了時における状態へ復元させるためのスナップショット・データを前記データ記録部内に確保させるステップと、前記スナップショット・データが前記データ記録部に確保された後に、前記ユーザ入力の受け付け遮断を停止させるステップと、をコンピュータに実行させるためのプログラムを記載する（請求項１）。
【０００８】
下記特許文献４は、仮想マシンを監視管理する装置と方法、及びコンピュータプログラムを記載する（段落０００１）。
【０００９】
下記特許文献５は、パッチを適用すべきプログラムを実行する仮想サーバを備えた複数のサーバに関して、パッチ適用を行なうことを記載する（段落０００９）。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２０１０−４４６１３号公報
【特許文献２】特開２０１０−７３０１１号公報
【特許文献３】特開２００９−１２２７４９号公報
【特許文献４】特開２０１０−２６２５４５号公報
【特許文献５】特開２０１２−１６８７１０号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
スナップショットとは、ある時点での仮想マシンの状態を保存するための静的なデータ集合であり、必要に応じて、当該ある時点で保存された状態に仮想マシンを戻すことを可能にする技術において使用されるデータである。
【００１２】
スナップショットを用いることによって、一つの仮想マシンについて複数の状態を持つことが可能になる。
【００１３】
しかしながら、全てのスナップショットに対してプログラムの更新（例えば、プログラム更新やセキュリティ更新）を適用し続け、それに伴って大量に発生した新たなスナップショットを適切に管理することは非常に困難である。
【００１４】
また、仮想マシンによっては、スナップショットを使用して過去の状態に戻すような運用が行われる場合がある。
【００１５】
しかしながら、このような運用が行われる場合に、当該仮想マシンは、最新のプログラムの更新（例えば、プログラム更新やセキュリティ更新）が行われていない状態に戻ることになってしまう。
【００１６】
そこで、本発明は、プログラムの最新の更新が適用されてないスナップショットに基づく仮想マシンが、長期間稼動したままになっているという状況を防ぐことを目的とする。
【課題を解決するための手段】
【００１７】
本発明は、仮想マシンのスナップショットに対して更新を自動的に適用する技法を提供する。当該技法は、仮想マシンのスナップショットに対して更新を自動的に適用する方法、並びに、仮想マシンのスナップショットに対して更新を自動的に適用する為のコンピュータ・システム、コンピュータ・システム用プログラム及びコンピュータ・システム用プログラム製品を包含しうる。
【００１８】
（本発明に従う第１の態様）
【００１９】
本発明に従う第１の態様において、仮想マシンのスナップショットに対して更新を自動的に適用する方法は、コンピュータ・システムが、
既存のスナップショットの状態と同一の状態を再現する仮想マシンのクローンを作成するステップと、
上記クローンとして作成した仮想マシン（以下、クローン仮想マシンという）の仮想ネットワーク・インタフェース・カード（以下、仮想ＮＩＣという）を無効にし、別の仮想ＮＩＣを追加するステップと、
上記別の仮想ＮＩＣを追加したクローン仮想マシンに、ネットワーク経由で更新を適用するステップと、
上記更新を適用したクローン仮想マシンから上記別の仮想ＮＩＣを削除（delete）して、上記無効にした仮想ＮＩＣを有効にするステップと、
上記仮想ＮＩＣを有効にしたクローン仮想マシンのスナップショットを作成することによって、クローン元の仮想マシンのスナップショットを作成するステップと
を実行することを含む。
【００２０】
本発明の一つの実施態様において、上記コンピュータ・システムが、
上記仮想マシンのクローンを作成するステップ、上記追加するステップ、上記適用するステップ、上記有効にするステップ、及び上記クローン元の仮想マシンのスナップショットを作成するステップを繰り返すステップ
を実行することをさらに含みうる。
【００２１】
本発明の一つの実施態様において、上記繰り返すステップが、
定期的に、
上記更新の通知を受け取ることによって、
上記既存のスナップショットの又は上記既存のスナップショットに関連付けられたスナップショットの取得頻度若しくは利用頻度の制御情報に従って、又は、
ユーザのアクションをトリガーとして
行われうる。
【００２２】
本発明の一つの実施態様において、上記仮想マシンのクローンを作成するステップが、
上記既存のスナップショットに関連付けられた優先度に従って、又は、
上記既存のスナップショットの利用頻度若しくは利用時間、又は当該既存のスナップショットのスナップショット取得頻度に従って、
複数の既存のスナップショットのうちからクローン仮想マシンを作成する既存のスナップショットを選択するステップ
をさらに含みうる。
【００２３】
本発明の一つの実施態様において、上記優先度がユーザの指示により作成されたユーザ・スナップショットに付されていうる。
【００２４】
本発明の一つの実施態様において、上記コンピュータ・システムが、
上記既存のスナップショットの利用頻度若しくは利用時間、又は当該既存のスナップショットのスナップショット取得頻度をモニターするステップ
を実行することをさらに含みうる。
【００２５】
本発明の一つの実施態様において、上記既存のスナップショットが、ユーザの指示により作成されたユーザ・スナップショット又は上記クローン元の仮想マシンのスナップショットを作成するステップにおいて作成されたシステム・スナップショットでありうる。
【００２６】
本発明の一つの実施態様において、クローン元の仮想マシンの上記既存のスナップショットが上記ユーザ・スナップショットであり、
上記管理ビュー上で、上記ユーザ・スナップショットのクローン仮想マシンから作成されたシステム・スナップショットが上記クローン元の仮想マシンの上記ユーザ・スナップショットに関連付けて表示されうる。
【００２７】
本発明の一つの実施態様において、クローン元の仮想マシンの上記既存のスナップショットが上記システム・スナップショットであり、
上記管理ビュー上で、上記システム・スナップショットのクローン仮想マシンから作成されたシステム・スナップショットが上記クローン元の仮想マシンの上記システム・スナップショットに関連付けて表示されうる。
【００２８】
本発明の一つの実施態様において、上記コンピュータ・システムが、
上記クローン元の仮想マシンのスナップショットを作成するステップにおいて作成された少なくとも２つのスナップショットをマージするステップ
を実行することをさらに含みうる。
【００２９】
本発明の一つの実施態様において、上記コンピュータ・システムが、
ユーザの指示により作成されたユーザ・スナップショット及び上記クローン元の仮想マシンのスナップショットを作成するステップにおいて作成されたシステム・スナップショットをグルーピングし、当該グルーピングしたスナップショットを管理ビュー上で表示するステップ
をさらに実行することを含みうる。
【００３０】
本発明の一つの実施態様において、上記クローンを作成するステップが、
上記グルーピングされたシステム・スナップショットが選択されることに応じて、当該グルーピングされたシステム・スナップショットのうちの最新のシステム・スナップショットの状態と同一の状態を再現する仮想マシンのクローンを作成するステップ
を含みうる。
【００３１】
本発明の一つの実施態様において、上記コンピュータ・システムが、
上記グルーピングされたスナップショットのうちの最新でない１又は複数のシステム・スナップショットを最新のシステム・スナップショットにマージするステップと、
上記最新でない１又は複数のシステム・スナップショットを削除するステップと
をさらに実行しうる。
【００３２】
本発明の一つの実施態様において、上記コンピュータ・システムが、
上記グルーピングしたスナップショット群の一つが選択されることに応じて、上記グルーピングしたスナップショット群に属するスナップショットを上記管理ビュー上で表示するステップ
をさらに実行しうる。
【００３３】
本発明の一つの実施態様において、上記コンピュータ・システムが、
上記管理ビュー上で、上記更新の更新リストを表示するステップ
をさらに実行することを含みうる。
【００３４】
本発明の一つの実施態様において、上記別の仮想ＮＩＣを追加するステップが、
上記別の仮想ＮＩＣを追加したクローン仮想マシンを起動し、当該別の仮想ＮＩＣに未使用のＩＰアドレスを割り当てるステップ
をさらに含みうる。
【００３５】
本発明の一つの実施態様において、上記更新が、上記別の仮想ＮＩＣに割り当てられたＩＰアドレスを使用して行われうる。
【００３６】
本発明の一つの実施態様において、上記クローン仮想マシンの仮想ＮＩＣを無効にすることが、
当該仮想ＮＩＣを上記ネットワークから切り離すこと、又は、
上記クローン仮想マシンを起動したときに、当該仮想ＮＩＣが当該クローン仮想マシンのオペレーティング・システムによって認識されないようにすること
によって行われうる。
【００３７】
本発明の一つの実施態様において、上記無効にした仮想ＮＩＣを有効にすることが、
当該無効にした仮想ＮＩＣを上記ネットワークに接続すること、
当該無効にした仮想ＮＩＣを追加すること、又は、
上記無効にした仮想ＮＩＣが当該クローン仮想マシンのオペレーティング・システムによって認識されるようにすること
によって行われうる。
【００３８】
（本発明に従う第２の態様）
【００３９】
本発明に従う第２の態様において、仮想マシンのスナップショットに対して更新を自動的に適用する為のコンピュータ・システムは、
既存のスナップショットの状態と同一の状態を再現する仮想マシンのクローンを作成するクローン作成手段と、
上記クローンとして作成した仮想マシン（以下、クローン仮想マシンという）の仮想ネットワーク・インタフェース・カード（以下、仮想ＮＩＣという）を無効にし、別の仮想ＮＩＣを追加するクローン仮想マシン構成管理手段と、
上記別の仮想ＮＩＣを追加したクローン仮想マシンに、ネットワーク経由で更新を適用する更新適用手段と
を備えており、
上記クローン仮想マシン構成管理手段が、上記更新を適用したクローン仮想マシンから上記別の仮想ＮＩＣを削除して、上記無効にした仮想ＮＩＣを有効にし、
上記コンピュータ・システムが、
上記仮想ＮＩＣを有効にしたクローン仮想マシンのスナップショットを作成することによって、クローン元の仮想マシンのスナップショットを作成するスナップショット作成手段
をさらに備えている。
【００４０】
本発明の一つの実施態様において、上記クローン作成手段が、
上記既存のスナップショットに関連付けられた優先度に従って、
上記既存のスナップショットの又は上記既存のスナップショットに関連付けられたスナップショットの取得頻度若しくは利用頻度の制御情報に従って、又は、
上記既存のスナップショットの利用頻度若しくは利用時間、又は当該既存のスナップショットのスナップショット取得頻度に従って、
複数の既存のスナップショットのうちからクローン仮想マシンを作成する既存のスナップショットを選択しうる。
【００４１】
本発明の一つの実施態様において、上記優先度がユーザの指示により作成されたユーザ・スナップショットに付されていうる。
【００４２】
本発明の一つの実施態様において、上記コンピュータ・システムが、上記既存のスナップショットの利用頻度若しくは利用時間、又は当該既存のスナップショットのスナップショット取得頻度をモニターするモニター手段をさらに備えうる。
【００４３】
本発明の一つの実施態様において、上記既存のスナップショットが、ユーザの指示により作成されたユーザ・スナップショット又は上記クローン元の仮想マシンのスナップショットを作成することによって作成されたシステム・スナップショットでありうる。
【００４４】
本発明の一つの実施態様において、上記コンピュータ・システムがスナップショットを表示する管理ビュー表示手段をさらに備えており、クローン元の仮想マシンの上記既存のスナップショットが上記ユーザ・スナップショットであり、上記管理ビュー表示手段が、上記管理ビュー上で、上記ユーザ・スナップショットのクローン仮想マシンから作成されたシステム・スナップショットを上記クローン元の仮想マシンの上記ユーザ・スナップショットに関連付けて表示しうる。
【００４５】
本発明の一つの実施態様において、上記コンピュータ・システムがスナップショットを表示する管理ビュー表示手段をさらに備えており、クローン元の仮想マシンの上記既存のスナップショットが上記システム・スナップショットであり、上記管理ビュー表示手段が、上記管理ビュー上で、上記システム・スナップショットのクローン仮想マシンから作成されたシステム・スナップショットを上記クローン元の仮想マシンの上記システム・スナップショットに関連付けて表示しうる。
【００４６】
本発明の一つの実施態様において、上記コンピュータ・システムが、上記クローン元の仮想マシンのスナップショットを作成することによって作成された少なくとも２つのスナップショットをマージするスナップショット管理手段をさらに備えうる。
【００４７】
本発明の一つの実施態様において、上記スナップショット管理手段が、ユーザの指示により作成されたユーザ・スナップショットと上記クローン元の仮想マシンのスナップショットを作成することによって作成されたシステム・スナップショットとをグルーピングしうる。
【００４８】
本発明の一つの実施態様において、上記コンピュータ・システムがスナップショットを表示する管理ビュー表示手段をさらに備えており、当該管理ビュー表示手段は、上記スナップショット管理手段によってグルーピングされたスナップショットを前記管理ビュー上で、表示しうる。
【００４９】
本発明の一つの実施態様において、上記クローン作成手段が、上記グルーピングされたシステム・スナップショットが選択されることに応じて、当該グルーピングされたシステム・スナップショットのうちの最新のシステム・スナップショットの状態と同一の状態を再現する仮想マシンのクローンを作成しうる。
【００５０】
本発明の一つの実施態様において、上記スナップショット管理手段が、上記グルーピングされたスナップショットのうちの最新でない１又は複数のシステム・スナップショットを最新のシステム・スナップショットにマージし、上記最新でない１又は複数のシステム・スナップショットを削除しうる。
【００５１】
本発明の一つの実施態様において、上記管理ビュー提供手段が、上記グルーピングしたスナップショット群の一つが選択されることに応じて、上記グルーピングしたスナップショット群に属するスナップショットを表示しうる。
【００５２】
本発明の一つの実施態様において、上記コンピュータ・システムが、上記管理ビュー上で、上記更新の更新リストを表示する更新リスト表示手段をさらに備えうる。
【００５３】
本発明の一つの実施態様において、上記クローン仮想マシン構成管理手段が、上記別の仮想ＮＩＣを追加したクローン仮想マシンを起動し、当該別の仮想ＮＩＣに未使用のＩＰアドレスを割り当てうる。
【００５４】
本発明の一つの実施態様において、上記更新適用手段が、上記更新を、上記別の仮想ＮＩＣに割り当てられたＩＰアドレスを使用して行いうる。
【００５５】
本発明の一つの実施態様において、上記クローン仮想マシン構成管理手段が、上記クローン仮想マシンの仮想ＮＩＣを無効にすることを、当該仮想ＮＩＣを上記ネットワークから切り離すこと、又は、上記クローン仮想マシンを起動したときに、当該仮想ＮＩＣが当該クローン仮想マシンのオペレーティング・システムによって認識されないようにすることによって行いうる。
【００５６】
本発明の一つの実施態様において、上記クローン仮想マシン構成管理手段が、上記無効にした仮想ＮＩＣを有効にすることを、当該無効にした仮想ＮＩＣを上記ネットワークに接続すること、当該無効にした仮想ＮＩＣを追加すること、又は、上記無効にした仮想ＮＩＣが当該クローン仮想マシンのオペレーティング・システムによって認識されるようにすることによって行いうる。
【００５７】
（本発明に従う第３の態様）
【００５８】
本発明に従う第３の態様において、仮想マシンのスナップショットに対して更新を自動的に適用する為のコンピュータ・システム用プログラム又はコンピュータ・システム用プログラム製品は、コンピュータ・システムに、本発明に従う上記第１の態様の各ステップを実行させる。
【００５９】
本発明の実施態様に従うコンピュータ・システム用プログラムは、一つ又は複数のフレキシブル・ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＤＶＤ、ＢＤ、ハードディスク装置、ＵＳＢに接続可能なメモリ媒体、ＲＯＭ、ＭＲＡＭ、ＲＡＭ等の任意のコンピュータ読み取り可能な記録媒体に格納することができる。当該コンピュータ・システム用プログラムは、上記記録媒体への格納のために、通信回線で接続する他のコンピュータ、例えばサーバ・コンピュータからダウンロードしたり、又は他の記録媒体から複製したりすることができる。また、本発明の実施態様に従うコンピュータ・システム用プログラムは、圧縮し、又は複数に分割して、単一又は複数の記録媒体に格納することもできる。また、様々な形態で、本発明の実施態様に従うコンピュータ・システム用プログラム製品を提供することも勿論可能であることにも留意されたい。本発明の実施態様に従うコンピュータ・システム用プログラム製品は、例えば、上記コンピュータ・システム用プログラムを記録した記憶媒体、又は、上記コンピュータ・システム用プログラムを伝送する伝送媒体を包含しうる。
【００６０】
本発明の上記概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの構成要素のコンビネーション又はサブコンビネーションもまた、本発明となりうることに留意すべきである。
【００６１】
本発明の実施態様において使用されるコンピュータ・システムの各ハードウェア構成要素を、複数のマシンと組み合わせ、それらに機能を配分し実施する等の種々の変更は当業者によって容易に想定され得ることは勿論である。それらの変更は、当然に本発明の思想に包含される概念である。ただし、これらの構成要素は例示であり、そのすべての構成要素が本発明の必須構成要素となるわけではない。
【００６２】
また、本発明は、ハードウェア、ソフトウェア、又は、ハードウェア及びソフトウェアの組み合わせとして実現可能である。ハードウェアとソフトウェアとの組み合わせによる実行において、上記コンピュータ・システム用プログラムのインストールされたコンピュータ・システムにおける実行が典型的な例として挙げられる。かかる場合、当該コンピュータ・システム用プログラムが当該コンピュータ・システムのメモリにロードされて実行されることにより、当該コンピュータ・システム用プログラムは、当該コンピュータ・システムを制御し、本発明に係る処理を実行させる。当該コンピュータ・システム用プログラムは、任意の言語、コード、又は、表記によって表現可能な命令群から構成されうる。そのような命令群は、当該コンピュータ・システムが特定の機能を直接的に、又は、１．他の言語、コード若しくは表記への変換及び、２．他の媒体への複製、のいずれか一方若しくは双方が行われた後に、本発明の実施態様に従う処理を実行することを可能にするものである。
【発明の効果】
【００６３】
本発明の実施態様に従うと、利用者が任意のタイミングで取得したスナップショットの全てに対して自動的に更新が適用される為に、最新の更新が適用されていないスナップショットに基づく仮想マシンが稼働することになるという状況や最新の更新が適用されないでうっかり長期間稼働したままになるという状況を防止することが可能になる。特に、スナップショットを使って頻繁に仮想マシンの状態が変わりうるような運用環境において、最新の更新が適用されていないスナップショットに基づく仮想マシンが稼働することになるという上記状況やや最新の更新が適用されないでうっかり長期間稼働したままになるという上記状況を防止することは有用である。
【００６４】
また、本発明の実施態様に従うと、一つの仮想マシンに対して複数のスナップショットが存在する場合に、当該複数のスナップショットそれぞれに対して更新が自動的に適用される為に、適用コストを削減することが可能になる。
【００６５】
また、本発明の実施態様に従うと、仮想マシンを稼働中のまま、当該仮想マシンの現在の状態の元になっているスナップショット（即ち、現在稼働中の仮想マシンの元になっている状態を記録したスナップショット）以外のスナップショットに対して更新を適用することが可能である為に、当該仮想マシン上で運用中のサービスを停止する必要がない。
【００６６】
また、本発明の実施態様に従うと、スナップショットに関連付けられた優先度の違い、当該スナップショットの利用頻度若しくは利用時間の違い、又は既存のスナップショットのスナップショット取得頻度の違いがあった場合を考慮した更新の適用が可能である為に、利用者が多量にスナップショットを取得していた場合であっても優先順位をつけて更新の適用を行うことが可能になる。
【００６７】
また、本発明の実施態様に従うと種々の更新に対して本発明を適用することが可能であり、例えばＷｉｎｄｏｗｓ（登録商標）  Ｕｐｄａｔｅ、ｙｕｍ  ｉｎｓｔａｌｌ、若しくはセキュリティ・ソフトウェア（例えば、ウィルス対策ソフトウェアを含む）の定義ファイル更新などのネットワーク経由での更新の適用だけでなく、ユーザによって手動で行われているようなその他のソフトウェアの更新作業も当該更新作業をスクリプトにすることによって適用可能である。
【図面の簡単な説明】
【００６８】
【図１Ａ】本発明の実施態様において使用されうるコンピュータ・システム又は本発明の実施態様に従うコンピュータ・システムの一例を示した図である。
【図１Ｂ】本発明の実施態様において使用されうるコンピュータ・システム又は本発明の実施態様に従うコンピュータ・システムの一例であって、当該コンピュータ・システム上で１又は複数の仮想マシンを稼働させる場合を示した図である。
【図２Ａ】本発明の実施態様に従い、既存のスナップショットのクローン仮想マシンを作成し、当該クローン仮想マシンに更新を適用して、当該更新が適用されたスナップショットを作成することによって、クローン元の仮想マシンのスナップショットを作成するまでの処理を説明する為の図である。
【図２Ｂ】本発明の実施態様に従い、既存のスナップショットのクローン仮想マシンを作成し、当該クローン仮想マシンに更新を適用して、当該更新が適用されたスナップショットを作成することによって、クローン元の仮想マシンのスナップショットを作成するまでの処理を説明する為の図である。
【図２Ｃ】本発明の実施態様に従い、図２Ａで使用した既存のスナップショットと異なる既存のスナップショットのクローン仮想マシンを作成し、図２Ａ及び図２Ｂに示す処理と同様に処理して、クローン元の仮想マシンのスナップショットを作成するまでの処理を説明する為の図である。
【図２Ｄ】本発明の実施態様に従い、図２Ａで使用した既存のスナップショットと異なる既存のスナップショットのクローン仮想マシンを作成し、図２Ａ及び図２Ｂに示す処理と同様に処理して、クローン元の仮想マシンのスナップショットを作成するまでの処理を説明する為の図である。
【図３】本発明の実施態様において、特定のユーザ・スナップショットから作成された一連のシステム・スナップショットのうち、中間にあるシステム・スナップショットを削除する処理を説明する為の図である。
【図４】本発明の実施態様において、ユーザの指示により作成されたユーザ・スナップショットとクローン元の仮想マシンのスナップショットを作成することによって作成されたシステム・スナップショットとをグルーピングし、当該グルーピングしたスナップショットを管理ビュー上で表示する態様を説明する為の図である。
【図５Ａ】本発明の実施態様において、特定のユーザ・スナップショットと当該特定のユーザ・スナップショットから派生して作成された一連のシステム・スナップショットとをグルーピングする処理を説明する為の図である。
【図５Ｂ】本発明の実施態様において、特定のユーザ・スナップショットと当該特定のユーザ・スナップショットから派生して作成された一連のシステム・スナップショットとをグルーピングして、スナップショット群として表示したビュー画面を説明する為の図である。
【図５Ｃ】本発明の実施態様において、ビュー画面上で特定のスナップショット群を選択した場合に、当該選択されたスナップショット群に属するユーザ・スナップショット及び、システム・スナップショットがある場合には当該システム・スナップショットを表示するビュー画面を説明する為の図である。
【図５Ｄ】本発明の実施態様において、ビュー画面上で特定のスナップショット上に例えばマウス・カーソル又は操作指を置いた場合に、当該スナップショットの更新リストを表示するビュー画面を説明する為の図である。
【図６】本発明の実施態様において、稼働中の仮想マシンのスナップショットを、当該稼働中の仮想マシンに負荷を掛けないようにしてコピーする処理を説明する為の図である。
【図７】本発明の実施態様において、稼働中の仮想マシンのスナップショットを、当該稼働中の仮想マシンに負荷を掛けないようにしてコピーする処理を説明する為の図である。
【図８】本発明の実施態様において、クローン仮想マシンに、ネットワーク経由で更新を適用する処理を説明する為の図である。
【図９】本発明の実施態様において、既存のスナップショットに対して更新を自動的に適用する処理の為のフローチャートを示す。
【図１０Ａ】図１Ａ又は図１Ｂに従うハードウェア構成を好ましくは備えており、本発明の実施態様に従い、仮想マシンのスナップショットに対して更新を自動的に適用する処理の為のコンピュータ・システムであって、一つのサーバ・コンピュータを備えている当該コンピュータ・システムの機能ブロック図の一例を示した図である。
【図１０Ｂ】図１Ａ又は図１Ｂに従うハードウェア構成を好ましくは備えており、本発明の実施態様に従い、仮想マシンのスナップショットに対して更新を自動的に適用する処理の為のコンピュータ・システムであって、複数のサーバ・コンピュータを備えている当該コンピュータ・システムの機能ブロック図の一例を示した図である。
【発明を実施するための形態】
【００６９】
本発明の実施形態を、以下に図面に従って説明する。以下の図を通して、特に断らない限り、同一の符号は同一の対象を指す。本発明の実施形態は、本発明の好適な態様を説明するためのものであり、本発明の範囲をここで示すものに限定する意図はないことを理解されたい。
【００７０】
まず、本発明において使用する語について、以下に説明する。
【００７１】
本発明の実施態様において、「スナップショット」とは、上記したとおり、ある時点での仮想マシンの状態（例えば、ディスク、中央演算処理装置（ＣＰＵ）、メモリ、ネットワーク・インタフェース・カード（ＮＩＣ））を保存するための静的な（すなわち、データの内容が変化しない）データ集合であり、必要に応じて、当該ある時点での保存された状態に仮想マシンを戻すことを可能にする技術において使用されるデータである。
【００７２】
あるスナップショットは、一つ前のスナップショットからの差分情報のみが格納されているデータの集合である。また、取得済みの（すなわち、既存の）スナップショットに対して、スナップショット復元時の仮想マシンの状態が変わるような変更が加わることはない。ただし、複数のスナップショットのうちの１又は複数のスナップショットが削除された場合に、当該削除されたスナップショットが持つ差分情報が、当該削除されたスナップショットの一つ先のスナップショットにマージされることはある。しかし、当該差分情報のマージによって、当該差分情報がマージされた上記一つ先のスナップショットを使って復元したときの仮想マシンの状態が変わるものではない。
【００７３】
上記の点を踏まえると、スナップショットは或る時点の仮想マシンの状態を保存するための静的なデータ集合である為に、たとえ仮想マシンが稼働中であっても当該稼働中の仮想マシンのスナップショットに基づいてデータをコピーすることによって新たな仮想マシンを作成すること(すなわち、クローニングすること）が可能である。
【００７４】
本発明の実施態様において、「既存のスナップショット」とは、ユーザ・スナップショット又はシステム・スナップショットを包含する。
【００７５】
本発明の実施態様において、「ユーザ・スナップショット」とは、仮想システムの利用者又は管理者（以下、ユーザともいう）の指示によって作成された稼働中の仮想マシンのスナップショットをいう。
【００７６】
本発明の実施態様において、「システム・スナップショット」とは、上記「ユーザ・スナップショット」に基づいて作成された１世代目のスナップショット又は、当該「システム・スナップショット」に基づいてさらに作成されたｎ世代目の（ｎは２以上の整数）スナップショットをいう。
【００７７】
本発明の実施態様において、「更新」とは、アップデート又はフィックスとも呼ばれうる。当該更新は例えば、プログラム更新又はセキュリティ更新を含みうる。プログラム更新又はセキュリティ更新は例えば、Ｗｉｎｄｏｗｓ（登録商標）  Ｕｐｄａｔｅ、ｙｕｍ  ｉｎｓｔａｌｌ、若しくはセキュリティ・ソフトウェア（例えば、ウィルス対策ソフトウェアを含む）の定義ファイル更新などのネットワーク経由での更新の適用、又は、ユーザによって手動で行われているようなその他のソフトウェアの更新作業をスクリプトにした更新を含みうる。
【００７８】
図１Ａは、本発明の実施態様において使用されうるコンピュータ・システム又は本発明の実施態様に従うコンピュータ・システムの一例を示した図である。当該コンピュータ・システム（１２１）は例えば、１又は複数のコンピュータ、例えば１又は複数のサーバ・コンピュータ（例えば、サーバ機能を備えているコンピュータであればよい）でありうるが、これらに制限されるものではない。
【００７９】
コンピュータ・システム（１０１）は、１又は複数のＣＰＵ（１０２）とメイン・メモリ（１０３）とを備えており、これらはバス（１０４）に接続されている。ＣＰＵ（１０２）は例えば、３２ビット又は６４ビットのアーキテクチャに基づくものである。当該ＣＰＵ（１０２）は例えば、インターナショナル・ビジネス・マシーンズ・コーポレーションのＰｏｗｅｒ（商標）シリーズ、インテル社のＸｅｏｎ（登録商標）シリーズ、Ｃｏｒｅ（商標）  ｉシリーズ、Ｃｏｒｅ（商標）  ２シリーズ、Ｐｅｎｔｉｕｍ（登録商標）シリーズ、Ｃｅｌｅｒｏｎ（登録商標）シリーズ若しくはＡｔｏｍ（商標）シリーズ、又は、ＡＭＤ（Advanced Micro Devices）社のＯｐｔｅｒｏｎ（商標）シリーズ、Ａシリーズ、Ｐｈｅｎｏｍ（商標）シリーズ、Ａｔｈｌｏｎ（商標）シリーズ、Ｔｕｒｉｏｎ（登録商標）シリーズ若しくはＳｅｍｐｒｏｎ（商標）でありうる。
【００８０】
バス（１０４）には、ディスプレイ・コントローラ（１０５）を介して、ディスプレイ（１０６）、例えば液晶ディスプレイ（ＬＣＤ）が接続されうる。また、液晶ディスプレイ（ＬＣＤ）は例えば、タッチパネル・ディスプレイ又はフローティング・タッチ・ディスプレイであてもよい。ディスプレイ（１０６）は、コンピュータ・システム（１０１）上で動作中のソフトウェア（例えば、本発明の実施態様に従うコンピュータ・システム用プログラム又は当該コンピュータ・システム（１０１）上で動作中の任意の各種コンピュータ・システム用プログラム（例えば、仮想環境を実現するためのプログラム）が稼働することによって表示されるオブジェクトを、適当なグラフィック・インタフェースで表示するために使用されうる。また、ディスプレイ（１０６）は例えば、本発明の実施態様に従う管理ビューの画面を出力しうる。
【００８１】
バス（１０４）には任意的に、例えばＳＡＴＡ又はＩＤＥコントローラ（１０７）を介して、ディスク（１０８）、例えばハードディスク又はソリッド・ステート・ドライブ（ＳＳＤ）が接続されうる。
【００８２】
バス（１０４）には任意的に、例えばＳＡＴＡ又はＩＤＥコントローラ（１０７）を介して、ドライブ（１０９）、例えばＣＤ、ＤＶＤ又はＢＤドライブが接続されうる。
【００８３】
バス（１０４）には、周辺装置コントローラ（１１０）を介して、例えばキーボード・マウス・コントローラ又はＵＳＢバスを介して、任意的に、キーボード（１１１）及びマウス（１１２）が接続されうる。
【００８４】
ディスク（１０８）には、オペレーティング・システム、例えばメインフレーム用に開発されたオペレーティング・システム（例えば、ｚ／ＯＳ、ｚ／ＶＭ、若しくはｚ／ＶＳＥ）、Ｗｉｎｄｏｗｓ（登録商標）、ＵＮＩＸ（登録商標）、Ｌｉｎｕｘ（登録商標）ＭａｃＯＳ（登録商標）、及びＡｎｄｒｏｉｄ（登録商標）、並びにＪ２ＥＥなどのＪａｖａ（登録商標）処理環境、Ｊａｖａ（登録商標）アプリケーション、Ｊａｖａ（登録商標）仮想マシン（ＶＭ）、Ｊａｖａ（登録商標）実行時（ＪＩＴ）コンパイラを提供するプログラム、本発明の実施態様に従うコンピュータ・システム用プログラム、及びその他の任意の各種コンピュータ・システム用プログラム、並びにデータが、メイン・メモリ（１０３）にロード可能なように記憶されうる。
【００８５】
また、ディスク（１０８）には例えば、仮想マシンのスナップショットに対して更新を自動的に適用する為のコンピュータ・システム用プログラムが、メイン・メモリ（１０３）にロード可能なように記憶されうる。
【００８６】
ディスク（１０８）は、コンピュータ・システム（１０１）内に内蔵されていてもよく、当該コンピュータ・システム（１０１）がアクセス可能なようにケーブルを介して接続されていてもよく、又は、当該コンピュータ・システム（１０１）がアクセス可能なように有線又は無線ネットワークを介して接続されていてもよい。
【００８７】
ドライブ（１０９）は、必要に応じて、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ又はＢＤからプログラム、例えばオペレーティング・システム、アプリケーション・プログラム又は本発明の実施態様に従うコンピュータ・システム用プログラムをディスク（１０８）にインストールするために使用されうる。
【００８８】
通信インタフェース（１１４）は、例えばイーサネット（登録商標）・プロトコルに従う。通信インタフェース（１１４）は、通信コントローラ（１１３）を介してバス（１０４）に接続され、コンピュータ・システム（１０１）を通信回線（１１５）に有線又は無線接続する役割を担い、コンピュータ・システム（１０１）のオペレーティング・システムの通信機能のＴＣＰ／ＩＰ通信プロトコルに対して、ネットワーク・インタフェース層を提供する。なお、通信回線は例えば、無線ＬＡＮ接続規格に基づく無線ＬＡＮ環境、ＩＥＥＥ８０２．１１ａ／ｂ／ｇ／ｎなどのＷｉ-Ｆｉ無線ＬＡＮ環境、又は携帯電話網環境（例えば、３Ｇ、ＬＴＥ又は４Ｇ環境）でありうる。
【００８９】
図１Ｂは、本発明の実施態様において使用されうるコンピュータ・システム又は本発明の実施態様に従うコンピュータ・システムの一例であって、当該コンピュータ・システム上で１又は複数の仮想マシンを稼働させる場合を示した図である。当該コンピュータ・システム（１２１）は例えば、ワークステーション、ラックマウント型サーバ、ブレード型サーバ、ミッドレンジ、メインフレームなどのコンピュータ装置として構成されうる。
【００９０】
図１Ｂに示すコンピュータ・システム（１２１）は、ハードウェア・リソース（１２２）として、１又は複数のＣＰＵ（１３１）、メイン・メモリ（１３２）、ストレージ（１３３）、通信コントローラ（１３４）、及び通信インタフェース（１３５）を備えうる。上記１又は複数のＣＰＵ（１３１）、メイン・メモリ（１３２）、ストレージ（１３３）、通信コントローラ（１３４）、及び通信インタフェース（１３５）並びに通信回線（１３６）はそれぞれ、図１Ａに示すコンピュータ・システム（１０１）の１又は複数のＣＰＵ（１０２）、メイン・メモリ（１０３）、ディスク（１０８）、通信コントローラ（１１３）、及び通信インタフェース（１１４）、並びに通信回線（１１５）それぞれに対応しうる。
【００９１】
また、コンピュータ・システム（１２１）は、物理ホストマシンとして稼働し、また、仮想化ソフトウェア（例えば、ＶＭＷａｒｅ（登録商標）、Ｈｙｐｅｒ−Ｖ（登録商標）、Ｘｅｎ（登録商標））のハイパーバイザ（仮想化モニター又は仮想化ＯＳとも呼ばれる）（１２３）上で、同一の又は異なるＯＳ（例えば、Ｗｉｎｄｏｗｓ（登録商標）、ＵＮＩＸ（登録商標）、Ｌｉｎｕｘ（登録商標））をゲストＯＳ（１５６）とした１又は複数の仮想マシン１〜ｎ（１２５−１〜１２５−２）（ドメインＵ又はチャイルド・パーティションとも呼ばれる）を稼働させることが可能である。
【００９２】
また、コンピュータ・システム（１２１）は、上記ハイパーバイザ（１２３）上で、管理用仮想マシン（１２４）（ドメイン０又はペアレント・パーティションとも呼ばれる）を稼働させることが可能である。管理用仮想マシン（１２４）は、管理用ＯＳ（１４１）、当該管理用ＯＳ（１４１）上で動作する制御モジュール（１４２）、及び仮想リソース（１４３）を含む。制御モジュール（１４２）は、ハイパーバイザ（１２３）に対しコマンドを発行するモジュールである。また、制御モジュール（１４２）は、ハイパーバイザ（１２３）に対して、ユーザドメインの仮想マシン１〜ｎ（１２５−１〜１２５−２）の作成、及びゲストＯＳ（１５６）の起動の命令を発行し、仮想マシン１〜ｎ（１２５−１〜１２５−２）の動作を制御する。仮想リソース（１４３）は、管理用仮想マシン（１２４）の為に割り当てられたハードウェア・リソース（１２２）である。
【００９３】
仮想マシン１〜ｎ（１２５−１〜１２５−２）は、仮想リソース、ゲストＯＳ（１５６）、及び、ゲストＯＳ（１５６）上で動作する種々のアプリケーション１〜ｎ（１５７−１〜１５７−３）を含む。仮想リソースは例えば、仮想ＣＰＵ（１５１）、仮想メモリ（１５２）、仮想ディスク（１５３）、仮想通信コントローラ（１５４）及び仮想通信インタフェース（１５５）を含む。
【００９４】
以下において、コンピュータ・システム（１２１）と記載する場合には、図１Ｂに示すコンピュータ・システム（１２１）の代わりに、図１Ａに示すコンピュータ・システム（１０１）であってもよいことを理解されたい。
【００９５】
図２Ａ〜図２Ｄは、本発明の実施態様に従い、既存のスナップショットのクローン仮想マシンを作成し、当該クローン仮想マシンに更新を適用して、当該更新が適用されたスナップショットを作成することによって、クローン元の仮想マシンのスナップショットを作成するまでの処理、並びに、当該処理を繰り返す処理を説明する為の図である。
【００９６】
図２Ａ及び図２Ｂは、本発明の実施態様に従い、既存のスナップショットのクローン仮想マシンを作成し、当該クローン仮想マシンに更新を適用して、当該更新が適用されたスナップショットを作成することによって、クローン元の仮想マシンのスナップショットを作成するまでの処理を説明する為の図である。
【００９７】
図２Ａの上段に示すユーザ・スナップショットＡ（２１１）、ユーザ・スナップショットＢ（２２１）、及びユーザ・スナップショットＣ（２３１）はそれぞれユーザが現在稼働中の仮想マシン（２４１）のユーザ・スナップショット（既存のスナップショットである）である。
【００９８】
コンピュータ・システム（１２１）は、複数の仮想マシンを稼働可能なサーバ・コンピュータであり、現在或る仮想マシンを稼働中であるとする。
【００９９】
コンピュータ・システム（１２１）は、ユーザからのスナップショット作成の指示によって、当該指示の時点Ａでの稼働中の上記仮想マシンのユーザ・スナップショットＡ（２１１）を作成する。スナップショットＡ（２１１）は、上記時点Ａでの状態を保持するデータ（２１１ｓ）を有する。当該データ（２１１ｓ）は静的データであり、他のデータとのマージによる変更を除いて変更されない。
【０１００】
コンピュータ・システム（１２１）は、引き続き、ユーザからのスナップショット作成の更なる指示によって、当該指示の時点Ｂでの稼働中の上記仮想マシンのユーザ・スナップショットＢ（２２１）を作成する。ユーザ・スナップショットＢ（２２１）は、上記時点Ｂでの状態から上記時点Ａでの状態の差分データＢ−Ａを保持するデータ（２２１ｓ）を有する。当該データ（２２１ｓ）は静的データであり、他のデータとのマージによる変更を除いて変更されない。
【０１０１】
コンピュータ・システム（１２１）は、引き続き、ユーザからのスナップショット作成の更なる指示によって、当該指示の時点Ｃでの稼働中の上記仮想マシンのユーザ・スナップショットＣ（２３１）を作成する。ユーザ・スナップショットＣ（２３１）は、上記時点Ｃでの状態から上記時点Ｂでの状態の差分データＣ−Ｂを保持するデータ（２３１ｓ）を有する。当該データ（２３１ｓ）は静的データであり、他のデータとのマージによる変更を除いて変更されない。
【０１０２】
また、コンピュータ・システム（１２１）は、現在稼働中の仮想マシン（２４１）での状態から上記時点Ｃでの状態の差分データ（２４１ｓ）を随時更新する。
【０１０３】
以下に、既存のスナップショットであるユーザ・スナップショットＡ、Ｂ及びＣ（２１１、２２１及び２３１）のクローン仮想マシンを作成し、当該クローン仮想マシンに更新を適用して、当該更新が適用されたスナップショットを作成することによって、クローン元の仮想マシンのスナップショットを作成するまでの処理を説明する。
【０１０４】
コンピュータ・システム（１２１）は、ユーザ・スナップショットに対して更新を自動的に適用する処理の為に、各ユーザ・スナップショットＡ、Ｂ及びＣ（２１１、２２１及び２３１）の各利用頻度や各利用時間をモニター（監視）している。コンピュータ・システム（１２１）は、各ユーザ・スナップショットＡ、Ｂ及びＣ（２１１、２２１及び２３１）の各利用頻度が、ユーザ・スナップショットＡ（２１１）、ユーザ・スナップショットＢ（２２１）、そしてユーザ・スナップショットＣ（２３１）の順序にあることを上記モニター結果より取得する。
【０１０５】
ステップ２９１において、コンピュータ・システム（１２１）は、例えばユーザのアクション（例えば、ユーザからのシステム・スナップショット作成の指示）に応答して、利用頻度が最も高いユーザ・スナップショットＡ（２１１）を読み出して、当該ユーザ・スナップショットＡ（２１１）の状態と同一の状態を再現する仮想マシンのクローン（以下、クローン仮想マシンともいう）を作成する。コンピュータ・システム（１２１）は、当該クローンを、ユーザ・スナップショットＡ（２１１）の状態を保持するデータ（２１１ｓ）に基づいて作成する。
【０１０６】
ステップ２９２において、コンピュータ・システム（１２１）は、上記クローン仮想マシンの仮想ネットワーク・インタフェース・カード（以下、仮想ＮＩＣともいう）を無効にし、新しい別の仮想ＮＩＣを追加する。仮想ＮＩＣを無効にし、別の仮想ＮＩＣを追加する理由は、以下の通りである。上記クローン仮想マシンをそのまま起動すると、クローン元の仮想マシンが既に利用しているＩＰアドレスがそのまま上記クローン仮想マシンに割り当てられているので、ＩＰアドレスが稼働中の仮想マシンと上記クローン仮想マシンとの間で重複してしまう。その為に、上記クローン仮想マシンをそのまま起動しても、これをそのまま利用することはできない。ＩＰアドレスを変更することは仮想マシンの構成変更になり、従ってスナップショットに反映されてしまうことから、ＩＰアドレスの変更が行われてはならない。仮想マシンはそもそも仮想ハードウェア（例えば、仮想ＣＰＵ、仮想メモリ及び仮想ＮＩＣ）を比較的容易に追加することができる。その為に、コンピュータ・システム（１２１）は、元々接続されていた仮想ＮＩＣを、ＩＰアドレスを変更せずに無効にし（すなわち、仮想ＮＩＣを削除しない）、その代わりに、上記別の仮想ＮＩＣを上記クローン仮想マシンに追加する。当該無効にすることは例えば、元々接続されていた仮想ＮＩＣをネットワークから切り離すこと、又は、上記クローン仮想マシンを起動したときに元々接続されていた仮想ＮＩＣが上記クローン仮想マシンのオペレーティング・システムによって認識されないようにすることによって行われうる。
【０１０７】
引き続き、コンピュータ・システム（１２１）は、上記クローン仮想マシンに追加した上記別の仮想ＮＩＣに未使用のＩＰアドレスを割り当てる。なお、未使用のＩＰアドレスの割り当ては、下記ステップ２９３における上記クローン仮想マシンの起動後に行ってもよい。
【０１０８】
ステップ２９３において、コンピュータ・システム（１２１）は、上記クローン仮想マシンを起動する。
【０１０９】
コンピュータ・システム（１２１）は、ステップ２９２において上記クローン仮想マシンに追加した上記別の仮想ＮＩＣに未使用のＩＰアドレスが割り当てられていない場合には、上記別の仮想ＮＩＣに未使用のＩＰアドレスを割り当てる。
【０１１０】
引き続き、コンピュータ・システム（１２１）は、起動中の上記クローン仮想マシンに対して、ネットワーク経由で更新を適用する。当該更新はフィックスといわれるもの、例えば、例えばＷｉｎｄｏｗｓ（登録商標）  Ｕｐｄａｔｅ、ｙｕｍ  ｉｎｓｔａｌｌ、若しくはセキュリティ・ソフトウェア（例えば、ウィルス対策ソフトウェアを含む）の定義ファイル更新、又は、ユーザによって手動で行われているようなその他のソフトウェアの更新（例えば、当該ソフトウェアの更新をスクリプトで行うようにしているもの）でありうる。また、コンピュータ・システム（１２１）は、上記更新を、起動中の上記クローン仮想マシンに対して割り当てられたＩＰアドレスを使用して行いうる。
【０１１１】
ステップ２９４において、コンピュータ・システム（１２１）は、上記更新が終了することに応じて、更新リストを作成する。コンピュータ・システム（１２１）は、当該更新リストを例えば、更新のリスト取得コマンド（例えば、Ｗｉｎｄｏｗｓ（登録商標）の組み込みコマンド、Ｌｉｎｕｘ（登録商標）のｙｕｍコマンド）を発行することによって取得しうる。更新リストは例えば、更新対象のソフトウェア名、更新プログラムの識別番号（例えば、バージョン）、更新プログラムの発行元、更新プログラムの発行日時、若しくは更新プログラムの適用日時（インストール日時）、又はそれらの組み合わせを含みうる。更新リストは例えば、管理ビュー上で表示されうる。
【０１１２】
引き続き、コンピュータ・システム（１２１）は、起動中の上記クローン仮想マシンを停止する。そして、コンピュータ・システム（１２１）は、上記追加した別の仮想ＮＩＣを無効にし、ステップ２９２又はステップ２９３において当該クローン仮想マシンに割り当てられた上記ＩＰアドレスを解放する。
【０１１３】
また、コンピュータ・システム（１２１）は、無効にした元々接続されていた仮想ＮＩＣを有効にする。当該有効にすることは例えば、上記無効にした仮想ＮＩＣをネットワークに接続すること、上記無効にした仮想ＮＩＣを追加すること、又は、上記無効にした仮想ＮＩＣが当該クローン仮想マシンのオペレーティング・システムによって認識されるようにすることによって行われうる。
【０１１４】
ステップ２９５において、コンピュータ・システム（１２１）は、上記更新が適用された上記クローン仮想マシンのシステム・スナップショットＡ１（２１２）を取得する。当該システム・スナップショットＡ１（２１２）は、システム・スナップショットＡ１（２１２）を作成時の時点Ａ１での状態から上記時点Ａでの状態の差分データＡ１−Ａを保持するデータ（２１２ｓ）を有する。当該データ（２１２ｓ）は静的データであり、他のデータとのマージによる変更を除いて変更されない。
【０１１５】
ステップ２９６において、コンピュータ・システム（１２１）は、ステップ２９５で作成したシステム・スナップショットＡ１（２１２）を、クローン元であるユーザ・スナップショットＡ（２１１）のシステム・スナップ・ショット（２１２）として登録する。すなわち、コンピュータ・システム（１２１）は、クローン元であるユーザ・スナップショットＡ（２１１）から派生する形（例えば、枝として繋がる形で）で作成したシステム・スナップショットＡ１（２１２）を登録する。
【０１１６】
図２Ｃは、本発明の実施態様に従い、図２Ａで使用した既存のスナップショット（ユーザ・スナップショットＡ（２１１））と異なる既存のスナップショット（ユーザ・スナップショットＣ（２３１））のクローン仮想マシンを作成し、図２Ａに示す処理と同様に処理して、クローン元の仮想マシンのスナップショットを作成するまでの処理を説明する為の図である。
【０１１７】
ステップ２９７において、コンピュータ・システム（１２１）は、利用頻度がユーザ・スナップショットＡ（２１１）の次に高いユーザ・スナップショットＣ（２３１）を読み出して、当該ユーザ・スナップショットＣ（２３１）の状態と同一の状態を再現する仮想マシンのクローン（クローン仮想マシン）を作成し上記ステップ２９２〜２９６と同様に処理し、そして作成したシステム・スナップショットＣ１（２３２）を、クローン元であるユーザ・スナップショットＣ（２３１）のシステム・スナップショットＣ１（２３２）として登録する。すなわち、コンピュータ・システム（１２１）は、クローン元であるユーザ・スナップショットＣ（２３１）から派生する形（例えば、枝として繋がる形で）で作成したシステム・スナップショットＣ１（２３２）を登録する。当該システム・スナップショットＣ１（２３２）は、システム・スナップショットＣ１（２３２）を作成時の時点Ｃ１での状態から上記時点Ｃでの状態の差分データＣ１−Ｃを保持するデータ（２３２ｓ）を有する。当該データ（２３２ｓ）は静的データであり、他のデータとのマージによる変更を除いて変更されない。
【０１１８】
図２Ｄは、本発明の実施態様に従い、図２Ａで使用した既存のスナップショット（ユーザ・スナップショットＡ（２１１））と異なる既存のスナップショット（ユーザ・スナップショットＢ（２２１））のクローン仮想マシンを作成し、図２Ａに示す処理と同様に処理して、クローン元の仮想マシンのスナップショットを作成するまでの処理を説明する為の図である。
【０１１９】
ステップ２９８において、コンピュータ・システム（１２１）は、利用頻度がユーザ・スナップショットＣ（２３１）の次に高いユーザ・スナップショットＢ（２２１）を読み出して、当該ユーザ・スナップショットＢ（２２１）の状態と同一の状態を再現する仮想マシンのクローン（クローン仮想マシン）を作成し上記ステップ２９２〜２９６と同様に処理し、そして作成したシステム・スナップショットＢ１（２２２）を、クローン元であるユーザ・スナップショットＢ（２２１）のシステム・スナップショットＢ１（２２２）として登録する。すなわち、コンピュータ・システム（１２１）は、クローン元であるユーザ・スナップショットＢ（２２１）から派生する形（例えば、枝として繋がる形で）で作成したシステム・スナップショットＢ１（２２２）を登録する。当該システム・スナップショットＢ１（２２２）は、システム・スナップショットＢ１（２２２）を作成時の時点Ｂ１での状態から上記時点Ｂでの状態の差分データＢ１−Ｂを保持するデータ（２２２ｓ）を有する。当該データ（２２２ｓ）は静的データであり、他のデータとのマージによる変更を除いて変更されない。
【０１２０】
以上のようにして、複数のユーザ・スナップショットそれぞれについて、更新が適用されたシステム・スナップショットを作成することが可能になる。また、複数のユーザ・スナップショットそれぞれについて、どのユーザ・スナップショットからのシステム・スナップショットを作成するかをユーザ・スナップショットそれぞれの利用頻度や利用時間に基づいて優先順位付けすることが可能である。
【０１２１】
そして、更新が適用されたシステム・スナップショットに基づいて仮想マシンを起動することによって、当該更新が適用された仮想マシンを稼働することが可能になる。
【０１２２】
図３は、本発明の実施態様において、特定のユーザ・スナップショットから作成された一連のシステム・スナップショットのうち、中間にあるシステム・スナップショットを削除する処理を説明する為の図である。
【０１２３】
図３の左図に示すツリー（３０１）は、図２Ａ及び図２Ｂに示した処理方法と同様にして、クローン元であるユーザ・スナップショットＡ（３１１）からシステム・スナップショットＡ１（３１２）を作成し、次に、システム・スナップショットＡ１（３１２）からシステム・スナップショットＡ２（３１３）を作成し、次に、システム・スナップショットＡ２（３１３）からシステム・スナップショットＡ３（３１３）を作成した様子を示す。すなわち、ユーザ・スナップショットＡ（３１１）から派生する形で、システム・スナップショットＡ１（３１２）、システム・スナップショットＡ２（３１３）、そしてシステム・スナップショットＡ２（３１３）を作成した様子を示す。
【０１２４】
システム・スナップショットＡ（３１１）は、当該システム・スナップショットＡ（３１１）を作成時の時点Ａでの状態を保持するデータ（３１１ｓ）を有する。当該データ（３１１ｓ）は静的データであり、他のデータとのマージによる変更を除いて変更されない。
【０１２５】
ユーザ・スナップショットＡ１（３１２）は、当該ユーザ・スナップショットＡ１（３１２）を作成時の時点Ａ１での状態から上記時点Ａでの状態の差分データＡ１−Ａを保持するデータ（３１２ｓ）を有する。当該データ（３１２ｓ）は静的データであり、他のデータとのマージによる変更を除いて変更されない。
【０１２６】
ユーザ・スナップショットＡ２（３１３）は、当該ユーザ・スナップショットＡ２（３１３）を作成時の時点Ａ２での状態から上記時点Ａ１での状態の差分データＡ２−Ａ１を保持するデータ（３１３ｓ）を有する。当該データ（３１３ｓ）は静的データであり、他のデータとのマージによる変更を除いて変更されない。
【０１２７】
ユーザ・スナップショットＡ３（３１４）は、当該ユーザ・スナップショットＡ３（３１４）を作成時の時点Ａ３での状態から上記時点Ａ２での状態の差分データＡ３−Ａ２を保持するデータ（３１４ｓ）を有する。当該データ（３１４ｓ）は静的データであり、他のデータとのマージによる変更を除いて変更されない。
【０１２８】
コンピュータ・システム（１２１）は、システム・スナップショットＡ１〜Ａ３（３１２〜３１４）中、ユーザが必要としない場合（例えば、利用頻度や利用時間が低い場合）には、ユーザ・スナップショットＡ（３１１）と最新のシステム・スナップショットＡ３（３１４）との間にある中間のシステム・スナップショットＡ１（３１２）及びシステム・スナップショットＡ２（３１３）を削除して、システム・スナップショットＡ３（３１４）にマージする。
【０１２９】
コンピュータ・システム（１２１）は、システム・スナップショットＡ１（３１２）及びシステム・スナップショットＡ２（３１３）を削除する為に、これらシステム・スナップショットＡ１（３１２）及びシステム・スナップショットＡ２（３１３）の差分データをシステム・スナップショットＡ３（３１４）の差分データに統合する。
【０１３０】
図３の右図に示すツリー（３０２）は、上記マージ後のシステム・スナップショットＡ３（３５１）を示す。マージ後のシステム・スナップショットＡ３（３５１）は、差分データＡ３−Ａを保持するデータ（３５１ｓ）を有する。当該データ（３５１ｓ）は静的データであり、他のデータとのマージによる変更を除いて変更されない。
【０１３１】
上記マージ後のシステム・スナップショットＡ３（３５１）のデータ（３５１ｓ）は、マージ前のシステム・スナップショットＡ３（３１４）のデータ（３１４ｓ）に、マージ前のシステム・スナップショットＡ１（３１２）のデータ（３１２ｓ）及びシステム・スナップショットＡ２（３１３）のデータ（３１３ｓ）が統合されたものである。
【０１３２】
上記のように中間のシステム・スナップショットを削除して、他のシステム・スナップショット（例えば、最新のシステム・スナップショット）とマージすることによって、システム・スナップショットの数が膨大になることを防ぐことが可能になる。
【０１３３】
図４は、本発明の実施態様において、ユーザの指示により作成されたユーザ・スナップショットとクローン元の仮想マシンのスナップショットを作成することによって作成されたシステム・スナップショットとをグルーピングし、当該グルーピングしたスナップショットを管理ビュー上で表示する態様を説明する為の図である。
【０１３４】
図４に示す管理ビュー（４９１）は、現在稼働中の仮想システム（４１０）のスナップショット（ユーザ・スナップショット及びシステム・スナップショットを含む）の集合を示す。
【０１３５】
ユーザ・スナップショットＡ（４１１）、ユーザ・スナップショットＢ（４２１）、ユーザ・スナップショットＣ（４３１）、ユーザ・スナップショットＤ（４４１）及びユーザ・スナップショットＥ（４５１）は、この順に、ユーザからのスナップショット作成の指示によって作成されたものである。
【０１３６】
下記ツリー（４０１）、ツリー（４０２）、ツリー（４０３）、ツリー（４０４）及びツリー（４０５）はそれぞれ、上記したユーザ・スナップショットＡ（４１１）、ユーザ・スナップショットＢ（４２１）、ユーザ・スナップショットＣ（４３１）、ユーザ・スナップショットＤ（４４１）及びユーザ・スナップショットＥ（４５１）を由来とするスナップショット群を示す。各スナップショット群はユーザ・スナップショットを起源とするスナップショットの履歴図である。
【０１３７】
ツリー（４０１）は、クローン元であるユーザ・スナップショットＡ（４１１）からシステム・スナップショットＡ１（４１２）を作成し、次に、システム・スナップショットＡ１（４１２）からシステム・スナップショットＡ２（４１３）を作成し、次に、システム・スナップショットＡ２（４１３）からシステム・スナップショットＡ３（４１４）を作成した様子を示す。
【０１３８】
ツリー（４０２）は、クローン元であるユーザ・スナップショットＢ（４２１）からシステム・スナップショットＢ１（４２２）を作成し、次に、システム・スナップショットＢ１（４２２）からシステム・スナップショットＢ２（４２３）を作成し、次に、システム・スナップショットＢ２（４２３）からシステム・スナップショットＢ３（４２４）を作成した様子を示す。
【０１３９】
ツリー（４０３）は、クローン元であるユーザ・スナップショットＣ（４３１）からシステム・スナップショットＣ１を（４３２）作成した様子を示す。
【０１４０】
ツリー（４０４）は、クローン元であるユーザ・スナップショットＤ（４４１）からシステム・スナップショットＤ１（４４２）を作成し、次に、システム・スナップショットＤ１（４４２）からシステム・スナップショットＤ２（４４３）を作成した様子を示す。
【０１４１】
ツリー（４０５）は、ユーザ・スナップショットＥ（４５１）を示す。
【０１４２】
スナップショットはユーザ・スナップショットとシステム・ショットとに大別できるために、当該ユーザ・スナップショットの群と当該システム・ショットの群とに分けて管理することも可能である。しかしながら、スナップショットの数が増えてくると、ユーザ・スナップショットの群とシステム・ショットの群との全てを表示することは、ユーザにとって好ましくない場合がある。
【０１４３】
そこで、コンピュータ・システム（１２１）は、図４に示すように、ユーザ・スナップショットと、当該ユーザ・スナップショットから派生して作成された一連のシステム・スナップショットとを一つのまとまり（すなわち、上記ユーザ・スナップショットのスナップショット群）として表示しうる。
【０１４４】
コンピュータ・システム（１２１）は、異なるスナップショット群を互いに区別可能なように、例えば異なる色でスナップショット群を色分けして表示しうる。
【０１４５】
図５Ａ及び図５Ｂは、本発明の実施態様において、特定のユーザ・スナップショットと当該特定のユーザ・スナップショットから派生して作成された一連のシステム・スナップショットとをグルーピングして、スナップショット群としてビュー画面上に表示する処理、並びに、図５Ｃ及び図５Ｄはそれぞれ、当該ビュー画面上での各種操作を説明する為の図である。
【０１４６】
図５Ａは、グルーピングする処理前のユーザ・スナップショット及びシステム・スナップショットを示すビュー画面（５９１）を示す。
【０１４７】
ビュー画面（５９１）中のツリー（５０１〜５０５）それぞれは、図４に示すツリー（４０１〜４０５）に対応する。従って、ツリー（５０１〜５０５）それぞれについての説明は、図４についての上記説明を参照されたい。
【０１４８】
図５Ｂは、ツリー（５０１〜５０５）それぞれについて、ユーザ・スナップショットと、当該ユーザ・スナップショットから派生して作成された一連のシステム・スナップショットとをグルーピングし、スナップショット群として表示したビュー画面（５９２）を示す。
【０１４９】
ビュー画面（５９２）は、スナップショットＡ群（５１５）、スナップショットＢ群（５２５）、スナップショットＣ群（５３５）、スナップショットＤ群（５４５）及びスナップショットＥ群（５５５）を示す。
【０１５０】
スナップショットＡ群（５１５）は、ユーザ・スナップショットＡ（５１１）、並びに、それから派生して作成されたシステム・スナップショットＡ１（５１２）、システム・スナップショットＡ２（５１３）及びシステム・スナップショットＡ３（５１４）を含む。
【０１５１】
スナップショットＢ群（５２５）は、ユーザ・スナップショットＢ（５２１）、並びに、それから派生して作成されたシステム・スナップショットＢ１（５２２）、システム・スナップショットＢ２（５２３）、及びシステム・スナップショットＡ３（５２４）を含む。
【０１５２】
スナップショットＣ群（５３５）は、ユーザ・スナップショットＣ（５３１）、並びに、それから派生して作成されたシステム・スナップショットＣ１（５３２）を含む。
【０１５３】
スナップショットＤ群（５４５）は、ユーザ・スナップショットＤ（５４１）、並びに、それから派生して作成されたシステム・スナップショットＤ１（５４２）、及びシステム・スナップショットＤ２（５４３）を含む。
【０１５４】
スナップショットＥ群（５５５）は、ユーザ・スナップショットＥ（５５１）のみを含む。
【０１５５】
ビュー画面（５９２）に示すように、特定のユーザ・スナップショットと当該特定のユーザ・スナップショットから派生して作成された一連のシステム・スナップショットとをグルーピングすることによって、図５Ａに示すビュー画面上よりも簡潔に表示することが可能である。
【０１５６】
ユーザは、スナップショットがグルーピングされたビュー画面（５９２）上で、種々のアクションをとりうる。
【０１５７】
以下に、ビュー画面（５９２）上で、上記種々のアクションのうち、（１）ユーザがスナップショット群に属するスナップショットを確認する態様、（２）ユーザがスナップショットの更新リストを視る態様、並びに、（３）ユーザが、特定のスナップショットに基づいて仮想システムを稼働させる態様を、図５Ｂ、図５Ｃ及び図５Ｄを参照しながら説明する。
【０１５８】
（１）ユーザがスナップショット群に属するスナップショットを確認する態様
【０１５９】
図５Ｂに示すビュー画面（５９２）上で、ユーザが、スナップショットＤ群（５４５）のアイコン上を、例えばマウスの左ボタンで又は操作指でクリックし選択したとする（５８１）。代替的には、ユーザが、スナップショットＤ群（５４５）のアイコン上にある展開表示ボタン（図示せず）をマウスの左ボタンで又は操作指でクリックし選択したとする。
【０１６０】
コンピュータ・システム（１２１）は、スナップショットＤ群（５４５）の上記アイコンが選択されたことに応じて、当該スナップショットＤ群（５４５）に属するスナップショットを表示する。
【０１６１】
図５Ｃは、図５Ｂに示すビュー画面（５９２）上でスナップショットＤ群（５４５）の上記アイコンが選択されたことに応じて、当該選択されたスナップショットＤ群（５４５）に属するユーザ・スナップショット（５４１）、並びに、システム・スナップショット（５４２）及びシステム・スナップショット（５４３）を表示するビュー画面（５９３）を示す。
【０１６２】
コンピュータ・システム（１２１）は、スナップショットＤ群（５４５）の上記アイコンから吹き出すように例えば別のウィンドウ（５０３）を表示し、当該別のウィンドウ（５０３）上に、ユーザ・スナップショット（５４１）、並びに、システム・スナップショット（５４２）及びシステム・スナップショット（５４３）を表示する。
【０１６３】
以上のようにして、ユーザは、スナップショットＤ群（５４５）に属するスナップ・ショットを視覚的に把握することが可能になる。また、ユーザは、スナップショット群に属するスナップショットを展開表示されたスナップショット中から選択して、特定のスナップショットに基づいて仮想マシンを稼働させることが可能になる。
【０１６４】
（２）ユーザがスナップショットの更新リストを視る態様
【０１６５】
図５Ｃに示すビュー画面（５９３）上で、ユーザが、システム・スナップショットＤ２（５４３）のアイコン上を、例えばマウスの左ボタンで又は操作指でクリックし選択したとする（５８２）。
【０１６６】
コンピュータ・システム（１２１）は、システム・スナップショットＤ２（５４３）の上記アイコンが選択されたことに応じて、当該システム・スナップショットＤ２（５４３）の更新リストを表示する。
【０１６７】
図５Ｄは、ビュー画面（５９２）上でシステム・スナップショットＤ２（５４３）の上記アイコンが選択されたことに応じて、当該選択されたシステム・スナップショットＤ（５４３）の更新リスト（５７１）を表示するビュー画面（５９４）を示す。
【０１６８】
更新リスト（５７１）は、名前（更新対象のソフトウェア名）、発行元（更新プログラムの発行元）、インストール日時（更新プログラムの適用日時）、バージョン（更新プログラムの識別番号）、及びバージョン発行日時（更新プログラムの発行日時）を１セットとする１又は複数の更新履歴を含む。
【０１６９】
ユーザは、更新リスト（５７１）のウィンドウ上にあるスライド・バーを操作することによって、当該ウィンドウ上で表示されていない非表示領域の更新履歴を見ることが可能である。
【０１７０】
以上のようにして、ユーザは、スナップショットの更新リストを視覚的に把握することが可能になる。また、ユーザは、当該更新リストを参照して、特定のスナップショットに基づいて仮想マシンを稼働させることが可能になる。
【０１７１】
（３）ユーザが、特定のスナップショットに基づいて仮想システムを稼働させる態様
【０１７２】
ユーザが、或るスナップショットに基づいて、仮想システムを稼働させようとしているとする。ユーザは、図５Ｂに示すビュー管理（５９２）を見ているとする。ユーザは、ビュー管理（５９２）のメニューから、仮想システムの起動をするメニューを選択する。
【０１７３】
コンピュータ・システム（１２１）は、仮想システムの起動をする上記メニューが選択されたことに応じて、仮想システムの起動モードに入る。
【０１７４】
図５Ｂに示すビュー画面（５９２）上で、ユーザが、仮想システムの上記起動モード下で、スナップショットＤ群（５４５）のアイコン上を、例えばマウスの左ボタンで又は操作指でクリックし選択したとする（５８１）。代替的には、ユーザが、スナップショットＤ群（５４５）のアイコン上にある仮想システム起動ボタン（図示せず）をマウスの左ボタンで又は操作指でクリックし選択したとする。
【０１７５】
コンピュータ・システム（１２１）は、スナップショットＤ群（５４５）の上記アイコンが選択されたことに応じて、当該スナップショットＤ群（５４５）に属するスナップショットのうち最新のスナップショットであるスナップショットＤ２（５４３）を選択する（デフォルトでの設定）。なお、コンピュータ・システム（１２１）は、選択されたスナップショット群がユーザ・スナップショットしか含まない場合には、当該ユーザ・スナップショットを選択する。
【０１７６】
コンピュータ・システム（１２１）は、上記スナップショットＤ２（５４３）に基づいて、仮想システムを稼働させる。従って、ユーザは、スナップショットＤ群（５４５）のうち、最新の更新がされているスナップショットＤ２（５４３）に基づいて、仮想システムを稼働させることが可能になる。
【０１７７】
従って、ユーザは、スナップショット群中に属するスナップショットを意識すること無しに、選択したスナップショット群に含まれる最新のスナップショットを自動的に利用することが可能になる。
【０１７８】
図６は、本発明の実施態様において、稼働中の仮想マシンのスナップショットを、当該稼働中の仮想マシンに負荷を掛けないようにしてコピーする処理を説明する為の図である。
【０１７９】
図６の上段に示す態様（６０１）は、現在稼働中の仮想マシン（６５１）の既存のスナップショットであるユーザ・スナップショットＡ（６１１）、システム・スナップショットＡ１（６１２）、ユーザ・スナップショットＢ（６２１）、システム・スナップショットＢ１（６２２）、ユーザ・スナップショットＣ（６３１）、システム・スナップショットＣ１（６３２）、並びに、ユーザ・スナップショットＤ（６４１）を示す。
【０１８０】
既存のスナップショット（例えば、ユーザ・スナップショットＤ（６４１））の状態と同一の状態を再現する仮想マシンのクローンを作成する為には、現在稼働中の仮想マシンに関連付けられたユーザ・スナップショットＤ（６４１）へアクセスし、このユーザ・スナップショットＤ（６４１）を別の仮想マシンの仮想ディスク上にコピーする必要がある。その為に、現在稼働中の仮想マシンの例えば仮想ディスクＩ／Ｏに負荷がかかってしまう。そのために、当該仮想マシンで稼働中のアプリケーション等に影響が及ぶ。しかしながら、ユーザは、当該ユーザ・スナップショットＤ（６４１）へのアクセス及びコピーによる当該稼働中の仮想マシンへの影響を抑えたい。
【０１８１】
そこで、稼働中の仮想マシンにおいてスナップショットが作成された場合に、当該スナップショットが作成されるたびに又は当該スナップショットの所定の数が作成されるごとに、コンピュータ・システム（１２１）は、当該稼働中の仮想マシンの上記ディスクＩ／Ｏが低い時間帯を利用して、上記別の仮想マシンの仮想ディスク中に予め当該作成されたスナップショットをコピーしておく。
【０１８２】
従って、例えば、コンピュータ・システム（１２１）はユーザ・スナップショットＤ（６４１）を、別の仮想マシンの仮想ディスク中に現在稼働中の仮想マシンのディスクＩ／Ｏが低い時間帯にコピーする。
【０１８３】
図６の下段に示す態様（６０２）は、図６の上段に示す態様（６０１）に示す各スナップショットを別の仮想マシン上の仮想ディスクにコピーされている態様を示す。当該コピーされている態様（６０２）が、スナップショットに対して更新を行うための更新適用テンプレートである。
【０１８４】
このように、現在稼働中の仮想マシンのスナップショットを別の仮想マシンのディスク中にコピーし、当該コピーしたスナップショット（現在稼働中の仮想マシンのスナップショットと同じである）を現在稼働中の上記仮想マシンの更新を適用するテンプレートとして保持する。そして、コンピュータ・システム（１２１）は、この更新を適用するテンプレート中のスナップショットに対して更新を適用する。よって、クローン仮想マシンを作成する度に掛かるディスクＩ／Ｏが、更新を適用するテンプレートの作成時のみになる。
【０１８５】
以上のようにして、現在稼働中の仮想マシンのディスクＩ／Ｏに対する負荷を軽減させることが可能になる。
【０１８６】
図７は、本発明の実施態様において、稼働中の仮想マシンのスナップショットを、当該稼働中の仮想マシンに負荷を掛けないようにしてコピーする処理を説明する為の図である。
【０１８７】
図７の上段に示す態様（７０１）は、現在稼働中の仮想マシン（７５１）の既存のスナップショットであるユーザ・スナップショットＡ（７１１）、システム・スナップショットＡ１（７１２）、ユーザ・スナップショットＢ（７２１）、システム・スナップショットＢ１（７２２）、ユーザ・スナップショットＣ（７３１）、システム・スナップショットＣ１（７３２）、並びに、ユーザ・スナップショットＤ（７４１）を示す。
【０１８８】
既存のスナップショット（例えば、ユーザ・スナップショットＡ１（７１２）やユーザ・スナップショットＤ（７４１））の状態と同一の状態を再現する仮想マシンのクローンを作成する為には、現在稼働中の仮想マシンに関連付けられたユーザ・スナップショットＡ１（７１２）やユーザ・スナップショットＤ（７４１）へアクセスし、これらユーザ・スナップショットＡ１（７１２）やユーザ・スナップショットＤ（７４１）を別の仮想マシンの仮想ディスク上にコピーする必要がある。その為に、現在稼働中の仮想マシンの例えば仮想ディスクＩ／Ｏに負荷がかかってしまう。そのために、当該仮想マシンで稼働中のアプリケーション等に影響が及ぶ。しかしながら、ユーザは、当該ユーザ・スナップショットＡ１（７１２）やユーザ・スナップショットＤ（７４１）へのアクセス及びコピーによる当該稼働中の仮想マシンへの影響を抑えたい。
【０１８９】
そこで、コンピュータ・システム（１２１）は、各スナップショットに更新を適用する場合に、既存のスナップショットのうち、ベースとなるユーザ・スナップショットＡ１（７１２）の複数のコピーを、上記現在稼働中の仮想マシンとは異なる別の一つ又は複数の仮想マシンの仮想ディスク上に予めコピーしておく）（７６１−１、７６１−２）。
【０１９０】
（Ａ１に更新を適用する場合）
【０１９１】
コンピュータ・システム（１２１）は、上記稼働中の仮想マシン上に格納されたユーザ・スナップショットＡ（７１１）に対して、ユーザ・スナップショットＡ１（７１２）として登録する代わりに、上記別の一つ又は複数の仮想マシンの仮想ディスク上に予めコピーされたユーザ・スナップショットＡ（７６１−１）に対して、ユーザ・スナップショットＡ（７１１）から派生して作成されたシステム・スナップショットＡ１（７６２）を、上記ユーザ・スナップショットＡ（７６１−１）から派生したスナップショットとして登録する（７９３）。従って、上記現在稼働中の仮想マシンとは異なる別の一つ又は複数の仮想マシンの仮想ディスク上において、上記ユーザ・スナップショットＡ（７６１−１）から派生したシステム・スナップショットＡ１（７６２）が登録される。
【０１９２】
引き続き、コンピュータ・システム（１２１）は、上記別の一つ又は複数の仮想マシンの仮想ディスク上に作成されたシステム・スナップショットＡ１（７６２）からシステム・スナップショットＡ２（７６３）を作成したとする。コンピュータ・システム（１２１）は、上記別の一つ又は複数の仮想マシンの仮想ディスク上に作成されたシステム・スナップショットＡ１（７６２）に対して、当該システム・スナップショットＡ１（７６２）から派生して作成されたシステム・スナップショットＡ２（７６３）を登録する。従って、上記現在稼働中の仮想マシンとは異なる別の一つ又は複数の仮想マシンの仮想ディスク上において、上記システム・スナップショットＡ１（７６２）から派生したシステム・スナップショットＡ２（７６３）が登録される。
【０１９３】
コンピュータ・システム（１２１）は、上記別の一つ又は複数の仮想マシンの仮想ディスク上に、システム・スナップショットＡ２（７６３）が登録されることに応じて、当該システム・スナップショットＡ２（７６３）及びベースであるユーザ・スナップショットＡ（７６１−１）を残したまま、上記システム・スナップショットＡ１（７６２）を削除しうる。コンピュータ・システム（１２１）は、上記削除したシステム・スナップショットＡ１（７６２）の差分データを上記システム・スナップショットＡ２（７６３）の差分データと統合する。
【０１９４】
（Ｄに更新を適用する場合）
【０１９５】
コンピュータ・システム（１２１）は、上記稼働中の仮想マシン上に格納されたユーザ・スナップショットＡ（７１１）に対して、ユーザ・スナップショットＢ（７２１）、システム・スナップショットＢ１（７２２）及びユーザ・スナップショットＤ（７４１）として登録する代わりに、上記別の一つ又は複数の仮想マシンの仮想ディスク上に予めコピーされたユーザ・スナップショットＡ（７６１−２）に対して、ユーザ・スナップショットＢ（７７１）、システム・スナップショットＢ１（７７２）及びユーザ・スナップショットＤ（７８１）を登録する（７９４）。
【０１９６】
引き続き、コンピュータ・システム（１２１）は、上記別の一つ又は複数の仮想マシンの仮想ディスク上に作成されたユーザ・スナップショットＤ（７８１）からシステム・スナップショットＤ１（７８２）を作成したとする。コンピュータ・システム（１２１）は、上記別の一つ又は複数の仮想マシンの仮想ディスク上に作成されたユーザ・スナップショットＤ（７８１）に対して、当該ユーザ・スナップショットＤ（７８１）から派生して作成されたシステム・スナップショットＤ１（７８２）を登録する。従って、上記現在稼働中の仮想マシンとは異なる別の一つ又は複数の仮想マシンの仮想ディスク上において、上記ユーザ・スナップショットＤ（７８１）から派生したシステム・スナップショットＤ１（７８２）が登録される。
【０１９７】
コンピュータ・システム（１２１）は、上記別の一つ又は複数の仮想マシンの仮想ディスク上に、システム・スナップショットＤ１（７８２）が登録されることに応じて、当該システム・スナップショットＤ１（７８２）及びベースであるユーザ・スナップショットＡ（７６１−２）を残したまま、上記ユーザ・スナップショットＢ（７７１）、システム・スナップショット（７７２）及びユーザ・スナップショットＤ（７８１）を削除しうる。コンピュータ・システム（１２１）は、上記削除したユーザ・スナップショットＢ（７７１）、システム・スナップショット（７７２）及びユーザ・スナップショットＤ（７８１）の差分データを上記システム・スナップショットＤ１（７８２）の差分データと統合する。
【０１９８】
このように、現在稼働中の仮想マシンのベースとなるスナップショット（ユーザ・スナップショットでありうる）を別の仮想マシンのディスク中にコピーし、当該コピーしたベースとなるスナップショットを現在稼働中の上記仮想マシンの更新を適用するテンプレートとして保持する。そして、コンピュータ・システム（１２１）は、このテンプレート中のスナップショットに対して更新を適用する。
【０１９９】
図８は、本発明の実施態様において、クローン仮想マシンに、ネットワーク経由で更新を適用する処理を説明する為の図である。
【０２００】
８０１に示す更新態様において、コンピュータ・システム（１２１）は、クローン仮想マシン（８１１）に元々接続されていた仮想ＮＩＣ（元の仮想ＮＩＣ）（８１２）を無効にする（８１４）。そして、コンピュータ・システム（１２１）は、クローン仮想マシン（８１１）に別の仮想ＮＩＣ（８１３）を追加する。コンピュータ・システム（１２１）は、別の仮想ＮＩＣ（８１３）に割り当てられたＩＰアドレスを使用して、パブリック・ネットワーク（８１７）に接続する。そして、コンピュータ・システム（１２１）は、当該パブリック・ネットワーク（８１７）を介して、例えばＯＳアップデート（８１８）、アプリケーション・アップデート（８１９）又はセキュリティ・アップデート（８２０）を取得し、クローン仮想マシンに当該取得したアップデートを適用する。
【０２０１】
８０２に示す更新態様において、コンピュータ・システム（１２１）は、クローン仮想マシン（８２１）に元々接続されていた仮想ＮＩＣ（元の仮想ＮＩＣ）（８２２）を無効にする（８２４）。そして、コンピュータ・システム（１２１）は、クローン仮想マシン（８２１）に別の仮想ＮＩＣ（８２３）を追加する。コンピュータ・システム（１２１）は、別の仮想ＮＩＣ（８２３）に割り当てられたＩＰアドレスを使用して、プライベート・ネットワーク（８２５）に接続する。プライベート・ネットワーク（８２５）は、プロキシ・サーバ（８２６）を介して、パブリック・ネットワーク（８２７）に接続されている。そして、コンピュータ・システム（１２１）は、プライベート・ネットワーク（８２５）、プロキシ・サーバ（８２６）及びパブリック・ネットワーク（８２７）を介して、例えばＯＳアップデート（８２８）、アプリケーション・アップデート（８２９）又はセキュリティ・アップデート（８３０）を取得し、クローン仮想マシン（８２１）に当該取得したアップデートを適用する。
【０２０２】
８０３に示す更新態様において、コンピュータ・システム（１２１）は、クローン仮想マシン（８３１）に元々接続されていた仮想ＮＩＣ（元の仮想ＮＩＣ）（８３２）を無効にする（８３４）。そして、コンピュータ・システム（１２１）は、クローン仮想マシン（８３１）に別の仮想ＮＩＣ（８３３）を追加する。コンピュータ・システム（１２１）は、別の仮想ＮＩＣ（８３３）に割り当てられたＩＰアドレスを使用して、プライベート・ネットワーク（８３５）に接続する。プライベート・ネットワーク（８３５）は、ファイル・サーバ（８４１）を備えている。ファイル・サーバ（８４１）は、例えばＯＳアップデート（８３８）、アプリケーション・アップデート（８３９）又はセキュリティ・アップデート（８４０）を格納している。そして、コンピュータ・システム（１２１）は、プライベート・ネットワーク（８３５）におけるファイル・サーバ（８４１）から、例えばＯＳアップデート（８３８）、アプリケーション・アップデート（８３９）又はセキュリティ・アップデート（８４０）を取得し、クローン仮想マシン（８３１）に当該取得したアップデートを適用する。
【０２０３】
図９は、本発明の実施態様において、既存のスナップショットに対して更新を自動的に適用する処理の為のフローチャートを示す。
【０２０４】
ステップ９０１において、コンピュータ・システム（１２１）は、仮想マシンのスナップショットに対してフィックスを適用する処理を開始する。当該フィックスを適用する処理は例えば、定期的に、上記更新の通知を受け取ることによって、又は、ユーザのアクション（任意のタイミングである）をトリガーとして行われうる。
【０２０５】
ステップ９０２において、コンピュータ・システム（１２１）は、所定のトリガーに応答して、システム・スナップショット作成の為の元になる既存のスナップショットを所定の条件に基づいて選択する。当該既存のスナップショットは、既存のユーザ・スナップショット又は既存のシステム・スナップショットでありうる。当該既存のスナップショットは例えば、当該既存のスナップショットを格納する為の記憶媒体でありうる（例えば、図１０Ａ及び図１０Ｂに記載の既存のスナップショットを格納した記録媒体（１０２１）でありうる。当該既存のスナップショットが選択されることが、既存のスナップショットからシステム・スナップショットをとるタイミングでもある。
【０２０６】
上記所定のトリガーは、定期的な時間間隔でありうる。当該時間間隔は例えば、当該仮想システムを管理するユーザによって任意の時間間隔に設定されうる。
【０２０７】
また、上記所定のトリガーは、コンピュータ・システム（１２１）が上記更新の通知を受け取ることでありうる。
【０２０８】
また、上記所定のトリガーは、既存のスナップショット（群）の又は当該既存のスナップショット（群）に関連付けられたスナップショット（群）の取得頻度若しくは利用頻度の制御情報でありうる。例えば、スナップショットＡとスナップショットＢがあるとする。この場合に、スナップショットＡを１回取得する間に、スナップショットＢを３回取得するという制御情報でありうる。また、例えば、スナップショットＡ群とスナップショットＢ群があるとする。この場合に、スナップショットＡ群に属するスナップショットを１回取得する間に、スナップショットＢ群に属するスナップショットを３回取得するという制御情報でありうる。また、例えば、スナップショットＡとスナップショットＢがあるとする。スナップショットＡを１回仮想マシンとして利用する間に、スナップショットＢを３回仮想マシンとして利用するという制御情報でありうる。また、例えば、スナップショットＡ群とスナップショットＢ群があるとする。スナップショットＡ群に属するスナップショットを１回仮想マシンとして利用する間に、スナップショットＢ群に属するスナップショットを３回仮想マシンとして利用するという制御情報でありうる。
【０２０９】
また、上記所定のトリガーは、ユーザのアクションでありうる。当該アクションは例えば、管理ビューのメニューによって提供されているメニュー（例えば、更新適用処理の開始メニュー）がユーザによって選択されることでありうる。
【０２１０】
既存のスナップショットを選択する為の上記所定の条件は例えば、既存のスナップショットに関連付けられた優先度でありうる。既存のスナップショットがユーザ・スナップショットである場合には、コンピュータ・システム（１２１）は、当該ユーザ・スナップショットに付与された優先度を使用しうる。既存のスナップショットがシステム・スナップショットである場合には、コンピュータ・システム（１２１）は、当該システム・スナップショットの派生元であるユーザ・スナップショットに付与された優先度を当該システム・スナップショットの優先度として利用しうる。
【０２１１】
また、上記所定の条件は例えば、当該既存のスナップショットそれぞれの仮想マシンとしての利用頻度や利用時間でありうる。当該利用頻度は、上記既存のスナップショットを用いて、仮想マシンとして起動した頻度でありうる。当該利用時間は、上記既存のスナップショットを用いて仮想マシンとして起動し、稼働中の仮想マシンを利用した時間でありうる。上記利用頻度や上記利用時間は、特定の一つのスナップショットの利用頻度や利用時間であってもよく、又は、或るスナップショット群に属するスナップショット全体又はその一部の利用頻度や利用時間であってもよい。或るスナップショット群に属するスナップショットの全体の利用頻度や利用時間を採用する場合には、当該或るスナップショット群が重要度の高い場合でありうる。また、或るスナップショット群に属するスナップショットの一部の利用頻度や利用時間を採用する場合には、当該或るスナップショット群が重要度の低い場合でありうる。
【０２１２】
また、上記所定の条件は例えば、当該既存のスナップショットのスナップショット取得頻度でありうる。当該スナップショット取得頻度は、上記既存のスナップショットに基づいて仮想マシンが作成された場合に、当該作成されたマシンが稼働中に作成されたユーザ・スナップショットの取得回数、システム・スナップショットの取得回数、又はそれらの組み合わせの取得回数でありうる。
【０２１３】
コンピュータ・システム（１２１）は、既存のスナップショットの利用頻度若しくは利用時間、又は当該既存のスナップショットのスナップショット取得頻度をモニターしていることによって、上記利用頻度、上記利用時間、又は上記取得頻度を取得しうる。
【０２１４】
ステップ９０３において、コンピュータ・システム（１２１）は、ステップ９０２で選択した作成元の既存スナップショットに基づいて、当該既存のスナップショットの状態と同一の状態を再現する仮想マシンのクローン（クローン仮想マシン）を作成する。
【０２１５】
ステップ９０４において、コンピュータ・システム（１２１）は、ステップ９０３で作成したクローン仮想マシン中の作成元の仮想ＮＩＣを無効にし、その代わりに、新しい別の仮想ＮＩＣを追加する。コンピュータ・システム（１２１）は、上記作成元の仮想ＮＩＣを無効にする際に、当該作成元の仮想ＮＩＣに割り当てられているＩＰアドレスをそのままにして維持しておく。上記クローン仮想マシン中の作成元の仮想ＮＩＣを無効にすることは例えば、当該仮想ＮＩＣを前記ネットワークから切り離すこと、又は、前記クローン仮想マシンを起動したときに、当該仮想ＮＩＣが当該クローン仮想マシンのオペレーティング・システムによって認識されないようにすることによって行われうる。上記クローン仮想マシンを起動したときに、当該仮想ＮＩＣが当該クローン仮想マシンのオペレーティング・システムによって認識されないようにすることは、当該オペレーティング・システムからしてみれば、当該仮想ＮＩＣが一旦削除されたように見える場合がある。このような場合には、下記ステップ９１１において、上記オペレーティング・システムによって認識されないようにしたＩＰアドレス、及び任意的に、その他の必要な情報（例えば、ホスト名、デフォルト・ゲートウェイ、サブネットマスク、又はＤＮＳサーバ）を正しく設定し直す必要がある。
【０２１６】
ステップ９０５において、コンピュータ・システム（１２１）は、クローン仮想マシンを起動する。
【０２１７】
なお、ステップ９０５とステップ９０４は逆であってもよい。すなわち、コンピュータ・システム（１２１）は、クローン仮想マシンを起動後に、当該起動したクローン仮想マシンに中の作成元の仮想ＮＩＣを無効にし、その代わりに、新しい別の仮想ＮＩＣを追加するようにしてもよい。
【０２１８】
ステップ９０６において、コンピュータ・システム（１２１）は、ステップ９０４で追加した新しい別の仮想ＮＩＣに対して、未使用のＩＰアドレスを割り当てる。また、コンピュータ・システム（１２１）は、ステップ９０４で追加した新しい別の仮想ＮＩＣに対して、ＤＨＣＰを使用して、上記未使用のＩＰアドレスを自動的に割り当てうる。また、コンピュータ・システム（１２１）は、上記別の仮想ＮＩＣに対して上記未使用のＩＰアドレスを割り当てるとともに、その他の必要な情報（例えば、ホスト名、デフォルト・ゲートウェイ、サブネットマスク、又はＤＮＳサーバ）を与えうる。
【０２１９】
ステップ９０７において、コンピュータ・システム（１２１）は、仮想ＮＩＣを追加したクローン仮想マシンに、ネットワーク経由で更新を適用する。特には、コンピュータ・システム（１２１）は、ステップ９０６で割り当てられたクローン仮想マシンのＩＰアドレスを介して、上記仮想ＮＩＣを追加したクローン仮想マシンに、ネットワーク経由で更新を適用しうる。
【０２２０】
ステップ９０８において、コンピュータ・システム（１２１）は、ステップ９０７の更新結果である更新リストを作成し、当該作成した更新リストを例えば管理サーバ（例えば、当該更新リストを格納する為の記憶媒体）に登録しうる。
【０２２１】
ステップ９０９において、コンピュータ・システム（１２１）は、更新を終了した稼働中のクローン仮想マシンを停止する。当該稼働中のクローン仮想マシンの停止とは、コンピュータ・システム（１２１）のディスク上に、当該クローン仮想マシンのデータが残っており、仮想ＣＰＵ及び仮想メモリなどの仮想リソースだけが解放された状態をいう。すなわち、コンピュータ・システム（１２１）は、上記ディスク上で残っている上記クローン仮想マシンのデータを使用して、当該クローン仮想マシンを再び起動することが可能である状態をいう。そして、コンピュータ・システム（１２１）は、停止したクローン仮想マシンが使用していた仮想ハードウェアを解放しうる。
【０２２２】
ステップ９１０において、コンピュータ・システム（１２１）は、クローン仮想マシンからステップ９０４で追加した仮想ＮＩＣを削除して、割り当てられたＩＰアドレスを解放する。クローン仮想マシンからステップ９０４で追加した仮想ＮＩＣを削除しないと、下記ステップ９１２でスナップショットを作成した場合に、仮想ＮＩＣが変更したものとして差分情報が記録される為である。
【０２２３】
ステップ９１１において、コンピュータ・システム（１２１）は、クローン仮想マシン中の、ステップ９０４で無効にした作成元の仮想ＮＩＣを有効にする。ステップ９０４で無効にした作成元の仮想ＮＩＣを有効にすることによって、当該作成元の仮想ＮＩＣに割り当てられているＩＰアドレスも使用可能になる。また、ステップ９０４で無効にした作成元の仮想ＮＩＣを有効にすることによって、下記ステップ９１２でスナップショットを作成した場合に、仮想ＮＩＣが同じものであり変更していないものとして差分情報が記録されることはない為である。
【０２２４】
ステップ９１２において、コンピュータ・システム（１２１）は、仮想ＮＩＣを有効にしたクローン仮想マシンのスナップショットを作成する。スナップショットの作成方法は、当業者に知られている任意の技法を用いることが可能である。
【０２２５】
ステップ９１３において、コンピュータ・システム（１２１）は、ステップ９１２で作成したスナップショットを、クローン元の仮想マシンのシステム・スナップショットとして登録する。すなわち、コンピュータ・システム（１２１）は、仮想ＮＩＣを有効にしたクローン仮想マシンのスナップショットを作成することによって、クローン元の仮想マシンのスナップショットを作成することになる。
【０２２６】
ステップ９１４において、任意的に、コンピュータ・システム（１２１）は、作成したシステム・スナップショットを、当該システム・スナップショットの作成元のスナップショット群に追加しうる。
【０２２７】
ステップ９１５において、任意的に、コンピュータ・システム（１２１）は、管理ビュー上で、ステップ９１２において作成されたシステム・スナップショット、又は、当該作成されたシステム・スナップショットが追加されたスナップショット群を表示しうる。ユーザは、当該管理ビュー上で、例えばグルーピングされたスナップショットの切り戻し、或いは、スナップショットの優先度の設定を行うことが可能である。
【０２２８】
ステップ９１６において、任意的に、コンピュータ・システム（１２１）は、クローン仮想マシンの削除、既存のシステム・スナップショット、及び当該既存のシステム・スナップショットに関連付けられた更新リストなどの再使用しない不必要なデータを削除しうる。上記クローン仮想マシンの削除とは、上記ステップ９０９において説明したクローン仮想マシンの停止と異なり、当該クローン仮想マシンを再び起動することが不可能であるようにすることをいう。
【０２２９】
ステップ９１７において、コンピュータ・システム（１２１）は、一つの一斉更新処理の中で処理すべきスナップショット群の中で未処理のスナップショット群があるか（すなわち、残っているか）判断する。コンピュータ・システム（１２１）は、上記未処理のスナップショット群があることに応じて、処理をステップ９０２に戻す。コンピュータ・システム（１２１）は、処理がステップ９０２に戻されることによって、上記未処理のスナップショット群について、ステップ９０２〜９１６のステップの処理を繰り返して行う。一方、コンピュータ・システム（１２１）は、上記未処理のスナップショット群がないことに応じて、処理を終了ステップ９１８に進める。
【０２３０】
ステップ９１８において、コンピュータ・システム（１２１）は、仮想マシンのスナップショットに対してフィックスを適用する処理を終了する。
【０２３１】
図１０Ａ及び図１０Ｂそれぞれは、図１Ａ又は図１Ｂに従うハードウェア構成を好ましくは備えており、本発明の実施態様に従い、仮想マシンのスナップショットに対して更新を自動的に適用する処理の為のコンピュータ・システムの機能ブロック図の一例を示した図である。当該コンピュータ・システム（１２１）は、１又は複数のサーバ・コンピュータを備えうる。
【０２３２】
図１０Ａは、コンピュータ・システム（１２１）が一つのサーバ・コンピュータからなる場合の機能ブロック図の一例を示した図である。
【０２３３】
コンピュータ・システム（１００１）は、図１Ａ又は図１Ｂに従うハードウェア構成（１０１）又は図１Ｂに従うハードウェア構成（１２１）を備えうる。
【０２３４】
コンピュータ・システム（１００１）は、仮想マシン提供手段（１０１１）、クローン作成手段（１０１２）、クローン仮想マシン構成管理手段（１０１３）、更新適用手段（１０１４）、スナップショット作成手段（１０１５）、並びに、任意的に、スナップショット管理手段（１０１６）、管理ビュー表示手段（１０１７）、更新リスト表示手段（１０１８）、及びモニター手段（１０１９）のうちの少なくとも１つを備えている。
【０２３５】
仮想マシン提供手段（１０１１）は、サーバ・コンピュータ上で、１又は複数の仮想マシンが稼働することを提供しうる。
【０２３６】
また、仮想マシン提供手段（１０１１）は、スナップショットに基づいて、仮想マシンが稼働することを提供しうる。
【０２３７】
また、仮想マシン提供手段（１０１１）は、図９に示すステップ９０５及び９０９、並びにステップ９１６の一部（クローン仮想マシンの削除）の処理を実行しうる。
【０２３８】
クローン作成手段（１０１２）は、既存のスナップショットの状態と同一の状態を再現する仮想マシンのクローン（クローン仮想マシン）を作成する。クローン作成手段（１０１２）は、クローン仮想マシンの作成において、既存のスナップショットを当該既存のスナップショットを格納した記録媒体（１０２１）から読み取りうる。
【０２３９】
また、クローン作成手段（１０１２）は、上記既存のスナップショットに関連付けられた優先度に従って、上記既存のスナップショットの又は上記既存のスナップショットに関連付けられたスナップショットの取得頻度若しくは利用頻度の制御情報に従って、又は、上記既存のスナップショットの利用頻度若しくは利用時間、又は、当該既存のスナップショットのスナップショット取得頻度に従って、複数の既存のスナップショットのうちからクローン仮想マシンを作成する既存のスナップショットを選択しうる。
【０２４０】
また、クローン作成手段（１０１２）は、グルーピングされたシステム・スナップショットが選択されることに応じて、当該グルーピングされたシステム・スナップショットのうちの最新のシステム・スナップショットの状態と同一の状態を再現する仮想マシンのクローンを作成しうる。
【０２４１】
また、クローン作成手段（１０１２）は、図９に示すステップ９０２及び９０３の処理を実行しうる。
【０２４２】
クローン仮想マシン構成管理手段（１０１３）は、クローン仮想マシンの仮想ＮＩＣを無効にし、別の仮想ＮＩＣを追加する。
【０２４３】
また、クローン仮想マシン構成管理手段（１０１３）は、更新適用手段（１０１４）によって更新された更新を適用したクローン仮想マシンから上記別の仮想ＮＩＣを削除して、上記無効にした仮想ＮＩＣを有効にする。
【０２４４】
また、クローン仮想マシン構成管理手段（１０１３）は、別の仮想ＮＩＣを追加したクローン仮想マシンを起動し、当該別の仮想ＮＩＣに未使用のＩＰアドレスを割り当てうる。
【０２４５】
また、クローン仮想マシン構成管理手段（１０１３）は、上記クローン仮想マシンの仮想ＮＩＣを無効にすることを、当該仮想ＮＩＣを上記ネットワークから切り離すこと、又は、上記クローン仮想マシンを起動したときに、当該仮想ＮＩＣが当該クローン仮想マシンのオペレーティング・システムによって認識されないようにすることによって行いうる。
【０２４６】
また、クローン仮想マシン構成管理手段（１０１３）は、上記無効にした仮想ＮＩＣを有効にすることを、当該無効にした仮想ＮＩＣを上記ネットワークに接続すること、当該無効にした仮想ＮＩＣを追加すること、又は、上記無効にした仮想ＮＩＣが当該クローン仮想マシンのオペレーティング・システムによって認識されるようにすることによって行いうる。
【０２４７】
また、クローン仮想マシン構成管理手段（１０１３）は、図９に示すステップ９０４及び９０６、並びに、ステップ９１０及び９１１の処理を実行しうる。
【０２４８】
更新適用手段（１０１４）は、別の仮想ＮＩＣを追加したクローン仮想マシンに、ネットワーク経由で更新を適用する。
【０２４９】
また、更新適用手段（１０１４）は、更新を、上記別の仮想ＮＩＣに割り当てられたＩＰアドレスを使用して行いうる。
【０２５０】
また、更新適用手段（１０１４）は、更新の結果を、更新リストを記憶する記憶媒体（１０２３）に格納しうる。
【０２５１】
また、更新適用手段（１０１４）は、図９に示すステップ９０７及び９０８の処理を実行しうる。
【０２５２】
スナップショット作成手段（１０１５）は、上記仮想ＮＩＣを有効にしたクローン仮想マシンのスナップショットを作成することによって、クローン元の仮想マシンのスナップショットを作成する。
【０２５３】
また、スナップショット作成手段（１０１５）は、図９に示すステップ９１２の処理を実行しうる。
【０２５４】
スナップショット管理手段（１０１６）は、上記クローン元の仮想マシンのスナップショットを作成するステップにおいて作成された少なくとも２つのスナップショットをマージする。
【０２５５】
また、スナップショット管理手段（１０１６）は、ユーザの指示により作成されたユーザ・スナップショットと上記クローン元の仮想マシンのスナップショットを作成することによって作成されたシステム・スナップショットとをグルーピングしうる。
【０２５６】
また、スナップショット管理手段（１０１６）は、グルーピングされたシステム・スナップショットのうちの最新でない１又は複数のシステム・スナップショットを最新のシステム・スナップショットにマージし、当該最新でない１又は複数のシステム・スナップショットを削除しうる。
【０２５７】
また、スナップショット管理手段（１０１６）は、図９に示すステップ９１３、及びステップ９１４〜９１５、並びに、ステップ９１６の一部（スナップショットに関連する処理であって、例えば既存のシステム・スナップショット又はユーザ・スナップショットの再利用しない不必要なデータの削除）の処理を実行しうる。
【０２５８】
管理ビュー表示手段（１０１７）は、ユーザ・スナップショット及びシステム・スナップショットをグルーピングしたスナップショット群を表示する。
【０２５９】
また、管理ビュー表示手段（１０１７）は、クローン元の仮想マシンの上記既存のスナップショットが上記ユーザ・スナップショットである場合に、上記管理ビュー上で、上記ユーザ・スナップショットのクローン仮想マシンから作成されたシステム・スナップショットを上記クローン元の仮想マシンの上記ユーザ・スナップショットに関連付けて表示しうる。
【０２６０】
また、管理ビュー表示手段（１０１７）は、クローン元の仮想マシンの上記既存のスナップショットが上記システム・スナップショットである場合に、上記管理ビュー上で、上記システム・スナップショットのクローン仮想マシンから作成されたシステム・スナップショットを上記クローン元の仮想マシンの上記システム・スナップショットに関連付けて表示しうる。
【０２６１】
また、管理ビュー提供手段（１０１７）は例えば、図９に示すステップ９０２において、例えばユーザ・スナップショットをユーザが選択することを可能にする管理ビュー上の処理を実行しうる。
【０２６２】
更新リスト表示手段（１０１８）は、管理ビュー上で、更新適用手段（１０１４）によって更新された更新の更新リストを表示する。更新リスト表示手段（１０１８）は、更新リストを、更新リストを記憶する記憶媒体（１０２３）から読み取りうる。
【０２６３】
また、更新リスト表示手段（１０１８）は、更新適用手段（１０１４）によって更新された更新の更新リストを、当該更新が適用されたスナップショットに関連付けて表示しうる。
【０２６４】
また、更新リスト表示手段（１０１８）は、図９に示すステップ９０８において作成された更新リストを管理ビュー上で表示する為の処理を実行しうる。
【０２６５】
モニター手段（１０１９）は、上記既存のスナップショットの利用頻度若しくは利用時間、又は当該既存のスナップショットのスナップショット取得頻度をモニターする。
【０２６６】
また、モニター手段（１０１９）は、図９に示すステップ９０２で既存のスナップショットを選択する為の、既存のスナップショットの利用頻度若しくは利用時間、又は既存のスナップショットのスナップ取得頻度をモニターする処理を実行しうる。
【０２６７】
図１０Ｂは、コンピュータ・システム（１２１）が複数の（例えば２つの）サーバ・コンピュータからなる場合の機能ブロック図の一例を示した図である。
【０２６８】
コンピュータ・システム（１２１）は、仮想環境提供サーバ（１０３１）と仮想環境管理サーバ（１０３２）とを備えている。
【０２６９】
仮想環境提供サーバ（１０３１）は、仮想マシン提供手段（１０４１）、及びクローン作成手段（１０４２）を備えている。
【０２７０】
仮想マシン提供手段（１０４１）及びクローン作成手段（１０４２）はそれぞれ、図１０Ａに記載の仮想マシン提供手段（１０１１）及びクローン作成手段（１０１２）に対応する。従って、仮想マシン提供手段（１０４１）及びクローン作成手段（１０４２）それぞれの説明については、図１０Ａに記載の対応する各手段の説明を参照されたい。
【０２７１】
仮想環境管理サーバ（１０３２）は、クローン仮想マシン構成管理手段（１０５３）、更新適用手段（１０５４）、スナップショット作成手段（１０５５）、並びに、任意的に、スナップショット管理手段（１０５６）、管理ビュー表示手段（１０５７）、更新リスト表示手段（１０５８）、及びモニター手段（１０５９）を備えている。
【０２７２】
クローン仮想マシン構成管理手段（１０５３）、更新適用手段（１０５４）、スナップショット作成手段（１０５５）、スナップショット管理手段（１０５６）、管理ビュー表示手段（１０５７）、更新リスト表示手段（１０５８）、及びモニター手段（１０５９）はそれぞれ、図１０Ａに記載のクローン仮想マシン構成管理手段（１０１３）、更新適用手段（１０１４）、スナップショット作成手段（１０１５）、スナップショット管理手段（１０１６）、管理ビュー表示手段（１０１７）、更新リスト表示手段（１０１８）、及びモニター手段（１０１９）に対応する。従って、クローン仮想マシン構成管理手段（１０５３）、更新適用手段（１０５４）、スナップショット作成手段（１０５５）、スナップショット管理手段（１０５６）、管理ビュー表示手段（１０５７）、更新リスト表示手段（１０５８）、及びモニター手段（１０５９）それぞれの説明については、図１０Ａに記載の対応する各手段の説明を参照されたい。
【要約】
【課題】本発明は、プログラムの最新の更新が適用されてないスナップショットに基づく仮想マシンが、長期間稼動したままになっているという状況を防ぐことを目的とする。
【解決手段】
本発明は仮想マシン（ＶＭ）のスナップショットに対して更新を自動的に適用する技法であり、当該技法は、既存のスナップショットの状態と同一の状態を再現するＶＭのクローンを作成すること、該クローンとして作成したクローンＶＭの仮想ＮＩＣを無効にし、別の仮想ＮＩＣを追加すること、該別の仮想ＮＩＣを追加したクローンＶＭに、ネットワーク経由で更新を適用すること、該更新を適用したクローンＶＭから別の仮想ＮＩＣを削除して、該無効にした仮想ＮＩＣを有効にすること、該仮想ＮＩＣを有効にしたクローンＶＭのスナップショットを作成することによって、クローン元のＶＭのスナップショットを作成することを含む。
【選択図】図９【図１Ａ】
0005904514.tif 000002
【図１Ｂ】
0005904514.tif 000003
【図２Ａ】
0005904514.tif 000004
【図２Ｂ】
0005904514.tif 000005
【図２Ｃ】
0005904514.tif 000006
【図２Ｄ】
0005904514.tif 000007
【図３】
0005904514.tif 000008
【図４】
0005904514.tif 000009
【図５Ａ】
0005904514.tif 000010
【図５Ｂ】
0005904514.tif 000011
【図５Ｃ】
0005904514.tif 000012
【図５Ｄ】
0005904514.tif 000013
【図６】
0005904514.tif 000014
【図７】
0005904514.tif 000015
【図８】
0005904514.tif 000016
【図９】
0005904514.tif 000017
【図１０Ａ】
0005904514.tif 000018
【図１０Ｂ】
0005904514.tif 000019