CN113515343A - 一种虚拟机迁移***和方法 - Google Patents
一种虚拟机迁移***和方法 Download PDFInfo
- Publication number
- CN113515343A CN113515343A CN202110441522.5A CN202110441522A CN113515343A CN 113515343 A CN113515343 A CN 113515343A CN 202110441522 A CN202110441522 A CN 202110441522A CN 113515343 A CN113515343 A CN 113515343A
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- disk
- source
- target
- migration
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
- G06F9/4856—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
- G06F9/4862—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration the task being a mobile agent, i.e. specifically designed to migrate
- G06F9/4868—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration the task being a mobile agent, i.e. specifically designed to migrate with creation or replication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45579—I/O management, e.g. providing access to device drivers or storage
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种虚拟机迁移***及方法,该***包括:虚拟机迁移服务器,对源虚拟平台上的虚拟机创建快照、获取源虚拟机的配置及磁盘信息并将磁盘挂载至源代理虚拟机、在目标虚拟平台创建目标虚拟机及其磁盘并将磁盘挂载到目标代理虚拟机,下发迁移任务,将源和目标磁盘挂载点发送到目标代理虚拟机,通知源代理虚拟机连接目标代理虚拟机进行磁盘数据传输;源虚拟平台,将源虚拟机磁盘挂载至源代理虚拟机,并将源代理虚拟机连接至目标代理虚拟机进行数据传输;目标虚拟平台其上部署目标代理虚拟机,接收下发的迁移任务及磁盘挂载点列表,与源代理虚拟机建立连接,发送所有磁盘文件的挂载点至源代理虚拟机,接收源代理虚拟机发送的数据并保存。
Description
技术领域
本发明涉及虚拟化及云计算技术领域,特别是涉及一种虚拟化平台中虚拟机迁移的***和方法。
背景技术
随着信息技术的快速发展,在信息化建设过程中计算基础设施的需求不断加大,对硬件设备、软件、维护成本和时效的要求越来越高。为了提高基础设施利用率、降低时间和金钱的开销,硬件虚拟化随之而生。对于用户而言,虚拟平台提供的虚拟机就是一台按需分配的远程计算机,可以实现物理计算机几乎所有的功能,并且计算、存储和网络资源可以灵活拓展,能极大的减少时间和金钱成本。
虚拟化是一种具体技术,指把硬件资源虚拟化,实现隔离性、可扩展性、安全性和资源可充分利用等。虚拟平台是基于虚拟化技术,通过网络按需提供计算资源的平台。云不是具体技术,是一项通过网络按需交付共享计算资源的服务。虚拟化是云的最关键技术,是基石。企业可以从虚拟化他们的服务器开始,然后转向云,以获得更高的敏捷性和自助服务。
目前,各家厂商的虚拟机迁移技术虽各不相同,但总结起来主要有以下缺陷:
1、有些厂商需要在虚拟平台内部虚拟机上安装服务或者插件来支持虚拟机的迁移。但事实上在虚拟平台上安装任何东西都是很敏感的,有可能影响整个虚拟平台的稳定性。一般是不允许安装额外的服务或者插件。
2、有些厂商的虚拟机迁移,需要在虚拟机上安装应用来进行,这种方式有以下缺点:
(1)需要虚拟机的用户名和密码,登录虚拟机***,这对一些敏感部门的虚拟机无法操作,不可能提供登录信息。
(2)在虚拟机上安装应用并运行,对虚拟机的稳定性是个威胁,破坏了原虚拟机的状态,特别对于数据库服务器,在很多时候都是不可行的。
(3)如果需要迁移的虚拟机数量很大,这种方式的人工工作量巨大,很多时候是不能接受的。
3、有些厂商需使用第三方工具进行传输。使用第三方成熟工具传输虽然可能功能上或者性能上有些独到之处,但要实现加密,压缩等基本功能之外的功能,有些吃力,比如带宽控制,拥塞控制,性能调优等。
4、无法实现自动化迁移。
5、没有独立的控制机、控制机服务器及目标代理虚拟机等进行协同,无法实现高扩展和高性能迁移***;无法方便地实现其他种类的平台的虚拟机迁移;无法方便的和其他数据迁移方法进行融合,比如块设备的数据迁移和文件***的数据迁移。
发明内容
为克服上述现有技术存在的不足,本发明之目的在于提供一种虚拟机迁移***和方法,以实现一种从虚拟化平台迁出虚拟机到异构虚拟化平台的通用方法。
为达上述目的,本发明提出一种虚拟机迁移***,包括:
虚拟机迁移服务器,用于针对虚拟机迁移创建迁移规则,对源虚拟平台上所要迁移的虚拟机创建快照、获取源虚拟机的配置及磁盘信息并将源虚拟机的磁盘挂载至源代理虚拟机、根据源虚拟机磁盘配置信息在目标虚拟平台创建目标虚拟机及其磁盘并将磁盘挂载到目标虚拟平台的目标代理虚拟机,下发迁移任务,将源代理虚拟机和目标代理虚拟机的磁盘挂载点信息发送到目标代理虚拟机,通知源虚拟平台上的源端代理虚拟机连接到目标虚拟平台的目标代理虚拟机进行磁盘数据传输;
源虚拟平台,其上设有待迁移的源虚拟机及源代理虚拟机,在所述虚拟机迁移服务器的控制下将所述源虚拟机的磁盘挂载至所述源代理虚拟机,所述源代理虚拟机在接收到所述虚拟机迁移服务器下发的参数后连接至目标虚拟平台对应的目标代理虚拟机进行磁盘数据传输;
目标虚拟平台,上设置目标代理虚拟机,在所述虚拟机迁移服务器的控制下创建目标虚拟机及其磁盘并挂载磁盘到所述目标代理虚拟机,所述目标代理虚拟机接收所述虚拟机迁移服务器下发的迁移任务及磁盘挂载点列表,在接收到源代理虚拟机针对迁移任务发送的连接请求时,与源代理虚拟机建立连接,并在建立连接后,发送所有磁盘文件的挂载点至所述源代理虚拟机,接收所述源代理虚拟机发送的每个磁盘文件的数据并保存。
优选地,所述虚拟机迁移服务器进一步包括:
快照创建单元,用于对所述源虚拟平台的待迁移源虚拟机创建快照;
配置信息获取单元,用于根据快照获取对应源虚拟机的所有配置和磁盘信息;
磁盘操作单元,用于根据获得的源虚拟机的配置信息在目标虚拟平台创建目标虚拟机及其磁盘,挂载源虚拟机磁盘到源代理虚拟机,及挂载目标虚拟机磁盘到目标代理虚拟机;
磁盘挂载点查询获取单元,用于通过各代理虚拟机的远程管理接口,从各代理虚拟机获取所挂载的磁盘的挂载点信息,建立磁盘挂载点对应表;
磁盘挂载点发送单元,用于向目标代理虚拟机下发迁移任务,并通过目标代理虚拟机的远程管理接口,将所述磁盘挂载点对应表发送到目标代理虚拟机;
源代理虚拟机任务启动单元,用于使用下发的参数启动源代理虚拟机的任务,以便所述源端代理虚拟机和所述目标代理虚拟机建立连接。
优选地,所述***还包括磁盘卸载单元,用于在磁盘数据传输完毕后,卸载所述源代理虚拟机上挂载的源虚拟机磁盘,以及卸载目标代理虚拟机上挂载的目标虚拟机磁盘。
优选地,所述源代理虚拟机与目标代理虚拟机部署收发库组件及块设备数据读写组件。
优选地,所述源代理虚拟机进一步包括:
连接建立单元,用于在接收到所述源代理虚拟机任务启动单元的下发参数时,根据下发的参数通过收发库组件连接至对应的目标代理虚拟机;
磁盘挂载点列表获取单元,用于获取需要读取的磁盘挂载点列表;
迁移单元,用于在全量迁移时,对所挂载的源虚拟机磁盘数据中按固定大小读取磁盘数据并计算哈希值,将有效的数据块及各数据块的哈希值发送给目标代理虚拟机并保存在目标代理虚拟机上;在增量迁移时,先从目标代理虚拟机获取上次迁移时产生的磁盘哈希值列表,然后对所挂载的源虚拟机磁盘数据按固定大小读取磁盘数据计算哈希值,并比对上次迁移时的哈希值,根据比对结果确定有效数据块发送给目标代理虚拟机并保存在目标代理虚拟机上。
优选地,所下发的参数包括所述目标代理虚拟机的IP地址、端口号及需要连接的迁移任务ID。
优选地,所述迁移单元在进行全量迁移时,对所述源虚拟机所挂载的磁盘数据,按固定大小读取磁盘数据,对每个数据块计算哈希值,并依次判断每个数据块是否为非空数据块,将非空数据块及各数据块的哈希值发送给目标代理虚拟机,于目标代理虚拟机保留各数据块哈希值以备下次迁移时使用。
优选地,所述迁移单元在增量迁移时,从所述目标代理虚拟机获取上次迁移时产生的磁盘哈希值列表,并对所述源代理虚拟机所挂载的磁盘数据按固定大小读取磁盘数据并计算各数据块的哈希值,通过比对磁盘哈希值列表中对应数据块的哈希值是否相同判断是否为变化数据块,将变化数据块及各数据块的哈希值发送给目标代理虚拟机并于目标代理虚拟机保留各数据块哈希值以备下次迁移时使用。
优选地,所述目标代理虚拟机进一步包括:
下发任务接收单元,用于接收所述虚拟机迁移服务器下发的迁移任务,并接收所述虚拟机迁移服务器发送的磁盘挂载点对应表。
连接请求接收单元,用于在接收所述源代理虚拟机针对该迁移任务发送的连接请求时,与源代理虚拟机建立连接,并将把需要读取的磁盘挂载点对应表发给源代理虚拟机。
迁移数据获取保存单元,用于接收所述源代理虚拟机的迁移单元发送的各磁盘的有效数据块信息,写入对应挂载点上的目标虚拟机磁盘内,同时,该迁移数据获取保存单元还接收所述源代理虚拟机的迁移单元发送的各有效数据块的哈希值,于目标代理虚拟机中保留各数据块哈希值以备下次迁移时使用
为达到上述目的,本发明还提供一种虚拟机迁移方法,包括如下步骤:
步骤S1,虚拟机迁移服务器获取源虚拟机的配置及磁盘信息并把源虚拟机磁盘挂载至源虚拟平台的源代理虚拟机得到挂载点,并根据源虚拟机配置信息在目标虚拟平台创建目标虚拟机及其磁盘,并将磁盘挂载到目标代理虚拟机得到挂载点;
步骤S2,虚拟机迁移服务器向目标代理虚拟机下发迁移任务,并将磁盘挂载点对应表提供给到目标代理虚拟机,同时,下发参数至源端代理虚拟机以启动源代理虚拟机,利用下发的参数启动源代理虚拟机连接目标代理虚拟机;
步骤S3,在源代理虚拟机与目标代理虚拟机建立连接后,目标代理虚拟机将需要读取的磁盘挂载点列表发给源端代理虚拟机;
步骤S4,源代理虚拟机对所挂载的源虚拟机磁盘按固定大小读取磁盘数据,对每块数据计算哈希值,并对各数据块进行有效性判断后,将有效数据块及各数据块的哈希值发送给目标代理虚拟机;
步骤S5,目标代理虚拟机接收源代理虚拟机发送的各磁盘的有效数据块信息,写入对应挂载点上的目标虚拟机磁盘内,并保存各数据块哈希值以备下次迁移时使用。
与现有技术相比,本发明具有如下有益效果:
1、本发明针对的是通用虚拟平台,对市面上绝大多数虚拟平台都适用。
2、本发明仅针对有效数据块进行迁移,节省了传输和存储
3、本发明的虚拟机迁移可跨异构虚拟平台进行。
4、本发明中代理虚拟机为普通的虚拟平台虚拟机,没有特殊的限制。
5、本发明中,对待迁移的源虚拟机,无任何影响,不需要登录信息,不需要操作***及应用信息,实现真正的虚拟机内无代理迁移。
6、本发明中代理虚拟机可同时支持几十、甚至上百台的虚拟机迁移任务的运行。如果不需要同时迁移,一个平台部署一台代理虚拟机即可,充分节省资源,实现高效的迁移。
7、本发明可基于周期策略,通过设置全量、差异还是增量迁移,实现更灵活的迁移策略。
8、本发明中控制机服务器、虚拟机迁移服务器以及代理虚拟机可以灵活配置,实现可伸缩,易扩展的高性能***。
附图说明
图1为本发明一种虚拟机迁移***的***架构图;
图2为本发明具体实施例中虚拟机迁移服务器的细部结构图;
图3为本发明具体实施例中源代理虚拟机的细部结构图
图4为本发明具体实施例中目标代理虚拟机的细部结构图
图5为本发明一种虚拟机迁移方法的步骤流程图;
图6为本发明实施例中虚拟机迁移的流程图。
具体实施方式
以下通过特定的具体实例并结合附图说明本发明的实施方式,本领域技术人员可由本说明书所揭示的内容轻易地了解本发明的其它优点与功效。本发明亦可通过其它不同的具体实例加以施行或应用,本说明书中的各项细节亦可基于不同观点与应用,在不背离本发明的精神下进行各种修饰与变更。
图1为本发明一种虚拟机迁移***的***架构图。如图1所示,本发明一种虚拟机迁移***,包括:
虚拟机迁移服务器10,用于针对虚拟机迁移创建迁移规则,处理虚拟机迁移的大部分管理工作,包括管理虚拟平台及其虚拟机、管理虚拟机迁移的规则、调度规则的运行,通过调用远程管理接口对源虚拟平台上所要迁移的虚拟机创建快照、获取源虚拟机的配置及磁盘信息并把源虚拟机的磁盘挂载至源端代理虚拟机、根据磁盘配置信息在目标虚拟平台创建目标虚拟机及其磁盘并将磁盘挂载到目标虚拟平台的目标代理虚拟机、把源端代理虚拟机和目标代理虚拟机的磁盘挂载点信息发送到目标代理虚拟机、通知源虚拟平台上的源端代理虚拟机连接到目标虚拟平台的目标代理虚拟机进行磁盘数据传输。
一般来说,虚拟平台都有开发接口。第三方应用可以针对接口进行开发,实现更多的功能,与平台相辅相成,形成一套生态达成共赢的局面。如附图3,虚拟机迁移服务器通过开发接口管理虚拟平台(包括源虚拟平台和目标虚拟平台)。另外,虚拟机迁移服务器也对规则进行管理和调度,实现***的大部分管理工作。同时,本发明要实现无代理方式迁移虚拟平台虚拟机,需要在虚拟平台至少部署一台代理虚拟机,用来对虚拟平台待迁移虚拟机的磁盘进行操作。
具体地,如图2所示,虚拟机迁移服务器10进一步包括:
快照创建单元101,用于对源虚拟平台所要迁移的源虚拟机创建快照。在本发明具体实施例中,所述快照创建单元101通过调用虚拟平台开发接口,对所述虚拟平台所要迁移的源虚拟机创建快照;
配置信息获取单元102,用于通过调用虚拟平台开发接口,通过快照获取对应源虚拟机的所有配置和磁盘信息。具体地,配置信息获取单元102调用源虚拟平台开发接口,通过创建的快照获取对应源虚拟机的所有配置和磁盘信息
磁盘操作单元103,用于通过调用虚拟平台开发接口,根据获得的源虚拟机的配置信息在目标虚拟平台创建目标虚拟机及其磁盘,挂载源虚拟机磁盘到源代理虚拟机,挂载目标虚拟机磁盘到目标代理虚拟机。具体地,磁盘操作单元103通过调用目标虚拟平台开发接口,根据获得的源虚拟机的配置信息在目标虚拟平台创建目标虚拟机及其磁盘,并挂载目标虚拟机磁盘到目标代理虚拟机,同时,磁盘操作单元103还通过源虚拟平台开发接口,挂载源虚拟机磁盘到源代理虚拟机。
磁盘挂载点查询获取单元104,用于通过各代理虚拟机的远程管理接口,从各代理虚拟机获取所挂载的磁盘的挂载点信息,建立磁盘挂载点对应表,即源虚拟机磁盘挂载点和目标虚拟机磁盘挂载点的对应表。具体地,磁盘挂载点查询单元104分别通过源代理虚拟机与目标代理虚拟机的远程管理接口,从相应代理虚拟机获取所挂载的磁盘的挂载点信息建立磁盘挂载点对应表。
磁盘挂载点发送单元105,用于向目标代理虚拟机下发迁移任务,并通过目标代理虚拟机的远程管理接口,将包含源端代理虚拟机和目标代理虚拟机的磁盘挂载点信息的磁盘挂载点对应表发送到目标代理虚拟机。也就是说,虚拟机迁移服务器10会下发迁移任务到目标代理虚拟机,并在目标代理虚拟机上运行。
源代理虚拟机任务启动单元106,用于通过调用远程管理接口,使用下发的参数启动源代理虚拟机的任务,利用参数指明运行迁移任务的目标代理虚拟机的IP地址、端口号及需要连接的任务ID,以便所述源端代理虚拟机和所述目标代理虚拟机建立连接。也就是说,源代理虚拟机任务启动单元106下发参数并启动源代理虚拟机的任务,下发时带的参数里有任务ID(即目标代理虚拟机运行的迁移任务ID),以及用来连接到目标代理虚拟机的信息,比如目标代理虚拟机的ip、端口号等,以便所述源代理虚拟机和目标代理虚拟机建立连接。
磁盘卸载单元107,用于在磁盘数据传输完毕后,删除源虚拟机快照,并卸载源代理虚拟机上挂载的源虚拟机磁盘,以及卸载目标代理虚拟机上挂载的目标虚拟机磁盘。
具体地,磁盘卸载单元107通过调用源虚拟平台的开发接口删除源虚拟机快照,并卸载源代理虚拟机上挂载的源虚拟机磁盘,以及通过调用目标虚拟平台的开发接口卸载目标代理虚拟机上挂载的目标虚拟机磁盘。
源虚拟平台11,其上设有要迁移的源虚拟机及源代理虚拟机,在虚拟机迁移服务器10的控制下将所述源虚拟机的磁盘挂载至所述源代理虚拟机,所述源代理虚拟机在接收到虚拟机迁移服务器10下发的参数后连接至目标虚拟平台对应的目标代理虚拟机进行磁盘数据传输。
在本发明中,源代理虚拟机部属收发库组件及块设备数据读写组件,在接收到虚拟机迁移服务器10下发的参数后,通过收发库组件连接到目标代理虚拟机建立连接,实现虚拟机数据的传输和保存。具体地,源代理虚拟机进一步包括:
连接建立单元110,用于在接收到源代理虚拟机任务启动单元106的下发参数时,根据下发的参数通过收发库组件连接至对应的目标代理虚拟机。在本发明具体实施例中,源代理虚拟机任务启动单元106下发的参数中会指明所要连接的目标代理虚拟机的IP地址、端口号及需要连接的迁移任务ID,连接单元110则根据下发的参数通过源代理虚拟机部署的收发库组件将源代理虚拟机连接到对应的目标代理虚拟机。
磁盘挂载点列表获取单元111,用于获取需要读取的磁盘挂载点列表。在本发明具体实施例中,当虚拟机迁移服务器10的磁盘挂载点发送单元105将磁盘挂载点对应表发送到目标代理虚拟机后,在源代理虚拟机和目标代理虚拟机建立连接后,目标代理虚拟机将从虚拟机迁移服务器10获取的磁盘挂载点对应表发送给所述源代理虚拟机,磁盘挂载点列表获取单元311则获取到所述磁盘挂载点列表。
迁移单元112,用于在全量迁移时,对所挂载的源虚拟机磁盘数据中按固定大小读取磁盘数据并计算哈希值,将有效的数据块及各数据块的哈希值发送给目标代理虚拟机并保存在目标代理虚拟机上;在增量迁移时,先从目标代理虚拟机获取上次迁移时产生的磁盘哈希值列表,然后对所挂载的源虚拟机磁盘数据按固定大小读取磁盘数据计算哈希值,并比对上次迁移时的哈希值,根据比对结果确定有效数据块发送给目标代理虚拟机并保存在目标代理虚拟机所挂载的目标机磁盘上。
具体地,迁移单元112在进行全量迁移时,对源代理虚拟机所挂载的磁盘数据,按固定大小读取磁盘数据,对每个数据块计算哈希值,并依次检查每个数据块是否空数据(全零),判断各数据块是否为有效数据块,在去除空数据块后,则得到的都是有效数据块,将其发送给目标代理虚拟机,并将各数据块的哈希值也发送至目标代理虚拟机,于目标代理虚拟机保留各数据块哈希值以备下次迁移时使用,目标代理虚拟机则把有效数据块写入对应挂载点上的目标虚拟机磁盘内;在增量迁移时,首先由目标代理虚拟机将上次迁移时产生的磁盘哈希值列表发给源端代理虚拟机,迁移单元112同样对源代理虚拟机所挂载的磁盘数据按固定大小读取磁盘数据并计算各数据块的哈希值,并比对磁盘哈希值列表中对应数据块的哈希值,若同位置的数据哈希值相同,则表示该数据块数据未变化无需迁移,该数据块为无效数据块,若同位置的数据哈希值不相同,则表示该数据块数据发生变化,则确定其为有效数据块,在去除无效数据块后,将有效数据块发送给目标代理虚拟机,同样将各数据块的哈希值发送至目标代理虚拟机,于目标代理虚拟机保留各数据块哈希值以备下次迁移时使用,由目标代理虚拟机把有效数据块写入对应挂载点上的目标虚拟机磁盘内。
目标虚拟平台12,上设置目标代理虚拟机,在虚拟机迁移服务器10的控制下根据源虚拟机磁盘配置信息在目标虚拟平台创建目标虚拟机及其磁盘并将磁盘挂载到所述目标代理虚拟机,所述目标代理虚拟机接收虚拟机迁移服务器10下发的迁移任务及磁盘挂载点列表,在接收到源代理虚拟机针对迁移任务发送的连接请求时,与源代理虚拟机建立连接,并在建立连接后,发送所有磁盘文件的挂载点至所述源代理虚拟机,接收源代理虚拟机发送的每个磁盘文件的数据并保存在所挂载的目标机磁盘上。
在本发明中,目标代理虚拟机也部属收发库组件及块设备数据读写组件,在接收到源代理虚拟机发送的连接请求后,通过收发库组件与源代理虚拟机建立连接,实现虚拟机数据的传输和保存。
具体地,如图4所示,目标代理虚拟机进一步包括:
下发任务接收单元120,用于接收虚拟机迁移服务器10下发的迁移任务,并接收虚拟机迁移服务器10发送的磁盘挂载点对应表。
连接请求接收单元121,用于在接收所述源代理虚拟机针对该迁移任务发送的连接请求时,与源代理虚拟机建立连接,并将把需要读取的磁盘挂载点对应表发给源代理虚拟机。
迁移数据获取保存单元122,用于接收所述源代理虚拟机的迁移单元112发送的各磁盘的有效数据块信息,写入对应挂载点上的目标虚拟机磁盘内,同时,该迁移数据获取保存单元122还接收所述源代理虚拟机的迁移单元112发送的各有效数据块的哈希值,于目标代理虚拟机中保留各数据块哈希值以备下次迁移时使用。
优选地,目标代理虚拟机的迁移数据获取保存单元122于接收到源代理虚拟机发送的各磁盘文件的数据后,将每块数据的位置和大小保存起来,并将真正的磁盘数据按块设备方式写入目标虚拟机磁盘挂载点。
优选地,本发明之***还可以包括总控服务器模块(图中未示出),包含用户界面和控制机,所述用户界面以网页和客户端方式提供用户操作的界面,所述控制机提供管理功能,包括用户、许可、权限、日志、历史记录、规则、虚拟机迁移服务器和各代理虚拟机等各种管理。
图5为本发明一种虚拟机迁移方法的步骤流程图。如图5所示,本发明一种虚拟机迁移方法,包括如下步骤:
步骤S1,虚拟机迁移服务器获取源虚拟机的配置及磁盘信息并把源虚拟机磁盘挂载至源虚拟平台的源代理虚拟机得到挂载点,并根据源虚拟机配置信息在目标虚拟平台创建目标虚拟机及其磁盘,并将磁盘挂载到目标代理虚拟机得到挂载点。
在本发明具体实施例中,虚拟机迁移服务器通过调用源虚拟平台的开发接口,对源虚拟平台所要迁移的源虚拟机创建快照,通过调用源虚拟平台的开发接口,获取对应源虚拟机的所有配置和磁盘信息,并将获得的源虚拟机快照磁盘挂载到源虚拟平台的源代理虚拟机,同时,虚拟机迁移服务器还调用目标虚拟平台开发接口,根据获得的所述源虚拟机的配置信息创建目标虚拟机及其磁盘,并挂载目标虚拟机磁盘到目标代理虚拟机。
步骤S2,虚拟机迁移服务器向目标代理虚拟机下发迁移任务,并将磁盘挂载点对应表提供给到目标代理虚拟机,同时,下发参数至源端代理虚拟机以启动源代理虚拟机,利用下发的参数启动源代理虚拟机连接目标代理虚拟机。所下发的参数用于指明所述目标代理虚拟机的IP地址、端口号及需要连接的迁移任务ID,以便所述源代理虚拟机和目标代理虚拟机建立连接。
步骤S3,在源代理虚拟机与目标代理虚拟机建立连接后,目标代理虚拟机将需要读取的磁盘挂载点列表发给源代理虚拟机。
步骤S4,源代理虚拟机对所挂载的源虚拟机磁盘按固定大小读取磁盘数据,对每块数据计算哈希值,并对各数据块进行有效性判断后,将有效数据块及各数据块的哈希值发送给目标代理虚拟机。
在本发明具体实施例中,在全量迁移时,源代理虚拟机对所挂载的磁盘数据按固定大小读取磁盘数据,对每块数据计算哈希值,并通过检查各数据块是否空数据(全零)判断各数据块是否为有效数据块,若某个数据块全零,则为无效数据块,在所有数据块有效性判断后,将去除空数据块后的有效数据块发送给目标代理虚拟机并将各数据块的哈希值发送给目标代理虚拟机,于目标代理虚拟机保留各数据块哈希值以备下次迁移时使用;在增量迁移时,从目标代理虚拟机获取上次迁移时产生的磁盘哈希值列表,对所挂载的磁盘数据按固定大小计算哈希值,并比对磁盘哈希值列表中对应数据块的哈希值,若同位置的数据哈希值相同,则表示该数据块数据未变化无需迁移,该数据块为无效数据块,若同位置的数据哈希值不相同,则表示该数据块数据发生变化,则确定其为有效数据块,在去除无效数据块后,将有效数据块发送给目标代理虚拟机,并将各数据块的哈希值发送给目标代理虚拟机于目标代理虚拟机保留各数据块哈希值以备下次迁移时使用。
步骤S5,目标代理虚拟机接收源代理虚拟机发送的各磁盘的有效数据块信息,写入对应挂载点上的目标虚拟机磁盘内,并保存各数据块哈希值以备下次迁移时使用。
具体地,目标代理虚拟机在接收到源代理虚拟机发送的各磁盘文件的数据后,将磁盘数据按块设备方式写入对应的目标虚拟机磁盘挂载点。
优选地,于步骤S5之后,本发明还包括如下步骤:
步骤S6,在磁盘数据传输完毕后,由虚拟机迁移服务器调用源虚拟平台开发接口删除源虚拟机快照,并卸载源代理虚拟机上挂载的源虚拟机磁盘,以及卸载目标代理虚拟机上挂载的目标虚拟机磁盘。
实施例
图6为本发明实施例中虚拟机迁移的流程图。在本实施例中,一种虚拟机迁移方法,包括如下过程:
步骤1,虚拟机迁移服务器获取到源虚拟机并对源虚拟机打快照。
步骤2,虚拟机迁移服务器得到源虚拟机的配置及快照磁盘信息。
步骤3,虚拟机迁移服务器把快照磁盘挂载到源代理虚拟机并得到挂载点。
步骤4,虚拟机迁移服务器在目标虚拟平台根据源虚拟机磁盘规格信息创建目标虚拟机及其磁盘。
步骤5,虚拟机迁移服务器把目标端申请的目标虚拟机磁盘挂载到目标代理虚拟机并得到挂载点。
步骤6,虚拟机迁移服务器向目标代理虚拟机下发迁移任务,并把磁盘挂载点对应表给到目标代理虚拟机。
步骤7,虚拟机迁移服务器调用源代理虚拟机的远程调用接口,使用参数启动源代理虚拟机的任务。
步骤8,源代理虚拟机根据下发的参数连接到目标代理虚拟机。
步骤9,目标代理虚拟机把需要读取的磁盘挂载点列表发给源端代理虚拟机。
步骤10,如果是增量迁移,目标代理虚拟机把上次迁移时产生的磁盘哈希值列表发给源端代理虚拟机。
步骤11,针对每块磁盘,执行如下步骤12-步骤15操作:
步骤12,源代理虚拟机按固定块大小读取磁盘数据,对每块数据生成哈希值。
步骤13,源代理虚拟机检查数据块的有效性。如果是全量迁移,检查数据块是否空数据(全零),不是则为有效数据块。如果是增量迁移,则比较上次迁移时,同位置的数据哈希值是否相同,不相同则为有效数据块。
步骤14,源代理虚拟机忽略无效数据块,把有效数据块发送到目标代理虚拟机并保留数据块哈希值以备下次迁移时使用。
步骤15,目标代理虚拟机把有效数据写入对应挂载点上的目标磁盘内。
步骤16,磁盘数据传输完成后,虚拟机迁移服务器删除源虚拟机快照,并卸载源代理虚拟机上挂载的源虚拟机磁盘,卸载目标代理虚拟机上挂载的目标磁盘。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何本领域技术人员均可在不违背本发明的精神及范畴下,对上述实施例进行修饰与改变。因此,本发明的权利保护范围,应如权利要求书所列。
Claims (10)
1.一种虚拟机迁移***,包括:
虚拟机迁移服务器,用于针对虚拟机迁移创建迁移规则,对源虚拟平台上所要迁移的虚拟机创建快照、获取源虚拟机的配置及磁盘信息并将源虚拟机的磁盘挂载至源代理虚拟机、根据源虚拟机磁盘配置信息在目标虚拟平台创建目标虚拟机及其磁盘并将磁盘挂载到目标虚拟平台的目标代理虚拟机,下发迁移任务,将源代理虚拟机和目标代理虚拟机的磁盘挂载点信息发送到目标代理虚拟机,通知源虚拟平台上的源代理虚拟机连接到目标虚拟平台的目标代理虚拟机进行磁盘数据传输;
源虚拟平台,其上设有待迁移的源虚拟机及源代理虚拟机,在所述虚拟机迁移服务器的控制下将所述源虚拟机的磁盘挂载至所述源代理虚拟机,所述源代理虚拟机在接收到所述虚拟机迁移服务器下发的参数后连接至目标虚拟平台对应的目标代理虚拟机进行磁盘数据传输;
目标虚拟平台,其上设置目标代理虚拟机,在所述虚拟机迁移服务器的控制下创建目标虚拟机及其磁盘并挂载磁盘到所述目标代理虚拟机,所述目标代理虚拟机接收所述虚拟机迁移服务器下发的迁移任务及磁盘挂载点列表,在接收到源代理虚拟机针对迁移任务发送的连接请求时,与源代理虚拟机建立连接,并在建立连接后,发送所有磁盘文件的挂载点至所述源代理虚拟机,接收所述源代理虚拟机发送的每个磁盘文件的数据并保存到挂载的目标磁盘中。
2.如权利要求1所述的一种虚拟机迁移***,其特征在于,所述虚拟机迁移服务器进一步包括:
快照创建单元,用于对所述源虚拟平台的待迁移源虚拟机创建快照;
配置信息获取单元,用于根据快照获取对应源虚拟机的所有配置和磁盘信息;
磁盘操作单元,用于根据获得的源虚拟机的配置信息在目标虚拟平台创建目标虚拟机及其磁盘,挂载源虚拟机磁盘到源代理虚拟机,及挂载目标虚拟机磁盘到目标代理虚拟机;
磁盘挂载点查询获取单元,用于通过各代理虚拟机的远程管理接口,从各代理虚拟机获取所挂载的磁盘的挂载点信息,建立磁盘挂载点对应表;
磁盘挂载点发送单元,用于向目标代理虚拟机下发迁移任务,并通过目标代理虚拟机的远程管理接口,将所述磁盘挂载点对应表发送到目标代理虚拟机;
源代理虚拟机任务启动单元,用于使用下发的参数启动源代理虚拟机的任务,以便所述源端代理虚拟机和所述目标代理虚拟机建立连接。
3.如权利要求2所述的一种虚拟机迁移***,其特征在于:所述***还包括磁盘卸载单元,用于在磁盘数据传输完毕后,卸载所述源代理虚拟机上挂载的源虚拟机磁盘,以及卸载目标代理虚拟机上挂载的目标虚拟机磁盘。
4.如权利要求3所述的一种虚拟机迁移***,其特征在于:所述源代理虚拟机与目标代理虚拟机部署收发库组件及块设备数据读写组件。
5.如权利要求4所述的一种虚拟机迁移***,其特征在于,所述源代理虚拟机进一步包括:
连接建立单元,用于在接收到所述源代理虚拟机任务启动单元的下发参数时,根据下发的参数通过收发库组件连接至对应的目标代理虚拟机;
磁盘挂载点列表获取单元,用于获取需要读取的磁盘挂载点列表;
迁移单元,用于在全量迁移时,对所挂载的源虚拟机磁盘数据中按固定大小读取磁盘数据并计算哈希值,将有效的数据块及各数据块的哈希值发送给目标代理虚拟机并保存在目标代理虚拟机上;在增量迁移时,先从目标代理虚拟机获取上次迁移时产生的磁盘哈希值列表,然后对所挂载的源虚拟机磁盘数据按固定大小读取磁盘数据计算哈希值,并比对上次迁移时的哈希值,根据比对结果确定有效数据块发送给目标代理虚拟机并保存在目标代理虚拟机上。
6.如权利要求5所述的一种虚拟机迁移***,其特征在于:所下发的参数包括所述目标代理虚拟机的IP地址、端口号及需要连接的迁移任务ID。
7.如权利要求6所述的一种虚拟机迁移***,其特征在于:所述迁移单元在进行全量迁移时,对所述源虚拟机所挂载的磁盘数据,按固定大小读取磁盘数据,对每个数据块计算哈希值,并依次判断每个数据块是否为非空数据块,将非空数据块及各数据块的哈希值发送给目标代理虚拟机,于目标代理虚拟机保留各数据块哈希值以备下次迁移时使用。
8.如权利要求7所述的一种虚拟机迁移***,其特征在于:所述迁移单元在增量迁移时,从所述目标代理虚拟机获取上次迁移时产生的磁盘哈希值列表,并对所述源代理虚拟机所挂载的磁盘数据按固定大小读取磁盘数据并计算各数据块的哈希值,通过比对磁盘哈希值列表中对应数据块的哈希值是否相同判断是否为变化数据块,将变化数据块及各数据块的哈希值发送给目标代理虚拟机并于目标代理虚拟机保留各数据块哈希值以备下次迁移时使用。
9.如权利要求8所述的一种虚拟机迁移***,其特征在于,所述目标代理虚拟机进一步包括:
下发任务接收单元,用于接收所述虚拟机迁移服务器下发的迁移任务,并接收所述虚拟机迁移服务器发送的磁盘挂载点对应表。
连接请求接收单元,用于在接收所述源代理虚拟机针对该迁移任务发送的连接请求时,与源代理虚拟机建立连接,并将把需要读取的磁盘挂载点对应表发给源代理虚拟机。
迁移数据获取保存单元,用于接收所述源代理虚拟机的迁移单元发送的各磁盘的有效数据块信息,写入对应挂载点上的目标虚拟机磁盘内,同时,该迁移数据获取保存单元还接收所述源代理虚拟机的迁移单元发送的各有效数据块的哈希值,于目标代理虚拟机中保留各数据块哈希值以备下次迁移时使用。
10.一种虚拟机迁移方法,包括如下步骤:
步骤S1,虚拟机迁移服务器获取源虚拟机的配置及磁盘信息并把源虚拟机磁盘挂载至源虚拟平台的源代理虚拟机得到挂载点,并根据源虚拟机配置信息在目标虚拟平台创建目标虚拟机及其磁盘,并将磁盘挂载到目标代理虚拟机得到挂载点;
步骤S2,虚拟机迁移服务器向目标代理虚拟机下发迁移任务,并将磁盘挂载点对应表提供给到目标代理虚拟机,同时,下发参数至源代理虚拟机以启动源代理虚拟机,利用下发的参数启动源代理虚拟机连接目标代理虚拟机;
步骤S3,在源代理虚拟机与目标代理虚拟机建立连接后,目标代理虚拟机将需要读取的磁盘挂载点列表发给源代理虚拟机;
步骤S4,源代理虚拟机对所挂载的源虚拟机磁盘按固定大小读取磁盘数据,对每块数据计算哈希值,并对各数据块进行有效性判断后,将有效数据块及各数据块的哈希值发送给目标代理虚拟机;
步骤S5,目标代理虚拟机接收源代理虚拟机发送的各磁盘的有效数据块信息,写入对应挂载点上的目标虚拟机磁盘内,并保存各数据块哈希值以备下次迁移时使用。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110441522.5A CN113515343A (zh) | 2021-04-23 | 2021-04-23 | 一种虚拟机迁移***和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110441522.5A CN113515343A (zh) | 2021-04-23 | 2021-04-23 | 一种虚拟机迁移***和方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113515343A true CN113515343A (zh) | 2021-10-19 |
Family
ID=78062286
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110441522.5A Pending CN113515343A (zh) | 2021-04-23 | 2021-04-23 | 一种虚拟机迁移***和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113515343A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180239679A1 (en) * | 2014-12-16 | 2018-08-23 | At&T Intellectual Property I, L.P. | Methods, systems, and computer readable storage devices for managing faults in a virtual machine network |
CN112130959A (zh) * | 2020-09-29 | 2020-12-25 | 上海英方软件股份有限公司 | 一种虚拟机的保护***及方法 |
CN112256397A (zh) * | 2020-10-28 | 2021-01-22 | 上海英方软件股份有限公司 | 一种虚机跨平台迁移方法及*** |
CN112328366A (zh) * | 2020-11-06 | 2021-02-05 | 上海英方软件股份有限公司 | 一种高效的云平台主机保护方法及*** |
CN112506616A (zh) * | 2020-12-16 | 2021-03-16 | 航天壹进制(南京)数据科技有限公司 | 一种基于云平台卷实现虚拟机跨云快速恢复的***及方法 |
-
2021
- 2021-04-23 CN CN202110441522.5A patent/CN113515343A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180239679A1 (en) * | 2014-12-16 | 2018-08-23 | At&T Intellectual Property I, L.P. | Methods, systems, and computer readable storage devices for managing faults in a virtual machine network |
CN112130959A (zh) * | 2020-09-29 | 2020-12-25 | 上海英方软件股份有限公司 | 一种虚拟机的保护***及方法 |
CN112256397A (zh) * | 2020-10-28 | 2021-01-22 | 上海英方软件股份有限公司 | 一种虚机跨平台迁移方法及*** |
CN112328366A (zh) * | 2020-11-06 | 2021-02-05 | 上海英方软件股份有限公司 | 一种高效的云平台主机保护方法及*** |
CN112506616A (zh) * | 2020-12-16 | 2021-03-16 | 航天壹进制(南京)数据科技有限公司 | 一种基于云平台卷实现虚拟机跨云快速恢复的***及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112099918B (zh) | 容器化环境中的集群的实时迁移 | |
US7587471B2 (en) | System and method for virtualizing network storages into a single file system view | |
CN106991035B (zh) | 一种基于微服务架构的主机监控*** | |
US9351153B2 (en) | Apparatus for end-user transparent utilization of computational, storage, and network capacity of mobile devices, and associated methods | |
US6988102B2 (en) | Techniques for managing configuration for a system of devices arranged in a network | |
US7783737B2 (en) | System and method for managing supply of digital content | |
US8312231B1 (en) | Method and system for mounting logical unit numbers (LUNS) of snapshots | |
CN112328366B (zh) | 一种高效的云平台主机保护方法及*** | |
US9886388B2 (en) | Dynamic block-level indexing for cache with overflow | |
US20090119304A1 (en) | Metadata structures and related locking techniques to improve performance and scalability in a cluster file system | |
JP2003316522A (ja) | 計算機システムおよび計算機システムの制御方法 | |
JP2016512906A5 (zh) | ||
CN109600410B (zh) | 数据存储***以及方法 | |
CN109284170B (zh) | 一种局域网内usb共享***及共享方法 | |
CN105446794A (zh) | 一种基于虚拟机的磁盘操作方法、装置及*** | |
CN110990335A (zh) | 日志归档方法、装置、设备及计算机可读存储介质 | |
CN111459403B (zh) | 一种存储硬件管理方法及装置 | |
US11281550B2 (en) | Disaster recovery specific configurations, management, and application | |
CN106209445B (zh) | 一种通过网络部署的虚拟化数据中心 | |
CN109165078B (zh) | 一种虚拟分布式服务器及其访问方法 | |
CN113515343A (zh) | 一种虚拟机迁移***和方法 | |
CN112383606B (zh) | 一种桌面容器镜像增量p2p分发方法及设备 | |
CN114401280A (zh) | 一种作业数据同步方法和*** | |
KR20190015817A (ko) | 미들웨어를 이용한 모니터링 방법, 장치 및 시스템 | |
JPH08235127A (ja) | 自動負荷分散方法および装置 |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20211019 |
|
WD01 | Invention patent application deemed withdrawn after publication |