掌桥专利:专业的专利平台
掌桥专利
首页

虚拟机的热迁移方法、装置、设备及存储介质

文献发布时间:2023-06-19 10:57:17


虚拟机的热迁移方法、装置、设备及存储介质

技术领域

本发明涉及虚拟机技术领域,尤其涉及虚拟机的热迁移方法、装置、设备及存储介质。

背景技术

近年来,云计算的发展越来越受到人们的关注,其相关应用也逐渐出现在了人们的生活之中。云服务提供商通过虚拟化技术向用户提供相应服务,有时客户需要在不同的主机上运行在同样的虚拟机,因此虚拟机的热迁移方法应运而生,现如今是通过后拷贝方法、原始的前拷贝方法以及插入睡眠的前拷贝方法对所述虚拟机进行迁移,但是通过后拷贝方法进行迁移时如果出现网络中断或者主机关机等其他故障时,使得迁移中的虚拟机会丢失其运行状态,并且无法恢复到迁移前的状态,而原始的前拷贝方法如果业务程序对内存的更新速率大于网络传输速率时,所述目的主机上的数据与源主机的数据会出现不一致的情况,使得所述热迁移一直处于无法完成的状态,所述插入睡眠的前拷贝方案是在原始的前拷贝方案基础上,监控迁移是否能够完成,如果未能完成,则在业务运行过程中插入睡眠等待时间,但是插入睡眠时间的比例需要在运行中逐步调节,使得所述虚拟机迁移时间过长并且不能保证插入睡眠时间后必然可以完成迁移。

上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。

发明内容

本发明的主要目的在于提供一种虚拟机的热迁移方法、装置、设备及存储介质,旨在解决无法有效提高虚拟机热迁移的效率的技术问题。

为实现上述目的,本发明提供了一种虚拟机的热迁移方法,所述虚拟机的热迁移方法包括以下步骤:

在虚拟机进行热迁移时,获取所述虚拟机的实际内存更新速率和CPU利用率;

获取目标允许内存更新速率;

若所述实际内存更新速率超过所述目标允许内存更新速率,则限制所述CPU利用率以降低所述实际内存更新速率;

基于降低后的实际内存更新速率进行所述虚拟机的热迁移。

可选地,所述降低后的实际内存更新速率不超过所述目标允许内存更新速率。

可选地,所述限制CPU利用率之前,还包括:

获取当前的CPU利用率。

可选地,所述获取目标允许内存更新速率,包括:

获取预设迁移时间、当前可用网络带宽以及虚拟机的内存容量;

根据所述预设迁移时间、所述当前可用网络带宽以及所述虚拟机的内存容量,获得目标允许内存更新速率。

可选地,所述若所述实际内存更新速率超过所述目标允许内存更新速率,则限制CPU利用率,包括:

若所述实际内存更新速率超过所述目标允许内存更新速率,则根据所述实际内存更新速率和所述目标允许内存更新速率,获得CPU节流比例;

根据所述CPU节流比例对所述CPU利用率进行限制以降低所述实际内存更新速率。

可选地,所述根据所述CPU节流比例对所述CPU利用率进行限制,包括:

获取资源隔离机制;

根据所述资源隔离机制对所述CPU利用率按照资源进行划分,获得不同等级的CPU利用率;

对所述不同等级的CPU利用率进行隔离,获得隔离后的CPU利用率;

根据所述CPU节流比例对所述隔离后的CPU利用率进行限制以降低所述实际内存更新速率。

可选地,所述基于降低后的实际内存更新速率进行所述虚拟机的热迁移之前,还包括:

根据所述实际内存更新速率,获得在预设周期内产生的脏页数量;

获取当前可用网络带宽,根据所述当前可用网络带宽,获得在预设周期内产生的内存页数量;

根据所述脏页数量和所述内存页数量,获得目标传输数据;

根据所述目标传输数据,执行基于降低后的实际内存更新速率进行所述虚拟机的热迁移的步骤。

可选地,所述基于降低后的实际内存更新速率进行所述虚拟机的热迁移之后,还包括:

获取当前内存数据和目标主机的内存数据;

判断所述当前内存数据和目标主机的内存数据是否一致;

若所述当前内存数据和目标主机的内存数据一致,则将所述虚拟机的计算切换至目标主机。

此外,为实现上述目的,本发明还提出一种虚拟机的热迁移装置,所述虚拟机的热迁移装置包括:

获取模块,用于在虚拟机进行热迁移时,获取所述虚拟机的实际内存更新速率;

所述获取模块,还用于获取目标允许内存更新速率;

限制模块,用于若所述实际内存更新速率超过所述目标允许内存更新速率,则限制所述CPU利用率以降低所述实际内存更新速率;

热迁移模块,用于基于降低后的实际内存更新速率进行所述虚拟机的热迁移。

此外,为实现上述目的,本发明还提出一种虚拟机的热迁移设备,所述虚拟机的热迁移设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的虚拟机的热迁移程序,所述虚拟机的热迁移程序配置为实现如上文所述的虚拟机的热迁移方法的步骤。

此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有虚拟机的热迁移程序,所述虚拟机的热迁移程序被处理器执行时实现如上文所述的虚拟机的热迁移方法的步骤。

为实现上述目的,本发明提供了一种虚拟机的热迁移方法,所述虚拟机的热迁移方法包括以下步骤:

响应于热迁移操作的指令,获取虚拟机的实际内存更新速率;

根据预设迁移时间、当前可用网络带宽以及所述虚拟机的内存容量,获得目标允许内存更新速率;

若所述实际内存更新速率超过所述目标允许内存更新速率,则降低当前CPU利用率以执行所述热迁移操作并显示降低后的CPU利用率。

可选地,所述降低后的实际内存更新速率不超过所述目标允许内存更新速率。

可选地,根据CPU节流比例对CPU利用率进行限制。

此外,为实现上述目的,本发明还提出一种虚拟机的热迁移装置,所述虚拟机的热迁移装置包括:

获取模块,用于响应于热迁移操作的指令,获取虚拟机的实际内存更新速率;

所述获取模块,还用于根据预设迁移时间、当前可用网络带宽以及所述虚拟机的内存容量,获得目标允许内存更新速率;

降低模块,用于若所述实际内存更新速率超过所述目标允许内存更新速率,则降低当前CPU利用率以执行所述热迁移操作;

显示模块,用于实时显示降低后的CPU利用率。

此外,为实现上述目的,本发明还提出一种虚拟机的热迁移设备,所述虚拟机的热迁移设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的虚拟机的热迁移程序,所述虚拟机的热迁移程序配置为实现如上文所述的虚拟机的热迁移方法的步骤。

此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有虚拟机的热迁移程序,所述虚拟机的热迁移程序被处理器执行时实现如上文所述的虚拟机的热迁移方法的步骤。

本发明提出的虚拟机的热迁移方法,通过在虚拟机进行热迁移时,获取所述虚拟机的实际内存更新速率;获取目标允许内存更新速率;若所述实际内存更新速率超过所述目标允许内存更新速率,则限制所述CPU利用率以降低所述实际内存更新速率;基于降低后的实际内存更新速率进行所述虚拟机的热迁移。本发明对所述CPU利用率进行限制,在保证有效的完成对虚拟机的热迁移的基础上,能够有效缩短热迁移的时间,从而提高热迁移效率。

附图说明

图1是本发明实施例方案涉及的硬件运行环境的虚拟机的热迁移设备的结构示意图;

图2为本发明虚拟机的热迁移方法第一实施例的流程示意图;

图3为本发明虚拟机的热迁移方法第二实施例的流程示意图;

图4为本发明虚拟机的热迁移方法一实施例的整体流程实例图;

图5为本发明虚拟机的热迁移方法第三实施例的流程示意图;

图6为本发明虚拟机的热迁移装置第一实施例的功能模块示意图;

图7为本发明虚拟机的热迁移方法第四实施例的流程示意图;

图8为本发明虚拟机的热迁移装置第四实施例的功能模块示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

参照图1,图1为本发明实施例方案涉及的硬件运行环境的虚拟机的热迁移设备结构示意图。

如图1所示,该虚拟机的热迁移设备可以包括:处理器1001,例如中央处理器(Central Processing Unit,CPU),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(WIreless-FIdelity,WI-FI)接口)。存储器1005可以是高速的随机存取存储器(RandomAccess Memory,RAM)存储器,也可以是稳定的非易失性存储器(Non-Volatile Memory,NVM),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。

本领域技术人员可以理解,图1中示出的结构并不构成对虚拟机的热迁移设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及虚拟机的热迁移程序。

在图1所示的虚拟机的热迁移设备中,网络接口1004主要用于与网络服务器进行数据通信;用户接口1003主要用于与用户进行数据交互;本发明虚拟机的热迁移设备中的处理器1001、存储器1005可以设置在虚拟机的热迁移设备中,所述虚拟机的热迁移设备通过处理器1001调用存储器1005中存储的虚拟机的热迁移程序,并执行本发明实施例提供的虚拟机的热迁移方法。

基于上述硬件结构,提出本发明虚拟机的热迁移方法实施例。

参照图2,图2为本发明虚拟机的热迁移方法第一实施例的流程示意图。

在第一实施例中,所述虚拟机的热迁移方法包括以下步骤:

步骤S10,在虚拟机进行热迁移时,获取所述虚拟机的实际内存更新速率。

需要说明的是,本实施例的执行主体可为虚拟机的热迁移设备,还可为其他可实现相同或相似功能的设备,本实施例对此不作限制,在本实施例中,以虚拟机的热迁移设备为例进行说明。

