一种面向软件定义网络的服务器负载均衡方法
【技术领域】
[0001] 本发明属于计算机网络技术领域,具体涉及一种面向软件定义网络的服务器负载 均衡方法。
【背景技术】
[0002] 传统的TCP/IP网络结构体系中,网络设备逻辑控制和数据转发紧耦合,缺乏灵活 性,随着网络规模急速扩大而暴露出种种问题和挑战。人们只有通过不断增加新的网络协 议或将各种复杂功能添加到交换机和路由器等基层网络设备中。这些修补方法额外增加了 基层设备的复杂性,增大了网络处理数据的冗余性和网络的管理难度。SDN概念及相关技术 的出现正是为了克服以上缺点。
[0003] SDN是一种数控分离、网络可编程的新型网络架构。从上至下分为应用层、控制层、 转发层。应用层主要向用户提供各种服务;控制层主要由若干个SDN控制器组成,用来负责 处理采集到的数据资源,维护网络拓扑、信息状态等;转发层主要负责基于流表的数据处 理,转发和状态收集。在这种分离架构中,技术人员可以通过编程的方式利用控制层的SDN 控制器高效、灵活地制定符合业务需求的转发策略或测试新的网络协议。
[0004]负载均衡主要是指网络中将大量数据流以并发或单独访问的方式分配给多台节 点设备,使其同时处理信息。这样大大缩减了用户的等待相应时间,从而提高了系统的处理 能力。其本质就是通过对数据包数据进行动态地统计和实时地分析,根据分析结果把数据 流合理地分配到多台节点设备上。负载均衡加强了网络中数据的处理能力,提高了服务器 集群的性能。
[0005] z分数也叫标准分数,运算过程是一个数与平均数的差再除以标准差。z分数能够 反应出一个给定分数距离平均数具有多少个标准差,以标准差为单位来表示一个分数在团 体中的相对位置量数。
[0006] 时间序列预测法是一种考虑变量随时间发展变化规律并用该变量以往的统计资 料建立数学模型作外推的预测方法。
[0007] -次指数平滑法是时间序列预测法的一种,统计学中用作中短期经济发展趋势的 预测,在网络通信领域可以对网络中的流量进行短期预测。
【发明内容】
[0008] 发明目的:本发明的目的在于解决现有技术中存在的不足,提供一种面向软件定 义网络的服务器负载均衡方法,通过对连接服务器集群的交换机各端口流速信息进行判 断,计算出流量分配的指定端口,从而达到对服务器集群实现负载均衡的目的,通过本发明 可以实现高效的端口流速检测和预测以及对服务器集群的分流。
[0009] 技术方案:本发明的一种面向软件定义网络的服务器负载均衡方法,依次包括以 下步骤:
[0010] (1)端口检测模块定期统计出各服务器连接的SDN交换机端口实时流量,计算出流 量速率和下一个测试时间点的端口预测流速;
[0011] (2)端口流速分析模块分析从端口检测模块得到的各端口流量速率,判断是否需 要进行负载调度;
[0012] (3)负载均衡模块负责新用户的访问请求以及对流速失衡服务器集群的负载调 度,SDN控制器添加流表与指定的服务器建立新的会话或修改流表将原有的会话调配给指 定的服务器。
[0013] 进一步的,所述步骤(1)的具体方法为:
[0014] (1.1) SDN控制器通过端口检测模块定期向网络内的所有SDN交换机发送端口统计 请求消息获取端口信息,SDN交换机通过安全信道将端口统计应答消息发送给SDN控制器, 控制器通过连接服务器各交换机端口的应答消息收集到每个端口的实时流量并计算出每 个端口的流速P〇rtspeed(i,t),其中i表示SDN交换机的第i个端口;
[0015] (1 ? 2)根据每个服务器连接端口的流速portspeed( i,t),使用统计学中的一次指 数平滑法计算出下一个测试时间点的端口预测流速F( i,t+1)。
[0016]进一步的,所述步骤(2)的具体方法为:
[0017] (2.1)端口流速分析模块分析从端口检测模块得到的流量速率,计算出各端口流 速的平均值哗、方差VarianceSp eed(t)、标准差Oportspeed(t);通过比较各端口的流 速值p〇rtspeed(i,t)计算出各端口占用的最大流速MaxPortspeed(t);将最大流速 MaxPortspeed(t)和各端口流速的平均值标准差op〇rtspeed(t)作为参数,根据统 计学中的z分数法计算出流速失衡值P (t);根据当前流速值和流速预测值计算出混合流速 值Q(i,t);
[0018] (2.2)根据网络的实际需求设置P(t)阈值PThresho 1 d和带宽阈值BwThresho 1 d,当 P(t)值达到P(t)阈值PThreshold或最大流速MaxPortspeed(t)达到带宽阈值BwThreshold 时,服务器集群需要进行负载调度。
[0019]进一步的,所述步骤(3)的具体方法为:
[0020] (3.1)当有新的主机访问服务器集群时,负载均衡模块选择混合流速值Q( i,t)最 小的端口作为指定端口;负载均衡模块每隔15s根据端口流速分析模块的结果信息进行判 断,若服务器集群需要进行负载均衡,将具有最小混合流速值Q( i,t)的端口设为指定端口;
[0021] (3.2) SDN控制器给指定的SDN交换机端口下发流表,在主机和指定服务器间建立 会话或将原有的会话同步到指定服务器,实现对服务器集群的负载均衡。
[0022] 进一步的,所述步骤(1.1)中每个端口流速portspeed( i,t)的确定方法为:
[0023] (1 ? 1 ? 1)确定流速portspeed(i,t):
[0024] portspeed(i,t)=(portstraffic(i,t)-portstraffic(i,t~l))/intervaltime,
[0025] 其中portstraffic(i ,t)表示t时刻的i端口流量值,portstraffic(i ,t_l)表示t_ 1时刻的i端口流量值,interval time表示两个测试时间点的间隔。
[0026] 进一步的,所述步骤(1.2)中下一个测试时间点的端口预测流速F(i,t+1)的确定 方法为:
[0027] (1.2.1)使用统计学中的一次指数平滑法确定下一个测试时间点端口流速预测值 F(i,t+1): I F(/, / + 1) = a * portspeed (/, /) + (1 - a) ^ F(i, l)
[0028] i I F(/,2) - portspeed(L2)
[0029]其中portspeed(i ,t)为t时刻的流速值、F(i ,t)为t-1时刻的流速预测值,其中第1 个时间段的流速预测值和第1个时间段的流速值相等,a为平滑常数,取值范围为[0,1],根 据实际网络流速情况设置a值,一般为了使流速预测值敏感地反映最新变化值,应取较大的 a值;若为了反映该时间序列的长期预测值,应取较小的a值。
[0030]进一步的,所述步骤(2.1)中P(t)值的确定方法为:
[0031] (2. 1 . 1)通过每个端口的流速值portspeed(i,t)确定各端口流速的平均值 For哗.e:W(〇、最大流速MaxPortspeed(t):
n
[0034] 其中_,〇为所有端口的流速和,假设有n个端口;
[0035] (2 ? 1 ? 2)通过每个端口的流速值portspeed(i,t)和端口流速的平均值 确定各端口流速的方差VarianceSp eed(t)、标准差〇p〇rtspeed(t):
[0038] (2 ? 1 ? 3)将端口最大流速MaxPortspeed(t)和各端口流速的平均值户〇,_?^(〇、标 准差作为参数,根据统计学中的Z分数法确定P(t)值:
[0040] z分数是统计学中用来计算一个给定分数距离平均数多少个标准差,以标准差为 单位来表示一个分数在团体中所处位置的相对位置量数,使用z分数计算出端口最大流速 值在所有端口流速中的相对位置量数,在一定程度上反映出整体流速是否处于均衡的状 态;
[0041 ] (2 ? 1 ? 4)利用端口流速值portspeed( i,t)和端口流速预测值F( i,t+1)确定各端口 的混合流速值Q(i,t):
[0042] Q(i,t)=0*portspeed(i,t) + (l_0)*F(i,t+l),l〈i〈n
[0043] 其中portspeed( i,t)为各端口流速值,F(i,t+1)为各端口在下一个测试时间点的 流速预测值。0的选择根据具体情况而定,0越大,Q(i,t)的值更多的受到当前流速的影响4 越小,Q( i,t)的值更多的受到流速预测值的影响。
[0044] 有益效果:本发明利用统计学知识,根据与服务器相连的SDN交换机各个端口的混 合流速信息,动态地将用户请求和会话调度至合适的服务器,实现了服务器的负载均衡,将 实时流速和预测流速综合考虑并结合了 SDN控制与转发相分离的架构优势,具有较好的负 载均衡能力和效率。与现有技术相比,本发明具有以下优点:
[0045] (1)本发明采用模块化编程,提取SDN架构下的交换机端口流速信息,使用z分数计 算得到的流速失衡值、端口最大流速