本发明属于网络服务器负载均衡领域,尤其涉及一种基于sdn(软件定义网络)的服务器负载均衡方法设计。
背景技术:
如今各种新型的网络应用的兴起,传统网络的业务量越来越大,但是网络带宽和服务器的处理能力却远不及网络访问数据流量的增长速度。随着服务器资源的不断消耗,也使网络安全性大打折扣。针对此情况而衍生出来的一种廉价有效透明的方法以扩展现有网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性的技术就是负载均衡(loadbalance)。
负载均衡的发展基础就是负载均衡算法。服务器负载均衡算法有很多(持续性的和非持续性的),包括轮循算法、最少连接算法、响应时间算法、散列算法、最少连接失误算法、链路带宽算法等等。其中轮询算法属于一种静态的负载均衡算法,即活动是可预知的,当有服务连接请求时,根据轮询算法,服务请求被轮流发送到各个节点,即每个节点被选中的几率是1/n,该算法可以简单实现负载均衡并很容易算出各个节点的负载率。轮询算法只适用于集群节点性能相同的网络中。此外实际服务器(realserver)可以被分配不同的加权值来调整被分配的流量。比如性能高的大型服务器可配置较大的加权值,而为性能较低的小型服务器设置较小的加权值。为了避免服务器因过载而崩溃,可为实际服务器指定最大连接阈值来避免该服务器过载。任何服务器可被指定为另一台服务器的备份服务器或溢出服务器,从而进一步保证了应用可用性。虽然在传统网络中可以实施有效的服务器负载均衡,但却不能灵活地优化负载均衡分配策略,而在sdn网络下就可以很好地解决了这个问题。
技术实现要素:
本发明的目的是实现一种基于sdn的服务器负载均衡方法,能对服务器集群进行实时监控流量大小,把流量合理分配到各服务器及链路。
为实现上述目的,本发明采用的技术方案为一种基于sdn的服务器负载均衡方法,具体包含以下步骤:
s1:控制器预先设置好参数,包括各个服务器的最大带宽、负载率阈值;
s2:控制器对全网络进行实时监控,随时掌握网络流量以及服务器动态变化;
s3:控制器利用arp探测机制实时对服务器进行探测测量;
s4:控制器选用负载率最小的服务器作为最优服务器进行访问,若服务器负载率相同则进行轮询;
s5:当已存在的最优服务器负载率达到阈值时,则根据轮询以及最少链接数规则进行下个服务器选择;
s6:当数据包从客户端主机发出,控制器会选择最优的路径进行转发,转发端口最优准则为流量负载最小;
s7:使用nat映射实现服务器虚拟ip功能;
s8:当有超大流量或黑名单主机访问,则进行防火墙拦截丢弃。
进一步,上述服务器最大带宽代表各个服务器总带宽大小,其中所述访问阈值代表各个服务器所能承受的最大负载率。
进一步,上述负载率阈值即服务器最大负载率,服务器负载率可以用下式表示:
进一步,上述arp探测机制为当服务器接收到用户主机主动发起的arprequest报文时,若服务器回应用户arpreply报文,则表明服务器可用,反之则不可用。
所述arprequest是广播包,由于采用虚拟ip地址,导致它询问的对象不在同一个局域网,路由器就提供代理arp服务。
进一步,上述负载率最小的服务器可用以下三个条件进行判断:
①所选服务器是否在可用列表里,若可用,则进行下一条比对;
②当前服务器负载率是否小于其设定的阈值大小,若小于,则进行下一条比对;
③最优服务器是否已经存在或者服务器负载率大于已知最优服务器的负载率,若还未存在最优服务器或者满足负载率最小,则可将该服务器判断为最优服务器。
进一步,上述轮询以及最少链接数规则是指控制器通过服务器负载率最小原则选择最优服务器,当有下一个新的用户服务连接请求时,依控制器判断当前提供访问服务的服务器是否超过设置的负载阈值,如果没超出则依然选择本台服务器提供服务,若超出则在剩余服务器中选择流量剩余带宽最大的服务器提供访问请求,以此类推。
进一步,上述nat映射是指用户访问时只能通过服务器外部的ip实现,通过下发双向流表进行外部ip与实际提供访问的服务器ip进行映射与转化。
进一步,上述超大流量即超过各个服务器设置的最大总带宽或负载阈值,所述黑名单主机即存在于黑名单上的主机。
所述黑名单是在控制器上预设的访问主机ip地址,存在黑名单上的主机一律拦截,禁止对服务器进行访问。
与现有技术相比,本发明具有以下有益效果:
1.本发明通过控制器对全网络中服务器以及链路进行监控,可以计算出最优服务器以及最优路径;
2.利用sdn下发流表特性,在每个可用路径和服务器上合理分布数据流,从而可以解决单个服务器的网络过载状况;
3.保证链路安全,剔除超大恶意流量,进行负载均衡的同时对网路和服务器起到了保护作用。
附图说明
图1为本发明实施方式提供的基于sdn的服务器负载均衡方法框图;
图2为本发明实施方式提供的基于sdn的服务器负载均衡最佳服务器及转发路径选择流程图;
图3为本发明实施方式提供的基于sdn的服务器负载均衡网络核心算法流程图。
具体实施方式
为了更加直观清楚的展示本发明的目的和优点,下面将结合本发明实施方式中的附图对本发明进行详细阐述,显然,所描述的实施方式是本发明一部分实施方式,而不是全部的实施方式。基于本发明中的实施方式,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施方式,都属于本发明保护的范围。
如图1所示,本实施例提出一种基于sdn的服务器负载均衡方法,所应用的负载均衡算法结合了带宽阈值法以及轮询算法,方法包括:
首先预先设置好服务器默认最大带宽及访问阈值;阈值即服务器最大负载率,各服务器负载率计算如下公式:
控制器利用arp探测机制实时对服务器进行探活测量,当服务器接收到用户主机主动发起的arprequest报文时,若服务器回应用户arpreply报文,则表明服务器可用,反之则不可用。
控制器对全网络进行实时监控,随时掌握网络流量以及服务器动态变化;
控制器选用最优服务器进行访问;
其中最优服务器判断标准:是否所选服务器是在可用列表里;若可用,是否当前服务器负载率小于其设定的阈值大小;若小于,是否最优服务器已经存在或者服务器负载率大于已知最优服务器的负载率。若还未存在最优服务器或者满足负载率最小,则可将该服务器判断为最优服务器。
控制器选择最优的路径进行转发,转发端口最优准则为流量负载最小;
当有超大流量或黑名单主机访问,则进行防火墙拦截丢弃。所述防火墙对超出所有服务器负载阈值的用户访问进行阻断,所述黑名单是在控制器上预设的访问主机ip地址,存在黑名单上的主机一律拦截,禁止对服务器进行访问;
控制器根据上述规则下发流表到openflow交换机,交换机根据相应流表选择路径及服务器进行转发流量;
确定最佳服务器后使用nat映射实现服务器虚拟ip功能,保护真实服务器地址不外泄;
经过nat映射形成的虚拟ip地址,导致arprequest广播包询问的对象不在同一个局域网,路由器就提供代理arp服务。
通过上述功能,在本实施例中,提出的基于sdn的服务器负载均衡方法可以有效检测全网参数动态变化,并对服务器加以保护,实现安全的服务器负载均衡。
参考图2,本实施例提出一种基于sdn的服务器负载均衡方法,最佳服务器及转发路径流程如下:
s0:当主机发送数据包,首先控制器会进行arp探活,确保该服务器是可用服务器,若服务器可用,则进入步骤s1,若不可用,则进入步骤s6;
s1:控制器判断当前服务器负载率小于其设定的阈值大小,若小于,则进入步骤s2,反之则进入步骤s6;
s2:控制器判断最优服务器已经存在或者服务器负载率大于已知最优服务器的负载率。若还未存在最优服务器或者满足负载率最小,则可将该服务器判断为最优服务器,进入步骤s3,若未选出最优服务器,则进入步骤s6;
s3:控制器判断路由器端口流量负载是否为最小,若是,则选择该路由进行转发,进入步骤s4,反之则选择进入步骤s5;
s4:最佳服务器进行访问服务;
s5:选择下一个端口。
s6:选择下一个服务器,进入步骤s0,若所有服务器都不符合,则丢弃数据包。
通过上述流程,可以选择出最佳服务器和最优准发路径。
参考图3,本实施例提出一种基于sdn的服务器负载均衡方法,所应用的负载均衡算法结合了带宽阈值法以及轮询算法,算法方法如下:
控制器通过上述步骤s1~s6得到最优服务器,进行连接服务,故此处不再重复;
当有新的用户服务连接请求时,依据实时监测用户请求连接的流量大小,来判断当前提供访问服务的服务器是否超过设置的负载阈值;
没超出依然选择本台服务器提供服务,并且实时跟踪用户流量;
如果流量过大,则为其选择负载率最小服务器提供服务或是因流量过大而直接拦截,如此循环。
由上可见,本发明实施方式的一种种基于sdn的最小连接负载均衡方法设计,,通过控制器对全网络中服务器以及链路,计算出最优服务器以及最优路径,把流量合理分配到各服务器及链路,从而实现服务器的负载均衡。
本说明书中的各个实施方式均采用递进的方式描述,各个实施方式之间相同相似的部分互相参见即可,每个实施方式重点说明的都是与其他实施方式的不同之处。
最后应说明的是:以上所述仅是本发明的优选实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。