IP Library Granted Patent US 9,852,011
Granted Patent B1
US 9,852,011 · App. 14/539,973 · Granted Dec 26, 2017

Managing resources in virtualization systems

Inventors: Yechiam Yemini (Alpine, NJ); Shmuel Kliger (Chappaqua, NY); Danilo Florissi (Briarcliff Manor, NY); Shai Benjamin (Mevaseret Zion, IL); Yuri Rabover (San Carlos, CA); Mor Cohen (New York, NY); Enlin Xu (New York, NY); Endre Sara (Briarcliff Manor, NY)
Assignee: TURBONOMIC, INC.
G06F9/5083G06F9/455H04L67/10H04L67/12G06F2209/5022
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 9,852,011
App. No.
14/539,973
Granted
Dec 26, 2017
Kind
B1
Abstract

Methods, systems, and apparatus, including computer program products, for managing resources in virtualization systems, including multi-cloud systems. The use of supply chain economics alone and in combination with other techniques offers a unified platform to integrate, optimize or improve, and automate resource management in a virtualization system. These techniques may be used to monitor and control the delivery of service level agreements and software licenses. They may also be used to monitor and control contention of computing resources in a virtualization system, and to suspend or terminate computing resources.

Claims (45)

1. A computer-implemented method, comprising:

allocating one or more computer resources to a plurality of applications, each application running on one or more virtual machines in a virtualization system, wherein each virtual machine is a software implementation of a computer that runs at least one guest operating system and executes one or more programs or applications on the guest operating system, and wherein the plurality of applications operate as components of a composite application or a cluster of related applications;

determining, by an application element manager running on a data processor in the virtualization system, a target combined input/output (I/O) latency level for all the plurality of applications;

determining, by the application element manager, an actual combined input/output (I/O) latency level for all the plurality of applications, wherein the determining an actual combined input/out (I/O) latency level includes determining a respective input/output (I/O) latency level for each of the plurality of applications and combining the respective levels;

comparing the actual and target combined input/output (I/O) latency levels for all the plurality of applications; and

automatically modifying the allocation of one or more computer resources to the plurality of applications depending on whether the actual combined input/output (I/O) latency level is below or above the target combined input/output (I/O) latency level.

2. The computer-implemented method of claim 1 , wherein the actual combined input/output (I/O) latency level for all the plurality of applications is based at least in part on an input/output (I/O) pathway delay associated with one or more of the plurality of applications.

3. The computer-implemented method of claim 2 , wherein the input/output (I/O) pathway is a storage input/output (I/O) pathway.

4. The computer-implemented method of claim 2 , wherein the input/output (I/O) pathway is a network input/output (I/O) pathway.

5. The computer-implemented method of claim 1 , wherein the actual combined input/output (I/O) latency level for all the plurality of applications is based at least in part on the number of interfaces traversed by an input/output (I/O) pathway associated with one or more of the plurality of applications.

6. The computer-implemented method of claim 1 , wherein the target combined input/output (I/O) latency level for all the plurality of applications is based at least in part on the number of interfaces traversed by an input/output (I/O) pathway associated with one or more of the plurality of applications.

7. The computer-implemented method of claim 5 , wherein the input/output (I/O) pathway is a storage input/output (I/O) pathway.

8. The computer-implemented method of claim 5 , wherein the input/output (I/O) pathway is a network input/output (I/O) pathway.

9. The computer-implemented method of claim 1 , further comprising repeating the second determining step and the comparing and automatically modifying steps at least once before the operation of the plurality of applications in the virtualization system is suspended or terminated.

10. The computer-implemented method of claim 1 , wherein the automatically modifying the allocation of computer resources to the plurality of applications is based at least in part on a stochastic approximation algorithm.

11. The computer-implemented method of claim 1 , wherein the actual combined input/output (I/O) latency level for the plurality of applications is correlated to an amount of packet loss along an input/output (I/O) pathway associated with one or more of the plurality of applications.

12. The computer-implemented method of claim 11 , wherein the input/output (I/O) pathway is a storage input/output (I/O) pathway.

13. The computer-implemented method of claim 11 , wherein the input/output (I/O) pathway is a network input/output (I/O) pathway.

14. A computer-implemented method, comprising:

allocating one or more computer resources to a plurality of applications running on one of a plurality of virtual machines in a virtualization system, wherein each virtual machine is a software implementation of a computer that runs at least one guest operating system and executes one or more programs or applications on the guest operating system, and wherein the plurality of virtual machines operate as components of a composite virtual machine or a cluster of related virtual machines;

determining, by an application element manager running on a data processor in the virtualization system, a target input/output (I/O) latency level for the one of a plurality of virtual machines;

determining, by the element manager running, an actual input/output (I/O) latency level associated with the one of a plurality of virtual machines, wherein the determining an actual input/out (I/O) latency level includes determining a respective input/output (I/O) latency level for each of the plurality of applications running on the one of a plurality of virtual machines and combining the respective levels;

comparing the actual and target input/output (I/O) latency levels; and

automatically modifying the allocation of one or more computer resources to the plurality of applications depending on whether the actual input/output (I/O) latency level is below or above the target input/output (I/O) latency level.

15. The computer-implemented method of claim 14 , wherein the actual input/output (I/O) latency level associated with the one of a plurality of virtual machines is based at least in part on an input/output (I/O) pathway delay associated with one or more of the plurality of applications running on the one of a plurality of virtual machines.

16. The computer-implemented method of claim 1 , wherein each of the plurality of applications is running on the same virtual machine in the virtualization system.

17. The computer-implemented method of claim 1 , wherein the plurality of applications form a virtual point of delivery (vPOD) of applications.

18. The computer-implemented method of claim 14 , wherein each of the plurality of applications is running on the same virtual machine in the virtualization system.

19. The computer-implemented method of claim 14 , wherein the plurality of applications operate as components of a composite application or a cluster of related applications.

20. The computer-implemented method of claim 14 , wherein the plurality of applications form a virtual point of delivery (vPOD) of applications.

21. The computer-implemented method of claim 14 , wherein the plurality of virtual machines form a virtual point of delivery (vPOD) of virtual machines.

22. A computer system for managing access to computer resources, comprising:

instructions stored on a non-transitory computer readable medium for causing a data processing apparatus to execute resource management operations comprising:

allocating one or more computer resources to a plurality of applications, each application running on one or more virtual machines in a virtualization system, wherein each virtual machine is a software implementation of a computer that runs at least one guest operating system and executes one or more programs or applications on the guest operating system, and wherein the plurality of applications operate as components of a composite application or a cluster of related applications;

determining, by an application element manager running on a data processor in the virtualization system, a target combined input/output (I/O) latency level for all the plurality of applications;

determining, by the application element manager, an actual combined input/output (I/O) latency level for all the plurality of applications, wherein the determining an actual combined input/out (I/O) latency level includes determining a respective input/output (I/O) latency level for each of the plurality of applications and combining the respective levels;

comparing the actual and target combined input/output (I/O) latency levels for all the plurality of applications; and

automatically modifying the allocation of one or more computer resources to the plurality of applications depending on whether the actual combined input/output (I/O) latency level is below or above the target combined input/output (I/O) latency level.

23. A computer system for managing access to computer resources, comprising:

instructions stored on a non-transitory computer readable medium for causing a data processing apparatus to execute resource management operations comprising:

allocating one or more computer resources to a plurality of applications running on one of a plurality of virtual machines in a virtualization system, wherein each virtual machine is a software implementation of a computer that runs at least one guest operating system and executes one or more programs or applications on the guest operating system, and wherein the plurality of virtual machines operate as components of a composite virtual machine or a cluster of related virtual machines;

determining, by an application element manager running on a data processor in the virtualization system, a target input/output (I/O) latency level for the one of a plurality of virtual machines;

determining, by the element manager running, an actual input/output (I/O) latency level associated with the one of a plurality of virtual machines, wherein the determining an actual input/out (I/O) latency level includes determining a respective input/output (I/O) latency level for each of the plurality of applications running on the one of a plurality of virtual machines and combining the respective levels;

comparing the actual and target input/output (I/O) latency levels; and

automatically modifying the allocation of one or more computer resources to the plurality of applications depending on whether the actual input/output (I/O) latency level is below or above the target input/output (I/O) latency level.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 21, 2022
From: TURBONOMIC, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 062202/0030 →
RELEASE OF SECURITY INTEREST Recorded Jul 5, 2022
From: SILICON VALLEY BANK
To: TURBONOMIC, INC.
Reel/Frame 060396/0411 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Aug 23, 2019
From: TURBONOMIC, INC.
To: SILICON VALLEY BANK
Reel/Frame 050156/0150 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Aug 23, 2019
From: TURBONOMIC, INC.
To: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT
Reel/Frame 050156/0161 →
CHANGE OF NAME Recorded Sep 22, 2016
From: VMTURBO, INC.
To: TURBONOMIC, INC.
Reel/Frame 040114/0091 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 27, 2015
From: YEMINI, YECHIAM; KLIGER, SHMUEL; FLORISSI, DANILO; BENJAMIN, SHAI; RABOVER, YURI; COHEN, MOR; XU, ENLIN; SARA, ENDRE
To: VMTURBO, INC.
Reel/Frame 035503/0214 →
Continuity (4)
Continuation In Part 12492890 · Jun 26, 2009
Provisional Application 62077898 · Nov 10, 2014
Provisional Application 62077852 · Nov 10, 2014
Provisional Application 62077860 · Nov 10, 2014