基于分布式虚拟机管理器的分布式cache系统及其工作方法转让专利

申请号 : CN200910080186.5

文献号 : CN101510144B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王若倪李亚琼张玉放孙毓忠

申请人 : 中国科学院计算技术研究所

摘要 :

本发明涉及基于分布式虚拟机管理器的分布式cache系统及其工作方法。该系统包括:用于依据cache请求进行查询的虚拟机,分布式虚拟机管理器,本地的内存块,以及远程机器上的内存块;所述虚拟机,用于根据cache请求中的信息查询相应的内存块;如果该内存块是本地的内存块,所述虚拟机直接取出内存块的内容并返回给该cache请求;分布式虚拟机管理器,用于在所述相应的内存块是远程机器上的内存块时,将该远程机器上的内存块调回本地,并将该内存块的内容返回给该cache请求。本发明和以前DHT应用相比,应用层不用再维护复杂的网络协议,不用耗费大量的通信开销,不用再去考虑不同网络间的病毒传播问题,因而应用层会更加安全和可靠。

权利要求 :

1.一种基于分布式虚拟机管理器的分布式cache系统,其特征在于,包括用于依据cache请求进行查询的虚拟机,分布式虚拟机管理器,本地的内存块,以及远程机器上的内存块;

所述虚拟机,用于根据cache请求中的信息查询相应的内存块;如果该内存块是本地的内存块,所述虚拟机直接取出内存块的内容并返回给该cache请求;

分布式虚拟机管理器,用于在所述相应的内存块是远程机器上的内存块时,将该远程机器上的内存块调回本地,并将该内存块的内容返回给该cache请求;

所述虚拟机保存一个全局的cache请求索引,根据cache请求索引与虚拟地址空间之间的映射关系以及cache请求中的信息查询相应的虚拟地址空间,并根据虚拟地址空间与内存块之间的映射关系以及查询到的虚拟地址空间查询相应的内存块;

分布式虚拟机管理器,还用于在将远程机器上的内存块调回本地时,将符合预设条件的本地的内存块替换到远程主机,并改变虚拟地址空间与内存块之间的映射关系;

所述分布式虚拟机管理器调回和替换出内存块的数据通路同应用层的数据通路不同。

2.如权利要求1所述的基于分布式虚拟机管理器的分布式cache系统,其特征在于,所述cache请求中的信息为URL。

3.如权利要求1所述的基于分布式虚拟机管理器的分布式cache系统,其特征在于,cache请求索引与虚拟地址之间的映射关系保存在虚拟机上的元数据表中;虚拟地址空间与内存块之间的映射关系保存在分布式虚拟机管理器上的元数据表中。

4.一种基于分布式虚拟机管理器的分布式cache系统的工作方法,其特征在于,包括:步骤1,虚拟机根据cache请求中的信息查询相应的内存块;

步骤2,如果该内存块是本地的内存块,所述虚拟机直接取出内存块的内容并返回给该cache请求;如果该内存块是远程机器上的内存块,分布式虚拟机管理器将该远程机器上的内存块调回本地,并将该远程机器上的内存块的内容返回给该cache请求;

步骤1包括:

步骤101,所述虚拟机保存一个全局的cache请求索引;

步骤102,根据cache请求索引与虚拟地址空间之间的映射关系以及cache请求中的信息查询相应的虚拟地址空间;

步骤103,根据虚拟地址空间与内存块之间的映射关系以及查询到的虚拟地址空间查询相应的内存块;

步骤2中,在将远程机器上的内存块调回本地时,分布式虚拟机管理器将符合预设条件的本地的内存块替换到远程主机,并改变虚拟地址空间与内存块之间的映射关系;

所述分布式虚拟机管理器调回和替换出内存块的数据通路同应用层的数据通路不同。

5.如权利要求4所述的基于分布式虚拟机管理器的分布式cache系统的工作方法,其特征在于,所述cache请求中的信息为URL。

6.如权利要求4所述的基于分布式虚拟机管理器的分布式cache系统的工作方法,其特征在于,步骤102中,cache请求索引与虚拟地址之间的映射关系保存在虚拟机上的元数据表中;虚拟地址空间与内存块之间的映射关系保存在分布式虚拟机管理器上的元数据表中。

说明书 :

基于分布式虚拟机管理器的分布式cache系统及其工作方

技术领域

[0001] 本发明涉及分布式虚拟机管理器,尤其涉及基于分布式虚拟机管理器的分布式cache(高速缓冲存储器)系统及其工作方法。

背景技术

[0002] 随着网络技术的发展,单个机器上的内存已经越来越不能够满足请求的内存需求,特别是对cache而言,内存空间严重不足。在这种情况下,基于分布式哈希表(DHT)的cache策略成为了cache的主流,这样,更多的用户都可以访问存储于地理分布的站点上的大量信息。
[0003] DHT是从对等网络(Peer-to-Peer,简称P2P)的研究中引入的。 P2P技术把网络中不同的计算机连接在一起,并可以充分利用互联网和Web站点中任何地方的资源。P2P系统具有自治性、分布性和动态性,具有自组织、容错性好、可扩展性强等优点,但其存在的问题是:如何在没有集中管理机制的情况下实现系统的自组织和自管理?[0004] 在结构化P2P系统解决了这个问题,每个节点只存储特定的信息或特定信息的索引。 当用户需要在P2P系统中获取信息时,他们必须知道这些信息(或索引)可能存在于哪些节点中。 由于用户预先知道应该搜索哪些节点,避免了非结构化P2P系统中使用的泛洪式查找,因此提高了信息搜索的效率。
[0005] 但是,结构化P2P也引入了新的问题:
[0006] 1、既然信息是分布存储的,那么如何将信息分布存储在重叠网中的节点上?[0007] 2、由于节点动态的加入和离开重叠网,如何将拓扑的变更信息通知其它节点?[0008] 分布式哈希表(DHT)的引入基本解决了上述问题,因此自从DHT协议出现以后,结构化P2P的应用得到了快速的发展。目前已经有很多较为成熟的DHT协议被提出并且得到了应用。
[0009] DHT使用分布式哈希算法来解决结构化的分布式存储问题。其主要思想是:首先,每条文件索引被表示成一个(K,V)对,K称为关键字,可以是文件名(或文件的其他描述信息)的哈希值,V是实际存储文件的节点的IP地址(或节点的其他描述信息)。所有的文件索引条目(即所有的(K,V)对)组成一张大的文件索引哈希表,只要输入目标文件的K值,就可以从这张表中查出所有存储该文件的节点地址。 然后,再将上面的大文件哈希表分割成很多局部小块,按照特定的规则把这些小块的局部哈希表分布到系统中的所有参与节点上,使得每个节点负责维护其中的一块。 这样,节点查询文件时,只要把查询报文路由到相应的节点即可(该节点维护的哈希表分块中含有要查找的(K,V)对)。 这里面有个很重要的问题,就是节点要按照一定的规则来分割整体的哈希表,进而也就决定了节点要维护特定的邻居节点,以便路由能顺利进行。 这个规则因具体系统的不同而不同,CAN,Chord,Pastry和Tapestry都有自己的规则,也就呈现出不同的特性,有查找可确定性、简单性和分布性等优点,正成为国际上结构化P2P网络研究和应用的热点。
[0010] DHT的应用非常简洁——API简单到只有一项输入和一项输出:应用层将数据对象(文件、数据块或索引)通过哈希算法获得键值,将该键值提交给DHT后,返回结果就是键值所在节点的IP地址。
[0011] DHT的特征使得它被广泛地运用到了cache系统中,即将cache文件的标识(如文件路径等)通过哈希算法映射到对应的IP地址中,即构建从文件标识到IP地址的cache索引。
[0012] 当新的cache文件查询请求进入系统时,其文件查找步骤如下:
[0013] A、通过哈希算法获得键值;
[0014] B、将该键值提交给DHT,从中得到键值所在节点的IP地址。 如果文件在本地,则直接从本地读取文件;如果文件不在本地,则转入步骤C;
[0015] C、根据获得的IP地址,请求所在机器与文件所在机器通信,取回请求所需的文件至本地;
[0016] D、将文件返回给请求。
[0017] 这样,采用DHT的cache系统在节点失效、遭受攻击和突发性高负载面前都能表现出很好的健壮性;它具有良好的可扩展性,能以较低系统开销获得较大的系统规模。 但是,其中也存在一些问题:
[0018] 1、应用层需要到别的节点上去获取文件信息,这就需要按照分布式哈希表来与别的节点进行通信(很可能不止一跳),这就需要应用层维护复杂的网络协议,并带来大量的网络开销;
[0019] 2、不同的节点可能分布在不同的网络中,因此在信息传输过程中容易加速病毒的传播。

发明内容

[0020] 为了解决上述的技术问题,提供了基于分布式虚拟机管理器的分布式cache系统及其工作方法,其目的在于,解决现有基于DHT的分布式cache系统中应用层需维护复杂网络协议,以及通信过程中的病毒传播问题。
[0021] 本发明提供了一种基于分布式虚拟机管理器的分布式cache系统,包括用于依据cache请求进行查询的虚拟机,分布式虚拟机管理器,本地的内存块,以及远程机器上的内存块;
[0022] 所述虚拟机,用于根据cache请求中的信息查询相应的内存块;如果该内存块是本地的内存块,所述虚拟机直接取出内存块的内容并返回给该cache请求;
[0023] 分布式虚拟机管理器,用于在所述相应的内存块是远程机器上的内存块时,将该远程机器上的内存块调回本地,并将该内存块的内容返回给该cache请求。
[0024] 所述虚拟机保存一个全局的cache请求索引,根据cache请求索引与虚拟地址空间之间的映射关系以及cache请求中的信息查询相应的虚拟地址空间,并根据虚拟地址空间与内存块之间的映射关系以及查询到的虚拟地址空间查询相应的内存块。
[0025] 所述cache请求中的信息为URL。
[0026] cache请求中的信息与虚拟地址之间的映射关系保存在虚拟机上的元数据表中;虚拟地址空间与内存块之间的映射关系保存在分布式虚拟机管理器上的元数据表中。
[0027] 分布式虚拟机管理器,还用于在将远程机器上的内存块调回本地时,将符合预设条件的本地的内存块替换到远程主机,并改变虚拟地址空间与内存块之间的映射关系。
[0028] 本发明提供了一种基于分布式虚拟机管理器的分布式cache系统的工作方法,包括:
[0029] 步骤1,虚拟机根据cache请求中的信息查询相应的内存块;
[0030] 步骤2,如果该内存块是本地的内存块,所述虚拟机直接取出内存块的内容并返回给该cache请求;如果该内存块是远程机器上的内存块,分布式虚拟机管理器将该远程机器上的内存块调回本地,并将该远程机器上的内存块的内容返回给该cache请求。
[0031] 步骤1包括:
[0032] 步骤101,所述虚拟机保存一个全局的cache请求索引;
[0033] 步骤102,根据cache请求索引与虚拟地址空间之间的映射关系以及cache请求中的信息查询相应的虚拟地址空间;
[0034] 步骤103,根据虚拟地址空间与内存块之间的映射关系以及查询到的虚拟地址空间查询相应的内存块。
[0035] 所述cache请求中的信息为URL。
[0036] 步骤102中,cache请求中的信息与虚拟地址之间的映射关系保存在虚拟机上的元数据表中;虚拟地址空间与内存块之间的映射关系保存在分布式虚拟机管理器上的元数据表中。
[0037] 步骤2中,在将远程机器上的内存块调回本地时,分布式虚拟机管理器将符合预设条件的本地的内存块替换到远程主机,并改变虚拟地址空间与内存块之间的映射关系。
[0038] 本发明提供的基于分布式虚拟机管理器的分布式cache系统及方法,由于远程内存块的取回和调出完全由DVMM控制,且与应用层的数据通路不同,这个过程对应用层来说是完全透明的;无论所请求的内存块在本地还是远程,在应用层看来都是在本地进行的;因此应用层不用再维护复杂的网络协议,不用耗费大量的通信开销,不用再去考虑不同网络间的病毒传播问题,因而应用层会更加安全和可靠。 进一步地,本发明还采用元数据表,由DVMM构造了一个统一的全局地址空间,负责对全局的内存资源进行流动,用于cache的存储、查找和替换,从而进一步简化应用层的维护工作。

附图说明

[0039] 图1是基于分布式虚拟机管理器的分布式cache系统结构图;
[0040] 图2是基于分布式虚拟机管理器的分布式cache系统的工作方法。

