用于实现虚拟机的方法和云管理节点.pdf

上传人:e2 文档编号:1682028 上传时间:2018-07-04 格式:PDF 页数:21 大小:1.25MB
返回 下载 相关 举报
摘要
申请专利号:

CN201280077879.9

申请日:

2012.12.21

公开号:

CN104854562A

公开日:

2015.08.19

当前法律状态:

实审

有效性:

审中

法律详情:

实质审查的生效IPC(主分类):G06F 9/455申请日:20121221|||公开

IPC分类号:

G06F9/455; H04L29/08

主分类号:

G06F9/455

申请人:

瑞典爱立信有限公司

发明人:

S.赫尔克维斯特; J.哈伦; J-E.曼格斯

地址:

瑞典斯德哥尔摩

优先权:

专利代理机构:

中国专利代理(香港)有限公司72001

代理人:

徐予红; 张懿

PDF下载: PDF下载
内容摘要

本文提供了用于实现用于处理和存储数据的资源的分布式云中的虚拟机的使用的方法和云管理节点(200)。当从具有用于运行虚拟机的操作系统的一组文件的客户端(202)接收(2:1) VM映像时,云管理节点将VM映像(204b)分布(2:2a-d)到形成分布式云的多个本地数据中心(204)。回过来,云管理节点从本地数据中心接收VM映像的本地标识,并创建(2:3)接收的本地标识与VM映像的全局标识之间的映射(200a)。全局标识然后被返回(2:4)到客户端,由此使客户端能够通过参考与云管理节点通信的全局标识来改变本地数据中心中的VM映像。

权利要求书

权利要求书1.   一种由云管理节点(200)执行的用于实现用于处理和存储数据的资源的分布式云中的虚拟机的使用的方法,所述方法包括: -从客户端(202)接收(2:1, 300)VM映像,所述VM映像包括用于运行所述虚拟机的操作系统的一组文件;-将所述VM映像(204b)分布(2:2a-d, 302)到形成所述分布式云的多个本地数据中心(204);-从所述本地数据中心接收 (304)所述VM映像的本地标识;以及-创建(2:3, 306)所述接收的本地标识与所述VM映像的全局标识之间的映射;以及-将所述全局标识返回(2:4, 308)到所述客户端,由此使所述客户端能够通过参考与所述云管理节点通信的所述全局标识来改变所述本地数据中心中的所述VM映像。2.   如权利要求1所述的方法,其中借助于与相应本地数据中心关联的本地映像服务代理将所述VM映像分布到所述本地数据中心,所述本地映像服务代理适应于在用于由所述云管理节点使用的所述VM映像上的创建、读取、更新和删除(CRUD)操作的全局协议与用于由每个相应本地数据中心使用的所述CRUD操作的本地协议之间转换。3.   如权利要求1或2所述的方法,其中所述VM映像被分布到所述本地映像服务代理,所述本地映像服务代理位于所述相应本地数据中心或所述云管理节点。4.   如权利要求1-3中任一项所述的方法,其中所述VM映像由通用数据块和至少一个适配块的参考表示,所述通用数据块已经安装在所述本地数据中心中,并且其中通过向所述本地数据中心分布所述至少一个适配块来分布所述VM映像。5.   如权利要求4所述的方法,其中所述通用数据块包括只读块,并且所述至少一个适配块包括可写块。6.   如权利要求4或5所述的方法,其中通过增加新适配块来更新所述VM映像。7.   如权利要求6所述的方法,其中通过增加一连串连续的新适配块来更新所述VM映像。8.   如权利要求1-7中任一项所述的方法,其中基于对等下载过程分布所述VM映像,其中所述云管理节点通过向所述本地数据中心提供有关在哪里能找到所述VM映像或其部分的可用性信息来充当跟踪器,使所述本地数据中心能够基于所述可用性信息下载所述VM映像或其部分。9.   如权利要求1-8中任一项所述的方法,其中根据在上载或安装所述VM映像时的时段期间的读和写,锁定所述VM映像。10.   一种配置成实现用于处理和存储数据的资源的分布式云中的虚拟机的使用的云管理节点(400),所述云管理节点包括:-通信单元(400a),适应于从客户端(402)接收VM映像,所述VM映像包括用于运行所述虚拟机的操作系统的一组文件;-分布单元(400b),适应于向形成所述分布式云的多个本地数据中心(404)分布所述VM映像,并从所述本地数据中心接收所述VM映像的本地标识;以及-映射单元(400c),适应于创建所述接收的本地标识与所述VM映像的全局标识之间的映射(400d);其中所述通信单元(400a)进一步适应于将所述全局标识返回到所述客户端,由此使所述客户端能够通过参考与所述云管理节点通信的所述全局标识来改变所述本地数据中心中的所述VM映像。11.   如权利要求10所述的云管理节点,其中所述分布单元(400b)进一步适应于借助于与相应本地数据中心关联的本地映像服务代理将所述VM映像分布到所述本地数据中心,所述本地映像服务代理适合于在用于由所述云管理节点使用的所述VM映像上的创建、读取、更新和删除(CRUD)操作的全局协议与用于由每个相应本地数据中心使用的所述CRUD操作的本地协议之间转换。12.   如权利要求10或11所述的云管理节点,其中所述分布单元(400b)进一步适应于将所述VM映像分布到所述本地映像服务代理,所述本地映像服务代理位于所述相应本地数据中心或所述云管理节点。13.   如权利要求10-12中任一项所述的云管理节点,其中所述VM映像由通用数据块和至少一个适配块的参考表示,所述通用数据块已经安装在所述本地数据中心中,并且其中所述分布单元(400b)进一步适应于通过向所述本地数据中心分布所述至少一个适配块来分布所述VM映像。14.   如权利要求13所述的云管理节点,其中所述通用数据块包括只读块,并且所述至少一个适配块包括可写块。15.   如权利要求13或14所述的云管理节点,其中所述分布单元(400b)进一步适应于通过增加新适配块来更新所述VM映像。16.   如权利要求15所述的云管理节点,其中所述分布单元(400b)进一步适应于通过增加一连串连续的新适配块来更新所述VM映像。17.   如权利要求10-16中任一项所述的云管理节点,其中所述分布单元(400b)进一步适应于基于对等下载过程分布所述VM映像,其中所述云管理节点通过向所述本地数据中心提供有关在哪里能找到所述VM映像或其部分的可用性信息来充当跟踪器,使所述本地数据中心能够基于所述可用性信息下载所述VM映像或其部分。18.   如权利要求10-17中任一项所述的云管理节点,其中所述云管理节点适应于根据在上载或安装所述VM映像时的时段期间的读和写,锁定所述VM映像。

说明书

说明书用于实现虚拟机的方法和云管理节点
技术领域
本公开一般涉及用于实现用于处理和存储数据的资源的分布式云中的虚拟机的使用的方法和云管理节点,资源可包括硬件资源和软件资源。
背景技术
在数据处置领域中,诸如不同公司、企业、组织和官方的客户端具有对于硬件资源和软件资源的需要,以便执行各种数据处理和存储操作。在此公开中,术语“资源”作为简称用于表示可用于计算机执行的操作(诸如数据处理、计算、编译和数据存储)的任何硬件和软件。
传统上,客户端本身拥有并维护它们需要的所有资源,虽然这可能是成本相当高的且费时的。例如,需要相当大量的知识来首先发现需要什么类型的资源,并获取和安装那些资源。客户端从而经常需要雇用熟练人员和/或雇用顾问来实现资源的有效使用。更进一步说,随着技术快速发展和进展,特别是在计算机和软件领域,购买的或雇用的资源倾向于很快变得过期,并且必须频繁地由具有更佳性能的新资源替代,这自然是成本高且费时的。另一问题是,客户端可能需要大量的资源以便在非常有限的时段内一次进行某个大操作或者只是一年进行几次,例如与经济、统计或存货清单相关,而在其余时段期间使用非常少的资源。客户端从而不得不在足以应付此类高峰使用的资源上进行投资。
近年来,云计算的概念已经涌现以解决客户端的以上问题,其替代地能利用由云提供商在具有巨大范围计算机和数据存储器的大数据中心中维护的合并的资源。具有巨大量资源的此类数据中心通常被称为“云”,在下文将使用该术语。实际上,所有需要的容量从云提供商是可得到的,并且客户端不必在成本高的资源上进行他们自己的投资。云中的资源在暂时的基础上被动态分配给客户端,在客户端已经被服务之后释放。在任何需要的时候,云中的新资源可被再次分配给客户端。如今的云提供商的示例包含微软、谷歌和亚马逊。进一步说,云提供商常用的软件产品的一些示例是VMWare、Citrix和Openstack。
客户端从而能够联系云提供商以创建所谓的“虚拟机”(VM),其包括客户端所需和要求的在云中分配的资源,客户端然后可基本上以相同的方式使用VM,就好像对应资源由客户端自身拥有和托管一样。为了实现那个,与VM关联的所谓“VM映像”被安装和存储在云中,该VM映像由配置成运行VM的操作系统的文件的系统组成。当VM在云中运行时,VM映像从而提供了处置输入数据并处理来自客户端的请求的手段。为了允许完全安装VM,VM映像经常包含相当大块的数据,数据大小通常范围从1 GB到300 GB,或者甚至更多取决于关联的VM的要求。
VM映像可存储在各种格式中,格式可包含客户端常用的一组标准的或“默认”的VM映像格式,它们可在云中预先配置并且容易可用。备选地,客户端可用特定要求创建其自己定制的VM映像,并将它上载到云以便安装,并且在此公开中上面的两个备选将分别被称为“标准VM映像”和“特定VM映像”。
图1中示意性示出了用于云计算的通信情形,其中形成资源云的数据中心100由云提供商维护。在云中,对于不同客户端可创建大量VM 102,每个VM由一组暂时分配的资源组成,并且如上所述已经安装的不同VM映像可用于运行VM。进一步说,一个VM映像可用于运行若干VM或“VM实例”。VM 102以及关联的VM映像由表示为云管理104的功能管理,云管理104可实现在适合的网络节点中。云管理104在此上下文中通常也被称为“云安排层”。在此示例中,客户端106将其自己的特定VM映像上载到云管理104,在动作1:1中示出,以便在云中安装。备选地,客户端可只选择已经可用并且安装在云中的标准VM映像用于运行VM。
云管理104将上载的VM映像102b安装并存储在云中(在动作1:2)以作为用于运行VM 102a的操作系统工作。云管理104还将映像标识返回到客户端(在动作1:3),其将由客户端106在到云管理104的请求中参考(由动作1:4指示)以便创建VM。云管理104然后分配所需的资源以创建客户端106的VM 102a(在下一动作1:5),当运行VM时,资源由VM映像102b中的操作系统文件控制。无论何时客户端106想要以某种方式改变VM映像102b(例如删除、更新或修改它)时,如另一动作1:6所指示的,还参考映像标识。例如,可能期望改变映像的一些元数据,诸如其名称、使用VM映像的准许、登录细节等等。客户端106可通过在适合的应用编程接口(API)(未示出)上通信以访问VM映像102b的操作系统来进行VM映像102b的此类改变。
在以上示例中,假定所有资源都位于单个云的相同数据中心中。有时,客户端从若干广泛分开的位置(例如在不同的国家中)操作,并且在那种情况下,将有效的是,使用具有形成位于客户端附近的云并使用本地协议、格式和API的若干本地数据中心的分布式云。使用此类情形的原因可能是,由于更短的通信路径可减少一般网络等待时间和对于网络带宽的需要,和/或VM所需的某些信息可仅对相应本地数据中心可用,例如用于无线通信的蜂窝网络的小区相关信息。上面描述的VM和关联的VM映像然后必须安装在可由不同云提供商管理的每个云中。例如,一个云可由谷歌管理,另一个由亚马逊管理,诸如此类。从而,有可能客户端使用包括具有VM和关联的VM映像的多个本地数据中心的分布式异构云来克服与网络等待时间、网络带宽和应用特定要求相关的各种限制。
然而,问题是,当使用此类分布式异构云时,客户端必须在若干本地数据中心中上载其VM映像多次。如上面所提到的,具有操作系统文件的VM映像可具有300 GB或更大的大小,并且如果想要分布式云的话,使用若干不同协议、映像格式和API将这样的数据量上载到不同数据中心可能30次或更多次对于任何客户端都是相当繁重的任务。
另一个有问题的议题是,每个本地云管理使用它自己的协议、格式和API将把本地VM标识返回到客户端,其可结束于不同数据中心中相同VM映像的各种不同VM标识,并且本地VM标识甚至可彼此重叠。从而,需要客户端使用不同过程、协议、格式和API与分布式异构云的若干不同数据中心通信,并在混合不同VM标识的风险下处置相同映像的不同返回的VM标识。
发明内容
本文描述的实施例的目的是,解决上面概括的至少一些问题和议题。有可能通过使用在所附独立权利要求中所定义的方法和云管理节点实现这些目的和其它目的。
根据一方面,由云管理节点执行用于实现用于处理和存储数据的资源的分布式云中的虚拟机的使用的方法。在这种方式中,云管理节点从客户端接收VM映像,所述VM映像包括用于运行所述虚拟机的操作系统的一组文件。VM映像然后被分布到形成分布式云的多个本地数据中心。回过来,云管理节点从本地数据中心接收VM映像的本地标识,本地标识在不同本地数据中心中可不同,和/或在一些情况下可或多或少彼此重叠。云管理节点创建接收的本地标识与VM映像的全局标识之间的映射,并将全局标识返回到客户端。由此,使客户端能够通过参考与云管理节点通信的全局标识,而不必处置不同本地标识,来改变本地数据中心中的VM映像。还有一个优点是,客户端与仅用于处置VM映像的云管理节点通信,并且不需要处理在本地数据中心中使用的任何特定协议、格式或过程。
根据另一方面,云管理节点配置成实现用于处理和存储数据的资源的分布式云中的虚拟机的使用。云管理节点包括:通信单元,适应于从客户端接收VM映像,所述VM映像包括用于运行所述虚拟机的操作系统的一组文件。云管理节点还包括:分布单元,适应于向形成所述分布式云的多个本地数据中心分布所述VM映像,并从所述本地数据中心接收所述VM映像的本地标识。云管理节点进一步包括:映射单元,适应于创建接收的本地标识与所述VM映像的全局标识之间的映射。通信单元进一步适应于将所述全局标识返回到所述客户端,由此使所述客户端能够通过参考与所述云管理节点通信的所述全局标识来改变所述本地数据中心中的所述VM映像。
上面的方法和节点可根据不同可选实施例配置和实现。在一个可能实施例中,VM映像可借助于与相应本地数据中心关联的本地映像服务代理被分布到本地数据中心。本地映像服务代理适应于在用于由云管理节点使用的VM映像上的创建、读取、更新和删除(CRUD)操作的全局协议与用于由每个相应本地数据中心使用的CRUD操作的本地协议之间转换。本地映像服务代理可位于相应本地数据中心或云管理节点中。
在另外的可能实施例中,VM映像可由通用数据块和至少一个适配块表示,所述通用数据块已经安装在所述本地数据中心中,并且其中通过向所述本地数据中心分布所述至少一个适配块来分布所述VM映像。
根据下面的详细描述,此解决方案的另外可能特征和益处将变得显而易见。
附图说明
现在将借助示范实施例并参考附图更详细地描述该解决方案,附图中:
图1是根据现有技术图示可如何在资源的云中部署VM映像的通信情形。
图2是根据一些可能实施例图示可如何在资源的分布式云中部署VM映像的通信情形。
图3是根据另外可能的实施例图示云管理节点中的过程的流程图。
图4是根据另外的可能实施例更详细图示云管理节点的框图。
图5是根据另外的可能实施例图示实际上可如何部署VM映像的示例的信令图。
图6是根据另外的可能实施例图示可如何更新在两个数据中心中分布的VM映像的示例的信令图。
图7是根据另外的可能实施例图示可如何在已经安装了分布式VM映像的两个数据中心中创建VM映像的示例的信令图。
具体实施方式
简要地描述,提供了一种解决方案,使客户端能够借助于跨多个本地数据中心的资源的分布式云中的VM映像部署和使用虚拟机(VM),而不要求客户端需要与每个相应数据中心通信。这可借助于中心云管理节点实现,中心云管理节点与本地数据中心通信并代表仅需要与中心云管理节点通信的客户端向其分布客户端的VM映像。如上面所提到的,VM映像包括用于运行虚拟机的操作系统的一组文件。本地数据中心将与相应本地数据中心的客户端的VM映像关联的本地标识返回到中心云管理节点,其仅将VM映像的本地标识返回到客户端。全局标识被映射到在中心云管理节点的本地标识,并且客户端不需要处理本地标识,也不需要处理在本地数据中心中使用的任何特定协议、格式或过程。
现在将参考在图2中示出的通信情形描述可如何采用云管理节点用于实现资源的分布式云中的VM的使用的示例。这种情形从而涉及云管理节点200服务于客户端202以便将VM安装在多个本地数据中心204中,在此为了简洁仅图示为云。首先示出的动作2:1图示了客户端202向云管理节点202发送或“上载”客户端特定VM映像,以便安装在每一个本地数据中心204中,以使客户端能够使用由任何本地数据中心204中的VM映像控制的对应VM。
客户端202在此上下文中实际上可以是由客户端控制的任何节点,其将VM映像上载到云管理节点200。VM映像可进一步由“通用”数据块(该数据块基本上也可对于其它客户端有用)和至少一个“适配”块(其已经为具体客户端202创建并且特别适应于该具体客户端202)的参考表示。所述至少一个适配块从而是使VM映像客户端特定的VM映像的一部分,而通用数据块可包括一组常用的操作文件等。在那种情况下,如果通用数据块对云管理节点200已知,并且已经安装在数据中心中,则客户端可只是发送通用数据块的参考,并且仅上载所述至少一个适配块。VM映像从而由通用数据块和所述至少一个适配块组成,并且根据它们构造。
在下一动作2:2,其实际上包括一组部分动作2:2a-d…,云管理节点200借助于与相应本地数据中心关联的本地映像服务代理将接收的VM映像分布到本地数据中心204。这些本地映像服务代理被专门化并配置成按照其相应本地数据中心以及其中使用的特定协议和格式(其在不同数据中心中通常是不同的)起作用。本地映像服务代理可本地实现在相应本地数据中心中(如在此示例中所图示的)或集中实现在云管理节点200中。从而,在此示例中在本地数据中心204之一中示出了此类本地映像服务代理204a,虽然假定专门化的本地映像服务代理正在对于每个本地数据中心204起作用。应该指出,在此过程中可涉及任何数量的本地数据中心204,并且解决方案不限于这方面。
本地映像服务代理适应于在由云管理节点200使用的全局协议和格式与由相应本地数据中心204使用的本地协议和格式之间转换。例如,本地映像服务代理可在用于所谓的“CRUD操作”(指VM映像中的创建、读取、更新和删除(CRUD)数据的操作)的全局协议与用于由每个相应本地数据中心使用的CRUD操作的本地协议之间转换。代理也可在其它事项(诸如各种格式与其它协议)之间转换。每个本地代理(例如204a)然后将分布式VM映像本地安装在每个相应本地数据中心(例如由编号204b所示出的)中以用于运行VM。
还在此动作中,每个本地数据中心204将本地VM标识返回到云管理节点200,使得对于相同VM映像接收在不同本地数据中心204中有效的各种不同VM标识,并且本地VM标识甚至在某种程度上可彼此重叠。云管理节点200可通过创建接收的本地标识与VM映像的全局标识之间的映射来处置这个,如在动作2:3中所示出的。实际上,云管理节点200可创建并维护映射表200a等,其可被查找以确定哪些本地标识对应于VM映像的全局标识,并且反之亦然。
在动作2:4,云管理节点200将全局标识返回到客户端202。由此,客户端202可参考返回的全局标识,并且不必跟踪所有标识,并且可避免混淆的风险。最后示出的动作2:5图示了客户端202现在能够通过仅仅与云管理节点200通信来访问所有数据中心204中的VM映像,例如以便改变或删除它,云管理节点200然后代表与本地数据中心204通信的客户端起作用。从而,客户端仅需要能够与一个中心方通信,而不与潜在地使用各种不同协议和格式的所有本地数据中心204通信。
现在将参考图3中的流程图描述具有由云管理节点执行的用于实现用于处理和存储数据的资源的分布式云中的VM使用的动作的过程。云管理节点在此示例中可基本上充当上述图2的云管理节点200。首先示出的动作300图示了云管理节点从客户端接收VM映像,基本上对应于图2中的动作2:1。VM映像包括用于运行虚拟机的操作系统的一组文件。如上面所提到的,VM映像可由通用数据块和至少一个适配块的参考表示,使得客户端仅需要将该参考发送到通用数据块,并将所述至少一个适配块上载到云管理节点。通用数据块可包括不能改变的只读块,而所述至少一个适配块可包括能改变的可写块。
在下一动作302,云管理节点将接收的VM映像分布到形成分布式云的多个本地数据中心,基本上对应于动作图2中的2:2a-d…。VM映像可被分布到任何数量的本地数据中心,即两个或更多本地数据中心,并且解决方案不限于这方面。
如对于图2所描述的,可借助于与本地数据中心关联的本地映像服务代理分布VM映像,其中代理适应于在用于由云管理节点使用的VM映像上的CRUD操作的全局协议与用于由每个相应本地数据中心使用的CRUD操作的本地协议之间转换。每个本地映像服务代理从而可配置有朝向云管理节点的“北向”接口(该北向接口配置成按照云管理节点使用全局协议和格式)以及朝向相应本地数据中心的“南向”接口(该南向接口配置成按照本地数据中心使用本地协议和格式)。由云管理节点用于与映像服务代理通信的协议可基于XML(可扩展标记语言)、JSON(Java脚本对象记号)和HTTP(超文本传送协议)以及支持VM映像的以上CRUD操作的其它类似协议。
在如下动作304中,云管理节点接收从本地数据中心返回的VM映像的本地标识,本地标识在不同数据中心中可以不同,并且还可在某种程度上彼此重叠。云管理节点然后指配VM映像的全局标识,并创建接收的本地标识与VM映像的全局标识之间的映射,在基本上对应于图2中的动作2:3的另一动作306中。可采用映射表等形式创建映射,随后可查找映射表以确定哪些本地标识对应于VM映像的全局标识,或者反之亦然。
最后示出的动作308图示了云管理节点将VM映像的全局标识返回到客户端,基本上对应于图2中的动作2:4。由此,使客户端能够通过参考与云管理节点通信的全局标识来改变本地数据中心中的VM映像,例如对于图2中的动作2:5所描述的。
可按不同方式执行分布VM映像的上述动作302。在第一选项中,云管理节点可将VM映像中的所有数据发送到每一个本地数据中心。如果VM映像由通用数据块和至少一个适配块的参考表示,并且通用数据块已知并且已经安装在本地数据中心中,则云管理节点仅需要在所述至少一个适配块中向本地数据中心发送数据,这将以后在下面进一步描述。
在第二选项中,还有可能基于对等下载过程分布VM映像,其中云管理节点通过向本地数据中心提供有关在哪里能找到VM映像或其部分的可用性信息来充当跟踪器,本地数据中心从而在对等下载中充当形成对等网络的对等体。由此,使本地数据中心或者适合地它们本地实现的映像服务代理能够基于可用性信息下载VM映像或其部分,使得从不同对等体(即数据中心)下载不同部分。当VM映像中的数据量大时,以及当这个数据将被分布到大量本地数据中心时,这可能是实际的选项,并且否则云管理节点向所有数据中心多次分布所有数据将是繁重的。云管理节点可用这种方式与本地数据中心共享分布数据的负荷。
当VM映像由通用数据块和至少一个适配块的参考表示,并且通用数据块已经安装在本地数据中心中时,云管理节点可通过向本地数据中心分布所述至少一个适配块来分布VM映像,同时例如借助于指向通用数据块的以上参考或其它标识来指示本地数据中心在客户端的VM映像中包含通用数据块连同分布的至少一个适配块。在此上下文中,除了通用块之外,适配块可只含有差或加或“delta”,使得分布的数据量相比分布完整VM映像可大大减少。
如上面所提到的,然后可通过向所述至少一个适配块增加新适配块和/或移除所述至少一个适配块中的任何块来更新VM映像。进一步说,可通过增加一连串连续的新适配块(例如在不同更新操作中一个接一个)来更新VM映像。通过以上面描述的方式使用通用数据块和至少一个适配块,将容易执行VM映像的更新,并且这个操作可更有效地进行,因为对于更新操作所需的传递的数据量可被减少并且有可能被最小化。
现在将更详细地说明使用通用数据块和至少一个适配块的以上实施例。为了优化映像数据的传输,可能存在中心云管理节点与本地数据中心之间的理解,例如由映像服务代理表示的有关VM映像及其格式的表示的理解。这种理解可基于大多数映像尽管在大小上大并且大多数是独特的但经常与其它VM映像共享数据的重要部分的事实。例如,可能存在基于标准“Ubuntu 64位服务器映像”的一组VM映像,其在此领域一般是像这样已知的。这些VM映像从而共享大部分文件系统和内核,但在更小适配上可能不同,例如,使得一部分可能已经设置成是“MySQL(结构化查询语言)服务器”,而另一部分可能已经设置成“Apache web服务器”,等等。
最初,在分布之前,将VM映像表示为具有一个大且通用数据块,此外还有一个或多个较小适配块,有可能一次将大通用块共享到所有本地数据中心,并且此后,当创建由通用块定义的标准VM映像的某种导出,只是分布较小适配块。比如,存在基于所谓的“写时拷贝(Copy-On-Write)结构(COW)”的映像的标准文件系统类型,其中VM映像包括是只读的一个块,以及然后包含已经对VM映像进行的所有改变的可写块。在VM映像的文件系统中改变的任何细节都被拷贝到可写部分,可写部分遮蔽只读部分,并且写得越多,可写部分变得越多。COW映像也可被“变平”成一个块,使得新映像由可写部分和只读部分形成。COW可写部分也可参考另一COW格式化的映像,从而有可能创建COW块的扩展“链”。例如,一个块可增加文件服务器功能,另一个块可增加web服务器,又一个块可增加用户凭证,等等。
COW文件格式是可如何实现映像在不同部分中的上述划分的示例。从而可利用这个技术将映像数据分割成一个大通用数据块(形成对某一组客户端的所有VM映像公共的“基本映像”)以及一个或多个较小的客户端特定适配块。
在另一可能实施例中,可根据在上载或安装VM映像时的时段期间的读和写,锁定VM映像。这可能是有用的预防措施,以避免例如在不同位置的VM映像的不一致使用,因为映像可在此类时段期间在不同数据中心中包括不同数据。后面将参考图5-7的信令图描述如何进行这个的示例。在计算和数据处置领域,一般而言,可借助于“读锁定”或“写锁定”锁定数据,这意味着,可向数据应用读锁定以防止数据被改变,它只可被读,而向将被改变的数据应用写锁定,从而防止其他人在改变期间读取和改变相同的数据。读锁定基本上以如下方式使用:1)获取数据“A”的读锁定;2)读A;以及3)释放读锁定。写锁定基本上以如下方式使用:1)获取数据“B”的写锁定;2)读B;3)更新B;4)写B以及5)释放写锁定。
图4中的框图图示了云管理节点可如何配置成实现上述实施例的详细但非限制示例。例如根据上面对于图2和图3中任一个描述的过程和特征以及下面进一步描述的图5-7中示出的示例,云管理节点400配置成实现用于处理和存储数据的资源的分布式云404中的虚拟机的使用。现在将依据采用该解决方案的可能示例描述云管理节点400。
云管理节点400包括适应于与客户端402通信并从客户端402接收VM映像的通信单元400a,VM映像包括用于运行VM的操作系统的一组文件,例如上面对于动作2:1和300所描述的。如上面所说明的,VM映像或其一部分可以是客户端特定的,并且因此预先不知道。VM映像可进一步由已经已知并且也可用于其它客户端的通用数据块以及对于客户端402专门创建的至少一个适配块的参考表示。
云管理节点400还包括适合于将VM映像分布到形成分布式云的多个本地数据中心404的分布单元400b,例如上面对于动作2:2a-d和302所描述的。VM映像可借助于与相应本地数据中心关联的本地映像服务代理以上面描述的方式分布。分布单元400b还适应于从本地数据中心404接收VM映像的本地标识,例如上面对于动作2:2a-d 和304所描述的。
云管理节点400还包括适应于创建接收的本地标识与VM映像的全局标识之间的映射400d的映射单元400c。通信单元400a进一步适应于将全局标识返回到客户端,由此使客户端能够通过参考与云管理节点通信的全局标识来改变本地数据中心中的VM映像。
云管理节点400及其功能单元400a-c可配置成或适应于根据各种可选实施例操作。在一个可能实施例中,分布单元400b可进一步适应于借助于与相应本地数据中心关联的本地映像服务代理将VM映像分布到本地数据中心。在此实施例中,本地映像服务代理适应于在用于由云管理节点使用的VM映像上的上述CRUD操作的全局协议与用于由每个相应本地数据中心使用的CRUD操作的本地协议之间转换。在另一可能实施例中,当本地映像服务代理位于相应本地数据中心或云管理节点中时,分布单元400b可进一步适应于将VM映像分布到本地映像服务代理。
在另外可能的实施例中,VM映像可由通用数据块和至少一个适配块的参考表示,通用数据块已经安装在本地数据中心中,并且在那种情况下分布单元400b可进一步适应于通过向本地数据中心分布至少一个适配块来分布VM映像。通用数据块可包括只读块,而至少一个适配块包括可写块,并且分布单元400b可进一步适应于通过增加新适配块来更新VM映像。进一步说,分布单元400b可适应于通过增加一连串连续的新适配块来更新VM映像。
在另一个可能的实施例中,分布单元400b可进一步适应于基于对等下载过程分布VM映像,其中云管理节点通过向本地数据中心提供有关在哪里能找到VM映像或其部分的可用性信息来充当跟踪器,从而使本地数据中心能够基于可用性信息下载VM映像或其部分。云管理节点可进一步适应于根据在上载VM映像时的时段期间的读和写,锁定VM映像,如上所述。
应该指出,图4图示了云管理节点400中的各种功能单元,并且本领域技术人员能够实际上使用适合的软件和硬件来实现这些功能单元。从而,解决方案一般不限于云管理节点400的所示结构,并且在适当的情况下,功能单元400a-c可配置成根据在此公开中描述的任何特征操作。
上面描述的功能单元400a-c可借助于包括代码部件的相应计算机程序的程序模块而在云管理节点400中实现,代码部件在由处理器“P”运行时,使云管理节点400执行上述动作和过程。处理器P可包括单个中央处理单元(CPU),或者云包括两个或更多处理单元。例如,处理器P可包含通用微处理器、指令集处理器和/或相关芯片集和/或专用微处理器,诸如专用集成电路(ASIC)。处理器P还可包括用于高速缓存目的的存储装置。
每个计算机程序可由云管理节点400中的计算机程序产品携带,计算机程序产品采用具有计算机可读介质并连接到处理器P的存储器“M”的形式。计算机程序产品或存储器M从而包括其上存储了例如采用计算机程序模块“m”形式的计算机程序的计算机可读介质。例如,存储器M可以是闪存、随机存取存储器(RAM)、只读存储器(ROM)或电可擦除可编程ROM(EEPROM),并且程序模块m在备选实施例中可分布在采用云管理节点400内的存储器形式的不同计算机程序产品上。
现在将参考图5中的信令图描述通过使用本文的实施例实际上可如何安装VM映像的示例。此图图示了云管理节点500,以及多个数据中心1-N和关联的映像服务代理1-N,在该图中由第一对本地数据中心502a和关联的代理502b以及第N对本地数据中心504a和关联的代理504b表示。在此示例中,使用对等下载过程,其中云管理节点500通过向本地数据中心1-N提供有关在哪里可找到VM映像或其部分的信息来充当跟踪器,以便实现VM映像的分布。
第一动作5:1图示了云管理节点500从客户端接收VM映像,基本上对应于上面的动作2:1和300。接收的VM映像从而被安装在本地数据中心1-N中。云管理节点500然后根据在安装VM映像时的过程期间的读和写锁定VM映像,如动作5:2所示出的。这可通过应用如上所述的写锁定来实现。在这个动作中,在VM映像已经被完全安装在所有本地数据中心1-N中之前,锁定VM映像以便防止任何服务部署使用VM映像运行的VM。如果VM映像未被锁定,则将有可能借助于在网络中不同位置的若干VM来部署服务,其中VM映像可由于正在进行的VM映像安装而不同,从而引起VM映像的不一致使用。
应该指出,尽管在下文对于示出的数据中心502a、504a以及它们关联的代理502b、504b描述了并行动作,但也对于要安装VM映像的其它数据中心和代理(它们未在这个简化图中示出)执行相同动作。实际上,可能存在大得多的数量的数据中心和关联的代理,例如在范围20-30中涉及的。遍及在此对于图2-7描述的示例,云管理节点与映像服务代理之间的通信可通过使用携带信息的HTTP协议和JSON或XML文档来执行。
在接下来示出的动作5:3a中,云管理节点500向代理502b发送表示为“部署映像”的消息,有效地要求代理502b从包括数据中心的对等网络中的一个或多个对等体下载VM映像。在另外的动作5:3b,云管理节点500还向代理504b发送部署映像消息。
另外动作5:4a和5:4b图示了代理502b和504b分别向云管理节点500发送表示为“获得对等体”的消息,有效地要求有关可在对等网络中哪里找到VM映像或其部分的可用性信息。响应于此,云管理节点500向代理502b和504b发送具有VM映像或其部分的对等体的列表,分别由另外动作5:5a和5:5b示出。
已经接收了对等体的列表,代理502b和504b现在能够根据对等体的列表从不同对等体下载VM映像的不同部分,并且像这样的下载过程分别由动作5:6a和5:6b示意指示。例如,在此过程中可使用众所周知的“Bittorrent”协议,其在此不一定像这样描述以理解所示出的示例。
例如根据对等体的列表,已经下载或以另外方式获取了整个VM映像,代理502b和504b继续进行将VM映像安装在它们的相应数据中心502a和504a中,如由另外动作5:7a和5:7b所示。当安装VM映像时,对于每个数据中心502a和504a中的VM映像,生成本地标识1-N,如虚线箭头所指示的,并且在相应动作5:8a和5:8b中,将不同的本地标识1-N从代理502b和504b发送到云管理节点500。
在动作5:9,已经接收到本地标识1-N,云管理节点500创建指配给VM映像的本地标识与全局标识之间的例如以映射表等形式的映射。全局标识然后被提供给客户端,如另一动作5:10所示,并且云管理节点500最终释放在动作5:2中创建的锁定,如最后动作5:11所示。应该指出,云管理节点500可在这个过程中的任一点,例如紧接在动作5:1接收到VM映像之后,向客户端指配全局标识并将它返回。从而,示出的动作5:10可跟在动作5:1之后的任何时间。
现在将参考图6中的信令图描述通过使用本文的实施例实际上客户端可如何更新之前安装的VM映像的示例。类似于图5,此图图示了云管理节点600和具有关联的映像服务代理602b和604b的两个示范数据中心602a和604a。尽管在此示例中仅示出了两对数据中心和代理,但如下描述对于任何数量的数据中心和关联的代理都是有效的。假定,当安装VM映像时,已经在云管理节点600中创建了VM映像的全局标识和多个本地标识之间的映射,与上面的动作5:9中一样。
第一动作6:1图示了云管理节点600从客户端(未示出)接收对于更新其VM映像的请求,该请求参考VM映像的全局标识,诸如在上面的动作5:10中返回到客户端的全局标识。这个请求可含有关于将如何更新映像的细节,例如一些改变的元数据,诸如改变的访问授权等。从而,VM映像要在所示的本地数据中心602a和604a中更新,虽然事实上VM映像应该在已经为这个客户端安装了VM映像的任何数量的位置(即数据中心)中更新。
云管理节点600然后在安装VM映像时的过程期间获取VM映像的锁定,例如写锁定,如动作6:2所示出的。在这个动作中,从而根据其他人的读和写来锁定VM映像,以便在它已经在所有本地数据中心中完全更新之前,防止任何服务部署使用VM映像运行的VM,由此避免跨数据中心的VM映像的不一致使用。
在接下来示出的动作6:3中,云管理节点600检查接收的全局标识与VM映像的本地标识之间的映射(例如在映射表等中),以确定对于本地数据中心602a和604a中的VM映像有效的本地标识。在另外动作6:4a中,云管理节点600向代理602b发送表示为“更新映像”的消息,有效地要求代理602b更新数据中心602a中的VM映像。在另外的动作6:4b中,还向代理604b发送对应更新映像消息。
另外动作6:5a和6:5b图示了代理602b和604b借助于表示为“得到映像”的消息分别从数据中心602a和604a检索VM映像,并且代理602b和604b因而更新相应数据中心602a和604a中的VM映像,由另外动作6:6a和6:6b示出。已经完成了映像更新,每个代理602b、604b向云管理节点600发送OK消息(在相应动作6:7a和6:7b),以确认更新的VM已经准备用于运行他们关联的数据中心602a和604a中的一个或多个VM。
当已经从所有数据中心的代理接收到OK消息时,云管理节点600释放在动作6:2中激活的锁定,如动作6:8所示出的。云管理节点600最后在另外动作6:9中可将适合的确认消息发送到客户端,通知客户端更新准备好了,并且VM映像现在可用于运行由602a和604a例示的任何数据中心中的VM。
现在将参考图7中的信令图描述实际上借助于之前安装的VM映像并通过使用本文的实施例可如何创建和运行VM的示例。类似于图5和图6,此图图示了云管理节点700和具有关联的映像服务代理702b和704b的在位置1和2的两个示范数据中心702a和704a。尽管在此示例中仅示出了两对数据中心和代理,但如下描述对于任何数量的数据中心和关联的代理都是有效的。在此还假定,当安装VM映像时,已经在云管理节点700中创建了VM映像的全局标识和多个本地标识之间的映射,与上面的动作5:9中一样。
第一动作7:1图示了云管理节点700从客户端(未示出)接收对于创建要由VM映像运行的VM以便实现服务的请求。所接收的请求指的是VM映像的全局标识以及指向数据中心702a和704a的两个位置1和2。从而,VM要在所示的本地数据中心702a和704a(即在位置1和2)中创建,虽然可根据这个过程在已经对于这个客户端安装了VM映像的任何数量的位置(即数据中心)中创建VM。
云管理节点700然后在创建VM时的过程期间获取VM映像的读锁定,如动作7:2所示出的。在这个动作中,从而根据写来锁定VM映像,以便在VM已经在所有本地数据中心中创建之前,防止VM映像的任何改变,由此避免跨数据中心的VM的不一致创建。
在接下来示出的动作7:3中,云管理节点700检查接收的全局标识与在位置1和2的VM映像的本地标识之间的映射(例如在映射表等中),以确定对于相应本地数据中心702a和704a中的VM映像有效的本地标识。在另外动作7:4a,云管理节点700将表示为“创建VM”的消息发送到代理702b,参考在数据中心702a中使用的VM映像的本地标识,有效地要求代理702b根据位置1的数据中心702a中的VM映像创建VM。在另外的动作7:4b中,还向代理704b发送对应创建VM消息。
另外的动作7:5a和7:5b图示了代理702b和704b分别借助于表示为“得到映像”的消息从数据中心702a和704a中检索VM映像。然后,代理702b和704b因而按照检索的VM映像分配相应数据中心702a和704a中的资源(由另外动作7:6a和7:6b示出),有效地创建位置1和2中的VM。已经完成了VM的创建,每个代理702b、704b向云管理节点700发送OK消息(在相应动作7:7a和7:7b),以确认创建的VM已经准备通过使用他们关联的数据中心702a和704a中的VM映像运行。
当已经从所有数据中心的代理接收到OK消息时,云管理节点700释放在动作7:2中激活的读锁定,如动作7:8所示出的。云管理节点700最后可向客户端发送适合的确认消息(在另外的动作7:9),通知客户端VM准备好用于由702a和704a例示的在位置1和2的任何数据中心中。
虽然已经参考特定示范实施例描述了解决方案,但说明书一般仅打算说明发明概念,并且不应该被视为限制解决方案的范围。例如,在此说明书通篇已经使用了术语“客户端”、“云管理节点”、“映像服务代理”、“虚拟机”、“VM映像”和“CRUD操作”,不过也可使用具有在此描述的特征和特性的任何其它对应实体、功能和/或参数。解决方案由所附权利要求书定义。

用于实现虚拟机的方法和云管理节点.pdf_第1页
第1页 / 共21页
用于实现虚拟机的方法和云管理节点.pdf_第2页
第2页 / 共21页
用于实现虚拟机的方法和云管理节点.pdf_第3页
第3页 / 共21页
点击查看更多>>
资源描述

《用于实现虚拟机的方法和云管理节点.pdf》由会员分享,可在线阅读,更多相关《用于实现虚拟机的方法和云管理节点.pdf(21页珍藏版)》请在专利查询网上搜索。

本文提供了用于实现用于处理和存储数据的资源的分布式云中的虚拟机的使用的方法和云管理节点(200)。当从具有用于运行虚拟机的操作系统的一组文件的客户端(202)接收(2:1) VM映像时,云管理节点将VM映像(204b)分布(2:2a-d)到形成分布式云的多个本地数据中心(204)。回过来,云管理节点从本地数据中心接收VM映像的本地标识,并创建(2:3)接收的本地标识与VM映像的全局标识之间的映射(。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1