基于蚁群算法的云计算联盟资源调度
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于蚁群算法的云计算联盟资源调度
陈冬林;姚梦迪;桂雁军;陈玲
【摘要】针对目前云计算联盟的架构和单云环境下资源调度的研究缺少对云计算联盟下的资源调度问题的研究情况,建立了由云用户、云服务供应商和云联盟协调器组成的云计算联盟资源调度模型,为达到云供应商利益最大化,设计了任务-虚拟机-数据中心的调度算法,利用蚁群算法进行模型求解,并通过Cloudsim仿真软件证实了该算法的合理性,验证了供应商资源的数据中心负载率在60%~80%之间时达到均衡,并可获得最大利益。
%Currently studies on cloud computing are focused on the architecture of cloud computing federation , or on the re-source scheduling method under the single cloud environment .There are few studies about resource scheduling for cloud compu-ting federation .To solve this problem , a resource scheduling model for cloud federation was proposed .It consisted of cloud us-ers, cloud service providers and cloud federation coordinator .Furthermore , the scheduling algorithm of tasks -visual machine-data centers was designed to maximize the profits of providers .Then the ant colony algorithm was applied for model solution .Its rationality was confirmed by Cloudsim .It was verified that the resource load rate of data centers will achieve a balance between 60%-80%, and the providers will achieve the most profit .
【期刊名称】《武汉理工大学学报(信息与管理工程版)》
【年(卷),期】2014(000)003
【总页数】5页(P337-340,373)
【关键词】蚁群算法;云计算联盟;资源调度;供应商利益最大化;负载均衡
【作者】陈冬林;姚梦迪;桂雁军;陈玲
【作者单位】武汉理工大学经济学院,湖北武汉430070;武汉理工大学经济学院,湖北武汉430070;福建新奇特车业服务有限公司,福建福州350002;武汉理工大学经济学院,湖北武汉430070
【正文语种】中文
【中图分类】TP316
云计算联盟主要是指通过整合不同的云服务提供商来为用户提供服务,因而提供给用户的是统一的资源[1]。
不同的云服务供应商组成云计算联盟,实现各个云平台之间的资源共享和合作,同时使资源的发布、寻找,以及部署等资源管理工作更加高效地执行。
因此通过优化资源配置的资源管理模式使各供应商的代价最小成为了云计算联盟体系结构设计的目标。
现有关于云计算联盟的研究主要包括两个方面:①云计算联盟体系结构的研究,提
出了云计算联盟体系需要满足分布式结构、松散耦合、高可扩展性、资源快速发现、跨云平台实现的需求,以解决云计算中的技术问题;②单云环境下资源调度策略的
研究,主要针对在商业化的云计算服务提供商中,如 Amazon[2],IBM[3]
等的调度策略各不相同,且其商业模式已较为成熟的情况,而在理论研究方面,单一云供应商环境在不同的调度约束条件(时间、费用、QoS、负载均衡、能耗及多
目标等)下运用了不同的调度算法(传统算法和启发式智能算法)。
目前,对云计算
联盟环境下资源调度研究较少,尚未有较为成熟的理论体系。
BRUNEO等[4]研究了在多个云服务提供商情况下的基于云代理的资源调度模
型,代理为多个云之间提供最优的调度机制及提供统一的管理接口,调度评价指标包括了价格、性能、硬件指标,以及负载均衡。
YANG提出了一种面向商业的“联合云计算模型”,该模型的主要特性是其“商业层”可以最大化用户满意度、提供商利益以及资源利用率[5]。
DANILO等提出了一种既能满足云协调器又能扩展设计的多云环境下的架构体系[6-9]。
MICHAEL 认为单云环境下数据中心的负载率达到60%~80%时即认为达到负载均衡,此时数据中心资源的利用率最高,低于该阀值时资源利用率降低,而高于该阀值时无法为用户提供可靠的服务[10]。
出于更实际的商业意义,笔者以云联盟环境下资源调度作为业务背景,在云供应商资源负载均衡的前提下,研究实现云供应商利益最大化的资源调度算法问题。
1 云计算联盟调度问题建模
基于云计算联盟协调器的资源调度架构包括云用户、云服务供应商和云联盟协调器3个部分。
云服务供应商由一系列提供存储、基础设施、平台和软件在内的各种不同服务供应商组成。
不同的云服务供应商提供的资源是异构的,即资源参数、性能各不相同。
云计算联盟能够帮助用户从云供应商中选择适合自己的资源。
1.1 问题描述
笔者首先对于云计算联盟环境下资源调度模型进行描述、分析和建模,然后从云供应商角度选择合适的资源调度算法,完成任务到虚拟机再到数据中心的调度,使得在资源负载均衡的条件下实现云供应商利益最大化的目标。
1.2 数学模型构建
云供应商的资源包括数据中心、物理主机和虚拟机,这些资源需要通过具体指标对其进行定义及量化。
数据中心指标如表1所示。
主机指标如表2所示。
虚拟机指标如表3所示。
表1 云计算数据中心指标数据中心描述指标指标分析ID 数据中心ID ownerID 数
据中心所属供应商ID hostList 数据中心的主机列表peList 数据中心的处理单元列表costPerTrans 单位传输成本QoS 资源的QoS Loadmem 数据中心内存负载率Loadstorage 数据中心存储负载率
表2 主机指标主机描述指标指标分析hostID 主机ID dcID 主机所属数据中心ID Ram 主机内存大小Storage 主机存储大小Mips 主机pe处理速度vmList 主机上部署虚拟机列表
表3 虚拟机指标虚拟机描述指标指标分析vmID 虚拟机ID size 虚拟机存储大小ram 虚拟机内存大小Mips 虚拟机pe处理速度pesNumber 虚拟机所需处理单元数量
2 供应商利益最大化资源调度蚁群算法
在供应商利益最大化的资源调度方法中,笔者考虑的是供应商的总成本最低,包括执行成本和传输成本。
但由于一个任务选择不同供应商造成的执行成本的差异与传输成本相比可忽略不计,因此笔者主要考虑从任务所在节点到云供应数据中心的传输成本。
此外,还考虑到数据中心的负载率,以保证整个数据中心的正常运行。
因此本文综合传输成本与数据中心的负载率两个条件对资源进行调度与部署。
假设任务数量为m,虚拟机的数量为n,云供应商数据中心数量为k,调度过程分为两步,首先为任务寻找合适的虚拟机,主要考虑到用户的预期时间;然后实现从
任务到数据中心的调度,主要考虑任务到数据中心的传输成本与资源负载率。
(1)任务—虚拟机。
用户在提交任务时会给出预期完成时间,虚拟机执行任务的时
间如式(1)所示,任务到时间的部署是根据用户的期望完成时间来选择虚拟机模板。
要求用户的预期时间大于任务的理论完成时间,同时若有多个虚拟机模板满足用户的要求,选择完成时间离用户期望时间最近的虚拟机模板执行任务,如式(1)所示。
(2)任务—数据中心。
基于供应商利益最大化的蚁群算法建模矩阵ACO如式(2)所
示,其中矩阵的行代表任务,矩阵的列代表数据中心。
矩阵中的值aij为第i个任
务选择第j个数据中心,从ACO矩阵中的每一行选择一个节点,最终生成一条最
优路径。
步骤1 算法初始化。
其包括参数的设置及初始化、距离矩阵的生成和蚂蚁的生成。
步骤2 寻找初始节点。
在蚁群算法中,初始节点的生成通常是随机的,即蚂蚁为
第一个任务寻找合适资源的过程是随机的。
步骤3 为下一个任务寻找节点。
该过程包括:①计算蚂蚁移动各待选节点的移动概率;②轮盘赌选择下一个节点。
步骤4 计算路径长度。
传统的蚁群算法是对该路径上所有节点对应的距离叠加得
到总的距离长度。
笔者考虑负载情况,通过增加负载系数对总长度进行修正,从而控制解的收敛方向。
负载率及修正系数计算。
根据得到的路径确定任务所选择的数据中心,然后计算按照当前路径部署后各数据中心的负载情况,负载率如式(3)所示。
部署完后的负载率等于当前负载率加上增加负载率。
式(4)、式(5)分别表示本次调度完成后的内存及存储负载率。
负载率对求解过程的影响表现在通过修正系数改变总距离长度,从而影响信息素的增加。
修正系数函数如式(6)所示,当部署完后数据中心的负载率还低于其低阈值Loadmin,此时修正系数为1,负载率不影响任务的调度情况;而当部署完以后数
据中心负载率高于阈值Loadmax时,修正系数值为∞;当负载率介于两个阈值之间时,负载率越高修正系数越大。
路径长度计算。
在计算路径时引入修正系数,通过引入修正系数改善该条路径所产生的信息素。
步骤5 保存最优值。
初始时刻将生成的第一个解存入最佳值中,当新生成的路径更短时,替换掉原有最优值,直至找到全局最优解。
步骤6 更新信息素矩阵。
在t+n时刻信息素节点ij上的信息素等于t时刻该节点残留的信息素,加上在n时间内经过该节点的所有蚂蚁在经过该节点时的路径的倒数和,如式(8)所示。
3 算例与结果分析
3.1 实验数据
仿真数据主要包括任务、虚拟机和数据中心3个部分,如表4~表6所示。
3.2 核心代码分析
笔者在CloudSim软件中实现了基于蚁群算法的云计算联盟环境下供应商成本最优的调度。
除了CloudSim软件包外,自定义了Ant、ACO及ACOcloudsim文件。
表4 任务数据任务ID 任务长度/M期望时间/s输入文件大小/MB输出文件大小/MB 0 200 000 300 600 600 1 400 000 450 300 300 2 150 000 330 450 450 3 300 000 400 500 500 4 250 000 510 550 550 5 350 000 600 650 650 6 500 000 600 350 350 7 90 000 200 370 370 8 100 000 170 520 520 9 600 000 750 410 410
表5 虚拟机模板数据数据中心ID传输单价/元资源属性/MB 负载率/%0 0.11 memory=10 000 40 storage =100 000 25 1 0.15 memory=19 500 56 storage=200 000 49 2 0.10 memory=13 900 50 storage=180 000 40 3
0.16 memory=13 980 53 storage=120 000 52 4 0.12 memory=13 850
55 storage=150 000 5 5 0.13 memory=14 500 48 storage =170 000 46
表6 数据中心数据VM ID VM 参数0 Mips=500 M/s;size=8 000 MB;ram=1 024 MB;bw=1 000 b/s;pesNumber =1 1 Mips=400 M/s;size=10 000
MB;ram=1 024 MB;bw=2 000 b/s;pesNumber=2 2 Mips=1 000
M/s;size=15 000 MB;ram=2 048 MB;bw=1 000 b/s;pesNumber=1
Ant类中定义了3个方法,init(double[][]pheromone1)方法用来初始化蚂蚁;selectNextNode(double[][]distance1)方法用来为蚂蚁寻找下一个节点,即为下一个任务寻找合适的虚拟机;calculateTourLength()方法用来计算路径长度,就是所有任务部署完以后传输费用总和。
ACO类中定义了taskTovm()方法为用户寻找适合的虚拟机;initAnt()方法生成定
义的蚂蚁数量;initACO()方法为蚁群算法ACO的初始化过程;updatePheromone()方法进行信息素矩阵的更新;printOptimal()方法打印得到的最优路径和最优距
离;solve()方法通过最大运行代数MAX_GEN、蚂蚁数量 antNum,以及任务数量taskNumber 3个变量控制循环次数,在循环内调用selectNextNode(double[][]distance1)、updatePheromone()、initAnt()方法,并最终调用打印方法printOptimal()输出最优值。
3.3 运行结果分析
执行代码后,得到运行结果如下:经过计算,任务寻找适合的虚拟机可得到{1 2 0 1 0 1 2 0 1 2};通过蚁群算法为任务寻找云供应商数据中心可得到{1 3 2 0 1 2 4 0 2 5},解析后可得到具体的部署方案。
DC0:{T3→VM1,T7→VM0}
DC1:{T0→VM1,T4→VM0}
DC2:{T2→VM0,T5→VM1,T8→VM1}
DC3:{T1→VM2}
DC4:{T6→VM2}
DC5:{T9→VM2}
此时,供应商传输任务的总成本为214.07元,而按照随机算法任意选取的任务寻找到的数据中心得到﹛0 1 2 3 4 5 0 1 2 3﹜,所需要的传输任务的总成本为217.31元,表明在部署后实现了供应商利益最大化,此时任务及数据中心部署完成后各数据中心负载率与部署前的对比如图1所示。
通过图1可知,在未进行资源调度部署前,数据中心的负载一般为40% ~60%,造成了数据中心资源的空闲,在进行部署后负载率均在60%~80%之间,根据伯克利实验室对于负载率的研究,当负载率达到60% ~80%之间时,实现了云计算联盟中所有数据中心的负载均衡,提高了数据中心资源调度的效率。
图1 数据中心负载率对比图
4 结论
笔者在国内外研究现状的基础上,提出了云联盟环境下的资源调度模型,对云计算联盟环境下的云供应商进行建模,然后从供应商利益最大化,即成本最低的角度开展研究工作,探索云计算联盟环境下的资源调度策略,使得云供应商在满足用户需求的前提下实现利益最大化。
参考文献:
[1] HASSAN M M,HUH E N.Overview of cloud computing and motivation of the work[M].New York:Springer,2013:1 -12.
[2] MARSTON S,LI Z ,BANDYOPADHYAY S,et al.Cloud computing — the business perspective[J].Decision Support Systems,2011,
51(1):176 -189.
[3] KESSACI Y,MELAB N,TALBI E G.A paretobased metaheuristic for
scheduling HPC applications on a geographically distributed cloud federation[J].Cluster Computing,2012(1):1-18.
[4] BRUNEO D,LONGO F,PULIAFITO A.Modeling energy-aware cloud federations with SRNs[M].Heidelberg:Springer,2012:277 -307.[5] YANG X Y,NASSER B,SURRISGE M,et al.A business-oriented cloud federation model for realtime online interactive applications [J].Future Generation Computer Systems,2012,28(8):1158 -1167.[6] DANILO A,SARA C,MICHELE C.Dual timescale distributed capacity allocation and load redirect algorithms for cloud systems [J].Journal of Parallel and Distributed Computing,2012,72(6):796 -808.
[7] VICTOR T,ANNA T,ALEXANDER B.Resource selection algorithms for economic scheduling in distributed systems[J].Procedia Computer Science,2011,30(4):2267-2276.
[8] SAURABH K G,CHEE S Y,ARUN A,et al.Environment-conscious scheduling of HPC applications on distributed cloud - oriented data centers[J].J Parallel Distrib Comput,2011,71(24):732 -749.
[9]华夏渝,郑骏,胡文心.基于云计算环境的蚁群优化计算资源分配算法[J].华东师范大学学报:自然科学版,2010,2(1):127 -134.
[10] MICHAEL A,ARMANDO F,REAN G.Above the clouds:a berkeley view of cloud computing[J].UC Berkeley Reliable Adaptive Distributed System Laboratory,2009,30(10):5-6.。