提供虚拟装置的方法和设备的制作方法

文档序号:6500189阅读:148来源:国知局
提供虚拟装置的方法和设备的制作方法
【专利摘要】本发明公开了一种提供虚拟装置的方法和设备,该方法包括:基于接收到的获取特定虚拟装置的请求,获取所述特定虚拟装置的元数据,其描述特定虚拟装置涉及的虚拟机的信息;根据所述元数据,确定所述特定虚拟装置与至少一个其他虚拟装置的关联关系;根据所述关联关系,提供用于获取所述特定虚拟装置的资源信息,该资源信息包括多个资源地址,其中的至少一个指向所述至少一个其他虚拟装置的存储位置。所述设备与上述方法对应。利用本发明实施例的方法和设备,可以响应于用户请求提供更多获取特定虚拟装置的资源选择,从而提高获取的效率,减小对云数据中心的网络传输压力。
【专利说明】提供虚拟装置的方法和设备
【技术领域】
[0001]本发明涉及虚拟装置,更具体地,涉及一种提供虚拟装置的方法和设备。
【背景技术】
[0002]随着虚拟化技术的发展,虚拟机能够如同一个真实的、独立的计算机一样提供各种应用和服务。在此基础上,可以将一个或多个虚拟机封装在一起,提供一种预构建的软件环境,从而构成一个虚拟装置(virtual appliance)。例如,在一个例子中,可以利用3个虚拟机VM1,VM2和VM3构建一个虚拟装置,其中这3个虚拟机分别安装不同的软件程序,从而分别执行不同的功能。例如,虚拟机VMl可以用于执行各种应用,VM2可以用于提供数据库,VM3可以用作代理服务器。这几个“专用”的虚拟机封装在一起,共同提供一个完整的运行环境,从而形成一个虚拟装置。在这样的情况下,将构成虚拟装置的多个虚拟机作为一个整体,共同进行维护、更新和管理。
[0003]为了形成所需的虚拟装置,现有技术中提出了多种封装虚拟机的标准和方式。OVF(开放虚拟化格式)是目前较为常用的一种标准,用于封装和分布虚拟装置。利用OVF标准,可以简单灵活地跨平台进行虚拟装置的安装和部署。根据OVF标准,将多个虚拟机封装为一个OVF包。典型地,一个OVF包包括后缀为.0vf的OVF描述文件,还选择性地包含后缀为.mf的清单文件以及后缀为.cert的证书文件。OVF描述文件用于描述该OVF包中包含的各个虚拟机的配置信息。此外,OVF包中通常还包含形成虚拟装置的各个虚拟机的磁盘映像文件。这些文件以映像的形式存储虚拟磁盘中的数据。相应地,磁盘映像文件通常比较大,往往为数百G字节。
[0004]根据用户对各种虚拟装置的需要,许多数据中心配置为根据用户需求,向用户提供例如OVF包形式的虚拟装置。特别地,在云计算环境下,尤其是基础架构即服务(IaaS)模式下,云数据中心可以向众多不同用户提供各种虚拟机和虚拟装置。然而,如前所述,虚拟装置所涉及的映像文件往往达到数百G字节,因此,读取这样的文件并将其通过网络传输到用户终端通常要花费较长时间。例如,当前的云数据中心需要花费几十分钟的时间来提供单个虚拟机。另一方面,许多云数据中心采用集中式的服务器来存储和分发虚拟机相关数据。这样的集中式服务器具有有限的网络接口,从而成为处理大量网络请求的瓶颈。因此,在大量用户同时请求获得虚拟装置的情况下,云数据中心提供虚拟装置的性能会进一步降低。
[0005]因此,希望对现有的方案进行改进,以优化提供虚拟装置的性能。

【发明内容】

[0006]考虑到以上问题,提出本发明,旨在对现有技术中提供虚拟装置的方案进行优化,提高效率。
[0007]根据本发明的一个方面,提出了一种提供虚拟装置的方法,包括:基于接收到的获取特定虚拟装置的请求,获取所述特定虚拟装置的元数据,所述元数据描述所述特定虚拟装置涉及的虚拟机的信息;根据所述元数据,确定所述特定虚拟装置与至少一个其他虚拟装置的关联关系;根据所述关联关系,提供用于获取所述特定虚拟装置的资源信息,所述资源信息包括多个资源地址,所述多个资源地址中的至少一个指向所述至少一个其他虚拟装置的存储位置。
[0008]根据本发明的另一个方面,提出了一种提供虚拟装置的设备,包括:元数据获取单元,配置为,基于接收到的获取特定虚拟装置的请求,获取所述特定虚拟装置的元数据,所述元数据描述所述特定虚拟装置涉及的虚拟机的信息;关联关系确定单元,配置为,根据所述元数据,确定所述特定虚拟装置与至少一个其他虚拟装置的关联关系;资源信息提供单元,配置为,根据所述关联关系,提供用于获取所述特定虚拟装置的资源信息,所述资源信息包括多个资源地址,所述多个资源地址中的至少一个指向所述至少一个其他虚拟装置的存储位置。
[0009]利用本发明实施例的方法和设备,可以在用户向云数据中心请求获得虚拟装置时,为用户提供更多资源选择,从而提高用户获取虚拟装置的效率,减小对云数据中心的网络传输压力。
【专利附图】

