云计算系统中虚拟机镜像缓存的方法

文档序号:7891835阅读:204来源:国知局
专利名称:云计算系统中虚拟机镜像缓存的方法
技术领域
本发明涉及数据存储领域,具体涉及云计算系统中虚拟机镜像缓存的方法。
背景技术
云计算(Cloud Computing),是一种基于互联网的计算方式,数据的处理及存储均通过云端的服务器集群来完成,它通过虚拟化技术扩展了云端的计算能力,实现了共享软、硬件资源和信息,按需提供给计算机和其他设备,使各个设备发挥最大的效能。 基于虚拟机的云计算系统以统一管理的物理资源池为基础,利用虚拟化技术根据用户需求提供虚拟计算环境。在云计算系统中通常将系统文件和用户数据分开,其中,虚拟机镜像是指封装了整个操作系统的磁盘文件,虚拟机镜像副本是虚拟机运行时使用的镜像文件,类似于物理机器的系统磁盘文件。运行态的虚拟机称之为虚拟机实例,一份虚拟机镜像副本对应一个虚拟机实例。由于不同的虚拟机实例运行时,除了对镜像文件的读操作还包括对镜像文件的写操作,因此通常在基于某个镜像创建虚拟机实例时,会针对该镜像做一个副本,在该副本上运行虚拟机实例。当虚拟机关闭后,该副本将会被清除,用户数据不保存在镜像副本中,而是保存在存储服务器中。如图I所示,现有云计算系统的虚拟机管理平台中,虚拟机镜像缓存和副本管理通常采用如下两种方法进行
(I)、本地缓存方法。计算节点从共享存储设备下载虚拟机镜像到本地缓存,然后基于该镜像创建副本,之后再启动虚拟机实例。该方法的优点是由于虚拟机镜像已经缓存在本地,下次再启动该镜像时,可以直接基于本地缓存的虚拟机镜像创建虚拟机镜像副本,启动时间比较短;另外,因为虚拟机镜像副本保存在本地,虚拟机实例在运行过程中,数据交互直接在本地完成,不会产生网络流量。但是,这种方法也存在一些的缺点,主要是第一次启动时要将虚拟机镜像拷贝到本地,启动时间会比较长;另外本地存储资源有限,能够缓存的镜像数量较少,缓存命中率较低;还有,因为虚拟机实例运行在本地,无法完成实时动态迁移。(2)、共享存储缓存方法。虚拟机镜像副本直接创建在共享存储服务器中,当虚拟机关闭时再将该副本清除。该方法的优点是虚拟机镜像本身就保存在存储服务器中,当启动虚拟机实例时,并不需要将该镜像下载到计算节点,因此提高了虚拟机实例的启动速度;另外,因为虚拟机镜像副本缓存在存储服务器中,所以动态迁移时并不需要移动磁盘数据,只需要将内存信息和状态信息迁移到另外一台计算节点即可,完成实时动态迁移非常方便。但是,该方法也存在缺点,主要是在虚拟机实例运行的过程中,任何的数据读写都会导致网络流量,并且,因为存储服务器通常为数据中心内所有节点提供数据存储服务,若所有的虚拟机镜像副本都建立在共享存储服务器中,势必给共享存储服务器以及网络带来巨大压力;再有,共享存储服务器的单位使用价格通常也比本地服务器高很多,这种方式会消耗大量的共享存储服务器空间,经济性较差。
综上所述,现有云计算系统的虚拟机管理平台中,虚拟机镜像缓存和副本管理方式或者启动时间会较长,或者经济性较差,难以满足用户的需要
发明内容
本发明所要解决的技术问题是解决基于虚拟机的云计算系统,难以满足用户虚拟机实例启动快,同时使用费用低的问题。为了解决上述技术问题,本发明所采用的技术方案是提供一种云计算系统中虚拟机镜像缓存的方法,包括以下步骤
A10、将云计算系统网络中的所有计算节点划分为多个集群,划分原则为网络物理位置邻近的若干计算节点归为一个集群;
A20、将每个集群内所有计算节点的部分存储资源集中管理和调度构成一个分布式的共享缓存空间,用于缓存虚拟机镜像,供该集群内计算节点使用;
A30、当一个集群内的某一个计算节点作为请求节点需要运行某一个虚拟机实例时,将相应的虚拟机镜像下载到该集群中的共享缓存空间中,并在该共享缓存空间中创建相应的虚拟机镜像副本;当关闭该虚拟机实例时,在该共享缓存空间中删除相应的虚拟机镜像副本。上述方法中,在步骤A20中,根据集群内所有计算节点缓存的镜像信息和缓存空间大小,调配集群内各计算节点缓存的虚拟机镜像资源,使集群内的各镜像缓存共享,所述调配是指指定用于所述请求节点缓存虚拟机镜像及创建相应虚拟机镜像副本的计算节点。上述方法中,在步骤A30中,所述请求节点运行某一个虚拟机实例包括以下步骤 A301、所述请求节点启动某虚拟机实例时,向镜像缓存跟踪服务器发送虚拟机镜像副
本创建请求消息;
A302、镜像缓存跟踪服务器查找该请求节点所在的集群是否有某个计算节点已经缓存了该虚拟机镜像;
A303、若查找到缓存了该虚拟机镜像的计算节点,则转步骤A305,否则转步骤A304 ;A304、判断集群内是否存在有足够存储所述虚拟机镜像的计算节点,如果没有,则删除最近最久没有使用的虚拟机镜像文件,然后转步骤A305 ;否则,转步骤A305 ;
A305、由镜像缓存跟踪服务器选择由该集群内有足够缓存空间且负载最小的计算节点下载该虚拟机镜像,然后向该计算节点发送通知消息在其上创建该虚拟机镜像副本;
A306、把该虚拟机镜像副本以共享存储的方式共享给所述请求节点,所述请求节点挂载该虚拟机镜像副本后,基于该虚拟机镜像副本启动虚拟机。上述方法中,在步骤A301中,虚拟机镜像副本请求消息中携带该虚拟机镜像副本的ID ;在步骤A302中,镜像缓存跟踪服务器根据所述ID查找该请求节点所在集群内是否有哪个计算节点上缓存有与该ID匹配的虚拟机镜像。上述方法中,步骤A305包括以下步骤
A3051、所述通知消息中包含虚拟机镜像副本的ID和请求节点的IP地址;缓存有与所述ID匹配的虚拟机镜像的计算节点收到该通知消息后,创建一个虚拟机镜像副本;
A3052、将该虚拟机镜像副本通过NFS等文件共享协议共享给所述请求节点,并回复创建副本完成消息给镜像缓存跟踪服务器;A3053、镜像缓存跟踪服务器将镜像副本的路径返回给所述请求节点;
A3054、所述请求节点收到该镜像副本路径后,将其挂载到本地,然后基于该副本创建虚拟机实例。本发明,将共享的虚拟机镜像传输的流量尽量地限制在集群内部,减少了镜像传输给数据中心网络的带来的压力。因为镜像副本采用共享文件的方式挂载到计算节点,不需要下载镜像文件就可以启动实例,缩短了虚拟机的启动时间。另外当需要将虚拟机实例迁移到集群内的某个目标节点时,只需将该镜像副本共享并挂载到目标节点即可,不需要将镜像副本传输到目标机器上,进而可以有效地提高虚拟机的迁移速度。


图I现有采用本地缓存方式的云计算系统示意 图2采用本发明提供的方法的云计算系统示意 图3本发明中镜像缓存跟踪服务器查找虚拟机镜像缓存时命中的序列 图4本发明中镜像缓存跟踪服务器查找虚拟机镜像缓存时未命中的序列 图5本发明中集群内节点间虚拟机机镜像共享示意 图6本发明中请求节点运行某一个虚拟机实例的流程图。
具体实施例方式本发明提供了一种云计算系统中虚拟机镜像缓存的方法,将云计算系统网络中的所有计算节点划分为多个集群,通过集群内部虚拟机缓存镜像的共享,充分利用了计算节点的空闲磁盘资源,节约了硬件成本,并且缩短了虚拟机的启动时间。下面结合附图对本发明作出详细的说明。如图2所示,本发明提供的云计算系统中虚拟机镜像缓存的方法,包括以下步骤 A10、将云计算系统网络中的所有计算节点划分为多个集群,划分原则为网络物理位置
邻近的若干计算节点归为一个集群,本实施例仅以集群I和集群2两个集群示例,显然集群的数量可以更多。A20、将每个集群内所有计算节点的部分存储资源集中管理和调度构成一个分布式的共享缓存空间,用于缓存虚拟机镜像,供该集群内计算节点使用,所有的原始虚拟机镜像均存储在镜像存储服务器上。该步骤由镜像缓存跟踪服务器完成,镜像缓存跟踪服务器根据集群内所有计算节点缓存的镜像信息和缓存空间大小,调配集群内各计算节点缓存的虚拟机镜像资源,使集群内的各镜像缓存共享,所述调配是指指定用于请求节点缓存虚拟机镜像及创建相应虚拟机镜像副本的计算节点。A30、当一个集群内的某一个计算节点作为请求节点需要运行某一个虚拟机实例时,将相应的虚拟机镜像从镜像存储服务器上下载到该集群中的共享缓存空间中,并在该共享缓存空间中创建相应的虚拟机镜像副本;当关闭该虚拟机实例时,在该共享缓存空间中删除相应的虚拟机镜像副本。如图3、图4和图6所示,请求节点运行某一个虚拟机实例包括以下步骤
A301、计算节点启动某虚拟机实例时,向镜像缓存跟踪服务器发送虚拟机镜像副本创建请求消息,请求消息中携带该虚拟机镜像副本的ID ;
A302、镜像缓存跟踪服务器根据所述ID查找该请求节点所在集群内是否存在缓存有与该ID匹配的虚拟机镜像的计算节点;
A303、若查找到缓存了该虚拟机镜像的计算节点,则转步骤A305,否则转步骤A304 ;A304、判断集群内是否存在有足够存储所述虚拟机镜像的计算节点,如果没有,则删除最近最久没有使用的虚拟机镜像文件,释放足够的缓存空间,然后转步骤A305 ;否则,转步骤 A305 ;
A305、由镜像缓存跟踪服务器选择由该集群内有足够缓存空间且负载最小的计算节点下载该虚拟机镜像,然后向该计算节点发送通知消息在其上创建该虚拟机镜像副本;
A306、把该虚拟机镜像副本以共享存储的方式共享给发送虚拟机镜像副本请求消息的计算节点(请求节点),请求节点挂载该虚拟机镜像副本后,基于该虚拟机镜像副本启动虚拟机。步骤A305包括以下步骤
A3051、通知消息中包含虚拟机镜像副本的ID和请求节点的IP地址;缓存有与所述ID匹配的虚拟机镜像的计算节点(缓存节点)收到该通知消息后,创建一个虚拟机镜像副本;A3052、将该虚拟机镜像副本通过NFS等文件共享协议共享给请求节点,并回复创建副本完成消息给镜像缓存跟踪服务器;
A3053、镜像缓存跟踪服务器将镜像副本的路径返回给请求节点;
A3054、请求节点收到该镜像副本路径后,将其挂载到本地,然后基于该副本创建虚拟机实例。以下为本发明应用的一个具体实施例。如图5所示,每个计算节点上分别设有两个目录,镜像缓存目录用于缓存从存储服务器上下载的虚拟机镜像,镜像副本目录用于缓存为其他计算节点创建的虚拟机镜像副本。计算节点1、2和3上分别缓存了虚拟机镜像A、B、C。计算节点2上运行了一个基于镜像A的虚拟机实例,镜像A缓存在计算节点I上,节点I为节点2创建了一个虚拟机镜像A的副本2-1,计算节点2将该副本挂载到本地,便可以基于这个镜像副本启动虚拟机实例。同样节点I和3分别运行了基于镜像B的虚拟机实例,计算节点2上分别为节点I和3创建了虚拟机镜像B的副本1-1和3-1,并分别挂载到节点I和节点2上。副本编号x-y中X为使用该副本的计算节点编号,因为一个计算节点可以基于相同虚拟机镜像创建多个实例,因此通过I来区分运行在相同节点上的不同的副本。这种方式相比节点本地缓存,可以减少镜像缓存的数量,而且在启动虚拟机时,缓存镜像的节点在本地创建一个镜像副本,既能够保证启动时间,又不会产生大量的网络流量。系统采用网络磁盘挂载的方式供其他节点使用,当虚拟机实例运行时,对磁盘的IO读写会转变为网络流量,因为只在集群内部的节点之间共享缓存,所以网络流量会限制在集群内部且相对分散。但当某个节点创建的副本数量较多时,可能会造成单个节点的负载过重,影响服务效率。故应限制每个节点缓存的镜像数量和副本数量,针对某些热点的镜像应考虑通过增加缓存节点以分散压力。本发明不局限于上述最佳实施方式,任何人应该得知在本发明的启示下作出的结构变化,凡是与本发明具有相同或相近的技术方案,均落入本发明的保护范围之内 。
权利要求
1.云计算系统中虚拟机镜像缓存的方法,其特征在于,包括以下步骤 A10、将云计算系统网络中的所有计算节点划分为多个集群,划分原则为网络物理位置邻近的若干计算节点归为ー个集群; A20、将每个集群内所有计算节点的部分存储资源集中管理和调度构成ー个分布式的共享缓存空间,用于缓存虚拟机镜像,供该集群内计算节点使用; A30、当一个集群内的某ー个计算节点作为请求节点需要运行某一个虚拟机实例吋,将相应的虚拟机镜像下载到该集群中的共享缓存空间中,并在该共享缓存空间中创建相应的虚拟机镜像副本;当关闭该虚拟机实例时,在该共享缓存空间中删除相应的虚拟机镜像副本。
2.如权利要求I所述的云计算系统中虚拟机镜像缓存的方法,其特征在于,在步骤A20中,根据集群内所有计算节点缓存的镜像信息和缓存空间大小,调配集群内各计算节点缓存的虚拟机镜像资源,使集群内的各镜像缓存共享,所述调配是指指定用于所述请求节点缓存虚拟机镜像及创建相应虚拟机镜像副本的计算节点。
3.如权利要求I所述的云计算系统中虚拟机镜像缓存的方法,其特征在于,在步骤A30中,所述请求节点运行某一个虚拟机实例包括以下步骤 A301、所述请求节点启动某虚拟机实例时,向镜像缓存跟踪服务器发送虚拟机镜像副本创建请求消息; A302、镜像缓存跟踪服务器查找该请求节点所在的集群是否有某个计算节点已经缓存了该虚拟机镜像; A303、若查找到缓存了该虚拟机镜像的计算节点,则转步骤A305,否则转步骤A304 ;A304、判断集群内是否存在有足够存储所述虚拟机镜像的计算节点,如果没有,则删除最近最久没有使用的虚拟机镜像文件,然后转步骤A305 ;否则,转步骤A305 ; A305、由镜像缓存跟踪服务器选择由该集群内有足够缓存空间且负载最小的计算节点下载该虚拟机镜像,然后向该计算节点发送通知消息在其上创建该虚拟机镜像副本; A306、把该虚拟机镜像副本以共享存储的方式共享给所述请求节点,所述请求节点挂载该虚拟机镜像副本后,基于该虚拟机镜像副本启动虚拟机。
4.如权利要求I所述的云计算系统中虚拟机镜像缓存的方法,其特征在于, 在步骤A301中,虚拟机镜像副本请求消息中携带该虚拟机镜像副本的ID ; 在步骤A302中,镜像缓存跟踪服务器根据所述ID查找该请求节点所在集群内是否存在缓存有与该ID匹配的虚拟机镜像的计算节点。
5.如权利要求I所述的云计算系统中虚拟机镜像缓存的方法,其特征在于,步骤A305包括以下步骤 A3051、所述通知消息中包含虚拟机镜像副本的ID和请求节点的IP地址;缓存有与所述ID匹配的虚拟机镜像的计算节点收到该通知消息后,创建ー个虚拟机镜像副本; A3052、将该虚拟机镜像副本通过NFS等文件共享协议共享给所述请求节点,并回复创建副本完成消息给镜像缓存跟踪服务器; A3053、镜像缓存跟踪服务器将镜像副本的路径返回给所述请求节点; A3054、所述请求节点收到该镜像副本路径后,将其挂载到本地,然后基于该副本创建虚拟机实例。
全文摘要
本发明公开了一种云计算系统中虚拟机镜像缓存的方法,包括以下步骤A10、将云计算系统网络中的所有计算节点划分为多个集群;A20、在每个集群内分别设置用于供该集群内各计算节点存储相应虚拟机镜像的共享缓存;A30、当一个集群内的某一个计算节点需要运行某一个虚拟机实例时,将相应的虚拟机镜像下载到该集群中的共享缓存中,并在该共享缓存中创建相应的虚拟机镜像副本;当关闭该虚拟机实例时,在该共享缓存中删除相应的虚拟机镜像副本。本发明,将共享的虚拟机镜像传输的流量尽量地限制在集群内部,镜像副本采用共享文件的方式挂载到计算节点,不需要下载镜像文件就可以启动实例,缩短了虚拟机的启动时间,并且降低了费用。
文档编号H04L29/08GK102629941SQ20121007403
公开日2012年8月8日 申请日期2012年3月20日 优先权日2012年3月20日
发明者刘磊, 李伟, 桑梓勤, 秦伟, 邓超, 陈亮 申请人:武汉邮电科学研究院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1