Cloud Computing Report

30
A REPORT ON CLOUD COMPUTING BY SHARVARI BARVE 2010A7PS189G Prepared in Partial Fulfilment of the Practice School-1

description

Cloud Computing Report

Transcript of Cloud Computing Report

Page 1: Cloud Computing Report

A REPORT

ON

CLOUD COMPUTING

BY

SHARVARI BARVE

2010A7PS189G

Prepared in Partial Fulfilment of the

Practice School-1

Page 2: Cloud Computing Report

Station: Bhaskaracharya Institute of Space

Applications and Geo-Informatics

Duration:

From: 21st May 2012 To: 13th July 2012

Date of Submission: 15th June 2012

Title of Project: Setup of an Academic Cloud

for BISAG using Open Source Tools

Name: Sharvari Barve

ID: 2010A7PS18G

DISCIPLINE: B.E(Hons) Computer Science

PS FACULTY: Mitaxi Mehta

PROJECT GUIDE: Miren sir

Page 3: Cloud Computing Report

ACKNOWLEDGEMENT

At the outset , I would like to thank Bhaskaracharya

Institute of Space and Geo-Informatics and the Practice

School Division, BITS,Pilani for giving me this wonderful

opportunity to get a basic understanding about the technical

and organizational aspect of Industry. I wish to express my

gratitude to T.P Singh, Director, BISAG for letting me work in

this prestigious organization. I would like to thank Miren sir

for mentoring this project.I would also like to thank the

Practise School in charge Viraj Choksi. Finally, I wish to

express my sincere and hearty gratitude to my Practice

School- I instructor, Mitaxi Mehta, for guiding me through

this academic process.

Page 4: Cloud Computing Report

ABSTRACT

The project aims at setting up of an academic cloud for BISAG

using Open Source tools. In an academic setting, choosing to

rely solely on free and open-source infrastructure is the right

option due to cost factor. An academic institution can benefit

significantly from private cloud infrastructure to service its

IT, research, and teaching requirements.

Page 5: Cloud Computing Report

TABLE OF CONTENTS

Acknowledgements…………………………………………………i

Abstract…………………………………………………………………..ii

Table of Contents………………………………………………… iii

1. Introduction

1.1.What is Cloud Computing?

1.2. Cloud computing demystified

2. Cloud Computing

2.1. Block diagram

2.2 Cloud Architecture

2.3 Modes

2.3.1. IaaS

2.3.2.PaaS

2.3.3 SaaS

2.4. Types

2.4.1. Private

2.4.2 Public

2.4.3 Hybrid

2.4.4 Community

2.5 Why a cloud?

Page 6: Cloud Computing Report

3. Virtualization

3.1 Definition

3.2 Comparison

4. Hypervisor

4.1 Definition

4.2 Types of Hypervisor

4.2.1 Bare Metal

4.2.2 Hosted

4.3 KVM hypervisor

4.4 Xen Hypervisor

5.Eucalyptus

6. Ubuntu Enterprise Cloud

6.1 Description

6.2 Components of UEC

Page 7: Cloud Computing Report

INTRODUCTION

What is cloud computing?

The Wikipedia definition:

Cloud computing is Internet (cloud) based development and

use of computer technology (computing), whereby

dynamically scalable and often virtualized resources are

provided as a service over the Internet. Users need not have

knowledge of, expertise in, or control over the technology

infrastructure "in the cloud" that supports them.

It is a technology that uses the internet and central remote

servers to maintain data and applications. Cloud computing

allows consumers and businesses to use applications without

installation and access their personal files at any computer

with internet access. This technology allows for much more

efficient computing by centralizing storage, memory,

processing and bandwidth.

Page 8: Cloud Computing Report

Cloud computing demystified:

A simple example of cloud computing is Yahoo email, Gmail,

or Hotmail etc. One doesn’t need software or a server to use

them. All a consumer would need is just an internet

connection and you can start sending emails. The server and

email management software is all on the cloud (internet) and

is totally managed by the cloud service provider Yahoo,

Google etc. The consumer gets to use the software alone and

enjoy the benefits.

Page 9: Cloud Computing Report

MODES

-PRIVATE

-PUBLIC

-HYBRID

TYPES FEATURES

-IaaS -ELASTICITY

-PaaS -VIRTUALIZATION

-SaaS

Page 10: Cloud Computing Report

CLOUD ARCHITECTURE

Cloud Computing architecture consists of the following

components:

Front end: It comprises the client’s device (or it may be a

computer network) and some applications are needed for

accessing the cloud computing system.

Back end: Back end refers to the cloud itself which may

encompass various computer systems, data storage systems

and servers.

Middleware: A special type of software called Middleware

is used to allow computers that are connected on the network

to communicate with each other.

Redundancy: Devices, like all computers, occasionally

break down. A cloud computing system must make a copy of

all its clients' information and store it on other devices. The

copies enable the central server to access backup machines to

retrieve data that otherwise would be unreachable. Making

copies of data as a backup is called redundancy.

Page 11: Cloud Computing Report

MODES

The concept of cloud computing is linked intimately with

those of IaaS (Infrastructure as a Service); PaaS (Platform as a

Service), SaaS (Software as a Service) and collectively *aaS

(Everything as a Service) all of which imply a service-oriented

architecture

IaaS (Infrastructure as a Service);In this most

basic cloud service model, cloud providers offer computers –

as physical or more often as virtual machines –, raw (block)

storage, firewalls , load balancers, and networks. IaaS

providers supply these resources on demand from their large

pools installed in data centres

PaaS (Platform as a Service): In the PaaS model,

cloud providers deliver a computing platform and/or solution

stack typically including operating system, programming

language execution environment, database, and web server.

Application developers can develop and run their software

solutions on a cloud platform without the cost and

complexity of buying and managing the underlying hardware

and software layers

Page 12: Cloud Computing Report

Software as a service (SaaS): In this model, cloud

providers install and operate application software in the

cloud and cloud users access the software from cloud clients.

The cloud users do not manage the cloud infrastructure and

platform on which the application is running. This eliminates

the need to install and run the application on the cloud user's

own computers simplifying maintenance and support. What

makes a cloud application different from other applications is

its elasticity. This can be achieved by cloning tasks onto

multiple virtual machines at run-time to meet the changing

work demand

Page 13: Cloud Computing Report

TYPES

Private cloud: Private Clouds are typically owned by the

respective enterprise and / or leased. Functionalities are not

directly exposed to the customer, though in some cases

services with cloud enhanced features may be offered – this is

similar to (Cloud) Software as a Service from the customer

point of view.

Example: eBay.

Public Clouds. Enterprises may use cloud functionality

from others, respectively offer their own services to users

outside of the company. Providing the user with the actual

capability to exploit the cloud features for his / her own

purposes also allows other enterprises to outsource their

services to such cloud providers, thus reducing costs and

effort to build up their own infrastructure. As noted in the

context of cloud types, the scope of functionalities thereby

may differ.

Example: Amazon, Google Apps, Windows Azure.

Hybrid Cloud: Though public clouds allow enterprises to

outsource parts of their infrastructure to cloud providers,

they at the same time would lose control over the resources

and the distribution /management of code and data. In some

cases, this is not desired by the respective enterprise.

Hybrid clouds consist of a mixed employment of private and

public cloud infrastructures so as to achieve a maximum of

cost reduction through outsourcing whilst maintaining the

Page 14: Cloud Computing Report

desired degree of control over e.g. sensitive data by employing

local private clouds.

Community Cloud: Typically cloud systems are

restricted to the local infrastructure, i.e. providers of public

clouds offer their own infrastructure to customers. Though

the provider could actually resell the infrastructure of another

provider, clouds do not aggregate infrastructures to build up

larger, cross-boundary structures. In particular smaller SMEs

could profit from community clouds to which different

entities contribute with their respective (smaller)

infrastructure. Community clouds can either aggregate public

clouds or dedicated resource infrastructures.

Page 15: Cloud Computing Report

Why a Cloud?

>It could bring hardware costs down. Cloud computing

systems would reduce the need for advanced hardware on the

client side. You wouldn't need to buy the fastest computer

with the most memory, because the cloud system would take

care of those needs for you. Instead, you could buy an

inexpensive computer terminal. The terminal could include a

monitor, input devices like a keyboard and mouse and just

enough processing power to run the middleware necessary to

connect to the cloud system. You wouldn't need a large hard

drive because you'd store all your information on a remote

computer.

>•Clients would be able to access their applications and

data from anywhere at any time. They could access the cloud

computing system using any computer linked to the Internet.

Data wouldn't be confined to a hard drive on one user's

computer or even a corporation's internal network.

Page 16: Cloud Computing Report

VIRTUALIZATION

Definition:

Virtualization:

The ability to run multiple operating systems on a single

physical system and share the underlying hardware resources.

Description

Simply put, virtualization is an idea whose time has come.

The term virtualization broadly describes the separation of a

resource or request for a service from the underlying physical

delivery of that service. With virtual memory, for example,

computer software gains access to more memory than is

physically installed, via the background swapping of data to

Page 17: Cloud Computing Report

disk storage. Similarly, virtualization techniques can be

applied to other IT infrastructure layers - including networks,

storage, laptop or server hardware, operating systems and

applications. This blend of virtualization technologies - or

virtual infrastructure- provides a layer of abstraction between

computing, storage and networking hardware, and the

applications running on it (see Figure 1). The deployment of

virtual infrastructure is non-disruptive, since the user

experiences are largely unchanged. However, virtual

infrastructure gives administrators the advantage of

managing pooled resources across the enterprise, allowing IT

managers to be more responsive to dynamic organizational

needs and to better leverage infrastructure investments.

Before Virtualization After Virtualization

Single OS image per machine Software and hardware tightly coupled

Hardware-independence of operating systems and applications

Running multiple applications on same machine creates conflict

Virtual machine can be provisioned to any system

Underutilized utilized Can manage OS and application as a single unit by encapsulating them into virtual machines

Page 18: Cloud Computing Report

Hypervisor

Definition:

A hypervisor is also known as a Virtual Machine Manager

(VMM) and its sole purpose is to allow multiple “machines”

to share a single hardware platform

The hypervisor separates the operating system (OS) from the

hardware by taking the responsibility of allowing each

running OS time with the underlying hardware.

Separating hardware and software turns out to be good for

portability as well. Because the hypervisor acts as the go-

between, it is much easier to move from computer to

computer without needing to install new drivers or update

your guest OS.

Page 19: Cloud Computing Report

TYPES OF HYPERVISORS:

BARE METAL (type 1):

Bare metal, is a hypervisor that installs directly onto a

computer. There is no host OS and the hypervisor has direct

access to all hardware and features. The main reasons to

install a type 1 hypervisor is to run multiple operating systems

on the same computer without the overhead of a host OS or

to take advantage of the portability and hardware

abstraction. Bare metal is most often used for servers because

of their security and portability to move from hardware to

hardware in case of a crash. Good examples of type 1

hypervisors are VMware ESXi, Citrix EServer, and Microsoft

Hyper-V.

HOSTED (type 2):

Hosted, is what most people are probably familiar with when

it comes to virtualizing operating systems. Hosted

hypervisors require a host OS and are often treated as

installed software inside the host. Type 2 can still run

multiple operating systems at a time, but it doesn’t have

direct access to the hardware and therefore has more

overhead when running a guest. This means that the guest OS

will not run at its full potential and if your host crashes, you

won’t have access to your guests either. Type 2 hypervisors

are the ideal way to go when you need to test multiple

operating systems within Windows, OS X, or Linux. Good

examples are VMware Workstation, VMware Parallels,

Oracle Virtual box, and Microsoft Virtual.

Page 20: Cloud Computing Report

KVM HYPERVISOR

KVM (for Kernel-based Virtual Machine) is a full

virtualization solution for Linux on x86 hardware containing

virtualization extensions (Intel VT or AMD-V).

KVM (for Kernel-based Virtual Machine) is a fast growing

open source full virtualization solution for Linux on x86

hardware containing virtualization extensions (Intel VT or

AMD-V). It consists of a loadable kernel module that

provides the core virtualization infrastructure and a processor

specific module. Using KVM hypervisor, one can run multiple

virtual machines running unmodified Linux or Windows

images. Each virtual machine has private virtualized

hardware: a network card, disk, graphics adapter, etc. The

kernel component of KVM hypervisor is included in mainline

Linux.

Page 21: Cloud Computing Report

XEN HYPERVISOR

Xen is a type 1 hypervisor that creates logical pools of system

resources so that many virtual machines can share the same

physical resources.

Xen is a hypervisor that runs directly on the system hardware.

Xen inserts a virtualization layer between the system

hardware and the virtual machines, turning the system

hardware into a pool of logical computing resources that Xen

can dynamically allocate to any guest operating system. The

operating systems running in virtual machines interact with

the virtual resources as if they were physical resources.

The following are key concepts of the Xen architecture:

•Full virtualization.

•Xen can run multiple guest OS, each in its on VM.

Page 22: Cloud Computing Report

EUCALYPTUS

Eucalyptus is a software platform for the implementation of

private cloud computing on computer clusters. There is an

open-core enterprise edition and an open-source edition.

With Ubuntu 9.04 Server Edition (April 2009), an enhanced

version of Eucalyptus that uses the KVM hypervisor was

integrated into the distribution. This allowed any user to

deploy a cloud that matches the same API that AWS

provides. This system is Ubuntu Enterprise Cloud (UEC). In

conjunction with the release of UEC, we also created official

Ubuntu images that would work both on AWS (a Xen based

hypervisor system) and a UEC cloud (a KVM based

hypervisor system)

Page 23: Cloud Computing Report

UBUNTU ENTERPRISE CLOUD

(UEC)

In keeping with its open source history, Ubuntu Enterprise

Cloud is integrated with the open source Eucalyptus private

cloud platform, making it possible to create a private cloud

with much less configuration than installing Linux first, then

Eucalyptus.

Private clouds offer immediacy and elasticity in your own IT

infrastructure. Using Ubuntu Enterprise Cloud, you can

experience the benefits of cloud computing behind your

firewall. Deploy workloads and have them running

immediately. Grow or shrink computing capacity to meet the

needs of your application.

It is the virtual image that is deployed into the cloud

computing environment, and it is the virtual image that is

managed by EUC. Inside the image your application(s) is

running, and when the compute resources assigned to that

image – not the application, but the image – are in danger of

being completely consumed UEC (or appropriate cloud

computing management framework in public

implementations) will automatically start another virtual

image containing your application, assuming there are

available compute resources in the “cloud cluster”. Image runs

one (or more, though usually one) application. End users

interface with the applications and cloud computing users

interface with all the nuts and bolts. It is the management of

those nuts and bolts that Ubuntu makes look so easy with

Page 24: Cloud Computing Report

Ubuntu Enterprise Cloud (UEC). Mouse click easy, in fact,

based on the detailed instructions offered on Ubuntu’s site.

So now you’ve got a “cloud” deployed, what do you do with

it?

A few definitions:

MI (Machine Images): A file containing a predefined

virtual machine to use as the base of an instance on UEC.

Minst (Machine Instance): A running instance of a

virtual machine defined by an MI

API (Application Programming Interface): A set

of functions that a programme or person can use to send

request and receive results from another programme.

Page 25: Cloud Computing Report

Components of UEC:

Cloud Controller

The Cloud Controller (CLC) is the most visible element of

the Eucalyptus architecture, as it is providing the interface

with which users of the cloud interact. The CLC talks with

the Cluster Controllers (CC) and makes the top level choices

for allocating new instances. This element holds all

information linking users to running instances, the collection

of available machines to be run, as well as view of the load of

the entire system.

Walrus Storage Controller

The Walrus Storage Controller (WS3) implements a REST

(Representational State Transfer) and a SOAP (Simple Object

Page 26: Cloud Computing Report

Access Protocol) API which are compatible with Amazon

Simple Storage Protocol (S3). It is used for:

• Storing the the machine images (MI) that can be

instantiated on our cloud;

• Accessing and storing data (either from a running instance

or from anywhere on the web).WS3 should be considered as a

file level storage system. While it does not provide the ability

to lock a file or portion of a file, users are guaranteed that a

consistent copy of the file will be saved if there are concurrent

writes to the same file. If a write to a file is encountered while

there is a previous write in progress, the previous write is

invalidated.

Elastic Block Storage Controller:

The Elastic Block Storage Controller (EBS) runs on the same

machine(s) as the Cluster Controller and is configured

automatically when the Cluster Controller is installed. It

allows creating persistent block devices that can be mounted

on running machines in order to gain access to virtual hard

drive. Storage volumes behave like raw, unformatted block

devices, with user supplied device names and a block device

interface. You can create a file system on top of EBS volumes,

or use them in any other way you would use a block device.

EBS also provides the ability to create point-in-time

snapshots of volumes, which are stored on WS3. These

snapshots can be used as the starting point for new EBS

volumes and protect data for long-term durability. The same

Page 27: Cloud Computing Report

snapshot can be used to instantiate as many volumes as you

wish.

Cluster Controller:

The Cluster Controller (CC) operates as the go between the

Node Controller and the Cloud Controller. As such, it needs

to have access to both the Node Controller and Cloud

Controller networks. It will receive requests to allocate MI

(machine images) from the Cloud Controller and in turn

decides which Node Controller will run the Minst (machine

instance). This decision is based upon status reports which

the Cluster Controller receives from each of the Node

Controllers. It can also answer requests from the Cloud

Controller asking for its left over capacity to run specific

instance types, hence allowing the Cloud Controller to decide

on which cluster to run new instances.

Node Controller:

The Node Controllers' (NC) software runs on the physical

machines on which the MI will be instantiated. The NC

software role is to interact with the OS and hypervisor

running on the node, as instructed by the Cluster Controller.

The Node Controller's first task is to discover the

environment on which it runs in term of available resources

(disk space, type and number of cores, memory), as well as

running VMs that could be started independently of the NC,

CC, and CLC.

The Node Controller will then wait for and perform any

requested tasks from the Cluster Controller (start and stop

Page 28: Cloud Computing Report

instances) or replies to availability queries. When requested

to start a MI, it will:-

1. Verify the authenticity of the user request;

2. Download the image from WS3 (images are cached so that

starting multiple instances

of the same machine image only downloads that image once);

3. Create the requested virtual network interface;

4. Start the instance of the machine image running as a virtual

machine (VM).

Page 29: Cloud Computing Report

CONCLUSION

The solution for private cloud for academic institutions, will

allow administrators and researchers to deploy an

infrastructure where users can spawn multiple instances of

VMs and control them using a web-based interface.

To summarize, I have finished research on the above topics

and installed the Ubuntu Enterprise Cloud (UEC).

Page 30: Cloud Computing Report

REFERENCES

http://en.wikipedia.org/wiki/Eucalyptus_(computing)

http://computer.howstuffworks.com/cloud-

computing/cloud-computing.htm

http://en.wikipedia.org/wiki/Hypervisor

http://www.vservercenter.com/kvm-hypervisor

http://en.wikipedia.org/wiki/Virtualization