云计算管理平台的全阶段负载分担综合优化方法与流程

文档序号:20510930发布日期:2020-04-24 18:31阅读:191来源:国知局
云计算管理平台的全阶段负载分担综合优化方法与流程

本发明涉及一种全阶段负载分担综合优化方法,特别涉及一种云计算管理平台的全阶段负载分担综合优化方法,属于云平台负载优化技术领域。



背景技术:

近些年来,云计算产业迅猛发展,云计算相关的技术也越来越多,越来越先进。传统模式下,企业如想搭建一个信息技术平台,需自己去采购硬件和软件等基础设施,这种方式成本太高,不利于平台的扩展。云计算的出现让服务商来配置基础设施,搭建云计算管理平台,用户只需向服务商购买对应服务。云计算管理平台将各硬软件资源虚拟化形成云计算管理平台数据中心,通过云计算管理平台数据中心对外提供云服务,用户按需从云计算管理平台数据中心获得计算、储存、网络云服务,底层的基础设施是透明的,云计算的各种服务都在云计算管理平台数据中心上开展,对资源的调度也是针对云计算管理平台数据中心。众多云计算服务商建设了自己的数据中心,但问题也同样越来越明显,数据中心的服务器不能平均的消化分担负载,经常出现某些服务器超负荷工作,与此同时另外一些服务器处于低负载工作状态,这无疑会降低云计算服务的质量,缩短服务器的寿命,基于以上原因,对云计算平台负载分担综合优化很有必要。

云计算管理平台从诞生至今一直备受国内外开发者追捧,在openstack开源社区,有大约140家企业以及1740位分布全球各地的开发者对云平台强力支持,这些企业和技术专家把云平台看做基础设施即服务的代表进行研究学习,虚拟技术的发展大大加速了云计算的推进,随着云计算管理平台应用越来越广泛,使用云计算管理平台服务的企业和个人越来越多,云计算管理平台在负载分担优化方面的缺陷影响越来越大。在大规模集群环境下,网络环境变化快,用户请求量巨大,云计算管理平台本身的负载分担优化策略不能动态适应网络环境变化,不能根据负载变化进行优化调节,一些物理主机长期超载运行,对物理主机的性能和硬件的保养都不利,同时也有一些物理主机长期低载运行,造成了大量的资源浪费。虚拟化技术的出现及在线迁移技术的日益成熟,给云计算管理平台的动态负载分担优化实现提供了很大的技术支持。

云计算作为一门新兴的计算机技术,虽然有众多专家学者、开源论坛开发爱好者等的鼎力支持研究,仍然存在一些需要改进的地方。综合来看,现有技术的云计算管理平台负载分担方法主要存在以下几点缺陷:一是当接收到创建虚拟机实例的请求,云计算管理平台负载均衡模块仅根据内存的大小来选择一个剩余内存最大的物理主机来创建虚拟机实例,但云平台资源利用率与很多指标都有密切关系,除了内存大小,还有中央处理器个数、磁盘容量、网络带宽等,云计算管理平台仅将内存作为唯一的考虑指标明显不合理,这样选出的物理主机也许可满足创建虚拟机实例的要求,但是很难是最合适的主机,在一个不合适的物理主机上新建虚拟机实例所耗费的各种资源总和远超过在一个合适的物理主机上创建虚拟机实例的资源总和,现有技术的方法在有些情况下不仅起不到负载优化的作用,反而可能起到适得其反的效果;二是现有技术的云计算管理平台负载均衡策略只在部署阶段其作用,也就是当nova收到虚拟机创建请求时,scheduler模块会发挥作用,选择一个合适的物理主机创建虚拟机实例,但如果某一个物理主机因为网络环境或其它因素出现超负载运行,调度器无法移动虚拟机实例来降低负载,这需要云计算管理平台根据动态数据进行虚拟机调度,需要利用监控器实时监测各物理主机的资源利用状态,也需要动态迁移技术的支持,可以更好的提高资源利用率,但现有技术没有相关方面的改进设计;三是现有技术部分负载分担优化方法算法的复杂度较高,并且没有联系真实的平台资源利用状况,受到计算复杂度高的限制,不能推广到实际应用中,几乎没有实用价值,很多时候反而会对平台的正常工作产生干扰。



技术实现要素:

针对现有技术的不足,本发明提供的云计算管理平台的全阶段负载分担综合优化方法,综合了平台虚拟机的各个资源利用状况,尽量做到物尽其用,提高全阶段资源利用效率,相比现有技术存在两个明显的进步,一是在创建虚拟机时,原算法只根据内存大小选择物理主机,本发明算法综合考虑了中央处理器、内存、硬盘等多个因素,结果更加准确;二是原算法只在虚拟机的部署阶段起作用,本发明算法在任何阶段都能起作用,能够在系统运行时根据实际情况进行自动负载调整。通过实验论证和对比得出,在使用云计算管理平台默认算法时,各个物理主机之间中央处理器、内存和硬盘的负载存在较大的差别,负载较大时平台整体性能下降明显,当使用本发明提供的方法后,各个物理主机之间的差别要小得多,这正是全阶段负载分担综合优化所追求的效果。本发明的方法有较好的效果,负载较大时云计算管理平台的整体性能有明显提高。

