CN107870802B - 一种虚拟机迁移方法和装置 - Google Patents

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

Info

Publication number
CN107870802B
CN107870802B CN201610856234.5A CN201610856234A CN107870802B CN 107870802 B CN107870802 B CN 107870802B CN 201610856234 A CN201610856234 A CN 201610856234A CN 107870802 B CN107870802 B CN 107870802B
Authority
CN
China
Prior art keywords
disk
virtual machine
cluster
data
physical machine
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.)
Active
Application number
CN201610856234.5A
Other languages
English (en)
Other versions
CN107870802A (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.)
Alibaba Cloud Computing Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201610856234.5A priority Critical patent/CN107870802B/zh
Publication of CN107870802A publication Critical patent/CN107870802A/zh
Application granted granted Critical
Publication of CN107870802B publication Critical patent/CN107870802B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/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
    • 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/0662Virtualisation aspects
    • G06F3/0667Virtualisation aspects at data level, e.g. file, record or object virtualisation
    • 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/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • 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)
  • Stored Programmes (AREA)

Abstract

本申请实施例提供了一种虚拟机迁移方法,包括:确定第一集群上的虚拟机;停止虚拟机;确定第二集群中的第一物理机,将虚拟机从第一集群迁移至第一物理机上;获取虚拟机关联的第一磁盘的磁盘信息;依据磁盘信息创建第二磁盘,将第二磁盘挂载到第一物理机的虚拟机上。本申请实施例中,将旧集群中的虚拟机迁移至新集群中,基于虚拟机关联的旧磁盘的磁盘信息,创建新磁盘并与迁移后的虚拟机关联。在迁移后的虚拟机与新磁盘关联后,即可启动虚拟机。本申请实施例中,虚拟机迁移时,无需将全部的磁盘数据迁移,从而减少了数据传输的时间,减少了虚拟机停机时间,实现了虚拟机快速迁移。

Description

一种虚拟机迁移方法和装置
技术领域
本申请涉及计算机技术领域,特别是涉及一种虚拟机迁移方法和一种虚拟机迁移装置。
背景技术
对于云服务提供商而言,定期提升云服务器的性能是提高竞争力的重要手段。云服务器实际上是由虚拟机(Virtual Machine)构成的服务器。虚拟机是指***虚拟机,即可以进行模拟的、具有完整硬件***功能的,运行在一个完全隔离环境中的完整计算机***。
虚拟机***安装在物理机上运行,云服务提供商一般将物理机搭建为集群。云服务提供商提升云服务器的性能主要手段之一是,将云服务器从当前的物理机集群迁移至硬件性能更好的物理机集群。
已有的云服务器迁移方案中,需要将云服务器使用的全部数据(包括虚拟机使用的内存数据,以及与虚拟机关联的磁盘数据)全部迁移至新的集群后,才能再次启动虚拟机。这样的迁移方式,需要迁移大量的数据,需要耗费大量时间,增加了虚拟机停机时间。
发明内容
鉴于上述问题,提出了本申请实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种虚拟机迁移方法和相应的一种虚拟机迁移装置。
为了解决上述问题,本申请实施例公开了一种虚拟机迁移方法,包括:
确定第一集群上的虚拟机;
停止所述虚拟机;
确定第二集群中的第一物理机,将所述虚拟机从第一集群迁移至所述第一物理机上;
获取所述虚拟机关联的第一磁盘的磁盘信息;
依据所述磁盘信息创建第二磁盘,将所述第二磁盘挂载到所述第一物理机的虚拟机上。
优选的,所述确定第二集群中的第一物理机的步骤包括:
获取所述虚拟机的安装规格信息;
在所述第二集群中将符合所述虚拟机的安装规格信息的物理机,确定为第一物理机。
优选的,所述依据所述磁盘信息创建第二磁盘的步骤包括:
依据所述磁盘信息,在所述第一物理机上创建第二磁盘;
或,确定第三集群中的第二物理机,依据所述磁盘信息,在所述第二物理机上创建第二磁盘。
优选的,所述磁盘信息包括:第一磁盘的数量和大小;所述依据所述磁盘信息,在所述第一物理机上创建第二磁盘的步骤包括:
在所述第一物理机上创建,与所述第一磁盘的数量和大小相同的第二磁盘;
所述依据所述磁盘信息,在所述第二物理机上创建第二磁盘的步骤包括:
在所述第二物理机上创建,与所述第一磁盘的数量和大小相同的第二磁盘。
优选的,还包括:
在所述启动所述虚拟机之前,获取所述第一集群上的网络流量;
将所述网络流量导入所述第二集群。
优选的,还包括:
当所述虚拟机读取数据时,获取所述第二磁盘的元数据,所述元数据包括:数据位置信息;
依据所述数据位置信息,确定待读取数据是在第一磁盘还是在第二磁盘;
若所述待读取数据在第一磁盘,则将所述待读取数据拷贝到所述第二磁盘中,虚拟机从第二磁盘中读取所述待读取数据。
优选的,还包括:
当虚拟机写入数据时,将待写入数据写入到第二磁盘中。
同时,本申请实施例还公开了一种虚拟机迁移装置,包括:
虚拟机确定模块,用于确定第一集群上的虚拟机;
虚拟机停止模块,用于停止所述虚拟机;
第一物理机确定模块,用于确定第二集群中的第一物理机,将所述虚拟机从第一集群迁移至所述第一物理机上;
磁盘信息获取模块,用于获取所述虚拟机关联的第一磁盘的磁盘信息;
磁盘创建挂载模块,用于依据所述磁盘信息创建第二磁盘,将所述第二磁盘挂载到所述第一物理机的虚拟机上。
优选的,所述第一物理机确定模块包括:
安装规格信息获取子模块,用于获取所述虚拟机的安装规格信息;
合规物理机确定子模块,用于在所述第二集群中将符合所述虚拟机的安装规格信息的物理机,确定为第一物理机。
优选的,所述磁盘创建挂载模块包括:
第一磁盘创建子模块,用于依据所述磁盘信息,在所述第一物理机上创建第二磁盘;
或,第二磁盘创建子模块,用于确定第三集群中的第二物理机,依据所述磁盘信息,在所述第二物理机上创建第二磁盘。
优选的,所述磁盘信息包括:第一磁盘的数量和大小;所述第一磁盘创建子模块包括:
第一创建单元,用于在所述第一物理机上创建,与所述第一磁盘的数量和大小相同的第二磁盘;
所述第二磁盘创建子模块包括:
第二创建单元,用于在所述第二物理机上创建,与所述第一磁盘的数量和大小相同的第二磁盘。
优选的,还包括:
网络流量获取模块,用于在所述启动所述虚拟机之前,获取所述第一集群上的网络流量;
网络流量导入模块,用于将所述网络流量导入所述第二集群。
优选的,还包括:
磁盘元数据获取模块,用于当所述虚拟机读取数据时,获取所述第二磁盘的元数据,所述元数据包括:数据位置信息;
数据位置信息确定模块,用于依据所述数据位置信息,确定待读取数据是在第一磁盘还是在第二磁盘;
数据拷贝读取模块,用于若所述待读取数据在第一磁盘,则将所述待读取数据拷贝到所述第二磁盘中,虚拟机从第二磁盘中读取所述待读取数据。
优选的,还包括:
数据写入模块,用于当虚拟机写入数据时,将待写入数据写入到第二磁盘中。
本申请实施例包括以下优点:
本申请实施例中,将旧集群中的虚拟机迁移至新集群中,基于虚拟机关联的旧磁盘的磁盘信息,创建新磁盘并与迁移后的虚拟机关联。在迁移后的虚拟机与新磁盘关联后,即可启动虚拟机。本申请实施例中,虚拟机迁移时,无需将全部的磁盘数据迁移,从而减少了数据传输的时间,大大减少了虚拟机停机时间,实现了虚拟机快速迁移。并且本申请实施例可使用于批量虚拟机迁移,可以快速将整个集群的虚拟机迁移到新的集群。
附图说明
图1是本申请的一种虚拟机迁移方法实施例1的步骤流程图;
图2是本申请的一种虚拟机迁移方法实施例2的步骤流程图;
图3是本申请的一种虚拟机迁移方法实施例中数据流走向的示意图;
图4是本申请的一种虚拟机迁移装置实施例的结构框图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
在已有的云服务器迁移方案主要包括:冷迁移(停机迁移),其过程具体可以为:首先关闭虚拟机所在的物理机电源,然后将虚拟机和关联的磁盘都迁移至新的物理机集群,在所有数据迁移完成后才能重启虚拟机。由于迁移的数据量大,因而使得停机时间较长。
基于以上问题,本申请实施例提出一种虚拟机迁移方法,可以在虚拟机停机后,快速批量地把虚拟机迁移到另一集群并恢复虚拟机正常工作,即使数据没有完全迁移到新集群,也可以正常启动虚拟机,正常读写数据。
参照图1,示出了本申请的一种虚拟机迁移方法实施例1的步骤流程图,具体可以包括如下步骤:
步骤101,确定第一集群上的虚拟机;
第一集群可以是正在使用的由过了保修期或性能较差的物理机组成的集群,在第一集群的物理机上,可以安装有多台虚拟机。云服务器提供商以虚拟机和虚拟机挂载的磁盘作为云服务器向客户提供服务。
出于稳定性的考虑,在物理机过了保修期或物理机硬件性能较差时,云服务器提供商为了保证云服器的性能,一般会将旧物理机集群上的虚拟机迁移至新物理集群。
在云服务器的分布式架构中,虚拟机集群可以安装在不同的物理机集群上,例如,虚拟机集群A可以是安装在位于北京的物理机集群,虚拟机集群B可以是安装在位于杭州的物理机集群。
在云服务器的分布式架构中,可以通过控制节点来统一管理位于不同物理机集群的虚拟机。在控制节点的数据库中可以存储有物理机和虚拟机的对应关系,通过对应关系可以查询到各个物理机上安装的虚拟机的ID。
在数据库中也可以存储有物理机的使用信息(使用年限,保修年限等等)和性能信息(内存Memory大小、CPU资源等等)。在数据中查看各个物理机的使用信息或性能信息就可以查找到过了保修年限或性能较差的物理机。查找到过了保修年限或性能较差的物理机后,根据该物理机的对应关系,就可以查找到该物理机上安装的虚拟机。
步骤102,停止所述虚拟机;
在虚拟机的虚拟化***中,安装有为虚拟化***提供编程接口的函数库。函数库提供的编程接口中,可以设置有直接关闭虚拟机的编程接口,通过调用编程接口可以直接关闭虚拟机。
步骤103,确定第二集群中的第一物理机,将所述虚拟机从第一集群迁移至所述第一物理机上;
第二集群可以是由性能更好的物理机组成的集群。在本申请实施例中,第一集群和第二集群可以是跨网络域的集群,即本申请实施例可以实现跨网络域的迁移。在第二集群中,确定满足迁移条件的第一物理机。将虚拟机从第一集群的物理机迁移至第二集群的物理机上。
步骤104,获取所述虚拟机关联的第一磁盘的磁盘信息;
一台虚拟机可以挂载多块磁盘,与多块磁盘进行关联,磁盘通过存储***进行管理。虚拟机的虚拟***通过存储***实现数据存取。虚拟机的虚拟***和存储***可以安装在同一个集群,也可以安装在不同的集群。
通常,虚拟机的磁盘信息可以存储在数据库中,通过虚拟机名,可以在数据中找到虚拟机的配置信息和磁盘信息。另外,虚拟机的磁盘信息也可以存储在控制节点所在的物理机的本地文件中。通过虚拟机名,可以在节点的本地文件中找到虚拟机的磁盘信息。
步骤105,依据所述磁盘信息创建第二磁盘,将所述第二磁盘挂载到所述第一物理机的虚拟机上。
挂载是指建立磁盘和虚拟机的映射关系。虚拟机在存取数据时,根据映射关系,确定需要存取的磁盘。在虚拟机迁移前,虚拟机与第一磁盘具有映射关系,在将虚拟机迁移至第一物理机后,将虚拟机与第一磁盘的映射关系更改为虚拟机与第二磁盘的映射关系。
在将第二磁盘挂载到虚拟机后,即可启动虚拟机,实现虚拟机迁移的快速恢复,需要注意的是,本申请实施了中第二次磁盘创建后,并没有将第一磁盘的数据完全拷贝至第二磁盘,而仅是将第二磁盘挂载到虚拟机上。实际中,云服务提供商一般在磁盘所在的集群过保时,才将磁盘数据迁移至新的集群。在磁盘所在的集群没有过保时,可以不将磁盘迁移,只将虚拟机迁移后,即可启动虚拟机。
本申请实施例中,将旧集群中的虚拟机迁移至新集群中,基于虚拟机关联的旧磁盘的磁盘信息,创建新磁盘并与迁移后的虚拟机关联。在迁移后的虚拟机与新磁盘关联后,即可启动虚拟机。本申请实施例中,虚拟机迁移时,无需将全部的磁盘数据迁移,从而减少了数据传输的时间,大大减少了虚拟机停机时间,实现了虚拟机快速迁移。并且本申请实施例可使用于批量虚拟机迁移,可以快速将整个集群的虚拟机迁移到新的集群。
参照图2,示出了本申请的一种虚拟机迁移方法实施例2的步骤流程图,具体可以包括如下步骤:
步骤201,确定第一集群上的虚拟机;
步骤202,停止所述虚拟机;
步骤203,确定第二集群中的第一物理机,将所述虚拟机从第一集群迁移至所述第一物理机上;
在本申请的一个实施例中,步骤203可以包括如下子步骤:
子步骤S11,获取所述虚拟机的安装规格信息;
虚拟机的安装规格信息包括Cpu资源大小和内存Memory大小。
子步骤S12,在所述第二集群中将符合所述虚拟机的安装规格信息的物理机,确定为第一物理机。
在第二集群中,将满足安装规格信息的物理机,确定为第一物理机。具体的,每台物理机可供分配的CPU资源和内存都会记录在数据库中。在数据库中,将查找到可供分配的CPU资源和内存,满足安装虚拟机所需的CPU资源大小和内存Memory大小的物理机作为第一物理机。
步骤204,获取所述虚拟机关联的第一磁盘的磁盘信息;
步骤205,依据所述磁盘信息创建第二磁盘,将所述第二磁盘挂载到所述第一物理机的虚拟机上;
在本申请的一个实施例中,步骤205可以包括如下子步骤:
子步骤S21,依据所述磁盘信息,在所述第一物理机上创建第二磁盘;
在一种优选示例中,可以将虚拟***和存储***安装在同一个物理集群中,即将虚拟机和其挂载的磁盘都安装在同一个物理机中。
在将虚拟机迁移至第一物理机后,依据第一磁盘的磁盘信息在第一物理机中创建磁盘。
或,子步骤S22,确定第三集群中的第二物理机,依据所述磁盘信息,在所述第二物理机上创建第二磁盘。
在另一种优选示例中,可以将虚拟***和存储***安装在不同的物理集群中,即将虚拟机和其挂载的磁盘安装在不同的物理机中。
在将虚拟机迁移至第二集群的第一物理机后,选取第三集群中的第二物理机作为存储***。依据第一磁盘的磁盘信息,在第二物理机上创建第二操盘。
虚拟机使用的磁盘创建和销毁由虚拟存储团队提供统一的接口,一个磁盘的创建需要准备好新旧磁盘的磁盘信息的配置文件,新磁盘配置文件关联旧磁盘配置文件,再调用一次创建磁盘接口,就可以完成创建磁盘。
在本申请实施例中,在第二磁盘创建后,并没有马上把第一磁盘中的磁盘数据完全拷贝到第二磁盘上,仅仅是创建了必要的元数据,元数据包括:磁盘数量、磁盘大小、数据位置信息等信息。
进一步的,所述磁盘信息可以包括:第一磁盘的数量和大小;
所述子步骤S21具体可以为:
在所述第一物理机上创建,与所述第一磁盘的数量和大小相同的第二磁盘;
在第一物理机上新创建的第二磁盘的数量和大小与第一磁盘的数量和大小相同。
所述子步骤S22具体可以为:
确定第三集群中的第二物理机,在所述第二物理机上创建,与所述第一磁盘的数量和大小相同的第二磁盘。
在第二物理机上新创建的第二磁盘的数量和大小与第一磁盘的数量和大小相同。
步骤206,在所述启动所述虚拟机之前,获取所述第一集群上的网络流量;
具体的,在停止虚拟机后,如果虚拟机内部提供了Web服务,并且对Web服务进行访问,第一集群就会产生网络流量。
步骤207,将所述网络流量导入所述第二集群;
在第二集群的物理机的网络设备设置上,重新设置虚拟机的路由,删除虚拟机与第一集群的路由,建立虚拟机与第二集群的路由。
虚拟机的路由可以包括:IP地址。一般的,虚拟机的路由与其所在的物理机的路由相同。在虚拟机迁移至新的集群后,在新集群物理机的网络设备中将虚拟机的路由,更改为新的物理机的路由,从而可以将网络流量导入新的集群。将网络流量导入新的集群后,虚拟机就能在运行时提供正常的网络服务。
步骤208,启动所述虚拟机;
在虚拟机启动后,虚拟机可以进行正常的数据存取操作。
步骤209,当所述虚拟机读取数据时,获取所述第二磁盘的元数据,所述元数据包括:数据位置信息;
第二磁盘创建时,创建有第二磁盘的元数据,元数据包括:第二磁盘的数量、大小和数据位置信息。数据在存储***的磁盘中是按块存储的,数据位置信息可以通过一个bit-map来记录,通过bit-map记录需要读取的数据对应的块是在第一集群的第一磁盘中,还是在已经被拷贝到第二集群的第二磁盘中。
例如,为每个数据块分配1bit作为标识位,标识位为0表示数据块在第一集群的第一磁盘中,标识位为1表示数据块在已经被拷贝到第二集群的第二磁盘中。
本领域技术人员应该可以理解,上述的数据位置信息的存储方式仅仅是本申请的示例,本领域技术人员可以采用其他数据位置信息的存储方式进行存储,本申请在此不作限制。
步骤210,依据所述数据位置信息,确定待读取数据是在第一磁盘还是在第二磁盘;
步骤211,若所述待读取数据在第一磁盘,则将所述待读取数据拷贝到所述第二磁盘中,虚拟机从第二磁盘中读取所述待读取数据。
若待读取数据还在第一磁盘,则分布式存储***将待读取数据拷贝到第二磁盘中,供虚拟机使用。
在本申请实施例中,虚拟机使用分布式存储***,在虚拟机启动后,通过跨网络域的停机迁移方式迁移虚拟机。在虚拟机读数据过程中,通过异步加载数据方式,在完成迁移数据前启动虚拟机。异步加载数据就是在虚拟机运行过程中采用另一个线程加载数据的方式。
步骤212,若所述待读取数据在第二磁盘,则虚拟机从第二磁盘中读取所述待读取数据。
若待读取数据已在第二磁盘,则虚拟机直接在第二磁盘中读取待读取数据。
步骤213,当虚拟机写入数据时,将待写入数据写入到第二磁盘中。
当虚拟机需要写数据时,将待写入数据写入到第二级群的磁盘中。
在本申请实施例中,虚拟机和磁盘可以设置在同一个物理机集群,也可以设置在不同的物理机集群。当虚拟机设置在过保集群,而磁盘设置在新的集群时,只需将虚拟机迁移至新的集群,无需迁移磁盘。
当虚拟机设置在新集群,而磁盘设置在过保集群时,只需将磁盘迁移至新的集群,无需迁移虚拟机,在磁盘迁移时,不是立即磁盘数据全部从旧磁盘迁移至新磁盘,而是在虚拟机读取过程时,如果读取的数据在旧磁盘,则将待读取的数据拷贝至新磁盘供虚拟机读取。虚拟机无需在全部磁盘数据迁移后再启动,从而减少大大虚拟机停止时间。
参照图3,示出了本申请的一种虚拟机迁移方法实施例中数据流走向的示意图。
虚拟机迁移前,虚拟机所在的虚拟机集群311和虚拟机所挂载的磁盘所在的存储集群312属于同一个过保的物理集群(即图3所示的过保集群31),虚拟机集群311在过保集群31的存储集群312中读写数据。
出于稳定性考虑,过保集群31中的虚拟机集群311和存储集群312需要批量迁移至新集群32。
迁移过程可以包括:
1)关闭虚拟机集群311的所有虚拟机。
2)获取各个虚拟机所需的安装规格(CPU资源和内存大小),其中各个虚拟机的安装规格可以各不相同。
3)在新集群32中,一一查找可以满足各个虚拟机安装规格的目标物理机,其中一台物理机可以满足多个虚拟机安装规格。
4)将各个虚拟机迁移至对应的目标物理机中,但迁移后不启动虚拟机,虚拟机迁移完成后,在新集群32组成虚拟机集群321。
5)获取各个虚拟机的磁盘信息,磁盘信息包括:挂载的磁盘数量和各个磁盘的大小。磁盘信息可以存在数据库中,也可以是存储在控制节点所在的物理机的本地文件中。
6)根据磁盘信息,在新集群32中创建新磁盘,新创建的磁盘的数量等于原磁盘的数量,新创建的磁盘的大小等于原磁盘的大小。新创建的磁盘仅仅是必要的元数据(磁盘大小信息、数据位置信息等),新磁盘创建完成后,在新集群组成存储集群322。
7)将新创建的磁盘挂载到迁移后的虚拟机上,挂载方式通常是在数据库中建立磁盘与虚拟机的映射关系。虚拟机在启动后,可以根据映射关系在对应的磁盘中读取数据。
8)挂载完成后,就可以启动虚拟机,提供正常的云服务。
特别的,如果在关闭虚拟机后,启动虚拟机之前,过保集群中31产生了网络流量(例如,虚拟机内部提供WEB服务被访问,就会产生网络流量),则需要将所有的网络流量导入到新集群32中。只有将网络流量从导入到新集群32后,迁移后的虚拟机才能提供正常的网络服务。
虚拟机迁移到新集群32后,虚拟机集群321在新集群32的存储集群322中读写取数据。
虚拟机集群321中的虚拟机读数据时,如果待读取的数据不在存储集群322的新磁盘中,则新磁盘读取位于旧存储集群312的原磁盘的信息,确定待读取的数据是否在原磁盘中。若在原磁盘中,则通知原磁盘。原磁盘接到通知后,将待读取的数据写入到新磁盘中,使得虚拟机可以从新磁盘中读数据。如果待读取的数据在新磁盘中,则虚拟机可以直接从新磁盘读数据。
在虚拟机写数据时,虚拟机直接将数据写到新磁盘中持久化数据。
在本申请实施例中,将停机迁移后的虚拟机与新创建的磁盘挂载即可重新启动虚拟机。在虚拟机读数据过程中,采用异步加载数据的方式将旧磁盘中的数据拷贝到新磁盘以供虚拟机使用。与现有迁移方案中将所有磁盘数据迁移完成后再启动虚拟机的方法相比,本申请大大减少了虚拟机的停机时间,实现了虚拟机的快速迁移。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请实施例并不受所描述的动作顺序的限制,因为依据本申请实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请实施例所必须的。
参照图4,示出了本申请的一种虚拟机迁移装置实施例的结构框图,具体可以包括如下模块:
虚拟机确定模块401,用于确定第一集群上的虚拟机;
虚拟机停止模块402,用于停止所述虚拟机;
第一物理机确定模块403,用于确定第二集群中的第一物理机,将所述虚拟机从第一集群迁移至所述第一物理机上;
磁盘信息获取模块404,用于获取所述虚拟机关联的第一磁盘的磁盘信息;
磁盘创建挂载模块405,用于依据所述磁盘信息创建第二磁盘,将所述第二磁盘挂载到所述第一物理机的虚拟机上。
本申请实施例中,将旧集群中的虚拟机迁移至新集群中,基于虚拟机关联的旧磁盘的磁盘信息,创建新磁盘并与迁移后的虚拟机关联。在迁移后的虚拟机与新磁盘关联后,即可启动虚拟机。本申请实施例中,虚拟机迁移时,无需将全部的磁盘数据迁移,从而减少了数据传输的时间,大大减少了虚拟机停机时间,实现了虚拟机快速迁移。并且本申请实施例可使用于批量虚拟机迁移,可以快速将整个集群的虚拟机迁移到新的集群。
在本申请的一个实施例中,所述第一物理机确定模块403可以包括:
安装规格信息获取子模块,用于获取所述虚拟机的安装规格信息;
合规物理机确定子模块,用于在所述第二集群中将符合所述虚拟机的安装规格信息的物理机,确定为第一物理机。
在本申请的一个实施例中,所述磁盘创建挂载模块405可以包括:
第一磁盘创建子模块,用于依据所述磁盘信息,在所述第一物理机上创建第二磁盘;
或,第二磁盘创建子模块,用于确定第三集群中的第二物理机,依据所述磁盘信息,在所述第二物理机上创建第二磁盘。
在本申请的一个实施例中,所述磁盘信息包括:第一磁盘的数量和大小;
所述第一磁盘创建子模块包括:
第一创建单元,用于在所述第一物理机上创建,与所述第一磁盘的数量和大小相同的第二磁盘;
所述第二磁盘创建子模块包括:
第二创建单元,用于在所述第二物理机上创建,与所述第一磁盘的数量和大小相同的第二磁盘。
在本申请的一个实施例中,所述的装置还可以包括:
网络流量获取模块,用于在所述启动所述虚拟机之前,获取所述第一集群上的网络流量;
网络流量导入模块,用于将所述网络流量导入所述第二集群。
在本申请的一个实施例中,所述的装置还可以包括:
磁盘元数据获取模块,用于当所述虚拟机读取数据时,获取所述第二磁盘的元数据,所述元数据包括:数据位置信息;
数据位置信息确定模块,用于依据所述数据位置信息,确定待读取数据是在第一磁盘还是在第二磁盘;
数据拷贝读取模块,用于若所述待读取数据在第一磁盘,则将所述待读取数据拷贝到所述第二磁盘中,虚拟机从第二磁盘中读取所述待读取数据。
在本申请的一个实施例中,所述的装置还可以包括:
数据写入模块,用于当虚拟机写入数据时,将待写入数据写入到第二磁盘中。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请实施例是参照根据本申请实施例的方法、终端设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本申请所提供的一种虚拟机迁移方法和一种虚拟机迁移装置,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (12)

1.一种虚拟机迁移方法,其特征在于,包括:
确定第一集群上的虚拟机;
停止所述虚拟机;
确定第二集群中满足迁移条件的第一物理机,将所述虚拟机从第一集群迁移至所述第一物理机上;
获取所述虚拟机关联的第一磁盘的磁盘信息;
依据所述磁盘信息创建第二磁盘,将所述第二磁盘挂载到所述第一物理机的虚拟机上;
其中,所述方法还包括:
当所述虚拟机读取数据时,获取所述第二磁盘的元数据,所述元数据包括:数据位置信息;
依据所述数据位置信息,确定待读取数据是在第一磁盘还是在第二磁盘;
若所述待读取数据在第一磁盘,则将所述待读取数据拷贝到所述第二磁盘中,虚拟机从第二磁盘中读取所述待读取数据。
2.根据权利要求1所述的方法,其特征在于,所述确定第二集群中满足迁移条件的第一物理机的步骤包括:
获取所述虚拟机的安装规格信息;
在所述第二集群中将符合所述虚拟机的安装规格信息的物理机,确定为第一物理机。
3.根据权利要求1所述的方法,其特征在于,所述依据所述磁盘信息创建第二磁盘的步骤包括:
依据所述磁盘信息,在所述第一物理机上创建第二磁盘;
或,确定第三集群中的第二物理机,依据所述磁盘信息,在所述第二物理机上创建第二磁盘。
4.根据权利要求3所述的方法,其特征在于,所述磁盘信息包括:第一磁盘的数量和大小;所述依据所述磁盘信息,在所述第一物理机上创建第二磁盘的步骤包括:
在所述第一物理机上创建,与所述第一磁盘的数量和大小相同的第二磁盘;
所述依据所述磁盘信息,在所述第二物理机上创建第二磁盘的步骤包括:
在所述第二物理机上创建,与所述第一磁盘的数量和大小相同的第二磁盘。
5.根据权利要求1或2或3或4所述的方法,其特征在于,还包括:
在启动所述虚拟机之前,获取所述第一集群上的网络流量;
将所述网络流量导入所述第二集群。
6.根据权利要求1或2或3或4所述的方法,其特征在于,还包括:
当虚拟机写入数据时,将待写入数据写入到第二磁盘中。
7.一种虚拟机迁移装置,其特征在于,包括:
虚拟机确定模块,用于确定第一集群上的虚拟机;
虚拟机停止模块,用于停止所述虚拟机;
第一物理机确定模块,用于确定第二集群中满足迁移条件的第一物理机,将所述虚拟机从第一集群迁移至所述第一物理机上;
磁盘信息获取模块,用于获取所述虚拟机关联的第一磁盘的磁盘信息;
磁盘创建挂载模块,用于依据所述磁盘信息创建第二磁盘,将所述第二磁盘挂载到所述第一物理机的虚拟机上;
其中,所述装置还包括:
磁盘元数据获取模块,用于当所述虚拟机读取数据时,获取所述第二磁盘的元数据,所述元数据包括:数据位置信息;
数据位置信息确定模块,用于依据所述数据位置信息,确定待读取数据是在第一磁盘还是在第二磁盘;
数据拷贝读取模块,用于若所述待读取数据在第一磁盘,则将所述待读取数据拷贝到所述第二磁盘中,虚拟机从第二磁盘中读取所述待读取数据。
8.根据权利要求7所述的装置,其特征在于,所述第一物理机确定模块包括:
安装规格信息获取子模块,用于获取所述虚拟机的安装规格信息;
合规物理机确定子模块,用于在所述第二集群中将符合所述虚拟机的安装规格信息的物理机,确定为第一物理机。
9.根据权利要求7所述的装置,其特征在于,所述磁盘创建挂载模块包括:
第一磁盘创建子模块,用于依据所述磁盘信息,在所述第一物理机上创建第二磁盘;
或,第二磁盘创建子模块,用于确定第三集群中的第二物理机,依据所述磁盘信息,在所述第二物理机上创建第二磁盘。
10.根据权利要求9所述的装置,其特征在于,所述磁盘信息包括:第一磁盘的数量和大小;所述第一磁盘创建子模块包括:
第一创建单元,用于在所述第一物理机上创建,与所述第一磁盘的数量和大小相同的第二磁盘;
所述第二磁盘创建子模块包括:
第二创建单元,用于在所述第二物理机上创建,与所述第一磁盘的数量和大小相同的第二磁盘。
11.根据权利要求7或8或9或10所述的装置,其特征在于,还包括:
网络流量获取模块,用于在启动所述虚拟机之前,获取所述第一集群上的网络流量;
网络流量导入模块,用于将所述网络流量导入所述第二集群。
12.根据权利要求7或8或9或10所述的装置,其特征在于,还包括:
数据写入模块,用于当虚拟机写入数据时,将待写入数据写入到第二磁盘中。
CN201610856234.5A 2016-09-27 2016-09-27 一种虚拟机迁移方法和装置 Active CN107870802B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610856234.5A CN107870802B (zh) 2016-09-27 2016-09-27 一种虚拟机迁移方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610856234.5A CN107870802B (zh) 2016-09-27 2016-09-27 一种虚拟机迁移方法和装置

Publications (2)

Publication Number Publication Date
CN107870802A CN107870802A (zh) 2018-04-03
CN107870802B true CN107870802B (zh) 2021-09-07

Family

ID=61752385

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610856234.5A Active CN107870802B (zh) 2016-09-27 2016-09-27 一种虚拟机迁移方法和装置

Country Status (1)

Country Link
CN (1) CN107870802B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111078127B (zh) * 2018-10-22 2024-03-12 阿里巴巴集团控股有限公司 数据迁移方法、***及装置
CN109445908B (zh) * 2018-10-30 2021-04-27 杭州炎魂网络科技有限公司 一种虚拟机备份方法和***
CN109358952A (zh) * 2018-10-30 2019-02-19 张家口浩扬科技有限公司 一种虚拟机迁移方法和***
CN110515697A (zh) * 2019-08-16 2019-11-29 济南浪潮数据技术有限公司 一种虚拟机迁移方法、装置、存储介质及计算机设备
CN113468136A (zh) * 2020-03-30 2021-10-01 北京金山云网络技术有限公司 云平台的升级方法、装置和服务器
CN113672333B (zh) * 2020-05-15 2024-04-05 顺丰科技有限公司 虚拟机热克隆方法、装置、***、计算机设备和存储介质
CN114880077A (zh) * 2022-05-16 2022-08-09 阿里巴巴(中国)有限公司 资源调度方法、设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103399778A (zh) * 2013-07-01 2013-11-20 华为技术有限公司 一种虚拟机在线整体迁移方法和设备
CN103559077A (zh) * 2013-11-08 2014-02-05 北京华胜天成科技股份有限公司 一种优化的虚拟机自动迁移方法和***
CN103699429A (zh) * 2013-12-31 2014-04-02 华为技术有限公司 虚拟机迁移方法及装置
CN104731915A (zh) * 2015-03-24 2015-06-24 上海爱数软件有限公司 一种分布式存储***中磁盘设备映射方法
CN105138394A (zh) * 2015-09-21 2015-12-09 上海爱数软件有限公司 一种热迁移kvm虚拟机的方法及***

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9588796B2 (en) * 2014-06-28 2017-03-07 Vmware, Inc. Live migration with pre-opened shared disks

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103399778A (zh) * 2013-07-01 2013-11-20 华为技术有限公司 一种虚拟机在线整体迁移方法和设备
CN103559077A (zh) * 2013-11-08 2014-02-05 北京华胜天成科技股份有限公司 一种优化的虚拟机自动迁移方法和***
CN103699429A (zh) * 2013-12-31 2014-04-02 华为技术有限公司 虚拟机迁移方法及装置
CN104731915A (zh) * 2015-03-24 2015-06-24 上海爱数软件有限公司 一种分布式存储***中磁盘设备映射方法
CN105138394A (zh) * 2015-09-21 2015-12-09 上海爱数软件有限公司 一种热迁移kvm虚拟机的方法及***

Also Published As

Publication number Publication date
CN107870802A (zh) 2018-04-03

Similar Documents

Publication Publication Date Title
CN107870802B (zh) 一种虚拟机迁移方法和装置
US10545781B2 (en) Dynamically deployed virtual machine
US10896102B2 (en) Implementing secure communication in a distributed computing system
US11586673B2 (en) Data writing and reading method and apparatus, and cloud storage system
CN108287669B (zh) 数据存储方法、装置及存储介质
CA2984142C (en) Automatic scaling of resource instance groups within compute clusters
US10936553B2 (en) Intelligent file system with transparent storage tiering
CN108153849B (zh) 一种数据库表切分方法、装置、***和介质
US9886398B2 (en) Implicit sharing in storage management
US9928056B1 (en) Operating system update management
CA2901376C (en) Tracking application usage in a computing environment
US11036535B2 (en) Data storage method and apparatus
CN112256433B (zh) 基于Kafka集群的分区迁移方法和装置
CN111866045A (zh) 信息处理方法及其装置、计算机***及计算机可读介质
US11159402B1 (en) Virtual machine import/export risk assessment
CN113535087A (zh) 数据迁移过程中的数据处理方法、服务器及存储***
CN115982101B (zh) 基于多机房副本放置策略的机房数据迁移方法与装置
CN112711469A (zh) 云主机迁移方法、装置、计算机设备和存储介质
CN117131014A (zh) 数据库迁移方法、装置、设备及存储介质
CN110298031B (zh) 一种词典服务***及模型版本一致性配送方法
CN116594734A (zh) 容器迁移方法、装置、存储介质及电子设备
CN115080309A (zh) 数据备份***、方法、存储介质以及电子设备
CN115033551A (zh) 一种数据库迁移方法、装置、电子设备及存储介质
US11188455B2 (en) Media import and export in storage management systems
CN108694102A (zh) 一种基于Nexus服务的数据操作方法、设备、***和介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20230524

Address after: Room 1-2-A06, Yungu Park, No. 1008 Dengcai Street, Sandun Town, Xihu District, Hangzhou City, Zhejiang Province

Patentee after: Aliyun Computing Co.,Ltd.

Address before: Box 847, four, Grand Cayman capital, Cayman Islands, UK

Patentee before: ALIBABA GROUP HOLDING Ltd.

TR01 Transfer of patent right