一种异构冗余实现方法及实现系统
技术领域
本发明涉及系统可靠性领域,具体来讲涉及一种异构冗余实现方法及实现系统。
背景技术
对于产品和系统来说,可靠性是一个至关重要的指标。失去了可靠性的保障,产品或系统其它方面再好,也难以满足应用需要。
就可靠性而言,无论设计多么完美的产品或系统,无法做到百分之百不出故障,因此,通常采用冗余的方法来提高整个系统的可靠性。换句话说,采用备份的方式降低整个系统出故障的几率。例如:两套完全相同、在一个评估周期内故障率为百分之一的系统,如果互为备份构成一个新系统,则新系统在该评估周期内的故障率理论上可降为万分之一。
1:1冗余保护、1+1冗余保护、多模冗余等都是采取冗余方法提高系统的可靠性的典型方法。一般来说,使用的备份系统越多,可靠性越高。
同构冗余存在很明显的缺陷。由于设计相同,在相同环境下的多个系统同时或近乎同时出错的概率很高,这在一定程度上削弱了同构冗余在改善可靠性上的意义。异构冗余刚好可以弥补同构冗余的不足。由于设计上的离散性,多个异构系统同时或近乎同时出错的可能性是比较小的。因此,忽略设计上的投入的情况下,异构冗余相比同构冗余具有更好的性能。
另一方面,系统的可靠性很大程度上依赖于组成系统的子系统、组件和部件。子系统、组件和部件的可靠性越高,系统的可靠性也会随之越高。因此,对关键子系统、组件和部件实行冗余保护以提高系统的可靠性是常用的方法。但是,由于备份系统的增加,将导致成整体本的直线上升。
发明内容
针对现有技术中存在的缺陷,本发明的目的在于提供一种异构冗余实现方法及实现系统,基于网络虚拟化技术,既可以提高系统的可靠性,同时避免了传统冗余保护方法带来的成本上升。
为达到以上目的,本发明采取一种异构冗余实现方法,包括:
设计一组实现相同功能的异构的处理方法并通过一组虚拟机实现;
通过机器学习得到关联输入和对应处理方法集的知识库;
针对某一种输入在所述知识库中选取所需处理方法集进行处理,在得到的一组结果中选择最合适的一个作为输出。
在上述技术方案的基础上,每种处理方法分别由一个虚拟机实现,不同虚拟机实现的处理方法存在本质区别;所述处理方法集是一组处理方法中部分处理方法的集合。
在上述技术方案的基础上,所述一组虚拟机部署在同一物理机上、部署在至少两台已知的物理机上、或者部署在云计算环境中的匿名物理机上。
在上述技术方案的基础上,建立所述知识库之前,标识不同输入并生成输入特征库,所述输入特征库由配置生成或基于无监督学习生成。
在上述技术方案的基础上,每种处理方法都有一个针对每种输入等价类的匹配度,在机器学习开始时,所有处理方法针对每种输入等价类的匹配度都为初始值。
在上述技术方案的基础上,所述机器学习包括模拟样本训练和真实样本评价两个阶段,
在模拟样本训练阶段,针对某一种输入,根据对应的处理方法是否达到预期效果,提高或降低其针对某一种输入等价类的匹配度;
真实样本评价阶段提高或降低匹配度的方式与模拟样本训练阶段相同,提高或降低的幅度大于所述模拟样本训练阶段。
在上述技术方案的基础上,针对某一种输入,基于所述知识库选取所需处理方法集进行处理,按所述匹配由高到低选取至少三种处理方法作为该输入的处理方法集。
在上述技术方案的基础上,当所述得到的一组结果全部相同,则该结果作为最终的输出。
在上述技术方案的基础上,当所述得到的一组结果部分相同,选取数量最多的结果作为最终的输出;若没有数量最多的结果,则重新处理对应的输入。
本发明还提供一种异构冗余实现系统,包括:
一组虚拟机,每台虚拟机上实现一种处理方法,所有处理方法为异构的处理方法且实现功能相同;
知识库,通过机器学习建立,其用于存储输入和处理方法集的关联,所述处理方法集为部分处理方法的集合;
处理模块,其用于针对某一种输入,通过所述知识库选取所需处理方法集,并进行处理得到一组结果;
结果选取模块,其用于对处理模块得到的一组结果进行处理,选择最合适的一个结果输出。
在上述技术方案的基础上,所述系统还包括一个输入特征库,输入特征库存储带有不同标识的输入,所述输入特征库由配置生成或基于无监督学习生成。
在上述技术方案的基础上,所述一组虚拟机部署在同一物理机上、部署在至少两台已知的物理机上、或者部署在云计算环境中的匿名物理机上,且不同虚拟机实现的处理方法存在本质区别。
在上述技术方案的基础上,当所述得到的一组结果全部相同,则该结果作为最终的输出。
在上述技术方案的基础上,当所述得到的一组部分相同,选取数量最多的结果作为最终的输出;若没有数量最多的结果,则重新处理对应的输入。
本发明的有益效果在于:
利用异构冗余和基于网络虚拟化技术来构建冗余系统,既不会导致物理投入的显著增加,同时可以大大提高软件子系统乃至整个系统的可靠性,也避免了传统冗余保护方法带来的成本的上升。
本发明主要用于系统中软件子系统、软件组件和软件模块的保护,具有一般性,可以应用于任何输入和输出明确的软件子系统、软件组件和软件模块。本发明不仅能够实现多模冗余保护的功能,由于采用虚拟机建立,实现成本较低,同时具有很好的灵活性。
附图说明
图1为本发明第一实施例异构冗余实现方法流程图;
图2为本发明第二实施例异构冗余实现方法流程图;
图3为图2中步骤B3的具体步骤流程图;
图4为本发明第三实施例异构冗余实现方法流程图;
图5为本发明第四实施例异构冗余实现系统示意图;
图6为本发明第五实施例异构冗余实现系统示意图。
附图标记:
虚拟机1、知识库2、处理模块3、结果选取模块4。
具体实施方式
以下结合附图及实施例对本发明作进一步详细说明。
第一实施例:
如图1所示,本实施例异构冗余实现方法,包括步骤:
A1.设计一组实现相同功能的异构的处理方法,该组处理方法都基于网络功能虚拟化实现。具体的,每种处理方法由一台虚拟机实现,不同虚拟机实现的处理方法存在本质区别。该组虚拟机可以部署在同一台物理机上,也可以部署在至少两台已知的物理机上,还可以部署在云计算环境中的匿名物理机上,其中,已知的物理机是指物理信息可知的物理机。并且,虚拟机部署在相异的多台物理机上是更好的选择,不容易受到物理机硬件故障的影响。
A2.使用机器学习,得到不同输入和对应处理方法集之间的关联,并将这些关联存储在知识库中。其中,处理方法集是该组处理方法中部分处理方法的集合,通常,每个处理方法集中包括至少三种符合对应输入的处理方法。
A3.针对某一种输入,基于该输入的特征和各种处理方法的特征,基于知识库中的关联,选取所需的一个处理方法集,并通过该处理方法集中所有方法对该输入进行处理,得到一组输出的结果。对得到的一组结果进行处理,得到最合适的一个结果作为该输入的最佳输出。
第二实施例:
如图2所示,本实施例异构冗余实现方法,包括步骤:
B1.设计一组实现相同功能的异构的处理方法,该组处理方法都基于网络功能虚拟化实现。具体的,每种处理方法由一台虚拟机实现,不同虚拟机实现的处理方法存在本质区别。该组虚拟机可以部署在同一台物理机上,也可以部署在至少两台已知的物理机上,还可以部署在云计算环境中的匿名物理机上。
B2.建立输入特征库,用来存储标识不同的输入,输入特征库可以由配置生成,也可以基于无监督学习实现。
B3.使用机器学习,建立处理方法和输入的匹配度,并以每种输入和对应处理方法集之间的关联建立知识库。其中,处理方法集是该组处理方法中部分处理方法的集合,通常,每个处理方法集中包括至少三种符合对应输入的处理方法。
B4.针对某一种输入,基于该输入的特征和各种处理方法的特征,基于知识库中的关联,选取所需的一个处理方法集,并通过该处理方法集中所有方法对该输入进行处理,得到一组输出的结果。对得到的一组结果进行处理,得到最合适的一个结果作为该输入的最佳输出。
本实施例中,机器学习包括模拟样本训练和真实样本评价两个阶段,具体的,如图3所示,B3包括如下步骤:
B301.每种处理方法都有一个针对每种输入等价类的匹配度(可以用分数表示),机器学习开始时,所有处理方法针对每种输入等价类的匹配度都为初始值(例如0)。
B302.在模拟样本训练阶段,设计涵盖所有输入等价类的多个模拟输入,并将这些模拟输入提交所有处理方法进行处理。
B303.针对某一模拟输入,判断是否得到预期效果,若果是,进入S304;如果否,进入S305。
B304.提高其针对某一种输入等价类的匹配度,进入B306。
B305.降低其针对某一种输入等价类的匹配度。
B306.真实样本评价阶段,针对每一个真实输入的样本,判断对应的处理方法是否得到预期效果,若果是,进入S307;如果否,进入S308。
B307.提高对应该输入等价类的匹配度,且提高的幅度大于模拟训练阶段B304中提高的幅度。
B308.降低对应该输入等价类的匹配度,且降低的幅度大于模拟训练阶段B305中降低的幅度。
除此之外,机器学习也可以结合其他评价指标,比如处理时间等等。
第三实施例:
如图4所示,本实施例异构冗余实现方法,包括步骤:
C1.设计一组实现相同功能的异构的处理方法,该组处理方法都基于网络功能虚拟化实现。具体的,每种处理方法由一台虚拟机实现,不同虚拟机实现的处理方法存在本质区别。该组虚拟机可以部署在同一台物理机上,也可以部署在至少两台已知的物理机上,还可以部署在云计算环境中的匿名物理机上。
C2.建立输入特征库,用来存储标识不同的输入,输入特征库可以由配置生成,也可以基于无监督学习实现。
C3.使用机器学习,建立处理方法和输入的匹配度,并以每种输入和对应处理方法集之间的关联建立知识库。其中,处理方法集是该组处理方法中部分处理方法的集合,通常,每个处理方法集中包括至少三种符合对应输入的处理方法。
C4.针对某一种输入,基于该输入的特征和各种处理方法的特征,基于知识库中的关联,选取所需的一个处理方法集。
C5.使用该处理方法集中所有方法对该输入进行处理,判断得到的一组结果是否全部相同,如果相同,进入C6;如果不同,进入C7。
C6.将该相同的结果作为最终的一个输出,结束。
C7.判断得到的一组结果中,是否有数量最多的结果,若是,进入C8;若否,进入C9。
C8.将数量最多的结果作为最终的一个输出,结束。
C9.报告执行异常,重新处理对应的输入,结束。
第四实施例:
如图5所示,本发明异构冗余实现系统,包括一组虚拟机1、知识库2、处理模块3和结果选取模块4。
其中,每台虚拟机1上实现一种处理方法,所有处理方法为异构的处理方法且实现功能相同,且不同虚拟机1实现的处理方法存在本质区别。该组虚拟机1可以部署在同一物理机上、部署在至少两台已知的物理机上、或者部署在云计算环境中的匿名物理机上。知识库2通过机器学习建立,其用于存储不同输入和对应处理方法集的关联,处理方法集为部分处理方法的集合。处理模块3用于针对某一种输入,通过知识库2选取所需处理方法集,并进行处理后,得到一组结果。
结果选取模块4用于对处理模块3得到的一组结果进行处理,选择最合适的一个结果输出。其中,选取模块4判断处理模块3得到的一组结果是否全部相同,若相同,则该结果作为最终的输出;若是不同,选取数量最多的结果作为最终的输出。若是结果不全相同,并且没有数量最多的结果,则重新处理对应的输入。
第五实施例:
如图6所示,本发明异构冗余实现系统,包括一组虚拟机1、知识库2、处理模块3、结果选取模块4和输入特征库5。
其中,每台虚拟机1上实现一种处理方法,所有处理方法为异构的处理方法且实现功能相同,且不同虚拟机1实现的处理方法存在本质区别。本实施例中,该组虚拟机1部署在同一物理机上。
输入特征库存5储带有不同输入标识的输入,输入特征库5由配置生成或基于无监督学习生成。知识库2通过机器学习建立,其用于存储不同输入和对应处理方法集的关联,处理方法集为部分处理方法的集合。
处理模块3用于针对某一种输入,通过知识库2选取所需处理方法集,并进行处理后,得到一组结果。
结果选取模块4用于对处理模块3得到的一组结果进行处理,选择最合适的一个结果输出。其中,选取模块4判断处理模块3得到的一组结果是否全部相同,若相同,则该结果作为最终的输出;若是不同,选取数量最多的结果作为最终的输出。若是结果不全相同,并且没有数量最多的结果,则重新处理对应的输入。
第六实施例:
本发明异构冗余实现系统,包括一组虚拟机1、知识库2、处理模块3、结果选取模块4和输入特征库5。
其中,每台虚拟机1上实现一种处理方法,所有处理方法为异构的处理方法且实现功能相同,且不同虚拟机1实现的处理方法存在本质区别。本实施例中,该组虚拟机1部署在云计算环境中。
输入特征库存5储带有不同输入标识的输入,输入特征库5由配置生成或基于无监督学习生成。知识库2通过机器学习建立,其用于存储不同输入和对应处理方法集的关联,处理方法集为部分处理方法的集合。
处理模块3用于针对某一种输入,通过知识库2选取所需处理方法集,并进行处理后,得到一组结果。
结果选取模块4用于对处理模块3得到的一组结果进行处理,选择最合适的一个结果输出。其中,选取模块4判断处理模块3得到的一组结果是否全部相同,若相同,则该结果作为最终的输出;若是不同,选取数量最多的结果作为最终的输出。若是结果不全相同,并且没有数量最多的结果,则重新处理对应的输入。
第七实施例:
本实施例是基于虚拟主控的路由生成子系统。
首先,采用集中控制的路由器或三层交换机,通常有一个主控单元来完成整个系统的控制,路由生成是其核心功能之一。而路由是路由器或三层交换机的核心,决定着数据包的转发。因此,路由及路由生成子系统需要具备相当的可靠性,路由器或三层交换机的主控单元称作物理主控单元。
采用运行在控制器上的多个虚拟机承载的多个虚拟主控单元,来提高路由生成子系统的可靠性。多个虚拟主控运行的操作系统、软件基本平台、核心模块、以及接口模块均独立且不相互依赖,以保持虚拟主控的异构性。
各个虚拟主控单元均有一个针对路由协议(例如OSPF或RIP等)的匹配度,可通过模拟样本训练和真实样本评价产生匹配度信息。
当有路由需要更新时,物理主控单元选取匹配度高的若干虚拟主控单元来构成路由生成子系统,各个虚拟主控单元分别计算出对应的路由,并由物理主控单元根据各个虚拟主控的计算结果,选取最合适的输出路由作为本次需要更新的路由。同时更新参与计算的各虚拟主控单元的对应该路由的匹配度。
第八实施例:
本实施例是基于V-DPI(虚拟深度包检测子系统)后台的深度包检测系统。
通常的深度包检测系统包含包扫描、包分析、及策略执行三个功能。其中,包分析是核心功能,它对数据包进行分析并决定着该数据包的处理方式。包分析也是难点,对数据包分析错误可能导致很严重的后果,因此包分析功能的可靠性要求非常高。
本实施例为提高包分析阶段的可靠性,设计多个运行在不同物理服务器的异构V-DPI来完成深度包检测的包分析功能。其中一个V-DPI用作主V-DPI,来实现本发明的输入,以及处理方法选择、输出选择及输出等功能;其它V-DPI称为包分析V-DPI,用来实现包分析功能。
各个包分析V-DPI均有一个针对某一类深度包检测规则的匹配度指标,比如:数据包是某种应用的协议数据包;可通过模拟样本训练和真实样本评价产生匹配度信息。
当有数据包到来时,主V-DPI选取若干包分析V-DPI来构成包分析子系统,各个包分析V-DPI分别基于对应的深度包检测规则分析该数据包,并由主V-DPI根据各个包分析V-DPI的输出,选取最合适的输出作为该数据包的分析结果。同时更新参与计算的包分析V-DPI的对应该规则的匹配度。
本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。