(57)【特許請求の範囲】
【請求項１】
情報処理システムによって実施される、仮想マシン（ＶＭ）イメージをコンピュータ・システムに適用する方法であって、
前記コンピュータ・システム上で実行される現在のＶＭイメージが問題に遭遇していることを検出するステップと、
１つまたは複数の過去のＶＭイメージを分析するステップであって、前記過去のＶＭイメージの各々が前記コンピュータ・システム上で以前実行された、前記分析するステップと、
前記分析に基づいて前記過去のＶＭイメージのうちの１つを選択するステップと、
前記現在のＶＭイメージを前記選択された過去のＶＭイメージに置き換えるステップと
を含み、前記分析が、
前記現在のＶＭイメージにおいて検出された前記問題に関連した現在の問題の署名を作成するステップと、
前記現在の問題の署名を、各々が前記過去のＶＭイメージのうちの１つと関連する、複数の履歴の問題の署名と比較するステップと
をさらに含む、方法。
【請求項２】
前記比較に基づいて、前記現在の問題の署名に一致する履歴の問題の署名を有する前記過去のＶＭイメージの各々を拒否するステップ
をさらに含む請求項１に記載の方法。
【請求項３】
前記比較に基づいて、前記現在の問題の署名に一致しない１つまたは複数の履歴の問題の署名の組を識別するステップをさらに含み、前記選択された過去のＶＭイメージが、前記１つまたは複数の履歴の問題の署名の組に含まれる履歴の問題の署名に対応する、請求項１に記載の方法。
【請求項４】
前記１つまたは複数の履歴の問題の署名の組をイメージとして比較するステップをさらに含み、前記質的な比較によって、選択された履歴の問題の署名が得られ、前記選択された過去のＶＭイメージが、前記選択された履歴の問題の署名に対応する、請求項３に記載の方法。
【請求項５】
前記履歴の問題の署名のうちの少なくとも１つが、前記対応する過去のＶＭイメージが問題ないことを示す非問題の署名である、請求項３に記載の方法。
【請求項６】
前記過去のＶＭイメージのうちの１つを前記選択するステップが、
非問題の署名を有する過去のＶＭイメージを識別するステップをさらに含み、前記識別された過去のＶＭイメージが、前記選択された過去のＶＭイメージとして選択される、請求項５に記載の方法。
【請求項７】
前記過去のＶＭイメージの各々に対応する複数のリソース・メトリックスを取り出すステップをさらに含み、前記過去のＶＭイメージが前記コンピュータ・システム上で実行されていた間に、前記リソース・メトリックスが最初に収集された、請求項３に記載の方法。
【請求項８】
前記過去のＶＭイメージの各々に対応する前記複数のリソース・メトリックスを分析するステップをさらに含み、前記分析によって、前記過去のＶＭイメージの各々に対応する前記履歴の問題の署名が得られる、請求項７に記載の方法。
【請求項９】
前記分析するステップおよび前記選択するステップが、第２のコンピュータ・システムを含む複数のコンピュータ・システムのためのＶＭイメージを管理する前記第２のコンピュータ・システムによって実行される、請求項１に記載の方法。
【請求項１０】
情報処理システムであって、
複数のプロセッサと、
前記プロセッサのうちの少なくとも１つに結合されたメモリと、
不揮発性の記憶領域と、
前記メモリに記憶された、コンピュータ・システムに仮想マシン（ＶＭ）イメージを適用するために前記プロセッサのうちの少なくとも１つによって実行される１組の命令とを含み、前記１組の命令が、
前記コンピュータ・システム上で実行される現在のＶＭイメージが問題に遭遇していることを検出するアクションと、
１つまたは複数の過去のＶＭイメージを分析するアクションであって、前記過去のＶＭイメージの各々が前記コンピュータ・システム上で以前実行された、前記分析するアクションと、
前記分析に基づいて前記過去のＶＭイメージのうちの１つを選択するアクションと、
前記現在のＶＭイメージを前記選択された過去のＶＭイメージに置き換えるアクションと
を実行し、前記分析を実行する前記１組の命令が追加のアクションを実行し、前記追加のアクションが、
前記現在のＶＭイメージにおいて検出された前記問題に関連した現在の問題の署名を作成するアクションと、
前記現在の問題の署名を、各々が前記過去のＶＭイメージのうちの１つと関連する、複数の履歴の問題の署名と比較するアクションと
を含む、情報処理システム。
【請求項１１】
前記１組の命令が追加のアクションを実行し、前記追加のアクションが、
前記比較に基づいて、前記現在の問題の署名に一致する履歴の問題の署名を有する前記過去のＶＭイメージの各々を拒否するアクション
を含む、請求項１０に記載の情報処理システム。
【請求項１２】
前記１組の命令が追加のアクションを実行し、前記追加のアクションが、
前記比較に基づいて、前記現在の問題の署名に一致しない１つまたは複数の履歴の問題の署名の組を識別するアクションを含み、前記選択された過去のＶＭイメージが、前記１つまたは複数の履歴の問題の署名の組に含まれる履歴の問題の署名に対応する、請求項１１に記載の情報処理システム。
【請求項１３】
前記１組の命令が追加のアクションを実行し、前記追加のアクションが、
前記１つまたは複数の履歴の問題の署名の組をイメージとして比較するアクションを含み、前記質的な比較によって、選択された履歴の問題の署名が得られ、前記選択された過去のＶＭイメージが、前記選択された履歴の問題の署名に対応する、請求項１２に記載の情報処理システム。
【請求項１４】
前記履歴の問題の署名のうちの少なくとも１つが、前記対応する過去のＶＭイメージが
問題ないことを示す非問題の署名である、請求項１２に記載の情報処理システム。
【請求項１５】
前記過去のＶＭイメージのうちの１つを前記選択するアクションが、
非問題の署名を有する過去のＶＭイメージを識別するアクションをさらに含み、前記識別された過去のＶＭイメージが、前記選択された過去のＶＭイメージとして選択される、請求項１４に記載の情報処理システム。
【請求項１６】
前記１組の命令が追加のアクションを実行し、前記追加のアクションが、
前記過去のＶＭイメージの各々に対応する複数のリソース・メトリックスを取り出すアクションを含み、前記過去のＶＭイメージが前記コンピュータ・システム上で実行されていた間に、前記リソース・メトリックスが最初に収集された、請求項１２に記載の情報処理システム。
【請求項１７】
前記過去のＶＭイメージの各々に対応する前記複数のリソース・メトリックスを分析するアクションをさらに含み、前記分析によって、前記過去のＶＭイメージの各々に対応する前記履歴の問題の署名が得られる、請求項１６に記載の情報処理システム。
【請求項１８】
前記分析するアクションおよび前記選択するアクションが、第２のコンピュータ・システムを含む複数のコンピュータ・システムのためのＶＭイメージを管理する前記第２のコンピュータ・システムによって実行される、請求項１０に記載の情報処理システム。
【請求項１９】
請求項１〜９の何れか1項に記載の方法の各ステップをコンピュータ・システムに実行させる、コンピュータ・プログラム。
【請求項２０】
請求項１９に記載の前記コンピュータ・プログラムを、コンピュータ可読媒体に記録した、記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、以前収集されたリソース・メトリックスに基づいて仮想マシン・イメージを復元する手法に関する。
【背景技術】
【０００２】
現況技術の技術範囲を使用することにより、仮想マシン（ＶＭ）イメージが十分に挙動していないことが認識され、過去バージョンへのフォールバックが必要であると決定されても、どの過去イメージが使用されるべきかを決定する明白な手段がない。単に最新の過去バージョンにロール・バックすることでは、問題を解決しない可能性があり、したがって、顧客は、良好な、安定したイメージが見つかるまで、他の過去バージョンに反復的に戻らなければならない可能性がある。現在、「ランダムな選択」以外に戻るべき過去のリリースを決定する明白な方法はない。現在のシステムは、典型的には、現在のバージョンの望ましくない挙動を何が駆動していたかについて、どのレベルの評価もせずに、ＶＭの直前の過去バージョンに戻る。今日、変更が行われた時および理由を示すために変更管理システムが存在するが、これらのシステムは、ロール・バック・バージョンを決定するための自動化された論理的根拠の提供によってではなく、人間によって照会される。したがって、これらの従来技術の手法では、人為的なミスが生じやすく、適切なイメージを決定するために人間によって引き起こされる分析時間を必要とする。
【０００３】
ＵＳ２０１００１６２０３９は、コンピューティング・システムおよびそのデータのための高可用性およびディザスタ・リカバリを提供する分野における問題に対処する装置およびプロセスを開示している。これらの装置およびプロセスは、保護されるコンピューティング・システムのための高可用性およびディザスタ・リカバリを提供するために使用され得る。保護されるコンピューティング・システムは、仮想コンピューティング・システムでもよい。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従って発明が解決しようとする課題は、仮想マシン・イメージを分析してコンピュータ・システムに適用する方法を提供することである。
【課題を解決するための手段】
【０００５】
仮想マシン（ＶＭ）イメージをコンピュータ・システムに適用するための手法が提供される。情報処理システムによって実施されるこの手法では、コンピュータ・システムにおいて実行される現在のＶＭイメージが問題に遭遇していることの検出が行われる。これに応答して、コンピュータ・システムにおいて各々が以前実行されたイメージである過去のＶＭイメージが分析される。分析に基づいて、過去のＶＭイメージのうちの１つが選択され、選択されたイメージは、コンピュータ・システム上で現在のＶＭイメージを交換するために使用される。一実施形態では、現在のＶＭイメージにおいて検出された問題に関連した現在の問題の署名が作成され、この問題の署名が過去のＶＭイメージと一致する履歴の問題の署名と比較される。さらなる実施形態では、現在のＶＭイメージにおいて検出される同じ問題の署名を示す過去のＶＭイメージのうちのいずれかが拒否される。現在の問題の署名に一致しないそれらの問題の署名は、コンピュータ・システムにおいて使用され得る「最善の」過去のＶＭイメージを識別するために、質的に分析される。いくつかの場合、履歴の問題の署名は、対応する過去のＶＭイメージに関する問題を示さない場合がある。過去のＶＭイメージに対応する問題の署名は、過去のＶＭイメージがコンピュータ・システム上で稼働していた間に収集されたリソース・メトリックスを分析することによって生成され得る。一環境では、１つのコンピュータ・システムを使用して、いくつかのコンピュータ・システム上で稼働する仮想マシンを管理し、管理するコンピュータ・システムは、問題データの分析、およびさまざまなコンピュータ・システムにおいて適用される過去のＶＭイメージの選択を実行する。
【０００６】
以上の内容は、概要であり、したがって、当然、簡略化、一般化、および詳細の省略を含み、結果として、当業者は、概要が例示的にあるに過ぎず、限定するようにまったく意図されていないことを理解するであろう。特許請求の範囲によってのみ定義される本発明のその他の態様、発明の特徴、および利点は、以下に記載の非限定的な詳細な説明で明らかになるであろう。
【０００７】
第１の態様から見て、本発明は、情報処理システムによって実施される、仮想マシン（ＶＭ）イメージをコンピュータ・システムに適用する方法を提供し、この方法は、コンピュータ・システム上で実行される現在のＶＭイメージが問題に遭遇していることを検出するステップと、１つまたは複数の過去のＶＭイメージを分析するステップであって、過去のＶＭイメージの各々がコンピュータ・システム上で以前実行された、分析するステップと、分析に基づいて過去のＶＭイメージのうちの１つを選択するステップと、現在のＶＭイメージを選択された過去のＶＭイメージに置き換えるステップを含み、分析は、現在のＶＭイメージにおいて検出された問題に関連した現在の問題の署名を作成するステップと、現在の問題の署名を、過去のＶＭイメージのうちの１つと各々が一致する履歴の問題の署名と比較するステップとをさらに含む。
【０００８】
好ましくは、本発明は、比較に基づいて、現在の問題の署名に一致する履歴の問題の署名を有する過去のＶＭイメージの各々を拒否するステップをさらに含む方法を提供する。
【０００９】
好ましくは、本発明は、比較に基づいて、現在の問題の署名に一致しない１つまたは複数の履歴の問題の署名の組を識別するステップをさらに含み、選択された過去のＶＭイメージが、１つまたは複数の履歴の問題の署名の組に含まれる履歴の問題の署名に対応する、方法を提供する。
【００１０】
好ましくは、本発明は、１つまたは複数の履歴の問題の署名の組を質的に比較するステップをさらに含み、質的な比較によって、選択された履歴の問題の署名が得られ、選択された過去のＶＭイメージが、選択された履歴の問題の署名に対応する、方法を提供する。
【００１１】
好ましくは、本発明は、履歴の問題の署名のうちの少なくとも１つが、対応する過去のＶＭイメージが問題ないことを示す非問題の署名である、方法を提供する。
【００１２】
好ましくは、本発明は、過去のＶＭイメージのうちの１つを選択するステップが、非問題の署名を有する過去のＶＭイメージを識別するステップをさらに含み、識別された過去のＶＭイメージが、選択された過去のＶＭイメージとして選択される、方法を提供する。
【００１３】
好ましくは、本発明は、過去のＶＭイメージの各々に対応する複数のリソース・メトリックスを取り出すステップをさらに含み、過去のＶＭイメージがコンピュータ・システム上で実行されていた間に、リソース・メトリックスが最初に収集された、方法を提供する。
【００１４】
好ましくは、本発明は、過去のＶＭイメージの各々に対応する複数のリソース・メトリックスを分析するステップをさらに含み、分析によって、過去のＶＭイメージの各々に対応する履歴の問題の署名が得られる、方法を提供する。
【００１５】
好ましくは、本発明は、分析するステップおよび選択するステップが、第２のコンピュータ・システムを含む複数のコンピュータ・システムのためのＶＭイメージを管理する第２のコンピュータ・システムによって実行される、方法を提供する。
【００１６】
別の態様から見て、本発明は、情報処理システムを提供し、情報処理システムは、複数のプロセッサと、プロセッサのうちの少なくとも１つに結合されたメモリと、不揮発性の記憶領域と、メモリに記憶された、コンピュータ・システムに仮想マシン（ＶＭ）イメージを適用するためにプロセッサのうちの少なくとも１つによって実行される１組の命令とを含み、１組の命令が、コンピュータ・システム上で実行される現在のＶＭイメージが問題に遭遇していることを検出するアクションと、１つまたは複数の過去のＶＭイメージを分析するアクションであって、過去のＶＭイメージの各々がコンピュータ・システム上で以前実行された、分析するアクションと、分析に基づいて過去のＶＭイメージのうちの１つを選択するアクションと、現在のＶＭイメージを選択された過去のＶＭイメージに置き換えるアクションとを実行し、分析を実行する１組の命令が追加のアクションを実行し、追加のアクションが、現在のＶＭイメージにおいて検出された問題に関連した現在の問題の署名を作成するアクションと、現在の問題の署名を、過去のＶＭイメージのうちの１つと各々が対応する履歴の問題の署名と比較するアクションとをさらに含む。
【００１７】
好ましくは、本発明は、情報処理システムであって、１組の命令が追加のアクションを実行し、追加のアクションが、比較に基づいて、現在の問題の署名に一致する履歴の問題の署名を有する過去のＶＭイメージの各々を拒否するアクションを含む、情報処理システムを提供する。
【００１８】
好ましくは、本発明は、情報システムであって、１組の命令が追加のアクションを実行し、追加のアクションが、比較に基づいて、現在の問題の署名に一致しない１つまたは複数の履歴の問題の署名の組を識別するアクションを含み、選択された過去のＶＭイメージが、１つまたは複数の履歴の問題の署名の組に含まれる履歴の問題の署名に対応する、情報処理システムを提供する。
【００１９】
好ましくは、本発明は、情報処理システムであって、１組の命令が追加のアクションを実行し、追加のアクションが、１つまたは複数の履歴の問題の署名の組を質的に比較するアクションを含み、質的な比較によって、選択された履歴の問題の署名が得られ、選択された過去のＶＭイメージが、選択された履歴の問題の署名に対応する、情報処理システムを提供する。
【００２０】
好ましくは、本発明は、履歴の問題の署名のうちの少なくとも１つが、対応する過去のＶＭイメージが問題ないことを示す非問題の署名である、情報処理システムを提供する。
【００２１】
好ましくは、本発明は、過去のＶＭイメージのうちの１つを選択するアクションが、非問題の署名を有する過去のＶＭイメージを識別するアクションをさらに含み、識別された過去のＶＭイメージが、選択された過去のＶＭイメージとして選択される、情報処理システムを提供する。
【００２２】
好ましくは、本発明は、情報処理システムであって、１組の命令が追加のアクションを実行し、追加のアクションが、過去のＶＭイメージの各々に対応する複数のリソース・メトリックスを取り出すアクションを含み、過去のＶＭイメージがコンピュータ・システム上で実行されていた間に、リソース・メトリックスが最初に収集された、情報処理システムを提供する。
【００２３】
好ましくは、本発明は、過去のＶＭイメージの各々に対応する複数のリソース・メトリックスを分析するアクションをさらに含み、分析によって、過去のＶＭイメージの各々に対応する履歴の問題の署名が得られる、情報処理システムを提供する。
【００２４】
好ましくは、本発明は、分析するアクションおよび選択するアクションが、第２のコンピュータ・システムを含む複数のコンピュータ・システムのためのＶＭイメージを管理する第２のコンピュータ・システムによって実行される、情報処理システムを提供する。
【００２５】
別の態様から見て、本発明は、情報処理システムによって実行されると、情報処理システムにアクションを実行させることによって、コンピュータ・システムに仮想マシン（ＶＭ）イメージを適用するコンピュータ命令を含む、コンピュータ可読媒体に記憶されるコンピュータ・プログラム製品を提供し、アクションが、コンピュータ・システム上で実行される現在のＶＭイメージが問題に遭遇していることを検出するアクションと、１つまたは複数の過去のＶＭイメージを分析するアクションであって、過去のＶＭイメージの各々がコンピュータ・システム上で以前実行された、分析するアクションと、分析に基づいて過去のＶＭイメージのうちの１つを選択するアクションと、現在のＶＭイメージを選択された過去のＶＭイメージに置き換えるアクションとを含み、分析が、現在のＶＭイメージにおいて検出された問題に関連した現在の問題の署名を作成するアクションと、現在の問題の署名を、過去のＶＭイメージのうちの１つと各々が一致する履歴の問題の署名と比較するアクションとをさらに含む。
【００２６】
別の態様から、本発明は、アクションが、比較に基づいて、現在の問題の署名に一致する履歴の問題の署名を有する過去のＶＭイメージの各々を拒否するアクションをさらに含む、コンピュータ・プログラム製品を提供する。
【００２７】
別の態様から、本発明は、アクションが、比較に基づいて、現在の問題の署名に一致しない１つまたは複数の履歴の問題の署名の組を識別するアクションをさらに含み、選択された過去のＶＭイメージが、１つまたは複数の履歴の問題の署名の組に含まれる履歴の問題の署名に対応する、コンピュータ・プログラム製品を提供する。
【００２８】
別の態様から、本発明は、アクションが、１つまたは複数の履歴の問題の署名の組を質的に比較するアクションをさらに含み、質的な比較によって、選択された履歴の問題の署名が得られ、選択された過去のＶＭイメージが、選択された履歴の問題の署名に対応する、コンピュータ・プログラム製品を提供する。
【００２９】
別の態様から、本発明は、履歴の問題の署名のうちの少なくとも１つが、対応する過去のＶＭイメージが問題ないことを示す非問題の署名である、コンピュータ・プログラム製品を提供する。
【００３０】
別の態様から、本発明は、過去のＶＭイメージのうちの１つを選択するアクションが、非問題の署名を有する過去のＶＭイメージを識別するアクションをさらに含み、識別された過去のＶＭイメージが、選択された過去のＶＭイメージとして選択される、コンピュータ・プログラム製品を提供する。
【００３１】
別の態様から、本発明は、アクションが、過去のＶＭイメージの各々に対応する複数のリソース・メトリックスを取り出すアクションをさらに含み、過去のＶＭイメージがコンピュータ・システム上で実行されていた間に、リソース・メトリックスが最初に収集された、コンピュータ・プログラム製品を提供する。
【００３２】
別の態様から、本発明は、アクションが、過去のＶＭイメージの各々に対応する複数のリソース・メトリックスを分析するアクションをさらに含み、分析によって、過去のＶＭイメージの各々に対応する履歴の問題の署名が得られる、コンピュータ・プログラム製品を提供する。
【００３３】
別の態様から、本発明は、分析するアクションおよび選択するアクションが、第２のコンピュータ・システムを含む複数のコンピュータ・システムのためのＶＭイメージを管理する第２のコンピュータ・システムによって実行される、コンピュータ・プログラム製品を提供する。
【００３４】
次に、添付の図面を参照して、例示のみを目的として、本発明の好ましい実施形態について説明する。
【００３５】
添付の図面を参照することによって、本発明がより深く理解されることが可能であり、本発明の多くの目的、特徴、および利点が当業者に明らかにされるであろう。
【図面の簡単な説明】
【００３６】
【図１】本明細書に記載されている方法が実行され得るデータ処理システムのブロック図である。
【図２】ネットワーク環境で動作する多種多様な情報処理システムにおいて、本明細書に記載されている方法が実行され得ることを示すために、図１に示される情報処理システム環境の拡張を提供する図である。
【図３】仮想マシン（ＶＭ）バージョン管理システムを示す構成要素の図である。
【図４】ＶＭバージョン管理システムによってとられるステップを示すフローチャートである。
【図５】ＶＭイメージを選択するために使用される履歴的メトリックスの分析において使用される論理を示すフローチャートの図である。
【図６】特定のコンピューティング環境のために「最善の」仮想マシンの選択において使用される論理を示すフローチャートの図である。
【発明を実施するための形態】
【００３７】
当業者に理解されるように、本発明の態様は、システム、方法、またはコンピュータ・プログラム製品として具現化され得る。したがって、本発明の態様は、すべてハードウェアの実施形態、すべてソフトウェアの実施形態（ファームウェア、常駐ソフトウェア、マイクロコードなどを含む）、またはソフトウェアの態様とハードウェアの態様とを組み合わせる実施形態の形態をとる可能性があり、これらはすべてが概して本明細書において「回路」、「モジュール」、または「システム」と呼ばれることがある。さらに、本発明の態様は、コンピュータ可読プログラム・コードを具現化する１つまたは複数のコンピュータ可読媒体で具現化されたコンピュータ・プログラム製品の形態をとる可能性がある。
【００３８】
１つまたは複数のコンピュータ可読媒体の任意の組合せが、利用される可能性がある。コンピュータ可読媒体は、コンピュータ可読信号媒体またはコンピュータ可読ストレージ媒体である可能性がある。コンピュータ可読ストレージ媒体は、例えば、電子、磁気、光、電磁、赤外線、もしくは半導体のシステム、装置、またはデバイス、あるいはこれらの任意の好適な組合せである可能性があるがこれらに限定されない。コンピュータ可読ストレージ媒体のより詳細な例（非網羅的なリスト）は、以下、すなわち、１つもしくは複数の配線を有する電気的な接続、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読出し専用メモリ（ＲＯＭ）、消去可能プログラマブル読出し専用メモリ（ＥＰＲＯＭもしくはフラッシュ・メモリ）、光ファイバ、ポータブル・コンパクト・ディスク読出し専用メモリ（ＣＤ−ＲＯＭ）、光ストレージ・デバイス、磁気ストレージ・デバイス、またはこれらの任意の好適な組合せを含む。本明細書の文脈において、コンピュータ可読ストレージ媒体は、命令実行システム、装置、もしくはデバイスによって、または命令実行システム、装置、もしくはデバイスに関連して使用するためのプログラムを含むまたは記憶することができる任意の有形の媒体である可能性がある。
【００３９】
コンピュータ可読信号媒体は、例えば、ベースバンドで、または搬送波の一部としてコンピュータ可読プログラム・コードを具現化する伝播されるデータ信号を含み得る。そのような伝播される信号は、電磁的、光学的、またはこれらの任意の好適な組合せを含むがこれらに限定されないさまざまな形態のうちの任意の形態をとり得る。コンピュータ可読信号媒体は、コンピュータ可読ストレージ媒体ではなく、命令実行システム、装置、もしくはデバイスによって、または命令実行システム、装置、もしくはデバイスに関連して使用するためのプログラムを伝達、伝播、または搬送することができる任意のコンピュータ可読媒体である可能性がある。
【００４０】
コンピュータ可読媒体上に具現化されるプログラム・コードは、無線、有線、光ファイバ・ケーブル、ＲＦなど、またはこれらの任意の好適な組合せを含むがこれらに限定されない任意の適切な媒体を用いて送信される可能性がある。
【００４１】
本発明の態様の操作を実行するためのコンピュータ・プログラム・コードは、Ｊａｖａ（Ｒ）、Ｓｍａｌｌｔａｌｋ（Ｒ）、Ｃ＋＋などのオブジェクト指向プログラミング言語と、「Ｃ」プログラミング言語または同様のプログラミング言語などの通常の手続き型プログラミング言語とを含む１つまたは複数のプログラミング言語の任意の組合せで記述され得る。プログラム・コードは、すべてユーザのコンピュータ上で、スタンドアロンのソフトウェア・パッケージとしてユーザのコンピュータ上で部分的に、ユーザのコンピュータ上で部分的にかつ遠隔のコンピュータ上で部分的に、またはすべて遠隔のコンピュータ、サーバ、もしくはサーバのクラスタ上で実行され得る。最後の筋書きでは、遠隔のコンピュータが、ローカル・エリア・ネットワーク（ＬＡＮ）もしくは広域ネットワーク（ＷＡＮ）を含む任意の種類のネットワークを介してユーザのコンピュータに接続され得るか、または外部コンピュータへの接続が（例えば、インターネット・サービス・プロバイダを使用してインターネットを介して）行われ得る。
【００４２】
本発明の態様が、本発明の実施形態による方法、装置（システム）、およびコンピュータ・プログラム製品の流れ図またはブロック図あるいはその両方を参照して以下で説明される。流れ図またはブロック図あるいはその両方の各ブロック、および流れ図またはブロック図あるいはその両方のブロックの組合せは、コンピュータ・プログラム命令によって実装され得ることが理解されるであろう。これらのコンピュータ・プログラム命令は、コンピュータまたはその他のプログラム可能なデータ処理装置のプロセッサによって実行される命令が、流れ図またはブロック図あるいはその両方の１つのブロックまたは複数のブロックで規定された機能／動作を実施するための手段をもたらすように、多目的コンピュータ、専用コンピュータ、またはその他のプログラム可能なデータ処理装置のプロセッサに与えられてマシンを生成する可能性がある。
【００４３】
これらのコンピュータ・プログラム命令は、コンピュータ可読媒体に記憶された命令が、流れ図またはブロック図あるいはその両方の１つのブロックまたは複数のブロックで規定された機能／動作を実施する命令を含む製品をもたらすように、コンピュータ、その他のプログラム可能なデータ処理装置、またはその他のデバイスを特定の方法で機能させることができるコンピュータ可読媒体に記憶される可能性もある。
【００４４】
コンピュータ・プログラム命令は、コンピュータまたはその他のプログラム可能な装置で実行される命令が、流れ図またはブロック図あるいはその両方の１つのブロックまたは複数のブロックで規定された機能／動作を実施するためのプロセスを提供するように、コンピュータで実施されるプロセスを生成するために一連の動作のステップがコンピュータ、その他のプログラム可能な装置、またはその他のデバイスで実行されるようにするために、コンピュータ、その他のプログラム可能なデータ処理装置、またはその他のデバイスにロードされる可能性もある。
【００４５】
図１は、本明細書において説明される計算動作を実行することができるコンピュータ・システムの簡略化された例である情報処理システム１００を示す。情報処理システム１００は、プロセッサ・インターフェース・バス１１２に結合された１つまたは複数のプロセッサ１１０を含む。プロセッサ・インターフェース・バス１１２は、プロセッサ１１０を、メモリ・コントローラ・ハブ（ＭＣＨ）としても知られるノースブリッジ１１５に接続する。ノースブリッジ１１５は、システム・メモリ１２０に接続し、（１つまたは複数の）プロセッサ１１０がシステム・メモリにアクセスするための手段を提供する。グラフィックス・コントローラ１２５も、ノースブリッジ１１５に接続する。一実施形態においては、ＰＣＩ  Ｅｘｐｒｅｓｓバス１１８が、ノースブリッジ１１５をグラフィックス・コントローラ１２５に接続する。グラフィックス・コントローラ１２５は、コンピュータ・モニタなどのディスプレイ・デバイス１３０に接続する。
【００４６】
ノースブリッジ１１５およびサウスブリッジ１３５は、バス１１９を用いて互いに接続する。一実施形態において、バスは、ノースブリッジ１１５とサウスブリッジ１３５との間でデータを各方向に高速転送するダイレクト・メディア・インターフェース（ＤＭＩ）バスである。別の実施形態においては、周辺装置相互接続（ＰＣＩ）バスが、ノースブリッジとサウスブリッジとを接続する。Ｉ／Ｏコントローラ・ハブ（ＩＣＨ）としても知られるサウスブリッジ１３５は、概して、ノースブリッジによって提供される能力よりも低速で動作する能力を実装するチップである。サウスブリッジ１３５は、通常、さまざまな構成要素を接続するために使用されるさまざまなバスを提供する。これらのバスは、例えば、ＰＣＩおよびＰＣＩ  Ｅｘｐｒｅｓｓバス、ＩＳＡバス、システム管理バス（ＳＭＢｕｓもしくはＳＭＢ）、またはロー・ピン・カウント（ＬＰＣ：Low Pin Count）バス、あるいはそれらすべてを含む。多くの場合、ＬＰＣバスは、ブートＲＯＭ１９６および（「スーパーＩ／Ｏ」チップを使用する）「レガシー」Ｉ／Ｏデバイスなどの低帯域幅デバイスを接続する。「レガシー」Ｉ／Ｏデバイス（１９８）は、例えば、シリアルおよびパラレル・ポート、キーボード、マウス、またはフロッピー・ディスク・コントローラ、あるいはそれらすべてを含む可能性がある。また、ＬＰＣバスは、サウスブリッジ１３５をトラステッド・プラットフォーム・モジュール（ＴＰＭ）１９５に接続する。サウスブリッジ１３５に含まれることが多いその他の構成要素は、ダイレクト・メモリ・アクセス（ＤＭＡ）コントローラ、プログラム可能割り込みコントローラ（ＰＩＣ：Programmable Interrupt Controller）、およびバス１８４を使用してサウスブリッジ１３５をハード・ディスク・ドライブなどの不揮発性ストレージ・デバイス１８５に接続するストレージ・デバイス・コントローラを含む。
【００４７】
ＥｘｐｒｅｓｓＣａｒｄ１５５は、ホットプラグ可能なデバイスを情報処理システムに接続するスロットである。ＥｘｐｒｅｓｓＣａｒｄ１５５は、ユニバーサル・シリアル・バス（ＵＳＢ）とＰＣＩ  Ｅｘｐｒｅｓｓバスとの両方を使用してサウスブリッジ１３５に接続するとき、ＰＣＩ  Ｅｘｐｒｅｓｓの接続性とＵＳＢの接続性との両方をサポートする。サウスブリッジ１３５は、ＵＳＢに接続するデバイスにＵＳＢの接続性を提供するＵＳＢコントローラ１４０を含む。これらのデバイスは、ウェブカメラ（カメラ）１５０、赤外線（ＩＲ）受信機１４８、キーボードおよびトラックパッド１４４、ならびにワイヤレス・パーソナル・エリア・ネットワーク（ＰＡＮ）を提供するＢｌｕｅｔｏｏｔｈデバイス１４６を含む。さらに、ＵＳＢコントローラ１４０は、マウス、取外し可能な不揮発性ストレージ・デバイス１４５、モデム、ネットワーク・カード、ＩＳＤＮコネクタ、ファックス、プリンタ、ＵＳＢハブ、および多くのその他の種類のＵＳＢ接続されるデバイスなどのその他の種々のＵＳＢ接続されるデバイス１４２にＵＳＢの接続性を提供する。取外し可能な不揮発性ストレージ・デバイス１４５は、ＵＳＢ接続されるデバイスとして示されているが、Ｆｉｒｅｗｉｒｅインターフェースなどの異なるインターフェースを用いて接続される可能性がある。
【００４８】
ワイヤレス・ローカル・エリア・ネットワーク（ＬＡＮ）デバイス１７５は、ＰＣＩまたはＰＣＩ  Ｅｘｐｒｅｓｓバス１７２を介してサウスブリッジ１３５に接続する。概して、ＬＡＮデバイス１７５は、情報処理システム１００と別のコンピュータ・システムまたはデバイスとの間のワイヤレス通信を行うためにすべて同じプロトコルを使用する無線変調技術のＩＥＥＥ８０２．１１規格のうちの１つを実装する。光ストレージ・デバイス１９０は、シリアルＡＴＡ（ＳＡＴＡ）バス１８８を使用してサウスブリッジ１３５に接続する。シリアルＡＴＡアダプタおよびデバイスは、高速シリアル・リンクを介して通信する。また、シリアルＡＴＡバスは、サウスブリッジ１３５を、ハード・ディスク・ドライブなどのその他の形式のストレージ・デバイスに接続する。サウンド・カードなどのオーディオ回路１６０は、バス１５８を介してサウスブリッジ１３５に接続する。さらに、オーディオ回路１６０は、オーディオ・ライン入力および光デジタルオーディオ入力ポート１６２、光デジタル出力およびヘッドフォン・ジャック１６４、内蔵スピーカ１６６、ならびに内蔵マイクロフォン１６８などの機能を提供する。イーサネット・コントローラ１７０は、ＰＣＩまたはＰＣＩ  Ｅｘｐｒｅｓｓバスなどのバスを用いてサウスブリッジ１３５に接続する。イーサネット・コントローラ１７０は、情報処理システム１００を、ローカル・エリア・ネットワーク（ＬＡＮ）、インターネット、ならびにその他のパブリックおよびプライベート・コンピュータ・ネットワークなどのコンピュータ・ネットワークに接続する。
【００４９】
図１は１つの情報処理システムを示すが、情報処理システムは、多くの形態をとる可能性がある。例えば、情報処理システムは、デスクトップ、サーバ、ポータブル、ラップトップ、ノートブック、またはその他のフォーム・ファクタ・コンピュータもしくはデータ処理システムの形態をとる可能性がある。加えて、情報処理システムは、携帯情報端末（ＰＤＡ）、ゲーム機、ＡＴＭ機、ポータブル電話デバイス、通信デバイス、またはプロセッサおよびメモリを含むその他のデバイスなどのその他のフォーム・ファクタを採用する可能性がある。
【００５０】
セキュリティ機能を提供するための、図１に示される、本明細書に記載のトラステッド・プラットフォーム・モジュール（ＴＰＭ１９５）は、ハードウェア・セキュリティ・モジュール（ＨＳＭ）の一例であるに過ぎない。したがって、本明細書において説明され、主張されるＴＰＭは、「トラステッド・プラットフォーム・モジュール（ＴＰＭ）仕様バージョン１．２」と題されたTrusted Computing Groups（ＴＣＧ）規格に準拠するハードウェア・セキュリティ・デバイスを含むがこれに限定されない任意の種類のＨＳＭを含む。ＴＰＭは、図２に概要を示される情報処理システムなどの任意の数の情報処理システムに組み込まれ得るハードウェア・セキュリティ・サブシステムである。
【００５１】
図２は、本明細書において説明される方法がネットワークで接続された環境で動作する多種多様な情報処理システムで実行され得ることを示すための、図１に示された情報処理システム環境の拡張を提供する。情報処理システムの種類は、ハンドヘルド・コンピュータ／モバイル電話２１０などの小型のハンドヘルド・デバイスからメインフレーム・コンピュータ２７０などの大型のメインフレーム・システムまでに及ぶ。ハンドヘルド・コンピュータ２１０の例は、携帯情報端末（ＰＤＡ）、ＭＰ３プレーヤ、ポータブル・テレビ、およびコンパクト・ディスク・プレーヤなどのパーソナル・エンターテインメント・デバイスを含む。情報処理システムのその他の例は、ペンまたはタブレット・コンピュータ２２０、ラップトップまたはノートブック・コンピュータ２３０、ワークステーション２４０、パーソナル・コンピュータ・システム２５０、およびサーバ２６０を含む。図２に個々に示されていないその他の種類の情報処理システムは、情報処理システム２８０によって表される。示されるように、さまざまな情報処理システムは、コンピュータ・ネットワーク２００を用いて一緒にネットワークで接続される可能性がある。さまざまな情報処理システムを相互接続するために使用され得るコンピュータ・ネットワークの種類は、ローカル・エリア・ネットワーク（ＬＡＮ）、ワイヤレス・ローカル・エリア・ネットワーク（ＷＬＡＮ）、インターネット、公衆交換電話網（ＰＳＴＮ）、その他のワイヤレス・ネットワーク、および情報処理システムを相互接続するために使用され得る任意のその他のネットワーク・トポロジーを含む。情報処理システムの多くは、ハード・ドライブなどの不揮発性データ・ストアまたは不揮発性メモリあるいはその両方を含む。図２に示される情報処理システムの一部は、別々の不揮発性データ・ストアを示す（サーバ２６０は、不揮発性データ・ストア２６５を利用し、メインフレーム・コンピュータ２７０は、不揮発性データ・ストア２７５を利用し、情報処理システム２８０は、不揮発性データ・ストア２８５を利用する）。不揮発性データ・ストアは、さまざまな情報処理システムの外部にある構成要素である可能性があり、または情報処理システムのうちの１つの内部にある可能性がある。加えて、取外し可能な不揮発性ストレージ・デバイス１４５は、取外し可能な不揮発性ストレージ・デバイス１４５を情報処理システムのＵＳＢポートまたはその他のコネクタに接続するなど、さまざまな技術を使用して２つ以上の情報処理システムの間で共有される可能性がある。
【００５２】
図３〜図６は、図１および図２に示されるように、情報処理システムおよびコンピュータ・ネットワークにおいて実行され得る手法を表す。変更管理システムは、変更が行われたか時および理由に関する情報を有するが、現在のシステムは、適した過去の仮想マシンを識別せず、したがって、過去のリリースに戻るプロセスは、せいぜい最善の推測で、人間によって引き起こされるプロセスである。本明細書に提供されている手法は、コンピュータ・システム上の仮想マシンの既知の過去の性能についての自動の履歴的パターン・マッチング・システムに変更管理システムを結合する。このように、欠点パターンを示していないアプリケーション／仮想イメージの過去のリリースが識別され、コンピュータ・システムに適用される。本明細書に記載されているプロセスは、欠点パターンを検出し、欠点パターンを最善に低減する仮想マシンの過去のリリースを決定するために、仮想マシンの性能に関する変更履歴データを利用する。システムは、コンピュータ・システムに適用するための「最善の」仮想マシン・イメージを識別するために、性能およびイベント・データをアーカイブし、指定された仮想イメージと関連付ける。さらに、そのパターンが以前に行われず、しかし、過去のＶＭイメージへの復帰が適用されたときには行われた場合、プロセスが繰り返され得る。
【００５３】
図３は、仮想マシン（ＶＭ）バージョン管理システムを示す構成要素の図である。ＶＭバージョン管理コンピュータ・システム３００は、さまざまな管理されたコンピュータ・システム上で現在稼働しているＶＭイメージを管理するために、変更管理データおよびリソース・メトリック・データを維持するコンピュータ・システムである。示した例では、ＶＭバージョン管理コンピュータ・システム３００は、いくつかのコンピュータ・システム（ＶＭ  Ａ（３１０）、ＶＭ  Ｂ（３２０）、ＶＭ  Ｃ（３３０）からＶＭ  ｎ（３４０）まで）に現在適用されている仮想マシンを管理している。
【００５４】
ＶＭバージョン管理システム３００によって利用される構成要素は、変更管理システム３５０と、ＶＭリソース・メトリックス収集システム３７０と、履歴的パターン・マッチング・システム３９０とを含む。変更管理システム３５０は、さまざまなコンピュータ・システムによって現在適用されているＶＭ、ならびにインストール（例えば、現在のＶＭが適用された日付、コンピュータ・システムで適用されていた以前のＶＭ、および対応する日付など）に関するメタデータを追跡するために使用される。ＶＭリソース・メトリックス収集システム３７０は、リソース・メトリックス（例えば、可用性、応答時間、チャネル容量、レイテンシ、終了時間、サービス時間、帯域幅、スループット、相対的効率、スケーラビリティ、ワット当たりの性能、圧縮比、命令パス長、およびスピード・アップなど）を定期的に収集するために使用される。リソース・メトリックスは、リソース・メトリックス・データ・ストア３８０に記憶される。履歴的パターン・マッチング・プロセス３９０は、データ・ストア３６０に記憶される利用可能なＶＭイメージのためのデータ・ストア３８０からのリソース・メトリックスを分析する。このように、プロセスは、過去のＶＭイメージのリソース・メトリックスが、現在インストールされているＶＭイメージによって現在示されているリソース・メトリックスに一致または類似しているかどうかに基づいて、コンピュータ・システムを現在妨げている問題が、過去のＶＭイメージのための問題でもあったかどうかを識別することができる。さらに、履歴的パターン・マッチング・プロセス３９０は、過去のＶＭイメージがコンピュータ・システム上で稼働している間に収集された履歴的リソース・メトリックスを分析することによって、データ・ストア３６０からの過去のＶＭイメージが異なる問題を示したかどうかを識別することができる。このように、履歴的パターン・マッチング・システムは、問題を示していない、または、問題が示されている場合、現在インストールされているＶＭイメージによって現在示されている問題よりも良い過去のＶＭを識別することができる。適切な（「最善の」）過去のＶＭイメージが識別されると、履歴的パターン・マッチング・プロセスは、コンピュータ・システムに選択された過去のＶＭイメージを適用し、それに応じてＶＭイメージに関してメタデータを更新することを担当する変更管理システム３５０に知らせる。
【００５５】
図４は、ＶＭバージョン管理システムによって行われるステップを示すフローチャートである。ステップ４００で、コンピュータ・システムは、現在のＶＭイメージを実行している。現在のＶＭイメージ（４１５）がコンピュータ・システム（システム３１０から３４０まで）上で実行されている間、ステップ４１０で、さまざまなときに、リソース・メトリックス（例えば、可用性、応答時間、チャネル容量、レイテンシ、終了時間、サービス時間、帯域幅、スループット、相対的効率、スケーラビリティ、ワット当たりの性能、圧縮比、命令パス長、およびスピード・アップなど）が収集され、ステップ４２０で、現在のＶＭリソース・メトリックス・データ・ストア４０２に記録される。利用可能なＶＭイメージは各々、それらに関連付けられたリソース・メトリック・データを有する。現在のイメージ４０１は、コンピュータ・システム上で現在稼働しているＶＭイメージである。現在のイメージに関連するリソース・メトリックスは、現在のＶＭイメージリソース・メトリックス・データ・ストア４０２に記憶される。同様に、過去のＶＭイメージがコンピュータ・システム上で実行されていた間に、コンピュータ・システム上で実行されていた過去のＶＭイメージも、収集され、記憶されたこれらのＶＭイメージに関連するリソース・メトリックスを有する。ＶＭイメージ−１（４０３）は、現在のＶＭイメージが適用される前に、コンピュータ・システム上で最近稼働していたＶＭイメージであり、ＶＭイメージ−１（４０３）が稼働していた間に収集され、記憶されたリソース・メトリックスは、リソース・メトリックス・データ・ストア４０４に記憶される。同様に、ＶＭイメージ−２（４０５）は、ＶＭイメージ−１が適用される直前に、コンピュータ・システム上で稼働していたＶＭイメージである。ＶＭイメージ−２（４０５）が稼働していた間に収集され、記憶されたリソース・メトリックスは、リソース・メトリックス・データ・ストア４０６に記憶される。ＶＭイメージ−ｎに関連するリソース・メトリックス・データ・ストア４０８に関するＶＭイメージ−ｎ（４０７）によって表されるように、任意の数の過去のＶＭイメージが利用され得る。
【００５６】
コンピュータ・システムによって現在実行されているＶＭによって、問題が示されているかどうかを検出するために、例えばＶＭバージョン管理コンピュータ・システム３００などのモニタが使用される。現在のＶＭイメージ（４１５）が問題に遭遇しているかどうかに関する決定が行われる（例えば、モニタによって）（決定４２５）。決定は、所与の時間量の間など、特定の閾値を上回る、または下回るリソース・メトリックスのうちの１つまたは複数に基づき得る。問題に遭遇していない（または、まだ検出されていない）場合、決定４２５は「いいえ」分岐に分岐し、これはループ・バックして、ＶＭイメージを実行し続け、リソース・メトリックスを収集し続ける。システムは、現在稼働しているＶＭイメージに対応するリソース・メトリックスを収集し、記録し続ける。現在稼働しているＶＭイメージに関する問題が検出されると、決定４２５は「はい」分岐に分岐し、過去のＶＭイメージを分析し、どのＶＭイメージがコンピュータ・システムに適用されるべきかを決定するさらなる処理が行われる。
【００５７】
ステップ４３０で、最新の過去のＶＭイメージ、およびその履歴的に保存されたリソース・メトリックス（例えば、イメージ−１（４０３）およびリソース・メトリックス（４０４））が選択される。示された実施形態では、最近使用されたものから最も古いものに、過去のＶＭが選択されるが、別の基準に基づいて過去のＶＭイメージが選択される、別の手法が使用され得る。ステップ４３５で、現在インストールされているＶＭイメージの問題の署名が作成され（まだ作成されていない場合）、選択されたイメージの履歴的な問題の署名と比較される。また、リソース・メトリック・データが過去のＶＭイメージの問題の署名を含まない場合、選択されたリソース・メトリックスに基づいて、問題の署名が生成される。同じ問題の署名が現在のＶＭイメージならびに選択された過去のＶＭイメージの両方に存在するかどうかについての決定が行われる（決定４４０）。プロセスは、現在インストールされているＶＭイメージによって遭遇されている同じ問題を示さない過去のＶＭイメージを識別することを試みている。それで、同じ問題の署名が選択された過去のＶＭイメージに存在しない場合、決定４４０は「いいえ」分岐に分岐し、選択された過去のＶＭイメージがコンピュータ・システムに適用されるべきであるかどうかを確認するためのさらなる処理が行われる。
【００５８】
過去のＶＭイメージがコンピュータ・システムにインストール（適用）されていたとき、選択された過去のＶＭイメージによって示され得た他の問題の署名について、選択された過去のＶＭイメージの履歴的リソース・メトリック・データをチェックするように、プロセスが構成されるかどうかの決定が行われる（決定４４５）。プロセスが、現在インストールされているＶＭイメージによって現在遭遇している問題を示していない第１の過去のＶＭイメージを識別するように構成される場合、決定４４５は「いいえ」分岐に分岐し、そこで、ステップ４６０で、選択された過去のＶＭイメージがコンピュータ・システムに適用される（現在インストールされているＶＭイメージを置き換える）。一方、プロセスが、他の問題の署名についてチェックするように構成される場合、決定４４５は、さらなる分析のために「はい」分岐に分岐する。
【００５９】
あらかじめ定義されたプロセス４５０で、（例えば、リソース・メトリックス・データ・ストア４０４など）選択された過去のＶＭイメージに関連する履歴的メトリックスは、選択されたＶＭイメージのリソース・メトリック・データにおいて明らかである任意の他の問題の署名を識別するために分析される（履歴的リソース・メトリックスの分析に関してさらなる処理の詳細について図５および対応するテキストを参照されたい）。選択された過去のＶＭイメージの履歴的リソース・メトリックスの分析によって他の問題の署名が見つかったかどうかについての決定が行われる（決定４５５）。他の問題が選択された過去のＶＭイメージの履歴的リソース・メトリックスで見つかった場合、決定４５５は「はい」分岐に分岐し、そこで、選択され、分析され得る追加の過去のＶＭイメージがあるかどうかについての決定が行われる（決定４８０）。一方、選択された過去のＶＭイメージのリソース・メトリックスが問題を明らかにしないことが分析で明らかになった場合、決定４５５は「いいえ」分岐に分岐し、そこで、ステップ４６０で、選択された過去のＶＭイメージがコンピュータ・システムに適用される（現在インストールされているＶＭイメージを置き換える）。
【００６０】
決定４８０に戻って、処理すべき追加の過去のＶＭイメージがある場合、決定４８０は「はい」分岐に分岐し、これはループ・バックして、問題を示さない過去のＶＭイメージがあるかどうかを決定するために、次の過去のＶＭイメージを選択し、処理する。このループは、処理すべき過去のＶＭイメージがそれ以上なくなるまで続けられ、その時点で、決定４８０が「いいえ」分岐に分岐し、そこで、あらかじめ定義されたプロセス４９０で、それぞれの履歴的リソース・メトリック・データにおいて実行された分析に基づいて、「最善の」過去のＶＭイメージが選択される（さらなる処理の詳細については、図６および対応するテキストを参照されたい）。
【００６１】
図５は、ＶＭイメージを選択するために使用される履歴的メトリックスの分析において使用される論理を示すフローチャートの図である。図４（図４のあらかじめ定義された方法４５０を参照されたい）に示される主要な処理によってルーチンが呼び出されると、処理が５００で始まる。ステップ５１０で、プロセスは、現在選択されている過去のＶＭイメージ（図５にデータ・ストア５２０として示され、図４にデータ・ストア４０４、４０６および４０８として示される）に対応するリソース・メトリックスの第１の組を選択する。ステップ５２０で、リソース・メトリックスによって示され得る任意の問題の署名を識別するために、選択された１組のリソース・メトリックスが分析される。例えば、リソース・メトリックスは、可用性、応答時間、チャネル容量、レイテンシ、終了時間、サービス時間、帯域幅、スループット、相対的効率、スケーラビリティ、ワット当たりの性能、圧縮比、命令パス長、およびスピード・アップなどを含み、パターンは、これらのメトリックスのうちの１つまたは複数が特定の閾値を超えるときを含み得る。
【００６２】
分析が選択された１組のリソース・メトリックスに基づいて選択されたイメージに関する別の課題を明らかにしたかどうかについての決定が行われる（決定５４０）。分析が選択された過去のＶＭイメージに関する別の課題を明らかにした場合、決定５４０は「はい」分岐に分岐し、そこで、ステップ５５０で、分析によって明らかにされた識別された問題の署名とともに、選択された過去のＶＭイメージ識別子が記憶される。ＶＭイメージ識別子および問題署名データは、（必要に応じて）将来の分析のために、データ・ストア５６０において保持される。一方、選択された１組のリソース・メトリックスの分析が問題（問題の署名）を明らかにしない場合、決定５４０は「いいえ」分岐に分岐して、ステップ５５０をバイパスする。
【００６３】
選択された過去のＶＭイメージのための分析に利用可能なリソース・メトリックスの組がさらにあるかどうかについての決定が行われる（決定５７０）。分析するリソース・メトリックスの追加の組がある場合、決定５７０は「はい」分岐に分岐し、これはループ・バックして、上述したようにリソース・メトリックスの次の組を選択し、処理する。このループは、選択された過去のＶＭイメージに関連付けられたリソース・メトリックスのすべての組が選択され、分析されるまで続けられ、その時点で、決定５７０は、「いいえ」分岐に分岐して、さらなる処理が行われる。
【００６４】
リソース・メトリックスの分析が、選択されたＶＭイメージに関連付けられた任意の他の問題（問題の署名）を検出したかどうかについての決定が行われる（決定５８０）。リソース・メトリックスの分析が選択された過去のＶＭイメージに関する１つまたは複数の他の問題を明らかにした場合、決定５８０は「はい」分岐に分岐し、そこで、処理が５９０（図４参照）で呼出しルーチンに戻り、リターン・コードは、選択された過去のＶＭイメージに関して問題が識別されたことを示す（呼出しルーチンは、適したイメージが識別されるまで、問題の署名について、過去のＶＭイメージを分析し続ける）。一方、リソース・メトリックスの分析が選択された過去のＶＭイメージに関する任意の他の問題を明らかにしなかった場合、決定５８０は「いいえ」分岐に分岐し、そこで、処理が５９５（図４参照）で呼出しルーチンに戻り、リターン・コードは、選択された過去のＶＭイメージに関して問題が識別されなかったことを示す（選択された過去のＶＭイメージは次いで、コンピュータ・システムに適用される）。
【００６５】
図６は、特定のコンピューティング環境のために「最善の」仮想マシン（ＶＭ）の選択において使用される論理を示すフローチャートの図である。過去のＶＭイメージの各々がそれらに関連付けられた１つまたは複数の問題の署名を有するので、メイン・ルーチンが過去のＶＭイメージを識別することができないとき、図６に示されるルーチンが図４（あらかじめ定義されたプロセス４９０）から呼び出される。図６に示されるルーチンは、コンピュータ・システムに適用される「最善の」過去のＶＭイメージを選択する。
【００６６】
ステップ６００で処理が始まると、ステップ６１０で、現在稼働しているＶＭイメージに関連付けられた問題（問題署名データ）が取り出され、メモリ・エリア６２０に記憶されて、「最善の」利用可能なＶＭイメージを現在稼働しているイメージに初期化する。その後の処理は、後述するように、過去のＶＭイメージ問題データを「最善の」利用可能なＶＭイメージと比較して、より良いとき、現在の「最善の」利用可能なイメージを置き換える。
【００６７】
ステップ６２５で、第１の利用可能な過去のＶＭイメージが選択される。このデータは、データ・ストア５６０から取り出され、データ・ストア５６０は、以前実行され、図５に示された処理を使用して、問題データをロードしている。ステップ６３０で、メモリ・エリア（メモリ・エリア６３５）は、クリアされる、または初期化される。ステップ６４０で、選択された過去のＶＭイメージについて識別された第１の問題（問題署名データ）が選択され、メモリ・エリア６３５に記憶される。選択された過去のＶＭイメージについて検出された他の問題（問題署名データ）があるかどうかについての決定が行われる（決定６５０）。検出された追加の問題がある場合、決定６５０は、「はい」分岐に分岐し、これはループ・バックして、次の問題（問題署名データ）を選択し、メモリ・エリア６３５に次の問題データを記憶する。このループは、選択された過去のＶＭイメージに関連付けられたすべての問題が選択され、メモリ・エリア６３５に記憶されるまで続けられ、その時点で、決定６５０は「いいえ」分岐に分岐して、さらなる処理が行われる。
【００６８】
ステップ６６０で、選択された過去のＶＭイメージに関連付けられた問題データが、メモリ・エリア６２０に以前記憶された現在の「最善の」利用可能なＶＭイメージ問題データと質的に比較される。比較に基づいて、選択された過去のＶＭイメージが現在の「最善の」利用可能なＶＭイメージよりも良いかどうかについての決定が行われる（決定６７０）。選択された過去のＶＭイメージが、現在の「最善の」利用可能なＶＭイメージよりも良い場合、決定６７０は「はい」分岐に分岐し、そこで、ステップ６７５で、メモリ・エリア６２０をクリアし、メモリ・エリア６３５から選択された過去のＶＭイメージに関連付けられた問題データとともに、選択された過去のＶＭイメージの識別子をメモリ・エリア６２０に書き込むことによって、現在の「最善の」利用可能なＶＭイメージが置き換えられる。一方、選択された過去のＶＭイメージが現在の「最善の」利用可能なＶＭイメージよりも良好ではない場合、決定６７０は「いいえ」分岐に分岐して、ステップ６７５を迂回する。
【００６９】
まだ処理されていない追加の過去のＶＭイメージがあるかどうかについての決定が行われる（決定６８０）。まだ処理されていない追加の過去のＶＭイメージがある場合、決定６８０は「はい」分岐に分岐し、これはループ・バックして、次の過去のＶＭイメージを選択し、イメージの問題データを「最善の」利用可能なイメージと比較する。このように、問題データを有するＶＭイメージが他の利用可能なＶＭイメージで検出された問題よりも良く管理され得ることを識別するために、過去のＶＭイメージの各々に対応する問題データが、現在の「最善の」利用可能なＶＭイメージと比較される。このループは、利用可能なＶＭイメージのすべてに関連付けられた問題データが処理されるまで続き、その時点で、決定６８０は、「いいえ」分岐に分岐する。ステップ６９０で、メモリ・エリア６２０に記憶される、「最善の」利用可能なＶＭイメージは、コンピュータ・システムに適用される。もちろん、現在稼働しているＶＭイメージが「最善の」利用可能なイメージであるとわかった場合、過去のＶＭイメージのいずれもシステムに適用されない。次いで、処理は、６９５で、呼出しルーチン（図４参照）に戻る。
【００７０】
図面の流れ図およびブロック図は、本発明のさまざまな実施形態によるシステム、方法、およびコンピュータ・プログラム製品のあり得る実装のアーキテクチャ、機能、および動作を示す。これに関連して、流れ図またはブロック図の各ブロックは、（１つまたは複数の）規定された論理的な機能を実装するための１つまたは複数の実行可能命令を含むモジュール、セグメント、またはコードの一部を表す可能性がある。一部の代替的な実装においては、ブロックで示された機能が、図面に示された順序とは異なる順序で行われる可能性があることにも留意されたい。例えば、連続で示された２つのブロックが、実際には実質的に同時に実行される可能性があり、またはそれらのブロックが、関連する機能に応じて逆順に実行されることもあり得る。ブロック図または流れ図あるいはその両方の各ブロックと、ブロック図または流れ図あるいはその両方のブロックの組合せとは、規定された機能もしくは動作を実行する専用のハードウェアに基づくシステム、または専用のハードウェアとコンピュータ命令との組合せによって実装され得ることも認められるであろう。
【００７１】
本発明の特定の実施形態が示され、説明されたが、本明細書の教示に基づいて、本発明および本発明のより広い態様から逸脱することなく改変および変更がなされ得ることは、当業者に明らかであろう。したがって、添付の特許請求の範囲は、その範囲内に、本発明の真の精神および範囲内にあるすべてのそのような改変および変更を包含することになる。さらに、本発明は、添付の特許請求の範囲によってのみ定義されることを理解されたい。導入される請求項の要素の具体的な数が意図される場合、そのような意図は請求項において明示的に記載され、そのような記載がない場合、そのような限定は存在しないことが、当業者にさらに理解されるであろう。非限定的な例に関して、理解の助けとして、添付の特許請求の範囲は、請求項の要素を導入するための導入句「少なくとも１つの（at least one）」および「１つまたは複数の（one or more）」の使用を含む。しかし、そのような句の使用は、同一の請求項が、導入句「１つまたは複数の」または「少なくとも１つの」および「ａ」または「ａｎ」などの不定冠詞を含むときでさえも、不定冠詞「ａ」または「ａｎ」による請求項の要素の導入が、そのように導入される請求項の要素を含む任意の特定の請求項を、単に１つのそのような要素を含む発明に限定するということを示唆していると解釈されるべきではなく、同じことが、請求項における定冠詞の使用にも当てはまる。
【図１】
0006266008.tif 000002
【図２】
0006266008.tif 000003
【図３】
0006266008.tif 000004
【図４】
0006266008.tif 000005
【図５】
0006266008.tif 000006
【図６】
0006266008.tif 000007