CN102137167B - 不间断运行的虚拟机迁移方法及装置 - Google Patents

不间断运行的虚拟机迁移方法及装置 Download PDF

Info

Publication number
CN102137167B
CN102137167B CN201110110228.2A CN201110110228A CN102137167B CN 102137167 B CN102137167 B CN 102137167B CN 201110110228 A CN201110110228 A CN 201110110228A CN 102137167 B CN102137167 B CN 102137167B
Authority
CN
China
Prior art keywords
copy
operation requests
equipment
node
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.)
Active
Application number
CN201110110228.2A
Other languages
English (en)
Other versions
CN102137167A (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.)
National University of Defense Technology
Original Assignee
National University of Defense Technology
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 National University of Defense Technology filed Critical National University of Defense Technology
Priority to CN201110110228.2A priority Critical patent/CN102137167B/zh
Publication of CN102137167A publication Critical patent/CN102137167A/zh
Application granted granted Critical
Publication of CN102137167B publication Critical patent/CN102137167B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明公开了一种不间断运行的虚拟机迁移方法及装置,方法实施步骤如下:1)将迁移节点和目标节点通过网络相连;2)缓存迁移节点中虚拟机的操作请求及设备的返回状态,冻结迁移节点的虚拟机;3)将迁移节点的虚拟机复制到目标节点,唤醒目标节点的新虚拟机;4)迁移节点将其缓存的操作请求及返回状态通过网络发送给目标节点;目标节点将收到的操作请求以及新虚拟机的操作请求向设备进行发布、将收到的返回状态以及从设备得到的返回状态发送给目标节点的新虚拟机。装置包括设于迁移节点和目标节点的特权域中并包括设备访问控制模块的设备代理单元。本发明具有迁移快速可靠、适用范围广、可用性高、容错能力强、通用性好的优点。

Description

不间断运行的虚拟机迁移方法及装置
技术领域
本发明涉及计算机的虚拟化技术领域,特指一种可保证不间断运行的虚拟机动态迁移方法及装置。
背景技术
随着计算机硬件、网络和体系结构的飞速发展,虚拟化技术已经渗透到各个领域,并呈现出新的发展趋势,从服务器虚拟化到存储虚拟化,甚至是应用虚拟化,虚拟化技术已经成为新的研究热点。与此同时,虚拟化技术在管理、应用和安全等方面也面临新的挑战。虚拟化技术在为我们节省了能耗的同时,也带来了一个主要的问题——单点设备故障,而虚拟机动态迁移是解决虚拟机设备单点设备故障问题的有效方案。这种方案为每个计算机节点(物理服务器)上创建多个虚拟机,当某个单点计算机节点出现故障或者用户启动迁移命令时,则该计算机节点上的部分或全部虚拟机需要选择相应的目标节点进行动态迁移,从而迁移到备用节点或者资源开销最少的正常节点上。
如图1所示,传统的迁移节点M1和目标节点M2之间必须共享一个分布式文件系统,例如采用NFS(网络文件系统),迁移节点M1和目标节点M2都可以直接访问NFS。虚拟机在迁移节点M1和目标节点M2之间进行动态迁移时,很多设备返回至虚拟机的返回状态被滞留在迁移节点M1的特权域中,因为虚拟机已经进行迁移到目标节点M2,这些返回状态不能按原路返回给虚拟机。尤其是当迁移节点M1的虚拟机被冻结时,虚拟机的设备驱动和设备之间通信渠道被挂起,用户对I/O等设备进行存取或其他的操作请求时,这些操作请求大部分被滞留在迁移节点M1的特权域中或者丢失。正因为如此,在虚拟机动态迁移过程中,虚拟机系统均有一个宕机时间,会造成虚拟机对外服务与设备访问的短暂中断,由此会造成虚拟机丢失一些操作请求以及返回状态,降低了虚拟机的可用性和虚拟机的持续可访问能力。在刀片服务器、数据中心等虚拟环境下,许多对高可用和服务不间断运行能力要求极高的关键服务器应用中,这种情况无疑将无法满足需求。
发明内容
本发明要解决的技术问题是:提供一种迁移快速可靠、适用范围广、可用性高、容错能力强、通用性好的不间断运行的虚拟机迁移方法及装置。
为了解决上述技术问题,本发明采用的技术方案为:
一种不间断运行的虚拟机迁移方法,其实施步骤如下:
1)将迁移节点和目标节点通过网络相连;
2)缓存迁移节点中虚拟机对设备的操作请求及设备返回至虚拟机的返回状态,冻结迁移节点的虚拟机;
3)将迁移节点的虚拟机复制到目标节点,唤醒目标节点的新虚拟机;
4)迁移节点将其缓存的操作请求及返回状态通过网络发送给目标节点;目标节点将收到的操作请求以及新虚拟机的操作请求向设备进行发布、将收到的返回状态以及从设备得到的返回状态发送给目标节点的新虚拟机。
作为本发明不间断运行的虚拟机迁移方法的进一步改进:
所述步骤4)中迁移节点将其缓存的操作请求及返回状态通过网络发送给目标节点后对目标节点的设备类型进行判断,如果目标节点的设备并非与迁移节点共享的设备时,则对目标节点是否存在与迁移节点的设备相同的设备进行判断,如果存在相同的设备,则将目标节点与迁移节点之间的设备进行状态同步;如果不存在相同的设备,则目标节点通过网络远程访问迁移节点的设备。
所述设备进行状态同步时,所述迁移节点等待并缓存所有已发布操作请求的返回状态,所述目标节点暂停向设备发送操作请求并缓存所有操作请求,当迁移节点缓存完成所有已发布操作请求的返回状态后,迁移节点将设备状态信息发送给目标节点,目标节点根据收到的设备状态信息对设备进行状态更新并恢复向设备发送操作请求。
所述步骤4)中目标节点在收到操作请求后立即生成一个具有存在期限的操作副本,所述目标节点在向设备发布任意操作请求前预先查找所有的操作副本,如果待执行操作请求不存在匹配的操作副本则向设备发布该操作请求,如果待执行操作请求存在匹配的操作副本则舍弃该操作请求。
所述生成操作副本时一并根据操作请求的基本信息生成特征值,所述查找所有操作副本时,首先根据待执行操作请求的基本信息生成特征值,然后将所有操作副本的特征值逐个和待执行操作请求的特征值进行比较,如果不存在相同特征值则判定待执行操作请求不存在匹配的操作副本;如果存在相同特征值则再根据操作请求的基本信息进行进一步查找匹配,如果最终找到匹配的操作副本则判定待执行操作请求存在匹配的操作副本,如果最终未找到匹配的操作副本则判定待执行操作请求不存在匹配的操作副本。
所述进一步查找匹配时先将所有操作副本的长度逐一和待执行操作请求的长度进行比较,如果所有操作副本比待执行操作请求短,则判定待执行操作请求不存在匹配的操作副本;如果所有操作副本比待执行操作请求长则针对所有操作副本逐一进行判定待执行操作请求是否为操作副本的子操作,当待执行操作请求为操作副本的子操作时判定待执行操作请求存在匹配的操作副本,否则判定待执行操作请求不存在匹配的操作副本;如果所有操作副本比待执行操作请求长度相同,则将每一项操作副本逐一与带执行操作请求针对每一项基本信息进行比较,如果存在每一项基本信息相同的操作副本则判断为存在匹配的操作副本。
所述操作请求的向量表达式为I=(w1,w2,……,wn),所述特征值的表达式为其中wn表示带有操作请求的一种基本信息的特征项,n表示操作请求所包含的基本信息种类的数量。
所述判定待执行操作请求是否为操作副本的子操作的详细步骤如下,
(1)将待执行操作请求作为模式串,将当前的操作副本作为正文串;
(2)将模式串和正文右对齐,从右至左在正文串中匹配模式串的每一个特征项;
(3)如果某一个特征项不匹配,则正文串右移一位生成新的正文串,若新的正文串小于模式串的长度则跳转执行步骤(5),否则继续返回执行步骤(3);
(4)如果模式串的每一特征项均匹配成功,则判定待执行操作请求为操作副本的子操作;
(5)如果模式串匹配失败,则判定待执行操作请求非操作副本的子操作。
此外,本发明还提供一种不间断运行的虚拟机迁移装置,它包括设于迁移节点和目标节点的特权域中的设备代理单元,所述设备代理单元包括用于缓存和收发操作请求和返回状态、与节点中虚拟机进行交互以及控制节点对设备访问状态的设备访问控制模块,所述迁移节点和目标节点中的设备访问控制模块通过网络相互连接,所述设备访问控制模块在虚拟机迁移期间首先冻结迁移节点的虚拟机、缓存迁移节点的操作请求和返回状态,将虚拟机复制到目标节点并激活后目标节点的新虚拟机,将缓存的操作请求和返回状态通过网络发送给目标节点,所述目标节点的设备访问控制模块将收到的操作请求以及新虚拟机的操作请求向设备进行发布、将收到的返回状态以及从设备得到的返回状态发送给目标节点的新虚拟机。
作为本发明不间断运行的虚拟机迁移装置的进一步改进:所述设备代理单元还包括用于提供设备远程访问的远程设备访问模块和用于在迁移过程中将目标节点与迁移节点之间非共享的相同设备进行状态同步的设备状态交换模块,所述远程设备访问模块、设备状态交换模块分别与设备访问控制模块相连,所述设备访问控制模块在目标节点没有与迁移节点相同的设备时通过远程设备访问模块访问迁移节点的设备,所述目标节点的设备访问控制模块在目标节点与迁移节点具有相同的设备时通过设备状态交换模块将目标节点与迁移节点之间的设备进行状态同步。
本发明不间断运行的虚拟机迁移方法具有下述优点:
1、本发明不间断运行的虚拟机迁移方法在冻结并复制迁移节点的原虚拟机后,立即唤醒目标节点的新虚拟机,而且迁移节点将其缓存的操作请求及返回状态通过网络发送给目标节点,可以在动态迁移期间持续处理操作请求并发送返回状态,使虚拟机在动态迁移期间持续、不中断的访问设备,提高了虚拟机设备的高可用性和持续运行能力,而且不依赖于网络文件系统,既可以适用于半虚拟软件环境,也可以适用于全虚拟软件环境,通用性好、适用范围广。
2、本发明进一步通过将目标节点与迁移节点之间的设备进行状态同步来提高虚拟机迁移过程中对设备访问的可用性,当目标节点的设备并非与迁移节点共享的设备时如果不存在相同的设备则目标节点通过网络远程访问迁移节点的设备,也可以在保证虚拟机持续运行的情况下,将设备从迁移节点动态交换到目标节点上,可以处理多种情况的设备,通用性好。
3、本发明进一步通过生成操作副本来防止操作请求被重复执行,有效地避免重复发布的错误,容错性能好,保证了虚拟机动态迁移后的可用性和持续运行能力。
4、本发明进一步在查找操作副本的时候,首先通过特征值进行筛选查找,其平均筛选过滤率为98%,可以有效过滤掉绝大部分操作请求,通过分为模糊匹配和精确匹配查找两个阶段,极大地提高了操作副本的查找效率,缩短了虚拟机的迁移时间,迁移快速可靠,增强了虚拟机的可用性。
5、本发明进一步在根据操作请求的基本信息进行进一步查找匹配时,针对不同的操作请求的长度进行不同的处理,可以有效提高精确查找匹配的效率和周期、增强虚拟机的可用性。
本发明的不间断运行的虚拟机迁移装置由于具有与上述本发明的不间断运行的虚拟机迁移方法向对应的结构,因此也具有上述本发明的不间断运行的虚拟机迁移方法相对应的优点。
附图说明
图1为现有技术的虚拟机迁移原理结构示意图;
图2为本发明实施例方法的原理框架示意图;
图3为本发明实施例装置的结构框架示意图;
图4为本发明实施例进行状态同步的流程示意图;
图5为本发明实施例进行查找匹配指令部分的流程示意图;
图6为本发明实施例对操作副本进行匹配待执行操作请求的流程示意图。
图例说明:1、设备访问控制模块;2、远程设备访问模块;3、设备状态交换模块。
具体实施方式
如图2、图3和图4所示,本发明实施例的不间断运行的虚拟机迁移方法的实施步骤如下:
1)将迁移节点和目标节点通过网络相连;
2)缓存迁移节点中虚拟机对设备的操作请求及设备返回至虚拟机的返回状态,冻结迁移节点的虚拟机;
3)将迁移节点的虚拟机复制到目标节点,唤醒目标节点的新虚拟机;
4)迁移节点将其缓存的操作请求及返回状态通过网络发送给目标节点;目标节点将收到的操作请求以及新虚拟机的操作请求向设备进行发布、将收到的返回状态以及从设备得到的返回状态发送给目标节点的新虚拟机。
步骤4)中迁移节点将其缓存的操作请求及返回状态通过网络发送给目标节点后对目标节点的设备类型进行判断,如果目标节点的设备并非与迁移节点共享的设备时,则对目标节点是否存在与迁移节点的设备相同的设备进行判断,如果存在相同设备,则将目标节点与迁移节点之间的设备进行状态同步;如果不存在相同设备,则目标节点通过网络远程访问迁移节点的设备。
设备进行状态同步时,所述迁移节点等待并缓存所有已发布操作请求的返回状态,所述目标节点暂停向设备发送操作请求并缓存所有操作请求,当迁移节点缓存完成所有已发布操作请求的返回状态后,迁移节点将设备状态信息发送给目标节点,目标节点根据收到的设备状态信息对设备进行状态更新并恢复向设备发送操作请求。
目标节点设备代理在处理未发布操作请求时,可能存在状态不一致性问题,从而可能导致同一个操作请求被重复发布,本实施例中通过操作请求的操作副本来防止重复发布操作请求,操作副本的存在有时间限制,从产生操作副本开始,只存在一段时间,当时间到期后则作副本会自动删除。本实施例中,步骤4)中目标节点在收到操作请求后立即生成一个具有存在期限的操作副本,所述目标节点在向设备发布任意操作请求前预先查找所有的操作副本,如果待执行操作请求不存在匹配的操作副本则向设备发布该操作请求,如果待执行操作请求存在匹配的操作副本则舍弃该操作请求。
如图5所示,生成操作副本时一并根据操作请求的基本信息生成特征值,所述查找所有操作副本时,首先根据待执行操作请求的基本信息生成特征值,然后将所有操作副本的特征值逐个和待执行操作请求的特征值进行比较,如果不存在相同特征值则判定待执行操作请求不存在匹配的操作副本;如果存在相同特征值则再根据操作请求的基本信息进行进一步查找匹配,如果最终找到匹配的操作副本则判定待执行操作请求存在匹配的操作副本,如果最终未找到匹配的操作副本则判定待执行操作请求不存在匹配的操作副本。本实施例在进一步查找匹配时先将所有操作副本的长度逐一和待执行操作请求的长度进行比较,如果所有操作副本比待执行操作请求短,则判定待执行操作请求不存在匹配的操作副本;如果所有操作副本比待执行操作请求长则针对所有操作副本逐一进行判定待执行操作请求是否为操作副本的子操作,当待执行操作请求为操作副本的子操作时判定待执行操作请求存在匹配的操作副本,否则判定待执行操作请求不存在匹配的操作副本;如果所有操作副本比待执行操作请求长度相同,则将每一项操作副本逐一与带执行操作请求针对每一项基本信息进行比较,如果存在每一项基本信息相同的操作副本则判断为存在匹配的操作副本。
通过特征值进行比较,可以过滤掉大部分未发布的操作请求,可以有效提高查找操作副本的效率。本实施例中,操作请求的向量表达式为I=(w1,w2,……,wn),特征值的表达式为其中wn表示带有操作请求的一种基本信息的特征项,n表示操作请求所包含的基本信息种类的数量。操作请求的基本信息包括读、写、地址或短语基本组成单位等信息,每一种基本信息作为一个特征项构成操作请求的一个向量空间,每个特征项表示操作请求向量表达式的一个维度,特征值的表达式通过对特征项异或求值法计算,本实施例中共采用64个特征项,特征值的长度为64个比特。特征值计算中,按所有特征项出现的概率相同计算,则向量中每个分量二进制“1”的个数为奇数和偶数的概率是相同的,即一个特征项的过滤率为50%。各个分量的特征项之间相互独立,64个特征项的过滤率为1-(1/2)32=99.99%。也就是说,需要第二次匹配的可疑待决I/O操作是总量的0.01%。实验结果表明,其平均过滤率为98%。
在实际应用中,有些操作请求长度相同,有些操作请求可能长度不同,其中的一个操作请求是另一个操作请求的子操作,而子操作也不应当被重复执行。因此本实施例中根据操作请求的基本信息进行进一步查找匹配时根据操作请求的长度进行区别对待。如果待执行操作请求比当前的操作副本短,则采用QBM(Quick Boyer-Moore)算法来比较待执行操作请求和当前的操作副本,QBM算法主要处理长度不同的操作请求比较;如果待执行操作请求和当前的操作副本长度相同,则采用SMT(State MainTain)算法来比较待执行操作请求和当前的操作副本,SMT算法主要处理长度相同的操作请求比较。本实施例中通过哈希表来加快查询操作。哈希表能根据需要存放任意形式的数据,比如配置文件的读取、内存分配中被分配内存的信息等。本实施例为了存储哈希表,相应地设计了哈希表对应的结构体,结构体包括key和value两个域,其中key域用于存放未发布请求指令的特征值,value域中存放实际存储未发布请求指令的内存地址。当需要从哈希表中提取一些数据时,可以通过强制类型转换把void类型转换成为我们实际需要的数据类型。当设备代理收到查询未发布请求指令时,首先执行语法检查,然后进入未发布请求指令的特征值队列,在哈希搜索中,设备代理可以通过调用相应的hash函数去直接访问与相应键值相对应的存储区。
如图6所示,判定待执行操作请求是否为操作副本的子操作时主体思想是采用模式串整体移动的方式进行匹配,其详细步骤如下:
(1)将待执行操作请求作为模式串,将当前的操作副本作为正文串;
(2)将模式串和正文右对齐,从右至左在正文串中匹配模式串的每一个特征项;
(3)如果某一个特征项不匹配,则正文串右移一位生成新的正文串,若新的正文串小于模式串的长度则跳转执行步骤(5),否则继续返回执行步骤(3);
(4)如果模式串的每一特征项均匹配成功,则判定待执行操作请求为操作副本的子操作;
(5)如果模式串匹配失败,则判定待执行操作请求非操作副本的子操作。
图6中,T代表正文串,P代表模式串,i代表正文串当前扫描位置,j代表模式串当前扫描位置,T[i]代表正文串当前位置值,P[j]代表模式串当前位置值,l代表正文串长度,m代表模式串长度。
如图3所示,本发明实施例的不间断运行的虚拟机迁移装置包括设于迁移节点和目标节点的特权域中的设备代理单元,设备代理单元包括用于缓存和收发操作请求和返回状态、与节点中虚拟机进行交互以及控制节点对设备访问状态的设备访问控制模块1,迁移节点和目标节点中的设备访问控制模块1通过网络相互连接,设备访问控制模块1在虚拟机迁移期间首先冻结迁移节点的虚拟机、缓存迁移节点的操作请求和返回状态,将虚拟机复制到目标节点并激活后目标节点的新虚拟机,将缓存的操作请求和返回状态通过网络发送给目标节点,目标节点的设备访问控制模块1将收到的操作请求以及新虚拟机的操作请求向设备进行发布、将收到的返回状态以及从设备得到的返回状态发送给目标节点的新虚拟机。
本实施例中,设备代理单元还包括用于提供设备远程访问的远程设备访问模块2和用于在迁移过程中将目标节点与迁移节点之间非共享的相同设备进行状态同步的设备状态交换模块3,远程设备访问模块2、设备状态交换模块3分别与设备访问控制模块1相连,设备访问控制模块1在目标节点没有与迁移节点相同的设备时通过远程设备访问模块2访问迁移节点的设备,目标节点的设备访问控制模块1在目标节点与迁移节点具有相同的设备时通过设备状态交换模块3将目标节点与迁移节点之间的设备进行状态同步。
如图4所示,本实施例中设备代理单元的工作过程如下:
1、迁移节点运行本地的设备代理单元,并请求启动目标节点的设备代理单元;
2、两个节点的设备代理单元都成功启动后,迁移节点开始进行迁移。
2.1、迁移节点的设备访问控制模块1冻结迁移节点的虚拟机,拷贝冻结虚拟机到目标节点上;
2.2、迁移节点的设备访问控制模块1缓存虚拟机未发布的操作请求;
2.3、迁移节点的设备访问控制模块1缓存设备的返回状态;
3、目标节点的设备访问控制模块1唤醒目标节点的新虚拟机,完成虚拟机的硬件迁移;
4、迁移节点的设备访问控制模块1将缓存的操作请求和返回状态转发给目标节点的设备代理单元;
5、针对目标节点的设备请求,迁移节点的设备访问控制模块1判断设备是否为与迁移节点共享的设备,如果是则转入执行步骤6;如果不是共享的设备,则判断目标节点是否有相同设备,如果存在相同的设备,则设备访问控制模块1通过设备状态交换模块3将目标节点与迁移节点之间的设备进行状态同步;如果不存在相同的设备,则目标节点的设备访问控制模块1通过远程设备访问模块12迁移节点的设备。目标节点的设备访问控制模块1通过远程设备访问模块12迁移节点的设备时,目标节点的设备代理单元把迁移后的操作请求通过设备访问控制模块1转发给迁移节点的设备代理单元,由迁移节点将操作请求发布给迁移节点的设备;迁移节点的设备访问控制模块1将设备的返回结果信息按原路返回给目标节点的设备访问控制模块1,再由目标节点的设备访问控制模块1发送给目标节点的虚拟机。
6、退出;
本实施例中,设备状态交换模块3的工作过程如下:
1、目标节点的设备访问控制模块1缓存从设备驱动发送给设备的所有操作请求,暂停向设备发送操作请求,迁移节点的设备访问控制模块1等待已发布操作请求的所有返回状态;
2、当迁移节点的所有已发布操作请求的返回状态完成后,迁移节点的设备进入静止状态,即没有新的操作请求发布到设备上,也没有返回状态输出,迁移节点的设备访问控制模块1缓冲旧设备在静止期间所有设备状态;
3、更新目标节点设备状态,使迁移节点、目标节点设备状态同步;
4、迁移节点的返回状态将缓冲的操作请求转发给目标节点设备代理,再由其转发到目标节点的设备,促使虚拟机访问新设备;
5、迁移节点的设备访问控制模块1中断与设备的连接,完成设备的重定向;
6、退出。
本实施例基于Xen半虚拟化软件实现,实验结果表明本发明的方法及装置确实在虚拟机迁移期间保证了设备的I/O不间断服务,可用性好。除Xen半虚拟化软件以外,本发明同样也是用于其他的半虚拟化软件环境以及全虚拟化软件环境。在实际应用过程中,可以在每一个计算机节点上设置设备代理单元,如果其中某个计算机节点由于发生节点故障或者因为其他原因需要发生迁移,则将该计算机节点作为迁移节点,而虚拟机被复制到的新计算机节点则为目标节点。
以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本发明所属技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (5)

1.一种不间断运行的虚拟机迁移方法,其特征在于其实施步骤如下:
1)将迁移节点和目标节点通过网络相连;
2)缓存迁移节点中虚拟机对设备的操作请求及设备返回至虚拟机的返回状态,冻结迁移节点的虚拟机;
3)将迁移节点的虚拟机复制到目标节点,唤醒目标节点的新虚拟机;
4)迁移节点将其缓存的操作请求及返回状态通过网络发送给目标节点;目标节点将收到的操作请求以及新虚拟机的操作请求向设备进行发布、将收到的返回状态以及从设备得到的返回状态发送给目标节点的新虚拟机;所述迁移节点将其缓存的操作请求及返回状态通过网络发送给目标节点后对目标节点的设备类型进行判断,如果目标节点的设备并非与迁移节点共享的设备时,则对目标节点是否存在与迁移节点的设备相同的设备进行判断,如果存在相同设备,则将目标节点与迁移节点之间的设备进行状态同步;如果不存在相同设备,则目标节点通过网络远程访问迁移节点的设备;所述设备进行状态同步时,所述迁移节点等待并缓存所有已发布操作请求的返回状态,所述目标节点暂停向设备发送操作请求并缓存所有操作请求,当迁移节点缓存完成所有已发布操作请求的返回状态后,迁移节点将设备状态信息发送给目标节点,目标节点根据收到的设备状态信息对设备进行状态更新并恢复向设备发送操作请求;所述目标节点在收到操作请求后立即生成一个具有存在期限的操作副本,所述目标节点在向设备发布任意操作请求前预先查找所有的操作副本,如果待执行操作请求不存在匹配的操作副本则向设备发布该操作请求,如果待执行操作请求存在匹配的操作副本则舍弃该操作请求;所述生成操作副本时一并根据操作请求的基本信息生成特征值,所述查找所有操作副本时,首先根据待执行操作请求的基本信息生成特征值,然后将所有操作副本的特征值逐个和待执行操作请求的特征值进行比较,如果不存在相同特征值则判定待执行操作请求不存在匹配的操作副本;如果存在相同特征值则再根据操作请求的基本信息进行进一步查找匹配,如果最终找到匹配的操作副本则判定待执行操作请求存在匹配的操作副本,如果最终未找到匹配的操作副本则判定待执行操作请求不存在匹配的操作副本;所述进一步查找匹配时先将所有操作副本的长度逐一和待执行操作请求的长度进行比较,如果所有操作副本比待执行操作请求短,则判定待执行操作请求不存在匹配的操作副本;如果所有操作副本比待执行操作请求长则针对所有操作副本逐一进行判定待执行操作请求是否为操作副本的子操作,当待执行操作请求为操作副本的子操作时判定待执行操作请求存在匹配的操作副本,否则判定待执行操作请求不存在匹配的操作副本;如果所有操作副本比待执行操作请求长度相同,则将每一项操作副本逐一与带执行操作请求针对每一项基本信息进行比较,如果存在每一项基本信息相同的操作副本则判断为存在匹配的操作副本。
2.根据权利要求1所述的不间断运行的虚拟机迁移方法,其特征在于:所述操作请求的向量表达式为I=(w1,w2,……,wn),所述特征值的表达式为T=w1⊕w2⊕w3……⊕wn,其中wn表示带有操作请求的一种基本信息的特征项,n表示操作请求所包含的基本信息种类的数量。
3.根据权利要求2所述的不间断运行的虚拟机迁移方法,其特征在于所述判定待执行操作请求是否为操作副本的子操作的详细步骤如下:
(1)将待执行操作请求作为模式串,将当前的操作副本作为正文串;
(2)将模式串和正文串右对齐,从右至左在正文串中匹配模式串的每一个特征项;
(3)如果某一个特征项不匹配,则正文串右移一位生成新的正文串,若新的正文串小于模式串的长度则跳转执行步骤(5),否则继续返回执行步骤(3);
(4)如果模式串的每一特征项均匹配成功,则判定待执行操作请求为操作副本的子操作;
(5)如果模式串匹配失败,则判定待执行操作请求非操作副本的子操作。
4.一种不间断运行的虚拟机迁移装置,其特征在于包括:
网络连接模块,用于将迁移节点和目标节点通过网络相连;
操作请求及返回状态缓存模块,用于缓存迁移节点中虚拟机对设备的操作请求及设备返回至虚拟机的返回状态,冻结迁移节点的虚拟机;
节点复制模块,用于将迁移节点的虚拟机复制到目标节点,唤醒目标节点的新虚拟机;
请求状态发送模块,用于将迁移节点缓存的操作请求及返回状态通过网络发送给目标节点;
迁移执行模块,用于将目标节点收到的操作请求以及新虚拟机的操作请求向设备进行发布、将收到的返回状态以及从设备得到的返回状态发送给目标节点的新虚拟机;
所述请求状态发送模块包括设备类型判断模块,所述设备类型判断模块用于在迁移节点将其缓存的操作请求及返回状态通过网络发送给目标节点后对目标节点的设备类型进行判断,如果目标节点的设备并非与迁移节点共享的设备时,则对目标节点是否存在与迁移节点的设备相同的设备进行判断,如果存在相同设备,则将目标节点与迁移节点之间的设备进行状态同步;如果不存在相同设备,则目标节点通过网络远程访问迁移节点的设备;所述设备进行状态同步时,所述迁移节点等待并缓存所有已发布操作请求的返回状态,所述目标节点暂停向设备发送操作请求并缓存所有操作请求,当迁移节点缓存完成所有已发布操作请求的返回状态后,迁移节点将设备状态信息发送给目标节点,目标节点根据收到的设备状态信息对设备进行状态更新并恢复向设备发送操作请求。
所述迁移执行模块包括操作副本生成模块,所述操作副本生成模块用于在目标节点在收到操作请求后立即生成一个具有存在期限的操作副本,所述目标节点在向设备发布任意操作请求前预先查找所有的操作副本,如果待执行操作请求不存在匹配的操作副本则向设备发布该操作请求,如果待执行操作请求存在匹配的操作副本则舍弃该操作请求;所述操作副本生成模块生成操作副本时一并根据操作请求的基本信息生成特征值,所述查找所有操作副本时,首先根据待执行操作请求的基本信息生成特征值,然后将所有操作副本的特征值逐个和待执行操作请求的特征值进行比较,如果不存在相同特征值则判定待执行操作请求不存在匹配的操作副本;如果存在相同特征值则再根据操作请求的基本信息进行进一步查找匹配,如果最终找到匹配的操作副本则判定待执行操作请求存在匹配的操作副本,如果最终未找到匹配的操作副本则判定待执行操作请求不存在匹配的操作副本;所述进一步查找匹配时先将所有操作副本的长度逐一和待执行操作请求的长度进行比较,如果所有操作副本比待执行操作请求短,则判定待执行操作请求不存在匹配的操作副本;如果所有操作副本比待执行操作请求长则针对所有操作副本逐一进行判定待执行操作请求是否为操作副本的子操作,当待执行操作请求为操作副本的子操作时判定待执行操作请求存在匹配的操作副本,否则判定待执行操作请求不存在匹配的操作副本;如果所有操作副本比待执行操作请求长度相同,则将每一项操作副本逐一与带执行操作请求针对每一项基本信息进行比较,如果存在每一项基本信息相同的操作副本则判断为存在匹配的操作副本。
5.根据权利要求4所述的不间断运行的虚拟机迁移装置,其特征在于:所述操作请求及返回状态缓存模块缓存的操作请求的向量表达式为I=(w1,w2,……,wn),所述特征值的表达式为T=w1⊕w2⊕w3……⊕wn,其中wn表示带有操作请求的一种基本信息的特征项,n表示操作请求所包含的基本信息种类的数量。
CN201110110228.2A 2011-04-29 2011-04-29 不间断运行的虚拟机迁移方法及装置 Active CN102137167B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110110228.2A CN102137167B (zh) 2011-04-29 2011-04-29 不间断运行的虚拟机迁移方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110110228.2A CN102137167B (zh) 2011-04-29 2011-04-29 不间断运行的虚拟机迁移方法及装置

Publications (2)

Publication Number Publication Date
CN102137167A CN102137167A (zh) 2011-07-27
CN102137167B true CN102137167B (zh) 2014-01-08

Family

ID=44296820

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110110228.2A Active CN102137167B (zh) 2011-04-29 2011-04-29 不间断运行的虚拟机迁移方法及装置

Country Status (1)

Country Link
CN (1) CN102137167B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012109906A1 (zh) 2011-09-30 2012-08-23 华为技术有限公司 访问高速缓冲存储器的方法及非真实缓存代理
CN102984762B (zh) * 2012-12-12 2016-05-25 中国联合网络通信集团有限公司 Ims功能分配方法及装置
CN103607296B (zh) * 2013-11-01 2017-08-22 新华三技术有限公司 一种虚拟机故障处理方法和设备
CN104615485B (zh) * 2015-03-02 2017-07-14 中国人民解放军国防科学技术大学 一种虚拟机域间通信模式的动态透明切换方法
CN105956166B (zh) * 2016-05-19 2020-02-07 北京京东尚科信息技术有限公司 数据库读写方法和读写装置
CN111338806B (zh) * 2020-05-20 2020-09-04 腾讯科技(深圳)有限公司 一种业务控制方法及装置
CN115794470A (zh) * 2022-12-01 2023-03-14 北京首都在线科技股份有限公司 虚拟机的运行管理方法、装置、电子设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101101562A (zh) * 2007-07-10 2008-01-09 北京大学 一种虚拟机的外存在线迁移方法
CN101398770A (zh) * 2007-09-30 2009-04-01 赛门铁克公司 迁移一个或多个虚拟机的系统和方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8127296B2 (en) * 2007-09-06 2012-02-28 Dell Products L.P. Virtual machine migration between processors having VM migration registers controlled by firmware to modify the reporting of common processor feature sets to support the migration

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101101562A (zh) * 2007-07-10 2008-01-09 北京大学 一种虚拟机的外存在线迁移方法
CN101398770A (zh) * 2007-09-30 2009-04-01 赛门铁克公司 迁移一个或多个虚拟机的系统和方法

Also Published As

Publication number Publication date
CN102137167A (zh) 2011-07-27

Similar Documents

Publication Publication Date Title
CN102137167B (zh) 不间断运行的虚拟机迁移方法及装置
US9372726B2 (en) Gang migration of virtual machines using cluster-wide deduplication
CN101997823B (zh) 一种分布式文件系统及其数据访问方法
CN101989929B (zh) 容灾数据备份的方法及系统
CN102307206B (zh) 基于云存储的快速访问虚拟机镜像的缓存系统的缓存方法
Vaquero et al. xDGP: A dynamic graph processing system with adaptive partitioning
US20160205541A1 (en) Apparatus For End-User Transparent Utilization of Computational, Storage, and Network Capacity of Mobile Devices, and Associated Methods
Yang et al. AutoReplica: automatic data replica manager in distributed caching and data processing systems
CN103763155A (zh) 分布式云存储系统多服务心跳监测方法
CN105959151A (zh) 一种高可用的流式处理系统及方法
CN102521038A (zh) 基于分布式文件系统的虚拟机迁移方法和装置
CN105187512A (zh) 一种虚拟机集群负载均衡方法及系统
CN102164184A (zh) 云计算网络中计算机实体的接入和管理方法及云计算网络
CN106790713B (zh) 云计算环境下的跨数据中心虚拟机迁移方法
WO2012145963A1 (zh) 数据管理系统及方法
CN105187464A (zh) 一种分布式存储系统中的数据同步方法、装置及系统
CN104050276A (zh) 一种分布式数据库的缓存处理方法及系统
CN101986284A (zh) 一种虚拟机镜像文件的废弃空间动态回收系统
CN102833310A (zh) 一种基于虚拟化技术的工作流引擎集群系统
CN110784539A (zh) 一种基于云计算的数据管理系统及方法
WO2014135011A1 (zh) 数据库系统以及数据同步方法
CN103634411A (zh) 一种具有状态一致性的市场数据实时广播系统及方法
CN106446268A (zh) 一种数据库横向扩展系统及方法
CN104852814A (zh) 智能一体化应急系统及其应急方法
CN113238996A (zh) 基于dht的区块链数据归档方法、电子设备及存储介质

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
C53 Correction of patent for invention or patent application
CB03 Change of inventor or designer information

Inventor after: Liao Xiangke

Inventor after: Wu Qingbo

Inventor after: Dai Huadong

Inventor after: Yan Yuejin

Inventor after: Wang Jing

Inventor after: Li Zhiwei

Inventor after: Liu Xiaojian

Inventor after: Yi Xiaodong

Inventor after: Dong Pan

Inventor before: Wu Qingbo

Inventor before: Dai Huadong

Inventor before: Yan Yuejin

Inventor before: Wang Jing

Inventor before: Li Zhiwei

Inventor before: Liu Xiaojian

Inventor before: Yi Xiaodong

Inventor before: Dong Pan

COR Change of bibliographic data

Free format text: CORRECT: INVENTOR; FROM: WU QINGBO DAI HUADONG YAN YUEJIN WANG JING LI ZHIWEI LIU XIAOJIAN YI XIAODONG DONG PAN TO: LIAO XIANGKE WU QINGBO DAI HUADONG YAN YUEJIN WANG JING LI ZHIWEI LIU XIAOJIAN YI XIAODONG DONG PAN