具体实施方式

[0041] 下面结合附图,对本发明做进一步的详细描述。
[0042] DVMM(分布式虚拟机管理器:Distributed Virtual Machine Manager)是新型网络服务器的基础,提供分布资源如CPU、内存、磁盘、网卡等部件的虚拟化,建立统一的资源空间,创建和管理虚拟机,为服务器提供虚拟的服务节点——DVM(分布式虚拟机:Distributed Virtual Machine)。 从而实现计算资源在部件级的虚拟化,进而实现资源和能力在虚拟机间的流动、在服务器内的流动。 对于基于DVMM的cache系统而言,DVMM位于操作系统之下,硬件之上,提供统一的全局地址空间,负责对全局的内存资源进行流动,用于cache的存储、查找和替换。
[0043] 在一个系统中,有一个虚拟机专门负责cache的查询。 尽管内存还分布在系统中其它机器上,但是对该虚拟机的应用层而言,它看到的是本地的一个连续的大的内存块,这个内存块中包括了所有机器上内存的内容。
[0044] 这个虚拟机上有一个元数据表(metadata),元数据表中存在一个映射:是一个全局cache索引,将请求的信息(如URL,即统一资源定位符)映射到一个虚拟地址空间。DVMM中也存在一个元数据表,元数据表中也存在一个映射:是从虚拟地址空间到本地或者远程内存块的映射。
[0045] 若该内存块在本地,则直接取出内存块的内容并返回给请求;若该内存块在远程,则由DVMM负责将所请求的远程内存块调回本地,并将本地使用频率低的内存块替换到远程,改变虚拟地址空间与内存块的映射,并将所请求的内存块内容返回给请求。需要强调的是,DVMM替换本地和远程内存块的数据通路,和应用层的数据通路是不同的。
[0046] 对应用层而言,由于获得远程内存块的过程完全由DVMM完成,且数据通路不同,因此,这个过程对应用层来说是完全透明的。 无论所请求的内存块在本地还是远程,在应用层看来都是在本地进行的。
[0047] 图1为基于分布式虚拟机管理器的分布式cache系统结构图。
[0048] 如图1所示,图中有一个专门负责cache查询的虚拟机,该机器上有两个映射:一是一个全局cache索引,将请求的信息(如文件路径)映射到一个虚拟地址空间,二是从虚拟地址空间到本地或者远程内存块的映射。
[0049] DVMM位于OS之下,硬件之上。 其作用是:当应用层读取Cache时,若对应的内存块在远程,则DVMM负责将远程文件调度到本地,将本地的使用频率较低的内存块替换到远程,随后重新建立从虚拟地址空间到内存块的映射。 对于应用层来说,这个过程是完全透明的,不管是本地还是远程,就像是只有一级Cache,且都在本地一样。
[0050] 图中其它的远程机器上不能进行cache查询,它们只提供内存资源。
[0051] 当负责cache查询的机器收到一个cache请求时,如图2所示,其具体实施方式如下:
[0052] 步骤11,根据请求信息(如文件路径)查询cache索引,映射到虚拟地址空间;
[0053] 步骤12,查找虚拟地址空间到内存块的映射,找到对应的内存块;
[0054] 步骤13,判断所查找的内存块是否在本地,如果是则执行步骤14,否则执行步骤15;
[0055] 步骤14,将所请求的内容返回给请求;
[0056] 步骤15,DVMM到远程取回内存块到本地,同时选出本地使用频率不高的内存块,将其替换到取出内存块的远程机器;
[0057] 步骤16,改变以上内存块对应的从虚拟地址空间到内存块的映射;
[0058] 步骤17,将请求所查找的内容返回给请求。
[0059] 其中,DVMM取回和替换出文件的数据通路,与应用层的数据通路不同。 这样,对于应用层的cache查找请求而言,不论所查找的文件是在本地还是在远程,都像是在文件在本地一样,可以直接获得文件。也就是说,DVMM从远程取回文件的过程,对于应用层来说是完全透明的。
[0060] 本领域的技术人员在不脱离权利要求书确定的本发明的精神和范围的条件下,还可以对以上内容进行各种各样的修改。 因此本发明的范围并不仅限于以上的说明,而是由权利要求书的范围来确定的。