IP Library Granted Patent US 10,664,299
Granted Patent B2
US 10,664,299 · App. 15/604,097 · Granted May 26, 2020

Power optimizer for VDI system

Inventors: Joseprabu Inbaraj (Suwanee, GA); Muthukkumaran Ramalingam (Duluth, GA); Venkatesaperumal Kondalsamy (Chennai, IN)
Assignee: AMZETTA TECHNOLOGIES, LLC
G06F9/45558G06F9/452G06F9/5077G06F9/5088G06F2009/4557
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,664,299
App. No.
15/604,097
Granted
May 26, 2020
Kind
B2
Abstract

In an aspect of the disclosure, a method, a computer-readable medium, and an apparatus are provided. The apparatus makes a first determination whether a load metric of a first hypervisor is in a first predetermined relationship with a first threshold. The first hypervisor is one of a plurality of hypervisors of a VDI system. The apparatus also makes a second determination whether an available capacity of a second hypervisor is able to run virtual desktops of the first hypervisor when the load metric of the first hypervisor is determined to be in the predetermined relationship with the first threshold. The first hypervisor migrates virtual desktops of the first hypervisor to the second hypervisor when the available capacity of the second hypervisor of the plurality of hypervisors is determined to be able to run virtual desktops of the first hypervisor. The apparatus also powers off the first hypervisor.

Claims (51)

1. A method of managing virtual desktops of a virtual desktop infrastructure (VDI) system having a plurality of VDI server systems, the VDI system comprising at least a first and second hypervisor of a plurality of hypervisors running on at least a first and second server system respectively of the VDI system, the method comprising:

making a first determination whether a load metric of the first hypervisor is within a first range of load metrics, the first range being above a first threshold and below a second threshold, the load metric of the first hypervisor being due to the load of a plurality of virtual desktops run on the first hypervisor, wherein the first threshold represents a minimum load metric for the first hypervisor, and the second threshold represents a maximum load metric for the first hypervisor;

requesting the first hypervisor to migrate all of the virtual desktops of the first hypervisor running on the first server system to the second hypervisor running on the second server system when the load metric of the first hypervisor is below the first threshold, and an available capacity of the second hypervisor is determined to be able to run all of the virtual desktops of the first hypervisor, and powering off the first hypervisor on the first server system after all of the virtual desktops of the first hypervisor have been migrated;

in response to the result of the first determination being that the load metric of the first hypervisor is above the second threshold;

making a second determination whether an available capacity of a second hypervisor is able to run one or more of the virtual desktops of the first hypervisor by determining whether a load metric of the second hypervisor is within a second range of load metrics, the second range being above a third threshold and below a fourth threshold, wherein the second range of load metrics are within, but not equal to, the first range of load metrics, and wherein the third threshold represents a minimum load metric for the second hypervisor, and the fourth threshold represents a maximum load metric for the second hypervisor; and

in response to the result of the second determination being that the load metric of the second hypervisor is within the second range of load metrics;

(i) determining a migrating number, wherein the migrating number of the virtual desktops of the first hypervisor are to be migrated from the first server system to reduce the load metric of the first hypervisor below the second threshold, and the migrating number is smaller than a total number of the virtual desktops of the first hypervisor;

(ii) determining a first number based on the available capacity of the second hypervisor, wherein the available capacity of the second hypervisor is determined to be able to run the first number of the virtual desktops of the first hypervisor, and the first number is smaller than the total number of the virtual desktops of the first hypervisor, and requesting the first hypervisor to migrate the migrating number of the virtual desktops of the first hypervisor running on the first server system to the second hypervisor running on the second server system when the first number is greater than or equal to the migrating number;

(iii) determining that the migrating number is greater than the first number; and

(iv) requesting the first hypervisor to migrate the first number of the virtual desktops of the first hypervisor running on the first server system to the second hypervisor running on the second server system, and after the first number of the virtual desktops of the first hypervisor have been migrated to the second hypervisor, powering on a third server system of the VDI server systems, executing a third hypervisor on the third server system of the VDI server systems, and requesting the first hypervisor to migrate a second number of the virtual desktops of the first hypervisor running on the first server system to the third hypervisor, wherein the second number is the difference between the migrating number and the first number.

2. The method of claim 1 , wherein the first threshold is at least one of a number threshold of virtual machines running on the first hypervisor, a load threshold of a processor of the first hypervisor, a usage threshold of a memory of the first hypervisor, and an activity threshold of a disk of the first hypervisor.

3. The method of claim 2 , further comprising:

determining a count of read or write activities performed by the disk of the first hypervisor, wherein the first determination includes determining whether the count is above the activity threshold.

4. The method of claim 1 , further comprising:

determining a respective load metric of each of the plurality of hypervisors running on the VDI server systems;

comparing the load metric of the first hypervisor with the respective load metric of each of the other hypervisors of the plurality of hypervisors; and

selecting the first hypervisor to make the first determination based on a result of the comparison.

5. An apparatus for managing virtual desktops of a virtual desktop infrastructure (VDI) system having a plurality of VDI server systems, the VDI system comprising at least a first and second hypervisor of a plurality of hypervisors running on at least a first and second server system respectively of the VDI system, the apparatus comprising:

a memory; and

at least one processor coupled to the memory and configured to:

make a first determination whether a load metric of a first hypervisor is within a first range of load metrics, the first range being above a first threshold and below a second threshold, wherein the first hypervisor is a hypervisor running on a first server system of the VDI server systems, and the load metric of the first hypervisor being due to the load of a plurality of virtual desktops run on the first hypervisor, wherein the first threshold represents a minimum load metric for the first hypervisor, and the second threshold represents a maximum load metric for the first hypervisor;

make a second determination whether an available capacity of a second hypervisor is able to run one or more of the virtual desktops of the first hypervisor by determining whether a load metric of the second hypervisor is within a second range of load metrics, the second range being above a third threshold and below a fourth threshold, wherein the second hypervisor is a hypervisor running on a second server system of the VDI server systems, wherein the second range of load metrics are within, but not equal to, the first range of load metrics, and wherein the third threshold represents a minimum load metric for the second hypervisor, and the fourth threshold represents a maximum load metric for the second hypervisor;

request the first hypervisor to migrate all of the virtual desktops of the first hypervisor running on the first server system to the second hypervisor running on the second server system when the load metric of the first hypervisor is below the first threshold, and the available capacity of the second hypervisor is determined to be able to run all of the virtual desktops of the first hypervisor, and after all of the virtual desktops of the first hypervisor have been migrated, power off the first hypervisor on the first server system;

when the load metric of the first hypervisor is above the second threshold and the load metric of the second hypervisor is within the second range of load metrics,

(i) determine a migrating number, wherein the migrating number of the virtual desktops of the first hypervisor are to be migrated from the first server system to reduce the load metric of the first hypervisor below the second threshold, and the migrating number is smaller than a total number of the virtual desktops of the first hypervisor;

(ii) determine a first number based on the available capacity of the second hypervisor, wherein the available capacity of the second hypervisor is determined to be able to run the first number of the virtual desktops of the first hypervisor, and the first number is smaller than the total number of the virtual desktops of the first hypervisor;

(iii) request the first hypervisor to migrate the migrating number of the virtual desktops of the first hypervisor running on the first server system to the second hypervisor running on the second server system when the first number is greater than or equal to the migrating number; and

(iv) request the first hypervisor to migrate the first number of the virtual desktops of the first hypervisor running on the first server system to the second hypervisor running on the second server system when the migrating number is greater than the first number, and after the first number of the virtual desktops of the first hypervisor have been migrated to the second hypervisor, power on a third server system of the VDI server systems, execute a third hypervisor on the third server system of the VDI server systems, and request the first hypervisor to migrate a second number of the virtual desktops of the first hypervisor running on the first server system to the third hypervisor, wherein the second number is the difference between the migrating number and the first number.

6. The apparatus of claim 5 , wherein the first threshold is at least one of a number threshold of virtual machines running on the first hypervisor, a load threshold of a processor of the first hypervisor, a usage threshold of a memory of the first hypervisor, and an activity threshold of a disk of the first hypervisor.

7. The apparatus of claim 6 , wherein the at least one processor is further configured to:

determine a count of read or write activities performed by the disk of the first hypervisor, wherein the first determination includes determining whether the count is above the activity threshold.

8. The apparatus of claim 5 , wherein the at least one processor is further configured to:

determine a respective load metric of each of plurality of hypervisors running on the VDI server systems;

compare the load metric of the first hypervisor with the respective load metric of each of the other hypervisors of the plurality of hypervisors; and

select the first hypervisor to make the first determination based on a result of the comparison.

9. A non-transitory computer-readable medium storing computer executable code for operating an apparatus managing virtual desktops of a virtual desktop infrastructure (VDI) system having a plurality of VDI server systems, the VDI system comprising at least a first and second hypervisor of a plurality of hypervisors running on at least a first and second server system respectively of the VDI system, the non-transitory computer-readable medium comprising code to:

make a first determination whether a load metric of a first hypervisor is within a first range of load metrics, the first range being above a first threshold and below a second threshold, wherein the first hypervisor is a hypervisor running on a first server system of the VDI server systems, and the load metric of the first hypervisor being due to the load of a plurality of virtual desktops run on the first hypervisor, wherein the first threshold represents a minimum load metric for the first hypervisor, and the second threshold represents a maximum load metric for the first hypervisor;

make a second determination whether an available capacity of a second hypervisor is able to run one or more of the virtual desktops of the first hypervisor by determining whether a load metric of the second hypervisor is within a second range of load metrics, the second range being above a third threshold and below a fourth threshold, wherein the second hypervisor is a hypervisor running on a second server system of the VDI server systems, wherein the second range of load metrics are within, but not equal to, the first range of load metrics, and wherein the third threshold represents a minimum load metric for the second hypervisor, and the fourth threshold represents a maximum load metric for the second hypervisor;

request the first hypervisor to migrate all of the virtual desktops of the first hypervisor running on the first server system to the second hypervisor running on the second server system when the load metric of the first hypervisor is below the first threshold, and the available capacity of the second hypervisor is determined to be able to run all of the virtual desktops of the first hypervisor, and after all of the virtual desktops of the first hypervisor have been migrated, power off the first hypervisor on the first server system;

when the load metric of the first hypervisor is above the second threshold and the load metric of the second hypervisor is within the second range of load metrics,

(i) determine a migrating number, wherein the migrating number of the virtual desktops of the first hypervisor are to be migrated from the first server system to reduce the load metric of the first hypervisor below the second threshold, and the migrating number is smaller than a total number of the virtual desktops of the first hypervisor;

(ii) determine a first number based on the available capacity of the second hypervisor, wherein the available capacity of the second hypervisor is determined to be able to run the first number of the virtual desktops of the first hypervisor, and the first number is smaller than the total number of the virtual desktops of the first hypervisor;

(iii) request the first hypervisor to migrate the migrating number of the virtual desktops of the first hypervisor running on the first server system to the second hypervisor running on the second server system when the first number is greater than or equal to the migrating number; and

(iv) request the first hypervisor to migrate the first number of the virtual desktops of the first hypervisor running on the first server system to the second hypervisor running on the second server system when the migrating number is greater than the first number, and after the first number of the virtual desktops of the first hypervisor have been migrated to the second hypervisor, power on a third server system of the VDI server systems, execute a third hypervisor on the third server system of the VDI server systems, and request the first hypervisor to migrate a second number of the virtual desktops of the first hypervisor running on the first server system to the third hypervisor, wherein the second number is the difference between the migrating number and the first number.

10. The non-transitory computer-readable medium of claim 9 , wherein the first threshold is at least one of a number threshold of virtual machines running on the first hypervisor, a load threshold of a processor of the first hypervisor, a usage threshold of a memory of the first hypervisor, and an activity threshold of a disk of the first hypervisor.

11. The non-transitory computer-readable medium of claim 10 , wherein the code is further configured to:

determine a count of read or write activities performed by the disk of the first hypervisor, wherein the first determination includes determining whether the count is above the activity threshold.

12. The non-transitory computer-readable medium of claim 10 , wherein the code is further configured to:

determine a respective load metric of each of the plurality of hypervisors running on the VDI server systems;

compare the load metric of the first hypervisor with the respective load metric of each of the other hypervisors of the plurality of hypervisors; and

select the first hypervisor to make the first determination based on a result of the comparison.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 22, 2020
From: AMERICAN MEGATRENDS INTERNATIONAL, LLC,
To: AMZETTA TECHNOLOGIES, LLC,
Reel/Frame 053007/0151 →
CHANGE OF NAME Recorded Jun 22, 2020
From: AMERICAN MEGATRENDS, INC.
To: AMERICAN MEGATRENDS INTERNATIONAL, LLC
Reel/Frame 053007/0233 →
CORP TO CORP ASSIGNMENT Recorded Apr 14, 2020
From: AMERICAN MEGATRENDS INTERNATIONAL, LLC
To: AMZETTA TECHNOLOGIES, LLC
Reel/Frame 052389/0156 →
ENTITY CONVERSION Recorded Oct 11, 2019
From: AMERICAN MEGATRENDS, INC.
To: AMERICAN MEGATRENDS INTERNATIONAL, LLC
Reel/Frame 050711/0434 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 24, 2017
From: INBARAJ, JOSEPRABU; RAMALINGAM, MUTHUKKUMARAN; KONDALSAMY, VENKATESAPERUMAL
To: AMERICAN MEGATRENDS, INC.
Reel/Frame 042494/0447 →