IP Library Granted Patent US 8,364,802
Granted Patent B1
US 8,364,802 · App. 12/421,598 · Granted Jan 29, 2013

System and method for monitoring a grid of hosting resources in order to facilitate management of the hosting resources

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 8,364,802
App. No.
12/421,598
Granted
Jan 29, 2013
Kind
B1
Abstract

Some embodiments provide a method. The method interfaces with several nodes of a hosting system. Each node includes resources for hosting several virtual machines. The method collects statistics for facilitating deployment of the virtual machines across the several resource nodes from the resource nodes. The method determines a particular node from the several nodes with sufficient available resources to host a configuration for a virtual machine based on the collected statistics. The method deploys the configuration for the virtual machine to the particular node for hosting on the particular node.

Claims (46)

1. For a hypervisor management module that interfaces with a plurality of resource nodes of a hosting system, each of the resource nodes comprising resources for hosting a plurality of virtual machines, a method for deploying virtual machines of a plurality of users on the hosting system, the method comprising:

from a plurality of hypervisors that each operate to virtualize the resources of a resource node, collecting a first set of statistics of the resource nodes on which the hypervisors operate, wherein the plurality of resource nodes of the hosting system comprise at least two different types of hypervisors;

from a plurality of utility management modules that each operate as a virtual machine on a resource node, collecting a second set of statistics of the resource nodes on which the utility management modules operate, wherein each utility management module is a virtual machine operating on the resources of a particular resource node to deploy and configure user-specified virtual machines on the particular resource node, wherein the hypervisor management module collects statistics from both the hypervisor and the utility management module of at least one resource node;

based on the first and second sets of collected statistics, generating a mapping of resource usage and resources available on the plurality of resource nodes;

receiving a modification to a particular configuration of a particular virtual machine hosted by a first node of the plurality of resource nodes, wherein the first node does not have sufficient available resources to host the particular modified virtual machine;

based on the generated mapping, determining a different node from the plurality of resource nodes to host the modified configuration for the virtual machine by (i) identifying a hypervisor operating on the first node and (ii) identifying a second node having sufficient available resources to host the particular modified virtual machine and having the same type of hypervisor as the first node; and

migrating the particular configuration from the first node to the second node of the plurality of resource nodes by installing the modified configuration to the second node.

2. The method of claim 1 , wherein the sets of statistics comprise usage statistics for the resources of the plurality of resource nodes, the usage statistics comprising usage of at least one of processing resources, memory, disk space, network input/output bandwidth, and software performance of the plurality of resource nodes.

3. The method of claim 1 , wherein the sets of statistics comprise data regarding a number of virtual machines hosted on the resource nodes and the configurations of the virtual machines deployed to the resource nodes.

4. The method of claim 1 , wherein the hypervisor of a particular node is for facilitating access between a plurality of virtual machines of the particular node and resources of the particular node.

5. The method of claim 4 further comprising normalizing the statistics collected from different hypervisors to produce uniformly formatted statistics by converting different data units of each of the statistics from the different hypervisors into a single data unit.

6. The method of claim 1 further comprising directly interfacing with hardware resources of at least one node and collecting a third set of statistics directly from the hardware resources.

7. The method of claim 1 , wherein migrating the particular configuration comprises allocating a set of resources from the second node to host the modified configuration of the particular virtual machine and deleting the particular virtual machine from the first node.

8. The method of claim 1 , wherein collecting the sets of statistics for facilitating deployment comprises determining availability of resources for each of the nodes in the plurality of resource nodes.

9. The method of claim 1 further comprising:

updating the collected statistics when the modified configuration of the virtual machine is migrated; and

based on the updated statistics, generating an updated mapping of resource usage and resources available on the plurality of nodes.

10. The method of claim 1 , wherein each of a plurality of the resource nodes is a physical computer comprising a set of processors and memory that are shared between the virtual machines hosted on the resource node.

11. A hosting system for hosting a plurality of virtual machine configurations for a plurality of users, the hosting system comprising:

a plurality of nodes, each particular node comprising physical resources for hosting at least one user-specified virtual machine; and

a hypervisor management module for managing the deployment of user-specified virtual machines on the plurality of nodes of the hosting system, the hypervisor management module comprising:

a statistics collector for (i) collecting, from a plurality of hypervisors that each operate to virtualize the resources of a node, a first set of statistics of the nodes on which the hypervisors operate, wherein the plurality of nodes of the hosting system comprise at least two different types of hypervisors, and (ii) collecting, from a plurality of utility management modules that each operate as a virtual machine on a node, a second set of statistics of the nodes on which the utility management modules operate, wherein each utility management module is a virtual machine operating on the resources of a particular node to deploy and configure user-specified virtual machines on the particular node, wherein the statistics collector collects statistics from both the hypervisor and the utility management module of at least one node;

a mapping generator for generating a mapping of resource usage and resources available on the plurality of nodes based on the first and second sets of collected statistics;

a deployment scheduler for (i) receiving a modification to a particular configuration of a particular virtual machine hosted by a first node of the plurality of nodes, wherein the first node does not have sufficient available resources to host the particular modified virtual machine, and (ii) determining, based on the generated mapping, a different node from the plurality of nodes to host the modified configuration for the virtual machine by identifying a hypervisor operating on the first node and identifying a second node having sufficient available resources to host the particular modified virtual machine and having the same type of hypervisor as the first node; and

a deployment controller for managing the migration of the particular configuration from the first node to the second node of the plurality of nodes by installing the modified configuration to the second node.

12. The hosting system of claim 11 , wherein the plurality of nodes comprises a plurality of server computer systems, each particular server computer system comprising a set of processing resources, memory, and disk storage allocated to a plurality of virtual machines that are hosted by the particular server computer system.

13. The hosting system of claim 11 , wherein the hypervisor management module further comprises a resource allocation module for allocating resources to the virtual machine configurations.

14. The hosting system of claim 11 further comprising a front end server for providing a graphical user interface through which (i) a portion of the statistics are presented to the user and (ii) the user specifies the modification to the virtual machine configuration.

15. A non-transitory computer readable storage medium storing a hypervisor management module that interfaces with a plurality of nodes of a hosting system, the nodes comprising resources for hosting virtual machines of a plurality of different users, the hypervisor management module for execution by at least one processor of the hosting system, the hypervisor management module comprising:

a set of instructions for collecting, from a plurality of hypervisors that each operate to virtualize the resources of a node, a first set of statistics of the nodes on which the hypervisors operate, wherein the plurality of nodes of the hosting system comprise at least two different types of hypervisors;

a set of instructions for collecting, from a plurality of utility management modules that each operate as a virtual machine on a node, a second set of statistics of the nodes on which the utility management modules operate, wherein each utility management module is a virtual machine operating on the resources of a particular node to deploy and configure user-specified virtual machines on the particular node, wherein the hypervisor management module collects statistics from both the hypervisor and the utility management module of at least one node;

a set of instructions for generating, based on the first and second sets of collected statistics, a mapping of resource usage and resources available on the plurality of nodes;

a set of instructions for receiving a modification to a particular configuration of a particular virtual machine hosted by the first node of the plurality of nodes, wherein the first node does not have sufficient available resources to host the particular modified virtual machine;

a set of instructions for determining, based on the generated mapping, a different node from the plurality of nodes to host the modified configuration for the virtual machine by (i) identifying a hypervisor operating on the first node and (ii) identifying a second node having sufficient available resources to host the particular modified virtual machine and having the same type of hypervisor as the first node; and

a set of instructions for migrating the particular configuration from the first node to the second node of the plurality of resource nodes by installing the modified configuration to the second node.

16. A method for providing a hypervisor management module for deploying configurations of virtual machines on a hosting system comprising a plurality of nodes, each node comprising resources for hosting a plurality of virtual machines and a hypervisor for providing access to the resources for the virtual machines hosted on the node, the method comprising:

providing a statistics collector for (i) collecting, from the hypervisors of the plurality of nodes, a first set of statistics of the nodes on which the hypervisors operate, wherein the plurality of nodes of the hosting system comprise at least two different types of hypervisors, and (ii) collecting, from a plurality of utility management modules that each operate as a virtual machine on a node, a second set of statistics of the nodes on which the utility management modules operate, wherein each utility management module is a virtual machine operating on the resources of a particular node to deploy and configure user-specified virtual machines on the particular node, wherein the statistics collector collects statistics from both the hypervisor and the utility management module of at least one node;

providing a mapping generator for generating a mapping of resource usage and resources available on the plurality of nodes based on the first and second sets of collected statistics;

