基于工作流的云系统任务运行故障诊断方法与系统技术方案

技术编号:22641294 阅读:47 留言:0更新日期:2019-11-26 16:04
本发明专利技术公开了一种基于工作流的云系统任务运行故障诊断方法与系统,包括:提取基于日志特征的相关性,将离散的日志按照任务划分形成工作流;形成带有任务标记的参照,通过生成的工作流与参照的相似性确定工作流所属的任务类别;基于自动机模型,为每个任务构建诊断自动机,通过自动机的匹配识别过程完成故障的诊断和定位。由此本发明专利技术能够为复杂的云环境提供高速、精确的故障诊断和定位。

Fault diagnosis method and system of cloud system task running based on Workflow

The invention discloses a workflow based cloud system task operation fault diagnosis method and system, which includes: extracting the correlation based on the log features, dividing the discrete logs into workflows according to the tasks; forming a reference with task marks, determining the task category of the workflow through the similarity between the generated workflow and the reference; based on the automata model, for each Task construction diagnosis automata, through the matching recognition process of automata to complete the fault diagnosis and location. The invention can provide high-speed and accurate fault diagnosis and location for complex cloud environment.

【技术实现步骤摘要】
基于工作流的云系统任务运行故障诊断方法与系统
本专利技术涉及云计算领域,特别涉及一种云计算的故障诊断方法和系统。
技术介绍
伴随着网络功能虚拟化技术(NetworkFunctionsVirtualization,NFV)的成熟,云系统得以迅速发展壮大。阿里云、谷歌云、亚马逊云等一系列成熟的云系统开始为公众提供商业服务。云系统的一大优势是能够按需合理配置资源。例如,云系统可以按需给虚拟机配置相应的内存、CPU。这种方式在保证用户需求的前提下极大的提升了系统资源的利用率从而避免资源浪费。云系统灵活的资源配置也给自身的可靠性与稳定性带来了挑战。云服务系统通常包含多个服务,这些服务分别部署于不同的物理机器上。分布式的服务部署模式使得服务间的消息同步面临可靠性的挑战。云系统的资源配置是通过对用户虚拟机的创建、删除等任务完成的,一个任务的完成需要多个服务的密切配合。任意服务的功能异常或错误都会导致任务的失败。因此,如何对云系统进行精确地故障诊断和定位成为了工业界和学术界广泛讨论的话题。为了对系统中的进程或网络问题进行精确的定位和诊断,许多的研究者致力于使用历史数据来探索进程或网络的潜在特性。一种方法基于系统硬件数据为每个进程构建一个状态。这些数据包括内存占用率、CPU使用率、进程配置等。根据状态数据变化的相关性来探索进程可能的相互影响关系。但是系统内存占用率、CPU使用率等关键数据受系统负载影响,因此该方式的精确性会随系统负载波动。另外一种类型的方法通过收集网络事件(数据包的到达或发送等)来构建网络事件溯源树。该方法首先在系统正常的环境下构建正常参照树,当系统中出现网络问题时,通过正常与异常的对比来产生诊断结果。然而该方式的精确度取决于网络事件记录的详细性。而网络事件的记录需要特定的软件支持,这些软件本身会增加网络的时延等,给系统带来负面影响。一些工作通过日志分析来完成诊断过程。CloudSeer对日志分析处理得到工作流,为每个任务构建相应的自动机模型。通过自动机的匹配过程进行故障诊断。然而,工作流的构建在串行条件下,在并行条件下缺乏适应性。目前解决云系统故障诊断的工作主要包括:Gretel:在OpenStack云系统中,一个任务(虚拟机创建)的执行需要多个服务的协调配合。这些服务通过RestfulApi和RPC进行信息交换来完成特定的功能。Gretel通过在正常系统中收集任务执行过程中的Restful和RPC接口先后调用情况,形成正常接口调用序列。在系统运行过程中,Gretel同样收集Restful和RPC接口调用信息,通过对比正常接口调用序列以及目前接口调用序列来确定现有任务的任务类型和可能存在错误的位置。这种方式存在两个问题:1)接口调用信息的收集需要特定的工具来完成,这些工具通常会增加系统的网络负载,例如增加网络延迟等。2)高负载的云环境使得各个任务的接口调用混杂在一起,难以区分某个接口调用属于哪个任务,因此难以形成有效的接口调用序列。DiffProv:分布式系统复杂的网络环境使得分布式服务的可靠性面临巨大的挑战。DiffProv首先在每个分布式节点上收集网络事件,网络事件可以是数据包的到达、发送等行为。通过对每个节点事件的分析汇总,产生网络事件溯源树。树的叶子节点为系统中的网络事件,从根节点到叶子节点的路径代表了网络事件的产生或传递过程。DiffProv通过在正常点的分布式环境中构建正常事件来源树作为网络故障诊断的参照,当网络中检测到故障时,通过当前与参照的对比产生诊断结论。这种方法可以精确的定位故障产生的源头,但是溯源树的构建面临挑战。首先系统中的网络事件具有多样性,无法判断两个网络事件是否具有相关性。其次,在诊断的过程中,由于网络事件的差异性巨大,因此无法精确快速的为当前网络事件找到其相应的参照。以上两个挑战使得DiffProv在实际环境中无法广泛应用。CloudSeer:CloudSeer致力于解决云系统中任务的运行错误,当任务出现错误时实现快速、准确的故障位置诊断与定位。CloudSeer首先从日志中为云系统中的每个任务(例如VM的创建、删除等)提取其工作流。工作流是该任务执行的过程中,各个服务进程打印的日志按照时间顺序组成的日志序列。以任务的工作流为输入,CloudSeer为每个任务构建相应的自动机模型。通过任务自动机的匹配过程实现故障诊断。但是,CloudSeer工作流的提取限制在了串行的环境下,这使得其工作流在并行的环境下缺乏普适性。因此,该模型在并行环境中极大的降低了诊断的精确率。现有的工作均首先构建参照系统,故障诊断的过程实际上就是当前状态与其对应的参照对比的过程。但是,现有工作在构建参照的过程存在问题——需要过多的人工干预或是对于构建的环境提出严苛的要求,对于实际系统缺乏普适性。
技术实现思路
现有系统和相关技术都先在正常的运行环境中构建参考系作为故障诊断的依据。参考系的构建需要精确的数据来源,因此需要部署特定的信息收集工具来获取所需的数据。信息收集工具或是拦截系统数据包作处理,或者监控系统资源的使用情况。这些工具本身不仅给复杂繁重的云系统增加了更多的负载,同时也加剧了收集数据的波动性。具体来说,本专利技术提出一种基于工作流的云系统任务运行故障诊断方法,其中包括:步骤1、分布式云系统包括多个节点,集合节点中各模块产生的日志,得到日志集合,将日志拆分为变量部分与非变量部分,并将具有相同非变量部分的日志条目分配同一种日志类型;步骤2、获取该日志集合中下一条日志作为当前日志,根据日志类型判断是否有与该当前日志相匹配的待测工作流,若是,则将该当前日志添加到相匹配待测工作流的末端,否则新建待测工作流,将该当前日志作为新建待测工作流的首条日志条目;步骤3、通过多次运行指定的任务类型,得到多个属于相同任务类型的工作流,保留工作流中共有部分,得到具有任务类型标识的参照工作流;提取每个待测工作流的日志类型,得到待测工作流日志类型序列;提取每个参照工作流的日志类型,得到参照工作流日志类型序列,根据待测类型序列和参照类型序列的相似性,确定待测工作流所属的任务类型;步骤4、为每个待测工作流构建其对应的有限状态自动机,通过该有限状态自动机的匹配识别过程完成故障的诊断和定位,其中构建过程包括为待测工作流中第i条日志创建一个新状态,新状态与自动机最后一个状态增加一条唯一的连接边,该连接边的值为该条目的日志类型,对于第i条日志中提取到的变量部分,若一个或多个变量存在于该第i条目之前的i-1条日志中,则标记该一个或多个变量。所述的基于工作流的云系统任务运行故障诊断方法,其中该步骤2中该当前日志与该待测工作流的匹配具体为:该待测工作流的指纹集与该当前日志的变量部分具有公共元素且该指纹集合中该公共元素的更新时间与该日志的产生时间具有最小的时间间隔。所述的基于工作流的云系统任务运行故障诊断方法,其中该自动机的状态迁移条件为:输入的日志条目其日志类型与状态A到状态B边所代表的日志类型相同,且该输入日志条目中具有标记变量。所述的基于工作流的云系本文档来自技高网
...

【技术保护点】
1.一种基于工作流的云系统任务运行故障诊断方法,其特征在于,包括:/n步骤1、分布式云系统包括多个节点,集合节点中各模块产生的日志,得到日志集合,将日志拆分为变量部分与非变量部分,并将具有相同非变量部分的日志条目分配同一种日志类型;/n步骤2、获取该日志集合中下一条日志作为当前日志,根据日志类型判断是否有与该当前日志相匹配的待测工作流,若是,则将该当前日志添加到相匹配待测工作流的末端,否则新建待测工作流,将该当前日志作为新建待测工作流的首条日志条目;/n步骤3、通过多次运行指定的任务类型,得到多个属于相同任务类型的工作流,保留工作流中共有部分,得到具有任务类型标识的参照工作流;提取每个待测工作流的日志类型,得到待测工作流日志类型序列;提取每个参照工作流的日志类型,得到参照工作流日志类型序列,根据待测类型序列和参照类型序列的相似性,确定待测工作流所属的任务类型;/n步骤4、为每个待测工作流构建其对应的有限状态自动机,通过该有限状态自动机的匹配识别过程完成故障的诊断和定位,其中构建过程包括为待测工作流中第i条日志创建一个新状态,新状态与自动机最后一个状态增加一条唯一的连接边,该连接边的值为该条目的日志类型,对于第i条日志中提取到的变量部分,若一个或多个变量存在于该第i条目之前的i-1条日志中,则标记该一个或多个变量。/n...

