掌桥专利:专业的专利平台
掌桥专利
首页

一种基于th策略的数据中心网络故障诊断方法

文献发布时间:2023-06-19 19:28:50


一种基于th策略的数据中心网络故障诊断方法

技术领域

本发明涉及网络故障诊断技术领域,具体涉及一种基于th策略的数据中心网络故障诊断方法。

背景技术

数据中心网络作为云计算的关键基础设施,已被构建以提供日益流行的在线应用服务,如GFS、Bigtable和Dryad;在分布式系统中,数据中心网络构建了一个桥梁连接数据中心和大量的服务器。随着数据中心网络规模逐渐增大,网络中的结点和链路发生故障的情况是不可避免的,这就引起了人们对网络可靠性及可使用性等方面的关注。如何在网络中已有故障发生的情况下,正确识别并排除网络中的故障结点,使得网络依然能够正常运行是网络可靠性研究的重点。

解决这一问题的关键技术是故障诊断,即将网络中有故障的结点识别出来。系统级故障诊断就是利用系统中结点的计算、通信和处理能力来实施系统的自诊断。系统级故障诊断的基础是诊断模型的建构。诊断度是系统能够保证不可替换地被诊断出的故障处理器的最大数目,它在衡量网络的可靠性与容错性方面起着重要的作用。诊断度问题被广泛地应用于大型并行计算机系统和超大规模集成电路的设计与分析等相关问题。传统的诊断度是假定任意处理器的所有与之相邻的处理器能够同时发生故障,然而在大型多处理器系统中,任意处理器的所有与之相邻的处理器同时发生故障的概率是很小的。为此,人们对传统的诊断度概念加以推广,提出了条件诊断度、h-额外条件诊断度和t/h诊断度等,这些不同条件下的诊断度满足了数据中心网络在不同情况下进行高效故障诊断的需要,能诊断出更多的故障结点。

但是基于t/h策略的网络故障诊断算法往往会出现故障结点遗漏,无法检测出所有的故障结点,以及检测非最优路径,效率较低且故障检测的效果较差。

发明内容

为了解决上述故障检测效果差和效率低的问题,本发明的目的在于提供一种基于th策略的数据中心网络故障诊断方法,所采用的技术方案具体如下:

本发明一个实施例提供了一种基于th策略的数据中心网络故障诊断方法,该方法包括以下步骤:

以数据中心网络结构中任意结点为初始点,遍历数据中心网络结构中所有结点,通过结点与初始点之间的比较得到第一集合和第二集合;

基于数据中心网络结构获取结点数量最多的第一集合,若结点数量最多的第一集合中结点数量满足预设条件,结点数量最多的第一集合为无故障点集,第二集合为故障点集;

根据所述故障点集与所述无故障点集获取不确定集合,基于不确定集合中结点的数量获取所述不确定集合中所有故障结点。

优选的,所述通过结点与初始点之间的比较得到第一集合和第二集合的步骤,包括:

获取被遍历结点的邻接点,利用MM*将所述初始点、被遍历结点以及所述邻接点进行症状比较,若结果为0,则所述初始点、被遍历结点以及所述邻接点在第一集合中;

若结果为1,则所述初始点、被遍历结点以及所述邻接点被放入第二集合中。

优选的,所述基于数据中心网络结构获取结点数量最多的第一集合的步骤,包括:

以所述数据中心网络结构中任意一个结点进行遍历得到多个第一集合,统计每个第一集合中结点的数量,以选取包括结点数量最多的第一集合。

优选的,所述预设条件为:结点数量最多的第一集合中的结点数量大于(N-t-h),N表示数据中心网络结构上所有结点的数量;t和h分别为t/h策略中的常数。

优选的,所述根据所述故障点集与所述无故障点集获取不确定集合的步骤,包括:

选取数据中心网络结构上不在故障点集且不在无故障点集中的结点,选取出的所有结点构成不确定集合。

优选的,所述基于不确定集合中结点的数量获取所述不确定集合中所有故障结点的步骤,包括:

若不确定集合中结点的数量大于h,所述不确定集合中的结点均为无故障结点;

