CN105117274A - 虚拟机迁移方法和装置 - Google Patents

虚拟机迁移方法和装置 Download PDF

Info

Publication number
CN105117274A
CN105117274A CN201510590738.2A CN201510590738A CN105117274A CN 105117274 A CN105117274 A CN 105117274A CN 201510590738 A CN201510590738 A CN 201510590738A CN 105117274 A CN105117274 A CN 105117274A
Authority
CN
China
Prior art keywords
data
migration
storage device
shared
local
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201510590738.2A
Other languages
English (en)
Other versions
CN105117274B (zh
Inventor
张宇
徐臻
曹菲菲
谢广军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN201510590738.2A priority Critical patent/CN105117274B/zh
Priority to PCT/CN2015/095753 priority patent/WO2017045272A1/zh
Priority to US15/534,589 priority patent/US10318343B2/en
Publication of CN105117274A publication Critical patent/CN105117274A/zh
Application granted granted Critical
Publication of CN105117274B publication Critical patent/CN105117274B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了虚拟机迁移方法和装置。该方法的一具体实施方式包括:接收对虚拟机的迁移请求,虚拟机的待迁移数据包括存储于本地的本地数据以及可被虚拟机多地访问的共享数据;响应于迁移请求,确定本地数据以及共享数据各自对应的迁移操作;执行本地数据以及共享数据对应的迁移操作,以完成虚拟机的迁移。从而实现了对混合存储模式即待迁移数据中既包含本地数据又包含共享数据这一存储模式的虚拟机的迁移。

Description

虚拟机迁移方法和装置
技术领域
本申请涉及计算机领域,具体涉及虚拟机领域,尤其涉及虚拟机迁移方法和装置。
背景技术
在云计算应用中,对云计算平台中的虚拟机进行迁移是常用的功能。虚拟机中的数据通常采用全本地存储模式即数据全部存储于本地或全共享存储模式即数据全部存储于可多地访问的共享存储设备上。当采用全本地存储模式时,对虚拟机的迁移方式为拷贝本地数据至目标端。当采用全共享存储模式时,对虚拟机的迁移方式为将共享存储设备在目标端进行挂载。
然而,上述对虚拟机的迁移方式仅支持单一存储模式的虚拟机的迁移,对于虚拟机中数据即包含本地数据又包含共享存储数据的虚拟机,无法完成对该类型的虚拟机的迁移。
发明内容
本申请提供了虚拟机迁移方法和装置,用于解决上述背景技术部分存在的技术问题。
第一方面,本申请提供了虚拟机迁移方法,该方法包括:接收对虚拟机的迁移请求,虚拟机的待迁移数据包括存储于本地的本地数据以及可被虚拟机多地访问的共享数据;响应于迁移请求,确定本地数据以及共享数据各自对应的迁移操作;执行本地数据以及共享数据对应的迁移操作,以完成虚拟机的迁移。
第二方面,本申请提供了虚拟机迁移装置,该装置包括:接收单元,配置用于接收对虚拟机的迁移请求,虚拟机的待迁移数据包括存储于本地的本地数据以及可被虚拟机多地访问的共享数据;响应单元,配置用于响应于迁移请求,确定本地数据以及共享数据各自对应的迁移操作;执行单元,配置用于执行本地数据以及共享数据对应的迁移操作,以完成虚拟机的迁移。
本申请提供的虚拟机迁移方法和装置,通过接收对虚拟机的迁移请求,虚拟机的待迁移数据包括存储于本地的本地数据以及可被虚拟机多地访问的共享数据;响应于迁移请求,确定本地数据以及共享数据各自对应的迁移操作;执行本地数据以及共享数据对应的迁移操作,以完成虚拟机的迁移。从而实现了对混合存储模式即待迁移数据中既包含本地数据又包含共享数据这一存储模式的虚拟机的迁移。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1是本申请可以应用于其中的示例性***架构图;
图2示出了根据本申请的虚拟机迁移方法的一个实施例的流程图;
图3示出了已知技术中的虚拟机迁移的原理图;
图4示出了根据本申请的虚拟机迁移装置的一个实施例的结构示意图;
图5示出了适于用来实现本申请实施例的终端设备或服务器的计算机***的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
请参考图1,图1示出了可以应用本申请的虚拟机迁移方法和装置的实施例的示例性***架构100。
如图1所示,***架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供传输链路的介质。网络104可以包括各种连接类型,例如有线、无线传输链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以运行有虚拟机等应用。
终端设备101、102、103可以是具有显示屏并且支持网络通信的各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、MP3播放器(MovingPictureExpertsGroupAudioLayerIII,动态影像专家压缩标准音频层面3)、MP4(MovingPictureExpertsGroupAudioLayerIV,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对终端设备101、102、103上运行的虚拟机提供迁移支持的服务器。服务器可以对接收到的虚拟机的迁移请求处理,对终端设备上运行的虚拟机进行迁移。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
请参考图2,其示出了根据本申请的虚拟机迁移方法的一个实施例的流程200。本实施例所提供的虚拟机迁移方法可以由终端设备101、102、103或服务器105执行,该方法包括以下步骤:
步骤201,接收对虚拟机的迁移请求,虚拟机的待迁移数据包括存储于本地的本地数据以及可被虚拟机多地访问的共享数据。
在本实施例中,虚拟机可以为运行在物理机之上的采用虚拟化技术生成KVM、XEN、Hyper-V等类型的虚拟机。虚拟机可以配置有虚拟内存、虚拟磁盘。在本实施例中,虚拟机对应的待迁移数据可以存储于本地,例如,存储于虚拟机所在的物理机分配给虚拟机的虚拟内存、虚拟磁盘上,相应地,可以将存储于本地的数据称之为本地数据。虚拟机的待迁移数据也可以存储在共享存储设备上(例如云服务器)上,可以将存储于云服务器的数据称之为共享数据,虚拟机可以在多地通过云服务器提供的访问接口访问存储在云服务器上的共享数据。在本实施例中,可以将虚拟机上与虚拟机运行的操作***相关联的数据(也可称之为***盘数据)存储于本地,以及将虚拟机在运行时所访问的数据(也可称之为数据盘数据)存储于共享存储设备上。可以将上述存储方式称之为混合存储模式。
步骤202,响应于迁移请求,确定本地数据以及共享数据各自对应的迁移操作。
在本实施例中,当接收到迁移对虚拟机的迁移请求之后,可以响应于迁移请求,进一步确定待迁移数据中的本地数据以及共享数据各自对应的迁移操作。
在本实施例的一些可选地实现方式中,迁移操作包括:用于将待迁移数据拷贝至目标端的拷贝操作、用于将待迁移数据对应的存储设备文件在目标端进行挂载的挂载操作。需要说明的是,在本实施例中,存储设备的含义可以是指设备文件。例如,在Linux操作***中,硬件设备均对应一个设备文件,对设备的读取操作以及写入操作均是通过对设备文件的读取以及写入进行的。因此,在本实施例中,将存储设备在目标端挂载可以为将设备对应的设备文件在目标端进行挂载。
下面以虚拟机的待迁移数据的***盘数据存储在本地,数据盘数据存储在云存储服务器这一混合存储模式为例,说明确定本地数据以及共享数据对应的迁移操作的过程:可以对***盘数据进行拷贝操作,然后发送至目标端。同时,可以不用对虚拟机的数据盘上的数据进行拷贝,而是将数据盘上的数据所对应的共享存储设备在目标端进行挂载。从而完成在混合存储模式下的虚拟机的迁移。
在本实施例的一些可选地实现方式中,响应于迁移请求,确定本地数据以及共享数据各自对应的迁移操作包括:响应于迁移请求,确定本地数据对应的本地存储设备的本地存储设备标识和共享数据对应的共享存储设备的共享存储设备标识,以及将共享存储设备标识与指示共享存储设备的特征的共享存储设备特征信息进行绑定;将本地存储设备标识以及共享存储设备标识作为云计算管理框架OpenStack的本地存储模式接口下的驱动层的输入参数传入驱动层,以触发驱动层的存储设备区分操作,存储设备区分操作包括:判断输入参数中的存储设备标识是否对应于共享存储设备特征信息,得到判断结果,以及基于判断结果,区分输入参数中的本地存储设备标识以及共享存储设备标识;基于本地存储设备标识以及共享存储设备标识,确定本地数据以及共享数据各自对应的迁移操作。
在本实施例中,可以利用云计算管理框架OpenStack框架进行对虚拟机的迁移操作,OpenStack为可以向公有/私有云计算平台提供虚拟计算支持的开源框架。下面简述OpenStack框架下与虚拟机操作相关的模块:在OpenStack框架下,包含Nova模块(也可称之为Nova层)、Libvirt模块(也可称之为Libvirt层)、驱动模块(也可称之为Nova层)。其中,Nova层用于支持CPU、内存、网络适配器、硬盘驱动器的虚拟化。Libvirt层用于管理采用多种不同的虚拟化技术而生成的虚拟机进行统一管理。驱动层完成对虚拟机的底层操作。在OpenStack框架下,每一个虚拟机的相关操作可以分别在Nova层、Libvirt层、驱动层分别得到相应地支持。以虚拟机的迁移为例,Nova层、Libvirt层、驱动层中均包含与虚拟机迁移相关联的操作。
在本实施例的一些可选地实现方式中,驱动层为Qemu-Kvm。
请参考图3,其示出了已知技术中的虚拟机迁移的原理图。在利用云计算管理框架OpenStack进行虚拟机迁移时,通过OpenStack框架中的Libvirt层以及Qemu-Kvm层提供的与虚拟机的迁移相关的操作,将虚拟机的待迁移数据迁移到目标端(例如目标物理机),从而完成虚拟机的迁移。在图3中,Block存储模式为本地存储模式,即虚拟机的待迁移数据全部存储于本地。Share存储模式为共享存储模式,即虚拟机的待迁移数据全部存储于共享存储设备上。在OpenStack框架中,仅支持单一存储模式即本地存储模式或共享存储模式的虚拟机的迁移。利用OpenStack进行虚拟机迁移的过程如下:在Nova层中,定义有本地存储模式对应的接口(也可称之为Block接口)以及与共享存储模式对应的接口。在对虚拟机进行迁移时,根据接收到的迁移指令的不同,在不同的接口下触发在Libvirt层以及Qemu-Kvm层中定义的与存储模式对应的与虚拟机迁移相关的操作。例如,当迁移指令为用于本地数据迁移的本地迁移指令时,会触发Block接口下的在Libvirt层以及Qemu-Kvm层中定义的与本地存储模式的虚拟机迁移相关的操作,即拷贝待迁移数据,然后发送至目标端的操作。当迁移指令为用于共享数据迁移的共享迁移指令时,会触发共享存储接口下的在Libvirt层以及Qemu-Kvm层中定义的与共享存储模式的虚拟机迁移相关的操作,即将共享存储设备文件在目标端进行挂载的操作。
下面说明本实施例中利用OpenStack框架确定本地数据以及共享数据对应的迁移操作的过程:在本实施例中,可以首先响应于迁移请求,确定本地数据对应的本地存储设备的本地存储设备标识和共享数据对应的共享存储设备的共享存储设备标识,以及将共享存储设备标识与指示共享存储设备的特征的共享存储设备特征信息进行绑定。以待迁移数据的***盘数据存储在本地,数据盘数据存储在云服务器这一混合存储模式为例,可以首先确定***盘数据所在的本地存储设备(例如虚拟磁盘)的标识以及数据盘数据所在共享存储设备(云服务器)的标识,并且可以预先获取指示共享存储设备的特征的共享存储设备特征信息,将共享存储设备的标识与共享存储设备特征信息进行绑定。
在本实施例中,在确定本地存储设备标识和共享存储设备标识之后,可以生成一个存储设备标识集合,将该存储设备标识集合作为驱动层的输入参数。在本实施例中,可以将驱动层的输入参数承载在用于本地数据迁移的本地迁移指令中,然后向Nova层发出本地迁移指令。Nova层可以根据本地迁移指令,复用本地存储模式接口,即在Nova层下的本地存储模式对应的接口下,触发在Libvirt层以及Qemu-Kvm层中定义的与本地存储模式对应的与虚拟机迁移相关的操作。在Libvirt层中,包括与虚拟机迁移相关的接口,可以从本地迁移指令中解析出驱动层的输入参数,然后将驱动层的输入参数承载在指示本地存储模式的本地迁移参数传入该接口,最后经由该接口将承载有驱动层的输入参数的本地迁移参数传入Qemu-Kvm层,以触发Qemu-Kvm层中定义与本地存储模式的虚拟机迁移相关的操作。
在本实施例中,由于Qemu-Kvm层中,当接收到本地迁移参数时,Qemu-Kvm层默认执行的操作为对所有存储设备上的数据进行拷贝。因此,可以在Qemu-Kvm层中对本地存储设备和共享存储设备进行区分,即在本实施例中,Qemu-Kvm层中定义与本地存储模式的虚拟机迁移相关的操作包括对本地存储设备和共享存储设备进行区分的操作。Qemu-Kvm层对本地存储设备和共享存储设备进行区分的操作可以为:Qemu-Kvm层可以基于接收到的本地迁移参数中的输入参数,即包含本地存储设备标识与共享存储设备标识的设备标识集合的输入参数,判断设备标识集合中的存储设备标识是否对应于共享存储设备特征信息,得到判断结果。当设备标识集合中的存储设备标识对应于共享存储设备特征信息,则判断结果为该存储设备标识对应的存储设备为共享存储设备。在对设备标识集合中的所有存储设备标识进行区分之后,可以在Qemu-Kvm层中确定出本地存储设备和共享存储设备,相应地,可以在Qemu-Kvm层中确定本地数据以及共享数据各自对应的迁移操作。
在本实施例的一些可选地实现方式中,基于本地存储设备标识以及共享存储设备标识,确定本地数据以及共享数据各自对应的迁移操作包括:将本地存储设备标识对应的本地存储设备上的本地数据对应的迁移操作确定为拷贝操作,以及将共享存储设备标识对应的共享存储设备上的共享数据对应的迁移操确定为挂载操作。
在本实施例中,可以对于经区分后确定的本地存储设备标识对应的本地存储设备上的本地数据对应的迁移操作确定为拷贝操作。同时,可以将经区分后确定的共享存储设备标识对应的共享存储设备上共享数据对应的迁移操确定为挂载操作,即不对共享数据进行拷贝,而是将共享数据对应的设备文件在目标端进行挂载。从而在对虚拟机的迁移过程中,避免了对可多地访问共享数据的拷贝操作,减少迁移消耗,提升迁移速度。
在本实施例的一些可选地实现方式中,还包括:在响应于迁移请求,确定本地数据以及共享数据各自对应的迁移操作之前,在目标端生成共享数据对应的存储设备文件。
在本实施例中,可以在响应于迁移请求,确定本地数据以及共享数据各自对应的迁移操作之前,在目标端生成共享数据对应的存储设备文件,从而可以使得在迁移过程中,对共享数据对应的存储设备文件在目标端进行挂载。
步骤203,执行本地数据以及共享数据对应的迁移操作,以完成虚拟机的迁移。
在本实施例中,在确定执行本地数据以及共享数据对应的迁移操作之后,可以在Qemu-Kvm层执行本地数据以及共享数据对应的迁移操作,完成虚拟机的迁移。例如,可以在Qemu-Kvm层中将本地数据拷贝至目标端,然后在Qemu-Kvm层中将共享数据对应的共享存储设备文件在目标端进行挂载。在本实施例中,由于共享存储设备的读写后端已经可以保证一致性,因此,在对共享存储设备文件进行挂载之后,在目标端不需要做文件的重新打开操作。
在本实施例的一些可选地实现方式中,还包括:在执行本地数据以及共享数据对应的迁移操作之后,对存储设备文件进行卸载操作以及清除本地数据。
在本实施例中,通过扩展OpenStack框架中原有本地存储的Block模式,即复用了本地存储模式接口,实现了混合存储模式下虚拟机的动态迁移。并且,由于对本地存储设备以及共享存储设备进行区分,对本地存储设备采取拷贝操作,而对共享存储设备进行过滤,即不拷贝共享数据而是将共享存储设备在目标端进行挂载,从而进一步减少虚拟机迁移过程中的开销。
请参考图4,其示出了根据本申请的虚拟机迁移装置的一个实施例的结构示意图。装置400包括:接收单元401,响应单元402,执行单元403。其中,接收单元401配置用于接收对虚拟机的迁移请求,虚拟机的待迁移数据包括存储于本地的本地数据以及可被虚拟机多地访问的共享数据;响应单元402配置用于响应于迁移请求,确定本地数据以及共享数据各自对应的迁移操作;执行单元403配置用于执行本地数据以及共享数据对应的迁移操作,以完成虚拟机的迁移。
在本实施例的一些可选地实现方式中,迁移操作包括:用于将待迁移数据拷贝至目标端的拷贝操作、用于将待迁移数据对应的存储设备文件在目标端进行挂载的挂载操作。
在本实施例的一些可选地实现方式中,响应单元包括:迁移请求响应子单元(未示出),配置用于响应于迁移请求,确定本地数据对应的本地存储设备的本地存储设备标识和共享数据对应的共享存储设备的共享存储设备标识,以及将共享存储设备标识与指示共享存储设备的特征的共享存储设备特征信息进行绑定;区分子单元(未示出),配置用于将本地存储设备标识以及共享存储设备标识作为云计算管理框架OpenStack的本地存储模式接口下的驱动层的输入参数传入驱动层,以触发驱动层的存储设备区分操作,存储设备区分操作包括:判断输入参数中的存储设备标识是否对应于共享存储设备特征信息,得到判断结果,以及基于判断结果,区分输入参数中的本地存储设备标识以及共享存储设备标识;确定子单元(未示出),配置用于基于本地存储设备标识以及共享存储设备标识,确定本地数据以及共享数据各自对应的迁移操作。
在本实施例的一些可选地实现方式中,确定子单元进一步配置用于:将本地存储设备标识对应的本地存储设备上的本地数据对应的迁移操作确定为拷贝操作,以及将共享存储设备标识对应的共享存储设备上的共享数据对应的迁移操确定为挂载操作。
在本实施例的一些可选地实现方式中,驱动层为Qemu-Kvm。
在本实施例的一些可选地实现方式中,装置400还包括:创建单元(未示出),配置用于在响应于迁移请求,确定本地数据以及共享数据各自对应的迁移操作之前,在目标端生成共享数据对应的存储设备文件。
在本实施例的一些可选地实现方式中,装置400还包括:清除单元(未示出),配置用于在执行本地数据以及共享数据对应的迁移操作之后,对存储设备文件进行卸载操作以及清除本地数据。
图5示出了适于用来实现本申请实施例的终端设备或服务器的计算机***的结构示意图。如图5所示,计算机***500包括中央处理单元(CPU)501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储部分508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。在RAM503中,还存储有***500操作所需的各种程序和数据。CPU501、ROM502以及RAM503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
以下部件连接至I/O接口505:包括键盘、鼠标等的输入部分506;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分507;包括硬盘等的存储部分508;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至I/O接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入存储部分508。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。
附图中的流程图和框图,图示了按照本申请各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
作为另一方面,本申请还提供了一种非易失性计算机存储介质,该非易失性计算机存储介质可以是上述实施例中所述装置中所包含的非易失性计算机存储介质;也可以是单独存在,未装配入终端中的非易失性计算机存储介质。上述非易失性计算机存储介质存储有一个或者多个程序,当所述一个或者多个程序被一个设备执行时,使得所述设备:接收对虚拟机的迁移请求,虚拟机的待迁移数据包括存储于本地的本地数据以及可被虚拟机多地访问的共享数据;响应于迁移请求,确定本地数据以及共享数据各自对应的迁移操作;执行本地数据以及共享数据对应的迁移操作,以完成虚拟机的迁移。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

Claims (14)

1.一种虚拟机迁移方法,其特征在于,所述方法包括:
接收对虚拟机的迁移请求,所述虚拟机的待迁移数据包括存储于本地的本地数据以及可被所述虚拟机多地访问的共享数据;
响应于所述迁移请求,确定所述本地数据以及共享数据各自对应的迁移操作;
执行所述本地数据以及共享数据对应的迁移操作,以完成所述虚拟机的迁移。
2.根据权利要求1所述的方法,其特征在于,所述迁移操作包括:用于将待迁移数据拷贝至目标端的拷贝操作、用于将待迁移数据对应的存储设备文件在目标端进行挂载的挂载操作。
3.根据权利要求2所述的方法,其特征在于,所述响应于所述迁移请求,确定所述本地数据以及共享数据各自对应的迁移操作包括:
响应于所述迁移请求,确定本地数据对应的本地存储设备的本地存储设备标识和共享数据对应的共享存储设备的共享存储设备标识,以及将共享存储设备标识与指示共享存储设备的特征的共享存储设备特征信息进行绑定;
将所述本地存储设备标识以及共享存储设备标识作为云计算管理框架OpenStack的本地存储模式接口下的驱动层的输入参数传入所述驱动层,以触发所述驱动层的存储设备区分操作,所述存储设备区分操作包括:判断所述输入参数中的存储设备标识是否对应于共享存储设备特征信息,得到判断结果,以及基于所述判断结果,区分输入参数中的本地存储设备标识以及共享存储设备标识;
基于所述本地存储设备标识以及共享存储设备标识,确定所述本地数据以及共享数据各自对应的迁移操作。
4.根据权利要求3所述的方法,其特征在于,所述基于所述本地存储设备标识以及共享存储设备标识,确定所述本地数据以及共享数据各自对应的迁移操作包括:
将所述本地存储设备标识对应的本地存储设备上的本地数据对应的迁移操作确定为所述拷贝操作,以及将所述共享存储设备标识对应的共享存储设备上的共享数据对应的迁移操确定为所述挂载操作。
5.根据权利要求4所述的方法,其特征在于,所述驱动层为Qemu-Kvm。
6.根据权利要求1-5之一所述的方法,其特征在于,所述方法还包括:在响应于所述迁移请求,确定所述本地数据以及共享数据各自对应的迁移操作之前,在目标端生成所述共享数据对应的存储设备文件。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:在执行所述本地数据以及共享数据对应的迁移操作之后,对所述存储设备文件进行卸载操作以及清除所述本地数据。
8.一种虚拟机迁移装置,其特征在于,所述装置包括:
接收单元,配置用于接收对虚拟机的迁移请求,所述虚拟机的待迁移数据包括存储于本地的本地数据以及可被所述虚拟机多地访问的共享数据;
响应单元,配置用于响应于所述迁移请求,确定所述本地数据以及共享数据各自对应的迁移操作;
执行单元,配置用于执行所述本地数据以及共享数据对应的迁移操作,以完成所述虚拟机的迁移。
9.根据权利要求8所述的装置,其特征在于,所述迁移操作包括:用于将待迁移数据拷贝至目标端的拷贝操作、用于将待迁移数据对应的存储设备文件在目标端进行挂载的挂载操作。
10.根据权利要求9所述的装置,其特征在于,所述响应单元包括:
迁移请求响应子单元,配置用于响应于所述迁移请求,确定本地数据对应的本地存储设备的本地存储设备标识和共享数据对应的共享存储设备的共享存储设备标识,以及将共享存储设备标识与指示共享存储设备的特征的共享存储设备特征信息进行绑定;
区分子单元,配置用于将所述本地存储设备标识以及共享存储设备标识作为云计算管理框架OpenStack的本地存储模式接口下的驱动层的输入参数传入所述驱动层,以触发所述驱动层的存储设备区分操作,所述存储设备区分操作包括:判断所述输入参数中的存储设备标识是否对应于共享存储设备特征信息,得到判断结果,以及基于所述判断结果,区分输入参数中的本地存储设备标识以及共享存储设备标识;
确定子单元,配置用于基于所述本地存储设备标识以及共享存储设备标识,确定所述本地数据以及共享数据各自对应的迁移操作。
11.根据权利要求10所述的装置,其特征在于,所述确定子单元进一步配置用于:将所述本地存储设备标识对应的本地存储设备上的本地数据对应的迁移操作确定为所述拷贝操作,以及将所述共享存储设备标识对应的共享存储设备上的共享数据对应的迁移操确定为所述挂载操作。
12.根据权利要求11所述的装置,其特征在于,所述驱动层为Qemu-Kvm。
13.根据权利要求8-12之一所述的装置,其特征在于,所述装置还包括:
创建单元,配置用于在响应于所述迁移请求,确定所述本地数据以及共享数据各自对应的迁移操作之前,在目标端生成所述共享数据对应的存储设备文件。
14.根据权利要求13所述的装置,其特征在于,所述装置还包括:
清除单元,配置用于在执行所述本地数据以及共享数据对应的迁移操作之后,对所述存储设备文件进行卸载操作以及清除所述本地数据。
CN201510590738.2A 2015-09-16 2015-09-16 虚拟机迁移方法和装置 Active CN105117274B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201510590738.2A CN105117274B (zh) 2015-09-16 2015-09-16 虚拟机迁移方法和装置
PCT/CN2015/095753 WO2017045272A1 (zh) 2015-09-16 2015-11-27 虚拟机迁移方法和装置
US15/534,589 US10318343B2 (en) 2015-09-16 2015-11-27 Migration methods and apparatuses for migrating virtual machine including locally stored and shared data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510590738.2A CN105117274B (zh) 2015-09-16 2015-09-16 虚拟机迁移方法和装置

Publications (2)

Publication Number Publication Date
CN105117274A true CN105117274A (zh) 2015-12-02
CN105117274B CN105117274B (zh) 2018-09-11

Family

ID=54665275

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510590738.2A Active CN105117274B (zh) 2015-09-16 2015-09-16 虚拟机迁移方法和装置

Country Status (3)

Country Link
US (1) US10318343B2 (zh)
CN (1) CN105117274B (zh)
WO (1) WO2017045272A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105843682A (zh) * 2016-03-29 2016-08-10 新浪网技术(中国)有限公司 一种迁移虚拟机到IaaS云平台的方法及装置
CN105897866A (zh) * 2016-03-29 2016-08-24 新浪网技术(中国)有限公司 一种基于IaaS云平台的云主机迁移方法及装置
CN106815068A (zh) * 2016-12-09 2017-06-09 中电科华云信息技术有限公司 基于Openstack实现Hyperv虚拟机热迁移的方法
CN107783826A (zh) * 2016-08-26 2018-03-09 北京金山云网络技术有限公司 一种虚拟机迁移方法、装置及***

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111181929A (zh) * 2019-12-16 2020-05-19 中国电子科技网络信息安全有限公司 基于共享虚拟机文件的异构混合云架构及管理方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102455942A (zh) * 2010-12-02 2012-05-16 中标软件有限公司 一种广域网虚拟机动态迁移方法及***
CN104660690A (zh) * 2015-02-06 2015-05-27 中国农业大学 云视频服务监控***

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5684815B2 (ja) * 2010-04-30 2015-03-18 株式会社日立製作所 計算機システム及びその制御方法
EP2631799A4 (en) * 2010-10-22 2014-08-20 Fujitsu Ltd DATA CENTER, INFORMATION PROCESSING SYSTEM, INFORMATION PROCESSING DEVICE, METHOD FOR CONTROLLING INFORMATION PROCESSING DEVICE, AND CONTROL PROGRAM
US9977698B2 (en) * 2012-07-31 2018-05-22 V3 Systems Holdings, Inc. Virtual machine migration into the cloud
CN102821158B (zh) 2012-08-20 2015-09-30 广州杰赛科技股份有限公司 一种实现虚拟机迁移的方法和云***
US9477506B2 (en) * 2013-02-12 2016-10-25 Futurewei Technologies, Inc. Dynamic virtual machines migration over information centric networks
CN104699522B (zh) 2015-03-17 2017-10-13 成都麦进斗科技有限公司 一种虚拟机动态迁移方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102455942A (zh) * 2010-12-02 2012-05-16 中标软件有限公司 一种广域网虚拟机动态迁移方法及***
CN104660690A (zh) * 2015-02-06 2015-05-27 中国农业大学 云视频服务监控***

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
何玫峻等: "基于混合迁移的OpenStack虚拟机在线迁移改进方案", 《***工程理论与实践》 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105843682A (zh) * 2016-03-29 2016-08-10 新浪网技术(中国)有限公司 一种迁移虚拟机到IaaS云平台的方法及装置
CN105897866A (zh) * 2016-03-29 2016-08-24 新浪网技术(中国)有限公司 一种基于IaaS云平台的云主机迁移方法及装置
CN105843682B (zh) * 2016-03-29 2019-03-01 新浪网技术(中国)有限公司 一种迁移虚拟机到IaaS云平台的方法及装置
CN105897866B (zh) * 2016-03-29 2019-03-29 新浪网技术(中国)有限公司 一种基于IaaS云平台的云主机迁移方法及装置
CN107783826A (zh) * 2016-08-26 2018-03-09 北京金山云网络技术有限公司 一种虚拟机迁移方法、装置及***
CN107783826B (zh) * 2016-08-26 2021-07-09 北京金山云网络技术有限公司 一种虚拟机迁移方法、装置及***
CN106815068A (zh) * 2016-12-09 2017-06-09 中电科华云信息技术有限公司 基于Openstack实现Hyperv虚拟机热迁移的方法

Also Published As

Publication number Publication date
US10318343B2 (en) 2019-06-11
CN105117274B (zh) 2018-09-11
US20180203726A1 (en) 2018-07-19
WO2017045272A1 (zh) 2017-03-23

Similar Documents

Publication Publication Date Title
CN103890728B (zh) 虚拟机热迁移的方法和服务器
CN103064796B (zh) 虚拟机内存的共享方法与计算机***
CN105117274A (zh) 虚拟机迁移方法和装置
US20130055254A1 (en) Methods and apparatuses for providing a virtual machine with dynamic assignment of a physical hardware resource
US20100115510A1 (en) Virtual graphics device and methods thereof
CN102834822A (zh) 由虚拟机共享的群集的快速-完整备份
CN103282881A (zh) 通过虚拟化直接共享智能设备
US20140156960A1 (en) Managing permissions for logical volume managers
CN101739289B (zh) 一种在Linux虚拟机中设置显示模式的方法及装置
CN105786405A (zh) 一种在线升级方法、装置及***
CN105426223A (zh) 应用加载方法和装置
CN102385523A (zh) 一种云操作***的驱动安装和管理方法
CN105612498A (zh) 虚拟机热迁移的方法、虚拟机内存数据处理方法、服务器和虚拟机***
CN103309620A (zh) 用于多存储子***虚拟化的管理接口
CN105095121A (zh) 虚拟输入设备在驱动层的实现方法及其***
CN103064724A (zh) 虚拟机构建方法及装置
US9766834B2 (en) Live partition mobility using ordered memory migration
CN114691300A (zh) 一种虚拟机实例的热迁移方法
CN108780387B (zh) 虚拟化环境中的存储资源管理
US11182347B2 (en) File sharing among virtual containers with fast recovery and self-consistency
CN106201564B (zh) 在线升级基于内核虚拟机模块的设备和方法
CN109976744B (zh) 一种可视化编程方法、***及终端设备
CN113946854A (zh) 一种文件访问控制方法、装置及计算机可读存储介质
US11614848B1 (en) Graphical user interface overlays for contextual hardware component information
CN102393838A (zh) 数据处理方法及装置、pci-e总线***、服务器

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant