dc.description.abstract | Server virtualization is an important technology that enables various software-based VMs (VMs) running on a physical server simultaneously. Many existing commercial cloud services, such as Amazon AWS and Microsoft Azure, have already adopted this kind of technology because of its flexibility. The network virtualization technology is another key technology, which can create virtual network environments on top of the physical network environment. With server virtualization and network virtualization, the cloud users are able to create user-defined virtual clusters. Considering that the number of virtual clusters and the number of physical machines are usually large on a cloud, it is unrealistic to ask system administrators to do manual resource allocation and management. Instead, the users should be able to configure their virtual clusters, and the system should be responsible for allocating physical resources for the virtual clusters automatically. The challenge is, existing cloud systems/platforms, such as OpenStack, do not fully support deployment/management functions of virtual clusters. In addition, resource allocation for a virtual cluster using a traditional approach becomes inefficient because it is not aware of the relationship among the VMs of a virtual cluster. To this end, we have developed a cloud platform based on OpenStack, namely SAMEVED, to support various resource allocation/management functions of user-defined virtual clusters. We provide a web-based UI for end users, such that the end users can directly create and launch their own virtual clusters without the intervention of the system administrators. While creating a virtual cluster, the user can specify the network configuration and the security constraints of the virtual cluster. When a virtual cluster is set for deployment, the system should automatically place the VMs of a virtual cluster on physical machines based on the user requirement, such that the resource usage is optimized. The proposed resource allocation mechanism relies on a monitor to collect resource usage of a virtual cluster, as well as network consumption of each VM. Then it uses a profiler to classify the types of VMs. Finally the mechanism uses the processed information to place VMs on the right physical machines. | en_US |