US2018173633A1PendingUtilityA1
Transparent virtualization of cloud storage
Est. expiryJul 25, 2032(~6 yrs left)· nominal 20-yr term from priority
G06F 2212/311G06F 12/0873G06F 2212/263G06F 2212/152
53
PatentIndex Score
0
Cited by
0
References
0
Claims
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.
Claims
exact text as granted — not AI-modified1 . A computing device comprising:
a memory area, said memory area caching a subset of a plurality of grains that are of equal size, correspond to a virtual disk image for a virtual machine (VM) running in the computing device, and are stored in a binary large object (blob) connected to the computing device; and a processor programmed to:
define a grain map correlating the plurality of grains that correspond to the virtual disk image to subparts of the blob, the grain map comprising grain offsets and grain lengths with respect to the blob for locating the grains in the subparts of the blob;
receive, from the VM, a data operation directed to one or more of the plurality of grains;
perform the received data operation on the memory area for said one or more of the plurality of grains stored in the cached subset without accessing the blob;
identify, via the defined grain map, one or more of the subparts of the blob corresponding to said one or more of the plurality of grains not stored in the cached subset;
obtain the identified subparts of the blob; and
perform the received data operation on the obtained subparts.
2 . The computing device of claim 1 , wherein the data operation comprises a read request or a write request for said one or more of the plurality of grains stored in the cache.
3 . The computing device of claim 2 , wherein, on receiving the write request, the processor is further programmed to confirm completion of the write request to said VM before completing the received write request to reduce latency perceived by said VM.
4 . The computing device of claim 2 , wherein, on receiving the write request, the processor is programmed to perform the received data operation on the obtained one or more of the plurality of subparts of the blob by writing to the obtained one or more of the plurality of subparts of the blob.
5 . The computing device of claim 2 , wherein the processor is further programmed to:
perform the data read operation and evaluate partial reads for early return to said VM.
6 . The computing device of claim 1 , wherein the processor is programmed to receive a plurality of data operations, and wherein the processor is further programmed to implement the virtual disk image in a log structured format to perform the received plurality of data operations sequentially.
7 . The computing device of claim 1 , wherein, on receiving a plurality of read requests directed to reserved mappings in the grain map, the processor is programmed to synthesize, without accessing the blob, at least one common pattern for said one or more of the plurality of grains not stored in the cached subset.
8 . The computing device of claim 1 , wherein, on receiving a plurality of write requests directed to at least one common pattern of one or more of the plurality of grains, the processor is further programmed to update the grain map with a reserved mapping without accessing the blob.
9 . The computing device of claim 1 , wherein the processor is further programmed to:
detect a frequently occurring pattern for one or more of the plurality of grains in the received data operation; and map the detected pattern to the same grain in the same subpart of the blob.
10 . A method comprising:
caching in a memory area associated with a computing device, a subset of a plurality of grains that are of equal size, correspond to a virtual disk image for a virtual machine (VM) running in the computing device, and are stored in a binary large object (blob) connected to the computing device; maintaining a grain map correlating the plurality of grains that correspond to the virtual disk image to subparts of the blob, the grain map comprising grain offsets and grain lengths with respect to the blob for locating the grains in the subparts of the blob; receiving, from the VM, a data operation directed to one or more of the plurality of grains; performing the received data operation on the memory area for said one or more of the plurality of grains stored in the cached subset without accessing the blob; identifying, via the defined grain map, one or more of the subparts of the blob corresponding to said one or more of the plurality of grains not stored in the cached subset; obtaining the identified subparts of the blob; and performing the received data operation on the obtained subparts.
11 . The method of claim 10 , wherein the data operation comprises a read request or a write request for said one or more of the plurality of grains stored in the cache.
12 . The method of claim 11 , further comprising:
on receiving the write request, confirming completion of the write request to said VM before completing the received write request to reduce latency perceived by said VM.
13 . The method of claim 11 , further comprising:
on receiving the write request, performing the received data operation on the obtained one or more of the plurality of subparts of the blob by writing to the obtained one or more of the plurality of subparts of the blob.
14 . The method of claim 11 , further comprising:
performing the data read operation; and evaluating partial reads for early return to said VM.
15 . A non-transitory computer readable medium comprising instructions executable in a computing device, wherein the instructions when executed in the computing device carries out a method comprising the steps of:
caching in a memory area associated with the computing device, a subset of a plurality of grains that are of equal size, correspond to a virtual disk image for a virtual machine (VM) running in the computing device, and are stored in a binary large object (blob) connected to the computing device; maintaining a grain map correlating the plurality of grains that correspond to the virtual disk image to subparts of the blob, the grain map comprising grain offsets and grain lengths with respect to the blob for locating the grains in the subparts of the blob; receiving, from the VM, a data operation directed to one or more of the plurality of grains; performing the received data operation on the memory area for said one or more of the plurality of grains stored in the cached subset without accessing the blob; identifying, via the defined grain map, one or more of the subparts of the blob corresponding to said one or more of the plurality of grains not stored in the cached subset; obtaining the identified subparts of the blob; and performing the received data operation on the obtained subparts.
16 . The non-transitory computer readable medium of claim 15 , wherein the data operation comprises a read request or a write request for said one or more of the plurality of grains stored in the cache.
17 . The non-transitory computer readable medium of claim 16 , wherein the method further comprises the step of:
on receiving the write request, confirming completion of the write request to said VM before completing the received write request to reduce latency perceived by said VM.
18 . The non-transitory computer readable medium of claim 16 , wherein the method further comprises the step of:
on receiving the write request, performing the received data operation on the obtained one or more of the plurality of subparts of the blob by writing to the obtained one or more of the plurality of subparts of the blob.
19 . The non-transitory computer readable medium of claim 16 , wherein the method further comprises the steps of:
performing the data read operation; and evaluating partial reads for early return to said VM.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.