System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及计算机,尤其涉及一种虚拟机迁移方法、设备及存储介质。
技术介绍
1、在云场景下,如果把一个正在运行的虚拟机从一个物理服务器迁移到另外一台服务器上,在保证虚拟机中的业务不间断情况下,需要对虚拟机进行内存热迁移操作。此过程需要在源端服务器上去追踪源虚拟机在迁移过程中产生的脏页(变化的内存),并将脏页传输到目标迁移设备中。
2、而现有技术需要虚拟机中的cpu(vcpu)退出(vm-exit)才能做到脏页跟踪,导致每一次脏页传输均需要vcpu退出,而vcpu有退出操作,会降低虚拟机中业务的运行效率,甚至可能会导致业务异常。
3、上述内容仅用于辅助理解本申请的技术方案,并不代表承认上述内容是现有技术。
技术实现思路
1、本申请的主要目的在于提供一种虚拟机迁移方法、设备及存储介质,旨在解决现有技术在进行虚拟机迁移时会降低虚拟机中业务的运行效率,影响业务正常运行的技术问题。
2、为实现上述目的,本申请提供了一种虚拟机迁移方法,所述方法包括:
3、从位图存储空间中读取脏页位图信息,并根据所述脏页位图信息确定待发送脏页;
4、在所述待发送脏页及预设暂停时长满足最终迭代条件的情况下,暂停源虚拟机,并读取末级页表中的脏页位标志;
5、根据脏页位标志对所述脏页位图信息进行更新,获得当前位图信息;
6、根据所述当前位图信息确定当前待发送脏页,并将所述当前待发送脏页发送至目标迁移设备。
7、在本申请一种可
8、读取末级页表中的脏页位标志,并根据所述脏页位标志对位图存储空间中的脏页位图信息进行更新。
9、在本申请一种可能的实现方式中,所述读取末级页表中的脏页位标志,并根据所述脏页位标志对位图存储空间中的脏页位图信息进行更新的步骤,包括:
10、从位图存储空间中读取脏页位图信息;
11、根据所述脏页位图信息确定非脏页项;
12、读取末级页表中所述非脏页项对应的脏页位标志,并根据所述脏页位标志对所述位图存储空间中的脏页位图信息进行更新。
13、在本申请一种可能的实现方式中,所述读取末级页表中的脏页位标志,并根据所述脏页位标志对位图存储空间中的脏页位图信息进行更新之前,还包括:
14、根据源虚拟机的内存大小确定末级页表内存;
15、依据所述末级页表内存构建末级页表。
16、在本申请一种可能的实现方式中,所述读取末级页表中的脏页位标志,并根据所述脏页位标志对位图存储空间中的脏页位图信息进行更新,包括:
17、创建内核态线程;
18、通过所述内核态线程以预设周期轮询末级页表中的脏页位标志,获得脏页标志信息;
19、根据所述脏页位标志信息对位图存储空间中的脏页位图信息进行更新。
20、在本申请一种可能的实现方式中,所述读取末级页表中的脏页位标志,并根据所述脏页位标志对位图存储空间中的脏页位图信息进行更新,包括:
21、创建用户态线程,并为所述用户态线程创建内存映射,将末级页表对应的内存空间映射至用户态地址空间;
22、基于所述内存映射,通过所述用户态线程以预设周期轮询末级页表中的脏页位标志,获得脏页标志信息;
23、根据所述脏页位标志信息对位图存储空间中的脏页位图信息进行更新。
24、在本申请一种可能的实现方式中,所述读取末级页表中的脏页位标志,并根据所述脏页位标志对位图存储空间中的脏页位图信息进行更新,包括:
25、在dpu加速卡中创建轮询实例,并为所述dpu加速卡创建内存映射,将所述末级页表对应的内存空间以及位图存储空间映射至dpu加速卡;
26、基于所述内存映射,通过所述轮询实例以预设周期轮询末级页表中的脏页位标志,获得脏页标志信息;
27、基于所述内存映射,根据所述脏页标志信息对位图存储空间中的脏页位图信息进行更新。
28、在本申请一种可能的实现方式中,所述从位图存储空间中读取脏页位图信息,并根据所述脏页位图信息确定待发送脏页之后,还包括:
29、在所述待发送脏页及预设暂停时长满足持续迭代条件的情况下,则从所述待发送脏页中选取本次发送脏页,并根据所述本次发送脏页对所述脏页位图信息进行更新;
30、将所述本次发送脏页对应的脏页位标志清除,并将所述本次发送脏页发送至目标迁移设备。
31、在本申请一种可能的实现方式中,所述从所述待发送脏页中选取本次发送脏页,并根据所述本次发送脏页对所述脏页位图信息进行更新,包括:
32、根据单次传输上限从所述待发送脏页中选取本次发送脏页;
33、将所述本次发送脏页在所述脏页位图信息中对应的位图信息清除。
34、此外,为实现上述目的,本申请实施例还提供一种虚拟机迁移装置,所述虚拟机迁移装置包括:
35、信息获取模块,被设置为从位图存储空间中读取脏页位图信息,并根据所述脏页位图信息确定待发送脏页;
36、逻辑判断模块,被设置为在所述待发送脏页及预设暂停时长满足最终迭代条件的情况下,则暂停源虚拟机,并读取末级页表中的脏页位标志;
37、数据更新模块,被设置为根据脏页位标志对所述脏页位图信息进行更新,获得当前位图信息;
38、数据迁移模块,被设置为根据所述当前位图信息确定当前待发送脏页,并将所述当前待发送脏页发送至目标迁移设备。
39、此外,为实现上述目的,本申请实施例还提供一种虚拟机迁移设备,所述虚拟机迁移设备包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的虚拟机迁移程序,所述虚拟机迁移程序被处理器执行时实现如上所述的虚拟机迁移方法的步骤。
40、此外,为实现上述目的,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有虚拟机迁移程序,所述虚拟机迁移程序执行时实现如上所述的虚拟机迁移方法的步骤。
41、本申请通过从位图存储空间中读取脏页位图信息,并根据脏页位图信息确定待发送脏页;在待发送脏页及预设暂停时长满足最终迭代条件的情况下,暂停源虚拟机,并读取末级页表中的脏页位标志;根据脏页位标志对脏页位图信息进行更新,获得当前位图信息;根据当前位图信息确定当前待发送脏页,并将当前待发送脏页发送至目标迁移设备。由于在虚拟机迁移过程中,并非利用现有方式进行脏页跟踪,而是利用脏页位图信息进行脏页跟踪,确定当前待发送的脏页,不会导致虚拟机cpu出现缺页异常,从而避免了出现虚拟机cpu退出现象,减少了对虚拟机中业务的运行效率的影响。
本文档来自技高网...【技术保护点】
1.一种虚拟机迁移方法,其特征在于,所述虚拟机迁移方法包括:
2.如权利要求1所述的虚拟机迁移方法,其特征在于,所述从位图存储空间中读取脏页位图信息,并根据所述脏页位图信息确定待发送脏页之前,还包括:
3.如权利要求2所述的虚拟机迁移方法,其特征在于,所述读取末级页表中的脏页位标志,并根据所述脏页位标志对位图存储空间中的脏页位图信息进行更新的步骤,包括:
4.如权利要求2所述的虚拟机迁移方法,其特征在于,所述读取末级页表中的脏页位标志,并根据所述脏页位标志对位图存储空间中的脏页位图信息进行更新之前,还包括:
5.如权利要求2所述的虚拟机迁移方法,其特征在于,所述读取末级页表中的脏页位标志,并根据所述脏页位标志对位图存储空间中的脏页位图信息进行更新,包括:
6.如权利要求2所述的虚拟机迁移方法,其特征在于,所述读取末级页表中的脏页位标志,并根据所述脏页位标志对位图存储空间中的脏页位图信息进行更新,包括:
7.如权利要求2所述的虚拟机迁移方法,其特征在于,所述读取末级页表中的脏页位标志,并根据所述脏页位标志对位图
8.如权利要求1-7中任一项所述的虚拟机迁移方法,其特征在于,所述从位图存储空间中读取脏页位图信息,并根据所述脏页位图信息确定待发送脏页之后,还包括:
9.如权利要求8所述的虚拟机迁移方法,其特征在于,所述从所述待发送脏页中选取本次发送脏页,并根据所述本次发送脏页对所述脏页位图信息进行更新,包括:
10.一种虚拟机迁移设备,其特征在于,所述虚拟机迁移设备包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的虚拟机迁移程序,所述虚拟机迁移程序被处理器执行时实现如权利要求1-9中任一项所述的虚拟机迁移方法的步骤。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有虚拟机迁移程序,所述虚拟机迁移程序执行时实现如权利要求1-9中任一项所述的虚拟机迁移方法的步骤。
...【技术特征摘要】
1.一种虚拟机迁移方法,其特征在于,所述虚拟机迁移方法包括:
2.如权利要求1所述的虚拟机迁移方法,其特征在于,所述从位图存储空间中读取脏页位图信息,并根据所述脏页位图信息确定待发送脏页之前,还包括:
3.如权利要求2所述的虚拟机迁移方法,其特征在于,所述读取末级页表中的脏页位标志,并根据所述脏页位标志对位图存储空间中的脏页位图信息进行更新的步骤,包括:
4.如权利要求2所述的虚拟机迁移方法,其特征在于,所述读取末级页表中的脏页位标志,并根据所述脏页位标志对位图存储空间中的脏页位图信息进行更新之前,还包括:
5.如权利要求2所述的虚拟机迁移方法,其特征在于,所述读取末级页表中的脏页位标志,并根据所述脏页位标志对位图存储空间中的脏页位图信息进行更新,包括:
6.如权利要求2所述的虚拟机迁移方法,其特征在于,所述读取末级页表中的脏页位标志,并根据所述脏页位标志对位图存储空间中的脏页位图信息进行更新,包括:
7....
【专利技术属性】
技术研发人员:王业超,汪翼,
申请(专利权)人:中兴通讯股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。