Patentable/Patents/US-8095662
US-8095662

Automated scheduling of virtual machines across hosting servers

PublishedJanuary 10, 2012
Assigneenot available in USPTO data we have
Inventorsnot available in USPTO data we have
Technical 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.

Patent Claims
30 claims

Legal claims defining the scope of protection, as filed with the USPTO.

1

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

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

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

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

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

6

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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.

Classification Codes (CPC)

Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.

Patent Metadata

Filing Date

August 4, 2008

Publication Date

January 10, 2012

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “Automated scheduling of virtual machines across hosting servers” (US-8095662). https://patentable.app/patents/US-8095662

© 2026 Patentable. All rights reserved.

Patentable is a research and drafting-assistant tool, not a law firm, and does not provide legal advice. Documents we generate are drafts for review by a licensed patent attorney.