当前位置: 首页 > 专利查询>南京大学专利>正文

一种数据驱动的SDN控制器故障自动诊断系统及方法技术方案

技术编号:39317925 阅读:11 留言:0更新日期:2023-11-12 16:00
本发明专利技术公开了一种数据驱动的SDN控制器故障自动诊断系统及方法。系统包括数据采集模块、数据预处理模块、离线训练模块和在线故障诊断器。通过采集SDN控制器产生的行为数据,历史的行为数据用于离线训练和评估故障分类器,实时采集到的行为数据经过数据预处理模块的处理,极端异常值通过快速反馈机制直接报告故障,其余数据输入由离线训练模块生成的故障诊断器中,由LSTM神经网络提取输入数据中的特征,得出在线故障诊断结果。整个故障诊断流程除了极少数极端情况外,不需要人工制定诊断规则,大大减少了通过人力进行控制器故障诊断的成本。本发明专利技术可以应用于数据中心网络中SDN控制器的自动化故障管理,提高诊断效率。提高诊断效率。提高诊断效率。

【技术实现步骤摘要】
一种数据驱动的SDN控制器故障自动诊断系统及方法


[0001]本专利技术属于软件定义网络(Software Defined Network,SDN)与人工智能的交叉领域,尤其是涉及数据驱动的SDN控制器的故障自动诊断系统及方法。

技术介绍

[0002]通过将决定数据包传输路径的控制平面与实际执行数据包传输的数据转发平面分离,并引入逻辑上集中的控制器单元,软件定义网络可以提高网络和设备管理的灵活性,利于优化网络资源和实现网络的快速调整。SDN的控制平面是监督和管理网络的关键组件。它利用南向数据协议(例如OpenFlow协议)来完成对数据平面中的流量的控制,并向外部应用程序或其他高层事务(例如NFV编排器)开放北向数据接口(NBI)以控制网络。SDN控制器掌握着SDN网络的全局视野,既要负责上层应用层的决策执行,又要为下层转发机制制定转发规则,是整个SDN网络的核心组件,一旦SDN控制器出现故障,整个SDN网络都可能会因此而瘫痪。广泛应用SDN的数据中心网络对于网络稳定性十分注重,对于控制器故障的容忍性极低。
[0003]不幸的是,作为一个时刻面对复杂网络动态的软件系统,SDN控制器发生故障的概率并不低。逻辑设计缺陷和代码实现错误是SDN控制器软件中最常见的故障类别。这些故障可能导致各种软件错误或网络错误,例如,数据争用,空指针异常和错误的流表项分配,这类故障会使得在某些特定环境下控制器进程挂起甚至异常终止,导致控制器单元发生崩溃。由于控制器通常部署在运算能力和I/O能力有限的普通服务器上,因此SDN控制器在实际应用中也会出现运行时性能故障。例如,如果工作负载超出SDN控制器可以承受的范围,那么控制器的服务性能将出现下降。这些过载故障可能导致控制器的功能服务异常,整个SDN网络也可能会随之瘫痪。
[0004]在复杂动态的实际场景中,SDN控制器发生故障可以认为是不可避免的。当SDN控制器发生故障后,网络管理员不得不通过大量的运行日志数据人工诊断控制器故障,然后根据诊断出的故障类别和具体信息采取相应的对策。这时,故障的恢复时间就取决于故障检测和故障诊断的效率,以及网络管理员的能力水平。随着SDN技术在云计算数据中心网络中的广泛应用,SDN网络的规模不断扩大,人工诊断难以满足企业对于运维效率和成本的需求。因此,自动、及时而准确的故障检测和诊断方法将有助于提高SDN控制器故障管理的效率。但是,现有的与SDN控制器有关的故障诊断工作集中在基于规则和基于策略的方法上,这些方法时间复杂度高且在生产环境中实现困难,而且只能实现对某一时刻最明显的故障的检测,无法做到当SDN控制器同时出现多种故障时,检测出所有故障。
[0005]近年来,得到广泛发展的机器学习技术为这个问题带来了新的思路。机器学习是一类算法的统称,这些算法企图从大量已知的历史数据中挖掘出其中隐含的规律,并将规律用于对未来数据的预测或者归类,更具体的说,机器学习可以看作是寻找一个函数,输入是样本数据,输出是期望的结果,只是这个函数过于复杂,以至于形式化表达过于困难,但可以通过对大量数据进行训练,使得寻找到的函数其准确率能自动逼近理想状态下的函
数。因此,用于训练的数据对机器学习技术具有十分重要的作用。通常情况下,数据可提供维度越高,数量越多,对于同样的机器学习技术来说其训练出的模型越准确。而SDN控制器在生产环境中通常配备详细的多维度的行为日志数据来记录其运行状态,这些数据为应用机器学习技术提供了可能性。

