一种虚拟机迁移方法及装置制造方法及图纸

技术编号:16334141 阅读:26 留言:0更新日期:2017-10-03 10:24
本发明专利技术实施例公开了一种虚拟机迁移方法及装置,首先将待迁移虚拟机的vcpu绑定字节长度与当前主机各个cpu字节长度进行比较,以判断vcpu的绑定情况;当vcpu绑定字节长度与cpu字节长度相同时,逐位与计算vcpu的比特图与相应的cpu的比特图;在运算结果为1时,当已绑定的vcpu总数为1时,将该总数置0,并将vcpu绑定比特位的数据结构置空;而总数不为1时,则按照预设的算法依次对每个vcpu绑定比特位的数据结构进行处理;最后将所述虚拟机的xml中存储的vcpu绑定比特位的数据结构及已绑定的vcpu的总数进行更新。提高了虚拟机迁移的成功率,减少了迁移限制,有利于增加虚拟机迁移功能的使用场景。

Virtual machine migration method and device

The embodiment of the invention discloses a device and a virtual machine migration method, first of all will be the migration of virtual machines and the host vcpu binding byte length each CPU byte length compared to binding judgement of vcpu; when the vcpu binding byte length with CPU byte length at the same bit and vcpu bit map and calculation the corresponding CPU bit map; the operation result in the 1, when the total number of vcpu bound is 1, the total number is 0, and the data structure of vcpu bound bit empty; and the total number of 1, according to the preset algorithm followed by the data structure of each vcpu bound bits for processing; finally the total storage of the virtual machine in the XML binding vcpu bits of data structure and vcpu binding updates. Improve the success rate of virtual machine migration, reduce migration restrictions, and increase the use of virtual machine migration features scenarios.

【技术实现步骤摘要】

