Systems and methods for instant provisioning of virtual machine files
First Claim
1. A method for cloning a virtual disk file in a virtual computing environment, the method comprising:
- under control of a computer system comprising one or more physical computing devices;
receiving a request to clone a source virtual disk file, the source virtual disk file comprising a source file system representing data stored in the source virtual disk file;
instructing a cloning application to begin cloning of a clone virtual disk file from the source virtual disk file, the clone virtual disk file comprising a clone file system representing data stored or to be stored in the clone virtual disk file;
launching a virtual machine;
associating the clone virtual disk file with the virtual machine before the cloning of the clone virtual disk file is completed, the virtual machine having access to the entire clone file system of the clone virtual disk file before the cloning of the clone virtual disk file is completed;
receiving a read request from an application executing in the virtual machine for data represented in the clone file system of the clone virtual disk file;
determining whether the data has been written to the clone virtual disk file, wherein;
if the data has been written, retrieving the data from the clone virtual disk file; and
if the data has not been written, retrieving the data from the source virtual disk file.
23 Assignments
0 Petitions
Accused Products
Abstract
Embodiments of systems and methods are described for instant provisioning (e.g., cloning, copying, replicating, migrating, backing up, restoring, etc.) of virtual machines, virtual machine files, or other types of files (e.g., database files). In some implementations, a cloned virtual machine file can present an illusion to multiple applications accessing the cloned file that the cloned file contains all the appropriate data (e.g., a file system volume), even while the clone file is still being filled with relevant data. In some embodiments, the systems and methods use a file system filter driver to intercept and redirect certain input/output (I/O) requests to the cloned file. The file system filter driver may use a data structure (e.g., a bitmap) to determine which logical units of the clone file have already been filled with data. In some embodiments, the systems and methods use the operating system to handle cached I/O requests, which may improve efficiency.
127 Citations
29 Claims
-
1. A method for cloning a virtual disk file in a virtual computing environment, the method comprising:
-
under control of a computer system comprising one or more physical computing devices; receiving a request to clone a source virtual disk file, the source virtual disk file comprising a source file system representing data stored in the source virtual disk file; instructing a cloning application to begin cloning of a clone virtual disk file from the source virtual disk file, the clone virtual disk file comprising a clone file system representing data stored or to be stored in the clone virtual disk file; launching a virtual machine; associating the clone virtual disk file with the virtual machine before the cloning of the clone virtual disk file is completed, the virtual machine having access to the entire clone file system of the clone virtual disk file before the cloning of the clone virtual disk file is completed; receiving a read request from an application executing in the virtual machine for data represented in the clone file system of the clone virtual disk file; determining whether the data has been written to the clone virtual disk file, wherein; if the data has been written, retrieving the data from the clone virtual disk file; and if the data has not been written, retrieving the data from the source virtual disk file. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A system for cloning a virtual disk file in a virtual computing environment, the system comprising:
-
a host server comprising a virtualization layer configured to support a parent partition and a child partition, the parent partition comprising a virtual machine management system, the child partition comprising a virtual machine having a guest operating system and one or more applications that access resources of the host server via the virtualization layer; a data store comprising at least a source virtual machine disk file and a clone virtual machine disk file, the clone virtual machine disk file associated with the virtual machine, the clone virtual machine disk file comprising one or more volumes accessible to the guest operating system; and a management module executed by or in network communication with the host server, the management module configured to; instruct a cloning application to begin cloning the source virtual machine disk file to the clone virtual machine disk file, the cloning application configured to execute in the parent partition; instantiate a cloning filter in the parent partition, the cloning filter configured to act as a file system filter driver in the parent partition and as a volume filter driver in the child partition; and wherein the cloning filter is further configured to, in response to a request from the cloning application to write data to a portion of the clone virtual machine disk file, prevent the cloning application from overwriting the portion of the clone virtual machine disk file if the portion has already been written. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22, 23)
-
-
24. A method for copying a source file to a target file in a virtual computing environment, the method comprising:
-
under control of a host computer comprising a virtualization layer supporting a parent partition and a child partition, the child partition executing a virtual machine having a guest operating system and one or more applications that access resources of the host computer via the virtualization layer, the host computer in communication with a data store storing the source file and the target file; executing, in the parent partition, a copying application that copies the source file to the target file; executing, in the parent partition, a cloning filter configured to intercept write requests by the copying application and read requests by the one or more applications of the virtual machine; receiving, during the copying, a read request from the one or more applications for a portion of the target file, wherein in response to the read request, the method comprises; determining, by the cloning filter, whether the requested portion of the target file has been written; if the portion has been written to the target, retrieving the requested portion from the target file; and if the portion has not been written to the target file, retrieving the requested portion from the source file. - View Dependent Claims (25, 26, 27, 28, 29)
-
Specification