IP Library Granted Patent US 9,032,069
Granted Patent B2
US 9,032,069 · App. 13/299,319 · Granted May 12, 2015

Virtualization layer in a virtual computing infrastructure

Inventors: Willem Robert Van Biljon (Cape Town, ZA); Christopher Conway Pinkham (Los Gatos, CA); Russell Andrew Cloran (Cape Town, ZA); Michael Carl Gorven (Cape Town, ZA); Alexandre Hardy (Cape Town, ZA); Brynmor K. B. Divey (Cape Town, ZA); Quinton Robin Hoole (Cape Town, ZA); Girish Kalele (Sunnyvale, CA)
Assignee: Oracle International Corporation
G06Q30/04H04L29/06H04L41/0213G06Q40/02G06Q40/10G06Q40/00G06F21/6218G06F2221/2141G06F2221/2145
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,032,069
App. No.
13/299,319
Granted
May 12, 2015
Kind
B2
Abstract

A cloud computing environment having a plurality of computing nodes is described. The plurality of computing nodes may be organized into a plurality of clusters, each of the plurality of clusters including a cluster controller. A virtual computing environment is created on each of the plurality of computing nodes. Communication with the virtual computing environment is enabled. An authorization to service a launch plan is received from a user. The launch plan includes at least one instance to launch. Bandwidth information is requested from each of the cluster controllers of the plurality of clusters. A score is computed for each of the plurality of clusters that responded to the requested bandwidth information. The launch plan is assigned to a cluster from the plurality of clusters based on the computed scores.

Claims (37)

1. A cloud computing system, comprising:

a plurality of computing nodes organized into a plurality of clusters, each of the plurality of clusters including a cluster controller;

a virtualization layer configured to create a virtual computing environment on each of the plurality of computing nodes;

an infrastructure controller configured to operate on each of the plurality of computing nodes and to communicate with the virtualization layer, the infrastructure controller being further configured to receive an authorization to service a launch plan from a user, the launch plan including at least two instances to launch, and the launch plan indicating whether the instances must be launched within separate clusters;

a site controller configured to receive instructions from the infrastructure controller in response to the authorization, the site controller being further configured to:

request bandwidth information from each of the cluster controllers of the plurality of clusters,

compute a score for each of the plurality of clusters that responded to the requested bandwidth information, and

assign the launch plan to one or more clusters from the plurality of clusters based on the computed scores and based on whether the launch plan indicates that the instances must be launched within separate clusters.

2. The system of claim 1 , wherein the site controller is further configured to monitor the current status of each of nodes in each of the plurality of clusters.

3. The system of claim 1 , wherein the bandwidth information includes information about the number of CPUs and amount of RAM needed; and wherein the scores are calculated based on an attempt to assign the launch plan to a smallest quantity of nodes that can collectively execute the instances specified in the launch plan concurrently with other instances already executing on those nodes.

4. The system of claim 1 , wherein the score computed for each of the plurality of clusters is computed by a site controller that is executed from executable code that is included within each of the cluster controllers.

5. A method of communicating with a virtualization layer in a cloud computing environment having a plurality of computing nodes, comprising:

organizing the plurality of computing nodes into a plurality of clusters, each of the plurality of clusters including a cluster controller;

creating a virtual computing environment on each of the plurality of computing nodes;

enabling communication with the virtual computing environment;

receiving an authorization to service a launch plan from a user, the launch plan including at least two instances to launch and the launch plan indicating whether the instances must be launched within separate clusters;

requesting bandwidth information from each of the cluster controllers of the plurality of clusters;

computing a score for each of the plurality of clusters that responded to the requested bandwidth information, and

assigning the launch plan to one or more clusters from the plurality of clusters based on the computed scores and based on whether the launch plan indicates that the instances must be launched within separate clusters.

6. The method of claim 5 , further comprising monitoring the current status of each of nodes in each of the plurality of clusters.

7. The method of claim 5 , wherein the bandwidth information includes information the number of CPUs and amount of RAM needed; and wherein the scores are calculated based on an attempt to assign the launch plan to a smallest quantity of nodes that can collectively execute the instances specified in the launch plan concurrently with other instances already executing on those nodes.

8. The method of claim 5 , wherein the score computed for each of the plurality of clusters is computed by a site controller that is executed from executable code that is included within each of the cluster controllers.

9. The method of claim 5 , wherein the virtual computing environment is the virtualization layer.

10. The method of claim 5 , further comprising:

receiving a bid from each cluster of the plurality of clusters; and

after assigning the launch plan to the one or more clusters, instructing cluster controllers for each particular cluster not within the one or more clusters to release resources previously reserved within that particular cluster to service the launch plan.

11. The non-transitory computer-readable storage medium of claim 10 , wherein the operations further comprise monitoring the current status of each of nodes in each of the plurality of clusters.

12. The non-transitory computer-readable storage medium of claim 10 , wherein the bandwidth information includes information the number of CPUs and amount of RAM needed; and wherein the scores are calculated based on an attempt to assign the launch plan to a smallest quantity of nodes that can collectively execute the instances specified in the launch plan concurrently with other instances already executing on those nodes.

13. The non-transitory computer-readable storage medium of claim 10 , wherein the score computed for each of the plurality of clusters is computed by a site controller that is executed from executable code that is included within each of the cluster controllers.

14. A non-transitory computer-readable storage medium storing instructions which, when executed by one or more processors, cause the one or more processors to perform operations comprising:

organizing a plurality of computing nodes into a plurality of clusters, each of the plurality of clusters including a cluster controller;

creating a virtual computing environment on each of the plurality of computing nodes;

enabling communication with a virtual computing environment;

receiving an authorization to service a launch plan from a user, the launch plan including at least two instances to launch and the launch plan indicating whether the instances must be launched within separate clusters;

requesting bandwidth information from each of the cluster controllers of the plurality of clusters;

computing a score for each of the plurality of clusters that responded to the requested bandwidth information, and

assigning the launch plan to one or more clusters from the plurality of clusters based on the computed scores and based on whether the launch plan indicates that the instances must be launched within separate clusters.

Assignments (2)
MERGER Recorded May 3, 2013
From: NIMBULA, INC.
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 030350/0031 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 30, 2011
From: VAN BILJON, WILLEM ROBERT; PINKHAM, CHRISTOPHER CONWAY; CLORAN, RUSSELL ANDREW; GORVEN, MICHAEL CARL; HARDY, ALEXANDRE; DIVEY, BRYNMOR K.B.; HOOLE, QUINTON ROBIN; KALELE, GIRISH
To: NIMBULA, INC.
Reel/Frame 027465/0875 →
Continuity (3)
Continuation PCTUS2011040590 · Jun 15, 2011
Provisional Application 61355078 · Jun 15, 2010
Related Publication 20120117229A1 · May 10, 2012