一种虚拟机迁移方法和装置与流程

文档序号:16390203发布日期:2018-12-22 11:19阅读:197来源:国知局
一种虚拟机迁移方法和装置与流程

本发明涉及虚拟机技术,尤指一种虚拟机迁移方法和装置。

背景技术

随着虚拟化技术的不断发展,虚拟机的应用也越来越广泛。日常应用中可能出现资源不足,系统管理调整或者系统备份等原因,希望将某一虚拟机从原来物理主机迁移到另一个物理主机上,即v2v(virtual-to-virtual)迁移。虚拟机的迁移需要物理主机上vmm(virtualmachinemonitor)的支持。相同类型vmm之间,使用相同的api接口,通常具有强大的迁移能力。而不同的vmm之间,由于虚拟化实现技术的不同、开发厂商的不同、api接口的不同,使虚拟机迁移困难重重。

虚拟机v2v(virtual-to-virtual)迁移是在虚拟机之间移动操作系统和数据,照顾主机级别的差异和处理不同的虚拟硬件。v2v的迁移方法有两种,静态迁移和在线迁移。静态迁移(offlinemigration)也叫做常规迁移、离线迁移。在迁移之前将虚拟机暂停,同时拷贝虚拟机镜像和状态到目的主机。相比较于在线迁移(onlinemigration),其缺点是静态迁移方式的过程需要显式的停止虚拟机的运行,而在线迁移的过程仅有非常短暂的停机时间,保证迁移过程中虚拟机服务的持续可用;优点是兼容性强,不需要vmm的有统一的api接口,可以借助第三方工具辅助迁移。由于目前vmm的开发没有统一的标准,不同的虚拟化厂商,尤其是闭源的商业厂商开发的vmm各成一套,静态迁移是解决不同类型虚拟机之间迁移的有效办法。本文采用v2v静态迁移的方法实现xen虚拟机到kvm的迁移。



技术实现要素:

为了解决上述技术问题,本发明提供了一种虚拟机迁移方法和装置。通过修改配置信息完成虚拟机的静态迁移,提供了一种兼容不同平台的虚拟机迁移方法,解决了缺乏虚拟机静态迁移实现机制的问题。

为了达到本发明目的,本发明提供了一种虚拟机迁移方法,包括:

将第一虚拟机平台上的虚拟机配置更新为第二虚拟机平台上的配置;

重启所述虚拟机,完成对所述虚拟机自所述第一虚拟机平台至所述第二虚拟机平台的迁移。

优选的,将第一虚拟机平台上的虚拟机配置更新为第二虚拟机平台上的配置的步骤包括:

将所述第一虚拟机平台上的如下配置项内容更新为所述第二虚拟机平台的配置:

驱动、软件包管理器rpm、磁盘名、磁盘挂载路径、内核镜像文件、root启动路径。

优选的,通过将所述第二虚拟机平台为所述虚拟机分析的新的磁盘的挂载路径写入挂载文件来更新所述磁盘挂载路径的配置。

优选的,通过向grub启动参数写入所述第二虚拟机平台的内核镜像文件及root启动路径,更新所述内核镜像文件及root启动路径的配置。

本发明还提供了一种虚拟机迁移装置,包括:

配置变更模块,用于将第一虚拟机平台上的虚拟机配置更新为第二虚拟机平台上的配置;

虚拟机重启模块,用于重启所述虚拟机,完成对所述虚拟机自所述第一虚拟机平台至所述第二虚拟机平台的迁移。

优选的,所述配置变更模块包括:

驱动更新单元,用于将所述第一虚拟机平台上的驱动更新为所述第二虚拟机平台的配置;

rpm更新单元,用于将所述第一虚拟机平台上的rpm更新为所述第二虚拟机平台的配置;

磁盘更新单元,用于将所述第一虚拟机平台上的磁盘和挂载路径更新为所述第二虚拟机平台的配置;

启动参数更新单元,用于将所述第一虚拟机平台上的内核镜像文件和root启动路径更新为所述第二虚拟机平台的配置。

优选的,所述磁盘更新单元,具体用于将所述第二虚拟机平台为所述虚拟机分析的新的磁盘的挂载路径写入挂载文件来更新所述磁盘挂载路径的配置。

优选的,所述启动参数更新单元,具体用于向grub启动参数写入所述第二虚拟机平台的内核镜像文件及root启动路径,更新所述内核镜像文件及root启动路径的配置。

本发明提供了一种虚拟机迁移方法和装置,将第一虚拟机平台上的虚拟机配置更新为第二虚拟机平台上的配置,然后重启所述虚拟机,完成对所述虚拟机自所述第一虚拟机平台至所述第二虚拟机平台的迁移。提供了一种兼容不同平台的虚拟机迁移方法,解决了缺乏虚拟机静态迁移实现机制的问题。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。

附图说明

附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。

图1为本发明的一实施例提供的一种虚拟机迁移方法的流程示意图;

图2为本发明的一实施例提供的一种虚拟机迁移装置的结构示意图;

图3为图2中配置变更模块201的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。

在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

相比较于在线迁移(onlinemigration),其缺点是静态迁移方式的过程需要显式的停止虚拟机的运行,而在线迁移的过程仅有非常短暂的停机时间,保证迁移过程中虚拟机服务的持续可用;优点是兼容性强,不需要vmm的有统一的api接口,可以借助第三方工具辅助迁移。由于目前vmm的开发没有统一的标准,不同的虚拟化厂商,尤其是闭源的商业厂商开发的vmm各成一套,静态迁移是解决不同类型虚拟机之间迁移的有效办法。本文采用v2v静态迁移的方法实现xen虚拟机到kvm的迁移。

为了解决上述问题,本发明的实施例提供了一种虚拟机迁移方法。下面结合附图,对本发明的实施例进行详细说明。

