Openstack: the Cloud OS - Technical Report
Total Page:16
File Type:pdf, Size:1020Kb
University of Duisburg-Essen Paluno Software Systems Engineering Prof. Dr. Klaus Pohl OpenStack: The Cloud OS - Technical Report - Hasan Mohamed Ibou Supervisor: Dr. Clarissa Marquezan 25.10.2013 OpenStack: The Cloud OS Technical Report Hasan Mohamed Ibou Supervisor: Dr. Clarissa Marquezan Universiy of Duisburg-Essen Paluno - The Ruhr Institute for Software Technology Gerlingstraÿe 16 45127 Essen, Germany [email protected] [email protected] 1 2 Abstract This report covers OpenStack as an IaaS (Infrastructure as a Service) management system in context of cloud computing. The goals of this study are: learn the basics of cloud computing, learn more about OpenStack as a cloud OS (Operating System) and retrieve information and concert data out of OpenStack for the monitoring and opti- mizing of machines on both the physical and logical level. The researched informations in this report should serve the goal of manipulating and monitoring the possibilities of a cloud under OpenStack and the entities of a cloud such as cloud-based applica- tions while considering the physical and the virtual level of the machines in order to optimize each entity of the cloud system to get the cloud environment as a big picture running more eectively, eciently, and in the best case, automatically. This document is structured as following: it starts with an introduction to cloud computing and OpenStack. It then investigates the linking of OpenStack to the ap- propriate cloud computing level. After combining both topics, it previews the core components of OpenStack individually and mentions the important sub-components of the core components of OpenStack. The report is divided in three parts and ends with a conclusion previewing the results of this study. Keywords: Cloud Computing, OpenStack, Cloud OS, IaaS-Management-System 3 Acknowledgment: I would like to thank Dr. Clarissa Cassales Marquezan for the great help in writing this document. Preface The aim of this record is to help everyone who is interested in learning about the cloud OS OpenStack under a technical point of view. The report helps giving a basic introduction to cloud computing and OpenStack by describing the components of OpenStack and the way the whole system works together. Intended Audience This technical report is for everyone who has a very basic background in computer science and want to learn the basics of cloud computing and manip- ulating clouds with OpenStack. 4 Contents 1 Introduction to Cloud Computing . 7 1.1 Denition . 7 1.2 Service Models of Cloud Computing . 7 1.3 Types of Clouds and Cloud Comparison . 8 1.3.1 Types of Clouds . 8 1.3.2 Cloud Comparison . 9 1.4 Summary . 9 2 Introduction to OpenStack . 10 2.1 Infrastructure Management Systems (Stacks) . 10 2.2 OpenStack . 10 2.2.1 The Project and The Goals . 10 2.2.2 Project Releases . 11 2.2.3 Community and Users . 11 2.3 Components of OpenStack . 12 2.4 Installation Architecture of OpenStack . 13 2.4.1 Single Node . 13 2.4.2 Two and Multi Node . 14 2.4.3 Requirements . 14 2.5 Conceptual and Logical Architecture . 15 2.6 Summary . 16 3 Components of OpenStack . 17 3.1 Dashboard - Horizon . 17 3.2 Compute - Nova . 18 3.2.1 nova-api . 19 3.2.2 nova-api-metadata . 19 3.2.3 nova-compute . 19 3.2.4 nova-schedule . 20 3.2.5 nova-conductor . 20 3.2.6 nova-network . 20 3.2.7 nova-novncproxy . 20 3.2.8 nova-xvpnvncproxy . 20 3.2.9 nova-consoleauth . 20 3.2.10 nova-dhcpbridge . 20 3.2.11 nova-console . 20 3.2.12 nova-cert . 20 3.2.13 euca2ools . 21 3.2.14 nova-objectstore . 21 3.2.15 nova . 21 3.2.16 nova-manage . 21 3.2.17 The queue . 21 3.2.18 SQL database . 21 3.3 Object Store - Swift . 23 3.3.1 Proxy server (swift-proxy-server) . 23 3.3.2 Account servers . 23 5 3.3.3 Container servers . 23 3.3.4 Object servers . 23 3.3.5 Other processes . 24 3.4 Image Store - Glance . 24 3.4.1 glance-api . 24 3.4.2 glance-registry . 24 3.4.3 A database . 24 3.4.4 A storage . 24 3.4.5 Other processes . 25 3.5 Identity - Keystone . 25 3.5.1 keystone . 25 3.6 Network - Quantum . 25 3.6.1 quantum-server . 26 3.6.2 plug-ins and agents . 26 3.7 Block Storage - Cinder . 26 3.7.1 cinder-volume . 26 3.7.2 cinder-api . 26 3.7.3 cinder-scheduler . 27 3.8 Summary and Conclusion . 27 6 List of Figures 1 Cloud computing services and layers [1, 2] . 8 2 Dierence between basic types of Clouds[1, 2] . 9 3 OpenStack Releases [5, 6] . 11 4 Components of OpenStack [6] . 13 5 OpenStack Hardware Recommendations for Production[6] . 14 6 Logical Architecture of OpenStack [6] . 16 7 OpenStack Dashboard [6] . 17 8 Functions of Compute Sub-Components [6] . 19 9 Database Schema [6] . 22 1 Introduction to Cloud Computing 7 1 Introduction to Cloud Computing This part12gives an introduction to cloud computing by answering the questions: What is cloud computing?, What are the service models of cloud computing?, and What are the deployable arts of clouds? 1.1 Denition Cloud computing[2] revolutionizes the services and business domain. It opens up big opportunities for research and production with its powerful features such as scalability, performance, and reduced upfront investments. Especially, pay-as-you-go and service-orientation are important functionalities for business today. Cloud computing uses virtualization as a key enabling technology that is simulating logical hardware resources from physical resources[3]. But what is cloud computing? The National Institute of Standards and Technology (NIST) has the following denition for cloud computing[2]: Cloud computing is a model for enabling ubiquitous, convenient, on - demand network access to a shared pool of congurable com- puting resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management eort or service provider interaction. 1.2 Service Models of Cloud Computing Cloud Computing provides its resources as services. There are currently six provided services[2]: Infrastructure as a Service (IaaS), Network as a Service (NaaS), Platform as a Service (PaaS), Identity and Policy Management as a Service (IPMaaS), Data as a Service (Daas), and Software as a Service (SaaS). These services ll into three main cloud computing layers, which are: hardware, system, and application. Figure 1 shows the services with the associated layers. 1 Main source of this document: ocial OpenStack documentaries 2 Considered version: OpenStack Grizzly 1 Introduction to Cloud Computing 8 Service \ Layer Hardware System Application Main Service Software as a Service (SaaS) x Data as a Service (Daas) x SaaS Identity&Policy Manage as a Service (IPMaaS) x Platform as a Service (PaaS) x Paas Network as a Service (NaaS) x IaaS Infrastructure as a Service (IaaS) - logical - x Fig. 1: Cloud computing services and layers [1, 2] The mentioned six services could be abstractly grouped in three main services[1]: 1. Infrastructure as a Service (IaaS): consists of hardware (such as CPUs, RAMs, Storage, and Network), and logical infrastructure (such as virtual machines VMS). 2. Platform as a Service (PaaS): provides frameworks and operating systems for software development. 3. Software as a Service (SaaS): contains applications running on the logical layer. Each of these three layers could be provided separately by dierent cloud service providers such as Amazon or IBM and then combined to t the organization's needs. However, all of them could be provided as a package of services by a single cloud provider such as Google, for example[1]. 1.3 Types of Clouds and Cloud Comparison This section explains the dierent types of clouds based on the dierent imple- mentations of clouds with the aspects that inuence the decision of choosing a cloud type. After that, the section makes a comparison between the basic types of clouds in order to better understand these types. 1.3.1 Types of Clouds The dierent implementations of clouds depend on the needs and purposes of a cloud. The dierent implementations cause dierent types of clouds. The future needs and use of the cloud - whether in research or production - determines the cloud's type. Also cost, security, and customariness widely inuence the decision of choosing the correct cloud type wildly[1]. The main types of clouds are public and private clouds. There are dierent combinations of private and public clouds such as hybrid, and community clouds. The most common types of clouds are named below[1][4]: I Public Clouds: cloud resources are open for public use. I Private Clouds: cloud resources are owned or leased by a single organiza- tion. 1 Introduction to Cloud Computing 9 I Hybrid Clouds: composition of dierent types of clouds to enable a service. I Community Clouds: cloud resources are shared by several organizations. I Virtual Private Clouds (VPC): private clouds over public ones via vpn. After mentioning the types of clouds, next is a short comparison between public, private, and virtual private clouds. 1.3.2 Cloud Comparison The public and private clouds are the basic types of clouds[1]. The other types of clouds could be delivered from public and private clouds as well as virtual private clouds. The main dierences between public, private, and virtual private clouds is shown in gure 2 [2]. Aspect \ Cloud Public Private Virtual Private Cost low high low Customization no yes yes Privacy low high high Fig.