【技术特征摘要】
1.一种基于工作流的云系统任务运行故障诊断方法,其特征在于,包括:
步骤1、分布式云系统包括多个节点,集合节点中各模块产生的日志,得到日志集合,将日志拆分为变量部分与非变量部分,并将具有相同非变量部分的日志条目分配同一种日志类型;
步骤2、获取该日志集合中下一条日志作为当前日志,根据日志类型判断是否有与该当前日志相匹配的待测工作流,若是,则将该当前日志添加到相匹配待测工作流的末端,否则新建待测工作流,将该当前日志作为新建待测工作流的首条日志条目;
步骤3、通过多次运行指定的任务类型,得到多个属于相同任务类型的工作流,保留工作流中共有部分,得到具有任务类型标识的参照工作流;提取每个待测工作流的日志类型,得到待测工作流日志类型序列;提取每个参照工作流的日志类型,得到参照工作流日志类型序列,根据待测类型序列和参照类型序列的相似性,确定待测工作流所属的任务类型;
步骤4、为每个待测工作流构建其对应的有限状态自动机,通过该有限状态自动机的匹配识别过程完成故障的诊断和定位,其中构建过程包括为待测工作流中第i条日志创建一个新状态,新状态与自动机最后一个状态增加一条唯一的连接边,该连接边的值为该条目的日志类型,对于第i条日志中提取到的变量部分,若一个或多个变量存在于该第i条目之前的i-1条日志中,则标记该一个或多个变量。


2.如权利要求1所述的基于工作流的云系统任务运行故障诊断方法,其特征在于,该步骤2中该当前日志与该待测工作流的匹配具体为:该待测工作流的指纹集与该当前日志的变量部分具有公共元素且该指纹集合中该公共元素的更新时间与该日志的产生时间具有最小的时间间隔。


3.如权利要求1或2所述的基于工作流的云系统任务运行故障诊断方法,其特征在于,该自动机的状态迁移条件为:输入的日志条目其日志类型与状态A到状态B边所代表的日志类型相同,且该输入日志条目中具有标记变量。


4.如权利要求3所述的基于工作流的云系统任务运行故障诊断方法,其特征在于,该自动机的匹配识别过程包括:
若输入的日志条目与自动机边上相对应的内容相同,则自动机跳转到下一个状态;及
将该自动机的最后一个状态标记为接受状态,若自动机到达了接受状态,则任务完成了一次云系统任务运行故障诊断,诊断结果为该自动机的工作流标记。


5.一种基于工作流的云系统任务运行故障诊断系统,其特征在于,包括:
模块1、分布式云系统包括多个节点,集合节点中各模块产生的日志,得到日志集合,将日志拆分为变量部分...

【专利技术属性】
技术研发人员:周朋朋王阳李振宇谢高岗
申请(专利权)人:中国科学院计算技术研究所
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1