一种虚拟机迁移方法、云计算管理平台和存储介质与流程

文档序号:21407557发布日期:2020-07-07 14:41阅读:178来源:国知局
一种虚拟机迁移方法、云计算管理平台和存储介质与流程

本发明实施例涉及云计算数据中心的虚拟机资源调度领域,尤其涉及一种虚拟机迁移方法、云计算管理平台和存储介质。



背景技术:

云计算管理平台是一个复杂的大型系统,虚拟机是云计算管理平台的重要部分,它具有跨系统、资源隔离、可迁移等特点,高效的虚拟机集群部署与动态迁移操作可以将分散的虚拟机组成整体、满足大规模应用需求,可提高云计算管理平台的运行维护与服务质量,是云计算管理平台的重要组成部分。

但由于云计算管理平台具有资源规模巨大、结构复杂、地域分布广的特点,而其应用则具有请求灵活多变、资源类型变化各异、负载动态变化等特点,这对虚拟机集群部署与动态迁移策略提出了巨大挑战。动态迁移的出现是因为负载均衡的需要,在云计算环境下,可能会出现一些计算机的负载过重,一直处于超负荷状态,而另外一些计算则经常处于空闲状态的情况,这就大大降低了系统的整体资源利用率。负载均衡就是把任务在多个物理资源间进行调节,以获得最优的资源整体利用。

相关技术中的迁移触发策略是基于一个固定的阀值,当某个节点的某一类型的性能负载大于这个固定的阀值时,系统就会触发一次迁移;然而,由于存在各种类型的突发性负载,因此,一旦任一瞬间的突发性负载达到固定阈值便会触发虚拟机迁移,如此导致频繁的虚拟机迁移,造成不必要的迁移开销,同时导致系统可靠性无法得到保障。



技术实现要素:

有鉴于此,本发明实施例期望提供一种虚拟机迁移方法、云计算管理平台和存储介质,解决了相关技术中瞬间的突发性负载达到固定阈值便会触发虚拟机迁移,如此导致频繁的虚拟机迁移,造成不必要的迁移开销的问题,避免了突发性负载对系统的干扰,提高了系统的可靠性。

为达到上述目的,本发明的技术方案是这样实现的:

一种虚拟机迁移方法,应用于云计算管理平台,所述方法包括:

若当前第一时刻第一物理机的第一负载大于第一阈值,预测第二时刻所述第一物理机的第二负载;其中,所述第二时刻在所述第一时刻之后;

若所述第二负载大于第二阈值,从所述第一物理机上的虚拟机中选择待迁移虚拟机;其中,所述第二阈值大于所述第一阈值;

确定第二物理机,并将所述待迁移虚拟机迁移至所述第二物理机;其中,所述第二物理机与所述第一物理机不同。

可选的,所述若当前的第一时刻第一物理机的第一负载大于第一阈值,预测第二时刻所述第一物理机的第二负载,包括:

若所述第一负载大于所述第一阈值,获取预设时间段内至少两个时刻的第三负载;其中,所述预设时间段包括所述第一时刻以及所述第一时刻之前的至少一个第三时刻,所述至少两个时刻中每一时刻的第三负载包括至少两个不同属性的负载;不同属性的负载表征第一物理机中被占用的资源的类型不同;

根据所述每一时刻的第三负载和所述每一时刻的第三负载的权重值计算所述每一时刻的第四负载;

根据所述每一时刻的第四负载计算所述第二负载。

可选的,所述根据所述每一时刻的第四负载计算所述第二负载,包括:

计算多个时刻的第四负载的平均值,得到所述第二负载。

可选的,所述若所述第一负载大于所述第一阈值,获取所述第一时刻之前的多个时刻中的每一时刻的多个不同种类的负载数据之前,所述方法还包括:

接收用户请求,并获取所述用户请求的请求类型;其中,所述请求类型包括静态请求或动态请求;

相应的,所述根据所述每一时刻的第三负载和所述每一时刻的第三负载的权重值计算所述每一时刻的第四负载之前,所述方法还包括:

获取所述每一时刻的第三负载中每一负载的属性;

根据所述请求类型和所述每一时刻的第三负载中每一负载的属性,确定所述每一时刻的第三负载中每一负载的权重值。

可选的,所述每一时刻的第三负载还包括距离,其中,所述距离表征所述第一物理机与接收到用户请求的数据中心之间的距离,所述云计算管理平台还包括所述数据中心,所述数据中心用于管理第三物理机,所述第三物理机包括所述第一物理机。

可选的,所述根据所述每一时刻的第三负载和所述每一时刻的第三负载的权重值计算所述每一时刻的第四负载之前,所述方法还包括:

获取所述每一时刻的第三负载中每一负载的属性;

根据所述每一时刻的第三负载中每一负载的属性,确定所述每一时刻的第三负载中每一负载的权重值。

可选的,所述第一物理机上的虚拟机的数量为多个,所述若所述第二负载大于第二阈值,从所述第一物理机上的虚拟机中选择待迁移虚拟机,包括:

若所述第二负载大于所述第二阈值,获取所述第一物理机的资源利用率;

根据所述资源利用率从所述第一物理机上的多个虚拟机中选择待迁移虚拟机。

可选的,所述根据所述资源利用率从所述第一物理机上的多个虚拟机中选择待迁移虚拟机,包括:

若所述资源利用率大于或等于第三阈值,预测第三时刻所述第一物理机上的每一虚拟机的第五负载;其中,所述第三时刻在所述第一时刻之后;

从所述第一物理机上的虚拟机中选取第五负载中最大负载对应的虚拟机,并确定为所述待迁移虚拟机。

可选的,所述根据所述资源利用率从所述第一物理机上的多个虚拟机中选择待迁移虚拟机,包括:

若所述资源利用率小于或等于第四阈值,确定所述第一物理机上的每一虚拟机为所述待迁移虚拟机;其中,所述第四阈值小于第三阈值。

可选的,所述确定第二物理机,包括:

获取所述第一时刻所述云计算管理平台中的每个物理机的第六负载;

从所述云计算管理平台中的物理机中选取第六负载小于第五阈值的物理机,并确定为第三物理机;其中,所述第三物理机与所述第一物理机不同,所述第三物理机的数量为多个;

预测第四时刻每个所述第三物理机上的虚拟机的第七负载;其中,所述第四时刻在所述第一时刻之后;

计算每个所述第三物理机的第七负载与所述待迁移虚拟机的负载的和,得到多个目标负载;

确定所述多个目标负载中小于第六阈值的目标负载;

从所述第三物理机中选取所述小于第六阈值的目标负载对应的第三物理机,并确定为第四物理机;其中,所述第四物理机的数量为至少一个;

从至少一个所述第四物理机中确定所述第二物理机。

可选的,所述从至少一个所述第四物理机中确定所述第二物理机,包括:

计算每个所述第四物理机的第七负载减去每个所述第四物理机的第六负载的值,得到每个所述第四物理机的资源需求伸缩量;

计算每个所述第四物理机的资源总量减去每个所述第四物理机的第六负载的值,得到每个所述第四物理机的未分配资源量;

计算每个所述第四物理机的未分配资源量减去每个所述第四物理机的资源需求伸缩量的值,得到每个所述第四物理机的预测剩余资源量;

