一种虚拟机在线迁移方法、装置及系统与流程

文档序号:14676666发布日期:2018-06-12 21:35阅读:139来源:国知局
一种虚拟机在线迁移方法、装置及系统与流程

本发明涉及云计算和虚拟化技术领域,特别是涉及一种虚拟机在线迁移方法、装置及系统。



背景技术:

虚拟机在线迁移(Live Migration)技术是云计算及虚拟化领域的重要研究方向之一,该技术广泛应用于虚拟化数据中心的资源优化调度、可用性保障、动态负载均衡等方面。跨数据中心的虚拟机迁移,有助于在更大范围内实现数据中心资源池化,跨地域进行资源的调度,提高资源的利用率与云服务的质量。

实现跨数据中心的虚拟机在线迁移需要解决以下三个问题:

1)存储:不同数据中心之间往往没有共享的存储,所以跨数据中心的虚拟机迁移,首先要解决存储迁移,主要是虚拟机镜像迁移的问题。

2)网络:由于虚拟机跨数据中心迁移时,目的数据中心的IP、路由等一系列网络设置与源数据中心不同,如何在迁移中自动进行网络重配置或者网络状态迁移,保证服务和连接不中断,也是需要解决的问题。

3)内存状态:要实现虚拟机的在线迁移,需要将虚拟机的内存状态完全从源数据中心拷贝到目的数据中心,同时保持虚拟机的运行。较之数据中心内部,数据中心之间通信延迟较大,可用于迁移的数据传输速率较低,而内存数据变化较快。这就使得跨数据中心虚拟机在线迁移中需要占用大量用于内存状态拷贝的通信数据量和迁移时间,给实现虚拟机数据中心在线迁移带来了较大的难度。此外,考虑到跨数据中心迁移的场景中,往往需要将若干个虚拟机组成的虚拟集群作为一个整体进行迁移,更增加了在线迁移的难度。

目前,随着分布式存储和软件定义网络等技术的发展,上述前两个问题,已经得到了比较好的解决。但是对于第三个问题,仍然缺乏有效的方法,虽然数据中心间网络通信速率将越来越高,但是集群的规模也在迅速增长,所以要降低内存状态拷贝的通信数据量和迁移时间,不能单纯依赖网络速率的提高。因此,需要有一种有效的虚拟机跨数据中心在线迁移方法来解决虚拟机跨数据中心迁移场景下的内存数据拷贝的通信数据量和迁移时间大的问题。



技术实现要素:

本发明实施例所要解决的技术问题是提供一种虚拟机在线迁移方法、装置及系统,用以解决现有虚拟机跨数据中心迁移场景下的内存数据拷贝的通信数据量和迁移时间大的技术问题。

本发明通过以下技术方案解决上述技术问题:

本发明一方面提供一种虚拟机在线迁移方法,包括:

根据模板页面索引判断当前传输内存页面是否属于模板页面;

若所述当前传输内存页面属于模板页面,则将所述模板页面对应索引发送给目的数据中心;

若所述当前传输内存页面不属于模板页面,则将所述当前传输内存页面发送给目的数据中心。

进一步的,所述模板页面索引采用二叉树算法构建;

其中,二叉树中的元素E=(h,c,p)与所述模板页面一一对应,p为内存页面数据,h=SHA-1(p)为模板页面哈希值,c为所述内存页面在内存页面集合M中出现的次数;所述二叉树算法输出包含模板页面哈希值的数组H和包含模板页面数据的哈希表HT;

其中,所述内存页面通过保存多个虚拟机内存状态快照得到,m个所述内存页面形成所述内存页面集合M。

进一步的,所述根据模板页面索引判断当前传输内存页面是否属于模板页面包括:

计算当前传输内存页面p0的哈希值h0=SHA-1(p0);

若在所述数组H中查找到所述h0,则当前传输内存页面属于模板页面;

若在所述数组H中未查找到所述h0,则当前传输内存页面不属于模板页面。

进一步的,所述将所述模板页面对

应索引发送给目的数据中心包括:

将当前传输内存页面p0的哈希值h0发送给目的数据中心。

本发明另一方面提供一种虚拟机在线迁移方法,包括:

判断当前接收到源数据中心的数据是模板页面索引还是内存页面;

若接收到模板页面索引,则将所述模板页面索引对应的模板页面发送给目的节点;

若接收到内存页面,则将所述内存页面发送给目的节点。

进一步的,所述模板页面索引采用二叉树算法构建;

其中,二叉树中的元素E=(h,c,p)与所述模板页面一一对应,p为内存页面数据,h=SHA-1(p)为模板页面哈希值,c为所述内存页面在内存页面集合M中出现的次数;所述二叉树算法输出包含模板页面哈希值的数组H和包含模板页面数据的哈希表HT;

其中,所述内存页面通过保存多个虚拟机内存状态快照得到,m个所述内存页面形成所述内存页面集合M。

进一步的,所述模板页面索引是模板页面哈希值;

所述若接收到模板页面索引,则将所述模板页面索引对应的模板页面发送给目的节点包括:

在所述哈希表HT中查找与接收到的模板页面哈希值对应的模板页面;

将所述对应模板页面发送给目的节点。

本发明另一方面提供第一虚拟机在线迁移装置,包括:

第一判断模块,用于根据模板页面索引判断当前传输内存页面是否属于模板页面;

第一发送模块,用于若所述当前传输内存页面属于模板页面,则将所述模板页面对应索引发送给目的数据中心;

第二发送模块,用于若所述当前传输内存页面不属于模板页面,则将所述当前传输内存页面发送给目的数据中心。

本法另一方面提供第二虚拟机在线迁移装置,包括:

第二判断模块,用于判断当前接收到源数据中心的数据是模板页面索引还是内存页面;

第三发送模块,用于若接收到模板页面索引,则将所述模板页面索引对应的模板页面发送给目的节点;

第四发送模块,用于若接收到内存页面,则将所述内存页面发送给目的节点。

本发明另一方面提供一种虚拟机在线迁移系统,包括上述第一虚拟机迁移装置和上述第二虚拟机迁移装置。

与现有技术相比,本发明实施例提供的虚拟机在线迁移方法、装置及系统,基于内存页面的统计结果选取模板页面,并建立模板页面索引,在数据迁移过程中,对于模板页面只需要传输模板页面索引,在目的节点再根据网络模板索引恢复内存页面数据,从而降低了跨数据中心虚拟机在线迁移中用于内存状态拷贝的通信数据量和迁移时间。

附图说明

图1示出本发明实施例一提供的一种虚拟机在线迁移方法流程图;

图2示出本发明实施例二提供的动态资源调度系统结构示意图;

图3示出本发明实施例二提供的一种虚拟机在线迁移方法流程图;

图4示出本发明实施例三提供的一种虚拟机在线迁移装置结构示意图;

图5示出本发明实施例四提供的一种虚拟机在线迁移装置结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面对本发明中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下,所获得的所有其他实施例,都属于本发明保护的范围。

实施例一

本发明实施例一提供一种虚拟机在线迁移方法,如图1所示,该方法包括:

S101、根据模板页面索引判断当前传输内存页面是否属于模板页面;

其中,模板页面指数据中心虚拟机安装常用软件对应的相同内存页面。常用软件包括操作系统、中间件、框架和开源软件。由于这些常用软件的种类有限,其对应内存页面数据一般比较稳定;所以即便是不同数据中心的虚拟机之间也存在大量相同的内存页面。这些相同的内存页面组成本发明所述的模板页面。

本发明实施例中,模板页面索引是系统预先设置的。模板页面索引可以采用二叉树算法构建;

其中,二叉树中的元素E=(h,c,p)与所述模板页面一一对应,p为内存页面数据,h=SHA-1(p)为模板页面哈希值,c为所述内存页面在内存页面集合M中出现的次数;所述二叉树算法输出包含模板页面哈希值的数组H和包含模板页面数据的哈希表HT;

其中,所述内存页面通过保存多个虚拟机内存状态快照得到,m个所述内存页面形成所述内存页面集合M。

示例性的,本步骤包括:

计算当前传输内存页面p0的哈希值h0=SHA-1(p0);

若在所述数组H中查找到所述h0,则当前传输内存页面属于模板页面;

若在所述数组H中未查找到所述h0,则当前传输内存页面不属于模板页面。

S102、若所述当前传输内存页面属于模板页面,则将所述模板页面对应索引发送给目的数据中心;

对应于步骤S101,本步骤中若所述当前传输内存页面属于模板页面,则将当前传输内存页面p0的哈希值h0发送给目的数据中心。

S103、若所述当前传输内存页面不属于模板页面,则将所述当前传输内存页面发送给目的数据中心。

本发明实施例提供的虚拟机在线迁移方法,通过在操作系统内核模块及用户虚拟空间之间建立预设接收模式,使得用户虚拟空间收发数据文件时直接与网卡进行通信,数据文件不必经过操作系统内核进行处理,提高了数据文件的处理能力,此外,通过数据文件的用户属性和预设匹配规则对数据文件进行过滤,有效的降低了重定向服务器的CPU性能消耗。

实施例二

本发明实施例二提供虚拟机在线迁移方法应用于图2所示的动态资源调度系统中。如图2所示,该动态资源调度系统包括源数据中心和目标数据中心。其中,源数据中心包括源节点和第一迁移代理,目标数据中心包括目标节点和第二迁移代理。第一迁移代理和第二迁移代理主要实现以下三项功能:1)将模板页面及模板页面索引数据载入内存并负责维护;2)与本数据中心的虚拟机监视器(HyperVisor)进行通信;3)与对方数据中心的迁移代理进行通信。

如图3所示,本发明实施例二提供虚拟机在线迁移方法包括:

S301、建立模板页面索引。

其中,模板页面指数据中心虚拟机安装常用软件对应的相同内存页面。常用软件包括操作系统、中间件、框架和开源软件。由于这些常用软件的种类有限,其对应内存页面数据一般比较稳定;所以即便是不同数据中心的虚拟机之间也存在大量相同的内存页面。这些相同的内存页面组成本发明所述的模板页面。

本步骤具体包括:

S3011、选取内存页面。

具体的,从数据中心中随机选取若干台虚拟机,对其内存状态保存快照,得到m个内存页面,这m个内存页面形成内存页面集合记作M。

S3012、从所述内存页面的统计结果中选取模板页面,并构建模板页面索引。

其中,该模板页面索引采用二叉树算法来构建,二叉树中的元素也模板页面一一对应。二叉树中的元素用三元组E=(h,c,p)表示,其中p为内存页面的数据,h=SHA-1(p),c为该内存页面在内存页面集合M中出现的次数,所述二叉树算法输出数组H和哈希表HT,数组H包含模板页面哈希值,按从小到大顺序排列;哈希表HT包含模板页面数据,其元素按照哈希值从小到大排序。

S3013、将包含模板页面哈希值的数组H发送到源数据中心,将包含模板页面数据的哈希表HT保存在目的数据中心。

S302、在源数据中心和目的数据中心分别部署第一迁移代理和第二迁移代理。

第一迁移代理和第二迁移代理主要实现以下三项功能:1)将模板页面及模板页面索引数据载入内存并负责维护;2)与本数据中心的虚拟机监视器(HyperVisor)进行通信;3)与对方数据中心的迁移代理进行通信。

S303、源节点通过第一迁移代理与目的节点进行协商,建立连接并开始迁移虚拟机。

S304、源节点向第一迁移代理传输当前内存页面p0。

S305、第一迁移代理根据模板页面索引判断当前传输内存页面p0是否属于模板页面。

具体的,第一迁移代理计算当前传输内存页面p0的哈希值h0=SHA-1(p0),并在数组H中查找h0,以确定当前传输内存页面p0是否与某一模板页面tp相同。

S306、若所述当前传输内存页面p0属于模板页面,则第一迁移代理将所述模板页面对应索引发送给目的数据中心;

若当前传输内存页面p0的哈希值h0∈H,即在所述数组H中查找到所述h0,当前传输内存页面p0属于模板页面;则将所述模板页面对应索引发送给目的数据中心;

