一种虚拟机迁移方法及装置的制造方法_2

文档序号:9672963阅读:来源:国知局
用于:
[0065]根据所述确定单元确定的所述方差和所述曲线斜率值,判断所述预期剩余时间是否收敛;
[0066]所述确定单元,具体用于按如下方式根据设定迁移次数中记录的预期剩余时间,确定迁移策略:
[0067]若所述判断单元的判断结果为所述预期剩余时间收敛,则确定迁移策略为停机进行迁移;
[0068]若所述判断单元的判断结果为所述预期剩余时间不收敛,则确定迁移策略为返回执行将源虚拟机内存中存储待迁移数据的内存页标记为脏页的过程。
[0069]结合第二方面的上述任一种实现方式,在第五种实现方式中,所述确定单元,还用于:
[0070]根据设定的流量限定值和所述设定的时间,确定所述迁移单元在所述设定的时间内能够传送数据量的最大门限值;
[0071]所述判断单元,还用于:
[0072]判断当前累计发送数据量是否达到所述确定单元确定的所述最大门限值;
[0073]所述迁移单元,具体用于按如下方式在设定的时间内,向目标虚拟机迁移标记为脏页的内存页中存储的待迁移数据:
[0074]若所述判断单元的判断结果为当前累计发送数据量达到所述最大门限值,则停止向目标虚拟机迁移标记为脏页的内存页中存储的待迁移数据,直至迁移时间达到所述设定的时间;
[0075]若所述判断单元的判断结果为当前累计发送数据量未达到所述最大门限值,则继续向目标虚拟机迁移标记为脏页的内存页中存储的待迁移数据,直至迁移时间达到所述设定的时间。
[0076]本发明实施例提供的虚拟机迁移方法和装置,将存储待迁移数据的内存页标记为脏页,并设定的时间内,向目标虚拟机迁移标记为脏页的内存页中存储的待迁移数据,若迁移时间达到所述设定的时间,则确定用于迁移源虚拟机中标记为脏页的内存页中存储的且未迁移的待迁移数据的迁移策略,即本发明实施例中通过在设定的时间内进行待迁移数据的迁移,能够对迁移过程进行限制,并能够在设定的时间达到后,确定相应的迁移策略,依据确定的迁移策略进行未迁移数据的迁移,能够在每次迁移结束后,进行迁移策略的调整,故具有自动适应网络环境的能力,故适用于网络环境相对较复杂的ARM平台。
【附图说明】
[0077]图1为本发明实施例提供的虚拟机迁移方法实现流程图;
[0078]图2为本发明实施例提供的ARM虚拟机内存页页表示意图;
[0079]图3为本发明实施例提供的脏页跟踪与同步实现过程示意图;
[0080]图4为本发明实施例提供的脏页位图标记示意图;
[0081]图5为本发明实施例提供的流量控制示意图;
[0082]图6为本发明实施例提供的迭代迁移控制过程示意图;
[0083]图7为本发明实施例提供的迁移性能对比图;
[0084]图8A-图8B为本发明实施例提供的虚拟机迁移装置构成示意图;
[0085]图9为本发明实施例提供的虚拟机迁移装置构成示意图。
【具体实施方式】
[0086]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,并不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0087]本发明实施例提供的虚拟机迁移方法,具有自动适应网络环境的能力,适用于基于ARM平台的虚拟机迁移。本发明实施例中采用内存预拷贝方法(pre-copy)实现虚拟机的动态迁移,即通过迭代传输的方式把源虚拟机中存储待迁移数据的内存页一轮轮迁移到目标虚拟机上,将源虚拟机中存储待迁移数据的内存页,标记为脏页,并为每一轮迁移设定相应的时间进行待迁移数据的迁移,即在设定的时间内进行第一次迁移,向目标虚拟机迁移标记为脏页的内存页中存储的待迁移数据,在第一次迁移的时间达到设定的时间后,确定相应的迁移策略,并按照确定的迁移策略进行第二次迁移,第二次迁移的待迁移数据包括第一次迁移中余下的未迁移的原始数据,以及在第一次迁移过程中被修改的内存页中存储的待迁移数据,故第二次迁移中被标记为脏页的内存页中存储的且未迁移的待迁移数据包括第一次迁移中余下的未迁移的原始数据,以及在第一次迁移过程中被修改的内存页中存储的待迁移数据。
[0088]图1所示为本发明实施例提供的虚拟机迁移方法实现过程流程图,该方法的执行主体为虚拟机迁移装置,该虚拟机迁移装置可以是一个安装在物理主机上的具有管控功能的控制器,例如可以是虚拟机监控器。当然该虚拟机迁移装置也可以是虚拟机监控器中的部件,例如可以是集成在虚拟机监控器中并安装有执行相应功能的软件程序的部件。当然本发明实施例并不引以为限,还可以是其它具有管控功能,并能够执行相应功能的控制器件。如图1所示,该方法包括:
[0089]S101:将源虚拟机内存中存储待迁移数据的内存页,标记为脏页。
[0090]在实现虚拟机动态迁移的过程中,源虚拟机仍处于工作状态,故源虚拟机内存页可能还会被访问,即源虚拟机的内存页可能被修改,如果被修改的内存页已经发送到目标虚拟机,则造成源虚拟机与目标虚拟机的内存页中存储的数据不一致。故本发明实施例中若进行的虚拟机迁移是首次迁移,则待迁移数据是源虚拟机内存中存储的需要迁移到目标虚拟机上的初始待迁移数据。本发明实施例中若进行的虚拟机迁移为非首次迁移,则待迁移数据包括上一次迁移中未迁移的初始待迁移数据以及在上一次迁移过程中被修改的内存页中存储的待迁移数据。
[0091]本发明实施例中将源虚拟机内存中存储待迁移数据的内存页,全部标记为脏页,通过将该标记的脏页传输给目标虚拟机,保证迁移的一致性。
[0092]S102:在设定的时间内,向目标虚拟机迁移S101中标记为脏页的内存页中存储的待迁移数据。
[0093]优选的,本发明实施例中可将完成虚拟机迁移的迁移时间划分为若干个时间片,该时间片即为每次迁移所用的时间,每次迁移所有的时间片的具体时间长度可根据实际情况进行设定,确定了每次迁移所有的设定时间后,则在该设定的时间内迁移S101中标记为脏页的内存页中存储的待迁移数据。
[0094]S103:若迁移时间达到设定的时间,则确定迁移策略。
[0095]本发明实施例中迁移时间达到设定的时间,表明本次迁移结束,在本次迁移结束后,确定用于迁移源虚拟机中标记为脏页的内存页中存储的且未迁移的待迁移数据的迁移策略。
[0096]S104:依据S103中确定的迁移策略将源虚拟机中标记为脏页的内存页中存储的且未迁移的待迁移数据,迁移到目标虚拟机。
[0097]本发明实施例提供的虚拟机迁移方法,将存储待迁移数据的内存页标记为脏页,并设定的时间内,向目标虚拟机迁移标记为脏页的内存页中存储的待迁移数据,若迁移时间达到所述设定的时间,则确定用于迁移源虚拟机中标记为脏页的内存页中存储的且未迁移的待迁移数据的迁移策略,即本发明实施例中通过在设定的时间内进行待迁移数据的迁移,能够对迁移过程进行限制,并能够在设定的时间达到后,确定相应的迁移策略,依据确定的迁移策略进行未迁移数据的迁移,能够在每次迁移结束后,进行迁移策略的调整,故具有自动适应网络环境的能力,故适用于网络环境相对较复杂的ARM平台。
[0098]本发明实施例S101中将源虚拟机内存中存储待迁移数据的内存页,标记为脏页的过程,可采用脏页位图跟踪与同步机制实现。基于ARM平台的虚拟机内存页的页表结构如图2所示,本发明实施例中可通过ap【2:1】位的置位来标记脏页,采用脏页位图跟踪与同步机制,实现将源虚拟机内存中存储待迁移数据的内存页,标记为脏页的具体实现过程如图3所示,包括:
[0099]S1011:标记源虚拟机中存储待迁移初始数据的所有内存页为“脏页跟踪”状态。
[0100]本发明实施例中可通过标记源虚拟机中虚拟机监控器的mem_sl0t,实现将源虚拟机中存储待迁移初始数据的所有内存页标记为“脏页跟踪”状态。
[0101]本发明实施例中待迁移初始数据即未进行虚拟机迁移之前,源虚拟机中原本需要迁移到目标虚拟机中的数据。
[0102]S1012:限制源虚拟机中所有内存页的写权限,使得源虚拟机中的内存页不能被访问。
[0103]本发明实施例中可访问源虚拟机的页目录,依次遍历源虚拟机中的所有内存页,将所有内存页表项的ap【2:1】位置位11。
[0104]S1013:为源虚拟机的内核层和用户层分别存储一个脏页的位图。
[0105]本发明实施例中可采用例如alloc函数,为源虚拟机的内核层和用户层分别存储一个脏页的位图,位图的大小和源虚拟机内存页的数量相同,每一位代表相应内存页为脏页(被修改过的内存页)或者净页(未被修改过的内存页),如图4所示。
[0106]S1014:将源虚拟机用户层的位图所有位置脏进行第一次迁移,并将源虚拟机内核层的位图所有位置净。
[0107]S1015:第一次迁移结束后,将内核层的位图与用户层的位图合并,并利用合并后的位图替换用户层的位图,将内核层的位图置净。
[0108]S1016:跟踪源虚拟机中被修改过的内存页,并将用户层位图相应位置位,标记为脏页。
[0109]本发明实施例中,在源虚拟机的内存页被访问时,表明内存页被修改,则将该内存页表项的ap【2:1】位置位01,标记用户层相应位图为脏。
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1