一种基于SDN的负载均衡实现系统及方法与流程

文档序号:14022721阅读:790来源:国知局
一种基于SDN的负载均衡实现系统及方法与流程

本发明涉及一种基于sdn的负载均衡实现系统及方法,属于计算机数据处理领域。



背景技术:

负载均衡(loadbalance,简称lb)是一种服务器或网络设备的集群技术。负载均衡将特定的业务(网络服务、网络流量等)分担给多个服务器或网络设备,从而提高了业务处理能力,保证了业务的高可用性。

例如:某系统每天有7000万笔的业务量,单台服务器满负荷也只能处理5000万笔业务,单台服务器根本无法处理这么大的业务量。此时可以再增加一台处理能力相同的服务器,将所有业务分摊到这两台服务器,让他们分别处理一部分,负载均衡技术正是解决了如何将业务分摊到两台甚至多台服务器。

目前实现负载均衡的方式主要通过全代理来实现,通过全代理实现的负载均衡,客户端要与全代理建立连接,代理再与后端服务器建立连接,需要建立两次连接,这极大的降低了负载均衡的性能。

如图1所示的全代理的负载均衡实现流程,具体如下:首先客户端和全代理(负载均衡全代理)建立tcp链接,将http请求发送至全代理,全代理对http请求进行解析,进行会话管理、访问控制等操作,之后根据负载均衡算法为该http请求分配一个后端服务器,并将处理后的http请求转发至该后端服务器,服务器在处理完成之后,将http响应报文发送给全代理,经由全代理将该响应报文返回给客户端。这样一次请求需要建立两次连接。

sdn:软件定义网络;

openflow:sdn控制平面与转发平面通信协议;

openflow交换机:支持openflow协议的软件交换机。



技术实现要素:

本发明的技术方案提供了一种基于sdn的负载均衡实现系统及方法,基于sdn技术的负载均衡实现了链路级的负载均衡,一次请求只需要建立一次连接,解决了现有技术的不足。

本发明的技术方案包括一种基于sdn的负载均衡实现系统,该系统包括终端、控制器、交换机及多个后端服务器,其中:终端,用于在达到负载均衡时,生成将终端的业务分配到后端服务器的报文,报文包括终端ip和虚拟ip地址,以及还包括用于业务处理的数据包;控制器,用于生成交换机可识别的流表,并将流表发送至所述交换机;交换机,用于接收所述终端发送的请求指令以及接收所述控制器发送的流表,根据流表预设的规则对虚拟ip地址进行修改,并将修改的数据包进行发送,以及接收所述后端服务器发送的数据包并进行ip地址的还原;后端服务器,用于接收所述交换机发送的数据包,以及执行对应的业务运算并生成相应数据包,其中数据包包括报文。

根据所述的基于sdn的负载均衡实现系统,其特征在于:所述终端进一步为用于执行业务处理的服务器,所述后端服务器用于分担业务负载调度的数据库。

根据所述的基于sdn的负载均衡实现系统,其中控制器还包括:流表规则定制模块,用于自定义流表规则,并将流表规则发送至所述交换机和服务器,所述流表规则用于对控制器的ip转换进行进行限定。

根据所述的基于sdn的负载均衡实现系统,其中交换机用于执行以下步骤:在对任意数据包执行ip转换时记录转换规则,并将转换标识同时记载于数据包和控制器中;当流表规则发生动态变化时,校验经过控制器的数据包是否存在历史转换标识,若存在则调用历史转换规则对数据包执行还原转换,若不存在历史转换标识,则使用新的转换对数据包执行转换。

根据所述的基于sdn的负载均衡实现系统,其中交换机还包括:当识别到经过的数据包不存在于终端时,将数据包发送至控制器进行存储或删除。

本发明的技术方案还包括一种基于sdn的负载均衡实现方法,其特征在于,该方法包括:在达到负载均衡时,生成将终端的业务分配到后端服务器的报文,报文包括终端ip和虚拟ip地址,以及还包括用于业务处理的数据包;生成交换机可识别的流表,并将流表发送至交换机;接收终端发送的请求指令以及接收控制器发送的流表,根据流表预设的规则对虚拟ip地址进行修改,并将修改的数据包进行发送,以及接收后端服务器发送的数据包并进行ip地址的还原;接收交换机发送的数据包,以及执行对应的业务运算并生成相应数据包,其中数据包包括报文。

本发明的有益效果为:实现了链路级的负载均衡,相比传统代理级的负载均衡;极大的提高了负载均衡的转发性能;动态修改流表规则,可实现网络的灵活定制。

附图说明

图1所示为根据本现有技术的全代理的负载均衡实现流程图;

图2所示为根据本发明实施方式的总体结构框图;

图3所示为根据本发明实施方式的交互图。

具体实施方式

为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。本发明的基于sdn的负载均衡实现系统及方法适用于服务器负载均衡的实现。

图2所示为根据本发明实施方式的总体结构框图。其中包括终端,交换机、控制器、多个服务器,其中交换机为openflow

与传统的负载均衡不同,基于openflow的负载均衡的转发最终是通过流表实现的。

首先控制器根据负载均衡的规则,生成openflow交换机可以识别的流表,并将流表派发给openflow交换机。

当openflow交换机在接到发给虚拟ip的数据包后,根据流表中设定的规则,将数据包中的目的ip修改为后端服务器的ip,然后进行转发。当在本地流表中查找不到时,则将数据包交由控制器处理或者丢弃。

后端服务器的响应报文通过openflow交换机时,交换机根据流表,将报文的源地址被还原为虚服务的vsip,再返回给客户端,完成整个负载调度过程。

图3所示为根据本发明实施方式的交互图。

其包括以下流程:

(1)终端用户请求数据包的发送,即业务请求,此时目的ip=虚拟ip地址,源ip=终端ip地址;

(2)交换机根据流表处理数据包,此时目的ip=(后端)服务器ip地址,源ip=终端ip地址;

(3)服务器对交换机的响应,根据流表处理数据包目的ip=终端ip,源ip=服务器ip地址;

(4)交换机对终端进行相应,其中目的ip=终端ip,源ip=虚拟ip地址。

从以上流程可以看出,客户端请求到达负载均衡时,并没有建立连接而只是修改了ip包中的目的地址,然后将ip包直接转发到对应的服务器,从而实现了链路级的负载均衡,一次请求只是建立了一次连接,这样极大的提高了负载均衡的转发性能。

以上所述,只是本发明的较佳实施例而已,本发明并不局限于上述实施方式,只要其以相同的手段达到本发明的技术效果,都应属于本发明的保护范围。在本发明的保护范围内其技术方案和/或实施方式可以有各种不同的修改和变化。



技术特征:

技术总结
本发明的技术方案包括一种基于SDN的负载均衡实现系统及方法,该系统包括终端、控制器、交换机及多个后端服务器,用于实现:在达到负载均衡时,生成将终端的业务分配到后端服务器的报文,报文包括终端IP和虚拟IP地址,以及还包括用于业务处理的数据包;生成交换机可识别的流表,并将流表发送至交换机;根据流表预设的规则对虚拟IP地址进行修改,以及接收后端服务器发送的数据包并进行IP地址的还原;接收交换机发送的数据包,以及执行对应的业务运算并生成相应数据包,其中数据包包括报文。发明的有益效果为:实现了链路级的负载均衡,相比传统代理级的负载均衡;极大的提高了负载均衡的转发性能;动态修改流表规则,可实现网络的灵活定制。

技术研发人员:李宇翔;谭小波;刘文学
受保护的技术使用者:赞同科技股份有限公司
技术研发日:2017.10.24
技术公布日:2018.03.27
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1