JP5904514B1 - 仮想マシンのスナップショットに対して更新を自動的に適用する方法、並びに、そのコンピュータ・システム及びコンピュータ・システム用プログラム - Google Patents

仮想マシンのスナップショットに対して更新を自動的に適用する方法、並びに、そのコンピュータ・システム及びコンピュータ・システム用プログラム Download PDF

Info

Publication number
JP5904514B1
JP5904514B1 JP2014219162A JP2014219162A JP5904514B1 JP 5904514 B1 JP5904514 B1 JP 5904514B1 JP 2014219162 A JP2014219162 A JP 2014219162A JP 2014219162 A JP2014219162 A JP 2014219162A JP 5904514 B1 JP5904514 B1 JP 5904514B1
Authority
JP
Japan
Prior art keywords
snapshot
virtual machine
clone
virtual
computer system
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2014219162A
Other languages
English (en)
Other versions
JP2016085663A (ja
Inventor
祐人 福井
祐人 福井
知宏 塩谷
知宏 塩谷
林 大輔
大輔 林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2014219162A priority Critical patent/JP5904514B1/ja
Priority to US14/842,100 priority patent/US10083022B2/en
Application granted granted Critical
Publication of JP5904514B1 publication Critical patent/JP5904514B1/ja
Publication of JP2016085663A publication Critical patent/JP2016085663A/ja
Priority to US15/947,931 priority patent/US10140115B2/en
Priority to US15/947,923 priority patent/US10394547B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】本発明は、プログラムの最新の更新が適用されてないスナップショットに基づく仮想マシンが、長期間稼動したままになっているという状況を防ぐことを目的とする。【解決手段】本発明は仮想マシン(VM)のスナップショットに対して更新を自動的に適用する技法であり、当該技法は、既存のスナップショットの状態と同一の状態を再現するVMのクローンを作成すること、該クローンとして作成したクローンVMの仮想NICを無効にし、別の仮想NICを追加すること、該別の仮想NICを追加したクローンVMに、ネットワーク経由で更新を適用すること、該更新を適用したクローンVMから別の仮想NICを削除して、該無効にした仮想NICを有効にすること、該仮想NICを有効にしたクローンVMのスナップショットを作成することによって、クローン元のVMのスナップショットを作成することを含む。【選択図】図9

Description

本発明は、プログラム更新を適用する技法に関する。本発明は、特には、仮想マシンのスナップショットに対して、更新を自動的に適用する技法に関する。
昨今のクラウドサービスの普及に伴い、物理マシンでだけでなく、仮想マシン(virtual machine,VM)を利用する機会が増えきている。仮想マシンは、コンピュータの仮想化技術の一つである。仮想マシンでは、ハードウェアを仮想化することによって、1つのコンピュータ上で、同一の又は異なる複数のオペレーティング・システムを動作させることが可能である。仮想マシンは、個々に完全に独立した形で動作する1プログラム実行環境である。
しかしながら、仮想マシンにも物理マシンと同様に、オペレーティング・システムやアプリケーション・ソフトウェアに存在する脆弱性に対して攻撃が行われるリスクがある。
このことは、仮想マシンにも物理マシンと同様に、セキュリティ遵守の観点からセキュリティ対策(例えば、セキュリティ・フィックスやプログラム・フィックスなどのフィックス)の適用が求められている。
下記特許文献1は、コンピュータに侵入するウイルスに対応するためのウイルス対策方法であって、コンピュータ上に生成された、アプリケーション・プログラムを実行させる1つ以上の第1の仮想マシンの状態を、前記ウイルスを検出して除去するウイルス対策ソフトウェアを実行させる第2の仮想マシンにより監視するとともに、前記第1の仮想マシンの状態をスナップショットとして定期的に保存し、前記第2の仮想マシン上で実行する前記ウイルス対策ソフトウェアがウイルスを検出した場合、該ウイルスを検出した第1の仮想マシンを停止させ、停止させた第1の仮想マシンのスナップショットを用いて、該スナップショットを保存したときの第1の仮想マシンの状態を復元することを特徴とする、ウイルス対策方法を記載する(請求項1)。
下記特許文献2は、新たに仮想マシンを生成するメッセージを受けたことをメッセージマスタテーブルの識別子を参照して判定したとき、仮想環境管理コンピュータのテンプレートを参照して検疫用仮想化サーバ上に、検疫用仮想マシンを生成する第1工程と、該第1工程により生成した検疫用仮想マシンのテンプレートが検疫済みか否かを仮想マシンマスタテーブルの検疫フラグを参照して判定する第2工程と、該第2工程において生成した検疫用仮想マシンのテンプレートが検疫済みと判定したとき、検疫用仮想化サーバ上の検疫用仮想マシンを稼動仮想化サーバ上に稼動仮想マシンとして移動する第3工程とを実行する仮想マシンセキュリティ管理システムを記載する(請求項1)。
下記特許文献3は、アプリケーション・データを含むシステム・データが最新であるか判断するステップと、前記システム・データが最新ではないと判断された場合には、ユーザ入力の受け付けを遮断させるステップと、前記システム・データの更新データを、アップデート・サーバからネットワーク経由で取得させ、前記システム・データの更新を実施させるステップと、前記システム・データの更新完了を検出すると、前記システム・データが記録されており且つユーザ・データが格納され得るデータ記録部を前記システム・データの更新完了時における状態へ復元させるためのスナップショット・データを前記データ記録部内に確保させるステップと、前記スナップショット・データが前記データ記録部に確保された後に、前記ユーザ入力の受け付け遮断を停止させるステップと、をコンピュータに実行させるためのプログラムを記載する(請求項1)。
下記特許文献4は、仮想マシンを監視管理する装置と方法、及びコンピュータプログラムを記載する(段落0001)。
下記特許文献5は、パッチを適用すべきプログラムを実行する仮想サーバを備えた複数のサーバに関して、パッチ適用を行なうことを記載する(段落0009)。
特開2010−44613号公報 特開2010−73011号公報 特開2009−122749号公報 特開2010−262545号公報 特開2012−168710号公報
スナップショットとは、ある時点での仮想マシンの状態を保存するための静的なデータ集合であり、必要に応じて、当該ある時点で保存された状態に仮想マシンを戻すことを可能にする技術において使用されるデータである。
スナップショットを用いることによって、一つの仮想マシンについて複数の状態を持つことが可能になる。
しかしながら、全てのスナップショットに対してプログラムの更新(例えば、プログラム更新やセキュリティ更新)を適用し続け、それに伴って大量に発生した新たなスナップショットを適切に管理することは非常に困難である。
また、仮想マシンによっては、スナップショットを使用して過去の状態に戻すような運用が行われる場合がある。
しかしながら、このような運用が行われる場合に、当該仮想マシンは、最新のプログラムの更新(例えば、プログラム更新やセキュリティ更新)が行われていない状態に戻ることになってしまう。
そこで、本発明は、プログラムの最新の更新が適用されてないスナップショットに基づく仮想マシンが、長期間稼動したままになっているという状況を防ぐことを目的とする。
本発明は、仮想マシンのスナップショットに対して更新を自動的に適用する技法を提供する。当該技法は、仮想マシンのスナップショットに対して更新を自動的に適用する方法、並びに、仮想マシンのスナップショットに対して更新を自動的に適用する為のコンピュータ・システム、コンピュータ・システム用プログラム及びコンピュータ・システム用プログラム製品を包含しうる。
(本発明に従う第1の態様)
本発明に従う第1の態様において、仮想マシンのスナップショットに対して更新を自動的に適用する方法は、コンピュータ・システムが、
既存のスナップショットの状態と同一の状態を再現する仮想マシンのクローンを作成するステップと、
上記クローンとして作成した仮想マシン(以下、クローン仮想マシンという)の仮想ネットワーク・インタフェース・カード(以下、仮想NICという)を無効にし、別の仮想NICを追加するステップと、
上記別の仮想NICを追加したクローン仮想マシンに、ネットワーク経由で更新を適用するステップと、
上記更新を適用したクローン仮想マシンから上記別の仮想NICを削除(delete)して、上記無効にした仮想NICを有効にするステップと、
上記仮想NICを有効にしたクローン仮想マシンのスナップショットを作成することによって、クローン元の仮想マシンのスナップショットを作成するステップと
を実行することを含む。
本発明の一つの実施態様において、上記コンピュータ・システムが、
上記仮想マシンのクローンを作成するステップ、上記追加するステップ、上記適用するステップ、上記有効にするステップ、及び上記クローン元の仮想マシンのスナップショットを作成するステップを繰り返すステップ
を実行することをさらに含みうる。
本発明の一つの実施態様において、上記繰り返すステップが、
定期的に、
上記更新の通知を受け取ることによって、
上記既存のスナップショットの又は上記既存のスナップショットに関連付けられたスナップショットの取得頻度若しくは利用頻度の制御情報に従って、又は、
ユーザのアクションをトリガーとして
行われうる。
本発明の一つの実施態様において、上記仮想マシンのクローンを作成するステップが、
上記既存のスナップショットに関連付けられた優先度に従って、又は、
上記既存のスナップショットの利用頻度若しくは利用時間、又は当該既存のスナップショットのスナップショット取得頻度に従って、
複数の既存のスナップショットのうちからクローン仮想マシンを作成する既存のスナップショットを選択するステップ
をさらに含みうる。
本発明の一つの実施態様において、上記優先度がユーザの指示により作成されたユーザ・スナップショットに付されていうる。
本発明の一つの実施態様において、上記コンピュータ・システムが、
上記既存のスナップショットの利用頻度若しくは利用時間、又は当該既存のスナップショットのスナップショット取得頻度をモニターするステップ
を実行することをさらに含みうる。
本発明の一つの実施態様において、上記既存のスナップショットが、ユーザの指示により作成されたユーザ・スナップショット又は上記クローン元の仮想マシンのスナップショットを作成するステップにおいて作成されたシステム・スナップショットでありうる。
本発明の一つの実施態様において、クローン元の仮想マシンの上記既存のスナップショットが上記ユーザ・スナップショットであり、
上記管理ビュー上で、上記ユーザ・スナップショットのクローン仮想マシンから作成されたシステム・スナップショットが上記クローン元の仮想マシンの上記ユーザ・スナップショットに関連付けて表示されうる。
本発明の一つの実施態様において、クローン元の仮想マシンの上記既存のスナップショットが上記システム・スナップショットであり、
上記管理ビュー上で、上記システム・スナップショットのクローン仮想マシンから作成されたシステム・スナップショットが上記クローン元の仮想マシンの上記システム・スナップショットに関連付けて表示されうる。
本発明の一つの実施態様において、上記コンピュータ・システムが、
上記クローン元の仮想マシンのスナップショットを作成するステップにおいて作成された少なくとも2つのスナップショットをマージするステップ
を実行することをさらに含みうる。
本発明の一つの実施態様において、上記コンピュータ・システムが、
ユーザの指示により作成されたユーザ・スナップショット及び上記クローン元の仮想マシンのスナップショットを作成するステップにおいて作成されたシステム・スナップショットをグルーピングし、当該グルーピングしたスナップショットを管理ビュー上で表示するステップ
をさらに実行することを含みうる。
本発明の一つの実施態様において、上記クローンを作成するステップが、
上記グルーピングされたシステム・スナップショットが選択されることに応じて、当該グルーピングされたシステム・スナップショットのうちの最新のシステム・スナップショットの状態と同一の状態を再現する仮想マシンのクローンを作成するステップ
を含みうる。
本発明の一つの実施態様において、上記コンピュータ・システムが、
上記グルーピングされたスナップショットのうちの最新でない1又は複数のシステム・スナップショットを最新のシステム・スナップショットにマージするステップと、
上記最新でない1又は複数のシステム・スナップショットを削除するステップと
をさらに実行しうる。
本発明の一つの実施態様において、上記コンピュータ・システムが、
上記グルーピングしたスナップショット群の一つが選択されることに応じて、上記グルーピングしたスナップショット群に属するスナップショットを上記管理ビュー上で表示するステップ
をさらに実行しうる。
本発明の一つの実施態様において、上記コンピュータ・システムが、
上記管理ビュー上で、上記更新の更新リストを表示するステップ
をさらに実行することを含みうる。
本発明の一つの実施態様において、上記別の仮想NICを追加するステップが、
上記別の仮想NICを追加したクローン仮想マシンを起動し、当該別の仮想NICに未使用のIPアドレスを割り当てるステップ
をさらに含みうる。
本発明の一つの実施態様において、上記更新が、上記別の仮想NICに割り当てられたIPアドレスを使用して行われうる。
本発明の一つの実施態様において、上記クローン仮想マシンの仮想NICを無効にすることが、
当該仮想NICを上記ネットワークから切り離すこと、又は、
上記クローン仮想マシンを起動したときに、当該仮想NICが当該クローン仮想マシンのオペレーティング・システムによって認識されないようにすること
によって行われうる。
本発明の一つの実施態様において、上記無効にした仮想NICを有効にすることが、
当該無効にした仮想NICを上記ネットワークに接続すること、
当該無効にした仮想NICを追加すること、又は、
上記無効にした仮想NICが当該クローン仮想マシンのオペレーティング・システムによって認識されるようにすること
によって行われうる。
(本発明に従う第2の態様)
本発明に従う第2の態様において、仮想マシンのスナップショットに対して更新を自動的に適用する為のコンピュータ・システムは、
既存のスナップショットの状態と同一の状態を再現する仮想マシンのクローンを作成するクローン作成手段と、
上記クローンとして作成した仮想マシン(以下、クローン仮想マシンという)の仮想ネットワーク・インタフェース・カード(以下、仮想NICという)を無効にし、別の仮想NICを追加するクローン仮想マシン構成管理手段と、
上記別の仮想NICを追加したクローン仮想マシンに、ネットワーク経由で更新を適用する更新適用手段と
を備えており、
上記クローン仮想マシン構成管理手段が、上記更新を適用したクローン仮想マシンから上記別の仮想NICを削除して、上記無効にした仮想NICを有効にし、
上記コンピュータ・システムが、
上記仮想NICを有効にしたクローン仮想マシンのスナップショットを作成することによって、クローン元の仮想マシンのスナップショットを作成するスナップショット作成手段
をさらに備えている。
本発明の一つの実施態様において、上記クローン作成手段が、
上記既存のスナップショットに関連付けられた優先度に従って、
上記既存のスナップショットの又は上記既存のスナップショットに関連付けられたスナップショットの取得頻度若しくは利用頻度の制御情報に従って、又は、
上記既存のスナップショットの利用頻度若しくは利用時間、又は当該既存のスナップショットのスナップショット取得頻度に従って、
複数の既存のスナップショットのうちからクローン仮想マシンを作成する既存のスナップショットを選択しうる。
本発明の一つの実施態様において、上記優先度がユーザの指示により作成されたユーザ・スナップショットに付されていうる。
本発明の一つの実施態様において、上記コンピュータ・システムが、上記既存のスナップショットの利用頻度若しくは利用時間、又は当該既存のスナップショットのスナップショット取得頻度をモニターするモニター手段をさらに備えうる。
本発明の一つの実施態様において、上記既存のスナップショットが、ユーザの指示により作成されたユーザ・スナップショット又は上記クローン元の仮想マシンのスナップショットを作成することによって作成されたシステム・スナップショットでありうる。
本発明の一つの実施態様において、上記コンピュータ・システムがスナップショットを表示する管理ビュー表示手段をさらに備えており、クローン元の仮想マシンの上記既存のスナップショットが上記ユーザ・スナップショットであり、上記管理ビュー表示手段が、上記管理ビュー上で、上記ユーザ・スナップショットのクローン仮想マシンから作成されたシステム・スナップショットを上記クローン元の仮想マシンの上記ユーザ・スナップショットに関連付けて表示しうる。
本発明の一つの実施態様において、上記コンピュータ・システムがスナップショットを表示する管理ビュー表示手段をさらに備えており、クローン元の仮想マシンの上記既存のスナップショットが上記システム・スナップショットであり、上記管理ビュー表示手段が、上記管理ビュー上で、上記システム・スナップショットのクローン仮想マシンから作成されたシステム・スナップショットを上記クローン元の仮想マシンの上記システム・スナップショットに関連付けて表示しうる。
本発明の一つの実施態様において、上記コンピュータ・システムが、上記クローン元の仮想マシンのスナップショットを作成することによって作成された少なくとも2つのスナップショットをマージするスナップショット管理手段をさらに備えうる。
本発明の一つの実施態様において、上記スナップショット管理手段が、ユーザの指示により作成されたユーザ・スナップショットと上記クローン元の仮想マシンのスナップショットを作成することによって作成されたシステム・スナップショットとをグルーピングしうる。
本発明の一つの実施態様において、上記コンピュータ・システムがスナップショットを表示する管理ビュー表示手段をさらに備えており、当該管理ビュー表示手段は、上記スナップショット管理手段によってグルーピングされたスナップショットを前記管理ビュー上で、表示しうる。
本発明の一つの実施態様において、上記クローン作成手段が、上記グルーピングされたシステム・スナップショットが選択されることに応じて、当該グルーピングされたシステム・スナップショットのうちの最新のシステム・スナップショットの状態と同一の状態を再現する仮想マシンのクローンを作成しうる。
本発明の一つの実施態様において、上記スナップショット管理手段が、上記グルーピングされたスナップショットのうちの最新でない1又は複数のシステム・スナップショットを最新のシステム・スナップショットにマージし、上記最新でない1又は複数のシステム・スナップショットを削除しうる。
本発明の一つの実施態様において、上記管理ビュー提供手段が、上記グルーピングしたスナップショット群の一つが選択されることに応じて、上記グルーピングしたスナップショット群に属するスナップショットを表示しうる。
本発明の一つの実施態様において、上記コンピュータ・システムが、上記管理ビュー上で、上記更新の更新リストを表示する更新リスト表示手段をさらに備えうる。
本発明の一つの実施態様において、上記クローン仮想マシン構成管理手段が、上記別の仮想NICを追加したクローン仮想マシンを起動し、当該別の仮想NICに未使用のIPアドレスを割り当てうる。
本発明の一つの実施態様において、上記更新適用手段が、上記更新を、上記別の仮想NICに割り当てられたIPアドレスを使用して行いうる。
本発明の一つの実施態様において、上記クローン仮想マシン構成管理手段が、上記クローン仮想マシンの仮想NICを無効にすることを、当該仮想NICを上記ネットワークから切り離すこと、又は、上記クローン仮想マシンを起動したときに、当該仮想NICが当該クローン仮想マシンのオペレーティング・システムによって認識されないようにすることによって行いうる。
本発明の一つの実施態様において、上記クローン仮想マシン構成管理手段が、上記無効にした仮想NICを有効にすることを、当該無効にした仮想NICを上記ネットワークに接続すること、当該無効にした仮想NICを追加すること、又は、上記無効にした仮想NICが当該クローン仮想マシンのオペレーティング・システムによって認識されるようにすることによって行いうる。
(本発明に従う第3の態様)
本発明に従う第3の態様において、仮想マシンのスナップショットに対して更新を自動的に適用する為のコンピュータ・システム用プログラム又はコンピュータ・システム用プログラム製品は、コンピュータ・システムに、本発明に従う上記第1の態様の各ステップを実行させる。
本発明の実施態様に従うコンピュータ・システム用プログラムは、一つ又は複数のフレキシブル・ディスク、MO、CD−ROM、DVD、BD、ハードディスク装置、USBに接続可能なメモリ媒体、ROM、MRAM、RAM等の任意のコンピュータ読み取り可能な記録媒体に格納することができる。当該コンピュータ・システム用プログラムは、上記記録媒体への格納のために、通信回線で接続する他のコンピュータ、例えばサーバ・コンピュータからダウンロードしたり、又は他の記録媒体から複製したりすることができる。また、本発明の実施態様に従うコンピュータ・システム用プログラムは、圧縮し、又は複数に分割して、単一又は複数の記録媒体に格納することもできる。また、様々な形態で、本発明の実施態様に従うコンピュータ・システム用プログラム製品を提供することも勿論可能であることにも留意されたい。本発明の実施態様に従うコンピュータ・システム用プログラム製品は、例えば、上記コンピュータ・システム用プログラムを記録した記憶媒体、又は、上記コンピュータ・システム用プログラムを伝送する伝送媒体を包含しうる。
本発明の上記概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの構成要素のコンビネーション又はサブコンビネーションもまた、本発明となりうることに留意すべきである。
本発明の実施態様において使用されるコンピュータ・システムの各ハードウェア構成要素を、複数のマシンと組み合わせ、それらに機能を配分し実施する等の種々の変更は当業者によって容易に想定され得ることは勿論である。それらの変更は、当然に本発明の思想に包含される概念である。ただし、これらの構成要素は例示であり、そのすべての構成要素が本発明の必須構成要素となるわけではない。
また、本発明は、ハードウェア、ソフトウェア、又は、ハードウェア及びソフトウェアの組み合わせとして実現可能である。ハードウェアとソフトウェアとの組み合わせによる実行において、上記コンピュータ・システム用プログラムのインストールされたコンピュータ・システムにおける実行が典型的な例として挙げられる。かかる場合、当該コンピュータ・システム用プログラムが当該コンピュータ・システムのメモリにロードされて実行されることにより、当該コンピュータ・システム用プログラムは、当該コンピュータ・システムを制御し、本発明に係る処理を実行させる。当該コンピュータ・システム用プログラムは、任意の言語、コード、又は、表記によって表現可能な命令群から構成されうる。そのような命令群は、当該コンピュータ・システムが特定の機能を直接的に、又は、1.他の言語、コード若しくは表記への変換及び、2.他の媒体への複製、のいずれか一方若しくは双方が行われた後に、本発明の実施態様に従う処理を実行することを可能にするものである。
本発明の実施態様に従うと、利用者が任意のタイミングで取得したスナップショットの全てに対して自動的に更新が適用される為に、最新の更新が適用されていないスナップショットに基づく仮想マシンが稼働することになるという状況や最新の更新が適用されないでうっかり長期間稼働したままになるという状況を防止することが可能になる。特に、スナップショットを使って頻繁に仮想マシンの状態が変わりうるような運用環境において、最新の更新が適用されていないスナップショットに基づく仮想マシンが稼働することになるという上記状況やや最新の更新が適用されないでうっかり長期間稼働したままになるという上記状況を防止することは有用である。
また、本発明の実施態様に従うと、一つの仮想マシンに対して複数のスナップショットが存在する場合に、当該複数のスナップショットそれぞれに対して更新が自動的に適用される為に、適用コストを削減することが可能になる。
また、本発明の実施態様に従うと、仮想マシンを稼働中のまま、当該仮想マシンの現在の状態の元になっているスナップショット(即ち、現在稼働中の仮想マシンの元になっている状態を記録したスナップショット)以外のスナップショットに対して更新を適用することが可能である為に、当該仮想マシン上で運用中のサービスを停止する必要がない。
また、本発明の実施態様に従うと、スナップショットに関連付けられた優先度の違い、当該スナップショットの利用頻度若しくは利用時間の違い、又は既存のスナップショットのスナップショット取得頻度の違いがあった場合を考慮した更新の適用が可能である為に、利用者が多量にスナップショットを取得していた場合であっても優先順位をつけて更新の適用を行うことが可能になる。
また、本発明の実施態様に従うと種々の更新に対して本発明を適用することが可能であり、例えばWindows(登録商標) Update、yum install、若しくはセキュリティ・ソフトウェア(例えば、ウィルス対策ソフトウェアを含む)の定義ファイル更新などのネットワーク経由での更新の適用だけでなく、ユーザによって手動で行われているようなその他のソフトウェアの更新作業も当該更新作業をスクリプトにすることによって適用可能である。
本発明の実施態様において使用されうるコンピュータ・システム又は本発明の実施態様に従うコンピュータ・システムの一例を示した図である。 本発明の実施態様において使用されうるコンピュータ・システム又は本発明の実施態様に従うコンピュータ・システムの一例であって、当該コンピュータ・システム上で1又は複数の仮想マシンを稼働させる場合を示した図である。 本発明の実施態様に従い、既存のスナップショットのクローン仮想マシンを作成し、当該クローン仮想マシンに更新を適用して、当該更新が適用されたスナップショットを作成することによって、クローン元の仮想マシンのスナップショットを作成するまでの処理を説明する為の図である。 本発明の実施態様に従い、既存のスナップショットのクローン仮想マシンを作成し、当該クローン仮想マシンに更新を適用して、当該更新が適用されたスナップショットを作成することによって、クローン元の仮想マシンのスナップショットを作成するまでの処理を説明する為の図である。 本発明の実施態様に従い、図2Aで使用した既存のスナップショットと異なる既存のスナップショットのクローン仮想マシンを作成し、図2A及び図2Bに示す処理と同様に処理して、クローン元の仮想マシンのスナップショットを作成するまでの処理を説明する為の図である。 本発明の実施態様に従い、図2Aで使用した既存のスナップショットと異なる既存のスナップショットのクローン仮想マシンを作成し、図2A及び図2Bに示す処理と同様に処理して、クローン元の仮想マシンのスナップショットを作成するまでの処理を説明する為の図である。 本発明の実施態様において、特定のユーザ・スナップショットから作成された一連のシステム・スナップショットのうち、中間にあるシステム・スナップショットを削除する処理を説明する為の図である。 本発明の実施態様において、ユーザの指示により作成されたユーザ・スナップショットとクローン元の仮想マシンのスナップショットを作成することによって作成されたシステム・スナップショットとをグルーピングし、当該グルーピングしたスナップショットを管理ビュー上で表示する態様を説明する為の図である。 本発明の実施態様において、特定のユーザ・スナップショットと当該特定のユーザ・スナップショットから派生して作成された一連のシステム・スナップショットとをグルーピングする処理を説明する為の図である。 本発明の実施態様において、特定のユーザ・スナップショットと当該特定のユーザ・スナップショットから派生して作成された一連のシステム・スナップショットとをグルーピングして、スナップショット群として表示したビュー画面を説明する為の図である。 本発明の実施態様において、ビュー画面上で特定のスナップショット群を選択した場合に、当該選択されたスナップショット群に属するユーザ・スナップショット及び、システム・スナップショットがある場合には当該システム・スナップショットを表示するビュー画面を説明する為の図である。 本発明の実施態様において、ビュー画面上で特定のスナップショット上に例えばマウス・カーソル又は操作指を置いた場合に、当該スナップショットの更新リストを表示するビュー画面を説明する為の図である。 本発明の実施態様において、稼働中の仮想マシンのスナップショットを、当該稼働中の仮想マシンに負荷を掛けないようにしてコピーする処理を説明する為の図である。 本発明の実施態様において、稼働中の仮想マシンのスナップショットを、当該稼働中の仮想マシンに負荷を掛けないようにしてコピーする処理を説明する為の図である。 本発明の実施態様において、クローン仮想マシンに、ネットワーク経由で更新を適用する処理を説明する為の図である。 本発明の実施態様において、既存のスナップショットに対して更新を自動的に適用する処理の為のフローチャートを示す。 図1A又は図1Bに従うハードウェア構成を好ましくは備えており、本発明の実施態様に従い、仮想マシンのスナップショットに対して更新を自動的に適用する処理の為のコンピュータ・システムであって、一つのサーバ・コンピュータを備えている当該コンピュータ・システムの機能ブロック図の一例を示した図である。 図1A又は図1Bに従うハードウェア構成を好ましくは備えており、本発明の実施態様に従い、仮想マシンのスナップショットに対して更新を自動的に適用する処理の為のコンピュータ・システムであって、複数のサーバ・コンピュータを備えている当該コンピュータ・システムの機能ブロック図の一例を示した図である。
本発明の実施形態を、以下に図面に従って説明する。以下の図を通して、特に断らない限り、同一の符号は同一の対象を指す。本発明の実施形態は、本発明の好適な態様を説明するためのものであり、本発明の範囲をここで示すものに限定する意図はないことを理解されたい。
まず、本発明において使用する語について、以下に説明する。
本発明の実施態様において、「スナップショット」とは、上記したとおり、ある時点での仮想マシンの状態(例えば、ディスク、中央演算処理装置(CPU)、メモリ、ネットワーク・インタフェース・カード(NIC))を保存するための静的な(すなわち、データの内容が変化しない)データ集合であり、必要に応じて、当該ある時点での保存された状態に仮想マシンを戻すことを可能にする技術において使用されるデータである。
あるスナップショットは、一つ前のスナップショットからの差分情報のみが格納されているデータの集合である。また、取得済みの(すなわち、既存の)スナップショットに対して、スナップショット復元時の仮想マシンの状態が変わるような変更が加わることはない。ただし、複数のスナップショットのうちの1又は複数のスナップショットが削除された場合に、当該削除されたスナップショットが持つ差分情報が、当該削除されたスナップショットの一つ先のスナップショットにマージされることはある。しかし、当該差分情報のマージによって、当該差分情報がマージされた上記一つ先のスナップショットを使って復元したときの仮想マシンの状態が変わるものではない。
上記の点を踏まえると、スナップショットは或る時点の仮想マシンの状態を保存するための静的なデータ集合である為に、たとえ仮想マシンが稼働中であっても当該稼働中の仮想マシンのスナップショットに基づいてデータをコピーすることによって新たな仮想マシンを作成すること(すなわち、クローニングすること)が可能である。
本発明の実施態様において、「既存のスナップショット」とは、ユーザ・スナップショット又はシステム・スナップショットを包含する。
本発明の実施態様において、「ユーザ・スナップショット」とは、仮想システムの利用者又は管理者(以下、ユーザともいう)の指示によって作成された稼働中の仮想マシンのスナップショットをいう。
本発明の実施態様において、「システム・スナップショット」とは、上記「ユーザ・スナップショット」に基づいて作成された1世代目のスナップショット又は、当該「システム・スナップショット」に基づいてさらに作成されたn世代目の(nは2以上の整数)スナップショットをいう。
本発明の実施態様において、「更新」とは、アップデート又はフィックスとも呼ばれうる。当該更新は例えば、プログラム更新又はセキュリティ更新を含みうる。プログラム更新又はセキュリティ更新は例えば、Windows(登録商標) Update、yum install、若しくはセキュリティ・ソフトウェア(例えば、ウィルス対策ソフトウェアを含む)の定義ファイル更新などのネットワーク経由での更新の適用、又は、ユーザによって手動で行われているようなその他のソフトウェアの更新作業をスクリプトにした更新を含みうる。
図1Aは、本発明の実施態様において使用されうるコンピュータ・システム又は本発明の実施態様に従うコンピュータ・システムの一例を示した図である。当該コンピュータ・システム(121)は例えば、1又は複数のコンピュータ、例えば1又は複数のサーバ・コンピュータ(例えば、サーバ機能を備えているコンピュータであればよい)でありうるが、これらに制限されるものではない。
コンピュータ・システム(101)は、1又は複数のCPU(102)とメイン・メモリ(103)とを備えており、これらはバス(104)に接続されている。CPU(102)は例えば、32ビット又は64ビットのアーキテクチャに基づくものである。当該CPU(102)は例えば、インターナショナル・ビジネス・マシーンズ・コーポレーションのPower(商標)シリーズ、インテル社のXeon(登録商標)シリーズ、Core(商標) iシリーズ、Core(商標) 2シリーズ、Pentium(登録商標)シリーズ、Celeron(登録商標)シリーズ若しくはAtom(商標)シリーズ、又は、AMD(Advanced Micro Devices)社のOpteron(商標)シリーズ、Aシリーズ、Phenom(商標)シリーズ、Athlon(商標)シリーズ、Turion(登録商標)シリーズ若しくはSempron(商標)でありうる。
バス(104)には、ディスプレイ・コントローラ(105)を介して、ディスプレイ(106)、例えば液晶ディスプレイ(LCD)が接続されうる。また、液晶ディスプレイ(LCD)は例えば、タッチパネル・ディスプレイ又はフローティング・タッチ・ディスプレイであてもよい。ディスプレイ(106)は、コンピュータ・システム(101)上で動作中のソフトウェア(例えば、本発明の実施態様に従うコンピュータ・システム用プログラム又は当該コンピュータ・システム(101)上で動作中の任意の各種コンピュータ・システム用プログラム(例えば、仮想環境を実現するためのプログラム)が稼働することによって表示されるオブジェクトを、適当なグラフィック・インタフェースで表示するために使用されうる。また、ディスプレイ(106)は例えば、本発明の実施態様に従う管理ビューの画面を出力しうる。
バス(104)には任意的に、例えばSATA又はIDEコントローラ(107)を介して、ディスク(108)、例えばハードディスク又はソリッド・ステート・ドライブ(SSD)が接続されうる。
バス(104)には任意的に、例えばSATA又はIDEコントローラ(107)を介して、ドライブ(109)、例えばCD、DVD又はBDドライブが接続されうる。
バス(104)には、周辺装置コントローラ(110)を介して、例えばキーボード・マウス・コントローラ又はUSBバスを介して、任意的に、キーボード(111)及びマウス(112)が接続されうる。
ディスク(108)には、オペレーティング・システム、例えばメインフレーム用に開発されたオペレーティング・システム(例えば、z/OS、z/VM、若しくはz/VSE)、Windows(登録商標)、UNIX(登録商標)、Linux(登録商標)MacOS(登録商標)、及びAndroid(登録商標)、並びにJ2EEなどのJava(登録商標)処理環境、Java(登録商標)アプリケーション、Java(登録商標)仮想マシン(VM)、Java(登録商標)実行時(JIT)コンパイラを提供するプログラム、本発明の実施態様に従うコンピュータ・システム用プログラム、及びその他の任意の各種コンピュータ・システム用プログラム、並びにデータが、メイン・メモリ(103)にロード可能なように記憶されうる。
また、ディスク(108)には例えば、仮想マシンのスナップショットに対して更新を自動的に適用する為のコンピュータ・システム用プログラムが、メイン・メモリ(103)にロード可能なように記憶されうる。
ディスク(108)は、コンピュータ・システム(101)内に内蔵されていてもよく、当該コンピュータ・システム(101)がアクセス可能なようにケーブルを介して接続されていてもよく、又は、当該コンピュータ・システム(101)がアクセス可能なように有線又は無線ネットワークを介して接続されていてもよい。
ドライブ(109)は、必要に応じて、CD−ROM、DVD−ROM又はBDからプログラム、例えばオペレーティング・システム、アプリケーション・プログラム又は本発明の実施態様に従うコンピュータ・システム用プログラムをディスク(108)にインストールするために使用されうる。
通信インタフェース(114)は、例えばイーサネット(登録商標)・プロトコルに従う。通信インタフェース(114)は、通信コントローラ(113)を介してバス(104)に接続され、コンピュータ・システム(101)を通信回線(115)に有線又は無線接続する役割を担い、コンピュータ・システム(101)のオペレーティング・システムの通信機能のTCP/IP通信プロトコルに対して、ネットワーク・インタフェース層を提供する。なお、通信回線は例えば、無線LAN接続規格に基づく無線LAN環境、IEEE802.11a/b/g/nなどのWi-Fi無線LAN環境、又は携帯電話網環境(例えば、3G、LTE又は4G環境)でありうる。
図1Bは、本発明の実施態様において使用されうるコンピュータ・システム又は本発明の実施態様に従うコンピュータ・システムの一例であって、当該コンピュータ・システム上で1又は複数の仮想マシンを稼働させる場合を示した図である。当該コンピュータ・システム(121)は例えば、ワークステーション、ラックマウント型サーバ、ブレード型サーバ、ミッドレンジ、メインフレームなどのコンピュータ装置として構成されうる。
図1Bに示すコンピュータ・システム(121)は、ハードウェア・リソース(122)として、1又は複数のCPU(131)、メイン・メモリ(132)、ストレージ(133)、通信コントローラ(134)、及び通信インタフェース(135)を備えうる。上記1又は複数のCPU(131)、メイン・メモリ(132)、ストレージ(133)、通信コントローラ(134)、及び通信インタフェース(135)並びに通信回線(136)はそれぞれ、図1Aに示すコンピュータ・システム(101)の1又は複数のCPU(102)、メイン・メモリ(103)、ディスク(108)、通信コントローラ(113)、及び通信インタフェース(114)、並びに通信回線(115)それぞれに対応しうる。
また、コンピュータ・システム(121)は、物理ホストマシンとして稼働し、また、仮想化ソフトウェア(例えば、VMWare(登録商標)、Hyper−V(登録商標)、Xen(登録商標))のハイパーバイザ(仮想化モニター又は仮想化OSとも呼ばれる)(123)上で、同一の又は異なるOS(例えば、Windows(登録商標)、UNIX(登録商標)、Linux(登録商標))をゲストOS(156)とした1又は複数の仮想マシン1〜n(125−1〜125−2)(ドメインU又はチャイルド・パーティションとも呼ばれる)を稼働させることが可能である。
また、コンピュータ・システム(121)は、上記ハイパーバイザ(123)上で、管理用仮想マシン(124)(ドメイン0又はペアレント・パーティションとも呼ばれる)を稼働させることが可能である。管理用仮想マシン(124)は、管理用OS(141)、当該管理用OS(141)上で動作する制御モジュール(142)、及び仮想リソース(143)を含む。制御モジュール(142)は、ハイパーバイザ(123)に対しコマンドを発行するモジュールである。また、制御モジュール(142)は、ハイパーバイザ(123)に対して、ユーザドメインの仮想マシン1〜n(125−1〜125−2)の作成、及びゲストOS(156)の起動の命令を発行し、仮想マシン1〜n(125−1〜125−2)の動作を制御する。仮想リソース(143)は、管理用仮想マシン(124)の為に割り当てられたハードウェア・リソース(122)である。
仮想マシン1〜n(125−1〜125−2)は、仮想リソース、ゲストOS(156)、及び、ゲストOS(156)上で動作する種々のアプリケーション1〜n(157−1〜157−3)を含む。仮想リソースは例えば、仮想CPU(151)、仮想メモリ(152)、仮想ディスク(153)、仮想通信コントローラ(154)及び仮想通信インタフェース(155)を含む。
以下において、コンピュータ・システム(121)と記載する場合には、図1Bに示すコンピュータ・システム(121)の代わりに、図1Aに示すコンピュータ・システム(101)であってもよいことを理解されたい。
図2A〜図2Dは、本発明の実施態様に従い、既存のスナップショットのクローン仮想マシンを作成し、当該クローン仮想マシンに更新を適用して、当該更新が適用されたスナップショットを作成することによって、クローン元の仮想マシンのスナップショットを作成するまでの処理、並びに、当該処理を繰り返す処理を説明する為の図である。
図2A及び図2Bは、本発明の実施態様に従い、既存のスナップショットのクローン仮想マシンを作成し、当該クローン仮想マシンに更新を適用して、当該更新が適用されたスナップショットを作成することによって、クローン元の仮想マシンのスナップショットを作成するまでの処理を説明する為の図である。
図2Aの上段に示すユーザ・スナップショットA(211)、ユーザ・スナップショットB(221)、及びユーザ・スナップショットC(231)はそれぞれユーザが現在稼働中の仮想マシン(241)のユーザ・スナップショット(既存のスナップショットである)である。
コンピュータ・システム(121)は、複数の仮想マシンを稼働可能なサーバ・コンピュータであり、現在或る仮想マシンを稼働中であるとする。
コンピュータ・システム(121)は、ユーザからのスナップショット作成の指示によって、当該指示の時点Aでの稼働中の上記仮想マシンのユーザ・スナップショットA(211)を作成する。スナップショットA(211)は、上記時点Aでの状態を保持するデータ(211s)を有する。当該データ(211s)は静的データであり、他のデータとのマージによる変更を除いて変更されない。
コンピュータ・システム(121)は、引き続き、ユーザからのスナップショット作成の更なる指示によって、当該指示の時点Bでの稼働中の上記仮想マシンのユーザ・スナップショットB(221)を作成する。ユーザ・スナップショットB(221)は、上記時点Bでの状態から上記時点Aでの状態の差分データB−Aを保持するデータ(221s)を有する。当該データ(221s)は静的データであり、他のデータとのマージによる変更を除いて変更されない。
コンピュータ・システム(121)は、引き続き、ユーザからのスナップショット作成の更なる指示によって、当該指示の時点Cでの稼働中の上記仮想マシンのユーザ・スナップショットC(231)を作成する。ユーザ・スナップショットC(231)は、上記時点Cでの状態から上記時点Bでの状態の差分データC−Bを保持するデータ(231s)を有する。当該データ(231s)は静的データであり、他のデータとのマージによる変更を除いて変更されない。
また、コンピュータ・システム(121)は、現在稼働中の仮想マシン(241)での状態から上記時点Cでの状態の差分データ(241s)を随時更新する。
以下に、既存のスナップショットであるユーザ・スナップショットA、B及びC(211、221及び231)のクローン仮想マシンを作成し、当該クローン仮想マシンに更新を適用して、当該更新が適用されたスナップショットを作成することによって、クローン元の仮想マシンのスナップショットを作成するまでの処理を説明する。
コンピュータ・システム(121)は、ユーザ・スナップショットに対して更新を自動的に適用する処理の為に、各ユーザ・スナップショットA、B及びC(211、221及び231)の各利用頻度や各利用時間をモニター(監視)している。コンピュータ・システム(121)は、各ユーザ・スナップショットA、B及びC(211、221及び231)の各利用頻度が、ユーザ・スナップショットA(211)、ユーザ・スナップショットB(221)、そしてユーザ・スナップショットC(231)の順序にあることを上記モニター結果より取得する。
ステップ291において、コンピュータ・システム(121)は、例えばユーザのアクション(例えば、ユーザからのシステム・スナップショット作成の指示)に応答して、利用頻度が最も高いユーザ・スナップショットA(211)を読み出して、当該ユーザ・スナップショットA(211)の状態と同一の状態を再現する仮想マシンのクローン(以下、クローン仮想マシンともいう)を作成する。コンピュータ・システム(121)は、当該クローンを、ユーザ・スナップショットA(211)の状態を保持するデータ(211s)に基づいて作成する。
ステップ292において、コンピュータ・システム(121)は、上記クローン仮想マシンの仮想ネットワーク・インタフェース・カード(以下、仮想NICともいう)を無効にし、新しい別の仮想NICを追加する。仮想NICを無効にし、別の仮想NICを追加する理由は、以下の通りである。上記クローン仮想マシンをそのまま起動すると、クローン元の仮想マシンが既に利用しているIPアドレスがそのまま上記クローン仮想マシンに割り当てられているので、IPアドレスが稼働中の仮想マシンと上記クローン仮想マシンとの間で重複してしまう。その為に、上記クローン仮想マシンをそのまま起動しても、これをそのまま利用することはできない。IPアドレスを変更することは仮想マシンの構成変更になり、従ってスナップショットに反映されてしまうことから、IPアドレスの変更が行われてはならない。仮想マシンはそもそも仮想ハードウェア(例えば、仮想CPU、仮想メモリ及び仮想NIC)を比較的容易に追加することができる。その為に、コンピュータ・システム(121)は、元々接続されていた仮想NICを、IPアドレスを変更せずに無効にし(すなわち、仮想NICを削除しない)、その代わりに、上記別の仮想NICを上記クローン仮想マシンに追加する。当該無効にすることは例えば、元々接続されていた仮想NICをネットワークから切り離すこと、又は、上記クローン仮想マシンを起動したときに元々接続されていた仮想NICが上記クローン仮想マシンのオペレーティング・システムによって認識されないようにすることによって行われうる。
引き続き、コンピュータ・システム(121)は、上記クローン仮想マシンに追加した上記別の仮想NICに未使用のIPアドレスを割り当てる。なお、未使用のIPアドレスの割り当ては、下記ステップ293における上記クローン仮想マシンの起動後に行ってもよい。
ステップ293において、コンピュータ・システム(121)は、上記クローン仮想マシンを起動する。
コンピュータ・システム(121)は、ステップ292において上記クローン仮想マシンに追加した上記別の仮想NICに未使用のIPアドレスが割り当てられていない場合には、上記別の仮想NICに未使用のIPアドレスを割り当てる。
引き続き、コンピュータ・システム(121)は、起動中の上記クローン仮想マシンに対して、ネットワーク経由で更新を適用する。当該更新はフィックスといわれるもの、例えば、例えばWindows(登録商標) Update、yum install、若しくはセキュリティ・ソフトウェア(例えば、ウィルス対策ソフトウェアを含む)の定義ファイル更新、又は、ユーザによって手動で行われているようなその他のソフトウェアの更新(例えば、当該ソフトウェアの更新をスクリプトで行うようにしているもの)でありうる。また、コンピュータ・システム(121)は、上記更新を、起動中の上記クローン仮想マシンに対して割り当てられたIPアドレスを使用して行いうる。
ステップ294において、コンピュータ・システム(121)は、上記更新が終了することに応じて、更新リストを作成する。コンピュータ・システム(121)は、当該更新リストを例えば、更新のリスト取得コマンド(例えば、Windows(登録商標)の組み込みコマンド、Linux(登録商標)のyumコマンド)を発行することによって取得しうる。更新リストは例えば、更新対象のソフトウェア名、更新プログラムの識別番号(例えば、バージョン)、更新プログラムの発行元、更新プログラムの発行日時、若しくは更新プログラムの適用日時(インストール日時)、又はそれらの組み合わせを含みうる。更新リストは例えば、管理ビュー上で表示されうる。
引き続き、コンピュータ・システム(121)は、起動中の上記クローン仮想マシンを停止する。そして、コンピュータ・システム(121)は、上記追加した別の仮想NICを無効にし、ステップ292又はステップ293において当該クローン仮想マシンに割り当てられた上記IPアドレスを解放する。
また、コンピュータ・システム(121)は、無効にした元々接続されていた仮想NICを有効にする。当該有効にすることは例えば、上記無効にした仮想NICをネットワークに接続すること、上記無効にした仮想NICを追加すること、又は、上記無効にした仮想NICが当該クローン仮想マシンのオペレーティング・システムによって認識されるようにすることによって行われうる。
ステップ295において、コンピュータ・システム(121)は、上記更新が適用された上記クローン仮想マシンのシステム・スナップショットA1(212)を取得する。当該システム・スナップショットA1(212)は、システム・スナップショットA1(212)を作成時の時点A1での状態から上記時点Aでの状態の差分データA1−Aを保持するデータ(212s)を有する。当該データ(212s)は静的データであり、他のデータとのマージによる変更を除いて変更されない。
ステップ296において、コンピュータ・システム(121)は、ステップ295で作成したシステム・スナップショットA1(212)を、クローン元であるユーザ・スナップショットA(211)のシステム・スナップ・ショット(212)として登録する。すなわち、コンピュータ・システム(121)は、クローン元であるユーザ・スナップショットA(211)から派生する形(例えば、枝として繋がる形で)で作成したシステム・スナップショットA1(212)を登録する。
図2Cは、本発明の実施態様に従い、図2Aで使用した既存のスナップショット(ユーザ・スナップショットA(211))と異なる既存のスナップショット(ユーザ・スナップショットC(231))のクローン仮想マシンを作成し、図2Aに示す処理と同様に処理して、クローン元の仮想マシンのスナップショットを作成するまでの処理を説明する為の図である。
ステップ297において、コンピュータ・システム(121)は、利用頻度がユーザ・スナップショットA(211)の次に高いユーザ・スナップショットC(231)を読み出して、当該ユーザ・スナップショットC(231)の状態と同一の状態を再現する仮想マシンのクローン(クローン仮想マシン)を作成し上記ステップ292〜296と同様に処理し、そして作成したシステム・スナップショットC1(232)を、クローン元であるユーザ・スナップショットC(231)のシステム・スナップショットC1(232)として登録する。すなわち、コンピュータ・システム(121)は、クローン元であるユーザ・スナップショットC(231)から派生する形(例えば、枝として繋がる形で)で作成したシステム・スナップショットC1(232)を登録する。当該システム・スナップショットC1(232)は、システム・スナップショットC1(232)を作成時の時点C1での状態から上記時点Cでの状態の差分データC1−Cを保持するデータ(232s)を有する。当該データ(232s)は静的データであり、他のデータとのマージによる変更を除いて変更されない。
図2Dは、本発明の実施態様に従い、図2Aで使用した既存のスナップショット(ユーザ・スナップショットA(211))と異なる既存のスナップショット(ユーザ・スナップショットB(221))のクローン仮想マシンを作成し、図2Aに示す処理と同様に処理して、クローン元の仮想マシンのスナップショットを作成するまでの処理を説明する為の図である。
ステップ298において、コンピュータ・システム(121)は、利用頻度がユーザ・スナップショットC(231)の次に高いユーザ・スナップショットB(221)を読み出して、当該ユーザ・スナップショットB(221)の状態と同一の状態を再現する仮想マシンのクローン(クローン仮想マシン)を作成し上記ステップ292〜296と同様に処理し、そして作成したシステム・スナップショットB1(222)を、クローン元であるユーザ・スナップショットB(221)のシステム・スナップショットB1(222)として登録する。すなわち、コンピュータ・システム(121)は、クローン元であるユーザ・スナップショットB(221)から派生する形(例えば、枝として繋がる形で)で作成したシステム・スナップショットB1(222)を登録する。当該システム・スナップショットB1(222)は、システム・スナップショットB1(222)を作成時の時点B1での状態から上記時点Bでの状態の差分データB1−Bを保持するデータ(222s)を有する。当該データ(222s)は静的データであり、他のデータとのマージによる変更を除いて変更されない。
以上のようにして、複数のユーザ・スナップショットそれぞれについて、更新が適用されたシステム・スナップショットを作成することが可能になる。また、複数のユーザ・スナップショットそれぞれについて、どのユーザ・スナップショットからのシステム・スナップショットを作成するかをユーザ・スナップショットそれぞれの利用頻度や利用時間に基づいて優先順位付けすることが可能である。
そして、更新が適用されたシステム・スナップショットに基づいて仮想マシンを起動することによって、当該更新が適用された仮想マシンを稼働することが可能になる。
図3は、本発明の実施態様において、特定のユーザ・スナップショットから作成された一連のシステム・スナップショットのうち、中間にあるシステム・スナップショットを削除する処理を説明する為の図である。
図3の左図に示すツリー(301)は、図2A及び図2Bに示した処理方法と同様にして、クローン元であるユーザ・スナップショットA(311)からシステム・スナップショットA1(312)を作成し、次に、システム・スナップショットA1(312)からシステム・スナップショットA2(313)を作成し、次に、システム・スナップショットA2(313)からシステム・スナップショットA3(313)を作成した様子を示す。すなわち、ユーザ・スナップショットA(311)から派生する形で、システム・スナップショットA1(312)、システム・スナップショットA2(313)、そしてシステム・スナップショットA2(313)を作成した様子を示す。
システム・スナップショットA(311)は、当該システム・スナップショットA(311)を作成時の時点Aでの状態を保持するデータ(311s)を有する。当該データ(311s)は静的データであり、他のデータとのマージによる変更を除いて変更されない。
ユーザ・スナップショットA1(312)は、当該ユーザ・スナップショットA1(312)を作成時の時点A1での状態から上記時点Aでの状態の差分データA1−Aを保持するデータ(312s)を有する。当該データ(312s)は静的データであり、他のデータとのマージによる変更を除いて変更されない。
ユーザ・スナップショットA2(313)は、当該ユーザ・スナップショットA2(313)を作成時の時点A2での状態から上記時点A1での状態の差分データA2−A1を保持するデータ(313s)を有する。当該データ(313s)は静的データであり、他のデータとのマージによる変更を除いて変更されない。
ユーザ・スナップショットA3(314)は、当該ユーザ・スナップショットA3(314)を作成時の時点A3での状態から上記時点A2での状態の差分データA3−A2を保持するデータ(314s)を有する。当該データ(314s)は静的データであり、他のデータとのマージによる変更を除いて変更されない。
コンピュータ・システム(121)は、システム・スナップショットA1〜A3(312〜314)中、ユーザが必要としない場合(例えば、利用頻度や利用時間が低い場合)には、ユーザ・スナップショットA(311)と最新のシステム・スナップショットA3(314)との間にある中間のシステム・スナップショットA1(312)及びシステム・スナップショットA2(313)を削除して、システム・スナップショットA3(314)にマージする。
コンピュータ・システム(121)は、システム・スナップショットA1(312)及びシステム・スナップショットA2(313)を削除する為に、これらシステム・スナップショットA1(312)及びシステム・スナップショットA2(313)の差分データをシステム・スナップショットA3(314)の差分データに統合する。
図3の右図に示すツリー(302)は、上記マージ後のシステム・スナップショットA3(351)を示す。マージ後のシステム・スナップショットA3(351)は、差分データA3−Aを保持するデータ(351s)を有する。当該データ(351s)は静的データであり、他のデータとのマージによる変更を除いて変更されない。
上記マージ後のシステム・スナップショットA3(351)のデータ(351s)は、マージ前のシステム・スナップショットA3(314)のデータ(314s)に、マージ前のシステム・スナップショットA1(312)のデータ(312s)及びシステム・スナップショットA2(313)のデータ(313s)が統合されたものである。
上記のように中間のシステム・スナップショットを削除して、他のシステム・スナップショット(例えば、最新のシステム・スナップショット)とマージすることによって、システム・スナップショットの数が膨大になることを防ぐことが可能になる。
図4は、本発明の実施態様において、ユーザの指示により作成されたユーザ・スナップショットとクローン元の仮想マシンのスナップショットを作成することによって作成されたシステム・スナップショットとをグルーピングし、当該グルーピングしたスナップショットを管理ビュー上で表示する態様を説明する為の図である。
図4に示す管理ビュー(491)は、現在稼働中の仮想システム(410)のスナップショット(ユーザ・スナップショット及びシステム・スナップショットを含む)の集合を示す。
ユーザ・スナップショットA(411)、ユーザ・スナップショットB(421)、ユーザ・スナップショットC(431)、ユーザ・スナップショットD(441)及びユーザ・スナップショットE(451)は、この順に、ユーザからのスナップショット作成の指示によって作成されたものである。
下記ツリー(401)、ツリー(402)、ツリー(403)、ツリー(404)及びツリー(405)はそれぞれ、上記したユーザ・スナップショットA(411)、ユーザ・スナップショットB(421)、ユーザ・スナップショットC(431)、ユーザ・スナップショットD(441)及びユーザ・スナップショットE(451)を由来とするスナップショット群を示す。各スナップショット群はユーザ・スナップショットを起源とするスナップショットの履歴図である。
ツリー(401)は、クローン元であるユーザ・スナップショットA(411)からシステム・スナップショットA1(412)を作成し、次に、システム・スナップショットA1(412)からシステム・スナップショットA2(413)を作成し、次に、システム・スナップショットA2(413)からシステム・スナップショットA3(414)を作成した様子を示す。
ツリー(402)は、クローン元であるユーザ・スナップショットB(421)からシステム・スナップショットB1(422)を作成し、次に、システム・スナップショットB1(422)からシステム・スナップショットB2(423)を作成し、次に、システム・スナップショットB2(423)からシステム・スナップショットB3(424)を作成した様子を示す。
ツリー(403)は、クローン元であるユーザ・スナップショットC(431)からシステム・スナップショットC1を(432)作成した様子を示す。
ツリー(404)は、クローン元であるユーザ・スナップショットD(441)からシステム・スナップショットD1(442)を作成し、次に、システム・スナップショットD1(442)からシステム・スナップショットD2(443)を作成した様子を示す。
ツリー(405)は、ユーザ・スナップショットE(451)を示す。
スナップショットはユーザ・スナップショットとシステム・ショットとに大別できるために、当該ユーザ・スナップショットの群と当該システム・ショットの群とに分けて管理することも可能である。しかしながら、スナップショットの数が増えてくると、ユーザ・スナップショットの群とシステム・ショットの群との全てを表示することは、ユーザにとって好ましくない場合がある。
そこで、コンピュータ・システム(121)は、図4に示すように、ユーザ・スナップショットと、当該ユーザ・スナップショットから派生して作成された一連のシステム・スナップショットとを一つのまとまり(すなわち、上記ユーザ・スナップショットのスナップショット群)として表示しうる。
コンピュータ・システム(121)は、異なるスナップショット群を互いに区別可能なように、例えば異なる色でスナップショット群を色分けして表示しうる。
図5A及び図5Bは、本発明の実施態様において、特定のユーザ・スナップショットと当該特定のユーザ・スナップショットから派生して作成された一連のシステム・スナップショットとをグルーピングして、スナップショット群としてビュー画面上に表示する処理、並びに、図5C及び図5Dはそれぞれ、当該ビュー画面上での各種操作を説明する為の図である。
図5Aは、グルーピングする処理前のユーザ・スナップショット及びシステム・スナップショットを示すビュー画面(591)を示す。
ビュー画面(591)中のツリー(501〜505)それぞれは、図4に示すツリー(401〜405)に対応する。従って、ツリー(501〜505)それぞれについての説明は、図4についての上記説明を参照されたい。
図5Bは、ツリー(501〜505)それぞれについて、ユーザ・スナップショットと、当該ユーザ・スナップショットから派生して作成された一連のシステム・スナップショットとをグルーピングし、スナップショット群として表示したビュー画面(592)を示す。
ビュー画面(592)は、スナップショットA群(515)、スナップショットB群(525)、スナップショットC群(535)、スナップショットD群(545)及びスナップショットE群(555)を示す。
スナップショットA群(515)は、ユーザ・スナップショットA(511)、並びに、それから派生して作成されたシステム・スナップショットA1(512)、システム・スナップショットA2(513)及びシステム・スナップショットA3(514)を含む。
スナップショットB群(525)は、ユーザ・スナップショットB(521)、並びに、それから派生して作成されたシステム・スナップショットB1(522)、システム・スナップショットB2(523)、及びシステム・スナップショットA3(524)を含む。
スナップショットC群(535)は、ユーザ・スナップショットC(531)、並びに、それから派生して作成されたシステム・スナップショットC1(532)を含む。
スナップショットD群(545)は、ユーザ・スナップショットD(541)、並びに、それから派生して作成されたシステム・スナップショットD1(542)、及びシステム・スナップショットD2(543)を含む。
スナップショットE群(555)は、ユーザ・スナップショットE(551)のみを含む。
ビュー画面(592)に示すように、特定のユーザ・スナップショットと当該特定のユーザ・スナップショットから派生して作成された一連のシステム・スナップショットとをグルーピングすることによって、図5Aに示すビュー画面上よりも簡潔に表示することが可能である。
ユーザは、スナップショットがグルーピングされたビュー画面(592)上で、種々のアクションをとりうる。
以下に、ビュー画面(592)上で、上記種々のアクションのうち、(1)ユーザがスナップショット群に属するスナップショットを確認する態様、(2)ユーザがスナップショットの更新リストを視る態様、並びに、(3)ユーザが、特定のスナップショットに基づいて仮想システムを稼働させる態様を、図5B、図5C及び図5Dを参照しながら説明する。
(1)ユーザがスナップショット群に属するスナップショットを確認する態様
図5Bに示すビュー画面(592)上で、ユーザが、スナップショットD群(545)のアイコン上を、例えばマウスの左ボタンで又は操作指でクリックし選択したとする(581)。代替的には、ユーザが、スナップショットD群(545)のアイコン上にある展開表示ボタン(図示せず)をマウスの左ボタンで又は操作指でクリックし選択したとする。
コンピュータ・システム(121)は、スナップショットD群(545)の上記アイコンが選択されたことに応じて、当該スナップショットD群(545)に属するスナップショットを表示する。
図5Cは、図5Bに示すビュー画面(592)上でスナップショットD群(545)の上記アイコンが選択されたことに応じて、当該選択されたスナップショットD群(545)に属するユーザ・スナップショット(541)、並びに、システム・スナップショット(542)及びシステム・スナップショット(543)を表示するビュー画面(593)を示す。
コンピュータ・システム(121)は、スナップショットD群(545)の上記アイコンから吹き出すように例えば別のウィンドウ(503)を表示し、当該別のウィンドウ(503)上に、ユーザ・スナップショット(541)、並びに、システム・スナップショット(542)及びシステム・スナップショット(543)を表示する。
以上のようにして、ユーザは、スナップショットD群(545)に属するスナップ・ショットを視覚的に把握することが可能になる。また、ユーザは、スナップショット群に属するスナップショットを展開表示されたスナップショット中から選択して、特定のスナップショットに基づいて仮想マシンを稼働させることが可能になる。
(2)ユーザがスナップショットの更新リストを視る態様
図5Cに示すビュー画面(593)上で、ユーザが、システム・スナップショットD2(543)のアイコン上を、例えばマウスの左ボタンで又は操作指でクリックし選択したとする(582)。
コンピュータ・システム(121)は、システム・スナップショットD2(543)の上記アイコンが選択されたことに応じて、当該システム・スナップショットD2(543)の更新リストを表示する。
図5Dは、ビュー画面(592)上でシステム・スナップショットD2(543)の上記アイコンが選択されたことに応じて、当該選択されたシステム・スナップショットD(543)の更新リスト(571)を表示するビュー画面(594)を示す。
更新リスト(571)は、名前(更新対象のソフトウェア名)、発行元(更新プログラムの発行元)、インストール日時(更新プログラムの適用日時)、バージョン(更新プログラムの識別番号)、及びバージョン発行日時(更新プログラムの発行日時)を1セットとする1又は複数の更新履歴を含む。
ユーザは、更新リスト(571)のウィンドウ上にあるスライド・バーを操作することによって、当該ウィンドウ上で表示されていない非表示領域の更新履歴を見ることが可能である。
以上のようにして、ユーザは、スナップショットの更新リストを視覚的に把握することが可能になる。また、ユーザは、当該更新リストを参照して、特定のスナップショットに基づいて仮想マシンを稼働させることが可能になる。
(3)ユーザが、特定のスナップショットに基づいて仮想システムを稼働させる態様
ユーザが、或るスナップショットに基づいて、仮想システムを稼働させようとしているとする。ユーザは、図5Bに示すビュー管理(592)を見ているとする。ユーザは、ビュー管理(592)のメニューから、仮想システムの起動をするメニューを選択する。
コンピュータ・システム(121)は、仮想システムの起動をする上記メニューが選択されたことに応じて、仮想システムの起動モードに入る。
図5Bに示すビュー画面(592)上で、ユーザが、仮想システムの上記起動モード下で、スナップショットD群(545)のアイコン上を、例えばマウスの左ボタンで又は操作指でクリックし選択したとする(581)。代替的には、ユーザが、スナップショットD群(545)のアイコン上にある仮想システム起動ボタン(図示せず)をマウスの左ボタンで又は操作指でクリックし選択したとする。
コンピュータ・システム(121)は、スナップショットD群(545)の上記アイコンが選択されたことに応じて、当該スナップショットD群(545)に属するスナップショットのうち最新のスナップショットであるスナップショットD2(543)を選択する(デフォルトでの設定)。なお、コンピュータ・システム(121)は、選択されたスナップショット群がユーザ・スナップショットしか含まない場合には、当該ユーザ・スナップショットを選択する。
コンピュータ・システム(121)は、上記スナップショットD2(543)に基づいて、仮想システムを稼働させる。従って、ユーザは、スナップショットD群(545)のうち、最新の更新がされているスナップショットD2(543)に基づいて、仮想システムを稼働させることが可能になる。
従って、ユーザは、スナップショット群中に属するスナップショットを意識すること無しに、選択したスナップショット群に含まれる最新のスナップショットを自動的に利用することが可能になる。
図6は、本発明の実施態様において、稼働中の仮想マシンのスナップショットを、当該稼働中の仮想マシンに負荷を掛けないようにしてコピーする処理を説明する為の図である。
図6の上段に示す態様(601)は、現在稼働中の仮想マシン(651)の既存のスナップショットであるユーザ・スナップショットA(611)、システム・スナップショットA1(612)、ユーザ・スナップショットB(621)、システム・スナップショットB1(622)、ユーザ・スナップショットC(631)、システム・スナップショットC1(632)、並びに、ユーザ・スナップショットD(641)を示す。
既存のスナップショット(例えば、ユーザ・スナップショットD(641))の状態と同一の状態を再現する仮想マシンのクローンを作成する為には、現在稼働中の仮想マシンに関連付けられたユーザ・スナップショットD(641)へアクセスし、このユーザ・スナップショットD(641)を別の仮想マシンの仮想ディスク上にコピーする必要がある。その為に、現在稼働中の仮想マシンの例えば仮想ディスクI/Oに負荷がかかってしまう。そのために、当該仮想マシンで稼働中のアプリケーション等に影響が及ぶ。しかしながら、ユーザは、当該ユーザ・スナップショットD(641)へのアクセス及びコピーによる当該稼働中の仮想マシンへの影響を抑えたい。
そこで、稼働中の仮想マシンにおいてスナップショットが作成された場合に、当該スナップショットが作成されるたびに又は当該スナップショットの所定の数が作成されるごとに、コンピュータ・システム(121)は、当該稼働中の仮想マシンの上記ディスクI/Oが低い時間帯を利用して、上記別の仮想マシンの仮想ディスク中に予め当該作成されたスナップショットをコピーしておく。
従って、例えば、コンピュータ・システム(121)はユーザ・スナップショットD(641)を、別の仮想マシンの仮想ディスク中に現在稼働中の仮想マシンのディスクI/Oが低い時間帯にコピーする。
図6の下段に示す態様(602)は、図6の上段に示す態様(601)に示す各スナップショットを別の仮想マシン上の仮想ディスクにコピーされている態様を示す。当該コピーされている態様(602)が、スナップショットに対して更新を行うための更新適用テンプレートである。
このように、現在稼働中の仮想マシンのスナップショットを別の仮想マシンのディスク中にコピーし、当該コピーしたスナップショット(現在稼働中の仮想マシンのスナップショットと同じである)を現在稼働中の上記仮想マシンの更新を適用するテンプレートとして保持する。そして、コンピュータ・システム(121)は、この更新を適用するテンプレート中のスナップショットに対して更新を適用する。よって、クローン仮想マシンを作成する度に掛かるディスクI/Oが、更新を適用するテンプレートの作成時のみになる。
以上のようにして、現在稼働中の仮想マシンのディスクI/Oに対する負荷を軽減させることが可能になる。
図7は、本発明の実施態様において、稼働中の仮想マシンのスナップショットを、当該稼働中の仮想マシンに負荷を掛けないようにしてコピーする処理を説明する為の図である。
図7の上段に示す態様(701)は、現在稼働中の仮想マシン(751)の既存のスナップショットであるユーザ・スナップショットA(711)、システム・スナップショットA1(712)、ユーザ・スナップショットB(721)、システム・スナップショットB1(722)、ユーザ・スナップショットC(731)、システム・スナップショットC1(732)、並びに、ユーザ・スナップショットD(741)を示す。
既存のスナップショット(例えば、ユーザ・スナップショットA1(712)やユーザ・スナップショットD(741))の状態と同一の状態を再現する仮想マシンのクローンを作成する為には、現在稼働中の仮想マシンに関連付けられたユーザ・スナップショットA1(712)やユーザ・スナップショットD(741)へアクセスし、これらユーザ・スナップショットA1(712)やユーザ・スナップショットD(741)を別の仮想マシンの仮想ディスク上にコピーする必要がある。その為に、現在稼働中の仮想マシンの例えば仮想ディスクI/Oに負荷がかかってしまう。そのために、当該仮想マシンで稼働中のアプリケーション等に影響が及ぶ。しかしながら、ユーザは、当該ユーザ・スナップショットA1(712)やユーザ・スナップショットD(741)へのアクセス及びコピーによる当該稼働中の仮想マシンへの影響を抑えたい。
そこで、コンピュータ・システム(121)は、各スナップショットに更新を適用する場合に、既存のスナップショットのうち、ベースとなるユーザ・スナップショットA1(712)の複数のコピーを、上記現在稼働中の仮想マシンとは異なる別の一つ又は複数の仮想マシンの仮想ディスク上に予めコピーしておく)(761−1、761−2)。
(A1に更新を適用する場合)
コンピュータ・システム(121)は、上記稼働中の仮想マシン上に格納されたユーザ・スナップショットA(711)に対して、ユーザ・スナップショットA1(712)として登録する代わりに、上記別の一つ又は複数の仮想マシンの仮想ディスク上に予めコピーされたユーザ・スナップショットA(761−1)に対して、ユーザ・スナップショットA(711)から派生して作成されたシステム・スナップショットA1(762)を、上記ユーザ・スナップショットA(761−1)から派生したスナップショットとして登録する(793)。従って、上記現在稼働中の仮想マシンとは異なる別の一つ又は複数の仮想マシンの仮想ディスク上において、上記ユーザ・スナップショットA(761−1)から派生したシステム・スナップショットA1(762)が登録される。
引き続き、コンピュータ・システム(121)は、上記別の一つ又は複数の仮想マシンの仮想ディスク上に作成されたシステム・スナップショットA1(762)からシステム・スナップショットA2(763)を作成したとする。コンピュータ・システム(121)は、上記別の一つ又は複数の仮想マシンの仮想ディスク上に作成されたシステム・スナップショットA1(762)に対して、当該システム・スナップショットA1(762)から派生して作成されたシステム・スナップショットA2(763)を登録する。従って、上記現在稼働中の仮想マシンとは異なる別の一つ又は複数の仮想マシンの仮想ディスク上において、上記システム・スナップショットA1(762)から派生したシステム・スナップショットA2(763)が登録される。
コンピュータ・システム(121)は、上記別の一つ又は複数の仮想マシンの仮想ディスク上に、システム・スナップショットA2(763)が登録されることに応じて、当該システム・スナップショットA2(763)及びベースであるユーザ・スナップショットA(761−1)を残したまま、上記システム・スナップショットA1(762)を削除しうる。コンピュータ・システム(121)は、上記削除したシステム・スナップショットA1(762)の差分データを上記システム・スナップショットA2(763)の差分データと統合する。
(Dに更新を適用する場合)
コンピュータ・システム(121)は、上記稼働中の仮想マシン上に格納されたユーザ・スナップショットA(711)に対して、ユーザ・スナップショットB(721)、システム・スナップショットB1(722)及びユーザ・スナップショットD(741)として登録する代わりに、上記別の一つ又は複数の仮想マシンの仮想ディスク上に予めコピーされたユーザ・スナップショットA(761−2)に対して、ユーザ・スナップショットB(771)、システム・スナップショットB1(772)及びユーザ・スナップショットD(781)を登録する(794)。
引き続き、コンピュータ・システム(121)は、上記別の一つ又は複数の仮想マシンの仮想ディスク上に作成されたユーザ・スナップショットD(781)からシステム・スナップショットD1(782)を作成したとする。コンピュータ・システム(121)は、上記別の一つ又は複数の仮想マシンの仮想ディスク上に作成されたユーザ・スナップショットD(781)に対して、当該ユーザ・スナップショットD(781)から派生して作成されたシステム・スナップショットD1(782)を登録する。従って、上記現在稼働中の仮想マシンとは異なる別の一つ又は複数の仮想マシンの仮想ディスク上において、上記ユーザ・スナップショットD(781)から派生したシステム・スナップショットD1(782)が登録される。
コンピュータ・システム(121)は、上記別の一つ又は複数の仮想マシンの仮想ディスク上に、システム・スナップショットD1(782)が登録されることに応じて、当該システム・スナップショットD1(782)及びベースであるユーザ・スナップショットA(761−2)を残したまま、上記ユーザ・スナップショットB(771)、システム・スナップショット(772)及びユーザ・スナップショットD(781)を削除しうる。コンピュータ・システム(121)は、上記削除したユーザ・スナップショットB(771)、システム・スナップショット(772)及びユーザ・スナップショットD(781)の差分データを上記システム・スナップショットD1(782)の差分データと統合する。
このように、現在稼働中の仮想マシンのベースとなるスナップショット(ユーザ・スナップショットでありうる)を別の仮想マシンのディスク中にコピーし、当該コピーしたベースとなるスナップショットを現在稼働中の上記仮想マシンの更新を適用するテンプレートとして保持する。そして、コンピュータ・システム(121)は、このテンプレート中のスナップショットに対して更新を適用する。
図8は、本発明の実施態様において、クローン仮想マシンに、ネットワーク経由で更新を適用する処理を説明する為の図である。
801に示す更新態様において、コンピュータ・システム(121)は、クローン仮想マシン(811)に元々接続されていた仮想NIC(元の仮想NIC)(812)を無効にする(814)。そして、コンピュータ・システム(121)は、クローン仮想マシン(811)に別の仮想NIC(813)を追加する。コンピュータ・システム(121)は、別の仮想NIC(813)に割り当てられたIPアドレスを使用して、パブリック・ネットワーク(817)に接続する。そして、コンピュータ・システム(121)は、当該パブリック・ネットワーク(817)を介して、例えばOSアップデート(818)、アプリケーション・アップデート(819)又はセキュリティ・アップデート(820)を取得し、クローン仮想マシンに当該取得したアップデートを適用する。
802に示す更新態様において、コンピュータ・システム(121)は、クローン仮想マシン(821)に元々接続されていた仮想NIC(元の仮想NIC)(822)を無効にする(824)。そして、コンピュータ・システム(121)は、クローン仮想マシン(821)に別の仮想NIC(823)を追加する。コンピュータ・システム(121)は、別の仮想NIC(823)に割り当てられたIPアドレスを使用して、プライベート・ネットワーク(825)に接続する。プライベート・ネットワーク(825)は、プロキシ・サーバ(826)を介して、パブリック・ネットワーク(827)に接続されている。そして、コンピュータ・システム(121)は、プライベート・ネットワーク(825)、プロキシ・サーバ(826)及びパブリック・ネットワーク(827)を介して、例えばOSアップデート(828)、アプリケーション・アップデート(829)又はセキュリティ・アップデート(830)を取得し、クローン仮想マシン(821)に当該取得したアップデートを適用する。
803に示す更新態様において、コンピュータ・システム(121)は、クローン仮想マシン(831)に元々接続されていた仮想NIC(元の仮想NIC)(832)を無効にする(834)。そして、コンピュータ・システム(121)は、クローン仮想マシン(831)に別の仮想NIC(833)を追加する。コンピュータ・システム(121)は、別の仮想NIC(833)に割り当てられたIPアドレスを使用して、プライベート・ネットワーク(835)に接続する。プライベート・ネットワーク(835)は、ファイル・サーバ(841)を備えている。ファイル・サーバ(841)は、例えばOSアップデート(838)、アプリケーション・アップデート(839)又はセキュリティ・アップデート(840)を格納している。そして、コンピュータ・システム(121)は、プライベート・ネットワーク(835)におけるファイル・サーバ(841)から、例えばOSアップデート(838)、アプリケーション・アップデート(839)又はセキュリティ・アップデート(840)を取得し、クローン仮想マシン(831)に当該取得したアップデートを適用する。
図9は、本発明の実施態様において、既存のスナップショットに対して更新を自動的に適用する処理の為のフローチャートを示す。
ステップ901において、コンピュータ・システム(121)は、仮想マシンのスナップショットに対してフィックスを適用する処理を開始する。当該フィックスを適用する処理は例えば、定期的に、上記更新の通知を受け取ることによって、又は、ユーザのアクション(任意のタイミングである)をトリガーとして行われうる。
ステップ902において、コンピュータ・システム(121)は、所定のトリガーに応答して、システム・スナップショット作成の為の元になる既存のスナップショットを所定の条件に基づいて選択する。当該既存のスナップショットは、既存のユーザ・スナップショット又は既存のシステム・スナップショットでありうる。当該既存のスナップショットは例えば、当該既存のスナップショットを格納する為の記憶媒体でありうる(例えば、図10A及び図10Bに記載の既存のスナップショットを格納した記録媒体(1021)でありうる。当該既存のスナップショットが選択されることが、既存のスナップショットからシステム・スナップショットをとるタイミングでもある。
上記所定のトリガーは、定期的な時間間隔でありうる。当該時間間隔は例えば、当該仮想システムを管理するユーザによって任意の時間間隔に設定されうる。
また、上記所定のトリガーは、コンピュータ・システム(121)が上記更新の通知を受け取ることでありうる。
また、上記所定のトリガーは、既存のスナップショット(群)の又は当該既存のスナップショット(群)に関連付けられたスナップショット(群)の取得頻度若しくは利用頻度の制御情報でありうる。例えば、スナップショットAとスナップショットBがあるとする。この場合に、スナップショットAを1回取得する間に、スナップショットBを3回取得するという制御情報でありうる。また、例えば、スナップショットA群とスナップショットB群があるとする。この場合に、スナップショットA群に属するスナップショットを1回取得する間に、スナップショットB群に属するスナップショットを3回取得するという制御情報でありうる。また、例えば、スナップショットAとスナップショットBがあるとする。スナップショットAを1回仮想マシンとして利用する間に、スナップショットBを3回仮想マシンとして利用するという制御情報でありうる。また、例えば、スナップショットA群とスナップショットB群があるとする。スナップショットA群に属するスナップショットを1回仮想マシンとして利用する間に、スナップショットB群に属するスナップショットを3回仮想マシンとして利用するという制御情報でありうる。
また、上記所定のトリガーは、ユーザのアクションでありうる。当該アクションは例えば、管理ビューのメニューによって提供されているメニュー(例えば、更新適用処理の開始メニュー)がユーザによって選択されることでありうる。
既存のスナップショットを選択する為の上記所定の条件は例えば、既存のスナップショットに関連付けられた優先度でありうる。既存のスナップショットがユーザ・スナップショットである場合には、コンピュータ・システム(121)は、当該ユーザ・スナップショットに付与された優先度を使用しうる。既存のスナップショットがシステム・スナップショットである場合には、コンピュータ・システム(121)は、当該システム・スナップショットの派生元であるユーザ・スナップショットに付与された優先度を当該システム・スナップショットの優先度として利用しうる。
また、上記所定の条件は例えば、当該既存のスナップショットそれぞれの仮想マシンとしての利用頻度や利用時間でありうる。当該利用頻度は、上記既存のスナップショットを用いて、仮想マシンとして起動した頻度でありうる。当該利用時間は、上記既存のスナップショットを用いて仮想マシンとして起動し、稼働中の仮想マシンを利用した時間でありうる。上記利用頻度や上記利用時間は、特定の一つのスナップショットの利用頻度や利用時間であってもよく、又は、或るスナップショット群に属するスナップショット全体又はその一部の利用頻度や利用時間であってもよい。或るスナップショット群に属するスナップショットの全体の利用頻度や利用時間を採用する場合には、当該或るスナップショット群が重要度の高い場合でありうる。また、或るスナップショット群に属するスナップショットの一部の利用頻度や利用時間を採用する場合には、当該或るスナップショット群が重要度の低い場合でありうる。
また、上記所定の条件は例えば、当該既存のスナップショットのスナップショット取得頻度でありうる。当該スナップショット取得頻度は、上記既存のスナップショットに基づいて仮想マシンが作成された場合に、当該作成されたマシンが稼働中に作成されたユーザ・スナップショットの取得回数、システム・スナップショットの取得回数、又はそれらの組み合わせの取得回数でありうる。
コンピュータ・システム(121)は、既存のスナップショットの利用頻度若しくは利用時間、又は当該既存のスナップショットのスナップショット取得頻度をモニターしていることによって、上記利用頻度、上記利用時間、又は上記取得頻度を取得しうる。
ステップ903において、コンピュータ・システム(121)は、ステップ902で選択した作成元の既存スナップショットに基づいて、当該既存のスナップショットの状態と同一の状態を再現する仮想マシンのクローン(クローン仮想マシン)を作成する。
ステップ904において、コンピュータ・システム(121)は、ステップ903で作成したクローン仮想マシン中の作成元の仮想NICを無効にし、その代わりに、新しい別の仮想NICを追加する。コンピュータ・システム(121)は、上記作成元の仮想NICを無効にする際に、当該作成元の仮想NICに割り当てられているIPアドレスをそのままにして維持しておく。上記クローン仮想マシン中の作成元の仮想NICを無効にすることは例えば、当該仮想NICを前記ネットワークから切り離すこと、又は、前記クローン仮想マシンを起動したときに、当該仮想NICが当該クローン仮想マシンのオペレーティング・システムによって認識されないようにすることによって行われうる。上記クローン仮想マシンを起動したときに、当該仮想NICが当該クローン仮想マシンのオペレーティング・システムによって認識されないようにすることは、当該オペレーティング・システムからしてみれば、当該仮想NICが一旦削除されたように見える場合がある。このような場合には、下記ステップ911において、上記オペレーティング・システムによって認識されないようにしたIPアドレス、及び任意的に、その他の必要な情報(例えば、ホスト名、デフォルト・ゲートウェイ、サブネットマスク、又はDNSサーバ)を正しく設定し直す必要がある。
ステップ905において、コンピュータ・システム(121)は、クローン仮想マシンを起動する。
なお、ステップ905とステップ904は逆であってもよい。すなわち、コンピュータ・システム(121)は、クローン仮想マシンを起動後に、当該起動したクローン仮想マシンに中の作成元の仮想NICを無効にし、その代わりに、新しい別の仮想NICを追加するようにしてもよい。
ステップ906において、コンピュータ・システム(121)は、ステップ904で追加した新しい別の仮想NICに対して、未使用のIPアドレスを割り当てる。また、コンピュータ・システム(121)は、ステップ904で追加した新しい別の仮想NICに対して、DHCPを使用して、上記未使用のIPアドレスを自動的に割り当てうる。また、コンピュータ・システム(121)は、上記別の仮想NICに対して上記未使用のIPアドレスを割り当てるとともに、その他の必要な情報(例えば、ホスト名、デフォルト・ゲートウェイ、サブネットマスク、又はDNSサーバ)を与えうる。
ステップ907において、コンピュータ・システム(121)は、仮想NICを追加したクローン仮想マシンに、ネットワーク経由で更新を適用する。特には、コンピュータ・システム(121)は、ステップ906で割り当てられたクローン仮想マシンのIPアドレスを介して、上記仮想NICを追加したクローン仮想マシンに、ネットワーク経由で更新を適用しうる。
ステップ908において、コンピュータ・システム(121)は、ステップ907の更新結果である更新リストを作成し、当該作成した更新リストを例えば管理サーバ(例えば、当該更新リストを格納する為の記憶媒体)に登録しうる。
ステップ909において、コンピュータ・システム(121)は、更新を終了した稼働中のクローン仮想マシンを停止する。当該稼働中のクローン仮想マシンの停止とは、コンピュータ・システム(121)のディスク上に、当該クローン仮想マシンのデータが残っており、仮想CPU及び仮想メモリなどの仮想リソースだけが解放された状態をいう。すなわち、コンピュータ・システム(121)は、上記ディスク上で残っている上記クローン仮想マシンのデータを使用して、当該クローン仮想マシンを再び起動することが可能である状態をいう。そして、コンピュータ・システム(121)は、停止したクローン仮想マシンが使用していた仮想ハードウェアを解放しうる。
ステップ910において、コンピュータ・システム(121)は、クローン仮想マシンからステップ904で追加した仮想NICを削除して、割り当てられたIPアドレスを解放する。クローン仮想マシンからステップ904で追加した仮想NICを削除しないと、下記ステップ912でスナップショットを作成した場合に、仮想NICが変更したものとして差分情報が記録される為である。
ステップ911において、コンピュータ・システム(121)は、クローン仮想マシン中の、ステップ904で無効にした作成元の仮想NICを有効にする。ステップ904で無効にした作成元の仮想NICを有効にすることによって、当該作成元の仮想NICに割り当てられているIPアドレスも使用可能になる。また、ステップ904で無効にした作成元の仮想NICを有効にすることによって、下記ステップ912でスナップショットを作成した場合に、仮想NICが同じものであり変更していないものとして差分情報が記録されることはない為である。
ステップ912において、コンピュータ・システム(121)は、仮想NICを有効にしたクローン仮想マシンのスナップショットを作成する。スナップショットの作成方法は、当業者に知られている任意の技法を用いることが可能である。
ステップ913において、コンピュータ・システム(121)は、ステップ912で作成したスナップショットを、クローン元の仮想マシンのシステム・スナップショットとして登録する。すなわち、コンピュータ・システム(121)は、仮想NICを有効にしたクローン仮想マシンのスナップショットを作成することによって、クローン元の仮想マシンのスナップショットを作成することになる。
ステップ914において、任意的に、コンピュータ・システム(121)は、作成したシステム・スナップショットを、当該システム・スナップショットの作成元のスナップショット群に追加しうる。
ステップ915において、任意的に、コンピュータ・システム(121)は、管理ビュー上で、ステップ912において作成されたシステム・スナップショット、又は、当該作成されたシステム・スナップショットが追加されたスナップショット群を表示しうる。ユーザは、当該管理ビュー上で、例えばグルーピングされたスナップショットの切り戻し、或いは、スナップショットの優先度の設定を行うことが可能である。
ステップ916において、任意的に、コンピュータ・システム(121)は、クローン仮想マシンの削除、既存のシステム・スナップショット、及び当該既存のシステム・スナップショットに関連付けられた更新リストなどの再使用しない不必要なデータを削除しうる。上記クローン仮想マシンの削除とは、上記ステップ909において説明したクローン仮想マシンの停止と異なり、当該クローン仮想マシンを再び起動することが不可能であるようにすることをいう。
ステップ917において、コンピュータ・システム(121)は、一つの一斉更新処理の中で処理すべきスナップショット群の中で未処理のスナップショット群があるか(すなわち、残っているか)判断する。コンピュータ・システム(121)は、上記未処理のスナップショット群があることに応じて、処理をステップ902に戻す。コンピュータ・システム(121)は、処理がステップ902に戻されることによって、上記未処理のスナップショット群について、ステップ902〜916のステップの処理を繰り返して行う。一方、コンピュータ・システム(121)は、上記未処理のスナップショット群がないことに応じて、処理を終了ステップ918に進める。
ステップ918において、コンピュータ・システム(121)は、仮想マシンのスナップショットに対してフィックスを適用する処理を終了する。
図10A及び図10Bそれぞれは、図1A又は図1Bに従うハードウェア構成を好ましくは備えており、本発明の実施態様に従い、仮想マシンのスナップショットに対して更新を自動的に適用する処理の為のコンピュータ・システムの機能ブロック図の一例を示した図である。当該コンピュータ・システム(121)は、1又は複数のサーバ・コンピュータを備えうる。
図10Aは、コンピュータ・システム(121)が一つのサーバ・コンピュータからなる場合の機能ブロック図の一例を示した図である。
コンピュータ・システム(1001)は、図1A又は図1Bに従うハードウェア構成(101)又は図1Bに従うハードウェア構成(121)を備えうる。
コンピュータ・システム(1001)は、仮想マシン提供手段(1011)、クローン作成手段(1012)、クローン仮想マシン構成管理手段(1013)、更新適用手段(1014)、スナップショット作成手段(1015)、並びに、任意的に、スナップショット管理手段(1016)、管理ビュー表示手段(1017)、更新リスト表示手段(1018)、及びモニター手段(1019)のうちの少なくとも1つを備えている。
仮想マシン提供手段(1011)は、サーバ・コンピュータ上で、1又は複数の仮想マシンが稼働することを提供しうる。
また、仮想マシン提供手段(1011)は、スナップショットに基づいて、仮想マシンが稼働することを提供しうる。
また、仮想マシン提供手段(1011)は、図9に示すステップ905及び909、並びにステップ916の一部(クローン仮想マシンの削除)の処理を実行しうる。
クローン作成手段(1012)は、既存のスナップショットの状態と同一の状態を再現する仮想マシンのクローン(クローン仮想マシン)を作成する。クローン作成手段(1012)は、クローン仮想マシンの作成において、既存のスナップショットを当該既存のスナップショットを格納した記録媒体(1021)から読み取りうる。
また、クローン作成手段(1012)は、上記既存のスナップショットに関連付けられた優先度に従って、上記既存のスナップショットの又は上記既存のスナップショットに関連付けられたスナップショットの取得頻度若しくは利用頻度の制御情報に従って、又は、上記既存のスナップショットの利用頻度若しくは利用時間、又は、当該既存のスナップショットのスナップショット取得頻度に従って、複数の既存のスナップショットのうちからクローン仮想マシンを作成する既存のスナップショットを選択しうる。
また、クローン作成手段(1012)は、グルーピングされたシステム・スナップショットが選択されることに応じて、当該グルーピングされたシステム・スナップショットのうちの最新のシステム・スナップショットの状態と同一の状態を再現する仮想マシンのクローンを作成しうる。
また、クローン作成手段(1012)は、図9に示すステップ902及び903の処理を実行しうる。
クローン仮想マシン構成管理手段(1013)は、クローン仮想マシンの仮想NICを無効にし、別の仮想NICを追加する。
また、クローン仮想マシン構成管理手段(1013)は、更新適用手段(1014)によって更新された更新を適用したクローン仮想マシンから上記別の仮想NICを削除して、上記無効にした仮想NICを有効にする。
また、クローン仮想マシン構成管理手段(1013)は、別の仮想NICを追加したクローン仮想マシンを起動し、当該別の仮想NICに未使用のIPアドレスを割り当てうる。
また、クローン仮想マシン構成管理手段(1013)は、上記クローン仮想マシンの仮想NICを無効にすることを、当該仮想NICを上記ネットワークから切り離すこと、又は、上記クローン仮想マシンを起動したときに、当該仮想NICが当該クローン仮想マシンのオペレーティング・システムによって認識されないようにすることによって行いうる。
また、クローン仮想マシン構成管理手段(1013)は、上記無効にした仮想NICを有効にすることを、当該無効にした仮想NICを上記ネットワークに接続すること、当該無効にした仮想NICを追加すること、又は、上記無効にした仮想NICが当該クローン仮想マシンのオペレーティング・システムによって認識されるようにすることによって行いうる。
また、クローン仮想マシン構成管理手段(1013)は、図9に示すステップ904及び906、並びに、ステップ910及び911の処理を実行しうる。
更新適用手段(1014)は、別の仮想NICを追加したクローン仮想マシンに、ネットワーク経由で更新を適用する。
また、更新適用手段(1014)は、更新を、上記別の仮想NICに割り当てられたIPアドレスを使用して行いうる。
また、更新適用手段(1014)は、更新の結果を、更新リストを記憶する記憶媒体(1023)に格納しうる。
また、更新適用手段(1014)は、図9に示すステップ907及び908の処理を実行しうる。
スナップショット作成手段(1015)は、上記仮想NICを有効にしたクローン仮想マシンのスナップショットを作成することによって、クローン元の仮想マシンのスナップショットを作成する。
また、スナップショット作成手段(1015)は、図9に示すステップ912の処理を実行しうる。
スナップショット管理手段(1016)は、上記クローン元の仮想マシンのスナップショットを作成するステップにおいて作成された少なくとも2つのスナップショットをマージする。
また、スナップショット管理手段(1016)は、ユーザの指示により作成されたユーザ・スナップショットと上記クローン元の仮想マシンのスナップショットを作成することによって作成されたシステム・スナップショットとをグルーピングしうる。
また、スナップショット管理手段(1016)は、グルーピングされたシステム・スナップショットのうちの最新でない1又は複数のシステム・スナップショットを最新のシステム・スナップショットにマージし、当該最新でない1又は複数のシステム・スナップショットを削除しうる。
また、スナップショット管理手段(1016)は、図9に示すステップ913、及びステップ914〜915、並びに、ステップ916の一部(スナップショットに関連する処理であって、例えば既存のシステム・スナップショット又はユーザ・スナップショットの再利用しない不必要なデータの削除)の処理を実行しうる。
管理ビュー表示手段(1017)は、ユーザ・スナップショット及びシステム・スナップショットをグルーピングしたスナップショット群を表示する。
また、管理ビュー表示手段(1017)は、クローン元の仮想マシンの上記既存のスナップショットが上記ユーザ・スナップショットである場合に、上記管理ビュー上で、上記ユーザ・スナップショットのクローン仮想マシンから作成されたシステム・スナップショットを上記クローン元の仮想マシンの上記ユーザ・スナップショットに関連付けて表示しうる。
また、管理ビュー表示手段(1017)は、クローン元の仮想マシンの上記既存のスナップショットが上記システム・スナップショットである場合に、上記管理ビュー上で、上記システム・スナップショットのクローン仮想マシンから作成されたシステム・スナップショットを上記クローン元の仮想マシンの上記システム・スナップショットに関連付けて表示しうる。
また、管理ビュー提供手段(1017)は例えば、図9に示すステップ902において、例えばユーザ・スナップショットをユーザが選択することを可能にする管理ビュー上の処理を実行しうる。
更新リスト表示手段(1018)は、管理ビュー上で、更新適用手段(1014)によって更新された更新の更新リストを表示する。更新リスト表示手段(1018)は、更新リストを、更新リストを記憶する記憶媒体(1023)から読み取りうる。
また、更新リスト表示手段(1018)は、更新適用手段(1014)によって更新された更新の更新リストを、当該更新が適用されたスナップショットに関連付けて表示しうる。
また、更新リスト表示手段(1018)は、図9に示すステップ908において作成された更新リストを管理ビュー上で表示する為の処理を実行しうる。
モニター手段(1019)は、上記既存のスナップショットの利用頻度若しくは利用時間、又は当該既存のスナップショットのスナップショット取得頻度をモニターする。
また、モニター手段(1019)は、図9に示すステップ902で既存のスナップショットを選択する為の、既存のスナップショットの利用頻度若しくは利用時間、又は既存のスナップショットのスナップ取得頻度をモニターする処理を実行しうる。
図10Bは、コンピュータ・システム(121)が複数の(例えば2つの)サーバ・コンピュータからなる場合の機能ブロック図の一例を示した図である。
コンピュータ・システム(121)は、仮想環境提供サーバ(1031)と仮想環境管理サーバ(1032)とを備えている。
仮想環境提供サーバ(1031)は、仮想マシン提供手段(1041)、及びクローン作成手段(1042)を備えている。
仮想マシン提供手段(1041)及びクローン作成手段(1042)はそれぞれ、図10Aに記載の仮想マシン提供手段(1011)及びクローン作成手段(1012)に対応する。従って、仮想マシン提供手段(1041)及びクローン作成手段(1042)それぞれの説明については、図10Aに記載の対応する各手段の説明を参照されたい。
仮想環境管理サーバ(1032)は、クローン仮想マシン構成管理手段(1053)、更新適用手段(1054)、スナップショット作成手段(1055)、並びに、任意的に、スナップショット管理手段(1056)、管理ビュー表示手段(1057)、更新リスト表示手段(1058)、及びモニター手段(1059)を備えている。
クローン仮想マシン構成管理手段(1053)、更新適用手段(1054)、スナップショット作成手段(1055)、スナップショット管理手段(1056)、管理ビュー表示手段(1057)、更新リスト表示手段(1058)、及びモニター手段(1059)はそれぞれ、図10Aに記載のクローン仮想マシン構成管理手段(1013)、更新適用手段(1014)、スナップショット作成手段(1015)、スナップショット管理手段(1016)、管理ビュー表示手段(1017)、更新リスト表示手段(1018)、及びモニター手段(1019)に対応する。従って、クローン仮想マシン構成管理手段(1053)、更新適用手段(1054)、スナップショット作成手段(1055)、スナップショット管理手段(1056)、管理ビュー表示手段(1057)、更新リスト表示手段(1058)、及びモニター手段(1059)それぞれの説明については、図10Aに記載の対応する各手段の説明を参照されたい。

Claims (20)

  1. 仮想マシンのスナップショットに対して更新を自動的に適用する方法であって、コンピュータ・システムが、
    既存のスナップショットの状態と同一の状態を再現する仮想マシンのクローンを作成するステップと、
    前記クローンとして作成した仮想マシン(以下、クローン仮想マシンという)の仮想ネットワーク・インタフェース・カード(以下、仮想NICという)を無効にし、別の仮想NICを追加するステップと、
    前記別の仮想NICを追加したクローン仮想マシンに、ネットワーク経由で更新を適用するステップと、
    前記更新を適用したクローン仮想マシンから前記別の仮想NICを削除して、前記無効にした仮想NICを有効にするステップと、
    前記仮想NICを有効にしたクローン仮想マシンのスナップショットを作成することによって、クローン元の仮想マシンのスナップショットを作成するステップと
    を実行することを含む、前記方法。
  2. 前記コンピュータ・システムが、
    前記仮想マシンのクローンを作成するステップ、前記追加するステップ、前記適用するステップ、前記有効にするステップ、及び前記クローン元の仮想マシンのスナップショットを作成するステップを繰り返すステップ
    を実行することをさらに含む、請求項1に記載の方法。
  3. 前記繰り返すステップが、
    定期的に、
    前記更新の通知を受け取ることによって、
    前記既存のスナップショットの又は前記既存のスナップショットに関連付けられたスナップショットの取得頻度若しくは利用頻度の制御情報に従って、又は、
    ユーザのアクションをトリガーとして
    行われる、請求項2に記載の方法。
  4. 前記仮想マシンのクローンを作成するステップが、
    前記既存のスナップショットに関連付けられた優先度に従って、又は
    前記既存のスナップショットの利用頻度若しくは利用時間、又は当該既存のスナップショットのスナップショット取得頻度に従って、
    複数の既存のスナップショットのうちからクローン仮想マシンを作成する既存のスナップショットを選択するステップ
    をさらに含む、請求項1〜3のいずれか一項に記載の方法。
  5. 前記優先度がユーザの指示により作成されたユーザ・スナップショットに付されている、請求項4に記載の方法。
  6. 前記コンピュータ・システムが、
    前記既存のスナップショットの利用頻度若しくは利用時間、又は当該既存のスナップショットのスナップショット取得頻度をモニターするステップ
    を実行することをさらに含む、請求項1〜5のいずれか一項に記載の方法。
  7. 前記既存のスナップショットが、ユーザの指示により作成されたユーザ・スナップショット又は前記クローン元の仮想マシンのスナップショットを作成するステップにおいて作成されたシステム・スナップショットである、請求項1〜6のいずれか一項に記載の方法。
  8. クローン元の仮想マシンの前記既存のスナップショットが前記ユーザ・スナップショットであり、
    管理ビュー上で、前記ユーザ・スナップショットのクローン仮想マシンから作成されたシステム・スナップショットが前記クローン元の仮想マシンの前記ユーザ・スナップショットに関連付けて表示される、
    請求項7に記載の方法。
  9. クローン元の仮想マシンの前記既存のスナップショットが前記システム・スナップショットであり、
    管理ビュー上で、前記システム・スナップショットのクローン仮想マシンから作成されたシステム・スナップショットが前記クローン元の仮想マシンの前記システム・スナップショットに関連付けて表示される、
    請求項7に記載の方法。
  10. 前記コンピュータ・システムが、
    前記クローン元の仮想マシンのスナップショットを作成するステップにおいて作成された少なくとも2つのスナップショットをマージするステップ
    を実行することをさらに含む、請求項1〜9のいずれか一項に記載の方法。
  11. 前記コンピュータ・システムが、
    ユーザの指示により作成されたユーザ・スナップショット及び前記クローン元の仮想マシンのスナップショットを作成するステップにおいて作成されたシステム・スナップショットをグルーピングし、当該グルーピングしたスナップショットを管理ビュー上で表示するステップ
    をさらに実行することを含む、請求項1〜9のいずれか一項に記載の方法。
  12. 前記クローンを作成するステップが、
    前記グルーピングされたシステム・スナップショットが選択されることに応じて、当該グルーピングされたシステム・スナップショットのうちの最新のシステム・スナップショットの状態と同一の状態を再現する仮想マシンのクローンを作成するステップ
    を含む、請求項11に記載の方法。
  13. 前記コンピュータ・システムが、
    前記グルーピングされたスナップショットのうちの最新でない1又は複数のシステム・スナップショットを最新のシステム・スナップショットにマージするステップと、
    前記最新でない1又は複数のシステム・スナップショットを削除するステップと
    をさらに実行することを含む、請求項11又は12のいずれか一項に記載の方法。
  14. 前記コンピュータ・システムが、
    前記グルーピングしたスナップショット群の一つが選択されることに応じて、前記グルーピングしたスナップショット群に属するスナップショットを前記管理ビュー上で表示するステップ
    をさらに実行することを含む、請求項11〜13のいずれか一項に記載の方法。
  15. 前記コンピュータ・システムが、
    管理ビュー上で、前記更新の更新リストを表示するステップ
    をさらに実行することを含む、請求項1〜14のいずれか一項に記載の方法。
  16. 前記別の仮想NICを追加するステップが、
    前記別の仮想NICを追加したクローン仮想マシンを起動し、当該別の仮想NICに未使用のIPアドレスを割り当てるステップ
    をさらに含む、請求項1〜15のいずれか一項に記載の方法。
  17. 前記更新が、前記別の仮想NICに割り当てられたIPアドレスを使用して行われる、請求項16に記載の方法。
  18. 前記クローン仮想マシンの仮想NICを無効にすることが、
    当該仮想NICを前記ネットワークから切り離すこと、又は、
    前記クローン仮想マシンを起動したときに、当該仮想NICが当該クローン仮想マシンのオペレーティング・システムによって認識されないようにすること
    によって行われ、
    前記無効にした仮想NICを有効にすることが、
    当該無効にした仮想NICを前記ネットワークに接続すること、
    当該無効にした仮想NICを追加すること、又は、
    前記無効にした仮想NICが当該クローン仮想マシンのオペレーティング・システムによって認識されるようにすること
    によって行われる、請求項1〜17のいずれか一項に記載の方法。
  19. 仮想マシンのスナップショットに対して更新を自動的に適用する為のコンピュータ・システムであって、
    既存のスナップショットの状態と同一の状態を再現する仮想マシンのクローンを作成するクローン作成手段と、
    前記クローンとして作成した仮想マシン(以下、クローン仮想マシンという)の仮想ネットワーク・インタフェース・カード(以下、仮想NICという)を無効にし、別の仮想NICを追加するクローン仮想マシン構成管理手段と、
    前記別の仮想NICを追加したクローン仮想マシンに、ネットワーク経由で更新を適用する更新適用手段と
    を備えており、
    前記クローン仮想マシン構成管理手段が、前記更新を適用したクローン仮想マシンから前記別の仮想NICを削除して、前記無効にした仮想NICを有効にし、
    前記コンピュータ・システムが、
    前記仮想NICを有効にしたクローン仮想マシンのスナップショットを作成することによって、クローン元の仮想マシンのスナップショットを作成するスナップショット作成手段
    をさらに備えている、前記コンピュータ・システム。
  20. 仮想マシンのスナップショットに対して更新を自動的に適用する為のコンピュータ・システム用プログラムであって、コンピュータ・システムに、請求項1〜18のいずれか一項に記載の方法の各ステップを実行させる、前記コンピュータ・システム用プログラム。
JP2014219162A 2014-10-28 2014-10-28 仮想マシンのスナップショットに対して更新を自動的に適用する方法、並びに、そのコンピュータ・システム及びコンピュータ・システム用プログラム Active JP5904514B1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2014219162A JP5904514B1 (ja) 2014-10-28 2014-10-28 仮想マシンのスナップショットに対して更新を自動的に適用する方法、並びに、そのコンピュータ・システム及びコンピュータ・システム用プログラム
US14/842,100 US10083022B2 (en) 2014-10-28 2015-09-01 Applying update to snapshots of virtual machine
US15/947,931 US10140115B2 (en) 2014-10-28 2018-04-09 Applying update to snapshots of virtual machine
US15/947,923 US10394547B2 (en) 2014-10-28 2018-04-09 Applying update to snapshots of virtual machine

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014219162A JP5904514B1 (ja) 2014-10-28 2014-10-28 仮想マシンのスナップショットに対して更新を自動的に適用する方法、並びに、そのコンピュータ・システム及びコンピュータ・システム用プログラム

Publications (2)

Publication Number Publication Date
JP5904514B1 true JP5904514B1 (ja) 2016-04-13
JP2016085663A JP2016085663A (ja) 2016-05-19

Family

ID=55747778

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014219162A Active JP5904514B1 (ja) 2014-10-28 2014-10-28 仮想マシンのスナップショットに対して更新を自動的に適用する方法、並びに、そのコンピュータ・システム及びコンピュータ・システム用プログラム

Country Status (2)

Country Link
US (3) US10083022B2 (ja)
JP (1) JP5904514B1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10860436B2 (en) 2016-05-02 2020-12-08 Nokia Solutions And Networks Oy Snapshot creation in virtual network environment

Families Citing this family (71)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015172107A1 (en) 2014-05-09 2015-11-12 Nutanix, Inc. Mechanism for providing external access to a secured networked virtualization environment
US10296320B2 (en) * 2014-09-10 2019-05-21 International Business Machines Corporation Patching systems and applications in a virtualized environment
US9600312B2 (en) 2014-09-30 2017-03-21 Amazon Technologies, Inc. Threading as a service
US9146764B1 (en) 2014-09-30 2015-09-29 Amazon Technologies, Inc. Processing event messages for user requests to execute program code
US9678773B1 (en) 2014-09-30 2017-06-13 Amazon Technologies, Inc. Low latency computational capacity provisioning
JP5904514B1 (ja) 2014-10-28 2016-04-13 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 仮想マシンのスナップショットに対して更新を自動的に適用する方法、並びに、そのコンピュータ・システム及びコンピュータ・システム用プログラム
US9537788B2 (en) 2014-12-05 2017-01-03 Amazon Technologies, Inc. Automatic determination of resource sizing
US9733967B2 (en) 2015-02-04 2017-08-15 Amazon Technologies, Inc. Security protocols for low latency execution of program code
US9588790B1 (en) 2015-02-04 2017-03-07 Amazon Technologies, Inc. Stateful virtual compute system
US9910713B2 (en) 2015-12-21 2018-03-06 Amazon Technologies, Inc. Code execution request routing
US10809998B2 (en) 2016-02-12 2020-10-20 Nutanix, Inc. Virtualized file server splitting and merging
US10733153B2 (en) * 2016-02-29 2020-08-04 Red Hat, Inc. Snapshot management in distributed file systems
US11132213B1 (en) 2016-03-30 2021-09-28 Amazon Technologies, Inc. Dependency-based process of pre-existing data sets at an on demand code execution environment
US10055149B2 (en) * 2016-04-14 2018-08-21 Seagate Technology Llc Intelligent snapshot tree replication
US10394482B2 (en) 2016-04-14 2019-08-27 Seagate Technology Llc Snap tree arbitrary replication
US11218418B2 (en) 2016-05-20 2022-01-04 Nutanix, Inc. Scalable leadership election in a multi-processing computing environment
US10102040B2 (en) 2016-06-29 2018-10-16 Amazon Technologies, Inc Adjusting variable limit on concurrent code executions
US11562034B2 (en) 2016-12-02 2023-01-24 Nutanix, Inc. Transparent referrals for distributed file servers
US10824455B2 (en) 2016-12-02 2020-11-03 Nutanix, Inc. Virtualized server systems and methods including load balancing for virtualized file servers
US10728090B2 (en) * 2016-12-02 2020-07-28 Nutanix, Inc. Configuring network segmentation for a virtualization environment
US11568073B2 (en) 2016-12-02 2023-01-31 Nutanix, Inc. Handling permissions for virtualized file servers
US11294777B2 (en) 2016-12-05 2022-04-05 Nutanix, Inc. Disaster recovery for distributed file servers, including metadata fixers
US11281484B2 (en) 2016-12-06 2022-03-22 Nutanix, Inc. Virtualized server systems and methods including scaling of file system virtual machines
US11288239B2 (en) 2016-12-06 2022-03-29 Nutanix, Inc. Cloning virtualized file servers
US10394593B2 (en) * 2017-03-13 2019-08-27 International Business Machines Corporation Nondisruptive updates in a networked computing environment
US10666606B2 (en) * 2017-06-28 2020-05-26 Amazon Technologies, Inc. Virtual private network service endpoints
US10721125B2 (en) * 2017-07-20 2020-07-21 Vmware, Inc. Systems and methods for update propagation between nodes in a distributed system
CN109768871B (zh) * 2017-11-09 2022-09-16 阿里巴巴集团控股有限公司 配置多个虚拟网卡的方法、宿主机和存储介质
SG11202004256VA (en) 2017-11-10 2020-06-29 Lvis Corp Efficacy and/or therapeutic parameter recommendation using individual patient data and therapeutic brain network maps
US10324653B1 (en) * 2017-12-01 2019-06-18 Red Hat Israel, Ltd. Fast evacuation of a cloned disk to a storage device
US11086826B2 (en) 2018-04-30 2021-08-10 Nutanix, Inc. Virtualized server systems and methods including domain joining techniques
US10606632B2 (en) * 2018-05-15 2020-03-31 Vmware, Inc. Preventing interruption during virtual machine reboot
US11663085B2 (en) 2018-06-25 2023-05-30 Rubrik, Inc. Application backup and management
US10503612B1 (en) * 2018-06-25 2019-12-10 Rubrik, Inc. Application migration between environments
US10853115B2 (en) 2018-06-25 2020-12-01 Amazon Technologies, Inc. Execution of auxiliary functions in an on-demand network code execution system
US11146569B1 (en) 2018-06-28 2021-10-12 Amazon Technologies, Inc. Escalation-resistant secure network services using request-scoped authentication information
US10949237B2 (en) 2018-06-29 2021-03-16 Amazon Technologies, Inc. Operating system customization in an on-demand network code execution system
US11194680B2 (en) 2018-07-20 2021-12-07 Nutanix, Inc. Two node clusters recovery on a failure
US11099870B1 (en) * 2018-07-25 2021-08-24 Amazon Technologies, Inc. Reducing execution times in an on-demand network code execution system using saved machine states
US11086616B2 (en) * 2018-09-25 2021-08-10 Vmware, Inc. Near zero downtime application upgrade
US11243953B2 (en) 2018-09-27 2022-02-08 Amazon Technologies, Inc. Mapreduce implementation in an on-demand network code execution system and stream data processing system
US11099917B2 (en) 2018-09-27 2021-08-24 Amazon Technologies, Inc. Efficient state maintenance for execution environments in an on-demand code execution system
US11770447B2 (en) 2018-10-31 2023-09-26 Nutanix, Inc. Managing high-availability file servers
US11943093B1 (en) 2018-11-20 2024-03-26 Amazon Technologies, Inc. Network connection recovery after virtual machine transition in an on-demand network code execution system
US10802813B2 (en) 2018-12-19 2020-10-13 Atlassian Pty Ltd. Systems and methods for updating virtual machines
US11010188B1 (en) 2019-02-05 2021-05-18 Amazon Technologies, Inc. Simulated data object storage using on-demand computation of data objects
US11861386B1 (en) 2019-03-22 2024-01-02 Amazon Technologies, Inc. Application gateways in an on-demand network code execution system
US11068356B2 (en) * 2019-04-29 2021-07-20 Rubrik, Inc. Incremental export and conversion of virtual machine snapshots
US11119809B1 (en) 2019-06-20 2021-09-14 Amazon Technologies, Inc. Virtualization-based transaction handling in an on-demand network code execution system
US11190609B2 (en) 2019-06-28 2021-11-30 Amazon Technologies, Inc. Connection pooling for scalable network services
US11115404B2 (en) 2019-06-28 2021-09-07 Amazon Technologies, Inc. Facilitating service connections in serverless code executions
US11159528B2 (en) 2019-06-28 2021-10-26 Amazon Technologies, Inc. Authentication to network-services using hosted authentication information
KR20210007262A (ko) 2019-07-10 2021-01-20 삼성전자주식회사 어플리케이션을 관리하는 방법 및 그 장치
US11119862B2 (en) 2019-10-11 2021-09-14 Seagate Technology Llc Delta information volumes to enable chained replication of data by uploading snapshots of data to cloud
US11663340B2 (en) * 2019-10-30 2023-05-30 Rubrik, Inc. Managing software vulnerabilities
US11599643B2 (en) 2019-10-30 2023-03-07 Rubrik, Inc. Facilitating analysis of software vulnerabilities
US11593491B2 (en) 2019-10-30 2023-02-28 Rubrik, Inc. Identifying a software vulnerability
US11119826B2 (en) 2019-11-27 2021-09-14 Amazon Technologies, Inc. Serverless call distribution to implement spillover while avoiding cold starts
US11714682B1 (en) 2020-03-03 2023-08-01 Amazon Technologies, Inc. Reclaiming computing resources in an on-demand code execution system
US11188391B1 (en) 2020-03-11 2021-11-30 Amazon Technologies, Inc. Allocating resources to on-demand code executions under scarcity conditions
US11768809B2 (en) 2020-05-08 2023-09-26 Nutanix, Inc. Managing incremental snapshots for fast leader node bring-up
US11593270B1 (en) 2020-11-25 2023-02-28 Amazon Technologies, Inc. Fast distributed caching using erasure coded object parts
US11550713B1 (en) 2020-11-25 2023-01-10 Amazon Technologies, Inc. Garbage collection in distributed systems using life cycled storage roots
US20220214903A1 (en) * 2021-01-06 2022-07-07 Baidu Usa Llc Method for virtual machine migration with artificial intelligence accelerator status validation in virtualization environment
US11941125B2 (en) * 2021-03-14 2024-03-26 Microsoft Technology Licensing, Llc Automatic update of VM sets
US11388210B1 (en) 2021-06-30 2022-07-12 Amazon Technologies, Inc. Streaming analytics using a serverless compute system
US11968280B1 (en) 2021-11-24 2024-04-23 Amazon Technologies, Inc. Controlling ingestion of streaming data to serverless function executions
US12015603B2 (en) 2021-12-10 2024-06-18 Amazon Technologies, Inc. Multi-tenant mode for serverless code execution
WO2023112112A1 (ja) * 2021-12-14 2023-06-22 日本電信電話株式会社 冗長化システムのアップデート方法、冗長化システム及びアップデート制御装置
US20230221939A1 (en) * 2022-01-07 2023-07-13 Dell Products L.P. Version history based upgrade testing across simulated information technology environments
US11954479B2 (en) 2022-01-07 2024-04-09 Dell Products L.P. Predicting post-upgrade outcomes in information technology environments through proactive upgrade issue testing

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011501270A (ja) * 2007-10-12 2011-01-06 マイクロソフト コーポレーション 仮想マシン複製を作成するための更新の管理
JP2012118827A (ja) * 2010-12-02 2012-06-21 Internatl Business Mach Corp <Ibm> 情報処理システム、情報処理装置、準備方法、プログラムおよび記録媒体

Family Cites Families (75)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7310653B2 (en) * 2001-04-02 2007-12-18 Siebel Systems, Inc. Method, system, and product for maintaining software objects during database upgrade
WO2003049223A1 (fr) * 2001-12-07 2003-06-12 Canon Kabushiki Kaisha Pile a combustible et dispositif electrique
US6829617B2 (en) * 2002-02-15 2004-12-07 International Business Machines Corporation Providing a snapshot of a subset of a file system
US7577722B1 (en) * 2002-04-05 2009-08-18 Vmware, Inc. Provisioning of computer systems using virtual machines
JP4292882B2 (ja) * 2003-03-18 2009-07-08 株式会社日立製作所 複数のスナップショット維持方法及びサーバ装置及びストレージ装置
US7155635B1 (en) * 2004-02-06 2006-12-26 3Pardata, Inc. Handling link failures in remote mirroring applications using snapshots
US20060184937A1 (en) * 2005-02-11 2006-08-17 Timothy Abels System and method for centralized software management in virtual machines
US20070156849A1 (en) * 2005-12-30 2007-07-05 Wolfgang Becker Systems and methods for delivering software upgrades in a provider-tenant environment
US8949312B2 (en) 2006-05-25 2015-02-03 Red Hat, Inc. Updating clients from a server
US8949826B2 (en) 2006-10-17 2015-02-03 Managelq, Inc. Control and management of virtual systems
US8032351B2 (en) * 2006-11-30 2011-10-04 Symantec Corporation Running a virtual machine directly from a physical machine using snapshots
US9270781B2 (en) * 2007-02-15 2016-02-23 Citrix Systems, Inc. Associating virtual machines on a server computer with particular users on an exclusive basis
US8171485B2 (en) 2007-03-26 2012-05-01 Credit Suisse Securities (Europe) Limited Method and system for managing virtual and real machines
JP2009122749A (ja) 2007-11-12 2009-06-04 Fujitsu Ltd プログラム、可搬記憶媒体及び制御方法
US8495609B2 (en) * 2008-02-25 2013-07-23 Sas Institute, Inc. Methods, systems, and computer program products for taking a snapshot of installed software on a data processing system as part of a software update process
JP5026309B2 (ja) * 2008-03-06 2012-09-12 株式会社日立製作所 バックアップデータ管理システム及びバックアップデータ管理方法
US9720674B1 (en) * 2008-05-05 2017-08-01 Open Invention Network, Llc Automating application of software patches to a server having a virtualization layer
US8135930B1 (en) * 2008-07-14 2012-03-13 Vizioncore, Inc. Replication systems and methods for a virtual computing environment
US9361089B2 (en) * 2008-07-22 2016-06-07 International Business Machines Corporation Secure patch updates of a virtual machine image in a virtualization data processing system
JP5446167B2 (ja) 2008-08-13 2014-03-19 富士通株式会社 ウイルス対策方法、コンピュータ、及びプログラム
US8495316B2 (en) * 2008-08-25 2013-07-23 Symantec Operating Corporation Efficient management of archival images of virtual machines having incremental snapshots
JP5191849B2 (ja) 2008-09-19 2013-05-08 株式会社日立システムズ 仮想マシンセキュリティ管理システム及び仮想マシンセキュリティ管理方法
GB0818830D0 (en) * 2008-10-14 2008-11-19 G2 Design Consultants Ltd Plastics container
CN101727331B (zh) * 2008-10-24 2013-03-20 国际商业机器公司 升级活动虚拟机的客户操作***的方法和设备
US8332842B2 (en) 2008-11-14 2012-12-11 International Business Machines Corporation Application restore points
US8245192B1 (en) 2008-11-18 2012-08-14 Sprint Communications Company L.P. Independent software development zones
WO2010106649A1 (ja) * 2009-03-18 2010-09-23 富士通株式会社 更新プログラム、情報処理装置、および更新方法
US8195980B2 (en) * 2009-03-31 2012-06-05 Oracle America, Inc. Virtual machine snapshotting and damage containment
US8321380B1 (en) * 2009-04-30 2012-11-27 Netapp, Inc. Unordered idempotent replication operations
JP4870794B2 (ja) 2009-05-08 2012-02-08 株式会社エヌ・ティ・ティ・データ 仮想マシンの監視管理装置、監視管理方法及びコンピュータプログラム
US20100293144A1 (en) * 2009-05-15 2010-11-18 Bonnet Michael S Using snapshotting and virtualization to perform tasks in a known and reproducible environment
US8234469B2 (en) * 2009-07-09 2012-07-31 Microsoft Corporation Backup of virtual machines using cloned virtual machines
US20110035802A1 (en) 2009-08-07 2011-02-10 Microsoft Corporation Representing virtual object priority based on relationships
WO2011082138A1 (en) * 2009-12-31 2011-07-07 Commvault Systems, Inc. Systems and methods for performing data management operations using snapshots
JP5440273B2 (ja) * 2010-03-09 2014-03-12 富士通株式会社 スナップショット管理方法、スナップショット管理装置、及びプログラム
US8879619B2 (en) * 2010-07-15 2014-11-04 Sharp Laboratories Of America, Inc. Method of parallel video coding based on scan order
US8799422B1 (en) * 2010-08-16 2014-08-05 Juniper Networks, Inc. In-service configuration upgrade using virtual machine instances
US8566541B2 (en) * 2010-09-14 2013-10-22 Hitachi, Ltd. Storage system storing electronic modules applied to electronic objects common to several computers, and storage control method for the same
US8578376B2 (en) * 2011-01-04 2013-11-05 International Business Machines Corporation Automatically and securely configuring and updating virtual machines
JP5655612B2 (ja) 2011-02-14 2015-01-21 富士通株式会社 情報処理システム、情報処理方法、及び制御プログラム
US8984104B2 (en) * 2011-05-31 2015-03-17 Red Hat, Inc. Self-moving operating system installation in cloud-based network
US8819471B2 (en) * 2011-06-03 2014-08-26 Apple Inc. Methods and apparatus for power state based backup
US8745344B2 (en) * 2011-07-01 2014-06-03 Hitachi, Ltd. Storage system using thin provisioning pool and snapshotting, and controlling method of the same
US9038055B2 (en) * 2011-08-05 2015-05-19 Microsoft Technology Licensing, Llc Using virtual machines to manage software builds
US8839222B1 (en) * 2011-09-21 2014-09-16 Amazon Technologies, Inc. Selecting updates for deployment to a programmable execution service application
US8695010B2 (en) * 2011-10-03 2014-04-08 International Business Machines Corporation Privilege level aware processor hardware resource management facility
CN103034523B (zh) * 2011-10-05 2016-06-22 国际商业机器公司 用于虚拟设备的模型驱动的维护的方法和***
US9069640B2 (en) * 2012-03-23 2015-06-30 Hitachi, Ltd. Patch applying method for virtual machine, storage system adopting patch applying method, and computer system
US10282196B2 (en) * 2012-04-06 2019-05-07 Oracle International Corporation System and method for moving enterprise software application components across environments
CN103593256B (zh) * 2012-08-15 2017-05-24 阿里巴巴集团控股有限公司 一种基于多层排重的虚机快照备份方法和***
US9218178B2 (en) * 2012-08-29 2015-12-22 Microsoft Technology Licensing, Llc Secure firmware updates
US9047238B2 (en) * 2012-11-28 2015-06-02 Red Hat Israel, Ltd. Creating a virtual machine from a snapshot
US8983961B2 (en) * 2012-11-29 2015-03-17 International Business Machines Corporation High availability for cloud servers
US9459856B2 (en) * 2013-01-02 2016-10-04 International Business Machines Corporation Effective migration and upgrade of virtual machines in cloud environments
US9110757B2 (en) * 2013-01-14 2015-08-18 Vmware, Inc. Techniques for performing virtual machine software upgrades using virtual disk swapping
US9304793B2 (en) * 2013-01-16 2016-04-05 Vce Company, Llc Master automation service
US9411621B2 (en) * 2013-01-24 2016-08-09 International Business Machines Corporation Grouping and automatically propagating updates to equivalent online and offline virtual machines in a data center
US20140229928A1 (en) * 2013-02-11 2014-08-14 Claes Göran Edström Upgrading software in production environments
GB2510874B (en) * 2013-02-15 2020-09-16 Ncr Corp Server system supporting remotely managed IT services
US9727274B2 (en) * 2013-02-26 2017-08-08 Red Hat Israel, Ltd. Cloning live virtual machines
US9454363B1 (en) 2013-03-15 2016-09-27 Data Systems International, Inc. Mobile application development system and method
US10095501B2 (en) * 2013-03-15 2018-10-09 Oracle International Corporation Deployment and activation of updates on target hosts
US9116846B2 (en) * 2013-06-10 2015-08-25 Veeam Software Ag Virtual machine backup from storage snapshot
US9569122B2 (en) * 2013-06-12 2017-02-14 Infinidat Ltd. System, method and a non-transitory computer readable medium for transaction aware snapshot
US9110699B2 (en) * 2013-09-19 2015-08-18 International Business Machines Corporation Determining optimal methods for creating virtual machines
US9304804B2 (en) * 2013-10-14 2016-04-05 Vmware, Inc. Replicating virtual machines across different virtualization platforms
US9268610B2 (en) * 2013-11-01 2016-02-23 Vmware, Inc. Rapid virtual machine cloning
US20150142748A1 (en) * 2013-11-18 2015-05-21 Actifio, Inc. Computerized methods and apparatus for data cloning
US9588793B2 (en) * 2013-12-20 2017-03-07 Red Hat Israel, Ltd. Creating new virtual machines based on post-boot virtual machine snapshots
US20150242282A1 (en) * 2014-02-24 2015-08-27 Red Hat, Inc. Mechanism to update software packages
US9547514B2 (en) * 2014-05-23 2017-01-17 Vmware, Inc. Maintaining virtual hardware device ID in a virtual machine
US9244669B2 (en) * 2014-06-26 2016-01-26 Vmware, Inc. Deploying an application across multiple deployment environments
US9792106B1 (en) * 2014-08-04 2017-10-17 Cisco Technology, Inc. Technique for fast network device configuration upgrade and reload
JP5904514B1 (ja) 2014-10-28 2016-04-13 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 仮想マシンのスナップショットに対して更新を自動的に適用する方法、並びに、そのコンピュータ・システム及びコンピュータ・システム用プログラム
US20160162278A1 (en) * 2014-12-05 2016-06-09 Cyanogen Inc. System and method for applying an update to a device system via a system snapshot

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011501270A (ja) * 2007-10-12 2011-01-06 マイクロソフト コーポレーション 仮想マシン複製を作成するための更新の管理
JP2012118827A (ja) * 2010-12-02 2012-06-21 Internatl Business Mach Corp <Ibm> 情報処理システム、情報処理装置、準備方法、プログラムおよび記録媒体

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10860436B2 (en) 2016-05-02 2020-12-08 Nokia Solutions And Networks Oy Snapshot creation in virtual network environment

Also Published As

Publication number Publication date
US10394547B2 (en) 2019-08-27
US20160117163A1 (en) 2016-04-28
JP2016085663A (ja) 2016-05-19
US20180232225A1 (en) 2018-08-16
US10083022B2 (en) 2018-09-25
US20180225108A1 (en) 2018-08-09
US10140115B2 (en) 2018-11-27

Similar Documents

Publication Publication Date Title
JP5904514B1 (ja) 仮想マシンのスナップショットに対して更新を自動的に適用する方法、並びに、そのコンピュータ・システム及びコンピュータ・システム用プログラム
JP6802052B2 (ja) 透明で安全なインターセプション処理のための方法、コンピュータ・システム、ファームウェア、ハイパーバイザおよびコンピュータ・プログラム
EP3189646B1 (en) Method and apparatus for automating security provisioning of workloads
US10713183B2 (en) Virtual machine backup using snapshots and current configuration
US9678769B1 (en) Offline volume modifications
JP6388455B2 (ja) 仮想データセンタゲストへのサービスの拡大
US20160371105A1 (en) Deployment and installation of updates in a virtual environment
JP5826298B2 (ja) 仮想デスクトップインフラストラクチャにおいてチェックアウトした仮想マシンを保護する技術
US10721125B2 (en) Systems and methods for update propagation between nodes in a distributed system
US9841987B2 (en) Transparent secure interception handling
US10715594B2 (en) Systems and methods for update propagation between nodes in a distributed system
JPWO2010100769A1 (ja) セキュリティ管理装置及び方法並びにプログラム
US9547514B2 (en) Maintaining virtual hardware device ID in a virtual machine
JP5191849B2 (ja) 仮想マシンセキュリティ管理システム及び仮想マシンセキュリティ管理方法
US9898374B2 (en) Recovery of an infected and quarantined file in a primary storage controller from a secondary storage controller
US11388071B2 (en) Cloud launch wizard
JP6014257B2 (ja) アプリケーション配布システムを動作させるためのシステム及び方法
US9588831B2 (en) Preventing recurrence of deterministic failures
US11656888B2 (en) Performing an application snapshot using process virtual machine resources
JP2014225302A (ja) ウイルス検出プログラム、ウイルス検出方法、及びコンピュータ
US11327824B2 (en) Using a web server to obtain service data for a failed software application
US9858164B1 (en) Providing an information technology management prescription
JP2012256352A (ja) セキュリティ管理装置及び方法並びにプログラム
KR20150134171A (ko) 악성코드 탐지 장치 및 방법
US20160019083A1 (en) Modifying a state of a virtual machine

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160112

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20160125

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20160125

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20160201

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160218

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20160222

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20160222

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160308

R150 Certificate of patent or registration of utility model

Ref document number: 5904514

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150