An Auto-Scaling Cloud Controller Using Fuzzy Q-Learning - Implementation in OpenStack

Auto-scaling, i.e., acquiring and releasing resources automatically, is a central feature of cloud platforms. The key problem is how and when to add/remove resources in order to meet agreed service-level agreements. Many commercial solutions use simple ap

  • PDF / 1,587,068 Bytes
  • 16 Pages / 439.37 x 666.142 pts Page_size
  • 77 Downloads / 154 Views

DOWNLOAD

REPORT


4

IC4, Dublin City University, Dublin, Ireland 2 Imperial College London, London, UK 3 Intel, Leixlip, Ireland Free University of Bozen-Bolzano, Bolzano, Italy [email protected]

Abstract. Auto-scaling, i.e., acquiring and releasing resources automatically, is a central feature of cloud platforms. The key problem is how and when to add/remove resources in order to meet agreed servicelevel agreements. Many commercial solutions use simple approaches such as threshold-based ones. However, providing good thresholds for autoscaling is challenging. Recently, machine learning approaches have been used to complement and even replace expert knowledge. We propose a dynamic learning strategy based on a fuzzy logic algorithm, which learns and modifies fuzzy scaling rules at runtime without requiring prior knowledge. The proposed algorithm is implemented and evaluated as an extension to the OpenStack cloud platform, integrating it with the Heat and Ceilometer components for orchestration and monitoring, respectively, using Heat Orchestration Templates. We specifically focus on implementation and experimentation aspects here. Our auto-scaling approach can handle various load traffic situations, delivering resources on demand while reducing infrastructure and management costs. The experimentals show promising performance in terms of resource adjustment to optimize SLA compliance (response time) while reducing cloud provider’s costs. Keywords: Cloud computing logic · Q-learning · OpenStack

1

·

Orchestration

·

Controller

·

Fuzzy

Introduction

Cloud computing allows easy deployment of elastic applications. Our focus is on Infrastructure as a Service (IaaS), which allows customers to increase or decrease their computational and storage resources on the fly. The consumer does not manage or control the underlying cloud infrastructure, but has control over operating systems, storage, and deployed applications [12]. IaaS provides virtualization, which enables running multiple operating system (OS) instances, called virtual machines (VMs), on the same physical server. c IFIP International Federation for Information Processing 2016  Published by Springer International Publishing Switzerland 2016. All Rights Reserved M. Aiello et al. (Eds.): ESOCC 2016, LNCS 9846, pp. 152–167, 2016. DOI: 10.1007/978-3-319-44482-6 10

An Auto-Scaling Cloud Controller Using Fuzzy Q-Learning

153

Important concepts of cloud computing are elasticity and dynamism. Managing physical and virtual resources is a key challenge in the IaaS model. However, it allows applications to acquire and release resources dynamically, but deciding the correct number of resources to be released/acquired is the challenging concern. Auto-scaling is a process that automatically scales the number of resources and maintains an acceptable Quality-of-Service (QoS). The scaling process can be either vertical or horizontal. Vertical scaling involves modifying the amount of resources assigned to each VM (CPU and memory, mostly). Horizontal scaling involves acquiring or releasing of