分布式虚拟机图像管理的方法和系统的制作方法

文档序号:6552489阅读:187来源:国知局
分布式虚拟机图像管理的方法和系统的制作方法
【专利摘要】本发明提供了分布式虚拟机图像管理的方法和系统。本发明的实施例提供了在云计算管理中的分布式虚拟机(VM)图像管理的方法,该方法包括:在主计算机的存储器中执行的管理程序中从VM接收VM图像数据的请求;以及确定所请求的VM图像数据是否存在于主计算机的管理程序的本地缓存中或者存在于对等主机的管理程序的缓存中。该方法另外包括:仅当确定VM图像数据既不存在于主计算机的管理程序的本地缓存中也不存在于对等主机的管理程序的缓存中时,从云计算环境下的远程数据储存器中的种子图像检索所请求的VM图像数据。
【专利说明】分布式虚拟机图像管理的方法和系统

【技术领域】
[0001]本发明涉及虚拟化的领域,并且更具体地涉及虚拟化计算环境下的虚拟机(VM)图像检索。

【背景技术】
[0002]几十年来,计算既指应用程序又指支持平台。直到过去的二十世纪,主计算环境包括处理器芯、输入/输出、存储器和固定储存器的硬件设施,其组合支持操作系统,操作系统又同时支持单个应用程序的执行。处理器能力逐步以指数增长,高级型式的操作系统使得能够执行模拟多任务和实际多任务,以使得在同一个主计算环境下可以执行多个应用程序。
[0003]最初,应用程序自身含有除了核心目标文件和相关资源文件之外很少依赖的逻辑束。然而,由于计算集成到现代工业,所以应用程序变得与其他应用程序的存在相互依赖,以使得应用程序的要求环境不仅包括下层的操作系统和支持硬件平台,而且包括含有共同地称为中间件的应用服务器、数据库管理服务器、合作服务器以及通信逻辑的其他关键应用程序。然而,假定应用程序的复杂性和平台的互操作性,单个硬件平台中执行的应用程序的不同组合能够呈现不同程度的性能和稳定性。
[0004]作为一种技术的虚拟化意在将层插在硬件平台与操作系统和执行程序之间。从商业连续性和灾难恢复的角度出发,虚拟化提供环境可移植性(portability)的内在优势。具体地说,移动配置有多个不同应用程序的整个环境就是将虚拟机(VM)图像从支持硬件平台的移动到另一个的问题。此外,更大能力的计算环境能够支持多个不同VM图像的共存,所有这些VM图像同时保持VM图像之间的虚拟分离。因此,在同一硬件平台中,一个VM图像中的故障情况不危及其它共存的VM图像的整体性。
[0005]现有技术中已知为“管理程序(hypervisor) ”的VM监视器管理每个VM图像与由硬件平台提供的下层资源之间的交互。在这方面,裸机管理程序(bare metal hypervisor)直接在硬件平台上运行,非常像操作系统直接在硬件上运行。通过比较,主管理程序在主操作系统中运行。在任一情况下,管理程序能够支持不同VM图像的操作VM图像的数量仅受到保存VM图像的VM容器或者其硬件平台的处理资源限制。
[0006]注意到,虚拟化已经延伸到云计算环境。云计算指的是基于因特网的计算,从而根据需要将共享资源、硬件和信息提供给计算机和其他装置。云计算通常涉及动态可缩放的因特网供给和常规虚拟化资源,并且其是容易访问由因特网提供的远程计算站点的副产品和结果。注意到,在云计算环境中,大量VM实例的创建通常要求从“云”中的单个数据源重复地复制非常大量的数据。因此,关于单个数据源能够多快地供应数据而造成可能的瓶颈。此外,在单个数据源中大量VM图像的创建可能对单个网段产生不利影响,数据必须从单个数据源流过该单个网段。最后,在单个数据源中大量VM图像的创建可能表示因为磁盘故障、网络故障或者其他这种资源故障导致的单个故障点。


【发明内容】

[0007]本发明的实施例解决了现有技术在云计算环境下的VM图像管理上的缺陷,并且提供了在云计算管理中的分布式VM图像管理的新颖的并且非显而易见的方法、系统和计算机程序产品。在本发明的实施例中,在云计算环境下的分布式VM图像管理的方法包括:在主计算机的存储器中执行的管理程序中从VM接收VM图像数据的请求并且确定请求VM图像数据是否存在于主计算机的管理程序的本地缓存中或者存在于对等主机的管理程序的缓存中。该方法另外包括:仅当确定VM图像数据既不存在于主计算机的管理程序的本地缓存中也不存在于对等主机的管理程序的缓存中时,从云计算环境下的远程数据储存器中的种子图像检索所请求的VM图像数据。
[0008]在本发明的一个方面中,仅当确定VM图像数据不存在于主计算机的管理程序的本地缓存中而存在于对等主机的管理程序的缓存中时,从对等主机的管理程序的缓存中检索VM图像数据。此后,响应已经以阈值次数从对等主机的管理程序的缓存中预先检索到VM图像数据的确定,将从对等主机的管理程序的缓存检索到的VM图像数据缓存在本地缓存中。在该实施例的另一方面中,将从种子图像检索的VM图像数据缓存在本地缓存中,并且更新本地缓存的内容的描述符,以指示VM图像数据在本地缓存中的缓存。在本发明的又一方面中,确定所请求的VM图像数据是否存在于主计算机的管理程序的写时复制(COW)数据储存器中。这样,仅当确定VM图像数据既不存在于主计算机的管理程序的本地缓存中也不存在于对等主机的管理程序的缓存中而且不存在于COW数据储存器中时,从云计算环境下的远程数据储存器中的种子图像中检索所请求的VM图像数据。
[0009]在本发明的另一实施例中,虚拟化数据处理系统配置用于云计算环境下的分布式虚拟机(VM)图像管理。该系统包括:主计算机,包括存储器和至少一个处理器,并且配置用于在云计算环境下通信地耦合到不同对等主机。该系统还包括管理程序,在主计算机的存储器中执行并且管理不同VM。该系统又包括存储VM图像的不同部分的管理程序的本地缓存。最后,该系统包括耦合到管理程序的连发型(torrent type)客户机。该客户机包括程序代码,在存储器中执行时使得该程序代码通过确定所请求的VM图像数据是否存在于管理程序的本地缓存中或者任意不同对等主机的管理程序的缓存中,并且通过仅当确定VM图像数据既不存在于管理程序的本地缓存中又不在任意不同对等主机的管理程序的缓存中时从云计算环境下的远程数据储存器中的种子图像检索所请求的VM图像数据,来对管理程序中来自VM之一的VM图像数据的请求做出响应。
[0010]在下面的描述中,部分地阐述了本发明的附加方面,并且根据下面的描述,本发明的附加方面部分地显而易见,通过实施本发明,也可以得知本发明的附加方面。利用所附权利要求书中特别指出的单元和组合的方式可以实施并且实现本发明的各方面。应当明白,上面的一般描述和下面的详细描述仅是举例说明并且不限制要求保护的本发明。

【专利附图】

【附图说明】
[0011]附图示出了实施例,并且与本说明一起用于解释本技术的原理,附图包括在本说明书中并且构成本说明书的一部分。在此所示的实施例在当前是优选的,然而,应当明白,本发明并不局限于所示的确切布置和指令,其中:
[0012]图1是云计算环境下的分布式VM图像管理的过程的图解说明;
[0013]图2是配置用于云计算环境下的分布式VM图像管理的虚拟化数据处理系统的示意图;以及
[0014]图3是示出云计算环境下的分布式VM图像管理的过程的流程图。

