IP Library Granted Patent US 8,769,530
Granted Patent B2
US 8,769,530 · App. 12/869,628 · Granted Jul 1, 2014

Migrating a virtual machine that owns a resource such as a hardware device

Inventor: Jacob Oshins (Seattle, 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,769,530
App. No.
12/869,628
Granted
Jul 1, 2014
Kind
B2
Abstract

A computing device has first and second virtual machines (VMs) and a resource assigned to the first VM. Each access request for the resource is forwarded thereto until the first VM is to be saved or migrated. Thereafter, each access request is forwarded to a holding queue. When the resource has acted upon all access requests forwarded thereto, the resource is reassigned to the second VM, and each access request at the holding queue is forwarded to the second VM and then the resource. Thus, all access requests for the resource are acted upon by the resource even after the resource is removed from the first VM and assigned to the second VM, and the save or migrate of the first VM can thereafter be completed.

Claims (41)

1. A method with regard to a computing system comprising:

forwarding an access request from a resource stack to be queued at a first port on a first virtual machine (VM), each access request as queued at the first port being further forwarded in turn to the resource to be acted upon by such resource;

forwarding at least one subsequent access request from the resource stack to be queued at a second port on the first virtual machine; and

after the resource has acted upon substantially all access requests queued at and forwarded by the first port:

assigning the resource to a second VM such that the second VM controls the resource; and

forwarding access request queued at the second port to the resource by way of the second VM to be acted upon by the resource such that the at least one subsequent access request from the resource stack of the first VM are acted upon by the resource in turn after the resource is removed from the first VM and assigned to the second VM; and

migrating the first VM to a different computing device after assigning the resource to the second VM.

2. The method of claim 1 wherein forwarding the access requests queued at the second port to the resources by way of a VM comprises a VM bus as a communications medium communicatively coupling the first VM and the second VM.

3. The method of claim 1 wherein the resource is a hardware resource.

4. The method of claim 1 wherein the resource is a storage device resource.

5. The method of claim 1 comprising determining that the first VM has been directed to be saved or migrated from a first platform to a second platform prior to assigning the resource to the second VM.

6. The method as recited in claim 1 wherein the first and the second VM are instantiated on a same computing device.

7. The method as recited in claim 1 comprising storing the first VM prior to migrating the first VM to a different computing device.

8. A computing system comprising:

a processor;

a memory in communication with the processor when the system is operational;

computer readable instructions stored in said memory capable of execution by said processor, wherein upon execution by said processor, at least cause:

forwarding of an access request from a resource stack to be queued at a first port on a first virtual machine (VM), each access request as queued at the first port also being forwarded in turn to the resource to be acted upon by such resource;

forwarding of at least one access request from the resource stack to be queued at a second port; and

after the resource has acted upon substantially all access requests queued at and forwarded by the first port:

assigning the resource to a second VM such that the second VM controls the resource; and

forwarding the at least one access request queued at the second port to the resource by way of the second VM to be acted upon by the resource such that all access requests from the resource stack of the first VM are acted upon by the resource in turn even after the resource is removed from the first VM and assigned to the second VM; and

migrating the first VM to a different computing device.

9. The computing system of claim 8 wherein computer readable instructions stored in said memory capable of execution by said processor causing forwarding of the access requests queued at the second port to the resources by way of a VM comprises using a VM bus as a communications medium communicatively coupling the first VM and the second VM.

10. The computing system of claim 8 wherein the resource is a hardware resource.

11. The computing system of claim 8 wherein the resource is a storage device resource.

12. The computing system of claim 8 wherein computer readable instructions stored in said memory capable of execution by said processor cause a determination that the first VM has been directed to be saved or migrated from a first platform to a second platform prior to assigning the resource to the second VM.

13. The computing system of claim 8 wherein the first VM is instantiated on a same computing device as the second VM.

14. The computing system of claim 8 wherein computer readable instructions stored in said memory capable of execution by said processor cause storing the first VM prior to migrating the first VM to a different computing device.

15. A computer readable storage medium having stored thereon computer-readable instructions that upon execution by a computing device cause:

forwarding of an access request from a resource stack to be queued at a first port on a first virtual machine (VM), each access request as queued at the first port being further forwarded in turn to the resource to be acted upon by such resource;

forwarding of at least one additional access request from the resource stack to be queued at a second port; and

after the resource has acted upon substantially the access request queued at and forwarded by the first port:

assigning the resource to a second VM such that the second VM controls the resource; and

forwarding the at least one additional access request queued at the second port to the resource by way of the second VM to be acted upon by the resource such that the access request and the at least one additional access request from the resource stack of the first VM are acted upon by the resource in turn after the resource is removed from the first VM and assigned to the second VM; and

migrating the first VM to a different computing device.

16. The computer readable storage medium of claim 15 wherein computer readable instructions that cause forwarding of the access requests queued at the second port to the resources by way of a VM comprises computer readable instructions for using a VM bus as a communications medium communicatively coupling the first VM and the second VM.

17. The computer readable storage medium of claim 15 wherein the resource is a hardware resource.

18. The computer readable storage medium of claim 15 wherein the resource is a storage device resource.

19. The computer readable storage medium of claim 15 comprising computer readable instructions that cause a determination that the first VM has been directed to be saved or migrated from a first platform to a second platform prior to assigning the resource to the second VM.

20. The computer readable storage medium of claim 15 comprising computer readable instructions that cause storing of the first VM prior to migrating the first VM to a different computing device.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034544/0001 →
Continuity (2)
Continuation 11363897 · Feb 28, 2006
Related Publication 20100325282A1 · Dec 23, 2010