27Mb/s、20Mb/s、30Mb/s。经计算, 下一个 5s 后预测流速值为 14 ? 5Mb/s、25 ? 6Mb/s、16 ? 5Mb/s、58Mb/s。
[0090] 步骤II,端口流速分析模块对从端口检测模块得到的各端口流量速率进行分析, 判断是否需要进行负载调度:
[0091] 首先,端口流速分析模块从端口检测模块得到各端口的流量速率,计算出Server4 的连接端口具有最大流速且最大端口流速值为70Mb/s,流速失衡值为1.7。假设端口带宽阈 值为100Mbps,P阈值为1.5。此时虽然最大端口流速值在端口带宽阈值的范围内,但流速失 衡值远大于所设的P阈值。根据z分数的含义,最大端口流速值与流速平均值的差值有1.7个 标准差,整体流速的均衡程度不在设定的范围以内,此时服务器集群需要负载均衡调度。
[0092] 然后,端口流速分析模块从端口检测模块得到各端口的实时流速值和流速预测 值。假设0取0.6,通过一次指数平滑法计算出各端口的混合流速值分别为15.4Mb/s、 25.2Mb/s、15.6Mb/s、65.2Mb/s。
[0093] 步骤III,负载均衡模块负责新用户的访问请求并对流速失衡服务器集群的负载 调度:
[0094]首先,负载均衡模块从端口流速分析模块得到各端口的混合流速值,Server 1服务 器的交换机端口具有最小的混合流速值。根据步骤II可知,此时服务器集群流量不均衡,负 载均衡模块修改部分Server4服务器的会话流表至Server 1服务器,并将这部分会话同步到 Server 1服务器中,实现了对流量的分流。
[0095] 然后,当有新用户主机访问服务器集群的虚拟IP时,负载均衡模块通过添加流表 在新用户主机和具有最小混合流速值的Serverl服务器之间建立会话。
[0096] 通过上述实施例可以看出,本发明以流速失衡值、端口最大流速是否大于相应的P 阈值、端口带宽阈值作为判断负载均衡的条件。使用端口的实时带宽值、端口的流速预测值 作为参数,计算出最小混合流速值的端口号,将业务流量分配给该端口的服务器。
[0097]综上所述,本发明基于新型的SDN网络架构,在SDN控制器中进行模块化编程,实现 了端口检测模块、端口流速分析模块、负载均衡模块。端口检测模块对连接服务器的交换机 端口进行流速检测;端口流速分析模块通过计算得到的负载参数分析出服务器集群是否需 要进行负载均衡;负载均衡模块通过最小混合流速值计算出分配给新旧用户主机的交换机 端口并以添加或修改流表的方式实现对服务器集群的负载均衡。
【主权项】
1. 一种面向软件定义网络的服务器负载均衡方法,其特征在于:依次包括以下步骤: (1) 端口检测模块定期统计出各服务器连接的SDN交换机端口实时流量,计算出流量速 率和下一个测试时间点的端口预测流速; (2) 端口流速分析模块分析从端口检测模块得到的各端口流量速率,判断是否需要进 行负载调度; (3) 负载均衡模块负责新用户的访问请求以及对流速失衡服务器集群的负载调度,SDN 控制器添加流表与指定的服务器建立新的会话或修改流表将原有的会话调配给指定的服 务器。2. 根据权利要求1所述的面向软件定义网络的服务器负载均衡方法,其特征在于:所述 步骤(1)的具体方法为: (1.1) SDN控制器通过端口检测模块定期向网络内的所有SDN交换机发送端口统计请求 消息获取端口信息,SDN交换机通过安全信道将端口统计应答消息发送给SDN控制器,控制 器通过连接服务器各交换机端口的应答消息收集到每个端口的实时流量并计算出每个端 口的流速P〇rtspeed(i,t),其中i表示SDN交换机的第i个端口; (1.2) 根据每个服务器连接端口的流速p〇rtSpeed(i,t),使用统计学中的一次指数平 滑法计算出下一个测试时间点的端口预测流速F( i,t+Ι)。3. 根据权利要求1所述的面向软件定义网络的服务器负载均衡方法,其特征在于:所述 步骤(2)的具体方法为: (2.1) 端口流速分析模块分析从端口检测模块得到的流量速率,计算出各端口流速的 平均值黎、方差VarianceSp eed(t)、标准差〇pQrtspeed(t);通过比较各端口的流速值 portspeed(i,t)计算出各端口占用的最大流速MaxPortspeed(t);将最大流速 1&^01^8卩66(1(1:)和各端口流速的平均值/ 5£?卿^(〇、标准差〇1)。1^1)(3(3(:1( 1;)作为参数,根据统 计学中的z分数法计算出流速失衡值P (t);根据当前流速值和流速预测值计算出混合流速 值Q(i,t); (2.2) 根据网络的实际需求设置P (t)阈值PThresho 1 d和带宽阈值BwThresho 1 d,当P(t) 值达到P(t)阈值PThreshold或最大流速MaxPortspeed(t)达到带宽阈值BwThreshold时,月艮 务器集群需要进行负载调度。4. 根据权利要求1所述的面向软件定义网络的服务器负载均衡方法,其特征在于:所述 步骤(3)的具体方法为: (3.1) 当有新的主机访问服务器集群时,负载均衡模块选择混合流速值Q( i,t)最小的 端口作为指定端口;负载均衡模块每隔15s根据端口流速分析模块的结果信息进行判断,若 服务器集群需要进行负载均衡,将具有最小混合流速值Q( i,t)的端口设为指定端口; (3.2) SDN控制器给指定的SDN交换机端口下发流表,在主机和指定服务器间建立会话 或将原有的会话同步到指定服务器,实现对服务器集群的负载均衡。5. 根据权利要求2所述的面向软件定义网络的服务器负载均衡方法,其特征在于:所述 步骤(1.1)中每个端口流速p〇rtspeed( i,t)的确定方法为: (1 · 1 · 1)确定流速portspeed(i,t): portspeed(i,t)= (portstraffic(i,t)-portstraffic(i,t-1))/intervaltime, 其中portstraff ic(i,t)表示t时刻的i端口流量值,portstraffic(i,t_l)表示t_l时 刻的i端口流量值,interval time表示两个测试时间点的间隔。6. 根据权利要求2所述的面向软件定义网络的服务器负载均衡方法,其特征在于:所述 步骤(1.2)中下一个测试时间点的端口预测流速F( i,t+Ι)的确定方法为: (1.2.1) 使用统计学中的一次指数平滑法确定下一个测试时间点端口流速预测值F( i, t+1):其中portspeed(i,t)为t时刻的流速值、F( i,t)为t-1时刻的流速预测值,其中第1个时 间段的流速预测值和第1个时间段的流速值相等,α为平滑常数,取值范围为[0,1]。7. 根据权利要求3所述的面向软件定义网络的服务器负载均衡方法,其特征在于:所述 步骤(2.1)中P (t)值的确定方法为: (2 . 1 . 1 )通过每个端口的流速值ρ 〇 r t s p e e d ( i,t)确定各端口流速的平均值 Por哗?败/(?)、最大流速MaxPortspeed(t): /·.X / η 其中为所有端口的流速和,假设有η个端口; ?-1 (2.1.2) 通过每个端口的流速值portspeed(i,t)和端口流速的平均值Pompew/O)确定 各端口流速的方差VarianceSp eed(t)、标准差〇pQrtspeed(t):(2 · 1 · 3)将端口最大流速MaxPortspeed(t)和各端口流速的平均值、标准差 作为参数,根据统计学中的z分数法确定P(t)值:z分数是统计学中用来计算一个给定分数距离平均数多少个标准差,以标准差为单位 来表示一个分数在团体中所处位置的相对位置量数; (2 · 1 · 4)利用端口流速值portspeed(i,t)和端口流速预测值F( i,t+Ι)确定各端口的混 合流速值Q(i,t): Q(i,t)=P*portspeed(i,t) + (l_0)*F(i,t+l),l〈i〈n 其中portspeed(i,t)为各端口流速值,F( i,t+1)为各端口在下一个测试时间点的流速 预测值,β的选择根据具体情况而定,β越大,Q(i,t)的值更多的受到当前流速的影响;β越 小,Q( i,t)的值更多的受到流速预测值的影响。
【专利摘要】本发明公开了一种面向软件定义网络的服务器负载均衡方法,面向软件定义网络(Software Defined Network,缩写为SDN)环境中,使用模块化思想实现的服务器负载均衡方法,依次包括以下步骤:端口检测模块定期统计出各服务器连接的SDN交换机端口实时流量,计算出流量速率和下一个测试时间点的端口预测流速;端口流速分析模块分析从端口检测模块得到的各端口流量速率,判断是否需要进行负载均衡;负载均衡模块对服务器集群进行负载均衡,SDN控制器下发流表将新的业务流量分配给指定的服务器。本发明将实时流速和预测流速综合考虑并结合了SDN控制与转发相分离的架构优势,具有较好的负载均衡能力和效率。
【IPC分类】H04L29/08
【公开号】CN105721577
【申请号】CN201610086201
【发明人】龚冉, 崔杰, 王良民, 仲红, 谢晴晴, 殷赵霞, 肖云
【申请人】安徽大学
【公开日】2016年6月29日
【申请日】2016年2月15日