恢复虚拟机映像的在前版本的制作方法
【技术领域】
[0001]本公开涉及根据以前收集的资源指标恢复虚拟机映像的方法。
【背景技术】
[0002]人们一度认为虚拟映像(VM)表现不佳,通过运用一系列的当代技术手法,确定有必要回退到前一个版本(vers1n),没有明确的方法来确定应使用哪个之前的映像。简单地回滚到最近的以前版本也许并不能解决这个问题,因此客户可能需要迭代地恢复到其它的以前版本,直至找到好的、稳定的映像。目前还没有用来确定应恢复到哪个以前版本(release)的、超越“随机选择”的明确方法。目前的系统通常恢复到VM的紧前面的版本,而对导致当前版本的不良行为的因素不做任何程度的评估。目前存在各种变更管理系统,用于指出何时以及为什么作出变更,但是,这些系统被人查阅,却不提供确定回滚版本的自动化的理由(automated rat1nale) ο因此,这些现有技术方法容易出现人为错误,并需要人力驱动的分析的时间来确定合适的图像。
[0003]美国专利申请US20100162039公开了一种针对为计算系统以及其中的数据提供高可用性和灾难恢复的领域中的问题的装置和方法。这些设备和方法可用于为受保护的计算系统提供高可用性和灾难恢复。受保护的计算机系统可以是虚拟计算系统。
【发明内容】
[0004]提供一种将虚拟机(VM)映像应用于计算机系统的方法。在由信息处理系统执行的该方法中,检测到计算机系统上执行的当前VM映像有问题。作为响应,分析在前VM映像,其中,每个在前VM映像以前都在该计算机系统上执行。根据分析,选择在前VM映像之一,并用所选择的在前VM映像替换计算机系统上执行的当前VM映像。在一个实施例中,创建与在当前VM映像中检测到的问题相关的当前问题签名,并比较该当前问题签名与对应于在前VM映像的历史问题签名。在另一个实施例中,拒绝表现出在当前的VM映像检测到的同样的问题签名的任何在前VM映像签名。对那些与当前问题签名不匹配的签名进行定性分析,以确定可在计算机系统上使用的“最佳”在前VM映像。在某些情况下,某历史问题签名可能表明对应的在前VM映像没有问题。可以通过分析在在前VM映像在计算机系统上运行期间收集的资源指标,生成在前VM映像对应的问题签名。在一个环境中,用一个计算机系统来管理在大量的计算机系统上运行的虚拟机,该管理计算机系统执行对问题数据的分析和对应该应用于各种计算机系统的在前VM映像的选择。
[0005]以上内容只是发明的提要,因此对细节作了必要的简化、概括和省略;因此,本领域技术人员明白,
【发明内容】
部分只具示例性,而无任何方式的限制性。如权利要求书所单独界定的本发明的创造性特点、优点和其它方面,将显见于以下非限制性的详细说明中。
[0006]从第一方面来看,本发明提供一种将虚拟机(VM)映像应用于计算机系统的方法,该方法由信息处理系统执行,包含:检测到在该计算机系统执行的当前VM映像有问题;分析一个或多个在前VM映像,其中,每个在前VM映像以前都在该计算机系统上执行;根据分析,选择在前VM映像之一;和用所选择的在前VM映像替换当前VM映像;其中,所述分析包含:创建与在当前VM映像中检测到的问题相关的当前问题签名;和比较该当前问题签名与每个都对应于在前VM映像之一的历史问题签名。
[0007]优选地,本发明提供的方法进一步包含:根据比较,拒绝每个具有与当前问题签名匹配的历史问题签名的在前VM映像。
[0008]优选地,本发明提供的方法进一步包含:根据比较,识别不与当前问题签名匹配的一个或多个历史问题签名的集合,其中,被选择的在前VM映像对应于该一个或多个历史问题签名的集合中包括的一个历史问题签名。
[0009]优选地,本发明提供的方法进一步包含:定性比较该一个或多个历史问题签名的集合,其中,定性比较产生一个被选择的历史问题签名并且其中被选择的在前VM映像对应于该被选择的历史问题签名。
[0010]优选地,本发明提供的方法,其中至少一个历史问题签名是非问题签名,表示对应的在前VM映像是没有问题的。
[0011]优选地,本发明提供的方法,其中所述选择在前VM映像之一进一步包含:识别具有非问题签名的在前VM映像,其中,所识别的在前VM映像被选择为该被选择的在前VM映像。
[0012]优选地,本发明提供的方法进一步包含:检索对应于在前VM映像的每一个的多个资源指标,其中,这些资源指标起初是在在前VM映像在计算机系统上执行期间被收集的。
[0013]优选地,本发明提供的方法进一步包含:分析对应于在前VM映像的每一个的该多个资源指标,该分析产生对应于在前VM映像的每一个的历史问题签名。
[0014]优选地,本发明提供的方法,其中该分析和选择是由管理包括该计算机系统的多个计算机系统的VM映像的第二计算机系统执行的。
[0015]从另一方面来看,本发明提供一种信息处理系统,包含:多个处理器;与至少一个处理器耦合的存储器;非易失性存储区;和存储器中存储的、并由至少一个处理器执行以应用一个虚拟机(VM)映像于一个计算机系统的指令集合,其中该指令集合执行以下操作:检测到在该计算机系统执行的当前VM映像有问题;分析一个或多个在前VM映像,其中,每个在前VM映像以前都在该计算机系统上执行;根据分析,选择在前VM映像之一;和用所选择的在前VM映像替换当前VM映像,其中,所述分析包含:创建与在当前VM映像中检测到的问题相关的当前问题签名;和比较该当前问题签名与每个都对应于在前VM映像之一的历史问题签名。
[0016]优选地,本发明提供的信息处理系统,其中该指令集合执行包含以下的额外操作:根据比较,拒绝每个具有与当前问题签名匹配的历史问题签名的在前VM映像。
[0017]优选地,本发明提供的信息处理系统,其中该指令集合执行包含以下的额外操作:根据比较,识别不与当前问题签名匹配的一个或多个历史问题签名的集合,其中,被选择的在前VM映像对应于该一个或多个历史问题签名的集合中包括的一个历史问题签名。
[0018]优选地,本发明提供的信息处理系统,其中该指令集合执行包含以下的额外操作:定性比较该一个或多个历史问题签名的集合,其中,定性比较产生一个被选择的历史问题签名并且其中被选择的在前VM映像对应于该被选择的历史问题签名。
[0019]优选地,本发明提供的信息处理系统,其中至少一个历史问题签名是非问题签名,表示对应的在前VM映像是没有问题的。
[0020]优选地,本发明提供的信息处理系统,其中所述选择在前VM映像之一进一步包含:识别具有非问题签名的在前VM映像,其中,所识别的在前VM映像被选择为该被选择的在前VM映像。
[0021]优选地,本发明提供的信息处理系统,其中该指令集合执行包含以下的额外操作:检索对应于在前VM映像的每一个的多个资源指标,其中,这些资源指标起初是在在前VM映像在计算机系统上执行期间被收集的。
[0022]优选地,本发明提供的信息处理系统进一步包含:分析对应于在前VM映像的每一个的该多个资源指标,该分析产生对应于在前VM映像的每一个的历史问题签名。
[0023]优选地,本发明提供的信息处理系统,其中该分析和选择是由管理包括该计算机系统的多个计算机系统的VM映像的第二计算机系统执行的。
[0024]从另一方面来看,本发明提供一种在计算机可读介质中存储的计算机程序产品,包含计算机指令,当被信息处理系统执行时,计算机指令通过使信息处理系统执行包含以下的操作而应用一个虚拟机(VM)映像于一个计算机系统:检测到在该计算机系统执行的当前VM映像有问题;分析一个或多个在前VM映像,其中,每个在前VM映像以前都在该计算机系统上执行;根据分析,选择在前VM映像之一;用所选择的在前VM映像替换当前VM映像;其中,所述分析包含:创建与在当前VM映像中检测到的问题相关的当前问题签名;和比较该当前问题签名与每个都对应于在前VM映像之一的历史问题签名。
[0025]从另一方面来看,本发明提供一种计算机程序产品,其中的操作进一步包含:根据比较,拒绝每个具有与当前问题签名匹配的历史问题签名的在前VM映像。
[0026]从另一方面来看,本发明提供一种计算机程序产品,其中的操作进一步包含:根据比较,识别不与当前问题签名匹配的一个或多个历史问题签名的集合,其中,被选择的在前VM映像对应于该一个或多个历史问题签名的集合中包括的一个历史问题签名。
[0027]从另一方面来看,本发明提供一种计
算机程序产品,其中的操作进一步包含:定性比较该一个或多个历史问题签名的集合,其中,定性比较产生一个被选择的历史问题签名并且其中被选择的在前VM映像对应于该被选择的历史问题签名。
[0028]从另一方面来看,本发明提供一种计算机程序产品,其中,至少一个历史问题签名是非问题签名,表示对应的在前VM映像是没有问题的。
[0029]从另一方面来看,本发明提供一种计算机程序产品,其中所述选择在前VM映像之一进一步包含:识别具有非问题签名的在前VM映像,其中,所识别的在前VM映像被选择为该被选择的在前VM映像。
[0030]从另一方面来看,本发明提供一种计算机程序产品,其中的操作进一步包含:检索对应于在前VM映像的每一个的多个资源指标,其中,这些资源指标起初是在在前VM映像在计算机系统上执行期间被收集的。
[0031]从另一方面来看,本发明提供一种计算机程序产品,其中的操作进一步包含:分析对应于在前VM映像的每一个的该多个资源指标,该分析产生对应于在前VM映像的每一个的历史问题签名。
[0032]从另一方面来看,本发明提供一种计算机程序产品,其中该分析和选择是由管理包括该计算机系统的多个计算机系统的VM映像的第二计算机系统执行的。
【附图说明】
[0033]现在将参照附图,仅通过举例,说明本发明的优选实施例。
[0034]参照附图,可以更好地理解本发明,并向所属技术领域的技术人员揭示本发明的各种目的、特点和优点,附图中:
[0035]图1是在其中可以实现说明书中所述方法的数据处理系统的框图;
[0036]图2提供对图1所示的信息处理系统环境的扩展,用来例示说明书中所述方法可以在网络环境中运行的各种信息处理系统上执行;
[0037]图3是表示一个虚拟机(VM)版管理系统的部件图;
[0038]图4是表示该VM版管理系统的所采取的步骤地流程图;
[0039]图5是表示在分析用于选择VM映像的历史指标(metrics)时所用的逻辑的流程图的不意图;和
[0040]图6表示在为特定计算环境选择“最佳”虚拟机时所用的逻辑的流程图的示意图。
【具体实施方式】
[0041]所属技术领域的技术人员知道,本发明的各个方面可以实现为系统、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明的各个方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
[0042]可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是一一但不限于一一电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPR0M或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0043]计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括一一但不限于一一电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0044]计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括一一但不限于一一无线、有线、光缆、RF等等,或者上述的任意合适的组合。
[0045]可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言一诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言一诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机、服务器或服务器集群上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络一一包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0046]下面将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
[0047]也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其他设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article of manufacture)。
[0048]也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其他设备上,使得在计算机、其它可编程数据处理装置、或其他设备上执行一系列操作步骤,以产生计算机实现的过程,使得在计算机或其它可编程数据处理装置上执行的指令提供实现流程图和/或框图中的一个或多个方框中规定的功能/动作的过程。
[0049]图1例示的信息处理系统100,是能够执行说明书中所描述的计算操作的计算机系统的简化的例子。信息处理系统100包括一个或多个处理器110,它们与处理器接口总线112耦合。处理器接口总线112把处理器110连接到北桥(Northbridge) 115——亦称存储器控制器中心(MCH)。北桥115连接到系统存储器120,并为处理器110提供访问也连接到北桥115的系统存储器图形控制器125的手段。在一个实施例中,PCI Express总线118连接北桥115至图形控制器125。图形控制器125连接到显示器130,诸如计算机监视器。
[0050]北桥115和南桥135采用总线119互相连接。在一个实施例中,总线是直接媒体接口(DMI)总线,其在北桥115和南桥135之间的每个方向高速传输数据。在另一个实施例中,一个外围组件互连(PCI)总线连接北桥和南桥。南桥135也被称为I/O控制器集线器(ICH),是一种芯片,一般执行比北桥提供的功能速度慢的功能。南桥135通常提供用于连接各种部件的各种总线。这些总线例如包括PCI和PCI Express总线、ISA总线、系统管理总线(SMBus或SMB)、和/或低引脚数(LPC)总线。LPC总线通常连接低带宽的设备,诸如启动ROM 196和(使用“超级I/O”芯片的)“传统”(legacy) I/O设备。“传统” I/O设备(198)例如可包括串行和并行端口、键盘、鼠标、和/或软盘控制器。LPC总线也连接南桥135至可信平台模块(TPM) 195。南桥135中通常包括的其他组件,包括直接存储器存取(DMA)控制器、可编程中断控制器(PIC)、和存储设备控制器,后者使用总线184连接南桥135至非易失性存储设备185,诸如硬盘驱动器。
[0051]ExpressCard 155连接热插拔设备至信息处理系统的插槽。ExpressCard 155支持PCI Express连接和USB连接,因为它使用通用串行总线(USB)和PCI Express总线连接到南桥135。南桥135包括USB控制器140,其提供至连接到USB的设备的USB连接。这些设备包括网络相机(摄像头)150、红外(IR)接收机148、键盘和触控板144和提供无线个人区域网(PAN)的蓝牙设备116。USB控制器140还
提供USB连接至其它USB连接的USB设备142,诸如鼠标、可移动的非易失性存储设备145、调制解调器、网卡、ISDN连接器、传真机、打印机、USB集线器、以及许多其他类型的USB连接的设备。尽管可移动的非易失性存储设备145被表示为为一个USB连接的设备,可移动的非易失性存储装置145可以使用不同的接口连接,诸如FireWire接口,等等。
[0052]无线局域网(LAN)设备175通过PCI或PCI Express总线172连接到南桥135。LAN设备175通常执行空气中(over-the-air)调制技术的IEEE 802.11标准之一,这些技术采用相同的协议用于信息处理系统100与另一个计算机系统或设备之间的无线通信。光学存储装置190使用串行ATA(SATA)总线188连接到南桥135。串行ATA适配器和设备通过高速串行链路通信。串行ATA总线也将南桥135连接到其他形式的存储设备,诸如硬盘驱动器。音频电路160,诸如声卡,通过总线158连接到南桥135。音频电路160还提供诸如音频线输入(line-1n)和光学数字音频输入端口 162、光学数字输出和耳机插口 164、内置扬声器166和内置麦克风168等功能。以太网控制器170使用诸如PCI总线或PCI Express总线的总线,连接到南桥135。以太网控制器170将信息处理系统100连接到计算机网络,诸如局域网(LAN)、因特网、和其他公共和私人网络。
[0053]尽管图1表示了一种信息处理系统,信息处理系统可以采取多种形式。例如,信息处理系统可以采用台式机、服务器、便携式电脑、笔记本电脑等形式,或其他规格的计算机或数据处理系统。此外,信息处理系统可以采用其它规格,诸如个人数字助理(PDA)、游戏设备、ATM机、便携式电话设备、通信设备、或包括有处理器和存储器的其它设备。
[0054]图1所示的、且在说明书中描述的用于提供安全功能的受信任平台模块(TPM195),只是硬件安全模块(HSM)的一个例子。因此,这里描述的并请求保护的TPM包括任何类型的TPM,包括但不限于符合受信任计算组(TCG)标准、名称为“受信任平台模块(TMP)规范1.2版”的硬件安全设备。TPM是一种硬件安全子系统,可以被纳入任何数量的信息处理系统,诸如图2中所示的信息处理系统。
[0055]图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)。非易失性数据存储器可以是各种信息处理系统的外部组件,也可能是信息处理系统的其中之一的内部组件。此外,可以使用各种技术,在两个或两个以上的信息处理系统之间共享可卸式非易失性存储装置145,例如把可卸式非易失性存储装置145连接到信息处理系统的USB端口或其它连接器。
[0056]图3-6表示一种可以在如图1至2所示的信息处理系统和计算机网络上执行的方法。尽管变更管理系统有关于何时发生变更以及为什么发生变更的信息,当前的系统并不识别合适的在前虚拟机,因此,恢复到先前版本(pr1r release)的过程,充其量只是一个最佳猜测、人力驱动的过程。本文提供的方法将变更管理系统与用于计算机系统上的虚拟机的已知在前性能的自动化的历史模式匹配系统接合。以这种方式,将一个不展现失败模式的应用/虚拟映像的在前版本识别出来,应用到计算机系统。本文所述的方法检测失败模式,利用关于虚拟机性能的变更历史数据来确定最减少失败模式的虚拟机的在前版本。该系统将性能和事件数据归档,并将性能和事件数据与指定的虚拟图像关联,以识别要应用到计算机系统的“最佳”虚拟机映像。此外,在该模式以前没有发生、但却在回归到在前VM映像时发生的情况下,这个过程可以重复。
[0057]图3是一个表示虚拟机(VM)版本管理系统的部件图。虚拟机版本管理计算机系统300,是为管理当前在各种被管理计算机系统上运行的VM映像而维护变更管理数据和资源指标数据的计算机系统。在所示的例子中,VM版本管理计算机系统300管理当前被应用于多个计算机系统(VM A(310), VM B(320), VM C330…,VM η(340))的虚拟机。
[0058]VM版本管理系统300使用的部件包括:变更管理系统350,VM资源指标收集系统370,和历史模式匹配系统390。变更管理系统350被用来跟踪当前被各种计算机系统应用的虚拟机,以及关于安装(例如,当前VM被应用的日期,以前在计算机系统上应用的以前虚拟机映像和相应的日期,等等)的元数据。VM资源指标收集系统370用于定期收集资源指标(例如,可用性,响应时间,信道容量,等待时间,完成时间,服务时间,带宽,吞吐量,相对效率,可扩展性,每瓦性能,压缩比,指令路径长度和速度,等)ο资源指标被存储在资源指标数据存储库380中。历史模式匹配过程390为在数据存储库360中存储的可用VM映像分析数据存储库380中的资源指标。以这种方式,该过程可以根据在前VM映像的资源指标是否匹配、或者类似于当前安装的VM映像当前展现的资源指标,确定当前阻碍计算机系统的问题是否也是在前VM映像的问题。此外,历史模式匹配过程390可以通过分析在在前VM映像在计算机系统上运行期间所收集的历史资源指标,确定数据存储库360中的在前VM映像是否展现不同的问题。以这种方式,历史模式匹配系统可以确定,没有表现出问题的VM映像,或者,如果展现了问题,优于目前当前安装的VM映像所展现的问题。在识别出适当的(“最好的”)在前VM映像时,历史模式匹配过程通知负责应用被选择的在前VM映像到计算机系统和相应地更新关于VM映像的元数据的变更管理流程350。
[0059]图4是表示虚拟机版本管理系统所采取的步骤的流程图。在步骤400,计算机系统在执行当前的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映像-η (407)以及涉及VM映像-η的资源指标数据存储库408所示,可以使用任何数量的在前虚拟机映像。
[0060]用监视器,诸如虚拟机版本管理计算机系统300,来检测计算机系统当前执行的VM是否出现问题。(例如,由监视器)对当前VM映像(415)是否出现了问题进行判定(决定425)。该决定可以基于一个或多个资源指标高于或低于特定的阈值达到给定的时间,等等。如果问题没有出现(或尚未被发现),则决定425转移到“否”分支,返回继续执行VM映像和继续收集资源指标。系统
继续收集和记录当前运行的VM映像的对应的资源指标。当检测到当前运行的VM映像出现问题时,决定425转移“是”分支作进一步处理,即分析在前VM映像并确定哪个VM映像应该被应用到计算机系统。
[0061]在步骤430,选择最近的在前VM映像及其历史上保存的资源指标(例如,映像_1(403)和资源指标(404))。在所不实施例中,在前VM映像是从最近使用的到最老的中选择的,然而也可以使用其他的方法,根据另一个标准来选择在前VM映像。在步骤,当前安装的VM映像的问题签名被创建(如果尚未创建的话),并与选定图像的历史问题签名进行比较。再次,如果资源指标数据不包括在前VM映像的问题签名,就根据选定的资源指标生成问题签名。确定是否相同的问题签名存在于当前VM映像以及所选择的VM映像中(决定440) ο该过程试图不展现与当前安装的VM映像出现的问题相同的问题的在前VM映像。所以,如果所选择的在前VM映像中不存在同样的问题签名,决定440转移到“否”分支作进一步处理,以确定是否应该将所选择的在前VM映像应用到计算机系统。
[0062]判断该过程是否被配置为在所选择的VM映像的历史资源指标数据中检查所选择的VM映像被安装(应用)到计算机系统时可能出现过的其它问题签名(决定445)。如果该进程被配置为识别没有出现当前安装的VM映像当前出现的问题的第一个在前VM映像,则决定445转移到“否”分支,在步骤460,将所选择的在前VM映像应用于计算机系统(取代当前安装的VM映像)。另一方面,如果该过程被配置为检查其它的问题签名,则决定445转移到“是”分支作进一步分析。
[0063]在预定义的过程450,分析关于所选择的在前VM映像的历史指标(例如,资源指标数据存储库404),以确定在选定的VM映像的资源指标数据中明显的任何其他问题签名(参见图5和相应的文本,了解有关历史资源指标的分析的进一步处理)。确定是否通过对所选择的在前VM映像的历史资源指标的分析,发现了其他问题签名(决定455)。如果在对所选择的在前VM映像的历史资源指标中发现了其他问题签名,则决定455转移到“是”分支,确定是否有额外的在前VM映像可以被选择和分析(决定480)。另一方面,如果分析显示,所选择的在前VM映像的历史资源指标中没有问题,则决定455转移到“否”分支,在步骤460,所选择的在前VM映像应用于计算机系统(取代当前安装的VM映像)。
[0064]返回决定480,如果有额外的在前VM映像要处理,则决定480转移到“是”分支,循环返回去选择和处理下一个在前VM映像,以确定是否有不出现问题的在前VM图。这个循环一直持续,直到不再有要处理的VM映像,此时,决定480转移到“否”分支,在预定的处理490,根据对各个历史资源指标数据的分析,选择“最佳”在前VM映像(参看图6和相应的文本,以了解进一步的处理细节)。
[0065]图5是表示用于分析被用来选择VM映像的历史指标的逻辑的流程图。处理始于500,此时该例程被图4所示的主处理调用(参见图4中的预定义流程450)。在步骤510,该过程选择对应于当前选定的在前VM映像的第一组资源指标(如图5中的数据存储库520所示以及图4中的数据存储库404、406和408所示)。在步骤520,分析所选择的资源指标组,以确定资源指标可能显示的任何问题签名。例如,资源指标的可用性,响应时间,信道容量,等待时间,完成时间,服务时间,带宽,吞吐量,相对效率,可扩展性,每瓦性能,压缩比,指令路径长度和加速,等等,模式可能包括这些指标的一个或多个何时超过一定的阈值。
[0066]根据所选择的资源指标组,判断是否该分析揭示所选择的映像有另一个问题(决定540)。如果该分析揭示所选择的在前VM映像有另一个问题,则决定540转移到“是”分支,在步骤550,将所选择的在前VM映像标识符连同所确定的、被该分析揭示的问题签名一起存储起来。VM映像标识符和问题签名数据被保留在数据存储库560中用于将来的分析(如果需要的话)。另一方面,如果对所选择的一组资源指标的分析没有揭示问题(问题签名),则决定540转移至“否”分支,而绕过步骤550。
[0067]判断是否有更多组的资源指标可用于分析所选择的在前VM映像分析(决定570)。如果有额外的资源指标组用于分析,则决定570转移到“是”分支,回返去如上所述地选择和处理下一组资源指标。这个循环一直持续,直到与所选择的在前VM映像相关的所有资源指标组都被选取并分析,此时,决定570转移到“否”分支作进一步处理。
[0068]判断对资源指标的分析是否检测到与所选择的VM映像相关联的任何其他问题(问题签名)(决定580)。如果对资源指标的分析揭示所选择的在前VM映像有一个或多个其他问题,则决定580转移到“是”分支,由此,在590,处理与一个返回代码返回到调用例程(见图4),该返回代码指示确定了所选择的在前VM映像的问题(在这种情况下,调用例程将一直分析在前VM映像的问题签名,直到确定一个合适的映像)。另一方面,如果对资源指标的分析没有发现所选择的在前VM映像有任何其他问题,则决定580转移到“是”分支,由此,在595,处理与一个返回代码返回到调用例程(见图4),该返回代码指示没有确定所选择的在前VM映像有问题(所选择的在前VM映像于是将被应用到计算机系统)。
[0069]图6是表示用于为一个特定计算环境选择“最佳”虚拟机的的逻辑的流程图。图6所示的例程,在图4(预定义过程490)中当主程序因为每个在前VM映像都具有一个或多个与他们相关的问题问题而无法识别在前VM映像时被调用。图6所示的例程选择将被应用到计算机系统的“最佳”在前VM映像。
[0070]处理始于600,随之,在步骤610,检索出与当前运行的VM映像相关联的问题(问题签名数据),并将其存储在存储区620,以把“最佳”可用VM映像初始化为当前运行的映像。如下文所述,后续的处理将比较在前VM映像的问题数据与“最佳”可用VM映像,如果更好,将取代当前的“最佳”可用VM映像。
[0071]在步骤625,选择第一个可用的VM映像。这个数据是从数据存储库560中检索的,而数据存储库560已经用以前执行的、如图5中所示的处理装载有问题数据。在步骤630,清除或以其它方式初始化一个存储区(存储区635)。在步骤640,选择为所选择的在前VM映像确定的第一个问题(问题签名数据),并将其存储在存储区635。判断是否检测到所选择的在前VM映像有其他问题(问题签名数据)(决定650)。如果检测到有额外的问题,则决定650转移到“是”,回返以选择下一个问题(问题签名数据)和存储下一个问题数据到存储区635。这个循环一直持续到所有与所选择的在前VM映像相关的问题都已被选择并存储在存储区635,此时,决定650转移至“否”分支作进一步处理
[0072]在步骤660,将与所选择的在前VM映像相关联的问题数据与以前存储在存储区620的当前“最佳”可用VM映像的问题数据进行定性比较。根据比较,判断所选择的在前VM映像好于当前“最佳”可用VM映像(决定670)。如果所选择的在前VM映像好于当前“最佳”可用VM映像,则决定670转移到“是”,然后,在步骤675,通过清除内存区620并把所选择的在前VM映像的标识符连同存储区620中的与所选择的在前VM映像相关联的问题数据写到存储区620,替换当前“最佳”可用VM映像。另一方面,如果所选择的在前VM映像并不好于当前“最佳”可用VM映像,则决定670转移到“否”分支而绕过步骤675。
[0073]确定是否有额外的在前VM映像还没有被处理(决定680)。如果额外的在前VM映像还没有被处理,则决定680转移到“是”分支,回返去选择下一个在前VM映像并比较该图像的问题数据与“最佳”可用图像。以这种方式,将对应与在前VM映像的每个的问题数据都与当前“最佳”可用VM映像比较,以确定具有能比在其它可用VM映像中检测到的问题更好管理的VM映像。这种循环一直持续到与所有可用的VM映像相关的问题都已经被处理,此时,决定680转移到“否”分支。在步骤690,将存储在存储区620中的“最佳”可用VM映像应用于计算机系统。当然,如果发现当前运行的VM映像是“最佳”可用VM映像,则不把任何在前VM映像应用于系统。在695,处理然后返回到调用例程(参看图4)。
[0074]附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或
代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0075]尽管已经表示并描述了本发明的特定实施例,对于所属技术领域的技术人员来说,显然,根据本文的教导,可以在不偏离本发明和更广泛的方面的情况下,作出各种变更和修改。因此,附后的权利要求的范围要包含所有这些变更和修改,它们都落在本发明的范围内。此外要理解的是,本发明完全由附后的权利要求限定。作为非限制性的例子,为了帮助理解,附后的权利要求中用引导短语“至少一个”和“一个或多个”来引入权利要求元素。然而,这些短语的使用不应被解释为意味着用不定冠词“一个”或“一”引入的权利要求元素把含有这种被引入的权利要求元素的任何权利要求限定为仅仅含有一个这样的元素,即使在相同的权利要求包括引导短语“至少一个”和“一个或多个”和不定冠词“一个”或“一”;这同样适用于权利要求使用的定冠词。
【主权项】
1.一种将虚拟机(VM)映像应用于计算机系统的方法,该方法由信息处理系统执行,包含:检测到在该计算机系统执行的当前VM映像有问题; 分析一个或多个在前VM映像,其中,每个在前VM映像以前都在该计算机系统上执行; 根据分析,选择在前VM映像之一; 用所选择的在前VM映像替换当前VM映像;和 其中,所述分析包含: 创建与在当前VM映像中检测到的问题相关的当前问题签名;和 比较该当前问题签名与每个都对应于在前VM映像之一的历史问题签名。2.权利要求1的方法,进一步包含:根据比较,拒绝每个具有与当前问题签名匹配的历史问题签名的在前VM映像。3.权利要求1的方法,进一步包含:根据比较,识别不与当前问题签名匹配的一个或多个历史问题签名的集合,其中,被选择的在前VM映像对应于该一个或多个历史问题签名的集合中包括的一个历史问题签名。4.权利要求3的方法,进一步包含: 定性比较该一个或多个历史问题签名的集合,其中,定性比较产生被选择的历史问题签名并且其中被选择的在前VM映像对应于该被选择的历史问题签名。5.权利要求3的方法,其中,至少一个历史问题签名是非问题签名,表示对应的在前VM映像是没有问题的。6.权利要求5的方法,其中,所述选择在前VM映像之一进一步包含: 识别具有非问题签名的在前VM映像,其中,所识别的在前VM映像被选择为该被选择的在前VM映像。7.权利要求3的方法,进一步包含: 检索对应于在前VM映像的每一个的多个资源指标,其中,这些资源指标起初是在在前VM映像在计算机系统上执行期间被收集的。8.权利要求7的方法,进一步包含: 分析对应于在前VM映像的每一个的该多个资源指标,该分析产生对应于在前VM映像的每一个的历史问题签名。9.权利要求1的方法,其中,该分析和选择是由管理包括该计算机系统的多个计算机系统的VM映像的第二计算机系统执行的。10.一种信息处理系统,包含: 多个处理器; 与至少一个处理器耦合的存储器; 非易失性存储区;和 存储器中存储的、并由至少一个处理器执行以应用一个虚拟机(VM)映像于一个计算机系统的指令集合,其中该指令集合执行以下操作: 检测到在该计算机系统执行的当前VM映像有问题; 分析一个或多个在前VM映像,其中,每个在前VM映像以前都在该计算机系统上执行; 根据分析,选择在前VM映像之一; 用所选择的在前VM映像替换当前VM映像;和 其中,所述分析包含: 创建与在当前VM映像中检测到的问题相关的当前问题签名;和 比较该当前问题签名与每个都对应于在前VM映像之一的历史问题签名。11.权利要求10的信息处理系统,其中该指令集合执行包含以下的额外操作: 根据比较,拒绝每个具有与当前问题签名匹配的历史问题签名的在前VM映像。12.权利要求11的信息处理系统,其中该指令集合执行包含以下的额外操作: 根据比较,识别不与当前问题签名匹配的一个或多个历史问题签名的集合,其中,被选择的在前VM映像对应于该一个或多个历史问题签名的集合中包括的一个历史问题签名。13.权利要求12的信息处理系统,其中该指令集合执行包含以下的额外操作: 定性比较该一个或多个历史问题签名的集合,其中,定性比较产生一个被选择的历史问题签名并且其中被选择的在前VM映像对应于该被选择的历史问题签名。14.权利要求12的信息处理系统,其中,至少一个历史问题签名是非问题签名,表示对应的在前VM映像是没有问题的。15.权利要求14的信息处理系统,其中所述选择在前VM映像之一进一步包含: 识别具有非问题签名的在前VM映像,其中,所识别的在前VM映像被选择为该被选择的在前VM映像。16.权利要求12的信息处理系统,其中该指令集合执行包含以下的额外操作: 检索对应于在前VM映像的每一个的多个资源指标,其中,这些资源指标起初是在在前VM映像在计算机系统上执行期间被收集的。17.权利要求16的信息处理系统,进一步包含: 分析对应于在前VM映像的每一个的该多个资源指标,该分析产生对应于在前VM映像的每一个的历史问题签名。18.权利要求9的信息处理系统,其中该分析和选择是由管理包括该计算机系统的多个计算机系统的VM映像的第二计算机系统执行的。19.一种在计算机可读介质中存储的计算机程序产品,包含计算机指令,当被信息处理系统执行时,计算机指令通过使信息处理系统执行包含以下的操作而应用一个虚拟机(VM)映像于一个计算机系统: 检测到在该计算机系统执行的当前VM映像有问题; 分析一个或多个在前VM映像,其中,每个在前VM映像以前都在该计算机系统上执行; 根据分析,选择在前VM映像之一; 用所选择的在前VM映像替换当前VM映像;和 其中,所述分析包含: 创建与在当前VM映像中检测到的问题相关的当前问题签名;和 比较该当前问题签名与每个都对应于在前VM映像之一的历史问题签名。20.权利要求19的计算机程序产品,其中的操作进一步包含: 根据比较,拒绝每个具有与当前问题签名匹配的历史问题签名的在前VM映像。21.权利要求19的计算机程序产品,其中的操作进一步包含: 根据比较,拒绝每个具有与当前问题签名匹配的历史问题签名的在前VM映像。22.权利要求21的计算机程序产品,其中的操作进一步包含: 根据比较,识别不与当前问题签名匹配的一个或多个历史问题签名的集合,其中,被选择的在前VM映像对应于该一个或多个历史问题签名的集合中包括的一个历史问题签名。23.权利要求21的计算机程序产品,其中至少一个历史问题签名是非问题签名,表示对应的在前VM映像是没有问题的。24.权利要求23的计算机程序产品,其中所述选择在前VM映像之一进一步包含: 识别具有非问题签名的在前VM映像,其中,所识别的在前VM映像被选择为该被选择的在前VM映像。25.权利要求21的计算机程序产品,其中的操作进一步包含: 检索对应于在前VM映像的每一个的多个资源指标,其中,这些资源指标起初是在在前VM映像在计算机系统上执行期间被收集的。26.权利要求25的计算机程序产品,其中的操作进一步包含: 分析对应于在前VM映像的每一个的该多个资源指标,该分析产生对应于在前VM映像的每一个的历史问题签名。27.权利要求19的计算机程序产品,其中该分析和选择是由管理包括该计算机系统的多个计算机系统的VM映像的第二计算机系统执行的。
【专利摘要】提供一个将虚拟机(VM)映像应用于计算机系统的方法。在由信息处理系统执行的该方法中,检测到计算机系统上执行的当前VM映像有问题。作为响应,分析在前VM映像,其中,每个在前VM映像以前都在该计算机系统上执行。根据分析,选择在前VM映像之一,并用所选择的在前VM映像替换计算机系统上执行的当前VM映像。
【IPC分类】G06F11/14
【公开号】CN104903865
【申请号】CN201380063214
【发明人】R.尤思, J.C.弗莱彻
【申请人】国际商业机器公司
【公开日】2015年9月9日
【申请日】2013年8月7日
【公告号】DE112013005768T5, US9104447, US9104448, US20140157263, US20140157266, WO2014086508A1