基于拨测数据的数据中心网络故障节点诊断方法及系统与流程

文档序号:16149439发布日期:2018-12-05 17:14阅读:259来源:国知局

本发明属于监督,监控或测试装置技术领域,尤其涉及一种基于拨测数据的数据中心网络故障节点诊断方法及系统。

背景技术

目前,业内常用的现有技术是这样的:随着大数据时代的到来,云计算需求的不断增加使得数据中心网络规模不断扩大。如今,数据中心网络包含数十万台通过网络接口卡(nic),交换机和路由器,电缆和光纤连接的服务器,这些服务器大部分是分布式的并且具有高流量。在大型系统中,检测和定位故障对于网络管理系统通过故障恢复机制恢复网络通信非常重要。尽管有许多研究都致力于故障诊断策略,仍有如下所述的问题需要解决。1)诊断复杂性:除了为故障定位带来更高的时间和空间复杂度外,由于动态,不完整和不确定的信息,网络规模的增加也会导致更复杂的故障诊断。因此,有效降低故障诊断的探测次数和探测效率十分有意义的。2)网络负载增加:数据中心可以大大缩短算法执行时间,但也会导致控制器开销的可能性增加。一种可能的解决方案是应用参与策略来控制监视器的数量,而另一种策略是提高探测数据的有效性以减少数据量。现有的网络故障诊断技术主要分为三类:被动故障探测,主动故障探测和基于网络日志的故障模式识别方法。被动故障探测方法通过在网络中部署监控代理来监控网络的实时性能,被动获取网络成员的状态信息。一种在网络中的特定链路上放置被动监测设备的方法,这些代理通过在给定时间内便利网络中的所有链路来监测网络的成员的当前状态,但是这种方法有在大规模网络中生成冗余监测代理的缺点。一种使用依赖图的被动故障诊断方法,但是这些算法一次只能检测出有限数量的故障节点,不适用于大规模网络的环境。贝叶斯置信网络(bbn)也被广泛应用于故障探测技术。bbn将网络结构模型化为有向无环图,然后通过分析端到端可观察症状来尝试找到失败的节点,故障推理在大规模网络中有较高的时间复杂度,使得故障管理系统不能及时有效的恢复网络的通信。主动故障诊断通常使用探测器来检测服务器的状况,这些选定的探针被传输以获得端到端的统计数据,如包丢失率,延迟和吞吐量等。然后控制器收集这些统计信息以获取进一步的信息对于主动探测推理,设计合适有效的探测策略非常重要。一种使用自适应探测的故障诊断系统架构。大多数基于探针的技术包含三个组件:探测站选择,探测器选择和故障推理。但是这些方法在大规模网络中受到流量开销的限制。一种减少网络流量开销的分阶段测试方法,在每个阶段只使用一小组探针检测到网络的一小部分区域。但如何找到合理布置探针台和探针台失效的问题还有待进一步探讨。一种探针台选择算法,以最小化探针台的数量并使探针台对抗故障具有鲁棒性。然而,如何放置探测站来监测故障站的问题仍然没有解决。随着大数据技术的发展,基于日志数据的故障诊断技术引起了广泛的关注。基于网络系统日志的技术通常建立在阈值算法的基础上,该算法首先基于网络管理人员的经验为网络不同的检测性能设置适当的阈值,然后通过将实际值与默认阈值进行比较来检测故障。这种技术很简单但存在两个明显的缺点:1)它的阈值是根据经验选择的;2)不分析低于阈值的数据,导致与网络状况有关的一些详细信息可能会被遗漏。用于主动故障诊断的新型分析体系,不仅考虑错误和下降等异常日志的关键字,还尝试发现突发性故障的模式。但是,基于数据的算法在数据预处理(如数据提取,数据清理和异常处理)方面有较高的时间复杂度。

综上所述,现有技术存在的问题是:

(1)被动故障探测方法在大规模网络中会产生冗余监测代理,导致网络中存在许多无用的探测包,当网络规模较大、业务繁忙时,冗余的探测包会影响网络的正常业务,甚至影响网络故障诊断结果,被动故障诊断不适用于大规模网络的环境。因此在大规模网络中,一方面可采用主动故障监测技术,有效降低网络中的冗余探测包。另一方面则需要提高探测包的有效性,降低进行故障诊断探测的探针的基数。

(2)主动故障诊断在大规模网络中受到流量开销的限制,需要在网络中放置合理有效的探测基站,探测基站的位置和数量直接影响故障诊断结果的准确性,但是现有的研究并没有探测基站和数量的问题。而且在大规模网络中,设计覆盖网络的探针路径有很大的时间复杂度,当网络拓扑发生变化时还需要重新计算,不适用于动态网络结构。

(3)在基于网络系统日志的技术中判定阈值是根据经验选择的;一方面由于该技术不分析低于阈值的数据,会导致与网络状况有关的一些详细信息可能会被遗漏。当网络状态发生不可预知的突变时,经验阈值无法准确判断网络的当前状态,导致网络故障管理系统无法获取网络中的故障信息。而分析所有故障数据方面则存在着时间复杂度较大,冗余信息较多的问题。

解决上述技术问题的难度和意义:在大规模数据中心网络中,被动故障检测技术在实时性和有效性方面存在不足,而主动故障检测技术则存在如何选择探测基站和探测路径的问题。对于大规模复杂网络,解决发送探针一次遍历网络路径的问题是np-hard问题,每次网络变化都需要重新计算,对于网络拓扑重构和优化等都存在很大的局限性,因此寻找一种新的合理有效的故障诊断模式是在工程上是十分有必要的。另一方面,在判断网络节点是否故障时,传统的依赖人工经验的方法也存在很大的局限性,因此建立合适的模型针对不同的网络结构选择合适的阈值也是十分具有研究意义的。



技术实现要素:

针对现有技术存在的问题,本发明提供了一种基于拨测数据的数据中心网络故障节点诊断方法及系统。

本发明是这样实现的,一种基于拨测数据的数据中心网络故障节点诊断方法,所述基于拨测数据的数据中心网络故障节点诊断方法依据现有的故障探测信息生成动态广度优先生成树作为节点间的探测路径;基于给定的先验概率p分析拨测数据来初步确定网络成员的故障概率;通过分析概率分配函数选择一个合理的阈值来识别故障节点,将可疑节点集分类为故障节点集和正常节点集。

进一步,所述基于拨测数据的数据中心网络故障节点诊断方法给定一个动态生成树,任意一对相邻节点之间的测试状态si由两个指示变量s={rij,rji}组成,其中rij(rji)是节点i(j)测试节点j(i)的结果;rij=0意味着节点i将节点j标识为正常节点,rij=1则意味着节点j被节点i识别为故障状态;si组成的矩阵称为症状矩阵s。

进一步,所述基于拨测数据的数据中心网络故障节点诊断方法具体包括:动态生成树,故障概率评估和故障推理;

动态生成树搜索依据上次的探测结果动态地生成探测树;

故障概率评估量化每个可疑节点的故障概率;

故障推理将绝对故障节点放入故障组;根据故障概率表选择合适的阈值,将可疑节点划分为相对故障组和相对正常组。

进一步,所述动态生成树搜索基于启发式广度优先搜索算法,其中n是网络中的一组节点,nf是正常节点集合,f是故障节点集合;

步骤一,f←thelasttimedetectionresult;

步骤二,turnto步骤三;else,turnto步骤四;

步骤三,findthebreadth-firstspanningtreebyclassicalalgorithm;

步骤四,nf←n-f,usenfastheinitialsearchingnodes。

进一步,所述故障概率评估每个节点的故障概率根据故障概率表获得,采用决策函数ψc决定一次探测中每个节点的最终故障概率;

f(nj)=max{eij|eij∈e}(nj∈n)

得到每个节点失效的唯一概率;通过故障推理的确定最后的故障节点。

进一步,所述故障推理当节点的故障概率大于0.5时认为该节点为故障节点。

本发明的另一目的在于提供一种实现所述基于拨测数据的数据中心网络故障节点诊断方法的基于拨测数据的数据中心网络故障节点诊断系统,所述基于拨测数据的数据中心网络故障节点诊断系统包括:

优先生成树模块,用于依据现有的故障探测信息生成动态广度优先生成树作为节点间的探测路径;

故障概率确定模块,用于基于给定的先验概率p分析拨测数据来初步确定网络成员的故障概率;

分类模块,用于通过分析概率分配函数选择一个合理的阈值来识别故障节点,将可疑节点集分类为故障节点集和正常节点集。

本发明的另一目的在于提供一种应用所述基于拨测数据的数据中心网络故障节点诊断方法的数据中心网络系统。

