一种基于模糊逻辑的SDN负载均衡方法与流程

文档序号:18135748发布日期:2019-07-10 10:35阅读:248来源:国知局
一种基于模糊逻辑的SDN负载均衡方法与流程

本发明属于网络优化、网络测量领域,具体涉及一种基于模糊逻辑的sdn负载均衡方法。



背景技术:

近几年,随着互联网+、电子商务与大数据等技术的不断兴起和发展,网络用户数量成比例的增加,互联网的规模与流量成爆炸式增长。同时虚拟化、云计算技术的快速发展,对网络承受能力也是一个巨大的挑战。为了满足网络业务需求,许多互联网企业通常会通过负载均衡技术实现对资源的合理利用,提供高质量、高可靠的服务。由于传统互联网自身的缺陷,现有的负载均衡设备价格昂贵,同时也缺乏足够的扩展性和灵活性。

软件定义网络(softwaredefinednetwork,sdn),是一种优化和简化网络操作的体系结构方式。它将应用与网络服务、设备之间的交互更紧密的连接在一起,不论它们是物理的还是虚拟化的。openflow协议作为sdn的核心技术之一,可以实现将控制层从传统交换设备中独立出来,从而实现对网络实施更加灵活的控制。

模糊逻辑可以实现用数学公式表达模糊集,解决许多复杂而无法建立精确数学模型的问题。该任务调度模型中,各节点负载状况呈非线性及不可预测性。由于搜集节点信息技术的限制,获取及汇报信息都需要花费额外时间。这样中间件保存的信息,只能表示过去较近时刻的节点负载信息,而不是目前所处的负载情况,系统具有一定的延时性。考虑到收集服务器状态的精度问题,对于节点的负载状态评估,得到的只是估计量,更适合用模糊化语言来表述。

综上所述,对于负载均衡而言,sdn控制转发分离的架构通过控制器作为核心,对网络中流量的监控、实时调度,非常适合作为数据中心网络提供负载均衡服务,而虚拟服务器状态也更适合用模糊化的语言表述。目前也有一些学者对基于sdn的负载均衡技术进行了研究,但是研究基本集中在openflow网络的链路负载均衡,对虚拟服务器负载均衡研究较少。

本发明提出了一个基于sdn的负载均衡策略,通过分析影响负载均衡的参数间的相互关联影响,采用模糊逻辑算法获取虚拟服务器的负载情况,实时分析选择当前负载最轻的虚拟服务器,并设定服务器休眠/重启策略,从而有效避免负载不均衡,提高网络资源利用率。为了验证策略的有效性,搭建了软硬件结合的软件定义网络仿真平台,通过实验对传统的负载均衡策略和本发明提出的策略进行对比,结果表明,发明提出的系统的响应时间较快,曲线变化较为平稳,系统能获得较好性能。

负载均衡主要有硬件实现和软件实现两种方式。其中,硬件负载均衡,是利用硬件设备(负载均衡器)实现负载均衡。依靠其专用的asic芯片,可以达到很高的处理性能,但其价格一般十分昂贵。软件实现是利用相应的负载均衡软件,并配置相关协议,从而达到负载均衡的目的。此种方法的配置简单、部署实施较为灵活、成本相对于硬件实现较为低廉。但是由于受到传统网络体系结构的制约,这些解决方案无法同时满足既灵活又高效的要求,而且不具有较强的通用性。

目前国内外学者主要利用openflow技术,分别对网络链路以及服务器进行负载均衡的研究,如针对链路的laberio算法,基于服务器cpu利用率进行负载均衡的架构和lobus有话算法,以及适用于web服务器的负载均衡算法等等。但这些算法在考虑负载均衡影响参数时不太全面,负载均衡算法较为简单,没有统一的策略执行负载均衡算法。



技术实现要素:

本发明的目的在于克服现有技术的不足,提出一种基于模糊逻辑的sdn负载均衡方法。

本发明为解决背景技术中的技术问题,提出的技术方案如下:一种基于模糊逻辑的sdn负载均衡方法,包括如下步骤:

1)初始化openflow网络;

2)由改进的模糊逻辑均衡算法得到服务器状态:负载均衡模块通过sdn交换机收集服务器状态信息,将cpu利用率、内存利用率、i/o利用率和会话率作为模糊逻辑的输入变量,并分别定义隶属度函数,通过改进的模糊推理得到相应的模糊等级,并通过模糊矩阵完成服务器状态的评判;

3)计算服务器负载值,计算openflow网络负载均衡参数δ;

4)设定负载均衡调整阈值:

(1)判断当前网络负载均衡参数δ是否超出最大负载上限:若是,服务器负载处于饱和状态,运用服务器迁移策略,开启一台服务器;若否,执行下一步;

