IP Library Granted Patent US 8,095,662
Granted Patent B1
US 8,095,662 · App. 12/185,774 · Granted Jan 10, 2012

Automated scheduling of virtual machines across hosting servers

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,095,662
App. No.
12/185,774
Granted
Jan 10, 2012
Kind
B1
Abstract

Some embodiments provide a method and system for automatedly scheduling virtual machines across several hosting servers of a hosting service provider. Some embodiments perform the automated scheduling by receiving a server configuration that includes constraint data. In some embodiments, the constraint data includes a specified amount of hosting resources needed to implement the server configuration. Based on the constraint data, a scheduling module in the hosting environment determines an optimal distribution of the server configuration across a set of hosting resources that implement the server configuration based on the constraint data. To determine the optimal distribution, some embodiments compute a set of scores for quantifying the specified set of hosting resources required for hosting the server configuration. From the optimal distribution, some embodiments perform a mapping of the server configuration to a particular set of hosting resources of several hosting resources using the computed set of scores.

Claims (40)

1. In a system that includes a plurality of physical computers for deploying a plurality of virtual server configurations, a method comprising:

receiving a particular virtual server configuration that specifies a set of virtual servers;

from the plurality of physical computers, identifying a set of physical computers that each has an amount of available resources sufficient to implement at least one virtual server in the set of virtual servers;

for each physical computer in the identified set of physical computers, determining a score based on (1) a quantity of resources on the physical computer and (2) a ratio of networking intensive components to storage intensive components deployed on the physical computer;

based on the set of scores for the identified set of physical computers, generating, at a particular computer, a map that associates at least one physical computer in a subset of the identified set of physical computers with each virtual server in the set of virtual servers; and

based on the map, deploying the particular virtual server configuration.

2. The method of claim 1 , wherein determining the score for each physical computer in the identified set of physical computers is further based on an amount of unallocated resources available on the physical computer.

3. The method of claim 1 , wherein determining the score for each physical computer in the identified set of physical computers is further based on a quality of resources on the physical computer.

4. The method of claim 1 , wherein the map associates a different physical computer in the subset of the identified set of physical computers to each virtual server in the set of virtual servers.

5. The method of claim 1 , wherein the subset of the identified set of physical computers is a single physical computer.

6. The method of claim 1 , wherein identifying the set of physical computers comprises determining that each physical computer in the set of physical computers has an amount of available processor cycles.

7. The method of claim 1 , wherein identifying the set of physical computers comprises determining that each physical computer in the set of physical computers has an amount of available disk storage.

8. The method of claim 1 , wherein identifying the set of physical computers comprises determining that each physical computer in the set of physical computers has an amount of available network bandwidth.

9. The method of claim 1 , wherein the score for each physical computer in the identified set of physical computers is a first score, wherein the particular virtual server configuration further specifies a set of customer behavior parameters, the method further comprising determining a second score for each physical computer in the identified set of physical computers based on the set of customer behavior parameters, wherein generating map is further based on the set of second scores for the identified set of physical computers.

10. The method of claim 9 , wherein the set of customer behavior parameters includes a parameter that specifies a first virtual server in the set of virtual servers is to experience heavy traffic loads and a second virtual server in the set of virtual servers is to experience light traffic loads.

11. The method of claim 9 further comprising determining a third score for each physical computer in the identified set of physical computers based on volatility and risk of the particular virtual server configuration, wherein generating the map is further based on the set of third scores for the identified set of physical computers.

12. The method of claim 11 further comprising determining a fourth score for each physical computer in the identified set of physical computers based on internal parameters, wherein generating the map is further based on the set of fourth scores for the identified set of physical computers.

13. The method of claim 12 , wherein the particular virtual server configuration further specifies an operating system for at least one of the virtual servers in the set of virtual servers, wherein the internal parameters include license fees for the operating system.

14. The method of claim 1 , wherein determining the score for each physical computer in the identified set of physical computers is further based on an amount of unallocated RAM available on the physical computer.

15. The method of claim 1 , wherein determining the score for each physical computer in the identified set of physical computers is further based on other virtual servers deployed on the physical computer that utilize at least a portion of an amount of RAM available in the physical computer.

16. A non-transitory computer readable medium storing a program executable by at least one processor, the program comprising sets of instructions for:

