Migrating a virtual machine that owns a resource such as a hardware device
First Claim
1. A computing system comprising:
- a resource for providing a resource service; and
a computing device having first and second virtual machines (VMs) instantiated on the computing device, each VM for hosting an instance of an operating system upon which one or more applications may be instantiated, the first VM initially being communicatively coupled to the resource and the resource being initially assigned to the first VM such that the first VM initially owns the resource and the service provided thereby, the first VM being a software construct on the computing device that can be saved and migrated from a first platform to a second platform, the first VM including;
a resource stack corresponding to and accessing the resource according to access requests sent by way of such resource stack;
a first port communicatively coupled to the resource;
a second port communicatively coupled to a communications medium; and
a port redirector communicatively coupled to the resource stack, the first port and the second port and forwarding each access request from the resource stack to be queued at one of the first port and the second port, the port redirector forwarding each access request from the resource stack to be queued at the first port until the first VM is directed to be saved or migrated, each access request at the first port being further forwarded in turn to the resource to be acted upon by such resource, the port redirector forwarding each access request from the resource stack to the second port upon the first VM being directed to be saved or migrated and thereafter, each access request at the second port being further forwarded in turn only after the resource has acted upon all access requests queued at the first port and thereafter has been removed from being owned by the first VM, the second VM subsequently being communicatively coupled to the resource and the resource being subsequently assigned to the second VM after the resource is removed from the first VM such that the second VM subsequently owns the resource and the service provided thereby, the second VM as owner of the resource being communicatively coupled to the second port of the first VM by way of the communications medium, each access request at the second port being further forwarded in turn to the second VM by way of the communications medium and then further forwarded in turn to the resource by way of the second VM to be acted upon by such resource, whereby 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 the save or migrate can thereafter be completed.
2 Assignments
0 Petitions
Accused Products
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.
-
Citations
15 Claims
-
1. A computing system comprising:
-
a resource for providing a resource service; and
a computing device having first and second virtual machines (VMs) instantiated on the computing device, each VM for hosting an instance of an operating system upon which one or more applications may be instantiated, the first VM initially being communicatively coupled to the resource and the resource being initially assigned to the first VM such that the first VM initially owns the resource and the service provided thereby, the first VM being a software construct on the computing device that can be saved and migrated from a first platform to a second platform, the first VM including;
a resource stack corresponding to and accessing the resource according to access requests sent by way of such resource stack;
a first port communicatively coupled to the resource;
a second port communicatively coupled to a communications medium; and
a port redirector communicatively coupled to the resource stack, the first port and the second port and forwarding each access request from the resource stack to be queued at one of the first port and the second port, the port redirector forwarding each access request from the resource stack to be queued at the first port until the first VM is directed to be saved or migrated, each access request at the first port being further forwarded in turn to the resource to be acted upon by such resource, the port redirector forwarding each access request from the resource stack to the second port upon the first VM being directed to be saved or migrated and thereafter, each access request at the second port being further forwarded in turn only after the resource has acted upon all access requests queued at the first port and thereafter has been removed from being owned by the first VM, the second VM subsequently being communicatively coupled to the resource and the resource being subsequently assigned to the second VM after the resource is removed from the first VM such that the second VM subsequently owns the resource and the service provided thereby, the second VM as owner of the resource being communicatively coupled to the second port of the first VM by way of the communications medium, each access request at the second port being further forwarded in turn to the second VM by way of the communications medium and then further forwarded in turn to the resource by way of the second VM to be acted upon by such resource, whereby 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 the save or migrate can thereafter be completed. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method with regard to a computing system comprising:
-
a resource for providing a resource service; and
a computing device having first and second virtual machines (VMs) instantiated on the computing device, each VM for hosting an instance of an operating system upon which one or more applications may be instantiated, the first VM being initially communicatively coupled to the resource and the resource being initially assigned to the first VM such that the first VM initially owns the resource and the service provided thereby, the first VM including;
a resource stack corresponding to and accessing the resource according to access requests sent by way of such resource stack;
a first port communicatively coupled to the resource;
a second port communicatively coupled to a communications medium; and
a port redirector communicatively coupled to the resource stack, the first port and the second port and forwarding each access request from the resource stack to be queued at one of the first port and the second port, the method comprising;
the port redirector initially forwarding each access request from the resource stack be queued at the first port, each access request as queued at the first port being further forwarded in turn to the resource to be acted upon by such resource;
firstly determining that the first VM has been directed to be saved or migrated from a first platform to a second platform, and upon the first determination the port redirector forwarding each access request from the resource stack to be queued at the second port; and
secondly determining that the resource has acted upon all access requests queued at and forwarded by the first port, and upon the second determination;
removing the resource from being owned by the first VM and subsequently communicatively coupling the second VM to the resource and assigning the resource to the second VM such that the second VM owns the resource and the service provided thereby;
communicatively coupling the second VM as owner of the resource to the second port of the first VM by way of the communications medium;
further forwarding in turn each access request as queued at the second port to the second VM by way of the communications medium, each access request then being further forwarded in turn to the resource by way of the second VM to be acted upon by such resource, whereby 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
thereafter completing the save or migrate of the first VM. - View Dependent Claims (7, 8, 9, 10)
-
-
11. A method with regard to a computing system comprising:
-
a resource for providing a resource service; and
a computing device having first and second virtual machines (VMs) instantiated on the computing device, each VM for hosting an instance of an operating system upon which one or more applications may be instantiated, the first VM being initially communicatively coupled to the resource and the resource being initially assigned to the first VM such that the first VM initially owns the resource and the service provided thereby, the method comprising;
initially forwarding each access request for the resource to such resource to be acted upon by such resource;
firstly determining that the first VM has been directed to be saved or migrated from a first platform to a second platform, and upon the first determination forwarding each access request for the resource to a holding queue; and
secondly determining that the resource has acted upon all access requests forwarded thereto, and upon the second determination;
removing the resource from being owned by the first VM and subsequently communicatively coupling the second VM to the resource and assigning the resource to the second VM such that the second VM owns the resource and the service provided thereby;
communicatively coupling the second VM as owner of the resource to the holding queue;
further forwarding each access request at the holding queue to the second VM, each access request then being further forwarded in turn to the resource by way of the second VM to be acted upon by such resource, whereby 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
thereafter completing the save or migrate of the first VM. - View Dependent Claims (12, 13, 14, 15)
-
Specification