马嘉葆,李 磊
(西安工业大学计算机科学与工程学院,陕西 西安 710021)
云存储凭借可拓展性强、节约存储空间以及数据安全性系数较高等优势被应用于在各个领域中[1]。而当今网络信息量不断增加,云存储等新的技术针对于网络传输提出了更高的要求,传统网络对海量数据进行传输时,当网络内部已满负荷时,还继续将新的数据进行导入,没有进行分流操作,使此时的网络链路呈现过载状态,被迫停止运行或无法正常传输。因此,如何将云存储中数据负载情况进行调整,以及针对均衡调度等问题,成为了目前的研究重点[2]。
王保华[3]等人提出基于MVB网络的周期数据负载均衡调度方法,该方法通过MVB网络构建模型,并采用平均负载率为中心预测域的免疫遗传算法对该模型进行全局最优求解,实现对数据负载的均衡调度。使算法的收敛速度得到提高并简化了算法的求解过程,但是,该方法在对负载数据链路进行调度时,传统程序不属于开放性可编程API,导致链路利用率不能满足于固定阈值。张钊[4]等人提出基于网络数据流概率路径选择的数据负载均衡调度方法,该方法以最短路径选择方法为基础,采用网络控制器对数据流进行分类处理,并对每条数据流在调度过程中的占用宽带情况进行计算,对DCN数据流量进行调度与优化,进而实现数据负载的均衡调度。该方法在对负载数据链路进行调度时,由于传统设备控制面与数据面在同一平台上,导致对负载数据链路的调度延时较长。苏洵等人[5]提出实时调度系统体系结构与任务模型。该模型对执行时间、任务截止期限以及时间间隔等属性进行综合分析。根据不同任务的重要程度,提出基于服务质量的任务松紧度。通过迫切度和松紧度实现对优先级的动态调节,改善了任务执行成功率与客户端资源利用率。但是该模型在对负载数据链路进行调度时,不能实现对集中式网络的控制,导致对负载数据链路的调度偏差较大。
为了解决上述方法存在的问题,提出基于SDN的云存储数据负载均衡调度方法,该方法通过SDN对传统网络进行优化,结合数据负载均衡调度方法对需重路由链路的路径组进行选取,利用适应度函数寻找出需重路由的路径组,最终SDN控制器对原始流表进行修改与输出,完成对负载数据的均衡调度[6]。
SDN是软件定义的网络,它是对传统网络进行简化以及优化的一种体系结构。SDN把设备间以及应用服务间的数据传输或交互过程进行紧密结合,可对集中式网络进行控制,其主要是对设备间交互的应用程序以及所传输的数据信息进行控制[7]。SDN网络架构如图1所示。
图1 现有网络架构与SDN网络架构
如图1所示,现有的网络架构是以传统的网络设备为根本而形成的体系结构。传统网络由分布式控制形式对每个设备进行单独控制,对转发层和控制层进行紧密耦合[8]。管理人员无法直接对数据中心进行控制与转发,需配置网络协议,通过网络协议对转发行为产生影响,这种影响是固定模式的,所以相对于传统网络设备以及传统网络架构来说是比较封闭及不可控制的,换言之,对现有的网络进行管理与控制的难度较大。
传统网络进化后形成的SDN网络架构分别由应用层、控制层以及基础设施层所构成[9],利用东西向接口通信来保持控制器间的流表一致性,用户编码程序通过北向接口对网络进行调用与操作,通过OpenFlow南向接口协议对网络控制平面与转发平面进行分离。
基于SDN的云存储数据负载均衡调度方法利用设置阈值法对SDN网络是否出现扰动等情况作出判断,若网络出现扰动,则会触发所提方法对网络重载链路上的大象流进行调度[10]。具体流程如图2所示。
图2 云存储数据负载均衡调度流程图
采用基于方差划分标准和综合效用值的适应度函数,使云存储中数据流量均衡分配。
所有网络的链路利用率方差和重路中路径组所包含的链路对应的链路利用率方差分别由Bt、Br进行表示,其相应方差计算公式如式(1)
(1)
式中,网络拓扑中的全部链路数目表示为N,重路中路径组所包含的全部链路数目表示为M,在u时刻k链路中的平均链路利用率表示为ηk(u)。
对于网络出现扰动时,发生网络链路的利用率超过阈值的情况,采用基于阈值的方差划分标准,如式(2)所示。路径组所包含的全部链路方差通过基于方差划分标准进行分级,分为大于阈值级别和小于阈值级别两种。
(2)
式(2)中,极小值表示为ω,避免分母为0。若式(1)中Bt
Br,即式(2)中A=1,此时路径组的方差大于阈值。
为了将网络链路利用率方差最小化,使负载分布更加均衡,在选择最优路径组时,优先选择链路利用率方差小于阈值的路径组。
通过上述对重路由路径组阈值的选取,利用适应度函数对数据负载进行均衡,计算公式如下
F°=A·(eC)-A
(3)
式(3)中,适应度函数表示为F°,集成链路利用率与链路利用率方差的综合值表示为C。通过图3对适应度函数进行分析。
图3 适应度函数分析图
由图3可见,曲线a所对应的适应度函数大于曲线b,当大于或小于方差阈值的路径组同时出现时,据上述可知,需选取小于方差阈值的路径组。a、b曲线均是递减函数,F°会随着C的增大而减小。因此,当对最优重路由路径组进行选取时,需选取最小F°路径组为最终目标。
重路由路径组所含有全部链路的链路利用率之和表示为Sr,计算公式如式(4)所示。
(4)
式(4)中,链路容量表示为Dk,重路中路径组所包含的全部链路数目表示为M,网络拓扑中的全部链路数目表示为N,在k链路中实际获取的数据流宽带表示为Wk。
根据式(4)与式(1)可得重路由路径组所含有链路的链路利用率方差计算公式如式(5)所示,全部网络的链路利用率方差计算公式如式(6)所示。
(5)
(6)
当图3中点E、H所对应的路径组对需重路由路径组进行选取时,则选择H,并且对于点I、H所对应的路径组在选取需重路由路径组时,此时也选取H。此时的最小F°路径组可表示为
(7)
对负载数据进行调度,其主要原理是以最快速度去寻找适应度函数F°最小的重路由路径组,使数据流量分布更加均衡以及使所选路径负载得到降低。其选取最小适应度函数F°的计算公式以及约束条件如式(8)
(8)
在云存储数据负载分配不均衡时,需对重载链路上的大象流进行调度。将链路利用率阈值设定为75%,若设定过高阈值,在网络过度拥塞后才开始进行调度,反之,设定过低阈值,在网络容量方面不能够充分得到利用,且计算量过大时,会影响网络性能。
若网络中的某条链路出现负载过重情况时,在对链路上的哪条数据流进行重路由则是处理问题的关键。数据传输中存在对数据吞吐以及对数据延时的大象流和老鼠流。老鼠流对数据进行传输时,耗时较短且对时延较为敏感,若对老鼠流进行重路由,则会使延迟增加以及花费大量开销,因此,选取对延时不敏感的大象流进行重路由。利用基于流的统计方式对大象流与老鼠流进行区分,当每条数据流经过交换机时,会对其进行监测以及对固定时间内传输的数据流大小进行统计,将其作为衡量大象流与老鼠流的指标,具体计算公式如式(9)
(9)
式(9)中,固定时间间隔表示为O,其固定时间内所传输的数据流大小表示为LJ,时间间隔前后所接收到的数据流总字节数分别表示为bu0+O、bu0。经过上式计算后,获取到固定时间内所传输的数据量,把满足于大象流的对应数据流存储于控制器中,便于后期对大象流进行筛选,为获取被需要重路由的数据流提供依据,以及对应进行数据流表改写。
通过上述对重载链路与大象流进行筛选后,对筛选出来的全部大象流进行重路由,在对大象流进行重路由之前,选取路径组时,首先对需要进行调度的大象流的初始节点与目标节点进行查找,以及大象流所对应的Match,查找以后,将全部信息输入到DWGPSO算法的启动口当中,进行组合选路,待程序结束后,直接进入流表阶段,将全部的大象流所对应的流表进行修改。
通过上述章节,获取相应的路径,把控制器中的原始数据流所对应的流表进行修改,可以将Floodlight控制器进行调用,该控制器的Modify依据Match匹配域进行流表的相关修改,或者利用add方法,将priority设置较高,添加一个流表项,当匹配到的数据流到达时,则自动将新的流表项进行转发数据,完成对流表的相关改写[11]。
为了验证基于SDN的云存储数据负载均衡调度方法的可行性与有效性,需对基于SDN的云存储数据负载均衡调度方法进行相关实验,实验硬件环境:HT台式机一台;实验软件环境:windows xp、MyEclipse8.1 开发语言java;分别对所提方法、文献[3]方法、文献[4]方法进行相关实验,研究结果表明,链路利用率阈值应设定在75%左右,若超出设定阈值,会出现调度延时情况,若低于设定阈值,会导致计算量过大,使网络性能受到影响,将3种不同调度方法的链路利用率进行对比,对比结果如图4所示。
图4 对比不同方法的链路利用率结果
分析图4可知,所提方法的链路利用率平均保持在75%左右,而文献[3]方法和文献[4]方法的链路利用率浮动较大,证明所提方法的链路利用率结果较为理想,网络负载数据较为均衡,运行状态良好,取得较为理想的调度结果。
将调度延时作为测试指标,对比不同方法的调度延时变化情况,具体测试结果如图5所示。
图5 对比不同方法的调度延时变化结果
由图5数据可知,文献[3]方法和文献[4]方法的调度延时均高于所提方法,证明所提方法调度更加及时,有效避免了对负载链路数据进行调度的延时情况。
对比不同方法的调度偏差,测试结果如图6所示。
图6 对比不同方法的调度偏差结果
据图6数据可知,所提方法的调度偏差均小于文献[3]方法和文献[4]方法,证明所提方法对负载链路数据进行调度更加准确,使调度偏差得到降低的同时,提高了对负载链路数据调度的准确性。
本文提出的基于SDN的云存储数据负载均衡调度方法在降低了对负载链路数据调度偏差的同时,提高了对负载链路数据调度的准确性,有效解决了目前调度方法存在的调度延时以及调度结果不准确的问题。为调度系统设计提供了一定的技术支持。但同时还具有一定的局限性,后续的研究工作可以从优化流表改写方法方面进一步完善调度系统。