(2)判断当前网络负载均衡参数δ是否超出平均负载上限:若是,启用模糊逻辑算法进行负载均衡调整,将当前web请求转发给负载最小的服务器;若否,执行下一步;

(3)判断当前网络负载均衡参数δ是否超过最低负载上限:若是,说明当前虚拟服务器的负载分布较均衡,选择是否继续监视整个服务器状态;若否,执行下一步;

(4)当前网络负载均衡参数δ小于最低负载上限时,服务器负载处于闲置状态,运用服务器迁移策略,休眠一台服务器。

所述步骤4)中根据实验经验设定最大负载上限为0.8,最小负载下限为0.2,平均负载阈值为0.5。

所述步骤2)中改进的模糊逻辑均衡算法采用支持openflow协议的sdn网络架构,主要对opendaylight控制器中现有数据转发控制进行扩展,根据openflow网络中虚拟服务器的负载状态进行控制转发,从而实现网络中服务器负载均衡。

所述步骤2)中模糊逻辑的系统分为三个部分:模糊化、模糊推理、解模糊化,对模糊化和模糊推理部分进行了设计和改进;

首先,分析sdn网络架构中表征服务器负载状况的性能参数,选用cpu利用率、内存利用率、i/o利用率及会话数作为对服务器节点性能评价的负载参数,并将参数作为模糊逻辑算法的输入变量,进而为每个输入变量定义隶属度函数,对变量和序列之间的隶属关系进行映射,确定相应的模糊等级序列;

其次,模糊推理中最重要的组成部分是模糊控制规则库,经典的模糊规则是利用数值变量或者利用语言变量构成模糊规则;

本发明对模糊推理进行改进,通过构建模糊矩阵实现因素集到评语集的评判,得到虚拟服务器是候选服务器的可能性大小的程度。

有益效果

1、应用sdn控制平面与数据平面分离的特性解决服务器集群负载均衡问题,解决传统负载均衡硬件价格昂贵,扩展性、可靠性差等问题。

2、专利中提出的负载均衡策略调节了虚拟服务器负载,使系统的资源利用率总能保持在一个合理的范围,提高系统性能。

3、专利中改进的基于模糊逻辑的负载均衡算法,将负载均衡问题通过模糊理论进行求解,得到合理、精确服务器的负载状态,为负载均衡策略的实施提供了可靠的依据,降低了系统的响应时间,达到的服务器负载均衡。

附图说明

图1是设计框架图。

图2是模糊逻辑系统结构图。

图3是负载均衡流程图。

图4是系统响应时间图。

图5是系统请求成功率图。

具体实施方式

下面通过具体实施例和附图对本发明作进一步的说明。本发明的实施例是为了更好地使本领域的技术人员更好地理解本发明,并不对本发明作任何的限制。

本发明为一种基于模糊逻辑的sdn负载均衡方法,采用支持openflow协议的sdn网络架构,主要对opendaylight控制器中现有数据转发控制进行扩展,根据openflow网络中虚拟服务器的负载状态进行控制转发,从而实现网络中服务器负载均衡。由于openflow交换机对控制器提供统一的接口和数据转发功能,控制器对openflow流表的转发进行统一控制。交换机定期收集虚拟服务器的运行状态,并将结果反馈给opendaylight控制器,并根据负载均衡算法计算当前工作状态虚拟服务器的运行状态,进而根据负载均衡策略,下发控制指令,使处理能力强的节点获得处理任务的数量相对较多,必要时对虚拟服务器实现休眠/重启,达到负载均衡。本发明提出的设计框架如图1所示。

1、基于模糊逻辑的负载均衡算法

由于服务器计算的复杂性对于提供服务节点的cpu利用率、i/o利用率等资源的使用负载状况是一个模糊的概念,系统无精确的数学模型和控制规则,因此在监控负载状况时,考虑模糊数学在描述突发性问题和不确定性问题上的优势,将模糊逻辑理论引入到本系统中以优化负载平衡策略。模糊逻辑系统可以分为三个部分:模糊化、模糊推理、解模糊化。模糊逻辑系统的结构如图2所示:

1.1模糊化

模糊化首先将输入量进行尺度变换,变换到各自的论域范围,进行模糊化处理,用模糊集合表示。模糊化过程需要为每类输入变量确定相应的模糊等级序列,如{高,中,低}。每个变量对应等级序列元素会有一个隶属度,因此需要选定隶属度函数,对变量和序列之间的隶属关系进行映射。

在虚拟服务器集群环境下,可以表征服务器负载状况的因素很多。例如cpu的主频和利用率,内存的大小及利用率,网速和网络响应时间,当前执行的进程数目等。由于进行任务调度时,调用请求和返回结果都要通过网络传输;任务执行时要占用cpu和内存资源。针对这些特点,选用cpu利用率μ(c)、内存利用率μ(m)、i/o利用率μ(io)及会话数μ(d)作为对服务器节点性能评价的负载参数,openflow交换机定时向控制器提交虚拟服务器负载状态。

定义模糊隶属度函数:

(1)cpu利用率

以当前服务器的利用率(c)值为论域,令μh(c)、μm(c)、μl(c)分别为cpu利用率隶属于模糊子集“当前服务器cpu利用率高”、“当前服务器cpu利用率中等”、“当前服务器cpu利用率低”的隶属度,则μh(c)、μm(c)、μl(c)可取:

(2)内存利用率

以当前内存的利用率(m)值为论域,令μh(m)、μm(m)、μl(m)分别为内存利用率隶属于模糊子集“当前服务器内存利用率高”、“当前服务器内存利用率中等”、“当前服务器内存利用率低”的隶属度,则μh(m)、μm(m)、μl(m)可取:

(3)i/o利用率

以当前i/o的利用率(i/o)值为论域,令μh(io)、μm(io)、μl(io)分别为i/o利用率隶属于模糊子集“当前服务器i/o利用率高”、“当前服务器i/o利用率中等”、“当前服务器i/o利用率低”的隶属度,则μh(io)、μm(io)、μl(io)可取:

(4)当前会话数

以nginx+tomcat配置虚拟服务器最高负载会话数为800,并以当前虚拟服务器连接会话数利用率的(d)值为论域,令μh(d)、μm(d)、μl(d)分别为连接会话数隶属于模糊子集“当前服务器连接会话数较高”、“当前服务器会话数中等”、“当前服务器会话数较低”的隶属度,则μh(d)、μm(d)、μl(d)可取:

通过隶属度函数把上述四个输入变量模糊化处理后,就可以对虚拟服务器负载状况做出综合评判。模糊逻辑推理系统的唯一输出是请求应该分配给哪一个虚拟服务的可能性,用r来表示。在对μ进行模糊评判时,因素集可以取为e={c,m,io,d},评语集可以取为f={高,中,低}。

1.2模糊推理

模糊推理是模糊控制器的核心,该推理过程基于模糊逻辑中的蕴含关系及推理规则,它具有模拟人基于模糊概念的推理能力。模糊逻辑推理中最重要的组成部分是模糊控制规则库,经典的模糊规则是利用数值变量或者利用语言变量构成模糊规则的新方法。本发明通过构建模糊矩阵实现因素集到评语集的评判。综合评判根据以下步骤:

(1)对μ进行单因素评价,利用结果构造表示e与f之间模糊关系的模糊矩阵。该模糊逻辑的输出为超负载情况下,流量分配到该虚拟服务器可能性的大小,设对cpu利用率、内存利用率、i/o利用率和会话数利用率因素的评价结果为模糊向量:

r1=[uh(c),um(c),ul(c)]

r2=[uh(m),um(m),ul(m)]

r3=[uh(io),um(io),ul(io)]

r4=[uh(d),um(d),ul(d)]

四个向量构成e和f的模糊矩阵r=[r1,r2,r3,r4]。

(2)确定权向量p=[p1,p2,p3,p4],其中p1、p2、p3、p4分别表示因素cpu、内存、i/o、会话利用率在u中的重要程度,p1+p2+p3+p4=1。

(3)作模糊变换q=p·r,所得模糊向量q就是每个虚拟服务器在评语集合f上的评判结果,其中三个分量表示虚拟服务器是候选服务器的可能性大小的程度。

1.3解模糊化

由于经过模糊推理得到的输出仍是模糊变量f=(l,m,h),需要进行解模糊化处理以获得确切的输出数值。可以采用经典的面积中心法进行解模糊化,即以各个模糊等级对应的隶属函数的质心作为该模糊等级的确切输出。模糊等级l对应的质心为0.15,模糊等级m对应的质心为0.5,模糊等级h对应的质心为0.85。最终我们利用下式就可以计算出模糊逻辑输出的确切数值:

式中mi表示各个输出模糊等级的质心值,wi表示对应输出模糊等级为mi的权重。

2、基于sdn架构的负载均衡策略

本发明实现的基于sdn的负载均衡策略,以sdn架构为基础,负载均衡算法为核心,结合经典的动态负载均衡算法完成服务负载均衡,具体的实施策略为:

(1)初始化openflow网络;

(2)负载均衡模块通过经典的轮询算法完成web请求,负载均衡模块通过sdn交换机收集服务器状态信息;

