Research Background
Cloud computing allocates Virtual Cluster (VC) resources in Infrastructure as a Service (IaaS), Platform as a Service: PaaS, and Software as a Service: SaaS (Turner, Budgen, & Brereton, 2003) applications. A virtual cluster (Emeneker et al., 2006) is an organized heterogeneous Virtual Machine (VM) hosting platform, which is used in cloud platforms to provide elastic and reliable services. Examples of virtual machine software include VMware, KVM and Xen. The VMs are allocated on demand, which satisfies user requirements for response time while lowering the cost of using the resources.
Dynamic resource provisioning (Li & Tirupati, 1995) which has been widely used in internet hosting platforms, has proven to be useful in handling multiple time-scale workloads. However, this kind of dynamic provisioning in previous work has been more commonly based upon physical resource allocation in large scale server farms, which is not flexible enough for the effective delivering of services.
Unlike other resources, VMs are flexibly deployed on physical machines, which can be automatically generated for different applications. For example, some scientific applications such as gene expression and transferring demand a lot of CPU resources, while some other real-time transaction applications and interactive online games are memory and network-intensive. Though traditional physical capacity provisioning has long been used, over-provisioning or under-provisioning has been a common difficulty for most resource vendors.
The advent of cloud computing, which takes full advantage of virtualization technology, potentially solves this difficulty. We propose a queuing and multi-tier network model, in which virtual clusters are deployed on each tier for service delivering. The flexibility of our proposed adaptive resource provisioning is threefold:
- (1)
The flexibility of allocating virtual resources: we can dynamically create and/or destroy a VM from a resource pool using a simple command with very low overhead. This advantage can be used to handle the problems in resource over-provisioning and/or under-provisioning.
- (2)
The flexibility of handling data or communication locality: we can easily deploy those VMs that have the most frequent communication or interaction in such a way that they are physically or logically close to each other. This advantage saves the communication cost noticeably.
- (3)
The flexibility of migrating services: virtual resources used to provide reliable services can use service migration to re-organize service hosting platforms in order to maximize the utilization of resources, which can dramatically improve operational costs.
Given the above advantages and benefits from the use of adaptive resource provisioning, we propose the design of a virtualized resource allocation framework using the cloud platform, which allocates VMs on demand in order to provide services, as well as minimizing the cost of using those virtual resources.