CN103955399B - 一种虚拟机迁移方法和装置及物理主机 - Google Patents

一种虚拟机迁移方法和装置及物理主机 Download PDF

Info

Publication number
CN103955399B
CN103955399B CN201410182147.7A CN201410182147A CN103955399B CN 103955399 B CN103955399 B CN 103955399B CN 201410182147 A CN201410182147 A CN 201410182147A CN 103955399 B CN103955399 B CN 103955399B
Authority
CN
China
Prior art keywords
dirty pages
containing dirty
virtual machine
change
copy
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.)
Active
Application number
CN201410182147.7A
Other languages
English (en)
Other versions
CN103955399A (zh
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.)
Changzhou Hengtang Technology Industry Co ltd
Original Assignee
Huawei Technologies Co 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201410182147.7A priority Critical patent/CN103955399B/zh
Publication of CN103955399A publication Critical patent/CN103955399A/zh
Application granted granted Critical
Publication of CN103955399B publication Critical patent/CN103955399B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明公开了一种虚拟机迁移方法和装置,以一定程度上解决热迁移混合拷贝方法中预拷贝和后拷贝切换时机难以确定的问题。在本发明一些可行的实施方式中,方法可包括:采用预拷贝方式将运行在源物理主机上的待迁移的目标虚拟机的内存数据向目的物理主机进行循环迭代拷贝;在每一轮迭代拷贝结束时,计算脏页变化率,所述脏页变化率表示当前一轮迭代拷贝相对于前一轮迭代拷贝的剩余内存脏页数量变化的速率;判断所述脏页变化率是否落入脏页变化率阈值范围;统计所述脏页变化率落入脏页变化率阈值范围的次数,判断所述次数是否大于或等于门限值;若所述次数大于或等于门限值,则采用后拷贝方式向所述目的物理主机迁移所述目标虚拟机。

Description

一种虚拟机迁移方法和装置及物理主机
技术领域
本发明涉及计算机和通信技术领域,具体涉及一种虚拟机迁移方法和装置及物理主机。
背景技术
热迁移(live migration)是虚拟化技术中极其重要的一部分。虚拟化环境中,业务负载运行在虚拟机(Virtual Machine,VM)上,虚拟机运行在物理机上,每个物理机可以运行一台或多台虚拟机;热迁移功能使得虚拟机在不暂停或重启的情况下,可以在线地从原物理机移动到其它物理主机上。
目前业界常用的虚拟机迁移方式包括预拷贝迁移(Precopy)和后拷贝迁移(Post-copy),但随着技术的进步,业务对缩短停机时间的需求进一步加大,结合预拷贝迁移与后拷贝迁移优势的混合迁移(Hybrid-copy),逐渐成为研究与应用的热点技术。
预拷贝迁移机制(pre-copy),在虚拟机运行的同时,向目的物理主机循环迭代迁移内存页面,同时记录内存脏页,每一轮循环拷贝传输上一轮循环拷贝过程中产生的内存脏页。当剩余内存脏页数量小于预先设定的阈值或迭代次数超过设置的最大迭代次数时停止拷贝;然后,挂起源物理主机上的虚拟机,将中央处理器(CPU)状态和最后一轮未同步的内存页面拷贝到目的物理主机。最后,虚拟机可以在目的物理主机上恢复运行。
预拷贝迁移机制希望通过循环迭代拷贝减少虚拟机停机时间。经过若干次迭代,内存脏页逐渐减少,因此剩下的少量脏页能够实现快速迁移,缩短停机时间。由于虚拟机内存需要经过多轮迭代拷贝才能实现迁移目的端对内存状态的同步,但不能控制或预测迁移过程中虚拟机内存的脏页率,因此预拷贝迁移机制存在内存状态同步的收敛问题。该问题是指当网络传输率小于虚拟机修改其内存的速率时,内存状态的迭代复制过程由于不满足最少剩余内存条件而不能主动停止。在停机阶段里的大量剩余内存需要复制,延缓了VM在目的物理主机上恢复运行,这会延长VM停机时间,并影响VM在迁移过程中外部可访问时间。另外,预拷贝迁移机制的内存迭代拷贝还会造成迁移数据的高冗余性,导致迁移过程中对物理资源的不合理消耗。
后拷贝迁移机制(Post-copy),虚拟机的处理器的状态先于虚拟机的内存数据传输。后拷贝机制,首先需挂起源物理主机上的虚拟机,拷贝最小的系统状态到目的物理主机;然后在目的物理主机上恢复运行虚拟机,当虚拟机运行遇到缺页时,产生缺页错误,向源物理主机发出请求,此时源物理主机传回虚拟机的缺页。
后拷贝技术虽然解决了预拷贝技术中有可能造成的迭代次数过多的问题,但由于虚拟机在目的物理主机上开始运行时,目的物理主机上并没有虚拟机运行所需的内存页,所以将造成大量缺页中断,中断后从源物理主机通过网络传输过所需页面后再运行。这样就造成了虚拟机在目的物理主机上运行时的效率下降,服务质量(Quality of Service,QoS)较差。
混合迁移机制结合了pre-copy和post-copy两种机制,首先通过若干次预拷贝把虚拟机内存拷贝到目的物理主机上。然后挂起虚拟机,将处理机状态和内存脏页位图拷贝到目的物理主机上,并恢复运行。最后进行后拷贝,从源物理主机按需拷贝和主动推送剩余的内存脏页,完成虚拟机的全部迁移。
混合拷贝结合了预拷贝和后拷贝的优点,但是,针对预拷贝迭代多少次切换到后拷贝的问题,并没有较好的解决方案。如果预拷贝的迭代次数过多,会造成总迁移时间的延长和总迁移的数据过多,造成系统资源的浪费。如果预拷贝的迭代次数过少,便切换到后拷贝阶段,会造成后拷贝缺页严重,造成虚拟机性能的下降、用户体验差。可见,如果不能根据虚拟机实际负载选择合适的时机从预拷贝切换到后拷贝,会对虚拟机迁移的效率以及资源消耗造成巨大的影响。
发明内容
本发明实施例提供一种虚拟机迁移方法和装置及物理主机,以一定程度上解决热迁移混合拷贝方法中预拷贝和后拷贝切换时机难以确定的问题。
本发明第一方面提供一种虚拟机迁移方法,包括:
采用预拷贝方式将运行在源物理主机上的待迁移的目标虚拟机的内存数据向目的物理主机进行循环迭代拷贝;在每一轮迭代拷贝结束时,计算脏页变化率,所述脏页变化率表示当前一轮迭代拷贝相对于前一轮迭代拷贝的剩余内存脏页数量变化的速率;判断所述脏页变化率是否落入脏页变化率阈值范围;统计所述脏页变化率落入脏页变化率阈值范围的次数,判断所述次数是否大于或等于门限值;若所述次数大于或等于门限值,则采用后拷贝方式向所述目的物理主机迁移所述目标虚拟机。
在第一种可能的实现方式中,所述计算脏页变化率包括:计算第i+1轮迭代拷贝后的脏页变化率Ri+1=(Mi+1-Mi)/(ti+1-ti),其中Mi表示第i轮迭代拷贝结束后的内存脏页数量,ti表示第i轮迭代拷贝的结束时间;Mi+1表示第i+1轮迭代拷贝结束后的内存脏页数量为,ti+1表示第i+1轮迭代拷贝的结束时间,Ri+1表示第i+1轮迭代拷贝相对于第i轮迭代拷贝的剩余内存脏页数量变化的速率。
结合第一方面或者第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述采用后拷贝方式向所述目的物理主机迁移所述目标虚拟机包括:在所述源物理主机上将所述目标虚拟机挂起;将所述目标虚拟机的处理器状态寄存器数据和内存脏页位图拷贝到所述目的物理主机;在所述目的物理主机上恢复运行所述目标虚拟机;将所述源物理主机上剩余的所述目标虚拟机的内存页面拷贝到所述目的物理主机。
结合第一方面或者第一方面的第一种或第二种可能的实现方式,在第三种可能的实现方式中,所述方法还包括:在所述目标虚拟机迁移完成后,计算迁移的总时间和所述目标虚拟机的停机时间;判断所述迁移的总时间大于迁移时间阈值时,按照第一预设梯度减小所述脏页变化率阈值范围的下限值;判断所述停机时间大于停机时间阈值时,按照第二预设梯度增大所述门限值。
本发明第二方面提供一种虚拟机迁移装置,包括:
热迁移模块,用于采用预拷贝方式将运行在源物理主机上的待迁移的目标虚拟机的内存数据向目的物理主机进行循环迭代拷贝;
控制模块,用于在每一轮迭代拷贝结束时,计算脏页变化率,所述脏页变化率表示当前一轮迭代拷贝相对于前一轮迭代拷贝的剩余内存脏页数量变化的速率;判断所述脏页变化率是否落入脏页变化率阈值范围;统计所述脏页变化率落入脏页变化率阈值范围的次数,判断所述次数是否大于或等于门限值;
所述热迁移模块,还用于若所述控制模块判断所述次数大于或等于门限值,则采用后拷贝方式向所述目的物理主机迁移所述目标虚拟机。
在第一种可能的实现方式中,所述控制模块包括:计算单元,用于计算第i+1轮迭代拷贝后的脏页变化率Ri+1=(Mi+1-Mi)/(ti+1-ti),其中Mi表示第i轮迭代拷贝结束后的内存脏页数量,ti表示第i轮迭代拷贝的结束时间;Mi+1表示第i+1轮迭代拷贝结束后的内存脏页数量为,ti+1表示第i+1轮迭代拷贝的结束时间,Ri+1表示第i+1轮迭代拷贝相对于第i轮迭代拷贝的剩余内存脏页数量变化的速率。
结合第一方面或者第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述热迁移模块,具体用于在所述源物理主机上将所述目标虚拟机挂起;将所述目标虚拟机的处理器状态寄存器数据和内存脏页位图拷贝到所述目的物理主机;以便在所述目的物理主机上恢复运行所述目标虚拟机;将所述源物理主机上剩余的所述目标虚拟机的内存页面拷贝到所述目的物理主机。
结合第一方面或者第一方面的第一种或第二种可能的实现方式,在第三种可能的实现方式中,所述装置还包括:阈值管理模块,用于在所述目标虚拟机迁移完成后,计算迁移的总时间和所述目标虚拟机的停机时间;判断所述迁移的总时间大于迁移时间阈值时,按照第一预设梯度减小所述脏页变化率阈值范围的下限值;判断所述停机时间大于停机时间阈值时,按照第二预设梯度增大所述门限值。
本发明第三方面提供一种物理主机,包括,硬件层、运行在所述硬件层之上的宿主机Host、以及运行在所述Host之上的至少一个虚拟机VM,其中,所述宿主机Host包括如本发明第二方面所述的虚拟机迁移装置,以及所述至少一个虚拟机VM包括待迁移的目标虚拟机。
本发明第四方面提供另一种物理主机,包括:处理器和存储器,其中:
所述存储器用于存储用于表征至少一个虚拟机的操作指令和表征宿主机的操作指令,其中所述至少一个虚拟机包括待迁移的目标虚拟机;
通过调用所述存储器存储的表征所述宿主机的操作指令,所述处理器用于采用预拷贝方式将运行在源物理主机上的待迁移的目标虚拟机的内存数据向目的物理主机进行循环迭代拷贝;在每一轮迭代拷贝结束时,计算脏页变化率,所述脏页变化率表示当前一轮迭代拷贝相对于前一轮迭代拷贝的剩余内存脏页数量变化的速率;判断所述脏页变化率是否落入脏页变化率阈值范围;统计所述脏页变化率落入脏页变化率阈值范围的次数,判断所述次数是否大于或等于门限值;若所述次数大于或等于门限值,则采用后拷贝方式向所述目的物理主机迁移所述目标虚拟机。
由上可见,本发明实施例采用预拷贝过程中,在每一轮迭代拷贝结束时,计算出脏页变化率,即,当前一轮迭代拷贝相对于前一轮迭代拷贝的剩余内存脏页数量变化的速率,统计所述脏页变化率落入脏页变化率阈值范围的次数,若所述次数大于或等于门限值,则切换到后拷贝的技术方案,取得了以下技术效果:
相对于根据剩余内存脏页的数量或者迭代次数来判断是否满足预拷贝终止条件的现有技术,本发明实施例中根据脏页变化率来进行判断,脏页变化率表示当前一轮迭代拷贝相对于前一轮迭代拷贝的剩余内存脏页数量变化的速率,可以更好的反映迭代拷贝过程对总迁移时间的影响;并且,通过统计脏页变化率落入脏页变化率阈值范围的次数,在所述次数大于或等于门限值时切换到后拷贝,可以去除因网络和负载不正常波动对脏页变化率趋势的误判。从而,可以在更加合适的时机切换到后拷贝,既不会因预拷贝迭代次数过多而造成总迁移时间的延长和总迁移的数据过多,从而可提高虚拟机迁移效率并减少系统资源的浪费;也不会因预拷贝迭代次数过少而造成后拷贝缺页严重,从而可以提高虚拟机的使用性能。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例和现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是本发明实施例提供的一种虚拟机迁移方法的流程示意图;
图2是本发明实施例提供的一种虚拟机迁移装置的结构示意图;
图3是本发明实施例提供的一种物理主机的结构图;
图4是本发明实施例提供的一种虚拟机迁移装置的原理示意图;
图5是本发明实施例提供的另一种虚拟机迁移方法的流程示意图;
图6是本发明实施例提供的一种物理主机的结构图;
图7是本发明实施例提供的一种计算机系统的结构示意图。
具体实施方式
本发明实施例提供一种虚拟机迁移方法和装置及物理主机,以一定程度上解决热迁移混合拷贝方法中预拷贝和后拷贝切换时机难以确定的问题。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
为了方便理解本发明实施例,首先在此介绍本发明实施例描述中会引入的几个要素;
虚拟机VM:
通过虚拟机软件可以在一台物理计算机上模拟出一台或者多台虚拟的计算机,而这些虚拟机就像真正的计算机那样进行工作,虚拟机上可以安装操作系统和应用程序,虚拟机还可访问网络资源。对于在虚拟机中运行的应用程序而言,虚拟机就像是在真正的计算机中进行工作。
硬件层:
虚拟化环境运行的硬件平台。其中,硬件层可包括多种硬件,例如某计算节点的硬件层可包括处理器(例如CPU)和内存,还可以包括网卡、存储器等等高速/低速输入/输出(I/O,Input/Output)设备。
宿主机(Host):
作为管理层,用以完成硬件资源的管理、分配;为虚拟机呈现虚拟硬件平台;实现虚拟机的调度和隔离。其中,Host可能是虚拟机监控器(VMM);此外,有时VMM和1个特权虚拟机配合,两者结合组成Host。其中,虚拟硬件平台对其上运行的各个虚拟机提供各种硬件资源,如提供虚拟处理器、虚拟内存、虚拟磁盘、虚拟网卡等等。其中,该虚拟磁盘可对应Host的一个文件或者一个逻辑块设备。虚拟机则运行在Host为其准备的虚拟硬件平台上,Host上运行一个或多个虚拟机。
此外,需要说明的是,本申请中,物理主机,物理服务器和计算机设备均可以用于表示本发明实施例的方法的执行主体。
下面通过具体实施例,分别进行详细的说明。
请参考图1,本发明实施例提供一种虚拟机迁移方法,用于将运行在源物理主机上的目标虚拟机迁移到目的物理主机上。本发明实施例的关键点在于对预拷贝的终止条件的改进。
本发明一个实施例中,虚拟机迁移方法可包括:
110、采用预拷贝方式将运行在源物理主机上的待迁移的目标虚拟机的内存数据向目的物理主机进行循环迭代拷贝。
首先采用预拷贝方式进行虚拟机迁移,可包括:
首先锁定源物理主机上运行的目标虚拟机的内存,使所有内存页面为只读模式;虚拟机继续运行,会触发写错误,虚拟机管理层(或者说宿主机,例如Hypervisor)捕获写错误后,会记录将被改写的内存页面,该将被改写的内存页面称为内存脏页;将内存脏页拷贝到目的物理主机的指定区域。
然后,开始下一轮迭代拷贝:再次锁定目标虚拟机的内存,产生新的内存脏页,新的内存脏页是相对于上一轮被改写的内存页面,再将新的内存脏页拷贝到目的节点的指定区域。
重复上述循环迭代拷贝步骤,直到满足终止条件。
120、在每一轮迭代拷贝结束时,计算脏页变化率,所述脏页变化率表示当前一轮迭代拷贝相对于前一轮迭代拷贝的剩余内存脏页数量变化的速率,判断所述脏页变化率是否落入脏页变化率阈值范围。
本实施例中在每一轮迭代拷贝结束时,计算当前剩余的内存脏页数量,然后,计算脏页变化率。本发明一些实施例中,可将最近两轮迭代拷贝结束时的内存脏页数量的差值,除以对应的时间差值,计算出当前的脏页变化率,即,所述脏页变化率等于最近两轮迭代拷贝结束时的内存脏页数量的差值与对应的时间差值的比值。
一种实施方式中,记第i轮迭代拷贝的结束时间为ti,结束后的内存脏页数量为Mi;记第i+1轮迭代拷贝的结束时间为ti+1,结束后的内存脏页数量为Mi+1;记第i+1轮迭代拷贝后的脏页变化率为R i+1,则R i+1=(Mi+1-Mi)/(ti+1-ti)。该脏页变化率R i+1表示第i+1轮迭代拷贝相对于第i轮迭代拷贝的剩余内存脏页数量变化的速率。
其它实施方式中,也可以不利用最近的连续两轮迭代拷贝结束时的内存脏页数量,计算当前的脏页变化率;而是,可以利用非连续的最近两轮迭代拷贝结束时的内存脏页数量,计算当前的脏页变化率。例如,可令R i+1=(Mi+1-Mi-1)/(ti+1-ti-1)。当然,在其它实施方式中,还可以有其它类似的计算方式。
通常,随着迭代次数的增加,内存脏页数量的变化趋势是不断减小。例如,最近一轮迭代拷贝后的内存脏页数量为900,上一轮迭代拷贝后的内存脏页数量1000,对应的时间差值为500毫秒,则,计算出的脏页变化率为Ri+1=(900-1000)/500=-0.2。如果再一轮迭代拷贝后的内存脏页数量为850,对应的时间差值仍为400毫秒,计算出的脏页变化率为R i+2=(850-900)/400=-0.125。可见,通常情况下,计算出的脏页变化率为负值,且随着迭代次数的增加,脏页变化率不断增大,向零趋近。但是实际应用中,由于各种因素的影响,内存脏页数量的变化趋势可能会有波动,如果后一轮代拷贝后的内存脏页数量大于前一轮轮代拷贝后的内存脏页数量,则计算出的脏页变化率也可能为正值。
推理可知,当源物理主机上目标虚拟机的剩余内存脏页不再减少时,是停止预拷贝的最佳时机。例如,如果脏页变化率等于零,说明最近两轮迭代拷贝后的内存脏页数量相等,即,没有变化,则,可以考虑停止预拷贝。本实施例中,可根据经验设一个脏页变化率阈值范围,通过判断每一轮迭代拷贝结束时,脏页变化率是否落入脏页变化率阈值范围,来判断是否满足终止条件。
下面举一个例子进行描述:假设第1、2、3、4、5轮迭代拷贝结束时剩余内存脏页数量分别为1000、900、850、830、850;并假设相邻两轮迭代拷贝的结束时间的差值均为100毫秒(实际应用中,该时间差值可能随着迭代次数的增加而减小,例如,第1轮和第2轮迭代拷贝的结束时间的差值可能是5秒,第7轮和第8轮迭代拷贝的结束时间的差值可能是300毫秒,为方便计算,这里假设时间差值都为100毫秒);则,可计算出第2、3、4、5轮迭代拷贝后的脏页变化率分别为-1、-0.5、-0.2、+0.2。可见,从第4轮迭代拷贝时起,当前一轮迭代拷贝相对于前一轮迭代拷贝的剩余内存脏页数量变化的速率,即,脏页变化率已基本稳定,则,可以考虑将脏页变化率阈值范围的下限值预设为-0.2,上限值可预设为一个较大的值,例如2,或10,甚至正无穷。
本发明一些实施方式中,该脏页变化率阈值范围的下限值α可预设为零或者一个接近于零的值,该脏页变化率阈值的上限值可预设为一个较大的值,例如可以是正无穷(+∞)。当脏页变化率阈值的上限值等于+∞时,脏页变化率阈值范围是一个半开放的区间,此时,判断脏页变化率是否落入脏页变化率阈值范围,等同于,判断脏页变化率是否大于或等于脏页变化率阈值范围的下限值。
130、统计所述脏页变化率落入脏页变化率阈值范围的次数,判断所述次数是否大于或等于门限值。
网络带宽和虚拟机实际负载的波动等,会影响对脏页变化率的计算,如果检测到一轮迭代拷贝结束时的脏页变化率落入脏页变化率阈值范围,就判断满足终止条件,将会导致误判。本发明实施例中,可统计脏页变化率落入脏页变化率阈值范围的次数,设一个门限值MAX,通过判断所述次数是否大于或等于门限值,来确定是否满足终止条件。若所述次数小于门限值,认为尚不满足终止条件,继续进行迭代拷贝。该门限值可以是大于或等于1的整数,具体可根据实际情况设定,例如可以预设为3或4。
140、若所述次数大于或等于门限值,则采用后拷贝方式向所述目的物理主机迁移所述目标虚拟机。
本发明实施例中,若统计出脏页变化率落入脏页变化率阈值范围的次数大于或等于门限值,则认为脏页变化率已趋于稳定,认为当前剩余内存脏页几乎不再减少,即,即便继续进行迭代拷贝,也不能减少内存脏页,不能缩短虚拟机停机时间,则,此时,可停止预拷贝,切换为采用后拷贝方式继续向所述目的物理主机迁移所述目标虚拟机。后拷贝过程具体可包括:在源物理主机上将目标虚拟机挂起;将目标虚拟机的处理器状态寄存器数据和内存脏页位图拷贝到目的物理主机;在目的物理主机上恢复运行目标虚拟机;然后将所述物理源物理主机上剩余的所述目标虚拟机的内存页面拷贝到所述目的物理主机。其中,可采用缺页传送或者主动推送方式将目标虚拟机的内存页面拷贝到所述目的物理主机。
本发明一些实施例中,为了使脏页变化率阈值α和门限值MAX更加合理,上述方法还可包括:在所述目标虚拟机迁移完成后,计算迁移的总时间和所述目标虚拟机的停机时间;并根据所述迁移的总时间和停机时间修正所述脏页变化率阈值和门限值。其中,所说的迁移的总时间是指,从开始迁移到迁移全部完成为止所需的时间,停机时间是指从在源物理主机上挂起目标虚拟机到在目的物理主机上恢复目标虚拟机所需的时间。
一些实施方式中,根据所述迁移的总时间和停机时间修正所述脏页变化率阈值和门限值可包括:判断所述迁移的总时间大于迁移时间阈值时,为了减少迁移时间,可按照第一预设梯度减小所述脏页变化率阈值范围的下限值,以尽快满足终止条件,减少迭代次数,缩短迁移的总时间;判断所述停机时间大于停机时间阈值时,为了缩短停机时间,提高服务质量,可按照第二预设梯度增大所述门限值,以增加迭代次数,尽量减少剩余内存脏页的数量,从而缩短虚拟机的停机时间。以脏页变化率阈值范围的下限值预设为0.2为例,所述第一预设梯度可以是0.1;另外,所述第二预设梯度可以是1。
以上,本发明实施例公开了一种虚拟机迁移方法,该方法采用预拷贝过程中,在每一轮迭代拷贝结束时,计算出脏页变化率,即,当前一轮迭代拷贝相对于前一轮迭代拷贝的剩余内存脏页数量变化的速率,统计所述脏页变化率落入脏页变化率阈值范围的次数,若所述次数大于或等于门限值,则切换到后拷贝的技术方案,取得了以下技术效果:
相对于根据剩余内存脏页的数量或者迭代次数来判断是否满足预拷贝终止条件的现有技术,本发明实施例中根据脏页变化率来进行判断,脏页变化率表示当前一轮迭代拷贝相对于前一轮迭代拷贝的剩余内存脏页数量变化的速率,可以更好的反映迭代拷贝过程对总迁移时间的影响;并且,通过统计脏页变化率落入脏页变化率阈值范围的次数,在所述次数大于或等于门限值时切换到后拷贝,可以去除因网络和负载不正常波动对脏页变化率趋势的误判。从而,可以在更加合适的时机停止预拷贝切换到后,既不会因预拷贝迭代次数过多而造成总迁移时间的延长和总迁移的数据过多,从而可提高虚拟机迁移效率并减少系统资源的浪费;也不会因预拷贝迭代次数过少而造成后拷贝缺页严重,从而可以提高虚拟机的使用性能。
为了更好的实施本发明实施例的上述方案,下面还提供用于配合实施上述方案的相关装置。
请参考图2,本发明实施例提供一种虚拟机迁移装置200。该装置200可部署在源物理主机上,用于将运行在源物理主机上的目标虚拟机迁移到目的物理主机上。所说的源物理主机和目的物理主机是不同的计算机设备。
所述装置200可包括:热迁移模块210和控制模块220;
热迁移模块210,用于采用预拷贝方式将运行在源物理主机上的待迁移的目标虚拟机的内存数据向目的物理主机进行循环迭代拷贝;
控制模块220,用于在每一轮迭代拷贝结束时,计算脏页变化率,所述脏页变化率表示当前一轮迭代拷贝相对于前一轮迭代拷贝的剩余内存脏页数量变化的速率;判断所述脏页变化率是否落入脏页变化率阈值范围;统计所述脏页变化率落入脏页变化率阈值范围的次数,判断所述次数是否大于或等于门限值;
热迁移模块210,还用于若所述控制模块220判断所述次数大于或等于门限值,则采用后拷贝方式向所述目的物理主机迁移所述目标虚拟机。
本发明一些实施例中,所述控制模块220可包括:
计算单元,用于计算第i+1轮迭代拷贝后的脏页变化率R i+1=(Mi+1-Mi)/(ti+1-ti),其中Mi表示第i轮迭代拷贝结束后的内存脏页数量,ti表示第i轮迭代拷贝的结束时间;Mi+1表示第i+1轮迭代拷贝结束后的内存脏页数量为,ti+1表示第i+1轮迭代拷贝的结束时间,Ri+1表示第i+1轮迭代拷贝相对于第i轮迭代拷贝的剩余内存脏页数量变化的速率。
本发明一些实施例中,所述热迁移模块可具体用于在所述源物理主机上将所述目标虚拟机挂起;将所述目标虚拟机的处理器状态寄存器数据和内存脏页位图拷贝到所述目的物理主机;以便在所述目的物理主机上恢复运行所述目标虚拟机;将所述源物理主机上剩余的所述目标虚拟机的内存页面拷贝到所述目的物理主机。
本发明一些实施例中,所述装置还可包括:
阈值管理模块,用于在所述目标虚拟机迁移完成后,计算迁移的总时间和所述目标虚拟机的停机时间;判断所述迁移的总时间大于迁移时间阈值时,按照第一预设梯度减小所述脏页变化率阈值范围的下限值;判断所述停机时间大于停机时间阈值时,按照第二预设梯度增大所述门限值。
可以理解,本发明实施例的虚拟机迁移装置的各个功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可参照上述方法实施例中的相关描述,此处不再赘述。
以上,本发明实施例公开了一种虚拟机迁移装置,该装置采用预拷贝过程中,在每一轮迭代拷贝结束时,计算出脏页变化率,即,当前一轮迭代拷贝相对于前一轮迭代拷贝的剩余内存脏页数量变化的速率,统计所述脏页变化率落入脏页变化率阈值的次数,若所述次数大于或等于门限值,则切换到后拷贝的技术方案,取得了以下技术效果:
相对于根据剩余内存脏页的数量或者迭代次数来判断是否满足预拷贝终止条件的现有技术,本发明实施例中根据脏页变化率来进行判断,脏页变化率表示当前一轮迭代拷贝相对于前一轮迭代拷贝的剩余内存脏页数量变化的速率,可以更好的反映迭代拷贝过程对总迁移时间的影响;并且,通过统计脏页变化率落入脏页变化率阈值范围的次数,在所述次数大于或等于门限值时切换到后拷贝,可以去除因网络和负载不正常波动对脏页变化率趋势的误判。从而,可以在更加合适的时机切换到后拷贝,既不会因预拷贝迭代次数过多而造成总迁移时间的延长和总迁移的数据过多,从而可提高虚拟机迁移效率并减少系统资源的浪费;也不会因预拷贝迭代次数过少而造成后拷贝缺页严重,从而可以提高虚拟机的使用性能。
为便于更好的理解本发明实施例提供的技术方案,下面结合图3所示的物理主机30进一步进行介绍。
本发明实施例技术方案用于将运行在源物理主机上的目标虚拟机迁移到目的物理主机上。所说的源物理主机(亦可称为源物理服务器)或目的物理主机(亦可称为目的物理服务器)均为部署虚拟机的计算机设备。
图3是本发明实施例提出的物理主机30(即计算机设备)的软硬件体系架构示意图,该体系架构主要包括三个层次:硬件层、宿主机(Host)和虚拟机(VM)。其中,Host运行在硬件层之上的、至少一个虚拟机VM运行在Host之上,其中,硬件层,例如可以包括处理器和存储器,宿主机Host可以是虚拟机监控器(VMM);此外,有时VMM和1个特权虚拟机配合,两者结合组成宿主机Host。
需要说明的是,本发明实施例提供的虚拟机迁移装置200可以是对应于宿主机(如虚拟机管理层),换句话说,宿主机Host包括前述实施例的虚拟机迁移装置,换言之,即虚拟机迁移装置可部署在宿主机中,或者可由宿主机实现虚拟机迁移装置的功能;更具体的,本发明实施例的虚拟机迁移装置可以是对应于特权虚拟机,换句话说,虚拟机迁移装置可部署在特权虚拟机中,或者可由特权虚拟机实现虚拟机迁移装置的功能,以及上述至少一个虚拟机VM包括待迁移的目标虚拟机。
本发明实施例为了解决热迁移混合拷贝方法中预拷贝和后拷贝切换时机难以确定的问题,提出了一种自适应迭代次数的技术方案。该方案能够较好的适应不同场景下的负载。混合迁移机制中,源物理主机上目标虚拟机的剩余内存脏页不再减少是预拷贝与后拷贝切换的最佳时机。同时,为了减少网络带宽和虚拟机实际负载的波动对剩余内存脏页数量的影响而导致对剩余脏页变化趋势的误判,本发明实施例还使用计数器统计脏页变化率小于脏页变化率阈值的次数,根据该次数是否达到门限值,来确定进行预拷贝与后拷贝切换的时机。
如图4所示,本实施例中,提供的虚拟机迁移装置200包括热迁移模块210和控制模块220,其中,控制模块220可包括:接口单元2201、规则函数单元2202、脏页变化识别单元2203、可信度决策单元2204、智能策略反馈单元2205。其中:
接口单元2201:一方面负责与热迁移模块进行交互,负责内存信息提取、时间提取、输出迭代终止指令等;另一方面,对外部输入的数据进行规则化,提取控制模块的结果,进程规范化输出。
规则函数单元2202:提供一系列函数,整合计算脏页变化识别单元和可信度决策单元输出的结果,使之成为可供接口单元处理的决策结果。
脏页变化识别单元2203:分为脏页获取子单元和计算子单元。用于获取虚拟机迭代拷贝过程中的脏页变化情况,加上时间维度,识别出脏页变化情况。其中,脏页获取子单元用于在每一轮迭代拷贝结束时,获取当前剩余的内存脏页数量;计算子单元用于计算最近两轮迭代拷贝的脏页变化率,判断所述脏页变化率是否大于或等于脏页变化率阈值;统计所述脏页变化率大于或等于脏页变化率阈值的次数,判断所述次数是否大于或等于门限值。一些实施方式中,计算子单元,可用于按照以下方式计算脏页变化率:记第i轮迭代拷贝后的内存脏页数量为Mi,时间为ti,第i+1轮迭代拷贝后的内存脏页数量为Mi+1,时间为ti+1,则,第i+1轮迭代拷贝后的脏页变化率R i+1=(Mi+1-Mi)/(ti+1-ti)。
可信度决策单元2204:该单元考虑实际应用场景中虚拟机负载、网络等不稳定因素,用于权衡当前决策的正确性。它可以包含若干可选策略和生效策略。其提供的策略中包括设定的脏页变化率阈值和门限值,脏页变化识别单元可根据策略中提供的脏页变化率阈值和门限值进行判断。可信度决策单元,可用于若脏页变化率大于或等于脏页变化率阈值的次数大于或等于门限值,则指示热迁移模块从预拷贝切换到后拷贝。
智能策略反馈单元2205:获取每次热迁移后的结果,经过分析、策略调整,添加或修改当前的可信度决策单元中的可选策略。具体可用于在目标虚拟机迁移完成后,计算迁移的总时间和所述目标虚拟机的停机时间;并根据所述迁移的总时间和停机时间修正所述脏页变化率阈值和门限值。判断所述迁移的总时间大于迁移时间阈值时,减小所述脏页变化率阈值;判断所述停机时间大于停机时间阈值时,增大所述门限值。
热迁移模块210:用于对虚拟机进行热迁移,包括:迁移开始时,采用预拷贝方式将运行在源物理主机上的目标虚拟机的内存数据向目的物理主机进行循环迭代拷贝;若所述控制模块的脏页变化识别单元判断所述次数大于或等于门限值,则停止预拷贝,切换为采用后拷贝方式向所述目的物理主机迁移所述目标虚拟机。
如图5所示,本场景实施例中,还提供一种虚拟机迁移方法,可包括:
500、将计数器的值初始化为0。
501、进行预拷贝,将运行在源物理主机上的待迁移的目标虚拟机的内存数据向目的物理主机进行循环迭代拷贝。
502、在当前的一轮迭代拷贝结束时,计算当前剩余的内存脏页数量。
每一轮迭代拷贝结束后,由于虚拟机管理层(如Kernel-based Virtual Machine,KVM)中采用将影子页表中对应主机物理页的客户虚拟页写保护并且维护一张影子页表的逆向映射表,即从主机物理地址到客户虚拟地址之间的转换表,这样虚拟机对内存页面或页目录的修改就可以被发现,该影子页表的这一部分也将被标记为内存脏页。通过对该影子页表的扫描可以发现这些被标记的内存脏页,并且可以统计出剩余脏页量。将ti时刻的内存脏页数量记为Mi。
503、计算脏页变化率。计算连续两次剩余脏页量之差,记为Di,Di=Mi-Mi-1。脏页变化率记为R i,则R i=Di/(ti-ti-1),所述脏页变化率表示当前一轮迭代拷贝相对于前一轮迭代拷贝的剩余内存脏页数量变化的速率。
504、判断脏页变化率R i是否大于或等于脏页变化率阈值范围的下限值;
假设脏页变化率阈值范围的下限值是α,上限值为+∞。如果脏页变化率大于或等于下限值α,则该脏页变化率即落入脏页变化率阈值范围。
505,若判断脏页变化率R i大于或等于α,则将计数器的值N加1,即,N=N+1。若脏页变化率R i小于α,则将计数器的值N不变。
506、判断N是否大于或等于门限值MAX。
507、若N大于或等于门限值MAX,则切换到后拷贝,即,采用后拷贝方式向所述目的物理主机迁移所述目标虚拟机剩余的内存数据。
若否,则返回预拷贝步骤,进行下一轮迭代拷贝。
可信度决策单元选择激活计数器策略。当计数器的值大于或等于设定的门限值MAX,例如3时,指示热迁移模块从预拷贝阶段切换到后拷贝阶段,否则继续进行预拷贝迭代。
508、修正步骤:由智能策略反馈单元分析本次迁移的总时间和停机时间,优化可信度决策单元的策略,对上述的脏页变化率阈值范围的下限值α和门限值MAX进行修正。例如,判断所述迁移的总时间大于迁移时间阈值时,按照第一预设梯度减小所述脏页变化率阈值范围的下限值,例如每次减小0.2;判断所述停机时间大于停机时间阈值时,按照第二预设梯度增大所述门限值,例如每次增加1。
本发明技术方案的终止条件可以替代预拷贝迁移机制中“剩余内存脏页量小于预先设定的阈值或迭代次数超过设置的最大迭代次数时,停止迭代拷贝”的机制。本实施例中,当判断所述脏页变化率是否大于或等于脏页变化率阈值,可认为内存脏页量不再减小;并且,当统计脏页变化率大于或等于脏页变化率阈值的次数达到门限值时,认为“脏页量不再减小”的结果可信,则切换为采用后拷贝继续进行虚拟机迁移。同时,使用智能策略反馈单元,分析每次迁移的总时间和停机时间,可优化可信度决策单元策略,使之更加符合预拷贝迁移的特性。
本发明技术方案不单纯使用剩余内存脏页数量进行判断,而是使用脏页变化率,即,当前一轮迭代拷贝相对于前一轮迭代拷贝的剩余内存脏页数量变化的速率,能够更好的反应出迭代过程对总迁移时间的影响;同时,使用计数器机制,统计脏页变化率落入脏页变化率阈值范围的次数,可去除由于网络和负载不正常波动对剩余脏页率趋势的误判。
本发明技术方案解决了热迁移混合拷贝机制中预拷贝和后拷贝切换时机难以确定的问题,提高了迁移的效率,降低了迁移中系统资源的无意义消耗量,同时可缩短停机时间,保证虚拟机在整个热迁移过程中的良好性能。从而使系统的整体性能得到提升的同时,每台虚拟机的性能表现也将更加稳定。
本发明实施例还提供一种计算机存储介质,该计算机存储介质可存储有程序,该程序执行时包括上述方法实施例中记载的虚拟机迁移方法的部分或全部步骤。
图6是本发明实施例提供的另一种物理主机(即计算机设备)的结构示意图。计算机设备600可包括输入设备603(可选的)、输出设备604(可选的)、处理器601和存储器602。
存储器602可以包括只读存储器和随机存取存储器,并向处理器601提供指令和数据。存储器602的一部分还可以包括非易失性随机存取存储器(NVRAM)。
在一些实施方式中,存储器602存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:
宿主机6052:作为管理层,用以完成硬件资源的管理、分配;为虚拟机呈现虚拟硬件平台;实现虚拟机的调度和隔离。其中,Host可能是虚拟机监控器(VMM);此外,有时VMM和1个特权虚拟机配合,两者结合组成Host。其中,虚拟硬件平台对其上运行的各个虚拟机提供各种硬件资源,如提供虚拟处理器、内存、虚拟磁盘、虚拟网卡等等。其中,该虚拟磁盘可对应Host的一个文件或者一个逻辑块设备。虚拟机则运行在Host为其准备的虚拟硬件平台上,Host上运行一个或多个虚拟机。
虚拟机6051:通过虚拟机软件可以在一台物理计算机上模拟出一台或者多台虚拟的计算机,而这些虚拟机就像真正的计算机那样进行工作,虚拟机上可以安装操作系统和应用程序,虚拟机还可访问网络资源。对于在虚拟机中运行的应用程序而言,虚拟机就像是在真正的计算机中进行工作。其中,多个虚拟机6051中可包括一个或多个待迁移的目标虚拟机。
宿主机中包括但不限于迁移模块210和控制模块220。
宿主机中各模块的具体实现参见图2所示实施例中的相应模块,在此不赘述。
在本发明实施例中,通过调用存储器602存储的操作指令(即表征宿主机6052的操作指令,应当理解的是,该操作指令可存储在宿主机6052中),处理器601用于:采用预拷贝方式将运行在源物理主机上的待迁移的目标虚拟机的内存数据向目的物理主机进行循环迭代拷贝;在每一轮迭代拷贝结束时,计算脏页变化率,所述脏页变化率表示当前一轮迭代拷贝相对于前一轮迭代拷贝的剩余内存脏页数量变化的速率;判断所述脏页变化率是否落入脏页变化率阈值范围;统计所述脏页变化率落入脏页变化率阈值范围的次数,判断所述次数是否大于或等于门限值;若所述次数大于或等于门限值,则采用后拷贝方式向所述目的物理主机迁移所述目标虚拟机。
相对于根据剩余内存脏页的数量或者迭代次数来判断是否满足预拷贝终止条件的现有技术,本发明实施例中根据脏页变化率来进行判断,脏页变化率表示当前一轮迭代拷贝相对于前一轮迭代拷贝的剩余内存脏页数量变化的速率,可以更好的反映迭代拷贝过程对总迁移时间的影响;并且,通过统计脏页变化率落入脏页变化率阈值的次数,在所述次数大于或等于门限值时切换到后拷贝,可以去除因网络和负载不正常波动对脏页变化率趋势的误判。从而,可以在更加合适的时机切换到后拷贝,既不会因预拷贝迭代次数过多而造成总迁移时间的延长和总迁移的数据过多,从而可提高虚拟机迁移效率并减少系统资源的浪费;也不会因预拷贝迭代次数过少而造成后拷贝缺页严重,从而可以提高虚拟机的使用性能。
处理器601控制计算机设备600的操作,处理器601还可以称为CPU(CentralProcessing Unit,中央处理单元)。存储器602可以包括只读存储器和随机存取存储器,并向处理器601提供指令和数据。存储器602的一部分还可以包括非易失性随机存取存储器(NVRAM)。具体的应用中,物理主机600的各个组件通过总线系统605耦合在一起,其中总线系统605除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线系统605。
上述本发明实施例揭示的方法可以应用于处理器601中,或者由处理器601实现。处理器601可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器601中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器601可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器602,处理器601读取存储器602中的信息,结合其硬件完成上述方法的步骤。
可选地,处理器601还可计算第i+1轮迭代拷贝后的脏页变化率R i+1=(Mi+1-Mi)/(ti+1-ti),其中Mi表示第i轮迭代拷贝结束后的内存脏页数量,ti表示第i轮迭代拷贝的结束时间;Mi+1表示第i+1轮迭代拷贝结束后的内存脏页数量为,ti+1表示第i+1轮迭代拷贝的结束时间,R i+1表示第i+1轮迭代拷贝相对于第i轮迭代拷贝的剩余内存脏页数量变化的速率。
可选地,在采用后拷贝方式向所述目的物理主机迁移所述目标虚拟机,处理器601具体可在所述源物理主机上将所述目标虚拟机挂起;将所述目标虚拟机的处理器状态寄存器数据和内存脏页位图拷贝到所述目的物理主机;在所述目的物理主机上恢复运行所述目标虚拟机;将所述源物理主机上剩余的所述目标虚拟机的内存页面拷贝到所述目的物理主机。
可选地,处理器601还可在所述目标虚拟机迁移完成后,计算迁移的总时间和所述目标虚拟机的停机时间;判断所述迁移的总时间大于迁移时间阈值时,按照第一预设梯度减小所述脏页变化率阈值范围的下限值;判断所述停机时间大于停机时间阈值时,按照第二预设梯度增大所述门限值。
参见图7,本发明实施例还提供一种计算机系统,可包括:
至少一个物理主机(即计算机设备)600。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
综上,本发明实施例中计算机设备采用预拷贝方式将运行在源物理主机上的待迁移的目标虚拟机的内存数据向目的物理主机进行循环迭代拷贝;在每一轮迭代拷贝结束时,计算脏页变化率,即,当前一轮迭代拷贝相对于前一轮迭代拷贝的剩余内存脏页数量变化的速率;判断所述脏页变化率是否落入脏页变化率阈值;统计所述脏页变化率落入脏页变化率阈值的次数,判断所述次数是否大于或等于门限值;若所述次数大于或等于门限值,则采用后拷贝方式向所述目的物理主机迁移所述目标虚拟机。取得了以下技术效果:
相对于根据剩余内存脏页的数量或者迭代次数来判断是否满足预拷贝终止条件的现有技术,本发明实施例中根据脏页变化率来进行判断,脏页变化率表示当前一轮迭代拷贝相对于前一轮迭代拷贝的剩余内存脏页数量变化的速率,可以更好的反映迭代拷贝过程对总迁移时间的影响;并且,通过统计脏页变化率落入脏页变化率阈值的次数,在所述次数大于或等于门限值时切换到后拷贝,可以去除因网络和负载不正常波动对脏页变化率趋势的误判。从而,可以在更加合适的时机切换到后拷贝,既不会因预拷贝迭代次数过多而造成总迁移时间的延长和总迁移的数据过多,从而可提高虚拟机迁移效率并减少系统资源的浪费;也不会因预拷贝迭代次数过少而造成后拷贝缺页严重,从而可以提高虚拟机的使用性能。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其它实施例的相关描述。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述动作顺序的限制,因为依据本发明,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件(例如处理器)来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。
以上对本发明实施例所提供的一种虚拟机迁移方法和装置及物理主机进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (10)

