一种基于数据挖掘的虚拟机故障检测方法和系统与流程

文档序号:11949948阅读:399来源:国知局
一种基于数据挖掘的虚拟机故障检测方法和系统与流程

本发明属于数据挖掘技术领域,具体涉及一种基于数据挖掘的虚拟机故障检测方法和系统。



背景技术:

在云计算与大数据发展的背景下,虚拟化资源产生的大量状态文件、日志信息将为云平台的故障诊断与预测提供有力地预测与快速定位依据。对虚拟机进行故障监控主要分为单点故障的监控和关联故障的监控。单点故障是指某个虚拟机在某个时段出现CPU占用、网络带宽占用或者存储资源占用等方面的异常情况,关联故障是指某个虚拟机的行为异常是由于其他虚拟机的某些行为所引发,在这种情况下仅仅关注出现异常行为的虚拟机自身不能够对故障的源头进行定位。

人工直接进行故障诊断在很大程度上依赖于系统管理员的经验,其可靠性很难保证。由于没有参考,诊断错误很难被发现与更正。为了避免人为因素带来的影响与误差,对于故障诊断现多使用一定的模型来进行,如贝叶斯网络、神经网络、模糊逻辑等。

终上所述使用故障诊断模型可以降低由专家经验等人为因素所带来的偶然性与主观性,提高诊断的精确度与可靠性。通过挖掘虚拟化资源池日志等信息,找出其中潜在的关联信息。构建适合云南电网公司IAAS资源池中虚拟机的大数据分析模型,利用大数据技术对虚拟机日志进行关联性分析,快速对故障和性能瓶颈进行探查,准确给出探查出的每层资源故障路径或性能瓶颈轨迹,以智能化的方式替换随机性和经验性的人工模式。



技术实现要素:

本发明实现的故障检测系统目的是寻找故障发生的原因或故障位置,加快修复过程。故障和失效的关系往往异常的复杂,很难直接描述从故障到失效直接的关系。故障诊断通过检测诊断对象的故障模式,提取故障特征,根据预定的推理原则,评估故障信息,向上层做出提示,以便于故障修复。系统对虚拟机数据进行探测采集。利用大数据的数据特征矩阵式分析主动分析资源池中虚拟机性能壁垒,保证业务系统运行平台的稳定。与IT集中监控系统和云资源管理系统联动,及时同步报警和故障信息,并在非人工干预下自动、快速进行主动分析和展现。

本发明是通过下技术方案来实现的:

一种基于数据挖掘的虚拟机故障检测方法,包括以下步骤:

1)导出vCenter数据库中的历史数据;

2)将导出的历史数据进行标准化和降维处理;

3)将预处理后的历史数据分为有标签和无标签的数据样本,并建立故障诊断模型;

4)设置参数,利用vShphere SDK进行数据采集,并将数据存入数据库;

5)从数据库读出采集到的数据,进行预处理;

6)对预处理后的数据,利用故障诊断模型对数据进行处理;

7)将分析结果通过数据可视化展示出来。

本发明的步骤3)中建立故障诊断模型,具体为:针对主要特征选择数据分析模式,利用带标签的和不带标签的数据样本训练分类器建立故障诊断模型。

本发明的步骤4)中的数据采集方式是一种把粗粒度采集策略和细粒度采集策略相结合的策略方式。

在粗粒度采集策略的数据采集过程中,设置的数据采集的时间间隔大,数据采集的频率低。

在细粒度采集策略的数据采集过程中,设置的数据采集的时间间隔小,数据采集的频率高。

本发明的步骤6)中的故障诊断模型的诊断方法具体为:

A、采用聚类方法将数据分为不同情况下的聚簇;

B、设立一个阈值,当测试样本与簇的距离大于阈值时认为系统异常;

C、对不同类型的故障样本建立故障判定树,对认为异常的数据进一步采用故障树进行故障类型判断。

本发明的步骤6)中利用故障诊断模型对数据进行处理的结果为2种:

A、若为故障点,对该故障进行标记,以便后续展示,并继续向下执行;

B、若为非故障点,则对该数据进行非故障标记,并继续向下执行分析。

本发明的步骤7)中将分析结果通过数据可视化展示,具体为:该步骤的可视化首先包含了整个虚拟池的拓扑结构,然后根据数据挖掘结果,自定位到具体对象,并报出相关故障。

一种基于数据挖掘的虚拟机故障检测系统,包括:

数据采集模块

由于虚拟机的CPU、内存、网络各项指标不仅能够反映出机器当前运行的状态,还能帮助判断主机当前是否出现异常,是整个故障分析与快速定位的基石。该模块通过建立探针技术方式获取CPU、内存和网络资源,通过VMware vSphere SDK进行实时数据采集,并由vCenter的数据库将历史数据直接导出。

数据分析模块

数据分析模块研究数据采集模块获得的虚拟机各类数据并构建故障诊断分析模型。采用大数据分析技术对采集的各项指标数据进行分析,构建一个适应多种数据类型分析和预测的算法模型,通过该模型能对不同资源类型的数据和日志进行综合分析,从这些数据中捕获虚拟机故障状态信息。本模块首先对收集的大量信息进行预处理包括标准化和降维。然后针对主要特征选择数据分析模式,并利用带标签的和不带标签的数据样本训练分类器建立故障诊断模型。最后利用建立的模型进行故障诊断。

显示与告警模块

显示与告警模块将数据挖掘处理的成果进行可视化展示,使用B/S架构与用户进行交互,采用Java EE技术进行开发,提供给运维人员对整体系统进行操作和监控的工具。本模块展示系统中虚拟机的拓扑结构,并根据数据挖掘结果设定告警机制,对于出现异常的情况及时进行告警,并提供定位位置。

本发明的有益效果:通过自动化和智能化的数据分析模型构建和数据特征分析,快速采集、分析、发现和直观展示虚拟机故障原因和现象,提高故障诊断的效率和准确性,为支撑和构建云计算基础设施资源池的自动化运维提供了基本的监控实现方法。

附图说明

图1是本发明的故障诊断示意图;

图2是本发明数据采集部分的流程图;

图3是本发明的数据采集策略图;

图4是本发明的模型训练流程图;

图5是本发明数据分析部分的流程图。

具体实施方式

一种基于数据挖掘的虚拟机故障检测方法,包括以下步骤:

1)导出vCenter数据库中的历史数据;

2)将导出的历史数据进行标准化和降维处理;

3)将预处理后的历史数据分为有标签和无标签的数据样本,并建立故障诊断模型;

4)设置参数,利用vShphere SDK进行数据采集,并将数据存入数据库;

5)从数据库读出采集到的数据,进行预处理;

6)对预处理后的数据,利用故障诊断模型对数据进行处理;

7)将分析结果通过数据可视化展示出来。

本发明的步骤3)中建立故障诊断模型,具体为:针对主要特征选择数据分析模式,利用带标签的和不带标签的数据样本训练分类器建立故障诊断模型。

本发明的步骤4)中的数据采集方式是一种把粗粒度采集策略和细粒度采集策略相结合的策略方式。

在粗粒度采集策略的数据采集过程中,设置的数据采集的时间间隔大,数据采集的频率低。

在细粒度采集策略的数据采集过程中,设置的数据采集的时间间隔小,数据采集的频率高。

本发明的步骤6)中的故障诊断模型的诊断方法具体为:

A、采用聚类方法将数据分为不同情况下的聚簇;

B、设立一个阈值,当测试样本与簇的距离大于阈值时认为系统异常;

C、对不同类型的故障样本建立故障判定树,对认为异常的数据进一步采用故障树进行故障类型判断。

本发明的步骤6)中利用故障诊断模型对数据进行处理的结果为2种:

A、若为故障点,对该故障进行标记,以便后续展示,并继续向下执行;

B、若为非故障点,则对该数据进行非故障标记,并继续向下执行分析。

本发明的步骤7)中将分析结果通过数据可视化展示,具体为:该步骤的可视化首先包含了整个虚拟池的拓扑结构,然后根据数据挖掘结果,自定位到具体对象,并报出相关故障。

一种基于数据挖掘的虚拟机故障检测系统,包括:

数据采集模块:该模块通过建立探针技术方式获取CPU、内存和网络资源,通过VMware vSphere SDK进行实时数据采集,并由vCenter的数据库将历史数据直接导出;

数据分析模块:数据分析模块研究数据采集模块获得的虚拟机各类数据并构建故障诊断分析模型;以及

显示与告警模块:该模块展示系统中虚拟机的拓扑结构,并根据数据挖掘结果设定告警机制,对于出现异常的情况及时进行告警,并提供定位位置。

接下来,将结合说明附图对本发明的具体实施方式进行描述,以便本领域的技术人员更好地理解本发明。需要特别注意的是,在以下的描述中,当已知功能和设计的详细描述也许会淡化本发明的主要内容时,这些描述在这里将被忽略。

图1是本发明的故障诊断示意图,通过历史数据训练处诊断模型,然后使用诊断模型对实时采集的数据进行数据分析,判断其是否为故障。

图2是本发明数据采集模块的具体实施方式流程图,反映了数据采集的整个过程。

步骤201:使用者设置相关参数,例如要采集哪些资源(计算资源、存储资源、网络资源)采集间隔时间等。

步骤202:通过VMwarevSphere SDK进行数据采集。

步骤203:将采集的数据存储到数据库中。

图3是本发明的数据采集策略图。本系统的数据采集策略是一种把粗粒度采集策略和细粒度采集策略相结合的策略方式。

传统的数据采集方式通过设置一定的时间间隔,定时的对虚拟机性能指标进行采集。如果设置的数据采集的时间间隔较小,数据采集频率较大,则会严重消耗虚拟机资源,影响用户的正常使用。如果设置的数据采集的时间间隔较大,数据采集的频率较小,单位时间内采集到的虚拟机数据少,也不能很好的反映出虚拟机的实际运行情况。

在粗粒度的数据采集过程中,设置的数据采集的时间间隔较大,数据采集频率较低,这种模式下对虚拟机的性能影响较少。

在细粒度的数据采集过程中,设置的数据采集的时间间隔较小,数据采集的频率较高,这种模式下对虚拟机的性能影响较大,但单位时间内采集的数据较大,虚拟机的实际运行状况的反映更加全面、准确。

图4是本发明的模型训练流程图,反映了数据分析模型学习的过程。

步骤401:通过数据采集模块将历史数据从vCenter的数据库中导出。

步骤402:对收集的大量信息进行预处理包括标准化和降维。利用带标签的和不带标签的数据样本训练分类器建立故障诊断模型。

图5是本发明数据分析部分的具体实施方式流程图,对采集到的数据进行数据分析,从而检测出故障。

步骤501:对采集到的数据进行标准化和降维的预处理除去对故障诊断没有影响的冗余参数。由于搜集的不同的系统度量值的原始数据范围非常不同,需要对数据进行标准化处理。采用指数化处理方法将数据无量纲化。然后利用PCA方法进行数据降维。

步骤502:当数据预处理成功后利用数据建立故障模型并对数据进行故障诊断。

步骤503:将故障结果通过数据可视化反馈给用户。对于判定为异常的节点及时向用户告警。

步骤502中的故障诊断方法具体过程如下:采用聚类方法将数据分为不同情况下的聚簇,设立一个阈值当测试样本与簇的距离大于阈值时认为系统异常。对不同类型的故障样本建立故障判定树,对认为异常的数据进一步采用故障树进行故障类型判断。

尽管上面对本发明说明性的具体实施方式进行了描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实时方式的范围。凡采用等同替换或等效替换,这些变化是显而易见,一切利用本发明构思的发明创造均在保护之列。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1