一种虚拟机迁移方法及相关设备

文档序号:7296 发布日期:2021-09-17 浏览:30次 英文

一种虚拟机迁移方法及相关设备

技术领域

本申请实施例涉及计算机网络

技术领域

,特别涉及一种虚拟机迁移方法及相关设备。

背景技术

虚拟化技术能够将硬件资源进行虚拟化,从而可以实现在一台物理主机上运行许多不同的虚拟机。这些虚拟机运行在相互隔离的虚拟硬件环境中,它们可以有不同的操作系统,提供与真实物理主机相同的服务。随着虚拟化技术的日益成熟,出现了很多成熟的开源虚拟化技术,比如基于内核的虚拟机(kernel based virtual machine,KVM)、开放源代码虚拟机监视器(XEN)等开源虚拟化技术。

然而,由于不同厂商的产品底层可能使用了不同的虚拟化技术,从而产生了一种新的需要,即虚拟机迁移(virtual to virtual,V2V)。现有的V2V的方式主要是获取各个虚拟机的root密码,并将虚拟机(virtual machine,VM)的磁盘数据传输至目标VM上。

上述方式,需要获取用户的root密码,存在安全隐患。且如果磁盘数据量大,磁盘数据的传输时间长。

发明内容

本申请实施例提供了一种虚拟机迁移方法及相关设备,能够提升虚拟机迁移效率。

本申请实施例第一方面提供了一种虚拟机迁移方法,包括:控制器指示代理虚拟机挂载卷,卷包括用于在原平台运行卷的第一驱动;控制器指示代理虚拟机替换卷中的第一驱动为第二驱动,第一驱动为原平台运行卷所需要的驱动,第二驱动为目标平台运行卷所需要的驱动;控制器指示目标平台将替换后的卷挂载到目标虚拟机。

本申请实施例中,通过控制器指示代理虚拟机挂载卷,并利用代理虚拟机将该卷中原平台的驱动更换为目标平台的驱动,再将更换后的卷挂载在目标虚拟机,实现不需要传输卷,完成跨平台迁移虚拟机,一方面不用获取用户的密码,提高了安全性。另一方面不用传输数据即可完成虚拟机迁移,提升了虚拟机迁移的效率。

可选地,在第一方面的一种可能的实现方式中,上述步骤:控制器指示代理虚拟机替换卷中的第一驱动为第二驱动之前,方法还包括:控制器指示目标平台获取原虚拟机的管理信息。

可选地,在第一方面的一种可能的实现方式中,上述步骤还包括:控制器指示目标平台基于原虚拟机的管理信息,创建目标虚拟机,原虚拟机位于原平台。

可选地,在第一方面的一种可能的实现方式中,上述步骤还包括:控制器指示代理虚拟机卸载替换后的卷。

可选地,在第一方面的一种可能的实现方式中,上述步骤:控制器指示代理虚拟机挂载卷,包括:控制器指示代理虚拟机挂载多个卷,多个卷属于原平台上的多个虚拟机;控制器指示代理虚拟机替换卷中的第一驱动为第二驱动,包括:控制器指示代理虚拟机替换多个卷中的第一驱动为第二驱动;控制器指示目标平台将替换后的卷挂载到目标虚拟机,包括:控制器指示目标平台将替换后的多个卷分别挂载到多个目标虚拟机。

该种可能的实现方式中,通过挂载多个卷、更换多个卷的驱动并创建多个目标虚拟机,完成批量虚拟机的迁移。

可选地,在第一方面的一种可能的实现方式中,上述步骤还包括:控制器指示目标平台做卷的快照;控制器指示目标平台回滚快照。

该种可能的实现方式中,通过做快照的方式,防止切换失败或客户后悔后,可以回滚至含有第一驱动的卷版本,避免了由于切换失败导致卷中数据丢失。

可选地,在第一方面的一种可能的实现方式中,上述步骤还包括:控制器指示原平台对卷设置操作权限。

该种可能的实现方式中,通过设置操作权限防止他人误操作带来切换失败的风险。

可选地,在第一方面的一种可能的实现方式中,上述步骤:原平台为XEN平台,目标平台为KVM平台。

该种可能的实现方式提升了方案的可实现性。

本申请第二方面提供一种控制器,用于执行上述第一方面或第一方面的任意可能的实现方式中的方法。具体地,该控制器包括用于执行上述第一方面或第一方面的任意可能的实现方式中的方法的模块或单元。

本申请第二方面提供一种控制器,该控制器执行前述第一方面或第一方面的任意可能的实现方式中的方法。

本申请第四方面提供了一种计算机存储介质,该计算机存储介质中存储有指令,该指令在计算机上执行时,使得计算机执行前述第一方面或第一方面的任意可能的实现方式中的方法。

本申请第五方面提供了一种计算机程序产品,该计算机程序产品在计算机上执行时,使得计算机执行前述第一方面或第一方面的任意可能的实现方式中的方法。

附图说明

图1为本申请实施例中虚拟机迁移的网络框架示意图;

图2为本申请实施例中虚拟机迁移方法一个流程示意图;

图3为本申请实施例中控制器一个结构示意图;

图4为本申请实施例中控制器另一结构示意图。

具体实施方式

本申请实施例提供了一种虚拟机迁移方法及相关设备,能够提升虚拟机迁移效率。

下面将结合各个附图对本申请技术方案的实现原理、具体实施方式及其对应能够达到的有益效果进行详细的阐述。

附图1为本申请实施例中虚拟机迁移的网络框架示意图。请参阅图1,本申请实施例中网络框架包括:原平台、原虚拟机、目标平台、目标虚拟机、控制器以及代理虚拟机。

原平台是客户原虚拟机所处的平台。其所需迁移的卷处于存储池中。

目标平台是目标平台,客户新建或者已有的平台均可。

控制器Controller的主要功能是对接原平台和目标平台,编排切换业务,控制驱动注入。可以单独切换也可以批量切换。对外提供服务供业务人员操作。本申请实施例中的Controller可以是一个基于Java/Spring的服务端程序,业务人员通过连接到Controller的服务页面可以进行如下操作:选择需要切换的原平台、选择需要切换到的目标平台、选择需要切换的虚拟机或模板、选择哪些虚拟机需要同一批次切换、选择对哪些虚拟机进行切换演练、选择对哪些虚拟机结束演练并根据结果判断是否能够切换、选择对哪些虚拟机进行切换、选择对哪些虚拟机确认切换成功以及选择对哪些虚拟机回滚至初始状态等,具体此处不做限定。

代理虚拟机Agent可以是部署了基于C++的专门用于驱动注入的业务虚拟机。Agent的主要功能是接受Controller的指令将数据卷中原平台的驱动更换为目标平台的驱动。

其中,Agent和控制器可以承载原平上,也可以承载在目标平台上。原虚拟机和卷初始状态下处于原平台中,如果切换成功,原虚拟机将从原平台删除,卷实体仍旧存在存储中。如果切换失败则原虚拟机和卷仍将被还原到初始状态。有可能需要对原平台进行升级以支持统一存储的双向挂载。

目标平台也可以访问卷所处的存储池。如果切换成功,目标平台将会纳管卷,并创建目标虚拟机。如果切换失败将恢复至初始状态。切换成功后,原平台不再管理存储池。

本申请实施例通过在Controller中进行切换选择,下发切换任务,系统将自动把卷纳管至目标平台,并创建目标虚拟机,进行配置。相对于现有技术,此过程中不拷贝数据,因此切换效率大幅提升。

本申请实施例中的原平台可以是XEN,也可以是VMWare。目标平台可以是KVM。在实际应用中,只要目标平台可以访问原平台的数据存储,且接口可以调通(原平台和目标平台对双向挂载以及其他一些相关接口进行了适配),原平台和目标平台还可以是其它形式的平台,具体此处不做限定。

下面结合图1的网络框架,对本申请实施例中的虚拟机迁移方法进行描述:

请参阅图2,本申请实施例中虚拟机迁移方法一个实施例包括:

本申请实施例还可以进行批量虚拟机迁移,下面仅以一个为例对虚拟机迁移方法进行说明(批量与一个的迁移过程类似)。

201、控制器指示目标平台获取原虚拟机的管理信息。

控制器指示目标平台调用该目标平台预先开发的接口,该接口是平台提供的用于操作平台的虚拟机、卷等资源的操作的接口,例如该接口用于创建虚拟机或管理卷。

可选地,在控制器指示目标平台获取原虚拟机的管理信息之前,控制器指示原平台关闭位于原平台上的原虚拟机,即在虚拟机切换过程中,数据不会出现增量更新,避免切换虚拟机后,数据不完整。在关闭原虚拟机后,还可以对原虚拟机和原虚拟机中的卷设置第一操作权限,避免其他人员误操作。

可选地,在控制器指示目标平台获取原虚拟机的管理信息之前,不关闭原虚拟机,可以缩短对客户业务的中断。

202、控制器指示代理虚拟机挂载卷。

可选地,控制器指示目标平台对卷做快照,防止切换失败后,卷丢失。

在代理虚拟机挂载卷之前,控制器可以指示原平台停止在原平台上使用原虚拟机。

本申请实施例仅以代理虚拟机在目标平台上为例进行示意性说明,可以理解的是,代理虚拟机还可以在原平台上,具体此处不做限定。

控制器指示代理虚拟机挂载卷,可以是控制器指示目标平台通过接口将卷挂载在代理虚拟机上。

203、控制器指示代理虚拟机替换卷中的第一驱动为第二驱动。

卷挂载在代理虚拟机之后,控制器指示代理虚拟机替换卷中的第一驱动为第二驱动。代理虚拟机根据目标平台的驱动列表选择相应的第二驱动。其中,第一驱动为原平台运行卷所需要的驱动,第二驱动为目标平台运行卷所需要的驱动。

204、控制器指示代理虚拟机卸载替换后的卷。

将第一驱动更换为第二驱动后,控制器指示代理虚拟机卸载卷,使得卷变为游离状态。

205、控制器指示目标平台基于原虚拟机的管理信息,创建目标虚拟机。

控制平台指示该目标平台通过预先开发的接口接受原虚拟机中卷的管理信息,在目标平台建立该卷的管理信息。并用管理信息在目标平台上建立目标虚拟机。

206、控制器指示目标平台将替换后的卷挂载到目标虚拟机。

控制器指示目标平台将替换后的卷挂载到含有该卷管理信息的目标虚拟机。

目标平台将替换后的卷挂载到目标虚拟机之后,可以启动目标虚拟机。控制器也可以指示目标平台设置目标虚拟机的第二操作权限。

可选地,如果之前对原虚拟机和原虚拟机中的卷设置了第一操作权限,将替换后的卷挂载到目标虚拟机之后,可以取消卷以及原虚拟机的第一操作权限。

可选地,如果之前目标平台对卷做快照,在启动目标虚拟机之后,可以检查目标虚拟机的业务使用情况是否正常,如果正常,可以删除快照。如果不正常或者后悔迁移,可以回滚快照(即卷中是第一驱动的版本)。如果之前,目标平台设置目标虚拟机的第二操作权限,在删除快照后,可以取消目标虚拟机的第二操作权限。

在目标虚拟机启动并可以正常提供业务后,控制器指示原虚拟机注销原虚拟机(删除虚拟机中的管理数据并保留卷)。

本申请实施例中,关闭原虚拟机的时机可以是切换方法的开始,也可以是在更换驱动之前,如果开始关闭原虚拟机,数据不会出现增量更新,避免切换虚拟机后,数据不完整。如果在将要进行更换驱动时,关闭原虚拟机,可以缩短中断客户业务的时间。

本申请实施例,通过提前对卷进行双向挂载,利用controller对跨引擎切换进行编排,利用agent向卷注入适合目标平台的第二驱动,自动地实现不需要搬迁数据地跨引擎迁移,从而使得迁移时长大幅度减小。且不进入客户系统内部,无需收集用户密码。对用户原有业务除了分钟级短暂暂停没有其他持续性的性能影响。合理部署Controller和Agent负载,可以极大地提升并发迁移能力,适合批量虚拟机的迁移。

本申请实施例的虚拟机迁移方法可以应用于X86架构,也可以应用于ARM架构等,具体此处不做限定,只要目标平台支持该架构、能调通接口,可以实施并识别出原平台的卷,即可提升虚拟机迁移效率。

上面对本申请实施例中的虚拟机迁移方法进行了描述,下面对本申请实施例中的控制器器进行描述,请参阅图3,本申请实施例中控制器一个实施例包括:

指示单元301,用于指示代理虚拟机挂载卷,卷包括用于在原平台运行卷的第一驱动。

指示单元301,还用于指示代理虚拟机替换卷中的第一驱动为第二驱动,第一驱动为原平台运行卷所需要的驱动,第二驱动为目标平台运行卷所需要的驱动。

指示单元301,还用于指示目标平台将替换后的卷挂载到目标虚拟机。

指示单元301,还用于指示目标平台获取原虚拟机的管理信息。

指示单元301,还用于指示目标平台基于原虚拟机的管理信息,创建目标虚拟机,原虚拟机位于原平台。

指示单元301,还用于指示代理虚拟机卸载替换后的卷。

指示单元301,具体用于指示代理虚拟机挂载多个卷,多个卷属于原平台上的多个虚拟机。

指示单元301,具体用于指示代理虚拟机替换多个卷中的第一驱动为第二驱动。

指示单元301,具体用于指示目标平台将替换后的多个卷分别挂载到多个目标虚拟机。

指示单元301,还用于指示目标平台做卷的快照。

指示单元301,还用于指示目标平台回滚快照。

指示单元301,还用于指示原平台对卷设置操作权限。

本申请实施例中,通过指示单元301指示代理虚拟机挂载卷,并利用代理虚拟机将该卷中原平台的驱动更换为目标平台的驱动,再将更换后的卷挂载在目标虚拟机,实现不需要传输卷,完成跨平台迁移虚拟机。

图4是本申请实施例提供的一种控制器结构示意图,该控制器400可以包括一个或一个以上处理器401和存储器405,该存储器405中存储有一个或一个以上的应用程序或数据。

其中,存储器405可以是易失性存储或持久存储。存储在存储器405的程序可以包括一个或一个以上模块,每个模块可以包括控制器400中的一系列指令操作。更进一步地,处理器401可以设置为与存储器405通信,在控制器400上执行存储器405中的一系列指令操作。

控制器400还可以包括一个或一个以上电源402,一个或一个以上有线或无线网络接口403,一个或一个以上输入输出接口404,和/或,一个或一个以上操作系统,例如WindowsServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等。

该处理器401可以执行前述图2所示实施例中控制器所执行的操作,具体此处不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

完整详细技术资料下载
上一篇:石墨接头机器人自动装卡簧、装栓机
下一篇:计算节点升级的方法和装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!