本发明的一实施例提供了一种虚拟机迁移方法,使用该方法完成虚拟机迁移的流程如图1所示,包括:

步骤101、将第一虚拟机平台上的虚拟机配置更新为第二虚拟机平台上的配置。

本步骤中,将需要将虚拟机自第一虚拟机平台向第二虚拟机平台迁移时,将所述第一虚拟机平台上的如下配置项内容更新为所述第二虚拟机平台的配置:

驱动、软件包管理器(rpm)、磁盘名、磁盘挂载路径、内核镜像文件、root启动路径。

优选的,通过将所述第二虚拟机平台为所述虚拟机分析的新的磁盘的挂载路径写入挂载文件来更新所述磁盘挂载路径的配置。

优选的,通过向grub启动参数写入所述第二虚拟机平台的内核镜像文件及root启动路径,更新所述内核镜像文件及root启动路径的配置。

所述第一虚拟机平台可为xen,所述第二虚拟机平台可为kvm。

步骤102、重启所述虚拟机,完成对所述虚拟机自所述第一虚拟机平台至所述第二虚拟机平台的迁移。

本发明的一实施例还提供了一种虚拟机迁移方法,以xen为第一虚拟机平台、kvm为第二虚拟机平台为例进行说明。

基于qemu与libvirt的虚拟化产品中,一种通过修改内核配置实现虚拟机从xen迁移至kvm的虚拟机迁移方法包括:

首先修改linux内核配置文件,将xen相关的驱动替换为kvm上的virtio驱动;卸载基于xen的kernelrpm包,然后根据os版本,安装上默认的kernelrpm包;修改device.map将xen的磁盘名替换为kvm的磁盘名;将新的磁盘挂载路径写入挂载文件fstab中;修改grub启动参数,写入新的内核镜像文件及root启动路径;关闭虚拟机导出至kvm,然后开机启动虚拟机,不影响虚拟机原有的业务运行。

通过修改linux虚拟机内核参数,在不影响用户原有虚拟化产品和保有硬盘数据的同时,增加了kvm虚拟化产品的应用场景,同时通过脚本编程,实现了迁移的自动化,尽量减少了手工迁移的步骤,适合在生产环境中进行大规模自动化部署。由于这种方式只涉及到方案优化以及软件部分的修改,方便后期虚拟化产品的升级与维护。

主要包括如下步骤:

1、修改内核配置文件/etc/sysconfig/kernel,将其中initrd_modules与xen相关的驱动替换为kvm上的virtio驱动。

2、卸载基于xen的kernelrpm包,然后根据os版本,安装上默认的kernelrpm包。

例如:

a.rpm–qa|grepkernel-xen-*

b.rpm-ekernel-xen-*

c.rpm–ivhkernel-default-`uname–r`

3、修改/boot/grub/device.map和/etc/fstab,将其中xen的磁盘名替换为kvm下的磁盘名。

4、修改/boot/grub/menu.lst,将新的内核镜像文件及root启动路径,同时可以根据需要添加内存和crash配置选项。

5、关闭虚拟机导出至kvm,然后开机启动虚拟机。

本发明实施例主要通过脚本编程实现了linux虚拟机从xen迁移至kvm环境。涉及到linux中kvm驱动的加载,内核的卸载与加载,磁盘路径的修改。通过内核参数的修改,以及迁移过程通过脚本编程自动化,实现了将各种linux虚拟机从xen迁移至kvm,大大提高了kvm环境对其他虚拟化平台的兼容性。

本发明的一实施例还提供了一种虚拟机迁移装置,其结构如图2所示,包括:

配置变更模块201,用于将第一虚拟机平台上的虚拟机配置更新为第二虚拟机平台上的配置;

虚拟机重启模块202,用于重启所述虚拟机,完成对所述虚拟机自所述第一虚拟机平台至所述第二虚拟机平台的迁移。

优选的,所述配置变更模块201的结构如图3所示,包括:

驱动更新单元2011,用于将所述第一虚拟机平台上的驱动更新为所述第二虚拟机平台的配置;

rpm更新单元2012,用于将所述第一虚拟机平台上的rpm更新为所述第二虚拟机平台的配置;

磁盘更新单元2013,用于将所述第一虚拟机平台上的磁盘和挂载路径更新为所述第二虚拟机平台的配置;

启动参数更新单元2014,用于将所述第一虚拟机平台上的内核镜像文件和root启动路径更新为所述第二虚拟机平台的配置。

优选的,所述磁盘更新单元2013,具体用于将所述第二虚拟机平台为所述虚拟机分析的新的磁盘的挂载路径写入挂载文件来更新所述磁盘挂载路径的配置。

优选的,所述启动参数更新单元2014,具体用于向grub启动参数写入所述第二虚拟机平台的内核镜像文件及root启动路径,更新所述内核镜像文件及root启动路径的配置。

本发明的实施例提供了一种虚拟机迁移方法和装置,将第一虚拟机平台上的虚拟机配置更新为第二虚拟机平台上的配置,然后重启所述虚拟机,完成对所述虚拟机自所述第一虚拟机平台至所述第二虚拟机平台的迁移。提供了一种兼容不同平台的虚拟机迁移方法,解决了缺乏虚拟机静态迁移实现机制的问题。

通过修改内核配置,在不影响用户原有虚拟化产品和保有硬盘数据的同时,将虚拟机从xen迁移至kvm,进一步提高和完善了基于kvm虚拟化产品的通用性和应用场景,优化了系统整体性能,提高虚拟化产品的竞争力。保证在不影响原有虚拟机运行和保有磁盘数据的情况下,通过脚本实现内核配置修改的自动化,实现虚拟机从xen迁移至kvm,同时降低迁移过程的复杂性。

本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1