CLOUD COMPUTING
OPENSTACK:
PROF. SOUMYA K. GHOSH
DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING
IIT KHARAGPUR
What is OpenStack?
OpenStack is a cloud operating system that controls large pools of compute,
storage, and networking resources throughout a datacenter, all managed
through a dashboard that gives administrators control while empowering their
users to provision resources through a web interface.
Source: OpenStack, [Link]
2
Job Trend for Openstack
Source: [Link] Accessed on:July-2017
3
OpenStack Capability
▪ Software as Service (SaaS)
▪ Browser or Thin Client access
▪ Platform as Service (PaaS)
▪ On top of IaaS e.g. Cloud Foundry
▪ Infrastructure as Service (IaaS)
▪ Provision Compute, Network, Storage
4
OpenStack Capability
▪ Virtual Machine (VMs) on demand
▪ Provisioning
▪ Snapshotting
▪ Network
▪ Storage for VMs and arbitrary files
▪ Multi-tenancy
▪ Quotas for different project, users
▪ User can be associated with multiple projects
5
OpenStack History
*Started as a collaboration between NASA and Rackspace
6
OpenStack Major Components
▪ Service - Compute
▪ Project - Nova
Manages the lifecycle of compute instances in an OpenStack
environment. Responsibilities include spawning, scheduling and
decommissioning of virtual machines on demand.
7
OpenStack Major Components
▪ Service - Networking
▪ Project - Neutron
• Enables Network-Connectivity-as-a-Service for other OpenStack
services, such as OpenStack Compute.
• Provides an API for users to define networks and the attachments
into them.
• Has a pluggable architecture that supports many popular networking
vendors and technologies.
8
OpenStack Major Components
▪ Service - Object storage
▪ Project - Swift
• Stores and retrieves arbitrary unstructured data objects via a RESTFul, HTTP
based API.
• It is highly fault tolerant with its data replication and scale-out architecture. Its
implementation is not like a file server with mountable directories.
• In this case, it writes objects and files to multiple drives, ensuring the data is
replicated across a server cluster.
9
OpenStack Major Components
▪ Service- Block storage
▪ Project- Cinder
• Provides persistent block storage to running instances.
• Its pluggable driver architecture facilitates the creation and management of
block storage devices.
10
OpenStack Major Components
▪ Service - Identity
▪ Project - Keystone
• Provides an authentication and authorization service for other
OpenStack services.
• Provides a catalog of endpoints for all OpenStack services.
11
OpenStack Major Components
▪ Service - Image service
▪ Project - Glance
• Stores and retrieves virtual machine disk images.
• OpenStack Compute makes use of this during instance provisioning.
12
OpenStack Major Components
▪ Service - Telemetry
▪ Project - Ceilometer
• Monitors and meters the OpenStack cloud for billing, benchmarking,
scalability, and statistical purposes.
13
OpenStack Major Components
▪ Service - Dashboard
▪ Project - Horizon
• Provides a web-based self-service portal to interact with underlying
OpenStack services, such as launching an instance, assigning IP
addresses and configuring access controls.
14
Architecture of Openstack
15
Openstack Work Flow 1. User logs in to UI Specifies 2. Horizon sends HTTP
4. Keystone sends temporary token back to VM params: name,flavor,keys,etc. request to Keystone. Auth
Horizon via HTTP. Horizon sends POST and hits "Create" button info is specified in HTTP
request to Nova API(signed with given headers.
token).
3. Keystone sends
temporary token back to
Horizon via HTTP.
5. Nova API sends HTTP
request to validate
API token to Keystone.
16
Auth Token Usage
17
Provisioning Flow
▪ Nova API makes [Link] to Scheduler. It publishes a short message to scheduler queue with VM
info.
▪ Scheduler picks up the message from MQ.
▪ Scheduler fetches information about the whole cluster from database, filters, selects compute node
and updates DB with its ID
▪ Scheduler publishes message to the compute queue (based on host ID) to trigger VM provisioning
▪ Nova Compute gets message from MQ
▪ Nova Compute makes [Link] to Nova Conductor for information on VM from DB
▪ Nova Compute makes a call to Neutron API to provision network for the instance
▪ Neutron configures IP, gateway, DNS name, L2 connectivity etc.
▪ It is assumed a volume is already created. Nova Compute contacts Cinder to get volume data. Can
also attach volumes after VM is built.
18
Nova Compute Driver
19
Nova scheduler filtering
20
Neutron Architecture
21
Glance Architecture
22
Cinder Architecture
23
Keystone Architecture
24
OpenStack Storage Concepts
• Ephemeral storage:
• Persists until VM is terminated
• Accessible from within VM as local file system
• Used to run operating system and/or scratch space
• Managed by Nova
• Block storage:
• Persists until specifically deleted by user
• Accessible from within VM as a block device (e.g. /dev/vdc)
• Used to add additional persistent storage to VM and/or run operating system
• Managed by Cinder
• Object storage:
• Persists until specifically deleted by user
• Accessible from anywhere
• Used to add store files, including VM images
• Managed by Swift
25