JP2009538469A - パッチなどによるバーチャルマシンの更新 - Google Patents

パッチなどによるバーチャルマシンの更新 Download PDF

Info

Publication number
JP2009538469A
JP2009538469A JP2009512003A JP2009512003A JP2009538469A JP 2009538469 A JP2009538469 A JP 2009538469A JP 2009512003 A JP2009512003 A JP 2009512003A JP 2009512003 A JP2009512003 A JP 2009512003A JP 2009538469 A JP2009538469 A JP 2009538469A
Authority
JP
Japan
Prior art keywords
library
computing device
host computing
software
date
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.)
Granted
Application number
JP2009512003A
Other languages
English (en)
Other versions
JP5113836B2 (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.)
Microsoft Corp
Original Assignee
Microsoft 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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2009538469A publication Critical patent/JP2009538469A/ja
Application granted granted Critical
Publication of JP5113836B2 publication Critical patent/JP5113836B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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

Abstract

複数のバーチャルマシン(VM)の各々は、ライブラリからの取り出しとホストでのリスタートのために、停止した形態でライブラリに格納されている。リスタートされる各VMは複数のソフトウェア構造体を含み、その各々は少なくとも最新状態にない可能性があるためソフトウェア更新を必要としている。最新状態にないVMを更新するために、そのVMは取り出され、メンテナンスホスト上でリスタートされ、各々の最新状態にないソフトウェア構造体は、必要とするソフトウェア更新を対応する更新ソースからパッチとして取得することによって更新されることが可能になっている。別の方法として、VMはコンピューティングデバイスにマウントされており、マウントされたVMの構成コンポーネントは、その各々のソフトウェア構造体が最新状態にあるかどうかを判断するために検査され、各々の最新状態にないソフトウェア構造体は、必要とするソフトウェア更新を対応する更新ソースからパッチとして取得し、そのパッチをマウントされたVMに適用することによって更新される。

Description

本発明は、バーチャルマシンまたはそのコンポーネントをメンテナンスするためにバーチャルマシンまたはそのコンポーネントをパッチ(patch)によって更新することに関する。具体的には、本発明は、ライブラリ内などに置かれていて、オフラインでそのバーチャルマシンを更新するシステムおよび方法に関する。さらに具体的には、本発明は、バーチャルマシンをライブラリから配置(deploy)し、オンライン状態にしてパッチを適用するためのシステムおよび方法、またはファイルを収めたドライブのようにバーチャルマシンをマウントしてパッチを適用するためのシステムおよび方法に関する。
当然に理解されるように、バーチャルマシン(virtual machine VM)は、ハードウェアシステムをエミュレートする目的でコンピューティングデバイスなど(すなわち、ホスト)上で動作するソフトウェア構造体(software construct)などである。代表例として、必ずしもそうとは限らないが、VMはアプリケーションなどであって、使用アプリケーション(use application)などをインスタンス化(instantiate)する一方で、それと同時に使用アプリケーションをホストデバイスから、またはホスト上の他のアプリケーションから隔離するためにホスト上で使用されることがある。1つの代表的な状況では、ホストは複数の配置されたVMを収容することができ、各VMは、ホストから利用可能なリソースを介してなんらかの事前定義された機能(predetermined function)を実行している。特に、各VMは、たとえバーチャル形態にあっても、どの点から見てもコンピューティングデバイスであることは事実であり、その使用アプリケーションから見ても、外部世界から見ても、バーチャルマシンはコンピューティングマシンとバーチャル形態の両方を表わしている。
代表例として、必ずしもそうとは限らないが、ホストはその各VMを別々のパーティション(partition)に配置している。そのようなホストは、監視(overseer)アプリケーションまたは「ハイパバイザ(hypervisor)」の働きをするVMモニタと共に仮想化層(virtualization layer)を含んでいることがあり、そこでは仮想化層はホストの各VMの監視側面を監視し、および/または管理しており、VMと外部世界とを結ぶリンクとなり得る働きをしている。
VMの顕著な特徴は、バーチャル構造体としてのVMを自由に停止し、リスタートできることであり、停止された場合にVMをファイルなどのように格納し、取り出せる(retrieve)ことである。具体的には、特定のコンピューティングデバイス上でインスタント化された場合のVMは、そのVMに関するすべてのデータ(その中にはVMに関する操作上のデータおよび状態情報が含まれている)を含んでいる限り適切にパッケージ化できる特異なソフトウェア構造体である。その結果、第1のホスト側のVMは、第1のホスト側でそのVMを停止し、停止したVMを第2のホスト側に移動し、移動したVMを第2のホスト側でリスタートなどをすることにより、第2のホスト側に移動し、または「マイグレーションする(migrate)」することができる。より一般的には、VMは第1のプラットフォームから第2のプラットフォームに同じようにマイグレーションすることができ、これらのプラットフォームは、異なるホストや同じホストの異なる構成などを表わしている。後者のケースでは、当然に理解されるように、コンピューティングデバイスは、例えば、メモリが追加されたり、プロセッサが変更されたり、追加の入力デバイスが設けられたり、選択デバイスが除去されたりした場合には、異なる構成になっていることがある。
同じように、VMのライブラリはメンテナンスされることがあり、その場合ライブラリ内の各VMは停止され、適切なコマンドを受けて取り出され(retrieve)、リスタートされることが可能な格納されたVMになっている。従って、一例として、特定の処理シナリオ(processing scenario)を必要としているユーザなどは、ライブラリに置かれていて、その処理シナリオに対処する適切なVMを探すためにライブラリを調べることができ、そのVMが見つかった場合には、そのVMを取り出し、リスタートすることができる。同じように、VMを配置したユーザなどは、任意の適切なポイントでVMを停止し、停止したVMを後の取り出しに備えて格納しておくことができ、ライブラリから取り出され格納されたVMは、リスタートさせて、処理を続けることができる。
当然に理解されるように、VMはオペレーティングシステム、1つまたは複数の使用アプリケーション、およびその他の種々のソフトウェア構造体(「ソフトウェア構造体」と総称する)を含み、VMの各ソフトウェア構造体は、パッチ(patch)などの形態で更新を随時必要とすることがある。以上から理解されるように、このような更新が行なわれるにはいくつかの理由があり、その中には、構造体を最新状態に保つこと、構造体に付加的機能を持たせること、構造体に関するセキュリティ問題を解決することなどがある。一般的に、構造体は、新規のパッチがあるかどうかを定期的に更新ソース(update source)に問い合わせる更新機能(update functionality)を含むことができ、そのようなパッチがあれば、更新機能はその新規パッチを取得し、ユーザなどの援助を受けて、および/または承認を得て、そのパッチをインストールする。
特に、停止され、ライブラリなどに格納されたVMはどのような処理も実行できないため、停止され、格納されたVMの構造体の更新機能は、必要に応じてパッチを取得し、インストールすることができない。以上から理解されるように、VMが停止され、格納されている間に構造体を更新できないことは、更新の内容が比較的重要でない場合はその不都合は軽微で済むことがあるが、更新の内容が相対的に重要な場合は大きな問題となることがある。前者のケースでは、相対的に重要でない更新は、例えば、付加的な表示機能を提供する更新である可能性がある。後者のケースでは、相対的に重要な更新は、例えば、セキュリティ問題を取り扱う更新である可能性がある。
特に、相対的に重要である更新に関しては、VMに更新を適用するのを不確定な時点まで待ち、その時点でVMを通常のようにライブラリから取り出し、リスタートすることが好ましくないことがある。従って、どのような更新でも、特にどのような重要な更新でも、ライブラリ内のVMに適用することを可能にするシステムおよび方法が望まれている。
上記の要求は、本発明による、コンピューティングデバイス上のバーチャルマシン(VM)のライブラリに関するシステムおよび方法を提供することによって満たされる。各VMは、ライブラリからの取り出し(retrieval)とホストコンピューティングデバイス上でのリスタートに備えて、停止した形態でライブラリに格納されている。ライブラリ内の各VMは、ホストコンピューティングデバイス上でリスタートされる場合にハードウェアシステムをエミュレートするソフトウェア構造体である。リスタートした各VMは複数のソフトウェア構造体を含んでいる。ライブラリ内の各VMの各ソフトウェア構造体は、少なくとも潜在的に最新状態にないため、ソフトウェア更新を必要としている。
本発明による方法では、ライブラリ内の各VMについて、そのVMの各ソフトウェア構造体が最新状態にあるかどうかが定期的に判断される。VMのいずれかのソフトウェア構造体が最新状態になければ、ライブラリ内において最新状態にないとのマークがそのVMに付けられる。ある時点で、取り出されてホストコンピューティングデバイス上でリスタートされるVMがライブラリから選択されたことが受け取られる。選択したVMにライブラリ内で最新状態にないとのマークが付けられていると、そのVMは、どのホストコンピューティングデバイスにもアクセスできないメンテナンスホストコンピューティングデバイスで更新され、そのあと更新したVMはホストコンピューティングデバイスでリスタートされる。
VMを更新するために、そのVMはライブラリから取り出され、メンテナンスホストコンピューティングデバイス上でリスタートされ、リスタートしたVMの各最新状態にないソフトウェア構造体は、必要とするソフトウェア更新を対応する更新ソースから少なくとも1つのパッチとして取得することにより、メンテナンスホストコンピューティングデバイスで更新されることが可能になる。別の方法として、VMはコンピューティングデバイスにマウントされ、マウントしたVMの構成コンポーネントは、そのVMの各ソフトウェア構造体が最新状態にあるどうかを判断するために検査され、各最新状態にないソフトウェア構造体は、必要とするソフトウェア更新を対応する更新ソースから少なくとも1つのパッチとして取得し、各パッチをマウントしたVMに適用することによって更新される。
上述した簡単な説明および以下の本発明の実施形態を記載した詳細な説明では、共に、その理解をより容易にするために添付図面が参照される。本発明を分かりやすく説明するために、図面には現在好ましいとされる実施形態が示されている。なお、当然に理解されるように、本発明は図示の正確な構成および手段に限定されるものではない。
(コンピュータ環境)
図1および以下の説明は、本発明および/またはその一部を実現することができる適当なコンピューティング環境の概要を簡単に説明することを目的としている。必ずしもその必要はないが、本発明は、プログラムモジュールのようにクライアントワークステーションやサーバなどのコンピュータによって実行されるコンピュータ実行可能命令の一般的なコンテキストにおいて説明される。一般的に、プログラムモジュールの中には、特定のタスクを実行する、または特定の抽象データ型を実現するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれる。さらに、当然に理解されるように、本発明および/またはその一部は、その他のコンピュータシステム構成と共に実施されることもあり、その中には、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースまたはプログラマブルコンシューマエレクトロニクス、ネットワークPC、ミニコンピュータ、メインフレームコンピュータなどが含まれる。本発明は、通信ネットワークを介してリンクされたリモート処理デバイスによってタスクが実行されるような分散コンピューティング環境において実施されることもある。分散コンピューティング環境では、プログラムモジュールはローカルとリモートの両方のメモリストレージデバイスに置かれることがある。
図1に示すように、例示の汎用コンピューティングシステムは従来のパーソナルコンピュータ120などを含んでおり、その中には、処理ユニット121、システムメモリ122、およびシステムメモリを含む種々のシステムコンポーネントを処理ユニット121に結合するシステムバス123が含まれている。システムバス123は、いくつかのタイプのバス構造のうちのいずれにすることも可能であり、その中には、種々のバスアーキテクチャのいずれかを使用したメモリバスまたはメモリコントローラ、周辺バスおよびローカルバスが含まれる。システムメモリにはROM(リードオンリメモリ)124およびRAM(ランダムアクセスメモリ)125が含まれる。起動時などに、パーソナルコンピュータ120内のエレメント間で情報を転送するのを支援する基本ルーチンで構成されたBIOS(基本入出力システム)126は、ROM124に格納されている。
パーソナルコンピュータ120は、ハードディスク(図示せず)との間で読み書きを行なうハードディスクドライブ127、取り外し可能磁気ディスク129との間で読み書きを行なう磁気ディスクドライブ128、およびCD−ROMや他の光媒体などの取り外し可能光ディスク131との間で読み書きを行なう光ディスクドライブ130を装備していることもある。ハードディスクドライブ127、磁気ディスクドライブ128、および光ディスクドライブ130は、それぞれハードディスクドライブインタフェース132、磁気ディスクドライブインタフェース133および光ドライブインタフェース134によってシステムバス123に接続されている。これらのドライブおよびその関連コンピュータ可読媒体は、コンピュータ可読命令、データ構造、プログラムモジュールおよびその他のデータをパーソナルコンピュータ120のために格納する不揮発性ストレージとなっている。
本明細書に記載されている例示環境はハードディスク、取り外し可能磁気ディスク129および取り外し可能光ディスク131を採用しているが、当然に理解されるように、コンピュータによってアクセス可能であるデータを格納することができる他のタイプのコンピュータ可読媒体が例示動作環境で使用されることもある。このような他のタイプの媒体としては、磁気カセット、フラッシュメモリカード、デジタルビデオディスク、ベルヌーイ(Bernoulli)カートリッジ、RAM(ランダムアクセスメモリ)、ROM(リードオンリメモリ)などがある。
複数のプログラムモジュールをハードディスク、磁気ディスク129、光ディスク131、ROM124またはRAM125に格納することができ、その中にはオペレーティングシステム135、1つまたは複数のアプリケーションプログラム136、その他のプログラムモジュール140およびプログラムデータ138が含まれている。ユーザは、キーボード140やポインティングデバイス142などの入力デバイスを介してコマンドおよび情報をパーソナルコンピュータに入力することができる。その他の入力デバイス(図示せず)としては、マイクロホン、ジョイスティック、ゲームパッド、サテライトディッシュ、スキャナなどがある。これらの入力デバイスおよびその他の入力デバイスは、システムバスに結合されたシリアルポートインタフェース146を介して処理ユニット121に接続されることが多いが、パラレルポート、ゲームポートまたはUSB(ユニバーサルシリアルバス)などの他のインタフェースによって接続されることもある。モニタ147または他のタイプのディスプレイデバイスも、ビデオアダプタ148などのインタフェースを介してシステムバス123に接続されている。モニタ147のほかに、パーソナルコンピュータは、スピーカやプリンタのような、他の周辺出力デバイス(図示せず)を装備しているのが一般的である。図1の例示システムは、ホストアダプタ155、SCSI(Small Computer System Interface)バス156、およびSCSIバス156に接続された外部ストレージデバイス162も装備している。
パーソナルコンピュータ120は、リモートコンピュータ149のような1つまたは複数のリモートコンピュータとの論理接続を使用したネットワーク構築環境で動作することができる。リモートコンピュータ149として可能なものに、別のパーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイスまたはその他の共通ネットワークノードがあり、図1には、メモリストレージデバイス150だけが示されているが、パーソナルコンピュータ120に関連して上述したエレメントの多くまたはすべてを備えているのが一般的である。図1に示した論理接続としては、LAN(ローカルエリアネットワーク)151とWAN(ワイドエリアネットワーク)152がある。このようなネットワーキング環境はオフィス、企業内コンピュータネットワーク(enterprise-wide computer network)、イントラネット、およびインターネットにおいて普及している。
LANネットワーキング環境で使用される場合、パーソナルコンピュータ120はネットワークインタフェースまたはアダプタ153を介してLAN151に接続される。WANネットワーキング環境で使用される場合、パーソナルコンピュータ120は、インターネットのようなワイドエリアネットワーク152上の通信を確立するためのモデム154や他の手段を備えるのが一般的である。モデム154は内蔵型と外付け型があり、どちらもシリアルポートインタフェース146を介してシステムバス123に接続されている。ネットワーク構築環境では、パーソナルコンピュータ120に関連して図示したプログラムモジュールまたはその一部は、リモートメモリストレージデバイスに格納されていることがある。以上から理解されるように、図示のネットワーク接続は例示であり、コンピュータ間の通信リンクを確立する他の手段が使用されることもある。
(ホストおよびバーチャルマシンライブラリ)
次に図2を参照して説明すると、図2に示すように、本発明はバーチャルマシン(VM)12のライブラリ10のコンテキストにおいて特定の適用性を有しており、各々のVMは、停止した形態で、さらには最も起り得るシャットダウンした形態でライブラリ10に格納され、ライブラリ10から取り出されて、ホスト14上で適当な方法でリスタートされることが可能になっている。ここで当然に理解されるように、ライブラリ10、VM12、およびホストは、それが適切なものであれば、本発明の趣旨と範囲から逸脱しない限り、どのようなライブラリ、VMおよびホストであってもよい。そのようなライブラリ、VMおよびホストは公知であるか、あるいはこの分野では一般に明らかであるので、本明細書では、すでに知られている内容以上に詳しく説明することは省略する。
上述したように、ライブラリ10内の各VM12は、ホスト14上でリスタートされた場合にハードウェアシステムをエミュレートするソフトウェア構造体などである。従って、VM12は、使用アプリケーションなどをインスタンス化するためにホスト14のリソースを使用する一方で、それと同時にその使用アプリケーションをホスト14およびホスト14上の他のアプリケーションから隔離することを可能にする。図示のように、ホスト14は複数の配置されたVM12を収容することができ、そこでは各VM12はなんらかの事前定義された機能を独立に実行する。例えば、ホスト14上に配置されたVM12の少なくとも一部はデータサーバとして働くことがあり、そのVM12の少なくとも一部はホスト14に結合されたネットワーク16に対してネットワークサーバとして働くことがあり、そのVM12の少なくとも一部はメールサーバとして働くことがあり、そのVM12の少なくとも一部は低レベルの機能を実行することがあり、その中にはメンテナンス機能、データコレクション、ハードウェアモニタリング、エラー訂正、ファイル管理などが含まれる。特に、各VM12は、たとえバーチャル形態にあっても、どの点から見てもコンピューティングマシンである。
ホスト14自体は、デスクトップコンピュータ、ラップトップコンピュータ、ハンドヘルドコンピュータ、データアシスタント、メンテナンスコンピュータ、または1つまたは複数のVM12のホストとなるために必要な機能と能力を備えた他のタイプのコンピューティングデバイスなどのように、適当なコンピューティングデバイスとすることができる。なお、各VMは、重要なメモリ、I/Oオペレーション、ストレージスペースおよびプロセッサ能力をホスト14に要求することがあることを留意すると、また、ホスト14は、任意のどの時点においても2、5、10、20またはそれ以上のVM12を収容するものと期待されることがあることを留意すると、ホスト14は、そのようなVM12を実際に収容できる重要なパワーとリソースを有しているはずである。
ライブラリ10は、本発明の趣旨と範囲を逸脱しない限り、どのような種類のコンピューティングデバイスにも置かれた、どのような種類のライブラリであっても構わない。例えば、ライブラリ10は、ライブラリ10のVM12のすべてを収容する十分な容量のサーバに置かれていることもあれば、そのような十分な容量の適当なディスクドライブに置かれているだけのこともある。後者のケースでは、ディスクドライバは、ホスト14の一部であることさえある。なお、ここで注意すべきことは、複数のホスト14が利用可能である場合には、かかるライブラリ10は、かかるホスト14から物理的に切り離されている可能性があるが、ホストに通信可能に結合されていることである。あるいは、ライブラリ10自体はバーチャルマシン上に置かれていることもある。
上述したように、バーチャル構造体としての各VM12は、自由に停止し、リスタートすることができ、停止時には、ファイルなどのようにライブラリ10に格納し、そこから取り出すことができる。具体的には、各VM12は、ソフトウェア構造体がそのVM12に関するすべてのデータ(その中にはVM12に関する操作上のデータと状態情報が含まれる)を含んでいる限り、適切にパッケージ化することができる特別なソフトウェア構造体である。従って、第1のホスト14側のVM14は、第1のホスト14側のVM12を停止し、停止したVM12を第2のホスト14に移動し、移動したVM12を第2のホスト14側でリスタートするだけで、ホスト14間で移動し、または「マイグレーション」することをできる。
典型的な例として、必ずしもその必要はないが、図2のシステムは、適当なコンピューティングデバイスなどで動作するVMコントローラ18を含んでいる。主として、当然に理解されるように、このVMコントローラ18は格納されたVM12をライブラリ10から取り出し、取り出したVM12を特定のホスト14上でリスタートすることによってそのVM12を配置するように動作すると共に、配置したVM12を停止し、停止したVM12をライブラリ10に格納するように動作し、これらはすべてユーザなどの然るべき指示に従って行なわれる。従って、特定の処理シナリオを必要とするユーザなどは、そのシナリオに対処する適切なVM12を探すためにVMコントローラ18を介してライブラリ10を調べることができ、そのVM12が見つかると、ユーザはVMコントローラ18を使用してそのVM12を取り出し、リスタートすることができる。同様に、VMを配置したユーザなどは、いずれかの適当な時点でそのVMを停止し、停止したVMをその後の取り出しに備えて格納しておくことができ、格納されたVMがライブラリから取り出されたとき、処理を続行するためにリスタートすることができる。ここで注意すべきことは、VMコントローラ18は、本発明の趣旨と範囲から逸脱しない限り、適切であればどのようなVMコントローラでも構わないことである。このようなVMコントローラ18は公知であるか、あるいはこの分野では一般に明らかであるので、本明細書では、すでに知られている内容以上に詳しく説明することは省略する。
(パッチによる更新)
上述したように、ライブラリ10内の各VM12は、物理的な意味ではそれ自体がソフトウェア構造体であるが、バーチャルの意味ではVM12自体は複数のソフトウェア構造体を含み、その中にはレジストリなどを備えたオペレーティングシステム、1つまたは複数の使用アプリケーション、種々のデバイスドライバとデバイスライブラリなどが含まれている(すなわち、「ソフトウェア構造体」と総称する)。特に、どのVM12の場合も、その各ソフトウェア構造体はパッチなどの形態をしたソフトウェア更新を随時必要とすることがある。パッチ20などの形態をしたソフトウェア更新は公知であるか、あるいはこの分野では一般に明らかであるので、本明細書では、すでに知られている内容以上に詳しく説明することは省略する。当然に理解されるように、このような更新が行なわれる理由にはいくつかあり、その中には、ソフトウェア構造体を最新状態に保つこと、構造体に付加的機能をもたせること、構造体に対するセキュリティ問題に対処すること、などが含まれる。従って、本発明は、どのような特定のソフトウェア更新やパッチ20(以下「パッチ20」という)またはそれらのタイプとも関係なく動作することが可能である。
一般的に、パッチ20は、VM12のソフトウェア構造体のように、少なくとも部分的に自動化された方法でソフトウェア構造体に適用することができる。そのために、構造体には、新規パッチ20を探すために1つまたは複数の更新ソース22を定期的に調べる更新機能が含まれていることがあり、新規パッチがあれば、更新機能は各新規パッチ20を更新ソース22から取得し、おそらくはユーザなどの援助を受けておよび/または承諾を得てその更新をインストールしている。構造体と関連のある更新機能は公知であるか、あるいはこの分野では一般に明らかであるので、本明細書ではこれ以上詳しく説明することは省略する。従って、本発明は、どのような特定の更新機能とも関係なく動作することが可能である。
なお、以上から理解されるように、VM12のどの特定の構造体の場合も、その更新機能が動作するためには、VM12自体が配置されて、動作していることが必要である。言い換えると、停止され、ライブラリなどに格納されたVMはどのような処理も実行することができないので、停止され、格納されたVMの構造体の更新機能はパッチ20を更新ソース22から取得し、それをインストールすることができない。そこで、以上を要約すると、ライブラリ10に置かれているVM12のソフトウェア構造体は更新することができない。その結果、ソフトウェア構造体は、VM12がライブラリ10から取り出されて、ホスト14上でリスタートされるまで更新を待たされることになる。
なお、以上から理解されるように、ライブラリ10に格納されたVM12の特定の構造体に対してセキュリティ更新のような重要な更新が出される場合も十分に起り得る。そのようなことが起ると、VM12は、セキュリティ更新が防止しようとしているセキュリティ脅威から保護されないので、そのような未保護状態にある構造体はどのホスト14にも配置されるべきではない。具体的には、特にネットワーク16のような、どのネットワークにもホスト14がアクセスできる場合には、未保護のVM12を配置すると、ネットワーク16、ホスト14、ネットワーク16上の他のホスト14などのセキュリティ違反を含む、多数の重大なセキュリティ事態のいずれかが発生するのを許容する可能性がある。
従って、引き続き図2を参照して説明すると、本発明の一実施形態において、VMコントローラ18はVM12をメンテナンスホスト14mに配置し、そこではメンテナンスホスト14mは適当な通信カップリングを介して更新ソース22にアクセスできるが、ネットワーク16や他の方法を介してどのホスト14にもアクセスできないようになっている。具体的には、図3を参照して説明すると、VMコントローラ18は、1つまたは複数のVM12の各々を更新のために定期的にメンテナンスホスト14mに配置するようにスケジューラ24(図2)に基づいて動作することができる(ステップ301)。以上から理解されるように、メンテナンスホスト14mでは、配置された各VM12のソフトウェア構造体の1つまたは複数は、適当な方法で取得されたパッチ20で更新され(ステップ305)、更新されたVM12は停止され、更新した形態でライブラリ10に格納され、ホスト14での次の配置を待つことになる(ステップ307)。配置されたVM12のソフトウェア構造体は、ソフトウェア構造体によってトリガされたプロセスに基づいて更新されることもあれば(ステップ303a)、VMコントローラ18によってトリガされたプロセスに基づいて更新されることもある(303b)。後者のケースでは、VMコントローラ18は適当な公知インタフェースを使用して、上記トリガリングを行なうことがある。
理解されるように、スケジューラ24は本発明の趣旨と範囲から逸脱しない限り、それが適切であれば、どのようなスケジューラでもよく、そのようなものとして、例えば、VMコントローラ18の一部であって、適切な基準に基づいて更新するように各VM12をスケジュールできるタスクスケジューラがある。例えば、スケジューラ24は、毎週1回、2週ごとに1回といったように、VMコントローラ18が各VM12をメンテナンスホスト14mに配置するように動作することができる。そのようなスケジューラおよびそのようなスケジューリングは公知であるか、あるいはこの分野では一般に明らかであるので、本明細書ではこれ以上詳しく説明することは省略する。また、以上から明らかであるように、メンテナンスホスト14mは、メンテナンスホストが、配置された各VM12を他のホスト14から隔離するか、さもなければ隔絶し、更新ソース22へのアクセスだけを供することを条件に、本発明の趣旨と範囲から逸脱しない限り、それが適切であれば、どのようなホストでも構わない。
以上から理解されるように、図2のスケジューラ24に基づいて図3に図示したように動作するVMコントローラ18は、VM12に更新が必要であるかどうかに関係なく各VM12がメンテナンスホスト14mに配置されている点で若干非効率である。従って、本発明の一実施形態では、図4に示すように、スケジュールした各VM12を最初にメンテナンスホスト14mに配置するのではなく、VMコントローラ18はメンテナンスホスト14m、ライブラリ10などのコンピューティングデバイスにVM12をマウントして、VM12の構成コンポーネントが検査されることを可能にしている(ステップ401)。VM12を検査するためにVM12をマウントすることは公知であるか、あるいはこの分野では一般に明らかであるので、本明細書ではこれ以上詳しく説明することは省略する。従って、本発明の趣旨と範囲から逸脱しない限り、どのような形態のマウンティングでも行なうことが可能である。例えば、VM12は、複数のファイルなどを収めたディスクドライブのようにその構成コンポーネントが検査されるようにマウントすることができる。
マウントされたあと、VMコントローラ18は、VM12の種々の構造体が最新状態にあるかどうかを判断するために、VM12のさまざまな部分を検査することができる(ステップ403)。具体的には、以上の説明から理解されるように、この判断は、マウントしたVM12からの情報、すなわち、ファイルのバージョン、レジストリ情報、および1つまたは複数のパッチ20による更新が必要かどうかの判断のために一般に使用されるその他のデータを調べることによって、VMコントローラ18によって行うことができる。1つまたは複数のパッチ20が実際に必要であると判断された場合、VMコントローラ18は、各パッチ20を適切な更新ソース22から取得し(ステップ405)、そのパッチをVM12に適用することを実行する。特に、このパッチ20はマウントされたVM12に適用されることも(ステップ407a)、必要ならば、メンテナンスホスト14mに配置されたVM12に適用されることもある(ステップ407b)。
前者のケースでは、ステップ407aにおけるように、VMコントローラ18は、マウントされたVM12上のファイル置換(file substitution)、ファイル修正(file modifications)などによって各パッチ20を適用することになる。レジストリ修正が必要ならば、その修正は、マウントされたVM12上のレジストリハイブ(registry hive)ファイルを見つけ、見つけたレジストリハイブをメンテナンスホスト14m、ライブラリ10などにロードし、ロードしたハイブを修正し、修正したハイブを、見つかった対応するハイブの置換として保存することにより行なわれる。後者のケースでは、ステップ407bにおけるように、VMコントローラ18は最初にVM12をメンテナンスホスト14mなどからディスマウント(dismount)し、次にそのVM12をそのメンテナンスホスト14m上に配置することになる。最後に、VM12が必要とするすべてのパッチ20で更新されたあと、VMコントローラ18は、VM12をメンテナンスホスト14mなどからディスマウントし、ディスマウントしたVM12をライブラリ10に格納するか(ステップ409a)、あるいは配置したVM12を停止し、停止したVM12をライブラリ10に格納する(ステップ409b)ことによって、更新したVM12をライブラリ10に戻すことができる。
以上から理解されるように、図4に示すように動作するVMコントローラ18は、各VM12がユーザなどによって使用されるかどうかに関係なく各VM12が更新されている点で、時に非効率になることがある。すなわち、各VM12は、VM12が配置されていなくても極めてまれに更新される。従って、本発明の一実施形態では、図5に示すように、最新状態にない各VM12を実際に更新するのではなく、VMコントローラは最新状態にないとのマークをVM12に付け、VM12が実際に更新されるのはVM12が実際に配置される前のみである。具体的には、前述したように、VMコントローラ18は、例えば、ステップ401におけるように、VM12をマウントし、VM12の構成コンポーネントが検査されるのを可能にすることによって、スケジュールされた各VM12が最新状態にあるかどうかを判断する(ステップ501)。なお、ここでは、最新状態にない各VM12は、例えば、ライブラリ10内のVM12に適当な注記(notation)を付けることによって、適当な方法で最新状態にないとのマークが付けられている。従って、配置される各VM12をライブラリ12から選択したとき(ステップ505)、VMコントローラ18は、選択したVM12に最新状態にないとのマークが付けられているかどうかを最初にチェックする(ステップ507)。最新状態になければ、VM12は、ステップ301とそれ以降またはステップ401とそれ以降のように最初にメンテナンスホスト14mに配置またはマウントされて更新され(ステップ509)、最新状態にないVM12は選択したユーザによる使用に備えてホスト14に配置される(ステップ511)。
(結論)
本発明に関連して実行されるプロセスを実施するために必要なプログラミングは比較的理解しやすいので、プログラミング関係の分野では一般に明らかであるはずである。従って、本明細書にはプログラミングは添付されていない。本発明の趣旨と範囲から逸脱しない限り、どのようなプログラミングを使用しても本発明を実施することが可能である。
上述してきた説明から明らかであるように、本発明は、ライブラリ10に格納されたVM12に更新を適用するための新規かつ有用なシステムおよび方法から構成されている。当然に理解されるように、上述してきた実施形態はその新規概念から逸脱しない限り、種々の変更が可能である。従って、当然に理解されるように、本発明は本明細書に開示した特定の実施形態に限定されるものではなく、請求項に記載された本発明の趣旨と範囲に属する種々の変更を包含するものである。
本発明の側面および/またはその一部を取り入れることが可能な汎用コンピュータシステムを示すブロック図である。 バーチャルマシン(VM)のライブラリを備え、バーチャルマシンの各々をメンテナンスホストでリスタートするか、あるいはコンピューティングデバイスにマウントして、本発明の実施形態に従って更新することを可能にするシステムを示すブロック図である。 本発明の一実施形態に従って図2のシステムに関連して実行される主要ステップを示すフロー図である。 本発明の一実施形態に従って図2のシステムに関連して実行される主要ステップを示すフロー図である。 本発明の一実施形態に従って図2のシステムに関連して実行される主要ステップを示すフロー図である。