本专利技术实施例涉及虚拟化、云计算领域,特别是涉及一种虚拟机迁移方法及装置
技术介绍
在云计算技术浪潮的推动下,虚拟化技术不断发展。虚拟化是一种资源管理技术,是将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间不可切割的障碍,使用户可以比原本的组态更好的方式来应用这些资源,根据不同需求进行重新规划以达到最大利用率,实现各种资源的自动部署、动态扩展、按需分配,提高IT资源利用率。虚拟化技术催生了虚拟机,即通过软件模拟的、具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。当硬件发生故障或需要维护时,正在运行的服务需要被迁移到其他的平台上继续运行,并且这一过程不能对虚拟机所承载的应用服务产生影响,这就涉及到虚拟机迁移技术,虚拟机迁移技术能使虚拟机在物理主机之间进行快速的在线迁移,并且保持虚拟机在运行过程中不间断运行,有效的改善资源分配。由于不同的物理主机的硬件配置不同,尤其是CPU个数与核数不尽相同,虚拟机在迁移时需要与原绑定的主机进行解除绑定关系,但是由于虚拟机中的配置文件有时无法立即更新,导致虚拟机跨主机迁移失败,严重的限制了虚拟机的应用场景及实用性。
技术实现思路
本专利技术实施例的目的是提供一种虚拟机迁移方法及装置,提高了虚拟机跨主机迁移的成功率,有利于提高虚拟化产品的竞争力。为解决上述技术问题,本专利技术实施例提供以下技术方案:本专利技术实施例一方面提供了一种虚拟机迁移方法,包括:S101:获取当前主机cpu的个数;S102:获取待迁移虚拟机的vcpu绑定字节的长度,并判断与所述主机的各个cpu字节长度是否相同;S103:当判定与所述cpu字节长度不相同时,执行S106;反之,将所述vcpu的比特图与对应绑定的cpu的比特图逐位进行与运算;S104:当运算结果为0时,执行S106;反之,获取已绑定的vcpu的总数,当所述总数为1时,将所述总数设置为0,并将vcpu绑定比特位的数据结构置空,执行S106;S105:当所述总数不为1时,按照预设的算法依次对每个vcpu绑定比特位的数据结构进行处理;S106:将所述虚拟机的xml中存储的vcpu绑定比特位的数据结构及已绑定的vcpu的总数进行更新。可选的,所述按照预设的算法依次对每个vcpu绑定比特位的数据结构进行处理包括:依次获取保存vcpu绑定比特位的数据结构的数组中的元素;将各个已绑定的vcpu的标识号与待绑定vcpu的标识号进行比较,当所述vcpu的标识号与所述待绑定vcpu的标识号相同时,则将该vcpu绑定比特位的数据结构赋值为所述数组中的最后一个元素,相应的,将所述数组中的最后一个元素置空,数组的元素个数减一。可选的,所述获取当前主机cpu的个数为:获取当前主机的numa拓扑信息,根据所述numa拓扑信息确定所述主机cpu的个数。可选的,还包括:S107:发送所述待迁移虚拟机进行迁移的指令,并获取所述待迁移虚拟机的迁移信息;S108:根据所述迁移信息判断所述待迁移虚拟机是否迁移成功;S109:当判定所述待迁移虚拟机迁移失败时,向用户进行发送迁移失败的反馈信息。可选的,在所述当判定所述待迁移虚拟机迁移失败时之后,还包括:进行报警提示。本专利技术实施例另一方面提供了一种虚拟机迁移装置,包括:获取数据模块,用于获取当前主机cpu的个数及待迁移虚拟机的vcpu绑定字节的长度;判断模块,用于判断与所述主机的各个cpu字节长度是否相同,当判定与所述cpu字节长度不相同时,将所述虚拟机的xml中存储的vcpu绑定比特位的数据结构及已绑定的vcpu的总数进行更新;反之,将所述vcpu的比特图与对应绑定的cpu的比特图逐位进行与运算;数据处理模块,用于当运算结果为1时,获取已绑定的vcpu的总数,当所述总数为1时,将所述总数设置为0,并将vcpu绑定比特位的数据结构置空;当所述总数不为1时,按照预设的算法依次对每个vcpu绑定比特位的数据结构进行处理;更新模块,用于将所述虚拟机的xml中存储的vcpu绑定比特位的数据结构及已绑定的vcpu的总数进行更新。可选的,所述数据处理模块为依次获取保存vcpu绑定比特位的数据结构的数组中的元素;将各个已绑定的vcpu的标识号与待绑定vcpu的标识号进行比较,当所述vcpu的标识号与所述待绑定vcpu的标识号相同时,则将该vcpu绑定比特位的数据结构赋值为所述数组中的最后一个元素,相应的,将所述数组中的最后一个元素置空,数组的元素个数减一的模块。可选的,所述获取数据模块为获取当前主机的numa拓扑信息,根据所述numa拓扑信息确定所述主机cpu的个数的模块。可选的,还包括:发送模块,用于发送所述待迁移虚拟机进行迁移的指令,并获取所述待迁移虚拟机的迁移信息;根据所述迁移信息判断所述待迁移虚拟机是否迁移成功;当判定所述待迁移虚拟机迁移失败时,向用户进行发送迁移失败的反馈信息。可选的,还包括:报警模块,用于当判定所述待迁移虚拟机迁移失败时,进行报警提示。本专利技术实施例提供了一种虚拟机迁移方法,首先将待迁移虚拟机的vcpu绑定字节的长度与当前主机的各个cpu字节长度进行比较,以判断vcpu的绑定情况;当vcpu绑定字节的长度与cpu字节长度相同时,逐位计算vcpu的比特图与对应绑定的cpu的比特图;在运算结果为1时,当已绑定的vcpu的总数为1时,将该总数设置为0,并将vcpu绑定比特位的数据结构置空;而总数不为1时,则按照预设的算法依次对每个vcpu绑定比特位的数据结构进行处理;最后将所述虚拟机的xml中存储的vcpu绑定比特位的数据结构及已绑定的vcpu的总数进行更新。本申请提供的技术方案的优点在于,通过在虚拟机进行迁移之前,通过修改libvirt源码来删除虚拟机中xml中指定的vcpu元素,实现了解除vcpu与之前主机的cpu绑定,使得libvirt和qemu进程中保存的虚拟机xml数据的一致性。完善了vcpu绑定功能,提高了虚拟机的跨主机迁移的成功率,有效的增加虚拟机迁移功能的使用场景,减少迁移限制,同时由于这种方式只涉及到软件部分的修改,方便后期虚拟化产品的升级与维护,有利于提高虚拟化产品的竞争力此外,本专利技术实施例还针对虚拟机迁移方法提供了相应的实现装置,进一步使得所述方法更具有实用性,所述装置具有相应的优点。附图说明为了更清楚的说明本专利技术实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例提供的一种虚拟机迁移方法的流程示意图;图2为本专利技术实施例提供的另一种虚拟机迁移方法的流程示意图;图3为本专利技术实施例提供的虚拟机迁移装置的一种具体实施方式结构图;图4为本专利技术实施例提供的虚拟机迁移装置的另一种具体实施方式结构图。具体实施方式为了使本
的人员更好地理解本专利技术方案,下面结合附图和具体实施方式对本专利技术作进一步的详细说明。显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都本文档来自技高网
...
一种虚拟机迁移方法及装置

