application QoS targets. Index Terms-- Adaptive Cloud, Application Provisioning,. Quality of Service (QoS), Virtual Machine (VM) Provisioning,. Virtualization.
2012 NIRMA UNIVERSITY INTERNATIONAL CONFERENCE ON ENGINEERING, NUiCONE-2012, 06-08DECEMBER, 2012
1
QoS and Performance Optimization with VM Provisioning Approach in Cloud Computing Environment Hitesh A. Bheda and Jignesh Lakhani
Abstract-- Cloud computing is the computing paradigm which delivers IT resources as a service, hence user are free from setting up the infrastructure and managing hardware etc. Cloud Computing provides dynamic provisioned resources and presented as one or more integrated computing resources based on constraints. The process of provisioning in Clouds requires the application provisioner to compute the best software and hardware configuration so as to ensure that Quality of Services (QoS) target of application services are achieved, without compromising efficiency and utilization of whole system. This paper presents a dynamic provisioning technique, adapting to peak-to-peak workload changes related to applications to offer end-users guaranteed Quality of Services (QoS) in highly dynamic environments. Behavior and performance of applications and Cloud-based IT resources are modeled to adaptively serve end-user requests. Analytical performance (queuing network system model) and workload information are used to supply intelligent input about the physical infrastructure which causes improvement in efficiency. VM provisioning technique detects changes in workload intensity that occurs over time and makes appropriate changes in allocations of multiple virtualized IT resources to achieve application QoS targets.
internet to numerous external customers [1]. This term effectively reflects the different facets of the Cloud Computing paradigm which can be found at different infrastructure levels. Fig. 1 represents Cloud Service Models based on value visibility to End users, namely IaaS (Infrastructure as a Service), PaaS (Platform as a Service) and SaaS (Software as a Service).
Index Terms-- Adaptive Cloud, Application Provisioning, Quality of Service (QoS), Virtual Machine (VM) Provisioning, Virtualization. I.
INTRODUCTION
C
LOUD Computing is virtualized compute power and storage delivered via platform-agnostic infrastructures of abstracted hardware and software accessed over the Internet. These shared, on-demand IT resources, are created and disposed of efficiently, are dynamically scalable through a variety of programmatic interfaces and are billed variably based on measurable usage. In Cloud computing, services can be used from assorted and pervasive resources, rather than remote servers or local machines. Generally it consists of a bunch of distributed servers known as masters, providing demanded services and resources to different clients known as clients in a network with scalability and reliability of datacenter. The distributed computers provide on-demand services. Cloud Computing provides its extensive shareable resources on utility or meteoroid based structure. Cloud computing is a style of computing where extremely scalable IT-related capabilities are provided “as a service” across the
978-1-4673-1719-1/12/$31.00©2013IEEE
Fig. 1 Cloud Computing Service Model
Virtualization is a method which distributes a single, physical machine into autonomous, isolated containers. Independent operating system and application stack can be provided by every layer. A Virtual Machine architecture is far diverse than conventional operating system for managing its resources on a standalone physical machine. In a virtualized environment, there is a thin software layer, namely Virtual Machine Monitor (VMM), is placed instead of OS layer, to manage the system resources among various virtual machines (VMs). The VM is also referred as domain and VMM is known as the hypervisor. The rest of the paper is organized as follows. Section II describes the problem formulation for QoS and Performance Optimization in Cloud Computing Environment. This is followed by Related Study and Research Gaps from previous
2012 NIRMA UNIVERSITY INTERNATIONAL CONFERENCE ON ENGINEERING, NUiCONE-2012
2
work in Section III. Section IV shows the proposed System Architecture. Section V describes Adaptive cloud provisioning approach. Section VI presents Proposed Algorithm for the system. Section VII discusses the results based on VM Provisioning Approach. Section VIII draws some important conclusion along with suggestions for future research. II. PROBLEM FORMULATION Cloud provisioning is the process of deployment and management of application services (SaaS) on ubiquitous cloud infrastructures that expose their capabilities as a network of virtualized IT resources [2]. The process of provisioning in Clouds requires the application provisioner to compute the best software and hardware configuration so as to ensure that QoS target of application services are achieved, without compromising efficiency and utilization of whole system. 1) Error Compilation To estimate needs of IT resources is difficult because of IT manager’s or SaaS owner’s lack of understanding of requirements due to complexities of Cloud-based IT resources and applications. Hence, it becomes extremely hard for IT managers to find the right combination of Cloud-based IT resources that can suitably fit current and anticipated application workload; [2] 2) Enormously Lively Workload There are many end-users using an application service, hence it possible to get extensively varying load, depending on the day and the time of year, and the popularity of an application. Further the characteristic of workload (web service workload, scientific workload) [3] could vary significantly across application types (high performance, web hosting and social networking). This causes serious problems while estimating the workload behaviour (arrival pattern, I/O behaviour, service time distribution, and network usage) and related resource requirements; [2] 3) Distributed Task Requirement Load, throughput and availability of Cloud-based IT resources and network links can change dynamically in extensive computing environment such as Cloud data centers. Transient conditions further complicate the process of determining aggregate resource requirements for provisioning an application. The provisioning problem is computationally difficult to solve dynamically (i.e., NP-hard) [4]. If complexity and diversity of Cloud-based IT resources increases with the uncertain behavior of application workload, then the task becomes much more difficult. [2] III.
RELATED STUDY AND RESEARCH GAPS
Jung et al. propose the Mistral system, which performs management at data center host level to manage power consumption of resources and performance of applications. Mistral is suitable to be applied in scenarios where both infrastructure and application are offered by the same provider. Mistral System’s approach requires access to the physical infrastructure, which typical IaaS providers do not
provide to the customers. The approach used in this project can be both applied in same case or in cases where IaaS and PaaS/SaaS providers are different organizations. [5] Rodero-Merino et al. propose a system called Claudia, where provisioning is based on performance indicators and elasticity rules defined by users. In Claudia System’s approach, number of instances vary reactively to incoming request rate. The approach used in this project proactively applies adaptive provisioning to deliver negotiated QoS to requests whose request arrival rate varies along with time. [6] Zhu and Agrawal propose a dynamic mechanism for VM provisioning based on control theory considering user budget. Such an approach considers reconfiguration of available virtual instances. Zhu and Agrawal’s approach does not consider varying the number of virtual instances. The approach used in this project assumes no change required in size of virtual instances, hence abstracts it and considers only number of virtual instances. [7] IV. SYSTEM ARCHITECTURE In order to provide services, large-scale data centers are established in Cloud Environment. These data centers contain thousands of running computational nodes providing virtualization by placing many virtual machines (VMs) on each node.
Fig. 2 System View of Cloud Environment
Fig. 2 shows the actual system view cloud computing environment. There are mainly two types of actors on cloud: end-user and brokers. The end-user requests for the application on cloud and brokers process these request. As per the system, it uses two types of role for brokers: SLA Negotiation and VM Monitor. The SLA Manager takes care that no Service Level Agreement (SLA) is violated and VM Monitor monitor the current stated of virtual machines periodically at specific amount of time. All these request are taken by a global resource manager which decides what type of application is been requested and accordingly the VM
2012 NIRMA UNIVERSITY INTERNATIONAL CONFERENCE ON ENGINEERING, NUiCONE-2012, 06-08DECEMBER, 2012
machine is generated at physical nodes. V. ADAPTIVE CLOUD PROVISIONING APPROACH To tackle the problem of uncertain behavior, estimation error, and dynamic workload related to Cloud provisioning, this paper propose an adaptive provisioning mechanism. Figure 3 represents the architecture of VM Provisioning approach in specified manner. Different software components of the architecture are administered by the service provider. Its SaaS layer contains an admission control mechanism based on the number of requests on each application instance: if all virtualized application instances have k requests in their queues, new requests are rejected, because they are likely to violate Ts. Accepted requests are forwarded to the provider’s PaaS layer, which implements the proposed system.
Fig.3 Proposed mechanism for Adaptive Virtual Machine Provisioning
Mainly, the following components are critical to the overall functionality of the system: (i) Application provisioner, main point of contact in the system that receives accepted requests and provisions virtual machines and application instances based on the input from workload analyzer and from load predictor and performance modeler; (ii) Workload analyzer, which generates estimation of future demands for the application. This information is passed to the load predictor and performance modeler component; and (iii) Load predictor and performance modeler, which solves an analytical model based on the observed system performance and predicted load to decide the number of VM instances that should be allocated to an application. Provisioning mechanism runs continuously to ensure that provisioning goals are met at all times. Set the following design goals for provisioning approach: • Automation: All decisions related to provisioning should be made automatically without human intervention; • Adaptation: The application provisioner should adapt to uncertainties such as changes in workload intensity;
978-1-4673-1719-1/12/$31.00©2013IEEE
3
• Performance assurance: The resource allocation in the system can be dynamically varied for ensuring achievement of QoS targets. The parameter k, queue size, is defined according to negotiated service time (Ts) and execution time of a single request (Tr) according to equation 1. If number of requests exceeds k new requests will be rejected. This guarantees that requests are either rejected or served in a time acceptable by clients. [2] k = (Ts / Tr ) ……… (1) With information that is made available about the infrastructure model for this project is built: because IaaS providers typically do not disclose information about specific hardware in use, as well as information about network connections and network topology in the data center, load predictor and performance modeler cannot make assumptions about the low-level physical infrastructure. Thus, these aspects are abstracted in this project. [2] Every time a new request comes, first checking for whether or not the current number of virtual instances is sufficient to meet QoS. To do this, first current service times for each application instance is calculated, which is used along with the estimated arrival rate to predict the overall rejection rate, resource utilization and maximum number of virtual instances. If rejection is estimated below threshold (QoS) or if utilization is predicted to be below a minimal utilization threshold, the number of VM instances serving applications is updated according to Algorithm given below. [2] To summarize, the system updates number of required virtualized application instances m depending on current average request execution time and resource utilization. Afterward it models system as network of queues and calculates average Tr and (Rej (Gs)) for a given m. If QoS or utilization rate is not met m is recalculated and the process is repeated. Moreover minimum and maximum values of m are kept track of, in order to avoid the system to try a number of virtual instances that either has been tested before or whose value is known to be not sufficient based on previous tested values. VI. PROPOSED ALGORITHM Proposed algorithm is specified below in order to improve the QoS and Performance through Adaptive VM Provisioning.
Algorithm 1: Adaptive VM Provisioning Data: QoS metrics: Ts and Rej (Gs) Data: Tm: monitored average request execution time Data: k: application instance queue size Data: λ: expected arrival rate of requests Data: MaxVMs: maximum number of VMs allowed Result: m: number of application instances able to meet QoS
2012 NIRMA UNIVERSITY INTERNATIONAL CONFERENCE ON ENGINEERING, NUiCONE-2012
1 m = current number of application instances 2 min = 1 3 max = maxVMs 4 Oldm = m 5 λsi = λ/m 6 Pr (Sk) = expected rejection in a M/M/1/k queue given λsi and Tm 7 Tq = expected response time in M/M/1/k queue given Pr (Sk), λsi, Tm 8 if (Pr (Sk) and Tq do not meet QoS) then 9 m = m + m/2 10 min = m + 1 11 if (m>max) then m = max 12 if (m>oldm) then Create VMs 13 if (utilization is below threshold) then 14 max = m 15 m = min + (max – min)/2 16 if (m