Patent ID: 8762531

Claim:
A computer-implemented method, comprising: determining, by a virtual machine element manager running on a data processor in a virtualization system, an amount of input/output (I/O) bandwidth to be committed for a virtual machine in the virtualization system, wherein the virtual machine is a software implementation of a computer that runs at least one guest operating system and executes one or more programs or applications on the guest operating system; identifying at least a first computer server and a second computer server in the virtualization system each capable of committing at least the determined amount of I/O bandwidth; selecting the first computer server for allocation and commitment of the amount of I/O bandwidth to the virtual machine; allocating, from the first computer server, the amount of I/O bandwidth to the virtual machine for a predetermined commitment period; determining, after allocation of the amount of I/O bandwidth to the virtual machine, the I/O bandwidth utilization of the first computer server; increasing, during the predetermined commitment period, a price of continued allocation of the amount of I/O bandwidth from the first computer server to the virtual machine, wherein the increase in price is based at least in part on the determined I/O bandwidth utilization of the first computer server; initiating, by the virtual machine element manager, a credit check process resulting in an increase of a budget of the virtual machine; and automatically allocating, during the predetermined commitment period, the amount of I/O bandwidth to the virtual machine, from the second computer server, based at least in part on a comparison of the budget to the price of continued allocation of the amount of I/O bandwidth from the first computer server.