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-

  • 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 . . . . . . . . .