用于共享动态云中的问题确定和诊断的方法和系统的制作方法

文档序号:7999293阅读:329来源:国知局
用于共享动态云中的问题确定和诊断的方法和系统的制作方法
【专利摘要】本发明涉及一种用于共享动态云中的问题确定和诊断的方法和系统。所述方法包括:针对至少一个度量监视所述共享动态云环境中的每个虚拟机和物理服务器;根据所述监视来识别问题症状并生成事件;分析所述事件以确定与正常行为的偏差;以及根据现有知识将所述事件分类为基于云的异常或应用故障。
【专利说明】用于共享动态云中的问题确定和诊断的方法和系统
【技术领域】
[0001]本发明的实施例一般地涉及信息技术,更具体地说,涉及虚拟化技术。
【背景技术】
[0002]大型数据中心可能经常出现故障,其是数据中心管理成本的主要因素。数据中心可以生成大量监视数据,但是从该数据中检测故障和对应的根本原因很困难。通常,通过使用预定义的阈值手动观察数据来执行该任务。
[0003]此外,虚拟化云环境提出新的挑战,包括共享资源、对虚拟机(VM)进行迁移和调整大小的动态操作环境、变化的工作负载等。共享资源争用高速缓存、磁盘和网络资源,并且在区分由于争用导致的性能问题与跨若干资源的应用故障时存在挑战。在区分性能异常与工作负载更改时存在动态性挑战。
[0004]虚拟化越来越多地用于新兴的云系统。此类大规模设置中出现的各种异常或故障将显著增加总管理成本,并使底层应用的性能恶化。因此,需要用于动态共享云的高效故障管理技术,这些技术可以区分云相关异常与应用故障。

【发明内容】

[0005]在本发明的一个方面,提供了用于共享动态云环境中的问题确定和诊断的技术。一种用于共享动态云中的问题确定和诊断的示例性计算机实现的方法可以包括以下步骤:针对至少一个度量监视所述共享动态云环境中的每个虚拟机和物理服务器;根据所述监视来识别问题症状并生成事件;分析所述事件以确定与正常行为的偏差;以及根据现有知识将所述事件分类为基于云的异常或应用故障。
[0006]在本发明的另一个方面,提供了一种用于共享动态云环境中的问题确定和诊断的系统。所述系统包括存储器、耦合到所述存储器的至少一个处理器,以及至少一个不同软件模块,每个不同软件模块被包含在有形的计算机可读介质中。所述软件模块包括:监视引擎模块,其在所述处理器上执行,用于针对至少一个度量监视所述共享动态云环境中的每个虚拟机和物理服务器,并输出与每个度量对应的监视数据时间序列(time series);事件生成引擎模块,其在所述处理器上执行,用于根据所述监视来识别问题症状并生成事件;问题确定引擎模块,其在所述处理器上执行,用于分析所述事件以确定和定位与正常行为的偏差;以及诊断引擎模块,其在所述处理器上执行,用于根据现有知识将所述事件分类为基于云的异常或应用故障。
[0007]在本发明的另一个方面,一种用于确定系统中的多个操作环境下的虚拟机行为的方法包括:在系统中的每个虚拟机级别监视至少一个资源;在所述系统中的物理主机级别监视每个资源的聚合使用;捕获多个度量,所述多个度量管理每个资源在所述系统中的每个物理主机的所有虚拟机上的累积使用;以及分析所述度量以确定所述系统中的多个操作环境下的虚拟机行为。
[0008]本发明的另一个方面或其元素可以以制品的形式实现,所述制品有形地包含计算机可读指令,当执行所述计算机可读指令时,导致计算机执行在此描述的多个方法步骤。此夕卜,本发明的另一个方面或其元素可以以装置的形式实现,所述装置包括存储器和至少一个处理器,所述至少一个处理器耦合到所述存储器并且可操作以执行所述方法步骤。更此夕卜,本发明的另一个方面或其元素可以以部件的形式实现,所述部件用于执行在此描述的方法步骤或其元素;所述部件可以包括(i)硬件模块(多个),(ii)软件模块(多个),或(iii)硬件和软件模块的组合;(i)_ (iii)的任何一个都实现在此说明的特定技术,并且所述软件模块被存储在有形的计算机可读存储介质(或多个此类介质)中。
[0009]从以下将结合附图阅读的对本发明的示例性实施例的详细描述,本发明的这些和其它目标、特性以及优点将变得显而易见。
【专利附图】