综上所述,本发明的优点及积极效果为:采用点对点的探测技术,避免了在网络中选择探测基站数量和放置探测基站的问题,只要网络中存在可靠的数据处理中心即可。探测路径方面,结合数据中心网络中节点度较大的特点,通过广度优先算法生成广度优先搜索路径来获取拨测数据,降低因为网络拓扑重构和优化引起的计算开销。结合概率计算设计有效的概率分配函数,在概率分配函数的基础上选择合理的判断阈值,有效避免了人为经验的影响。实验结果表明,与hfd算法相比,hbfd算法在检测数量和诊断精度方面都有更好的性能。在不同规模的网络拓扑中都能在较低的探测次数下准确识别网络中的故障节点。是一种更适用于大规模数据中心网络中的故障诊断技术。

附图说明

图1是本发明实施例提供的基于拨测数据的数据中心网络故障节点诊断方法流程图。

图2是本发明实施例提供的基于拨测数据的数据中心网络故障节点诊断方法实现流程图。

图3是本发明实施例提供的故障探测示意图。

图4是本发明实施例提供的hbfd算法与hfd算法对比结果示意图。

图5是本发明实施例提供的故障粒度影响示意图。

图6是本发明实施例提供的网络规模影响示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

数据中心网络在规模和结构复杂性方面的快速增长使得网络管理系统面临着越来越大的挑战。由于网络故障(节点故障或链路故障)是不可避免的,找到快速诊断网络故障的方法从而能够有效恢复网络通信功能已成为学术界和工业界的重要研究课题。本发明快速有效监测数据中心网络的节点故障,在启发式广度优先诊断算法的基础上通过1)生成动态搜索树,2)分析拨测数据和3)选择合理的阈值确定故障节点。仿真结果表明,hbfd算法可以有效地诊断节点故障,并且在保证诊断准确性的情况下有效地降低了检测次数和误警率。

如图1所示,本发明实施例提供的基于拨测数据的数据中心网络故障节点诊断方法包括以下步骤:

s101:依据现有的故障探测信息生成动态广度优先生成树作为节点间的探测路径;

s102:基于给定的先验概率p分析拨测数据来初步确定网络成员的故障概率;

s103:通过分析概率分配函数选择一个合理的阈值来识别故障节点,将可疑节点集分类为故障节点集和正常节点集。

hbf主要包括三个部分:动态生成树

下面结合附图对本发明的应用原理做进一步的描述。

1、算法概述

本发明通过无向图来反映现实世界的网络,由一组节点n组成,这些节点由一组链路l连接起来,数据中心网络具有高连通性的特点。考虑到当前的技术水平完全允许网络中的单元相互通信;本发明通过相邻节点之间相互测试来获得节点的实时状态信息。该检测方法首先设计算法用于选择快速有效的检测路径,以达到节省诊断时间和资源消耗的目的。因此,考虑到数据中心网络高连通性的特点,本发明首先依据现有的故障探测信息生成动态广度优先生成树作为节点间的探测路径,然后基于给定的先验概率p分析拨测数据来初步确定网络成员的故障概率,最后通过分析概率分配函数选择一个合理的阈值来识别故障节点,将可疑节点集分类为故障节点集和正常节点集。

hbfd主要包括三个部分:动态生成树(dsts),故障概率评估(fpe)和故障推理(fr)。下面简要介绍每个过程的主要思想。

定义1:给定一个动态生成树,任意一对相邻节点之间的测试状态si(也称为症状)由两个指示变量s={rij,rji}组成,其中rij(rji)是节点i(j)测试节点j(i)的结果。这里,rij=0意味着节点i将节点j标识为正常节点,rij=1则意味着节点j被节点i识别为故障状态。si组成的矩阵称为症状矩阵s。

动态生成树搜索(dsts)依据上次的探测结果动态地生成探测树。因此hbfd可以尽可能地避免使用故障节点探测其他可疑节点,有效将死了探测结果的不确定性(例如,当故障节点i探测其他节点时,症状结果存在将故障节点标记为正常状态的可能,是的探测结果有较大的误警率)。

故障概率评估(fpe)用来量化每个可疑节点的故障概率。如图3所示,节点n的故障概率不仅取决于其先验概率(故障节点正确诊断的概率),还与其他节点的诊断结果相关。fpe根据故障概率表获得每个节点的初步检测故障概率,然后通过决策函数计算节点的最终故障概率。最终故障概率越高,节点n越有可能发生故障。

最后,所有可疑节点的故障概率由故障推理(fr)部分做进一步的分析。首先,fr将绝对故障节点(其故障概率等于1)放入故障组。然后,fr根据故障概率表选择合适的阈值,将可疑节点划分为相对故障组(f)和相对正常组(nf)。