【附图说明】
[0010]通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
[0011]图1表示根据本发明一实施例的云计算节点;
[0012]图2表示根据本发明一实施例的云计算环境;
[0013]图3表示根据本发明一实施例的抽象模型层;
[0014]图4示出根据本发明一个实施例的提供虚拟装置的方法的流程图;
[0015]图5示出根据本发明一个实施例确定关联关系的子步骤;
[0016]图6示出根据一个例子的OVF描述文件的一个区段的内容;
[0017]图7示出根据一个实施例的提供资源信息的步骤;
[0018]图8示出本发明一个实施例的应用场景;以及
[0019]图9示出根据本发明一个实施例的设备的框图。
【具体实施方式】
[0020]下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0021]首先应当理解,尽管本公开包括关于云计算的详细描述,但其中记载的技术方案的实现却不限于云计算环境,而是能够结合现在已知或以后开发的任何其它类型的计算环境而实现。
[0022]云计算是一种服务交付模式,用于对共享的可配置计算资源池进行方便、按需的网络访问。可配置计算资源是能够以最小的管理成本或与服务提供者进行最少的交互就能快速部署和释放的资源,例如可以是网络、网络带宽、服务器、处理、内存、存储、应用、虚拟机和服务。这种云模式可以包括至少五个特征、至少三个服务模型和至少四个部署模型。
[0023]特征包括:
[0024]按需自助式服务:云的消费者在无需与服务提供者进行人为交互的情况下能够单方面自动地按需部署诸如服务器时间和网络存储等的计算能力。
[0025]广泛的网络接入:计算能力可以通过标准机制在网络上获取,这种标准机制促进了通过不同种类的瘦客户机平台或厚客户机平台(例如移动电话、膝上型电脑、个人数字助理PDA)对云的使用。
[0026]资源池:提供者的计算资源被归入资源池并通过多租户(mult1-tenant)模式服务于多重消费者,其中按需将不同的实体资源和虚拟资源动态地分配和再分配。一般情况下,消费者不能控制或甚至并不知晓所提供的资源的确切位置,但可以在较高抽象程度上指定位置(例如国家、州或数据中心),因此具有位置无关性。
[0027]迅速弹性:能够迅速、有弹性地(有时是自动地)部署计算能力,以实现快速扩展,并且能迅速释放来快速缩小。在消费者看来,用于部署的可用计算能力往往显得是无限的,并能在任意时候都能获取任意数量的计算能力。
[0028]可测量的服务:云系统通过利用适于服务类型(例如存储、处理、带宽和活跃用户帐号)的某种抽象程度的计量能力,自动地控制和优化资源效用。可以监测、控制和报告资源使用情况,为服务提供者和消费者双方提供透明度。
[0029]服务模型如下:
[0030]软件即服务(SaaS):向消费者提供的能力是使用提供者在云基础架构上运行的应用。可以通过诸如网络浏览器的瘦客户机接口(例如基于网络的电子邮件)从各种客户机设备访问应用。除了有限的特定于用户的应用配置设置外,消费者既不管理也不控制包括网络、服务器、操作系统、存储、乃至单个应用能力等的底层云基础架构。
[0031]平台即服务(PaaS):向消费者提供的能力是在云基础架构上部署消费者创建或获得的应用,这些应用利用提供者支持的程序设计语言和工具创建。消费者既不管理也不控制包括网络、服务器、操作系统或存储的底层云基础架构,但对其部署的应用具有控制权,对应用托管环境配置可能也具有控制权。
[0032]基础架构即服务(IaaS):向消费者提供的能力是消费者能够在其中部署并运行包括操作系统和应用的任意软件的处理、存储、网络和其他基础计算资源。消费者既不管理也不控制底层的云基础架构,但是对操作系统、存储和其部署的应用具有控制权,对选择的网络组件(例如主机防火墙)可能具有有限的控制权。
[0033]部署模型如下:
[0034]私有云:云基础架构单独为某个组织运行。云基础架构可以由该组织或第三方管理并且可以存在于该组织内部或外部。
[0035]共同体云:云基础架构被若干组织共享并支持有共同利害关系(例如任务使命、安全要求、政策和合规考虑)的特定共同体。共同体云可以由共同体内的多个组织或第三方管理并且可以存在于该共同体内部或外部。
[0036]公共云:云基础架构向公众或大型产业群提供并由出售云服务的组织拥有。
[0037]混合云:云基础架构由两个或更多部署模型的云(私有云、共同体云或公共云)组成,这些云依然是独特的实体,但是通过使数据和应用能够移植的标准化技术或私有技术(例如用于云之间的负载平衡的云突发流量分担技术)绑定在一起。
[0038]云计算环境是面向服务的,特点集中在无状态性、低耦合性、模块性和语意的互操作性。云计算的核心是包含互连节点网络的基础架构。
[0039]现在参考图1,其中显示了云计算节点的一个例子。图1显示的云计算节点10仅仅是适合的云计算节点的一个示例,不应对本发明实施例的功能和使用范围带来任何限制。总之,云计算节点10能够被用来实现和/或执行以上所述的任何功能。
[0040]云计算节点10具有计算机系统/服务器12,其可与众多其它通用或专用计算系统环境或配置一起操作。众所周知,适于与计算机系统/服务器12 —起操作的计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统、大型计算机系统和包括上述任意系统的分布式云计算技术环境,等
坐寸ο
[0041]计算机系统/服务器12可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括执行特定的任务或者实现特定的抽象数据类型的例程、程序、目标程序、组件、逻辑、数据结构等。计算机系统/服务器12可以在通过通信网络链接的远程处理设备执行任务的分布式云计算环境中实施。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
[0042]如图1所示,云计算节点10中的计算机系统/服务器12以通用计算设备的形式表现。计算机系统/服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
[0043]总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
[0044]计算机系统/服务器12典型地包括多种计算机系统可读介质。这些介质可以是能够被计算机系统/服务器12访问的任意可获得的介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
[0045]系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机系统/服务器12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图1未显示,通常称为“硬盘驱动器”)。尽管图1中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如⑶-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
[0046]具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
[0047]计算机系统/服务器12也可以与一个或多个外部设备14 (例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的设备通信,和/或与使得该计算机系统/服务器12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口 22进行。并且,计算机系统/服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机系统/服务器12的其它模块通信。应当明白,尽管图中未示出,其它硬件和/或软件模块可以与计算机系统/服务器12 —起操作,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统
坐寸ο
[0048]现在参考图2,其中显示了示例性的云计算环境50。如图所示,云计算环境50包括云计算消费者使用的本地计算设备可以与其相通信的一个或者多个云计算节点10,本地计算设备例如可以是个人数字助理(PDA)或移动电话54A,台式电脑54B、笔记本电脑54C和/或汽车计算机系统54N。云计算节点10之间可以相互通信。可以在包括但不限于如上所述的私有云、共同体云、公共云或混合云或者它们的组合的一个或者多个网络中将云计算节点10进行物理或虚拟分组(图中未显示)。这样,云的消费者无需在本地计算设备上维护资源就能请求云计算环境50提供的基础架构即服务(IaaS)、平台即服务(PaaS)和/或软件即服务(SaaS)。应当理解,图2显示的各类计算设备54A-N仅仅是示意性的,云计算节点10以及云计算环境50 可以与任意类型网络上和/或网络可寻址连接的任意类型的计算设备(例如使用网络浏览器)通信。
[0049]现在参考图3,其中显示了云计算环境50 (图2)提供的一组功能抽象层。首先应当理解,图3所示的组件、层以及功能都仅仅是示意性的,本发明的实施例不限于此。如图3所示,提供下列层和对应功能:
[0050]硬件和软件层60包括硬件和软件组件。硬件组件的例子包括:主机,例如IBM? zSeries?系统;基于RISC (精简指令集计算机)体系结构的服务器,例如IBM pSeries?系统;]BM xSeries?系统;丨BM BladeCenter?系统;存储设备;网络和
网络组件。软件组件的例子包括:网络应用服务器软件,例如IBM WebSphere?应用服务器软件;数据库软件,例如IBM DB2?数据库软件。(IBM, zSeries, pSeries, xSeries, BladeCenter, WebSphere以及DB2是国际商业机器公司在全世界各地的注册商标)。
[0051]虚拟层62提供一个抽象层,该层可以提供下列虚拟实体的例子:虚拟服务器、虚拟存储、虚拟网络(包括虚拟私有网络)、虚拟应用和操作系统,以及虚拟客户端。
[0052]在一个示例中,管理层64可以提供下述功能:资源供应功能:提供用于在云计算环境中执行任务的计算资源和其它资源的动态获取;计量和定价功能:在云计算环境内对资源的使用进行成本跟踪,并为此提供帐单和发票。在一个例子中,该资源可以包括应用软件许可。安全功能:为云的消费者和任务提供身份认证,为数据和其它资源提供保护。用户门户功能:为消费者和系统管理员提供对云计算环境的访问。服务水平管理功能:提供云计算资源的分配和管理,以满足必需的服务水平。服务水平协议(SLA)计划和履行功能--为根据SLA预测的对云计算资源未来需求提供预先安排和供应。
[0053]工作负载层66提供云计算环境可能实现的功能的示例。在该层中,可提供的工作负载或功能的示例包括:地图绘制与导航;软件开发及生命周期管理;虚拟教室的教学提供;数据分析处理;交易处理;以及虚拟装置的提供。
[0054]下面描述本发明实施例的具体执行方式。在本发明的实施例中,为了向用户提供虚拟装置,首先分析虚拟装置对应的元数据,该元数据用于描述虚拟装置所涉及的虚拟机的信息。通过分析这样的元数据,可以确定该虚拟装置与其他虚拟装置的关联关系,或“依赖性”关系,该关联关系示出不同虚拟装置之间是否共享相同或相似的虚拟机。基于这样的关联关系,可以在用户请求获得该虚拟装置时,向用户返回多个资源地址,其中不仅有资源地址指向该虚拟装置在云数据中心的存储位置,还有部分资源地址指向与该虚拟装置关联的其他虚拟装置。由此,用户可以选择性地通过指向其他虚拟装置的资源地址获取需要的虚拟装置,从而提高下载速度,降低云数据中心的传输压力。
[0055]图4示出根据本发明一个实施例的提供虚拟装置的方法的流程图。如图4所示,提供虚拟装置的方法包括:步骤42,基于接收到的获取特定虚拟装置的请求,获取所述特定虚拟装置的元数据,所述元数据描述所述特定虚拟装置涉及的虚拟机的信息;步骤44,根据上述元数据,确定所述特定虚拟装置与至少一个其他虚拟装置的关联关系;步骤46,根据所述关联关系,提供用于获取所述特定虚拟装置的资源信息,所述资源信息包括多个资源地址,所述多个资源地址中的至少一个指向所述至少一个其他虚拟装置的存储位置。下面结合具体例子描述上述各个步骤的执行。
[0056]首先,在步骤42,基于接收到的获取特定虚拟装置的请求,获取用于描述该虚拟装置的元数据。更具体地,步骤42包括,首先基于接收到的请求确定要获取的特定虚拟装置,然后,基于确定的虚拟装置获取对应的元数据。
[0057]一般地,用户请求包含要获取的特定虚拟装置的唯一标识符。基于该标识符,云数据中心可以确定出所述特定虚拟装置。在一个实施例中,用户也可以在请求中指定将一个或多个虚拟机封装成特定虚拟装置。在这样的情况下,云数据中心可以根据用户请求,对指定的虚拟机进行封装,从而形成所需要的虚拟装置。所形成的虚拟装置也就是上述要获取的特定虚拟装置。
[0058]在一个实施例中,为了加快虚拟装置中映像文件的传输速度,希望采用P2P传输方式。P2P传输方式已为本领域技术人员所熟知。为了进行P2P传输,用户首先要获取torrent种子文件,其包含服务器信息和目标文件信息。具体地,服务器信息指定服务器的地址和针对服务器的设置。然而,该服务器只是负责提供目标文件的可用下载源的信息,并不必然存储有目标文件。而目标文件信息则是由服务器将目标文件虚拟地划分为块,并对各个块进行特定编码而生成的文件。一旦用户通过种子文件连接到服务器,服务器识别出种子文件所涉及的目标文件,并将目标文件的可用下载源的信息返回给用户。用户于是可以从可用的下载源获取目标文件。在通过云数据中心提供虚拟装置的情况下,云数据中心可以作用为上述P2P传输的服务器。相应地,在一个实施例中,用户可以利用torrent种子文件来请求获取特定虚拟装置。响应于这样利用torrent文件发出的请求,在步骤42中,可以通过分析该torrent文件中的目标文件信息确定出要获取的特定虚拟装置。
[0059]在确定出要获取的特定虚拟装置的基础上,就可以获得该特定虚拟装置对应的元数据。一般地,虚拟装置由一个或多个虚拟机经过压缩和封装而形成,相应地,一个虚拟装置可以对应于一个压缩包或一个封装形成的数据包,其中包含所封装的各个虚拟机的磁盘映像文件。在一个实施例中,虚拟装置的元数据可以体现为压缩包或数据包的属性信息。在另一实施例中,上述数据包中直接包含对各个虚拟机进行描述的描述文件。这样的描述文件可以作为对应的虚拟装置的元数据。因此,获取特定虚拟装置的元数据的过程可以包括,从与所述特定虚拟装置对应的封装数据包中提取出对涉及的虚拟机进行描述的描述文件,将该描述文件作为特定虚拟装置的元数据。
[0060]在一个实施例中,上述特定虚拟装置通过将虚拟机利用OVF标准来封装而形成,因此对应于云数据中心存储的一个OVF包。如前所述,OVF包中包含有OVF描述文件,用于描述虚拟装置所涉及的各个虚拟机的配置信息。因此,该OVF描述文件可以作用为所述特定虚拟装置的元数据。相应地,在步骤42中,可以通过从对应的OVF包中提取OVF描述文件,来获取所述特定虚拟装置的元数据。
[0061]在另一实施例中,特定虚拟装置利用其他标准而封装,从而对应于不同格式的数据包。在这样的情况下,可以针对数据包的格式类似地提取出不同格式的描述文件作为虚拟装置的元数据。
[0062]在获取到用户所请求的特定虚拟装置的元数据的基础上,在步骤44,根据上述元数据,确定所述特定虚拟装置与至少一个其他虚拟装置的关联关系,所述关联关系旨在示出所述特定虚拟装置与其他虚拟装置之间对于相同或相似虚拟机的共享。
[0063]图5示出根据本发明一个实施例确定上述关联关系的子步骤,即上述步骤44的子步骤。如图5所示,为了确定特定虚拟装置与其他虚拟装置的关联关系,首先在步骤441,从所述元数据中获取所述特定虚拟装置涉及的各个虚拟机的虚拟机信息。如前所述,一般地,元数据,特别是特定虚拟装置对应的封装数据包中的描述文件,用于描述该特定虚拟装置所涉及的各个虚拟机。因此,基于例如描述文件的元数据,可以容易地获取特定虚拟装置涉及的各个虚拟机的虚拟机信息。上述虚拟机信息可以包括,虚拟机名称、版本、(虚拟)硬件参数、操作系统信息等。可以理解,虚拟机信息的具体项目可以根据需要进行预先设定,因此可以不限于以上举例的内容。
[0064]在一个具体例子中,特定虚拟装置的元数据为OVF描述文件。如本领域技术人员所知,OVF描述文件中包含多个区段,分别描述磁盘信息、网络配置信息、软件信息等。图6示出根据一个例子的OVF描述文件的一个区段的内容。具体地,图6所示的区段描述了虚拟机的管理程序(hypervisor)、系统环境、各种CPU配置等。相应地,可以将虚拟机信息设定为包含以上这些项目中的一个或多个。在其他实施例中,可以将虚拟机信息设定为包含其他项目或更多项目。
[0065]接着,在步骤442,将步骤441获得的虚拟机信息与至少一个其他虚拟装置所对应的虚拟机信息进行比对。可以理解,对于其他虚拟装置,可以类似地获取其对应的元数据,进而从元数据中获取所涉及的虚拟机信息。于是,可以将特定虚拟装置对应的虚拟机信息与其他虚拟装置对应的虚拟机信息进行比对。由于虚拟机信息可以包含多个项目,上述比对包括,逐个比对虚拟机信息中包含的各个项目的内容。
[0066]进一步地,在步骤443,响应于所述特定虚拟装置中某个虚拟机的虚拟机信息与至少一个其他虚拟装置中的对应虚拟机的虚拟机信息相同,将所述关联关系确定为,所述特定虚拟装置与所述至少一个其他虚拟装置共享上述某个虚拟机。
[0067]在一个实施例中,如果两个虚拟机的虚拟机信息中每个项目分别对应相同,则认为虚拟机信息是相同的。在另一实施例中,可以预定一比例,如果两个虚拟机的虚拟机信息中有预定比例的项目相同,则认为虚拟机信息相同。步骤443中可以采用以上任一准则来判断虚拟机信息是否相同。在判断特定虚拟装置中某个虚拟机的虚拟机信息与其他虚拟装置中的对应虚拟机的虚拟机信息相同的情况下,在一个实施例中,可以认为两个虚拟机是相同的,因此,特定虚拟装置与其他虚拟装置共享该某个虚拟机。
[0068]在一个实施例中,元数据中对于虚拟机的描述还附加地包含定制信息,其中定制信息表示用户对虚拟机的具体应用进行的一些设定。在一个实施例中,例如在OVF描述文件的情况下,定制信息记录为脚本的形式。OVF描述文件通过脚本引用来引入相应的定制信息。如果虚拟机VMl和VM2具有相同的虚拟机信息,但VM2附加地包含有定制信息,则可以通过在获得VMl的映像的基础上进一步应用VM2的定制信息来获得VM2。在这样的情况下,如果两个虚拟机的虚拟机信息相同但定制信息不同,则可以认为这两个虚拟机是相似的虚拟机。相应地,在一个实施例中,在步骤443的基础上,附加地,响应于所述某个虚拟机的虚拟机信息和对应虚拟机的虚拟机信息相同但定制信息不同,将所述关联关系确定为,所述特定虚拟装置与所述至少一个其他虚拟装置部分地共享上述某个虚拟机。
[0069]在一个实施例中,所述关联关系包括所述特定虚拟装置与至少一个其他虚拟装置的直接关联关系。在一个实施例中,所述关联关系还包括所述特定虚拟装置与至少一个其他虚拟装置之间借由中间虚拟装置的间接关联关系。例如,特定虚拟装置与虚拟装置I共享若干虚拟机,因而具有直接关联关系。同时,虚拟装置I与另一虚拟装置2之间也存在虚拟机共享的关联关系。此时,可以认为,特定虚拟装置与上述虚拟装置2之间借由中间虚拟装置I而具有间接关联关系。
[0070]上述关联关系可以记录为多种形式。在个实施例中,上述关联关系记录为列表形式,该列表列出与特定虚拟装置相关联的其他虚拟装置的标识。在另一实施例中,以拓扑图的形式记录上述关联关系。这样的记录方式尤其适于同时记录各个虚拟装置之间的直接关联和间接关系。
[0071]在一个实施例中,上述关联关系还包括特定虚拟装置与至少一个其他虚拟装置的关联程度信息。该关联程度依赖于以下信息:特定虚拟装置与各个其他虚拟装置所共享的虚拟机的数据量,共享的程度(完全共享或是部分共享),关联的类型(直接关联或是间接关联),等等。关联程度可以基于以上信息被量化。
[0072]在一个实施例中,响应于步骤42的请求,实时执行以上步骤441-443,由此确定特定虚拟装置与其他虚拟装置的关联关系。在另一实施例中,基于各个虚拟装置的元数据,预先计算并维持各个虚拟装置之间的关联关系记录。可以理解,通过将云数据中心中的各个虚拟装置作为“特定虚拟装置”,由此执行上述步骤441-443,可以计算各个虚拟装置之间的关联关系,由此形成关联关系记录。在虚拟装置的信息发生变更时,可以更新上述关联关系,由此维持关联关系记录。在这样的情况下,在步骤44,可以从预先计算和维持的关联关系记录中读取与特定虚拟装置相关的信息,由此确定该特定虚拟装置与其他虚拟装置的关联关系。
[0073]在确定出特定虚拟装置与其他虚拟装置的关联关系的基础上,在步骤46,根据所述关联关系,提供用于获取特定虚拟装置的资源信息,其中包括指向其他虚拟装置的资源地址。
[0074]图7示出根据一个实施例的提供资源信息的步骤,即以上步骤46的子步骤。如图7所示,首先在步骤461,根据所述关联关系,确定所述特定虚拟装置以及与其相关联的所述至少一个其他虚拟装置的存储位置。在一个实施例中,上述存储位置是特定虚拟装置和所述至少一个其他虚拟装置在云数据中心中的存储位置。在一些情况下,云数据中心可能采用分布式计算设备来实现。此时,在步骤461中需要确定各个虚拟装置存储在哪个计算设备的什么位置。在一个实施例中,用户与云数据中心之间采用P2P传输方式,并且用户也可以作为服务端来提供文件下载。此时,已经下载或正在下载特定虚拟装置及其相关联的其他虚拟装置的其他用户的用户设备也可以作为下载源。相应地,在步骤461中,确定存储位置还包括,确定特定虚拟装置和所述至少一个其他虚拟装置在其他用户的用户设备中的存储位置。
[0075]接着,在步骤462,产生多个资源地址,其中至少一个资源地址指向所述至少一个其他虚拟装置的存储位置。具体地,在一个实施例中,产生的多个资源地址包括至少一个指向所述特定虚拟装置的存储位置的资源地址,和至少一个指向所述至少一个其他虚拟装置的存储位置的资源地址。根据一个实施例中,资源地址提供为http URL链接的形式。
[0076]如前所述,在一个实施例中,上述存储位置是在云数据中心中的存储位置。基于这样的存储位置,可以产生指向云数据中心的资源地址。由于各个虚拟装置在云数据中心的存储位置是固定的,因此,在一个实施例中,可以预先维持各个虚拟装置和指向其存储位置的各个资源地址的对应关系。在步骤462,可以根据预先维持的对应关系产生指向特定虚拟装置的资源地址和指向所述至少一个其他虚拟装置的资源地址。
[0077]在一个实施例中,上述存储位置还包括,特定虚拟装置和所述至少一个其他虚拟装置在其他用户的用户设备中的存储位置。此时,在步骤462中,产生指向上述其他用户的用户设备的资源地址。在一个例子中,这样的资源地址可以包括,其他用户的用户设备的IP地址,端口,访问路径等。
[0078]接着,在步骤463,基于所述多个资源地址提供资源信息。在一个实施例中,直接提供步骤462产生的多个资源地址作为资源信息。在另一实施例中,将步骤462产生的多个资源地址进行排序。排序可以依照以下标准中的一个或多个进行:资源地址涉及的虚拟装置与特定虚拟装置的关联程度、资源地址指向的下载源的平均访问速度、实时访问速度等。由此,在资源信息中提供经过排序的多个资源地址。
[0079]在一个实施例中,资源信息还包括,针对所述多个资源地址中的至少一部分提供的注释信息。这样的注释信息可以对资源地址进行进一步补充说明,例如该资源地址指向的虚拟装置与要获取的特点虚拟装置所共享的数据部分(例如,哪个虚拟机),共享类型是完全共享还是部分共享等。由此,注释信息可以帮助用户经由资源地址准确获取需要的数据部分。
[0080]由于返回给用户的资源信息为用户提供了多个可选的资源地址,用户可以选择性地经由这些资源地址获取所需的特定虚拟装置。特别是,在直接指向特定虚拟装置在云数据中心的存储位置的资源地址不可用,或下载速度不够理想时,可以经由指向相关联的其他虚拟装置的资源地址来间接获得特定虚拟装置的部分虚拟机数据。更特别地,在P2P传输方式下,用户还可以同时从其他用户下载获得特定虚拟装置和与之关联的其他虚拟装置的数据,从而进一步增加了获取数据的速度和效率。可以理解,在这样的情况下,用户将从不同资源地址获取到特定虚拟装置的各个数据片段。如前所述,针对P2P传输而提供的torrent文件中包含有目标文件信息,该目标文件信息是将目标文件划分为多个块,针对各个块进行特定编码而生成的文件。这里最常用的是哈希编码。哈希编码是利用哈希函数将输入的文件内容编码为特定数字。通过对下载得到的文件内容进行同样的哈希编码,并与torrent文件中存储的对应特定数字进行比较,可以确定下载的文件内容是否正确、完整。因此,在用户从多个不同资源地址分别获得特定虚拟装置的不同数据片段的情况下,可以利用torrent文件确保来自不同资源地址的数据片段的完整性和正确性。
[0081]图8示出本发明一个实施例的应用场景。在图8的例子中,用户A向云数据中心请求获得特定虚拟装置VAl,其中VAl涉及虚拟机VM1,VM2和VM3。通过对VAl的元数据进行分析,云数据中心可以确定,VAl与另一虚拟装置VA2共享同样的虚拟机VMl和VM2,并与又一虚拟装置VM3共享虚拟机VM3。因此,虚拟装置VAl与VA2和VA3相关联。并且,云数据中心采用分布式计算设备,其中VAl存储在服务器SI中,VA2存储在S2中,VA3存储在S3中。在这样的情况下,云数据中心可以向用户A提供分别指向VA1,VA2和VA3的资源地址Addl,Add2和Add3。这样,除了从存储有VAl的SI直接获得虚拟装置VAl的数据之外,用户A还可以基于Add2从存储VA2的S2获取虚拟机VMl和VM2的数据,基于Add3从存储VA3的S3获取虚拟机VM3的数据,进而获取到VAl所需的全部虚拟机数据。在VAl与其他虚拟装置就某个虚拟机部分共享的情况下,用户可以根据资源地址的注释信息,在下载的虚拟机的基础上进一步应用定制信息,从而获得所需的虚拟机。在支持P2P传输的情况下,用户A还可以进一步从已经下载和正在下载VA1,VA2和VA3的其他用户的用户设备分别获取VAl,VA2和VA3的数据,进而获取所需要的特定虚拟装置VAl的全部数据。这些下载路径由虚线示出。
[0082]相比于现有技术中仅仅从云数据中心直接下载VAl的方式,图8的例子显然提供了更多的可用下载源。这样,用户可以选择性地同时从多个下载源下载VAl所需的虚拟机数据的片段,从而极大提高了获取特定虚拟装置VAl的效率。另一方面,由于用户可以通过其他下载源获取VAl的数据,云数据中心的网络压力得以减轻。
[0083]基于同一发明构思,本发明的实施例还提出了一种提供虚拟装置的设备。图9示出根据本发明一个实施例的设备的框图。在图9中,提供虚拟装置的设备总体上示出为900。如图所示,设备900包括:元数据获取单元92,配置为,基于接收到的获取特定虚拟装置的请求,获取所述特定虚拟装置的元数据,所述元数据描述所述特定虚拟装置涉及的虚拟机的信息;关联关系确定单元94,配置为,根据所述元数据,确定所述特定虚拟装置与至少一个其他虚拟装置的关联关系;以及资源信息提供单元96,配置为,根据所述关联关系,提供用于获取所述特定虚拟装置的资源信息,所述资源信息包括多个资源地址,所述多个资源地址中的至少一个指向所述至少一个其他虚拟装置的存储位置。
[0084]在一个实施例中,上述元数据获取单元92配置为:基于接收到的所述请求确定要获取的特定虚拟装置,基于确定的虚拟装置获取对应的元数据。
[0085]进一步地,根据一个实施例,所述获取特定虚拟装置的请求利用P2P传输中的种子文件发出;相应地,所述元数据获取单元92配置为,通过分析该种子文件中的目标文件信息确定出要获取的特定虚拟装置。
[0086]根据一个实施例,上述元数据获取单元92还配置为,从与所述特定虚拟装置对应的封装数据包中提取出对涉及的虚拟机进行描述的描述文件,将该描述文件作为所述特定虚拟装置的元数据。
[0087]在一个实施例中,上述关联关系确定单元94包括(未示出):虚拟机信息获取模块,配置为从所述元数据中获取所述特定虚拟装置涉及的各个虚拟机的虚拟机信息;虚拟机信息比对模块,配置为将获取的所述特定虚拟装置涉及的各个虚拟机的虚拟机信息与至少一个其他虚拟装置所对应的虚拟机信息进行比对;以及确定模块,配置为,响应于所述特定虚拟装置中某个虚拟机的虚拟机信息与至少一个其他虚拟装置中的对应虚拟机的虚拟机信息相同,将所述关联关系确定为,所述特定虚拟装置与所述至少一个其他虚拟装置共享上述某个虚拟机。
[0088]根据一个实施例,上述确定模块进一步配置为,响应于所述某个虚拟机的虚拟机信息和对应虚拟机的虚拟机信息相同但定制信息不同,将所述关联关系确定为,所述特定虚拟装置与所述至少一个其他虚拟装置部分地共享上述某个虚拟机。
[0089]在一个实施例中,上述关联关系确定单元94配置为,从预先计算和维持的关联关系记录中读取与所述特定虚拟装置相关的信息,由此确定该特定虚拟装置与至少一个其他虚拟装置的关联关系。
[0090]在一个实施例中,上述资源信息提供单元96包括(未示出):存储位置确定模块,配置为根据所述关联关系,确定所述特定虚拟装置以及与其相关联的所述至少一个其他虚拟装置的存储位置;资源地址产生模块,配置为产生多个资源地址,其中至少一个资源地址指向所述至少一个其他虚拟装置的存储位置;以及提供模块,配置为基于所述多个资源地址提供资源信息。
[0091]根据一个实施例,上述存储位置包括,所述特定虚拟装置和所述至少一个其他虚拟装置在其他用户的用户设备中的存储位置。
[0092]根据一个实施例,上述提供模块配置为,将产生的所述多个资源地址进行排序;在资源信息中提供经过排序的所述多个资源地址。
[0093]根据一个实施例,上述资源信息还包括,针对所述多个资源地址中的至少一部分提供的注释信息,所述注释信息包括以下内容中的至少一项:共享的数据部分和共享类型。
[0094]在一个实施例中,上述设备900包含在云数据中心中。在另一实施例中,上述设备900作用为单独的工具,与云数据中心通信,从而辅助云数据中心向用户提供虚拟装置。
[0095]以上用于提供虚拟装置的设备900的具体执行方式可以参照之前结合具体例子对图4的方法的描述,在此不再赘述。
[0096]利用本发明实施例的方法和设备,可以在用户向云数据中心请求获得虚拟装置时,为用户提供更多资源选择,从而提高用户获取虚拟装置的效率,减小对云数据中心的网络传输压力。
[0097]以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本【技术领域】的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本【技术领域】的其它普通技术人员能理解本文披露的各实施例。
【权利要求】
1.一种提供虚拟装置的方法,包括: 基于接收到的获取特定虚拟装置的请求,获取所述特定虚拟装置的元数据,所述元数据描述所述特定虚拟装置涉及的虚拟机的信息; 根据所述元数据,确定所述特定虚拟装置与至少一个其他虚拟装置的关联关系; 根据所述关联关系,提供用于获取所述特定虚拟装置的资源信息,所述资源信息包括多个资源地址,所述多个资源地址中的至少一个指向所述至少一个其他虚拟装置的存储位置。
2.根据权利要求1所述的方法,其中所述获取特定虚拟装置的元数据包括:基于接收到的所述请求确定要获取的特定虚拟装置,基于确定的虚拟装置获取对应的元数据。
3.根据权利要求2所述的方法,其中所述请求利用P2P传输中的种子文件发出,所述确定要获取的特定虚拟装置包括,通过分析该种子文件中的目标文件信息确定出要获取的特定虚拟装置。
4.根据权利要 求2所述的方法,其中基于确定的虚拟装置获取对应的元数据包括,从与所述特定虚拟装置对应的封装数据包中提取出对涉及的虚拟机进行描述的描述文件,将该描述文件作为所述特定虚拟装置的元数据。
5.根据权利要求1所述的方法,其中确定所述特定虚拟装置与至少一个其他虚拟装置的关联关系包括: 从所述元数据中获取所述特定虚拟装置涉及的各个虚拟机的虚拟机信息; 将获取的所述特定虚拟装置涉及的各个虚拟机的虚拟机信息与至少一个其他虚拟装置所对应的虚拟机信息进行比对;以及 响应于所述特定虚拟装置中某个虚拟机的虚拟机信息与至少一个其他虚拟装置中的对应虚拟机的虚拟机信息相同,将所述关联关系确定为,所述特定虚拟装置与所述至少一个其他虚拟装置共享上述某个虚拟机。
6.根据权利要求5所述的方法,其中,响应于所述某个虚拟机的虚拟机信息和对应虚拟机的虚拟机信息相同但定制信息不同,将所述关联关系确定为,所述特定虚拟装置与所述至少一个其他虚拟装置部分地共享上述某个虚拟机。
7.根据权利要求1所述的方法,其中确定所述特定虚拟装置与至少一个其他虚拟装置的关联关系包括,从预先计算和维持的关联关系记录中读取与所述特定虚拟装置相关的信息,由此确定该特定虚拟装置与至少一个其他虚拟装置的关联关系。
8.根据权利要求1所述的方法,其中所述提供用于获取所述特定虚拟装置的资源信息包括: 根据所述关联关系,确定所述特定虚拟装置以及与其相关联的所述至少一个其他虚拟装置的存储位置; 产生多个资源地址,其中至少一个资源地址指向所述至少一个其他虚拟装置的存储位置;以及 基于所述多个资源地址提供资源信息。
9.根据权利要求7的方法,其中所述存储位置包括,所述特定虚拟装置和所述至少一个其他虚拟装置在其他用户的用户设备中的存储位置。
10.根据权利要求7的方法,其中基于所述多个资源地址提供资源信息包括,将产生的所述多个资源地址进行排序;在资源信息中提供经过排序的所述多个资源地址。
11.根据权利要求7的方法,其中所述资源信息还包括,针对所述多个资源地址中的至少一部分提供的注释信息,所述注释信息包括以下内容中的至少一项:共享的数据部分和共享类型。
12.一种提供虚拟装置的设备,包括: 元数据获取单元,配置为,基于接收到的获取特定虚拟装置的请求,获取所述特定虚拟装置的元数据,所述元数据描述所述特定虚拟装置涉及的虚拟机的信息; 关联关系确定单元,配置为,根据所述元数据,确定所述特定虚拟装置与至少一个其他虚拟装置的关联关系; 资源信息提供单元,配置为,根据所述关联关系,提供用于获取所述特定虚拟装置的资源信息,所述资源信息包括多个资源地址,所述多个资源地址中的至少一个指向所述至少一个其他虚拟装置的存储位置。
13.根据权利要求12所述的设备,其中所述元数据获取单元配置为:基于接收到的所述请求确定要获取的特定虚拟装置,基于确定的虚拟装置获取对应的元数据。
14.根据权利要求13所述的设备,其中所述请求利用P2P传输中的种子文件发出,所述元数据获取单元配置为,通过分析该种子文件中的目标文件信息确定出要获取的特定虚拟>j-U ρ?α 装直。
15.根据权利要求13所述的设备,其中所述元数据获取单元配置为,从与所述特定虚拟装置对应的封装数据包中提取出对涉及的虚拟机进行描述的描述文件,将该描述文件作为所述特定虚拟装置的元数据。
16.根据权利要求12所述的设备,其中关联关系确定单元包括: 虚拟机信息获取模块,配置为从所述元数据中获取所述特定虚拟装置涉及的各个虚拟机的虚拟机信息; 虚拟机信息比对模块,配置为将获取的所述特定虚拟装置涉及的各个虚拟机的虚拟机信息与至少一个其他虚拟装置所对应的虚拟机信息进行比对;以及 确定模块,配置为,响应于所述特定虚拟装置中某个虚拟机的虚拟机信息与至少一个其他虚拟装置中的对应虚拟机的虚拟机信息相同,将所述关联关系确定为,所述特定虚拟装置与所述至少一个其他虚拟装置共享上述某个虚拟机。
17.根据权利要求16所述的设备,其中,所述确定模块配置为,响应于所述某个虚拟机的虚拟机信息和对应虚拟机的虚拟机信息相同但定制信息不同,将所述关联关系确定为,所述特定虚拟装置与所述至少一个其他虚拟装置部分地共享上述某个虚拟机。
18.根据权利要求12所述的设备,其中所述关联关系确定单元配置为,从预先计算和维持的关联关系记录中读取与所述特定虚拟装置相关的信息,由此确定该特定虚拟装置与至少一个其他虚拟装置的关联关系。
19.根据权利要求12所述的设备,其中所述资源信息提供单元包括: 存储位置确定模块,配置为根据所述关联关系,确定所述特定虚拟装置以及与其相关联的所述至少一个其他虚拟装置的存储位置; 资源地址产生模块,配置为产生多个资源地址,其中至少一个资源地址指向所述至少一个其他虚拟装置的存储位置;以及提供模块,配置为基于所述多个资源地址提供资源信息。
20.根据权利要求19的设备,其中所述存储位置包括,所述特定虚拟装置和所述至少一个其他虚拟装置在其他用户的用户设备中的存储位置。
21.根据权利要求19的设备,其中所述提供模块配置为,将产生的所述多个资源地址进行排序;在资源信息中提供经过排序的所述多个资源地址。
22.根据权利要求19的设备,其中所述资源信息还包括,针对所述多个资源地址中的至少一部分提供的注释信息,所述注释信息包括以下内容中的至少一项:共享的数据部分和共享类型。
【文档编号】G06F9/455GK104021027SQ201310064426
【公开日】2014年9月3日 申请日期:2013年2月28日 优先权日:2013年2月28日
【发明者】王夕宁, 曾春光, 芮苏英, 刘昕鹏, 朱朴 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1