为达到以上技术效果,本发明所采用的技术方案如下:

云计算管理平台的全阶段负载分担综合优化方法,负载动态调度策略综合考虑中央处理器、内存、硬盘多个因素,选择最合适的物理主机来创建虚拟机实例或作为虚拟机在线迁移的目的主机;从算法输入、算法输出、算法流程各个方面全阶段优化负载分担;

算法处理的请求有三种,分别是:创建虚拟机请求、删除虚拟机请求,虚拟机在线迁移请求。

云计算管理平台的全阶段负载分担综合优化方法,进一步的,方法整体思路为:首先ceilometer计量组件收集各个物理主机的资源利用状况,利用数据库中已经保存的物理主机原始资源容量数据通过计算,得到每个物理主机的剩余资源数量,进而得到每台物理主机的中央处理器资源利用率、内存利用率、硬盘利用率,然后得到中央处理器平均利用率、内存平均利用率、硬盘平均利用率和全盘综合利用率,管理员手动设置一个波动范围,得到中央处理器负载阈值、内存负载阈值、硬盘负载阈值和全盘综合负载阈值,阈值不是静态数据,根据资源利用状况的不同而动态变化,选取全盘综合利用率最低的物理主机来增加虚拟机实例。

云计算管理平台的全阶段负载分担综合优化方法,进一步的,不论是在创建虚拟机实例,还是在虚拟机动态迁移的情景下,前置步骤都是进行物理主机过滤,选择未超载物理主机进入备选集合,然后计算各个备选物理主机的权值,对比每一个物理主机的权值的大小,选择最佳的备选服务器;不同的是创建虚拟机实例时,是被动接受终端请求,然后开始算法流程,而虚拟机在线迁移是通过ceilometer计量组件监控得到的数据发现某一物理主机综合负载超过阈值,需要迁移出其中某个或多个虚拟机实例来降低负载;在超载运行的物理主机上选择迁移哪个虚拟机时,将超载物理主机的中央处理器利用率、内存利用率、硬盘利用率和中央处理器利用率阈值、内存利用率阈值、硬盘利用率阈值进行对比,得出超载属性,根据尽量降低超载属性的原则,选择占用超载资源最多的虚拟机进行迁移。

云计算管理平台的全阶段负载分担综合优化方法,进一步的,定义utilization#cpu为物理主机的中央处理器利用率,根据云计算管理平台内部api和ceilometer计量组件收集到物理主机的初始中央处理器总数为cpu#amount,目前已分配给虚拟机使用的中央处理器总数为cpu#used,得到物理主机中央处理器利用率计算公式为:

utilization#cpu=cpu#used/cpu#amount,

第三方检测工具检测到虚拟机的中央处理器利用率为vutilization#cpu,那么物理主机实际的中央处理器利用率计算公式:

utilization#cpu#vm#t=(cpu#used×vutilization#cpu)/cpu#amount,

取时间段t内所有监控数据计算得到的平均值更有意义:

utilization#cpu#vm=∑utilization#cpu#vm#t/n,

定义utilization#cpu#avg为物理主机中央处理器的平均利用率,计算公式为:

utilization#cpu#avg=∑utilization#cpu#vm/n,

上式得到的为所有服务器的中央处理器利用率均值,代表集群中央处理器利用率的平均值,定义c为系统能容忍的数值偏差,根据中央处理器的平均利用率可以计算出云计算管理平台中央处理器负载阈值a1:

a1=c+utilization#cpu#avg。

云计算管理平台的全阶段负载分担综合优化方法,进一步的,定义utilization#mem为物理主机的内存利用率,根据云计算管理平台内部api和ceilometer计量组件收集到的物理主机的初始内存大小为mem#amount,目前已分配给主机上的虚拟机使用的内存为mem#used,得到服务器的内存利用率为:

utilization#mem=mem#used/mem#amount,

第三方检测工具检测到虚拟机的内存使用率为vutilization#mem,物理主机实际的内存利用率计算公式为:

utilization#mem#vm#t=(mem#used×vutilization#mem)/mem#amount,

取时间段t内所有监控数据计算得到的平均值更有意义:

utilization#mem#vm=∑utilization#mem#vm#t/n,

定义utilization#mem#avg为物理主机内存的平均利用率,计算公式为:

utilization#mem#avg=∑utilization#mem#vm/n,

上式计算结果是全部物理主机的内存利用率均值,代表集群内存利用率的平均水平,定义e为系统能容忍的数值偏差,那么根据内存的平均利用率计算出云计算管理平台内存负载阈值a2:

a2=e+utilization#mem#avg。

云计算管理平台的全阶段负载分担综合优化方法,进一步的,定义utilization#disk为物理主机的硬盘利用率,根据云计算管理平台内部api和ceilometer计量组件收集到的物理主机的初始硬盘大小为disk#amount,目前已分配给虚拟机使用的硬盘大小为disk#used,得到物理主机的硬盘利用率计算公式:

utilization#disk=disk#used/disk#amount,

第三方检测工具检测到虚拟机的硬盘利用率为vutilization#disk,服务器实际的硬盘利用率计算公式:

utilization#disk#vm#t=(disk#used×vutilization#disk)/disk#amount,

取时间段t内所有监控数据计算得到的平均值更有意义:

utilization#disk#vm=∑utilization#disk#vm#t/n,

定义utilization#disk#avg为物理主机硬盘的平均利用率,计算公式为:

utilization#disk#avg=∑utilization#disk#vm/n,

上式得到的为所有服务器的硬盘利用率均值,代表集群硬盘利用率的平均水平。定义g为系统能容忍的数值偏差,那么根据硬盘的平均利用率计算出云计算管理平台硬盘负载阈值a3:

a3=g+utilization#disk#avg

云计算管理平台的全阶段负载分担综合优化方法,进一步的,定义utilization#host为全盘综合负载均值,综合考虑中央处理器、内存、硬盘属性,定义bcpu为物理主机中央处理器的权值,定义bmem为物理主机内存的权值,定义bdisk为物理主机硬盘的权值,全盘综合负载均值的计算公式为:

定义云计算管理平台全盘综合负载阈值为a,定义h为系统所能容忍的数值偏差,得到全盘综合负载阈值a的计算公式:

a=h+utilization#host。

云计算管理平台的全阶段负载分担综合优化方法,进一步的,云计算管理平台虚拟机调度由nova-scheduler执行,scheduler执行调度算法所要求的输入包括:所有物理主机集群的完整配置信息,终端所请求虚拟机配置要求,所有物理主机上虚拟机实例配置信息,系统所能容忍的各偏差值,中央处理器、内存、硬盘属性的权值。

云计算管理平台的全阶段负载分担综合优化方法,进一步的,算法的输出包括:源服务器上待迁出的虚拟机实例,目的物理主机编号,算法完成标志;

算法不一定总存在输出,如果当前集群中找不到合适的迁移方案,算法会返回当前无最佳策略标志,任务存放在任务队列,等待下一个时间点再进行迁移。

云计算管理平台的全阶段负载分担综合优化方法,进一步的,详细的执行流程如下:

第一步,检测告警监控队列是否为空;当某个物理主机出现超负荷运行时,算法将物理主机记入告警监控队列,若告警监控队列为空则执行流程第二步,若不为空则执行流程第五步;

第二步,查看虚拟机创建队列是否为空;虚拟机创建队列保存的是虚拟机创建请求,当有虚拟机创建请求时,首先会存入虚拟机创建队列,然后再依次处理;若虚拟机创建队列不为空,则执行流程第七步,若虚拟机创建队列为空,执行流程第三步;

第三步,查看虚拟机删除队列是否为空;云计算管理平台服务器将删除虚拟机任务放入虚拟机删除队列,服务器等到合适的时间进行集中清理;若虚拟机删除队列不为空,则执行第四步,若虚拟机删除队列为空,则执行第十三步;

第四步,删除虚拟机;根据虚拟机删除队列找到需要删除的虚拟机信息,包括物理主机标号,然后执行删除操作,操作完成后执行流程第十三步;

第五步,获取告警服务器标号;告警监控队列中存放有告警服务器的标号信息,算法首先获取告警服务器标号,进一步得到告警服务器详尽信息后执行流程第六步;

第六步,获取告警服务器利用率信息;根据第五步中获取的告警服务器信息,计算得到告警服务器的中央处理器利用率、内存利用率、硬盘利用率后,执行流程第七步;

第七步,获取所有物理主机各项阈值信息;计算得到云计算管理平台的中央处理器利用率阈值、内存利用率阈值、硬盘利用率阈值和全盘综合利用率阈值,然后执行流程第八步;

第八步,判定是创建虚拟机还是虚拟机在线迁移任务;若判定当前任务为创建虚拟机任务,执行流程第十步,若判定当前任务为虚拟机在线迁移任务,执行流程第九步;

第九步,筛选待迁移的虚拟机;如果是虚拟机在线迁移任务,首先判断要迁移的是物理主机上哪一台虚拟机实例,根据第六步中计算得到的中央处理器利用率、内存利用率、硬盘利用率和云计算管理平台的中央处理器利用率阈值、内存利用率阈值、硬盘利用率阈值进行对比,选出超负荷的属性;如果根据对比发现超负荷的属性不止一个,就选取拥有最大权值的属性作为迁移任务降低的目标属性;

第十步,物理主机过滤;物理主机过滤需设置一定的条件,选择备选的物理主机列表,根据全盘综合负载率进行过滤,若物理主机全盘综合负载率没有超过阈值,表示物理主机可搭载更多的虚拟机,因此通过过滤;若物理主机全盘综合负载率超过阈值,当前物理主机已经超负荷,不能搭载更多虚拟机,因此不通过过滤;过滤后得到备选物理主机集合;

第十一步,计算物理主机权值;根据全盘综合负载率为主要考虑因素,返回(-1)×全盘综合利用率的结果作为物理主机权值,得到物理主机的综合利用率越低,物理主机的权值越大;

第十二步,执行创建虚拟机或虚拟机在线迁移任务;根据第十一步中计算得到的物理主机权值,选择出权值最大的物理主机作为目的主机;若为创建虚拟机任务,在物理主机上创建虚拟机实例,若为虚拟机在线迁移任务,将该物理主机作为在线迁移的目标物理主机执行迁移操作;

第十三步,算法本轮循环结束。

与现有技术相比,本发明的优点在于:

1.本发明提供的云计算管理平台的全阶段负载分担综合优化方法,解决了云平台资源的全阶段动态资源调度问题,现有技术的云平台调度策略中,负载分担优化策略只在平台的部署阶段起作用,一旦平台部署完成,无法实时根据平台资源消耗情况进行负载分担平衡。本发明提出的动态资源调度算法中,利用云计算管理平台发布的ceilometer计量组件实时监控各物理主机的全阶段资源利用效率,不再只是在平台部署阶段发挥作用,可在平台部署运行全阶段发挥作用,只要ceilometer计量组件采集到某一物理主机出现超载运行,云计算管理平台就可触发调度程序完成虚拟机的在线迁移优化云计算管理平台的全阶段负载分担,静态资源调度只需设置好算法,启动虚拟机就可工作,实现简单,动态资源调度算法还需实时监控各种资源利用状况,汇总数据进行计算,需要数据库存储的支撑,实现起来更加复杂,但动态资源调度能够在服务器出现超载时及时响应,对服务器的可扩展性支持更高,性能上明显优于静态资源调度。本发明的算法结构清晰逻辑清楚、鲁棒性健壮性好,计算复杂度适中、整体实现容易,能快速的推广到云平台实际应用中,运用效果较好,有很大的市场实用价值。

2.本发明提供的云计算管理平台的全阶段负载分担综合优化方法,保证了云平台综合负载分担优化。现有技术的云平台负载分担优化调度策略只考虑了物理主机的内存大小,通过过滤和权值计算选取当前剩余内存最多的物理主机来新建虚拟机实例,但实际物理主机的性能表现和很多参数有关,包括中央处理器、内存、硬盘等,仅将内存大小作为衡量标准太过片面。全阶段动态资源优化调度综合考虑中央处理器、内存、硬盘因素,通过综合负载指标来判定服务器当前负载状态,更加科学合理和严谨。综合负载指标是服务器各方面性能参数的平均情况,比起单从内存上考虑,综合负载参考更加全面。云计算管理平台的现有技术只考虑内存算法,只需简单的获取服务器剩余内存,而综合负载分担优化需要获取服务器各个方面的资源使用情况,包括中央处理器、内存、硬盘等,效果更加可靠,全阶段负载分担综合优化能力更强。

3.本发明提供的云计算管理平台的全阶段负载分担综合优化方法,针对云计算管理平台的特点,提出了一种全新的资源调度策略,综合了平台虚拟机的各个资源利用状况,尽量做到物尽其用,提高全阶段资源利用效率,相比现有技术存在两个明显的进步,一是在创建虚拟机时,原算法只根据内存大小选择物理主机,本发明算法综合考虑了中央处理器、内存、硬盘等多个因素,结果更加准确;二是原算法只在虚拟机的部署阶段起作用,本发明算法在任何阶段都能起作用,能够在系统运行时根据实际情况进行自动负载调整。通过实验论证和对比得出,在使用云计算管理平台默认算法时,各个物理主机之间中央处理器、内存和硬盘的负载存在较大的差别,负载较大时平台整体性能下降明显,当使用本发明提供的方法后,各个物理主机之间的差别要小得多,这正是全阶段负载分担综合优化所追求的效果。本发明的方法有较好的效果,负载较大时云计算管理平台的整体性能有明显提高。

附图说明

图1是本发明的云计算管理平台的全阶段负载分担综合优化方法的主要流程图。

图2是本发明的云计算管理平台的全阶段负载分担综合优化方法的结构原理示意图。

具体实施方式

下面结合附图,对本发明提供的云计算管理平台的全阶段负载分担综合优化方法的技术方案进行进一步的描述,使本领域的技术人员可以更好的理解本发明并能予以实施。

参见图1和图2,本发明提供的云计算管理平台的全阶段负载分担综合优化方法,负载动态调度策略综合考虑中央处理器、内存、硬盘多个因素,选择最合适的物理主机来创建虚拟机实例或作为虚拟机在线迁移的目的主机;从算法输入、算法输出、算法流程各个方面全阶段优化负载分担;