providing a deployment scheduler for (i) receiving a modification to a particular configuration of a particular virtual machine hosted by a first node of the plurality of nodes, wherein the first node does not have sufficient available resources to host the particular modified virtual machine, and (ii) determining, based on the generated mapping, a different node from the plurality of nodes to host the modified configuration of the virtual machine by identifying a hypervisor operating on the first node and identifying a second node having sufficient available resources to host the particular modified virtual machine and having the same type of hypervisor as the first node; and

providing a deployment controller for managing the migration of the particular configuration from the first node to the second node of the plurality of nodes by installing the modified configuration to the second node.

17. The method of claim 16 further comprising providing a normalization engine for normalizing the collected statistics from the hypervisors to produce uniformly formatted statistics.

18. The method of claim 16 further comprising:

providing a database for storing message translations between a normalized set of messages and messages for the different types of hypervisors of the plurality of nodes; and

providing one or more deployment managers corresponding to different types of hypervisors, the one or more deployment managers for (i) using the database of stored messages to translate normalized control messages to be executed by corresponding hypervisors in order to deploy virtual machines on the nodes and (ii) submitting the translated control messages to the hypervisors,

wherein the deployment controller is further for (i) identifying a deployment manager capable of translating a particular control message and (ii) sending the particular control message to the identified deployment manager to provide instructions to a hypervisor corresponding to the identified deployment manager in order to deploy virtual machines on the nodes.

19. The method of claim 18 further comprising providing a message processing module for (i) receiving, from users through a front-end user interface, messages specifying logical assignments of virtual machine configurations and (ii) passing the messages specifying the logical assignments of the virtual machine configurations to the deployment scheduler in order to deploy virtual machines on the nodes.

Assignments (13)
RELEASE OF SECURITY INTEREST Recorded Aug 30, 2019
From: CITIBANK, N.A.
To: GOGRID, LLC; DATAPIPE, INC.
Reel/Frame 050224/0321 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 3, 2019
From: GOGRID, LLC
To: OPEN INVENTION NETWORK LLC
Reel/Frame 047895/0811 →
SECURITY AGREEMENT Recorded Dec 15, 2017
From: GOGRID, LLC
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 044895/0784 →
RELEASE OF SECURITY INTEREST Recorded Nov 16, 2017
From: TORONTO DOMINION (TEXAS) LLC (SUCCESSOR BY ASSIGNMENT TO MORGAN STANLEY SENIOR FUNDING, INC.)
To: GOGRID, LLC, AS GRANTOR
Reel/Frame 044150/0497 →
RELEASE OF SECURITY INTEREST Recorded Nov 16, 2017
From: TORONTO DOMINION (TEXAS) LLC (SUCCESSOR BY ASSIGNMENT TO MORGAN STANLEY SENIOR FUNDING, INC.)
To: GOGRID, LLC, AS GRANTOR
Reel/Frame 044150/0514 →
RELEASE OF PATENT SECURITY INTEREST RECORDED AT REEL 030602/FRAME 0657 Recorded Jan 22, 2015
From: PARTNERS FOR GROWTH III, L.P.
To: GOGRID, LLC
Reel/Frame 034793/0396 →
RELEASE OF PATENT SECURITY INTEREST RECORDED AT REEL 032970/FRAME 0944 Recorded Jan 22, 2015
From: GOGRID INVESTORS LLC
To: GOGRID, LLC
Reel/Frame 034793/0438 →
PATENT SECURITY AGREEMENT (FIRST LIEN) Recorded Jan 22, 2015
From: GOGRID, LLC
To: TORONTO DOMINION (TEXAS) LLC, SUCCESSOR BY ASSIGNMENT TO MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 034793/0448 →
PATENT SECURITY AGREEMENT (SECOND LIEN) Recorded Jan 22, 2015
From: GOGRID, LLC
To: TORONTO DOMINION (TEXAS) LLC, SUCCESSOR BY ASSIGNMENT TO MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 034793/0483 →
SECURITY INTEREST Recorded May 20, 2014
From: GOGRID, LLC
To: GOGRID INVESTORS LLC
Reel/Frame 032970/0909 →
SECURITY AGREEMENT Recorded Jun 13, 2013
From: GOGRID, LLC
To: PARTNERS FOR GROWTH III, L.P.
Reel/Frame 030602/0657 →
CHANGE OF NAME Recorded May 17, 2011
From: SERVEPATH, LLC
To: GOGRID, LLC
Reel/Frame 026297/0013 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 6, 2009
From: KEAGY, JOHN MARTIN; CARR, JEFFERY; LAPPAS, PAUL
To: SERVEPATH, LLC
Reel/Frame 023334/0394 →