receiving a particular virtual server configuration that specifies a set of virtual servers;

identifying, from a plurality of physical computers, a set of physical computers that each has an amount of available resources sufficient to implement at least one virtual server in the set of virtual servers;

determining, for each physical computer in the identified set of physical computers, a score based on (1) a quantity of resources on the physical computer and (2) a ratio of networking intensive components to storage intensive components deployed on the physical computer;

generating, based on the set of scores for the identified set of physical computers, a map that associates at least one physical computer in a subset of the identified set of physical computers with each virtual server in the set of virtual servers; and

deploying the particular virtual server configuration based on the map.

17. The non-transitory computer readable medium of claim 16 , wherein the set of instructions for determining the score for each physical computer in the identified set of physical computers comprises a set of instructions for determining the score based on an amount of unallocated resources available on the physical computer.

18. The non-transitory computer readable medium of claim 16 , wherein the set of instructions for determining the score for each physical computer in the identified set of physical computers comprises a set of instructions for determining the score based on a quality of resources on the physical computer.

19. The non-transitory computer readable medium of claim 16 , wherein the map associates a different physical computer in the subset of the identified set of physical computers to each virtual server in the set of virtual servers.

20. The non-transitory computer readable medium of claim 16 , wherein the subset of the identified set of physical computers is a single physical computer.

21. The non-transitory computer readable medium of claim 16 , wherein the set of instructions for identifying the set of physical computers comprises a set of instructions for determining that each physical computer in the set of physical computers has an amount of available processor cycles.

22. The non-transitory computer readable medium of claim 16 , wherein the set of instructions for identifying the set of physical computers comprises a set of instructions for determining that each physical computer in the set of physical computers has an amount of available disk storage.

23. The non-transitory computer readable medium of claim 16 , wherein the set of instructions for identifying the set of physical computers comprises a set of instructions for determining that each physical computer in the set of physical computers has an amount of available network bandwidth.

24. The non-transitory computer readable medium of claim 16 , wherein the score for each physical computer in the identified set of physical computers is a first score, wherein the particular virtual server configuration further specifies a set of customer behavior parameters, wherein the program further comprises a set of instructions for determining a second score for each physical computer in the identified set of physical computers based on the set of customer behavior parameters, wherein the set of instructions for generating the map comprises a set of instructions for generating the map based on the set of second scores for the identified set of physical computers.

25. The non-transitory computer readable medium of claim 24 , wherein the set of customer behavior parameters includes a parameter that specifies a first virtual server in the set of virtual servers is to experience heavy traffic loads and a second virtual server in the set of virtual servers is to experience light traffic loads.

26. The non-transitory computer readable medium of claim 24 , wherein the program further comprises a set of instructions for determining a third score for each physical computer in the identified set of physical computers based on volatility and risk of the particular virtual server configuration, wherein the set of instructions for generating the map further comprises a set of instructions for generating the map based on the set of third scores for the identified set of physical computers.

27. The non-transitory computer readable medium of claim 26 , wherein the program further comprises a set of instructions for determining a fourth score for each physical computer in the identified set of physical computers based on internal parameters, wherein the set of instructions for generating the map further comprises a set of instructions for generating the map based on the set of fourth scores for the identified set of physical computers.

28. The non-transitory computer readable medium of claim 27 , wherein the particular virtual server configuration further specifies an operating system for at least one of the virtual servers in the set of virtual servers, wherein the internal parameters include license fees for the operating system.

29. The non-transitory computer readable medium of claim 16 , wherein the set of instructions for determining the score for each physical computer in the identified set of physical computers comprises a set of instructions for determining the score based on an amount of unallocated RAM available on the physical computer.

30. The non-transitory computer readable medium of claim 16 , wherein the set of instructions for determining the score for each physical computer in the identified set of physical computers comprises a set of instructions for determining the score based on other virtual servers deployed on the physical computer that utilize at least a portion of an amount of RAM available in the physical computer.

Assignments (14)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 2, 2023
From: OPEN INVENTION NETWORK LLC
To: GOOGLE LLC
Reel/Frame 063503/0468 →
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 →
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 →
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 (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 14, 2008
From: LAPPAS, PAUL; KEAGY, JOHN MARTIN; PETERSON, NICHOLAS F.
To: SERVEPATH, LLC
Reel/Frame 021682/0294 →