根据每个所述第四物理机的预测剩余资源量,从所述第四物理机中确定所述第二物理机。

可选的,所述根据所述第四物理机的预测剩余资源量从所述第四物理机中确定所述第二物理机,包括:

确定所述第四物理机的预测剩余资源量中的最大值对应的第四物理机为所述第二物理机。

可选的,在所述云计算管理平台的物理机上建立有虚拟机集群,所述待迁移虚拟机的数量为至少两个,所述待迁移虚拟机的数量和所述第二物理机的数量相同;所述将所述待迁移虚拟机迁移至所述第二物理机之前,所述方法还包括:

获取每个所述待迁移虚拟机的负载;

从多个第二物理机中确定每个所述待迁移虚拟机对应的目标物理机;其中,所述多个第二物理机包括所述目标物理机;

获取多个所述目标物理机的负载;

根据每个所述待迁移虚拟机的负载和每个所述目标物理机的负载,对多个目标物理机进行排序,得到优先级队列。

可选的,所述根据每个所述待迁移虚拟机的负载和每个所述目标物理机的负载,对多个第二物理机进行排序,得到优先级队列,包括:

计算每个所述待迁移虚拟机的负载以及与每个所述待迁移虚拟机对应的目标物理机的负载的和,得到传输负载;

根据所述传输负载对多个目标物理机进行排序,得到优先级队列。

可选的,所述将所述待迁移虚拟机迁移至所述第二物理机,包括:

根据所述优先级队列确定每一所述目标物理机的优先级;

按照优先级由高到低的顺序,对每个所述目标物理机对应的待迁移虚拟机进行镜像传输;其中,所述优先级高的目标物理机对应的传输负载小于所述优先级低的目标物理机对应的传输负载。

一种云计算管理平台,所述云计算管理平台包括:

存储器,用于存储可执行指令;

处理器,用于执行所述存储器中存储的可执行指令,实现如上述的虚拟机迁移方法中的步骤。

一种存储介质,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如上述的虚拟机迁移方法的步骤。

本发明实施例所提供的虚拟机迁移方法、云计算管理平台和存储介质,若当前第一时刻第一物理机的第一负载大于第一阈值,预测第二时刻第一物理机的第二负载;其中,第二时刻在第一时刻之后;若第二负载大于第二阈值,从第一物理机上的虚拟机中选择待迁移虚拟机;其中,第二阈值大于第一阈值;确定第二物理机,并将待迁移虚拟机迁移至第二物理机;其中,第二物理机与第一物理机不同;也就是说,本发明实施例中,在确定第一时刻第一物理机的突发性负载大于第一阈值时,对该第一物理机未来时刻的负载进行预测,并在确定未来时刻的负载比大于第一阈值的第二阈值还要高时,则触发一次迁移,如此,有效地避免了突发性负载对系统的干扰,解决了相关技术中瞬间的突发性负载达到固定阈值便会触发虚拟机迁移,如此导致频繁的虚拟机迁移,造成不必要的迁移开销的问题,避免了突发性负载对系统的干扰,提高了系统的可靠性。

附图说明

图1为本发明实施例提供的一种云计算平台管理系统的功能架构示意图;

图2为本发明实施例提供的一种云计算平台管理系统的实现架构示意图;

图3为本发明实施例提供的一种代理实现架构示意图;

图4为本发明实施例提供的一种虚拟机迁移模型示意图;

图5为本发明实施例提供的一种虚拟机迁移方法的流程示意图;

图6为本发明实施例提供的另一种虚拟机迁移方法的流程示意图;

图7为本发明实施例提供的又一种虚拟机迁移方法的流程示意图;

图8为本发明实施例提供的一种基于资源分类的虚拟机集群部署架构示意图;

图9为本发明另一实施例提供的一种虚拟机迁移方法的流程示意图;

图10为本发明另一实施例提供的另一种虚拟机迁移方法的流程示意图;

图11为本发明实施例提供的一种云计算平台管理系统的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。

应理解,说明书通篇中提到的“本发明实施例”或“前述实施例”意味着与实施例有关的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,在整个说明书各处出现的“本发明实施例中”或“在前述实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中应。在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

对本发明实施例进行进一步详细说明之前,对相关技术中虚拟机迁移技术进行说明。

云计算管理平台是一个复杂的大型系统,虚拟机是云计算管理平台的重要部分,它具有跨系统、资源隔离、可迁移等特点,高效的虚拟机集群部署与动态迁移操作可以将分散的虚拟机组成整体、满足大规模应用需求,可提高云计算管理平台的运行维护与服务质量,是云计算管理平台的重要组成部分。

但由于云计算管理平台具有资源规模巨大、结构复杂、地域分布广的特点,而其应用则具有请求灵活多变、资源类型变化各异、负载动态变化等特点,对虚拟机集群部署与动态迁移策略提出了巨大挑战。动态迁移的出现是因为负载的均衡的需要,在云计算环境下,可能会出现一些计算机的负载过重,一直处于超负荷状态,而另外一些计算则经常处于空闲状态的情况,这就大大降低了系统的整体资源利用率。负载均衡就是把任务在多个物理资源间进行调节,以获得最优的资源整体利用。

根据云计算管理平台资源的特点,通过分析可以知道动态迁移的主要难点在于以下几下三个方面:突发性负载的应对、系统虚拟机数目巨大、系统可靠性的保障等。

本发明实施例中,对上述三个方面进行简单介绍:

第一方面、突发性负载的应对

随着云计算管理平台的广泛使用,某一时刻用户规模可能变得非常大,这便是突发性负载之一。以2017年11月11日当天,某一网站的访问量为例,短时间内用户针对该网站的访问量可达到千万级,远远高于平均值。这种突发性负载行为对系统性能分析及虚拟机的动态迁移带来重大挑战。

第二方面、系统虚拟机数目巨大

云计算管理平台有成千上个服务器,而每个物理机可能有数十个虚拟机,这些虚拟机的资源类型变化各异,且时时刻刻都在产生着性能数据。面对如此大规模的服务器和数据,要想直接使用传统方法对云计算管理平台进行性能分析是很难的。

第三方面、系统可靠性的保障

系统的可靠性保证一方面要求动态迁移不能使得系统开销太大干扰了系统的正常运行,另一方面,动态迁移不能对部署在虚拟机中的应用程序造成干扰。这就要求动态迁移要选择出真正需要迁移的虚拟机,以及未来一段时间负载都不会过度增加的物理节点,才能确保虚拟机迁移不会干扰己经存在的虚拟机及应用。

需要说明的是,除了以上三个方面,还要注意虚拟机迁移后震荡的预防。由于多个节点基于当前的负载信息可能会选择同一个物理节点机作为目标节点,导致被选中的目标节点负载急剧增加,超过了管理员设置的阀值后会引发二次甚至三次迁移,即产生迁移震荡。

相关技术中,有些系统采用操作系统虚拟化技术,例如采用不宕机迁移技术,在用户无察觉的情况下将虚拟机迁移到另一台负载较轻的服务器中,它为系统的定期管理维护及出错恢复提供了全新的体验。虽然该系统迁移时消耗的性能较少,但是该系统无法有效应用突发性负载。

相关技术中,有些系统在迁移时不需要修改操作系统和内核系统,使服务能够不问断的运行;但是在迁移过程中迁移实体为操作系统镜像及应用,迁移效率低,且没有解决迁移震荡的问题。

相关技术中,还有基于英特尔处理器的当前服务器与未来技术之间的无缝迁移技术,该技术具有良好的向后兼容性,但是迁移系统没有充分考虑迁移前后的性能关系,可能迁移震荡,增加系统开销。

由上述相关技术中采用的虚拟机迁移技术可知,目前存在的虚拟机动态迁移仍然存在缺陷,具体如:

(1)绝大部分负载均衡方法的迁移策略仅基于某一固定阈值,即节点机的负载超过了负载阈值的上界,则该节点机触发一个迁移,这样,瞬间的突发负载峰值就会触发虚拟机迁移,容易造成不必要的迁移开销。

(2)当前的负载预测方法要么针对虚拟机负载进行预测,要么针对应用负载进行预测,还有部分针对物理主机负载预测的方法,负载的指标范围狭窄,在预测手段上有使用奇异值算法、增量加权等,但预测目的是筛选出符合条件物理机,将其上所有虚拟机迁移,迁移过程中可能会选择同一个物理节点机作为目标节点,导致被选中的目标节点负载急剧增加,造成迁移震荡。

(3)当前虚拟机迁移涉及集群部署的方法要么按照中央处理器(centralprocessingunit,cpu)占用率或内存占用率分别对虚拟机和物理机进行排序,然后一一匹配,要么使用虚拟机的cpu占用率和内存占用率的比值,将该比值进行排序,排序结果在和物理机的排序结果匹配,参照的指标狭窄且对于虚拟机迁移效率的提升不显著。

(4)当前虚拟机迁移涉及的镜像传递方法都是基于虚拟机镜像的缓存的顺序拷贝到目标物理主机,在待迁移的虚拟机集群规模比较大时,存在效率低的缺陷。

(5)当前虚拟机迁移对于距离因素的考虑,仅仅只考虑单数据中心的场景,迁移到距离最近的物理主机,而没有考虑多数据中心的场景,即没有防止虚拟机跨数据中心迁移的手段。

根据前述实施例,本发明实施例提供一种虚拟机迁移方法,应用于云计算管理平台,云计算管理平台又可称为云计算管理平台系统,下文也可以简称系统;该系统采用多级分布式架构,整个系统有多个数据中心,每个数据中心有多台物理机及一个数据中心服务器,数据中心通过网络连接到系统服务器。

客户端访问到的是系统服务器,由一个系统服务器管理所有的数据中心,每个数据中心配备一个数据中心服务器,由数据中心服务器,管理本数据中心的所有物理机,在每个物理机上装有代理,负责处理数据中心服务器发来的命令及回应操作结果。这种分布式多层管理结构可方便的实现系统的扩展,且有利于减轻服务器的压力。

下面说明实现本发明实施例的云计算管理平台系统的示例性的功能架构,参见图1,云计算管理平台系统10包括镜像文件管理模块110、集群管理模块120、性能监控模块130以及资源管理模块140,下面分别进行说明。

镜像文件管理模块(imagemanager)110,可以上传和下载镜像,以及对镜像的资源类型进行分类,及副本管理,镜像的资源类型初始由用户指定,后期可由系统修正。

虚拟机集群管理模块(clustermanager)120,可以实现集群的编辑,集群的部署以及集群的删除。

性能监控模块(performancemonitor)130,可以实现物理机性能监控,虚拟机性能监控以及系统负载性能的预测。

资源管理模块(resourcemanager)140,可以实现物理资源添加、物理资源删除、物理资源编辑以及镜像库管理。

云计算管理平台系统实现架构参见图2所示,包括表现层210、逻辑层220以及数据持久层230,下面分别进行说明。

表现层210,是用户与系统交互的显示界面,通过表格、图形、文字等内容来展示系统性能、操作结果、集群运行情况。

逻辑层220,是集群管理策略的核心层,负责响应表现层发来的操作命令,并且提供访问接口以展示系统运行状况,它提供5个子模块,分别是资源管理(resourcemanager)模块、性能管理(performancemanager)模块、虚拟化引擎(virtualizationengine)模块、代理管理(agentmanager)模块、前端交互接口apiinterface模块。

agentmanager模块主要部署在系统的每个物理机、虚拟机上,在物理机上的代理(agent)主要用来响应数据中心服务器发来的操作命令,诸如虚拟机创建、启动、停止、销毁、迁移等,它要搜集性能数据以及向系统提交。在虚拟机中的agent主要用来向系统发送虚拟机的当前性能状况,所搜集的性能数据主要包括一段时间内的cpu利用率、网络带宽利用率、内存利用率及文件系统状况,另外传递镜像、集群部署文件、集群的启动等操作,都需要装在每个物理机上agent参与,agent还要负责将机器的性能状态信息发送给服务器,agent的实现架构如附图3所示,包括镜像文件处理模块310、虚拟化事件处理模块320以及性能监控模块330,下面分别进行说明。

镜像文件处理模块310,可以实现镜像文件image接收和镜像文件的传输。

虚拟化事件处理模块320,可以实现虚拟机启动、虚拟机创建、虚拟机停止以及虚拟机部署。

性能监控模块330,可以实现对数据库程序、文件传输程序以及可扩展标记语言xml程序进行性能监控。

performancemanager模块负责对agentmanager搜集来的数据进行分析,确定整个及每个物理的当前运行状况。performancemanager模块可以预测下一时间系统可能出现的性能情况,当负载过重时,可以向系统发出负载过重警告,提醒管理人员增加物理资源或者通过负载均衡手段调节负载。这个模块为虚拟机的部署、迁移,用户查看当前系统运行状况提供了决策支持。

virtualizationengine模块为系统的核心模块,可以接受用户的请求实现一系列的虚拟化操作,包括虚拟机的创建、虚拟机的启动、虚拟机的停止、虚拟机的销毁等事件,在接收到上层发来的集群部署请求后,对集群部署请求进行xml解析后,如果判定该集群能够部署,就进行集群部署流程,比如传递镜像、配置集群部署文件、启动集群等,同时将操作后的虚拟化事件以命令的形式发送给agentmanager模块具体操作,它还要接受performancemanager模块的信息,当有机器负载过重时将部分虚拟机迁移到负载较轻的机器上。

resourcemanager模块主要负责管理物理资源,以及监控当前的物理资源使用情况,这些物理资源主要包括机器cpu、内存、文件系统、网络。该模块也要管理每个镜像库的资源。

数据持久层230提供多种用来数据持久化的方法,数据库程序(databaseprovider)提供对数据库访问的支持,文件服务程序(file-serverprovider)对大型数据以文件形式进行持久化,如镜像文件,xml程序(xmlprovider)主要用来对xml文件读写的支持。

本发明实施例中,云计算管理平台系统10还包括虚拟机动态迁移控制器(图1中未示出)。