技术实现思路

[0006]本专利技术提出一种数据驱动的SDN控制器故障诊断系统,旨在解决SDN控制器现有的故障诊断方法存在的效率低,复杂度高,生产环境实现困难,只能一次发现单一故障等问题。
[0007]为了实现上述专利技术目的,本专利技术采用如下技术方案:
[0008]一种数据驱动的SDN控制器故障诊断系统,包括:
[0009]数据采集模块:负责从控制器所在的服务器上采集控制器产生的行为数据,行为数据包括控制器所在环境状态、控制器自身进程状态、北向服务统计数据、南向服务统计数据,并以由应用场景需求设定的采集频率,将采集到的行为数据发送给数据预处理模块并同步储存到历史数据库;
[0010]数据预处理模块:负责对数据采集模块发送过来的原始行为数据进行处理,对于数据中出现的空缺值,依据出现的空缺值对应维度和上下文情况,对空缺值进行填充处理或者直接报告显著故障;对原始数据空缺值进行处理后,再对数据进行归一化处理,消除数据特征值不同量级的影响;将连续时间内的数据通过滑动窗口聚合成控制器行为数据的时间序列样本,输入故障诊断模块;
[0011]故障诊断模块:包括一个故障归类器,该故障归类器基于堆叠长短时记忆网络LSTM构建神经网络,所述神经网络对输入的时间序列样本提取时序变化特征,进行在线诊断,并将诊断出的所有故障类别作为诊断结果进行输出。
[0012]根据本专利技术的实施方式,所述数据预处理模块依据出现的空缺值对应维度和上下文情况,对空缺值进行填充处理或者直接报告显著故障实现如下:
[0013]为原始数据的各个维度设定连续空缺值计数器及其阈值;
[0014]每次接收到来自数据采集模块的数据后,将数据加入暂存队列;
[0015]判断数据中是否含有空缺值,如果有,则空缺值所在的维度对应的连续空缺值计数器计数加1;
[0016]如果接收到的数据某一维度的连续空缺值计数器数值到达设定的阈值,则认为SDN控制器所在环境已经发生故障,根据计数器的情况直接汇报故障,出现连续空缺值的相关数据直接丢弃,不进行后续处理,计数器不清零;
[0017]如果接收到的数据某一维度数据没有空缺,连续空缺值计数器清零,并向前追溯到最近一个无空缺的数据,基于追溯到的最近数据值和当前数据值来填充中间数据的空缺值。
[0018]根据本专利技术的实施方式,基于追溯到的最近数据值和当前数据值来填充中间数据的空缺值包括:用追溯到的最近数据值和当前数据值的平均值填充中间数据的空缺值。
[0019]根据本专利技术的实施方式,所述数据预处理模块将连续时间内的数据通过滑动窗口聚合成控制器行为数据的时间序列样本包括:
[0020]当暂存队列的某个数据及其之前的数据在经过空缺值填充处理后,任何一个维度都没有空缺值时,将暂存队列数据发送至滑动处理单元;
[0021]滑动处理单元将窗口大小设定为L,当接受到的经过处理的数据样本不足L个时,等待预处理模块;接收完成L个样本后,将窗口内的样本按照采集时间从先到后进行排序,构造出行为数据样本时间序列;收到新的样本时,将最旧的样本从窗口内剔除,将新的样本排入最后,构造下一个时间序列样本;如此不断滑动,构造故障诊断模型需要的输入数据。
[0022]根据本专利技术的实施方式,所述故障归类器网络结构包括:
[0023]输入层:用于输入数据预处理模块提供的时间序列样本,其输入为形状为L
×
N的张量,其中L为滑动窗口的大小,N为样本特征集的特征个数;
[0024]时间本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据驱动的SDN控制器故障自动诊断系统,其特征在于,包括以下模块:数据采集模块:负责从控制器所在的服务器上采集控制器产生的行为数据,行为数据包括控制器所在环境状态、控制器自身进程状态、北向服务统计数据、南向服务统计数据,并以由应用场景需求设定的采集频率,将采集到的行为数据发送给数据预处理模块并同步储存到历史数据库;数据预处理模块:负责对数据采集模块发送过来的原始行为数据进行处理,对于数据中出现的空缺值,依据出现的空缺值对应维度和上下文情况,对空缺值进行填充处理或者直接报告显著故障;对原始数据空缺值进行处理后,再对数据进行归一化处理,消除数据特征值不同量级的影响;将连续时间内的数据通过滑动窗口聚合成控制器行为数据的时间序列样本,输入故障诊断模块;故障诊断模块:包括一个故障归类器,该故障归类器基于堆叠长短时记忆网络LSTM构建神经网络,所述神经网络对输入的时间序列样本提取时序变化特征,进行在线诊断,并将诊断出的所有故障类别作为诊断结果进行输出。2.根据权利要求1所述的数据驱动的SDN控制器故障自动诊断系统,其特征在于,所述数据预处理模块依据出现的空缺值对应维度和上下文情况,对空缺值进行填充处理或者直接报告显著故障实现如下:为原始数据的各个维度设定连续空缺值计数器及其阈值;每次接收到来自数据采集模块的数据后,将数据加入暂存队列;判断数据中是否含有空缺值,如果有,则空缺值所在的维度对应的连续空缺值计数器计数加1;如果接收到的数据某一维度的连续空缺值计数器数值到达设定的阈值,则认为SDN控制器所在环境已经发生故障,根据计数器的情况直接汇报故障,出现连续空缺值的相关数据直接丢弃,不进行后续处理,计数器不清零;如果接收到的数据某一维度数据没有空缺,连续空缺值计数器清零,并向前追溯到最近一个无空缺的数据,基于追溯到的最近数据值和当前数据值来填充中间数据的空缺值。3.根据权利要求2所述的数据驱动的SDN控制器故障自动诊断系统,其特征在于,基于追溯到的最近数据值和当前数据值来填充中间数据的空缺值包括:用追溯到的最近数据值和当前数据值的平均值填充中间数据的空缺值。4.根据权利要求2所述的数据驱动的SDN控制器故障自动诊断系统,其特征在于,所述数据预处理模块将连续时间内的数据通过滑动窗口聚合成控制器行为数据的时间序列样本包括:当暂存队列的某个数据及其之前的数据在经过空缺值填充处理后,任何一个维度都没有空缺值时,将暂存队列数据发送至滑动处理单元;滑动处理单元将窗口大小设定为L,当接受到的经过处理的数据样本不足L个时,等待预处理模块;接收完成L个样本后,将窗口内的样本按照采集时间从先到后进行排序,构造出行为数据样本时间序列;收到新的样本时,将最旧的样本从窗口内剔除,将新的样本排入最后,构造下一个时间序列样本;如此不断滑动,构造故障诊断模型需要的输入数据。5.根据权利要求1所述的数据驱动的SDN控制器故障自动诊断系统,其特征在于,所述故障归类器网络结构包括:
输入层:用于输入数据预处理模块提供的时间序列样本,其输入为形状为L
×
N的张量,其中L为滑动窗口的大小,N为样本特征集...

【专利技术属性】
技术研发人员:黄海滔王晓亮
申请(专利权)人:南京大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1