一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

跨虚拟化平台的虚拟机迁移方法、装置和计算机设备与流程

2022-03-26 16:47:43 来源:中国专利 TAG:


1.本技术涉及虚拟机迁移技术领域,特别是涉及一种跨虚拟化平台的虚拟机迁移方法、装置、计算机设备、存储介质和计算机程序产品。


背景技术:

2.目前云及虚拟化技术在各大企业应用较为广泛,目前很多企业都使用不止一种虚拟化技术,这样跨虚拟化平台的迁移就显得非常重要,能够实现资源的最大化利用的同时也使得底层资源的最大化利用,也摆脱了对单一虚拟化技术的产品依赖。
3.目前虚拟化市场的主流虚拟化技术为商业虚拟化vmware和hyper-v及开源虚拟化技术kvm和xen。目前市场上对vmware至开源虚拟化平台的技术方案及应用实践较为丰富,vmware也提供了丰富的p2v和v2v的迁移方法。hyper-v作为微软的虚拟化解决方案,用户能够直接在windows的系统上部署并使用虚拟机,其部署和操作都较为简单,由于底层操作系统及虚拟化原理的差异,hyper-v的跨虚拟机迁移方案目前较为缺失,没有完整的开源kvm虚拟化迁移至hyper-v平台及hyper-v平台迁移至kvm或基于kvm的云厂商的迁移解决方案,常规迁移过程中会产生许多问题,造成操作系统无法正常启动和使用,严重影响迁移的成功率和业务系统的正常使用。


技术实现要素:

4.基于此,有必要针对上述技术问题,提供一种能够提高虚拟机迁移成功率的跨虚拟化平台的虚拟机迁移方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
5.第一方面,本技术提供了一种跨虚拟化平台的虚拟机迁移方法。所述方法包括:
6.判断虚拟机迁移类型,若从kvm平台迁移至hyper-v平台,获取待迁移虚拟机的操作系统类型;
7.若待迁移虚拟机的操作系统类型为windows系统,关闭待迁移虚拟机的操作系统并导出qcow2镜像文件;
8.配置迁移后hyper-v平台的网络信息,将所述qcow2镜像文件导出至hyper-v平台;
9.将所述qcow2镜像文件转换成为vhdx格式,实现对所述待迁移虚拟机的迁移。
10.在其中一个实施例中,所述跨虚拟化平台的虚拟机迁移方法还包括:若待迁移虚拟机的操作系统类型为linux系统,获取待迁移虚拟机的内核版本;
11.基于所述待迁移虚拟机的内核版本,获取目标内核启动镜像,关闭待迁移虚拟机的操作系统并导出qcow2镜像文件;
12.将所述目标内核启动镜像导入至系统启动文件中,清除系统中的udev规则信息和cloud-init运行插件;
13.配置迁移后hyper-v平台的网络信息,将所述qcow2镜像文件导出至hyper-v平台;
14.将所述qcow2镜像文件转换成为vhdx格式,实现对所述待迁移虚拟机的迁移。
15.在其中一个实施例中,所述基于所述待迁移虚拟机的内核版本,获取目标内核启
动镜像包括:
16.若所述待迁移虚拟机的本地hyper-v内核库中包含目标内核启动镜像,直接获取目标内核启动镜像;
17.若所述待迁移虚拟机的本地hyper-v内核库中不包含目标内核启动镜像,将内核文件写入hyper-v驱动进行重新编译,获取目标内核启动镜像。
18.在其中一个实施例中,所述跨虚拟化平台的虚拟机迁移方法还包括:若从hyper-v平台迁移至kvm平台,获取待迁移虚拟机的操作系统类型;
19.关闭待迁移虚拟机的操作系统并导出镜像文件,之后将所述镜像文件传输至kvm平台;
20.将所述镜像文件转换成为qcow2格式,安装virtio相关驱动;
21.配置迁移后kvm平台的网络信息,实现对所述待迁移虚拟机的迁移。
22.在其中一个实施例中,所述安装virtio相关驱动包括:若待迁移虚拟机的操作系统类型为windows系统,通过启动项执行批处理文件安装virtio相关驱动。
23.在其中一个实施例中,所述安装virtio相关驱动还包括:若待迁移虚拟机的操作系统类型为linux系统,基于virt-copy-in命令安装virtio相关驱动。
24.第二方面,本技术还提供了一种跨虚拟化平台的虚拟机迁移装置。所述装置包括:
25.获取模块,用于判断虚拟机迁移类型,若从kvm平台迁移至hyper-v平台,获取待迁移虚拟机的操作系统类型;
26.第一导出模块,用于当待迁移虚拟机的操作系统类型为windows系统时,关闭待迁移虚拟机的操作系统并导出qcow2镜像文件;
27.第二导出模块,用于配置迁移后hyper-v平台的网络信息,将所述qcow2镜像文件导出至hyper-v平台;
28.迁移模块,用于将所述qcow2镜像文件转换成为vhdx格式,实现对所述待迁移虚拟机的迁移。
29.第三方面,本技术还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
30.判断虚拟机迁移类型,若从kvm平台迁移至hyper-v平台,获取待迁移虚拟机的操作系统类型;
31.若待迁移虚拟机的操作系统类型为windows系统,关闭待迁移虚拟机的操作系统并导出qcow2镜像文件;
32.配置迁移后hyper-v平台的网络信息,将所述qcow2镜像文件导出至hyper-v平台;
33.将所述qcow2镜像文件转换成为vhdx格式,实现对所述待迁移虚拟机的迁移。
34.第四方面,本技术还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
35.判断虚拟机迁移类型,若从kvm平台迁移至hyper-v平台,获取待迁移虚拟机的操作系统类型;
36.若待迁移虚拟机的操作系统类型为windows系统,关闭待迁移虚拟机的操作系统并导出qcow2镜像文件;
37.配置迁移后hyper-v平台的网络信息,将所述qcow2镜像文件导出至hyper-v平台;
38.将所述qcow2镜像文件转换成为vhdx格式,实现对所述待迁移虚拟机的迁移。
39.第五方面,本技术还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
40.判断虚拟机迁移类型,若从kvm平台迁移至hyper-v平台,获取待迁移虚拟机的操作系统类型;
41.若待迁移虚拟机的操作系统类型为windows系统,关闭待迁移虚拟机的操作系统并导出qcow2镜像文件;
42.配置迁移后hyper-v平台的网络信息,将所述qcow2镜像文件导出至hyper-v平台;
43.将所述qcow2镜像文件转换成为vhdx格式,实现对所述待迁移虚拟机的迁移。
44.上述跨虚拟化平台的虚拟机迁移方法、装置、计算机设备、存储介质和计算机程序产品,判断虚拟机迁移类型,若从kvm平台迁移至hyper-v平台,获取待迁移虚拟机的操作系统类型,若待迁移虚拟机的操作系统类型为windows系统,关闭待迁移虚拟机的操作系统并导出qcow2镜像文件,之后配置迁移后hyper-v平台的网络信息,将qcow2镜像文件导出至hyper-v平台,最后将qcow2镜像文件转换成为vhdx格式,实现对待迁移虚拟机的迁移,提高了虚拟机迁移成功率,也解决了现有市场缺乏hyper-v虚拟化迁移解决方案的问题。
附图说明
45.图1为一个实施例中跨虚拟化平台的虚拟机迁移方法的应用环境图;
46.图2为一个实施例中跨虚拟化平台的虚拟机迁移方法的流程示意图;
47.图3为一个实施例中跨虚拟化平台的虚拟机迁移装置的结构框图;
48.图4为一个实施例中计算机设备的内部结构图。
具体实施方式
49.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
50.虚拟化平台为大型企业基础设施建设不可获取的一部分,目前很多大型企业(如金融业、基础制造业等)内部均包含多种类型的虚拟化平台,随着云产品的普及,这些虚拟化平台资源迁移上云需求明显,一种简洁、高效,成功率高的虚拟化平台互迁工具就显得非常重要。目前虚拟化平台主要分为商业虚拟化平台(如vmware,hyper-v等)和开源虚拟化化平台(如kvm、xen等)。其中vmware是整个虚拟化市场最大份额占有者,kvm是开源虚拟化也是各大主流云厂商的虚拟化层解决方案。
51.vmware作为虚拟化市场最大市场份额的占有者,其提供了较为完整的p2v及v2v的迁移方案,其迁入迁出的应用案例也较为广泛。其提供了标准的迁移工具vmware vcenter converter可以实现物理服务器,其他版本vmware虚拟机、hyper-v虚拟机和第三方虚拟化平台虚拟机的迁入工作,并且支持将第三方备份的磁盘映像导入到vmware vcenter server中,并且该软件支持冷、热克隆迁移两种方式,用户可以根据需求选择想要的迁移方式。热迁移需要部署远程代理程序,并对应用程序有读写文件的支持要求,其本质是在新平台部署助理虚拟机,通过。冷迁移需要物理方式访问源主机,但其无法保留完全相同的磁盘
布局及逻辑卷的信息。并且整个迁移过程仅包含磁盘状态的副本,不会保留相关硬件的驱动程序,有时甚至不会保留映射的磁盘驱动器盘符等信息。除此之外,该工具目前仅支持迁入到vmware环境的虚拟机,并且受支持的源基本也为vmware infrastructure下的虚拟机或者hyper-v server上运行的虚拟机。不支持开源虚拟化平台虚拟机的迁入迁出。除此之外,微软自身的microsoft virtual machine converter(mvmc)迁移工具,也仅支持物理机和vmware虚拟机迁移至hyper-v虚拟化平台。
52.此外在开源虚拟化领域,kvm虚拟化提供了virt-v2v和virt-p2v的迁移工具,这两种工具可以将外部虚拟化平台上的虚拟机或物理机转化到运行的kvm平台上,可以读取在vmware、xen上面windows和linux虚拟机,并将其转化为kvm的libvirt,甚至是openstack私有云平台。其支持的源端虚拟化平台较为丰富支持磁盘转换和虚拟化层迁移两种方式,但是其在hyper-v虚拟化的支持和系统启动后问题较多。
53.除此之外各个基于kvm的虚拟化厂商和云厂商也都发布了基于自研平台的虚拟化商业迁移工具。这些工具包含在线迁移工具和离线镜像转换工具,可以提供端到端的业务迁移或本地的镜像格式转化服务。这其中在线迁移可以保证业务离线时间几乎为零并且迁移过程支持数据追加同步,保证数据一致,基本在线同步及迁移过程如下图所示,但由于文件级的在线迁移收到操作系统内核的限制,所以该迁移方式依赖定制的操作系统版本甚至是操作系统内核,对操作系统和系统内核均有兼容性要求,源端属于不兼容的虚拟化类型或操作系统版本,迁移过程有较大的失败风险。除此之外,这部分迁移工具均为商业工具,厂商按照迁移数量进行收费,迁移成本很高。
54.本技术实施例提供的跨虚拟化平台的虚拟机迁移方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。数据存储系统可以存储服务器104需要处理的数据。数据存储系统可以集成在服务器104上,也可以放在云上或其他网络服务器上。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
55.在一个实施例中,如图2所示,提供了一种跨虚拟化平台的虚拟机迁移方法,以该方法应用于图1中的服务器104为例进行说明,包括以下步骤:
56.步骤202,判断虚拟机迁移类型,若从kvm平台迁移至hyper-v平台,获取待迁移虚拟机的操作系统类型。
57.其中,kvm是kernel-based virtual machine的简称,是一个开源的系统虚拟化模块,自linux 2.6.20之后集成在linux的各个主要发行版本中。它使用linux自身的调度器进行管理,所以相对于xen,其核心源码很少。kvm已成为学术界的主流vmm之一。hyper-v是微软的一款虚拟化产品,是微软第一个采用类似vmware esxi和citrix xen的基于hypervisor的技术。
58.具体地,虚拟机迁移类型是指待迁移虚拟机从何种平台迁移至另一平台,如从kvm平台迁移至hyper-v平台或是从hyper-v平台迁移至kvm平台;首先判断虚拟机迁移类型,若虚拟机迁移类型是从kvm平台迁移至hyper-v平台,获取待迁移虚拟机的操作系统类型;待迁移虚拟机的操作系统类型是指待迁移虚拟机所安装的操作系统类型,例如windows系统、
linux系统等。
59.步骤204,若待迁移虚拟机的操作系统类型为windows系统,关闭待迁移虚拟机的操作系统并导出qcow2镜像文件。
60.具体地,hyper-v是运行在windows系统内核层之上的特权层的hypervisor,故其对windows的客户端操作系统兼容性较好,kvm作为开源系的系统虚拟化模块,自linux 2.6.20之后就集成进主要发行版的操作系统内核,故其对基于linux的客户端操作系统兼容性较好。qcow2镜像格式是quick emulator软件支持的磁盘镜像格式之一。它可以使用一个文件来表示一个固定大小的块设备。当待迁移虚拟机的操作系统类型为windows系统时,关闭待迁移虚拟机的操作系统,之后导出qcow2镜像文件。
61.步骤206,配置迁移后hyper-v平台的网络信息,将所述qcow2镜像文件导出至hyper-v平台。
62.具体地,配置迁移后hyper-v平台的网络信息,并按照新平台的网络配置自动化配置网络信息,例如,通过virt-edit指令配置迁移后的网卡配置,之后将qcow2镜像文件导出至hyper-v平台。
63.步骤208,将所述qcow2镜像文件转换成为vhdx格式,实现对所述待迁移虚拟机的迁移。
64.具体地,目前hyper-v虚拟化的底层磁盘的主要格式是基于vhd或vhdx,kvm虚拟化的主流磁盘格式为原始格式raw或者qcow2格式,利用虚拟化层自带的qemu-img工具可以完成这两种格式的转化工作,通过将qcow2镜像文件转换成为vhdx格式,能够实现对待迁移虚拟机的迁移。
65.上述跨虚拟化平台的虚拟机迁移方法中,判断虚拟机迁移类型,若从kvm平台迁移至hyper-v平台,获取待迁移虚拟机的操作系统类型,若待迁移虚拟机的操作系统类型为windows系统,关闭待迁移虚拟机的操作系统并导出qcow2镜像文件,之后配置迁移后hyper-v平台的网络信息,将qcow2镜像文件导出至hyper-v平台,最后将qcow2镜像文件转换成为vhdx格式,实现对待迁移虚拟机的迁移,提高了虚拟机迁移成功率,也解决了现有市场缺乏hyper-v虚拟化迁移解决方案的问题。
66.在一个实施例中,所述跨虚拟化平台的虚拟机迁移方法还包括:
67.若待迁移虚拟机的操作系统类型为linux系统,获取待迁移虚拟机的内核版本;
68.基于所述待迁移虚拟机的内核版本,获取目标内核启动镜像,关闭待迁移虚拟机的操作系统并导出qcow2镜像文件;
69.将所述目标内核启动镜像导入至系统启动文件中,清除系统中的udev规则信息和cloud-init运行插件;
70.配置迁移后hyper-v平台的网络信息,将所述qcow2镜像文件导出至hyper-v平台;
71.将所述qcow2镜像文件转换成为vhdx格式,实现对所述待迁移虚拟机的迁移。
72.具体地,两种虚拟化方式对应了完全不同的磁盘,网卡,显卡,内存总线的驱动程序,直接进行底层的虚拟化磁盘格式转换,易造成系统无法正常的启动,造成迁移失败的情况。hyper-v的设计借鉴了xen,采用微内核的架构,兼顾了安全性和性能的要求。hyper-v底层的hypervisor运行在最高的特权级别下,微软将其称为ring-1(而intel也将其称为root mode),而虚拟机的操作系统内核和驱动运行在ring 0,应用程序运行在ring 3。hyper-v采
用基于vmbus的高速内存总线架构,来自虚拟机的硬件请求(显卡、鼠标、磁盘、网络),可以直接经过vsc,通过vmbus总线发送到根分区的vsp,vsp调用对应的设备驱动,直接访问硬件,中间不需要hypervisor的帮助。hyper-v虚拟化层主要涉及到三种驱动类型,包括hv_vmbus,高速内存总线驱动,负责中各虚拟机的硬件请求经过vsc通过vmbus驱动调用到相应的设备当中;hv_netvsc作为虚拟网卡驱动和网络服务客户端,负责处理虚拟机的网络相关请求;hv_storvsc负责整个磁盘驱动和存储服务客户端,负责处理虚拟机的i/o相关请求。在linux的系统当中此部分的驱动的编译,需要重新编译系统内核程序。
73.当待迁移虚拟机的操作系统类型为linux系统时,获取待迁移虚拟机的内核版本,基于待迁移虚拟机的内核版本,获取目标内核启动镜像,在中间主机上准备相关含hyper-v驱动(hv_vmbus,hv_netvsc,hv_storvsc等)内核启动镜像(initramfs镜像)。关闭待迁移虚拟机的操作系统并导出qcow2镜像文件,将目标内核启动镜像导入至系统启动文件中,清除系统中的udev规则信息和cloud-init运行插件,配置迁移后hyper-v平台的网络信息。因为系统中的udev规则针对部分操作系统容易厂商以太网接口的静态规则,此部分规则有可能引起迁移后的虚拟机启动时网络联通性或者网卡配置存在问题,故迁移过程中需要清除这一部分的规则使得网络的自动化配置能正常完成。除此之外,部分基于kvm的云平台中的虚拟机,虚拟机中一般会预置云服务器初始化管理工具cloud-init,迁移至hyper-v环境后,由于新平台不存在元数据服务器或者config-drive的元数据获取机制,会严重影响迁移后的虚拟机的启动速度,造成迁移后虚机启动速度极慢,故迁移前需将此部分工具卸载。
74.最后,将qcow2镜像文件导出至hyper-v平台,最后将qcow2镜像文件转换成为vhdx格式,实现对所述待迁移虚拟机的迁移。利用虚拟化的镜像管理工具可以直接修改虚机镜像的内部配置参数。不需要将镜像挂接到本地就可以直接通过shell脚本查看、编辑和删除镜像内的文件并且可以不用启动kvm guest主机,直接对虚拟磁盘中的文件进行写入及复制剪切操作,并以此完成磁盘中操作系统的流程化编排,使其能够满足迁移的相关要求,并可以脚本化批量化完成。
75.本实施例中,当待迁移虚拟机的操作系统类型为linux系统时,获取待迁移虚拟机的内核版本,基于待迁移虚拟机的内核版本,获取目标内核启动镜像,关闭待迁移虚拟机的操作系统并导出qcow2镜像文件,之后将目标内核启动镜像导入至系统启动文件中,清除系统中的udev规则信息和cloud-init运行插件,最后配置迁移后hyper-v平台的网络信息,将qcow2镜像文件导出至hyper-v平台,以及将所述qcow2镜像文件转换成为vhdx格式,实现对所述待迁移虚拟机的迁移,该迁移方法实现的编排流程,对含有此两种虚拟化类型的大型企业来说,实用性强,拓展容易,具备大规模迁移应用的能力。
76.在一个实施例中,所述基于所述待迁移虚拟机的内核版本,获取目标内核启动镜像包括:
77.若所述待迁移虚拟机的本地hyper-v内核库中包含目标内核启动镜像,直接获取目标内核启动镜像;
78.若所述待迁移虚拟机的本地hyper-v内核库中不包含目标内核启动镜像,将内核文件写入hyper-v驱动进行重新编译,获取目标内核启动镜像。
79.具体地,若待迁移虚拟机的本地hyper-v内核库中包含目标内核启动镜像,直接获取目标内核启动镜像,即当本地不含该版本的initramfs内核镜像时,增加驱动程序后在客
户端操作系统中重编译,之后加入到中间打包本地hyper-v内核镜像仓库中;当待迁移虚拟机的本地hyper-v内核库中不包含目标内核启动镜像时,将内核文件写入hyper-v驱动进行重新编译,获取目标内核启动镜像,即该目录含有则通过镜像编辑工具时,直接复制至系统启动文件中。
80.本实施例中,若待迁移虚拟机的本地hyper-v内核库中包含目标内核启动镜像,直接获取目标内核启动镜像;若待迁移虚拟机的本地hyper-v内核库中不包含目标内核启动镜像,将内核文件写入hyper-v驱动进行重新编译,获取目标内核启动镜像,实现了对于目标内核启动镜像的获取。
81.在一个实施例中,所述跨虚拟化平台的虚拟机迁移方法还包括:
82.若从hyper-v平台迁移至kvm平台,获取待迁移虚拟机的操作系统类型;
83.关闭待迁移虚拟机的操作系统并导出镜像文件,之后将所述镜像文件传输至kvm平台;
84.将所述镜像文件转换成为qcow2格式,安装virtio相关驱动;
85.配置迁移后kvm平台的网络信息,实现对所述待迁移虚拟机的迁移。
86.具体地,当从hyper-v平台迁移至kvm平台时,获取待迁移虚拟机的操作系统类型,关闭待迁移虚拟机的操作系统并导出镜像文件,之后将镜像文件传输至kvm平台,将镜像文件转换成为qcow2格式,安装virtio相关驱动,最后配置迁移后kvm平台的网络信息,实现对待迁移虚拟机的迁移。hyper-v至kvm的迁移部分主要是针对windows系统,需要通过上传相关驱动内核包,并通过启动项执行批处理文件执行安装virtio等相关驱动,除此之外需要根据新环境中的网络配置信息,利用镜像编辑配置工具配置目的环境的网络信息
87.本实施例中,当从hyper-v平台迁移至kvm平台时,获取待迁移虚拟机的操作系统类型,关闭待迁移虚拟机的操作系统并导出镜像文件,之后将镜像文件传输至kvm平台,将镜像文件转换成为qcow2格式,安装virtio相关驱动,最后配置迁移后kvm平台的网络信息,实现对待迁移虚拟机的迁移,提高了虚拟机迁移成功率,也解决了现有市场缺乏hyper-v虚拟化迁移解决方案的问题。
88.在一个实施例中,所述安装virtio相关驱动包括:若待迁移虚拟机的操作系统类型为windows系统,通过启动项执行批处理文件安装virtio相关驱动。
89.具体地,针对kvm虚拟化使用的是virtio作为一种通用的i/o设备虚拟化的程序,是对半虚拟化hypervisor中的一组通用i/o设备的抽象。virtio作为一套通用框架和标准接口协议负责获取底层host的资源(如块设备、网络设备、pci设备、balloon驱动等),windows系统不含这些相关驱动需要提前完成这部分驱动的安装。当待迁移虚拟机的操作系统类型为windows系统时,通过启动项执行批处理文件安装virtio相关驱动。
90.本实施例中,当待迁移虚拟机的操作系统类型为windows系统,通过启动项执行批处理文件安装virtio相关驱动,实现了对virtio相关驱动的安装,为配置迁移后kvm平台的网络信息,实现对待迁移虚拟机的迁移提供了条件。
91.在一个实施例中,所述安装virtio相关驱动还包括:若待迁移虚拟机的操作系统类型为linux系统,基于virt-copy-in命令安装virtio相关驱动。
92.具体地,当待迁移虚拟机的操作系统类型为linux系统时,基于virt-copy-in命令安装virtio相关驱动;其中,virt-copy-in是将文件复制到虚拟机里面。
93.本实施例中,当待迁移虚拟机的操作系统类型为linux系统时,基于virt-copy-in命令安装virtio相关驱动,实现了对virtio相关驱动的安装,为配置迁移后kvm平台的网络信息,实现对待迁移虚拟机的迁移提供了条件。
94.当从kvm平台迁移至hyper-v平台时,首先获取待迁移虚拟机的操作系统类型,若待迁移虚拟机的操作系统类型为windows系统,关闭待迁移虚拟机的操作系统并导出qcow2镜像文件,配置迁移后hyper-v平台的网络信息,将qcow2镜像文件导出至hyper-v平台,将qcow2镜像文件转换成为vhdx格式,实现对待迁移虚拟机的迁移;若待迁移虚拟机的操作系统类型为linux系统,获取待迁移虚拟机的内核版本,若待迁移虚拟机的本地hyper-v内核库中包含目标内核启动镜像,直接获取目标内核启动镜像;若待迁移虚拟机的本地hyper-v内核库中不包含目标内核启动镜像,将内核文件写入hyper-v驱动进行重新编译,获取目标内核启动镜像。关闭待迁移虚拟机的操作系统并导出qcow2镜像文件,将目标内核启动镜像导入至系统启动文件中,清除系统中的udev规则信息和cloud-init运行插件,配置迁移后hyper-v平台的网络信息,将qcow2镜像文件导出至hyper-v平台,最后将qcow2镜像文件转换成为vhdx格式,实现对待迁移虚拟机的迁移。
95.若从hyper-v平台迁移至kvm平台,获取待迁移虚拟机的操作系统类型,关闭待迁移虚拟机的操作系统并导出镜像文件,之后将镜像文件传输至kvm平台,将镜像文件转换成为qcow2格式。具体而言,若待迁移虚拟机的操作系统类型为windows系统,通过启动项执行批处理文件安装virtio相关驱动;若待迁移虚拟机的操作系统类型为linux系统,基于virt-copy-in命令安装virtio相关驱动。配置迁移后kvm平台的网络信息,实现对待迁移虚拟机的迁移。
96.本实施例中,基于hyper-v和kvm虚拟化场景,以虚拟磁盘为媒介,在磁盘上通过内核驱动转换方式,完整实现了端到端跨虚拟化迁移流程,具备多源场景下批量迁移的能力。基于虚拟磁盘及内核迁移技术特点,该迁移方案具备可扩展性,在大规模场景下,可基于高速网络实现多并发串行迁移的能力,满足批量迁移诉求。本实施例通过不同guest os的大量实践迁移经验,解决了hyper-v和kvm之间互迁的常见问题,可确保跨虚拟化迁移后服务器的可用性。
97.本实施例中的迁移方法具备以下优势,首先确保了迁移成功率,同时也解决了现有市场缺乏hyper-v虚拟化迁移解决方案的问题。该迁移方法实现的编排流程,对含有此两种虚拟化类型的大型企业来说,实用性强,拓展容易,具备大规模迁移应用的能力。本实施例中的迁移不依赖兼容清单,对不同的guestos具备普适性,同商业软件相比成本较低。
98.应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
99.基于同样的发明构思,本技术实施例还提供了一种用于实现上述所涉及的跨虚拟化平台的虚拟机迁移方法的跨虚拟化平台的虚拟机迁移装置。该装置所提供的解决问题的
实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个跨虚拟化平台的虚拟机迁移装置实施例中的具体限定可以参见上文中对于跨虚拟化平台的虚拟机迁移方法的限定,在此不再赘述。
100.在一个实施例中,如图3所示,提供了一种跨虚拟化平台的虚拟机迁移装置,包括:获取模块301、第一导出模块302、第二导出模块303和迁移模块304,其中:
101.获取模块301,用于判断虚拟机迁移类型,若从kvm平台迁移至hyper-v平台,获取待迁移虚拟机的操作系统类型;
102.第一导出模块302,用于当待迁移虚拟机的操作系统类型为windows系统时,关闭待迁移虚拟机的操作系统并导出qcow2镜像文件;
103.第二导出模块303,用于配置迁移后hyper-v平台的网络信息,将所述qcow2镜像文件导出至hyper-v平台;
104.迁移模块304,用于将所述qcow2镜像文件转换成为vhdx格式,实现对所述待迁移虚拟机的迁移。
105.在一个实施例中,所述跨虚拟化平台的虚拟机迁移装置还包括第二迁移模块,用于:若待迁移虚拟机的操作系统类型为linux系统,获取待迁移虚拟机的内核版本;基于所述待迁移虚拟机的内核版本,获取目标内核启动镜像,关闭待迁移虚拟机的操作系统并导出qcow2镜像文件;将所述目标内核启动镜像导入至系统启动文件中,清除系统中的udev规则信息和cloud-init运行插件;配置迁移后hyper-v平台的网络信息,将所述qcow2镜像文件导出至hyper-v平台;将所述qcow2镜像文件转换成为vhdx格式,实现对所述待迁移虚拟机的迁移。
106.在一个实施例中,所述第二迁移模块,还用于:若所述待迁移虚拟机的本地hyper-v内核库中包含目标内核启动镜像,直接获取目标内核启动镜像;若所述待迁移虚拟机的本地hyper-v内核库中不包含目标内核启动镜像,将内核文件写入hyper-v驱动进行重新编译,获取目标内核启动镜像。
107.在一个实施例中,所述跨虚拟化平台的虚拟机迁移装置还包括第三迁移模块,用于:若从hyper-v平台迁移至kvm平台,获取待迁移虚拟机的操作系统类型;关闭待迁移虚拟机的操作系统并导出镜像文件,之后将所述镜像文件传输至kvm平台;将所述镜像文件转换成为qcow2格式,安装virtio相关驱动;配置迁移后kvm平台的网络信息,实现对所述待迁移虚拟机的迁移。
108.在一个实施例中,所述第三迁移模块,还用于:若待迁移虚拟机的操作系统类型为windows系统,通过启动项执行批处理文件安装virtio相关驱动。
109.在一个实施例中,所述第三迁移模块,还用于:若待迁移虚拟机的操作系统类型为linux系统,基于virt-copy-in命令安装virtio相关驱动。
110.上述跨虚拟化平台的虚拟机迁移装置,判断虚拟机迁移类型,若从kvm平台迁移至hyper-v平台,获取待迁移虚拟机的操作系统类型,若待迁移虚拟机的操作系统类型为windows系统,关闭待迁移虚拟机的操作系统并导出qcow2镜像文件,之后配置迁移后hyper-v平台的网络信息,将qcow2镜像文件导出至hyper-v平台,最后将qcow2镜像文件转换成为vhdx格式,实现对待迁移虚拟机的迁移,提高了虚拟机迁移成功率,也解决了现有市场缺乏hyper-v虚拟化迁移解决方案的问题。
111.上述跨虚拟化平台的虚拟机迁移装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
112.在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图4所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种跨虚拟化平台的虚拟机迁移方法。
113.本领域技术人员可以理解,图4中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
114.在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
115.判断虚拟机迁移类型,若从kvm平台迁移至hyper-v平台,获取待迁移虚拟机的操作系统类型;
116.若待迁移虚拟机的操作系统类型为windows系统,关闭待迁移虚拟机的操作系统并导出qcow2镜像文件;
117.配置迁移后hyper-v平台的网络信息,将所述qcow2镜像文件导出至hyper-v平台;
118.将所述qcow2镜像文件转换成为vhdx格式,实现对所述待迁移虚拟机的迁移。
119.在一个实施例中,处理器执行计算机程序时还实现以下步骤:若待迁移虚拟机的操作系统类型为linux系统,获取待迁移虚拟机的内核版本;基于所述待迁移虚拟机的内核版本,获取目标内核启动镜像,关闭待迁移虚拟机的操作系统并导出qcow2镜像文件;将所述目标内核启动镜像导入至系统启动文件中,清除系统中的udev规则信息和cloud-init运行插件;配置迁移后hyper-v平台的网络信息,将所述qcow2镜像文件导出至hyper-v平台;将所述qcow2镜像文件转换成为vhdx格式,实现对所述待迁移虚拟机的迁移。
120.在一个实施例中,处理器执行计算机程序时还实现以下步骤:若所述待迁移虚拟机的本地hyper-v内核库中包含目标内核启动镜像,直接获取目标内核启动镜像;若所述待迁移虚拟机的本地hyper-v内核库中不包含目标内核启动镜像,将内核文件写入hyper-v驱动进行重新编译,获取目标内核启动镜像。
121.在一个实施例中,处理器执行计算机程序时还实现以下步骤:若从hyper-v平台迁移至kvm平台,获取待迁移虚拟机的操作系统类型;关闭待迁移虚拟机的操作系统并导出镜像文件,之后将所述镜像文件传输至kvm平台;将所述镜像文件转换成为qcow2格式,安装virtio相关驱动;配置迁移后kvm平台的网络信息,实现对所述待迁移虚拟机的迁移。
122.在一个实施例中,处理器执行计算机程序时还实现以下步骤:若待迁移虚拟机的操作系统类型为windows系统,通过启动项执行批处理文件安装virtio相关驱动。
123.在一个实施例中,处理器执行计算机程序时还实现以下步骤:若待迁移虚拟机的
操作系统类型为linux系统,基于virt-copy-in命令安装virtio相关驱动。
124.上述计算机设备,判断虚拟机迁移类型,若从kvm平台迁移至hyper-v平台,获取待迁移虚拟机的操作系统类型,若待迁移虚拟机的操作系统类型为windows系统,关闭待迁移虚拟机的操作系统并导出qcow2镜像文件,之后配置迁移后hyper-v平台的网络信息,将qcow2镜像文件导出至hyper-v平台,最后将qcow2镜像文件转换成为vhdx格式,实现对待迁移虚拟机的迁移,提高了虚拟机迁移成功率,也解决了现有市场缺乏hyper-v虚拟化迁移解决方案的问题。
125.在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
126.判断虚拟机迁移类型,若从kvm平台迁移至hyper-v平台,获取待迁移虚拟机的操作系统类型;
127.若待迁移虚拟机的操作系统类型为windows系统,关闭待迁移虚拟机的操作系统并导出qcow2镜像文件;
128.配置迁移后hyper-v平台的网络信息,将所述qcow2镜像文件导出至hyper-v平台;
129.将所述qcow2镜像文件转换成为vhdx格式,实现对所述待迁移虚拟机的迁移。
130.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:若待迁移虚拟机的操作系统类型为linux系统,获取待迁移虚拟机的内核版本;基于所述待迁移虚拟机的内核版本,获取目标内核启动镜像,关闭待迁移虚拟机的操作系统并导出qcow2镜像文件;将所述目标内核启动镜像导入至系统启动文件中,清除系统中的udev规则信息和cloud-init运行插件;配置迁移后hyper-v平台的网络信息,将所述qcow2镜像文件导出至hyper-v平台;将所述qcow2镜像文件转换成为vhdx格式,实现对所述待迁移虚拟机的迁移。
131.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:若所述待迁移虚拟机的本地hyper-v内核库中包含目标内核启动镜像,直接获取目标内核启动镜像;若所述待迁移虚拟机的本地hyper-v内核库中不包含目标内核启动镜像,将内核文件写入hyper-v驱动进行重新编译,获取目标内核启动镜像。
132.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:若从hyper-v平台迁移至kvm平台,获取待迁移虚拟机的操作系统类型;关闭待迁移虚拟机的操作系统并导出镜像文件,之后将所述镜像文件传输至kvm平台;将所述镜像文件转换成为qcow2格式,安装virtio相关驱动;配置迁移后kvm平台的网络信息,实现对所述待迁移虚拟机的迁移。
133.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:若待迁移虚拟机的操作系统类型为windows系统,通过启动项执行批处理文件安装virtio相关驱动。
134.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:若待迁移虚拟机的操作系统类型为linux系统,基于virt-copy-in命令安装virtio相关驱动。
135.上述存储介质,判断虚拟机迁移类型,若从kvm平台迁移至hyper-v平台,获取待迁移虚拟机的操作系统类型,若待迁移虚拟机的操作系统类型为windows系统,关闭待迁移虚拟机的操作系统并导出qcow2镜像文件,之后配置迁移后hyper-v平台的网络信息,将qcow2镜像文件导出至hyper-v平台,最后将qcow2镜像文件转换成为vhdx格式,实现对待迁移虚拟机的迁移,提高了虚拟机迁移成功率,也解决了现有市场缺乏hyper-v虚拟化迁移解决方案的问题。
136.在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
137.判断虚拟机迁移类型,若从kvm平台迁移至hyper-v平台,获取待迁移虚拟机的操作系统类型;
138.若待迁移虚拟机的操作系统类型为windows系统,关闭待迁移虚拟机的操作系统并导出qcow2镜像文件;
139.配置迁移后hyper-v平台的网络信息,将所述qcow2镜像文件导出至hyper-v平台;
140.将所述qcow2镜像文件转换成为vhdx格式,实现对所述待迁移虚拟机的迁移。
141.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:若待迁移虚拟机的操作系统类型为linux系统,获取待迁移虚拟机的内核版本;基于所述待迁移虚拟机的内核版本,获取目标内核启动镜像,关闭待迁移虚拟机的操作系统并导出qcow2镜像文件;将所述目标内核启动镜像导入至系统启动文件中,清除系统中的udev规则信息和cloud-init运行插件;配置迁移后hyper-v平台的网络信息,将所述qcow2镜像文件导出至hyper-v平台;将所述qcow2镜像文件转换成为vhdx格式,实现对所述待迁移虚拟机的迁移。
142.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:若所述待迁移虚拟机的本地hyper-v内核库中包含目标内核启动镜像,直接获取目标内核启动镜像;若所述待迁移虚拟机的本地hyper-v内核库中不包含目标内核启动镜像,将内核文件写入hyper-v驱动进行重新编译,获取目标内核启动镜像。
143.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:若从hyper-v平台迁移至kvm平台,获取待迁移虚拟机的操作系统类型;关闭待迁移虚拟机的操作系统并导出镜像文件,之后将所述镜像文件传输至kvm平台;将所述镜像文件转换成为qcow2格式,安装virtio相关驱动;配置迁移后kvm平台的网络信息,实现对所述待迁移虚拟机的迁移。
144.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:若待迁移虚拟机的操作系统类型为windows系统,通过启动项执行批处理文件安装virtio相关驱动。
145.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:若待迁移虚拟机的操作系统类型为linux系统,基于virt-copy-in命令安装virtio相关驱动。
146.上述计算机程序产品,判断虚拟机迁移类型,若从kvm平台迁移至hyper-v平台,获取待迁移虚拟机的操作系统类型,若待迁移虚拟机的操作系统类型为windows系统,关闭待迁移虚拟机的操作系统并导出qcow2镜像文件,之后配置迁移后hyper-v平台的网络信息,将qcow2镜像文件导出至hyper-v平台,最后将qcow2镜像文件转换成为vhdx格式,实现对待迁移虚拟机的迁移,提高了虚拟机迁移成功率,也解决了现有市场缺乏hyper-v虚拟化迁移解决方案的问题。
147.需要说明的是,本技术所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
148.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括
非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-only memory,rom)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(reram)、磁变存储器(magnetoresistive random access memory,mram)、铁电存储器(ferroelectric random access memory,fram)、相变存储器(phase change memory,pcm)、石墨烯存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器等。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。本技术所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本技术所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
149.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
150.以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本技术专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术的保护范围应以所附权利要求为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献