一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种热迁移耗时的预估方法、装置及计算机设备与流程

2022-12-19 23:17:01 来源:中国专利 TAG:


1.本技术涉及虚拟机技术领域,具体涉及一种热迁移耗时的预估方法、装置及计算机设备。


背景技术:

2.热迁移(live migration),是指将整个虚拟机的运行状态完整保存下来,同时可以快速恢复到原有硬件平台甚至是不同硬件平台上。在云计算环境中,可以借助虚拟机的热迁移技术保证客户业务连续性,也可以提高云计算数据中心硬件资源的利用率,实现负载均衡。
3.由于热迁移过程中不能断开来自客户的链接,对于迁移中的虚拟机,客户业务仍在正常运行,所以脏数据会持续产生。当负载较高,脏数据产生过快时,会导致虚拟机的迁移耗时增长且性能受限,给客户体验也造成了不良影响。因此,为了更好进行迁移管理和运维,准确预估迁移耗时十分重要。目前,现有的预估方法大都是基于普通热迁移提出的,而普通热迁移的参数假设都过于理想化,与现在主流的auto-converge热迁移不符,例如,现有的预估方法往往假设脏页速率恒定,而在主流的auto-converge热迁移中,为了加速迁移收敛,虚拟机会被限速,从而脏页速率是逐渐减小的。
4.因此,现有的预估方法不适用于auto-converge热迁移耗时预估,对高负载虚拟机的迁移能力非常有限,导致预估精准度较差。


技术实现要素:

5.本技术提供了一种热迁移耗时的预估方法、装置及计算机设备,解决了现有的预估方法不适用于auto-converge热迁移耗时预估,对高负载虚拟机的迁移能力非常有限,导致预估精准度较差的技术问题。
6.一方面,提供了一种热迁移耗时的预估方法,所述方法包括:
7.获取目标虚拟机的初始脏页速率,并获取所述目标虚拟机的迁移带宽;
8.根据所述初始脏页速率及所述迁移带宽,对所述目标虚拟机的初始脏页内存进行第一阶段虚拟迭代,直至所述目标虚拟机的脏页速率小于指定阈值;所述目标虚拟机的脏页速率与所述第一阶段虚拟迭代的虚拟迭代次数成反相关;
9.根据所述第一阶段虚拟迭代中最后一次虚拟迭代过程的脏页速率,确定稳定脏页速率;
10.根据所述稳定脏页速率与所述迁移带宽,对所述目标虚拟机在第一阶段虚拟迭代后的脏页内存进行第二阶段虚拟迭代,直至所述目标虚拟机的脏页内存小于脏页阈值;
11.将所述第一阶段虚拟迭代的第一虚拟迭代时间,与所述第二阶段虚拟迭代的第二虚拟迭代时间进行求和,确定所述目标虚拟机的预计虚拟迁移总耗时。
12.又一方面,提供了一种热迁移耗时的预估装置,所述装置包括:
13.速率及带宽获取模块,用于获取目标虚拟机的初始脏页速率,并获取所述目标虚
拟机的迁移带宽;
14.第一阶段虚拟迭代模块,用于根据所述初始脏页速率及所述迁移带宽,对所述目标虚拟机的初始脏页内存进行第一阶段虚拟迭代,直至所述目标虚拟机的脏页速率小于指定阈值;所述目标虚拟机的脏页速率与所述第一阶段虚拟迭代的虚拟迭代次数成反相关;
15.稳定脏页速率确定模块,用于根据所述第一阶段虚拟迭代中最后一次虚拟迭代过程的脏页速率,确定稳定脏页速率;
16.第二阶段虚拟迭代模块,用于根据所述稳定脏页速率与所述迁移带宽,对所述目标虚拟机在第一阶段虚拟迭代后的脏页内存进行第二阶段虚拟迭代,直至所述目标虚拟机的脏页内存小于脏页阈值;
17.热迁移总耗时预计模块,用于将所述第一阶段虚拟迭代的第一虚拟迭代时间,与所述第二阶段虚拟迭代的第二虚拟迭代时间进行求和,确定所述目标虚拟机的预计虚拟迁移总耗时。
18.在一种可能的实施方式中,所述指定阈值为0.5倍的迁移带宽。
19.在一种可能的实施方式中,所述初始脏页内存为所述目标虚拟机的实际使用物理内存。
20.在一种可能的实施方式中,所述速率及带宽获取模块,还用于:
21.获取所述目标虚拟机的历史迁移信息;
22.基于所述历史迁移信息,提取历史迁移带宽,并将所述历史迁移带宽确定为所述目标虚拟机的迁移带宽。
23.在一种可能的实施方式中,所述速率及带宽获取模块,还用于:
24.当所述目标虚拟机没有对应的历史迁移信息时,实时统计所述目标虚拟机所在计算节点到迁移目标节点的可用带宽,并将所述可用带宽确定为所述目标虚拟机的迁移带宽。
25.在一种可能的实施方式中,所述第一阶段虚拟迭代模块,还用于:
26.根据第n脏页总量以及所述迁移带宽,确定第n虚拟迭代时间;
27.根据第n脏页速率,以及所述第n虚拟迭代时间,生成第n 1脏页总量;
28.根据所述第n脏页速率,确定所述第n 1脏页速率;
29.根据所述迁移带宽以及所述第n 1脏页总量,确定第n 1虚拟迭代时间。
30.在一种可能的实施方式中,所述第二阶段虚拟迭代模块,还用于:
31.根据所述稳定脏页速率、以及第m稳定迭代时间,确定第m 1稳定脏页总量;
32.根据所述第m 1稳定脏页总量以及所述迁移带宽,确定第m 1稳定虚拟迭代时间。
33.在一种可能的实施方式中,所述热迁移总耗时预计模块,还用于:
34.获取所述第一阶段虚拟迭代的第一虚拟迭代次数,以及所述第二阶段虚拟迭代的第二虚拟迭代次数;
35.当所述第一虚拟迭代次数与所述第二虚拟迭代次数的和小于目标虚拟迭代次数时,判定所述目标虚拟机的迁移任务收敛,并将所述第一虚拟迭代时间及第二虚拟迭代时间之和,确定为所述目标虚拟机的预计虚拟迁移总耗时。
36.再一方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现如上所述
的一种热迁移耗时的预估方法。
37.又一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令,所述至少一条指令由处理器加载并执行以实现如上所述的一种热迁移耗时的预估方法。
38.本技术提供的技术方案可以包括以下有益效果:
39.本技术先获取目标虚拟机的初始脏页速率及迁移带宽,并根据该初始脏页速率及迁移带宽,对该目标虚拟机的初始脏页内存进行第一阶段虚拟迭代,直至该目标虚拟机的脏页速率小于指定阈值;再根据该第一阶段虚拟迭代中最后一次虚拟迭代过程的脏页速率,确定稳定脏页速率;进而根据该稳定脏页速率与该迁移带宽,对该目标虚拟机在第一阶段虚拟迭代后的脏页内存进行第二阶段虚拟迭代,直至该目标虚拟机的脏页内存小于脏页阈值后;将该第一阶段虚拟迭代的第一虚拟迭代时间,与该第二阶段虚拟迭代的第二虚拟迭代时间进行求和,以确定该目标虚拟机的预计虚拟迁移总耗时。
40.在上述方案中,将目标虚拟机的迁移过程拆分为第一虚拟迁移及第二阶段虚拟迭代,在第一虚拟迁移的过程中,该目标虚拟机的脏页速率与该第一阶段虚拟迭代的虚拟迭代次数成反相关,即该目标虚拟机的脏页速率基本呈比例降低,处于降速阶段;而在第二虚拟迁移的过程中,该目标虚拟机的脏页速率基本保持不变,处于稳定阶段,最终退化为普通迁移,本技术分阶段依次计算该目标虚拟机的迭代次数和迁移耗时,进而实现对该目标虚拟机迁移耗时的准确预估,提高预估精准度。
附图说明
41.为了更清楚地说明本技术具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本技术的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
42.图1是根据背景技术示出的虚拟机内存迁移迭代示意图。
43.图2是根据一示例性实施例示出auto-converge热迁移脏页速率变化示意图。
44.图3是根据一示例性实施例示出的一种热迁移耗时的预估方法的方法流程图。
45.图4是根据一示例性实施例示出的一种热迁移耗时的预估方法的方法流程图。
46.图5是根据一示例性实施例示出一种auto-converge热迁移耗时预估流程图。
47.图6是根据一示例性实施例示出一种热迁移耗时的预估装置的结构方框图。
48.图7示出了本技术一示例性实施例示出的计算机设备的结构框图。
具体实施方式
49.下面将结合附图对本技术的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
50.应理解,在本技术实施例的描述中,术语“对应”可表示两者之间具有直接对应或间接对应的关系,也可以表示两者之间具有关联关系,也可以是指示与被指示、配置与被配置等关系。
51.图1是根据背景技术示出的虚拟机内存迁移迭代示意图。如图1所示,在现有技术中,第1次迭代时需要把目标虚拟机的几乎所有的脏内存发送到目的端,而第1次迭代时所有的脏内存即为内存总量m,若发送带宽(或迁移带宽)为常量b。由此可以算出该目标虚拟机第1次迭代的时间为:
[0052][0053]
第2次迭代的脏页总量约为第1次迭代的时间内新产生的脏页总量,因此第2次的脏页总量为:
[0054][0055]
其中,d表示脏页速率;ρ为常量,表示脏页速率与迁移带宽之间的比值,ρ=d/b;i∈[1,n],ti表示第i次迭代的时间;vi表示第i次迭代的脏页总量。
[0056]
因此,基于以上的算法,可算出第2次迭代时间为:
[0057][0058]
第3次迭代时间为:
[0059][0060]
第n次迭代时间为:
[0061][0062]
假设迁移总共迭代n次后收敛,则总的迁移耗时为:
[0063][0064]
其中,ts表示该目标虚拟机的downtime(停机时间)及其他固定时耗,c的值较小,为常量。
[0065]
由上可见,现有技术中已假设脏页速率d为常量,但在auto-converge(自动收敛)迁移时为了加速迁移收敛,每累计2次迭代后满足脏页速率d/发送带宽b》0.5,vcpu(该目标虚拟机内的cpu)被限速一次,则可得vcpu(该目标虚拟机内的cpu)被限速的百分比依次为:
[0066]
0%-》20%-》30%-》40%-》50%-》60%-》70%-》80%-》90%-》99%;
[0067]
其中,请参照图2所示的auto-converge热迁移脏页速率变化示意图,如图2所示,每一轮迭代时间必须长于1000ms,如果不满足则累计多轮迭代。因此,auto-converge热迁移过程中脏页速率会逐渐减小,脏页速率最多减小9次,且最终基本保持不变,即最终退化为普通迁移,现有技术方案不能适用于auto-converge热迁移。
[0068]
另外,在现有技术中,m表示内存总量,但在实际情况中,目标虚拟机可能并没有完全占用所有内存,使用内存总量会导致预估结果明显偏大;其次,现有技术并没有对每次迭
代的脏页总量做限制,而实际情况是单次迭代的脏页总量必然不可能超过内存总量,根据局部性原理,脏页总量一般明显小于内存总量,因此现有技术的预估结果偏差较大;再者,现有技术每次迭代时并没有将当前的脏页总量发送完成,而是当脏页总量小于某个阈值(threshold)时,便重新同步新的脏页数据,进入下一次迭代,因此,现有技术忽略该某个阈值(threshold)也导致了明显的预估误差。
[0069]
图3是根据一示例性实施例示出的一种热迁移耗时的预估方法的方法流程图。如图3所示,该预估方法可以包括如下步骤:
[0070]
步骤s301、获取目标虚拟机的初始脏页速率,并获取该目标虚拟机的迁移带宽。
[0071]
在一种可能的实施方式中,在对目标虚拟机的迁移耗时进行预估时,先获取该目标虚拟机的初始脏页速率及迁移带宽,其中,该初始脏页速率为常量脏页速率d。
[0072]
可选的,该迁移带宽可以为发送带宽b,为常量。
[0073]
步骤s302、根据该初始脏页速率及该迁移带宽,对该目标虚拟机的初始脏页内存进行第一阶段虚拟迭代,直至该目标虚拟机的脏页速率小于指定阈值;该目标虚拟机的脏页速率与该第一阶段虚拟迭代的虚拟迭代次数成反相关。
[0074]
在一种可能的实施方式中,在获取该目标虚拟机的迁移带宽后,根据该初始脏页速率及该迁移带宽,对该目标虚拟机的初始脏页内存进行第一阶段虚拟迭代,在该第一阶段虚拟迭代的过程中,该目标虚拟机的脏页速率与该第一阶段虚拟迭代的虚拟迭代次数成反相关,即该目标虚拟机的脏页速率随着该第一阶段虚拟迭代的迭代次数递减,当该目标虚拟机的脏页速率减小到小于指定阈值时,该目标虚拟机结束该第一阶段虚拟迭代的过程。
[0075]
步骤s303、根据该第一阶段虚拟迭代中最后一次虚拟迭代过程的脏页速率,确定稳定脏页速率。
[0076]
在一种可能的实施方式中,在该目标虚拟机结束该第一阶段虚拟迭代的过程,该目标虚拟机的脏页速率已经减小到一定程度,最终基本保持不变,此时,该目标虚拟机将进入第二阶段虚拟迭代过程,将该第一阶段虚拟迭代中最后一次虚拟迭代过程的脏页速率,确定为第二阶段虚拟迭代的稳定脏页速率。
[0077]
步骤s304、根据该稳定脏页速率与该迁移带宽,对该目标虚拟机在第一阶段虚拟迭代后的脏页内存进行第二阶段虚拟迭代,直至该目标虚拟机的脏页内存小于脏页阈值。
[0078]
在一种可能的实施方式中,在将该第一阶段虚拟迭代中最后一次虚拟迭代过程的脏页速率,确定为第二阶段虚拟迭代的稳定脏页速率后,与该第一阶段虚拟迭代相同,根据该稳定脏页速率与该迁移带宽,对该目标虚拟机在第一阶段虚拟迭代后的脏页内存进行第二阶段虚拟迭代,当该目标虚拟机的脏页内存小于脏页阈值时,该目标虚拟机结束该第二阶段虚拟迭代的过程。
[0079]
步骤s305、将该第一阶段虚拟迭代的第一虚拟迭代时间,与该第二阶段虚拟迭代的第二虚拟迭代时间进行求和,确定该目标虚拟机的预计虚拟迁移总耗时。
[0080]
在一种可能的实施方式中,该目标虚拟机结束该第一阶段虚拟迭代过程以及该第二阶段虚拟迭代的过程后,计算该第一阶段虚拟迭代的第一虚拟迭代时间以及该第二阶段虚拟迭代的第二虚拟迭代时间,并对该第一虚拟迭代时间及该第二虚拟迭代时间进行求和计算,并将求和计算的结果确定该目标虚拟机的预计虚拟迁移总耗时。
[0081]
综上所述,本技术先获取目标虚拟机的初始脏页速率及迁移带宽,并根据该初始脏页速率及迁移带宽,对该目标虚拟机的初始脏页内存进行第一阶段虚拟迭代,直至该目标虚拟机的脏页速率小于指定阈值;再根据该第一阶段虚拟迭代中最后一次虚拟迭代过程的脏页速率,确定稳定脏页速率;进而根据该稳定脏页速率与该迁移带宽,对该目标虚拟机在第一阶段虚拟迭代后的脏页内存进行第二阶段虚拟迭代,直至该目标虚拟机的脏页内存小于脏页阈值后;将该第一阶段虚拟迭代的第一虚拟迭代时间,与该第二阶段虚拟迭代的第二虚拟迭代时间进行求和,以确定该目标虚拟机的预计虚拟迁移总耗时。
[0082]
在上述方案中,将目标虚拟机的迁移过程拆分为第一虚拟迁移及第二阶段虚拟迭代,在第一虚拟迁移的过程中,该目标虚拟机的脏页速率与该第一阶段虚拟迭代的虚拟迭代次数成反相关,即该目标虚拟机的脏页速率基本呈比例降低,处于降速阶段;而在第二虚拟迁移的过程中,该目标虚拟机的脏页速率基本保持不变,处于稳定阶段,最终退化为普通迁移,本技术分阶段依次计算该目标虚拟机的迭代次数和迁移耗时,进而实现对该目标虚拟机迁移耗时的准确预估,提高预估精准度。
[0083]
图4是根据一示例性实施例示出的一种热迁移耗时的预估方法的方法流程图。如图4所示,该预估方法可以包括如下步骤:
[0084]
步骤s401、获取目标虚拟机的初始脏页速率,并获取该目标虚拟机的迁移带宽。
[0085]
在一种可能的实施方式中,获取该目标虚拟机的历史迁移信息;
[0086]
基于该历史迁移信息,提取历史迁移带宽,并将该历史迁移带宽确定为该目标虚拟机的迁移带宽。
[0087]
在一种可能的实施方式中,当该目标虚拟机没有对应的历史迁移信息时,实时统计该目标虚拟机所在计算节点到迁移目标节点的可用带宽,并将该可用带宽确定为该目标虚拟机的迁移带宽。
[0088]
进一步的,请参照图5所示的一种auto-converge热迁移耗时预估流程图,在对目标虚拟机的迁移耗时进行预估时,需要先对该目标虚拟机的初始脏页速率以及迁移带宽进行获取,其中,在进行初始脏页速率获取时,该初始脏页速率为常量脏页速率d。而在进行迁移带宽获取时,先查找该目标虚拟机的历史迁移信息,从该历史迁移信息中提取历史迁移带宽bh,并将该历史迁移带宽bh确定为该目标虚拟机的迁移带宽b;若该目标虚拟机不存在历史迁移信息,则实时统计该目标虚拟机所在计算节点到迁移目标节点的可用带宽,并将该可用带宽确定为该目标虚拟机的迁移带宽b。
[0089]
在一种可能的实施方式中,当该目标虚拟机进行首次虚拟迁移时,则该目标虚拟机不存在历史迁移信息,将该可用带宽确定为该目标虚拟机的迁移带宽b。
[0090]
可选的,该可用带宽可以为该目标虚拟机所在计算节点到迁移目标节点的当前可用带宽ba。
[0091]
步骤s402、根据该初始脏页速率及该迁移带宽,对该目标虚拟机的初始脏页内存进行第一阶段虚拟迭代,直至该目标虚拟机的脏页速率小于指定阈值;该目标虚拟机的脏页速率与该第一阶段虚拟迭代的虚拟迭代次数成反相关。
[0092]
在一种可能的实施方式中,该指定阈值为0.5倍的迁移带宽。
[0093]
在一种可能的实施方式中,该初始脏页内存为该目标虚拟机的实际使用物理内存;
[0094]
在该对该目标虚拟机的初始脏页内存进行第一阶段虚拟迭代前,该方法还包括:
[0095]
根据该初始脏页速率及该实际使用物理内存之间的比值,获取目标时间间隔,以及该目标时间间隔下,该目标虚拟机的平均脏页速率;
[0096]
基于该目标时间间隔及该平均脏页速率,获取脏页总量上限。
[0097]
在一种可能的实施方式中,根据第n脏页总量以及该迁移带宽,确定第n虚拟迭代时间;
[0098]
根据第n脏页速率,以及该第n虚拟迭代时间,生成第n 1脏页总量;
[0099]
根据该第n脏页速率,确定该第n 1脏页速率;
[0100]
根据该迁移带宽以及该第n 1脏页总量,确定第n 1虚拟迭代时间。
[0101]
进一步的,在得到该目标虚拟机的初始脏页速率后,获取该目标虚拟机内存总量信息、内存rss(物理使用内存)信息以及maxdowntime(最大停机时间)等信息,并从中提取出该目标虚拟机的实际使用物理内存(rss),将其确定为该初始脏页内存。对于现有技术中内存总量不准确的问题,使用云主机在宿主机上实际占用的内存,即上述实际使用物理内存(rss)作为内存总量更准确合理。
[0102]
进一步的,在将该实际使用物理内存(rss)确定为该初始脏页内存后,计算该初始脏页速率及该实际使用物理内存(rss)之间的比值;该比值即为目标时间间隔t(t=rss/d),再获取在该目标时间间隔t下,该目标虚拟机的平均脏页速率dm;最后,将该目标时间间隔t与该平均脏页速率dm之间的乘积确定为脏页总量上限(该脏页总量上限=dm*rss/d=dm*t),在该目标虚拟机的迭代虚拟迁移过程中,每次虚拟迁移的脏页总量均需控制在该脏页总量上限内,当该目标虚拟机的任一次虚拟迁移生成的脏页总量大于该脏页总量上限时,直接将该脏页总量上限确定为本次虚拟迁移所生成的脏页总量进行计算,以便求出本次虚拟迁移对应的迭代时间。
[0103]
示例性的,在第一阶段虚拟迭代过程中,若第n 1此地带生成的第n 1脏页总量大于该脏页总量上限,则直接根据该脏页总量上限以及该迁移带宽,确定第n 1迭代。
[0104]
可选的,对于脏页总量上限的问题,其原理为:假设脏页总量上限不超过该实际使用物理内存(rss),即使以脏页速率d将所有该实际使用物理内存(rss)内存写脏,也只需要时间t,因此目标时间间隔t内可以达到脏页总量上限,如果时间更长,则内存会被重复更新,但脏页总量不会增加,所以目标时间间隔t内的脏页增量为脏页总量上限。(由于脏页增量不变,时间变长,则平均脏页速率会变小,因此测量脏页速率与测量时间间隔相关。)
[0105]
可选的,如果上述方式不可用,则可通过mem_balloon(即内存气球)、qemu-guest-agent(即目标虚拟机内部的守护程序)等机制获取guest(即客户机)当前内存使用量,脏页总量上限不应超过当前内存使用量。该脏页总量上限也比直接使用实际使用物理内存(rss)作为上限更为准确。
[0106]
进一步的,在求出该目标虚拟机的实际使用物理内存(rss)、初始脏页速率、迁移带宽以及脏页总量上限后,将其带入降速阶段的算法中进行计算,以求出该降速阶段的迭代次数及虚拟迁移时间,其中,该降速阶段为上述第一阶段虚拟迭代阶段,该降速阶段的迭代次数及虚拟迁移时间也分别对应上述的第一阶段虚拟迭代的第一虚拟迭代次数及第一虚拟迭代时间。
[0107]
可选的,该降速阶段的算法伪码如下:
[0108][0109][0110]
可选的,当该脏页速率d与该迁移带宽b之间的比值小于(或等于)0.5时,该目标虚拟机的第一阶段虚拟迭代过程结束,进入第二阶段虚拟迭代。
[0111]
可选的,当vcpu(该目标虚拟机内的cpu)被限速到99%时,该目标虚拟机的第一阶段虚拟迭代过程结束,进入第二阶段虚拟迭代。
[0112]
可选的,目标虚拟机在热迁移的过程中会对所有内存页进行是否为zeropage(0页)进行判断,如果内存页全为0,则仅发送极少数据,否则全部发送。zeropage(0页)判断需要耗时,由于zeropage(0页)一般主要存在与第一轮迭代,数量约为(内存总量m-实际使用物理内存rss),因此第一轮迭代的时间需要额外考虑zeropage(0页)判断时间(内存总量m-实际使用物理内存rss)/bz,其中bz为zeropage(0页)的判断速率。zeropage(0页)影响发送数据量,从而会导致实时发送带宽变小,因此第一轮迭代发送带宽应该适当降低,降低幅度与zeropage(0页)数量相关。
[0113]
步骤s403、根据该第一阶段虚拟迭代中最后一次虚拟迭代过程的脏页速率,确定稳定脏页速率。
[0114]
在一种可能的实施方式中,当该目标虚拟机的第一阶段虚拟迭代过程结束,进入
第二阶段虚拟迭代时,将该第一阶段虚拟迭代中最后一次虚拟迭代过程的脏页速率,确定为第二阶段虚拟迭代过程中的稳定脏页速率,该第二阶段虚拟迭代对应稳定阶段,在该稳定阶段中,其脏页速率基本是不变的,为稳定脏页速率。
[0115]
步骤s404、根据该稳定脏页速率与该迁移带宽,对该目标虚拟机在第一阶段虚拟迭代后的脏页内存进行第二阶段虚拟迭代,直至该目标虚拟机的脏页内存小于脏页阈值。
[0116]
在一种可能的实施方式中,根据该稳定脏页速率、以及第m稳定迭代时间,确定第m 1稳定脏页总量;
[0117]
根据该第m 1稳定脏页总量以及该迁移带宽,确定第m 1稳定虚拟迭代时间。
[0118]
可选的,该稳定阶段的算法伪码如下:
[0119][0120]
可选的,由于现有技术每次迭代时并没有将当前的脏页总量发送完成,而是当脏页总量小于某个阈值(threshold)时,便重新同步新的脏页数据,进入下一次迭代,因此,现有技术忽略该某个阈值(threshold)也导致了明显的预估误差。对于该某个阈值(threshold)问题,该threshold值约为maxdowntime(最大停机时间)*迁移带宽b,需要从实际使用物理内存(rss)中扣除,由于扣除了maxdowntime(最大停机时间)数据量,原来的迭代结束条件不再合适,根据迁移逻辑结合实测数据,推导新的结束条件为ts《51ms,即当ts《51ms时,该目标虚拟机的第二阶段虚拟迭代结束。其中,ts表示该目标虚拟机的downtime(停机时间)及其他固定时耗。
[0121]
步骤s405、获取该第一阶段虚拟迭代的第一虚拟迭代次数,以及该第二阶段虚拟迭代的第二虚拟迭代次数。
[0122]
在一种可能的实施方式中,在该目标虚拟机结束该第一阶段虚拟迭代过程以及该第二阶段虚拟迭代的过程后,获取该第一阶段虚拟迭代的第一虚拟迭代次数,以及该第二阶段虚拟迭代的第二虚拟迭代次数,以便对该目标虚拟机的热迁移任务是否收敛进行判定。
[0123]
步骤s406、当该第一虚拟迭代次数与该第二虚拟迭代次数的和小于目标虚拟迭代次数时,判定该目标虚拟机的热迁移任务收敛,并将该第一虚拟迭代时间及第二虚拟迭代时间之和,确定为该目标虚拟机的预计虚拟迁移总耗时。
[0124]
在一种可能的实施方式中,当该第一虚拟迭代次数与该第二虚拟迭代次数的和小于(或等于)目标虚拟迭代次数(该目标虚拟迭代次数即为图5中的x)时,判定该目标虚拟机
的热迁移任务收敛,此时,计算该第一阶段虚拟迭代的第一虚拟迭代时间以及该第二阶段虚拟迭代的第二虚拟迭代时间,并对该第一虚拟迭代时间及该第二虚拟迭代时间进行求和计算,并将求和计算的结果确定该目标虚拟机的预计虚拟迁移总耗时。
[0125]
进一步的,当该第一虚拟迭代次数与该第二虚拟迭代次数的和大于目标虚拟迭代次数时,该热迁移任务被视为无法收敛。该目标虚拟迭代次数可以根据需要进行设定。
[0126]
通过以下简单示例对上述实施例公开的内容进行解释:
[0127]
以任一台虚拟机(如4c8g)为例。对该虚拟机的热迁移总耗时的预估包括以下步骤:
[0128]
1)启动该虚拟机,并执行内存加压;
[0129]
2)获取该虚拟机的脏页速率d;
[0130]
3)获取该虚拟机的内存总量,实际使用物理内存(rss),maxdowntime(最大停机时间)等信息;
[0131]
4)获取该虚拟机在目标时间间隔为t=rss/d下的平均脏页速率dm,则脏页总量上限为dm*rss/d;
[0132]
5)查找该虚拟机的历史迁移信息,并从中提取历史迁移带宽bh,并将其确定为该虚拟机的迁移带宽b;
[0133]
6)若不存在历史迁移信息,则实时统计当前可用带宽ba,并将其确定为该虚拟机的迁移带宽b;
[0134]
7)根据上述步骤获取到的多个参数信息(脏页速率d、实际使用物理内存(rss)、脏页总量上限、迁移带宽b),带入将降速阶段及稳定阶段算法进行计算,若计算的迭代次数大于某个经验值x(及上述指定阈值)时,则认为迁移不收敛,否则迁移收敛,并输出迁移耗时信息。
[0135]
8)对该虚拟机进行auto-converge热迁移,迁移完成后查看其实际耗时和实际迭代次数信息,并对比预估结果,对比结果如表1所示:
[0136]
表1
[0137] 是否收敛迭代次数迁移耗时预估是1533.151s实际是1228.333s误差/25%17%
[0138]
综上所述,本技术先获取目标虚拟机的初始脏页速率及迁移带宽,并根据该初始脏页速率及迁移带宽,对该目标虚拟机的初始脏页内存进行第一阶段虚拟迭代,直至该目标虚拟机的脏页速率小于指定阈值;再根据该第一阶段虚拟迭代中最后一次虚拟迭代过程的脏页速率,确定稳定脏页速率;进而根据该稳定脏页速率与该迁移带宽,对该目标虚拟机在第一阶段虚拟迭代后的脏页内存进行第二阶段虚拟迭代,直至该目标虚拟机的脏页内存小于脏页阈值后;将该第一阶段虚拟迭代的第一虚拟迭代时间,与该第二阶段虚拟迭代的第二虚拟迭代时间进行求和,以确定该目标虚拟机的预计虚拟迁移总耗时。
[0139]
在上述方案中,将目标虚拟机的迁移过程拆分为第一虚拟迁移及第二阶段虚拟迭代,在第一虚拟迁移的过程中,该目标虚拟机的脏页速率与该第一阶段虚拟迭代的虚拟迭代次数成反相关,即该目标虚拟机的脏页速率基本呈比例降低,处于降速阶段;而在第二虚
拟迁移的过程中,该目标虚拟机的脏页速率基本保持不变,处于稳定阶段,最终退化为普通迁移,本技术分阶段依次计算该目标虚拟机的迭代次数和迁移耗时,进而实现对该目标虚拟机迁移耗时的准确预估,提高预估精准度。
[0140]
图6是根据一示例性实施例示出的一种热迁移耗时的预估装置的结构方框图。如图6所示,该预估装置包括:
[0141]
速率及带宽获取模块601,用于获取目标虚拟机的初始脏页速率,并获取该目标虚拟机的迁移带宽;
[0142]
第一阶段虚拟迭代模块602,用于根据该初始脏页速率及该迁移带宽,对该目标虚拟机的初始脏页内存进行第一阶段虚拟迭代,直至该目标虚拟机的脏页速率小于指定阈值;该目标虚拟机的脏页速率与该第一阶段虚拟迭代的虚拟迭代次数成反相关;
[0143]
稳定脏页速率确定模块603,用于根据该第一阶段虚拟迭代中最后一次虚拟迭代过程的脏页速率,确定稳定脏页速率;
[0144]
第二阶段虚拟迭代模块604,用于根据该稳定脏页速率与该迁移带宽,对该目标虚拟机在第一阶段虚拟迭代后的脏页内存进行第二阶段虚拟迭代,直至该目标虚拟机的脏页内存小于脏页阈值;
[0145]
热迁移总耗时预计模块605,用于将该第一阶段虚拟迭代的第一虚拟迭代时间,与该第二阶段虚拟迭代的第二虚拟迭代时间进行求和,确定该目标虚拟机的预计虚拟迁移总耗时。
[0146]
在一种可能的实施方式中,该指定阈值为0.5倍的迁移带宽。
[0147]
在一种可能的实施方式中,该初始脏页内存为该目标虚拟机的实际使用物理内存;
[0148]
在该对该目标虚拟机的初始脏页内存进行第一阶段虚拟迭代前,该方法还包括:
[0149]
根据该初始脏页速率及该实际使用物理内存之间的比值,获取目标时间间隔,以及该目标时间间隔下,该目标虚拟机的平均脏页速率;
[0150]
基于该目标时间间隔及该平均脏页速率,获取脏页总量上限。
[0151]
在一种可能的实施方式中,该速率及带宽获取模块601,还用于:
[0152]
获取该目标虚拟机的历史迁移信息;
[0153]
基于该历史迁移信息,提取历史迁移带宽,并将该历史迁移带宽确定为该目标虚拟机的迁移带宽。
[0154]
在一种可能的实施方式中,该速率及带宽获取模块601,还用于:
[0155]
当该目标虚拟机没有对应的历史迁移信息时,实时统计该目标虚拟机所在计算节点到迁移目标节点的可用带宽,并将该可用带宽确定为该目标虚拟机的迁移带宽。
[0156]
在一种可能的实施方式中,该第一阶段虚拟迭代模块602,还用于:
[0157]
根据第n脏页总量以及该迁移带宽,确定第n虚拟迭代时间;
[0158]
根据第n脏页速率,以及该第n虚拟迭代时间,生成第n 1脏页总量;
[0159]
根据该第n脏页速率,确定该第n 1脏页速率;
[0160]
根据该迁移带宽以及该第n 1脏页总量,确定第n 1虚拟迭代时间。
[0161]
在一种可能的实施方式中,该第二阶段虚拟迭代模块604,还用于:
[0162]
根据该稳定脏页速率、以及第m稳定迭代时间,确定第m 1稳定脏页总量;
[0163]
根据该第m 1稳定脏页总量以及该迁移带宽,确定第m 1稳定虚拟迭代时间。
[0164]
在一种可能的实施方式中,该热迁移总耗时预计模块605,还用于:
[0165]
获取该第一阶段虚拟迭代的第一虚拟迭代次数,以及该第二阶段虚拟迭代的第二虚拟迭代次数;
[0166]
当该第一虚拟迭代次数与该第二虚拟迭代次数的和小于目标虚拟迭代次数时,判定该目标虚拟机的热迁移任务收敛,并将该第一虚拟迭代时间及第一虚拟迭代时间之和,确定为该目标虚拟机的预计虚拟迁移总耗时。
[0167]
综上所述,本技术先获取目标虚拟机的初始脏页速率及迁移带宽,并根据该初始脏页速率及迁移带宽,对该目标虚拟机的初始脏页内存进行第一阶段虚拟迭代,直至该目标虚拟机的脏页速率小于指定阈值;再根据该第一阶段虚拟迭代中最后一次虚拟迭代过程的脏页速率,确定稳定脏页速率;进而根据该稳定脏页速率与该迁移带宽,对该目标虚拟机在第一阶段虚拟迭代后的脏页内存进行第二阶段虚拟迭代,直至该目标虚拟机的脏页内存小于脏页阈值后;将该第一阶段虚拟迭代的第一虚拟迭代时间,与该第二阶段虚拟迭代的第二虚拟迭代时间进行求和,以确定该目标虚拟机的预计虚拟迁移总耗时。
[0168]
在上述方案中,将目标虚拟机的迁移过程拆分为第一虚拟迁移及第二阶段虚拟迭代,在第一虚拟迁移的过程中,该目标虚拟机的脏页速率与该第一阶段虚拟迭代的虚拟迭代次数成反相关,即该目标虚拟机的脏页速率基本呈比例降低,处于降速阶段;而在第二虚拟迁移的过程中,该目标虚拟机的脏页速率基本保持不变,处于稳定阶段,最终退化为普通迁移,本技术分阶段依次计算该目标虚拟机的迭代次数和迁移耗时,进而实现对该目标虚拟机热迁移耗时的准确预估,提高预估精准度。
[0169]
图7示出了本技术一示例性实施例示出的一种计算机设备的结构框图。如图7所述,所述计算机设备包括存储器和处理器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时,实现上述的一种热迁移耗时的预估方法。
[0170]
其中,处理器可以为中央处理器(central processing unit,cpu)。处理器还可以为其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。
[0171]
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本发明实施方式中的方法对应的程序指令/模块。处理器通过运行存储在存储器中的非暂态软件程序、指令以及模块,从而执行处理器的各种功能应用以及数据处理,即实现上述方法实施方式中的方法。
[0172]
存储器可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储处理器所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0173]
在一示例性实施例中,还提供了一种计算机可读存储介质,用于存储有至少一条
计算机程序,所述至少一条计算机程序由处理器加载并执行以实现上述方法中的全部或部分步骤。例如,该计算机可读存储介质可以是只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、只读光盘(compact disc read-only memory,cd-rom)、磁带、软盘和光数据存储设备等。
[0174]
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本技术的其它实施方案。本技术旨在涵盖本技术的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本技术的一般性原理并包括本技术未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本技术的真正范围和精神由下面的权利要求指出。
[0175]
应当理解的是,本技术并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本技术的范围仅由所附的权利要求来限制。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献