【具体实施方式】
[0015]本发明的实施例提供云计算环境下的分布式VM图像管理。根据本发明实施例,在云计算环境下,可以由管理程序从远程布置的种子检索VM图像的一部分。可以将检索的VM图像缓存在管理程序的本地高速缓冲存储器中,并且对附近的其他管理程序广播本地缓存存储器的内容。此后,在由一个或者多个其他管理程序请求时,能够将缓存的VM图像传送到一个或者多个其他管理程序,代替一个或者多个管理程序从远程布置的种子中检索缓存的VM图像。
[0016]在进一步说明中,图1图解地示出云计算环境下的分布式VM图像管理的过程。如图1所示,可以将VM的种子图像120布置在远程数据源110中。一组对等主机130中的每个可以通过首先相应管理程序的本地缓存140中检索所请求的数据160 (如果可用),而应用相应的分布式VM图像管理逻辑150对来自VM图像种子120的数据160的请求做出响应。如果逻辑150确定数据160不存在于本地缓存140中,则可以参考缓存140中的对等缓存的内容的描述符170来确定是否能够从缓存140中的对等缓存中检索数据160。如果不,则可以直接从远程数据源110中的种子120检索所请求的数据160。这样,可以在云计算环境下关于不同对等主机130分布数据160,而不遭受可能的瓶颈,也没有任何单网段的过大负担、并且而不在对等主机130的给定对等主机130中变得受到单个故障点的影响。
[0017]在虚拟化数据处理系统中可以实现结合图1描述的处理。在又一说明中,图2示意性地示出配置用于云计算环境下的分布式VM图像管理的虚拟化数据处理系统。该系统可以包括主计算平台120,该主计算平台120包括存储VM的种子图像的数据储存器(store) 220。主计算平台210能够通信地耦合到不同对等主机240,每个对等主机240分别包括具有存储器和至少一个处理器的至少一个服务器。每个对等主机240都能够支持管理程序250的操作,管理程序250管理一个或者多个VM230,并且包括缓存280。可选地,能够在对等主机240的相应对等主机240的存储器中对于每个管理程序250提供COW数据储存器。
[0018]注意到,连发型客户机300可以直接或者通过一个或者多个VM230的方式耦合到管理程序。客户机300可以包括程序代码,当在对等主机240的相应对等主机240的存储器中执行时,该程序代码使得能够通过首先确定所请求的数据是否存在于主管理程序250的缓存280中而对来自VM230中的特定一个VM230的数据请求做出响应。当执行时,程序代码进一步使得能够通过利用公开的描述符确定对等主机240中的对等直接的管理程序250的缓存280是否含有所请求的数据,来对定位主管理程序250的缓存280中的所请求的数据的故障做出响应。
[0019]当进一步执行时,程序代码使得能够通过从存储种子图像的数据储存器220中检索所请求的数据,对既在主管理程序250的缓存280中由在对等主机240中的对等主机的管理程序250的缓存280中定位所请求的数据的故障做出响应。当进一步执行时,程序代码使得能够在从存储种子图像的数据储存器220中检索请求数据时,将所检索的数据放置到主管理程序250的缓存280中,更新缓存280的内容的描述符,并且对对等主机240公开更新的描述符。
[0020]在对连发型客户机300的操作所做的更进一步说明中,图3是示出云计算环境下的分布式VM图像管理的过程的流程图。在方框310开始,可以在管理程序中接收VM图像的数据的一个或者多个模块的请求,且在方框320,可以确定数据是否存在于管理程序的COW数据储存器中。在判定方框330,如果确定数据存在于管理程序的COW数据储存器中,则在方框340,管理程序可以将数据从COW数据储存器返回到请求VM,并且在方框310可以重复该过程。否则,该过程可以继续通过方框250。
[0021]在方框350,可以确定数据是否存在于管理程序的本地缓存。在判定方框360中,如果确定数据存在于管理程序的本地缓存中,则在方框340中,管理程序可以将数据从本地缓存返回到请求VM,并且在方框310重复该过程。否则,该过程继续通过方框370。在方框370,可以检验对等管理程序的本地缓存的描述符,以确定该数据是否存在于对等管理程序的本地缓存中。在判定方框380中,如果确定数据存在于对等管理程序的本地缓存中,则在方框390,可以从对等管理程序的本地缓存检索数据,并且将该数据返回到请求VM。否贝U,在方框410,可以继续该过程。
[0022]在方框410,对于已经确定不存在于对等管理程序的本地缓存中的数据,可以从远程服务器中的VM的种子图像检索数据。此后,在方框390,可以将所检索的数据返回到请求VM。在任一情况下,在方框400,在已经从对等管理程序的本地缓存以阈值次数检索数据时,或者从远程服务器中的VM的种子图像中以任意次数检索数据时,可以有条件地(contingent)缓存所检索的数据。此后,该过程返回到方框310。
[0023]所属【技术领域】的技术人员知道,本发明的各个方面可以实现为系统、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明的各个方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
[0024]可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是一但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPR0M或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0025]计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0026]计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括一但不限于——无线、有线、光缆、RF等等,或者上述的任意合适的组合。可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言,还包括常规的过程式程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络一包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0027]附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0028]还应当明白,流程图和/或者方框图中的每个方框以及流程图和/或者方框图中的方框的组合都可以由计算机程序指令实现。可以将这些计算机程序指令提供给通用计算机、专用计算机或者其他可编程数据处理设备的处理器,来产生一机器,以使得通过计算机或者其他可编程数据处理设备执行的指令创建用于实现流程图和/或者方框图的方框或者各方框描述的功能/操作的装置。
[0029]还可以将这些计算机程序指令存储在计算机可读介质中,该计算机可读介质能够引导计算机、其他可编程数据处理设备或者其他器件以特定方式工作,使得存储在计算机可读介质中的指令产生包括指令的制造产品,该指令实现流程图和/或者方框图的方框或者各方框描述的功能/操作。还可以将计算机程序指令加载到计算机、其他可编程数据处理设备或者其他装置上,使得在计算机、其他可编程设备或者其他器件上执行一系列操作步骤,从而产生计算机实现的处理,使得在计算机或者其他可编程设备上执行的指令提供用于实现流程图和/或者方框图的方框或者各方框描述的功能/操作的处理。
[0030]最后,在此使用的术语仅是为了描述特定实施例,而无意限制本发明。在此采用的单数形式“一”、“一个”和“该”也意在包括复数形式,除非本说明书清楚地指出。还应当明白,术语“包括”和/或“包含”在本说明书中采用时表示所述的特征、整体、步骤、操作、要素和/或者部件的存在,但是不排除一个或者多个其他特征、整体、步骤、操作、要素、部件和/或者其组合的存在或者附加。
[0031]下面的权利要求书中的所有装置或者步骤加功能要素的相应结构、材料、操作和等同都意在包括与权利要求书中规定的要求保护的其他要素组合实现功能的任意结构、材料或者操作。为了说明和描述,描述了本发明,但是对本发明的描述无意穷举或者局限于所公开的形式的发明。对于本【技术领域】内的技术人员,许多修改和变更显而易见,而不脱离本发明的范围和精神。为了更好地解释本发明的原理和实际应用,选择并且描述了实施例,并且使得本【技术领域】内的技术人员能够明白适合设想的特定用途的经过各种修改的各种实施例。
[0032]因此,详细描述了本申请的发明后,并且通过参考其实施例,可能的修改和变型显而易见,而不脱离下面所附权利要求书限定的本发明的范围。
【权利要求】
1.一种配置用于云计算环境下的分布式虚拟机(VM)图像管理的虚拟化数据处理系统,所述系统包括: 主计算机,包括存储器和至少一个处理器,并且配置为通信地耦合到云计算环境下的多个不同对等主机; 管理程序,在主计算机的存储器中执行并且管理多个不同VM ; 管理程序的本地缓存,存储VM图像的不同部分;以及 连发型客户机,耦合到管理程序,所述客户机包括程序代码,所述程序代码当在存储器中执行时,使得通过确定所请求的VM图像数据是否存在于管理程序的本地缓存中或者任意不同对等主机的管理程序的缓存中,并仅当确定VM图像数据既不存在于管理程序的本地缓存中又不存在于任意不同对等主机中的管理程序的缓存中时从云计算环境下的远程数据储存器中的种子图像检索所请求的VM图像数据,而对管理程序中来自VM之一的VM图像数据的请求做出响应。
2.根据权利要求1所述的系统,其中,所述程序代码进一步使得仅当确定VM图像数据不存在于本地缓存中而存在于不同对等主机中的一个对等主机的缓存中时,从不同对等主机中的任意对等主机的管理程序的缓存中检索VM图像数据,并且响应于已经预先以阈值次数从不同对等主机中的任意对等主机的缓存中检索到VM图像数据的确定,将从不同对等主机之一的管理程序的缓存检索的VM图像数据缓存在本地缓存中。
3.根据权利要求1所述的系统,其中,通过参考由管理程序公开的不同对等主机的管理程序的缓存中的各个不同缓存的内容的相应描述符,确定所请求的VM图像数据是否存在于不同对等主机中的任意对等主机的管理程序的缓存中。
4.根据权利要求1所述的系统,其中,所述程序代码进一步使得将从种子图像检索的VM图像数据缓存在本地缓存中,和更新本地缓存的内容的描述符以指示VM图像数据在本地缓存中的缓存。
5.根据权利要求1所述的系统,其中,所述程序代码进一步使得确定所请求的VM图像数据是否存在于主计算机的管理程序的写时复制(COW)数据储存器中,和仅当确定VM图像数据既不存在于主计算机的管理程序的本地缓存中又不存在于不同对等主机中的任意对等主机的管理程序的缓存中而且不存在于COW数据储存器中时,从云计算环境下的远程数据储存器中的种子图像中检索所请求的VM图像数据。
6.一种云计算环境下的分布式虚拟机(VM)图像管理的方法,所述方法包括: 在主计算机的存储器中执行的管理程序中接收来自VM的VM图像数据的请求; 确定所请求的VM图像数据是否存在于主计算机的管理程序的本地缓存中或者存在于对等主机的管理程序的缓存中;以及 仅当确定VM图像数据既不存在于主计算机的管理程序的本地缓存中也不存在于对等主机的管理程序的缓存中时,从云计算环境下的远程数据储存器中的种子图像检索所请求的VM图像数据。
7.根据权利要求6所述的方法,进一步包括: 仅当确定VM图像数据不存在于主计算机的管理程序的本地缓存中而存在于对等主机的管理程序的缓存中时,从对等主机的管理程序的缓存中检索VM图像数据;以及 响应于已经预先以阈值次数从对等主机的管理程序的缓存中检索到VM图像数据的确定,将从对等主机的管理程序的缓存检索的VM图像数据缓存在本地缓存中。
8.根据权利要求6所述的方法,其中,参考由对等主机的管理程序公开的对等主机的管理程序的缓存的内容的描述符,确定所请求的VM图像数据是否存在于对等主机的管理程序的缓存中。
9.根据权利要求6所述的方法,进一步包括: 将从种子图像检索的VM图像数据缓存在本地缓存中;以及 更新本地缓存的内容的描述符以指示VM图像数据在本地缓存中的缓存。
10.根据权利要求6所述的方法,进一步包括 确定所请求的VM图像数据是否存在于主计算机的管理程序的写时复制(COW)数据储存器中;以及 仅当确定VM图像数据既不存在于主计算机的管理程序的本地缓存中也不存在于对等主机的管理程序的缓存中而且不存在于COW数据储存器中时,从云计算环境下的远程数据储存器中的种子图像检索所请求的VM图像数据。
11.一种在云计算环境下的分布式虚拟机(VM)图像管理的系统,所述系统包括用于执行权利要求6至10的任意方法的所有步骤的装置。
【文档编号】G06F17/30GK104281468SQ201410320504
【公开日】2015年1月14日 申请日期:2014年7月7日 优先权日:2013年7月12日
【发明者】C.D.布兰特, S.乔德哈里, M.J.加里森, M.麦凯 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1