【技术保护点】
一种虚拟机迁移方法,其特征在于,包括:S101:获取当前主机cpu的个数;S102:获取待迁移虚拟机的vcpu绑定字节的长度,并判断与所述主机的各个cpu字节长度是否相同;S103:当判定与所述cpu字节长度不相同时,执行S106;反之,将所述vcpu的比特图与对应绑定的cpu的比特图逐位进行与运算;S104:当运算结果为0时,执行S106;反之,获取已绑定的vcpu的总数,当所述总数为1时,将所述总数设置为0,并将vcpu绑定比特位的数据结构置空,执行S106;S105:当所述总数不为1时,按照预设的算法依次对每个vcpu绑定比特位的数据结构进行处理;S106:将所述虚拟机的xml中存储的vcpu绑定比特位的数据结构及已绑定的vcpu的总数进行更新。

【技术特征摘要】
1.一种虚拟机迁移方法,其特征在于,包括:S101:获取当前主机cpu的个数;S102:获取待迁移虚拟机的vcpu绑定字节的长度,并判断与所述主机的各个cpu字节长度是否相同;S103:当判定与所述cpu字节长度不相同时,执行S106;反之,将所述vcpu的比特图与对应绑定的cpu的比特图逐位进行与运算;S104:当运算结果为0时,执行S106;反之,获取已绑定的vcpu的总数,当所述总数为1时,将所述总数设置为0,并将vcpu绑定比特位的数据结构置空,执行S106;S105:当所述总数不为1时,按照预设的算法依次对每个vcpu绑定比特位的数据结构进行处理;S106:将所述虚拟机的xml中存储的vcpu绑定比特位的数据结构及已绑定的vcpu的总数进行更新。2.根据权利要求1所述的虚拟机迁移方法,其特征在于,所述按照预设的算法依次对每个vcpu绑定比特位的数据结构进行处理包括:依次获取保存vcpu绑定比特位的数据结构的数组中的元素;将各个已绑定的vcpu的标识号与待绑定vcpu的标识号进行比较,当所述vcpu的标识号与所述待绑定vcpu的标识号相同时,则将该vcpu绑定比特位的数据结构赋值为所述数组中的最后一个元素,相应的,将所述数组中的最后一个元素置空,数组的元素个数减一。3.根据权利要求2所述的虚拟机迁移方法,其特征在于,所述获取当前主机cpu的个数为:获取当前主机的numa拓扑信息,根据所述numa拓扑信息确定所述主机cpu的个数。4.根据权利要求1至3任意一项所述的虚拟机迁移方法,其特征在于,还包括:S107:发送所述待迁移虚拟机进行迁移的指令,并获取所述待迁移虚拟机的迁移信息;S108:根据所述迁移信息判断所述待迁移虚拟机是否迁移成功;S109:当判定所述待迁移虚拟机迁移失败时,向用户进行发送迁移失败的反馈信息。5.根据权利要求4所述的虚拟机迁移方法,其特征在于,在所述当判定所述待迁移虚拟机迁移失败时之后,还包括:进...

【专利技术属性】
技术研发人员:周胜利
申请(专利权)人:郑州云海信息技术有限公司
类型:发明
国别省市:河南;41

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1