Systems and methods for compacting a virtual machine file
First Claim
1. A method performed by a physical computer system for compacting a virtual machine file, the method comprising:
- under control of a physical computer system configured for use with virtual machines associated with virtual machine files;
accessing a source virtual machine file associated with a guest file system;
determining the guest file system associated with the source virtual machine file;
creating a destination virtual machine file based on the guest file system;
initializing a block allocation table of the destination virtual machine file;
accessing a block allocation table of the source virtual machine file and for each block of the source virtual machine file identified in the block allocation table of the source virtual machine file;
determining whether the block includes data that is not marked for deletion from the source virtual machine file;
in response to determining that the block includes data that is not marked for deletion from the source virtual machine file, copying the block to the destination virtual machine file and updating the block allocation table of the destination virtual machine file; and
in response to determining either that the block does not include data or that the block includes data which is marked for deletion from the source virtual machine file, not copying the block and not updating the block allocation table of the destination virtual machine file, thereby reducing a size of the destination virtual machine file compared to a size of the source virtual machine file.
23 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods for compacting a virtual machine file are presented. In one example, the system accesses a source virtual machine file associated with a guest file system. The system creates a destination virtual machine file based on the guest file system and initializes a block allocation table of the destination virtual machine file. The system accesses a block allocation table of the source virtual machine file and, for each block of the source virtual machine file, determines whether the block is in use. If so, the system copies the block to the destination virtual machine file and updates the block allocation table of the destination virtual machine file. If not, the system does not copy the block or update the block allocation table of the destination virtual machine file, thereby reducing the destination virtual machine file'"'"'s size compared to the source virtual machine file'"'"'s size.
-
Citations
30 Claims
-
1. A method performed by a physical computer system for compacting a virtual machine file, the method comprising:
-
under control of a physical computer system configured for use with virtual machines associated with virtual machine files; accessing a source virtual machine file associated with a guest file system; determining the guest file system associated with the source virtual machine file; creating a destination virtual machine file based on the guest file system; initializing a block allocation table of the destination virtual machine file; accessing a block allocation table of the source virtual machine file and for each block of the source virtual machine file identified in the block allocation table of the source virtual machine file; determining whether the block includes data that is not marked for deletion from the source virtual machine file; in response to determining that the block includes data that is not marked for deletion from the source virtual machine file, copying the block to the destination virtual machine file and updating the block allocation table of the destination virtual machine file; and in response to determining either that the block does not include data or that the block includes data which is marked for deletion from the source virtual machine file, not copying the block and not updating the block allocation table of the destination virtual machine file, thereby reducing a size of the destination virtual machine file compared to a size of the source virtual machine file. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A system for compacting a virtual machine file, the system comprising a physical computing system configured to:
-
access a source virtual machine file associated with a guest file system; create a destination virtual machine file based on the guest file system; initialize a block allocation table of the destination virtual machine file; access a block allocation table of the source virtual machine file and for each block of the source virtual machine file identified in the block allocation table of the source virtual machine file; determine whether the block includes data that is not marked for deletion from the source virtual machine file; in response to determining that the block includes data that is not marked for deletion from the source virtual machine file, copy the block to the destination virtual machine file and update the block allocation table of the destination virtual machine file; and in response to determining either that the block does not include data or that the block includes data which is marked for deletion from the source virtual machine file, refrain from copying the block and refrain from updating the block allocation table of the destination virtual machine file, thereby reducing a size of the destination virtual machine file compared to a size of the source virtual machine file. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23, 24)
-
-
25. A system for compacting a virtual machine file, the system comprising:
-
a physical host server comprising a virtualization layer configured to support a parent partition and one or more child partitions, the parent partition comprising a virtual machine management system and a compactor, the one or more child partitions each comprising a virtual machine associated with a guest operating system and one or more applications; a data store comprising one or more virtual machine files configured to be accessed by the one or more child partitions; and the compactor configured to; access, from the data store, a source virtual machine file comprising a dynamic virtual machine file and a guest file system; create a destination virtual machine file based, at least in part, on the guest file system, the destination virtual machine file comprising a dynamic virtual machine file; initialize a block allocation table of the destination virtual machine file; access a block allocation table of the source virtual machine file and for each block of the source virtual machine file identified in the block allocation table of the source virtual machine file; determining whether the block includes data that is not marked for deletion from the source virtual machine file; in response to determining that the block includes data that is not marked for deletion from the source virtual machine file, causing the block to be copied to the destination virtual machine file and updating the block allocation table of the destination virtual machine file; and in response to determining either that the block does not include data or that the block includes data which is marked for deletion from the source virtual machine file, not causing the block to be copied and not updating the block allocation table of the destination virtual machine file thereby reducing a size of the destination virtual machine file compared to a size of the source virtual machine file. - View Dependent Claims (26, 27, 28, 29)
-
-
30. Non-transitory computer storage configured to store executable instructions that when executed by a processor cause the processor to:
-
access a source virtual machine file comprising a dynamic virtual machine file associated with a guest file system; determine the guest file system associated with the source virtual machine file; create a destination virtual machine file based on the guest file system, the destination virtual machine file comprising a dynamic virtual machine file; initialize a block allocation table of the destination virtual machine file; access a block allocation table of the source virtual machine file and for each block of the source virtual machine file identified in the block allocation table of the source virtual machine file; determine whether the block includes data that is not marked for deletion from the source virtual machine file; in response to determining that the block includes data that is not marked for deletion from the source virtual machine file, copy the block to the destination virtual machine file and update the block allocation table of the destination virtual machine file; and in response to determining either that the block does not include data or that the block includes data which is marked for deletion from the source virtual machine file, not copy the block and not update the block allocation table of the destination virtual machine file thereby reducing a size of the destination virtual machine file compared to a size of the source virtual machine file.
-
Specification