公开/公告号CN107094119A
专利类型发明专利
公开/公告日2017-08-25
原文格式PDF
申请/专利权人 广州市品高软件股份有限公司;
申请/专利号CN201710552252.9
申请日2017-07-07
分类号
代理机构北京市盈科律师事务所;
代理人江锦利
地址 510000 广东省广州市天河区软件路17号第G1栋
入库时间 2023-06-19 03:05:08
法律状态公告日
法律状态信息
法律状态
2019-10-25
授权
授权
2017-09-19
实质审查的生效 IPC(主分类):H04L12/803 申请日:20170707
实质审查的生效
2017-08-25
公开
公开
技术领域
本发明涉及计算机网络技术领域,尤其涉及一种基于云计算和SDN网络的负载均衡控制方法及系统。
背景技术
负载均衡是网络数据处理方面的一门重要的技术手段。利用负载均衡可以扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。
基于云计算和SDN网络使用代理软件如Nignx等的方案作为负载均衡是现有方案中较为常见的。但该方案中使用的是双向代理,通常性能上存在一定的瓶颈,而且非常消耗宿主机的资源。使用代理软件作为负载均衡,一般地需要对代理软件进行二次开发以应对性能不高等问题。二次开发带来的问题也是显而易见的,稳定性不高,需要一定的开发成本等等一系列的问题。再者,现有的云计算上的负载均衡方案缺乏弹性,对于网络数据的突发增多的情况,或者在网络数据不多时需要降低负载均衡占用云资源的时候,往往都需要人工手动处理。
在现有负载均衡的方案中,除了上述基于代理软件实现,有一种基于linux操作系统内核ipvs模块的高性能lvs负载均衡,该负载均衡方案可以实现单向代理。单向代理,即客户端发送请求到负载均衡后,负载均衡只需负责将请求均衡分发到后端机器,而后端机器的响应数据不需要再经过负载均衡进行转发,响应数据直接响应到客户端。同时,其基于ipvs模块实现,数据在网络协议栈的网络层就转发离开,转发网络数据的路径对比使用代理软件要短很多。可是,现有的lvs负载均衡方案因为其复杂网络数据流通路径和复杂的配置,对于现有的云网络来说比较难实现,因此通常只存在于传统网络当中。
发明内容
本发明的目的在于针对上述现有技术中的负载均衡方案缺乏弹性,负载均衡性能不高等问题,提出了一种基于云计算和SDN网络的负载均衡控制方法及系统,使得负载均衡具备弹性,有效提高负载均衡性能。
一方面,本发明提供一种基于云计算和SDN网络的负载均衡控制方法,包括:
云平台创建负载均衡实例并添加后端实例,向SDN控制器注册所述负载均衡实例,并对所述后端实例添加虚拟IP;
云平台下发负载均衡配置信息至负载均衡实例;
负载均衡实例根据所述负载均衡配置信息,在OVS上配置GroupTable;
根据所述GroupTable选择后端实例接收网络数据,并修改网络数据目标Mac地址为对应的后端实例的Mac地址,修改目标IP为所述虚拟IP;
为所述GroupTable配置FlowTable,通过所述FlowTable将网络数据导向所述GroupTable中;
SDN控制器接收客户端发送的访问请求,并根据预设规则将所述访问请求发送至负载均衡实例;
SDN控制器判断所述访问请求是否为负载均衡实例发出;
如果是,则SDN控制器根据修改后的网络数据目标Mac地址寻找对应的后端实例,下发正向规则使得所述访问请求到达后端实例,并下发反向规则将后端实例的响应发送至客户端。
进一步地,所述云平台向SDN控制器注册所述负载均衡实例的注册信息包括负载均衡字段,用于区别所述负载均衡实例和后端实例。
进一步地,所述负载均衡配置信息包括后端实例信息;
负载均衡实例根据所述负载均衡配置信息,在OVS上配置GroupTable,包括:
创建Group,类型选择select,并创建与各个后端实例对应的bucket。
进一步地,根据所述GroupTable选择后端实例接收网络数据,包括:
根据类型选择随机执行其中一个bucket。
进一步地,所述方法还包括:
负载均衡实例实时监控网络数据流量,当所述网络数据流量超过最高预设阈值或小于最低预设阈值,则负载均衡实例自适应调整自身所占用的CPU数量和内存。
另一方面,本发明还提供一种基于云计算和SDN网络的负载均衡控制系统,包括:
云平台,用于创建负载均衡实例并添加后端实例,向SDN控制器注册所述负载均衡实例,对所述后端实例添加虚拟IP,下发负载均衡配置信息至负载均衡实例;
负载均衡实例,用于根据所述负载均衡配置信息,在OVS上配置GroupTable,根据所述GroupTable选择后端实例接收网络数据,并修改网络数据目标Mac地址为对应的后端实例的Mac地址,修改目标IP为所述虚拟IP,为所述GroupTable配置FlowTable,通过所述FlowTable将网络数据导向所述GroupTable中;
SDN控制器,用于接收客户端发送的访问请求,并根据预设规则将所述访问请求发送至负载均衡实例,判断所述访问请求是否为负载均衡实例发出,如果是,则SDN控制器根据修改后的网络数据目标Mac地址寻找对应的后端实例,下发正向规则使得所述访问请求到达后端实例,并下发反向规则将后端实例的响应发送至客户端。
进一步地,所述云平台向SDN控制器注册所述负载均衡实例的注册信息包括负载均衡字段,用于区别所述负载均衡实例和后端实例。
进一步地,所述负载均衡实例还用于创建Group,类型选择select,并创建与各个后端实例对应的bucket。
进一步地,所述负载均衡实例还用于根据类型选择随机执行其中一个bucket。
进一步地,负载均衡实例还用于实时监控网络数据流量,当所述网络数据流量超过最高预设阈值或小于最低预设阈值,则负载均衡实例自适应调整自身所占用的CPU数量和内存。
本发明提供的基于云计算和SDN网络的负载均衡控制方法及系统,至少包括如下有益效果:
(1)基于云计算和SDN网络的OVS负载均衡实例具备了弹性,可随着流量的多少动态调整实例的规模,利用OVS实现单向代理的负载均衡,消除了双向代理模式对负载均衡系统带来的资源消耗,提高了负载均衡的性能;
(2)实现了在虚拟机上搭建OVS作为负载均衡,增加了OVS在网络处理方面的用途,可为后续基于OVS的网络开发者提供可参考的蓝本;
(3)SDN控制器在下发正向规则的同时下发反向规则,减少网络数据包在到达SDN控制器后的询问次数,从而降低了SDN控制器压力,提升了网络数据的流通速度。
附图说明
图1为本发明提供的基于云计算和SDN网络的负载均衡控制方法一种实施例的流程图。
图2为本发明提供的基于云计算和SDN网络的负载均衡控制方法中负载均衡实例上OVS的工作原理示意图。
图3为本发明提供的基于云计算和SDN网络的负载均衡控制方法中SDN控制器的工作流程示意图。
图4为本发明提供的基于云计算和SDN网络的负载均衡控制系统一种实施例的结构示意图。
具体实施方式
为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
实施例一
参考图1,本实施例提供一种基于云计算和SDN网络的负载均衡控制方法,包括:
步骤S101,云平台创建负载均衡实例并添加后端实例,向SDN控制器注册所述负载均衡实例,并对所述后端实例添加虚拟IP;
步骤S102,云平台下发负载均衡配置信息至负载均衡实例;
步骤S103,负载均衡实例根据所述负载均衡配置信息,在OVS上配置GroupTable;
步骤S104,根据所述GroupTable选择后端实例接收网络数据,并修改网络数据目标Mac地址为对应的后端实例的Mac地址,修改目标IP为所述虚拟IP;
步骤S105,为所述GroupTable配置FlowTable,通过所述FlowTable将网络数据导向所述GroupTable中;
步骤S106,SDN控制器接收客户端发送的访问请求,并根据预设规则将所述访问请求发送至负载均衡实例;
步骤S107,SDN控制器判断所述访问请求是否为负载均衡实例发出;
步骤S108,如果是,则SDN控制器根据修改后的网络数据目标Mac地址寻找对应的后端实例,下发正向规则使得所述访问请求到达后端实例,并下发反向规则将后端实例的响应发送至客户端。
Openvswitch是现有SDN网络中一个重要的组件,简称OVS,是一个虚拟交换软件,主要用于虚拟机VM环境,作为一个虚拟交换机,支持Xen/XenServer,KVM,and VirtualBox多种虚拟化技术。OVS通常是基于物理机器传递虚拟机VM之间的流量,以及实现VM和外界网络的通信。
具体地,步骤S101中,云平台创建负载均衡实例并添加后端实例,其中后端实例的回环网卡上添加一个指定的虚拟IP(如1.1.1.1),该虚拟IP是负载均衡网络数据到达时使用的,不会对其他网络数据产生影响。
云平台向SDN控制器注册负载均衡实例的网卡,注册信息包括了负载均衡字段,用于当SDN控制器在接收到网络数据时区分该网络数据是负载均衡实例还是后端实例。
进一步地,步骤S102中,云平台下发负载均衡配置信息至负载均衡实例,负载均衡配置信息包括后端实例信息、监听的端口等信息。
进一步地,步骤S103中,负载均衡实例根据所述负载均衡配置信息,在OVS上配置GroupTable,包括:
创建Group,类型选择select,并创建与各个后端实例对应的bucket。
进一步地,步骤S104中,根据所述GroupTable选择后端实例接收网络数据,包括:
根据类型选择随机执行其中一个bucket;并修改网络数据目标Mac地址为对应的后端实例的Mac地址,修改目标IP为所述虚拟IP,最后向外发送。
进一步地,步骤S105中,参考图2,为所述GroupTable配置FlowTable,创建Flow,根据负载均衡信息匹配目标端口和协议类型,通过所述FlowTable将网络数据导向所述GroupTable中。
进一步地,参考图3,步骤S106-步骤S108中,客户端发送访问请求时,SDN控制器下发预设规则让访问请求到达负载均衡实例,当该预设请求经过负载均衡实例处理后,SDN控制器根据网卡信息和访问请求的源IP判断该访问请求是否为负载均衡实例发出,如果是,则SDN控制器根据修改后的目标Mac地址找到目标后端实例,并下发正向规则让访问请求到达目标后端实例,同时,下发反向规则,反向规则中匹配指定的虚拟IP,并修改源IP为负载均衡实例的IP,让后端实例的响应数据到达客户端;如果否,则SDN控制器忽略该访问请求。
作为一种优选的实施方式,所述方法还包括:
负载均衡实例实时监控网络数据流量,当所述网络数据流量超过最高预设阈值或小于最低预设阈值,则负载均衡实例自适应调整自身所占用的CPU数量和内存。
本实施例提供的基于云计算和SDN网络的负载均衡控制方法,至少包括如下有益效果:
(1)基于云计算和SDN网络的OVS负载均衡实例具备了弹性,可随着流量的多少动态调整实例的规模,利用OVS实现单向代理的负载均衡,消除了双向代理模式对负载均衡系统带来的资源消耗,提高了负载均衡的性能;
(2)实现了在虚拟机上搭建OVS作为负载均衡,增加了OVS在网络处理方面的用途,可为后续基于OVS的网络开发者提供可参考的蓝本;
(3)SDN控制器在下发正向规则的同时下发反向规则,减少网络数据包在到达SDN控制器后的询问次数,从而降低了SDN控制器压力,提升了网络数据的流通速度。
实施例二
参考图4,本实施例提供一种基于云计算和SDN网络的负载均衡控制系统,包括:
云平台1,用于创建负载均衡实例并添加后端实例,向SDN控制器注册所述负载均衡实例,对所述后端实例添加虚拟IP,下发负载均衡配置信息至负载均衡实例;
负载均衡实例2,用于根据所述负载均衡配置信息,在OVS上配置GroupTable,根据所述GroupTable选择后端实例接收网络数据,并修改网络数据目标Mac地址为对应的后端实例的Mac地址,修改目标IP为所述虚拟IP,为所述GroupTable配置FlowTable,通过所述FlowTable将网络数据导向所述GroupTable中;
SDN控制器3,用于接收客户端发送的访问请求,并根据预设规则将所述访问请求发送至负载均衡实例,判断所述访问请求是否为负载均衡实例发出,如果是,则SDN控制器根据修改后的网络数据目标Mac地址寻找对应的后端实例,下发正向规则使得所述访问请求到达后端实例,并下发反向规则将后端实例的响应发送至客户端。
进一步地,云平台1向SDN控制器注册所述负载均衡实例的注册信息包括负载均衡字段,用于区别所述负载均衡实例和后端实例。
进一步地,负载均衡实例2还用于创建Group,类型选择select,并创建与各个后端实例对应的bucket。
进一步地,负载均衡实例2还用于根据类型选择随机执行其中一个bucket。
进一步地,负载均衡实例2还用于实时监控网络数据流量,当所述网络数据流量超过最高预设阈值或小于最低预设阈值,则负载均衡实例自适应调整自身所占用的CPU数量和内存。
本实施例提供的基于云计算和SDN网络的负载均衡控制系统,至少包括如下有益效果:
(1)基于云计算和SDN网络的OVS负载均衡实例具备了弹性,可随着流量的多少动态调整实例的规模,利用OVS实现单向代理的负载均衡,消除了双向代理模式对负载均衡系统带来的资源消耗,提高了负载均衡的性能;
(2)实现了在虚拟机上搭建OVS作为负载均衡,增加了OVS在网络处理方面的用途,可为后续基于OVS的网络开发者提供可参考的蓝本;
(3)SDN控制器在下发正向规则的同时下发反向规则,减少网络数据包在到达SDN控制器后的询问次数,从而降低了SDN控制器压力,提升了网络数据的流通速度。
应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。
机译: 基于SDN网络的应用服务链的SDN策略和计费控制方法及装置
机译: 基于SDN网络的应用服务链的SDN策略和计费控制方法及装置
机译: 基于SDN的基于SDN的网络监控虚拟化系统及其方法