考虑到hbfd算法对于不同结构的数据中心网络的适用性,本发明考虑随机生成连通的网络拓扑。本发明还假定网络中不存在恶意节点(以概率1生成错误信息),并且至少有一个可信任的管理控制器用于收集拨号测试数据和执行hbfd算法。

2、启发式故障诊断

本发明的完全消除了任何特定网络拓扑的假设,尽管对于不同的网络拓扑结构可能存在特定的优化。本发明也不考虑恶意节点和链路故障,并认为在不同的数据中心网络拓扑(例如vl2,ficoon和dcell)中部署hbfd算法是可行的。尽管hbfd是一个逻辑单一实体,但它仍然可以通过分析分布式存储的拨号测试数据以分布式的方式实现。本发明还假设网络中至少有一个可信的管理控制器(ac)用于收集和分析拨号测试数据。

2.1问题分析

故障是造成网络通信问题根源的网络事件。当设备不能用于路由或转发流量时会发生节点故障。节点故障可能是由许多因素引起的,例如,由于硬件错误导致设备断电维修或崩溃,网络流量过大时丢包或超时响应,所有这些故障都可能导致检测结果的不确定。

主动探测将一个或多个数据包发送到网络中的节点,以检测每个节点的实时状态。根据pmc模型定义,一组测试节点会产生6个不同的探测结果:1)两个正常节点的测试结果为两个节点均处于正常工作状态(例如,rij=0,rji=0);2)当正常节点检测探测故障节点时,结果必定是该节点为故障节点(例如,rij=0,rji=1);3)-6)无论被测节点的状态如何,故障节点的探测结是不确定的(例如,r={0,1})。本发明们将故障节点的行为定义为症状(例如,r=1)。图3给出两个简单的例子来说明由网络中故障节点引起探测不确定的原因。

例1:在图3-a中,{a,b,c}是网络的三个节点,假设节点a和c是两个故障节点,节点b是正常节点。那么{a,b}的探测结果是集合{(0,1),(1,1)}中的任意一个,而{b,c}的结果则是集合{(1,0),(1,1)}的一个。当症状组为{(0,1),(1,0)}时,认为节点b处于良好状态;但当症状组为{(1,1),(1,1)}时,认为节点b是故障节点,其余组合则不足以确定节点b的状况。

例2:在图3-b中,当节点a发生故障时,无论节点{b,c,d}的状态如何,这四个节点的状态都是不确定的。

定义2:故障节点根据给定的概率获取正确的检测结果,定义该概率先验概率p。

作为给定的先验概率p,对于故障节点ni,当它探测正常节点时,它以概率p得到rij=0的症状,并且以概率1-p得到rij=1的症状。

在给定网络的情况下,当网络状态(例如,连接性,时间延迟和分组丢失率)相对较好时,先验概率p较高,从而拨号测试数据将更有效。探测结果当p=1时是完全准确的,但它只存在于理想情况下。

2.2动态生成树搜索

为了检测节点故障,结合数据中心网络高连通性的特点,本发明结合当前的探测信息生成广度优先生成树作为节点相互探测的路径。即使引入先验概率来量化探测结果的不确定性,故障节点的检测结果也仍然是不确定的,一次探测得到的拨测数据不足以找到所有故障节点。一种称为hfd的点对点故障诊断算法,通过多次检测发现大多数故障节点,该算法没有合理利用每次检测后得到的状态信息来降低每次探测结果的不确定性,使得探测次数较大,不适用于大规模的数据中心网络。

数据中心网络具有高连通性的特点。因此,对于大规模数据中心网络,使用广度优先搜索(bfs)算法来查找生成树可以有效提高寻找探测路径的速度。bfs也可以有效避免单一诊断而引起误警率较高的情况,如图3所示。基于bfs,本发明设计了一种如算法1所示的启发式广度优先搜索算法(hbfs),其中n是网络中的一组节点,nf是正常节点集合,f是故障节点集合。

启发式广度优先搜索算法动态地使用前一次探测结果中包含的绝对故障节点(故障概率为1)的信息来找到避免使用绝对故障节点探测其他节点的新生成树。通过减少探测结果和通信次数的不确定性,hbfs算法有效提高了检测的准确性和探测速度。

2.3故障概率评估

对于随机生成的网络拓扑结构,将拨测结果0定义为该节点处于症状状态,结果1则表示被探测节点为故障节点。然后得到表1所示的探测结果及其对应的故障概率。

表1:故障概率表

