IP Library Granted Patent US 8,516,137
Granted Patent B2
US 8,516,137 · App. 12/619,307 · Granted Aug 20, 2013

Managing virtual hard drives as blobs

Inventors: Bradley Gene Calder (Bellevue, WA); Andrew James Edwards (Bellevue, WA); Ju Wang (Redmond, WA); Samer Arafeh (Sammamish, WA); Anu Engineer (Redmond, WA); Yue Zuo (Redmond, WA)
Assignee: Microsoft Corporation
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,516,137
App. No.
12/619,307
Granted
Aug 20, 2013
Kind
B2
Abstract

Cloud computing platforms having computer-readable media that perform methods to manage virtual hard drives as blobs are provided. The cloud computing platform includes fabric computers and blob stores. The fabric computers execute virtual machines that implement one or more applications that access virtual hard drives. The data in the virtual hard drives is accessed, via a blob interface, from blobs in the blob stores. The blob stores interface with a driver that translates some application input/output (I/O) requests destined to the virtual hard drives to blob commands when accessing data in the virtual hard drives.

Claims (23)

1. A computer-implemented method to manage virtual hard drives as blobs in a cloud computing platform, the method comprising:

creating a blob in a blob store that is exposed as a virtual hard drive to one or more applications, wherein exclusive write access is provided to the blob for an application via a blob lease that expires after a specified time period;

mounting the virtual hard drive;

and

managing read and write requests to the virtual hard drive, wherein a driver intercepts all I/O requests to the virtual hard drive and reroutes the I/O requests to the blob in the blob store and a snapshot of the blob is created via a blob interface to allow additional applications to concurrently read data stored in the blob, the application writes in the I/O requests are committed to the blob store before acknowledging success back to the application.

2. The computer-implemented method of claim 1 , wherein the one or more applications are executed on a virtual machine and the read and write requests are managed by a driver in the cloud computing platform.

3. The computer-implemented method of claim 1 , further comprising: formatting the virtual hard drive as one of an N-T-F-S file system or an F-A-T file system.

4. The computer-implemented method of claim 1 , wherein blobs are accessed and manipulated via a blob interface available to the driver.

5. The computer-implemented method of claim 1 , wherein blobs are uploaded, downloaded, or debugged via a blob interface available to some applications.

6. The computer-implemented method of claim 1 , wherein the application conditionally writes to the blob based on the validity of the lease while other applications are allowed to read from the blob.

7. One or more computer readable media not a signal per se storing instructions to perform a method to manage virtual hard drives as blobs in a cloud computing platform, the method comprising:

receiving I/O requests for a virtual hard drive from an application executing on a virtual machine in the cloud computing platform; and

managing, by a driver, I/O requests to the virtual hard drive, wherein the driver orders overlapping I/O requests to the blob in the blob store, and transmits nonoverlapping I/O requests in parallel to the blobs in the blob store; and

updating a local cache on the virtual machine with a write request, wherein the update to the local cache occurs either after an acknowledgement is received from the blob store, or in parallel with a write to the blob store but the update is available after the acknowledgement is received from the blob store.

8. The computer-readable media of claim 7 , wherein a sequence number is associated with the I/O request to prevent overwriting prior writes with older stale writes to the same data that is still in the cloud computing platform.

9. The computer-readable media of claim 8 , wherein the driver increases the sequence numbers to ignore a prior write that was not acknowledged by the blob store.

10. The computer-readable media of claim 7 , wherein all or part of the local cache is flushed after an application or virtual machine failure when the cache and blob are inconsistent.

11. A cloud computing platform that manages virtual hard drives as blobs, the cloud computing platform comprising:

fabric computers configured to execute virtual machines that implement applications, which access virtual hard drives to read and write data; and

blob stores configured to store blobs that are exposed as virtual hard drives to the applications and the blobs are leased for a specific period of time by the applications that are configured to continuously renew the leases to maintain access the virtual hard drives corresponding to the blobs, wherein different application programming interfaces and semantics enable access to the blobs and virtual hard drives.

12. The cloud computing platform of claim 11 , wherein the fabric computers comprise a local cache that caches blob data, a blob library storing blob commands, and a driver that translates virtual hard drive I/O instructions to blob commands.

13. The cloud computing platform of claim 12 , wherein the local cache stores a cyclic redundancy check code for each data block to determine whether an error exists in the data block before using the data block.

14. The cloud computing platform of claim 13 , wherein the local cache and the blob are synchronized to allow the application to complete requests using the data stored in the local cache.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034564/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 16, 2009
From: CALDER, BRADLEY GENE; EDWARDS, ANDREW JAMES; WANG, JU; ARAFEH, SAMER; ENGINEER, ANU; ZUO, YUE
To: MICROSOFT CORPORATION
Reel/Frame 023523/0440 →
Continuity (1)
Related Publication 20110119668A1 · May 19, 2011