CN103034453B - 管理虚拟机实例中预安装应用的持久数据的方法和装置 - Google Patents

管理虚拟机实例中预安装应用的持久数据的方法和装置 Download PDF

Info

Publication number
CN103034453B
CN103034453B CN201110299493.XA CN201110299493A CN103034453B CN 103034453 B CN103034453 B CN 103034453B CN 201110299493 A CN201110299493 A CN 201110299493A CN 103034453 B CN103034453 B CN 103034453B
Authority
CN
China
Prior art keywords
virtual machine
data point
storage volume
persistant data
application
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
Application number
CN201110299493.XA
Other languages
English (en)
Other versions
CN103034453A (zh
Inventor
张霞
史晓斌
刘昕鹏
黄允松
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to CN201110299493.XA priority Critical patent/CN103034453B/zh
Priority to US13/631,676 priority patent/US9946578B2/en
Publication of CN103034453A publication Critical patent/CN103034453A/zh
Application granted granted Critical
Publication of CN103034453B publication Critical patent/CN103034453B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

公开了一种用于管理弹性虚拟机实例中的预安装应用的持久数据的方法和装置,该方法包括:响应于将应用预安装到主虚拟机映像中,获得应用的功能模块的持久数据点,所述持久数据点包括用于存储所述功能模块的持久数据的文件目录;响应于从所述主虚拟机映像发起弹性虚拟机实例,创建存储卷,将所述存储卷附接到所述弹性虚拟机实例,并根据所述持久数据点将所述存储卷挂载到所述文件目录。

Description

管理虚拟机实例中预安装应用的持久数据的方法和装置
技术领域
本发明涉及计算机领域,具体涉及云计算领域,更具体涉及一种用于管理弹性虚拟机实例中的预安装应用的持久数据的方法和装置。
背景技术
诸如AmazonEC2(ElasticCloudComputing)、ISAAC(IBMServiceAgilityAcceleratorforCloud)、RHEV(RedHatEnterpriseVirtulization)等基础设施即服务(IaaS)云服务,可以很快地且以高伸缩性供应弹性虚拟机实例。弹性虚拟机实例是响应于用户请求从一主虚拟机映像发起的。主虚拟机映像代表了计算和存储等硬件资源、操作系统平台和应用等的特定配置。从一个主虚拟机映像发起的所有弹性虚拟机实例共享主虚拟机映像的公共文件和数据,而虚拟机实例使用“写时才拷贝”(Copy-On-Write)技术只在本地存储很少量的修改数据,从而节省了维护成本,节约了磁盘数据等。此外,应用可以被预安装到主虚拟机映像中,并在主虚拟机映像中进行配置,这样可以避免每个用户在其发起的虚拟机实例中单独安装和配置应用,从而节省了大量时间和精力,降低了维护和存储成本,缩短了价值实现时间(timetovalue)。
然而,在此类IaaS方案中,把所有的计算资源分为两个域:计算域和存储域。计算域由计算节点组成,提供计算资源(主要有CPU、内存、网卡等),但其中的所有数据被认为是可以丢弃的。存储域由存储节点组成,提供存储资源,用来存储用户认为需要保留的数据。弹性虚拟机实例运行在计算节点上,它通过“写时才拷贝”技术存储在计算节点上的任何数据更改(例如,数据库中的新的企业资产数据,文件系统中产生的新的业务使用数据等)不是持久性的。如果实例所运行的硬件发生故障,或者实例被终止或被关闭,则这些新产生的数据将丢失。这是因为,弹性虚拟机实例运行在计算节点上的基于主虚拟机映像的本地临时映像上,该本地临时映像中的更改数据并没有持久存储在存储域中;而主虚拟机映像不允许回写,因为它是只读的且由很多用户所共享。
这些在虚拟机实例发起后产生的更改的数据是用户的实际业务数据,因此应当被存储在云端用于每个用户的存储卷中。当前,云服务提供者也提供了持久存储解决方案,即上面所述的云环境中的存储域,以便用户存储其希望存储的任何数据。例如,Amazon提供了使用AmazonEBS(ElasticBlockStorage)的持久存储,ISAAC提供了Volume解决方案。用户可以创建其希望的任何数量的存储卷,并将存储卷作为如未格式化硬盘那样的原始块存储设备附接(attach)到虚拟机实例,使用任何文件系统对其进行格式化,并将其挂载(mount)到某个文件目录或逻辑盘。当弹性虚拟机实例终止时,存储卷仍然存在于存储节点中,因此,可以将其重新附接到新发起的弹性虚拟机实例。然而,显然,这种持久存储解决方案只适合于弹性虚拟机实例被发起后且存储卷被创建、附接、格式化和挂载后新安装和配置的应用的数据的持久存储,因为在现有技术中显然只有当弹性虚拟机实例被发起,且存储卷被创建、附接、格式化和挂接之后,才能安装并配置应用以便将其运行过程中产生的数据持久存储到所述卷中。而对于已在主虚拟机映像中预安装和预配置的应用来说,无法将其运行过程中产生的数据持久存储到所述卷中。
为了为在主虚拟机映像中预安装和预配置的软件应用提供用户数据的持久存储,目前云服务提供者提出了以下三种解决方案:
1)将全部软件应用安装和配置到一个或一组主虚拟机映像中;在发起虚拟机实例之后,为每一个虚拟机实例将数据库或文件系统备份解决方案配置为将数据备份到一个存储卷。
该解决方案可以很好地实现共享预安装和预配置的软件应用,从而可以很快地发起具有配置应用的虚拟机实例,然而,如果一个虚拟机实例终止,则最后一次备份操作之后的数据将丢失。此外,这种解决方案需要额外地为每一个虚拟机实例管理一个备份解决方案,尽管始终存在着用于云服务提供者提供的整个存储的整体备份解决方案来确保数据安全性。
2)发起仅带有操作系统的虚拟机实例;创建存储卷并将其附接到虚拟机实例;然后安装软件应用并将其配置为将持久数据直接存储到存储卷。
这种解决方案目录实际上已由很多用户手工执行,并且可以很容易地使用IT技术将其自动化。然而,这种解决方案不能快速地提供具有安装的应用的虚拟机实例,因为安装应用需要耗费大量时间,特别是对于某些大型复杂软件应用而言。例如,完成IBMMaximoAssetManagementv7.5应用的安装需要大约10小时,而安装更复杂的解决方案甚至需要大约80小时。而且,应用安装无法在不同用户之间共享,每个用户都需要分别安装所需的应用。且对于同一个用户来说,如果虚拟机实例终止,则需要重新安装应用。
3)某些云解决方案提供了持久虚拟机实例来解决该问题。也就是说,当需要发起虚拟机实例时,从主虚拟机映像复制一个新的映像(存储卷)在存储节点上,并在计算节点上远程连接到该映像,计算节点本地不再产生一个使用“写时才拷贝”技术的临时映像。这样,应用数据将存储在这个位于存储域中的存储卷中,这样当虚拟机关机或者主机关机时,应用数据仍是持久的。
这种解决方案需要复制整个主虚拟机映像,这将需要很长时间。例如,当复制一个100G的主虚拟机映像时,需要大约半小时的时间。此外,由于存储卷中的映像从主虚拟机映像复制之后是独立于主虚拟机映像的,系统管理员需要额外的努力来维护该映像,执行操作系统补丁、应用补丁等工作。这样,例如如果有1000个实例,则系统管理员的工作量将增加1000倍。
因此,本领域中需要一种能够克服上述缺点的用于管理计算云虚拟机实例中的预安装应用的持久数据的解决方案。
发明内容
根据本发明的一个方面,提供了一种用于管理弹性虚拟机实例中的预安装应用的持久数据的方法,包括:响应于将应用预安装到主虚拟机映像中,获得应用的功能模块的持久数据点,所述持久数据点包括用于存储所述功能模块的持久数据的文件目录;响应于从所述主虚拟机映像发起弹性虚拟机实例,创建存储卷,将所述存储卷附接到所述弹性虚拟机实例,并根据所述持久数据点将所述存储卷挂载到所述文件目录。
根据本发明的另一个方面,提供了一种用于管理弹性虚拟机实例中的预安装应用的持久数据的装置,包括:持久数据点获得模块,其被配置为响应于将应用预安装到主虚拟机映像中,获得应用的功能模块的持久数据点,所述持久数据点包括用于存储所述功能模块的持久数据的文件目录;存储卷管理器,其被配置为响应于从所述主虚拟机映像发起弹性虚拟机实例,创建存储卷,将所述存储卷附接到所述弹性虚拟机实例,并根据所述持久数据点将所述存储卷挂载到所述文件目录。
本发明的优点在于:
1.弹性虚拟机实例运行过程中产生的用户数据被直接写入到存储卷,这样,当弹性虚拟机实例终止或发生故障时,用户数据不会丢失。而且,不需要为每个弹性虚拟机实例维护一个特定的数据备份解决方案。存储卷的备份是由云环境内的整体存储备份解决方案负责的。
2.应用是预安装和配置在主虚拟机映像中的,因此各弹性虚拟机实例用户可共享同一个安装,而不需要耗时的安装过程。且每个用户具有其专用的存储卷来存储自己的数据。
3.仍然属于弹性虚拟机解决方案,不需要复制整个主虚拟机映像来存储用户的持久数据。系统管理员只需要维护主虚拟机映像,从而节约了总的拥有和维护成本。
附图说明
所附权利要求中阐述了被认为是本发明的特点的创造性特征。但是,通过参照附图阅读下面对说明性实施例的详细说明可更好地理解发明本身以及其优选使用模式、目标、特征以及优点,在附图中:
图1表示根据本发明一实施例的云计算节点;
图2表示根据本发明一实施例的云计算环境;
图3表示根据本发明一实施例的抽象模型层;
图4示出了本发明可在其中实现的云管理系统;
图5具体示出了根据本发明的实施例的准备主虚拟机映像的流程;
图6具体示出了根据本发明的实施例的发起弹性虚拟机实例的流程;
图7具体示出了根据本发明的实施例的恢复弹性虚拟机实例的流程;
图8具体示出了根据本发明的实施例的启用功能模块的流程;
图9示出了根据本发明的实施例的用于管理弹性虚拟机实例中的预安装应用的持久数据的方法;以及
图10示出了根据本发明的实施例的用于管理弹性虚拟机实例中的预安装应用的持久数据的装置。
具体实施方式
云计算
首先应当明白,尽管本公开包括关于云计算的详细描述,本公开所记载的技术方案的实现却不限于云计算环境。本发明的实施例能够结合现在已知的或以后开发的任何其它类型的计算环境而实现。
云计算是一种服务交付模型,用于对共享的可配置计算资源池进行方便、按需的网络访问。可配置计算资源例如是网络、网络带宽、服务器、处理、内存、存储、应用、虚拟机和服务,是以最小的管理成本或者最少的与服务提供者的交互就能快速提供和释放的资源。这种云模型可以包括至少五个特征,至少三个服务模型和至少四个部署模型。
特征如下:
按需自助式服务:云消费者能单方面自动地按需提供计算能力,诸如服务器时间和网络存储,而无需与服务提供者进行人工交互。
广泛的网络接入:云计算能力可在网络上获取,并且是通过标准机制获取的,标准机制促进通过不同种类瘦客户机平台或厚客户机平台(例如移动电话、膝上型电脑、个人数字助理PDA)对云的使用。
资源池:将提供者的计算资源归入资源池,通过多租户(munti-tenant)模式服务于多重消费者,不同的实体资源和虚拟资源按照需要被动态地分配和再分配。因为消费者一般不控制甚至不知道所提供的资源的确切位置,但是可能在较高的抽象程度上指定位置(例如国家、州或数据中心),所以有一种位置独立感。
迅速的弹性:能迅速和有弹性地(有时是自动地)提供计算资源,以实现快速地扩展并且能快速地释放。对于消费者来说,可用的计算资源常常显得是无限的,在任何时候都能获取任何数量的计算资源。
可测量的服务:云系统通过利用适于服务(例如存储、处理、带宽和活动用户帐号)类型的某种抽象程度的计量能力,自动地控制和优化资源效用。可以监测、控制和报告资源使用情况,为服务提供者和消费者双方提供透明度。
服务模型如下:
软件即服务(SaaS):给予消费者使用提供者在云基础架构上运行的应用的能力。应用是可通过诸如网络浏览器的瘦客户机接口从各种客户机设备访问的(例如基于网络的电子邮件)。可能除了是有限的特定于用户的应用配置设置外,消费者既不管理也不控制底层的云基础架构,包括网络、服务器、操作系统、存储、乃至单个应用能力。
平台即服务(PaaS):向消费者提供的能力是在云基础架构上部署消费者创建的或获得的应用,这些应用是用提供者所支持的程序设计语言和工具创建的。消费者不管理或控制基础的云基础架构,包括网络、服务器、操作系统或存储,但是对所部署的应用具有控制权,对托管环境配置的应用也可能有控制权。
基础架构即服务(IaaS):给予消费者提供处理、存储、网络和消费者能在其中部署和运行任意软件的基础计算资源的能力,其中软件可包括操作系统和应用程序。消费者既不管理也不控制底层的云基础架构,但是对操作系统、存储和所部署的应用具有控制权,对选择的网络部件(例如主机防火墙)也可能拥有有限的控制权。
部署模型如下:
私有云:云基础架构是单独为某个组织运行的。云基础架构可以由该组织管理,也可以由第三方管理,可以存在于组织内,也可以存在于组织外。
共同体云:云基础架构被若干个组织共享,支持有共同利害关系(例如使命、安全要求、政策和合规考虑)的特定共同体。共同体云可以由共同体内的多个组织或第三方管理,可以存在于组织内,也可以存在于组织外。
公共云:云基础架构向公众或大型产业群提供,并由出售云服务的组织拥有。
混合云:云基础架构是两个或更多的云(私有云、共同体云或公共云)的合成,这些云依然是独特的实体,但是通过使数据和应用能够移植的标准化技术或私有技术(例如用于云之间的负载平衡的云突发流量分担技术)绑定在一起。
云计算环境是面向服务的,特点集中在无状态性、低耦合性、模块性和语意的互操作性。云计算的核心是包含互连节点网络的基础结构。
现在参考图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可以被提供用于读出和写入不可移动的、非易失性磁介质(未示出,通常称为“硬盘驱动器”)。尽管图中未示出,可以提供用于对可移动的非易失性磁盘(录入“软盘”)读写的磁盘驱动器,以及对可移动的非易失性光盘——诸如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提供云消费者无需在本地计算设备上维护资源就能请求的基础架构即服务、平台即服务和/或软件即服务。应当明白,图2示出的各类计算设备54A-N仅仅是示意性的,计算节点10以及云计算环境50可以与任何类型的网络上的和/或网络可寻址的连接上的任何类型的计算设备(例如使用网络浏览器)通信。
现在参考图3,该图示出了云计算环境50(图2)提供的一组功能抽象层。首先应当明白,图3所示的部件、层以及功能都仅仅是示意性的,本发明的实施例不限于此。如图所示,提供了下列层和对应功能:
硬件和软件层60包括硬件和软件部件。硬件部件的例子包括:主机——例如系统;基于RISC(精简指令集计算机)体系结构的服务器——例如IBM系统;IBM系统;IBM系统;存储设备;网络和网络部件。软件部件的例子包括:网络应用服务器软件——例如IBM应用服务器软件;数据库软件——例如IBM数据库软件。(IBM,zSeries,pSeries,xSeries,BladeCenter,WebSphere以及DB2是国际商业机器公司在全世界各地注册的商标)。
虚拟层62提供一个抽象层,该层可以提供下列虚拟实体的例子:虚拟服务器、虚拟存储、虚拟网络(包括虚拟私有网络)、虚拟应用和操作系统,以及虚拟客户端。
在一个示例中,管理层64可以提供下述功能:资源供应功能提供用于在云计算环境中执行任务的计算资源和其它资源的动态获取;计量和定价功能在云计算环境内资源被使用时进行成本跟踪,并为这些资源的消费提供帐单和发票。在一个例子中,这些资源可以包括应用软件许可。安全功能为云消费者和任务提供身份认证,为数据和其它资源提供保护。用户门户为消费者和系统管理员提供对云计算环境的访问。服务水平管理功能提供云计算资源的分配和管理,以满足必需的服务水平。服务水平协议(SLA)计划和履行功能为根据SLA的预测了未来需求的云计算资源提供预先安排和供应。
工作负载层66提供了云计算环境可能实现的功能的示例。在该层中,可提供的工作负载或功能的示例包括:地图绘制与导航;软件开发及生命周期管理;虚拟教室的教学他提供;数据分析处理;交易处理;以及移动桌面等等。
图4示出了本发明可在其中实现的云管理系统101。该云管理系统101可以是图3中所示的管理层64的一个实现。在本发明的一些实施例中,该云管理系统101是现有的云管理系统,例如AmazonEC2、ISAAC、RHEV解决方案等。在本发明的另一些实施例中,该云管理系统101是如图所示通过向现有的云管理系统中添加了本发明的用于管理弹性虚拟机实例中的预安装应用的持久数据的装置109而获得的云管理系统。如图所示,云管理系统101中包括一个或多个主虚拟机映像104,以及与单个主虚拟机映像对应的一个或多个弹性虚拟机实例105。每个主虚拟机映像104代表了特定数量、特性和性能的计算和存储等硬件资源、操作系统平台以及应用等IT资源的一种特定配置。基于一个主虚拟机映像104,可以发起任意多个虚拟机实例105,其中每个虚拟机实例105将具有与主虚拟机映像相同的硬件、操作系统和应用配置。因此,用户可以通过在向云管理系统101发出服务请求时指定特定的主虚拟机映像104来生成相应的虚拟机实例105,从而获得具有特定硬件和软件配置的IT基础设施。
如图所示,在本发明的实施例中,在主虚拟机映像104中预安装和配置有一个或多个应用106,每个应用具有一个或多个持久数据点107。相应地,在由主虚拟机映像发起的每一个弹性虚拟机实例中也将包括相同的一个或多个应用106’,且每个应用106’包括相同的一个或多个数据点107’。
如图中弹性虚拟机实例105、应用106’和数据点107’方块的虚线所意在表明的,弹性虚拟机实例105及其应用106’并不具有独立于主虚拟机映像104及其应用106的单独的文件系统,相反,同一个主虚拟机映像104的所有弹性虚拟机实例105及其应用106’实际上共享着该主虚拟机映像104及其应用106的相同的文件系统;然而,通过云管理系统101中的“写时才拷贝”技术(未示出),在每个用户看起来,其单独占有其虚拟机实例中的整个文件系统。
应用的持久数据点代表了应用中的功能模块的持久数据的存储位置,即持久数据所要存储的文件目录。在本申请中,功能模块是指应用中的功能相对独立的部分。一个应用可具有一个或多个功能模块。功能模块可能具有(也可能不具有)需要存储的持久数据,这种持久数据是在应用的运行过程中产生的,或是在应用的安装过程中初始产生的。一个功能模块的持久数据通常存储在一个单独的存储位置。当然,一个功能模块的持久数据也有可能存储在多个存储位置,或者,多个功能模块的持久数据也有可能存储在同一个存储位置。因此,一个应用通常可具有一个或多个持久数据点,每个持久数据点代表应用中的功能模块的持久数据的一个存储位置。不同应用基于其设计而具有不同的持久数据点。通常,应用的持久数据点所代表的存储位置是在应用的设计和开发过程中默认的,并可以在应用安装过程中由用户进行配置。
在应用运行过程中产生的不需要持久保存的非持久数据,则可以没有相应的持久数据点。
如图所示,根据本发明的实施例,在云管理系统101中,还包括本发明的用于管理弹性虚拟机实例中的预安装应用的持久数据的装置109(将在下文中描述),且该装置109可以在图3中所示的管理层64中的资源供应功能中实现。在本发明的其他实施例中,本发明的用于管理弹性虚拟机实例中的预安装应用的持久数据的装置109也可以位于云管理系统101之外。
如图所示,根据本发明的实施例,对于每个弹性虚拟机实例105,本发明的装置109可根据其包含的每个应用106’的每个持久数据点107’创建一个存储卷108,将所述存储卷108附接到该弹性虚拟机实例105,并挂载到该持久数据点107’。所述存储卷108可以为可由云管理系统101提供或管理的任何计算机可读写的非易失性物理存储介质或其部分。
本发明的解决方案
根据本发明的实施例,本发明的解决方案包括以下方面:
(一)在将一应用安装到主虚拟机映像之前,使用元数据定义该应用的与功能模块关联的每个持久数据点。
(二)在将应用安装到主虚拟机映像时,将应用的每个持久数据点元数据实例化。
(三)安装初始数据(如果有的话)的备份和清除。
(四)从主虚拟机映像发起弹性虚拟机实例之后,且在启动其中的应用之前,为每一个启用的持久数据点创建存储卷,将该存储卷附接到该弹性虚拟机实例,对该存储卷进行格式化,将该存储卷挂载持久数据点中定义的文件目录,并恢复所备份的安装初始数据(如果有的话)。
(五)当弹性虚拟机实例发生故障或终止时,从主虚拟机映像发起另一个虚拟机实例,并将相关存储卷重新附接到该另一个虚拟机实例,并重新挂载到相应数据点中定义的文件目录。
(六)如果在虚拟机发起之后,应用的某个已安装但被禁止的功能模块被启用,则根据相关持久数据点中定义的参数创建、附接、格式化和挂载存储卷。
下面详细描述根据本发明的实施例的本发明的解决方案的各个方面。
第(一)方面:
在将一应用安装到主虚拟机映像之前,使用元数据定义该应用的与功能模块关联的每个持久数据点,所定义的每个持久数据点可包括以下各项:相应功能模块名称或标识、存储位置、保留的存储空间大小及文件系统格式、是否包含初始数据、以及初始数据备份/恢复方法等信息。其中,相应功能模块名称或标识是指该数据点所关联的应用中的功能模块的名称或标识;存储位置是指该功能模块的持久数据将存储的文件目录;保留的存储空间大小是指将用于存储该功能模块的持久数据的存储卷的大小;文件系统格式是指该存储卷的文件系统格式;是否包含初始数据是指在安装应用的过程中是否将在所述存储位置中存储该功能模块的初始数据;初始数据备份/恢复方法是指在存储了所述初始数据的情况下,用于备份该初始数据以及用于恢复该初始数据的方法。使用元数据定义持久数据点,亦即获得持久数据点的元数据定义,可意味着所述各项或其中的一些项并不包括具体的值,而只有项的名称。具体地,在使用元数据定义的数据点中,可以只有相应功能模块名称或标识项才有具体的值,而存储位置、保留的存储空间大小、文件系统格式、是否包含初始数据、以及初始数据备份/恢复方法这些项并没有具体的值,而只有项的名称。
应用中的每个持久数据点的元数据定义是可以从应用的设计和开发阶段获得的,或者可以通过查阅有关应用的功能和结构的文档而获得。可以将所获得的应用的持久数据点的元数据定义与应用相关联地存储,例如存储在云管理系统101可访问的任何位置。
在本发明的其他实施例中,应用中的持久数据点的元数据定义可以包含更多或更少的内容,例如,也可以仅包含所述存储位置,等等。
在本发明另一些实施例中,也可以不去获得应用的持久数据点的元数据定义,而是可以在将应用安装到主虚拟机映像的过程中直接获得应用的持久数据点,或用于存储其持久数据的文件目录。
第(二)方面:
在将应用安装到主虚拟机映像时,将应用的每个持久数据点元数据实例化。也就是说,在将应用安装到主虚拟机映像的过程中,将这些持久数据点元数据定义中的各项的值填充到各项中。可以根据用户在安装过程中的配置,将存储位置、保留的存储空间大小、文件系统格式、是否包含初始数据以及初始数据备份/恢复方法这些项的具体值填充到持久数据点中,从而将持久数据点元数据实例化。
在将应用的各持久数据点元数据实例化后,可将应用的已实例化的各持久数据点存储起来,例如存储到用于该主虚拟机映像的一持久数据点目录中。用于该主虚拟机映像的持久数据点目录中可包含该主虚拟机映像中预安装的所有应用的所有实例化的持久数据点。该持久数据点目录可与该主虚拟机映像相关联地存储在本发明的装置109可访问的任何位置。
此外,可为每一个持久数据点设置一个启用标志。启用标志用于表示是否启用了该持久数据点对应的功能模块,且可根据安装过程中或之后用户的配置进行设置。
如上所述,在本发明的另一些实施例中,也可以不去获得应用的持久数据点的元数据定义,因而不需要将应用的持久数据点元数据实例化,而是在将应用预安装到主虚拟机映像的过程中,由用户在安装过程之中和/或之后配置或指定应用的持久数据的存储位置、为持久数据保留的存储空间大小、文件系统格式、是否包含初始数据、初始数据备份/恢复方法、是否启用了相应功能模块等,并将这些配置或指定存储在用于该主虚拟机映像的持久数据点目录或其他数据结构中。
第(三)方面:
在为弹性计算云准备主虚拟机映像时,如果在主虚拟机映像的持久数据点目录中定义的一持久数据点中指示包含初始数据(即是否包含初始数据项的值为真,不管启用标志的值为真或为假),即在应用的安装过程中该持久数据点的存储位置存储了相应功能模块的初始数据,则使用该持久数据点中定义的初始数据备份方法将该存储位置中的初始数据进行备份,然后从该存储位置清除初始数据(以便空的文件目录将来可用于挂载存储卷)。上述操作可针对主虚拟机映像的持久数据点目录中每一个持久数据点执行。
在本发明的另一些实施例中,持久数据点中可以不包含是否包含初始数据项,而是可以任何其他方式(例如,在与应用关联的持久数据点和持久数据点目录之外的任何其他数据结构中)指示在应用的安装过程中是否存储了初始数据;此外,持久数据点中也可以不包含初始数据备份/恢复方法,而是对于一个应用的所有数据点(或者对于一个主虚拟机映像的所有应用的所有数据点,或者对于云管理系统中的所有主虚拟机映像的所有应用的所有数据点)使用相同的初始数据备份/恢复方法。
当然,在本发明的一些实施例中,如果能确定在将任何应用预安装到主虚拟机映像时都不会存储初始数据,则不需要对初始数据进行备份、清除以及恢复,也不需要在持久数据点中指定或以其他方式指定是否包含初始数据以及初始数据备份/恢复方法。
图5具体示出了根据本发明的实施例的准备主虚拟机映像的流程。
如图所示,在开始准备主虚拟机映像之后,在步骤201,从主虚拟机映像的持久数据点目录读取一个数据点。
在步骤202,判断该数据点中是否指示存在初始数据。如果该判断为否,则执行步骤205。如果该判断为是,则执行步骤203。
在步骤203,使用该数据点中定义的备份命令备份在安装应用过程中存储到该数据点中定义的存储位置的初始数据。
在步骤204,从所述存储位置清除所述初始数据。
在步骤205,判断在主虚拟机映像的持久数据点目录中是否还有更多的持久数据点。如果步骤205的判断为是,则返回步骤201,从持久数据点目录中读取下一个持久数据点,并针对该下一个持久数据点再次执行步骤202-205。如果步骤205的判断为否,则执行步骤206。
在步骤206,执行云解决方案所要求的用于准备主虚拟机映像的其他任务(由于这些任务与本发明无关,故不在此赘述)。
这样,就完成了主虚拟机映像的准备。
第(四)方面:
在从主虚拟机映像发起一个弹性虚拟机实例之后,且在启动其中的应用之前,可由根据本发明的装置109读取主虚拟机映像的持久数据点目录,并为其中的每一个启用标志的值为真的持久数据点执行以下操作:
1)创建具有该持久数据点中定义的保留的存储空间大小的存储卷;
2)将该存储卷附接到该弹性虚拟机实例;
3)使用该持久数据点中定义的文件系统格式对该存储卷进行格式化;
4)将该存储卷挂载到该持久数据点中定义的存储位置即文件目录;
5)如果该持久数据点中的是否包含初始数据项的值为真,则使用该持久数据点中定义的初始数据恢复方法恢复所备份的初始数据。
以上过程可以在发起弹性虚拟机实例后,且在启动任何应用之前,针对其中的全部应用的全部持久数据点进行。也可以在发起弹性虚拟机实例后,且在启动任何单个应用之前,针对该单个应用的全部持久数据点进行。
如本领域中所知的,在现有的云管理系统101中通常提供了用于创建、格式化、附接和挂载存储卷的工具或功能,因此,本发明的装置109可通过这些工具或功能实现存储卷的创建、格式化、附接和挂载。
在本发明的其他一些实施例中,在从主虚拟机映像发起一个弹性虚拟机实例后,可从主虚拟机映像的持久数据点目录创建与该弹性虚拟机实例关联的持久数据点目录副本,并可将该持久数据点目录副本与该虚拟机实例的标识相关联地存储起来,例如存储在云管理系统101中的一非易失性存储器中。这样,本发明的装置109将不是读取主虚拟机映像的持久数据点目录,而是读取该弹性虚拟机实例的持久数据点目录副本,并为其中的每一个启用标志为真的持久数据点执行上述操作1)-5)。
在本发明的其他一些实施例中,也可以考虑由云管理系统101或本发明的装置109预先创建和格式化具有不同大小和格式的存储卷,这样,就不再需要在此时创建和格式化存储卷,而只需要根据持久数据点中定义的保留的存储空间大小和文件系统格式选择适当的存储卷,并将所选择的存储卷附接到弹性虚拟机实例并挂载到持久数据点中定义的文件目录。此外,还可以考虑本发明的装置109将对所有的数据点使用相同大小和/或格式的存储卷,这样,就不再需要在数据点中定义保留的存储空间大小和文件系统格式了,本发明的装置109将直接使用预先创建的(或在发起弹性虚拟机实例后创建的)相同大小和/或格式的存储卷进行附接和挂载。
此外,本发明的装置109还可将该弹性虚拟机实例的该持久数据点与该存储卷之间的映射关系存储起来,例如,存储在云管理系统101中可由本发明的装置109访问的一非易失性存储器中的一映射关系表中,以便将来使用,例如,如下所述,在该弹性虚拟机实例终止或发生故障后重新发起弹性虚拟机实例时使用。本发明的装置109可在该映射关系表中相关联地存储弹性虚拟机实例的ID、持久数据点的名称或ID、以及存储卷的ID。
图6具体示出了根据本发明的实施例的发起弹性虚拟机实例的流程。
如图所示,在发出发起弹性虚拟机实例的命令后,在步骤301,使用弹性计算云API从主虚拟机映像发起一个弹性虚拟机实例。如何使用弹性计算云API从主映射像发起一个弹性虚拟机实例,这在本领域中是公知的,故在此不再赘述。
在步骤302,从用于弹性虚拟机的持久数据点目录读取一个持久数据点。所述用于弹性虚拟机实例的持久数据点目录或者是主虚拟机映像的持久数据点目录(在由主虚拟机映像发起的所有弹性虚拟机实例共享主虚拟机映像的持久数据点目录的情况下),或者是该弹性虚拟机实例的持久数据点目录副本(在为每个弹性虚拟机实例生成一个持久数据点目录副本的情况下)。
在步骤303,判断该持久数据点是否被启用,即其启用标志的值是否为真。如果该判断为否,则执行步骤307。如果该判断为是,则执行步骤304。
在步骤304,执行以下操作:1)创建具有持久数据点中定义的保留的存储空间大小的存储卷;2)将存储卷附接到虚拟机实例;3)使用持久数据点中定义的文件系统格式格式化存储卷;4)将存储卷挂载到数据点中定义的存储位置即文件目录。
在步骤305,判断持久数据点中是否指示存在初始数据。如果该判断为否,则执行步骤307。如果该判断为是,则执行步骤306。
在步骤306,使用持久数据点中定义的(或以其他方式指定的)恢复命令恢复初始数据。
在步骤307,判断弹性虚拟机的持久数据点目录中是否存在更多的持久数据点。如果该判断为是,则返回步骤302,从虚拟机的持久数据点目录中读取下一个持久数据点,并针对该下一个持久数据点再次执行步骤303-307。如果该判断为否,则执行步骤308。
在步骤308,存储虚拟机实例的持久数据点与存储卷之间的映射关系。例如,可将所述映射关系存储在云管理系统101中的一个非易失存储器中的映射关系表中,以便将来使用。
在步骤309,在虚拟机实例中准备和启动应用(包括修改应用配置以适应新的网络环境,启动应用等)。由于该步骤与本发明无关,故不在此详述。
这样,应用就在虚拟机实例中运行起来。
第(五)方面:
在虚拟机实例中的应用的运行过程中,云管理系统101将把应用的功能模块所产生的用户持久数据写入相应的文件目录(如在对应于该功能模块的持久数据点中所指定的),从而直接写入到所挂载的存储卷中。当虚拟机实例发生故障或终止时,存储卷中的数据将仍然存在。
此后,可以从主虚拟机映像发起另一个虚拟机实例,并根据以上所述为发生故障或终止的虚拟机实例存储的其持久数据点与存储卷之间的映射关系,确定该发生故障或终止的虚拟机实例的所有存储卷,将所有存储卷(包含其存储的用户持久数据)分别重新附接到该另一个虚拟机实例,并分别重新挂载到相应数据点中定义的文件目录,从而实现虚拟机实例的恢复。
图7具体示出了根据本发明的实施例的恢复虚拟机实例的流程。
如图所示,在使用已终止的先前弹性虚拟机实例的ID发出恢复弹性虚拟机实例的命令之后,在步骤401,使用弹性计算云API从主虚拟机映像发起一个新的弹性虚拟机实例。此外,如上所述,在本发明的一实施例中,可在从主虚拟机映像发起弹性虚拟机实例时,从主虚拟机映像的持久数据点目录生成一个用于该弹性虚拟机实例的持久数据点目录副本。
在步骤402,从用于该新的弹性虚拟机实例的持久数据点目录(主虚拟机实例的持久数据点目录,或者该新的弹性虚拟机实例的持久数据点目录副本)读取一个持久数据点。
在步骤403,判断对于先前弹性虚拟机实例,是否存在一个存储卷映射到该持久数据点,并且该持久数据点对于先前弹性虚拟机实例是否是启用的。
在本发明的一个实施例中,可通过查询在上述步骤308中存储在映射关系表中的各弹性虚拟机实例的持久数据点与存储卷之间的映射关系,来判断对于先前弹性虚拟机实例是否存在一个存储卷映射到该持久数据点。
在本发明的一实施例中,可通过查询所存储的先前弹性虚拟机实例的持久数据点目录副本中的该持久数据点的启用标志值(或其他数据结构中的该持久数据点或相应的功能模块是否启用的标志),来判断该持久数据点对于先前虚拟机实例是否是启用的。
如果步骤403的判断为否,则执行步骤405。如果步骤403的判断为是,则执行步骤404。
在步骤404,将在步骤403中判断存在的存储卷附接到所发起的新的弹性虚拟机实例,并将该存储卷挂载到在该持久数据点中所定义的文件目录。
在步骤405,判断用于新的弹性虚拟机实例的持久数据点目录中是否还存在其他持久数据点。如果该判断为是,则返回步骤402,从用于新的弹性虚拟机实例的持久数据点目录读取下一个持久数据点,并针对该下一个持久数据点,重新执行步骤403-405。如果该判断为否,则执行步骤406。
在步骤406,为该新的虚拟机实例存储该持久数据点与该存储卷之间的映射关系,并存储持久数据点相应的启用标志值。例如,将该映射关系更新到前述映射关系表,以替换先前虚拟机实例的该持久数据点与该存储卷之间的映射关系,并且将相应的启用标志值存储在该新的虚拟机实例的持久数据点目录副本或其他数据结构中。
在步骤407,在该新的弹性虚拟机实例中准备和启动的应用(修改应用配置以适应新的网络环境,启动应用等)。由于该步骤的内容与本发明无关,故不在此赘述。
这样,应用就在新的虚拟机实例中运行起来。
第(六)方面:
如果在虚拟机发起之后,根据拓扑需求或客户需求或任何其他需求,应用的某个已安装但被禁止的功能模块被启用,则根据持久数据点目录中的相关持久数据点中定义的参数创建、附接、格式化和挂载存储卷。本发明的装置109将为该虚拟机实例维护与该功能模块相关的持久数据点的启用标志的值为真。该启用标志值将覆盖主虚拟机映像的持久数据点目录中的持久数据点的默认的启用标志值。在本发明的一些实施例中,为该虚拟机实例生成和维护了持久数据点目录副本,这样,可以直接将该持久数据点目录副本中的与该功能相关的持久数据点的启用标志的值设置为真。在本发明的另一些实施例中,可以在为该虚拟机实例维护的其他数据结构中记录该功能模块已启用。
图8具体示出了根据本发明的实施例的启用功能模块的流程。
如图所示,开始启用弹性虚拟机实例中的一个应用的一个功能模块之后,在步骤501,在用于该弹性虚拟机实例的持久数据点目录中搜索用于该功能模块的持久数据点,从而获得包含用于该功能模块的所有持久数据点(一个功能模块可能有多个持久数据存储位置,因此可能有多个持久数据点)的一搜索列表。
接着,在步骤502,从搜索列表中读取一个持久数据点。
接着,在步骤503,判断该持久数据点是否已被启用(多个功能模块可能共享同一个存储位置,因而共享同一个持久数据点,因此,在该功能模块未启用时,其持久数据点有可能因共享该持久数据点的其他功能模块的启用而已被启用)。如果该判断为是,则执行步骤508。如果该判断为否,则执行步骤504。如果为该弹性虚拟机实例生成和维护持久数据点目录副本或其他数据结构,则可以在该持久数据点副本或其他数据结构中记录每个数据点是否被启用。这样,可通过查询该虚拟机实例的持久数据点目录副本或其他数据结构来判断所述持久数据点是否已被启用。
接着,在步骤504,判断是否存在现有的存储卷映射到该持久数据点(如果该功能模块曾经启用和运行,但因虚拟机实例终止或其他原因被终止,则会存在现有的存储卷映射到该持久数据点;此外,如果共享该持久数据点的其他功能模块曾经运行,但已被终止,则也会存在现有的存储卷映射到该持久数据点)。可通过查询以上步骤308中所存储的映射关系表来判断是否存在现有的存储卷映射到该持久数据点。如果该判断为是,则执行步骤505。如果该判断为否,则执行步骤506。
在步骤505,将现有的存储卷附接到该弹性虚拟机实例,如果尚未附接的话(如果该功能模块或共享该持久数据点的其他功能模块曾经运行,但已被终止,而该虚拟机实例未被终止,则现有的存储卷会已经附接到该虚拟机实例)。然后,执行步骤507。
在步骤506,使用该持久数据点中定义的保留的存储空间大小创建一存储卷;将该存储卷附接到该弹性虚拟机实例;并使用该持久数据点中定义的文件系统格式格式化该存储卷。然后,执行步骤507。
在步骤507,将该存储卷挂载到该持久数据点中定义的存储位置即文件目录,如果尚未挂载的话(如果该功能模块或共享该持久数据点的其他功能模块曾经运行,但已被终止,而该弹性虚拟机实例未被终止,则现有的存储卷会已挂载到该文件目录)。此外,在该弹性虚拟机实例的持久数据点目录副本中将该持久数据点的启用标志设置为真,或在为该虚拟机实例维护的其他数据结构中记录该功能已启用。
接着,在步骤508,判断在所述搜索列表中是否还有其他持久数据点。如果该判断为是,则返回步骤502,针对下一个持久数据点,执行步骤502-508。如果该判断为否,则执行步骤509。
在步骤509,启用该应用中的该功能模块,并在需要时重启应用以得到启用的功能。
这样,应用就带着新启用的功能运行起来。
在本发明的一些实施例中,可以不包括上述在虚拟机发起之后,响应于应用的某个已安装但被禁止的功能模块被启用,根据持久数据点目录中的相关持久数据点中定义的参数创建、附接、格式化和挂载存储卷的过程。
本发明既适用于简单的应用,例如企业资产管理服务云,其中一个虚拟机包含了所有组件;也适用于复杂的解决方案。
本发明的解决方案的示例性说明
下面以企业资产管理服务云应用为例详细描述根据本发明的特定实施例的解决方案的步骤:
(一)在将一应用安装到主虚拟机映像之前,使用元数据定义该应用的与功能模块关联的每个持久数据点。
下面示出了该企业资产管理服务云应用的各持久数据点元数据定义:
根据上述持久数据点的元数据定义可知,为该企业资产管理服务云应用(即MaximoSaaS)定义了两个持久数据点:用于BaseService功能模块的MaximoInstanceDatabase,以及用于UsageMetering功能模块的MaximoSaaSUsageData。这两个数据点默认均为启用。持久数据点MaximoInstanceDatabase具有初始数据,且使用tar命令来进行初始数据的备份和恢复。持久数据点MaximoSaaSUsageData没有初始数据。在上述数据点元数据定义中,由%xx%定义的参数将在应用安装过程中被具体值替换(即将数据点元数据定义实例化),这些参数包括数据点的存储位置、保留大小、文件系统格式,其分别由元素<Location>、<ReservedSize>、<FileSystemFormat>定义。
(二)在将应用安装到主虚拟机映像时,将应用的每个持久数据点元数据实例化。
下面示出了主虚拟机映像的持久数据点目录,其中已添加了该MaximoSaaS的实例化的各持久数据点定义:
根据上述主虚拟机映像的持久数据点目录可知,该主虚拟机映像的标识为image-MaaSv1.1。此外,根据其中用于该MaximoSaaS应用的实例化的持久数据点定义可知,对于BaseService功能模块,其持久数据的存储位置为/home/ctginst1/ctginst1,保留的存储空间大小为10G,存储卷的文件系统格式为ext3,且初始数据的备份命令为tarczvf/home/ctginst1/ctginst1.tar.gz/home/ctginst1/ctginst1,而初始数据的恢复命令为tarxzvf/home/ctginst1/ctginst1.tar.gz/home/ctginst1/ctginst1;对于UsageMetering功能模块,其持久数据的存储位置为/var/IBM/MaaS,保留的存储卷大小为100M,存储卷的文件系统格式为ext3,没有初始数据。
如果在该主虚拟机映像中,除了所述MaximoSaaS应用,还安装了其他应用,则其他应用的实例化的数据点定义也将被添加到该主虚拟机持久数据点目录中。例如,在上述虚拟机持久数据点目录中,除了用于所述MaximoSaaS的实例化的持久数据点定义外,还包括用于SampleApplication的实例化的持久数据点定义。该SampleApplication应用包括一个名称为SampleApplicationPersistentData的数据点,其对应于名称为sampleAppComponent的功能模块,该功能模块没有存储的初始数据,也没有被启用,其持久数据的存储位置为/var/IBM/SampleApp,保留的存储卷大小为1G,存储卷的文件系统格式为ext3。
(三)安装初始数据(如果有的话)的备份和清除。
以上述企业资产管理服务云应用为例,在MaximoSaaS的安装过程中,有许多数据被预加载到Maximo实例数据库中,这些数据对于确保Maximo实例运行是至关重要的。因此,可将/home/ctginstl/ctginstl目录下的所有文件(即Maximo实例数据库文件)tar和zip到文件/home/ctginst1/ctginst1.tar.gz,然后将这些文件删除,使得/home/ctginst1/ctginst1为空目录。由于MaximoSaaS使用的数据文件目录(即/var/IBV/MaaS目录)在安装后是空的,因此,没必要进行备份。
(四)从主虚拟机映像发起弹性虚拟机实例之后,且在启动其中的应用之前,为每一个启用的持久数据点创建存储卷,将该存储卷附接到该弹性虚拟机实例,对该存储卷进行格式化,将该存储卷挂载持久数据点中定义的文件目录,并恢复所备份的安装初始数据(如果有的话)。
例如,当从主虚拟机映像发起一个MaximoSaaS弹性虚拟机实例后,本发明的装置109将遍历该主虚拟机映像的持久数据点目录(或在发起该MaximoSaaS弹性虚拟机实例时为其生成的持久数据点目录副本)中定义的持久数据点,并为每一个启用的(即启用标志的值为真的)持久数据点执行以下操作:1)为“MaxioInstanceDatabase”创建10G的存储卷,并为“MaximoSaaSUsageData”创建100M的存储卷;2)将这两个存储卷附接到MaximoSaaS虚拟机实例;3)将这两个存储卷格式化为ext3格式;4)将这两个存储卷挂载到数据点中定义的存储装置:将10G的存储卷挂载到/home/ctginstl/ctginstl,将100M的存储卷挂载到/var/IBM/MaaS;以及5)如果存在初始数据,则恢复初始数据:对于数据点“MaximoInstanceDatabase”,使用恢复命令“tarxzvf/home/ctginst1/ctginst1.tar.gz/home/ctginst1/ctginst1”,恢复/home/ctginst1/ctginst1的数据。然后,本发明的装置109为该弹性虚拟机实例的用户存储该虚拟机实例的数据点与所述存储卷之间的映射关系(InstanceUID:PersistentDataPointName<=>volumeUID),例如存储在云管理系统101中的一映射关系表中。然后,云管理系统101将调用虚拟机中的脚本来配置应用以用于新的环境(新的主机名,新的IP,等),并启动应用。
(五)当弹性虚拟机实例发生故障或终止时,从主虚拟机映像发起另一个虚拟机实例,并将相关存储卷重新附接到该另一个虚拟机实例,并重新挂载到相应数据点中定义的文件目录。
(六)如果在虚拟机发起之后,应用的某个已安装但被禁止的功能模块被启用,则根据相关持久数据点中定义的参数创建、附接、格式化和挂载存储卷。
本发明的方法和装置
以上通过示例详细描述了根据本发明的特定实施例的解决方案,应指出的是,以上描述仅是对根据本发明的特定实施例的示例性说明,旨在使本领域的技术人员能够更充分和完整地理解本发明的原理,并能够实现本发明的解决方案的特定实施例,而不是对本发明的限制。以上描述的大量具体技术特征对于本发明来说都不是必不可少的,且在本发明的其他实施例中,可以不包含这些技术特征。事实上,如本领域的技术人员通过阅读本说明书可以理解的,在本发明解决方案中,只需要在将应用预安装和配置到主虚拟机映像时,获得用于存储应用中的功能模块的持久数据的文件目录,并在从主虚拟机映像发起弹性虚拟机实例时,创建存储卷,将存储卷附接到弹性虚拟机实例,并将存储卷挂载到文件目录,就构成了一个完整的技术方案,能够解决本发明的技术问题,并产生相应的技术效果;而所有其他具体技术特征对于本发明来说都不是必不可少的。
此外,本领域的技术人员通过阅读以上对根据本发明的实施例的解决方案的详细说明可以理解,本发明事实上提出了一种用于管理弹性虚拟机实例中的预安装应用的持久数据的方法,以及一种用于管理弹性虚拟机实例中的预安装应用的持久数据的装置。
现参照图9,其示出了根据本发明的实施例的用于管理弹性虚拟机实例中的预安装应用的持久数据的方法。如图所示,该方法包括以下步骤:
在步骤602,响应于将应用预安装到主虚拟机映像中,获得应用的功能模块的持久数据点,所述持久数据点包括用于存储所述功能模块的持久数据的文件目录。
在步骤604,响应于从所述主虚拟机映像发起弹性虚拟机实例,创建存储卷,将所述存储卷附接到所述弹性虚拟机实例,并根据所述持久数据点将所述存储卷挂载到所述文件目录。
根据本发明的进一步的实施例,该方法还包括以下可选步骤:
在可选步骤603,如果在将应用预安装到主虚拟机映像后,所述文件目录中包含应用的初始数据,则备份所述初始数据,并清空所述文件目录。
在可选步骤605,在将所述存储卷挂载到所述文件目录后,将所备份的初始数据恢复到所述文件目录。
根据本发明的进一步的实施例,该方法还包括以下可选步骤:
在可选步骤606,记录所述持久数据点与所述存储卷之间的映射关系。
在可选步骤607,当所述弹性虚拟机实例终止后,响应于从所述主虚拟机映像发起另一个弹性虚拟机实例:
将所述存储卷附接到所述另一个弹性虚拟机实例;以及
根据所记录的所述持久数据点与所述存储卷之间的映射关系,将所述存储卷挂载到所述文件目录。
根据本发明的进一步的实施例,所述持久数据点还包括保留的存储空间大小和文件系统格式,且其中所述创建存储卷包括:
创建大小为所述保留的存储空间大小的存储卷;以及
将所述存储卷格式化为所述文件系统格式。
根据本发明的进一步的实施例,所述持久数据点还包括:
用于备份所述初始数据的命令;以及
用于恢复所述初始数据的命令。
根据本发明的进一步的实施例,所述持久数据点还包括启用标志,用于表示是否启用了应用的相应功能模块,且所述创建、附接和挂载存储卷是响应于判断所述启用标志的值为真执行的。
根据本发明的进一步的实施例,该方法还包括以下可选步骤:
在可选步骤608,在发起所述弹性虚拟机实例之后,响应于启用应用中已被禁止的功能模块,根据该功能模块的持久数据点创建存储卷,将该存储卷附接到所述弹性虚拟机实例,并将所述存储卷挂载到该持久数据点包括的文件目录。
根据本发明的进一步的实施例,该方法还包括以下可选步骤:
在可选步骤601,获得应用的功能模块的持久数据点的元数据定义;且上述步骤602是通过以下方式实现的:
响应于将应用预安装到主虚拟机映像中,根据用户的配置,将应用的功能模块的持久数据点的元数据定义实例化,从而获得所述应用的功能模块的持久数据点。
根据本发明的一实施例,该方法是在云管理系统中实现的。
应指出的是,如图9中的步骤601、603、605-608的方块的虚线所意欲表明的,这些步骤仅是可选步骤;在本发明的一些实施例中可以不包括这些步骤。此外,尽管图9中相继地示出了各步骤,但一些步骤之间的顺序可以与图示的不同,而是可以并行执行或以相反的顺序执行(例如,步骤605与606之间等)。
现参照图10,其示出了根据本发明的实施例的用于管理弹性虚拟机实例中的预安装应用的持久数据的装置109的结构。如图所示,该装置109在云管理系统101之中运行(也可以在云管理系统之外101之外),并与云管理系统101中的主虚拟机映像104、弹性虚拟机实例105以及其他已示出或未示出的模块交互。对于图10中示出的云管理系统中与图4中相同的部件,以下将不再重复描述。
如图所示,该装置109包括以下模块:
持久数据点获得模块701,其被配置为响应于将应用预安装到主虚拟机映像中,获得应用的功能模块的持久数据点,所述持久数据点包括用于存储所述功能模块的持久数据的文件目录;以及
存储卷管理器702,其被配置为响应于从所述主虚拟机映像发起弹性虚拟机实例,创建存储卷,将所述存储卷附接到所述弹性虚拟机实例,并根据所述持久数据点将所述存储卷挂载到所述文件目录。
根据本发明的进一步的实施例,该装置还包括:可选的初始数据备份/恢复管理器703,其被配置为:
如果在将应用预安装到主虚拟机映像后,所述文件目录中包含应用的初始数据,则备份所述初始数据,并清空所述文件目录;以及
在将所述存储卷挂载到所述文件目录后,将所备份的初始数据恢复到所述文件目录。
根据本发明的进一步的实施例,该装置109还包括:可选的映射关系记录器704,其被配置为记录所述持久数据点与所述存储卷之间的映射关系,且所述存储卷管理器702还被配置为:
当所述弹性虚拟机实例终止后,响应于从所述主虚拟机映像发起另一个弹性虚拟机实例,将所述存储卷附接到所述另一个弹性虚拟机实例;以及
根据所记录的所述持久数据点与所述存储卷之间的映射关系,将所述存储卷挂载到所述文件目录。
根据本发明的进一步的实施例,所述持久数据点还包括保留的存储空间大小和文件系统格式,且所述存储卷管理器创建存储卷包括:
创建大小为所述保留的存储空间大小的存储卷;以及
将所述存储卷格式化为所述文件系统格式。
根据本发明的进一步的实施例,所述持久数据点还包括:
用于备份所述初始数据的命令;以及
用于恢复所述初始数据的命令。
根据本发明的进一步的实施例,所述持久数据点还包括启用标志,用于表示是否启用了应用的相应功能模块,且所述存储卷管理器702创建、附接和挂载存储卷是响应于判断所述启用标志的值为真执行的。
根据本发明的进一步的实施例,所述存储卷管理器702还被配置为:
在发起所述弹性虚拟机实例之后,响应于启用应用中已被禁止的功能模块,根据该功能模块的持久数据点创建存储卷,将该存储卷附接到所述弹性虚拟机实例,并将所述存储卷挂载到该持久数据点包括的文件目录。
根据本发明的进一步的实施例,该装置还包括:可选的持久数据点元数据定义获得模块705,其被配置为获得应用的功能模块的持久数据点的元数据定义,且所述数据点获得模块701进一步被配置为:
响应于将应用预安装到主虚拟机映像中,根据用户的配置,将应用的功能模块的持久数据点的元数据定义实例化,从而获得所述应用的功能模块的持久数据点。
根据本发明的一实施例,该装置109是在云管理系统中实现的。
以上参照附图描述了根据本发明的实施例的用于管理云弹性虚拟机实例中的预安装应用的持久数据的装置,应指出的是,以上描述仅为示例,而不是对本发明的限制。在本发明的其他实施例中,该装置可具有更多、更少或不同的模块,且各模块之间的连接、包含、功能等各种关系可以与所描述的不同。
本发明可以硬件、软件、固件或其任意结合的方式实现。本发明可以集中的方式在一个计算机系统中实现,或以分布方式实现,在这种分布方式中,不同的部件分布在若干互连的计算机系统中。适于执行本文中描述的方法的任何计算机系统或其它装置都是合适的。一种典型的硬件和软件的组合可以是带有计算机程序的通用计算机系统,当该计算机程序被加载和执行时,控制该计算机系统而使其执行本发明的方法,并构成本发明的装置。
本发明也可体现在计算机程序产品中,该程序产品包含使能实现本文中描述的方法的所有特征,并且当其被加载到计算机系统中时,能够执行所述方法。
尽管已参照优选实施例具体示出和说明了本发明,但是本领域内的那些技术人员应理解,可在形式和细节上对其进行各种改变而不会背离本发明的精神和范围。

Claims (16)

1.一种用于管理弹性虚拟机实例中的预安装应用的持久数据的方法,包括:
响应于将应用预安装到主虚拟机映像中,获得应用的功能模块的持久数据点,所述持久数据点包括用于存储所述功能模块的持久数据的文件目录;
响应于从所述主虚拟机映像发起弹性虚拟机实例,创建存储卷,将所述存储卷附接到所述弹性虚拟机实例,并根据所述持久数据点将所述存储卷挂载到所述文件目录;
记录所述持久数据点与所述存储卷之间的映射关系;
当所述弹性虚拟机实例终止后,响应于从所述主虚拟机映像发起另一个弹性虚拟机实例,执行以下操作:
将所述存储卷附接到所述另一个弹性虚拟机实例;以及
根据所记录的所述持久数据点与所述存储卷之间的映射关系,将所述存储卷挂载到所述文件目录。
2.根据权利要求1的方法,还包括:
如果在将应用预安装到主虚拟机映像后,所述文件目录中包含应用的初始数据,则备份所述初始数据,并清空所述文件目录;以及
在将所述存储卷挂载到所述文件目录后,将所备份的初始数据恢复到所述文件目录。
3.根据权利要求1的方法,其中,所述持久数据点还包括保留的存储空间大小和文件系统格式,且其中所述创建存储卷包括:
创建大小为所述保留的存储空间大小的存储卷;以及
将所述存储卷格式化为所述文件系统格式。
4.根据权利要求2的方法,其中,所述持久数据点还包括:
用于备份所述初始数据的命令;以及
用于恢复所述初始数据的命令。
5.根据权利要求1的方法,其中,所述持久数据点还包括启用标志,用于表示是否启用了应用的相应功能模块,且所述创建、附接和挂载存储卷是响应于判断所述启用标志的值为真执行的。
6.根据权利要求5的方法,还包括:
在发起所述弹性虚拟机实例之后,响应于启用应用中已被禁止的功能模块,根据该功能模块的持久数据点创建存储卷,将该存储卷附接到所述弹性虚拟机实例,并将所述存储卷挂载到该持久数据点包括的文件目录。
7.根据权利要求1的方法,还包括:
获得应用的功能模块的持久数据点的元数据定义;以及
响应于将应用预安装到主虚拟机映像中,根据用户的配置将应用的功能模块的持久数据点的元数据定义实例化,从而获得所述应用的功能模块的持久数据点。
8.根据权利要求1的方法,其中,该方法是在云管理系统中实现的。
9.一种用于管理弹性虚拟机实例中的预安装应用的持久数据的装置,包括:
持久数据点获得模块,其被配置为响应于将应用预安装到主虚拟机映像中,获得应用的功能模块的持久数据点,所述持久数据点包括用于存储所述功能模块的持久数据的文件目录;
存储卷管理器,其被配置为响应于从所述主虚拟机映像发起弹性虚拟机实例,创建存储卷,将所述存储卷附接到所述弹性虚拟机实例,并根据所述持久数据点将所述存储卷挂载到所述文件目录;
映射关系记录器,其被配置为记录所述持久数据点与所述存储卷之间的映射关系,且其中,
所述存储卷管理器还被配置为:
当所述弹性虚拟机实例终止后,从所述主虚拟机映像发起另一个弹性虚拟机实例;
将所述存储卷附接到所述另一个弹性虚拟机实例;以及
根据所记录的所述持久数据点与所述存储卷之间的映射关系,将所述存储卷挂载到所述文件目录。
10.根据权利要求9的装置,还包括:初始数据备份/恢复管理器,其被配置为:
如果在将应用预安装到主虚拟机映像后,所述文件目录中包含应用的初始数据,则备份所述初始数据,并清空所述文件目录;以及
在将所述存储卷挂载到所述文件目录后,将所备份的初始数据恢复到所述文件目录。
11.根据权利要求9的装置,其中,所述持久数据点还包括保留的存储空间大小和文件系统格式,且其中所述存储卷管理器创建存储卷包括:
创建大小为所述保留的存储空间大小的存储卷;以及
将所述存储卷格式化为所述文件系统格式。
12.根据权利要求10的装置,其中,所述持久数据点还包括:
用于备份所述初始数据的命令;以及
用于恢复所述初始数据的命令。
13.根据权利要求9的装置,其中,所述持久数据点还包括启用标志,用于表示是否启用了应用的相应功能模块,且所述存储卷管理器创建、附接和挂载存储卷是响应于判断所述启用标志的值为真执行的。
14.根据权利要求13的装置,其中,所述存储卷管理器进一步被配置为:
在发起所述弹性虚拟机实例之后,响应于启用应用中已被禁止的功能模块,根据该功能模块的持久数据点创建存储卷,将该存储卷附接到所述弹性虚拟机实例,并将所述存储卷挂载到该持久数据点包括的文件目录。
15.根据权利要求9的装置,还包括:
持久数据点元数据定义获得模块,其被配置为获得应用的功能模块的持久数据点的元数据定义;且其中,
所述持久数据点获得模块进一步被配置为:
响应于将应用预安装到主虚拟机映像中,根据用户的配置,将应用的功能模块的持久数据点的元数据定义实例化,从而获得所述应用的功能模块的持久数据点。
16.根据权利要求9的装置,其中,该装置是在云管理系统中实现的。
CN201110299493.XA 2011-09-30 2011-09-30 管理虚拟机实例中预安装应用的持久数据的方法和装置 Active CN103034453B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201110299493.XA CN103034453B (zh) 2011-09-30 2011-09-30 管理虚拟机实例中预安装应用的持久数据的方法和装置
US13/631,676 US9946578B2 (en) 2011-09-30 2012-09-28 Managing the persistent data of a pre-installed application in an elastic virtual machine instance

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110299493.XA CN103034453B (zh) 2011-09-30 2011-09-30 管理虚拟机实例中预安装应用的持久数据的方法和装置

Publications (2)

Publication Number Publication Date
CN103034453A CN103034453A (zh) 2013-04-10
CN103034453B true CN103034453B (zh) 2015-11-25

Family

ID=47993923

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110299493.XA Active CN103034453B (zh) 2011-09-30 2011-09-30 管理虚拟机实例中预安装应用的持久数据的方法和装置

Country Status (2)

Country Link
US (1) US9946578B2 (zh)
CN (1) CN103034453B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106933646A (zh) * 2015-12-29 2017-07-07 杭州华为数字技术有限公司 一种创建虚拟机的方法及装置

Families Citing this family (68)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8560699B1 (en) * 2010-12-28 2013-10-15 Amazon Technologies, Inc. Enforceable launch configurations
US8677449B1 (en) 2012-03-19 2014-03-18 Google Inc. Exposing data to virtual machines
US9262420B1 (en) 2012-04-23 2016-02-16 Google Inc. Third-party indexable text
US9766912B1 (en) * 2012-11-27 2017-09-19 Amazon Technologies, Inc. Virtual machine configuration
US9430255B1 (en) 2013-03-15 2016-08-30 Google Inc. Updating virtual machine generated metadata to a distribution service for sharing and backup
US9052995B2 (en) 2013-04-26 2015-06-09 Netapp, Inc. Systems and methods providing mount catalogs for rapid volume mount
US9461870B2 (en) 2013-05-14 2016-10-04 Google Inc. Systems and methods for providing third-party application specific storage in a cloud-based storage system
US9678769B1 (en) 2013-06-12 2017-06-13 Amazon Technologies, Inc. Offline volume modifications
US9563385B1 (en) 2013-09-16 2017-02-07 Amazon Technologies, Inc. Profile-guided data preloading for virtualized resources
US10409625B1 (en) * 2013-09-17 2019-09-10 Amazon Technologies, Inc. Version management for hosted computing workspaces
WO2015058380A1 (zh) * 2013-10-23 2015-04-30 华为技术有限公司 一种云应用的容灾方法、系统和装置
US9628335B2 (en) * 2013-11-01 2017-04-18 Sap Se Building and transporting centrally modified software systems
US9513938B2 (en) 2013-11-07 2016-12-06 Sap Se Virtual appliance integration with cloud management software
US9519513B2 (en) * 2013-12-03 2016-12-13 Vmware, Inc. Methods and apparatus to automatically configure monitoring of a virtual machine
US9430212B2 (en) * 2014-02-10 2016-08-30 Netflix, Inc. Automatically generating volume images and launching virtual computing instances
US9678731B2 (en) 2014-02-26 2017-06-13 Vmware, Inc. Methods and apparatus to generate a customized application blueprint
US10242185B1 (en) * 2014-03-21 2019-03-26 Fireeye, Inc. Dynamic guest image creation and rollback
US9460109B1 (en) * 2014-04-01 2016-10-04 Sprint Communications Company L.P. Centralized provisioning process leveraging network attached storage
CN105335207B (zh) * 2014-05-29 2019-04-12 国际商业机器公司 用于管理虚拟机实例的方法和装置
US9940332B1 (en) * 2014-06-27 2018-04-10 EMC IP Holding Company LLC Storage pool-backed file system expansion
CN104243564A (zh) * 2014-09-03 2014-12-24 河海大学 一种面向aws平台的分布式数据管理方法
US10402746B2 (en) 2014-09-10 2019-09-03 Amazon Technologies, Inc. Computing instance launch time
CN107077385B (zh) * 2014-09-10 2019-10-25 亚马逊技术公司 用于减少计算实例启动时间的系统、方法及存储介质
US9395967B2 (en) * 2014-11-03 2016-07-19 International Business Machines Corporation Workload deployment density management for a multi-stage computing architecture implemented within a multi-tenant computing environment
US11068136B1 (en) * 2014-11-11 2021-07-20 Amazon Technologies, Inc. Application fulfillment platform with automated license management mechanisms
US9740436B2 (en) * 2014-11-14 2017-08-22 International Business Machines Corporation Elastic file system management in storage cloud environments
US10756968B2 (en) 2015-01-26 2020-08-25 Rapid7, Inc. Network resource management devices methods and systems
US9971621B1 (en) * 2015-02-02 2018-05-15 Amazon Technologies, Inc. Hotpooling virtual machines
US10684837B2 (en) * 2015-02-25 2020-06-16 Red Hat Israel, Ltd. Repository manager
US9582298B2 (en) * 2015-03-20 2017-02-28 Amazon Technologies, Inc. Executing commands within virtual machine instances
US10089316B1 (en) 2015-06-29 2018-10-02 EMC IP Holding Company LLC Managing multiple file system expansions
US10282092B1 (en) * 2015-09-09 2019-05-07 Citigroup Technology, Inc. Methods and systems for creating and maintaining a library of virtual hard disks
FR3041790B1 (fr) * 2015-09-25 2019-06-07 Rizze Procede automatique de sauvegarde et maintenance des donnees obtenues par des services avec etat lors du lancement d'un service sans etat dans un systeme d'exploitation en nuage
CN105573791A (zh) * 2015-12-15 2016-05-11 国云科技股份有限公司 一种linux虚拟机实现网卡热插拔的方法
US9996381B1 (en) * 2016-03-29 2018-06-12 Amazon Technologies, Inc. Live application management workflow using metadata capture
US10325370B1 (en) * 2016-05-31 2019-06-18 University Of New Brunswick Method and system of coregistration of remote sensing images
US10866767B2 (en) * 2016-05-31 2020-12-15 Vmware, Inc. Enforcing limits on a self-serve model for provisioning data volumes for containers running in virtual machines
CN106227582B (zh) * 2016-08-10 2019-06-11 华为技术有限公司 弹性伸缩方法及系统
US10609143B1 (en) * 2016-09-19 2020-03-31 EMC IP Holding Company LLC Secure data access in cloud computing environments
US20180136962A1 (en) * 2016-11-13 2018-05-17 Ananda Kumar Kammampati Master-virtual machine framework
US20180173552A1 (en) * 2016-12-20 2018-06-21 Invensys Systems, Inc. System and method for content - application split
US10848405B2 (en) * 2017-02-08 2020-11-24 Red Hat Israel, Ltd. Reporting progress of operation executing on unreachable host
US10909271B2 (en) * 2017-09-28 2021-02-02 Citrix Systems, Inc. Policy based persistence
JP2019115977A (ja) * 2017-12-26 2019-07-18 キヤノン株式会社 画像形成装置、その制御方法およびプログラム
US10452296B1 (en) 2018-03-23 2019-10-22 Amazon Technologies, Inc. Accelerated volumes
CN108733383B (zh) * 2018-03-30 2022-04-08 广东睿江云计算股份有限公司 一种XenServer虚拟机载入光盘ISO文件的方法、系统
CN108549550A (zh) * 2018-04-13 2018-09-18 郑州云海信息技术有限公司 一种硬盘挂载方法及装置
US11343314B1 (en) 2018-04-30 2022-05-24 Amazon Technologies, Inc. Stream-based logging for distributed storage systems
US11023157B2 (en) 2018-04-30 2021-06-01 Amazon Technologies, Inc. Intermediary duplication to facilitate copy requests in distributed storage systems
US10459655B1 (en) 2018-04-30 2019-10-29 Amazon Technologies, Inc. Rapid volume backup generation from distributed replica
US10768835B1 (en) 2018-06-27 2020-09-08 Amazon Technologies, Inc. Opportunistic storage service
US10911367B2 (en) * 2018-06-27 2021-02-02 Oracle International Corporation Computerized methods and systems for managing cloud computer services
US10931750B1 (en) 2018-07-30 2021-02-23 Amazon Technologies, Inc. Selection from dedicated source volume pool for accelerated creation of block data volumes
US10956442B1 (en) 2018-07-30 2021-03-23 Amazon Technologies, Inc. Dedicated source volume pool for accelerated creation of block data volumes from object data snapshots
US11023179B2 (en) * 2018-11-18 2021-06-01 Pure Storage, Inc. Cloud-based storage system storage management
US10965547B1 (en) * 2018-12-26 2021-03-30 BetterCloud, Inc. Methods and systems to manage data objects in a cloud computing environment
US11068192B1 (en) 2019-03-26 2021-07-20 Amazon Technologies, Inc. Utilizing mutiple snapshot sources for creating new copy of volume in a networked environment wherein additional snapshot sources are reserved with lower performance levels than a primary snapshot source
US10983719B1 (en) 2019-03-28 2021-04-20 Amazon Technologies, Inc. Replica pools to support volume replication in distributed storage systems
US10776041B1 (en) * 2019-05-14 2020-09-15 EMC IP Holding Company LLC System and method for scalable backup search
US11663340B2 (en) * 2019-10-30 2023-05-30 Rubrik, Inc. Managing software vulnerabilities
US11599643B2 (en) 2019-10-30 2023-03-07 Rubrik, Inc. Facilitating analysis of software vulnerabilities
US11593491B2 (en) 2019-10-30 2023-02-28 Rubrik, Inc. Identifying a software vulnerability
CN112068928B (zh) * 2020-08-12 2023-10-20 福建升腾资讯有限公司 一种基于重定向的虚拟机数据存储方法及系统
WO2022036134A1 (en) * 2020-08-14 2022-02-17 Oracle International Corporation Techniques for persisting data across instances of a cloud shell
US11327673B1 (en) 2020-10-23 2022-05-10 Oracle International Corporation Techniques for persisting data across instances of a cloud shell
US11262918B1 (en) 2020-09-30 2022-03-01 Amazon Technologies, Inc. Data storage system with uneven drive wear reduction
US11526286B1 (en) 2021-06-29 2022-12-13 Amazon Technologies, Inc. Adaptive snapshot chunk sizing for snapshots of block storage volumes
CN114281398A (zh) * 2021-12-10 2022-04-05 西安万像电子科技有限公司 云手机应用管理方法、电子设备和存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7552358B1 (en) * 2005-04-22 2009-06-23 Symantec Operating Corporation Efficient backup and restore using metadata mapping

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6952698B2 (en) * 2001-10-05 2005-10-04 International Business Machines Corporation Storage area network methods and apparatus for automated file system extension
US8868858B2 (en) * 2006-05-19 2014-10-21 Inmage Systems, Inc. Method and apparatus of continuous data backup and access using virtual machines
US7840963B2 (en) 2004-10-15 2010-11-23 Microsoft Corporation Marking and utilizing portions of memory state information during a switch between virtual machines to minimize software service interruption
US8364638B2 (en) * 2005-09-15 2013-01-29 Ca, Inc. Automated filer technique for use in virtualized appliances and applications
US20070260702A1 (en) * 2006-05-03 2007-11-08 University Of Washington Web browser architecture for virtual machine access
US8671403B2 (en) * 2006-05-22 2014-03-11 Infosys Limited Pre-creating virtual machines in a grid environment
US8302091B2 (en) * 2006-06-05 2012-10-30 International Business Machines Corporation Installation of a bootable image for modifying the operational environment of a computing system
WO2008017001A2 (en) * 2006-08-02 2008-02-07 Moka5, Inc. Sharing live appliances
US8195866B2 (en) 2007-04-26 2012-06-05 Vmware, Inc. Adjusting available persistent storage during execution in a virtual computer system
WO2009085977A2 (en) * 2007-12-20 2009-07-09 Virtual Computer, Inc. Virtual computing management systems and methods
US8365167B2 (en) * 2008-04-15 2013-01-29 International Business Machines Corporation Provisioning storage-optimized virtual machines within a virtual desktop environment
WO2009143124A1 (en) * 2008-05-20 2009-11-26 Citrix Systems, Inc. Methods and systems for patching multiple disk images derived from a common base disk image
US8676809B1 (en) * 2008-06-30 2014-03-18 Symantec Corporation Method and apparatus for mapping virtual machine incremental images
US8307177B2 (en) * 2008-09-05 2012-11-06 Commvault Systems, Inc. Systems and methods for management of virtualization data
US8281307B2 (en) 2009-06-01 2012-10-02 International Business Machines Corporation Virtual solution composition and deployment system and method
US8656018B1 (en) * 2008-09-23 2014-02-18 Gogrid, LLC System and method for automated allocation of hosting resources controlled by different hypervisors
US8132168B2 (en) * 2008-12-23 2012-03-06 Citrix Systems, Inc. Systems and methods for optimizing a process of determining a location of data identified by a virtual hard drive address
US8051262B2 (en) * 2009-03-25 2011-11-01 Hitachi, Ltd. Storage system storing golden image of a server or a physical/virtual machine execution environment
US8527466B2 (en) * 2009-05-31 2013-09-03 Red Hat Israel, Ltd. Handling temporary files of a virtual machine
US8776053B2 (en) * 2009-09-25 2014-07-08 Oracle International Corporation System and method to reconfigure a virtual machine image suitable for cloud deployment
US9448852B2 (en) * 2009-08-28 2016-09-20 Oracle International Corporation Managing virtual machines
US8478725B2 (en) 2009-09-14 2013-07-02 Vmware, Inc. Method and system for performing live migration of persistent data of a virtual machine
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
US9489266B2 (en) * 2009-12-11 2016-11-08 Google Inc. System and method of storing backup image catalog
US9569446B1 (en) * 2010-06-08 2017-02-14 Dell Software Inc. Cataloging system for image-based backup
WO2011159284A1 (en) * 2010-06-15 2011-12-22 Hewlett-Packard Development Company, L. P. Volume management
US8850156B2 (en) * 2010-11-03 2014-09-30 Huawei Technologies Co., Ltd. Method and system for managing virtual machine storage space and physical host
US20120174096A1 (en) * 2010-12-30 2012-07-05 Matthew Conover Systems and methods to load applications and application data into a virtual machine using hypervisor-attached volumes
US8874888B1 (en) * 2011-01-13 2014-10-28 Google Inc. Managed boot in a cloud system
US8261295B1 (en) * 2011-03-16 2012-09-04 Google Inc. High-level language for specifying configurations of cloud-based deployments
US8706859B2 (en) * 2011-03-29 2014-04-22 Hitachi, Ltd. Method and apparatus of data center file system
US8650566B2 (en) * 2011-08-29 2014-02-11 Vmware, Inc. Virtual machine provisioning in object storage system
US8881146B2 (en) * 2011-10-24 2014-11-04 Infosys Limited System for configuring a virtual image instance including receiving a configuration file specifying software information corresponding to a desired instance of a networked node or cluster
US8892833B2 (en) * 2012-01-20 2014-11-18 Netapp, Inc. Systems, methods, and computer program products providing snapshot data replication in a distributed analytic computing system
JP5684170B2 (ja) * 2012-02-28 2015-03-11 株式会社東芝 情報処理装置、クライアント管理システムおよびクライアント管理方法
US9047169B1 (en) * 2012-03-30 2015-06-02 Emc Corporation Resizing snapshot mount points

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7552358B1 (en) * 2005-04-22 2009-06-23 Symantec Operating Corporation Efficient backup and restore using metadata mapping

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106933646A (zh) * 2015-12-29 2017-07-07 杭州华为数字技术有限公司 一种创建虚拟机的方法及装置

Also Published As

Publication number Publication date
US9946578B2 (en) 2018-04-17
US20130086585A1 (en) 2013-04-04
CN103034453A (zh) 2013-04-10

Similar Documents

Publication Publication Date Title
CN103034453B (zh) 管理虚拟机实例中预安装应用的持久数据的方法和装置
JP6928055B2 (ja) データボリュームの動的な構成
CN103368767B (zh) 用于在容许故障的因特网云上部署软件应用的方法和系统
US11467755B2 (en) Method and system for enabling agentless backup and restore operations on a container orchestration platform
JP6732798B2 (ja) コンピュートクラスタ内のリソースインスタンスグループの自動スケーリング
US9122642B2 (en) Hybrid data backup in a networked computing environment
US8676763B2 (en) Remote data protection in a networked storage computing environment
CN103226518B (zh) 一种在存储管理系统中进行卷扩展的方法和装置
US8838529B2 (en) Applying replication rules to determine whether to replicate objects
RU2598991C2 (ru) Восстановление данных клиента при перемещениях данных клиента
CN104424013A (zh) 在计算环境中部署虚拟机的方法和设备
JP6499085B2 (ja) リソースの注釈
CN109906597B (zh) 向和从云网络中存储和取回受限制的数据集和非受限制的数据集
KR20140103870A (ko) 클라우드 컴퓨팅 기반의 네트워크 접속 스토리지 관리
WO2012148435A1 (en) Graph databases for storing multidimensional models of software offerings
US11687595B2 (en) System and method for searching backups
WO2012166166A1 (en) Dependency-based impact analysis using multidimensional models of software offerings
CN103716347A (zh) 建立虚拟机的方法、装置和云服务器
US10606625B1 (en) Hot growing a cloud hosted block device
US9229659B2 (en) Identifying and accessing reference data in an in-memory data grid
US20220067065A1 (en) Providing instant and distributed access to a source blob via copy-on-read blobs and link blobs
US11334600B1 (en) Partial reloading in data synchronization
CN115485677A (zh) 在分布式数据存储环境中的安全数据复制
US20240103984A1 (en) Leveraging backup process metadata for data recovery optimization
CN115454562A (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
C14 Grant of patent or utility model
GR01 Patent grant