一种软件定义网络的控制平面构架以及控制方法与流程

文档序号:11234413阅读:541来源:国知局
一种软件定义网络的控制平面构架以及控制方法与流程

本申请涉及计算机网络领域,具体涉及一种软件定义网络的控制平面构架。本申请同时涉及一种软件定义网络的控制方法。



背景技术:

软件定义网络的核心理念是使网络软件化并充分开放,从而使得网络能够像软件一样便捷、灵活,以此提高网络的创新能力。软件定义网络分离了网络设备,网络使用、管理和控制以及上层应用,相应形成了转发平面、控制平面以及应用平面。其中,控制平面的控制器是软件定义网络的控制中心,其具体负责维护全局网络视图,向上层的应用提供用于实现网络服务的可编程接口(通常也称为“北向接口”),以及提供同下层网络设备相交互的转发抽象(通常称为“南向接口”)。

控制平面的构架设计是决定软件定义网络网络性能的核心技术关键之一,但当前的流行的控制平面构架方案都在扩展性和可靠性方面存在缺点。

在opendaylight的控制平面的构架方案中,控制平面设计有多个控制器,主控制器将数据同步给其他控制器,在一个控制平面只设计有一个控制器作为主控制器,在某一时刻,只有主控制器承担数据完整性和功能下发的全部职责,其他控制器无法为其分担压力。当主控制器发生故障时,根据设定的主控制器策略,网络可以自动切换到下一个控制器,并将其设置为主控制器继续提供服务。由于整个网络只有一个主控制器存在,会导致主控制器压力较大,也限制了网络的规模性扩展。

opennetworkoperatingsystem的控制平面采用另一种的架构设计,其在一个控制平面设计多个主控制器,将一个区域内的网络单元分别归属到不同的主控制器,从而解决了因为整个网络只有单个主控制器带来的性能瓶颈问题,支持了网络单元的良好扩展。

但是,上述两种流行的软件定义网络的控制平面构架设计,都存在主控制器和备控制器的区分;不论单个主控制器、还是多个主控制器,在主控制器出现故障或者主控制器的通信通道出现中断时,需要找出下一个主控制器。通常找出下一个主控制器的做法是应用主控制器的选举策略,选举产生新的主控制器。而主控制器的选举策略的设计本身就容易出现问题,而且主控制器选举的过程也会对网络业务的持续性和可靠性产生影响,特别是在网络处于高负荷苛刻占用的情况下,在主控制器的选举过程中可能出现主控制器不明确的状态,导致网络业务处于停滞状态和网络可靠性的严重下降。



技术实现要素:

本申请提供一种软件定义网络的控制平面构架,将所有的控制器均设计为具有实现全部网络和应用业务的能力、在控制平面中角色和地位相同的控制器,增强了控制平面的可扩展性,可以支持横向任意数量规模控制器的扩展;去除了主、备控制器的区分,避免了因确定主控制器的过程造成的网络可靠性降低的问题;同时本申请将控制器与数据存储相分离,在控制器端专注实现业务服务,在数据存储端专注实现数据的一致性,提高了控制功能模块的公共数据同步的效率,也增加了控制平面构架的部署的灵活性和使用的便利性。本申请另外提供一种应用于所述控制平面构架之上的软件定义网络的控制方法。

本申请提供一种软件定义网络的控制平面构架,包括:

控制功能模块和数据功能模块;其中,

所述控制功能模块,用于控制、管理和执行网络和应用业务,包括至少一个以上的软件定义网络控制器;每个所述控制器在所述控制功能模块中的角色和地位都是相同的并且都具备独立控制、管理和执行所述网络和应用业务的能力;

所述数据功能模块,独立于所述控制功能模块之外,用于存储所述控制功能模块的公共数据并保证所述公共数据在所述数据功能模块中的数据一致性,包括至少一个以上的数据存储系统;每个所述数据存储系统都向每个所述控制器提供所述公共数据的读取和更新服务。

可选的,所述网络和应用业务,包括:与网络设备相关的网络业务和与上层应用相关的应用业务。

可选的,所述控制功能模块的公共数据,具体为:由所述控制器提交和共 享的、构建和应用所述软件定义网络的相关数据,包括:网络设备数据,业务数据和管控数据。

可选的,所述控制器,包括本地存储单元,用于在本地存储仅为所述控制器所使用的临时数据。

可选的,所述控制器,用于按照设定的数据分类策略将所述控制器处理的数据分类为所述控制功能模块的公共数据和所述控制器的临时数据。

可选的,所述数据存储系统为分布式的。

可选的,所述数据功能模块包括至少两个以上的所述数据存储系统。

可选的,所述控制功能模块,包括:虚拟通道控制器;所述虚拟通道控制器具体为:南向虚拟通道控制器和北向虚拟通道控制器;其中,所述南向虚拟通道控制器提供所述控制平面与所述软件定义网络的转发平面之间实现所述网络业务的南向接口;所述北向虚拟通道控制器提供所述控制平面与所述软件定义网络的应用平面之间实现所述应用业务的北向接口。

可选的,所述虚拟通道控制器是按照设定的负载均衡策略与每一个所述控制器相连接的。

本申请还提供一种软件定义网络的控制方法,应用于所述软件定义网络的控制平面构架;所述方法包括如下步骤:

控制功能模块中的软件定义网络控制器接收业务请求的数据;

所述控制器判断是否需要获取与执行所述业务请求相关的控制功能模块的公共数据;若是,则从数据功能模块中读取所述控制功能模块的公共数据;

所述控制器执行所述业务请求;并在执行所述业务请求完毕时,判断是否需要更新所述控制功能模块的公共数据;若是,则在所述数据功能模块中更新所述控制功能模块的公共数据。

可选的,所述方法应用于所述软件定义网络的控制平面构架;在执行所述控制器判断是否需要获取与执行所述业务请求相关的控制功能模块的公共数据;若是,则从数据功能模块中读取所述控制功能模块的公共数据的步骤之前,执行下述步骤:

所述控制器判断是否需要获取与执行所述业务请求相关的控制器的临时数据;若是,则从控制器的本地存储单元中读取所述控制器的临时数据。

可选的,所述方法应用于所述的软件定义网络的控制平面构架;所述在执行所述从数据功能模块中读取所述控制功能模块的公共数据或所述在所述数据功能模块中更新所述控制功能模块的公共数据的步骤之前,执行下述步骤:

按照设定的存储运行选择策略,在数据功能模块中选择一个数据存储系统;

检查选择的所述数据存储系统是否正常工作;若是,则执行从选择的所述数据存储系统中读取所述控制功能模块的公共数据或在选择的所述数据存储系统中更新所述控制功能模块的公共数据的步骤;若否,则返回执行所述按照设定的存储运行选择策略,在数据功能模块中选择一个数据存储系统的步骤。

可选的,所述方法应用于所述的软件定义网络的控制平面构架;所述从数据功能模块中读取所述控制功能模块的公共数据或所述在所述数据功能模块中更新所述控制功能模块的公共数据,包括:

按照设定的存储负载选择策略,在数据功能模块中选择一个当前负载最小的数据存储系统;

从选择的所述数据存储系统中读取所述控制功能模块的公共数据或在选择的所述数据存储系统中更新所述控制功能模块的公共数据。

可选的,所述方法应用于所述的软件定义网络的控制平面构架;所述从数据功能模块中读取所述控制功能模块的公共数据或所述在所述数据功能模块中更新所述控制功能模块的公共数据,包括:

按照设定的存储属性选择策略,在数据功能模块中选择专属读操作数据存储系统和专属写操作数据存储系统;

从选择的所述专属读操作数据存储系统中读取所述控制功能模块的公共数据或在选择的所述专属写操作数据存储系统中更新所述控制功能模块的公共数据。

可选的,所述方法应用于所述的软件定义网络的控制平面构架;在执行所述控制功能模块中的软件定义网络控制器接收业务请求的步骤之前,执行下述步骤:

控制功能模块中的虚拟通道控制器接收业务请求的数据;

按照设定的负载均衡策略,选择用于执行所述业务请求的软件定义网络控制器;

所述虚拟通道控制器将所述业务请求的数据发送给选择的所述控制器。

可选的,在执行所述虚拟通道控制器将所述业务请求发送给选择的所述控制器的步骤之前,执行下述步骤:

检查选择的所述控制器是否正常工作;若是,则执行下一步骤;若否,则返回执行所述按照设定的负载均衡策略,选择用于执行所述业务请求的软件定义网络控制器的步骤。

与现有技术相比,本申请具有以下优点:

本申请保证网络系统的可扩展性。所有的控制器都是平等的角色并具有独立实现网络和应用业务的能力,不存在主控制器和非主控制器之分,支持横向任意数量规模控制器的扩展。

本申请保证网络系统的高可靠性。由于所有的控制器都是平等的角色,不需要进行主控制器的选举,因此避免了在主控制器重新选举时短暂时间间隔内网络无主控制器的状态(即使这个时间间隔是微小的),而且任意控制器的故障也不会影响网络控制功能。

本申请同时将控制器与数据存储相分离,在控制器端专注实现业务服务,在数据存储端专注实现数据的一致性,提高了控制功能模块的公共数据同步的效率,也增加了控制平面构架的部署的灵活性和使用的便利性。

附图说明

图1是本申请第一实施例提供的一种软件定义网络的控制平面构架的示意图;

图2是本申请第一实施例提供的另一种软件定义网络的控制平面构架的示意图;

图3是本申请第一实施例的第一优选方案提供的一种软件定义网络的控制平面构架的示意图;

图4是本申请第一实施例的第二优选方案提供的一种软件定义网络的控制平面构架的示意图;

图5是本申请第一实施例的第三优选方案提供的一种软件定义网络的控制平面构架的示意图;

图6是本申请第二实施例提供的一种软件定义网络的控制方法的流程图;

图7是本申请第二实施例提供的一种软件定义网络的控制方法的流程示意 图;

图8是本申请第二实施例提供的另一种软件定义网络的控制方法的流程示意图;

图9是本申请第二实施例的第一优选方案提供的一种软件定义网络的控制方法的流程图;

图10是本申请第二实施例的第二优选方案提供的一种软件定义网络的控制方法的流程图;

图11是本申请第二实施例的第三优选方案提供的一种软件定义网络的控制方法的流程图;

图12是本申请第二实施例的第四优选方案提供的一种软件定义网络的控制方法的流程图;

图13是本申请第二实施例的第五优选方案提供的一种软件定义网络的控制方法的流程图;

图14是本申请第二实施例的第六优选方案提供的一种软件定义网络的控制方法的流程图。

具体实施方式

在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。

下面以下具体的实施例来说明本申请的技术方案。

请参考图1,其为本申请第一实施例提供的一种软件定义网络的控制平面构架示意图。所述软件定义网络的控制平面构架,包括:

控制功能模块101和数据功能模块102;其中,所述控制功能模块101,用于控制、管理和执行网络和应用业务,包括至少一个以上的软件定义网络控制器;每个所述控制器在所述控制功能模块中的角色和地位都是相同的并且都具备独立控制、管理和执行所述网络和应用业务的能力。

本申请将软件定义网络的控制平面划分为控制功能模块和数据功能模块两大块功能结构;在控制功能模块中设置有至少一个以上的软件定义网络控制器, 取消了主控制器和备控制器的区分,将所有控制器统一构建为具备独立实现所有上层应用业务和下层网络业务能力、在控制功能模块中的角色和地位都是相同的控制器。

由于本申请的控制平面构架去除了传统软件定义网络的主、备控制器的区别,不需要进行主控制器的选举,也不需要进行在主、备控制器之间的数据同步,从而消除了传统软件定义网络因主控制器选举和主、备控制器之间的数据同步出现问题造成的网络不稳定性;同时,在需要进行性能扩展时也可以进行控制器任意数目的无限扩展,控制器的数目为1时也可以正常工作,满足了多种控制平面的性能需求。

所述数据功能模块102,独立于所述控制功能模块之外,用于存储所述控制功能模块的公共数据并保证所述公共数据在所述数据功能模块中的数据一致性,包括至少一个以上的数据存储系统;每个所述数据存储系统都向每个所述控制器提供所述公共数据的读取和更新服务。

本申请将控制功能和数据功能相分离,数据功能模块和控制功能模块是相互独立的;数据功能模块设置至少一个以上的集中式或分布式数据存储系统用来专属实现对控制功能模块的公共数据的存储管理,并且其存储的控制功能模块的公共数据在数据功能模块中是保证具有数据一致性的;每一个数据存储系统都向每一个控制器提供控制模块的公共数据的读取和更新服务。

在本申请中,由于将控制功能模块和数据功能模块作为两个独立的软件层进行分别构架,可以实现控制功能业务和数据功能业务上的独立专属管理,增加了整个控制平面设计、使用和维护的灵活性;控制功能模块和数据功能模块不是简单糅合在一起的,而是配套出现、紧密耦合的。数据功能模块向控制功能模块提供数据从而支撑具体业务;控制功能模块向数据功能模块沉淀数据并实现具体业务。

在本申请的控制功能模块不直接参与任何数据同步,控制功能模块的公共数据的一致性是间接通过其在数据功能模块中的数据同步和一致性来实现的。这要求数据存储系统需要具备高效的多点间数据同步的能力。数据存储系统的具体文件组织形式可以是集中式的,例如关系型数据库,也可以是分布式的,例如分布式文件系统。在数据功能模块为集中式的情况下,存储在其之中的控制功能模块的公共数据自然拥有数据的一致性;在数据功能模块为分布式的情 况下,需要有数据一致性实现机制来保持存储在其之中的控制功能模块的公共数据的一致性。

如图2所示,本申请的方案不进行控制功能模块一端的数据同步,只在数据功能模块一端专属进行数据一致性的数据同步操作。这样可以在数据存储端设置数据同步的优先级,保证数据同步的时效性;现有各种存储系统也拥有成熟完善的一致性实现逻辑,可以提供软件定义网络在高负荷运转、苛刻性要求下数据的快速响应和一致性。这种分离控制功能和数据功能、在数据端实现数据一致性的控制平面构架相比于传统的软件定义网络的控制平面构架具有更高效和更可靠的优势。在传统的软件定义网络的控制平面构架中必须进行在控制器之间的数据同步,而在控制器之间的数据同步一方面往往与控制器上的其他应用相混杂,无法保证数据同步的优先级;另一方面控制器之间的数据同步的实现逻辑例如主控制器选举等在高负荷运转的网络中无法达到足够快速的响应。

本申请的技术方案中控制功能模块所控制、管理和执行的网络和应用业务,即为控制平面所实现的全部功能业务,包括:与网络设备相关的网络业务,即各种于具体网络设备相交互的业务,例如在本实施例中交换机mac地址学习,和与上层应用相关的应用业务,例如在本实施例中设置某台交换机的业务属性。

本申请中控制器实现所述网络和应用业务的能力即为控制器提供对整个网络设备的控制管理,进行实时监听、管理网络设备的各种状态,并在需要时进行业务翻译、处理以及附加合适的业务流程本的能力。

本申请中控制器对网络和应用业务的管理、操作和策略调整的实现都是基于控制器处理的数据来实现的。本申请根据数据的持久性和作用范围,按照设定的数据分类策略将制器所处理的数据分类为控制功能模块的公共数据和控制器的临时数据两大类别;其中数据功能模块的公共数据由控制器向数据存储系统输送、由数据存储系统统一管理并在全部控制器中共享;控制器的临时数据仅为具体单个控制器自身所用。

本申请的控制功能模块的公共数据,具体为:由所述控制器提交和共享的、构建和应用所述软件定义网络的相关数据,包括:网络设备数据,业务数据和管控数据。

控制功能模块的公共数据,即控制平面中的一致性数据,都是由具体控制 器提交,其包括网络拓扑、交换机流表、用户业务数据等统一组成构架和应用所述软件定义网络的基础性数据。控制功能模块的公共数据的特征包括:有效期长,可以供不同应用、业务和网络单元反复使用;存储在数据功能模块,统一管理,不允许丢失;全网一致,在确定的软件定义网络环境下,在任一时刻、从任一控制器上对其进行操作,结果都是一致的。

在本申请的技术方案中,从业务的角度来划分,控制功能模块的公共数据可以分为下述三类:网络设备数据,业务数据和管控数据。

网络设备数据即为控制平面与转发平面交互的数据,包括与openflow协议定义的交换机上天然存在的数据,例如在本实施例中:交换机的流表信息;交换机的限速信息;交换机的端口信息;以及交换机的匹配条件信息等。

业务数据即为控制平面与应用平面或转发平面相交互的、协助实现网络和应用业务相关数据,包括:用户指定设备的业务功能(例如:按mac转发,按ip路由);用户开通的链路,经过了哪些交换机结点;用户开通的链路,在租期到期后该如何处理(欠费不停服、自动切断);用户链路的服务质量信息;以及用户链路的真实拓扑路径信息等。

管控数据即为对整个网络运营、维护和管理有意义的数据,例如:当前系统支持的openflow协议编号有哪些,默认的openflow协议版本是哪个;南向接口、北向接口的服务端口号是多少;单台openflow交换机允许的最大流表数;单条flow的最大流量值;不同类型流表需要配置的优先级;单个用户可创建的资源限制(链路数,交换机数等等);以及开关类的配置:某台设备,在某一时刻是否被允许改动其上的流表等。

控制功能模块中控制器处理的数据还包括仅为该控制器所使用的控制器的临时数据,是保证控制器和交换机之间高效协作的关键之一。一般情况下,控制器的临时数据具有以下特点:只存储在具体控制器的内存或本地存储,故障或关机时可丢弃;只在单个控制器上有效,无须在控制器之间共享;有效期短,在关联的逻辑处理完毕后即可失效;以及不影响软件定义网络的结构等。控制器的临时数据包括:控制器和交换机之间连接保活信息,控制器和交换机之间某次通信的数据缓存(通信成功后,数据失效),交换机发给控制器的低级别报警,以及控制器程序本身的控制数据(计数器)等。

在本申请的技术方案中,控制器的临时数据也可以存储于数据存储系统, 即所有控制器处理的数据,即可以全部存储于数据功能模块之中,也可以仅存储于该控制器的本地。

如图3所示,本实施例的第一优选方案采用控制器的临时数据存储于该控制器的本地存储单元的构架。

在本优选方案中控制器的本地存储单元具体为控制器的内存或本地固定存储等,当然它们可以不仅仅为存储控制器的临时数据所使用,也同时可以为控制器的其他操作和运算等服务。在控制器本地存储控制器的临时数据,可以提高这些临时数据的读取和更新效率从而达到提高整个网络效率的目的,但在本地存储控制器的临时数据需要在控制器端设置数据分类策略,将控制功能模块的公共数据与控制器的临时数据准确区别,再据此分别与数据功能模块的数据存储系统和控制器的本地存储单元交互数据。

本优选方案还可以在保持控制功能模块的公共数据的一致性的前提下,将变化频率低的控制功能模块的公共数据(例如:管控数据)缓存在该控制器的本地,例如该控制器的内存或本地固定存储,以达到读取效率提高的效果;此外,如果整个网络的网络拓扑稳定,将网络拓扑数据缓存在具体控制器的本地,也可以达到更快速的响应的效果。但一旦采用了在具体控制器上的缓存的架构设计,就必须相应合理定制控制功能模块的公共数据在控制器的缓存超时和刷新策略,以保证缓存数据的正确性。

如图4所示,本实施例的第二优选方案采用数据功能模块包括至少两个以上的具有数据一致性的数据存储系统的架构。

在本优选方案中,两个以上的具有数据一致性的数据存储系统一方面可以在数据存储系统内部的数据冗余备份基础之上实现数据存储系统之间的数据冗余备份,从而进一步提高了数据功能模块的可靠性;另一方面也可以对数据存储系统进行业务属性上的分类操作(如,读写分离策略),从而提高数据功能模块的资源利用和数据存取效率。在部署时,最好采用分布式数据存储系统以增加系统部署的灵活性,但也可以采用集中式的数据存储系统。

如图5所示,本实施例的第三优选方案采用南向和北向虚拟通道控制器、以设定的负载均衡策略与每一个控制器相连接的架构。

在本优选方案中,控制功能模块还包括虚拟通道控制器;所述虚拟通道控制器具体为:南向虚拟通道控制器和北向虚拟通道控制器;其中,所述南向虚 拟通道控制器提供所述控制平面与所述软件定义网络的转发平面之间实现网络业务的南向接口;所述北向虚拟通道控制器提供所述控制平面与所述软件定义网络的应用平面之间实现应用业务的北向接口。

本优选方案的虚拟通道控制器是按照设定的负载均衡策略与每一个所述控制器相连接的。设定的负载均衡策略可以灵活定义,由于将业务访问的分配工作专门集中在虚拟通道控制器进行,这样易于变更负载均衡策略,也可以根据实际网络的需要进一步动态调整负载均衡策略。虚拟通道控制器的构架设计可以做到使得所有网络和应用业务访问都首先进入虚拟通道控制器,虚拟通道控制器再将具体业务访问通过负载均衡策略分配给相应的具体控制器进行处理;从控制功能模块发出的业务访问也可以通过负载均衡策略分配给不同的转发平面的设备和应用平面的程序。

下面介绍本申请的一种软件定义网络的控制方法。所述控制方法是在所述第一实施例提供的控制平面构架之上应用的,其主要特点也是由所应用的具体控制平面构架所决定。

请参考图6,其为本申请第二实施例提供的一种软件定义网络的控制方法流程图。具体的,本申请提供一种软件定义网络的控制方法,应用于所述第一实施例提供的软件定义网络的控制平面构架,如图1所示;所述方法包括以下步骤:

步骤s101:控制功能模块中的软件定义网络控制器接收业务请求的数据。

控制功能模块中的软件定义网络控制器接收网络和应用业务的请求的数据,该业务请求的数据类别可以是多样的,具体的形式为某种数据。在本实施例中,例如执行将某台openflow交换机的业务属性设置为:l2switch的业务,如图7所示,即为执行步骤s101-1:控制功能模块中的控制器1接收该业务请求的数据。再例如执行某交换机mac学习过程,如图8所示,假设发送端的端口值为port1,mac值为mac1,目标端的mac为mac2;本步骤即为执行步骤s101-2:控制功能模块中的控制器2接收一个数据包存入事件的数据。

步骤s102:所述控制器判断是否需要获取与执行所述业务请求相关的控制功能模块的公共数据;若是,则从数据功能模块中读取所述控制功能模块的公共数据。

接收到具体业务请求的控制器,判断执行该业务请求是否需要获取与执行 该业务请求相关的控制功能模块的公共数据;若是,则从数据功能模块中读取与执行该业务请求相关的控制功能模块的公共数据;若否,则进入下一步骤。

在本实施例中,例如执行将某台openflow交换机的业务属性设置为:l2switch的业务,如图7所示,由于判断执行设置交换机的业务属性的请求是否需要获取相关的控制功能模块的公共数据的判断结果为否,则直接进入下一步骤。再例如执行某交换机mac学习过程,如图8所示,本步骤即为执行步骤s102-21:控制器2判断执行该数据包存入事件需要获取相关的控制功能模块的公共数据,则向数据存储系统请求这些数据;以及步骤s102-22:控制器从数据存储系统读取获得该设备的业务属性是l2switch和该设备的端口和mac的对应表。

步骤s103:所述控制器执行所述业务请求;并在执行所述业务请求完毕时,判断是否需要更新所述控制功能模块的公共数据;若是,则在所述数据功能模块中更新所述控制功能模块的公共数据。