Claims (20)

  1. コンピューティングデバイス上のバーチャルマシン(VM)のライブラリに関する方法であって、各VMは、前記ライブラリからの取り出しとホストコンピューティングデバイス上でのリスタートに備えて前記ライブラリ内に停止した形態で格納されており、前記ライブラリ内の各VMは、前記ホストコンピューティングデバイス上でリスタートされたときハードウェアシステムをエミュレートするソフトウェア構造体であり、各リスタートされたVMは複数の前記ソフトウェア構造体を含んでおり、前記ライブラリ内の各VMの少なくとも1つの前記ソフトウェア構造体は最新状態にないためソフトウェア更新を必要としている該方法は、前記ライブラリ内の各VMについて、
    前記VMを定期的に前記ライブラリから取り出し、取り出したVMを、少なくとも1つの更新ソースにアクセスできるが、どのホストコンピューティングデバイスにもアクセスできないメンテナンスホストコンピューティングデバイス上でリスタートするステップと、
    リスタートした前記VMの各最新状態にないソフトウェア構造体が、必要とするソフトウェア更新を対応する前記更新ソースから少なくとも1つのパッチとして取得することによって前記メンテナンスホストで更新されるのを可能にするステップと、
    更新した前記VMを停止し、前記ホストコンピューティングデバイス上で取り出され、リスタートされるのを待つために、停止した前記VMを前記ライブラリに格納しておくステップとを含むことを特徴とする方法。
  2. リスタートした前記VMの前記各最新状態にないソフトウェア構造体が更新されるように、外部からトリガするステップを含むことを特徴とする請求項1に記載の方法。
  3. リスタートした前記VMの前記各最新状態にないソフトウェア構造体が更新されるように、内部で自身をトリガするステップを含むことを特徴とする請求項1に記載の方法。
  4. VMコントローラは、格納されたVMを前記ライブラリから取り出し、取り出した前記VMを前記メンテナンスホストコンピューティングデバイス上でリスタートすると共に、リスタートした前記VMを停止し、停止した前記VMを前記ライブラリに格納するように動作し、該方法は、前記VMコントローラによって実行されることを特徴とする請求項1に記載の方法。
  5. 前記VMコントローラは、スケジューラに基づいて前記ライブラリの各VMを更新のために定期的に前記メンテナンスホストコンピューティングデバイスに配置するように動作することを含むことを特徴とする請求項4に記載の方法。
  6. 前記ライブラリの各VMを更新のために前記メンテナンスホストコンピューティングデバイスに定期的に配置するようにスケジューラに基づいて動作することを含むことを特徴とする請求項1に記載の方法。
  7. コンピューティングデバイス上のバーチャルマシン(VM)のライブラリに関する方法であって、各VMは、前記ライブラリからの取り出しとホストコンピューティングデバイス上でのリスタートに備えて前記ライブラリに停止した形態で格納されており、前記ライブラリ内の各VMは、前記ホストコンピューティングデバイス上でリスタートされたときハードウェアシステムをエミュレートするソフトウェア構造体であり、各リスタートされた前記VMは複数の前記ソフトウェア構造体を含んでおり、前記ライブラリ内の各VMの少なくとも1つの前記ソフトウェア構造体は最新状態にないためソフトウェア更新を必要としている該方法は、前記ライブラリ内の各VMについて、
    前記VMを前記ライブラリから定期的に取り出し、取り出したVMを、どの前記ホストコンピューティングデバイスにもアクセスできないコンピューティングデバイスにマウントするステップと、
    前記VMの各ソフトウェア構造体が最新状態にあるかどうかを判断するためにマウントした前記VMの構成コンポーネントを検査し、各最新状態にないソフトウェア構造体について、必要とするソフトウェア更新を対応する更新ソースから少なくとも1つのパッチとして取得し、各パッチをマウントしたVMに適用することによって前記各最新状態にないソフトウェア構造体をメンテナンスホストコンピューティングデバイス上で更新するステップと、
    前記ホストコンピューティングデバイス上で更新した前記VMが取り出され、リスタートされるのを待つために、更新した前記VMを前記ライブラリに格納しておくステップとを含むことを特徴とする方法。
  8. 前記コンピューティングデバイスにマウントされたままで、前記最新状態にないソフトウェア構造体に各パッチを適用するステップを含み、該方法は、更新した前記VMを前記メンテナンスホストコンピューティングデバイスからディスマウントしたあと、更新した前記VMを前記ライブラリに格納するステップをさらに含むことを特徴とする請求項7に記載の方法。
  9. 前記メンテナンスホストコンピューティングデバイス上でリスタートされたときの前記最新状態にないソフトウェア構造体に各パッチを適用すること、および、前記メンテナンスホストコンピューティングデバイスから前記VMをディスマウントしたあと、前記メンテナンスホストコンピューティングデバイス上で前記VMをリスタートすることを含み、該方法は、更新した前記VMをメンテナンスホストコンピューティングデバイスで停止したあと、更新した前記VMを前記ライブラリに格納することをさらに含むことを特徴とする請求項7に記載の方法。
  10. 取り出した前記VMを前記コンピューティングデバイスにマウントして、マウントした前記VMの構成コンポーネントが、複数のファイルを収めたディスクドライブのように検査されることを可能にすることを含むことを特徴とする請求項7に記載の方法。
  11. マウントした前記VMの前記各ソフトウェア構造体が最新状態にあるかどうかを判断するために前記VMの構成コンポーネントを検査することは、ファイルバージョンとレジストリ情報を含む、マウントした前記VMからの情報をレビューすることを含むことを特徴とする請求項7に記載の方法。
  12. VMコントローラは、格納した前記VMを前記ライブラリから取り出し、取り出したVMを前記コンピューティングデバイスにマウントするように動作すると共に、更新した前記VMを前記ライブラリに格納するように動作し、該方法は、前記VMコントローラによって実行されることを特徴とする請求項7に記載の方法。
  13. 前記VMコントローラは、スケジューラに基づいて前記ライブラリの各VMを更新のために定期的に前記メンテナンスホストコンピューティングデバイスに配置するように動作することを含むことを特徴とする請求項12に記載の方法。
  14. 前記ライブラリの各VMを、更新のために前記メンテナンスホストコンピューティングデバイスに定期的に配置するようにスケジューラに基づいて動作することを含むことを特徴とする請求項1に記載の方法。
  15. コンピューティングデバイス上のバーチャルマシン(VM)のライブラリに関する方法であって、各VMは、前記ライブラリからの取り出しとホストコンピューティングデバイス上でのリスタートに備えて前記ライブラリに停止した形態で格納されており、前記ライブラリ内の各VMは、前記ホストコンピューティングデバイス上でリスタートされたときハードウェアシステムをエミュレートするソフトウェア構造体であり、各リスタートされたVMは複数の前記ソフトウェア構造体を含んでおり、前記ライブラリ内の各VMの前記各ソフトウェア構造体は少なくとも潜在的に最新状態にないためにソフトウェア更新を必要としている該方法は、前記ライブラリ内の各VMについて、
    前記VMの前記各ソフトウェア構造体が最新状態にあるかどうかを検査し、前記VMのいずれかの前記ソフトウェア構造体が最新状態になければ、前記ライブラリ内の前記VMに最新状態にないとのマークを付けるステップと、
    前記ホストコンピューティングデバイス上で取り出され、リスタートされる前記VMの前記ライブラリからの選択を受け取るステップと、
    選択した前記VMに前記ライブラリ内で最新状態にないとの前記マークが付けられているかどうかを判断し、最新状態になければ、どの前記ホストコンピューティングデバイスにもアクセスできないメンテナンスホストコンピューティングデバイス上でそのVMを更新するステップと、
    更新した前記VMを前記ホストコンピューティングデバイス上でリスタートするステップとを含むことを特徴とする方法。
  16. VMコントローラは、格納した前記VMを前記ライブラリから取り出し、取り出した前記VMを前記メンテナンスホストコンピューティングデバイス上でリスタートするように動作すると共に、リスタートした前記VMを停止し、停止した前記VMを前記ライブラリに格納するように動作し、該方法は、前記VMコントローラによって実行されることを特徴とする請求項15に記載の方法。
  17. 前記VMコントローラは、前記VMの前記各ソフトウェア構造体が最新状態にあるかどうかを定期的に判断するためにスケジューラに基づいて動作することを含むことを特徴とする請求項16に記載の方法。
  18. 前記VMの前記各ソフトウェア構造体が最新状態にあるかどうかを定期的に判断するためにスケジューラに基づいて動作することを含むことを特徴とする請求項15に記載の方法。
  19. 前記VMを更新するステップは、
    前記VMを前記ライブラリから取り出し、取り出したVMを前記メンテナンスホストコンピューティングデバイス上でリスタートし、
    リスタートした前記VMの前記各最新状態にないソフトウェア構造体が、必要とするソフトウェア更新を対応する更新ソースから少なくとも1つのパッチとして取得することによって前記メンテナンスホストコンピューティングデバイス上で更新されるのを可能にすること含むことを特徴とする請求項15に記載の方法。
  20. 前記VMを更新するステップは、
    前記VMを前記ライブラリから取り出し、取り出したVMを前記コンピューティングデバイスにマウントし、
    マウントした前記VMの前記各ソフトウェア構造体が最新状態にあるかどうかを判断するためにそのマウントした前記VMの構成コンポーネントを検査し、前記各最新状態にないソフトウェア構造体について、必要とするソフトウェア更新を対応する更新ソースから少なくとも1つのパッチとして取得し、各パッチをマウントした前記VMに適用することによって、マウントした前記VMを前記メンテナンスホストコンピューティングデバイス上で更新することを含むことを特徴とする請求項15に記載の方法。
JP2009512003A 2006-05-22 2007-03-15 パッチなどによるバーチャルマシンの更新 Active JP5113836B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/439,395 US8291409B2 (en) 2006-05-22 2006-05-22 Updating virtual machine with patch on host that does not have network access
US11/439,395 2006-05-22
PCT/US2007/006577 WO2007136448A1 (en) 2006-05-22 2007-03-15 Updating virtual machine with patch or the like

Publications (2)

Publication Number Publication Date
JP2009538469A true JP2009538469A (ja) 2009-11-05
JP5113836B2 JP5113836B2 (ja) 2013-01-09

Family

ID=38713349

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009512003A Active JP5113836B2 (ja) 2006-05-22 2007-03-15 パッチなどによるバーチャルマシンの更新

Country Status (14)

Country Link
US (1) US8291409B2 (ja)
EP (1) EP2024849B1 (ja)
JP (1) JP5113836B2 (ja)
KR (1) KR101279696B1 (ja)
CN (1) CN101454765B (ja)
AU (1) AU2007254474B9 (ja)
BR (1) BRPI0712660B1 (ja)
CA (1) CA2649888C (ja)
HK (1) HK1129748A1 (ja)
MX (1) MX2008014860A (ja)
MY (1) MY151935A (ja)
RU (1) RU2439677C2 (ja)
TW (1) TWI431531B (ja)
WO (1) WO2007136448A1 (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009217395A (ja) * 2008-03-07 2009-09-24 Nec Corp 仮想サーバソフトウェア更新システム、仮想サーバソフトウェア更新方法、サーバ、及びサーバ用プログラム
WO2011117954A1 (ja) * 2010-03-20 2011-09-29 株式会社Pfu 仮想マシン管理装置、仮想マシン管理方法、及びプログラム
JP2012069149A (ja) * 2011-11-29 2012-04-05 Toshiba Corp 計算機および計算機の制御方法
JP2013522769A (ja) * 2010-03-15 2013-06-13 マイクロソフト コーポレーション 仮想マシンイメージ更新サービス
JP2013522794A (ja) * 2010-03-23 2013-06-13 富士通株式会社 仮想化及び認証を用いた電子ネットワークにおける複数のクライアントの遠隔保守のためのシステム及び方法
US9170802B2 (en) 2013-06-24 2015-10-27 Fujitsu Limited Method and information processing apparatus for extracting software correction patch for virtual machine
US9477460B2 (en) 2012-09-04 2016-10-25 Fujitsu Limited Non-transitory computer-readable storage medium for selective application of update programs dependent upon a load of a virtual machine and related apparatus and method

Families Citing this family (80)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8539063B1 (en) 2003-08-29 2013-09-17 Mcafee, Inc. Method and system for containment of networked application client software by explicit human input
US7840968B1 (en) 2003-12-17 2010-11-23 Mcafee, Inc. Method and system for containment of usage of language interfaces
US7873955B1 (en) 2004-09-07 2011-01-18 Mcafee, Inc. Solidifying the executable software set of a computer
US7856661B1 (en) * 2005-07-14 2010-12-21 Mcafee, Inc. Classification of software on networked systems
US7757269B1 (en) 2006-02-02 2010-07-13 Mcafee, Inc. Enforcing alignment of approved changes and deployed changes in the software change life-cycle
US7895573B1 (en) 2006-03-27 2011-02-22 Mcafee, Inc. Execution environment file inventory
US7870387B1 (en) 2006-04-07 2011-01-11 Mcafee, Inc. Program-based authorization
US8352930B1 (en) 2006-04-24 2013-01-08 Mcafee, Inc. Software modification by group to minimize breakage
US8555404B1 (en) 2006-05-18 2013-10-08 Mcafee, Inc. Connectivity-based authorization
US20080126792A1 (en) * 2006-09-19 2008-05-29 Herington Daniel E Systems and methods for achieving minimal rebooting during system update operations
US9424154B2 (en) 2007-01-10 2016-08-23 Mcafee, Inc. Method of and system for computer system state checks
US8332929B1 (en) 2007-01-10 2012-12-11 Mcafee, Inc. Method and apparatus for process enforced configuration management
US8407696B2 (en) * 2007-06-04 2013-03-26 International Business Machines Corporation Method for delivering, testing, and applying software patches or other changes to a conventionally installed application in virtual application containers
CN100555298C (zh) * 2007-06-08 2009-10-28 北京飞天诚信科技有限公司 虚拟个人办公环境的方法和设备
US8195931B1 (en) 2007-10-31 2012-06-05 Mcafee, Inc. Application change control
US8701189B2 (en) 2008-01-31 2014-04-15 Mcafee, Inc. Method of and system for computer system denial-of-service protection
US8615502B2 (en) 2008-04-18 2013-12-24 Mcafee, Inc. Method of and system for reverse mapping vnode pointers
US8145471B2 (en) * 2008-04-30 2012-03-27 International Business Machines Corporation Non-destructive simulation of a failure in a virtualization environment
US8185884B2 (en) * 2008-06-23 2012-05-22 Novell, Inc. System and method for offline updation of software in virtual machine (VM) images
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
US8544003B1 (en) 2008-12-11 2013-09-24 Mcafee, Inc. System and method for managing virtual machine configurations
US9003411B2 (en) * 2009-05-13 2015-04-07 Verizon Patent And Licensing Inc. Automated provisioning and configuration of virtual and physical servers
US8032618B2 (en) 2009-06-05 2011-10-04 Microsoft Corporation Asynchronous update of virtualized applications
US8341627B2 (en) 2009-08-21 2012-12-25 Mcafee, Inc. Method and system for providing user space address protection from writable memory area in a virtual environment
US8381284B2 (en) 2009-08-21 2013-02-19 Mcafee, Inc. System and method for enforcing security policies in a virtual environment
US9552497B2 (en) * 2009-11-10 2017-01-24 Mcafee, Inc. System and method for preventing data loss using virtual machine wrapped applications
US8751857B2 (en) * 2010-04-13 2014-06-10 Red Hat Israel, Ltd. Monitoring of highly available virtual machines
US8938800B2 (en) 2010-07-28 2015-01-20 Mcafee, Inc. System and method for network level protection against malicious software
US8925101B2 (en) 2010-07-28 2014-12-30 Mcafee, Inc. System and method for local protection against malicious software
US8549003B1 (en) 2010-09-12 2013-10-01 Mcafee, Inc. System and method for clustering host inventories
US20120102190A1 (en) * 2010-10-26 2012-04-26 International Business Machines Corporation Inter-virtual machine communication
US9075993B2 (en) 2011-01-24 2015-07-07 Mcafee, Inc. System and method for selectively grouping and managing program files
US9112830B2 (en) 2011-02-23 2015-08-18 Mcafee, Inc. System and method for interlocking a host and a gateway
CN102262549B (zh) * 2011-03-02 2014-10-15 奇智软件(北京)有限公司 补丁安装方法与系统
US8713088B2 (en) * 2011-03-27 2014-04-29 Hewlett-Packard Development Company, L.P. Identifying users of remote sessions
DE102011080231B4 (de) 2011-08-01 2022-09-29 Trumpf Werkzeugmaschinen Gmbh + Co. Kg Verfahren, Vorrichtung und System zur Maschinensteuerungswartung
US9772784B2 (en) 2011-08-10 2017-09-26 Nutanix, Inc. Method and system for maintaining consistency for I/O operations on metadata distributed amongst nodes in a ring structure
US9594881B2 (en) 2011-09-09 2017-03-14 Mcafee, Inc. System and method for passive threat detection using virtual memory inspection
US8694738B2 (en) 2011-10-11 2014-04-08 Mcafee, Inc. System and method for critical address space protection in a hypervisor environment
US8973144B2 (en) 2011-10-13 2015-03-03 Mcafee, Inc. System and method for kernel rootkit protection in a hypervisor environment
US9069586B2 (en) 2011-10-13 2015-06-30 Mcafee, Inc. System and method for kernel rootkit protection in a hypervisor environment
US8713668B2 (en) 2011-10-17 2014-04-29 Mcafee, Inc. System and method for redirected firewall discovery in a network environment
US8800024B2 (en) 2011-10-17 2014-08-05 Mcafee, Inc. System and method for host-initiated firewall discovery in a network environment
US8924954B2 (en) 2011-11-22 2014-12-30 Huawei Technologies Co., Ltd. Application software installation method and application software installation apparatus
CN104182257B (zh) * 2011-11-22 2017-09-05 华为数字技术(成都)有限公司 应用软件的安装方法和应用软件的安装装置
CN102402446B (zh) * 2011-11-22 2014-12-17 华为数字技术(成都)有限公司 应用软件的安装方法和应用软件的安装装置
WO2013084146A1 (en) * 2011-12-08 2013-06-13 International Business Machines Corporation Method and system for patching a virtual image
US8776058B2 (en) 2011-12-11 2014-07-08 International Business Machines Corporation Dynamic generation of VM instance at time of invocation
CN103988177B (zh) 2011-12-12 2017-02-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
US8739272B1 (en) 2012-04-02 2014-05-27 Mcafee, Inc. System and method for interlocking a host and a gateway
US8973146B2 (en) 2012-12-27 2015-03-03 Mcafee, Inc. Herd based scan avoidance system in a network environment
WO2014204453A1 (en) * 2013-06-19 2014-12-24 Empire Technology Development, Llc Processor-optimized library loading for virtual machines
US9507727B2 (en) * 2013-07-17 2016-11-29 Bitdefender IPR Management Ltd. Page fault injection in virtual machines
US9600262B2 (en) 2013-09-19 2017-03-21 International Business Machines Corporation System, method and program product for updating virtual machine images
EP3061030A4 (en) 2013-10-24 2017-04-19 McAfee, Inc. Agent assisted malicious application blocking in a network environment
EP3140734B1 (en) 2014-05-09 2020-04-08 Nutanix, Inc. Mechanism for providing external access to a secured networked virtualization environment
US9733958B2 (en) * 2014-05-15 2017-08-15 Nutanix, Inc. Mechanism for performing rolling updates with data unavailability check in a networked virtualization environment for storage management
US10642507B2 (en) 2015-01-30 2020-05-05 Nutanix, Inc. Pulsed leader consensus management
JP2017004201A (ja) * 2015-06-09 2017-01-05 富士通株式会社 パッチプログラム抽出装置、パッチプログラム抽出プログラム及びパッチプログラム抽出方法
US9600267B2 (en) * 2015-06-15 2017-03-21 International Business Machines Corporation Optimizing provisioning through automated virtual machine template generation
CN105426753B (zh) * 2015-11-18 2019-06-21 北京北信源软件股份有限公司 无代理来宾虚拟机已安装软件检测方法、装置及系统
US11218418B2 (en) 2016-05-20 2022-01-04 Nutanix, Inc. Scalable leadership election in a multi-processing computing environment
US10768920B2 (en) * 2016-06-15 2020-09-08 Microsoft Technology Licensing, Llc Update coordination in a multi-tenant cloud computing environment
US10362092B1 (en) 2016-10-14 2019-07-23 Nutanix, Inc. Entity management in distributed systems
US11194680B2 (en) 2018-07-20 2021-12-07 Nutanix, Inc. Two node clusters recovery on a failure
US11770447B2 (en) 2018-10-31 2023-09-26 Nutanix, Inc. Managing high-availability file servers
USD886143S1 (en) 2018-12-14 2020-06-02 Nutanix, Inc. Display screen or portion thereof with a user interface for database time-machine
US10817157B2 (en) 2018-12-20 2020-10-27 Nutanix, Inc. User interface for database management services
US11816066B2 (en) 2018-12-27 2023-11-14 Nutanix, Inc. System and method for protecting databases in a hyperconverged infrastructure system
US11010336B2 (en) 2018-12-27 2021-05-18 Nutanix, Inc. System and method for provisioning databases in a hyperconverged infrastructure system
US11768809B2 (en) 2020-05-08 2023-09-26 Nutanix, Inc. Managing incremental snapshots for fast leader node bring-up
US11556517B2 (en) 2020-05-17 2023-01-17 International Business Machines Corporation Blockchain maintenance
US11604705B2 (en) 2020-08-14 2023-03-14 Nutanix, Inc. System and method for cloning as SQL server AG databases in a hyperconverged system
US11907167B2 (en) 2020-08-28 2024-02-20 Nutanix, Inc. Multi-cluster database management services
US11640340B2 (en) 2020-10-20 2023-05-02 Nutanix, Inc. System and method for backing up highly available source databases in a hyperconverged system
US11604806B2 (en) 2020-12-28 2023-03-14 Nutanix, Inc. System and method for highly available database service
US11892918B2 (en) 2021-03-22 2024-02-06 Nutanix, Inc. System and method for availability group database patching
US11803368B2 (en) 2021-10-01 2023-10-31 Nutanix, Inc. Network learning to control delivery of updates
US20230221939A1 (en) * 2022-01-07 2023-07-13 Dell Products L.P. Version history based upgrade testing across simulated information technology environments

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006099780A (ja) * 2004-09-29 2006-04-13 Microsoft Corp ネットワークを介するソフトウェア配信を外部の悪意のある侵入から隔離する方法、システム、および装置
JP2006221649A (ja) * 2005-02-11 2006-08-24 Dell Products Lp 仮想マシンにおける集中ソフトウェア管理用のシステムおよび方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2001294677A1 (en) * 2000-09-22 2002-04-02 Patchlink.Com Corporation Non-invasive automatic offsite patch fingerprinting and updating system and method
US8205193B2 (en) * 2001-06-11 2012-06-19 Hewlett-Packard Development Company, L.P. Runtime updating of virtual machine class files
US20040117532A1 (en) * 2002-12-11 2004-06-17 Bennett Steven M. Mechanism for controlling external interrupts in a virtual machine system
US8209680B1 (en) * 2003-04-11 2012-06-26 Vmware, Inc. System and method for disk imaging on diverse computers
JP4094560B2 (ja) * 2004-01-23 2008-06-04 株式会社エヌ・ティ・ティ・データ リソース分割サーバ及びリソース分割サーバプログラム
US20050257206A1 (en) * 2004-05-14 2005-11-17 Semerdzhiev Krasimir P Pair-update mechanism for update module
US7908339B2 (en) * 2004-06-03 2011-03-15 Maxsp Corporation Transaction based virtual file system optimized for high-latency network connections
US7441272B2 (en) * 2004-06-09 2008-10-21 Intel Corporation Techniques for self-isolation of networked devices
KR100627728B1 (ko) * 2004-07-28 2006-09-25 에스케이 텔레콤주식회사 데이터 코어망을 이용한 가상머신 애플리케이션의업데이트 방법 및 시스템
US20070234331A1 (en) * 2006-01-06 2007-10-04 Sun Microsystems, Inc. Targeted automatic patch retrieval
US8225314B2 (en) * 2006-03-31 2012-07-17 Intel Corporation Support for personal computing in a public computing infrastructure by using a single VM delta image for each VM base image utilized by a user

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006099780A (ja) * 2004-09-29 2006-04-13 Microsoft Corp ネットワークを介するソフトウェア配信を外部の悪意のある侵入から隔離する方法、システム、および装置
JP2006221649A (ja) * 2005-02-11 2006-08-24 Dell Products Lp 仮想マシンにおける集中ソフトウェア管理用のシステムおよび方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JPN6012027307; Microsoft Virtual Server 2005 R2 Technical Overview , 200512, Microsoft Corporation *
JPN6012027308; Michael A. Kozuch et al.: 'Enterprise Client Management with Internet Suspend/Resume' Intel Technology Journal Volume 8,Issue 4, 20041117, pp.313-324, Intel Corporation *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009217395A (ja) * 2008-03-07 2009-09-24 Nec Corp 仮想サーバソフトウェア更新システム、仮想サーバソフトウェア更新方法、サーバ、及びサーバ用プログラム
JP2013522769A (ja) * 2010-03-15 2013-06-13 マイクロソフト コーポレーション 仮想マシンイメージ更新サービス
WO2011117954A1 (ja) * 2010-03-20 2011-09-29 株式会社Pfu 仮想マシン管理装置、仮想マシン管理方法、及びプログラム
JP2013522794A (ja) * 2010-03-23 2013-06-13 富士通株式会社 仮想化及び認証を用いた電子ネットワークにおける複数のクライアントの遠隔保守のためのシステム及び方法
JP2012069149A (ja) * 2011-11-29 2012-04-05 Toshiba Corp 計算機および計算機の制御方法
US9477460B2 (en) 2012-09-04 2016-10-25 Fujitsu Limited Non-transitory computer-readable storage medium for selective application of update programs dependent upon a load of a virtual machine and related apparatus and method
US9170802B2 (en) 2013-06-24 2015-10-27 Fujitsu Limited Method and information processing apparatus for extracting software correction patch for virtual machine

Also Published As

Publication number Publication date
EP2024849B1 (en) 2015-04-22
HK1129748A1 (en) 2009-12-04
AU2007254474A1 (en) 2007-11-29
BRPI0712660B1 (pt) 2019-06-18
WO2007136448A1 (en) 2007-11-29
CA2649888A1 (en) 2007-11-29
KR101279696B1 (ko) 2013-06-27
TWI431531B (zh) 2014-03-21
EP2024849A4 (en) 2009-11-11
MY151935A (en) 2014-07-31
MX2008014860A (es) 2008-12-01
BRPI0712660A2 (pt) 2012-09-04
TW200809627A (en) 2008-02-16
US20070271561A1 (en) 2007-11-22
EP2024849A1 (en) 2009-02-18
US8291409B2 (en) 2012-10-16
CA2649888C (en) 2015-05-12
CN101454765B (zh) 2012-01-18
KR20090018909A (ko) 2009-02-24
AU2007254474B2 (en) 2012-04-05
RU2008146053A (ru) 2010-05-27
BRPI0712660A8 (pt) 2016-12-13
JP5113836B2 (ja) 2013-01-09
AU2007254474B9 (en) 2012-05-24
RU2439677C2 (ru) 2012-01-10
CN101454765A (zh) 2009-06-10

Similar Documents

Publication Publication Date Title
JP5113836B2 (ja) パッチなどによるバーチャルマシンの更新
US10261800B2 (en) Intelligent boot device selection and recovery
US8166458B2 (en) Method and system for automated distributed software testing
US7774636B2 (en) Method and system for kernel panic recovery
US7979869B2 (en) Method and system for performing I/O operations using a hypervisor
US20090007105A1 (en) Updating Offline Virtual Machines or VM Images
US9354977B1 (en) System and method for hybrid kernel- and user-space incremental and full checkpointing
US20070028244A1 (en) Computer system para-virtualization using a hypervisor that is implemented in a partition of the host system
US10467108B1 (en) System and method for hybrid kernel- and user-space incremental and full checkpointing
EP2817725B1 (en) Maintaining system firmware images remotely using a distribute file system protocol
US10628272B1 (en) System and method for hybrid kernel- and user-space incremental and full checkpointing
US10120671B1 (en) Multi-level image extraction
US11573868B1 (en) System and method for hybrid kernel- and user-space incremental and full checkpointing
US11625307B1 (en) System and method for hybrid kernel- and user-space incremental and full checkpointing

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100208

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120601

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120903

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: 20120928

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121012

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151019

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5113836

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250