应当理解的是,所述虚拟机的实际内存更新速率指的是所述业务产生脏页的实际速率,所述脏页指的是在进行数据传输过程中,在前一次数据传输完成之后,业务在源主机上对内存页再次进行修改,导致修改的数据并没有传输至目标主机中,所述没有及时传输的数据即为脏页,所述实际内存更新率也可以称作当前内存更新速率。

可以理解的是,在获取所述虚拟机的实际内存更新速率时,可以获得当前CPU利用率,也可以在确定所述实际内存更新速率超过所述目标允许内存更新速率的情况下再获取,所述CPU利用率指的是在单位时间内,所述源主机的CPU的使用时间,所述CPU利用率越高,表明所述源主机的CPU使用时间越长,所述CPU利用率也可以是运行的程序占用的CPU资源,由于所述虚拟机只有在使用CPU的时候才会对内存进行更新,此时CPU利用率与所述虚拟机中的运行的程序紧密相关,所述CPU是分时间片进行使用的,例如A进程占用CPU使用时间10ms,B进程占用CPU使用时间30ms,所述CPU空闲时间60ms,再进行一次循环,A进程占10ms,B进程占30ms,空闲60ms,若在某一时间内CPU使用时间一直如此,则在所述时间段内的占用率为40%,所述某一时间段可以为1min,也可以为其他时间段,本实施例对此不作限制。

在具体实施中,在虚拟机进行热迁移时,虚拟机的热迁移设备获取所述虚拟机的实际内存更新速率。

步骤S20,获取目标允许内存更新速率。

应当理解的是,所述目标允许内存更新速率指的是在完成虚拟机热迁移的时间内至多能允许的内存更新速率,所述虚拟机热迁移的完成指的是在网络带宽和实际内存更新速率满足预设条件才能完成迁移,所述预设条件为所述实际内存更新速率小于所述目标允许内存更新速率,所述目标允许内存更新速率是通过所述网络带宽与所述虚拟机内存容量以及规定的迁移时间计算获得的。

可以理解的是,所述网络带宽指的是在单位时间内能传输的数据量,所述网络带宽作为衡量网络特征的重要指标,所述网络带宽越大,在单位时间内传输的数据也就越多,所述单位时间指的是1s,也可以是其他时间,本实施例对此不作限制,所述网络带宽也可以是在给定时间等条件下流过特定区域的最大数据位数。

在具体实施中,虚拟机的热迁移设备获取目标允许内存更新速率。

步骤S30,若所述实际内存更新速率超过所述目标允许内存更新速率,则限制CPU利用率以降低所述实际内存更新速率。

应当理解的是,所述限制所述CPU利用率指的是在通过控制CPU节流比例,若所述CPU节流比例为70%,则当前CPU利用率变为所述CPU利用率的70%,在对CPU利用率限制的前提是所述实际内存更新速率超过目标允许内存更新速率,在所述前提下需要对业务的内存更新速率进行限制调整,采用CPU节流的方式限制业务的内存更新速率,所述CPU节流指的是限制所述虚拟机的CPU利用率,所述CPU节流比例是通过所述实际内存更新速率、目标允许内存更新速率计算获得的,若所述CPU利用率被限制,则此时实际内存更新率会降低,并且降低后的实际内存更新率不超过所述目标内存更新率。

在具体实施中,若所述实际内存更新速率超过所述目标允许内存更新速率,虚拟机的热迁移设备则限制所述CPU利用率以降低所述实际内存更新速率。

步骤S40,基于降低后的实际内存更新速率进行所述虚拟机的热迁移。

应当理解的是,所述基于降低后的实际内存更新速率进行所述虚拟机的热迁移指的是若实际内存更新速率降低,则所述实际内存更新速率满足热迁移的条件,此时才会进行虚拟机的热迁移,所述热迁移指的是将所述虚拟机从源主机迁移至目标主机,所述热迁移还可以称为动态迁移、实时迁移,即虚拟机保存/恢复,通常是将整个虚拟机的运行状态完整保存下来,同时可以快速的热迁移到目标主机,在热迁移完成后,所述虚拟机仍旧平滑运行,用户不会察觉到迁移过程。

可以理解的是,所述热迁移完成指的是指的是目标主机上的内存数据与源主机上的内存数据完全一致时,表明所述虚拟机的热迁移已完成,在热迁移完成后,将所述虚拟机的计算从源主机切换至目标主机,此时热迁移动作完成。

在具体实施中,虚拟机的热迁移设备运行所述目标参数信息。

本实施例通过在虚拟机进行热迁移时,获取所述虚拟机的实际内存更新速率;获取目标允许内存更新速率;若所述实际内存更新速率超过所述目标允许内存更新速率,则限制所述CPU利用率以降低所述实际内存更新速率;基于降低后的实际内存更新速率进行所述虚拟机的热迁移。本发明对所述CPU利用率进行限制,以实现对虚拟机的热迁移,在保证有效的完成对虚拟机的热迁移的基础上,能够有效缩短热迁移的时间,从而提高热迁移效率。

在一实施例中,如图3所述,基于第一实施例提出本发明虚拟机的热迁移方法第二实施例,所述步骤S20,包括:

步骤S201,获取预设迁移时间、当前可用网络带宽以及虚拟机的内存容量。

应该理解的是,所述当前可用网络带宽指的是通过传输速率和编码方案获得的,例如物理层通信协议支持5.0GT/S,即每一条局域网仿真上支持每秒钟内传输5G个Bit;但这并不是表明物理层通信协议的每一条局域网仿真支持5Gbps的速率,因为物理层通信协议中使用的是8b/10b的编码方案,即每传输8个Bit,需要发送10个Bit,所述传输速率指的是每秒传输量GT/S,而不是每秒位数Gbps,因为传输量包括不提供额外吞吐量的开销位,所述编码方案指的是不同的编码方式。

可以理解的是,所述虚拟机的内存容量指的是所述虚拟机的存储容量,是所述虚拟机的关键性参数,所述虚拟机的内存容量以MB作为单位,虚拟机的内存容量大小取决于虚拟机内部的虚拟存储器,所述虚拟存储器是由硬件和操作系统自动实现存储信息调度和管理的。

在具体实施中,虚拟机的热迁移设备获取预设迁移时间、当前可用网络带宽以及虚拟机的内存容量。

步骤S202,根据所述预设迁移时间、所述当前可用网络带宽以及所述虚拟机的内存容量,获得目标允许内存更新速率。

可以理解的是,所述预设迁移时间指的是设定迁移的时间,例如设定所述虚拟机迁移时间为1min,所述预设迁移时间还用于触发所述虚拟机进行热迁移动作,通过所述预设迁移时间、所述网络总带宽以及所述虚拟机的内存容量,可以计算获得目标允许内存更新速率,具体计算方式是目标允许内存更新速率=当前可用网络带宽-虚拟机内存容量/给定迁移时间。

在具体实施中,虚拟机的热迁移设备根据所述预设迁移时间、所述当前可用网络带宽以及所述虚拟机的内存容量,获得目标允许内存更新速率。

参照图4,所述图4为本发明虚拟机的热迁移方法一实施例的整体流程实例图,具体流程是在设定迁移时间限制,触发所述虚拟机的热迁移动作,开始进行虚拟机的热迁移,所述热迁移开始后,检测所述虚拟机资源消耗信息,所述检测的信息包括:可用网络带宽、实际内存更新速率以及CPU利用率,根据网络带宽、虚拟机的内存容以及所述设定迁移时间,求解出目标允许内存更新速率,将所述目标允许内存更新速率与所述实际内存更新速率进行比较,若所述实际内存更新速率小于所述目标允许内存更新速率,则通过CPU节流的调整所述虚拟机内存更新速率,使得数据传输时间足够低短,以至于在此期间降低脏页产生的数量,并将所述脏页数据进行传输至目标主机上,当源主机与所述目标主机上的内存数据完全一致时,将所述虚拟机的计算从源主机切换至目的主机,所述虚拟机的热迁移完成。

本实施例中通过获取预设迁移时间、当前可用网络带宽以及虚拟机的内存容量;根据所述预设迁移时间、所述当前可用网络带宽以及所述虚拟机的内存容量,获得目标允许内存更新速率。本实施例根据所述网络总带宽、预设迁移时间以及所述预设迁移时间,获得目标允许内存更新速率,将所述目标允许内存更新速率与所述实际内存更新速率进行比较,若所述目标允许内存更新速率小于所述实际内存更新速率,则对所述实际内存更新速率进行调整,以保证所述虚拟机的正常运行,从而提高了数据传输效率。

在一实施例中,如图5所述,基于第一实施例提出本发明虚拟机的热迁移方法第三实施例,所述步骤S30,包括:

步骤S301,若所述实际内存更新速率超过所述目标允许内存更新速率,则根据所述实际内存更新速率和所述目标允许内存更新速率,获得CPU节流比例。

进一步的,为了提高所述虚拟机的热迁移的效率,在根据所述CPU节流比例对所述CPU利用率进行限制之前,还需要获取在预设周期内CPU运行时间和虚拟机使用时间;根据所述CPU运行时间和所述虚拟机使用时间,获得CPU利用率。

可以理解的是,所述预设周期内CPU的运行时间指的是整个CPU的运行时间,所述虚拟机的使用时间指的是虚拟机中程序在CPU上运行的时间,通过整个CPU的运行时间和虚拟机中程序在CPU上运行的时间,计算得到所述CPU的利用率,例如所述整个CPU的运行时间为30ms,所述虚拟机中程序在CPU上运行的时间为10ms,所述CPU利用率即为33.3%。

应当理解的是,所述CPU节流比例是通过所述实际内存更新速率与所述目标允许内存更新速率计算获得,所述具体计算公式:节流比例=(当前内存更新速率-最大允许内存更新速率*0.5)/当前内存更新速率,通过所述计算公式可以将所述虚拟机的实际内存更新速率将至所述目标允许内存更新速率的二分之一,在使用CPU节流比例对CPU利用率进行限制后,会导致所述虚拟机业务性能下降,因此,此时CPU节流比例需要严格控制,不仅可以使所述虚拟机快速完成热迁移,而且还可以减少所述虚拟机性能受影响的时间。

在具体实施中,若所述实际内存更新速率超过所述目标允许内存更新速率,则虚拟机的热迁移设备根据所述实际内存更新速率和所述目标允许内存更新速率,获得CPU节流比例。

步骤S302,根据所述CPU节流比例对CPU利用率进行限制以降低所述实际内存更新速率。

进一步的,为了提高所述虚拟机的热迁移的效率,还需要获取资源隔离机制;根据所述资源隔离机制对所述CPU利用率按照资源进行划分,获得不同等级的CPU利用率;对所述不同等级的CPU利用率进行隔离,获得隔离后的CPU利用率;根据所述CPU节流比例对隔离后的CPU利用率进行限制。

可以理解的是,所述根据所述CPU节流对所述CPU利用率进行限制指的是根据CPU节流比例对所述CPU利用率进行限制,不同的CPU节流比例对所述CPU利用率限制大小差异较大。

应当理解的是,所述资源隔离机制指的是控制一个进程群组的资源,本实施例以CGroup为例,所述CGroup资源隔离机制可以以控制组为单位,对其使用的操作系统的资源做更精细的控制,例如对CPU利用率设置了限制规则,如只能使用CPU的20%,在根据所述目标允许内存更新速率对所述实际内存更新速率进行调整时,所述CPU利用率只能使用20%。

在具体实施中,虚拟机的热迁移设备根据所述CPU节流比例对所述CPU利用率进行限制以降低所述实际内存更新速率。

本实施例通过若所述实际内存更新速率超过所述目标允许内存更新速率,则根据所述实际内存更新速率和所述目标允许内存更新速率,获得CPU节流比例;获取在预设周期内CPU运行时间和虚拟机使用时间;根据所述CPU运行时间和所述虚拟机使用时间,获得CPU利用率;获取资源隔离机制;根据所述资源隔离机制对所述CPU利用率按照资源进行划分,获得不同等级的CPU利用率;对所述不同等级的CPU利用率进行隔离,获得隔离后的CPU利用率;根据所述CPU节流比例对隔离后的CPU利用率进行限制。本实施例根据所述资源隔离机制,对所述CPU利用率进行较为精准控制,从而减少了对所述虚拟机性能的影响,并在保证有效的完成对虚拟机的热迁移的基础上,提高了所述虚拟机的热迁移的效率。

此外,本发明实施例还提出一种存储介质,所述存储介质上存储有虚拟机的热迁移程序,所述虚拟机的热迁移程序被处理器执行时实现如上文所述的虚拟机的热迁移方法的步骤。

由于本存储介质采用了上述所有实施例的全部技术方案,因此至少具有上述实施例的技术方案所带来的所有有益效果,在此不再一一赘述。

此外,参照图6,本发明实施例还提出一种虚拟机的热迁移装置,所述虚拟机的热迁移装置包括:

获取模块10,用于在虚拟机进行热迁移时,获取所述虚拟机的实际内存更新速率。

应当理解的是,所述虚拟机的实际内存更新速率指的是所述业务产生脏页的实际速率,所述脏页指的是在进行数据传输过程中,前一次数据在传输完成之后,业务在源主机上对内存页再次进行修改,导致修改的数据并没有传输至目标主机中,所述没有及时传输的数据即为脏页,所述实际内存更新率也可以称作当前内存更新速率。

在获取所述虚拟机的实际内存更新速率时,可以获得当前CPU利用率,也可以在确定所述实际内存更新速率超过所述目标允许内存更新速率的情况下再获取,可以理解的是,所述CPU利用率指的是在单位时间内,所述源主机的CPU的使用时间,所述CPU利用率越高,表明所述源主机的CPU使用时间越长,所述CPU利用率也可以是运行的程序占用的CPU资源,由于所述虚拟机只有在使用CPU的时候才会对内存进行更新,此时CPU利用率与所述虚拟机中的运行的程序紧密相关,所述CPU是分时间片进行使用的,例如A进程占用CPU使用时间10ms,B进程占用CPU使用时间30ms,所述CPU空闲时间60ms,再进行一次循环,A进程占10ms,B进程占30ms,空闲60ms,若在某一时间内CPU使用时间一直如此,则在所述时间段内的占用率为40%,所述某一时间段可以为1min,也可以为其他时间段,本实施例对此不作限制。

在具体实施中,在虚拟机进行热迁移时,虚拟机的热迁移设备获取所述虚拟机的实际内存更新速率。

所述获取模块10,还用于获取目标允许内存更新速率。

应当理解的是,所述目标允许内存更新速率指的是在完成虚拟机热迁移的时间内至多能允许的内存更新速率,所述虚拟机热迁移的完成指的是在网络带宽和实际内存更新速率满足预设条件才能完成迁移,所述预设条件所述实际内存更新速率小于所述目标允许内存更新速率,所述目标允许内存更新速率是通过所述网络带宽与所述虚拟机内存容量以及规定的迁移时间计算获得的。

可以理解的是,所述网络带宽指的是在单位时间内能传输的数据量,所述网络带宽作为衡量网络特征的重要指标,所述网络带宽越大,在单位时间内传输的数据也就越多,所述单位时间指的是1s,也可以是其他时间,本实施例对此不作限制,所述网络带宽也可以是在给定时间等条件下流过特定区域的最大数据位数。

在具体实施中,虚拟机的热迁移设备获取目标允许内存更新速率。

限制模块20,用于若所述实际内存更新速率超过所述目标允许内存更新速率,则限制CPU利用率以降低所述实际内存更新速率。

应当理解的是,所述限制所述CPU利用率指的是在通过控制CPU节流比例,若所述CPU节流比例为70%,则当前CPU利用率变为所述CPU利用率的70%,在对CPU利用率限制的前提是所述实际内存更新速率超过目标允许内存更新速率,在所述前提下需要对业务的内存更新速率进行限制调整,采用CPU节流的方式限制业务的内存更新速率,所述CPU节流指的是限制所述虚拟机的CPU利用率,所述CPU节流比例是通过所述实际内存更新速率、目标允许内存更新速率计算获得的,若所述CPU利用率被限制,则此时实际内存更新率会降低,并且降低后的实际内存更新率不超过所述目标内存更新率。

在具体实施中,若所述实际内存更新速率超过所述目标允许内存更新速率,虚拟机的热迁移设备则限制所述CPU利用率以降低所述实际内存更新速率。

热迁移模块30,用于基于降低后的实际内存更新速率进行所述虚拟机的热迁移。

应当理解的是,所述基于降低后的实际内存更新速率进行所述虚拟机的热迁移指的是若实际内存更新速率降低,则所述实际内存更新速率满足热迁移的条件,此时才会进行虚拟机的热迁移,所述热迁移指的是将所述虚拟机从源主机迁移至目标主机,所述热迁移还可以称为动态迁移、实时迁移,即虚拟机保存/恢复,通常是将整个虚拟机的运行状态完整保存下来,同时可以快速的热迁移到目标主机,在热迁移完成后,所述虚拟机仍旧平滑运行,用户不会察觉到任何差异。

可以理解的是,所述热迁移完成指的是指的是目标主机上的内存数据与源主机上的内存数据完全一致时,表明所述虚拟机的热迁移已完成,在热迁移完成后,将所述虚拟机的计算从源主机切换至目标主机,此时热迁移动作完成。

在具体实施中,虚拟机的热迁移设备基于降低后的实际内存更新速率进行所述虚拟机的热迁移。

本实施例通过在虚拟机进行热迁移时,获取所述虚拟机的实际内存更新速率;获取目标允许内存更新速率;若所述实际内存更新速率超过所述目标允许内存更新速率,则限制所述CPU利用率,获得限制后的CPU利用率;根据所述限制后的CPU利用率进行虚拟机的热迁移。本发明对所述CPU利用率进行限制,以实现对虚拟机的热迁移,在保证有效的完成对虚拟机的热迁移的基础上,能够有效缩短热迁移的时间,从而提高热迁移效率。

需要说明的是,以上所描述的工作流程仅仅是示意性的,并不对本发明的保护范围构成限定,在实际应用中,本领域的技术人员可以根据实际的需要选择其中的部分或者全部来实现本实施例方案的目的,此处不做限制。

另外,未在本实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的虚拟机的热迁移方法,此处不再赘述。

在一实施例中,所述获取模块10,还用于获取当前的CPU利用率。

在一实施例中,所述获取模块10,还用于获取预设迁移时间、当前可用网络带宽以及虚拟机的内存容量;根据所述预设迁移时间、所述当前可用网络带宽以及所述虚拟机的内存容量,获得目标允许内存更新速率。

在一实施例中,所述限制模块20,还用于若所述实际内存更新速率超过所述目标允许内存更新速率,则根据所述实际内存更新速率和所述目标允许内存更新速率,获得CPU节流比例;根据所述CPU节流比例对所述CPU利用率进行限制以降低所述实际内存更新速率。

在一实施例中,所述限制模块20,还用于获取资源隔离机制;根据所述资源隔离机制对所述CPU利用率按照资源进行划分,获得不同等级的CPU利用率;对所述不同等级的CPU利用率进行隔离,获得隔离后的CPU利用率;根据所述CPU节流比例对所述隔离后的CPU利用率进行限制以降低所述实际内存更新速率。

在一实施例中,所述限制模块20,还用于根据所述实际内存更新速率,获得在预设周期内产生的脏页数量;获取当前可用网络带宽,根据所述当前可用网络带宽,获得在预设周期内产生的内存页数量;根据所述脏页数量和所述内存页数量,获得目标传输数据;根据所述目标传输数据,执行所述基于降低后的实际内存更新速率进行所述虚拟机的热迁移的步骤。

在一实施例中,所述限制模块20,还用于获取当前内存数据和目标主机的内存数据;判断所述当前内存数据和目标主机的内存数据是否一致;若所述当前内存数据和目标主机的内存数据一致,则将所述虚拟机的计算切换至目标主机。

本发明所述虚拟机的热迁移装置的其他实施例或具有实现方法可参照上述各方法实施例,此处不在赘余。

参照图7,图7为本发明虚拟机的热迁移方法第四实施例的流程示意图。

在第四实施例中,所述虚拟机的热迁移方法包括以下步骤:

步骤S50,响应于热迁移操作的指令,获取虚拟机的实际内存更新速率。

应当理解的是,所述热迁移的指令是用于触发所述虚拟机进行热迁移的操作,在响应于热迁移操作指令后,虚拟机的热迁移设备实时获取所述虚拟机的实际内存更新速率,所述实际内存更新率也可以称作当前内存更新速率,所述实际内存更新速率为业务产生脏页的实际速率。

在具体实施中,虚拟机的热迁移设备响应于热迁移操作的指令,获取虚拟机的实际内存更新速率。

步骤S60,根据预设迁移时间、当前可用网络带宽以及所述虚拟机的内存容量,获得目标允许内存更新速率。

应当理解的是,所述预设迁移时间是在所述虚拟机进行热迁移时进行设定的,所述当前可用网络带宽指的是通过传输速率和编码方案获得的网络带宽,所述虚拟机的内存容量指的是所述虚拟机的存储容量,是所述虚拟机的关键性参数,所述虚拟机的内存容量以MB作为单位,虚拟机的内存容量大小取决于虚拟机内部的虚拟存储器,在获得所述预设迁移时间、当前可用网络带宽以及所述虚拟机的内存容量,结合目标允许内存更新速率的计算公式:目标允许内存更新速率=当前可用网络带宽-虚拟机内存容量/给定迁移时间,从而可以获得目标允许内存更新速率。

在具体实施中,虚拟机的热迁移设备根据预设迁移时间、当前可用网络带宽以及所述虚拟机的内存容量,获得目标允许内存更新速率。

步骤S70,若所述实际内存更新速率超过所述目标允许内存更新速率,则降低当前的CPU利用率并实时显示降低后的CPU利用率,以执行所述热迁移操作。

应当理解的是,所述降低当前CPU利用率指的是若所述实际内存更新速率超过所述目标允许内存更新速率,例如所述当前CPU利用率为A,此时实际内存更新速率是B,计算获得的目标允许内存更新速率为C,而B大于C,则需要降低当前CPU利用率,降低后的CPU利用率为A’。

可以理解的是,若所述实际内存更新速率超过所述目标允许内存更新速率,则降低当前CPU利用率,以使降低后的实际内存更新速率不超过所述目标允许内存更新速率,而降低当前CPU利用率可以通过CPU节流比例对当前CPU利用率进行限制,所述CPU节流比例指的是通过所述实际内存更新速率与所述目标允许内存更新速率计算获得,所述具体计算公式:节流比例=(当前内存更新速率-最大允许内存更新速率*0.5)/当前内存更新速率。

应当理解的是,例如降低后的CPU利用率为A’,在所述虚拟机进行热迁移操作后,将降低后的CPU利用率A’在显示模块中进行显示。

在具体实施中,若所述实际内存更新速率超过所述目标允许内存更新速率,虚拟机的热迁移设备则降低当前CPU利用率并实时显示降低后的CPU利用率,以执行所述热迁移操作。

本发明提出的虚拟机的热迁移方法,通过响应于热迁移操作的指令,获取虚拟机的实际内存更新速率;根据预设迁移时间、当前可用网络带宽以及所述虚拟机的内存容量,获得目标允许内存更新速率;若所述实际内存更新速率超过所述目标允许内存更新速率,则降低当前CPU利用率并实时显示降低后的CPU利用率,以执行所述热迁移操作。本发明对所述CPU利用率进行降低,并实时显示降低后的CPU利用率,在保证有效的完成对虚拟机的热迁移的基础上,能够有效缩短热迁移的时间,从而提高热迁移效率。

此外,本发明实施例还提出一种存储介质,所述存储介质上存储有虚拟机的热迁移程序,所述虚拟机的热迁移程序被处理器执行时实现如上文所述的虚拟机的热迁移方法的步骤。

由于本存储介质采用了上述所有实施例的全部技术方案,因此至少具有上述实施例的技术方案所带来的所有有益效果,在此不再一一赘述。

此外,参照图8,本发明实施例还提出一种虚拟机的热迁移装置,所述虚拟机的热迁移装置包括:

获取模块10',用于响应于热迁移操作的指令,获取虚拟机的实际内存更新速率。

应当理解的是,所述热迁移的指令是用于触发所述虚拟机进行热迁移的操作,在响应于热迁移操作指令后,虚拟机的热迁移设备实时获取所述虚拟机的实际内存更新速率,所述实际内存更新率也可以称作当前内存更新速率,所述实际内存更新速率为业务产生脏页的实际速率。

在具体实施中,虚拟机的热迁移设备响应于热迁移操作的指令,获取虚拟机的实际内存更新速率。

所述获取模块10',还用于根据预设迁移时间、当前可用网络带宽以及所述虚拟机的内存容量,获得目标允许内存更新速率。

应当理解的是,所述预设迁移时间是在所述虚拟机进行热迁移时进行设定的,所述当前可用网络带宽指的是通过传输速率和编码方案获得的网络带宽,所述虚拟机的内存容量指的是所述虚拟机的存储容量,是所述虚拟机的关键性参数,所述虚拟机的内存容量以MB作为单位,虚拟机的内存容量大小取决于虚拟机内部的虚拟存储器,在获得所述预设迁移时间、当前可用网络带宽以及所述虚拟机的内存容量,结合目标允许内存更新速率的计算公式:目标允许内存更新速率=当前可用网络带宽-虚拟机内存容量/给定迁移时间,从而可以获得目标允许内存更新速率。

在具体实施例中,虚拟机的热迁移设备根据预设迁移时间、当前可用网络带宽以及所述虚拟机的内存容量,获得目标允许内存更新速率。

降低模块20',用于若所述实际内存更新速率超过所述目标允许内存更新速率,则降低当前CPU利用率以执行所述热迁移操作并显示降低后的CPU利用率。

应当理解的是,所述降低当前CPU利用率指的是若所述实际内存更新速率超过所述目标允许内存更新速率,例如所述当前CPU利用率为A,此时实际内存更新速率是B,计算获得的目标允许内存更新速率为C,而B大于C,则需要降低当前CPU利用率,降低后的CPU利用率为A’。

可以理解的是,若所述实际内存更新速率超过所述目标允许内存更新速率,则降低当前CPU利用率,以使降低后的实际内存更新速率不超过所述目标允许内存更新速率,而降低当前CPU利用率可以通过CPU节流比例对当前CPU利用率进行限制,所述CPU节流比例指的是通过所述实际内存更新速率与所述目标允许内存更新速率计算获得,所述具体计算公式:节流比例=(当前内存更新速率-最大允许内存更新速率*0.5)/当前内存更新速率。

在具体实施例中,若所述实际内存更新速率超过所述目标允许内存更新速率,虚拟机的热迁移设备则降低当前CPU利用率以执行所述热迁移操作并显示降低后的CPU利用率。

显示模块30',用于实时显示降低后的CPU利用率。

应当理解的是,例如降低后的CPU利用率为A’,并在降低CPU利用率的过程中实时显示降低后的CPU利用率。

在具体实施中,虚拟机的热迁移设备实时显示降低后的CPU利用率。

本发明提出的虚拟机的热迁移方法,通过响应于热迁移操作的指令,获取虚拟机的实际内存更新速率;根据预设迁移时间、当前可用网络带宽以及所述虚拟机的内存容量,获得目标允许内存更新速率;若所述实际内存更新速率超过所述目标允许内存更新速率,则降低当前CPU利用率并实时显示降低后的CPU利用率,以执行所述热迁移操作。本发明对所述CPU利用率进行降低,并实时显示降低后的CPU利用率,在保证有效的完成对虚拟机的热迁移的基础上,能够有效缩短热迁移的时间,从而提高热迁移效率。

需要说明的是,以上所描述的工作流程仅仅是示意性的,并不对本发明的保护范围构成限定,在实际应用中,本领域的技术人员可以根据实际的需要选择其中的部分或者全部来实现本实施例方案的目的,此处不做限制。

另外,未在本实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的虚拟机的热迁移方法,此处不再赘述。

在一实施例中,所述降低模块20',还用于降低后的实际内存更新速率不超过所述目标允许内存更新速率。

在一实施例中,所述降低模块20',还用于获取当前的CPU利用率;根据所述实际内存更新速率和所述目标允许内存更新速率,获得CPU节流比例;根据所述CPU节流比例对所述CPU利用率进行降低。

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

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

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

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

相关技术
  • 一种虚拟机热迁移的方法、装置、设备和存储介质
  • 虚拟机热迁移方法、装置、电子设备及存储介质
技术分类

06120112740974