CN110928636A - 虚拟机热迁移方法、装置和设备 - Google Patents

虚拟机热迁移方法、装置和设备 Download PDF

Info

Publication number
CN110928636A
CN110928636A CN201811096531.XA CN201811096531A CN110928636A CN 110928636 A CN110928636 A CN 110928636A CN 201811096531 A CN201811096531 A CN 201811096531A CN 110928636 A CN110928636 A CN 110928636A
Authority
CN
China
Prior art keywords
load
virtual machine
load data
data sequence
determining
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.)
Pending
Application number
CN201811096531.XA
Other languages
English (en)
Inventor
张超
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201811096531.XA priority Critical patent/CN110928636A/zh
Publication of CN110928636A publication Critical patent/CN110928636A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明实施例提供一种虚拟机热迁移方法、装置和设备,该方法包括:获取虚拟机的运行状态特征信息;根据运行状态特征信息确定虚拟机的负载类型;根据虚拟机的负载类型确定虚拟机的热迁移方式;采用确定出的热迁移方式对虚拟机进行热迁移。通过根据虚拟机的负载类型即热迁移对虚拟机的影响程度来差异化地确定虚拟机的热迁移方式,从而可以灵活地采用合适的方式对虚拟机进行热迁移,在采用与虚拟机的负载类型相匹配的热迁移方式对虚拟机进行热迁移时,可以避免对用户访问的不利影响,保证热迁移的可靠性。

Description

虚拟机热迁移方法、装置和设备
技术领域
本发明涉及互联网技术领域,尤其涉及一种虚拟机热迁移方法、装置和设备。
背景技术
随着虚拟化技术的不断发展,虚拟机(Virtual Machine,简称VM)的应用也越来越广泛。实际应用中,往往需要通过热迁移将虚拟机从一个物理机迁移到另外一个物理机,以实现计算资源的动态调度,物理故障主动运维。
目前,主要采用主流的预拷贝技术来完成虚拟机热迁移。而且目前都是人为完全自主触发进行虚拟机热迁移的,热迁移过程可能存在很多不可控的问题,比如:如果进行虚拟机热迁移的时候,虚拟机的内存中产生脏页的速度远高于拷贝的速度时比如大量用户频繁地访问虚拟机,将会导致耗费更长的时间才能完成热迁移,热迁移引入的业务中断时间过长、业务访问受到明显影响比如延迟过大等情况。
发明内容
本发明实施例提供一种虚拟机热迁移方法、装置和设备,用以提高虚拟机热迁移的可靠性。
第一方面,本发明实施例提供一种虚拟机热迁移方法,包括:
获取虚拟机的运行状态特征信息;
根据所述运行状态特征信息确定所述虚拟机的负载类型;
根据所述负载类型确定所述虚拟机的热迁移方式;
采用所述热迁移方式对所述虚拟机进行热迁移。
第二方面,本发明实施例提供一种虚拟机热迁移装置,包括:
获取模块,用于获取虚拟机的运行状态特征信息;
类型确定模块,用于根据所述运行状态特征信息确定所述虚拟机的负载类型;
方式确定模块,用于根据所述负载类型确定所述虚拟机的热迁移方式;
迁移处理模块,用于采用所述热迁移方式对所述虚拟机进行热迁移。
第三方面,本发明实施例提供一种电子设备,该电子设备包括处理器和存储器,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行时实现上述第一方面中的虚拟机热迁移方法。
本发明实施例提供了一种计算机存储介质,用于储存计算机程序,所述计算机程序使计算机执行时实现上述第一方面中的虚拟机热迁移方法。
在本发明实施例中,当想要对虚拟机进行热迁移时,先获取虚拟机的历史的运行状态特征信息,基于获取到的运行状态特征信息识别出虚拟机的负载类型,该负载类型反映了虚拟机的运行是否易受到热迁移的影响,进而根据虚拟机的负载类型确定虚拟机的热迁移方式,采用确定出的热迁移方式对虚拟机进行热迁移处理。通过根据虚拟机的负载类型即热迁移对虚拟机的影响程度来差异化地确定虚拟机的热迁移方式,从而可以灵活地采用合适的方式对虚拟机进行热迁移,在采用与虚拟机的负载类型相匹配的热迁移方式对虚拟机进行热迁移时,可以避免对用户访问的不利影响,保证热迁移的可靠性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种虚拟机热迁移系统的组成示意图;
图2为本发明实施例提供的一种虚拟机热迁移方法的流程图;
图3为本发明实施例提供的一种预测虚拟机的负载低峰窗口的方案的流程图;
图4为图3所示实施例中步骤304的一种可选实现方式的流程图;
图5为图3所示实施例中步骤304的另一种可选实现方式的流程图;
图6为图3所示实施例中步骤304的又一种可选实现方式的流程图;
图7为图3所示实施例中步骤304的再一种可选实现方式的流程图;
图8为本发明实施例提供的一种虚拟机热迁移装置的结构示意图;
图9为与图8所示实施例提供的虚拟机热迁移装置对应的电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义,“多种”一般包含至少两种,但是不排除包含至少一种的情况。
应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
取决于语境,如在此所使用的词语“如果”、“若”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。
另外,下述各方法实施例中的步骤时序仅为一种举例,而非严格限定。
图1为本发明实施例提供的一种虚拟机热迁移系统的组成示意图,如图1所示,该系统可以包括:虚拟机当前所在的源物理机A以及虚拟机需要热迁移至的目的物理机B,以及对虚拟机进行热迁移处理的热迁移处理设备C。热迁移处理设备C分别与源物理机A和目的物理机B通信连接。
结合后续的本发明实施例提供的虚拟机热迁移方法,该热迁移处理设备C的核心工作概括来说主要是:对虚拟机在源物理机A上的历史运行状况进行分析,确定虚拟机的负载类型,以便根据虚拟机的负载类型确定对虚拟机进行热迁移处理所采用的具体热迁移策略即热迁移方式。
下面结合以下实施例对本发明实施例提供的虚拟机热迁移方法进行介绍。
图2为本发明实施例提供的一种虚拟机热迁移方法的流程图,该虚拟机热迁移方法可以由图1所示的热迁移处理设备C来执行。如图2所示,该方法包括如下步骤:
201、获取虚拟机的运行状态特征信息。
202、根据运行状态特征信息确定虚拟机的负载类型。
203、根据负载类型确定虚拟机的热迁移方式。
204、采用确定出的热迁移方式对虚拟机进行热迁移。
本发明实施例中,可以将虚拟机的负载类型划分为热迁移敏感类型和热迁移不敏感类型。
其中,虚拟机的负载是指虚拟机上运行的全部应用程序的统称。所谓热迁移敏感与否,是指负载是否易受热迁移的影响,若易受热迁移的影响则称为热迁移敏感,反之,称为热迁移不敏感。
下面结合热迁移对虚拟机的影响先来分析下易受热迁移影响的负载的特质。
在虚拟机热迁移过程中,由于虚拟机在源物理机中保持运行,用户的访问依旧在进行,因此,在多轮拷贝内存脏页的过程中会引入对虚拟机的CPU、网络带宽等资源的争抢,从而对用户的正常访问产生影响,该影响比如体现为访问的网络延迟增大、IO延迟增大等;另外,当在虚拟机的内存脏页率过高的情况下,可能会出现内存脏页的拷贝速度低于内存脏页的产生速度,此时,可能导致无法热迁移,或者热迁移引入的业务中断时间过长,或者不得不采用一些降低脏页率的对损害虚拟机性能的手段才能进行热迁移。
由此可知,对网络延迟敏感、对IO延迟敏感、以及呈现内存密集型特点的负载更易受热迁移影响,其中,内存密集型特点反映了上述内存脏页的拷贝速度低于内存脏页的产生速度的情况,也就是说会被大量用户频繁访问从而使得内存页频繁被更新。
因此,如果虚拟机上运行的全部应用程序总体上呈现上述对网络延迟敏感或者对IO延迟敏感或者内存密集型的特点,则认为该虚拟机的负载类型为热迁移敏感类型,反之,认为虚拟机的负载类型为热迁移不敏感类型。
基于上述对虚拟机的负载类型的介绍可知,如果想要识别当前需要进行热迁移的虚拟机的负载类型,则需要采集一些能够反映虚拟机的负载特点的度量指标,该度量指标即为本实施例中提到的虚拟机的运行状态特征信息。
实际应用中,可以设置一种或多种运行状态特征信息以用于识别虚拟机的负载类型。
其中,多种运行状态特征信息中包括虚拟机的至少一种负载特征信息或包括如下至少一种:虚拟机对应的硬件资源信息、虚拟机的生命周期。
可选地,多种运行状态特征信息中可以虚拟机的至少一种负载特征信息以及如下至少一种:虚拟机对应的硬件资源信息、虚拟机的生命周期。
其中,虚拟机的至少一种负载特征信息比如可以是一定时间范围内的CPU平均占用率,一定时间比如一天内的负载波动程度,该负载波动程度比如可以包括IO流量波动程度、网络流量波动程度、CPU占用率波动程度等。
其中,波动程度可以以标准差或方差等来表示。
其中,虚拟机对应的硬件资源信息比如可以包括虚拟机所在的源物理机的CPU核数和内存容量。
其中,虚拟机的生命周期是指虚拟机自部署在源物理机的时间开始到当前时间所经历的天数。
可选地,可以预先设定各种运行状态特征信息对应的参考取值范围与虚拟机的负载类型之间的对应关系,从而,基于该对应关系以及在需要对虚拟机进行热迁移时所计算出的该虚拟机的实际运行状态特征值来确定该虚拟机的负载类型。
举例来说,假设各种运行状态特征信息的参考取值范围与虚拟机的负载类型的对应关系如下表所示:
运行状态特征表:
Figure BDA0001805675260000061
在实际使用中,可选地,可以从上述举例的多种运行状态特征信息中任意选择一种用于进行虚拟机的负载类型的识别。假设选用CPU平均占用率进行当前需要进行热迁移的虚拟机的负载类型的识别,则当热迁移处理设备接收到针对该虚拟机的热迁移指令时(该时间即为本发明实施例中提及的当前时间),获取该虚拟机过去比如一天或多天内产生的CPU占用率数据序列,进而通过计算平均值得到CPU平均占用率,如果计算得到的CPU平均占用率位于10%~80%这个区间,则认为该虚拟机对应于热迁移敏感的负载类型,相反地,如果计算出的CPU平均占用率满足热迁移不敏感类型的取值条件,则认为该虚拟机的负载类型为热迁移不敏感类型。
可选地,也可以从上述举例的多种运行状态特征信息中任意选择多种运行状态特征信息用于进行虚拟机的负载类型的识别。此时,假设选择了三种运行状态特征信息,如果对需要进行热迁移的虚拟机针对这三种运行状态特征信息进行计算实际得到的特征值都对应于同一种负载类型,比如都对应于热迁移敏感类型,则确定该虚拟机的负载类型为热迁移敏感类型,反之,如果三个实际计算得到的特征值都对应于热迁移不敏感类型,则确定该虚拟机的负载类型为热迁移不敏感类型。
可选地,为了进一步提高虚拟机的负载类型的识别结果的准确性,还可以根据预先生成的决策树模型来识别虚拟机的负载类型。此时,将获取到的需要热迁移的虚拟机的多种运行状态特征信息即计算得到的多种运行状态特征值输入到该决策树模型,以获得决策树模型输出的虚拟机的负载类型。
可选地,该决策树模型比如可以是套袋(bagging)、随机森林、梯度下降树等模型。
以随机森林模型为例,在训练随机森林模型时,可以获取若干虚拟机在热迁移过程对应的运行状态数据,比如包括CPU占用率、IO流量、网络流量等历史负载数据,以及各自对应的硬件资源信息、生命周期等。进而对获取到的运行状态数据进行数据计算处理比如计算CPU平均占用率、IO流量波动程度、网络流量波动程度等等,以得到若干训练样本,每个训练样本对应有多种运行状态特征信息。另外,根据各虚拟机的实际热迁移体验对各训练样本进行分类标记,标记为热迁移敏感类型或热迁移不敏感类型。之后,第一,可以从训练样本集中有回放地随机选出n个样本;第二,从上述运行状态特征表中随机选择k个特征,对选择出的样本利用这些特征建立决策树;第三,重复执行第一和第二步m次,即生成m棵决策树,以生成随机森林。
基于上述介绍,对于需要进行热迁移的虚拟机,可以通过获取一定历史时间内该虚拟机对应的运行状态特征信息识别该虚拟机的负载类型,进而根据识别出的负载类型确定虚拟机的热迁移方式。
可选地,若该虚拟机的负载类型为热迁移不敏感类型,则确定热迁移方式为直接进行热迁移的方式。其中,直接进行热迁移的方式就是自当前时刻开始,通过预拷贝技术实现该虚拟机的热迁移。
可选地,若虚拟机的负载类型为热迁移敏感类型,则确定热迁移方式为在虚拟机的负载低峰窗口进行热迁移的方式。其中,负载低峰窗口是指虚拟机的整体负载较低的时间窗口。
如果虚拟机的负载类型为热迁移敏感类型,说明热迁移对虚拟机的正常运行会产生明显影响,该影响往往体现于对用户访问行为的影响,因为若此时虚拟机的负载类型为热迁移敏感类型,往往说明在当前时刻之前的一定时间段(即与获取的虚拟机的运行状态特征信息所对应的历史时间段,比如为7天)内用户对虚拟机的访问量整体处于较高水平,如果当前时刻随即进行热迁移,很可能会影响用户的访问体验,还会对虚拟机的性能造成损害,因此,此时通过预测未来该虚拟机可能的负载低峰窗口,在虚拟机的负载低峰窗口内完成虚拟机的热迁移,由于在负载低峰窗口用户的访问行为明显降低,此时热迁移过程不会对用户的访问体验造成明显影响,还会大大缩短热迁移的耗时,保证热迁移的可靠、快速完成。
综上,通过根据虚拟机的负载类型即热迁移对虚拟机的影响程度来差异化地确定虚拟机的热迁移方式,从而可以灵活地采用合适的方式对虚拟机进行热迁移,在采用与虚拟机的负载类型相匹配的热迁移方式对虚拟机进行热迁移时,可以避免对用户访问的不利影响,保证热迁移的可靠性。
前文提到在虚拟机的负载类型为热迁移敏感类型时,采用在虚拟机的负载低峰窗口进行热迁移的方式完成虚拟机的热迁移处理。下面,对如何预测负载低峰窗口进行说明。
图3为本发明实施例提供的一种预测虚拟机的负载低峰窗口的方案的流程图,如图3所示,可以包括如下步骤:
301、采样虚拟机的历史负载数据,以获得虚拟机的负载数据序列。
302、根据负载数据序列对虚拟机进行负载周期性分析。
本实施例中,为了预测出未来一定时间范围比如一天内的负载低峰窗口,首先需要获取虚拟机的历史负载数据,比如过去7天的历史负载数据,通过对历史负载数据进行周期性分析,以确定虚拟机的负载是否呈现周期性的特点,进而结合周期性分析结果进行负载低峰窗口的预测。
实际应用中,可以获取虚拟机的一种或多种历史负载数据,该多种历史负载数据比如可以是过去7天虚拟机的CPU占用率、IO流量、网络流量等。
对于获取到的历史负载数据,可以以一定时间间隔进行采样,比如1分钟,从而得到对应的负载数据序列。为了降低负载数据序列的数据量,同时又不会对周期性分析结果产生不利影响,可以合理设置该采样时间间隔,或者,也可以在以较短采样时间间隔比如1分钟进行采样后,采用另一时间粒度比如11分钟对每11分钟内采样的负载数据进行求均值计算,以该均值替代对应的11分钟内采样的负载数据。
当获取的是多种历史负载数据时,可以针对每种历史负载数据都按照该时间间隔进行采样,从而得到多种负载数据序列。
在根据获得的负载数据序列对虚拟机进行负载周期性分析的过程中,可以先对负载数据序列进行频域变换,以获得负载数据序列对应的频域数据,进而根据频域数据的幅值分布特征确定虚拟机的负载是否具有周期性。
值得说明的是,如果仅是通过采样某一种历史负载数据得到对应的一种负载数据序列,那么仅对该负载数据序列进行频域变换处理即可。但是,当采样多种历史负载数据得到对应的多种负载数据序列时,可选地,可以根据多种负载数据序列各自对应的波动程度从多种负载数据序列中选择出至少一种负载数据序列,其中,选出的至少一种负载数据序列的波动程度大于未被选择的负载数据序列的波动程度。其中,该波动程度可以以标准差来表示。另外,也可以预先设定需要选择出的负载序列的个数,比如为1个、2个。
此时,若选择出了至少两种负载数据序列,则根据至少两种负载数据序列各自对应的波动程度,确定该至少两种负载数据序列各自对应的权值;根据权值对至少两种负载数据序列进行加权求和处理;对经过加权求和处理后的负载数据序列进行频域变换。
假设获得了如下三种负载数据序列:IO流量序列、网络流量序列、CPU占用率序列。假设设定的是从中选择出标准差最大的2个负载数据序列,可以分别计算这三种负载数据序列的标准差,假设这三个负载数据序列对应的标准差依次为:0.1、0.2和0.5,则从中选择标准差较大的前两个负载数据序列为CPU占用率序列和网络流量序列。进而根据选择出的这两个负载数据序列各自对应的标准差确定各自对应的权值,比如网络流量序列对应的权值为2/7,CPU占用率序列对应的权值为5/7,进而,可以按照该权值对这两个负载数据序列进行加权求和处理。值得说明的是,在进行加权求和处理的过程中,可以先对这两个负载数据序列进行归一化处理,再进行加权求和处理,之后对加权求和处理后得到的负载数据序列进行频域变换。
本实施例中,频域变换处理比如可以是进行离散傅里叶变换、Z变换、小波变换等变换处理。
以离散傅里叶变换为例,在对负载数据序列进行离散傅里叶变换之后,得到频域数据,该频域数据反映了频率与幅值的映射关系。根据该频域数据的幅值分布特征确定虚拟机的负载是否具有周期性,可以实现为:
根据幅值大小从频域数据中提取出最大的多个幅值;
若多个幅值的累加值与频域数据中全部幅值的累加值之间的比值大于或的等于预设值,则确定虚拟机的负载具有周期性;
若比值小于所述预设值,则确定虚拟机的负载具有非周期性。
实际应用中,可以预先设定最大幅值的个数,比如为5个,那么从得到的频域数据中提取出最大的5个幅值,假设该频域数据中一共包含100个幅值,那么如果这5个幅值的累加值与这100个幅值的累加值的比值大于预设值比如80%,则确定虚拟机的负载具有周期性,反之具有非周期性。
303、根据负载数据序列确定低峰阈值。
值得说明的是,如果前面获取的是多种历史负载数据对应的多种负载数据序列,那么确定低峰阈值所对应的对象即为前述加权求和处理后的负载数据序列,比如前面举例中对CPU占用率序列和网络流量序列进行加权求和处理后得到的负载数据序列。
根据负载数据序列确定低峰阈值,可以实现为:
根据负载数据序列中各负载值的大小,对负载数据序列中各负载值进行排序;
确定各负载值中排在预设百分比位置的负载值为低峰阈值。
比如,可以按照负载值由低到高的顺序对负载数据序列中各负载值进行排序,进而,确定位于整个负载数据序列的30%位置的负载值为低峰阈值,此时意味着,该在该负载数据序列对应的历史时间段内,有30%的时间虚拟机的负载值低于该低峰阈值。
304、根据负载周期性分析的结果和低峰阈值预测虚拟机的负载低峰窗口。
经过前面的步骤可以得到需要进行热迁移的虚拟机的负载周期性分析结果以及低峰阈值,此时,可以根据该负载周期性分析结果以及低峰阈值进行未来一定预测时间范围比如未来1天内虚拟机的负载低峰窗口,进而可以在预测出的负载低峰窗口进行虚拟机的热迁移。
下面结合图4-图7所示实施例介绍几种负载低峰窗口的预测方法。
图4为图3所示实施例中步骤304的一种可选实现方式的流程图,如图4所示,可以包括如下步骤:
401、若虚拟机的负载具有周期性,则根据虚拟机的周期性特征确定预设时间预测范围内的负载数据序列。
402、在确定出的负载数据序列中寻找连续的低于低峰阈值的负载值。
403、若连续的低于低峰阈值的负载值所对应的时间段的时长大于预设时长,则确定该时间段为负载低峰窗口。
假设上述预设时间预测范围为未来一天,则实际上,图3所示实施例中获取的用于进行负载周期性分析的负载数据序列所对应的历史时间段往往是当前时间之前多天比如7天的负载数据序列,以便能够准确地分析出虚拟机是否具有负载周期性以及具体的周期性特征,比如周期具体是多少。
在虚拟机的负载呈现周期性的情况下,可以根据已经获得的负载数据序列所体现出的具体的周期性特征比如周期是多少,以及幅值分布规律或者说幅值变化趋势通过插值的方式预测出预设时间预测范围内的负载数据序列,比如预测出未来一天内的负载数据序列。
在预测出预设时间预测范围内的负载数据序列后,假设设定的负载低峰窗口对应的预设时长为15分钟,则在该负载数据序列中寻找一个至少为15分钟的窗口,在该窗口内的负载值全部或大部分都低于低峰阈值,如果找到这样的窗口,那么该窗口即为一个负载低峰窗口。
图5为图3所示实施例中步骤304的另一种可选实现方式的流程图,如图5所示,可以包括如下步骤:
501、若虚拟机的负载具有非周期性,则获取当前时间之前的第一时间段内虚拟机产生的第一负载数据序列。
502、将第一负载数据序列输入到预先生成的神经网络模型,以获得神经网络模型预测出的第二时间段内的第二负载数据序列。
503、若第二负载数据序列的负载值低于低峰阈值,则确定第二时间段为负载低峰窗口。
本实施例中,针对虚拟机的负载呈现非周期性的情况,可以采用已经训练得到的神经网络模型来预测负载低峰窗口。
可选地,该神经网络模型可以是循环神经网络模型、深度神经网络模型或者卷积神经网络模型等。比如,可以采用长短期记忆(Long Short-Term Memory,简称LSTM)网络模型这种循环神经网络模型进行负载低峰窗口的预测。
在进行模型训练的过程中,可选地,可以将图3所示实施例中获得的负载数据序列作为训练样本集。当然,如果获取的是多种负载数据序列,则可以以获得的各种负载数据序列作为训练样本集,或者,也可以以前文中经过加权求和处理后的负载数据序列作为训练样本集。当然,作为训练样本集的也可以不仅为上述虚拟机的历史负载数据,也可以包含其他虚拟机的历史负载数据。
具体来说,假设以某负载数据序列作为训练样本集,可以从负载数据序列中截取某10分钟的负载数据作为一个训练样本输入到LSTM模型,并且假设下一个10分钟的负载数据为负载数据1,LSTM模型用于输出输入的训练样本未来10分钟的负载数据,则假设此时LSTM模型输出的是未来10分钟的负载数据2,进而比较负载数据1和负载数据2,调整LSTM模型的训练参数,如此以各训练样本对LSTM模型进行训练,直到模型收敛。
针对当前要进行热迁移的虚拟机来说,在基于已经训练得到的LSTM模型进行负载低峰窗口的预测过程中,为提供预测准确度,可以获取当前时间之前的第一时间段内虚拟机产生的第一负载数据序列作为输入,将第一负载数据序列输入到LSTM模型,以获得LSTM模型预测出的第二时间段内的第二负载数据序列。
本实施例中,假设输入LSTM模型的负载数据序列的时长为30分钟,LSTM模型输出的负载数据序列的时长为15分钟。
此时,上述第一时间段比如为30分钟,第二时间段比如为15分钟,第二时间段的起始时间为第一时间段的结束时间。当然,第一时间段的时长和第二时间段的时长也可以为其他值,但是第二时间段的时长一般要小于或等于第一时间段的时长。
在得到LSTM模型输出的第二负载数据序列后,比较该第二负载数据序列中各负载值与低峰阈值,若第二负载数据序列的负载值低于低峰阈值,则确定第二时间段为所述负载低峰窗口。其中,第二负载数据序列的负载值低于低峰阈值,并非要求第二负载数据序列中的全部负载值都低于低峰阈值,也可以只是一定较高比例的负载值低于该低峰阈值即可。
相反地,如果第二负载数据序列的负载值均高于或者大部分高于低峰阈值,则说明第二时间段并非负载低峰窗口。此时,可以更新输入的负载数据序列为第二时间段的起始时间之前的30分钟的负载数据序列,进而预测输出接下来15分钟的负载数据序列,进行该负载数据序列对应的时间段是否为负载低峰窗口的判断,如此类推下去。
图6为图3所示实施例中步骤304的又一种可选实现方式的流程图,如图6所示,可以包括如下步骤:
601、若虚拟机的负载具有非周期性,则生成与负载数据序列对应的第一低峰时间差序列,第一低峰时间差序列中的数据元素反映了负载数据序列中相邻的低于低峰阈值的负载值之间的时间差。
602、将第一低峰时间差序列输入到预先生成的自回归模型,以获得自回归模型预测出的第二低峰时间差序列,第二低峰时间差序列对应于预设时间预测范围。
603、根据第二低峰时间差序列中各数据元素反映的时间差,按照预设时长对各数据元素进行分组。
604、确定包含数据元素最多的分组所对应的第三时间段为负载低峰窗口。
本实施例中,针对虚拟机的负载呈现非周期性的情况,可以采用已经训练得到的自回归模型来预测负载低峰窗口。该自回归模型比如可以是ARIMA模型、指数自回归模型等。
本实施例中上述步骤中的负载数据序列可以是图3所示实施例中进行负载周期性分析所使用的负载数据序列。
本实施例中,为了预测虚拟机的负载低峰窗口,首先需要对该负载数据序列进行分析,以得到该负载数据序列对应的负载低峰分布特征,该负载低峰分布特征以本实施例中提到的低峰时间差序列来表示。
结合下述举例来说明生成与负载数据序列对应的第一低峰时间差序列的过程:该负载数据序列可以为CPU占用率序列,假设该负载数据序列由如下负载值构成:10、20、30、50、100、100、20、10、15。并且假设该负载数据序列中各负载值对应的时间戳分别为:T1、T2、T3、T4、T5、T6、T7、T8、T9,并且假设相邻的负载值之间相差5分钟,假设低峰阈值为25。
在生成该负载数据序列对应的第一低峰时间差序列的过程中,针对每个低于低峰阈值的负载值,计算相邻的下一个低于低峰阈值的负载值与该负载值相差的时间差。其中,如果负载数据序列中的第一个负载值即低于低峰阈值,那么针对该第一个负载值来说,可以在之前补一个占位符,且设定该占位符与第一个负载值的时间间隔也为5分钟,此时,该第一个负载值相对于该占位符来说,视为第二个负载值,此时,该负载数据序列可以视为是:X、10、20、30、50、100、100、20、10、15。其中,X即为占位符,对应的时间戳假设为T0。
由此,在生成第一低峰时间差序列的过程中,首先,针对占位符开始进行计算,计算下一个低于低峰阈值的负载值即T1时刻对应的负载值10与该占位符相差的时间差:5分钟。之后,针对T1时刻对应的低于低峰阈值的负载值10,计算下一个低于低峰阈值的负载值即T2时刻对应的负载值20与该占位符相差的时间差:5分钟。之后,针对T2时刻对应的低于低峰阈值的负载值20,计算下一个低于低峰阈值的负载值即T7时刻对应的负载值20与该占位符相差的时间差:25分钟。之后,由于T3至T6之间的几个负载值都高于低峰阈值,跳过,不进行计算。之后,针对T7时刻对应的低于低峰阈值的负载值20,计算下一个低于低峰阈值的负载值即T8时刻对应的负载值10与该占位符相差的时间差:5分钟。之后,针对T8时刻对应的低于低峰阈值的负载值10,计算下一个低于低峰阈值的负载值即T9时刻对应的负载值15与该占位符相差的时间差:5分钟。之后,由于T9时刻对应的负载值15是最后一个负载值,此时不需对最后一个负载值进行计算。
在该举例下,第一低峰时间差序列即为{5,5,25,5,5}。
可选地,上述相邻的低于低峰阈值的负载值之间的时间差可以直接以相差的时间长度为表示,也可以以相隔的负载值的个数来表示,此时,相隔的负载值的个数乘以相邻两个负载值之间的时间间隔即为该时间差。
在得到第一低峰时间差序列后,将该第一低峰时间差序列输入至比如ARIMA模型,从而输出作为预测结果的第二低峰时间差序列,其中,第二低峰时间差序列对应于预设时间预测范围比如未来一天。
一般地,为了保证能够在预设时间预测范围内能够找到负载低峰窗口,该预设时间预测范围不宜过短,且也不宜过长,一般设置为一天或两天为宜。而需要找到的负载低峰窗口所对应的时长不宜过长,比如可以是小时级别的或者分钟级别的,比如为1小时,或者10-20分钟,因此为了在该较长的预设时间预测范围内能够找出合适的负载低峰窗口,在得到第二低峰时间差序列后,可以根据第二低峰时间差序列中各数据元素反映的时间差,按照预设时长对各数据元素进行分组,该预设时长即对应于负载低峰窗口的时长。
假设第二低峰时间差序列为:{10、5、25、5、5、5、5、25、50},单位为分钟,且假设预设时长为1小时,则划分结果为:{10、5、25、5、5、5、5、/25、/50、/100}其中,/代表组分割符,即由(10、5、25、5、5、5、5)这些数据元素组成第一组,由接下来的25这个数据元素构成第二组,由接下来的50这个数据元素构成第三组。
在分组划分后,确定包含数据元素最多的分组所对应的第三时间段为负载低峰窗口。其中,包含数据元素最多表示在这个分组对应的时间段内出现了更多的低于低峰阈值的负载值,因此将包含数据元素最多的分组所对应的第三时间段确定为负载低峰窗口。
图7为图3所示实施例中步骤304的再一种可选实现方式的流程图,如图7所示,在图6所示实施例基础上,步骤604后还可以包括如下步骤:
701、若当前时间达到第三时间段的起始时间,则获取当前时间之前的预设时长内虚拟机产生的第三负载数据序列,预设时长小于第三时间段的时长。
702、将第三负载数据序列输入到预先生成的神经网络模型,以获得神经网络模型预测出的第四时间段内的第四负载数据序列,第四时间段位于第三时间段内,第四时间段的时长小于或等于预设时长。
703、若第四负载数据序列的负载值低于低峰阈值,则将负载低峰窗口更新为第四时间段。
在实际应用中,在虚拟机的负载呈现非周期性的特征时,虽然可以采用图5所示实施例示意的神经网络模型或者图6所示实施例示意的自回归模型进行负载低峰窗口的预测,但是,也可以采用这两种模型相配合的方式实现负载低峰窗口的预测,如此,在预测准确度和处理复杂度方面能够得到很好的折中,比如,此时,循环神经网络模型比如LSTM模型可以仅包含一层隐含层即可。
这两种模型的配合具体体现为:先通过自回归模型预测出一个较大时间范围,之后,在该较大时间范围内通过神经网络模型预测出一个更小时间范围的负载低峰窗口。
本实施例中,将图6所示实施例中预测出的第三时间段作为该较大时间范围,进而通过神经网络模型在该第三时间段内预测出更小时长的负载低峰窗口。
比如,假设第三时间段为11:00-12:00的时间窗口,则可以在当前时间达到第三时间段的起始时间即11:00时,获取当前时间之前的预设时长内虚拟机产生的第三负载数据序列,预设时长小于第三时间段的时长,假设该预设时长为20分钟,则获取的是10:40-11:00期间该虚拟机产生的第三负载数据序列。其中,该第三负载数据序列可以是对应于图3所示实施例中进行周期性分析时计算出的波动程度最大的那种负载数据,比如为CPU占用率。
进而,将第三负载数据序列输入到已经训练得到的神经网络模型比如LSTM模型,以获得神经网络模型预测出的第四时间段内的第四负载数据序列。其中,第四时间段位于第三时间段内,而且,第四时间段的时长小于或等于预设时长,也就是说,用20分钟的负载数据序列作为输入,最多可以预测此20分钟之后的20分钟内的负载数据序列,假设可以预测的时间范围为10分钟,则第四时间段的时长即为10分钟。
在得到第四负载数据序列后,通过比较第四负载数据序列的负载值与低峰阈值,确定该第四时间段是否为负载低峰窗口。具体地,如果第四负载数据序列中的全部或大部分负载值都低于低峰阈值,则确定该第四时间段为负载低峰窗口。
相反地,如果第四时间段不是负载低峰窗口,则可以更新输入的负载数据序列为第四时间段的起始时间之前的20分钟的负载数据序列,进而预测出接下来10分钟的负载数据序列,进行该负载数据序列对应的时间段比如为第五时间段是否为负载低峰窗口的判断,如此类推下去。
假设在第三时间段内都没有发现符合要求即全部或大部分负载值低于低峰阈值的时间窗口,则可以在自回归模型预测出的次优分组所对应的时间段内继续寻找,所谓次优分组是指包含的数据元素的个数排在第二多位置的分组。
综上几个实施例,通过对虚拟机的负载类型进行识别来预判热迁移对虚拟机的影响,从而,对于不易受到热迁移影响的虚拟机直接进行热迁,而对于易受到热迁移影响的虚拟机,则通过对虚拟机进行负载周期性分析,得知虚拟机的负载是否呈现周期性特点,针对呈现周期性特点的情况以及针对呈现非周期性特点的情况,采用不同的方式预测出虚拟机的负载低峰窗口,从而在该负载低峰窗口内进行快速地完成热迁移。基于该方案,可以灵活地对不同负载类型的虚拟机进行差异化的热迁移处理,保证热迁移的高效完成,且避免对影响用户体验。
以下将详细描述本发明的一个或多个实施例的虚拟机热迁移装置。本领域技术人员可以理解,这些虚拟机热迁移装置均可使用市售的硬件组件通过本方案所教导的步骤进行配置来构成。
图8为本发明实施例提供的一种虚拟机热迁移装置的结构示意图,如图8所示,该装置包括:获取模块11、类型确定模块12、方式确定模块13、迁移处理模块14。
获取模块11,用于获取虚拟机的运行状态特征信息。
类型确定模块12,用于根据所述运行状态特征信息确定所述虚拟机的负载类型。
方式确定模块13,用于根据所述负载类型确定所述虚拟机的热迁移方式。
迁移处理模块14,用于采用所述热迁移方式对所述虚拟机进行热迁移。
可选地,所述方式确定模块13具体可以用于:若所述虚拟机的负载类型为热迁移不敏感类型,则确定所述热迁移方式为直接进行热迁移的方式。若所述虚拟机的负载类型为热迁移敏感类型,则确定所述热迁移方式为在所述虚拟机的负载低峰窗口进行热迁移的方式。
可选地,所述获取模块11可以用于:获取所述虚拟机的多种运行状态特征信息。从而,所述类型确定模块12可以用于:将所述多种运行状态特征信息输入到预先生成的决策树模型,以获得所述决策树模型输出的虚拟机的负载类型。
其中,所述多种运行状态特征信息包括所述虚拟机的至少一种负载特征信息或包括如下至少一种:所述虚拟机对应的硬件资源信息、所述虚拟机的生命周期。
可选地,所述装置还可以包括:分析模块、阈值确定模块,预测模块。
所述分析模块,用于采样所述虚拟机的历史负载数据,以获得所述虚拟机的负载数据序列;根据所述负载数据序列对所述虚拟机进行负载周期性分析。
所述阈值确定模块,用于根据所述负载数据序列确定低峰阈值。
所述预测模块,用于根据所述负载周期性分析的结果和所述低峰阈值预测所述虚拟机的负载低峰窗口。
可选地,所述分析模块具体可以用于:对所述负载数据序列进行频域变换,以获得所述负载数据序列对应的频域数据;根据所述频域数据的幅值分布特征确定所述虚拟机的负载是否具有周期性。
可选地,所述分析模块具体可以用于:根据幅值大小从所述频域数据中提取出最大的多个幅值;若所述多个幅值的累加值与所述频域数据中全部幅值的累加值之间的比值大于或的等于预设值,则确定所述虚拟机的负载具有周期性;若所述比值小于所述预设值,则确定所述虚拟机的负载具有非周期性。
可选地,分析模块所获得的负载数据序列为对应于多种历史负载数据的多种负载数据序列,所述分析模块具体可以用于:根据多种负载数据序列各自对应的波动程度从所述多种负载数据序列中选择出至少一种负载数据序列,其中,所述至少一种负载数据序列的波动程度大于未被选择的负载数据序列的波动程度。
其中,若选择出了至少两种负载数据序列,则分析模块具体可以用于:根据所述至少两种负载数据序列各自对应的波动程度,确定所述至少两种负载数据序列各自对应的权值;根据所述权值对所述至少两种负载数据序列进行加权求和处理;对经过所述加权求和处理后的负载数据序列进行频域变换。
此时,所述阈值确定模块用于:根据所述加权求和处理后的负载数据序列确定低峰阈值。
可选地,所述阈值确定模块具体可以用于:根据所述负载数据序列中各负载值的大小,对所述负载数据序列中各负载值进行排序;确定所述各负载值中排在预设百分比位置的负载值为所述低峰阈值。
可选地,所述预测模块可以用于:若所述虚拟机的负载具有周期性,则根据所述虚拟机的周期性特征确定预设时间预测范围内的负载数据序列;在确定出的负载数据序列中寻找连续的低于所述低峰阈值的负载值;若所述连续的低于所述低峰阈值的负载值所对应的时间段的时长大于预设时长,则确定所述时间段为负载低峰窗口。
可选地,所述预测模块可以用于:若所述虚拟机的负载具有非周期性,则获取当前时间之前的第一时间段内所述虚拟机产生的第一负载数据序列;将所述第一负载数据序列输入到预先生成的神经网络模型,以获得所述神经网络模型预测出的第二时间段内的第二负载数据序列;若所述第二负载数据序列的负载值低于所述低峰阈值,则确定所述第二时间段为所述负载低峰窗口。
可选地,所述预测模块可以用于:若所述虚拟机的负载具有非周期性,则生成与所述负载数据序列对应的第一低峰时间差序列,所述第一低峰时间差序列中的数据元素反映了所述负载数据序列中相邻的低于所述低峰阈值的负载值之间的时间差;将所述第一低峰时间差序列输入到预先生成的自回归模型,以获得所述自回归模型预测出的第二低峰时间差序列,所述第二低峰时间差序列对应于预设时间预测范围;根据所述第二低峰时间差序列中各数据元素反映的时间差,按照预设时长对所述各数据元素进行分组;确定包含数据元素最多的分组所对应的第三时间段为所述负载低峰窗口。
可选地,所述预测模块可以用于:若当前时间达到所述第三时间段的起始时间,则获取当前时间之前的预设时长内所述虚拟机产生的第三负载数据序列,所述预设时长小于所述第三时间段的时长;将所述第三负载数据序列输入到预先生成的神经网络模型,以获得所述神经网络模型预测出的第四时间段内的第四负载数据序列,所述第四时间段位于所述第三时间段内,所述第四时间段的时长小于或等于所述预设时长;若所述第四负载数据序列的负载值低于所述低峰阈值,则将所述负载低峰窗口更新为所述第四时间段。
图8所示装置可以执行图2-图7所示实施例的方法,本实施例未详细描述的部分,可参考对图2-图7所示实施例的相关说明。该技术方案的执行过程和技术效果参见图2-图7所示实施例中的描述,在此不再赘述。
在一个可能的设计中,图8所示虚拟机热迁移装置的结构可实现为一电子设备,该电子设备可以是服务器等。如图9所示,该电子设备可以包括:处理器21和存储器22。其中,所述存储器22用于存储支持电子设备执行上述图2-图7所示实施例中提供的虚拟机热迁移方法的程序,所述处理器21被配置为用于执行所述存储器22中存储的程序。
所述程序包括一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器21执行时能够实现如下步骤:
获取虚拟机的运行状态特征信息;
根据所述运行状态特征信息确定所述虚拟机的负载类型;
根据所述负载类型确定所述虚拟机的热迁移方式;
采用所述热迁移方式对所述虚拟机进行热迁移。
可选地,所述处理器21还用于执行前述图2-图7所示实施例中的全部或部分步骤。
其中,所述电子设备的结构中还可以包括通信接口23,用于电子设备与其他设备或通信网络通信。
另外,本发明实施例提供了一种计算机存储介质,用于储存电子设备所用的计算机软件指令,其包含用于执行上述图2-图7所示方法实施例中虚拟机热迁移方法所涉及的程序。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助加必需的通用硬件平台的方式来实现,当然也可以通过硬件和软件结合的方式来实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以计算机产品的形式体现出来,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程虚拟机热迁移设备的处理器以产生一个机器,使得通过计算机或其他可编程虚拟机热迁移设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程虚拟机热迁移设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程虚拟机热迁移设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (18)

1.一种虚拟机热迁移方法,其特征在于,包括:
获取虚拟机的运行状态特征信息;
根据所述运行状态特征信息确定所述虚拟机的负载类型;
根据所述负载类型确定所述虚拟机的热迁移方式;
采用所述热迁移方式对所述虚拟机进行热迁移。
2.根据权利要求1所述的方法,其特征在于,所述根据所述负载类型确定所述虚拟机的热迁移方式,包括:
若所述虚拟机的负载类型为热迁移不敏感类型,则确定所述热迁移方式为直接进行热迁移的方式。
3.根据权利要求1所述的方法,其特征在于,所述根据所述负载类型确定所述虚拟机的热迁移方式,包括:
若所述虚拟机的负载类型为热迁移敏感类型,则确定所述热迁移方式为在所述虚拟机的负载低峰窗口进行热迁移的方式。
4.根据权利要求1所述的方法,其特征在于,所述获取虚拟机的运行状态特征信息,包括:
获取所述虚拟机的多种运行状态特征信息;
所述根据所述运行状态特征信息确定所述虚拟机的负载类型,包括:
将所述多种运行状态特征信息输入到预先生成的决策树模型,以获得所述决策树模型输出的虚拟机的负载类型。
5.根据权利要求4所述的方法,其特征在于,所述多种运行状态特征信息包括所述虚拟机的至少一种负载特征信息或包括如下至少一种:所述虚拟机对应的硬件资源信息、所述虚拟机的生命周期。
6.根据权利要求3所述的方法,其特征在于,所述方法还包括:
采样所述虚拟机的历史负载数据,以获得所述虚拟机的负载数据序列;
根据所述负载数据序列对所述虚拟机进行负载周期性分析;
根据所述负载数据序列确定低峰阈值;
根据所述负载周期性分析的结果和所述低峰阈值预测所述虚拟机的负载低峰窗口。
7.根据权利要求6所述的方法,其特征在于,所述根据所述负载数据序列对所述虚拟机进行负载周期性分析,包括:
对所述负载数据序列进行频域变换,以获得所述负载数据序列对应的频域数据;
根据所述频域数据的幅值分布特征确定所述虚拟机的负载是否具有周期性。
8.根据权利要求7所述的方法,其特征在于,所述根据所述频域数据的幅值分布特征确定所述虚拟机的负载是否具有周期性,包括:
根据幅值大小从所述频域数据中提取出最大的多个幅值;
若所述多个幅值的累加值与所述频域数据中全部幅值的累加值之间的比值大于或的等于预设值,则确定所述虚拟机的负载具有周期性;
若所述比值小于所述预设值,则确定所述虚拟机的负载具有非周期性。
9.根据权利要求7所述的方法,其特征在于,所述负载数据序列为对应于多种历史负载数据的多种负载数据序列,所述方法还包括:
根据多种负载数据序列各自对应的波动程度从所述多种负载数据序列中选择出至少一种负载数据序列,其中,所述至少一种负载数据序列的波动程度大于未被选择的负载数据序列的波动程度。
10.根据权利要求9所述的方法,其特征在于,所述对所述负载数据序列进行频域变换,包括:
若选择出了至少两种负载数据序列,则根据所述至少两种负载数据序列各自对应的波动程度,确定所述至少两种负载数据序列各自对应的权值;
根据所述权值对所述至少两种负载数据序列进行加权求和处理;
对经过所述加权求和处理后的负载数据序列进行频域变换。
11.根据权利要求10所述的方法,其特征在于,所述根据所述负载数据序列确定低峰阈值,包括:
根据所述加权求和处理后的负载数据序列确定低峰阈值。
12.根据权利要求6至11中任一项所述的方法,其特征在于,所述根据所述负载数据序列确定低峰阈值,包括:
根据所述负载数据序列中各负载值的大小,对所述负载数据序列中各负载值进行排序;
确定所述各负载值中排在预设百分比位置的负载值为所述低峰阈值。
13.根据权利要求7至11中任一项所述的方法,其特征在于,所述根据所述负载周期性分析的结果和所述低峰阈值预测所述虚拟机的负载低峰窗口,包括:
若所述虚拟机的负载具有周期性,则根据所述虚拟机的周期性特征确定预设时间预测范围内的负载数据序列;
在确定出的负载数据序列中寻找连续的低于所述低峰阈值的负载值;
若所述连续的低于所述低峰阈值的负载值所对应的时间段的时长大于预设时长,则确定所述时间段为负载低峰窗口。
14.根据权利要求7至11中任一项所述的方法,其特征在于,所述根据所述负载周期性分析的结果预测所述虚拟机的负载低峰窗口,包括:
若所述虚拟机的负载具有非周期性,则获取当前时间之前的第一时间段内所述虚拟机产生的第一负载数据序列;
将所述第一负载数据序列输入到预先生成的神经网络模型,以获得所述神经网络模型预测出的第二时间段内的第二负载数据序列;
若所述第二负载数据序列的负载值低于所述低峰阈值,则确定所述第二时间段为所述负载低峰窗口。
15.根据权利要求7至11中任一项所述的方法,其特征在于,所述根据所述负载周期性分析的结果预测所述虚拟机的负载低峰窗口,包括:
若所述虚拟机的负载具有非周期性,则生成与所述负载数据序列对应的第一低峰时间差序列,所述第一低峰时间差序列中的数据元素反映了所述负载数据序列中相邻的低于所述低峰阈值的负载值之间的时间差;
将所述第一低峰时间差序列输入到预先生成的自回归模型,以获得所述自回归模型预测出的第二低峰时间差序列,所述第二低峰时间差序列对应于预设时间预测范围;
根据所述第二低峰时间差序列中各数据元素反映的时间差,按照预设时长对所述各数据元素进行分组;
确定包含数据元素最多的分组所对应的第三时间段为所述负载低峰窗口。
16.根据权利要求15所述的方法,其特征在于,所述方法还包括:
若当前时间达到所述第三时间段的起始时间,则获取当前时间之前的预设时长内所述虚拟机产生的第三负载数据序列,所述预设时长小于所述第三时间段的时长;
将所述第三负载数据序列输入到预先生成的神经网络模型,以获得所述神经网络模型预测出的第四时间段内的第四负载数据序列,所述第四时间段位于所述第三时间段内,所述第四时间段的时长小于或等于所述预设时长;
若所述第四负载数据序列的负载值低于所述低峰阈值,则将所述负载低峰窗口更新为所述第四时间段。
17.一种虚拟机热迁移装置,其特征在于,包括:
获取模块,用于获取虚拟机的运行状态特征信息;
类型确定模块,用于根据所述运行状态特征信息确定所述虚拟机的负载类型;
方式确定模块,用于根据所述负载类型确定所述虚拟机的热迁移方式;
迁移处理模块,用于采用所述热迁移方式对所述虚拟机进行热迁移。
18.一种电子设备,其特征在于,包括:存储器、处理器;其中,
所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行时实现如权利要求1至16中任一项所述的虚拟机热迁移方法。
CN201811096531.XA 2018-09-19 2018-09-19 虚拟机热迁移方法、装置和设备 Pending CN110928636A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811096531.XA CN110928636A (zh) 2018-09-19 2018-09-19 虚拟机热迁移方法、装置和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811096531.XA CN110928636A (zh) 2018-09-19 2018-09-19 虚拟机热迁移方法、装置和设备

Publications (1)

Publication Number Publication Date
CN110928636A true CN110928636A (zh) 2020-03-27

Family

ID=69855297

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811096531.XA Pending CN110928636A (zh) 2018-09-19 2018-09-19 虚拟机热迁移方法、装置和设备

Country Status (1)

Country Link
CN (1) CN110928636A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112052075A (zh) * 2020-09-30 2020-12-08 中移(杭州)信息技术有限公司 云桌面虚拟机的热迁移方法、服务器及存储介质
CN115827169A (zh) * 2023-02-07 2023-03-21 天翼云科技有限公司 一种虚拟机迁移方法、装置、电子设备和介质
WO2023232053A1 (zh) * 2022-06-01 2023-12-07 阿里巴巴(中国)有限公司 热迁移结果预测方法、热迁移方法、电子设备及存储介质

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8095929B1 (en) * 2007-04-16 2012-01-10 Vmware, Inc. Method and system for determining a cost-benefit metric for potential virtual machine migrations
CN103279392A (zh) * 2013-06-14 2013-09-04 浙江大学 一种云计算环境下虚拟机上运行的负载分类方法
JP2013246532A (ja) * 2012-05-24 2013-12-09 Fujitsu Ltd 情報処理装置、仮想マシン制御方法、仮想マシン制御プログラム
CN103577268A (zh) * 2012-08-07 2014-02-12 复旦大学 基于应用负载的自适应资源供应方法
CN103685542A (zh) * 2013-12-23 2014-03-26 重庆广播电视大学 云虚拟机迁移方法、装置和系统
CN104298339A (zh) * 2014-10-11 2015-01-21 东北大学 一种面向最小能耗的服务器整合方法
CN104461673A (zh) * 2013-09-18 2015-03-25 华为技术有限公司 一种虚拟机迁移判定方法及装置
CN107479944A (zh) * 2017-07-20 2017-12-15 上海交通大学 混合云模式下的虚拟机内存自适应热迁移调度方法及系统
CN107967164A (zh) * 2016-10-19 2018-04-27 阿里巴巴集团控股有限公司 一种虚拟机热迁移的方法及系统
CN108037980A (zh) * 2018-01-02 2018-05-15 腾讯科技(深圳)有限公司 控制执行虚拟机热迁移的方法、装置和可读存储介质

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8095929B1 (en) * 2007-04-16 2012-01-10 Vmware, Inc. Method and system for determining a cost-benefit metric for potential virtual machine migrations
JP2013246532A (ja) * 2012-05-24 2013-12-09 Fujitsu Ltd 情報処理装置、仮想マシン制御方法、仮想マシン制御プログラム
CN103577268A (zh) * 2012-08-07 2014-02-12 复旦大学 基于应用负载的自适应资源供应方法
CN103279392A (zh) * 2013-06-14 2013-09-04 浙江大学 一种云计算环境下虚拟机上运行的负载分类方法
CN104461673A (zh) * 2013-09-18 2015-03-25 华为技术有限公司 一种虚拟机迁移判定方法及装置
CN103685542A (zh) * 2013-12-23 2014-03-26 重庆广播电视大学 云虚拟机迁移方法、装置和系统
CN104298339A (zh) * 2014-10-11 2015-01-21 东北大学 一种面向最小能耗的服务器整合方法
CN107967164A (zh) * 2016-10-19 2018-04-27 阿里巴巴集团控股有限公司 一种虚拟机热迁移的方法及系统
CN107479944A (zh) * 2017-07-20 2017-12-15 上海交通大学 混合云模式下的虚拟机内存自适应热迁移调度方法及系统
CN108037980A (zh) * 2018-01-02 2018-05-15 腾讯科技(深圳)有限公司 控制执行虚拟机热迁移的方法、装置和可读存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
王浩;罗宇;: "基于负载预测的虚拟机动态调度算法研究与实现" *
解志君;: "傅里叶变换和支持向量机的云计算资源分配策略" *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112052075A (zh) * 2020-09-30 2020-12-08 中移(杭州)信息技术有限公司 云桌面虚拟机的热迁移方法、服务器及存储介质
WO2023232053A1 (zh) * 2022-06-01 2023-12-07 阿里巴巴(中国)有限公司 热迁移结果预测方法、热迁移方法、电子设备及存储介质
CN115827169A (zh) * 2023-02-07 2023-03-21 天翼云科技有限公司 一种虚拟机迁移方法、装置、电子设备和介质

Similar Documents

Publication Publication Date Title
EP3716075A1 (en) Utilizing machine learning models to process resource usage data and to determine anomalous usage of resources
US10592666B2 (en) Detecting anomalous entities
WO2017045472A1 (zh) 资源预测方法、系统和容量管理装
US11544560B2 (en) Prefetching and/or computing resource allocation based on predicting classification labels with temporal data
US20160321331A1 (en) Device and method
CN110263869B (zh) 一种Spark任务的时长预测方法及装置
CN108415845A (zh) Ab测试系统指标置信区间的计算方法、装置和服务器
CN107562532B (zh) 一种预测设备集群的硬件资源利用率的方法及装置
US10073886B2 (en) Search results based on a search history
CN110928636A (zh) 虚拟机热迁移方法、装置和设备
CN106598822B (zh) 一种用于容量评估的异常数据检测方法及装置
Horovitz et al. Faastest-machine learning based cost and performance faas optimization
CN103713935A (zh) 一种在线管理Hadoop集群资源的方法和装置
CN113886010A (zh) 容器资源的控制方法、设备及计算机存储介质
US11182386B2 (en) Offloading statistics collection
RU2640637C2 (ru) Способ и сервер проведения контролируемого эксперимента с использованием прогнозирования будущего пользовательского поведения
US11093957B2 (en) Techniques to quantify effectiveness of site-wide actions
US11017874B2 (en) Data and memory reorganization
CN112231299A (zh) 一种特征库动态调整的方法和装置
Li et al. The extreme counts: modeling the performance uncertainty of cloud resources with extreme value theory
US11645283B2 (en) Predictive query processing
CN112801156B (zh) 用于人工智能机器学习的业务大数据采集方法及服务器
CN115309520A (zh) 任务迁移方法、装置、电子设备及存储介质
CN114968028A (zh) 基于用户行为分析动态改变菜单布局的方法、设备及介质
CN113296990B (zh) 时序数据的异常识别方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination