JP5960259B2 - 仮想マシン・イメージ分析 - Google Patents

仮想マシン・イメージ分析 Download PDF

Info

Publication number
JP5960259B2
JP5960259B2 JP2014518598A JP2014518598A JP5960259B2 JP 5960259 B2 JP5960259 B2 JP 5960259B2 JP 2014518598 A JP2014518598 A JP 2014518598A JP 2014518598 A JP2014518598 A JP 2014518598A JP 5960259 B2 JP5960259 B2 JP 5960259B2
Authority
JP
Japan
Prior art keywords
virtual machine
value
target
machine image
setting
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.)
Expired - Fee Related
Application number
JP2014518598A
Other languages
English (en)
Other versions
JP2014518424A5 (ja
JP2014518424A (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 JP2014518424A publication Critical patent/JP2014518424A/ja
Publication of JP2014518424A5 publication Critical patent/JP2014518424A5/ja
Application granted granted Critical
Publication of JP5960259B2 publication Critical patent/JP5960259B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Investigating Or Analysing Biological Materials (AREA)

Description

従来技術
[0001] 仮想マシンにおける管理ソフトウェアの分野では、仮想マシン・ゲスト・オペレーティング・システムにおける大多数の変数のために、一部の任意の目的に関して関連があるソフトウェア設定または重要なソフトウェア設定の間で人が区別するのを困難にする可能性がある。
例えば、ゲスト・オペレーティング・システム(仮想マシンの)またはそこにインストールされるアプリケーション・ソフトウェアの構成設定を試す人は、ときの経過と共に、ソフトウェアのインストールまたはアンインストール等のようなタスクに対する副作用として、例えば、手作業の編集によって直接的に多くの変更を行うことになると考えられる。これらの構成または設定変更が蓄積すると、そのステップを遡り、望ましい状態または望ましくない状態で仮想マシンに動作を開始させたのは何なのか特定することが困難になる可能性がある。
[0002] 仮想マシンの多くの状態変化パラメーターの間で、意味のあるまたは重要なものを特定することが困難になる可能性があるだけでなく、仮想マシンにおいて変化可能な値の異なるタイプまたはカテゴリー間で区別することも困難になる可能性がある。一部は、ゲスト・オペレーティング・システムまたはアプリケーション・ソフトウェアがどのように機能するか決定するために読み込む真の構成パラメーターであることが考えられる。他のものは、性能マトリクス、タイムスタンプ、使用カウント等というような、ゲスト・オペレーティング・システムによって出力される動作データーを含むことが考えられる。これらの間でさえも、仮想マシンを評価する目的で、仮想マシンの望ましいまたは望ましくない現在の状態を相関付けられる動作データー、および仮想マシンの状態とは事実上独立している動作データーを判定することが難しい場合もある。
[0003] 仮想マシン・イメージを分析するためにピア−プレッシャ・タイプ・アルゴリズムを用いることに関する技術について、以下に説明する。
[0004] 以下の摘要は、以下の詳細な説明において説明する概念を紹介するために含まれるに過ぎない。この摘要は、総合的ではなく、特許請求する主題の範囲を明確に定めることを意図するのではない。特許請求する主題の範囲は、最後に提示する特許請求の範囲において示される。
[0005] 仮想マシン・イメージを分析するための技法について説明する。一実施形態では、設定値の部分集合を1つ以上の仮想マシン・イメージから抽出する。仮想マシン・イメージは、その内部に、設定の値を格納する。これらの設定は、仮想マシン・イメージの仮想マシンにおいて実行するソフトウェアによって、それぞれ、使用される。仮想マシン・イメージの内ターゲットの1つを選択し、このターゲット仮想マシン・イメージから、設定のターゲット値を得る。これらの設定のサンプル値を、複数の仮想マシン・イメージから得る。仮想マシン・イメージ間における値の類似性および相違を特定することによって部分集合を形成する。類似性および相違を、例えば、ベイジアン推定を使用して、統計的に分析することができる。
[0006] 以下の詳細な説明を参照し、添付図面と合わせて検討して、付随する特徴の多くについて説明する。
[0007] 本明細書は、添付図面を参照しながら以下の説明を読むことによって、一層深く理解されよう。図面において、同様の参照番号が、添付する説明において同様の部分を示すために使用される。
図1は、仮想化レイヤーの一例を示す。 図2は、仮想マシンおよび仮想マシン・イメージに関する仮想化層のプロセスおよび相互作用を示す。 図3は、実行仮想マシンのスナップショットをどのようにして取り込むことができるかを示す。 図4は、包括的ピア−プレッシャ・アルゴリズム(peer-pressure algorithm)を示す。 図5は、設定を得るための異なる手法を示す。 図6は、仮想マシン・イメージにおける設定例を示す。 図7は、設定および値のデーターベース例を示す。 図8は、ピア−プレッシャ・コンポーネントを使用するシステムおよび出力例を示す。
[0016] 以下に説明する実施形態は、仮想マシン・イメージを分析することに関する。背景で述べたように、ユーザーが仮想マシンにおいて多くの観察可能な値にわたって篩にかけ、どの値が関心のある設定またはパラメーターに対するのであり、どの値が関心が薄いものに対するのか特定することが難しい可能性がある。仮想マシンに存在し得る多くの設定の中から意味のある設定を特定するために、ベイジアン・ベースのピア−プレッシャ技法(peer-pressure technique)を使用して、仮想マシンのパラメーターまたは設定を順位付けし分類する。説明は、マシン仮想化の全体像について行い、次いでピア−プレッシャ・アルゴリズムの説明、次いで仮想マシン・イメージから抽出した値にピア−プレッシャ・アルゴリズムをどのように適用するかの説明に移る。
[0017] 図1は、仮想化レイヤーの一例100を示す。コンピューター102は、ハードウェア104を有する。ハードウェア104は、中央処理ユニット(CPU)106、メモリー108、ネットワーク・インターフェース110、不揮発性ストレージ112、および、バス、ディスプレイ・アダプター等のような、図示されていない他のコンポーネントを含む。仮想化レイヤー100は、仮想マシン114の実行を管理し、容易にする。図1には示されていないが、各仮想マシン114は、通例、関連する仮想ディスク・イメージおよびゲスト・オペレーティング・システムを有する。簡潔さのために、オペレーティング・システムおよび、恐らくは、仮想マシン114のアプリケーション・ソフトウェアをゲストと呼ぶこともある。これは、格納され、仮想マシン114に関連する仮想ディスク・イメージから実行される。
[0018] 仮想化レイヤー100は、Hyper-Vサーバー(商標)、VMWare ESXサーバー(商標)、Xen、Oracle VM(商標)等のような、任意の種々の既知のまたは今後の実現例であればよい。仮想化レイヤーのアーキテクチャは、仮想マシン・モニタ(VMM)がホスト・オペレーティング・システムにおいて実行するホステッド・タイプ(hosted type)、またはハイパーバイザー等がコンピューター102のハードウェア104において直接実行するベア−メタル・タイプ(bare-metal type)とすることができる。本明細書において使用する場合、「仮想マシン」という用語は、任意の特定のハードウェア・アーキテクチャ(例えば、x86)をシミュレートし、そのハードウェア・アーキテクチャのネーティブ・コードを実行することができる、システム−タイプの仮想マシンを指す。ゲストに対して、仮想マシンは、ハードウェア・マシンからほぼ区別不可能であろう。本明細書において説明する仮想マシンは、Java(登録商標) Virtual Machineのような抽象型でもプロセス−タイプでもない仮想マシンである。
[0019] 仮想化レイヤー100は、仮想マシン114を管理し、それ自体および仮想マシン114の双方によってハードウェア104を共有するという基本機能を実行する。種々の技法の内任意のものを使用して、仮想マシン114をハードウェア104から隔離することができる。一実施形態では、仮想化レイヤーは、仮想マシン114に対応する異なる隔離環境(即ち、パーティションまたはドメイン)を規定することができる。共有デバイス・ドライバー、仮想マシン間通信設備、および仮想マシン管理API(アプリケーション・プログラミング・インターフェース)のような仮想化レイヤー100の一部は、特殊特権パーティションまたはドメインにおいて実行することができ、コンパクトで効率的なハイパーバイザーが得られる。他の実施形態では、仮想マシン管理およびハードウェア104のコヒーレント共有の機能は、モノリシックなメタル上ハイパーバイザー(on-the-metal hypervisor)に存在することもできる。
[0020] 図2は、仮想マシン114および仮想マシン・イメージ140に関する仮想化レイヤー100のプロセスおよび相互作用を示す。仮想化レイヤー100は、恐らくは対応する仮想マシン構成パラメーターにしたがって、仮想マシン114を開始および実行するプロセス142を実行する。仮想マシン114(VM)を開始すると、仮想レイヤーは、関連する仮想マシン・イメージ140を特定する。実際には、任意の仮想マシン114によって任意の仮想マシン・イメージ140を使用することができる。仮想マシン・イメージ140は、仮想化レイヤー100のファイル・システム141において特殊にフォーマットされたファイルであることができる。仮想化レイヤー100は、特定した仮想マシン・イメージ140をロードする。開始した仮想マシン114は、仮想マシン・イメージ140をマウントし読み取り、恐らくマスター・ブート・レコードまたは他のブート情報を探し、ゲスト・オペレーティング・システムをブートする。すると、ゲスト・オペレーティング・システムは実行し始める。
[0021] 仮想化レイヤー100は、仮想マシン114の実行を管理し、ゲストのカーネル、ハイパーコール等へのある種のコールを扱い、仮想マシン114の基礎ハードウェア104へのアクセスを調整する。ゲストおよびそのソフトウェアが実行すると、仮想化レイヤー100は、仮想ディスク・イメージ140におけるゲストの状態を維持することができる。ゲスト、またはゲストによって実行されたアプリケーションがデーターを「ディスク」に書き込むと、仮想化レイヤー100は、そのデーターを仮想化ディスク・イメージ140のフォーマットに変換し、そのイメージに書き込む。
[0022] 仮想化レイヤー100は、仮想マシン114を停止するプロセス144を実行することができる。仮想マシン114を止める命令を受けると、仮想マシン114およびそのゲストの状態が仮想ディスク・イメージ140に保存され、仮想マシン114を実行するプロセス(またはパーティション)が削除される。仮想マシン114の仕様は、この仮想マシン114の後の再開のために残すことができる。
[0023] 図3は、実行している仮想マシン114のスナップショットをどのようにして取り込むことができるかについて示す。仮想マシン114は、ハードウェア104を使用して実行するゲスト・オペレーティング・システム180を有する。実行中の仮想マシン113は、ゲスト・オペレーティング・システム180およびインストールされている任意のアプリケーションまたは他のソフトウェアを格納する仮想ディスク・ストレージを提供する。要するに、ゲスト・オペレーティング・システム180およびアプリケーションの状態182は、仮想化レイヤー100によって管理されるハードウェア104全体に物理的に存在することができる。要するに、物理マシンのほぼあらゆる既知のハードウェアまたはソフトウェアの機構が、仮想マシン114において等価物を有することができる。仮想化レイヤー100は、スナップショット188を取り込むプロセス186を実行するスナップショット・コンポーネント184を含む。仮想マシン114が実行している間に、仮想マシン114のスナップショットを取り込む命令が受け取られる。例えば、仮想化管理システムがネットワークを介して命令を送信し、これを仮想化レイヤー100が受信することができる。仮想化実現例の中には、スナップショットが取り込まれる前に、何らかの暫定的な準備が必要になる場合もある。例えば、キャッシュを一掃することが必要な場合があり、ファイル・システムまたは記憶システムを消去することが必要な場合もあり、ゲスト・オペレーティング・システム180のメモリー・ページを格納することが必要な場合等がある。
[0024] スナップショット188の取り込みは、既知の技法によって、または仮想化技術の既存の実現例によって実行することができる。注記すべきこととして、スナップショット188は、物理マシンを実行する等価物において入手可能な情報をいずれも含むことができる。例えば、スナップショット188は、仮想マシン113のメモリーのコピーを含むことができ、これには、実行中のプロセス190、カーネル・データー構造192、または仮想マシン113の仮想化物理メモリーにおける任意の情報を含むことができる。加えて、スナップショット188は、仮想マシン113によって使用されている物理デバイスまたは仮想デバイスから取り込まれた情報も含むことができ、レジスター値、バッファー・コンテンツ等を含む。実現例の中には、スナップショット・プロセス186が、仮想CPU情報(仮想コアまたはCPUの数)、メモリーおよびストレージの量、仮想デバイス、仮想ネットワーク・インターフェース・カード、BIOS、仮想マザー・ボード、デバイス・ドライバー、およびその他というような、仮想マシン113の仮想物理環境についての情報を取り込むとよい場合もある。仮想化実現例の中には、スナップショットを仮想マシンのディスク・イメージにリンクすることができる場合もあり、スナップショットは、仮想マシンのディスク・イメージとは異なる実行中の仮想マシンの記憶ブロックを含むことができる。要するに、スナップショット188は、仮想マシンの取り込んだ作業状態を収容するファイルのような、永続的なオブジェクトである。殆どの仮想化実現例は、スナップショットをロードし実行することを可能にし、スナップショットを実行する仮想マシン(スナップショットが取り込まれた本来のもととは別の仮想マシンの可能性もある)は、スナップショットが撮られた時点における元の仮想マシンであるかのように、実行を開始する。言い換えると、実行中の仮想マシンの状態は、取り込んで後に同じ仮想マシンまたは新たな仮想マシンにおいて再開することができる。
[0025] 尚、仮想化実現例の中には、スナップショットおよびディスク・イメージ・ファイルが機能的に相互交換可能である場合があることは、注記してしかるべきである。したがって、本明細書において使用する場合、「仮想マシン・イメージ」は、仮想化レイヤーが仮想化マシンに仮想ディスクとして提供する特殊フォーマット・ファイル、および実行中の仮想マシンから取り込まれたスナップショットの双方を指す。
[0026] 図4は、障害があるマシンの診断に適用される包括的ピア−プレッシャ・アルゴリズムを示す。ピア−プレッシャ・アルゴリズムは、"Automatic Misconfiguration Troubleshooting with PeerPressure"(PeerPressureによる自動誤構成の解決)(H.Wang, H.Platt, Y.Chen, R. Zhan, and Y.-M. Wang; USENIX OSDI, 2004)に詳しく記載されている。この文献を引用したことにより、その内容が本願にも含まれるものとする。図4についての以下の説明は、引用した参考文献に記載されているアルゴリズムを要約し一般化したものである。
[0027] ステップ220において、ユーザーによって、ターゲット・マシン、例えば、障害があるマシンが選択される。ステップ222において、ターゲット関連設定値対が抽出される。一般に、仮想マシン・イメージにおいて位置特定可能な(locatable)任意のタイプの設定値対を抽出することができる(本明細書で使用する場合、「設定」は、動作状態またはログ・ファイルのような書き込み/出力データー、あるいは任意のゲスト/アプリケーション状態または仮想マシン・イメージに引き継がれる出力を指す)。例えば、設定値対は、登録キーおよびその内容(値)、ファイル・ディレクトリーおよびそのディレクトリーにおけるファイルの名称、ファイルおよびそのファイルの最初のライン、ログ・ファイルおよびそのログ・ファイルにおけるライン数、仮想化パラメーター(例えば、メモリー割り当て)およびその値等とすることができる。つまり、設定、またはパラメーターは、対応する値が来た仮想マシン・イメージにおける位置を特定する何らかの情報であり、値はその位置における内容である。
[0028] ステップ224において、ターゲット設定−値対を正規化する(canonicalize)。これは、単に、設定および値を何らかの正規化形態に入れて、これらを精度高く意味的に比較できるようにすることを伴う。例えば、綴りまたは形態のばらつきを補正することができ(例えば、”#1”を”1”に変換することができる)、値を匿名にすることができる等である。
[0029] ステップ226において、1組の関係仮想マシン・サンプルを特定し、ステップ222からの設定に対応する1組の設定−値対(または値だけ)のサンプルを得る。恐らくはユーザーが定めた、任意の基準で仮想マシンを特定することができる。例えば、金色のイメージというような、同じ仮想マシン・イメージに基づく仮想マシンを選択することができる。同じアプリケーションを有する仮想マシンを特定することができる。ユーザーによって選択された1組の仮想マシンを特定することができる。次いで、値を抽出する。値は、特定された仮想マシンの仮想マシン・イメージから予め抽出しておいて、正規化形態でデーターベース(図7参照)に格納してもよく、このデーターベースから、必要なときに、これらが得られる。また、値は、仮想マシン・イメージから直接抽出し、これらが必要になったときに、仮想化するのでもよい。
[0030] ステップ228において、ピア−プレッシャ・アルゴリズムは、統計分析を実行して、設定についての情報を得る。即ち、どの設定がターゲット・マシンにとって関心がありそうか(ステップ220から)、そして関心がありそうにないか識別するのを補助する。言い換えると、統計計算は、サンプリングされた仮想マシンに対して、ターゲット仮想マシンの行動に実質的に作用する(またはそれを伝える(signaling))可能性が低いことが分かった設定を識別する。詳細は先に引用した論文に示されているが、以下に短く説明する。
[0031] 一般的な考えは、所与の設定に対して、その設定の値を仮想マシン間で比較するということである。全てのマシンにわたって非常に均一であることが多い値を有する設定は、マシンの行動に作用する設定でありそうもなく、またはマシンの行動の表示器として機能を果す設定でありそうにない。また、非常に非均一なことが多い値を有する設定も、行動制御または行動指示しそうにない。言い換えると、仮想マシンの全てが所与の設定に対して異なる値を有する場合、この設定は、ターゲット仮想マシンの特徴(trait)に作用しそうもなく、またはそれを予測しそうもない。これらの中間にある設定の値は、いくらか均一であるが、何らかの統計的重要性と共に変化する。例えば、マシンの半数または1/3がある設定に対して異なる値を有し、残りは同じ値を有する場合、設定を故意にそして効果的に変化させている可能性が高い。推定ステップ228では、非常に均一な設定および非常に非均一な設定を排除して、ユーザーに関心があると思われる設定の部分集合を特定する。一実施形態では、ベイジアン統計推定を使用する。これについては、先に含まれた文献において詳しく説明されている。
[0032] 図5は、設定を得るための異なる手法を示す。一実施形態では、仮想マシン114Aは仮想マシン114Bに関係する。これらは、双方共同じベース、即ち、「金色の」仮想マシン・イメージから得られた仮想マシン・イメージを有することから関係があるのでもよい。これらは時間的に関係があるのでもよい。即ち、一方が後の時点における他方のバージョンであってもよい(他方の直接の子孫として、またはクローン/スナップショットとして)等である。これらは、双方共同じソフトウェア・インストール、ゲスト・オペレーティング・システムなどを有することから関係があるのでもよい。ときの経過と共に、仮想マシン114A、114Bには変更、更新、構成編集、および他の永続的な状態変化が起こる。これらは、それぞれの仮想マシン・イメージにおいて反映される。例えば、仮想マシン114A、114Bの双方は、設定252A、252B(「設定−i」)のような同じ設定のインスタンスを有するのでもよい。ときの経過と共に、設定252A、252Bは、異なる値を取る場合もある。1つの仮想マシンが経時的にスナップショットを撮られるまたは取り込まれ/コピーされる場合、これらのインスタンスはサンプル集合として機能することができ(上のステップ226を参照)、その系統内にある仮想マシンは、ターゲット仮想マシンとして機能することができる。即ち、同じ仮想マシンの同じ設定の異なる時点における値は、サンプル集合として機能することができる。
[0033] 図6は、仮想マシン・イメージ270における設定値例を示す。先に注記したように、これらの設定は、仮想マシン・イメージにおける任意の永続的なアドレス可能な値とすることができる。例えば、ファイル・システム・オブジェクト、レジストリー・エントリー、仮想マシン・メタデーター(例えば、仮想マシン・イメージのヘッダー内にある)等がある。これらの設定の値は、ときの経過とともに変化する可能性があり、サンプル空間にわたってどれくらい値が均一になるかが変化する可能性がある。ある設定は非常に均一な値を有するかもしれず、そしてある値は非常に非均一な値を有するかもしれない(例えば、ホスト名、ネットワーク・アドレス、ユーザー名等というような、特定のマシンの「特徴」(character)を反映する値)。
[0034] 図7は、設定および値のデーターベース例290を示す。この例では、入手可能な母数における各仮想マシンは、それ自体の値の列またはベクトルを有する。実際には、設定(行)の数は、数万以上に達することもある。尚、一部の設定に対して、仮想マシンに跨がって値がほぼ均一である場合もあることは、注記してしかるべきである。例えば、"installDir"設定は、仮想マシン毎に同じ値を有する。他の設定は、非常に非均一な値を有することもある。例えば、"registryKeyX"は、それぞれのマシン毎に異なる値を有する。他の設定は、非常に均一でも非常に非均一でもない値を有することもある。実現例特定のパラメーターを有するベイジアン統計分析を使用して、設定の内のどれに関心がありそうか特定することができる。一実施形態では、多次元データーベースを使用する。例えば、同じマシンの値に、異なる時間、異なるバージョンにわたってインデックスを付けることができる。
[0035] 図8は、ピア−プレッシャ・コンポーネント310を使用するシステムおよび出力例312A、312Bを示す。ピア−プレッシャ・コンポーネント310には、ターゲット設定−値対(または、1組の一定な設定を使用するときは値だけ)のターゲット・セット314が渡される。また、サンプル・セット316もピア−プレッシャ・コンポーネント310に渡される。ピア−プレッシャ・コンポーネント310は、入力に対して統計的分析を実行して、出力を生成し、この出力を記録媒体に格納し、ディスプレイ上に表示し、ネットワークを介して送信する等を行う。一実施形態では、出力312Aは、均一と見なされた設定、非均一と見なされた設定、および関心がある設定の候補と見なされたものというような、1組の分類された設定である。他の実施形態では、出力312Bは、入力されたターゲット設定−値対314からの、確率順に並べられた1組の設定である。出力312Bは、上位M個に順位付けられた1組の設定に絞ることもできる。代わりに、確率しきい値を使用することもできる。
[0036] 尚、変形および代替実施形態も考えられ、以下の請求項によって包含されることは認められよう。
結論
[0037] 以上で説明した実施形態および特徴は、揮発性または不揮発性コンピューターまたはデバイス読み取り可能媒体に格納された情報という形態で実現することができる。これは、少なくとも、光ストレージ(例えば、コンパクト・ディスク・リード・オンリー・メモリー(CD−ROM))、磁気媒体、フラッシュ・リード・オンリー・メモリー(ROM)、あるいはディジタル情報を格納する任意の現在または今後の手段というような媒体を含むと考えられる。格納される情報は、マシン実行可能命令(例えば、コンパイル型実行可能二進コード)、ソース・コード、バイトコード、あるいは以上で説明した種々の実施形態を実行することを計算デバイスに可能にする、または実行するように計算デバイスを較正するために使用することができる任意の他の情報という形態にすることができる。また、これは、少なくとも、ランダム・アクセス・メモリー(RAM)のような揮発性メモリー、および/または実施形態を実行するプログラムの実行の間に中央処理ユニット(CPU)の命令というような情報を格納する仮想メモリー、更にはプログラムまたはエクゼキュータブルをロードし実行することを可能にする情報を格納する不揮発性媒体も含むと考えられる。以上の実施形態および特徴は、携帯用デバイス、ワークステーション、サーバー、移動体ワイヤレス・デバイス等を含む、任意のタイプの計算デバイスにおいて実行することができる。

Claims (15)

  1. 複数の仮想マシン・イメージから抽出された値に対応する設定の部分集合を選択する方法であって、前記仮想マシン・イメージが、前記設定の前記値をその内部に格納したファイルで構成されたそれぞれのファイル・システムを含み、前記設定の前記値が、それぞれ、前記仮想マシン・イメージの仮想マシンにおけるソフトウェアを制御し、前記方法が、
    前記仮想マシン・イメージから1つのターゲットの仮想マシン・イメージを選択し、このターゲット仮想マシン・イメージから前記設定のターゲット値を得るステップであって、前記ターゲット値が、前記ターゲット仮想マシン・イメージの前記ファイル・システムのファイルを分析して、前記設定を特定し前記ファイルから前記ターゲット値を抽出することによって得られたものであり、前記設定が、前記仮想マシン・イメージの各々間で発生する、ステップと、
    前記設定のサンプル値にアクセスするステップであって、前記サンプル値が、前記複数の仮想マシン・イメージの前記ファイル・システムの前記ファイルを分析して、前記設定を特定し前記設定の前記サンプル値を抽出することによって、前記複数の仮想マシン・イメージから得られたものである、ステップと、
    前記仮想マシン・イメージ間における前記値の類似性および相違を特定することによって、前記部分集合を形成するステップと、
    を含む、方法。
  2. 請求項1記載の方法であって、更に、前記類似性および相違のカウントに対して動作するベイジアン統計関数を含むピア−プレッシャ・アルゴリズムを実行するステップを含む、方法。
  3. 請求項1記載の方法において、前記ターゲット仮想マシン・イメージが、ユーザーが選択した仮想マシン・イメージを含み、前記複数の仮想マシン・イメージが、互いにそして前記ターゲット仮想マシン・イメージに関係する、方法。
  4. 請求項3記載の方法において、前記複数の仮想マシン・イメージおよび前記ターゲット仮想マシン・イメージが、異なる時点における同じ仮想マシン・イメージのコピーであることから、関係がある、方法。
  5. 請求項3記載の方法において、前記複数の仮想マシン・イメージおよび前記ターゲット仮想マシン・イメージが、本来同じ仮想マシン・イメージのコピーであったことから、関係がある、方法。
  6. 請求項5記載の方法において、前記複数の仮想マシン・イメージが、仮想マシンとして実行され、前記値の内少なくとも一部が、前記仮想マシン・イメージが仮想マシンとして実行していた間に生成された、方法。
  7. 仮想マシンの設定を特定する方法であって、
    ターゲット仮想マシンのファイル内の複数のターゲット設定を特定し、前記ターゲット仮想マシンの前記ファイルから前記ターゲット設定の複数の対応するターゲット値を抽出するステップと、
    前記ターゲット設定に対応する前記仮想マシンのサンプル値を得るステップであって、前記サンプル値は、サンプル仮想マシンのファイルから前記サンプル値を抽出することによって前記サンプル仮想マシンから得られ、前記サンプル仮想マシンは、同じ1つの実行する仮想マシンから異なった時点で取ったスナップショットを含む、ステップと、
    前記サンプル値および前記ターゲット値にしたがって、前記ターゲット設定の部分集合を特定するステップと、
    を含む、方法。
  8. 請求項7記載の方法において、前記特定するステップが、前記サンプル値と前記ターゲット値との間の一致度にしたがって、統計的計算を実行するステップを含む、方法。
  9. 請求項8記載の方法において、前記特定するステップが、複数のベイジアン推定計算を含む、方法。
  10. 請求項7記載の方法であって、更に、所与の設定値のサンプル値が一致する度合いに基づいて、前記部分集合における前記設定の内、前記所与の設定値を含ませるか否か決定するステップを含む、方法。
  11. 請求項10記載の方法において、前記サンプル値が十分な統計的一致を有すると判定されたときに、前記所与の設定が前記部分集合に含まれる、方法。
  12. 請求項11記載の方法において、統計的に一致した前記サンプル値に対して特定の値が決定され、前記判定するステップが、前記所与の値が前記特定の値から異なることに基づく、方法。
  13. 請求項7記載の方法において、前記サンプル仮想マシンが、それぞれ、別個の仮想マシン・イメージを含み、前記サンプル値が前記仮想マシン・イメージから得られたものである、方法。
  14. 請求項7記載の方法において、前記設定が、前記仮想マシンにおけるソフトウェアの構成設定を含む、方法。
  15. 情報を格納した1つ以上のコンピューター読み取り可能記憶デバイスであって、前記情報が、方法をコンピューター・デバイスが実行するのを可能にし、前記方法が、
    複数の仮想マシン・イメージ内のファイル内の状態パラメーターを特定し、該特定した状態パラメーターの値を抽出するステップであって、前記状態パラメーターの前記値は、前記仮想マシン・イメージが仮想マシンとして実行するとき、前記仮想マシン・イメージ内のソフトウェア動作を制御するように構成された、ステップと、
    前記状態パラメーターの前記値にピア−プレッシャ・アルゴリズムを適用して、状態パラメーターの部分集合を特定するステップと、
    を含む、1つ以上のコンピューター読み取り可能記憶デバイス。
JP2014518598A 2011-06-28 2012-06-08 仮想マシン・イメージ分析 Expired - Fee Related JP5960259B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/171,366 US8645950B2 (en) 2011-06-28 2011-06-28 Virtual machine image analysis
US13/171,366 2011-06-28
PCT/US2012/041700 WO2013003005A2 (en) 2011-06-28 2012-06-08 Virtual machine image analysis

Publications (3)

Publication Number Publication Date
JP2014518424A JP2014518424A (ja) 2014-07-28
JP2014518424A5 JP2014518424A5 (ja) 2015-07-23
JP5960259B2 true JP5960259B2 (ja) 2016-08-02

Family

ID=47392073

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014518598A Expired - Fee Related JP5960259B2 (ja) 2011-06-28 2012-06-08 仮想マシン・イメージ分析

Country Status (7)

Country Link
US (2) US8645950B2 (ja)
EP (1) EP2726977B1 (ja)
JP (1) JP5960259B2 (ja)
KR (1) KR101930113B1 (ja)
CN (1) CN103620550B (ja)
TW (2) TWI547874B (ja)
WO (1) WO2013003005A2 (ja)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9286182B2 (en) * 2011-06-17 2016-03-15 Microsoft Technology Licensing, Llc Virtual machine snapshotting and analysis
US8949829B1 (en) 2011-06-30 2015-02-03 Emc Corporation Virtual machine disaster recovery
US9311327B1 (en) 2011-06-30 2016-04-12 Emc Corporation Updating key value databases for virtual backups
US8843443B1 (en) * 2011-06-30 2014-09-23 Emc Corporation Efficient backup of virtual data
US9158632B1 (en) 2011-06-30 2015-10-13 Emc Corporation Efficient file browsing using key value databases for virtual backups
US9229951B1 (en) 2011-06-30 2016-01-05 Emc Corporation Key value databases for virtual backups
US8849777B1 (en) 2011-06-30 2014-09-30 Emc Corporation File deletion detection in key value databases for virtual backups
DE102012217202B4 (de) * 2011-10-12 2020-06-18 International Business Machines Corporation Verfahren und System zum Optimieren des Platzierens virtueller Maschinen in Cloud-Computing-Umgebungen
US9063815B2 (en) * 2012-09-17 2015-06-23 International Business Machines Corporation Provisioning a virtual machine from one or more VM images
CN104424013B (zh) * 2013-08-26 2018-03-09 国际商业机器公司 在计算环境中部署虚拟机的方法和设备
KR101554554B1 (ko) 2013-11-29 2015-09-22 한국과학기술정보연구원 가상 머신 구동 시스템 및 방법
US9507621B1 (en) 2014-08-26 2016-11-29 Amazon Technologies, Inc. Signature-based detection of kernel data structure modification
US9530007B1 (en) 2014-08-26 2016-12-27 Amazon Technologies, Inc. Identifying tamper-resistant characteristics for kernel data structures
US9575793B1 (en) 2014-08-26 2017-02-21 Amazon Technologies, Inc. Identifying kernel data structures
US9767276B1 (en) 2014-08-26 2017-09-19 Amazon Technologies, Inc. Scanning kernel data structure characteristics
US9495188B1 (en) 2014-09-30 2016-11-15 Palo Alto Networks, Inc. Synchronizing a honey network configuration to reflect a target network environment
US9882929B1 (en) 2014-09-30 2018-01-30 Palo Alto Networks, Inc. Dynamic selection and generation of a virtual clone for detonation of suspicious content within a honey network
US10044675B1 (en) 2014-09-30 2018-08-07 Palo Alto Networks, Inc. Integrating a honey network with a target network to counter IP and peer-checking evasion techniques
US9860208B1 (en) 2014-09-30 2018-01-02 Palo Alto Networks, Inc. Bridging a virtual clone of a target device in a honey network to a suspicious device in an enterprise network
US10007445B2 (en) 2014-11-04 2018-06-26 Rubrik, Inc. Identification of virtual machines using a distributed job scheduler
JP6787573B2 (ja) * 2015-01-28 2020-11-18 日本電気株式会社 仮想ネットワークファンクション管理装置、システム、ヒーリング方法及びプログラム
JP6197816B2 (ja) * 2015-03-24 2017-09-20 日本電気株式会社 ストレージシステム、ストレージの管理方法、及び、コンピュータ・プログラム
JP6696252B2 (ja) * 2016-03-24 2020-05-20 富士ゼロックス株式会社 通信プログラム、通信装置及び情報処理装置
EP3452904B1 (en) 2016-05-02 2023-12-27 Nokia Solutions and Networks Oy Snapshot creation in virtual network environment
US10768961B2 (en) 2016-07-14 2020-09-08 International Business Machines Corporation Virtual machine seed image replication through parallel deployment
JP6919173B2 (ja) * 2016-10-20 2021-08-18 富士通株式会社 表示制御プログラム、表示制御方法、及び表示制御装置
US11221920B2 (en) 2017-10-10 2022-01-11 Rubrik, Inc. Incremental file system backup with adaptive fingerprinting
US11372729B2 (en) 2017-11-29 2022-06-28 Rubrik, Inc. In-place cloud instance restore
KR102114238B1 (ko) * 2018-10-11 2020-05-22 전석기 패치 환경을 이용한 멀웨어 판단 방법 및 시스템
CN111240794B (zh) * 2018-11-28 2023-06-13 阿里巴巴集团控股有限公司 容器镜像提取方法、装置以及容器镜像测试方法、装置
US11271907B2 (en) 2019-12-19 2022-03-08 Palo Alto Networks, Inc. Smart proxy for a large scale high-interaction honeypot farm
US11265346B2 (en) 2019-12-19 2022-03-01 Palo Alto Networks, Inc. Large scale high-interactive honeypot farm
CN117891472A (zh) * 2024-03-11 2024-04-16 杭州吉利汽车数字科技有限公司 一种裸金属镜像部署的方法、装置及介质

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7386611B2 (en) * 2002-12-10 2008-06-10 International Business Machines Corporation Apparatus and methods for co-location and offloading of web site traffic based on traffic pattern recognition
US20050198303A1 (en) 2004-01-02 2005-09-08 Robert Knauerhase Dynamic virtual machine service provider allocation
US8074214B2 (en) 2005-05-19 2011-12-06 Oracle International Corporation System for creating a customized software installation on demand
US7496613B2 (en) * 2006-01-09 2009-02-24 International Business Machines Corporation Sharing files among different virtual machine images
US20080256534A1 (en) 2007-04-12 2008-10-16 International Business Machines Corporation Method for improved image-customization by use of embedded metadata
US8196138B2 (en) 2007-04-19 2012-06-05 International Business Machines Corporation Method and system for migrating virtual machines between hypervisors
US8806479B2 (en) 2007-06-05 2014-08-12 International Business Machines Corporation Creating an application virtual machine image by isolating installation artifacts in shadow area
US20090070752A1 (en) 2007-09-06 2009-03-12 International Business Machines Corporation Method and system for optimization of an application
US8051111B2 (en) * 2008-01-31 2011-11-01 Prowess Consulting, Llc Method and system for modularizing windows imaging format
WO2009108943A2 (en) 2008-02-29 2009-09-03 Doyenz Incorporated Automation for virtualized it environments
JP5598762B2 (ja) 2008-03-07 2014-10-01 日本電気株式会社 仮想マシンパッケージ生成システム、仮想マシンパッケージ生成方法および仮想マシンパッケージ生成プログラム
US8543998B2 (en) * 2008-05-30 2013-09-24 Oracle International Corporation System and method for building virtual appliances using a repository metadata server and a dependency resolution service
US8191065B2 (en) 2009-04-06 2012-05-29 Red Hat Israel, Ltd. Managing virtual machine images
US9069730B2 (en) * 2009-06-29 2015-06-30 Hewlett-Packard Development Company, L. P. Coordinated reliability management of virtual machines in a virtualized system
US8140907B2 (en) * 2010-06-29 2012-03-20 International Business Machines Corporation Accelerated virtual environments deployment troubleshooting based on two level file system signature
JP5772127B2 (ja) * 2011-03-25 2015-09-02 富士通株式会社 仮想マシン管理方法、情報処理装置および仮想マシン管理プログラム

Also Published As

Publication number Publication date
US9207962B2 (en) 2015-12-08
CN103620550B (zh) 2018-10-02
US20140143775A1 (en) 2014-05-22
WO2013003005A2 (en) 2013-01-03
KR101930113B1 (ko) 2019-03-14
JP2014518424A (ja) 2014-07-28
EP2726977A4 (en) 2015-01-07
WO2013003005A3 (en) 2013-03-14
EP2726977B1 (en) 2019-12-11
TWI547874B (zh) 2016-09-01
TWI563449B (en) 2016-12-21
TW201627859A (zh) 2016-08-01
US20130007732A1 (en) 2013-01-03
CN103620550A (zh) 2014-03-05
EP2726977A2 (en) 2014-05-07
KR20140033169A (ko) 2014-03-17
US8645950B2 (en) 2014-02-04
TW201301137A (zh) 2013-01-01

Similar Documents

Publication Publication Date Title
JP5960259B2 (ja) 仮想マシン・イメージ分析
US11789823B2 (en) Selective processing of file system objects for image level backups
US10379967B2 (en) Live rollback for a computing environment
US10503532B2 (en) Creating a virtual machine clone of the host computing device and handling of virtual machine clone requests via an I/O filter
US9317279B2 (en) Virtual machine block substitution
US8832682B2 (en) Trace collection for a virtual machine
US9558023B2 (en) Live application mobility from one operating system level to an updated operating system level and applying overlay files to the updated operating system
US20220035905A1 (en) Malware analysis through virtual machine forking
US20150135174A1 (en) Lightweight snapshots for virtual disks
US10089474B2 (en) Virtual machine introspection
US9081787B2 (en) Customizable file-type aware cache mechanism

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20150513

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150605

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150605

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160519

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160622

R150 Certificate of patent or registration of utility model

Ref document number: 5960259

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees