CN101464812A - 一种虚拟机迁移方法 - Google Patents

一种虚拟机迁移方法 Download PDF

Info

Publication number
CN101464812A
CN101464812A CNA2009100762288A CN200910076228A CN101464812A CN 101464812 A CN101464812 A CN 101464812A CN A2009100762288 A CNA2009100762288 A CN A2009100762288A CN 200910076228 A CN200910076228 A CN 200910076228A CN 101464812 A CN101464812 A CN 101464812A
Authority
CN
China
Prior art keywords
virtual machine
destination
deviation post
source end
disk file
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
CNA2009100762288A
Other languages
English (en)
Other versions
CN101464812B (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.)
Beihang University
Beijing University of Aeronautics and Astronautics
Original Assignee
Beihang University
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 Beihang University filed Critical Beihang University
Priority to CN2009100762288A priority Critical patent/CN101464812B/zh
Publication of CN101464812A publication Critical patent/CN101464812A/zh
Application granted granted Critical
Publication of CN101464812B publication Critical patent/CN101464812B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及一种虚拟机迁移方法,包括:步骤1.保持虚拟机在源端运行,先将虚拟机的磁盘文件和内存状态复制到目的端,并记录在源端虚拟机磁盘文件发生写操作的偏移位置信息;步骤2.将磁盘文件发生写操作的偏移位置信息发送给目的端,虚拟机开始在目的端的运行,虚拟机停止在源端的运行,并开启对目的端的虚拟机的磁盘文件的读操作限制;步骤3.源端根据目的端运行时的需要将虚拟机用到的磁盘文件偏移位置的内容发送给目的端。本发明提供的虚拟机迁移方法,不间断地完成虚拟机迁移,根据目的端的需要向目的端发送在磁盘迁移过程中发生了变化的磁盘文件偏移位置内容,可以减少虚拟机迁移过程中的中断时间和执行时间。

Description

一种虚拟机迁移方法
技术领域
本发明涉及虚拟机技术领域,尤其涉及一种虚拟机迁移方法。
背景技术
利用虚拟机技术对软件进行封装,可以有效屏蔽硬件的异构性对软件带来的影响,多个封装了不同软件的虚拟机实例可以互不影响共享地运行在同一硬件平台上,这就为软件高效稳定运行提供了安全性和可管理性。
虚拟机迁移技术是虚拟化进程中必然发展和重视的技术。它是将虚拟机从源物理机器上迁移至合适的目标机器上,以此削弱底层硬件资源的动态性变化对软件运行的影响,从而提高系统负载均衡和资源利用率,同时也方便了容错管理和系统维护工作。
对于虚拟机的迁移问题,针对不同的研究侧重点,现有技术中提供了如下集中方案:
现有技术一、简单停机迁移
无论是在局域网环境,还是在广域网环境中带虚拟机磁盘文件的虚拟机迁移,最为简单的方案就是简单停机迁移(Freeze-and-copy)。该方案在将虚拟机从源端机器迁移到目的端机器之前,首先停止虚拟机的运行,然后将虚拟机内存状态或者内存状态和虚拟机磁盘文件(局域网为前者,广域网为后者)从源端传输到目的端,最后在目的端启动虚拟机运行。虽然这种方案简单直接,但是总体迁移时间以及从虚拟机中服务对外不可用的时间都很长,难以被用户接受,迁移过程对用户完全不透明。
现有技术二、局域网环境下的在线迁移
此方案的代表是剑桥大学的Xen组织于2004年提出局域网下的“Xen在线迁移(Xen Live Migration)”(产业界类似的是Vmware公司提出的Vmotion方案)。该方案关注于如何保持虚拟机迁移过程对终端用户较好的透明性和如何减少迁移过程虚拟机中运行的服务不可用时间(down-time)。针对前者,Xen采用在线迁移(Live-Migration)的方法,即保证虚拟机在迁移过程中继续运行;针对后者,采用“预迭代拷贝”(pre-copy)的方式迭代传输虚拟机内存状态,共经历N轮迭代,除第一轮传输整个内存状态外,在剩余的N-1个阶段,每轮只需传输上一轮传输过程中源端由于虚拟机的继续运行而发生了变化的内存页,并依次类推,直到第N轮传输完第N-1轮过程中源端产生的内存变化页,标志着虚拟机迁移的完成,然后停止源端正在运行的虚拟机,同时在目的端启动虚拟机恢复其运行。该方案的特点是:只需迁移虚拟机内存状态,而无需传输虚拟机磁盘文件(虚拟机磁盘文件是指虚拟机中应用程序运行所需要的持久状态的载体),整个过程中除了第N轮传输过程需要停止虚拟机及其中运行的服务外,其余阶段都保持了虚拟机无缝运行,因此迁移具有较好的性能,可以达到100ms级的停机时间(down-time)。但是,该方案的问题在于:
(1)为保持迁移前后虚拟机磁盘文件偏移位置的内容在源端和目的端的一致性,该方案要求在迁移过程中源机和目标机必须“共享网络磁盘方式(NAS)”,该共享方式只在局域网环境下表现出较好的可用性,无法在非共享网络磁盘的宿主机之间迁移;而在分布式集群环境中,许多实际应用如数据库服务器(database-server)、动态web服务器(dynamic web-server)需要将其运行状态保存在本地存储中,而不是频繁访问远端的共享文件服务器;此外,对网络性能要求苛刻,如网络环境较差,导致迁移性能下降。
(2)基于“共享网络磁盘方式”的迁移因其迁移特点的局限性,可扩伸性差,难以聚合分布性较强的资源,而在实际中,用户往往有在不同场合跨网段在广域网环境中享受移动计算的需求,这样就使广域网下虚拟机迁移显得很有必要。
现有技术三、广域网环境下基于虚拟机磁盘的在线迁移(Live Wide-AreaMigration Including Local Persistent State)
虚拟机磁盘作为虚拟机运行所需的持久化状态的封装体,所展现出的如高可用性、高效能、安全稳定等良好特性,因此,基于虚拟机磁盘的迁移逐渐成为虚拟机迁移(尤其是广域网络环境)的研究热点。现有技术三的这种方案解决了广域网下带虚拟机磁盘文件的虚拟机在线迁移(Live Migration)问题。该方案执行过程如下:首先,保持虚拟机运行的同时,将初始的虚拟机磁盘文件从源端机器预复制到目的端机器;其次,调用由现有技术二中所述的Xen提供的Xen在线迁移(Xen Live Migration)功能,传输虚拟机的内存状态;在这两个过程中,为了保持迁移之后源端和目的端虚拟机磁盘文件的一致性,都通过扩充Xen虚拟机监控器中磁盘驱动的代码功能,记录源端虚拟机磁盘文件在虚拟机迁移过程中发生的写变化。最后,恢复虚拟机在目的端运行,同时将源端传输过来的磁盘文件发生的变化恢复到目的端虚拟机磁盘文件,为了防止此过程中再产生新的数据变化量,停止了目的端虚拟机运行时所产生的一切I/O操作。可以看出,该方案实现了从局域网下简单的“共享磁盘”式虚拟机迁移到广域网下带虚拟机磁盘文件迁移的跨越,但是该方案的问题在于:虚拟机在目的端恢复运行时,必须等到目的端将源端磁盘文件的写变化复原完成后,才能进行I/O操作,这将产生“I/O饥饿现象”,导致虚拟机中应用服务的执行时间(task-time)增加,I/O利用率低,对用户不是很透明;另外,该方案可以减少虚拟机迁移过程中的停机时间(down-time),但是会造成数据恢复阶段虚拟机的执行时间(task-time)的增加。
现有技术四、采取多轮拷贝方式的虚拟机外存迁移
该方法也实现了基于虚拟机磁盘的在线迁移,其借鉴了现有技术二中所述的迁移内存时所用的“迭代拷贝”方式:对虚拟机磁盘文件也采用“预迭代拷贝”方式传输:只需在第一轮传输虚拟机初始磁盘文件,在随后的过程中,进行循环迭代传输磁盘文件,每一轮只传输上一轮磁盘文件传输过程中产生了变化的磁盘文件,直到达到设定的条件,停止发送虚拟机磁盘文件,并停止虚拟机的运行,对在虚拟机磁盘迁移过程发生了变化的磁盘文件进行同步。
现有技术四中,采用“迭代拷贝”方式迁移虚拟机磁盘文件并不是必需的。因为对于内存状态,其内存页在虚拟机迁移过程中频繁更改,若在“预传输”阶段只是采取“单轮拷贝”方式,则“脏内存页(dirty pages)”来不及同步便被覆盖,从而造成虚拟机运行状态的不连续,因此,采用“迭代拷贝”方式传输是很有必要的;而虚拟机磁盘文件作为持久化信息的载体,其状态更新的频率远远没有内存状态那样更新频繁,因此,每轮迭代仅传输极少量的发生了改变的虚拟机磁盘文件;此外,由于迭代次数的增加还会导致虚拟机执行时间(task-time)的不必要的增加。
发明内容
本发明的目的在于针对现有技术中存在的问题,提供一种虚拟机迁移方法,克服现有技术中虚拟机迁移过程中导致的停机或执行时间长的缺陷。
为了实现上述目的,本发明提供了一种虚拟机迁移方法,包括:
步骤1、保持虚拟机在源端运行,开启对所述源端的虚拟机的磁盘文件的写操作限制,采用单轮预复制方式先将所述虚拟机的磁盘文件和内存状态复制到目的端,并记录在源端所述虚拟机的磁盘文件发生写操作的偏移位置信息;
步骤2、将所述步骤1中记录的磁盘文件发生写操作的偏移位置信息发送给所述目的端,所述虚拟机开始在所述目的端的运行,所述虚拟机停止在所述源端的运行,并开启对所述目的端的虚拟机的磁盘文件的读操作限制;
步骤3、所述源端根据目的端运行时的需要将虚拟机用到的磁盘文件偏移位置的内容发送给所述目的端。
本发明提供的虚拟机迁移方法,当虚拟机在源端运行时,先将虚拟机的磁盘文件和内存状态预复制到目的端,这样可以实现在线迁移,保证虚拟机及其中的应用程序不间断地从源端迁移到目的端;为了保证迁移前和迁移后的磁盘文件相同偏移位置的内容的一致性,在将虚拟机的磁盘文件和内存状态预复制到目的端的过程中,需要记录在此过程中源端虚拟机的磁盘文件发生写操作的偏移位置信息;然后将记录的偏移位置信息发送给目的端;在虚拟机在目的端开始运行后,开启对虚拟机磁盘文件的读操作限制,如果读操作涉及到的磁盘文件偏移位置的内容不在目的端,可以从源端获取,如果读操作涉及到的磁盘文件偏移位置的内容在目的端,则进行正常的读操作,源端将虚拟机在目的端运行时需要用到的磁盘文件偏移位置的内容发送给目的端,而无需如同现有技术三那样源端将虚拟机迁移过程中发生变化的所有磁盘文件偏移位置的内容都传输给目的端,这样可以根据目的端的需要有选择性地向目的端发送相应的磁盘文件偏移位置的内容,从而节省系统文件传输的开销,减少执行时间。另外,由于本发明提供的虚拟机迁移方法中,虚拟机迁移到目的端之后,在接收到源端发送的偏移位置信息之后即可开始运行,而不会等待源端将虚拟机迁移过程中发生变化的磁盘文件偏移位置的内容都传输给目的端,所以可以节省虚拟机数据恢复阶段的执行时间。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
图1所示为本发明虚拟机迁移方法流程图;
图2所示为本发明虚拟机迁移方法流程示意图;
图3所示为本发明涉及到的程序执行过程中读操作涉及到的偏移位置信息示意图;
图4所示为本发明虚拟迁移系统运行示意图。
具体实施方式
如图1所示为本发明虚拟机迁移方法流程图,包括:
步骤1、保持虚拟机在源端运行,开启对源端的虚拟机的磁盘文件的写操作限制,采用单轮预复制方式先将虚拟机的磁盘文件和内存状态复制到目的端,并记录在源端虚拟机的磁盘文件发生写操作的偏移位置信息;
步骤2、将步骤1中记录的磁盘文件发生写操作的偏移位置信息发送给目的端,虚拟机开始在所述目的端的运行,虚拟机停止在源端的运行,并开启对目的端的虚拟机的磁盘文件的读操作限制;
步骤3、源端根据目的端运行时的需要将虚拟机用到的磁盘文件偏移位置的内容发送给目的端。
下面详细描述本发明虚拟机迁移的流程。
如图2所示为本发明虚拟机迁移方法流程示意图,首先,保持虚拟机在源端运行,采用单轮预复制方式,将虚拟机的磁盘文件发送到目的端。本发明中对于虚拟机磁盘文件的预复制采用单轮方式,即一次将欲复制的磁盘文件从源端复制到目的端,而无需采用现有技术四中提到的多轮预迭代拷贝方式,可以节省复制磁盘的时间。
在进行磁盘文件预复制的同时,开启对磁盘文件的写操作限制。写操作限制是指对于对磁盘文件的写操作,除进行正常的写操作流程之外,还需要记录磁盘文件发生写操作的偏移位置信息,并将这些偏移位置信息存储到第一文件中,例如,写操作的偏移位置信息可以包括写操作发生的时间、写操作发生的偏移位置等。图2中,用虚线连接的并列的几个步骤,表示这几个步骤是同时进行的。
然后保持虚拟机在源端的运行,将虚拟机的内存状态从源端复制到目的端。在将内存状态从源端复制到目的端的过程中,也需要记录磁盘文件发生写操作的偏移位置信息,并将这些偏移位置信息存储到第一文件中。
在虚拟机内存状态预复制完成后,源端将第一文件发送给目的端。目的端在接收到第一文件之后,虚拟机开始在目的端运行,同时虚拟机停止在源端的工作,并且在目的端开启对磁盘文件的读操作限制。读操作限制是指,对于对磁盘文件的读操作,需要判断该读操作涉及到的磁盘文件偏移位置的内容是否已经复制到了目的端。
在将磁盘文件和内存状态从源端预复制到目的端的过程中,源端可能发生写操作,由于写操作会导致源端和目的端磁盘文件的相同偏移位置的内容不一致。在目的端对磁盘文件开启读操作限制之后,源端可以根据目的端的需求,将这部分与目的端不一致的磁盘文件偏移位置的内容发送给目的端,但是无需将这部分与目的端不一致的磁盘文件偏移位置的内容全部发送给目的端。如果目的端发生了对磁盘文件的读操作,而该读操作涉及到的第一偏移位置在第一文件中有记录,那么,目的端需要将虚拟机的状态设置为“读阻塞(read-block)”状态,然后目的端向源端发送请求,该请求用于向源端索取磁盘文件中第一偏移位置的内容。如果该读操作涉及到的第一偏移位置在第一文件中没有记录,则说明该读操作涉及到的内容在单轮预复制阶段已经复制到了目的端,所以可以进行正常的读操作流程。
源端在收到目的端的请求之后,从源端虚拟机磁盘的磁盘文件中第一偏移位置读取内容,并将读取内容发送给目的端。目的端接收到源端发送的内容后,将接收到的内容存储到虚拟机磁盘的磁盘文件中的第一偏移位置。将接收到的内容存储到目的端虚拟机磁盘文件中第一偏移位置的过程可以称为同步过程。在完成同步之后,虚拟机的状态可以由“读阻塞”切换到正常工作状态。需要说明的是,磁盘文件中不同偏移位置会存储不同的内容,目的端读操作涉及到的第一偏移位置可以看成是磁盘文件中的一个偏移位置。在本发明提供的虚拟机迁移方法中,当虚拟机在目的端开始运行后,并不会由源端主动将第一文件中记录的偏移位置的内容全部发送给目的端,而是当虚拟机发生了“读阻塞”之后,当目的端请求发送某一偏移位置的内容时,源端才会将相应偏移位置的内容发送给目的端,这种“按需传输”的模式,可以避免不必要的数据的传输。
下面详细解释需要在源端对虚拟机的磁盘文件开启写操作限制和在目的端对虚拟机的磁盘文件开启读操作限制的原因。
在将虚拟机的磁盘文件和内存状态从源端预复制到目的端的过程中,由于虚拟机仍然在源端运行,会产生新的读/写(I/O)数据。源端虚拟机运行时对磁盘文件的读操作不会改变磁盘文件偏移位置的内容,但是源端虚拟机运行时对磁盘文件的写操作会改变磁盘文件偏移位置的内容,而在虚拟机迁移完成后,虚拟机在目的端运行时有可能需要读取在预复制过程中改变了的磁盘文件偏移位置的内容。所以,在将虚拟机的磁盘文件和内存状态从源端预复制到目的端的过程中,需要开启对磁盘文件的写操作限制,对于对磁盘文件的写操作需要记录发生写操作的偏移位置信息。
在将源端的虚拟机的磁盘文件和内存状态预复制到目的端的操作完毕之后,源端发送存储有发生写操作的偏移位置信息的第一文件给目的端,虚拟在目的端开始运行。虚拟机在目的端运行时,如果发生了对磁盘文件某个偏移位置,例如偏移位置A的写操作,可以直接对磁盘文件进行写操作,如果该偏移位置A记录在第一文件中,由于此时该偏移位置A对应的内容还在源端,所以可以直接对该偏移位置A进行写操作,并通知源端放弃将该偏移位置A的内容发送到目的端。这样并不会影响目的端虚拟机磁盘文件中A偏移位置的内容,因为不管源端是否将A偏移位置的内容发送给目的端,如果目的端发生了对磁盘文件中A偏移位置的写操作,那么A偏移位置的内容就应当是写操作之后的内容,而与在源端的A偏移位置的内容无关。
如果虚拟机在目的端运行时,发生了对磁盘文件的读操作,这时需要判断该读操作涉及的偏移位置(例如偏移位置B)是否记录在第一文件中。
如果该读操作涉及到的偏移位置B不在第一文件中,说明偏移位置B的内容在虚拟机的磁盘文件预复制过程中已经从源端复制到了目的端,所以可以进行正常的读操作。
如果该读操作涉及到的偏移位置B在第一文件中,由于此时偏移位置B的内容还在源端,目的端的磁盘文件中没有偏移位置B的内容,所以这时需要将虚拟机的状态设置为“读阻塞”状态。然后由目的端向源端索取偏移位置B的内容。具体地,目的端可以向源端发送请求,请求偏移位置B的内容,源端在收到该请求后,将偏移位置B的内容发送给目的端,目的端在收到偏移位置B的内容之后,切换到对磁盘文件的同步操作,将目的端虚拟机的磁盘文件中偏移位置B的内容同步更新为接收自源端的内容。完成同步操作之后,将虚拟机的状态从“读阻塞”状态切换到正常工作状态。
下面详细解释本发明源端和目的端之间按需传输的过程。
当虚拟机发生了读阻塞时,目的端会向源端发送请求,请求源端发送读操作涉及到的偏移位置的内容。在源端可以预先统计特定程序的平均连续读取长度,在目的端向源端发送的请求中除了包括读操作涉及到的偏移位置信息之外,还可以包括该读操作涉及到的程序信息。在目的端虚拟机中可能执行各种程序,不同的程序在执行过程中的读操作是有规律的。如图3所示为本发明涉及到的程序执行过程中读操作涉及到的偏移位置信息示意图,图3中,横坐标是读限制模式下虚拟机运行过程中所处的读阻塞阶段,纵坐标是每个读阻塞阶段对应一段连续的偏移位置。可以看出,不同阶段读操作涉及到不同的偏移偏移位置信息,根据统计结果就可以计算出某个程序的平均连续读取长度。例如,在某一程序执行过程中,第一次读操作涉及到的偏移位置是A1到A10,第二次读操作涉及到的偏移位置是A11到A15,第三次读操作涉及到的偏移位置是A16到A20,那么可以计算出与该程序对应的平均连续读取长度为 [ ( A 10 - A 1 ) + ( A 15 - A 11 ) + ( A 20 - A 16 ) ] 3 . 通过类似的方式可以计算出大多数程序的平均连续读取长度,计算平均连续读取长的公式可以为: L = Σ i = 1 N Δ l i N , 其中Δli是程序执行过程中第i次读操作涉及到的磁盘文件中的偏移位置间隔,N为程序执行过程中总共涉及到的读操作次数。需要说明的是,由于程序不同情况下运行时间不同,本发明提供的方法中,在统计L时,是选择了一段程序运行时间,对该段运行时间内的读操作进行统计,然后计算出平均连续读取长度L,该平均连续读取长度L可以部分反应该程序的读操作涉及到的磁盘文件的偏移位置信息。
源端在接收到目的端发送的请求之后,可以获知目的端读操作涉及到的偏移位置信息和程序信息,然后源端根据预先统计的特定程序的平均连续读取长度L,确定该读操作涉及到的程序的平均连续读取长度L,然后从源端的虚拟机磁盘的磁盘文件中读取从读操作涉及到的偏移位置之后连续L个偏移位置的内容,并将获取的内容发送给目的端。例如,源端请求一个听歌程序的偏移位置W1到W3的磁盘文件,源端可以根据预先的统计信息,确定该听歌程序对应的平均连续读取长度为5,那么源端读取虚拟机磁盘文件中W1到(W3+5)偏移位置的磁盘文件并将读出的文件发送给目的端。由于该平均连续读取长度L是根据目的端应用程序的I/O操作的习惯性行为预测统计出的结果,这样,如果目的端请求一个偏移位置的磁盘文件,源端可以将该偏移位置以及该偏移位置之后L个偏移位置的磁盘文件一起发送给目的端,这样,可以避免目的端虚拟机发生读阻塞的几率,同时可以减少目的端应为请求磁盘文件偏移位置的内容所需的系统开销。
如图4所示为本发明虚拟迁移系统运行示意图。当目的端资源准备就绪后,源端开始迁移虚拟机。首先,将磁盘迁移模块与虚拟机磁盘相关联,将源端的磁盘迁移模块12与虚拟机磁盘11相关联,将目的端的磁盘迁移模块22与虚拟机磁盘21相关联,以实现迁移过程中磁盘迁移模块对虚拟机磁盘的读/写控制。然后,源端的磁盘迁移模块12开启对虚拟机磁盘11中磁盘文件的写操作限制,开始虚拟机磁盘的预复制过程,对于虚拟文件系统13对于虚拟机磁盘11中磁盘文件进行的操作,磁盘迁移模块12需要判断其类型,如果该操作的类型为读操作,则磁盘迁移模块12允许虚拟文件系统13对虚拟机磁盘11中磁盘文件进行正常的读操作;如果该操作的类型为写操作,则磁盘迁移模块12除了完成正常的写操作之外,还需要将该写操作涉及到的写操作变化的偏移位置记录到第一文件存储模块14中。
在虚拟机的磁盘和内存的与复制完成之后,源端将第一文件存储模块14中存储的第一文件发送给目的端的第一文件存储模块24,然后虚拟机在目的端开始运行,同时虚拟机停止在源端的运行,并且目的端的磁盘迁移模块22开启对目的端的虚拟机磁盘21中磁盘文件的读操作限制。对于虚拟文件系统23对于虚拟机磁盘21中磁盘文件进行的操作,磁盘迁移模块22需要判断其类型,如果该操作的类型为写操作,则磁盘迁移模块22允许虚拟文件系统23对虚拟机磁盘21中磁盘文件进行正常的写操作;如果该操作的类型为读操作,则磁盘迁移模块22需要判断该读操作涉及的磁盘文件的偏移位置是否记录在第一文件存储模块24中,如果该读操作涉及的磁盘文件的偏移位置没有记录在第一文件存储模块24中,那么磁盘迁移模块22允许该读操作;如果该读操作涉及的磁盘文件的偏移位置记录在第一文件存储模块24中,则虚拟文件系统23控制虚拟机进入“读阻塞“状态,目的端的数据传输模块26向源端的数据传输模块16发送请求,源端的数据传输模块向磁盘数据存储模块15获取目的端的读操作涉及到的偏移位置的内容(较佳地,可以根据预测到的平均连续读取长度L,向目的端发送自读操作涉及到的偏移位置之后的L个偏移位置的内容),并将其发送给目的端的数据传输模块26,然后目的端的数据传输模块26将接收到的磁盘数据存储到目的端的磁盘数据存储模块25中相应的偏移位置。虚拟文件系统23将虚拟机的状态切换到正常工作状态。
需要说明的是,在图4所示的系统中,磁盘迁移模块12和22是基于通用的Linux内核设计的,通过磁盘迁移模块可以控制对虚拟机磁盘的读/写操作。本发明没有采用现有技术中提供的通过修改Xen虚拟机监控器(VMM)的虚拟机磁盘I/O过滤控制器来实现对虚拟机磁盘的I/O控制的方式,是因为该控制方式是紧耦合于Xen虚拟机监控器的,难以实现在其他虚拟机监控器平台上的移植,缺乏良好的通用性。而本发明基于通用的Linux内核涉及磁盘迁移模块来控制虚拟机磁盘的I/O操作,具有良好的通用性。
本发明提供的虚拟机迁移方法,当虚拟机在源端运行时,先将虚拟机的磁盘文件和内存状态预复制到目的端,这样可以实现在线迁移,保证虚拟机及其中的应用程序不间断地从源端迁移到目的端;为了保证迁移前和迁移后的磁盘文件的一致性,在将虚拟机的磁盘文件和内存状态预复制到目的端的过程中,需要记录在此过程中源端虚拟机的磁盘文件发生写操作的偏移位置信息;然后将记录的偏移位置信息发送给目的端;在虚拟机在目的端开始运行后,开启对虚拟机磁盘文件的读操作限制,如果读操作涉及到的数据不在目的端,可以从源端获取,如果读操作涉及到的数据在目的端,则进行正常的读操作,源端将虚拟机在目的端运行时需要用到的文件发送给目的端,甚至源端可以预测,将目的端下一次读操作可能用到的磁盘文件一并发送给目的端,而无需如同现有技术三那样源端将虚拟机迁移过程中发生变化的所有磁盘文件偏移位置的内容都传输给目的端,这样可以根据目的端的需要有选择性地向目的端发送相应的文件,从而节省系统文件传输的开销,减少执行时间。另外,由于本发明提供的虚拟机迁移方法中,虚拟机迁移到目的端之后,在接收到源端发送的偏移位置信息之后即可开始运行,而不会等待源端将虚拟机迁移过程中发生变化的磁盘文件偏移位置的内容都传输给目的端,所以可以节省虚拟机数据恢复阶段的执行时间。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (6)

1、一种虚拟机迁移方法,其特征在于,包括:
步骤1、保持虚拟机在源端运行,开启对所述源端的虚拟机的磁盘文件的写操作限制,采用单轮预复制方式先将所述虚拟机的磁盘文件和内存状态复制到目的端,并记录在源端所述虚拟机的磁盘文件发生写操作的偏移位置信息;
步骤2、将所述步骤1中记录的磁盘文件发生写操作的偏移位置信息发送给所述目的端,所述虚拟机开始在所述目的端的运行,所述虚拟机停止在所述源端的运行,并开启对所述目的端的虚拟机的磁盘文件的读操作限制;
步骤3、所述源端根据目的端运行时的需要将虚拟机用到的磁盘文件偏移位置的内容发送给所述目的端。
2、根据权利要求1所述的虚拟机迁移方法,其特征在于,所述步骤1中采用单轮预复制方式先将所述虚拟机的磁盘文件和内存状态复制到目的端具体包括:
采用单轮预复制方式先将所述虚拟机的磁盘文件复制到目的端,然后再将所述虚拟机的内存状态复制到目的端。
3、根据权利要求1所述的虚拟机迁移方法,其特征在于,所述步骤1中记录在源端所述虚拟机的磁盘文件发生写操作的偏移位置信息具体为:将在源端所述虚拟机的磁盘文件发生写操作的偏移位置信息存储到第一文件中;
步骤2中将所述步骤1中记录的磁盘文件发生写操作的偏移位置信息发送给所述目的端具体为:将所述第一文件发送给所述目的端。
4、根据权利要求3所述的虚拟机迁移方法,其特征在于,所述步骤3具体包括:
所述目的端判断对所述虚拟机的磁盘文件的读操作涉及的磁盘文件中的第一偏移位置是否在所述第一文件中,如果对所述虚拟机的磁盘的读操作涉及的磁盘文件中的第一偏移位置在所述第一文件中,则所述目的端向所述源端发送请求,用于获取所述第一偏移位置的内容;
所述源端在接收到所述请求后,从所述源端的磁盘中读取磁盘文件中所述第一偏移位置的内容并发送给所述目的端。
5、根据权利要求4所述的虚拟机迁移方法,其特征在于,所述目的端向所述源端发送的请求中包括所述第一偏移位置和所述读操作涉及到的第一程序信息;
所述源端在接收到所述请求后,从所述源端的磁盘中读取磁盘文件中所述第一偏移位置的内容并发送给所述目的端具体包括:
所述源端预先统计特定程序的平均连续读取长度;
所述源端根据接收到的所述请求中的程序信息,确定所述第一程序对应的第一平均连续读取长度L;
所述源端将从磁盘的磁盘文件中所述第一偏移位置以及第一偏移位置之后L个偏移位置读取的内容发送给所述目的端。
6、根据权利要求5所述的虚拟机迁移方法,其特征在于,所述源端将从磁盘的磁盘文件中所述第一偏移位置以及第一偏移位置之后L个位置读取的内容发送给所述目的端具体为:
所述第一偏移位置为一个位置区间,该位置区间的起点为位置A1,该位置区间的终点为偏移位置A2,所述源端将从磁盘中偏移位置A1到偏移位置A2读取的内容以及从偏移位置A2之后L个偏移位置读取的内容发送给所述目的端。
CN2009100762288A 2009-01-06 2009-01-06 一种虚拟机迁移方法 Expired - Fee Related CN101464812B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2009100762288A CN101464812B (zh) 2009-01-06 2009-01-06 一种虚拟机迁移方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2009100762288A CN101464812B (zh) 2009-01-06 2009-01-06 一种虚拟机迁移方法

Publications (2)

Publication Number Publication Date
CN101464812A true CN101464812A (zh) 2009-06-24
CN101464812B CN101464812B (zh) 2012-05-30

Family

ID=40805405

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009100762288A Expired - Fee Related CN101464812B (zh) 2009-01-06 2009-01-06 一种虚拟机迁移方法

Country Status (1)

Country Link
CN (1) CN101464812B (zh)

Cited By (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101945131A (zh) * 2010-09-16 2011-01-12 华中科技大学 一种基于存储虚拟化的数据迁移方法
CN102103524A (zh) * 2010-12-23 2011-06-22 北京航空航天大学 一种面向内存冗余的虚拟机迁移装置及其方法
CN101605084B (zh) * 2009-06-29 2011-09-21 北京航空航天大学 基于虚拟机的虚拟网络报文处理方法和系统
WO2011137780A1 (zh) * 2010-11-29 2011-11-10 华为技术有限公司 虚拟存储迁移方法、系统和虚拟机监控器
CN102314377A (zh) * 2010-06-30 2012-01-11 国际商业机器公司 加速器及其实现支持虚拟机迁移的方法
WO2012009843A1 (en) * 2010-07-19 2012-01-26 Empire Technology Development Llc Virtual machine live migration with continual memory write monitor and send
CN102455942A (zh) * 2010-12-02 2012-05-16 中标软件有限公司 一种广域网虚拟机动态迁移方法及系统
CN101609419B (zh) * 2009-06-29 2012-05-30 北京航空航天大学 虚拟机持续在线迁移的数据备份方法及装置
CN102609361A (zh) * 2012-01-16 2012-07-25 北京邮电大学 虚拟机存储数据迁移方法和装置
CN102821158A (zh) * 2012-08-20 2012-12-12 广州杰赛科技股份有限公司 一种实现虚拟机迁移的方法和云系统
CN102932409A (zh) * 2012-09-21 2013-02-13 中国电信股份有限公司云计算分公司 一种虚拟机在线迁移的方法和系统
CN103399778A (zh) * 2013-07-01 2013-11-20 华为技术有限公司 一种虚拟机在线整体迁移方法和设备
CN103530167A (zh) * 2013-09-30 2014-01-22 华为技术有限公司 一种虚拟机内存数据的迁移方法及相关装置和集群系统
CN103631633A (zh) * 2012-08-20 2014-03-12 中国电信股份有限公司 虚拟机全系统在线迁移方法、装置与系统
CN103699429A (zh) * 2013-12-31 2014-04-02 华为技术有限公司 虚拟机迁移方法及装置
CN103713937A (zh) * 2013-12-13 2014-04-09 广东电网公司信息中心 变电站终端系统运行方法
CN103782276A (zh) * 2011-09-13 2014-05-07 英派尔科技开发有限公司 从原始虚拟机到目的地虚拟机的操作转移
CN103902233A (zh) * 2012-12-27 2014-07-02 中国电信股份有限公司 虚拟机系统的在线存储迁移方法、装置与服务器
CN104025052A (zh) * 2011-12-29 2014-09-03 瑞典爱立信有限公司 使用3gpp mcim的虚拟机迁移
CN104158868A (zh) * 2014-08-06 2014-11-19 杭州华三通信技术有限公司 一种文件传输方法和管理服务器
CN104239120A (zh) * 2014-08-28 2014-12-24 华为技术有限公司 一种虚拟机的状态信息同步的方法、装置及系统
CN104572248A (zh) * 2014-12-17 2015-04-29 中电科华云信息技术有限公司 虚拟机动态保存快照的方法
CN104903859A (zh) * 2012-12-03 2015-09-09 国际商业机器公司 异构计算环境中的过程迁移方法和系统
CN105224391A (zh) * 2015-10-12 2016-01-06 浪潮(北京)电子信息产业有限公司 一种虚拟机的在线备份方法及系统
CN105530273A (zh) * 2014-09-29 2016-04-27 国际商业机器公司 用于数据迁移的方法和装置
CN106775846A (zh) * 2016-11-30 2017-05-31 三星(中国)半导体有限公司 用于物理服务器的在线迁移的方法及装置
CN106850818A (zh) * 2013-11-08 2017-06-13 北京奇虎科技有限公司 数据实时同步方法及系统
CN106897116A (zh) * 2017-02-27 2017-06-27 郑州云海信息技术有限公司 一种虚拟机迁移方法及装置
US9854036B2 (en) 2013-09-30 2017-12-26 Huawei Technologies Co., Ltd. Method for migrating memory data of virtual machine, and related apparatus and cluster system
CN107766385A (zh) * 2016-08-22 2018-03-06 阿里巴巴集团控股有限公司 一种转换虚拟磁盘文件格式的方法与设备
CN108388468A (zh) * 2018-01-26 2018-08-10 杨立群 一种快速文件系统调度方法及装置
CN109240803A (zh) * 2018-09-25 2019-01-18 郑州云海信息技术有限公司 一种虚拟机迁移方法、装置、服务器及存储介质
CN113342471A (zh) * 2021-06-25 2021-09-03 航天云网科技发展有限责任公司 虚拟机迁移方法、系统及电子设备

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7257811B2 (en) * 2004-05-11 2007-08-14 International Business Machines Corporation System, method and program to migrate a virtual machine
CN100489787C (zh) * 2007-07-10 2009-05-20 北京大学 一种虚拟机的外存在线迁移方法

Cited By (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101605084B (zh) * 2009-06-29 2011-09-21 北京航空航天大学 基于虚拟机的虚拟网络报文处理方法和系统
CN101609419B (zh) * 2009-06-29 2012-05-30 北京航空航天大学 虚拟机持续在线迁移的数据备份方法及装置
US8578377B2 (en) 2010-06-30 2013-11-05 International Business Machines Corporation Accelerator and its method for realizing supporting virtual machine migration
CN102314377A (zh) * 2010-06-30 2012-01-11 国际商业机器公司 加速器及其实现支持虚拟机迁移的方法
CN102314377B (zh) * 2010-06-30 2014-08-06 国际商业机器公司 加速器及其实现支持虚拟机迁移的方法
WO2012009843A1 (en) * 2010-07-19 2012-01-26 Empire Technology Development Llc Virtual machine live migration with continual memory write monitor and send
CN101945131A (zh) * 2010-09-16 2011-01-12 华中科技大学 一种基于存储虚拟化的数据迁移方法
CN101945131B (zh) * 2010-09-16 2012-08-15 华中科技大学 一种基于存储虚拟化的数据迁移方法
US9411620B2 (en) 2010-11-29 2016-08-09 Huawei Technologies Co., Ltd. Virtual storage migration method, virtual storage migration system and virtual machine monitor
WO2011137780A1 (zh) * 2010-11-29 2011-11-10 华为技术有限公司 虚拟存储迁移方法、系统和虚拟机监控器
CN102455942A (zh) * 2010-12-02 2012-05-16 中标软件有限公司 一种广域网虚拟机动态迁移方法及系统
CN102103524A (zh) * 2010-12-23 2011-06-22 北京航空航天大学 一种面向内存冗余的虚拟机迁移装置及其方法
CN103782276A (zh) * 2011-09-13 2014-05-07 英派尔科技开发有限公司 从原始虚拟机到目的地虚拟机的操作转移
CN104025052B (zh) * 2011-12-29 2018-09-18 瑞典爱立信有限公司 使用3gpp mcim的虚拟机迁移方法和电信网络实体
CN104025052A (zh) * 2011-12-29 2014-09-03 瑞典爱立信有限公司 使用3gpp mcim的虚拟机迁移
CN102609361B (zh) * 2012-01-16 2015-06-24 北京红山世纪科技有限公司 虚拟机存储数据迁移方法和装置
CN102609361A (zh) * 2012-01-16 2012-07-25 北京邮电大学 虚拟机存储数据迁移方法和装置
CN103631633A (zh) * 2012-08-20 2014-03-12 中国电信股份有限公司 虚拟机全系统在线迁移方法、装置与系统
CN103631633B (zh) * 2012-08-20 2017-04-12 中国电信股份有限公司 虚拟机全系统在线迁移方法、装置与系统
CN102821158B (zh) * 2012-08-20 2015-09-30 广州杰赛科技股份有限公司 一种实现虚拟机迁移的方法和云系统
CN102821158A (zh) * 2012-08-20 2012-12-12 广州杰赛科技股份有限公司 一种实现虚拟机迁移的方法和云系统
CN102932409A (zh) * 2012-09-21 2013-02-13 中国电信股份有限公司云计算分公司 一种虚拟机在线迁移的方法和系统
CN102932409B (zh) * 2012-09-21 2015-09-09 中国电信股份有限公司 一种虚拟机在线迁移的方法和系统
CN104903859B (zh) * 2012-12-03 2017-07-18 国际商业机器公司 异构计算环境中的过程迁移方法和系统
CN104903859A (zh) * 2012-12-03 2015-09-09 国际商业机器公司 异构计算环境中的过程迁移方法和系统
CN103902233A (zh) * 2012-12-27 2014-07-02 中国电信股份有限公司 虚拟机系统的在线存储迁移方法、装置与服务器
CN103902233B (zh) * 2012-12-27 2018-09-11 中国电信股份有限公司 虚拟机系统的在线存储迁移方法、装置与服务器
CN103399778A (zh) * 2013-07-01 2013-11-20 华为技术有限公司 一种虚拟机在线整体迁移方法和设备
CN103399778B (zh) * 2013-07-01 2016-12-28 华为技术有限公司 一种虚拟机在线整体迁移方法和设备
CN103530167A (zh) * 2013-09-30 2014-01-22 华为技术有限公司 一种虚拟机内存数据的迁移方法及相关装置和集群系统
US9854036B2 (en) 2013-09-30 2017-12-26 Huawei Technologies Co., Ltd. Method for migrating memory data of virtual machine, and related apparatus and cluster system
CN103530167B (zh) * 2013-09-30 2017-04-05 华为技术有限公司 一种虚拟机内存数据的迁移方法及相关装置和集群系统
CN106850818A (zh) * 2013-11-08 2017-06-13 北京奇虎科技有限公司 数据实时同步方法及系统
CN106850818B (zh) * 2013-11-08 2020-02-18 北京奇虎科技有限公司 数据实时同步方法及系统
CN103713937A (zh) * 2013-12-13 2014-04-09 广东电网公司信息中心 变电站终端系统运行方法
CN103699429A (zh) * 2013-12-31 2014-04-02 华为技术有限公司 虚拟机迁移方法及装置
CN104158868A (zh) * 2014-08-06 2014-11-19 杭州华三通信技术有限公司 一种文件传输方法和管理服务器
CN104158868B (zh) * 2014-08-06 2017-12-08 新华三技术有限公司 一种文件传输方法和管理服务器
CN104239120A (zh) * 2014-08-28 2014-12-24 华为技术有限公司 一种虚拟机的状态信息同步的方法、装置及系统
CN104239120B (zh) * 2014-08-28 2018-06-05 华为技术有限公司 一种虚拟机的状态信息同步的方法、装置及系统
CN105530273B (zh) * 2014-09-29 2018-08-03 国际商业机器公司 用于数据迁移的方法和装置
CN105530273A (zh) * 2014-09-29 2016-04-27 国际商业机器公司 用于数据迁移的方法和装置
CN104572248A (zh) * 2014-12-17 2015-04-29 中电科华云信息技术有限公司 虚拟机动态保存快照的方法
CN104572248B (zh) * 2014-12-17 2018-01-23 中电科华云信息技术有限公司 虚拟机动态保存快照的方法
CN105224391A (zh) * 2015-10-12 2016-01-06 浪潮(北京)电子信息产业有限公司 一种虚拟机的在线备份方法及系统
CN105224391B (zh) * 2015-10-12 2018-10-12 浪潮(北京)电子信息产业有限公司 一种虚拟机的在线备份方法及系统
CN107766385A (zh) * 2016-08-22 2018-03-06 阿里巴巴集团控股有限公司 一种转换虚拟磁盘文件格式的方法与设备
CN107766385B (zh) * 2016-08-22 2021-09-03 阿里巴巴集团控股有限公司 一种转换虚拟磁盘文件格式的方法与设备
CN106775846A (zh) * 2016-11-30 2017-05-31 三星(中国)半导体有限公司 用于物理服务器的在线迁移的方法及装置
CN106775846B (zh) * 2016-11-30 2021-02-23 三星(中国)半导体有限公司 用于物理服务器的在线迁移的方法及装置
CN106897116A (zh) * 2017-02-27 2017-06-27 郑州云海信息技术有限公司 一种虚拟机迁移方法及装置
CN108388468A (zh) * 2018-01-26 2018-08-10 杨立群 一种快速文件系统调度方法及装置
CN108388468B (zh) * 2018-01-26 2022-02-22 杨立群 一种快速文件系统调度方法及装置
CN109240803A (zh) * 2018-09-25 2019-01-18 郑州云海信息技术有限公司 一种虚拟机迁移方法、装置、服务器及存储介质
CN113342471A (zh) * 2021-06-25 2021-09-03 航天云网科技发展有限责任公司 虚拟机迁移方法、系统及电子设备

Also Published As

Publication number Publication date
CN101464812B (zh) 2012-05-30

Similar Documents

Publication Publication Date Title
CN101464812B (zh) 一种虚拟机迁移方法
US10963290B2 (en) Hypervisor exchange with virtual-machine consolidation
CN102073462B (zh) 虚拟存储迁移方法、系统和虚拟机监控器
CN101706742B (zh) 一种基于多核动态划分的非对称虚拟机i/o调度方法
CN110609730B (zh) 一种实现虚拟处理器间中断透传的方法及设备
CN101609419B (zh) 虚拟机持续在线迁移的数据备份方法及装置
CN103631633B (zh) 虚拟机全系统在线迁移方法、装置与系统
US20110252208A1 (en) Express-full backup of a cluster shared virtual machine
US10423532B2 (en) Guest ordering of host file system writes
CN102597958A (zh) 虚拟机的对称实时迁移
CN103793258A (zh) 基于管理程序的服务器复制系统及其方法
CN102521038A (zh) 基于分布式文件系统的虚拟机迁移方法和装置
CN104111897A (zh) 一种数据处理方法、装置及计算机系统
CN101937376A (zh) 一种数据管理方法及数据存储装置
CN103744725B (zh) 一种虚拟机管理方法及装置
CN101876926A (zh) 一种非对称结构的软件三机热备容错方法
CN101387989A (zh) 构建基于分区管理的虚拟存储设备的计算机系统及方法
CN101290590A (zh) 一种嵌入式操作系统中切换任务的方法和单元
US20050210316A1 (en) Apparatus, system, and method for emergency backup
US8505020B2 (en) Computer workload migration using processor pooling
CN105808391A (zh) 一种热替换cpu节点的方法及装置
CN103412800A (zh) 一种虚拟机热备份方法和设备
CN103309625A (zh) 一种基于自适应存储热迁移的方法和系统
CN114546604B (zh) 一种虚拟机的热迁移方法及装置
CN103092677A (zh) 一种适用于虚拟化平台的内存节能系统和方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120530

Termination date: 20180106

CF01 Termination of patent right due to non-payment of annual fee