虚拟机动态迁移器由工作负载预测模块及迁移控制模块两个大的模块组成,参见图4所示,而迁移控制模块可以包括迁移触发模块、待迁移虚拟机选择模块、目标物理机选择模块三个部分;其中,迁移触发模块,用于确定迁移时机,即确定什么时候应该迁移一个虚拟机,以确保整个物理机上的性能始终维持较佳状态;待迁移虚拟机选择模块,用于确定哪些虚拟机应该被迁移;目标物理机选择模块,用于确定待迁移的虚拟机应该被迁移到哪个目标物理机上。

基于前述实施例,本发明实施例提供一种虚拟机迁移方法,应用于云计算管理平台;如图5所示,该方法包括以下步骤:

步骤101、若当前第一时刻第一物理机的第一负载大于第一阈值,预测第二时刻第一物理机的第二负载。

其中,第二时刻在第一时刻之后。

本发明实施例中,云计算管理平台确定当前第一时刻第一物理机的第一负载大于第一阈值,并未直接触发第一物理机上的虚拟机的迁移,而是预测第二时刻即未来时刻该第一物理机的第二负载,以使得借助第二负载进一步确定是否触发虚拟机迁移。

本发明实施例中,由于虚拟机中的应用多样化,虚拟机事件、资源的使用、负载的均衡度也存在巨大的差异性,不同的迁移策略会对迁移的代价产生巨大的差别。为了支撑决策系统选择正确的需要迁移的虚拟机及迁移目的地,有必要对工作负载这一关键的指标进行预测。

本发明实施例中,系统可以实时采集物理机的负载数据,也可以周期性地采集物理机的负载数据,为预测物理机的负载数据奠定基础。示例性的,实际应用中,可以以5分钟为一个采样周期,在24小时内共采集288个样本点。

本发明实施例中,实时采集物理机的负载数据之后,保存该负载数据,进而,可以将物理机上各种业务的cpu利用率数据作为物理机的虚拟机所执行云任务的cpu参数的动态需求量。

本发明实施例中,可以根据第一时刻t1的负载数据以及t1之前指定时间段内的多个时刻的负载数据,计算第二时刻t2的负载。

本发明另一实施例中,还可以在确定t1时刻第一物理机发生突发性负载时,利用t1之前指定时间段内的多个时刻的负载数据,计算第二时刻t2的负载。

参见图6所示,系统中的迁移控制器通过迁移触发模块、待迁移虚拟机选择模块以及目标物理机选择模块三个部分之间的协作,在迁移控制器中的控制模块的引导下完成迁移的决策、待迁移虚拟机的选择、将待迁移虚拟机迁移到目标物理机。本发明实施例中,虚拟机动态迁移控制器采用性能预测算法实现迁移时机的确定以及迁移目标物理机的选择。

步骤102、若第二负载大于第二阈值,从第一物理机上的虚拟机中选择待迁移虚拟机。

其中,第二阈值大于第一阈值。

本发明实施例中,云计算管理平台确定第二负载大于第二阈值,即确定未来时刻的负载比大于第一阈值的第二阈值还要高时,才触发一次迁移;而且,一旦确定虚拟机迁移被触发,则要从第一物理机上选择部分或全部虚拟机进行迁移。

由上述可知,本发明实施例中云计算管理平台通过迁移触发模块,系统能够判断一个物理机节点的性能负载状况,确定触发迁移的时间。相关技术中的迁移触发策略是基于一个固定的阀值,当某个物理机节点的某些类型的性能负载超过这个指定的阀值时,系统就会触发一次迁移。然而本发明实施例中考虑到由于存在各种类型的突发性负载,这种指定阀值的做法必然导致频繁的虚拟机迁移;因此,本发明实施例中在确定第一时刻第一物理机的第一负载大于第一阈值时,并未直接进行虚拟机迁移,而是综合考虑了过去一段时间及当前时间的负载,进而对未来负载进行预测,只有在未来负载符合预设条件时,才触发虚拟机迁移,如此,可以有效的防止突发性负载对系统的干扰,减少系统因不必要的迁移而带来的性能损失。

在实际应用中,结合预测结果及当前的负载信息,系统会判断是否触发一次虚拟机迁移。在实际应用中,首先,分析出某物理机器的当前负载是否超过了阀值k1,如果超过,则执行下一步;其次,为了验证当前的负载信息是否属于突发性负载,可以基于物理机器的负载数据进行预测未来时刻的负载;然后,得到未来时刻的负载之后,如果未来时刻的负载比阀值k1更大,则系统会触发一次迁移。反之,系统不会触发迁移,如此,可以有效的避免突发性负载对系统的干扰。

需要说明的是,采用本发明实施例中的虚拟机迁移时机的确定方法,只要一个虚拟机迁移命令被触发,则必须选择这个物理机器上的某些虚拟机进行迁移,这些需要被迁移的虚拟机称之为候选虚拟机即待迁移虚拟机,待迁移虚拟机的选择必需满足一系列的要求,如:迁移是短暂的,不会导致系统出现迁移震荡。

本发明实施例中,系统通过待迁移虚拟机选择模块选择待迁移虚拟机时可以通过如下两个步骤实现:

步骤b1:根据预测的结果,分析出当前有最大利用率的资源类型。

步骤b2:选择出一个对有步骤b1分析出的资源类型有最大利用率的虚拟机,这个虚拟机就是待迁移虚拟机。

本发明的另一实施例中,当物理机发生过载情况时即物理机的cpu利用率超过第一参数,以及当物理机发生低载情况时即物理机的cpu利用率低于第二参数,需要根据当前状态将该主机上的部分或全部虚拟机迁移到其它主机上运行;其中,第一参数大于第二参数,例如第一参数为80%,第二参数为20%。

本发明实施例中,当处于过载状态时,选择待迁移虚拟机的准则可以是将物理机上预测负载最大的虚拟机率先迁移出当前工作主机即当前物理机,并使得当前物理机能够满足剩下的虚拟机的未来资源需求。当处于低载状态时,将所有虚拟机都迁移出当前物理机,进而删除该虚拟机,以节省计算资源。

步骤103、确定第二物理机,并将待迁移的虚拟机迁移至第二物理机。

其中,第二物理机与第一物理机不同,第二物理机属于云计算管理平台。

本发明实施例中,当待迁移虚拟机己经被确定时,接下来就是选择迁移目的主机即目的物理机。迁移目的主机的选择需要考虑能够提供足够的资源给待迁移虚拟机,且确保迁移完成之后,目的主机的负载不至于因此超过预设阀值而导致二次甚至多次迁移。

本发明实施例中,系统通过目标物理机选择模块选择迁移目的主机时可以通过如下三个步骤实现:

步骤c1:选择出具有较小负载信息的目的主机。

步骤c2:在目的主机的数量为多个时,只要具有最小负载信息的目的主机被选择,就要使用工作负载预测方法针对该目的主机未来时刻的负载进行预测。如果该目的主机未来时刻的负载,相比于其他的目的主机而言仍然是最小的,则执行下一步,否则返回步骤c1重新选择目的主机。

步骤c3:如果待迁移虚拟机的负载值加上步骤c2的预测值不会超过预设阀值,则这个目的主机会被选择作为虚拟机的迁移目标,否则返回步骤c1。

