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