【附图说明】
[0010]图1是示出根据本发明的一个实施例的系统架构的示意图;
[0011]图2是示出根据本发明的一个实施例的实例故障特征(signature)参数的表;
[0012]图3是示出根据本发明的一个实施例的故障特征实例的示意图;
[0013]图4是不出根据本发明的一个实施例的实例系统和应用度量的表;
[0014]图5是示出根据本发明的一个实施例的所检测的故障情景的表;
[0015]图6是示出根据本发明的一个实施例的用于共享动态云环境中的问题确定和诊断的技术的流程图;以及
[0016]图7是其中可以实现本发明的至少一个实施例的示例性计算机系统的系统示意图。
【具体实施方式】
[0017]如在此所描述的,本发明的一个方面包括共享动态云中的问题确定和诊断。本发明的至少一个实施例包括一种三阶段方法,其通过有限的训练或应用知识尽可能早地识别故障。针对受影响的虚拟机和资源进行初始检测和故障定位之后,诊断引擎使用专家定义的故障特征将故障分类为若干类型(云相关或应用相关)中的一种。如在此所详述的,本发明的至少一个实施例的架构允许将系统扩展到新的应用、被监视度量和分析技术。
[0018]因此,本发明的实施例包括区分云相关异常与应用故障。举例来说,云相关异常可以包括不正确的虚拟机(VM)大小设置、由于共享导致的影响,以及重新配置和/或迁移。非云/应用故障例如可以包括错误配置的应用、软件缺陷、硬件故障、工作负载更改,以及应用或操作系统(OS)更新。
[0019]此外,如在此所描述的,本发明的至少一个实施例包括通过使用操作上下文信息以及被监视VM、资源和应用度量,促进适应环境的快速变化。此外,在本发明的一个实例实施例中,可以组合来自不同分析技术的结果以提高准确性。
[0020]如在此进一步所详述的,监视数据可以包括监视各种系统和应用度量,例如中央处理单元(CPU)、存储器利用率、高速缓存命中/未命中率、磁盘读取/写入、网络利用率、页面错误、每个VM的上下文切换、端到端延迟等。每个数据度量在预处理之后可以被表示为移动平均时间序列,并且标准格式允许问题检测技术扩展到新度量。监视还可以包含操作环境,包括其中执行应用以捕获共存应用的上下文。还可以使用物理主机的CPU、存储器、高速缓存、网络使用等进行表征。
[0021]如所说明的,本发明的至少一个实施例包括一种用于问题确定和可靠诊断的三阶段方法。在此类实例实施例中,第一阶段识别异常行为的潜在症状并生成事件,每个事件定位所涉及的特定VM和资源。第二阶段通过跨所涉及VM上的其它资源,以及跨运行用于所涉及资源的相同应用的其它VM计算相关性,进一步分析每个事件。第三诊断阶段在所述相关性值中识别与正常应用行为的任何显著偏差,以将故障分类为多种云相关和/或应用相关异常中的一种。因此,当轻量事件生成阶段检测到与正常行为的偏差时,将触发全面诊断。
[0022]本发明的至少一个实施例可以包括将应用视为黑箱,并且需要有限的训练或不需要训练以处理新应用。与仅监视一个或两个资源(例如CPU和存储器)的许多现有问题确定方法不同,本发明的至少一个实施例包括监视广泛的资源,包括CPU、存储器、高速缓存、磁盘和网络,这使能准确检测和定位多类故障。
[0023]此外,本发明系统的至少一个实施例被自动化,并且仅当标记异常时才需要人工干预。所述系统指示问题的潜在源以便恢复。
[0024]本发明的至少一个实施例的诊断阶段依赖专业知识以便准确地对故障进行分类。例如,可以通过标准化的故障特征提供专业知识,这些故障特征捕获有关每个故障如何在不同度量数据中表现为与正常行为的偏差的特性。当检测到异常行为时,将与正常行为的偏差的性质和各种可用的故障特征匹配以便对故障进行分类。所述故障特征可以以标准化的可扩展标记语言(XML)格式表示,并且专家可以添加或编辑有关故障情景的知识以供将来分类。
[0025]在此描述的另一个概念是操作环境的概念。因此,为了准确地检测系统中的故障,本发明的至少一个实施例包括在每个VM级别监视各种资源,以及在物理主机级别监视每个资源的聚合使用。操作环境捕获管理资源在每个物理主机的所有VM上的累积使用的度量。特定VM的行为在一个操作环境下可能正常,但在另一个操作环境下可能异常。
[0026]举例来说,考虑运行应用的VM,其延迟超过正常和/或可接受的延迟。该VM上的存储器利用率很高,并且托管该VM的物理服务器显示很高的页面错误和高速缓存未命中。仅有该信息可能无法揭示问题的性质,因为这可能由于高工作负载、应用相关异常或者从一个服务器到另一个服务器的实时VM迁移所致。分析操作上下文将有助于识别问题。实时VM迁移将在源以及目的地服务器上表现为很高的页面错误和高速缓存未命中,而托管同一应用的其它VM和服务器将不受影响。该影响也将是临时的,直到迁移完成,此后应用性能应该恢复正常。应用异常将仅影响托管该VM的服务器,而运行同一应用的其它VM将不受影响。增加的工作负载将影响运行同一应用的所有W,并且将通过跨VM的相关性被揭示。
[0027]图1是示出根据本发明的一个实施例的系统架构的示意图。举例来说,图1示出了包括多个群集的云基础架构102。例如,一个群集被不为服务器主机104,其包括VM 106、108和110,而另一个群集被示为服务器主机112,其包括VM 114、116和118。
[0028]图1还示出了系统组件,包括监视引擎120、事件生成引擎132、问题确定引擎138和诊断引擎146。如在此所描述的,监视引擎120针对各种度量(包括CPU、存储器、高速缓存、网络和磁盘资源)监视每个虚拟机和物理服务器。事件生成引擎132识别故障的潜在症状并生成事件。问题确定引擎138分析所述事件以确定与正常行为的偏差,诊断引擎146根据专业知识对所述异常进行分类。结合对图1的描述,下面进一步描述每个阶段。[0029]如所说明的,监视引擎120针对每个虚拟机和物理服务器而收集和处理与CPU、存储器、高速缓存、网络和磁盘资源有关的各种系统和应用度量。具体地说,系统度量收集器(profiler)模块122收集度量并将它们传送到数据预处理器模块126,其通过子模块128执行某些过滤和平滑操作。预处理通过子模块130在移动窗口内获得样本平均值而删除错误的异常值并平滑数据中的任何扭曲(kink)。此外,监视引擎120还包括应用度量收集器模块124以便收集应用度量。
[0030]因为异常行为仅可以被识别为趋势而且并非来自任何单个样本值,所以本发明的至少一个实施例中的算法将处理时间序列数据。数据点(在此被定义为固定时间间隔内的一系列移动平均值)构成本发明的至少一个实施例中的异常检测算法的基本输入单位。随着时间的推移,针对被监视的每个度量生成多个数据点。因此,监视引擎120的输出是数据点流,每个数据点源自与每个系统和应用度量对应的监视数据时间序列。此外,系统可以适应监视被表示为类似的时间序列数据的新的度量。
[0031]考虑以下有关从时间序列数据中构造数据点的实例。假设从以下十二个CPU利用率样本开始:{34.2,26.8,32,27.7,38.2,29,30.1, 28.3,33.5,31.1, 27.8,39}。接下来,在窗口大小(例如,w=3)内获得移动平均值:{31,33,28.8,32.6,32.4,29.1, 30.6,30.9,30.8,32.6,30.3,29.6}。然后,从上面的移动平均时间序列数据中提取数据点。例如,如果每个数据点的间隔长度被定位为k=4,则获得以下三个数据点:[31,33,28.8,32.6]、[32.4,29.1, 30.6,30.9]和[30.8,32.6,30.3,29.6]。
[0032]要指出的是,分别在虚拟机级别和物理主机级别收集系统度量。这是因为某些资源(例如CPU和存储器)通常在位于物理主机上的VM之间被分区,而其它资源(例如高速缓存)被共享。为了捕获运行特定VM的物理主机的上下文或状态,本发明的至少一个实施例包括定义操作环境的概念。如上所述,操作环境捕获度量,所述度量管理资源在每个物理主机的所有或多个VM上的累积使用。例如,这可以包括每个物理主机(跨其所有托管的VM)的总CPU和存储器利用率以及高速缓存命中率。例如,在导致异常应用行为(例如,较大应用延迟)的实时VM迁移的情况下,可以观察到,托管故障VM的物理服务器上的高速缓存命中/未命中和页面错误,与托管运行相同应用的其它VM的其它物理服务器上的高速缓存命中/未命中和页面错误相比不正常(异常)。
[0033]如所说明的,事件生成引擎132使用有关可能偏离正常行为的特定VM(多个)和资源(多个)的信息,识别异常行为的潜在症状并触发事件。事件的生成可以不直接表示故障的存在,而是可以仅表明故障的可能性。可能需要进一步分析以确认是否存在故障,并且如果存在,则对故障进行分类。例如,其程度前所未见的繁重工作负载(然而非故障)可能触发事件,因为VM的存储器利用率异常地高。但是,进一步分析(由问题确定引擎138执行)可能揭示这与其它资源(例如CPU和磁盘)或运行相同应用的其它VM的高利用率相关,因此仅确定为高工作负载情景而不是故障。
[0034]要重申的是,事件生成引擎132的作用是确定潜在异常行为的位置,以便可以进行进一步分析以分析所述特定VM (多个)和资源(多个)。这便于本发明的至少一个实施例扩展到生成大量监视数据的大型系统。此外,事件生成引擎132利用多种机器学习技术中的一种,经由模型构建器模块134构建正常应用行为的模型。所述模型用于检测观察到的数据中与正常行为的偏差,并且触发事件以输出到事件分析器模块136。[0035]模型构建器模块134可以实现建模技术(例如隐马尔可夫模型(HMM)、最近邻、K平均)和统计技术(例如回归技术)。所述建模技术尝试定性和/或定量地测量被分析数据点与过去观察值之间的偏离程度。本发明的至少一个实施例的架构允许将任何建模技术作为事件生成引擎132的一部分即插即用。
[0036]举例来说,基于HMM的建模涉及使用大量(例如,数百个)数据点训练HMM,导致所述模型捕获正常行为的概念。因为应用行为可能随负载或工作负载混合而变化,所以本发明的至少一个实施例包括训练多个HMM以用于不同情景(无论在何处都提供有关典型应用工作负载情景的知识)。如果该步骤是为了快速并具有低开销,则可以限制所创建的HMM的数量。可以为HMM提供新的测试数据点以确定它与所述模型的符合程度如何。此方法的优点是HMM可以捕获数据样本序列而不仅仅是包括该数据点的样本集合。
[0037]此外,最近邻技术包括计算所考虑的数据点和给定模型数据点集合之间的距离度量。所述模型数据点集合可以类似于用于HMM建模的训练集合,或者可以是从最近的过去中选择的特定数量的数据点。后一种方法将能够随着时间的推移比较应用的占用空间,并且可以以各种时间标度检测变化。此外,较大的距离度量将产生与正常或预期行为的较大偏差。要指出的是,此类技术不需要任何形式的训练。
[0038]距离度量可以选自若干实例备选项之一:两个数据点中的对应样本之间的简单向量差、从个体样本计算的聚合统计数据之间的差异(例如平均和标准偏差)、欧几里得空间中的距离、这些度量的任意组合等。与HMM不同,所述距离度量提供在系统中观察到的偏离程度的定量度量。
[0039]此外,开发了多种统计技术以便分析连续数据。例如,可以使用公知的回归技术开发正常行为的模型,并且可以将任何新数据点与该模型比较以确定符合度。这将指示所述数据点是否符合所述模型,或者如果不符合,则指示所述数据点与所述模型的偏离程度。其它统计测试例如可以包括符合优度测试或基于阈值的测试。此外,统计技术可以应用于从数据点中获得的直方图,而不是应用于数据点本身。
[0040]如上所述,问题确定引擎138(其包括统计分析器模块140和故障分类器模块142)使用跨VM和资源的统计相关性,识别异常并将它们定位到受影响的资源(多个)和VM (多个)。对于事件生成引擎132生成的每个事件,该阶段进一步分析数据以识别异常。因此,在本发明的至少一个实施例中,不调用问题确定引擎138,除非生成事件。举例来说,假设针对虚拟机VMi上的度量Mj生成事件。该阶段然后计算有关Mj的数据和有关VMi上的每个其它度量的数据之间的相关性,以及有关VMi上的Mj的数据和有关运行同一应用的每个其它VM上的Mj的数据之间的相关性(无论在何处都提供该信息)。根据有关正常行为下的典型相关性值的知识,指出与正常相关性值的任何显著偏差。这些偏差被提供给诊断引擎146,以便根据专业知识将它们分类为不同类别的故障和非故障行为。
[0041]举例来说,假设Ttraining表示某一时间窗口 Wta内的包含训练数据点的时间序列。Ttest表示某一窗口 Wte内的测试数据点的时间序列,以便Itest中的数据点数量小于或等于Tteaining中的数据点数量。将训练和测试数据时间序列合并在一起以产生相关性样本时间序列,表示为TM?elatim。要指出的是,每个VM上的每个系统度量将具有对应的时间序列。使vm和r分别表不虚拟机和系统度量。使用符号Tx_M_r表不虚拟机vm的系统度量r的时间序列X (其中X可以是训练、测试或样本时间序列)。接下来,计算
Tcorrelation—vml—r 矛口 TCorrelation—vm2—r之间的相关性(Cl),类似地计算TtMiningm和TtMining_?h时间序列之间的相关性(c2 )。相互比较得到的相关性值(Cl和c2)以标识所述事件。将(c2)用作阈值(T)以便将所述事件确定为工作负载强度更改(当abs(cl-c2) < T时)还是异常(当abS(cl-c2)>T时)。
[0042]上述过程将可靠用于工作负载的更改,因为工作负载的任何更改(例如通过图1中的组件144示出)将不会明显地影响跨运行同一应用的VM的相关性;即,所有VM的CPU和存储器利用率将随着工作负载的增加而增加。相比之下,如果存在影响某个特定VM和资源的异常,则这将在管理不再与运行同一应用的其它VM关联的资源的度量中反映出来。
[0043]在该过程中计算的相关性总数是度量数加上运行应用的VM数。要指出的是,本发明的至少一个实施例包括分析生成事件所在的位置的邻近区域。这有助于扩展到较大系统大小和若干被监视的度量。
[0044]诊断引擎146 (包括故障定位模块148)使用预定义的专业知识,将问题确定引擎138检测到的潜在异常情景分类为多种故障和非故障类别中的一种。可以将所述专业知识以标准化的故障特征形式提供给系统。故障特征在问题确定引擎138捕获的相关性值中以及在操作环境中捕获一组与正常行为的偏差,所述偏差是它们所描述的故障的特性。当检测到异常行为时,尝试将与正常行为的偏差和一个或多个已知故障特征相匹配。如果发现匹配,则诊断引擎146将成功地对故障进行分类。如果未发现匹配,则诊断引擎将所述行为标记为异常行为,该引擎没有该行为的知识。图2描述了有助于本发明的至少一个实施例区分各种故障情景的故障类型特性。
[0045]图2是示出根据本发明的一个实施例的实例故障特征参数的表202。本发明的至少一个实施例采用XML格式描述故障特征,以便当系统检测到故障时,允许扩展以添加新的故障特征(例如,由系统专家添加)。因此,本发明系统的至少一个实施例可以通过专家帮助,学习对新类型的故障进 行分类。可以结合本发明的至少一个实施例进行的假设是每个故障具有特有的特征,并且所述特征可以以被监视度量表示。
[0046]图3是示出根据本发明的一个实施例的故障特征实例302的示意图。举例来说,图3示出了有关两种类型故障和一种工作负载更改情景的专家创建的特征的实例。使用被表示为标记的不同上下文描述所述特征。在所述特征中仅捕获偏离正常行为的度量并将这些度量表示为阈值,所述阈值表示与所述特征匹配所需的相关性值中的最小偏差。
[0047]例如,跨托管应用的所有VM计算成对CPU相关性。相关性值中与正常行为的偏差必须至少与被定义为(CPU-corr-thr)的阈值大小相同,以便匹配该特征。使用的不同上下文标记包括:(a)VM环境上下文在虚拟化资源级别捕获故障表现;(b)操作环境上下文捕获在物理主机处获得的度量,这些度量表示跨位于所述主机上的所有VM的聚合使用;(c)系统管理程序上下文捕获从系统管理程序获得的任何特殊日志消息;以及(d)应用上下文捕获应用级别性能度量。
[0048]故障特征可以包括表征它定义的故障的那些上下文标记中的一个或多个,并且允许本发明的至少一个实施例唯一地识别该特征。图3中示出了有关故障和工作负载更改的实例特征。根据源和目的地主机页面错误区分实时迁移故障与其它故障(操作上下文),而使用CPU、存储器和上下文切换数中的显著偏差来识别错误的VM大小设置。图2中汇总了不同的故障特征识别符,它们有助于本发明的至少一个实施例对故障的每个类别和子类别进行识别和分类。[0049]如在此所详述的,本发明的至少一个实施例包括监视各种系统和应用度量并检测各种故障。因此,图4是示出根据本发明的一个实施例的实例系统和应用度量的表402。如在此所说明的,本发明的至少一个实施例包括监视引擎,其从物理主机和其上的虚拟机收集测量以用于故障检测和诊断。测量数据可以跨越多个系统和应用度量。图4中的表402列出本发明的至少一个实施例所监视的一组系统度量。表402的第三列指定是在虚拟机级别还是在物理服务器级别收集度量。
[0050]图5是示出根据本发明的一个实施例的所检测的故障情景的表502。举例来说,图5描述了使用本发明的至少一个实施例所检测的各种故障。下面将描述实例故障的详细信
肩、O
[0051]在故障“错误的VM资源大小设置”中,VM资源分配(CPU和存储器)被错误配置。考虑以下错误配置情景:(a)用于目标VM的CPU和存储器预留被分配非常低的值;(b)CPU预留被配置有非常低的值,而存储器预留是有效值;以及(c)存储器预留被设置为非常低的值,而CPU预留具有有效值。
[0052]故障“故障VM实时迁移”反映可能由于虚拟机实时迁移产生的问题。考虑以下两种情景。在第一种情景中,将VM迁移到严重拥塞的物理主机。该物理主机的容量仅足以容纳被迁移的VM。在第二种情景中,从没有足够的资源来执行迁移的严重拥塞的源主机迁移VM。
[0053]“工作负载混合更改”故障对应于工作负载混合或工作负载性质的更改,这将更改应用使用不同资源的程度。“工作负载强度更改”故障指示工作负载的强度增大或减小,而工作负载本身的性质保持不变。
[0054]“应用错误配置”故障表示应用参数之一被设置为不正确或无效的值的情况。此外,“VM配置错误”捕获采用与物理主机的某些配置参数冲突的方式配置虚拟机时的情况。例如,如果源和目的地主机上的CPU没有为虚拟机提供一组相同的特性,则诸如VM实时迁移之类的活动将失败。
[0055]“VM重新配置”可能在VM重新配置期间产生,VM重新配置可以在共享云中通过动态VM大小调整、VM实时迁移或通过创建新的VM实例来实现。“由于资源共享导致的影响”故障是指如下情况:在同一物理机上托管的两个或更多个VM争用资源,并且一个或多个VM的性能受到影响。例如,考虑一个VM上的高速缓存匮乏应用,该应用与另一个VM上的高速缓存敏感应用被共同托管。高速缓存匮乏VM积极使用高速缓存,从而明显地影响高速缓存命中率和其它应用的性能。CPU独占(hog)表示应用进入独占(S卩,使用大部分)CPU的无限循环计算的情景。该故障可能通过引入C代码块产生,该代码块在无限循环中执行浮点计算。这将消耗VM的大部分可用处理器周期,从而导致较差的应用性能。
[0056]存储器独占表示应用中存在存储器泄漏的情景。这通过运行C程序实现,该程序消耗目标VM上的大量存储器(它通过malloc不断地从堆中预留存储器而不释放被分配的块)。为应用留下非常少的存储器,从而导致应用吞吐量显著降低。
[0057]此外,磁盘独占的情况类似于CPU和存储器独占情景,并且可以使用多个并行运行的Hadoop排序实例来实现,以便产生高磁盘利用率情景。
[0058]在称为网络独占的故障中,网络链路的利用率很高。此外,在称为高速缓存独占的故障中,高速缓存密集的基准与目标VM共存以模拟高速缓存独占。[0059]图6是示出根据本发明的一个实施例的用于共享动态云环境中的问题确定和诊断的技术的流程图。步骤602包括针对至少一个度量监视所述共享动态云环境中的每个虚拟机和物理服务器。度量可以包括与中央处理单元、存储器、高速缓存、网络资源、磁盘资源等有关的度量。监视另外可以包括输出数据点流,每个数据点源自与所述共享动态云环境中的每个系统和应用度量对应的监视数据时间序列。此外,在本发明的至少一个实施例中,监视包括分别在虚拟机级别和物理主机级别进行监视。
[0060]步骤604包括根据所述监视识别问题症状并生成事件。识别症状可以包括从时间序列数据中识别趋势。此外,本发明的至少一个实施例包括利用机器学习技术构建正常应用行为的模型,以及使用所述模型来检测所监视的数据中与正常行为的偏差。
[0061]步骤606包括分析所述事件以确定与正常行为的偏差。分析可以包括使用跨虚拟机和资源的统计相关性来定位所述偏差相对于受影响资源和虚拟机的位置。此外,本发明的至少一个实施例包括分析生成所述事件所在的位置的周围区域。
[0062]步骤608包括根据现有知识将所述事件分类为基于云的异常或应用故障。所述现有(或专业)知识可以包括故障特征,其中故障特征捕获一组作为事件特性的、与正常行为的偏差。此外,本发明的至少一个实施例包括当生成事件时,将所述与正常行为的偏差和故障特征相匹配,并且如果发现匹配,则进一步对所述事件进行分类,如果未发现匹配,则将所述事件标记为异常行为。
[0063]还如在此所描述的,本发明的至少一个实施例包括确定系统中的多个操作环境下的虚拟机行为。这例如可以包括:在系统中的每个虚拟机级别监视至少一个资源;在所述系统中的物理主机级别监视每个资源的聚合使用;捕获多个度量,所述多个度量管理每个资源在所述系统中的每个物理主机的所有虚拟机上的累积使用;并分析所述度量以确定所述系统中的多个操作环境下的虚拟机行为。此外,本发明的至少一个实施例可以包括根据多个操作环境下的所述虚拟机行为而检测所述系统中的问题。
[0064]如在此所描述的,图6中示出的技术还可以包括提供一种系统,其中所述系统包括不同软件模块,所述不同软件模块的每一个都包含在有形的计算机可读可记录存储介质中。例如,所有模块(或其任何子集)可以在同一介质中,或者每一个可以在不同介质中。所述模块可以包括在此详述的任何或全部组件。在本发明的一个方面,所述模块例如可以在硬件处理器上运行。然后可以使用所述系统的所述不同软件模块(如上所述,在硬件处理器上执行)执行所述方法步骤。此外,一种计算机程序产品可以包括有形的计算机可读可记录存储介质,其具有适于被执行的代码以便执行在此描述的至少一个方法步骤,包括为所述系统提供所述不同软件模块。
[0065]此外,图6中示出的技术能够通过可以包括计算机可用程序代码的计算机程序产品来实现,所述计算机可用程序代码被存储在数据处理系统内的计算机可读存储介质中,并且其中通过网络从远程数据处理系统下载所述计算机可用程序代码。此外,在本发明的一个方面,所述计算机程序产品可以包括被存储在服务器数据处理系统内的计算机可读存储介质中的计算机可用程序代码,并且其中所述计算机可用程序代码通过网络下载到远程数据处理系统,以便在所述远程系统的计算机可读存储介质中使用。
[0066]所属【技术领域】的技术人员知道,本发明的各个方面可以实现为系统、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或软件和硬件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,本发明的各个方面还可以实现为在计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
[0067]本发明的一个方面或其元素可以以装置的形式实现,所述装置包括存储器和至少一个处理器,所述至少一个处理器耦合到所述存储器并且可操作以执行示例性方法步骤。
[0068]此外,本发明的一个方面可以使用在通用计算机或工作站上运行的软件。参考图7,此类实施方式例如可以采用处理器702、存储器704和输入/输出接口(例如,由显示器706和键盘708形成)。术语“处理器”如在此所使用的,旨在包括任何处理设备,例如包括CPU (中央处理单元)和/或其它形式处理电路的处理设备。此外,术语“处理器”可以指多个单独的处理器。术语“存储器”旨在包括与处理器或CPU关联的存储器,例如RAM (随机存取存储器)、ROM (只读存储器)、固定存储设备(例如,硬盘驱动器)、可移动存储器设备(例如,软盘)、闪存等。此外,词组“输入/输出接口”如在此所使用的,旨在包括例如用于将数据输入到所述处理单元中的机构(例如,鼠标),以及用于提供与所述处理单元关联的结果的机构(例如,打印机)。作为数据处理单元712的一部分,处理器702、存储器704和输入/输出接口(例如显示器706和键盘708)例如可以通过总线710互连。还可以例如通过总线710为网络接口 714 (例如网卡,可以提供网卡以便与计算机网络连接)以及介质接口 716(例如软盘或⑶-ROM驱动器,可以提供它们以便与介质718连接)提供适合的互连。
[0069]因此,如在此所描述的,包括用于执行本发明的所述方法的指令或代码的计算机软件可以被存储在关联的存储设备(例如,ROM、固定或可移动存储器)中,并且当准备使用时,被部分或全部加载(例如,加载到RAM中)并由CPU实现。此类软件可以包括但不限于固件、驻留软件、微代码等。
[0070]适合于存储和/或执行程序代码的数据处理系统将包括至少一个通过系统总线710直接或间接连接到存储器元件704的处理器702。所述存储器元件可以包括在程序代码的实际执行期间采用的本地存储器、大容量存储装置以及提供至少某些程序代码的临时存储以减少必须在执行期间从大容量存储装置检索代码的次数的高速缓冲存储器。
[0071]输入/输出或I/O设备(包括但不限于键盘708、显示器706、指点设备等)可以直接(例如通过总线710)或通过中间I/O控制器(为清楚起见而被省略)与所述系统相连。
[0072]网络适配器(例如网络接口 714)也可以被连接到所述系统以使所述数据处理系统能够通过中间专用或公共网络变得与其它数据处理系统或远程打印机或存储设备相连。调制解调器、电缆调制解调器和以太网卡只是当前可用的网络适配器类型中的少数几种。
[0073]如在此(包括权利要求)所使用的,“服务器”包括运行服务器程序的物理数据处理系统(例如,如图7中示出的系统712)。将理解,此类物理服务器可以包括也可以不包括显示器和键盘。
[0074]如所说明的,本发明的各个方面可以采取包含在计算机可读介质中的计算机程序产品的形式,所述计算机可读介质具有包含在其中的计算机可读程序代码。此外,可以采用计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质例如可以是一但不限于一电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0075]计算机可读的信号介质可以包括例如在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。此类传播的数据信号可以采用多种形式,包括一但不限于一电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0076]计算机可读介质上包含的程序代码可以用适当的介质传输,包括一但不限于一无线、有线、光缆、RF等等,或者上述的任意合适的组合。
[0077]可以以至少一种程序语言的任意组合来编写用于执行本发明的各个方面的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言一诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言一诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络一包括局域网(LAN)或广域网(WAN) —连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0078]在此将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
[0079]也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其它设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制品(article of manufacture)。因此,本发明的一个方面包括有形地包含计算机可读指令的制品,当执行所述计算机可读指令时,导致计算机执行在此描述的多个方法步骤。
[0080]也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令提供实现流程图和/或框图中的一个或多个方框中规定的功能/动作的过程。
[0081]附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系结构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、组件段或代码的一部分,所述模块、组件段或代码的一部分包括至少一个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0082]应当注意,在此描述的任何方法都可以包括提供一种系统的另一个步骤,所述系统包括包含在计算机可读存储介质中的不同软件模块;所述模块例如可以包括图1中示出的任何或全部组件。然后可以使用所述系统的所述不同软件模块和/或子模块(如上所述,在硬件处理器702上执行)执行所述方法步骤。此外,计算机程序产品可以包括计算机可读存储介质,其具有适于被执行的代码以便执行在此描述的至少一个方法步骤,包括为所述系统提供所述不同软件模块。
[0083]在任何情况下,应当理解,在此示出的组件可以以各种形式的硬件、软件或它们的组合来实现;例如,专用集成电路(多个)(ASIC)、功能电路、具有关联存储器的经过适当编程的通用数字计算机等。给予了在此提供的本发明的教导后,本领域的技术人员将能够构想本发明的组件的其它实现。
[0084]在此使用的术语只是为了描述特定的实施例并且并非旨在作为本发明的限制。如在此所使用的,单数形式“一”、“一个”和“该”旨在同样包括复数形式,除非上下文明确地另有所指。还将理解,当在此说明书中使用时,术语“包括”和/或“包含”指定了声明的特性、整数、步骤、操作、元素和/或组件的存在,但是并不排除其它特性、整数、步骤、操作、元素、组件和/或其组的存在或增加。
[0085]以下的权利要求中的对应结构、材料、操作以及所有功能性限定的装置(means)或步骤的等同替换,旨在包括任何用于与在权利要求中具体指出的其它单元相组合地执行该功能的结构、材料或操作。
[0086]本发明的至少一个方面可以提供有益的效果,例如创建云重新配置活动的特征以处理虚拟化驱动的重新配置。
[0087]出于示例目的给出了对本发明的各种实施例的描述,但所述描述并非旨在是穷举的或是限于所公开的实施例。在不偏离所描述的实施例的范围和精神的情况下,对于本领域的技术人员来说许多修改和变化都将是显而易见的。在此使用的术语的选择是为了最佳地解释实施例的原理、实际应用或对市场中的技术的技术改进,或者使本领域的技术人员能够理解在此公开的实施例。
【权利要求】
1.一种用于共享动态云环境中的问题确定和诊断的方法,所述方法包括: 针对至少一个度量监视所述共享动态云环境中的每个虚拟机和物理服务器; 根据所述监视来识别问题症状并生成事件; 分析所述事件以确定与正常行为的偏差;以及 根据现有知识将所述事件分类为基于云的异常或应用故障; 其中由计算机设备执行上述步骤中的至少一个步骤。
2.根据权利要求1的方法,其中所述至少一个度量包括与中央处理单元、存储器、高速缓存、网络资源和盘资源中的至少一个有关的度量。
3.根据权利要求1的方法,其中所述监视包括输出数据点流,每个数据点源自与所述共享动态云环境中的每个系统和应用度量对应的监视数据时间序列。
4.根据权利要求1的方法,其中所述监视包括分别在虚拟机级别和物理主机级别进行监视。
5.根据权利要求1的方法,其中所述识别包括从时间序列数据中识别趋势。
6.根据权利要求1的方法,包括利用机器学习技术来构建正常应用行为的模型。
7.根据权利要求6的方法,包括使用所述模型来检测所监视的数据中与正常行为的偏差。
8.根据权利要求1的方法,其中所述分析包括使用跨虚拟机和资源的统计相关性来定位所述偏差相对于受影响资源和虚拟机的位置。
9.根据权利要求1的方法,包括分析生成所述事件所在的位置的周围区域。
10.根据权利要求1的方法,其中所述现有知识包括至少一个故障特征,其中故障特征捕获一组作为事件特性的、与正常行为的偏差。
11.根据权利要求10的方法,包括当生成事件时,将所述与正常行为的偏差和故障特征相匹配。
12.根据权利要求11的方法,包括如果发现匹配,则对所述事件进行分类。
13.根据权利要求11的方法,包括如果未发现匹配,则将所述事件标记为异常行为。
14.一种用于共享动态云环境中的问题确定和诊断的系统,所述系统包括: 适于针对至少一个度量监视所述共享动态云环境中的每个虚拟机和物理服务器的模块; 适于根据所述监视来识别问题症状并生成事件的模块; 适于分析所述事件以确定与正常行为的偏差的模块;以及 适于根据现有知识将所述事件分类为基于云的异常或应用故障的模块。
15.根据权利要求14的系统,其中所述适于针对至少一个度量监视所述共享动态云环境中的每个虚拟机和物理服务器的模块包括适于输出数据点流的子模块,每个数据点源自与所述共享动态云环境中的每个系统和应用度量对应的监视数据时间序列。
16.根据权利要求14的系统,其中所述系统包括: 适于利用机器学习技术来构建正常应用行为的模型的模块;以及 适于使用所述模型来检测所监视的数据中与正常行为的偏差的模块。
17.根据权利要求14的系统,其中所述现有知识包括至少一个故障特征,其中故障特征捕获一组作为事件特性的、与正常行为的偏差。
18.根据权利要求17的系统,其中所述系统包括适于当生成事件时,将所述与正常行为的偏差和故障特征相匹配的模块。
19.一种用于共享动态云环境中的问题确定和诊断的系统,所述系统包括: 存储器; 耦合到所述存储器的至少一个处理器;以及 至少一个不同软件模块,每个不同软件模块被包含在有形的计算机可读介质中,所述至少一个不同软件模块包括: 监视引擎模块,其在所述处理器上执行,用于针对至少一个度量监视所述共享动态云环境中的每个虚拟机和物理服务器,并输出与每个度量对应的监视数据时间序列; 事件生成引擎模块,其在所述处理器上执行,用于根据所述监视来识别问题症状并生成事件; 问题确定引擎模块,其在所述处理器上执行,用于分析所述事件以确定和定位与正常行为的偏差;以及 诊断引擎模块,其在所述处理器上执行,用于根据现有知识将所述事件分类为基于云的异常或应用故障。
20.一种用于确定系统中的多个操作环境下的虚拟机行为的方法,所述方法包括: 在系统中的每个虚拟机级别监视至少一个资源; 在所述系统中的物理主机级别监视每个资源的聚合使用; 捕获多个度量,所述多个度量管理每个资源在所述系统中的每个物理主机的所有虚拟机上的累积使用;以及 分析所述度量以确定所述系统中的多个操作环境下的虚拟机行为; 其中由计算机设备执行上述步骤中的至少一个步骤。
21.根据权利要求20的方法,包括根据多个操作环境下的所述虚拟机行为而检测所述系统中的问题。
【文档编号】H04L29/08GK103428026SQ201310174315
【公开日】2013年12月4日 申请日期:2013年5月13日 优先权日:2012年5月14日
【发明者】P·贾亚钱德兰, B·沙尔玛, A·维尔马 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1