云平台、基于云平台的虚拟机调度方法及装置与流程

文档序号:18059057发布日期:2019-07-03 02:55阅读:184来源:国知局
云平台、基于云平台的虚拟机调度方法及装置与流程

本发明实施例涉及互联网技术领域,尤其涉及一种云平台、基于云平台的虚拟机调度方法及装置。



背景技术:

openstack是一个旨在为公有云及私有云的建设与管理提供软件支持服务的开源项目。它的社区拥有超过150家企业及1000多位开发者,这些机构与个人都把openstack作为laas的通用前端程序。openstack具有很强的灵活性,逐渐成为快速组建云平台的标准服务。

openstack项目的首要任务就是简化云的部署过程,集中管理系统资源并为其提供良好的可扩展性。openstack首先将数据中心虚拟化,利用管理程序提供应用程序和硬件之间抽象的对应关系,将硬件资源抽象为计算、存储和网络资源池,以便根据需求对资源分配或者请求相应提供灵活的分配策略。openstack完成数据中心虚拟化后,openstack提供对云进行管理的一层,负责在云上部署各种应用和文件,同时还要提供对应用和文件的检索,创建和分配虚拟机,当虚拟机用完之后还需要撤销,需要提供用户和管理员接口,使用户能知道自己的应用的情况,管理员也能知道整个云的运行情况,负责云存储的分配、检索和收回。

目前openstack有众多的版本,随着新版本的发放,功能越来越完善,其系统的稳定性也大幅度提高。openstack是一个庞大的系统,有众多组件组成,例如计算组件(nova)、网络组件(neutron)、存储组件(swift)和认证组件(keystone)等。

其中,nova是openstack云中的计算组织控制器。支持openstack云中实例(instances)生命周期的所有活动都由nova处理。这样使得nova成为一个负责管理计算资源、网络、认证、所需可扩展性的平台。nova功能包括实例生命周期管理、计算资源管理、网络与授权管理、异步连续通信等等。为支持这些功能,nova本身包含了众多组件,包括:apiserver(nova-api)、消息队列(rabbit-mqserver)、运算工作站(nova-compute)、网络控制器(nova-network)、卷管理(nova-volume)和调度器(nova-scheduler)。

调度器负责把nova-api调用送达给目标。调度器以名为“nova-schedule”的守护进程方式运行,并根据调度算法从可用资源池中恰当地选择运算服务器。有很多因素都可以影响调度结果,比如负载、内存、子节点的远近、cpu架构等等。目前nova调度器使用了几种基本的调度算法:

1)随机化:主机随机选择可用节点;

2)可用化:与随机相似,只是随机选择的范围被指定;

3)简单化:应用这种方式,主机选择负载最小者来运行实例。负载数据可以从别处获得,如负载均衡服务器。

云平台中,虚拟机的创建与启动调度策略在云计算中起着很重要的作用,调度算法的好坏直接影响了虚拟机的性能和系统资源利用的高效性。目前,openstack的默认调度算法是获取宿主机剩余内存,剩余内存越大,虚拟机越容易被调度到这台宿主机上,但这种方式存在很大的缺陷,如果这台宿主机上运行消耗大量cpu资源的虚拟机,但是剩余内存很大,虚拟机被调度到这台宿主机上并不能很好的运行,因为cpu资源被其他虚拟机占用,严重影响新虚拟机的性能。因此,如何优化调度算法,提升云平台的性能,是目前需要解决的一个重要技术问题。



技术实现要素:

有鉴于此,本发明实施例所解决的技术问题之一在于提供一种基于云平台的虚拟机调度方案,用以克服现有技术中由于调度不合适而影响新虚拟机的性能进而导致云平台的性能较低的缺陷,达到优化调度算法,提升云平台的性能的效果。

本发明实施例提供一种基于云平台的虚拟机调度方法,包括:步骤1,确定需要为待调度的虚拟机分配宿主机节点;步骤2,获取云平台的多个宿主机节点在最近的预设时间段的平均cpu使用率和平均内存使用率;步骤3,至少根据每个所述宿主机节点在最近的第一预设时间段的平均cpu使用率和平均内存使用率,统计每个所述宿主机节点的当前可用资源度量的权重值;步骤4,将当前可用资源度量的权重值最大的宿主机节点分配给待调度的虚拟机。

可选地,在本发明一具体实施例中,对于每个宿主机节点,按照以下方式获取该宿主机节点的当前可用资源度量的权重值wi:

wi=wi*(1-ci)*a+(1-mi)*b

其中,wi的初始值为1,ci为该宿主机节点在最近的第一预设时间段的平均cpu使用率,mi为该宿主机节点在最近的第一预设时间段的平均内存使用率,a和b为大于0的有理数,且a与b的和为1的10n倍,n为大于或等于0的整数。

可选地,在本发明一具体实施例中,当ci<25%时,a=0.9*10n,b=0.1*10n;当25%≤ci<50%时,a=0.6*10n,b=0.4*10n;当50%≤ci<75%时,a=0.4*10n,b=0.6*10n;当ci≥75%时,a=0.1*10n,b=0.9*10n

可选地,在本发明一具体实施例中,确定需要为待调度的虚拟机分配宿主机节点,包括:接收到客户端发送的申请新的虚拟机的调度指令,确定需要为新的虚拟机分配宿主机节点;将当前可用资源度量的权重值最大的宿主机节点分配给待调度的虚拟机,包括:在所述当前可用资源度量的权重值最大的宿主机节点上为所述客户端创建新的虚拟机。

可选地,在本发明一具体实施例中,确定需要为待调度的虚拟机分配宿主机节点,包括:监测到所述云平台中的一宿主机节点的负载超过设定的阈值,将所述负载超过设定的阈值的宿主机节点上当前消耗cpu和内存最多的虚拟机确定为待调度的虚拟机;将当前可用资源度量的权重值最大的宿主机节点分配给待调度的虚拟机,包括:将所述消耗cpu和内存最多的虚拟机从所述负载超过设定的阈值的宿主机节点上热迁到所述当前可用资源度量的权重值最大的宿主机节点。

可选地,在本发明一具体实施例中,在将当前可用资源度量的权重值最大的宿主机节点分配给待调度的虚拟机之后,所述方法还包括:继续监控所述负载超过设定的阈值的宿主机节点,判断所述负载超过设定的阈值的宿主机节点在第二预设时间段内的负载是否超过所述阈值;在判断所述负载超过设定的阈值的宿主机节点在第二预设时间段内的负载超过所述阈值的情况下,获取所述负载超过设定的阈值的宿主机节点上当前消耗cpu和内存最多的虚拟机,确定所述消耗cpu和内存最多的虚拟机为待调度的虚拟机,返回步骤1;在判断所述负载超过设定的阈值的宿主机节点在第二预设时间段内的负载未超过所述阈值的情况下,结束流程。

本发明实施例还提供一种基于云平台的虚拟机调度装置,包括:确定模块,用于在确定是否需要为待调度的虚拟机分配宿主机节点,在确定是的情况下,触发调度模块;调度模块,用于获取云平台的多个宿主机节点在最近的预设时间段的平均cpu使用率和平均内存使用率,至少根据每个所述宿主机节点在最近的第一预设时间段的平均cpu使用率和平均内存使用率,统计每个所述宿主机节点的当前可用资源度量的权重值,将当前可用资源度量的权重值最大的宿主机节点分配给待调度的虚拟机。

可选地,在本发明一具体实施例中,对于每个宿主机节点,所述调度模块按照以下方式获取该宿主机节点的当前可用资源度量的权重值wi:

wi=wi*(1-ci)*a+(1-mi)*b

其中,wi的初始值为1,ci为该宿主机节点在最近的预设时间段的平均cpu使用率,mi为该宿主机节点在最近的预设时间段的平均内存使用率,a和b为大于0的有理数,且a与b的和为1的10n倍,n为大于或等于0的整数。

可选地,在本发明一具体实施例中,当ci<25%时,a=0.9*10n,b=0.1*10n;当25%≤ci<50%时,a=0.6*10n,b=0.4*10n;当50%≤ci<75%时,a=0.4*10n,b=0.6*10n;当ci≥75%时,a=0.1*10n,b=0.9*10n

可选地,在本发明一具体实施例中,所述确定模块按照以下确定需要为待调度的虚拟机分配宿主机节点:接收到客户端发送的申请新的虚拟机的调度指令,确定需要为新的虚拟机分配宿主机节点;所述调度模块按照以下方式将当前可用资源度量的权重值最大的宿主机节点分配给待调度的虚拟机:在所述当前可用资源度量的权重值最大的宿主机节点上为所述客户端创建新的虚拟机。

可选地,在本发明一具体实施例中,所述确定模块在以下情况下确定需要为待调度的虚拟机分配宿主机节点:检测到所述云平台中的一宿主机节点的负载超过设定的阈值,确定所述负载超过设定的阈值的宿主机节点上当前消耗cpu和内存最多的虚拟机为待调度的虚拟机;所述调度模块通过以下方式将当前可用资源度量的权重值最大的宿主机节点分配给待调度的虚拟机:将所述消耗cpu和内存最多的虚拟机从所述负载超过设定的阈值的宿主机节点上热迁到所述当前可用资源度量的权重值最大的宿主机节点。

可选地,在本发明一具体实施例中,所述确定模块还用于在所述调度模块将当前可用资源度量的权重值最大的宿主机节点分配给待调度的虚拟机之后,继续监控所述负载超过设定的阈值的宿主机节点,判断所述负载超过设定的阈值的宿主机节点在第二预设时间段内的负载是否超过所述阈值;在判断所述负载超过设定的阈值的宿主机节点在第二预设时间段内的负载超过所述阈值的情况下,确定所述负载超过设定的阈值的宿主机节点上当前消耗cpu和内存最多的虚拟机为待调度的虚拟机,触发所述调度模块。

本发明实施例还提供了一种云平台,包括上述装置。

由以上技术方案可见,本发明实施例通过结合宿主机节点的平均内存使用率和平均cpu使用率来构建宿主机节点的可用资源度量模型,并基于该模型执行云平台中的虚拟机调度,由于平均内存使用率和平均cpu使用率可以更准备反应出节点的资源使用情况,因此,采用本发明实施例提供的虚拟机调度方法能够有效地对整个云平台的资源进行更为合理的利用,提高云平台系统资源利用的高效性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。

图1为本发明实施例一提供的一种基于云平台的虚拟机调度方法的流程图;

图2为本发明实施例二提供的一种将新申请的虚拟机部署到合适的宿主机节点的方法流程图;

图3为本发明实施例二提供的openstack云平台中某个宿主机负载过高,启动负载均衡热迁移机制的方法流程图;

图4为本发明实施例三提供的一种基于云平台的虚拟机调度装置的结构示意图。

具体实施方式

当然,实施本发明实施例的任一技术方案必不一定需要同时达到以上的所有优点。

为了使本领域的人员更好地理解本发明实施例中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明实施例一部分实施例,而不是全部的实施例。基于本发明实施例中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本发明实施例保护的范围。

下面结合本发明实施例附图进一步说明本发明实施例具体实现。

实施例一

本发明实施例提供了一种基于云平台的虚拟机调度方法。

图1为本发明实施例提供的基于云平台的虚拟机调度方法的流程图,如图1所示,该方法主要包括以下步骤s102-步骤s108。

步骤s102,确定需要为待调度的虚拟机分配宿主机节点。

在具体应用中,云平台可以是在接收到用户在客户端发送的申请新的虚拟机时,确定需要为新的虚拟机分配宿主机节点。

或者,为了均衡云平台中宿主机节点的负载,云平台也可以监控云平台内的所有宿主机节点的负载,在监测到其中某个宿主机节点的负载过大,即某个宿主机节点的负载超过设备的阈值时,为了避免该宿主机节点的负载过大,而导致用户体验降低,在本发明实施例的一个可选实施方式中,可以考虑将该宿主机节点上的某个虚拟机热迁到别的宿主机节点,即将该宿主机节点上的某个虚拟机作为待调度的虚拟机。可选地,为了尽可能的减少该负载过重的宿主机节点的负载,可以将该负载过重的宿主机节点上当前消耗cpu和内存最多的虚拟机热迁出,即将该负载过重的宿主机节点上当前消耗cpu和内存最多的虚拟机作为待调度的虚拟机。

