一种SDN网络的故障节点探测系统的制作方法

文档序号:11253750阅读:966来源:国知局
一种SDN网络的故障节点探测系统的制造方法与工艺
本发明属于故障节点探测系统,具体涉及sdn网络的故障节点探测系统。
背景技术
:在sdn网络(softwaredefinednetwork,即软件定义网络)实现了数据转发和控制分离,是一种数据控制分离、软件可编程的网络架构,其采用集中式的控制平面和分布式的转发平面,控制平面和转发平面相互分离,控制平面利用南向接口协议对转发平面上的网络设备进行集中式控制,并通过开放北向接口为网络提供灵活的可编程能力。sdn网络不可避免地存在节点故障失效的问题,目前sdn网络技术比较新颖,关于sdn网络的故障诊断,尤其是在虚拟私有云环境下的sdn网络故障诊断的研究很少。如何进行sdn网络的节点故障诊断,及时进行故障恢复,保证sdn网络所承载业务的连贯性,是sdn网络故障诊断需要解决的主要问题。技术实现要素:本发明所要解决的技术问题是针对现有技术中存在的上述不足,提供一种通过部署尽可能少的探针实现了对sdn网络的状态采集,然后使用贝叶斯网络对网络状态进行分析,实现了sdn网络的故障检测的sdn网络的故障节点探测系统。一种sdn网络的故障节点探测系统,包括获取单元、计算单元、定位单元和输出单元,其中:所述获取单元,用于获取网络中节点的状态,并将所述节点的状态传输至所述计算单元,在所述获取单元中:在网络中部分所述节点设置所述探针,并通过所述探针所属所述节点的状态集合得到所述探针所经过的路径的所述节点的状态的稀疏矩阵;所述计算单元,用于接收所述节点的状态,计算网络中所述节点的影响因子以及所述节点在路径中有故障的概率;所述定位单元,用于根据所述计算单元中所述节点在路径中有故障的概率,找出所述节点的故障概率达到最大值时的条件;所述输出单元,用于输出所有概率达到最大值的所述节点集合,即为计算得到的故障节点集合。所述计算单元包括影响因子计算模块,在所述影响因子计算模块中,所述探针所属所述节点的影响因子的计算公式为:if(v0)=αfin(v0)+βfout(v0)其中:v为网络中某个特定的节点,fin(v0)为所述节点的内部影响因子,α为内部影响系数;fout(v0)为所述节点的外部影响因子,β为外部影响系数,sn为所述节点影响的业务数,li为所述节点对某一个业务的影响程度所量化的数值,k(v)为所述节点的内部属性值。所述计算单元还包括节点概率计算模块,在所述节点概率计算模块中,所述节点的故障概率的计算公式为:p(v1,v2,...vi,...vn,t1,t2,...tj,...tm)=p(t1|pa(t1))p(t2|pa(t2))...p(tm|pa(tm))p(v1)p(v2)...p(vn)其中:p(v1,v2,...vi,...vn,t1,t2,...tj,...tm)为所有所述节点的条件概率,表征所述节点的故障对整个网络带来的影响;(pa(tj)表示所述探针tj经过的所有链路,当所述探针tj中有节点故障时,p(tj=1|pa(tj))=1,p(tj=0|pa(tj))=0,当所述探针tj无故障的时,p(tj=1|pa(tj))=0,p(tj=0|pa(tj))=1;tj=1表示正常,tj=0表示故障;vi为第i个所述节点,tj为第j条所述探针,n为所述节点个数,m为所述探针条数(m<n)。所述计算单元还包括补全模块,所述补全模块用于在计算出所述探针所属所述节点的影响因子之后、计算所述节点的故障概率之前还包括步骤:根据所述稀疏矩阵,采用最大边缘化矩阵算法获得包括所有节点的状态的完全矩阵。综上所述,本发明相对现有技术具有如下优点:本发明的sdn网络的故障节点探测系统,利用贝叶斯网络在sdn网络中部署探针实现对故障节点探测,能有效解决当前sdn网络中出现故障节点时,由于网络的结构庞大,不易发现其故障点,并将故障点定位出来的问题。附图说明图1为本发明实施例中sdn网络的故障节点探测系统的结构示意图。图2为本发明实施例中网元连接图的示意图。图3为本发明实施例中mmmf算法原理的示意图。图4为本发明实施例中节点与探针间的关系的示意图。图5为本发明实施例中sdn网络的故障节点探测方法的流程图。标号说明1-获取单元;2-计算单元;3-定位单元;4-输出单元。具体实施方式为使本领域技术人员更好地理解本发明的技术方案,下面结合附图和具体实施方式对本发明sdn网络的故障节点探测方法及其故障节点探测系统作进一步详细描述。一种sdn网络的故障节点探测系统,如图1所示,其包括获取单元1、计算单元2、定位单元3和输出单元4,其中:获取单元1,用于获取网络中节点的状态,并将节点的状态传输至计算单元2;计算单元2,用于接收节点的状态,计算网络中节点的影响因子以及节点在路径中有故障的概率;定位单元3,用于根据计算单元2中节点在路径中有故障的概率,找出节点的故障概率达到最大值时的条件;输出单元4,用于输出所有概率达到最大值的节点集合,即为计算得到的故障节点集合。该sdn网络的故障节点探测系统中,获取单元1、计算单元2、定位单元3分别对应sdn网络的故障节点探测方法中的探针信息的获取、探针获取的信息的计算、故障节点的定位三个步骤。获取单元1以多个探针的形式出现,通过在sdn网络中的多个节点部署探针,用来获取网络中节点的状态,同时将获取到的信息传送给计算单元2。在获取单元1中:在网络中部分节点设置探针,并通过探针所属节点的状态集合得到探针所经过的路径的节点的状态的稀疏矩阵。计算单元2将探针获取到的信息进行计算,计算出网络中的节点影响因子,以及节点在路径中发生故障的概率。计算单元2包括影响因子计算模块,在影响因子计算模块中,探针所属节点的影响因子的计算公式为:if(v0)=αfin(v0)+βfout(v0)其中:v为网络中某个特定的节点,fin(v0)为节点的内部影响因子,α为内部影响系数;fout(v0)为节点的外部影响因子,β为外部影响系数,sn为节点影响的业务数,li为节点对某一个业务的影响程度所量化的数值,k(v)为节点的内部属性值。计算单元2包括节点概率计算模块,在节点概率计算模块中,节点的故障概率的计算公式为:p(v1,v2,...vi,...vn,t1,t2,...tj,...tm)=p(t1|pa(t1))p(t2|pa(t2))...p(tm|pa(tm))p(v1)p(v2)...p(vn)其中:p(v1,v2,...vi,...vn,t1,t2,...tj,...tm)为所有节点的条件概率,表征节点的故障对整个网络带来的影响;(pa(tj)表示探针tj经过的所有链路,当探针tj中有节点故障时,p(tj=1|pa(tj))=1,p(tj=0|pa(tj))=0,当探针tj无故障的时,p(tj=1|pa(tj))=0,p(tj=0|pa(tj))=1;tj=1表示正常,tj=0表示故障;vi为第i个节点,tj为第j条探针,n为节点个数,m为探针条数(m<n)。优选的是,计算单元2还包括补全模块,补全模块用于在计算出探针所属节点的影响因子之后、计算节点的故障概率之前还包括步骤:根据稀疏矩阵,采用最大边缘化矩阵算法获得包括所有节点的状态的完全矩阵。以下结合图5所示的基于探针的故障节点定位算法的流程图,说明基于影响因子的sdn网络的故障节点探测方法:步骤1:在节点设置探针,并获取探针对节点的状态探测结果。在该步骤中,为了减少网络的负载,首先向sdn网络中发送少量的探针,在实际应用中,探针可以是部署到sdn网络中各个节点上的一段程序,可以获得节点的状态信息;然后利用端到端的探针预测技术预测出剩下的探针的结果,随机选出连接探针的设备节点。这里,无需对网络中的所有节点发送探针,探针部署过程中首先对sdn网络中随机部署一部分探针,然后采用端到端的预测技术探测出剩下的探针的部署位置。随机选择设备节点部署探针,其他节点与已经部署到的探针进行连接。该步骤通过探针的预测技术,发送多个探针,但并不完全发送至所有节点而只是发送其中极少的一部分节点,只要部署的探针能够连接起来覆盖所有的网络设备即可,从而可以保证用少量的探针完成对sdn网络的检测。探针部署在节点上,通过已发送的探针集合a可以得到一个稀疏矩阵,稀疏矩阵中的每一个数值表示探针所经过的路径是否正常。获得的方式为:这个稀疏矩阵中元素所在的行对应于已发送的探针经过的路径的起始节点,列对应于已发送的探针经过的路径的终节点,从而形成探针之间的连接路径,返回结果表示两个节点之间连接的链路是否连通。若这个探针返回的结果为正常(表示探针所在两节点之间相连接),则对应稀疏矩阵中元素的值为-1;若这个探针返回的结果为故障,则对应稀疏矩阵中元素的值为1;没有发送的探针,则对应稀疏矩阵中元素的值为0,也就是说稀疏矩阵中的元素由1、0、-1组成。步骤2:计算出探针所属节点的影响因子。探针所属的节点在整个sdn网络中存在一个对全网的影响因子。在该步骤中,利用公式(1)-公式(3)计算出每个节点的影响因子。对于sdn网络来说,其业务走向更加固定,同时对于重要的业务遵循n-1原则,即每个重要业务都会有不止一条路径,业务的重要程度可以用可选的路径数量多少来表征,如图2所示的网元连接图是以网络中的一小部分节点连接作为网络模型。首先,在图2中的网络模型做业务定义:由于所设的模型规模较小,所以限制了业务的数量,现在规定在模型中共有5个业务,即s1-s5。sdn业务具有自身的特点和类型,为了区别这些业务的承载方式和内容,并将关注的重点具体化,便于进行基于承载业务资源的侧面的分析,这里以对八个节点设置探针进行示例,将业务s1-s5用资源取交集的形式来表示,用户数学公式描述如下:s1:x1∩x2∩x5s2:x3∩x2∩x6s3:x6∩x7∩x8s4:x4∩x6∩x7s5:x3∩x6∩x8接下来,分析业务的受影响度:由于业务走向固定,各种故障对业务的影响程度是不同的,为定量标注业务受影响程度,为业务影响报告提供影响程度的标准,结合实际运行中的可能情况,根据假设的问题模型,可得出业务受影响程度如表一所示:表一业务受影响度节点是以x来表示,l作为影响程度标识,在计算过程中以v作为相应的变量,根据业务流程分析每一个节点故障对于业务的影响程度,结果如表二所示:表二节点影响度v1v2v3v4v5v6v7v8s1l4l3l1l2l4l2l1l1s2l2l3l4l2l2l4l1l1s3l1l1l1l1l1l4l3l4s4l1l2l1l4l2l3l4l1s5l2l2l4l2l2l3l3l4然后,计算节点的影响因子:在网元设备发生故障的情况下,可以用客观的方法来度量sdn网络设备对业务的影响。节点故障不仅会直接影响业务,还会间接的影响相关节点,利用复杂网络理论,考虑节点的内部属性和外部属性,综合来求节点的影响因子。在sdn网络中,内部属性为节点故障对于网络拓扑中其他节点的影响,包括节点的度、介数、紧密度;外部属性为节点故障对各个业务的综合影响程度。通过量化这些指标,得到每个节点影响因子的数值。为了与内部属性对应,首先量化外部属性,对于每一个等级规定一个数值,如表三所示:表三节点故障对于业务的综合影响程度l1l2l3l400.30.71表三中的影响程度等级数值只是示例,事实上应该可以任意定义为0-1之间的任何数值。节点故障影响值:其中:v为sdn网络中某个特定的节点,sn为节点影响的业务数,li为节点对某一个业务的影响程度所量化的数值(即表三中的数值),根据sdn网络的节点与业务的关系特征,节点故障综合影响值即对于每一个业务影响的平均值,也是sdn网络中一个节点的外部影响力。sdn网络记为g,其中有节点v和节点之间的链路e,于是有g=(v,e)中,节点v0的影响因子定义如下:if(v0)=αfin(v0)+βfout(v0)(2)其中,fin(v0)为节点的内部影响因子,α为内部影响系数;fout(v0)为节点的外部影响因子,β为外部影响系数,且满足α+β=1,其中,α=、β两个值可以根据实际情况和网络结构人为设定,二者相加等于1即可,内部影响较大则内部影响系数值高一点;外部影响较大,则外部影响系数值高一点,可以随机设定而不做限定。由于这里较多考虑是节点对于外部业务带来的影响,故外部影响因子的比重较大,将β取相对较大的值,较好的经验取值为α=0.2,β=0.8。fout(v0)为外部影响因子,即为公式(1)计算得到的节点的故障影响值cd(v0),fin(v0)为内部影响因子,通过下述的公式(3)计算得到,由此可以根据公式(2)计算出节点影响因子if的数值。这里,其中:k(v)为节点的内部属性值,可取度数、介数、紧密度等节点自身属性,由于在公式(2)的规定中α的值较小,所以具体选取哪一个内部属性值对结果的影响并不大;max(k(v))为归一化因子,为了消除网络规模对数值的影响,使得指标统一在[0,1]区间内。步骤3:根据每条探针对节点的状态的探测结果、以及探针所属节点走过的路径,计算节点的故障概率。探针部署到节点之后,可以互相连接,涉及多条链路。在该步骤中,输入每条探针对所属节点的状态的探测结果,在上述节点的影响因子的基础上,利用贝叶斯网络模型,将节点的影响因子运用到概率公式中来定位网络中出现故障的节点。即根据每条探针的探测结果、探针走过的路径和节点的故障概率,分别计算在公式p(t1|pa(t1))p(t2|pa(t2))...p(tm|pa(tm))p(v1)p(v2)...p(vn)的数值。步骤4:找出步骤3中节点的故障概率达到最大值时的条件。在该步骤中,找出p(v1,v2,...vi,...vn,t1,t2,...tj,...tm)值在最大值时的条件,即网络中某个特定的节点v的取值(为0或1),其中:0表示节点故障,1表示节点正常。mmmf算法即最大边缘化矩阵算法(maximum-marginma-trixfactorization),如图3所示为mmmf算法原理示意图。mmmf算法应用于本实施例的sdn网络的故障节点探测方法中时,根据探针的探测结果得到的稀疏矩阵(该矩阵是一个不完全矩阵)得到一个完全矩阵,该计算过程也就是将上述稀疏矩阵中所有元素为0的探针均预测出来,即预测路径中未设置探针的节点的状态。mmmf是一个同步学习特征向量v和系数向量u的过程,将原始矩阵y分解为低范数的矩阵。低秩约束实质上就是约束特征空间的维数,对y的每一列进行预测其实就是一个在低维空间上的预测任务。利用矩阵中元素之间的非独立性计算出一个特征向量v和一个系数向量u,然后利用这两个向量的乘积得到一个完全矩阵,而这个完全矩阵即为不完全矩阵的近似估计,以此来表示所有探针的探测情况。应该理解的是,部署的探针的状态也不需要都探测并返回,只要返回路径涉及到的探针的状态即可。在预测出矩阵后即可利用贝叶斯网络模型进行故障节点的定位。探针所探测到的信息,实际上是故障发生后经过各种实体相互作用的而产生的外在表现,所以此时网络故障定位就体现出其不确定的特点。而贝叶斯网络具有对不确定性条件环境下,对因果关系诊断的优势。同时贝叶斯网采用图的形式去表达变量的联合概率分布及其条件独立性,能够大大降低故障定贝叶斯网络模型将网络中的节点和探测联系起来,形成一个二层直接有向图。如图4所示为节点与探针间的关系,其中网络中的设备节点视为父节点,探针视为子节点,探针的结果依赖于其父节点的结果,当且仅当其所有的父节点正确时该探针的状态才为正确,通过计算每个节点的故障概率可以定位路径中最有可能出现故障的节点。根据待定位的参数(包括所有网络节点的先验概率及所有探针的结果)计算所有网络节点的条件概率,即计算p(v1,v2,...vi,...vn,t1,t2,...tj,...tm)的概率,其中vi为第i个网络节点,tj为第j条探针,n为网络节点个数,m为探针条数(m<n)。p(v1,v2,...vi,...vn,t1,t2,...tj,...tm)的计算公式为:p(v1,v2,...vi,...vn,t1,t2,...tj,...tm)=p(t1|pa(t1))p(t2|pa(t2))...p(tm|pa(tm))p(v1)p(v2)...p(vn)其中:(1)p(v1,v2,...vi,...vn,t1,t2,...tj,...tm)为所有节点的条件概率,表征节点故障对整个网络带来的影响;(2)pa(tj)表示探针tj经过的所有链路,当探针tj中有节点故障时,p(tj=1|pa(tj))=1,p(tj=0|pa(tj))=0,无故障的时候p(tj=1|pa(tj))=0,p(tj=0|pa(tj))=1;tj=1表示正常,tj=0表示故障。(3)先验概率是根据以往经验和分析得到的网络节点出故障的概率,为一个估计值,不同sdn网络系统中的取值不一样。在本实施例的模型中,节点出故障的先验概率值为0.1,节点无故障时的先验概率值p(xi)=0.9,因此,有故障时节点的故障概率为p(xi)=0.1*if(xi),即考虑节点的失效概率与影响因子的乘积,因为贝叶斯网络的特性,所以采用先验概率*影响因子的方法,得到的即时后验概率,更能准确定位故障节点。这里,失效概率即为先验概率,故障概率即为后验概率=先验概率*影响因子。(4)利用公式p(v1,v2,...,vn,t1,t2,...,tm)=p(vx)...p(vy)*0.9n-k,其中k是网络中出现的节点的故障数,vx...vy是故障节点,p(vx)...p(vy)对应相应节点的故障概率,针对上述的节点,k为从0-8的数,取k从0-8的不同取值,可以算出不同的p(v1,v2,...vi,...vn,t1,t2,...tj,...tm),算出来所有情况下的值,取其最大时的条件,判断出v的取值。把未设置探针的可能存在故障的节点也预测出来,即v=0的故障节点的个数,然后计算在每个节点v=0和v=1情况下的概率。计算出所有情况下的p(v1,v2,...vi,...vn,t1,t2,...tj,...tm)值后,得到p(v1,v2,...vi,...vn,t1,t2,...tj,...tm)值在最大值时的条件,即v的取值(为0或1)。这里应该理解的是,为保证计算效率,本实施例以仅计算探针涉及到的节点的影响因子为例,此时理论上效率应该是最高的。但是,并不排除将所有节点的影响因子都计算出来的方式,这里不做限定。步骤5:输出所有v=0的节点集合,即为计算得到的故障节点集合。由于网络中节点故障会导致业务路径中断,采用探针收集节点信息,然后利用贝叶斯网络计算出故障概率。在该步骤中,所有v=0的节点集合即为故障节点集合。可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1