De-duplicated virtual machine image transfer
First Claim
1. A method, performed by a processor configured to execute computer instructions stored in a memory, to copy a first virtual machine image and a second virtual machine image from a source memory to a destination memory, the method comprising:
- copying a first block that corresponds to the first virtual machine image from an interim memory to the destination memory, wherein the interim memory includes de-duplicated data that is present in the first virtual machine image and the second virtual machine image, and wherein the interim memory is different from the source memory and the destination memory;
after copying the first block, identifying a second block in the interim memory;
in response to a determination that the identified second block corresponds to the second virtual machine image, storing the second block in a buffer;
after storing the second block, identifying a third block in the interim memory that corresponds to the first virtual machine image;
copying the third block from the interim memory to the destination memory;
in response to copying the third block from the interim memory to the destination memory, determining whether all blocks that correspond to the first virtual machine image have been copied from the interim memory to the destination memory; and
in response to a determination that all blocks that correspond to the first virtual machine image have been copied from the interim memory to the destination memory, copying the second block from the buffer to the destination memory,wherein copying the second block, which corresponds to the second virtual machine image, from the buffer to the destination memory, after copying all blocks, which correspond to the first virtual machine image, from the interim memory to the destination memory, facilitates continual copying of blocks that correspond to the first virtual machine image, resulting in reduction in frequency of loading, spinning, and accessing the destination memory, and increase in efficiency of writing the first virtual machine image to the destination memory.
3 Assignments
0 Petitions
Accused Products
Abstract
Technologies are generally described for a system and method effective to copy virtual machine images from a source to a destination memory. A processor may copy a first block corresponding to a first virtual machine image from an interim memory to the destination memory. The interim memory may include de-duplicated data present in the first and the second virtual machine images. The processor may identify a second block in the interim memory that corresponds to the second virtual machine image and store the second block in a buffer. The processor may identify a third block in the interim memory that corresponds to the first virtual machine image and copy the third block from the interim memory to the destination memory.
-
Citations
22 Claims
-
1. A method, performed by a processor configured to execute computer instructions stored in a memory, to copy a first virtual machine image and a second virtual machine image from a source memory to a destination memory, the method comprising:
-
copying a first block that corresponds to the first virtual machine image from an interim memory to the destination memory, wherein the interim memory includes de-duplicated data that is present in the first virtual machine image and the second virtual machine image, and wherein the interim memory is different from the source memory and the destination memory; after copying the first block, identifying a second block in the interim memory; in response to a determination that the identified second block corresponds to the second virtual machine image, storing the second block in a buffer; after storing the second block, identifying a third block in the interim memory that corresponds to the first virtual machine image; copying the third block from the interim memory to the destination memory; in response to copying the third block from the interim memory to the destination memory, determining whether all blocks that correspond to the first virtual machine image have been copied from the interim memory to the destination memory; and in response to a determination that all blocks that correspond to the first virtual machine image have been copied from the interim memory to the destination memory, copying the second block from the buffer to the destination memory, wherein copying the second block, which corresponds to the second virtual machine image, from the buffer to the destination memory, after copying all blocks, which correspond to the first virtual machine image, from the interim memory to the destination memory, facilitates continual copying of blocks that correspond to the first virtual machine image, resulting in reduction in frequency of loading, spinning, and accessing the destination memory, and increase in efficiency of writing the first virtual machine image to the destination memory. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A system effective to copy a first virtual machine image and a second virtual machine image from a source memory to a destination memory, the system comprising:
-
an interim memory, different from the source memory and the destination memory; and a processor configured to communicate with the interim memory, the source memory, and the destination memory, wherein the processor is effective to; copy a first block that corresponds to the first virtual machine image from the interim memory to the destination memory, wherein the interim memory includes de-duplicated data present in the first and second virtual machine images; after copying the first block, identify a second block in the interim memory; in response to a determination that the identified second block corresponds to the second virtual machine image, store the second block in a buffer; after the storage of the second block, identify a third block in the interim memory that corresponds to the first virtual machine image; copy the third block from the interim memory to the destination memory; in response to copying the third block from the interim memory to the destination memory, determine whether all blocks that correspond to the first virtual machine image have been copied from the interim memory to the destination memory; and in response to a determination that all blocks that correspond to the first virtual machine image have been copied from the interim memory to the destination memory, copy the second block from the buffer to the destination memory, wherein copying the second block, which corresponds to the second virtual machine image, from the buffer to the destination memory, after copying all blocks, which correspond to the first virtual machine image, from the interim memory to the destination memory, facilitates continual copying of blocks that correspond to the first virtual machine image, which results in reduction in frequency of loading, spinning, and accessing the destination memory. - View Dependent Claims (15, 16, 17, 18, 19)
-
-
20. A method to copy a first virtual machine image and a second virtual machine image from a source memory to a destination memory, the method comprising:
-
identifying duplicated data, wherein the duplicated data is present in the first and second virtual machine images; copying the duplicated data from the source memory to an interim memory to produce de-duplicated data and an image block map, wherein the interim memory is different from the source memory; generating a file map based on the image block map, wherein the file map identifies blocks in the interim memory, and virtual machine images that correspond to the blocks in the interim memory; copying, based on the file map, a first block that corresponds to the first virtual machine image from the interim memory to the destination memory, wherein the interim memory is different from the destination memory; after copying the first block, identifying a second block in the interim memory; in response to a determination that the identified second block corresponds to the second virtual machine image, storing the second block in a buffer; after storing the second block, identifying a third block in the interim memory that corresponds to the first virtual machine; copying the third block from the interim memory to the destination memory; in response to copying the third block from the interim memory to the destination memory, determining whether all blocks that correspond to the first virtual machine image have been copied from the interim memory to the destination memory; and in response to a determination that all blocks that correspond to the first virtual machine image have been copied from the interim memory to the destination memory, copying the second block from the buffer to the destination memory, wherein copying the second block, which corresponds to the second virtual machine image, from the buffer to the destination memory, after copying all blocks, which correspond to the first virtual machine image, from the interim memory to the destination memory, facilitates continual copying of blocks that correspond to the first virtual machine image, resulting in reduction in frequency of loading, spinning, and accessing the destination memory, and wherein the file map includes; a first file that corresponds to the first virtual machine image, and a second file that corresponds to the second virtual machine image, wherein the first file includes two or more regions, and wherein each of the two or more regions includes; an identification of consecutive blocks of the de-duplicated data that corresponds to the first virtual machine image, an indication that the blocks are stored in the source memory, the destination memory, and/or the buffer, and a region counter that is effective to indicate a number of second blocks that are stored in the buffer. - View Dependent Claims (21, 22)
-
Specification