云环境下服务器故障自适应诊断算法研究

2018-12-10 09:13程莹邵清
软件导刊 2018年9期
关键词:自适应决策树云计算

程莹 邵清

摘要:为了解决传统服务器故障检测方法大多针对已经注入的故障类型进行检测,无法获取未知故障类型,并且检测速度较慢的问题,提出一种基于自适应监测过程与决策树算法的故障检测方法ASFD。该算法利用自适应监测方法获取服务器数据,并引入信息熵与邻居协作算法对故障检测点进行检测,然后将SVM与CART相结合进行故障类型判断。实验结果表明,该算法能够有效实现故障类型判断,提高了故障检测速度。

关键词:云计算;自适应;故障诊断;数据监测;决策树;SVM算法

DOIDOI:10.11907/rjdk.181088

中图分类号:TP312

文献标识码:A文章编号文章編号:16727800(2018)009007205

英文标题Research on Adaptive Fault Diagnosis Algorithm for Server Fault in Cloud Environment

--副标题

英文作者CHENG Ying, SHAO Qing

英文作者单位(School of OpticalElectrical and Computer Engineering,University of Shanghai for Science and Technology,Shanghai 210093,China)

英文摘要Abstract:Most of the traditional server fault detection methods only detect the injected fault types,fail to get the unknown fault types,and the detection speed is slow.In order to solve this problem,a fault detection method based on adaptive monitoring process and decision tree algorithm is proposed ASFD in this paper.The algorithm uses adaptive monitoring method to get server data,and introduces information entropy and neighbor cooperation algorithm to detect the fault detection points.Then SVM and CART are combined to decide the fault type.The experimental results show that the algorithm proposed in this paper can effectively judge the fault type and enhance the fault diagnosis speed.

英文关键词Key Words:cloud computing;selfadaptive;fault diagnosis;data monitoring;decision tree;SVM algorithm

0引言

随着云计算发展不断完善,用户量增加导致服务器任务数量增加,且任务复杂性提高。云计算服务器负载增加及任务处理难度的提升使得服务器故障频发,易致系统崩溃[14]。

针对上述问题,众多学者相继提出了一系列算法用于云计算服务器故障诊断。文献[5]将日志类型特征向量应用于主故障与伴随故障,提出基于伴随状态追踪的持续故障定位框架CST,实现了注入故障类型检测,该算法对已存在故障可以有效地判断分析,但缺少对未知故障的分析。文献[6]提出基于执行轨迹监测的故障诊断方式,采用代码插桩监测,然后利用主成分分析抽取关键方式诊断故障类型,该算法缺点主要是由于监测方式与插桩方法数量成正比,因此性能消耗较大,不利于后续发展。文献[7]采用Petri网解决服务组合的问题,然后基于CTL描述相关性质并提出验证服务组合故障分析的实施算法,该算法在处理服务组合故障时具有一定的优越性,但是可靠性较差,并且未考虑QoS问题。

基于此,提出一种云计算环境下服务器自适应故障诊断算法(Adaptive Fault Diagnosis Method for Server,ASFD)。采取自适应监测方式实时监控服务器数据,当出现可疑节点时采取信息熵方式判断该节点,若为可疑点则利用邻居协作方式判断其是否为故障节点。确认故障节点后,为防止进一步传播,利用决策树算法诊断出该故障具体类型。经实验验证,该算法能准确隔离故障节点,有效判断故障类型,防止故障节点造成进一步危害。

1基本概念与过程

云服务依靠服务器集群的整体工作,可以将服务器模型抽象为二元组(I,S)。I是指所有服务器节点共享的具有带宽的内部通信网络,负责节点之间的信息交换;S={Si},Si表示编号为i的服务器节点,其中i=1,2,3,4…,N。每个节点都驻留一个内部通信系统Ci,专门负责本服务器节点与其它服务器节点之间的消息传递。若节点Si出现故障,表明Si不能正常工作,即Ci将不能正常发送信息到Si,同时Ci不能从Si获取信息(见图1)[8]。

全文分为3部分:自适应监测、监测数据管理、故障诊断,具体功能介绍如下:

(1)自适应监测。使用第三方工具,采取周期性拉模式与事件驱动推模式对数据进行监测。

(2)监测数据管理。根据邻居节点协作、SVM递归特征提取监测数据,对历史数据进行处理。

(3)故障诊断。通过CART算法建立判断树,判断出故障类型。

2服务器数据监测

对服务器数据监测模式和监测过程进行介绍,用于判断故障类型。

2.1监测模式

数据监测模式是利用监测器监测各服务器节点的资源信息和负载情况,而后分析监测数据,进行故障诊断。监测组件是构成监测服务组合的基本单元(见图2)。其中:①采样器,周期性对所驻留节点的资源性能和负载信息进行采样;②通告器,被监测器用来将所收集的系统资源性能和负载信息通告给系统中其它构件;③激发器,对监测器和节点分别进行“拉”或者“推”的采样动作;④推模式,是节点用来主动将采样信息“推”给监测器的通信接口;⑤拉模式,是监测器用来从各节点“拉”采样信息的通信接口;⑥库,是对监测器功能进行封装的轻量级库。

根据交互过程将负载监测分为周期性和事件驱动两种。周期性指被监测节点定期将资源性能和负载信息主动给监测构件,或者监测构件周期性地从其监测节点获取监测数据。事件驱动指只有在特定事件发生之后被监测对象才将自己的资源性能和负载信息交给监测构件,或者监测构件从被监测对象获取数据。将其两两组合:周期性推模式、周期性拉模式、事件驱动推模式、事件驱动拉模式,如表1所示[9]。

2.2监测过程

根据上述监测模式,将周期性拉模式与事件驱动推模式结合起来,能够根据运行环境和系统资源负载的变化,适应性地发布获取资源性能和负载信息。流程如图4所示。

其中,周期性拉模式是指在监测周期内监测器主动从被监测节点的采样器中获取数据;事件驱动推模式是指被监测节点超过滤阈值以后主动将采样器数据推给监测器。结合两种监测模式,以获取数据为故障类型诊断作准备。

3自适应故障诊断算法

针对收集数据进行分析判断,使其相对已有故障诊断算法具备更好的诊断效果。在第一次故障点判断时,采取邻居协作方式进行初步判断,避免造成误判而影响正常的服务器节点。在创建决策树之前,将采集数据进行筛选,保留能诊断出故障类型的数据,节省计算时间与降低空间复杂度。

3.1决策树模型改进

根据传统分类算法CART进行改良,建立决策树之前,将上文介绍的周期性拉模式与事件驱动推模式结合对节点进行实时监测。发现有可能故障时,对该节点进行隔离判断,进一步确认故障节点。若为故障点,则将监测数据进行筛选,最后使用筛选数据建立决策树得到故障类型,如图5所示。

(1)可疑点判断。与上个监测周期内监测数据进行比较,采取信息熵的思想进行数据预判断。信息熵表示某信息出现的概率,该信息越是确定,则信息熵越低,反之亦然。所以,信息熵可以用来确定信息不确定性程度。

定义1:设IS=(U,A,V,f)为信息系统[10]。其中:U表示非空有限集,称为论域;A为有限属性集;V=∪a∈AVa,Va为属性a的值域;f:U×A→V为信息函数。即对于x∈U,a∈A,有f(x,a)∈Va,任意属性子集B属于A决定一个二元补课区分关系IND(B),有:

IND(B)={(x,y)∈U×U|a∈B,f(x,a)=f(y,a)}(1)

U/IND(B)构成了U的一个划分,称为U上的一个知识,其中每个等价类称为一个知识粒。

定义2:设IS=(U,A,V,f)为信息系统,U/A={X1,X2,…Xm},则A的信息熵[11]定义为:

H(A)=-∑mi=1p(Xi)logp(Xi)(2)

其中,p(Xi)=|Xi|/|U|,i=1,2,3…m,|E|为合集E的基数。

信息熵的计算与特征值数量和具体数值没有关系,只需要得到每个分类类别对应的概率,用最大似然估计就可以求出当前状态下的信息熵[1214]。

(2)故障点确认。将信息熵较大点定义为可疑节点,并进行进一步判断。由于故障会随着服务器节点信息传递而传播,需要将可疑点进行隔离处理。云计算环境由服务器集群构成,若在监测过程中将每个可疑节点立即隔离,则易造成服务器集群瘫痪。因此,利用邻居协作的方式对可疑节点进一步确认。所谓邻居协作,是指将可疑点作为圆心,在R为半径的圆范围内进行基于邻居协作的预判断。原理在于服务器之间通信是信息的交换,此范围内的所有其它点都将与可疑点进行信息交换,如图7所示。邻居节点作为信息发出者,将发送信息给可疑点。如果可疑点在相应时间范围内将信息反馈给对应发出者,则该可疑点是误判点,释放误判点;反之则是故障点。当可疑点定义为故障点时,进行隔离,以防故障进一步扩大,造成更大损失。接下来对故障点的监测数据进行处理,用以诊断故障类型。

(3)故障诊断。针对已确定的故障点,进行决策树训练得到具体故障类型。

用数据预处理器处理监测数据,必须除去不需要和重复的数据,此时采取SVMREF算法。假定训练样本为(xi,yi),(i=1,…,l),最简单的SVM回归使用线性函数对样本点进行拟合。对于無法用线性函数拟合的问题,则将样本点映射到高维特征空间,在高维特征空间中建立线性模型f(x,k)=(k·O(x))+b,其中O(x)是将样本点映射到高维空间的非线性变换。SVM可以表示为:

max12‖ω‖2+C∑ii-1(ζi+ζi*)(3)

s.tyi-f(xi,ω)≤ε+ξi,i=1,…,l;

f(xi,k)-yi≤ε+ξi*,i=1,…,l;

ξi≥0,ξ*i≥0,i=1,…,l。

式(3)中:‖ω‖2代表与模型复杂度相关的因素;C>0为惩罚系数,控制对超出误差样本的惩罚程度;ε为不敏感函数,其取值大小影响支持向量的数目;ζi、ζi*为松弛变量,表示样本偏离ε不敏感区域的程度。

通过求解上述模型的拉格拉日对偶问题,得原问题的最优解:

f(x)=∑l[]i=1(αi-α*i)K(xi,xj)+b(4)

式(4)中:K(xi,xj)称为核函数,满足Mercer条件且K(xi,xj)=(φ(xi)φ(xj))。

经SVMREF算法计算,最终选择出6个特征,对于训练集和测试集的拟合效果相对较好,

4仿真实验与分析

4.1实验设计及数据

在cloudsim模拟器上初始化GridSim库,创建两个数据中心,分别用于保存正常数据和故障数据。创建虚拟机500个模拟服务器,并通过一个可以向服务器随机注入故障的软件注入故障,使用第三方监测工具进行实时监测。最后将500组数据随机分割成训练集(75%)和验证集(25%),训练集用来训练决策树,再用验证集验证决策树的准确率。通过大量数据训练,得到最后的故障类型判断树以及部分训练数据。

4.2实验结果与分析

根据实验数据训练得到判断树,如图8所示。

由图8可得,在确认为故障点之后,对采集到的数据进行决策判断,然后进行决策树训练,就可以得到该故障点的故障类型,方便故障处理后续工作。实验结果表明,本次实验可以有效判断故障节点并作出相应的故障类型判断。

4.3评价指标

算法意在提高故障诊断的及时性,因此,评价指标是从发现故障到诊断出故障结果的耗时。将文献[15]、[16]提出的故障诊断方式进行对比实验。实验环境相同,主要针对服务器无法启动、服务器频繁启动和服务器死机3种故障进行故障诊断,3种故障的注入次数和成功数量见表4。

