An Evaluation of OpenStack - Blackboard Learn Evaluation of OpenStack Conor Sloan Computer Science ... This project involves researching into the various features and characteristics of the OpenStack tech-

  • Published on
    03-May-2018

  • View
    214

  • Download
    2

Embed Size (px)

Transcript

  • An Evaluation of OpenStackConor Sloan

    Computer Science

    2013/2014

    '

    &

    $

    %

    The candidate confirms that the work submitted is their own and the appropriate credit has been given

    where reference has been made to the work of others.

    I understand that failure to attribute material which is obtained from another source may be considered

    as plagiarism.

    (Signature of student)

  • SummaryThis project involves researching into the various features and characteristics of the OpenStack tech-

    nology, via a number of different approaches, including research analysis & both manual and auto-

    mated experimentation, in order to provide an Evaluation of the technology for the upcoming EU

    project ASCETiC[1].

    This Evaluation of OpenStack will hope to achieve a greater insight to its workings, providing a

    guide by which to effectively utilise its features whilst avoiding its potential pitfalls and difficulties.

    It will also provide validation for a lot of key functionality, as a way of determining whether use of

    OpenStack in a project is justified, along with a review of the various use cases of OpenStack, in order

    to assess its viability in the current market. In order to achieve these aims, a simple experiment based

    model will be used, with logs and conclusions of these experiments forming the bulk of the evalua-

    tion. A high level research approach will be used in conjunction with this to give a good overview of

    the technology.

    The deliverables for this project include a report detailing my approach to evaluating OpenStack,

    as well as a number of designed experiments with results and logs attached, including my own reflec-

    tion and conclusions on what these results represent. As a secondary objective, this project aims to

    provide re-usable software tools and components, such as libraries and scripts, for the effective use of

    OpenStack in future.

    i

  • AcknowledgementsFirstly, I would like to thank my project supervisor, Karim Djemame, for his unwavering support,

    guidance and patience, especially in times where circumstance made project progress difficult. This

    project would have been very difficult without his knowledge and experience.

    Secondly, my thanks to Django Armstrong, who, despite having a very busy schedule, took the time

    to deploy OpenStack on the TestBed on behalf of my project, and was consistently responsive and

    helpful whenever there were technical issues concerning the deployment.

    I would also like to thank David Duke, my assessor, whose feedback and guidance from my mid-

    project report and organised assessor meeting were invaluable in uncovering the real aims and identity

    of this project.

    ii

  • Contents

    1 Introduction 11.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

    1.1.1 Project Aims and Justification . . . . . . . . . . . . . . . . . . . . . . . . . 2

    1.1.2 Objectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

    1.1.3 Minimum Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

    1.1.4 Possible Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

    1.1.5 Deliverables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

    1.2 Methodology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

    1.2.1 Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

    1.2.2 Experiment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

    1.3 Project Plan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

    1.3.1 Schedule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

    1.3.2 Milestones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

    1.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

    2 Background Research 72.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

    2.2 Cloud Computing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

    2.2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

    2.2.2 Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

    2.2.3 Types of Cloud . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

    2.2.4 Service Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

    2.2.5 History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

    2.2.6 Desired Characteristics & Challenges . . . . . . . . . . . . . . . . . . . . . 12

    2.3 Virtualisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

    2.3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

    2.3.2 The Data Centre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

    2.3.3 Virtual Infrastructure Management . . . . . . . . . . . . . . . . . . . . . . . 15

    2.3.4 Features of VIMs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

    iii

  • 2.3.5 Current VIM Technologies . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

    2.4 OpenStack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

    2.4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

    2.4.2 Overview of Technology . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

    2.4.2.1 Aims of the Project . . . . . . . . . . . . . . . . . . . . . . . . . 20

    2.4.2.2 Design/Architecture of Project . . . . . . . . . . . . . . . . . . . 21

    2.5 Current Evaluations of OpenStack . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

    2.6 Plan for Evaluation of OpenStack . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

    2.7 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

    3 Design & Implementation 253.1 Warm-up Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

    3.1.1 Deploying OpenStack on the Test Bed . . . . . . . . . . . . . . . . . . . . . 25

    3.1.2 Experimenting with OpenStack - Experiment 0 . . . . . . . . . . . . . . . . 26

    3.2 Experiment Planning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

    3.3 Part 1: Analysis of OpenStack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

    3.3.1 Architecture & Feature Analysis of OpenStack . . . . . . . . . . . . . . . . 27

    3.3.1.1 At a Glance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

    3.3.1.2 Dashboard (Horizon) . . . . . . . . . . . . . . . . . . . . . . . . 29

    3.3.1.3 Compute (Nova) . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

    3.3.1.4 Networking (Neutron) . . . . . . . . . . . . . . . . . . . . . . . . 31

    3.3.1.5 Block Storage (Cinder) . . . . . . . . . . . . . . . . . . . . . . . 32

    3.3.1.6 Object Storage (Swift) . . . . . . . . . . . . . . . . . . . . . . . . 32

    3.3.1.7 Identity Service (Keystone) . . . . . . . . . . . . . . . . . . . . . 33

    3.3.1.8 Image Service (Glance) . . . . . . . . . . . . . . . . . . . . . . . 34

    3.4 Part 2: Exploring OpenStack through Experimentation . . . . . . . . . . . . . . . . 35

    3.4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

    3.4.2 Keystone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

    3.4.2.1 Experiment K1: Keystone Validation . . . . . . . . . . . . . . . . 36

    3.4.2.2 Experiment K2: Packet Interception . . . . . . . . . . . . . . . . 37

    3.4.3 Nova . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

    3.4.3.1 Experiment N1: Nova Validation . . . . . . . . . . . . . . . . . . 40

    3.4.3.2 Experiment N2: Nova Extensions Validation . . . . . . . . . . . . 42

    3.4.3.3 Experiment N3: Server Launch Performance . . . . . . . . . . . . 44

    3.4.3.4 Experiment N4: Server Status Analysis . . . . . . . . . . . . . . . 48

    4 Evaluation 504.1 Implementation / Results Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

    4.1.1 Qualitative Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

    iv

  • 4.1.2 Qualitative & Quantitative Experiments . . . . . . . . . . . . . . . . . . . . 51

    4.1.3 Delivered OpenStack Client . . . . . . . . . . . . . . . . . . . . . . . . . . 52

    4.1.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

    4.2 Comparison with other Evaluations . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

    4.2.1 ETF Evaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

    4.2.2 CERN Evaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

    4.2.3 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

    4.3 Project Management & Outcome . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

    4.3.1 Aims & Objectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

    4.3.2 Project Methodology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

    4.3.3 Project & Time Management . . . . . . . . . . . . . . . . . . . . . . . . . . 57

    4.3.4 Unexpected Issues/Limitations . . . . . . . . . . . . . . . . . . . . . . . . . 58

    4.4 Future work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

    4.4.1 Further Research . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

    4.4.2 Further Experiments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

    4.4.3 Improving the REST Client library . . . . . . . . . . . . . . . . . . . . . . . 59

    4.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

    5 Conclusion 60

    Bibliography 61

    A Personal Reflection 67

    B Record of External Materials Used 70

    C How Ethical Issues were Dealt With 71

    D Warm-up Exercises 72D.1 Dashboard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

    D.2 Command Line Interface (CLI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

    D.3 RESTful Web Service APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

    D.4 Experiment Conclusion - Comparing Interfaces . . . . . . . . . . . . . . . . . . . . 88

    E Project Deliverable - OpenStack REST Client Description 90E.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

    E.2 Project Build . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

    E.2.1 Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

    E.2.2 Maven . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

    E.3 Project Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

    E.3.1 Spring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

    v

  • E.3.2 REST Clients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92

    E.3.3 Experiments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92

    E.3.4 Utilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

    E.4 Delivered Items . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94

    F Initial and final GANTT Chart 95

    G Mid Project Report 98G.0.1 Part 1: Aims & Objectives . . . . . . . . . . . . . . . . . . . . . . . . . . . 98

    G.0.2 Part 2: Project Planning . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98

    G.0.2.1 Project Methodology . . . . . . . . . . . . . . . . . . . . . . . . 99

    G.0.2.2 Project Scheduling . . . . . . . . . . . . . . . . . . . . . . . . . . 99

    G.0.3 Background Research . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99

    G.0.4 Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99

    G.0.5 Next Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100

    vi

  • Chapter 1

    Introduction

    This section will outline an introduction to the project, discussing a number of different topics such

    as:

    The chosen domain and involved technologies The motives and justification behind the project The Aims and Objectives of the project The chosen approach to the execution of the project The Project Plan going forward

    Hopefully, these explanations will give some context to the work being done, answering such ques-

    tions as Why this project? and What value does this work bring?

    1.1 Project Overview

    I chose to pursue this project for a number of reasons. Firstly, Cloud Computing is an area of technol-

    ogy which I have great interest in, having worked with similar technologies in previous employment

    and in personal projects. Secondly, and perhaps more importantly, is the incredible rise of the Cloud

    to prominence in the Computing industry in recent years, with the Infrastructure as a Service (IaaS)

    model at the forefront. The emergence of public clouds from tech giants such as Amazon and Mi-

    crosoft has lead to a huge increase in the popularity of related software technologies, usually Virtual

    Infrastructure Managers using Virtualisation technology to service clients computing needs in an on-

    demand manner.

    1

  • Amongst the many current solutions out there, one technology in particular has grown in popularity

    to the point that it is fast becoming the de facto open source standard for IaaS clouds. This technology

    is OpenStack. This popularity makes OpenStack a perfect candidate to be assessed in terms of its ca-

    pabilities and characteristics; in short, we want to know why OpenStack is becoming so popular, and

    if this popularity is justified. In order to answer this question, my work will involve researching into

    the relevant areas of Cloud Computing, Data Centre Virtualisation and Web Services, and performing

    qualitative and quantitative assessment of OpenStack through various approaches and experiments.

    1.1.1 Project Aims and Justification

    There are a number of aims to this project. Firstly, I aim to research the area of Infrastructure as a Ser-

    vice Clouds, including the desirable characteristics and requirements of these clouds from a number of

    different perspectives, current IaaS market offerings, and what technologies are involved in producing

    such a solution. This research should culminate in an overview of OpenStack, which technologies it

    uses, and what it does. Once this background research preparation is complete, my main target will

    be to produce a critical evaluation of OpenStack, in the form of a report, detailing OpenStack with

    respect to its functionality and architecture. I also aim to perform both qualitative and quantitative as-

    sessment of OpenStack through experiments. These experiments will also be part of my deliverable,

    and should serve as documentation of how to use OpenStack, and provide re-usable software to test

    the functionality of OpenStack. The results of these experiments will be used as evaluation. Finally,

    I will analyse my results and approach to evaluation of OpenStack, and ask a number of questions

    concerning how well my performance covers the tec...