提高虚拟机迁移效率的方法

文档序号:8208973阅读:531来源:国知局
提高虚拟机迁移效率的方法
【技术领域】
[0001]本发明涉及一种提高迀移效率的方法,具体地,涉及一种提高虚拟机迀移效率的方法。
【背景技术】
[0002]在虚拟化技术领域中,虚拟机迀移是一项必不可少的能力和技术,其可以使虚拟机更加动态灵活的使用物理资源。在虚拟机迀移的两端:源宿主机与目的宿主机没有使用共享存储的前提下,迀移过程需要传输转移虚拟机磁盘;因为传输对象是虚拟机磁盘,其传输量往往很巨大,对网络源宿主机与目的宿主机之间的网络连接质量要求较高,并造成较大的网络流量压力。另一方面,虚拟机磁盘为保持其物理资源的高利用性而设置为稀疏文件格式,即一种预先分配文件长度,但实际不占用磁盘空间的文件格式,具有在虚拟机实际使用到其中的空间时再进行物理资源分配的特征,而对其未分配的空间进行读取时,则会读到全部为O的内容。主流的开源虚拟化软件如KVM(基于内核的虚拟机)在进行磁盘迀移时,并未对迀移的内容加以判断,也就是对稀疏文件中全O的内容仍然全部通过网络传输,这种做法效率比较低下,有改进的空间。

【发明内容】

