US20140149695A1 - Creating a virtual machine from a snapshot - Google Patents

Creating a virtual machine from a snapshot Download PDF

Info

Publication number
US20140149695A1
US20140149695A1 US13/687,475 US201213687475A US2014149695A1 US 20140149695 A1 US20140149695 A1 US 20140149695A1 US 201213687475 A US201213687475 A US 201213687475A US 2014149695 A1 US2014149695 A1 US 2014149695A1
Authority
US
United States
Prior art keywords
snapshot
storage
metadata
virtual machine
snapshots
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.)
Granted
Application number
US13/687,475
Other versions
US9047238B2 (en
Inventor
Yair Zaslavsky
Omer Frenkel
Mike Kolesnik
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.)
Red Hat Israel Ltd
Original Assignee
Red Hat Israel Ltd
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 Red Hat Israel Ltd filed Critical Red Hat Israel Ltd
Priority to US13/687,475 priority Critical patent/US9047238B2/en
Assigned to RED HAT ISRAEL, LTD. reassignment RED HAT ISRAEL, LTD. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: FRENKEL, OMER, KOLESNIK, MIKE, ZASLAVSKY, YAIR
Publication of US20140149695A1 publication Critical patent/US20140149695A1/en
Application granted granted Critical
Publication of US9047238B2 publication Critical patent/US9047238B2/en
Active legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • 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/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • 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
    • 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
    • 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/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1438Restarting or rejuvenating
    • 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/1461Backup scheduling policy
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/815Virtual

Definitions

  • the embodiments of the disclosure relate generally to virtual machines and, more specifically, relate to a mechanism for generating a clone of a virtual machine by collapsing one or more snapshots into a virtual disk.
  • Distributed computing is the use of computing resources (hardware and software) that are delivered as a service over a network (typically the Internet), often referred to as “cloud computing.”
  • a customer pays a “cloud provider” to execute a program on computer hardware owned and/or controlled by the cloud provider. It is common for cloud providers to make virtual machines hosted on its computer hardware available to customers for this purpose. Virtual machines are software implementations of a physical device than can execute programs in a manner equivalent to the physical device.
  • the cloud provider typically provides an interface that a customer can use to manage virtual machines and associated resources such as processors, storage, and network services, etc.
  • the interface also allows the customer to install and execute programs, and to request backups and restorations of virtual machines. It may be desirable to clone the data and state of the virtual machine; however, such backups can be time consuming.
  • FIG. 1 is a block diagram of a network environment for implementing a virtualization manager according to one embodiment of the present disclosure.
  • FIG. 2 is a graphical representation of collapsing one or more snapshots into a virtual machine image.
  • FIG. 3 is a flow diagram illustrating a method for initiating a backup of a virtual machine.
  • FIG. 4 is a flow diagram illustrating a method for cloning a virtual machine from a snapshot backup of a virtual machine.
  • FIG. 5 is a diagram of one embodiment of a computer system for facilitating the provisioning of virtual machines.
  • Embodiments of the disclosure provide a mechanism for creating a virtual machine image from snapshots of virtual machine configuration information or metadata, and snapshots of virtual machine storage devices.
  • a computer system generates a new virtual machine, or a clone, based on a virtual machine from a point-in-time snapshot backup by collapsing metadata snapshots and storage snapshots, which may be stored separately, into a virtual machine image.
  • a snapshot backup refers to a combination of a metadata snapshot and a storage snapshot.
  • a metadata snapshot may be associated with a storage snapshot via a unique identifier. The unique identifier, in one embodiment, is a timestamp generated at the time the metadata snapshot and the storage snapshot are created.
  • the computer system identifies a clone request for a virtual machine, the clone request comprising a point-in-time reference, retrieves at least one metadata snapshot and at least one storage snapshot based on the point-in-time reference, combines the at least one metadata snapshot and the at least one storage snapshot into a virtual machine image, and provisions a new virtual machine based on the virtual machine image.
  • the disclosure beneficially allows for the creation of a new virtual machine based on a point-in-time backup of an existing virtual machine. Additionally, embodiments enable virtual machines to be cloned while they are running.
  • FIG. 1 is a block diagram of a network architecture 100 , in which embodiments of the disclosure may operate.
  • the network architecture 100 includes a virtualization infrastructure 110 of an organization that spans multiple data centers. For simplicity, only two data centers are shown.
  • Data center 120 may be located in one geographic area (for example Europe) and data center 130 may be located in another geographic area (for example East Coast USA).
  • Data center 120 includes various hardware resources 122 , such as physical servers and various processing and communications resources.
  • the virtualization infrastructure 110 can include various servers and controllers not shown for simplicity (such as a distributed resource (e.g., cloud) controller, a provisioning server, etc) that enable the virtualization infrastructure 110 to deploy a hypervisor 124 on one or more of the hardware resources 122 and to deploy virtual machines 125 - 127 using the hypervisor 124 (also known as a virtual machine monitor (VMM)).
  • a distributed resource e.g., cloud
  • provisioning server e.g., a provisioning server, etc
  • VMM virtual machine monitor
  • hypervisor 124 is a component of a host operating system (OS).
  • OS host operating system
  • the hypervisor 124 may run on top of a host OS, or may run directly on host hardware without the use of a host OS.
  • the hypervisor 124 though typically implemented in software, may emulate and export a bare machine interface to higher level software.
  • higher level software may comprise a standard or real-time operating system (OS), may be a highly stripped down operating environment with limited operating system functionality, may not include traditional OS facilities, etc.
  • the hypervisor 124 presents to other software (i.e., “guest” software) the abstraction of one or more virtual machines (VMs).
  • guest virtual machines
  • Data center 130 can be implemented in a manner similar to data center 120 .
  • data center 130 may include one or more hypervisors 134 running on hardware resources 132 .
  • Such hardware resources 132 may represent hardware resources of multiple host machines arranged in a cluster.
  • Each hypervisor may manage one or more virtual machines.
  • hypervisor 134 may deploy and manage virtual machines 135 , 136 , 137 .
  • the virtualization infrastructure 110 can be used to provide various composite services (also known as composite applications).
  • a composite application is an application that is installed on multiple machines (e.g., on multiple virtual machines). In the case of virtual machines, the virtual machines may all run on the same data center 120 , 130 , or may run on different data centers at different geographic locations. Each component of the application may be installed on a virtual machine optimized for the component.
  • a single component of the composite application is part of a virtual appliance.
  • a virtual appliance may be a virtual machine image file that includes a preconfigured operating system environment and a single application (e.g., a component of the composite application). The virtual appliance may simplify the delivery, setup and operation of that single application.
  • the virtual appliance may be a subset of a virtual machine. Virtual appliances may be used for deploying network applications, such as firewalls, virtual private networks, wide area network (WAN) optimizers, web servers, application servers, database management systems, and so forth.
  • WAN wide area network
  • the composite application and its components may be made up of several software “applications,” so the composite application will sometimes be referred to as a composite service.
  • a composite application or service can be a Web application, such as a news site, a social networking site, or a blog site.
  • Such a composite application can have various components.
  • a 3 -tier application will have an interface tier (Web server), a business logic tier (application server) and a data tier (database management system).
  • Various other tiers are possible, including an orchestration tier to distribute and manage jobs between multiple servers.
  • a composite service may consist of a database server hosted—in data center 120 —on virtual machine 125 , an application server hosted on virtual machine 126 , and a web server hosted on virtual machine 127 .
  • another application server for the composite service can be hosted on virtual machine 135 and another web server for the composite service can be hosted on virtual machine 136 .
  • data center 120 may host a virtual appliance associated with a composite application (e.g., an application server of the composite application), and data center 130 may host a second virtual appliance associated with the composite application (e.g., a web server of the composite application).
  • a client 140 is connected to the virtualization infrastructure—and ultimately to the virtual machines—via a network 150 , which may be a private network (e.g., a local area network (LAN), a wide area network (WAN), intranet, or other similar private networks) or a public network (e.g., the Internet).
  • the client 140 may be a mobile device, a PDA, a laptop, a desktop computer, or any other computing device.
  • the virtualization infrastructure 110 also includes, or in the alternative, communicates with a virtualization manager 160 .
  • the virtualization manager 160 monitors operating parameters of the data centers 120 , 130 , including performance metrics of each individual virtual machine host (e.g., hardware 122 ) executing as part of the data center 120 .
  • Examples of operating parameters for the data center can include, but are not limited to, number of host machines, total number of processing cores, network bandwidth capability, power usage, reliability (e.g., uptime), storage capacity, etc.
  • the virtualization manager 160 is also configured to maintain the performance metrics of each host, which may include, but is not limited to, number of physical processors, RAM capacity, physical storage capacity, number of virtual processors, virtual RAM capacity, virtual storage capacity, quantity and type of physical and virtual network interfaces, number of virtual machines currently executing on the host, and processor and memory usage by the virtual machines.
  • the virtualization manager 160 maintains information on characteristics of all virtual environments and underlying hardware and software in those virtual environments that it interacts with. This may include information on underlying hardware (e.g., processor resources, memory resources, etc.), information on a host operating system, information on a hypervisor, information on virtual machines, and so forth. Each virtual machine or component of a composite application (e.g., each virtual appliance) may specify configuration parameters, such as minimum resources, a type of hypervisor that it will function on, and so forth.
  • virtualization manager 160 may interact with a virtual environment that spans multiple different data centers 120 , 130 , and may additionally interact with multiple different virtualization environments.
  • the virtualization manager 160 may interact with a first virtualization environment that uses an underlying hypervisor provided by VMWare®, and with a second virtualization environment that uses an underlying hypervisor provided by Red Hat®, or Raleigh, N.C.
  • the virtualization manager 160 maintains information on the underlying software and hardware in each such virtualization environment.
  • the virtualization manager 160 includes a backup manager 145 .
  • the backup manager 145 is configured to initiate snapshot backups of any virtual machine hosted in the virtualization infrastructure 110 .
  • a snapshot refers to saving a point-in-time backup of a virtual machine.
  • the snapshot backup refers to a metadata backup and a storage backup. Accordingly, the backup manager 145 is configured to initiate the metadata backup and the storage backup.
  • the backup manager 145 may store the metadata backup separately from the storage backup.
  • the metadata backup and the storage backup are described in greater detail below with reference to FIG. 2 .
  • the snapshot may be in the form of a virtual machine image, and include the state of the virtual machine (e.g., paused, hibernated, active, etc.) together with an accounting of the resources of the host (e.g., hardware 122 ) utilized by the virtual machine (e.g., VM 125 ).
  • the storage snapshot of the virtual machine in one embodiment, may also include copies of all virtual storage devices (e.g., virtual hard disk, virtual RAM, virtual removable storage, etc.).
  • the metadata snapshot includes information that may be referred to as the metadata of the virtual machine.
  • Metadata examples include, but are not limited to, processor or other hardware logs, processor state, hardware state, memory state, physical storage usage, devices (physical or virtual) in use by the virtual machine, current configuration information (e.g., any data, instructions, scripts, or other information used by a hardware device or hypervisor 124 to implement the virtual machine) of the virtual machine, etc.
  • the backup manager 145 is configured to instruct the hypervisor 124 to create and maintain the storage backups, or copies of the virtual storage devices.
  • the backup manager 145 maintains a chain of metadata snapshots in the data store 170 , which may be implemented in the virtualization manage 160 , or separately in a location accessible by the virtualization manager 160 .
  • the backup manager 145 is also configured for managing the backup schedule of the virtual machines (e.g., VM 125 , 126 , 127 ).
  • the backup manager 145 may initiate backups based on a schedule that indicates times, such as particular weeks, days, hours, or a schedule that based on the passage of time (e.g., schedule a backup every hour).
  • the schedule may be defined by a user, or alternatively, predefined as a default schedule.
  • the backup manager 145 may be configured to receive a request, via the network 150 , from the client device 140 .
  • the request may indicate that the backup manager 145 is to initiate a backup of a particular virtual machine.
  • the backup manager 145 may receive an instruction from another component of the virtualization manager 160 , or another device, to initiate a backup.
  • the backup manager 145 may receive an indication from data center 130 that a web server operating on VM 135 is overloaded with traffic, and therefore, the backup manager 145 should initiate a backup event of VM 135 . . . .
  • the backup manager 145 is configured to perform, or provide instructions to the hypervisor to perform incremental backups.
  • An incremental backup refers to creating a backup of only the portions of the virtual machine that have changed since the previous backup.
  • the backup manager 145 is configured to initiate a storage snapshot backup that, in one embodiment, saves a differentiation of virtual images of the storage devices from the most recent snapshot. For example, the backup manager 145 is configured to compare the current backup operation to the most recent backup operation, and store only the portions of the virtual machine that have changed, as will be described in greater detail below with reference to FIG. 2 .
  • the data store 170 is a relational database where every metadata snapshot taken of a virtual machine is maintained as a record in the database.
  • the metadata snapshots may be stored in the data store 170 with an identifier that distinguishes one snapshot from another.
  • the identifier is a time stamp indicative of the date and time when the snapshot was created by the backup manager 145 .
  • Another example of an identifier may include an identifier that indicates a type of maintenance performed to the virtual machine. For example, a snapshot that is created when a software update is applied may have an identifier that is indicative of the software update.
  • the identifier associates a point-in-time metadata snapshot with a storage snapshot that is stored separately from the metadata snapshot. Accordingly, when a clone request, or new virtual machine request, is received, the metadata snapshot together with the associated storage snapshot may be combined into a new virtual machine image as will be discussed below in greater detail.
  • the virtualization manager 160 also includes a clone manager 175 .
  • the clone manager is configured to create a clone, or new virtual machine, of a virtual machine by combining a metadata snapshot from the data store 170 with a storage snapshot.
  • the clone manager 175 instructs the hypervisor, or a virtual desktop and server management daemon (e.g., a daemon operating on a host machine), to “collapse” the snapshots into a virtual machine image.
  • the clone manager 175 is configured to provide a user interface to the client device 140 so that a user may interact with the clone manager 175 to select a desired point-in-time metadata snapshot and storage snapshot.
  • the user interface may be a command-line interface or a graphical user interface.
  • the clone manager 175 is configured to instruct the hypervisor 124 to collapse one or more storage snapshots into a virtual machine image with a corresponding metadata snapshot.
  • the backup manager 145 may be hosted by a virtual machine of the virtualization infrastructure 110 .
  • FIG. 2 is a graphical representation of collapsing one or more storage snapshots into a virtual machine image.
  • the backup manager 145 is configured to generate snapshots of a virtual machine.
  • the snapshots (e.g., snapshot 202 , 204 , 206 , 208 ), as depicted, represent a metadata snapshot and a storage snapshot.
  • the metadata snapshot may be stored separately from the storage snapshot, in other embodiments, the metadata may be combined with the storage snapshot into a single image snapshot.
  • FIG. 2 illustrates a “chain” of backup snapshots 202 - 208 .
  • the chain of snapshots 202 - 208 represent a snapshots that are sequentially generated by the backup manager 145 .
  • the snapshots 202 - 208 may represent a daily or weekly snapshot of a virtual machine.
  • snapshot 202 may represent a snapshot of a virtual machine from week 1 , snapshot 204 from week 2 , etc.
  • the depicted snapshots 202 - 208 may represent daily snapshots.
  • Each snapshot 202 - 208 includes data elements 210 .
  • Data elements 210 may refer to blocks of data that represent a section of a storage device.
  • the hypervisor (or other host device manager) is configured to generate, via instructions from the backup manager 145 , incremental backups of a virtual machine.
  • the incremental backups are represented graphically as snapshots 202 - 208 having blocks of data elements 210 that may change from one snapshot to the next snapshot.
  • a block of data element 210 that does not change from one snapshot to the next is represented by a cross-hatched block in FIG. 2 .
  • data elements A, Y, and Z have not changed.
  • the snapshot- 2 204 only maintains the data elements that have changed, or in other words, elements B′, C′, and X′.
  • FIG. 2 therefore, is given only by way of example and is not intended to be limiting, but rather illustrative of one example of how data elements may change from a first snapshot 202 to a last snapshot 208 .
  • any number of snapshots 202 - 208 may be maintained by the virtualization manager 160 .
  • the clone manager 175 is configured to collapse the snapshots into a virtual machine image 212 .
  • the clone manager 175 receives a clone request for a point-in-time represented by snapshot- 3 206 .
  • the clone manager 175 may receive the clone request via a user-interface from a customer, or alternatively, the virtualization manager 160 may identify that a virtual machine is failing, and accordingly, be configured to launch a clone of the failing virtual machine based upon a last known functioning configuration.
  • the clone manager 175 instructs the hypervisor to collapse snapshot- 1 202 , snapshot- 2 204 , and snaphot- 3 206 into the new virtual machine image 212 .
  • the clone manager 175 performs the collapse.
  • the collapse described here briefly, combines the data elements 210 of each of the selected snapshots 214 into the new virtual machine 212 image in a manner that no longer includes incremental snapshot information (i.e., incremental, but separated partial images including data elements that have changed), but includes a complete virtual machine image. This is graphically illustrated as a summation of each of the data elements 210 of the different snapshots 202 - 206 .
  • a snapshot “chain” if snapshot- 3 is the selected snapshot, the clone manager 175 combines the data elements of each snapshot beginning with the first snapshot, and proceeding through the chain to the selected snapshot.
  • the metadata snapshots which contain the configuration information of the virtual machine, may be collapsed from stored metadata snapshots in a manner similar to a collapsing of storage snapshots.
  • the resulting metadata may be combined, by the clone manager 175 , with the resulting storage snapshot into the new virtual machine 212 image.
  • FIG. 3 is a flow diagram illustrating a method 300 for initiating a backup of a virtual machine.
  • Method 300 may be performed by processing logic that may comprise hardware (e.g., circuitry, dedicated logic, programmable logic, microcode, etc.), software (such as instructions run on a processing device), firmware, or a combination thereof.
  • processing logic may comprise hardware (e.g., circuitry, dedicated logic, programmable logic, microcode, etc.), software (such as instructions run on a processing device), firmware, or a combination thereof.
  • method 300 is performed by the backup manager 145 of FIG. 1 .
  • the method 300 starts and the processing logic, at block 302 , identifies a backup request for a virtual machine.
  • the processing logic identifies a backup request by receiving a backup request from a user via a user interface.
  • the user interface may be a graphical user interface (e.g., a website having virtual machine configuration information), or alternatively, a command line interface that allows the user to communicate with the virtual machine.
  • the processing logic identifies a backup request by interpreting a backup schedule. In other words, the processing logic may identify a backup request by identifying a backup schedule and initiating a backup according to the backup schedule.
  • the backup schedule may request an hourly backup, or alternatively, the backup schedule may request a snapshot backup each time any software is modified in the virtual machine.
  • the processing logic initiates a copy of the data contents of all virtual storage devices of the virtual machine.
  • the processing logic may be configured to instruct the hypervisor 124 to create a copy of each storage device in use by the virtual machine.
  • the processing logic may perform the backup.
  • the storage devices in use by the virtual machine may include, but are not limited to, virtual storage drives, virtual RAM, etc.
  • the processing logic generates a snapshot of the metadata of the virtual machine.
  • the processing logic may generate a snapshot of the metadata and insert, at block 308 , the snapshot into the data store 170 separately from the backup snapshot of the storage devices as described above.
  • the snapshot of the metadata is in an extensible markup language (XML) format.
  • the snapshot may be in an open virtualization format (OVF), which is an open standard for packaging and distributing virtual appliances and/or applications to be run in virtual appliances.
  • OVF open virtualization format
  • the snapshot may be packaged into an OVF package or an OVA package.
  • the snapshot may be packaged into a virtual hard disk (VHD) file or a virtual machine disk (VMDK) file.
  • VHD virtual hard disk
  • VMDK virtual machine disk
  • the processing logic may attach an identifier to the snapshot, such as a time stamp.
  • the group of snapshots of metadata that correspond to a virtual machine may be “chained” to one another.
  • each snapshot may be “chained' or linked to a previous snapshot and a subsequent snapshot.
  • a snapshot in one embodiment, is chained to a previous snapshot by creating a pointer, or other data type having a value that refers directly to the previous backup. As such, a user may travel forward and backward to preview snapshots.
  • the snapshots are maintained so as to be randomly accessible.
  • FIG. 4 is a flow diagram illustrating a method 400 for cloning a virtual machine from a snapshot backup of a virtual machine.
  • Method 400 may be performed by processing logic that may comprise hardware (e.g., circuitry, dedicated logic, programmable logic, microcode, etc.), software (such as instructions run on a processing device), firmware, or a combination thereof.
  • processing logic may comprise hardware (e.g., circuitry, dedicated logic, programmable logic, microcode, etc.), software (such as instructions run on a processing device), firmware, or a combination thereof.
  • method 400 is performed by the clone manager 175 of FIG. 1 .
  • the method 400 starts, and the processing logic, at block 402 , identifies a clone request.
  • the processing logic in one embodiment, identifies a clone request by receiving, via a user interface, a request from a user or client device to clone a virtual machine. In another embodiment the processing logic receives a clone request from the virtualization manager which may be configured to identify when a virtual machine has become unresponsive, for example.
  • the processing logic retrieves the virtual machine configuration data (e.g., metadata) from the data store associated with the point-in-time selected for cloning.
  • the processing logic in one embodiment, is configured to retrieve a specific metadata snapshot (i.e., virtual machine configuration snapshot) from the data store based upon the clone request.
  • the clone request may include a snapshot identifier, such as a time stamp.
  • the processing logic retrieves a most recent snapshot, or a snapshot of a last known functioning configuration.
  • the processing logic retrieves the storage snapshot (i.e., snapshot of storage devices used by the virtual machine) associated with the clone request.
  • the processing logic performs a collapse of the snapshots.
  • the processing logic collapses both the metadata snapshot and the storage snapshot.
  • a single snapshot contains both storage information and configuration information.
  • the processing logic performs a collapse as described above with reference to FIG. 2 .
  • the processing logic then generates a virtual machine image, without any snapshot information, based on the collapsed metadata and storage snapshots.
  • the processing logic provisions a new virtual machine based on the virtual machine image.
  • FIG. 5 is a diagram of one embodiment of a computer system for facilitating the provisioning of virtual machines.
  • the machine may be connected (e.g., networked) to other machines in a LAN, an intranet, an extranet, or the Internet.
  • the machine can be a host in a cloud, a cloud provider system, a cloud controller or any other machine.
  • the machine can operate in the capacity of a server or a client machine in a client-server network environment, or as a peer machine in a peer-to-peer (or distributed) network environment.
  • the machine may be a personal computer (PC), a tablet PC, a console device or set-top box (STB), a Personal Digital Assistant (PDA), a cellular telephone, a web appliance, a server, a network router, switch or bridge, or any machine capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken by that machine.
  • PC personal computer
  • PDA Personal Digital Assistant
  • STB console device or set-top box
  • a cellular telephone a web appliance
  • server e.g., a server
  • network router e.g., switch or bridge
  • the exemplary computer system 500 includes a processing device 502 , a main memory 504 (e.g., read-only memory (ROM), flash memory, dynamic random access memory (DRAM) such as synchronous DRAM (SDRAM) or DRAM (RDRAM), etc.), a static memory 506 (e.g., flash memory, static random access memory (SRAM), etc.), and a secondary memory 518 (e.g., a data storage device in the form of a drive unit, which may include fixed or removable computer-readable storage medium), which communicate with each other via a bus 530 .
  • main memory 504 e.g., read-only memory (ROM), flash memory, dynamic random access memory (DRAM) such as synchronous DRAM (SDRAM) or DRAM (RDRAM), etc.
  • DRAM dynamic random access memory
  • SDRAM synchronous DRAM
  • RDRAM DRAM
  • static memory 506 e.g., flash memory, static random access memory (SRAM), etc.
  • secondary memory 518 e.g., a
  • Processing device 502 represents one or more general-purpose processing devices such as a microprocessor, central processing unit, or the like. More particularly, the processing device 502 may be a complex instruction set computing (CISC) microprocessor, reduced instruction set computing (RISC) microprocessor, very long instruction word (VLIW) microprocessor, processor implementing other instruction sets, or processors implementing a combination of instruction sets. Processing device 502 may also be one or more special-purpose processing devices such as an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a digital signal processor (DSP), network processor, or the like. Processing device 502 is configured to execute the instructions 526 for performing the operations and steps discussed herein.
  • CISC complex instruction set computing
  • RISC reduced instruction set computing
  • VLIW very long instruction word
  • ASIC application specific integrated circuit
  • FPGA field programmable gate array
  • DSP digital signal processor
  • network processor or the like.
  • the computer system 500 may further include a network interface device 522 .
  • the computer system 500 also may include a video display unit 510 (e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)) connected to the computer system through a graphics port and graphics chipset, an alphanumeric input device 512 (e.g., a keyboard), a cursor control device 514 (e.g., a mouse), and a signal generation device 520 (e.g., a speaker).
  • a video display unit 510 e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)
  • an alphanumeric input device 512 e.g., a keyboard
  • a cursor control device 514 e.g., a mouse
  • a signal generation device 520 e.g., a speaker
  • the secondary memory 518 may include a machine-readable storage medium (or more specifically a computer-readable storage medium) 524 on which is stored one or more sets of instructions 526 embodying any one or more of the methodologies or functions described herein.
  • the instructions 526 include instructions for the virtualization manager 160 .
  • the instructions 526 may also reside, completely or at least partially, within the main memory 504 and/or within the processing device 502 during execution thereof by the computer system 500 , the main memory 504 and the processing device 502 also constituting machine-readable storage media.
  • the computer-readable storage medium 524 may also be used to store the instructions 526 persistently. While the computer-readable storage medium 524 is shown in an exemplary embodiment to be a single medium, the term “computer-readable storage medium” should be taken to include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more sets of instructions. The term “computer-readable storage medium” shall also be taken to include any medium that is capable of storing or encoding a set of instructions for execution by the machine and that cause the machine to perform any one or more of the methodologies of the present disclosure. The term “computer-readable storage medium” shall accordingly be taken to include, but not be limited to, solid-state memories, and optical and magnetic media.
  • the instructions 526 , components and other features described herein can be implemented as discrete hardware components or integrated in the functionality of hardware components such as ASICS, FPGAs, DSPs or similar devices.
  • the instructions 526 can be implemented as firmware or functional circuitry within hardware devices.
  • the instructions 526 can be implemented in any combination hardware devices and software components.
  • the present disclosure also relates to an apparatus for performing the operations herein.
  • This apparatus may be specially constructed for the required purposes, or it may comprise a general purpose computer selectively activated or reconfigured by a computer program stored in the computer.
  • a computer program may be stored in a computer readable storage medium, such as, but not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, and magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, or any type of media suitable for storing electronic instructions, each coupled to a computer system bus.
  • the present disclosure may be provided as a computer program product, or software, that may include a machine-readable medium having stored thereon instructions, which may be used to program a computer system (or other electronic devices) to perform a process according to the present disclosure.
  • a machine-readable medium includes any mechanism for storing or transmitting information in a form readable by a machine (e.g., a computer).
  • a machine-readable (e.g., computer-readable) medium includes a machine (e.g., a computer) readable storage medium such as a read only memory (“ROM”), random access memory (“RAM”), magnetic disk storage media, optical storage media, flash memory devices, etc.

Abstract

A computer system generates a clone of a virtual machine from a point-in-time snapshot backup by collapsing metadata snapshots and storage snapshots into a virtual machine image. The computer system identifies a clone request for a virtual machine, the clone request comprising a point-in-time reference, retrieves at least one metadata snapshot and at least one storage snapshot based on the point-in-time reference, combines the at least one metadata snapshot and the at least one storage snapshot into a virtual machine image, and provisions a new virtual machine based on the virtual machine image.

Description

    TECHNICAL FIELD
  • The embodiments of the disclosure relate generally to virtual machines and, more specifically, relate to a mechanism for generating a clone of a virtual machine by collapsing one or more snapshots into a virtual disk.
  • BACKGROUND
  • Distributed computing is the use of computing resources (hardware and software) that are delivered as a service over a network (typically the Internet), often referred to as “cloud computing.” In a distributed computing environment, a customer pays a “cloud provider” to execute a program on computer hardware owned and/or controlled by the cloud provider. It is common for cloud providers to make virtual machines hosted on its computer hardware available to customers for this purpose. Virtual machines are software implementations of a physical device than can execute programs in a manner equivalent to the physical device.
  • The cloud provider typically provides an interface that a customer can use to manage virtual machines and associated resources such as processors, storage, and network services, etc. The interface also allows the customer to install and execute programs, and to request backups and restorations of virtual machines. It may be desirable to clone the data and state of the virtual machine; however, such backups can be time consuming.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • Embodiments of the disclosure will be understood more fully from the detailed description given below and from the accompanying drawings of various embodiments of the disclosure. The drawings, however, should not be taken to limit the disclosure to the specific embodiments, but are for explanation and understanding only.
  • FIG. 1 is a block diagram of a network environment for implementing a virtualization manager according to one embodiment of the present disclosure.
  • FIG. 2 is a graphical representation of collapsing one or more snapshots into a virtual machine image.
  • FIG. 3 is a flow diagram illustrating a method for initiating a backup of a virtual machine.
  • FIG. 4 is a flow diagram illustrating a method for cloning a virtual machine from a snapshot backup of a virtual machine.
  • FIG. 5 is a diagram of one embodiment of a computer system for facilitating the provisioning of virtual machines.
  • DETAILED DESCRIPTION
  • Embodiments of the disclosure provide a mechanism for creating a virtual machine image from snapshots of virtual machine configuration information or metadata, and snapshots of virtual machine storage devices. In embodiments of the disclosure, a computer system generates a new virtual machine, or a clone, based on a virtual machine from a point-in-time snapshot backup by collapsing metadata snapshots and storage snapshots, which may be stored separately, into a virtual machine image. A snapshot backup, as used herein, refers to a combination of a metadata snapshot and a storage snapshot. A metadata snapshot may be associated with a storage snapshot via a unique identifier. The unique identifier, in one embodiment, is a timestamp generated at the time the metadata snapshot and the storage snapshot are created.
  • The computer system identifies a clone request for a virtual machine, the clone request comprising a point-in-time reference, retrieves at least one metadata snapshot and at least one storage snapshot based on the point-in-time reference, combines the at least one metadata snapshot and the at least one storage snapshot into a virtual machine image, and provisions a new virtual machine based on the virtual machine image. The disclosure beneficially allows for the creation of a new virtual machine based on a point-in-time backup of an existing virtual machine. Additionally, embodiments enable virtual machines to be cloned while they are running.
  • FIG. 1 is a block diagram of a network architecture 100, in which embodiments of the disclosure may operate. The network architecture 100 includes a virtualization infrastructure 110 of an organization that spans multiple data centers. For simplicity, only two data centers are shown. Data center 120 may be located in one geographic area (for example Europe) and data center 130 may be located in another geographic area (for example East Coast USA).
  • Data center 120 includes various hardware resources 122, such as physical servers and various processing and communications resources. The virtualization infrastructure 110 can include various servers and controllers not shown for simplicity (such as a distributed resource (e.g., cloud) controller, a provisioning server, etc) that enable the virtualization infrastructure 110 to deploy a hypervisor 124 on one or more of the hardware resources 122 and to deploy virtual machines 125-127 using the hypervisor 124 (also known as a virtual machine monitor (VMM)).
  • In one embodiment, hypervisor 124 is a component of a host operating system (OS). Alternatively, the hypervisor 124 may run on top of a host OS, or may run directly on host hardware without the use of a host OS. The hypervisor 124, though typically implemented in software, may emulate and export a bare machine interface to higher level software. Such higher level software may comprise a standard or real-time operating system (OS), may be a highly stripped down operating environment with limited operating system functionality, may not include traditional OS facilities, etc. The hypervisor 124 presents to other software (i.e., “guest” software) the abstraction of one or more virtual machines (VMs).
  • Data center 130 can be implemented in a manner similar to data center 120. For example, data center 130 may include one or more hypervisors 134 running on hardware resources 132. Such hardware resources 132 may represent hardware resources of multiple host machines arranged in a cluster. Each hypervisor may manage one or more virtual machines. For example, hypervisor 134 may deploy and manage virtual machines 135, 136, 137.
  • The virtualization infrastructure 110 can be used to provide various composite services (also known as composite applications). A composite application is an application that is installed on multiple machines (e.g., on multiple virtual machines). In the case of virtual machines, the virtual machines may all run on the same data center 120, 130, or may run on different data centers at different geographic locations. Each component of the application may be installed on a virtual machine optimized for the component.
  • In one embodiment, a single component of the composite application is part of a virtual appliance. A virtual appliance may be a virtual machine image file that includes a preconfigured operating system environment and a single application (e.g., a component of the composite application). The virtual appliance may simplify the delivery, setup and operation of that single application. The virtual appliance may be a subset of a virtual machine. Virtual appliances may be used for deploying network applications, such as firewalls, virtual private networks, wide area network (WAN) optimizers, web servers, application servers, database management systems, and so forth.
  • The composite application and its components may be made up of several software “applications,” so the composite application will sometimes be referred to as a composite service. For example, a composite application or service can be a Web application, such as a news site, a social networking site, or a blog site. Such a composite application can have various components. For example, a 3-tier application will have an interface tier (Web server), a business logic tier (application server) and a data tier (database management system). Various other tiers are possible, including an orchestration tier to distribute and manage jobs between multiple servers.
  • For example, a composite service may consist of a database server hosted—in data center 120—on virtual machine 125, an application server hosted on virtual machine 126, and a web server hosted on virtual machine 127. In data center 130, another application server for the composite service can be hosted on virtual machine 135 and another web server for the composite service can be hosted on virtual machine 136. In another example, data center 120 may host a virtual appliance associated with a composite application (e.g., an application server of the composite application), and data center 130 may host a second virtual appliance associated with the composite application (e.g., a web server of the composite application).
  • In one embodiment, a client 140 is connected to the virtualization infrastructure—and ultimately to the virtual machines—via a network 150, which may be a private network (e.g., a local area network (LAN), a wide area network (WAN), intranet, or other similar private networks) or a public network (e.g., the Internet). The client 140 may be a mobile device, a PDA, a laptop, a desktop computer, or any other computing device.
  • In one embodiment, the virtualization infrastructure 110 also includes, or in the alternative, communicates with a virtualization manager 160. The virtualization manager 160 monitors operating parameters of the data centers 120, 130, including performance metrics of each individual virtual machine host (e.g., hardware 122) executing as part of the data center 120. Examples of operating parameters for the data center can include, but are not limited to, number of host machines, total number of processing cores, network bandwidth capability, power usage, reliability (e.g., uptime), storage capacity, etc. As part of maintaining the operating parameters of the data centers, the virtualization manager 160 is also configured to maintain the performance metrics of each host, which may include, but is not limited to, number of physical processors, RAM capacity, physical storage capacity, number of virtual processors, virtual RAM capacity, virtual storage capacity, quantity and type of physical and virtual network interfaces, number of virtual machines currently executing on the host, and processor and memory usage by the virtual machines.
  • The virtualization manager 160, in one embodiment, maintains information on characteristics of all virtual environments and underlying hardware and software in those virtual environments that it interacts with. This may include information on underlying hardware (e.g., processor resources, memory resources, etc.), information on a host operating system, information on a hypervisor, information on virtual machines, and so forth. Each virtual machine or component of a composite application (e.g., each virtual appliance) may specify configuration parameters, such as minimum resources, a type of hypervisor that it will function on, and so forth.
  • As discussed above, virtualization manager 160 may interact with a virtual environment that spans multiple different data centers 120, 130, and may additionally interact with multiple different virtualization environments. For example, the virtualization manager 160 may interact with a first virtualization environment that uses an underlying hypervisor provided by VMWare®, and with a second virtualization environment that uses an underlying hypervisor provided by Red Hat®, or Raleigh, N.C. The virtualization manager 160 maintains information on the underlying software and hardware in each such virtualization environment.
  • The virtualization manager 160, in one embodiment, includes a backup manager 145. The backup manager 145 is configured to initiate snapshot backups of any virtual machine hosted in the virtualization infrastructure 110. A snapshot refers to saving a point-in-time backup of a virtual machine. In one embodiment, the snapshot backup refers to a metadata backup and a storage backup. Accordingly, the backup manager 145 is configured to initiate the metadata backup and the storage backup. The backup manager 145 may store the metadata backup separately from the storage backup. The metadata backup and the storage backup are described in greater detail below with reference to FIG. 2. The snapshot may be in the form of a virtual machine image, and include the state of the virtual machine (e.g., paused, hibernated, active, etc.) together with an accounting of the resources of the host (e.g., hardware 122) utilized by the virtual machine (e.g., VM 125). The storage snapshot of the virtual machine, in one embodiment, may also include copies of all virtual storage devices (e.g., virtual hard disk, virtual RAM, virtual removable storage, etc.). The metadata snapshot includes information that may be referred to as the metadata of the virtual machine. Examples of metadata include, but are not limited to, processor or other hardware logs, processor state, hardware state, memory state, physical storage usage, devices (physical or virtual) in use by the virtual machine, current configuration information (e.g., any data, instructions, scripts, or other information used by a hardware device or hypervisor 124 to implement the virtual machine) of the virtual machine, etc.
  • The backup manager 145 is configured to instruct the hypervisor 124 to create and maintain the storage backups, or copies of the virtual storage devices. The backup manager 145, in one embodiment, maintains a chain of metadata snapshots in the data store 170, which may be implemented in the virtualization manage 160, or separately in a location accessible by the virtualization manager 160. The backup manager 145 is also configured for managing the backup schedule of the virtual machines (e.g., VM 125, 126, 127). The backup manager 145 may initiate backups based on a schedule that indicates times, such as particular weeks, days, hours, or a schedule that based on the passage of time (e.g., schedule a backup every hour). The schedule may be defined by a user, or alternatively, predefined as a default schedule. In another embodiment, the backup manager 145 may be configured to receive a request, via the network 150, from the client device 140. The request may indicate that the backup manager 145 is to initiate a backup of a particular virtual machine. Alternatively, the backup manager 145 may receive an instruction from another component of the virtualization manager 160, or another device, to initiate a backup. For example, the backup manager 145 may receive an indication from data center 130 that a web server operating on VM 135 is overloaded with traffic, and therefore, the backup manager 145 should initiate a backup event of VM 135 . . . .
  • The backup manager 145 is configured to perform, or provide instructions to the hypervisor to perform incremental backups. An incremental backup refers to creating a backup of only the portions of the virtual machine that have changed since the previous backup. Stated differently, the backup manager 145 is configured to initiate a storage snapshot backup that, in one embodiment, saves a differentiation of virtual images of the storage devices from the most recent snapshot. For example, the backup manager 145 is configured to compare the current backup operation to the most recent backup operation, and store only the portions of the virtual machine that have changed, as will be described in greater detail below with reference to FIG. 2.
  • In one embodiment, the data store 170 is a relational database where every metadata snapshot taken of a virtual machine is maintained as a record in the database. The metadata snapshots may be stored in the data store 170 with an identifier that distinguishes one snapshot from another. In one example, the identifier is a time stamp indicative of the date and time when the snapshot was created by the backup manager 145. Another example of an identifier may include an identifier that indicates a type of maintenance performed to the virtual machine. For example, a snapshot that is created when a software update is applied may have an identifier that is indicative of the software update. The identifier associates a point-in-time metadata snapshot with a storage snapshot that is stored separately from the metadata snapshot. Accordingly, when a clone request, or new virtual machine request, is received, the metadata snapshot together with the associated storage snapshot may be combined into a new virtual machine image as will be discussed below in greater detail.
  • The virtualization manager 160 also includes a clone manager 175. The clone manager is configured to create a clone, or new virtual machine, of a virtual machine by combining a metadata snapshot from the data store 170 with a storage snapshot. The clone manager 175 instructs the hypervisor, or a virtual desktop and server management daemon (e.g., a daemon operating on a host machine), to “collapse” the snapshots into a virtual machine image. In one embodiment, the clone manager 175 is configured to provide a user interface to the client device 140 so that a user may interact with the clone manager 175 to select a desired point-in-time metadata snapshot and storage snapshot. The user interface may be a command-line interface or a graphical user interface. In a further embodiment, the clone manager 175 is configured to instruct the hypervisor 124 to collapse one or more storage snapshots into a virtual machine image with a corresponding metadata snapshot.
  • While various embodiments are described in terms of the environment described above, the facilities and systems may be implemented in a variety of other environments and combinations. For example, the backup manager 145 may be hosted by a virtual machine of the virtualization infrastructure 110.
  • FIG. 2 is a graphical representation of collapsing one or more storage snapshots into a virtual machine image. As described above, the backup manager 145 is configured to generate snapshots of a virtual machine. The snapshots (e.g., snapshot 202, 204, 206, 208), as depicted, represent a metadata snapshot and a storage snapshot. Although as described above, the metadata snapshot may be stored separately from the storage snapshot, in other embodiments, the metadata may be combined with the storage snapshot into a single image snapshot. FIG. 2 illustrates a “chain” of backup snapshots 202-208. The chain of snapshots 202-208 represent a snapshots that are sequentially generated by the backup manager 145.
  • The snapshots 202-208 may represent a daily or weekly snapshot of a virtual machine. For example, snapshot 202 may represent a snapshot of a virtual machine from week 1, snapshot 204 from week 2, etc. Alternatively, the depicted snapshots 202-208 may represent daily snapshots. Each snapshot 202-208 includes data elements 210. Data elements 210 may refer to blocks of data that represent a section of a storage device. The hypervisor (or other host device manager) is configured to generate, via instructions from the backup manager 145, incremental backups of a virtual machine. The incremental backups are represented graphically as snapshots 202-208 having blocks of data elements 210 that may change from one snapshot to the next snapshot. A block of data element 210 that does not change from one snapshot to the next is represented by a cross-hatched block in FIG. 2. As depicted, from snapshot-1 202 to snapshot-2 204, data elements A, Y, and Z have not changed. As such, the snapshot-2 204 only maintains the data elements that have changed, or in other words, elements B′, C′, and X′. FIG. 2, therefore, is given only by way of example and is not intended to be limiting, but rather illustrative of one example of how data elements may change from a first snapshot 202 to a last snapshot 208. One will readily recognize that any number of snapshots 202-208 may be maintained by the virtualization manager 160.
  • The clone manager 175 is configured to collapse the snapshots into a virtual machine image 212. In the depicted embodiment, the clone manager 175 receives a clone request for a point-in-time represented by snapshot-3 206. The clone manager 175 may receive the clone request via a user-interface from a customer, or alternatively, the virtualization manager 160 may identify that a virtual machine is failing, and accordingly, be configured to launch a clone of the failing virtual machine based upon a last known functioning configuration.
  • The clone manager 175 instructs the hypervisor to collapse snapshot-1 202, snapshot-2 204, and snaphot-3 206 into the new virtual machine image 212. In one embodiment, the clone manager 175 performs the collapse. The collapse, described here briefly, combines the data elements 210 of each of the selected snapshots 214 into the new virtual machine 212 image in a manner that no longer includes incremental snapshot information (i.e., incremental, but separated partial images including data elements that have changed), but includes a complete virtual machine image. This is graphically illustrated as a summation of each of the data elements 210 of the different snapshots 202-206. In the example of a snapshot “chain,” if snapshot-3 is the selected snapshot, the clone manager 175 combines the data elements of each snapshot beginning with the first snapshot, and proceeding through the chain to the selected snapshot.
  • In one embodiment, the metadata snapshots, which contain the configuration information of the virtual machine, may be collapsed from stored metadata snapshots in a manner similar to a collapsing of storage snapshots. The resulting metadata may be combined, by the clone manager 175, with the resulting storage snapshot into the new virtual machine 212 image.
  • FIG. 3 is a flow diagram illustrating a method 300 for initiating a backup of a virtual machine. Method 300 may be performed by processing logic that may comprise hardware (e.g., circuitry, dedicated logic, programmable logic, microcode, etc.), software (such as instructions run on a processing device), firmware, or a combination thereof. In one embodiment, method 300 is performed by the backup manager 145 of FIG. 1.
  • The method 300 starts and the processing logic, at block 302, identifies a backup request for a virtual machine. In one embodiment, the processing logic identifies a backup request by receiving a backup request from a user via a user interface. The user interface may be a graphical user interface (e.g., a website having virtual machine configuration information), or alternatively, a command line interface that allows the user to communicate with the virtual machine. In another embodiment, the processing logic identifies a backup request by interpreting a backup schedule. In other words, the processing logic may identify a backup request by identifying a backup schedule and initiating a backup according to the backup schedule. The backup schedule may request an hourly backup, or alternatively, the backup schedule may request a snapshot backup each time any software is modified in the virtual machine.
  • At block 304, the processing logic initiates a copy of the data contents of all virtual storage devices of the virtual machine. For example, the processing logic may be configured to instruct the hypervisor 124 to create a copy of each storage device in use by the virtual machine. In an alternative embodiment, the processing logic may perform the backup. The storage devices in use by the virtual machine may include, but are not limited to, virtual storage drives, virtual RAM, etc.
  • At block 306, the processing logic generates a snapshot of the metadata of the virtual machine. The processing logic may generate a snapshot of the metadata and insert, at block 308, the snapshot into the data store 170 separately from the backup snapshot of the storage devices as described above. In one implementation, the snapshot of the metadata is in an extensible markup language (XML) format. In a further implementation, the snapshot may be in an open virtualization format (OVF), which is an open standard for packaging and distributing virtual appliances and/or applications to be run in virtual appliances. For example, the snapshot may be packaged into an OVF package or an OVA package. Alternatively, the snapshot may be packaged into a virtual hard disk (VHD) file or a virtual machine disk (VMDK) file.
  • The processing logic may attach an identifier to the snapshot, such as a time stamp. The group of snapshots of metadata that correspond to a virtual machine may be “chained” to one another. As will be discussed below with reference to FIG. 3, each snapshot may be “chained' or linked to a previous snapshot and a subsequent snapshot. A snapshot, in one embodiment, is chained to a previous snapshot by creating a pointer, or other data type having a value that refers directly to the previous backup. As such, a user may travel forward and backward to preview snapshots. In another embodiment, the snapshots are maintained so as to be randomly accessible.
  • FIG. 4 is a flow diagram illustrating a method 400 for cloning a virtual machine from a snapshot backup of a virtual machine. Method 400 may be performed by processing logic that may comprise hardware (e.g., circuitry, dedicated logic, programmable logic, microcode, etc.), software (such as instructions run on a processing device), firmware, or a combination thereof. In one embodiment, method 400 is performed by the clone manager 175 of FIG. 1.
  • The method 400 starts, and the processing logic, at block 402, identifies a clone request. The processing logic, in one embodiment, identifies a clone request by receiving, via a user interface, a request from a user or client device to clone a virtual machine. In another embodiment the processing logic receives a clone request from the virtualization manager which may be configured to identify when a virtual machine has become unresponsive, for example.
  • At block 404, the processing logic retrieves the virtual machine configuration data (e.g., metadata) from the data store associated with the point-in-time selected for cloning. The processing logic, in one embodiment, is configured to retrieve a specific metadata snapshot (i.e., virtual machine configuration snapshot) from the data store based upon the clone request. The clone request may include a snapshot identifier, such as a time stamp. In another embodiment, the processing logic retrieves a most recent snapshot, or a snapshot of a last known functioning configuration. Similarly, the processing logic retrieves the storage snapshot (i.e., snapshot of storage devices used by the virtual machine) associated with the clone request.
  • At block 406, the processing logic performs a collapse of the snapshots. In one embodiment, the processing logic collapses both the metadata snapshot and the storage snapshot. In another embodiment, a single snapshot contains both storage information and configuration information. The processing logic performs a collapse as described above with reference to FIG. 2. The processing logic then generates a virtual machine image, without any snapshot information, based on the collapsed metadata and storage snapshots. At block 408, the processing logic provisions a new virtual machine based on the virtual machine image.
  • FIG. 5 is a diagram of one embodiment of a computer system for facilitating the provisioning of virtual machines. Within the computer system 500 is a set of instructions for causing the machine to perform any one or more of the methodologies discussed herein. In alternative embodiments, the machine may be connected (e.g., networked) to other machines in a LAN, an intranet, an extranet, or the Internet. The machine can be a host in a cloud, a cloud provider system, a cloud controller or any other machine. The machine can operate in the capacity of a server or a client machine in a client-server network environment, or as a peer machine in a peer-to-peer (or distributed) network environment. The machine may be a personal computer (PC), a tablet PC, a console device or set-top box (STB), a Personal Digital Assistant (PDA), a cellular telephone, a web appliance, a server, a network router, switch or bridge, or any machine capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken by that machine. Further, while only a single machine is illustrated, the term “machine” shall also be taken to include any collection of machines (e.g., computers) that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the methodologies discussed herein.
  • The exemplary computer system 500 includes a processing device 502, a main memory 504 (e.g., read-only memory (ROM), flash memory, dynamic random access memory (DRAM) such as synchronous DRAM (SDRAM) or DRAM (RDRAM), etc.), a static memory 506 (e.g., flash memory, static random access memory (SRAM), etc.), and a secondary memory 518 (e.g., a data storage device in the form of a drive unit, which may include fixed or removable computer-readable storage medium), which communicate with each other via a bus 530.
  • Processing device 502 represents one or more general-purpose processing devices such as a microprocessor, central processing unit, or the like. More particularly, the processing device 502 may be a complex instruction set computing (CISC) microprocessor, reduced instruction set computing (RISC) microprocessor, very long instruction word (VLIW) microprocessor, processor implementing other instruction sets, or processors implementing a combination of instruction sets. Processing device 502 may also be one or more special-purpose processing devices such as an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a digital signal processor (DSP), network processor, or the like. Processing device 502 is configured to execute the instructions 526 for performing the operations and steps discussed herein.
  • The computer system 500 may further include a network interface device 522. The computer system 500 also may include a video display unit 510 (e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)) connected to the computer system through a graphics port and graphics chipset, an alphanumeric input device 512 (e.g., a keyboard), a cursor control device 514 (e.g., a mouse), and a signal generation device 520 (e.g., a speaker).
  • The secondary memory 518 may include a machine-readable storage medium (or more specifically a computer-readable storage medium) 524 on which is stored one or more sets of instructions 526 embodying any one or more of the methodologies or functions described herein. In one embodiment, the instructions 526 include instructions for the virtualization manager 160. The instructions 526 may also reside, completely or at least partially, within the main memory 504 and/or within the processing device 502 during execution thereof by the computer system 500, the main memory 504 and the processing device 502 also constituting machine-readable storage media.
  • The computer-readable storage medium 524 may also be used to store the instructions 526 persistently. While the computer-readable storage medium 524 is shown in an exemplary embodiment to be a single medium, the term “computer-readable storage medium” should be taken to include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more sets of instructions. The term “computer-readable storage medium” shall also be taken to include any medium that is capable of storing or encoding a set of instructions for execution by the machine and that cause the machine to perform any one or more of the methodologies of the present disclosure. The term “computer-readable storage medium” shall accordingly be taken to include, but not be limited to, solid-state memories, and optical and magnetic media.
  • The instructions 526, components and other features described herein can be implemented as discrete hardware components or integrated in the functionality of hardware components such as ASICS, FPGAs, DSPs or similar devices. In addition, the instructions 526 can be implemented as firmware or functional circuitry within hardware devices. Further, the instructions 526 can be implemented in any combination hardware devices and software components.
  • In the above description, numerous details are set forth. It will be apparent, however, to one skilled in the art, that the present disclosure may be practiced without these specific details. In some instances, well-known structures and devices are shown in block diagram form, rather than in detail, in order to avoid obscuring the present disclosure.
  • Some portions of the detailed description which follows are presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. An algorithm is here, and generally, conceived to be a self-consistent sequence of steps leading to a result. The steps are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.
  • It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the following discussion, it is appreciated that throughout the description, discussions utilizing terms such as “providing,” “generating,” “identifying,” “receiving,” “retrieving,” “provisioning,” “identifying,” or the like, refer to the actions and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (e.g., electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices.
  • In the preceding description, numerous details are set forth. It will be apparent, however, to one skilled in the art, that the present disclosure may be practiced without these specific details. In some instances, well-known structures and devices are shown in block diagram form, rather than in detail, in order to avoid obscuring the present disclosure.
  • Some portions of the detailed descriptions are presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. An algorithm is here, and generally, conceived to be a self-consistent sequence of steps leading to a desired result. The steps are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.
  • The present disclosure also relates to an apparatus for performing the operations herein. This apparatus may be specially constructed for the required purposes, or it may comprise a general purpose computer selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored in a computer readable storage medium, such as, but not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, and magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, or any type of media suitable for storing electronic instructions, each coupled to a computer system bus.
  • The present disclosure may be provided as a computer program product, or software, that may include a machine-readable medium having stored thereon instructions, which may be used to program a computer system (or other electronic devices) to perform a process according to the present disclosure. A machine-readable medium includes any mechanism for storing or transmitting information in a form readable by a machine (e.g., a computer). For example, a machine-readable (e.g., computer-readable) medium includes a machine (e.g., a computer) readable storage medium such as a read only memory (“ROM”), random access memory (“RAM”), magnetic disk storage media, optical storage media, flash memory devices, etc.
  • Reference in the description to “one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the disclosure. The phrase “in one embodiment” located in various places in this description does not necessarily refer to the same embodiment. Like reference numbers signify like elements throughout the description of the figures.
  • It is to be understood that the above description is intended to be illustrative, and not restrictive. Many other embodiments will be apparent to those of skill in the art upon reading and understanding the above description. Although the present disclosure has been described with reference to specific exemplary embodiments, it will be recognized that the disclosure is not limited to the embodiments described, but can be practiced with modification and alteration within the spirit and scope of the appended claims. Accordingly, the specification and drawings are to be regarded in an illustrative sense rather than a restrictive sense. The scope of the disclosure should, therefore, be determined with reference to the appended claims, along with the full scope of equivalents to which such claims are entitled.

Claims (20)

What is claimed is:
1. A method comprising:
identifying, by a computing system, a clone request for a virtual machine, the clone request comprising a point-in-time reference;
retrieving a metadata snapshot and a storage snapshot based on the point-in-time reference;
combining the metadata snapshot and the storage snapshot into a virtual machine image; and
provisioning a new virtual machine based on the virtual machine image.
2. The method of claim 1, wherein the metadata snapshot is one of a plurality of incremental metadata snapshots forming a point-in-time chain of incremental metadata snapshots, wherein each of the plurality of incremental metadata snapshots comprises data elements that have changed from a previous point-in-time metadata snapshot.
3. The method of claim 2, further comprising collapsing the plurality of incremental metadata snapshots into a single metadata image.
4. The method of claim 3, wherein the storage snapshot is one of a plurality of incremental storage snapshots forming a point-in-time chain of incremental storage snapshots, wherein each of the plurality of incremental storage snapshots comprises data elements that have changed from a previous point-in-time storage snapshot.
5. The method of claim 4, further comprising collapsing the plurality of incremental storage snapshots into a single storage image.
6. The method of claim 5, wherein the combining the metadata snapshot and the storage snapshot into a virtual machine image further comprises combining the single metadata image and the single storage image into the virtual machine image.
7. The method of claim 1, wherein the clone request further comprises an identifier indicative of a specific snapshot based upon a timestamp.
8. A non-transitory computer-readable storage medium having instructions that, when executed by a processing device, cause the processing device to perform a method comprising:
identifying, by a computing system, a clone request for a virtual machine, the clone request comprising a point-in-time reference;
retrieving a metadata snapshot and a storage snapshot based on the point-in-time reference;
combining the metadata snapshot and the storage snapshot into a virtual machine image; and
provisioning a new virtual machine based on the virtual machine image.
9. The non-transitory computer-readable storage medium of claim 8, wherein the metadata snapshot is one of a plurality of incremental metadata snapshots forming a point-in-time chain of incremental metadata snapshots, wherein each of the plurality of incremental metadata snapshots comprises data elements that have changed from a previous point-in-time metadata snapshot.
10. The non-transitory computer-readable storage medium of claim 9, further comprising collapsing the plurality of incremental metadata snapshots into a single metadata image.
11. The non-transitory computer-readable storage medium of claim 10, wherein the storage snapshot is one of a plurality of incremental storage snapshots forming a point-in-time chain of incremental storage snapshots, wherein each of the plurality of incremental storage snapshots comprises data elements that have changed from a previous point-in-time storage snapshot.
12. The non-transitory computer-readable storage medium of claim 11, further comprising collapsing the plurality of incremental storage snapshots into a single storage image.
13. The non-transitory computer-readable storage medium of claim 12, wherein the combining the metadata snapshot and the storage snapshot into a virtual machine image further comprises combining the single metadata image and the single storage image into the virtual machine image.
14. The non-transitory computer-readable medium of claim 8, wherein the clone request further comprises an identifier indicative of a specific snapshot based upon a timestamp.
15. A computing apparatus comprising:
a memory; and
a processing device coupled to the memory, wherein the processing device is configured to:
identify, by a computing system, a clone request for a virtual machine, the clone request comprising a point-in-time reference;
retrieve a metadata snapshot and a storage snapshot based on the point-in-time reference;
combine the metadata snapshot and the storage snapshot into a virtual machine image; and
provision a new virtual machine based on the virtual machine image.
16. The computing apparatus of claim 15, wherein the metadata snapshot is one of a plurality of incremental metadata snapshots forming a point-in-time chain of incremental metadata snapshots, wherein each of the plurality of incremental metadata snapshots comprises data elements that have changed from a previous point-in-time metadata snapshot, and wherein the processing device is further configured to collapse the plurality of incremental metadata snapshots into a single metadata image.
17. The computing apparatus of claim 16, wherein the storage snapshot is one of a plurality of incremental storage snapshots forming a point-in-time chain of incremental storage snapshots, wherein each of the plurality of incremental storage snapshots comprises data elements that have changed from a previous point-in-time storage snapshot.
18. The computing apparatus of claim 17, wherein the processing device is further configured to collapse the plurality of incremental storage snapshots into a single storage image.
19. The computing apparatus of claim 18, wherein the combining the metadata snapshot and the storage snapshot into a virtual machine image further comprises combining the single metadata image and the single storage image into the virtual machine image.
20. The computing apparatus of claim 19, wherein the clone request further comprises an identifier indicative of a specific snapshot based upon a timestamp.
US13/687,475 2012-11-28 2012-11-28 Creating a virtual machine from a snapshot Active 2033-04-13 US9047238B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US13/687,475 US9047238B2 (en) 2012-11-28 2012-11-28 Creating a virtual machine from a snapshot

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US13/687,475 US9047238B2 (en) 2012-11-28 2012-11-28 Creating a virtual machine from a snapshot

Publications (2)

Publication Number Publication Date
US20140149695A1 true US20140149695A1 (en) 2014-05-29
US9047238B2 US9047238B2 (en) 2015-06-02

Family

ID=50774354

Family Applications (1)

Application Number Title Priority Date Filing Date
US13/687,475 Active 2033-04-13 US9047238B2 (en) 2012-11-28 2012-11-28 Creating a virtual machine from a snapshot

Country Status (1)

Country Link
US (1) US9047238B2 (en)

Cited By (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140146055A1 (en) * 2012-11-29 2014-05-29 International Business Machines Corporation Use of snapshots to reduce risk in migration to a standard virtualized environment
US20140208320A1 (en) * 2013-01-24 2014-07-24 International Business Machines Corporation Creating a virtual resource package
US20150052527A1 (en) * 2013-08-19 2015-02-19 International Business Machines Corporation Providing a custom virtual appliance
US20150301842A1 (en) * 2013-09-19 2015-10-22 International Business Machines Corporation Determining optimal methods for creating virtual machines
US20150310080A1 (en) * 2014-04-28 2015-10-29 International Business Machines Corporation Merging multiple point-in-time copies into a merged point-in-time copy
US20160019081A1 (en) * 2014-07-21 2016-01-21 Vmware,Inc. Viewing a snapshot of a virtual machine
US9282166B2 (en) 2012-11-29 2016-03-08 International Business Machines Corporation Management infrastructure analysis for cloud migration
US20160117163A1 (en) * 2014-10-28 2016-04-28 International Business Machines Corporation Applying update to snapshots of virtual machine
US9430255B1 (en) * 2013-03-15 2016-08-30 Google Inc. Updating virtual machine generated metadata to a distribution service for sharing and backup
US20160328166A1 (en) * 2015-05-08 2016-11-10 Ricoh Company, Ltd. Information processing apparatus, information processing system, and information processing method
US9524215B1 (en) * 2013-07-30 2016-12-20 Veritas Technologies Llc Systems and methods for managing virtual machine backups
US9575792B2 (en) * 2014-03-14 2017-02-21 Netapp, Inc. Method and system for replicating virtual machines
US9612859B2 (en) 2014-07-21 2017-04-04 Vmware, Inc. Comparing states of a virtual machine
US9632814B2 (en) 2012-11-29 2017-04-25 International Business Machines Corporation Replacing virtual machine disks
US20170153965A1 (en) * 2015-11-30 2017-06-01 International Business Machines Corporation Listing optimal machine instances
US9678981B1 (en) * 2010-05-03 2017-06-13 Panzura, Inc. Customizing data management for a distributed filesystem
US9804928B2 (en) 2011-11-14 2017-10-31 Panzura, Inc. Restoring an archived file in a distributed filesystem
US9805054B2 (en) 2011-11-14 2017-10-31 Panzura, Inc. Managing a global namespace for a distributed filesystem
US9811532B2 (en) 2010-05-03 2017-11-07 Panzura, Inc. Executing a cloud command for a distributed filesystem
US9852150B2 (en) 2010-05-03 2017-12-26 Panzura, Inc. Avoiding client timeouts in a distributed filesystem
TWI624757B (en) * 2017-05-24 2018-05-21 財團法人工業技術研究院 Data processing method, data processing system, and computer program product
US10176048B2 (en) 2014-02-07 2019-01-08 International Business Machines Corporation Creating a restore copy from a copy of source data in a repository having source data at different point-in-times and reading data from the repository for the restore copy
US10244081B2 (en) 2012-11-29 2019-03-26 International Business Machines Corporation Adjustment to managed-infrastructure-as-a-service cloud standard
US20190138400A1 (en) * 2016-05-02 2019-05-09 Nokia Solutions And Networks Oy Snapshot Creation in Virtual Network Environment
US20190163372A1 (en) * 2017-11-30 2019-05-30 Veritas Technologies Llc Performing backup operations using replicas
US10372546B2 (en) 2014-02-07 2019-08-06 International Business Machines Corporation Creating a restore copy from a copy of source data in a repository having source data at different point-in-times
US10552610B1 (en) * 2016-12-22 2020-02-04 Fireeye, Inc. Adaptive virtual machine snapshot update framework for malware behavioral analysis
US10671485B2 (en) 2017-03-31 2020-06-02 Nutanix, Inc. Image management for desktop virtualization
US20200241756A1 (en) * 2019-01-29 2020-07-30 Rubrik, Inc. Preemptively breaking incremental snapshot chains
US10776036B2 (en) * 2018-07-06 2020-09-15 EMC IP Holding Company LLC System and method for efficient restore
US10860540B1 (en) * 2013-05-30 2020-12-08 EMC IP Holding Company LLC Method and system for synchronizing backup and cloning schedules
EP3772686A1 (en) * 2019-08-06 2021-02-10 Citrix Systems, Inc. Automatic restore for a failed virtual computing session
US20210072974A1 (en) * 2017-11-29 2021-03-11 Citrix Systems, Inc. Cloud Service Automation of Common Image Management
US10963287B2 (en) * 2019-03-27 2021-03-30 Amazon Technologies, Inc. Reducing request latency in a multi-tenant web service host
US20210271570A1 (en) * 2020-02-28 2021-09-02 EMC IP Holding Company LLC System and a method for generating live vm images with an extended recovery range
US11169958B2 (en) 2014-02-07 2021-11-09 International Business Machines Corporation Using a repository having a full copy of source data and point-in-time information from point-in-time copies of the source data to restore the source data at different points-in-time
US11194667B2 (en) 2014-02-07 2021-12-07 International Business Machines Corporation Creating a restore copy from a copy of a full copy of source data in a repository that is at a different point-in-time than a restore point-in-time of a restore request
US11269732B2 (en) * 2019-03-12 2022-03-08 Commvault Systems, Inc. Managing structured data in a data storage system
US11272267B2 (en) * 2015-09-25 2022-03-08 Intel Corporation Out-of-band platform tuning and configuration
US20220083428A1 (en) * 2019-05-28 2022-03-17 Denso Corporation Vehicular device
US11321281B2 (en) * 2015-01-15 2022-05-03 Commvault Systems, Inc. Managing structured data in a data storage system
US11366681B2 (en) * 2019-03-27 2022-06-21 Amazon Technologies, Inc. Chaining virtual machines
US11436096B2 (en) 2015-01-21 2022-09-06 Commvault Systems, Inc. Object-level database restore
US11467858B2 (en) 2019-03-27 2022-10-11 Amazon Technologies, Inc. Techniques for performing continuation workflows
US11573859B2 (en) 2015-04-21 2023-02-07 Commvault Systems, Inc. Content-independent and database management system-independent synthetic full backup of a database based on snapshot technology
US11635979B2 (en) * 2014-07-21 2023-04-25 Vmware, Inc. Modifying a state of a virtual machine

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9552405B1 (en) * 2013-09-30 2017-01-24 EMC IP Holding Company LLC Methods and apparatus for recovery of complex assets in distributed information processing systems
US10241691B2 (en) 2014-11-04 2019-03-26 Rubrik, Inc. Data management system
US10649856B2 (en) 2017-09-01 2020-05-12 International Business Machines Corporation Concurrent writing to a file during backup of the file
US11334438B2 (en) 2017-10-10 2022-05-17 Rubrik, Inc. Incremental file system backup using a pseudo-virtual disk
US11372729B2 (en) 2017-11-29 2022-06-28 Rubrik, Inc. In-place cloud instance restore
US11074134B2 (en) 2018-08-23 2021-07-27 International Business Machines Corporation Space management for snapshots of execution images

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060085784A1 (en) * 2004-10-15 2006-04-20 Microsoft Corporation Systems and methods for authoring and accessing computer-based materials using virtual machines
US20120144391A1 (en) * 2010-12-02 2012-06-07 International Business Machines Corporation Provisioning a virtual machine
US8364639B1 (en) * 2007-10-11 2013-01-29 Parallels IP Holdings GmbH Method and system for creation, analysis and navigation of virtual snapshots
US8621274B1 (en) * 2011-05-18 2013-12-31 Netapp Inc. Virtual machine fault tolerance

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7257257B2 (en) 2003-08-19 2007-08-14 Intel Corporation Method and apparatus for differential, bandwidth-efficient and storage-efficient backups
US8321643B1 (en) 2006-05-09 2012-11-27 Vmware, Inc. System and methods for automatically re-signaturing multi-unit data storage volumes in distributed data storage systems
US8326897B2 (en) 2007-12-19 2012-12-04 International Business Machines Corporation Apparatus and method for managing data storage
JP2009205614A (en) 2008-02-29 2009-09-10 Fujitsu Ltd Storage system controlling method, switch device and storage system
US8019732B2 (en) 2008-08-08 2011-09-13 Amazon Technologies, Inc. Managing access of multiple executing programs to non-local block data storage
US8032707B2 (en) 2008-09-15 2011-10-04 Microsoft Corporation Managing cache data and metadata
US20130054533A1 (en) 2011-08-24 2013-02-28 Microsoft Corporation Verifying a data recovery component using a managed interface
US8650566B2 (en) 2011-08-29 2014-02-11 Vmware, Inc. Virtual machine provisioning in object storage system
US9104331B2 (en) 2012-09-28 2015-08-11 Emc Corporation System and method for incremental virtual machine backup using storage system functionality

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060085784A1 (en) * 2004-10-15 2006-04-20 Microsoft Corporation Systems and methods for authoring and accessing computer-based materials using virtual machines
US8364639B1 (en) * 2007-10-11 2013-01-29 Parallels IP Holdings GmbH Method and system for creation, analysis and navigation of virtual snapshots
US20120144391A1 (en) * 2010-12-02 2012-06-07 International Business Machines Corporation Provisioning a virtual machine
US8621274B1 (en) * 2011-05-18 2013-12-31 Netapp Inc. Virtual machine fault tolerance

Cited By (77)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9678981B1 (en) * 2010-05-03 2017-06-13 Panzura, Inc. Customizing data management for a distributed filesystem
US9852150B2 (en) 2010-05-03 2017-12-26 Panzura, Inc. Avoiding client timeouts in a distributed filesystem
US9811532B2 (en) 2010-05-03 2017-11-07 Panzura, Inc. Executing a cloud command for a distributed filesystem
US9804928B2 (en) 2011-11-14 2017-10-31 Panzura, Inc. Restoring an archived file in a distributed filesystem
US10296494B2 (en) 2011-11-14 2019-05-21 Panzura, Inc. Managing a global namespace for a distributed filesystem
US9805054B2 (en) 2011-11-14 2017-10-31 Panzura, Inc. Managing a global namespace for a distributed filesystem
US10244081B2 (en) 2012-11-29 2019-03-26 International Business Machines Corporation Adjustment to managed-infrastructure-as-a-service cloud standard
US20140146055A1 (en) * 2012-11-29 2014-05-29 International Business Machines Corporation Use of snapshots to reduce risk in migration to a standard virtualized environment
US9633406B2 (en) 2012-11-29 2017-04-25 International Business Machines Corporation Use of snapshots to reduce risk in migration to a standard virtualized environment
US9282166B2 (en) 2012-11-29 2016-03-08 International Business Machines Corporation Management infrastructure analysis for cloud migration
US9736013B2 (en) 2012-11-29 2017-08-15 International Business Machines Corporation Management infrastructure analysis for cloud migration
US9632814B2 (en) 2012-11-29 2017-04-25 International Business Machines Corporation Replacing virtual machine disks
US9722858B2 (en) 2012-11-29 2017-08-01 International Business Machines Corporation Management infrastructure analysis for cloud migration
US9092837B2 (en) * 2012-11-29 2015-07-28 International Business Machines Corporation Use of snapshots to reduce risk in migration to a standard virtualized environment
US10249014B2 (en) 2012-11-29 2019-04-02 International Business Machines Corporation Use of snapshots to reduce risk in migration to a standard virtualized environment
US9547486B2 (en) * 2013-01-24 2017-01-17 International Business Machines Corporation Creating a virtual resource package
US20140208320A1 (en) * 2013-01-24 2014-07-24 International Business Machines Corporation Creating a virtual resource package
US9430255B1 (en) * 2013-03-15 2016-08-30 Google Inc. Updating virtual machine generated metadata to a distribution service for sharing and backup
US10860540B1 (en) * 2013-05-30 2020-12-08 EMC IP Holding Company LLC Method and system for synchronizing backup and cloning schedules
US9524215B1 (en) * 2013-07-30 2016-12-20 Veritas Technologies Llc Systems and methods for managing virtual machine backups
US20150052527A1 (en) * 2013-08-19 2015-02-19 International Business Machines Corporation Providing a custom virtual appliance
US9910694B2 (en) 2013-08-20 2018-03-06 International Business Machines Corporation Providing a custom virtual appliance
US9348570B2 (en) * 2013-08-20 2016-05-24 International Business Machines Corporation Providing a custom virtual appliance
US10255086B2 (en) * 2013-09-19 2019-04-09 International Business Machines Corporation Determining optimal methods for creating virtual machines
US20150301842A1 (en) * 2013-09-19 2015-10-22 International Business Machines Corporation Determining optimal methods for creating virtual machines
US11169958B2 (en) 2014-02-07 2021-11-09 International Business Machines Corporation Using a repository having a full copy of source data and point-in-time information from point-in-time copies of the source data to restore the source data at different points-in-time
US10176048B2 (en) 2014-02-07 2019-01-08 International Business Machines Corporation Creating a restore copy from a copy of source data in a repository having source data at different point-in-times and reading data from the repository for the restore copy
US10372546B2 (en) 2014-02-07 2019-08-06 International Business Machines Corporation Creating a restore copy from a copy of source data in a repository having source data at different point-in-times
US11150994B2 (en) 2014-02-07 2021-10-19 International Business Machines Corporation Creating a restore copy from a copy of source data in a repository having source data at different point-in-times
US11194667B2 (en) 2014-02-07 2021-12-07 International Business Machines Corporation Creating a restore copy from a copy of a full copy of source data in a repository that is at a different point-in-time than a restore point-in-time of a restore request
US9575792B2 (en) * 2014-03-14 2017-02-21 Netapp, Inc. Method and system for replicating virtual machines
US11630839B2 (en) * 2014-04-28 2023-04-18 International Business Machines Corporation Merging multiple point-in-time copies into a merged point-in-time copy
US20150310080A1 (en) * 2014-04-28 2015-10-29 International Business Machines Corporation Merging multiple point-in-time copies into a merged point-in-time copy
US10387446B2 (en) * 2014-04-28 2019-08-20 International Business Machines Corporation Merging multiple point-in-time copies into a merged point-in-time copy
US9612859B2 (en) 2014-07-21 2017-04-04 Vmware, Inc. Comparing states of a virtual machine
US11635979B2 (en) * 2014-07-21 2023-04-25 Vmware, Inc. Modifying a state of a virtual machine
US20160019081A1 (en) * 2014-07-21 2016-01-21 Vmware,Inc. Viewing a snapshot of a virtual machine
US10140115B2 (en) 2014-10-28 2018-11-27 International Business Machines Corporation Applying update to snapshots of virtual machine
US10083022B2 (en) * 2014-10-28 2018-09-25 International Business Machines Corporation Applying update to snapshots of virtual machine
US20160117163A1 (en) * 2014-10-28 2016-04-28 International Business Machines Corporation Applying update to snapshots of virtual machine
US10394547B2 (en) 2014-10-28 2019-08-27 International Business Machines Corporation Applying update to snapshots of virtual machine
US11321281B2 (en) * 2015-01-15 2022-05-03 Commvault Systems, Inc. Managing structured data in a data storage system
US11630739B2 (en) 2015-01-21 2023-04-18 Commvault Systems, Inc. Database protection using block-level mapping
US11436096B2 (en) 2015-01-21 2022-09-06 Commvault Systems, Inc. Object-level database restore
US11755424B2 (en) 2015-01-21 2023-09-12 Commvault Systems, Inc. Restoring archived object-level database data
US11573859B2 (en) 2015-04-21 2023-02-07 Commvault Systems, Inc. Content-independent and database management system-independent synthetic full backup of a database based on snapshot technology
US20160328166A1 (en) * 2015-05-08 2016-11-10 Ricoh Company, Ltd. Information processing apparatus, information processing system, and information processing method
US10001934B2 (en) * 2015-05-08 2018-06-19 Ricoh Company, Ltd. Information processing apparatus, information processing system, and information processing method
US11272267B2 (en) * 2015-09-25 2022-03-08 Intel Corporation Out-of-band platform tuning and configuration
US9678857B1 (en) * 2015-11-30 2017-06-13 International Business Machines Corporation Listing optimal machine instances
US20170153965A1 (en) * 2015-11-30 2017-06-01 International Business Machines Corporation Listing optimal machine instances
US10860436B2 (en) * 2016-05-02 2020-12-08 Nokia Solutions And Networks Oy Snapshot creation in virtual network environment
US20190138400A1 (en) * 2016-05-02 2019-05-09 Nokia Solutions And Networks Oy Snapshot Creation in Virtual Network Environment
US10552610B1 (en) * 2016-12-22 2020-02-04 Fireeye, Inc. Adaptive virtual machine snapshot update framework for malware behavioral analysis
US10671485B2 (en) 2017-03-31 2020-06-02 Nutanix, Inc. Image management for desktop virtualization
TWI624757B (en) * 2017-05-24 2018-05-21 財團法人工業技術研究院 Data processing method, data processing system, and computer program product
US10467106B2 (en) 2017-05-24 2019-11-05 Industrial Technology Research Institute Data processing method, data processing system, and non-transitory computer program product for controlling a workload delay time
US11720338B2 (en) * 2017-11-29 2023-08-08 Citrix Systems, Inc. Cloud service automation of common image management
US20210072974A1 (en) * 2017-11-29 2021-03-11 Citrix Systems, Inc. Cloud Service Automation of Common Image Management
US20190163372A1 (en) * 2017-11-30 2019-05-30 Veritas Technologies Llc Performing backup operations using replicas
US11429305B2 (en) 2017-11-30 2022-08-30 Veritas Technologies Llc Performing backup operations using replicas
US10802747B2 (en) * 2017-11-30 2020-10-13 Veritas Technologies Llc Performing backup operations using replicas
CN111417931A (en) * 2017-11-30 2020-07-14 华睿泰科技有限责任公司 Performing backup operations using a copy
US10776036B2 (en) * 2018-07-06 2020-09-15 EMC IP Holding Company LLC System and method for efficient restore
US20200241756A1 (en) * 2019-01-29 2020-07-30 Rubrik, Inc. Preemptively breaking incremental snapshot chains
US11137928B2 (en) * 2019-01-29 2021-10-05 Rubrik, Inc. Preemptively breaking incremental snapshot chains
US11269732B2 (en) * 2019-03-12 2022-03-08 Commvault Systems, Inc. Managing structured data in a data storage system
US11816001B2 (en) 2019-03-12 2023-11-14 Commvault Systems, Inc. Managing structured data in a data storage system
US10963287B2 (en) * 2019-03-27 2021-03-30 Amazon Technologies, Inc. Reducing request latency in a multi-tenant web service host
US11467858B2 (en) 2019-03-27 2022-10-11 Amazon Technologies, Inc. Techniques for performing continuation workflows
US11366681B2 (en) * 2019-03-27 2022-06-21 Amazon Technologies, Inc. Chaining virtual machines
US20220083428A1 (en) * 2019-05-28 2022-03-17 Denso Corporation Vehicular device
US11853103B2 (en) * 2019-05-28 2023-12-26 Denso Corporation Vehicular device
EP3772686A1 (en) * 2019-08-06 2021-02-10 Citrix Systems, Inc. Automatic restore for a failed virtual computing session
US11449393B2 (en) 2019-08-06 2022-09-20 Citrix Systems, Inc. Automatic restore for a failed virtual computing session
US20210271570A1 (en) * 2020-02-28 2021-09-02 EMC IP Holding Company LLC System and a method for generating live vm images with an extended recovery range
US11971788B2 (en) * 2020-02-28 2024-04-30 EMC IP Holding Company LLC System and a method for generating live VM images with an extended recovery range

Also Published As

Publication number Publication date
US9047238B2 (en) 2015-06-02

Similar Documents

Publication Publication Date Title
US9047238B2 (en) Creating a virtual machine from a snapshot
US10713183B2 (en) Virtual machine backup using snapshots and current configuration
US10225335B2 (en) Apparatus, systems and methods for container based service deployment
US9430257B2 (en) Scheduling virtual machines using user-defined rules
US11288053B2 (en) Conversion and restoration of computer environments to container-based implementations
US9684502B2 (en) Apparatus, systems, and methods for distributed application orchestration and deployment
US10394547B2 (en) Applying update to snapshots of virtual machine
US10102023B2 (en) Fair unidirectional multi-queue virtual machine migration
US9223623B2 (en) Dynamic service resource control
US8839265B2 (en) Virtual environment for server applications, such as web applications
US9268590B2 (en) Provisioning a cluster of distributed computing platform based on placement strategy
US8260840B1 (en) Dynamic scaling of a cluster of computing nodes used for distributed execution of a program
US8776058B2 (en) Dynamic generation of VM instance at time of invocation
US20140109087A1 (en) Virtual machine provisioning using replicated containers
US10445186B1 (en) Associating a guest application within a virtual machine to create dependencies in backup/restore policy
US10474484B2 (en) Offline management of virtualization software installed on a host computer
US20140310703A1 (en) Multi-machine deployment and configuration of multi-tiered applications
US10268470B2 (en) Method and system for tracking progress and providing fault tolerance in automated upgrade of a network virtualization platform
KR101680702B1 (en) System for web hosting based cloud service
US9841983B2 (en) Single click host maintenance
US10942761B2 (en) Migrating a virtual machine in response to identifying an unsupported virtual hardware component
US20220229689A1 (en) Virtualization platform control device, virtualization platform control method, and virtualization platform control program
US20240126582A1 (en) Disaster recovery of containerized workloads
US10419283B1 (en) Methods, systems, and computer readable mediums for template-based provisioning of distributed computing systems
Selvaraj et al. Integration of Grid and Cloud with Semantics based integrator

Legal Events

Date Code Title Description
AS Assignment

Owner name: RED HAT ISRAEL, LTD., ISRAEL

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:ZASLAVSKY, YAIR;FRENKEL, OMER;KOLESNIK, MIKE;REEL/FRAME:029368/0305

Effective date: 20121128

STCF Information on status: patent grant

Free format text: PATENTED CASE

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 4

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 8