1.本技术涉及通信领域,尤其涉及一种资源迁移的方法、系统及设备。
背景技术:2.随着云计算技术的不断发展和计算规模的不断扩大,云计算面临越来越多的系统挑战。在处理这些诸多挑战的过程中,资源调度是关键的一环,而在资源调度的框架内,资源迁移是实现资源调度的核心。资源迁移技术的高效与否决定了整个调度系统的效率,进而决定了整体云计算的成本和商业效率。
3.当前将待迁移的虚拟机迁移至资源池中的目标物理主机的资源迁移方案主要分为两种,第一种是在资源池中选择与虚拟机规格一致的物理主机作为目标物理主机,该种方法仅考虑虚拟机的规格,没有考虑虚拟机当前的运行状态,容易造成资源的较大浪费;第二种是根据待迁移的虚拟机的历史利用率确定目标物理主机,该种方法仅考虑到虚拟机的历史利用率,无法对虚拟机的资源占用情况进行全面刻画,尤其在虚拟机和目标物理主机上的具体业务复杂多变的条件下,使用第二种方法进行资源迁移容易造成迁移后的目标物理主机部分业务时延增加,用户体验差。
技术实现要素:4.本技术提供了一种资源迁移的方法、系统及相关装置,用于解决上述资源迁移过程中容易造成资源浪费、部分业务时延的问题。
5.第一方面,提供了一种资源迁移的方法,该方法应用于资源提供系统,该资源提供系统包括至少一个物理主机,至少一个物理主机中每个物理主机包括多种硬件资源,至少一个物理主机中每个物理主机的硬件资源被虚拟化成多种虚拟资源供所述物理主机上运行的虚拟机使用,该方法包括:
6.获取虚拟机的虚拟资源利用率;虚拟机的虚拟资源利用率可以包括以下任意一种或多种:虚拟中央处理器利用率、虚拟内存利用率、虚拟磁盘利用率,或其他虚拟资源;
7.将虚拟机的虚拟资源利用率输入识别模型,确定虚拟机的资源种类;
8.获取至少一个物理主机的物理资源利用率,其中,至少一个物理主机可以是资源提供系统中的全部物理主机,也可以是资源提供系统中的部分物理主机;至少一个物理主机的物理资源利用率包括以下任意一种或多种:中央处理器利用率、内存利用率、磁盘利用率,或其他物理资源;
9.将至少一个物理主机的物理资源利用率输入识别模型,确定至少一个物理主机中每个物理主机的资源种类;
10.根据虚拟机的资源种类和至少一个物理主机中每个物理主机的资源种类,将虚拟机迁移至至少一个物理主机中的某一物理主机上。
11.上述方法中,通过对虚拟机和至少一个物理主机进行资源种类识别,根据资源种类识别结果选择针对性的迁移方案,确定最适合虚拟机进行资源迁移的目标物理主机进行
资源迁移,从而避免由于对虚拟机资源利用情况的了解过于单一,无法确定最适合虚拟机进行资源迁移的目标物理主机而产生的资源浪费情况,同时避免了业务时延和资源冲突情况的发生,提高用户体验。
12.在一实施例中,虚拟机的资源种类包括平稳型,在虚拟机的资源种类是平稳型的情况下,所述根据虚拟机的资源种类和所述至少一个物理主机中每个物理主机的资源种类,将虚拟机迁移至所述至少一个物理主机中的某一物理主机上包括:获取资源种类为平稳型的至少一个平稳型物理主机;根据虚拟机的虚拟资源利用率以及所述至少一个平稳型物理主机的物理资源利用率,预测虚拟机迁移至所至少一个平稳型物理主机中的每一个平稳型物理主机后的物理资源利用率预测值,获得至少一个物理资源利用率预测值;确定至少一个物理资源利用率预测值中的最低的物理资源利用率预测值对应的平稳型物理主机为目标物理主机;将虚拟机迁移至目标物理主机上。
13.可以理解的,平稳型虚拟机和平稳型的物理主机的资源利用率是变化平稳的数据,比如cpu利用率的曲线是平稳曲线,因此,如果将一个平稳型虚拟机迁移至另一个也是平稳型的物理主机,结合虚拟机的各种虚拟资源利用率和物理主机的各种物理资源利用率,可以较为准确地预测出虚拟机进行资源迁移后,目标物理主机的物理资源利用率的预测值。这样,选择物理资源利用率最低的平稳型主机作为目标物理主机进行资源迁移后,虚拟机的虚拟资源利用率降低,目标物理主机的物理资源利用率虽然提升但是仍在正常工作范围内(已经进行了预测,确定目标物理主机相比其他物理主机在资源迁移后的物理资源利用率为最低),因此资源迁移的过程不会对虚拟机和目标物理主机产生影响,同时也不会产生业务延时的问题。
14.在一实施例中,虚拟机的资源种类包括周期型,在虚拟机的资源种类是周期型的情况下,根据虚拟机的资源种类和所述至少一个物理主机中每个物理主机的资源种类,将虚拟机迁移至至少一个物理主机中的某一物理主机上包括:获取资源种类为周期型的至少一个周期型物理主机;根据虚拟机的虚拟资源利用率以及至少一个周期型物理主机的物理资源利用率,将物理资源利用率曲线与虚拟资源利用率曲符合削峰填谷特性的周期型物理主机确定为目标物理主机,其中,在虚拟机为最高利用率状态的情况下,与虚拟资源利用率曲符合削峰填谷特性的周期型物理主机为最低利用率状态,在虚拟机为最低利用率状态的情况下,与虚拟资源利用率曲符合削峰填谷特性的周期型物理主机为高利用率状态;将虚拟机迁移至所述目标物理主机上。
15.可以理解的,周期型虚拟机的资源利用率曲线为周期曲线,其高资源利用率状态和低资源利用率状态存在一定的规律性,如果虚拟机处于高资源利用率状态资源时,目标物理主机恰好处于低资源利用率状态,虚拟机处于高资源利用率状态时,目标物理主机恰好处于低资源利用率状态,那么将虚拟机的资源迁移至目标物理主机后,迁移后的目标物理主机的资源利用率将趋于平稳,从而避免目标物理主机在资源迁移后会出现资源利用率忽高忽低的问题,进而避免资源迁移过程出现业务延时的问题。
16.在一实施例中,将虚拟机的虚拟资源利用率输入识别模型,确定虚拟机的资源种类包括:确定至少一个虚拟机的每一个虚拟机的虚拟资源利用率中的每个数据与其他至少一个数据之间的差异cv系数,获得至少一个cv系数向量,其中,至少一个cv系数向量中的每一个cv系数向量对应一个虚拟机,至少一个cv系数向量中的每一个cv系数向量包含至少一
个cv系数;将至少一个cv系数向量进行聚类,获得至少一个第一系数组,其中,至少一个第一系数组中的每个第一系数组包括至少一个cv系数向量,至少一个第一系数组中的每个第一系数组对应至少一个虚拟机;将组内的每一个cv系数小于阈值的第一系数组对应的至少一个虚拟机确定为平稳型。
17.在一实施例中,将至少一个cv系数进行聚类,获得至少一个第一系数组之后,该方法还包括:将组内的cv系数大于阈值的至少一个第一系数组中的cv系数向量进行重新聚类,获得至少一个第二系数组,其中,至少一个第二系数组中的每个第二系数组包括至少一个cv系数向量,至少一个第二系数组中的每个第二系数组对应至少一个虚拟机;将组内的每一个cv系数小于阈值的第二系数组对应的至少一个虚拟机确定为平稳型。
18.可以理解的,上述实施例中提供的平稳识别的方法,由于采用cv系数作为基础指标参与计算,相比于其他指标比如标准差,cv系数无需考虑测量单位、无需考虑样本差异是否过大,能够提高平稳识别的精度。并且,选择聚类后进行阈值比较的方法,一次可以确定一组虚拟机是否为平稳型,可以提高平稳识别的效率,进而提高资源迁移的效率。
19.在一实施例中,将虚拟机的虚拟资源利用率输入识别模型,确定虚拟机的资源种类包括:将虚拟机的虚拟资源利用率进行傅里叶变换,获得傅里叶曲线;确定所述傅里叶曲线的波峰和波谷之间的差值;在所述差值低于阈值的情况下,将所述傅里叶曲线对应的虚拟机确定为周期型。
20.可以理解的,上述实施例提供的周期识别方法,通过将虚拟资源利用率进行傅里叶变换获得傅里叶曲线,确定傅里叶曲线的波峰和波谷之间的差值是否低于阈值来判定虚拟机是否为周期型虚拟机,该方法只需要简单计算即可快速确定虚拟机是否为周期型,可行性高且易于实现,识别过程无需占用大量资源,可以提高资源迁移的效率。
21.第二方面,提供了一种资源迁移系统,其特征在于,应用于资源提供系统,资源提供系统包括至少一个物理主机,至少一个物理主机中每个物理主机包括多种硬件资源,至少一个物理主机中每个物理主机的硬件资源被虚拟化成多种虚拟资源供物理主机上运行的虚拟机使用,资源迁移系统包括获取单元、识别单元和迁移单元,其中,
22.获取单元用于获取虚拟机的虚拟资源利用率;
23.识别单元用于将虚拟机的虚拟资源利用率输入识别模型,确定虚拟机的资源种类;
24.获取单元还用于获取至少一个物理主机的物理资源利用率;
25.识别单元还用于将至少一个物理主机的物理资源利用率输入识别模型,确定至少一个物理主机中每个物理主机的资源种类;
26.迁移单元用于根据虚拟机的资源种类和至少一个物理主机中每个物理主机的资源种类,将虚拟机迁移至至少一个物理主机中的某一物理主机上。
27.在一实施例中,虚拟机的资源种类包括平稳型,在虚拟机的资源种类是平稳型的情况下,获取单元还用于获取资源种类为平稳型的至少一个平稳型物理主机;迁移单元还用于根据虚拟机的虚拟资源利用率以及至少一个平稳型物理主机的物理资源利用率,预测虚拟机迁移至所至少一个平稳型物理主机中的每一个平稳型物理主机后的物理资源利用率预测值,获得至少一个物理资源利用率预测值;迁移单元还用于确定至少一个物理资源利用率预测值中的最低的物理资源利用率预测值对应的平稳型物理主机为目标物理主机;
迁移单元还用于将虚拟机迁移至目标物理主机上。
28.在一实施例中,虚拟机的资源种类包括周期型,在虚拟机的资源种类是周期型的情况下,获取单元还用于获取资源种类为周期型的至少一个周期型物理主机;迁移单元还用于根据虚拟机的虚拟资源利用率以及至少一个周期型物理主机的物理资源利用率,将物理资源利用率曲线与虚拟资源利用率曲符合削峰填谷特性的周期型物理主机确定为目标物理主机,其中,在虚拟机为最高利用率状态的情况下,与虚拟资源利用率曲符合削峰填谷特性的周期型物理主机为最低利用率状态,在所虚拟机为最低利用率状态的情况下,与虚拟资源利用率曲符合削峰填谷特性的周期型物理主机为高利用率状态;迁移单元还用于将虚拟机迁移至目标物理主机上。
29.在一实施例中,识别单元用于:确定至少一个虚拟机的每一个虚拟机的虚拟资源利用率中的每个数据与其他至少一个数据之间的差异cv系数,获得至少一个cv系数向量,其中,至少一个cv系数向量中的每一个cv系数向量对应一个虚拟机,至少一个cv系数向量中的每一个cv系数向量包含至少一个cv系数;将至少一个cv系数向量进行聚类,获得至少一个第一系数组,其中,至少一个第一系数组中的每个第一系数组包括至少一个cv系数向量,至少一个第一系数组中的每个第一系数组对应至少一个虚拟机;将组内的每一个cv系数小于阈值的第一系数组对应的至少一个虚拟机确定为平稳型。
30.在一实施例中,识别单元用于在将至少一个cv系数进行聚类,获得至少一个第一系数组之后,该方法还包括:将组内的cv系数大于阈值的至少一个第一系数组中的cv系数向量进行重新聚类,获得至少一个第二系数组,其中,至少一个第二系数组中的每个第二系数组包括至少一个cv系数向量,至少一个第二系数组中的每个第二系数组对应至少一个虚拟机;将组内的每一个cv系数小于阈值的第二系数组对应的至少一个虚拟机确定为平稳型。
31.在一实施例中,识别单元用于:将虚拟机的虚拟资源利用率输入识别模型,确定虚拟机的资源种类包括:将虚拟机的虚拟资源利用率进行傅里叶变换,获得傅里叶曲线;确定所述傅里叶曲线的波峰和波谷之间的差值;在所述差值低于阈值的情况下,将所述傅里叶曲线对应的虚拟机确定为周期型。
32.第三方面,提供了一种计算机程序产品,当所述计算机程序产品被计算设备读取并执行时,实现如第一方面描述的方法。
33.第四方面,提供了一种计算机非瞬态存储介质,包括指令,当所述指令在计算设备上运行时,使得所述计算设备实现如第一方面描述的方法。
34.第五方面,提供了一种电子设备,包括处理器和存储器,所述处理器执行所述存储器中的代码时,实现如第一方面描述的方法。
附图说明
35.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
36.图1a是一种资源提供系统的结构示意图;
37.图1b是资源迁移的流程示意图;
38.图2是本技术提供的一种资源迁移系统的应用环境示意图;
39.图3是本技术提供的一种资源迁移方法的流程示意图;
40.图4-图5是本技术提供的一种资源迁移方法在一应用场景下的流程示意图;
41.图6是本技术提供的一种资源迁移方法在另一应用场景下的流程示意图;
42.图7是本技术提供的一种资源迁移系统的结构示意图;
43.图8是本技术提供的一种电子设备的结构示意图。
具体实施方式
44.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
45.为了便于理解本技术实施例,首先,对本技术涉及的应用场景进行简要说明。
46.云服务是分布式计算(distributed computing)、并行计算(parallel computing)、效用计算(utility computing)、网络存储(network storage technologies)、虚拟化(virtualization)、负载均衡(load balance)内容分发网络(content delivery network)等传统计算机和网络技术发展融合的产物。云服务是基于互联网的相关服务的增加、使用和交互模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源。可以理解的,云是网络、互联网的一种比喻说法。过去在图中往往用云来表示电信网,后来也用来抽象的表示互联网和底层基础设施。实际上,云服务指的是通过网络以按需、易扩展的方式获得所需服务。这种服务可以是it和软件、互联网相关,也可以是其他服务,它意味着计算能力也可以作为一种商品通过互联网进行流通。
47.简单来说,多个客户可以共享一个云服务提供商的系统资源,他们无需架设任何设备以及配备管理人员,便可享有专业的it服务,比如购买一台虚拟机作为公司的服务器,这对于一般创业者、中小企业来说,可以极大地降低运营成本。对于云服务提供商来说,用户向其购买了虚拟机后,云服务提供商可以从云服务资源池中选择合适的、空闲的虚拟机并将其提供给用户,由于其购买的系统资源在空闲状态下,也可以租借客户使用,提高云服务提供商的资源利用率。
48.然而,随着云计算技术的不断发展和计算规模的不断扩大,云计算面临越来越多的系统挑战。在处理这些诸多挑战的过程中,资源调度是关键的一环。可以理解的,云服务提供商的资源池中,一般会存在至少一个不同规格配置的物理主机,每个物理主机都可以划分为至少一个不同规格配置的虚拟机,因此如何合理的根据用户的需求进对资源进行分配调度,是云计算面临的重要挑战之一,而在资源调度的框架内,资源迁移是实现资源调度的核心。应理解,资源迁移指的是将用户正在使用的虚拟机迁移到目标资源池中的某个物理主机中。其中,发生资源迁移的原因很多,举例来说,根据用户的需求对资源进行分配调度后,由于用户在使用过程中可能会对资源的需求发生改变,此时将会产生资源迁移的需求;再比如,资源池中的物理主机a的利用率为80%,而另一台物理主机b的利用率只有10%,那么资源调度系统可以将物理主机a中的部分虚拟机的资源迁移至物理主机b中,使得物理主机a的利用率降低,提高物理主机a的运行速度。可以理解的,资源迁移的原因还可以包括其他场景,这里不再一一进行举例说明。综上可知,资源迁移技术的高效与否决定了
整个调度系统的效率,进而决定了整体云计算的成本和商业效率。
49.如图1a所示,图1a是一种资源提供系统100的结构示意图。该资源提供系统100包括待迁移资源池110和目标资源池120,待迁移资源池110和目标资源池120中系统可以包括至少一个物理主机,比如图1a中待迁移资源池中110可以包括物理主机x1、物理主机x2等等,待迁移资源池120中可以包括物理主机y1、物理主机y2等等。其中,所述至少一个物理主机中的每个物理主机包括多种硬件资源,用于向用户提供各种iaas云服务,例如,云主机、云存储、带宽等等,还可以向用户提供平台即服务(platform as a service,paas)比如关系型数据库服务(relational database service,rds)、软件即服务(software-as-a-service,saas)等等,还可以提供软件开发云等通过网络可以使用的丰富的云服务,本技术不对此进行限定。所述至少一个物理主机中每个物理主机的上述硬件资源还可以被虚拟化成多种虚拟资源供所述物理主机上运行的虚拟机使用,比如图1a中,物理主机x1可以包括虚拟机x11、x12、x13等等,物理主机x2可以包括虚拟机x21、x22、x23等等;物理主机y1可以包括虚拟机y11、y12、y13等等,物理主机y2可以包括虚拟机y21、y22、y23等等。应理解,图1a仅用于举例说明,本技术并不对资源池中物理主机的数量、物理主机中虚拟机的数量进行限定。并且,目标资源池120和待迁移资源池110种的资源可以两个不同的资源池,也可以是同一个资源池,也可以是部分资源相同、部分资源不同的两个资源池,本技术不作具体限定。
50.资源迁移可以简单理解为在目标资源池120中选择出一个目标物理主机,用于将待迁移资源池110中的待迁移的虚拟机中的资源迁移至该目标物理主机中。举例来说,假设图1a中待迁移资源池中110的物理主机x1上的虚拟机x11进行资源迁移,目标物理主机为目标资源池120中的物理主机y1,其资源迁移的过程可以如图1b所示。如图1b所示,在将虚拟机x11的资源迁移至物理主机y1后,物理主机x1中将不包括虚拟机x11,物理主机y1将包括虚拟机x11。可以理解的,在进行资源迁移后,虚拟机所在的源物理主机x1的物理资源利用率将会下降,但是目标物理主机的物理资源利用率必定会上升,如果某个物理主机本身的物理资源利用率就已经处于高利用率状态,如果还有其他虚拟机迁移至该物理主机,势必对该物理主机产生影响,轻则影响该物理主机上其他虚拟机上的业务,重则导致物理主机崩溃,用户业务数据丢失。因此,资源迁移技术的高效与否不仅决定了整个调度系统的效率,也决定了整体云计算的成本和商业效率。
51.由图1a可知,当前将待迁移的虚拟机迁移至目标物理主机的资源迁移方案主要分为两种,第一种方法是在目标资源池120中选择包含与待迁移的虚拟机规格一致的虚拟机的物理主机作为目标物理主机,比如根据中央处理器(central processing unit,cpu)的规格进行匹配,该种方法仅考虑虚拟机的规格,没有考虑虚拟机当前的运行状态,容易造成资源的较大浪费;第二种是根据虚拟机的历史利用率,从目标资源池120中确定一台目标物理主机,该种方法仅考虑到虚拟机的历史利用率,无法对虚拟机的资源利用情况进行全面刻画,尤其在虚拟机和物理主机上的具体业务复杂多变的条件下,使用第二种方法进行资源迁移容易造成部分业务时延增加,造成资源冲突,使得资源迁移过程对用户产生不良影响,用户体验差。
52.为了解决上述资源迁移过程中容易出现资源浪费和业务时延的问题,本技术提供了一种资源迁移系统200。如图2所示。本技术提供的资源迁移系统200可以对待迁移资源池
110中的虚拟机的资源占用情况进行资源种类识别,并根据资源种类识别结果选择针对性的迁移方案,在目标资源池120中确定最适合虚拟机进行资源迁移的目标物理主机,从而避免资源浪费,避免业务时延和资源冲突情况的发生,提高用户体验。其中,目标资源池120和待迁移资源池110可以参考图1a-图1b实施例描述的内容,这里不再展开赘述。需要说明的,图2所示的资源迁移系统200的内部的单元模块也可以有多种划分,各个模块可以是软件模块,也可以是硬件模块,也可以是部分软件模块部分硬件模块,本技术不对其进行限制。图2是一种示例性的划分方式,本技术不作具体限定。
53.如图2所示,资源迁移系统200可以包括识别模块210和迁移模块220。其中,识别模块210可以根据对待迁移资源池110的虚拟机的虚拟资源利用率和目标资源池120中的物理主机的物理资源利用率,分别对虚拟机和物理主机进行资源种类识别,其中,虚拟资源利用率和物理资源利用率可以是资源迁移系统200对待迁移资源池110和目标资源池中的每一个虚拟机和物理主机的cpu、内存、磁盘io、网络ip等信息进行实时监控后获得的,所述虚拟机的虚拟资源利用率包括以下任意一种或多种:虚拟cpu利用率、虚拟内存利用率、虚拟磁盘利用率,所述至少一个物理主机的物理资源利用率包括以下任意一种或多种:中央处理器利用率、内存利用率、磁盘利用率。具体实现中,虚拟cpu利用率还可以包括历史cpu资源利用率曲线、当前的cpu资源利用率、cpu平均利用率等等,同理,磁盘利用率还可以包括当前的磁盘利用率、历史磁盘利用率曲线、磁盘平均利用率等等,内存利用率还可以包括当前内存利用率、历史内存利用率曲线、内存平均利用率等等,本技术不作具体限定。
54.具体地,识别模块210可以包括平稳识别模型和周期识别模型,其中,平稳识别模型用于确定虚拟机和物理主机的资源种类是否为平稳型,周期识别模型用于确定虚拟机和物理主机的资源种类是否为周期型。这里,平稳型的虚拟机的虚拟资源利用率是波动较小的数据,比如cpu利用率为平稳曲线、内存占用率为平稳曲线等等,举例来说,平稳型虚拟机的cpu利用率可以保持在50%,上下浮动不超过3%;周期型的虚拟机的虚拟资源利用率是周期型变化的数据,比如cpu利用率的为周期曲线、内存占用率为周期曲线等等,举例来说,周期型虚拟机的虚拟资源利用率曲线可以是正弦函数,在一个周期内最高可以达到80%,最低可以达到20%。可以理解的,通过识别模块确定虚拟机的资源种类后,可以很好的预测该虚拟机资源的未来变化曲线,基于此可以选择出匹配度良好的目标物理主机进行资源迁移,极大程度上避免了资源浪费,提高资源迁移效率、云服务系统的稳定性和整体资源池内的资源利用率,降低云服务提供商的运行成本,同时避免了业务时延的问题,提高用户的使用体验。
55.迁移模块220可以根据虚拟机的资源种类,使用与该资源种类对应的迁移方案确定目标物理主机。具体地,迁移模块220可以包括平稳迁移方案和周期迁移方案。其中,在识别模块210确定虚拟机是平稳型的情况下,迁移模块220将使用平稳迁移方案确定目标物理主机,在标签识别模块210确定虚拟机是周期型的情况下,迁移模块220将使用周期迁移方案确定目标物理主机。下面分别对平稳迁移方案和周期迁移方案进行解释说明。
56.可以理解的,由于平稳型的虚拟机,其虚拟资源利用率曲线是平稳曲线,所以可以较为准确地预测出虚拟机迁移至目标物理主机后,目标物理主机的物理资源利用率预测值。因此平稳迁移方案可以是:首先在目标资源池120中获取资源种类同样为平稳型的至少一个平稳型物理主机,然后根据虚拟机的虚拟资源利用率以及和平稳型物理主机的物理资
源利用率,预测出如果该虚拟机迁移至每一个平稳型物理主机后,迁移后的平稳型物理主机的物理资源利用率预测值,然后选择出裕度最合适,比如资源利用率预测值最低的平稳型物理主机作为目标物理主机。举例来说,如果虚拟机的虚拟利用率平均值为80%,目标资源池120中的平稳型物理主机有物理主机1和物理主机2,其中物理主机1的物理资源利用率平均值为35%,当前利用率为28%,物理主机2的物理资源利用率平均值为44%,当前利用率为40%,如果虚拟机迁移至物理主机1,迁移后的物理主机1的物理利用率预测值可以是32%。物理主机2的物理资源利用率预测值可以是42%,那么此时可以将物理主机1确定为目标物理主机,将虚拟机迁移至所述目标物理主机。应理解,上述举例仅用于说明,本技术不作具体限定。
57.可以理解的,由于周期型的虚拟机,其虚拟资源利用率曲线为周期曲线,其高利用率状态和低利用率状态存在一定的规律性,因此周期迁移方案可以是:首先在目标资源池120中获取资源种类同样为周期型的至少一个周期型物理主机,然后根据所述虚拟机的虚拟资源利用率以及所述至少一个周期型物理主机的物理资源利用率,将物理资源利用率曲线与所述虚拟资源利用率曲符合削峰填谷特性的周期型物理主机确定为目标物理主机,其中,在所述虚拟机为最高利用率状态的情况下,与所述虚拟资源利用率曲符合削峰填谷特性的周期型物理主机为最低利用率状态,在所述虚拟机为最低利用率状态的情况下,与所述虚拟资源利用率曲符合削峰填谷特性的周期型物理主机为高利用率状态。削峰填谷还可以简单理解为虚拟资源利用率和物理资源利用率的曲线和,是一条较为平稳的曲线。举例来说,如果虚拟机a一个周期内的cpu利用率拟合曲线为y=sinx,其中,y为虚拟机a的cpu利用率,x为时间,如果某个周期型物理主机b在一个周期内的cpu利用率拟合曲线为y=-sinx,那么该周期型物理主机b可以是虚拟机a的目标物理主机。应理解,上述例子仅用于说明,本技术不作具体限定。
58.综上可知,本技术提供的资源迁移系统200可以分别对待迁移资源池110中的虚拟机以及目标资源池120中的物理主机进行资源种类识别,对于平稳型虚拟机,选择物理资源利用率预测值最低的平稳型物理主机作为目标物理主机,进行资源迁移;对于周期型虚拟机,选择物理资源利用曲线与虚拟机的虚拟资源利用率曲符合削峰填谷特性的周期型资源作为目标物理主机,进行资源迁移。该系统在确定目标物理主机的过程中,不仅考虑到虚拟机当前的资源利用情况,还考虑到迁移后目标物理主机可能的物理资源利用情况,基于此可以选择出匹配度良好的目标物理主机进行资源迁移,极大程度上避免了资源浪费,提高资源迁移效率、云服务系统的稳定性和整体资源池内的资源利用率,降低云服务提供商的运行成本,同时避免了业务时延的问题,提高用户的使用体验。
59.下面结合附图,对图2所示的资源迁移系统200如何解决资源迁移过程中容易出现资源浪费和业务时延的问题,进行详细说明。
60.如图3所示,本技术提供了一种资源迁移方法,可以应用于如图2所示的资源迁移系统200中,该方法可以包括以下步骤:
61.s310:获取虚拟机的虚拟资源利用率,所述虚拟机的虚拟资源利用率包括以下任意一种或多种:虚拟中央处理器利用率、虚拟内存利用率、虚拟磁盘利用率;获取至少一个物理主机的物理资源利用率,所述至少一个物理主机的物理资源利用率包括以下任意一种或多种:中央处理器利用率、内存利用率、磁盘利用率。其中,至少一个物理主机可以是资源
提供系统的目标资源池120中的全部物理主机,也可以是资源提供系统的目标资源池120中的部分物理主机,本技术不作具体限定。
62.需要说明的,虚拟资源利用率和物理资源利用率可以是对待迁移资源池110和目标资源池中的每一个虚拟/物理资源的cpu、内存、磁盘io、网络ip等信息进行实时监控后获得的,具体可以包括历史cpu的资源利用率曲线、当前的cpu资源利用率、当前的磁盘占用率、历史磁盘占用率曲线、当前的内存占用率、历史内存占用率曲线等等。当然,为了提高计算速度,也可以只考虑cpu的历史资源利用率进行运算,本技术不作具体限定。同时,步骤s310中,可以先从待迁移资源池110中获取虚拟机的虚拟资源利用率,再从目标资源池120中获取至少一个物理主机的物理资源利用率,也可以先获取物理资源利用率再获取虚拟资源利用率,还可以同时获取虚拟资源利用率和物理资源利用率,本技术不作具体限定。
63.在一实施例中,虚拟资源利用率和物理资源利用率还可以是对上述实时监控数据进行数据处理后获得的,可以理解的,实时监控数据为原始采集数据,其来源广泛数量庞大,数据结构较为复杂,如果直接对杂乱无章的原始监控数资源利用率据进行资源种类的识别,不但运算速度缓慢,也会为处理器带来很大负担,因此需要一种统一、高效的方式组织和存储所述实时监控数据,并将其“翻译”为处理器能够读写的统一格式,以便处理器进行统一的进一步的资源种类识别。这里,可以用不同结构来存放实时监控数据,比如表格、对象、树和图等等。
64.具体实现中,数据处理的过程可以包括数据清理、归一化、聚类等等,还可以包括其他可以根据原始采集数据得到统一格式、高效组织方式数据的数据处理方法,本技术不再一一举例说明,下面仅以数据清洗为例,对数据处理的过程进行举例说明。数据清洗指的是在所述实时监控数据包含有噪声或者信息不完整的情况下,可以进行数据清洗等步骤,以提高接下来识别结果的准确度。具体地,数据清洗的步骤可以包括填写空缺值、平滑噪声数据、删除鼓励点、检查数据的每个属性的格式及其内容是否符合规范等,利用线性或非线性的数学变换方法将冗余的数据进行少维度抽象处理,保留数据中最有存在和分析价值的部分,在保证数据相对完整的情况下尽量减少数据所占用的存储空间,从而让我们获得比原始数据小得多的数据,为后续的工作提供便利。实时监控数据经过数据清洗处理后,数据可靠性得到极大提升,从而为接下来的资源种类识别过程的奠定了一定的基础。应理解,上述举例仅用于说明,其本技术不作具体限定。
65.s320:将所述虚拟机的虚拟资源利用率输入识别模型,确定所述虚拟机的资源种类;将所述至少一个物理主机的物理资源利用率输入所述识别模型,确定所述至少一个物理主机中每个物理主机的资源种类。其中,所述识别模型包括平稳识别模型和周期识别模型,所述虚拟机和物理主机的资源种类包括周期型和平稳型,平稳识别模型用于根据虚拟资源利用率,确定虚拟机是否为平稳型虚拟机,根据物理资源利用率确定物理主机是否为平稳型物理主机,周期识别模型用于根据虚拟资源利用率,确定虚拟机是否为周期型虚拟机,根据物理资源利用率确定物理主机是否为平稳型物理主机。这里,平稳型和周期型的定义可以参考图2实施例,这里不再展开赘述。
66.需要说明的,在虚拟机的资源种类是平稳型的情况下,执行步骤s330,在虚拟机的资源种类是周期型的情况下,执行步骤s340。
67.s330:根据所述虚拟机的资源利用率以及所述至少一个平稳型物理主机的物理资
源利用率,使用平稳迁移方案确定虚拟机对应的目标物理主机。其中,平稳迁移方案的具体步骤将在后文的步骤s331-步骤s333进行详细描述。
68.s340:根据所述虚拟机的资源利用率以及所述至少一个平稳型物理主机的物理资源利用率,使用周期迁移方案确定虚拟机对应的目标物理主机。其中,周期迁移方案的具体步骤将在后文的步骤s341-步骤s343进行详细描述。
69.s350:将所述虚拟机的资源迁移至所述目标物理主机上。
70.下面对上述步骤s320中的识别模型进行解释说明。
71.在一实施例中,步骤s320中的识别模型包括平稳识别模型和周期识别模型,其中,平稳识别模型和周期识别模型都可以是提前训练好的模型,具体可以是通过机器学习、深度学习、推理、关联规则、聚类、决策树等算法中的一种或者多种获得的,本技术不作具体限定。下面将分别提供一种周期识别模型和一种平稳识别模型的实现方式进行详细说明。
72.在一实施例中,周期识别模型的具体识别过程可以如下:将虚拟机的虚拟资源利用率输入识别模型,确定虚拟机的资源种类包括:将虚拟机的虚拟资源利用率进行傅里叶变换,获得傅里叶曲线;确定所述傅里叶曲线的波峰和波谷之间的差值;在所述差值低于阈值的情况下,将所述傅里叶曲线对应的虚拟机确定为周期型。举例来说,可以先将虚拟机的cpu利用率曲线进行傅里叶变换,得到变换后的曲线,然后确定变换后曲线的波峰和波谷之间的差值,在差值小于0.1的情况下,判定该虚拟机为周期型虚拟机。同理,可以确定目标资源池120中至少一个物理主机的资源种类是否为周期型。应理解,上述举例仅用于说明,并不能构成具体限定。
73.在一实施例中,平稳识别模型的具体识别过程可以如下:将虚拟机的虚拟资源利用率输入识别模型,确定虚拟机的资源种类包括:确定所述至少一个虚拟机的每一个虚拟机的虚拟资源利用率中的每个数据与其他至少一个数据之间的差异cv系数,获得至少一个cv系数向量,其中,所述至少一个cv系数向量中的每一个cv系数向量对应一个虚拟机,所述至少一个cv系数向量中的每一个cv系数向量包含至少一个cv系数;将所述至少一个cv系数向量进行聚类,获得至少一个第一系数组,其中,所述至少一个第一系数组中的每个第一系数组包括至少一个cv系数向量,所述至少一个第一系数组中的每个第一系数组对应至少一个虚拟机;将组内的每一个cv系数小于阈值的第一系数组对应的至少一个虚拟机确定为平稳型。将组内的cv系数大于阈值的至少一个第一系数组中的cv系数向量进行重新聚类,获得至少一个第二系数组,其中,所述至少一个第二系数组中的每个第二系数组包括至少一个cv系数向量,所述至少一个第二系数组中的每个第二系数组对应至少一个虚拟机;将组内的每一个cv系数小于阈值的第二系数组对应的至少一个虚拟机确定为平稳型。
74.可以理解的,cv系数是表征变量变化程度的一个数学量,cv系数越小,表明变量越相等,即两个数字越平稳,而每个虚拟机的虚拟资源利用率(比如虚拟机的cpu利用率)可以是由多个数据组成的一组数据,那么计算这组数据中每两个数据之间计算cv系数后,可以获得一个包含至少一个cv系数的多维度的cv系数向量,如果cv系数向量中的每一个元素都小于阈值,则表示这组数据越平稳,为了提高计算精度,还可以同时计算每三个数据之间、每四个数据之间的cv系数,获得更高维度的cv系数向量,这样,每一个虚拟机的虚拟资源利用率都可以计算出一个cv系数向量。考虑到待迁移资源池110中的虚拟机数量非常多,为了提高平稳识别的效率,本技术的平稳识别模型选择了分组识别,也就是说,将每个虚拟机的
cv系数向量与其他虚拟机的cv系数向量进行聚类,获得至少一个第一系数组,每个第一系数组可以包括至少一个cv系数向量,每一个系数组可以对应至少一个虚拟机,然后判定每个第一系数组中的cv系数与阈值之间大小,如果一个第一系数组中全部的cv系数都小于阈值,那么第一系数组对应的全部虚拟机都可以判定为平稳型,如果组内包含不小于阈值的cv系数,整个第一系数组内的全部cv系数,都要重新参与聚类过程,从而获得至少一个第二系数组,如果第二系数组中全部的cv系数都小于阈值,那么第二系数组对应的全部虚拟机都可以判定为平稳型,以此类推,重复上述聚类、判定的过程。
75.举例来说,假设待迁移资源池110中包含4个虚拟机,虚拟机a的资源利用率为(y
11
,y
12
,y
13
),虚拟机b的资源利用率为(y
21
,y
22
,y
23
),虚拟机c的资源利用率为(y
31
,y
32
,y
33
),虚拟机d的资源利用率为(y
41
,y
42
,y
43
)。对于上述4个虚拟机的平稳识别过程可以如下:
76.首先,将4个资源利用率进行cv系数变换,假设只计算两两数据之间的cv系数,那么虚拟机a的cv系数向量可以是(k
11
,k
12
,k
13
),其中,k
11
是y
11
和y
12
之间的cv系数,k
12
是y
12
和y
13
之间的cv系数,k
13
是y
11
和y
13
之间的cv系数,以此类推,可以获得虚拟机b的cv系数向量(k
21
,k
22
,k
23
),虚拟机c的cv系数向量为(k
31
,k
32
,k
33
),虚拟机d的cv系数向量为(k
41
,k
42
,k
43
)。
77.其次,将4个cv系数向量进行聚类,获得2个第一系数组,每一组包括2个cv系数向量,分别对应2个虚拟机。假设聚类后虚拟机a和虚拟机c的cv向量组聚为一个第一系数组(k
11
,k
12
,k
13
,k
31
,k
32
,k
33
)虚拟机b和虚拟机d的cv向量组聚为另一个第一系数组(k
21
,k
22
,k
23
,k
41
,k
42
,k
43
)。
78.最后,假设k
11
,k
12
,k
13
,k
31
,k
32
,k
33
均小于阈值0.5,那么虚拟机a和虚拟机c均为平稳型虚拟机。假设k
21
,k
22
,k
23
,k
41
,k
42
,k
43
中某一项不小于阈值0.5,那么k
21
,k
22
,k
23
,k
41
,k
42
,k
43
将与其他虚拟机(比如待迁移资源池中加入了新的虚拟机e和虚拟机f)的cv系数向量进行重新聚类获得至少一个第二系数组,再将第二系数组中的每个cv系数与阈值0.5进行比较,以此类推。
79.需要说明的,上述平稳识别和周期识别的具体过程均以虚拟机为例进行了说明,具体实现中,至少一个物理主机的平稳识别和周期识别也是使用上述方法实现的,与虚拟机的平稳识别和周期识别过程一致,因此这里不再展开赘述。
80.可以理解的,使用本技术提供的平稳识别模型识别虚拟机是否为平稳型,由于采用cv系数作为基础指标参与计算,相比于其他指标比如标准差,cv系数无需考虑测量单位、无需考虑样本差异是否过大,能够提高平稳识别的精度。并且,选择聚类后进行阈值比较的方法,一次可以确定一组虚拟机是否为平稳型,可以提高平稳识别的效率,进而提高资源迁移的效率。
81.下面结合图4-图5、步骤s331-步骤s332,对上述步骤s330中使用的平稳迁移方案进行解释说明。
82.参考前述内容可知,平稳型虚拟机和平稳型的物理主机的资源利用率是变化平稳的数据,比如cpu利用率的曲线是平稳曲线,因此,如果将一个平稳型虚拟机迁移至另一个也是平稳型的物理主机,结合虚拟机的各种虚拟资源利用率和物理主机的各种物理资源利用率,可以较为准确地预测出虚拟机进行资源迁移后,目标物理主机的物理资源利用率的变化曲线。因此,步骤s330可以包括以下步骤:
83.s331:在目标资源池120中获取资源种类同样为平稳型的至少一个平稳型物理主机。
84.参考前述内容可知,步骤s320处已经对目标资源池120中至少一个物理主机的资源种类进行了确定,因此步骤s331可以获取至少一个平稳型物理主机。其中,资源迁移系统可以同时监控目标资源池120和待迁移资源池110,同时确定目标资源池120中至少一个主机以及待迁移资源池110中至少一个虚拟机的资源种类,也可以先确定待迁移资源池110中至少一个虚拟机的资源种类,再确定目标资源池120中至少一个主机的资源种类,本技术不作具体限定。
85.s332:根据所述虚拟机的虚拟资源利用率以及所述至少一个平稳型物理主机的物理资源利用率,预测所述虚拟机迁移至所至少一个平稳型物理主机中的每一个平稳型物理主机后的物理资源利用率预测值,获得至少一个物理资源利用率预测值。
86.举例来说,如图4所示,假设虚拟机的cpu利用率平均值为80%,物理主机1的cpu利用率平均值为28%,物理主机2的cpu利用率平均值为40%,那么可以预测出所述虚拟机迁移至物理主机1后,物理主机1的cpu利用率预测值为32%,迁移至物理主机2后,物理主机2的cpu利用率预测值为45%。应理解,图5仅用于举例说明,具体实现中,物理资源利用率预测值的计算还可以结合历史cpu的资源利用率曲线、当前的cpu资源利用率、当前的磁盘占用率、历史磁盘占用率曲线、当前的内存占用率、历史内存占用率曲线等等中的一种或者多种而确定,本技术不作具体限定。
87.s333:确定所述至少一个物理资源利用率预测值中的最低的物理资源利用率预测值对应的平稳型物理主机为目标物理主机。
88.仍以上述例子为例,图4中物理主机1的cpu利用率预测值最低,因此可以将物理主机1确定为虚拟机的目标物理主机,如图5所示,迁移前虚拟机的cpu利用率为80%,迁移后变成了60%,而物理主机1的cpu利用率在迁移前为28%,迁移后为35%。需要说明的,上述举例仅用于说明,不能构成具体限定。应理解,资源迁移后,虚拟机的虚拟资源利用率降低,目标物理主机的物理资源利用率虽然提升但是仍在正常工作范围内,资源迁移的过程不会对虚拟机和目标物理主机产生影响,同时也不会产生业务延时的问题。
89.下面结合图6以及步骤s341-步骤s342,对上述步骤s340的周期迁移方案进行解释说明。
90.参考前述内容可知,由于周期型虚拟机的资源利用率曲线为周期曲线,其高资源利用率状态和低资源利用率状态存在一定的规律性,如果虚拟机处于高资源利用率状态资源时,目标物理主机恰好处于低资源利用率状态,虚拟机处于高资源利用率状态时,目标物理主机恰好处于低资源利用率状态,那么将虚拟机的资源迁移至目标物理主机后,迁移后的目标物理主机的资源利用率将趋于平稳,从而避免目标物理主机在资源迁移后会出现资源利用率忽高忽低的问题,进而避免资源迁移过程出现业务延时的问题。因此,步骤s340可以包括以下步骤:
91.s341:获取资源种类为周期型的至少一个周期型物理主机。
92.s342:根据所述虚拟机的虚拟资源利用率以及所述至少一个周期型物理主机的物理资源利用率,将物理资源利用率曲线与所述虚拟资源利用率曲符合削峰填谷特性的周期型物理主机确定为目标物理主机,其中,在所述虚拟机为最高利用率状态的情况下,与所述
虚拟资源利用率曲符合削峰填谷特性的周期型物理主机为最低利用率状态,在所述虚拟机为最低利用率状态的情况下,与所述虚拟资源利用率曲符合削峰填谷特性的周期型物理主机为高利用率状态。
93.举例来说,假设虚拟机、物理主机1和物理主机2均为周期型,虚拟机的虚拟资源利用率曲线、物理主机1的物理资源利用率曲线以及物理主机2的物理资源利用率曲线分别如图6所示,其中,虚拟机一个周期内的cpu利用率拟合曲线为y=sinx,物理主机1一个周期内的cpu利用率拟合曲线为y=-sinx,物理主机2一个周期内的cpu利用率拟合曲线为y=sinx,由图6可知,虽然物理主机1的cpu当前利用率为28%,物理主机2的cpu当前利用率为20%,但是物理主机2的cpu利用率曲线与虚拟机的cpu利用率曲线不满足削峰填谷特性,如果不使用本技术提供的资源迁移方法,仅仅考虑cpu当前利用率,将虚拟机的资源迁移至物理主机2,在一定时间,物理主机2的cpu利用率曲线达到最高状态时,可能会造成物理主机2cpu占用过高甚至资源崩溃问题的出现,为用户带来不便。物理主机1虽然cpu当前利用率高于物理主机2,但是物理主机1的cpu利用率曲线与虚拟机的cpu利用率曲线符合削峰填谷特性,如果使用本技术提供的资源迁移方法,将虚拟机的资源迁移至物理主机1后,物理主机1的cpu利用率曲线将保持稳定状态,从而避免资源迁移后的目标物理主机出现资源利用率忽高忽低的问题,进而避免资源迁移过程出现业务延时的问题。
94.综上可知,本技术提供的资源迁移方法可以分别对待迁移资源池110中的虚拟机以及目标资源池120中的物理主机进行资源种类识别,对于平稳型虚拟机,选择物理资源利用率预测值最低的平稳型物理主机作为目标物理主机,进行资源迁移;对于周期型虚拟机,选择物理资源利用曲线与虚拟机的虚拟资源利用率曲符合削峰填谷特性的周期型资源作为目标物理主机,进行资源迁移。该系统在确定目标物理主机的过程中,不仅考虑到虚拟机当前的资源利用情况,还考虑到迁移后目标物理主机可能的物理资源利用情况,基于此可以选择出匹配度良好的目标物理主机进行资源迁移,极大程度上避免了资源浪费,提高资源迁移效率、云服务系统的稳定性和整体资源池内的资源利用率,降低云服务提供商的运行成本,同时避免了业务时延的问题,提高用户的使用体验。
95.上述详细阐述了本技术实施例的方法,为了便于更好的实施本技术实施例上述方案,相应地,下面还提供用于配合实施上述方案的相关设备。
96.图7是本技术提供的一种资源迁移系统700的结构示意图,如图7所示,该系统700可以应用于前述内容中的资源提供系统100,所述资源提供系统100包括至少一个物理主机,所述至少一个物理主机中每个物理主机包括多种硬件资源,所述至少一个物理主机中每个物理主机的硬件资源被虚拟化成多种虚拟资源供所述物理主机上运行的虚拟机使用,所述资源迁移系统700包括获取单元710、识别单元720和迁移单元730,其中,
97.所述获取单元710用于获取虚拟机的虚拟资源利用率,所述虚拟机的虚拟资源利用率包括以下任意一种或多种:虚拟中央处理器利用率、虚拟内存利用率、虚拟磁盘利用率;
98.所述识别单元720用于将所述虚拟机的虚拟资源利用率输入识别模型,确定所述虚拟机的资源种类;
99.所述获取单元710还用于获取至少一个物理主机的物理资源利用率,所述至少一个物理主机的物理资源利用率包括以下任意一种或多种:中央处理器利用率、内存利用率、
磁盘利用率;
100.所述识别单元720还用于将所述至少一个物理主机的物理资源利用率输入所述识别模型,确定所述至少一个物理主机中每个物理主机的资源种类;
101.所述迁移单元730用于根据所述虚拟机的资源种类和所述至少一个物理主机中每个物理主机的资源种类,将所述虚拟机迁移至所述至少一个物理主机中的某一物理主机上。
102.在一实施例中,所述虚拟机的资源种类包括平稳型,在所述虚拟机的资源种类是平稳型的情况下,所述获取单元710还用于获取资源种类为平稳型的至少一个平稳型物理主机;所述迁移单元730还用于根据所述虚拟机的虚拟资源利用率以及所述至少一个平稳型物理主机的物理资源利用率,预测所述虚拟机迁移至所至少一个平稳型物理主机中的每一个平稳型物理主机后的物理资源利用率预测值,获得至少一个物理资源利用率预测值;所述迁移单元730还用于确定所述至少一个物理资源利用率预测值中的最低的物理资源利用率预测值对应的平稳型物理主机为目标物理主机;所述迁移单元730还用于将所述虚拟机迁移至所述目标物理主机上。
103.在一实施例中,所述虚拟机的资源种类包括周期型,在所述虚拟机的资源种类是周期型的情况下,所述获取单元710还用于获取资源种类为周期型的至少一个周期型物理主机;所述迁移单元730还用于根据所述虚拟机的虚拟资源利用率以及所述至少一个周期型物理主机的物理资源利用率,将物理资源利用率曲线与所述虚拟资源利用率曲符合削峰填谷特性的周期型物理主机确定为目标物理主机,其中,在所述虚拟机为最高利用率状态的情况下,与所述虚拟资源利用率曲符合削峰填谷特性的周期型物理主机为最低利用率状态,在所述虚拟机为最低利用率状态的情况下,与所述虚拟资源利用率曲符合削峰填谷特性的周期型物理主机为高利用率状态;所述迁移单元730还用于将所述虚拟机迁移至所述目标物理主机上。
104.在一实施例中,所识别单元720用于:确定至少一个虚拟机的每一个虚拟机的虚拟资源利用率中的每个数据与其他至少一个数据之间的差异cv系数,获得至少一个cv系数向量,其中,至少一个cv系数向量中的每一个cv系数向量对应一个虚拟机,至少一个cv系数向量中的每一个cv系数向量包含至少一个cv系数;将至少一个cv系数向量进行聚类,获得至少一个第一系数组,其中,至少一个第一系数组中的每个第一系数组包括至少一个cv系数向量,至少一个第一系数组中的每个第一系数组对应至少一个虚拟机;将组内的每一个cv系数小于阈值的第一系数组对应的至少一个虚拟机确定为平稳型。
105.在一实施例中,所述识别单元720还用于在将所述至少一个cv系数进行聚类,获得至少一个第一系数组之后,将组内的cv系数大于阈值的至少一个第一系数组中的cv系数向量进行重新聚类,获得至少一个第二系数组,其中,至少一个第二系数组中的每个第二系数组包括至少一个cv系数向量,至少一个第二系数组中的每个第二系数组对应至少一个虚拟机;将组内的每一个cv系数小于阈值的第二系数组对应的至少一个虚拟机确定为平稳型。
106.在一实施例中,所述识别单元720用于:将虚拟机的虚拟资源利用率进行傅里叶变换,获得傅里叶曲线;确定所述傅里叶曲线的波峰和波谷之间的差值;在所述差值低于阈值的情况下,将所述傅里叶曲线对应的虚拟机确定为周期型。
107.应理解,图7所示的资源迁移系统700的内部的单元模块也可以有多种划分,各个
模块可以是软件模块,也可以是硬件模块,也可以是部分软件模块部分硬件模块,本技术不对其进行限制。图7是一种示例性的划分方式,本技术不作具体限定。
108.综上可知,本技术提供的资源迁移系统700可以分别对待迁移资源池110中的虚拟机以及目标资源池120中的物理主机进行资源种类识别,对于平稳型虚拟机,选择物理资源利用率预测值最低的平稳型物理主机作为目标物理主机,进行资源迁移;对于周期型虚拟机,选择物理资源利用曲线与虚拟机的虚拟资源利用率曲符合削峰填谷特性的周期型资源作为目标物理主机,进行资源迁移。该系统在确定目标物理主机的过程中,不仅考虑到虚拟机当前的资源利用情况,还考虑到迁移后目标物理主机可能的物理资源利用情况,基于此可以选择出匹配度良好的目标物理主机进行资源迁移,极大程度上避免了资源浪费,提高资源迁移效率、云服务系统的稳定性和整体资源池内的资源利用率,降低云服务提供商的运行成本,同时避免了业务时延的问题,提高用户的使用体验。
109.图8为本技术实施例提供的一种电子设备800的结构示意图。其中,所述电子设备800可以是前述内容中的资源迁移系统200或者资源迁移系统700。如图8所示,电子设备800包括:处理器810、通信接口820以及存储器830。其中,处理器810、通信接口820以及存储器830可以通过内部总线840相互连接,也可通过无线传输等其他手段实现通信。本技术实施例以通过总线840连接为例,总线840可以是外设部件互连标准(peripheral component interconnect,pci)总线或扩展工业标准结构(extended industry standard architecture,eisa)总线等。所述总线840可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
110.所述处理器810可以由至少一个通用处理器构成,例如中央处理器(central processing unit,cpu),或者cpu和硬件芯片的组合。上述硬件芯片可以是专用集成电路(application-specific inegrated circuit,asic)、可编程逻辑器件(programmable logic device,pld)或其组合。上述pld可以是复杂可编程逻辑器件(complex programmable logic device,cpld)、现场可编程逻辑门阵列(field-programmable gate array,fpga)、通用阵列逻辑(generic array logic,gal)或其任意组合。处理器810执行各种类型的数字存储指令,例如存储在存储器830中的软件或者固件程序,它能使电子设备800提供较宽的多种服务。具体实现中,处理器810可以包括识别单元和迁移单元,识别单元可以通过调用存储器830中的程序代码以实现处理功能,包括图2中的识别模块210所描述的功能以及图7中的识别单元720所描述的功能,例如根据采集到的虚拟机的虚拟资源利用率确定虚拟机的资源种类,具体可用于执行前述方法的s302及其可选步骤,还可以用于执行图2-图6实施例描述的其他步骤,这里不再进行赘述。迁移单元可以通过调用存储器830中的程序代码以实现处理功能,包括图2中的迁移模块220所描述的功能以及图7中的迁移单元730所描述的功能,例如根据所述虚拟机的资源种类和所述至少一个物理主机中每个物理主机的资源种类,将所述虚拟机迁移至所述至少一个物理主机中的某一物理主机上,具体可用于执行前述方法的步骤s303、步骤s304、步骤s305及其可选步骤,还可以用于执行图2-图6实施例描述的其他步骤,这里不再进行赘述。
111.所述存储器830可以包括易失性存储器(volatile memory),例如随机存取存储器(random access memory,ram);存储器830也可以包括非易失性存储器(non-volatile memory),例如只读存储器(read-only memory,rom)、快闪存储器(flash memory)、硬盘
(hard disk drive,hdd)或固态硬盘(solid-state drive,ssd);存储器830还可以包括上述种类的组合。具体实现中,存储器830存储有程序代码。程序代码可以是识别平稳型虚拟机、平稳型物理主机的代码、识别周期型虚拟机、周期型物理主机的代码、平稳迁移方案的代码、周期迁移方案的代码等等,还可以包括其他用于执行图2-图6实施例描述的其他步骤的程序代码,这里不再进行赘述。
112.通信接口820可以为有线接口(例如以太网接口),可以为内部接口(例如高速串行计算机扩展总线(peripheral component interconnect express,pcie)总线接口)、有线接口(例如以太网接口)或无线接口(例如蜂窝网络接口或使用无线局域网接口),用于与与其他设备或模块进行通信。
113.需要说明的,图8仅仅是本技术实施例的一种可能的实现方式,实际应用中,所述电子设备还可以包括更多或更少的部件,这里不作限制。关于本技术实施例中未示出或未描述的内容,可参见前述图2-图6所述实施例中的相关阐述,这里不再赘述。
114.应理解,图8所示的电子设备还可以是至少一个服务器构成的计算机集群,本技术不作具体限定。
115.本技术实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在处理器上运行时,图2-图6所示的方法流程得以实现。
116.本技术实施例还提供一种计算机程序产品,当所述计算机程序产品在处理器上运行时,图2-图6所示的方法流程得以实现。
117.上述实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括至少一个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含至少一个可用介质集合的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,高密度数字视频光盘(digital video disc,dvd)、或者半导体介质。半导体介质可以是ssd。
118.以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。