本发明实施例所提供的虚拟机迁移方法,若当前第一时刻第一物理机的第一负载大于第一阈值,预测第二时刻第一物理机的第二负载;其中,第二时刻在第一时刻之后;若第二负载大于第二阈值,从第一物理机上的虚拟机中选择待迁移虚拟机;其中,第二阈值大于第一阈值;确定第二物理机,并将待迁移虚拟机迁移至第二物理机;其中,第二物理机与第一物理机不同;也就是说,本发明实施例中,在确定第一时刻第一物理机的突发性负载大于第一阈值时,对该第一物理机未来时刻的负载进行预测,并在确定未来时刻的负载比大于第一阈值的第二阈值还要高时,则触发一次迁移,如此,有效地避免了突发性负载对系统的干扰,解决了相关技术中瞬间的突发性负载达到固定阈值便会触发虚拟机迁移,如此导致频繁的虚拟机迁移,造成不必要的迁移开销的问题,避免了突发性负载对系统的干扰,提高了系统的可靠性。

基于前述实施例,本发明实施例提供一种虚拟机迁移方法,应用于云计算管理平台;在云计算管理平台的物理机上建立有虚拟机集群,待迁移的虚拟机的数量为至少两个。本发明实施例中,可以借助集群部署技术优化虚拟机迁移过程。

本发明实施例中,基于资源分类的虚拟机集群部署方法要完成的主要功能是要能选择出n个物理结点,且这些结点的资源足够部署n个虚拟机的集群,以便使整个物理机系统的资源相对平衡且综合利用。参见图7和图8所示,该方法包括:

步骤201、若当前第一时刻第一物理机的第一负载大于第一阈值,预测第二时刻第一物理机的第二负载。

其中,第二时刻在第一时刻之后。

本发明实施例中,在步骤201、若第一时刻第一物理机的第一负载大于第一阈值,预测第二时刻第一物理机的第二负载之前,还包括如下步骤:

步骤s1:云计算管理平台分析虚拟机集群的资源类型,区分资源类型,集群资源类型的分析有多种方式:可以根据用户的指定;可以根据该集群所用镜像的历史数据的分析。

步骤s2:云计算管理平台过滤集群部署请求,如果分析出部署系统因为cpu、内存、文件容量、网络带宽等方面的限制,致使不能完成此次集群部署时,应当过滤此次部署请求,并向用户反馈。

步骤202、若第二负载大于第二阈值,从第一物理机上的虚拟机中选择待迁移虚拟机。

其中,第二阈值大于第一阈值。

本发明实施例中,在选择待迁移虚拟机的过程中,可以假定虚拟机的数量为n,初始化这次操作每个物理机节点所需部署的虚拟机个数为0,创建一个容量为n的优先级队列,该优先级队列表征虚拟机资源负载优先级队列。

步骤203、确定第二物理机。

本发明实施例中,在确定第二物理机的过程中,可以循环遍历所有的物理机节点,根据如下公式计算该物理机节点是否还可以部署新的虚拟机,当负载信息值l<l1,表明物理结点当前的负载比较低可以用来部署虚拟机;当负载信息值l1<l<l2时,表明物理机节点当前负载处于最佳状态,也可部署虚拟机,但是新增的虚拟不能使物理机节点负载过重;当负载信息值l>l2时,表明物理机节点当前负载过重,应该重新选择物理机节点。

本发明实施例中,负载信息的确定要依据集群的资源类型进行,将集群分为计算密集型集群、存储密集型集群、流量密集型集群。进而,基于集群确定待迁移虚拟机可以提高定位效率。

本发明实施例中,根据集群的资源类型,按不同资源的权重计算出负载值后,插入虚拟机资源负载优先级队列,直到为所有的虚拟机选择了物理结点。

步骤204、获取每个待迁移虚拟机的负载。

步骤205、从多个第二物理机中确定每个待迁移虚拟机对应的目标物理机。

其中,多个第二物理机包括目标物理机。

步骤206、获取多个目标物理机的负载。

步骤207、根据每个待迁移虚拟机的负载和每个目标物理机的负载,对多个目标物理机进行排序,得到优先级队列。

本发明实施例中,步骤207根据每个待迁移虚拟机的负载和每个目标物理机的负载,对多个目标物理机进行排序,得到优先级队列,可以通过如下步骤实现:

步骤207a、计算每个待迁移虚拟机的负载以及与每个待迁移虚拟机对应的目标物理机的负载的和,得到传输负载。

步骤207b、根据传输负载对多个目标物理机进行排序,得到优先级队列。

步骤208、根据优先级队列确定每一目标物理机的优先级。

步骤209、按照优先级由高到低的顺序,对每个目标物理机对应的待迁移虚拟机进行镜像传输。

其中,优先级高的目标物理机对应的传输负载小于优先级低的目标物理机对应的传输负载。

本发明实施例中,将待迁移虚拟机从第一物理机迁移到第二物理机中的目标物理机上,即要对虚拟机进行恢复,该过程要消耗物理机的资源,若目标物理机当前负载较高,则等等再传;也就是说,目标物理机负载低,先把镜像传过去,再基于镜像恢复出虚拟机。最终,启动集群的所有虚拟机,完成集群部署。

基于前述实施例,本发明实施例提供一种虚拟机迁移方法,应用于云计算管理平台,需要说明的是,本实施例的目的是在虚拟机迁移的过程中,采用虚拟机集群镜像快速快递技术,辅助提高虚拟机动态迁移的效率。

由于虚拟机镜像文件包含集群应用、操作系统等部分,其文件大小往往在数千万字节,甚至可以达到数亿字节。因此,从镜像库中传递一个镜像文件到物理机器可能花费很长时间,而一个虚拟机集群可能由数十个虚拟机组成,部署和迁移这样的集群则需要更大的时间代价。镜像快速传递方法以镜像库的镜像及副本为根结点,当第一次拷贝完成之后,整个云平台系统中刚才进行传递的镜像文件共有镜像及副本数的两倍,然后再以镜像库中的镜像及副本、第一次传递的镜像作为第二次镜像传递的父结点,完成第二次镜像传递之后,系统中该镜像文件将有镜像及副本数的四倍。如此循环传递,直到能够满足集群所需的虚拟机数量。示例性的,图8中第一次拷贝之前,系统中仅包括实线框中的镜像文件如image1和image3、image2和image6以及image4和image5;当第一次拷贝完成之后,系统包括虚线框中的镜像文件如image2和image4、image1和image5以及image3和image6,即当第一次拷贝完成之后,整个云平台系统中刚才进行传递的镜像文件共有镜像及副本数的两倍。

本发明实施例中,采用虚拟机集群镜像快速快递技术可以包括如下步骤:

首先:假设镜像库中一个镜像存在m个备份,则镜像传递策略会从选出的物理机挑出m个物理机,接着将镜像文件传送到选出的物理机上,基本是一份镜像备份对一个物理机。

其次:当这次传递完成之后,镜像库中的m个备份被称为根节点,m个已经接收镜像的物理机称为第一代子节点。

再次:如果虚拟机节点的部署请求仍然没有完成,则以m个备份节点即根节点,加上m个第一代子节点,分别向2m个第二代子节点,发送镜像。

最后:循环以上的步骤,直到部署请求完成。

由上述可知,采用虚拟机集群镜像快速快递技术可以为镜像的多路并行传递提供策略支持,极大的提升虚拟机集群镜像文件的传输速度。