1.一种虚拟机迁移方法,其特征在于,包括:
采用预拷贝方式将运行在源物理主机上的待迁移的目标虚拟机的内存数据向目的物理主机进行循环迭代拷贝;
在每一轮迭代拷贝结束时,计算脏页变化率,所述脏页变化率表示当前一轮迭代拷贝相对于前一轮迭代拷贝的剩余内存脏页数量变化的速率;
判断所述脏页变化率是否落入脏页变化率阈值范围;
统计所述脏页变化率落入脏页变化率阈值范围的次数,判断所述次数是否大于或等于门限值;
若所述次数大于或等于门限值,则采用后拷贝方式向所述目的物理主机迁移所述目标虚拟机。
2.根据权利要求1所述的方法,其特征在于,所述计算脏页变化率包括:
计算第i+1轮迭代拷贝后的脏页变化率Ri+1=(Mi+1-Mi)/(ti+1-ti),其中Mi表示第i轮迭代拷贝结束后的内存脏页数量,ti表示第i轮迭代拷贝的结束时间;Mi+1表示第i+1轮迭代拷贝结束后的内存脏页数量,ti+1表示第i+1轮迭代拷贝的结束时间,Ri+1表示第i+1轮迭代拷贝相对于第i轮迭代拷贝的剩余内存脏页数量变化的速率。
3.根据权利要求1或2所述的方法,其特征在于,所述采用后拷贝方式向所述目的物理主机迁移所述目标虚拟机包括:
在所述源物理主机上将所述目标虚拟机挂起;
将所述目标虚拟机的处理器状态寄存器数据和内存脏页位图拷贝到所述目的物理主机;
在所述目的物理主机上恢复运行所述目标虚拟机;
将所述源物理主机上剩余的所述目标虚拟机的内存页面拷贝到所述目的物理主机。
4.根据权利要求1或2所述的方法,其特征在于,还包括:
在所述目标虚拟机迁移完成后,计算迁移的总时间和所述目标虚拟机的停机时间;
判断所述迁移的总时间大于迁移时间阈值时,按照第一预设梯度减小所述脏页变化率阈值范围的下限值;
判断所述停机时间大于停机时间阈值时,按照第二预设梯度增大所述门限值。
5.一种虚拟机迁移装置,其特征在于,包括:
热迁移模块,用于采用预拷贝方式将运行在源物理主机上的待迁移的目标虚拟机的内存数据向目的物理主机进行循环迭代拷贝;
控制模块,用于在每一轮迭代拷贝结束时,计算脏页变化率,所述脏页变化率表示当前一轮迭代拷贝相对于前一轮迭代拷贝的剩余内存脏页数量变化的速率;判断所述脏页变化率是否落入脏页变化率阈值范围;统计所述脏页变化率落入脏页变化率阈值范围的次数,判断所述次数是否大于或等于门限值;
所述热迁移模块,还用于若所述控制模块判断所述次数大于或等于门限值,则采用后拷贝方式向所述目的物理主机迁移所述目标虚拟机。
6.根据权利要求5所述的装置,其特征在于,所述控制模块包括:
计算单元,用于计算第i+1轮迭代拷贝后的脏页变化率Ri+1=(Mi+1-Mi)/(ti+1-ti),其中Mi表示第i轮迭代拷贝结束后的内存脏页数量,ti表示第i轮迭代拷贝的结束时间;Mi+1表示第i+1轮迭代拷贝结束后的内存脏页数量,ti+1表示第i+1轮迭代拷贝的结束时间,Ri+1表示第i+1轮迭代拷贝相对于第i轮迭代拷贝的剩余内存脏页数量变化的速率。
7.根据权利要求5或6所述的装置,其特征在于:
所述热迁移模块,具体用于在所述源物理主机上将所述目标虚拟机挂起;将所述目标虚拟机的处理器状态寄存器数据和内存脏页位图拷贝到所述目的物理主机;以便在所述目的物理主机上恢复运行所述目标虚拟机;将所述源物理主机上剩余的所述目标虚拟机的内存页面拷贝到所述目的物理主机。
8.根据权利要求5或6所述的装置,其特征在于,还包括:
阈值管理模块,用于在所述目标虚拟机迁移完成后,计算迁移的总时间和所述目标虚拟机的停机时间;判断所述迁移的总时间大于迁移时间阈值时,按照第一预设梯度减小所述脏页变化率阈值范围的下限值;判断所述停机时间大于停机时间阈值时,按照第二预设梯度增大所述门限值。
9.一种物理主机,其特征在于,包括,硬件层、运行在所述硬件层之上的宿主机Host、以及运行在所述Host之上的至少一个虚拟机VM,其中,所述宿主机Host包括如权利要求5至8任一项所述的虚拟机迁移装置,以及所述至少一个虚拟机VM包括待迁移的目标虚拟机。
10.一种物理主机,其特征在于,包括:处理器和存储器,其中:
所述存储器用于存储用于表征至少一个虚拟机的操作指令和表征宿主机的操作指令,其中所述至少一个虚拟机包括待迁移的目标虚拟机;
通过调用所述存储器存储的表征所述宿主机的操作指令,所述处理器用于采用预拷贝方式将运行在源物理主机上的待迁移的目标虚拟机的内存数据向目的物理主机进行循环迭代拷贝;在每一轮迭代拷贝结束时,计算脏页变化率,所述脏页变化率表示当前一轮迭代拷贝相对于前一轮迭代拷贝的剩余内存脏页数量变化的速率;判断所述脏页变化率是否落入脏页变化率阈值范围;统计所述脏页变化率落入脏页变化率阈值范围的次数,判断所述次数是否大于或等于门限值;若所述次数大于或等于门限值,则采用后拷贝方式向所述目的物理主机迁移所述目标虚拟机。
CN201410182147.7A 2014-04-30 2014-04-30 一种虚拟机迁移方法和装置及物理主机 Active CN103955399B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410182147.7A CN103955399B (zh) 2014-04-30 2014-04-30 一种虚拟机迁移方法和装置及物理主机

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410182147.7A CN103955399B (zh) 2014-04-30 2014-04-30 一种虚拟机迁移方法和装置及物理主机

Publications (2)

Publication Number Publication Date
CN103955399A CN103955399A (zh) 2014-07-30
CN103955399B true CN103955399B (zh) 2017-06-20

Family

ID=51332675

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410182147.7A Active CN103955399B (zh) 2014-04-30 2014-04-30 一种虚拟机迁移方法和装置及物理主机

Country Status (1)

Country Link
CN (1) CN103955399B (zh)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104156255B (zh) * 2014-07-31 2017-10-17 华为技术有限公司 一种虚拟机迁移方法、虚拟机迁移装置及源物理主机
CN104750620B (zh) * 2015-04-23 2018-02-16 四川师范大学 一种内存迁移方法及装置
EP3314424A4 (en) * 2015-06-26 2019-02-06 Intel Corporation MIGRATION TECHNIQUES OF VIRTUAL MACHINES
US11074092B2 (en) 2015-12-18 2021-07-27 Intel Corporation Virtual machine batch live migration
CN108369524A (zh) * 2015-12-21 2018-08-03 英特尔公司 用于虚拟机的协同迁移的技术
CN107465626A (zh) * 2016-06-03 2017-12-12 阿里巴巴集团控股有限公司 一种虚拟机热迁移方法及装置
CN106101211B (zh) * 2016-06-08 2019-09-06 西安电子科技大学 一种基于内存页改写概率预测的载波迁移方法
US10241931B2 (en) * 2016-07-29 2019-03-26 Advanced Micro Devices, Inc. Controlling access to pages in a memory in a computing device
CN107797878A (zh) * 2016-09-06 2018-03-13 阿里巴巴集团控股有限公司 虚拟机热迁移处理方法及系统
CN107291527B (zh) * 2017-05-23 2020-04-03 华为技术有限公司 预拷贝迁移停止预判方法及装置
CN107368349B (zh) * 2017-07-17 2020-09-08 郑州云海信息技术有限公司 一种资源管理方法及装置
CN107479944B (zh) * 2017-07-20 2021-11-30 上海交通大学 混合云模式下的虚拟机内存自适应热迁移调度方法及系统
CN109324752B (zh) * 2017-07-31 2023-11-03 伊姆西Ip控股有限责任公司 用于控制脏页生成的系统、介质和方法
CN107885580A (zh) * 2017-11-22 2018-04-06 深信服科技股份有限公司 一种云迁移方法、装置、设备及存储介质
CN110134490B (zh) * 2018-02-08 2023-12-29 中兴通讯股份有限公司 虚拟机动态迁移方法、设备及存储介质
CN108595250B (zh) * 2018-05-02 2021-05-28 南京大学 一种面向IaaS云平台的资源调度效率优化方法及系统
US20200120211A1 (en) * 2018-10-10 2020-04-16 Avaya Inc. Dynamic agent media type selection based on communication session quality of service parameters
CN111352695B (zh) * 2018-12-24 2023-09-29 中国电信股份有限公司 虚拟机迁移方法、装置和计算机可读存储介质
CN112306650B (zh) * 2019-07-31 2024-03-26 华为技术有限公司 虚拟机热迁移方法和通信设备
CN112416507A (zh) * 2019-08-22 2021-02-26 华为技术有限公司 一种虚拟机迁移方法以及设备
CN111176781A (zh) * 2019-08-23 2020-05-19 腾讯科技(深圳)有限公司 虚拟机热迁移方法、装置、存储介质与电子设备
CN110737509B (zh) * 2019-10-18 2022-04-19 杭州朗和科技有限公司 热迁移处理方法及装置、存储介质和电子设备
CN111090496B (zh) * 2019-12-06 2022-12-20 苏州浪潮智能科技有限公司 一种基于自动调节迭代时间的虚拟机内存迁移方法和设备
CN113051024B (zh) * 2019-12-26 2022-08-09 阿里巴巴集团控股有限公司 虚拟机热迁移方法、装置、电子设备及存储介质
CN111638937A (zh) * 2020-04-23 2020-09-08 龙芯中科技术有限公司 虚拟机的迁移方法、装置、电子设备及存储介质
US11567666B2 (en) * 2021-03-24 2023-01-31 Ati Technologies Ulc Handling the migration of pages of memory accessible by input-output devices
CN114327745B (zh) * 2021-11-25 2022-10-25 北京志凌海纳科技有限公司 一种跨主机虚拟机存储热迁移的方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102185774A (zh) * 2011-05-10 2011-09-14 中兴通讯股份有限公司 虚拟机无缝迁移的方法、管理器及系统
CN102662723A (zh) * 2012-02-28 2012-09-12 北京邮电大学 一种基于停机时间阈值的虚拟机内存迁移方法
CN103049308A (zh) * 2012-11-30 2013-04-17 华为技术有限公司 实现虚拟机热迁移的方法、装置及系统
CN103365704A (zh) * 2012-03-26 2013-10-23 中国移动通信集团公司 虚拟机迁移中的内存预拷贝方法及执行该方法的装置和系统
WO2014030221A1 (ja) * 2012-08-22 2014-02-27 株式会社日立製作所 仮想計算機システム、管理計算機及び仮想計算機管理方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102185774A (zh) * 2011-05-10 2011-09-14 中兴通讯股份有限公司 虚拟机无缝迁移的方法、管理器及系统
CN102662723A (zh) * 2012-02-28 2012-09-12 北京邮电大学 一种基于停机时间阈值的虚拟机内存迁移方法
CN103365704A (zh) * 2012-03-26 2013-10-23 中国移动通信集团公司 虚拟机迁移中的内存预拷贝方法及执行该方法的装置和系统
WO2014030221A1 (ja) * 2012-08-22 2014-02-27 株式会社日立製作所 仮想計算機システム、管理計算機及び仮想計算機管理方法
CN103049308A (zh) * 2012-11-30 2013-04-17 华为技术有限公司 实现虚拟机热迁移的方法、装置及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
基于内存混合复制方式的虚拟机在线迁移机制;陈阳等;《计算机学报》;20111231;第34卷(第12期);第2278-2291页 *
基于脏页率的虚拟机动态内存迁移;邹潇等;《通信技术》;20130430;第46卷(第3期);第101-103,106页 *

Also Published As

Publication number Publication date
CN103955399A (zh) 2014-07-30

Similar Documents

Publication Publication Date Title
CN103955399B (zh) 一种虚拟机迁移方法和装置及物理主机
Sahni et al. A hybrid approach to live migration of virtual machines
CN102821158B (zh) 一种实现虚拟机迁移的方法和云系统
CN104965757B (zh) 虚拟机热迁移的方法、虚拟机迁移管理装置及系统
US8191063B2 (en) Method for migrating a plurality of virtual machines by associating files and state information with a single logical container
CN103365704B (zh) 虚拟机迁移中的内存预拷贝方法及执行该方法的装置和系统
US8904386B2 (en) Running a plurality of instances of an application
CN107247619B (zh) 虚拟机热迁移方法、装置、系统、存储介质及设备
CN102136993B (zh) 一种数据迁移的方法、装置和系统
CN104123171B (zh) 基于numa架构的虚拟机迁移方法及系统
US20130232483A1 (en) Cloud of Virtual Clouds for Increasing Isolation Among Execution Domains
WO2014029219A1 (zh) 虚拟化集群整合方法、装置及虚拟化集群系统
CN103473115B (zh) 虚拟机放置方法和装置
CN107291527B (zh) 预拷贝迁移停止预判方法及装置
US9104457B2 (en) Virtual machine-to-image affinity on a physical server
US11831410B2 (en) Intelligent serverless function scaling
TW201322134A (zh) 虛擬機管理系統及方法
US11809888B2 (en) Virtual machine memory migration facilitated by persistent memory devices
CN107479944A (zh) 混合云模式下的虚拟机内存自适应热迁移调度方法及系统
US20180088975A1 (en) Virtual Machine Live Migration Using Intelligent Order Of Pages To Transfer
CN109814978A (zh) 基于多OpenStack平台的跨集群迁移方法及系统
CN104268003A (zh) 一种适用于虚拟机动态迁移的内存状态迁移方法
US9804878B2 (en) Using a status indicator for a merge operation for writing data associated with a virtual machine
CN105335223A (zh) 源主机和目的主机上的虚拟机内存迁移装置、方法及系统
US20150169337A1 (en) Intelligent virtual machine (vm) re-location

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20201102

Address after: 625, room 269, Connaught platinum Plaza, No. 518101, Qianjin Road, Xin'an street, Shenzhen, Guangdong, Baoan District

Patentee after: SHENZHEN SHANGGE INTELLECTUAL PROPERTY SERVICE Co.,Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.

TR01 Transfer of patent right

Effective date of registration: 20201130

Address after: 213000 No. 11 Qingyang North Road, Tianning District, Changzhou, Jiangsu

Patentee after: Changzhou Hong quantity Electronic Technology Co.,Ltd.

Address before: 625, room 269, Connaught platinum Plaza, No. 518101, Qianjin Road, Xin'an street, Shenzhen, Guangdong, Baoan District

Patentee before: SHENZHEN SHANGGE INTELLECTUAL PROPERTY SERVICE Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220823

Address after: Tianning District Hehai road 213000 Jiangsu city of Changzhou province No. 9

Patentee after: Changzhou Tianning Communication Technology Industrial Park Co.,Ltd.

Address before: 213000 No. 11 Qingyang North Road, Tianning District, Changzhou City, Jiangsu Province

Patentee before: Changzhou Hong quantity Electronic Technology Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20230202

Address after: Tianning District Hehai road 213000 Jiangsu city of Changzhou province No. 9

Patentee after: Changzhou Hengtang Technology Industry Co.,Ltd.

Address before: Tianning District Hehai road 213000 Jiangsu city of Changzhou province No. 9

Patentee before: Changzhou Tianning Communication Technology Industrial Park Co.,Ltd.

TR01 Transfer of patent right