CN104008002B - 云平台环境下虚拟机部署的目标主机选择方法 - Google Patents
云平台环境下虚拟机部署的目标主机选择方法 Download PDFInfo
- Publication number
- CN104008002B CN104008002B CN201410268251.8A CN201410268251A CN104008002B CN 104008002 B CN104008002 B CN 104008002B CN 201410268251 A CN201410268251 A CN 201410268251A CN 104008002 B CN104008002 B CN 104008002B
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- host
- cpu
- main frame
- destination host
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Abstract
本发明涉及云平台技术,具体的说是涉及一种在云平台环境中部署虚拟机时,资源调度模型及其目标主机选择方法。本发明提出基于可用资源二维链表的目标主机优选方法,它能根据虚拟机部署的资源需求在可用资源二维链表中快速定位目标主机候选集,从较小范围的候选集中搜索目标主机,可提高目标主机选定速度。本发明也改进了主机选择策略和主机选择算法,用户可灵活选择基于快速方式部署或基于负载均衡方式部署虚拟机,该选择算法可以优选出一个最适合的目标主机部署虚拟机,并满足平台主机间负载均衡性。本发明尤其适用于云平台环境下虚拟机部署的目标主机选择。
Description
技术领域
本发明属于云平台技术,具体的说是涉及一种在云平台环境中部署虚拟机时,资源调度模型及其目标主机选择方法。
背景技术
云计算(Cloud computing)是近几年兴起的技术方向,也是目前信息技术领域的研究热点。云计算通过网络向用户提供按需的、可伸缩的分布式资源服务。如IaaS云平台系统将数据中心服务器硬件资源虚拟化成一个统一的虚拟机资源池,然后借助虚拟化管理平台把系统中所有的资源按照实际需求或其他策略通过网络提供给用户使用。由于云计算实现了计算机资源的统一管理,用户不再负责底层硬件设施、系统平台的管理,甚至也不需要负责应用软件的开发与维护,而只需关注如何使用云服务处理业务需求,这样就大大降低了企业的业务信息化运行维护成本。
云计算资源管理是云计算技术的一个重要组成部分,其效率直接影响整个云平台的工作性能。云资源管理系统作为云计算平台底层资源的管理软件,对平台提供云服务至关重要。云资源管理系统技术实现目标是降低虚拟资源的使用管理难度和提高对平台资源的有效利用。在云资源管理系统中,虚拟机资源管理是至关重要的。为了实现云平台弹性计算,云资源管理系统需要解决运行节点的负载均衡,即按一定策略将运行任务调度到平台恰当的节点上运行,使各个节点运行负载率大体一致。
在云资源管理系统中,为了实现运行主机节点之间的负载均衡,需要在云平台主机之间进行虚拟机部署、迁移、启停等操作。在进行虚拟机部署时,需要选择虚拟机镜像模板、定制化虚拟机参数、选择目标主机位置、启动虚拟机等步骤。其中选择目标主机是最重要的步骤,因为它是云资源管理系统实现主机负载均衡的关键环节。
在部署虚拟机时,选择目标主机方法主要有轮转法、加权轮转法、最小负载优先法、局部搜索法。选择目标主机,除了考虑虚拟机资源需求与平台各主机空闲资源的最佳适配外,还需要考虑当前平台各主机的负载情况以及选择算法的时间复杂度等因素。
轮转法通常是将平台的运行主机组成一个环行队列。在外部请求在主机中部署虚拟机时,依次选择一个符合资源需求的目标主机。该方法最大的优点在于简单,但该方法容易带来平台主机之间的负载不均衡问题。
加权轮转法则在轮转法上进行一定改进,它根据主机的空闲资源状态,赋予主机在环队列中选取的权值。如果轮转的物理主机的权值为0,则跳过该主机并选择下一台;如被选择的主机的权值不为0,且可用资源满足用户需求,则选中该主机并将该主机的权值减1,后继的选择在前次选择的基础上轮转。虽然,这种方法可以一定程度上改进主机间负载均衡问题,但是虚拟机部署需求与主机空闲资源的多种变化情况仍然会带来平台主机间负载不均衡问题;另外加权轮转法需要选择算法实时地修改各个主机的权值,这些公共变量需要进行加锁解锁,影响主机选择算法执行速度。
最小负载优先法是每次部署虚拟机时,首先检查当前一段时间内所有主机的负载情况,然后选择该段时间内负载最轻的主机部署虚拟机。这种方法可解决主机间负载均衡问题,但是可能存在平台主机资源利用率低的问题。
局部搜索算法是不断地搜索满足用户需求的目标主机,该算法是一种简单的贪心搜索,每次从当前解的临近解空间中选择一个最优解作为当前解,得到最优解或者逼近最优解。该方法虽然可以优选目标主机,但该算法计算耗费时间较长。
发明内容
本发明的目的,就是针对上述传统技术存在的问题,提出一种云平台环境下虚拟机部署的目标主机选择方法。
本发明解决上述技术问题所采用的技术方案是:云平台环境下虚拟机部署的目标主机选择方法,其特征在于,包括以下步骤:
a.设置云资源访问接口将外部虚拟机部署请求任务放入部署请求队列中;
b.设置虚拟机管理模块通过主机资源监控模块实时获取当前平台各主机资源与负载数据,并将可用于部署虚拟机的主机标号记录在可用资源二维链表中,所述可用资源二维链表中按照各主机空闲资源量倒序排列主机标号结点;
c.虚拟机管理模块从步骤a中部署请求队列中提取一个虚拟机部署任务,通过目标主机选择模块确定该虚拟机部署任务将部署的目标主机,其具体方法为:
c1.目标主机选择模块根据该虚拟机部署任务的资源需求,在步骤b中所述的可用资源二维链表中定位目标主机候选集,其具体方法为根据该虚拟机部署任务的资源需求,在可用资源二维链表中找出满足虚拟机CPU资源需求和内存需求的候选主机集合;
c2.根据目标主机候选算法在目标主机候选集中选出最小部署代价的目标主机,并将选定的目标主机的标号返回虚拟机管理模块进行虚拟机部署。
具体的,其特征在于,步骤a的具体方法为:
在虚拟机管理系统中,建立一个队列缓冲区,用于存放虚拟机部署请求任务。在队列单元中记录虚拟机部署请求任务信息,主要包括虚拟机部署请求任务标识、部署资源需求(CPU内核个数、内存量、磁盘量)、虚拟机镜像模板等信息。虚拟机部署资源请求任务r可表示为:
r=<Rid,Ru,Rm,Rhd,Rim>。
其中,Rid为虚拟机部署请求的唯一标识;Ru为请求的CPU内核个数;Rm为请求的内存量;Rhd为请求的磁盘量;Rim为请求的虚拟机镜像模板。
具体的,步骤b中所述资源二维链表由水平链表和垂直链表构成,其中构成水平链表的各个结点表示不同的可用CPU内核数,具有相同CPU内核数的主机标号构成垂直链表,并与相应的水平链表结点连接。
具体的,步骤c中通过目标主机选择模块确定该虚拟机部署任务将部署的目标主机为采用快速选择策略,具体为:
c11.目标主机选择模块根据虚拟机部署的CPU资源需求,在可用资源二维链表的水平链表中按可用CPU资源从大到小的顺序选择具有最大可用CPU资源的水平链表结点;
c12.根据虚拟机部署的内存资源需求,在与选择的水平链表结点相连接的垂直链表中查询是否具有满足内存资源需求的主机标号,若有,则将查询到的主机标号作为目标主机;若否,则在水平链表中按从大到小的顺序选择下一个水平链表结点,重复步骤c12。
具体的,步骤c中通过目标主机选择模块确定该虚拟机部署任务将部署的目标主机为采用基于负载均衡的选择策略,具体为:
c11.目标主机选择模块根据虚拟机部署的CPU资源需求,在可用资源二维链表中选出满足部署虚拟机CPU资源需求的所有主机结点集合;
c12.根据虚拟机部署的内存资源需求,在步骤c11中选出的主机结点集合中选出满足内存资源需求的主机结点集合,并标记为候选主机集合;
c13.分别计算出候选主机集合中各主机部署虚拟机的代价值;
c14.选择具有最小代价值的主机作为虚拟机部署的目标主机。
具体的,所述计算出候选主机集合中各主机部署虚拟机的代价值的具体方法为:
采用平台主机间的负载均衡度LoadPlat表示主机部署虚拟机的代价值,平台主机间的负载均衡度LoadPlat表示为:
其中,LoadHi标识主机i与平台平均负载的偏离度:
其中,cpu为主机内核,mem为主机内存,cpuuti表示主机i的cpu利用率:
其中,cpuusi表示主机i的已用CPU内核个数,cpusumi表示主机i的cpu总个数;
memuti表示主机i的内存利用率:
其中,memusi表示主机i的已用内存量,memsumi表示主机i的内存总量;
cpuavg表示平台所有主机的平均cpu利用率:
memavg表示平台所有主机的平均mem利用率:
本发明的有益效果为,能根据虚拟机部署的资源需求在可用资源二维链表中快速定位目标主机候选集,从较小范围的候选集中搜索目标主机,可提高目标主机选定速度。本发明也改进了主机选择策略和主机选择算法,用户可灵活选择基于快速方式部署或基于负载均衡方式部署虚拟机,该选择算法可以优选出一个最适合的目标主机部署虚拟机,并满足平台主机间负载均衡性。
附图说明
图1为本发明的云平台虚拟机部署资源调度模型示意图;
图2为本发明的目标主机选择模型示意图;
图3为本发明的可用资源二维链表示意图;
图4为本发明的目标主机选择流程示意图;
图5为本发明的快速匹配策略算法流程示意图;
图6为本发明的基于负载均衡策略的目标主机选择算法流程示意图。
具体实施方式
下面结合附图,详细描述本发明的技术方案:
由于传统的轮转法、加权轮转法不能很好解决平台主机空闲资源与虚拟机需求资源的匹配,容易造成云平台主机节点负载不均衡问题。最小负载优先法在选择目标主机时,虽然容易实现平台主机节点负载均衡,但可能存在平台整体资源利用率较低问题。而局部搜索算法在负载均衡和资源利用率之间可以做到较优化处理,但存在选择算法的时间复杂问题。针对现有的目标主机选择方法局限,本发明提出一种基于可用资源二维链表的目标主机优选方法。该方法改进现有云平台虚拟机部署资源调度模型、主机选择策略及其主机选择算法,实现在确保平台主机资源需求和平台各主机负载均衡性前提下,快速优选目标主机。
本发明提出的改进云平台虚拟机部署资源调度模型工作原理:当外部的虚拟机部署请求时,首先通过云资源访问接口将其任务放入部署请求队列中,然后等待虚拟机管理模块进行部署调度处理。虚拟机管理模块作为云平台资源管理调度中心,它通过主机资源监控模块实时获取当前平台各主机资源与负载数据,并在主机状态记录表中记录这些数据,同时在可用资源二维链表中记录或维护可用于部署虚拟机的主机标号列表,以作为目标主机的候选范围。当虚拟机管理模块从请求队列中提取一个虚拟机部署任务进行处理时,它将首先调用目标主机选择模块来确定该虚拟机将部署的目标主机,然后进行虚拟机部署处理。目标主机选择模块首先根据该虚拟机部署的资源需求,在可用资源二维链表中快速定位目标主机候选集;然后由目标主机选择算法在主机候选集中优选出一个最小部署代价的目标主机;最后将选定目标主机标号返回虚拟机管理模块,以便虚拟机管理模块在该主机上部署虚拟机。
目标主机选择方法:当接收到虚拟机管理模块的目标主机查找命令后,目标主机选择模块根据该虚拟机部署资源需求,在可用资源二维链表中优选出一个目标主机反馈虚拟机管理模块,然后在该主机上进行虚拟机部署。其基本方法是在可用资源二维链表中找出满足虚拟机CPU资源需求和内存需求的候选主机集合。在这些候选主机集合中,选择算法通过计算各个主机的部署代价,找出一个部署代价最小的主机作为目标主机。
与现有云平台虚拟机部署资源调度模型方法一样,都需要根据平台各主机当前可用资源状况,选择出满足虚拟机部署需求的目标主机。本发明与现有目标主机选择方法不同之处在于设计一个平台主机可用资源二维链表,在其中记录可部署虚拟机的候选主机节点集合。在该二维链表结构中,按照各主机空闲资源量依次倒序排列主机标号结点。当需要选择目标主机时,能够在可用资源二维链表中快速定位目标主机候选集范围。然后在该范围中,由选择算法通过计算各候选主机的部署代价,优选出一个满足平台主机之间负载均衡性的最小部署代价主机,进行虚拟机部署。
如图1所示,为本发明设计的云平台虚拟机部署资源调度模型,该模型系统由云资源访问接口、虚拟机部署请求队列、虚拟机管理模块、主机资源监控模块、主机状态记录表、可用资源二维链表、目标主机选择模块、主机资源池、磁盘阵列等组成。在该调度模型系统中,本发明设计一种可用资源二维链表记录平台中可支持部署虚拟机的主机节点集合。同时本发明也改进主机选择策略和目标主机选择算法实现目标主机优选。其中,
云资源访问接口:接收虚拟机部署资源请求,将外部的虚拟机部署请求任务放入虚拟机部署请求队列中。
主机资源监控模块:通过在各主机中的资源监测代理对主机运行状况进行监测,由主机资源监控模块控制获取当前各主机资源与负载数据,并将这些数据实时写入在主机状态记录表中。
虚拟机管理模块:从请求队列获取虚拟机部署请求,实现云平台主机的统一资源管理和虚拟机部署调度。该模块从主机状态记录表中找出满足一定资源利用率范围和可用资源量的主机集合,将其主机标号按照CPU可用资源量和内存可用资源量倒序记录到平台可用资源二维链表结点中,并对二维表中原有结点数据进行调整。
主机状态记录表:在该表中记录虚拟机监控模块实时采集的平台各主机负载和可用资源等运行状态数据。此外,虚拟机管理模块还在该表中记录平台各主机是否在可用资源二维链表中状态信息。
可用资源二维链表:在该表中按一定结构和顺序记录平台中可用于虚拟机部署的主机标号数据和其它数据。该二维链表是由虚拟机管理模块定期从主机状态记录表中搜索出云平台中满足一定资源利用率范围和可用资源容量的主机集合,按当前可用CPU内核个数和可用内存容量排序将主机标号作为结点放入到可用资源二维链表中。虚拟机管理模块除添加主机标号结点到可用资源二维链表中外,也可能将链表中原有主机标号结点进行删除、修改或移动位置。在虚拟机管理模块管理下,可用资源二维链表记录了当前平台可用资源信息的主机结点数据,可以提供给目标主机选择模块选定主机使用。
目标主机选择模块:根据虚拟机部署资源需求,从可用资源二维链表中优选出一个目标主机进行虚拟机部署。在选择主机时,首先在可用资源二维链表中确定目标主机候选集范围,然后根据主机选择策略确定选择算法,在执行选择算法时,计算各候选目标主机部署代价,再从中优选出部署代价最小的目标主机。
主机资源池:在云平台中,通过虚拟化工具将各物理服务器虚拟化成各类虚拟计算资源,如虚拟CPU、虚拟内存、虚拟设备等。将这些虚拟资源组成主机资源池,主机资源池为云平台提供虚拟机部署、虚拟机运行提供支撑。
磁盘阵列:在云平台中,使用磁盘阵列存放各类虚拟机模板的镜像,它为部署虚拟机提供存储空间支持,同时也虚拟机运行环境提供存储支持。
如图2所示,为本发明设计的目标主机选择模型,该模型的基本目标是根据虚拟机部署资源需求、平台主机运行负载状况和平台主机可用资源情况选择一个最佳目标主机进行当前虚拟机部署,使平台各主机达到负载均衡。
在本发明的云平台中,实现虚拟机部署的目标选择模型由虚拟机部署请求队列、虚拟机管理模块、主机状态记录表、可用资源二维链表、主机选择策略、目标主机选择模块组成。在进行目标主机选择中,主要考虑虚拟机部署关键资源需求(CPU、内存)对云平台各主机负载状态的影响。
主机选择策略:本发明设计的主机选择策略分为基于快速选择策略和基于负载均衡选择策略。
基于快速选择策略的目标主机选择步骤:
1)目标主机选择模块根据虚拟机部署的CPU资源需求,在可用资源二维链表中找出具有最多可用CPU资源的主机结点集合。
2)再根据虚拟机部署的内存资源需求,在上述主机结点集合中,进一步找出满足内存资源需求的主机。符合资源需求的首个主机即作为目标主机。
3)在第2步中,若没有找到符合资源需求的主机,则需要在首行链表中调整到下一个可用CPU资源的主机结点,同理找出一个满足虚拟机部署资源需求的主机作为目标主机。
基于负载均衡策略的目标主机选择步骤:
1)目标主机选择模块根据虚拟机部署的CPU资源需求,在可用资源二维链表中找出满足部署虚拟机CPU需求的主机结点集合。
2)在上述主机结点集合中,根据虚拟机部署的内存资源需求,进一步过滤出满足部署需求的主机结点集合,这些主机作为候选主机集合。
3)针对候选的目标主机集合,分别计算各主机部署虚拟机的代价值。
4)选择出代价最小的主机作为虚拟机部署的目标主机。
如图3所示,为本发明的可用资源二维链表结构示意图,其中水平链表各结点分别表示不同的可用CPU内核数。在水平链表的各个结点下方,建立主机结点的垂直链表。在单条垂直链表中,各主机的可用CPU资源是一样的,但其可用内存资源量可能不同。在垂直链表中,结点是按主机可用内存量倒序排列。链表中每个结点记录该主机的标识数据。
如图4所示,为本发明的目标主机选择算法,在进行目标主机选择时,根据虚拟机部署的资源需求,在可用资源二维链表中搜索出满足需求的主机。根据主机选择策略的不同,执行不同的算法流程。
快速选择策略算法流程:在可用资源二维链表中依次从最多可用CPU内核数的结点链表中开始搜索主机。按照垂直链表中主机结点顺序,检查该主机可用内存量是否符合要求,如果符合要求则选择该主机作为目标主机,不符合则搜索下一个主机结点。
负载均衡选择策略算法流程:在可用资源二维链表中,首先过滤出符合虚拟机CPU资源需求的主机集合。在这些主机集合中,再过滤出符合虚拟机内存需求的主机集合作为候选主机集合。在最后过滤出的候选主机集合中,分别计算各主机部署该虚拟机的代价。找出代价最小的主机,作为目标主机。
在上述部署代价计算中,将根据平台主机负载均衡度评价指标来确定部署代价。最小部署代价是指相比在其它主机上部署虚拟机,在目标主机上部署虚拟机时,平台主机均衡度最小。
基于快速选择策略算法侧重选择算法的快速、方便,不考虑平台主机的负载均衡度。基于负载均衡选择策略算法需要从多个候选主机中,找出在该主机上部署虚拟机后,使得平台主机间负载均衡度值最小的主机,即为最小部署代价的目标主机。
本发明的方法主要包括以下步骤:
1.虚拟机部署请求队列实现
在虚拟机管理系统中,建立一个队列缓冲区,用于存放虚拟机部署请求任务。在队列单元中记录虚拟机部署请求任务信息,主要包括虚拟机部署请求任务标识、部署资源需求(CPU内核个数、内存量、磁盘量)、虚拟机镜像模板等信息。虚拟机部署资源请求可抽象表示为:
r=<Rid,Ru,Rm,Rhd,Rim>。
其中,Rid为虚拟机部署请求的标识,它是唯一的;Ru为请求的CPU内核个数;Rm为请求的内存量;Rhd为请求的磁盘量;Rim为请求的虚拟机镜像模板。
虚拟机管理模块可以采用先到先服务的策略从虚拟机部署请求队列选取一个进行部署,也可以根据不同的优先级进行部署,来满足特定请求的服务质量。
2.主机资源监控模块实现
主要实现云平台主机的资源监控,获取云平台当前各主机空闲资源与负载数据,包括主机标识、CPU内核总数、内存总量、空闲CPU内核数、空闲内存量等。该模块通过各主机的监测代理实时采集这些数据,并写入平台主机状态记录表。
3.主机状态记录表
主机状态记录表作为平台运行数据表,记录各个主机的运行状态、主机负载数据、配置资源数据、空闲资源数据、资源利用率数据等信息。包括主机标识、主机可用CPU内核数、主机可用内存量、主机CPU利用率、主机内存利用率。该表中运行数据是由主机资源监控模块实时写入,提供给虚拟机管理模块使用。虚拟机管理模块还在该表中记录平台各主机是否在可用资源二维链表中状态信息。
4.可用资源二维链表
可用资源二维链表作为平台记录可用主机资源的数据结构,为虚拟机部署提供包含空闲资源的主机信息,可用资源二维链表的水平链表结点标识代表其下垂直链表中主机结点的可用CPU内核数。水平链表结点记录了可用CPU内核数、链表指针信息,其结点定义如下。
typedefstructLnode{
int CPU; //垂直链表主机的可用CPU内核数
structLnode*next; //指向下一个水平链表结点
structHostNode*host; //指向垂直链表的首个主机结点
}Lnode,*LList;
垂直链表的主机结点定义如下:
typedefstructHostNode{
intHostID; //主机标识
structHostNode*next; //指向垂直链表下一个主机结点
}HostNode,*HostList;
垂直链表结点按主机可用内存容量由大到小排列。各主机结点只保存主机标识,根据此主机标识,可以在主机状态记录表中找到各主机详细数据信息。在垂直链表中,可以增加结点、删除结点、修改结点数据、查询结点数据等操作。
5.可用资源二维链表数据处理方法
每当虚拟机管理模块进行虚拟机部署前,它将对主机状态记录表进行分析处理,根据当前各主机的可用资源状况,对可用资源二维链表数据进行维护。一方面,对现有可用资源二维链表的结点位置进行修改或从链表中删除结点数据。另一方面,将满足一定资源利用率范围和空闲资源的非二维表主机添加进可用资源二维链表中。处理后的结果使得可用资源二维表反映出当前平台主机的可用资源状态,并支持快速的目标主机搜索处理。
当目标主机选择模块需要借助可用资源二维链表来搜索选择目标主机时,可根据需求的CPU资源和内存资源,从可用资源二维链表中快速定位的候选主机,若有多个符合要求的主机,则根据这些主机部署该虚拟机的代价计算值,找出一个最合适的主机作为目标主机。因此,目标主机选择模块主要是对可用资源二维链表进行搜索处理。
6.主机选择策略实现
本发明将主机选择策略设计为快速选择策略和负载均衡选择策略两种类型,用户可根据实际应用进行设定。
在快速选择策略下,目标主机选择模块从可用资源二维链表的首结点开始搜索满足虚拟机CPU资源和内存资源需求的第1个主机结点作为目标主机。由于可用资源二维链表的主机结点是按可用资源量倒序排列,这样选择算法可以很快找到目标主机。
在负载均衡选择策略下,目标主机选择模块也是从可用资源二维链表的首结点开始搜索满足虚拟机CPU资源和内存资源需求的主机结点作为目标主机。但它首先需要确定在可用资源二维链表中结点搜索范围,即满足虚拟机CPU资源的结点范围。在该范围中搜索出满足虚拟机内存需求的候选主机集合,在针对这些候选的目标主机集合,分别计算各主机部署虚拟机的代价值。选择出代价最小的主机作为虚拟机部署的目标主机。由于在可用资源二维链表结构下,目标主机搜索是一个小范围搜索,相对其它算法能够实现较快搜索,更主要的是本策略搜索算法确定的主机部署虚拟机后,可以实现平台主机之间的负载均衡。
7.虚拟机部署代价计算
在本发明中,从多个候选主机选择一个作为目标主机是依据各主机部署虚拟机的代价来确定。选择代价最小的候选主机作为目标主机。在本发明中,部署代价值是采用主机部署虚拟机后平台主机负载均衡度值来表示。因此,需要定义平台主机负载均衡度值计算公式。
要得到平台主机负载均衡度值,要先计算主机与平台的相关数据。下面给出主机CPU利用率、主机内存利用率、主机负载度与平台主机负载均衡度的计算公式。
主机CPU利用率是已经使用的CPU内核个数与主机总CPU内核个数的比值,由公式1计算得出:
其中,cpuuti表示主机i的cpu利用率,cpuusi表示主机i的已用CPU内核个数,cpusumi表示主机i的cpu总个数。
主机内存利用率是已经使用的内存量与主机内存总量之间的比值,由公式2计算得出:
其中,memuti表示主机i的内存利用率,memusi表示主机i的已用内存量,memsumi表示主机i的内存总量。
主机i与平台平均负载的偏离度,由公式3计算得出:
其中,LoadHi标识主机i与平台平均负载的偏离度。cpuuti表示主机i的cpu利用率,memuti表示主机i的内存利用率。cpuavg表示平台所有主机的平均cpu利用率,memavg表示平台所有主机的平均mem利用率,它们分别由公式4和公式5计算得出:
平台主机负载均衡度是衡量平台各个主机之间的负载均衡程度,由公式6计算得出:
其中,LoadPlat表示整个平台主机负载均衡度。
LoadPlat值越大,说明在其上部署虚拟机对整个云平台代价越大,在选择目标主机时,选择LoadPlat值最小的主机。
其中,根据用户选定的主机选择策略不同,目标主机选择算法实现分为快速选择策略算法实现和负载均衡选择策略算法实现。
如图5所示,为快速匹配策略算法流程:
在快速选择策略下,目标主机快速选择算法从可用资源二维链表的首结点开始搜索满足虚拟机CPU资源和内存资源需求的第一个主机结点作为目标主机。由于可用资源二维链表的主机结点是按可用资源量倒序排列,这样选择算法可以很快找到目标主机。
目标主机快速选择策略算法主要步骤如下:
a.接收部署虚拟机的CPU资源请求和内存资源请求。得到可用资源二维链表最大可用CPU内核个数。将可用资源二维链表最大可用CPU内核个数值赋给查找目标主机的循环控制变量。
b.判断此循环控制变量值是否大于部署虚拟机的CPU资源请求值;如果满足,执行步骤c,如果不满足,提示没有找到合适的主机,结束。
c.根据循环控制变量值定位到可用资源二维链表水平链表结点。在该水平链表结点的下挂垂直链表中搜索主机结点。
d.判断此链表是否有主机。如果有主机则执行步骤e,否则将循环控制变量值减1后执行步骤b。
e.判断此主机的可用内存量是否满足虚拟机部署内存资源请求,如果满足则将该结点的主机标识返回给系统,结束;如果不满足则将循环控制变量值减1后执行步骤b。
如图6所示,为基于负载均衡选择策略流程:
基于负载均衡选择策略是目标主机选择模块根据虚拟机部署的CPU资源需求,在可用资源二维链表中找出满足部署虚拟机CPU需求的主机结点集合,这样就设定可用资源二维链表水平链表选择范围。在上述主机结点集合中,根据虚拟机部署的内存资源需求,在垂直链表中进一步过滤出满足内存资源需求的主机结点集合,直到水平链表范围的主机已搜索过滤完,将这些满足资源需求的主机作为候选主机集合。针对候选的目标主机集合,分别计算各主机部署虚拟机的代价值。选择出代价最小的主机作为虚拟机部署的目标主机。
基于负载均衡的选择策略算法主要步骤如下所示:
a.接收部署虚拟机的CPU资源请求和内存资源请求。得到可用资源二维链表最大可用CPU内核个数。将可用资源二维链表最大可用CPU内核个数值赋给查找目标主机的循环控制变量。
b.判断此循环控制变量值是否大于部署虚拟机的CPU资源请求值;如果满足,执行步骤c,如果不满足,判断记录的主机集合是否为空,如果不为空,则计算各个候选目标主机的部署虚拟机的代价值,选择部署代价值最小的主机,作为目标主机返回;如果为空,则提示没有找到适合的目标主机,结束。
c.根据循环控制变量值定位到可用资源二维链表水平链表结点。在该水平链表结点的下挂垂直链表中搜索主机结点。
d.判断此链表是否有主机。如果有主机则执行步骤e,否则将循环控制变量值减1后执行步骤b。
e.判断此主机的可用内存量是否满足虚拟机部署内存资源请求,则计算在此主机上部署虚拟机的平台主机负载均衡度,保存该部署代价值,并返回步骤d继续执行。如果不满足则将循环控制变量值减1后执行步骤b。
Claims (1)
1.云平台环境下虚拟机部署的目标主机选择方法,其特征在于,包括以下步骤:
a.设置云资源访问接口将外部虚拟机部署请求任务放入部署请求队列中;具体方法为:
在虚拟机管理系统中,建立一个队列缓冲区,用于存放虚拟机部署请求任务,在队列单元中记录虚拟机部署请求任务信息,包括虚拟机部署请求任务标识、部署资源需求和虚拟机镜像模板,所述部署资源需求包括CPU内核个数、内存量和磁盘量,虚拟机部署请求任务r可表示为:
r=<Rid,Ru,Rm,Rhd,Rim>,
其中,Rid为虚拟机部署请求的唯一标识;Ru为请求的CPU内核个数;Rm为请求的内存量;Rhd为请求的磁盘量;Rim为请求的虚拟机镜像模板;
b.设置虚拟机管理模块通过主机资源监控模块实时获取当前平台各主机资源与负载数据,并将可用于部署虚拟机的主机标号列表记录在可用资源二维链表中,所述可用资源二维链表中按照各主机空闲资源量倒序排列主机标号结点;所述可用资源二维链表由水平链表和垂直链表构成,其中构成水平链表的各个结点表示不同的可用CPU内核数,具有相同CPU内核数的主机标号构成垂直链表,并与相应的水平链表结点连接;
c.虚拟机管理模块从步骤a中部署请求队列中提取一个虚拟机部署任务,通过目标主机选择模块确定该虚拟机部署任务将部署的目标主机,其具体方法为:
c1.目标主机选择模块根据该虚拟机部署任务的资源需求,在步骤b中所述的可用资源二维链表中定位目标主机候选集,其具体方法为根据该虚拟机部署任务的资源需求,在可用资源二维链表中找出满足虚拟机CPU资源需求和内存需求的候选主机集合;
通过目标主机选择模块确定该虚拟机部署任务将部署的目标主机为采用基于负载均衡的选择策略,具体为:
c11.目标主机选择模块根据虚拟机部署的CPU资源需求,在可用资源二维链表中选出满足部署虚拟机CPU资源需求的所有主机结点集合;
c12.根据虚拟机部署的内存资源需求,在步骤c11中选出的主机结点集合中选出满足内存资源需求的主机结点集合,并标记为候选主机集合;
c13.分别计算出候选主机集合中各主机部署虚拟机的代价值;计算出候选主机集合中各主机部署虚拟机的代价值的具体方法为:
采用平台主机间的负载均衡度LoadPlat表示主机部署虚拟机的代价值,平台主机间的负载均衡度LoadPlat表示为:
其中,n为平台主机数量,LoadHi标识主机i与平台平均负载的偏离度:
其中,cpuuti表示主机i的cpu利用率:
其中,cpuusi表示主机i的已用CPU内核个数,cpusumi表示主机i的cpu总个数;
memuti表示主机i的内存利用率:
其中,memusi表示主机i的已用内存量,memsumi表示主机i的内存总量;
cpuavg表示平台所有主机的平均cpu利用率:
memavg表示平台所有主机的平均mem利用率:
c14.选择具有最小代价值的主机作为虚拟机部署的目标主机;
c2.根据目标主机候选算法在目标主机候选集中选出最小部署代价的目标主机,并将选定的目标主机的标号返回虚拟机管理模块进行虚拟机部署。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410268251.8A CN104008002B (zh) | 2014-06-17 | 云平台环境下虚拟机部署的目标主机选择方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410268251.8A CN104008002B (zh) | 2014-06-17 | 云平台环境下虚拟机部署的目标主机选择方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104008002A CN104008002A (zh) | 2014-08-27 |
CN104008002B true CN104008002B (zh) | 2016-11-30 |
Family
ID=
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102073546A (zh) * | 2010-12-13 | 2011-05-25 | 北京航空航天大学 | 一种云计算环境中分布式计算模式下的任务动态调度方法 |
CN103309738A (zh) * | 2013-05-31 | 2013-09-18 | 中国联合网络通信集团有限公司 | 用户作业调度方法及装置 |
CN103617086A (zh) * | 2013-11-20 | 2014-03-05 | 东软集团股份有限公司 | 一种并行计算方法及系统 |
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102073546A (zh) * | 2010-12-13 | 2011-05-25 | 北京航空航天大学 | 一种云计算环境中分布式计算模式下的任务动态调度方法 |
CN103309738A (zh) * | 2013-05-31 | 2013-09-18 | 中国联合网络通信集团有限公司 | 用户作业调度方法及装置 |
CN103617086A (zh) * | 2013-11-20 | 2014-03-05 | 东软集团股份有限公司 | 一种并行计算方法及系统 |
Non-Patent Citations (1)
Title |
---|
二维及多维链表及其算法实现;李晓东;《佛山科学技术学院学报(自然科学版)》;20030930;第21卷(第3期);第35-38页 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108829494B (zh) | 基于负载预测的容器云平台智能资源优化方法 | |
CN103970607B (zh) | 使用等价集合来计算优化虚拟机分配的方法和装置 | |
US9336059B2 (en) | Forecasting capacity available for processing workloads in a networked computing environment | |
CN106095878B (zh) | 基于分库分表的数据库操作装置及方法 | |
CN101697141B (zh) | 网格中基于历史数据建模的作业性能预测方法 | |
CN102156665B (zh) | 一种虚拟化系统竞争资源差异化服务方法 | |
US20170206481A1 (en) | Order sourcing with asynchronous communication and using optimization for large sourcing networks | |
CN108667859A (zh) | 一种实现资源调度的方法及装置 | |
CN109445802A (zh) | 基于容器的私有化Paas平台及其发布应用的方法 | |
CN102375734B (zh) | 应用产品开发系统、方法、装置和运行系统、方法、装置 | |
CN110661842B (zh) | 一种资源的调度管理方法、电子设备和存储介质 | |
CN104050042A (zh) | Etl作业的资源分配方法及装置 | |
CN104778076B (zh) | 一种云服务工作流调度方法 | |
CN105843683A (zh) | 用于动态优化平台资源分配的方法、系统和设备 | |
CN104731528B (zh) | 一种云计算块存储服务的构建方法及系统 | |
EP1966719A1 (en) | Multiple concurrent workflow persistence schemes | |
CN100590596C (zh) | 多节点计算机系统和用于监视其性能的方法 | |
US20060031813A1 (en) | On demand data center service end-to-end service provisioning and management | |
WO2019207156A1 (en) | Method and arrangement for licence management in nfv network environment | |
Atwal et al. | Dataops technology | |
Rawas et al. | LECC: Location, energy, carbon and cost-aware VM placement model in geo-distributed DCs | |
CN108306912A (zh) | 虚拟网络功能管理方法及其装置、网络功能虚拟化系统 | |
Jiang et al. | A cloud-agnostic framework to enable cost-aware scheduling of applications in a multi-cloud environment | |
CN110457054A (zh) | 一种UnityNGUI控件锚点更新模式优化方法及装置 | |
CN110083454A (zh) | 一种带有量子计算机的混合云服务编排方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20161130 Termination date: 20190617 |