Market-based virtual machine allocation
First Claim
1. A market scheduler in a cloud computing environment, comprising:
- a memory containing a non-transitory machine-readable medium comprising machine executable code having stored thereon instructions for performing a method of distributing virtual machines to a plurality of remote systems; and
a processor coupled to the memory, the processor configured to execute the machine executable code to cause the processor to;
receive a first plurality of buy and sell messages from the plurality of remote systems, wherein buy messages include an indication of resources available for use on a buying remote system in the plurality of remote systems, and wherein sell messages include an indication of resources used by a virtual machine operating on a selling remote system in the plurality of remote systems;
match the buy messages with the sell messages, wherein the difference between resources available for use in the buy messages and the resources used is minimized; and
send a second plurality of bought and sold messages to the plurality of remote systems, a bought message corresponding to a buy message received in the first plurality of buy and sell messages from a first remote system that matched with a sold message corresponding to a sell message received in the first plurality of buy and sell messages from a second remote system, wherein the sell message includes a highest bid and the buy message includes a highest-cost workload of the first plurality of buy and sell messages, and wherein based on the bought message and the sold message the second remote system transfers the virtual machine to the first remote system.
5 Assignments
0 Petitions
Accused Products
Abstract
A cloud computing system management system including a plurality of computing devices configured to host virtual machine instances, each computing device in the plurality of computing devices including a local agent that continuously evaluates the observed load relative to a utility maximization function. If observed load is higher than a calculated optimal level, individual loading processes are offered for “sale” via a market scheduler. If observed load is lower than a calculated optimal level, then available capacity is offered as a bid via the market scheduler. The market scheduler matches bids with available processes and coordinates the transfer of load from the selling device to the buying device. The offered prices and utility maximization functions can be employed to optimize the performance of the cloud system as a whole.
-
Citations
20 Claims
-
1. A market scheduler in a cloud computing environment, comprising:
-
a memory containing a non-transitory machine-readable medium comprising machine executable code having stored thereon instructions for performing a method of distributing virtual machines to a plurality of remote systems; and a processor coupled to the memory, the processor configured to execute the machine executable code to cause the processor to; receive a first plurality of buy and sell messages from the plurality of remote systems, wherein buy messages include an indication of resources available for use on a buying remote system in the plurality of remote systems, and wherein sell messages include an indication of resources used by a virtual machine operating on a selling remote system in the plurality of remote systems; match the buy messages with the sell messages, wherein the difference between resources available for use in the buy messages and the resources used is minimized; and send a second plurality of bought and sold messages to the plurality of remote systems, a bought message corresponding to a buy message received in the first plurality of buy and sell messages from a first remote system that matched with a sold message corresponding to a sell message received in the first plurality of buy and sell messages from a second remote system, wherein the sell message includes a highest bid and the buy message includes a highest-cost workload of the first plurality of buy and sell messages, and wherein based on the bought message and the sold message the second remote system transfers the virtual machine to the first remote system. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A market scheduler in a cloud computing environment, comprising:
-
a memory containing a non-transitory machine-readable medium comprising machine executable code having stored thereon instructions for performing a method of distributing virtual machines to a plurality of remote systems; and a processor coupled to the memory, the processor configured to execute the machine executable code to cause the processor to; receive a first plurality of buy and sell messages from the plurality of remote systems, wherein buy messages include an indication of resources available for use on a buying remote system in the plurality of remote systems, and wherein sell messages include an indication of resources used by a virtual machine operating on a selling remote system in the plurality of remote systems; match the buy messages with the sell messages, wherein the difference between the resources available for use in the buy messages and the resources used is minimized; generate a second plurality of bought and sold messages, a bought message corresponding to a buy message received in the first plurality of buy and sell messages from a first remote system that matched with a sold message corresponding to a sell message received in the first plurality of buy and sell messages from a second remote system; modify the bought and sold messages to reflect a transitory cost associated with executing a buy or sell operation, wherein the transitory cost includes a cost extending over a period of time that is estimated as being proportional to a time needed to effect a transaction for executing a matched buy and sell message; and send the second plurality of bought and sold message to the plurality of remote systems, wherein based on the bought message and the sold message the second remote system transfers the virtual machine to the first remote system, and wherein the second plurality of bought and sold messages includes the transitory cost, and each of the first and second remote systems evaluate the transitory cost to determine whether to accept or reject the transaction and wherein the first remote system determines whether to accept or reject the transaction based on whether the transaction would lead to overall equal or greater utility for the first remote system, and wherein the second remote system determines whether to accept or reject the transaction based on whether the transaction would lead to overall equal or greater utility for the second remote system.
-
Specification