Migrating a virtual machine that owns a resource such as a hardware device
AssigneeMicrosoft Corporation
InventorJacob Oshins
Life of this patent
Estimating the term…
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.
Claims20
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.
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.
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.
Dependencies are inferred from the claim text.