JP6266008B2 - 仮想マシン・イメージをコンピュータ・システムに適用する方法、情報処理システム、コンピュータ・プログラム - Google Patents

仮想マシン・イメージをコンピュータ・システムに適用する方法、情報処理システム、コンピュータ・プログラム Download PDF

Info

Publication number
JP6266008B2
JP6266008B2 JP2015544382A JP2015544382A JP6266008B2 JP 6266008 B2 JP6266008 B2 JP 6266008B2 JP 2015544382 A JP2015544382 A JP 2015544382A JP 2015544382 A JP2015544382 A JP 2015544382A JP 6266008 B2 JP6266008 B2 JP 6266008B2
Authority
JP
Japan
Prior art keywords
past
image
signature
images
action
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2015544382A
Other languages
English (en)
Other versions
JP2016504672A (ja
Inventor
ウテ、ロバート
フレッチャー、ジェイムス、コルヴァン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2016504672A publication Critical patent/JP2016504672A/ja
Application granted granted Critical
Publication of JP6266008B2 publication Critical patent/JP6266008B2/ja
Active 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
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0712Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a virtual computing platform, e.g. logically partitioned systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1438Restarting or rejuvenating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • G06F11/1484Generic software techniques for error detection or fault masking by means of middleware or OS functionality involving virtual machines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/83Indexing scheme relating to error detection, to error correction, and to monitoring the solution involving signatures

Description

本開示は、以前収集されたリソース・メトリックスに基づいて仮想マシン・イメージを復元する手法に関する。
現況技術の技術範囲を使用することにより、仮想マシン(VM)イメージが十分に挙動していないことが認識され、過去バージョンへのフォールバックが必要であると決定されても、どの過去イメージが使用されるべきかを決定する明白な手段がない。単に最新の過去バージョンにロール・バックすることでは、問題を解決しない可能性があり、したがって、顧客は、良好な、安定したイメージが見つかるまで、他の過去バージョンに反復的に戻らなければならない可能性がある。現在、「ランダムな選択」以外に戻るべき過去のリリースを決定する明白な方法はない。現在のシステムは、典型的には、現在のバージョンの望ましくない挙動を何が駆動していたかについて、どのレベルの評価もせずに、VMの直前の過去バージョンに戻る。今日、変更が行われた時および理由を示すために変更管理システムが存在するが、これらのシステムは、ロール・バック・バージョンを決定するための自動化された論理的根拠の提供によってではなく、人間によって照会される。したがって、これらの従来技術の手法では、人為的なミスが生じやすく、適切なイメージを決定するために人間によって引き起こされる分析時間を必要とする。
US20100162039は、コンピューティング・システムおよびそのデータのための高可用性およびディザスタ・リカバリを提供する分野における問題に対処する装置およびプロセスを開示している。これらの装置およびプロセスは、保護されるコンピューティング・システムのための高可用性およびディザスタ・リカバリを提供するために使用され得る。保護されるコンピューティング・システムは、仮想コンピューティング・システムでもよい。
従って発明が解決しようとする課題は、仮想マシン・イメージを分析してコンピュータ・システムに適用する方法を提供することである。
仮想マシン(VM)イメージをコンピュータ・システムに適用するための手法が提供される。情報処理システムによって実施されるこの手法では、コンピュータ・システムにおいて実行される現在のVMイメージが問題に遭遇していることの検出が行われる。これに応答して、コンピュータ・システムにおいて各々が以前実行されたイメージである過去のVMイメージが分析される。分析に基づいて、過去のVMイメージのうちの1つが選択され、選択されたイメージは、コンピュータ・システム上で現在のVMイメージを交換するために使用される。一実施形態では、現在のVMイメージにおいて検出された問題に関連した現在の問題の署名が作成され、この問題の署名が過去のVMイメージと一致する履歴の問題の署名と比較される。さらなる実施形態では、現在のVMイメージにおいて検出される同じ問題の署名を示す過去のVMイメージのうちのいずれかが拒否される。現在の問題の署名に一致しないそれらの問題の署名は、コンピュータ・システムにおいて使用され得る「最善の」過去のVMイメージを識別するために、質的に分析される。いくつかの場合、履歴の問題の署名は、対応する過去のVMイメージに関する問題を示さない場合がある。過去のVMイメージに対応する問題の署名は、過去のVMイメージがコンピュータ・システム上で稼働していた間に収集されたリソース・メトリックスを分析することによって生成され得る。一環境では、1つのコンピュータ・システムを使用して、いくつかのコンピュータ・システム上で稼働する仮想マシンを管理し、管理するコンピュータ・システムは、問題データの分析、およびさまざまなコンピュータ・システムにおいて適用される過去のVMイメージの選択を実行する。
以上の内容は、概要であり、したがって、当然、簡略化、一般化、および詳細の省略を含み、結果として、当業者は、概要が例示的にあるに過ぎず、限定するようにまったく意図されていないことを理解するであろう。特許請求の範囲によってのみ定義される本発明のその他の態様、発明の特徴、および利点は、以下に記載の非限定的な詳細な説明で明らかになるであろう。
第1の態様から見て、本発明は、情報処理システムによって実施される、仮想マシン(VM)イメージをコンピュータ・システムに適用する方法を提供し、この方法は、コンピュータ・システム上で実行される現在のVMイメージが問題に遭遇していることを検出するステップと、1つまたは複数の過去のVMイメージを分析するステップであって、過去のVMイメージの各々がコンピュータ・システム上で以前実行された、分析するステップと、分析に基づいて過去のVMイメージのうちの1つを選択するステップと、現在のVMイメージを選択された過去のVMイメージに置き換えるステップを含み、分析は、現在のVMイメージにおいて検出された問題に関連した現在の問題の署名を作成するステップと、現在の問題の署名を、過去のVMイメージのうちの1つと各々が一致する履歴の問題の署名と比較するステップとをさらに含む。
好ましくは、本発明は、比較に基づいて、現在の問題の署名に一致する履歴の問題の署名を有する過去のVMイメージの各々を拒否するステップをさらに含む方法を提供する。
好ましくは、本発明は、比較に基づいて、現在の問題の署名に一致しない1つまたは複数の履歴の問題の署名の組を識別するステップをさらに含み、選択された過去のVMイメージが、1つまたは複数の履歴の問題の署名の組に含まれる履歴の問題の署名に対応する、方法を提供する。
好ましくは、本発明は、1つまたは複数の履歴の問題の署名の組を質的に比較するステップをさらに含み、質的な比較によって、選択された履歴の問題の署名が得られ、選択された過去のVMイメージが、選択された履歴の問題の署名に対応する、方法を提供する。
好ましくは、本発明は、履歴の問題の署名のうちの少なくとも1つが、対応する過去のVMイメージが問題ないことを示す非問題の署名である、方法を提供する。
好ましくは、本発明は、過去のVMイメージのうちの1つを選択するステップが、非問題の署名を有する過去のVMイメージを識別するステップをさらに含み、識別された過去のVMイメージが、選択された過去のVMイメージとして選択される、方法を提供する。
好ましくは、本発明は、過去のVMイメージの各々に対応する複数のリソース・メトリックスを取り出すステップをさらに含み、過去のVMイメージがコンピュータ・システム上で実行されていた間に、リソース・メトリックスが最初に収集された、方法を提供する。
好ましくは、本発明は、過去のVMイメージの各々に対応する複数のリソース・メトリックスを分析するステップをさらに含み、分析によって、過去のVMイメージの各々に対応する履歴の問題の署名が得られる、方法を提供する。
好ましくは、本発明は、分析するステップおよび選択するステップが、第2のコンピュータ・システムを含む複数のコンピュータ・システムのためのVMイメージを管理する第2のコンピュータ・システムによって実行される、方法を提供する。
別の態様から見て、本発明は、情報処理システムを提供し、情報処理システムは、複数のプロセッサと、プロセッサのうちの少なくとも1つに結合されたメモリと、不揮発性の記憶領域と、メモリに記憶された、コンピュータ・システムに仮想マシン(VM)イメージを適用するためにプロセッサのうちの少なくとも1つによって実行される1組の命令とを含み、1組の命令が、コンピュータ・システム上で実行される現在のVMイメージが問題に遭遇していることを検出するアクションと、1つまたは複数の過去のVMイメージを分析するアクションであって、過去のVMイメージの各々がコンピュータ・システム上で以前実行された、分析するアクションと、分析に基づいて過去のVMイメージのうちの1つを選択するアクションと、現在のVMイメージを選択された過去のVMイメージに置き換えるアクションとを実行し、分析を実行する1組の命令が追加のアクションを実行し、追加のアクションが、現在のVMイメージにおいて検出された問題に関連した現在の問題の署名を作成するアクションと、現在の問題の署名を、過去のVMイメージのうちの1つと各々が対応する履歴の問題の署名と比較するアクションとをさらに含む。
好ましくは、本発明は、情報処理システムであって、1組の命令が追加のアクションを実行し、追加のアクションが、比較に基づいて、現在の問題の署名に一致する履歴の問題の署名を有する過去のVMイメージの各々を拒否するアクションを含む、情報処理システムを提供する。
好ましくは、本発明は、情報システムであって、1組の命令が追加のアクションを実行し、追加のアクションが、比較に基づいて、現在の問題の署名に一致しない1つまたは複数の履歴の問題の署名の組を識別するアクションを含み、選択された過去のVMイメージが、1つまたは複数の履歴の問題の署名の組に含まれる履歴の問題の署名に対応する、情報処理システムを提供する。
好ましくは、本発明は、情報処理システムであって、1組の命令が追加のアクションを実行し、追加のアクションが、1つまたは複数の履歴の問題の署名の組を質的に比較するアクションを含み、質的な比較によって、選択された履歴の問題の署名が得られ、選択された過去のVMイメージが、選択された履歴の問題の署名に対応する、情報処理システムを提供する。
好ましくは、本発明は、履歴の問題の署名のうちの少なくとも1つが、対応する過去のVMイメージが問題ないことを示す非問題の署名である、情報処理システムを提供する。
好ましくは、本発明は、過去のVMイメージのうちの1つを選択するアクションが、非問題の署名を有する過去のVMイメージを識別するアクションをさらに含み、識別された過去のVMイメージが、選択された過去のVMイメージとして選択される、情報処理システムを提供する。
好ましくは、本発明は、情報処理システムであって、1組の命令が追加のアクションを実行し、追加のアクションが、過去のVMイメージの各々に対応する複数のリソース・メトリックスを取り出すアクションを含み、過去のVMイメージがコンピュータ・システム上で実行されていた間に、リソース・メトリックスが最初に収集された、情報処理システムを提供する。
好ましくは、本発明は、過去のVMイメージの各々に対応する複数のリソース・メトリックスを分析するアクションをさらに含み、分析によって、過去のVMイメージの各々に対応する履歴の問題の署名が得られる、情報処理システムを提供する。
好ましくは、本発明は、分析するアクションおよび選択するアクションが、第2のコンピュータ・システムを含む複数のコンピュータ・システムのためのVMイメージを管理する第2のコンピュータ・システムによって実行される、情報処理システムを提供する。
別の態様から見て、本発明は、情報処理システムによって実行されると、情報処理システムにアクションを実行させることによって、コンピュータ・システムに仮想マシン(VM)イメージを適用するコンピュータ命令を含む、コンピュータ可読媒体に記憶されるコンピュータ・プログラム製品を提供し、アクションが、コンピュータ・システム上で実行される現在のVMイメージが問題に遭遇していることを検出するアクションと、1つまたは複数の過去のVMイメージを分析するアクションであって、過去のVMイメージの各々がコンピュータ・システム上で以前実行された、分析するアクションと、分析に基づいて過去のVMイメージのうちの1つを選択するアクションと、現在のVMイメージを選択された過去のVMイメージに置き換えるアクションとを含み、分析が、現在のVMイメージにおいて検出された問題に関連した現在の問題の署名を作成するアクションと、現在の問題の署名を、過去のVMイメージのうちの1つと各々が一致する履歴の問題の署名と比較するアクションとをさらに含む。
別の態様から、本発明は、アクションが、比較に基づいて、現在の問題の署名に一致する履歴の問題の署名を有する過去のVMイメージの各々を拒否するアクションをさらに含む、コンピュータ・プログラム製品を提供する。
別の態様から、本発明は、アクションが、比較に基づいて、現在の問題の署名に一致しない1つまたは複数の履歴の問題の署名の組を識別するアクションをさらに含み、選択された過去のVMイメージが、1つまたは複数の履歴の問題の署名の組に含まれる履歴の問題の署名に対応する、コンピュータ・プログラム製品を提供する。
別の態様から、本発明は、アクションが、1つまたは複数の履歴の問題の署名の組を質的に比較するアクションをさらに含み、質的な比較によって、選択された履歴の問題の署名が得られ、選択された過去のVMイメージが、選択された履歴の問題の署名に対応する、コンピュータ・プログラム製品を提供する。
別の態様から、本発明は、履歴の問題の署名のうちの少なくとも1つが、対応する過去のVMイメージが問題ないことを示す非問題の署名である、コンピュータ・プログラム製品を提供する。
別の態様から、本発明は、過去のVMイメージのうちの1つを選択するアクションが、非問題の署名を有する過去のVMイメージを識別するアクションをさらに含み、識別された過去のVMイメージが、選択された過去のVMイメージとして選択される、コンピュータ・プログラム製品を提供する。
別の態様から、本発明は、アクションが、過去のVMイメージの各々に対応する複数のリソース・メトリックスを取り出すアクションをさらに含み、過去のVMイメージがコンピュータ・システム上で実行されていた間に、リソース・メトリックスが最初に収集された、コンピュータ・プログラム製品を提供する。
別の態様から、本発明は、アクションが、過去のVMイメージの各々に対応する複数のリソース・メトリックスを分析するアクションをさらに含み、分析によって、過去のVMイメージの各々に対応する履歴の問題の署名が得られる、コンピュータ・プログラム製品を提供する。
別の態様から、本発明は、分析するアクションおよび選択するアクションが、第2のコンピュータ・システムを含む複数のコンピュータ・システムのためのVMイメージを管理する第2のコンピュータ・システムによって実行される、コンピュータ・プログラム製品を提供する。
次に、添付の図面を参照して、例示のみを目的として、本発明の好ましい実施形態について説明する。
添付の図面を参照することによって、本発明がより深く理解されることが可能であり、本発明の多くの目的、特徴、および利点が当業者に明らかにされるであろう。
本明細書に記載されている方法が実行され得るデータ処理システムのブロック図である。 ネットワーク環境で動作する多種多様な情報処理システムにおいて、本明細書に記載されている方法が実行され得ることを示すために、図1に示される情報処理システム環境の拡張を提供する図である。 仮想マシン(VM)バージョン管理システムを示す構成要素の図である。 VMバージョン管理システムによってとられるステップを示すフローチャートである。 VMイメージを選択するために使用される履歴的メトリックスの分析において使用される論理を示すフローチャートの図である。 特定のコンピューティング環境のために「最善の」仮想マシンの選択において使用される論理を示すフローチャートの図である。
当業者に理解されるように、本発明の態様は、システム、方法、またはコンピュータ・プログラム製品として具現化され得る。したがって、本発明の態様は、すべてハードウェアの実施形態、すべてソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロコードなどを含む)、またはソフトウェアの態様とハードウェアの態様とを組み合わせる実施形態の形態をとる可能性があり、これらはすべてが概して本明細書において「回路」、「モジュール」、または「システム」と呼ばれることがある。さらに、本発明の態様は、コンピュータ可読プログラム・コードを具現化する1つまたは複数のコンピュータ可読媒体で具現化されたコンピュータ・プログラム製品の形態をとる可能性がある。
1つまたは複数のコンピュータ可読媒体の任意の組合せが、利用される可能性がある。コンピュータ可読媒体は、コンピュータ可読信号媒体またはコンピュータ可読ストレージ媒体である可能性がある。コンピュータ可読ストレージ媒体は、例えば、電子、磁気、光、電磁、赤外線、もしくは半導体のシステム、装置、またはデバイス、あるいはこれらの任意の好適な組合せである可能性があるがこれらに限定されない。コンピュータ可読ストレージ媒体のより詳細な例(非網羅的なリスト)は、以下、すなわち、1つもしくは複数の配線を有する電気的な接続、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読出し専用メモリ(ROM)、消去可能プログラマブル読出し専用メモリ(EPROMもしくはフラッシュ・メモリ)、光ファイバ、ポータブル・コンパクト・ディスク読出し専用メモリ(CD−ROM)、光ストレージ・デバイス、磁気ストレージ・デバイス、またはこれらの任意の好適な組合せを含む。本明細書の文脈において、コンピュータ可読ストレージ媒体は、命令実行システム、装置、もしくはデバイスによって、または命令実行システム、装置、もしくはデバイスに関連して使用するためのプログラムを含むまたは記憶することができる任意の有形の媒体である可能性がある。
コンピュータ可読信号媒体は、例えば、ベースバンドで、または搬送波の一部としてコンピュータ可読プログラム・コードを具現化する伝播されるデータ信号を含み得る。そのような伝播される信号は、電磁的、光学的、またはこれらの任意の好適な組合せを含むがこれらに限定されないさまざまな形態のうちの任意の形態をとり得る。コンピュータ可読信号媒体は、コンピュータ可読ストレージ媒体ではなく、命令実行システム、装置、もしくはデバイスによって、または命令実行システム、装置、もしくはデバイスに関連して使用するためのプログラムを伝達、伝播、または搬送することができる任意のコンピュータ可読媒体である可能性がある。
コンピュータ可読媒体上に具現化されるプログラム・コードは、無線、有線、光ファイバ・ケーブル、RFなど、またはこれらの任意の好適な組合せを含むがこれらに限定されない任意の適切な媒体を用いて送信される可能性がある。
本発明の態様の操作を実行するためのコンピュータ・プログラム・コードは、Java(R)、Smalltalk(R)、C++などのオブジェクト指向プログラミング言語と、「C」プログラミング言語または同様のプログラミング言語などの通常の手続き型プログラミング言語とを含む1つまたは複数のプログラミング言語の任意の組合せで記述され得る。プログラム・コードは、すべてユーザのコンピュータ上で、スタンドアロンのソフトウェア・パッケージとしてユーザのコンピュータ上で部分的に、ユーザのコンピュータ上で部分的にかつ遠隔のコンピュータ上で部分的に、またはすべて遠隔のコンピュータ、サーバ、もしくはサーバのクラスタ上で実行され得る。最後の筋書きでは、遠隔のコンピュータが、ローカル・エリア・ネットワーク(LAN)もしくは広域ネットワーク(WAN)を含む任意の種類のネットワークを介してユーザのコンピュータに接続され得るか、または外部コンピュータへの接続が(例えば、インターネット・サービス・プロバイダを使用してインターネットを介して)行われ得る。
本発明の態様が、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品の流れ図またはブロック図あるいはその両方を参照して以下で説明される。流れ図またはブロック図あるいはその両方の各ブロック、および流れ図またはブロック図あるいはその両方のブロックの組合せは、コンピュータ・プログラム命令によって実装され得ることが理解されるであろう。これらのコンピュータ・プログラム命令は、コンピュータまたはその他のプログラム可能なデータ処理装置のプロセッサによって実行される命令が、流れ図またはブロック図あるいはその両方の1つのブロックまたは複数のブロックで規定された機能/動作を実施するための手段をもたらすように、多目的コンピュータ、専用コンピュータ、またはその他のプログラム可能なデータ処理装置のプロセッサに与えられてマシンを生成する可能性がある。
これらのコンピュータ・プログラム命令は、コンピュータ可読媒体に記憶された命令が、流れ図またはブロック図あるいはその両方の1つのブロックまたは複数のブロックで規定された機能/動作を実施する命令を含む製品をもたらすように、コンピュータ、その他のプログラム可能なデータ処理装置、またはその他のデバイスを特定の方法で機能させることができるコンピュータ可読媒体に記憶される可能性もある。
コンピュータ・プログラム命令は、コンピュータまたはその他のプログラム可能な装置で実行される命令が、流れ図またはブロック図あるいはその両方の1つのブロックまたは複数のブロックで規定された機能/動作を実施するためのプロセスを提供するように、コンピュータで実施されるプロセスを生成するために一連の動作のステップがコンピュータ、その他のプログラム可能な装置、またはその他のデバイスで実行されるようにするために、コンピュータ、その他のプログラム可能なデータ処理装置、またはその他のデバイスにロードされる可能性もある。
図1は、本明細書において説明される計算動作を実行することができるコンピュータ・システムの簡略化された例である情報処理システム100を示す。情報処理システム100は、プロセッサ・インターフェース・バス112に結合された1つまたは複数のプロセッサ110を含む。プロセッサ・インターフェース・バス112は、プロセッサ110を、メモリ・コントローラ・ハブ(MCH)としても知られるノースブリッジ115に接続する。ノースブリッジ115は、システム・メモリ120に接続し、(1つまたは複数の)プロセッサ110がシステム・メモリにアクセスするための手段を提供する。グラフィックス・コントローラ125も、ノースブリッジ115に接続する。一実施形態においては、PCI Expressバス118が、ノースブリッジ115をグラフィックス・コントローラ125に接続する。グラフィックス・コントローラ125は、コンピュータ・モニタなどのディスプレイ・デバイス130に接続する。
ノースブリッジ115およびサウスブリッジ135は、バス119を用いて互いに接続する。一実施形態において、バスは、ノースブリッジ115とサウスブリッジ135との間でデータを各方向に高速転送するダイレクト・メディア・インターフェース(DMI)バスである。別の実施形態においては、周辺装置相互接続(PCI)バスが、ノースブリッジとサウスブリッジとを接続する。I/Oコントローラ・ハブ(ICH)としても知られるサウスブリッジ135は、概して、ノースブリッジによって提供される能力よりも低速で動作する能力を実装するチップである。サウスブリッジ135は、通常、さまざまな構成要素を接続するために使用されるさまざまなバスを提供する。これらのバスは、例えば、PCIおよびPCI Expressバス、ISAバス、システム管理バス(SMBusもしくはSMB)、またはロー・ピン・カウント(LPC:Low Pin Count)バス、あるいはそれらすべてを含む。多くの場合、LPCバスは、ブートROM196および(「スーパーI/O」チップを使用する)「レガシー」I/Oデバイスなどの低帯域幅デバイスを接続する。「レガシー」I/Oデバイス(198)は、例えば、シリアルおよびパラレル・ポート、キーボード、マウス、またはフロッピー・ディスク・コントローラ、あるいはそれらすべてを含む可能性がある。また、LPCバスは、サウスブリッジ135をトラステッド・プラットフォーム・モジュール(TPM)195に接続する。サウスブリッジ135に含まれることが多いその他の構成要素は、ダイレクト・メモリ・アクセス(DMA)コントローラ、プログラム可能割り込みコントローラ(PIC:Programmable Interrupt Controller)、およびバス184を使用してサウスブリッジ135をハード・ディスク・ドライブなどの不揮発性ストレージ・デバイス185に接続するストレージ・デバイス・コントローラを含む。
ExpressCard155は、ホットプラグ可能なデバイスを情報処理システムに接続するスロットである。ExpressCard155は、ユニバーサル・シリアル・バス(USB)とPCI Expressバスとの両方を使用してサウスブリッジ135に接続するとき、PCI Expressの接続性とUSBの接続性との両方をサポートする。サウスブリッジ135は、USBに接続するデバイスにUSBの接続性を提供するUSBコントローラ140を含む。これらのデバイスは、ウェブカメラ(カメラ)150、赤外線(IR)受信機148、キーボードおよびトラックパッド144、ならびにワイヤレス・パーソナル・エリア・ネットワーク(PAN)を提供するBluetoothデバイス146を含む。さらに、USBコントローラ140は、マウス、取外し可能な不揮発性ストレージ・デバイス145、モデム、ネットワーク・カード、ISDNコネクタ、ファックス、プリンタ、USBハブ、および多くのその他の種類のUSB接続されるデバイスなどのその他の種々のUSB接続されるデバイス142にUSBの接続性を提供する。取外し可能な不揮発性ストレージ・デバイス145は、USB接続されるデバイスとして示されているが、Firewireインターフェースなどの異なるインターフェースを用いて接続される可能性がある。
ワイヤレス・ローカル・エリア・ネットワーク(LAN)デバイス175は、PCIまたはPCI Expressバス172を介してサウスブリッジ135に接続する。概して、LANデバイス175は、情報処理システム100と別のコンピュータ・システムまたはデバイスとの間のワイヤレス通信を行うためにすべて同じプロトコルを使用する無線変調技術のIEEE802.11規格のうちの1つを実装する。光ストレージ・デバイス190は、シリアルATA(SATA)バス188を使用してサウスブリッジ135に接続する。シリアルATAアダプタおよびデバイスは、高速シリアル・リンクを介して通信する。また、シリアルATAバスは、サウスブリッジ135を、ハード・ディスク・ドライブなどのその他の形式のストレージ・デバイスに接続する。サウンド・カードなどのオーディオ回路160は、バス158を介してサウスブリッジ135に接続する。さらに、オーディオ回路160は、オーディオ・ライン入力および光デジタルオーディオ入力ポート162、光デジタル出力およびヘッドフォン・ジャック164、内蔵スピーカ166、ならびに内蔵マイクロフォン168などの機能を提供する。イーサネット・コントローラ170は、PCIまたはPCI Expressバスなどのバスを用いてサウスブリッジ135に接続する。イーサネット・コントローラ170は、情報処理システム100を、ローカル・エリア・ネットワーク(LAN)、インターネット、ならびにその他のパブリックおよびプライベート・コンピュータ・ネットワークなどのコンピュータ・ネットワークに接続する。
図1は1つの情報処理システムを示すが、情報処理システムは、多くの形態をとる可能性がある。例えば、情報処理システムは、デスクトップ、サーバ、ポータブル、ラップトップ、ノートブック、またはその他のフォーム・ファクタ・コンピュータもしくはデータ処理システムの形態をとる可能性がある。加えて、情報処理システムは、携帯情報端末(PDA)、ゲーム機、ATM機、ポータブル電話デバイス、通信デバイス、またはプロセッサおよびメモリを含むその他のデバイスなどのその他のフォーム・ファクタを採用する可能性がある。
セキュリティ機能を提供するための、図1に示される、本明細書に記載のトラステッド・プラットフォーム・モジュール(TPM195)は、ハードウェア・セキュリティ・モジュール(HSM)の一例であるに過ぎない。したがって、本明細書において説明され、主張されるTPMは、「トラステッド・プラットフォーム・モジュール(TPM)仕様バージョン1.2」と題されたTrusted Computing Groups(TCG)規格に準拠するハードウェア・セキュリティ・デバイスを含むがこれに限定されない任意の種類のHSMを含む。TPMは、図2に概要を示される情報処理システムなどの任意の数の情報処理システムに組み込まれ得るハードウェア・セキュリティ・サブシステムである。
図2は、本明細書において説明される方法がネットワークで接続された環境で動作する多種多様な情報処理システムで実行され得ることを示すための、図1に示された情報処理システム環境の拡張を提供する。情報処理システムの種類は、ハンドヘルド・コンピュータ/モバイル電話210などの小型のハンドヘルド・デバイスからメインフレーム・コンピュータ270などの大型のメインフレーム・システムまでに及ぶ。ハンドヘルド・コンピュータ210の例は、携帯情報端末(PDA)、MP3プレーヤ、ポータブル・テレビ、およびコンパクト・ディスク・プレーヤなどのパーソナル・エンターテインメント・デバイスを含む。情報処理システムのその他の例は、ペンまたはタブレット・コンピュータ220、ラップトップまたはノートブック・コンピュータ230、ワークステーション240、パーソナル・コンピュータ・システム250、およびサーバ260を含む。図2に個々に示されていないその他の種類の情報処理システムは、情報処理システム280によって表される。示されるように、さまざまな情報処理システムは、コンピュータ・ネットワーク200を用いて一緒にネットワークで接続される可能性がある。さまざまな情報処理システムを相互接続するために使用され得るコンピュータ・ネットワークの種類は、ローカル・エリア・ネットワーク(LAN)、ワイヤレス・ローカル・エリア・ネットワーク(WLAN)、インターネット、公衆交換電話網(PSTN)、その他のワイヤレス・ネットワーク、および情報処理システムを相互接続するために使用され得る任意のその他のネットワーク・トポロジーを含む。情報処理システムの多くは、ハード・ドライブなどの不揮発性データ・ストアまたは不揮発性メモリあるいはその両方を含む。図2に示される情報処理システムの一部は、別々の不揮発性データ・ストアを示す(サーバ260は、不揮発性データ・ストア265を利用し、メインフレーム・コンピュータ270は、不揮発性データ・ストア275を利用し、情報処理システム280は、不揮発性データ・ストア285を利用する)。不揮発性データ・ストアは、さまざまな情報処理システムの外部にある構成要素である可能性があり、または情報処理システムのうちの1つの内部にある可能性がある。加えて、取外し可能な不揮発性ストレージ・デバイス145は、取外し可能な不揮発性ストレージ・デバイス145を情報処理システムのUSBポートまたはその他のコネクタに接続するなど、さまざまな技術を使用して2つ以上の情報処理システムの間で共有される可能性がある。
図3〜図6は、図1および図2に示されるように、情報処理システムおよびコンピュータ・ネットワークにおいて実行され得る手法を表す。変更管理システムは、変更が行われたか時および理由に関する情報を有するが、現在のシステムは、適した過去の仮想マシンを識別せず、したがって、過去のリリースに戻るプロセスは、せいぜい最善の推測で、人間によって引き起こされるプロセスである。本明細書に提供されている手法は、コンピュータ・システム上の仮想マシンの既知の過去の性能についての自動の履歴的パターン・マッチング・システムに変更管理システムを結合する。このように、欠点パターンを示していないアプリケーション/仮想イメージの過去のリリースが識別され、コンピュータ・システムに適用される。本明細書に記載されているプロセスは、欠点パターンを検出し、欠点パターンを最善に低減する仮想マシンの過去のリリースを決定するために、仮想マシンの性能に関する変更履歴データを利用する。システムは、コンピュータ・システムに適用するための「最善の」仮想マシン・イメージを識別するために、性能およびイベント・データをアーカイブし、指定された仮想イメージと関連付ける。さらに、そのパターンが以前に行われず、しかし、過去のVMイメージへの復帰が適用されたときには行われた場合、プロセスが繰り返され得る。
図3は、仮想マシン(VM)バージョン管理システムを示す構成要素の図である。VMバージョン管理コンピュータ・システム300は、さまざまな管理されたコンピュータ・システム上で現在稼働しているVMイメージを管理するために、変更管理データおよびリソース・メトリック・データを維持するコンピュータ・システムである。示した例では、VMバージョン管理コンピュータ・システム300は、いくつかのコンピュータ・システム(VM A(310)、VM B(320)、VM C(330)からVM n(340)まで)に現在適用されている仮想マシンを管理している。
VMバージョン管理システム300によって利用される構成要素は、変更管理システム350と、VMリソース・メトリックス収集システム370と、履歴的パターン・マッチング・システム390とを含む。変更管理システム350は、さまざまなコンピュータ・システムによって現在適用されているVM、ならびにインストール(例えば、現在のVMが適用された日付、コンピュータ・システムで適用されていた以前のVM、および対応する日付など)に関するメタデータを追跡するために使用される。VMリソース・メトリックス収集システム370は、リソース・メトリックス(例えば、可用性、応答時間、チャネル容量、レイテンシ、終了時間、サービス時間、帯域幅、スループット、相対的効率、スケーラビリティ、ワット当たりの性能、圧縮比、命令パス長、およびスピード・アップなど)を定期的に収集するために使用される。リソース・メトリックスは、リソース・メトリックス・データ・ストア380に記憶される。履歴的パターン・マッチング・プロセス390は、データ・ストア360に記憶される利用可能なVMイメージのためのデータ・ストア380からのリソース・メトリックスを分析する。このように、プロセスは、過去のVMイメージのリソース・メトリックスが、現在インストールされているVMイメージによって現在示されているリソース・メトリックスに一致または類似しているかどうかに基づいて、コンピュータ・システムを現在妨げている問題が、過去のVMイメージのための問題でもあったかどうかを識別することができる。さらに、履歴的パターン・マッチング・プロセス390は、過去のVMイメージがコンピュータ・システム上で稼働している間に収集された履歴的リソース・メトリックスを分析することによって、データ・ストア360からの過去のVMイメージが異なる問題を示したかどうかを識別することができる。このように、履歴的パターン・マッチング・システムは、問題を示していない、または、問題が示されている場合、現在インストールされているVMイメージによって現在示されている問題よりも良い過去のVMを識別することができる。適切な(「最善の」)過去のVMイメージが識別されると、履歴的パターン・マッチング・プロセスは、コンピュータ・システムに選択された過去のVMイメージを適用し、それに応じてVMイメージに関してメタデータを更新することを担当する変更管理システム350に知らせる。
図4は、VMバージョン管理システムによって行われるステップを示すフローチャートである。ステップ400で、コンピュータ・システムは、現在のVMイメージを実行している。現在のVMイメージ(415)がコンピュータ・システム(システム310から340まで)上で実行されている間、ステップ410で、さまざまなときに、リソース・メトリックス(例えば、可用性、応答時間、チャネル容量、レイテンシ、終了時間、サービス時間、帯域幅、スループット、相対的効率、スケーラビリティ、ワット当たりの性能、圧縮比、命令パス長、およびスピード・アップなど)が収集され、ステップ420で、現在のVMリソース・メトリックス・データ・ストア402に記録される。利用可能なVMイメージは各々、それらに関連付けられたリソース・メトリック・データを有する。現在のイメージ401は、コンピュータ・システム上で現在稼働しているVMイメージである。現在のイメージに関連するリソース・メトリックスは、現在のVMイメージリソース・メトリックス・データ・ストア402に記憶される。同様に、過去のVMイメージがコンピュータ・システム上で実行されていた間に、コンピュータ・システム上で実行されていた過去のVMイメージも、収集され、記憶されたこれらのVMイメージに関連するリソース・メトリックスを有する。VMイメージ−1(403)は、現在のVMイメージが適用される前に、コンピュータ・システム上で最近稼働していたVMイメージであり、VMイメージ−1(403)が稼働していた間に収集され、記憶されたリソース・メトリックスは、リソース・メトリックス・データ・ストア404に記憶される。同様に、VMイメージ−2(405)は、VMイメージ−1が適用される直前に、コンピュータ・システム上で稼働していたVMイメージである。VMイメージ−2(405)が稼働していた間に収集され、記憶されたリソース・メトリックスは、リソース・メトリックス・データ・ストア406に記憶される。VMイメージ−nに関連するリソース・メトリックス・データ・ストア408に関するVMイメージ−n(407)によって表されるように、任意の数の過去のVMイメージが利用され得る。
コンピュータ・システムによって現在実行されているVMによって、問題が示されているかどうかを検出するために、例えばVMバージョン管理コンピュータ・システム300などのモニタが使用される。現在のVMイメージ(415)が問題に遭遇しているかどうかに関する決定が行われる(例えば、モニタによって)(決定425)。決定は、所与の時間量の間など、特定の閾値を上回る、または下回るリソース・メトリックスのうちの1つまたは複数に基づき得る。問題に遭遇していない(または、まだ検出されていない)場合、決定425は「いいえ」分岐に分岐し、これはループ・バックして、VMイメージを実行し続け、リソース・メトリックスを収集し続ける。システムは、現在稼働しているVMイメージに対応するリソース・メトリックスを収集し、記録し続ける。現在稼働しているVMイメージに関する問題が検出されると、決定425は「はい」分岐に分岐し、過去のVMイメージを分析し、どのVMイメージがコンピュータ・システムに適用されるべきかを決定するさらなる処理が行われる。
ステップ430で、最新の過去のVMイメージ、およびその履歴的に保存されたリソース・メトリックス(例えば、イメージ−1(403)およびリソース・メトリックス(404))が選択される。示された実施形態では、最近使用されたものから最も古いものに、過去のVMが選択されるが、別の基準に基づいて過去のVMイメージが選択される、別の手法が使用され得る。ステップ435で、現在インストールされているVMイメージの問題の署名が作成され(まだ作成されていない場合)、選択されたイメージの履歴的な問題の署名と比較される。また、リソース・メトリック・データが過去のVMイメージの問題の署名を含まない場合、選択されたリソース・メトリックスに基づいて、問題の署名が生成される。同じ問題の署名が現在のVMイメージならびに選択された過去のVMイメージの両方に存在するかどうかについての決定が行われる(決定440)。プロセスは、現在インストールされているVMイメージによって遭遇されている同じ問題を示さない過去のVMイメージを識別することを試みている。それで、同じ問題の署名が選択された過去のVMイメージに存在しない場合、決定440は「いいえ」分岐に分岐し、選択された過去のVMイメージがコンピュータ・システムに適用されるべきであるかどうかを確認するためのさらなる処理が行われる。
過去のVMイメージがコンピュータ・システムにインストール(適用)されていたとき、選択された過去のVMイメージによって示され得た他の問題の署名について、選択された過去のVMイメージの履歴的リソース・メトリック・データをチェックするように、プロセスが構成されるかどうかの決定が行われる(決定445)。プロセスが、現在インストールされているVMイメージによって現在遭遇している問題を示していない第1の過去のVMイメージを識別するように構成される場合、決定445は「いいえ」分岐に分岐し、そこで、ステップ460で、選択された過去のVMイメージがコンピュータ・システムに適用される(現在インストールされているVMイメージを置き換える)。一方、プロセスが、他の問題の署名についてチェックするように構成される場合、決定445は、さらなる分析のために「はい」分岐に分岐する。
あらかじめ定義されたプロセス450で、(例えば、リソース・メトリックス・データ・ストア404など)選択された過去のVMイメージに関連する履歴的メトリックスは、選択されたVMイメージのリソース・メトリック・データにおいて明らかである任意の他の問題の署名を識別するために分析される(履歴的リソース・メトリックスの分析に関してさらなる処理の詳細について図5および対応するテキストを参照されたい)。選択された過去のVMイメージの履歴的リソース・メトリックスの分析によって他の問題の署名が見つかったかどうかについての決定が行われる(決定455)。他の問題が選択された過去のVMイメージの履歴的リソース・メトリックスで見つかった場合、決定455は「はい」分岐に分岐し、そこで、選択され、分析され得る追加の過去のVMイメージがあるかどうかについての決定が行われる(決定480)。一方、選択された過去のVMイメージのリソース・メトリックスが問題を明らかにしないことが分析で明らかになった場合、決定455は「いいえ」分岐に分岐し、そこで、ステップ460で、選択された過去のVMイメージがコンピュータ・システムに適用される(現在インストールされているVMイメージを置き換える)。
決定480に戻って、処理すべき追加の過去のVMイメージがある場合、決定480は「はい」分岐に分岐し、これはループ・バックして、問題を示さない過去のVMイメージがあるかどうかを決定するために、次の過去のVMイメージを選択し、処理する。このループは、処理すべき過去のVMイメージがそれ以上なくなるまで続けられ、その時点で、決定480が「いいえ」分岐に分岐し、そこで、あらかじめ定義されたプロセス490で、それぞれの履歴的リソース・メトリック・データにおいて実行された分析に基づいて、「最善の」過去のVMイメージが選択される(さらなる処理の詳細については、図6および対応するテキストを参照されたい)。
図5は、VMイメージを選択するために使用される履歴的メトリックスの分析において使用される論理を示すフローチャートの図である。図4(図4のあらかじめ定義された方法450を参照されたい)に示される主要な処理によってルーチンが呼び出されると、処理が500で始まる。ステップ510で、プロセスは、現在選択されている過去のVMイメージ(図5にデータ・ストア520として示され、図4にデータ・ストア404、406および408として示される)に対応するリソース・メトリックスの第1の組を選択する。ステップ520で、リソース・メトリックスによって示され得る任意の問題の署名を識別するために、選択された1組のリソース・メトリックスが分析される。例えば、リソース・メトリックスは、可用性、応答時間、チャネル容量、レイテンシ、終了時間、サービス時間、帯域幅、スループット、相対的効率、スケーラビリティ、ワット当たりの性能、圧縮比、命令パス長、およびスピード・アップなどを含み、パターンは、これらのメトリックスのうちの1つまたは複数が特定の閾値を超えるときを含み得る。
分析が選択された1組のリソース・メトリックスに基づいて選択されたイメージに関する別の課題を明らかにしたかどうかについての決定が行われる(決定540)。分析が選択された過去のVMイメージに関する別の課題を明らかにした場合、決定540は「はい」分岐に分岐し、そこで、ステップ550で、分析によって明らかにされた識別された問題の署名とともに、選択された過去のVMイメージ識別子が記憶される。VMイメージ識別子および問題署名データは、(必要に応じて)将来の分析のために、データ・ストア560において保持される。一方、選択された1組のリソース・メトリックスの分析が問題(問題の署名)を明らかにしない場合、決定540は「いいえ」分岐に分岐して、ステップ550をバイパスする。
選択された過去のVMイメージのための分析に利用可能なリソース・メトリックスの組がさらにあるかどうかについての決定が行われる(決定570)。分析するリソース・メトリックスの追加の組がある場合、決定570は「はい」分岐に分岐し、これはループ・バックして、上述したようにリソース・メトリックスの次の組を選択し、処理する。このループは、選択された過去のVMイメージに関連付けられたリソース・メトリックスのすべての組が選択され、分析されるまで続けられ、その時点で、決定570は、「いいえ」分岐に分岐して、さらなる処理が行われる。
リソース・メトリックスの分析が、選択されたVMイメージに関連付けられた任意の他の問題(問題の署名)を検出したかどうかについての決定が行われる(決定580)。リソース・メトリックスの分析が選択された過去のVMイメージに関する1つまたは複数の他の問題を明らかにした場合、決定580は「はい」分岐に分岐し、そこで、処理が590(図4参照)で呼出しルーチンに戻り、リターン・コードは、選択された過去のVMイメージに関して問題が識別されたことを示す(呼出しルーチンは、適したイメージが識別されるまで、問題の署名について、過去のVMイメージを分析し続ける)。一方、リソース・メトリックスの分析が選択された過去のVMイメージに関する任意の他の問題を明らかにしなかった場合、決定580は「いいえ」分岐に分岐し、そこで、処理が595(図4参照)で呼出しルーチンに戻り、リターン・コードは、選択された過去のVMイメージに関して問題が識別されなかったことを示す(選択された過去のVMイメージは次いで、コンピュータ・システムに適用される)。
図6は、特定のコンピューティング環境のために「最善の」仮想マシン(VM)の選択において使用される論理を示すフローチャートの図である。過去のVMイメージの各々がそれらに関連付けられた1つまたは複数の問題の署名を有するので、メイン・ルーチンが過去のVMイメージを識別することができないとき、図6に示されるルーチンが図4(あらかじめ定義されたプロセス490)から呼び出される。図6に示されるルーチンは、コンピュータ・システムに適用される「最善の」過去のVMイメージを選択する。
ステップ600で処理が始まると、ステップ610で、現在稼働しているVMイメージに関連付けられた問題(問題署名データ)が取り出され、メモリ・エリア620に記憶されて、「最善の」利用可能なVMイメージを現在稼働しているイメージに初期化する。その後の処理は、後述するように、過去のVMイメージ問題データを「最善の」利用可能なVMイメージと比較して、より良いとき、現在の「最善の」利用可能なイメージを置き換える。
ステップ625で、第1の利用可能な過去のVMイメージが選択される。このデータは、データ・ストア560から取り出され、データ・ストア560は、以前実行され、図5に示された処理を使用して、問題データをロードしている。ステップ630で、メモリ・エリア(メモリ・エリア635)は、クリアされる、または初期化される。ステップ640で、選択された過去のVMイメージについて識別された第1の問題(問題署名データ)が選択され、メモリ・エリア635に記憶される。選択された過去のVMイメージについて検出された他の問題(問題署名データ)があるかどうかについての決定が行われる(決定650)。検出された追加の問題がある場合、決定650は、「はい」分岐に分岐し、これはループ・バックして、次の問題(問題署名データ)を選択し、メモリ・エリア635に次の問題データを記憶する。このループは、選択された過去のVMイメージに関連付けられたすべての問題が選択され、メモリ・エリア635に記憶されるまで続けられ、その時点で、決定650は「いいえ」分岐に分岐して、さらなる処理が行われる。
ステップ660で、選択された過去のVMイメージに関連付けられた問題データが、メモリ・エリア620に以前記憶された現在の「最善の」利用可能なVMイメージ問題データと質的に比較される。比較に基づいて、選択された過去のVMイメージが現在の「最善の」利用可能なVMイメージよりも良いかどうかについての決定が行われる(決定670)。選択された過去のVMイメージが、現在の「最善の」利用可能なVMイメージよりも良い場合、決定670は「はい」分岐に分岐し、そこで、ステップ675で、メモリ・エリア620をクリアし、メモリ・エリア635から選択された過去のVMイメージに関連付けられた問題データとともに、選択された過去のVMイメージの識別子をメモリ・エリア620に書き込むことによって、現在の「最善の」利用可能なVMイメージが置き換えられる。一方、選択された過去のVMイメージが現在の「最善の」利用可能なVMイメージよりも良好ではない場合、決定670は「いいえ」分岐に分岐して、ステップ675を迂回する。
まだ処理されていない追加の過去のVMイメージがあるかどうかについての決定が行われる(決定680)。まだ処理されていない追加の過去のVMイメージがある場合、決定680は「はい」分岐に分岐し、これはループ・バックして、次の過去のVMイメージを選択し、イメージの問題データを「最善の」利用可能なイメージと比較する。このように、問題データを有するVMイメージが他の利用可能なVMイメージで検出された問題よりも良く管理され得ることを識別するために、過去のVMイメージの各々に対応する問題データが、現在の「最善の」利用可能なVMイメージと比較される。このループは、利用可能なVMイメージのすべてに関連付けられた問題データが処理されるまで続き、その時点で、決定680は、「いいえ」分岐に分岐する。ステップ690で、メモリ・エリア620に記憶される、「最善の」利用可能なVMイメージは、コンピュータ・システムに適用される。もちろん、現在稼働しているVMイメージが「最善の」利用可能なイメージであるとわかった場合、過去のVMイメージのいずれもシステムに適用されない。次いで、処理は、695で、呼出しルーチン(図4参照)に戻る。
図面の流れ図およびブロック図は、本発明のさまざまな実施形態によるシステム、方法、およびコンピュータ・プログラム製品のあり得る実装のアーキテクチャ、機能、および動作を示す。これに関連して、流れ図またはブロック図の各ブロックは、(1つまたは複数の)規定された論理的な機能を実装するための1つまたは複数の実行可能命令を含むモジュール、セグメント、またはコードの一部を表す可能性がある。一部の代替的な実装においては、ブロックで示された機能が、図面に示された順序とは異なる順序で行われる可能性があることにも留意されたい。例えば、連続で示された2つのブロックが、実際には実質的に同時に実行される可能性があり、またはそれらのブロックが、関連する機能に応じて逆順に実行されることもあり得る。ブロック図または流れ図あるいはその両方の各ブロックと、ブロック図または流れ図あるいはその両方のブロックの組合せとは、規定された機能もしくは動作を実行する専用のハードウェアに基づくシステム、または専用のハードウェアとコンピュータ命令との組合せによって実装され得ることも認められるであろう。
本発明の特定の実施形態が示され、説明されたが、本明細書の教示に基づいて、本発明および本発明のより広い態様から逸脱することなく改変および変更がなされ得ることは、当業者に明らかであろう。したがって、添付の特許請求の範囲は、その範囲内に、本発明の真の精神および範囲内にあるすべてのそのような改変および変更を包含することになる。さらに、本発明は、添付の特許請求の範囲によってのみ定義されることを理解されたい。導入される請求項の要素の具体的な数が意図される場合、そのような意図は請求項において明示的に記載され、そのような記載がない場合、そのような限定は存在しないことが、当業者にさらに理解されるであろう。非限定的な例に関して、理解の助けとして、添付の特許請求の範囲は、請求項の要素を導入するための導入句「少なくとも1つの(at least one)」および「1つまたは複数の(one or more)」の使用を含む。しかし、そのような句の使用は、同一の請求項が、導入句「1つまたは複数の」または「少なくとも1つの」および「a」または「an」などの不定冠詞を含むときでさえも、不定冠詞「a」または「an」による請求項の要素の導入が、そのように導入される請求項の要素を含む任意の特定の請求項を、単に1つのそのような要素を含む発明に限定するということを示唆していると解釈されるべきではなく、同じことが、請求項における定冠詞の使用にも当てはまる。

Claims (20)

  1. 情報処理システムによって実施される、仮想マシン(VM)イメージをコンピュータ・システムに適用する方法であって、
    前記コンピュータ・システム上で実行される現在のVMイメージが問題に遭遇していることを検出するステップと、
    1つまたは複数の過去のVMイメージを分析するステップであって、前記過去のVMイメージの各々が前記コンピュータ・システム上で以前実行された、前記分析するステップと、
    前記分析に基づいて前記過去のVMイメージのうちの1つを選択するステップと、
    前記現在のVMイメージを前記選択された過去のVMイメージに置き換えるステップと
    を含み、前記分析が、
    前記現在のVMイメージにおいて検出された前記問題に関連した現在の問題の署名を作成するステップと、
    前記現在の問題の署名を、各々が前記過去のVMイメージのうちの1つと関連する、複数の履歴の問題の署名と比較するステップと
    をさらに含む、方法。
  2. 前記比較に基づいて、前記現在の問題の署名に一致する履歴の問題の署名を有する前記過去のVMイメージの各々を拒否するステップ
    をさらに含む請求項1に記載の方法。
  3. 前記比較に基づいて、前記現在の問題の署名に一致しない1つまたは複数の履歴の問題の署名の組を識別するステップをさらに含み、前記選択された過去のVMイメージが、前記1つまたは複数の履歴の問題の署名の組に含まれる履歴の問題の署名に対応する、請求項1に記載の方法。
  4. 前記1つまたは複数の履歴の問題の署名の組をイメージとして比較するステップをさらに含み、前記質的な比較によって、選択された履歴の問題の署名が得られ、前記選択された過去のVMイメージが、前記選択された履歴の問題の署名に対応する、請求項3に記載の方法。
  5. 前記履歴の問題の署名のうちの少なくとも1つが、前記対応する過去のVMイメージが問題ないことを示す非問題の署名である、請求項3に記載の方法。
  6. 前記過去のVMイメージのうちの1つを前記選択するステップが、
    非問題の署名を有する過去のVMイメージを識別するステップをさらに含み、前記識別された過去のVMイメージが、前記選択された過去のVMイメージとして選択される、請求項5に記載の方法。
  7. 前記過去のVMイメージの各々に対応する複数のリソース・メトリックスを取り出すステップをさらに含み、前記過去のVMイメージが前記コンピュータ・システム上で実行されていた間に、前記リソース・メトリックスが最初に収集された、請求項3に記載の方法。
  8. 前記過去のVMイメージの各々に対応する前記複数のリソース・メトリックスを分析するステップをさらに含み、前記分析によって、前記過去のVMイメージの各々に対応する前記履歴の問題の署名が得られる、請求項7に記載の方法。
  9. 前記分析するステップおよび前記選択するステップが、第2のコンピュータ・システムを含む複数のコンピュータ・システムのためのVMイメージを管理する前記第2のコンピュータ・システムによって実行される、請求項1に記載の方法。
  10. 情報処理システムであって、
    複数のプロセッサと、
    前記プロセッサのうちの少なくとも1つに結合されたメモリと、
    不揮発性の記憶領域と、
    前記メモリに記憶された、コンピュータ・システムに仮想マシン(VM)イメージを適用するために前記プロセッサのうちの少なくとも1つによって実行される1組の命令とを含み、前記1組の命令が、
    前記コンピュータ・システム上で実行される現在のVMイメージが問題に遭遇していることを検出するアクションと、
    1つまたは複数の過去のVMイメージを分析するアクションであって、前記過去のVMイメージの各々が前記コンピュータ・システム上で以前実行された、前記分析するアクションと、
    前記分析に基づいて前記過去のVMイメージのうちの1つを選択するアクションと、
    前記現在のVMイメージを前記選択された過去のVMイメージに置き換えるアクションと
    を実行し、前記分析を実行する前記1組の命令が追加のアクションを実行し、前記追加のアクションが、
    前記現在のVMイメージにおいて検出された前記問題に関連した現在の問題の署名を作成するアクションと、
    前記現在の問題の署名を、各々が前記過去のVMイメージのうちの1つと関連する、複数の履歴の問題の署名と比較するアクションと
    を含む、情報処理システム。
  11. 前記1組の命令が追加のアクションを実行し、前記追加のアクションが、
    前記比較に基づいて、前記現在の問題の署名に一致する履歴の問題の署名を有する前記過去のVMイメージの各々を拒否するアクション
    を含む、請求項10に記載の情報処理システム。
  12. 前記1組の命令が追加のアクションを実行し、前記追加のアクションが、
    前記比較に基づいて、前記現在の問題の署名に一致しない1つまたは複数の履歴の問題の署名の組を識別するアクションを含み、前記選択された過去のVMイメージが、前記1つまたは複数の履歴の問題の署名の組に含まれる履歴の問題の署名に対応する、請求項11に記載の情報処理システム。
  13. 前記1組の命令が追加のアクションを実行し、前記追加のアクションが、
    前記1つまたは複数の履歴の問題の署名の組をイメージとして比較するアクションを含み、前記質的な比較によって、選択された履歴の問題の署名が得られ、前記選択された過去のVMイメージが、前記選択された履歴の問題の署名に対応する、請求項12に記載の情報処理システム。
  14. 前記履歴の問題の署名のうちの少なくとも1つが、前記対応する過去のVMイメージが
    問題ないことを示す非問題の署名である、請求項12に記載の情報処理システム。
  15. 前記過去のVMイメージのうちの1つを前記選択するアクションが、
    非問題の署名を有する過去のVMイメージを識別するアクションをさらに含み、前記識別された過去のVMイメージが、前記選択された過去のVMイメージとして選択される、請求項14に記載の情報処理システム。
  16. 前記1組の命令が追加のアクションを実行し、前記追加のアクションが、
    前記過去のVMイメージの各々に対応する複数のリソース・メトリックスを取り出すアクションを含み、前記過去のVMイメージが前記コンピュータ・システム上で実行されていた間に、前記リソース・メトリックスが最初に収集された、請求項12に記載の情報処理システム。
  17. 前記過去のVMイメージの各々に対応する前記複数のリソース・メトリックスを分析するアクションをさらに含み、前記分析によって、前記過去のVMイメージの各々に対応する前記履歴の問題の署名が得られる、請求項16に記載の情報処理システム。
  18. 前記分析するアクションおよび前記選択するアクションが、第2のコンピュータ・システムを含む複数のコンピュータ・システムのためのVMイメージを管理する前記第2のコンピュータ・システムによって実行される、請求項10に記載の情報処理システム。
  19. 請求項1〜9の何れか1項に記載の方法の各ステップをコンピュータ・システムに実行させる、コンピュータ・プログラム。
  20. 請求項19に記載の前記コンピュータ・プログラムを、コンピュータ可読媒体に記録した、記録媒体。
JP2015544382A 2012-12-03 2013-08-07 仮想マシン・イメージをコンピュータ・システムに適用する方法、情報処理システム、コンピュータ・プログラム Active JP6266008B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/692,707 2012-12-03
US13/692,707 US9104447B2 (en) 2012-12-03 2012-12-03 Restoring a previous version of a virtual machine image
PCT/EP2013/066583 WO2014086508A1 (en) 2012-12-03 2013-08-07 Restoring a previous version of a virtual machine image

Publications (2)

Publication Number Publication Date
JP2016504672A JP2016504672A (ja) 2016-02-12
JP6266008B2 true JP6266008B2 (ja) 2018-01-24

Family

ID=48985735

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015544382A Active JP6266008B2 (ja) 2012-12-03 2013-08-07 仮想マシン・イメージをコンピュータ・システムに適用する方法、情報処理システム、コンピュータ・プログラム

Country Status (7)

Country Link
US (2) US9104447B2 (ja)
JP (1) JP6266008B2 (ja)
CN (1) CN104903865B (ja)
DE (1) DE112013005768T5 (ja)
GB (1) GB2524196B (ja)
TW (1) TWI537829B (ja)
WO (1) WO2014086508A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10409625B1 (en) * 2013-09-17 2019-09-10 Amazon Technologies, Inc. Version management for hosted computing workspaces
RU2573789C2 (ru) * 2014-04-18 2016-01-27 Закрытое акционерное общество "Лаборатория Касперского" Система и способ запуска виртуальной машины
US20150355927A1 (en) * 2014-06-04 2015-12-10 Yahoo! Inc. Automatic virtual machine resizing to optimize resource availability
EP3481032B1 (en) * 2017-11-06 2022-11-02 Netatmo Regression safe network communication logic for an iot device and method of managing the same
CN111967010A (zh) * 2019-05-20 2020-11-20 阿里巴巴集团控股有限公司 一种可信服务方法、装置、设备及存储介质
EP3929740A1 (de) * 2020-06-26 2021-12-29 Siemens Aktiengesellschaft Verfahren zur orchestrierung einer container-basierten anwendung auf einem endgerät

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0484943A3 (en) 1990-11-09 1995-09-27 Fujitsu Ltd Method for restructuring communications network based on asynchronous transfer mode in case of failure
JP4550215B2 (ja) * 2000-03-29 2010-09-22 株式会社東芝 分析装置
GB0112781D0 (en) 2001-05-25 2001-07-18 Global Continuity Plc Method for rapid recovery from a network file server failure
US7356665B2 (en) 2003-12-17 2008-04-08 International Business Machines Corporation Method and system for machine memory power and availability management in a processing system supporting multiple virtual machines
US7899788B2 (en) 2005-04-01 2011-03-01 Microsoft Corporation Using a data protection server to backup and restore data on virtual servers
JP4542514B2 (ja) 2006-02-13 2010-09-15 株式会社日立製作所 計算機の制御方法、プログラム及び仮想計算機システム
US8011010B2 (en) * 2007-04-17 2011-08-30 Microsoft Corporation Using antimalware technologies to perform offline scanning of virtual machine images
JP4560074B2 (ja) 2007-09-26 2010-10-13 株式会社東芝 仮想計算機システム及び同システムにおける仮想計算機復元方法
JP2009080692A (ja) 2007-09-26 2009-04-16 Toshiba Corp 仮想計算機システム及び同システムにおけるサービス引き継ぎ制御方法
JP5075736B2 (ja) * 2008-05-27 2012-11-21 株式会社日立製作所 仮想サーバのシステム障害回復方法及びそのシステム
JP5446167B2 (ja) * 2008-08-13 2014-03-19 富士通株式会社 ウイルス対策方法、コンピュータ、及びプログラム
US8055937B2 (en) 2008-12-22 2011-11-08 QuorumLabs, Inc. High availability and disaster recovery using virtualization
US8438349B2 (en) * 2009-08-21 2013-05-07 Symantec Corporation Proxy backup of virtual disk image files on NAS devices
JP2011060055A (ja) * 2009-09-11 2011-03-24 Fujitsu Ltd 仮想計算機システム、仮想マシンの復旧処理方法及びそのプログラム
US8930652B2 (en) 2009-11-11 2015-01-06 Red Hat Israel, Ltd. Method for obtaining a snapshot image of a disk shared by multiple virtual machines

Also Published As

Publication number Publication date
TW201435744A (zh) 2014-09-16
CN104903865A (zh) 2015-09-09
JP2016504672A (ja) 2016-02-12
WO2014086508A1 (en) 2014-06-12
US20140157266A1 (en) 2014-06-05
US9104447B2 (en) 2015-08-11
US20140157263A1 (en) 2014-06-05
TWI537829B (zh) 2016-06-11
GB2524196B (en) 2017-10-04
CN104903865B (zh) 2017-07-21
DE112013005768T5 (de) 2015-10-15
US9104448B2 (en) 2015-08-11
GB201511572D0 (en) 2015-08-12
GB2524196A (en) 2015-09-16

Similar Documents

Publication Publication Date Title
US9135032B2 (en) System, method and computer program product for data processing and system deployment in a virtual environment
US10824646B2 (en) Linking single system synchronous inter-domain transaction activity
JP6129897B2 (ja) マルウェアを示すヘッダフィールド属性の識別をコンピュータで実現する方法およびシステム
JP6266008B2 (ja) 仮想マシン・イメージをコンピュータ・システムに適用する方法、情報処理システム、コンピュータ・プログラム
US20180095730A1 (en) Optimizing Performance of Applications Driven by Microservices Architecture
JP5758995B2 (ja) 仮想マシン間で分析の結果を共有するためのシステム、方法及びコンピュータ可読記憶媒体
US10540498B2 (en) Technologies for hardware assisted native malware detection
US20130219338A1 (en) Automatic Magnification and Selection Confirmation
US20150163285A1 (en) Identifying The Workload Of A Hybrid Cloud Based On Workload Provisioning Delay
US20120246598A1 (en) Systems and methods for displaying trustworthiness classifications for files as visually overlaid icons
US11295006B2 (en) Programming code execution management
US20210294896A1 (en) Endpoint detection and response attack process tree auto-play
US8918776B2 (en) Self-adapting software system
US20120262489A1 (en) Relative and Absolute Screen Rotation Draft Agent
US8626959B2 (en) Discovery and configuration of new devices added via dynamic reconfiguration
US20150156132A1 (en) Determining Available User Interface Functionality Based on Backend Server Load
US9021321B2 (en) Testing disk drives shared by multiple processors in a supercomputer complex
US10255435B1 (en) Systems and methods for establishing a reputation for related program files
US10810105B2 (en) Logging stored information for identifying a fix for and/or a cause of an error condition
US8984336B1 (en) Systems and methods for performing first failure data captures
US8255604B2 (en) Interrupt vector piggybacking

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160726

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170421

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170509

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170726

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

R150 Certificate of patent or registration of utility model

Ref document number: 6266008

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150