[0003]针对现有技术中的缺陷,本发明的目的是提供一种提高虚拟机迀移效率的方法,其优化虚拟机迀移效率,缩短迀移虚拟机的整体时间,提高迀移效率成功率。
[0004]根据本发明的一个方面,提供一种提高虚拟机迀移效率的方法,其特征在于,包括以下步骤:
[0005]步骤一,基于非共享存储的虚拟机进行迀移时,需要将虚拟机的磁盘文件从源宿主机端转移到目的宿主机端;
[0006]步骤二,在源宿主机端执行每个块迀移之前,首先判断该块是否为空块,如果是空块则在步骤一说明的块定位信息中设置标记位;
[0007]步骤三,在目的宿主机端读取块控制信息时,会根据步骤一中规定的位是否为I来判断该块是否是空块,如果判断是空块则不读取实际的块内容,在本地构造512字节全O内容填补空块内容。
[0008]优选地,所述步骤一的源宿主机与目的宿主机在建立TCP连接后,首先传输所有的虚拟机磁盘至目的宿主机,之后循环传输虚拟磁盘中的脏块,直到迀移动作停止时,最后一次会传输所有脏块至目的宿主机,使源宿主机与目的宿主机上的虚拟磁盘内容完全相同。
[0009]优选地,所述每个块的头部加入控制信息和描述信息。
[0010]与现有技术相比,本发明具有如下的有益效果:本发明优化虚拟机迀移效率,缩短迀移虚拟机的整体时间,提高迀移效率成功率;在一定程度节省虚拟机迀移对网络带宽的消耗,并能有效减少宿主机磁盘空间的浪费。
【附图说明】
[0011]通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
[0012]图1为本发明中虚拟机迀移过程的示意图。
[0013]图2为本发明中单个迀移块内容的结构示意图。
[0014]图3为本发明中针对空块发送的迀移块内容的结构示意图。
[0015]图4为本发明中目的端根据空块标识构造块内容的结构示意图。
【具体实施方式】
[0016]下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进。这些都属于本发明的保护范围。
[0017]本发明提高虚拟机迀移效率的方法包括以下步骤:
[0018]步骤一,基于非共享存储的虚拟机进行迀移时,需要将虚拟机的磁盘文件从源宿主机端转移到目的宿主机端;为使虚拟机内的应用服务不受虚拟机迀移动作的影响,主流的开源虚拟化软件如KVM(基于内核的虚拟机)采用如下方法迀移虚拟机磁盘:源宿主机与目的宿主机在建立TCP连接后,首先传输所有的虚拟机磁盘至目的宿主机,之后循环传输虚拟磁盘中的脏块(自上一次传输以来改写过的块),直到迀移动作停止时,最后一次会传输所有脏块至目的宿主机,使源宿主机与目的宿主机上的虚拟磁盘内容完全相同,具体如图1所示。
[0019]其中,根据传输内容为虚拟磁盘这个特性,以512字节的块为单位进行传输;为使目的宿主机端能够将读取的块还原到虚拟磁盘文件中指定的位置,必须在每个块的头部加入一定格式的控制信息和描述信息,以KVM虚拟化的实现为例,每个迀移块的实际内容排列如下:前8字节(64位)为块定位信息,描述此块在虚拟磁盘中的块序号,其中高55位存放块序号,低9位为保留位;接着I字节(8位)存放虚拟磁盘设备名长度N;接着N字节(8*N位)存放虚拟磁盘设备名;以上为首部,接着512字节存放块实际内容,具体如图2所不O
[0020]步骤二,在源宿主机端执行每个块迀移之前,首先判断该块是否为空块(或全O块),如果是空块则在步骤一说明的块定位信息中设置标记位,例如将块序号低第8位(之前为保留位)规定为空块标记位,并且不再发送后512字节全O内容,具体如图3所示;
[0021]步骤三,在目的宿主机端读取块控制信息时,会根据步骤一中规定的位是否为I来判断该块是否是空块,如果判断是空块则不读取实际的块内容,在本地构造512字节全O内容填补空块内容,具体如图4所示。
[0022]综上所述,因为虚拟机磁盘格式为空洞文件,其中存在一定比例的空块;经过本发明优化,对于每个空块的迀移将节省512字节传输量(约占整个迀移块比重的97% ),即可达到提尚迁移效率的功能。
[0023]以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变形或修改,这并不影响本发明的实质内容。
【主权项】
1.一种提高虚拟机迀移效率的方法,其特征在于,包括以下步骤: 步骤一,基于非共享存储的虚拟机进行迀移时,需要将虚拟机的磁盘文件从源宿主机端转移到目的宿主机端; 步骤二,在源宿主机端执行每个块迀移之前,首先判断该块是否为空块,如果是空块则在步骤一说明的块定位信息中设置标记位; 步骤三,在目的宿主机端读取块控制信息时,会根据步骤一中规定的位是否为I来判断该块是否是空块,如果判断是空块则不读取实际的块内容,在本地构造512字节全O内容填补空块内容。
2.根据权利要求1所述的提高虚拟机迀移效率的方法,其特征在于,所述步骤一的源宿主机与目的宿主机在建立TCP连接后,首先传输所有的虚拟机磁盘至目的宿主机,之后循环传输虚拟磁盘中的脏块,直到迀移动作停止时,最后一次会传输所有脏块至目的宿主机,使源宿主机与目的宿主机上的虚拟磁盘内容完全相同。
3.根据权利要求1所述的提高虚拟机迀移效率的方法,其特征在于,所述每个块的头部加入控制信息和描述信息。
【专利摘要】本发明提供了一种提高虚拟机迁移效率的方法,包括以下步骤:步骤一,基于非共享存储的虚拟机进行迁移时,需要将虚拟机的磁盘文件从源宿主机端转移到目的宿主机端;步骤二,在源宿主机端执行每个块迁移之前,首先判断该块是否为空块,如果是空块则在步骤一说明的块定位信息中设置标记位;步骤三,在目的宿主机端读取块控制信息时,会根据步骤一中规定的位是否为1来判断该块是否是空块,如果判断是空块则不读取实际的块内容,在本地构造512字节全0内容填补空块内容。本发明优化虚拟机迁移效率,缩短迁移虚拟机的整体时间,提高迁移效率成功率。
【IPC分类】G06F9-48, G06F9-455
【公开号】CN104536816
【申请号】CN201410790653
【发明人】崔昊之, 丁星, 武静
【申请人】中电科华云信息技术有限公司
【公开日】2015年4月22日
【申请日】2014年12月17日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1