需要说明的是,本实施例中与其它实施例中相同步骤和相同内容的说明,可以参照其它实施例中的描述,此处不再赘述。

基于前述实施例,本发明实施例提供一种虚拟机迁移方法,应用于云计算管理平台,该方法包括以下步骤:

步骤301、接收用户请求,并获取用户请求的请求类型。

其中,请求类型包括静态请求或动态请求。

在实际应用中,各类服务器集群系统有各自的负载特点,所应考虑的负载指标也不同,例如:在web服务器集群系统中,对静态内容的请求,服务器只需从磁盘中读取相应的内容发往浏览器即可;而对动态内容进行请求时,往往需要经过读取、编译和处理,生成请求的文件才能发送给客户端。

参见图9所示,本发明实施例中可以将用户请求分为两类,其中,对静态内容的请求,这类请求给服务器带来的主要负载是网络带宽负载。在web应用上,这类请求主要是对静态网页的请求。对动态内容的请求,这类请求给服务器带来的负载主要是对cpu和内存资源的占用。在web应用上,这类请求主要是对动态网页的请求和数据库的访问。

需要说明的是,确定用户请求的请求类型时,可根据用户请求的文件类型来确定。

步骤302、若第一负载大于第一阈值,获取预设时间段内至少两个时刻的第三负载。

其中,预设时间段包括第一时刻以及第一时刻之前的至少一个第三时刻,至少两个时刻中每一时刻的第三负载包括至少两个不同属性的负载;不同属性的负载表征第一物理机中被占用的资源的类型不同。

本发明实施例中,至少两个不同属性的负载包括:第一物理机的中央处理器的利用率、第一物理机的内存的利用率、第一物理机的输入接口/输出接口的利用率以及第一物理机的网络带宽的利用率中的至少两个。

步骤303、获取每一时刻的第三负载中每一负载的属性。

本发明实施例中,不同属性的负载表征第一物理机中被占用的资源的类型不同。

本发明实施例中,每一时刻的第三负载可以包括第一物理机的中央处理器的利用率、第一物理机的内存的利用率、第一物理机的输入接口/输出接口的利用率以及第一物理机的网络带宽的利用率中的至少两个。

步骤304、根据请求类型和每一时刻的第三负载中每一负载的属性,确定每一时刻的第三负载中每一负载的权重值。

本发明实施例中,根据当前时刻以及之前的负载数据,通过加权平均计算下一时刻的工作负载预测值,在确定负载数据权重时,需要先判断用户请求的类型,如果是对静态内容的请求,则将网络带宽项的权重增加20%,同时将cpu、内存的权重均减少10%;如果是对动态内容的请求,则将cpu和内存的权重均增加10%,同时将网络带宽项的权重减少20%。

示例性的,当用户请求为静态请求时,根据请求类型和某一时刻第三负载中每一负载的属性,确定第三负载中每一负载的权重值,如cpu利用率权重值为15%、内存利用率权重值为15%、输入接口/输出接口利用率权重值为25%、网络利用率带宽权重值为45%。

当用户请求为动态请求时,根据请求类型和某一时刻第三负载中每一负载的属性,确定第三负载中每一负载的权重值,如cpu利用率权重值为35%、内存利用率权重值为35%、输入接口/输出接口利用率权重值为25%、网络利用率带宽权重值为5%。

步骤305、根据每一时刻的第三负载和每一时刻的第三负载的权重值计算每一时刻的第四负载。

本发明实施例中,可以利用公式1计算每一时刻的第四负载。

l=a1×ucpu+a2×umem+a3×uio+a4×unet(公式1)

其中,l表示每一时刻的第四负载;ucpu表示cpu利用率,umem表示内存利用率,uio表示i/o利用率,unet表示网络带宽利用率;a1表示cpu利用率权重值,a2表示内存利用率权重值,a3表示i/o利用率权重值,a4表示网络带宽利用率权重值,a1+a2+a3+a4=1。

步骤306、根据每一时刻的第四负载计算第二负载。

本发明实施例中,计算多个时刻的第四负载的平均值,得到第二负载。

步骤307、若第二负载大于第二阈值,从第一物理机上的虚拟机中选择待迁移虚拟机。

其中,第二阈值大于第一阈值。

本发明实施例中,步骤307若第二负载大于第二阈值,从第一物理机上的虚拟机中选择待迁移虚拟机,可以包括如下步骤:

步骤307a1、若第二负载大于第二阈值,获取第一物理机的资源利用率。

步骤307b1、根据资源利用率从第一物理机上的多个虚拟机中选择待迁移虚拟机。

本发明实施例中,步骤307b1根据资源利用率从第一物理机上的多个虚拟机中选择待迁移虚拟机,还可以包括如下步骤:

第一步、若资源利用率大于或等于第三阈值,预测第三时刻第一物理机上的每一虚拟机的第五负载。

其中,第三时刻在第一时刻之后。

本发明实施例中,若资源利用率大于或等于第三阈值,则确定物理机发生过载情况,进而预测第三时刻第一物理机上的每一虚拟机的第五负载。

第二步、从第一物理机上的虚拟机中选取第五负载中最大负载对应的虚拟机,并确定为待迁移虚拟机。

本发明实施例中,步骤307若第二负载大于第二阈值,从第一物理机上的虚拟机中选择待迁移虚拟机,还可以包括如下步骤:

步骤307a2、若资源利用率小于或等于第四阈值,确定第一物理机上的每一虚拟机为待迁移虚拟机。

其中,第四阈值小于第三阈值。

本发明实施例中,若资源利用率小于或等于第四阈值,则确定物理机发生低载情况,进而确定将该物理机上的所有虚拟机为待迁移虚拟机。

在实际应用中,当物理机发生过载情况时如cpu利用率超过80%和低载情况时如cpu利用率低于20%,需要根据当前状态将该物理机上的部分或全部虚拟机迁移到其它物理机上运行。当处于过载状态时,将虚拟机按未来工作负载量进行降序排列,选择未来工作负载排名前列的虚拟机进行迁移。选择准则是将预测负载最大的虚拟机率先迁移出当前物理机,并使得主机能够满足剩下的虚拟机的未来资源需求。当处于低载状态时,将所有虚拟机都迁移出当前物理机。

步骤308、确定第二物理机,并将待迁移虚拟机迁移至第二物理机。

其中,第二物理机与第一物理机不同。

本发明实施例中,步骤308中确定第二物理机可以通过如下步骤实现:

步骤308a、获取第一时刻云计算管理平台中的每个物理机的第六负载。

步骤308b、从云计算管理平台中的物理机中选取第六负载小于第五阈值的物理机,并确定为第三物理机。

其中,第三物理机与第一物理机不同,第三物理机的数量为多个。

本发明实施例中,系统在确定第三物理机时,还可以从云计算管理平台中的物理机中选取负载最小的物理机并确定为第一第三物理机。进而基于该第一第三物理机执行步骤308c,如果该第一第三物理机对应的预测负载即第七负载不是最小的,那么,从云计算管理平台中的物理机中重新选择除了第一第三物理机之外最小的物理机为第二第三物理机,并执行后续步骤。

步骤308c、预测第四时刻每个第三物理机上的虚拟机的第七负载。