每个节点的故障概率可以根据故障概率表获得。在广度优先生成树搜索路径的基础上,每个节点对应的探测结果是不确定的。因此,本发明在故障概率的基础上设计决策函数(df)ψc来决定一次探测中每个节点的最终故障概率。

通过df可以得到每个节点失效的唯一概率。最后通过故障推理的确定最后的故障节点。

2.4故障推理

得到每个节点的最终故障概率后,首先将绝对故障节点(例如,ψc(·)=1)放入故障节点集合(f),然后根据故障概率表选择两个合适的阈值来确定其他故障节点。对于表1中的四种探测结果,有如下所述的分析:

1)num.1的结果表示互相探测的节点处于相同状态。当先验概率p≥0.3时,这两个节点的故障概率都低于0.5,则认为两个节点都处于正常状态。当先验概率p<0.3时,故障概率高于0.5。这可能会引起决策函数将较高的故障概率分配给正常的探测节点,也就意味着存在恶意节点提供虚假信息来干扰故障诊断过程。

2)num.2和num.3的探测结果表明,检测节点之间存在绝对故障节点(即检测故障概率为1),无论先验概率p值如何,另一个节点的故障概率都很低,因此认为故障概率为1的节点为绝对故障节点,另一个节点处于正常状态。

3)num.4的结果显示概率总是高于0.5,互测节点中至少包含一个节点故障,但无法确定,因此将两个互测节点都标记为可疑节点进行下一次探测作进一步的确定。

综上所述,当节点的故障概率大于0.5时认为该节点为故障节点,先验概率p<0.3。在下一次探测时结合上一次探测结果的分析,有效避免采用故障节点来同时探测多个其他网络成员,降低探测结果的不确定性以提高探测速度。

下面结合仿真对本发明的应用效果作详细的描述。

1、作为基于数据中心网络拨号测试数据的主动式点对点故障诊断算法,hbfd可灵活部署并与现有路由协议集成,以提高故障诊断的准确性,降低监测成本。仿真结果和本发明提出的算法的性能。

评估指标包括:(1)探测次数(dn);(2)故障粒度(fg);(3)正确诊断率(cdr);(4)误警率(fdr)。探测次数用于衡量故障探测过程中节点之间获取拨测数据的通信次数。dn值越低的算法越好。pf表示真正的故障节点。故障粒度是网络规模与网络规模的比值。

正确的诊断率和错误的诊断率是衡量故障诊断算法准确性的两个评估指标,写成:

2、仿真结果

考虑到hbfd算法的适用性,生成网络拓扑并随机选择故障节点,仿真结果如图4-图6所示,hbfd算法的性能将从三个方面进行分析。1)hbfd的优点与分层故障诊断(hfd)算法相比,hbfd算法的优势如图4所示。在包含5000个节点的网络拓扑结构中,先验概率值为0.3,检测粒度的范围为[0.05,0.5]。从图中可以明显看出hbfd算法很好地改善了检测次数和正确诊断率。这也意味着,避免使用故障节点检测其他节点可以有效提高诊断的准确性,并有效地减少了无效通信。但是有一个缺点,hbfd可能会导致非常低的如图4所示的误警率,将在下面分析造成误警率的原因。

2)故障粒度的影响

如图5所示,将fg设置在[0.1,0.4]的范围内。诊断的准确性仍然非常稳定。但随着故障粒度的增加,误警率略有增加。这是因为更高的故障粒度指示网络中的更多故障节点。hbfs无法找到没有故障节点的动态生成树。如表1中所述,第四种症状以较高的概率出现。因此,有几个正常节点被确定为故障节点。

3)网络规模的影响

给出不同的网络大小范围[1000,5000]和相同的故障粒度0.5,如图6所示。很显然,正确的诊断率在不同规模的网络中是稳定的,并且随着网络规模的增加,错误检测率也在下降。这些结果表明,hbfd在不同规模的网络中具有很强的鲁棒性,并且虚假诊断率较低。

本发明的基于拨测数据的点对点故障诊断算法来检测和定位最可能的故障节点;与hfd算法相比,hbfd算法在检测数量和诊断精度方面都有更好的性能。在不同规模的网络拓扑中都能在较低的探测次数下准确识别网络中的故障节点。在后续的工作中,一方面继续分析造成算法误警率的根本原因,尝试消除hbfd算法的误警率;另一方面考虑结合更真实的网络拓扑结构,将hbfd算法与不同的传输协议相结合。为了诊断网络中的恶意节点或其他类型的故障,将新方法引入hbfd也具有一定的价值。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

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