US20130185509A1 - Computing machine migration - Google Patents

Computing machine migration Download PDF

Info

Publication number
US20130185509A1
US20130185509A1 US13/719,053 US201213719053A US2013185509A1 US 20130185509 A1 US20130185509 A1 US 20130185509A1 US 201213719053 A US201213719053 A US 201213719053A US 2013185509 A1 US2013185509 A1 US 2013185509A1
Authority
US
United States
Prior art keywords
virtual machine
file
redo
machine
image
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.)
Abandoned
Application number
US13/719,053
Inventor
Victor V. Golosovker
IIya Langouev
Sirish Raghuram
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.)
VMware LLC
Original Assignee
VMware LLC
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 VMware LLC filed Critical VMware LLC
Priority to US13/719,053 priority Critical patent/US20130185509A1/en
Publication of US20130185509A1 publication Critical patent/US20130185509A1/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • 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
    • 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/4557Distribution of virtual machine instances; Migration and load balancing

Definitions

  • Embodiments of the present invention relate to the field of computer software and mechanisms for moving running software between two computing machines. More specifically, embodiments of the present invention are directed to a technology for starting up a computing machine based on software previously running on a different computing machine.
  • a virtual machine is a software abstraction, or “virtualization,” of an actual physical computer system.
  • Each VM typically mimics the general structure of a physical computer and as such will usually have both virtual system hardware and guest system software.
  • the virtual system hardware typically includes at least one virtual CPU, virtual memory, at least one storage device such as a virtual disk, and one or more virtual devices. All of the virtual hardware components of the VM can be implemented in software to emulate corresponding physical components.
  • the guest system software typically includes a guest operating system and drivers as needed.
  • An advantage of virtual machine technology is an ability to run multiple virtual machines on a single host platform. Frequently, rather than starting up a new virtual machine from scratch by allocating resources for it, loading and booting an operating system, and then loading and starting specific applications, system operators find it useful to create new working virtual machines that are copies of running machines (either physical or virtual).
  • a typical process starts with the creation of a new virtual machine on a suitable host. Thereafter, the process is different from conventional machine startup.
  • a “snapshot” of the source machine file system is taken, typically with the aid of software residing on the source machine. The snapshot provides an image of the complete state of the source machine file system at a moment in time.
  • Snapshot techniques were originally developed to support various backup, roll-back, and recovery functions, but they can also be used for “sandbox” functions.
  • Sandbox functionality allows testing of new ideas, patches and the like while preserving the option of restoring a previous known machine configuration.
  • a user may want to test some software changes before committing to them or run an application without leaving a trace of his/her activities.
  • By running a VM using the snapshot version of the file system s/he can ensure that changes are functioning properly while retaining the option to go back to a known working configuration.
  • S/he can also run an application such as a web browser that normally leaves records of activity, and then restore the system to a state as if s/he had never run the application.
  • a new VM In order for a new VM to make use of the snapshot image of the source machine, it is cloned to storage associated with new virtual machine. There are many ways of performing this cloning operation. In a typical computing environment, the new VM is connected to the source machine over a network, and the data are transferred over that network.
  • the VM memory can be local (such as all or a portion of a disk drive attached directly to the physical machine which hosts the VM), or it can be located remotely, for example, in a Storage Area Network (SAN) accessible from the VM.
  • SAN Storage Area Network
  • the amount of time will vary according to the implementation details, the resulting average data transfer rates, and the size of the source machine file system that must be transferred.
  • the size of the source file system can be 50 GB or more, and typical average data transfer rates can be about 20 MB/s.
  • a complete cloning operation can take at least 2500 seconds or about 40 minutes. Significantly longer times are not uncommon, especially for servers running data-intensive applications that can have much larger file systems.
  • the data may need to be adapted to function in a virtual environment.
  • These changes are typically related to operating system files, especially device drivers and the like, which need to be modified to connect to specific hardware or memory locations in the new VM.
  • the new VM has all the information it needs to pick up where the source machine left off at the time of the file system snapshot.
  • P2V Conversion (“physical-to-virtual” conversion), although the source machine need not necessarily be a physical machine.
  • Software to support bringing up new VMs that are cloned from source machines as described above is available from various vendors. Examples include VMWARE CONVERTERTM and P2VASSISTANTTM (now discontinued) from VMWARE®, Inc. and POWERCONVERTTM from PLATESPINTTM Ltd. Similar functionality is also described in U.S. Patent Applications by Armington (application Ser. No. 10/869,730) and by Kerr et al. (application Ser. No. 11/257,009).
  • a problem that can arise for certain applications of computing machine migration is that the long time required to complete the migration can result in significant downtime for critical computing services.
  • servers that process customer transactions or other user business which cannot tolerate downtime, and where server data are continually changing.
  • it is typically necessary to disable user interaction from the time that a snapshot of the source file system is taken until the new VM can take over, a period that can easily extend to several hours depending on the amount of data that must be copied and the available data transmission rate. While it is generally possible to leave the source machine running after the snapshot and during the copying operation (“live” computing machine migration), such a process may be acceptable only for servers providing static data.
  • the conversion process or data copying may also fail (for example, due to a networking problem), or the new target VM may not boot because of an incompatibility with the virtual environment. In such a case, the user would not know whether the conversion has succeeded until the end of the process, possibly several hours later.
  • the new VM is used only for testing purposes such as “sandbox” testing of new ideas (e.g., software patches and service packs) or system administrator diagnosis of a reported problem.
  • new ideas e.g., software patches and service packs
  • system administrator diagnosis of a reported problem.
  • the source and target machines can be either physical or virtual; the source can also be a machine image.
  • the target machine is connected to a snapshot or image of the source machine file system, and a redo-log file is created on the file system associated with the target machine.
  • the target machine begins operation by reading data directly from the snapshot or image of the source machine file system. Thereafter, all writes are made to the redo-log file, and subsequent reads are made from the redo-log file if it contains data for the requested sector or from the snapshot or image if it does not.
  • the source machine continues to be able to run separately and simultaneously after the target machine begins operation.
  • FIG. 1 shows a schematic diagram of instant computing machine migration.
  • the source machine is a physical machine with a locally attached disk file system
  • the target machine is a VM with associated virtual disk(s).
  • This version of computing machine migration is also known as “P2V conversion.”
  • the source machine can also be a virtual machine or a machine image (a snapshot or backup of the source file system volume(s)).
  • the destination machine can also be a physical machine. Both source and destination machines can have file systems that are either locally attached or remote but accessible over a network or other communications channel.
  • Computing machine migration migrating the functionality of a source computing machine to a new machine.
  • a common example is P2V conversion, but in alternative embodiments the source can be physical or virtual, and the source file data can be a freshly captured snapshot of the source file system or a previous machine image or backup copy.
  • the target machine can be either physical or virtual.
  • Live computing machine migration computing machine migration performed without powering off or rebooting the source physical machine.
  • Instant computing machine migration computing machine migration wherein the target machine is able to begin operation by accessing source machine file system memory without first copying it to a new location.
  • VM a “virtual machine” which is a software abstraction, or “virtualization,” of an actual physical computer system.
  • a “hypervisor” is often used to create and manage a VM, although there are other names used for some types of software that create and manage VMs.
  • P2V conversion migrating a source physical machine to a new target VM.
  • P2V is a shorthand notation for “physical-to-virtual.”
  • Live P2V conversion P2V conversion performed without disabling user interaction with the source machine.
  • Snapshot an image of the complete state of a source machine file system or a file system volume at a moment in time.
  • a snapshot is usually not a physical copy.
  • all file changes are made to new copies of files, and the pre-snapshot versions of all files, including subsequently deleted files, are preserved.
  • the source machine operating system and application software see only the new version of the file system.
  • the preserved snapshot version of files is made available via special operation system calls.
  • Migration streaming a background process running after instant computing machine migration to copy the source file system to the target VM. Such a process can reside on the source machine (a data “push” process), the target machine (a data “pull” process), or on a third machine connected to the same network as the source and target.
  • a synonym for migration streaming in the case where the source machine is physical and the destination machine is virtual is P2V streaming.
  • Sandbox a VM which is a usually temporary copy of a source machine intended for example and without limitation, for experimental testing of new ideas, software patches, and service packs before implementation on the “real” machine.
  • Redo-log file a collection of data in one or more files on the target machine file system where file system writes are made after instant computing machine migration.
  • Hypervisor a software program which manages the creation and running of VMs.
  • To Clone to copy a file system from a source machine to a target machine with changes if necessary to adapt or reconfigure the functionality of the associated software to the configuration of the target machine.
  • File system a collection of storage organized as a set of “files,” each consisting of one or more sectors, typically with a hierarchical “directory” or “folder” structure resident on one or more “volumes.”
  • the physical type of storage used can vary. Magnetic and optical disks are commonly used, and a “volume” may represent a physical disk, although other arrangements are also possible. Other forms of physical storage such as flash memory can also be used.
  • File systems are usually, but need not be, stored in some form of nonvolatile storage. At least a portion of the file system associated with a particular computing machine is typically connected locally such that high-speed communications are possible, but file systems can also use storage that is connected to remote machines or directly to a network (as a Storage Area Network, for example).
  • Sector the smallest unit of storage that can be read from or written to a file system.
  • size of a sector is 512 bytes.
  • Instant computing machine migration greatly speeds up the process of creating a fully-functional target VM.
  • a new VM can be created and be ready to run in just a few minutes. Initially, the new VM uses a snapshot image of the source file system for reads. A redo-log file on the target machine is created and used for all file system writes. Thus, any changes to the file system made by the new target machine are made in local copies of the affected file system sectors and not in the snapshot image on the source machine (which can be, and typically is, maintained in a read-only state). Subsequent reads are made from the redo-log file for any file system sectors that have been written there.
  • the full contents of the source file system can be transferred and converted into the native file-system format of the target in a background process while the target VM (and optionally the source machine) are running.
  • a file system snapshot 102 is taken for each volume of the source file system 101 .
  • the target computing machine 103 (for example, a VM) uses these snapshots directly for performing reads for any file system sectors that have not been previously read or modified, at least until background migration streaming is complete.
  • the snapshots can be created using either software provided by the source operating system or by a third party.
  • VSS VISUAL SOURCE SAFETM
  • the snapshot is exposed to the operating system as a volume device with a name like ⁇ ? ⁇ GLOBALROOT ⁇ Device ⁇ HarddiskVolumeShadowCopy ⁇ N>name.
  • LVM Logical Volume Manager
  • ZFS snapshots can be used for a source machine using the SOLARISTM or MAC OS XTM operating systems.
  • a machine image such as might be stored for backup purposes as the source file system for instant computing machine migration.
  • the operation of the original source machine is not relevant, since a separate copy has been made and stored.
  • the target machine for the instant computing machine migration is connected to the machine image, typically via a network connection 106 between the source and target computing machines 100 and 103 respectively.
  • the target computing machine 103 can be either physical or virtual.
  • a hypervisor can be used to create a new VM as a target computing machine by allocating resources for it on a physical machine remote from the source computing machine, but connected to it over a network.
  • the original source computing machine 100 can continue to run and modify its file system.
  • the new target computing machine 103 (for example, the target VM) reads initially from the source system snapshot 102 . Of course, once it has begun operation, the target VM will also need to be able to modify the file system.
  • redo-log file 105 can be stored in a “redo-log file” 105 on the file system 104 associated with the target VM.
  • the name “redo-log file” is used by analogy with similar storage structures that allow rollbacks to historic versions for problem recovery in other storage management systems.)
  • the redo-log file functionality can also be implemented as multiple files, and it can be stored directly in system memory rather than the file system. Redo-log files can also exist in multiple layers, when a cloned file system is subsequently cloned additional times. Subsequent reads are made from the re-do log file 105 for any sectors that exist therein and from the source system snapshot 102 for any that do not.
  • Computing machine migration can be either “local” or “remote.” It is “local” if the target VM is created directly on the source computing machine and managed, for example, using a hypervisor running on the source. In this case, the source data is local relative to the target VM and reads from the source file system snapshots are performed using the native services of the source operating system.
  • local computing machine migration creates two running “machines,” the original physical machine and a target VM hosted on the same physical hardware. In other words, for local P2V conversion (as such computing machine migration is most likely to be), the target VM 103 is running on the same computing hardware as the source physical machine 100 . These two machines can coexist and appear to users as two independently operating machines. The process of creating and starting a virtual clone of the original machine is described as “instant” when it is not necessary to stop the physical machine and reboot as would be necessary in typical prior art usage of file system snapshots.
  • the target VM can also be created on a physical machine remote from the source machine.
  • the process is described as “remote” computing machine migration.
  • the target VM can be created and managed, for example, by a hypervisor located on the remote physical machine and the source data is remote to the target VM.
  • the source data can be made available via a network data transfer protocol such as iSCSI or FibreChannel, although any suitable means can be used to provide a data connection between the source data and the target VM.
  • Data transfer for remote instant computing machine migration may be much slower than is possible for local migration, but the target VM does not need a complete copy of the source file system in its own virtual disk memory (file system) to begin useful operation.
  • Instant computing machine migration allows the target VM to begin operation immediately while the copying of the source file system proceeds as a background task.
  • a cache can also be advantageous to cache the results of VM file system reads that are made from the source file system image for more rapid subsequent retrieval.
  • Such a cache can be located in the same redo-log file that is used to store file system data that has been modified by the VM. It can also be located in any convenient local storage available to the VM for which higher-speed access is possible than for the remote reads.
  • Reading the source file system data directly allows a user to quickly create a fully functioning virtual clone of the source machine. In some embodiments, this may be sufficient, as for example, when a target VM is created for a temporary use. In other embodiments, it is advantageous to transfer the full contents of the source file system volume(s) into native files in the file system associated with the target VM.
  • the transfer of complete file system volumes can be performed as a background task after the target VM has begun operation. This background data transfer task is called “migration streaming ” It is also known as “P2V streaming” in the special case where the source machine is physical and the target machine is virtual. Migration streaming can be managed by processes located on any convenient machine with control connections to both the source file system snapshot and the target VM file system. Once the transfer is complete, operation of the target VM can continue without further interaction with the source data. If desired, the connection to the source data can then be severed, or the hardware containing the source data can be turned off or replaced.
  • live instant computing machine migration described above was to create a temporary VM to test out patches and/or service packs.
  • instant computing machine migration in the reverse direction, thereby cloning the temporary VM back into the original source machine. This technique can minimize downtime while allowing system administrators to perform critical testing on a virtual clone of a live running machine.

Abstract

Systems and methods for migration between computing machines are disclosed. The source and target machines can be either physical or virtual; the source can also be a machine image. The target machine is connected to a snapshot or image of the source machine file system, and a redo-log file is created on the file system associated with the target machine. The target machine begins operation by reading data directly from the snapshot or image of the source machine file system. Thereafter, all writes are made to the redo-log file, and subsequent reads are made from the redo-log file if it contains data for the requested sector or from the snapshot or image if it does not. The source machine continues to be able to run separately and simultaneously after the target machine begins operation.

Description

    CROSS-REFERENCE TO RELATED APPLICATIONS
  • This application is a Continuation of pending U.S. patent application Ser. No. 12/106,736, filed Apr. 21, 2008, which is incorporated by reference herein.
  • FIELD OF THE INVENTION
  • Embodiments of the present invention relate to the field of computer software and mechanisms for moving running software between two computing machines. More specifically, embodiments of the present invention are directed to a technology for starting up a computing machine based on software previously running on a different computing machine.
  • BACKGROUND
  • A virtual machine (VM) is a software abstraction, or “virtualization,” of an actual physical computer system. Each VM typically mimics the general structure of a physical computer and as such will usually have both virtual system hardware and guest system software. The virtual system hardware typically includes at least one virtual CPU, virtual memory, at least one storage device such as a virtual disk, and one or more virtual devices. All of the virtual hardware components of the VM can be implemented in software to emulate corresponding physical components. The guest system software typically includes a guest operating system and drivers as needed.
  • An advantage of virtual machine technology is an ability to run multiple virtual machines on a single host platform. Frequently, rather than starting up a new virtual machine from scratch by allocating resources for it, loading and booting an operating system, and then loading and starting specific applications, system operators find it useful to create new working virtual machines that are copies of running machines (either physical or virtual). To start up a virtual machine in this way, a typical process starts with the creation of a new virtual machine on a suitable host. Thereafter, the process is different from conventional machine startup. To clone the contents of a live physical source machine, a “snapshot” of the source machine file system is taken, typically with the aid of software residing on the source machine. The snapshot provides an image of the complete state of the source machine file system at a moment in time. Typically, it does not involve physically copying all of the memory to new locations. Instead, after the time of the snapshot, all file changes are made to new copies of the changed files, and the pre-snapshot versions of all files, including subsequently deleted files, are preserved. In normal operation, the source machine operating system and application software see only the new version of the file system. Access to the snapshot version is typically made available only by rebooting the machine in a special roll-back or recovery mode. File-system snapshot capabilities have been built into versions of the MICROSOFT® WINDOWS® operating system since about 2003. Third-party snapshot software is also available from, for example, ACRONIS® Inc. and STORAGECRAFT™ Technology Corporation. Snapshot techniques are also useful to allow the copying of a source machine to a new virtual machine.
  • Snapshot techniques were originally developed to support various backup, roll-back, and recovery functions, but they can also be used for “sandbox” functions. Sandbox functionality allows testing of new ideas, patches and the like while preserving the option of restoring a previous known machine configuration. In a sandbox application, a user may want to test some software changes before committing to them or run an application without leaving a trace of his/her activities. By running a VM using the snapshot version of the file system, s/he can ensure that changes are functioning properly while retaining the option to go back to a known working configuration. S/he can also run an application such as a web browser that normally leaves records of activity, and then restore the system to a state as if s/he had never run the application. In these applications, the machine must be rebooted to run on either the snapshot version of the file system or the regular version. Such uses of snapshot techniques are not widely practiced, but at least one product exists to support them: SHADOWSURFER™ from STORAGECRAFT™ Technology Corporation.
  • In order for a new VM to make use of the snapshot image of the source machine, it is cloned to storage associated with new virtual machine. There are many ways of performing this cloning operation. In a typical computing environment, the new VM is connected to the source machine over a network, and the data are transferred over that network. The VM memory can be local (such as all or a portion of a disk drive attached directly to the physical machine which hosts the VM), or it can be located remotely, for example, in a Storage Area Network (SAN) accessible from the VM. Regardless of the specific hardware and software details, the cloning operation can take a considerable amount of time. The amount of time will vary according to the implementation details, the resulting average data transfer rates, and the size of the source machine file system that must be transferred. For typical machines and networks in common use in 2008, the size of the source file system can be 50 GB or more, and typical average data transfer rates can be about 20 MB/s. Thus, a complete cloning operation can take at least 2500 seconds or about 40 minutes. Significantly longer times are not uncommon, especially for servers running data-intensive applications that can have much larger file systems.
  • After data transfer is completed, the data may need to be adapted to function in a virtual environment. These changes are typically related to operating system files, especially device drivers and the like, which need to be modified to connect to specific hardware or memory locations in the new VM.
  • Once the source file system image has been cloned to the new VM storage, the new VM has all the information it needs to pick up where the source machine left off at the time of the file system snapshot. This complete process is well-known and is commonly referred to as “P2V Conversion” (“physical-to-virtual” conversion), although the source machine need not necessarily be a physical machine. Software to support bringing up new VMs that are cloned from source machines as described above is available from various vendors. Examples include VMWARE CONVERTER™ and P2VASSISTANT™ (now discontinued) from VMWARE®, Inc. and POWERCONVERT™ from PLATESPINT™ Ltd. Similar functionality is also described in U.S. Patent Applications by Armington (application Ser. No. 10/869,730) and by Kerr et al. (application Ser. No. 11/257,009).
  • A problem that can arise for certain applications of computing machine migration is that the long time required to complete the migration can result in significant downtime for critical computing services. One example arises for servers that process customer transactions or other user business which cannot tolerate downtime, and where server data are continually changing. In order to switch operations from an original source machine to a new VM, it is typically necessary to disable user interaction from the time that a snapshot of the source file system is taken until the new VM can take over, a period that can easily extend to several hours depending on the amount of data that must be copied and the available data transmission rate. While it is generally possible to leave the source machine running after the snapshot and during the copying operation (“live” computing machine migration), such a process may be acceptable only for servers providing static data.
  • The conversion process or data copying may also fail (for example, due to a networking problem), or the new target VM may not boot because of an incompatibility with the virtual environment. In such a case, the user would not know whether the conversion has succeeded until the end of the process, possibly several hours later.
  • In other applications, the new VM is used only for testing purposes such as “sandbox” testing of new ideas (e.g., software patches and service packs) or system administrator diagnosis of a reported problem. In these cases, it is advantageous to use a VM clone of a physical machine as a “safe” copy. In these applications as well, it is frequently undesirable to wait for the file system copying operation to be completed. Critical time may be lost and system administrator productivity may be impaired.
  • When VM technology in general and computing machine migration in particular are being demonstrated for new customers, it is better to use a customer machine as the source to provide a workload that the potential customer already understands. However, for large source systems, the time required to copy the source system files can be prohibitive and such demonstrations would not be practical without instant migration technology.
  • SUMMARY
  • Systems and methods for migration between computing machines are disclosed.
  • The source and target machines can be either physical or virtual; the source can also be a machine image. The target machine is connected to a snapshot or image of the source machine file system, and a redo-log file is created on the file system associated with the target machine. The target machine begins operation by reading data directly from the snapshot or image of the source machine file system. Thereafter, all writes are made to the redo-log file, and subsequent reads are made from the redo-log file if it contains data for the requested sector or from the snapshot or image if it does not. The source machine continues to be able to run separately and simultaneously after the target machine begins operation.
  • BRIEF DESCRIPTION OF THE DRAWING
  • FIG. 1 shows a schematic diagram of instant computing machine migration.
  • DETAILED DESCRIPTION
  • Reference will now be made in detail to embodiments of the present technology for computing machine migration, an example of which is illustrated in the accompanying drawing. While the technology for computing machine migration will be described in conjunction with various embodiments, it will be understood that they are not intended to limit the present invention to these embodiments. On the contrary, the technology for computing machine migration is intended to cover alternatives, modifications and equivalents, which may be included within the spirit and scope of the invention as defined by the appended claims. Furthermore, in the following detailed description, numerous specific details are set forth in order to provide a thorough understanding of the present invention. However, embodiments of the present invention may be practiced without these specific details. In other instances, well known methods, procedures, and components have not been described in detail so as not to unnecessarily obscure aspects of the present embodiments.
  • Unless specifically stated otherwise as apparent from the following discussions, it is appreciated that throughout the present detailed description, discussions utilizing terms such as “accessing,” “scanning,” “determining,” “applying,” “generating,” “utilizing,” “storing,” “causing,” “coupling,” “employing,” “performing,” “providing,” “interfacing,” “detecting,” “creating,” “coordinating,” “scheduling,” and “updating,” or the like, refer to the actions and processes of a computer system, or similar electronic computing devices. The computer system or similar electronic computing device manipulates and transforms data represented as physical (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. Embodiments of the present invention are also well suited to the use of other computer systems such as, for example, optical computers.
  • For concreteness, specific embodiments of computing machine migration are described wherein the source machine is a physical machine with a locally attached disk file system, and the target machine is a VM with associated virtual disk(s). This version of computing machine migration is also known as “P2V conversion.” However, unless the specific context does not permit, it is understood that the source machine can also be a virtual machine or a machine image (a snapshot or backup of the source file system volume(s)). Similarly the destination machine can also be a physical machine. Both source and destination machines can have file systems that are either locally attached or remote but accessible over a network or other communications channel.
  • The following specific definitions apply to terms and phrases used throughout this specification and claims:
  • Computing machine migration: migrating the functionality of a source computing machine to a new machine. A common example is P2V conversion, but in alternative embodiments the source can be physical or virtual, and the source file data can be a freshly captured snapshot of the source file system or a previous machine image or backup copy. Similarly, the target machine can be either physical or virtual.
  • Live computing machine migration: computing machine migration performed without powering off or rebooting the source physical machine.
  • Instant computing machine migration: computing machine migration wherein the target machine is able to begin operation by accessing source machine file system memory without first copying it to a new location.
  • VM: a “virtual machine” which is a software abstraction, or “virtualization,” of an actual physical computer system. A “hypervisor” is often used to create and manage a VM, although there are other names used for some types of software that create and manage VMs.
  • P2V conversion: migrating a source physical machine to a new target VM. “P2V” is a shorthand notation for “physical-to-virtual.”
  • Live P2V conversion: P2V conversion performed without disabling user interaction with the source machine.
  • Snapshot: an image of the complete state of a source machine file system or a file system volume at a moment in time. A snapshot is usually not a physical copy. Typically, in using snapshots, after the snapshot is created, all file changes are made to new copies of files, and the pre-snapshot versions of all files, including subsequently deleted files, are preserved. In normal operation, the source machine operating system and application software see only the new version of the file system. The preserved snapshot version of files is made available via special operation system calls.
  • Migration streaming: a background process running after instant computing machine migration to copy the source file system to the target VM. Such a process can reside on the source machine (a data “push” process), the target machine (a data “pull” process), or on a third machine connected to the same network as the source and target. A synonym for migration streaming in the case where the source machine is physical and the destination machine is virtual is P2V streaming.
  • Sandbox: a VM which is a usually temporary copy of a source machine intended for example and without limitation, for experimental testing of new ideas, software patches, and service packs before implementation on the “real” machine.
  • Redo-log file: a collection of data in one or more files on the target machine file system where file system writes are made after instant computing machine migration.
  • Hypervisor: a software program which manages the creation and running of VMs.
  • To Clone: to copy a file system from a source machine to a target machine with changes if necessary to adapt or reconfigure the functionality of the associated software to the configuration of the target machine.
  • File system: a collection of storage organized as a set of “files,” each consisting of one or more sectors, typically with a hierarchical “directory” or “folder” structure resident on one or more “volumes.” The physical type of storage used can vary. Magnetic and optical disks are commonly used, and a “volume” may represent a physical disk, although other arrangements are also possible. Other forms of physical storage such as flash memory can also be used. File systems are usually, but need not be, stored in some form of nonvolatile storage. At least a portion of the file system associated with a particular computing machine is typically connected locally such that high-speed communications are possible, but file systems can also use storage that is connected to remote machines or directly to a network (as a Storage Area Network, for example).
  • Sector: the smallest unit of storage that can be read from or written to a file system. For typical magnetic-disk-based file systems, the size of a sector is 512 bytes.
  • Instant computing machine migration greatly speeds up the process of creating a fully-functional target VM. A new VM can be created and be ready to run in just a few minutes. Initially, the new VM uses a snapshot image of the source file system for reads. A redo-log file on the target machine is created and used for all file system writes. Thus, any changes to the file system made by the new target machine are made in local copies of the affected file system sectors and not in the snapshot image on the source machine (which can be, and typically is, maintained in a read-only state). Subsequent reads are made from the redo-log file for any file system sectors that have been written there. That is, if a particular file system sector has been written into the redo-log file, then that version of the sector is used rather than the one present in the snapshot image on the source machine. Optionally, the full contents of the source file system can be transferred and converted into the native file-system format of the target in a background process while the target VM (and optionally the source machine) are running.
  • Continuing now to describe the steps of instant computing system migration in more detail, we first look at the process of creating a suitable snapshot image. Referring to FIG. 1, to make sure that the source data remains consistent and unaffected by any ongoing modifications by the running source computing machine 100, a file system snapshot 102 is taken for each volume of the source file system 101. In instant computing machine migration, the target computing machine 103 (for example, a VM) uses these snapshots directly for performing reads for any file system sectors that have not been previously read or modified, at least until background migration streaming is complete.
  • The snapshots can be created using either software provided by the source operating system or by a third party. For example, when the source machine uses the WINDOWS XP®, 2003 or VISTA® operating systems, VSS (VISUAL SOURCE SAFE™) can be used to create a snapshot. The snapshot is exposed to the operating system as a volume device with a name like \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy<N>name. As another example, for a source machine using the Linux or BSD Unix operating systems, LVM (Logical Volume Manager) snapshots can be used. Similarly, for a source machine using the SOLARIS™ or MAC OS X™ operating systems, ZFS snapshots can be used. (ZFS originally stood for “Zettabyte File System” originally developed by SUN® Microsystems, Inc. for SOLARIS; the initials are now commonly used.) Third-party snapshot software is also available: for example, TRUE IMAGE™ from ACRONIS® Inc. and VOLUME SNAPSHOT MANAGER™ from STORAGECRAFT™ Technology Corporation.
  • It is also possible to use a machine image such as might be stored for backup purposes as the source file system for instant computing machine migration. In this case, the operation of the original source machine is not relevant, since a separate copy has been made and stored. The target machine for the instant computing machine migration is connected to the machine image, typically via a network connection 106 between the source and target computing machines 100 and 103 respectively.
  • The target computing machine 103 can be either physical or virtual. By way of example, a hypervisor can be used to create a new VM as a target computing machine by allocating resources for it on a physical machine remote from the source computing machine, but connected to it over a network. One can now use instant computing machine migration to instantly “fork” the source computing machine into two running copies of the same machine. The original source computing machine 100 can continue to run and modify its file system. The new target computing machine 103 (for example, the target VM) reads initially from the source system snapshot 102. Of course, once it has begun operation, the target VM will also need to be able to modify the file system. When the target VM need to write to the file system, it cannot modify the source system files, and such writes must be made instead to local copies of the affected sectors. These can be stored in a “redo-log file” 105 on the file system 104 associated with the target VM. (The name “redo-log file” is used by analogy with similar storage structures that allow rollbacks to historic versions for problem recovery in other storage management systems.) The redo-log file functionality can also be implemented as multiple files, and it can be stored directly in system memory rather than the file system. Redo-log files can also exist in multiple layers, when a cloned file system is subsequently cloned additional times. Subsequent reads are made from the re-do log file 105 for any sectors that exist therein and from the source system snapshot 102 for any that do not.
  • Computing machine migration can be either “local” or “remote.” It is “local” if the target VM is created directly on the source computing machine and managed, for example, using a hypervisor running on the source. In this case, the source data is local relative to the target VM and reads from the source file system snapshots are performed using the native services of the source operating system. Note that local computing machine migration creates two running “machines,” the original physical machine and a target VM hosted on the same physical hardware. In other words, for local P2V conversion (as such computing machine migration is most likely to be), the target VM 103 is running on the same computing hardware as the source physical machine 100. These two machines can coexist and appear to users as two independently operating machines. The process of creating and starting a virtual clone of the original machine is described as “instant” when it is not necessary to stop the physical machine and reboot as would be necessary in typical prior art usage of file system snapshots.
  • The target VM can also be created on a physical machine remote from the source machine. In this case, the process is described as “remote” computing machine migration. The target VM can be created and managed, for example, by a hypervisor located on the remote physical machine and the source data is remote to the target VM. The source data can be made available via a network data transfer protocol such as iSCSI or FibreChannel, although any suitable means can be used to provide a data connection between the source data and the target VM. Data transfer for remote instant computing machine migration may be much slower than is possible for local migration, but the target VM does not need a complete copy of the source file system in its own virtual disk memory (file system) to begin useful operation. Instant computing machine migration allows the target VM to begin operation immediately while the copying of the source file system proceeds as a background task.
  • In some embodiments, it can also be advantageous to cache the results of VM file system reads that are made from the source file system image for more rapid subsequent retrieval. Such a cache can be located in the same redo-log file that is used to store file system data that has been modified by the VM. It can also be located in any convenient local storage available to the VM for which higher-speed access is possible than for the remote reads.
  • Reading the source file system data directly allows a user to quickly create a fully functioning virtual clone of the source machine. In some embodiments, this may be sufficient, as for example, when a target VM is created for a temporary use. In other embodiments, it is advantageous to transfer the full contents of the source file system volume(s) into native files in the file system associated with the target VM. The transfer of complete file system volumes can be performed as a background task after the target VM has begun operation. This background data transfer task is called “migration streaming ” It is also known as “P2V streaming” in the special case where the source machine is physical and the target machine is virtual. Migration streaming can be managed by processes located on any convenient machine with control connections to both the source file system snapshot and the target VM file system. Once the transfer is complete, operation of the target VM can continue without further interaction with the source data. If desired, the connection to the source data can then be severed, or the hardware containing the source data can be turned off or replaced.
  • It is also advantageous to coordinate migration streaming with management of the redo-log file used for storing target machine writes and for caching target machine reads such that file system sectors that have already been transferred to the target file system due to target machine reads are not transferred a second time. This avoids redundant data transfer and ensures that a target VM launched using instant computing machine migration can be ready for independent operation (i.e., with no further need to read from the source machine file system image) almost as quickly as a target VM that does not begin operation until all data had been transferred.
  • One example use of live instant computing machine migration described above was to create a temporary VM to test out patches and/or service packs. As a further example use, once such testing is complete, it is also possible to use instant computing machine migration in the reverse direction, thereby cloning the temporary VM back into the original source machine. This technique can minimize downtime while allowing system administrators to perform critical testing on a virtual clone of a live running machine. Note that if user interaction is continuing with the source machine while patches are being tested on the temporary VM, it may be necessary to maintain a separate redo-log file on the source machine so that when the two instant computing machine migrations (source to temporary VM, temporary VM back to source) are complete, both the patches and any file-system changes associated with the ongoing user interaction are incorporated in the final running file system configuration.

Claims (20)

1. A method for migrating a file system associated with a source computing machine to a virtual machine, the method comprising:
connecting an image of the file system to the virtual machine;
beginning operation of the virtual machine by enabling the virtual machine to read data from the image before a complete copy of the file system is copied to a file system of the virtual machine; and
enabling the source computing machine to continue to run separately and simultaneously with the virtual machine after the virtual machine begins operation.
2. The method of claim 1, further comprising creating a redo-log file on the file system of the virtual machine, wherein the virtual machine performs file-system writes to the redo-log file and performs file-system reads from the redo-log file if the redo-log file contains data for a requested sector or from the image if said redo-log file does not contain data for the requested sector.
3. The method of claim 2, further comprising:
enabling the virtual machine to make a change to the redo-log file; and
migrating the changed redo-log file of the virtual machine to the source computing machine.
4. The method of claim 3, wherein migrating the changed redo-log file of the virtual machine to the source computing machine comprises cloning the change to the redo-log file back into the file system to replace the corresponding memory locations in the file system.
5. The method of claim 1, wherein a background process is run to clone one or more portions of the file system to the virtual machine.
6. The method of claim 1, wherein said source computing machine is a physical machine executing the virtual machine.
7. The method of claim 6, wherein said image is a snapshot of the file system of the physical machine.
8. The method of claim 6, wherein the image is obtained from a stored backup image of the file system of the physical machine.
9. The method of claim 1, wherein reads from the image are cached by the virtual machine, and subsequent reads from cached sectors are read from the cache.
10. A system for migrating a file system associated with a source computing machine to a virtual machine, the system comprising:
a connection for connecting an image of the file system to the virtual machine; and
one or more processors programmed to:
create a snapshot or image of the file system;
enable the virtual machine read data from the snapshot or the image before a complete copy of the file system is copied to a file system of the virtual machine; and
enabling the source computing machine to continue to run separately and simultaneously with the virtual machine after the virtual machine begins operation by reading the data from the snapshot or the image.
11. The system of claim 10, further comprising a redo-log file on the file system of the virtual machine, and wherein the one or more processors are further programmed to manage file-system access such that the virtual machine performs file-system writes to the redo-log file and performs file system reads from the redo-log file if the redo-log file already contains data for a requested sector or from the snapshot or the image if the redo-log file does not contain data for the requested sector.
12. The system of claim 11, wherein the one or more processors are further programmed to:
enable the virtual machine to make a change to the redo-log file; and
migrate the changed redo-log file of the virtual machine back to the source computing machine.
13. The system of claim 10, wherein the one or more processors are further programmed to run a background process to clone one or more portions of the file system to the virtual machine after the virtual machine begins operation.
14. The system of claim 10, wherein the one or more processors are further programmed to cache reads by the virtual machine from the snapshot or the image and to read cached file-system sectors preferentially when present.
15. The system of claim 10, wherein the file-system reads from the snapshot or the image are performed from one of the following: a cache of reads of the snapshot or the image; a clone of the snapshot or the image or a portion thereof; or the snapshot or the image, using the first of these alternatives that exists and contains data for the requested sector or sectors.
16. One or more computer-readable media comprising computer executable instructions for migrating a file system associated with a source computing machine to a virtual machine, the computer executable instructions when executed by one or more processors, cause the one or more processors to:
connect an image of the file system to the virtual machine;
begin operation of the virtual machine by enabling the virtual machine to read data from the image before a complete copy of the file system is copied to a file system of the virtual machine; and
enable the source computing machine to continue to run separately and simultaneously with the virtual machine after the virtual machine begins operation.
17. The one or more computer-readable media of claim 16, wherein the computer executable instructions further cause the one or more processors to create a redo-log file on the file system of the virtual machine, wherein the virtual machine performs file-system writes to the redo-log file and performs file-system reads from the redo-log file if the redo-log file contains data for a requested sector or from the image if said redo-log file does not contain data for the requested sector.
18. The one or more computer-readable media of claim 16, wherein the computer executable instructions further cause the one or more processors to:
enable the virtual machine to make a change to the redo-log file; and
migrate the changed redo-log file of the virtual machine back to the source computing machine.
19. The one or more computer-readable media of claim 16, wherein the computer executable instructions further cause the one or more processors to run a background process to clone one or more portions of the file system to the virtual machine after the virtual machine begins operation.
20. The one or more computer-readable media of claim 16, wherein the computer executable instructions further cause the one or more processors to cache reads by the virtual machine from the image, and read, from the cache, subsequent reads from cached sectors.
US13/719,053 2008-04-21 2012-12-18 Computing machine migration Abandoned US20130185509A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US13/719,053 US20130185509A1 (en) 2008-04-21 2012-12-18 Computing machine migration

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/106,736 US8359593B2 (en) 2008-04-21 2008-04-21 Computer machine migration of file system images using a redo-log file
US13/719,053 US20130185509A1 (en) 2008-04-21 2012-12-18 Computing machine migration

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US12/106,736 Continuation US8359593B2 (en) 2008-04-21 2008-04-21 Computer machine migration of file system images using a redo-log file

Publications (1)

Publication Number Publication Date
US20130185509A1 true US20130185509A1 (en) 2013-07-18

Family

ID=41202192

Family Applications (2)

Application Number Title Priority Date Filing Date
US12/106,736 Active 2031-07-08 US8359593B2 (en) 2008-04-21 2008-04-21 Computer machine migration of file system images using a redo-log file
US13/719,053 Abandoned US20130185509A1 (en) 2008-04-21 2012-12-18 Computing machine migration

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US12/106,736 Active 2031-07-08 US8359593B2 (en) 2008-04-21 2008-04-21 Computer machine migration of file system images using a redo-log file

Country Status (1)

Country Link
US (2) US8359593B2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11188422B2 (en) 2017-06-02 2021-11-30 Apple Inc. Techniques for preserving clone relationships between files
US11294567B2 (en) * 2020-03-26 2022-04-05 Hitachi, Ltd. File storage system and method for managing file storage system
US11449389B2 (en) 2017-06-02 2022-09-20 Apple Inc. Techniques for performing incremental data backups

Families Citing this family (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080276041A1 (en) * 2007-05-01 2008-11-06 International Business Machines Corporation Data storage array scaling method and system with minimal data movement
US8239646B2 (en) 2007-07-31 2012-08-07 Vmware, Inc. Online virtual machine disk migration
JP5391601B2 (en) * 2008-07-18 2014-01-15 富士通株式会社 Resource transfer system, resource transfer method, information processing apparatus, and computer program
US8479015B2 (en) * 2008-10-17 2013-07-02 Oracle International Corporation Virtual image management
US9176786B2 (en) * 2008-11-04 2015-11-03 Novell, Inc. Dynamic and automatic colocation and combining of service providers and service clients in a grid of resources for performing a data backup function
US20100223494A1 (en) * 2008-12-17 2010-09-02 Tristan Barnum Degenhardt System and method for providing ip pbx service
US8055937B2 (en) * 2008-12-22 2011-11-08 QuorumLabs, Inc. High availability and disaster recovery using virtualization
CN101770410B (en) * 2009-01-07 2016-08-17 联想(北京)有限公司 System reducing method based on client operating system, virtual machine manager and system
US8387045B2 (en) * 2009-03-12 2013-02-26 International Business Machines Corporation Cloning image creation using virtual machine environment
US9588803B2 (en) 2009-05-11 2017-03-07 Microsoft Technology Licensing, Llc Executing native-code applications in a browser
US20110113426A1 (en) * 2009-11-09 2011-05-12 Hsiang-Tsung Kung Apparatuses for switching the running of a virtual machine between multiple computer devices belonging to the same computer platform and the associated switching methods
CN102081552A (en) * 2009-12-01 2011-06-01 华为技术有限公司 Method, device and system for transferring from physical machine to virtual machine on line
WO2011148447A1 (en) * 2010-05-24 2011-12-01 パナソニック株式会社 Virtual computer system, area management method, and program
US9047136B2 (en) * 2010-06-11 2015-06-02 Oracle International Corporation Method and system for migrating the state of a virtual cluster
US9323921B2 (en) 2010-07-13 2016-04-26 Microsoft Technology Licensing, Llc Ultra-low cost sandboxing for application appliances
US8694745B2 (en) * 2010-09-15 2014-04-08 Symantec Corporation Physical to virtual disks creation (P2V) method, by harvesting data from critical sectors
CN103221921B (en) * 2010-11-23 2016-06-22 国际商业机器公司 Utilize the Direct Transfer of the software image of Flow Technique
US8495352B2 (en) 2010-12-08 2013-07-23 International Business Machines Corporation System and method for instantiation of distributed applications from disk snapshots
CN102023863B (en) * 2010-12-13 2015-07-22 中兴通讯股份有限公司 Method and device for switching editions
US8745233B2 (en) 2010-12-14 2014-06-03 International Business Machines Corporation Management of service application migration in a networked computing environment
US8903705B2 (en) 2010-12-17 2014-12-02 Microsoft Corporation Application compatibility shims for minimal client computers
US8549113B2 (en) 2011-01-27 2013-10-01 International Business Machines Corporation Transactional independent persister cloning system
US9069473B2 (en) 2011-01-27 2015-06-30 International Business Machines Corporation Wait-free stream oriented migration based storage
US9891939B2 (en) 2011-03-03 2018-02-13 Microsoft Technology Licensing, Llc Application compatibility with library operating systems
US9495183B2 (en) 2011-05-16 2016-11-15 Microsoft Technology Licensing, Llc Instruction set emulation for guest operating systems
US10102018B2 (en) 2011-05-27 2018-10-16 Red Hat, Inc. Introspective application reporting to facilitate virtual machine movement between cloud hosts
US8738958B2 (en) 2011-06-20 2014-05-27 QuorumLabs, Inc. Recovery node testing
US9191454B2 (en) 2011-06-27 2015-11-17 Microsoft Technology Licensing, Llc Host enabled management channel
KR101493827B1 (en) * 2011-07-04 2015-02-17 주식회사 케이티 Apparatus of migrating from physical server to virtual server and method thereof
US8490092B2 (en) 2011-07-06 2013-07-16 Microsoft Corporation Combined live migration and storage migration using file shares and mirroring
US9413538B2 (en) 2011-12-12 2016-08-09 Microsoft Technology Licensing, Llc Cryptographic certification of secure hosted execution environments
US9389933B2 (en) 2011-12-12 2016-07-12 Microsoft Technology Licensing, Llc Facilitating system service request interactions for hardware-protected applications
US8762992B2 (en) * 2011-12-22 2014-06-24 Symantec Corporation Systems and methods for protecting virtual machines during physical-to-virtual conversions
US9223607B2 (en) * 2012-01-17 2015-12-29 Microsoft Technology Licensing, Llc System for replicating or migrating virtual machine operations log by throttling guest write iOS based on destination throughput
US9280380B2 (en) * 2012-02-29 2016-03-08 Red Hat Israel, Ltd. Management of I/O reqeusts in virtual machine migration
US10019159B2 (en) 2012-03-14 2018-07-10 Open Invention Network Llc Systems, methods and devices for management of virtual memory systems
US9600206B2 (en) 2012-08-01 2017-03-21 Microsoft Technology Licensing, Llc Request ordering support when switching virtual disk replication logs
US9239727B1 (en) * 2012-10-17 2016-01-19 Amazon Technologies, Inc. Configurable virtual machines
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
CN102999374B (en) * 2012-12-10 2016-05-25 北京神州绿盟信息安全科技股份有限公司 A kind of information recording method based on virtual machine
JP6070146B2 (en) * 2012-12-14 2017-02-01 富士通株式会社 Information processing apparatus and backup method
US9841983B2 (en) * 2013-06-28 2017-12-12 Vmware, Inc. Single click host maintenance
US9304705B2 (en) * 2013-09-06 2016-04-05 Vmware, Inc. Virtual machine cloning
US10956041B2 (en) 2014-06-26 2021-03-23 Vmware, Inc. Online snapshot consolidation using I/O mirroring
US9146769B1 (en) * 2015-04-02 2015-09-29 Shiva Shankar Systems and methods for copying a source machine to a target virtual machine
US10684876B2 (en) * 2015-05-14 2020-06-16 Netapp, Inc. Migration of virtual machine data using native data paths
US11294864B2 (en) * 2015-05-19 2022-04-05 Vmware, Inc. Distributed transactions with redo-only write-ahead log
US10628194B2 (en) 2015-09-30 2020-04-21 Netapp Inc. Techniques for data migration
US9710305B2 (en) 2015-11-12 2017-07-18 International Business Machines Corporation Virtual machine migration management
US20180027009A1 (en) * 2016-07-20 2018-01-25 Cisco Technology, Inc. Automated container security
US10649864B1 (en) * 2017-03-30 2020-05-12 Veritas Technologies Llc Framework to facilitate taking snapshots of web application on demand
US10417073B2 (en) 2017-04-12 2019-09-17 Bank Of America Corporation Application server deployment system for domain generation and testing with an administrative server virtual machine and managed server virtual machines
CN110058962B (en) * 2018-01-18 2023-05-23 伊姆西Ip控股有限责任公司 Method, apparatus and computer program product for determining consistency level of virtual machine snapshots
US10817323B2 (en) * 2018-01-31 2020-10-27 Nutanix, Inc. Systems and methods for organizing on-demand migration from private cluster to public cloud
US11422851B2 (en) * 2019-04-22 2022-08-23 EMC IP Holding Company LLC Cloning running computer systems having logical partitions in a physical computing system enclosure
EP3669268A4 (en) 2019-09-12 2020-12-23 Alibaba Group Holding Limited Log-structured storage systems

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080196026A1 (en) * 2007-02-12 2008-08-14 Alain Charles Azagury Device, method and computer program product for executing a migrated execution context by a storage controller
US7536525B2 (en) * 2004-11-09 2009-05-19 Dell Products L.P. Virtual machine hot cloning including freezing and unfreezing memory in a distributed network

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6636878B1 (en) * 2001-01-16 2003-10-21 Sun Microsystems, Inc. Mechanism for replicating and maintaining files in a spaced-efficient manner
US6928513B2 (en) 2002-03-26 2005-08-09 Hewlett-Packard Development Company, L.P. System and method for managing data logging memory in a storage area network
US7093086B1 (en) 2002-03-28 2006-08-15 Veritas Operating Corporation Disaster recovery and backup using virtual machines
US7313793B2 (en) 2002-07-11 2007-12-25 Microsoft Corporation Method for forking or migrating a virtual machine
US7707583B2 (en) 2004-05-20 2010-04-27 Sap Ag Robust sharing of runtime systems
US7769720B2 (en) 2004-06-16 2010-08-03 Hewlett-Packard Development Company, L.P. Systems and methods for migrating a server from one physical platform to a different physical platform
CA2486103A1 (en) 2004-10-26 2006-04-26 Platespin Ltd. System and method for autonomic optimization of physical and virtual resource use in a data center
US7849462B2 (en) 2005-01-07 2010-12-07 Microsoft Corporation Image server
US7761573B2 (en) 2005-12-07 2010-07-20 Avaya Inc. Seamless live migration of virtual machines across optical networks
US7376805B2 (en) 2006-04-21 2008-05-20 Hewlett-Packard Development Company, L.P. Distributed storage array
US7624260B2 (en) * 2006-05-04 2009-11-24 Qnx Software Systems Gmbh & Co. Kg System executing a fast boot wake-up
EP1962192A1 (en) * 2007-02-21 2008-08-27 Deutsche Telekom AG Method and system for the transparent migration of virtual machine storage
US7966614B2 (en) 2007-07-24 2011-06-21 International Business Machines Corporation Controlling an availability policy for a virtual machine based on changes in a real world environment
US8239646B2 (en) 2007-07-31 2012-08-07 Vmware, Inc. Online virtual machine disk migration
US7984262B2 (en) * 2008-01-16 2011-07-19 International Business Machines Corporation Data transmission for partition migration

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7536525B2 (en) * 2004-11-09 2009-05-19 Dell Products L.P. Virtual machine hot cloning including freezing and unfreezing memory in a distributed network
US20080196026A1 (en) * 2007-02-12 2008-08-14 Alain Charles Azagury Device, method and computer program product for executing a migrated execution context by a storage controller

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11188422B2 (en) 2017-06-02 2021-11-30 Apple Inc. Techniques for preserving clone relationships between files
US11449389B2 (en) 2017-06-02 2022-09-20 Apple Inc. Techniques for performing incremental data backups
US11550665B2 (en) 2017-06-02 2023-01-10 Apple Inc. Techniques for preserving clone relationships between files
US11294567B2 (en) * 2020-03-26 2022-04-05 Hitachi, Ltd. File storage system and method for managing file storage system
US11687239B2 (en) 2020-03-26 2023-06-27 Hitachi, Ltd. File storage system and method for managing file storage system

Also Published As

Publication number Publication date
US8359593B2 (en) 2013-01-22
US20090265706A1 (en) 2009-10-22

Similar Documents

Publication Publication Date Title
US8359593B2 (en) Computer machine migration of file system images using a redo-log file
US9465642B1 (en) Systems and methods for instant provisioning of virtual machine files
US9697130B2 (en) Systems and methods for storage service automation
US10564996B2 (en) Parentless virtual machine forking
US9898320B2 (en) Using a delta query to seed live migration
US9286098B1 (en) Using master file template area to increase density of virtual machines in a computer system
US9367244B2 (en) Composing a virtual disk using application delta disk images
US9037621B2 (en) Efficient reconstruction of virtual disk hierarchies across storage domains
US9116726B2 (en) Virtual disk snapshot consolidation using block merge
US8838542B1 (en) Optimized image archiving
US8635395B2 (en) Method of suspending and resuming virtual machines
US8825994B2 (en) Atomic switching of images in desktop streaming over wide area networks
JP5657121B2 (en) On-demand image streaming for virtual machines
US9514002B2 (en) Incremental backups using retired snapshots
US9547562B1 (en) Boot restore system for rapidly restoring virtual machine backups
US8621461B1 (en) Virtual machine based operating system simulation using host ram-based emulation of persistent mass storage device
US8984510B1 (en) Blocking file system for on-the-fly migration of a virtual execution environment
US9135049B2 (en) Performing thin-provisioning operations on virtual disk images using native features of the storage domain
US8473463B1 (en) Method of avoiding duplicate backups in a computing system
US9772907B2 (en) Incremental backups using retired snapshots
US8543797B1 (en) Managed desktop system
US9268610B2 (en) Rapid virtual machine cloning
US10969989B2 (en) Techniques for capturing virtual machine snapshots using data storage system snapshots

Legal Events

Date Code Title Description
STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION