SlideShare a Scribd company logo
1 of 126
Download to read offline
BNS CLOUD APPLICATION SYSTEM USING OPENSTACK
MALAYSIAN INSTITUTE OF INFORMATION TECHNOLOGY
UNIVERSITI KUALA LUMPUR
2014
BET(HONS)INNETWORKINGSYSTEMS2014
BNS CLOUD APPLICATION SYSTEM USING OPENSTACK
MOHAMMAD HAFIZ BIN ZUBAIR
Dissertation Submitted In Fulfillment of the Requirements
For the Bachelor of Engineering Technology (Hons) Networking System
in the Malaysian Institute of Information Technology,
Universiti Kuala Lumpur
2014
ii
DECLARATION PAGE
I declare that this dissertation is of my original work and all references have been
cited adequately as required by the institute.
Date: Signature:
Full Name: Mohammad Hafiz Bin Zubair
ID No. : 52208211079
iii
APPROVAL PAGE
We have examined this dissertation and verify that it meets the program and institute’s
requirements for Bachelor of Engineering Technology (Hons) Networking System.
…………………………………………….
ROZIYANI BINTI RAWI
…………………………………………….
MUHAMMAD EZRA BIN MUHAMMAD ISMAIL
SYSTEM AND NETWORKING
UNIVERSITI KUALA LUMPUR
MALAYSIA INSTITUTE OF INFORMATION TECHNOLOGY
iv
COPYRIGHT PAGE
Declaration of Copyright and Affirmation of Fair Use of Unpublished Researched
Work as stated below:
Copyright @ 11/6/2014 by
MOHAMMAD HAFIZ BIN ZUBAIR (52208211079)
All rights reserved for BNS CLOUD APPLICATION SYSTEM USING
OPENSTACK
No part of this unpublished research may be reproduced, stored in a retrieval system,
or transmitted, in any form or by any means, electronic, mechanical, photocopying,
recording or otherwise without the prior written permission of the copyright holder
except as provided below:
i. Any material contained in or derived from this unpublished research may
only be used by others in their writing with due acknowledgement.
ii. MIIT Universiti Kuala Lumpur or its library will have the right to make and
transmit copies (print or electronic) for institutional and academic purposes.
iii. The Universiti Kuala Lumpur’s library will have the right to make, store in
retrieval system and supply copies of this unpublished research if requested
by other universities and research libraries.
v
DEDICATION
I would like to dedicate this project to my family for their love and support
towards my project. This dissertation could not have been written without Madam
Roziyani Binti Rawi who not only served as my final year project supervisor but also
encouraged me to do my best for this project until it is successfully completed. I also
would like to thank you for the co-operation, knowledge, and information during my
final year project. Last but not least, a lot of thank you to all members that giving their
time and knowledge to successfully achieve my final year project objectives. Thank
you for all the effort.
vi
ACKNOWLEDGMENT
Alhamdulillah and praise to Allah for giving me the strength to complete this
final year project even though there are many obstacle in the ways. The project
delivered in this paper could not have been accomplished without the help of many
individuals. I would like to acknowledge the contributions of the following groups and
individuals for successfully complete this project.
First I would like to thank my supervisor, Madam Roziyani Binti Rawi for the
helped in documentation parts of the project and letting me to use her room to park my
server. Thank you for all the guidance, valuable suggestion, comment, advice, support
and concern throughout the completion of this project.
Along this period, I also would like to thank to my friends for their supports
throughout the development and implementing the projects.
My sincere appreciation also goes to all MIIT Lecturers involved in this Final
Year Project for all their support and advice not only in this project but also during
most of my study period.
Finally, I am thankful to all people who names are not been mentioned for their
encouragement, criticism, and support for this project.
Thank you.
vii
TABLE OF CONTENTS
DECLARATION
APPROVAL PAGE
COPYRIGHT PAGE
DEDICATION
ACKNOWLEDGEMENT
TABLE OF CONTENTS
LIST OF TABLES
LIST OF FIGURE
LIST OF ABBREVIATION
ABSTRACT
ABSTRAK
ii
iii
iv
v
vi
vii
xi
xii
xiv
xv
xvi
CHAPTER I: INTRODUCTION 1
1.1. Introduction
1.2. Objective
1.3. Scope
1.4. Problem Statement
1.5. Proposed Solution
1.6. Limitation
1
1
2
2
3
3
CHAPTER II: LITERATURE REVIEW 4
2.1. Overview
2.2. Introduction to Cloud Computing
2.3. Cloud Computing Performance
2.4. Private Cloud Computing
2.5. Open Source Cloud Computing Management Platforms
4
4
5
6
7
viii
2.6. Comparison between Clouds Computing Management Tool
2.7. OpenStack and OpenNebula
2.8. Cloud Computing Security Challenge
8
10
12
CHAPTER III: METHODOLOGY 15
3.1. Introduction
3.2. Methodology
3.2.1. Initiation
3.2.2. Research
3.2.3. Planning
3.2.4. Design
3.2.4.1. Cloud Computing Server
3.2.4.2. Existing Network
3.2.4.3. Users
3.2.5. Development
3.2.5.1. OpenStack Architecture
3.2.5.2. All-in-one server
3.2.5.3. Monitoring
3.2.5.4. OpenStack Glance
3.2.5.5. Authentication
3.2.5.6. Security
3.2.6. Implementation
3.2.6.1. Client side
3.2.6.2. Server side
3.2.6.3. Network side
3.2.7. Testing
3.2.8. Analysis
3.3. Work Breakdown Structure (WBS)
3.4. Gantt Chart
3.5. Project Resources
3.5.1. Hardware
15
15
16
17
18
20
20
21
21
21
21
21
22
22
22
22
23
23
24
24
25
25
26
27
27
27
ix
3.5.2. Software
3.6. Project Costing and Budget
3.6.1. Cost for Hardware
3.6.2. Cost for Software
30
31
31
31
CHAPTER IV: DEVELOPMENT/PROTOTYPE 32
4.1. Introduction
4.2. Cloud Computing Server
4.3. Development Process
4.3.1. Installation requirement
4.3.2. Preparing all-in-one: dedicated hardware server
4.3.3. Creating basic virtual machine image
4.3.4. Importing image to the OpenStack Glance
4.3.4.1. Logon to OpenStack
4.3.4.2. Navigate to image tab
4.3.4.3. Launching an instance
4.3.5. Connecting to the instance
4.3.5.1. VNC Viewer
4.4. Monitoring Performance
4.4.1. Network Management Software (NMS)
4.4.2. Install SNMPD service on OpenStack server
4.4.3. Configure PRTG to monitor OpenStack server
32
32
33
33
33
38
42
42
43
44
45
45
46
46
47
48
CHAPTER V: TESTING AND RESULT 51
5.1. Introduction
5.2. Testing Method Approach
5.3. Creating Instances
5.3.1. Testing
5.3.2. Result
51
52
53
54
58
x
5.3.3. Analysis
5.4. Common Approach
5.4.1. Testing
5.4.2. Result
5.4.3. Analysis
5.5. Stressing OpenStack Server
5.5.1. Testing
5.5.2. Result
5.5.3. Analysis
61
62
62
63
66
67
67
70
74
CHAPTER VI: CONCLUSION AND RECOMMENDATION 75
6.1. Conclusion
6.2. Recommendation
75
76
REFERENCES
GLOSSARY
APPENDIX A: GANTT CHART
APPENDIX B: UBUNTU SERVER 14.04.4 INSTALLATION
APPENDIX C: OPENSTACK SYSTEM OVERVIEW
APPENDIX D: ACADEMIC RESEARCH PAPER
76
79
81
86
94
104
xi
LIST OF TABLES
Table 2.1: Comparison of cloud computing tools
Table 2.2: Comparison of OpenStack and OpenNebula feature
Table 2.3: Overview of literature reviews
Table 3.1: Indicates the components involves throughout this project
and relationship between each other
Table 3.2: Required installation and configuration of the component
Table 3.3: Component involved in the server side
Table 3.4: Networking devices
Table 3.5: Detail information on each hardware
Table 3.6: Indicate the software requirement in each component
Table 3.7: Hardware costing
Table 3.8: Software costing
9
11
13
18
23
24
24
28
30
31
31
xii
LIST OF FIGURES
Figure 2.1: Three cloud computing infrastructure
Figure 2.2: Cloud computing overview
Figure 3.1: RAD Methodology Model
Figure 3.2: Cloud computing diagram
Figure 3.3: Work Breakdown Structure diagram
Figure 4.1: Network diagram of the OpenStack implementation
Figure 4.2:All the necessary files retrieved using git
Figure 4.3: Modify the local.conf with the following configuration
Figure 4.4: Installation process is started
Figure 4.5: Example of scripted installation process
Figure 4.6: Summary of ./stack.sh
Figure 4.7: OpenStack login page at 10.6.2.230
Figure 4.8: Fill in information during installation process
Figure 4.9: Red Hat VirtIO is the default adapter to provide connection
Figure 4.10: Installation of GNS3
Figure 4.11: Login using username admin and password both admin
Figure 4.12: Create an image pop-up filled with necessary information
Figure 4.13: Show the example on how to create an instance
Figure 4.14: Summary of the created instance
Figure 4.15: Enter the VNC Server IP address
Figure 4.16: PRTG interface
Figure 4.17: First step to add new device to PRTG
Figure 4.18: Example of device configuration
Figure 4.19: Sensors that discovered at OpenStack server
Figure 4.20: Show the current active sensors
Figure 5.1: Running instances handled by OpenStack
Figure 5.2: List of images available in OpenStack Server
Figure 5.3: Launch instance pop-up form
Figure 5.4: Summary of Windows7-VNC image converted to Win7-1
instance
5
7
16
20
26
32
34
35
36
36
37
37
39
40
41
42
43
44
45
45
46
48
49
49
50
52
53
54
55
xiii
Figure 5.5: VNC Viewer interface
Figure 5.6: Select location in Win 7-1
Figure 5.7: Inside the instance
Figure 5.8: CPU utilization from 1:20AM to 2:20AM
Figure 5.9: Physical memory utilization from 1:20AM to 2:20AM
Figure 5.10: Bandwidth utilization from 1:20AM to 2:20AM
Figure 5.11: Three Cisco 3725 series virtual router
Figure 5.12: CPU utilization from 10:40PM to 11:35PM
Figure 5.13: Physical memory utilization from 10:40PM to 11:35PM
Figure 5.14: Bandwidth utilization from 10:40PM to 11:35PM
Figure 5.15: Sixth and seventh instance created
Figure 5.16: Hypervisor summary
Figure 5.17: HeavyLoad software stressing CPU usage
Figure 5.18: Error occur to start virtual router
Figure 5.19: CPU utilization from 9:40PM to 10:30PM
Figure 5.20: Physical memory utilization from 9:40PM to 10:30PM
Figure 5.21: Bandwidth utilization from 9:40PM to 10:30PM
55
56
57
58
59
60
62
63
64
65
67
68
69
70
71
72
73
xiv
LIST OF ABBREVIATION
All–in-one
Central Processing Unit
Infrastructure as a Service
Kilobyte Virtual Machine
Laboratory
Malaysian Institute Of Information Technology
Network Monitoring System
Operating System
Platform as a Service
Random Access Memory
Secure Shell
Simple Network Management Protocol Daemon
Software as a Service
Universiti Kuala Lumpur
Virtual Central Processing Unit
Virtual Machine
Virtual Network Computing
AIO
CPU
IaaS
KVM
Lab
MIIT
NMS
OS
PaaS
RAM
SSH
SNMPD
SaaS
UniKL
VCPU
Instance
VNC
xv
ABSTRACT
This study is to focus on how the cloud computing works and implements it on
real world situation where the system can be accessed throughout the UniKL City
Campus MIIT and can be used by students to do their works or assignments using the
system. The methodology used in this project is a Rapid Application Development
(RAD) model because it provides continuous development and documentation to be
reviewed about the performance of the systems. This methodology consists of eight
phases which are initiation, research, planning, design, development, testing,
implement and analysis. This project is developed using OpenStack cloud
management software on a single all-in-one hardware server that capability to create
five to six instances. This project is tested in a controlled environment where each of
the instances are loaded with GNS3 and HeavyLoad software to simulate the real
workload on CPU utilization, RAM usage and network load. During the session, it was
also being monitored using network monitoring system tool to capture the server state.
Even though the server is pushed to the limits, it can still create additional instances
using available resources, but the created instance, will face some problem when
loading high computes application such as GNS3 where it failed to start the virtual
routers.
xvi
ABSTRAK
Kajian ini ialah untuk mengkaji pada bagaimana pengkomputeran awan
bekerja dan melaksanakan ia di keadaan dunia sebenar di mana sistem boleh diakses
di seluruh UniKL City Campus MIIT dan boleh digunakan oleh pelajar untuk
melakukan kerja-kerja atau tugasan-tugasan mereka menggunakan sistem itu. Kaedah
yang digunakan dalam projek ini ialah Rapid Application Development (RAD) model
kerana ia menyediakan pembangunan berterusan dan dokumentasi untuk dikaji semula
tentang prestasi system ini. Kaedah ini terdiri daripada lapan fasa yang mana ia adalah
permulaan, penyelidikan, perancangan, merangka, membangunkan, menguji,
melaksanakan dan analisis. Projek ini di bangun menggunakan pengurusan perisian
awan OpenStack di satu pelayan perkakasan yang semua dalam satu yang
berkebolehan mewujudkan lima kepada enam “instance”. Projek ini diuji di satu
persekitaran terkawal di mana setiap “instance” dibebankan mengguna perisian GNS3
and HeavyLoad untuk mensimulasikan pekerjaan sebenar memuatkan penggunaan
CPU, penggunaan RAM dan rangkaian. Semasa sesi itu, ia juga dipantau
menggunakan aplikasi sistem pemantauan rangkaian untuk memeriksa keadaan
pelayan. Walaupun pelayan sedang berada di had maksimum, ia masih boleh mencipta
“instance” tambahan menggunakan sumber-sumber yang ada tetapi “instance”
tersebut akan menghadapi sedikit masalah apabila memuatkan aplikasi seperti GNS3
di mana ia gagal memulakan “routers” maya.
1
CHAPTER I: INTRODUCTION
1.1. Introduction
Now days, there are many applications specifically for networking
students such as Bachelor of Networking System (BNS) that are requiring a
high specification computer to execute the applications. Therefore, cloud
computing is necessary in the UniKL environment to be fully utilized by BNS
students so that they don’t have to purchase an expensive laptop just to run the
applications.
For this final year project, it was necessary to create a cloud computing
server that allows BNS student to utilize and used it as a processing station to
run applications that required high computing resources such as GNS3. The
student can use computers in the any available lab or their own laptop installed
with VNC Viewer to use this cloud computing services as long as they are in
the UniKL networks.
To achieve this, the server will be using Infrastructure as a Service
(IaaS) and Software as a Service (SaaS) platform to provide the cloud service
to the students. For the server, it will using all-in-one hardware OpenStack
configuration which means all the necessary components to run the cloud is
installed in one machine and Ubuntu Server 12.04.4 will be used as the main
operating system.
1.2. Objective
· To study and understand how to configure, set up and to apply the
OpenStack system into the existing UniKL network.
· To develop BNS Cloud Server system using Linux Ubuntu.
· To analyze the performance of the BNS Cloud Server System among
the control group of BNS students.
2
1.3. Scope
· The cloud management system for the cloud computing will be using
OpenStack.
· The testing will be done in a controlled environment which involves a
group of BNS students who are using applications such as packet tracer
and GNS3 to make sure it can run as it intended.
· To test the performance of the server when utilized by a number of
students and constantly monitoring the server.
· The performance of the cloud server will be measured based on the
RAM usage, network load and CPU utilization by using a network
monitoring system (NMS) tool via PRTG.
· The ability to execute program smoothly and respond time between the
user and the virtual machine will not be covered.
1.4. Problem Statement
Many new applications today required fast central processing unit
(CPU) and large capacity of RAM just to meet the requirement and executing
the applications smoothly which is costly. Based on observation and
experiences of using computers in UniKL Lab, many computers on it are still
using old computers and had many problems of running application such as
packet tracer where the application just stuck and not loading at all. For GNS3,
a minimum of at least dual-core or quad-core CPU with 2GB RAM to run 3-5
router is required as mentioned on their website, which is not computer in the
UniKL Lab is equipped for.
It is costly for management to change all this computer just to run the
applications. For the BNS students, they often lost their thumb drive containing
important documents without making a backup while doing their work in the
Lab. By investing in a single, powerful cloud computing server, it can fulfill
the requirement that students need to do their jobs by running all the required
applications on the server.
3
1.5. Proposed Solution
· By using low specification computer in the UniKL lab, it should be
able to run the latest applications for learning purpose pre-installed in
the cloud computing system.
· BNS students can use an application from the server in real-time,
meaning that they can load the application anywhere in the UniKL
network using computers in the Lab or their laptop.
· BNS students are able to store their work on the server as long as they
don’t exceed the quota limits of the storage allocated for them.
1.6. Limitation
There are several limitations of this project that cannot be avoided.
· The server specification will only be able to support five users at a time
for optimal usage.
· The performance of the server will be affected as for the number of the
users connected to the server are increasing.
· A quota system will be allocated for each BNS student’s account so
that they can store their work as long as not exceed the quota allocated
for them.
· The server can only be able to access internally by BNS students, which
means this is a private cloud.
4
CHAPTER II: LITERATURE REVIEW
2.1. Overview
Cloud computing is a new way of delivering hardware and software
through the computer network such as local area network and the Internet.
Starter consumers that have the potential to explode new ideas can utilize this
cloud computing without required to invest in a large significant capital to set
up new hardware and software or the resources to maintain the components
over a long period [1]. In this literature review, it will focus on the method of
how cloud computing will deliver the services over the UniKL campus local
area network to be accessed by BNS students.
2.2. Introduction to Cloud Computing
The collection of software and hardware in a data center is what a cloud
computing true body [1]. A private cloud is referring to the internal cloud
server made available only within the organization, in this case is UniKL
campuses. Cloud computing is designed to allow a developer or consumer to
access the provided software, platform and infrastructure as a service over the
computer network wherever you are. There are many features of cloud
computing that are considered as advantages of the cloud resources such as
pooling, rapid elasticity, measured service, on-demand self-service and broad
network access [2].
There are three categories in cloud computing:
I. Software as a Services (SaaS)
II. Platform as a Services (PaaS)
III. Infrastructure as a Services (IaaS)
5
(http://www.cloudave.com, 2013)
Figure 2.1: Three cloud computing infrastructure
In this FYP project, only one category will be covered which is
Infrastructure as a Service to be provided to BNS students as a learning
platform. IaaS is the collection of software and hardware which is servers,
storage, networks and operating system to be utilized by the consumer [2], all
the resources that available in the cloud can be used by the consumer without
buying all those expensive equipment’s [3].
2.3. Cloud Computing Performance
According to Dr. Neeraj (2013), cloud computing is the act of
combining the concepts of grid and distributing computing where it support
the sharing of hardware such as server memory and CPU process and also
software such as data and application simultaneously to multiple clients at a
time [5]. In a private cloud, where virtual machines (VM) based application is
widely used, such as virtual desktop where students just need a computer
whether their own or computer in the UniKL lab to access applications on the
cloud server. Commercial cloud computing is an internet based that consist of
thousands of computers connected to the cloud [5], however private cloud is
only within an organization that has a specific amount of computers it need to
be served and it is not open to public.
The overall performance of the cloud computing server according to
Dr. Neeraj (2013), is depending on “How light the interface?” And “How is
the availability of resources at the server?” Based on this conclusion, the main
6
performance issues of the cloud computing is the cloud server itself, where the
hardware and software is affecting the whole cloud computing performance to
the clients. To overcome this, multiple powerful computer that has many
resources such as CPU core and memory can be used in the system. But, for
the BNS Cloud Application System that implement private cloud
infrastructure where only ten clients will be used for testing purposes, it will
not require a powerful computer as the main cloud computing server.
2.4. Private Cloud Computing
A private cloud is a cloud computing model that dedicated only to a
particular organization that hosted the cloud server in their own building.
Private cloud allows the administration to host any applications on the cloud
that low specification computer cannot support so that any computers in the
organization can use the applications without needed to upgrade which is very
costly. Also the security of data in the cloud computing server is protected
because it is hosted inside the organization and maintained by their own IT
personnel. Although the private cloud is more expensive to set up compared
to use public clouds, an info-tech survey that done shows that 76% of IT-
decision maker will focus on the private cloud because it is more secure and
provide more control on the cloud [8].
7
([4], 2011)
Figure 2.2: Cloud computing overview
In figure 2.2 shows the overall overview of available cloud computing
model, but with the same function which is to share resources among clients.
2.5. Open Source Cloud Computing Management Platforms
The increases of the use of Open Source (OS) have developed in recent
years, therefore it is possible to manage cost-effective and efficiently
structured cloud management platform using Open Source that available today
[4]. This article compares the existing open source cloud computing
management platforms and suggests some recommendations to the user. Four
open source platforms have been discussed and comparison of structuring
cloud solutions for example, Abicloud, Eucalyptus, OpenNebula and Nimbus.
The important factor to make a decision to which open source license
is the software products use or security precaution they offer. Interoperability,
as well as robustness against malfunction makes it possible to transfer
application between clouds or use several clouds at once. These are play
important factor in daily use. The possibility and compatibility with other
platforms create the virtual independent machine for decision making. The
8
comparisons clearly state the differences between each platform. Through
these differences, it is possible to make a conclusion on different fields of
implementation. This is showing that commercial enterprises are able to
construct a cloud solution on the basis open source platform as well as open
source is particularly suited to this purpose.
It is important to get detailed information regarding the features and
differences of the products. This has been gained through this article from two
aspects. Firstly, the explanation is focusing on different functional methods in
detail and it comes to a commonality and differences between the four
platforms. As a conclusion, open source platforms for cloud computing not
yet reached their limit in the development stage. This technology is still very
new to the technology and it currently needs extreme development process.
2.6. Comparison between Clouds Computing Management Tool
With the increasing demand for cloud computing system, there are
many open source management tools developed for a specific type of cloud
computing models. These open source applications is free to use and provide
cost effective, independent, innovative, and flexible solutions which are easily
to be implemented to an existing system [4].
The cloud computing management tool is used to construct and manage
cloud architectures for administrator to set up their own cloud computing on
existing systems. Over the years, many tools has undergone strong growth in
the market are available to choose from commercial that has better support for
open source that is flexible enough to work with many underlying systems
such as different Hypervisors [4].
There are four famous open source cloud computing management tools:
a) Eucalyptus: Stand for Elastic Utility Computing Architecture for
Linking Your Programs to Useful System is a project from the
University of Santa Barbara in California, and it was used to
construct an open source private cloud platform [4].
9
b) OpenNebula: Is the European Union’s flagship in the field of
research projects with the goals to provide Virtualization and cloud
computing [4].
c) Abicloud: Is developed by Abiquo which is also the company that
maintain and enhance the cloud system [4].
d) Nimbus: Is a toolkit that makes possible to convert cluster into a
cloud computing in the form of IaaS [4].
In the table 2.1, it shows the summary of each cloud computing
management tools available and compared for better view and understanding
the features of the cloud system.
Table 2.1: Comparison of cloud computing management tools
Description Abicloud Eucalyptus OpenNebula Nimbus
Architecture
Distinctive
web-based
management
function
Hierarchically
grouped from
CLC via the
CC to the NC
Three modules
contain all the
components
Three
modules
contain all the
components
Cloud type
supported
Public /
Private /
Hybrid cloud
Private /
Hybrid cloud
Public / Private
/ Hybrid cloud
Private /
Community
cloud
Hypervisor
supported
Virtual Box,
VMware,
KVM Xen
VMware,
KVM Xen
VMware, KVM
Xen
Python, Bash,
Ebtables,
Libvirt, KVM
Xen
Data / VM
storage
ZFS
Opensolaris,
Logical
Volume
Manager
Walrus
Network File
System or
Secure Copy
Cumulus File
System
Backend
Storage
User
Interface
Cloud
Operator API
Euca2ools
(CLI)
Command Line
Interface (CLI)
Web-services:
Nimbus Web
Robustness
against error
No additional
data backup
Separated
cluster to
Permanents
database to
Regularly
check and
10
reduce
correlated
errors
store
information
about host and
VMs
backup for
worker nodes
Security
Code Access
System
(CAS)
Generate a
public/private
key code to
pairing with
user
authentication
Authentication
by password,
secure shell and
RSA key code
pairings
Lightweight
Directory
Access Protocol
Public Key
Infrastructure
([4], 2011)
2.7. OpenStack and OpenNebula
Private cloud management is a development of an open-source cloud
platform that is widely used which can substitute commercial cloud. This paper
is presented on the function of OpenStack and OpenNebula with comparison
in some aspect with some deployment recommendations. This research focuses
on the feature and a summary of both platforms. OpenStack is an open source
software or cloud providers that used to set up the cloud computing and the
storage. While OpenNebula is an open source target at building industry
standard to manage the complex cloud computing infrastructure where it is
offering flexible ways to build public or private clouds [10].
In table 2.2, it shows the detailed comparison between both cloud
management platforms.
11
Table 2.2: Comparison of OpenStack and OpenNebula feature
OpenStack OpenNebula
Provenance
Include three major parts:
Compute, object storage, Image
service
Accumulation of virtual
machine management,
Distribution infrastructure of
data centers
Architecture Straightforward, stable
Provide more low-level
feature, can work without a
shared FS, secure Copy (SCP)
Virtualization
Hypervisors
Support available hypervisors
Only support three: Xen, KVM
and VMW
Scale and Activity
Level of
Community
Increasing more than
OpenNebula
Almost Increasing
User Interface
Used application Amazon Web
Services (AWS)
Used application Open Cloud
Computing Interface (OCCI),
EC2
Security
Provides firewall and Virtual
Private Network (VPN)
Secure and efficient
authentication and
authorization – passwords and
RSA key code
([10], 2013)
From the comparison of OpenStack and OpenNebula, OpenStack
includes three parts: that is Nova, Swift, and Glance. It is popular among
enterprise around the world. OpenNebula is an accumulation of management
virtual machine and has more than 4000 downloads per month to build their
own cloud – Big Cloud. OpenStack offer the same service to be alternative who
does not want to use billing cloud. Therefore OpenStack is more suitable,
straightforward because the documentation guidance can be seen on websites.
OpenNebula suitable for a research institute for large data centers to support
the research. It is ideal for users who likes to run a cloud machine quickly,
dealing with large data, protecting investment and avoid vendor lock-in [10].
12
The research has clearly shown the different of OpenStack and
OpenNebula from architecture, hypervisors, security and other angles. This
evaluation will help people understand their goal and function. The result as a
recommendation in a better use of OpenStack and OpenNebula.
2.8. Cloud Computing Security Challenge
Cloud computing is an internet based service that provides services
such as computing and storage for all users, including few sectors such as
financial, government and healthcare. Therefore the overall journal is about
the systematic review on different types of clouds as well as the security
challenge that should be solved. Since a cloud is the hardware and software
collection that store in the data center, it raised a several challenges on security
issues for the service. Their some characteristics that have been proposed for
maintaining the security in a cloud computing environment. It is also included
the software platform infrastructure for each categorywithin Cloud computing
such as SaaS, PaaS, and IaaS and defines some of the characteristics for each
category. As mention before the variety of clouds is also classified into
personal clouds, general clouds, domain-specific clouds and mixed clouds.
This journal gives a comparison between different service providers on
different clouds. In general clouds the challenge that is yet to be solved are the
Dos Attack in Virtual Machine (VM) or placing malicious code on the
physical line. Domain specific cloud for example, includes retail and financial
service or organization. The security issues include the compliance and
auditing, intrusion Detection (IDS) and firewall features, access control and
antivirus protection. Besides, a hybrid cloud is a combination of one private
cloud and one general cloud which is provides organization to manage
resources externally and internally. It is scalability and cost effectiveness of a
business. The issues of the security in these clouds were all ongoing
compliance concerns, access control and identity management, data slinging
and risk of multiple cloud tenants.
13
As a conclusion, this journal has been focused on the different type of
clouds and the writer describes the way of the possible solution to security
threats on each level.
In the table 2.3, it shows the summary of all the journals and articles
that has been used in this project.
Table 2.3: Overview of the literature reviews
Title Author Previous Project Current Project
A View of Cloud
Computing
Michael
Armbrust
Potential of the
Cloud Computing
Implementing the
potential of the
cloud computing
to UniKL campus.
Performance
Analysis of Cloud
Computing for
Distributed Client
Dr. Neeraj
Bhargava
Using simulation
tools to simulate
and measure
performance and
load-balancing of
the cloud server.
Using the real
cloud system to
measure
performance and
utilization of the
cloud server.
A Comparison
and Critique of
Eucalyptus,
OpenNebula and
Nimbus
Peter
Sempolinski
Different type of
Cloud Computing
architecture
Suitable
architecture for
UniKL network.
Open Source
Cloud Computing
Management
Platforms
Stefan Wind Cloud Computing
management tools
Comparison of
different cloud
management tools
Cloud
Computing:
Different
Approach &
Security
Challenge
Maneesha
Sharma
Security
challenges for
each cloud type.
Provide
authentication for
students when to
access the cloud
computing system.
14
Comparison of
Open-Source
Cloud
Management
Platforms:
OpenStack and
OpenNebula
Xiaolong Wen Comparison and
feature between
OpenStack and
OpenNebula
Using OpenStack
because easy to set
up and suitable for
small network.
15
CHAPTER III: METHODOLOGY
3.1 Introduction
This chapter will discuss on type of methodology that will be used in
this project. Methodology is a documented process or step by step processes
that are used to help in the planning and the developing the project accordingly.
This project will be requiring both hardware and software to make it
successfully running.
The Work Breakdown Structure (WBS) provides the necessary
framework for detailed cost estimating and control along with providing
guidance for schedule development and control. The function of WBS is to
break down a large and complex project into smaller project pieces provides a
better drafting of planning and developing the project. WBS can also be used
to facilitate resource allocation and task assignment.
Some amount of the budget will be listed in order to purchase the
hardware such as all-in-one server, switch, cables, and computers.
Furthermore, some of the software needed is open sources and can be
downloaded from the internet and it will be installed in the server and client
computers.
3.2 Methodology
After a lot of research has been done about this cloud computing system
using journals, the Internet and articles, it has been determined that Rapid
Application Development (RAD) adopted from Dan Gielan in the mid-1970s,
is the best method because OpenStack is still rather new and it will provide
continuous development of the system and documentation to be reviewed
about the performance of the systems. The data that will be collected is the
performance of the server to support multiple instances (virtual machine) at a
time such as CPU utilization, RAM usage and network bandwidth.
16
Figure 3.1: RAD Methodology Model
3.2.1. Initiation
The initial start of this project is to collect data from various
method such as investigation about hardware and software regarding
cloud computing server requirement and observation.
The investigation took place in UniKL Lab in level six where
mostly the computers in the lab are still the old specification which is
Intel Pentium 4 and only 512MB worth of DDR1 RAM. Many of the
computers are also using Windows XP which is no longer supported in
April 2014 by Microsoft.
From the observation, it has been determined that the most
required software for learning purpose among BNS students, which
their computer cannot support is GNS3 where it is requiring huge
amount of processing power and RAM to support and configure many
virtual router at once. Another software that always has a problem to
use in the lab is the latest version of packet tracer where the application
just stuck when loading.
17
3.2.2. Research
There are tons of research has been done in this project because
the cloud computing system is not easy to set up and require thorough
research before any real implementation can be done on the UniKL
network infrastructure. Most of the research is done through the
Internet, journals and articles about available cloud computing tools.
After research has been done, OpenStack is chosen and will be used as
Cloud Computing Management Control for this project because its
architecture that support private cloud and easy to use. Below are the
some example why OpenStack is used in this project.
i. Control and Flexibility: OpenStack area created using open
source community which means it can be supported with third-
party technology to further enhance the system.
ii. Open Industry Standard: More than 75 leading companies
from over a dozen countries are participating in OpenStack,
including Cisco, Citrix, Dell, Intel and Microsoft.
iii. Openness and Compatibility: OpenStack is compatible with
thousands of existing public and private clouds for seamless
transition from cloud to cloud.
iv. Flexible Technology: Global ecosystem of industry leading
vendors supply integration support for a wide variety of features
within the cloud. As an example, hypervisor support includes
ESX, Hyper-V, KVM, LXC, QEMU, UML, Xen, and
XenServer.
18
3.2.3. Planning
Planning is the rough idea or sketches about the cloud system
before it can be designed and to be developed later on. This stage is
where all the components of hardware and software involved in this
project are being gathered together to see the relation with each other’s.
It is important to have a good plan on how to integrate this cloud
computing system with the existing UniKL network environment so
that BNS students can access this cloud anywhere in the Campus. In
Table 3.1, it shows all the components that have been identified to be
used in this project.
Table 3.1: Indicates the components involves throughout this project
and the relationship between each other
Component Use / Function Relation Constraint
Computer /
Laptop
· Access applications
from the server (GNS3,
Packet Tracer)
· View and controlling
the instance in the
server.
Computer ->
Switch -> all-
in-one server
Must be connected to UniKL
network.
VNC Viewer must be
installed to control the
instance
Switch Used to interconnect
computers and cloud server
to UniKL networks.
Switch ->
Computer ->
all-in-one
server.
Must be configured to allow
all connections from UniKL
network
All-in-one
Hardware
Server
· Interface for the users to
request instance.
· Controls user
designated allocation of
resources which they
are not allowed to
exceed.
All-in-one
server ->
Switch ->
Computer
Must have huge capacity of
RAM and CPU cores to
handle many instances at
once.
19
· Provide authentication,
security, quota system,
and many more.
OpenStack · Cloud Management
tools to provide
instance to the users.
· Used to process user
requests and control
resources.
· Process input from the
users, retrieve the
needed disk image from
the Glance, signal the
OpenStack Compute to
set up an instance and
then give IP address.
OpenStack ->
All-in-one
server ->
Switch ->
Computer
Must be properly configured
to make sure that the server
can provide a reliable
instances service without any
problem such as Nova does
not load or copied to create a
new instance or not assigning
any IP addresses.
OpenStack
Compute
· Provide a framework
which allows instances
to run
· Relies on a library
called libvirt, design to
provide a facility for
controlling the start and
stop of instances.
Computer ->
Switch -> All-
in-one server -
> OpenStack
Must have all the required
dependencies installed so it
can run properly without any
problems creating and
running instances.
OpenStack
Glance
· Database of disk image
that can be copied and
used as the basis for the
new instance.
· When the instance is
spawned, the templates
copied and is packaged
into a disk image for the
user to use.
Glance ->
Network ->
OpenStack ->
All-in-one
server ->
Switch ->
Computer
Must have large storage to
support many UniKL BNS
students.
The image must have an
operating system and the
required software pre-
installed in it.
20
3.2.4. Design
Figure 3.2 shows the basic diagram for the cloud computing
system where it is divided into three sections which is a cloud
computing server, existing network and clients.
Figure 3.2: Cloud computing diagram
3.2.4.1. Cloud Computing Server
This section contains two devices which are all-in-one
hardware server and a switch which reside on its own private
network. OpenStack all-in-one server will controls all the user
resources allocation, monitoring of the system and collecting
input from the user to be processed. It is also manage image
repository, networking function, creating and maintaining the
instance.
The last device is a switch used to interconnect the
server to the UniKL existing network so that it will accessible
anywhere in the UniKL MIIT. The switch is not configured with
any Vlan as it uses the existing student Vlan in UniKL switch.
21
3.2.4.2. Existing Network
This section only contains one device which is switch that
already in use to connect existing computers in the lab to the
UniKL network. By connecting to the switch, the server can be
accessed by using wired and wireless in UniKL MIIT campus.
3.2.4.3. Users
On the user’s computer, they just have to install RealVNC
Viewer software and connect to the created virtual machine by
entering the virtual machine IP address. After that users can use
the available software inside the VMs as if they using it in their
own computer.
3.2.5. Development
Development is a stage where all the component is being
prepared with all required software and hardware information about
how to set up the system. The following section will discuss on the
combining of all information that is gathered together to develop the
system.
3.2.5.1. OpenStack architecture
OpenStack is a highly modular architecture that offers
extensive support for many hypervisor software, monitoring
system, storage file system, networking, and user management
services. It will be used as the main cloud computing
management control.
3.2.5.2. All-in-one Server
This is where the OpenStack codename Havana will be
installed and configured to control all the activity in the cloud
system.
22
3.2.5.3. Monitoring
To monitor the performance of the OpenStack server,
PRTG NMS software will be used to monitor the server and
record any changes in the RAM usage, CPU utilization and
network utilization.
3.2.5.4. OpenStack Glance
Glance is a database located in the server that will
handle and store the virtual machine disk image template. The
disk image can be created by administrator to suit their need or
using any available operating system that can be directly added
to the glance database over the internet.
3.2.5.5. Authentication
For a Linux based operating system, each user must pre-
created a SSH key before logging into the Linux virtual
machines. As for the Windows operating system, it does not
need the SSH key to connect to the instances.
3.2.5.6. Security
OpenStack has a built-in security feature that allows
only a certain port available to the users so that they can connect
to the VMs using the open port. The incorrect port setting will
make users unable to connect to the VMs.
23
3.2.6. Implementation
Implementation stage is where the cloud computing system
itself being deployed in the UniKL MIIT campus and BNS students can
use the service provided. Implementation will be divided into three
sections which is client side, server side and network.
3.2.6.1. Client side
In the table 3.2, there are two components required on
the client side which is a virtual machine hypervisor and
computers. This is compulsory to have in the client side.
Table 3.2: Required installation and configuration of the component
No. Component Description
1 VNC Viewer · Needed to connect to the running instance
inside the server.
2 Computer / Student
Laptop
· Running on any operating system that support
RealVNC Viewer.
· Connected to UniKL local area network via
wired connection.
24
3.2.6.2. Server side
Table 3.3 shows the most crucial part of the system
which is located on the server side. All the configuration must
be made for the system to be usable by students.
Table 3.3: Component involved in the server side
No. Component Description
1 All-in-one hardware
server
· Ubuntu 12.04.4 will be installed.
· OpenStack Havana will be installed and
configured.
· User account will be set up for students to be
able to log in to the OpenStack server.
· Allocation of resources for each student such
as RAM and CPU utilization will be limited so
that students won’t be able to exceed the
allocated resources.
3.2.6.3. Network side
As for the network side of the system, only one device is
required as shown in table 3.4
Table 3.4: Networking devices
No. Component Description
1 Switch · Interconnect computers / laptops, and all-in-
one OpenStack server into the UniKL network.
· Using default Vlan configuration that allows
the server to be used throughout UniKL MIIT.
25
3.2.7. Testing
The testing will be done by creating five instances (virtual
machine) and each instance is running GNS3 with three virtual routers
using basic Enhance Interior Gateway Routing Protocol (EIGRP).
The maximum number of instances for the testing purpose will
only be restricted to seven executed at once because the current server
specification does not have the capacity in term of CPU cores and
RAM.
3.2.8. Analysis
For this stage, all aspects of the cloud computing system will be
closely monitored to collect data using NMS software such as PRTG to
record all activities inside the server using specific sensors such as CPU
load, physical memory and traffic. These sensors will have the interval
of 60 second to capture all the relevant data inside the server and create
a graph for easy viewing. For a real-time monitoring feature, the server
can be installed with HTOP software that provide continuous real-time
view about the server resources but do not keep any record of it.
This analysis can be used by administrator to further improve
the cloud computing server by reducing resource allocation for
students, or to upgrade the server so it will be able to support more
users.
26
3.3. Work Breakdown Structure (WBS)
WBS is the foundation of the project as it provides the necessary step-
by-step for the administrator to develop the system according to plans. The
idea of WBS is to take the overall large complex project and break it down to
a smaller part to make it easy for the developer to manage each part
accordingly. A well-organized and detailed WBS can be the effective tools
because the allocation of resources, project budgeting, and scheduling are all
divided into smaller part making it easier to follow.
Figure 3.3: Work Breakdown Structure diagram
Cloud Computing for UniKL BNS Students
Initiation
Information
Gathering
Investigation
at UniKL lab
Research
Research
about
available
cloud
computing
tools
Comparison
between
cloud
computing
tools
Determine
hardware and
software
Study about
OpenStack
Planning
Planning
rough ideas
Sketch the
relation
between each
component
Creating a
table to
determine the
function &
relation of
the
component
Design
Create
network
diagram
Link all the
components
Divide
devices into
three section
Explaining
each
component
function
Development
Understandin
g the concept
of OpenStack
architecture
Setup
OpenStack
using UniKL
network
configuration
Creating
basic image
with
Windows 7
pre-installed
with software
Connecting
the server to
the UniKL
network
Implement
Testing
server
connectivity
Configure
user accounts
Configure
client-side
Testing
Test the
cloud
computing
server by
executing
seven
instance at
once
Load a
simple
EIGRP
GNS3
topology
Load
HeavyLoad
software
Analysis
Collect
information
using PRTG
NMS
Analyze the
recorded
information
27
3.4. Gantt Chart
The Gantt chart is used to show the duration or time taken for this
project to accomplish. The time taken to complete this project is
approximately two semesters or 170 days as can be seen in the Gantt chart. It
is also shown everyphase taken from the beginning until the end of the project.
(Refer to Appendix A for Gantt chart)
3.5. Project Resources
Cloud computing system mainly consists of two important component
which is software and hardware required for the system to run. Each of
components of this project will be further discussed in this chapter.
3.5.1. Hardware
Technically for a cloud computing server to support all the BNS
students in the UniKL, it will be required a powerful server with a lot
of processing power, memory modules and large storages. For this
project, the scope is to only provide at least five instances at a time
because the limited processing power and storage using the available
server. Table 3.5 below shows the specification of the both of the server
and client.
28
Table 3.5: Detail information on each hardware.
No Hardware Specification
1 Server
All-in-one hardware
server
Processor
· AMD FX(tm)-6300 Six-Core 3.5GHz 8MB L3
Cache
RAM
· 12 GB DDR3 SDRAM
OS
· Ubuntu Server 64 12.04.4
Hard Disk
· 3.5-inch SATA 300GB
Interface
· 1 x TP-Link Gigabit PCI Express Card
· 1 x Gigabit Ethernet
Power Supply
· 650 watts Corsair high performance power
supply
2 Client
Dell OptiPlex
GX620
Processor
· Intel Pentium D 2.66 GHz
RAM
· 512 GB DDR1 SDRAM
OS
· Windows XP Professional SP2
Hard Disk
· 80GB HDD
Interface
· 1 x LAN (Gigabit Ethernet)
Graphic
· Integrated Intel Graphics Media Accelerator
950 Dynamic Video Memory Technology 3.0
Power Supply
· 305.0 Watt
29
3 Client
Acer Aspire 4710G
Processor
· Intel Core 2 Duo 1.66GHz
RAM
· 4 GB DDR2 SDRAM
OS
· Windows 7 Professional SP1
Hard Disk
· 160GB HDD
Interface
· 1 x LAN (Gigabit Ethernet)
Graphic
· Dedicated ATi Radeon HD2300
Power Supply
· 44.4 W 4000 mAh 6-cell Li-ion battery pack
· 3-pin 65 W AC adapter
4 Switch
Cisco Catalyst 2950
Switch
Interface
· Fast Ethernet
Ports
· 24 x 10/100
Features
· Full duplex capability
· VLAN support
· Auto-sensing per device
· Auto-negotiation
· Manageable
Memory
· RAM 16MB
· Flash Memory 8MB
Power
· AC 120/230 V ( 50/60 Hz ) 30Watt
30
3.5.2. Software
The major software component in the cloud computing system
is the OpenStack itself that act as the cloud management controller that
manage all the activity in the server. On the client side, students just
have to install VNC Viewer software.
Table 3.6: Indicate the software requirement in each component
No Software Description
1 Operating System Server: Ubuntu Server 64 12.04.4
Client: Any operating system supported
2 Server Software OpenStack Havana
Software Inside the virtual machine
· Microsoft Windows 7 Starter
· Packet Tracer V6.0.1
· GNS3 v0.8.6 all-in-one
· RealVNC Server
3 Client Software RealVNC Viewer
31
3.6. Project Costing and Budget
Table 3.7 and 3.8 indicates the estimated costing involve in this
project. For hardware, total of RM 5422 is required while for software is RM
366 is needed to complete this project.
3.6.1. Cost for Hardware
Table 3.7: Hardware costing
No Item Quantity Price (RM)
1 All-in-one hardware server 1 1,500
2 Cisco Catalyst 2950 Switch 1 2,572
3 Dell OptiPlex GX620 1 600
4 Acer Aspire 4710G 1 750
Total (RM) 5422
3.6.2. Cost for Software
Table 3.8: Software costing
No Item Quantity Price (RM)
1 Ubuntu Server 12.04.4 1 Open Source
2 OpenStack Havana 1 Open Source
3 Windows 7 Starter 1 269
4 RealVNC Server + Viewer 1 97
5 GNS3 V0.8.6 1 Open Source
6 Packet Tracer V6.0.1 1 Free from Cisco
7 HeavyLoad 1 Freeware
Total (RM) 366
32
CHAPTER IV: DEVELOPMENT/PROTOTYPE
4.1. Introduction
This chapter explains about the development of the cloud computing
server and the guide of setting up the user instances operating system or basic
image to be used by the user when they first using the cloud computing
service.
4.2. Cloud Computing Server
This is where all the components needed for the OpenStack server to
run are installed and configured with the local IP address which is 10.6.2.230.
Figure 4.1: Network diagram of the OpenStack implementation
Figure 4.1 shows the server design that using All-in-one: dedicated
hardware setup which mean all of the components needed for the OpenStack
to run is installed on one physical machine. This method is not recommended
33
because it will take up most of the server resources, approximately 2GB worth
of RAM, which can be assigned to instances unless the server has a huge
amount of RAM. Using this method, the current server specification can spawn
up to six Windows 7 instance with 1GB of RAM, 1VCPU and 20GB of disk
space.
4.3. Development Process
The development process is where all the component required for the
system to run is installed and configured.
4.3.1. Installation requirement
To successfully install OpenStack without any problem, the
administrator must have fast or stable internet connection, static IP
address for the server and range of available IP addresses to be used by
instances later on. Another important requirement is that the server
must have at least one 1Gbps network interface card to handle all
incoming and outgoing traffic. The server must also be configured with
SSH service and github to download the OpenStack components.
4.3.2. Preparing all-in-one: dedicated hardware server
1. Install Ubuntu Server version 12.04.4 with SSH service enabled
to remote the server from another terminal. Configure the server
with static IP address for this project is 10.6.2.230, and then a user
named stack is created and after the setup is complete, any
available updates is installed and the server is restarted.
34
2. The server then connected using another computer running Linux
or for Windows user can use Putty and invoke the following
command at the terminal.
3. Grant the user stack with sudo privileges because the user will
make many changes to the system. The following command is
invoked at the terminal:
4. Using git to download the latest OpenStack Havana scripted
installation method into the server:
Figure 4.2 shows the content of the devstack folder after being
downloaded using git.
Figure 4.2: All the necessary files retrieved using git
adduser stack
echo "stack ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
sudo apt-get install git
git clone https://github.com/openstack-dev/devstack.git
cd devstack
Ssh stack@10.6.2.230
# sudo apt-get update
# sudo apt-get upgrade
# sudo restart
35
5. After the scripted files are downloaded, navigate to devstack
folder and a new files named local.conf is created with the
following configuration so that the installation will use the preset
value defined in the file. The local.conf is created using command:
In figure 4.3, it shows the value that has been filed in the local.conf
file.
Figure 4.3: Modify the local.conf with the following configuration
· FLOATING_RANGE is set to a range not being used on the
UniKL MIIT network, i.e. 10.6.2.240/28.
· FIXED_RANGE and FIXED_NETWORK_SIZE sets with
192.168.1.0/24 to configure the internal IP address.
· FLAT_INTERFACE is set to the Ethernet interface that
currently in use and set with static IP address.
· ADMIN_PASSWORD is set with admin. This password is
used for the admin and demo accounts set up as OpenStack
users.
· MYSQL_PASSWORD administrative password is set with
admin123.
· SERVICE_PASSWORD is set with admin123. This is used
by the OpenStack services (Nova, Glance, etc.) to authenticate
with Keystone.
# nano local.conf
36
6. The following command ./stack.sh is invoked to start the scripted
installation as shown in figure 4.4. The remaining prompted
password are also filled with admin123.
Figure 4.4: Installation process is started
7. The installation will take about 20 minutes (depend on internet
connection) as it will automatically download all the needed
components and dependencies for the OpenStack to successfully
run. Figure 4.5 shows the main component of OpenStack which is
nova are being downloaded.
Figure 4.5: Example of the scripted installation process
37
8. After the installation is completed, the following result is obtained
and can began to logon to the OpenStack interface using a web
browser at 10.6.2.230 as shown in figure 4.6 and 4.7.
Figure 4.6: Summary of ./stack.sh
Figure 4.7: OpenStack login page at 10.6.2.230
38
4.3.3. Creating basic virtual machine image
In this part, administrator needs to have two important
components which are, windows 7 ISO as installer medium and libvirt
driver that can be obtained at http://libvirt.org/drivers.html to be used
for network interface card driver after the windows 7 is installed so that
it can have network connectivity.
1. Verify that libvirt default network is running is crucial
because it will allow the virtual machine to have an internet
connection.
If the network is not active, invoke the following command
to activate it.
2. Using the following script, the virtual machine is created
according to the defined configuration:
The KVM hypervisor starts the virtual machine with the
libvirt name windows7basic and with 1GB of RAM. The
virtual machine has a virtual CD-ROM drive associated
with the /IMG/windows.7.AIO.iso and a local of 15GB hard
disk in qcow2 format that is stored in the server at
/IMG/windows7basic.qcow2. The networking is configured
to use libvirt's default network.
# virsh net-list
Name State Autostart
-----------------------------------------
default active yes
# virsh net-start default
# qemu-img create -f qcow2 /IMG/windows7basic.qcow2
15G
# virt-install --virt-type kvm --name windows7basic -
-ram 1024 
--cdrom=/IMG/windows.7.AIO.iso 
--disk
path=/IMG/windows7basic.qcow2,size=15,format=qcow2 
--network network=default
--graphics vnc,listen=0.0.0.0 --noautoconsole 
--os-type=windows --os-variant=win7
39
3. Because this not an unattended installer, admin have to
manually proceed and monitor the installation progress and
to do that, it need to be viewed using VNC. Invoke the
following command to get the VNC port number:
The virtual machine windows7basic uses VNC display :1,
which corresponds to TCP port 5901. The command is
invoked in terminal to connect to the virtual machine:
4. The installation process is continued by providing the
necessary information as shown in figure 4.8.
Figure 4.8: Fill in information during installation process
# virsh vncdisplay windows7basic
:1
# ssh -f -L 5901:localhost:5901 stack@10.6.2.230 -N -
p 22
# vinagre 0.0.0.0:5901
40
5. After the setup is complete, the virtual machine is shut down
and the script in step two is edited in the line:
The virtual machine is started again with new virtual CD-
ROM that contain all the necessary drivers for the
windows7basic to use.
6. Missing driver such as network interface is installed so that
it can have connectivity. In figure 4.9, it shows that the
Ethernet adapter is successfully installed.
Figure 4.9: Red Hat VirtIO is the default adapter to provide
connection
--cdrom=/IMG/virtio-win-0.1-74.iso
.iso
41
7. All needed applications such as GNS3, Packet tracer,
Chrome browser, VNC Server is installed.
Figure 4.10: Installation of GNS3
Figure 4.10 shows GNS3 is being installed in the virtual
machine so that every instance created by OpenStack will
have the GNS3.
8. The virtual machine is shut down and the newly created
windows7basic.qcow2 is copied as a master copy to be
stored as backup.
42
4.3.4. Importing image to the OpenStack Glance
OpenStack Glance is where all the image uploaded by the
administrator or users are stored, when the user requested to use the
image it will convert it into instance which are virtual machine handled
by OpenStack Nova.
4.3.4.1. Logon to OpenStack
Figure 4.11 shows the logon screen and can be login
using username and password both are admin.
Figure 4.11: Login using username admin and password both admin
43
4.3.4.2. Navigate to image tab
Navigate to the image tab in the left side of OpenStack
website and admin will see option to create a new image for
users.
Figure 4.12: Create an image pop-up filled with necessary information
In Figure 12, each field is filled with the information correspond
to the image type that had been created earlier.
44
4.3.4.3. Launching an instance
After the process of creating the image is completed, it
is time to launch the image in order to test it. Select the created
image and launch it using launch button at the right side and
provide the necessary information such as number of VCPU,
amount of RAM and disk size as can be seen in figure 4.13.
After the instance is launched, click on the more button and
associated floating IP address so that clients can connect to that
instance.
Figure 4.13: Show the example on how to create an instance
45
Figure 4.14: Summary of the created instance
Figure 4.11 shows the summary of the created instance with the private
IP 192.168.1.2 and public IP address 10.6.2.241 are assigned to it. It is
also shown the state of the instance and how long it has been created.
4.3.5. Connecting to the instance
Connecting to the instance is a straightforward task and it only
needs RealVNC Viewer installed on the user’s computer.
4.3.5.1. VNC Viewer
Install VNC Viewer on any computer that user wants to use to
connect to the instance. The VNC Viewer supports many
platforms and easy to use.
Figure 4.15: Enter the VNC Server IP address
Figure 4.15 shows the VNC Viewer interface, change the VNC Server field
with the corresponding instance public IP address, which in this case is
10.6.2.241
46
4.4. Monitoring Performance
4.4.1. Network Management Software (NMS)
To closely monitor the server performance, such as CPU
utilization, RAM usage, and network bandwidth utilization, PRTG
Network Monitor has been chosen in this project because it is easy to
use, it can automatically discover device in the network, and use less
resources to run. Figure 4.16 shows the simple PRTG interface.
Figure 4.16: PRTG interface
To actively monitor device in the network, PRTG use sensors. The
sensor is the basic monitoring elements that fetch corresponding
information such as CPU load, bandwidth, RAM usage and many more.
47
4.4.2. Install SNMPD service on OpenStack server
Because the PRTG probe cannot be installed in a Linux
operating system, administrators can still use SNMP (Simple Network
Management Protocol) agent service such as SNMPD to allow the
PRTG to remotely monitor the server performance. Below are the step
taken in order to install SNMPD agent service.
1. The following command is invoked at server terminal:
2. SNMPD is configured by editing the configuration files at
/etc/snmp/snmpd.conf:
3. After that, the /etc/default/snmpd file is edited with the
following configuration:
4. SNMPD service is restarted to allow the new setting to take
place.
# apt-get update && apt-get install snmpd
# sudo vim /etc/snmp/snmpd.conf
rocommunity public
syslocation UniKL MIIT
syscontact arepizz_90@yahoo.com
# sudo vim /etc/default/snmpd
Disable the following line
#SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -g snmp -I
-smux -p /var/run/snmpd.pid'
Create new line
SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -I -smux -p
/var/run/snmpd.pid -c /etc/snmp/snmpd.conf'
# sudo /etc/init.d/snmpd restart
* Restarting network management services
48
4.4.3. Configure PRTG to monitor OpenStack server
1. The PRTG is started and navigated to the main interface and
navigate to the device > add device as shown in the figure
4.17.
Figure 4.17: First step to add new devices to PRTG
2. Group for the server is selected and continue to the next
step.
3. The required information in each column is entered to
ensure that the OpenStack server be able to discover by
PRTG NMS as shown in figure 4.18.
49
Figure 4.18: Example of device configuration
4. After that, wait for a while for all the sensors inside the
OpenStack be discovered by PRTG.
Figure 4.19: Sensors that discovered in OpenStack server
Figure 4.19 shows there 61 sensors that are automatically
discovered by PRTG.
50
5. The unnecessary sensors that were discovered is removed
so that it can be easy to be monitored later on as can be seen
in figure 4.20.
Figure 4.20: Show the current active sensors
The details of the sensors are as follow:
a. SNMP CPU Load 1: Monitors all available CPU cores
inside the OpenStack server. Total available cores in the
server is six.
b. Physical Memory: Monitor total usage of RAM inside the
server. The server has a total capacity of 12GB RAM.
c. SSH Load Average: This sensor show the average use of the
server.
d. SSH Meminfo 1: This sensor is similar to the Physical
memory, the different is that it uses SSH protocol to monitor
the server state.
e. (003) eth1: Monitor the incoming and outgoing traffic for
the current interface.
f. Ping 1: Used only to measure the server is alive or not.
g. Ping Jitter 1: Used to measure any jitter during the server is
up, it had no significant value for this project because the
server is connected using VNC protocol which is cannot be
measure using this sensor.
51
CHAPTER V: TESTING AND RESULTS
5.1. INTRODUCTION
Analysis is the process of interpreting all the data collected during the
testing of this project. In this project, the testing will be conducted to test how
the server performs when handling many virtual machines (instance) used by
users.
The instances will use Windows 7 Starter 32-bit because by default it
does not include the Windows Aero theme thus use less resources to run,
which is suitable for the server specification that only allow 1GB of RAM to
the instance. The desktop wallpaper and visual styles are also unedited by
users.
To test the performance of the server, the server will spawn five
instances for the first two methods and then two additional instances are then
created to simulate heavy load and to test the capabilities of the server. Each
instance, will be loaded with GNS3 running three virtual routers with EIGRP
protocol and HeavyLoad software that's designed to put the CPU load to
100%, all activity in the OpenStack server will be recorded with network
monitoring system tool during the session.
52
Figure 5.1: Running instances handled by OpenStack
Figure 5.1 shows all the currently running instances handled by OpenStack
compute system. Each instance is created using medium flavor that contains 1
VCPU, 1GB of RAM and 20GB of total hard disk.
5.2. Testing Method Approach
The OpenStack server will be monitored with NMS using sensors that
corresponding to the testing requirements. The testing is conducted using three
approaches which are:
1. Creating instances
2. Common approach
3. Stressing OpenStack server
53
5.3. Creating Instances
Creating instance is the process of creating the virtual machine for user
to use. In order to launch an instance, an administrator must first set a flavor.
Flavor contains predefined setting for the instances to use such as number of
VCPUs, RAM capacity, and total disk space. This is important because it acts
as a quota system that will not allow users exceed the allocated resources for
them.
In figure 5.2, there are seven available image that ready to be used.
Windows7-VNC and Windows7Basic are created using the method in chapter
four, Ubuntu Server 12.04 and Fedora 20 can be downloaded from their
respective website and can be directly added to the OpenStack image list. The
cirros images are included in OpenStack installation for testing purpose.
Figure 5.2: List of images available in OpenStack server
54
5.3.1. Testing
First, users that have been created an account to use OpenStack
system logon to the server and navigate to the image section and click
on the image they want to launch and use, in this case Windows7-VNC.
Figure 5.3: Launch instance pop-up form
Figure 5.3 shows that the instance will be used Medium flavor
configured with 1 VCPUs, 20GB total disk and 1024MB or 1GB of RAM. It
also shows the project limits for that particular user. Detail of each flavor can
be viewed in Appendix C.
55
Figure 5.4: Summary of Windows7-VNC image converted to Win7-1 instance
After the instance has been successfully spawned, it must be assigned
with the floating IP address to make sure that users can access to the created
instances using VNC Viewer. By clicking on the button Associate Floating IP
shown in figure 5.4, OpenStack will automatically assign any available public
IP to the instance.
Figure 5.5: VNC Viewer interface
In figure 5.5, users have to change the VNC Server IP value address to
the corresponding public IP address of the created instance and let the rest
setting to default. After that, user can use the instance as if it in their own laptop
without noticeable delay depending on the type of connection used.
56
Figure 5.6: Select location in Win7-1
Figure 5.6 shows the set network location pop-up every time the
windows are connected to a new network location. In this case, the instance is
connected to the internal OpenStack network with the private IP address
192.168.1.3 and public IP address 10.6.2.242. It is advisable to select Home
network because it will turn on network discovery for home networks, which
allows the instance to see other computers and devices on the network and
allows other network users to see the instance.
57
Figure 5.7: Inside the instance
Figure 5.7 shows how the instance looks like and the available resource
currently assigned to it. The warning that prompted in VNC Server console
indicate that the connection is not password protected, thus can be logon by
anyone who knows the public IP address of the instance. VNC also allows users
to transfer files back and forth between server and client making it convenient
for users to retrieve their work without using other software that might take up
additional resources.
58
5.3.2. Result
The network monitoring system tool is measuring and recording
the entire session of the initial creating and using the instance. The
result can be viewed in the figure 5.8, 5.9, and figure 5.10 below.
Figure 5.8: CPU utilization from 1:20AM to 2:20AM
Figure 5.8 shows the CPU utilization when the Win 7- 1 instance is
created. The graph has been divided into three based on the utilization pattern.
At time frame one, only processor 1 is actively using the server resource
because the instance is set with only one VCPU. In time frame two, the server
has finished loading the first instance and began to stabilize. At time frame
three, all processors were active because this time the server is processing to
create additional four instances.
31 2
59
Figure 5.9: Physical memory utilization from 1:20AM to 2:20AM
Figure 5.9 shows the RAM usage when creating instances as can be
seen in time frame one and three. The process of creating instance took up most
of the server RAM and leaving only 1.1% available for other process to use,
this is probably happened because OpenStack is still not recognized the server
capabilities. After the server is restarted multiple times, the process of creating
another instances is not using more resources as the first time it created the
instance. Time frame two show after the first instance is finished loading, RAM
available is increased again.
1 32
60
Figure 5.10: Bandwidth utilization from 1:20AM to 2:20AM
Figure 5.10 shows that during the process of creating the instance in
time frame one, there is no activity happening because this stage the operating
system is not yet boot up. After it has booted up and inside the windows, the
instance then connected using VNC Viewer for the first time and showing the
network location selection because it has booted up in a new network location.
By selecting a Home network, the instance will execute discovery function to
look for other devices in the network that can be seen in time frame two and
three where the bandwidth usage is high.
1 2 3
61
5.3.3. Analysis
The first time the image is converted into an instance, it will
take up most of the server resources in order to boot up the instance
with the defined settings. During this process, the server response is
very slow and the process can take up to more than 10 minutes. After
the first instance is stable, the process of creating another instance of
the same image would not take very long and almost instantly because
it already has the configuration even though, it still take most of the
server resources.
In figure 5.8 it shows that all processor core is actively used by
OpenStack to create the first instance. Figure 5.9 shows that all RAM
is allocated for the process leaving only 1.1% available. In figure 5.10,
there is no significant traffic except in time frame three where all the
instance are connected simultaneously using VNC Viewer and
selecting Home network in the network location selection.
62
5.4. Common Approach
Common approach method is using the instances with the available
application inside it. For this project, GNS3 is used to measure the server
performance by executing three Cisco 3725 series virtual routers with a basic
EIGRP configuration.
5.4.1. Testing
All five instances are loaded with the GNS3 EIGRP simple
topology. Each Cisco 3725 virtual router is loaded with c3725-
adventerprisek9_ivs-mz. 124-25b IOS and have two interfaces each.
The topology can be viewed in figure 5.11. The router is pre-configured
with an idle PC value that are specific for instance with 1GB RAM and
1VCPUs to significantly reduce processor usage when the router are
active. If another instance is created using different configuration, idle
PC value is needed to be set with new value. Idle PC value is
compulsory to be created after adding the IOS image to avoid heavy
load to the processor.
Figure 5.11: Three Cisco 3725 series virtual routers
63
5.4.2. Result
For this testing session, the server is restarted and the
OpenStack service is started again. The result can be viewed in figure
5.12, 5.13, and figure 5.14. The sensors time frame is taken from 10:30
PM until 11:35 PM.
Figure 5.12: CPU utilization from 10:40PM to 11:35PM
Figure 5.12 shows the processor usage when the test is in progress.
From time frame two, all processors not showing too much activity except
processor 1 when booting up all the instance the second time. Time frame three,
this is where all the instance is successfully running the topology inside GNS3.
In, time frame one and four, show the instance is being started and shut down
after the test finish.
1 2 3 4
64
Figure 5.13: Physical memory utilization from 10:40PM to 11:35PM
During the testing, after the second time the instance boot up, RAM
usage was just static throughout the testing as can be seen from time frame two.
It shows that the instance only uses the allocated RAM that has been configured
without using any extra available RAM. Time frame one and three are where
the instances is started and shut down after the test.
1 2 3
65
Figure 5.14: Bandwidth utilization from 10:40PM to 11:35PM
Figure 5.14 shows only slight activity when starting up the instance at
time frame one. Time frame two shows more activity because each instance is
connected using VNC Viewer and transferring the topology file for each
instance and during GNS3 is executed, there is only slight network activity
occurs. Time frame three is also the same when all instances is connected
simultaneously and issued the shutdown command.
1 2 3
66
5.4.3. Analysis
From the result above, it shows that the GNS3 can successfully
execute the EIGRP topology without any problem and the server still
have resources to handle more virtual router or complex configuration.
Even though the routers has been configured with an idle PC value, it
still shows significant activity in the processor usage, but the server
performance is still the same and instances responsiveness is only
affected by a slight delay in loading when using another application or
opening folder inside the instance.
For the RAM usage, it can be concluded that after OpenStack is
restarted, the service has become more stable to evenly distribute RAM
among the created instance as can be viewed in figure 5.13. Unlike
when first creating a new instance the RAM usage were just down to
1.1%, even the instance has finished booting up.
Network bandwidth usage does not show many activities except
when the instance is connected simultaneously and first starting the
routers inside GNS3. It also shows some activity when the instance has
finished loading and when shutdown the operating system.
67
5.5. Stressing OpenStack Server
For this testing, the server will be pushed to the limit by creating the
sixth instance, and also each instance will be loaded with HeavyLoad software.
The software can put processor cores to full capacity and performs complex
calculations to simulate the load on the processor. The result is, each processor
inside the instance will be put under heavy loads.
5.5.1. Testing
Figure 5.15: Sixth and seventh instance created
Figure 5.15 shows the details of the sixth and the seventh instance
created using the same configuration as the previous instances. Creation of the
sixth and seventh instance only take about five minutes until can be logon using
VNC Viewer, even when other instances are currently running the HeavyLoad
software.
68
Figure 5.16: Hypervisor summary
Hypervisor summary is the OpenStack compute system or server
available that currently handling the instances. In figure 5.16, the VCPU usage
is red because the server has only six processor core and currently there are
seven instances running on the server. It also shows the remaining usage of
RAM and remaining disk usage in the OpenStack server. This can be used as
indicator about the server capacity.
69
Figure 5.17: HeavyLoad software stressing CPU usage
In figure 5.17, it shows that HeavyLoad software is operational and
currently stressing the instance by making complex calculation and put it under
heavy load as can be seen in windows task manager where the CPU usage is
100%. All instances of the OpenStack server except the seventh instance is
running HeavyLoad.
70
5.5.2. Result
During the process, the seventh instances will be loading the
EIGRP topology and the result is shown in figure 5.18, 5.19, 5.20 and
figure 5.21. The sensors timeline is taken from 11:00 PM until 11:45
PM.
Figure 5.18: Error occur to start virtual router
During the stressing of other instances using HeavyLoad software, the
seventh instance will try to execute the simple EIGRP topology, but in figure
5.18 it shows that GNS3 cannot start the virtual routers because an error has
occurred. It is also taking longer time to start the virtual routers compared with
previous instances.
71
Figure 5.19: CPU utilization from 9:40PM to 10:30PM
Time frame one in figure 5.19 shows that all the instance in currently
booting up. The time taken each time the instances is booting up is decreased
dramatically, it only takes about six to seven minutes compared to previous
session. This is probably happening because OpenStack server is adjusting the
resources to handle the instances efficiently. In time frame two, almost all the
processor is being used by the instances after the HeavyLoad software is
initiated.
Time frame three show a slight reduction in all processor usage, but it's
still quite high. This is also where the seventh instance is created, the creation
process only takes few minutes before it can be login using VNC Viewer. Time
frame four shows that all processors are being used to 100% load when the
seventh instance trying to executing the EIGRP topology but failed to start the
virtual routers. Time frame five shows reduction in processor usage because
all the instance in being issued shutdown command.
1 2 3 4 5
72
Figure 5.20: Physical memory utilization from 9:40PM to 10:30PM
Figure 5.20 in time frame one shows that the first five instances are
being booted up and slowly taking the allocated resources. Time frame two
shows consistence usage of the first five instances without any changes. Time
frame three show the sixth instance are being booted up and fourth time frame
shows the seventh instance is booting up and the usage is consistent throughout
the testing session. Time frame five shows increments of RAM because all the
instance are being issued shutdown command.
1 2 3 4 5
73
Figure 5.21: Bandwidth utilization from 9:40PM to 10:30PM
In figure 5.21, time frame one shows the highest usage because all the
first five instances are being connected simultaneously. Time frame two shows
some activity because it being connected and sending the HeavyLoad software
and EIGRP topology file. Time frame three show slight activity because the all
the instance are being issued with the shutdown command.
1 2 3
74
5.1.1. Analysis
From the result in stressing OpenStack server, it can be
concluded that when the server resources is being used 100% by all the
instance, it still can create additional instances without any problem.
The problem comes when the instance has finished loading into the
operating system and running high intensive application in this case is
GNS3, it failed to execute the virtual routers. This is probably happen
because the server has no available processor resources to be reserved
to off start the routers. Others less intensive application has no problem
to execute, but it will take some time to load.
RAM usage when compared with common approach method, it
shows that throughout the session the usage are remain the same
without any changes except for when creating the sixth and seventh
instance it need to allocated extra 2GB of RAM to the new instance. It
shows that after the server is restarted, it has become more stable and
able to handle resources efficiently.
As for the bandwidth usage, it only shows activity when the user
is connected to the instance. Other than that, there is no anything going
on to affect on the bandwidth utilization.
75
CHAPTER VI: CONCLUSION AND RECOMMENDATION
6.1. CONCLUSION
The primary objective of this project is to create BNS Cloud
Application system using OpenStack cloud management system and to test the
performance of the server when handling multiple instance. The cloud
computing server has been successfully developed using AIO physical
machine installed with OpenStack codename Havana which is the latest stable
version at the time this project is done. The server is also has been deployed in
the UniKL network and can be accessed anywhere in UniKL MIIT using wired
and wireless network connection.
The server has been tested using three methods in order to test its
performances, the test ran successfully and the server is able to execute an extra
instance, even though it has a max out its capacity to create only six instances.
The server contains multiple images for different purpose such as
Windows 7, Ubuntu server and Fedora 20. Windows 7 image is preinstalled
with software that is specific to BNS students such as GNS3 and packet tracer
that essential for learning purpose in subjects like CCNAs and CCNPs. The
Linux operating system such as Ubuntu server and Fedora 20 are suitable for
subjects that do programming in Linux so that students does not have to install
Linux on their own laptop which can cause a problem if they do not do it
correctly. OpenStack also provide tiny Linux, which is Cirros_x86 for testing
purpose and can be used by students to learn basic Linux operating.
In short, OpenStack cloud management system can fulfill any
requirements that the organization wants to use the system for if it is properly
configured and is provided with enough compute power to run many instances.
Flexibility is where each component of the OpenStack system can be installed
separately in different physical machine for optimal and maximum usage of
the server performance to support many students.
76
6.2. RECOMMENDATION
For further deployment of the server to support many students at a time,
the OpenStack server can be setup using multiple compute node from the same
processor architecture. This can increase the capacity of the server in term of
VCPUs number and RAM capacity to handle many instances operating at a
time without compromising the performance of the server.
For the windows based images inside the OpenStack server, it can be
further configured to use Cloud-Init and the desktop remote connection, so
that every time the instance is started using the security feature inside
OpenStack, the username and password to log on the instance will be changes
according to the specified security option making it more secure and only the
authorized students can use the instance he/she has created.
77
REFERENCES
EBOOK
[1] Michael, Armbrust. , et al. "A View of Cloud Computing."
COMMUNICATIONS OF THE ACM. 53.4 (2010): 50-58. Web.
[2] Sharma, Maneesha. , et al. "Cloud Computing: Different Approach & Security
Challenge." International Journal of Soft Computing and Engineering
(IJSCE). 2.1 (2012): 421-424. Web.
[3] Murugaboopathi, G., et al. "Study on Cloud Computing and Security
Approaches." International Journal of Soft Computing and Engineering
(IJSCE) 3.1 (2013): 212-215. Web.
[4] Wind, Stefan. "Open Source Cloud Computing Management Platforms." 2011
IEEE Conference on Open Systems (ICOS2011) (2011): 175 - 179. Web.
[5] Bhargava, Dr. Neeraj, et al. "Performance Analysis of Cloud Computing for
Distributed Client." International Journal of Computer Science and Mobile
Computing 2.6 (2013): 97-104. Web.
[6] Sempolinski, Peter, et al. "A Comparison and Critique of Eucalyptus,
OpenNebula and Nimbus." 2nd IEEE International Conference on Cloud
Computing Technology and Science (2010): 417-426. Web.
[7] OpenNebula - Flexible Enterprise Cloud Made Simple. N.p., n.d. Web.
26 Dec. 2013. <http://opennebula.org/>.
[8] "Types of Cloud Computing: Private, Public and Hybrid Clouds." Appcore -
Cloud Business Blog. N.p., n.d. Web. 26 Dec. 2013.
<http://blog.appcore.com/blog/bid/167543/Types-of-Cloud-Computing-
Private-Public-and-Hybrid-Clouds>.
[9] "Private Cloud Computing." Interesting and informative articles. N.p., n.d.
Web. 26 Dec. 2013. <http://abhijit.snydle.com/private-cloud-
computing.html>.
[10] Xiaolong Wen, etc. "Comparison of open-source cloud management platforms:
OpenStack and OpenNebula," Fuzzy Systems and Knowledge Discovery
(FSKD), 2012 9th International Conference on , vol., no., pp.2457,2461, 29-31
May 2012
78
Electronic References:
[1] http://devstack.org/guides/single-machine.html
[2] http://docs.openstack.org/image-guide/content/virt-install.html
[3] http://docs.openstack.org/image-guide/content/windows-image.html
[4] http://www.cloudbase.it/cloud-init-for-windows-instances/
[5] http://andrewpakpahan.blogspot.com/2012/09/how-to-enable-snmp-
monitoring-on-ubuntu.html
[6] http://docs.openstack.org/grizzly/openstack-
compute/install/apt/content/manual-ubuntu-installation.html
79
GLOSSARY
1. CPU
a. The central processing unit (CPU) but commonly called as
processor. It is the brain of the computer that most of the calculation
is made. In term of computing power, CPU is the most important
component of a computer system where it can consist more than
one CPU for large workstation as server and for personal
computing, it usually has one.
2. RAM
a. Random access memory (RAM) is a computer memory that is
available to be randomly accessed by program and managed by
operating system.
3. Linux
a. Linux is an open source operating system that is freely distributed
and can be installed on almost devices. It use Linux kernel to
operate and has many variant that is available to be downloaded.
4. Operating System
a. Operating systems (OS) is a software that perform basic tasks such
as recognizing input from the keyboard, sending output to the
display screen, keeping track of files and directories on the disk,
and controlling peripheral devices such as disk drives and printers.
5. NMS
a. Network monitoring system (NMS) is a software tools that allow
an administrator to supervise the individual components of a
network devices within a network remotely.
6. Instance
a. An instance is a virtual machine that run and handled by OpenStack
Nova framework that uses KVM libvirt.
80
7. OpenStack
a. OpenStack is a set of software tools for building and managing
cloud computing platforms for public and private clouds. It easy to
install, manage and supported by many organization.
8. Libvirt
a. Libvirt is collection of software that providing a convenient way for
managing virtual machines and other virtualization functionality,
such as storage and network interface management.
9. SSH
a. SSH stand for secure shell that provide the method to log into
another computer over a network, to execute commands in a remote
machine, and to move files from one machine to another. It is also
provides strong authentication and secure communications over
insecure channels.
10. VNC
a. Virtual Network Computing (VNC) is a graphical desktop sharing
system that uses the Remote Frame Buffer protocol (RFB) to
remotely control another computer. It transmits the keyboard and
mouse activity from one computer to another, relaying the graphical
screen updates back in the other direction, over the network.
81
APPENDIX A: GANTT CHART
82
83
84
85
86
APPENDIX B: UBUNTU SERVER 14.04.4 INSTALLATION
87
Figure 1: Ubuntu Server installation menu
Figure 2: Language selection
88
Figure 3: Location selection
Figure 4: Manually configure network with static IP
89
Figure 5: Set static IP address for the server
Figure 6: Configure gateway for the network
Figure 7: Configure DNS server
90
Figure 8: Set hostname for the server
Figure 9: Set Full of the server
Figure 10: Set user account for the server
91
Figure 11: Set user password
Figure 12: Set time zone location
Figure 13: Partitioning disks
92
Figure 14: Write changes to disk
Figure 15: Automatic updates option
Figure 16: Software selection to be installed
93
Figure 17: Grub loader for Ubuntu Server
Figure 18: Installation is finished
Figure 19: Ubuntu Server is operational
94
APPENDIX C: OPENSTACK SYSTEM OVERVIEW
95
Figure 20: Admin view on overviews of usage summary
Figure 21: Hypervisors of available OpenStack server
96
Figure 22: Host aggregates and availability zones
Figure 23: Admin can view all instances launched by users
97
Figure 24: Admin can view all volume created by users
Figure 25: Admin can set flavor for users to use
98
Figure 26: System info on services available
Figure 27: System info on compute service available
99
Figure 28: System info on quotas set for users
Figure 29: Projects available to be assigned for new user
100
Figure 30: User accounts available on the server
Figure 31: User views on overview page
101
Figure 32: List of instances launched by user
Figure 33: Volumes and snapshots page for user to create additional storage on
instances
102
Figure 34: List of images available for users
Figure 35: Security group on access and security option for users
Figure 36: Key Pairs for Linux based instances
103
Figure 37: Floating IPs to be assigned for instances
Figure 38: API access option
104
APPENDIX D: ACADEMIC RESEARCH PAPER
105
APPENDIX D: ACADEMIC WRITING
Academic Writing (Final Year Project)
Mohammad Hafiz Bin Zubair, Madam Roziyani Binti Rawi
BNS Cloud Computing System
Bachelor in Networking System
University Kuala Lumpur,
Malaysian Institute of Information Technology
Jalan Sultan Ismail Kuala Lumpur, Malaysia.
arepizz_90@yahoo.com
Abstract - This study is to focus on how the
cloud computing works and implements it on real
world situation where the system can be accessed
throughout the UniKL City Campus MIIT and can be
used by students to do their works or assignments
using the system. The methodology used in this project
is Rapid Application Development (RAD) model
because it provide continuous development and
documentation to be reviewed about the performance
of the systems. This methodology consist of eight
phases which are initiation, research, planning,
design, develop, testing, implement and analysis. A
work breakdown structure (WBS) is created to further
define the total scope of this project which step by step
approach of what need to be done in each phase until
the project is completed. This project is developed
using OpenStack cloud management software on a
single all-in-one hardware server that capable to
create five to six instance. This project is tested in a
controlled environment where each of the instances
are loaded with GNS3 and HeavyLoad software to
simulate the real work load on CPU utilization, RAM
usage and network load. During the session it was
also being monitored using network monitoring
system tool to capture the server state. Even though
the server is being push to the limits, it can still create
additional instance using available resources but the
created instance will facing some problem when
loading high compute application such as GNS3
where it failed to start the virtual routers.
INTRODUCTION
BNS Cloud Application system is developed to help
students to do their assignment which require high
computing applications such as GNS3 to accomplish. To
achieve this, the server is developed using OpenStack
cloud management technology which offer private cloud
feature such as Infrastructure as a Service (IaaS) platform.
This platform has allowed me to create a virtual machine
that pre-installed with the software needed for BNS
students that can be accessed over the network without
burden their own laptop with all the computational work
load.
PROBLEM STATEMENT
Many new applications today were designed for high end
computer were it require fast processor with multiple
cores and certain amount of RAM such as GNS3 where
it’s stated in their forum, it require at least 2GB of RAM
just to run three or more virtual routers efficiently. Also,
it is very costly to change or replace obsolete hardware in
the UniKL Lab just to run this applications. By investing
on a single or more server node at less cost, this
application can run virtually and can be accessed
anywhere inside UniKL MIIT campus network.
OBJECTIVE
The objective of this project is as follows:
106
1. To study and understand how to configure, set
up and to apply the OpenStack system into the
existing UniKL network.
2. To develop BNS Cloud Server system using
Linux Ubuntu.
3. To analyse the performance of the BNS Cloud
Server System among the control group of BNS
students.
LIMITATION
There are several limitations of this project that
cannot be avoided.
1. The server specification will only be able to
support five users at a time for optimal usage.
2. The performance of the server will be affected
as for the number of the users connected to the
server are increasing.
3. Quota will be allocated for each BNS student’s
account so that they can store their work as long
as not exceed the quota allocated for them.
4. The server can only be able to access internally
by BNS students, which means this is a private
cloud.
LITERATURE REVIEW
Cloud computing is divided into three main platform
that were widely supported in most cloud computing
provider. The three platforms are:
(http://www.cloudave.com, 2013)
Three cloud computing infrastructure
In this FYP project, only one category will be covered
which is Infrastructure as a Service to be provided to
BNS students as a learning platform. IaaS is the
collection of software and hardware which is servers,
storage, networks and operating system to be utilized
by the consumer[2]
, all the resources that available in
the cloud can be used by the consumer without buying all
those expensive equipment’s on their own[3]
. This project
is also using private cloud computing model that
dedicated only to a particular organization that hosted the
cloud server in their own building in this case is UniKL
MIIT campus[8]
.
Table: Overview of all journal used in this project
RESEARCH METHODOLOGY
Rapid Application Development (RAD) adopted from
Dan Gielan in the mid-1970s, is used in this project
because it provide continuous development of the system
and documentation to be reviewed about the performance
of the systems. The documentation then can be used by
others to improve this project. Figure below show the
step-by-step or cycle of the RAD model.
Title Author Previous Project Current Project
A View of Cloud
Computing
Michael
Armbrust
Potential of the
Cloud Computing
Implementing the
potential of the
cloud computing
to UniKL campus.
Performance
Analysis of Cloud
Computing for
Distributed Client
Dr. Neeraj
Bhargava
Using simulation
tools to simulate
and measure
performance and
load-balancing of
the cloud server.
Using the real
cloud system to
measure
performance and
utilization of the
cloud server.
A Comparison
and Critique of
Eucalyptus,
OpenNebula and
Nimbus
Peter
Sempolinski
Different type of
Cloud Computing
architecture
Suitable
architecture for
UniKL network.
Open Source
Cloud Computing
Management
Platforms
Stefan Wind Cloud Computing
management tools
Comparison of
different cloud
management tools
Cloud
Computing:
Different
Approach &
Security
Challenge
Maneesha
Sharma
Security
challenges for
each cloud type.
Provide
authentication for
students when to
access the cloud
computing system.
Comparison of
Open-Source
Cloud
Management
Platforms:
Xiaolong Wen Comparison and
feature between
OpenStack and
OpenNebula
Using OpenStack
because easy to set
up and suitable for
small network.
FYP Dissertation
FYP Dissertation
FYP Dissertation

More Related Content

Similar to FYP Dissertation

OpenFlow Aware Network Processor
OpenFlow Aware Network ProcessorOpenFlow Aware Network Processor
OpenFlow Aware Network ProcessorMahesh Dananjaya
 
Anis rahman khokan's internship paper
Anis rahman khokan's internship paperAnis rahman khokan's internship paper
Anis rahman khokan's internship paperAnis Rahman Khokan
 
osy microproject[1].pdf
osy microproject[1].pdfosy microproject[1].pdf
osy microproject[1].pdfRenuDeshmukh5
 
Minor project Report for "Quiz Application"
Minor project Report for "Quiz Application"Minor project Report for "Quiz Application"
Minor project Report for "Quiz Application"Harsh Verma
 
Online Attendance System
Online Attendance SystemOnline Attendance System
Online Attendance SystemAkash Kr Sinha
 
E filling system (report)
E filling system (report)E filling system (report)
E filling system (report)Badrul Alam
 
F03405046048
F03405046048F03405046048
F03405046048theijes
 
Full UnderGrad Project Report : Tender Timeline Tracker
Full UnderGrad Project Report : Tender Timeline TrackerFull UnderGrad Project Report : Tender Timeline Tracker
Full UnderGrad Project Report : Tender Timeline TrackerPallav Shah
 
E-Commerce
E-CommerceE-Commerce
E-Commerceconcoff
 
Daniel Murray Final Report
Daniel Murray Final ReportDaniel Murray Final Report
Daniel Murray Final ReportDaniel Murray
 
Voice wiki on mobile project report
Voice wiki on mobile project reportVoice wiki on mobile project report
Voice wiki on mobile project reportRahul E
 
Voice wiki on mobile project report
Voice wiki on mobile project reportVoice wiki on mobile project report
Voice wiki on mobile project reportRahul E
 

Similar to FYP Dissertation (20)

OpenFlow Aware Network Processor
OpenFlow Aware Network ProcessorOpenFlow Aware Network Processor
OpenFlow Aware Network Processor
 
Anis rahman khokan's internship paper
Anis rahman khokan's internship paperAnis rahman khokan's internship paper
Anis rahman khokan's internship paper
 
osy microproject[1].pdf
osy microproject[1].pdfosy microproject[1].pdf
osy microproject[1].pdf
 
mca online self
mca online selfmca online self
mca online self
 
Newleaks
NewleaksNewleaks
Newleaks
 
Front page
Front pageFront page
Front page
 
Philly Tech Fest Silverlight
Philly Tech Fest SilverlightPhilly Tech Fest Silverlight
Philly Tech Fest Silverlight
 
Minor project Report for "Quiz Application"
Minor project Report for "Quiz Application"Minor project Report for "Quiz Application"
Minor project Report for "Quiz Application"
 
Online Attendance System
Online Attendance SystemOnline Attendance System
Online Attendance System
 
IClass
IClassIClass
IClass
 
php.pptx
php.pptxphp.pptx
php.pptx
 
E filling system (report)
E filling system (report)E filling system (report)
E filling system (report)
 
F03405046048
F03405046048F03405046048
F03405046048
 
Full UnderGrad Project Report : Tender Timeline Tracker
Full UnderGrad Project Report : Tender Timeline TrackerFull UnderGrad Project Report : Tender Timeline Tracker
Full UnderGrad Project Report : Tender Timeline Tracker
 
E-Commerce
E-CommerceE-Commerce
E-Commerce
 
UiPath Studio Web
UiPath Studio WebUiPath Studio Web
UiPath Studio Web
 
Daniel Murray Final Report
Daniel Murray Final ReportDaniel Murray Final Report
Daniel Murray Final Report
 
Voice wiki on mobile project report
Voice wiki on mobile project reportVoice wiki on mobile project report
Voice wiki on mobile project report
 
Voice wiki on mobile project report
Voice wiki on mobile project reportVoice wiki on mobile project report
Voice wiki on mobile project report
 
Full Resolt Report
Full Resolt ReportFull Resolt Report
Full Resolt Report
 

FYP Dissertation

  • 1. BNS CLOUD APPLICATION SYSTEM USING OPENSTACK MALAYSIAN INSTITUTE OF INFORMATION TECHNOLOGY UNIVERSITI KUALA LUMPUR 2014 BET(HONS)INNETWORKINGSYSTEMS2014
  • 2. BNS CLOUD APPLICATION SYSTEM USING OPENSTACK MOHAMMAD HAFIZ BIN ZUBAIR Dissertation Submitted In Fulfillment of the Requirements For the Bachelor of Engineering Technology (Hons) Networking System in the Malaysian Institute of Information Technology, Universiti Kuala Lumpur 2014
  • 3. ii DECLARATION PAGE I declare that this dissertation is of my original work and all references have been cited adequately as required by the institute. Date: Signature: Full Name: Mohammad Hafiz Bin Zubair ID No. : 52208211079
  • 4. iii APPROVAL PAGE We have examined this dissertation and verify that it meets the program and institute’s requirements for Bachelor of Engineering Technology (Hons) Networking System. ……………………………………………. ROZIYANI BINTI RAWI ……………………………………………. MUHAMMAD EZRA BIN MUHAMMAD ISMAIL SYSTEM AND NETWORKING UNIVERSITI KUALA LUMPUR MALAYSIA INSTITUTE OF INFORMATION TECHNOLOGY
  • 5. iv COPYRIGHT PAGE Declaration of Copyright and Affirmation of Fair Use of Unpublished Researched Work as stated below: Copyright @ 11/6/2014 by MOHAMMAD HAFIZ BIN ZUBAIR (52208211079) All rights reserved for BNS CLOUD APPLICATION SYSTEM USING OPENSTACK No part of this unpublished research may be reproduced, stored in a retrieval system, or transmitted, in any form or by any means, electronic, mechanical, photocopying, recording or otherwise without the prior written permission of the copyright holder except as provided below: i. Any material contained in or derived from this unpublished research may only be used by others in their writing with due acknowledgement. ii. MIIT Universiti Kuala Lumpur or its library will have the right to make and transmit copies (print or electronic) for institutional and academic purposes. iii. The Universiti Kuala Lumpur’s library will have the right to make, store in retrieval system and supply copies of this unpublished research if requested by other universities and research libraries.
  • 6. v DEDICATION I would like to dedicate this project to my family for their love and support towards my project. This dissertation could not have been written without Madam Roziyani Binti Rawi who not only served as my final year project supervisor but also encouraged me to do my best for this project until it is successfully completed. I also would like to thank you for the co-operation, knowledge, and information during my final year project. Last but not least, a lot of thank you to all members that giving their time and knowledge to successfully achieve my final year project objectives. Thank you for all the effort.
  • 7. vi ACKNOWLEDGMENT Alhamdulillah and praise to Allah for giving me the strength to complete this final year project even though there are many obstacle in the ways. The project delivered in this paper could not have been accomplished without the help of many individuals. I would like to acknowledge the contributions of the following groups and individuals for successfully complete this project. First I would like to thank my supervisor, Madam Roziyani Binti Rawi for the helped in documentation parts of the project and letting me to use her room to park my server. Thank you for all the guidance, valuable suggestion, comment, advice, support and concern throughout the completion of this project. Along this period, I also would like to thank to my friends for their supports throughout the development and implementing the projects. My sincere appreciation also goes to all MIIT Lecturers involved in this Final Year Project for all their support and advice not only in this project but also during most of my study period. Finally, I am thankful to all people who names are not been mentioned for their encouragement, criticism, and support for this project. Thank you.
  • 8. vii TABLE OF CONTENTS DECLARATION APPROVAL PAGE COPYRIGHT PAGE DEDICATION ACKNOWLEDGEMENT TABLE OF CONTENTS LIST OF TABLES LIST OF FIGURE LIST OF ABBREVIATION ABSTRACT ABSTRAK ii iii iv v vi vii xi xii xiv xv xvi CHAPTER I: INTRODUCTION 1 1.1. Introduction 1.2. Objective 1.3. Scope 1.4. Problem Statement 1.5. Proposed Solution 1.6. Limitation 1 1 2 2 3 3 CHAPTER II: LITERATURE REVIEW 4 2.1. Overview 2.2. Introduction to Cloud Computing 2.3. Cloud Computing Performance 2.4. Private Cloud Computing 2.5. Open Source Cloud Computing Management Platforms 4 4 5 6 7
  • 9. viii 2.6. Comparison between Clouds Computing Management Tool 2.7. OpenStack and OpenNebula 2.8. Cloud Computing Security Challenge 8 10 12 CHAPTER III: METHODOLOGY 15 3.1. Introduction 3.2. Methodology 3.2.1. Initiation 3.2.2. Research 3.2.3. Planning 3.2.4. Design 3.2.4.1. Cloud Computing Server 3.2.4.2. Existing Network 3.2.4.3. Users 3.2.5. Development 3.2.5.1. OpenStack Architecture 3.2.5.2. All-in-one server 3.2.5.3. Monitoring 3.2.5.4. OpenStack Glance 3.2.5.5. Authentication 3.2.5.6. Security 3.2.6. Implementation 3.2.6.1. Client side 3.2.6.2. Server side 3.2.6.3. Network side 3.2.7. Testing 3.2.8. Analysis 3.3. Work Breakdown Structure (WBS) 3.4. Gantt Chart 3.5. Project Resources 3.5.1. Hardware 15 15 16 17 18 20 20 21 21 21 21 21 22 22 22 22 23 23 24 24 25 25 26 27 27 27
  • 10. ix 3.5.2. Software 3.6. Project Costing and Budget 3.6.1. Cost for Hardware 3.6.2. Cost for Software 30 31 31 31 CHAPTER IV: DEVELOPMENT/PROTOTYPE 32 4.1. Introduction 4.2. Cloud Computing Server 4.3. Development Process 4.3.1. Installation requirement 4.3.2. Preparing all-in-one: dedicated hardware server 4.3.3. Creating basic virtual machine image 4.3.4. Importing image to the OpenStack Glance 4.3.4.1. Logon to OpenStack 4.3.4.2. Navigate to image tab 4.3.4.3. Launching an instance 4.3.5. Connecting to the instance 4.3.5.1. VNC Viewer 4.4. Monitoring Performance 4.4.1. Network Management Software (NMS) 4.4.2. Install SNMPD service on OpenStack server 4.4.3. Configure PRTG to monitor OpenStack server 32 32 33 33 33 38 42 42 43 44 45 45 46 46 47 48 CHAPTER V: TESTING AND RESULT 51 5.1. Introduction 5.2. Testing Method Approach 5.3. Creating Instances 5.3.1. Testing 5.3.2. Result 51 52 53 54 58
  • 11. x 5.3.3. Analysis 5.4. Common Approach 5.4.1. Testing 5.4.2. Result 5.4.3. Analysis 5.5. Stressing OpenStack Server 5.5.1. Testing 5.5.2. Result 5.5.3. Analysis 61 62 62 63 66 67 67 70 74 CHAPTER VI: CONCLUSION AND RECOMMENDATION 75 6.1. Conclusion 6.2. Recommendation 75 76 REFERENCES GLOSSARY APPENDIX A: GANTT CHART APPENDIX B: UBUNTU SERVER 14.04.4 INSTALLATION APPENDIX C: OPENSTACK SYSTEM OVERVIEW APPENDIX D: ACADEMIC RESEARCH PAPER 76 79 81 86 94 104
  • 12. xi LIST OF TABLES Table 2.1: Comparison of cloud computing tools Table 2.2: Comparison of OpenStack and OpenNebula feature Table 2.3: Overview of literature reviews Table 3.1: Indicates the components involves throughout this project and relationship between each other Table 3.2: Required installation and configuration of the component Table 3.3: Component involved in the server side Table 3.4: Networking devices Table 3.5: Detail information on each hardware Table 3.6: Indicate the software requirement in each component Table 3.7: Hardware costing Table 3.8: Software costing 9 11 13 18 23 24 24 28 30 31 31
  • 13. xii LIST OF FIGURES Figure 2.1: Three cloud computing infrastructure Figure 2.2: Cloud computing overview Figure 3.1: RAD Methodology Model Figure 3.2: Cloud computing diagram Figure 3.3: Work Breakdown Structure diagram Figure 4.1: Network diagram of the OpenStack implementation Figure 4.2:All the necessary files retrieved using git Figure 4.3: Modify the local.conf with the following configuration Figure 4.4: Installation process is started Figure 4.5: Example of scripted installation process Figure 4.6: Summary of ./stack.sh Figure 4.7: OpenStack login page at 10.6.2.230 Figure 4.8: Fill in information during installation process Figure 4.9: Red Hat VirtIO is the default adapter to provide connection Figure 4.10: Installation of GNS3 Figure 4.11: Login using username admin and password both admin Figure 4.12: Create an image pop-up filled with necessary information Figure 4.13: Show the example on how to create an instance Figure 4.14: Summary of the created instance Figure 4.15: Enter the VNC Server IP address Figure 4.16: PRTG interface Figure 4.17: First step to add new device to PRTG Figure 4.18: Example of device configuration Figure 4.19: Sensors that discovered at OpenStack server Figure 4.20: Show the current active sensors Figure 5.1: Running instances handled by OpenStack Figure 5.2: List of images available in OpenStack Server Figure 5.3: Launch instance pop-up form Figure 5.4: Summary of Windows7-VNC image converted to Win7-1 instance 5 7 16 20 26 32 34 35 36 36 37 37 39 40 41 42 43 44 45 45 46 48 49 49 50 52 53 54 55
  • 14. xiii Figure 5.5: VNC Viewer interface Figure 5.6: Select location in Win 7-1 Figure 5.7: Inside the instance Figure 5.8: CPU utilization from 1:20AM to 2:20AM Figure 5.9: Physical memory utilization from 1:20AM to 2:20AM Figure 5.10: Bandwidth utilization from 1:20AM to 2:20AM Figure 5.11: Three Cisco 3725 series virtual router Figure 5.12: CPU utilization from 10:40PM to 11:35PM Figure 5.13: Physical memory utilization from 10:40PM to 11:35PM Figure 5.14: Bandwidth utilization from 10:40PM to 11:35PM Figure 5.15: Sixth and seventh instance created Figure 5.16: Hypervisor summary Figure 5.17: HeavyLoad software stressing CPU usage Figure 5.18: Error occur to start virtual router Figure 5.19: CPU utilization from 9:40PM to 10:30PM Figure 5.20: Physical memory utilization from 9:40PM to 10:30PM Figure 5.21: Bandwidth utilization from 9:40PM to 10:30PM 55 56 57 58 59 60 62 63 64 65 67 68 69 70 71 72 73
  • 15. xiv LIST OF ABBREVIATION All–in-one Central Processing Unit Infrastructure as a Service Kilobyte Virtual Machine Laboratory Malaysian Institute Of Information Technology Network Monitoring System Operating System Platform as a Service Random Access Memory Secure Shell Simple Network Management Protocol Daemon Software as a Service Universiti Kuala Lumpur Virtual Central Processing Unit Virtual Machine Virtual Network Computing AIO CPU IaaS KVM Lab MIIT NMS OS PaaS RAM SSH SNMPD SaaS UniKL VCPU Instance VNC
  • 16. xv ABSTRACT This study is to focus on how the cloud computing works and implements it on real world situation where the system can be accessed throughout the UniKL City Campus MIIT and can be used by students to do their works or assignments using the system. The methodology used in this project is a Rapid Application Development (RAD) model because it provides continuous development and documentation to be reviewed about the performance of the systems. This methodology consists of eight phases which are initiation, research, planning, design, development, testing, implement and analysis. This project is developed using OpenStack cloud management software on a single all-in-one hardware server that capability to create five to six instances. This project is tested in a controlled environment where each of the instances are loaded with GNS3 and HeavyLoad software to simulate the real workload on CPU utilization, RAM usage and network load. During the session, it was also being monitored using network monitoring system tool to capture the server state. Even though the server is pushed to the limits, it can still create additional instances using available resources, but the created instance, will face some problem when loading high computes application such as GNS3 where it failed to start the virtual routers.
  • 17. xvi ABSTRAK Kajian ini ialah untuk mengkaji pada bagaimana pengkomputeran awan bekerja dan melaksanakan ia di keadaan dunia sebenar di mana sistem boleh diakses di seluruh UniKL City Campus MIIT dan boleh digunakan oleh pelajar untuk melakukan kerja-kerja atau tugasan-tugasan mereka menggunakan sistem itu. Kaedah yang digunakan dalam projek ini ialah Rapid Application Development (RAD) model kerana ia menyediakan pembangunan berterusan dan dokumentasi untuk dikaji semula tentang prestasi system ini. Kaedah ini terdiri daripada lapan fasa yang mana ia adalah permulaan, penyelidikan, perancangan, merangka, membangunkan, menguji, melaksanakan dan analisis. Projek ini di bangun menggunakan pengurusan perisian awan OpenStack di satu pelayan perkakasan yang semua dalam satu yang berkebolehan mewujudkan lima kepada enam “instance”. Projek ini diuji di satu persekitaran terkawal di mana setiap “instance” dibebankan mengguna perisian GNS3 and HeavyLoad untuk mensimulasikan pekerjaan sebenar memuatkan penggunaan CPU, penggunaan RAM dan rangkaian. Semasa sesi itu, ia juga dipantau menggunakan aplikasi sistem pemantauan rangkaian untuk memeriksa keadaan pelayan. Walaupun pelayan sedang berada di had maksimum, ia masih boleh mencipta “instance” tambahan menggunakan sumber-sumber yang ada tetapi “instance” tersebut akan menghadapi sedikit masalah apabila memuatkan aplikasi seperti GNS3 di mana ia gagal memulakan “routers” maya.
  • 18. 1 CHAPTER I: INTRODUCTION 1.1. Introduction Now days, there are many applications specifically for networking students such as Bachelor of Networking System (BNS) that are requiring a high specification computer to execute the applications. Therefore, cloud computing is necessary in the UniKL environment to be fully utilized by BNS students so that they don’t have to purchase an expensive laptop just to run the applications. For this final year project, it was necessary to create a cloud computing server that allows BNS student to utilize and used it as a processing station to run applications that required high computing resources such as GNS3. The student can use computers in the any available lab or their own laptop installed with VNC Viewer to use this cloud computing services as long as they are in the UniKL networks. To achieve this, the server will be using Infrastructure as a Service (IaaS) and Software as a Service (SaaS) platform to provide the cloud service to the students. For the server, it will using all-in-one hardware OpenStack configuration which means all the necessary components to run the cloud is installed in one machine and Ubuntu Server 12.04.4 will be used as the main operating system. 1.2. Objective · To study and understand how to configure, set up and to apply the OpenStack system into the existing UniKL network. · To develop BNS Cloud Server system using Linux Ubuntu. · To analyze the performance of the BNS Cloud Server System among the control group of BNS students.
  • 19. 2 1.3. Scope · The cloud management system for the cloud computing will be using OpenStack. · The testing will be done in a controlled environment which involves a group of BNS students who are using applications such as packet tracer and GNS3 to make sure it can run as it intended. · To test the performance of the server when utilized by a number of students and constantly monitoring the server. · The performance of the cloud server will be measured based on the RAM usage, network load and CPU utilization by using a network monitoring system (NMS) tool via PRTG. · The ability to execute program smoothly and respond time between the user and the virtual machine will not be covered. 1.4. Problem Statement Many new applications today required fast central processing unit (CPU) and large capacity of RAM just to meet the requirement and executing the applications smoothly which is costly. Based on observation and experiences of using computers in UniKL Lab, many computers on it are still using old computers and had many problems of running application such as packet tracer where the application just stuck and not loading at all. For GNS3, a minimum of at least dual-core or quad-core CPU with 2GB RAM to run 3-5 router is required as mentioned on their website, which is not computer in the UniKL Lab is equipped for. It is costly for management to change all this computer just to run the applications. For the BNS students, they often lost their thumb drive containing important documents without making a backup while doing their work in the Lab. By investing in a single, powerful cloud computing server, it can fulfill the requirement that students need to do their jobs by running all the required applications on the server.
  • 20. 3 1.5. Proposed Solution · By using low specification computer in the UniKL lab, it should be able to run the latest applications for learning purpose pre-installed in the cloud computing system. · BNS students can use an application from the server in real-time, meaning that they can load the application anywhere in the UniKL network using computers in the Lab or their laptop. · BNS students are able to store their work on the server as long as they don’t exceed the quota limits of the storage allocated for them. 1.6. Limitation There are several limitations of this project that cannot be avoided. · The server specification will only be able to support five users at a time for optimal usage. · The performance of the server will be affected as for the number of the users connected to the server are increasing. · A quota system will be allocated for each BNS student’s account so that they can store their work as long as not exceed the quota allocated for them. · The server can only be able to access internally by BNS students, which means this is a private cloud.
  • 21. 4 CHAPTER II: LITERATURE REVIEW 2.1. Overview Cloud computing is a new way of delivering hardware and software through the computer network such as local area network and the Internet. Starter consumers that have the potential to explode new ideas can utilize this cloud computing without required to invest in a large significant capital to set up new hardware and software or the resources to maintain the components over a long period [1]. In this literature review, it will focus on the method of how cloud computing will deliver the services over the UniKL campus local area network to be accessed by BNS students. 2.2. Introduction to Cloud Computing The collection of software and hardware in a data center is what a cloud computing true body [1]. A private cloud is referring to the internal cloud server made available only within the organization, in this case is UniKL campuses. Cloud computing is designed to allow a developer or consumer to access the provided software, platform and infrastructure as a service over the computer network wherever you are. There are many features of cloud computing that are considered as advantages of the cloud resources such as pooling, rapid elasticity, measured service, on-demand self-service and broad network access [2]. There are three categories in cloud computing: I. Software as a Services (SaaS) II. Platform as a Services (PaaS) III. Infrastructure as a Services (IaaS)
  • 22. 5 (http://www.cloudave.com, 2013) Figure 2.1: Three cloud computing infrastructure In this FYP project, only one category will be covered which is Infrastructure as a Service to be provided to BNS students as a learning platform. IaaS is the collection of software and hardware which is servers, storage, networks and operating system to be utilized by the consumer [2], all the resources that available in the cloud can be used by the consumer without buying all those expensive equipment’s [3]. 2.3. Cloud Computing Performance According to Dr. Neeraj (2013), cloud computing is the act of combining the concepts of grid and distributing computing where it support the sharing of hardware such as server memory and CPU process and also software such as data and application simultaneously to multiple clients at a time [5]. In a private cloud, where virtual machines (VM) based application is widely used, such as virtual desktop where students just need a computer whether their own or computer in the UniKL lab to access applications on the cloud server. Commercial cloud computing is an internet based that consist of thousands of computers connected to the cloud [5], however private cloud is only within an organization that has a specific amount of computers it need to be served and it is not open to public. The overall performance of the cloud computing server according to Dr. Neeraj (2013), is depending on “How light the interface?” And “How is the availability of resources at the server?” Based on this conclusion, the main
  • 23. 6 performance issues of the cloud computing is the cloud server itself, where the hardware and software is affecting the whole cloud computing performance to the clients. To overcome this, multiple powerful computer that has many resources such as CPU core and memory can be used in the system. But, for the BNS Cloud Application System that implement private cloud infrastructure where only ten clients will be used for testing purposes, it will not require a powerful computer as the main cloud computing server. 2.4. Private Cloud Computing A private cloud is a cloud computing model that dedicated only to a particular organization that hosted the cloud server in their own building. Private cloud allows the administration to host any applications on the cloud that low specification computer cannot support so that any computers in the organization can use the applications without needed to upgrade which is very costly. Also the security of data in the cloud computing server is protected because it is hosted inside the organization and maintained by their own IT personnel. Although the private cloud is more expensive to set up compared to use public clouds, an info-tech survey that done shows that 76% of IT- decision maker will focus on the private cloud because it is more secure and provide more control on the cloud [8].
  • 24. 7 ([4], 2011) Figure 2.2: Cloud computing overview In figure 2.2 shows the overall overview of available cloud computing model, but with the same function which is to share resources among clients. 2.5. Open Source Cloud Computing Management Platforms The increases of the use of Open Source (OS) have developed in recent years, therefore it is possible to manage cost-effective and efficiently structured cloud management platform using Open Source that available today [4]. This article compares the existing open source cloud computing management platforms and suggests some recommendations to the user. Four open source platforms have been discussed and comparison of structuring cloud solutions for example, Abicloud, Eucalyptus, OpenNebula and Nimbus. The important factor to make a decision to which open source license is the software products use or security precaution they offer. Interoperability, as well as robustness against malfunction makes it possible to transfer application between clouds or use several clouds at once. These are play important factor in daily use. The possibility and compatibility with other platforms create the virtual independent machine for decision making. The
  • 25. 8 comparisons clearly state the differences between each platform. Through these differences, it is possible to make a conclusion on different fields of implementation. This is showing that commercial enterprises are able to construct a cloud solution on the basis open source platform as well as open source is particularly suited to this purpose. It is important to get detailed information regarding the features and differences of the products. This has been gained through this article from two aspects. Firstly, the explanation is focusing on different functional methods in detail and it comes to a commonality and differences between the four platforms. As a conclusion, open source platforms for cloud computing not yet reached their limit in the development stage. This technology is still very new to the technology and it currently needs extreme development process. 2.6. Comparison between Clouds Computing Management Tool With the increasing demand for cloud computing system, there are many open source management tools developed for a specific type of cloud computing models. These open source applications is free to use and provide cost effective, independent, innovative, and flexible solutions which are easily to be implemented to an existing system [4]. The cloud computing management tool is used to construct and manage cloud architectures for administrator to set up their own cloud computing on existing systems. Over the years, many tools has undergone strong growth in the market are available to choose from commercial that has better support for open source that is flexible enough to work with many underlying systems such as different Hypervisors [4]. There are four famous open source cloud computing management tools: a) Eucalyptus: Stand for Elastic Utility Computing Architecture for Linking Your Programs to Useful System is a project from the University of Santa Barbara in California, and it was used to construct an open source private cloud platform [4].
  • 26. 9 b) OpenNebula: Is the European Union’s flagship in the field of research projects with the goals to provide Virtualization and cloud computing [4]. c) Abicloud: Is developed by Abiquo which is also the company that maintain and enhance the cloud system [4]. d) Nimbus: Is a toolkit that makes possible to convert cluster into a cloud computing in the form of IaaS [4]. In the table 2.1, it shows the summary of each cloud computing management tools available and compared for better view and understanding the features of the cloud system. Table 2.1: Comparison of cloud computing management tools Description Abicloud Eucalyptus OpenNebula Nimbus Architecture Distinctive web-based management function Hierarchically grouped from CLC via the CC to the NC Three modules contain all the components Three modules contain all the components Cloud type supported Public / Private / Hybrid cloud Private / Hybrid cloud Public / Private / Hybrid cloud Private / Community cloud Hypervisor supported Virtual Box, VMware, KVM Xen VMware, KVM Xen VMware, KVM Xen Python, Bash, Ebtables, Libvirt, KVM Xen Data / VM storage ZFS Opensolaris, Logical Volume Manager Walrus Network File System or Secure Copy Cumulus File System Backend Storage User Interface Cloud Operator API Euca2ools (CLI) Command Line Interface (CLI) Web-services: Nimbus Web Robustness against error No additional data backup Separated cluster to Permanents database to Regularly check and
  • 27. 10 reduce correlated errors store information about host and VMs backup for worker nodes Security Code Access System (CAS) Generate a public/private key code to pairing with user authentication Authentication by password, secure shell and RSA key code pairings Lightweight Directory Access Protocol Public Key Infrastructure ([4], 2011) 2.7. OpenStack and OpenNebula Private cloud management is a development of an open-source cloud platform that is widely used which can substitute commercial cloud. This paper is presented on the function of OpenStack and OpenNebula with comparison in some aspect with some deployment recommendations. This research focuses on the feature and a summary of both platforms. OpenStack is an open source software or cloud providers that used to set up the cloud computing and the storage. While OpenNebula is an open source target at building industry standard to manage the complex cloud computing infrastructure where it is offering flexible ways to build public or private clouds [10]. In table 2.2, it shows the detailed comparison between both cloud management platforms.
  • 28. 11 Table 2.2: Comparison of OpenStack and OpenNebula feature OpenStack OpenNebula Provenance Include three major parts: Compute, object storage, Image service Accumulation of virtual machine management, Distribution infrastructure of data centers Architecture Straightforward, stable Provide more low-level feature, can work without a shared FS, secure Copy (SCP) Virtualization Hypervisors Support available hypervisors Only support three: Xen, KVM and VMW Scale and Activity Level of Community Increasing more than OpenNebula Almost Increasing User Interface Used application Amazon Web Services (AWS) Used application Open Cloud Computing Interface (OCCI), EC2 Security Provides firewall and Virtual Private Network (VPN) Secure and efficient authentication and authorization – passwords and RSA key code ([10], 2013) From the comparison of OpenStack and OpenNebula, OpenStack includes three parts: that is Nova, Swift, and Glance. It is popular among enterprise around the world. OpenNebula is an accumulation of management virtual machine and has more than 4000 downloads per month to build their own cloud – Big Cloud. OpenStack offer the same service to be alternative who does not want to use billing cloud. Therefore OpenStack is more suitable, straightforward because the documentation guidance can be seen on websites. OpenNebula suitable for a research institute for large data centers to support the research. It is ideal for users who likes to run a cloud machine quickly, dealing with large data, protecting investment and avoid vendor lock-in [10].
  • 29. 12 The research has clearly shown the different of OpenStack and OpenNebula from architecture, hypervisors, security and other angles. This evaluation will help people understand their goal and function. The result as a recommendation in a better use of OpenStack and OpenNebula. 2.8. Cloud Computing Security Challenge Cloud computing is an internet based service that provides services such as computing and storage for all users, including few sectors such as financial, government and healthcare. Therefore the overall journal is about the systematic review on different types of clouds as well as the security challenge that should be solved. Since a cloud is the hardware and software collection that store in the data center, it raised a several challenges on security issues for the service. Their some characteristics that have been proposed for maintaining the security in a cloud computing environment. It is also included the software platform infrastructure for each categorywithin Cloud computing such as SaaS, PaaS, and IaaS and defines some of the characteristics for each category. As mention before the variety of clouds is also classified into personal clouds, general clouds, domain-specific clouds and mixed clouds. This journal gives a comparison between different service providers on different clouds. In general clouds the challenge that is yet to be solved are the Dos Attack in Virtual Machine (VM) or placing malicious code on the physical line. Domain specific cloud for example, includes retail and financial service or organization. The security issues include the compliance and auditing, intrusion Detection (IDS) and firewall features, access control and antivirus protection. Besides, a hybrid cloud is a combination of one private cloud and one general cloud which is provides organization to manage resources externally and internally. It is scalability and cost effectiveness of a business. The issues of the security in these clouds were all ongoing compliance concerns, access control and identity management, data slinging and risk of multiple cloud tenants.
  • 30. 13 As a conclusion, this journal has been focused on the different type of clouds and the writer describes the way of the possible solution to security threats on each level. In the table 2.3, it shows the summary of all the journals and articles that has been used in this project. Table 2.3: Overview of the literature reviews Title Author Previous Project Current Project A View of Cloud Computing Michael Armbrust Potential of the Cloud Computing Implementing the potential of the cloud computing to UniKL campus. Performance Analysis of Cloud Computing for Distributed Client Dr. Neeraj Bhargava Using simulation tools to simulate and measure performance and load-balancing of the cloud server. Using the real cloud system to measure performance and utilization of the cloud server. A Comparison and Critique of Eucalyptus, OpenNebula and Nimbus Peter Sempolinski Different type of Cloud Computing architecture Suitable architecture for UniKL network. Open Source Cloud Computing Management Platforms Stefan Wind Cloud Computing management tools Comparison of different cloud management tools Cloud Computing: Different Approach & Security Challenge Maneesha Sharma Security challenges for each cloud type. Provide authentication for students when to access the cloud computing system.
  • 31. 14 Comparison of Open-Source Cloud Management Platforms: OpenStack and OpenNebula Xiaolong Wen Comparison and feature between OpenStack and OpenNebula Using OpenStack because easy to set up and suitable for small network.
  • 32. 15 CHAPTER III: METHODOLOGY 3.1 Introduction This chapter will discuss on type of methodology that will be used in this project. Methodology is a documented process or step by step processes that are used to help in the planning and the developing the project accordingly. This project will be requiring both hardware and software to make it successfully running. The Work Breakdown Structure (WBS) provides the necessary framework for detailed cost estimating and control along with providing guidance for schedule development and control. The function of WBS is to break down a large and complex project into smaller project pieces provides a better drafting of planning and developing the project. WBS can also be used to facilitate resource allocation and task assignment. Some amount of the budget will be listed in order to purchase the hardware such as all-in-one server, switch, cables, and computers. Furthermore, some of the software needed is open sources and can be downloaded from the internet and it will be installed in the server and client computers. 3.2 Methodology After a lot of research has been done about this cloud computing system using journals, the Internet and articles, it has been determined that Rapid Application Development (RAD) adopted from Dan Gielan in the mid-1970s, is the best method because OpenStack is still rather new and it will provide continuous development of the system and documentation to be reviewed about the performance of the systems. The data that will be collected is the performance of the server to support multiple instances (virtual machine) at a time such as CPU utilization, RAM usage and network bandwidth.
  • 33. 16 Figure 3.1: RAD Methodology Model 3.2.1. Initiation The initial start of this project is to collect data from various method such as investigation about hardware and software regarding cloud computing server requirement and observation. The investigation took place in UniKL Lab in level six where mostly the computers in the lab are still the old specification which is Intel Pentium 4 and only 512MB worth of DDR1 RAM. Many of the computers are also using Windows XP which is no longer supported in April 2014 by Microsoft. From the observation, it has been determined that the most required software for learning purpose among BNS students, which their computer cannot support is GNS3 where it is requiring huge amount of processing power and RAM to support and configure many virtual router at once. Another software that always has a problem to use in the lab is the latest version of packet tracer where the application just stuck when loading.
  • 34. 17 3.2.2. Research There are tons of research has been done in this project because the cloud computing system is not easy to set up and require thorough research before any real implementation can be done on the UniKL network infrastructure. Most of the research is done through the Internet, journals and articles about available cloud computing tools. After research has been done, OpenStack is chosen and will be used as Cloud Computing Management Control for this project because its architecture that support private cloud and easy to use. Below are the some example why OpenStack is used in this project. i. Control and Flexibility: OpenStack area created using open source community which means it can be supported with third- party technology to further enhance the system. ii. Open Industry Standard: More than 75 leading companies from over a dozen countries are participating in OpenStack, including Cisco, Citrix, Dell, Intel and Microsoft. iii. Openness and Compatibility: OpenStack is compatible with thousands of existing public and private clouds for seamless transition from cloud to cloud. iv. Flexible Technology: Global ecosystem of industry leading vendors supply integration support for a wide variety of features within the cloud. As an example, hypervisor support includes ESX, Hyper-V, KVM, LXC, QEMU, UML, Xen, and XenServer.
  • 35. 18 3.2.3. Planning Planning is the rough idea or sketches about the cloud system before it can be designed and to be developed later on. This stage is where all the components of hardware and software involved in this project are being gathered together to see the relation with each other’s. It is important to have a good plan on how to integrate this cloud computing system with the existing UniKL network environment so that BNS students can access this cloud anywhere in the Campus. In Table 3.1, it shows all the components that have been identified to be used in this project. Table 3.1: Indicates the components involves throughout this project and the relationship between each other Component Use / Function Relation Constraint Computer / Laptop · Access applications from the server (GNS3, Packet Tracer) · View and controlling the instance in the server. Computer -> Switch -> all- in-one server Must be connected to UniKL network. VNC Viewer must be installed to control the instance Switch Used to interconnect computers and cloud server to UniKL networks. Switch -> Computer -> all-in-one server. Must be configured to allow all connections from UniKL network All-in-one Hardware Server · Interface for the users to request instance. · Controls user designated allocation of resources which they are not allowed to exceed. All-in-one server -> Switch -> Computer Must have huge capacity of RAM and CPU cores to handle many instances at once.
  • 36. 19 · Provide authentication, security, quota system, and many more. OpenStack · Cloud Management tools to provide instance to the users. · Used to process user requests and control resources. · Process input from the users, retrieve the needed disk image from the Glance, signal the OpenStack Compute to set up an instance and then give IP address. OpenStack -> All-in-one server -> Switch -> Computer Must be properly configured to make sure that the server can provide a reliable instances service without any problem such as Nova does not load or copied to create a new instance or not assigning any IP addresses. OpenStack Compute · Provide a framework which allows instances to run · Relies on a library called libvirt, design to provide a facility for controlling the start and stop of instances. Computer -> Switch -> All- in-one server - > OpenStack Must have all the required dependencies installed so it can run properly without any problems creating and running instances. OpenStack Glance · Database of disk image that can be copied and used as the basis for the new instance. · When the instance is spawned, the templates copied and is packaged into a disk image for the user to use. Glance -> Network -> OpenStack -> All-in-one server -> Switch -> Computer Must have large storage to support many UniKL BNS students. The image must have an operating system and the required software pre- installed in it.
  • 37. 20 3.2.4. Design Figure 3.2 shows the basic diagram for the cloud computing system where it is divided into three sections which is a cloud computing server, existing network and clients. Figure 3.2: Cloud computing diagram 3.2.4.1. Cloud Computing Server This section contains two devices which are all-in-one hardware server and a switch which reside on its own private network. OpenStack all-in-one server will controls all the user resources allocation, monitoring of the system and collecting input from the user to be processed. It is also manage image repository, networking function, creating and maintaining the instance. The last device is a switch used to interconnect the server to the UniKL existing network so that it will accessible anywhere in the UniKL MIIT. The switch is not configured with any Vlan as it uses the existing student Vlan in UniKL switch.
  • 38. 21 3.2.4.2. Existing Network This section only contains one device which is switch that already in use to connect existing computers in the lab to the UniKL network. By connecting to the switch, the server can be accessed by using wired and wireless in UniKL MIIT campus. 3.2.4.3. Users On the user’s computer, they just have to install RealVNC Viewer software and connect to the created virtual machine by entering the virtual machine IP address. After that users can use the available software inside the VMs as if they using it in their own computer. 3.2.5. Development Development is a stage where all the component is being prepared with all required software and hardware information about how to set up the system. The following section will discuss on the combining of all information that is gathered together to develop the system. 3.2.5.1. OpenStack architecture OpenStack is a highly modular architecture that offers extensive support for many hypervisor software, monitoring system, storage file system, networking, and user management services. It will be used as the main cloud computing management control. 3.2.5.2. All-in-one Server This is where the OpenStack codename Havana will be installed and configured to control all the activity in the cloud system.
  • 39. 22 3.2.5.3. Monitoring To monitor the performance of the OpenStack server, PRTG NMS software will be used to monitor the server and record any changes in the RAM usage, CPU utilization and network utilization. 3.2.5.4. OpenStack Glance Glance is a database located in the server that will handle and store the virtual machine disk image template. The disk image can be created by administrator to suit their need or using any available operating system that can be directly added to the glance database over the internet. 3.2.5.5. Authentication For a Linux based operating system, each user must pre- created a SSH key before logging into the Linux virtual machines. As for the Windows operating system, it does not need the SSH key to connect to the instances. 3.2.5.6. Security OpenStack has a built-in security feature that allows only a certain port available to the users so that they can connect to the VMs using the open port. The incorrect port setting will make users unable to connect to the VMs.
  • 40. 23 3.2.6. Implementation Implementation stage is where the cloud computing system itself being deployed in the UniKL MIIT campus and BNS students can use the service provided. Implementation will be divided into three sections which is client side, server side and network. 3.2.6.1. Client side In the table 3.2, there are two components required on the client side which is a virtual machine hypervisor and computers. This is compulsory to have in the client side. Table 3.2: Required installation and configuration of the component No. Component Description 1 VNC Viewer · Needed to connect to the running instance inside the server. 2 Computer / Student Laptop · Running on any operating system that support RealVNC Viewer. · Connected to UniKL local area network via wired connection.
  • 41. 24 3.2.6.2. Server side Table 3.3 shows the most crucial part of the system which is located on the server side. All the configuration must be made for the system to be usable by students. Table 3.3: Component involved in the server side No. Component Description 1 All-in-one hardware server · Ubuntu 12.04.4 will be installed. · OpenStack Havana will be installed and configured. · User account will be set up for students to be able to log in to the OpenStack server. · Allocation of resources for each student such as RAM and CPU utilization will be limited so that students won’t be able to exceed the allocated resources. 3.2.6.3. Network side As for the network side of the system, only one device is required as shown in table 3.4 Table 3.4: Networking devices No. Component Description 1 Switch · Interconnect computers / laptops, and all-in- one OpenStack server into the UniKL network. · Using default Vlan configuration that allows the server to be used throughout UniKL MIIT.
  • 42. 25 3.2.7. Testing The testing will be done by creating five instances (virtual machine) and each instance is running GNS3 with three virtual routers using basic Enhance Interior Gateway Routing Protocol (EIGRP). The maximum number of instances for the testing purpose will only be restricted to seven executed at once because the current server specification does not have the capacity in term of CPU cores and RAM. 3.2.8. Analysis For this stage, all aspects of the cloud computing system will be closely monitored to collect data using NMS software such as PRTG to record all activities inside the server using specific sensors such as CPU load, physical memory and traffic. These sensors will have the interval of 60 second to capture all the relevant data inside the server and create a graph for easy viewing. For a real-time monitoring feature, the server can be installed with HTOP software that provide continuous real-time view about the server resources but do not keep any record of it. This analysis can be used by administrator to further improve the cloud computing server by reducing resource allocation for students, or to upgrade the server so it will be able to support more users.
  • 43. 26 3.3. Work Breakdown Structure (WBS) WBS is the foundation of the project as it provides the necessary step- by-step for the administrator to develop the system according to plans. The idea of WBS is to take the overall large complex project and break it down to a smaller part to make it easy for the developer to manage each part accordingly. A well-organized and detailed WBS can be the effective tools because the allocation of resources, project budgeting, and scheduling are all divided into smaller part making it easier to follow. Figure 3.3: Work Breakdown Structure diagram Cloud Computing for UniKL BNS Students Initiation Information Gathering Investigation at UniKL lab Research Research about available cloud computing tools Comparison between cloud computing tools Determine hardware and software Study about OpenStack Planning Planning rough ideas Sketch the relation between each component Creating a table to determine the function & relation of the component Design Create network diagram Link all the components Divide devices into three section Explaining each component function Development Understandin g the concept of OpenStack architecture Setup OpenStack using UniKL network configuration Creating basic image with Windows 7 pre-installed with software Connecting the server to the UniKL network Implement Testing server connectivity Configure user accounts Configure client-side Testing Test the cloud computing server by executing seven instance at once Load a simple EIGRP GNS3 topology Load HeavyLoad software Analysis Collect information using PRTG NMS Analyze the recorded information
  • 44. 27 3.4. Gantt Chart The Gantt chart is used to show the duration or time taken for this project to accomplish. The time taken to complete this project is approximately two semesters or 170 days as can be seen in the Gantt chart. It is also shown everyphase taken from the beginning until the end of the project. (Refer to Appendix A for Gantt chart) 3.5. Project Resources Cloud computing system mainly consists of two important component which is software and hardware required for the system to run. Each of components of this project will be further discussed in this chapter. 3.5.1. Hardware Technically for a cloud computing server to support all the BNS students in the UniKL, it will be required a powerful server with a lot of processing power, memory modules and large storages. For this project, the scope is to only provide at least five instances at a time because the limited processing power and storage using the available server. Table 3.5 below shows the specification of the both of the server and client.
  • 45. 28 Table 3.5: Detail information on each hardware. No Hardware Specification 1 Server All-in-one hardware server Processor · AMD FX(tm)-6300 Six-Core 3.5GHz 8MB L3 Cache RAM · 12 GB DDR3 SDRAM OS · Ubuntu Server 64 12.04.4 Hard Disk · 3.5-inch SATA 300GB Interface · 1 x TP-Link Gigabit PCI Express Card · 1 x Gigabit Ethernet Power Supply · 650 watts Corsair high performance power supply 2 Client Dell OptiPlex GX620 Processor · Intel Pentium D 2.66 GHz RAM · 512 GB DDR1 SDRAM OS · Windows XP Professional SP2 Hard Disk · 80GB HDD Interface · 1 x LAN (Gigabit Ethernet) Graphic · Integrated Intel Graphics Media Accelerator 950 Dynamic Video Memory Technology 3.0 Power Supply · 305.0 Watt
  • 46. 29 3 Client Acer Aspire 4710G Processor · Intel Core 2 Duo 1.66GHz RAM · 4 GB DDR2 SDRAM OS · Windows 7 Professional SP1 Hard Disk · 160GB HDD Interface · 1 x LAN (Gigabit Ethernet) Graphic · Dedicated ATi Radeon HD2300 Power Supply · 44.4 W 4000 mAh 6-cell Li-ion battery pack · 3-pin 65 W AC adapter 4 Switch Cisco Catalyst 2950 Switch Interface · Fast Ethernet Ports · 24 x 10/100 Features · Full duplex capability · VLAN support · Auto-sensing per device · Auto-negotiation · Manageable Memory · RAM 16MB · Flash Memory 8MB Power · AC 120/230 V ( 50/60 Hz ) 30Watt
  • 47. 30 3.5.2. Software The major software component in the cloud computing system is the OpenStack itself that act as the cloud management controller that manage all the activity in the server. On the client side, students just have to install VNC Viewer software. Table 3.6: Indicate the software requirement in each component No Software Description 1 Operating System Server: Ubuntu Server 64 12.04.4 Client: Any operating system supported 2 Server Software OpenStack Havana Software Inside the virtual machine · Microsoft Windows 7 Starter · Packet Tracer V6.0.1 · GNS3 v0.8.6 all-in-one · RealVNC Server 3 Client Software RealVNC Viewer
  • 48. 31 3.6. Project Costing and Budget Table 3.7 and 3.8 indicates the estimated costing involve in this project. For hardware, total of RM 5422 is required while for software is RM 366 is needed to complete this project. 3.6.1. Cost for Hardware Table 3.7: Hardware costing No Item Quantity Price (RM) 1 All-in-one hardware server 1 1,500 2 Cisco Catalyst 2950 Switch 1 2,572 3 Dell OptiPlex GX620 1 600 4 Acer Aspire 4710G 1 750 Total (RM) 5422 3.6.2. Cost for Software Table 3.8: Software costing No Item Quantity Price (RM) 1 Ubuntu Server 12.04.4 1 Open Source 2 OpenStack Havana 1 Open Source 3 Windows 7 Starter 1 269 4 RealVNC Server + Viewer 1 97 5 GNS3 V0.8.6 1 Open Source 6 Packet Tracer V6.0.1 1 Free from Cisco 7 HeavyLoad 1 Freeware Total (RM) 366
  • 49. 32 CHAPTER IV: DEVELOPMENT/PROTOTYPE 4.1. Introduction This chapter explains about the development of the cloud computing server and the guide of setting up the user instances operating system or basic image to be used by the user when they first using the cloud computing service. 4.2. Cloud Computing Server This is where all the components needed for the OpenStack server to run are installed and configured with the local IP address which is 10.6.2.230. Figure 4.1: Network diagram of the OpenStack implementation Figure 4.1 shows the server design that using All-in-one: dedicated hardware setup which mean all of the components needed for the OpenStack to run is installed on one physical machine. This method is not recommended
  • 50. 33 because it will take up most of the server resources, approximately 2GB worth of RAM, which can be assigned to instances unless the server has a huge amount of RAM. Using this method, the current server specification can spawn up to six Windows 7 instance with 1GB of RAM, 1VCPU and 20GB of disk space. 4.3. Development Process The development process is where all the component required for the system to run is installed and configured. 4.3.1. Installation requirement To successfully install OpenStack without any problem, the administrator must have fast or stable internet connection, static IP address for the server and range of available IP addresses to be used by instances later on. Another important requirement is that the server must have at least one 1Gbps network interface card to handle all incoming and outgoing traffic. The server must also be configured with SSH service and github to download the OpenStack components. 4.3.2. Preparing all-in-one: dedicated hardware server 1. Install Ubuntu Server version 12.04.4 with SSH service enabled to remote the server from another terminal. Configure the server with static IP address for this project is 10.6.2.230, and then a user named stack is created and after the setup is complete, any available updates is installed and the server is restarted.
  • 51. 34 2. The server then connected using another computer running Linux or for Windows user can use Putty and invoke the following command at the terminal. 3. Grant the user stack with sudo privileges because the user will make many changes to the system. The following command is invoked at the terminal: 4. Using git to download the latest OpenStack Havana scripted installation method into the server: Figure 4.2 shows the content of the devstack folder after being downloaded using git. Figure 4.2: All the necessary files retrieved using git adduser stack echo "stack ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers sudo apt-get install git git clone https://github.com/openstack-dev/devstack.git cd devstack Ssh stack@10.6.2.230 # sudo apt-get update # sudo apt-get upgrade # sudo restart
  • 52. 35 5. After the scripted files are downloaded, navigate to devstack folder and a new files named local.conf is created with the following configuration so that the installation will use the preset value defined in the file. The local.conf is created using command: In figure 4.3, it shows the value that has been filed in the local.conf file. Figure 4.3: Modify the local.conf with the following configuration · FLOATING_RANGE is set to a range not being used on the UniKL MIIT network, i.e. 10.6.2.240/28. · FIXED_RANGE and FIXED_NETWORK_SIZE sets with 192.168.1.0/24 to configure the internal IP address. · FLAT_INTERFACE is set to the Ethernet interface that currently in use and set with static IP address. · ADMIN_PASSWORD is set with admin. This password is used for the admin and demo accounts set up as OpenStack users. · MYSQL_PASSWORD administrative password is set with admin123. · SERVICE_PASSWORD is set with admin123. This is used by the OpenStack services (Nova, Glance, etc.) to authenticate with Keystone. # nano local.conf
  • 53. 36 6. The following command ./stack.sh is invoked to start the scripted installation as shown in figure 4.4. The remaining prompted password are also filled with admin123. Figure 4.4: Installation process is started 7. The installation will take about 20 minutes (depend on internet connection) as it will automatically download all the needed components and dependencies for the OpenStack to successfully run. Figure 4.5 shows the main component of OpenStack which is nova are being downloaded. Figure 4.5: Example of the scripted installation process
  • 54. 37 8. After the installation is completed, the following result is obtained and can began to logon to the OpenStack interface using a web browser at 10.6.2.230 as shown in figure 4.6 and 4.7. Figure 4.6: Summary of ./stack.sh Figure 4.7: OpenStack login page at 10.6.2.230
  • 55. 38 4.3.3. Creating basic virtual machine image In this part, administrator needs to have two important components which are, windows 7 ISO as installer medium and libvirt driver that can be obtained at http://libvirt.org/drivers.html to be used for network interface card driver after the windows 7 is installed so that it can have network connectivity. 1. Verify that libvirt default network is running is crucial because it will allow the virtual machine to have an internet connection. If the network is not active, invoke the following command to activate it. 2. Using the following script, the virtual machine is created according to the defined configuration: The KVM hypervisor starts the virtual machine with the libvirt name windows7basic and with 1GB of RAM. The virtual machine has a virtual CD-ROM drive associated with the /IMG/windows.7.AIO.iso and a local of 15GB hard disk in qcow2 format that is stored in the server at /IMG/windows7basic.qcow2. The networking is configured to use libvirt's default network. # virsh net-list Name State Autostart ----------------------------------------- default active yes # virsh net-start default # qemu-img create -f qcow2 /IMG/windows7basic.qcow2 15G # virt-install --virt-type kvm --name windows7basic - -ram 1024 --cdrom=/IMG/windows.7.AIO.iso --disk path=/IMG/windows7basic.qcow2,size=15,format=qcow2 --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole --os-type=windows --os-variant=win7
  • 56. 39 3. Because this not an unattended installer, admin have to manually proceed and monitor the installation progress and to do that, it need to be viewed using VNC. Invoke the following command to get the VNC port number: The virtual machine windows7basic uses VNC display :1, which corresponds to TCP port 5901. The command is invoked in terminal to connect to the virtual machine: 4. The installation process is continued by providing the necessary information as shown in figure 4.8. Figure 4.8: Fill in information during installation process # virsh vncdisplay windows7basic :1 # ssh -f -L 5901:localhost:5901 stack@10.6.2.230 -N - p 22 # vinagre 0.0.0.0:5901
  • 57. 40 5. After the setup is complete, the virtual machine is shut down and the script in step two is edited in the line: The virtual machine is started again with new virtual CD- ROM that contain all the necessary drivers for the windows7basic to use. 6. Missing driver such as network interface is installed so that it can have connectivity. In figure 4.9, it shows that the Ethernet adapter is successfully installed. Figure 4.9: Red Hat VirtIO is the default adapter to provide connection --cdrom=/IMG/virtio-win-0.1-74.iso .iso
  • 58. 41 7. All needed applications such as GNS3, Packet tracer, Chrome browser, VNC Server is installed. Figure 4.10: Installation of GNS3 Figure 4.10 shows GNS3 is being installed in the virtual machine so that every instance created by OpenStack will have the GNS3. 8. The virtual machine is shut down and the newly created windows7basic.qcow2 is copied as a master copy to be stored as backup.
  • 59. 42 4.3.4. Importing image to the OpenStack Glance OpenStack Glance is where all the image uploaded by the administrator or users are stored, when the user requested to use the image it will convert it into instance which are virtual machine handled by OpenStack Nova. 4.3.4.1. Logon to OpenStack Figure 4.11 shows the logon screen and can be login using username and password both are admin. Figure 4.11: Login using username admin and password both admin
  • 60. 43 4.3.4.2. Navigate to image tab Navigate to the image tab in the left side of OpenStack website and admin will see option to create a new image for users. Figure 4.12: Create an image pop-up filled with necessary information In Figure 12, each field is filled with the information correspond to the image type that had been created earlier.
  • 61. 44 4.3.4.3. Launching an instance After the process of creating the image is completed, it is time to launch the image in order to test it. Select the created image and launch it using launch button at the right side and provide the necessary information such as number of VCPU, amount of RAM and disk size as can be seen in figure 4.13. After the instance is launched, click on the more button and associated floating IP address so that clients can connect to that instance. Figure 4.13: Show the example on how to create an instance
  • 62. 45 Figure 4.14: Summary of the created instance Figure 4.11 shows the summary of the created instance with the private IP 192.168.1.2 and public IP address 10.6.2.241 are assigned to it. It is also shown the state of the instance and how long it has been created. 4.3.5. Connecting to the instance Connecting to the instance is a straightforward task and it only needs RealVNC Viewer installed on the user’s computer. 4.3.5.1. VNC Viewer Install VNC Viewer on any computer that user wants to use to connect to the instance. The VNC Viewer supports many platforms and easy to use. Figure 4.15: Enter the VNC Server IP address Figure 4.15 shows the VNC Viewer interface, change the VNC Server field with the corresponding instance public IP address, which in this case is 10.6.2.241
  • 63. 46 4.4. Monitoring Performance 4.4.1. Network Management Software (NMS) To closely monitor the server performance, such as CPU utilization, RAM usage, and network bandwidth utilization, PRTG Network Monitor has been chosen in this project because it is easy to use, it can automatically discover device in the network, and use less resources to run. Figure 4.16 shows the simple PRTG interface. Figure 4.16: PRTG interface To actively monitor device in the network, PRTG use sensors. The sensor is the basic monitoring elements that fetch corresponding information such as CPU load, bandwidth, RAM usage and many more.
  • 64. 47 4.4.2. Install SNMPD service on OpenStack server Because the PRTG probe cannot be installed in a Linux operating system, administrators can still use SNMP (Simple Network Management Protocol) agent service such as SNMPD to allow the PRTG to remotely monitor the server performance. Below are the step taken in order to install SNMPD agent service. 1. The following command is invoked at server terminal: 2. SNMPD is configured by editing the configuration files at /etc/snmp/snmpd.conf: 3. After that, the /etc/default/snmpd file is edited with the following configuration: 4. SNMPD service is restarted to allow the new setting to take place. # apt-get update && apt-get install snmpd # sudo vim /etc/snmp/snmpd.conf rocommunity public syslocation UniKL MIIT syscontact arepizz_90@yahoo.com # sudo vim /etc/default/snmpd Disable the following line #SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -g snmp -I -smux -p /var/run/snmpd.pid' Create new line SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -I -smux -p /var/run/snmpd.pid -c /etc/snmp/snmpd.conf' # sudo /etc/init.d/snmpd restart * Restarting network management services
  • 65. 48 4.4.3. Configure PRTG to monitor OpenStack server 1. The PRTG is started and navigated to the main interface and navigate to the device > add device as shown in the figure 4.17. Figure 4.17: First step to add new devices to PRTG 2. Group for the server is selected and continue to the next step. 3. The required information in each column is entered to ensure that the OpenStack server be able to discover by PRTG NMS as shown in figure 4.18.
  • 66. 49 Figure 4.18: Example of device configuration 4. After that, wait for a while for all the sensors inside the OpenStack be discovered by PRTG. Figure 4.19: Sensors that discovered in OpenStack server Figure 4.19 shows there 61 sensors that are automatically discovered by PRTG.
  • 67. 50 5. The unnecessary sensors that were discovered is removed so that it can be easy to be monitored later on as can be seen in figure 4.20. Figure 4.20: Show the current active sensors The details of the sensors are as follow: a. SNMP CPU Load 1: Monitors all available CPU cores inside the OpenStack server. Total available cores in the server is six. b. Physical Memory: Monitor total usage of RAM inside the server. The server has a total capacity of 12GB RAM. c. SSH Load Average: This sensor show the average use of the server. d. SSH Meminfo 1: This sensor is similar to the Physical memory, the different is that it uses SSH protocol to monitor the server state. e. (003) eth1: Monitor the incoming and outgoing traffic for the current interface. f. Ping 1: Used only to measure the server is alive or not. g. Ping Jitter 1: Used to measure any jitter during the server is up, it had no significant value for this project because the server is connected using VNC protocol which is cannot be measure using this sensor.
  • 68. 51 CHAPTER V: TESTING AND RESULTS 5.1. INTRODUCTION Analysis is the process of interpreting all the data collected during the testing of this project. In this project, the testing will be conducted to test how the server performs when handling many virtual machines (instance) used by users. The instances will use Windows 7 Starter 32-bit because by default it does not include the Windows Aero theme thus use less resources to run, which is suitable for the server specification that only allow 1GB of RAM to the instance. The desktop wallpaper and visual styles are also unedited by users. To test the performance of the server, the server will spawn five instances for the first two methods and then two additional instances are then created to simulate heavy load and to test the capabilities of the server. Each instance, will be loaded with GNS3 running three virtual routers with EIGRP protocol and HeavyLoad software that's designed to put the CPU load to 100%, all activity in the OpenStack server will be recorded with network monitoring system tool during the session.
  • 69. 52 Figure 5.1: Running instances handled by OpenStack Figure 5.1 shows all the currently running instances handled by OpenStack compute system. Each instance is created using medium flavor that contains 1 VCPU, 1GB of RAM and 20GB of total hard disk. 5.2. Testing Method Approach The OpenStack server will be monitored with NMS using sensors that corresponding to the testing requirements. The testing is conducted using three approaches which are: 1. Creating instances 2. Common approach 3. Stressing OpenStack server
  • 70. 53 5.3. Creating Instances Creating instance is the process of creating the virtual machine for user to use. In order to launch an instance, an administrator must first set a flavor. Flavor contains predefined setting for the instances to use such as number of VCPUs, RAM capacity, and total disk space. This is important because it acts as a quota system that will not allow users exceed the allocated resources for them. In figure 5.2, there are seven available image that ready to be used. Windows7-VNC and Windows7Basic are created using the method in chapter four, Ubuntu Server 12.04 and Fedora 20 can be downloaded from their respective website and can be directly added to the OpenStack image list. The cirros images are included in OpenStack installation for testing purpose. Figure 5.2: List of images available in OpenStack server
  • 71. 54 5.3.1. Testing First, users that have been created an account to use OpenStack system logon to the server and navigate to the image section and click on the image they want to launch and use, in this case Windows7-VNC. Figure 5.3: Launch instance pop-up form Figure 5.3 shows that the instance will be used Medium flavor configured with 1 VCPUs, 20GB total disk and 1024MB or 1GB of RAM. It also shows the project limits for that particular user. Detail of each flavor can be viewed in Appendix C.
  • 72. 55 Figure 5.4: Summary of Windows7-VNC image converted to Win7-1 instance After the instance has been successfully spawned, it must be assigned with the floating IP address to make sure that users can access to the created instances using VNC Viewer. By clicking on the button Associate Floating IP shown in figure 5.4, OpenStack will automatically assign any available public IP to the instance. Figure 5.5: VNC Viewer interface In figure 5.5, users have to change the VNC Server IP value address to the corresponding public IP address of the created instance and let the rest setting to default. After that, user can use the instance as if it in their own laptop without noticeable delay depending on the type of connection used.
  • 73. 56 Figure 5.6: Select location in Win7-1 Figure 5.6 shows the set network location pop-up every time the windows are connected to a new network location. In this case, the instance is connected to the internal OpenStack network with the private IP address 192.168.1.3 and public IP address 10.6.2.242. It is advisable to select Home network because it will turn on network discovery for home networks, which allows the instance to see other computers and devices on the network and allows other network users to see the instance.
  • 74. 57 Figure 5.7: Inside the instance Figure 5.7 shows how the instance looks like and the available resource currently assigned to it. The warning that prompted in VNC Server console indicate that the connection is not password protected, thus can be logon by anyone who knows the public IP address of the instance. VNC also allows users to transfer files back and forth between server and client making it convenient for users to retrieve their work without using other software that might take up additional resources.
  • 75. 58 5.3.2. Result The network monitoring system tool is measuring and recording the entire session of the initial creating and using the instance. The result can be viewed in the figure 5.8, 5.9, and figure 5.10 below. Figure 5.8: CPU utilization from 1:20AM to 2:20AM Figure 5.8 shows the CPU utilization when the Win 7- 1 instance is created. The graph has been divided into three based on the utilization pattern. At time frame one, only processor 1 is actively using the server resource because the instance is set with only one VCPU. In time frame two, the server has finished loading the first instance and began to stabilize. At time frame three, all processors were active because this time the server is processing to create additional four instances. 31 2
  • 76. 59 Figure 5.9: Physical memory utilization from 1:20AM to 2:20AM Figure 5.9 shows the RAM usage when creating instances as can be seen in time frame one and three. The process of creating instance took up most of the server RAM and leaving only 1.1% available for other process to use, this is probably happened because OpenStack is still not recognized the server capabilities. After the server is restarted multiple times, the process of creating another instances is not using more resources as the first time it created the instance. Time frame two show after the first instance is finished loading, RAM available is increased again. 1 32
  • 77. 60 Figure 5.10: Bandwidth utilization from 1:20AM to 2:20AM Figure 5.10 shows that during the process of creating the instance in time frame one, there is no activity happening because this stage the operating system is not yet boot up. After it has booted up and inside the windows, the instance then connected using VNC Viewer for the first time and showing the network location selection because it has booted up in a new network location. By selecting a Home network, the instance will execute discovery function to look for other devices in the network that can be seen in time frame two and three where the bandwidth usage is high. 1 2 3
  • 78. 61 5.3.3. Analysis The first time the image is converted into an instance, it will take up most of the server resources in order to boot up the instance with the defined settings. During this process, the server response is very slow and the process can take up to more than 10 minutes. After the first instance is stable, the process of creating another instance of the same image would not take very long and almost instantly because it already has the configuration even though, it still take most of the server resources. In figure 5.8 it shows that all processor core is actively used by OpenStack to create the first instance. Figure 5.9 shows that all RAM is allocated for the process leaving only 1.1% available. In figure 5.10, there is no significant traffic except in time frame three where all the instance are connected simultaneously using VNC Viewer and selecting Home network in the network location selection.
  • 79. 62 5.4. Common Approach Common approach method is using the instances with the available application inside it. For this project, GNS3 is used to measure the server performance by executing three Cisco 3725 series virtual routers with a basic EIGRP configuration. 5.4.1. Testing All five instances are loaded with the GNS3 EIGRP simple topology. Each Cisco 3725 virtual router is loaded with c3725- adventerprisek9_ivs-mz. 124-25b IOS and have two interfaces each. The topology can be viewed in figure 5.11. The router is pre-configured with an idle PC value that are specific for instance with 1GB RAM and 1VCPUs to significantly reduce processor usage when the router are active. If another instance is created using different configuration, idle PC value is needed to be set with new value. Idle PC value is compulsory to be created after adding the IOS image to avoid heavy load to the processor. Figure 5.11: Three Cisco 3725 series virtual routers
  • 80. 63 5.4.2. Result For this testing session, the server is restarted and the OpenStack service is started again. The result can be viewed in figure 5.12, 5.13, and figure 5.14. The sensors time frame is taken from 10:30 PM until 11:35 PM. Figure 5.12: CPU utilization from 10:40PM to 11:35PM Figure 5.12 shows the processor usage when the test is in progress. From time frame two, all processors not showing too much activity except processor 1 when booting up all the instance the second time. Time frame three, this is where all the instance is successfully running the topology inside GNS3. In, time frame one and four, show the instance is being started and shut down after the test finish. 1 2 3 4
  • 81. 64 Figure 5.13: Physical memory utilization from 10:40PM to 11:35PM During the testing, after the second time the instance boot up, RAM usage was just static throughout the testing as can be seen from time frame two. It shows that the instance only uses the allocated RAM that has been configured without using any extra available RAM. Time frame one and three are where the instances is started and shut down after the test. 1 2 3
  • 82. 65 Figure 5.14: Bandwidth utilization from 10:40PM to 11:35PM Figure 5.14 shows only slight activity when starting up the instance at time frame one. Time frame two shows more activity because each instance is connected using VNC Viewer and transferring the topology file for each instance and during GNS3 is executed, there is only slight network activity occurs. Time frame three is also the same when all instances is connected simultaneously and issued the shutdown command. 1 2 3
  • 83. 66 5.4.3. Analysis From the result above, it shows that the GNS3 can successfully execute the EIGRP topology without any problem and the server still have resources to handle more virtual router or complex configuration. Even though the routers has been configured with an idle PC value, it still shows significant activity in the processor usage, but the server performance is still the same and instances responsiveness is only affected by a slight delay in loading when using another application or opening folder inside the instance. For the RAM usage, it can be concluded that after OpenStack is restarted, the service has become more stable to evenly distribute RAM among the created instance as can be viewed in figure 5.13. Unlike when first creating a new instance the RAM usage were just down to 1.1%, even the instance has finished booting up. Network bandwidth usage does not show many activities except when the instance is connected simultaneously and first starting the routers inside GNS3. It also shows some activity when the instance has finished loading and when shutdown the operating system.
  • 84. 67 5.5. Stressing OpenStack Server For this testing, the server will be pushed to the limit by creating the sixth instance, and also each instance will be loaded with HeavyLoad software. The software can put processor cores to full capacity and performs complex calculations to simulate the load on the processor. The result is, each processor inside the instance will be put under heavy loads. 5.5.1. Testing Figure 5.15: Sixth and seventh instance created Figure 5.15 shows the details of the sixth and the seventh instance created using the same configuration as the previous instances. Creation of the sixth and seventh instance only take about five minutes until can be logon using VNC Viewer, even when other instances are currently running the HeavyLoad software.
  • 85. 68 Figure 5.16: Hypervisor summary Hypervisor summary is the OpenStack compute system or server available that currently handling the instances. In figure 5.16, the VCPU usage is red because the server has only six processor core and currently there are seven instances running on the server. It also shows the remaining usage of RAM and remaining disk usage in the OpenStack server. This can be used as indicator about the server capacity.
  • 86. 69 Figure 5.17: HeavyLoad software stressing CPU usage In figure 5.17, it shows that HeavyLoad software is operational and currently stressing the instance by making complex calculation and put it under heavy load as can be seen in windows task manager where the CPU usage is 100%. All instances of the OpenStack server except the seventh instance is running HeavyLoad.
  • 87. 70 5.5.2. Result During the process, the seventh instances will be loading the EIGRP topology and the result is shown in figure 5.18, 5.19, 5.20 and figure 5.21. The sensors timeline is taken from 11:00 PM until 11:45 PM. Figure 5.18: Error occur to start virtual router During the stressing of other instances using HeavyLoad software, the seventh instance will try to execute the simple EIGRP topology, but in figure 5.18 it shows that GNS3 cannot start the virtual routers because an error has occurred. It is also taking longer time to start the virtual routers compared with previous instances.
  • 88. 71 Figure 5.19: CPU utilization from 9:40PM to 10:30PM Time frame one in figure 5.19 shows that all the instance in currently booting up. The time taken each time the instances is booting up is decreased dramatically, it only takes about six to seven minutes compared to previous session. This is probably happening because OpenStack server is adjusting the resources to handle the instances efficiently. In time frame two, almost all the processor is being used by the instances after the HeavyLoad software is initiated. Time frame three show a slight reduction in all processor usage, but it's still quite high. This is also where the seventh instance is created, the creation process only takes few minutes before it can be login using VNC Viewer. Time frame four shows that all processors are being used to 100% load when the seventh instance trying to executing the EIGRP topology but failed to start the virtual routers. Time frame five shows reduction in processor usage because all the instance in being issued shutdown command. 1 2 3 4 5
  • 89. 72 Figure 5.20: Physical memory utilization from 9:40PM to 10:30PM Figure 5.20 in time frame one shows that the first five instances are being booted up and slowly taking the allocated resources. Time frame two shows consistence usage of the first five instances without any changes. Time frame three show the sixth instance are being booted up and fourth time frame shows the seventh instance is booting up and the usage is consistent throughout the testing session. Time frame five shows increments of RAM because all the instance are being issued shutdown command. 1 2 3 4 5
  • 90. 73 Figure 5.21: Bandwidth utilization from 9:40PM to 10:30PM In figure 5.21, time frame one shows the highest usage because all the first five instances are being connected simultaneously. Time frame two shows some activity because it being connected and sending the HeavyLoad software and EIGRP topology file. Time frame three show slight activity because the all the instance are being issued with the shutdown command. 1 2 3
  • 91. 74 5.1.1. Analysis From the result in stressing OpenStack server, it can be concluded that when the server resources is being used 100% by all the instance, it still can create additional instances without any problem. The problem comes when the instance has finished loading into the operating system and running high intensive application in this case is GNS3, it failed to execute the virtual routers. This is probably happen because the server has no available processor resources to be reserved to off start the routers. Others less intensive application has no problem to execute, but it will take some time to load. RAM usage when compared with common approach method, it shows that throughout the session the usage are remain the same without any changes except for when creating the sixth and seventh instance it need to allocated extra 2GB of RAM to the new instance. It shows that after the server is restarted, it has become more stable and able to handle resources efficiently. As for the bandwidth usage, it only shows activity when the user is connected to the instance. Other than that, there is no anything going on to affect on the bandwidth utilization.
  • 92. 75 CHAPTER VI: CONCLUSION AND RECOMMENDATION 6.1. CONCLUSION The primary objective of this project is to create BNS Cloud Application system using OpenStack cloud management system and to test the performance of the server when handling multiple instance. The cloud computing server has been successfully developed using AIO physical machine installed with OpenStack codename Havana which is the latest stable version at the time this project is done. The server is also has been deployed in the UniKL network and can be accessed anywhere in UniKL MIIT using wired and wireless network connection. The server has been tested using three methods in order to test its performances, the test ran successfully and the server is able to execute an extra instance, even though it has a max out its capacity to create only six instances. The server contains multiple images for different purpose such as Windows 7, Ubuntu server and Fedora 20. Windows 7 image is preinstalled with software that is specific to BNS students such as GNS3 and packet tracer that essential for learning purpose in subjects like CCNAs and CCNPs. The Linux operating system such as Ubuntu server and Fedora 20 are suitable for subjects that do programming in Linux so that students does not have to install Linux on their own laptop which can cause a problem if they do not do it correctly. OpenStack also provide tiny Linux, which is Cirros_x86 for testing purpose and can be used by students to learn basic Linux operating. In short, OpenStack cloud management system can fulfill any requirements that the organization wants to use the system for if it is properly configured and is provided with enough compute power to run many instances. Flexibility is where each component of the OpenStack system can be installed separately in different physical machine for optimal and maximum usage of the server performance to support many students.
  • 93. 76 6.2. RECOMMENDATION For further deployment of the server to support many students at a time, the OpenStack server can be setup using multiple compute node from the same processor architecture. This can increase the capacity of the server in term of VCPUs number and RAM capacity to handle many instances operating at a time without compromising the performance of the server. For the windows based images inside the OpenStack server, it can be further configured to use Cloud-Init and the desktop remote connection, so that every time the instance is started using the security feature inside OpenStack, the username and password to log on the instance will be changes according to the specified security option making it more secure and only the authorized students can use the instance he/she has created.
  • 94. 77 REFERENCES EBOOK [1] Michael, Armbrust. , et al. "A View of Cloud Computing." COMMUNICATIONS OF THE ACM. 53.4 (2010): 50-58. Web. [2] Sharma, Maneesha. , et al. "Cloud Computing: Different Approach & Security Challenge." International Journal of Soft Computing and Engineering (IJSCE). 2.1 (2012): 421-424. Web. [3] Murugaboopathi, G., et al. "Study on Cloud Computing and Security Approaches." International Journal of Soft Computing and Engineering (IJSCE) 3.1 (2013): 212-215. Web. [4] Wind, Stefan. "Open Source Cloud Computing Management Platforms." 2011 IEEE Conference on Open Systems (ICOS2011) (2011): 175 - 179. Web. [5] Bhargava, Dr. Neeraj, et al. "Performance Analysis of Cloud Computing for Distributed Client." International Journal of Computer Science and Mobile Computing 2.6 (2013): 97-104. Web. [6] Sempolinski, Peter, et al. "A Comparison and Critique of Eucalyptus, OpenNebula and Nimbus." 2nd IEEE International Conference on Cloud Computing Technology and Science (2010): 417-426. Web. [7] OpenNebula - Flexible Enterprise Cloud Made Simple. N.p., n.d. Web. 26 Dec. 2013. <http://opennebula.org/>. [8] "Types of Cloud Computing: Private, Public and Hybrid Clouds." Appcore - Cloud Business Blog. N.p., n.d. Web. 26 Dec. 2013. <http://blog.appcore.com/blog/bid/167543/Types-of-Cloud-Computing- Private-Public-and-Hybrid-Clouds>. [9] "Private Cloud Computing." Interesting and informative articles. N.p., n.d. Web. 26 Dec. 2013. <http://abhijit.snydle.com/private-cloud- computing.html>. [10] Xiaolong Wen, etc. "Comparison of open-source cloud management platforms: OpenStack and OpenNebula," Fuzzy Systems and Knowledge Discovery (FSKD), 2012 9th International Conference on , vol., no., pp.2457,2461, 29-31 May 2012
  • 95. 78 Electronic References: [1] http://devstack.org/guides/single-machine.html [2] http://docs.openstack.org/image-guide/content/virt-install.html [3] http://docs.openstack.org/image-guide/content/windows-image.html [4] http://www.cloudbase.it/cloud-init-for-windows-instances/ [5] http://andrewpakpahan.blogspot.com/2012/09/how-to-enable-snmp- monitoring-on-ubuntu.html [6] http://docs.openstack.org/grizzly/openstack- compute/install/apt/content/manual-ubuntu-installation.html
  • 96. 79 GLOSSARY 1. CPU a. The central processing unit (CPU) but commonly called as processor. It is the brain of the computer that most of the calculation is made. In term of computing power, CPU is the most important component of a computer system where it can consist more than one CPU for large workstation as server and for personal computing, it usually has one. 2. RAM a. Random access memory (RAM) is a computer memory that is available to be randomly accessed by program and managed by operating system. 3. Linux a. Linux is an open source operating system that is freely distributed and can be installed on almost devices. It use Linux kernel to operate and has many variant that is available to be downloaded. 4. Operating System a. Operating systems (OS) is a software that perform basic tasks such as recognizing input from the keyboard, sending output to the display screen, keeping track of files and directories on the disk, and controlling peripheral devices such as disk drives and printers. 5. NMS a. Network monitoring system (NMS) is a software tools that allow an administrator to supervise the individual components of a network devices within a network remotely. 6. Instance a. An instance is a virtual machine that run and handled by OpenStack Nova framework that uses KVM libvirt.
  • 97. 80 7. OpenStack a. OpenStack is a set of software tools for building and managing cloud computing platforms for public and private clouds. It easy to install, manage and supported by many organization. 8. Libvirt a. Libvirt is collection of software that providing a convenient way for managing virtual machines and other virtualization functionality, such as storage and network interface management. 9. SSH a. SSH stand for secure shell that provide the method to log into another computer over a network, to execute commands in a remote machine, and to move files from one machine to another. It is also provides strong authentication and secure communications over insecure channels. 10. VNC a. Virtual Network Computing (VNC) is a graphical desktop sharing system that uses the Remote Frame Buffer protocol (RFB) to remotely control another computer. It transmits the keyboard and mouse activity from one computer to another, relaying the graphical screen updates back in the other direction, over the network.
  • 99. 82
  • 100. 83
  • 101. 84
  • 102. 85
  • 103. 86 APPENDIX B: UBUNTU SERVER 14.04.4 INSTALLATION
  • 104. 87 Figure 1: Ubuntu Server installation menu Figure 2: Language selection
  • 105. 88 Figure 3: Location selection Figure 4: Manually configure network with static IP
  • 106. 89 Figure 5: Set static IP address for the server Figure 6: Configure gateway for the network Figure 7: Configure DNS server
  • 107. 90 Figure 8: Set hostname for the server Figure 9: Set Full of the server Figure 10: Set user account for the server
  • 108. 91 Figure 11: Set user password Figure 12: Set time zone location Figure 13: Partitioning disks
  • 109. 92 Figure 14: Write changes to disk Figure 15: Automatic updates option Figure 16: Software selection to be installed
  • 110. 93 Figure 17: Grub loader for Ubuntu Server Figure 18: Installation is finished Figure 19: Ubuntu Server is operational
  • 111. 94 APPENDIX C: OPENSTACK SYSTEM OVERVIEW
  • 112. 95 Figure 20: Admin view on overviews of usage summary Figure 21: Hypervisors of available OpenStack server
  • 113. 96 Figure 22: Host aggregates and availability zones Figure 23: Admin can view all instances launched by users
  • 114. 97 Figure 24: Admin can view all volume created by users Figure 25: Admin can set flavor for users to use
  • 115. 98 Figure 26: System info on services available Figure 27: System info on compute service available
  • 116. 99 Figure 28: System info on quotas set for users Figure 29: Projects available to be assigned for new user
  • 117. 100 Figure 30: User accounts available on the server Figure 31: User views on overview page
  • 118. 101 Figure 32: List of instances launched by user Figure 33: Volumes and snapshots page for user to create additional storage on instances
  • 119. 102 Figure 34: List of images available for users Figure 35: Security group on access and security option for users Figure 36: Key Pairs for Linux based instances
  • 120. 103 Figure 37: Floating IPs to be assigned for instances Figure 38: API access option
  • 121. 104 APPENDIX D: ACADEMIC RESEARCH PAPER
  • 122. 105 APPENDIX D: ACADEMIC WRITING Academic Writing (Final Year Project) Mohammad Hafiz Bin Zubair, Madam Roziyani Binti Rawi BNS Cloud Computing System Bachelor in Networking System University Kuala Lumpur, Malaysian Institute of Information Technology Jalan Sultan Ismail Kuala Lumpur, Malaysia. arepizz_90@yahoo.com Abstract - This study is to focus on how the cloud computing works and implements it on real world situation where the system can be accessed throughout the UniKL City Campus MIIT and can be used by students to do their works or assignments using the system. The methodology used in this project is Rapid Application Development (RAD) model because it provide continuous development and documentation to be reviewed about the performance of the systems. This methodology consist of eight phases which are initiation, research, planning, design, develop, testing, implement and analysis. A work breakdown structure (WBS) is created to further define the total scope of this project which step by step approach of what need to be done in each phase until the project is completed. This project is developed using OpenStack cloud management software on a single all-in-one hardware server that capable to create five to six instance. This project is tested in a controlled environment where each of the instances are loaded with GNS3 and HeavyLoad software to simulate the real work load on CPU utilization, RAM usage and network load. During the session it was also being monitored using network monitoring system tool to capture the server state. Even though the server is being push to the limits, it can still create additional instance using available resources but the created instance will facing some problem when loading high compute application such as GNS3 where it failed to start the virtual routers. INTRODUCTION BNS Cloud Application system is developed to help students to do their assignment which require high computing applications such as GNS3 to accomplish. To achieve this, the server is developed using OpenStack cloud management technology which offer private cloud feature such as Infrastructure as a Service (IaaS) platform. This platform has allowed me to create a virtual machine that pre-installed with the software needed for BNS students that can be accessed over the network without burden their own laptop with all the computational work load. PROBLEM STATEMENT Many new applications today were designed for high end computer were it require fast processor with multiple cores and certain amount of RAM such as GNS3 where it’s stated in their forum, it require at least 2GB of RAM just to run three or more virtual routers efficiently. Also, it is very costly to change or replace obsolete hardware in the UniKL Lab just to run this applications. By investing on a single or more server node at less cost, this application can run virtually and can be accessed anywhere inside UniKL MIIT campus network. OBJECTIVE The objective of this project is as follows:
  • 123. 106 1. To study and understand how to configure, set up and to apply the OpenStack system into the existing UniKL network. 2. To develop BNS Cloud Server system using Linux Ubuntu. 3. To analyse the performance of the BNS Cloud Server System among the control group of BNS students. LIMITATION There are several limitations of this project that cannot be avoided. 1. The server specification will only be able to support five users at a time for optimal usage. 2. The performance of the server will be affected as for the number of the users connected to the server are increasing. 3. Quota will be allocated for each BNS student’s account so that they can store their work as long as not exceed the quota allocated for them. 4. The server can only be able to access internally by BNS students, which means this is a private cloud. LITERATURE REVIEW Cloud computing is divided into three main platform that were widely supported in most cloud computing provider. The three platforms are: (http://www.cloudave.com, 2013) Three cloud computing infrastructure In this FYP project, only one category will be covered which is Infrastructure as a Service to be provided to BNS students as a learning platform. IaaS is the collection of software and hardware which is servers, storage, networks and operating system to be utilized by the consumer[2] , all the resources that available in the cloud can be used by the consumer without buying all those expensive equipment’s on their own[3] . This project is also using private cloud computing model that dedicated only to a particular organization that hosted the cloud server in their own building in this case is UniKL MIIT campus[8] . Table: Overview of all journal used in this project RESEARCH METHODOLOGY Rapid Application Development (RAD) adopted from Dan Gielan in the mid-1970s, is used in this project because it provide continuous development of the system and documentation to be reviewed about the performance of the systems. The documentation then can be used by others to improve this project. Figure below show the step-by-step or cycle of the RAD model. Title Author Previous Project Current Project A View of Cloud Computing Michael Armbrust Potential of the Cloud Computing Implementing the potential of the cloud computing to UniKL campus. Performance Analysis of Cloud Computing for Distributed Client Dr. Neeraj Bhargava Using simulation tools to simulate and measure performance and load-balancing of the cloud server. Using the real cloud system to measure performance and utilization of the cloud server. A Comparison and Critique of Eucalyptus, OpenNebula and Nimbus Peter Sempolinski Different type of Cloud Computing architecture Suitable architecture for UniKL network. Open Source Cloud Computing Management Platforms Stefan Wind Cloud Computing management tools Comparison of different cloud management tools Cloud Computing: Different Approach & Security Challenge Maneesha Sharma Security challenges for each cloud type. Provide authentication for students when to access the cloud computing system. Comparison of Open-Source Cloud Management Platforms: Xiaolong Wen Comparison and feature between OpenStack and OpenNebula Using OpenStack because easy to set up and suitable for small network.