IP Library Granted Patent US 9,548,884
Granted Patent B2
US 9,548,884 · App. 13/709,094 · Granted Jan 17, 2017

Method and apparatus for providing a unified resource view of multiple virtual machines

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,548,884
App. No.
13/709,094
Granted
Jan 17, 2017
Kind
B2
Abstract

Various embodiments provide a method and apparatus for dynamically allocating resources to processes by using unified resources. In particular, a superVM allows a process from an application to utilize resources (e.g., CPU, memory, and storage) from other VMs. Advantageously, sharing resources of of VMs that are operating below capacity increases cost efficiencies and providing resources without the overhead of spawning new VMs to VMs requiring additional resources increases application performance. Moreover, legacy applications may run utilize resources from multiple VMs without modification.

Claims (68)

1. An apparatus for providing resource allocation to a plurality of processes, the apparatus comprising:

a data storage; and

a processor communicatively connected to the data storage, the processor being configured to:

determine a collection of unified resources available to a plurality of virtual machines, wherein the plurality of virtual machines are distributed across a plurality of racks and the collection of unified resources are distributed across at least two of the plurality of racks;

determine a resource requirement of a first process associated with a first virtual machine of the plurality of virtual machines, the first virtual machine being located in a first rack of the plurality of racks;

determine an inter-rack latency between the first rack and a second rack of the plurality of racks;

assign a first portion of a first resource of the collection of resources to the first process, the first resource being located in the first rack of the plurality of racks; and,

assign a second portion of the first resource to a second process of a second virtual machine of the plurality of virtual machines, the second virtual machine being located in the second rack of the plurality of racks;

wherein the first and second portions of the first resource are assigned based on the determined resource requirement and the determined inter-rack latency.

2. The apparatus of claim 1 , wherein the determination of the collection of unified resources is performed at an operating system level.

3. The apparatus of claim 1 , wherein the first resource of the collection of unified resources is a memory.

4. The apparatus of claim 3 , wherein the processor is further configured to:

determine a local memory utilization value; and

further base the assignment of the first or second portion of the first resource based on the local memory utilization value.

5. The apparatus of claim 1 , wherein the processor is further configured to:

determine a resource cost; and

further base the assignment of the first or second portion of the first resource based on the resource cost.

6. The apparatus of claim 5 , wherein the resource cost is based on a utilization cost of utilizing the first or second portion of the first resource.

7. The apparatus of claim 1 , wherein the processor is further configured to:

determine a unified network view; and

further base the assignment of the first or second portion of the first resource based on the unified network view.

8. The apparatus of claim 7 , wherein the determination of the unified network view comprises a network virtualization layer.

9. The apparatus of claim 1 , wherein the processor is further configured to:

determine a burst value; and

further base the assignment of the first or second portion of the first resource based on the burst value.

10. A system for providing resource allocation to a plurality of processes, the system comprising:

a plurality of virtual machines; and

a superVM controller, the superVM controller comprising a processor communicatively connected to a data storage and being configured to:

determine a collection of unified resources available to a plurality of virtual machines, wherein the plurality of virtual machines are distributed across a plurality of racks and the collection of unified resources are distributed across at least two of the plurality of racks;

determine a resource requirement of a first process associated with a first virtual machine of the plurality of virtual machines, the first virtual machine being located in a first rack of the plurality of racks;

determine an inter-rack latency between the first rack and a second rack of the plurality of racks;

assign a first portion of a first resource of the collection of unified resources to the first process, the first resource being located in the first rack of the plurality of racks; and,

assign a second portion of the first resource to a second process of a second virtual machine of the plurality of virtual machines, the second virtual machine being located in the second rack of the plurality of racks;

wherein the first and second portions of the first resource are assigned based on the determined resource requirement and the determined inter-rack latency.

11. The system of claim 10 , wherein each of a second plurality of the virtual machines are configured to:

determine a resource utilization view; and

provide the resource utilization view to the superVM controller;

wherein the determination of the collection of unified resources available is based on the resource utilization view.

12. A method for providing resource allocation to a plurality of processes, the method comprising:

at a processor communicatively connected to a data storage, determining a collection of unified resources available to a plurality of virtual machines, wherein the plurality of virtual machines are distributed across a plurality of racks and the collection of unified resources are distributed across at least two of the plurality of racks;