若故障点集中结点的数量为t-1,且所述不确定集合中结点数量大于0,在所述不确定集合中任选一个结点a与其他两个结点b和结点c进行症状比较,若结果为1,则所述不确定集合中除了结点a、结点b和结点c外均为无故障结点;

选取结点b在不确定集合中的邻接点w,以结点b与结点a和结点w进行症状比较,若结果为0,结点c为故障结点,不确定集合中除结点c之外均为无故障结点。

本发明具有如下有益效果:本发明实施例中通过对数据中心网络结构上所有的结点进行遍历,根据比较结果将所有的结点初步划分为两个集合分别为第一集合和第二集合,选取所有的第一集合中结点数量最多时的第一集合,若被选取出的第一集合的结点数量满足预设条件,则将此时被选取出的第一集合记为无故障点集,其对应的第二集合为故障点集,以完成所有结点的初步划分,减少了诊断分析过程的时间;进一步的,通过无故障点集和故障点集得到数据中心网络结构上的不确定集合,并统计不确定集合中结点的数量,根据不确定集合中结点的数量再次进行分析诊断得到所有的故障结点,提高了分析过程中的效率,减少了故障结点诊断的误差,准确性更高。

此外,本发明实施例在通过不确定集合中结点的数量进行故障结点诊断时,通过不确定集合中结点之间的症状比较结果,快速准确的定位到故障结点,提高网络的鲁棒性和容错性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案和优点,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。

图1为本发明一个实施例所提供的一种基于th策略的数据中心网络故障诊断方法流程图;

图2为本发明一个实施例所提供的一种BCCC(3,2)结构示意图;

图3为本发明一个实施例所提供的一种BCCC(2,2)结构示意图;

图4为本发明一个实施例所提供的一种BCCC(2,2)结构的最大连通分支示意图;

图5为本发明一个实施例所提供的一种BCCC(5,2)结构的最大连通分支示意图;

图6为本发明一个实施例所提供的一种BCCC(5,2)结构通过广度优先搜索得到的所有故障结点;

图7为本发明一个实施例所提供的一种BCCC(5,2)结构调用UDiag(C,UC,C)方法得到的所有故障结点;

图8为本发明一个实施例所提供的一种不同选择对应的平均执行时间。

具体实施方式

为了更进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明提出的一种基于th策略的数据中心网络故障诊断方法,其具体实施方式、结构、特征及其功效,详细说明如下。在下述说明中,不同的“一个实施例”或“另一个实施例”指的不一定是同一实施例。此外,一或多个实施例中的特定特征、结构、或特点可由任何合适形式组合。

除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。

下面结合附图具体的说明本发明所提供的一种基于th策略的数据中心网络故障诊断方法的具体方案。

请参阅图1,其示出了本发明一个实施例提供的一种基于th策略的数据中心网络故障诊断方法流程图,该方法包括以下步骤:

步骤S100,以数据中心网络结构中任意结点为初始点,遍历数据中心网络结构中所有结点,通过结点与初始点之间的比较得到第一集合和第二集合。

作为一个广泛使用的数据中心网络结构,BCCC具有很多优良的性质,例如使用廉价的商品交换机,只需要两个网络接口卡端口商品服务器等,且数据中心网络BCCC具有许多理想的特性,如高可扩展性、近等长并行路径和小直径;在BCCC中,基本单元是元素,n个服务器连接到一个n口交换机构成一个元素;将不同维度的BCCC记为BCCC(n,k),k表示维度,n表示每个元素通过交换机连接的服务器的数量;则对于BCCC(n,0),其是由一个元素和n台交换机简单的构建。

对于一个BCCC(n,k),其是由n个BCCC(n,k-1)和n

现有常用的诊断模型一般为MM*模型,是一个基于比较的模型,每个结点必须测试它的任意一对相邻的结点;系统G的比较任务一般被模型化为一个多重图,将其记为M(V(G),L),L是一个被标记的边集,一条被标记的边(u,v)w∈L是指结点u和v接收到w任务之后得到的结果同时被比较,也即是uw,vw∈E(G),将M(V(G),L)中所有比较结果的集合记为系统G的一个比较症状,用符号σ表示;若比较(x,y)z返回的结果是匹配的,则σ(x,y)z=0;否则,若返回的结果不匹配,则σ(x,y)z=1;如下表1所示,其为MM*模型下所有可能的比较结果:

表1

在已有诊断模型的基础上,需要选择诊断策略对数据中心网络进行诊断,本公开使用的是t/h诊断策略;t/h诊断策略是指系统G在故障集F存在的情况下产生了一个测试症状,其中故障结点的数目不超过t,所有的故障结点都可以被分离到一个最多包含h个无故障结点的集合F′中,且|F′|≤|F|+h;通过以往的实践证明,当误诊的无故障结点数目很少时,t/h诊断策略可以很大的提高数据中心网络的自我诊断能力,但根据t/h诊断策略进行故障结点诊断存在结点诊断错误并且时间复杂度高的问题,因此本实施例对t/h诊断的过程进行优化处理,使其能够快速准确地定位故障服务器,提高数据中心网络的鲁棒性和容错性。

具体的,以BCCC结构中的任意一个结点为初始点,利用BFS广度优先搜索算法进行结点的遍历,将初始点记为x,被遍历到的结点记为y,选取结点y和初始点x的一个邻接点z,且邻接点z与结点y不是同一个结点;利用上述的MM*模型对这三个结点进行症状比较,若σ(y,z)x=0,则将结点放入同一集合中,将此集合记为C;反之,若σ(y,z)x=1,将结点放入另一集合中,将此集合记为UC;若初始点x为无故障结点,则对应的集合C中均为无故障结点,集合UC中均为故障结点;反之,如果初始点x是故障结点,则集合C中均为故障结点,集合UC中均为无故障结点;为了便于后续对故障结点的诊断,将此步骤遍历得到集合的步骤记为C-UC(u)。

步骤S200,基于数据中心网络结构获取结点数量最多的第一集合,若结点数量最多的第一集合中结点数量满足预设条件,结点数量最多的第一集合为无故障点集,第二集合为故障点集。

由步骤S100中对BCCC结构中所有的结点遍历得到两个集合分别为集合C和集合UC;根据BCCC构造结构可得到,当故障结点的故障集|F|≤(h+1)(k-1)+n-1时,BCCC结构中存在一个至少包含N-|F|-h个结点的最大的连通分支,N表示BCCC结构上所有结点的数量。

从BCCC结构上任意一个结点调用步骤C-UC(u),根据C-UC(u)的遍历比较可得到结点数量最多的集合C,若此时结点数量最多的集合C中的结点数量大于(N-t-h),那么可判定集合C为BCCC结构中最大连通分支,则集合UC就为故障结点集合,以此判定出故障点集和非故障点集。

步骤S300,根据故障点集与无故障点集获取不确定集合,基于不确定集合中结点的数量获取不确定集合中所有故障结点。

由t/h诊断策略可知,其最多会有h个无故障结点被诊断为故障结点;构建一个不确定集合U,该不确定集合U是由BCCC结构上所有结点中不属于集合C和集合UC的结点构成,即U=N-C-UC;统计不确定集合U中结点的数量,若该不确定集合U中结点的数量大于h,则不确定集合U中的结点均为无故障结点;如果集合UC中结点的数量为t-1,且不确定集合U中结点的数量大于0,则调用UDiag方法,UDiag方法是指在不确定集合U中任意选择一个结点a去测试另外两个结点b和c,若诊断结果为1,则表明在结点a、结点b和结点c中有一个结点是故障结点,而此时在不确定集合U中,除了结点a、结点b和结点c之外的所有结点均为无故障结点。

进一步的,用结点b去测试结点a以及结点b在不确定集合U中的邻结点w,若诊断结果为0,则说明结点c为故障结点,此时不确定集合U中除了结点c之外,其他结点均为无故障结点,以此类推,利用不同的结点去测试,直至将所有结点症状都测试出来,也即是在满足最多有h个无故障结点被诊断为故障结点的情况下,将所有的故障结点都诊断出来。

作为一个优选示例,首先通过Python变成递归构造出BCCC结构,用利用NetworkX包将该BCCC结构用图实现,参阅图3,其示出了一种BCCC(2,2)结构示意图,在该结构上任选一个初始点执行C-UC(u)步骤;由于规定|F|≤(h+1)(k-1)+n,随机生成4个故障结点,分别为1110、1100、0012以及1011;调用C-UC(u)步骤N次,以得到最大连通分支,并通过广度优先搜索将结点放入集合C中,最大连通分支如图4所示,集合C=0000、0001、0002、0010、0101、1002、0011、0100、0102、1000、1001、0111、0110、1102、1010、1101、0112、1012以及1112;相应的集合UC=1110、1100、0012、1011,此时所有的故障结点均被诊断出来,不存在未诊断的结点。

作为另一个优选示例,选择BCCC(5,2)结构,令h=4,此时(h+1)(k-1)+n=10,随机生成的故障结点为0000、0001、0011、0002、0012、0021、0031、0022、0032、0040,图5是对该结构进行广度优先搜索得到的最大连通分支,图6是该结构调用C-UC(u)步骤N次,通过广度优先搜索得到故障结点,此时除了0000结点之外,其他故障结点均可以被诊断出来,满足|F|=(h+1)(k-1)+n以及|U|>0,调用UDiag(C,UC,C)方法,可将故障结点0000诊断出来,如图7,其示出了所有的故障结点,此时所有故障结点均被诊断出来,不存在未诊断的结点。

需要说明的是,在t/h-Diag方法中,首先调用N次C-UC(u)步骤,每次C-UC(u)步骤遍历结点u的所有邻居得到最大的连通分量,即遍历(N+k-1)次,因此N次的C-UC(u)步骤最多花费O(N(N+k-1))时间;其次,UDiag(C,UC,U)方法的时间复杂度为O(2|U|);最后,t/h-Diag方法的其他步骤耗时最多为O(N),因此,本实施例中故障诊断方法的总时间复杂度为O(N(N+k-1))+O(2|U|)+O(N)=O(N(N+k-1)+2|U|+N)=O(N(N+k-1))。

为了更加直观反映本实施例的效果,以下给出本方法的执行实验结果,实验平台是Intel酷睿i7-11800H、2.3GHz、16GB DRAM、64位Windows和x64处理器;使用的编程语言Python,令BCCC(n,k)作为目标网络,其中k=2,3≤n≤7,1≤h≤3,除此之外,在BCCC(n,k)中随机选取(h+1)(k-1)+n个故障结点,通过执行算法500次计算单次处理的平均时间,如图8所示,其为仿真实验中t/h-Diag方法的平均执行时间,选择k=2,3≤n≤6的情况,图8分别表示了h=1、h=2以及h=3的平均执行时间,由该图可知,当允许更多的正常结点为故障结点时,平均执行时间会增加,仿真结果与t/h-Diag方法的时间复杂度一致,且仿真结果表明,t/h-Diag方法的执行时间与n

参阅表2,其总结了仿真实验中t/h-Diag方法诊断的故障结点数量:

表2

根据表2可以看出,利用t/h-Diag方法能够有效地诊断出所有的故障结点,确保了故障结点诊断的准确性和有效性。

进一步的,参阅表3,其示出利用t/h-Diag方法进行500个仿真实验的其中一个实验结果,诊断出的故障结点的顺序即是利用t/h-Diag方法得到的顺序,具体为:

表3

综上所述,本发明实施例以数据中心网络结构中任意结点为初始点,通过遍历数据中心网络结构中所有结点,并将每个结点与初始点进行比较得到两个集合;根据每个两个集合中对应的结点获取最大连通分支,以得到其中的故障点集和无故障点集,进而根据数据中心网络结构上所有的结点以及故障点集和无故障点集中的结点获取不确定集合,基于不确定集合中所包含结点的数量确定所有的故障结点,提高了故障结点诊断的效率以及故障结点识别的准确性。

需要说明的是:上述本发明实施例先后顺序仅仅为了描述,不代表实施例的优劣。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。

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

相关技术
  • 一种数据中心网络中基于主机端流量调度的传输控制方法
  • 一种基于容错哈密顿圈的数据中心网络故障诊断方法
  • 一种基于强化学习的数据中心虚拟化网络故障诊断方法
技术分类

06120115928568