(3)通过本发明提出的模糊逻辑算法计算服务器负载值,计算openflow网络负载均衡参数;

其中,i为服务器编号,favg为当前时刻服务器的平均负载,fi为服务器i的服务值,n为openflow网络中服务器节点数目。负载均衡参数δ以方差的形式计算。δ越小,网络负载越均衡。

(4)设定负载均衡调整阈值,本发明中设定最大负载上限为0.8,最小负载下限为0.2,平均负载阈值为0.5。当前网络负载均衡参数δ大于0.5时启用模糊逻辑算法进行负载均衡调整,将当前web请求转发给负载最小的服务器;当前网络负载均衡参数δ小于0.2时,服务器负载处于闲置状态,运用服务器迁移策略,关闭一台服务器;当前网络负载均衡参数δ大于0.8时,服务器负载处于饱和状态,运用服务器迁移策略,开启一台服务器;当前网络负载均衡参数δ大于0.2小于0.5时,说明当前虚拟服务器的负载分布较均衡,可以继续监视整个服务器状态。策略的执行流程图如图3所示:

3、验证实验

为验证本发明提出的基于sdn的模糊逻辑负载均衡算法的性能。仿真使用的测试环境为ubuntu11.04操作系统,intelpentiumduale2180中央处理器,双核4gb内存主机。实验选用开源软件mininet2.0搭建openflow网络,使用支持openflow1.3协议的h3cs6820-4c交换机,采用基于java的opendaylight控制器实现该负载均衡方法。通过在mininet的运行环境中安装网络性能测试工具iperf软件产生流量压力,对算法性能进行测试。其中mininet搭建的网络拓为三台openflow交换机互联,初始虚拟服务器为4台,考虑服务器频繁休眠和重启也会影响系统性能,虚拟服务器数量最少为4台。交换机之间最大带宽为10mbits/s,交换机和服务器的最大传输带宽为100mbits/s。

为了验证发明提出的基于sdn的模糊逻辑负载均衡算法的优越性,在sdn架构下采用加权轮询算法(wrr)、加权最小连接数优先法(wlc)与本发明所实现的算法性能进行比较,三种算法采用相同的硬件环境。发明中模糊输入采集的信息为服务节点的cpu利用率、内存利用率、i/o利用率及会话数利用率,随后模糊化函数将这些采集的信息表示相关资源的模糊度,进而判断虚拟服务器的负载状况,提出的sdn负载均衡策略按照图3流程实施。经试验测试,四个参数所对应的权值分别为0.3、0.3、0.2、0.2。测试请求是大流量网络请求下系统的性能,主要涉及用户登录系统操作,该请求不仅有静态页面,还有数据库操作,属于动态请求,通过iperf压力测试请求的数据。

试验中请求连接数以分钟为单位线性增加,每分钟增加2000个连接请求,10分钟后请求连接数以分钟为单位线性减少,每分钟减少2000个。即:

测试实验时间为20分钟,每1分钟采样一次,实验重复5次,以平均值作为系统当时的平均响应时间,测试结果如图4所示,系统的平均成功响应率如图5所示所示。

实验数据显示了在网络请求激增和激减的情况下基于sdn的架构的wrr算法、wlc算法和本发明提出的负载均衡算法3种策略响应时间的变化曲线和请求成功率的柱状图。从实验结果可以看出:

(1)在请求数量较少时,任务管理与调度工作较简单,3种策略的响应时间较相近。但是随着任务数量的增加,任务管理与调度越来越复杂,发明提出模糊逻辑策略的调度机制的响应时间小于加权轮询算法和加权最小连接数算法,有很大的优势;随着任务管理与调度越来越简单,算法相对其他两种算法优势比较明显。

(2)发明中提出算法的响应时间出现两个波峰。第一个是:随着请求任务数量的增加,当前服务器承载能力达到顶峰,本发明提出的模糊逻辑负载均衡策略检测到负载的分配大于预设值,控制器触发负载调度机制,启动一台虚拟服务器,使负载达到动态平衡,系统的响应时间出现下滑并趋于稳定,第二个是:随着请求任务数量的减少,当前服务器负载越来越低,本发明提出的模糊逻辑负载均衡策略检测到负载的分配小于预设值,控制器触发负载调度机制,休眠一台虚拟服务器,使负载达到动态平衡,系统的响应时间出现下滑并趋于稳定。

(3)从系统请求平均成功率图上可以看出本发明提出的基于sdn的模糊逻辑负载均衡策略具有较高的请求成功率,能达到95%。

应当理解的是,这里所讨论的实施方案及实例只是为了说明,对本领域技术人员来说,可以加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1