IP Library Granted Patent US 10,152,345
Granted Patent B2
US 10,152,345 · App. 15/357,962 · Granted Dec 11, 2018

Machine identity persistence for users of non-persistent virtual desktops

Inventor: Daniel James Beveridge (Apollo Beach, FL)
Assignee: VMware, Inc.
G06F9/45558G06F9/4451G06F2009/45562G06F2009/45575G06F2009/45583G06F2209/5011
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 10,152,345
App. No.
15/357,962
Granted
Dec 11, 2018
Kind
B2
Abstract

Examples perform creation of a non-persistent virtual machine with a persistent machine identity associated with the user of the virtual machine, to provide consistent virtual desktop sessions to the user. Some examples contemplate that the machine identity is inserted into a virtual machine created through cloning, forking, or from a virtual machine pool.

Claims (53)

1. A method for enabling software that demands a stable machine identity to be executed on a non-persistent virtual machine, the method comprising:

suspending execution of a parent virtual machine (VM);

receiving a request from a user for a virtual desktop that includes one or more applications requiring a stable machine identity between sessions;

determining an identity of the user requesting the virtual desktop;

forking a child VM from the parent VM to create the virtual desktop;

using the determined identity of the user to obtain a corresponding static machine identity of the user and inserting the static machine identity into the child VM as part of provisioning the child VM, wherein inserting the static machine identity provides the stable machine identity for the one or more applications executed during a session on the virtual desktop; and

providing the virtual desktop to a user device.

2. The method of claim 1 , further comprising:

ending the session including destroying the child VM;

receiving a subsequent request from the user for the virtual desktop;

forking a new child VM from the parent VM to create the virtual desktop; and

obtaining the static machine identity associated with the identity of the user and inserting the static machine identity into the new child VM.

3. The method of claim 1 , wherein obtaining the static machine identity associated with the identity of the user includes: determining that there is no existing machine identity associated with the identity of the user, creating the machine identity associated with the identity of the user, and storing the machine identity.

4. The method of claim 1 , wherein obtaining the static machine identity associated with the identity of the user includes determining that there is an existing machine identity associated with the identity of the user and retrieving the existing machine identity.

5. The method of claim 1 , wherein forking the child VM from the parent VM includes initially sharing content between the parent VM and the child VM and storing changes to the child VM as copy on write memory pages.

6. The method of claim 1 , wherein the parent VM is a template VM, and wherein the template VM is generated on demand in response to detecting patterns in VM provisioning requests.

7. The method of claim 1 , wherein the machine identity information includes a machine name and configuration settings.

8. A system comprising:

one or more computers including one or more processors and one or more computer-readable storage media, the one or more computers configured to enable software that demands a stable machine identity to be executed on a non-persistent virtual machine including performing operations comprising:

suspending execution of a parent virtual machine (VM);

receiving a request from a user for a virtual desktop that includes one or more applications requiring a stable machine identity between sessions;

determining an identity of the user requesting the virtual desktop;

forking a child VM from the parent VM to create the virtual desktop;

using the determined identity of the user to obtain a corresponding static machine identity of the user and inserting the static machine identity into the child VM as part of provisioning the child VM, wherein inserting the static machine identity provides the stable machine identity for the one or more applications executed during a session on the virtual desktop; and

providing the virtual desktop to a user device.

9. The system of claim 8 , the one or more computers further configured to perform operations comprising:

ending the session including destroying the child VM;

receiving a subsequent request from the user for the virtual desktop;

forking a new child VM from the parent VM to create the virtual desktop; and

obtaining the static machine identity associated with the identity of the user and inserting the static machine identity into the new child VM.

10. The system of claim 8 , wherein obtaining the static machine identity associated with the identity of the user includes: determining that there is no existing machine identity associated with the identity of the user, creating the machine identity associated with the identity of the user, and storing the machine identity.

11. The system of claim 8 , wherein obtaining the static machine identity associated with the identity of the user includes determining that there is an existing machine identity associated with the identity of the user and retrieving the existing machine identity.

12. The system of claim 8 , wherein forking the child VM from the parent VM includes initially sharing content between the parent VM and the child VM and storing changes to the child VM as copy on write memory pages.

13. The system of claim 8 , wherein the parent VM is a template VM, and wherein the template VM is generated on demand in response to detecting patterns in VM provisioning requests.

14. The system of claim 8 , wherein the machine identity information includes a machine name and configuration settings.

15. One or more computer-readable storage media including computer-executable instructions that, when executed, cause one or more processors to perform operations comprising:

suspending execution of a parent virtual machine (VM);

receiving a request from a user for a virtual desktop that includes one or more applications requiring a stable machine identity between sessions;

determining an identity of the user requesting the virtual desktop;

forking a child VM from the parent VM to create the virtual desktop;

using the determined identity of the user to obtain a corresponding static machine identity of the user and inserting the static machine identity into the child VM as part of provisioning the child VM, wherein inserting the static machine identity provides the stable machine identity for the one or more applications executed during a session on the virtual desktop; and

providing the virtual desktop to a user device.

16. The one or more computer-readable storage media of claim 15 , wherein the operations further comprise:

ending the session including destroying the child VM;

receiving a subsequent request from the user for the virtual desktop;

forking a new child VM from the parent VM to create the virtual desktop; and

obtaining the static machine identity associated with the identity of the user and inserting the static machine identity into the new child VM.

17. The one or more computer-readable storage media of claim 15 , wherein obtaining the static machine identity associated with the identity of the user includes: determining that there is no existing machine identity associated with the identity of the user, creating the machine identity associated with the identity of the user, and storing the machine identity.

18. The one or more computer-readable storage media of claim 15 , wherein obtaining the static machine identity associated with the identity of the user includes determining that there is an existing machine identity associated with the identity of the user and retrieving the existing machine identity.

19. The one or more computer-readable storage media of claim 15 , wherein forking the child VM from the parent VM includes initially sharing content between the parent VM and the child VM and storing changes to the child VM as copy on write memory pages.

20. The one or more computer-readable storage media of claim 15 , wherein the parent VM is a template VM, and wherein the template VM is generated on demand in response to detecting patterns in VM provisioning requests.

21. The method of claim 1 , wherein the child VM is forked at a point in the boot up process on the parent VM prior to particular elements of an operating system having initialized such that the machine identity is dynamically inserted consistently with the operating system boot sequence.

22. The method of claim 1 , wherein a user is provided with a newly generated child VM across multiple sessions having a same machine identity.

Assignments (2)
PATENT ASSIGNMENT Recorded Aug 5, 2024
From: VMWARE LLC
To: OMNISSA, LLC
Reel/Frame 068327/0365 →
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0395 →
Continuity (4)
Continuation 14615366 · Feb 5, 2015
Provisional Application 62041045 · Aug 23, 2014
Provisional Application 62041044 · Aug 23, 2014
Related Publication 20170068565A1 · Mar 9, 2017