S307、若所述当前传输内存页面p0不属于模板页面,则第一迁移代理将所述当前传输内存页面p0发送给目的数据中心。

若当前传输内存页面p0的哈希值即在所述数组H中未查找到所述h0,当前传输内存页面p0不属于模板页面;则将所述当前传输内存页面p0发送给目的数据中心。

S308、第二迁移代理判断当前接收到源数据中心的数据是模板页面索引还是内存页面。

具体的,当目的数据中心的第二迁移代理接收到第一迁移代理发送的数据以后,如果发现接收到的是模板页面p的哈希值h,则在所述哈希表HT中查找与接收到的模板页面p的哈希值h对应的模板页面;即在哈希表HT中找到项F(th,tp),其中th=h,tp即为哈希值h对应的模板页面。

S309、若接收到模板页面索引,则将所述模板页面索引对应的模板页面发送给目的节点。

S310、若接收到内存页面,则将所述内存页面发送给目的节点。

S311、迁移结束,停止源节点上虚拟机的运行,开始在目的节点上运行虚拟机,并断开连接。

实施例三

本发明实施例三提供一种虚拟机在线迁移装置4,如图4所示,该装置4包括:

第一判断模块41,用于根据模板页面索引判断当前传输内存页面是否属于模板页面;

所述模板页面索引采用二叉树算法构建;

其中,二叉树中的元素E=(h,c,p)与所述模板页面一一对应,p为内存页面数据,h=SHA-1(p)为模板页面哈希值,c为所述内存页面在内存页面集合M中出现的次数;所述二叉树算法输出包含模板页面哈希值的数组H和包含模板页面数据的哈希表HT;

其中,所述内存页面通过保存多个虚拟机内存状态快照得到,m个所述内存页面形成所述内存页面集合M。

第一判断模块41具体包括:

计算模块,用于计算当前传输内存页面p0的哈希值h0=SHA-1(p0);

查找模块,用于在所述数组H中查找到所述h0;

确定模块,用于若在所述数组H中查找到所述h0,则当前传输内存页面属于模板页面;若在所述数组H中未查找到所述h0,则当前传输内存页面不属于模板页面。

第一发送模块42,用于若所述当前传输内存页面属于模板页面,则将所述模板页面对应索引发送给目的数据中心;

第二发送模块43,用于若所述当前传输内存页面不属于模板页面,则将所述当前传输内存页面发送给目的数据中心。

实施例四

本发明实施例四提供一种虚拟机在线迁移装置5,如图5所示,该装置5包括:

第二判断模块51,用于判断当前接收到源数据中心的数据是模板页面索引还是内存页面;

所述模板页面索引采用二叉树算法构建;

其中,二叉树中的元素E=(h,c,p)与所述模板页面一一对应,p为内存页面数据,h=SHA-1(p)为模板页面哈希值,c为所述内存页面在内存页面集合M中出现的次数;所述二叉树算法输出包含模板页面哈希值的数组H和包含模板页面数据的哈希表HT;

其中,所述内存页面通过保存多个虚拟机内存状态快照得到,m个所述内存页面形成所述内存页面集合M。

第三发送模块52,用于若接收到模板页面索引,则将所述模板页面索引对应的模板页面发送给目的节点;

第四发送模块53,用于若接收到内存页面,则将所述内存页面发送给目的节点。

实施例六

本发明实施例六提供一种虚拟机在线迁移系统,包括实施例四所述的虚拟机在线迁移装置和实施例五所述的虚拟机在线迁移装置。

本领域技术人员可以理解,可以用计算机程序指令来实现这些结构图和/或框图和/或流程图中的每个框以及这些结构图和/或框图和/或流程图中的框图的组合。可以将这些计算机程序指令提供给可编程数据处理方法的处理器来生成机器,从而通过可编程数据处理方法的处理器来执行的指令创建用于实现结构图和/或框图和/或流程图的框或多个框中指定的方法。

需要说明的是:本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。

以上对本发明所提供的一种常用问答对FAQ生成方法、装置及系统,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1