您现在的位置是:首页电子技术论文

省级科技论文发表大规模InfiniBand网络自学习的故障诊断方法

发布时间:2015-12-11 17:42:42更新时间:2015-12-11 17:45:57 1

  随着网络的发展,很多行业都开始用科技手段来储存信息了,数据中心是Internet的重要基础设施,是为用户提供数据存储、计算和传输的核心。本文是一篇省级科技论文发表范文,主要论述了大规模InfiniBand网络自学习的故障诊断方法。
  摘要:针对大规模数据中心网络中如何有效监控网络异常事件、发现网络性能瓶颈和潜在故障点等问题,在深入分析InfiniBand(IB)网络的特性,引入了特征选取策略和增量学习策略的基础上,提出了一种面向大规模IB网络增量学习的故障诊断方法IL_Bayes,该方法以贝叶斯分类方法为基础,加入增量学习机制,能够有效提高故障分类精度。在天河2真实的网络环境下,对算法的诊断精度和误诊率进行了验证,结果表明IL_Bayes算法具有较高的故障分类精度和较低的误诊率。

  关键词:数据中心,InfiniBand,故障诊断,贝叶斯分类,增量学习

  0引言

  随着互联网的飞速发展,特别是大数据时代的到来,数据中心在Web服务、搜索引擎、电子商务、社交网络、网络游戏及大规模集群计算等领域中的关键作用日益显现[1]。目前数据中心的网络规模日益庞大,互联的计算节点数量能达到100000以上的量级,而交换节点的数量也接近10000量级。数据中心性能需求表现为高带宽、低延迟、低主机开销和低存储开销等特点[2]。InfiniBand(以下简称IB)是目前数据中心互联的主流网络。2013 年 11 月公布的TOP500高性能计算机排名中,InfiniBand 是最常用的互连技术,在 TOP100 名单中占 48%,TOP200 占 48.5%,TOP300 占 44% 而在 TOP400 系统中则占 42.5%。2010年,Oracle通过在其数据仓库和数据处理平台Exadata中使用IB交换,处理性能提升10倍[3]。2010年,Google在其研究工作中采用IB和蝶形网络拓扑构建数据中心,网络功耗节约85%[4]。2011年,Microsoft基于IB组建高性能数据中心支持其Bing Maps应用,与传统基于以太网的架构相比节约80%的功耗和50%的成本[5]。Stanford课题组通过IB互联分布式DRAM实现了高性能数据中心存储系统[6]。

  在大规模数据中心网络中,网络的故障率呈指数增加,长期的实践[7]表明,故障率随着网络中节点数快速增加,例如,从服务节点故障的角度看,服务单点可靠性为99.99%,按照10000级的规模计算则网络故障率为63%,若单点可靠性为99.9%,则网络故障率几乎达到100%。大规模数据中心网络运行的应用通常对网络性能要求严格,需要管理者能更加实时、精确地掌握全网态势和端到端的通信性能,在网络性能下降之后及时发现和定位故障和网络拥塞, IB网络在大规模数据中心网络中的应用越来越广泛,研究面向大规模IB网络的故障诊断方法,保持和提高IB网络运行的健壮性,提高网络的修复能力,保障网络上关键任务的成功完成非常重要。

  1相关研究

  近年来针对网络故障的诊断方法已经进行了大量的研究。出现了以贝叶斯网络方法、数据挖掘方法等为主的故障诊断方法。文献[8]提出了一种基于拉格朗日和次梯度法的网络故障诊断方法(novel location approach based on Lagrangian Relaxation and Subgradient Method,LRSM),该方法对现在的二分图故障传播模型进行改进,加入虚假故障因素,在改进二分图模型的基础上提出了故障定位问题的01最优化描述,并利用拉格朗日松弛法和次梯度法对问题进行求解,有效提高了分类检测精度和减少了诊断时间。文献[9]提出了一种基于谱图理论的故障诊断算法(Alarm Correlation Algorithm based on Spectral Graph theory,ACASG),建立了时序告警关联数据模型,将告警数据看作一个高维空间,具有相关特性的告警是隐含在该空间中的局部结构,通过谱图理论发现高维数据空间中潜在的低维映射结构,通过分析低维空间中点结构之间的相似性,实现告警数据的可视化显示,该方法不仅可以发现告警的相关性,而且还可以通过分析谱图的变化预测定位网络中发生的故障。文献[10]针对网络层和数据链路层,为简化故障决策算法、降低误报率,提出了一种基于粗糙神经网络的故障诊断算法 (Rough Artificial Neural Network,RANN)和分层故障诊断思想,通过神经网络来逼近故障诊断这种映射关系,实现对故障的分类,利用正域的概念,去除冗余属性,求取条件属性集对于决策故障属性集的简化,同时结合分层分布优化的思想,将网络故障分类,每一类故障诊断系统含有多个反向传播(Back Propagation, BP)子网络,通过粗糙集理论逐层分类,构成一个多级复合神经网络系统,实现故障分类。文献[11]基于PMC(PreparataMetzeChien)模型,提出了一种适用于当代数据中心网络的分层式诊断(Hierarchical Fault Diagnosis, HFD)算法,由网络拓扑结构生成涵盖所有单元的最小生成树Xtree,按其路径组织多次测试。根据测试结果,求出各基本单元组的故障概率,依此将系统中所有单元组划分为存在故障概率较大的“相对故障单元组”和存在故障概率非常小的“相对正常单元组”两类。文献[12]提出了基于贝叶斯征兆解释度的链路故障诊断方法进行网络的故障诊断。

  由于大规模数据中心网络本身的复杂性、不规律性的特征,网络故障分类处理过程涉及到多方面的综合知识,想获得良好的分类效果,不仅仅是单纯的分类算法问题,必须运用多种策略加以解决。目前网络故障分类方法的研究存在以下几点不足:

  1) 训练样本参差不齐,分类方法首先要进行训练学习,其训练过程需要一定数量的训练样本。而在网络系统中包含着大量的不确定因素,故障症状与故障源之间可能存在非线性映射关系,同一种故障往往有不同的表现,同一症状又往往是几种故障共同作用的结果,多个相关故障可能同时发生。因此,选择越多的训练样本,样本的代表性越强,训练效果才会越好,分类性能才能越高。一般情况下,人们比较容易得到一些大致的样本类别,比如用户数据报协议(User Datagram Protocol, UDP)报文、传输控制协议(Transmission Control Protocol, TCP)报文和Internet控制报文协议(Internet Control Message Protocol, ICMP)报文等等,然而这些训练样本集中样本的质量往往是参差不齐的,有些样本的表现模棱两可,有些甚至是错误的,若直接在这些样本上进行学习,将使分类的效果大大降低。可以想象对存在大量不准确的分类样本地学习是很难获得良好的分类效果。而且在实际使用过程中,大量高质量的训练样本集合的获得是非常困难的,通过人工的方法对训练样本进行筛选也是不现实的。   2) 没有统一的特征选取标准,构造分类器的关键是选择合适的特征构成特征向量。网络系统中故障发生时的网络表现有着很大的差异,代表不同故障的特征也不尽相同,选择什么样的特征来构成特征向量,特征向量的长度取多大,都一定程度上影响着网络管理平台下故障分类的精度。以简单贝叶斯分类方法为例,我们知道简单贝叶斯方法具有简单和分类精度高的特点,但是如果随意使用训练样本中任意单位作为特征向量的一维,不仅满足不了简单贝叶斯方法对特征独立性的要求,而且会极大地影响分类精度。

  3) 学习能力弱,对待分类数据进行分类的阶段是一个开环处理过程,分类系统在经过一次训练之后,将再也无法从实际的分类处理过程中获得更新信息,这样缺乏学习能力的分类系统在实际使用过程中不能根据实际情况进行分类模型的调整,从而导致了分类系统随着运行时间的延长和范围的扩大,性能逐渐降低,这也是制约分类系统实用化的重要因素。本文提出的大规模IB网络自学习的故障诊断方法IL_Bayes有以下创新:

  1)对现有的训练样本进行必要的预处理,从初始的训练样本集中去除噪声样本,选取高质量的样本构造分类器,实现良好的分类效果。

  2)我们对不同的故障类型选取不同的特征向量,构成特征向量的特征分量要尽可能地反映故障的特征,获得较高的故障分类精度。

  3)通过增加对分类结果的学习能力,使分类系统不断自我完善和更新,可以应对实际大规模网络的复杂情况。

  2大规模IB网络自学习的故障诊断方法

  2.1相关描述

  首先给出本文所提故障诊断方法的相关定义。

  定义1C={C1,C2,…,Cm}是一个故障类集合,其中C1,C2,…,Cm分别是该故障类集合的故障类。

  定义2d=(x1,x2,…,xn)为新故障样本,即待分类故障,其中x1,x2,…,xn是新样本d的n个属性。

  定义3f(xj)为故障d中属性的评估函数,在P(xj|Ci)f(xj)中, f(xj)越小,属性xj在分类器中的作用越小。

  贝叶斯分类方法起源于贝叶斯统计学,是以概率论为基础的分类模型,它为不确定知识的表达提供了自然、直观的方法,是目前非精确知识表达与推理领域最有效的理论模型。贝叶斯分类方法主要有以下3个规则[12]:

  1)贝叶斯规则。

  P(B|A)=P(A|B)P(B)P(A)(1)

  式中:P(B)被称为先验概率,即在A状态未知时B发生的概率; P(B|A)为后验概率,表示A状态已知时B发生的概率。贝叶斯规则允许在两个方向上进行概率推理。

  2)独立性规则。

  如果P(A|B)=P(A|B,C),则给定变量B,变量A和变量C是独立的。即在B已知的情况下,变量C不能改变变量A的概率。

  3)链式规则。

  在P(A|B)中,A具有n个属性,即A={x1,x2,…,xn},则:

  P(A|B)=P((x1,x2,…,xn)|B)=∏ni=1P(xi|B)(2

  2.2大规模IB网络自学习的故障诊断方法IL_Bayes

  设故障训练集样本有m类,记为C={C1,C2,…,Cm}, 对于给定的新样本d,其属于Ci类的条件概率是P(d|Ci)。根据贝叶斯定理,Ci类的后验概率为P(Ci|d),即:

  P(Ci|d)=P(d|Ci)P(Ci)P(d)(3)

  其中:P(Ci)、P(d)对于所有的类均为常数,可以忽略,则式(3)可以简化为:

  P(Ci|d)∝P(d|Ci)(4

  贝叶斯分类器将新的故障样本d归于类Ci的依据就是要求出极大后验假设,即:

  P(Ci|d)=argmax{P(Cj|d)P(Cj)}; j=1,2,…,m(5

  新故障d由故障的不同属性所组成,即d=(x1,x2,…,xn),n是d中的属性个数,根据朴素贝叶斯分类器的独立性假设,有:

  P(d|Ci)=P((x1,x2,…,xn)|Ci)=∏nj=1P(xj|Ci) (6)

  式中P(xj|Ci)表示分配器预测属性xj在类Ci中发生的概率。

  P(xj|Ci)=(1+T1(xj,Ci))/|q|+∑mw=1T1(xj,Cw)

  其中:|q|表示属性总数,T1(xj,Ci)表示属性xj在Ci类的所有类中出现的频数之和。

  构造每个故障的向量,用n维属性向量表示A={x1: f(x1),…,xn: f(xn)},xi(i=1,2,…,n)为故障属性,f(xj)为属性的评估函数,则式(4)可以改进为:

  P(Ci|d)∝∏nj=1P(xj|Ci)f(xj)(7

  为未分类故障d分类就是计算P(Ci|d),未分类故障d属于类别Ci P(Ci|d)>P(Cj|d),i≠j,由式(7)可知,计算P(Ci|d)只需要计算未分类故障d的n个属性xj在类Ci中的概率即可。

  基于上述分析,本文提出面向大规模IB网络增量学习的故障诊断方法IL_Bayes,在利用贝叶斯分类器处理数据的过程中,难免会遇到训练集类别里面不存在的其他类,对于这种情况处理过程就会发生错误,如果在贝叶斯分类器上建立自学习机制,对于处理过程中产生错误的数据,根据数据特征建立新的类别,就可以有效解决这个问题。本方法分为3个阶段,即构造和训练分类器阶段、故障分类处理阶段和再学习阶段。

  1)构造和训练分类器阶段。

  依次读取训练样本集中的每个故障告警信息,提取故障属性xj。根据专家知识和经验,人为地对这训练集样本进行故障分类,记为C={C1,C2,…,Cm};

  ①对样本集的每个故障和该故障的属性,分别计算∏nj=1P(xj|Ci)f(xj),根据计算结果判断未分配故障d属于哪个故障类,即Ci P(Ci|d)>P(Cj|d), i≠j;   ②对于没有匹配上的故障告警信息,则重复步骤①,建立新的故障类,并加到故障类集合C中,重复步骤②;

  ③训练结束,将所分的故障类C添加到分类器中以便处理故障数据。

  2)故障告警数据分类处理阶段。

  ①当网络发生异常时,读取待处理故障告警信息d的属性xi,计算∏nj=1P(xj|Ci)f(xj),根据计算结果判断未分配故障d属于哪个分类,即Ci P(Ci|d)>P(Cj|d), i≠j;

  ②对于处理错误的告警信息,即故障类集合C中不存在此类故障的分类,则转入再学习阶段。

  3)再学习阶段。

  ①读取故障处理过程中出现错误的告警信息,提取故障属性xj。

  ②根据故障告警信息的属性值,建立新的故障类,并加到故障集C中,重复故障告警数据处理阶段步骤①;

  3实验分析

  为了验证本文方法,构建了一个基于InfiniBand的高性能计算机互联结构,其网络拓扑为胖树结构,如图1所示。

  其中存在12个边缘接入的汇聚交换节点(Aggregate Switch),每个接入交换节点支持18台服务器接入。二级交换采用全相连结构,每个汇聚交换节点通过3个连接和每个核心交换节(Core Switch)互联,从而构成了非阻塞的网络结构。链路均采用QDR(40Gb/s)传输速率。

  所有服务器均运行Red Hat Linux 6.1 x86 64位操作系统,采用开源OFED(Open Fabrics Enterprise Distribution)1.5.4驱动和管理HCA设备,通过其中的OpenSM模块提供了对网络的管理。

  OpenSM是InfiniBand的子网管理软件,用来管理集群系统中的成百上千个节点,默认的工作模式是发现IB的子网拓扑,初始化子网,然后定期扫描子网的变化。OpenSM运行的日志文件存放在/var/log/message和/var/log/opensm.log中,第1个文件一般存放的是主要的事件日志,第2个文件存放的是系统运行错误的详细情况。

  具体内容包括:告警时间、线程id、日志等级和日志具体内容。下面对日志等级进行详细说明:OpenSM的日志共分为8个等级,具体如下:

  0x01 �CERROR(error message

  0x02 �CINFO (basic message, low volume

  0x04 �CVERBOSE(interesting stuff, mosderate volume

  0x08 �CDEBUG(diagnostic, high volume

  0x10 �CFUNCS(function entry/exit, very high volume

  0x20 �CFRAMES(dumps all SMP and GMP frames

  0x40 �CROUTING(dump FDB routing information

  0x80 �Ccurrently unused

  在网络运行过程中日志记录的比较常见故障类型如表1所示。

  故障类型描述

  osm_get_port_by_mad_addr当前SM不能识别一些查找请求的LID

  pi_rcv_check_and_fix_lid

  1.SM质疑一些结束端口的PortInfo和基于LID 0xffff的接收数据

  2.SM还未配置的端口,IBA 规则不能识别其LID

  3.日志消息属于某些调试信息

  osm_pr_rcv_process1.当前SM不能识别被SA PathRecord请求的端口

  2.由于SM没有作出反应导致结束端口堆栈查询超时

  3.上述两个错误显示在子网改变期间查询,结束端口堆栈应该重试查询

  log_trap_info1.流量控制监视程序计数器在监视时超时,SMA交换机发出紧急trap

  2.流量控制更新错误

  3.可能是由于在OperationalVLs上的对等端口不匹配

  log_rcv_cb_error1.可能是新的MulticastFDBTop字段选项出问题

  2.从SM流入交换机的初始路径出问题

  3.交换机的固件版本不相符

  4.在SM中禁止了这些流

  sm_mad_ctrl_send_err_cb1.SM没有收到从SMA的NodeInfo查询响应

  2.检查VL15的下行计数器

  sm_mad_ctrl_send_err_cb1.Mellanox需要FDR10的专有SM MAD支持

  2.可能是使用了旧版本的Mellanox固件,如果可能,需要检查版本和更新

  3.替代方法是关闭opensm配置文件中的SM经由FDR10的FDR10支持

  perfmgr_mad_send_err_callbackPMA没有回应PerfMgr的请求(获取或设置)

  Perfmgr_send_mad当发送PerfMgtMAD到PMA时,PerfMgt没有在“suspended”状态

  osm_get_port_by_mad_addr当前SM不能识别一些查找请求的LID

  pi_rcv_check_and_fix_lid1.SM质疑一些结束端口的PortInfo和基于LID 0xffff的接收数据

  2.SM还未配置的端口,IBA 规则不能识别其LID   3.日志消息属于某些调试信息

  osm_pr_rcv_process1.当前SM不能识别被SA PathRecord请求的端口

  2.由于SM没有作出反应导致结束端口堆栈查询超时

  3.上述两个错误显示在子网改变期间查询,结束端口堆栈应该重试查询
省级科技论文发表

  在一个故障发生的时候,诊断算法应该能够尽可能准确地定位故障,按照某种故障是否发生以及是否正确诊断出故障,故障诊断算法的精确性表现为4个方面,如表2所示。

  故障诊断的精度由公式(A+D)/(A+B+C+D)计算,其中A+B=100%,C+D=100%。在实际的诊断中,人们常常更加关心A类和C类的精度,A类精度代表了一个诊断方法的实际能力,一个故障发生后是否能够被诊断方法识别和定位,C类精度标志着一个诊断系统的可靠性。

  本文选取1500个网络事件信息作为待分类故障样本集,根据上述分析,故障样本集大致可以分为15个故障类,将其中的x个事件作为训练集,1500-x个事件作为验证集,将IL_Bayes算法与文献[12]中提出的基于模糊概率神经网络的故障分类算法(Fuzzy Probabilistic Neural Network Classifier, FPNNC)在故障A类精度(即诊断精度)和C类精度(即误诊率)两方面进行了比较,结果如图2和图3所示。

  由图2可以看出,两个分类算法的分类精度随着训练集的增大而增加,由于对故障进行了增量学习,IL_Bayes算法比FPNNC算法的分类精度高。

  图3可以看出两个算法的故障误诊率随着训练集的增大而降低,增量再学习机制使得IL_Bayes方法比FPNNC方法的故障误诊率更低。

  通过上述实验证明,IL_Bayes方法具有较高的分类精度和较低的故障误诊率,在一定程度上有效地解决了IB网络的故障分类问题,为IB网络故障的诊断提供了一个较为有效的方法,同时在IL_Bayes方法中引入了再学习机制,能对分类器进行修正,不断完善故障类集合,达到了故障分类性能优化的目的。

  4结语

  本文针对大规模数据中心网络中如何有效监控网络异常事件、发现网络性能瓶颈和潜在故障点,为网络性能优化提供支持,深入分析IB网络的特性,引入了特征选取策略和增量学习策略,提出了一种面向大规模IB网络增量学习的故障诊断方法IL_Bayes,在天河2真实的网络环境,并对算法的诊断精度和误诊率进行了验证。

  本文研究了贝叶斯理论在故障诊断中的应用,进一步研究高效率的贝叶斯推理算法和学习算法将是提高故障诊断决策方法效率的关键因素和重要研究内容。

  参考文献:

  [1]DENG G, GONG Z, WANG H. Characteristics research on modern data center network[J]. Journal of Computer Research and Development, 2014, 51(2):395-407.(邓罡,龚正虎,王宏. 现代数据中心网络特征研究[J]. 计算机研究与发展,2014,51(2): 395-407.)

  [2]SHEN L. Research and implementation of InfiniBand network interface [D]. Changsha: National University of Defense Technology, 2010: 1-3.(沈力. InfiniBand网络接口的研究与实现[D]. 长沙:国防科学技术大学,2010: 1-3.)
  省级科技论文发表期刊推荐《电脑知识与技术杂志》创刊于1994年,是经国家批准的旬刊杂志。《电脑知识与技术》是一本面向计算机全行业的综合性学术刊物。编委委员均来自国内各著名高校的教授和博士生导师,他们是我国计算机科学领域方面的专家、学者和权威人士;稿源来自全国各高等院校,相关专业研究机构以及国内大型信息通讯、软件研发企业设置的专业研究所。学术交流版刊登的论文均有2名国内同行专家审稿通过。邮发代号:26-188。


转载请注明来自:http://www.yueqikan.com/dianzijishulw/55711.html