可知,在实验数据增大的情况下,ASFD算法更具及时性。FTPS算法以数据传输开销换时间开销,增加了数据传输量,使得算法在数据集规模上更大。基于故障模型的故障诊断方式,在数据量小的情况下比较及时,定义了故障与故障特征的关系,将云计算环境中出现的故障与故障特征关联起来,但是当数据量不断增大时,算法计算过程和判断过程就较为复杂,相应地会增加故障诊断时间。

5结语

算法首先采用邻居节点作为预判断,将自适应监测方式加入研究内容中,更加贴近实际操作环境。其次,在诊断故障类型前进行两次初步判断,节省计算时间成本。在判断故障类型时,CART算法做了二次递归分割,构造出所需要的决策判断树。对比实验证明,在数据量不断增大的情况下,该故障检测方式可以更快地检测故障。但是,使用第三方监测导致故障检测成本增加,且监测节点增加导致数据量计算相应增加,会提高后续的检测工作难度,解决该问题是以后的研究目标。

参考文献参考文献:

[1]BAROLLI L,CHEN X,XHAFA F.Advances on cloud services and cloud computing[J].Concurrency & Computation Practice & Experience,2015,27(8):19851987.

[2]KHARI M, KUMAR M, VAISHAL I.Comprehensive study of cloud computing and related security issues[J].Big Data Analytics,2018(1):699707.

[3]劉永.云计算技术研究综述[J].软件导刊,2015,14(9):46.

[4]胡莹.云计算及其关键技术研究[J].软件导刊,2016,15(8):159161.

[5]饶翔,王怀民,陈振邦,等.云计算系统中基于伴随状态追踪的故障检测机制[J].计算机学报,2012,35(5):856870.

[6]王子勇,王焘,张文博,等.一种基于执行轨迹监测的微服务故障诊断方法[J].软件学报,2017,28(6):14351454.

[7]范贵生,虞慧群,陈丽琼,等.基于Petri网的服务组合故障诊断与处理[J].软件学报,2010,21(2):231247.

[8]左朝树.一种分布式并行服务器节点故障检测算法[J].电子科技大学学报,2007,36:119125.

[9]杨刚,随玉磊.面向云计算平台自适应资源监测方法[J].计算机工程与应用,2009,45(29):1417.

[10]WANG G Y.Granular computing based data mining in the views of rough set and fuzzy set[C].IEEE International Conference on Granular Computing,2010:401416.

[11]周薇,李筱菁.基于信息熵理论的综合评价方法[J].科学技术与工程,2010,10(23):58395843.

[12]严化宁,孙超.无线传感器网络中改进的最大似然估计定位算法[C].西安:上海声学学术会议,2009.

[13]敬明旻,肖莉,杨传书,等.基于最大似然估计与朴素贝叶斯的WSN故障检测[J].电子技术应用,2015,41(7):114117.

[14]马贤同,罗景青,刘兴华.基于最大似然估计的不可区分多目标定位法[J].计算机应用研究,2016,33(3):741743.

[15]王媛,王意洁,邓瑞鹏,等.云计算环境下的容错并行Skyline查询算法研究[J].计算机科学与探索,2011,5(9):804814.

[16]黄婕.基于云计算的故障检测方法研究与实现[D].昆明:昆明理工大学,2014.

责任编辑(责任编辑:何丽)

猜你喜欢
自适应决策树云计算
一种针对不均衡数据集的SVM决策树算法
决策树和随机森林方法在管理决策中的应用
电子节气门非线性控制策略
多天线波束成形的MIMO-OFDM跨层自适应资源分配
实验云:理论教学与实验教学深度融合的助推器
基于决策树的出租车乘客出行目的识别
基于肺癌CT的决策树模型在肺癌诊断中的应用