CN105359088B - 使用动态生成的虚拟磁盘内容优化供应时间的方法 - Google Patents
使用动态生成的虚拟磁盘内容优化供应时间的方法 Download PDFInfo
- Publication number
- CN105359088B CN105359088B CN201480038302.6A CN201480038302A CN105359088B CN 105359088 B CN105359088 B CN 105359088B CN 201480038302 A CN201480038302 A CN 201480038302A CN 105359088 B CN105359088 B CN 105359088B
- Authority
- CN
- China
- Prior art keywords
- virtual disk
- clone
- group
- binary file
- repository
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/63—Image based installation; Cloning; Build to order
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
Abstract
中间件二进制的分配包括:接收用于使用中间件服务(多个)部署工作负载的请求;选择用于托管所述中间件服务(多个)的基本操作系统(OS)映像;确定用于所述中间件服务(多个)的二进制文件(多个)在存储系统上的存储库中的位置;在所述存储系统上克隆包含所述基本OS映像的虚拟磁盘;以及将所述二进制文件(多个)从所述存储库中的所述位置复制到所述存储系统上的所述克隆的虚拟磁盘中。直接在所述存储系统上将所述二进制文件(多个)复制到所述虚拟磁盘上,而不需要穿过网络接口。仅在虚拟机(VM)的部署之前,使用所述二进制文件增强所述基本OS映像。
Description
背景技术
在云工作负载的供应中,将虚拟机(VM)部署到云以便托管中间件服务,并且将用于中间件服务或应用的二进制文件分配给虚拟机(VM)。用于二进制文件分配的一种现有方法是使用包括二进制文件的虚拟磁盘预包装VM模板。例如,可以提供用于创建和运行VM模板的不同系统管理程序,它们完全独立于彼此并且具有自己的一组虚拟磁盘。此外,每个版本的系统管理程序可以具有用于不同级别的映像子集,从而导致必须在构建时和供应时被谨慎管理的各种虚拟磁盘级别的大型矩阵。
另一种现有方法是创建公共虚拟磁盘模板,其仅包含诸如操作系统(OS)和其它公共监视包之类的公共功能的较小子集,并且不包含用于中间件服务和应用的所有二进制文件。在部署VM时,将公共映像从公共虚拟磁盘模板供应给云,并且经由到该新VM的网络连接从其他位置下载二进制文件。
发明内容
根据本发明的一个实施例,一种用于中间件二进制分配的方法接收用于使用一个或多个中间件服务部署工作负载的请求。选择用于托管所述一个或多个中间件服务的基本操作系统映像,并且确定用于所述一个或多个中间件服务的一个或多个二进制文件在存储系统上的存储库中的位置。在所述存储系统上克隆包含所述基本操作系统映像的虚拟磁盘,并且将所述一个或多个二进制文件从所述存储库中的所述位置复制到所述存储系统上的所述克隆的虚拟磁盘中。
在此还描述和要求保护对应于上面概述的方法的系统和计算机程序产品。
附图说明
图1表示根据本发明一实施例的云计算节点;
图2表示根据本发明一实施例的云计算环境;
图3表示根据本发明一实施例的抽象模型层;
图4是示出根据本发明一实施例的用于中间件二进制分配的方法的流程图;
图5是更详细示出根据本发明一实施例的用于中间件二进制分配的方法的流程图。
具体实施方式
所属技术领域的技术人员知道,本发明的各个方面可以实现为系统、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,本发明的各个方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是—但不限于—电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括例如在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括—但不限于—电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括—但不限于—无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明的各个方面的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如(Java以及所有基于Java的商标及标识都是Sun Microsystems,Inc.在美国和/或其它国家中的商标)、Smalltalk、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
下面将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其它设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article of manufacture)。
也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令提供实现流程图和/或框图中的一个或多个方框中规定的功能/动作的过程。
附图中的流程图和框图显示了根据本发明的不同实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
在此使用的术语只是为了描述特定的实施例并且并非旨在作为本发明的限制。如在此使用的,单数形式“一”、“一个”和“该”旨在同样包括复数形式,除非上下文明确地另有所指。还将理解,当在此说明书中使用时,术语“包括”和/或“包含”指定了声明的特性、整数、步骤、操作、元素和/或组件的存在,但是并不排除一个或多个其它特性、整数、步骤、操作、元素、组件和/或其组的存在或增加。
以下的权利要求中的对应结构、材料、操作以及所有功能性限定的装置或步骤的等同替换,旨在包括任何用于与在权利要求中具体指出的其它单元相组合地执行该功能的结构、材料或操作。所给出的对本发明的描述其目的在于示意和描述,并非是穷尽性的,也并非是要将本发明限定到所表述的形式。对于所属技术领域的普通技术人员来说,在不偏离本发明范围和精神的情况下,显然可以作出许多修改和变型。对实施例的选择和说明,是为了最好地解释本发明的原理和实际应用,使所属技术领域的普通技术人员能够明了,本发明可以有适合所要的特定用途的具有各种改变的各种实施方式。
首先应当理解,尽管本公开包括关于云计算的详细描述,但其中记载的技术方案的实现却不限于云计算环境,而是能够结合现在已知或以后开发的任何其它类型的计算环境而实现。
为了方便起见,“具体实施方式”包括以下定义,这些定义从Peter Mell和TimGrance所著的“Draft NIST Working Definition of Cloud Computing(云计算的草案NIST工作定义)”(日期为2009年10月7日,其在与本发明同时提交的“信息公开声明”中引用,并且其副本附加到本发明)中获得。
云计算是一种服务交付模式,用于对共享的可配置计算资源池进行方便、按需的网络访问。可配置计算资源是能够以最小的管理成本或与服务提供者进行最少的交互就能快速部署和释放的资源,例如可以是网络、网络带宽、服务器、处理、内存、存储、应用、虚拟机和服务。这种云模式可以包括至少五个特征、至少三个服务模型和至少四个部署模型。
特征包括:
按需自助式服务:云的消费者在无需与服务提供者进行人为交互的情况下能够单方面自动地按需部署诸如服务器时间和网络存储等的计算能力。
广泛的网络接入:计算能力可以通过标准机制在网络上获取,这种标准机制促进了通过不同种类的瘦客户机平台或厚客户机平台(例如移动电话、膝上型电脑、个人数字助理PDA)对云的使用。
资源池:提供者的计算资源被归入资源池并通过多租户(multi-tenant)模式服务于多重消费者,其中按需将不同的实体资源和虚拟资源动态地分配和再分配。一般情况下,消费者不能控制或甚至并不知晓所提供的资源的确切位置,但可以在较高抽象程度上指定位置(例如国家、州或数据中心),因此具有位置无关性。
迅速弹性:能够迅速、有弹性地(有时是自动地)部署计算能力,以实现快速扩展,并且能迅速释放来快速缩小。在消费者看来,用于部署的可用计算能力往往显得是无限的,并能在任意时候都能获取任意数量的计算能力。
可测量的服务:云系统通过利用适于服务类型(例如存储、处理、带宽和活跃用户帐号)的某种抽象程度的计量能力,自动地控制和优化资源效用。可以监测、控制和报告资源使用情况,为服务提供者和消费者双方提供透明度。
服务模型如下:
软件即服务(SaaS):向消费者提供的能力是使用提供者在云基础架构上运行的应用。可以通过诸如网络浏览器的瘦客户机接口(例如基于网络的电子邮件)从各种客户机设备访问应用。除了有限的特定于用户的应用配置设置外,消费者既不管理也不控制包括网络、服务器、操作系统、存储、乃至单个应用能力等的底层云基础架构。
平台即服务(PaaS):向消费者提供的能力是在云基础架构上部署消费者创建或获得的应用,这些应用利用提供者支持的程序设计语言和工具创建。消费者既不管理也不控制包括网络、服务器、操作系统或存储的底层云基础架构,但对其部署的应用具有控制权,对应用托管环境配置可能也具有控制权。
基础架构即服务(IaaS):向消费者提供的能力是消费者能够在其中部署并运行包括操作系统和应用的任意软件的处理、存储、网络和其他基础计算资源。消费者既不管理也不控制底层的云基础架构,但是对操作系统、存储和其部署的应用具有控制权,对选择的网络组件(例如主机防火墙)可能具有有限的控制权。
部署模型如下:
私有云:云基础架构单独为某个组织运行。云基础架构可以由该组织或第三方管理并且可以存在于该组织内部或外部。
共同体云:云基础架构被若干组织共享并支持有共同利害关系(例如任务使命、安全要求、政策和合规考虑)的特定共同体。共同体云可以由共同体内的多个组织或第三方管理并且可以存在于该共同体内部或外部。
公共云:云基础架构向公众或大型产业群提供并由出售云服务的组织拥有。
混合云:云基础架构由两个或更多部署模型的云(私有云、共同体云或公共云)组成,这些云依然是独特的实体,但是通过使数据和应用能够移植的标准化技术或私有技术(例如用于云之间的负载平衡的云突发流量分担技术)绑定在一起。
云计算环境是面向服务的,特点集中在无状态性、低耦合性、模块性和语意的互操作性。云计算的核心是包含互连节点网络的基础架构。
现在参考图1,其中显示了云计算节点的一个例子。图1显示的云计算节点10仅仅是适合的云计算节点的一个示例,不应对本发明实施例的功能和使用范围带来任何限制。总之,云计算节点10能够被用来实现和/或执行以上所述的任何功能。
云计算节点10具有计算机系统/服务器12,其可与众多其它通用或专用计算系统环境或配置一起操作。众所周知,适于与计算机系统/服务器12一起操作的计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统﹑大型计算机系统和包括上述任意系统的分布式云计算技术环境,等等。
计算机系统/服务器12可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括执行特定的任务或者实现特定的抽象数据类型的例程、程序、目标程序、组件、逻辑、数据结构等。计算机系统/服务器12可以在通过通信网络链接的远程处理设备执行任务的分布式云计算环境中实施。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
如图1所示,云计算节点10中的计算机系统/服务器12以通用计算设备的形式表现。计算机系统/服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
计算机系统/服务器12典型地包括多种计算机系统可读介质。这些介质可以是能够被计算机系统/服务器12访问的任意可获得的介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机系统/服务器12可以还包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图1未显示,通常称为“硬盘驱动器”)。尽管图1中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
计算机系统/服务器12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的设备通信,和/或与使得该计算机系统/服务器12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过I/O接口22进行。并且,计算机系统/服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机系统/服务器12的其它模块通信。应当明白,尽管图中未示出,其它硬件和/或软件模块可以与计算机系统/服务器12一起操作,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
现在参考图2,其中显示了示例性的云计算环境50。如图所示,云计算环境50包括云计算消费者使用的本地计算设备可以与其相通信的一个或者多个云计算节点10,本地计算设备例如可以是个人数字助理(PDA)或移动电话54A,台式电脑54B、笔记本电脑54C和/或汽车计算机系统54N。云计算节点10之间可以相互通信。可以在包括但不限于如上所述的私有云、共同体云、公共云或混合云或者它们的组合的一个或者多个网络中将云计算节点10进行物理或虚拟分组(图中未显示)。这样,云的消费者无需在本地计算设备上维护资源就能请求云计算环境50提供的基础架构即服务(IaaS)、平台即服务(PaaS)和/或软件即服务(SaaS)。应当理解,图2显示的各类计算设备54A-N仅仅是示意性的,云计算节点10以及云计算环境50可以与任意类型网络上和/或网络可寻址连接的任意类型的计算设备(例如使用网络浏览器)通信。
现在参考图3,其中显示了云计算环境50(图2)提供的一组功能抽象层。首先应当理解,图3所示的组件、层以及功能都仅仅是示意性的,本发明的实施例不限于此。如图3所示,提供下列层和对应功能:
硬件和软件层60包括硬件和软件组件。硬件组件的例子包括:主机,例如系统;基于RISC(精简指令集计算机)体系结构的服务器,例如IBM系统;IBM系统;IBM系统;存储设备;网络和网络组件。软件组件的例子包括:网络应用服务器软件,例如IBM应用服务器软件;数据库软件,例如IBM数据库软件。(IBM,zSeries,pSeries,xSeries,BladeCenter,WebSphere以及DB2是国际商业机器公司在全世界各地的注册商标)。
虚拟层62提供一个抽象层,该层可以提供下列虚拟实体的例子:虚拟服务器、虚拟存储、虚拟网络(包括虚拟私有网络)、虚拟应用和操作系统,以及虚拟客户端。
在一个示例中,管理层64可以提供下述功能:资源供应功能:提供用于在云计算环境中执行任务的计算资源和其它资源的动态获取;计量和定价功能:在云计算环境内对资源的使用进行成本跟踪,并为此提供帐单和发票。在一个例子中,该资源可以包括应用软件许可。安全功能:为云的消费者和任务提供身份认证,为数据和其它资源提供保护。用户门户功能:为消费者和系统管理员提供对云计算环境的访问。服务水平管理功能:提供云计算资源的分配和管理,以满足必需的服务水平。服务水平协议(SLA)计划和履行功能:为根据SLA预测的对云计算资源未来需求提供预先安排和供应。
工作负载层66提供云计算环境可能实现的功能的示例。在该层中,可提供的工作负载或功能的示例包括:地图绘制与导航;软件开发及生命周期管理;虚拟教室的教学提供;数据分析处理;以及交易处理。
用于中间件二进制分配的本发明实施例对于构建时的管理开销和部署时的性能开销均是有利的。这与上面针对没有中间件服务和应用需要的所有二进制文件的虚拟磁盘描述的现有方法形成对照,现有方法允许更简单的构建过程,但代价是增加跨网络传输中间件二进制的成本并且降低性能(例如,减慢部署和缩放反应速度,从而导致由于复制而浪费资源)。在此处公开的实施例中,“中间件二进制”指将在虚拟层62(参见图3)中运行的应用二进制,并且中间件服务的部署优选地是平台即服务模型的一部分。使用本发明的实施例,创建操作系统(OS)基本映像并且在构建时将其存储在硬件和软件层60中,然后仅在部署用于托管中间件服务的虚拟机(VM)之前并且在接收用于使用中间件服务部署工作负载的请求之后,使用用于中间件服务(多个)的二进制文件增强该OS基本映像。该增强的OS基本映像在硬件和软件层60中创建(直接在存储装置上创建),并且提供虚拟磁盘,该虚拟磁盘然后在图3中的虚拟层62中被部署为虚拟存储装置。虚拟磁盘包含用于OS的文件,并且当VM作为虚拟层62的一部分被引导时,还包含被请求的中间件服务。本发明的实施例利用以下事实:在将虚拟磁盘和VM部署到虚拟层62之前,应用二进制存储库与硬件和软件层60中的虚拟磁盘在同一存储系统上。这允许直接在存储系统上将二进制文件复制到虚拟磁盘上,而无需穿过虚拟化网络接口。这导致总体上减少供应时间并且更好地使用基础架构资源,尤其是在企业环境中连续部署并销毁许多VM时。
图4是示出根据本发明一实施例的用于中间件二进制分配的方法的流程图。在该实施例中,所述方法由在层64(参见图3)中运行(优选地作为IaaS的一部分运行)的云管理软件实现。用户将开始VM的部署,并且作为响应,云管理软件将执行计算机程序代码以便执行所述方法。首先,所述方法接收用于使用一个或多个中间件服务部署工作负载的请求(401)。作为响应,所述方法选择将托管中间件服务的基本OS映像(402)。所述方法确定用于未在基本OS映像中的中间件服务的二进制文件在存储系统上的存储库中的位置(403)。所述方法将包含基本OS映像的虚拟磁盘克隆到存储系统上(404),并且将二进制文件从存储库复制到存储系统上的克隆的虚拟磁盘中(405)。在该实施例中,将二进制文件直接复制到克隆的虚拟磁盘中,即,在步骤403中取回的二进制文件与虚拟磁盘位于同一存储系统上。所述方法然后可以将包括所述二进制文件的克隆的虚拟磁盘附加到被创建以托管中间件服务的VM(406)。因此,当引导该VM时,二进制文件已经存在。不需要通过网络连接传输二进制文件。不需要在引导VM之后通过OS安装二进制文件。
图5是更详细示出根据本发明一实施例的用于中间件二进制分配的方法的流程图。首先,所述方法接收用于使用一个或多个中间件服务部署工作负载的请求(501)。作为响应,所述方法选择将托管中间件服务的基本OS映像(502)。所述方法然后从数据库取回基本OS映像上可用的文件和服务(503),并且将这些文件和服务与工作负载需要的文件和服务相比较(504)。从该比较,所述方法创建文件和服务的增量列表(505)。所述方法然后向存储系统上的映像存储库查询与增量列表匹配的先前修改的基本OS映像(506)。当这种先前修改的基本OS映像存在时(507)(即,映像存储库发现已经包含用于所述中间件服务的二进制文件的虚拟磁盘映像),所述方法克隆在映像存储库中发现的先前修改的基本OS映像(508)。所述方法将包含工作负载需要的二进制文件的克隆的虚拟磁盘附加到被创建以托管中间件服务的VM(516)。
当这种先前修改的基本OS映像不存在于映像存储库中时(507),所述方法确定用于所述中间件服务的二进制文件的存储库位置(509)。所述方法然后在映像存储库所在的同一存储系统上,克隆包含基本OS映像的虚拟磁盘(510)。所述方法经由目标系统管理程序临时挂载克隆的虚拟磁盘(511)。在此,系统管理程序是创建该VM的计算机软件、固件和/或硬件。所述方法然后将所述二进制文件从映像存储库直接复制到存储系统上的克隆的虚拟磁盘中(512)。可选地,还可以配置挂载的文件系统(513)。所述方法然后卸载包含所述二进制文件的克隆的虚拟磁盘(514)。可选地,所述方法可以将包含所述二进制文件的克隆的虚拟磁盘存储在映像存储库中以便今后可能使用(515)。所述方法将包含所述二进制文件的克隆的虚拟磁盘附加到被创建以托管中间件服务的VM(516)。然后可以部署该VM。当引导该VM时(517),用于中间件服务的二进制文件已经存在。
这样,在接收对中间件服务的请求之后并且仅在部署托管所述中间件服务的VM之前,动态地确定被请求的中间件服务需要的二进制文件。
尽管上面在用于中间件服务的二进制文件的上下文中描述了本发明的实施例,但可以使用其它类型的文件和/或服务而不偏离本发明的精神和范围。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (12)
1.一种用于中间件二进制分配的计算机实现的方法,所述方法包括:
由至少一个计算处理器接收用于使用一个或多个中间件服务部署工作负载的请求;
由所述至少一个计算处理器选择用于托管所述一个或多个中间件服务的基本操作系统映像,其中该基本操作系统映像是在响应于该请求而部署虚拟机之前创建和存储的,包含用于在该虚拟机中部署基本操作系统所需的第一组一个或多个二进制文件;
基于通过所述第一组一个或多个二进制文件与所述工作负载需要的第二组一个或多个二进制文件相比较所确定的文件和服务的增量列表,确定在所述基本操作系统映像中没有的一个或多个二进制文件;
由所述至少一个计算处理器确定用于所述一个或多个中间件服务的第二组一个或多个二进制文件在存储系统上的存储库中的位置;
由所述至少一个计算处理器克隆包含所述基本操作系统映像的虚拟磁盘;
在所述存储库所在的所述存储系统上存储克隆的虚拟磁盘;
挂载克隆的虚拟磁盘;
由所述至少一个计算处理器将所述第二组一个或多个二进制文件从所述存储库中的所述位置复制到克隆的虚拟磁盘中而修改克隆的虚拟磁盘,其中所述第二组一个或多个二进制文件不经过网络接口而直接在所述存储系统上被复制;
配置该挂载的克隆的虚拟磁盘;
卸载克隆的虚拟磁盘;
把修改的克隆的虚拟磁盘附加到该虚拟机以托管该一个或多个中间件服务;
在所述存储库中存储该修改的克隆的虚拟磁盘,该修改的克隆的虚拟磁盘含有该基本操作系统映像和所述第二组一个或多个二进制文件;
由至少一个计算处理器接收用于使用该一个或多个中间件服务部署第二工作负载的第二请求;
从该存储库取出所存储的虚拟磁盘,其中所存储的虚拟磁盘包含该第一组一个或多个二进制文件和该第二组一个或多个二进制文件,而不是基本操作系统映像;以及
将所取出的虚拟磁盘附加到为托管该第二工作负载的所述一个或多个中间件服务而创建的第二虚拟机。
2.如权利要求1所述的方法,其中当引导所述虚拟机时,所述基本操作系统和所述第二组一个或多个二进制文件存在。
3.如权利要求1所述的方法,其中确定用于所述一个或多个中间件服务的所述第二组一个或多个二进制文件在所述存储系统上的所述存储库中的位置包括:
向所述存储系统上的所述存储库查询与所述增量列表匹配的先前修改的基本操作系统映像;以及
响应于确定所述先前修改的基本操作系统映像不存在于所述存储库中,确定用于所述一个或多个中间件服务的所述第二组一个或多个二进制文件在所述存储系统上的所述存储库中的位置。
4.如权利要求3所述的方法,其中在所述存储系统上克隆包含所述基本操作系统映像的所述虚拟磁盘包括:
响应于确定所述先前修改的基本操作系统映像存在于所述存储库中,克隆包含所述存储库中的所述先前修改的基本操作系统映像的所述虚拟磁盘。
5.一种计算机可读存储介质,其具有随其包含的计算机可读程序代码,所述程序代码可由处理器执行以便:
接收用于使用一个或多个中间件服务部署工作负载的请求;
选择用于托管所述一个或多个中间件服务的基本操作系统映像,其中该基本操作系统映像是在响应于该请求而部署虚拟机之前创建和存储的,包含用于在该虚拟机中部署基本操作系统所需的第一组一个或多个二进制文件;
基于通过所述第一组一个或多个二进制文件与所述工作负载需要的第二组一个或多个二进制文件相比较所确定的文件和服务的增量列表,确定在所述基本操作系统映像中没有的一个或多个二进制文件;
确定用于所述一个或多个中间件服务的第二组一个或多个二进制文件在存储系统上的存储库中的位置;
克隆包含所述基本操作系统映像的虚拟磁盘;
在所述存储库所在的所述存储系统上存储克隆的虚拟磁盘;
挂载克隆的虚拟磁盘;
将所述第二组一个或多个二进制文件从所述存储库中的所述位置复制到克隆的虚拟磁盘中而修改克隆的虚拟磁盘,其中所述第二组一个或多个二进制文件不经过网络接口而直接在所述存储系统上被复制;
配置该挂载的克隆的虚拟磁盘;
卸载克隆的虚拟磁盘;
把修改的克隆的虚拟磁盘附加到该虚拟机以托管该一个或多个中间件服务;
在所述存储库中存储该修改的克隆的虚拟磁盘,该修改的克隆的虚拟磁盘含有该基本操作系统映像和所述第二组一个或多个二进制文件;
接收用于使用该一个或多个中间件服务部署第二工作负载的第二请求;
从该存储库取出所存储的虚拟磁盘,其中所存储的虚拟磁盘包含该第一组一个或多个二进制文件和该第二组一个或多个二进制文件,而不是基本操作系统映像;以及
将所取出的虚拟磁盘附加到为托管该第二工作负载的所述一个或多个中间件服务而创建的第二虚拟机。
6.如权利要求5 所述的计算机可读存储介质,其中当引导所述虚拟机时,所述基本操作系统和所述一个或多个二进制文件存在。
7.如权利要求6所述的计算机可读存储介质,其中确定用于所述一个或多个中间件服务的所述第二组一个或多个二进制文件在所述存储系统上的所述存储库中的位置的程序代码进一步可由所述处理器执行以便:
向所述存储系统上的所述存储库查询与所述增量列表匹配的先前修改的基本操作系统映像;以及
响应于确定所述先前修改的基本操作系统映像不存在于所述存储库中,确定用于所述一个或多个中间件服务的所述第二组一个或多个二进制文件在所述存储系统上的所述存储库中的位置。
8.如权利要求7所述的计算机可读存储介质,其中用于在所述存储系统上克隆包含所述基本操作系统映像的所述虚拟磁盘的程序代码进一步可由所述处理器执行以便:
响应于确定所述先前修改的基本操作系统映像存在于所述存储库中,克隆包含所述存储库中的所述先前修改的基本操作系统映像的所述虚拟磁盘。
9.一种用于中间件二进制分配的系统,包括:
处理器;以及
计算机可读存储介质,其具有随其包含的计算机可读程序代码,所述程序代码可由处理器执行以便:
接收用于使用一个或多个中间件服务部署工作负载的请求;
选择用于托管所述一个或多个中间件服务的基本操作系统映像,其中该基本操作系统映像是在响应于该请求而部署虚拟机之前创建和存储的,包含用于在该虚拟机中部署基本操作系统所需的第一组一个或多个二进制文件;
基于通过所述第一组一个或多个二进制文件与所述工作负载需要的第二组一个或多个二进制文件相比较所确定的文件和服务的增量列表,确定在所述基本操作系统映像中没有的一个或多个二进制文件;
确定用于所述一个或多个中间件服务的第二组一个或多个二进制文件在存储系统上的存储库中的位置;
克隆包含所述基本操作系统映像的虚拟磁盘;
在所述存储库所在的所述存储系统上存储克隆的虚拟磁盘;
挂载克隆的虚拟磁盘;
将所述第二组一个或多个二进制文件从所述存储库中的所述位置复制到所述存储系统上的克隆的虚拟磁盘中而修改克隆的虚拟磁盘,其中所述第二组一个或多个二进制文件不经过网络接口而直接在所述存储系统上被复制;
配置该挂载的克隆的虚拟磁盘;
卸载克隆的虚拟磁盘;
把修改的克隆的虚拟磁盘附加到该虚拟机以托管该一个或多个中间件服务;
在所述存储库中存储该修改的克隆的虚拟磁盘,该修改的克隆的虚拟磁盘含有该基本操作系统映像和所述第二组一个或多个二进制文件;
接收用于使用该一个或多个中间件服务部署第二工作负载的第二请求;
从该存储库取出所存储的虚拟磁盘,其中所存储的虚拟磁盘包含该第一组一个或多个二进制文件和该第二组一个或多个二进制文件,而不是基本操作系统映像;以及
将所取出的虚拟磁盘附加到为托管该第二工作负载的所述一个或多个中间件服务而创建的第二虚拟机。
10.如权利要求9所述的系统,其中当引导所述虚拟机时,所述基本操作系统和所述第二组一个或多个二进制文件存在。
11.如权利要求9所述的系统,其中确定用于所述一个或多个中间件服务的所述第二组一个或多个二进制文件在所述存储系统上的所述存储库中的位置的程序代码进一步可由所述处理器执行以便:
向所述存储系统上的所述存储库查询与所述增量列表匹配的先前修改的基本操作系统映像;以及
响应于确定所述先前修改的基本操作系统映像不存在于所述存储库中,确定用于所述一个或多个中间件服务的所述第二组一个或多个二进制文件在所述存储系统上的所述存储库中的位置。
12.如权利要求11所述的系统,其中用于在所述存储系统上克隆包含所述基本操作系统映像的所述虚拟磁盘的程序代码进一步可由所述处理器执行以便:
响应于确定所述先前修改的基本操作系统映像存在于所述存储库中,克隆包含所述存储库中的所述先前修改的基本操作系统映像的所述虚拟磁盘。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/934,228 US9990189B2 (en) | 2013-07-03 | 2013-07-03 | Method to optimize provisioning time with dynamically generated virtual disk contents |
US13/934,228 | 2013-07-03 | ||
PCT/CN2014/080815 WO2015000378A1 (en) | 2013-07-03 | 2014-06-26 | Method to optimize provisioning time with dynamically generated virtual disk contents |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105359088A CN105359088A (zh) | 2016-02-24 |
CN105359088B true CN105359088B (zh) | 2019-05-28 |
Family
ID=52133510
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480038302.6A Active CN105359088B (zh) | 2013-07-03 | 2014-06-26 | 使用动态生成的虚拟磁盘内容优化供应时间的方法 |
Country Status (5)
Country | Link |
---|---|
US (2) | US9990189B2 (zh) |
JP (1) | JP6486345B2 (zh) |
CN (1) | CN105359088B (zh) |
GB (1) | GB2529993A (zh) |
WO (1) | WO2015000378A1 (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9326001B2 (en) * | 2011-03-22 | 2016-04-26 | International Business Machines Corporation | Scalable image distribution in virtualized server environments |
US20150244771A1 (en) * | 2014-02-21 | 2015-08-27 | Bat Blue Networks | System and method for interconnecting and enforcing policy between multiple disparate providers of application functionality and data centers and/or end-users |
US9773108B1 (en) * | 2014-12-03 | 2017-09-26 | Symantec Corporation | Systems and methods for performing operations on restricted mobile computing platforms |
US10635407B2 (en) * | 2015-10-08 | 2020-04-28 | Micro Focus Llc | Identification of differences between scripts for testing applications |
US10664262B2 (en) * | 2017-08-29 | 2020-05-26 | Crowdstrike, Inc. | Binary suppression and modification for software upgrades |
CN107656814B (zh) * | 2017-09-30 | 2021-10-01 | 郑州云海信息技术有限公司 | 一种中间件服务实现方法和装置 |
CN107766050B (zh) * | 2017-10-31 | 2021-12-07 | 新华三云计算技术有限公司 | 一种异构应用的部署方法以及装置 |
US11645059B2 (en) * | 2017-12-20 | 2023-05-09 | International Business Machines Corporation | Dynamically replacing a call to a software library with a call to an accelerator |
CN110764877B (zh) * | 2019-11-07 | 2023-11-17 | 成都国腾实业集团有限公司 | 一种基于云计算的虚拟实验室系统及方法 |
US10986174B1 (en) * | 2020-09-18 | 2021-04-20 | EMC IP Holding Company LLC | Automatic discovery and configuration of server nodes |
CN112685708A (zh) * | 2021-01-07 | 2021-04-20 | 支付宝(杭州)信息技术有限公司 | 可信设备和可信系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1619490A (zh) * | 2003-03-06 | 2005-05-25 | 微软公司 | 系统的集成设计,部署和管理阶段 |
US7356679B1 (en) * | 2003-04-11 | 2008-04-08 | Vmware, Inc. | Computer image capture, customization and deployment |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070174429A1 (en) | 2006-01-24 | 2007-07-26 | Citrix Systems, Inc. | Methods and servers for establishing a connection between a client system and a virtual machine hosting a requested computing environment |
US8572138B2 (en) | 2006-03-30 | 2013-10-29 | Ca, Inc. | Distributed computing system having autonomic deployment of virtual machine disk images |
US7788477B1 (en) | 2007-01-31 | 2010-08-31 | Hewlett-Packard Development Company, L.P. | Methods, apparatus and articles of manufacture to control operating system images for diskless servers |
US20090164994A1 (en) | 2007-12-20 | 2009-06-25 | Virtual Computer, Inc. | Virtual computing management systems and methods |
US9280335B2 (en) | 2010-09-30 | 2016-03-08 | International Business Machines Corporation | Semantically rich composable software image bundles |
US8448219B2 (en) | 2009-04-23 | 2013-05-21 | Novell, Inc. | Securely hosting workloads in virtual computing environments |
US20110126197A1 (en) * | 2009-11-25 | 2011-05-26 | Novell, Inc. | System and method for controlling cloud and virtualized data centers in an intelligent workload management system |
US8984503B2 (en) * | 2009-12-31 | 2015-03-17 | International Business Machines Corporation | Porting virtual images between platforms |
JP2011221597A (ja) * | 2010-04-05 | 2011-11-04 | Hitachi Solutions Ltd | クローンディスク作成方法およびプログラム |
JP5681465B2 (ja) * | 2010-12-02 | 2015-03-11 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | 情報処理システム、情報処理装置、準備方法、プログラムおよび記録媒体 |
JP5772127B2 (ja) * | 2011-03-25 | 2015-09-02 | 富士通株式会社 | 仮想マシン管理方法、情報処理装置および仮想マシン管理プログラム |
US20130007726A1 (en) | 2011-06-30 | 2013-01-03 | Indrajit Poddar | Virtual machine disk image installation |
US9250944B2 (en) | 2011-08-30 | 2016-02-02 | International Business Machines Corporation | Selection of virtual machines from pools of pre-provisioned virtual machines in a networked computing environment |
JP2013120471A (ja) * | 2011-12-07 | 2013-06-17 | Hitachi Systems Ltd | 自動復旧システム、および自動復旧方法 |
US9582297B2 (en) * | 2013-05-16 | 2017-02-28 | Vmware, Inc. | Policy-based data placement in a virtualized computing environment |
-
2013
- 2013-07-03 US US13/934,228 patent/US9990189B2/en active Active
-
2014
- 2014-06-26 JP JP2016522224A patent/JP6486345B2/ja active Active
- 2014-06-26 GB GB1600713.0A patent/GB2529993A/en not_active Withdrawn
- 2014-06-26 WO PCT/CN2014/080815 patent/WO2015000378A1/en active Application Filing
- 2014-06-26 CN CN201480038302.6A patent/CN105359088B/zh active Active
- 2014-09-13 US US14/485,718 patent/US9983863B2/en not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1619490A (zh) * | 2003-03-06 | 2005-05-25 | 微软公司 | 系统的集成设计,部署和管理阶段 |
US7356679B1 (en) * | 2003-04-11 | 2008-04-08 | Vmware, Inc. | Computer image capture, customization and deployment |
Also Published As
Publication number | Publication date |
---|---|
US20150012487A1 (en) | 2015-01-08 |
WO2015000378A1 (en) | 2015-01-08 |
JP6486345B2 (ja) | 2019-03-20 |
JP2016526726A (ja) | 2016-09-05 |
US9990189B2 (en) | 2018-06-05 |
US9983863B2 (en) | 2018-05-29 |
US20150012703A1 (en) | 2015-01-08 |
GB2529993A (en) | 2016-03-09 |
GB201600713D0 (en) | 2016-03-02 |
CN105359088A (zh) | 2016-02-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105359088B (zh) | 使用动态生成的虚拟磁盘内容优化供应时间的方法 | |
CN106020940B (zh) | 用于确定数据集的放置的存储层级的方法和系统 | |
CN103365725B (zh) | 在多个云之间动态分配工作负荷部署单元的方法和系统 | |
CN103299274B (zh) | 确定运行图像的最佳计算环境的系统和方法 | |
CN103718164B (zh) | 虚拟计算机和服务 | |
CN105446793B (zh) | 迁移虚拟资产的方法和设备 | |
CN104424013B (zh) | 在计算环境中部署虚拟机的方法和设备 | |
CN104765620B (zh) | 一种程序模块部署的方法和系统 | |
US10558711B2 (en) | Defining dynamic topic structures for topic oriented question answer systems | |
CN108140007A (zh) | 跨部署位置安全地部署应用程序 | |
US9658836B2 (en) | Automated generation of transformation chain compatible class | |
CN104067265A (zh) | 用于支持在云中的安全应用部署的系统和方法 | |
CN104937544B (zh) | 用于计算任务结果的方法、计算机可读介质和计算机系统 | |
CN104216662B (zh) | 用于跨远程复制关系的卷布置的方法和系统 | |
CN104516730B (zh) | 一种数据处理方法和装置 | |
CN104254846B (zh) | 用于电子设备的基于内容的导航 | |
CN103238138A (zh) | 用于云环境中的分区部署/重部署的网络接口 | |
CN109906597A (zh) | 向和从云网络中存储和取回受限制的数据集和非受限制的数据集 | |
CN104657411B (zh) | 用于信息技术资源管理的方法和系统 | |
CN104603762A (zh) | 利用并行文件访问协议的自动校准以及元数据管理支持对文件系统的共享存储的协调访问 | |
CN105786593A (zh) | 用于重启上下文相关的应用集的方法和系统 | |
CN104252345A (zh) | 在云环境中管理复杂对象的方法及系统 | |
US10318559B2 (en) | Generation of graphical maps based on text content | |
US9342527B2 (en) | Sharing electronic file metadata in a networked computing environment | |
CN104424012A (zh) | 用于提供自定义虚拟装置的方法和设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |