IP Library Granted Patent US 11,553,034
Granted Patent B2
US 11,553,034 · App. 16/998,967 · Granted Jan 10, 2023

Server computer management system for supporting highly available virtual desktops of multiple different tenants

Inventor: Kenneth N. Ringdahl (Salem, NH)
Assignee: VMware, Inc.
H04L67/10G06F9/452G06F9/45558G06F9/5072G06F9/5077G06F2009/45583G06F2009/45595
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 11,553,034
App. No.
16/998,967
Granted
Jan 10, 2023
Kind
B2
Abstract

A server computer can be quickly allocated to and made ready for use by users of a tenant by adding and starting, on that server computer, copies of a process implementing the tenant's virtual machine, based on a gold image virtual machine for that tenant. The gold image virtual machine also has an associated gold image virtual disk. The virtual machines on the server computer are associated with virtual disks that are linked clones based on the gold image virtual disk, such as linked clones of a replica of the gold image virtual disk. Each virtual machine for a tenant on the new server computer also is added to the tenant computer network. Server computers for multiple tenants can be grouped into a cluster, and can use anti-affinity rules to limit instantiation of virtual machines of each tenant only on server computers dedicated to the tenant.

Claims (71)

1. A method comprising:

determining that an additional server computer is to be dynamically allocated to a tenant, for hosting additional virtual desktops for the tenant, based on a current utilization of server computers currently allocated to the tenant and a specified maximum threshold utilization; and

selecting the additional server computer from among a plurality of server computers;

wherein allocating the additional server computer comprises:

adding the selected server computer to a cluster of server computers associated with the tenant and connecting a tenant computer network and a tenant data store to the selected server computer;

instantiating, as a tenant virtual machine, a parent virtual machine based on a gold image virtual machine for the tenant on the selected server computer, wherein the gold image virtual machine is hosted by a currently allocated server for the tenant;

associating the tenant virtual machine with one or more child virtual machines; and

adding the one or more child virtual machines to the tenant computer network of the tenant.

2. The method of claim 1 , wherein selecting the additional server computer comprises:

filtering the plurality of server computers based on a desktop model of the tenant to identify a set of available server computers that satisfy criteria specified by the desktop model; and

selecting the server computer from the filtered set.

3. The method of claim 1 , further comprising:

associating each child virtual machine with a respective one or more virtual disks, wherein each of the one or more virtual disks are generated as a respective linked clone based on a gold image virtual disk.

4. The method of claim 1 , wherein each of the child virtual machines are generated as a fork of the parent virtual machine instantiated on the selected server computer.

5. The method of claim 1 , further comprising:

placing the selected server computer to be added in a maintenance mode;

mapping the server computer to the data store of the tenant;

registering a placeholder virtual machine for the tenant on the selected server computer; and

removing the selected server computer from maintenance mode and initiating a recovery process, wherein the placeholder virtual machine and the anti-affinity rules reserve the server computer for use by the tenant by preventing the recovery process from placing virtual machines for other tenants on the server computer.

6. The method of claim 1 , wherein the plurality of server computers belong to a cluster of server computers defined for a group of tenants, wherein each tenant has a respective allocation of server computers and wherein the cluster further contains a set of one or more backup server computers available for dynamic allocation to any one of the group of tenants.

7. The method of claim 1 , further comprising:

periodically obtaining data describing a new current utilization of the server computers allocated to the tenant and evaluating the new current utilization based on one or more minimum thresholds; and

in response to the evaluating, deallocating one or more server computers from the tenant.

8. A system comprising:

a plurality of server computers interconnected on a service provider computer network, each server computer comprising computing resources, including one or more processing units and memory, configured to support a plurality of virtual desktops utilizing the computing resources; and

a service provider resource manager configured to perform operations comprising:

determining that an additional server computer is to be dynamically allocated to a tenant, for hosting additional virtual desktops for the tenant, based on a current utilization of server computers currently allocated to the tenant and a specified maximum threshold utilization; and

selecting the additional server computer from among a plurality of server computers;

wherein allocating the additional server computer comprises:

adding the selected server computer to a cluster of server computers associated with the tenant and connecting a tenant computer network and a tenant data store to the selected server computer;

instantiating, as a tenant virtual machine, a parent virtual machine based on a gold image virtual machine for the tenant on the selected server computer, wherein the gold image virtual machine is hosted by a currently allocated server for the tenant;

associating the tenant virtual machine with one or more child virtual machines; and

adding the one or more child virtual machines to the tenant computer network of the tenant.

9. The system of claim 8 , wherein selecting the additional server computer comprises:

filtering the plurality of server computers based on a desktop model of the tenant to identify a set of available server computers that satisfy criteria specified by the desktop model; and

selecting the server computer from the filtered set.

10. The system of claim 8 , wherein the service provider resource manager is further configured to perform operations comprising:

associating each child virtual machine with a respective one or more virtual disks, wherein each of the one or more virtual disks are generated as a respective linked clone based on a gold image virtual disk.

11. The system of claim 8 , wherein each of the child virtual machines are generated as a fork of the parent virtual machine instantiated on the selected server computer.

12. The system of claim 8 , wherein the service provider resource manager is further configured to perform operations comprising:

placing the selected server computer to be added in a maintenance mode;

mapping the server computer to the data store of the tenant;

registering a placeholder virtual machine for the tenant on the selected server computer; and

removing the selected server computer from maintenance mode and initiating a recovery process, wherein the placeholder virtual machine and the anti-affinity rules reserve the server computer for use by the tenant by preventing the recovery process from placing virtual machines for other tenants on the server computer.

13. The system of claim 8 , wherein the plurality of server computers belong to a cluster of server computers defined for a group of tenants, wherein each tenant has a respective allocation of server computers and wherein the cluster further contains a set of one or more backup server computers available for dynamic allocation to any one of the group of tenants.

14. The system of claim 8 , wherein the service provider resource manager is further configured to perform operations comprising:

periodically obtaining data describing a new current utilization of the server computers allocated to the tenant and evaluating the new current utilization based on one or more minimum thresholds; and

in response to the evaluating, deallocating one or more server computers from the tenant.

15. One or more non-transitory computer storage media comprising computer program instructions that when executed by one or computers causes the one or more computers to perform operations comprising:

determining that an additional server computer is to be dynamically allocated to a tenant, for hosting additional virtual desktops for the tenant, based on a current utilization of server computers currently allocated to the tenant and a specified maximum threshold utilization; and

selecting the additional server computer from among a plurality of server computers;

wherein allocating the additional server computer comprises:

adding the selected server computer to a cluster of server computers associated with the tenant and connecting a tenant computer network and a tenant data store to the selected server computer;

instantiating, as a tenant virtual machine, a parent virtual machine based on a gold image virtual machine for the tenant on the selected server computer, wherein the gold image virtual machine is hosted by a currently allocated server for the tenant;

associating the tenant virtual machine with one or more child virtual machines; and

adding the one or more child virtual machines to the tenant computer network of the tenant.

16. The non-transitory computer storage media of claim 15 , wherein selecting the additional server computer comprises:

filtering the plurality of server computers based on a desktop model of the tenant to identify a set of available server computers that satisfy criteria specified by the desktop model; and

selecting the server computer from the filtered set.

17. The non-transitory computer storage media of claim 15 , wherein the computer program instructions, when executed, further perform operations comprising:

associating each child virtual machine with a respective one or more virtual disks, wherein each of the one or more virtual disks are generated as a respective linked clone based on a gold image virtual disk.

18. The non-transitory computer storage media of claim 15 , wherein each of the child virtual machines are generated as a fork of the parent virtual machine instantiated on the selected server computer.

19. The non-transitory computer storage media of claim 15 , wherein the computer program instructions, when executed, further perform operations comprising:

placing the selected server computer to be added in a maintenance mode;

mapping the server computer to the data store of the tenant;

registering a placeholder virtual machine for the tenant on the selected server computer; and

removing the selected server computer from maintenance mode and initiating a recovery process, wherein the placeholder virtual machine and the anti-affinity rules reserve the server computer for use by the tenant by preventing the recovery process from placing virtual machines for other tenants on the server computer.

20. The non-transitory computer storage media of claim 15 , wherein the plurality of server computers belong to a cluster of server computers defined for a group of tenants, wherein each tenant has a respective allocation of server computers and wherein the cluster further contains a set of one or more backup server computers available for dynamic allocation to any one of the group of tenants.

21. The non-transitory computer storage media of claim 15 , wherein the computer program instructions, when executed, further perform operations comprising:

periodically obtaining data describing a new current utilization of the server computers allocated to the tenant and evaluating the new current utilization based on one or more minimum thresholds; and

in response to the evaluating, deallocating one or more server computers from the tenant.

Assignments (4)
PATENT ASSIGNMENT Recorded Aug 5, 2024
From: VMWARE LLC
To: OMNISSA, LLC
Reel/Frame 068327/0365 →
SECURITY INTEREST Recorded Jul 3, 2024
From: OMNISSA, LLC
To: UBS AG, STAMFORD BRANCH
Reel/Frame 068118/0004 →
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0395 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 20, 2022
From: RINGDAHL, KENNETH N.
To: VMWARE, INC.
Reel/Frame 061155/0715 →