一种虚拟机在线迁移方法

文档序号:9631367阅读:406来源:国知局
一种虚拟机在线迁移方法
【技术领域】
[0001]本申请属于通信技术领域,具体涉及一种虚拟机在线迀移方法。
【背景技术】
[0002]虚拟机在线迀移是云计算资源调度的重要支撑机制。在虚拟机在线迀移的过程中,内存与磁盘是主要的迀移对象,内存与磁盘数据量的大小也决定了迀移的完成时间以及对网络带宽等资源的占用。然而在虚拟机的内存与磁盘中存储着大量的重复数据,这些重复数据产生的原因一方面是由于内存与磁盘之间的存储层次关系,另一方面也在于存储的数据本身的重复性。
[0003]现有的虚拟机在线迀移技术中,并没有考虑虚拟机内存与磁盘数据的重复性,从而使得重复的数据多次迀移。一方面,这造成迀移网络带宽等资源的浪费,而迀移网络带宽是云计算平台的重要共享资源,尤其是在跨数据中心迀移虚拟机的情况下,网络带宽更是宝贵的而且是物理上有限的资源,合理地利用迀移网络带宽是对虚拟机在线迀移技术提出的重要挑战。另一方面,随着虚拟机内存与磁盘容量的增大,虚拟机迀移的完成时间也越来越长,这给云计算环境下的资源调度的时效性带来了巨大挑战。

【发明内容】

[0004]本申请目的之一在于为克服现有技术的缺陷,提供了一种能够合理利用迀移网络带宽的虚拟机在线迀移方法
[0005]本申请提供的一种虚拟机在线迀移方法,包括如下步骤:
[0006]S1:将虚拟机内存与磁盘按照相同的大小划分成若干数据单元;
[0007]S2:计算当前待迀移数据单元的更新频率,并按照更新频率的升序对待迀移的数据单元进行排序;
[0008]S3:按步骤S2中的排序进行数据单元迀移,并获取当前待迀移数据单元的摘要;
[0009]S4:判断该待迀移的数据单元的摘要是否与之前已迀移数据单元的摘要相同,是则转至步骤S5,否则转至步骤S8 ;
[0010]S5:只发送数据单元的摘要与位置信息到目标端;
[0011]S6:目标端从已接收数据单元摘要集合中查找相同数据的存储位置;
[0012]S7:从该相同数据的存储位置拷贝数据到目标迀移位置,并转至步骤S10 ;
[0013]S8:将数据单元迀移到目标端,同时将数据单元的摘要与位置信息加入到已迀移数据单元摘要集合中;
[0014]S9:目标端将数据单元中的数据直接拷贝到目标迀移位置,同时将数据单元的摘要与位置信息加入到已接收数据单元摘要集合中;
[0015]S10:数据迀移结束。
[0016]进一步的,在所述步骤S3中,利用MD5算法或SHA-1算法来获取当前待迀移数据单元的摘要。
[0017]进一步的,所述步骤S4中以红黑树结构来保存之前已迀移数据单元的摘要。
[0018]进一步的,所述步骤S4:判断该待迀移的数据单元的摘要是否与之前已迀移数据单元的摘要相同,包括如下步骤:
[0019]利用布隆过滤器判断计算出的数据单元摘要字节串是否与已迀移数据单元摘要集合中的某个数据单元摘要相同:
[0020]如果判断结果为是,并不能够确定一定在该集合中,则再在采用红黑树结构保存的已迀移数据单元摘要集合中查找该待迀移的数据单元的摘要,最终判断该待迀移的数据单元的摘要是否与之前已迀移数据单元的摘要是否相同;
[0021]如果判断出利用布隆过滤器判断计算出的数据单元摘要字节串与已迀移数据单元摘要集合中的数据单元摘要都不相同,则能够确定一定不在已迀移数据单元摘要集合中。
[0022]本申请的有益效果在于,在本申请提供的虚拟机在线迀移方法中内存与磁盘中相同的数据单元仅需迀移一次,避免了重复内存与磁盘数据单元的迀移传输,减少虚拟机迀移的数据量与迀移时间,从而减少了对迀移网络带宽资源的浪费并缩短了迀移完成时间。
[0023]当然,实施本申请的任一产品必不一定需要同时达到以上所述的所有技术效果。
【附图说明】
[0024]此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
[0025]图1所示为本申请虚拟机在线迀移方法流程图。
【具体实施方式】
[0026]下文将结合具体实施例详细描述本申请。应当注意的是,下述实施例中描述的技术特征或者技术特征的组合不应当被认为是孤立的,它们可以被相互组合从而达到更好的技术效果。
[0027]虚拟机中会存在以下三种形式的重复数据:第一种是在虚拟机内存中不同的内存页面存储了相同的数据;第二种是虚拟机磁盘中不同的磁盘块存储了相同的数据;第三种是在虚拟机内存中与磁盘中存储了相同的数据。
[0028]如图1所示,本申请提供的一种虚拟机在线迀移方法,包括如下步骤:
[0029]S1:将虚拟机内存与磁盘按照相同的大小划分成若干数据单元:
[0030]为了实现内存与磁盘混合去重,内存与磁盘可采用相同的数据单元大小,例如4KB。
[0031]S2:计算当前待迀移数据单元的更新频率,并按照更新频率的升序对待迀移的数据单元进行排序:
[0032]更新频率较高的内存页面或磁盘块被多次拷贝到迀移目标端,而同一个内存页面或磁盘块的多次迀移数据拷贝仅有最后一次是最新的有效数据,之前的数据拷贝都会被逐步覆盖掉,因而产生无效迀移数据。虚拟机内存页面与磁盘块的更新频率越高则产生的无效迀移数据越多。
[0033]S3:按步骤S2中的排序进行数据单元迀移,并计算当前待迀移数据单元的摘要:
[0034]可以采用多种数据摘要算法来获取数据单元的摘要,例如MD5算法或SHA-1算法。该摘要实际上是16字节或20字节的字节串。
[0035]S4:判断该待迀移的数据单元的摘要是否与之前已迀移数据单元的摘要是否相同,是则转至步骤S5,否则转至步骤S8:
[0036]本申请采用红黑树结构来管理已迀移数据单元的摘要,红黑树属于平衡二叉树的一种,以数据单元的摘要信息作为红黑树节点的key值(即每个节点代表一个
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1