武自强,周建涛,赵大明,柳 林
1.内蒙古大学 计算机学院,呼和浩特 010021
2.内蒙古云计算与服务软件工程实验室,呼和浩特 010021
3.内蒙古数据处理与社会计算重点实验室,呼和浩特 010021
4.内蒙古师范大学 计算机科学技术学院,呼和浩特 010021
随着互联网时代信息与数据的快速增长,科学、工程和商业计算等领域需要处理的数据远远超出自身IT架构的计算能力,目前云计算市场规模总体呈稳定增长态势[1],使用云计算成为一种趋势。数据中心[2]作为云计算的基础设施,统计表明其资源利用率通常在5%~25%之间[3-4]。这些多维度资源(CPU、存储、内存和网络等)的低利用率直接导致了巨大的资源浪费。降低能源消耗、提高资源利用率成为云计算亟待解决的难题之一。
近年来,数据中心能效系统的模型构建方法与算法设计分为对服务器端优化和对网络端优化两类。对服务器端优化已有较多研究,大致分为三类:基于动态电压频率调整的优化策略、基于关闭空闲服务器的优化策略和基于虚拟化技术的优化策略。网络端优化已有不少研究,如文献[5]提出了基于休眠唤醒和自适应链路速率混合优化策略,文献[6]提出的流量合并的方法,文献[7]中提供了一种基于迭代的路由方案,文献[8]提出的利用软件定义网络技术,文献[9]提出的应用人工智能抽象的方法,文献[10]对网络能耗与性能间的权衡问题进行了研究,提出以网络流完成时间作为最重要的统一性能指标对网络的性能进行保障。
对网络流进行调度以提高数据中心网络利用率成为当前研究的热点之一[11]。目前针对网络流的调度方法通常不加以区分地适用于各种网络流,或是仅着眼于大象流和老鼠流进行调度[12],将大量持续传递数据的大象流和少量短时间的老鼠流区区别对待。根据预测[13],未来东西流量(数据中心内部流量和数据中心间流量)将占数据中心总流量的86%,而南北流量(从数据中心流向互联网或WAN 的流量)仅占数据中心相关流量的14%;研究显示数据中心的流量服从长尾概率分布,具体来说,几乎所有流量的90%都小于10 KB,持续时间不到几毫秒,而其余10%则占了大部分流量[14]。对所有流使用相同的调度策略,这使得网络流调度效果不明显[15]。在高负载的环境下,可能影响服务流量的效率。理想的网络流调度方法应针对不同要求的网络流设计不同的调度方案[16],将网络流量进行分类后基于不同的特点加以调度[17]。
为提高网络资源利用率,缓解网络拥塞保证云服务质量,提出一种基于服务满足度对非服务流量动态调整的避让方法TAM(Traffic Avoidance Method),评估当前的服务满足度,根据服务满足度动态调整非服务业务的网络流量,在发生网络过载时主动避让服务流量,以优先保证云服务质量要求,提高数据中心网络的性能。
本文的主要贡献如下:
(1)引入数据中心网络的网络流分类方法,从应用层概念入手将网络流依据其支撑具体业务的不同分成三类:服务业务、固定业务和弹性业务。
(2)定义服务满足度概念,基于服务业务的服务等级协议,量化评估当前网络性能能否满足服务业务的需要,将其作为数据中心网络流调度的依据。
(3)提出一种网络流主动避让方法,在数据中心服务业务量激增时,主动调整弹性业务量,避让服务流量的短暂高峰以缓解网络拥塞,满足服务质量要求。
(4)仿真实验结果表明,相比于对照组实验,主动避让方法可使业务抖动区间缩小为对照组的1/3,网络整体时延降低约20%。
综上,TAM 方法在数据中心网络负载激增的情况下可以保证服务业务的质量,并在提高全局网络性能上也有一定的表现,达到预想的设计目的。
当前研究主要从拥塞控制和流量调度两个方面进行优化设计[18],针对数据中心混合流复杂的环境,Aemon利用一种基于紧急性的拥塞控制机制来调节截止时间流的发送速率[19],并使用两级优先级调度策略来区分混合流。Sonum 通过合并和处理来自多个交换机的采样信息来检测长流量[14],获取长流程信息后将潜在的丢包率最小化为优化目标,然后将负载平衡转换为给长流安排最小丢包路径的优化问题并介绍了一种启发式算法。Difference设计了一种算法[20]来根据当前链路利用率动态地重新计划大象和老鼠的流动设置路径,通过加权多路径路由算法来调度老鼠流,并根据链接利用率调整路径权重,针对大象流提出了一种基于阻塞岛的路径设置算法来找到具有较短搜索空间的最不拥挤的路径。MOG从不同角度将优化目标分别划分为用户指标(完工时间和经济成本)和云系统指标(网络带宽、存储约束和系统公平度)[21],并将该调度问题制定成为一个新的连续的合作博弈,在优化用户指标的同时,满足系统指标的约束,并保证云资源的效率和公平度。
通过自适应终端进行调度的方法,如Fastpassp则提出使用完全中心式的调度器负责计算数据包进入网络的时间和传输路径[22];采用基于令牌的方式pHost[23]和基于令牌的流调度机制QJump[24],在发送端和接收端之间为流传递令牌,获得令牌的流可以得到一个传输窗口,小流优先得到令牌以减少平均完成时间。上述方法均没有考虑服务质量的问题。
在流量大小高度复杂的数据中心网络(DCN)中,传统观点认为对每个单独的流进行调度[25-26]。Abbasloo等人[27]提出,考虑调度延迟(包括调度程序的计算和通信延迟),仅以先到先服务的方式为大多数流提供服务,而无需进行任何调度,就可以显着提高其性能。
鉴于网络流量的不可预知性,从多维角度衡量目前多样化服务的质量并保证高质量的终端用户体验至关重要。以上方案没有针对性地对不同网络流调度,采用单一策略调度所有网络流,可能使用户服务网络流与非时间敏感的非服务网络流一同被调度,影响用户的服务质量。为了提高网络的质量,同时保证服务业务不被干扰,本文对数据中心内部存在的网络流加以区分,提高用户服务网络流的优先级,在网络状态无法满足服务等级协议时,优先保证用户的云服务需求。
本章首先介绍服务满足度这一概念,同时提供一种将网络流依据其支撑业务的不同进行分类的方法,最后基于服务满足度和流量分类,设计一种基于满足度的服务端非服务网络流主动避让方法,在高负载的情况下满足用户服务的质量要求。
服务满足度是判定当前数据中心网络能否满足服务需要的判定标准,也是动态调整数据中心负载的依据。定义服务满足度为SSD(Service Satisfied Degree),该值是一个取值为[0,1]的正实数,假设当SSD=1 时,当前网络状态满足服务需要;0 ≤SSD<1 时意味着当前网络未能满足服务业务的需要,应该进行一定的干预避免违背SLA;SSD 越接近0,表示网络越难满足服务,在本文中令SSD∈[0,1]。思科白皮书中虽然给出了未来东西流量和南北流量的趋势,但是由于提供不同服务的数据中心对这两种流量的要求不尽相同,如提供大数据计算(如Hadoop、MapReduce框架)的数据中心更注重东西流量中的网络性能以更快完成任务,而对承担即时通讯等业务的数据中心更关注南北流量中网络流的性能。因此将数据中心网络的服务满足度拆分为两部分,一部分为东西流量中服务的满足度,另一部分为南北流量中服务的满足度,并分别为两个满足度设置不同的权重,南北流量/东西流量中的服务满足度用NSSSD和WESSD表示,并分别为其赋予权重NSweight和WEweight,即数据中心的服务满足度为流量中服务的权重与满足度乘积的和:
东西流量或南北流量中存在数个网络流,这些网络流分别支撑一个或多个具体业务,考虑为每个业务分配不同的权重,则东西流量或南北流量的服务满足度为:
值得注意的是,多样化的云服务对网络性能有不同要求,一些业务可能同时对多个网络参数均有要求,例如同时要求较低的网络时延和较大的网络吞吐量。因此对于每个应用来说,其SSD 需要进一步计算,设网络参数为nf,共有i个nfi分别代表网络时延、吞吐量、抖动等多个参数,且对网络参数的敏感度各不相同,给不同nfi赋予不同的权重fwi。则应用SSD公式如下:
相关研究有很多关注网络流本身的特性,例如以网络流的大小将其分为大象流和老鼠流,抑或是考虑网络流的源端和目的端将流量分为东西流量和南北流量,还有基于网络流存在的栅栏效应[28],云服务提供商关注数据中心的能耗和效率,对于云服务客户而言,更关注其使用的云服务能否满足其需要,是否符合签订的服务等级协议(SLA)。
数据中心网络中存在数个源端到目的端的网络流,具体的业务需要数个网络流的支撑才能完成,因此将网络流依据其支撑业务的不同分成三类,如图1所示。
图1 网络流根据支撑的业务分类Fig.1 Classification of network flow based on supporting business
第一类集合包含由服务业务产生的网络流,支撑数据中心提供的计算、存储等具体业务,该类任务是用户服务请求,包括大规模云计算、云存储,例如Hadoop、Spark 等分布式应用服务以及WEB、邮件、视频流等传统业务。尽管该集合中的流量大多数存在于东西流量(数据中心内部),但是与南北流量中用户流量要求一致,有严格的时间和可靠性要求,为保证服务质量,本类网络流不能进行调度,定义本类流量支撑的业务为服务业务。
第二类集合包含数据中心必要的流量,如支撑整个数据中心的软件体系、备份等网络流,该类流量是云服务提供商提供可靠云服务必不可少的流量,暂停或调整该类网络流可能导致难以回滚的结果,因此不能对本类网络流进行调度,定义该类网络流支撑的业务为固定业务。
第三类集合包含对时间、可靠性等没有严格要求的网络流,例如为了提高服务器的利用率对虚拟机进行重新部署迁移,但虚拟机迁移相关研究更多考虑服务器CPU、内存等设备的利用率,没有足够关注当前的网络状态,可以对该类业务进行适当的延后以降低网络负载,避免网络流的冲突造成长时间网络拥塞。定义该类网络流支撑的业务为弹性业务,即非服务业务。
鉴于网络流的突发性和不可预测性,本文提出基于当前服务满足度,动态调整弹性业务网络负载的方法,在服务业务激增时,减少弹性业务的效率,避开服务业务的激增波峰,待服务业务趋于平缓后再恢复弹性业务,并且根据不同的服务满足度,给出不同的弹性业务调整策略。算法1主动避让方法预设两种调度策略(第1、2行),调度策略可以使用不同的分布,例如通过均匀分布或分段函数等来处理动态调整量,在数据中心网络运行时,动态获取网络的实时状态(第4 行),分析当前存在的服务业务并根据公式(1)计算服务满足度(第5、6行),如果当前网络不满足服务需求,即服务满足度小于等于1,则依据服务满足度,动态调整弹性业务的发包速率/发包大小(第7、8行);若服务满足度为0,则暂停弹性业务发送速率(第9、10行),降低网络负载,使得当前网络负载降低,达到拥塞控制的目的。
算法1主动避让方法
本文使用OPNET 平台进行仿真实验,在Windows 10 中部署VMware® Workstation 15 Pro,虚拟机配置及实验环境部署如表1所示。
表1 虚拟机配置Table 1 VM configuration
本文使用叶脊拓扑网络模拟网络数据中心,使用2个脊交换机和5 个叶交换机组成,如图2 所示。其中1个叶交换机连接用户端,作为数据中心流量的出口,其余4个叶交换机连接服务器。为加快仿真速度,实验中固定业务以基于统计的数学建模方法使用背景流量来代替,弹性业务和用户业务以基于包的分析方法做离散仿真。
图2 实验的网络拓扑设计Fig.2 Network topology design of experiments
实验分为两个部分:一是在OPNET 中设计新的应用模型实现主动避让方法;二是在数据中心网络中验证主动避让方法的性能。
首先在OPNET中设计新的应用模型。分别设计一个弹性应用和一个服务应用代表对应的业务,将服务应用模型的端到端时延作为衡量其服务满足度的唯一网络参数。为加快仿真速度,简化弹性应用的调整策略,设计端到端时延处于36 ms 到100 ms 之间[13]时,弹性应用负载减半。为验证设计应用的有效,设计实验场景baseline,在节点user与server之间部署服务应用,server与server之间部署弹性应用,并在节点间和链路间部署背景流量以模拟固定业务,仿真时间设置为1 000 s。
设计场景baseline2,数据中心网络采用叶脊结构[29],场景包括2 个脊(Spine)路由交换机,5 个叶(Leaf)路由交换机,每个叶节点部署20 个终端节点,其中1 个叶节点(User)相连20 个终端视为用户,其余4 个叶节点(Server)相连的80 个终端视为服务器,节点间使用1000baseX链路模型相连。
为模拟数据中心网络处于高负载的情形下,设置链路背景流量,在服务器之间部署标准应用作为固定业务,所有用户到服务器设置服务应用,服务器之间部署弹性业务。对比实验将弹性业务设置为与服务业务,即不调整弹性业务,仿真时间设置为1 000 s。设置对照实验duibi_2,将baseline2 中服务应用替换为弹性应用,即不使用主动避让方法。采用主动避让方法的曲线为蓝色,对照实验为红色。
图3实验结果曲线分别为端到端时延、弹性业务发送量和交付率。图中可以看出,服务应用基本上达到100%交付,在100 s 前后服务应用时延第一次超过36 ms,弹性应用此时未达峰值便开始减少网络发送量;在仿真时间300 s 到500 s 和700 s 到900 s 之间时,时延在36 ms浮动,弹性业务达到设计峰值1 MB/s。实验结果证明主动避让方法可行。
图3 主动避让方法可行性验证Fig.3 Feasibility verification of active avoidance method
图4 中服务应用交付率基本达到100%,而对照组只有约60%。
图4 服务交付率Fig.4 Service delivery rate
图5中服务应用时延实验组比对照组更为稳定,且有更低的平均值,大致分布在100 ms之内。
图5 端到端时延对比图Fig.5 End-to-end delay comparison chart
图6 服务应用抖动实验组范围更小,基本不超过0.02 s,对照组则随着网络性能的下降抖动不断增加,最高达到0.08 s。可以看出,采用TAM更能保证服务满足度,提高服务质量。
图6 抖动对比图Fig.6 Jitter comparison chart
如图7,通过实验组和对照组的结果可以看出,实验进行到最后时实验组相比于对照组,全局网络时延降低20%左右,大约降低为0.17 ms,证实主动避让方法对降低数据中心网络整体延迟,提高网络性能也有一定的作用。
图7 数据中心整体时延Fig.7 Data center company for delay
实验结果表示,网络负载激增服务满足度降低时,主动避让方法动态调整弹性业务以缓和拥塞趋势,保证服务业务优先传输;待服务业务趋于平缓时恢复弹性业务。相比于对照组网络,主动避让方法可以有效保证服务类业务的可靠交付,降低抖动幅度,对网络整体性能也有一定的提高。
针对提高网络资源利用率和保证服务质量等问题,提出基于服务满足度对非服务流量调度的主动避让方法,其主要特征如下:一是引入服务满足度概念,衡量当前网络是否符合服务等级协议,能否满足用户服务的需要,将其作为是否进行调度的依据;二是依据网络流所支撑的不同业务,将数据中心网络中的网络流划分成三类,只对弹性业务对应的网络流进行调度,保护服务类网络流,提高用户服务质量;三是在数据中心网络高负载情况下服务业务激增、网络无法满足用户服务需要时依据服务业务满足度,动态调整弹性业务负载,缓解即将发生的网络拥塞。仿真实验结果表明,该方法能够缓解网络拥塞,降低抖动,保证服务质量满足服务等级协议,对提高整个数据中心网络性能也有一定作用。
当前使用仿真实验验证,未来工作可以依托OPNET平台,将实际数据中心网络接入到平台中,采用真实的网络拓扑结构和网络流测试TAM方法的实际性能。