IP Library Granted Patent US 12,093,745
Granted Patent B2
US 12,093,745 · App. 17/007,807 · Granted Sep 17, 2024

Systems and methods for managing resources in a virtual desktop infrastructure

Inventors: Vivek Nandavanam (New York, NY); Shravan Sriram (Secaucus, NJ); Jerrold Leichter (Stamford, CT); Alexander Nish (Boston, MA); Apostolos Dailianas (Athens, GR); Dmitry Illichev (Boston, MA)
Assignee: International Business Machines Corporation
G06F9/5077G06F9/452
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 12,093,745
App. No.
17/007,807
Granted
Sep 17, 2024
Kind
B2
Abstract

Various approaches for managing one or more computational commodities in a virtual desktop infrastructure (VDI) include receiving a collection of utilization records for a user utilizing a desktop resource supported by the computational commodity in a desktop pool, each utilization record corresponding to a utilization rate of the computational commodity by the user; and augmenting or reducing allocation of the computational commodity to the desktop resource utilized by the user based at least in part on the utilization rates.

Claims (71)

1. A method of managing at least one computational resource in a virtual desktop infrastructure (VDI) comprising a plurality of desktop pools, the method comprising:

defining a plurality of time slots, each time slot having a start time and an end time;

for a user utilizing a desktop resource supported by the at least one computational resource in the plurality of desktop pools, learning, by an analysis module, a user-specific utilization pattern associated with the at least one computational resource in at least one of the time slots based upon a collection of data records in a computer database associated with a usage of the at least one computational resource collected over a predetermined period of time;

upon receiving a user's request for the desktop resource, selecting, by a pool selection module a first one of the desktop pools in the VDI based at least in part on the learned user-specific utilization patterns and time associated with the user's request wherein a utilization rate of the at least one computational resource supporting the selected first one of the desktop pools is smaller than that of the at least one computational resource supporting any of the unselected desktop pools;

allocating, by a resource allocation module, the at least one computational resource from the selected first one of the desktop pools to the user; and

executing, for the desktop resource, the at least one computational resource from the selected first one of the desktop pools in response to the allocating.

2. The method of claim 1 , further comprising identifying one of the time slots to which the time associated with the user's request belongs, wherein the first one of the desktop pools is selected further based at least in part on the learned user-specific utilization patterns in the identified time slot.

3. The method of claim 2 , further comprising, upon receiving the user's request, predicting a user utilization demand on the desktop resource supported by the at least one computational resource in the identified time slot, wherein the first one of the desktop pools is selected further based at least in part on the predicted user utilization demand.

4. The method of claim 1 , wherein each of the plurality of desktop pools offers a price for providing the at least one computational resource to support the desktop resource, the price offered by the selected first one of the desktop pools being smaller than the prices offered by the unselected desktop pools.

5. The method of claim 1 , wherein each user-specific utilization pattern is learned by collecting and analyzing a plurality of utilization records associated with the user utilizing the desktop resource supported by the at least one computational resource over a predetermined time.

6. The method of claim 5 , wherein the learned user-specific utilization pattern in each of the time slots is determined based on an average of the utilization records over the predetermined period of time in each of the time slots.

7. The method of claim 1 , further comprising:

classifying the learned user-specific utilization patterns in each of the time slots into a plurality of regions; and

upon receiving the user's request, identifying a user's region,

wherein the first one of the desktop pools is selected further based at least in part on the learned user-specific utilization patterns classified in the user's region.

8. The method of claim 1 , further comprising:

upon determining that a utilization rate of the at least one computational resource supporting the selected first one of the desktop pools exceeds a predetermined threshold, selecting a second one, different from the first one, of the desktop pools; and

allocating the at least one computational resource from the selected second one of the desktop pools to the user.

9. The method of claim 8 , wherein the utilization rate of the at least one computational resource supporting the selected second one of the desktop pools is below the predetermined threshold.

10. The method of claim 1 , further comprising:

upon determining that a utilization rate of the at least one computational resource supporting the selected first one of the desktop pools exceeds a predetermined threshold, selecting at least one of the plurality of desktop pools to be cloned for additionally allocating the at least one computational resource; and

cloning the selected at least one of the desktop pools.

11. The method of claim 10 , further comprising:

determining at least one of a revenue or an expense associated with each of the plurality of the desktop pools; and

selecting the at least one of the plurality of desktop pools to be cloned based at least in part on the associated revenue and/or expense.

12. The method of claim 1 , further comprising:

upon determining that a utilization rate of the at least one computational resource supporting the selected first one of the desktop pools exceeds a predetermined threshold, selecting at least one new desktop pool to be provisioned for additionally allocating the at least one computational resource; and

provisioning the selected at least one new desktop pool.

13. The method of claim 12 , further comprising:

determining at least one of a revenue or an expense associated with each of a plurality of new desktop pools; and

selecting the at least one new desktop pool to be provisioned based at least in part on the associated revenue and/or expense.

14. The method of claim 1 , further comprising upon determining that a utilization rate of the at least one computational resource supporting the selected first one of the desktop pools exceeds a predetermined threshold, resizing a viewpod in the VDI to provide at least one additional desktop pool.

15. The method of claim 1 , further comprising upon determining that a utilization rate of the at least one computational resource supporting the selected first one of the desktop pools is below a predetermined threshold, suspending or terminating the first one of the desktop pools.