控制器执行具体业务请求;并在完成执行该具体业务请求时,判断是否需要更新与完成该具体业务请求相关的控制功能模块的公共数据;若是,则在所述数据功能模块中更新所述控制功能模块的公共数据。

在本实施例中,例如执行将某台openflow交换机的业务属性设置为:l2switch的业务,如图7所示,本步骤即为步骤s103-1:控制器1在数据存储系统中,更新datapathid为openflow:123456789的设备标记为l2switch,即完成本次openflow交换机的业务属性设置请求。再例如执行某交换机mac学习过程,如图8所示,本步骤即为步骤s103-21:控制器2根据获取到的数据,对交换机进行配置和以及在数据存储系统中更新该设备的端口和mac的对应表;具体流程为:若从数据存储系统读取的端口和mac对应表中,已存在mac2对应的端口值为port2,控制器2则检查交换机上是否有匹配的流表存在,如果没有,则向交换机下发流表(“在数据存储系统中存在mac2和port2的对应关系,但交换机上没有对应的转发流表”这种情况是可能存在的,这说明mac2不是交换机自动学习得到的,而数据存储系统中的对应关系,是管理员根据需要进行配置的):匹配mac2的包,全部由port2转出;若从数据存储系统读取的端口和mac对应表中,不存在mac2对应的端口值,控制器2则向交换机下发指令,广播该数据包;若从数据存储系统读取的端口和mac对应表中,没有mac1和port1的对应关系,则向交换机下发流表:匹配mac1的包,全部由port1转出;并在 完成下发流表时将mac1和port1的对应关系更新至数据存储系统中的port-mac表。

请参考图9,其为本申请第二实施例的第一优选方案提供的一种软件定义网络的控制方法流程图。所述软件定义网络的控制方法,应用于所述第一实施例的第一优选方案提供的软件定义网络的控制平面构架,如图3所示;所述方法在执行所述步骤s102之前,执行下述步骤:

步骤s102-3:所述控制器判断是否需要获取与执行所述业务请求相关的控制器的临时数据;若是,则从控制器的本地存储单元中读取所述控制器的临时数据。

在进行判断是否需要获取与执行所述业务请求相关的控制功能模块的公共数据之前,首先判断是否需要获取与执行所述业务请求相关的控制器的临时数据;如果该业务请求需要控制器的临时数据,则从控制器的本地存储单元中读取所述控制器的临时数据;如果不需要控制器的临时数据,则进入下一步骤s102。

请参考图10,其为本申请第二实施例的第二优选方案提供的一种软件定义网络的控制方法流程图。所述软件定义网络的控制方法,应用于所述第一实施例的第二优选方案提供的软件定义网络的控制平面构架,如图2所示;在执行所述步骤s102中从数据功能模块中读取所述控制功能模块的公共数据或步骤s103中在所述数据功能模块中更新所述控制功能模块的公共数据的步骤之前,执行下述步骤:

步骤s102-41和步骤s103-41:按照设定的存储运行选择策略,在数据功能模块中选择一个数据存储系统。

可以灵活设定各种数据存储系统的选择策略。在本优选实施例中实施选择数据存储系统是否正常工作的策略;如果选择的数据存储系统不能正常工作,则标记其为非正常数据存储系统,并选择下一个正常工作的数据存储系统。

步骤s102-42或步骤s103-42:检查选择的所述数据存储系统是否正常工作;若是,则执行从选择的所述数据存储系统中读取所述控制功能模块的公共数据或在选择的所述数据存储系统中更新所述控制功能模块的公共数据的步骤;若否,则返回执行步骤s102-41或s103-41。

检查选择的数据存储系统是否正常工作;如果其正常工作,则对其数据进 行正常的读取或更新;如果其不能正常工作,则返回执行步骤s102-41或s103-41,重新选择下一个正常工作的数据存储系统。这样可以避免单个数据存储系统故障导致网络服务异常的影响,增加网络使用的可靠性。

