Time-sensitive VM Provisioning for Resource-constrained Clouds
Resource management is a vital factor for better performance in cloud computing systems and one of the major goals of resource management is to efficiently utilize available resources. Many research has been conducted for managing the computing resources in cloud systems by exploiting different points of view and application scenarios. Most of these research were conducted on public clouds and are not applicable for the private clouds or resource-constrained clouds that usually have limited computing resources. Moreover they mostly consider resource requirement and resource capacity during the allocation decision. Only very few of them have utilized the time domain information of the application which is an important aspect for data analytic jobs. These jobs account for a large proportion of cloud applications such as web logs analysis, weather forecast analysis, finance analysis, scientific simulation, machine learning, etc. In this thesis, we focus on applications with timing constraints (i.e., deadlines) running on resource-constrained clouds that have multiple heterogeneous nodes of computing resources (e.g., CPU cores and memory). We propose a time-sensitive resource allocation and virtual machine (VM) provisioning framework where user requests are first prioritized according to their deadlines and resource demands in the form of VM type/number and operation time. We implement three prioritization heuristics: a) the Time-Sensitive Resource Factor (TSRF) that incorporates a requests deadline and usage efficiency of all its resources; b) the Dominant Resource (DR) based extension of TSRF that emphasizes the most demanded resource of a request; and c) a unified k-EDF scheme that integrates the ideas of EDF and TSRF/DR to balance the needs of meeting deadlines and improving resource utilization. Then, for the mapping of the prioritized user requests to the heterogeneous nodes, we propose a novel request-to-node mapping algorithm based on the idea of Euclidean Distance that finds the node with the best match of its resource requirements for each request. To effectively support user requests with flexible timing constraints (e.g., users may prefer expedited services and are willing to pay extra for getting their job processed at earlier times), we further consider applications with multiple deadlines for being processed in resource-constrained cloud systems and investigate corresponding virtual machine (VM) provisioning schemes. Specifically, by considering the multiple deadline-bid pairs of user requests, we propose a Slope-based Multi-Deadline Time-Sensitive Resource Factor with Dominant Resource being considered to prioritize such requests. In addition, we study the mapping schemes that allocate the multiple VMs of a user request to only one or multiple computing nodes, which are denoted as Bundled vs. Distributed mappings, respectively. We also explore the model where user requests have multiple execution options (or resource demands) with a single deadline. This model is beneficial for resource-constrained clouds as it provides scaling options to improve resource utilization. We propose a Time-Resource Sensitivity based greedy solution to efficiently prioritize and allocate VMs to the cloud nodes. The proposed VM provisioning schemes has been implemented and validated on a cloud testbed powered by OpenStack with a few heterogeneous nodes. They are further evaluated through extensive simulations using the execution data of real benchmark applications. The results show that the proposed schemes can out-perform the state-of-the-art deadline oblivious schemes in terms of served user requests (%), system utilization (%) and system rewards/benefit (%), especially in over-loaded scenarios.