16. The method of claim 1 , wherein the at least one computational resource comprises at least one of a CPU, a memory or a storage supporting the desktop pools.

17. A computer system for managing at least one computational resource in a virtual desktop infrastructure (VDI) comprising a plurality of desktop pools,

at least one processing unit;

at least one memory storage component;

a VDI management system, configured to;

define a plurality of time slots, each time slot having a start time and an end time;

for a user utilizing a desktop resource supported by the at least one computational resource in the plurality of desktop pools, learn, by an analysis module of the VDI management system, a user-specific utilization pattern associated with the at least one computational resource in at least one of the time slots;

upon receiving a user's request for the desktop resource, select, by a pool management module of the VDI management system, a first one of the desktop pools in the VDI based at least in part on the learned user-specific utilization patterns and time associated with the user's request, wherein a utilization rate of the at least one computational resource supporting the selected first one of the desktop pools is smaller than that of the at least one computational resource supporting any of the unselected desktop pools;

allocate, by an allocation module of the VDI management system, the at least one computational resource from the selected first one of the desktop pools to the user; and

execute, for the desktop resource, the at least one computational resource from the selected first one of the desktop pools in response to the allocating.

18. The computer system of claim 17 , wherein the VDI management system is further configured to identify one of the time slots to which the time associated with the user's request belongs, the first one of the desktop pools being selected further based at least in part on the learned user-specific utilization patterns in the identified time slot.

19. The computer system of claim 18 , wherein the VDI management system is further configured to, upon receiving the user's request, predict a user utilization demand on the desktop resource supported by the at least one computational resource in the identified time slot, the first one of the desktop pools being selected further based at least in part on the predicted user utilization demand.

20. The computer system of claim 17 , wherein each of the plurality of desktop pools offers a price for providing the at least one computational resource to support the desktop resource, the price offered by the selected first one of the desktop pools being smaller than the prices offered by the unselected desktop pools.

21. The computer system of claim 17 , wherein each user-specific utilization pattern is learned by collecting and analyzing a plurality of utilization records associated with the user utilizing the desktop resource supported by the at least one computational resource over a predetermined time.

22. The computer system of claim 21 , wherein the learned user-specific utilization pattern in each of the time slots is determined based on an average of the utilization records over a predetermined period of time in each of the time slots.

23. The computer system of claim 17 , wherein the VDI management system is further configured to:

classify the learned user-specific utilization patterns in each of the time slots into a plurality of regions; and

upon receiving the user's request, identify a user's region,

wherein the first one of the desktop pools is selected further based at least in part on the learned user-specific utilization patterns classified in the user's region.

24. The computer system of claim 17 , wherein the VDI management system is further configured to:

upon determining that a utilization rate of the at least one computational resource supporting the selected first one of the desktop pools exceeds a predetermined threshold, select a second one, different from the first one, of the desktop pools; and

allocate the at least one computational resource from the selected second one of the desktop pools to the user.

25. The computer system of claim 24 , wherein the utilization rate of the at least one computational resource supporting the selected second one of the desktop pools is below the predetermined threshold.

26. The computer system of claim 17 , wherein the VDI management system is further configured to:

upon determining that a utilization rate of the at least one computational resource supporting the selected first one of the desktop pools exceeds a predetermined threshold, select at least one of the plurality of desktop pools to be cloned for additionally allocating the at least one computational resource; and

clone the selected at least one of the desktop pools.

27. The computer system of claim 26 , wherein the VDI management system is further configured to:

determine at least one of a revenue or an expense associated with each of the plurality of the desktop pools; and

select the at least one of the plurality of desktop pools to be cloned based at least in part on the associated revenue and/or expense.

28. The computer system of claim 17 , wherein the VDI management system is further configured to:

upon determining that a utilization rate of the at least one computational resource supporting the selected first one of the desktop pools exceeds a predetermined threshold, select at least one new desktop pool to be provisioned for additionally allocating the at least one computational resource; and

provision the selected at least one new desktop pool.

29. The computer system of claim 28 , wherein the VDI management system is further configured to:

determine at least one of a revenue or an expense associated with each of a plurality of new desktop pools; and

select the at least one new desktop pool to be provisioned based at least in part on the associated revenue and/or expense.

30. The computer system of claim 17 , wherein the VDI management system is further configured to, upon determining that a utilization rate of the at least one computational resource supporting the selected first one of the desktop pools exceeds a predetermined threshold, resize a viewpod in the VDI to provide at least one additional desktop pool.

31. The computer system of claim 17 , wherein the VDI management system is further configured to, upon determining that a utilization rate of the at least one computational resource supporting the selected first one of the desktop pools is below a predetermined threshold, suspend or terminate the first one of the desktop pools.

32. The computer system of claim 17 , wherein the at least one computational resource comprises at least one of a CPU, a memory or a storage supporting the desktop pools.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 21, 2022
From: TURBONOMIC, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 062202/0030 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 27, 2021
From: NANDAVANAM, VIVEK; SRIRAM, SHRAVAN; LEICHTER, JERROLD; NISH, ALEXANDER; DAILIANS, APOSTOLOS; ILLICHEV, DMITRY
To: TURBONOMIC, INC.
Reel/Frame 056368/0799 →
Continuity (1)
Related Publication 20220156124A1 · May 19, 2022