步骤s104,获取云平台的多个宿主机节点在最近的第一预设时间段的平均cpu使用率和平均内存使用率。

在具体应用中,云平台中记录有云平台上每个宿主机节点在最近的第一预设时间段的平均cpu使用率和平均内存使用率,从而可以获取到云平台的多个宿主机节点在最近的第一预设时间段的平均cpu使用率和平均内存使用率。

在具体实施过程中,如果是接收到客户端发送的申请新的虚拟机的情况下,则步骤s104中可以获取云平台中的所有宿主机节点在最近的第一预设时间段的平均cpu使用率和平均内存使用率,即在这种情况下,新的虚拟机可能在分配在云平台的任意一个宿主机节点。

如果是监测到其中某个宿主机节点的负载过大的情况下,则步骤s104中可以只获取云平台中除了该负载过大的宿主机节点之外的其它宿主机节点在最近的第一预设时间段的平均cpu使用率和平均内存使用率,即在这种情况下,待调度的虚拟机(即待热迁的虚拟机)将可能在分配在云平台中除该负载过大的其它宿主机节点上。

在openstack云平台中,监控模块中记录有每个宿主机节点在最近的第一预设时间段内的平均cpu使用率和平均内存使用率。

在具体应用中,第一预设时间段的时长可以根据具体应用进行设置,例如,1小时,当然,也可以设置为其它值,具体本发明实施例不作具体的限定。

步骤s106,至少根据每个所述宿主机节点在最近的第一预设时间段的平均cpu使用率和平均内存使用率,统计每个所述宿主机节点的当前可用资源度量的权重值。

在本发明实施例中,根据每个宿主机节点在最近的第一预设时间段内的平均cpu使用率和平均内存使用率,使用宿主机节点的可用资源度量模型计算各个宿主机节点的当前可用资源度量的权重值wi。

在本发明实施例的一个可选实施方案中,对于每个宿主机节点,可以按照以下方式计算该宿主机节点的当前可用资源度量的权重值wi:

wi=wi*(1-ci)*a+(1-mi)*b

其中,wi的初始值为1,ci为该宿主机节点在最近的第一预设时间段的平均cpu使用率,mi为该宿主机节点在最近的预设时间段的平均内存使用率,a和b为大于0的有理数,且a与b的和为1的10n倍,n为大于或等于0的整数。即在该可选实施例方式中,根据上一次计算得到的该宿主机节点的可用资源度量的权重值,该宿主机节点在最近的预设时间段的平均cpu使用率ci和该宿主机节点在最近的预设时间段的平均内存使用率mi来计算该宿主机节点的当前可用资源度量的权重值。

在上述可选实施方式中,根据上一个第一预设时间的可用资源度量的权重值wi,以及该宿主机节点在最近的第一预设时间段的平均cpu使用率ci和该宿主机节点在最近的预设时间段的平均内存使用率mi,计算该宿主机节点当前的可用资源度量的权重值wi。

在上述可选实施方式中,a与b的取值可以根据实际应用的云平台的具体情况确定,例如,在本发明实施例的一个可选实施方案中,可以按照以下方式确定a与b的取值:

当ci<25%时,a=0.9*10n,b=0.1*10n

当25%≤ci<50%时,a=0.6*10n,b=0.4*10n

当50%≤ci<75%时,a=0.4*10n,b=0.6*10n

当ci≥75%时,a=0.1*10n,b=0.9*10n

步骤s108,将当前可用资源度量的权重值最大的宿主机节点分配给待调度的虚拟机。

在具体应用中,如果是接收到客户端发送的申请新的虚拟机的情况下,则在执行步骤s108时,在所述当前可用资源度量的权重值最大的宿主机节点上为所述客户端创建新的虚拟机。如果是监测到其中某个宿主机节点的负载过大的情况下,则在执行步骤s108时,将所述消耗cpu和内存最多的虚拟机从所述负载超过设定的阈值的宿主机节点上热迁到所述当前可用资源度量的权重值最大的宿主机节点。

在本发明实施例的一个可选实施方案中,如果是监测到其中某个宿主机节点的负载过大的情况下,则在步骤s108之后,该方法还可以包括:继续监控所述负载超过设定的阈值的宿主机节点,判断所述负载超过设定的阈值的宿主机节点在第二预设时间段内(例如,5分钟)的负载是否超过所述阈值;在判断所述负载超过设定的阈值的宿主机节点在第二预设时间段内的负载超过所述阈值的情况下,获取所述负载超过设定的阈值的宿主机节点上当前消耗cpu和内存最多的虚拟机,确定所述消耗cpu和内存最多的虚拟机为待调度的虚拟机,返回步骤s102,即继续将该负载超过设定的阈值的宿主机节点上当前消耗cpu和内存最多的虚拟机热迁到其它宿主机节点上;在判断所述负载超过设定的阈值的宿主机节点在第二预设时间段内的负载未超过所述阈值的情况下,结束流程。

虚拟机的创建与启动调度策略在云计算中起着非常重要的作用,调度算法的好坏直接影响了虚拟机的性能和系统资源利用的高效性。在现有技术中,openstack调度算法只根据宿主机剩余内存大小进行计算,无法合理地根据系统资源消耗情况进行调度。因此,在本发明实施例中提供的一种基于云平台的虚拟机调度方法中,通过结合宿主机节点的平均内存使用率和平均cpu使用率来构建宿主机节点的可用资源度量模型,并基于该模型执行云平台中的虚拟机调度,由于平均内存使用率和平均cpu使用率可以更准备反应出节点的资源使用情况,因此,采用本发明实施例提供的虚拟机调度方法能够有效地对整个云平台的资源进行更为合理的利用,提高云平台系统资源利用的高效性。

实施例二

本实施例以openstack云平台为例,对本发明实施例提供的基于云平台的虚拟机调度方法进行描述。

本发明实施例中,宿主机节点的可用资源度量模型需要统计每台宿主机的cpu使用率,增加一段时间内cpu的平均空闲率在计算宿主机权重比率,达到平均分配cpu资源和内存资源的效果。在openstack云平台的监控模块中记录着每个宿主机节点的cpu使用率和内存使用率,因此,在本实施例中,可以获取每个节点在最近一个小时的平均cpu使用率和平均内存使用率,以ci和mi来表示其中一个宿主机节点i在最近一个小时的cpu使用率和内存使用率,wi作为该宿主机节点的可用资源度量的权重值,wi的值根据ci和mi来进行计算,wi的初始值设为1,调度器在需要选择宿主机时对wi的值进行计算,具体如下:

1)当ci小于25%时,wi计算公式如公式1所示。

wi=wi*((1-ci)*100*0.9+(1-mi)*100*0.1)(1)

2)当ci大于等于25%且小于50%时,wi计算公式如公式2所示。

wi=wi*((1-ci)*100*0.6+(1-mi)*100*0.4)(2)

3)当ci大于等于50%且小于75%时,wi计算公式如公式3所示。

wi=wi*((1-ci)*100*0.4+(1-mi)*100*0.6)(3)

4)当ci大于等于75%,wi计算公式如公式4所示。

wi=wi*((1-ci)*100*0.1+(1-mi)*100*0.9)(4)

wi的值越大,表示该宿主机的资源剩余越多,则越适合用于作为新的虚拟机的宿主机,或者适合将其他节点上的虚拟机迁移到该节点。

在具体应用中,上述计算wi的算法只是一种优选的算法,但并不是唯一的一种算法,在实际应用中,也可以直接根据ci和mi计算,而不结合上一次计算得到的wi来计算,或者,也可以在结合其它参数,例如,带宽等进行计算,具体本发明实施例不作限定。

下面分别以将新申请的虚拟机部署到合适的宿主机节点,以及在openstack云平台平衡宿主机资源时调度迁移虚拟机,这两个场景为例,对本实施例提供的虚拟机调度方法进行说明。

图2为将新申请的虚拟机部署到合适的宿主机节点的方法流程图,如图2所示,在本实施例中,将新申请的虚拟机部署到合适的宿主机节点主要可以包括以下步骤:

步骤s201,用户在openstack云平台申请新的虚拟机;在具体应用中,用户可以通过openstack云平台客户端向openstack云平台申请新的虚拟机。

步骤s202,openstack云平台的调度模块从openstack云平台的监控模块中获取每个宿主机节点在最近一个小时的平均cpu使用率和平均内存使用率。

步骤s203,openstack云平台的调度模块使用宿主机可用资源度量模型计算各个宿主机节点的权重值wi。

步骤s204,openstack云平台的调度模块选择wi值最大的宿主机节点,在该宿主机节点上生成新的虚拟机。

上述流程中,将宿主机可用资源度量模型应用于openstack云平台申请虚拟机的流程中,通过该模型可以让云平台在调度申请虚拟机时,对资源进行更为合理的调度,对整个云平台的资源进行更为合理的分配。

图3为openstack云平台中某个宿主机负载过高,启动负载均衡热迁移机制的方法流程图,如图3所示,在本实施例中,openstack云平台中某个宿主机负载过高,启动负载均衡热迁移机制主要可以包括以下步骤:

步骤s301,openstack云平台的监控模块监测到某个宿主机节点a负载过高,即监测到宿主机节点a的负载超过预设的阈值。

步骤s302,openstack云平台启动虚拟机热迁移,将虚拟机从该宿主机迁移到其他负载较低的宿主机。

步骤s303,openstack云平台的监控模块找到宿主机节点a上消耗cpu和内存最多的虚拟机m。

步骤s304,openstack云平台的调度模块使用宿主机可用资源度量模型计算除宿主机节点a之外的各个宿主机节点的权重值wi。

步骤s305,openstack云平台的调度模块选择wi值最大的宿主机节点b。

步骤s306,openstack云平台将原来宿主机节点a上消耗资源最多的虚拟机m热迁移到宿主机节点b上。

步骤s307,监控模块继续监测宿主机a,判断在5分钟内宿主机节点a的负载是否超过阈值,如果是,则返回步骤s303,继续迁移其他虚拟机,否则停止热迁移。

在上述流程中,将宿主机可用资源度量模型应用于openstack云平台负载均衡机制中,通过该模型可以让云平台将消耗资源较高的虚拟机迁移到合适的宿主机节点中,让各个宿主机节点的资源消耗更为均衡,有效地提高了集群的可靠性和资源利用的高效性。

在本发明实施例提供的虚拟机调度方法中,首先构建了一个宿主机可用资源度量模型,该模型不同于openstack云平台原有的评估算法,通过引入宿主机节点近一个小时的平均cpu使用率和平均内存使用率作为基础参数,并根据cpu使用率在不同的阈值范围,对可用资源度量的权重值使用不同的公式进行计算,以得到一个可以合理评估宿主机可用资源的度量模型。

实施例三

本发明实施例提供了一种基于云平台的虚拟机调度装置,该装置可以用于实施实施例一和实施二所述的基于云平台的虚拟机调度方法。

图4为本实施例提供的一种基于云平台的虚拟机调度的结构示意图,如图4所示,该装置主要包括:确定模块400和调度模块402。下面主要对本实施例提供的一种基于云平台的虚拟机调度装置的各个模块的功能进行描述,其它未尽事宜可以参考上述实施例一和二中相应的描述。

在本实施例中,确定模块400,用于在确定是否需要为待调度的虚拟机分配宿主机节点,在确定是的情况下,触发调度模块402;调度模块402,用于获取云平台的多个宿主机节点在最近的预设时间段的平均cpu使用率和平均内存使用率,至少根据每个所述宿主机节点在最近的第一预设时间段的平均cpu使用率和平均内存使用率,统计每个所述宿主机节点的当前可用资源度量的权重值,将当前可用资源度量的权重值最大的宿主机节点分配给待调度的虚拟机。

在本发明实施例的一个可选实施方案中,对于每个宿主机节点,所述调度模块402按照以下方式获取该宿主机节点的当前可用资源度量的权重值wi:

wi=wi*(1-ci)*a+(1-mi)*b

其中,wi的初始值为1,ci为该宿主机节点在最近的预设时间段的平均cpu使用率,mi为该宿主机节点在最近的预设时间段的平均内存使用率,a和b为大于0的有理数,且a与b的和为1的10n倍,n为大于或等于0的整数。即在该可选实施例方式中,根据上一次计算得到的该宿主机节点的可用资源度量的权重值,该宿主机节点在最近的预设时间段的平均cpu使用率ci和该宿主机节点在最近的预设时间段的平均内存使用率mi来计算该宿主机节点的当前可用资源度量的权重值。

在上述可选实施方式中,进一步地,

当ci<25%时,a=0.9*10n,b=0.1*10n

当25%≤ci<50%时,a=0.6*10n,b=0.4*10n

当50%≤ci<75%时,a=0.4*10n,b=0.6*10n

当ci≥75%时,a=0.1*10n,b=0.9*10n

在本发明实施例的一个可选实施方案中,所述确定模块400按照以下确定需要为待调度的虚拟机分配宿主机节点:接收到客户端发送的申请新的虚拟机的调度指令,确定需要为新的虚拟机分配宿主机节点;所述调度模块402按照以下方式将当前可用资源度量的权重值最大的宿主机节点分配给待调度的虚拟机:在所述当前可用资源度量的权重值最大的宿主机节点上为所述客户端创建新的虚拟机。

在本发明实施例的一个可选实施方案中,所述确定模块400在以下情况下确定需要为待调度的虚拟机分配宿主机节点:检测到所述云平台中的一宿主机节点的负载超过设定的阈值,确定所述负载超过设定的阈值的宿主机节点上当前消耗cpu和内存最多的虚拟机为待调度的虚拟机;所述调度模块402通过以下方式将当前可用资源度量的权重值最大的宿主机节点分配给待调度的虚拟机:将所述消耗cpu和内存最多的虚拟机从所述负载超过设定的阈值的宿主机节点上热迁到所述当前可用资源度量的权重值最大的宿主机节点。

在上述可选实施方式中,所述确定模块400还用于在所述调度模块402将当前可用资源度量的权重值最大的宿主机节点分配给待调度的虚拟机之后,继续监控所述负载超过设定的阈值的宿主机节点,判断所述负载超过设定的阈值的宿主机节点在第二预设时间段内的负载是否超过所述阈值;在判断所述负载超过设定的阈值的宿主机节点在第二预设时间段内的负载超过所述阈值的情况下,确定所述负载超过设定的阈值的宿主机节点上当前消耗cpu和内存最多的虚拟机为待调度的虚拟机,触发所述调度模块402。

本实施例提供的基于云平台的虚拟机调度装置,通过结合宿主机节点的平均内存使用率和平均cpu使用率来构建宿主机节点的可用资源度量模型,并基于该模型执行云平台中的虚拟机调度,由于平均内存使用率和平均cpu使用率可以更准备反应出节点的资源使用情况,因此,采用本发明实施例提供的虚拟机调度方法能够有效地对整个云平台的资源进行更为合理的利用,提高云平台系统资源利用的高效性。

实施例四

本发明实施例还提供了一种云平台,该云平台,包括上述的基于云平台的虚拟机调度装置,在本实施例中,基于云平台的虚拟机调度装置中的确定模块400可以包括云平台中的监控模块,具体功能可以参照上述的基于云平台的虚拟机调度装置的描述,在此不在赘述。

采用本实施例的云平台,通过结合宿主机节点的平均内存使用率和平均cpu使用率来构建宿主机节点的可用资源度量模型,并基于该模型执行云平台中的虚拟机调度,由于平均内存使用率和平均cpu使用率可以更准备反应出节点的资源使用情况,因此,采用本发明实施例提供的虚拟机调度方法能够有效地对整个云平台的资源进行更为合理的利用,提高云平台系统资源利用的高效性。

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