Virtual Machine Image Access De-Duplication
Techniques for de-duplicating virtual machine image accesses. A method includes identifying one or more identical blocks in two or more images in a virtual machine image repository, generating a block map for mapping different blocks with identical content into a same block, deploying a virtual machine image by reconstituting an image from the block map and fetching any unique blocks remotely on-demand, and de-duplicating virtual machine image accesses by storing the deployed virtual machine image in a local disk cache.
1 . A method for de-duplicating virtual machine image accesses, the method comprising:
identifying one or more identical blocks in two or more images in a virtual machine image repository;
generating a block map for mapping different blocks with identical content into a same block;
deploying a virtual machine image by reconstituting an image from the block map and fetching any unique blocks remotely on-demand; and
de-duplicating virtual machine image accesses by storing the deployed virtual machine image in a local disk cache;
wherein at least one of the steps is carried out by a computer device.
2 . The method of claim 1 , comprising redirecting a read request to a set of destination addresses based on the block map upon receiving the read request for a set of blocks at any cache device.
3 . The method of claim 1 , comprising consolidating the block map by merging continuous blocks.
4 . The method of claim 1 , wherein generating a block map comprises generating a block map when a file is created at any set of storage computers.
5 . The method of claim 1 , comprising propagating the block map to one or more cache devices.
6 . The method of claim 5 , wherein the one or more cache devices comprise an operating system page cache and/or a local disk cache.
7 . The method of claim 1 , wherein each entry in the block map points a set of file blocks to a set of destination addresses based on content of the set of file blocks.
8 . The method of claim 7 , wherein the destination addresses in the block map are in the form of file blocks and include a file identifier and an offset.
9 . The method of claim 8 , wherein the file identifier is a node number.
10 . The method of claim 7 , comprising redirecting a read request to a set of destination addresses based on the block map upon receiving the read request for a set of file blocks at any cache device.
11 . The method of claim 1 , comprising managing the local disk cache via affording file blocks appearing in early positions in the cache higher priority to stay in the cache.
12 . The method of claim 1 , comprising providing run-time support by redirecting image accesses to different base images.
13 . The method of claim 1 , comprising expediting look-up operations via a binary search.
14 . The method of claim 1 , comprising expediting look-up operations via a bloom filter.