其中,第四时刻在第一时刻之后。

步骤308d、计算每个第三物理机的第七负载与待迁移虚拟机的负载的和,得到多个目标负载。

步骤308e、确定多个目标负载中小于第六阈值的目标负载。

步骤308f、从第三物理机中选取小于第六阈值的目标负载对应的第三物理机,并确定为第四物理机。

其中,第四物理机的数量为至少一个。

步骤308g、从至少一个第四物理机中确定第二物理机。

本发明实施例中,步骤308g从至少一个第四物理机中确定第二物理机可以通过如下步骤实现:

首先,计算每个第四物理机的第七负载减去每个第四物理机的第六负载的值,得到每个第四物理机的资源需求伸缩量。

本发明实施例中,资源需求伸缩量为负值,表明未来负载在减少。资源需求伸缩量为正值,表明未来负载在增加。

其次,计算每个第四物理机的资源总量减去每个第四物理机的第六负载的值,得到每个第四物理机的未分配资源量。

再次,计算每个第四物理机的未分配资源量减去每个第四物理机的资源需求伸缩量的值,得到每个第四物理机的预测剩余资源量。

最后,根据每个第四物理机的预测剩余资源量,从第四物理机中确定第二物理机。

本发明实施例中,根据每个第四物理机的预测剩余资源量,从第四物理机中确定第二物理机,可以通过如下步骤实现:确定第四物理机的预测剩余资源量中的最大值对应的第四物理机为第二物理机。

需要说明的是,本实施例中与其它实施例中相同步骤和相同内容的说明,可以参照其它实施例中的描述,此处不再赘述。

基于前述实施例,本发明实施例提供一种虚拟机迁移方法,应用于云计算管理平台,该方法包括以下步骤:

步骤401、若第一负载大于第一阈值,获取预设时间段内至少两个时刻的第三负载。

其中,预设时间段包括第一时刻以及第一时刻之前的至少一个第三时刻,至少两个时刻中每一时刻的第三负载包括至少两个不同属性的负载。

参见图10所示,本发明实施例中,每一时刻的第三负载包括距离,其中,距离表征第一物理机与接收到用户请求的数据中心之间的距离,云计算管理平台还包括数据中心,数据中心用于管理第三物理机,第三物理机包括第一物理机;同时,每一时刻的第三负载还包括第一物理机的中央处理器的利用率、第一物理机的内存的利用率、第一物理机的输入接口/输出接口的利用率以及第一物理机的网络带宽的利用率中的至少两个。

需要说明的是,大型云计算平台通常包含多个数据中心,即通常所说的同城数据中心,多个数据中心一般不在一栋楼里面,而是分布在不同地点的数据中心机房中,各个地点之间相距5-10公里,如果虚拟机进行了跨数据中心迁移,由于距离的影响,业务的服务等级协议会受到影响,因此对虚拟机跨数据中心迁移进行限制。

本发明实施例中,根据当前第一时刻以及第一时刻之前的多个第二时刻的负载数据,通过加权平均计算下一时刻的工作负载预测值,在计算加权平均的时候,除了cpu、内存、i/o和网络带宽四个指标,加入距离指标,单位可以是公里。这样实现的效果就是本地数据中心的预测负载低,远端的数据中心负载高,有效防止了虚拟机迁移到远端数据中心。

步骤402、获取每一时刻的第三负载中每一负载的属性。

本发明实施例中,不同属性的负载表征第一物理机中被占用的资源的类型不同。

步骤403、根据每一时刻的第三负载中每一负载的属性,确定每一时刻的第三负载中每一负载的权重值。

参见图10所示,示例性的,如cpu利用率权重值为20%、内存利用率权重值为20%、输入接口/输出接口利用率权重值为20%、网络利用率带宽权重值为20%。

步骤404、根据每一时刻的第三负载和每一时刻的第三负载的权重值计算每一时刻的第四负载。

步骤405、根据每一时刻的第四负载计算第二负载。

本发明实施例中,计算多个时刻的第四负载的平均值,得到第二负载。

步骤406、若第二负载大于第二阈值,从第一物理机上的虚拟机中选择待迁移虚拟机。

其中,第二阈值大于第一阈值。在实际应用中,当物理机发生过载情况时如cpu利用率超过80%和低载情况时如cpu利用率低于20%,需要根据当前状态将该物理机上的部分或全部虚拟机迁移到其它物理机上运行。当处于过载状态时,将虚拟机按未来工作负载量进行降序排列,选择未来工作负载排名前列的虚拟机进行迁移。选择准则是将预测负载最大的虚拟机率先迁移出当前物理机,并使得主机能够满足剩下的虚拟机的未来资源需求。当处于低载状态时,将所有虚拟机都迁移出当前物理机。

步骤407、确定第二物理机,并将待迁移虚拟机迁移至第二物理机。

其中,第二物理机与第一物理机不同。

需要说明的是,本实施例中与其它实施例中相同步骤和相同内容的说明,可以参照其它实施例中的描述,此处不再赘述。

综上,本发明实施例具有以下有益效果:

(1)提出了工作负载预测方法,负载综合考虑了cpu占用率、内存占用率、磁盘io、网络带宽、距离多个要素,通过对虚拟机所执行任务的未来负载量进行预测,并通过对业务请求的分类来调整负载指标的权重,从而精确的筛选出需要迁移的虚拟机和安置主机,减少虚拟机迁移次数,避免了迁移震荡。

(2)提出了基于资源分类的虚拟机集群部署方法,按资源类型划分不同的虚拟机集群,这样能快速的筛选出待迁移的虚拟机以及目标物理主机,辅助提高虚拟机动态迁移的效率。

(3)提出了基于镜像副本分裂的镜像快速传递方法,该方法以镜像库的镜像及副本为根结点,通过多次的循环拷贝,使虚拟机镜像能以m、2m、4m...速度快速复制,辅助提高虚拟机动态迁移的效率。

(4)提出了预防虚拟机跨数据中心迁移的方法,通过将数据中心距离指标引入负载预测的计算,有效防止多数据中心场景下虚拟机的迁移,从而保证业务的服务等级协议。

基于前述实施例,本发明的实施例提供一种云计算管理平台,该云计算管理平台可以应用于图5、7对应的实施例提供的一种虚拟机迁移方法中,参照图11示,该云计算管理平台11包括:处理器1101、存储器1102和通信总线1103,其中:

通信总线1103用于实现处理器1101和存储器1102之间的通信连接。

处理器1101用于执行存储器1102中存储的虚拟机迁移程序,以实现以下步骤:

若当前第一时刻第一物理机的第一负载大于第一阈值,预测第二时刻第一物理机的第二负载;其中,第二时刻在第一时刻之后;

若第二负载大于第二阈值,从第一物理机上的虚拟机中选择待迁移虚拟机;其中,第二阈值大于第一阈值;

确定第二物理机,并将待迁移虚拟机迁移至第二物理机;其中,第二物理机与第一物理机不同。

在本发明的其他实施例中,处理器1101用于执行存储器1102中若当前的第一时刻第一物理机的第一负载大于第一阈值,预测第二时刻第一物理机的第二负载时,可以通过以下步骤实现:

若第一负载大于第一阈值,获取预设时间段内至少两个时刻的第三负载;其中,预设时间段包括第一时刻以及第一时刻之前的至少一个第三时刻,至少两个时刻中每一时刻的第三负载包括至少两个不同属性的负载;不同属性的负载表征第一物理机中被占用的资源的类型不同;

根据每一时刻的第三负载和每一时刻的第三负载的权重值计算每一时刻的第四负载;

根据每一时刻的第四负载计算第二负载。

在本发明的其他实施例中,处理器1101用于执行存储器1102中根据每一时刻的第四负载计算第二负载时,可以通过以下步骤实现:

计算多个时刻的第四负载的平均值,得到第二负载。

在本发明的其他实施例中,处理器1101用于执行存储器1102中虚拟机迁移程序,以实现以下步骤:

接收用户请求,并获取用户请求的请求类型;其中,请求类型包括静态请求或动态请求;

相应的,根据每一时刻的第三负载和每一时刻的第三负载的权重值计算每一时刻的第四负载之前,方法还包括:

获取每一时刻的第三负载中每一负载的属性;

根据请求类型和每一时刻的第三负载中每一负载的属性,确定每一时刻的第三负载中每一负载的权重值。

在本发明的其他实施例中,每一时刻的第三负载还包括距离,其中,距离表征第一物理机与接收到用户请求的数据中心之间的距离,云计算管理平台还包括数据中心,数据中心用于管理第三物理机,第三物理机包括第一物理机。

在本发明的其他实施例中,处理器1101用于执行存储器1102中虚拟机迁移程序,以实现以下步骤:

获取每一时刻的第三负载中每一负载的属性;

根据每一时刻的第三负载中每一负载的属性,确定每一时刻的第三负载中每一负载的权重值。

在本发明的其他实施例中,处理器1101用于执行存储器1102中第一物理机上的虚拟机的数量为多个,若第二负载大于第二阈值,从第一物理机上的虚拟机中选择待迁移虚拟机时,可以通过以下步骤实现:

若第二负载大于第二阈值,获取第一物理机的资源利用率;

根据资源利用率从第一物理机上的多个虚拟机中选择待迁移虚拟机。

在本发明的其他实施例中,处理器1101用于执行存储器1102中根据资源利用率从第一物理机上的多个虚拟机中选择待迁移虚拟机时,可以通过以下步骤实现:

若资源利用率大于或等于第三阈值,预测第三时刻第一物理机上的每一虚拟机的第五负载;其中,第三时刻在第一时刻之后;

从第一物理机上的虚拟机中选取第五负载中最大负载对应的虚拟机,并确定为待迁移虚拟机。

在本发明的其他实施例中,处理器1101用于执行存储器1102中根据资源利用率从第一物理机上的多个虚拟机中选择待迁移虚拟机时,可以通过以下步骤实现:

若资源利用率小于或等于第四阈值,确定第一物理机上的每一虚拟机为待迁移虚拟机;其中,第四阈值小于第三阈值。

在本发明的其他实施例中,处理器1101用于执行存储器1102中确定第二物理机时,可以通过以下步骤实现:

获取第一时刻云计算管理平台中的每个物理机的第六负载;

从云计算管理平台中的物理机中选取第六负载小于第五阈值的物理机,并确定为第三物理机;其中,第三物理机与第一物理机不同,第三物理机的数量为多个;

预测第四时刻每个第三物理机上的虚拟机的第七负载;其中,第四时刻在第一时刻之后;

计算每个第三物理机的第七负载与待迁移虚拟机的负载的和,得到多个目标负载;

确定多个目标负载中小于第六阈值的目标负载;

从第三物理机中选取小于第六阈值的目标负载对应的第三物理机,并确定为第四物理机;其中,第四物理机的数量为至少一个;

从至少一个第四物理机中确定第二物理机。

在本发明的其他实施例中,处理器1101用于执行存储器1102中从至少一个第四物理机中确定第二物理机时,可以通过以下步骤实现:

计算每个第四物理机的第七负载减去每个第四物理机的第六负载的值,得到每个第四物理机的资源需求伸缩量;

计算每个第四物理机的资源总量减去每个第四物理机的第六负载的值,得到每个第四物理机的未分配资源量;

计算每个第四物理机的未分配资源量减去每个第四物理机的资源需求伸缩量的值,得到每个第四物理机的预测剩余资源量;

根据每个第四物理机的预测剩余资源量,从第四物理机中确定第二物理机。

在本发明的其他实施例中,处理器1101用于执行存储器1102中根据第四物理机的预测剩余资源量从第四物理机中确定第二物理机时,可以通过以下步骤实现:

确定第四物理机的预测剩余资源量中的最大值对应的第四物理机为第二物理机。

在本发明的其他实施例中,在云计算管理平台的物理机上建立有虚拟机集群,待迁移虚拟机的数量为至少两个,待迁移虚拟机的数量和第二物理机的数量相同,处理器1101用于执行存储器1102中虚拟机迁移程序,以实现以下步骤:

获取每个待迁移虚拟机的负载;

从多个第二物理机中确定每个待迁移虚拟机对应的目标物理机;其中,多个第二物理机包括目标物理机;

获取多个目标物理机的负载;

根据每个待迁移虚拟机的负载和每个目标物理机的负载,对多个目标物理机进行排序,得到优先级队列。

在本发明的其他实施例中,处理器1101用于执行存储器1102中根据每个待迁移虚拟机的负载和每个目标物理机的负载,对多个第二物理机进行排序,得到优先级队列时,可以通过以下步骤实现:

计算每个待迁移虚拟机的负载以及与每个待迁移虚拟机对应的目标物理机的负载的和,得到传输负载;

根据传输负载对多个目标物理机进行排序,得到优先级队列。

在本发明的其他实施例中,处理器1101用于执行存储器1102中根将待迁移虚拟机迁移至第二物理机时,可以通过以下步骤实现:

根据优先级队列确定每一目标物理机的优先级;

按照优先级由高到低的顺序,对每个目标物理机对应的待迁移虚拟机进行镜像传输;其中,优先级高的目标物理机对应的传输负载小于优先级低的目标物理机对应的传输负载。

需要说明的是,本实施例中处理器所执行的步骤的具体实现过程,可以参照图5、7对应的实施例提供的虚拟机迁移方法中的实现过程,此处不再赘述。

基于前述实施例,本发明的实施例提供一种存储介质,该存储介质存储有一个或者多个程序,该一个或者多个程序可被一个或者多个处理器执行,以实现如图5、7对应的实施例提供的虚拟机迁移方法中的步骤。

需要说明的是,上述计算机存储介质可以是只读存储器(readonlymemory,rom)、可编程只读存储器(programmableread-onlymemory,prom)、可擦除可编程只读存储器(erasableprogrammableread-onlymemory,eprom)、电可擦除可编程只读存储器(electricallyerasableprogrammableread-onlymemory,eeprom)、磁性随机存取存储器(ferromagneticrandomaccessmemory,fram)、快闪存储器(flashmemory)、磁表面存储器、光盘、或只读光盘(compactdiscread-onlymemory,cd-rom)等存储器;也可以是包括上述存储器之一或任意组合的各种电子设备,如移动电话、计算机、平板设备、个人数字助理等。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,从语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所描述的方法。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可从计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

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