请参考图11,其为本申请第二实施例的第三优选方案提供的一种软件定义网络的控制方法流程图。所述软件定义网络的控制方法,应用于所述第一实施例的第二优选方案提供的软件定义网络的控制平面构架,如图2所示;所述步骤s102中从数据功能模块中读取所述控制功能模块的公共数据或所述步骤s103中在所述数据功能模块中更新所述控制功能模块的公共数据,包括:

步骤s102-51和步骤s103-51:按照设定的存储负载选择策略,在数据功能模块中选择一个当前负载最小的数据存储系统。

可以灵活设置定存储负载选择策略,选择在控制器准备进行读写操作时负载最小的数据存储系统。

步骤s102-52或步骤s103-52:从选择的所述数据存储系统中读取所述控制功能模块的公共数据或在选择的所述数据存储系统中更新所述控制功能模块的公共数据。

控制器使用选择的负载为最小的数据存储系统进行读写操作,提高网络效率。

请参考图12,其为本申请第二实施例的第四优选方案提供的一种软件定义网络的控制方法流程图。所述软件定义网络的控制方法,应用于所述第一实施例的第二优选方案提供的软件定义网络的控制平面构架,如图4所示;所述步骤s102中从数据功能模块中读取所述控制功能模块的公共数据或所述步骤s103中在所述数据功能模块中更新所述控制功能模块的公共数据,包括:

步骤s102-61和步骤s103-61:按照设定的存储属性选择策略,在数据功能模块中选择专属读操作数据存储系统和专属写操作数据存储系统。

可以设置存储属性选择策略,部署优化于读操作的专属读操作数据存储系统和优化于写操作的专属写操作数据存储系统。

步骤s102-62或步骤s103-62:从选择的所述专属读操作数据存储系统中读取所述控制功能模块的公共数据或在选择的所述专属写操作数据存储系统中更新所述控制功能模块的公共数据。

通过对数据存储系统的业务属性划分,可以优化网络系统的性能。

请参考图13,其为本申请第二实施例的第五优选方案提供的一种软件定义网络的控制方法流程图。所述软件定义网络的控制方法,应用于所述第一实施例的第三优选方案提供的软件定义网络的控制平面构架,如图5所示;在执行所述步骤s101的控制功能模块中的软件定义网络控制器接收业务请求的步骤之前,执行下述步骤:

步骤s101-71:控制功能模块中的虚拟通道控制器接收业务请求的数据。

所有具体业务请求,都以数据的形式由统一的综合入口或入口集群:虚拟通道控制器来接收。

步骤s101-72:按照设定的负载均衡策略,选择用于执行所述业务请求的软件定义网络控制器。

可以按照设置的负载均衡策略,由虚拟通道控制器综合选择负载适当的控制器用来处理具体业务请求。设置的负载均衡策略可以是多样的,例如以虚拟ip的分配方式来分配具体业务请求。

步骤s101-73:所述虚拟通道控制器将所述业务请求的数据发送给选择的所述控制器。

虚拟通道控制器将业务请求的数据发送给选择的所述控制器,完成其接收和分流功能。

请参考图14,其为本申请第二实施例的第六优选实施例提供的一种软件定义网络的控制方法流程图。所述第二实施例的第五优选方案提供的软件定义网络的控制方法,在执行所述步骤s101-73所述虚拟通道控制器将所述业务请求发送给选择的所述控制器的步骤之前,执下述步骤:

步骤s101-81:检查选择的所述控制器是否正常工作;若是,则执行下一步骤;若否,则返回执行所述按照设定的负载均衡策略,选择用于执行所述业务请求的软件定义网络控制器的步骤。

检查虚拟通道控制器所选择的控制器是否宕机或出现其他故障,如果其正常工作,则向其发送业务请求进行处理;如果其工作不正常,则返回选择控制器的步骤,标记工作不正常的控制器,重新按照负载均衡策略选择下一个合适的控制器。本优选方案目的是避免单个控制器故障造成的网络异常影响。

本申请虽然以较佳实施例公开如上,但其并不是用来限定本申请,任何本 领域技术人员在不脱离本申请的精神和范围内,都可以做出可能的变动和修改,因此本申请的保护范围应当以本申请权利要求所界定的范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1