Performance Evaluation of Openstack Deployment Tools
Total Page:16
File Type:pdf, Size:1020Kb
Thesis no:MSEE-2016:42 Performance Evaluation of OpenStack Deployment Tools Sesha Sai Srinivas Jayapala Vemula Department of Communication Systems Blekinge Institute of Technology SE-371 79 Karlskrona Sweden This thesis is submitted to the Faculty of Computing at Blekinge Institute of Technology in partial fulfillment of the requirements for the degree of Master of Science in Electrical Engineering with emphasis on Telecommunication Systems. The thesis is equivalent to 20 weeks of full time studies. Contact Information: Authors: Sesha Sai Srinivas Jayapala Vemula E-mail: [email protected] University advisor: Dr. Patrik Arlos Department of Communication Systems (DIKO) Faculty of Computing Internet : www.bth.se Blekinge Institute of Technology Phone : +46 455 38 50 00 SE-371 79 Karlskrona, Sweden Fax : +46 455 38 50 57 i i ABSTRACT Cloud computing allows access to a common collection of computing resources, that can be easily provisioned, configured as well as released on-demand with minimum cost and effort. OpenStack is an open source cloud management platform aimed at providing private or public IaaS cloud on standard hardware. Since, deploying OpenStack manually is tedious and time-consuming, there are several tools that automate the deployment of OpenStack. Usually, cloud admins choose a tool based on its level of automation, ease of use or interoperability with existing tools used by them. However, another desired factor while choosing a deployment tool is its deployment speed. Cloud admins cannot select based on this factor since, there is no previous work on the comparison of deployment tools based on deployment time. This thesis aims to address this issue. The main aim of the thesis is to evaluate the performance of OpenStack deployment tools with respect to operating system provisioning and OpenStack deployment time, on physical servers. Furthermore, the effect of varying number of nodes, OpenStack architecture deployed and resources (cores and RAM) provided to deployment node on provisioning and deployment times, is also analyzed. Also, the tools are classified based on stages of deployment and method of deploying OpenStack services. In this thesis we evaluate the performance of MAAS, Foreman, Mirantis Fuel and Canonical Autopilot. The performance of the tools is measured via experimental research method. Operating system provisioning time and OpenStack deployment times are measured while varying the number of nodes/ OpenStack architecture and resources provided to deployment node i.e. cores and RAM. Results show that provisioning time of MAAS is less than Mirantis Fuel which is less than Foreman for all node scenarios and resources cases considered. Furthermore, for all 3 tools as number of nodes increases provisioning time increases. However, the amount of increase is lowest for MAAS than Mirantis Fuel and Foreman. Similarly, results for bare metal OpenStack deployment time show that, Canonical Autopilot outperforms Mirantis Fuel by a significant difference for all OpenStack scenarios and resources cases considered. Furthermore, as number of nodes in an OpenStack scenario as well as its complexity increases, the deployment time for both the tools increases. From the research, it is concluded that MAAS and Canonical Autopilot perform better as provisioning and bare metal OpenStack deployment tool respectively, than other tools that have been analyzed. Furthermore, from the analysis it can be concluded that increase in number of nodes/ OpenStack architecture, leads to an increase in both provisioning time and OpenStack deployment time for all the tools. Finally, after analyzing the results the tools are classified based on the method of deploying OpenStack services i.e. parallel or role-wise parallel. Keywords: DevOps, Measurements, OpenStack ACKNOWLEDGMENTS Firstly, I would like to express my sincere gratitude to my supervisor Dr. Patrik Arlos, for spending his valuable time in providing immense support during the thesis. I would like to thank him once again for providing several document reviews which helped me refine the document. I would like to express my deepest gratitude to the God for taking care of my health and wellbeing during the thesis. I would also like to thank Adam Stokes of Ubuntu Solutions Engineering/ OpenStack installer at GitHub, for providing critical details needed for installing Canonical Autopilot. I am extremely thankful to my parents for supporting me throughout my studies and thesis work. This accomplishment would not be possible without their encouragement. Finally, I would like to acknowledge my thesis partner Tarun Aluguri and my friend Nihkil Reddy for helping me in the thesis. CONTENTS ABSTRACT ...........................................................................................................................................I ACKNOWLEDGMENTS ................................................................................................................... II CONTENTS ....................................................................................................................................... III LIST OF FIGURES ............................................................................................................................. V LIST OF TABLES .............................................................................................................................. VI LIST OF ABBREVIATIONS .......................................................................................................... VII 1 INTRODUCTION ....................................................................................................................... 8 1.1 MOTIVATION ......................................................................................................................... 9 1.2 PROBLEM STATEMENT ........................................................................................................... 9 1.3 AIM AND OBJECTIVES ............................................................................................................ 9 1.4 RESEARCH QUESTIONS .......................................................................................................... 9 1.5 RESEARCH METHOD ............................................................................................................ 10 1.6 EXPECTED OUTCOMES ......................................................................................................... 10 1.7 THESIS OUTLINE .................................................................................................................. 11 1.8 SPLIT OF WORK ................................................................................................................... 11 2 BACKGROUND ........................................................................................................................ 12 2.1 CLOUD COMPUTING ............................................................................................................. 12 2.2 OPENSTACK ......................................................................................................................... 12 2.3 SERVER DEPLOYMENT AUTOMATION .................................................................................. 13 2.3.1 Network Booting ............................................................................................................. 13 3 TOOLS ........................................................................................................................................ 16 3.1 PROVISIONING TOOLS .......................................................................................................... 16 3.1.1 Cobbler ........................................................................................................................... 16 3.1.2 Metal as a Service (MAAS) ............................................................................................. 17 3.1.3 Foreman .......................................................................................................................... 18 3.2 CONFIGURATION MANAGEMENT TOOLS .............................................................................. 19 3.2.1 Puppet ............................................................................................................................. 19 3.2.2 Juju ................................................................................................................................. 20 3.3 OPENSTACK DEPLOYMENT TOOLS ...................................................................................... 20 3.3.1 Model of a typical Bare Metal OpenStack Deployment Tool .......................................... 21 3.3.2 Mirantis Fuel .................................................................................................................. 21 3.3.3 Canonical’s OpenStack Autopilot ................................................................................... 24 3.3.4 Other tools available ...................................................................................................... 25 4 METHODOLOGY .................................................................................................................... 26 4.1 RESEARCH METHOD ............................................................................................................ 26 4.2 EXPERIMENT TEST-BED ....................................................................................................... 26 4.2.1 Hardware Used ..............................................................................................................