Transparent virtualization of cloud storage
First Claim
Patent Images
1. A host computing device comprising:
- a local memory including a memory area caching a subset of a plurality of grains corresponding to a binary large object (blob) representing a virtual disk image for a virtual computing instance running in the host computing device, the grains including a first grain, the blob having a plurality of subparts stored by a cloud service connected to the host computing device via a network; and
a processor programmed to;
present the blob to the virtual computing instance for access by the virtual computing instance as the virtual disk image for the virtual computing instance;
define a grain map that is stored in the local memory and correlates the plurality of grains of the virtual disk image to the plurality of subparts of the blob;
receive, from the virtual computing instance, a data operation directed to the first grain;
determine whether or not the first grain is cached in the memory area;
if the first grain is cached in the memory area, perform the received data operation on the memory area for said first grain without communicating via the network;
if the first grain is not cached in the memory area, identify via the defined grain map that is stored in the local memory a subpart of the blob corresponding to the first grain, obtain the first grain from the subpart of the blob via the network, and perform the received data operation on the first grain obtained from the subpart of the blob via the network; and
confirm completion of the data operation to the virtual computing instance,wherein the data operation comprises a data read operation or a data write operation, andwherein the processor is further programmed to;
(i) confirm completion of the data write operation to said virtual computing instance before completing the received data write operation on the first grain to reduce latency perceived by said virtual computing instance; and
(ii) perform the data read operation and evaluate partial reads for early return to said virtual computing instance.
2 Assignments
0 Petitions
Accused Products
Abstract
Embodiments present a virtual disk image to applications such as virtual machines (VMs) executing on a computing device. The virtual disk image corresponds to one or more subparts of binary large objects (blobs) of data stored by a cloud service, and is implemented in a log structured format. Grains of the virtual disk image are cached by the computing device. The computing device caches only a subset of the grains and performs write operations without blocking the applications to reduce storage latency perceived by the applications. Some embodiments enable the applications that lack enterprise class storage to benefit from enterprise class cloud storage services.
11 Citations
15 Claims
-
1. A host computing device comprising:
-
a local memory including a memory area caching a subset of a plurality of grains corresponding to a binary large object (blob) representing a virtual disk image for a virtual computing instance running in the host computing device, the grains including a first grain, the blob having a plurality of subparts stored by a cloud service connected to the host computing device via a network; and a processor programmed to; present the blob to the virtual computing instance for access by the virtual computing instance as the virtual disk image for the virtual computing instance; define a grain map that is stored in the local memory and correlates the plurality of grains of the virtual disk image to the plurality of subparts of the blob; receive, from the virtual computing instance, a data operation directed to the first grain; determine whether or not the first grain is cached in the memory area; if the first grain is cached in the memory area, perform the received data operation on the memory area for said first grain without communicating via the network; if the first grain is not cached in the memory area, identify via the defined grain map that is stored in the local memory a subpart of the blob corresponding to the first grain, obtain the first grain from the subpart of the blob via the network, and perform the received data operation on the first grain obtained from the subpart of the blob via the network; and confirm completion of the data operation to the virtual computing instance, wherein the data operation comprises a data read operation or a data write operation, and wherein the processor is further programmed to; (i) confirm completion of the data write operation to said virtual computing instance before completing the received data write operation on the first grain to reduce latency perceived by said virtual computing instance; and (ii) perform the data read operation and evaluate partial reads for early return to said virtual computing instance. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method comprising:
-
subdividing, by a host computing device, a binary large object (blob) of data stored by a cloud service into a plurality of subparts, the blob being presented as a virtual disk image to a virtual computing instance executing on the host computing device for access by the virtual computing instance as the virtual disk image for the virtual computing instance and storing the virtual disk image in the subparts in units of grains; defining a grain map that is stored in a local memory of the host computing device and correlates the grains of the virtual disk image to the subparts of the blob; receiving, from the virtual computing instance, a data operation directed to a first grain of the virtual disk image; determining whether or not the first grain is stored in a local cache of the host computing device; if the first grain is stored in the local cache, performing the received data operation on the local cache for said first grain without communicating with the cloud service; if the first grain is not stored in the local cache, identifying via the defined grain map a subpart of the blob corresponding to the first grain, obtaining the first grain from the subpart of the blob, and performing the received data operation on the first grain obtained from the subpart of the blob; and confirming completion of the data operation to the virtual computing instance, wherein the data operation comprises a data read operation or a data write operation, and the method further comprises; (i) confirming completion of the data write operation to the virtual computing instance before completing the received data write operation on the first grain to reduce latency perceived by the virtual computing instance; and (ii) performing the data read operation and evaluating partial reads for early return to the virtual computing instance. - View Dependent Claims (8, 9, 10)
-
-
11. One or more computer-readable storage media including computer-executable instructions that, when executed, cause at least one processor of a host computing device to present a virtual disk image from a cloud service to a virtual computing instance running in the host computing device for access by the virtual computing instance as the virtual disk image for the virtual computing instance, while minimizing transfer costs, by performing a method comprising:
-
accessing a binary large object (blob) of data stored by the cloud service, the blob being subdivided by the host computing device into a plurality of subparts, the blob being presented as a virtual disk image to the virtual computing instance and storing the virtual disk image in the subparts in units of grains, defining a grain map that is stored in a local memory of the host computing device and correlates the grains of the virtual disk image to the subparts of the blob; receiving, from the virtual computing instance, a data operation directed to a first grain of the virtual disk image; determining whether or not the first grain is stored in a local cache of the host computing device; if the first grain is stored in the local cache, performing the received data operation on the local cache for said first grain without communicating with the cloud service; if the first grain is not stored in the local cache, for both a read data operation that is received and a write data operation that is received, identifying via the defined grain map a subpart of the blob corresponding to the first grain, obtaining the first grain from the subpart of the blob, and performing the received data operation on the first grain obtained from the subpart of the blob; and confirming completion of the data operation to the virtual computing instance, wherein the data operation comprises a data read operation or a data write operation, and the method further comprises; (i) confirming completion of the data write operation to the virtual computing instance before completing the received data write operation on the first grain to reduce latency perceived by the virtual computing instance; and (ii) performing the data read operation and evaluating partial reads for early return to the virtual computing instance. - View Dependent Claims (12, 13, 14, 15)
-
Specification