determining, by the processor in cooperation with the data storage, a resource requirement of a first process associated with a first virtual machine of the plurality of virtual machines, the first virtual machine being located in a first rack of the plurality of racks;

determining, by the processor in cooperation with the data storage, an inter-rack latency between the first rack and a second rack of the plurality of racks;

assigning, by the processor in cooperation with the data storage, a first portion of a first resource of the collection of unified resources to the first process, the first resource being located in the first rack of the plurality of racks; and,

assigning a second portion of the first resource to a second process of a second virtual machine of the plurality of virtual machines, the second virtual machine being located in the second rack of the plurality of racks;

wherein the first and second portions of the first resource are assigned based on the determined resource requirement and the determined inter-rack latency.

13. The method of claim 12 , wherein the method further comprises:

receiving, by the processor in cooperation with the data storage, a resource utilization view from the second virtual machine; and

wherein the determination of the collection of unified resources available is based on the resource utilization view.

14. The method of claim 13 , wherein the resource utilization view comprises at least one of a network latency value and a network bandwidth value.

15. The method of claim 12 , wherein the method further comprises:

transmitting, by the processor in cooperation with the data storage, a placement directive to a cloud orchestration system;

wherein the placement directive comprises at least one of virtual machine allocation, virtual machine removal or virtual machine re-assignment.

16. The method of claim 12 , wherein the method further comprises:

providing, by the processor in cooperation with the data storage, a network virtualization layer; and

delivering, by the processor in cooperation with the data storage, a plurality of packets to the plurality of virtual machines based on the network virtualization layer.

17. The method of claim 16 , wherein the step of delivering comprises load balancing.

18. The method of claim 12 , wherein the method further comprises:

determining, by the processor in cooperation with the data storage, a unified network view; and

further basing the assigning of the first or second portion of the first resource based on the unified network view.

19. A non-transitory computer-readable storage medium storing instructions which, when executed by a computer, cause the computer to perform a method, the method comprising:

determining a collection of unified resources available to a plurality of virtual machines, wherein the plurality of virtual machines are distributed across a plurality of racks and the collection of unified resources are distributed across at least two of the plurality of racks;

determining a resource requirement of a first process associated with a first virtual machine, the first virtual machine being located in a first rack of the plurality of racks;

determining an inter-rack latency between the first rack and a second rack of the plurality or racks;

assigning a first portion of a first resource of the collection of unified resources to the first process, the first resource being located in the first rack of the plurality of racks; and,

assigning a second portion of the first resource to a second process of a second virtual machine of the plurality of virtual machines, the second virtual machine being located in the second rack of the plurality of racks;

wherein the first and second portions of the first resource are assigned based on the determined resource requirement and the determined inter-rack latency.

20. The apparatus of claim 1 , wherein the processor is further configured to remove the assignment of the first portion of the first resource assigned to the first process of the first virtual machine while the second portion of the first resource remains assigned to the second process of the second virtual machine.

21. The apparatus of claim 3 , wherein processor is further configured to assign a remote memory to the first process of the first virtual machine based on the resource requirement of the first process.

Assignments (5)
RELEASE OF SECURITY INTEREST Recorded Oct 9, 2014
From: CREDIT SUISSE AG
To: ALCATEL-LUCENT USA INC.
Reel/Frame 033949/0016 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 24, 2014
From: ALCATEL-LUCENT INDIA LIMITED
To: ALCATEL LUCENT
Reel/Frame 032034/0605 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE NAME AND ADDRESS ON THE COVER SHEET PREVIOUSLY RECORDED ON REEL 031705 FRAME 0883. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT AND AGREEMENT. Recorded Dec 12, 2013
From: ALICHERRY, MANSOOR A.; ANAND, ASHOK; PREETH CHANDRABOSE, SHOBAN
To: ALCATEL-LUCENT INDIA LIMITED
Reel/Frame 031804/0971 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 3, 2013
From: ALICHERRY, MANSOOR A.; ANAND, ASHOK; PREETH CHANDRABOSE, SHOBAN
To: ALCATEL-LUCENT USA INC.
Reel/Frame 031705/0883 →
SECURITY INTEREST Recorded Mar 7, 2013
From: ALCATEL-LUCENT USA INC.
To: CREDIT SUISSE AG
Reel/Frame 030510/0627 →