算法处理的请求有三种,分别是:创建虚拟机请求、删除虚拟机请求,虚拟机在线迁移请求,如图2所示。

一、本发明概念定义

云计算管理平台调度程序是对资源的调度,云计算管理平台将各类资源虚拟化建立云计算管理平台数据中心,本发明的算法与云计算管理平台数据中心里的各类资源关系密切,以下对本发明几类概念进行定义。

(一)云计算管理平台数据中心

云计算是基于互联网的全新服务模型,通过虚拟化技术对各类信息技术计算资源进行抽象,模块化形成云计算管理平台数据中心对外按需提供服务,云计算管理平台数据中心是各信息技术基础设备经虚拟化后形成的松耦合、高扩展、高自动化的高效节能型资源管理中心。对不同的群体,云计算管理平台数据中心意义不同。对服务商来说,云计算管理平台数据中心是提供各类信息技术资源形成的大型资源池,给用户提供按需服务,服务商对资源进行虚拟化和统一管理,更适合当前巨型分布式系统要求;对于云计算管理平台的用户来说,云计算管理平台中资源的地理位置是透明的,用户无需弄清自己使用的资源在哪,用户只面对云计算管理平台数据中心,用户针对自己业务和虚拟机配置需要预选中央处理器、内存、磁盘配置,向云计算管理平台数据中心提交请求,获得云计算服务。

(二)物理主机集群

服务器由处理器、硬盘、内存、系统总线构成,是可对外提供服务,接受用户服务器请求处理,发送响应的计算机。服务器具有稳定安全、高速计算、可扩展、可管理性能特性,根据服务类型可将服务器分为应用服务器、web服务器、文件服务器、数据库服务器,服务器集群把多个物理主机协调形成一个整体统一对外提供服务,因一个物理计算机的配置是有限的,平台不断扩大时会达到性能瓶颈,当前计算机的配置无法继续保证平台高性能的运转,但服务器集群的性能是无限的,因集群具有高扩展性,当需提高服务器性能时,通过向集群增加物理主机数量加强性能。物理主机集群不仅可提高计算机性能,在服务的安全性和稳定性方面也有重要的作用。

(三)虚拟机

虚拟机是利用特定软件模拟出来的,具备一切的计算机硬件功能,能和主机上现有操作系统同时运行且互不妨碍,使计算机资源得到更充分的利用。虚拟机运行在真正的系统之上,有独立的资源空间和桌面,可独立安装操作系统、中间件、软件应用,可运行数据库保存数据,不会对真正的系统有任何影响。现有技术的物理主机性能强悍,但由于系统流量有限,造成资源过剩,虚拟机很好的解决了这个问题,根据虚拟机的特性,在一台物理主机之上安装多个虚拟机,多个虚拟机分配硬件资源,提供不同服务,资源得到更充分的利用。

二、本发明的整体思路

通过对云计算管理平台现有负载分担优化调度算法的分析,本发明针对现有技术算法的不足,针对性的提出云计算管理平台的全阶段负载分担综合优化方法,是一种全阶段动态资源优化调度方法,提高各物理主机的全阶段资源利用效率,优化云计算管理平台的全阶段负载分担,云计算管理平台利用ceilometer计量组件定期收集的云计算管理平台各物理主机的资源利用状况,对全阶段资源利用效率实时监控,一旦有某一物理主机负载超过阈值就会触发云计算管理平台启动虚拟机在线迁移优化云计算管理平台的全阶段负载分担,达到负载分担优化均衡的目的。

本发明提供的云计算管理平台的全阶段负载分担综合优化方法,负载动态调度策略综合考虑中央处理器、内存、硬盘多个因素,选择最合适的物理主机来创建虚拟机实例或作为虚拟机在线迁移的目的主机。

首先,ceilometer计量组件负责收集各个物理主机的资源利用状况,利用数据库中已经保存的物理主机原始资源容量数据通过计算,得到每个物理主机的剩余资源数量,进而得到每台物理主机的中央处理器资源利用率、内存利用率、硬盘利用率,然后得到中央处理器平均利用率、内存平均利用率、硬盘平均利用率和全盘综合利用率,管理员手动设置一个波动范围,得到中央处理器负载阈值、内存负载阈值、硬盘负载阈值和全盘综合负载阈值,因阈值是根据利用率得到的,所以阈值不是静态数据,会根据资源利用状况的不同而动态变化,选取全盘综合利用率最低的物理主机来增加虚拟机实例。

不论是在创建虚拟机实例,还是在虚拟机动态迁移的情景下,前置步骤都是进行物理主机过滤,选择未超载物理主机进入备选集合,然后计算各个备选物理主机的权值,对比每一个物理主机的权值的大小,选择最佳的备选服务器。不同的是创建虚拟机实例时,是被动接受终端请求,然后开始算法流程,而虚拟机在线迁移是通过ceilometer计量组件监控得到的数据发现某一物理主机综合负载超过阈值,需要迁移出其中某个或多个虚拟机实例来降低负载。在超载运行的物理主机上选择迁移哪个虚拟机时,会将超载物理主机的中央处理器利用率、内存利用率、硬盘利用率和中央处理器利用率阈值、内存利用率阈值、硬盘利用率阈值进行对比,得出超载属性,根据尽量降低超载属性的原则,选择占用超载资源最多的虚拟机进行迁移,比如计算得出超载物理主机的内存利用率超过了阈值,就在该物理主机上选择内存占用率最高的物理主机迁出,以此降低内存负载。

三、本发明方法的具体设计

本发明提供的云计算管理平台的全阶段负载分担综合优化方法,从算法输入、算法输出、算法流程各个方面详细记载算法设计。

(一)参数定义

本发明所提出的云计算管理平台的全阶段负载分担综合优化调度策略,是针对云计算管理平台云资源在一定时间内检测到的平均值,检测的计算机属性包括中央处理器、内存和硬盘,算法对数据进行处理进而得出结果,算法中参数的定义和计算方式如下:

1.定义utilization#cpu为物理主机的中央处理器利用率,根据云计算管理平台内部api和ceilometer计量组件收集到物理主机的初始中央处理器总数为cpu#amount,目前已分配给虚拟机使用的中央处理器总数为cpu#used,得到物理主机中央处理器利用率计算公式为:

utilization#cpu=cpu#used/cpu#amount,

根据实际资源利用状况,服务器配置给虚拟机的中央处理器不能得到100%的利用率,若将虚拟机占有的中央处理器总数等同与物理主机正在使用的中央处理器总数会产生误差,比如物理主机有四个中央处理器,已经分配给该物理主机上的虚拟机实例两个中央处理器,那么根据上式可能得到物理主机的中央处理器利用率为50%,但实际上虚拟机只使用了一个中央处理器,所以实际中央处理器利用率为25%,比上式计算得到的数据要小。

云计算管理平台未提供api检测虚拟机的中央处理器使用率,必须通过第三方检测工具计算,假设第三方检测工具检测到虚拟机的中央处理器利用率为vutilization#cpu,那么物理主机实际的中央处理器利用率计算公式:

utilization#cpu#vm#t=(cpu#used×vutilization#cpu)/cpu#amount,

上式计算数据是第三方监控工具实时监控得到的,具有一定的偶然性,所以取时间段t内所有监控数据计算得到的平均值更有意义:

utilization#cpu#vm=∑utilization#cpu#vm#t/n,

中央处理器阈值是根据物理主机的中央处理器利用率计算的,中央处理器利用率比较小,中央处理器阈值也会相应的偏小,结果影响不大。定义utilization#cpu#avg为物理主机中央处理器的平均利用率,那么计算公式为:

utilization#cpu#avg=∑utilization#cpu#vm/n,

上式得到的为所有服务器的中央处理器利用率均值,代表集群中央处理器利用率的平均值,定义c为系统能容忍的数值偏差,根据中央处理器的平均利用率可以计算出云计算管理平台中央处理器负载阈值a1:

a1=c+utilization#cpu#avg。

2.定义utilization#mem为物理主机的内存利用率,根据云计算管理平台内部api和ceilometer计量组件收集到的物理主机的初始内存大小为mem#amount,目前已分配给主机上的虚拟机使用的内存为mem#used,得到服务器的内存利用率为:

utilization#mem=mem#used/mem#amount,

根据实际资源利用状况,服务器配置给虚拟机的内存不能得到100%的利用率,若将虚拟机创建时占有的内存等同于服务器正在使用的内存会产生误差,比如物理主机有4g内存,已经分配给物理主机上的虚拟机实例2g内存,根据上式得到物理主机的内存利用率为50%,但实际虚拟机只使用了1g内存,实际内存利用率为25%,比上式计算数据小。

云计算管理平台未提供api检测虚拟机的内存利用率,必须使用第三方检测工具计算,假设第三方检测工具检测到虚拟机的内存使用率为vutilization#mem,物理主机实际的内存利用率计算公式为:

utilization#mem#vm#t=(mem#used×vutilization#mem)/mem#amount,

上式计算数据是第三方监控工具实时监控得到的,具有一定的偶然性,取时间段t内所有监控数据计算得到的平均值更有意义:

utilization#mem#vm=∑utilization#mem#vm#t/n,

内存阈值是根据物理主机的内存利用率计算的,内存利用率比较小,内存利用率阈值也会相应的偏小,结果影响不大。

定义utilization#mem#avg为物理主机内存的平均利用率,那么计算公式为:

utilization#mem#avg=∑utilization#mem#vm/n,

上式计算结果是全部物理主机的内存利用率均值,代表集群内存利用率的平均水平,定义e为系统能容忍的数值偏差,那么根据内存的平均利用率计算出云计算管理平台内存负载阈值a2:

a2=e+utilization#mem#avg。

3.定义utilization#disk为物理主机的硬盘利用率,根据云计算管理平台内部api和ceilometer计量组件收集到的物理主机的初始硬盘大小为disk#amount,目前已分配给虚拟机使用的硬盘大小为disk#used,得到物理主机的硬盘利用率计算公式:

utilization#disk=disk#used/disk#amount,

根据实际资源利用状况,服务器分配给虚拟机的硬盘存储不能得到100%的利用率,若将虚拟机占有的硬盘大小等同于物理主机正在使用的硬盘大小会产生误差,比如物理主机有20g硬盘存储,已经分配给物理主机上的虚拟机实例10g硬盘,那么根据上式得到物理主机的硬盘利用率为50%,但是实际上虚拟机只使用了5g硬盘,实际硬盘利用率为25%,比上式计算的数据小。

云计算管理平台未提供api检测虚拟机的硬盘利用率,必须通过第三方检测工具计算,假设第三方检测工具检测到虚拟机的硬盘利用率为vutilization#disk,服务器实际的硬盘利用率计算公式:

utilization#disk#vm#t=(disk#used×vutilization#disk)/disk#amount,

上式计算数据是第三方监控工具实时监控得到的,具有一定的偶然性,所以取时间段t内所有监控数据计算得到的平均值更有意义:

utilization#disk#vm=∑utilization#disk#vm#t/n,

硬盘阈值是根据物理主机的硬盘利用率计算的,硬盘利用率比较小,那么阈值也会相应的偏小,结果影响不大。

定义utilization#disk#avg为物理主机硬盘的平均利用率,计算公式为:

utilization#disk#avg=∑utilization#disk#vm/n,

上式得到的为所有服务器的硬盘利用率均值,代表集群硬盘利用率的平均水平。定义g为系统能容忍的数值偏差,那么根据硬盘的平均利用率计算出云计算管理平台硬盘负载阈值a3:

a3=g+utilization#disk#avg

4.定义utilization#host为全盘综合负载均值,综合考虑中央处理器、内存、硬盘属性,定义bcpu为物理主机中央处理器的权值,定义bmem为物理主机内存的权值,定义bdisk为物理主机硬盘的权值,权值的大小标识着对应资源的重要程度,权值越大,资源对当前服务器来说越珍贵,例如在提供计算型服务的服务器集群中,中央处理器的权值最大,而在主要提供存储型服务的服务器集群中,硬盘的权值更大。由此可得全盘综合负载均值的计算公式为:

上式得到的是集群的各个属性的负载均值,代表集群各个属性的资源利用平均值,定义云计算管理平台全盘综合负载阈值为a,定义h为系统所能容忍的数值偏差,那么得到全盘综合负载阈值a的计算公式:

a=h+utilization#host,

以上给出了算法中所用到的几种参数的定义和计算方式,全盘综合负载阈值用来过滤物理主机和判定物理主机是否超载运行,中央处理器利用率阈值、内存利用率阈值、硬盘利用率阈值用来确定超载主机上哪一项或几项平台资源消耗过度,属性权值用来标识资源的重要程度,在多个属性超载时指导算法选择降低更重要全阶段资源利用效率。

(二)算法输入和输出

云计算管理平台虚拟机调度由nova-scheduler执行,scheduler执行调度算法所要求的输入包括:所有物理主机集群的完整配置信息,终端所请求虚拟机配置要求,所有物理主机上虚拟机实例配置信息(可由ceilometer计量组件监控得到),系统所能容忍的各偏差值(可由管理员设定),中央处理器、内存、硬盘属性的权值(可由管理员根据系统类型要求设定),在执行算法核心流程之前需用到上面的数据进行数据准备,包括计算中央处理器、内存、硬盘负载阈值,全盘综合负载阈值,算法核心流程中会直接用到计算好的数据。

算法的输出包括:源服务器上待迁出的虚拟机实例,目的物理主机编号,算法完成标志。

算法不一定总存在输出,如果当前集群中找不到合适的迁移方案,算法会返回当前无最佳策略标志,任务存放在任务队列,等待下一个时间点再进行迁移;当检测到某一物理主机出现超载情况,也不立刻进行虚拟机迁移,因为对于大型系统,可能当前服务器正在为成千上万用户提供服务,需要等待深夜或某个用户量最小的时间段集中进行迁移,降低对用户的影响。

(三)算法主要流程

本发明提供的云计算管理平台的全阶段负载分担综合优化方法,算法处理的请求有三种,分别是:创建虚拟机请求、删除虚拟机请求,虚拟机在线迁移请求(通过ceilometer计量组件监控得到数据),如图1所示为方法主要流程图。

详细的执行流程如下:

第一步,检测告警监控队列是否为空;当某个物理主机出现超负荷运行时,算法将物理主机记入告警监控队列,云计算管理平台服务系统由于用户体验需求,不能在发现超负荷情况时即刻进行虚拟机迁移,要等到流量低估时间段集中对告警监控队列任务进行处理降低影响;若告警监控队列为空则执行流程第二步,若不为空则执行流程第五步。

第二步,查看虚拟机创建队列是否为空;虚拟机创建队列保存的是虚拟机创建请求,当有虚拟机创建请求时,首先会存入虚拟机创建队列,然后再依次处理;若虚拟机创建队列不为空,则执行流程第七步,若虚拟机创建队列为空,执行流程第三步。

第三步,查看虚拟机删除队列是否为空;云计算管理平台服务器将删除虚拟机任务放入虚拟机删除队列,服务器等到合适的时间进行集中清理;若虚拟机删除队列不为空,则执行第四步,若虚拟机删除队列为空,则执行第十三步。

第四步,删除虚拟机;根据虚拟机删除队列找到需要删除的虚拟机信息,包括物理主机标号,然后执行删除操作,操作完成后执行流程第十三步。

第五步,获取告警服务器标号;告警监控队列中存放有告警服务器的标号信息,算法首先获取告警服务器标号,进一步得到告警服务器详尽信息后执行流程第六步。

第六步,获取告警服务器利用率信息;根据第五步中获取的告警服务器信息,计算得到告警服务器的中央处理器利用率、内存利用率、硬盘利用率后,执行流程第七步。

第七步,获取所有物理主机各项阈值信息;根据云计算管理平台内部api检测结果和ceilometer计量组件监测得到的数据,计算得到云计算管理平台的中央处理器利用率阈值、内存利用率阈值、硬盘利用率阈值和全盘综合利用率阈值,然后执行流程第八步。

第八步,判定是创建虚拟机还是虚拟机在线迁移任务;若判定当前任务为创建虚拟机任务,执行流程第十步,若判定当前任务为虚拟机在线迁移任务,执行流程第九步。

第九步,筛选待迁移的虚拟机;如果是虚拟机在线迁移任务,首先要判断要迁移物理主机上的哪一台虚拟机实例,根据第六步中计算得到的中央处理器利用率、内存利用率、硬盘利用率和云计算管理平台的中央处理器利用率阈值、内存利用率阈值、硬盘利用率阈值进行对比,选出超负荷的属性;例如计算得到内存利用率超过阈值,就在物理主机上选择使用内存最多的虚拟机进行迁移,如果根据对比发现超负荷的属性不止一个,就选取拥有最大权值的属性作为迁移任务降低的目标属性,例如通过监测得到中央处理器利用率,内存利用率,硬盘利用率都超过了阈值,而云计算管理平台设定的中央处理器权值为0.6,内存权值为0.1,硬盘权值为0.3,那么就选取物理主机上中央处理器占用率最高的虚拟机进行迁移。

第十步,物理主机过滤;物理主机过滤需设置一定的条件,选择备选的物理主机列表,根据全盘综合负载率进行过滤,若物理主机全盘综合负载率没有超过阈值,表示物理主机可搭载更多的虚拟机,因此通过过滤;若物理主机全盘综合负载率超过阈值,当前物理主机已经超负荷,不能搭载更多虚拟机,因此不通过过滤;过滤后得到备选物理主机集合。

第十一步,计算物理主机权值;根据全盘综合负载率为主要考虑因素,返回(-1)×全盘综合利用率的结果作为物理主机权值,得到物理主机的综合利用率越低,物理主机的权值越大。

第十二步,执行创建虚拟机或虚拟机在线迁移任务;根据第十一步中计算得到的物理主机权值,选择出权值最大的物理主机作为目的主机;若为创建虚拟机任务,在物理主机上创建虚拟机实例,若为虚拟机在线迁移任务,将该物理主机作为在线迁移的目标物理主机执行迁移操作。

第十三步,算法本轮循环结束。

四、实验结果分析

本发明的实验采用对比分析的方式,采取固定某一个变量属性来对另一个属性的影响进行测试。对三个具有相同配置的物理主机连接构成的的服务器集群配置12个数量的虚拟机请求,分别采用云计算管理平台默认的负载均衡策略和本发明提供的云计算管理平台的全阶段负载分担综合优化方法,记录不同方法情景下中央处理器平均利用率、内存平均利用率和硬盘平均利用率的情况。

通过数据和对比得出,在使用云计算管理平台默认算法的时候,各个物理主机之间中央处理器、内存和硬盘的负载存在较大的差别,负载较大时平台整体性能下降明显,当使用本发明提供的云计算管理平台的全阶段负载分担综合优化方法后,各个物理主机之间的差别要小得多,在正常的差值范围内,这正是全阶段负载分担综合优化所追求的效果。这就说明本发明的方法对云计算管理平台负载均衡和全阶段负载分担综合优化有较好的效果,负载较大时云计算管理平台的整体性能有明显提高。

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