虚拟机没有共享存储条件下的在线迁移方法和装置的制造方法

文档序号:9921910阅读:661来源:国知局
虚拟机没有共享存储条件下的在线迁移方法和装置的制造方法
【技术领域】
:
[0001]本发明涉及计算机技术领域,尤其涉及一种虚拟机没有共享存储条件下的在线迀移方法和装置。
【背景技术】
:
[0002]迀移(Migrat 1n)就是把一个虚拟机从一台物理主机搬到另一台物理主机,动态(Live)就是在迀移过程中虚拟机正常工作不影响用户的使用。对系统管理员来说,动态迀移是个非常有用的工具,当计划对一个物理主机进行更新或者升级(updateAipgrade)的时候,管理员不需要关闭这个物理主机上的虚拟机,只是在更新或者升级前把虚拟机动态迀移到另外一个物理主机,等更新或者升级工作完成后,在迀移回来。从用户的角度来看,好像这个过程没有发生。虚拟机虽然迀来迀去,但丝毫不会影响用户的使用。迀移(Migrat1n)就是把一个虚拟机从一台物理主机搬到另一台物理主机,动态(Live)就是在迀移过程中虚拟机正常工作不影响用户的使用。对系统管理员来说,动态迀移是个非常有用的工具,当计划对一个物理主机进行更新或者升级(update/upgrade)的时候,管理员不需要关闭这个物理主机上的虚拟机,只是在更新或者升级前把虚拟机动态迀移到另外一个物理主机,等更新或者升级工作完成后,在迀移回来。从用户的角度来看,好像这个过程没有发生。虚拟机虽然迀来迀去,但丝毫不会影响用户的使用。迀移(Migrat1n)就是把一个虚拟机从一台物理主机搬到另一台物理主机,动态(Li ve)就是在迀移过程中虚拟机正常工作不影响用户的使用。对系统管理员来说,动态迀移是个非常有用的工具,当计划对一个物理主机进行更新或者升级(updateAipgrade)的时候,管理员不需要关闭这个物理主机上的虚拟机,只是在更新或者升级前把虚拟机动态迀移到另外一个物理主机,等更新或者升级工作完成后,在迀移回来。从用户的角度来看,好像这个过程没有发生。虚拟机虽然迀来迀去,但丝毫不会影响用户的使用。迀移(Migrat1n)就是把一个虚拟机从一台物理主机搬到另一台物理主机,动态(Live)就是在迀移过程中虚拟机正常工作不影响用户的使用。对系统管理员来说,动态迀移是个非常有用的工具,当计划对一个物理主机进行更新或者升级(update Aipgrade)的时候,管理员不需要关闭这个物理主机上的虚拟机,只是在更新或者升级前把虚拟机动态迀移到另外一个物理主机,等更新或者升级工作完成后,在迀移回来。从用户的角度来看,好像这个过程没有发生。虚拟机虽然迀来迀去,但丝毫不会影响用户的使用。迀移(Migrat1n)就是把一个虚拟机从一台物理主机搬到另一台物理主机,动态(Live)就是在迀移过程中虚拟机正常工作不影响用户的使用。对系统管理员来说,动态迀移是个非常有用的工具,当计划对一个物理主机进行更新或者升级(updateAipgrade)的时候,管理员不需要关闭这个物理主机上的虚拟机,只是在更新或者升级前把虚拟机动态迀移到另外一个物理主机,等更新或者升级工作完成后,在迀移回来。从用户的角度来看,好像这个过程没有发生。虚拟机虽然迀来迀去,但丝毫不会影响用户的使用。动态迀移包括两方面的意思,一是迀移(Migrat1n),迀移就是把用户的虚拟机从一台物理主机移到另外一台物理主机。二是动态,动态的意思就是在迀移的过程中:1、虚拟机还开着机;2、虚拟机的网路也不受影响;3、而且上面的运行的用户程序依旧运行。整个过程对用户来说是透明的,对用户可以正常使用迀移途中的虚拟机。
[0003]目前主流的两种类型的虚拟机迀移技术:
[0004]冷迀移(Cold migrat1n)-冷迀移也叫静态迀移。在迀移过程中虚拟机必须关机,用户也不能访问虚拟机。因为要关机,所以他适用于用户对系统可用性要求不是很高的时候。
[0005]热迀移(Hot or live migrat1n)-热迀移也叫动态迀移。在迀移的过程中虚拟机仍旧工作,用户可以继续使用虚拟机。本专利就介绍的就是这种类型的迀移。热迀移又分为下面二种类型:
[0006]1、虚拟机的数据存在共享磁盘上(Shared storage-based live migrat1n)。如图1所示;
[0007]2、虚拟机的数据存在本地磁盘(block migrat1n),需要对镜像文件和内存数据同时迀移,如图2所示。赛尔云通过块迀移实现这这类迀移。

【发明内容】

:
[0008]本发明提出了一种信息系统灾难时虚拟机的在线迀移方法和装置。
[0009]根据本发明一方面,提供了一种没有共享存储条件下虚拟机的在线迀移方法,包括:
[0010]接收虚拟机动态迀移的请求,所述请求包括源物理主机和目的物理主机;
[0011 ]进行虚拟机动态迀移前的条件检查;
[0012]进行虚拟机动态迀移前的预处理;
[0013]进行虚拟机动态迀移;
[0014]进行虚拟机动态迀移的后处理。
[0015]根据本发明另一方面,提供了一种没有共享存储条件下虚拟机的在线迀移装置,包括:
[0016]请求模块,用于接收虚拟机动态迀移的请求,所述请求包括源物理主机和目的物理主机;
[0017]虚拟机动态迀移模块,用于进行虚拟机动态迀移前的条件检查,进行虚拟机动态迀移前的预处理,进行虚拟机动态迀移,进行虚拟机动态迀移的后处理。
[0018]本发明提出的上述方法一旦检测到信息系统出现故障,通过热迀移技术,将信息系统自动的迀移到集群中的其他服务器上。一旦服务器停止服务,可立即使用集群中其他服务器接替主生产服务器上的业务系统并使之持续化运行,从而保障业务系统的连续性。
【附图说明】
:
[0019]图1示出了虚拟机的数据在共享磁盘上;
[0020]图2示出了虚拟机的数据存储在本地磁盘,需要对镜像文件和内存数据进行同时迀移;
[0021]图3示出了本发明赛尔云最小配置,三个物理主机,一个用来做控制节点,两个做计算节点;
[0022]图4示出了本发明虚拟从一个节点动态迀移到另外一个节点的过程;
[0023]图5示出了本发明虚拟机镜像包括的后端镜像(backing file)和copy-on-write镜像;
[0024]图6示出了本发明虚拟机镜像包括的文件包括后端镜像(_base后面的部分)和单独的增量镜像(目录6e783272-31b5-4fdc-8828-2b8892daab39后面的)两部分;
[0025]图7示出了本发明用qemu-1mg查看虚拟机单独的增量镜像文件的信息;
[0026]图8示出了本发明I ibvirt提供了隧道化的数据传输(I ibvirt tunnel ledtransport)方式来完成数据转移;
[0027]图9示出了本发明在迀移的过程中,运行在目的物理主机(DestHost)中的Iibvirtd进程要根据address和port创建一个URI,URI是目的物理主机用来接收数据和发回数据到源物理主机的Iibvirtd进程的;
[0028]图10示出了本发明在computeOl上执行virsh命令的输出;
[0029]图11 不出了本发明把虚拟机从tor01kvm001ccz048迁移到tor01kvm002ccz048;
[0030]图12示出了本发明在tor01kvm001ccz048上建一个虚拟机ImOOl ;
[0031 ] 图13示出了本发明检查虚拟机ImOOl建在了 tor01kvm001ccz048上;
[0032]图14示出了本发明虚拟机的Task State变成了migrating状态;
[0033]图15示出了本发明通过nova show命令,可以看到ImOOl已经成功迀移到了tor01kvm002ccz048 ;
【具体实施方式】
:
[0034]为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明作进一步的详细说明。
[0035]动态迀移是把虚拟机从一个物理主机迀移到另外一个物理主机,所以至少需要有两个物理主机作为计算节点。图3是一个最小的赛尔云配置,其中包括三个物理主机,一个用来做赛尔云的控制节点,两个用来做计算节点。控制节点接受并处理动态迀移的请求,管理员可以从图形界面、命令行、API等发起动态迀移。动态迀移就是把客户的虚拟机VM从计算节点I迀移到计算节点2,或者从计算节点2迀移到计算节点I,如图4所示。
[0036]计算节点上的虚拟机监视器虚拟机管理程序是KVM虚拟机,操作系统是redhat6.5。计算节点I和2上的虚拟机分别存储在本地文件系统,如图2所示。
[0037]上面提到的虚拟机管理程序和KVM相关概念,以及赛尔云各个模块的详细介绍,您可以阅读参考资料里文档,这里不在做详细介绍。
[0038]动态迀移的实现:
[0039]本节分别从基本概念、传输协议和迀移的步骤三个方面介绍动态迀移是如何实现的。
[0040]基本概念:
[0041 ]在了解动态迀移之前,必须了解镜像文件的格式如0?2。如0?2是QEMU目前推荐的镜像格式,它支持稀疏文件以节省存储空间,支持加密以提高镜像文件的安全性,支持基于zlib的压缩。Qcow2镜像可以用来保存另一个镜像文件的变化,它并不去修改原始镜像文件,原始镜像文件也叫后端镜像(backing_file)。只记录与原始镜像文件的不同部分的镜像文件,这种镜像文件就叫做copy-on-wri te镜像,它虽然是一个单独的镜像文件,但它的大部分数据都来自原始镜像,只有基于原始镜像文件的增量部分才会被记录下来。本发明提及的虚拟机都是赛尔云用Qcow2格式的镜像文件建立的,如图5所示,包含两部分。
[0042]后端镜像(Iibvirtbase)
[0043]虚拟机单独的增量镜像文件(libvirtinstance disks),copy-on_write镜像。
[0044]在物理机的磁盘上,当我们建了一个虚拟机后,就会生成如图6列的这些文件。其*_base下面的文件,就是后端镜像(libvirt base),目录6e783272-31b5-4fdc_8828-2b8892daab39下面是虚拟机单独的增量镜像文件(libvirt instance disks),它只记录和base文件不同的内容。
[0045]用qemu-1mg查看虚拟机单独的增量镜像文件的信息,我们可以看到他的backingf i 16是」^8e目录下的镜像文件,如图7所示。
[0046]上面介绍的后端镜像(libvirtBase ),虚拟机单独的增量镜像文件(I ibvirtinstance disks),都是要被迀移的数据。动态迀移的最终目标就是把它们完整地从源物理主机迀移到目标物理主机。除了他们两个之外,还有一个需要迀移的对象就是内存里运行的虚拟机的数据。
[0047]总结一下:虚拟机的迀移,其实就是数据的转移,因为计算节点之间没有共享存储,所以要转移的数据包括两部分:
[0048]静态数据:存储在本地的虚拟机的镜像文件,包括后端镜像(libvirtBase)和虚拟机单独的增量镜像文件(libvirt instance disks)。
[0049]动态数据:内存里虚拟机的运行时数据,内存里的数据是动态变化的数
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1