一种虚拟机迁移的方法、装置、设备以及存储介质与流程

文档序号:17639922发布日期:2019-05-11 00:36阅读:197来源:国知局
一种虚拟机迁移的方法、装置、设备以及存储介质与流程

本发明涉及虚拟化技术领域,特别是涉及一种虚拟机迁移的方法、装置、设备以及计算机可读存储介质。



背景技术:

虚拟化技术,一般都是指虚拟化技术将一台主机虚拟为多台逻辑host。这样在一台主机上同时运行多个逻辑host,每个逻辑主机可运行不同的system,并且应用程序都能在独立的空间内运行而不影响,并且创建的多台虚拟机可以最高利用主机的资源,所以能够提高计算机的利用率。

虚拟化一般都是软件虚拟化和硬件虚拟化相结合,以硬件虚拟化为基础承载点提高性能,而软件的方法重新定义划分it资源,不仅能够实现it资源动态分配和灵活调度,并且跨域共享的前提下提高it资源利用率,这样不仅能够让it资源能够真正成为基础设施,并且服务于各行各业中灵活多变的应用需求。虚拟化平台技术众多,主要是linux开源社区的下的kvm,qemu,oraccle的virtualbox,vmware下的虚拟化技术,microsoft的虚拟化解决方案。

在虚拟化技术中的虚拟机迁移方案也是重要的一个点。而现有技术中,虚拟化的虚拟迁移工具学习使用困难,不易上手,大大降低了虚拟机迁移效率。

综上所述可以看出,如何提高虚拟机迁移效率是目前有待解决的问题。



技术实现要素:

本发明的目的是提供一种虚拟机迁移的方法、装置、设备以及计算机可读存储介质,以解决现有技术中虚拟机迁移工具学习使用困难导致虚拟机迁移效率低的问题。

为解决上述技术问题,本发明提供一种虚拟机迁移的方法,包括:依据用户输入的源虚拟主机的认证信息与所述源虚拟主机建立连接后,检索所述源虚拟主机上连接的虚拟机列表,并向所述用户展示所述虚拟机列表;依据所述用户输入的目的虚拟主机的认证信息与所述目的虚拟主机建立连接,以便于所述源虚拟主机和所述目的虚拟主机建立连接关系;检测所述源虚拟主机和所述目的虚拟主机是否连接成功,若是,则调用迁移工具将所述虚拟机列表中的目标虚拟机迁移至所述目的虚拟主机。

优选地,所述依据用户输入的源虚拟主机的认证信息与所述源虚拟主机建立连接后,检索所述源虚拟主机上连接的虚拟机列表,并向所述用户展示所述虚拟机列表包括:

获取用户输入至图形用户界面平台的源虚拟主机的主机ip、用户名和密码后,使用外壳安全协议与所述源虚拟主机建立连接;

检索并获取所述源虚拟主机上连接的虚拟机列表,并将所述虚拟机列表中各个虚拟机的名称信息、大小信息和格式信息自动输入至所述图形用户界面平台。

优选地,所述调用迁移工具将所述虚拟机列表中的目标虚拟机迁移至所述目的虚拟主机包括:

若所述源虚拟主机和所述目的虚拟主机连接成功,则通过virt-v2v接口调用virt-v2v工具,将所述虚拟机列表中的目标虚拟机迁移至所述目的虚拟主机。

优选地,所述检测所述源虚拟主机和所述目的虚拟主机是否连接成功,若是,则调用迁移工具将所述虚拟机列表中的目标虚拟机迁移至所述目的虚拟主机包括:

若所述源虚拟主机和所述目的虚拟主机连接成功,则通过lipvirt接口调用lipvirt工具,将所述虚拟机列表中的目标虚拟机迁移至所述目的虚拟主机。

优选地,所述若所述源虚拟主机和所述目的虚拟主机连接成功,则通过lipvirt接口调用lipvirt工具,将所述虚拟机列表中的目标虚拟机迁移至所述目的虚拟主机包括:

所述源虚拟主机和所述目的虚拟主机连接成功,则将所述目标虚拟机的文档存储于共享网络文件系统后,通过lipvirt接口调用lipvirt工具,运行所述lipvirt工具的迁移核心代码,以便于完成所述目标虚拟机的迁移操作。

优选地,所述若所述源虚拟主机和所述目的虚拟主机连接成功,则通过lipvirt接口调用lipvirt工具,将所述虚拟机列表中的目标虚拟机迁移至所述目的虚拟主机包括:

若所述源虚拟主机和所述目的虚拟主机连接成功,则将所述目标虚拟机备份到本地存储,对所述目标虚拟机的备份存储于共享网络文件系统,并对所述目标虚拟机的备份进行重新定义,运行所述lipvirt工具的迁移核心代码,以便于完成所述目标虚拟机的迁移操作。

优选地,所述调用迁移工具将所述虚拟机列表中的目标虚拟机迁移至所述目的虚拟主机后还包括:

获取所述目标虚拟机迁移过程中的迁移日志信息,将所述迁移日志信息存储至日志文件中;

其中,所述迁移日志信息中包括各个目标虚拟机迁移的时间。

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

检索模块,用于依据用户输入的源虚拟主机的认证信息与所述源虚拟主机建立连接后,检索所述源虚拟主机上连接的虚拟机列表,并向所述用户展示所述虚拟机列表;

建立模块,用于依据所述用户输入的目的虚拟主机的认证信息与所述目的虚拟主机建立连接,以便于所述源虚拟主机和所述目的虚拟主机建立连接关系;

迁移模块,用于检测所述源虚拟主机和所述目的虚拟主机是否连接成功,若是,则调用迁移工具将所述虚拟机列表中的目标虚拟机迁移至所述目的虚拟主机。

本发明还提供了一种虚拟机迁移的设备,包括:

存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现上述一种虚拟机迁移的方法的步骤。

本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述一种虚拟机迁移的方法的步骤。

本发明所提供的虚拟机迁移的方法,利用用户输入源虚拟主机的认证信息与所述虚拟主机建立了连接关系。与所述源虚拟主机连接后,检索所述源虚拟主机上连接的虚拟机列表。利用用户输入的目的虚拟主机的认证信息与所述目的虚拟主机建立连接关系,从而实现所述源虚拟主机和所述目的虚拟主机的连接。当检测到所述源虚拟主机与所述目的虚拟主机连接成功后,调用迁移工具完成所述虚拟机列表中目标虚拟机的迁移。用户利用本发明所提供的方法进行虚拟机迁移时,只需要在用户页面输入所述源虚拟主机的认证信息和所述目的虚拟主机的认证信息;并在确定所述源虚拟主机和所述目的虚拟主机的连接成功后通过一个封装了迁移工具的接口调用迁移工具去实现所述源虚拟主机上的虚拟机迁移至所述目的虚拟主机的操作。本发明所提供的方法,解决了现有技术中迁移工具学习使用困难的问题,提高了虚拟机迁移的效率。

相对应的,本发明所提供的装置、设备以及计算机可读存储介质均具有上书有益效果。

附图说明

为了更清楚的说明本发明实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

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

图2为本发明所提供的虚拟机迁移的方法的第二种具体实施例的流程图;

图3为本发明所提供的虚拟机迁移的方法的第三种具体实施例的流程图;

图4为本发明实施例提供的一种虚拟机迁移的装置的结构框图。

具体实施方式

本发明的核心是提供一种虚拟机迁移的方法、装置、设备以及计算机可读存储介质,降低了迁移工具学习使用的难度,提高了虚拟机迁移的工作效率。

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参考图1,图1为本发明所提供的虚拟机迁移的方法的第一种具体实施例的流程图;具体操作步骤如下:

步骤s101:依据用户输入的源虚拟主机的认证信息与所述源虚拟主机建立连接后,检索所述源虚拟主机上连接的虚拟机列表,并向所述用户展示所述虚拟机列表;

获取用户输入至图形用户界面(gui)平台的源虚拟主机的主机ip、用户名和密码后,使用外壳安全协议与所述源虚拟主机建立连接;检索所述源虚拟主机上连接的虚拟机列表获取所述虚拟机列表使用字典方法并筛选以虚拟机id为主键的并包括虚拟机名字,大小,格式三个内容信息自动输出到图形用户界面平台。

步骤s102:依据所述用户输入的目的虚拟主机的认证信息与所述目的虚拟主机建立连接,以便于所述源虚拟主机和所述目的虚拟主机建立连接关系;

步骤s103:检测所述源虚拟主机和所述目的虚拟主机是否连接成功,若是,则调用迁移工具将所述虚拟机列表中的目标虚拟机迁移至所述目的虚拟主机。

为了解决虚拟机迁移工具学习使用困难,不易上手问题,本实施例利用linux自带的bash或python语言将所述迁移工具(如:virt-v2v工具、lipvirt工具等)进行封装成迁移工具接口。本实施例所提供的方法,有效解决了复杂迁移命令行配置文件以及学习使用困难的问题,并且解决了虚拟机批量迁移的问题。

基于上述实施例,在本实施例中,以lipvirt工具为例对本发明所提供的方法进行进一步解释说明。在本实施例中,通过所述python语言对所述lipvirt工具进行封装,通过本地软件inspur热迁移的图像用户界面(gui)平台可以调用所述lipvirt工具接口。所述gui平台包括源虚机主机ip,端口号,用户名,密码框,连接按键,目的虚拟主机ip,nfs(网络文件系统)共享存储目录,检测虚机连接按键,虚机选择按键,迁移按键等。用户在利用所述本地软件实现虚拟机迁移前安装kvm-qemu,libvirt,后安装所述本地软件,可以使用rpm报安装也可以通过gitclone源码进行编译安装;提供一个nfs共享存储后,在linux终端输入inspurtt命令便可以打开所述本地软件的图形用户界面。

请参考图2,图2为本发明所提供的虚拟机迁移的方法的第二种具体实施例的流程图;具体操作步骤如下:

步骤s201:获取用户输入至图形用户界面平台的源虚拟主机的主机ip、用户名和密码后,使用外壳安全协议与所述源虚拟主机建立连接;

步骤s202:检索并获取所述源虚拟主机上连接的虚拟机列表,并将所述虚拟机列表中各个虚拟机的名称信息、大小信息和格式信息自动输入至所述图形用户界面平台;

步骤s203:获取用户输入目的虚拟主机的主机ip、用户名和密码与所述目的虚拟主机建立连接,以便于所述源虚拟主机和所述目的虚拟主机建立连接关系;

步骤s204:检测所述源虚拟主机和所述目的虚拟主机是否连接成功;

步骤s205:若所述源虚拟主机和所述目的虚拟主机连接成功,则将所述虚拟机列表中的目标虚拟机存储于预设的共享网络文件系统后,通过lipvirt接口调用lipvirt工具,运行所述lipvirt工具的迁移核心代码,以便于完成所述目标虚拟机的迁移操作;

步骤s206:完成所述目标虚拟机的迁移后,获取所述目标虚拟机迁移过程中的迁移日志信息,将所述迁移日志信息存储至日志文件中;其中,所述迁移日志信息中包括各个目标虚拟机迁移的时间。

完成所述目标虚拟机的迁移后,获取输出迁移日志信息,包括每个虚拟机迁移的时间,并输出日志到、root/.inspur/v2v.log里面。本实施例所提供的方法可以多选虚拟机,进行批量迁移,迁移的时间主要受网络影响。

本实施例的核心主要代码如下:

在本实施例中,为了减少所述目标虚拟机迁移过程中,源虚拟主机的影响,还可以在所述源虚拟主机和所述目的虚拟主机连接成功,则将所述目标虚拟机备份到本地存储,对所述目标虚拟机的备份存储于共享网络文件系统,并对所述目标虚拟机的备份进行重新定义,运行所述lipvirt工具的迁移核心代码,以便于完成所述目标虚拟机的迁移操作。也可以copy此image至nfs共享存储,并保存本地iamge和guest定义,迁移至nfs共享存储的image重新定义一个新的guest,然后执行迁移核心代码。其重新定义的xml从截面输入的nfs共享存储获取地址信息,和解析到的guest的xml信息重新定义。上述过程需要停机断业务。

基于上述实施例,在本实施例中,以virt-v2v工具为例对本发明所提供的方法进行进一步解释说明。在本实施例中,通过所述python语言对所述virt-v2v工具进行封装,通过本地软件inspur虚拟迁移的图像用户界面(gui)平台可以调用所述lipvirt工具接口。所述gui平台包括源虚机主机ip,端口号,用户名,密码框,连接按键,目的虚拟主机ip,检测虚机连接按键,虚机选择按键,迁移按键等。用户在利用所述本地软件实现虚拟机迁移前安装kvm-qemu,libvirt,virt-v2v后安装所述本地软件,可以使用rpm报安装也可以通过gitclone源码进行编译安装;在linux终端输入inspurtt命令便可以打开所述本地软件的图形用户界面。

请参考图3,图3为本发明所提供的虚拟机迁移的方法的第三种具体实施例的流程图;具体操作步骤如下:

步骤s301:获取用户输入至图形用户界面平台的源虚拟主机的主机ip、用户名和密码后,使用外壳安全协议与所述源虚拟主机建立连接;

步骤s302:检索并获取所述源虚拟主机上连接的虚拟机列表,并将所述虚拟机列表中各个虚拟机的名称信息、大小信息和格式信息自动输入至所述图形用户界面平台;

步骤s303:获取用户输入目的虚拟主机的主机ip、用户名和密码与所述目的虚拟主机建立连接,以便于所述源虚拟主机和所述目的虚拟主机建立连接关系;

所述目的虚拟主机主要是以kvm为基础的私有云平台主机openstack等。

步骤s304:检测所述源虚拟主机和所述目的虚拟主机是否连接成功;

步骤s305:若所述源虚拟主机和所述目的虚拟主机连接成功,则通过virt-v2v接口调用virt-v2v工具,将所述虚拟机列表中的目标虚拟机迁移至所述目的虚拟主机;

步骤s306:完成所述目的虚拟机的迁移后,获取所述目标虚拟机迁移过程中的迁移日志信息,将所述迁移日志信息存储至日志文件中;其中,所述迁移日志信息中包括各个目标虚拟机迁移的时间。

在本实施例中,完成所述目的虚拟机的迁移后,获取输出迁移日志信息,包括每个虚拟机迁移的时间,并输出日志到root/.inspur/v2v.log中。

本实施例的核心主要代码如下:

本实施例所提供的方法,能够有效解决virt-v2v学习使用困难,并且解决了虚拟机批量传输问题,易于上手,提高了虚拟机迁移的效率。

请参考图4,图4为本发明实施例提供的一种虚拟机迁移的装置的结构框图;具体装置可以包括:

检索模块100,用于依据用户输入的源虚拟主机的认证信息与所述源虚拟主机建立连接后,检索所述源虚拟主机上连接的虚拟机列表,并向所述用户展示所述虚拟机列表;

建立模块200,用于依据所述用户输入的目的虚拟主机的认证信息与所述目的虚拟主机建立连接,以便于所述源虚拟主机和所述目的虚拟主机建立连接关系;

迁移模块300,用于检测所述源虚拟主机和所述目的虚拟主机是否连接成功,若是,则调用迁移工具将所述虚拟机列表中的目标虚拟机迁移至所述目的虚拟主机。

本实施例的虚拟机迁移的装置用于实现前述的虚拟机迁移的方法,因此虚拟机迁移的装置中的具体实施方式可见前文中的虚拟机迁移的方法的实施例部分,例如,检索模块100,建立模块200,迁移模块300,分别用于实现上述虚拟机迁移的方法中步骤s101,s102和s103,所以,其具体实施方式可以参照相应的各个部分实施例的描述,在此不再赘述。

本发明具体实施例还提供了一种虚拟机迁移的设备,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现上述一种虚拟机迁移的方法的步骤。

本发明具体实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述一种虚拟机迁移的方法的步骤。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

以上对本发明所提供的虚拟机迁移的方法、装置、设备以及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

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