Public clouds sell capacity in the form of pre-defined virtual machine (VM) configurations to their tenants. This forces tenants to buy the VM configuration based on the peak usage. This diminishes the value proposition of moving to a public cloud as compared to doing consolidation in a private virtualized datacenter. Ideally we would like the cloud tenants to buy capacity in bulk and benefit from statistical multiplexing among workloads. This requires dynamic allocation of bulk capacity among VMs of a tenant that may be running on different servers across different datacenters.In this paper, we propose two novel algorithms called BPX and IDD that are able to provide the abstraction of buying bulk capacity to a cloud customer. These algorithms dynamically allocate the overall capacity between VMs based on their demand and user-set importance. Both algorithms are highly scalable and are designed to work in a large scale environment. Our analysis shows that BPX is able to meet all the desirable properties in providing the abstraction. We implemented the prototype of BPX as part of VMware's management software and showed that BPX is able to closely mimic the behavior of a centralized allocator, in a distributed manner.
IntroductionConsider an IT department of a small company that is considering moving its workloads to a public cloud. Currently the company is running a private cloud, where they are able to take advantage of server consolidation by using in-house virtualization and cloud management software. Several companies offer solutions in this space, such as Nebula [16] Within the private cloud the VMs run in a controlled physical infrastructure maintained by the IT department of the same company. The private cloud is able to exploit temporal variations in the VM loads to reduce the amount of provisioned resources, by over-committing server CPU and memory. Hypervisors such as VMware ESX Server provide several techniques (like transparent page-sharing, ballooning, compression, and swap-to-SSD) to facilitate high consolidation ratios. The gains from statistical multiplexing benefit the bottom line of the company by reducing both its capital and operating expenses. In a public cloud the physical infrastructure is distributed over one or more mega data centers, supporting thousands of servers and hosting VMs belonging to multiple paying customers. In this situation the benefits of workload multiplexing accrue to the cloud service provider and not directly to the tenant, as the former increases consolidation ratios without regard to specific customers.In the public cloud, the tenant's is forced to purchase VMs based on their configured sizes. Typically VMs are configured for peak usage and the consolidation helps because VMs can use resource from each other based on their run-time demands on the host. An interesting study [12] on buying capacity in terms of fixed T-shirt sizes vs. doing time sharing showed that buying per VM capacity can be twice as expensive as compared to having a time sharing system. Lets...