CN100489787C - 一种虚拟机的外存在线迁移方法 - Google Patents

一种虚拟机的外存在线迁移方法 Download PDF

Info

Publication number
CN100489787C
CN100489787C CNB200710118597XA CN200710118597A CN100489787C CN 100489787 C CN100489787 C CN 100489787C CN B200710118597X A CNB200710118597X A CN B200710118597XA CN 200710118597 A CN200710118597 A CN 200710118597A CN 100489787 C CN100489787 C CN 100489787C
Authority
CN
China
Prior art keywords
external memory
virtual machine
dirty
destination host
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.)
Expired - Fee Related
Application number
CNB200710118597XA
Other languages
English (en)
Other versions
CN101101562A (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.)
Peking University
Original Assignee
Peking 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 Peking University filed Critical Peking University
Priority to CNB200710118597XA priority Critical patent/CN100489787C/zh
Publication of CN101101562A publication Critical patent/CN101101562A/zh
Application granted granted Critical
Publication of CN100489787C publication Critical patent/CN100489787C/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

本发明涉及一种虚拟机的外存在线迁移方法,在推送(Push)阶段,首先将虚拟机的全部外存数据由源主机发送至目的主机;虚拟机管理器监控当前外存发送过程中虚拟机的外存访问,记录该发送过程中的外存块更新状态,标记被写脏外存脏块;将外存脏块循环由源主机发送至目的主机;直至达到设定的条件,停止外存数据的发送,进入停机阶段;然后根据外存更新状态记录信息确定剩余的外存脏块及其大小,将所有剩余的外存脏块由源主机发送至目的主机;或在拉拽(Pull)阶段,根据外存更新状态记录信息将剩余的外存脏块进行同步操作。保证迁移过程中仅有非常短暂的停机时间,使得在线迁移不依赖于共享外存设备的硬件环境,能够在分散式外存环境下得到应用。

Description

一种虚拟机的外存在线迁移方法
所属技术领域:
本发明涉及虚拟机迁移技术,特别是一种虚拟机的外存在线迁移方法。
背景技术:
计算机软/硬件资源成为现代社会中必不可少的基础设施之一。众多的国家机构,科研中心,以及企事业单位都组建了规模不等的计算机集群,作为信息化建设的计算中心或者数据中心。如何对这些计算资源进行管理,成为人们面临的重要课题。计算机硬件技术飞速发展,需要经常对计算设备进行更新换代;日趋复杂的软件系统给人们对硬件系统的维护带来了更多困难。近年来,虚拟机技术成为学术界与产业界关注的热点,其重要应用之一就是为计算机软/硬件资源的管理提供有效的帮助。虚拟机在线迁移是基于虚拟机技术的典型应用之一。借助于虚拟机迁移技术,运行中的操作系统实例能够在不同的物理主机之间转移,并且在迁移过程中,操作系统及其上运行的应用与服务能够持续运行而不被中断,操作人员无需关心操作系统上运行的众多应用程序的细节,极大地方便了管理操作。当人们需要对一台物理主机进行维护时,可以用虚拟机在线迁移工具将主机上运行的操作系统迁移至其他备用的物理主机,并且这个过程中操作系统的服务持续可用。硬件维护完成之后,同样可以借助虚拟机迁移工具将原有软件环境转移回来。虚拟机迁移技术同样可以对物理资源进行负载平衡的调度。业界主流的虚拟机厂商VMWare就依据其虚拟机平台VMWare ESX Server推出了集群管理套件Virtual Center,通过迁移技术集中式地对集群硬件资源进行管理,调节软件资源在硬件上的负载。
目前的虚拟机迁移技术可以分为两大类:常规迁移与在线迁移。常规迁移技术在迁移操作系统之前显式的将其挂起,借助于虚拟机技术将操作系统状态序列化,类似于文件拷贝一样传输至目的主机,在目的主机上将其状态反序列化,重建操作系统实例,恢复其执行状态。常规迁移期间停止虚拟机执行,因而迁移过程中传输的是静态的系统状态,相对简单易行,但是在迁移过程操作系统无法使用,软件系统服务有较长时间中断。在线迁移技术则在保持虚拟机运行的同时对系统进行迁移,由于虚拟机在迁移过程中处于运行状态,期间系统状态的更改需要进行记录,在后续阶段重新传输。当目的主机具备了足够的系统状态时,经过一个非常短暂的切换,虚拟机在目的主机上被激活。在后续阶段,源/目的主机之间进行进一步同步,直至目的主机获得虚拟机全部的最新状态,迁移结束。在线迁移技术是集群管理的有效工具之一。
在线迁移技术的要点在于如何最小化停机时间,以维持被迁移虚拟机服务的持续可用。对于静态的内容,例如虚拟机的配置信息等,可以在迁移前期事先发送到目的主机;对于动态内容,则需要进行仔细考虑。动态内容中最大的部分是内存与外存。目前,上百MB甚至更大容量的内存以及上百GB甚至更大容量的外存都已经成为常见系统配置。如果完全在停机阶段传输这两部分的数据,停机时间无疑非常长,达不到在线迁移的要求。目前主流的在线迁移技术,例如VMWare公司的VMotion,以及英国剑桥大学的开源虚拟机管理器Xen上的在线迁移,均采用了内存pre-copy(预复制)的技术以及共享外存的硬件环境来解决上述问题(【Xen】C.Clark,K.Fraser,S.Hand,J.G.Hansen,E.Jul,C.Limpach,I.Pratt,andA.Warfield.Live Migration of Virtual Machines.In Proc.NSDI’05,May 2005.【VMotion】M.Nelson,B.Lim,and G.Hutchins.Fast Transparent Migration for Virtual Machines.In Proc.USENIX2005.)。内存pre-copy技术是指,在虚拟机运行的同时,将其内存页面数据发送至目的主机,这个过程中通过记录虚拟机的内存更新,以确定发送过程中产生了哪些脏页;在一轮发送完成之后,开始下一轮pre-copy,将上一次发送过程中产生的内存脏页重新发送至目的主机。这样一个循环pre-copy的过程中,源/目的主机之间不一致的内存页面越来越少,当不一致内存页面数低于某个阈值时,pre-copy循环结束,接下来虚拟机被挂起,其剩余的少量的不一致页面被一次性拷贝至目的主机,这样目的主机就获得了全部最新的内存数据。对于外存,则都依赖于NAS(Network Attached Storage)、SAN(Storage Area Network)等共享的外部存储。既然源/目的主机可以平等地访问到外存设备,那么在迁移的期间只需为目的主机VM建立起对原有外存设备的连接即可,无需传输外存数据。据VMotion和Xen的相关论文(参见上述两篇论文)显示,迁移中的停机时间在1秒以内,大多数情况下仅为几百毫秒。
从上面的分析可以看到,在线迁移为了保证虚拟机服务在迁移过程中的可用性,需要将停机阶段的时间最小化。现有的在线迁移技术都依赖于共享外部存储的硬件环境来解决动态迁移虚拟机外存状态的问题,这使得迁移的设计变得简单,也取得了较好的性能。
但是,目前存在着大量采用分散式本地存储的集群。例如,随着PC处理能力的日益强大,高性价比的使用本地存储的PC集群成为现在集群的主流方案之一,Google Cluster就是采用这种方案的著名例子。在这种环境下,现有的在线迁移技术受到限制。虚拟机迁移至目的主机之后,无法直接访问其原有外部存储,或者必须依赖于源主机对其外存访问提供支持。
发明内容:
本发明的目的在于提供一种虚拟机的外存在线迁移方法,保证迁移过程中仅有非常短暂的停机时间,使得在线迁移不依赖于共享外存设备的硬件环境,能够在分散式外存环境下得到应用。
本发明的虚拟机的外存在线迁移方法,其步骤包括:
1)在推送(Push)阶段,首先将虚拟机的全部外存数据由源主机发送至目的主机;
2)虚拟机管理器(Virtual Machine Monitor,简称VMM)监控当前外存发送过程中虚拟机的外存访问,记录该发送过程中的外存块更新状态信息,标记被写脏的外存数据,即各外存脏块;
3)将外存脏块由源主机发送至目的主机;
4)循环2)-)3所述步骤,直至达到设定的条件,停止外存数据的发送,进入停机阶段;
5)停机阶段,根据外存块更新状态信息确定剩余的外存脏块及其大小,
5-1)当剩余的外存脏块小于设定的量值时,将所有剩余的外存脏块由源主机发送至目的主机,外存迁移结束;
5-2)当剩余的外存脏块达到设定的量值时,将当前的外存块更新状态信息发送至目的主机,进入拉拽(Pull)阶段;
6)在Pull阶段,根据外存块更新状态信息将剩余的外存脏块发送到目的主机,其方法为:
6-1)目的主机的虚拟机访问外存时,由虚拟机管理器监控虚拟机的访问请求,根据在停机阶段接收的外存块更新状态信息确定该访问请求所访问的外存块是否与源主机上一致,如一致,则提交该访问请求;如不一致,对于写操作,正常提交,对于读操作,暂存该读操作请求,向源主机请求发送该外存数据,待目的主机收到该外存数据后,提交该读操作请求;
6-2)源主机在监听和响应目的主机的外存数据请求的同时,根据外存块更新状态信息依次将剩余的外存脏块发送至目的主机,目的主机收到数据之后进行判断:若该部分数据已经在本地被目的主机写过,则丢弃该外存数据;否则,将其写入本地外存设备;当所有剩余的外存脏块均已发送至目的主机,外存迁移结束。
本发明通过位图(bitmap)记录所述外存块(block)更新状态信息,对外存块在位图中对应的bit进行标记以记录被写脏的外存脏块。
所述方法中,外存数据发送前进行数据压缩。
上述设定的条件选自:
1)循环次数达到设定阈值;
2)被写脏的外存数据的块数小于设定的阈值;
3)外存数据被写脏的速度达到设定阈值。
上述设定的量值为记录外存块更新状态信息的位图的大小。
当需要将虚拟机再由目的主机迁移至源主机,或进行多次反复迁移时,只需要传输两次迁移期间外存发生变化的部分,也就是“增量”的外存部分。虚拟机管理器通过bitmap记录了两次迁移中增量的外存数据,由此外存迁移程序依据bitmap记录,只发送增量的外存数据。
本发明是在现有内存在线迁移的基础上,实现外存的在线迁移,是虚拟机的全系统在线迁移。
本发明主要内容为在现有内存在线迁移方案中添加对于虚拟机外存数据的迁移,并且仍然维持在线迁移的特点。这种包括外存在内的虚拟机完整状态的迁移称为全系统迁移。
从前面的背景分析看到,以时间为序,迁移的过程可以分为三个阶段:
■推送(Push)阶段:虚拟机在源主机运行,用户使用的虚拟机服务运行于源主机;
■停机阶段:虚拟机在源主机被挂起,并且尚未在目的主机启动的阶段,此时虚拟机状态不发生变化
■拉拽(Pull)阶段:虚拟机在目的主机运行,用户使用的虚拟机服务运行于目的主机。
在Push阶段,采用pre-copy方案来减少外存数据在后续阶段需要同步的数据量。类似于内存的pre-copy,当虚拟机仍然在源主机运行时,将其外存数据循环地发送至目的主机,写入目的主机为其分配的外存设备中。在发送过程中,由于虚拟机外存访问而被更新的外存数据需要被重传。因此,需要对虚拟机的外存访问进行监控,以确定哪些外存数据在发送过程中被写脏。
虚拟机管理器作为操作系统和硬件之间的软件层,控制着虚拟机的全部外存访问,因此,在虚拟机管理器层可以监控到所有虚拟机的外存访问请求,并且这个过程对于被迁移的虚拟机本身来说是透明的。操作系统的外存访问通过文件系统接口来进行,而文件系统对外存的访问以块(block)为单位。对于每个外存block,只存在两种状态,即是否被写脏。为此,本发明设计用位图(bitmap)来记录虚拟机的外存块更新状态信息。对于每个外存block,若被虚拟机写脏,则将其bitmap对应的bit进行标记。
总体来说,外存pre-copy的过程是这样进行的:pre-copy的第一轮,外存迁移程序将发送虚拟机的全部外存数据。在此同时,虚拟机管理器为虚拟机的外存状态监控分配bitmap,开始记录虚拟机的每一次外存访问。之后的每一轮pre-copy循环之初,外存迁移程序从虚拟机管理器获取监控的bitmap记录,根据该bitmap将被写脏的外存重新发送到目的主机。同时,虚拟机管理器将bitmap记录清空,开始记录这一轮pre-copy过程中的外存更新情况。随着pre-copy循环的进行,外存的脏块越来越少,直到外存同步的效果足够好,将停止外存的pre-copy。本发明用三个因素对外存pre-copy循环进行控制:循环的轮次,外存脏块的数量,以及外存变脏的速度。当循环的次数达到某个上限时,外存pre-copy将中止;当外存脏块数量小于某个阈值时,外存pre-copy效果已经达到,外存pre-copy将中止;当外存变脏速度过快时,进行外存pre-copy达不到减少外存同步的效果,外存pre-copy将中止。
最后一轮外存pre-copy至源VM被挂起的过程中,由于VM仍在源主机运行,产生的外存脏块需要在后续阶段进行同步。在停机阶段,从bitmap可以确定有哪些剩余的外存脏块需要重传。若脏块非常少,脏块大小的总和小于bitmap本身的大小,则在停机阶段将所有脏块发送至目的主机,从而VM在目的主机在启动之后,所有外存数据已经在本地就绪,可以正常运行;若脏块较多,脏块大小的总和大于bitmap本身的大小,则并不在停机阶段进行剩余外存脏块的传输,而是将bitmap发送到目的主机,为后续阶段的迁移做准备。
前面提到,若在停机阶段发现剩余外存脏块较多,则仅发送bitmap,在Pull阶段对剩余的脏块进行同步。采取两个手段来进行Pull阶段的外存同步。第一个手段是目的主机外存访问的按需请求(on-demand fetch)策略。当目的主机访问外存时,在VMM内监控虚拟机的外存IO请求,根据在停机阶段接收到的bitmap,确定该IO请求是否已经被同步到本地。对于外存数据已经同步至本地的情况,IO请求可以正常提交;若bitmap指示这部分外存数据尚未同步(即bitmap中的bit标记为脏块),则又分为两种情况:对于写IO操作,可以正常提交,并且将bitmap对应的位进行标记为已经在本地,无需事先从源主机同步外存数据。若为读IO操作,且操作的数据尚未同步(即bitmap中的bit标记为脏块),则将请求暂存起来,通过外存迁移程序向源主机请求这部分外存数据,直到接收到目的主机发来的外存数据时,再提交暂存的IO请求。目的主机这种外存访问方式称为按需请求的外存访问。另外一个手段称为外存post-copy(后复制),其内容为:源主机在Pull阶段,在监听和响应目的主机的外存数据请求的同时,根据bitmap依次将剩余的外存脏块发送至目的主机,目的主机收到数据之后进行判断,若该数据在bitmap中指示尚未同步,则将其写入本地外存设备,否则说明该部分数据已经在本地被目的主机写过,丢弃该外存数据。当源主机post-copy结束之后,可以确定目的主机获得了全部的外存最新状态,外存迁移结束。
为了减少外存迁移的数据量,设计了增量外存迁移的方案,仅迁移源/目的主机只能够外存状态不一致的部分。一旦虚拟机在目的主机启动,在VMM中用bitmap记录其所有外存访问的历史。这样,当虚拟机从目的主机回迁至源主机时,由于源主机存在上一次迁移时的外存数据,只需要传输两次迁移期间,外存发生变化的部分,也就是“增量”的外存部分,而VMM中的bitmap则记录了两次迁移中增量的外存数据。由此,在外存pre-copy的第一轮,外存迁移程序从VMM中获取bitmap记录,发送增量的外存数据,这样就避免了迁移全部外存数据,实现了增量式的外存迁移。
值得注意的是,在外存迁移各阶段的数据发送前,外存数据首先经过压缩,然后在网络上传输,进一步改进了迁移的性能。
全系统迁移方案解决了在线迁移对共享外存硬件环境的依赖性,具有以下优点:
1.较好地控制了由外存迁移给停机时间带来的额外开销。可以看到,在停机阶段,外存迁移仅需传输记录外存更新状态的bitmap,这个时间是非常短暂的。例如,当虚拟机外存大小为40GB,外存block大小为4KB时,bitmap的大小约为1.25MB。在100MB/s的网络传输速度下,传输bitmap的时间不到20毫秒。通过对bitmap数据进行压缩,可以将停机时间进一步缩短。Bitmap的大小仅和虚拟机外存的大小有关,不受虚拟机之上应用程序的影响。Xen,VMotion的在线迁移停机时间均为100毫秒级别,因此,外存迁移增减的停机时间不会改变原有迁移在线迁移的性质。
2.较好的保证了迁移过程中虚拟机的IO性能。在VMM中对外存进行监控的时间代价仅为若干条指令的执行以及内存访问操作,相对于低速的IO操作而言,其时间开销可以忽略不计。对于以读IO操作为主的虚拟机,我们的pre-copy操作有效的在迁移前期同步了外存状态;对于以写IO操作为主的虚拟机,在目的主机启动之后,其写IO操作可以直接在本地提交,而无需事先从源主机同步。因此,对于写IO密集型虚拟机,迁移中也能够较好地保证其IO访问性能。考虑到目前网络技术的发展,网络数据传输速率已经接近甚至超过磁盘1O的数据传输速率,通过网络按需请求外存的方式并不会带来太大的IO性能损失。
3.通过用bitmap在VMM层次监控虚拟机外存访问,增量的迁移虚拟机外存数据,减少了外存迁移传输的数据量,并且这个过程对于虚拟机本身完全是透明的,具有较好的可移植性。考虑到外存容量之大,增量外存迁移对于缩短迁移时间,减少迁移的资源开销等具有非常大的好处。
附图说明:
虚拟机全系统在线增量迁移流程图
图中椭圆部分为现有的在线迁移,灰色的方块部分主要为外存迁移。A所在区域为Push阶段,B所在区域为停机阶段,C所在区域为Pull阶段。对于流程的各部分:(1)为迁移初始化,主要涉及目的主机的选取,资源预留等工作,在目的主机端创建一个虚拟机的空壳。(2)为确定增量外存数据的工作。通过与VMM交互,从bitmap确定哪些外存部分被更新,需要重传。(3)为外存pre-copy。每次pre-copy首先从VMM获取bitmap,发送bitmap指示变脏的外存,同时将VMM的bitmap清空,记录此后的外存更新情况。(4)为虚拟机的内存循环pre-copy。(5)为内存状态的停机拷贝。进入(5)之后,虚拟机在源主机被挂起,传输剩余未同步的虚拟机内存状态。(6)为目的主机的激活,虚拟机在目的主机上对用户提供服务(7)为目的主机的外存按需请求与外存post-copy。外存post-copy结束后,目的主机获得了全部的外存最新状态,外存迁移结束。VMM仍然通过bitmap记录虚拟机从目的主机启动以来的所有外存更新操作,当将虚拟机迁移回源主机时,转至步骤(1),VMM的bitmap成为增量迁移的依据。
具体实施方式:
下面以在Xen虚拟机上实现的全系统迁移工具来说明如何在现有在线迁移的基础上实现在线的增量外存迁移机制。
Xen的虚拟机外存访问均通过一个特权虚拟机来代理执行。特权虚拟机可以直接访问外设,普通虚拟机的外存访问通过一个叫front-end的驱动程序发送至特权虚拟机,由一个叫back-end的驱动程序统一处理,IO请求经过Xen验证合法后,由back-end Driver提交给真实的物理设备驱动程序。IO执行完成后,数据被返回给front-end Driver,最终满足应用程序的IO请求。在back-end Driver内截获到虚拟机的IO请求,并且用bitmap记录其外存块更新状态信息。
迁移的主体工作由用户态的迁移进程完成,迁移进程运行于Xen的特权虚拟机Domain0.采用Xen的在线迁移进行内存迁移,并在其中各个阶段插入对外存迁移。
通过三个简单的实验来考察迁移的性能:
实验在两台物理主机A和B之间进行,两物理主机均通过网卡连接到局域网。VM在AB主机之间进行迁移。具体配置表1所示:
 
物理主机A CPU:Pentinum(R)4,3.00GHZ内存:1GB硬盘:IDE硬盘,160GB网卡:100MB/s以太网卡
物理主机B CPU:Pentinum(R)4,3.00GHZ内存:1GB硬盘:IDE硬盘,80GB网卡:100MB/s以太网卡
网络 100MB/s局域网
被迁移VM Linux操作系统,其内核为经XEN移植的Linux2.6.16.29内核内存:256MB外存:10GB物理磁盘分区
XEN虚拟机平台 XEN3.0.3,domain0为Linux操作系统,其内核为经XEN移植的Linux2.6.16.29内核
表1  实验环境配置
■实验一:读IO密集性VM迁移实验
内容:VM在被迁移的过程中,用scp命令从第三方的Linux系统下载文件至本地,通过文件下载速度来测试VM的服务性能。考察的性能指标包括:预迁移阶段运行的时间,停机时间,pull阶段运行时间,总体迁移时间,以及在各个阶段的文件下载速率。
实验结果:如表2所示
表2  读IO密集型VM迁移实验结果
■实验二:写IO密集性VM迁移实验
内容:VM在被迁移的过程中,用scp命令从第三方的Linux系统下载文件至本地,通过文件下载速度来测试VM的服务性能。考察的性能指标包括:预迁移阶段运行的时间,停机时间,pull阶段运行时间,总体迁移时间,以及在各个阶段的文件下载速率。
实验结果:如表3所示
Figure C200710118597D00112
表3  写IO密集型VM迁移实验结果
■实验三:增量迁移实验
内容:将VM在物理主机A和B之间往返迁移三次。
第一轮迁移将VM从主机A迁移至主机B,此时主机B不存在VM的外存数据,需迁移完整VM外存状态。
第一轮迁移之后,下载一个大小为534MB的文件至VM,作为外存数据更新的模拟,然后将VM从主机B迁移回主机A,这就是第二轮迁移。
第二轮迁移后,仅在VM上拷贝一个33KB的文件,作为外存数据更新的模拟,然后将VM从主机B再迁移到主机A,这就是第三轮迁移。
考察的性能指标包括:预迁移阶段占用的时间,停机时间,pull阶段运行时间,以及总体迁移时间。
实验结果:如表4所示
Figure C200710118597D00121
表4  增量迁移实验结果
从实验可以看到,对于读IO密集型与写IO密集型的VM,其迁移过程中仍然具有较好的IO性能,考虑到计算机硬件资源功能日趋强大,迁移的IO性能可以有较大的提升。
迁移过程中的停机时间大多数在100毫秒左右,很好的保证了服务的持续可用。
增量迁移对于减少迁移的外存数据量有显著的效果,避免了每次都迁移全部外存数据。

Claims (7)

1.一种虚拟机的外存在线迁移方法,其步骤包括:
1)在推送阶段,首先将虚拟机的全部外存数据由源主机发送至目的主机;
2)虚拟机管理器监控当前外存发送过程中虚拟机的外存访问,记录该发送过程中外存块更新状态信息,标记被写脏的外存数据,即各外存脏块;
3)将外存脏块由源主机发送至目的主机;
4)循环2)~3)所述步骤,直至达到设定的条件,停止外存数据的发送,进入停机阶段;
5)停机阶段,根据外存块更新状态信息确定剩余的外存脏块及其大小,
5-1)当剩余的外存脏块小于设定的量值时,将所有剩余的外存脏块由源主机发送至目的主机,外存迁移结束;
5-2)当剩余的外存脏块达到设定的量值时,将当前的外存块更新状态信息发送至目的主机,进入拉拽阶段;
6)在拉拽阶段,根据外存块更新状态信息将剩余的外存脏块发送到目的主机,其方法为:
6-1)目的主机的虚拟机访问外存时,由虚拟机管理器监控虚拟机的访问请求,根据在停机阶段接收的外存块更新状态信息确定该访问请求所访问的外存块是否与源主机上一致,如一致,则提交该访问请求;如不一致,对于写操作,正常提交,对于读操作,暂存该读操作请求,向源主机请求发送该外存数据,待目的主机收到该外存数据后,提交该读操作请求;
6-2)源主机在监听和响应目的主机的外存数据请求的同时,根据外存块更新状态信息依次将剩余的外存脏块发送至目的主机,目的主机收到数据之后进行判断:若该部分数据已经在本地被目的主机写过,则丢弃该外存数据;否则,将其写入本地外存设备;当所有剩余的外存脏块均已发送至目的主机,外存迁移结束。
2.如权利要求1所述的虚拟机的外存在线迁移方法,其特征在于通过位图记录所述外存数据各外存块更新状态信息,对外存块在位图中对应的比特进行标记以记录被写脏的外存脏块。
3.如权利要求1或2所述的虚拟机的外存在线迁移方法,其特征在于外存数据发送前进行数据压缩。
4.如权利要求1或2所述的虚拟机的外存在线迁移方法,其特征在于所述设定的条件选自:
1)循环次数达到设定阈值;
2)被写脏的外存数据的块数小于设定的阈值;
3)外存数据被写脏的速度达到设定阈值。
5.如权利要求1或2所述的虚拟机的外存在线迁移方法,其特征在于所述设定的量值为记录外存块更新状态信息的位图的大小。
6.如权利要求1所述的虚拟机的外存在线迁移方法,其特征在于虚拟机管理器监控虚拟机的所有外存访问,记录外存块更新状态信息,当虚拟机在源主机和目的主机之间来回迁移时,根据外存块更新状态信息,传输两次迁移期间外存发生变化的部分。
7.如权利要求1所述的虚拟机的外存在线迁移方法,其特征在于同时进行内存的在线迁移。
CNB200710118597XA 2007-07-10 2007-07-10 一种虚拟机的外存在线迁移方法 Expired - Fee Related CN100489787C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB200710118597XA CN100489787C (zh) 2007-07-10 2007-07-10 一种虚拟机的外存在线迁移方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB200710118597XA CN100489787C (zh) 2007-07-10 2007-07-10 一种虚拟机的外存在线迁移方法

Publications (2)

Publication Number Publication Date
CN101101562A CN101101562A (zh) 2008-01-09
CN100489787C true CN100489787C (zh) 2009-05-20

Family

ID=39035842

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB200710118597XA Expired - Fee Related CN100489787C (zh) 2007-07-10 2007-07-10 一种虚拟机的外存在线迁移方法

Country Status (1)

Country Link
CN (1) CN100489787C (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102681913A (zh) * 2011-12-21 2012-09-19 中兴通讯股份有限公司 一种虚拟机到虚拟机热迁移的方法及装置

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5089429B2 (ja) * 2008-02-21 2012-12-05 キヤノン株式会社 情報処理装置及びその制御方法、プログラム
US9235577B2 (en) * 2008-09-04 2016-01-12 Vmware, Inc. File transfer using standard blocks and standard-block identifiers
CN101739282B (zh) * 2008-11-18 2013-06-12 华为技术有限公司 一种虚拟机的管理方法、装置和系统
CN101464812B (zh) * 2009-01-06 2012-05-30 北京航空航天大学 一种虚拟机迁移方法
CN101605084B (zh) * 2009-06-29 2011-09-21 北京航空航天大学 基于虚拟机的虚拟网络报文处理方法和系统
CN101609419B (zh) * 2009-06-29 2012-05-30 北京航空航天大学 虚拟机持续在线迁移的数据备份方法及装置
JP5446040B2 (ja) * 2009-09-28 2014-03-19 日本電気株式会社 コンピュータシステム、及び仮想マシンのマイグレーション方法
CN102081552A (zh) * 2009-12-01 2011-06-01 华为技术有限公司 一种物理机到虚拟机的在线迁移方法、装置和系统
US8446817B2 (en) * 2010-01-19 2013-05-21 Cisco Technology, Inc. Distributed virtual fibre channel over Ethernet forwarder
WO2012009843A1 (en) * 2010-07-19 2012-01-26 Empire Technology Development Llc Virtual machine live migration with continual memory write monitor and send
CN102136993B (zh) * 2010-07-29 2016-12-21 华为技术有限公司 一种数据迁移的方法、装置和系统
CN102387024B (zh) * 2010-09-06 2014-09-03 联想(北京)有限公司 功耗控制方法、管理节点及数据处理中心
CN102455942B (zh) * 2010-12-02 2013-09-25 中标软件有限公司 一种广域网虚拟机动态迁移方法及系统
CN102118437B (zh) * 2011-01-17 2014-03-05 浪潮(北京)电子信息产业有限公司 一种基于Xen的虚拟机热迁移进度监控方法及装置
CN102694672B (zh) 2011-03-24 2015-07-22 华为技术有限公司 虚拟机参数迁移的方法、设备和虚拟机服务器
CN102137167B (zh) * 2011-04-29 2014-01-08 中国人民解放军国防科学技术大学 不间断运行的虚拟机迁移方法及装置
CN102609361B (zh) * 2012-01-16 2015-06-24 北京红山世纪科技有限公司 虚拟机存储数据迁移方法和装置
CN103365704B (zh) * 2012-03-26 2016-12-14 中国移动通信集团公司 虚拟机迁移中的内存预拷贝方法及执行该方法的装置和系统
CN103530290B (zh) * 2012-07-03 2017-12-12 深圳市腾讯计算机系统有限公司 数据库间的数据迁移方法和系统
CN103631633B (zh) * 2012-08-20 2017-04-12 中国电信股份有限公司 虚拟机全系统在线迁移方法、装置与系统
CN103049308B (zh) * 2012-11-30 2016-01-20 华为技术有限公司 实现虚拟机热迁移的方法、装置及系统
CN103885719B (zh) * 2012-12-21 2017-02-08 中国电信股份有限公司 虚拟机系统在线存储迁移的方法、系统与装置
CN103885811B (zh) * 2012-12-21 2017-05-31 中国电信股份有限公司 虚拟机系统全系统在线迁移的方法、系统与装置
CN103246564B (zh) * 2013-05-17 2016-06-01 浙江大学 一种面向云数据中心的大规模虚拟机快速迁移决策方法
CN103309625B (zh) * 2013-05-29 2016-06-08 华为技术有限公司 一种基于自适应存储热迁移的方法和系统
CN103414769B (zh) * 2013-07-31 2017-03-01 华为技术有限公司 虚拟机热迁移的方法及物理机
CN103500146B (zh) * 2013-09-30 2016-04-27 北京邮电大学 虚拟机磁盘存储数据迁移方法和系统
CN108205506B (zh) * 2013-12-31 2021-11-19 华为技术有限公司 虚拟机热迁移的方法、虚拟机内存数据处理方法、服务器和虚拟机系统
CN103890728B (zh) 2013-12-31 2015-12-30 华为技术有限公司 虚拟机热迁移的方法和服务器
CN104239120B (zh) * 2014-08-28 2018-06-05 华为技术有限公司 一种虚拟机的状态信息同步的方法、装置及系统
CN104598298A (zh) * 2015-02-04 2015-05-06 上海交通大学 基于虚拟机当前工作性质以及任务负载的虚拟机调度算法
CN107735767B (zh) * 2015-06-26 2022-02-11 英特尔公司 用于虚拟机迁移的装置和方法
CN105893114A (zh) * 2016-04-05 2016-08-24 浪潮电子信息产业股份有限公司 一种虚拟机迁移的方法、目的宿主机和源宿主机
CN107766120B (zh) * 2016-08-23 2021-08-20 华为技术有限公司 一种虚拟机中对象信息的记录方法及相关设备
CN107168774B (zh) * 2017-06-14 2020-11-10 北京云联万维技术有限公司 一种基于本地存储的虚拟机迁移方法及系统
CN110688064A (zh) * 2019-09-05 2020-01-14 浪潮电子信息产业股份有限公司 一种虚拟磁盘迁移方法、装置、设备及可读存储介质
CN111580932B (zh) * 2020-05-12 2023-04-07 西安交通大学 一种虚拟机磁盘在线迁移去冗余方法
CN111737197A (zh) * 2020-06-30 2020-10-02 上海英方软件股份有限公司 一种实现不停机迁移业务系统的系统及方法
CN113485755B (zh) * 2021-06-30 2023-08-18 深圳市科力锐科技有限公司 设备驱动程序验证方法、装置、设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1564990A (zh) * 2001-04-25 2005-01-12 诺基亚有限公司 数据库数据的同步
CN1696902A (zh) * 2004-05-11 2005-11-16 国际商业机器公司 迁移虚拟机的系统、方法和程序
US7203944B1 (en) * 2003-07-09 2007-04-10 Veritas Operating Corporation Migrating virtual machines among computer systems to balance load caused by virtual machines

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1564990A (zh) * 2001-04-25 2005-01-12 诺基亚有限公司 数据库数据的同步
US7203944B1 (en) * 2003-07-09 2007-04-10 Veritas Operating Corporation Migrating virtual machines among computer systems to balance load caused by virtual machines
CN1696902A (zh) * 2004-05-11 2005-11-16 国际商业机器公司 迁移虚拟机的系统、方法和程序

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
A Virtual Machine Migration System Based on a CPUEmulator. Koichi Onoue,Yoshihiro Oyama.Second International Workshop on Virtualization Technology in Distributed Computing. 2006
A Virtual Machine Migration System Based on a CPUEmulator. Koichi Onoue,Yoshihiro Oyama.Second International Workshop on Virtualization Technology in Distributed Computing. 2006 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102681913A (zh) * 2011-12-21 2012-09-19 中兴通讯股份有限公司 一种虚拟机到虚拟机热迁移的方法及装置

Also Published As

Publication number Publication date
CN101101562A (zh) 2008-01-09

Similar Documents

Publication Publication Date Title
CN100489787C (zh) 一种虚拟机的外存在线迁移方法
US9996396B2 (en) Cross architecture virtual machine migration
Luo et al. Live and incremental whole-system migration of virtual machines using block-bitmap
US7383405B2 (en) Systems and methods for voluntary migration of a virtual machine between hosts with common storage connectivity
US9588787B2 (en) Runtime virtual process creation for load sharing
US10289684B2 (en) Live migration of virtual machine persistent data using mirrored input-output operations
US8607009B2 (en) Concurrent virtual machine snapshots and restore
US20160299774A1 (en) Techniques for Migrating a Virtual Machine Using Shared Storage
US8694828B2 (en) Using virtual machine cloning to create a backup virtual machine in a fault tolerant system
US8635395B2 (en) Method of suspending and resuming virtual machines
US9336132B1 (en) Method and system for implementing a distributed operations log
Hirofuchi et al. Enabling instantaneous relocation of virtual machines with a lightweight vmm extension
Stoyanov et al. Efficient live migration of linux containers
US10185581B2 (en) Method and system for taking checkpoints at varying intervals
CN102073462A (zh) 虚拟存储迁移方法、系统和虚拟机监控器
US20110107344A1 (en) Multi-core apparatus and load balancing method thereof
WO2012131507A1 (en) Running a plurality of instances of an application
US9471366B2 (en) Virtual machine disk image backup using block allocation area
Hou et al. Application-assisted live migration of virtual machines with java applications
GB2529204A (en) Suspending and resuming virtual machines
JP6028415B2 (ja) 仮想サーバ環境のデータ移行制御装置、方法、システム
US20210357339A1 (en) Efficient management of bus bandwidth for multiple drivers
Sagana et al. Performance enhancement in live migration for cloud computing environments
Lee et al. Optimizing back-and-forth live migration
Voron Virtualisation efficace d'architectures NUMA

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
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090520

Termination date: 20120710